From da8169c2d8a3c5baa5c176450f86b2a193611c43 Mon Sep 17 00:00:00 2001
From: agata <automa@insicuri.net>
Date: Wed, 22 Jan 2020 16:35:45 +0100
Subject: [PATCH] [auto] plugin: buddypress 5.1.2

---
 .../buddypress/bp-activity/actions/post.php   |   11 +-
 .../bp-activity/bp-activity-admin.php         |   29 +-
 .../bp-activity/bp-activity-cssjs.php         |    2 +-
 .../bp-activity/bp-activity-filters.php       |    6 +-
 .../bp-activity/bp-activity-template.php      |    5 +
 .../classes/class-bp-activity-activity.php    |   11 +-
 .../classes/class-bp-activity-component.php   |   39 +-
 .../classes/class-bp-activity-list-table.php  |   40 +-
 .../classes/class-bp-activity-template.php    |    6 +-
 .../class-bp-rest-activity-endpoint.php       | 1550 ++++
 .../class-bp-blogs-recent-posts-widget.php    |   18 +-
 .../bp-core/admin/bp-core-admin-functions.php |   43 +
 .../bp-core/admin/bp-core-admin-schema.php    |   51 +
 .../bp-core/admin/bp-core-admin-tools.php     |   79 +
 .../bp-core/admin/css/hello-rtl.css           |  260 +-
 .../bp-core/admin/css/hello-rtl.min.css       |    2 +-
 .../buddypress/bp-core/admin/css/hello.css    |  260 +-
 .../bp-core/admin/css/hello.min.css           |    2 +-
 .../buddypress/bp-core/admin/js/hello.js      |  176 +-
 .../buddypress/bp-core/admin/js/hello.min.js  |    2 +-
 .../buddypress/bp-core/admin/sass/hello.scss  |  311 +-
 .../bp-core/bp-core-attachments.php           |    2 +-
 .../buddypress/bp-core/bp-core-avatars.php    |   66 +-
 .../buddypress/bp-core/bp-core-cache.php      |   11 +
 .../buddypress/bp-core/bp-core-catchuri.php   |    2 +-
 .../buddypress/bp-core/bp-core-cssjs.php      |   20 +-
 .../buddypress/bp-core/bp-core-filters.php    |   26 +-
 .../buddypress/bp-core/bp-core-functions.php  |   26 +-
 .../buddypress/bp-core/bp-core-rest-api.php   |  394 +
 .../buddypress/bp-core/bp-core-template.php   |    2 +-
 .../buddypress/bp-core/bp-core-update.php     |   48 +
 .../bp-core/classes/class-bp-admin.php        |  277 +-
 .../bp-core/classes/class-bp-component.php    |   49 +
 .../classes/class-bp-email-address.php        |   40 +
 .../classes/class-bp-email-participant.php    |   84 +
 .../classes/class-bp-email-recipient.php      |   42 +-
 .../bp-core/classes/class-bp-email-sender.php |    8 +
 .../bp-core/classes/class-bp-email.php        |   16 +-
 .../bp-core/classes/class-bp-embed.php        |    8 +-
 .../classes/class-bp-invitation-manager.php   |  717 ++
 .../bp-core/classes/class-bp-invitation.php   | 1056 +++
 ...rest-attachments-group-avatar-endpoint.php |  499 ++
 ...est-attachments-member-avatar-endpoint.php |  515 ++
 .../class-bp-rest-components-endpoint.php     |  537 ++
 .../bp-core/classes/class-bp-user-query.php   |    2 +-
 .../classes/class-bp-walker-nav-menu.php      |   19 +-
 .../bp-core/classes/trait-attachments.php     |  300 +
 .../php53/class-bp-compat-walker-nav-menu.php |   32 +
 .../php56/class-bp-compat-walker-nav-menu.php |   31 +
 .../buddypress/bp-core/deprecated/2.1.php     |    2 +-
 .../images/bp-nouveau-improvements.png        |  Bin 0 -> 50612 bytes
 .../images/buddypress-blocks-category.png     |  Bin 0 -> 30846 bytes
 .../images/manage-members-interface.png       |  Bin 0 -> 52249 bytes
 .../images/site-health-buddypress-section.png |  Bin 0 -> 46412 bytes
 .../buddypress/bp-core/js/bp-api-request.js   |   69 +
 .../bp-core/js/bp-api-request.min.js          |    1 +
 .../bp-friends/bp-friends-filters.php         |   16 +-
 .../classes/class-bp-core-friends-widget.php  |    2 +-
 .../classes/class-bp-friends-friendship.php   |   10 +-
 .../buddypress/bp-groups/actions/create.php   |    4 +-
 .../bp-groups/actions/leave-group.php         |   33 +-
 .../bp-groups/admin/css/admin-rtl.css         |   33 +
 .../bp-groups/admin/css/admin-rtl.min.css     |    2 +-
 .../buddypress/bp-groups/admin/css/admin.css  |   33 +
 .../bp-groups/admin/css/admin.min.css         |    2 +-
 .../bp-groups/bp-groups-activity.php          |  154 +-
 .../buddypress/bp-groups/bp-groups-admin.php  |   20 +-
 .../buddypress/bp-groups/bp-groups-cache.php  |   38 +-
 .../buddypress/bp-groups/bp-groups-cssjs.php  |   62 +
 .../bp-groups/bp-groups-filters.php           |   26 +-
 .../bp-groups/bp-groups-functions.php         |  956 +-
 .../bp-groups/bp-groups-notifications.php     |   74 +-
 .../bp-groups/bp-groups-template.php          |   84 +-
 .../classes/class-bp-group-member-query.php   |   95 +-
 .../classes/class-bp-groups-component.php     |   23 +-
 ...class-bp-groups-group-members-template.php |    5 +-
 .../classes/class-bp-groups-group.php         |   57 +-
 .../class-bp-groups-invitation-manager.php    |  191 +
 .../class-bp-groups-invite-template.php       |    5 +-
 .../classes/class-bp-groups-list-table.php    |   12 +-
 .../classes/class-bp-groups-member.php        |  120 +-
 ...bp-groups-membership-requests-template.php |    5 +-
 .../classes/class-bp-groups-template.php      |    5 +-
 .../classes/class-bp-groups-widget.php        |   17 +-
 .../class-bp-rest-group-invites-endpoint.php  | 1037 +++
 ...lass-bp-rest-group-membership-endpoint.php |  955 ++
 ...rest-group-membership-request-endpoint.php |  906 ++
 .../classes/class-bp-rest-groups-endpoint.php | 1240 +++
 .../buddypress/bp-groups/js/manage-members.js |  549 ++
 .../bp-groups/js/manage-members.min.js        |    1 +
 .../single/admin/membership-requests.php      |   38 +-
 .../bp-groups/screens/single/send-invites.php |    4 +-
 wp-content/plugins/buddypress/bp-loader.php   |    2 +-
 .../bp-members/bp-members-functions.php       |  111 +-
 .../classes/class-bp-core-members-widget.php  |   18 +-
 .../class-bp-core-recently-active-widget.php  |   20 +-
 .../class-bp-core-whos-online-widget.php      |   20 +-
 .../classes/class-bp-members-admin.php        |    2 +-
 .../classes/class-bp-members-component.php    |   19 +
 .../class-bp-rest-members-endpoint.php        |  811 ++
 .../bp-members/classes/class-bp-signup.php    |    7 +-
 .../bp-messages/bp-messages-cssjs.php         |    2 +-
 .../bp-messages/bp-messages-filters.php       |    6 +-
 .../bp-messages/bp-messages-functions.php     |    7 +
 .../bp-messages/bp-messages-template.php      |   48 +-
 .../class-bp-messages-box-template.php        |    5 +-
 .../classes/class-bp-messages-component.php   |   12 +
 .../classes/class-bp-messages-thread.php      |    6 +-
 .../class-bp-rest-messages-endpoint.php       | 1282 +++
 .../bp-notifications-filters.php              |    6 +-
 .../class-bp-notifications-component.php      |   12 +
 .../class-bp-rest-notifications-endpoint.php  |  897 ++
 .../bp-settings/bp-settings-filters.php       |    6 +-
 .../bp-settings/bp-settings-functions.php     |   34 +-
 .../bp-legacy/buddypress-functions.php        |    2 +-
 .../bp-legacy/css/buddypress-rtl.css          |   11 +-
 .../bp-legacy/css/buddypress-rtl.min.css      |    2 +-
 .../bp-templates/bp-legacy/css/buddypress.css |   11 +-
 .../bp-legacy/css/buddypress.min.css          |    2 +-
 .../bp-templates/bp-legacy/js/buddypress.js   |    2 +-
 .../bp-legacy/js/buddypress.min.js            |    2 +-
 .../bp-nouveau/buddypress-functions.php       |    9 +-
 .../common/js-templates/activity/form.php     |    7 +-
 .../js-templates/group-members/index.php      |  147 +
 .../groups/single/admin/manage-members.php    |   17 +-
 .../groups/single/request-membership.php      |    2 +-
 .../members/single/friends/requests-loop.php  |   46 +
 .../members/single/friends/requests.php       |   45 +-
 .../members/single/settings/general.php       |   51 +-
 .../bp-nouveau/common-styles/_bp-mixins.scss  |   21 +
 .../common-styles/_bp-variables.scss          |    6 +-
 .../common-styles/_bp_activity_entries.scss   |   16 +-
 .../bp-nouveau/common-styles/_bp_buttons.scss |   11 +-
 .../bp-nouveau/common-styles/_bp_forms.scss   |    7 +-
 .../_bp_generic_and_typography.scss           |   12 +-
 .../common-styles/_bp_groups_create.scss      |    5 +
 .../common-styles/_bp_groups_management.scss  |   33 +
 .../common-styles/_bp_info_messages.scss      |   11 +-
 .../common-styles/_bp_item_body_general.scss  |    4 +-
 .../_bp_item_header_general.scss              |    5 +-
 .../bp-nouveau/common-styles/_bp_lists.scss   |    7 +-
 .../common-styles/_bp_registration.scss       |   57 +
 .../bp-nouveau/common-styles/_bp_search.scss  |   18 +-
 .../common-styles/_bp_update_form.scss        |   16 +-
 .../common-styles/_bp_user_profile.scss       |    6 +-
 .../common-styles/_bp_user_settings.scss      |   81 +-
 .../bp-nouveau/css/buddypress-rtl.css         |  249 +-
 .../bp-nouveau/css/buddypress-rtl.min.css     |    2 +-
 .../bp-nouveau/css/buddypress.css             |  249 +-
 .../bp-nouveau/css/buddypress.min.css         |    2 +-
 .../bp-nouveau/includes/activity/ajax.php     |    4 +-
 .../includes/activity/functions.php           |    7 +-
 .../includes/activity/template-tags.php       |   12 +-
 .../bp-templates/bp-nouveau/includes/ajax.php |    4 +
 .../bp-nouveau/includes/functions.php         |   20 +-
 .../bp-nouveau/includes/groups/ajax.php       |   33 +-
 .../bp-nouveau/includes/groups/classes.php    |   39 +-
 .../bp-nouveau/includes/groups/functions.php  |   18 +-
 .../includes/notifications/template-tags.php  |    2 +-
 .../bp-nouveau/includes/template-tags.php     |  256 +-
 .../js/buddypress-activity-post-form.js       |   46 +-
 .../js/buddypress-activity-post-form.min.js   |    2 +-
 .../bp-nouveau/js/buddypress-activity.js      |    2 +-
 .../bp-nouveau/js/buddypress-activity.min.js  |    2 +-
 .../bp-nouveau/js/buddypress-messages.js      |    2 +-
 .../bp-nouveau/js/buddypress-messages.min.js  |    2 +-
 .../bp-nouveau/js/buddypress-nouveau.js       |   22 +-
 .../bp-nouveau/js/buddypress-nouveau.min.js   |    2 +-
 .../bp-nouveau/js/password-verify.js          |   11 +-
 .../bp-nouveau/js/password-verify.min.js      |    2 +-
 .../bp-nouveau/sass/_nouveau_invites.scss     |    1 -
 .../bp-nouveau/sass/_nouveau_messages.scss    |    5 +-
 .../bp-xprofile/bp-xprofile-cache.php         |   13 +
 .../bp-xprofile/bp-xprofile-cssjs.php         |    2 +-
 .../bp-xprofile/bp-xprofile-filters.php       |   77 +-
 .../class-bp-rest-xprofile-data-endpoint.php  |  598 ++
 ...bp-rest-xprofile-field-groups-endpoint.php |  892 ++
 ...class-bp-rest-xprofile-fields-endpoint.php | 1179 +++
 .../classes/class-bp-xprofile-component.php   |   17 +
 .../class-bp-xprofile-data-template.php       |    5 +-
 .../classes/class-bp-xprofile-field.php       |   10 +-
 .../classes/class-bp-xprofile-group.php       |  213 +-
 wp-content/plugins/buddypress/buddypress.pot  | 7899 ++++++++++-------
 .../plugins/buddypress/class-buddypress.php   |   86 +-
 wp-content/plugins/buddypress/readme.txt      |   33 +-
 185 files changed, 25647 insertions(+), 4996 deletions(-)
 create mode 100644 wp-content/plugins/buddypress/bp-activity/classes/class-bp-rest-activity-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/bp-core-rest-api.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-email-address.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-email-participant.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-email-sender.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation-manager.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-components-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/classes/trait-attachments.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/compat/php53/class-bp-compat-walker-nav-menu.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/compat/php56/class-bp-compat-walker-nav-menu.php
 create mode 100644 wp-content/plugins/buddypress/bp-core/images/bp-nouveau-improvements.png
 create mode 100644 wp-content/plugins/buddypress/bp-core/images/buddypress-blocks-category.png
 create mode 100644 wp-content/plugins/buddypress/bp-core/images/manage-members-interface.png
 create mode 100644 wp-content/plugins/buddypress/bp-core/images/site-health-buddypress-section.png
 create mode 100644 wp-content/plugins/buddypress/bp-core/js/bp-api-request.js
 create mode 100644 wp-content/plugins/buddypress/bp-core/js/bp-api-request.min.js
 create mode 100644 wp-content/plugins/buddypress/bp-groups/bp-groups-cssjs.php
 create mode 100644 wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invitation-manager.php
 create mode 100644 wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-invites-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-groups-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-groups/js/manage-members.js
 create mode 100644 wp-content/plugins/buddypress/bp-groups/js/manage-members.min.js
 create mode 100644 wp-content/plugins/buddypress/bp-members/classes/class-bp-rest-members-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-messages/classes/class-bp-rest-messages-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-notifications/classes/class-bp-rest-notifications-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php
 create mode 100644 wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests-loop.php
 create mode 100644 wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php
 create mode 100644 wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php

diff --git a/wp-content/plugins/buddypress/bp-activity/actions/post.php b/wp-content/plugins/buddypress/bp-activity/actions/post.php
index e10ca2ac9..25e0a42ca 100644
--- a/wp-content/plugins/buddypress/bp-activity/actions/post.php
+++ b/wp-content/plugins/buddypress/bp-activity/actions/post.php
@@ -77,12 +77,15 @@ function bp_activity_action_post_update() {
 		 * Filters activity object for BuddyPress core and plugin authors before posting activity update.
 		 *
 		 * @since 1.2.0
+		 * @since 5.0.0 Fixed filter signature to match other instances of filter,
+		 *              with $activity_id as the first param.
 		 *
-		 * @param string $object  Activity item being associated to.
-		 * @param string $item_id Component ID being posted to.
-		 * @param string $content Activity content being posted.
+		 * @param int    $activity_id ID of the activity item.
+		 * @param string $object      Activity item being associated to.
+		 * @param string $item_id     Component ID being posted to.
+		 * @param string $content     Activity content being posted.
 		 */
-		$activity_id = apply_filters( 'bp_activity_custom_update', $object, $item_id, $content );
+		$activity_id = apply_filters( 'bp_activity_custom_update', 0, $object, $item_id, $content );
 	}
 
 	// Provide user feedback.
diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php
index ab68de61b..947cf69c3 100644
--- a/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php
+++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-admin.php
@@ -310,7 +310,7 @@ function bp_activity_admin_load() {
 	) );
 	wp_enqueue_style( 'bp_activity_admin_css', $bp->plugin_url . "bp-activity/admin/css/admin{$min}.css", array(),                               bp_get_version()       );
 
-	wp_style_add_data( 'bp_activity_admin_css', 'rtl', true );
+	wp_style_add_data( 'bp_activity_admin_css', 'rtl', 'replace' );
 	if ( $min ) {
 		wp_style_add_data( 'bp_activity_admin_css', 'suffix', $min );
 	}
@@ -840,13 +840,19 @@ function bp_activity_admin_get_activity_actions() {
 		$action = array_values( (array) $action );
 
 		for ( $i = 0, $i_count = count( $action ); $i < $i_count; $i++ ) {
+			/**
+			 * Don't take in account:
+			 * - a mis-named Friends activity type from before BP 1.6,
+			 * - The Group's component 'activity_update' one as the Activity component is using it.
+			 */
+			if ( 'friends_register_activity_action' === $action[$i]['key'] || 'bp_groups_format_activity_action_group_activity_update' === $action[$i]['format_callback'] ) {
+				continue;
+			}
+
 			$actions[ $action[$i]['key'] ] = $action[$i]['value'];
 		}
 	}
 
-	// This was a mis-named activity type from before BP 1.6.
-	unset( $actions['friends_register_activity_action'] );
-
 	// Sort array by the human-readable value.
 	natsort( $actions );
 
@@ -870,13 +876,20 @@ function bp_activity_admin_edit_metabox_type( $item ) {
 	foreach ( bp_activity_get_actions() as $action ) {
 		$action = array_values( (array) $action );
 
-		for ( $i = 0, $i_count = count( $action ); $i < $i_count; $i++ )
+		for ( $i = 0, $i_count = count( $action ); $i < $i_count; $i++ ) {
+			/**
+			 * Don't take in account:
+			 * - a mis-named Friends activity type from before BP 1.6,
+			 * - The Group's component 'activity_update' one as the Activity component is using it.
+			 */
+			if ( 'friends_register_activity_action' === $action[$i]['key'] || 'bp_groups_format_activity_action_group_activity_update' === $action[$i]['format_callback'] ) {
+				continue;
+			}
+
 			$actions[ $action[$i]['key'] ] = $action[$i]['value'];
+		}
 	}
 
-	// This was a mis-named activity type from before BP 1.6.
-	unset( $actions['friends_register_activity_action'] );
-
 	// Sort array by the human-readable value.
 	natsort( $actions );
 
diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-cssjs.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-cssjs.php
index ec14cd416..26748b440 100644
--- a/wp-content/plugins/buddypress/bp-activity/bp-activity-cssjs.php
+++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-cssjs.php
@@ -36,7 +36,7 @@ function bp_activity_mentions_script() {
 	wp_enqueue_script( 'bp-mentions', buddypress()->plugin_url . "bp-activity/js/mentions{$min}.js", array( 'jquery', 'jquery-atwho' ), bp_get_version(), true );
 	wp_enqueue_style( 'bp-mentions-css', buddypress()->plugin_url . "bp-activity/css/mentions{$min}.css", array(), bp_get_version() );
 
-	wp_style_add_data( 'bp-mentions-css', 'rtl', true );
+	wp_style_add_data( 'bp-mentions-css', 'rtl', 'replace' );
 	if ( $min ) {
 		wp_style_add_data( 'bp-mentions-css', 'suffix', $min );
 	}
diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php
index 3cacd64f6..6a9cc46b8 100644
--- a/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php
+++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-filters.php
@@ -818,14 +818,16 @@ add_filter( 'bp_activity_set_mentions_scope_args', 'bp_activity_filter_mentions_
  * Registers Activity personal data exporter.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_activity_register_personal_data_exporter( $exporters ) {
 	$exporters['buddypress-activity'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Activity Data', 'buddypress' ),
-		'callback'               => 'bp_activity_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Activity Data', 'buddypress' ),
+		'callback'                  => 'bp_activity_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Activity Data', 'BuddyPress Activity data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php b/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php
index be1e48b40..fc0e82a76 100644
--- a/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php
+++ b/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php
@@ -3848,6 +3848,11 @@ function bp_activity_show_filters( $context = '' ) {
 				$action['key'] = 'friendship_accepted,friendship_created';
 			}
 
+			// The 'activity_update' filter is already used by the Activity component.
+			if ( 'bp_groups_format_activity_action_group_activity_update' === $action['format_callback'] ) {
+				continue;
+			}
+
 			$filters[ $action['key'] ] = $action['label'];
 		}
 
diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php
index f3335e77c..e58b84495 100644
--- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php
+++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-activity.php
@@ -360,8 +360,10 @@ class BP_Activity_Activity {
 	public static function get( $args = array() ) {
 		global $wpdb;
 
+		$function_args = func_get_args();
+
 		// Backward compatibility with old method of passing arguments.
-		if ( !is_array( $args ) || func_num_args() > 1 ) {
+		if ( !is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '1.6', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -378,7 +380,7 @@ class BP_Activity_Activity {
 				10 => 'spam'
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$bp = buddypress();
@@ -1467,6 +1469,8 @@ class BP_Activity_Activity {
 	public static function get_activity_comments( $activity_id, $left, $right, $spam = 'ham_only', $top_level_parent_id = 0 ) {
 		global $wpdb;
 
+		$function_args = func_get_args();
+
 		if ( empty( $top_level_parent_id ) ) {
 			$top_level_parent_id = $activity_id;
 		}
@@ -1514,7 +1518,7 @@ class BP_Activity_Activity {
 			 * @param BP_Activity_Activity $value     Magic method referring to currently called method.
 			 * @param array                $func_args Array of the method's argument list.
 			 */
-			if ( apply_filters( 'bp_use_legacy_activity_query', false, __METHOD__, func_get_args() ) ) {
+			if ( apply_filters( 'bp_use_legacy_activity_query', false, __METHOD__, $function_args ) ) {
 
 				/**
 				 * Filters the MySQL prepared statement for the legacy activity query.
@@ -1539,6 +1543,7 @@ class BP_Activity_Activity {
 				$descendant_ids = $wpdb->get_col( $sql );
 				$descendants    = self::get_activity_data( $descendant_ids );
 				$descendants    = self::append_user_fullnames( $descendants );
+				$descendants    = self::generate_action_strings( $descendants );
 			}
 
 			$ref = array();
diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php
index e72d8460d..74b81c7b6 100644
--- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php
+++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php
@@ -124,9 +124,30 @@ class BP_Activity_Component extends BP_Component {
 				require $this->path . 'bp-activity/screens/just-me.php';
 			}
 
-			// Screens - User secondary nav.
-			if ( bp_is_user() && in_array( bp_current_action(), array( 'friends', 'groups', 'favorites', 'mentions' ), true ) ) {
-				require $this->path . 'bp-activity/screens/' . bp_current_action() . '.php';
+			/**
+			 * Screens - User secondary nav.
+			 *
+			 * For these specific actions, slugs can be customized using `BP_{COMPONENT}_SLUGS`.
+			 * As a result, we need to map filenames with slugs.
+			 */
+			$filenames = array(
+				'favorites' => 'favorites',
+				'mentions'  => 'mentions',
+			);
+
+			if ( bp_is_active( 'friends' ) ) {
+				$filenames[bp_get_friends_slug()] = 'friends';
+			}
+
+			if ( bp_is_active( 'groups' ) ) {
+				$filenames[bp_get_groups_slug()] = 'groups';
+			}
+
+			// The slug is the current action requested.
+			$slug = bp_current_action();
+
+			if ( bp_is_user() && isset( $filenames[ $slug ] ) ) {
+				require $this->path . 'bp-activity/screens/' . $filenames[ $slug ] . '.php';
 			}
 
 			// Screens - Single permalink.
@@ -435,4 +456,16 @@ class BP_Activity_Component extends BP_Component {
 
 		parent::setup_cache_groups();
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers Optional. See BP_Component::rest_api_init() for
+	 *                           description.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		parent::rest_api_init( array( 'BP_REST_Activity_Endpoint' ) );
+	}
 }
diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php
index c581905e7..1538d2140 100644
--- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php
+++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-list-table.php
@@ -338,11 +338,7 @@ class BP_Activity_List_Table extends WP_List_Table {
 	 *
 	 * @return array Key/value pairs for the bulk actions dropdown.
 	 */
-	function get_bulk_actions() {
-		$actions = array();
-		$actions['bulk_spam']   = __( 'Mark as Spam', 'buddypress' );
-		$actions['bulk_ham']    = __( 'Not Spam', 'buddypress' );
-		$actions['bulk_delete'] = __( 'Delete Permanently', 'buddypress' );
+	public function get_bulk_actions() {
 
 		/**
 		 * Filters the default bulk actions so plugins can add custom actions.
@@ -351,7 +347,11 @@ class BP_Activity_List_Table extends WP_List_Table {
 		 *
 		 * @param array $actions Default available actions for bulk operations.
 		 */
-		return apply_filters( 'bp_activity_list_table_get_bulk_actions', $actions );
+		return apply_filters( 'bp_activity_list_table_get_bulk_actions', array(
+			'bulk_spam'   => __( 'Mark as Spam', 'buddypress' ),
+			'bulk_ham'    => __( 'Not Spam', 'buddypress' ),
+			'bulk_delete' => __( 'Delete Permanently', 'buddypress' ),
+		) );
 	}
 
 	/**
@@ -364,6 +364,7 @@ class BP_Activity_List_Table extends WP_List_Table {
 	 * @return array The columns to appear in the Activity list table.
 	 */
 	function get_columns() {
+
 		/**
 		 * Filters the titles for the columns for the activity list table.
 		 *
@@ -373,7 +374,7 @@ class BP_Activity_List_Table extends WP_List_Table {
 		 */
 		return apply_filters( 'bp_activity_list_table_get_columns', array(
 			'cb'       => '<input name type="checkbox" />',
-			'author'   => _x('Author', 'Admin SWA column header', 'buddypress' ),
+			'author'   => _x( 'Author', 'Admin SWA column header', 'buddypress' ),
 			'comment'  => _x( 'Activity', 'Admin SWA column header', 'buddypress' ),
 			'action'   => _x( 'Action', 'Admin SWA column header', 'buddypress' ),
 			'response' => _x( 'In Response To', 'Admin SWA column header', 'buddypress' ),
@@ -383,20 +384,20 @@ class BP_Activity_List_Table extends WP_List_Table {
 	/**
 	 * Get the column names for sortable columns.
 	 *
-	 * Currently, returns an empty array (no columns are sortable).
-	 *
 	 * @since 1.6.0
-	 * @todo For this to work, BP_Activity_Activity::get() needs updating
-	 *       to support ordering by specific fields.
 	 *
 	 * @return array The columns that can be sorted on the Activity screen.
 	 */
-	function get_sortable_columns() {
-		return array();
+	public function get_sortable_columns() {
 
-		/*return array(
-			'author' => array( 'activity_author', false ),  // Intentionally not using "=>"
-		);*/
+		/**
+		 * Filters the column names for the sortable columns.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $value Array of column names.
+		 */
+		return apply_filters( 'bp_activity_list_table_get_sortable_columns', array() );
 	}
 
 	/**
@@ -434,6 +435,11 @@ class BP_Activity_List_Table extends WP_List_Table {
 						$component = 'xprofile';
 					}
 
+					// The 'activity_update' filter is already used by the Activity component.
+					if ( isset( $actions->activity_update ) && 'bp_groups_format_activity_action_group_activity_update' === $actions->activity_update['format_callback'] ) {
+						unset( $actions->activity_update );
+					}
+
 					if ( bp_is_active( $component ) ) {
 						if ( $component === 'xprofile' ) {
 							$component_name = buddypress()->profile->name;
@@ -454,7 +460,7 @@ class BP_Activity_List_Table extends WP_List_Table {
 							<?php
 
 							// Skip the incorrectly named pre-1.6 action.
-							if ( 'friends_register_activity_action' !== $action_key ) : ?>
+							if ( 'friends_register_activity_action' !== $action_key  ) : ?>
 
 								<option value="<?php echo esc_attr( $action_key ); ?>" <?php selected( $action_key,  $selected ); ?>><?php echo esc_html( $action_values[ 'value' ] ); ?></option>
 
diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php
index cb7f52c43..cfc66d3bd 100644
--- a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php
+++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-activity-template.php
@@ -139,8 +139,10 @@ class BP_Activity_Template {
 	public function __construct( $args ) {
 		$bp = buddypress();
 
+		$function_args = func_get_args();
+
 		// Backward compatibility with old method of passing arguments.
-		if ( !is_array( $args ) || func_num_args() > 1 ) {
+		if ( !is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '1.6', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -159,7 +161,7 @@ class BP_Activity_Template {
 				12 => 'page_arg'
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$defaults = array(
diff --git a/wp-content/plugins/buddypress/bp-activity/classes/class-bp-rest-activity-endpoint.php b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-rest-activity-endpoint.php
new file mode 100644
index 000000000..2f92568fd
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-activity/classes/class-bp-rest-activity-endpoint.php
@@ -0,0 +1,1550 @@
+<?php
+/**
+ * BP REST: BP_REST_Activity_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Activity endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Activity_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * User favorites.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var array|null
+	 */
+	protected $user_favorites = null;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = buddypress()->activity->id;
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		$activity_endpoint = '/' . $this->rest_base . '/(?P<id>[\d]+)';
+
+		register_rest_route(
+			$this->namespace,
+			$activity_endpoint,
+			array(
+				'args'   => array(
+					'id' => array(
+						'description' => __( 'A unique numeric ID for the activity.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => array(
+						'context' => $this->get_context_param(
+							array(
+								'default' => 'view',
+							)
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		// Register the favorite route.
+		register_rest_route(
+			$this->namespace,
+			$activity_endpoint . '/favorite',
+			array(
+				'args'   => array(
+					'id' => array(
+						'description' => __( 'A unique numeric ID for the activity.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_favorite' ),
+					'permission_callback' => array( $this, 'update_favorite_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve activities.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response List of activities response data.
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'exclude'           => $request['exclude'],
+			'in'                => $request['include'],
+			'page'              => $request['page'],
+			'per_page'          => $request['per_page'],
+			'search_terms'      => $request['search'],
+			'sort'              => $request['order'],
+			'spam'              => $request['status'],
+			'display_comments'  => $request['display_comments'],
+			'site_id'           => $request['site_id'],
+			'group_id'          => $request['group_id'],
+			'count_total'       => true,
+			'fields'            => 'all',
+			'show_hidden'       => false,
+			'update_meta_cache' => true,
+			'filter'            => false,
+		);
+
+		if ( empty( $args['display_comments'] ) || 'false' === $args['display_comments'] ) {
+			$args['display_comments'] = false;
+		}
+
+		if ( empty( $request['exclude'] ) ) {
+			$args['exclude'] = false;
+		}
+
+		if ( empty( $request['include'] ) ) {
+			$args['in'] = false;
+		}
+
+		if ( isset( $request['after'] ) ) {
+			$args['since'] = $request['after'];
+		}
+
+		if ( isset( $request['user_id'] ) ) {
+			$args['filter']['user_id'] = $request['user_id'];
+		}
+
+		$item_id = 0;
+		if ( ! empty( $args['group_id'] ) ) {
+			$args['filter']['object']     = 'groups';
+			$args['filter']['primary_id'] = $args['group_id'];
+
+			$item_id = $args['group_id'];
+		}
+
+		if ( ! empty( $args['site_id'] ) ) {
+			$args['filter']['object']     = 'blogs';
+			$args['filter']['primary_id'] = $args['site_id'];
+
+			$item_id = $args['site_id'];
+		}
+
+		if ( empty( $args['group_id'] ) && empty( $args['site_id'] ) ) {
+			if ( isset( $request['component'] ) ) {
+				$args['filter']['object'] = $request['component'];
+			}
+
+			if ( ! empty( $request['primary_id'] ) ) {
+				$item_id                      = $request['primary_id'];
+				$args['filter']['primary_id'] = $item_id;
+			}
+		}
+
+		if ( isset( $request['type'] ) ) {
+			$args['filter']['action'] = $request['type'];
+		}
+
+		if ( ! empty( $request['secondary_id'] ) ) {
+			$args['filter']['secondary_id'] = $request['secondary_id'];
+		}
+
+		if ( $args['in'] ) {
+			$args['count_total'] = false;
+		}
+
+		if ( $this->show_hidden( $request['component'], $item_id ) ) {
+			$args['show_hidden'] = true;
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_activity_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$activities = bp_activity_get( $args );
+
+		$retval = array();
+		foreach ( $activities['activities'] as $activity ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $activity, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, $activities['total'], $args['per_page'] );
+
+		/**
+		 * Fires after a list of activities is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $activities Fetched activities.
+		 * @param WP_REST_Response $response   The response data.
+		 * @param WP_REST_Request  $request    The request sent to the API.
+		 */
+		do_action( 'bp_rest_activity_get_items', $activities, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to activity items.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		/**
+		 * Filter the activity `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_activity_get_items_permissions_check', true, $request );
+	}
+
+	/**
+	 * Retrieve an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$activity = $this->get_activity_object( $request );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $activity, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after an activity is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Activity_Activity $activity Fetched activity.
+		 * @param WP_REST_Response     $response The response data.
+		 * @param WP_REST_Request      $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_activity_get_item', $activity, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to get information about a specific activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! $this->can_see( $request ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you cannot view the activities.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the activity `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_activity_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Create an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		$request->set_param( 'context', 'edit' );
+
+		if ( empty( $request['content'] ) ) {
+			return new WP_Error(
+				'bp_rest_create_activity_empty_content',
+				__( 'Please, enter some content.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$prepared_activity = $this->prepare_item_for_database( $request );
+
+		// Fallback for the activity_update type.
+		$type = 'activity_update';
+		if ( ! empty( $request['type'] ) ) {
+			$type = $request['type'];
+		}
+
+		$prime       = $request['primary_item_id'];
+		$activity_id = 0;
+
+		// Post a regular activity update.
+		if ( 'activity_update' === $type ) {
+			if ( bp_is_active( 'groups' ) && ! is_null( $prime ) ) {
+				$activity_id = groups_post_update( $prepared_activity );
+			} else {
+				$activity_id = bp_activity_post_update( $prepared_activity );
+			}
+
+			// Post an activity comment.
+		} elseif ( 'activity_comment' === $type ) {
+
+			// ID of the root activity item.
+			if ( isset( $prime ) ) {
+				$prepared_activity->activity_id = (int) $prime;
+			}
+
+			// ID of a parent comment.
+			if ( isset( $request['secondary_item_id'] ) ) {
+				$prepared_activity->parent_id = (int) $request['secondary_item_id'];
+			}
+
+			$activity_id = bp_activity_new_comment( $prepared_activity );
+
+			// Otherwise add an activity.
+		} else {
+			$activity_id = bp_activity_add( $prepared_activity );
+		}
+
+		if ( ! is_numeric( $activity_id ) ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_create_activity',
+				__( 'Cannot create new activity.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$activity = bp_activity_get(
+			array(
+				'in'               => $activity_id,
+				'display_comments' => 'stream',
+				'show_hidden'      => $request['hidden'],
+			)
+		);
+
+		$activity      = current( $activity['activities'] );
+		$fields_update = $this->update_additional_fields_for_object( $activity, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $activity, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after an activity item is created via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Activity_Activity $activity The created activity.
+		 * @param WP_REST_Response     $response The response data.
+		 * @param WP_REST_Request      $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_activity_create_item', $activity, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to create an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to create activities.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$item_id   = $request['primary_item_id'];
+		$component = $request['component'];
+
+		if ( true === $retval && bp_is_active( 'groups' ) && buddypress()->groups->id === $component && ! is_null( $item_id ) ) {
+			if ( ! $this->show_hidden( $component, $item_id ) ) {
+				$retval = new WP_Error(
+					'bp_rest_authorization_required',
+					__( 'Sorry, you are not allowed to create activities.', 'buddypress' ),
+					array(
+						'status' => rest_authorization_required_code(),
+					)
+				);
+			}
+		}
+
+		/**
+		 * Filter the activity `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_activity_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		$request->set_param( 'context', 'edit' );
+
+		if ( empty( $request['content'] ) ) {
+			return new WP_Error(
+				'bp_rest_update_activity_empty_content',
+				__( 'Please, enter some content.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$activity_id = bp_activity_add( $this->prepare_item_for_database( $request ) );
+
+		if ( ! is_numeric( $activity_id ) ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_activity',
+				__( 'Cannot update existing activity.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$activity      = $this->get_activity_object( $activity_id );
+		$fields_update = $this->update_additional_fields_for_object( $activity, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $activity, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after an activity is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Activity_Activity $activity The updated activity.
+		 * @param WP_REST_Response     $response The response data.
+		 * @param WP_REST_Request      $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_activity_update_item', $activity, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to update this activity.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$activity = $this->get_activity_object( $request );
+
+		if ( true === $retval && empty( $activity->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid activity ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! bp_activity_user_can_delete( $activity ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to update this activity.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the activity `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_activity_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the activity before it's deleted.
+		$activity = $this->get_activity_object( $request );
+		$previous = $this->prepare_item_for_response( $activity, $request );
+
+		if ( 'activity_comment' === $activity->type ) {
+			$retval = bp_activity_delete_comment( $activity->item_id, $activity->id );
+		} else {
+			$retval = bp_activity_delete(
+				array(
+					'id' => $activity->id,
+				)
+			);
+		}
+
+		if ( ! $retval ) {
+			return new WP_Error(
+				'bp_rest_activity_cannot_delete',
+				__( 'Could not delete the activity.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after an activity is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Activity_Activity $activity The deleted activity.
+		 * @param WP_REST_Response     $response The response data.
+		 * @param WP_REST_Request      $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_activity_delete_item', $activity, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to delete this activity.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$activity = $this->get_activity_object( $request );
+
+		if ( true === $retval && empty( $activity->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid activity ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! bp_activity_user_can_delete( $activity ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to delete this activity.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the activity `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_activity_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Gets the current user's favorites.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array Array of activity IDs.
+	 */
+	public function get_user_favorites() {
+		if ( null === $this->user_favorites ) {
+			if ( is_user_logged_in() ) {
+				$user_favorites       = bp_activity_get_user_favorites( get_current_user_id() );
+				$this->user_favorites = array_filter( wp_parse_id_list( $user_favorites ) );
+			} else {
+				$this->user_favorites = array();
+			}
+		}
+
+		return $this->user_favorites;
+	}
+
+	/**
+	 * Adds or removes the activity from the current user's favorites.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_favorite( $request ) {
+		$activity = $this->get_activity_object( $request );
+
+		if ( empty( $activity->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid activity ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$user_id = get_current_user_id();
+
+		$result = false;
+		if ( in_array( $activity->id, $this->get_user_favorites(), true ) ) {
+			$result  = bp_activity_remove_user_favorite( $activity->id, $user_id );
+			$message = __( 'Sorry, you cannot remove the activity from your favorites.', 'buddypress' );
+
+			// Update the user favorites, removing the activity ID.
+			$this->user_favorites = array_diff( $this->get_user_favorites(), array( $activity->id ) );
+		} else {
+			$result  = bp_activity_add_user_favorite( $activity->id, $user_id );
+			$message = __( 'Sorry, you cannot add the activity to your favorites.', 'buddypress' );
+
+			// Update the user favorites, adding the activity ID.
+			$this->user_favorites[] = (int) $activity->id;
+		}
+
+		if ( ! $result ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_activity_favorite',
+				$message,
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Prepare the response now the user favorites has been updated.
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $activity, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after user favorited activities has been updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Activity_Activity $activity       The updated activity.
+		 * @param array                $user_favorites The updated user favorites.
+		 * @param WP_REST_Response     $response       The response data.
+		 * @param WP_REST_Request      $request        The request sent to the API.
+		 */
+		do_action( 'bp_rest_activity_update_favorite', $activity, $this->get_user_favorites(), $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update user favorites.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_favorite_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! ( is_user_logged_in() && bp_activity_can_favorite() ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to update favorites.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the activity `update_favorite` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_activity_update_favorite_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Renders the content of an activity.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Activity_Activity $activity Activity data.
+	 * @return string The rendered activity content.
+	 */
+	public function render_item( $activity ) {
+		$rendered = '';
+
+		if ( empty( $activity->content ) ) {
+			return $rendered;
+		}
+
+		// Do not truncate activities.
+		add_filter( 'bp_activity_maybe_truncate_entry', '__return_false' );
+
+		if ( 'activity_comment' === $activity->type ) {
+			$rendered = apply_filters( 'bp_get_activity_content', $activity->content );
+		} else {
+			$activities_template = null;
+
+			if ( isset( $GLOBALS['activities_template'] ) ) {
+				$activities_template = $GLOBALS['activities_template'];
+			}
+
+			// Set the `activities_template` global for the current activity.
+			$GLOBALS['activities_template']           = new stdClass();
+			$GLOBALS['activities_template']->activity = $activity;
+
+			// Set up activity oEmbed cache.
+			bp_activity_embed();
+
+			$rendered = apply_filters( 'bp_get_activity_content_body', $activity->content );
+
+			// Restore the `activities_template` global.
+			$GLOBALS['activities_template'] = $activities_template;
+		}
+
+		// Restore the filter to truncate activities.
+		remove_filter( 'bp_activity_maybe_truncate_entry', '__return_false' );
+
+		return $rendered;
+	}
+
+	/**
+	 * Prepares activity data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Activity_Activity $activity Activity data.
+	 * @param WP_REST_Request      $request  Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $activity, $request ) {
+		$data = array(
+			'user_id'           => $activity->user_id,
+			'component'         => $activity->component,
+			'content'           => array(
+				'raw'      => $activity->content,
+				'rendered' => $this->render_item( $activity ),
+			),
+			'date'              => bp_rest_prepare_date_response( $activity->date_recorded ),
+			'id'                => $activity->id,
+			'link'              => bp_activity_get_permalink( $activity->id ),
+			'primary_item_id'   => $activity->item_id,
+			'secondary_item_id' => $activity->secondary_item_id,
+			'status'            => $activity->is_spam ? 'spam' : 'published',
+			'title'             => $activity->action,
+			'type'              => $activity->type,
+			'favorited'         => in_array( $activity->id, $this->get_user_favorites(), true ),
+		);
+
+		// Get item schema.
+		$schema = $this->get_item_schema();
+
+		// Get comments (count).
+		if ( ! empty( $activity->children ) ) {
+			$comment_count         = wp_filter_object_list( $activity->children, array( 'type' => 'activity_comment' ), 'AND', 'id' );
+			$data['comment_count'] = ! empty( $comment_count ) ? count( $comment_count ) : 0;
+
+			if ( ! empty( $schema['properties']['comments'] ) && 'threaded' === $request['display_comments'] ) {
+				$data['comments'] = $this->prepare_activity_comments( $activity->children, $request );
+			}
+		}
+
+		if ( ! empty( $schema['properties']['user_avatar'] ) ) {
+			$data['user_avatar'] = array(
+				'full'  => bp_core_fetch_avatar(
+					array(
+						'item_id' => $activity->user_id,
+						'html'    => false,
+						'type'    => 'full',
+					)
+				),
+
+				'thumb' => bp_core_fetch_avatar(
+					array(
+						'item_id' => $activity->user_id,
+						'html'    => false,
+					)
+				),
+			);
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		$response = rest_ensure_response( $data );
+		$response->add_links( $this->prepare_links( $activity ) );
+
+		/**
+		 * Filter an activity value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response     $response The response data.
+		 * @param WP_REST_Request      $request  Request used to generate the response.
+		 * @param BP_Activity_Activity $activity The activity object.
+		 */
+		return apply_filters( 'bp_rest_activity_prepare_value', $response, $request, $activity );
+	}
+
+	/**
+	 * Prepare activity comments.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  array           $comments Comments.
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return array           An array of activity comments.
+	 */
+	protected function prepare_activity_comments( $comments, $request ) {
+		$data = array();
+
+		if ( empty( $comments ) ) {
+			return $data;
+		}
+
+		foreach ( $comments as $comment ) {
+			$data[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $comment, $request )
+			);
+		}
+
+		/**
+		 * Filter activity comments returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $data     An array of activity comments.
+		 * @param array           $comments Comments.
+		 * @param WP_REST_Request $request  Request used to generate the response.
+		 */
+		return apply_filters( 'bp_rest_activity_prepare_comments', $data, $comments, $request );
+	}
+
+	/**
+	 * Prepare an activity for create or update.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return stdClass|WP_Error Object or WP_Error.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_activity = new stdClass();
+		$schema            = $this->get_item_schema();
+		$activity          = $this->get_activity_object( $request );
+
+		if ( ! empty( $schema['properties']['id'] ) && ! empty( $activity->id ) ) {
+			$prepared_activity->id = $activity->id;
+
+			if ( 'activity_comment' !== $request['type'] ) {
+				$prepared_activity->error_type = 'wp_error';
+			}
+		}
+
+		// Activity author ID.
+		if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
+			$prepared_activity->user_id = (int) $request['user_id'];
+		} else {
+			$prepared_activity->user_id = get_current_user_id();
+		}
+
+		// Activity component.
+		if ( ! empty( $schema['properties']['component'] ) && isset( $request['component'] ) ) {
+			$prepared_activity->component = $request['component'];
+		} else {
+			$prepared_activity->component = buddypress()->activity->id;
+		}
+
+		// Activity Item ID.
+		if ( ! empty( $schema['properties']['primary_item_id'] ) && isset( $request['primary_item_id'] ) ) {
+			$item_id = (int) $request['primary_item_id'];
+
+			// Set the group ID of the activity.
+			if ( bp_is_active( 'groups' ) && isset( $prepared_activity->component ) && buddypress()->groups->id === $prepared_activity->component ) {
+				$prepared_activity->group_id = $item_id;
+
+				// Use a generic item ID for other components.
+			} else {
+				$prepared_activity->item_id = $item_id;
+			}
+		}
+
+		// Secondary Item ID.
+		if ( ! empty( $schema['properties']['secondary_item_id'] ) && isset( $request['secondary_item_id'] ) ) {
+			$prepared_activity->secondary_item_id = (int) $request['secondary_item_id'];
+		}
+
+		// Activity type.
+		if ( ! empty( $schema['properties']['type'] ) && isset( $request['type'] ) ) {
+			$prepared_activity->type = $request['type'];
+		}
+
+		// Activity content.
+		if ( ! empty( $schema['properties']['content'] ) && isset( $request['content'] ) ) {
+			if ( is_string( $request['content'] ) ) {
+				$prepared_activity->content = $request['content'];
+			} elseif ( isset( $request['content']['raw'] ) ) {
+				$prepared_activity->content = $request['content']['raw'];
+			}
+		}
+
+		// Activity Sitewide visibility.
+		if ( ! empty( $schema['properties']['hidden'] ) && isset( $request['hidden'] ) ) {
+			$prepared_activity->hide_sitewide = (bool) $request['hidden'];
+		}
+
+		/**
+		 * Filters an activity before it is inserted or updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param stdClass        $prepared_activity An object prepared for inserting or updating the database.
+		 * @param WP_REST_Request $request Request object.
+		 */
+		return apply_filters( 'bp_rest_activity_pre_insert_value', $prepared_activity, $request );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Activity_Activity $activity Activity object.
+	 * @return array
+	 */
+	protected function prepare_links( $activity ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+		$url  = $base . $activity->id;
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $url ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+			'user'       => array(
+				'href'       => rest_url( bp_rest_get_user_url( $activity->user_id ) ),
+				'embeddable' => true,
+			),
+		);
+
+		if ( 'activity_comment' === $activity->type ) {
+			$links['up'] = array(
+				'href' => rest_url( $url ),
+			);
+		}
+
+		if ( bp_activity_can_favorite() ) {
+			$links['favorite'] = array(
+				'href' => rest_url( $url . '/favorite' ),
+			);
+		}
+
+		if ( bp_is_active( 'groups' ) && 'groups' === $activity->component && ! empty( $activity->item_id ) ) {
+			$group = groups_get_group( $activity->item_id );
+
+			$links['group'] = array(
+				'href'       => bp_get_group_permalink( $group ),
+				'embeddable' => true,
+			);
+		}
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array                $links     The prepared links of the REST response.
+		 * @param BP_Activity_Activity $activity  Activity object.
+		 */
+		return apply_filters( 'bp_rest_activity_prepare_links', $links, $activity );
+	}
+
+	/**
+	 * Can this user see the activity?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return boolean
+	 */
+	protected function can_see( $request ) {
+		return bp_activity_user_can_read(
+			$this->get_activity_object( $request ),
+			bp_loggedin_user_id()
+		);
+	}
+
+	/**
+	 * Show hidden activity?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  string $component The activity component.
+	 * @param  int    $item_id   The activity item ID.
+	 * @return boolean
+	 */
+	protected function show_hidden( $component, $item_id ) {
+		$user_id = get_current_user_id();
+		$retval  = false;
+
+		if ( ! is_null( $component ) ) {
+			// If activity is from a group, do an extra cap check.
+			if ( ! $retval && ! empty( $item_id ) && bp_is_active( $component ) && buddypress()->groups->id === $component ) {
+				// Group admins and mods have access as well.
+				if ( groups_is_user_admin( $user_id, $item_id ) || groups_is_user_mod( $user_id, $item_id ) ) {
+					$retval = true;
+
+					// User is a member of the group.
+				} elseif ( (bool) groups_is_user_member( $user_id, $item_id ) ) {
+					$retval = true;
+				}
+			}
+		}
+
+		// Moderators as well.
+		if ( bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = true;
+		}
+
+		return (bool) $retval;
+	}
+
+	/**
+	 * Get activity object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return BP_Activity_Activity|string An activity object.
+	 */
+	public function get_activity_object( $request ) {
+		$activity_id = is_numeric( $request ) ? $request : (int) $request['id'];
+
+		$activity = bp_activity_get_specific(
+			array(
+				'activity_ids'     => array( $activity_id ),
+				'display_comments' => true,
+			)
+		);
+
+		if ( is_array( $activity ) && ! empty( $activity['activities'][0] ) ) {
+			return $activity['activities'][0];
+		}
+
+		return '';
+	}
+
+	/**
+	 * Edit the type of the some properties for the CREATABLE & EDITABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method || WP_REST_Server::EDITABLE === $method ) {
+			$key                     = 'create_item';
+			$args['content']['type'] = 'string';
+			unset( $args['content']['properties'] );
+
+			if ( WP_REST_Server::EDITABLE === $method ) {
+				$key                      = 'update_item';
+				$args['type']['required'] = true;
+			}
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_activity_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the plugin schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_activity',
+			'type'       => 'object',
+			'properties' => array(
+				'id'                => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the activity.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'primary_item_id'   => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of some other object primarily associated with this one.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'secondary_item_id' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of some other object also associated with this one.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'user_id'           => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID for the author of the activity.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'link'              => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The permalink to this activity on the site.', 'buddypress' ),
+					'format'      => 'uri',
+					'type'        => 'string',
+				),
+				'component'         => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The active BuddyPress component the activity relates to.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => array_keys( buddypress()->active_components ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'type'              => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The activity type of the activity.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => array_keys( bp_activity_get_types() ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'title'             => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The description of the activity\'s type (eg: Username posted an update)', 'buddypress' ),
+					'type'        => 'string',
+					'readonly'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'content'           => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Allowed HTML content for the activity.', 'buddypress' ),
+					'type'        => 'object',
+					'arg_options' => array(
+						'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+						'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Content for the activity, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML content for the activity, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'date'              => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( "The date the activity was published, in the site's timezone.", 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+				),
+				'status'            => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the activity has been marked as spam or not.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => array( 'published', 'spam' ),
+					'readonly'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'comments'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A list of objects children of the activity object.', 'buddypress' ),
+					'type'        => 'array',
+					'readonly'    => true,
+				),
+				'comment_count'     => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Total number of comments of the activity object.', 'buddypress' ),
+					'type'        => 'integer',
+					'readonly'    => true,
+				),
+				'hidden'            => array(
+					'context'     => array( 'edit' ),
+					'description' => __( 'Whether the activity object should be sitewide hidden or not.', 'buddypress' ),
+					'type'        => 'boolean',
+				),
+				'favorited'         => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the activity object has been favorited by the current user.', 'buddypress' ),
+					'type'        => 'boolean',
+					'readonly'    => true,
+				),
+			),
+		);
+
+		// Avatars.
+		if ( true === buddypress()->avatar->show_avatars ) {
+			$avatar_properties = array();
+
+			$avatar_properties['full'] = array(
+				'context'     => array( 'view', 'edit' ),
+				/* translators: Full image size for the member Avatar */
+				'description' => sprintf( __( 'Avatar URL with full image size (%1$d x %2$d pixels).', 'buddypress' ), number_format_i18n( bp_core_avatar_full_width() ), number_format_i18n( bp_core_avatar_full_height() ) ),
+				'type'        => 'string',
+				'format'      => 'uri',
+			);
+
+			$avatar_properties['thumb'] = array(
+				'context'     => array( 'view', 'edit' ),
+				/* translators: Thumb imaze size for the member Avatar */
+				'description' => sprintf( __( 'Avatar URL with thumb image size (%1$d x %2$d pixels).', 'buddypress' ), number_format_i18n( bp_core_avatar_thumb_width() ), number_format_i18n( bp_core_avatar_thumb_height() ) ),
+				'type'        => 'string',
+				'format'      => 'uri',
+			);
+
+			$schema['properties']['user_avatar'] = array(
+				'context'     => array( 'view', 'edit' ),
+				'description' => __( 'Avatar URLs for the author of the activity.', 'buddypress' ),
+				'type'        => 'object',
+				'readonly'    => true,
+				'properties'  => $avatar_properties,
+			);
+		}
+
+		/**
+		 * Filters the activity schema.
+		 *
+		 * @param string $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_activity_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections of plugins.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		$params['exclude'] = array(
+			'description'       => __( 'Ensure result set excludes specific IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['include'] = array(
+			'description'       => __( 'Ensure result set includes specific IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['order'] = array(
+			'description'       => __( 'Order sort attribute ascending or descending.', 'buddypress' ),
+			'default'           => 'desc',
+			'type'              => 'string',
+			'enum'              => array( 'asc', 'desc' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['after'] = array(
+			'description'       => __( 'Limit result set to items published after a given ISO8601 compliant date.', 'buddypress' ),
+			'type'              => 'string',
+			'format'            => 'date-time',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Limit result set to items created by a specific user (ID).', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['status'] = array(
+			'description'       => __( 'Limit result set to items with a specific status.', 'buddypress' ),
+			'default'           => 'ham_only',
+			'type'              => 'string',
+			'enum'              => array( 'ham_only', 'spam_only', 'all' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['group_id'] = array(
+			'description'       => __( 'Limit result set to items created by a specific group.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['site_id'] = array(
+			'description'       => __( 'Limit result set to items created by a specific site.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['primary_id'] = array(
+			'description'       => __( 'Limit result set to items with a specific prime association ID.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['secondary_id'] = array(
+			'description'       => __( 'Limit result set to items with a specific secondary association ID.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['component'] = array(
+			'description'       => __( 'Limit result set to items with a specific active BuddyPress component.', 'buddypress' ),
+			'type'              => 'string',
+			'enum'              => array_keys( buddypress()->active_components ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['type'] = array(
+			'description'       => __( 'Limit result set to items with a specific activity type.', 'buddypress' ),
+			'type'              => 'string',
+			'enum'              => array_keys( bp_activity_get_types() ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['display_comments'] = array(
+			'description'       => __( 'No comments by default, stream for within stream display, threaded for below each activity item.', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_activity_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php
index 5e47e2c71..8f647ba56 100644
--- a/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php
+++ b/wp-content/plugins/buddypress/bp-blogs/classes/class-bp-blogs-recent-posts-widget.php
@@ -61,7 +61,8 @@ class BP_Blogs_Recent_Posts_Widget extends WP_Widget {
 		echo $args['before_widget'];
 		echo $args['before_title'] . $title . $args['after_title'];
 
-		if ( empty( $instance['max_posts'] ) || empty( $instance['max_posts'] ) ) {
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+		if ( empty( $instance['max_posts'] ) || $instance['max_posts'] > $max_limit ) {
 			$instance['max_posts'] = 10;
 		}
 
@@ -128,10 +129,13 @@ class BP_Blogs_Recent_Posts_Widget extends WP_Widget {
 	 * @return array $instance The parsed options to be saved.
 	 */
 	public function update( $new_instance, $old_instance ) {
-		$instance               = $old_instance;
+		$instance = $old_instance;
+
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$instance['title']      = strip_tags( $new_instance['title'] );
-		$instance['max_posts']  = strip_tags( $new_instance['max_posts'] );
-		$instance['link_title'] = (bool) $new_instance['link_title'];
+		$instance['max_posts']  = $new_instance['max_posts'] > $max_limit ? $max_limit : intval( $new_instance['max_posts'] );
+		$instance['link_title'] = ! empty( $new_instance['link_title'] );
 
 		return $instance;
 	}
@@ -150,15 +154,17 @@ class BP_Blogs_Recent_Posts_Widget extends WP_Widget {
 			'link_title' => false,
 		) );
 
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$title      = strip_tags( $instance['title'] );
-		$max_posts  = strip_tags( $instance['max_posts'] );
+		$max_posts  = $instance['max_posts'] > $max_limit ? $max_limit : intval( $instance['max_posts'] );
 		$link_title = (bool) $instance['link_title'];
 
 		?>
 
 		<p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _ex( 'Title:', 'Label for the Title field of the Recent Networkwide Posts widget', 'buddypress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" style="width: 100%;" /></label></p>
 		<p><label for="<?php echo $this->get_field_id( 'link_title' ); ?>"><input type="checkbox" name="<?php echo $this->get_field_name( 'link_title' ); ?>" value="1" <?php checked( $link_title ); ?> /> <?php _e( 'Link widget title to Blogs directory', 'buddypress' ); ?></label></p>
-		<p><label for="<?php echo $this->get_field_id( 'max_posts' ); ?>"><?php _e( 'Max posts to show:', 'buddypress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_posts' ); ?>" name="<?php echo $this->get_field_name( 'max_posts' ); ?>" type="text" value="<?php echo esc_attr( $max_posts ); ?>" style="width: 30%" /></label></p>
+		<p><label for="<?php echo $this->get_field_id( 'max_posts' ); ?>"><?php _e( 'Max posts to show:', 'buddypress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_posts' ); ?>" name="<?php echo $this->get_field_name( 'max_posts' ); ?>" type="number" min="1" max="<?php echo esc_attr( $max_limit ); ?>" value="<?php echo esc_attr( $max_posts ); ?>" style="width: 30%" /></label></p>
 		<?php
 	}
 }
diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php
index 609453741..2b6abea5f 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php
+++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-functions.php
@@ -1135,3 +1135,46 @@ function bp_core_admin_body_classes( $classes ) {
 	return $classes . ' buddypress';
 }
 add_filter( 'admin_body_class', 'bp_core_admin_body_classes' );
+
+/**
+ * Adds a BuddyPress category to house BuddyPress blocks.
+ *
+ * @since 5.0.0
+ *
+ * @param array   $categories Array of block categories.
+ * @param object  $post       Post being loaded.
+ */
+function bp_block_category( $categories = array(), $post = null ) {
+	if ( ! ( $post instanceof WP_Post ) ) {
+		return $categories;
+	}
+
+	/**
+	 * Filter here to add/remove the supported post types for the BuddyPress blocks category.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $value The list of supported post types. Defaults to WordPress built-in ones.
+	 */
+	$post_types = apply_filters( 'bp_block_category_post_types', array( 'post', 'page' ) );
+
+	if ( ! $post_types ) {
+		return $categories;
+	}
+
+	// Get the post type of the current item.
+	$post_type = get_post_type( $post );
+
+	if ( ! in_array( $post_type, $post_types, true ) ) {
+		return $categories;
+	}
+
+	return array_merge( $categories, array(
+		array(
+			'slug'  => 'buddypress',
+			'title' => __( 'BuddyPress', 'buddypress' ),
+			'icon'  => 'buddicons-buddypress-logo',
+		),
+	) );
+}
+add_filter( 'block_categories', 'bp_block_category', 1, 2 );
diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php
index 02a410ba9..bb15a40b5 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php
+++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-schema.php
@@ -382,6 +382,11 @@ function bp_core_install_extended_profiles() {
 
 	if ( ! $wpdb->get_var( "SELECT id FROM {$bp_prefix}bp_xprofile_fields WHERE id = 1" ) ) {
 		$insert_sql[] = "INSERT INTO {$bp_prefix}bp_xprofile_fields ( group_id, parent_id, type, name, description, is_required, can_delete ) VALUES ( 1, 0, 'textbox', " . $wpdb->prepare( '%s', stripslashes( bp_get_option( 'bp-xprofile-fullname-field-name' ) ) ) . ", '', 1, 0 );";
+
+		// Make sure the custom visibility is disabled for the default field.
+		if ( ! $wpdb->get_var( "SELECT id FROM {$bp_prefix}bp_xprofile_meta WHERE id = 1" ) ) {
+			$insert_sql[] = "INSERT INTO {$bp_prefix}bp_xprofile_meta ( object_id, object_type, meta_key, meta_value ) VALUES ( 1, 'field', 'allow_custom_visibility', 'disabled' );";
+		}
 	}
 
 	dbDelta( $insert_sql );
@@ -535,3 +540,49 @@ function bp_core_install_emails() {
 	 */
 	do_action( 'bp_core_install_emails' );
 }
+
+/**
+ * Install database tables for the Invitations API
+ *
+ * @since 5.0.0
+ *
+ * @uses bp_core_set_charset()
+ * @uses bp_core_get_table_prefix()
+ * @uses dbDelta()
+ */
+function bp_core_install_invitations() {
+	$sql             = array();
+	$charset_collate = $GLOBALS['wpdb']->get_charset_collate();
+	$bp_prefix       = bp_core_get_table_prefix();
+	$sql[] = "CREATE TABLE {$bp_prefix}bp_invitations (
+		id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+		user_id bigint(20) NOT NULL,
+		inviter_id bigint(20) NOT NULL,
+		invitee_email varchar(100) DEFAULT NULL,
+		class varchar(120) NOT NULL,
+		item_id bigint(20) NOT NULL,
+		secondary_item_id bigint(20) DEFAULT NULL,
+		type varchar(12) NOT NULL DEFAULT 'invite',
+		content longtext DEFAULT '',
+		date_modified datetime NOT NULL,
+		invite_sent tinyint(1) NOT NULL DEFAULT '0',
+		accepted tinyint(1) NOT NULL DEFAULT '0',
+		KEY user_id (user_id),
+		KEY inviter_id (inviter_id),
+		KEY invitee_email (invitee_email),
+		KEY class (class),
+		KEY item_id (item_id),
+		KEY secondary_item_id (secondary_item_id),
+		KEY type (type),
+		KEY invite_sent (invite_sent),
+		KEY accepted (accepted)
+		) {$charset_collate};";
+	dbDelta( $sql );
+
+	/**
+	 * Fires after BuddyPress adds the invitations table.
+	 *
+	 * @since 5.0.0
+	 */
+	do_action( 'bp_core_install_invitations' );
+}
diff --git a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php
index 69973e9b2..15058cb10 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php
+++ b/wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-tools.php
@@ -488,3 +488,82 @@ function bp_core_admin_notice_repopulate_blogs_resume() {
 	echo '<div class="error"><p>' . __( 'It looks like you have more sites to record. Resume recording by checking the "Repopulate site tracking records" option.', 'buddypress' ) . '</p></div>';
 }
 add_action( 'network_admin_notices', 'bp_core_admin_notice_repopulate_blogs_resume' );
+
+/**
+ * Add BuddyPress debug info to the WordPress Site Health info screen.
+ *
+ * @since 5.0.0
+ *
+ * @param  array $debug_info The Site's debug info.
+ * @return array             The Site's debug info, including the BuddyPress specific ones.
+ */
+function bp_core_admin_debug_information( $debug_info = array() ) {
+	global $wp_settings_fields;
+	$active_components = array_intersect_key( bp_core_get_components(), buddypress()->active_components );
+	$bp_settings       = array();
+
+	foreach ( $wp_settings_fields['buddypress'] as $section => $settings ) {
+		$prefix       = '';
+		$component_id = str_replace( 'bp_', '', $section );
+
+		if ( isset( $active_components[ $component_id ]['title'] ) ) {
+			$prefix = $active_components[ $component_id ]['title'] .': ';
+		}
+
+		foreach( $settings as $bp_setting ) {
+			$reverse = (
+				strpos( $bp_setting['id'], 'hide' ) !== false ||
+				strpos( $bp_setting['id'], 'restrict' ) !== false ||
+				strpos( $bp_setting['id'], 'disable' ) !== false
+			);
+
+			if ( ! isset( $bp_setting['id'] ) || '_bp_theme_package_id' === $bp_setting['id'] ) {
+				continue;
+			}
+
+			$bp_setting_value = bp_get_option( $bp_setting['id'] );
+			if ( '0' === $bp_setting_value || '1' === $bp_setting_value ) {
+				if ( ( $reverse && '0' === $bp_setting_value ) || ( ! $reverse && '1' === $bp_setting_value ) ) {
+					$bp_setting_value = __( 'Yes', 'buddypress' );
+				} else {
+					$bp_setting_value = __( 'No', 'buddypress' );
+				}
+			}
+
+			// Make sure to show the setting is reversed when site info is copied to clipboard.
+			$bp_settings_id = $bp_setting['id'];
+			if ( $reverse ) {
+				$bp_settings_id = '! ' . $bp_settings_id;
+			}
+
+			$bp_settings[ $bp_settings_id ] = array(
+				'label' => $prefix . $bp_setting['title'],
+				'value' => $bp_setting_value,
+			);
+		}
+	}
+
+	$debug_info['buddypress'] = array(
+		'label'  => __( 'BuddyPress', 'buddypress' ),
+		'fields' => array_merge(
+			array(
+				'version' => array(
+					'label' => __( 'Version', 'buddypress' ),
+					'value' => bp_get_version(),
+				),
+				'active_components' => array(
+					'label' => __( 'Active components', 'buddypress' ),
+					'value' => implode( wp_list_pluck( $active_components, 'title' ), ', ' ),
+				),
+				'template_pack' => array(
+					'label' => __( 'Active template pack', 'buddypress' ),
+					'value' => bp_get_theme_compat_name() . ' ' . bp_get_theme_compat_version(),
+				),
+			),
+			$bp_settings
+		)
+	);
+
+	return $debug_info;
+}
+add_filter( 'debug_information', 'bp_core_admin_debug_information' );
diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.css b/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.css
index 48d7e6a21..8afabb2d7 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.css
+++ b/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.css
@@ -9,15 +9,12 @@ TABLE OF CONTENTS:
 1.0 - Typography and colour
 2.0 - Dashicons
 3.0 - Elements
-	3.1 - Backdrop and container
-	3.2 - Modal footer
-	3.3 - Modal header
-	3.4 - Modal content
+	3.1 - Modal footer
+	3.2 - Modal content
 4.0 - Content styles
-	4.1 - Backdrop and container
-	4.2 - Footer content
-	4.3 - Header content
-	4.4 - Content content
+	4.1 - Footer content
+	4.2 - Header content
+	4.3 - Content content
 5.0 - Media
 6.0 - Media Queries
 	6.1 - Desktop Medium
@@ -32,48 +29,23 @@ TABLE OF CONTENTS:
 	--bp-hello-container-size: 15%;
 }
 
-#bp-hello-container a {
-	color: var(--bp-hello-color-primary);
+.bp-hello-content p {
+	font-size: 16px;
 }
 
-#bp-hello-container a:hover {
-	transition: all 0.1s ease-in-out;
-	color: black;
+.bp-hello-content ul,
+.bp-hello-content ol {
+	list-style: inherit;
 }
 
-#bp-hello-container .bp-hello-header h1 {
-	line-height: 1.7;
-	font-size: 21px;
-	font-weight: 400;
-}
-
-.bp-hello-content p {
-	font-size: 16px;
+.bp-hello-content h3 {
+	font-size: 1.1em;
+	font-weight: 500;
 }
 
 /*------------------------------------------------------------------------------
  * 2.0 - Dashicons
  *----------------------------------------------------------------------------*/
-.bp-hello-close .button {
-	padding: 5px !important;
-}
-
-.bp-hello-close .close-modal:before {
-	content: "\f158";
-	color: #23282d;
-	/* wp toolbar */
-	font: 400 1.5em/1 dashicons;
-	speak: none;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-	background-image: none !important;
-}
-
-.bp-hello-close .close-modal:focus:before, .bp-hello-close .close-modal:hover:before {
-	transition: all 0.1s ease-in-out;
-	color: var(--bp-hello-color-primary);
-}
-
 .bp-hello-social li a:before {
 	color: #23282d;
 	/* wp toolbar */
@@ -97,41 +69,34 @@ TABLE OF CONTENTS:
 	content: "\f301";
 }
 
-/*------------------------------------------------------------------------------
- * 3.0 - Elements
- *----------------------------------------------------------------------------*/
-/*
- * 3.1 - Backdrop and container
- */
-#bp-hello-backdrop {
-	position: fixed;
-	top: 0;
-	right: 0;
-	left: 0;
-	bottom: 0;
-	z-index: 9998;
-	display: none;
+div.dashicons {
+	width: -webkit-fit-content;
+	width: fit-content;
 }
 
-#bp-hello-container {
-	position: fixed;
-	top: 0;
-	bottom: 80px;
-	z-index: 99999;
-}
-
-.bp-disable-scroll {
-	overflow: hidden;
+div.dashicons.big {
+	font-size: 128px;
+	display: block;
+	color: var(--bp-hello-color-primary);
+	height: 128px;
+	width: 128px;
 }
 
+/*------------------------------------------------------------------------------
+ * 3.0 - Elements
+ *----------------------------------------------------------------------------*/
 /*
- * 3.2 - Modal footer
+ * 3.1 - Modal footer
  */
-.bp-hello-footer {
+#plugin-information-footer {
 	display: flex;
 	flex-wrap: wrap;
-	height: 58px;
-	max-height: 58px;
+	padding: 0 16px;
+	height: auto;
+}
+
+#plugin-information-footer .dashicons-heart {
+	color: #be3631;
 }
 
 .bp-hello-social-cta,
@@ -156,92 +121,95 @@ TABLE OF CONTENTS:
 }
 
 /*
- * 3.3 - Modal header
+ * 3.2 - Modal content
  */
-.bp-hello-header {
-	height: 58px;
-	max-height: 58px;
+#bp-hello-container {
+	display: none;
 }
 
-/*
- * 3.4 - Modal content
- */
 .bp-hello-content {
 	padding: 0 25px;
-	height: calc(100% - 58px);
-	overflow-y: auto;
-	-webkit-overflow-scrolling: touch;
+	padding-bottom: 20px;
 }
 
-/*------------------------------------------------------------------------------
- * 4.0 - Content styles
- *----------------------------------------------------------------------------*/
-/*
- * 4.1 - Backdrop and container
- */
-#bp-hello-backdrop {
-	background-color: rgba(0, 0, 0, 0.8);
-	transition: opacity 0.15s ease-out;
+#dynamic-content {
+	padding-bottom: 40px;
+	display: none;
 }
 
-#bp-hello-container {
-	background-color: white;
+#dynamic-content.show {
+	display: block;
 }
 
-/*
- * 4.2 - Footer content
- */
-.bp-hello-footer {
-	border-radius: 0 0 3px 3px;
-	background-color: white;
-	border-top: 1px solid var(--bp-hello-color-secondary);
-	padding: 6px 25px;
+.plugin-details-modal #TB_title {
+	/* stylelint-disable-line */
+	height: 0;
+	background: none;
+	border: none;
 }
 
-.bp-hello-footer p {
-	font-size: 15px;
+#TB_window.plugin-details-modal.thickbox-loading:before {
+	/* stylelint-disable-line */
+	z-index: 10;
+	margin-top: 40px;
+	background-color: none;
 }
 
-.bp-hello-social-cta {
-	text-align: right;
+.bp-hello-aligncenter * {
+	margin: 10px auto;
 }
 
-.bp-hello-social-links {
-	text-align: left;
+.bp-hello-alignleft {
+	float: right;
 }
 
-.bp-hello-social li a {
-	text-decoration: none;
+.bp-hello-alignleft:after {
+	content: "";
+	clear: right;
 }
 
-/*
- * 4.3 - Header content
- */
-.bp-hello-header {
-	padding: 6px 25px;
+.bp-hello-alignright {
+	float: left;
 }
 
-.bp-hello-header h1 {
-	width: calc(100% - 51px);
+.bp-hello-alignright:after {
+	content: "";
+	clear: left;
 }
 
-#bp-hello-container .bp-hello-header {
-	border-bottom: 1px solid var(--bp-hello-color-secondary);
+.bp-hello-divider {
+	clear: both;
+	border: none;
+	margin-bottom: 20px;
 }
 
-.bp-hello-title {
+/*------------------------------------------------------------------------------
+ * 4.0 - Content styles
+ *----------------------------------------------------------------------------*/
+/*
+ * 4.1 - Footer content
+ */
+.bp-hello-social-cta {
 	text-align: right;
 }
 
-.bp-hello-close {
-	position: absolute;
-	top: 20px;
-	left: 25px;
+.bp-hello-social-links {
 	text-align: left;
 }
 
+.bp-hello-social li a {
+	text-decoration: none;
+}
+
 /*
- * 4.4 - Content content
+ * 4.2 - Header content
+ */
+#plugin-information-title.with-banner {
+	background-image: url(https://ps.w.org/buddypress/assets/banner-772x250.png);
+}
+
+/*
+ * 4.3 - Content content
  */
 .bp-hello-content {
 	background-color: white;
@@ -259,6 +227,11 @@ TABLE OF CONTENTS:
 	width: 100%;
 }
 
+.bp-hello-content .bp-hello-alignleft img,
+.bp-hello-content .bp-hello-alignright img {
+	max-width: 200px;
+}
+
 /*------------------------------------------------------------------------------
  * 6.0 - Media Queries
  *----------------------------------------------------------------------------*/
@@ -266,45 +239,8 @@ TABLE OF CONTENTS:
  * 6.1 - Desktop Medium
  */
 @media only screen and (min-width: 1024px) {
-	#bp-hello-backdrop {
-		display: block;
-	}
-	#bp-hello-container {
-		position: fixed;
-		top: 60px;
-		right: var(--bp-hello-container-size);
-		left: var(--bp-hello-container-size);
-		bottom: 30px;
-		z-index: 9999;
-		border-radius: 3px;
-	}
-	#bp-hello-container .bp-hello-header h1 {
-		line-height: inherit;
-	}
-	.bp-hello-header {
-		height: auto;
-		max-height: inherit;
-		padding: 6px 30px;
-	}
-	.bp-hello-close {
-		left: 30px;
-	}
-	.bp-hello-close .close-modal:before {
-		line-height: 0.7;
-	}
-	.bp-hello-footer {
-		position: fixed;
-		right: var(--bp-hello-container-size);
-		left: var(--bp-hello-container-size);
-		bottom: 30px;
-		z-index: 10000;
-		height: auto;
-		max-height: inherit;
-		padding: 6px 30px;
-	}
 	.bp-hello-content {
-		height: calc(100% - 90px);
-		padding: 0 30px;
+		padding: 0 30px 20px;
 	}
 	.bp-hello-content p {
 		font-size: 14px;
@@ -314,10 +250,8 @@ TABLE OF CONTENTS:
 /**
  * 6.2 - Desktop Large
  */
-@media screen and (min-width: 1280px) {
-	#bp-hello-container,
-	.bp-hello-footer {
-		right: calc((100% - 896px) / 2);
-		left: calc((100% - 896px) / 2);
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
+	#plugin-information-title.with-banner {
+		background-image: url(https://ps.w.org/buddypress/assets/banner-1544x500.png);
 	}
 }
diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.min.css b/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.min.css
index c8aea9894..23df97fba 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.min.css
+++ b/wp-content/plugins/buddypress/bp-core/admin/css/hello-rtl.min.css
@@ -1 +1 @@
-:root{--bp-hello-color-primary:#d34600;--bp-hello-color-secondary:#e5e5e5;--bp-hello-container-size:15%}#bp-hello-container a{color:var(--bp-hello-color-primary)}#bp-hello-container a:hover{transition:all .1s ease-in-out;color:#000}#bp-hello-container .bp-hello-header h1{line-height:1.7;font-size:21px;font-weight:400}.bp-hello-content p{font-size:16px}.bp-hello-close .button{padding:5px!important}.bp-hello-close .close-modal:before{content:"\f158";color:#23282d;font:400 1.5em/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important}.bp-hello-close .close-modal:focus:before,.bp-hello-close .close-modal:hover:before{transition:all .1s ease-in-out;color:var(--bp-hello-color-primary)}.bp-hello-social li a:before{color:#23282d;font:400 30px/.6 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important}.bp-hello-social li a:hover:before{transition:all .1s ease-in-out;color:var(--bp-hello-color-primary)}.bp-hello-social li a.support:before{content:"\f448"}.bp-hello-social li a.twitter:before{content:"\f301"}#bp-hello-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;z-index:9998;display:none}#bp-hello-container{position:fixed;top:0;bottom:80px;z-index:99999}.bp-disable-scroll{overflow:hidden}.bp-hello-footer{display:flex;flex-wrap:wrap;height:58px;max-height:58px}.bp-hello-social-cta,.bp-hello-social-links{flex-basis:50%}.bp-hello-social-links ul{display:inline-block}.bp-hello-social li{position:relative;bottom:-5px;display:inline-block;list-style-type:none;margin-bottom:0}.bp-hello-social li:last-child a{margin-right:4px}.bp-hello-header{height:58px;max-height:58px}.bp-hello-content{padding:0 25px;height:calc(100% - 58px);overflow-y:auto;-webkit-overflow-scrolling:touch}#bp-hello-backdrop{background-color:rgba(0,0,0,.8);transition:opacity .15s ease-out}#bp-hello-container{background-color:#fff}.bp-hello-footer{border-radius:0 0 3px 3px;background-color:#fff;border-top:1px solid var(--bp-hello-color-secondary);padding:6px 25px}.bp-hello-footer p{font-size:15px}.bp-hello-social-cta{text-align:right}.bp-hello-social-links{text-align:left}.bp-hello-social li a{text-decoration:none}.bp-hello-header{padding:6px 25px}.bp-hello-header h1{width:calc(100% - 51px)}#bp-hello-container .bp-hello-header{border-bottom:1px solid var(--bp-hello-color-secondary)}.bp-hello-title{text-align:right}.bp-hello-close{position:absolute;top:20px;left:25px;text-align:left}.bp-hello-content{background-color:#fff}.bp-hello-content img{border-radius:2px;max-width:100%}.bp-hello-content iframe{width:100%}@media only screen and (min-width:1024px){#bp-hello-backdrop{display:block}#bp-hello-container{position:fixed;top:60px;right:var(--bp-hello-container-size);left:var(--bp-hello-container-size);bottom:30px;z-index:9999;border-radius:3px}#bp-hello-container .bp-hello-header h1{line-height:inherit}.bp-hello-header{height:auto;max-height:inherit;padding:6px 30px}.bp-hello-close{left:30px}.bp-hello-close .close-modal:before{line-height:.7}.bp-hello-footer{position:fixed;right:var(--bp-hello-container-size);left:var(--bp-hello-container-size);bottom:30px;z-index:10000;height:auto;max-height:inherit;padding:6px 30px}.bp-hello-content{height:calc(100% - 90px);padding:0 30px}.bp-hello-content p{font-size:14px}}@media screen and (min-width:1280px){#bp-hello-container,.bp-hello-footer{right:calc((100% - 896px)/ 2);left:calc((100% - 896px)/ 2)}}
\ No newline at end of file
+:root{--bp-hello-color-primary:#d34600;--bp-hello-color-secondary:#e5e5e5;--bp-hello-container-size:15%}.bp-hello-content p{font-size:16px}.bp-hello-content ol,.bp-hello-content ul{list-style:inherit}.bp-hello-content h3{font-size:1.1em;font-weight:500}.bp-hello-social li a:before{color:#23282d;font:400 30px/.6 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important}.bp-hello-social li a:hover:before{transition:all .1s ease-in-out;color:var(--bp-hello-color-primary)}.bp-hello-social li a.support:before{content:"\f448"}.bp-hello-social li a.twitter:before{content:"\f301"}div.dashicons{width:-webkit-fit-content;width:fit-content}div.dashicons.big{font-size:128px;display:block;color:var(--bp-hello-color-primary);height:128px;width:128px}#plugin-information-footer{display:flex;flex-wrap:wrap;padding:0 16px;height:auto}#plugin-information-footer .dashicons-heart{color:#be3631}.bp-hello-social-cta,.bp-hello-social-links{flex-basis:50%}.bp-hello-social-links ul{display:inline-block}.bp-hello-social li{position:relative;bottom:-5px;display:inline-block;list-style-type:none;margin-bottom:0}.bp-hello-social li:last-child a{margin-right:4px}#bp-hello-container{display:none}.bp-hello-content{padding:0 25px;padding-bottom:20px}#dynamic-content{padding-bottom:40px;display:none}#dynamic-content.show{display:block}.plugin-details-modal #TB_title{height:0;background:0 0;border:none}#TB_window.plugin-details-modal.thickbox-loading:before{z-index:10;margin-top:40px;background-color:none}.bp-hello-aligncenter *{margin:10px auto}.bp-hello-alignleft{float:right}.bp-hello-alignleft:after{content:"";clear:right}.bp-hello-alignright{float:left}.bp-hello-alignright:after{content:"";clear:left}.bp-hello-divider{clear:both;border:none;margin-bottom:20px}.bp-hello-social-cta{text-align:right}.bp-hello-social-links{text-align:left}.bp-hello-social li a{text-decoration:none}#plugin-information-title.with-banner{background-image:url(https://ps.w.org/buddypress/assets/banner-772x250.png)}.bp-hello-content{background-color:#fff}.bp-hello-content img{border-radius:2px;max-width:100%}.bp-hello-content iframe{width:100%}.bp-hello-content .bp-hello-alignleft img,.bp-hello-content .bp-hello-alignright img{max-width:200px}@media only screen and (min-width:1024px){.bp-hello-content{padding:0 30px 20px}.bp-hello-content p{font-size:14px}}@media only screen and (-webkit-min-device-pixel-ratio:1.5){#plugin-information-title.with-banner{background-image:url(https://ps.w.org/buddypress/assets/banner-1544x500.png)}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/hello.css b/wp-content/plugins/buddypress/bp-core/admin/css/hello.css
index 63704edc7..cb6e52968 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/css/hello.css
+++ b/wp-content/plugins/buddypress/bp-core/admin/css/hello.css
@@ -9,15 +9,12 @@ TABLE OF CONTENTS:
 1.0 - Typography and colour
 2.0 - Dashicons
 3.0 - Elements
-	3.1 - Backdrop and container
-	3.2 - Modal footer
-	3.3 - Modal header
-	3.4 - Modal content
+	3.1 - Modal footer
+	3.2 - Modal content
 4.0 - Content styles
-	4.1 - Backdrop and container
-	4.2 - Footer content
-	4.3 - Header content
-	4.4 - Content content
+	4.1 - Footer content
+	4.2 - Header content
+	4.3 - Content content
 5.0 - Media
 6.0 - Media Queries
 	6.1 - Desktop Medium
@@ -32,48 +29,23 @@ TABLE OF CONTENTS:
 	--bp-hello-container-size: 15%;
 }
 
-#bp-hello-container a {
-	color: var(--bp-hello-color-primary);
+.bp-hello-content p {
+	font-size: 16px;
 }
 
-#bp-hello-container a:hover {
-	transition: all 0.1s ease-in-out;
-	color: black;
+.bp-hello-content ul,
+.bp-hello-content ol {
+	list-style: inherit;
 }
 
-#bp-hello-container .bp-hello-header h1 {
-	line-height: 1.7;
-	font-size: 21px;
-	font-weight: 400;
-}
-
-.bp-hello-content p {
-	font-size: 16px;
+.bp-hello-content h3 {
+	font-size: 1.1em;
+	font-weight: 500;
 }
 
 /*------------------------------------------------------------------------------
  * 2.0 - Dashicons
  *----------------------------------------------------------------------------*/
-.bp-hello-close .button {
-	padding: 5px !important;
-}
-
-.bp-hello-close .close-modal:before {
-	content: "\f158";
-	color: #23282d;
-	/* wp toolbar */
-	font: 400 1.5em/1 dashicons;
-	speak: none;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-	background-image: none !important;
-}
-
-.bp-hello-close .close-modal:focus:before, .bp-hello-close .close-modal:hover:before {
-	transition: all 0.1s ease-in-out;
-	color: var(--bp-hello-color-primary);
-}
-
 .bp-hello-social li a:before {
 	color: #23282d;
 	/* wp toolbar */
@@ -97,41 +69,34 @@ TABLE OF CONTENTS:
 	content: "\f301";
 }
 
-/*------------------------------------------------------------------------------
- * 3.0 - Elements
- *----------------------------------------------------------------------------*/
-/*
- * 3.1 - Backdrop and container
- */
-#bp-hello-backdrop {
-	position: fixed;
-	top: 0;
-	left: 0;
-	right: 0;
-	bottom: 0;
-	z-index: 9998;
-	display: none;
+div.dashicons {
+	width: -webkit-fit-content;
+	width: fit-content;
 }
 
-#bp-hello-container {
-	position: fixed;
-	top: 0;
-	bottom: 80px;
-	z-index: 99999;
-}
-
-.bp-disable-scroll {
-	overflow: hidden;
+div.dashicons.big {
+	font-size: 128px;
+	display: block;
+	color: var(--bp-hello-color-primary);
+	height: 128px;
+	width: 128px;
 }
 
+/*------------------------------------------------------------------------------
+ * 3.0 - Elements
+ *----------------------------------------------------------------------------*/
 /*
- * 3.2 - Modal footer
+ * 3.1 - Modal footer
  */
-.bp-hello-footer {
+#plugin-information-footer {
 	display: flex;
 	flex-wrap: wrap;
-	height: 58px;
-	max-height: 58px;
+	padding: 0 16px;
+	height: auto;
+}
+
+#plugin-information-footer .dashicons-heart {
+	color: #be3631;
 }
 
 .bp-hello-social-cta,
@@ -156,92 +121,95 @@ TABLE OF CONTENTS:
 }
 
 /*
- * 3.3 - Modal header
+ * 3.2 - Modal content
  */
-.bp-hello-header {
-	height: 58px;
-	max-height: 58px;
+#bp-hello-container {
+	display: none;
 }
 
-/*
- * 3.4 - Modal content
- */
 .bp-hello-content {
 	padding: 0 25px;
-	height: calc(100% - 58px);
-	overflow-y: auto;
-	-webkit-overflow-scrolling: touch;
+	padding-bottom: 20px;
 }
 
-/*------------------------------------------------------------------------------
- * 4.0 - Content styles
- *----------------------------------------------------------------------------*/
-/*
- * 4.1 - Backdrop and container
- */
-#bp-hello-backdrop {
-	background-color: rgba(0, 0, 0, 0.8);
-	transition: opacity 0.15s ease-out;
+#dynamic-content {
+	padding-bottom: 40px;
+	display: none;
 }
 
-#bp-hello-container {
-	background-color: white;
+#dynamic-content.show {
+	display: block;
 }
 
-/*
- * 4.2 - Footer content
- */
-.bp-hello-footer {
-	border-radius: 0 0 3px 3px;
-	background-color: white;
-	border-top: 1px solid var(--bp-hello-color-secondary);
-	padding: 6px 25px;
+.plugin-details-modal #TB_title {
+	/* stylelint-disable-line */
+	height: 0;
+	background: none;
+	border: none;
 }
 
-.bp-hello-footer p {
-	font-size: 15px;
+#TB_window.plugin-details-modal.thickbox-loading:before {
+	/* stylelint-disable-line */
+	z-index: 10;
+	margin-top: 40px;
+	background-color: none;
 }
 
-.bp-hello-social-cta {
-	text-align: left;
+.bp-hello-aligncenter * {
+	margin: 10px auto;
 }
 
-.bp-hello-social-links {
-	text-align: right;
+.bp-hello-alignleft {
+	float: left;
 }
 
-.bp-hello-social li a {
-	text-decoration: none;
+.bp-hello-alignleft:after {
+	content: "";
+	clear: left;
 }
 
-/*
- * 4.3 - Header content
- */
-.bp-hello-header {
-	padding: 6px 25px;
+.bp-hello-alignright {
+	float: right;
 }
 
-.bp-hello-header h1 {
-	width: calc(100% - 51px);
+.bp-hello-alignright:after {
+	content: "";
+	clear: right;
 }
 
-#bp-hello-container .bp-hello-header {
-	border-bottom: 1px solid var(--bp-hello-color-secondary);
+.bp-hello-divider {
+	clear: both;
+	border: none;
+	margin-bottom: 20px;
 }
 
-.bp-hello-title {
+/*------------------------------------------------------------------------------
+ * 4.0 - Content styles
+ *----------------------------------------------------------------------------*/
+/*
+ * 4.1 - Footer content
+ */
+.bp-hello-social-cta {
 	text-align: left;
 }
 
-.bp-hello-close {
-	position: absolute;
-	top: 20px;
-	right: 25px;
+.bp-hello-social-links {
 	text-align: right;
 }
 
+.bp-hello-social li a {
+	text-decoration: none;
+}
+
 /*
- * 4.4 - Content content
+ * 4.2 - Header content
+ */
+#plugin-information-title.with-banner {
+	background-image: url(https://ps.w.org/buddypress/assets/banner-772x250.png);
+}
+
+/*
+ * 4.3 - Content content
  */
 .bp-hello-content {
 	background-color: white;
@@ -259,6 +227,11 @@ TABLE OF CONTENTS:
 	width: 100%;
 }
 
+.bp-hello-content .bp-hello-alignleft img,
+.bp-hello-content .bp-hello-alignright img {
+	max-width: 200px;
+}
+
 /*------------------------------------------------------------------------------
  * 6.0 - Media Queries
  *----------------------------------------------------------------------------*/
@@ -266,45 +239,8 @@ TABLE OF CONTENTS:
  * 6.1 - Desktop Medium
  */
 @media only screen and (min-width: 1024px) {
-	#bp-hello-backdrop {
-		display: block;
-	}
-	#bp-hello-container {
-		position: fixed;
-		top: 60px;
-		left: var(--bp-hello-container-size);
-		right: var(--bp-hello-container-size);
-		bottom: 30px;
-		z-index: 9999;
-		border-radius: 3px;
-	}
-	#bp-hello-container .bp-hello-header h1 {
-		line-height: inherit;
-	}
-	.bp-hello-header {
-		height: auto;
-		max-height: inherit;
-		padding: 6px 30px;
-	}
-	.bp-hello-close {
-		right: 30px;
-	}
-	.bp-hello-close .close-modal:before {
-		line-height: 0.7;
-	}
-	.bp-hello-footer {
-		position: fixed;
-		left: var(--bp-hello-container-size);
-		right: var(--bp-hello-container-size);
-		bottom: 30px;
-		z-index: 10000;
-		height: auto;
-		max-height: inherit;
-		padding: 6px 30px;
-	}
 	.bp-hello-content {
-		height: calc(100% - 90px);
-		padding: 0 30px;
+		padding: 0 30px 20px;
 	}
 	.bp-hello-content p {
 		font-size: 14px;
@@ -314,10 +250,8 @@ TABLE OF CONTENTS:
 /**
  * 6.2 - Desktop Large
  */
-@media screen and (min-width: 1280px) {
-	#bp-hello-container,
-	.bp-hello-footer {
-		left: calc((100% - 896px) / 2);
-		right: calc((100% - 896px) / 2);
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
+	#plugin-information-title.with-banner {
+		background-image: url(https://ps.w.org/buddypress/assets/banner-1544x500.png);
 	}
 }
diff --git a/wp-content/plugins/buddypress/bp-core/admin/css/hello.min.css b/wp-content/plugins/buddypress/bp-core/admin/css/hello.min.css
index 800ee99c4..b9eb96ad9 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/css/hello.min.css
+++ b/wp-content/plugins/buddypress/bp-core/admin/css/hello.min.css
@@ -1 +1 @@
-:root{--bp-hello-color-primary:#d34600;--bp-hello-color-secondary:#e5e5e5;--bp-hello-container-size:15%}#bp-hello-container a{color:var(--bp-hello-color-primary)}#bp-hello-container a:hover{transition:all .1s ease-in-out;color:#000}#bp-hello-container .bp-hello-header h1{line-height:1.7;font-size:21px;font-weight:400}.bp-hello-content p{font-size:16px}.bp-hello-close .button{padding:5px!important}.bp-hello-close .close-modal:before{content:"\f158";color:#23282d;font:400 1.5em/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important}.bp-hello-close .close-modal:focus:before,.bp-hello-close .close-modal:hover:before{transition:all .1s ease-in-out;color:var(--bp-hello-color-primary)}.bp-hello-social li a:before{color:#23282d;font:400 30px/.6 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important}.bp-hello-social li a:hover:before{transition:all .1s ease-in-out;color:var(--bp-hello-color-primary)}.bp-hello-social li a.support:before{content:"\f448"}.bp-hello-social li a.twitter:before{content:"\f301"}#bp-hello-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;display:none}#bp-hello-container{position:fixed;top:0;bottom:80px;z-index:99999}.bp-disable-scroll{overflow:hidden}.bp-hello-footer{display:flex;flex-wrap:wrap;height:58px;max-height:58px}.bp-hello-social-cta,.bp-hello-social-links{flex-basis:50%}.bp-hello-social-links ul{display:inline-block}.bp-hello-social li{position:relative;bottom:-5px;display:inline-block;list-style-type:none;margin-bottom:0}.bp-hello-social li:last-child a{margin-left:4px}.bp-hello-header{height:58px;max-height:58px}.bp-hello-content{padding:0 25px;height:calc(100% - 58px);overflow-y:auto;-webkit-overflow-scrolling:touch}#bp-hello-backdrop{background-color:rgba(0,0,0,.8);transition:opacity .15s ease-out}#bp-hello-container{background-color:#fff}.bp-hello-footer{border-radius:0 0 3px 3px;background-color:#fff;border-top:1px solid var(--bp-hello-color-secondary);padding:6px 25px}.bp-hello-footer p{font-size:15px}.bp-hello-social-cta{text-align:left}.bp-hello-social-links{text-align:right}.bp-hello-social li a{text-decoration:none}.bp-hello-header{padding:6px 25px}.bp-hello-header h1{width:calc(100% - 51px)}#bp-hello-container .bp-hello-header{border-bottom:1px solid var(--bp-hello-color-secondary)}.bp-hello-title{text-align:left}.bp-hello-close{position:absolute;top:20px;right:25px;text-align:right}.bp-hello-content{background-color:#fff}.bp-hello-content img{border-radius:2px;max-width:100%}.bp-hello-content iframe{width:100%}@media only screen and (min-width:1024px){#bp-hello-backdrop{display:block}#bp-hello-container{position:fixed;top:60px;left:var(--bp-hello-container-size);right:var(--bp-hello-container-size);bottom:30px;z-index:9999;border-radius:3px}#bp-hello-container .bp-hello-header h1{line-height:inherit}.bp-hello-header{height:auto;max-height:inherit;padding:6px 30px}.bp-hello-close{right:30px}.bp-hello-close .close-modal:before{line-height:.7}.bp-hello-footer{position:fixed;left:var(--bp-hello-container-size);right:var(--bp-hello-container-size);bottom:30px;z-index:10000;height:auto;max-height:inherit;padding:6px 30px}.bp-hello-content{height:calc(100% - 90px);padding:0 30px}.bp-hello-content p{font-size:14px}}@media screen and (min-width:1280px){#bp-hello-container,.bp-hello-footer{left:calc((100% - 896px)/ 2);right:calc((100% - 896px)/ 2)}}
\ No newline at end of file
+:root{--bp-hello-color-primary:#d34600;--bp-hello-color-secondary:#e5e5e5;--bp-hello-container-size:15%}.bp-hello-content p{font-size:16px}.bp-hello-content ol,.bp-hello-content ul{list-style:inherit}.bp-hello-content h3{font-size:1.1em;font-weight:500}.bp-hello-social li a:before{color:#23282d;font:400 30px/.6 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important}.bp-hello-social li a:hover:before{transition:all .1s ease-in-out;color:var(--bp-hello-color-primary)}.bp-hello-social li a.support:before{content:"\f448"}.bp-hello-social li a.twitter:before{content:"\f301"}div.dashicons{width:-webkit-fit-content;width:fit-content}div.dashicons.big{font-size:128px;display:block;color:var(--bp-hello-color-primary);height:128px;width:128px}#plugin-information-footer{display:flex;flex-wrap:wrap;padding:0 16px;height:auto}#plugin-information-footer .dashicons-heart{color:#be3631}.bp-hello-social-cta,.bp-hello-social-links{flex-basis:50%}.bp-hello-social-links ul{display:inline-block}.bp-hello-social li{position:relative;bottom:-5px;display:inline-block;list-style-type:none;margin-bottom:0}.bp-hello-social li:last-child a{margin-left:4px}#bp-hello-container{display:none}.bp-hello-content{padding:0 25px;padding-bottom:20px}#dynamic-content{padding-bottom:40px;display:none}#dynamic-content.show{display:block}.plugin-details-modal #TB_title{height:0;background:0 0;border:none}#TB_window.plugin-details-modal.thickbox-loading:before{z-index:10;margin-top:40px;background-color:none}.bp-hello-aligncenter *{margin:10px auto}.bp-hello-alignleft{float:left}.bp-hello-alignleft:after{content:"";clear:left}.bp-hello-alignright{float:right}.bp-hello-alignright:after{content:"";clear:right}.bp-hello-divider{clear:both;border:none;margin-bottom:20px}.bp-hello-social-cta{text-align:left}.bp-hello-social-links{text-align:right}.bp-hello-social li a{text-decoration:none}#plugin-information-title.with-banner{background-image:url(https://ps.w.org/buddypress/assets/banner-772x250.png)}.bp-hello-content{background-color:#fff}.bp-hello-content img{border-radius:2px;max-width:100%}.bp-hello-content iframe{width:100%}.bp-hello-content .bp-hello-alignleft img,.bp-hello-content .bp-hello-alignright img{max-width:200px}@media only screen and (min-width:1024px){.bp-hello-content{padding:0 30px 20px}.bp-hello-content p{font-size:14px}}@media only screen and (-webkit-min-device-pixel-ratio:1.5){#plugin-information-title.with-banner{background-image:url(https://ps.w.org/buddypress/assets/banner-1544x500.png)}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-core/admin/js/hello.js b/wp-content/plugins/buddypress/bp-core/admin/js/hello.js
index 5805472cd..f6d59aef1 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/js/hello.js
+++ b/wp-content/plugins/buddypress/bp-core/admin/js/hello.js
@@ -1,116 +1,108 @@
+/* global bpHelloStrings */
 /**
  * Loads for BuddyPress Hello in wp-admin for query string `hello=buddypress`.
  *
  * @since 3.0.0
  */
-(function() {
-	/**
-	 * Open the BuddyPress Hello modal.
-	 */
-	var bp_hello_open_modal = function() {
-		var backdrop = document.getElementById( 'bp-hello-backdrop' ),
-			modal = document.getElementById( 'bp-hello-container' );
-
-		document.body.classList.add( 'bp-disable-scroll' );
-
-		// Show modal and overlay.
-		backdrop.style.display = '';
-		modal.style.display    = '';
-
-		// Focus the "X" so bp_hello_handle_keyboard_events() works.
-		var focus_target = modal.querySelectorAll( 'a[href], button' );
-		focus_target     = Array.prototype.slice.call( focus_target );
-		focus_target[0].focus();
-
-		// Events.
-		modal.addEventListener( 'keydown', bp_hello_handle_keyboard_events );
-		backdrop.addEventListener( 'click', bp_hello_close_modal );
-	};
+(function( $, bp ) {
+	// Bail if not set
+	if ( typeof bpHelloStrings === 'undefined' ) {
+		return;
+	}
 
 	/**
-	 * Close modal if "X" or background is touched.
-	 *
-	 * @param {Event} event - A click event.
+	 * Open the BuddyPress Hello modal.
 	 */
-	document.addEventListener( 'click', function( event ) {
-		var backdrop = document.getElementById( 'bp-hello-backdrop' );
-		if ( ! backdrop || ! document.getElementById( 'bp-hello-container' ) ) {
-			return;
+	var bpHelloOpenModal = function() {
+		if ( 'function' !== typeof window.tb_show ) {
+			return false;
 		}
 
-		var backdrop_click    = backdrop.contains( event.target ),
-			modal_close_click = event.target.classList.contains( 'close-modal' );
-
-		if ( ! modal_close_click && ! backdrop_click ) {
-			return;
-		}
+		window.tb_show( 'BuddyPress', '#TB_inline?inlineId=bp-hello-container' );
 
-		bp_hello_close_modal();
-	}, false );
+		$( '#TB_window' ).attr( {
+							'role': 'dialog',
+							'aria-label': bpHelloStrings.modalLabel
+						} )
+						.addClass( 'plugin-details-modal' )
+						.removeClass( 'thickbox-loading' );
 
-	/**
-	 * Close the Hello modal.
-	 */
-	var bp_hello_close_modal = function() {
-		var backdrop = document.getElementById( 'bp-hello-backdrop' ),
-			modal = document.getElementById( 'bp-hello-container' );
-
-		document.body.classList.remove( 'bp-disable-scroll' );
-
-		// Remove modal and overlay.
-		modal.parentNode.removeChild( modal );
-		backdrop.parentNode.removeChild( backdrop );
+		$( '#TB_ajaxContent' ).prop( 'style', 'height: 100%; width: auto; padding: 0; border: none;' );
 	};
 
 	/**
-	 * Restrict keyboard focus to elements within the BuddyPress Hello modal.
+	 * Prints an error message.
 	 *
-	 * @param {Event} event - A keyboard focus event.
+	 * @param {string} message The error message to display.
 	 */
-	var bp_hello_handle_keyboard_events = function( event ) {
-		var modal = document.getElementById( 'bp-hello-container' ),
-			focus_targets = Array.prototype.slice.call(
-				modal.querySelectorAll( 'a[href], button' )
-			),
-			first_tab_stop = focus_targets[0],
-			last_tab_stop  = focus_targets[ focus_targets.length - 1 ];
-
-		// Check for TAB key press.
-		if ( event.keyCode !== 9 ) {
-			return;
+	var printErrorMessage = function( message ) {
+		if ( ! message ) {
+			message = bpHelloStrings.pageNotFound;
 		}
 
-		// When SHIFT+TAB on first tab stop, go to last tab stop in modal.
-		if ( event.shiftKey && document.activeElement === first_tab_stop ) {
-			event.preventDefault();
-			last_tab_stop.focus();
-
-		// When TAB reaches last tab stop, go to first tab stop in modal.
-		} else if ( document.activeElement === last_tab_stop ) {
-			event.preventDefault();
-			first_tab_stop.focus();
-		}
+		$( '#dynamic-content' ).html(
+			$('<div></div>' ).prop( 'id', 'message' )
+					.addClass( 'notice notice-error error' )
+					.html(
+						$( '<p></p>' ).html( message )
+					)
+		);
 	};
 
-	/**
-	 * Close modal if escape key is presssed.
-	 *
-	 * @param {Event} event - A keyboard focus event.
-	 */
-	document.addEventListener( 'keyup', function( event ) {
-		if ( event.keyCode === 27 ) {
-			if ( ! document.getElementById( 'bp-hello-backdrop' ) || ! document.getElementById( 'bp-hello-container' ) ) {
-				return;
-			}
-
-			bp_hello_close_modal();
+	// Listen to Tab Menu clicks to display the different screens.
+	$( '#plugin-information-tabs').on( 'click', 'a', function( event ) {
+		event.preventDefault();
+
+		var anchor = $( event.currentTarget ), target = $( '#dynamic-content' );
+
+		if ( anchor.hasClass( 'dynamic' ) ) {
+			$( '#top-features' ).hide();
+			target.html( '' );
+			target.addClass( 'show' );
+
+			$( '#TB_window' ).addClass( 'thickbox-loading' );
+
+			bp.apiRequest( {
+				url: anchor.data( 'endpoint' ),
+				type: 'GET',
+				beforeSend: function( xhr, settings ) {
+					settings.url = settings.url.replace( '&_wpnonce=none', '' );
+				},
+				data: {
+					context: 'view',
+					slug: anchor.data( 'slug' ),
+					_wpnonce: 'none'
+				}
+			} ).done( function( data ) {
+				var page = _.first( data );
+
+				if ( page && page.content ) {
+					target.html( page.content.rendered );
+				} else {
+					printErrorMessage();
+				}
+
+			} ).fail( function( error ) {
+				if ( ! error || ! error.message ) {
+					return false;
+				}
+
+				printErrorMessage( error.message );
+
+			} ).always( function() {
+				$( '#TB_window' ).removeClass( 'thickbox-loading' );
+			} );
+
+		} else {
+			$( '#top-features' ).show();
+			target.html( '' );
+			target.removeClass( 'show' );
 		}
-	}, false );
+	} );
 
 	// Init modal after the screen's loaded.
-	if ( document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading' ) {
-		bp_hello_open_modal();
-	} else {
-		document.addEventListener( 'DOMContentLoaded', bp_hello_open_modal );
-	}
-}());
+	$( document ).ready( function() {
+		bpHelloOpenModal();
+	} );
+
+}( jQuery, window.bp || {} ) );
diff --git a/wp-content/plugins/buddypress/bp-core/admin/js/hello.min.js b/wp-content/plugins/buddypress/bp-core/admin/js/hello.min.js
index ef802107a..716ce4cd5 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/js/hello.min.js
+++ b/wp-content/plugins/buddypress/bp-core/admin/js/hello.min.js
@@ -1 +1 @@
-!function(){var e=function(){var e=document.getElementById("bp-hello-backdrop"),o=document.getElementById("bp-hello-container");document.body.classList.add("bp-disable-scroll"),e.style.display="",o.style.display="";var l=o.querySelectorAll("a[href], button");(l=Array.prototype.slice.call(l))[0].focus(),o.addEventListener("keydown",n),e.addEventListener("click",t)};document.addEventListener("click",function(e){var n=document.getElementById("bp-hello-backdrop");if(n&&document.getElementById("bp-hello-container")){var o=n.contains(e.target);(e.target.classList.contains("close-modal")||o)&&t()}},!1);var t=function(){var e=document.getElementById("bp-hello-backdrop"),t=document.getElementById("bp-hello-container");document.body.classList.remove("bp-disable-scroll"),t.parentNode.removeChild(t),e.parentNode.removeChild(e)},n=function(e){var t=document.getElementById("bp-hello-container"),n=Array.prototype.slice.call(t.querySelectorAll("a[href], button")),o=n[0],l=n[n.length-1];9===e.keyCode&&(e.shiftKey&&document.activeElement===o?(e.preventDefault(),l.focus()):document.activeElement===l&&(e.preventDefault(),o.focus()))};document.addEventListener("keyup",function(e){if(27===e.keyCode){if(!document.getElementById("bp-hello-backdrop")||!document.getElementById("bp-hello-container"))return;t()}},!1),(document.attachEvent?"complete"===document.readyState:"loading"!==document.readyState)?e():document.addEventListener("DOMContentLoaded",e)}();
\ No newline at end of file
+!function(n,e){if("undefined"!=typeof bpHelloStrings){var o=function(){if("function"!=typeof window.tb_show)return!1;window.tb_show("BuddyPress","#TB_inline?inlineId=bp-hello-container"),n("#TB_window").attr({role:"dialog","aria-label":bpHelloStrings.modalLabel}).addClass("plugin-details-modal").removeClass("thickbox-loading"),n("#TB_ajaxContent").prop("style","height: 100%; width: auto; padding: 0; border: none;")},t=function(e){e||(e=bpHelloStrings.pageNotFound),n("#dynamic-content").html(n("<div></div>").prop("id","message").addClass("notice notice-error error").html(n("<p></p>").html(e)))};n("#plugin-information-tabs").on("click","a",function(o){o.preventDefault();var a=n(o.currentTarget),i=n("#dynamic-content");a.hasClass("dynamic")?(n("#top-features").hide(),i.html(""),i.addClass("show"),n("#TB_window").addClass("thickbox-loading"),e.apiRequest({url:a.data("endpoint"),type:"GET",beforeSend:function(n,e){e.url=e.url.replace("&_wpnonce=none","")},data:{context:"view",slug:a.data("slug"),_wpnonce:"none"}}).done(function(n){var e=_.first(n);e&&e.content?i.html(e.content.rendered):t()}).fail(function(n){if(!n||!n.message)return!1;t(n.message)}).always(function(){n("#TB_window").removeClass("thickbox-loading")})):(n("#top-features").show(),i.html(""),i.removeClass("show"))}),n(document).ready(function(){o()})}}(jQuery,window.bp||{});
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-core/admin/sass/hello.scss b/wp-content/plugins/buddypress/bp-core/admin/sass/hello.scss
index 96d6b0ec9..8a981870a 100644
--- a/wp-content/plugins/buddypress/bp-core/admin/sass/hello.scss
+++ b/wp-content/plugins/buddypress/bp-core/admin/sass/hello.scss
@@ -9,15 +9,12 @@ TABLE OF CONTENTS:
 1.0 - Typography and colour
 2.0 - Dashicons
 3.0 - Elements
-	3.1 - Backdrop and container
-	3.2 - Modal footer
-	3.3 - Modal header
-	3.4 - Modal content
+	3.1 - Modal footer
+	3.2 - Modal content
 4.0 - Content styles
-	4.1 - Backdrop and container
-	4.2 - Footer content
-	4.3 - Header content
-	4.4 - Content content
+	4.1 - Footer content
+	4.2 - Header content
+	4.3 - Content content
 5.0 - Media
 6.0 - Media Queries
 	6.1 - Desktop Medium
@@ -33,67 +30,26 @@ TABLE OF CONTENTS:
 	--bp-hello-container-size: 15%;
 }
 
-#bp-hello-container {
-
-	a {
-		color: var(--bp-hello-color-primary);
-
-		&:hover {
-			-webkit-transition: all 0.1s ease-in-out;
-			-o-transition: all 0.1s ease-in-out;
-			transition: all 0.1s ease-in-out;
-			color: rgb(0, 0, 0);
-		}
-	}
-
-	.bp-hello-header {
-
-		h1 {
-			line-height: 1.7;
-			font-size: 21px;
-			font-weight: 400;
-		}
-	}
-}
-
 .bp-hello-content {
 
 	p {
 		font-size: 16px;
 	}
-}
 
-/*------------------------------------------------------------------------------
- * 2.0 - Dashicons
- *----------------------------------------------------------------------------*/
-.bp-hello-close {
-
-	.button {
-		padding: 5px !important;
+	ul,
+	ol {
+		list-style: inherit;
 	}
 
-	.close-modal {
-
-		&:before {
-			content: "\f158";
-			color: #23282d; /* wp toolbar */
-			font: 400 1.5em/1 dashicons;
-			speak: none;
-			-webkit-font-smoothing: antialiased;
-			-moz-osx-font-smoothing: grayscale;
-			background-image: none !important;
-		}
-
-		&:focus:before,
-		&:hover:before {
-			-webkit-transition: all 0.1s ease-in-out;
-			-o-transition: all 0.1s ease-in-out;
-			transition: all 0.1s ease-in-out;
-			color: var(--bp-hello-color-primary);
-		}
+	h3 {
+		font-size: 1.1em;
+		font-weight: 500;
 	}
 }
 
+/*------------------------------------------------------------------------------
+ * 2.0 - Dashicons
+ *----------------------------------------------------------------------------*/
 .bp-hello-social {
 
 	li a {
@@ -124,47 +80,36 @@ TABLE OF CONTENTS:
 	}
 }
 
-/*------------------------------------------------------------------------------
- * 3.0 - Elements
- *----------------------------------------------------------------------------*/
-
-/*
- * 3.1 - Backdrop and container
- */
-#bp-hello-backdrop {
-	position: fixed;
-	top: 0;
-	left: 0;
-	right: 0;
-	bottom: 0;
-	z-index: 9998;
+div.dashicons {
 
-	display: none;
-}
+	width: fit-content;
 
-#bp-hello-container {
-	position: fixed;
-	top: 0;
-	bottom: 80px;
-	z-index: 99999;
+	&.big {
+		font-size: 128px;
+		display: block;
+		color: var(--bp-hello-color-primary);
+		height: 128px;
+		width: 128px;
+	}
 }
 
-.bp-disable-scroll {
-	overflow: hidden;
-}
+/*------------------------------------------------------------------------------
+ * 3.0 - Elements
+ *----------------------------------------------------------------------------*/
 
 /*
- * 3.2 - Modal footer
+ * 3.1 - Modal footer
  */
-.bp-hello-footer {
-	display: -webkit-box;
-	display: -ms-flexbox;
+#plugin-information-footer {
+
 	display: flex;
-	-ms-flex-wrap: wrap;
 	flex-wrap: wrap;
+	padding: 0 16px;
+	height: auto;
 
-	height: 58px;
-	max-height: 58px;
+	.dashicons-heart {
+		color: #be3631;
+	}
 }
 
 .bp-hello-social-cta,
@@ -196,57 +141,74 @@ TABLE OF CONTENTS:
 }
 
 /*
- * 3.3 - Modal header
+ * 3.2 - Modal content
  */
-.bp-hello-header {
-	height: 58px;
-	max-height: 58px;
+
+#bp-hello-container {
+	display: none;
 }
 
-/*
- * 3.4 - Modal content
- */
 .bp-hello-content {
 	padding: 0 25px;
+	padding-bottom: 20px;
+}
+
+#dynamic-content {
+	padding-bottom: 40px;
+	display: none;
 
-	// Force scrolling.
-	height: calc(100% - 58px);
-	overflow-y: auto;
-	-webkit-overflow-scrolling: touch;
+	&.show {
+		display: block;
+	}
 }
 
-/*------------------------------------------------------------------------------
- * 4.0 - Content styles
- *----------------------------------------------------------------------------*/
+.plugin-details-modal #TB_title { /* stylelint-disable-line */
+	height: 0;
+	background: none;
+	border: none;
+}
 
-/*
- * 4.1 - Backdrop and container
- */
-#bp-hello-backdrop {
-	background-color: rgba(0, 0, 0, 0.8);
-	-webkit-transition: opacity 0.15s ease-out;
-	-o-transition: opacity 0.15s ease-out;
-	transition: opacity 0.15s ease-out;
+#TB_window.plugin-details-modal.thickbox-loading:before { /* stylelint-disable-line */
+	z-index: 10;
+	margin-top: 40px;
+	background-color: none;
 }
 
-#bp-hello-container {
-	background-color: rgb(255, 255, 255);
+.bp-hello-aligncenter * {
+	margin: 10px auto;
 }
 
-/*
- * 4.2 - Footer content
- */
-.bp-hello-footer {
-	border-radius: 0 0 3px 3px;
-	background-color: rgb(255, 255, 255);
-	border-top: 1px solid var(--bp-hello-color-secondary);
-	padding: 6px 25px;
+.bp-hello-alignleft {
+	float: left;
 
-	p {
-		font-size: 15px;
+	&:after {
+		content: "";
+		clear: left;
+	}
+}
+
+.bp-hello-alignright {
+	float: right;
+
+	&:after {
+		content: "";
+		clear: right;
 	}
 }
 
+.bp-hello-divider {
+	clear: both;
+	border: none;
+	margin-bottom: 20px;
+}
+
+/*------------------------------------------------------------------------------
+ * 4.0 - Content styles
+ *----------------------------------------------------------------------------*/
+
+/*
+ * 4.1 - Footer content
+ */
 .bp-hello-social-cta {
 	text-align: left;
 }
@@ -266,36 +228,14 @@ TABLE OF CONTENTS:
 }
 
 /*
- * 4.3 - Header content
+ * 4.2 - Header content
  */
-.bp-hello-header {
-	padding: 6px 25px;
-
-	h1 {
-		width: calc(100% - 51px);  // Approx. width of "X" button block.
-	}
-}
-
-#bp-hello-container {
-
-	.bp-hello-header {
-		border-bottom: 1px solid var(--bp-hello-color-secondary);
-	}
-}
-
-.bp-hello-title {
-	text-align: left;
-}
-
-.bp-hello-close {
-	position: absolute;
-	top: 20px;
-	right: 25px;
-	text-align: right;
+#plugin-information-title.with-banner {
+	background-image: url(https://ps.w.org/buddypress/assets/banner-772x250.png);
 }
 
 /*
- * 4.4 - Content content
+ * 4.3 - Content content
  */
 .bp-hello-content {
 	background-color: rgb(255, 255, 255);
@@ -314,6 +254,11 @@ TABLE OF CONTENTS:
 	iframe {
 		width: 100%;
 	}
+
+	.bp-hello-alignleft img,
+	.bp-hello-alignright img {
+		max-width: 200px;
+	}
 }
 
 /*------------------------------------------------------------------------------
@@ -325,75 +270,21 @@ TABLE OF CONTENTS:
  */
 @media only screen and (min-width: 1024px) {
 
-	#bp-hello-backdrop {
-		display: block;
-	}
-
-	#bp-hello-container {
-		position: fixed;
-		top: 60px;
-		left: var(--bp-hello-container-size);
-		right: var(--bp-hello-container-size);
-		bottom: 30px;
-		z-index: 9999;
-
-		border-radius: 3px;
-
-		.bp-hello-header {
-
-			h1 {
-				line-height: inherit;
-			}
-		}
-	}
-
-	.bp-hello-header {
-		height: auto;
-		max-height: inherit;
-		padding: 6px 30px;
-	}
-
-	.bp-hello-close {
-		right: 30px;
-
-		.close-modal:before {
-			line-height: 0.7;
-		}
-	}
-
-	.bp-hello-footer {
-		position: fixed; // Fixed position above "content" div.
-		left: var(--bp-hello-container-size);
-		right: var(--bp-hello-container-size);
-		bottom: 30px;
-		z-index: 10000; // See #bp-hello-backdrop
-
-		height: auto;
-		max-height: inherit;
-
-		padding: 6px 30px;
-	}
-
 	.bp-hello-content {
-		// Very very approx. height of header and footer.
-		height: calc(100% - 90px);
-		padding: 0 30px;
+		padding: 0 30px 20px;
+	}
 
-		p {
-			font-size: 14px;
-		}
+	.bp-hello-content p {
+		font-size: 14px;
 	}
 }
 
 /**
  * 6.2 - Desktop Large
  */
-@media screen and (min-width: 1280px) {
+@media only screen and ( -webkit-min-device-pixel-ratio: 1.5 ) {
 
-	#bp-hello-container,
-	.bp-hello-footer {
-		// Approx. max-width of modal at Desktop Medium size.
-		left: calc((100% - 896px) / 2);
-		right: calc((100% - 896px) / 2);
+	#plugin-information-title.with-banner {
+		background-image: url(https://ps.w.org/buddypress/assets/banner-1544x500.png);
 	}
 }
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php b/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php
index 77dcea1f8..bcdd0b675 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-attachments.php
@@ -1449,7 +1449,7 @@ function bp_attachments_cover_image_ajax_delete() {
 		wp_send_json_error();
 	}
 
-	if ( empty( $_POST['object'] ) || empty( $_POST['item_id'] ) ) {
+	if ( empty( $_POST['object'] ) || empty( $_POST['item_id'] ) || ( ! ctype_digit( $_POST['item_id'] ) && ! is_int( $_POST['item_id'] ) ) ) {
 		wp_send_json_error();
 	}
 
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php b/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php
index 68365a7a7..5eb8823e6 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php
@@ -476,7 +476,7 @@ function bp_core_fetch_avatar( $args = '' ) {
 	$legacy_group_avatar_name = ( 'full' == $params['type'] ) ? '-groupavatar-full' : '-groupavatar-thumb';
 
 	// Check for directory.
-	if ( file_exists( $avatar_folder_dir ) ) {
+	if ( ! $params['force_default'] && file_exists( $avatar_folder_dir ) ) {
 
 		// Open directory.
 		if ( $av_dir = opendir( $avatar_folder_dir ) ) {
@@ -637,6 +637,7 @@ function bp_core_fetch_avatar( $args = '' ) {
 		// Custom Gravatar URL args.
 		if ( ! empty( $params['force_default'] ) ) {
 			$url_args['f'] = 'y';
+			$url_args['d'] = $params['default'];
 		}
 		if ( ! empty( $params['rating'] ) ) {
 			$url_args['r'] = strtolower( $params['rating'] );
@@ -653,7 +654,7 @@ function bp_core_fetch_avatar( $args = '' ) {
 		$default_grav = apply_filters( 'bp_core_avatar_default', $default_grav, $params );
 
 		// Only set default image if 'Gravatar Logo' is not requested.
-		if ( 'gravatar_default' !== $default_grav ) {
+		if ( ! $params['force_default'] && 'gravatar_default' !== $default_grav ) {
 			$url_args['d'] = $default_grav;
 		}
 
@@ -717,7 +718,6 @@ function bp_core_delete_existing_avatar( $args = '' ) {
 	);
 
 	$args = wp_parse_args( $args, $defaults );
-	extract( $args, EXTR_SKIP );
 
 	/**
 	 * Filters whether or not to handle deleting an existing avatar.
@@ -744,47 +744,61 @@ function bp_core_delete_existing_avatar( $args = '' ) {
 		return true;
 	}
 
-	if ( empty( $item_id ) ) {
-		if ( 'user' == $object )
-			$item_id = bp_displayed_user_id();
-		elseif ( 'group' == $object )
-			$item_id = buddypress()->groups->current_group->id;
-		elseif ( 'blog' == $object )
-			$item_id = $current_blog->id;
+	if ( empty( $args['item_id'] ) ) {
+		if ( 'user' === $args['object'] ) {
+			$args['item_id'] = bp_displayed_user_id();
+		} elseif ( 'group' === $args['object'] ) {
+			$args['item_id'] = buddypress()->groups->current_group->id;
+		} elseif ( 'blog' === $args['object'] ) {
+			$args['item_id'] = $current_blog->id;
+		}
 
 		/** This filter is documented in bp-core/bp-core-avatars.php */
-		$item_id = apply_filters( 'bp_core_avatar_item_id', $item_id, $object );
+		$item_id = apply_filters( 'bp_core_avatar_item_id', $args['item_id'], $args['object'] );
+	} else {
+		$item_id = $args['item_id'];
+	}
 
-		if ( !$item_id ) return false;
+	if ( $item_id && ( ctype_digit( $item_id ) || is_int( $item_id ) ) ) {
+		$item_id = (int) $item_id;
+	} else {
+		return false;
 	}
 
-	if ( empty( $avatar_dir ) ) {
-		if ( 'user' == $object )
-			$avatar_dir = 'avatars';
-		elseif ( 'group' == $object )
-			$avatar_dir = 'group-avatars';
-		elseif ( 'blog' == $object )
-			$avatar_dir = 'blog-avatars';
+	if ( empty( $args['avatar_dir'] ) ) {
+		if ( 'user' === $args['object'] ) {
+			$args['avatar_dir'] = 'avatars';
+		} elseif ( 'group' === $args['object'] ) {
+			$args['avatar_dir'] = 'group-avatars';
+		} elseif ( 'blog' === $args['object'] ) {
+			$args['avatar_dir'] = 'blog-avatars';
+		}
 
 		/** This filter is documented in bp-core/bp-core-avatars.php */
-		$avatar_dir = apply_filters( 'bp_core_avatar_dir', $avatar_dir, $object );
+		$avatar_dir = apply_filters( 'bp_core_avatar_dir', $args['avatar_dir'], $args['object'] );
+	} else {
+		$avatar_dir = $args['avatar_dir'];
+	}
 
-		if ( !$avatar_dir ) return false;
+	if ( ! $avatar_dir ) {
+		return false;
 	}
 
 	/** This filter is documented in bp-core/bp-core-avatars.php */
-	$avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', bp_core_avatar_upload_path() . '/' . $avatar_dir . '/' . $item_id, $item_id, $object, $avatar_dir );
+	$avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', bp_core_avatar_upload_path() . '/' . $avatar_dir . '/' . $item_id, $item_id, $args['object'], $avatar_dir );
 
-	if ( !file_exists( $avatar_folder_dir ) )
+	if ( ! is_dir( $avatar_folder_dir ) ) {
 		return false;
+	}
 
 	if ( $av_dir = opendir( $avatar_folder_dir ) ) {
-		while ( false !== ( $avatar_file = readdir($av_dir) ) ) {
-			if ( ( preg_match( "/-bpfull/", $avatar_file ) || preg_match( "/-bpthumb/", $avatar_file ) ) && '.' != $avatar_file && '..' != $avatar_file )
+		while ( false !== ( $avatar_file = readdir( $av_dir ) ) ) {
+			if ( ( preg_match( "/-bpfull/", $avatar_file ) || preg_match( "/-bpthumb/", $avatar_file ) ) && '.' != $avatar_file && '..' != $avatar_file ) {
 				@unlink( $avatar_folder_dir . '/' . $avatar_file );
+			}
 		}
 	}
-	closedir($av_dir);
+	closedir( $av_dir );
 
 	@rmdir( $avatar_folder_dir );
 
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-cache.php b/wp-content/plugins/buddypress/bp-core/bp-core-cache.php
index 5cf0d9c07..6718bf71a 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-cache.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-cache.php
@@ -379,3 +379,14 @@ function bp_core_get_incrementor( $group ) {
 function bp_core_reset_incrementor( $group ) {
 	return wp_cache_delete( 'incrementor', $group );
 }
+
+/**
+ * Resets all incremented bp_invitations caches.
+ *
+ * @since 5.0.0
+ */
+function bp_invitations_reset_cache_incrementor() {
+	bp_core_reset_incrementor( 'bp_invitations' );
+}
+add_action( 'bp_invitation_after_save', 'bp_invitations_reset_cache_incrementor' );
+add_action( 'bp_invitation_after_delete', 'bp_invitations_reset_cache_incrementor' );
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php b/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php
index c7dd4aef8..0804d2774 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-catchuri.php
@@ -240,7 +240,7 @@ function bp_core_set_uri_globals() {
 	}
 
 	// Search doesn't have an associated page, so we check for it separately.
-	if ( !empty( $bp_uri[0] ) && ( bp_get_search_slug() == $bp_uri[0] ) ) {
+	if ( isset( $_POST['search-terms'] ) && !empty( $bp_uri[0] ) && ( bp_get_search_slug() == $bp_uri[0] ) ) {
 		$matches[]   = 1;
 		$match       = new stdClass;
 		$match->key  = 'search';
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php b/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php
index 987deb642..de96cf465 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-cssjs.php
@@ -27,7 +27,23 @@ function bp_core_register_common_scripts() {
 	 * eg. French (France) locale for WP is fr_FR. Here, we try to find fr-fr.js
 	 *     (this file doesn't exist).
 	 */
-	$locale = sanitize_file_name( strtolower( get_locale() ) );
+	$wp_locale = sanitize_file_name( strtolower( get_locale() ) );
+
+	// WP uses ISO 639-2 or -3 codes for some locales, which we must translate back to ISO 639-1.
+	$iso_locales = array(
+		'bel' => 'be',
+		'bre' => 'br',
+		'kir' => 'ky',
+		'mri' => 'mi',
+		'ssw' => 'ss',
+	);
+
+	if ( isset( $iso_locales[ $wp_locale ] ) ) {
+		$locale = $iso_locales[ $wp_locale ];
+	} else {
+		$locale = $wp_locale;
+	}
+
 	$locale = str_replace( '_', '-', $locale );
 	if ( file_exists( buddypress()->core->path . "bp-core/js/vendor/moment-js/locale/{$locale}{$min}.js" ) ) {
 		$moment_locale_url = $url . "vendor/moment-js/locale/{$locale}{$min}.js";
@@ -140,7 +156,7 @@ function bp_core_register_common_styles() {
 	foreach ( $styles as $id => $style ) {
 		wp_register_style( $id, $style['file'], $style['dependencies'], bp_get_version() );
 
-		wp_style_add_data( $id, 'rtl', true );
+		wp_style_add_data( $id, 'rtl', 'replace' );
 		if ( $min ) {
 			wp_style_add_data( $id, 'suffix', $min );
 		}
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-filters.php b/wp-content/plugins/buddypress/bp-core/bp-core-filters.php
index b2645961c..adc38a5ab 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-filters.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-filters.php
@@ -469,7 +469,22 @@ function bp_core_activation_signup_blog_notification( $domain, $path, $title, $u
 			'user.email'        => $user_email,
 		),
 	);
-	bp_send_email( 'core-user-registration-with-blog', array( array( $user_email => $user ) ), $args );
+
+	$signups = BP_Signup::get(
+		array(
+			'user_login' => $user,
+		)
+	);
+
+	$salutation = $user;
+	if ( $signups && bp_is_active( 'xprofile' ) ) {
+		$signup = $signups['signups'][0];
+		if ( isset( $signup->meta[ 'field_' . bp_xprofile_fullname_field_id() ] ) ) {
+			$salutation = $signup->meta[ 'field_' . bp_xprofile_fullname_field_id() ];
+		}
+	}
+
+	bp_send_email( 'core-user-registration-with-blog', array( array( $user_email => $salutation ) ), $args );
 
 	// Return false to stop the original WPMU function from continuing.
 	return false;
@@ -523,6 +538,13 @@ function bp_core_activation_signup_user_notification( $user, $user_email, $key,
 		$user_id = $user_object->ID;
 	}
 
+	$salutation = $user;
+	if ( bp_is_active( 'xprofile' ) && isset( $meta[ 'field_' . bp_xprofile_fullname_field_id() ] ) ) {
+		$salutation = $meta[ 'field_' . bp_xprofile_fullname_field_id() ];
+	} elseif ( $user_id ) {
+		$salutation = bp_core_get_user_displayname( $user_id );
+	}
+
 	$args = array(
 		'tokens' => array(
 			'activate.url' => esc_url( trailingslashit( bp_get_activation_page() ) . "{$key}/" ),
@@ -531,7 +553,7 @@ function bp_core_activation_signup_user_notification( $user, $user_email, $key,
 			'user.id'      => $user_id,
 		),
 	);
-	bp_send_email( 'core-user-registration', array( array( $user_email => $user ) ), $args );
+	bp_send_email( 'core-user-registration', array( array( $user_email => $salutation ) ), $args );
 
 	// Return false to stop the original WPMU function from continuing.
 	return false;
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-functions.php b/wp-content/plugins/buddypress/bp-core/bp-core-functions.php
index 4329a6eb5..9a362103c 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-functions.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-functions.php
@@ -3225,7 +3225,7 @@ function bp_send_email( $email_type, $to, $args = array() ) {
 	 */
 	$delivery_class = apply_filters( 'bp_send_email_delivery_class', 'BP_PHPMailer', $email_type, $to, $args );
 	if ( ! class_exists( $delivery_class ) ) {
-		return new WP_Error( 'missing_class', __CLASS__, $this );
+		return new WP_Error( 'missing_class', 'No class found by that name', $delivery_class );
 	}
 
 	$delivery = new $delivery_class();
@@ -3479,7 +3479,7 @@ function bp_email_get_schema() {
 			/* translators: do not remove {} brackets or translate its contents. */
 			'post_title'   => __( '[{{{site.name}}}] You have an invitation to the group: "{{group.name}}"', 'buddypress' ),
 			/* translators: do not remove {} brackets or translate its contents. */
-			'post_content' => __( "<a href=\"{{{inviter.url}}}\">{{inviter.name}}</a> has invited you to join the group: &quot;{{group.name}}&quot;.\n<a href=\"{{{invites.url}}}\">Go here to accept your invitation</a> or <a href=\"{{{group.url}}}\">visit the group</a> to learn more.", 'buddypress' ),
+			'post_content' => __( "<a href=\"{{{inviter.url}}}\">{{inviter.name}}</a> has invited you to join the group: &quot;{{group.name}}&quot;.\n{{invite.message}}\n<a href=\"{{{invites.url}}}\">Go here to accept your invitation</a> or <a href=\"{{{group.url}}}\">visit the group</a> to learn more.", 'buddypress' ),
 			/* translators: do not remove {} brackets or translate its contents. */
 			'post_excerpt' => __( "{{inviter.name}} has invited you to join the group: \"{{group.name}}\".\n\nTo accept your invitation, visit: {{{invites.url}}}\n\nTo learn more about the group, visit: {{{group.url}}}.\nTo view {{inviter.name}}'s profile, visit: {{{inviter.url}}}", 'buddypress' ),
 		),
@@ -3495,7 +3495,7 @@ function bp_email_get_schema() {
 			/* translators: do not remove {} brackets or translate its contents. */
 			'post_title'   => __( '[{{{site.name}}}] Membership request for group: {{group.name}}', 'buddypress' ),
 			/* translators: do not remove {} brackets or translate its contents. */
-			'post_content' => __( "<a href=\"{{{profile.url}}}\">{{requesting-user.name}}</a> wants to join the group &quot;{{group.name}}&quot;. As you are an administrator of this group, you must either accept or reject the membership request.\n\n<a href=\"{{{group-requests.url}}}\">Go here to manage this</a> and all other pending requests.", 'buddypress' ),
+			'post_content' => __( "<a href=\"{{{profile.url}}}\">{{requesting-user.name}}</a> wants to join the group &quot;{{group.name}}&quot;.\n {{request.message}}\n As you are an administrator of this group, you must either accept or reject the membership request.\n\n<a href=\"{{{group-requests.url}}}\">Go here to manage this</a> and all other pending requests.", 'buddypress' ),
 			/* translators: do not remove {} brackets or translate its contents. */
 			'post_excerpt' => __( "{{requesting-user.name}} wants to join the group \"{{group.name}}\". As you are the administrator of this group, you must either accept or reject the membership request.\n\nTo manage this and all other pending requests, visit: {{{group-requests.url}}}\n\nTo view {{requesting-user.name}}'s profile, visit: {{{profile.url}}}", 'buddypress' ),
 		),
@@ -3928,3 +3928,23 @@ function bp_is_large_install() {
 	 */
 	return (bool) apply_filters( 'bp_is_large_install', $is_large );
 }
+
+/**
+ * Returns the upper limit on the "max" item count, for widgets that support it.
+ *
+ * @since 5.0.0
+ *
+ * @param string $widget_class Optional. Class name of the calling widget.
+ * @return int
+ */
+function bp_get_widget_max_count_limit( $widget_class = '' ) {
+	/**
+	 * Filters the upper limit on the "max" item count, for widgets that support it.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int    $count        Defaults to 50.
+	 * @param string $widget_class Class name of the calling widget.
+	 */
+	return apply_filters( 'bp_get_widget_max_count_limit', 50, $widget_class );
+}
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-rest-api.php b/wp-content/plugins/buddypress/bp-core/bp-core-rest-api.php
new file mode 100644
index 000000000..3246b10b4
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-rest-api.php
@@ -0,0 +1,394 @@
+<?php
+/**
+ * Core REST API functions.
+ *
+ * @package BuddyPress
+ * @subpackage Core
+ * @since 5.0.0
+ */
+
+// Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Is the BP REST plugin is active?
+ *
+ * @since 5.0.0
+ *
+ * @return boolean True if the BP REST plugin is active. False otherwise.
+ */
+function bp_rest_is_plugin_active() {
+	return (bool) has_action( 'bp_rest_api_init', 'bp_rest', 5 );
+}
+
+/**
+ * Should we use the REST Endpoints of built BuddyPress?
+ *
+ * If the BP REST plugin is active, it overrides BuddyPress REST enpoints.
+ * This allows us to carry on maintaining all the BP REST API endpoints from
+ * the BP REST plugin on GitHub.
+ *
+ * @since 5.0.0
+ *
+ * @return bool Whether to use the REST Endpoints of built BuddyPress.
+ */
+function bp_rest_in_buddypress() {
+	$is_src = defined( 'BP_SOURCE_SUBDIRECTORY' ) && BP_SOURCE_SUBDIRECTORY === 'src';
+
+	return ! $is_src && ! bp_rest_is_plugin_active();
+}
+
+/**
+ * Check the availability of the BP REST API.
+ *
+ * @since 5.0.0
+ *
+ * @return boolean True if the BP REST API is available. False otherwise.
+ */
+function bp_rest_api_is_available() {
+
+	/**
+	 * Filter here to disable the BP REST API.
+	 *
+	 * The BP REST API requires at least WordPress 4.7.0
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param boolean $value True if the BP REST API is available. False otherwise.
+	 */
+	return apply_filters( 'bp_rest_api_is_available', function_exists( 'create_initial_rest_routes' ) && bp_rest_in_buddypress() ) || bp_rest_is_plugin_active();
+}
+
+/**
+ * Register the jQuery.ajax wrapper for BP REST API requests.
+ *
+ * @since 5.0.0
+ */
+function bp_rest_api_register_request_script() {
+	if ( ! bp_rest_api_is_available() ) {
+		return;
+	}
+
+	$dependencies = array( 'jquery' );
+
+	// The wrapper for WP REST API requests was introduced in WordPress 4.9.0.
+	if ( wp_script_is( 'wp-api-request', 'registered' ) ) {
+		$dependencies = array( 'wp-api-request' );
+	}
+
+	wp_register_script(
+		'bp-api-request',
+		sprintf( '%1$sbp-core/js/bp-api-request%2$s.js', buddypress()->plugin_url, bp_core_get_minified_asset_suffix() ),
+		$dependencies,
+		bp_get_version(),
+		true
+	);
+
+	wp_localize_script(
+		'bp-api-request',
+		'bpApiSettings',
+		array(
+			'root'            => esc_url_raw( get_rest_url() ),
+			'nonce'           => wp_create_nonce( 'wp_rest' ),
+			'unexpectedError' => __( 'An unexpected error occured. Please try again.', 'buddypress' ),
+		)
+	);
+}
+add_action( 'bp_init', 'bp_rest_api_register_request_script' );
+
+/**
+ * BuddyPress REST API namespace.
+ *
+ * @since 5.0.0
+ *
+ * @return string
+ */
+function bp_rest_namespace() {
+
+	/**
+	 * Filter API namespace.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $namespace BuddyPress core namespace.
+	 */
+	return apply_filters( 'bp_rest_namespace', 'buddypress' );
+}
+
+/**
+ * BuddyPress REST API version.
+ *
+ * @since 5.0.0
+ *
+ * @return string
+ */
+function bp_rest_version() {
+
+	/**
+	 * Filter API version.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $version BuddyPress core version.
+	 */
+	return apply_filters( 'bp_rest_version', 'v1' );
+}
+
+/**
+ * Get user URL.
+ *
+ * @since 5.0.0
+ *
+ * @param  int $user_id User ID.
+ * @return string
+ */
+function bp_rest_get_user_url( $user_id ) {
+	return sprintf(
+		'/%s/%s/members/%d',
+		bp_rest_namespace(),
+		bp_rest_version(),
+		$user_id
+	);
+}
+
+/**
+ * Set headers to let the Client Script be aware of the pagination.
+ *
+ * @since 5.0.0
+ *
+ * @param  WP_REST_Response $response The response data.
+ * @param  integer          $total    The total number of found items.
+ * @param  integer          $per_page The number of items per page of results.
+ * @return WP_REST_Response $response The response data.
+ */
+function bp_rest_response_add_total_headers( WP_REST_Response $response, $total = 0, $per_page = 0 ) {
+	if ( ! $total || ! $per_page ) {
+		return $response;
+	}
+
+	$total_items = (int) $total;
+	$max_pages   = ceil( $total_items / (int) $per_page );
+
+	$response->header( 'X-WP-Total', $total_items );
+	$response->header( 'X-WP-TotalPages', (int) $max_pages );
+
+	return $response;
+}
+
+/**
+ * Convert the input date to RFC3339 format.
+ *
+ * @since 5.0.0
+ *
+ * @param string      $date_gmt Date GMT format.
+ * @param string|null $date     Optional. Date object.
+ * @return string|null ISO8601/RFC3339 formatted datetime.
+ */
+function bp_rest_prepare_date_response( $date_gmt, $date = null ) {
+	if ( isset( $date ) ) {
+		return mysql_to_rfc3339( $date );
+	}
+
+	if ( '0000-00-00 00:00:00' === $date_gmt ) {
+		return null;
+	}
+
+	return mysql_to_rfc3339( $date_gmt );
+}
+
+/**
+ * Clean up member_type input.
+ *
+ * @since 5.0.0
+ *
+ * @param string $value Comma-separated list of group types.
+ * @return array|null
+ */
+function bp_rest_sanitize_member_types( $value ) {
+	if ( empty( $value ) ) {
+		return $value;
+	}
+
+	$types              = explode( ',', $value );
+	$registered_types   = bp_get_member_types();
+	$registered_types[] = 'any';
+	$valid_types        = array_intersect( $types, $registered_types );
+
+	return ( ! empty( $valid_types ) ) ? $valid_types : null;
+}
+
+/**
+ * Validate member_type input.
+ *
+ * @since 5.0.0
+ *
+ * @param  mixed $value Mixed value.
+ * @return WP_Error|boolean
+ */
+function bp_rest_validate_member_types( $value ) {
+	if ( empty( $value ) ) {
+		return true;
+	}
+
+	$types            = explode( ',', $value );
+	$registered_types = bp_get_member_types();
+
+	// Add the special value.
+	$registered_types[] = 'any';
+	foreach ( $types as $type ) {
+		if ( ! in_array( $type, $registered_types, true ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_member_type',
+				sprintf(
+					/* translators: %1$s and %2$s is replaced with the registered type(s) */
+					__( 'The member type you provided, %1$s, is not one of %2$s.', 'buddypress' ),
+					$type,
+					implode( ', ', $registered_types )
+				)
+			);
+		}
+	}
+}
+
+/**
+ * Clean up group_type input.
+ *
+ * @since 5.0.0
+ *
+ * @param string $value Comma-separated list of group types.
+ * @return array|null
+ */
+function bp_rest_sanitize_group_types( $value ) {
+	if ( empty( $value ) ) {
+		return null;
+	}
+
+	$types       = explode( ',', $value );
+	$valid_types = array_intersect( $types, bp_groups_get_group_types() );
+
+	return empty( $valid_types ) ? null : $valid_types;
+}
+
+/**
+ * Validate group_type input.
+ *
+ * @since 5.0.0
+ *
+ * @param  mixed $value Mixed value.
+ * @return WP_Error|bool
+ */
+function bp_rest_validate_group_types( $value ) {
+	if ( empty( $value ) ) {
+		return true;
+	}
+
+	$types            = explode( ',', $value );
+	$registered_types = bp_groups_get_group_types();
+	foreach ( $types as $type ) {
+		if ( ! in_array( $type, $registered_types, true ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_group_type',
+				sprintf(
+					/* translators: %1$s and %2$s is replaced with the registered types */
+					__( 'The group type you provided, %1$s, is not one of %2$s.', 'buddypress' ),
+					$type,
+					implode( ', ', $registered_types )
+				)
+			);
+		}
+	}
+}
+
+/**
+ * Clean up an array, comma- or space-separated list of strings.
+ *
+ * @since 5.0.0
+ *
+ * @param array|string $list List of strings.
+ * @return array Sanitized array of strings.
+ */
+function bp_rest_sanitize_string_list( $list ) {
+	if ( ! is_array( $list ) ) {
+		$list = preg_split( '/[\s,]+/', $list );
+	}
+
+	return array_unique( array_map( 'sanitize_text_field', $list ) );
+}
+
+/**
+ * Get the user object, if the ID is valid.
+ *
+ * @since 5.0.0
+ *
+ * @param int $user_id Supplied user ID.
+ * @return WP_User|boolean
+ */
+function bp_rest_get_user( $user_id ) {
+	if ( (int) $user_id <= 0 ) {
+		return false;
+	}
+
+	$user = get_userdata( (int) $user_id );
+	if ( empty( $user ) || ! $user->exists() ) {
+		return false;
+	}
+
+	return $user;
+}
+
+/**
+ * Registers a new field on an existing BuddyPress object.
+ *
+ * @since 5.0.0
+ *
+ * @param string $component_id The name of the *active* component (eg: `activity`, `groups`, `xprofile`).
+ *                             Required.
+ * @param string $attribute    The attribute name. Required.
+ * @param array  $args {
+ *     Optional. An array of arguments used to handle the registered field.
+ *     @see `register_rest_field()` for a full description.
+ * }
+ * @param string $object_type  The xProfile object type to get. This parameter is only required for
+ *                             the Extended Profiles component. Not used for all other components.
+ *                             Possible values are `data`, `field` or `group`.
+ * @return bool                True if the field has been registered successfully. False otherwise.
+ */
+function bp_rest_register_field( $component_id, $attribute, $args = array(), $object_type = '' ) {
+	$registered_fields = false;
+
+	if ( ! $component_id || ! bp_is_active( $component_id ) || ! $attribute ) {
+		return $registered_fields;
+	}
+
+	// Use the `bp_` prefix as we're using a WordPress global used for Post Types.
+	$field_name = 'bp_' . $component_id;
+
+	// Use the meta type as a suffix for the field name.
+	if ( 'xprofile' === $component_id ) {
+		if ( ! in_array( $object_type, array( 'data', 'field', 'group' ), true ) ) {
+			return $registered_fields;
+		}
+
+		$field_name .= '_' . $object_type;
+	}
+
+	$args = bp_parse_args(
+		$args,
+		array(
+			'get_callback'    => null,
+			'update_callback' => null,
+			'schema'          => null,
+		),
+		'rest_register_field'
+	);
+
+	// Register the field.
+	register_rest_field( $field_name, $attribute, $args );
+
+	if ( isset( $GLOBALS['wp_rest_additional_fields'][ $field_name ] ) ) {
+		$registered_fields = $GLOBALS['wp_rest_additional_fields'][ $field_name ];
+	}
+
+	// Check it has been registered.
+	return isset( $registered_fields[ $attribute ] );
+}
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-template.php b/wp-content/plugins/buddypress/bp-core/bp-core-template.php
index 93848249f..91b6b20e6 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-template.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-template.php
@@ -3030,7 +3030,7 @@ function bp_get_title_parts( $seplocation = 'right' ) {
 		$component_subnav_name = '';
 
 		if ( ! empty( $bp->members->nav ) ) {
-			$primary_nav_item = $bp->members->nav->get_primary( array( 'slug' => $component_id ), false );
+			$primary_nav_item = (array) $bp->members->nav->get_primary( array( 'slug' => $component_id ), false );
 			$primary_nav_item = reset( $primary_nav_item );
 		}
 
diff --git a/wp-content/plugins/buddypress/bp-core/bp-core-update.php b/wp-content/plugins/buddypress/bp-core/bp-core-update.php
index b006ff4d5..db6d0289e 100644
--- a/wp-content/plugins/buddypress/bp-core/bp-core-update.php
+++ b/wp-content/plugins/buddypress/bp-core/bp-core-update.php
@@ -211,6 +211,7 @@ function bp_version_updater() {
 		bp_update_option( 'bp-active-components', $default_components );
 		bp_core_add_page_mappings( $default_components, 'delete' );
 		bp_core_install_emails();
+		bp_core_install_invitations();
 
 	// Upgrades.
 	} else {
@@ -268,6 +269,11 @@ function bp_version_updater() {
 		if ( $raw_db_version < 11105 ) {
 			bp_update_to_2_7();
 		}
+
+		// Version 5.0.0.
+		if ( $raw_db_version < 12385 ) {
+			bp_update_to_5_0();
+		}
 	}
 
 	/* All done! *************************************************************/
@@ -542,6 +548,48 @@ function bp_update_to_2_7() {
 	bp_add_option( '_bp_ignore_deprecated_code', false );
 }
 
+/**
+ * 5.0.0 update routine.
+ *
+ * - Make sure the custom visibility is disabled for the default profile field.
+ * - Create the invitations table.
+ * - Migrate requests and invitations to the new table.
+ *
+ * @since 5.0.0
+ */
+function bp_update_to_5_0() {
+	/**
+	 * The xProfile component is active by default on new installs, even if it
+	 * might be inactive during this update, we need to set the custom visibility
+	 * for the default field, in case the Administrator decides to reactivate it.
+	 */
+	global $wpdb;
+	$bp_prefix = bp_core_get_table_prefix();
+	$field_id  = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp_prefix}bp_xprofile_fields WHERE name = %s", addslashes( bp_get_option( 'bp-xprofile-fullname-field-name' ) ) ) );
+
+	$wpdb->insert(
+		$bp_prefix . 'bp_xprofile_meta',
+		array(
+			'object_id'   => $field_id,
+			'object_type' => 'field',
+			'meta_key'    => 'allow_custom_visibility',
+			'meta_value'  => 'disabled'
+		),
+		array(
+			'%d',
+			'%s',
+			'%s',
+			'%s'
+		)
+	);
+
+	bp_core_install_invitations();
+
+	if ( bp_is_active( 'groups' ) ) {
+		bp_groups_migrate_invitations();
+	}
+}
+
 /**
  * Updates the component field for new_members type.
  *
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php
index 7149b5b9a..5631f1753 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-admin.php
@@ -536,17 +536,21 @@ class BP_Admin {
 	public function enqueue_scripts() {
 		wp_enqueue_style( 'bp-admin-common-css' );
 
-		// BuddyPress Hello
+		// BuddyPress Hello.
 		if ( 0 === strpos( get_current_screen()->id, 'dashboard' ) && ! empty( $_GET['hello'] ) && $_GET['hello'] === 'buddypress' ) {
 			wp_enqueue_style( 'bp-hello-css' );
 			wp_enqueue_script( 'bp-hello-js' );
+			wp_localize_script( 'bp-hello-js', 'bpHelloStrings', array(
+				'pageNotFound' => __( 'Sorry, the page you requested was not found.', 'buddypress' ),
+				'modalLabel'   => __( 'Hello BuddyPress', 'buddypress' ),
+			) );
 		}
 	}
 
 	/**
 	 * Registers BuddyPress's suggested privacy policy language.
 	 *
-	 * @since 3.x.y
+	 * @since 4.0.0
 	 */
 	public function add_privacy_policy_content() {
 		// Nothing to do if we're running < WP 4.9.6.
@@ -617,78 +621,163 @@ class BP_Admin {
 		if ( 0 !== strpos( get_current_screen()->id, 'dashboard' ) || empty( $_GET['hello'] ) || $_GET['hello'] !== 'buddypress' ) {
 			return;
 		}
-	?>
 
-		<div id="bp-hello-backdrop" style="display: none;">
-		</div>
+		// Get BuddyPress stable version.
+		$version      =  preg_replace( '/-.*/', '', bp_get_version() );
+		$version_slug = 'version-' . str_replace( '.', '-', $version );
+	?>
 
-		<div id="bp-hello-container" role="dialog" aria-labelledby="bp-hello-title" style="display: none;">
-			<div class="bp-hello-header" role="document">
-				<div class="bp-hello-close">
-					<button type="button" class="close-modal button bp-tooltip" data-bp-tooltip="<?php esc_attr_e( 'Close pop-up', 'buddypress' ); ?>">
-						<span class="screen-reader-text"><?php esc_html_e( 'Close pop-up', 'buddypress' ); ?></span>
-					</button>
+		<div id="bp-hello-container">
+			<div id="plugin-information-scrollable">
+				<div id='plugin-information-title' class="with-banner">
+					<div class='vignette'></div>
+					<h2>
+						<?php printf(
+							/* translators: %s is the placehoder for the BuddyPress version number. */
+							esc_html__( 'BuddyPress %s', 'buddypress' ),
+							$version
+						); ?>
+					</h2>
 				</div>
-
-				<div class="bp-hello-title">
-					<h1 id="bp-hello-title" tabindex="-1"><?php echo esc_html( _x( 'New in BuddyPress', 'section heading', 'buddypress' ) ); ?></h1>
+				<div id="plugin-information-tabs">
+					<a name="whats-new" href="#whats-new" class="current"><?php esc_html_e( 'What\'s new?', 'buddypress' ); ?></a>
+					<a name="changelog" href="#changelog" class="dynamic" data-slug="<?php echo esc_attr( $version_slug ); ?>" data-endpoint="https://codex.buddypress.org/wp-json/wp/v2/pages"><?php esc_html_e( 'Changelog', 'buddypress' ); ?></a>
+					<a name="get-involved" href="#get-involved" class="dynamic" data-slug="participate-and-contribute" data-endpoint="https://codex.buddypress.org/wp-json/wp/v2/pages"><?php esc_html_e( 'Get involved', 'buddypress' ); ?></a>
 				</div>
-			</div>
 
-			<div class="bp-hello-content">
-				<h2><?php esc_html_e( 'New tools for data control and privacy', 'buddypress' ); ?></h2>
-				<p>
-					<?php esc_html_e( 'BuddyPress boasts a proud history of letting community members and managers control their data, independent of third-party, commercial entities. In this spirit, as well as the spirit of recent regulations like the EU\'s General Data Protection Regulation (GDPR), BuddyPress 4.0 introduces a suite of tools allowing users and site admins to manage member data and privacy.', 'buddypress' ); ?>
-				</p>
-
-				<figure class="bp-hello-alignright">
-					<img class="bp-hello-img-border" src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/data-export.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of Export Data settings panel', 'buddypress' ); ?>" />
-					<figcaption>
-						<?php esc_html_e( 'Improved user control over data exports', 'buddypress' ); ?>
-					</figcaption>
-				</figure>
-
-				<p><?php esc_html_e( 'The new "Export Data" Settings panel lets users request an export of all BuddyPress data they\'ve created. BuddyPress integrates seamlessly with the data export functionality introduced in WordPress 4.9.8, and BP data is included in exports that are initiated either from the Export Data panel or via WP\'s Tools > Export Personal Data interface.', 'buddypress' ); ?></p>
-
-				<p><?php esc_html_e( 'BuddyPress 4.0 also integrates with WordPress 4.9.8\'s Privacy Policy tools. When you create or update your Privacy Policy, BP will suggest text that\'s specifically tailored to the kinds of social data generated on a BuddyPress site. And will prompt registering users to agree to the Privacy Policy, if your theme supports it.', 'buddypress' ); ?></p>
-
-				<h2><?php esc_html_e( 'Nouveau template improvements', 'buddypress' ); ?></h2>
-				<p><?php esc_html_e( 'BuddyPress 3.0 introduced a new set of default templates, which we call "Nouveau". In 4.0, we\'ve fixed bugs and smoothed the edges in these templates, including more accessible markup and improved appearance on mobile devices.', 'buddypress' ); ?></p>
-
-				<h2><?php esc_html_e( "BuddyPress: leaner, faster, stronger", 'buddypress' ); ?></h2>
-				<p><?php esc_html_e( 'With every BuddyPress version, we strive to make internal improvements to performance and code quality in addition to introducing new features and fixes. In BuddyPress 4.0, we\'ve improved PHP compatibility both in our codebase and in our automated testing tools; we\'ve reworked some automated tests for faster performance; we\'ve ensured compatibility with upcoming changes in WordPress; and we\'ve fixed a number of bugs in the formatting and sending of emails.', 'buddypress' ); ?></p>
-
-				<p><em>
-					<?php
-					printf(
-						__( 'To read the full list of features, fixes, and changes in this version of BuddyPress, <a href="%s">visit Trac</a>.', 'buddypress' ),
-						esc_url( 'https://buddypress.trac.wordpress.org/query?group=status&milestone=4.0' )
-					);
-					?>
-				</em></p>
-
-				<h2><?php echo esc_html( _x( 'Your feedback', 'screen heading', 'buddypress' ) ); ?></h2>
-				<p>
-					<?php
-					printf(
-						__( ' How are you using BuddyPress? Receiving your feedback and suggestions for future versions of BuddyPress genuinely motivates and encourages our contributors. Please <a href="%s">share your feedback</a> about this version of BuddyPress on our website. ', 'buddypress' ),
-						esc_url( 'https://buddypress.org/support/' )
-					);
-					?>
-				</p>
-				<p><?php esc_html_e( 'Thank you for using BuddyPress! 😊', 'buddypress' ); ?></p>
-
-				<br /><br />
-			</div>
+				<div class="bp-hello-content">
+					<div id="dynamic-content"></div>
+					<div id="top-features">
+						<h2><?php esc_html_e( 'Introducing the BP REST API', 'buddypress' ); ?></h2>
+						<figure class="bp-hello-alignleft">
+							<div class="dashicons dashicons-rest-api big"></div>
+						</figure>
+						<p>
+							<?php esc_html_e( 'BuddyPress 5.0.0 comes with REST API endpoints for members, groups, activities, users, private messages, screen notifications and extended profiles.', 'buddypress' ); ?>
+						</p>
+						<p>
+							<?php esc_html_e( 'BuddyPress endpoints provide machine-readable external access to your WordPress site with a clear, standards-driven interface, paving the way for new and innovative methods of interacting with your community through plugins, themes, apps, and beyond.', 'buddypress' ); ?>
+							<?php printf(
+								/* translators: %s is the placehoder for the link to the BP REST API documentation site. */
+								esc_html__( 'Ready to get started with development? Check out the %s.', 'buddypress' ),
+								sprintf(
+									'<a href="%1$s">%2$s</a>',
+									esc_url( 'https://developer.buddypress.org/bp-rest-api/' ),
+									esc_html__( 'BP REST API reference', 'buddypress' )
+								)
+							); ?>
+						</p>
+
+						<hr class="bp-hello-divider"/>
+
+						<h2><?php esc_html_e( 'A new interface for managing group members.', 'buddypress' ); ?></h2>
+						<p>
+							<?php esc_html_e( 'The best way to show the power of the BP REST API is to start using it for one of our Core features.', 'buddypress' ); ?>
+						</p>
+						<figure class="bp-hello-aligncenter">
+							<img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/manage-members-interface.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of the Group Members management interface in the administration and on the front-end of your site.', 'buddypress' ); ?>" />
+						</figure>
+						<p>
+							<?php esc_html_e( 'Group administrators will love our new interface for managing group membership. Whether you\'re working as a group admin on the front-end Manage tab, or as the site admin on the Dashboard, the new REST API-based tools are faster, easier to use, and more consistent.', 'buddypress' ); ?>
+						</p>
+
+						<hr class="bp-hello-divider"/>
+
+						<h2><?php esc_html_e( 'Improved Group invites and membership requests.', 'buddypress' ); ?></h2>
+						<figure class="bp-hello-alignright">
+							<div class="dashicons dashicons-buddicons-groups big"></div>
+						</figure>
+						<p>
+							<?php esc_html_e( 'Thanks to the new BP Invitations API, Group invites and membership requests are now managed in a more consistent way.', 'buddypress' ); ?>
+						</p>
+						<p>
+							<?php esc_html_e( 'The BP Invitations API abstracts how these two actions are handled and allows developers to use them for any object on your site (e.g., Sites of a WordPress network).', 'buddypress' ); ?>
+							<?php printf(
+								/* translators: %s is the placehoder for the link to the BP Invitations API development note. */
+								esc_html__( 'Read more about the %s.', 'buddypress' ),
+								sprintf(
+									'<a href="%1$s">%2$s</a>',
+									esc_url( 'https://bpdevel.wordpress.com/2019/09/16/new-invitations-api-coming-in-buddypress-5-0/' ),
+									esc_html__( 'BP Invitations API', 'buddypress' )
+								)
+							); ?>
+						</p>
+
+						<hr class="bp-hello-divider"/>
+
+						<h2><?php esc_html_e( 'Help our support volunteers help you.', 'buddypress' ); ?></h2>
+						<p>
+							<?php esc_html_e( 'Knowing your WordPress and BuddyPress configuration is very important when one of our beloved support volunteers tries to help you fix an issue. That\'s why we added a BuddyPress section to the Site Health Info Administration screen.', 'buddypress' ); ?>
+						</p>
+						<figure class="bp-hello-aligncenter">
+							<img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/site-health-buddypress-section.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of the BuddyPress section of the Site Health Info Administration screen.', 'buddypress' ); ?>" />
+						</figure>
+						<p>
+							<?php esc_html_e( 'The panel is displayed at the bottom of the screen. It includes the BuddyPress version, active components, active template pack, and a list of other component-specific settings information.', 'buddypress' ); ?>
+						</p>
+
+						<hr class="bp-hello-divider"/>
+
+						<h2><?php esc_html_e( 'Improved integrations with WordPress', 'buddypress' ); ?></h2>
+						<figure class="bp-hello-aligncenter">
+							<img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/bp-nouveau-improvements.png' );?>" alt="<?php esc_attr_e( 'Screenshot of the BuddyPress members directory & Password control in Twenty Ninteen.', 'buddypress' ); ?>" />
+						</figure>
+
+						<p>
+							<?php esc_html_e( 'In BuddyPress 5.0.0, the BP Nouveau template pack looks better than ever with the Twenty Nineteen theme.', 'buddypress' ); ?>
+							<?php esc_html_e( 'Nouveau also now uses the same password control as the one used in WordPress Core, for better consistency between BuddyPress and WordPress spaces.', 'buddypress' ); ?>
+						</p>
+
+						<p>
+							<strong><?php esc_html_e( 'BuddyPress Blocks now have their own category into the Block Editor.', 'buddypress' ); ?></strong>
+						</p>
+						<figure class="bp-hello-aligncenter">
+							<img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/buddypress-blocks-category.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of the BuddyPress block category.', 'buddypress' ); ?>" />
+						</figure>
+						<p>
+							<?php esc_html_e( 'Developers building tools for the Block Editor can now add their blocks to the BuddyPress category. This change provides a foundation for organizing custom BuddyPress blocks.', 'buddypress' ); ?>
+							<?php printf(
+								/* translators: %s is the placehoder for the link to the blocks category development note. */
+								esc_html__( 'Read more about this feature in the %s.', 'buddypress' ),
+								sprintf(
+									'<a href="%1$s">%2$s</a>',
+									esc_url( 'https://bpdevel.wordpress.com/2019/07/31/a-category-to-store-your-buddypress-blocks/' ),
+									esc_html__( 'development note', 'buddypress' )
+								)
+							); ?>
+						</p>
+
+						<hr class="bp-hello-divider"/>
+
+						<h2><?php echo esc_html( _x( 'Your feedback', 'screen heading', 'buddypress' ) ); ?></h2>
+						<p>
+							<?php
+							printf(
+								/* translators: %s is the placehoder for the link to BuddyPress support forums. */
+								esc_html__( ' How are you using BuddyPress? Receiving your feedback and suggestions for future versions of BuddyPress genuinely motivates and encourages our contributors. Please %s about this version of BuddyPress on our website. ', 'buddypress' ),
+								sprintf(
+									'<a href="%1$s">%2$s</a>',
+									esc_url( 'https://buddypress.org/support/' ),
+									esc_html__( 'share your feedback', 'buddypress' )
+								)
+							);
+							?>
+						</p>
+						<p><?php esc_html_e( 'Thank you for using BuddyPress! 😊', 'buddypress' ); ?></p>
 
-			<div class="bp-hello-footer">
+						<br /><br />
+					</div>
+				</div>
+			</div>
+			<div id="plugin-information-footer">
 				<div class="bp-hello-social-cta">
 					<p>
 						<?php
 						printf(
-							_n( 'Built by <a href="%s">%s volunteer</a>.', 'Built by <a href="%s">%s volunteers</a>.', 35, 'buddypress' ),
+							_n( 'Built with %1$s by <a href="%2$s">%3$d volunteer</a>.', 'Built with %1$s by <a href="%2$s">%3$d volunteers</a>.', 28, 'buddypress' ),
+							'<span class="dashicons dashicons-heart"></span>',
 							esc_url( bp_get_admin_url( 'admin.php?page=bp-credits' ) ),
-							number_format_i18n( 35 )
+							number_format_i18n( 28 )
 						);
 						?>
 					</p>
@@ -700,9 +789,9 @@ class BP_Admin {
 							<?php
 							printf(
 								'<a class="twitter bp-tooltip" data-bp-tooltip="%1$s" href="%2$s"><span class="screen-reader-text">%3$s</span></a>',
-								esc_attr( 'Follow BuddyPress on Twitter', 'buddypress' ),
+								esc_attr__( 'Follow BuddyPress on Twitter', 'buddypress' ),
 								esc_url( 'https://twitter.com/buddypress' ),
-								esc_html( 'Follow BuddyPress on Twitter', 'buddypress' )
+								esc_html__( 'Follow BuddyPress on Twitter', 'buddypress' )
 							);
 							?>
 						</li>
@@ -711,9 +800,9 @@ class BP_Admin {
 							<?php
 							printf(
 								'<a class="support bp-tooltip" data-bp-tooltip="%1$s" href="%2$s"><span class="screen-reader-text">%3$s</span></a>',
-								esc_attr( 'Visit the Support Forums', 'buddypress' ),
+								esc_attr__( 'Visit the Support Forums', 'buddypress' ),
 								esc_url( 'https://buddypress.org/support/' ),
-								esc_html( 'Visit the Support Forums', 'buddypress' )
+								esc_html__( 'Visit the Support Forums', 'buddypress' )
 							);
 							?>
 						</li>
@@ -863,42 +952,34 @@ class BP_Admin {
 
 			<h3 class="wp-people-group"><?php printf( esc_html__( 'Contributors to BuddyPress %s', 'buddypress' ), self::display_version() ); ?></h3>
 			<p class="wp-credits-list">
-				<a href="https://profiles.wordpress.org/xknown/">Alex Concha (xknown)</a>,
-				<a href="https://profiles.wordpress.org/ankit-k-gupta/">Ankit K Gupta (ankit-k-gupta)</a>,
+				<a href="https://github.com/baconbro">baconbro</a>,
 				<a href="https://profiles.wordpress.org/boonebgorges/">Boone B Gorges (boonebgorges)</a>,
+				<a href="https://profiles.wordpress.org/joncadams/">boop (joncadams)</a>,
 				<a href="https://profiles.wordpress.org/sbrajesh/">Brajesh Singh (sbrajesh)</a>,
-				<a href="https://profiles.wordpress.org/brianbws/">Brian Cruikshank (brianbws)</a>,
-				<a href="https://profiles.wordpress.org/needle/">Christian Wach (needle)</a>,
-				<a href="https://profiles.wordpress.org/cyberwani/">Dinesh Kesarwani (cyberwani)</a>,
-				<a href="https://profiles.wordpress.org/dipesh.kakadipa/">dipeshkakadiya</a>,
-				<a href="https://profiles.wordpress.org/drywallbmb/">drywallbmb</a>,
-				<a href="https://profiles.wordpress.org/dullowl/">dullowl</a>,
-				<a href="https://profiles.wordpress.org/eric01/">Eric (eric01)</a>,
-				<a href="https://profiles.wordpress.org/garrett-eclipse/">Garrett Hyder (garrett-eclipse)</a>,
-				<a href="https://profiles.wordpress.org/harshall/">Harshal Limaye (harshall)</a>,
-				<a href="https://profiles.wordpress.org/hnla/">Hugo (hnla)</a>,
+				<a href="https://profiles.wordpress.org/dcavins/">David Cavins (dcavins)</a>,
+				<a href="https://profiles.wordpress.org/ericlewis/">Eric Lewis (ericlewis)</a>,
+				<a href="https://profiles.wordpress.org/geminorum/">geminorum</a>,
+				<a href="https://profiles.wordpress.org/gingerbooch/">gingerbooch</a>,
+				<a href="https://profiles.wordpress.org/ivinco/">Ivinco</a>,
+				<a href="https://profiles.wordpress.org/whyisjake/">Jake Spurlock (whyisjake)</a>,
+				<a href="https://profiles.wordpress.org/JarretC/">Jarret (JarretC)</a>,
 				<a href="https://profiles.wordpress.org/johnjamesjacoby/">John James Jacoby (johnjamesjacoby)</a>,
-				<a href="https://profiles.wordpress.org/marcella1981/">Marcella (marcella1981)</a>,
+				<a href="https://profiles.wordpress.org/klawton/">klawton</a>,
+				<a href="https://profiles.wordpress.org/kristianngve/">Kristian Yngve (kristianngve)</a>,
+				<a href="https://profiles.wordpress.org/maniou/">Maniou</a>,
+				<a href="https://profiles.wordpress.org/netweblogic/">Marcus (netweblogic)</a>,
 				<a href="https://profiles.wordpress.org/imath/">Mathieu Viet (imath)</a>,
-				<a href="https://profiles.wordpress.org/mercime/">mercime</a>,
-				<a href="https://profiles.wordpress.org/MorgunovVit/">MorgunovVit</a>,
-				<a href="https://profiles.wordpress.org/n0barcode/">n0barcode</a>,
-				<a href="https://profiles.wordpress.org/pareshradadiya/">paresh.radadiya (pareshradadiya)</a>,
+				<a href="https://github.com/bhoot-biswas">Mithun Biswas</a>,
+				<a href="https://profiles.wordpress.org/modemlooper/">modemlooper</a>,
 				<a href="https://profiles.wordpress.org/DJPaul/">Paul Gibbs (DJPaul)</a>,
-				<a href="https://profiles.wordpress.org/pooja1210/">Pooja N Muchandikar (pooja1210)</a>,
 				<a href="https://profiles.wordpress.org/r-a-y/">r-a-y</a>,
+				<a href="https://profiles.wordpress.org/razor90/">razor90</a>,
 				<a href="https://profiles.wordpress.org/espellcaste/">Renato Alves (espellcaste)</a>,
-				<a href="https://profiles.wordpress.org/RT77/">RT77</a>,
-				<a href="https://profiles.wordpress.org/cyclic/">Ryan Williams (cyclic)</a>,
-				<a href="https://profiles.wordpress.org/elhardoum/">Samuel Elh (elhardoum)</a>,
-				<a href="https://profiles.wordpress.org/shubh14/">shubh14</a>,
-				<a href="https://profiles.wordpress.org/spdustin/">spdustin</a>,
-				<a href="https://profiles.wordpress.org/suvikki/">suvikki</a>,
+				<a href="https://profiles.wordpress.org/slaFFik/">Slava Abakumov (slaFFik)</a>,
 				<a href="https://profiles.wordpress.org/netweb/">Stephen Edgar (netweb)</a>,
-				<a href="https://profiles.wordpress.org/thejimmy/">thejimmy</a>,
-				<a href="https://profiles.wordpress.org/vapvarun/">vapvarun</a>,
-				<a href="https://profiles.wordpress.org/wbcomdesigns/">Wbcom Designs (wbcomdesigns)</a>,
-				<a href="https://profiles.wordpress.org/yahil/">Yahil Madakiya (yahil)</a>
+				<a href="https://profiles.wordpress.org/truchot/">truchot</a>,
+				<a href="https://profiles.wordpress.org/venutius/">Venutius</a>,
+				<a href="https://profiles.wordpress.org/wegosi/">wegosi</a>,
 			</p>
 
 			<h3 class="wp-people-group"><?php _e( 'With our thanks to these Open Source projects', 'buddypress' ); ?></h3>
@@ -1097,7 +1178,7 @@ class BP_Admin {
 			// 3.0
 			'bp-hello-css' => array(
 				'file'         => "{$url}hello{$min}.css",
-				'dependencies' => array( 'bp-admin-common-css' ),
+				'dependencies' => array( 'bp-admin-common-css', 'thickbox' ),
 			),
 		) );
 
@@ -1105,7 +1186,7 @@ class BP_Admin {
 
 		foreach ( $styles as $id => $style ) {
 			wp_register_style( $id, $style['file'], $style['dependencies'], $version );
-			wp_style_add_data( $id, 'rtl', true );
+			wp_style_add_data( $id, 'rtl', 'replace' );
 
 			if ( $min ) {
 				wp_style_add_data( $id, 'suffix', $min );
@@ -1140,7 +1221,7 @@ class BP_Admin {
 			// 3.0
 			'bp-hello-js' => array(
 				'file'         => "{$url}hello{$min}.js",
-				'dependencies' => array(),
+				'dependencies' => array( 'thickbox', 'bp-api-request' ),
 				'footer'       => true,
 			),
 		) );
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php
index 4802bf07f..9bcddd1cb 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-component.php
@@ -461,6 +461,11 @@ class BP_Component {
 		// Generate rewrite rules.
 		add_action( 'bp_generate_rewrite_rules', array( $this, 'generate_rewrite_rules' ), 10 );
 
+		// Register BP REST Endpoints
+		if ( bp_rest_in_buddypress() && bp_rest_api_is_available() ) {
+			add_action( 'bp_rest_api_init', array( $this, 'rest_api_init' ), 10 );
+		}
+
 		/**
 		 * Fires at the end of the setup_actions method inside BP_Component.
 		 *
@@ -857,5 +862,49 @@ class BP_Component {
 		 */
 		do_action( 'bp_' . $this->id . '_generate_rewrite_rules' );
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers The list of BP REST controllers to load.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		if ( is_array( $controllers ) && $controllers ) {
+			// Built-in controllers.
+			$_controllers = $controllers;
+
+			/**
+			 * Use this filter to disable all or some REST API controllers
+			 * for the component.
+			 *
+			 * This is a dynamic hook that is based on the component string ID.
+			 *
+			 * @since 5.0.0
+			 *
+			 * @param array $controllers The list of BP REST API controllers to load.
+			 */
+			$controllers = (array) apply_filters( 'bp_' . $this->id . '_rest_api_controllers', $controllers );
+
+			foreach( $controllers as $controller ) {
+				if ( ! in_array( $controller, $_controllers, true ) ) {
+					continue;
+				}
+
+				$component_controller = new $controller;
+				$component_controller->register_routes();
+			}
+		}
+
+		/**
+		 * Fires in the rest_api_init method inside BP_Component.
+		 *
+		 * This is a dynamic hook that is based on the component string ID.
+		 *
+		 * @since 5.0.0
+		 */
+		do_action( 'bp_' . $this->id . '_rest_api_init' );
+	}
 }
 endif; // BP_Component.
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-address.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-address.php
new file mode 100644
index 000000000..2340cc42b
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-address.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Interface for objects that have email address properties (address, name).
+ *
+ * @since 5.0.0
+ */
+
+interface BP_Email_Address {
+	/**
+	 * Gets the email address of the user.
+	 *
+	 * @since 5.0.0
+	 */
+	public function get_address();
+
+	/**
+	 * Gets the display name of the user.
+	 *
+	 * @since 5.0.0
+	 */
+	public function get_name();
+
+	/**
+	 * Sets the email address of the user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $email_address Email address.
+	 */
+	public function set_address( $email_address );
+
+	/**
+	 * Sets the name of the user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $name Name.
+	 */
+	public function set_name( $name );
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-participant.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-participant.php
new file mode 100644
index 000000000..4e475b64a
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-participant.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Base class for email "participants" (recipient, sender, Reply-To, etc).
+ *
+ * @since 5.0.0
+ */
+
+abstract class BP_Email_Participant implements BP_Email_Address {
+	/**
+	 * Recipient's email address.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var string
+	 */
+	protected $address = '';
+
+	/**
+	 * Recipient's name.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var string
+	 */
+	protected $name = '';
+
+	/**
+	 * Gets the email address of the user.
+	 *
+	 * @since 5.0.0
+	 */
+	public function get_address() {
+		/**
+		 * Filters an email user's address before it's returned.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param string        $address User's address.
+		 * @param BP_Email_User $user    Current instance of the email user class.
+		 */
+		return apply_filters( 'bp_email_user_get_address', $this->address, $this );
+	}
+
+	/**
+	 * Gets the email name of the user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return string
+	 */
+	public function get_name() {
+		/**
+		 * Filters an email user's name before it's returned.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param string        $name Recipient's name.
+		 * @param BP_Email_User $user Current instance of the email user class.
+		 */
+		return apply_filters( 'bp_email_recipient_get_name', $this->name, $this );
+	}
+
+	/**
+	 * Sets the email address of the user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $email_address Email address.
+	 */
+	public function set_address( $email_address ) {
+		$this->address = $email_address;
+	}
+
+	/**
+	 * Sets the name of the user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $name Name.
+	 */
+	public function set_name( $name ) {
+		$this->name = $name;
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php
index 4cc17c4de..882ceb359 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-recipient.php
@@ -14,25 +14,7 @@ defined( 'ABSPATH' ) || exit;
  *
  * @since 2.5.0
  */
-class BP_Email_Recipient {
-
-	/**
-	 * Recipient's email address.
-	 *
-	 * @since 2.5.0
-	 *
-	 * @var string
-	 */
-	protected $address = '';
-
-	/**
-	 * Recipient's name.
-	 *
-	 * @since 2.5.0
-	 *
-	 * @var string
-	 */
-	protected $name = '';
+class BP_Email_Recipient extends BP_Email_Participant {
 
 	/**
 	 * Optional. A `WP_User` object relating to this recipient.
@@ -88,7 +70,7 @@ class BP_Email_Recipient {
 
 		// Set address if we have one.
 		if ( ! empty( $address ) ) {
-			$this->address = sanitize_email( $address );
+			$this->set_address( sanitize_email( $address ) );
 		}
 
 		// Still no user object; try to query user by email address.
@@ -101,14 +83,14 @@ class BP_Email_Recipient {
 			// This is escaped with esc_html in bp_core_get_user_displayname()
 			$wp_name = wp_specialchars_decode( bp_core_get_user_displayname( $this->user_object->ID ), ENT_QUOTES );
 
-			$this->address = $this->user_object->user_email;
-			$this->name    = sanitize_text_field( $wp_name );
+			$this->set_address( $this->user_object->user_email );
+			$this->set_name( $wp_name );
 
 		}
 
 		// Custom name override.
 		if ( $name ) {
-			$this->name = $name;
+			$this->set_name( $name );
 		}
 
 		/**
@@ -132,16 +114,17 @@ class BP_Email_Recipient {
 	 * @return string
 	 */
 	public function get_address() {
+		$address = parent::get_address();
 
 		/**
 		 * Filters the recipient's address before it's returned.
 		 *
 		 * @since 2.5.0
 		 *
-		 * @param string $address Recipient's address.
-		 * @param BP_Email $recipient $this Current instance of the email recipient class.
+		 * @param string             $address   Recipient's address.
+		 * @param BP_Email_Recipient $recipient Current instance of the email recipient class.
 		 */
-		return apply_filters( 'bp_email_recipient_get_address', $this->address, $this );
+		return apply_filters( 'bp_email_recipient_get_address', $address, $this );
 	}
 
 	/**
@@ -152,16 +135,17 @@ class BP_Email_Recipient {
 	 * @return string
 	 */
 	public function get_name() {
+		$name = parent::get_name();
 
 		/**
 		 * Filters the recipient's name before it's returned.
 		 *
 		 * @since 2.5.0
 		 *
-		 * @param string $name Recipient's name.
-		 * @param BP_Email $recipient $this Current instance of the email recipient class.
+		 * @param string             $name      Recipient's name.
+		 * @param BP_Email_Recipient $recipient Current instance of the email recipient class.
 		 */
-		return apply_filters( 'bp_email_recipient_get_name', $this->name, $this );
+		return apply_filters( 'bp_email_recipient_get_name', $name, $this );
 	}
 
 	/**
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-sender.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-sender.php
new file mode 100644
index 000000000..8e5001335
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email-sender.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Email sender object (From, Reply-To).
+ *
+ * @since 5.0.0
+ */
+
+class BP_Email_Sender extends BP_Email_Participant {}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email.php
index 9112bc8c0..78188fe4e 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-email.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-email.php
@@ -65,7 +65,7 @@ class BP_Email {
 	 *
 	 * @since 2.5.0
 	 *
-	 * @var BP_Email_Recipient Sender details.
+	 * @var BP_Email_Sender Sender details.
 	 */
 	protected $from = null;
 
@@ -101,7 +101,7 @@ class BP_Email {
 	 *
 	 * @since 2.5.0
 	 *
-	 * @var BP_Email_Recipient "Reply to" details.
+	 * @var BP_Email_Sender "Reply to" details.
 	 */
 	protected $reply_to = null;
 
@@ -430,7 +430,7 @@ class BP_Email {
 	 *
 	 * @param string $transform Optional. How to transform the return value.
 	 *                          Accepts 'raw' (default) or 'replace-tokens'.
-	 * @return BP_Email_Recipient "From" recipient.
+	 * @return BP_Email_Sender "From" recipient.
 	 */
 	public function get_from( $transform = 'raw' ) {
 		return $this->get( 'from', $transform );
@@ -738,7 +738,10 @@ class BP_Email {
 	 * @return BP_Email
 	 */
 	public function set_from( $email_address, $name = '' ) {
-		$from = new BP_Email_Recipient( $email_address, $name );
+		$from = new BP_Email_Sender();
+
+		$from->set_address( $email_address );
+		$from->set_name( $name );
 
 		/**
 		 * Filters the new value of the email's "from" property.
@@ -810,7 +813,10 @@ class BP_Email {
 	 * @return BP_Email
 	 */
 	public function set_reply_to( $email_address, $name = '' ) {
-		$reply_to = new BP_Email_Recipient( $email_address, $name );
+		$reply_to = new BP_Email_Sender();
+
+		$reply_to->set_address( $email_address );
+		$reply_to->set_name( $name );
 
 		/**
 		 * Filters the new value of the email's "reply to" property.
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php
index 5aae8689c..b605ae700 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-embed.php
@@ -138,7 +138,13 @@ class BP_Embed extends WP_Embed {
 		$attr['discover'] = ( apply_filters( 'bp_embed_oembed_discover', $default_discovery ) && $unfiltered_html );
 
 		// Set up a new WP oEmbed object to check URL with registered oEmbed providers.
-		require_once( ABSPATH . WPINC . '/class-oembed.php' );
+		if ( file_exists( ABSPATH . WPINC . '/class-wp-oembed.php' ) ) {
+			require_once( ABSPATH . WPINC . '/class-wp-oembed.php' );
+		} else {
+			// class-oembed.php is deprecated in WordPress 5.3.0.
+			require_once( ABSPATH . WPINC . '/class-oembed.php' );
+		}
+
 		$oembed_obj = _wp_oembed_get_object();
 
 		// If oEmbed discovery is true, skip oEmbed provider check.
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation-manager.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation-manager.php
new file mode 100644
index 000000000..904fe3e4e
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation-manager.php
@@ -0,0 +1,717 @@
+<?php
+/**
+ * Core invitations class.
+ *
+ * @package BuddyPress
+ * @subpackage Core
+ * @since 5.0.0
+ */
+
+// Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * BP Invitations class.
+ *
+ * Extend it to manage your class's invitations.
+ * Your extension class, must, at a minimum, provide the
+ * run_send_action() and run_acceptance_action() methods.
+ *
+ * @since 5.0.0
+ */
+abstract class BP_Invitation_Manager {
+
+	/**
+	 * The name of the related class.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var string
+	 */
+	protected $class_name;
+
+	/**
+	 * Construct parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array|string $args {
+	 * }
+	 */
+	public function __construct( $args = array() ) {
+		$this->class_name = get_class( $this );
+	}
+
+	/**
+	 * Get the invitations table name.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @return string
+	 */
+	public static function get_table_name() {
+		return buddypress()->table_prefix . 'bp_invitations';
+	}
+
+	/** Create ********************************************************************/
+
+	/**
+	 * Add an invitation to a specific user, from a specific user, related to a
+	 * specific class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args {
+	 *     Array of arguments describing the invitation. All are optional.
+	 *	   @type int    $user_id           ID of the invited user.
+	 *	   @type int    $inviter_id        ID of the user who created the invitation.
+	 *	   @type string $invitee_email     Email address of the invited user.
+	 * 	   @type int    $item_id           ID associated with the invitation and class.
+	 * 	   @type int    $secondary_item_id Secondary ID associated with the
+	 *			                           invitation and class.
+	 * 	   @type string $type              Type of record this is: 'invite' or 'request'.
+	 * 	   @type string $content           Extra information provided by the requester
+	 *			                           or inviter.
+	 * 	   @type string $date_modified     Date the invitation was last modified.
+	 * 	   @type int    $send_invite       Should the invitation also be sent, or is it a
+	 *			                           draft invite?
+	 * }
+	 * @return int|bool ID of the newly created invitation on success, false
+	 *         on failure.
+	 */
+	public function add_invitation( $args = array() ) {
+
+		$r = bp_parse_args( $args, array(
+			'user_id'           => 0,
+			'invitee_email'     => '',
+			'inviter_id'        => 0,
+			'item_id'           => 0,
+			'secondary_item_id' => 0,
+			'type'              => 'invite',
+			'content'           => '',
+			'date_modified'     => bp_core_current_time(),
+			'send_invite'       => 0,
+			'accepted'          => 0
+		), 'add_invitation' );
+
+		// Invitations must have an invitee and inviter.
+		if ( ! ( ( $r['user_id'] || $r['invitee_email'] ) && $r['inviter_id'] ) ) {
+			return false;
+		}
+
+		/**
+		 * Is this user allowed to extend invitations in this situation?
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $r Describes the invitation to be added.
+		 */
+		if ( ! $this->allow_invitation( $r ) ) {
+			return false;
+		}
+
+		// Avoid creating duplicate invitations.
+		$invite_id = $this->invitation_exists( array(
+			'user_id'           => $r['user_id'],
+			'invitee_email'     => $r['invitee_email'],
+			'inviter_id'        => $r['inviter_id'],
+			'item_id'           => $r['item_id'],
+			'secondary_item_id' => $r['secondary_item_id'],
+		) );
+
+		if ( ! $invite_id ) {
+			// Set up the new invitation as a draft.
+			$invitation                    = new BP_Invitation;
+			$invitation->user_id           = $r['user_id'];
+			$invitation->inviter_id        = $r['inviter_id'];
+			$invitation->invitee_email     = $r['invitee_email'];
+			$invitation->class             = $this->class_name;
+			$invitation->item_id           = $r['item_id'];
+			$invitation->secondary_item_id = $r['secondary_item_id'];
+			$invitation->type              = $r['type'];
+			$invitation->content           = $r['content'];
+			$invitation->date_modified     = $r['date_modified'];
+			$invitation->invite_sent       = 0;
+			$invitation->accepted          = 0;
+
+			$invite_id = $invitation->save();
+		}
+
+		// "Send" the invite if necessary.
+		if ( $invite_id && $r['send_invite'] ) {
+			$sent = $this->send_invitation_by_id( $invite_id );
+			if ( ! $sent ) {
+				return false;
+			}
+		}
+
+		return $invite_id;
+	}
+
+	/**
+	 * Send an invitation notification.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 *
+	 * @param int $invitation_id ID of invitation to send.
+	 *
+	 * @return int|bool The number of rows updated, or false on error.
+	 */
+	public function send_invitation_by_id( $invitation_id = 0 ) {
+		$updated = false;
+
+		$invitation = new BP_Invitation( $invitation_id );
+
+		if ( ! $invitation->id ) {
+			return false;
+		}
+
+		/**
+		 * Fires before an invitation is sent.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Invitation object $invitation Invitation about to be sent.
+		 */
+		do_action( 'bp_invitations_send_invitation_by_id_before_send', $invitation );
+
+		/*
+		 * Before sending an invitation, check for outstanding requests to the same item.
+		 * A sent invitation + a request = acceptance.
+		 */
+		$request_args = array(
+			'user_id'           => $invitation->user_id,
+			'invitee_email'     => $invitation->invitee_email,
+			'item_id'           => $invitation->item_id,
+			'secondary_item_id' => $invitation->secondary_item_id,
+		);
+		$request = $this->request_exists( $request_args );
+
+		if ( ! empty( $request ) ) {
+			// Accept the request.
+			return $this->accept_request( $request_args );
+		}
+
+		// Perform the send action.
+		$this->run_send_action( $invitation );
+
+		$updated = BP_Invitation::mark_sent( $invitation->id );
+
+		return $updated;
+	}
+
+	/**
+	 * Add a request to an item for a specific user, related to a
+	 * specific class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args {
+	 *     Array of arguments describing the invitation. All are optional.
+	 *	   @type int    $user_id ID of the invited user.
+	 *	   @type int    $inviter_id ID of the user who created the invitation.
+	 * 	   @type string $class Name of the invitations class.
+	 * 	   @type int    $item_id ID associated with the invitation and class.
+	 * 	   @type int    $secondary_item_id secondary ID associated with the
+	 *			        invitation and class.
+	 * 	   @type string $type @TODO. < missing description.
+	 * 	   @type string $content Extra information provided by the requester
+	 *			        or inviter.
+	 * 	   @type string $date_modified Date the invitation was last modified.
+	 * 	   @type int    $invite_sent Has the invitation been sent, or is it a
+	 *			 draft invite?
+	 * }
+	 * @return int|bool ID of the newly created invitation on success, false
+	 *         on failure.
+	 */
+	public function add_request( $args = array() ) {
+
+		$r = bp_parse_args( $args, array(
+			'user_id'           => 0,
+			'inviter_id'        => 0,
+			'invitee_email'     => '',
+			'item_id'           => 0,
+			'secondary_item_id' => 0,
+			'type'              => 'request',
+			'content'           => '',
+			'date_modified'     => bp_core_current_time(),
+			'invite_sent'       => 0,
+			'accepted'          => 0
+		), 'add_request' );
+
+		// If there is no invitee, bail.
+		if ( ! ( $r['user_id'] || $r['invitee_email'] ) ) {
+			return false;
+		}
+
+		/**
+		 * Is this user allowed to make a request in this situation?
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $r Describes the invitation to be added.
+		 */
+		if ( ! $this->allow_request( $r ) ) {
+			return false;
+		}
+
+		/*
+		 * Avoid creating duplicate requests.
+		 */
+		$base_args = array(
+			'user_id'           => $r['user_id'],
+			'invitee_email'     => $r['invitee_email'],
+			'item_id'           => $r['item_id'],
+			'secondary_item_id' => $r['secondary_item_id'],
+		);
+		if ( $this->request_exists( $base_args ) ) {
+			return false;
+		}
+
+		/*
+		 * Check for outstanding invitations to the same item.
+		 * A request + a sent invite = acceptance.
+		 */
+		$invite_args = array_merge( $base_args, array( 'invite_sent' => 'sent' ) );
+		$invite = $this->invitation_exists( $invite_args );
+
+		if ( $invite ) {
+			// Accept the invite.
+			return $this->accept_invitation( $base_args );
+		} else {
+			// Set up the new request.
+			$request                    = new BP_Invitation;
+			$request->user_id           = $r['user_id'];
+			$request->inviter_id        = $r['inviter_id'];
+			$request->invitee_email     = $r['invitee_email'];
+			$request->class             = $this->class_name;
+			$request->item_id           = $r['item_id'];
+			$request->secondary_item_id = $r['secondary_item_id'];
+			$request->type              = $r['type'];
+			$request->content           = $r['content'];
+			$request->date_modified     = $r['date_modified'];
+			$request->invite_sent       = $r['invite_sent'];
+			$request->accepted          = $r['accepted'];
+
+			// Save the new invitation.
+			return $request->save();
+		}
+	}
+
+	/**
+	 * Send a request notification.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 *
+	 * @param int $request_id ID of request to send.
+	 *
+	 * @return int|bool The number of rows updated, or false on error.
+	 */
+	public function send_request_notification_by_id( $request_id = 0 ) {
+		$updated = false;
+
+		$request = new BP_Invitation( $request_id );
+
+		if ( ! $request->id ) {
+			return false;
+		}
+
+		// Different uses may need different actions on sending. Plugins can hook in here to perform their own tasks.
+		do_action( 'bp_invitations_send_request_notification_by_id_before_send', $request_id, $request );
+
+		/*
+		 * Before sending notifications, check for outstanding invitations to the same item.
+		 * A sent invitation + a request = acceptance.
+		 */
+		$args = array(
+			'user_id'           => $request->user_id,
+			'invitee_email'     => $request->invitee_email,
+			'item_id'           => $request->item_id,
+			'secondary_item_id' => $request->secondary_item_id,
+			'invite_sent'       => 'sent'
+		);
+		$invites = $this->invitation_exists( $args );
+
+		if ( ! empty( $invites ) ) {
+			// Accept the request.
+			return $this->accept_invitation( $args );
+		}
+
+		// Perform the send action.
+		$this->run_send_action( $request );
+
+		$updated = BP_Invitation::mark_sent( $request->id );
+
+		return $updated;
+	}
+
+	/** Retrieve ******************************************************************/
+
+	/**
+	 * Get a specific invitation by its ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id ID of the invitation.
+	 * @return BP_Invitation object
+	 */
+	public function get_by_id( $id = 0 ) {
+		return new BP_Invitation( $id );
+	}
+
+	/**
+	 * Get invitations, based on provided filter parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of accepted parameters.
+	 *
+	 * @return array Located invitations.
+	 */
+	public function get_invitations( $args = array() ) {
+		// Default to returning invitations, not requests.
+		if ( empty( $args['type'] ) ) {
+			$args['type'] = 'invite';
+		}
+		// Use the class_name property value.
+		$args['class'] = $this->class_name;
+
+		return BP_Invitation::get( $args );
+	}
+
+	/**
+	 * Get requests, based on provided filter parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of accepted parameters.
+	 *
+	 * @return array Located invitations.
+	 */
+	public function get_requests( $args = array() ) {
+		// Set request-specific parameters.
+		$args['type']        = 'request';
+		$args['inviter_id']  = false;
+		$args['invite_sent'] = 'all';
+
+		// Use the class_name property value.
+		$args['class'] = $this->class_name;
+
+		return BP_Invitation::get( $args );
+	}
+
+	/**
+	 * Check whether an invitation exists matching the passed arguments.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of accepted parameters.
+	 *
+	 * @return int|bool ID of first found invitation or false if none found.
+	 */
+	public function invitation_exists( $args = array() ) {
+		$is_invited = false;
+
+		$args['fields'] = 'ids';
+		$invites = $this->get_invitations( $args );
+		if ( $invites ) {
+			$is_invited = current( $invites );
+		}
+		return $is_invited;
+	}
+
+	/**
+	 * Check whether a request exists matching the passed arguments.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of accepted parameters.
+	 *
+	 * @return int|bool ID of existing request or false if none found.
+	 */
+	public function request_exists( $args = array() ) {
+		$has_request = false;
+
+		$args['fields'] = 'ids';
+		$requests = $this->get_requests( $args );
+		if ( $requests ) {
+			$has_request = current( $requests );
+		}
+		return $has_request;
+	}
+
+	/** Update ********************************************************************/
+
+	/**
+	 * Accept invitation, based on provided filter parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of
+	 *      accepted update/where arguments.
+	 *
+	 * @param array $update_args Associative array of fields to update,
+	 *              and the values to update them to. Of the format
+	 *              array( 'user_id' => 4 )
+	 *
+	 * @return int|bool Number of rows updated on success, false on failure.
+	 */
+	 public function accept_invitation( $args = array() ) {
+
+		/*
+		 * Some basic info is required to accept an invitation,
+		 * because we'll need to mark all similar invitations and requests.
+		 * The following, except the optional 'secondary_item_id', are required.
+		 */
+		$r = bp_parse_args( $args, array(
+			'user_id'           => 0,
+			'invitee_email'     => '',
+			'item_id'           => null,
+			'secondary_item_id' => null,
+			'invite_sent'       => 'sent',
+		), 'accept_invitation' );
+		$r['class'] = $this->class_name;
+
+		if ( ! ( ( $r['user_id'] || $r['invitee_email'] ) && $r['class'] && $r['item_id'] ) ) {
+			return false;
+		}
+
+		if ( ! $this->invitation_exists( $r ) ) {
+			return false;
+		}
+
+		$success = $this->run_acceptance_action( 'invite', $r );
+		if ( $success ) {
+			// Mark invitations & requests to this item for this user.
+			$this->mark_accepted( $r );
+
+			// Allow plugins an opportunity to act on the change.
+			do_action( 'bp_invitations_accepted_invite', $r );
+		}
+		return $success;
+	}
+
+	/**
+	 * Accept invitation, based on provided filter parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of
+	 *      accepted update/where arguments.
+	 *
+	 * @param array $update_args Associative array of fields to update,
+	 *              and the values to update them to. Of the format
+	 *              array( 'user_id' => 4 )
+	 *
+	 * @return bool Number of rows updated on success, false on failure.
+	 */
+	 public function accept_request( $args = array() ) {
+		/*
+		 * Some basic info is required to accept an invitation,
+		 * because we'll need to accept all similar invitations and requests.
+		 * The following, except the optional 'secondary_item_id', are required.
+		 */
+		$r = bp_parse_args( $args, array(
+			'user_id'           => 0,
+			'item_id'           => null,
+			'secondary_item_id' => null,
+		), 'accept_request' );
+		$r['class'] = $this->class_name;
+
+		if ( ! ( $r['user_id'] && $r['class'] && $r['item_id'] ) ) {
+			return false;
+		}
+
+		if ( ! $this->request_exists( $r ) ) {
+			return false;
+		}
+
+		$success = $this->run_acceptance_action( 'request', $r );
+		if ( $success ) {
+			// Update/Delete all related invitations & requests to this item for this user.
+			$this->mark_accepted( $r );
+
+			// Allow plugins an opportunity to act on the change.
+			do_action( 'bp_invitations_accepted_request', $r );
+		}
+		return $success;
+	}
+
+	/**
+	 * Update invitation, based on provided filter parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of
+	 *      accepted update/where arguments.
+	 *
+	 * @param array $update_args Associative array of fields to update,
+	 *              and the values to update them to. Of the format
+	 *              array( 'user_id' => 4 )
+	 * @param array $where_args Associative array of columns/values, to
+	 *              determine which invitations should be updated. Formatted as
+	 *              array( 'item_id' => 7 )
+	 * @return int|bool Number of rows updated on success, false on failure.
+	 */
+	public function update_invitation( $update_args = array(), $where_args = array() ) {
+		$update_args['class'] = $this->class_name;
+		return BP_Invitation::update( $update_args, $where_args );
+	}
+
+	/**
+	 * This is where custom actions are added (in child classes)
+	 * to run when an invitation or request needs to be "sent."
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Invitation $invitation The invitation to send.
+	 * @return bool True on success, false on failure.
+	 */
+	abstract public function run_send_action( BP_Invitation $invitation );
+
+	/**
+	 * Mark invitations as sent that are found by user_id, inviter_id,
+	 * invitee_email, class name, optional item id,
+	 * optional secondary item id.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args {
+	 *     Associative array of arguments. All arguments but $page and
+	 *     $per_page can be treated as filter values for get_where_sql()
+	 *     and get_query_clauses(). All items are optional.
+	 *     @type int|array    $user_id ID of user being queried. Can be an
+	 *                        array of user IDs.
+	 *     @type int|array    $inviter_id ID of user who created the
+	 *                        invitation. Can be an array of user IDs.
+	 *                        Special cases
+	 *     @type string|array $invitee_email Email address of invited users
+	 *			              being queried. Can be an array of addresses.
+	 *     @type string|array $class Name of the class to
+	 *                        filter by. Can be an array of class names.
+	 *     @type int|array    $item_id ID of associated item. Can be an array
+	 *                        of multiple item IDs.
+	 *     @type int|array    $secondary_item_id ID of secondary associated
+	 *                        item. Can be an array of multiple IDs.
+	 * }
+	 */
+	public function mark_sent( $args ) {
+		$args['class'] = $this->class_name;
+		return BP_Invitation::mark_sent_by_data( $args );
+	}
+
+	/**
+	 * This is where custom actions are added (in child classes)
+	 * to run when an invitation or request is accepted.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id The ID of the invitation to mark as sent.
+	 * @return bool True on success, false on failure.
+	 */
+	abstract public function run_acceptance_action( $type = 'invite', $r  );
+
+	/**
+	 * Mark invitation as accepted by invitation ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id The ID of the invitation to mark as sent.
+	 * @return bool True on success, false on failure.
+	 */
+	public function mark_accepted_by_id( $id ) {
+		return BP_Invitation::mark_accepted( $id );
+	}
+
+	/**
+	 * Mark invitations as sent that are found by user_id, inviter_id,
+	 * invitee_email, class name, item id, and
+	 * optional secondary item id.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::mark_accepted_by_data()
+	 *      for a description of arguments.
+	 */
+	public function mark_accepted( $args ) {
+		$args['class'] = $this->class_name;
+		return BP_Invitation::mark_accepted_by_data( $args );
+	}
+
+	/** Delete ********************************************************************/
+
+	/**
+	 * Delete an invitation or invitations by query data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::delete for a description of arguments.
+	 * @return int|bool Number of rows deleted on success, false on failure.
+	 */
+	public function delete( $args ) {
+		if ( empty( $args['type'] ) ) {
+			$args['type'] = 'invite';
+		}
+		$args['class'] = $this->class_name;
+		return BP_Invitation::delete( $args );
+	}
+
+	/**
+	 * Delete a request or requests by query data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::delete for a description of arguments.
+	 *
+	 * @return int|bool Number of rows deleted on success, false on failure.
+	 */
+	public function delete_requests( $args ) {
+		$args['type'] = 'request';
+		return $this->delete( $args );
+	}
+
+	/**
+	 * Delete all invitations by class.
+	 *
+	 * Used when clearing out invitations for an entire class. Possibly used
+	 * when deactivating a component related to a class that created invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return int|bool Number of rows deleted on success, false on failure.
+	 */
+	public function delete_all() {
+		return BP_Invitation::delete( array(
+			'class' => $this->class_name,
+		) );
+	}
+
+	/**
+	 * This is where custom actions are added (in child classes)
+	 * to determine whether an invitation should be allowed.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args The parameters describing the invitation.
+	 * @return bool True if allowed, false to end process.
+	 */
+	public function allow_invitation( $args ) {
+		return true;
+	}
+
+	/**
+	 * This is where custom actions are added (in child classes)
+	 * to determine whether a request should be allowed.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args The parameters describing the request.
+	 * @return bool True if allowed, false to end process.
+	 */
+	public function allow_request( $args ) {
+		return true;
+	}
+
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation.php
new file mode 100644
index 000000000..24c32a932
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-invitation.php
@@ -0,0 +1,1056 @@
+<?php
+/**
+ * BuddyPress Invitation Class
+ *
+ * @package BuddyPress
+ * @subpackage Invitations
+ *
+ * @since 5.0.0
+ */
+
+// Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * BuddyPress Invitations.
+ *
+ * Use this class to create, access, edit, or delete BuddyPress Invitations.
+ *
+ * @since 5.0.0
+ */
+class BP_Invitation {
+
+	/**
+	 * The invitation ID.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var int
+	 */
+	public $id;
+
+	/**
+	 * The ID of the invited user.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var int
+	 */
+	public $user_id;
+
+	/**
+	 * The ID of the user who created the invitation.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var int
+	 */
+	public $inviter_id;
+
+	/**
+	 * The email address of the invited user.
+	 * Used when extending an invitation to someone who does not belong to the site.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var string
+	 */
+	public $invitee_email;
+
+	/**
+	 * The name of the related class.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var string
+	 */
+	public $class;
+
+	/**
+	 * The ID associated with the invitation and component.
+	 * Example: the group ID if a group invitation
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var int
+	 */
+	public $item_id;
+
+	/**
+	 * The secondary ID associated with the invitation and component.
+	 * Example: a taxonomy term ID if invited to a site's category-specific RSS feed
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var int
+	 */
+	public $secondary_item_id = null;
+
+	/**
+	 * Invite or request.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var string
+	 */
+	public $type;
+
+	/**
+	 * Extra information provided by the requester or inviter.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var string
+	 */
+	public $content;
+
+	/**
+	 * The date the invitation was last modified.
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var string
+	 */
+	public $date_modified;
+
+	/**
+	 * Has the invitation been sent, or is it a draft invite?
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var bool
+	 */
+	public $invite_sent;
+
+	/**
+	 * Has the invitation been accepted by the invitee?
+	 *
+	 * @since 5.0.0
+	 * @access public
+	 * @var bool
+	 */
+	public $accepted;
+
+	/** Public Methods ****************************************************/
+
+	/**
+	 * Constructor method.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id Optional. Provide an ID to access an existing
+	 *        invitation item.
+	 */
+	public function __construct( $id = 0 ) {
+		if ( ! empty( $id ) ) {
+			$this->id = (int) $id;
+			$this->populate();
+		}
+	}
+
+	/**
+	 * Update or insert invitation details into the database.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @global wpdb $wpdb WordPress database object.
+	 *
+	 * @return bool True on success, false on failure.
+	 */
+	public function save() {
+
+		// Return value
+		$retval = false;
+
+		// Default data and format
+		$data = array(
+			'user_id'           => $this->user_id,
+			'inviter_id'        => $this->inviter_id,
+			'invitee_email'     => $this->invitee_email,
+			'class'             => sanitize_key( $this->class ),
+			'item_id'           => $this->item_id,
+			'secondary_item_id' => $this->secondary_item_id,
+			'type'              => $this->type,
+			'content'           => wp_kses( wp_unslash( $this->content ), array() ),
+			'date_modified'     => $this->date_modified,
+			'invite_sent'       => $this->invite_sent,
+			'accepted'          => $this->accepted,
+		);
+		$data_format = array( '%d', '%d', '%s', '%s', '%d', '%d', '%s', '%s', '%s', '%d', '%d' );
+
+		/**
+		 * Fires before an invitation is saved.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Invitation object $this Characteristics of the invitation to be saved.
+		 */
+		do_action_ref_array( 'bp_invitation_before_save', array( &$this ) );
+
+		// Update
+		if ( ! empty( $this->id ) ) {
+			$result = self::_update( $data, array( 'ID' => $this->id ), $data_format, array( '%d' ) );
+		// Insert
+		} else {
+			$result = self::_insert( $data, $data_format );
+		}
+
+		// Set the invitation ID if successful
+		if ( ! empty( $result ) && ! is_wp_error( $result ) ) {
+			global $wpdb;
+
+			$this->id = $wpdb->insert_id;
+			$retval   = $wpdb->insert_id;
+		}
+
+		wp_cache_delete( $this->id, 'bp_invitations' );
+
+		/**
+		 * Fires after an invitation is saved.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Invitation object $this Characteristics of the invitation just saved.
+		 */
+		do_action_ref_array( 'bp_invitation_after_save', array( &$this ) );
+
+		// Return the result
+		return $retval;
+	}
+
+	/**
+	 * Fetch data for an existing invitation from the database.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @global BuddyPress $bp The one true BuddyPress instance.
+	 * @global wpdb $wpdb WordPress database object.
+	 */
+	public function populate() {
+		global $wpdb;
+		$invites_table_name = BP_Invitation_Manager::get_table_name();
+
+		// Check cache for invitation data.
+		$invitation = wp_cache_get( $this->id, 'bp_invitations' );
+
+		// Cache missed, so query the DB.
+		if ( false === $invitation ) {
+			$invitation = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$invites_table_name} WHERE id = %d", $this->id ) );
+			wp_cache_set( $this->id, $invitation,'bp_invitations' );
+		}
+
+		// No invitation found so set the ID and bail.
+		if ( empty( $invitation ) || is_wp_error( $invitation ) ) {
+			$this->id = 0;
+			return;
+		}
+
+		$this->user_id           = (int) $invitation->user_id;
+		$this->inviter_id        = (int) $invitation->inviter_id;
+		$this->invitee_email     = $invitation->invitee_email;
+		$this->class             = sanitize_key( $invitation->class );
+		$this->item_id           = (int) $invitation->item_id;
+		$this->secondary_item_id = (int) $invitation->secondary_item_id;
+		$this->type              = $invitation->type;
+		$this->content           = $invitation->content;
+		$this->date_modified     = $invitation->date_modified;
+		$this->invite_sent       = (int) $invitation->invite_sent;
+		$this->accepted          = (int) $invitation->accepted;
+
+	}
+
+	/** Protected Static Methods ******************************************/
+
+	/**
+	 * Create an invitation entry.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $data {
+	 *     Array of invitation data, passed to {@link wpdb::insert()}.
+	 *	   @type int    $user_id           ID of the invited user.
+	 *	   @type int    $inviter_id        ID of the user who created the invitation.
+	 *	   @type string $invitee_email     Email address of the invited user.
+	 * 	   @type string $class             Name of the related class.
+	 * 	   @type int    $item_id           ID associated with the invitation and component.
+	 * 	   @type int    $secondary_item_id Secondary ID associated with the invitation and
+	 *                                     component.
+	 * 	   @type string $content           Extra information provided by the requester
+	 *			                           or inviter.
+	 * 	   @type string $date_modified     Date the invitation was last modified.
+	 * 	   @type int    $invite_sent       Has the invitation been sent, or is it a draft
+	 *                                     invite?
+	 * }
+	 * @param array $data_format See {@link wpdb::insert()}.
+	 * @return int|false The number of rows inserted, or false on error.
+	 */
+	protected static function _insert( $data = array(), $data_format = array() ) {
+		global $wpdb;
+		return $wpdb->insert( BP_Invitation_Manager::get_table_name(), $data, $data_format );
+	}
+
+	/**
+	 * Update invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see wpdb::update() for further description of paramater formats.
+	 *
+	 * @param array $data         Array of invitation data to update, passed to
+	 *                            {@link wpdb::update()}. Accepts any property of a
+	 *                            BP_Invitation object.
+	 * @param array $where        The WHERE params as passed to wpdb::update().
+	 *                            Typically consists of array( 'ID' => $id ) to specify the ID
+	 *                            of the item being updated. See {@link wpdb::update()}.
+	 * @param array $data_format  See {@link wpdb::insert()}.
+	 * @param array $where_format See {@link wpdb::insert()}.
+	 * @return int|false The number of rows updated, or false on error.
+	 */
+	protected static function _update( $data = array(), $where = array(), $data_format = array(), $where_format = array() ) {
+		global $wpdb;
+		return $wpdb->update( BP_Invitation_Manager::get_table_name(), $data, $where, $data_format, $where_format );
+	}
+
+	/**
+	 * Delete invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see wpdb::update() for further description of paramater formats.
+	 *
+	 * @param array $where        Array of WHERE clauses to filter by, passed to
+	 *                            {@link wpdb::delete()}. Accepts any property of a
+	 *                            BP_Invitation object.
+	 * @param array $where_format See {@link wpdb::insert()}.
+	 * @return int|false The number of rows updated, or false on error.
+	 */
+	protected static function _delete( $where = array(), $where_format = array() ) {
+		global $wpdb;
+		return $wpdb->delete( BP_Invitation_Manager::get_table_name(), $where, $where_format );
+	}
+
+	/**
+	 * Assemble the WHERE clause of a get() SQL statement.
+	 *
+	 * Used by BP_Invitation::get() to create its WHERE
+	 * clause.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args See {@link BP_Invitation::get()} for more details.
+	 * @return string WHERE clause.
+	 */
+	protected static function get_where_sql( $args = array() ) {
+		global $wpdb;
+
+		$where_conditions = array();
+		$where            = '';
+
+		// id
+		if ( false !== $args['id'] ) {
+			$id_in = implode( ',', wp_parse_id_list( $args['id'] ) );
+			$where_conditions['id'] = "id IN ({$id_in})";
+		}
+
+		// user_id
+		if ( ! empty( $args['user_id'] ) ) {
+			$user_id_in = implode( ',', wp_parse_id_list( $args['user_id'] ) );
+			$where_conditions['user_id'] = "user_id IN ({$user_id_in})";
+		}
+
+		// inviter_id. 0 can be meaningful, in the case of requests.
+		if ( ! empty( $args['inviter_id'] ) || 0 === $args['inviter_id'] ) {
+			$inviter_id_in = implode( ',', wp_parse_id_list( $args['inviter_id'] ) );
+			$where_conditions['inviter_id'] = "inviter_id IN ({$inviter_id_in})";
+		}
+
+		// invitee_email
+		if ( ! empty( $args['invitee_email'] ) ) {
+			if ( ! is_array( $args['invitee_email'] ) ) {
+				$invitee_emails = explode( ',', $args['invitee_email'] );
+			} else {
+				$invitee_emails = $args['invitee_email'];
+			}
+
+			$email_clean = array();
+			foreach ( $invitee_emails as $email ) {
+				$email_clean[] = $wpdb->prepare( '%s', $email );
+			}
+
+			$invitee_email_in = implode( ',', $email_clean );
+			$where_conditions['invitee_email'] = "invitee_email IN ({$invitee_email_in})";
+		}
+
+		// class
+		if ( ! empty( $args['class'] ) ) {
+			if ( ! is_array( $args['class'] ) ) {
+				$class_names = explode( ',', $args['class'] );
+			} else {
+				$class_names = $args['class'];
+			}
+
+			$cn_clean = array();
+			foreach ( $class_names as $cn ) {
+				$cn_clean[] = $wpdb->prepare( '%s', sanitize_key( $cn ) );
+			}
+
+			$cn_in = implode( ',', $cn_clean );
+			$where_conditions['class'] = "class IN ({$cn_in})";
+		}
+
+		// item_id
+		if ( ! empty( $args['item_id'] ) ) {
+			$item_id_in = implode( ',', wp_parse_id_list( $args['item_id'] ) );
+			$where_conditions['item_id'] = "item_id IN ({$item_id_in})";
+		}
+
+		// secondary_item_id
+		if ( ! empty( $args['secondary_item_id'] ) ) {
+			$secondary_item_id_in = implode( ',', wp_parse_id_list( $args['secondary_item_id'] ) );
+			$where_conditions['secondary_item_id'] = "secondary_item_id IN ({$secondary_item_id_in})";
+		}
+
+		// type
+		if ( ! empty( $args['type'] ) && 'all' !== $args['type'] ) {
+			if ( 'invite' == $args['type'] || 'request' == $args['type'] ) {
+				$type_clean = $wpdb->prepare( '%s', $args['type'] );
+				$where_conditions['type'] = "type = {$type_clean}";
+			}
+		}
+
+		/**
+		 * invite_sent
+		 * Only create a where statement if something less than "all" has been
+		 * specifically requested.
+		 */ 
+		if ( ! empty( $args['invite_sent'] ) && 'all' !== $args['invite_sent'] ) {
+			if ( $args['invite_sent'] == 'draft' ) {
+				$where_conditions['invite_sent'] = "invite_sent = 0";
+			} else if ( $args['invite_sent'] == 'sent' ) {
+				$where_conditions['invite_sent'] = "invite_sent = 1";
+			}
+		}
+
+		// accepted
+		if ( ! empty( $args['accepted'] ) && 'all' !== $args['accepted'] ) {
+			if ( $args['accepted'] == 'pending' ) {
+				$where_conditions['accepted'] = "accepted = 0";
+			} else if ( $args['accepted'] == 'accepted' ) {
+				$where_conditions['accepted'] = "accepted = 1";
+			}
+		}
+
+		// search_terms
+		if ( ! empty( $args['search_terms'] ) ) {
+			$search_terms_like = '%' . bp_esc_like( $args['search_terms'] ) . '%';
+			$where_conditions['search_terms'] = $wpdb->prepare( "( class LIKE %s )", $search_terms_like, $search_terms_like );
+		}
+
+		// Custom WHERE
+		if ( ! empty( $where_conditions ) ) {
+			$where = 'WHERE ' . implode( ' AND ', $where_conditions );
+		}
+
+		return $where;
+	}
+
+	/**
+	 * Assemble the ORDER BY clause of a get() SQL statement.
+	 *
+	 * Used by BP_Invitation::get() to create its ORDER BY
+	 * clause.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args See {@link BP_Invitation::get()} for more details.
+	 * @return string ORDER BY clause.
+	 */
+	protected static function get_order_by_sql( $args = array() ) {
+
+		// Setup local variable
+		$conditions = array();
+		$retval     = '';
+
+		// Order by
+		if ( ! empty( $args['order_by'] ) ) {
+			$order_by               = implode( ', ', (array) $args['order_by'] );
+			$conditions['order_by'] = "{$order_by}";
+		}
+
+		// Sort order direction
+		if ( ! empty( $args['sort_order'] ) ) {
+			$sort_order               = bp_esc_sql_order( $args['sort_order'] );
+			$conditions['sort_order'] = "{$sort_order}";
+		}
+
+		// Custom ORDER BY
+		if ( ! empty( $conditions ) ) {
+			$retval = 'ORDER BY ' . implode( ' ', $conditions );
+		}
+
+		return $retval;
+	}
+
+	/**
+	 * Assemble the LIMIT clause of a get() SQL statement.
+	 *
+	 * Used by BP_Invitation::get() to create its LIMIT clause.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args See {@link BP_Invitation::get()} for more details.
+	 * @return string LIMIT clause.
+	 */
+	protected static function get_paged_sql( $args = array() ) {
+		global $wpdb;
+
+		// Setup local variable
+		$retval = '';
+
+		// Custom LIMIT
+		if ( ! empty( $args['page'] ) && ! empty( $args['per_page'] ) ) {
+			$page     = absint( $args['page']     );
+			$per_page = absint( $args['per_page'] );
+			$offset   = $per_page * ( $page - 1 );
+			$retval   = $wpdb->prepare( "LIMIT %d, %d", $offset, $per_page );
+		}
+
+		return $retval;
+	}
+
+	/**
+	 * Assemble query clauses, based on arguments, to pass to $wpdb methods.
+	 *
+	 * The insert(), update(), and delete() methods of {@link wpdb} expect
+	 * arguments of the following forms:
+	 *
+	 * - associative arrays whose key/value pairs are column => value, to
+	 *   be used in WHERE, SET, or VALUES clauses
+	 * - arrays of "formats", which tell $wpdb->prepare() which type of
+	 *   value to expect when sanitizing (eg, array( '%s', '%d' ))
+	 *
+	 * This utility method can be used to assemble both kinds of params,
+	 * out of a single set of associative array arguments, such as:
+	 *
+	 *     $args = array(
+	 *         'user_id' => 4,
+	 *         'class'   => 'BP_Groups_Invitation_Manager',
+	 *     );
+	 *
+	 * This will be converted to:
+	 *
+	 *     array(
+	 *         'data' => array(
+	 *             'user_id' => 4,
+	 *             'class'   => 'BP_Groups_Invitation_Manager',
+	 *         ),
+	 *         'format' => array(
+	 *             '%d',
+	 *             '%s',
+	 *         ),
+	 *     )
+	 *
+	 * which can easily be passed as arguments to the $wpdb methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args Associative array of filter arguments.
+	 *                    See {@BP_Invitation::get()} for a breakdown.
+	 * @return array Associative array of 'data' and 'format' args.
+	 */
+	protected static function get_query_clauses( $args = array() ) {
+		$where_clauses = array(
+			'data'   => array(),
+			'format' => array(),
+		);
+
+		// id
+		if ( ! empty( $args['id'] ) ) {
+			$where_clauses['data']['id'] = absint( $args['id'] );
+			$where_clauses['format'][] = '%d';
+		}
+
+		// user_id
+		if ( ! empty( $args['user_id'] ) ) {
+			$where_clauses['data']['user_id'] = absint( $args['user_id'] );
+			$where_clauses['format'][] = '%d';
+		}
+
+		// inviter_id
+		if ( ! empty( $args['inviter_id'] ) ) {
+			$where_clauses['data']['inviter_id'] = absint( $args['inviter_id'] );
+			$where_clauses['format'][] = '%d';
+		}
+
+		// invitee_email
+		if ( ! empty( $args['invitee_email'] ) ) {
+			$where_clauses['data']['invitee_email'] = $args['invitee_email'];
+			$where_clauses['format'][] = '%s';
+		}
+
+		// class
+		if ( ! empty( $args['class'] ) ) {
+			$where_clauses['data']['class'] = $args['class'];
+			$where_clauses['format'][] = '%s';
+		}
+
+		// item_id
+		if ( ! empty( $args['item_id'] ) ) {
+			$where_clauses['data']['item_id'] = absint( $args['item_id'] );
+			$where_clauses['format'][] = '%d';
+		}
+
+		// secondary_item_id
+		if ( ! empty( $args['secondary_item_id'] ) ) {
+			$where_clauses['data']['secondary_item_id'] = absint( $args['secondary_item_id'] );
+			$where_clauses['format'][] = '%d';
+		}
+
+		// type
+		if ( ! empty( $args['type'] ) && 'all' !== $args['type'] ) {
+			if ( 'invite' == $args['type'] || 'request' == $args['type'] ) {
+				$where_clauses['data']['type'] = $args['type'];
+				$where_clauses['format'][] = '%s';
+			}
+		}
+
+		/**
+		 * invite_sent
+		 * Only create a where statement if something less than "all" has been
+		 * specifically requested.
+		 */
+		if ( isset( $args['invite_sent'] ) && 'all' !== $args['invite_sent'] ) {
+			if ( $args['invite_sent'] == 'draft' ) {
+				$where_clauses['data']['invite_sent'] = 0;
+				$where_clauses['format'][] = '%d';
+			} else if ( $args['invite_sent'] == 'sent' ) {
+				$where_clauses['data']['invite_sent'] = 1;
+				$where_clauses['format'][] = '%d';
+			}
+		}
+
+		// accepted
+		if ( ! empty( $args['accepted'] ) && 'all' !== $args['accepted'] ) {
+			if ( $args['accepted'] == 'pending' ) {
+				$where_clauses['data']['accepted'] = 0;
+				$where_clauses['format'][] = '%d';
+			} else if ( $args['accepted'] == 'accepted' ) {
+				$where_clauses['data']['accepted'] = 1;
+				$where_clauses['format'][] = '%d';
+			}
+		}
+
+		return $where_clauses;
+	}
+
+	/** Public Static Methods *********************************************/
+
+	/**
+	 * Get invitations, based on provided filter parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args {
+	 *     Associative array of arguments. All arguments but $page and
+	 *     $per_page can be treated as filter values for get_where_sql()
+	 *     and get_query_clauses(). All items are optional.
+	 *     @type int|array    $id                ID of invitation being updated.
+	 *                                           Can be an array of IDs.
+	 *     @type int|array    $user_id           ID of user being queried. Can be an
+	 *                                           Can be an array of IDs.
+	 *     @type int|array    $inviter_id        ID of user who created the
+	 *                                           invitation. Can be an array of IDs.
+	 *     @type string|array $invitee_email     Email address of invited users
+	 *			                                 being queried. Can be an array of
+	 *                                           addresses.
+	 *     @type string|array $class             Name of the class to filter by.
+	 *                                           Can be an array of class names.
+	 *     @type int|array    $item_id           ID of associated item.
+	 *                                           Can be an array of multiple item IDs.
+	 *     @type int|array    $secondary_item_id ID of secondary associated item.
+	 *                                           Can be an array of multiple IDs.
+	 *     @type string|array $type              Type of item. An "invite" is sent
+	 *                                           from one user to another.
+	 *                                           A "request" is submitted by a
+	 *                                           user and no inviter is required.
+	 *                                           'all' returns all. Default: 'all'.
+	 *     @type string       $invite_sent       Limit to draft, sent or all
+	 *                                           'draft' limits to unsent invites,
+	 *                                           'sent' returns only sent invites,
+	 *                                           'all' returns all. Default: 'all'.
+	 *     @type bool         $accepted          Limit to accepted or
+	 *                                           not-yet-accepted invitations.
+	 *                                           'accepted' returns accepted invites,
+	 *                                           'pending' returns pending invites,
+	 *                                           'all' returns all. Default: 'pending'
+	 *     @type string       $search_terms      Term to match against class field.
+	 *     @type string       $order_by          Database column to order by.
+	 *     @type string       $sort_order        Either 'ASC' or 'DESC'.
+	 *     @type string       $order_by          Field to order results by.
+	 *     @type string       $sort_order        ASC or DESC.
+	 *     @type int          $page              Number of the current page of results.
+	 *                                           Default: false (no pagination,
+	 *                                           all items).
+	 *     @type int          $per_page          Number of items to show per page.
+	 *                                           Default: false (no pagination,
+	 *                                           all items).
+  	 *     @type string       $fields            Which fields to return. Specify 'item_ids' to fetch a list of Item_IDs.
+  	 *                                           Specify 'ids' to fetch a list of Invitation IDs.
+ 	 *                                           Default: 'all' (return BP_Invitation objects).
+	 * }
+	 *
+	 * @return array BP_Invitation objects | IDs of found invit.
+	 */
+	public static function get( $args = array() ) {
+		global $wpdb;
+		$invites_table_name = BP_Invitation_Manager::get_table_name();
+
+		// Parse the arguments
+		$r  = bp_parse_args( $args, array(
+			'id'                => false,
+			'user_id'           => false,
+			'inviter_id'        => false,
+			'invitee_email'     => false,
+			'class'             => false,
+			'item_id'           => false,
+			'secondary_item_id' => false,
+			'type'              => 'all',
+			'invite_sent'       => 'all',
+			'accepted'          => 'pending',
+			'search_terms'      => '',
+			'order_by'          => false,
+			'sort_order'        => false,
+			'page'              => false,
+			'per_page'          => false,
+			'fields'            => 'all',
+		), 'bp_invitations_invitation_get' );
+
+		$sql = array(
+			'select'     => "SELECT",
+			'fields'     => '',
+			'from'       => "FROM {$invites_table_name} i",
+			'where'      => '',
+			'orderby'    => '',
+			'pagination' => '',
+		);
+
+		if ( 'item_ids' === $r['fields'] ) {
+			$sql['fields'] = "DISTINCT i.item_id";
+		} else if ( 'user_ids' === $r['fields'] ) {
+			$sql['fields'] = "DISTINCT i.user_id";
+		} else if ( 'inviter_ids' === $r['fields'] ) {
+			$sql['fields'] = "DISTINCT i.inviter_id";
+		} else {
+			$sql['fields'] = 'DISTINCT i.id';
+		}
+
+		// WHERE
+		$sql['where'] = self::get_where_sql( array(
+			'id'                => $r['id'],
+			'user_id'           => $r['user_id'],
+			'inviter_id'		=> $r['inviter_id'],
+			'invitee_email'     => $r['invitee_email'],
+			'class'             => $r['class'],
+			'item_id'           => $r['item_id'],
+			'secondary_item_id' => $r['secondary_item_id'],
+			'type'              => $r['type'],
+			'invite_sent'       => $r['invite_sent'],
+			'accepted'          => $r['accepted'],
+			'search_terms'      => $r['search_terms'],
+		) );
+
+		// ORDER BY
+		$sql['orderby'] = self::get_order_by_sql( array(
+			'order_by'   => $r['order_by'],
+			'sort_order' => $r['sort_order']
+		) );
+
+		// LIMIT %d, %d
+		$sql['pagination'] = self::get_paged_sql( array(
+			'page'     => $r['page'],
+			'per_page' => $r['per_page'],
+		) );
+
+		$paged_invites_sql = "{$sql['select']} {$sql['fields']} {$sql['from']} {$sql['where']} {$sql['orderby']} {$sql['pagination']}";
+
+		/**
+		 * Filters the pagination SQL statement.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param string $value Concatenated SQL statement.
+		 * @param array  $sql   Array of SQL parts before concatenation.
+		 * @param array  $r     Array of parsed arguments for the get method.
+		 */
+		$paged_invites_sql = apply_filters( 'bp_invitations_get_paged_invitations_sql', $paged_invites_sql, $sql, $r );
+
+		$cached = bp_core_get_incremented_cache( $paged_invites_sql, 'bp_invitations' );
+		if ( false === $cached ) {
+			$paged_invite_ids = $wpdb->get_col( $paged_invites_sql );
+			bp_core_set_incremented_cache( $paged_invites_sql, 'bp_invitations', $paged_invite_ids );
+		} else {
+			$paged_invite_ids = $cached;
+		}
+
+		// Special return format cases.
+		if ( in_array( $r['fields'], array( 'ids', 'item_ids', 'user_ids', 'inviter_ids' ), true ) ) {
+			// We only want the field that was found.
+			return array_map( 'intval', $paged_invite_ids );
+		}
+
+		$uncached_ids = bp_get_non_cached_ids( $paged_invite_ids, 'bp_invitations' );
+		if ( $uncached_ids ) {
+			$ids_sql = implode( ',', array_map( 'intval', $uncached_ids ) );
+			$data_objects = $wpdb->get_results( "SELECT i.* FROM {$invites_table_name} i WHERE i.id IN ({$ids_sql})" );
+			foreach ( $data_objects as $data_object ) {
+				wp_cache_set( $data_object->id, $data_object, 'bp_invitations' );
+			}
+		}
+
+		$paged_invites = array();
+		foreach ( $paged_invite_ids as $paged_invite_id ) {
+			$paged_invites[] = new BP_Invitation( $paged_invite_id );
+		}
+
+		return $paged_invites;
+	}
+
+	/**
+	 * Get a count of total invitations matching a set of arguments.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of
+	 *      arguments.
+	 *
+	 * @param array $args See {@link BP_Invitation::get()}.
+	 * @return int Count of located items.
+	 */
+	public static function get_total_count( $args ) {
+		global $wpdb;
+		$invites_table_name = BP_Invitation_Manager::get_table_name();
+
+		// Build the query
+		$select_sql = "SELECT COUNT(*)";
+		$from_sql   = "FROM {$invites_table_name}";
+		$where_sql  = self::get_where_sql( $args );
+		$sql        = "{$select_sql} {$from_sql} {$where_sql}";
+
+		// Return the queried results
+		return $wpdb->get_var( $sql );
+	}
+
+	/**
+	 * Update invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of
+	 *      accepted update/where arguments.
+	 *
+	 * @param array $update_args Associative array of fields to update,
+	 *                           and the values to update them to. Of the format
+	 *                           array( 'user_id' => 4, 'class' => 'BP_Groups_Invitation_Manager', ).
+	 * @param array $where_args  Associative array of columns/values, to
+	 *                           determine which rows should be updated. Of the format
+	 *                           array( 'item_id' => 7, 'class' => 'BP_Groups_Invitation_Manager', ).
+	 * @return int|bool Number of rows updated on success, false on failure.
+	 */
+	public static function update( $update_args = array(), $where_args = array() ) {
+		$update = self::get_query_clauses( $update_args );
+		$where  = self::get_query_clauses( $where_args  );
+
+		/**
+		 * Fires before an invitation is updated.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $where_args  Associative array of columns/values describing
+		 *                           invitations about to be deleted.
+		 * @param array $update_args Array of new values.
+		 */
+		do_action( 'bp_invitation_before_update', $where_args, $update_args );
+
+		$retval = self::_update( $update['data'], $where['data'], $update['format'], $where['format'] );
+
+		// Clear matching items from the cache.
+		$cache_args = $where_args;
+		$cache_args['fields'] = 'ids';
+		$maybe_cached_ids = self::get( $cache_args );
+		foreach ( $maybe_cached_ids as $invite_id ) {
+			wp_cache_delete( $invite_id, 'bp_invitations' );
+		}
+
+		/**
+		 * Fires after an invitation is updated.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $where_args  Associative array of columns/values describing
+		 *                           invitations about to be deleted.
+		 * @param array $update_args Array of new values.
+		 */
+		do_action( 'bp_invitation_after_update', $where_args, $update_args );
+
+  		return $retval;
+	}
+
+	/**
+	 * Delete invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::get() for a description of
+	 *      accepted where arguments.
+	 *
+	 * @param array $args Associative array of columns/values, to determine
+	 *                    which rows should be deleted.  Of the format
+	 *                    array( 'item_id' => 7, 'class' => 'BP_Groups_Invitation_Manager', ).
+	 * @return int|bool Number of rows deleted on success, false on failure.
+	 */
+	public static function delete( $args = array() ) {
+		$where = self::get_query_clauses( $args );
+
+		/**
+		 * Fires before an invitation is deleted.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $args Characteristics of the invitations to be deleted.
+		 */
+		do_action( 'bp_invitation_before_delete', $args );
+
+		// Clear matching items from the cache.
+		$cache_args = $args;
+		$cache_args['fields'] = 'ids';
+		$maybe_cached_ids = self::get( $cache_args );
+		foreach ( $maybe_cached_ids as $invite_id ) {
+			wp_cache_delete( $invite_id, 'bp_invitations' );
+		}
+
+		$retval = self::_delete( $where['data'], $where['format'] );
+
+		/**
+		 * Fires after an invitation is deleted.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $args Characteristics of the invitations just deleted.
+		 */
+		do_action( 'bp_invitation_after_delete', $args );
+
+		return $retval;
+	}
+
+	/** Convenience methods ***********************************************/
+
+	/**
+	 * Delete a single invitation by ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::delete() for explanation of
+	 *      return value.
+	 *
+	 * @param int $id ID of the invitation item to be deleted.
+	 * @return bool True on success, false on failure.
+	 */
+	public static function delete_by_id( $id ) {
+		return self::delete( array(
+			'id' => $id,
+		) );
+	}
+
+	/** Sent status ***********************************************************/
+
+	/**
+	 * Mark specific invitations as sent by invitation ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id The ID of the invitation to mark as sent.
+	 */
+	public static function mark_sent( $id = 0 ) {
+
+		if ( ! $id ) {
+			return false;
+		}
+
+		// Values to be updated
+		$update_args = array(
+			'invite_sent' => 'sent',
+		);
+
+		// WHERE clauses
+		$where_args = array(
+			'id' => $id,
+		);
+
+		return self::update( $update_args, $where_args );
+	}
+
+	/**
+	 * Mark invitations as sent that are found by user_id, inviter_id, item id, and optional
+	 * secondary item id, and class name.
+	 *
+	 * @since 5.0.0
+	 *
+ 	 * @param array $args See BP_Invitation::update().
+	 */
+	public static function mark_sent_by_data( $args ) {
+
+		// Values to be updated
+		$update_args = array(
+			'invite_sent' => 'sent',
+		);
+
+		return self::update( $update_args, $args );
+	}
+
+	/** Accepted status ***********************************************************/
+
+	/**
+	 * Mark specific invitations as accepted by invitation ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id The ID of the invitation to mark as sent.
+	 */
+	public static function mark_accepted( $id = 0 ) {
+
+		if ( ! $id ) {
+			return false;
+		}
+
+		// Values to be updated
+		$update_args = array(
+			'accepted' => 'accepted',
+		);
+
+		// WHERE clauses
+		$where_args = array(
+			'id' => $id,
+		);
+
+		return self::update( $update_args, $where_args );
+	}
+
+	/**
+	 * Mark invitations as accepted that are found by user_id, inviter_id,
+	 * item id, and optional secondary item id, and class name.
+	 *
+	 * @since 5.0.0
+	 *
+ 	 * @param array $args See BP_Invitation::update().
+	 */
+	public static function mark_accepted_by_data( $args ) {
+
+		// Values to be updated
+		$update_args = array(
+			'accepted' => 'accepted',
+		);
+
+		return self::update( $update_args, $args );
+	}
+
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php
new file mode 100644
index 000000000..95b83d62c
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php
@@ -0,0 +1,499 @@
+<?php
+/**
+ * BP REST: BP_REST_Attachments_Group_Avatar_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Group Avatar endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Attachments_Group_Avatar_Endpoint extends WP_REST_Controller {
+
+	use BP_REST_Attachments;
+
+	/**
+	 * Reuse some parts of the BP_REST_Groups_Endpoint class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_Groups_Endpoint
+	 */
+	protected $groups_endpoint;
+
+	/**
+	 * BP_Attachment_Avatar Instance.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_Attachment_Avatar
+	 */
+	protected $avatar_instance;
+
+	/**
+	 * Hold the group object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_Groups_Group
+	 */
+	protected $group;
+
+	/**
+	 * Group object type.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var string
+	 */
+	protected $object = 'group';
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace       = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base       = buddypress()->groups->id;
+		$this->groups_endpoint = new BP_REST_Groups_Endpoint();
+		$this->avatar_instance = new BP_Attachment_Avatar();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<group_id>[\d]+)/avatar',
+			array(
+				'args'   => array(
+					'group_id' => array(
+						'description' => __( 'A unique numeric ID for the Group.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => $this->get_item_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Fetch an existing group avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$args = array();
+
+		foreach ( array( 'full', 'thumb' ) as $type ) {
+			$args[ $type ] = bp_core_fetch_avatar(
+				array(
+					'object'  => $this->object,
+					'type'    => $type,
+					'item_id' => (int) $this->group->id,
+					'html'    => (bool) $request['html'],
+					'alt'     => $request['alt'],
+				)
+			);
+		}
+
+		// Get the avatar object.
+		$avatar = $this->get_avatar_object( $args );
+
+		if ( ! $avatar->full && ! $avatar->thumb ) {
+			return new WP_Error(
+				'bp_rest_attachments_group_avatar_no_image',
+				__( 'Sorry, there was a problem fetching this group avatar.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $avatar, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group avatar is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param string            $avatar   The group avatar.
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_attachments_group_avatar_get_item', $avatar, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to get a group avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval      = true;
+		$this->group = $this->groups_endpoint->get_group_object( $request );
+
+		if ( ! $this->group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group avatar `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_attachments_group_avatar_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Upload a group avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		$request->set_param( 'context', 'edit' );
+
+		// Get the image file from $_FILES.
+		$files = $request->get_file_params();
+
+		if ( empty( $files ) ) {
+			return new WP_Error(
+				'bp_rest_attachments_group_avatar_no_image_file',
+				__( 'Sorry, you need an image file to upload.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Upload the avatar.
+		$avatar = $this->upload_avatar_from_file( $files );
+		if ( is_wp_error( $avatar ) ) {
+			return $avatar;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $avatar, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group avatar is uploaded via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param stdClass          $avatar   The group avatar object.
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_attachments_group_avatar_create_item', $avatar, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to upload a group avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = $this->get_item_permissions_check( $request );
+
+		if ( true === $retval && ( bp_disable_group_avatar_uploads() || ! buddypress()->avatar->show_avatars ) ) {
+			$retval = new WP_Error(
+				'bp_rest_attachments_group_avatar_disabled',
+				__( 'Sorry, group avatar upload is disabled.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		if ( true === $retval
+			&& ! groups_is_user_admin( bp_loggedin_user_id(), $this->group->id )
+			&& ! current_user_can( 'bp_moderate' )
+		) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not authorized to perform this action.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the group avatar `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_attachments_group_avatar_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete an existing group avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		$request->set_param( 'context', 'edit' );
+		$group_id = (int) $this->group->id;
+
+		if ( ! bp_get_group_has_avatar( $group_id ) ) {
+			return new WP_Error(
+				'bp_rest_attachments_group_avatar_no_uploaded_avatar',
+				__( 'Sorry, there are no uploaded avatars for this group on this site.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$args = array();
+
+		foreach ( array( 'full', 'thumb' ) as $type ) {
+			$args[ $type ] = bp_core_fetch_avatar(
+				array(
+					'object'  => $this->object,
+					'type'    => $type,
+					'item_id' => $group_id,
+					'html'    => false,
+				)
+			);
+		}
+
+		// Get the avatar object before deleting it.
+		$avatar = $this->get_avatar_object( $args );
+
+		$deleted = bp_core_delete_existing_avatar(
+			array(
+				'object'  => $this->object,
+				'item_id' => $group_id,
+			)
+		);
+
+		if ( ! $deleted ) {
+			return new WP_Error(
+				'bp_rest_attachments_group_avatar_delete_failed',
+				__( 'Sorry, there was a problem deleting this group avatar.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $avatar,
+			)
+		);
+
+		/**
+		 * Fires after a group avatar is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_attachments_group_avatar_delete_item', $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to delete a group avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->create_item_permissions_check( $request );
+
+		/**
+		 * Filter the group avatar `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_attachments_group_avatar_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares avatar data to return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param stdClass|string $avatar  Avatar object or string with url or image with html.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $avatar, $request ) {
+		$data = array(
+			'full'  => $avatar->full,
+			'thumb' => $avatar->thumb,
+		);
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// @todo add prepare_links
+		$response = rest_ensure_response( $data );
+
+		/**
+		 * Filter a group avatar value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response  $response Response.
+		 * @param WP_REST_Request   $request  Request used to generate the response.
+		 * @param stdClass|string   $avatar   Avatar object or string with url or image with html.
+		 */
+		return apply_filters( 'bp_rest_attachments_group_avatar_prepare_value', $response, $request, $avatar );
+	}
+
+	/**
+	 * Get the plugin schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_attachments_group_avatar',
+			'type'       => 'object',
+			'properties' => array(
+				'full'  => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Full size of the image file.', 'buddypress' ),
+					'type'        => 'string',
+					'readonly'    => true,
+				),
+				'thumb' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Thumb size of the image file.', 'buddypress' ),
+					'type'        => 'string',
+					'readonly'    => true,
+				),
+			),
+		);
+
+		/**
+		 * Filters the group avatar schema.
+		 *
+		 * @param string $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_attachments_group_avatar_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for the `get_item`.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		// Removing unused params.
+		unset( $params['search'], $params['page'], $params['per_page'] );
+
+		$params['html'] = array(
+			'description'       => __( 'Whether to return an <img> HTML element, vs a raw URL to a group avatar.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['alt'] = array(
+			'description'       => __( 'The alt attribute for the <img> element.', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_text_field',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the item collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_attachments_group_avatar_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php
new file mode 100644
index 000000000..e9a602dd2
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php
@@ -0,0 +1,515 @@
+<?php
+/**
+ * BP REST: BP_REST_Attachments_Member_Avatar_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Member Avatar endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Attachments_Member_Avatar_Endpoint extends WP_REST_Controller {
+
+	use BP_REST_Attachments;
+
+	/**
+	 * BP_Attachment_Avatar Instance.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_Attachment_Avatar
+	 */
+	protected $avatar_instance;
+
+	/**
+	 * Member object type.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var string
+	 */
+	protected $object = 'user';
+
+	/**
+	 * Member object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var WP_User
+	 */
+	protected $user;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace       = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base       = 'members';
+		$this->avatar_instance = new BP_Attachment_Avatar();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<user_id>[\d]+)/avatar',
+			array(
+				'args'   => array(
+					'user_id' => array(
+						'description' => __( 'A unique numeric ID for the Member.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => $this->get_item_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Fetch an existing member avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$args = array();
+
+		foreach ( array( 'full', 'thumb' ) as $type ) {
+			$args[ $type ] = bp_core_fetch_avatar(
+				array(
+					'object'  => $this->object,
+					'type'    => $type,
+					'item_id' => (int) $this->user->ID,
+					'html'    => (bool) $request['html'],
+					'alt'     => $request['alt'],
+					'no_grav' => (bool) $request['no_gravatar'],
+				)
+			);
+		}
+
+		// Get the avatar object.
+		$avatar = $this->get_avatar_object( $args );
+
+		if ( ! $avatar->full && ! $avatar->thumb ) {
+			return new WP_Error(
+				'bp_rest_attachments_member_avatar_no_image',
+				__( 'Sorry, there was a problem fetching the avatar.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $avatar, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a member avatar is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param string            $avatar   The avatar.
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_attachments_member_avatar_get_item', $avatar, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to get a member avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval     = true;
+		$this->user = bp_rest_get_user( $request['user_id'] );
+
+		if ( true === $retval && ! $this->user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		/**
+		 * Filter the member avatar `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_attachments_member_avatar_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Upload a member avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		$request->set_param( 'context', 'edit' );
+
+		// Get the image file from  $_FILES.
+		$files = $request->get_file_params();
+
+		if ( empty( $files ) ) {
+			return new WP_Error(
+				'bp_rest_attachments_member_avatar_no_image_file',
+				__( 'Sorry, you need an image file to upload.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Upload the avatar.
+		$avatar = $this->upload_avatar_from_file( $files );
+		if ( is_wp_error( $avatar ) ) {
+			return $avatar;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $avatar, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a member avatar is uploaded via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param stdClass          $avatar   Avatar object.
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_attachments_member_avatar_create_item', $avatar, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to upload a member avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = $this->get_item_permissions_check( $request );
+		$args   = array();
+
+		if ( isset( $this->user->ID ) ) {
+			$args = array(
+				'item_id' => (int) $this->user->ID,
+				'object'  => 'user',
+			);
+		}
+
+		if ( true === $retval && ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to perform this action.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && bp_disable_avatar_uploads() ) {
+			$retval = new WP_Error(
+				'bp_rest_attachments_member_avatar_disabled',
+				__( 'Sorry, member avatar upload is disabled.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		if ( true === $retval && ! empty( $args ) && ! bp_attachments_current_user_can( 'edit_avatar', $args ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not authorized to perform this action.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the member avatar `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_attachments_member_avatar_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete an existing member avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		$request->set_param( 'context', 'edit' );
+		$user_id = (int) $this->user->ID;
+
+		if ( ! bp_get_user_has_avatar( $user_id ) ) {
+			return new WP_Error(
+				'bp_rest_attachments_member_avatar_no_uploaded_avatar',
+				__( 'Sorry, there are no uploaded avatars for this user on this site.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$args = array();
+
+		foreach ( array( 'full', 'thumb' ) as $type ) {
+			$args[ $type ] = bp_core_fetch_avatar(
+				array(
+					'object'  => $this->object,
+					'type'    => $type,
+					'item_id' => $user_id,
+					'html'    => false,
+				)
+			);
+		}
+
+		// Get the avatar object before deleting it.
+		$avatar = $this->get_avatar_object( $args );
+
+		$deleted = bp_core_delete_existing_avatar(
+			array(
+				'object'  => $this->object,
+				'item_id' => $user_id,
+			)
+		);
+
+		if ( ! $deleted ) {
+			return new WP_Error(
+				'bp_rest_attachments_member_avatar_delete_failed',
+				__( 'Sorry, there was a problem deleting the avatar.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $avatar,
+			)
+		);
+
+		/**
+		 * Fires after a member avatar is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_attachments_member_avatar_delete_item', $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to delete member avatar.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->create_item_permissions_check( $request );
+
+		/**
+		 * Filter the member avatar `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_attachments_member_avatar_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares avatar data to return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param stdClass|string $avatar  Avatar object or string with url or image with html.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $avatar, $request ) {
+		$data = array(
+			'full'  => $avatar->full,
+			'thumb' => $avatar->thumb,
+		);
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// @todo add prepare_links
+		$response = rest_ensure_response( $data );
+
+		/**
+		 * Filter a member avatar value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response  $response Response.
+		 * @param WP_REST_Request   $request  Request used to generate the response.
+		 * @param stdClass|string   $avatar   Avatar object or string with url or image with html.
+		 */
+		return apply_filters( 'bp_rest_attachments_member_avatar_prepare_value', $response, $request, $avatar );
+	}
+
+	/**
+	 * Get the member avatar schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_attachments_member_avatar',
+			'type'       => 'object',
+			'properties' => array(
+				'full'  => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Full size of the image file.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'readonly'    => true,
+				),
+				'thumb' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Thumb size of the image file.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'readonly'    => true,
+				),
+			),
+		);
+
+		/**
+		 * Filters the member avatar schema.
+		 *
+		 * @param string $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_attachments_member_avatar_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for the `get_item`.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		// Removing unused params.
+		unset( $params['search'], $params['page'], $params['per_page'] );
+
+		$params['html'] = array(
+			'description'       => __( 'Whether to return an <img> HTML element, vs a raw URL to an avatar.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['alt'] = array(
+			'description'       => __( 'The alt attribute for the <img> element.', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_text_field',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['no_grav'] = array(
+			'description'       => __( 'Whether to disable the default Gravatar fallback.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the item collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_attachments_member_avatar_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-components-endpoint.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-components-endpoint.php
new file mode 100644
index 000000000..3a48c5d17
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-rest-components-endpoint.php
@@ -0,0 +1,537 @@
+<?php
+/**
+ * BP REST: BP_REST_Components_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Components endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Components_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = 'components';
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => array(
+						'name'   => array(
+							'type'        => 'string',
+							'required'    => true,
+							'description' => __( 'Name of the component.', 'buddypress' ),
+							'arg_options' => array(
+								'sanitize_callback' => 'sanitize_key',
+							),
+						),
+						'action' => array(
+							'description' => __( 'Whether to activate or deactivate the component.', 'buddypress' ),
+							'type'        => 'string',
+							'enum'        => array( 'activate', 'deactivate' ),
+							'required'    => true,
+							'arg_options' => array(
+								'sanitize_callback' => 'sanitize_key',
+							),
+						),
+					),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve components.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'type'     => $request['type'],
+			'status'   => $request['status'],
+			'per_page' => $request['per_page'],
+		);
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_components_get_items_query_args', $args, $request );
+
+		$type = $args['type'];
+
+		// Get all components based on type.
+		$components = bp_core_get_components( $type );
+
+		// Active components.
+		$active_components = apply_filters( 'bp_active_components', bp_get_option( 'bp-active-components' ) );
+
+		// Core component is always active.
+		if ( 'optional' !== $type ) {
+			$active_components['core'] = $components['core'];
+		}
+
+		// Inactive components.
+		$inactive_components = array_diff( array_keys( $components ), array_keys( $active_components ) );
+
+		$current_components = array();
+		switch ( $args['status'] ) {
+			case 'all':
+				foreach ( $components as $name => $labels ) {
+					$current_components[] = $this->get_component_info( $name );
+				}
+				break;
+
+			case 'active':
+				foreach ( array_keys( $active_components ) as $component ) {
+					$current_components[] = $this->get_component_info( $component );
+				}
+				break;
+
+			case 'inactive':
+				foreach ( $inactive_components as $component ) {
+					$current_components[] = $this->get_component_info( $component );
+				}
+				break;
+		}
+
+		$retval = array();
+		foreach ( $current_components as $component ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $component, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, count( $current_components ), $args['per_page'] );
+
+		/**
+		 * Fires after a list of components is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $current_components Fetched components.
+		 * @param WP_REST_Response $response           The response data.
+		 * @param WP_REST_Request  $request            The request sent to the API.
+		 */
+		do_action( 'bp_rest_components_get_items', $current_components, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to list components.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! ( is_user_logged_in() && bp_current_user_can( 'bp_moderate' ) ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you do not have access to list components.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the components `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_components_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Activate/Deactivate a component.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		$component = $request['name'];
+
+		if ( ! $this->component_exists( $component ) ) {
+			return new WP_Error(
+				'bp_rest_component_nonexistent',
+				__( 'Sorry, this component does not exist.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$action = $request['action'];
+		if ( empty( $action ) || ! in_array( $action, [ 'activate', 'deactivate' ], true ) ) {
+			return new WP_Error(
+				'bp_rest_component_invalid_action',
+				__( 'Sorry, this is not a valid action.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		if ( 'activate' === $action ) {
+			if ( bp_is_active( $component ) ) {
+				return new WP_Error(
+					'bp_rest_component_already_active',
+					__( 'Sorry, this component is already active.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+
+			$component_info = $this->activate_helper( $component );
+		} else {
+			if ( ! bp_is_active( $component ) ) {
+				return new WP_Error(
+					'bp_rest_component_inactive',
+					__( 'Sorry, this component is not active.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+
+			if ( array_key_exists( $component, bp_core_get_components( 'required' ) ) ) {
+				return new WP_Error(
+					'bp_rest_required_component',
+					__( 'Sorry, you cannot deactivate a required component.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+
+			$component_info = $this->deactivate_helper( $component );
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $component_info, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a component is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array             $component_info Component info.
+		 * @param WP_REST_Response  $response       The response data.
+		 * @param WP_REST_Request   $request        The request sent to the API.
+		 */
+		do_action( 'bp_rest_components_update_item', $component_info, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update a component.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = $this->get_items_permissions_check( $request );
+
+		/**
+		 * Filter the components `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_components_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares component data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array           $component The component and its values.
+	 * @param WP_REST_Request $request   Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $component, $request ) {
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $component, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// @todo add prepare_links
+		$response = rest_ensure_response( $data );
+
+		/**
+		 * Filter a component value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response $response  The Response data.
+		 * @param WP_REST_Request  $request   Request used to generate the response.
+		 * @param array            $component The component and its values.
+		 */
+		return apply_filters( 'bp_rest_components_prepare_value', $response, $request, $component );
+	}
+
+	/**
+	 * Verify Component Status.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $name Component name.
+	 * @return string
+	 */
+	protected function verify_component_status( $name ) {
+		if ( 'core' === $name || bp_is_active( $name ) ) {
+			return __( 'active', 'buddypress' );
+		}
+
+		return __( 'inactive', 'buddypress' );
+	}
+
+	/**
+	 * Deactivate component helper.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $component Component id.
+	 * @return array
+	 */
+	protected function deactivate_helper( $component ) {
+
+		$active_components =& buddypress()->active_components;
+
+		// Set for the rest of the page load.
+		unset( $active_components[ $component ] );
+
+		// Save in the db.
+		bp_update_option( 'bp-active-components', $active_components );
+
+		return $this->get_component_info( $component );
+	}
+
+	/**
+	 * Activate component helper.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $component Component id.
+	 * @return array
+	 */
+	protected function activate_helper( $component ) {
+
+		$active_components =& buddypress()->active_components;
+
+		// Set for the rest of the page load.
+		$active_components[ $component ] = 1;
+
+		// Save in the db.
+		bp_update_option( 'bp-active-components', $active_components );
+
+		// Ensure that dbDelta() is defined.
+		if ( ! function_exists( 'dbDelta' ) ) {
+			require_once ABSPATH . 'wp-admin/includes/upgrade.php';
+		}
+
+		// Run the setup, in case tables have to be created.
+		require_once buddypress()->plugin_dir . 'bp-core/admin/bp-core-admin-schema.php';
+
+		bp_core_install( $active_components );
+		bp_core_add_page_mappings( $active_components );
+
+		return $this->get_component_info( $component );
+	}
+
+	/**
+	 * Get component info helper.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $component Component id.
+	 * @return array
+	 */
+	public function get_component_info( $component ) {
+
+		// Get all components.
+		$components = bp_core_get_components();
+
+		// Get specific component info.
+		$info = $components[ $component ];
+
+		// Return empty early.
+		if ( empty( $info ) ) {
+			return array();
+		}
+
+		return array(
+			'name'        => $component,
+			'status'      => $this->verify_component_status( $component ),
+			'title'       => $info['title'],
+			'description' => $info['description'],
+		);
+	}
+
+	/**
+	 * Does the component exist?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $component Component.
+	 * @return bool
+	 */
+	protected function component_exists( $component ) {
+		return in_array( $component, array_keys( bp_core_get_components() ), true );
+	}
+
+	/**
+	 * Get the components schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_components',
+			'type'       => 'object',
+			'properties' => array(
+				'name'        => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Name of the object.', 'buddypress' ),
+					'type'        => 'string',
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'status'      => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the object is active or inactive.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => array( 'active', 'inactive' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'title'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'HTML title of the object.', 'buddypress' ),
+					'type'        => 'string',
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'description' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'HTML description of the object.', 'buddypress' ),
+					'type'        => 'string',
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+			),
+		);
+
+		/**
+		 * Filters the components schema.
+		 *
+		 * @param string $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_components_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		$params['status'] = array(
+			'description'       => __( 'Limit result set to items with a specific status.', 'buddypress' ),
+			'default'           => 'all',
+			'type'              => 'string',
+			'enum'              => array( 'all', 'active', 'inactive' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['type'] = array(
+			'description'       => __( 'Limit result set to items with a specific type.', 'buddypress' ),
+			'default'           => 'all',
+			'type'              => 'string',
+			'enum'              => array( 'all', 'optional', 'retired', 'required' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_components_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php
index 533eff41b..e528624db 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-user-query.php
@@ -374,7 +374,7 @@ class BP_User_Query {
 		}
 
 		// 'exclude' - User ids to exclude from the results.
-		if ( false !== $exclude ) {
+		if ( ! empty( $exclude ) ) {
 			$exclude_ids    = implode( ',', wp_parse_id_list( $exclude ) );
 			$sql['where'][] = "u.{$this->uid_name} NOT IN ({$exclude_ids})";
 		}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php b/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php
index c88181f5a..b5c11e11d 100644
--- a/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php
+++ b/wp-content/plugins/buddypress/bp-core/classes/class-bp-walker-nav-menu.php
@@ -11,12 +11,12 @@
 defined( 'ABSPATH' ) || exit;
 
 /**
- * Create HTML list of BP nav items.
+ * Compatibility Class to make BP_Walker_Nav_Menu::walk() compatible
+ * from PHP 5.3 to 5.6 and up.
  *
- * @since 1.7.0
+ * @since 5.1.0
  */
-class BP_Walker_Nav_Menu extends Walker_Nav_Menu {
-
+class BP_Walker_Nav_Menu_Compat extends Walker_Nav_Menu {
 	/**
 	 * Description of fields indexes for building markup.
 	 *
@@ -47,15 +47,16 @@ class BP_Walker_Nav_Menu extends Walker_Nav_Menu {
 	 * those have ID/post_parent.
 	 *
 	 * @since 1.7.0
+	 * @since 5.1.0 Method was renamed from `walk` to `do_walk` to ensure PHP 5.3 compatibility
 	 *
 	 * @see Walker::walk()
 	 *
 	 * @param array $elements  See {@link Walker::walk()}.
 	 * @param int   $max_depth See {@link Walker::walk()}.
+	 * @param array $args      Optional additional arguments.
 	 * @return string See {@link Walker::walk()}.
 	 */
-	public function walk( $elements, $max_depth ) {
-		$args   = array_slice( func_get_args(), 2 );
+	public function do_walk( $elements, $max_depth, $args = array() ) {
 		$output = '';
 
 		if ( $max_depth < -1 ) // Invalid parameter.
@@ -211,3 +212,9 @@ class BP_Walker_Nav_Menu extends Walker_Nav_Menu {
 		$output .= apply_filters( 'bp_walker_nav_menu_start_el', $item_output, $item, $depth, $args );
 	}
 }
+
+if ( PHP_VERSION_ID >= 50600 ) {
+	require_once dirname( __DIR__ ) . '/compat/php56/class-bp-compat-walker-nav-menu.php';
+} else {
+	require_once dirname( __DIR__ ) . '/compat/php53/class-bp-compat-walker-nav-menu.php';
+}
diff --git a/wp-content/plugins/buddypress/bp-core/classes/trait-attachments.php b/wp-content/plugins/buddypress/bp-core/classes/trait-attachments.php
new file mode 100644
index 000000000..b99467079
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/classes/trait-attachments.php
@@ -0,0 +1,300 @@
+<?php
+/**
+ * BP REST: Attachments Trait
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Attachments Trait
+ *
+ * @since 5.0.0
+ */
+trait BP_REST_Attachments {
+
+	/**
+	 * Returns the avatar object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args {
+	 *     An array of arguments to build the Avatar object.
+	 *
+	 *     @type string $full  The url to the full version of the avatar.
+	 *     @type string $thumb The url to the thumb version of the avatar.
+	 * }
+	 * @return object The avatar object.
+	 */
+	protected function get_avatar_object( $args = array() ) {
+		$avatar_object = array_intersect_key(
+			$args,
+			array(
+				'full'  => '',
+				'thumb' => '',
+			)
+		);
+
+		return (object) $avatar_object;
+	}
+
+	/**
+	 * Avatar upload from File.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $files $_FILES superglobal.
+	 * @return stdClass|WP_Error
+	 */
+	protected function upload_avatar_from_file( $files ) {
+		$bp = buddypress();
+
+		// Set global variables.
+		if ( 'group' === $this->object ) {
+			$bp->groups->current_group = $this->group;
+			$upload_main_dir           = 'groups_avatar_upload_dir';
+		} else {
+			$upload_main_dir        = 'xprofile_avatar_upload_dir';
+			$bp->displayed_user     = new stdClass();
+			$bp->displayed_user->id = (int) $this->user->ID;
+		}
+
+		$avatar_attachment = $this->avatar_instance;
+		$avatar_original   = $avatar_attachment->upload( $files, $upload_main_dir );
+
+		// Bail early in case of an error.
+		if ( ! empty( $avatar_original['error'] ) ) {
+			return new WP_Error(
+				"bp_rest_attachments_{$this->object}_avatar_upload_error",
+				sprintf(
+					/* translators: %s is replaced with the error */
+					__( 'Upload failed! Error was: %s.', 'buddypress' ),
+					$avatar_original['error']
+				),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Get image and bail early if there is an error.
+		$image_file = $this->resize( $avatar_original['file'] );
+		if ( is_wp_error( $image_file ) ) {
+			return $image_file;
+		}
+
+		// If the uploaded image is smaller than the "full" dimensions, throw a warning.
+		if ( $avatar_attachment->is_too_small( $image_file ) ) {
+			return new WP_Error(
+				"bp_rest_attachments_{$this->object}_avatar_error",
+				sprintf(
+					/* translators: %1$s and %2$s is replaced with the correct sizes. */
+					__( 'You have selected an image that is smaller than recommended. For best results, upload a picture larger than %1$s x %2$s pixels.', 'buddypress' ),
+					bp_core_avatar_full_width(),
+					bp_core_avatar_full_height()
+				),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Delete existing image if one exists.
+		$this->delete_existing_image();
+
+		// Crop the profile photo accordingly and bail early in case of an error.
+		$cropped = $this->crop_image( $image_file );
+		if ( is_wp_error( $cropped ) ) {
+			return $cropped;
+		}
+
+		// Set the arguments for the avatar.
+		$args = array();
+		foreach ( [ 'full', 'thumb' ] as $key_type ) {
+
+			// Update path with an url.
+			$url = str_replace( bp_core_avatar_upload_path(), '', $cropped[ $key_type ] );
+
+			// Set image url to its size/type.
+			$args[ $key_type ] = bp_core_avatar_url() . $url;
+		}
+
+		// Build response object.
+		$avatar_object = $this->get_avatar_object( $args );
+
+		if ( file_exists( $avatar_original['file'] ) ) {
+			unlink( $avatar_original['file'] );
+		}
+
+		return $avatar_object;
+	}
+
+	/**
+	 * Resize image.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $file Image to resize.
+	 * @return string|WP_Error
+	 */
+	protected function resize( $file ) {
+		$bp          = buddypress();
+		$upload_path = bp_core_avatar_upload_path();
+
+		if ( ! isset( $bp->avatar_admin ) ) {
+			$bp->avatar_admin = new stdClass();
+		}
+
+		// The Avatar UI available width.
+		$ui_available_width = 0;
+
+		// Try to set the ui_available_width using the avatar_admin global.
+		if ( isset( $bp->avatar_admin->ui_available_width ) ) {
+			$ui_available_width = $bp->avatar_admin->ui_available_width;
+		}
+
+		$resized = $this->avatar_instance->shrink( $file, $ui_available_width );
+
+		// We only want to handle one image after resize.
+		if ( empty( $resized ) ) {
+			$image_file = $file;
+			$img_dir    = str_replace( $upload_path, '', $file );
+		} else {
+			$image_file = $resized['path'];
+			$img_dir    = str_replace( $upload_path, '', $resized['path'] );
+			unlink( $file );
+		}
+
+		// Check for WP_Error on what should be an image.
+		if ( is_wp_error( $img_dir ) ) {
+			return new WP_Error(
+				"bp_rest_attachments_{$this->object}_avatar_upload_error",
+				sprintf(
+					/* translators: %s is replaced with error message. */
+					__( 'Upload failed! Error was: %s', 'buddypress' ),
+					$img_dir->get_error_message()
+				),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		return $image_file;
+	}
+
+	/**
+	 * Crop image.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $image_file Image to crop.
+	 * @return array|WP_Error
+	 */
+	protected function crop_image( $image_file ) {
+		$image          = getimagesize( $image_file );
+		$avatar_to_crop = str_replace( bp_core_avatar_upload_path(), '', $image_file );
+
+		// Get avatar full width and height.
+		$full_height = bp_core_avatar_full_height();
+		$full_width  = bp_core_avatar_full_width();
+
+		// Use as much as possible of the image.
+		$avatar_ratio = $full_width / $full_height;
+		$image_ratio  = $image[0] / $image[1];
+
+		if ( $image_ratio >= $avatar_ratio ) {
+			// Uploaded image is wider than BP ratio, so we crop horizontally.
+			$crop_y = 0;
+			$crop_h = $image[1];
+
+			// Get the target width by multiplying unmodified image height by target ratio.
+			$crop_w    = $avatar_ratio * $image[1];
+			$padding_w = round( ( $image[0] - $crop_w ) / 2 );
+			$crop_x    = $padding_w;
+		} else {
+			// Uploaded image is narrower than BP ratio, so we crop vertically.
+			$crop_x = 0;
+			$crop_w = $image[0];
+
+			// Get the target height by multiplying unmodified image width by target ratio.
+			$crop_h    = $avatar_ratio * $image[0];
+			$padding_h = round( ( $image[1] - $crop_h ) / 2 );
+			$crop_y    = $padding_h;
+		}
+
+		add_filter( 'bp_attachments_current_user_can', '__return_true' );
+
+		// Crop the image.
+		$cropped = $this->avatar_instance->crop(
+			array(
+				'object'        => $this->object,
+				'avatar_dir'    => ( 'group' === $this->object ) ? 'group-avatars' : 'avatars',
+				'item_id'       => $this->get_item_id(),
+				'original_file' => $avatar_to_crop,
+				'crop_w'        => $crop_w,
+				'crop_h'        => $crop_h,
+				'crop_x'        => $crop_x,
+				'crop_y'        => $crop_y,
+			)
+		);
+
+		remove_filter( 'bp_attachments_current_user_can', '__return_false' );
+
+		// Check for errors.
+		if ( empty( $cropped['full'] ) || empty( $cropped['thumb'] ) || is_wp_error( $cropped['full'] ) || is_wp_error( $cropped['thumb'] ) ) {
+			return new WP_Error(
+				"bp_rest_attachments_{$this->object}_avatar_crop_error",
+				sprintf(
+					/* translators: %s is replaced with object type. */
+					__( 'There was a problem cropping your %s photo.', 'buddypress' ),
+					$this->object
+				),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		return $cropped;
+	}
+
+	/**
+	 * Delete group's existing avatar if one exists.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return void
+	 */
+	protected function delete_existing_image() {
+		// Get existing avatar.
+		$existing_avatar = bp_core_fetch_avatar(
+			array(
+				'object'  => $this->object,
+				'item_id' => $this->get_item_id(),
+				'html'    => false,
+			)
+		);
+
+		// Check if the avatar exists before deleting.
+		if ( ! empty( $existing_avatar ) ) {
+			bp_core_delete_existing_avatar(
+				array(
+					'object'  => $this->object,
+					'item_id' => $this->get_item_id(),
+				)
+			);
+		}
+	}
+
+	/**
+	 * Get item id.
+	 *
+	 * @return int
+	 */
+	protected function get_item_id() {
+		return ( 'group' === $this->object ) ? $this->group->id : $this->user->ID;
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/compat/php53/class-bp-compat-walker-nav-menu.php b/wp-content/plugins/buddypress/bp-core/compat/php53/class-bp-compat-walker-nav-menu.php
new file mode 100644
index 000000000..7bfc6f9c8
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/compat/php53/class-bp-compat-walker-nav-menu.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Walker_Nav_Menu Compat for PHP 5.3 and UP.
+ *
+ * @package BuddyPress
+ * @subpackage Core
+ * @since 5.1.0
+ */
+
+ // Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Create HTML list of BP nav items.
+ *
+ * @since 1.7.0
+ */
+class BP_Walker_Nav_Menu extends BP_Walker_Nav_Menu_Compat {
+	/**
+	 * Compat method to extend Walker_Nav_Menu::walk() in PHP < 5.6.
+	 *
+	 * @since 5.1.0
+	 *
+	 * @param array $elements  See {@link Walker::walk()}.
+	 * @param int   $max_depth See {@link Walker::walk()}.
+	 */
+	public function walk( $elements, $max_depth ) {
+		$args = array_slice( func_get_args(), 2 );
+
+		return $this->do_walk( $elements, $max_depth, $args );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/compat/php56/class-bp-compat-walker-nav-menu.php b/wp-content/plugins/buddypress/bp-core/compat/php56/class-bp-compat-walker-nav-menu.php
new file mode 100644
index 000000000..0e35f37cc
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/compat/php56/class-bp-compat-walker-nav-menu.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Walker_Nav_Menu Compat for PHP 5.6 and UP.
+ *
+ * @package BuddyPress
+ * @subpackage Core
+ * @since 5.1.0
+ */
+
+ // Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Create HTML list of BP nav items.
+ *
+ * @since 1.7.0
+ */
+class BP_Walker_Nav_Menu extends BP_Walker_Nav_Menu_Compat {
+	/**
+	 * Compat method to extend Walker_Nav_Menu::walk() in PHP > 5.6.
+	 *
+	 * @since 5.1.0
+	 *
+	 * @param array $elements  See {@link Walker::walk()}.
+	 * @param int   $max_depth See {@link Walker::walk()}.
+	 * @param mixed ...$args   See {@link Walker::walk()}.
+	 */
+	public function walk( $elements, $max_depth, ...$args ) { // phpcs:ignore PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ellipsisFound
+		return $this->do_walk( $elements, $max_depth, $args );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-core/deprecated/2.1.php b/wp-content/plugins/buddypress/bp-core/deprecated/2.1.php
index e69db465f..e147bd520 100644
--- a/wp-content/plugins/buddypress/bp-core/deprecated/2.1.php
+++ b/wp-content/plugins/buddypress/bp-core/deprecated/2.1.php
@@ -334,7 +334,7 @@ function bp_core_load_buddybar_css() {
 
 	wp_enqueue_style( 'bp-admin-bar', apply_filters( 'bp_core_buddybar_rtl_css', $stylesheet ), array(), bp_get_version() );
 
-	wp_style_add_data( 'bp-admin-bar', 'rtl', true );
+	wp_style_add_data( 'bp-admin-bar', 'rtl', 'replace' );
 	if ( $min ) {
 		wp_style_add_data( 'bp-admin-bar', 'suffix', $min );
 	}
diff --git a/wp-content/plugins/buddypress/bp-core/images/bp-nouveau-improvements.png b/wp-content/plugins/buddypress/bp-core/images/bp-nouveau-improvements.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3ac19626b7c936f3315007987d930fc2cd02244
GIT binary patch
literal 50612
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
F2>{(0bvpn6

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/buddypress/bp-core/images/buddypress-blocks-category.png b/wp-content/plugins/buddypress/bp-core/images/buddypress-blocks-category.png
new file mode 100644
index 0000000000000000000000000000000000000000..56b3266094883a5e6d7efd74270c671845032f5e
GIT binary patch
literal 30846
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
Lu6{1-oD!M<tW<31

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/buddypress/bp-core/images/manage-members-interface.png b/wp-content/plugins/buddypress/bp-core/images/manage-members-interface.png
new file mode 100644
index 0000000000000000000000000000000000000000..f645e0ff99be2af9ad54f362fa3609a995a6a6e5
GIT binary patch
literal 52249
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/buddypress/bp-core/images/site-health-buddypress-section.png b/wp-content/plugins/buddypress/bp-core/images/site-health-buddypress-section.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2b6818467da8961c0043136be326e757083b58e
GIT binary patch
literal 46412
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/buddypress/bp-core/js/bp-api-request.js b/wp-content/plugins/buddypress/bp-core/js/bp-api-request.js
new file mode 100644
index 000000000..109222cbf
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/js/bp-api-request.js
@@ -0,0 +1,69 @@
+/**
+ * jQuery.ajax wrapper for BP REST API requests.
+ *
+ * @since  5.0.0
+ * @output bp-core/js/bp-api-request.js
+ */
+/* global bpApiSettings */
+window.bp = window.bp || {};
+
+( function( wp, bp, $ ) {
+    // Bail if not set
+    if ( typeof bpApiSettings === 'undefined' ) {
+        return;
+    }
+
+    bp.isRestEnabled = true;
+
+    // Polyfill wp.apiRequest if WordPress < 4.9
+    bp.apiRequest = function( options ) {
+        var bpRequest;
+
+        if ( ! options.dataType ) {
+            options.dataType = 'json';
+        }
+
+        // WordPress is >= 4.9.0.
+        if ( wp.apiRequest ) {
+            bpRequest = wp.apiRequest( options );
+
+        // WordPress is < 4.9.0.
+        } else {
+            var url = bpApiSettings.root;
+
+            if ( options.path ) {
+                url = url + options.path.replace( /^\//, '' );
+            }
+
+            if ( ! options.url ) {
+                options.url = url;
+            }
+
+            // Add The nonce only when needed.
+            if ( -1 !== options.url.indexOf( url ) ) {
+                options.beforeSend = function( xhr ) {
+                    xhr.setRequestHeader( 'X-WP-Nonce', bpApiSettings.nonce );
+                };
+            }
+
+            bpRequest = $.ajax( options );
+        }
+
+        return bpRequest.then( null, function( result ) {
+            var errorObject = {
+                code: 'unexpected_error',
+                message: bpApiSettings.unexpectedError,
+                data: {
+                    status: 404
+                }
+            };
+
+            if ( result && result.responseJSON ) {
+                errorObject = result.responseJSON;
+            }
+
+            return errorObject;
+        } );
+    };
+
+} )( window.wp || {}, window.bp, jQuery );
diff --git a/wp-content/plugins/buddypress/bp-core/js/bp-api-request.min.js b/wp-content/plugins/buddypress/bp-core/js/bp-api-request.min.js
new file mode 100644
index 000000000..ea182df04
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-core/js/bp-api-request.min.js
@@ -0,0 +1 @@
+window.bp=window.bp||{},function(e,n,t){"undefined"!=typeof bpApiSettings&&(n.isRestEnabled=!0,n.apiRequest=function(n){var p;if(n.dataType||(n.dataType="json"),e.apiRequest)p=e.apiRequest(n);else{var i=bpApiSettings.root;n.path&&(i+=n.path.replace(/^\//,"")),n.url||(n.url=i),-1!==n.url.indexOf(i)&&(n.beforeSend=function(e){e.setRequestHeader("X-WP-Nonce",bpApiSettings.nonce)}),p=t.ajax(n)}return p.then(null,function(e){var n={code:"unexpected_error",message:bpApiSettings.unexpectedError,data:{status:404}};return e&&e.responseJSON&&(n=e.responseJSON),n})})}(window.wp||{},window.bp,jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-friends/bp-friends-filters.php b/wp-content/plugins/buddypress/bp-friends/bp-friends-filters.php
index 9cdcb1b95..24ecea0ea 100644
--- a/wp-content/plugins/buddypress/bp-friends/bp-friends-filters.php
+++ b/wp-content/plugins/buddypress/bp-friends/bp-friends-filters.php
@@ -52,24 +52,28 @@ add_filter( 'bp_user_query_populate_extras', 'bp_friends_filter_user_query_popul
  * Registers Friends personal data exporter.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_friends_register_personal_data_exporters( $exporters ) {
 	$exporters['buddypress-friends'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Friends', 'buddypress' ),
-		'callback'               => 'bp_friends_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Friends', 'buddypress' ),
+		'callback'                  => 'bp_friends_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Friends', 'BuddyPress Friends data exporter friendly name', 'buddypress' ),
 	);
 
 	$exporters['buddypress-friends-pending-sent-requests'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Friend Requests (Sent)', 'buddypress' ),
-		'callback'               => 'bp_friends_pending_sent_requests_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Friend Requests (Sent)', 'buddypress' ),
+		'callback'                  => 'bp_friends_pending_sent_requests_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Friend Requests (Sent)', 'BuddyPress Friend Requests data exporter friendly name', 'buddypress' ),
 	);
 
 	$exporters['buddypress-friends-pending-received-requests'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Friend Requests (Received)', 'buddypress' ),
-		'callback'               => 'bp_friends_pending_received_requests_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Friend Requests (Received)', 'buddypress' ),
+		'callback'                  => 'bp_friends_pending_received_requests_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Friend Requests (Received)', 'BuddyPress Friend Requests data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php
index 82ae7229e..8ca38d068 100644
--- a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php
+++ b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-core-friends-widget.php
@@ -161,7 +161,7 @@ class BP_Core_Friends_Widget extends WP_Widget {
 
 		$instance['max_friends']    = absint( $new_instance['max_friends'] );
 		$instance['friend_default'] = sanitize_text_field( $new_instance['friend_default'] );
-		$instance['link_title']	    = (bool) $new_instance['link_title'];
+		$instance['link_title']	    = ! empty( $new_instance['link_title'] );
 
 		return $instance;
 	}
diff --git a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php
index 761033541..9fa625cc7 100644
--- a/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php
+++ b/wp-content/plugins/buddypress/bp-friends/classes/class-bp-friends-friendship.php
@@ -197,7 +197,7 @@ class BP_Friends_Friendship {
 		 *
 		 * @param BP_Friends_Friendship $value Current friendship request object.
 		 */
-		do_action( 'friends_friendship_after_save', array( &$this ) );
+		do_action_ref_array( 'friends_friendship_after_save', array( &$this ) );
 
 		return $result;
 	}
@@ -614,9 +614,9 @@ class BP_Friends_Friendship {
 	 *
 	 * @since 3.0.0
 	 *
-	 * @param int $user_id                          The ID of the primary user for whom we want 
+	 * @param int $user_id                          The ID of the primary user for whom we want
 	 *                                              to check friendships statuses.
-	 * @param int|array|string $possible_friend_ids The IDs of the one or more users 
+	 * @param int|array|string $possible_friend_ids The IDs of the one or more users
 	 *                                              to check friendship status with primary user.
 	 * @return null
 	 */
@@ -628,7 +628,7 @@ class BP_Friends_Friendship {
 		$fetch = array();
 		foreach ( $possible_friend_ids as $friend_id ) {
 			// Check for cached items in both friendship directions.
-			if ( false === bp_core_get_incremented_cache( $user_id . ':' . $friend_id, 'bp_friends' ) 
+			if ( false === bp_core_get_incremented_cache( $user_id . ':' . $friend_id, 'bp_friends' )
 				|| false === bp_core_get_incremented_cache( $friend_id . ':' . $user_id, 'bp_friends' ) ) {
 				$fetch[] = $friend_id;
 			}
@@ -649,7 +649,7 @@ class BP_Friends_Friendship {
 			if ( 1 === (int) $friendship->is_confirmed ) {
 				$status_initiator = $status_friend = 'is_friend';
 			} else {
-				$status_initiator = 'pending'; 
+				$status_initiator = 'pending';
 				$status_friend    = 'awaiting_response';
 			}
 			bp_core_set_incremented_cache( $initiator_user_id . ':' . $friend_user_id, 'bp_friends', $status_initiator );
diff --git a/wp-content/plugins/buddypress/bp-groups/actions/create.php b/wp-content/plugins/buddypress/bp-groups/actions/create.php
index fa196caa7..132429bd1 100644
--- a/wp-content/plugins/buddypress/bp-groups/actions/create.php
+++ b/wp-content/plugins/buddypress/bp-groups/actions/create.php
@@ -136,7 +136,7 @@ function groups_action_create_group() {
 				}
 			}
 
-			groups_send_invites( bp_loggedin_user_id(), $bp->groups->new_group_id );
+			groups_send_invites( array(	'group_id' => $bp->groups->new_group_id ) );
 		}
 
 		/**
@@ -337,4 +337,4 @@ function groups_action_sort_creation_steps() {
 	 * @since 2.3.0
 	 */
 	do_action( 'groups_action_sort_creation_steps' );
-}
\ No newline at end of file
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/actions/leave-group.php b/wp-content/plugins/buddypress/bp-groups/actions/leave-group.php
index 860e9fc1d..6528abc69 100644
--- a/wp-content/plugins/buddypress/bp-groups/actions/leave-group.php
+++ b/wp-content/plugins/buddypress/bp-groups/actions/leave-group.php
@@ -58,4 +58,35 @@ function groups_action_leave_group() {
 	/** This filter is documented in bp-groups/bp-groups-actions.php */
 	bp_core_load_template( apply_filters( 'groups_template_group_home', 'groups/single/home' ) );
 }
-add_action( 'bp_actions', 'groups_action_leave_group' );
\ No newline at end of file
+add_action( 'bp_actions', 'groups_action_leave_group' );
+
+/**
+ * Clean up requests/invites when a member leaves a group.
+ *
+ * @since 5.0.0
+ */
+function groups_action_clean_up_invites_requests( $user_id, $group_id ) {
+
+	$invites_class = new BP_Groups_Invitation_Manager();
+	// Remove invitations/requests where the deleted user is the receiver.
+	$invites_class->delete( array(
+		'user_id' => $user_id,
+		'item_id' => $group_id,
+		'type'    => 'all'
+	) );
+	/**
+	 * Remove invitations where the deleted user is the sender.
+	 * We'll use groups_uninvite_user() so that notifications will be cleaned up.
+	 */ 
+	$pending_invites = groups_get_invites( array(
+		'inviter_id' => $user_id,
+		'item_id'    => $group_id,
+	) );
+
+	if ( $pending_invites ) {
+		foreach ( $pending_invites as $invite ) {
+			groups_uninvite_user( $invite->user_id, $group_id, $user_id );
+		}
+	}
+}
+add_action( 'bp_groups_member_after_delete', 'groups_action_clean_up_invites_requests', 10, 2 );
diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css
index cf0df3cf0..16665581b 100644
--- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css
+++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.css
@@ -140,6 +140,39 @@ table.bp-group-members .urole-column {
 	padding-left: 20px;
 }
 
+#group-manage-members-ui .subnav-filters .filter.last {
+	float: left;
+}
+
+#group-manage-members-ui .subnav-filters .left-menu {
+	float: right;
+}
+
+#group-manage-members-ui .subnav-filters .group-members-paginate-button:last-child {
+	margin-left: 2em;
+}
+
+#group-manage-members-ui .subnav-filters .dashicons {
+	padding-top: 2px;
+}
+
+#group-manage-members-ui .uname-column .profile-photo {
+	margin-left: 1em;
+}
+
+#bp-no-group-members .bp-feedback.info {
+	background: #fff;
+	border-right: 4px solid #00a0d2;
+	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
+	margin: 5px 5px 2px;
+	padding: 1px 12px;
+}
+
+#bp-no-group-members .bp-feedback.info p {
+	margin: 0.5em 0;
+	padding: 2px;
+}
+
 @media screen and (max-width: 782px) {
 
 	.bp-groups-settings-section label {
diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css
index ea1dfbb2b..47dc348b5 100644
--- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css
+++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin-rtl.min.css
@@ -1 +1 @@
-body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:right;margin-left:10px;margin-top:1px}#bp-groups-edit-form input{outline:medium none}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{border:1px solid #e5e5e5;margin-top:6px;width:100%}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:right;display:block;float:right;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}#bp-groups-permalink{margin-left:24px}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:left;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-right:15px}.bp-group-admin-pagination-links .page-numbers{display:inline-block;min-width:12px;border:1px solid #ccc;padding:2px 4px 4px;background:#e5e5e5;line-height:1;font-weight:400;text-align:center;text-decoration:none}.bp-group-admin-pagination-links a.page-numbers:hover{text-decoration:underline}.bp-group-admin-pagination-links .page-numbers.current,.bp-group-admin-pagination-links .page-numbers.dots{border-color:#ddd;background:#f7f7f7;color:#a0a5aa}table.bp-group-members .uid-column{padding-right:20px;padding-left:20px}table.bp-group-members .uname-column{width:70%}table.bp-group-members .urole-column{padding-right:20px;padding-left:20px}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}}
\ No newline at end of file
+body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:right;margin-left:10px;margin-top:1px}#bp-groups-edit-form input{outline:medium none}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{border:1px solid #e5e5e5;margin-top:6px;width:100%}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:right;display:block;float:right;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}#bp-groups-permalink{margin-left:24px}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:left;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-right:15px}.bp-group-admin-pagination-links .page-numbers{display:inline-block;min-width:12px;border:1px solid #ccc;padding:2px 4px 4px;background:#e5e5e5;line-height:1;font-weight:400;text-align:center;text-decoration:none}.bp-group-admin-pagination-links a.page-numbers:hover{text-decoration:underline}.bp-group-admin-pagination-links .page-numbers.current,.bp-group-admin-pagination-links .page-numbers.dots{border-color:#ddd;background:#f7f7f7;color:#a0a5aa}table.bp-group-members .uid-column{padding-right:20px;padding-left:20px}table.bp-group-members .uname-column{width:70%}table.bp-group-members .urole-column{padding-right:20px;padding-left:20px}#group-manage-members-ui .subnav-filters .filter.last{float:left}#group-manage-members-ui .subnav-filters .left-menu{float:right}#group-manage-members-ui .subnav-filters .group-members-paginate-button:last-child{margin-left:2em}#group-manage-members-ui .subnav-filters .dashicons{padding-top:2px}#group-manage-members-ui .uname-column .profile-photo{margin-left:1em}#bp-no-group-members .bp-feedback.info{background:#fff;border-right:4px solid #00a0d2;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 5px 2px;padding:1px 12px}#bp-no-group-members .bp-feedback.info p{margin:.5em 0;padding:2px}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css
index 0a7887a10..8f1a877b9 100644
--- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css
+++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.css
@@ -140,6 +140,39 @@ table.bp-group-members .urole-column {
 	padding-right: 20px;
 }
 
+#group-manage-members-ui .subnav-filters .filter.last {
+	float: right;
+}
+
+#group-manage-members-ui .subnav-filters .left-menu {
+	float: left;
+}
+
+#group-manage-members-ui .subnav-filters .group-members-paginate-button:last-child {
+	margin-right: 2em;
+}
+
+#group-manage-members-ui .subnav-filters .dashicons {
+	padding-top: 2px;
+}
+
+#group-manage-members-ui .uname-column .profile-photo {
+	margin-right: 1em;
+}
+
+#bp-no-group-members .bp-feedback.info {
+	background: #fff;
+	border-left: 4px solid #00a0d2;
+	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
+	margin: 5px 5px 2px;
+	padding: 1px 12px;
+}
+
+#bp-no-group-members .bp-feedback.info p {
+	margin: 0.5em 0;
+	padding: 2px;
+}
+
 @media screen and (max-width: 782px) {
 
 	.bp-groups-settings-section label {
diff --git a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css
index b735f4ca7..df61a5bb2 100644
--- a/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css
+++ b/wp-content/plugins/buddypress/bp-groups/admin/css/admin.min.css
@@ -1 +1 @@
-body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:left;margin-right:10px;margin-top:1px}#bp-groups-edit-form input{outline:medium none}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{border:1px solid #e5e5e5;margin-top:6px;width:100%}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:left;display:block;float:left;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}#bp-groups-permalink{margin-right:24px}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:right;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-left:15px}.bp-group-admin-pagination-links .page-numbers{display:inline-block;min-width:12px;border:1px solid #ccc;padding:2px 4px 4px;background:#e5e5e5;line-height:1;font-weight:400;text-align:center;text-decoration:none}.bp-group-admin-pagination-links a.page-numbers:hover{text-decoration:underline}.bp-group-admin-pagination-links .page-numbers.current,.bp-group-admin-pagination-links .page-numbers.dots{border-color:#ddd;background:#f7f7f7;color:#a0a5aa}table.bp-group-members .uid-column{padding-left:20px;padding-right:20px}table.bp-group-members .uname-column{width:70%}table.bp-group-members .urole-column{padding-left:20px;padding-right:20px}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}}
\ No newline at end of file
+body.toplevel_page_bp-groups table.groups th#members,body.toplevel_page_bp-groups table.groups th#status{width:10%}body.toplevel_page_bp-groups table.groups th#last_active{width:15%}#bp-groups-form .avatar{float:left;margin-right:10px;margin-top:1px}#bp-groups-edit-form input{outline:medium none}#bp-groups-edit-form input#bp-groups-name{font-size:1.7em;width:100%;margin-bottom:6px}#bp-groups-edit-form input#bp-groups-new-members{border:1px solid #e5e5e5;margin-top:6px;width:100%}#bp-groups-new-members-list{margin:0}.bp-groups-settings-section{margin-top:10px;line-height:2}.bp-groups-settings-section legend{margin-top:10px;font-weight:700}.bp-groups-settings-section label{clear:left;display:block;float:left;vertical-align:middle}#bp-groups-permalink-box{line-height:24px;color:#666}#bp-groups-permalink{margin-right:24px}.bp-groups-member-type{position:relative}.bp-groups-member-type>h4{margin-bottom:.5em}ul.bp-group-delete-list{list-style-type:disc;margin:4px 26px}.bp-group-admin-pagination{position:absolute;text-align:right;width:100%}.bp-group-admin-pagination.table-top{top:0}.bp-group-admin-pagination.table-bottom{bottom:0}.bp-group-admin-pagination-viewing{color:#777;font-size:12px;font-style:italic}.bp-group-admin-pagination-links{white-space:nowrap;padding-left:15px}.bp-group-admin-pagination-links .page-numbers{display:inline-block;min-width:12px;border:1px solid #ccc;padding:2px 4px 4px;background:#e5e5e5;line-height:1;font-weight:400;text-align:center;text-decoration:none}.bp-group-admin-pagination-links a.page-numbers:hover{text-decoration:underline}.bp-group-admin-pagination-links .page-numbers.current,.bp-group-admin-pagination-links .page-numbers.dots{border-color:#ddd;background:#f7f7f7;color:#a0a5aa}table.bp-group-members .uid-column{padding-left:20px;padding-right:20px}table.bp-group-members .uname-column{width:70%}table.bp-group-members .urole-column{padding-left:20px;padding-right:20px}#group-manage-members-ui .subnav-filters .filter.last{float:right}#group-manage-members-ui .subnav-filters .left-menu{float:left}#group-manage-members-ui .subnav-filters .group-members-paginate-button:last-child{margin-right:2em}#group-manage-members-ui .subnav-filters .dashicons{padding-top:2px}#group-manage-members-ui .uname-column .profile-photo{margin-right:1em}#bp-no-group-members .bp-feedback.info{background:#fff;border-left:4px solid #00a0d2;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 5px 2px;padding:1px 12px}#bp-no-group-members .bp-feedback.info p{margin:.5em 0;padding:2px}@media screen and (max-width:782px){.bp-groups-settings-section label{margin:.25em 0}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php
index f45e131aa..8fbc008b6 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-activity.php
@@ -54,6 +54,15 @@ function groups_register_activity_actions() {
 		array( 'activity', 'group', 'member', 'member_groups' )
 	);
 
+	bp_activity_set_action(
+		$bp->groups->id,
+		'activity_update',
+		__( 'Posted a status update in a Group', 'buddypress' ),
+		'bp_groups_format_activity_action_group_activity_update',
+		__( 'Group Activity Updates', 'buddypress' ),
+		array( 'activity', 'group', 'member', 'member_groups' )
+	);
+
 	/**
 	 * Fires at end of registration of the default activity actions for the Groups component.
 	 *
@@ -63,6 +72,27 @@ function groups_register_activity_actions() {
 }
 add_action( 'bp_register_activity_actions', 'groups_register_activity_actions' );
 
+/**
+ * Get the group object the activity belongs to.
+ *
+ * @since 5.0.0
+ *
+ * @param integer $group_id The group ID the activity is linked to.
+ * @return BP_Groups_Group  The group object the activity belongs to.
+ */
+function bp_groups_get_activity_group( $group_id = 0 ) {
+	// If displaying a specific group, check the activity belongs to it.
+	if ( bp_is_group() && bp_get_current_group_id() === (int) $group_id ) {
+		$group = groups_get_current_group();
+
+		// Otherwise get the group the activity belongs to.
+	} else {
+		$group = groups_get_group( $group_id );
+	}
+
+	return $group;
+}
+
 /**
  * Format 'created_group' activity actions.
  *
@@ -75,7 +105,7 @@ add_action( 'bp_register_activity_actions', 'groups_register_activity_actions' )
 function bp_groups_format_activity_action_created_group( $action, $activity ) {
 	$user_link = bp_core_get_userlink( $activity->user_id );
 
-	$group      = groups_get_group( $activity->item_id );
+	$group      = bp_groups_get_activity_group( $activity->item_id );
 	$group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>';
 
 	$action = sprintf( esc_html__( '%1$s created the group %2$s', 'buddypress'), $user_link, $group_link );
@@ -103,7 +133,7 @@ function bp_groups_format_activity_action_created_group( $action, $activity ) {
 function bp_groups_format_activity_action_joined_group( $action, $activity ) {
 	$user_link = bp_core_get_userlink( $activity->user_id );
 
-	$group      = groups_get_group( $activity->item_id );
+	$group      = bp_groups_get_activity_group( $activity->item_id );
 	$group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>';
 
 	$action = sprintf( esc_html__( '%1$s joined the group %2$s', 'buddypress' ), $user_link, $group_link );
@@ -142,7 +172,7 @@ function bp_groups_format_activity_action_joined_group( $action, $activity ) {
 function bp_groups_format_activity_action_group_details_updated( $action, $activity ) {
 	$user_link = bp_core_get_userlink( $activity->user_id );
 
-	$group      = groups_get_group( $activity->item_id );
+	$group      = bp_groups_get_activity_group( $activity->item_id );
 	$group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>';
 
 	/*
@@ -183,6 +213,38 @@ function bp_groups_format_activity_action_group_details_updated( $action, $activ
 	return apply_filters( 'bp_groups_format_activity_action_joined_group', $action, $activity );
 }
 
+/**
+ * Format the action for activity updates posted in a Group.
+ *
+ * @since 5.0.0
+ *
+ * @param string $action   Static activity action.
+ * @param object $activity Activity data object.
+ * @return string          The formatted action for activity updates posted in a Group.
+ */
+function bp_groups_format_activity_action_group_activity_update( $action, $activity ) {
+	$user_link = bp_core_get_userlink( $activity->user_id );
+	$group     = bp_groups_get_activity_group( $activity->item_id );
+
+	$group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>';
+
+	// Set the Activity update posted in a Group action.
+	$action = sprintf( esc_html__( '%1$s posted an update in the group %2$s', 'buddypress' ), $user_link, $group_link );
+
+	/** This filter is documented in wp-includes/deprecated.php */
+	$action = apply_filters_deprecated( 'groups_activity_new_update_action', array( $action ), '5.0.0', 'bp_groups_format_activity_action_group_activity_update' );
+
+	/**
+	 * Filters the Group's activity update action.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $action   The Group's activity update action.
+	 * @param object $activity Activity data object.
+	 */
+	return apply_filters( 'bp_groups_format_activity_action_group_activity_update', $action, $activity );
+}
+
 /**
  * Fetch data related to groups at the beginning of an activity loop.
  *
@@ -440,12 +502,8 @@ function groups_record_activity( $args = '' ) {
 
 	// Set the default for hide_sitewide by checking the status of the group.
 	$hide_sitewide = false;
-	if ( !empty( $args['item_id'] ) ) {
-		if ( bp_get_current_group_id() == $args['item_id'] ) {
-			$group = groups_get_current_group();
-		} else {
-			$group = groups_get_group( $args['item_id'] );
-		}
+	if ( ! empty( $args['item_id'] ) ) {
+		$group = bp_groups_get_activity_group( $args['item_id'] );
 
 		if ( isset( $group->status ) && 'public' != $group->status ) {
 			$hide_sitewide = true;
@@ -470,6 +528,84 @@ function groups_record_activity( $args = '' ) {
 	return bp_activity_add( $r );
 }
 
+/**
+ * Post an Activity status update affiliated with a group.
+ *
+ * @since 1.2.0
+ * @since 2.6.0 Added 'error_type' parameter to $args.
+ *
+ * @param array|string $args {
+ *     Array of arguments.
+ *     @type string $content  The content of the update.
+ *     @type int    $user_id  Optional. ID of the user posting the update. Default:
+ *                            ID of the logged-in user.
+ *     @type int    $group_id Optional. ID of the group to be affiliated with the
+ *                            update. Default: ID of the current group.
+ * }
+ * @return WP_Error|bool|int Returns the ID of the new activity item on success, or false on failure.
+ */
+function groups_post_update( $args = '' ) {
+	$bp = buddypress();
+
+	$r = bp_parse_args( $args, array(
+		'content'    => false,
+		'user_id'    => bp_loggedin_user_id(),
+		'group_id'   => 0,
+		'error_type' => 'bool'
+	), 'groups_post_update' );
+
+	$group_id = (int) $r['group_id'];
+	if ( ! $group_id && ! empty( $bp->groups->current_group->id ) ) {
+		$group_id = (int) $bp->groups->current_group->id;
+	}
+
+	$content = $r['content'];
+	$user_id = (int) $r['user_id'];
+	if ( ! $content || ! strlen( trim( $content ) ) || ! $user_id || ! $group_id ) {
+		return false;
+	}
+
+	$bp->groups->current_group = groups_get_group( $group_id );
+
+	// Be sure the user is a member of the group before posting.
+	if ( ! bp_current_user_can( 'bp_moderate' ) && ! groups_is_user_member( $user_id, $group_id ) ) {
+		return false;
+	}
+
+	/**
+	 * Filters the content for the new group activity update.
+	 *
+	 * @since 1.2.0
+	 *
+	 * @param string $content The content of the update.
+	 */
+	$content_filtered = apply_filters( 'groups_activity_new_update_content', $content );
+
+	$activity_id = groups_record_activity( array(
+		'user_id'    => $user_id,
+		'content'    => $content_filtered,
+		'type'       => 'activity_update',
+		'item_id'    => $group_id,
+		'error_type' => $r['error_type'],
+	) );
+
+	groups_update_groupmeta( $group_id, 'last_activity', bp_core_current_time() );
+
+	/**
+	 * Fires after posting of an Activity status update affiliated with a group.
+	 *
+	 * @since 1.2.0
+	 *
+	 * @param string $content     The content of the update.
+	 * @param int    $user_id     ID of the user posting the update.
+	 * @param int    $group_id    ID of the group being posted to.
+	 * @param bool   $activity_id Whether or not the activity recording succeeded.
+	 */
+	do_action( 'bp_groups_posted_update', $content, $user_id, $group_id, $activity_id );
+
+	return $activity_id;
+}
+
 /**
  * Function used to determine if a user can comment on a group activity item.
  *
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php
index 94ef62829..56338699a 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-admin.php
@@ -202,7 +202,7 @@ function bp_groups_admin_load() {
 	) );
 	wp_enqueue_style( 'bp_groups_admin_css', $bp->plugin_url . "bp-groups/admin/css/admin{$min}.css", array(), bp_get_version() );
 
-	wp_style_add_data( 'bp_groups_admin_css', 'rtl', true );
+	wp_style_add_data( 'bp_groups_admin_css', 'rtl', 'replace' );
 	if ( $min ) {
 		wp_style_add_data( 'bp_groups_admin_css', 'suffix', $min );
 	}
@@ -891,6 +891,24 @@ function bp_groups_admin_edit_metabox_add_new_members( $item ) {
  * @param BP_Groups_Group $item The BP_Groups_Group object for the current group.
  */
 function bp_groups_admin_edit_metabox_members( $item ) {
+	// Use the BP REST API if it supported.
+	if ( bp_rest_api_is_available() && bp_groups_has_manage_group_members_templates() ) {
+		wp_enqueue_script( 'bp-group-manage-members' );
+		wp_localize_script(
+			'bp-group-manage-members',
+			'bpGroupManageMembersSettings',
+			bp_groups_get_group_manage_members_script_data( $item->id )
+		);
+
+		bp_get_template_part( 'common/js-templates/group-members/index' );
+
+		/**
+		 * Echo out the JavaScript variable.
+		 * This seems to be required by the autocompleter, leaving this here for now...
+		 */
+		echo '<script type="text/javascript">var group_id = "' . esc_js( $item->id ) . '";</script>';
+		return;
+	}
 
 	// Pull up a list of group members, so we can separate out the types
 	// We'll also keep track of group members here to place them into a
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php
index b44ea09f6..7d38f3d90 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-cache.php
@@ -254,6 +254,42 @@ function bp_groups_clear_user_group_cache_on_membership_save( BP_Groups_Member $
 add_action( 'groups_member_before_save', 'bp_groups_clear_user_group_cache_on_membership_save' );
 add_action( 'groups_member_before_remove', 'bp_groups_clear_user_group_cache_on_membership_save' );
 
+/**
+ * Clear caches on saving a group invitation or request.
+ * The save action is called when inserting a new record or using the save() method
+ * to update an existing record.
+ *
+ * @since 5.0.0
+ *
+ * @param BP_Invitation object $invitation Characteristics of the invitation just saved.
+ */
+function bp_groups_clear_user_group_cache_on_invitation_save( BP_Invitation $invitation ) {
+	if ( sanitize_key( 'BP_Groups_Invitation_Manager' ) !== $invitation->class ) {
+		return;
+	}
+
+	wp_cache_delete( $invitation->id, 'bp_groups_invitations_as_memberships' );
+}
+add_action( 'bp_invitation_after_save', 'bp_groups_clear_user_group_cache_on_invitation_save', 10, 2 );
+
+/**
+ * Clear caches on invitation deletion or update.
+ * This also catches changes like sending an invite or marking one as accepted.
+ *
+ * @since 5.0.0
+ *
+ * @param array $args Associative array of columns/values describing invitations about to be deleted.
+ */
+function bp_groups_clear_user_group_cache_on_invitation_change( $args ) {
+	$args['fields' ] = 'ids';
+	$affected_invitation_ids = groups_get_invites( $args );
+	foreach ( $affected_invitation_ids as $invitation_id ) {
+		wp_cache_delete( $invitation_id, 'bp_groups_invitations_as_memberships' );
+	}
+}
+add_action( 'bp_invitation_before_delete', 'bp_groups_clear_user_group_cache_on_invitation_change' );
+add_action( 'bp_invitation_before_update', 'bp_groups_clear_user_group_cache_on_invitation_change' );
+
 /**
  * Clear group memberships cache on miscellaneous actions not covered by the 'after_save' hook.
  *
@@ -269,8 +305,6 @@ function bp_groups_clear_user_group_cache_on_other_events( $user_id, $group_id )
 	wp_cache_delete( $membership->id, 'bp_groups_memberships' );
 }
 add_action( 'bp_groups_member_before_delete', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 );
-add_action( 'bp_groups_member_before_delete_invite', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 );
-add_action( 'groups_accept_invite', 'bp_groups_clear_user_group_cache_on_other_events', 10, 2 );
 
 /**
  * Reset cache incrementor for the Groups component.
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-cssjs.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-cssjs.php
new file mode 100644
index 000000000..61368a56a
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-cssjs.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Groups component CSS/JS
+ *
+ * @package BuddyPress
+ * @subpackage GroupsScripts
+ * @since 5.0.0
+ */
+
+// Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Register Groups JavaScripts.
+ *
+ * @since 5.0.0
+ */
+function bp_groups_register_scripts() {
+    wp_register_script(
+        'bp-group-manage-members',
+        sprintf( '%1$sbp-groups/js/manage-members%2$s.js', buddypress()->plugin_url, bp_core_get_minified_asset_suffix() ),
+        array( 'json2', 'wp-backbone', 'bp-api-request' ),
+        bp_get_version(),
+        true
+    );
+}
+add_action( 'bp_enqueue_scripts',       'bp_groups_register_scripts', 1 );
+add_action( 'bp_admin_enqueue_scripts', 'bp_groups_register_scripts', 1 );
+
+/**
+ * Get JavaScript data for the Manage Group Members UI.
+ *
+ * @since 5.0.0
+ *
+ * @param  integer $group_id Required. The Group ID whose members has to be managed.
+ * @return array   The JavaScript data.
+ */
+function bp_groups_get_group_manage_members_script_data( $group_id = 0 ) {
+	if ( ! $group_id ) {
+		return array();
+	} else {
+		$group_id = (int) $group_id;
+	}
+
+	$path = sprintf( '/%1$s/%2$s/%3$s/%4$s/members?exclude_admins=false',
+		bp_rest_namespace(),
+		bp_rest_version(),
+		buddypress()->groups->id,
+		$group_id
+	);
+
+	$preloaded_members = array();
+	if ( function_exists( 'rest_preload_api_request' ) ) {
+		$preloaded_members = rest_preload_api_request( '', $path );
+	}
+
+	return array(
+		'path'      => remove_query_arg( 'exclude_admins', $path ),
+		'preloaded' => reset( $preloaded_members ),
+		'roles'     => bp_groups_get_group_roles(),
+	);
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php
index 5214c336a..a3bd2e70f 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-filters.php
@@ -310,10 +310,7 @@ function bp_groups_user_can_filter( $retval, $user_id, $capability, $site_id, $a
 			* currently be a member or be banned from the group.
 			*/
 			$group = groups_get_group( $group_id );
-			if ( in_array( bp_get_group_status( $group ), array( 'private', 'hidden' ), true )
-				&& ! groups_is_user_member( $user_id, $group->id )
-				&& ! groups_is_user_banned( $user_id, $group->id )
-			) {
+			if ( ! groups_is_user_member( $user_id, $group->id ) && ! groups_is_user_banned( $user_id, $group->id )	) {
 				$retval = true;
 			}
 			break;
@@ -370,29 +367,34 @@ add_filter( 'bp_user_can', 'bp_groups_user_can_filter', 10, 5 );
  * Registers Groups personal data exporters.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_groups_register_personal_data_exporters( $exporters ) {
 	$exporters['buddypress-groups-memberships'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Group Memberships', 'buddypress' ),
-		'callback'               => 'bp_groups_memberships_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Group Memberships', 'buddypress' ),
+		'callback'                  => 'bp_groups_memberships_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Group Memberships', 'BuddyPress Group Memberships data exporter friendly name', 'buddypress' ),
 	);
 
 	$exporters['buddypress-groups-pending-requests'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Pending Group Membership Requests', 'buddypress' ),
-		'callback'               => 'bp_groups_pending_requests_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Pending Group Membership Requests', 'buddypress' ),
+		'callback'                  => 'bp_groups_pending_requests_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Pending Group Membership Requests', 'BuddyPress Pending Group Membership Requests data exporter friendly name', 'buddypress' ),
 	);
 
 	$exporters['buddypress-groups-pending-received-invitations'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Pending Group Invitations (Received)', 'buddypress' ),
-		'callback'               => 'bp_groups_pending_received_invitations_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Pending Group Invitations (Received)', 'buddypress' ),
+		'callback'                  => 'bp_groups_pending_received_invitations_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Pending Group Invitations (Received)', 'BuddyPress Pending Group Invitations data exporter friendly name', 'buddypress' ),
 	);
 
 	$exporters['buddypress-groups-pending-sent-invitations'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Pending Group Invitations (Sent)', 'buddypress' ),
-		'callback'               => 'bp_groups_pending_sent_invitations_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Pending Group Invitations (Sent)', 'buddypress' ),
+		'callback'                  => 'bp_groups_pending_sent_invitations_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Pending Group Invitations (Sent)', 'BuddyPress Pending Group Invitations data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php
index bda437952..7419f2660 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-functions.php
@@ -239,9 +239,10 @@ function groups_create_group( $args = '' ) {
  * @return bool True on success, false on failure.
  */
 function groups_edit_base_group_details( $args = array() ) {
+	$function_args = func_get_args();
 
 	// Backward compatibility with old method of passing arguments.
-	if ( ! is_array( $args ) || func_num_args() > 1 ) {
+	if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 		_deprecated_argument( __METHOD__, '2.9.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 		$old_args_keys = array(
@@ -251,7 +252,7 @@ function groups_edit_base_group_details( $args = array() ) {
 			3 => 'notify_members',
 		);
 
-		$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+		$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 	}
 
 	$r = bp_parse_args( $args, array(
@@ -689,9 +690,10 @@ function groups_get_group_mods( $group_id ) {
  * @return false|array Multi-d array of 'members' list and 'count'.
  */
 function groups_get_group_members( $args = array() ) {
+	$function_args = func_get_args();
 
 	// Backward compatibility with old method of passing arguments.
-	if ( ! is_array( $args ) || func_num_args() > 1 ) {
+	if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 		_deprecated_argument( __METHOD__, '2.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 		$old_args_keys = array(
@@ -704,7 +706,7 @@ function groups_get_group_members( $args = array() ) {
 			6 => 'group_role',
 		);
 
-		$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+		$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 	}
 
 	$r = bp_parse_args( $args, array(
@@ -720,7 +722,7 @@ function groups_get_group_members( $args = array() ) {
 	), 'groups_get_group_members' );
 
 	// For legacy users. Use of BP_Groups_Member::get_all_for_group() is deprecated.
-	if ( apply_filters( 'bp_use_legacy_group_member_query', false, __FUNCTION__, func_get_args() ) ) {
+	if ( apply_filters( 'bp_use_legacy_group_member_query', false, __FUNCTION__, $function_args ) ) {
 		$retval = BP_Groups_Member::get_all_for_group( $r['group_id'], $r['per_page'], $r['page'], $r['exclude_admins_mods'], $r['exclude_banned'], $r['exclude'] );
 	} else {
 
@@ -949,6 +951,7 @@ function bp_get_user_groups( $user_id, $args = array() ) {
 
 	$user_id = intval( $user_id );
 
+	// Standard memberships
 	$membership_ids = wp_cache_get( $user_id, 'bp_groups_memberships_for_user' );
 	if ( false === $membership_ids ) {
 		$membership_ids = BP_Groups_Member::get_membership_ids_for_user( $user_id );
@@ -965,6 +968,44 @@ function bp_get_user_groups( $user_id, $args = array() ) {
 		}
 	}
 
+	// Prime the invitations- and requests-as-memberships cache
+	$invitation_ids = array();
+	if ( true !== $r['is_confirmed'] || false !== $r['invite_sent'] ) {
+		$invitation_ids = groups_get_invites( array(
+			'user_id'     => $user_id,
+			'invite_sent' => 'all',
+			'type'        => 'all',
+			'fields'      => 'ids'
+		) );
+
+		// Prime the invitations cache.
+		$uncached_invitation_ids = bp_get_non_cached_ids( $invitation_ids, 'bp_groups_invitations_as_memberships' );
+		if ( $uncached_invitation_ids ) {
+			$uncached_invitations = groups_get_invites( array(
+				'id'          => $uncached_invitation_ids,
+				'invite_sent' => 'all',
+				'type'        => 'all'
+			) );
+			foreach ( $uncached_invitations as $uncached_invitation ) {
+				// Reshape the result as a membership db entry.
+				$invitation = new StdClass;
+				$invitation->id            = $uncached_invitation->id;
+				$invitation->group_id      = $uncached_invitation->item_id;
+				$invitation->user_id       = $uncached_invitation->user_id;
+				$invitation->inviter_id    = $uncached_invitation->inviter_id;
+				$invitation->is_admin      = false;
+				$invitation->is_mod        = false;
+				$invitation->user_title    = '';
+				$invitation->date_modified = $uncached_invitation->date_modified;
+				$invitation->comments      = $uncached_invitation->content;
+				$invitation->is_confirmed  = false;
+				$invitation->is_banned     = false;
+				$invitation->invite_sent   = $uncached_invitation->invite_sent;
+				wp_cache_set( $uncached_invitation->id, $invitation, 'bp_groups_invitations_as_memberships' );
+			}
+		}
+	}
+
 	// Assemble filter array for use in `wp_list_filter()`.
 	$filters = wp_array_slice_assoc( $r, array( 'is_confirmed', 'is_banned', 'is_admin', 'is_mod', 'invite_sent' ) );
 	foreach ( $filters as $filter_name => $filter_value ) {
@@ -1006,6 +1047,36 @@ function bp_get_user_groups( $user_id, $args = array() ) {
 		$groups[ $group_id ] = $membership;
 	}
 
+	// Populate group invitations array from cache, and normalize.
+	foreach ( $invitation_ids as $invitation_id ) {
+		$invitation = wp_cache_get( $invitation_id, 'bp_groups_invitations_as_memberships' );
+
+		// Sanity check.
+		if ( ! isset( $invitation->group_id ) ) {
+			continue;
+		}
+
+		// Integer values.
+		foreach ( $int_keys as $index ) {
+			$invitation->{$index} = intval( $invitation->{$index} );
+		}
+
+		// Boolean values.
+		foreach ( $bool_keys as $index ) {
+			$invitation->{$index} = (bool) $invitation->{$index};
+		}
+
+		foreach ( $filters as $filter_name => $filter_value ) {
+			if ( ! isset( $invitation->{$filter_name} ) || $filter_value != $invitation->{$filter_name} ) {
+				continue 2;
+			}
+		}
+
+		$group_id = (int) $invitation->group_id;
+
+		$groups[ $group_id ] = $invitation;
+	}
+
 	// By default, results are ordered by membership id.
 	if ( 'group_id' === $r['orderby'] ) {
 		ksort( $groups );
@@ -1111,6 +1182,50 @@ function groups_avatar_upload_dir( $group_id = 0 ) {
 
 /** Group Member Status Checks ************************************************/
 
+/**
+ * Get the Group roles.
+ *
+ * @since 5.0.0
+ *
+ * @return array The list of Group role objects.
+ */
+function bp_groups_get_group_roles() {
+	return array(
+		'admin' => (object) array(
+			'id'           => 'admin',
+			'name'         => __( 'Administrator', 'buddypress' ),
+			'is_admin'     => true,
+			'is_banned'    => false,
+			'is_confirmed' => true,
+			'is_mod'       => false,
+		),
+		'mod' => (object) array(
+			'id'           => 'mod',
+			'name'         => __( 'Moderator', 'buddypress' ),
+			'is_admin'     => false,
+			'is_banned'    => false,
+			'is_confirmed' => true,
+			'is_mod'       => true,
+		),
+		'member' => (object) array(
+			'id'           => 'member',
+			'name'         => __( 'Member', 'buddypress' ),
+			'is_admin'     => false,
+			'is_banned'    => false,
+			'is_confirmed' => true,
+			'is_mod'       => false,
+		),
+		'banned' => (object) array(
+			'id'           => 'banned',
+			'name'         => __( 'Banned', 'buddypress' ),
+			'is_admin'     => false,
+			'is_banned'    => true,
+			'is_confirmed' => true,
+			'is_mod'       => false,
+		),
+	);
+}
+
 /**
  * Check whether a user is an admin of a given group.
  *
@@ -1209,24 +1324,17 @@ function groups_is_user_banned( $user_id, $group_id ) {
  * Check whether a user has an outstanding invitation to a group.
  *
  * @since 2.6.0
+ * @since 5.0.0 Added $type parameter.
  *
- * @param int $user_id ID of the user.
- * @param int $group_id ID of the group.
+ * @param int    $user_id  ID of the user.
+ * @param int    $group_id ID of the group.
+ * @param string $type     If 'sent', results are limited to those invitations
+ *                         that have actually been sent (non-draft).
+ *                         Possible values: 'sent', 'draft', or 'all' Default: 'sent'.
  * @return int|bool ID of the membership if the user is invited, otherwise false.
  */
-function groups_is_user_invited( $user_id, $group_id ) {
-	$is_invited = false;
-
-	$user_groups = bp_get_user_groups( $user_id, array(
-		'invite_sent' => true,
-		'is_confirmed' => false,
-	) );
-
-	if ( isset( $user_groups[ $group_id ] ) ) {
-		$is_invited = $user_groups[ $group_id ]->id;
-	}
-
-	return $is_invited;
+function groups_is_user_invited( $user_id, $group_id, $type = 'sent' ) {
+	return groups_check_has_invite_from_user( $user_id, $group_id, false, $type );
 }
 
 /**
@@ -1239,18 +1347,17 @@ function groups_is_user_invited( $user_id, $group_id ) {
  * @return int|bool ID of the membership if the user is pending, otherwise false.
  */
 function groups_is_user_pending( $user_id, $group_id ) {
-	$is_pending = false;
-
-	$user_groups = bp_get_user_groups( $user_id, array(
-		'invite_sent' => false,
-		'is_confirmed' => false,
-	) );
-
-	if ( isset( $user_groups[ $group_id ] ) ) {
-		$is_pending = $user_groups[ $group_id ]->id;
+	if ( empty( $user_id ) || empty( $group_id ) ) {
+		return false;
 	}
 
-	return $is_pending;
+	$args = array(
+		'user_id'     => $user_id,
+		'item_id'     => $group_id,
+	);
+	$invites_class = new BP_Groups_Invitation_Manager();
+
+	return $invites_class->request_exists( $args );
 }
 
 /**
@@ -1266,136 +1373,89 @@ function groups_is_user_creator( $user_id, $group_id ) {
 	return BP_Groups_Member::check_is_creator( $user_id, $group_id );
 }
 
-/** Group Activity Posting ****************************************************/
+/** Group Invitations *********************************************************/
 
 /**
- * Post an Activity status update affiliated with a group.
+ * Get group objects for groups that a user is currently invited to.
  *
- * @since 1.2.0
- * @since 2.6.0 Added 'error_type' parameter to $args.
+ * @since 1.0.0
  *
- * @param array|string $args {
- *     Array of arguments.
- *     @type string $content  The content of the update.
- *     @type int    $user_id  Optional. ID of the user posting the update. Default:
- *                            ID of the logged-in user.
- *     @type int    $group_id Optional. ID of the group to be affiliated with the
- *                            update. Default: ID of the current group.
+ * @param int               $user_id ID of the invited user.
+ * @param int|bool          $limit   Limit to restrict to.
+ * @param int|bool          $page    Optional. Page offset of results to return.
+ * @param string|array|bool $exclude Array of comma-separated list of group IDs
+ *                                   to exclude from results.
+ * @return array {
+ *     @type array $groups Array of groups returned by paginated query.
+ *     @type int   $total  Count of groups matching query.
  * }
- * @return WP_Error|bool|int Returns the ID of the new activity item on success, or false on failure.
  */
-function groups_post_update( $args = '' ) {
-	if ( ! bp_is_active( 'activity' ) ) {
-		return false;
+function groups_get_invites_for_user( $user_id = 0, $limit = false, $page = false, $exclude = false ) {
+	if ( empty( $user_id ) ) {
+		$user_id = bp_loggedin_user_id();
 	}
 
-	$bp = buddypress();
-
-	$r = bp_parse_args( $args, array(
-		'content'    => false,
-		'user_id'    => bp_loggedin_user_id(),
-		'group_id'   => 0,
-		'error_type' => 'bool'
-	), 'groups_post_update' );
-	extract( $r, EXTR_SKIP );
-
-	if ( empty( $group_id ) && !empty( $bp->groups->current_group->id ) )
-		$group_id = $bp->groups->current_group->id;
-
-	if ( empty( $content ) || !strlen( trim( $content ) ) || empty( $user_id ) || empty( $group_id ) )
-		return false;
-
-	$bp->groups->current_group = groups_get_group( $group_id );
-
-	// Be sure the user is a member of the group before posting.
-	if ( !bp_current_user_can( 'bp_moderate' ) && !groups_is_user_member( $user_id, $group_id ) )
-		return false;
-
-	// Record this in activity streams.
-	$activity_action  = sprintf( esc_html__( '%1$s posted an update in the group %2$s', 'buddypress'), bp_core_get_userlink( $user_id ), '<a href="' . esc_url( bp_get_group_permalink( $bp->groups->current_group ) ) . '">' . esc_html( $bp->groups->current_group->name ) . '</a>' );
-	$activity_content = $content;
-
-	/**
-	 * Filters the action for the new group activity update.
-	 *
-	 * @since 1.2.0
-	 *
-	 * @param string $activity_action The new group activity update.
-	 */
-	$action = apply_filters( 'groups_activity_new_update_action',  $activity_action  );
-
-	/**
-	 * Filters the content for the new group activity update.
-	 *
-	 * @since 1.2.0
-	 *
-	 * @param string $activity_content The content of the update.
-	 */
-	$content_filtered = apply_filters( 'groups_activity_new_update_content', $activity_content );
+	$group_ids = groups_get_invited_to_group_ids( $user_id );
 
-	$activity_id = groups_record_activity( array(
-		'user_id'    => $user_id,
-		'action'     => $action,
-		'content'    => $content_filtered,
-		'type'       => 'activity_update',
-		'item_id'    => $group_id,
-		'error_type' => $error_type
-	) );
+	// Remove excluded groups.
+	if ( $exclude ) {
+		$group_ids = array_diff( $group_ids, wp_parse_id_list( $exclude ) );
+	}
 
-	groups_update_groupmeta( $group_id, 'last_activity', bp_core_current_time() );
+	// Avoid passing an empty array.
+	if ( ! $group_ids ) {
+		$group_ids = array( 0 );
+	}
 
-	/**
-	 * Fires after posting of an Activity status update affiliated with a group.
-	 *
-	 * @since 1.2.0
-	 *
-	 * @param string $content     The content of the update.
-	 * @param int    $user_id     ID of the user posting the update.
-	 * @param int    $group_id    ID of the group being posted to.
-	 * @param bool   $activity_id Whether or not the activity recording succeeded.
-	 */
-	do_action( 'bp_groups_posted_update', $content, $user_id, $group_id, $activity_id );
+	// Get a filtered list of groups.
+	$args = array(
+		'include'     => $group_ids,
+		'show_hidden' => true,
+		'per_page'    => $limit,
+		'page'        => $page,
+	);
+	$groups = groups_get_groups( $args );
 
-	return $activity_id;
+	return array( 'groups' => $groups['groups'], 'total' => groups_get_invite_count_for_user( $user_id ) );
 }
 
-/** Group Invitations *********************************************************/
-
 /**
- * Get IDs of users with outstanding invites to a given group from a specified user.
+ * Get the total group invite count for a user.
  *
- * @since 1.0.0
+ * @since 2.0.0
  *
- * @param int               $user_id ID of the inviting user.
- * @param int|bool          $limit   Limit to restrict to.
- * @param int|bool          $page    Optional. Page offset of results to return.
- * @param string|array|bool $exclude Array of comma-separated list of group IDs
- *                                   to exclude from results.
- * @return array $value IDs of users who have been invited to the group by the
- *                      user but have not yet accepted.
+ * @param int $user_id The user ID.
+ * @return int
  */
-function groups_get_invites_for_user( $user_id = 0, $limit = false, $page = false, $exclude = false ) {
-
-	if ( empty( $user_id ) )
+function groups_get_invite_count_for_user( $user_id = 0 ) {
+	if ( empty( $user_id ) ) {
 		$user_id = bp_loggedin_user_id();
+	}
 
-	return BP_Groups_Member::get_invites( $user_id, $limit, $page, $exclude );
+	return count( groups_get_invited_to_group_ids( $user_id ) );
 }
 
 /**
- * Get the total group invite count for a user.
+ * Get an array of group IDs to which a user is invited.
  *
- * @since 2.0.0
+ * @since 5.0.0
  *
  * @param int $user_id The user ID.
- * @return int
+ *
+ * @return array Array of group IDs.
  */
-function groups_get_invite_count_for_user( $user_id = 0 ) {
+ function groups_get_invited_to_group_ids( $user_id = 0 ) {
 	if ( empty( $user_id ) ) {
 		$user_id = bp_loggedin_user_id();
 	}
 
-	return BP_Groups_Member::get_invite_count_for_user( $user_id );
+	$group_ids = groups_get_invites( array(
+		'user_id'     => $user_id,
+		'invite_sent' => 'sent',
+		'fields'      => 'item_ids'
+	) );
+
+	return array_unique( $group_ids );
 }
 
 /**
@@ -1411,82 +1471,86 @@ function groups_get_invite_count_for_user( $user_id = 0 ) {
  *                                 ID of the logged-in user.
  *     @type string $date_modified Optional. Modified date for the invitation.
  *                                 Default: current date/time.
- *     @type bool   $is_confirmed  Optional. Whether the invitation should be
- *                                 marked confirmed. Default: false.
+ *     @type string $content       Optional. Message to invitee.
+ *     @type bool   $send_invite   Optional. Whether the invitation should be
+ *                                 sent now. Default: false.
  * }
  * @return bool True on success, false on failure.
  */
 function groups_invite_user( $args = '' ) {
 
-	$args = bp_parse_args( $args, array(
+	$r = bp_parse_args( $args, array(
 		'user_id'       => false,
 		'group_id'      => false,
 		'inviter_id'    => bp_loggedin_user_id(),
 		'date_modified' => bp_core_current_time(),
-		'is_confirmed'  => 0
+		'content'       => '',
+		'send_invite'   => 0
 	), 'groups_invite_user' );
-	extract( $args, EXTR_SKIP );
 
-	if ( ! $user_id || ! $group_id || ! $inviter_id ) {
-		return false;
-	}
-
-	// If the user has already requested membership, accept the request.
-	if ( $membership_id = groups_check_for_membership_request( $user_id, $group_id ) ) {
-		groups_accept_membership_request( $membership_id, $user_id, $group_id );
-
-	// Otherwise, create a new invitation.
-	} elseif ( ! groups_is_user_member( $user_id, $group_id ) && ! groups_check_user_has_invite( $user_id, $group_id, 'all' ) ) {
-		$invite                = new BP_Groups_Member;
-		$invite->group_id      = $group_id;
-		$invite->user_id       = $user_id;
-		$invite->date_modified = $date_modified;
-		$invite->inviter_id    = $inviter_id;
-		$invite->is_confirmed  = $is_confirmed;
+	$inv_args = array(
+		'user_id'       => $r['user_id'],
+		'item_id'       => $r['group_id'],
+		'inviter_id'    => $r['inviter_id'],
+		'date_modified' => $r['date_modified'],
+		'content'       => $r['content'],
+		'send_invite'   => $r['send_invite']
+	);
 
-		if ( !$invite->save() )
-			return false;
+	// Create the unsent invitataion.
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$created       = $invites_class->add_invitation( $inv_args );
 
-		/**
-		 * Fires after the creation of a new group invite.
-		 *
-		 * @since 1.0.0
-		 *
-		 * @param array $args Array of parsed arguments for the group invite.
-		 */
-		do_action( 'groups_invite_user', $args );
-	}
+	/**
+	 * Fires after the creation of a new group invite.
+	 *
+	 * @since 1.0.0
+	 *
+	 * @param array    $r       Array of parsed arguments for the group invite.
+	 * @param int|bool $created The ID of the invitation or false if it couldn't be created.
+	 */
+	do_action( 'groups_invite_user', $r, $created );
 
-	return true;
+	return $created;
 }
 
 /**
  * Uninvite a user from a group.
  *
- * Functionally, this is equivalent to removing a user from a group.
- *
  * @since 1.0.0
  *
  * @param int $user_id  ID of the user.
  * @param int $group_id ID of the group.
+ * @param int $inviter_id ID of the inviter.
  * @return bool True on success, false on failure.
  */
-function groups_uninvite_user( $user_id, $group_id ) {
-
-	if ( ! BP_Groups_Member::delete_invite( $user_id, $group_id ) )
+function groups_uninvite_user( $user_id, $group_id, $inviter_id = false ) {
+	if ( empty( $user_id ) || empty( $group_id ) ) {
 		return false;
+	}
 
-	/**
-	 * Fires after uninviting a user from a group.
-	 *
-	 * @since 1.0.0
-	 *
-	 * @param int $group_id ID of the group being uninvited from.
-	 * @param int $user_id  ID of the user being uninvited.
-	 */
-	do_action( 'groups_uninvite_user', $group_id, $user_id );
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$success       = $invites_class->delete( array(
+		'user_id'    => $user_id,
+		'item_id'    => $group_id,
+		'inviter_id' => $inviter_id,
+	) );
 
-	return true;
+	if ( $success ) {
+		/**
+		 * Fires after uninviting a user from a group.
+		 *
+		 * @since 1.0.0
+		 * @since 2.7.0 Added $inviter_id parameter
+		 *
+		 * @param int $group_id    ID of the group being uninvited from.
+		 * @param int $user_id     ID of the user being uninvited.
+		 * @param int $inviter_id  ID of the inviter.
+		 */
+		do_action( 'groups_uninvite_user', $group_id, $user_id, $inviter_id );
+	}
+
+	return $success;
 }
 
 /**
@@ -1501,137 +1565,154 @@ function groups_uninvite_user( $user_id, $group_id ) {
  * @return bool True when the user is a member of the group, otherwise false.
  */
 function groups_accept_invite( $user_id, $group_id ) {
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$args = array(
+		'user_id'     => $user_id,
+		'item_id'     => $group_id,
+		'invite_sent' => 'sent',
+	);
 
-	// If the user is already a member (because BP at one point allowed two invitations to
-	// slip through), delete all existing invitations/requests and return true.
-	if ( groups_is_user_member( $user_id, $group_id ) ) {
-		if ( groups_check_user_has_invite( $user_id, $group_id ) ) {
-			groups_delete_invite( $user_id, $group_id );
-		}
-
-		if ( groups_check_for_membership_request( $user_id, $group_id ) ) {
-			groups_delete_membership_request( null, $user_id, $group_id );
-		}
-
-		return true;
-	}
-
-	$member = new BP_Groups_Member( $user_id, $group_id );
-
-	// Save the inviter ID so that we can pass it to the action below.
-	$inviter_id = $member->inviter_id;
-
-	$member->accept_invite();
-
-	if ( !$member->save() ) {
-		return false;
-	}
-
-	// Remove request to join.
-	if ( $member->check_for_membership_request( $user_id, $group_id ) ) {
-		$member->delete_request( $user_id, $group_id );
-	}
-
-	// Modify group meta.
-	groups_update_groupmeta( $group_id, 'last_activity', bp_core_current_time() );
-
-	/**
-	 * Fires after a user has accepted a group invite.
-	 *
-	 * @since 1.0.0
-	 * @since 2.8.0 The $inviter_id arg was added.
-	 *
-	 * @param int $user_id    ID of the user who accepted the group invite.
-	 * @param int $group_id   ID of the group being accepted to.
-	 * @param int $inviter_id ID of the user who invited this user to the group.
-	 */
-	do_action( 'groups_accept_invite', $user_id, $group_id, $inviter_id );
-
-	return true;
+	return $invites_class->accept_invitation( $args );
 }
 
 /**
  * Reject a group invitation.
  *
  * @since 1.0.0
+ * @since 5.0.0 The $inviter_id arg was added.
+ *
+ * @param int $user_id    ID of the user.
+ * @param int $group_id   ID of the group.
+ * @param int $inviter_id ID of the inviter.
  *
- * @param int $user_id  ID of the user.
- * @param int $group_id ID of the group.
  * @return bool True on success, false on failure.
  */
-function groups_reject_invite( $user_id, $group_id ) {
-	if ( ! BP_Groups_Member::delete_invite( $user_id, $group_id ) )
+function groups_reject_invite( $user_id, $group_id, $inviter_id = false ) {
+	if ( empty( $user_id ) || empty( $group_id ) ) {
 		return false;
+	}
+
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$success       = $invites_class->delete( array(
+		'user_id'    => $user_id,
+		'item_id'    => $group_id,
+		'inviter_id' => $inviter_id,
+	) );
 
 	/**
 	 * Fires after a user rejects a group invitation.
 	 *
 	 * @since 1.0.0
+	 * @since 5.0.0 The $inviter_id arg was added.
 	 *
-	 * @param int $user_id  ID of the user rejecting the invite.
-	 * @param int $group_id ID of the group being rejected.
+	 * @param int $user_id    ID of the user rejecting the invite.
+	 * @param int $group_id   ID of the group being rejected.
+	 * @param int $inviter_id ID of the inviter.
 	 */
-	do_action( 'groups_reject_invite', $user_id, $group_id );
+	do_action( 'groups_reject_invite', $user_id, $group_id, $inviter_id );
 
-	return true;
+	return $success;
 }
 
 /**
  * Delete a group invitation.
  *
  * @since 1.0.0
+ * @since 5.0.0 The $inviter_id arg was added.
  *
  * @param int $user_id  ID of the invited user.
  * @param int $group_id ID of the group.
+ * @param int $inviter_id ID of the inviter.
+ *
  * @return bool True on success, false on failure.
  */
-function groups_delete_invite( $user_id, $group_id ) {
-	if ( ! BP_Groups_Member::delete_invite( $user_id, $group_id ) )
+function groups_delete_invite( $user_id, $group_id, $inviter_id = false ) {
+	if ( empty( $user_id ) || empty( $group_id ) ) {
 		return false;
+	}
+
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$success       = $invites_class->delete( array(
+		'user_id'    => $user_id,
+		'item_id'    => $group_id,
+		'inviter_id' => $inviter_id,
+	) );
 
 	/**
 	 * Fires after the deletion of a group invitation.
 	 *
 	 * @since 1.9.0
+	 * @since 5.0.0 The $inviter_id arg was added.
 	 *
 	 * @param int $user_id  ID of the user whose invitation is being deleted.
 	 * @param int $group_id ID of the group whose invitation is being deleted.
+	 * @param int $inviter_id ID of the inviter.
 	 */
-	do_action( 'groups_delete_invite', $user_id, $group_id );
+	do_action( 'groups_delete_invite', $user_id, $group_id, $inviter_id );
 
 	return true;
 }
 
 /**
- * Send all pending invites by a single user to a specific group.
+ * Send some or all pending invites by a single user to a specific group.
  *
  * @since 1.0.0
+ * @since 5.0.0 Parameters changed to associative array.
  *
- * @param int $user_id  ID of the inviting user.
- * @param int $group_id ID of the group.
+ * @param array $args {
+ *     An array of optional arguments.
+ *     @type int    $user_id       ID of the invited user.
+ *     @type string $invitee_email Email address of the invited user, if not a member of the site.
+ *     @type string $group_id      ID of the group or an array of group IDs.
+ *     @type string $inviter_id    ID of the user extending the invitation.
+ *     @type bool   $force_resend  Whether to resend the email & notification if one has already been sent.
+ * }
  */
-function groups_send_invites( $user_id, $group_id ) {
+function groups_send_invites( $args = array() ) {
+	// Backward compatibility with old method of passing arguments.
+	if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		_deprecated_argument( __METHOD__, '5.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
-	if ( empty( $user_id ) )
-		$user_id = bp_loggedin_user_id();
+		$old_args_keys = array(
+			0 => 'inviter_id',
+			1 => 'group_id',
+		);
 
-	// Send friend invites.
-	$invited_users = groups_get_invites_for_group( $user_id, $group_id );
-	$group = groups_get_group( $group_id );
+		$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+	}
+
+	$r = bp_parse_args( $args, array(
+		'user_id'       => false,
+		'invitee_email' => '',
+		'group_id'      => 0,
+		'inviter_id'    => bp_loggedin_user_id(),
+		'force_resend'  => false,
+	), 'groups_send_invitation' );
 
-	for ( $i = 0, $count = count( $invited_users ); $i < $count; ++$i ) {
-		$member = new BP_Groups_Member( $invited_users[$i], $group_id );
+	/*
+	 * We will generally only want to fetch unsent invitations.
+	 * If force_resend is true, then we need to fetch both sent and draft invites.
+	 */
+	if ( $r['force_resend'] ) {
+		$args['invite_sent'] = 'all';
+	} else {
+		$args['invite_sent'] = 'draft';
+	}
 
-		// Skip if we've already sent an invite to this user.
-		if ( $member->invite_sent ) {
-			continue;
-		}
+	$args = array(
+		'user_id'       => $r['user_id'],
+		'invitee_email' => $r['invitee_email'],
+		'item_id'       => $r['group_id'],
+		'inviter_id'    => $r['inviter_id'],
+	);
+	$invites = groups_get_invites( $args );
 
-		// Send the actual invite.
-		groups_notification_group_invites( $group, $member, $user_id );
+	$invited_users = array();
 
-		$member->invite_sent = 1;
-		$member->save();
+	$invites_class = new BP_Groups_Invitation_Manager();
+	foreach ( $invites as $invite ) {
+		$invited_users[] = $invite->user_id;
+		$invites_class->send_invitation_by_id( $invite->id );
 	}
 
 	/**
@@ -1644,11 +1725,11 @@ function groups_send_invites( $user_id, $group_id ) {
 	 * @param array $invited_users Array of users being invited to the group.
 	 * @param int   $user_id       ID of the inviting user.
 	 */
-	do_action( 'groups_send_invites', $group_id, $invited_users, $user_id );
+	do_action( 'groups_send_invites', $r['group_id'], $invited_users, $r['inviter_id'] );
 }
 
 /**
- * Get IDs of users with outstanding invites to a given group from a specified user.
+ * Get IDs of users with outstanding invites to a given group.
  *
  * @since 1.0.0
  * @since 2.9.0 Added $sent as a parameter.
@@ -1666,6 +1747,22 @@ function groups_get_invites_for_group( $user_id, $group_id, $sent = null ) {
 	return BP_Groups_Group::get_invites( $user_id, $group_id, $sent );
 }
 
+/**
+ * Get invitations to a given group filtered by arguments.
+ *
+ * @since 5.0.0
+ *
+ * @param int   $group_id ID of the group.
+ * @param array $args     Invitation arguments.
+ *                        See BP_Invitation::get() for list.
+ *
+ * @return array $invites     Matching BP_Invitation objects.
+ */
+function groups_get_invites( $args = array() ) {
+	$invites_class = new BP_Groups_Invitation_Manager();
+	return $invites_class->get_invitations( $args );
+}
+
 /**
  * Check to see whether a user has already been invited to a group.
  *
@@ -1679,29 +1776,49 @@ function groups_get_invites_for_group( $user_id, $group_id, $sent = null ) {
  * @param int    $group_id ID of potential group.
  * @param string $type     Optional. Use 'sent' to check for sent invites,
  *                         'all' to check for all. Default: 'sent'.
- * @return int|bool ID of the membership if found, otherwise false.
+ * @return int|bool ID of the first found membership if found, otherwise false.
  */
 function groups_check_user_has_invite( $user_id, $group_id, $type = 'sent' ) {
-	$invite = false;
+	return groups_check_has_invite_from_user( $user_id, $group_id, false, $type );
+}
+
+/**
+ * Check to see whether a user has already been invited to a group by a particular user.
+ *
+ * By default, the function checks for invitations that have been sent.
+ * Entering 'all' as the $type parameter will return unsent invitations as
+ * well (useful to make sure AJAX requests are not duplicated).
+ *
+ * @since 5.0.0
+ *
+ * @param int    $user_id    ID of potential group member.
+ * @param int    $group_id   ID of potential group.
+ * @param string $inviter_id Optional. Use 'sent' to check for sent invites,
+ *                           'all' to check for all. Default: 'sent'.
+ * @param string $type       Optional. Specify a user ID to limit to only invited from that user.
+ *                           Default: 'false'.
+ * @return int|bool ID of the first found membership if found, otherwise false.
+ */
+ function groups_check_has_invite_from_user( $user_id, $group_id, $inviter_id = false, $type = 'sent' ) {
+	if ( empty( $user_id ) || empty( $group_id ) ) {
+		return false;
+	}
 
 	$args = array(
-		'is_confirmed' => false,
-		'is_banned'    => null,
-		'is_admin'     => null,
-		'is_mod'       => null,
+		'user_id'     => $user_id,
+		'item_id'     => $group_id,
+		'invite_sent' => 'sent',
 	);
-
-	if ( 'sent' === $type ) {
-		$args['invite_sent'] = true;
+	if ( $inviter_id ) {
+		$args['inviter_id'] = $inviter_id;
 	}
-
-	$user_groups = bp_get_user_groups( $user_id, $args );
-
-	if ( isset( $user_groups[ $group_id ] ) && 0 !== $user_groups[ $group_id ]->inviter_id ) {
-		$invite = $user_groups[ $group_id ]->id;
+	if ( $type === 'draft' || $type === 'all' ) {
+		$args['invite_sent'] = $type;
 	}
 
-	return $invite;
+	$invites_class = new BP_Groups_Invitation_Manager();
+
+	return $invites_class->invitation_exists( $args );
 }
 
 /**
@@ -1878,42 +1995,50 @@ function groups_remove_member( $user_id, $group_id ) {
  *
  * @since 1.0.0
  *
- * @param int $requesting_user_id ID of the user requesting membership.
- * @param int $group_id           ID of the group.
+ * @param array|string $args {
+ *     Array of arguments.
+ *     @type int    $user_id       ID of the user being invited.
+ *     @type int    $group_id      ID of the group to which the user is being invited.
+ *     @type string $content       Optional. Message to invitee.
+ *     @type string $date_modified Optional. Modified date for the invitation.
+ *                                 Default: current date/time.
+ * }
  * @return bool True on success, false on failure.
  */
-function groups_send_membership_request( $requesting_user_id, $group_id ) {
-
-	// Prevent duplicate requests.
-	if ( groups_check_for_membership_request( $requesting_user_id, $group_id ) )
-		return false;
+function groups_send_membership_request( $args = array() ) {
+	// Backward compatibility with old method of passing arguments.
+	if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		_deprecated_argument( __METHOD__, '5.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
-	// Check if the user is already a member or is banned.
-	if ( groups_is_user_member( $requesting_user_id, $group_id ) || groups_is_user_banned( $requesting_user_id, $group_id ) )
-		return false;
+		$old_args_keys = array(
+			0 => 'user_id',
+			1 => 'group_id',
+		);
 
-	// Check if the user is already invited - if so, simply accept invite.
-	if ( groups_check_user_has_invite( $requesting_user_id, $group_id ) ) {
-		groups_accept_invite( $requesting_user_id, $group_id );
-		return true;
+		$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
 	}
 
-	$requesting_user                = new BP_Groups_Member;
-	$requesting_user->group_id      = $group_id;
-	$requesting_user->user_id       = $requesting_user_id;
-	$requesting_user->inviter_id    = 0;
-	$requesting_user->is_admin      = 0;
-	$requesting_user->user_title    = '';
-	$requesting_user->date_modified = bp_core_current_time();
-	$requesting_user->is_confirmed  = 0;
-	$requesting_user->comments      = isset( $_POST['group-request-membership-comments'] ) ? $_POST['group-request-membership-comments'] : '';
+	$r = bp_parse_args( $args, array(
+		'user_id'       => false,
+		'group_id'      => false,
+		'content'       => '',
+		'date_modified' => bp_core_current_time(),
+	), 'groups_send_membership_request' );
+
+	$inv_args = array(
+		'user_id'       => $r['user_id'],
+		'item_id'       => $r['group_id'],
+		'content'       => $r['content'],
+		'date_modified' => $r['date_modified'],
+	);
 
-	if ( $requesting_user->save() ) {
-		$admins = groups_get_group_admins( $group_id );
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$request_id = $invites_class->add_request( $inv_args );
 
-		// Saved okay, now send the email notification.
-		for ( $i = 0, $count = count( $admins ); $i < $count; ++$i )
-			groups_notification_new_membership_request( $requesting_user_id, $admins[$i]->user_id, $group_id, $requesting_user->id );
+	// If a new request was created, send the emails.
+	if ( $request_id && is_int( $request_id ) ) {
+		$invites_class->send_request_notification_by_id( $request_id );
+		$admins = groups_get_group_admins( $r['group_id'] );
 
 		/**
 		 * Fires after the creation of a new membership request.
@@ -1923,11 +2048,11 @@ function groups_send_membership_request( $requesting_user_id, $group_id ) {
 		 * @param int   $requesting_user_id  ID of the user requesting membership.
 		 * @param array $admins              Array of group admins.
 		 * @param int   $group_id            ID of the group being requested to.
-		 * @param int   $requesting_user->id ID of the membership.
+		 * @param int   $request_id          ID of the request.
 		 */
-		do_action( 'groups_membership_requested', $requesting_user_id, $admins, $group_id, $requesting_user->id );
+		do_action( 'groups_membership_requested', $r['user_id'], $admins, $r['group_id'], $request_id );
 
-		return true;
+		return $request_id;
 	}
 
 	return false;
@@ -1937,47 +2062,34 @@ function groups_send_membership_request( $requesting_user_id, $group_id ) {
  * Accept a pending group membership request.
  *
  * @since 1.0.0
+ * @since 5.0.0 Deprecated $membership_id argument.
  *
- * @param int $membership_id ID of the membership object.
- * @param int $user_id       Optional. ID of the user who requested membership.
+ * @param int $membership_id Deprecated 5.0.0.
+ * @param int $user_id       Required. ID of the user who requested membership.
  *                           Provide this value along with $group_id to override
  *                           $membership_id.
- * @param int $group_id      Optional. ID of the group to which membership is being
+ * @param int $group_id      Required. ID of the group to which membership is being
  *                           requested. Provide this value along with $user_id to
  *                           override $membership_id.
  * @return bool True on success, false on failure.
  */
 function groups_accept_membership_request( $membership_id, $user_id = 0, $group_id = 0 ) {
 
-	if ( !empty( $user_id ) && !empty( $group_id ) ) {
-		$membership = new BP_Groups_Member( $user_id, $group_id );
-	} else {
-		$membership = new BP_Groups_Member( false, false, $membership_id );
+	if ( ! empty( $membership_id ) ) {
+		_deprecated_argument( __METHOD__, '5.0.0', sprintf( __( 'Argument `membership_id` passed to %1$s  is deprecated. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 	}
 
-	$membership->accept_request();
-
-	if ( !$membership->save() ) {
+	if ( ! $user_id || ! $group_id ) {
 		return false;
 	}
 
-	// Check if the user has an outstanding invite, if so delete it.
-	if ( groups_check_user_has_invite( $membership->user_id, $membership->group_id ) ) {
-		groups_delete_invite( $membership->user_id, $membership->group_id );
-	}
-
-	/**
-	 * Fires after a group membership request has been accepted.
-	 *
-	 * @since 1.0.0
-	 *
-	 * @param int  $user_id  ID of the user who accepted membership.
-	 * @param int  $group_id ID of the group that was accepted membership to.
-	 * @param bool $value    If membership was accepted.
-	 */
-	do_action( 'groups_membership_accepted', $membership->user_id, $membership->group_id, true );
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$args = array(
+		'user_id' => $user_id,
+		'item_id' => $group_id,
+	);
 
-	return true;
+	return $invites_class->accept_request( $args );
 }
 
 /**
@@ -1985,7 +2097,7 @@ function groups_accept_membership_request( $membership_id, $user_id = 0, $group_
  *
  * @since 1.0.0
  *
- * @param int $membership_id ID of the membership object.
+ * @param int $membership_id Deprecated 5.0.0.
  * @param int $user_id       Optional. ID of the user who requested membership.
  *                           Provide this value along with $group_id to override
  *                           $membership_id.
@@ -1995,7 +2107,12 @@ function groups_accept_membership_request( $membership_id, $user_id = 0, $group_
  * @return bool True on success, false on failure.
  */
 function groups_reject_membership_request( $membership_id, $user_id = 0, $group_id = 0 ) {
-	if ( !$membership = groups_delete_membership_request( $membership_id, $user_id, $group_id ) ) {
+
+	if ( ! empty( $membership_id ) ){
+		_deprecated_argument( __METHOD__, '5.0.0', sprintf( __( 'Argument `membership_id` passed to %1$s  is deprecated. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
+	}
+
+	if ( ! groups_delete_membership_request( false, $user_id, $group_id ) ) {
 		return false;
 	}
 
@@ -2008,7 +2125,7 @@ function groups_reject_membership_request( $membership_id, $user_id = 0, $group_
 	 * @param int  $group_id ID of the group that was rejected membership to.
 	 * @param bool $value    If membership was accepted.
 	 */
-	do_action( 'groups_membership_rejected', $membership->user_id, $membership->group_id, false );
+	do_action( 'groups_membership_rejected', $user_id, $group_id, false );
 
 	return true;
 }
@@ -2018,7 +2135,7 @@ function groups_reject_membership_request( $membership_id, $user_id = 0, $group_
  *
  * @since 1.2.0
  *
- * @param int $membership_id ID of the membership object.
+ * @param int $membership_id Deprecated 5.0.0.
  * @param int $user_id       Optional. ID of the user who requested membership.
  *                           Provide this value along with $group_id to override
  *                           $membership_id.
@@ -2028,15 +2145,37 @@ function groups_reject_membership_request( $membership_id, $user_id = 0, $group_
  * @return false|BP_Groups_Member True on success, false on failure.
  */
 function groups_delete_membership_request( $membership_id, $user_id = 0, $group_id = 0 ) {
-	if ( !empty( $user_id ) && !empty( $group_id ) )
-		$membership = new BP_Groups_Member( $user_id, $group_id );
-	else
-		$membership = new BP_Groups_Member( false, false, $membership_id );
+	if ( ! empty( $membership_id ) ){
+		_deprecated_argument( __METHOD__, '5.0.0', sprintf( __( 'Argument `membership_id` passed to %1$s  is deprecated. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
+	}
 
-	if ( ! BP_Groups_Member::delete_request( $membership->user_id, $membership->group_id ) )
+	if ( empty( $user_id ) || empty( $group_id ) ) {
 		return false;
+	}
+
+	$invites_class = new BP_Groups_Invitation_Manager();
+	$success       = $invites_class->delete_requests( array(
+		'user_id' => $user_id,
+		'item_id' => $group_id
+	) );
 
-	return $membership;
+	return $success;
+}
+
+/**
+ * Get group membership requests filtered by arguments.
+ *
+ * @since 5.0.0
+ *
+ * @param int   $group_id ID of the group.
+ * @param array $args     Invitation arguments.
+ *                        See BP_Invitation::get() for list.
+ *
+ * @return array $requests Matching BP_Invitation objects.
+ */
+function groups_get_requests( $args = array() ) {
+	$invites_class = new BP_Groups_Invitation_Manager();
+	return $invites_class->get_requests( $args );
 }
 
 /**
@@ -2046,23 +2185,64 @@ function groups_delete_membership_request( $membership_id, $user_id = 0, $group_
  *
  * @param int $user_id  ID of the user.
  * @param int $group_id ID of the group.
- * @return int|bool ID of the membership if found, otherwise false.
+ * @return int|bool ID of the request if found, otherwise false.
  */
 function groups_check_for_membership_request( $user_id, $group_id ) {
-	$request = false;
+	if ( empty( $user_id ) || empty( $group_id ) ) {
+		return false;
+	}
 
-	$user_groups = bp_get_user_groups( $user_id, array(
-		'is_confirmed' => false,
-		'is_banned'    => false,
-		'is_admin'     => null,
-		'is_mod'       => null
+	$args = array(
+		'user_id' => $user_id,
+		'item_id' => $group_id,
+	);
+	$invites_class = new BP_Groups_Invitation_Manager();
+
+	return $invites_class->request_exists( $args );
+}
+
+ /**
+  * Get an array of group IDs to which a user has requested membership.
+  *
+  * @since 5.0.0
+  *
+  * @param int $user_id The user ID.
+  *
+  * @return array Array of group IDs.
+  */
+ function groups_get_membership_requested_group_ids( $user_id = 0 ) {
+	if ( ! $user_id ) {
+		$user_id = bp_loggedin_user_id();
+	}
+
+	$group_ids     = groups_get_requests( array(
+		'user_id' => $user_id,
+		'fields'  => 'item_ids'
 	) );
 
-	if ( isset( $user_groups[ $group_id ] ) && 0 === $user_groups[ $group_id ]->inviter_id ) {
-		$request = $user_groups[ $group_id ]->id;
+	return $group_ids;
+}
+
+ /**
+  * Get an array of group IDs to which a user has requested membership.
+  *
+  * @since 5.0.0
+  *
+  * @param int $user_id The user ID.
+  *
+  * @return array Array of group IDs.
+  */
+ function groups_get_membership_requested_user_ids( $group_id = 0 ) {
+	if ( ! $group_id ) {
+		$group_id = bp_get_current_group_id();
 	}
 
-	return $request;
+	$requests = groups_get_requests( array(
+		'item_id' => $group_id,
+		'fields'  => 'user_ids'
+	) );
+
+	return $requests;
 }
 
 /**
@@ -2073,14 +2253,20 @@ function groups_check_for_membership_request( $user_id, $group_id ) {
  * @param int $group_id ID of the group.
  * @return bool True on success, false on failure.
  */
-function groups_accept_all_pending_membership_requests( $group_id ) {
-	$user_ids = BP_Groups_Member::get_all_membership_request_user_ids( $group_id );
+function groups_accept_all_pending_membership_requests( $group_id = 0 ) {
+	if ( ! $group_id ) {
+		$group_id = bp_get_current_group_id();
+	}
+
+	$user_ids = groups_get_membership_requested_user_ids( $group_id );
 
-	if ( !$user_ids )
+	if ( ! $user_ids ) {
 		return false;
+	}
 
-	foreach ( (array) $user_ids as $user_id )
+	foreach ( (array) $user_ids as $user_id ) {
 		groups_accept_membership_request( false, $user_id, $group_id );
+	}
 
 	/**
 	 * Fires after the acceptance of all pending membership requests to a group.
@@ -2756,14 +2942,14 @@ function bp_groups_pending_requests_personal_data_exporter( $email_address, $pag
 		);
 	}
 
-	$requests = BP_Groups_Member::get_user_memberships( $user->ID, array(
-		'type'     => 'pending_request',
+	$requests = groups_get_requests( array(
+		'user_id'  => $user->ID,
 		'page'     => $page,
 		'per_page' => $number,
 	) );
 
 	foreach ( $requests as $request ) {
-		$group = groups_get_group( $request->group_id );
+		$group = groups_get_group( $request->item_id );
 
 		$item_data = array(
 			array(
@@ -2822,14 +3008,14 @@ function bp_groups_pending_sent_invitations_personal_data_exporter( $email_addre
 		);
 	}
 
-	$invitations = BP_Groups_Member::get_user_memberships( $user->ID, array(
-		'type'     => 'pending_sent_invitation',
-		'page'     => $page,
-		'per_page' => $number,
+	$invitations = groups_get_invites( array(
+		'inviter_id'  => $user->ID,
+		'page'        => $page,
+		'per_page'    => $number,
 	) );
 
 	foreach ( $invitations as $invitation ) {
-		$group = groups_get_group( $invitation->group_id );
+		$group = groups_get_group( $invitation->item_id );
 
 		$item_data = array(
 			array(
@@ -2892,14 +3078,14 @@ function bp_groups_pending_received_invitations_personal_data_exporter( $email_a
 		);
 	}
 
-	$invitations = BP_Groups_Member::get_user_memberships( $user->ID, array(
-		'type'     => 'pending_received_invitation',
+	$invitations = groups_get_invites( array(
+		'user_id'  => $user->ID,
 		'page'     => $page,
 		'per_page' => $number,
 	) );
 
 	foreach ( $invitations as $invitation ) {
-		$group = groups_get_group( $invitation->group_id );
+		$group = groups_get_group( $invitation->item_id );
 
 		$item_data = array(
 			array(
@@ -2936,3 +3122,49 @@ function bp_groups_pending_received_invitations_personal_data_exporter( $email_a
 		'done' => $done,
 	);
 }
+
+/**
+ * Migrate invitations and requests from pre-5.0 group_members table to invitations table.
+ *
+ * @since 5.0.0
+ */
+function bp_groups_migrate_invitations() {
+	global $wpdb;
+	$bp = buddypress();
+
+	$records = $wpdb->get_results( "SELECT id, group_id, user_id, inviter_id, date_modified, comments, invite_sent FROM {$bp->groups->table_name_members} WHERE is_confirmed = 0 AND is_banned = 0" );
+	if ( empty( $records ) ) {
+		return;
+	}
+
+	$processed = array();
+	$values = array();
+	foreach ( $records as $record ) {
+		$values[] = $wpdb->prepare(
+			"(%d, %d, %s, %s, %d, %d, %s, %s, %s, %d, %d)",
+			(int) $record->user_id,
+			(int) $record->inviter_id,
+			'',
+			'bp_groups_invitation_manager',
+			(int) $record->group_id,
+			0,
+			( 0 === (int) $record->inviter_id ) ? 'request' : 'invite',
+			$record->comments,
+			$record->date_modified,
+			(int) $record->invite_sent,
+			0
+		);
+		$processed[] = (int) $record->id;
+	}
+
+	$table_name = BP_Invitation_Manager::get_table_name();
+	$query = "INSERT INTO {$table_name} (user_id, inviter_id, invitee_email, class, item_id, secondary_item_id, type, content, date_modified, invite_sent, accepted) VALUES ";
+	$query .= implode(', ', $values );
+	$query .= ';';
+	$wpdb->query( $query );
+
+	$ids_to_delete = implode( ',', $processed );
+	if ( $ids_to_delete ) {
+		$wpdb->query( "DELETE FROM {$bp->groups->table_name_members} WHERE ID IN ($ids_to_delete)" );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php
index b94850fb5..b9759d787 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-notifications.php
@@ -143,6 +143,15 @@ function groups_notification_new_membership_request( $requesting_user_id = 0, $a
 		'notification_type' => 'groups-membership-request',
 	);
 
+	$request_message = '';
+	$requests = groups_get_requests( $args = array(
+		'user_id'    => $requesting_user_id,
+		'item_id'    => $group_id,
+	) );
+	if ( $requests ) {
+		$request_message = current( $requests )->content;
+	}
+
 	$group = groups_get_group( $group_id );
 	$args  = array(
 		'tokens' => array(
@@ -151,10 +160,10 @@ function groups_notification_new_membership_request( $requesting_user_id = 0, $a
 			'group.name'           => $group->name,
 			'group.id'             => $group_id,
 			'group-requests.url'   => esc_url( bp_get_group_permalink( $group ) . 'admin/membership-requests' ),
-			'membership.id'        => $membership_id,
 			'profile.url'          => esc_url( bp_core_get_user_domain( $requesting_user_id ) ),
 			'requesting-user.id'   => $requesting_user_id,
 			'requesting-user.name' => bp_core_get_user_displayname( $requesting_user_id ),
+			'request.message'      => $request_message,
 			'unsubscribe'          => esc_url( bp_email_get_unsubscribe_link( $unsubscribe_args ) ),
 		),
 	);
@@ -289,20 +298,20 @@ add_action( 'groups_promoted_member', 'groups_notification_promoted_member', 10,
  *
  * @since 1.0.0
  *
- * @param BP_Groups_Group  $group           Group object.
- * @param BP_Groups_Member $member          Member object.
- * @param int              $inviter_user_id ID of the user who sent the invite.
+ * @param BP_Groups_Group      $group           Group object.
+ * @param BP_Groups_Member|int $member          Member object or invited_user_id.
+ * @param int                  $inviter_user_id ID of the user who sent the invite.
  */
 function groups_notification_group_invites( &$group, &$member, $inviter_user_id ) {
 
-	// Bail if member has already been invited.
-	if ( ! empty( $member->invite_sent ) ) {
-		return;
-	}
-
 	// @todo $inviter_ud may be used for caching, test without it
 	$inviter_ud      = bp_core_get_core_userdata( $inviter_user_id );
-	$invited_user_id = $member->user_id;
+
+	if ( $member instanceof BP_Groups_Member ) {
+		$invited_user_id = $member->user_id;
+	} else if ( is_int( $member ) ) {
+		$invited_user_id = $member;
+	}
 
 	// Trigger a BuddyPress Notification.
 	if ( bp_is_active( 'notifications' ) ) {
@@ -326,18 +335,30 @@ function groups_notification_group_invites( &$group, &$member, $inviter_user_id
 		'notification_type' => 'groups-invitation',
 	);
 
+	$invite_message = '';
+	$invitations = groups_get_invites( $args = array(
+		'user_id'    => $invited_user_id,
+		'item_id'    => $group->id,
+		'inviter_id' => $inviter_user_id,
+	) );
+	if ( $invitations ) {
+		$invite_message = current( $invitations )->content;
+	}
+
 	$args         = array(
 		'tokens' => array(
-			'group'        => $group,
-			'group.url'    => bp_get_group_permalink( $group ),
-			'group.name'   => $group->name,
-			'inviter.name' => bp_core_get_userlink( $inviter_user_id, true, false, true ),
-			'inviter.url'  => bp_core_get_user_domain( $inviter_user_id ),
-			'inviter.id'   => $inviter_user_id,
-			'invites.url'  => esc_url( $invited_link . '/invites/' ),
-			'unsubscribe'  => esc_url( bp_email_get_unsubscribe_link( $unsubscribe_args ) ),
+			'group'          => $group,
+			'group.url'      => bp_get_group_permalink( $group ),
+			'group.name'     => $group->name,
+			'inviter.name'   => bp_core_get_userlink( $inviter_user_id, true, false, true ),
+			'inviter.url'    => bp_core_get_user_domain( $inviter_user_id ),
+			'inviter.id'     => $inviter_user_id,
+			'invites.url'    => esc_url( $invited_link . '/invites/' ),
+			'invite.message' => $invite_message,
+			'unsubscribe'    => esc_url( bp_email_get_unsubscribe_link( $unsubscribe_args ) ),
 		),
 	);
+
 	bp_send_email( 'groups-invitation', (int) $invited_user_id, $args );
 }
 
@@ -941,6 +962,23 @@ function bp_groups_delete_group_delete_all_notifications( $group_id ) {
 }
 add_action( 'groups_delete_group', 'bp_groups_delete_group_delete_all_notifications', 10 );
 
+/**
+ * Remove Group invite notification when a user is uninvited.
+ *
+ * @since 5.0.0
+ *
+ * @param int $group_id ID of the group being uninvited from.
+ * @param int $user_id  ID of the user being uninvited.
+ */
+function bp_groups_uninvite_user_delete_group_invite_notification( $group_id = 0, $user_id = 0 ) {
+	if ( ! bp_is_active( 'notifications' ) || ! $group_id || ! $user_id ) {
+		return;
+	}
+
+	bp_notifications_delete_notifications_by_item_id( $user_id, $group_id, buddypress()->groups->id, 'group_invite' );
+}
+add_action( 'groups_uninvite_user', 'bp_groups_uninvite_user_delete_group_invite_notification', 10, 2 );
+
 /**
  * When a demotion takes place, delete any corresponding promotion notifications.
  *
diff --git a/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php b/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php
index f628dd54c..3ccfd2a22 100644
--- a/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php
+++ b/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php
@@ -875,6 +875,32 @@ function bp_group_avatar_mini( $group = false ) {
 		) );
 	}
 
+/**
+ * Returns the group avatar URL.
+ *
+ * @since 5.0.0
+ *
+ * @param object|bool $group Optional. Group object. Default current group in loop.
+ * @param string      $type  Optional. The type of the avatar ('full' or 'thumb'). Default 'full'.
+ * @return string The avatar URL.
+ */
+function bp_get_group_avatar_url( $group = false, $type = 'full' ) {
+	$group_id = bp_get_group_id( $group );
+
+	if ( ! $group_id ) {
+		return '';
+	}
+
+	return bp_core_fetch_avatar(
+		array(
+			'type'    => $type,
+			'object'  => 'group',
+			'item_id' => $group_id,
+			'html'    => false,
+		)
+	);
+}
+
 /** Group cover image *********************************************************/
 
 /**
@@ -889,6 +915,36 @@ function bp_group_use_cover_image_header() {
 	return (bool) bp_is_active( 'groups', 'cover_image' ) && ! bp_disable_group_cover_image_uploads() && bp_attachments_is_wp_version_supported();
 }
 
+/**
+ * Returns the group cover image URL.
+ *
+ * @since 5.0.0
+ *
+ * @param object|bool $group Optional. Group object. Default current group in loop.
+ * @return string The cover image URL or empty string if not found.
+ */
+function bp_get_group_cover_url( $group = false ) {
+	$group_id = bp_get_group_id( $group );
+
+	if ( ! $group_id ) {
+		return '';
+	}
+
+	$cover_url = bp_attachments_get_attachment(
+		'url',
+		array(
+			'object_dir' => 'groups',
+			'item_id'    => $group_id,
+		)
+	);
+
+	if ( ! $cover_url ) {
+		return '';
+	}
+
+	return $cover_url;
+}
+
 /**
  * Output the 'last active' string for the current group in the loop.
  *
@@ -5430,6 +5486,12 @@ function bp_group_request_reject_link() {
 	function bp_get_group_request_reject_link() {
 		global $requests_template;
 
+		$link = add_query_arg( array(
+			'_wpnonce' => wp_create_nonce( 'groups_reject_membership_request' ),
+			'user_id'  => $requests_template->request->user_id,
+			'action'   => 'reject'
+		), trailingslashit( bp_get_group_permalink( groups_get_current_group() ) ) . 'admin/membership-requests/' );
+
 		/**
 		 * Filters the URL to use to reject a membership request.
 		 *
@@ -5437,7 +5499,7 @@ function bp_group_request_reject_link() {
 		 *
 		 * @param string $value URL to use to reject a membership request.
 		 */
-		return apply_filters( 'bp_get_group_request_reject_link', wp_nonce_url( trailingslashit( bp_get_group_permalink( groups_get_current_group() ) . 'admin/membership-requests/reject/' . $requests_template->request->membership_id ), 'groups_reject_membership_request' ) );
+		return apply_filters( 'bp_get_group_request_reject_link', $link );
 	}
 
 /**
@@ -5454,6 +5516,12 @@ function bp_group_request_accept_link() {
 	function bp_get_group_request_accept_link() {
 		global $requests_template;
 
+		$link = add_query_arg( array(
+			'_wpnonce' => wp_create_nonce( 'groups_accept_membership_request' ),
+			'user_id'  => $requests_template->request->user_id,
+			'action'   => 'accept'
+		), trailingslashit( bp_get_group_permalink( groups_get_current_group() ) ) . 'admin/membership-requests/' );
+
 		/**
 		 * Filters the URL to use to accept a membership request.
 		 *
@@ -5461,7 +5529,7 @@ function bp_group_request_accept_link() {
 		 *
 		 * @param string $value URL to use to accept a membership request.
 		 */
-		return apply_filters( 'bp_get_group_request_accept_link', wp_nonce_url( trailingslashit( bp_get_group_permalink( groups_get_current_group() ) . 'admin/membership-requests/accept/' . $requests_template->request->membership_id ), 'groups_accept_membership_request' ) );
+		return apply_filters( 'bp_get_group_request_accept_link', $link );
 	}
 
 /**
@@ -6161,3 +6229,15 @@ function bp_groups_get_profile_stats( $args = '' ) {
 	 */
 	return apply_filters( 'bp_groups_get_profile_stats', $r['output'], $r );
 }
+
+/**
+ * Check if the active template pack includes the Group Membership management UI templates.
+ *
+ * @since 5.0.0
+ *
+ * @return boolean True if the active template pack includes the Group Membership management UI templates.
+ *                 False otherwise.
+ */
+function bp_groups_has_manage_group_members_templates() {
+	return file_exists( bp_locate_template( 'common/js-templates/group-members/index.php' ) );
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php
index d872810e3..859075921 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-group-member-query.php
@@ -231,7 +231,61 @@ class BP_Group_Member_Query extends BP_User_Query {
 		$sql['orderby'] = "ORDER BY date_modified";
 		$sql['order']   = 'first_joined' === $this->query_vars['type'] ? 'ASC' : 'DESC';
 
-		$this->group_member_ids = $wpdb->get_col( "{$sql['select']} {$sql['where']} {$sql['orderby']} {$sql['order']}" );
+		$group_member_ids = $wpdb->get_col( "{$sql['select']} {$sql['where']} {$sql['orderby']} {$sql['order']}" );
+
+		$invited_member_ids = array();
+
+		// If appropriate, fetch invitations and add them to the results.
+		if ( ! $is_confirmed || ! is_null( $this->query_vars['invite_sent'] ) || ! is_null( $this->query_vars['inviter_id'] ) ) {
+			$invite_args = array(
+				'item_id' => $this->query_vars['group_id'],
+				'fields'  => 'user_ids',
+				'type'    => 'all',
+			);
+
+			if ( ! is_null( $this->query_vars['invite_sent'] ) ) {
+				$invite_args['invite_sent'] = ! empty( $this->query_vars['invite_sent'] ) ? 'sent' : 'draft';
+			}
+
+			// If inviter_id.
+			if ( ! is_null( $this->query_vars['inviter_id'] ) ) {
+				$inviter_id = $this->query_vars['inviter_id'];
+
+				// Empty: inviter_id = 0. (pass false, 0, or empty array).
+				if ( empty( $inviter_id ) ) {
+					$invite_args['type'] = 'request';
+
+				/*
+				* The string 'any' matches any non-zero value (inviter_id != 0).
+				* These are invitations, not requests.
+				*/
+				} elseif ( 'any' === $inviter_id ) {
+					$invite_args['type'] = 'invite';
+
+				// Assume that a list of inviter IDs has been passed.
+				} else {
+					$invite_args['type'] = 'invite';
+					// Parse and sanitize.
+					$inviter_ids = wp_parse_id_list( $inviter_id );
+					if ( ! empty( $inviter_ids ) ) {
+						$invite_args['inviter_id'] = $inviter_ids;
+					}
+				}
+			}
+
+			/*
+			 * If first_joined is the "type" of query, sort the oldest
+			 * requests and invitations to the top.
+			 */
+			if ( 'first_joined' === $this->query_vars['type'] ) {
+				$invite_args['order_by']   = 'date_modified';
+				$invite_args['sort_order'] = 'ASC';
+			}
+
+			$invited_member_ids = groups_get_invites( $invite_args );
+		}
+
+		$this->group_member_ids = array_merge( $group_member_ids, $invited_member_ids );
 
 		/**
 		 * Filters the member IDs for the current group member query.
@@ -330,6 +384,45 @@ class BP_Group_Member_Query extends BP_User_Query {
 			}
 		}
 
+		// Add accurate invitation info from the invitations table.
+		$invites = groups_get_invites( array(
+			'user_id' => $user_ids_sql,
+			'item_id' => $this->query_vars['group_id'],
+			'type'    => 'all',
+		) );
+		foreach ( $invites as $invite ) {
+			if ( isset( $this->results[ $invite->user_id ] ) ) {
+				$this->results[ $invite->user_id ]->comments      = $invite->content;
+				$this->results[ $invite->user_id ]->is_confirmed  = 0;
+				$this->results[ $invite->user_id ]->invitation_id = $invite->id;
+				$this->results[ $invite->user_id ]->invite_sent   = (int) $invite->invite_sent;
+				$this->results[ $invite->user_id ]->inviter_id    = $invite->inviter_id;
+
+				// Backfill properties that are not being set above.
+				if ( ! isset( $this->results[ $invite->user_id ]->user_id ) ) {
+					$this->results[ $invite->user_id ]->user_id = $invite->user_id;
+				}
+				if ( ! isset( $this->results[ $invite->user_id ]->is_admin ) ) {
+					$this->results[ $invite->user_id ]->is_admin = 0;
+				}
+				if ( ! isset( $this->results[ $invite->user_id ]->is_mod ) ) {
+					$this->results[ $invite->user_id ]->is_mod = 0;
+				}
+				if ( ! isset( $this->results[ $invite->user_id ]->is_banned ) ) {
+					$this->results[ $invite->user_id ]->is_banned = 0;
+				}
+				if ( ! isset( $this->results[ $invite->user_id ]->date_modified ) ) {
+					$this->results[ $invite->user_id ]->date_modified = $invite->date_modified;
+				}
+				if ( ! isset( $this->results[ $invite->user_id ]->user_title ) ) {
+					$this->results[ $invite->user_id ]->user_title = '';
+				}
+				if ( ! isset( $this->results[ $invite->user_id ]->membership_id ) ) {
+					$this->results[ $invite->user_id ]->membership_id = 0;
+				}
+			}
+		}
+
 		// Don't filter other BP_User_Query objects on the same page.
 		remove_action( 'bp_user_query_populate_extras', array( $this, 'populate_group_member_extras' ), 10 );
 	}
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php
index f7d45658d..b53835ea0 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php
@@ -128,7 +128,8 @@ class BP_Groups_Component extends BP_Component {
 			'template',
 			'adminbar',
 			'functions',
-			'notifications'
+			'notifications',
+			'cssjs',
 		);
 
 		// Conditional includes.
@@ -793,7 +794,7 @@ class BP_Groups_Component extends BP_Component {
 			$title   = _x( 'Groups', 'My Account Groups', 'buddypress' );
 			$pending = _x( 'No Pending Invites', 'My Account Groups sub nav', 'buddypress' );
 
-			if ( ! empty( $count['total'] ) ) {
+			if ( $count ) {
 				$title = sprintf(
 					/* translators: %s: Group invitation count for the current user */
 					_x( 'Groups %s', 'My Account Groups nav', 'buddypress' ),
@@ -921,4 +922,22 @@ class BP_Groups_Component extends BP_Component {
 			'public' => false,
 		) );
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers Optional. See BP_Component::rest_api_init() for
+	 *                           description.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		parent::rest_api_init( array(
+			'BP_REST_Groups_Endpoint',
+			'BP_REST_Group_Membership_Endpoint',
+			'BP_REST_Group_Invites_Endpoint',
+			'BP_REST_Group_Membership_Request_Endpoint',
+			'BP_REST_Attachments_Group_Avatar_Endpoint',
+		) );
+	}
 }
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php
index 78df766b6..a0e304f89 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group-members-template.php
@@ -93,9 +93,10 @@ class BP_Groups_Group_Members_Template {
 	 * }
 	 */
 	public function __construct( $args = array() ) {
+		$function_args = func_get_args();
 
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '2.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -108,7 +109,7 @@ class BP_Groups_Group_Members_Template {
 				6 => 'group_role',
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$r = bp_parse_args( $args, array(
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php
index 5c40c011b..0102e41e7 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php
@@ -771,17 +771,20 @@ class BP_Groups_Group {
 	 *                  yet accepted.
 	 */
 	public static function get_invites( $user_id, $group_id, $sent = null ) {
-		global $wpdb;
-
-		$bp  = buddypress();
-		$sql = $wpdb->prepare( "SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d and is_confirmed = 0 AND inviter_id = %d", $group_id, $user_id );
-
-		// Query for a specific invite sent status.
-		if ( ! is_null( $sent ) ) {
-			$sql .= $wpdb->prepare( ' AND invite_sent = %d', $sent );
+		if ( 0 === $sent ) {
+			$sent_arg = 'draft';
+		} else if ( 1 === $sent ) {
+			$sent_arg = 'sent';
+		} else {
+			$sent_arg = 'all';
 		}
 
-		return $wpdb->get_col( $sql );
+		return groups_get_invites( array(
+			'item_id'     => $group_id,
+			'inviter_id'  => $user_id,
+			'invite_sent' => $sent_arg,
+			'fields'      => 'user_ids',
+		) );
 	}
 
 	/**
@@ -959,18 +962,20 @@ class BP_Groups_Group {
 	 * }
 	 */
 	public static function get_membership_requests( $group_id, $limit = null, $page = null ) {
-		global $wpdb;
-
-		if ( !empty( $limit ) && !empty( $page ) ) {
-			$pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
+		$args = array(
+			'item_id' => $group_id
+		);
+		if ( $limit ) {
+			$args['per_page'] = $limit;
+		}
+		if ( $page ) {
+			$args['page'] = $page;
 		}
 
-		$bp = buddypress();
-
-		$paged_requests = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0{$pag_sql}", $group_id ) );
-		$total_requests = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0", $group_id ) );
+		$requests = groups_get_requests( $args );
+		$total    = count( groups_get_membership_requested_user_ids( $group_id ) );
 
-		return array( 'requests' => $paged_requests, 'total' => $total_requests );
+		return array( 'requests' => $requests, 'total' => $total );
 	}
 
 	/**
@@ -1046,8 +1051,10 @@ class BP_Groups_Group {
 	public static function get( $args = array() ) {
 		global $wpdb;
 
+		$function_args = func_get_args();
+
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '1.7', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -1062,7 +1069,7 @@ class BP_Groups_Group {
 				8 => 'show_hidden',
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$defaults = array(
@@ -1635,11 +1642,15 @@ class BP_Groups_Group {
 	 *                  failure.
 	 */
 	public static function delete_all_invites( $group_id ) {
-		global $wpdb;
+		if ( empty( $group_id ) ) {
+			return false;
+		}
 
-		$bp = buddypress();
+		$invites_class = new BP_Groups_Invitation_Manager();
 
-		return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->groups->table_name_members} WHERE group_id = %d AND invite_sent = 1", $group_id ) );
+		return $invites_class->delete( array(
+			'item_id' => $group_id,
+		) );
 	}
 
 	/**
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invitation-manager.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invitation-manager.php
new file mode 100644
index 000000000..d22cd0977
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invitation-manager.php
@@ -0,0 +1,191 @@
+<?php
+/**
+ * Group invitations class.
+ *
+ * @package BuddyPress
+ * @subpackage Core
+ * @since 5.0.0
+ */
+
+// Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Group invitations class.
+ *
+ * An extension of the core Invitations class that adapts the
+ * core logic to accommodate group invitation behavior.
+ *
+ * @since 5.0.0
+ */
+class BP_Groups_Invitation_Manager extends BP_Invitation_Manager {
+	/**
+	 * Construct parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array|string $args.
+	 */
+	public function __construct( $args = '' ) {
+		parent::__construct();
+	}
+
+	/**
+	 * This is where custom actions are added to run when notifications of an
+	 * invitation or request need to be generated & sent.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $id The ID of the invitation to mark as sent.
+	 * @return bool True on success, false on failure.
+	 */
+	public function run_send_action( BP_Invitation $invitation ) {
+		// Notify group admins of the pending request
+		if ( 'request' === $invitation->type ) {
+			$admins = groups_get_group_admins( $invitation->item_id );
+
+			foreach ( $admins as $admin ) {
+				groups_notification_new_membership_request( $invitation->user_id, $admin->user_id, $invitation->item_id, $invitation->id );
+			}
+			return true;
+
+		// Notify the invitee of the invitation.
+		} else {
+			$group = groups_get_group( $invitation->item_id );
+			groups_notification_group_invites( $group, $invitation->user_id, $invitation->inviter_id );
+			return true;
+		}
+	}
+
+	/**
+	 * This is where custom actions are added to run when an invitation
+	 * or request is accepted.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $type Are we accepting an invitation or request?
+	 * @param array  $r    Parameters that describe the invitation being accepted.
+	 * @return bool True on success, false on failure.
+	 */
+	public function run_acceptance_action( $type = 'invite', $r  ) {
+		// If the user is already a member (because BP at one point allowed two invitations to
+		// slip through), return early.
+		if ( groups_is_user_member( $r['user_id'], $r['item_id'] ) ) {
+			return true;
+		}
+
+		// Create the new membership
+		$member = new BP_Groups_Member( $r['user_id'], $r['item_id'] );
+
+		if ( 'request' === $type ) {
+			$member->accept_request();
+		} else {
+			$member->accept_invite();
+		}
+
+		if ( ! $member->save() ) {
+			return false;
+		}
+
+		if ( 'request' === $type ) {
+			/**
+			 * Fires after a group membership request has been accepted.
+			 *
+			 * @since 1.0.0
+			 *
+			 * @param int  $user_id  ID of the user who accepted membership.
+			 * @param int  $group_id ID of the group that was accepted membership to.
+			 * @param bool $value    If membership was accepted.
+			 */
+			do_action( 'groups_membership_accepted', $r['user_id'], $r['item_id'], true );
+		} else {
+			// Get an inviter_id from the invitation.
+			$invites = groups_get_invites( $r );
+			$inviter_id = 0;
+			if ( $invites ) {
+				$inviter_id = current( $invites )->inviter_id;
+			}
+
+			/**
+			 * Fires after a user has accepted a group invite.
+			 *
+			 * @since 1.0.0
+			 * @since 2.8.0 The $inviter_id arg was added.
+			 *
+			 * @param int $user_id    ID of the user who accepted the group invite.
+			 * @param int $group_id   ID of the group being accepted to.
+			 * @param int $inviter_id ID of the user who invited this user to the group.
+			 */
+			do_action( 'groups_accept_invite', $r['user_id'], $r['item_id'], $inviter_id );
+		}
+
+		// Modify group meta.
+		groups_update_groupmeta( $r['item_id'], 'last_activity', bp_core_current_time() );
+
+		return true;
+	}
+
+	/**
+	 * With group invitations, we don't need to keep the old record, so we delete rather than
+	 * mark invitations as "accepted."
+	 *
+	 * @since 5.0.0
+	 *
+	 * @see BP_Invitation::mark_accepted_by_data()
+	 *      for a description of arguments.
+	 *
+	 * @param array $args.
+	 */
+	public function mark_accepted( $args ) {
+		// Delete all existing invitations/requests to this group for this user.
+		$this->delete( array(
+			'user_id' => $args['user_id'],
+			'item_id' => $args['item_id'],
+			'type'    => 'all'
+		) );
+	}
+
+	/**
+	 * Should this invitation be created?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args.
+	 * @return bool
+	 */
+	public function allow_invitation( $args ) {
+		// Does the inviter have this capability?
+		if ( ! bp_user_can( $args['inviter_id'], 'groups_send_invitation', array( 'group_id' => $args['item_id'] ) ) ) {
+			return false;
+		}
+
+		// Is the invited user eligible to receive an invitation?
+		if ( ! bp_user_can( $args['user_id'], 'groups_receive_invitation', array( 'group_id' => $args['item_id'] ) ) ) {
+			return false;
+		}
+
+		// Prevent duplicated invitations.
+		if ( groups_check_has_invite_from_user( $args['user_id'], $args['item_id'], $args['inviter_id'], 'all' ) ) {
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Should this request be created?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args.
+	 * @return bool.
+	 */
+	public function allow_request( $args ) {
+		// Does the requester have this capability? (Also checks for duplicates.)
+		if ( ! bp_user_can( $args['user_id'], 'groups_request_membership', array( 'group_id' => $args['item_id'] ) ) ) {
+			return false;
+		}
+
+		return true;
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php
index 0d16db855..6878adb14 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-invite-template.php
@@ -78,9 +78,10 @@ class BP_Groups_Invite_Template {
 	 * @param array $args
 	 */
 	public function __construct( $args = array() ) {
+		$function_args = func_get_args();
 
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '2.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -88,7 +89,7 @@ class BP_Groups_Invite_Template {
 				1  => 'group_id',
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$r = bp_parse_args( $args, array(
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php
index f831e0d60..039d913ad 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-list-table.php
@@ -417,12 +417,20 @@ class BP_Groups_List_Table extends WP_List_Table {
 	 * @return array Array of sortable column names.
 	 */
 	public function get_sortable_columns() {
-		return array(
+
+		/**
+		 * Filters the column names for the sortable columns.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $value Array of keys and their values.
+		 */
+		return apply_filters( 'bp_groups_list_table_get_sortable_columns', array(
 			'gid'         => array( 'gid', false ),
 			'comment'     => array( 'name', false ),
 			'members'     => array( 'members', false ),
 			'last_active' => array( 'last_active', false ),
-		);
+		) );
 	}
 
 	/**
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php
index 66f833022..a442ce932 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-member.php
@@ -767,7 +767,7 @@ class BP_Groups_Member {
 	}
 
 	/**
-	 * Get a user's outstanding group invitations.
+	 * Get group objects for groups that a user is currently invited to.
 	 *
 	 * @since 1.6.0
 	 *
@@ -784,22 +784,7 @@ class BP_Groups_Member {
 	 * }
 	 */
 	public static function get_invites( $user_id, $limit = false, $page = false, $exclude = false ) {
-		global $wpdb;
-
-		$pag_sql = ( !empty( $limit ) && !empty( $page ) ) ? $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ) : '';
-
-		if ( !empty( $exclude ) ) {
-			$exclude     = implode( ',', wp_parse_id_list( $exclude ) );
-			$exclude_sql = " AND g.id NOT IN ({$exclude})";
-		} else {
-			$exclude_sql = '';
-		}
-
-		$bp = buddypress();
-
-		$paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND m.is_confirmed = 0 AND m.inviter_id != 0 AND m.invite_sent = 1 AND m.user_id = %d {$exclude_sql} ORDER BY m.date_modified ASC {$pag_sql}", $user_id ) );
-
-		return array( 'groups' => $paged_groups, 'total' => self::get_invite_count_for_user( $user_id ) );
+		return groups_get_invites_for_user( $user_id, $limit, $page, $exclude );
 	}
 
 	/**
@@ -811,18 +796,7 @@ class BP_Groups_Member {
 	 * @return int
 	 */
 	public static function get_invite_count_for_user( $user_id = 0 ) {
-		global $wpdb;
-
-		$bp = buddypress();
-
-		$count = wp_cache_get( $user_id, 'bp_group_invite_count' );
-
-		if ( false === $count ) {
-			$count = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND m.is_confirmed = 0 AND m.inviter_id != 0 AND m.invite_sent = 1 AND m.user_id = %d", $user_id ) );
-			wp_cache_set( $user_id, $count, 'bp_group_invite_count' );
-		}
-
-		return $count;
+		return groups_get_invite_count_for_user( $user_id );
 	}
 
 	/**
@@ -862,15 +836,27 @@ class BP_Groups_Member {
 
 		switch ( $r['type'] ) {
 			case 'pending_request' :
-				$sql['where'] = $wpdb->prepare( "user_id = %d AND is_confirmed = 0 AND inviter_id = 0", $user_id );
+				return groups_get_requests( array(
+					'user_id'  => $user_id,
+					'page'     => $r['page'],
+					'per_page' => $r['per_page'],
+				) );
 			break;
 
 			case 'pending_received_invitation' :
-				$sql['where'] = $wpdb->prepare( "user_id = %d AND is_confirmed = 0 AND inviter_id != 0", $user_id );
+				return groups_get_invites( array(
+					'user_id'  => $user_id,
+					'page'     => $r['page'],
+					'per_page' => $r['per_page'],
+				) );
 			break;
 
 			case 'pending_sent_invitation' :
-				$sql['where'] = $wpdb->prepare( "inviter_id = %d AND is_confirmed = 0", $user_id );
+				return groups_get_invites( array(
+					'inviter_id'  => $user_id,
+					'page'        => $r['page'],
+					'per_page'    => $r['per_page'],
+				) );
 			break;
 
 			case 'membership' :
@@ -912,20 +898,7 @@ class BP_Groups_Member {
 	 * @return int|null The ID of the invitation if found; null if not found.
 	 */
 	public static function check_has_invite( $user_id, $group_id, $type = 'sent' ) {
-		global $wpdb;
-
-		if ( empty( $user_id ) )
-			return false;
-
-		$bp  = buddypress();
-		$sql = "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND inviter_id != 0";
-
-		if ( 'sent' == $type )
-			$sql .= " AND invite_sent = 1";
-
-		$query = $wpdb->get_var( $wpdb->prepare( $sql, $user_id, $group_id ) );
-
-		return is_numeric( $query ) ? (int) $query : $query;
+		return groups_is_user_invited( $user_id, $group_id, $type );
 	}
 
 	/**
@@ -935,38 +908,27 @@ class BP_Groups_Member {
 	 *
 	 * @global WPDB $wpdb
 	 *
-	 * @param  int $user_id  ID of the user.
-	 * @param  int $group_id ID of the group.
+	 * @param  int $user_id    ID of the user.
+	 * @param  int $group_id   ID of the group.
+	 * @param  int $inviter_id ID of the inviter. Specify if you want to delete
+	 *                         a specific invite. Leave false if you want to
+	 *                         delete all invites to this group.
 	 * @return int Number of records deleted.
 	 */
-	public static function delete_invite( $user_id, $group_id ) {
-		global $wpdb;
-
-		if ( empty( $user_id ) ) {
-			return false;
-		}
-
+	public static function delete_invite( $user_id, $group_id, $inviter_id = false ) {
 		/**
 		 * Fires before a group invitation is deleted.
 		 *
 		 * @since 2.6.0
+		 * @since 5.0.0 Added $inviter_id
 		 *
 		 * @param int $user_id  ID of the user.
 		 * @param int $group_id ID of the group.
+		 * @param  int $inviter_id ID of the inviter.
 		 */
-		do_action( 'bp_groups_member_before_delete_invite', $user_id, $group_id );
-
-		$table_name = buddypress()->groups->table_name_members;
+		do_action( 'bp_groups_member_before_delete_invite', $user_id, $group_id, $inviter_id );
 
-		$sql = "DELETE FROM {$table_name}
-				WHERE user_id = %d
-					AND group_id = %d
-					AND is_confirmed = 0
-					AND inviter_id != 0";
-
-		$prepared = $wpdb->prepare( $sql, $user_id, $group_id );
-
-		return $wpdb->query( $prepared );
+		return groups_delete_invite( $user_id, $group_id, $inviter_id );
 	}
 
 	/**
@@ -979,14 +941,7 @@ class BP_Groups_Member {
 	 * @return int Number of records deleted.
 	 */
 	public static function delete_request( $user_id, $group_id ) {
-		global $wpdb;
-
-		if ( empty( $user_id ) )
-			return false;
-
-		$bp = buddypress();
-
-		return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND inviter_id = 0 AND invite_sent = 0", $user_id, $group_id ) );
+		return groups_delete_membership_request( false, $user_id, $group_id );
 	}
 
 	/**
@@ -1104,14 +1059,7 @@ class BP_Groups_Member {
 	 * @return int Database ID of the membership if found; int 0 on failure.
 	 */
 	public static function check_for_membership_request( $user_id, $group_id ) {
-		global $wpdb;
-
-		if ( empty( $user_id ) )
-			return false;
-
-		$bp = buddypress();
-
-		return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND is_banned = 0 AND inviter_id = 0", $user_id, $group_id ) );
+		return groups_is_user_pending( $user_id, $group_id );
 	}
 
 	/**
@@ -1292,11 +1240,7 @@ class BP_Groups_Member {
 	 * @return array IDs of users with outstanding membership requests.
 	 */
 	public static function get_all_membership_request_user_ids( $group_id ) {
-		global $wpdb;
-
-		$bp = buddypress();
-
-		return array_map( 'intval', $wpdb->get_col( $wpdb->prepare( "SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0", $group_id ) ) );
+		return groups_get_membership_requested_user_ids( $group_id );
 	}
 
 	/**
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php
index a98a18a85..52f4f4394 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-membership-requests-template.php
@@ -85,9 +85,10 @@ class BP_Groups_Membership_Requests_Template {
 	 * }
 	 */
 	public function __construct( $args = array() ) {
+		$function_args = func_get_args();
 
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '2.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -96,7 +97,7 @@ class BP_Groups_Membership_Requests_Template {
 				2 => 'max',
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$r = bp_parse_args( $args, array(
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php
index bb14a840e..d9aeb00c2 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-template.php
@@ -128,9 +128,10 @@ class BP_Groups_Template {
 	 * }
 	 */
 	function __construct( $args = array() ){
+		$function_args = func_get_args();
 
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '1.7', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -148,7 +149,7 @@ class BP_Groups_Template {
 				11 => 'page_arg',
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$defaults = array(
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php
index d18301fb4..5db3cd8b0 100644
--- a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-widget.php
@@ -102,8 +102,13 @@ class BP_Groups_Widget extends WP_Widget {
 
 		echo $before_title . $title . $after_title;
 
+		$max_limit  = bp_get_widget_max_count_limit( __CLASS__ );
 		$max_groups = ! empty( $instance['max_groups'] ) ? (int) $instance['max_groups'] : 5;
 
+		if ( $max_groups > $max_limit ) {
+			$max_groups = $max_limit;
+		}
+
 		$group_args = array(
 			'user_id'         => $user_id,
 			'type'            => $instance['group_default'],
@@ -183,10 +188,12 @@ class BP_Groups_Widget extends WP_Widget {
 	public function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
 
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$instance['title']         = strip_tags( $new_instance['title'] );
-		$instance['max_groups']    = strip_tags( $new_instance['max_groups'] );
+		$instance['max_groups']    = $new_instance['max_groups'] > $max_limit ? $max_limit : intval( $new_instance['max_groups'] );
 		$instance['group_default'] = strip_tags( $new_instance['group_default'] );
-		$instance['link_title']    = (bool) $new_instance['link_title'];
+		$instance['link_title']    = ! empty( $new_instance['link_title'] );
 
 		return $instance;
 	}
@@ -208,8 +215,10 @@ class BP_Groups_Widget extends WP_Widget {
 		);
 		$instance = bp_parse_args( (array) $instance, $defaults, 'groups_widget_form' );
 
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$title 	       = strip_tags( $instance['title'] );
-		$max_groups    = strip_tags( $instance['max_groups'] );
+		$max_groups    = $instance['max_groups'] > $max_limit ? $max_limit : intval( $instance['max_groups'] );
 		$group_default = strip_tags( $instance['group_default'] );
 		$link_title    = (bool) $instance['link_title'];
 		?>
@@ -218,7 +227,7 @@ class BP_Groups_Widget extends WP_Widget {
 
 		<p><label for="<?php echo $this->get_field_id('link_title') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('link_title') ?>" id="<?php echo $this->get_field_id('link_title') ?>" value="1" <?php checked( $link_title ) ?> /> <?php _e( 'Link widget title to Groups directory', 'buddypress' ) ?></label></p>
 
-		<p><label for="<?php echo $this->get_field_id( 'max_groups' ); ?>"><?php _e('Max groups to show:', 'buddypress'); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_groups' ); ?>" name="<?php echo $this->get_field_name( 'max_groups' ); ?>" type="text" value="<?php echo esc_attr( $max_groups ); ?>" style="width: 30%" /></label></p>
+		<p><label for="<?php echo $this->get_field_id( 'max_groups' ); ?>"><?php _e( 'Max groups to show:', 'buddypress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_groups' ); ?>" name="<?php echo $this->get_field_name( 'max_groups' ); ?>" type="number" min="1" max="<?php echo esc_attr( $max_limit ); ?>" value="<?php echo esc_attr( $max_groups ); ?>" style="width: 30%" /></label></p>
 
 		<p>
 			<label for="<?php echo $this->get_field_id( 'group_default' ); ?>"><?php _e('Default groups to show:', 'buddypress'); ?></label>
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-invites-endpoint.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-invites-endpoint.php
new file mode 100644
index 000000000..7e8d1f467
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-invites-endpoint.php
@@ -0,0 +1,1037 @@
+<?php
+/**
+ * BP REST: BP_REST_Group_Invites_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Group Invites endpoints.
+ *
+ * Use /groups/{group_id}/invites
+ * Use /groups/{group_id}/invites/{user_id}
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Group_Invites_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Reuse some parts of the BP_REST_Groups_Endpoint class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_Groups_Endpoint
+	 */
+	protected $groups_endpoint;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace              = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base              = buddypress()->groups->id . '/invites';
+		$this->groups_endpoint        = new BP_REST_Groups_Endpoint();
+		$this->group_members_endpoint = new BP_REST_Group_Membership_Endpoint();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<invite_id>[\d]+)',
+			array(
+				'args'   => array(
+					'invite_id' => array(
+						'description' => __( 'A unique numeric ID for the group invitation.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => array(
+						'context' => $this->get_context_param(
+							array(
+								'default' => 'view',
+							)
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve group invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'item_id'     => $request['group_id'],
+			'user_id'     => $request['user_id'],
+			'invite_sent' => $request['invite_sent'],
+			'per_page'    => $request['per_page'],
+			'page'        => $request['page'],
+		);
+
+		/**
+		 * Inviter_id is a special case, because 0 can be meaningful for requests,
+		 * but if it is zero for invitations, we can safely ignore it and should.
+		 * So, only apply non-zero inviter_ids.
+		 */
+		if ( $request['inviter_id'] ) {
+			$args['inviter_id'] = $request['inviter_id'];
+		}
+
+		// If the query is not restricted by group, user or inviter, limit it to the current user, if not an admin.
+		if ( ! $args['item_id'] && ! $args['user_id'] && ! $args['inviter_id'] && ! bp_current_user_can( 'bp_moderate' ) ) {
+			$args['user_id'] = bp_loggedin_user_id();
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_group_invites_get_items_query_args', $args, $request );
+
+		// Get invites.
+		$invites_data = groups_get_invites( $args );
+
+		$retval = array();
+		foreach ( $invites_data as $invitation ) {
+			if ( $invitation instanceof BP_Invitation ) {
+				$retval[] = $this->prepare_response_for_collection(
+					$this->prepare_item_for_response( $invitation, $request )
+				);
+			}
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, count( $invites_data ), $args['per_page'] );
+
+		/**
+		 * Fires after a list of group invites are fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $invites_data  Invited users from the group.
+		 * @param WP_REST_Response $response      The response data.
+		 * @param WP_REST_Request  $request       The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_invites_get_items', $invites_data, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to group invitations.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval      = true;
+		$user_id     = bp_loggedin_user_id();
+		$user_id_arg = $request['user_id'];
+		$group       = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		$inviter     = bp_rest_get_user( $request['inviter_id'] );
+
+		// If the query is not restricted by group or user, limit it to the current user, if not an admin.
+		if ( ! $request['group_id'] && ! $request['user_id'] && ! bp_current_user_can( 'bp_moderate' ) ) {
+			$user_id_arg = $user_id;
+		}
+		$user = bp_rest_get_user( $user_id_arg );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to see the group invitations.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		// If a group ID has been passed, check that it is valid.
+		if ( true === $retval && $request['group_id'] && ! $group instanceof BP_Groups_Group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// If a user ID has been passed, check that it is valid.
+		if ( true === $retval && $user_id_arg && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// If an inviter ID has been passed, check that it is valid.
+		if ( true === $retval && $request['inviter_id'] && ! $inviter instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+
+		}
+
+		/**
+		 * Users can see invitations if they
+		 * - are a site admin
+		 * - are a group admin of the subject group (group_id must be specified)
+		 * - are the invite recipient (user_id must be specified)
+		 * - are the inviter (inviter_id must be specified)
+		 * So, the request must be scoped if the user is not a site admin.
+		 */
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& ( $request['group_id'] && ! $this->can_see( $request['group_id'] ) )
+			&& $user_id_arg !== $user_id
+			&& $request['inviter_id'] !== $user_id
+			) {
+			$retval = new WP_Error(
+				'bp_rest_group_invites_cannot_get_items',
+				__( 'Sorry, you are not allowed to fetch group invitations with those arguments.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group invites `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_invites_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Fetch a specific group invitation by ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$invite = $this->fetch_single_invite( $request['invite_id'] );
+		$retval = $this->prepare_response_for_collection(
+			$this->prepare_item_for_response( $invite, $request )
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a membership request is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Invitation     $invite      Invitation object.
+		 * @param WP_REST_Response  $response    The response data.
+		 * @param WP_REST_Request   $request     The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_invite_get_item', $invite, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to fetch group invitation.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$user_id = bp_loggedin_user_id();
+		$invite  = $this->fetch_single_invite( $request['invite_id'] );
+		$retval  = true;
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to see the group invitations.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && ! $invite ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invite_invalid_id',
+				__( 'Invalid group invitation ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		/**
+		 * Users can see a specific invitation if they
+		 * - are a site admin
+		 * - are a group admin of the subject group
+		 * - are the invite recipient
+		 * - are the inviter
+		 */
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& ! $this->can_see( $invite->item_id )
+			&& ! in_array( $user_id, array( $invite->user_id, $invite->inviter_id ), true ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invites_cannot_get_item',
+				__( 'Sorry, you are not allowed to fetch an invitation.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group membership request `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_invites_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Invite a member to a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		$inviter_id_arg = $request['inviter_id'] ? $request['inviter_id'] : bp_loggedin_user_id();
+		$group          = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		$user           = bp_rest_get_user( $request['user_id'] );
+		$inviter        = bp_rest_get_user( $inviter_id_arg );
+
+		$invite_id = groups_invite_user(
+			array(
+				'user_id'     => $user->ID,
+				'group_id'    => $group->id,
+				'inviter_id'  => $inviter->ID,
+				'send_invite' => isset( $request['invite_sent'] ) ? (bool) $request['invite_sent'] : 1,
+				'content'     => $request['message'],
+			)
+		);
+
+		if ( ! $invite_id ) {
+			return new WP_Error(
+				'bp_rest_group_invite_cannot_create_item',
+				__( 'Could not invite member to the group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$invite = new BP_Invitation( $invite_id );
+
+		// Set context.
+		$request->set_param( 'context', 'edit' );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $invite, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a member is invited to a group via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Invitation    $invite         The invitation object.
+		 * @param WP_User          $user           The invited user.
+		 * @param WP_User          $inviter        The inviter user.
+		 * @param BP_Groups_Group  $group          The group object.
+		 * @param WP_REST_Response $response       The response data.
+		 * @param WP_REST_Request  $request        The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_invites_create_item', $invite, $user, $inviter, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to invite a member to a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$inviter_id_arg = $request['inviter_id'] ? $request['inviter_id'] : bp_loggedin_user_id();
+		$group          = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		$user           = bp_rest_get_user( $request['user_id'] );
+		$inviter        = bp_rest_get_user( $inviter_id_arg );
+		$retval         = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to create an invitation.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && empty( $group->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ( empty( $user->ID ) || empty( $inviter->ID ) || $user->ID === $inviter->ID ) ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Only a site admin or the user herself can extend invites.
+		if ( true === $retval && ! bp_current_user_can( 'bp_moderate' ) && bp_loggedin_user_id() !== $inviter_id_arg ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invite_cannot_create_item',
+				__( 'Sorry, you are not allowed to create the invitation as requested.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group invites `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_invites_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Accept a group invitation.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		$invite = $this->fetch_single_invite( $request['invite_id'] );
+		$accept = groups_accept_invite( $invite->user_id, $invite->item_id );
+		if ( ! $accept ) {
+			return new WP_Error(
+				'bp_rest_group_invite_cannot_update_item',
+				__( 'Could not accept group invitation.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$accepted_member = new BP_Groups_Member( $invite->user_id, $invite->item_id );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->group_members_endpoint->prepare_item_for_response( $accepted_member, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+		$group    = $this->groups_endpoint->get_group_object( $invite->item_id );
+
+		/**
+		 * Fires after a group invite is accepted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Groups_Member $accepted_member Accepted group member.
+		 * @param BP_Groups_Group  $group           The group object.
+		 * @param WP_REST_Response $response        The response data.
+		 * @param WP_REST_Request  $request         The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_invites_update_item', $accepted_member, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to accept a group invitation.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval  = true;
+		$user_id = bp_loggedin_user_id();
+		$invite  = $this->fetch_single_invite( $request['invite_id'] );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to see the group invitations.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && ! $invite ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invite_invalid_id',
+				__( 'Invalid group invitation ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Only the invitee or a site admin should be able to accept an invitation.
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& $user_id !== $invite->user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invite_cannot_update_item',
+				__( 'Sorry, you are not allowed to accept the invitation as requested.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group invites `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_invites_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Remove (reject/delete) a group invitation.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$user_id = bp_loggedin_user_id();
+		$invite  = $this->fetch_single_invite( $request['invite_id'] );
+
+		// Set the invite response before it is deleted.
+		$previous = $this->prepare_item_for_response( $invite, $request );
+
+		/**
+		 * If this change is being initiated by the invited user,
+		 * use the `reject` function.
+		 */
+		if ( $user_id === $invite->user_id ) {
+			$deleted = groups_reject_invite( $invite->user_id, $invite->item_id, $invite->inviter_id );
+			/**
+			 * Otherwise, this change is being initiated by a group admin, site admin,
+			 * or the inviter, and we should use the `uninvite` function.
+			 */
+		} else {
+			$deleted = groups_uninvite_user( $invite->user_id, $invite->item_id, $invite->inviter_id );
+		}
+
+		if ( ! $deleted ) {
+			return new WP_Error(
+				'bp_rest_group_invite_cannot_delete_item',
+				__( 'Could not delete group invitation.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		$user  = bp_rest_get_user( $invite->user_id );
+		$group = $this->groups_endpoint->get_group_object( $invite->item_id );
+
+		/**
+		 * Fires after a group invite is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_User          $user     The invited user.
+		 * @param BP_Groups_Group  $group    The group object.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_invites_delete_item', $user, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a group invitation.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval  = true;
+		$user_id = bp_loggedin_user_id();
+		$invite  = $this->fetch_single_invite( $request['invite_id'] );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to see the group invitations.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && ! $invite ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invite_invalid_id',
+				__( 'Invalid group invitation ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// The inviter, the invitee, group admins, and site admins can all delete invites.
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& ! in_array( $user_id, array( $invite->user_id, $invite->inviter_id ), true )
+			&& ! groups_is_user_admin( $user_id, $invite->item_id )
+			) {
+			$retval = new WP_Error(
+				'bp_rest_group_invite_cannot_delete_item',
+				__( 'Sorry, you are not allowed to delete the invitation as requested.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group invites `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_invites_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares group invitation data to return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Invitation   $invite  Invite object.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $invite, $request ) {
+		$data = array(
+			'id'            => $invite->id,
+			'user_id'       => $invite->user_id,
+			'invite_sent'   => $invite->invite_sent,
+			'inviter_id'    => $invite->inviter_id,
+			'group_id'      => $invite->item_id,
+			'date_modified' => bp_rest_prepare_date_response( $invite->date_modified ),
+			'type'          => $invite->type,
+			'message'       => array(
+				'raw'      => $invite->content,
+				'rendered' => apply_filters( 'the_content', $invite->content ),
+			),
+		);
+
+		$context  = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $invite ) );
+
+		/**
+		 * Filter a group invite value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 * @param BP_Invitation    $invite   The invite object.
+		 */
+		return apply_filters( 'bp_rest_group_invites_prepare_value', $response, $request, $invite );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Invitation $invite Invite object.
+	 * @return array Links for the given plugin.
+	 */
+	protected function prepare_links( $invite ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+		$url  = $base . $invite->id;
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $url ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+			'user'       => array(
+				'href'       => rest_url( bp_rest_get_user_url( $invite->user_id ) ),
+				'embeddable' => true,
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array    $links  The prepared links of the REST response.
+		 * @param stdClass $invite Invite object.
+		 */
+		return apply_filters( 'bp_rest_group_invites_prepare_links', $links, $invite );
+	}
+
+	/**
+	 * Check access.
+	 *
+	 * @param int $group_id Group ID.
+	 * @return bool
+	 */
+	protected function can_see( $group_id ) {
+		$user_id = bp_loggedin_user_id();
+
+		if ( ! groups_is_user_admin( $user_id, $group_id ) && ! groups_is_user_mod( $user_id, $group_id ) ) {
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Helper function to fetch a single group invite.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $invite_id The ID of the invitation you wish to fetch.
+	 *
+	 * @return BP_Invitation|bool $invite Invitation if found, false otherwise.
+	 */
+	public function fetch_single_invite( $invite_id = 0 ) {
+		$invites = groups_get_invites( array( 'id' => $invite_id ) );
+		if ( $invites ) {
+			return current( $invites );
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Edit the type of the some properties for the CREATABLE & EDITABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method || WP_REST_Server::EDITABLE === $method ) {
+			$key                            = 'create_item';
+			$args['message']['type']        = 'string';
+			$args['message']['description'] = __( 'The optional message to send to the invited user.', 'buddypress' );
+			$args['send_invite']            = $args['invite_sent'];
+			$args['inviter_id']['default']  = bp_loggedin_user_id();
+			$args['group_id']['required']   = true;
+			$args['user_id']['required']    = true;
+
+			// Remove arguments not needed for the CREATABLE transport method.
+			unset( $args['message']['properties'], $args['invite_sent'], $args['date_modified'], $args['type'] );
+
+			$args['send_invite']['description'] = __( 'Whether the invite should be sent to the invitee.', 'buddypress' );
+			$args['send_invite']['default']     = true;
+
+			if ( WP_REST_Server::EDITABLE === $method ) {
+				$key = 'update_item';
+			}
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_group_invites_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the group invite schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_group_invites',
+			'type'       => 'object',
+			'properties' => array(
+				'id'            => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the BP Invitation object.', 'buddypress' ),
+					'type'        => 'integer',
+					'readonly'    => true,
+				),
+				'user_id'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the user who is invited to join the Group.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'invite_sent'   => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the invite has been sent to the invitee.', 'buddypress' ),
+					'type'        => 'boolean',
+				),
+				'inviter_id'    => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the user who made the invite.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'group_id'      => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the group to which the user has been invited.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'date_modified' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( "The date the object was created or last updated, in the site's timezone.", 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+				),
+				'type'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Invitation or request.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => array( 'invite', 'request' ),
+					'default'     => 'invite',
+				),
+				'message'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The raw and rendered versions for the content of the message.', 'buddypress' ),
+					'type'        => 'object',
+					'arg_options' => array(
+						'sanitize_callback' => null,
+						'validate_callback' => null,
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Content for the object, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML content for the object, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+
+			),
+		);
+
+		/**
+		 * Filters the group invites schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_group_invites_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections of group invites.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		// Remove the search param.
+		unset( $params['search'] );
+
+		$params['group_id'] = array(
+			'description'       => __( 'ID of the group to limit results to.', 'buddypress' ),
+			'required'          => false,
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Return only invitations extended to this user.', 'buddypress' ),
+			'required'          => false,
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['inviter_id'] = array(
+			'description'       => __( 'Return only invitations extended by this user.', 'buddypress' ),
+			'required'          => false,
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['invite_sent'] = array(
+			'description'       => __( 'Limit result set to invites that have been sent, not sent, or include all.', 'buddypress' ),
+			'default'           => 'sent',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_text_field',
+			'validate_callback' => 'rest_validate_request_arg',
+			'enum'              => array( 'draft', 'sent', 'all' ),
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_group_invites_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-endpoint.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-endpoint.php
new file mode 100644
index 000000000..158f7626b
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-endpoint.php
@@ -0,0 +1,955 @@
+<?php
+/**
+ * BP REST: BP_REST_Group_Membership_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Group membership endpoints.
+ *
+ * Use /groups/{group_id}/members
+ * Use /groups/{group_id}/members/{user_id}
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Group_Membership_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Reuse some parts of the BP_REST_Groups_Endpoint class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_Groups_Endpoint
+	 */
+	protected $groups_endpoint;
+
+	/**
+	 * Reuse some parts of the BP_REST_Members_Endpoint class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_Members_Endpoint
+	 */
+	protected $members_endpoint;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace        = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base        = buddypress()->groups->id;
+		$this->groups_endpoint  = new BP_REST_Groups_Endpoint();
+		$this->members_endpoint = new BP_REST_Members_Endpoint();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<group_id>[\d]+)/members',
+			array(
+				'args'   => array(
+					'group_id' => array(
+						'description' => __( 'A unique numeric ID for the Group.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_method( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<group_id>[\d]+)/members/(?P<user_id>[\d]+)',
+			array(
+				'args'   => array(
+					'group_id' => array(
+						'description' => __( 'A unique numeric ID for the Group.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+					'user_id'  => array(
+						'description' => __( 'A unique numeric ID for the Group Member.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_method( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_method( WP_REST_Server::DELETABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve group members.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$group = $this->groups_endpoint->get_group_object( $request['group_id'] );
+
+		$args = array(
+			'group_id'            => $group->id,
+			'group_role'          => $request['roles'],
+			'type'                => $request['status'],
+			'per_page'            => $request['per_page'],
+			'page'                => $request['page'],
+			'search_terms'        => $request['search'],
+			'exclude'             => $request['exclude'],
+			'exclude_admins_mods' => (bool) $request['exclude_admins'],
+			'exclude_banned'      => (bool) $request['exclude_banned'],
+		);
+
+		if ( empty( $args['exclude'] ) ) {
+			$args['exclude'] = false;
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_group_members_get_items_query_args', $args, $request );
+
+		// Get our members.
+		$members = groups_get_group_members( $args );
+
+		$retval = array();
+		foreach ( $members['members'] as $member ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $member, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, $members['count'], $args['per_page'] );
+
+		/**
+		 * Fires after a list of group members are fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $members  Fetched group members.
+		 * @param BP_Groups_Group  $group    The group object.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_members_get_items', $members, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to group members.
+	 *
+	 * We are using the same permissions check done on group access.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval = $this->groups_endpoint->get_item_permissions_check( $request );
+
+		/**
+		 * Filter the group members `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_members_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Add member to a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		$user  = bp_rest_get_user( $request['user_id'] );
+		$group = $this->groups_endpoint->get_group_object( $request['group_id'] );
+
+		if ( ! $request['context'] || 'view' === $request['context'] ) {
+			if ( ! groups_join_group( $group->id, $user->ID ) ) {
+				return new WP_Error(
+					'bp_rest_group_member_failed_to_join',
+					__( 'Could not join the group.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+
+			// Set the group member.
+			$group_member = new BP_Groups_Member( $user->ID, $group->id );
+		} else {
+			$role         = $request['role'];
+			$group_id     = $group->id;
+			$group_member = new BP_Groups_Member( $user->ID, $group_id );
+
+			// Add member to the group.
+			$group_member->group_id      = $group_id;
+			$group_member->user_id       = $user->ID;
+			$group_member->is_admin      = 0;
+			$group_member->date_modified = bp_core_current_time();
+			$group_member->is_confirmed  = 1;
+			$saved                       = $group_member->save();
+
+			if ( ! $saved ) {
+				return new WP_Error(
+					'bp_rest_group_member_failed_to_join',
+					__( 'Could not add member to the group.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+
+			// If new role set, promote it too.
+			if ( $saved && 'member' !== $role ) {
+				// Make sure to update the group role.
+				if ( groups_promote_member( $user->ID, $group_id, $role ) ) {
+					$group_member = new BP_Groups_Member( $user->ID, $group_id );
+				}
+			}
+		}
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group_member, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a member is added to a group via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_User          $user         The user.
+		 * @param BP_Groups_Member $group_member The group member object.
+		 * @param BP_Groups_Group  $group        The group object.
+		 * @param WP_REST_Response $response     The response data.
+		 * @param WP_REST_Request  $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_members_create_item', $user, $group_member, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to join a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to join a group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['user_id'] );
+
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_group_member_invalid_id',
+				__( 'Invalid group member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$group = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		if ( true === $retval && ! $group instanceof BP_Groups_Group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Site administrators can do anything.
+		if ( true === $retval && bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = true;
+		} else {
+
+			$loggedin_user_id = bp_loggedin_user_id();
+			if ( $loggedin_user_id === $user->ID && 'view' === $request['context'] ) {
+
+				// Users may only freely join public groups.
+				if ( true === $retval && (
+					! bp_current_user_can( 'groups_join_group', array( 'group_id' => $group->id ) )
+					|| groups_is_user_member( $loggedin_user_id, $group->id ) // As soon as they are not already members.
+					|| groups_is_user_banned( $loggedin_user_id, $group->id ) // And as soon as they are not banned from it.
+				) ) {
+					$retval = new WP_Error(
+						'bp_rest_group_member_failed_to_join',
+						__( 'Could not join the group.', 'buddypress' ),
+						array(
+							'status' => 500,
+						)
+					);
+				}
+
+				if ( true === $retval ) {
+					$retval = true;
+				}
+			} else {
+				$retval = false;
+			}
+		}
+
+		/**
+		 * Filter the group members `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_members_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update user status on a group (add, remove, promote, demote or ban).
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		$user         = bp_rest_get_user( $request['user_id'] );
+		$group        = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		$action       = $request['action'];
+		$role         = $request['role'];
+		$group_id     = $group->id;
+		$group_member = new BP_Groups_Member( $user->ID, $group_id );
+
+		if ( 'promote' === $action ) {
+			if ( ! $group_member->promote( $role ) ) {
+				return new WP_Error(
+					'bp_rest_group_member_failed_to_promote',
+					__( 'Could not promote member.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+		} elseif ( 'demote' === $action && 'member' !== $role ) {
+			if ( ! $group_member->promote( $role ) ) {
+				return new WP_Error(
+					'bp_rest_group_member_failed_to_demote',
+					__( 'Could not demote member.', 'buddypress' ),
+					array(
+						'status' => 500,
+					)
+				);
+			}
+		} elseif ( in_array( $action, [ 'demote', 'ban', 'unban' ], true ) ) {
+			if ( ! $group_member->$action() ) {
+				$messages = array(
+					'demote' => __( 'Could not demote member from the group.', 'buddypress' ),
+					'ban'    => __( 'Could not ban member from the group.', 'buddypress' ),
+					'unban'  => __( 'Could not unban member from the group.', 'buddypress' ),
+				);
+
+				return new WP_Error(
+					'bp_rest_group_member_failed_to_' . $action,
+					$messages[ $action ],
+					array(
+						'status' => 500,
+					)
+				);
+			}
+		}
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group_member, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group member is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_User          $user         The updated member.
+		 * @param BP_Groups_Member $group_member The group member object.
+		 * @param BP_Groups_Group  $group        The group object.
+		 * @param WP_REST_Response $response     The response data.
+		 * @param WP_REST_Request  $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_members_update_item', $user, $group_member, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update a group member.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to make an update.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['user_id'] );
+
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_group_member_invalid_id',
+				__( 'Invalid group member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$group = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		if ( true === $retval && ! $group instanceof BP_Groups_Group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Site administrators can do anything.
+		if ( true === $retval && bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = true;
+		} else {
+
+			$loggedin_user_id = bp_loggedin_user_id();
+			if ( true === $retval && in_array( $request['action'], [ 'ban', 'unban', 'promote', 'demote' ], true ) ) {
+				if ( ! groups_is_user_admin( $loggedin_user_id, $group->id ) && ! groups_is_user_mod( $loggedin_user_id, $group->id ) ) {
+					$messages = array(
+						'ban'     => __( 'Sorry, you are not allowed to ban this group member.', 'buddypress' ),
+						'unban'   => __( 'Sorry, you are not allowed to unban this group member.', 'buddypress' ),
+						'promote' => __( 'Sorry, you are not allowed to promote this group member.', 'buddypress' ),
+						'demote'  => __( 'Sorry, you are not allowed to demote this group member.', 'buddypress' ),
+					);
+
+					$retval = new WP_Error(
+						'bp_rest_group_member_cannot_' . $request['action'],
+						$messages[ $request['action'] ],
+						array(
+							'status' => rest_authorization_required_code(),
+						)
+					);
+				} else {
+					$retval = true;
+				}
+			}
+		}
+
+		/**
+		 * Filter the group members `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_members_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete a group membership.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the Group member before it's removed.
+		$member   = new BP_Groups_Member( $request['user_id'], $request['group_id'] );
+		$previous = $this->prepare_item_for_response( $member, $request );
+
+		if ( ! $member->remove() ) {
+			return new WP_Error(
+				'bp_rest_group_member_failed_to_remove',
+				__( 'Could not remove member from this group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'removed'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		$user  = bp_rest_get_user( $request['user_id'] );
+		$group = $this->groups_endpoint->get_group_object( $request['group_id'] );
+
+		/**
+		 * Fires after a group member is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_User          $user     The updated member.
+		 * @param BP_Groups_Member $member   The group member object.
+		 * @param BP_Groups_Group  $group    The group object.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_members_delete_item', $user, $member, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a group member.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to view a group membership.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['user_id'] );
+
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			return new WP_Error(
+				'bp_rest_group_member_invalid_id',
+				__( 'Invalid group member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$group = $this->groups_endpoint->get_group_object( $request['group_id'] );
+		if ( true === $retval && ! $group instanceof BP_Groups_Group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Site administrators can do anything.
+		if ( true === $retval && bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = true;
+		} elseif ( true === $retval ) {
+
+			$loggedin_user_id = bp_loggedin_user_id();
+
+			if ( $user->ID !== $loggedin_user_id ) {
+				if ( true === $retval && ! groups_is_user_admin( $loggedin_user_id, $group->id ) && ! groups_is_user_mod( $loggedin_user_id, $group->id ) ) {
+					$retval = new WP_Error(
+						'bp_rest_authorization_required',
+						__( 'Sorry, you need to be logged in to view a group membership.', 'buddypress' ),
+						array(
+							'status' => rest_authorization_required_code(),
+						)
+					);
+				}
+			} else {
+				// Special case for self-removal: don't allow if it'd leave a group with no admins.
+				$user             = bp_rest_get_user( $request['user_id'] );
+				$group            = $this->groups_endpoint->get_group_object( $request['group_id'] );
+				$loggedin_user_id = bp_loggedin_user_id();
+
+				$group_admins = groups_get_group_admins( $group->id );
+				if ( true === $retval && 1 === count( $group_admins ) && $loggedin_user_id === $group_admins[0]->user_id && $user->ID === $loggedin_user_id ) {
+					$retval = new WP_Error(
+						'bp_rest_authorization_required',
+						__( 'Sorry, you need to be logged in to view a group membership.', 'buddypress' ),
+						array(
+							'status' => rest_authorization_required_code(),
+						)
+					);
+				}
+			}
+		}
+
+		/**
+		 * Filter the group members `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_members_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares group member data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Groups_Member $group_member Group member object.
+	 * @param WP_REST_Request  $request      Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $group_member, $request ) {
+		$user        = bp_rest_get_user( $group_member->user_id );
+		$context     = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$member_data = $this->members_endpoint->user_data( $user, $context );
+
+		// Merge both info.
+		$data = array_merge(
+			$member_data,
+			array(
+				'is_mod'        => (bool) $group_member->is_mod,
+				'is_admin'      => (bool) $group_member->is_admin,
+				'is_banned'     => (bool) $group_member->is_banned,
+				'is_confirmed'  => (bool) $group_member->is_confirmed,
+				'date_modified' => bp_rest_prepare_date_response( $group_member->date_modified ),
+			)
+		);
+
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $user ) );
+
+		/**
+		 * Filter a group member value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response $response      The response data.
+		 * @param WP_REST_Request  $request       Request used to generate the response.
+		 * @param BP_Groups_Member $group_member  Group member object.
+		 */
+		return apply_filters( 'bp_rest_group_members_prepare_value', $response, $request, $group_member );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_User $user User object.
+	 * @return array
+	 */
+	protected function prepare_links( $user ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+		$url  = $base . $user->ID;
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $url ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array   $links The prepared links of the REST response.
+		 * @param WP_User $user  User object.
+		 */
+		return apply_filters( 'bp_rest_group_members_prepare_links', $links, $user );
+	}
+
+	/**
+	 * GET arguments for the endpoint's CREATABLE, EDITABLE & DELETABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_method( $method = WP_REST_Server::CREATABLE ) {
+		$key  = 'get_item';
+		$args = array(
+			'context' => $this->get_context_param(
+				array(
+					'default' => 'edit',
+				)
+			),
+		);
+
+		if ( WP_REST_Server::CREATABLE === $method || WP_REST_Server::EDITABLE === $method ) {
+			$group_roles = array_diff( array_keys( bp_groups_get_group_roles() ), array( 'banned' ) );
+
+			$args['role'] = array(
+				'description'       => __( 'Group role to assign the user to.', 'buddypress' ),
+				'default'           => 'member',
+				'type'              => 'string',
+				'enum'              => $group_roles,
+				'sanitize_callback' => 'sanitize_key',
+				'validate_callback' => 'rest_validate_request_arg',
+			);
+
+			if ( WP_REST_Server::CREATABLE === $method ) {
+				$key             = 'create_item';
+				$schema          = $this->get_item_schema();
+				$args['user_id'] = array_merge(
+					$schema['properties']['id'],
+					array(
+						'description' => __( 'A unique numeric ID for the Member to add to the Group.', 'buddypress' ),
+						'default'     => bp_loggedin_user_id(),
+						'readonly'    => false,
+					)
+				);
+			}
+
+			if ( WP_REST_Server::EDITABLE === $method ) {
+				$key            = 'update_item';
+				$args['action'] = array(
+					'description'       => __( 'Action used to update a group member.', 'buddypress' ),
+					'default'           => 'promote',
+					'type'              => 'string',
+					'enum'              => array( 'promote', 'demote', 'ban', 'unban' ),
+					'sanitize_callback' => 'sanitize_key',
+					'validate_callback' => 'rest_validate_request_arg',
+				);
+			}
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $args Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_group_members_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the group member schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+
+		// Get schema from members.
+		$schema = $this->members_endpoint->get_item_schema();
+
+		// Set title to this endpoint.
+		$schema['title'] = 'bp_group_members';
+
+		$schema['properties']['is_mod'] = array(
+			'context'     => array( 'view', 'edit' ),
+			'description' => __( '`1` if this member is a Group moderator, `0` otherwise.', 'buddypress' ),
+			'type'        => 'integer',
+			'enum'        => array( 0, 1 ),
+		);
+
+		$schema['properties']['is_banned'] = array(
+			'context'     => array( 'view', 'edit' ),
+			'description' => __( '`1` if this member has been banned from the Group, `0` otherwise.', 'buddypress' ),
+			'type'        => 'integer',
+			'enum'        => array( 0, 1 ),
+		);
+
+		$schema['properties']['is_admin'] = array(
+			'context'     => array( 'view', 'edit' ),
+			'description' => __( '`1` if this member is a Group administrator, `0` otherwise.', 'buddypress' ),
+			'type'        => 'integer',
+			'enum'        => array( 0, 1 ),
+		);
+
+		$schema['properties']['is_confirmed'] = array(
+			'context'     => array( 'view', 'edit' ),
+			'description' => __( '`1` if the membership of this user has been confirmed, `0` otherwise.', 'buddypress' ),
+			'type'        => 'integer',
+			'enum'        => array( 0, 1 ),
+		);
+
+		$schema['properties']['date_modified'] = array(
+			'context'     => array( 'view', 'edit' ),
+			'description' => __( "The date of the last time the membership of this user was modified, in the site's timezone.", 'buddypress' ),
+			'type'        => 'string',
+			'format'      => 'date-time',
+		);
+
+		/**
+		 * Filters the group membership schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_group_members_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections of group memberships.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+		$statuses                     = array( 'last_joined', 'first_joined', 'alphabetical' );
+
+		if ( bp_is_active( 'activity' ) ) {
+			$statuses[] = 'group_activity';
+		}
+
+		$params['status'] = array(
+			'description'       => __( 'Sort the order of results by the status of the group members.', 'buddypress' ),
+			'default'           => 'last_joined',
+			'type'              => 'string',
+			'enum'              => $statuses,
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['roles'] = array(
+			'description'       => __( 'Ensure result set includes specific Group roles.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array(
+				'type' => 'string',
+				'enum' => array_keys( bp_groups_get_group_roles() ),
+			),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude'] = array(
+			'description'       => __( 'Ensure result set excludes specific member IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude_admins'] = array(
+			'description'       => __( 'Whether results should exclude group admins and mods.', 'buddypress' ),
+			'default'           => true,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude_banned'] = array(
+			'description'       => __( 'Whether results should exclude banned group members.', 'buddypress' ),
+			'default'           => true,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_group_members_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php
new file mode 100644
index 000000000..0235a6344
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php
@@ -0,0 +1,906 @@
+<?php
+/**
+ * BP REST: BP_REST_Group_Membership_Request_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Group Membership Request Endpoint.
+ *
+ * Use /groups/{group_id}/membership-request
+ * Use /groups/membership-request/{request_id}
+ * Use /groups/{group_id}/membership-request/{user_id}
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Group_Membership_Request_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Reuse some parts of the BP_REST_Groups_Endpoint class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_Groups_Endpoint
+	 */
+	protected $groups_endpoint;
+
+	/**
+	 * Reuse some parts of the BP_REST_Group_Invites_Endpoint class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_Group_Invites_Endpoint
+	 */
+	protected $invites_endpoint;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace              = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base              = buddypress()->groups->id . '/membership-requests';
+		$this->groups_endpoint        = new BP_REST_Groups_Endpoint();
+		$this->group_members_endpoint = new BP_REST_Group_Membership_Endpoint();
+		$this->invites_endpoint       = new BP_REST_Group_Invites_Endpoint();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<request_id>[\d]+)',
+			array(
+				'args'   => array(
+					'request_id' => array(
+						'description' => __( 'A unique numeric ID for the group membership request.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => array(
+						'context' => $this->get_context_param(
+							array(
+								'default' => 'view',
+							)
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Fetch pending group membership requests.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'item_id'  => $request['group_id'],
+			'user_id'  => $request['user_id'],
+			'per_page' => $request['per_page'],
+			'page'     => $request['page'],
+		);
+
+		// If the query is not restricted by group or user, limit it to the current user, if not an admin.
+		if ( ! $args['item_id'] && ! $args['user_id'] && ! bp_current_user_can( 'bp_moderate' ) ) {
+			$args['user_id'] = bp_loggedin_user_id();
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_group_membership_requests_get_items_query_args', $args, $request );
+
+		$group_requests = groups_get_requests( $args );
+
+		$retval = array();
+		foreach ( $group_requests as $group_request ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group_request, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, count( $group_requests ), $args['per_page'] );
+
+		/**
+		 * Fires after a list of group membership request is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array of BP_Invitations $group_requests List of membership requests.
+		 * @param WP_REST_Response        $response       The response data.
+		 * @param WP_REST_Request         $request        The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_membership_requests_get_items', $group_requests, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to fetch group membership requests.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval      = true;
+		$user_id     = bp_loggedin_user_id();
+		$user_id_arg = $request['user_id'];
+		$group       = $this->groups_endpoint->get_group_object( $request['group_id'] );
+
+		// If the query is not restricted by group or user, limit it to the current user, if not an admin.
+		if ( ! $request['group_id'] && ! $request['user_id'] && ! bp_current_user_can( 'bp_moderate' ) ) {
+			$user_id_arg = $user_id;
+		}
+		$user = bp_rest_get_user( $user_id_arg );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to view membership requests.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		// If a group ID has been passed, check that it is valid.
+		if ( true === $retval && $request['group_id'] && ! $group instanceof BP_Groups_Group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// If a user ID has been passed, check that it is valid.
+		if ( true === $retval && $user_id_arg && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Site administrators can do anything. Otherwise, the user must manage the subject group or be the requester.
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& ! ( $request['group_id'] && groups_is_user_admin( $user_id, $request['group_id'] ) )
+			&& $user_id_arg !== $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_cannot_get_items',
+				__( 'Sorry, you are not allowed to view membership requests.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Fetch a sepcific pending group membership request by ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$group_request = $this->fetch_single_membership_request( $request['request_id'] );
+		$retval        = $this->prepare_response_for_collection(
+			$this->prepare_item_for_response( $group_request, $request )
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a membership request is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Invitation     $group_request Membership request object.
+		 * @param WP_REST_Response  $response      The response data.
+		 * @param WP_REST_Request   $request       The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_membership_requests_get_item', $group_request, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to fetch group membership request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval        = true;
+		$user_id       = bp_loggedin_user_id();
+		$group_request = $this->fetch_single_membership_request( $request['request_id'] );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to get a membership.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && ! $group_request ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_invalid_id',
+				__( 'Invalid group membership request ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& $user_id !== $group_request->user_id
+			&& ! groups_is_user_admin( $user_id, $group_request->item_id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_cannot_get_item',
+				__( 'Sorry, you are not allowed to view a membership request.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group membership request `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Request membership to a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		$user_id_arg = $request['user_id'] ? $request['user_id'] : bp_loggedin_user_id();
+		$user        = bp_rest_get_user( $user_id_arg );
+		$group       = $this->groups_endpoint->get_group_object( $request['group_id'] );
+
+		// Avoid duplicate requests.
+		if ( groups_check_for_membership_request( $user->ID, $group->id ) ) {
+			return new WP_Error(
+				'bp_rest_group_membership_requests_duplicate_request',
+				__( 'There is already a request to this member.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$request_id = groups_send_membership_request(
+			array(
+				'group_id' => $group->id,
+				'user_id'  => $user->ID,
+				'content'  => $request['message'],
+			)
+		);
+
+		if ( ! $request_id ) {
+			return new WP_Error(
+				'bp_rest_group_membership_requests_cannot_create_item',
+				__( 'Could not send membership request to this group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$invite = new BP_Invitation( $request_id );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $invite, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group membership request is made via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_User          $user     The user.
+		 * @param BP_Invitation    $invite   The invitation object.
+		 * @param BP_Groups_Group  $group    The group object.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_membership_requests_create_item', $user, $invite, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to make a group membership request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval      = true;
+		$user_id     = bp_loggedin_user_id();
+		$user_id_arg = $request['user_id'] ? $request['user_id'] : bp_loggedin_user_id();
+		$user        = bp_rest_get_user( $user_id_arg );
+		$group       = $this->groups_endpoint->get_group_object( $request['group_id'] );
+
+		// User must be logged in.
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to create a membership request.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		// Check for valid user.
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_group_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Check for valid group.
+		if ( true === $retval && ! $group instanceof BP_Groups_Group ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Normal users can only extend invitations on their own behalf.
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& $user_id !== $user_id_arg ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_cannot_create_item',
+				__( 'User may not extend requests on behalf of another user.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group membership request `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Accept or reject a pending group membership request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		$group_request = $this->fetch_single_membership_request( $request['request_id'] );
+		$success       = groups_accept_membership_request( false, $group_request->user_id, $group_request->item_id );
+		if ( ! $success ) {
+			return new WP_Error(
+				'bp_rest_group_member_request_cannot_update_item',
+				__( 'There was an error accepting the membership request.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$g_member = new BP_Groups_Member( $group_request->user_id, $group_request->item_id );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->group_members_endpoint->prepare_item_for_response( $g_member, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+		$group    = $this->groups_endpoint->get_group_object( $group_request->item_id );
+
+		/**
+		 * Fires after a group membership request is accepted/rejected via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Groups_Member $g_member The groups member object.
+		 * @param BP_Groups_Group  $group    The group object.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_membership_requests_update_item', $g_member, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to accept a group membership request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval        = true;
+		$user_id       = bp_loggedin_user_id();
+		$group_request = $this->fetch_single_membership_request( $request['request_id'] );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to make an update.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && ! $group_request ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_invalid_id',
+				__( 'Invalid group membership request ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& ! groups_is_user_admin( $user_id, $group_request->item_id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_member_request_cannot_update_item',
+				__( 'User is not allowed to approve membership requests to this group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group membership request `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request can continue.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Reject a pending group membership request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get invite.
+		$group_request = $this->fetch_single_membership_request( $request['request_id'] );
+
+		// Set the invite response before it is deleted.
+		$previous = $this->prepare_item_for_response( $group_request, $request );
+
+		/**
+		 * If this change is being initiated by the requesting user,
+		 * use the `delete` function.
+		 */
+		if ( bp_loggedin_user_id() === $group_request->user_id ) {
+			$success = groups_delete_membership_request( false, $group_request->user_id, $group_request->item_id );
+			/**
+			 * Otherwise, this change is being initiated by a group admin or site admin,
+			 * and we should use the `reject` function.
+			 */
+		} else {
+			$success = groups_reject_membership_request( false, $group_request->user_id, $group_request->item_id );
+		}
+
+		if ( ! $success ) {
+			return new WP_Error(
+				'bp_rest_group_membership_requests_cannot_delete_item',
+				__( 'There was an error rejecting the membership request.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		$user  = bp_rest_get_user( $group_request->user_id );
+		$group = $this->groups_endpoint->get_group_object( $group_request->item_id );
+
+		/**
+		 * Fires after a group membership request is rejected via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_User          $user     The user.
+		 * @param BP_Groups_Group  $group    The group object.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_group_membership_requests_delete_item', $user, $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to reject a group membership request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval        = true;
+		$user_id       = bp_loggedin_user_id();
+		$group_request = $this->fetch_single_membership_request( $request['request_id'] );
+
+		if ( ! $user_id ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to delete a request.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		if ( true === $retval && ! $group_request ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_invalid_id',
+				__( 'Invalid group membership request ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval
+			&& ! bp_current_user_can( 'bp_moderate' )
+			&& $user_id !== $group_request->user_id
+			&& ! groups_is_user_admin( $user_id, $group_request->item_id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_membership_requests_cannot_delete_item',
+				__( 'User is not allowed to delete this membership request.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		/**
+		 * Filter the group membership request `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Whether the request may proceed.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares group invitation data to return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Invitation   $invite  Invite object.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $invite, $request ) {
+		$data = array(
+			'id'            => $invite->id,
+			'user_id'       => $invite->user_id,
+			'invite_sent'   => $invite->invite_sent,
+			'inviter_id'    => $invite->inviter_id,
+			'group_id'      => $invite->item_id,
+			'date_modified' => bp_rest_prepare_date_response( $invite->date_modified ),
+			'type'          => $invite->type,
+			'message'       => array(
+				'raw'      => $invite->content,
+				'rendered' => apply_filters( 'the_content', $invite->content ),
+			),
+		);
+
+		$context  = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $invite ) );
+
+		/**
+		 * Filter a group invite value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 * @param BP_Invitation    $invite   The invite object.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_prepare_value', $response, $request, $invite );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Invitation $invite Invite object.
+	 * @return array Links for the given plugin.
+	 */
+	protected function prepare_links( $invite ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+		$url  = $base . $invite->id;
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $url ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+			'user'       => array(
+				'href'       => rest_url( bp_rest_get_user_url( $invite->user_id ) ),
+				'embeddable' => true,
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array         $links  The prepared links of the REST response.
+		 * @param BP_Invitation $invite Invite object.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_prepare_links', $links, $invite );
+	}
+
+	/**
+	 * Helper function to fetch a single group invite.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $request_id The ID of the request you wish to fetch.
+	 * @return BP_Invitation|bool $group_request Membership request if found, false otherwise.
+	 */
+	public function fetch_single_membership_request( $request_id = 0 ) {
+		$group_requests = groups_get_requests( array( 'id' => $request_id ) );
+		if ( $group_requests ) {
+			return current( $group_requests );
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Endpoint args.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method ) {
+			$key = 'create_item';
+
+			$args['message']['type']        = 'string';
+			$args['message']['description'] = __( 'The optional message to send to the invited user.', 'buddypress' );
+			$args['group_id']['required']   = true;
+			$args['user_id']['default']     = bp_loggedin_user_id();
+
+			// Remove arguments not needed for the CREATABLE transport method.
+			unset( $args['message']['properties'], $args['date_modified'], $args['type'] );
+
+		} elseif ( WP_REST_Server::EDITABLE === $method ) {
+			$key = 'update_item';
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_group_membership_requests_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the group membership request schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+
+		// Get schema from the membership endpoint.
+		$schema = $this->invites_endpoint->get_item_schema();
+
+		// Set title to this endpoint.
+		$schema['title'] = 'bp_group_membership_request';
+
+		// Adapt some item schema property descriptions to this endpoint.
+		$schema['properties']['user_id']['description']  = __( 'The ID of the user who requested a Group membership.', 'buddypress' );
+		$schema['properties']['group_id']['description'] = __( 'The ID of the group the user requested a membership for.', 'buddypress' );
+		$schema['properties']['type']['default']         = 'request';
+
+		// Remove unused properties.
+		unset( $schema['properties']['invite_sent'], $schema['properties']['inviter_id'] );
+
+		/**
+		 * Filters the group membership request schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections of group invites.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = $this->invites_endpoint->get_collection_params();
+		$params['context']['default'] = 'view';
+
+		// Adapt some item schema property descriptions to this endpoint.
+		$params['user_id']['description']  = __( 'Return only Membership requests made by a specific user.', 'buddypress' );
+		$params['group_id']['description'] = __( 'The ID of the group the user requested a membership for.', 'buddypress' );
+
+		// Remove unused properties.
+		unset( $params['invite_sent'], $params['inviter_id'] );
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_group_membership_requests_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-groups-endpoint.php b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-groups-endpoint.php
new file mode 100644
index 000000000..b23a2ce50
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/classes/class-bp-rest-groups-endpoint.php
@@ -0,0 +1,1240 @@
+<?php
+/**
+ * BP REST: BP_REST_Groups_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Groups endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Groups_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = buddypress()->groups->id;
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<id>[\d]+)',
+			array(
+				'args'   => array(
+					'id' => array(
+						'description' => __( 'A unique numeric ID for the Group.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => array(
+						'context' => $this->get_context_param(
+							array(
+								'default' => 'view',
+							)
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve groups.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Request List of groups object data.
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'type'         => $request['type'],
+			'order'        => $request['order'],
+			'fields'       => $request['fields'],
+			'orderby'      => $request['orderby'],
+			'user_id'      => $request['user_id'],
+			'include'      => $request['include'],
+			'parent_id'    => $request['parent_id'],
+			'exclude'      => $request['exclude'],
+			'search_terms' => $request['search'],
+			'meta_query'   => $request['meta'], // phpcs:ignore
+			'group_type'   => $request['group_type'],
+			'show_hidden'  => $request['show_hidden'],
+			'per_page'     => $request['per_page'],
+			'status'       => $request['status'],
+			'page'         => $request['page'],
+		);
+
+		if ( empty( $request['parent_id'] ) ) {
+			$args['parent_id'] = null;
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_groups_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$groups = groups_get_groups( $args );
+
+		// Users need (at least, should we be more restrictive ?) to be logged in to use the edit context.
+		if ( 'edit' === $request->get_param( 'context' ) && ! is_user_logged_in() ) {
+			$request->set_param( 'context', 'view' );
+		}
+
+		$retval = array();
+		foreach ( $groups['groups'] as $group ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, $groups['total'], $args['per_page'] );
+
+		/**
+		 * Fires after a list of groups is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $groups   Fetched groups.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_groups_get_items', $groups, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to group items.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! $this->can_see_hidden_groups( $request ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you cannot view hidden groups.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the groups `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_groups_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Retrieve a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_item( $request ) {
+		$group = $this->get_group_object( $request );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Groups_Group  $group    Fetched group.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_groups_get_item', $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to get information about a specific group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = true;
+		$group  = $this->get_group_object( $request );
+
+		if ( empty( $group->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! $this->can_see( $group ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you cannot view the group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the groups `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_groups_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Create a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// If no group name.
+		if ( empty( $request['name'] ) ) {
+			return new WP_Error(
+				'bp_rest_create_group_empty_name',
+				__( 'Please, enter the name of group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$group_id = groups_create_group( $this->prepare_item_for_database( $request ) );
+
+		if ( ! is_numeric( $group_id ) ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_create_group',
+				__( 'Cannot create new group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$group         = $this->get_group_object( $group_id );
+		$fields_update = $this->update_additional_fields_for_object( $group, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group is created via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Groups_Group  $group    The created group.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_groups_create_item', $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to create a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! ( is_user_logged_in() && bp_user_can_create_groups() ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to create groups.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the groups `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_groups_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$group_id = groups_create_group( $this->prepare_item_for_database( $request ) );
+
+		if ( ! is_numeric( $group_id ) ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_group',
+				__( 'Cannot update existing group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$group         = $this->get_group_object( $group_id );
+		$fields_update = $this->update_additional_fields_for_object( $group, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $group, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a group is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Groups_Group  $group    The updated group.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_groups_update_item', $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to update this group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$group = $this->get_group_object( $request );
+
+		if ( true === $retval && empty( $group->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// If group author does not match logged_in user, block update.
+		if ( true === $retval && ! $this->can_user_delete_or_update( $group ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to update this group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the groups `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_groups_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the group before it's deleted.
+		$group    = $this->get_group_object( $request );
+		$previous = $this->prepare_item_for_response( $group, $request );
+
+		if ( ! groups_delete_group( $group->id ) ) {
+			return new WP_Error(
+				'bp_rest_group_cannot_delete',
+				__( 'Could not delete the group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after a group is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param object           $group    The deleted group.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_groups_delete_item', $group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to delete this group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$group = $this->get_group_object( $request );
+
+		if ( true === $retval && empty( $group->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_group_invalid_id',
+				__( 'Invalid group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! $this->can_user_delete_or_update( $group ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to delete this group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the groups `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_groups_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares group data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Groups_Group $item     Group object.
+	 * @param WP_REST_Request $request  Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $item, $request ) {
+		$data = array(
+			'id'                 => $item->id,
+			'creator_id'         => bp_get_group_creator_id( $item ),
+			'parent_id'          => $item->parent_id,
+			'date_created'       => bp_rest_prepare_date_response( $item->date_created ),
+			'description'        => array(
+				'raw'      => $item->description,
+				'rendered' => bp_get_group_description( $item ),
+			),
+			'enable_forum'       => bp_group_is_forum_enabled( $item ),
+			'link'               => bp_get_group_permalink( $item ),
+			'name'               => bp_get_group_name( $item ),
+			'slug'               => bp_get_group_slug( $item ),
+			'status'             => bp_get_group_status( $item ),
+			'admins'             => array(),
+			'mods'               => array(),
+			'total_member_count' => null,
+			'last_activity'      => null,
+		);
+
+		// Get item schema.
+		$schema = $this->get_item_schema();
+
+		// Avatars.
+		if ( ! empty( $schema['properties']['avatar_urls'] ) ) {
+			$data['avatar_urls'] = array(
+				'thumb' => bp_core_fetch_avatar(
+					array(
+						'html'    => false,
+						'object'  => 'group',
+						'item_id' => $item->id,
+						'type'    => 'thumb',
+					)
+				),
+				'full'  => bp_core_fetch_avatar(
+					array(
+						'html'    => false,
+						'object'  => 'group',
+						'item_id' => $item->id,
+						'type'    => 'full',
+					)
+				),
+			);
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+
+		// If this is the 'edit' context, fill in more details--similar to "populate_extras".
+		if ( 'edit' === $context ) {
+			$data['total_member_count'] = groups_get_groupmeta( $item->id, 'total_member_count' );
+			$data['last_activity']      = bp_rest_prepare_date_response( groups_get_groupmeta( $item->id, 'last_activity' ) );
+
+			// Add admins and moderators to their respective arrays.
+			$admin_mods = groups_get_group_members(
+				array(
+					'group_id'   => $item->id,
+					'group_role' => array(
+						'admin',
+						'mod',
+					),
+				)
+			);
+
+			foreach ( (array) $admin_mods['members'] as $user ) {
+				// Make sure to unset private data.
+				$private_keys = array_intersect(
+					array_keys( get_object_vars( $user ) ),
+					array(
+						'user_pass',
+						'user_email',
+						'user_activation_key',
+					)
+				);
+
+				foreach ( $private_keys as $private_key ) {
+					unset( $user->{$private_key} );
+				}
+
+				if ( ! empty( $user->is_admin ) ) {
+					$data['admins'][] = $user;
+				} else {
+					$data['mods'][] = $user;
+				}
+			}
+		}
+
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $item ) );
+
+		/**
+		 * Filter a group value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 * @param BP_Groups_Group  $item     Group object.
+		 */
+		return apply_filters( 'bp_rest_groups_prepare_value', $response, $request, $item );
+	}
+
+	/**
+	 * Prepare a group for create or update.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return stdClass|WP_Error Object or WP_Error.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_group = new stdClass();
+		$schema         = $this->get_item_schema();
+		$group          = $this->get_group_object( $request );
+
+		// Group ID.
+		if ( ! empty( $schema['properties']['id'] ) && ! empty( $group->id ) ) {
+			$prepared_group->group_id = $group->id;
+		}
+
+		// Group Creator ID.
+		if ( ! empty( $schema['properties']['creator_id'] ) && isset( $request['creator_id'] ) ) {
+			$prepared_group->creator_id = (int) $request['creator_id'];
+
+			// Fallback on the existing creator id in case of an update.
+		} elseif ( isset( $group->creator_id ) && $group->creator_id ) {
+			$prepared_group->creator_id = (int) $group->creator_id;
+
+			// Fallback on the current user otherwise.
+		} else {
+			$prepared_group->creator_id = bp_loggedin_user_id();
+		}
+
+		// Group Slug.
+		if ( ! empty( $schema['properties']['slug'] ) && isset( $request['slug'] ) ) {
+			$prepared_group->slug = $request['slug'];
+		}
+
+		// Group Name.
+		if ( ! empty( $schema['properties']['name'] ) && isset( $request['name'] ) ) {
+			$prepared_group->name = $request['name'];
+		}
+
+		// Do additional checks for the Group's slug.
+		if ( WP_REST_Server::CREATABLE === $request->get_method() || ( isset( $group->slug ) && isset( $prepared_group->slug ) && $group->slug !== $prepared_group->slug ) ) {
+			// Fallback on the group name if the slug is not defined.
+			if ( ! isset( $prepared_group->slug ) && ! isset( $group->slug ) ) {
+				$prepared_group->slug = $prepared_group->name;
+			}
+
+			// Make sure it is unique and sanitize it.
+			$prepared_group->slug = groups_check_slug( sanitize_title( esc_attr( $prepared_group->slug ) ) );
+		}
+
+		// Group description.
+		if ( ! empty( $schema['properties']['description'] ) && isset( $request['description'] ) ) {
+			if ( is_string( $request['description'] ) ) {
+				$prepared_group->description = $request['description'];
+			} elseif ( isset( $request['description']['raw'] ) ) {
+				$prepared_group->description = $request['description']['raw'];
+			}
+		}
+
+		// Group status.
+		if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
+			$prepared_group->status = $request['status'];
+		}
+
+		// Group Forum Enabled.
+		if ( ! empty( $schema['properties']['enable_forum'] ) && isset( $request['enable_forum'] ) ) {
+			$prepared_group->enable_forum = (bool) $request['enable_forum'];
+		}
+
+		// Group Parent ID.
+		if ( ! empty( $schema['properties']['parent_id'] ) && isset( $request['parent_id'] ) ) {
+			$prepared_group->parent_id = $request['parent_id'];
+		}
+
+		/**
+		 * Filters a group before it is inserted or updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param stdClass        $prepared_group An object prepared for inserting or updating the database.
+		 * @param WP_REST_Request $request        Request object.
+		 */
+		return apply_filters( 'bp_rest_groups_pre_insert_value', $prepared_group, $request );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Groups_Group $group Group object.
+	 * @return array
+	 */
+	protected function prepare_links( $group ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $base . $group->id ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+			'user'       => array(
+				'href'       => rest_url( bp_rest_get_user_url( $group->creator_id ) ),
+				'embeddable' => true,
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $links  The prepared links of the REST response.
+		 * @param BP_Groups_Group $group  Group object.
+		 */
+		return apply_filters( 'bp_rest_groups_prepare_links', $links, $group );
+	}
+
+	/**
+	 * Can a user see a group?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  BP_Groups_Group $group Group object.
+	 * @return bool
+	 */
+	protected function can_see( $group ) {
+
+		// If it is not a hidden/private group, user can see it.
+		if ( 'public' === $group->status ) {
+			return true;
+		}
+
+		// Moderators.
+		if ( bp_current_user_can( 'bp_moderate' ) ) {
+			return true;
+		}
+
+		// User is a member of the group.
+		if ( groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) {
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * See if user can delete or update a group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  BP_Groups_Group $group Group item.
+	 * @return bool
+	 */
+	protected function can_user_delete_or_update( $group ) {
+		return ( bp_current_user_can( 'bp_moderate' ) || bp_loggedin_user_id() === $group->creator_id );
+	}
+
+	/**
+	 * Can this user see hidden groups?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool
+	 */
+	protected function can_see_hidden_groups( $request ) {
+		if ( $request['show_hidden'] ) {
+
+			if ( bp_current_user_can( 'bp_moderate' ) ) {
+				return true;
+			}
+
+			if ( is_user_logged_in() && isset( $request['user_id'] ) && absint( $request['user_id'] ) === bp_loggedin_user_id() ) {
+				return true;
+			}
+
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Get group object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|BP_Groups_Group
+	 */
+	public function get_group_object( $request ) {
+		if ( ! empty( $request['group_id'] ) ) {
+			$group_id = (int) $request['group_id'];
+		} elseif ( is_numeric( $request ) ) {
+			$group_id = $request;
+		} else {
+			$group_id = (int) $request['id'];
+		}
+
+		$group = groups_get_group( $group_id );
+
+		if ( empty( $group ) || empty( $group->id ) ) {
+			return false;
+		}
+
+		return $group;
+	}
+
+	/**
+	 * Edit some arguments for the endpoint's CREATABLE and EDITABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method || WP_REST_Server::EDITABLE === $method ) {
+			$key                         = 'create_item';
+			$args['description']['type'] = 'string';
+
+			if ( WP_REST_Server::EDITABLE === $method ) {
+				$key = 'update_item';
+				unset( $args['slug'] );
+			}
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_groups_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the group schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_groups',
+			'type'       => 'object',
+			'properties' => array(
+				'id'                 => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the Group.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'creator_id'         => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the user who created the Group.', 'buddypress' ),
+					'type'        => 'integer',
+					'default'     => bp_loggedin_user_id(),
+				),
+				'name'               => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The name of the Group.', 'buddypress' ),
+					'type'        => 'string',
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'slug'               => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The URL-friendly slug for the Group.', 'buddypress' ),
+					'type'        => 'string',
+					'arg_options' => array(
+						'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+					),
+				),
+				'link'               => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The permalink to the Group on the site.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'readonly'    => true,
+				),
+				'description'        => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The description of the Group.', 'buddypress' ),
+					'type'        => 'object',
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+						'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Content for the description of the Group, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML content for the description of the Group, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'status'             => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The status of the Group.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => buddypress()->groups->valid_status,
+					'default'     => 'public',
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'enable_forum'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the Group has a forum enabled or not.', 'buddypress' ),
+					'type'        => 'boolean',
+				),
+				'parent_id'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'ID of the parent Group.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'date_created'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( "The date the Group was created, in the site's timezone.", 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'string',
+					'format'      => 'date-time',
+				),
+				'admins'             => array(
+					'context'     => array( 'edit' ),
+					'description' => __( 'Group administrators.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'array',
+					'items'       => array(
+						'type' => 'object',
+					),
+				),
+				'mods'               => array(
+					'context'     => array( 'edit' ),
+					'description' => __( 'Group moderators.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'array',
+					'items'       => array(
+						'type' => 'object',
+					),
+				),
+				'total_member_count' => array(
+					'context'     => array( 'edit' ),
+					'description' => __( 'Count of all Group members.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'last_activity'      => array(
+					'context'     => array( 'edit' ),
+					'description' => __( "The date the Group was last active, in the site's timezone.", 'buddypress' ),
+					'type'        => 'string',
+					'readonly'    => true,
+					'format'      => 'date-time',
+				),
+			),
+		);
+
+		// Avatars.
+		if ( ! bp_disable_group_avatar_uploads() ) {
+			$avatar_properties = array();
+
+			$avatar_properties['full'] = array(
+				/* translators: Full image size for the group Avatar */
+				'description' => sprintf( __( 'Avatar URL with full image size (%1$d x %2$d pixels).', 'buddypress' ), number_format_i18n( bp_core_avatar_full_width() ), number_format_i18n( bp_core_avatar_full_height() ) ),
+				'type'        => 'string',
+				'format'      => 'uri',
+				'context'     => array( 'view', 'edit' ),
+			);
+
+			$avatar_properties['thumb'] = array(
+				/* translators: Thumb imaze size for the group Avatar */
+				'description' => sprintf( __( 'Avatar URL with thumb image size (%1$d x %2$d pixels).', 'buddypress' ), number_format_i18n( bp_core_avatar_thumb_width() ), number_format_i18n( bp_core_avatar_thumb_height() ) ),
+				'type'        => 'string',
+				'format'      => 'uri',
+				'context'     => array( 'view', 'edit' ),
+			);
+
+			$schema['properties']['avatar_urls'] = array(
+				'description' => __( 'Avatar URLs for the group.', 'buddypress' ),
+				'type'        => 'object',
+				'context'     => array( 'view', 'edit' ),
+				'readonly'    => true,
+				'properties'  => $avatar_properties,
+			);
+		}
+
+		/**
+		 * Filters the group schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_group_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections of groups.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		$params['type'] = array(
+			'description'       => __( 'Shorthand for certain orderby/order combinations.', 'buddypress' ),
+			'default'           => 'active',
+			'type'              => 'string',
+			'enum'              => array( 'active', 'newest', 'alphabetical', 'random', 'popular' ),
+			'sanitize_callback' => 'sanitize_text_field',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['order'] = array(
+			'description'       => __( 'Order sort attribute ascending or descending.', 'buddypress' ),
+			'default'           => 'desc',
+			'type'              => 'string',
+			'enum'              => array( 'asc', 'desc' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['orderby'] = array(
+			'description'       => __( 'Order Groups by which attribute.', 'buddypress' ),
+			'default'           => 'date_created',
+			'type'              => 'string',
+			'enum'              => array( 'date_created', 'last_activity', 'total_member_count', 'name', 'random' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['status'] = array(
+			'description'       => __( 'Group statuses to limit results to.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array(
+				'enum' => buddypress()->groups->valid_status,
+				'type' => 'string',
+			),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Pass a user_id to limit to only Groups that this user is a member of.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['parent_id'] = array(
+			'description'       => __( 'Get Groups that are children of the specified Group(s) IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		// @todo Confirm what's the proper sanitization here.
+		$params['meta'] = array(
+			'description'       => __( 'Get Groups based on their meta data information.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'string' ),
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['include'] = array(
+			'description'       => __( 'Ensure result set includes Groups with specific IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude'] = array(
+			'description'       => __( 'Ensure result set excludes Groups with specific IDs', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['group_type'] = array(
+			'description'       => __( 'Limit results set to a certain Group type.', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'enum'              => bp_groups_get_group_types(),
+			'sanitize_callback' => 'bp_rest_sanitize_group_types',
+			'validate_callback' => 'bp_rest_validate_group_types',
+		);
+
+		$params['enable_forum'] = array(
+			'description'       => __( 'Whether the Group has a forum enabled or not.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['show_hidden'] = array(
+			'description'       => __( 'Whether results should include hidden Groups.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_groups_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-groups/js/manage-members.js b/wp-content/plugins/buddypress/bp-groups/js/manage-members.js
new file mode 100644
index 000000000..991722f0b
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/js/manage-members.js
@@ -0,0 +1,549 @@
+/* global bpGroupManageMembersSettings, _, Backbone */
+/* @version 5.0.0 */
+
+( function( wp, bp, $ ) {
+
+	// Bail if not set
+	if ( typeof bpGroupManageMembersSettings === 'undefined' || ! bp.isRestEnabled ) {
+		return;
+	}
+
+	// Copy useful WP Objects into BP.
+	_.extend( bp, _.pick( wp, 'Backbone', 'template' ) );
+
+	bp.Models      = bp.Models || {};
+	bp.Collections = bp.Collections || {};
+	bp.Views       = bp.Views || {};
+
+	/**
+	 * Model for the Member of the displayed group.
+	 */
+	bp.Models.groupMember = Backbone.Model.extend( {
+		defaults: {
+			id: 0,
+			name: '',
+			avatar_urls : {},
+			is_admin: false,
+			is_banned: false,
+			is_confirmed: false,
+			is_mod: false,
+			link: ''
+		},
+		options : {
+			path: bpGroupManageMembersSettings.path,
+			type: 'POST',
+			data: {},
+			dataType: 'json'
+		},
+
+		initialize: function() {
+			// Make sure to reset data & path on model's sync.
+			this.on( 'sync', this.resetRequestOptions, this );
+		},
+
+		resetRequestOptions: function() {
+			this.options.data = {};
+			this.options.path = bpGroupManageMembersSettings.path;
+		},
+
+		sync: function( method, model, options ) {
+			options  = options || {};
+			options.context = this;
+			var data = options.data || {};
+			this.options.path = this.options.path.concat( '/' + model.get( 'id' ) );
+
+			_.extend( options, this.options );
+			_.extend( options.data, data );
+
+			if ( 'delete' === method || 'update' === method ) {
+				if ( 'delete' === method ) {
+					options.headers = { 'X-HTTP-Method-Override': 'DELETE' };
+				} else {
+					options.headers = { 'X-HTTP-Method-Override': 'PUT' };
+				}
+
+				return bp.apiRequest( options );
+			}
+		},
+
+		parse: function( response ) {
+			if ( _.isArray( response ) ) {
+				response = _.first( response );
+			}
+
+			return response;
+		}
+	} );
+
+	/**
+	 * Collection for the Members of the displayed group.
+	 */
+	bp.Collections.groupMembers = Backbone.Collection.extend( {
+		model: bp.Models.groupMember,
+		options : {
+			path: bpGroupManageMembersSettings.path,
+			type: 'GET',
+			data: {},
+			dataType: 'json'
+		},
+
+		initialize: function() {
+			// Make sure to reset data on collection's reset.
+			this.on( 'reset', function() {
+				this.options.data = {};
+			}, this );
+		},
+
+		sync: function( method, collection, options ) {
+			options  = options || {};
+			options.context = this;
+			var data = options.data || {};
+
+			_.extend( options, this.options );
+			_.extend( options.data, data );
+
+			if ( 'read' === method ) {
+				var self = this, success = options.success;
+				options.success = function( data, textStatus, request ) {
+					if ( ! _.isUndefined( request ) ) {
+						self.totalPages        = parseInt( request.getResponseHeader( 'X-WP-TotalPages' ), 10 );
+						self.totalGroupMembers = parseInt( request.getResponseHeader( 'X-WP-Total' ), 10 );
+					}
+
+					self.currentPage = options.data.page || 1;
+
+					if ( success ) {
+						return success.apply( this, arguments );
+					}
+				};
+
+				return bp.apiRequest( options );
+			}
+		}
+	} );
+
+	// Extend wp.Backbone.View with .prepare().
+	bp.View = bp.View || bp.Backbone.View.extend( {
+		prepare: function() {
+			if ( ! _.isUndefined( this.model ) && _.isFunction( this.model.toJSON ) ) {
+				return this.model.toJSON();
+			} else {
+				return {};
+			}
+		}
+	} );
+
+	bp.Views.GroupMemberUpdatingInfo = bp.View.extend( {
+		tagName: 'p',
+		template : bp.template( 'bp-manage-members-updating' ),
+
+		initialize: function() {
+			this.model = new Backbone.Model( {
+				type: this.options.value
+			} );
+		}
+	} );
+
+	bp.Views.GroupMemberErrorInfo = bp.View.extend( {
+		tagName: 'p',
+		template : bp.template( 'bp-manage-members-error' ),
+
+		initialize: function() {
+			this.model = new Backbone.Model( {
+				message: this.options.value
+			} );
+		}
+	} );
+
+	bp.Views.GroupsMembersLabel = bp.Views.GroupMemberUpdatingInfo.extend( {
+		tagName: 'label',
+		template:  bp.template( 'bp-manage-members-label' )
+	} );
+
+	bp.Views.GroupRolesDropDown = bp.View.extend( {
+		tagName: 'select',
+		filters: _.extend( { all: { name: 'All members' } }, bpGroupManageMembersSettings.roles ),
+
+		events: {
+			change: 'change'
+		},
+
+		initialize: function() {
+			if ( this.options.omits ) {
+				this.filters = _.omit( this.filters, this.options.omits );
+			}
+
+			// Build `<option>` elements.
+			this.$el.html( _.chain( this.filters ).map( function( filter, value ) {
+				var optionOutput = $( '<option></option>' ).val( value ).html( filter.name )[0];
+
+				if ( this.options.currentRole && value === this.options.currentRole ) {
+					return {
+						el: $( optionOutput ).prop( 'selected', true )
+					};
+				} else {
+					return {
+						el: optionOutput
+					};
+				}
+			}, this ).pluck( 'el' ).value() );
+		},
+
+		change: function( event ) {
+			var role =  $( event.target ).val(), queryArgs = { roles: [ role ] };
+
+			if ( ! this.collection ) {
+				return;
+			}
+
+			if ( 'all' === role ) {
+				// Unset the current role.
+				this.collection.currentRole = '';
+
+				queryArgs = { 'exclude_admins': false };
+			} else {
+				// Set the current role.
+				this.collection.currentRole = role;
+			}
+
+			// Reset the current page.
+			this.collection.currentPage = 1;
+
+			queryArgs.page = 1;
+			$( '#manage-members-search' ).val( '' );
+
+			this.collection.fetch( {
+				data: queryArgs,
+				reset: true
+			} );
+		}
+	} );
+
+	bp.Views.GroupMembersSearch = bp.View.extend( {
+		className: 'bp-dir-search-form',
+		tagName: 'form',
+		template:  bp.template( 'bp-manage-members-search' ),
+
+		events: {
+			'click #manage-members-search-submit' : 'searchMember'
+		},
+
+		searchMember: function( event ) {
+			event.preventDefault();
+
+			var searchTerms = $( '#manage-members-search' ).val(),
+			    queryArgs = _.extend( this.collection.options.data, { search: searchTerms, page: 1 } );
+
+			// Reset the current page.
+			this.collection.currentPage = 1;
+
+			if ( ! this.collection.currentRole ) {
+				queryArgs.exclude_admins = false;
+			} else {
+				queryArgs.roles = [ this.collection.currentRole ];
+			}
+
+			this.collection.fetch( {
+				data: queryArgs,
+				reset: true
+			} );
+		}
+	} );
+
+	bp.Views.GroupsMembersPagination = bp.View.extend( {
+		className: 'bp-pagination',
+		template:  bp.template( 'bp-manage-members-paginate' ),
+
+		events: {
+			'click .group-members-paginate-button' : 'queryPage'
+		},
+
+		initialize: function() {
+			this.collection.on( 'reset', this.setPagination, this );
+		},
+
+		setPagination: function( collection ) {
+			var attributes = _.pick( collection, [ 'currentPage', 'totalGroupMembers', 'totalPages' ] );
+
+			if ( attributes.totalPages > 1 ) {
+				attributes.nextPage = attributes.currentPage + 1;
+				attributes.prevPage = attributes.currentPage - 1;
+			}
+
+			this.model = new Backbone.Model( attributes );
+			this.render();
+		},
+
+		queryPage: function( event ) {
+			event.preventDefault();
+
+			var page = $( event.currentTarget ).data( 'page' ),
+			    searchTerms = $( '#manage-members-search' ).val(),
+			    queryArgs = _.extend( this.collection.options.data, { search: searchTerms, page: page } );
+
+			if ( ! this.collection.currentRole ) {
+				queryArgs.exclude_admins = false;
+			} else {
+				queryArgs.roles = [ this.collection.currentRole ];
+			}
+
+			this.collection.fetch( {
+				data: queryArgs,
+				reset: true
+			} );
+		}
+	} );
+
+	bp.Views.GroupMembersNoMatches = bp.View.extend( {
+		tagName: 'tr',
+		template : bp.template( 'bp-manage-members-empty-row' )
+	} );
+
+	bp.Views.GroupMembersListRow = bp.View.extend( {
+		tagName: 'tr',
+		template : bp.template( 'bp-manage-members-row' ),
+
+		events: {
+			'click .group-member-actions a' : 'doMemberAction',
+			'change .group-member-edit select' : 'editMemberRole'
+		},
+
+		initialize: function() {
+			var roleProps = [ 'is_admin', 'is_banned', 'is_confirmed', 'is_mod' ],
+				self = this;
+
+			_.each( bpGroupManageMembersSettings.roles, function( props ) {
+				if ( _.isMatch( self.model.attributes,  _.pick( props, roleProps ) ) ) {
+					self.model.set( 'role', _.pick( props, ['id', 'name'] ), { silent: true } );
+				}
+			} );
+
+			this.model.collection.on( 'reset', this.clearRow, this );
+		},
+
+		clearRow: function() {
+			this.views.view.remove();
+		},
+
+		renderEditForm: function() {
+			var userId = this.model.get( 'id' );
+
+			this.render();
+
+			this.views.set( '#edit-group-member-' + userId, [
+				new bp.Views.GroupsMembersLabel( { value: userId, attributes: { 'for': 'group-member' + userId + '-role' } } ),
+				new bp.Views.GroupRolesDropDown( { id: 'group-member' + userId + '-role', omits: [ 'all', 'banned' ], currentRole: this.model.get( 'role' ).id } ).render()
+			] );
+		},
+
+		resetRow: function() {
+			this.model.set( 'editing', false );
+
+			return this.render();
+		},
+
+		getRoleObject: function( roleId ) {
+			var roles = bpGroupManageMembersSettings.roles;
+
+			if ( _.isUndefined( roles[ roleId ] ) ) {
+				return {};
+			}
+
+			return _.extend(
+				{ role: _.pick( roles[ roleId ], ['id', 'name'] ) },
+				_.pick( roles[ roleId ], [ 'is_admin', 'is_banned', 'is_confirmed', 'is_mod' ] )
+			);
+		},
+
+		doMemberAction: function( event ) {
+			event.preventDefault();
+
+			var action = $( event.target ).data( 'action' ), self = this;
+
+			if ( 'edit' === action ) {
+				this.model.set( 'editing', true );
+				return this.renderEditForm();
+
+			} else if ( 'abort' === action ) {
+				return this.resetRow();
+
+			} else if ( 'ban' === action || 'unban' === action ) {
+				var newRole = ( 'ban' === action ) ? 'banned' : 'member', roleObject = this.getRoleObject( newRole );
+
+				if ( ! roleObject ) {
+					return this.resetRow();
+				} else {
+					this.model.set( 'managingBan', true );
+					this.render();
+				}
+
+				// Display user feedback.
+				this.views.set( '#edit-group-member-' + this.model.get( 'id' ), new bp.Views.GroupMemberUpdatingInfo( { value: action } ).render() );
+
+				// Update Group member's role.
+				this.model.save( roleObject, {
+					wait: true,
+					data: { action: action },
+					success: function( model) {
+						self.model.collection.remove( model );
+						return self.clearRow();
+					},
+					error: function( model, response ) {
+						self.views.set( '#edit-group-member-' + model.get( 'id' ), new bp.Views.GroupMemberErrorInfo( { value: response.responseJSON.message } ).render() );
+
+						// Make sure to reset request options.
+						model.resetRequestOptions();
+						model.set( 'managingBan', false );
+					}
+				} );
+			} else if ( 'remove' === action ) {
+				this.model.set( 'removing', true );
+				this.render();
+
+				// Display user feedback.
+				this.views.set( '#edit-group-member-' + this.model.get( 'id' ), new bp.Views.GroupMemberUpdatingInfo( { value: action } ).render() );
+
+				// Destroy the membership model.
+				this.model.destroy( {
+					wait: true,
+					data: {},
+					success: function() {
+						return self.clearRow();
+					},
+					error: function( model, response ) {
+						self.views.set( '#edit-group-member-' + model.get( 'id' ), new bp.Views.GroupMemberErrorInfo( { value: response.responseJSON.message } ).render() );
+
+						// Make sure to reset request options.
+						model.resetRequestOptions();
+						model.set( 'removing', false );
+					}
+				} );
+			}
+		},
+
+		editMemberRole: function( event ) {
+			var newRole = $( event.target ).val(), roleObject = this.getRoleObject( newRole ),
+			    currentRole = this.model.get( 'role').id, roleAction = 'promote', self = this;
+
+			if ( newRole === this.model.get( 'role' ).id || ! roleObject ) {
+				return this.resetRow();
+			}
+
+			this.views.set( '#edit-group-member-' + this.model.get( 'id' ), new bp.Views.GroupMemberUpdatingInfo().render() );
+
+			if ( 'admin' === currentRole || ( 'mod' === currentRole && 'member' === newRole ) ) {
+				roleAction = 'demote';
+			}
+
+			// Update Group member's role
+			this.model.save( roleObject, {
+				wait: true,
+				data: {
+					action: roleAction,
+					role: newRole
+				},
+				success: function( model ) {
+					if ( self.model.collection.currentRole && newRole !== self.model.collection.currentRole ) {
+						self.model.collection.remove( model );
+						return self.clearRow();
+					} else {
+						return self.resetRow();
+					}
+				},
+				error: function( model, response ) {
+					self.views.set( '#edit-group-member-' + model.get( 'id' ), new bp.Views.GroupMemberErrorInfo( { value: response.responseJSON.message } ).render() );
+
+					// Make sure to reset request options.
+					model.resetRequestOptions();
+					model.set( 'editing', false );
+				}
+			} );
+		}
+	} );
+
+	bp.Views.GroupMembersListHeader = bp.View.extend( {
+		tagName: 'thead',
+		template : bp.template( 'bp-manage-members-header' )
+	} );
+
+	bp.Views.GroupMembersListTable = bp.View.extend( {
+		tagName: 'tbody',
+
+		initialize: function() {
+			var preloaded = bpGroupManageMembersSettings.preloaded || {},
+			    models = [];
+
+			this.collection.on( 'reset', this.addListTableRows, this );
+
+			if ( preloaded.body && preloaded.body.length > 0 ) {
+				_.each( preloaded.body, function( member ) {
+					models.push( new bp.Models.groupMember( member ) );
+				} );
+
+				this.collection.currentPage = 1;
+				if ( preloaded.headers && preloaded.headers[ 'X-WP-TotalPages' ] ) {
+					this.collection.totalPages = parseInt( preloaded.headers[ 'X-WP-TotalPages' ], 10 );
+				}
+
+				if ( preloaded.headers && preloaded.headers[ 'X-WP-Total' ] ) {
+					this.collection.totalGroupMembers = parseInt( preloaded.headers[ 'X-WP-Total' ], 10 );
+				}
+
+				this.collection.reset( models );
+			} else {
+				this.collection.fetch( {
+					data: { 'exclude_admins': false },
+					reset: true
+				} );
+			}
+		},
+
+		addListTableRows: function( collection ) {
+			if ( this.views._views ) {
+				var noMembersRow = _.findWhere( this.views._views[''] , { id: 'bp-no-group-members' } );
+
+				if ( noMembersRow ) {
+					noMembersRow.remove();
+				}
+			}
+
+			if ( ! collection.length ) {
+				this.views.add( new bp.Views.GroupMembersNoMatches( { id: 'bp-no-group-members' } ) );
+			} else {
+				_.each( collection.models, function( member ) {
+					this.views.add( new bp.Views.GroupMembersListRow( { model: member } ) );
+				}, this );
+			}
+		}
+	} );
+
+	bp.Views.GroupMembersUI = bp.View.extend( {
+		className: 'group-members',
+
+		initialize: function() {
+			var groupMembers = new bp.Collections.groupMembers();
+
+			// Set filters.
+			this.views.set( '#group-roles-filter', [
+				new bp.Views.GroupsMembersLabel( { attributes: { 'for': 'group-members-role-filter' } } ),
+				new bp.Views.GroupRolesDropDown( { id: 'group-members-role-filter', collection: groupMembers } )
+			] );
+
+			// Set the search form.
+			this.views.set( '#group-members-search-form', new bp.Views.GroupMembersSearch( { id: 'group-members-search', collection: groupMembers } ) );
+
+			// Set Paginate links.
+			this.views.set( '#group-members-pagination', new bp.Views.GroupsMembersPagination( { collection: groupMembers } ) );
+
+			// Set Group members list header and body.
+			this.views.set( '#group-members-list-table', [
+				new bp.Views.GroupMembersListHeader(),
+				new bp.Views.GroupMembersListTable( { collection: groupMembers } )
+			] );
+		}
+	} );
+
+	// Inject the UI to manage Group Members into the DOM.
+	bp.manageGroupMembersUI = new bp.Views.GroupMembersUI( { el:'#group-manage-members-ui' } ).render();
+
+} )( window.wp || {}, window.bp || {}, jQuery );
diff --git a/wp-content/plugins/buddypress/bp-groups/js/manage-members.min.js b/wp-content/plugins/buddypress/bp-groups/js/manage-members.min.js
new file mode 100644
index 000000000..159f2ce7b
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-groups/js/manage-members.min.js
@@ -0,0 +1 @@
+!function(e,t,i){"undefined"!=typeof bpGroupManageMembersSettings&&t.isRestEnabled&&(_.extend(t,_.pick(e,"Backbone","template")),t.Models=t.Models||{},t.Collections=t.Collections||{},t.Views=t.Views||{},t.Models.groupMember=Backbone.Model.extend({defaults:{id:0,name:"",avatar_urls:{},is_admin:!1,is_banned:!1,is_confirmed:!1,is_mod:!1,link:""},options:{path:bpGroupManageMembersSettings.path,type:"POST",data:{},dataType:"json"},initialize:function(){this.on("sync",this.resetRequestOptions,this)},resetRequestOptions:function(){this.options.data={},this.options.path=bpGroupManageMembersSettings.path},sync:function(e,i,s){(s=s||{}).context=this;var r=s.data||{};if(this.options.path=this.options.path.concat("/"+i.get("id")),_.extend(s,this.options),_.extend(s.data,r),"delete"===e||"update"===e)return s.headers="delete"===e?{"X-HTTP-Method-Override":"DELETE"}:{"X-HTTP-Method-Override":"PUT"},t.apiRequest(s)},parse:function(e){return _.isArray(e)&&(e=_.first(e)),e}}),t.Collections.groupMembers=Backbone.Collection.extend({model:t.Models.groupMember,options:{path:bpGroupManageMembersSettings.path,type:"GET",data:{},dataType:"json"},initialize:function(){this.on("reset",function(){this.options.data={}},this)},sync:function(e,i,s){(s=s||{}).context=this;var r=s.data||{};if(_.extend(s,this.options),_.extend(s.data,r),"read"===e){var o=this,n=s.success;return s.success=function(e,t,i){if(_.isUndefined(i)||(o.totalPages=parseInt(i.getResponseHeader("X-WP-TotalPages"),10),o.totalGroupMembers=parseInt(i.getResponseHeader("X-WP-Total"),10)),o.currentPage=s.data.page||1,n)return n.apply(this,arguments)},t.apiRequest(s)}}}),t.View=t.View||t.Backbone.View.extend({prepare:function(){return!_.isUndefined(this.model)&&_.isFunction(this.model.toJSON)?this.model.toJSON():{}}}),t.Views.GroupMemberUpdatingInfo=t.View.extend({tagName:"p",template:t.template("bp-manage-members-updating"),initialize:function(){this.model=new Backbone.Model({type:this.options.value})}}),t.Views.GroupMemberErrorInfo=t.View.extend({tagName:"p",template:t.template("bp-manage-members-error"),initialize:function(){this.model=new Backbone.Model({message:this.options.value})}}),t.Views.GroupsMembersLabel=t.Views.GroupMemberUpdatingInfo.extend({tagName:"label",template:t.template("bp-manage-members-label")}),t.Views.GroupRolesDropDown=t.View.extend({tagName:"select",filters:_.extend({all:{name:"All members"}},bpGroupManageMembersSettings.roles),events:{change:"change"},initialize:function(){this.options.omits&&(this.filters=_.omit(this.filters,this.options.omits)),this.$el.html(_.chain(this.filters).map(function(e,t){var s=i("<option></option>").val(t).html(e.name)[0];return this.options.currentRole&&t===this.options.currentRole?{el:i(s).prop("selected",!0)}:{el:s}},this).pluck("el").value())},change:function(e){var t=i(e.target).val(),s={roles:[t]};this.collection&&("all"===t?(this.collection.currentRole="",s={exclude_admins:!1}):this.collection.currentRole=t,this.collection.currentPage=1,s.page=1,i("#manage-members-search").val(""),this.collection.fetch({data:s,reset:!0}))}}),t.Views.GroupMembersSearch=t.View.extend({className:"bp-dir-search-form",tagName:"form",template:t.template("bp-manage-members-search"),events:{"click #manage-members-search-submit":"searchMember"},searchMember:function(e){e.preventDefault();var t=i("#manage-members-search").val(),s=_.extend(this.collection.options.data,{search:t,page:1});this.collection.currentPage=1,this.collection.currentRole?s.roles=[this.collection.currentRole]:s.exclude_admins=!1,this.collection.fetch({data:s,reset:!0})}}),t.Views.GroupsMembersPagination=t.View.extend({className:"bp-pagination",template:t.template("bp-manage-members-paginate"),events:{"click .group-members-paginate-button":"queryPage"},initialize:function(){this.collection.on("reset",this.setPagination,this)},setPagination:function(e){var t=_.pick(e,["currentPage","totalGroupMembers","totalPages"]);t.totalPages>1&&(t.nextPage=t.currentPage+1,t.prevPage=t.currentPage-1),this.model=new Backbone.Model(t),this.render()},queryPage:function(e){e.preventDefault();var t=i(e.currentTarget).data("page"),s=i("#manage-members-search").val(),r=_.extend(this.collection.options.data,{search:s,page:t});this.collection.currentRole?r.roles=[this.collection.currentRole]:r.exclude_admins=!1,this.collection.fetch({data:r,reset:!0})}}),t.Views.GroupMembersNoMatches=t.View.extend({tagName:"tr",template:t.template("bp-manage-members-empty-row")}),t.Views.GroupMembersListRow=t.View.extend({tagName:"tr",template:t.template("bp-manage-members-row"),events:{"click .group-member-actions a":"doMemberAction","change .group-member-edit select":"editMemberRole"},initialize:function(){var e=["is_admin","is_banned","is_confirmed","is_mod"],t=this;_.each(bpGroupManageMembersSettings.roles,function(i){_.isMatch(t.model.attributes,_.pick(i,e))&&t.model.set("role",_.pick(i,["id","name"]),{silent:!0})}),this.model.collection.on("reset",this.clearRow,this)},clearRow:function(){this.views.view.remove()},renderEditForm:function(){var e=this.model.get("id");this.render(),this.views.set("#edit-group-member-"+e,[new t.Views.GroupsMembersLabel({value:e,attributes:{for:"group-member"+e+"-role"}}),new t.Views.GroupRolesDropDown({id:"group-member"+e+"-role",omits:["all","banned"],currentRole:this.model.get("role").id}).render()])},resetRow:function(){return this.model.set("editing",!1),this.render()},getRoleObject:function(e){var t=bpGroupManageMembersSettings.roles;return _.isUndefined(t[e])?{}:_.extend({role:_.pick(t[e],["id","name"])},_.pick(t[e],["is_admin","is_banned","is_confirmed","is_mod"]))},doMemberAction:function(e){e.preventDefault();var s=i(e.target).data("action"),r=this;if("edit"===s)return this.model.set("editing",!0),this.renderEditForm();if("abort"===s)return this.resetRow();if("ban"===s||"unban"===s){var o="ban"===s?"banned":"member",n=this.getRoleObject(o);if(!n)return this.resetRow();this.model.set("managingBan",!0),this.render(),this.views.set("#edit-group-member-"+this.model.get("id"),new t.Views.GroupMemberUpdatingInfo({value:s}).render()),this.model.save(n,{wait:!0,data:{action:s},success:function(e){return r.model.collection.remove(e),r.clearRow()},error:function(e,i){r.views.set("#edit-group-member-"+e.get("id"),new t.Views.GroupMemberErrorInfo({value:i.responseJSON.message}).render()),e.resetRequestOptions(),e.set("managingBan",!1)}})}else"remove"===s&&(this.model.set("removing",!0),this.render(),this.views.set("#edit-group-member-"+this.model.get("id"),new t.Views.GroupMemberUpdatingInfo({value:s}).render()),this.model.destroy({wait:!0,data:{},success:function(){return r.clearRow()},error:function(e,i){r.views.set("#edit-group-member-"+e.get("id"),new t.Views.GroupMemberErrorInfo({value:i.responseJSON.message}).render()),e.resetRequestOptions(),e.set("removing",!1)}}))},editMemberRole:function(e){var s=i(e.target).val(),r=this.getRoleObject(s),o=this.model.get("role").id,n="promote",a=this;if(s===this.model.get("role").id||!r)return this.resetRow();this.views.set("#edit-group-member-"+this.model.get("id"),(new t.Views.GroupMemberUpdatingInfo).render()),("admin"===o||"mod"===o&&"member"===s)&&(n="demote"),this.model.save(r,{wait:!0,data:{action:n,role:s},success:function(e){return a.model.collection.currentRole&&s!==a.model.collection.currentRole?(a.model.collection.remove(e),a.clearRow()):a.resetRow()},error:function(e,i){a.views.set("#edit-group-member-"+e.get("id"),new t.Views.GroupMemberErrorInfo({value:i.responseJSON.message}).render()),e.resetRequestOptions(),e.set("editing",!1)}})}}),t.Views.GroupMembersListHeader=t.View.extend({tagName:"thead",template:t.template("bp-manage-members-header")}),t.Views.GroupMembersListTable=t.View.extend({tagName:"tbody",initialize:function(){var e=bpGroupManageMembersSettings.preloaded||{},i=[];this.collection.on("reset",this.addListTableRows,this),e.body&&e.body.length>0?(_.each(e.body,function(e){i.push(new t.Models.groupMember(e))}),this.collection.currentPage=1,e.headers&&e.headers["X-WP-TotalPages"]&&(this.collection.totalPages=parseInt(e.headers["X-WP-TotalPages"],10)),e.headers&&e.headers["X-WP-Total"]&&(this.collection.totalGroupMembers=parseInt(e.headers["X-WP-Total"],10)),this.collection.reset(i)):this.collection.fetch({data:{exclude_admins:!1},reset:!0})},addListTableRows:function(e){if(this.views._views){var i=_.findWhere(this.views._views[""],{id:"bp-no-group-members"});i&&i.remove()}e.length?_.each(e.models,function(e){this.views.add(new t.Views.GroupMembersListRow({model:e}))},this):this.views.add(new t.Views.GroupMembersNoMatches({id:"bp-no-group-members"}))}}),t.Views.GroupMembersUI=t.View.extend({className:"group-members",initialize:function(){var e=new t.Collections.groupMembers;this.views.set("#group-roles-filter",[new t.Views.GroupsMembersLabel({attributes:{for:"group-members-role-filter"}}),new t.Views.GroupRolesDropDown({id:"group-members-role-filter",collection:e})]),this.views.set("#group-members-search-form",new t.Views.GroupMembersSearch({id:"group-members-search",collection:e})),this.views.set("#group-members-pagination",new t.Views.GroupsMembersPagination({collection:e})),this.views.set("#group-members-list-table",[new t.Views.GroupMembersListHeader,new t.Views.GroupMembersListTable({collection:e})])}}),t.manageGroupMembersUI=new t.Views.GroupMembersUI({el:"#group-manage-members-ui"}).render())}(window.wp||{},window.bp||{},jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-groups/screens/single/admin/membership-requests.php b/wp-content/plugins/buddypress/bp-groups/screens/single/admin/membership-requests.php
index ca12c2cc0..2b99f4f03 100644
--- a/wp-content/plugins/buddypress/bp-groups/screens/single/admin/membership-requests.php
+++ b/wp-content/plugins/buddypress/bp-groups/screens/single/admin/membership-requests.php
@@ -23,34 +23,42 @@ function groups_screen_group_admin_requests() {
 		return false;
 	}
 
-	$request_action = (string) bp_action_variable( 1 );
-	$membership_id  = (int) bp_action_variable( 2 );
+	$request_action = isset( $_GET['action'] ) ? $_GET['action'] : false;
+	$user_id        = isset( $_GET['user_id'] ) ? (int) $_GET['user_id'] : false;
+	$group_id       = bp_get_current_group_id();
 
-	if ( !empty( $request_action ) && !empty( $membership_id ) ) {
-		if ( 'accept' == $request_action && is_numeric( $membership_id ) ) {
+	if ( $request_action && $user_id && $group_id ) {
+		if ( 'accept' === $request_action ) {
 
 			// Check the nonce first.
-			if ( !check_admin_referer( 'groups_accept_membership_request' ) )
+			if ( ! check_admin_referer( 'groups_accept_membership_request' ) ) {
 				return false;
+			}
 
 			// Accept the membership request.
-			if ( !groups_accept_membership_request( $membership_id ) )
+			if ( ! groups_accept_membership_request( false, $user_id, $group_id ) ) {
 				bp_core_add_message( __( 'There was an error accepting the membership request. Please try again.', 'buddypress' ), 'error' );
-			else
+			} else {
 				bp_core_add_message( __( 'Group membership request accepted', 'buddypress' ) );
+			}
 
-		} elseif ( 'reject' == $request_action && is_numeric( $membership_id ) ) {
+		} elseif ( 'reject' === $request_action ) {
 			/* Check the nonce first. */
-			if ( !check_admin_referer( 'groups_reject_membership_request' ) )
+			if ( ! check_admin_referer( 'groups_reject_membership_request' ) ) {
 				return false;
+			}
 
 			// Reject the membership request.
-			if ( !groups_reject_membership_request( $membership_id ) )
+			if ( ! groups_reject_membership_request( false, $user_id, $group_id ) ) {
 				bp_core_add_message( __( 'There was an error rejecting the membership request. Please try again.', 'buddypress' ), 'error' );
-			else
+			} else {
 				bp_core_add_message( __( 'Group membership request rejected', 'buddypress' ) );
+			}
 		}
 
+		// Was the member added to the group?
+		$membership_id = groups_is_user_member( $user_id, $group_id );
+
 		/**
 		 * Fires before the redirect if a group membership request has been handled.
 		 *
@@ -58,9 +66,11 @@ function groups_screen_group_admin_requests() {
 		 *
 		 * @param int    $id             ID of the group that was edited.
 		 * @param string $request_action Membership request action being performed.
-		 * @param int    $membership_id  The key of the action_variables array that you want.
+		 * @param int    $membership_id  The membership ID of the new user; false if rejected.
+		 * @param int    $user_id        The ID of the requesting user.
+		 * @param int    $group_id       The ID of the requested group.
 		 */
-		do_action( 'groups_group_request_managed', $bp->groups->current_group->id, $request_action, $membership_id );
+		do_action( 'groups_group_request_managed', $bp->groups->current_group->id, $request_action, $membership_id, $user_id, $group_id );
 		bp_core_redirect( bp_get_group_permalink( groups_get_current_group() ) . 'admin/membership-requests/' );
 	}
 
@@ -82,4 +92,4 @@ function groups_screen_group_admin_requests() {
 	 */
 	bp_core_load_template( apply_filters( 'groups_template_group_admin_requests', 'groups/single/home' ) );
 }
-add_action( 'bp_screens', 'groups_screen_group_admin_requests' );
\ No newline at end of file
+add_action( 'bp_screens', 'groups_screen_group_admin_requests' );
diff --git a/wp-content/plugins/buddypress/bp-groups/screens/single/send-invites.php b/wp-content/plugins/buddypress/bp-groups/screens/single/send-invites.php
index 3b0365cbe..1e04fee44 100644
--- a/wp-content/plugins/buddypress/bp-groups/screens/single/send-invites.php
+++ b/wp-content/plugins/buddypress/bp-groups/screens/single/send-invites.php
@@ -31,7 +31,7 @@ function groups_screen_group_invite() {
 		}
 
 		// Send the invites.
-		groups_send_invites( bp_loggedin_user_id(), $bp->groups->current_group->id );
+		groups_send_invites( array( 'group_id' => $bp->groups->current_group->id ) );
 		bp_core_add_message( __('Group invites sent.', 'buddypress') );
 
 		/**
@@ -101,4 +101,4 @@ function groups_remove_group_invite() {
 	bp_core_add_message( $message, $error );
 	bp_core_redirect( $redirect );
 }
-add_action( 'bp_screens', 'groups_remove_group_invite' );
\ No newline at end of file
+add_action( 'bp_screens', 'groups_remove_group_invite' );
diff --git a/wp-content/plugins/buddypress/bp-loader.php b/wp-content/plugins/buddypress/bp-loader.php
index c44202b23..8e89dc2cb 100644
--- a/wp-content/plugins/buddypress/bp-loader.php
+++ b/wp-content/plugins/buddypress/bp-loader.php
@@ -15,7 +15,7 @@
  * Description: BuddyPress adds community features to WordPress. Member Profiles, Activity Streams, Direct Messaging, Notifications, and more!
  * Author:      The BuddyPress Community
  * Author URI:  https://buddypress.org/
- * Version:     4.4.0
+ * Version:     5.1.2
  * Text Domain: buddypress
  * Domain Path: /bp-languages/
  * License:     GPLv2 or later (license.txt)
diff --git a/wp-content/plugins/buddypress/bp-members/bp-members-functions.php b/wp-content/plugins/buddypress/bp-members/bp-members-functions.php
index e505432f0..0bbe3d133 100644
--- a/wp-content/plugins/buddypress/bp-members/bp-members-functions.php
+++ b/wp-content/plugins/buddypress/bp-members/bp-members-functions.php
@@ -609,6 +609,42 @@ function bp_core_get_active_member_count() {
 	return apply_filters( 'bp_core_get_active_member_count', $count );
 }
 
+/**
+ * Update the spam status of the member on multisite configs.
+ *
+ * @since 5.0.0
+ *
+ * @param int   $user_id The user ID to spam or ham.
+ * @param int   $value   0 to mark the user as `ham`, 1 to mark as `spam`.
+ * @return bool          True if the spam status of the member changed.
+ *                       False otherwise.
+ */
+function bp_core_update_member_status( $user_id = 0, $value = 0 ) {
+	if ( ! is_multisite() || ! $user_id ) {
+		return false;
+	}
+
+	/**
+	 * The `update_user_status()` function is deprecated since WordPress 5.3.0.
+	 * Continue to use it if WordPress current major version is lower than 5.3.
+	 */
+	if ( bp_get_major_wp_version() < 5.3 ) {
+		return update_user_status( $user_id, 'spam', $value );
+	}
+
+	// Otherwise use the replacement function.
+	$user = wp_update_user( array(
+		'ID'   => $user_id,
+		'spam' => $value,
+	) );
+
+	if ( is_wp_error( $user ) ) {
+		return false;
+	}
+
+	return true;
+}
+
 /**
  * Process a spammed or unspammed user.
  *
@@ -671,9 +707,7 @@ function bp_core_process_spammer_status( $user_id, $status, $do_wp_cleanup = tru
 		}
 
 		// Finally, mark this user as a spammer.
-		if ( is_multisite() ) {
-			update_user_status( $user_id, 'spam', $is_spam );
-		}
+		bp_core_update_member_status( $user_id, $is_spam );
 	}
 
 	// Update the user status.
@@ -1741,7 +1775,12 @@ function bp_core_signup_user( $user_login, $user_password, $user_email, $usermet
 		 *                               signup data, xprofile data, etc).
 		 */
 		if ( apply_filters( 'bp_core_signup_send_activation_key', true, $user_id, $user_email, $activation_key, $usermeta ) ) {
-			bp_core_signup_send_validation_email( $user_id, $user_email, $activation_key, $user_login );
+			$salutation = $user_login;
+			if ( bp_is_active( 'xprofile' ) && isset( $usermeta[ 'field_' . bp_xprofile_fullname_field_id() ] ) ) {
+				$salutation = $usermeta[ 'field_' . bp_xprofile_fullname_field_id() ];
+			}
+
+			bp_core_signup_send_validation_email( $user_id, $user_email, $activation_key, $salutation );
 		}
 	}
 
@@ -2158,13 +2197,14 @@ function bp_core_signup_avatar_upload_dir() {
  *
  * @since 1.2.2
  * @since 2.5.0 Add the $user_login parameter.
+ * @since 5.0.0 Change $user_login parameter to more general $salutation.
  *
  * @param int|bool $user_id    ID of the new user, false if BP_SIGNUPS_SKIP_USER_CREATION is true.
- * @param string   $user_email Email address of the new user.
- * @param string   $key        Activation key.
- * @param string   $user_login Optional. The user login name.
+ * @param string   $user_email   Email address of the new user.
+ * @param string   $key          Activation key.
+ * @param string   $salutation   Optional. The name to be used as a salutation in the email.
  */
-function bp_core_signup_send_validation_email( $user_id, $user_email, $key, $user_login = '' ) {
+function bp_core_signup_send_validation_email( $user_id, $user_email, $key, $salutation = '' ) {
 	$args = array(
 		'tokens' => array(
 			'activate.url' => esc_url( trailingslashit( bp_get_activation_page() ) . "{$key}/" ),
@@ -2174,11 +2214,7 @@ function bp_core_signup_send_validation_email( $user_id, $user_email, $key, $use
 		),
 	);
 
-	if ( $user_id ) {
-		$to = $user_id;
-	} else {
-		$to = array( array( $user_email => $user_login ) );
-	}
+	$to = array( array( $user_email => $salutation ) );
 
 	bp_send_email( 'core-user-registration', $to, $args );
 }
@@ -2289,14 +2325,55 @@ function bp_core_wpsignup_redirect() {
 		return;
 	}
 
-	$action = !empty( $_GET['action'] ) ? $_GET['action'] : '';
+	$is_wp_signup = false;
+	if ( ! empty( $_SERVER['SCRIPT_NAME'] ) ) {
+		$script_name_path = wp_parse_url( $_SERVER['SCRIPT_NAME'], PHP_URL_PATH );
+
+		if ( 'wp-signup.php' === basename( $script_name_path ) || ( 'wp-login.php' === basename( $script_name_path ) && ! empty( $_GET['action'] ) && 'register' === $_GET['action'] ) ) {
+			$is_wp_signup = true;
+		}
+	}
+
+	// If this is not wp-signup.php, there's nothing to do here.
+	if ( ! $is_wp_signup ) {
+		return;
+	}
+
+	/*
+	 * We redirect wp-signup.php to the registration page except when it's a site signup.
+	 * In that case, redirect to the BP site creation page if available, otherwise allow
+	 * access to wp-signup.php.
+	 */
+	$redirect_to = bp_get_signup_page();
+
+	$is_site_creation = false;
+
+	$referer = wp_get_referer();
+
+	// A new site is being added.
+	if ( isset( $_POST['stage'] ) && $_POST['stage'] === 'gimmeanotherblog' ) {
+		$is_site_creation = true;
+
+	// We've arrived at wp-signup.php from my-sites.php.
+	} elseif ( $referer ) {
+		$referer_path     = wp_parse_url( $referer, PHP_URL_PATH );
+		$is_site_creation = false !== strpos( $referer_path, 'wp-admin/my-sites.php' );
+	}
+
+	if ( $is_site_creation ) {
+		if ( bp_is_active( 'blogs' ) ) {
+			$redirect_to = trailingslashit( bp_get_blogs_directory_permalink() . 'create' );
+		} else {
+			// Perform no redirect in this case.
+			$redirect_to = '';
+		}
+	}
 
-	// Not at the WP core signup page and action is not register.
-	if ( ! empty( $_SERVER['SCRIPT_NAME'] ) && false === strpos( 'wp-signup.php', $_SERVER['SCRIPT_NAME'] ) && ( 'register' != $action ) ) {
+	if ( ! $redirect_to ) {
 		return;
 	}
 
-	bp_core_redirect( bp_get_signup_page() );
+	bp_core_redirect( $redirect_to );
 }
 add_action( 'bp_init', 'bp_core_wpsignup_redirect' );
 
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php
index a23fa705b..b50bc2dbf 100644
--- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-members-widget.php
@@ -90,12 +90,15 @@ class BP_Core_Members_Widget extends WP_Widget {
 		// Output before widget HTMl, title (and maybe content before & after it).
 		echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title'];
 
+		$max_limit   = bp_get_widget_max_count_limit( __CLASS__ );
+		$max_members = $settings['max_members'] > $max_limit ? $max_limit : (int) $settings['max_members'];
+
 		// Setup args for querying members.
 		$members_args = array(
 			'user_id'         => 0,
 			'type'            => $settings['member_default'],
-			'per_page'        => $settings['max_members'],
-			'max'             => $settings['max_members'],
+			'per_page'        => $max_members,
+			'max'             => $max_members,
 			'populate_extras' => true,
 			'search_terms'    => false,
 		);
@@ -177,10 +180,12 @@ class BP_Core_Members_Widget extends WP_Widget {
 	public function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
 
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$instance['title']          = strip_tags( $new_instance['title'] );
-		$instance['max_members']    = strip_tags( $new_instance['max_members'] );
+		$instance['max_members']    = $new_instance['max_members'] > $max_limit ? $max_limit : intval( $new_instance['max_members'] );
 		$instance['member_default'] = strip_tags( $new_instance['member_default'] );
-		$instance['link_title']	    = (bool) $new_instance['link_title'];
+		$instance['link_title']	    = ! empty( $new_instance['link_title'] );
 
 		return $instance;
 	}
@@ -194,11 +199,12 @@ class BP_Core_Members_Widget extends WP_Widget {
 	 * @return void
 	 */
 	public function form( $instance ) {
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
 
 		// Get widget settings.
 		$settings       = $this->parse_settings( $instance );
 		$title          = strip_tags( $settings['title'] );
-		$max_members    = strip_tags( $settings['max_members'] );
+		$max_members    = $settings['max_members'] > $max_limit ? $max_limit : intval( $settings['max_members'] );
 		$member_default = strip_tags( $settings['member_default'] );
 		$link_title     = (bool) $settings['link_title']; ?>
 
@@ -219,7 +225,7 @@ class BP_Core_Members_Widget extends WP_Widget {
 		<p>
 			<label for="<?php echo $this->get_field_id( 'max_members' ); ?>">
 				<?php esc_html_e( 'Max members to show:', 'buddypress' ); ?>
-				<input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
+				<input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="number" min="1" max="<?php echo esc_attr( $max_limit ); ?>" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
 			</label>
 		</p>
 
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php
index 2704a8cbf..9c8408920 100644
--- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-recently-active-widget.php
@@ -63,12 +63,15 @@ class BP_Core_Recently_Active_Widget extends WP_Widget {
 		echo $args['before_widget'];
 		echo $args['before_title'] . $title . $args['after_title'];
 
+		$max_limit   = bp_get_widget_max_count_limit( __CLASS__ );
+		$max_members = $settings['max_members'] > $max_limit ? $max_limit : (int) $settings['max_members'];
+
 		// Setup args for querying members.
 		$members_args = array(
 			'user_id'         => 0,
 			'type'            => 'active',
-			'per_page'        => $settings['max_members'],
-			'max'             => $settings['max_members'],
+			'per_page'        => $max_members,
+			'max'             => $max_members,
 			'populate_extras' => true,
 			'search_terms'    => false,
 		);
@@ -116,9 +119,12 @@ class BP_Core_Recently_Active_Widget extends WP_Widget {
 	 * @return array $instance The parsed options to be saved.
 	 */
 	public function update( $new_instance, $old_instance ) {
-		$instance                = $old_instance;
+		$instance = $old_instance;
+
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$instance['title']       = strip_tags( $new_instance['title'] );
-		$instance['max_members'] = strip_tags( $new_instance['max_members'] );
+		$instance['max_members'] = $new_instance['max_members'] > $max_limit ? $max_limit : intval( $new_instance['max_members'] );
 
 		return $instance;
 	}
@@ -132,11 +138,13 @@ class BP_Core_Recently_Active_Widget extends WP_Widget {
 	 * @return void
 	 */
 	public function form( $instance ) {
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
 
 		// Get widget settings.
 		$settings    = $this->parse_settings( $instance );
 		$title       = strip_tags( $settings['title'] );
-		$max_members = strip_tags( $settings['max_members'] ); ?>
+		$max_members = $settings['max_members'] > $max_limit ? $max_limit : intval( $settings['max_members'] );
+		?>
 
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>">
@@ -148,7 +156,7 @@ class BP_Core_Recently_Active_Widget extends WP_Widget {
 		<p>
 			<label for="<?php echo $this->get_field_id( 'max_members' ); ?>">
 				<?php esc_html_e( 'Max members to show:', 'buddypress' ); ?>
-				<input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
+				<input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="number" min="1" max="<?php echo esc_attr( $max_limit ); ?>" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
 			</label>
 		</p>
 
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php
index d93687bab..3e98d3259 100644
--- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-core-whos-online-widget.php
@@ -62,12 +62,15 @@ class BP_Core_Whos_Online_Widget extends WP_Widget {
 
 		echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title'];
 
+		$max_limit   = bp_get_widget_max_count_limit( __CLASS__ );
+		$max_members = $settings['max_members'] > $max_limit ? $max_limit : (int) $settings['max_members'];
+
 		// Setup args for querying members.
 		$members_args = array(
 			'user_id'         => 0,
 			'type'            => 'online',
-			'per_page'        => $settings['max_members'],
-			'max'             => $settings['max_members'],
+			'per_page'        => $max_members,
+			'max'             => $max_members,
 			'populate_extras' => true,
 			'search_terms'    => false,
 		);
@@ -115,9 +118,12 @@ class BP_Core_Whos_Online_Widget extends WP_Widget {
 	 * @return array $instance The parsed options to be saved.
 	 */
 	public function update( $new_instance, $old_instance ) {
-		$instance                = $old_instance;
+		$instance = $old_instance;
+
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
+
 		$instance['title']       = strip_tags( $new_instance['title'] );
-		$instance['max_members'] = strip_tags( $new_instance['max_members'] );
+		$instance['max_members'] = $new_instance['max_members'] > $max_limit ? $max_limit : intval( $new_instance['max_members'] );
 
 		return $instance;
 	}
@@ -131,11 +137,13 @@ class BP_Core_Whos_Online_Widget extends WP_Widget {
 	 * @return void
 	 */
 	public function form( $instance ) {
+		$max_limit = bp_get_widget_max_count_limit( __CLASS__ );
 
 		// Get widget settings.
 		$settings    = $this->parse_settings( $instance );
 		$title       = strip_tags( $settings['title'] );
-		$max_members = strip_tags( $settings['max_members'] ); ?>
+		$max_members = $settings['max_members'] > $max_limit ? $max_limit : intval( $settings['max_members'] );
+		?>
 
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>">
@@ -147,7 +155,7 @@ class BP_Core_Whos_Online_Widget extends WP_Widget {
 		<p>
 			<label for="<?php echo $this->get_field_id( 'max_members' ); ?>">
 				<?php esc_html_e( 'Max members to show:', 'buddypress' ); ?>
-				<input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
+				<input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="number" min="1" max="<?php echo esc_attr( $max_limit ); ?>" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
 			</label>
 		</p>
 
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php
index fe410e5be..8bb69f1bf 100644
--- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-admin.php
@@ -624,7 +624,7 @@ class BP_Members_Admin {
 
 		wp_enqueue_style( 'bp-members-css', $css, array(), bp_get_version() );
 
-		wp_style_add_data( 'bp-members-css', 'rtl', true );
+		wp_style_add_data( 'bp-members-css', 'rtl', 'replace' );
 		if ( $min ) {
 			wp_style_add_data( 'bp-members-css', 'suffix', $min );
 		}
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php
index 20c3eccee..73b63348b 100644
--- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php
@@ -456,4 +456,23 @@ class BP_Members_Component extends BP_Component {
 
 		parent::setup_cache_groups();
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers Optional. See BP_Component::rest_api_init() for
+	 *                           description.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		parent::rest_api_init( array(
+			/**
+			 * As the Members component is always loaded,
+			 * let's register the Components endpoint here.
+			 */
+			'BP_REST_Components_Endpoint',
+			'BP_REST_Members_Endpoint',
+		) );
+	}
 }
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-rest-members-endpoint.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-rest-members-endpoint.php
new file mode 100644
index 000000000..71a5e24f1
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-rest-members-endpoint.php
@@ -0,0 +1,811 @@
+<?php
+/**
+ * BP REST: BP_REST_Members_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * BuddyPress Members endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Members_Endpoint extends WP_REST_Users_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = 'members';
+	}
+
+	/**
+	 * Retrieve users.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'type'           => $request['type'],
+			'user_id'        => $request['user_id'],
+			'user_ids'       => $request['user_ids'],
+			'xprofile_query' => $request['xprofile'],
+			'include'        => $request['include'],
+			'exclude'        => $request['exclude'],
+			'member_type'    => $request['member_type'],
+			'search_terms'   => $request['search'],
+			'per_page'       => $request['per_page'],
+			'page'           => $request['page'],
+		);
+
+		if ( empty( $request['user_ids'] ) ) {
+			$args['user_ids'] = false;
+		}
+
+		if ( empty( $request['exclude'] ) ) {
+			$args['exclude'] = false;
+		}
+
+		if ( empty( $request['include'] ) ) {
+			$args['include'] = false;
+		}
+
+		if ( empty( $request['xprofile'] ) ) {
+			$args['xprofile_query'] = false;
+		}
+
+		if ( empty( $request['member_type'] ) ) {
+			$args['member_type'] = '';
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_members_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$member_query = new BP_User_Query( $args );
+		$members      = array_values( $member_query->results );
+
+		$retval = array();
+		foreach ( $members as $member ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $member, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, $member_query->total_users, $args['per_page'] );
+
+		/**
+		 * Fires after a list of members is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $members  Fetched members.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_members_get_items', $members, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to get all users.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		/**
+		 * Filter the members `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool            $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_members_get_items_permissions_check', true, $request );
+	}
+
+	/**
+	 * Checks if a given request has access to read a user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to view members.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['id'] );
+
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && get_current_user_id() === $user->ID ) {
+			$retval = true;
+		} elseif ( true === $retval && 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to view members.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the members `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_members_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Checks if a given request has access create members.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! ( is_user_logged_in() && current_user_can( 'bp_moderate' ) ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to view members.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter or override the members `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_members_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Check if a given request has access to update a member.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = true;
+		$user   = bp_rest_get_user( $request['id'] );
+
+		if ( ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$action = 'delete';
+		if ( 'DELETE' !== $request->get_method() ) {
+			$action = 'update';
+		}
+
+		if ( true === $retval && ! $this->can_manage_member( $user, $action ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to view members.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the members `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_members_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Check if a given request has access to delete a member.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->update_item_permissions_check( $request );
+
+		/**
+		 * Filter the members `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_members_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Deleting the current user is not implemented into this endpoint.
+	 *
+	 * This action is specific to the User Settings endpoint.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error                WP_Error object to inform it's not implemented.
+	 */
+	public function delete_current_item_permissions_check( $request ) {
+		return new WP_Error(
+			'bp_rest_invalid_method',
+			/* translators: %s: transport method name */
+			sprintf( __( '\'%s\' Transport Method not implemented.', 'buddypress' ), $request->get_method() ),
+			array(
+				'status' => 405,
+			)
+		);
+	}
+
+	/**
+	 * Deleting the current user is not implemented into this endpoint.
+	 *
+	 * This action is specific to the User Settings endpoint.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error                WP_Error to inform it's not implemented.
+	 */
+	public function delete_current_item( $request ) {
+		return new WP_Error(
+			'bp_rest_invalid_method',
+			/* translators: %s: transport method name */
+			sprintf( __( '\'%s\' Transport method not implemented.', 'buddypress' ), $request->get_method() ),
+			array(
+				'status' => 405,
+			)
+		);
+	}
+
+	/**
+	 * Prepares a single user output for response.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_User         $user    User object.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $user, $request ) {
+		$context  = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data     = $this->user_data( $user, $context );
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $user ) );
+
+		/**
+		 * Filters user data returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param WP_REST_Request  $request  The request object.
+		 * @param WP_User          $user     WP_User object.
+		 */
+		return apply_filters( 'bp_rest_members_prepare_value', $response, $request, $user );
+	}
+
+	/**
+	 * Method to facilitate fetching of user data.
+	 *
+	 * This was abstracted to be used in other BuddyPress endpoints.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_User $user    User object.
+	 * @param string  $context The context of the request. Defaults to 'view'.
+	 * @return array
+	 */
+	public function user_data( $user, $context = 'view' ) {
+		$data = array(
+			'id'                 => $user->ID,
+			'name'               => $user->display_name,
+			'user_login'         => $user->user_login,
+			'link'               => bp_core_get_user_domain( $user->ID, $user->user_nicename, $user->user_login ),
+			'member_types'       => bp_get_member_type( $user->ID, false ),
+			'roles'              => array(),
+			'capabilities'       => array(),
+			'extra_capabilities' => array(),
+			'registered_date'    => '',
+			'xprofile'           => $this->xprofile_data( $user->ID ),
+		);
+
+		if ( 'edit' === $context ) {
+			$data['registered_date']    = bp_rest_prepare_date_response( $user->data->user_registered );
+			$data['roles']              = (array) array_values( $user->roles );
+			$data['capabilities']       = (array) array_keys( $user->allcaps );
+			$data['extra_capabilities'] = (array) array_keys( $user->caps );
+		}
+
+		// The name used for that user in @-mentions.
+		if ( bp_is_active( 'activity' ) ) {
+			$data['mention_name'] = bp_activity_get_user_mentionname( $user->ID );
+		}
+
+		// Avatars.
+		$data['avatar_urls'] = array(
+			'full'  => bp_core_fetch_avatar(
+				array(
+					'item_id' => $user->ID,
+					'html'    => false,
+					'type'    => 'full',
+				)
+			),
+			'thumb' => bp_core_fetch_avatar(
+				array(
+					'item_id' => $user->ID,
+					'html'    => false,
+				)
+			),
+		);
+
+		// Fallback.
+		if ( false === $data['member_types'] ) {
+			$data['member_types'] = array();
+		}
+
+		return $data;
+	}
+
+	/**
+	 * Prepares a single user for creation or update.
+	 *
+	 * @todo Improve sanitization and schema verification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return stdClass
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_user = parent::prepare_item_for_database( $request );
+
+		// The parent class uses username instead of user_login.
+		if ( ! isset( $prepared_user->user_login ) && isset( $request['user_login'] ) ) {
+			$prepared_user->user_login = $request['user_login'];
+		}
+
+		/**
+		 * Filters an user object before it is inserted or updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param stdClass        $prepared_user An object prepared for inserting or updating the database.
+		 * @param WP_REST_Request $request       Request object.
+		 */
+		return apply_filters( 'bp_rest_members_pre_insert_value', $prepared_user, $request );
+	}
+
+	/**
+	 * Get XProfile info from the user.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  int $user_id User ID.
+	 * @return array
+	 */
+	protected function xprofile_data( $user_id ) {
+		$data = array();
+
+		// Get XProfile groups, only if the component is active.
+		if ( bp_is_active( 'xprofile' ) ) {
+			$fields_endpoint = new BP_REST_XProfile_Fields_Endpoint();
+
+			$groups = bp_xprofile_get_groups(
+				array(
+					'user_id'          => $user_id,
+					'fetch_fields'     => true,
+					'fetch_field_data' => true,
+				)
+			);
+
+			foreach ( $groups as $group ) {
+				$data['groups'][ $group->id ] = array(
+					'name' => $group->name,
+				);
+
+				foreach ( $group->fields as $item ) {
+					$data['groups'][ $group->id ]['fields'][ $item->id ] = array(
+						'name'  => $item->name,
+						'value' => array(
+							'raw'          => $item->data->value,
+							'unserialized' => $fields_endpoint->get_profile_field_unserialized_value( $item->data->value ),
+							'rendered'     => $fields_endpoint->get_profile_field_rendered_value( $item->data->value, $item ),
+						),
+					);
+				}
+			}
+		} else {
+			$data = array( __( 'No extended profile data available as the component is inactive', 'buddypress' ) );
+		}
+
+		return $data;
+	}
+
+	/**
+	 * Can user manage (delete/update) a member?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_User $user User object.
+	 * @param  string  $action The action to perform (update or delete).
+	 * @return bool
+	 */
+	protected function can_manage_member( $user, $action = 'delete' ) {
+		$capability = 'delete_user';
+		if ( 'update' === $action ) {
+			$capability = 'edit_user';
+		}
+
+		return ( current_user_can( 'bp_moderate' ) || current_user_can( $capability, $user->ID ) );
+	}
+
+	/**
+	 * Updates the values of additional fields added to a data object.
+	 *
+	 * This function makes sure updating the field value thanks to the `id` property of
+	 * the created/updated object type is consistent accross BuddyPress components.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_User         $object  The WordPress user object.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True on success, WP_Error object if a field cannot be updated.
+	 */
+	protected function update_additional_fields_for_object( $object, $request ) {
+		if ( ! isset( $object->data ) ) {
+			return new WP_Error( 'invalid_user', __( 'The data for the user was not found.', 'buddypress' ) );
+		}
+
+		$member     = $object->data;
+		$member->id = $member->ID;
+
+		return WP_REST_Controller::update_additional_fields_for_object( $member, $request );
+	}
+
+	/**
+	 * Make sure to retrieve the needed arguments for the endpoint CREATABLE method.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method ) {
+			$key = 'create_item';
+
+			// We don't need the mention name to create a user.
+			unset( $args['mention_name'] );
+
+			// But we absolutely need the email.
+			$args['email'] = array(
+				'description' => __( 'The email address for the member.', 'buddypress' ),
+				'type'        => 'string',
+				'format'      => 'email',
+				'context'     => array( 'edit' ),
+				'required'    => true,
+			);
+		} elseif ( WP_REST_Server::EDITABLE === $method ) {
+			$key = 'update_item';
+
+			/**
+			 * 1. The mention name or user login are not updatable.
+			 * 2. The password belongs to the Settings endpoint parameter.
+			 */
+			unset( $args['mention_name'], $args['user_login'], $args['password'] );
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_members_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the members schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_members',
+			'type'       => 'object',
+			'properties' => array(
+				'id'                 => array(
+					'description' => __( 'A unique numeric ID for the Member.', 'buddypress' ),
+					'type'        => 'integer',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'name'               => array(
+					'description' => __( 'Display name for the member.', 'buddypress' ),
+					'type'        => 'string',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'mention_name'       => array(
+					'description' => __( 'The name used for that user in @-mentions.', 'buddypress' ),
+					'type'        => 'string',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'link'               => array(
+					'description' => __( 'Profile URL of the member.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'user_login'         => array(
+					'description' => __( 'An alphanumeric identifier for the Member.', 'buddypress' ),
+					'type'        => 'string',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'check_username' ),
+					),
+				),
+				'member_types'       => array(
+					'description' => __( 'Member types associated with the member.', 'buddypress' ),
+					'type'        => 'object',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'registered_date'    => array(
+					'description' => __( 'Registration date for the member.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'edit' ),
+					'readonly'    => true,
+				),
+				'password'           => array(
+					'description' => __( 'Password for the member (never included).', 'buddypress' ),
+					'type'        => 'string',
+					'context'     => array(), // Password is never displayed.
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'check_user_password' ),
+					),
+				),
+				'roles'              => array(
+					'description' => __( 'Roles assigned to the member.', 'buddypress' ),
+					'type'        => 'array',
+					'context'     => array( 'edit' ),
+					'items'       => array(
+						'type' => 'string',
+					),
+				),
+				'capabilities'       => array(
+					'description' => __( 'All capabilities assigned to the user.', 'buddypress' ),
+					'type'        => 'object',
+					'context'     => array( 'edit' ),
+					'readonly'    => true,
+				),
+				'extra_capabilities' => array(
+					'description' => __( 'Any extra capabilities assigned to the user.', 'buddypress' ),
+					'type'        => 'object',
+					'context'     => array( 'edit' ),
+					'readonly'    => true,
+				),
+				'xprofile'           => array(
+					'description' => __( 'Member XProfile groups and its fields.', 'buddypress' ),
+					'type'        => 'array',
+					'context'     => array( 'view', 'edit' ),
+					'readonly'    => true,
+				),
+			),
+		);
+
+		// Avatars.
+		if ( true === buddypress()->avatar->show_avatars ) {
+			$avatar_properties = array();
+
+			$avatar_properties['full'] = array(
+				/* translators: Full image size for the member Avatar */
+				'description' => sprintf( __( 'Avatar URL with full image size (%1$d x %2$d pixels).', 'buddypress' ), number_format_i18n( bp_core_avatar_full_width() ), number_format_i18n( bp_core_avatar_full_height() ) ),
+				'type'        => 'string',
+				'format'      => 'uri',
+				'context'     => array( 'embed', 'view', 'edit' ),
+			);
+
+			$avatar_properties['thumb'] = array(
+				/* translators: Thumb imaze size for the member Avatar */
+				'description' => sprintf( __( 'Avatar URL with thumb image size (%1$d x %2$d pixels).', 'buddypress' ), number_format_i18n( bp_core_avatar_thumb_width() ), number_format_i18n( bp_core_avatar_thumb_height() ) ),
+				'type'        => 'string',
+				'format'      => 'uri',
+				'context'     => array( 'embed', 'view', 'edit' ),
+			);
+
+			$schema['properties']['avatar_urls'] = array(
+				'description' => __( 'Avatar URLs for the member.', 'buddypress' ),
+				'type'        => 'object',
+				'context'     => array( 'embed', 'view', 'edit' ),
+				'readonly'    => true,
+				'properties'  => $avatar_properties,
+			);
+		}
+
+		/**
+		 * Filters the members schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_members_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for collections.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params = array_intersect_key(
+			parent::get_collection_params(),
+			array(
+				'context'  => true,
+				'page'     => true,
+				'per_page' => true,
+				'search'   => true,
+			)
+		);
+
+		$params['type'] = array(
+			'description'       => __( 'Shorthand for certain orderby/order combinations.', 'buddypress' ),
+			'default'           => 'newest',
+			'type'              => 'string',
+			'enum'              => array( 'active', 'newest', 'alphabetical', 'random', 'online', 'popular' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Limit results to friends of a user.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_ids'] = array(
+			'description'       => __( 'Pass IDs of users to limit result set.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['include'] = array(
+			'description'       => __( 'Ensure result set includes specific IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude'] = array(
+			'description'       => __( 'Ensure result set excludes specific IDs.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'wp_parse_id_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['member_type'] = array(
+			'description'       => __( 'Limit results set to certain type(s).', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'string' ),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['xprofile'] = array(
+			'description'       => __( 'Limit results set to a certain XProfile field.', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_members_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php b/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php
index c5249359d..339e00c2c 100644
--- a/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php
+++ b/wp-content/plugins/buddypress/bp-members/classes/class-bp-signup.php
@@ -639,7 +639,12 @@ class BP_Signup {
 
 				// Send the validation email.
 				} else {
-					bp_core_signup_send_validation_email( false, $signup->user_email, $signup->activation_key, $signup->user_login );
+					$salutation = $signup->user_login;
+					if ( bp_is_active( 'xprofile' ) && isset( $meta[ 'field_' . bp_xprofile_fullname_field_id() ] ) ) {
+						$salutation = $meta[ 'field_' . bp_xprofile_fullname_field_id() ];
+					}
+
+					bp_core_signup_send_validation_email( false, $signup->user_email, $signup->activation_key, $salutation );
 				}
 			}
 
diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-cssjs.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-cssjs.php
index f061916cc..1e3d278e4 100644
--- a/wp-content/plugins/buddypress/bp-messages/bp-messages-cssjs.php
+++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-cssjs.php
@@ -42,7 +42,7 @@ function messages_add_autocomplete_css() {
 
 		wp_enqueue_style( 'bp-messages-autocomplete', "{$url}autocomplete/jquery.autocompletefb{$min}.css", array(), bp_get_version() );
 
-		wp_style_add_data( 'bp-messages-autocomplete', 'rtl', true );
+		wp_style_add_data( 'bp-messages-autocomplete', 'rtl', 'replace' );
 		if ( $min ) {
 			wp_style_add_data( 'bp-messages-autocomplete', 'suffix', $min );
 		}
diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-filters.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-filters.php
index bc501df7b..fad054023 100644
--- a/wp-content/plugins/buddypress/bp-messages/bp-messages-filters.php
+++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-filters.php
@@ -134,14 +134,16 @@ function bp_messages_filter_kses( $content ) {
  * Register Messages personal data exporter.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_messages_register_personal_data_exporter( $exporters ) {
 	$exporters['buddypress-messages'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Messages', 'buddypress' ),
-		'callback'               => 'bp_messages_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Messages', 'buddypress' ),
+		'callback'                  => 'bp_messages_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Private Messages', 'BuddyPress Messages data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php
index 61ded106f..b2ec20a23 100644
--- a/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php
+++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-functions.php
@@ -669,6 +669,13 @@ function bp_messages_personal_data_exporter( $email_address, $page ) {
 		'page'    => $page,
 	) );
 
+	if ( empty( $user_threads ) ) {
+		return array(
+			'data' => $data_to_export,
+			'done' => true,
+		);
+	}
+
 	foreach ( $user_threads['threads'] as $thread ) {
 		$recipient_links = array();
 		foreach ( $thread->recipients as $recipient ) {
diff --git a/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php b/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php
index b04b62925..41a301757 100644
--- a/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php
+++ b/wp-content/plugins/buddypress/bp-messages/bp-messages-template.php
@@ -1155,18 +1155,29 @@ function bp_message_notice_post_date() {
 
 /**
  * Output the subject of the current notice in the loop.
+ *
+ * @since 5.0.0 The $notice parameter has been added.
+ *
+ * @param BP_Messages_Notice $notice The notice object.
  */
-function bp_message_notice_subject() {
-	echo bp_get_message_notice_subject();
+function bp_message_notice_subject( $notice = null ) {
+	echo bp_get_message_notice_subject( $notice );
 }
 	/**
 	 * Get the subject of the current notice in the loop.
 	 *
+	 * @since 5.0.0 The $notice parameter has been added.
+	 *
+	 * @param BP_Messages_Notice $notice The notice object.
 	 * @return string
 	 */
-	function bp_get_message_notice_subject() {
+	function bp_get_message_notice_subject( $notice = null ) {
 		global $messages_template;
 
+		if ( ! isset( $notice->subject ) ) {
+			$notice =& $messages_template->thread;
+		}
+
 		/**
 		 * Filters the subject of the current notice in the loop.
 		 *
@@ -1174,23 +1185,34 @@ function bp_message_notice_subject() {
 		 *
 		 * @param string $subject Subject of the current notice in the loop.
 		 */
-		return apply_filters( 'bp_get_message_notice_subject', $messages_template->thread->subject );
+		return apply_filters( 'bp_get_message_notice_subject', $notice->subject );
 	}
 
 /**
  * Output the text of the current notice in the loop.
+ *
+ * @since 5.0.0 The $notice parameter has been added.
+ *
+ * @param BP_Messages_Notice $notice The notice object.
  */
-function bp_message_notice_text() {
-	echo bp_get_message_notice_text();
+function bp_message_notice_text( $notice = null ) {
+	echo bp_get_message_notice_text( $notice );
 }
 	/**
 	 * Get the text of the current notice in the loop.
 	 *
+	 * @since 5.0.0 The $notice parameter has been added.
+	 *
+	 * @param BP_Messages_Notice $notice The notice object.
 	 * @return string
 	 */
-	function bp_get_message_notice_text() {
+	function bp_get_message_notice_text( $notice = null ) {
 		global $messages_template;
 
+		if ( ! isset( $notice->subject ) ) {
+			$notice =& $messages_template->thread;
+		}
+
 		/**
 		 * Filters the text of the current notice in the loop.
 		 *
@@ -1198,7 +1220,7 @@ function bp_message_notice_text() {
 		 *
 		 * @param string $message Text for the current notice in the loop.
 		 */
-		return apply_filters( 'bp_get_message_notice_text', $messages_template->thread->message );
+		return apply_filters( 'bp_get_message_notice_text', $notice->message );
 	}
 
 /**
@@ -1334,12 +1356,10 @@ function bp_message_get_notices() {
 		if ( !in_array( $notice->id, $closed_notices ) && $notice->id ) {
 			?>
 			<div id="message" class="info notice" rel="n-<?php echo esc_attr( $notice->id ); ?>">
-				<p>
-					<strong><?php echo stripslashes( wp_filter_kses( $notice->subject ) ) ?></strong><br />
-					<?php echo stripslashes( wp_filter_kses( $notice->message) ) ?>
-					<button type="button" id="close-notice" class="bp-tooltip" data-bp-tooltip="<?php esc_attr_e( 'Dismiss this notice', 'buddypress' ) ?>"><span class="bp-screen-reader-text"><?php _e( 'Dismiss this notice', 'buddypress' ) ?></span> <span aria-hidden="true">&Chi;</span></button>
-					<?php wp_nonce_field( 'bp_messages_close_notice', 'close-notice-nonce' ); ?>
-				</p>
+				<strong><?php bp_message_notice_subject( $notice ); ?></strong>
+				<button type="button" id="close-notice" class="bp-tooltip" data-bp-tooltip="<?php esc_attr_e( 'Dismiss this notice', 'buddypress' ) ?>"><span class="bp-screen-reader-text"><?php _e( 'Dismiss this notice', 'buddypress' ) ?></span> <span aria-hidden="true">&Chi;</span></button>
+				<?php bp_message_notice_text( $notice ); ?>
+				<?php wp_nonce_field( 'bp_messages_close_notice', 'close-notice-nonce' ); ?>
 			</div>
 			<?php
 		}
diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php
index 3afeb1c20..32699ca66 100644
--- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php
+++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-box-template.php
@@ -107,9 +107,10 @@ class BP_Messages_Box_Template {
 	 * }
 	 */
 	public function __construct( $args = array() ) {
+		$function_args = func_get_args();
 
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '2.2.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -122,7 +123,7 @@ class BP_Messages_Box_Template {
 				6 => 'page_arg'
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$r = wp_parse_args( $args, array(
diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php
index b9ccc35ee..1904bd98c 100644
--- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php
+++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-component.php
@@ -433,4 +433,16 @@ class BP_Messages_Component extends BP_Component {
 
 		parent::setup_cache_groups();
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers Optional. See BP_Component::rest_api_init() for
+	 *                           description.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		parent::rest_api_init( array( 'BP_REST_Messages_Endpoint' ) );
+	}
 }
diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php
index c868d554f..14dcf237b 100644
--- a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php
+++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-messages-thread.php
@@ -445,8 +445,10 @@ class BP_Messages_Thread {
 	public static function get_current_threads_for_user( $args = array() ) {
 		global $wpdb;
 
+		$function_args = func_get_args();
+
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '2.2.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -458,7 +460,7 @@ class BP_Messages_Thread {
 				5 => 'search_terms',
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$r = bp_parse_args( $args, array(
diff --git a/wp-content/plugins/buddypress/bp-messages/classes/class-bp-rest-messages-endpoint.php b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-rest-messages-endpoint.php
new file mode 100644
index 000000000..feecfd80f
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-messages/classes/class-bp-rest-messages-endpoint.php
@@ -0,0 +1,1282 @@
+<?php
+/**
+ * BP REST: BP_REST_Messages_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Messages endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Messages_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = buddypress()->messages->id;
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		// Attention: (?P<id>[\d]+) is the placeholder for **Thread** ID, not the Message ID one.
+		$thread_endpoint = '/' . $this->rest_base . '/(?P<id>[\d]+)';
+
+		register_rest_route(
+			$this->namespace,
+			$thread_endpoint,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::READABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::DELETABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		// Register the starred route.
+		if ( bp_is_active( 'messages', 'star' ) ) {
+			// Attention: (?P<id>[\d]+) is the placeholder for **Message** ID, not the Thread ID one.
+			$starred_endpoint = '/' . $this->rest_base . '/' . bp_get_messages_starred_slug() . '/(?P<id>[\d]+)';
+
+			register_rest_route(
+				$this->namespace,
+				$starred_endpoint,
+				array(
+					'args'   => array(
+						'id' => array(
+							'description' => __( 'ID of one of the message of the Thread.', 'buddypress' ),
+							'type'        => 'integer',
+						),
+					),
+					array(
+						'methods'             => WP_REST_Server::EDITABLE,
+						'callback'            => array( $this, 'update_starred' ),
+						'permission_callback' => array( $this, 'update_starred_permissions_check' ),
+					),
+					'schema' => array( $this, 'get_item_schema' ),
+				)
+			);
+		}
+	}
+
+	/**
+	 * Retrieve threads.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'user_id'      => $request['user_id'],
+			'box'          => $request['box'],
+			'type'         => $request['type'],
+			'page'         => $request['page'],
+			'per_page'     => $request['per_page'],
+			'search_terms' => $request['search'],
+		);
+
+		// Include the meta_query for starred messages.
+		if ( 'starred' === $args['box'] ) {
+			$args['meta_query'] = array( // phpcs:ignore
+				array(
+					'key'   => 'starred_by_user',
+					'value' => $args['user_id'],
+				),
+			);
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_messages_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$messages_box = new BP_Messages_Box_Template( $args );
+
+		$retval = array();
+		foreach ( (array) $messages_box->threads as $thread ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $thread, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+		$response = bp_rest_response_add_total_headers( $response, $messages_box->total_thread_count, $args['per_page'] );
+
+		/**
+		 * Fires after a thread is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Messages_Box_Template  $messages_box Fetched thread.
+		 * @param WP_REST_Response          $response     The response data.
+		 * @param WP_REST_Request           $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_messages_get_items', $messages_box, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to thread items.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to see the messages.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['user_id'] );
+
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && (int) bp_loggedin_user_id() !== $user->ID && ! bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you cannot view the messages.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the messages `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_messages_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Get a single thread.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_item( $request ) {
+		$thread = $this->get_thread_object( $request['id'] );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $thread, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a thread is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Messages_Thread $thread  Thread object.
+		 * @param WP_REST_Response   $retval  The response data.
+		 * @param WP_REST_Request    $request The request sent to the API.
+		 */
+		do_action( 'bp_rest_messages_get_item', $thread, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to a thread item.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to see this thread.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$thread = $this->get_thread_object( $request['id'] );
+
+		if ( true === $retval && empty( $thread->thread_id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Sorry, this thread does not exist.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = true;
+		} else {
+			$id = messages_check_thread_access( $thread->thread_id );
+			if ( true === $retval && is_null( $id ) ) {
+				$retval = new WP_Error(
+					'bp_rest_authorization_required',
+					__( 'Sorry, you are not allowed to see this thread.', 'buddypress' ),
+					array(
+						'status' => rest_authorization_required_code(),
+					)
+				);
+			}
+
+			if ( true === $retval ) {
+				$retval = true;
+			}
+		}
+
+		/**
+		 * Filter the messages `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_messages_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Init a Messages Thread or add a reply to an existing Thread.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Prepare the message or the reply arguments.
+		$args = array(
+			'sender_id'  => $request['sender_id'],
+			'thread_id'  => 0,
+			'subject'    => $request['subject'],
+			'content'    => $request['message'],
+			'recipients' => $request['recipients'],
+		);
+
+		$error = new WP_Error(
+			'bp_rest_messages_create_failed',
+			__( 'There was an error trying to create the message.', 'buddypress' ),
+			array(
+				'status' => 500,
+			)
+		);
+
+		// Replying to an existing Thread ?
+		if ( $request['id'] ) {
+			// Try to get the thread.
+			$thread = $this->get_thread_object( $request['id'] );
+
+			// Validate the Thread exists.
+			if ( ! $thread->thread_id ) {
+				return $error;
+			}
+
+			$args['thread_id']  = (int) $thread->thread_id;
+			$args['recipients'] = wp_parse_id_list( wp_list_pluck( $thread->recipients, 'user_id' ) );
+		}
+
+		if ( ! $args['recipients'] ) {
+			return new WP_Error(
+				'bp_rest_messages_missing_recipients',
+				__( 'Please provide some recipients for your message or reply.', 'buddypress' ),
+				array(
+					'status' => 400,
+				)
+			);
+		}
+
+		// Create the message or the reply.
+		$thread_id = messages_new_message( $args );
+
+		// Validate it created a Thread or was added to it.
+		if ( ! $thread_id ) {
+			return $error;
+		}
+
+		// Make sure to get the newest message to update REST Additional fields.
+		$thread        = $this->get_thread_object( $thread_id );
+		$last_message  = wp_list_filter( $thread->messages, array( 'id' => $thread->last_message_id ) );
+		$last_message  = reset( $last_message );
+		$fields_update = $this->update_additional_fields_for_object( $last_message, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $thread, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a message is created via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Messages_Thread $thread  Thread object.
+		 * @param WP_REST_Response   $retval  The response data.
+		 * @param WP_REST_Request    $request The request sent to the API.
+		 */
+		do_action( 'bp_rest_messages_create_item', $thread, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to create a message.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to create a message.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the messages `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_messages_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update metadata for one of the messages of the thread.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the thread.
+		$thread = $this->get_thread_object( $request['id'] );
+		$error  = new WP_Error(
+			'bp_rest_messages_update_failed',
+			__( 'There was an error trying to update the message.', 'buddypress' ),
+			array(
+				'status' => 500,
+			)
+		);
+
+		if ( ! $thread->thread_id ) {
+			return $error;
+		}
+
+		// By default use the last message.
+		$message_id = $thread->last_message_id;
+		if ( $request['message_id'] ) {
+			$message_id = $request['message_id'];
+		}
+
+		$updated_message = wp_list_filter( $thread->messages, array( 'id' => $message_id ) );
+		$updated_message = reset( $updated_message );
+
+		/**
+		 * Filter here to allow more users to edit the message meta (eg: the recipients).
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param boolean             $value           Whether the user can edit the message meta.
+		 *                                             By default: only the sender and a community moderator can.
+		 * @param BP_Messages_Message $updated_message The updated message object.
+		 * @param WP_REST_Request     $request         The request sent to the API.
+		 */
+		$can_edit_item_meta = apply_filters(
+			'bp_rest_messages_can_edit_item_meta',
+			bp_loggedin_user_id() === $updated_message->sender_id || bp_current_user_can( 'bp_moderate' ),
+			$updated_message,
+			$request
+		);
+
+		// The message must exist in the thread, and the logged in user must be the sender.
+		if ( ! isset( $updated_message->id ) || ! $updated_message->id || ! $can_edit_item_meta ) {
+			return $error;
+		}
+
+		$fields_update = $this->update_additional_fields_for_object( $updated_message, $request );
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $thread, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a message is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Messages_Message $updated_message The updated message.
+		 * @param WP_REST_Response    $response        The response data.
+		 * @param WP_REST_Request     $request         The request sent to the API.
+		 */
+		do_action( 'bp_rest_messages_update_item', $updated_message, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update a message.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = $this->get_item_permissions_check( $request );
+
+		/**
+		 * Filter the message `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_messages_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Adds or removes the message from the current user's starred box.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_starred( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$message = $this->get_message_object( $request['id'] );
+
+		if ( empty( $message->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Sorry, this message does not exist.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$user_id = bp_loggedin_user_id();
+		$result  = false;
+		$action  = 'star';
+		$info    = __( 'Sorry, you cannot add the message to your starred box.', 'buddypress' );
+
+		if ( bp_messages_is_message_starred( $message->id, $user_id ) ) {
+			$action = 'unstar';
+			$info   = __( 'Sorry, you cannot remove the message from your starred box.', 'buddypress' );
+		}
+
+		$result = bp_messages_star_set_action(
+			array(
+				'user_id'    => $user_id,
+				'message_id' => $message->id,
+				'action'     => $action,
+			)
+		);
+
+		if ( ! $result ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_starred_message',
+				$info,
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Prepare the message for the REST response.
+		$data = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_message_for_response( $message, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $data );
+
+		/**
+		 * Fires after a message is starred/unstarred via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Messages_Message $message  Message object.
+		 * @param string              $action   Informs about the update performed.
+		 *                                      Possible values are `star` or `unstar`.
+		 * @param WP_REST_Response    $response The response data.
+		 * @param WP_REST_Request     $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_message_update_starred_item', $message, $action, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update user starred messages.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function update_starred_permissions_check( $request ) {
+		$retval    = true;
+		$thread_id = messages_get_message_thread_id( $request['id'] );
+
+		if ( ! is_user_logged_in() || ! messages_check_thread_access( $thread_id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to star/unstar messages.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the message `update_starred` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_messages_update_starred_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete a thread.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the thread before it's deleted.
+		$thread   = $this->get_thread_object( $request['id'] );
+		$previous = $this->prepare_item_for_response( $thread, $request );
+
+		$user_id = bp_loggedin_user_id();
+		if ( ! empty( $request['user_id'] ) ) {
+			$user_id = $request['user_id'];
+		}
+
+		// Check the user is one of the recipients.
+		$recipient_ids = wp_parse_id_list( wp_list_pluck( $thread->recipients, 'user_id' ) );
+
+		// Delete a thread.
+		if ( ! in_array( $user_id, $recipient_ids, true ) || ! messages_delete_thread( $thread->thread_id, $user_id ) ) {
+			return new WP_Error(
+				'bp_rest_messages_delete_thread_failed',
+				__( 'There was an error trying to delete a thread.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after a thread is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Messages_Thread $thread   Thread object.
+		 * @param WP_REST_Response   $response The response data.
+		 * @param WP_REST_Request    $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_messages_delete_item', $thread, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a thread.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->get_item_permissions_check( $request );
+
+		/**
+		 * Filter the thread `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_messages_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares message data for the REST response.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Messages_Message $message The Message object.
+	 * @param WP_REST_Request     $request Full details about the request.
+	 * @return array The Message data for the REST response.
+	 */
+	public function prepare_message_for_response( $message, $request ) {
+		$data = array(
+			'id'        => (int) $message->id,
+			'thread_id' => (int) $message->thread_id,
+			'sender_id' => (int) $message->sender_id,
+			'subject'   => array(
+				'raw'      => $message->subject,
+				'rendered' => apply_filters( 'bp_get_message_thread_subject', wp_staticize_emoji( $message->subject ) ),
+			),
+			'message'   => array(
+				'raw'      => $message->message,
+				'rendered' => apply_filters( 'bp_get_the_thread_message_content', wp_staticize_emoji( $message->message ) ),
+			),
+			'date_sent' => bp_rest_prepare_date_response( $message->date_sent ),
+		);
+
+		if ( bp_is_active( 'messages', 'star' ) ) {
+			$user_id = bp_loggedin_user_id();
+
+			if ( isset( $request['user_id'] ) && $request['user_id'] ) {
+				$user_id = (int) $request['user_id'];
+			}
+
+			$data['is_starred'] = bp_messages_is_message_starred( $data['id'], $user_id );
+		}
+
+		// Add REST Fields (BP Messages meta) data.
+		$data = $this->add_additional_fields_to_object( $data, $request );
+
+		/**
+		 * Filter a message value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array               $data    The message value for the REST response.
+		 * @param BP_Messages_Message $message The Message object.
+		 * @param WP_REST_Request     $request Request used to generate the response.
+		 */
+		return apply_filters( 'bp_rest_message_prepare_value', $data, $message, $request );
+	}
+
+	/**
+	 * Prepares recipient data for the REST response.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param object          $recipient The recipient object.
+	 * @param WP_REST_Request $request   Full details about the request.
+	 * @return array                     The recipient data for the REST response.
+	 */
+	public function prepare_recipient_for_response( $recipient, $request ) {
+		$data = array(
+			'id'        => (int) $recipient->id,
+			'user_id'   => (int) $recipient->user_id,
+			'user_link' => esc_url( bp_core_get_user_domain( $recipient->user_id ) ),
+		);
+
+		// Fetch the user avatar urls (Full & thumb).
+		if ( true === buddypress()->avatar->show_avatars ) {
+			foreach ( array( 'full', 'thumb' ) as $type ) {
+				$data['user_avatars'][ $type ] = bp_core_fetch_avatar(
+					array(
+						'item_id' => $recipient->user_id,
+						'html'    => false,
+						'type'    => $type,
+					)
+				);
+			}
+		}
+
+		$data = array_merge(
+			$data,
+			array(
+				'thread_id'    => (int) $recipient->thread_id,
+				'unread_count' => (int) $recipient->unread_count,
+				'sender_only'  => (int) $recipient->sender_only,
+				'is_deleted'   => (int) $recipient->is_deleted,
+			)
+		);
+
+		/**
+		 * Filter a recipient value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $data      The recipient value for the REST response.
+		 * @param object          $recipient The recipient object.
+		 * @param WP_REST_Request $request   Request used to generate the response.
+		 */
+		return apply_filters( 'bp_rest_messages_prepare_recipient_value', $data, $recipient, $request );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Messages_Thread $thread  Thread object.
+	 * @return array Links for the given thread.
+	 */
+	protected function prepare_links( $thread ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $base . $thread->thread_id ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+		);
+
+		// Add star links for each message of the thread.
+		if ( bp_is_active( 'messages', 'star' ) ) {
+			$starred_base = $base . bp_get_messages_starred_slug() . '/';
+
+			foreach ( $thread->messages as $message ) {
+				$links[ $message->id ] = array(
+					'href' => rest_url( $starred_base . $message->id ),
+				);
+			}
+		}
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array              $links   The prepared links of the REST response.
+		 * @param BP_Messages_Thread $thread  Thread object.
+		 */
+		return apply_filters( 'bp_rest_messages_prepare_links', $links, $thread );
+	}
+
+	/**
+	 * Prepares thread data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Messages_Thread $thread  Thread object.
+	 * @param WP_REST_Request    $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $thread, $request ) {
+		$excerpt = '';
+		if ( isset( $thread->last_message_content ) ) {
+			$excerpt = wp_strip_all_tags( bp_create_excerpt( $thread->last_message_content, 75 ) );
+		}
+
+		$data = array(
+			'id'             => $thread->thread_id,
+			'message_id'     => $thread->last_message_id,
+			'last_sender_id' => $thread->last_sender_id,
+			'subject'        => array(
+				'raw'      => $thread->last_message_subject,
+				'rendered' => apply_filters( 'bp_get_message_thread_subject', wp_staticize_emoji( $thread->last_message_subject ) ),
+			),
+			'excerpt'        => array(
+				'raw'      => $excerpt,
+				'rendered' => apply_filters( 'bp_get_message_thread_excerpt', $excerpt ),
+			),
+			'message'        => array(
+				'raw'      => $thread->last_message_content,
+				'rendered' => apply_filters( 'bp_get_message_thread_content', wp_staticize_emoji( $thread->last_message_content ) ),
+			),
+			'date'           => bp_rest_prepare_date_response( $thread->last_message_date ),
+			'unread_count'   => ! empty( $thread->unread_count ) ? $thread->unread_count : 0,
+			'sender_ids'     => $thread->sender_ids,
+			'recipients'     => array(),
+			'messages'       => array(),
+		);
+
+		// Loop through messages to prepare them for the response.
+		foreach ( $thread->messages as $message ) {
+			$data['messages'][] = $this->prepare_message_for_response( $message, $request );
+		}
+
+		// Loop through recipients to prepare them for the response.
+		foreach ( $thread->recipients as $recipient ) {
+			$data['recipients'][ $recipient->user_id ] = $this->prepare_recipient_for_response( $recipient, $request );
+		}
+
+		// Pluck starred message ids.
+		$data['starred_message_ids'] = array_keys( array_filter( wp_list_pluck( $data['messages'], 'is_starred', 'id' ) ) );
+
+		$context  = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $thread ) );
+
+		/**
+		 * Filter a thread value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response   $response Response generated by the request.
+		 * @param WP_REST_Request    $request  Request used to generate the response.
+		 * @param BP_Messages_Thread $thread   The thread object.
+		 */
+		return apply_filters( 'bp_rest_messages_prepare_value', $response, $request, $thread );
+	}
+
+	/**
+	 * Get thread object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $thread_id Thread ID.
+	 * @return BP_Messages_Thread
+	 */
+	public function get_thread_object( $thread_id ) {
+		return new BP_Messages_Thread( $thread_id );
+	}
+
+	/**
+	 * Get the message object thanks to its ID.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $message_id Message ID.
+	 * @return BP_Messages_Message
+	 */
+	public function get_message_object( $message_id ) {
+		return new BP_Messages_Message( $message_id );
+	}
+
+	/**
+	 * Select the item schema arguments needed for the CREATABLE, EDITABLE and DELETABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$key                       = 'get_item';
+		$args                      = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$args['id']['description'] = __( 'ID of the Messages Thread.', 'buddypress' );
+
+		if ( WP_REST_Server::CREATABLE === $method ) {
+			$key = 'create_item';
+
+			// Edit the Thread ID description and default properties.
+			$args['id']['description'] = __( 'ID of the Messages Thread. Required when replying to an existing Thread.', 'buddypress' );
+			$args['id']['default']     = 0;
+
+			// Add the sender_id argument.
+			$args['sender_id'] = array(
+				'description'       => __( 'The user ID of the Message sender.', 'buddypress' ),
+				'required'          => false,
+				'default'           => bp_loggedin_user_id(),
+				'type'              => 'integer',
+				'sanitize_callback' => 'absint',
+				'validate_callback' => 'rest_validate_request_arg',
+			);
+
+			// Edit subject's properties.
+			$args['subject']['type']        = 'string';
+			$args['subject']['default']     = false;
+			$args['subject']['description'] = __( 'Subject of the Message initializing the Thread.', 'buddypress' );
+
+			// Edit message's properties.
+			$args['message']['type']        = 'string';
+			$args['message']['description'] = __( 'Content of the Message to add to the Thread.', 'buddypress' );
+
+			// Edit recipients properties.
+			$args['recipients']['items']             = array( 'type' => 'integer' );
+			$args['recipients']['sanitize_callback'] = 'wp_parse_id_list';
+			$args['recipients']['validate_callback'] = 'rest_validate_request_arg';
+			$args['recipients']['description']       = __( 'The list of the recipients user IDs of the Message.', 'buddypress' );
+
+			// Remove unused properties for this transport method.
+			unset( $args['subject']['properties'], $args['message']['properties'] );
+
+		} else {
+			unset( $args['sender_id'], $args['subject'], $args['message'], $args['recipients'] );
+
+			if ( WP_REST_Server::EDITABLE === $method ) {
+				$key = 'update_item';
+
+				$args['message_id'] = array(
+					'description'       => __( 'By default the latest message of the thread will be updated. Specify this message ID to edit another message of the thread.', 'buddypress' ),
+					'required'          => false,
+					'type'              => 'integer',
+					'sanitize_callback' => 'absint',
+					'validate_callback' => 'rest_validate_request_arg',
+				);
+			}
+
+			if ( WP_REST_Server::DELETABLE === $method ) {
+				$key = 'delete_item';
+
+				$args['user_id'] = array(
+					'description'       => __( 'The user ID to remove from the thread', 'buddypress' ),
+					'required'          => true,
+					'type'              => 'integer',
+					'sanitize_callback' => 'absint',
+					'validate_callback' => 'rest_validate_request_arg',
+					'default'           => bp_loggedin_user_id(),
+				);
+			}
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $args Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_messages_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the message schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_messages',
+			'type'       => 'object',
+			'properties' => array(
+				'id'                  => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the Thread.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'message_id'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the latest message of the Thread.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'last_sender_id'      => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of latest sender of the Thread.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'subject'             => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Title of the latest message of the Thread.', 'buddypress' ),
+					'type'        => 'object',
+					'arg_options' => array(
+						'sanitize_callback' => null,
+						'validate_callback' => null,
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Title of the latest message of the Thread, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+							'default'     => false,
+						),
+						'rendered' => array(
+							'description' => __( 'Title of the latest message of the Thread, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+							'default'     => false,
+						),
+					),
+				),
+				'excerpt'             => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Summary of the latest message of the Thread.', 'buddypress' ),
+					'type'        => 'object',
+					'readonly'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => null,
+						'validate_callback' => null,
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Summary for the latest message of the Thread, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML summary for the latest message of the Thread, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+						),
+					),
+				),
+				'message'             => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Content of the latest message of the Thread.', 'buddypress' ),
+					'type'        => 'object',
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => null,
+						'validate_callback' => null,
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Content for the latest message of the Thread, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML content for the latest message of the Thread, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'date'                => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( "The date the latest message of the Thread, in the site's timezone.", 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'string',
+					'format'      => 'date-time',
+				),
+				'unread_count'        => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Total count of unread messages into the Thread for the requested user.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'sender_ids'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The list of user IDs for all messages in the Thread.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'array',
+					'items'       => array(
+						'type' => 'integer',
+					),
+				),
+				'recipients'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The list of recipient User Objects involved into the Thread.', 'buddypress' ),
+					'type'        => 'array',
+					'items'       => array(
+						'type' => 'object',
+					),
+				),
+				'messages'            => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'List of message objects for the thread.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'array',
+					'items'       => array(
+						'type' => 'object',
+					),
+				),
+				'starred_message_ids' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'List of starred message IDs.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'array',
+					'items'       => array(
+						'type' => 'integer',
+					),
+					'default'     => array(),
+				),
+			),
+		);
+
+		/**
+		 * Filters the message schema.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_message_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for Messages collections.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+		$boxes                        = array( 'sentbox', 'inbox' );
+
+		if ( bp_is_active( 'messages', 'star' ) ) {
+			$boxes[] = 'starred';
+		}
+
+		$params['box'] = array(
+			'description'       => __( 'Filter the result by box.', 'buddypress' ),
+			'default'           => 'inbox',
+			'type'              => 'string',
+			'enum'              => $boxes,
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['type'] = array(
+			'description'       => __( 'Filter the result by thread status.', 'buddypress' ),
+			'default'           => 'all',
+			'type'              => 'string',
+			'enum'              => array( 'all', 'read', 'unread' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Limit result to messages created by a specific user.', 'buddypress' ),
+			'default'           => bp_loggedin_user_id(),
+			'type'              => 'integer',
+			'required'          => true,
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_messages_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-filters.php b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-filters.php
index 1191826f8..e9fee111b 100644
--- a/wp-content/plugins/buddypress/bp-notifications/bp-notifications-filters.php
+++ b/wp-content/plugins/buddypress/bp-notifications/bp-notifications-filters.php
@@ -14,14 +14,16 @@ add_filter( 'wp_privacy_personal_data_exporters', 'bp_register_notifications_per
  * Register Notifications personal data exporter.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_register_notifications_personal_data_exporter( $exporters ) {
 	$exporters['buddypress-notifications'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Notifications Data', 'buddypress' ),
-		'callback'               => 'bp_notifications_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Notifications Data', 'buddypress' ),
+		'callback'                  => 'bp_notifications_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Notifications Data', 'BuddyPress Notifications data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php
index 52716bfe8..4333d8b30 100644
--- a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php
+++ b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-notifications-component.php
@@ -315,4 +315,16 @@ class BP_Notifications_Component extends BP_Component {
 
 		parent::setup_cache_groups();
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers Optional. See BP_Component::rest_api_init() for
+	 *                           description.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		parent::rest_api_init( array( 'BP_REST_Notifications_Endpoint' ) );
+	}
 }
diff --git a/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-rest-notifications-endpoint.php b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-rest-notifications-endpoint.php
new file mode 100644
index 000000000..7afb44a7e
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-notifications/classes/class-bp-rest-notifications-endpoint.php
@@ -0,0 +1,897 @@
+<?php
+/**
+ * BP REST: BP_REST_Notifications_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Notifications endpoints.
+ *
+ * @since 5.0.0
+ */
+class BP_REST_Notifications_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = buddypress()->notifications->id;
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<id>[\d]+)',
+			array(
+				'args'   => array(
+					'id' => array(
+						'description' => __( 'A unique numeric ID for the notification.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => array(
+						'context' => $this->get_context_param(
+							array(
+								'default' => 'view',
+							)
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve notifications.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'user_id'           => $request['user_id'],
+			'item_id'           => $request['item_id'],
+			'secondary_item_id' => $request['secondary_item_id'],
+			'component_name'    => $request['component_name'],
+			'component_action'  => $request['component_action'],
+			'order_by'          => $request['order_by'],
+			'sort_order'        => strtoupper( $request['sort_order'] ),
+			'is_new'            => $request['is_new'],
+			'page'              => $request['page'],
+			'per_page'          => $request['per_page'],
+		);
+
+		if ( empty( $request['component_action'] ) ) {
+			$args['component_action'] = false;
+		}
+
+		if ( empty( $request['component_name'] ) ) {
+			$args['component_name'] = false;
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_notifications_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$notifications = BP_Notifications_Notification::get( $args );
+
+		$retval = array();
+		foreach ( $notifications as $notification ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $notification, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after notifications are fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $notifications Fetched notifications.
+		 * @param WP_REST_Response $response      The response data.
+		 * @param WP_REST_Request  $request       The request sent to the API.
+		 */
+		do_action( 'bp_rest_notifications_get_items', $notifications, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to notification items.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function get_items_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() || ( bp_loggedin_user_id() !== $request['user_id'] && ! $this->can_see() ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to see the notifications.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the notifications `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_notifications_get_items_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Retrieve a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_item( $request ) {
+		$notification = $this->get_notification_object( $request );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $notification, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a notification is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Notifications_Notification $notification Fetched notification.
+		 * @param WP_REST_Response              $response     The response data.
+		 * @param WP_REST_Request               $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_notifications_get_item', $notification, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to get information about a specific notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to see the notification.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$notification = $this->get_notification_object( $request );
+
+		if ( true === $retval && is_null( $notification->item_id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_notification_invalid_id',
+				__( 'Invalid notification ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! $this->can_see( $notification->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you cannot view this notification.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the notifications `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_notifications_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Create a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$notification_id = bp_notifications_add_notification( $this->prepare_item_for_database( $request ) );
+
+		if ( ! is_numeric( $notification_id ) ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_create_notification',
+				__( 'Cannot create new notification.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$notification  = $this->get_notification_object( $notification_id );
+		$fields_update = $this->update_additional_fields_for_object( $notification, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $notification, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a notification is created via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Notifications_Notification  $notification The created notification.
+		 * @param WP_REST_Response               $response     The response data.
+		 * @param WP_REST_Request                $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_notifications_create_item', $notification, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to create a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = $this->get_items_permissions_check( $request );
+
+		/**
+		 * Filter the notifications `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_notifications_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$notification = $this->get_notification_object( $request );
+
+		if ( $request['is_new'] === $notification->is_new ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_notification_status',
+				__( 'Notification is already with the status you are trying to update into.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$updated = BP_Notifications_Notification::update(
+			array( 'is_new' => $request['is_new'] ),
+			array( 'id' => $notification->id )
+		);
+
+		if ( ! (bool) $updated ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_notification',
+				__( 'Cannot update the status of this notification.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Make sure to update the status of the notification.
+		$notification = $this->prepare_item_for_database( $request );
+
+		// Update additional fields.
+		$fields_update = $this->update_additional_fields_for_object( $notification, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $notification, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a notification is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Notifications_Notification $notification The updated notification.
+		 * @param WP_REST_Response            $response    The response data.
+		 * @param WP_REST_Request             $request     The request sent to the API.
+		 */
+		do_action( 'bp_rest_notifications_update_item', $notification, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = $this->get_item_permissions_check( $request );
+
+		/**
+		 * Filter the notifications `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_notifications_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the notification before it's deleted.
+		$notification = $this->get_notification_object( $request );
+		$previous     = $this->prepare_item_for_response( $notification, $request );
+
+		if ( ! BP_Notifications_Notification::delete( array( 'id' => $notification->id ) ) ) {
+			return new WP_Error(
+				'bp_rest_notification_invalid_id',
+				__( 'Invalid notification ID.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after a notification is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_Notifications_Notification $notification The deleted notification.
+		 * @param WP_REST_Response              $response     The response data.
+		 * @param WP_REST_Request               $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_notifications_delete_item', $notification, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a notification.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->get_item_permissions_check( $request );
+
+		/**
+		 * Filter the notifications `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_notifications_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares notification data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Notifications_Notification $notification Notification data.
+	 * @param WP_REST_Request               $request     Full details about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $notification, $request ) {
+		$data = array(
+			'id'                => $notification->id,
+			'user_id'           => $notification->user_id,
+			'item_id'           => $notification->item_id,
+			'secondary_item_id' => $notification->secondary_item_id,
+			'component'         => $notification->component_name,
+			'action'            => $notification->component_action,
+			'date'              => bp_rest_prepare_date_response( $notification->date_notified ),
+			'is_new'            => $notification->is_new,
+		);
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// @todo add prepare_links
+		$response = rest_ensure_response( $data );
+
+		/**
+		 * Filter a notification value returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response            $response    The response data.
+		 * @param WP_REST_Request             $request     Request used to generate the response.
+		 * @param BP_Notifications_Notification $notification Notification object.
+		 */
+		return apply_filters( 'bp_rest_notifications_prepare_value', $response, $request, $notification );
+	}
+
+	/**
+	 * Prepare a notification for create or update.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return stdClass
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_notification = new stdClass();
+		$schema                = $this->get_item_schema();
+		$notification          = $this->get_notification_object( $request );
+
+		if ( ! empty( $schema['properties']['id'] ) && ! empty( $notification->id ) ) {
+			$prepared_notification->id = $notification->id;
+		}
+
+		if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
+			$prepared_notification->user_id = (int) $request['user_id'];
+		} elseif ( isset( $notification->user_id ) ) {
+			$prepared_notification->user_id = $notification->user_id;
+		} else {
+			$prepared_notification->user_id = bp_loggedin_user_id();
+		}
+
+		if ( ! empty( $schema['properties']['item_id'] ) && isset( $request['item_id'] ) ) {
+			$prepared_notification->item_id = $request['item_id'];
+		} elseif ( isset( $notification->item_id ) ) {
+			$prepared_notification->item_id = $notification->item_id;
+		}
+
+		if ( ! empty( $schema['properties']['secondary_item_id'] ) && isset( $request['secondary_item_id'] ) ) {
+			$prepared_notification->secondary_item_id = $request['secondary_item_id'];
+		} elseif ( isset( $notification->secondary_item_id ) ) {
+			$prepared_notification->secondary_item_id = $notification->secondary_item_id;
+		}
+
+		if ( ! empty( $schema['properties']['component'] ) && isset( $request['component'] ) ) {
+			$prepared_notification->component_name = $request['component'];
+		} elseif ( isset( $notification->component_name ) ) {
+			$prepared_notification->component_name = $notification->component_name;
+		}
+
+		if ( ! empty( $schema['properties']['action'] ) && isset( $request['action'] ) ) {
+			$prepared_notification->component_action = $request['action'];
+		} elseif ( isset( $notification->component_action ) ) {
+			$prepared_notification->component_action = $notification->component_action;
+		}
+
+		if ( ! empty( $schema['properties']['is_new'] ) && isset( $request['is_new'] ) ) {
+			$prepared_notification->is_new = $request['is_new'];
+		} elseif ( isset( $notification->is_new ) ) {
+			$prepared_notification->is_new = $notification->is_new;
+		}
+
+		if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
+			$prepared_notification->date_notified = $request['date'];
+		} elseif ( isset( $notification->date_notified ) ) {
+			$prepared_notification->date_notified = $notification->date_notified;
+		}
+
+		/**
+		 * Filters a notification before it is inserted or updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param stdClass        $prepared_notification An object prepared for inserting or updating the database.
+		 * @param WP_REST_Request $request Request object.
+		 */
+		return apply_filters( 'bp_rest_notifications_pre_insert_value', $prepared_notification, $request );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_Notifications_Notification $notification Notification item.
+	 * @return array Links for the given plugin.
+	 */
+	protected function prepare_links( $notification ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $base . $notification->id ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+			'user'       => array(
+				'href'       => rest_url( bp_rest_get_user_url( $notification->user_id ) ),
+				'embeddable' => true,
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array                       $links       The prepared links of the REST response.
+		 * @param BP_Notifications_Notification $notification Notification object.
+		 */
+		return apply_filters( 'bp_rest_notifications_prepare_links', $links, $notification );
+	}
+
+	/**
+	 * Can this user see the notification?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $notification_id Notification ID.
+	 * @return bool
+	 */
+	protected function can_see( $notification_id = 0 ) {
+
+		// Check notification access.
+		if ( ! empty( $notification_id ) && (bool) BP_Notifications_Notification::check_access( bp_loggedin_user_id(), $notification_id ) ) {
+			return true;
+		}
+
+		// Moderators as well.
+		if ( bp_current_user_can( 'bp_moderate' ) ) {
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Get notification object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return BP_Notifications_Notification|string A notification object.
+	 */
+	public function get_notification_object( $request ) {
+		$notification_id = is_numeric( $request ) ? $request : (int) $request['id'];
+
+		$notification = bp_notifications_get_notification( $notification_id );
+
+		if ( empty( $notification->id ) ) {
+			return '';
+		}
+
+		return $notification;
+	}
+
+	/**
+	 * Select the item schema arguments needed for the EDITABLE method.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::EDITABLE === $method ) {
+			$key = 'update_item';
+
+			// Only switching the is_new property can be achieved.
+			$args                      = array_intersect_key( $args, array( 'is_new' => true ) );
+			$args['is_new']['default'] = 0;
+		} elseif ( WP_REST_Server::CREATABLE === $method ) {
+			$key = 'create_item';
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_notifications_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Get the notification schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_notifications',
+			'type'       => 'object',
+			'properties' => array(
+				'id'                => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the notification.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'user_id'           => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the user the notification is addressed to.', 'buddypress' ),
+					'type'        => 'integer',
+					'default'     => bp_loggedin_user_id(),
+				),
+				'item_id'           => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the item associated with the notification.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'secondary_item_id' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the secondary item associated with the notification.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'component'         => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The name of the BuddyPress component the notification relates to.', 'buddypress' ),
+					'type'        => 'string',
+				),
+				'action'            => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The name of the component\'s action the notification is about.', 'buddypress' ),
+					'type'        => 'string',
+				),
+				'date'              => array(
+					'description' => __( 'The date the notification was created, in the site\'s timezone.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+				),
+				'is_new'            => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether it\'s a new notification or not.', 'buddypress' ),
+					'type'        => 'integer',
+					'default'     => 1,
+				),
+			),
+		);
+
+		/**
+		 * Filters the notifications schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_notification_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for the notifications collections.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		// Remove the search argument.
+		unset( $params['search'] );
+
+		$params['order_by'] = array(
+			'description'       => __( 'Name of the field to order according to.', 'buddypress' ),
+			'default'           => 'id',
+			'type'              => 'string',
+			'enum'              => array( 'id', 'date_notified', 'item_id', 'secondary_item_id', 'component_name', 'component_action' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['sort_order'] = array(
+			'description'       => __( 'Order sort attribute ascending or descending.', 'buddypress' ),
+			'default'           => 'ASC',
+			'type'              => 'string',
+			'enum'              => array( 'ASC', 'DESC' ),
+			'sanitize_callback' => 'sanitize_key',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['component_name'] = array(
+			'description'       => __( 'Limit result set to notifications associated with a specific component', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_text_field',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['component_action'] = array(
+			'description'       => __( 'Limit result set to notifications associated with a specific component\'s action name.', 'buddypress' ),
+			'default'           => '',
+			'type'              => 'string',
+			'sanitize_callback' => 'sanitize_text_field',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Limit result set to notifications addressed to a specific user.', 'buddypress' ),
+			'default'           => bp_loggedin_user_id(),
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['item_id'] = array(
+			'description'       => __( 'Limit result set to notifications associated with a specific item ID.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['secondary_item_id'] = array(
+			'description'       => __( 'Limit result set to notifications associated with a specific secondary item ID.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['is_new'] = array(
+			'description'       => __( 'Limit result set to items from specific states.', 'buddypress' ),
+			'default'           => true,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_notifications_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-settings/bp-settings-filters.php b/wp-content/plugins/buddypress/bp-settings/bp-settings-filters.php
index 2c9d1e573..2fa1cd845 100644
--- a/wp-content/plugins/buddypress/bp-settings/bp-settings-filters.php
+++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-filters.php
@@ -13,14 +13,16 @@ add_filter( 'wp_privacy_personal_data_exporters', 'bp_settings_register_personal
  * Registers Settings personal data exporter.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_settings_register_personal_data_exporter( $exporters ) {
 	$exporters['buddypress-settings'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Settings Data', 'buddypress' ),
-		'callback'               => 'bp_settings_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Settings Data', 'buddypress' ),
+		'callback'                  => 'bp_settings_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Personal settings', 'BuddyPress Settings Data data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php b/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php
index bbfb320f8..b2d9c843c 100644
--- a/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php
+++ b/wp-content/plugins/buddypress/bp-settings/bp-settings-functions.php
@@ -316,26 +316,46 @@ function bp_settings_personal_data_export_exists( WP_User_Request $request ) {
  * Piggybacks off of the 'wp_privacy_personal_data_exporters' filter and the
  * 'exporter_friendly_name' key, which is meant for the admin area.
  *
- * @todo We should look for a custom key like 'exporter_frontend_name' if available.
- *
  * @since 4.0.0
+ * @since 5.0.0 Looks for a potential exporter's BP/custom friendly name.
  */
 function bp_settings_data_exporter_items() {
 	/** This filter is documented in /wp-admin/includes/ajax-actions.php */
-	$exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() );
+	$exporters             = apply_filters( 'wp_privacy_personal_data_exporters', array() );
+	$custom_friendly_names = apply_filters( 'bp_settings_data_custom_friendly_names', array(
+		'wordpress-comments' => _x( 'Comments', 'WP Comments data exporter friendly name', 'buddypress' ),
+		'wordpress-media'    => _x( 'Media', 'WP Media data exporter friendly name', 'buddypress' ),
+		'wordpress-user'     => _x( 'Personal information', 'WP Media data exporter friendly name', 'buddypress' ),
+	) );
 
 ?>
 	<ul>
 	<?php foreach ( $exporters as $exporter => $data ) :
+		// Use the exporter friendly name by default.
+		$friendly_name = $data['exporter_friendly_name'];
+
+		/**
+		 * Use the exporter friendly name if directly available
+		 * into the exporters array.
+		 */
+		if ( isset( $data['exporter_bp_friendly_name'] ) ) {
+			$friendly_name = $data['exporter_bp_friendly_name'];
+
+		// Look for a potential match into the custom friendly names.
+		} elseif ( isset( $custom_friendly_names[ $exporter ] ) ) {
+			$friendly_name = $custom_friendly_names[ $exporter ];
+		}
+
 		/**
-		 * Filters the data exporter name for display on the "Settings > Data" page.
+		 * Filters the data exporter friendly name for display on the "Settings > Data" page.
 		 *
 		 * @since 4.0.0
+		 * @since 5.0.0 replaces the `$name` parameter with the `$friendly_name` one.
 		 *
-		 * @param string $name     Data exporter friendly name.
-		 * @param string $exporter Internal exporter name.
+		 * @param string $friendly_name Data exporter friendly name.
+		 * @param string $exporter      Internal exporter name.
 		 */
-		$item = apply_filters( 'bp_settings_data_exporter_name', esc_html( $data['exporter_friendly_name'] ), $exporter );
+		$item = apply_filters( 'bp_settings_data_exporter_name', esc_html( $friendly_name ), $exporter );
 	?>
 
 		<li><?php echo $item; ?></li>
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php
index 722c41d37..313199026 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php
@@ -988,7 +988,7 @@ function bp_legacy_theme_post_update() {
 
 	} else {
 
-		/** This filter is documented in bp-activity/bp-activity-actions.php */
+		/** This filter is documented in bp-activity/actions/post.php */
 		$activity_id = apply_filters( 'bp_activity_custom_update', false, $object, $item_id, $_POST['content'] );
 	}
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css
index 5a5508a9d..06df2689f 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.css
@@ -624,7 +624,8 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content {
 }
 
 #buddypress div#message p,
-#sitewide-notice p {
+#sitewide-notice p,
+#sitewide-notice strong:first-child {
 	font-size: 90%;
 	display: block;
 	padding: 10px 15px;
@@ -1392,8 +1393,13 @@ fieldset.create-site label {
 	font-weight: 700;
 }
 
+#sitewide-notice,
+.bp-site-wide-message {
+	position: relative;
+}
+
 #buddypress div#message p,
-#sitewide-notice p {
+#sitewide-notice #message {
 	background-color: #ffd;
 	border: 1px solid #cb2;
 	color: #440;
@@ -1405,7 +1411,6 @@ fieldset.create-site label {
 .bp-site-wide-message #message p,
 .admin-bar-on #message p {
 	padding-left: 25px;
-	position: relative;
 }
 
 .bp-site-wide-message #message button,
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css
index c135277cd..c78d2f056 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress-rtl.min.css
@@ -1 +1 @@
-#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:right;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:right;margin-right:10px}#buddypress div.pagination .pagination-links{float:left;margin-left:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress div.pagination .pagination-links a:hover{font-weight:700}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:right}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:right}#buddypress form#whats-new-form #whats-new-content{margin-right:55px;padding:0 20px 20px 0}#buddypress form#whats-new-form p.activity-greeting{line-height:.5;margin-bottom:15px;margin-right:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:left;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:right}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-right:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-right:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 70px 0 0}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:1.5;margin-right:170px;margin-left:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:2.2}#buddypress .activity-header{margin-left:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 0 -8px 5px!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-left:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 0 5px 10px;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-right:2px solid #eaeaea;margin-right:5px;padding-right:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-right:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner{margin:0}#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:right;margin:0 0 5px 10px}#buddypress .activity-read-more{margin-right:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4d4d4d}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-left:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-right:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 70px 0 0;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-right:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 10px 0 0}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-right:30px;margin-top:0;padding-right:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 15px 0 10px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:right;height:25px;margin-left:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 40px 0 0}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-left:15px;clear:both}#buddypress div.activity-comments form.root{margin-right:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:right}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-right:50px;padding-right:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:right;margin:5px 40px 5px 0}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:left;margin:-39px 0 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:right;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:right;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 0 5px 5px;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:right;margin-right:10px}#buddypress ul.button-nav li{float:right;margin:0 0 10px 10px;list-style:none}#buddypress ul.button-nav li.current a{font-weight:700}#sitewide-notice #message{right:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress label.xprofile-field-label{display:inline}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-left:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:left}#buddypress div#signup-avatar img{margin:0 0 10px 15px}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-left:15px}#buddypress .standard-form div.radio ul{margin:10px 38px 15px 0;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:right;width:48%}#buddypress .standard-form #profile-details-section{float:left}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:right}body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:right}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 1% 0 0}#buddypress form.standard-form .main-column{margin-right:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:right}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-left:3em}.bp-screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.bp-screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled]{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-right:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;left:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{left:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-left:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p{margin:0}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:right}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon{display:none}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-right:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-right:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-left:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:right}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 0 -8px 5px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#buddypress div#message p,#sitewide-notice p{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.admin-bar-on #message p,.bp-site-wide-message #message p{padding-left:25px;position:relative}.admin-bar-on #message button,.bp-site-wide-message #message button{font-size:.8em;padding:2px 4px;position:absolute;left:0;top:0}.admin-bar-on #message button{left:10px;top:7px}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:right;margin-right:0}#buddypress div#item-header h2{line-height:1.2;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:right;margin:0 0 19px 15px}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle;display:inline-block}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;left:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:left;margin:0 15px 15px 0;text-align:left;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header div#item-actions a{display:inline-block}#buddypress div#item-header ul{margin-bottom:15px}#buddypress div#item-header ul:after{clear:both;content:"";display:table}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span{display:none}#buddypress div#item-header ul li{float:left;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:right;margin:10px 0 0 10px}body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header div#message.info{line-height:.8}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:right;margin:0 0 0 10px}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 60px 0 0;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-right:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;left:0;text-align:left}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:left;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:right;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:right;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:left;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-right:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:12% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:right;margin:0 0 0 10px;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-metadata:after{clear:both;content:"";display:table}#buddypress div#message-thread div.message-content{margin-right:45px}#buddypress div#message-thread div.message-options{text-align:left}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:left;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;left:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;color:#707070}#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-right:50px}.widget.buddypress div.avatar-block:after{clear:both;content:"";display:table}.widget.buddypress .item-avatar a{float:right;margin-bottom:15px;margin-left:10px}.widget.buddypress div.item-avatar img{display:inline-block;height:40px;margin:1px;width:40px}.widget.buddypress .item-avatar a,.widget.buddypress .item-avatar a img,.widget.buddypress .item-avatar a:active,.widget.buddypress .item-avatar a:focus,.widget.buddypress .item-avatar a:hover{box-shadow:none}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-left:10px}.widget.buddypress .bp-login-widget-user-avatar{float:right}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-right:60px}.widget.buddypress .bp-login-widget-user-links>div{margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-right:0;padding-right:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}.buddypress .bp-tooltip{position:relative}.bp-tooltip:after{background:#fff;border:1px solid #aaa;border-collapse:separate;border-radius:1px;box-shadow:-1px 1px 0 1px rgba(132,132,132,.3);color:#000;content:attr(data-bp-tooltip);display:none;font-family:sans-serif;font-size:11px;font-weight:400;letter-spacing:normal;line-height:1.5;margin-top:10px;max-width:240px;opacity:0;padding:3px 6px;position:absolute;left:50%;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;top:100%;transform:translateX(-50%);transition:opacity 2s ease-out;white-space:pre;word-wrap:break-word;z-index:998}.bp-tooltip:active:after,.bp-tooltip:focus:after,.bp-tooltip:hover:after{display:inline-block;opacity:1;overflow:visible;text-decoration:none;z-index:999}#group-admins .bp-tooltip:after,#group-mods .bp-tooltip:after,.message-metadata .bp-tooltip:after{left:0;text-align:left;transform:translateX(0)}.feed .bp-tooltip:after,.item-list .bp-tooltip:after,.messages-notices .bp-tooltip:after{right:0;left:auto;text-align:right;transform:translateX(0)}.admin-bar-on .bp-tooltip:after,.bp-site-wide-message .bp-tooltip:after{left:50px}@media only screen and (max-width:480px){#buddypress div.dir-search{float:left;margin-top:-50px;text-align:left}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-right:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search{clear:right;float:right;margin-top:0;text-align:right}#buddypress li#groups-order-select{clear:right;float:right}#buddypress ul.item-list li div.action{clear:right;float:right;margin-top:0;margin-right:70px;position:relative;top:0;left:0;text-align:right}#buddypress ul.item-list li div.item-desc{clear:right;float:right;margin:10px 0 0;width:auto}#buddypress li div.item{margin-right:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-right:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:right;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:right}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-right:45px}h1 a.bp-title-button{clear:right;float:right;margin:10px 0 20px}}
\ No newline at end of file
+#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:right;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:right;margin-right:10px}#buddypress div.pagination .pagination-links{float:left;margin-left:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress div.pagination .pagination-links a:hover{font-weight:700}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:right}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:right}#buddypress form#whats-new-form #whats-new-content{margin-right:55px;padding:0 20px 20px 0}#buddypress form#whats-new-form p.activity-greeting{line-height:.5;margin-bottom:15px;margin-right:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:left;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:right}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-right:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-right:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 70px 0 0}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:1.5;margin-right:170px;margin-left:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:2.2}#buddypress .activity-header{margin-left:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 0 -8px 5px!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-left:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 0 5px 10px;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-right:2px solid #eaeaea;margin-right:5px;padding-right:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-right:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner{margin:0}#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:right;margin:0 0 5px 10px}#buddypress .activity-read-more{margin-right:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4d4d4d}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-left:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-right:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 70px 0 0;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-right:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 10px 0 0}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-right:30px;margin-top:0;padding-right:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 15px 0 10px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:right;height:25px;margin-left:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 40px 0 0}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-left:15px;clear:both}#buddypress div.activity-comments form.root{margin-right:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:right}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-right:50px;padding-right:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:right;margin:5px 40px 5px 0}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:left;margin:-39px 0 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p,#sitewide-notice strong:first-child{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:right;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:right;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 0 5px 5px;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:right;margin-right:10px}#buddypress ul.button-nav li{float:right;margin:0 0 10px 10px;list-style:none}#buddypress ul.button-nav li.current a{font-weight:700}#sitewide-notice #message{right:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress label.xprofile-field-label{display:inline}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-left:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:left}#buddypress div#signup-avatar img{margin:0 0 10px 15px}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-left:15px}#buddypress .standard-form div.radio ul{margin:10px 38px 15px 0;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:right;width:48%}#buddypress .standard-form #profile-details-section{float:left}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:right}body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:right}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 1% 0 0}#buddypress form.standard-form .main-column{margin-right:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:right}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-left:3em}.bp-screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.bp-screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled]{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-right:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;left:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{left:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-left:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p{margin:0}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:right}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon{display:none}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-right:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-right:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-left:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:right}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 0 -8px 5px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#sitewide-notice,.bp-site-wide-message{position:relative}#buddypress div#message p,#sitewide-notice #message{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.admin-bar-on #message p,.bp-site-wide-message #message p{padding-left:25px}.admin-bar-on #message button,.bp-site-wide-message #message button{font-size:.8em;padding:2px 4px;position:absolute;left:0;top:0}.admin-bar-on #message button{left:10px;top:7px}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:right;margin-right:0}#buddypress div#item-header h2{line-height:1.2;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:right;margin:0 0 19px 15px}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle;display:inline-block}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;left:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:left;margin:0 15px 15px 0;text-align:left;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header div#item-actions a{display:inline-block}#buddypress div#item-header ul{margin-bottom:15px}#buddypress div#item-header ul:after{clear:both;content:"";display:table}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span{display:none}#buddypress div#item-header ul li{float:left;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:right;margin:10px 0 0 10px}body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header div#message.info{line-height:.8}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:right;margin:0 0 0 10px}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 60px 0 0;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-right:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;left:0;text-align:left}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:left;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:right;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:right;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:left;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-right:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:12% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:right;margin:0 0 0 10px;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-metadata:after{clear:both;content:"";display:table}#buddypress div#message-thread div.message-content{margin-right:45px}#buddypress div#message-thread div.message-options{text-align:left}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:left;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;left:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;color:#707070}#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-right:50px}.widget.buddypress div.avatar-block:after{clear:both;content:"";display:table}.widget.buddypress .item-avatar a{float:right;margin-bottom:15px;margin-left:10px}.widget.buddypress div.item-avatar img{display:inline-block;height:40px;margin:1px;width:40px}.widget.buddypress .item-avatar a,.widget.buddypress .item-avatar a img,.widget.buddypress .item-avatar a:active,.widget.buddypress .item-avatar a:focus,.widget.buddypress .item-avatar a:hover{box-shadow:none}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-left:10px}.widget.buddypress .bp-login-widget-user-avatar{float:right}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-right:60px}.widget.buddypress .bp-login-widget-user-links>div{margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-right:0;padding-right:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}.buddypress .bp-tooltip{position:relative}.bp-tooltip:after{background:#fff;border:1px solid #aaa;border-collapse:separate;border-radius:1px;box-shadow:-1px 1px 0 1px rgba(132,132,132,.3);color:#000;content:attr(data-bp-tooltip);display:none;font-family:sans-serif;font-size:11px;font-weight:400;letter-spacing:normal;line-height:1.5;margin-top:10px;max-width:240px;opacity:0;padding:3px 6px;position:absolute;left:50%;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;top:100%;transform:translateX(-50%);transition:opacity 2s ease-out;white-space:pre;word-wrap:break-word;z-index:998}.bp-tooltip:active:after,.bp-tooltip:focus:after,.bp-tooltip:hover:after{display:inline-block;opacity:1;overflow:visible;text-decoration:none;z-index:999}#group-admins .bp-tooltip:after,#group-mods .bp-tooltip:after,.message-metadata .bp-tooltip:after{left:0;text-align:left;transform:translateX(0)}.feed .bp-tooltip:after,.item-list .bp-tooltip:after,.messages-notices .bp-tooltip:after{right:0;left:auto;text-align:right;transform:translateX(0)}.admin-bar-on .bp-tooltip:after,.bp-site-wide-message .bp-tooltip:after{left:50px}@media only screen and (max-width:480px){#buddypress div.dir-search{float:left;margin-top:-50px;text-align:left}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-right:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search{clear:right;float:right;margin-top:0;text-align:right}#buddypress li#groups-order-select{clear:right;float:right}#buddypress ul.item-list li div.action{clear:right;float:right;margin-top:0;margin-right:70px;position:relative;top:0;left:0;text-align:right}#buddypress ul.item-list li div.item-desc{clear:right;float:right;margin:10px 0 0;width:auto}#buddypress li div.item{margin-right:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-right:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:right;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:right}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-right:45px}h1 a.bp-title-button{clear:right;float:right;margin:10px 0 20px}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css
index c6852777f..8bdcffacf 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.css
@@ -624,7 +624,8 @@ body.activity-permalink #buddypress div.activity-comments div.acomment-content {
 }
 
 #buddypress div#message p,
-#sitewide-notice p {
+#sitewide-notice p,
+#sitewide-notice strong:first-child {
 	font-size: 90%;
 	display: block;
 	padding: 10px 15px;
@@ -1392,8 +1393,13 @@ fieldset.create-site label {
 	font-weight: 700;
 }
 
+#sitewide-notice,
+.bp-site-wide-message {
+	position: relative;
+}
+
 #buddypress div#message p,
-#sitewide-notice p {
+#sitewide-notice #message {
 	background-color: #ffd;
 	border: 1px solid #cb2;
 	color: #440;
@@ -1405,7 +1411,6 @@ fieldset.create-site label {
 .bp-site-wide-message #message p,
 .admin-bar-on #message p {
 	padding-right: 25px;
-	position: relative;
 }
 
 .bp-site-wide-message #message button,
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css
index 0a289725d..3f76a5035 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/css/buddypress.min.css
@@ -1 +1 @@
-#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:left;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:left;margin-left:10px}#buddypress div.pagination .pagination-links{float:right;margin-right:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress div.pagination .pagination-links a:hover{font-weight:700}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:left}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:left}#buddypress form#whats-new-form #whats-new-content{margin-left:55px;padding:0 0 20px 20px}#buddypress form#whats-new-form p.activity-greeting{line-height:.5;margin-bottom:15px;margin-left:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:right;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:left}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-left:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-left:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 0 0 70px}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:1.5;margin-left:170px;margin-right:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:2.2}#buddypress .activity-header{margin-right:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 5px -8px 0!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-right:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 10px 5px 0;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-left:2px solid #eaeaea;margin-left:5px;padding-left:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-left:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner{margin:0}#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:left;margin:0 10px 5px 0}#buddypress .activity-read-more{margin-left:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4d4d4d}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-right:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-left:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 0 0 70px;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-left:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 0 0 10px}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-left:30px;margin-top:0;padding-left:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 10px 0 15px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:left;height:25px;margin-right:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 0 0 40px}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-right:15px;clear:both}#buddypress div.activity-comments form.root{margin-left:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:left}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-left:50px;padding-left:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:left;margin:5px 0 5px 40px}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:right;margin:-39px 0 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:left;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:left;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 5px 5px 0;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:left;margin-left:10px}#buddypress ul.button-nav li{float:left;margin:0 10px 10px 0;list-style:none}#buddypress ul.button-nav li.current a{font-weight:700}#sitewide-notice #message{left:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress label.xprofile-field-label{display:inline}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-right:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:right}#buddypress div#signup-avatar img{margin:0 15px 10px 0}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-right:15px}#buddypress .standard-form div.radio ul{margin:10px 0 15px 38px;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:left;width:48%}#buddypress .standard-form #profile-details-section{float:right}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:left}body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:left}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 0 0 1%}#buddypress form.standard-form .main-column{margin-left:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:left}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-right:3em}.bp-screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.bp-screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled]{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-left:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;right:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{right:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-right:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p{margin:0}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:left}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon{display:none}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-left:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-left:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-right:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:left}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 5px -8px 0}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#buddypress div#message p,#sitewide-notice p{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.admin-bar-on #message p,.bp-site-wide-message #message p{padding-right:25px;position:relative}.admin-bar-on #message button,.bp-site-wide-message #message button{font-size:.8em;padding:2px 4px;position:absolute;right:0;top:0}.admin-bar-on #message button{right:10px;top:7px}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:left;margin-left:0}#buddypress div#item-header h2{line-height:1.2;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:left;margin:0 15px 19px 0}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle;display:inline-block}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;right:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:right;margin:0 0 15px 15px;text-align:right;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header div#item-actions a{display:inline-block}#buddypress div#item-header ul{margin-bottom:15px}#buddypress div#item-header ul:after{clear:both;content:"";display:table}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span{display:none}#buddypress div#item-header ul li{float:right;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:left;margin:10px 10px 0 0}body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header div#message.info{line-height:.8}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:left;margin:0 10px 0 0}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 0 0 60px;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-left:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;right:0;text-align:right}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:right;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:left;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:left;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:right;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-left:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:88% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:left;margin:0 10px 0 0;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-metadata:after{clear:both;content:"";display:table}#buddypress div#message-thread div.message-content{margin-left:45px}#buddypress div#message-thread div.message-options{text-align:right}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:right;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;right:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f5f5f5;color:#707070}#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-left:50px}.widget.buddypress div.avatar-block:after{clear:both;content:"";display:table}.widget.buddypress .item-avatar a{float:left;margin-bottom:15px;margin-right:10px}.widget.buddypress div.item-avatar img{display:inline-block;height:40px;margin:1px;width:40px}.widget.buddypress .item-avatar a,.widget.buddypress .item-avatar a img,.widget.buddypress .item-avatar a:active,.widget.buddypress .item-avatar a:focus,.widget.buddypress .item-avatar a:hover{box-shadow:none}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-right:10px}.widget.buddypress .bp-login-widget-user-avatar{float:left}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-left:60px}.widget.buddypress .bp-login-widget-user-links>div{margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-left:0;padding-left:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}.buddypress .bp-tooltip{position:relative}.bp-tooltip:after{background:#fff;border:1px solid #aaa;border-collapse:separate;border-radius:1px;box-shadow:1px 1px 0 1px rgba(132,132,132,.3);color:#000;content:attr(data-bp-tooltip);display:none;font-family:sans-serif;font-size:11px;font-weight:400;letter-spacing:normal;line-height:1.5;margin-top:10px;max-width:240px;opacity:0;padding:3px 6px;position:absolute;right:50%;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;top:100%;transform:translateX(50%);transition:opacity 2s ease-out;white-space:pre;word-wrap:break-word;z-index:998}.bp-tooltip:active:after,.bp-tooltip:focus:after,.bp-tooltip:hover:after{display:inline-block;opacity:1;overflow:visible;text-decoration:none;z-index:999}#group-admins .bp-tooltip:after,#group-mods .bp-tooltip:after,.message-metadata .bp-tooltip:after{right:0;text-align:right;transform:translateX(0)}.feed .bp-tooltip:after,.item-list .bp-tooltip:after,.messages-notices .bp-tooltip:after{left:0;right:auto;text-align:left;transform:translateX(0)}.admin-bar-on .bp-tooltip:after,.bp-site-wide-message .bp-tooltip:after{right:50px}@media only screen and (max-width:480px){#buddypress div.dir-search{float:right;margin-top:-50px;text-align:right}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-left:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search{clear:left;float:left;margin-top:0;text-align:left}#buddypress li#groups-order-select{clear:left;float:left}#buddypress ul.item-list li div.action{clear:left;float:left;margin-top:0;margin-left:70px;position:relative;top:0;right:0;text-align:left}#buddypress ul.item-list li div.item-desc{clear:left;float:left;margin:10px 0 0;width:auto}#buddypress li div.item{margin-left:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-left:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:left;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:left}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-left:45px}h1 a.bp-title-button{clear:left;float:left;margin:10px 0 20px}}
\ No newline at end of file
+#buddypress div.pagination{background:0 0;border:none;color:#767676;font-size:small;margin:0;position:relative;display:block;float:left;width:100%;padding:10px 0}#buddypress div.pagination .pag-count{float:left;margin-left:10px}#buddypress div.pagination .pagination-links{float:right;margin-right:10px}#buddypress div.pagination .pagination-links a,#buddypress div.pagination .pagination-links span{font-size:90%;padding:0 5px}#buddypress div.pagination .pagination-links a:hover{font-weight:700}#buddypress noscript div.pagination{margin-bottom:15px}#buddypress #nav-above{display:none}#buddypress .paged #nav-above{display:block}#buddypress img.wp-smiley{border:none!important;clear:none!important;float:none!important;margin:0!important;padding:0!important}#buddypress .clear{clear:left}#buddypress #activity-stream{margin-top:-5px}#buddypress #activity-stream p{margin:5px 0}#buddypress #item-body form#whats-new-form{margin:0;padding:0}#buddypress .home-page form#whats-new-form{border-bottom:none;padding-bottom:0}#buddypress form#whats-new-form #whats-new-avatar{float:left}#buddypress form#whats-new-form #whats-new-content{margin-left:55px;padding:0 0 20px 20px}#buddypress form#whats-new-form p.activity-greeting{line-height:.5;margin-bottom:15px;margin-left:75px}#buddypress form#whats-new-form textarea{background:#fff;box-sizing:border-box;color:#555;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}body.no-js #buddypress form#whats-new-form textarea{height:50px}#buddypress form#whats-new-form #whats-new-options select{max-width:200px;margin-top:12px}#buddypress form#whats-new-form #whats-new-submit{float:right;margin-top:12px}#buddypress #whats-new-options:after{clear:both;content:"";display:table}body.no-js #buddypress #whats-new-options{height:auto}#buddypress #whats-new:focus{border-color:rgba(31,179,221,.9)!important;outline-color:rgba(31,179,221,.9)}#buddypress ul.activity-list li{overflow:hidden;padding:15px 0 0;list-style:none}#buddypress .activity-list .activity-avatar{float:left}#buddypress ul.item-list.activity-list li.has-comments{padding-bottom:15px}body.activity-permalink #buddypress ul.activity-list li.has-comments{padding-bottom:0}#buddypress .activity-list li.mini{font-size:80%;position:relative}#buddypress .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-list li.mini .activity-avatar img.avatar{height:20px;margin-left:30px;width:20px}#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.FB_profile_pic,#buddypress .activity-permalink .activity-list li.mini .activity-avatar img.avatar{height:auto;margin-left:0;width:auto}body.activity-permalink #buddypress .activity-list>li:first-child{padding-top:0}#buddypress .activity-list li .activity-content{position:relative}#buddypress .activity-list li.mini .activity-content p{margin:0}#buddypress .activity-list li.mini .activity-comments{clear:both;font-size:120%}body.activity-permalink #buddypress li.mini .activity-meta{margin-top:4px}#buddypress .activity-list li .activity-inreplyto{color:#767676;font-size:80%}#buddypress .activity-list li .activity-inreplyto>p{margin:0;display:inline}#buddypress .activity-list li .activity-inreplyto blockquote,#buddypress .activity-list li .activity-inreplyto div.activity-inner{background:0 0;border:none;display:inline;margin:0;overflow:hidden;padding:0}#buddypress .activity-list .activity-content{margin:0 0 0 70px}body.activity-permalink #buddypress .activity-list li .activity-content{border:none;font-size:100%;line-height:1.5;margin-left:170px;margin-right:0;padding:0}body.activity-permalink #buddypress .activity-list li .activity-header>p{margin:0;padding:5px 0 0}#buddypress .activity-list .activity-content .activity-header,#buddypress .activity-list .activity-content .comment-header{color:#767676;line-height:2.2}#buddypress .activity-header{margin-right:20px}#buddypress .acomment-meta a,#buddypress .activity-header a,#buddypress .comment-meta a{text-decoration:none}#buddypress .activity-list .activity-content .activity-header img.avatar{float:none!important;margin:0 5px -8px 0!important}#buddypress a.bp-secondary-action,#buddypress span.highlight{font-size:80%;padding:0;margin-right:5px;text-decoration:none}#buddypress .activity-list .activity-content .activity-inner,#buddypress .activity-list .activity-content blockquote{margin:10px 10px 5px 0;overflow:hidden}#buddypress .activity-list li.new_forum_post .activity-content .activity-inner,#buddypress .activity-list li.new_forum_topic .activity-content .activity-inner{border-left:2px solid #eaeaea;margin-left:5px;padding-left:10px}body.activity-permalink #buddypress .activity-content .activity-inner,body.activity-permalink #buddypress .activity-content blockquote{margin-left:0;margin-top:5px}#buddypress .activity-inner>p{word-wrap:break-word}#buddypress .activity-inner>.activity-inner{margin:0}#buddypress .activity-inner>blockquote{margin:0}#buddypress .activity-list .activity-content img.thumbnail{border:2px solid #eee;float:left;margin:0 10px 5px 0}#buddypress .activity-read-more{margin-left:1em;white-space:nowrap}#buddypress .activity-list li.load-more,#buddypress .activity-list li.load-newest{background:#f0f0f0;font-size:110%;margin:15px 0;padding:10px 15px;text-align:center}#buddypress .activity-list li.load-more a,#buddypress .activity-list li.load-newest a{color:#4d4d4d}#buddypress div.activity-meta{margin:18px 0 0}body.activity-permalink #buddypress div.activity-meta{margin-bottom:6px}#buddypress div.activity-meta a{padding:4px 8px}#buddypress a.activity-time-since{color:#767676;text-decoration:none}#buddypress a.activity-time-since:hover{color:#767676;text-decoration:underline}#buddypress #reply-title small a,#buddypress a.bp-primary-action{font-size:80%;margin-right:5px;text-decoration:none}#buddypress #reply-title small a span,#buddypress a.bp-primary-action span{background:#767676;color:#fff;font-size:90%;margin-left:2px;padding:0 5px}#buddypress #reply-title small a:hover span,#buddypress a.bp-primary-action:hover span{background:#555;color:#fff}#buddypress div.activity-comments{margin:0 0 0 70px;overflow:hidden;position:relative;width:auto;clear:both}body.activity-permalink #buddypress div.activity-comments{background:0 0;margin-left:170px;width:auto}#buddypress div.activity-comments>ul{padding:0 0 0 10px}#buddypress div.activity-comments ul,#buddypress div.activity-comments ul li{border:none;list-style:none}#buddypress div.activity-comments ul{clear:both;margin:0}#buddypress div.activity-comments ul li{border-top:1px solid #eee;padding:10px 0 0}body.activity-permalink #buddypress .activity-list li.mini .activity-comments{clear:none;margin-top:0}body.activity-permalink #buddypress div.activity-comments ul li{border-width:1px;padding:10px 0 0}#buddypress div.activity-comments>ul>li:first-child{border-top:none}#buddypress div.activity-comments ul li:last-child{margin-bottom:0}#buddypress div.activity-comments ul li>ul{margin-left:30px;margin-top:0;padding-left:10px}body.activity-permalink #buddypress div.activity-comments ul li>ul{margin-top:10px}body.activity-permalink #buddypress div.activity-comments>ul{padding:0 10px 0 15px}#buddypress div.activity-comments div.acomment-avatar img{border-width:1px;float:left;height:25px;margin-right:10px;width:25px}#buddypress div.activity-comments div.acomment-content{font-size:80%;margin:5px 0 0 40px}#buddypress div.acomment-content .activity-delete-link,#buddypress div.acomment-content .comment-header,#buddypress div.acomment-content .time-since{display:none}body.activity-permalink #buddypress div.activity-comments div.acomment-content{font-size:90%}#buddypress div.activity-comments div.acomment-meta{color:#767676;font-size:80%}#buddypress div.activity-comments form.ac-form{display:none;padding:10px}#buddypress div.activity-comments li form.ac-form{margin-right:15px;clear:both}#buddypress div.activity-comments form.root{margin-left:0}#buddypress div.activity-comments div#message{margin-top:15px;margin-bottom:0}#buddypress div.activity-comments form .ac-textarea{background:#fff;border:1px inset #ccc;margin-bottom:10px;padding:8px}#buddypress div.activity-comments form textarea{border:none;background:0 0;box-shadow:none;outline:0;color:#555;font-family:inherit;font-size:100%;height:60px;padding:0;margin:0;width:100%}#buddypress div.activity-comments form input{margin-top:5px}#buddypress div.activity-comments form div.ac-reply-avatar{float:left}#buddypress div.ac-reply-avatar img{border:1px solid #eee}#buddypress div.activity-comments form div.ac-reply-content{color:#767676;margin-left:50px;padding-left:15px}#buddypress div.activity-comments form div.ac-reply-content a{text-decoration:none}#buddypress .acomment-options{float:left;margin:5px 0 5px 40px}#buddypress .acomment-options a{color:#767676}#buddypress .acomment-options a:hover{color:inherit}#buddypress div.dir-search{float:right;margin:-39px 0 0 0}#buddypress div.dir-search input[type=text],#buddypress li.groups-members-search input[type=text]{font-size:90%;padding:1px 3px}#buddypress .current-member-type{font-style:italic}#buddypress .dir-form{clear:both}#buddypress div#message{margin:0 0 15px}#buddypress #message.info{margin-bottom:0}#buddypress div#message.updated{clear:both;display:block}#buddypress div#message p,#sitewide-notice p,#sitewide-notice strong:first-child{font-size:90%;display:block;padding:10px 15px}#buddypress div#message.error p{background-color:#fdc;border:1px solid #a00;clear:left;color:#800}#buddypress div#message.warning p{background-color:#ffe0af;border:1px solid #ffd087;clear:left;color:#800}#buddypress div#message.updated p{background-color:#efc;border:1px solid #591;color:#250}#buddypress #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;margin:5px 5px 5px 0;padding:5px;text-align:center;width:150px}#buddypress .standard-form #basic-details-section #pass-strength-result{width:35%}#buddypress #pass-strength-result.bad,#buddypress #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c!important;display:block}#buddypress #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important;display:block}#buddypress #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important;display:block}#buddypress #pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important;display:block}#buddypress .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px;padding:6px;width:90%}#buddypress div.accept,#buddypress div.reject{float:left;margin-left:10px}#buddypress ul.button-nav li{float:left;margin:0 10px 10px 0;list-style:none}#buddypress ul.button-nav li.current a{font-weight:700}#sitewide-notice #message{left:2%;position:fixed;top:1em;width:96%;z-index:9999}#sitewide-notice.admin-bar-on #message{top:3.3em}#sitewide-notice strong{display:block;margin-bottom:-1em}#buddypress form fieldset{border:0;padding:0}#buddypress .dir-search input[type=search],#buddypress .dir-search input[type=text],#buddypress .groups-members-search input[type=search],#buddypress .groups-members-search input[type=text],#buddypress .standard-form input[type=color],#buddypress .standard-form input[type=date],#buddypress .standard-form input[type=datetime-local],#buddypress .standard-form input[type=datetime],#buddypress .standard-form input[type=email],#buddypress .standard-form input[type=month],#buddypress .standard-form input[type=number],#buddypress .standard-form input[type=password],#buddypress .standard-form input[type=range],#buddypress .standard-form input[type=search],#buddypress .standard-form input[type=tel],#buddypress .standard-form input[type=text],#buddypress .standard-form input[type=time],#buddypress .standard-form input[type=url],#buddypress .standard-form input[type=week],#buddypress .standard-form select,#buddypress .standard-form textarea{border:1px solid #ccc;background:#fafafa;border-radius:0;color:#737373;font:inherit;font-size:100%;padding:6px}#buddypress .standard-form select{padding:3px}#buddypress .standard-form input[type=password]{margin-bottom:5px}#buddypress .standard-form label,#buddypress .standard-form legend,#buddypress .standard-form span.label{display:block;font-weight:700;margin:15px 0 5px;width:auto}#buddypress label.xprofile-field-label{display:inline}#buddypress .standard-form #invite-list label,#buddypress .standard-form p label{font-weight:400;margin:auto}#buddypress .standard-form .checkbox label,#buddypress .standard-form .radio label{color:#767676;font-size:100%;font-weight:400;margin:5px 0 0}#buddypress .standard-form .checkbox label input,#buddypress .standard-form .radio label input{margin-right:3px}#buddypress .standard-form#sidebar-login-form label{margin-top:5px}#buddypress .standard-form input[type=text]{width:75%}#buddypress .standard-form#sidebar-login-form input[type=password],#buddypress .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}#buddypress .standard-form #basic-details-section input[type=password],#buddypress .standard-form #blog-details-section input#signup_blog_url{width:35%}#buddypress #commentform input[type=text],#buddypress #commentform textarea,#buddypress .form-allowed-tags,#buddypress .standard-form#signup_form input[type=text],#buddypress .standard-form#signup_form textarea{width:90%}#buddypress .standard-form#signup_form div.submit{float:right}#buddypress div#signup-avatar img{margin:0 15px 10px 0}#buddypress .standard-form textarea{width:75%;height:120px}#buddypress .standard-form textarea#message_content{height:200px}#buddypress .standard-form#send-reply textarea{width:97.5%}#buddypress .standard-form p.description{color:#767676;font-size:80%;margin:5px 0}#buddypress .standard-form div.submit{clear:both;padding:15px 0 0}#buddypress .standard-form p.submit{margin-bottom:0;padding:15px 0 0}#buddypress .standard-form div.submit input{margin-right:15px}#buddypress .standard-form div.radio ul{margin:10px 0 15px 38px;list-style:disc}#buddypress .standard-form div.radio ul li{margin-bottom:5px}#buddypress .standard-form a.clear-value{display:block;margin-top:5px;outline:0}#buddypress .standard-form #basic-details-section,#buddypress .standard-form #blog-details-section,#buddypress .standard-form #profile-details-section{float:left;width:48%}#buddypress .standard-form #profile-details-section{float:right}#buddypress #notifications-bulk-management,#buddypress .standard-form #blog-details-section{clear:left}body.no-js #buddypress #delete_inbox_messages,body.no-js #buddypress #delete_sentbox_messages,body.no-js #buddypress #message-type-select,body.no-js #buddypress #messages-bulk-management #select-all-messages,body.no-js #buddypress #notifications-bulk-management #select-all-notifications,body.no-js #buddypress label[for=message-type-select]{display:none}#buddypress .standard-form input:focus,#buddypress .standard-form select:focus,#buddypress .standard-form textarea:focus{background:#fafafa;color:#555}#buddypress form#send-invite-form{margin-top:20px}#buddypress div#invite-list{background:#f5f5f5;height:400px;margin:0 0 10px;overflow:auto;padding:5px;width:160px}#buddypress .comment-reply-link,#buddypress .generic-button a,#buddypress .standard-form button,#buddypress a.button,#buddypress input[type=button],#buddypress input[type=reset],#buddypress input[type=submit],#buddypress ul.button-nav li a,a.bp-title-button{background:#fff;border:1px solid #ccc;color:#767676;font-size:small;cursor:pointer;outline:0;padding:4px 10px;text-align:center;text-decoration:none}#buddypress .comment-reply-link:hover,#buddypress .standard-form button:hover,#buddypress a.button:focus,#buddypress a.button:hover,#buddypress div.generic-button a:hover,#buddypress input[type=button]:hover,#buddypress input[type=reset]:hover,#buddypress input[type=submit]:hover,#buddypress ul.button-nav li a:hover,#buddypress ul.button-nav li.current a{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress form.standard-form .left-menu{float:left}#buddypress form.standard-form .left-menu #invite-list ul{margin:1%;list-style:none}#buddypress form.standard-form .left-menu #invite-list ul li{margin:0 0 0 1%}#buddypress form.standard-form .main-column{margin-left:190px}#buddypress form.standard-form .main-column ul#friend-list{clear:none;float:left}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{clear:none}#buddypress .wp-editor-wrap a.button,#buddypress .wp-editor-wrap button,#buddypress .wp-editor-wrap input[type=button],#buddypress .wp-editor-wrap input[type=reset],#buddypress .wp-editor-wrap input[type=submit]{padding:0 8px 1px}#buddypress form [disabled=disabled]{cursor:default;opacity:.4}fieldset.register-site{margin-top:1em}fieldset.create-site{margin-bottom:2em}fieldset.create-site legend{margin-bottom:1em}fieldset.create-site label{margin-right:3em}.bp-screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.bp-screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#buddypress a.loading,#buddypress input.loading{-webkit-animation:loader-pulsate .5s infinite ease-in-out alternate;-moz-animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}#buddypress a.loading:hover,#buddypress input.loading:hover{color:#767676}#buddypress a.disabled,#buddypress button.disabled,#buddypress button.pending,#buddypress div.pending a,#buddypress input[type=button].disabled,#buddypress input[type=button].pending,#buddypress input[type=reset].disabled,#buddypress input[type=reset].pending,#buddypress input[type=submit].disabled,#buddypress input[type=submit].pending,#buddypress input[type=submit][disabled=disabled]{border-color:#eee;color:#bbb;cursor:default}#buddypress a.disabled:hover,#buddypress button.disabled:hover,#buddypress button.pending:hover,#buddypress div.pending a:hover,#buddypress input[type=button]:hover.disabled,#buddypress input[type=button]:hover.pending,#buddypress input[type=reset]:hover.disabled,#buddypress input[type=reset]:hover.pending,#buddypress input[type=submit]:hover.disabled,#buddypress input[type=submit]:hover.pending{border-color:#eee;color:#bbb}#buddypress ul#topic-post-list{margin:0;width:auto}#buddypress ul#topic-post-list li{padding:15px;position:relative}#buddypress ul#topic-post-list li.alt{background:#f5f5f5}#buddypress ul#topic-post-list li div.poster-meta{color:#767676;margin-bottom:10px}#buddypress ul#topic-post-list li div.post-content{margin-left:54px}#buddypress div.topic-tags{font-size:80%}#buddypress div.admin-links{color:#767676;font-size:80%;position:absolute;top:15px;right:25px}#buddypress div#topic-meta{margin:0;padding:5px 19px 30px;position:relative}#buddypress div#topic-meta div.admin-links{right:19px;top:-36px}#buddypress div#topic-meta h3{margin:5px 0}#buddypress div#new-topic-post{display:none;margin:20px 0 0;padding:1px 0 0}#buddypress table.forum,#buddypress table.messages-notices,#buddypress table.notifications,#buddypress table.notifications-settings,#buddypress table.profile-fields,#buddypress table.profile-settings,#buddypress table.wp-profile-fields{width:100%}#buddypress table.forum thead tr,#buddypress table.messages-notices thead tr,#buddypress table.notifications thead tr,#buddypress table.notifications-settings thead tr,#buddypress table.profile-fields thead tr,#buddypress table.profile-settings thead tr,#buddypress table.wp-profile-fields thead tr{background:#eaeaea}#buddypress table#message-threads{clear:both}#buddypress table.profile-fields{margin-bottom:20px}#buddypress table.profile-fields:last-child{margin-bottom:0}#buddypress table.profile-fields p{margin:0}#buddypress table.profile-fields p:last-child{margin-top:0}#buddypress table.forum tr td,#buddypress table.forum tr th,#buddypress table.messages-notices tr td,#buddypress table.messages-notices tr th,#buddypress table.notifications tr td,#buddypress table.notifications tr th,#buddypress table.notifications-settings tr td,#buddypress table.notifications-settings tr th,#buddypress table.profile-fields tr td,#buddypress table.profile-fields tr th,#buddypress table.profile-settings tr td,#buddypress table.wp-profile-fields tr td,#buddypress table.wp-profile-fields tr th{padding:8px;vertical-align:middle}#buddypress table.forum tr td.label,#buddypress table.messages-notices tr td.label,#buddypress table.notifications tr td.label,#buddypress table.notifications-settings tr td.label,#buddypress table.profile-fields tr td.label,#buddypress table.wp-profile-fields tr td.label{border-right:1px solid #eaeaea;font-weight:700;width:25%}#buddypress #message-threads .thread-info{min-width:40%}#buddypress table tr td.thread-info p{margin:0}#buddypress table tr td.thread-info p.thread-excerpt{color:#767676;font-size:80%;margin-top:3px}#buddypress table.forum td{text-align:center}#buddypress table.forum tr.alt td,#buddypress table.messages-notices tr.alt td,#buddypress table.notifications tr.alt td,#buddypress table.notifications-settings tr.alt td,#buddypress table.profile-fields tr.alt td,#buddypress table.profile-settings tr.alt td,#buddypress table.wp-profile-fields tr.alt td{background:#f5f5f5;color:#707070}#buddypress table.notification-settings{margin-bottom:20px;text-align:left}#buddypress #groups-notification-settings{margin-bottom:0}#buddypress table.notification-settings td:first-child,#buddypress table.notification-settings th.icon,#buddypress table.notifications td:first-child,#buddypress table.notifications th.icon{display:none}#buddypress table.notification-settings th.title,#buddypress table.profile-settings th.title{width:80%}#buddypress table.notification-settings .no,#buddypress table.notification-settings .yes{text-align:center;width:40px}#buddypress table.forum{margin:0;width:auto;clear:both}#buddypress table.forum tr.sticky td{font-size:110%;background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4}#buddypress table.forum tr.closed td.td-title{padding-left:35px}#buddypress table.forum td p.topic-text{color:#767676;font-size:100%}#buddypress table.forum tr>td:first-child,#buddypress table.forum tr>th:first-child{padding-left:15px}#buddypress table.forum tr>td:last-child,#buddypress table.forum tr>th:last-child{padding-right:15px}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster,#buddypress table.forum td.td-title,#buddypress table.forum tr th#th-group,#buddypress table.forum tr th#th-poster,#buddypress table.forum tr th#th-title{text-align:left}#buddypress table.forum tr td.td-title a.topic-title{font-size:110%}#buddypress table.forum td.td-freshness{white-space:nowrap}#buddypress table.forum td.td-freshness span.time-since{font-size:80%;color:#767676}#buddypress table.forum td img.avatar{float:none;margin:0 5px -8px 0}#buddypress table.forum td.td-group,#buddypress table.forum td.td-poster{min-width:140px}#buddypress table.forum th#th-title{width:80%}#buddypress table.forum th#th-freshness{width:25%}#buddypress table.forum th#th-postcount{width:15%}#buddypress table.forum p.topic-meta{font-size:80%;margin:5px 0 0}#buddypress .item-body{margin:20px 0}#buddypress span.activity{display:inline-block;font-size:small;padding:0}#buddypress span.user-nicename{color:#767676;display:inline-block;font-size:120%;font-weight:700}#sitewide-notice,.bp-site-wide-message{position:relative}#buddypress div#message p,#sitewide-notice #message{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.admin-bar-on #message p,.bp-site-wide-message #message p{padding-right:25px}.admin-bar-on #message button,.bp-site-wide-message #message button{font-size:.8em;padding:2px 4px;position:absolute;right:0;top:0}.admin-bar-on #message button{right:10px;top:7px}#buddypress #item-header:after{clear:both;content:"";display:table}#buddypress div#item-header div#item-header-content{float:left;margin-left:0}#buddypress div#item-header h2{line-height:1.2;margin:0 0 15px}#buddypress div#item-header h2 a{color:#767676;text-decoration:none}#buddypress div#item-header img.avatar{float:left;margin:0 15px 19px 0}#buddypress div#item-header h2{margin-bottom:5px}#buddypress div#item-header h2 span.highlight{font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle;display:inline-block}#buddypress div#item-header h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-weight:700;font-size:80%;margin-bottom:2px;padding:1px 4px;position:relative;right:-2px;top:-2px;vertical-align:middle}#buddypress div#item-header div#item-meta{font-size:80%;color:#767676;overflow:hidden;margin:15px 0 5px;padding-bottom:10px}#buddypress div#item-header div#item-actions{float:right;margin:0 0 15px 15px;text-align:right;width:20%}#buddypress div#item-header div#item-actions h2,#buddypress div#item-header div#item-actions h3{margin:0 0 5px}#buddypress div#item-header div#item-actions a{display:inline-block}#buddypress div#item-header ul{margin-bottom:15px}#buddypress div#item-header ul:after{clear:both;content:"";display:table}#buddypress div#item-header ul h5,#buddypress div#item-header ul hr,#buddypress div#item-header ul span{display:none}#buddypress div#item-header ul li{float:right;list-style:none}#buddypress div#item-header ul img.avatar,#buddypress div#item-header ul.avatars img.avatar{height:30px;margin:2px;width:30px}#buddypress div#item-header a.button,#buddypress div#item-header div.generic-button{float:left;margin:10px 10px 0 0}body.no-js #buddypress div#item-header .js-self-profile-button{display:none}#buddypress div#item-header div#message.info{line-height:.8}#buddypress ul.item-list{border-top:1px solid #eaeaea;width:100%;list-style:none;clear:both;margin:0;padding:0}body.activity-permalink #buddypress ul.item-list,body.activity-permalink #buddypress ul.item-list li.activity-item{border:none}#buddypress ul.item-list li{border-bottom:1px solid #eaeaea;padding:15px 0;margin:0;position:relative;list-style:none}#buddypress ul.single-line li{border:none}#buddypress ul.item-list li img.avatar{float:left;margin:0 10px 0 0}#buddypress ul.item-list li div.item-title,#buddypress ul.item-list li h3,#buddypress ul.item-list li h4{font-weight:400;font-size:90%;margin:0;width:75%}#buddypress ul.item-list li div.item-title span{color:#767676;font-size:80%}#buddypress ul.item-list li div.item-desc{color:#767676;font-size:80%;margin:10px 0 0 60px;width:50%}#buddypress ul.item-list li.group-no-avatar div.item-desc{margin-left:0}#buddypress ul.item-list li div.action{position:absolute;top:15px;right:0;text-align:right}#buddypress ul.item-list li div.meta{color:#767676;font-size:80%;margin-top:10px}#buddypress ul.item-list li h5 span.small{float:right;font-size:80%;font-weight:400}#buddypress div.item-list-tabs{background:0 0;clear:left;overflow:hidden}#buddypress div.item-list-tabs ul{margin:0;padding:0}#buddypress div.item-list-tabs ul li{float:left;margin:0;list-style:none}#buddypress div.item-list-tabs#subnav ul li{margin-top:0}#buddypress div.item-list-tabs ul li.last{float:right;margin:7px 0 0}#buddypress div.item-list-tabs#subnav ul li.last{margin-top:4px}#buddypress div.item-list-tabs ul li.last select{max-width:185px}#buddypress div.item-list-tabs ul li a,#buddypress div.item-list-tabs ul li span{display:block;padding:5px 10px;text-decoration:none}#buddypress div.item-list-tabs ul li a span{background:#eee;border-radius:50%;border:1px solid #ccc;color:#6c6c6c;display:inline;font-size:70%;margin-left:2px;padding:3px 6px;text-align:center;vertical-align:middle}#buddypress div.item-list-tabs ul li.current a,#buddypress div.item-list-tabs ul li.selected a{background-color:#eee;color:#555;opacity:.9;font-weight:700}#buddypress div.item-list-tabs ul li a:hover span,#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#eee}#buddypress div.item-list-tabs ul li.current a span,#buddypress div.item-list-tabs ul li.selected a span{background-color:#fff}#buddypress div#item-nav ul li.loading a{background-position:88% 50%}#buddypress div.item-list-tabs#object-nav{margin-top:0}#buddypress div.item-list-tabs#subnav{background:0 0;margin:10px 0;overflow:hidden}#buddypress #admins-list li,#buddypress #members-list li,#buddypress #mods-list li{overflow:auto;list-style:none}#buddypress .group-members-list{width:100%;margin-top:1em;clear:both;overflow:auto}#buddypress #item-buttons:empty{display:none}#buddypress #cover-image-container{position:relative;z-index:0}#buddypress #header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#buddypress #item-header-cover-image{padding:0 1em;position:relative;z-index:2}#buddypress table#message-threads tr.unread td{background:#fff9db;border-top:1px solid #ffe8c4;border-bottom:1px solid #ffe8c4;font-weight:700}#buddypress table#message-threads tr.unread td .activity,#buddypress table#message-threads tr.unread td .thread-excerpt,#buddypress table#message-threads tr.unread td.thread-options{font-weight:400}#buddypress li span.unread-count,#buddypress tr.unread span.unread-count{background:#d00;color:#fff;font-weight:700;padding:2px 8px}#buddypress div.item-list-tabs ul li a span.unread-count{padding:1px 6px;color:#fff}#buddypress div#message-thread div.message-box{margin:0;padding:15px}#buddypress div#message-thread div.alt{background:#f4f4f4}#buddypress div#message-thread p#message-recipients{margin:10px 0 20px}#buddypress div#message-thread img.avatar{float:left;margin:0 10px 0 0;vertical-align:middle}#buddypress div#message-thread strong{font-size:100%;margin:0}#buddypress div#message-thread strong a{text-decoration:none}#buddypress div#message-thread strong span.activity{margin-top:4px}#buddypress div#message-thread div.message-metadata:after{clear:both;content:"";display:table}#buddypress div#message-thread div.message-content{margin-left:45px}#buddypress div#message-thread div.message-options{text-align:right}#buddypress #message-threads img.avatar{max-width:none}#buddypress div.message-search{float:right;margin:0 20px}.message-metadata{position:relative}.message-star-actions{position:absolute;right:0;top:0}#buddypress a.message-action-star,#buddypress a.message-action-unstar{border-bottom:0;text-decoration:none;outline:0}a.message-action-star{opacity:.7}a.message-action-star:hover{opacity:1}.message-action-star span.icon:before,.message-action-unstar span.icon:before{font-family:dashicons;font-size:18px}.message-action-star span.icon:before{color:#767676;content:"\f154"}.message-action-unstar span.icon:before{color:#fcdd77;content:"\f155"}#buddypress div.profile h2{margin-bottom:auto;margin-top:15px}#buddypress #profile-edit-form ul.button-nav{margin-top:15px}body.no-js #buddypress .field-visibility-settings-close,body.no-js #buddypress .field-visibility-settings-toggle{display:none}#buddypress .field-visibility-settings{display:none;margin-top:10px}body.no-js #buddypress .field-visibility-settings{display:block}#buddypress .current-visibility-level{font-weight:700;font-style:normal}#buddypress .field-visibility-settings,#buddypress .field-visibility-settings-notoggle,#buddypress .field-visibility-settings-toggle{color:#707070}#buddypress .field-visibility-settings a,#buddypress .field-visibility-settings-toggle a{font-size:80%}body.register #buddypress div.page ul{list-style:none}#buddypress .standard-form .field-visibility-settings label{margin:0;font-weight:400}#buddypress .field-visibility-settings legend,#buddypress .field-visibility-settings-toggle{font-style:italic}#buddypress .field-visibility-settings .radio{list-style:none;margin-bottom:0}#buddypress .field-visibility select{margin:0}#buddypress .wp-editor-container{border:1px solid #dedede}#buddypress .html-active button.switch-html{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f5f5f5;color:#707070}#buddypress .tmce-active button.switch-tmce{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f5f5f5;color:#707070}#buddypress .standard-form .wp-editor-container textarea{width:100%;padding-top:0;padding-bottom:0}.widget.buddypress span.activity{display:inline-block;font-size:small;padding:0}.widget.buddypress div.item-options{font-size:90%;margin:0 0 1em;padding:1em 0}.widget.buddypress div.item{margin:0 0 1em}.widget.buddypress div.item-content,.widget.buddypress div.item-meta{font-size:11px;margin-left:50px}.widget.buddypress div.avatar-block:after{clear:both;content:"";display:table}.widget.buddypress .item-avatar a{float:left;margin-bottom:15px;margin-right:10px}.widget.buddypress div.item-avatar img{display:inline-block;height:40px;margin:1px;width:40px}.widget.buddypress .item-avatar a,.widget.buddypress .item-avatar a img,.widget.buddypress .item-avatar a:active,.widget.buddypress .item-avatar a:focus,.widget.buddypress .item-avatar a:hover{box-shadow:none}.widget.buddypress #bp-login-widget-form label{display:block;margin:1rem 0 .5rem}.widget.buddypress #bp-login-widget-form #bp-login-widget-submit{margin-right:10px}.widget.buddypress .bp-login-widget-user-avatar{float:left}.bp-login-widget-user-avatar img.avatar{height:40px;width:40px}.widget.buddypress .bp-login-widget-user-links>div{padding-left:60px}.widget.buddypress .bp-login-widget-user-links>div{margin-bottom:.5rem}.widget.buddypress .bp-login-widget-user-links>div.bp-login-widget-user-link a{font-weight:700}.widget.buddypress #friends-list,.widget.buddypress #groups-list,.widget.buddypress #members-list{margin-left:0;padding-left:0}.widget.buddypress #friends-list li,.widget.buddypress #groups-list li,.widget.buddypress #members-list li{clear:both;list-style-type:none}.buddypress .bp-tooltip{position:relative}.bp-tooltip:after{background:#fff;border:1px solid #aaa;border-collapse:separate;border-radius:1px;box-shadow:1px 1px 0 1px rgba(132,132,132,.3);color:#000;content:attr(data-bp-tooltip);display:none;font-family:sans-serif;font-size:11px;font-weight:400;letter-spacing:normal;line-height:1.5;margin-top:10px;max-width:240px;opacity:0;padding:3px 6px;position:absolute;right:50%;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;top:100%;transform:translateX(50%);transition:opacity 2s ease-out;white-space:pre;word-wrap:break-word;z-index:998}.bp-tooltip:active:after,.bp-tooltip:focus:after,.bp-tooltip:hover:after{display:inline-block;opacity:1;overflow:visible;text-decoration:none;z-index:999}#group-admins .bp-tooltip:after,#group-mods .bp-tooltip:after,.message-metadata .bp-tooltip:after{right:0;text-align:right;transform:translateX(0)}.feed .bp-tooltip:after,.item-list .bp-tooltip:after,.messages-notices .bp-tooltip:after{left:0;right:auto;text-align:left;transform:translateX(0)}.admin-bar-on .bp-tooltip:after,.bp-site-wide-message .bp-tooltip:after{right:50px}@media only screen and (max-width:480px){#buddypress div.dir-search{float:right;margin-top:-50px;text-align:right}#buddypress div.dir-search input[type=text]{margin-bottom:1em;width:50%}a.bp-title-button{margin-left:10px}#buddypress form.standard-form .main-column div.action{position:relative;margin-bottom:1em}#buddypress form.standard-form .main-column ul#friend-list h3,#buddypress form.standard-form .main-column ul#friend-list h4{width:100%}}@media only screen and (max-width:320px){#buddypress div.dir-search{clear:left;float:left;margin-top:0;text-align:left}#buddypress li#groups-order-select{clear:left;float:left}#buddypress ul.item-list li div.action{clear:left;float:left;margin-top:0;margin-left:70px;position:relative;top:0;right:0;text-align:left}#buddypress ul.item-list li div.item-desc{clear:left;float:left;margin:10px 0 0;width:auto}#buddypress li div.item{margin-left:70px;width:auto}#buddypress ul.item-list li div.meta{margin-top:0}#buddypress .item-desc p{margin:0 0 10px}#buddypress div.pagination .pag-count{margin-left:0}}@media only screen and (max-width:240px){#buddypress div.dir-search{float:left;margin:0}#buddypress div.dir-search input[type=text]{width:50%}#buddypress li#groups-order-select{float:left}#buddypress ul.item-list li img.avatar{width:30px;height:auto}#buddypress li div.item,#buddypress ul.item-list li div.action{margin-left:45px}h1 a.bp-title-button{clear:left;float:left;margin:10px 0 20px}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js
index 67338ed07..436958862 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.js
@@ -1160,7 +1160,7 @@ jq(document).ready( function() {
 
 		settings_div.hide().removeClass( 'field-visibility-settings-open' )
 			.siblings( '.field-visibility-settings-toggle' )
-				.children( '.current-visibility-level' ).text( vis_setting_text ).end()
+				.find( '.current-visibility-level' ).text( vis_setting_text ).end()
 			.show().removeClass( 'field-visibility-settings-hide' );
 	} );
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js
index 0ca39c071..5d35f39e3 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-legacy/js/buddypress.min.js
@@ -1 +1 @@
-function bp_get_directory_preference(e,t){var i={filter:"",scope:"",extras:""};if(!directoryPreferences.hasOwnProperty(e)){var a={};for(var s in i)i.hasOwnProperty(s)&&(a[s]=i[s]);directoryPreferences[e]=a}return BP_DTheme.store_filter_settings&&(directoryPreferences[e][t]=jq.cookie("bp-"+e+"-"+t)),directoryPreferences[e][t]}function bp_set_directory_preference(e,t,i){var a={filter:"",scope:"",extras:""};if(!directoryPreferences.hasOwnProperty(e)){var s={};for(var r in a)a.hasOwnProperty(r)&&(s[r]=a[r]);directoryPreferences[e]=s}BP_DTheme.store_filter_settings&&jq.cookie("bp-"+e+"-"+t,i,{path:"/",secure:"https:"===window.location.protocol}),directoryPreferences[e][t]=i}function bp_init_activity(){var e=bp_get_directory_preference("activity","scope"),t=bp_get_directory_preference("activity","filter");void 0!==t&&jq("#activity-filter-select").length&&jq('#activity-filter-select select option[value="'+t+'"]').prop("selected",!0),void 0!==e&&jq(".activity-type-tabs").length&&(jq(".activity-type-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#activity-"+e+", .item-list-tabs li.current").addClass("selected"))}function bp_init_objects(e){jq(e).each(function(t){var i=bp_get_directory_preference(e[t],"scope"),a=bp_get_directory_preference(e[t],"filter");void 0!==a&&jq("#"+e[t]+"-order-select select").length&&jq("#"+e[t]+'-order-select select option[value="'+a+'"]').prop("selected",!0),void 0!==i&&jq("div."+e[t]).length&&(jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+e[t]+"-"+i+", #object-nav li.current").addClass("selected"))})}function bp_filter_request(e,t,i,a,s,r,n,o,c){if("activity"===e)return!1;null===i&&(i="all"),bp_set_directory_preference(e,"scope",i),bp_set_directory_preference(e,"filter",t),bp_set_directory_preference(e,"extras",n),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+e+"-"+i+", #object-nav li.current").addClass("selected"),jq(".item-list-tabs li.selected").addClass("loading"),jq('.item-list-tabs select option[value="'+t+'"]').prop("selected",!0),"friends"!==e&&"group_members"!==e||(e="members"),bp_ajax_request&&bp_ajax_request.abort();var l={};l["bp-"+e+"-filter"]=bp_get_directory_preference(e,"filter"),l["bp-"+e+"-scope"]=bp_get_directory_preference(e,"scope");var d=encodeURIComponent(jq.param(l));bp_ajax_request=jq.post(ajaxurl,{action:e+"_filter",cookie:d,object:e,filter:t,search_terms:s,scope:i,page:r,extras:n,template:c},function(e){if("pag-bottom"===o&&jq("#subnav").length){var t=jq("#subnav").parent();jq("html,body").animate({scrollTop:t.offset().top},"slow",function(){jq(a).fadeOut(100,function(){jq(this).html(e),jq(this).fadeIn(100)})})}else jq(a).fadeOut(100,function(){jq(this).html(e),jq(this).fadeIn(100)});jq(".item-list-tabs li.selected").removeClass("loading")})}function bp_activity_request(e,t){bp_set_directory_preference("activity","scope",e),bp_set_directory_preference("activity","filter",t),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected loading")}),jq("#activity-"+e+", .item-list-tabs li.current").addClass("selected"),jq("#object-nav.item-list-tabs li.selected, div.activity-type-tabs li.selected").addClass("loading"),jq('#activity-filter-select select option[value="'+t+'"]').prop("selected",!0),jq(".widget_bp_activity_widget h2 span.ajax-loader").show(),bp_ajax_request&&bp_ajax_request.abort();var i={"bp-activity-filter":bp_get_directory_preference("activity","filter"),"bp-activity-scope":bp_get_directory_preference("activity","scope")},a=encodeURIComponent(jq.param(i));bp_ajax_request=jq.post(ajaxurl,{action:"activity_widget_filter",cookie:a,_wpnonce_activity_filter:jq("#_wpnonce_activity_filter").val(),scope:e,filter:t},function(e){jq(".widget_bp_activity_widget h2 span.ajax-loader").hide(),jq("div.activity").fadeOut(100,function(){jq(this).html(e.contents),jq(this).fadeIn(100),bp_legacy_theme_hide_comments()}),void 0!==e.feed_url&&jq(".directory #subnav li.feed a, .home-page #subnav li.feed a").attr("href",e.feed_url),jq(".item-list-tabs li.selected").removeClass("loading")},"json")}function bp_legacy_theme_hide_comments(){var e,t,i,a=jq("div.activity-comments");if(!a.length)return!1;a.each(function(){jq(this).children("ul").children("li").length<5||(comments_div=jq(this),e=comments_div.parents("#activity-stream > li"),t=jq(this).children("ul").children("li"),i=" ",jq("#"+e.attr("id")+" li").length&&(i=jq("#"+e.attr("id")+" li").length),t.each(function(a){a<t.length-5&&(jq(this).hide(),a||jq(this).before('<li class="show-all"><a href="#'+e.attr("id")+'/show-all/">'+BP_DTheme.show_x_comments.replace("%d",i)+"</a></li>"))}))})}function checkAll(){var e,t=document.getElementsByTagName("input");for(e=0;e<t.length;e++)"checkbox"===t[e].type&&(""===$("check_all").checked?t[e].checked="":t[e].checked="checked")}function clear(e){if(e=document.getElementById(e)){var t=e.getElementsByTagName("INPUT"),i=e.getElementsByTagName("OPTION"),a=0;if(t)for(a=0;a<t.length;a++)t[a].checked="";if(i)for(a=0;a<i.length;a++)i[a].selected=!1}}function bp_get_cookies(){var e,t,i,a,s,r=document.cookie.split(";"),n={};for(e=0;e<r.length;e++)i=(t=r[e]).indexOf("="),a=jq.trim(unescape(t.slice(0,i))),s=unescape(t.slice(i+1)),0===a.indexOf("bp-")&&(n[a]=s);return encodeURIComponent(jq.param(n))}function bp_get_query_var(e,t){var i={};return(t=void 0===t?location.search.substr(1).split("&"):t.split("?")[1].split("&")).forEach(function(e){i[e.split("=")[0]]=e.split("=")[1]&&decodeURIComponent(e.split("=")[1])}),!(!i.hasOwnProperty(e)||null==i[e])&&i[e]}var jq=jQuery,bp_ajax_request=null,newest_activities="",activity_last_recorded=0,directoryPreferences={};jq(document).ready(function(){var e=1;bp_init_activity();var t=["members","groups","blogs","group_members"],i=jq("#whats-new");if(bp_init_objects(t),i.length&&bp_get_querystring("r")){var a=i.val();jq("#whats-new-options").slideDown(),i.animate({height:"3.8em"}),jq.scrollTo(i,500,{offset:-125,easing:"swing"}),i.val("").focus().val(a)}else jq("#whats-new-options").hide();if(i.focus(function(){jq("#whats-new-options").slideDown(),jq(this).animate({height:"3.8em"}),jq("#aw-whats-new-submit").prop("disabled",!1),jq(this).parent().addClass("active"),jq("#whats-new-content").addClass("active");var e=jq("form#whats-new-form"),t=jq("#activity-all");e.hasClass("submitted")&&e.removeClass("submitted"),t.length&&(t.hasClass("selected")?"-1"!==jq("#activity-filter-select select").val()&&(jq("#activity-filter-select select").val("-1"),jq("#activity-filter-select select").trigger("change")):(jq("#activity-filter-select select").val("-1"),t.children("a").trigger("click")))}),jq("#whats-new-form").on("focusout",function(e){var t=jq(this);setTimeout(function(){if(!t.find(":hover").length){if(""!==i.val())return;i.animate({height:"2.2em"}),jq("#whats-new-options").slideUp(),jq("#aw-whats-new-submit").prop("disabled",!0),jq("#whats-new-content").removeClass("active"),i.parent().removeClass("active")}},0)}),jq("#aw-whats-new-submit").on("click",function(){var e,t=0,i=jq(this),a=i.closest("form#whats-new-form"),s={};return jq.each(a.serializeArray(),function(e,t){"_"!==t.name.substr(0,1)&&"whats-new"!==t.name.substr(0,9)&&(s[t.name]?jq.isArray(s[t.name])?s[t.name].push(t.value):s[t.name]=new Array(s[t.name],t.value):s[t.name]=t.value)}),a.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!0)}),jq("div.error").remove(),i.addClass("loading"),i.prop("disabled",!0),a.addClass("submitted"),object="",item_id=jq("#whats-new-post-in").val(),content=jq("#whats-new").val(),firstrow=jq("#buddypress ul.activity-list li").first(),activity_row=firstrow,timestamp=null,firstrow.length&&(activity_row.hasClass("load-newest")&&(activity_row=firstrow.next()),timestamp=activity_row.prop("class").match(/date-recorded-([0-9]+)/)),timestamp&&(t=timestamp[1]),item_id>0&&(object=jq("#whats-new-post-object").val()),e=jq.extend({action:"post_update",cookie:bp_get_cookies(),_wpnonce_post_update:jq("#_wpnonce_post_update").val(),content:content,object:object,item_id:item_id,since:t,_bp_as_nonce:jq("#_bp_as_nonce").val()||""},s),jq.post(ajaxurl,e,function(e){if(a.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!1)}),e[0]+e[1]==="-1")a.prepend(e.substr(2,e.length)),jq("#"+a.attr("id")+" div.error").hide().fadeIn(200);else{if(0===jq("ul.activity-list").length&&(jq("div.error").slideUp(100).remove(),jq("#message").slideUp(100).remove(),jq("div.activity").append('<ul id="activity-stream" class="activity-list item-list">')),firstrow.hasClass("load-newest")&&firstrow.remove(),jq("#activity-stream").prepend(e),t||jq("#activity-stream li:first").addClass("new-update just-posted"),0!==jq("#latest-update").length){var i=jq("#activity-stream li.new-update .activity-content .activity-inner p").html(),s=jq("#activity-stream li.new-update .activity-content .activity-header p a.view").attr("href"),r="";""!==jq("#activity-stream li.new-update .activity-content .activity-inner p").text()&&(r=i+" "),r+='<a href="'+s+'" rel="nofollow">'+BP_DTheme.view+"</a>",jq("#latest-update").slideUp(300,function(){jq("#latest-update").html(r),jq("#latest-update").slideDown(300)})}jq("li.new-update").hide().slideDown(300),jq("li.new-update").removeClass("new-update"),jq("#whats-new").val(""),a.get(0).reset(),newest_activities="",activity_last_recorded=0}jq("#whats-new-options").slideUp(),jq("#whats-new-form textarea").animate({height:"2.2em"}),jq("#aw-whats-new-submit").prop("disabled",!0).removeClass("loading"),jq("#whats-new-content").removeClass("active")}),!1}),jq("div.activity-type-tabs").on("click",function(e){var t,i,a=jq(e.target).parent();if("STRONG"===e.target.nodeName||"SPAN"===e.target.nodeName)a=a.parent();else if("A"!==e.target.nodeName)return!1;return t=a.attr("id").substr(9,a.attr("id").length),i=jq("#activity-filter-select select").val(),"mentions"===t&&jq("#"+a.attr("id")+" a strong").remove(),bp_activity_request(t,i),!1}),jq("#activity-filter-select select").change(function(){var e,t=jq("div.activity-type-tabs li.selected"),i=jq(this).val();return e=t.length?t.attr("id").substr(9,t.attr("id").length):null,bp_activity_request(e,i),!1}),jq("div.activity").on("click",function(t){var i,a,s,r,n,o,c,l,d,p,u=jq(t.target);return u.hasClass("fav")||u.hasClass("unfav")?!u.hasClass("loading")&&(i=u.hasClass("fav")?"fav":"unfav",a=u.closest(".activity-item"),s=a.attr("id").substr(9,a.attr("id").length),c=bp_get_query_var("_wpnonce",u.attr("href")),u.addClass("loading"),jq.post(ajaxurl,{action:"activity_mark_"+i,cookie:bp_get_cookies(),id:s,nonce:c},function(e){u.removeClass("loading"),u.fadeOut(200,function(){jq(this).html(e),jq(this).attr("title","fav"===i?BP_DTheme.remove_fav:BP_DTheme.mark_as_fav),jq(this).fadeIn(200)}),"fav"===i?(jq(".item-list-tabs #activity-favs-personal-li").length||(jq(".item-list-tabs #activity-favorites").length||jq(".item-list-tabs ul #activity-mentions").before('<li id="activity-favorites"><a href="#">'+BP_DTheme.my_favs+" <span>0</span></a></li>"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())+1)),u.removeClass("fav"),u.addClass("unfav")):(u.removeClass("unfav"),u.addClass("fav"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())-1),Number(jq(".item-list-tabs ul #activity-favorites span").html())||(jq(".item-list-tabs ul #activity-favorites").hasClass("selected")&&bp_activity_request(null,null),jq(".item-list-tabs ul #activity-favorites").remove())),"activity-favorites"===jq(".item-list-tabs li.selected").attr("id")&&u.closest(".activity-item").slideUp(100)}),!1):u.hasClass("delete-activity")?(r=u.parents("div.activity ul li"),n=r.attr("id").substr(9,r.attr("id").length),o=u.attr("href"),c=o.split("_wpnonce="),l=r.prop("class").match(/date-recorded-([0-9]+)/),c=c[1],u.addClass("loading"),jq.post(ajaxurl,{action:"delete_activity",cookie:bp_get_cookies(),id:n,_wpnonce:c},function(e){e[0]+e[1]==="-1"?(r.prepend(e.substr(2,e.length)),r.children("#message").hide().fadeIn(300)):(r.slideUp(300),l&&activity_last_recorded===l[1]&&(newest_activities="",activity_last_recorded=0))}),!1):u.hasClass("spam-activity")?(r=u.parents("div.activity ul li"),l=r.prop("class").match(/date-recorded-([0-9]+)/),u.addClass("loading"),jq.post(ajaxurl,{action:"bp_spam_activity",cookie:encodeURIComponent(document.cookie),id:r.attr("id").substr(9,r.attr("id").length),_wpnonce:u.attr("href").split("_wpnonce=")[1]},function(e){e[0]+e[1]==="-1"?(r.prepend(e.substr(2,e.length)),r.children("#message").hide().fadeIn(300)):(r.slideUp(300),l&&activity_last_recorded===l[1]&&(newest_activities="",activity_last_recorded=0))}),!1):u.parent().hasClass("load-more")?(bp_ajax_request&&bp_ajax_request.abort(),jq("#buddypress li.load-more").addClass("loading"),d=e+1,p=[],jq(".activity-list li.just-posted").each(function(){p.push(jq(this).attr("id").replace("activity-",""))}),load_more_args={action:"activity_get_older_updates",cookie:bp_get_cookies(),page:d,exclude_just_posted:p.join(",")},load_more_search=bp_get_querystring("s"),load_more_search&&(load_more_args.search_terms=load_more_search),bp_ajax_request=jq.post(ajaxurl,load_more_args,function(t){jq("#buddypress li.load-more").removeClass("loading"),e=d,jq("#buddypress ul.activity-list").append(t.contents),u.parent().hide()},"json"),!1):void(u.parent().hasClass("load-newest")&&(t.preventDefault(),u.parent().hide(),activity_html=jq.parseHTML(newest_activities),jq.each(activity_html,function(e,t){"LI"===t.nodeName&&jq(t).hasClass("just-posted")&&jq("#"+jq(t).attr("id")).length&&jq("#"+jq(t).attr("id")).remove()}),jq("#buddypress ul.activity-list").prepend(newest_activities),newest_activities=""))}),jq("div.activity").on("click",".activity-read-more a",function(e){var t,i,a=jq(e.target),s=a.parent().attr("id").split("-"),r=s[3],n=s[0];return t="acomment"===n?"acomment-content":"activity-inner",i=jq("#"+n+"-"+r+" ."+t+":first"),jq(a).addClass("loading"),jq.post(ajaxurl,{action:"get_single_activity_content",activity_id:r},function(e){jq(i).slideUp(300).html(e).slideDown(300)}),!1}),jq("form.ac-form").hide(),jq(".activity-comments").length&&bp_legacy_theme_hide_comments(),jq("div.activity").on("click",function(e){var t,i,a,s,r,n,o,c,l,d,p,u,m,h,_,v=jq(e.target);return v.hasClass("acomment-reply")||v.parent().hasClass("acomment-reply")?(v.parent().hasClass("acomment-reply")&&(v=v.parent()),t=v.attr("id"),i=t.split("-"),a=i[2],s=v.attr("href").substr(10,v.attr("href").length),(r=jq("#ac-form-"+a)).css("display","none"),r.removeClass("root"),jq(".ac-form").hide(),r.children("div").each(function(){jq(this).hasClass("error")&&jq(this).hide()}),"comment"!==i[1]?jq("#acomment-"+s).append(r):jq("#activity-"+a+" .activity-comments").append(r),r.parent().hasClass("activity-comments")&&r.addClass("root"),r.slideDown(200),jq.scrollTo(r,500,{offset:-100,easing:"swing"}),jq("#ac-form-"+i[2]+" textarea").focus(),!1):"ac_form_submit"===v.attr("name")?(r=v.parents("form"),n=r.parent(),o=r.attr("id").split("-"),c=n.hasClass("activity-comments")?o[2]:n.attr("id").split("-")[1],content=jq("#"+r.attr("id")+" textarea"),jq("#"+r.attr("id")+" div.error").hide(),v.addClass("loading").prop("disabled",!0),content.addClass("loading").prop("disabled",!0),l={action:"new_activity_comment",cookie:bp_get_cookies(),_wpnonce_new_activity_comment:jq("#_wpnonce_new_activity_comment").val(),comment_id:c,form_id:o[2],content:content.val()},(d=jq("#_bp_as_nonce_"+c).val())&&(l["_bp_as_nonce_"+c]=d),jq.post(ajaxurl,l,function(e){if(v.removeClass("loading"),content.removeClass("loading"),e[0]+e[1]==="-1")r.append(jq(e.substr(2,e.length)).hide().fadeIn(200));else{var t=r.parent();r.fadeOut(200,function(){0===t.children("ul").length&&(t.hasClass("activity-comments")?t.prepend("<ul></ul>"):t.append("<ul></ul>"));var i=jq.trim(e);t.children("ul").append(jq(i).hide().fadeIn(200)),r.children("textarea").val(""),t.parent().addClass("has-comments")}),jq("#"+r.attr("id")+" textarea").val(""),u=Number(jq("#activity-"+o[2]+" a.acomment-reply span").html())+1,jq("#activity-"+o[2]+" a.acomment-reply span").html(u),(p=t.parents(".activity-comments").find(".show-all a"))&&p.html(BP_DTheme.show_x_comments.replace("%d",u))}jq(v).prop("disabled",!1),jq(content).prop("disabled",!1)}),!1):v.hasClass("acomment-delete")?(m=v.attr("href"),h=v.parent().parent(),r=h.parents("div.activity-comments").children("form"),_=m.split("_wpnonce="),_=_[1],c=m.split("cid="),c=c[1].split("&"),c=c[0],v.addClass("loading"),jq(".activity-comments ul .error").remove(),h.parents(".activity-comments").append(r),jq.post(ajaxurl,{action:"delete_activity_comment",cookie:bp_get_cookies(),_wpnonce:_,id:c},function(e){if(e[0]+e[1]==="-1")h.prepend(jq(e.substr(2,e.length)).hide().fadeIn(200));else{var t,i,a,s=jq("#"+h.attr("id")+" ul").children("li"),r=0;jq(s).each(function(){jq(this).is(":hidden")||r++}),h.fadeOut(200,function(){h.remove()}),i=(t=jq("#"+h.parents("#activity-stream > li").attr("id")+" a.acomment-reply span")).html()-(1+r),t.html(i),(a=h.parents(".activity-comments").find(".show-all a"))&&a.html(BP_DTheme.show_x_comments.replace("%d",i)),0===i&&jq(h.parents("#activity-stream > li")).removeClass("has-comments")}}),!1):v.hasClass("spam-activity-comment")?(m=v.attr("href"),h=v.parent().parent(),v.addClass("loading"),jq(".activity-comments ul div.error").remove(),h.parents(".activity-comments").append(h.parents(".activity-comments").children("form")),jq.post(ajaxurl,{action:"bp_spam_activity_comment",cookie:encodeURIComponent(document.cookie),_wpnonce:m.split("_wpnonce=")[1],id:m.split("cid=")[1].split("&")[0]},function(e){if(e[0]+e[1]==="-1")h.prepend(jq(e.substr(2,e.length)).hide().fadeIn(200));else{var t,i=jq("#"+h.attr("id")+" ul").children("li"),a=0;jq(i).each(function(){jq(this).is(":hidden")||a++}),h.fadeOut(200),t=h.parents("#activity-stream > li"),jq("#"+t.attr("id")+" a.acomment-reply span").html(jq("#"+t.attr("id")+" a.acomment-reply span").html()-(1+a))}}),!1):v.parent().hasClass("show-all")?(v.parent().addClass("loading"),setTimeout(function(){v.parent().parent().children("li").fadeIn(200,function(){v.parent().remove()})},600),!1):v.hasClass("ac-reply-cancel")?(jq(v).closest(".ac-form").slideUp(200),!1):void 0}),jq(document).keydown(function(e){(e=e||window.event).target?element=e.target:e.srcElement&&(element=e.srcElement),3===element.nodeType&&(element=element.parentNode),!0!==e.ctrlKey&&!0!==e.altKey&&!0!==e.metaKey&&27===(e.keyCode?e.keyCode:e.which)&&"TEXTAREA"===element.tagName&&jq(element).hasClass("ac-input")&&jq(element).parent().parent().parent().slideUp(200)}),jq(".dir-search, .groups-members-search").on("click",function(e){if(!jq(this).hasClass("no-ajax")){var t,i,a,s=jq(e.target);if("submit"===s.attr("type")){t=jq(".item-list-tabs li.selected").attr("id").split("-")[0],i=null,a=s.parent().find("#"+t+"_search").val(),"groups-members-search"===e.currentTarget.className&&(t="group_members",i="groups/single/members");var r=bp_get_directory_preference(t,"scope");return bp_filter_request(t,bp_get_directory_preference(t,"filter"),r,"div."+t,a,1,bp_get_directory_preference(t,"extras"),null,i),!1}}}),jq("div.item-list-tabs").on("click",function(e){if(jq("body").hasClass("type")&&jq("body").hasClass("directory")&&jq(this).addClass("no-ajax"),!jq(this).hasClass("no-ajax")&&!jq(e.target).hasClass("no-ajax")){var t,i,a,s="SPAN"===e.target.nodeName?e.target.parentNode:e.target,r=jq(s).parent();return"LI"!==r[0].nodeName||r.hasClass("last")?void 0:(t=r.attr("id").split("-"),"activity"!==(i=t[0])&&(a=t[1],bp_filter_request(i,jq("#"+i+"-order-select select").val(),a,"div."+i,jq("#"+i+"_search").val(),1,bp_get_directory_preference(i,"extras")),!1))}}),jq("li.filter select").change(function(){var e,t,i,a,s,r,n;return t=(e=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":this).attr("id").split("-"))[0],i=e[1],a=jq(this).val(),s=!1,r=null,jq(".dir-search input").length&&(s=jq(".dir-search input").val()),(n=jq(".groups-members-search input")).length&&(s=n.val(),t="members",i="groups"),"members"===t&&"groups"===i&&(t="group_members",r="groups/single/members"),"friends"===t&&(t="members"),bp_filter_request(t,a,i,"div."+t,s,1,bp_get_directory_preference(t,"extras"),null,r),!1}),jq("#buddypress").on("click",function(e){var t,i,a,s,r,n,o,c,l=jq(e.target);if(l.hasClass("button"))return!0;if(l.parent().parent().hasClass("pagination")&&!l.parent().parent().hasClass("no-ajax")){if(l.hasClass("dots")||l.hasClass("current"))return!1;i=(t=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":"li.filter select").attr("id").split("-"))[0],a=!1,s=jq(l).closest(".pagination-links").attr("id"),r=null,jq("div.dir-search input").length&&(a=!(a=jq(".dir-search input")).val()&&bp_get_querystring(a.attr("name"))?jq(".dir-search input").prop("placeholder"):a.val()),n=jq(l).hasClass("next")||jq(l).hasClass("prev")?jq(".pagination span.current").html():jq(l).html(),n=Number(n.replace(/\D/g,"")),jq(l).hasClass("next")?n++:jq(l).hasClass("prev")&&n--,(o=jq(".groups-members-search input")).length&&(a=o.val(),i="members"),"members"===i&&"groups"===t[1]&&(i="group_members",r="groups/single/members"),"admin"===i&&jq("body").hasClass("membership-requests")&&(i="requests"),c=-1!==s.indexOf("pag-bottom")?"pag-bottom":null;var d=bp_get_directory_preference(i,"scope");return bp_filter_request(i,bp_get_directory_preference(i,"filter"),d,"div."+i,a,n,bp_get_directory_preference(i,"extras"),c,r),!1}}),jq("#send-invite-form").on("click","#invite-list input",function(){var e,t,i=jq("#send-invite-form > .invite").length;jq(".ajax-loader").toggle(),i&&jq(this).parents("ul").find("input").prop("disabled",!0),e=jq(this).val(),t=!0===jq(this).prop("checked")?"invite":"uninvite",i||jq(".item-list-tabs li.selected").addClass("loading"),jq.post(ajaxurl,{action:"groups_invite_user",friend_action:t,cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:e,group_id:jq("#group_id").val()},function(a){jq("#message")&&jq("#message").hide(),i?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),"invite"===t?jq("#friend-list").append(a):"uninvite"===t&&jq("#friend-list li#uid-"+e).remove(),jq(".item-list-tabs li.selected").removeClass("loading"))})}),jq("#send-invite-form").on("click","a.remove",function(){var e=jq("#send-invite-form > .invite").length,t=jq(this).attr("id");return jq(".ajax-loader").toggle(),t=t.split("-"),t=t[1],jq.post(ajaxurl,{action:"groups_invite_user",friend_action:"uninvite",cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:t,group_id:jq("#group_id").val()},function(i){e?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),jq("#friend-list #uid-"+t).remove(),jq("#invite-list #f-"+t).prop("checked",!1))}),!1}),jq(".visibility-toggle-link").on("click",function(e){e.preventDefault(),jq(this).attr("aria-expanded","true").parent().hide().addClass("field-visibility-settings-hide").siblings(".field-visibility-settings").show().addClass("field-visibility-settings-open")}),jq(".field-visibility-settings-close").on("click",function(e){e.preventDefault(),jq(".visibility-toggle-link").attr("aria-expanded","false");var t=jq(this).parent(),i=t.find("input:checked").parent().text();t.hide().removeClass("field-visibility-settings-open").siblings(".field-visibility-settings-toggle").children(".current-visibility-level").text(i).end().show().removeClass("field-visibility-settings-hide")}),jq("#profile-edit-form input:not(:submit), #profile-edit-form textarea, #profile-edit-form select, #signup_form input:not(:submit), #signup_form textarea, #signup_form select").change(function(){var e=!0;jq("#profile-edit-form input:submit, #signup_form input:submit").on("click",function(){e=!1}),window.onbeforeunload=function(t){if(e)return BP_DTheme.unsaved_changes}}),jq("#friend-list a.accept, #friend-list a.reject").on("click",function(){var e,t=jq(this),i=jq(this).parents("#friend-list li"),a=jq(this).parents("li div.action"),s=i.attr("id").substr(11,i.attr("id").length),r=t.attr("href").split("_wpnonce=")[1];return!jq(this).hasClass("accepted")&&!jq(this).hasClass("rejected")&&(jq(this).hasClass("accept")?(e="accept_friendship",a.children("a.reject").css("visibility","hidden")):(e="reject_friendship",a.children("a.accept").css("visibility","hidden")),t.addClass("loading"),jq.post(ajaxurl,{action:e,cookie:bp_get_cookies(),id:s,_wpnonce:r},function(e){t.removeClass("loading"),e[0]+e[1]==="-1"?(i.prepend(e.substr(2,e.length)),i.children("#message").hide().fadeIn(200)):t.fadeOut(100,function(){jq(this).hasClass("accept")?(a.children("a.reject").hide(),jq(this).html(BP_DTheme.accepted).contents().unwrap()):(a.children("a.accept").hide(),jq(this).html(BP_DTheme.rejected).contents().unwrap())})}),!1)}),jq("#members-dir-list, #members-group-list, #item-header").on("click",".friendship-button a",function(){jq(this).parent().addClass("loading");var e=jq(this).attr("id"),t=jq(this).attr("href"),i=jq(this);return e=e.split("-"),e=e[1],t=t.split("?_wpnonce="),t=t[1].split("&"),t=t[0],jq.post(ajaxurl,{action:"addremove_friend",cookie:bp_get_cookies(),fid:e,_wpnonce:t},function(e){var t=i.attr("rel");parentdiv=i.parent(),"add"===t?jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("add_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("pending_friend"),parentdiv.fadeIn(200).html(e)}):"remove"===t&&jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("remove_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("add"),parentdiv.fadeIn(200).html(e)})}),!1}),jq("#buddypress").on("click",".group-button .leave-group",function(){if(!1===confirm(BP_DTheme.leave_group_confirm))return!1}),jq("#groups-dir-list").on("click",".group-button a",function(){var e=jq(this).parent().attr("id"),t=jq(this).attr("href"),i=jq(this);return e=e.split("-"),e=e[1],t=t.split("?_wpnonce="),t=t[1].split("&"),t=t[0],(!i.hasClass("leave-group")||!1!==confirm(BP_DTheme.leave_group_confirm))&&(jq.post(ajaxurl,{action:"joinleave_group",cookie:bp_get_cookies(),gid:e,_wpnonce:t},function(e){var t=i.parent();jq("body.directory").length?jq(t).fadeOut(200,function(){t.fadeIn(200).html(e);var a=jq("#groups-personal span"),s=1;i.hasClass("leave-group")?(t.hasClass("hidden")&&t.closest("li").slideUp(200),s=0):i.hasClass("request-membership")&&(s=!1),a.length&&!1!==s&&(s?a.text(1+(a.text()>>0)):a.text((a.text()>>0)-1))}):window.location.reload()}),!1)}),jq("#groups-list li.hidden").each(function(){"none"===jq(this).css("display")&&jq(this).css("cssText","display: list-item !important")}),jq("#buddypress").on("click",".pending",function(){return!1}),jq("body").hasClass("register")){var s=jq("#signup_with_blog");s.prop("checked")||jq("#blog-details").toggle(),s.change(function(){jq("#blog-details").toggle()})}jq(".message-search").on("click",function(e){if(!jq(this).hasClass("no-ajax")){var t,i=jq(e.target);if("submit"===i.attr("type")||"button"===i.attr("type")){var a=bp_get_directory_preference(t="messages","scope"),s=bp_get_directory_preference(t,"filter"),r=bp_get_directory_preference(t,"extras");return bp_filter_request(t,s,a,"div."+t,jq("#messages_search").val(),1,r),!1}}}),jq("#send_reply_button").click(function(){var e=jq("#messages_order").val()||"ASC",t=jq("#message-recipients").offset(),i=jq("#send_reply_button");return jq(i).addClass("loading").prop("disabled",!0),jq.post(ajaxurl,{action:"messages_send_reply",cookie:bp_get_cookies(),_wpnonce:jq("#send_message_nonce").val(),content:jq("#message_content").val(),send_to:jq("#send_to").val(),subject:jq("#subject").val(),thread_id:jq("#thread_id").val()},function(a){a[0]+a[1]==="-1"?jq("#send-reply").prepend(a.substr(2,a.length)):(jq("#send-reply #message").remove(),jq("#message_content").val(""),"ASC"===e?jq("#send-reply").before(a):(jq("#message-recipients").after(a),jq(window).scrollTop(t.top)),jq(".new-message").hide().slideDown(200,function(){jq(".new-message").removeClass("new-message")})),jq(i).removeClass("loading").prop("disabled",!1)}),!1}),jq("body.messages #item-body div.messages").on("change","#message-type-select",function(){var e=this.value,t=jq('td input[type="checkbox"]'),i="checked";switch(t.each(function(e){t[e].checked=""}),e){case"unread":t=jq('tr.unread td input[type="checkbox"]');break;case"read":t=jq('tr.read td input[type="checkbox"]');break;case"":i=""}t.each(function(e){t[e].checked=i})}),jq("#select-all-messages").click(function(e){this.checked?jq(".message-check").each(function(){this.checked=!0}):jq(".message-check").each(function(){this.checked=!1})}),jq("#messages-bulk-manage").attr("disabled","disabled"),jq("#messages-select").on("change",function(){jq("#messages-bulk-manage").attr("disabled",jq(this).val().length<=0)}),starAction=function(){var e=jq(this);return jq.post(ajaxurl,{action:"messages_star",message_id:e.data("message-id"),star_status:e.data("star-status"),nonce:e.data("star-nonce"),bulk:e.data("star-bulk")},function(t){1===parseInt(t,10)&&("unstar"===e.data("star-status")?(e.data("star-status","star"),e.removeClass("message-action-unstar").addClass("message-action-star"),e.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_star),1===BP_PM_Star.is_single_thread?e.attr("data-bp-tooltip",BP_PM_Star.strings.title_star):e.attr("data-bp-tooltip",BP_PM_Star.strings.title_star_thread)):(e.data("star-status","unstar"),e.removeClass("message-action-star").addClass("message-action-unstar"),e.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_unstar),1===BP_PM_Star.is_single_thread?e.attr("data-bp-tooltip",BP_PM_Star.strings.title_unstar):e.attr("data-bp-tooltip",BP_PM_Star.strings.title_unstar_thread)))}),!1},jq("#message-threads").on("click","td.thread-star a",starAction),jq("#message-thread").on("click",".message-star-actions a",starAction),jq("#message-threads td.bulk-select-check :checkbox").on("change",function(){var e=jq(this),t=e.closest("tr").find(".thread-star a");e.prop("checked")?"unstar"===t.data("star-status")?BP_PM_Star.star_counter++:BP_PM_Star.unstar_counter++:"unstar"===t.data("star-status")?BP_PM_Star.star_counter--:BP_PM_Star.unstar_counter--,BP_PM_Star.star_counter>0&&0===parseInt(BP_PM_Star.unstar_counter,10)?jq('option[value="star"]').hide():jq('option[value="star"]').show(),BP_PM_Star.unstar_counter>0&&0===parseInt(BP_PM_Star.star_counter,10)?jq('option[value="unstar"]').hide():jq('option[value="unstar"]').show()}),jq("#select-all-notifications").click(function(e){this.checked?jq(".notification-check").each(function(){this.checked=!0}):jq(".notification-check").each(function(){this.checked=!1})}),jq("#notification-bulk-manage").attr("disabled","disabled"),jq("#notification-select").on("change",function(){jq("#notification-bulk-manage").attr("disabled",jq(this).val().length<=0)}),jq("#close-notice").on("click",function(){return jq(this).addClass("loading"),jq("#sidebar div.error").remove(),jq.post(ajaxurl,{action:"messages_close_notice",notice_id:jq(".notice").attr("rel").substr(2,jq(".notice").attr("rel").length),nonce:jq("#close-notice-nonce").val()},function(e){jq("#close-notice").removeClass("loading"),e[0]+e[1]==="-1"?(jq(".notice").prepend(e.substr(2,e.length)),jq("#sidebar div.error").hide().fadeIn(200)):jq(".notice").slideUp(100)}),!1}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseover(function(){jq(this).addClass("sfhover")}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseout(function(){jq(this).removeClass("sfhover")}),jq("#wp-admin-bar-logout, a.logout").on("click",function(){jq.removeCookie("bp-activity-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-oldestpage",{path:"/",secure:"https:"===window.location.protocol});var e=["members","groups","blogs","forums"];jq(e).each(function(t){jq.removeCookie("bp-"+e[t]+"-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+e[t]+"-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+e[t]+"-extras",{path:"/",secure:"https:"===window.location.protocol})})}),jq("body").hasClass("no-js")&&jq("body").attr("class",jq("body").attr("class").replace(/no-js/,"js")),"undefined"!=typeof wp&&void 0!==wp.heartbeat&&void 0!==BP_DTheme.pulse&&(wp.heartbeat.interval(Number(BP_DTheme.pulse)),jq.fn.extend({"heartbeat-send":function(){return this.bind("heartbeat-send.buddypress")}}));var r=0;jq(document).on("heartbeat-send.buddypress",function(e,t){r=0,jq("#buddypress ul.activity-list li").first().prop("id")&&(timestamp=jq("#buddypress ul.activity-list li").first().prop("class").match(/date-recorded-([0-9]+)/),timestamp&&(r=timestamp[1])),(0===activity_last_recorded||Number(r)>activity_last_recorded)&&(activity_last_recorded=Number(r)),t.bp_activity_last_recorded=activity_last_recorded,last_recorded_search=bp_get_querystring("s"),last_recorded_search&&(t.bp_activity_last_recorded_search_terms=last_recorded_search)}),jq(document).on("heartbeat-tick",function(e,t){t.bp_activity_newest_activities&&(newest_activities=t.bp_activity_newest_activities.activities+newest_activities,activity_last_recorded=Number(t.bp_activity_newest_activities.last_recorded),jq("#buddypress ul.activity-list li").first().hasClass("load-newest")||jq("#buddypress ul.activity-list").prepend('<li class="load-newest"><a href="#newest">'+BP_DTheme.newest+"</a></li>"))})});
\ No newline at end of file
+function bp_get_directory_preference(e,t){var i={filter:"",scope:"",extras:""};if(!directoryPreferences.hasOwnProperty(e)){var a={};for(var s in i)i.hasOwnProperty(s)&&(a[s]=i[s]);directoryPreferences[e]=a}return BP_DTheme.store_filter_settings&&(directoryPreferences[e][t]=jq.cookie("bp-"+e+"-"+t)),directoryPreferences[e][t]}function bp_set_directory_preference(e,t,i){var a={filter:"",scope:"",extras:""};if(!directoryPreferences.hasOwnProperty(e)){var s={};for(var r in a)a.hasOwnProperty(r)&&(s[r]=a[r]);directoryPreferences[e]=s}BP_DTheme.store_filter_settings&&jq.cookie("bp-"+e+"-"+t,i,{path:"/",secure:"https:"===window.location.protocol}),directoryPreferences[e][t]=i}function bp_init_activity(){var e=bp_get_directory_preference("activity","scope"),t=bp_get_directory_preference("activity","filter");void 0!==t&&jq("#activity-filter-select").length&&jq('#activity-filter-select select option[value="'+t+'"]').prop("selected",!0),void 0!==e&&jq(".activity-type-tabs").length&&(jq(".activity-type-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#activity-"+e+", .item-list-tabs li.current").addClass("selected"))}function bp_init_objects(e){jq(e).each(function(t){var i=bp_get_directory_preference(e[t],"scope"),a=bp_get_directory_preference(e[t],"filter");void 0!==a&&jq("#"+e[t]+"-order-select select").length&&jq("#"+e[t]+'-order-select select option[value="'+a+'"]').prop("selected",!0),void 0!==i&&jq("div."+e[t]).length&&(jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+e[t]+"-"+i+", #object-nav li.current").addClass("selected"))})}function bp_filter_request(e,t,i,a,s,r,n,o,c){if("activity"===e)return!1;null===i&&(i="all"),bp_set_directory_preference(e,"scope",i),bp_set_directory_preference(e,"filter",t),bp_set_directory_preference(e,"extras",n),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected")}),jq("#"+e+"-"+i+", #object-nav li.current").addClass("selected"),jq(".item-list-tabs li.selected").addClass("loading"),jq('.item-list-tabs select option[value="'+t+'"]').prop("selected",!0),"friends"!==e&&"group_members"!==e||(e="members"),bp_ajax_request&&bp_ajax_request.abort();var l={};l["bp-"+e+"-filter"]=bp_get_directory_preference(e,"filter"),l["bp-"+e+"-scope"]=bp_get_directory_preference(e,"scope");var d=encodeURIComponent(jq.param(l));bp_ajax_request=jq.post(ajaxurl,{action:e+"_filter",cookie:d,object:e,filter:t,search_terms:s,scope:i,page:r,extras:n,template:c},function(e){if("pag-bottom"===o&&jq("#subnav").length){var t=jq("#subnav").parent();jq("html,body").animate({scrollTop:t.offset().top},"slow",function(){jq(a).fadeOut(100,function(){jq(this).html(e),jq(this).fadeIn(100)})})}else jq(a).fadeOut(100,function(){jq(this).html(e),jq(this).fadeIn(100)});jq(".item-list-tabs li.selected").removeClass("loading")})}function bp_activity_request(e,t){bp_set_directory_preference("activity","scope",e),bp_set_directory_preference("activity","filter",t),jq(".item-list-tabs li").each(function(){jq(this).removeClass("selected loading")}),jq("#activity-"+e+", .item-list-tabs li.current").addClass("selected"),jq("#object-nav.item-list-tabs li.selected, div.activity-type-tabs li.selected").addClass("loading"),jq('#activity-filter-select select option[value="'+t+'"]').prop("selected",!0),jq(".widget_bp_activity_widget h2 span.ajax-loader").show(),bp_ajax_request&&bp_ajax_request.abort();var i={"bp-activity-filter":bp_get_directory_preference("activity","filter"),"bp-activity-scope":bp_get_directory_preference("activity","scope")},a=encodeURIComponent(jq.param(i));bp_ajax_request=jq.post(ajaxurl,{action:"activity_widget_filter",cookie:a,_wpnonce_activity_filter:jq("#_wpnonce_activity_filter").val(),scope:e,filter:t},function(e){jq(".widget_bp_activity_widget h2 span.ajax-loader").hide(),jq("div.activity").fadeOut(100,function(){jq(this).html(e.contents),jq(this).fadeIn(100),bp_legacy_theme_hide_comments()}),void 0!==e.feed_url&&jq(".directory #subnav li.feed a, .home-page #subnav li.feed a").attr("href",e.feed_url),jq(".item-list-tabs li.selected").removeClass("loading")},"json")}function bp_legacy_theme_hide_comments(){var e,t,i,a=jq("div.activity-comments");if(!a.length)return!1;a.each(function(){jq(this).children("ul").children("li").length<5||(comments_div=jq(this),e=comments_div.parents("#activity-stream > li"),t=jq(this).children("ul").children("li"),i=" ",jq("#"+e.attr("id")+" li").length&&(i=jq("#"+e.attr("id")+" li").length),t.each(function(a){a<t.length-5&&(jq(this).hide(),a||jq(this).before('<li class="show-all"><a href="#'+e.attr("id")+'/show-all/">'+BP_DTheme.show_x_comments.replace("%d",i)+"</a></li>"))}))})}function checkAll(){var e,t=document.getElementsByTagName("input");for(e=0;e<t.length;e++)"checkbox"===t[e].type&&(""===$("check_all").checked?t[e].checked="":t[e].checked="checked")}function clear(e){if(e=document.getElementById(e)){var t=e.getElementsByTagName("INPUT"),i=e.getElementsByTagName("OPTION"),a=0;if(t)for(a=0;a<t.length;a++)t[a].checked="";if(i)for(a=0;a<i.length;a++)i[a].selected=!1}}function bp_get_cookies(){var e,t,i,a,s,r=document.cookie.split(";"),n={};for(e=0;e<r.length;e++)i=(t=r[e]).indexOf("="),a=jq.trim(unescape(t.slice(0,i))),s=unescape(t.slice(i+1)),0===a.indexOf("bp-")&&(n[a]=s);return encodeURIComponent(jq.param(n))}function bp_get_query_var(e,t){var i={};return(t=void 0===t?location.search.substr(1).split("&"):t.split("?")[1].split("&")).forEach(function(e){i[e.split("=")[0]]=e.split("=")[1]&&decodeURIComponent(e.split("=")[1])}),!(!i.hasOwnProperty(e)||null==i[e])&&i[e]}var jq=jQuery,bp_ajax_request=null,newest_activities="",activity_last_recorded=0,directoryPreferences={};jq(document).ready(function(){var e=1;bp_init_activity();var t=["members","groups","blogs","group_members"],i=jq("#whats-new");if(bp_init_objects(t),i.length&&bp_get_querystring("r")){var a=i.val();jq("#whats-new-options").slideDown(),i.animate({height:"3.8em"}),jq.scrollTo(i,500,{offset:-125,easing:"swing"}),i.val("").focus().val(a)}else jq("#whats-new-options").hide();if(i.focus(function(){jq("#whats-new-options").slideDown(),jq(this).animate({height:"3.8em"}),jq("#aw-whats-new-submit").prop("disabled",!1),jq(this).parent().addClass("active"),jq("#whats-new-content").addClass("active");var e=jq("form#whats-new-form"),t=jq("#activity-all");e.hasClass("submitted")&&e.removeClass("submitted"),t.length&&(t.hasClass("selected")?"-1"!==jq("#activity-filter-select select").val()&&(jq("#activity-filter-select select").val("-1"),jq("#activity-filter-select select").trigger("change")):(jq("#activity-filter-select select").val("-1"),t.children("a").trigger("click")))}),jq("#whats-new-form").on("focusout",function(e){var t=jq(this);setTimeout(function(){if(!t.find(":hover").length){if(""!==i.val())return;i.animate({height:"2.2em"}),jq("#whats-new-options").slideUp(),jq("#aw-whats-new-submit").prop("disabled",!0),jq("#whats-new-content").removeClass("active"),i.parent().removeClass("active")}},0)}),jq("#aw-whats-new-submit").on("click",function(){var e,t=0,i=jq(this),a=i.closest("form#whats-new-form"),s={};return jq.each(a.serializeArray(),function(e,t){"_"!==t.name.substr(0,1)&&"whats-new"!==t.name.substr(0,9)&&(s[t.name]?jq.isArray(s[t.name])?s[t.name].push(t.value):s[t.name]=new Array(s[t.name],t.value):s[t.name]=t.value)}),a.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!0)}),jq("div.error").remove(),i.addClass("loading"),i.prop("disabled",!0),a.addClass("submitted"),object="",item_id=jq("#whats-new-post-in").val(),content=jq("#whats-new").val(),firstrow=jq("#buddypress ul.activity-list li").first(),activity_row=firstrow,timestamp=null,firstrow.length&&(activity_row.hasClass("load-newest")&&(activity_row=firstrow.next()),timestamp=activity_row.prop("class").match(/date-recorded-([0-9]+)/)),timestamp&&(t=timestamp[1]),item_id>0&&(object=jq("#whats-new-post-object").val()),e=jq.extend({action:"post_update",cookie:bp_get_cookies(),_wpnonce_post_update:jq("#_wpnonce_post_update").val(),content:content,object:object,item_id:item_id,since:t,_bp_as_nonce:jq("#_bp_as_nonce").val()||""},s),jq.post(ajaxurl,e,function(e){if(a.find("*").each(function(){(jq.nodeName(this,"textarea")||jq.nodeName(this,"input"))&&jq(this).prop("disabled",!1)}),e[0]+e[1]==="-1")a.prepend(e.substr(2,e.length)),jq("#"+a.attr("id")+" div.error").hide().fadeIn(200);else{if(0===jq("ul.activity-list").length&&(jq("div.error").slideUp(100).remove(),jq("#message").slideUp(100).remove(),jq("div.activity").append('<ul id="activity-stream" class="activity-list item-list">')),firstrow.hasClass("load-newest")&&firstrow.remove(),jq("#activity-stream").prepend(e),t||jq("#activity-stream li:first").addClass("new-update just-posted"),0!==jq("#latest-update").length){var i=jq("#activity-stream li.new-update .activity-content .activity-inner p").html(),s=jq("#activity-stream li.new-update .activity-content .activity-header p a.view").attr("href"),r="";""!==jq("#activity-stream li.new-update .activity-content .activity-inner p").text()&&(r=i+" "),r+='<a href="'+s+'" rel="nofollow">'+BP_DTheme.view+"</a>",jq("#latest-update").slideUp(300,function(){jq("#latest-update").html(r),jq("#latest-update").slideDown(300)})}jq("li.new-update").hide().slideDown(300),jq("li.new-update").removeClass("new-update"),jq("#whats-new").val(""),a.get(0).reset(),newest_activities="",activity_last_recorded=0}jq("#whats-new-options").slideUp(),jq("#whats-new-form textarea").animate({height:"2.2em"}),jq("#aw-whats-new-submit").prop("disabled",!0).removeClass("loading"),jq("#whats-new-content").removeClass("active")}),!1}),jq("div.activity-type-tabs").on("click",function(e){var t,i,a=jq(e.target).parent();if("STRONG"===e.target.nodeName||"SPAN"===e.target.nodeName)a=a.parent();else if("A"!==e.target.nodeName)return!1;return t=a.attr("id").substr(9,a.attr("id").length),i=jq("#activity-filter-select select").val(),"mentions"===t&&jq("#"+a.attr("id")+" a strong").remove(),bp_activity_request(t,i),!1}),jq("#activity-filter-select select").change(function(){var e,t=jq("div.activity-type-tabs li.selected"),i=jq(this).val();return e=t.length?t.attr("id").substr(9,t.attr("id").length):null,bp_activity_request(e,i),!1}),jq("div.activity").on("click",function(t){var i,a,s,r,n,o,c,l,d,p,u=jq(t.target);return u.hasClass("fav")||u.hasClass("unfav")?!u.hasClass("loading")&&(i=u.hasClass("fav")?"fav":"unfav",a=u.closest(".activity-item"),s=a.attr("id").substr(9,a.attr("id").length),c=bp_get_query_var("_wpnonce",u.attr("href")),u.addClass("loading"),jq.post(ajaxurl,{action:"activity_mark_"+i,cookie:bp_get_cookies(),id:s,nonce:c},function(e){u.removeClass("loading"),u.fadeOut(200,function(){jq(this).html(e),jq(this).attr("title","fav"===i?BP_DTheme.remove_fav:BP_DTheme.mark_as_fav),jq(this).fadeIn(200)}),"fav"===i?(jq(".item-list-tabs #activity-favs-personal-li").length||(jq(".item-list-tabs #activity-favorites").length||jq(".item-list-tabs ul #activity-mentions").before('<li id="activity-favorites"><a href="#">'+BP_DTheme.my_favs+" <span>0</span></a></li>"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())+1)),u.removeClass("fav"),u.addClass("unfav")):(u.removeClass("unfav"),u.addClass("fav"),jq(".item-list-tabs ul #activity-favorites span").html(Number(jq(".item-list-tabs ul #activity-favorites span").html())-1),Number(jq(".item-list-tabs ul #activity-favorites span").html())||(jq(".item-list-tabs ul #activity-favorites").hasClass("selected")&&bp_activity_request(null,null),jq(".item-list-tabs ul #activity-favorites").remove())),"activity-favorites"===jq(".item-list-tabs li.selected").attr("id")&&u.closest(".activity-item").slideUp(100)}),!1):u.hasClass("delete-activity")?(r=u.parents("div.activity ul li"),n=r.attr("id").substr(9,r.attr("id").length),o=u.attr("href"),c=o.split("_wpnonce="),l=r.prop("class").match(/date-recorded-([0-9]+)/),c=c[1],u.addClass("loading"),jq.post(ajaxurl,{action:"delete_activity",cookie:bp_get_cookies(),id:n,_wpnonce:c},function(e){e[0]+e[1]==="-1"?(r.prepend(e.substr(2,e.length)),r.children("#message").hide().fadeIn(300)):(r.slideUp(300),l&&activity_last_recorded===l[1]&&(newest_activities="",activity_last_recorded=0))}),!1):u.hasClass("spam-activity")?(r=u.parents("div.activity ul li"),l=r.prop("class").match(/date-recorded-([0-9]+)/),u.addClass("loading"),jq.post(ajaxurl,{action:"bp_spam_activity",cookie:encodeURIComponent(document.cookie),id:r.attr("id").substr(9,r.attr("id").length),_wpnonce:u.attr("href").split("_wpnonce=")[1]},function(e){e[0]+e[1]==="-1"?(r.prepend(e.substr(2,e.length)),r.children("#message").hide().fadeIn(300)):(r.slideUp(300),l&&activity_last_recorded===l[1]&&(newest_activities="",activity_last_recorded=0))}),!1):u.parent().hasClass("load-more")?(bp_ajax_request&&bp_ajax_request.abort(),jq("#buddypress li.load-more").addClass("loading"),d=e+1,p=[],jq(".activity-list li.just-posted").each(function(){p.push(jq(this).attr("id").replace("activity-",""))}),load_more_args={action:"activity_get_older_updates",cookie:bp_get_cookies(),page:d,exclude_just_posted:p.join(",")},load_more_search=bp_get_querystring("s"),load_more_search&&(load_more_args.search_terms=load_more_search),bp_ajax_request=jq.post(ajaxurl,load_more_args,function(t){jq("#buddypress li.load-more").removeClass("loading"),e=d,jq("#buddypress ul.activity-list").append(t.contents),u.parent().hide()},"json"),!1):void(u.parent().hasClass("load-newest")&&(t.preventDefault(),u.parent().hide(),activity_html=jq.parseHTML(newest_activities),jq.each(activity_html,function(e,t){"LI"===t.nodeName&&jq(t).hasClass("just-posted")&&jq("#"+jq(t).attr("id")).length&&jq("#"+jq(t).attr("id")).remove()}),jq("#buddypress ul.activity-list").prepend(newest_activities),newest_activities=""))}),jq("div.activity").on("click",".activity-read-more a",function(e){var t,i,a=jq(e.target),s=a.parent().attr("id").split("-"),r=s[3],n=s[0];return t="acomment"===n?"acomment-content":"activity-inner",i=jq("#"+n+"-"+r+" ."+t+":first"),jq(a).addClass("loading"),jq.post(ajaxurl,{action:"get_single_activity_content",activity_id:r},function(e){jq(i).slideUp(300).html(e).slideDown(300)}),!1}),jq("form.ac-form").hide(),jq(".activity-comments").length&&bp_legacy_theme_hide_comments(),jq("div.activity").on("click",function(e){var t,i,a,s,r,n,o,c,l,d,p,u,m,h,_,v=jq(e.target);return v.hasClass("acomment-reply")||v.parent().hasClass("acomment-reply")?(v.parent().hasClass("acomment-reply")&&(v=v.parent()),t=v.attr("id"),i=t.split("-"),a=i[2],s=v.attr("href").substr(10,v.attr("href").length),(r=jq("#ac-form-"+a)).css("display","none"),r.removeClass("root"),jq(".ac-form").hide(),r.children("div").each(function(){jq(this).hasClass("error")&&jq(this).hide()}),"comment"!==i[1]?jq("#acomment-"+s).append(r):jq("#activity-"+a+" .activity-comments").append(r),r.parent().hasClass("activity-comments")&&r.addClass("root"),r.slideDown(200),jq.scrollTo(r,500,{offset:-100,easing:"swing"}),jq("#ac-form-"+i[2]+" textarea").focus(),!1):"ac_form_submit"===v.attr("name")?(r=v.parents("form"),n=r.parent(),o=r.attr("id").split("-"),c=n.hasClass("activity-comments")?o[2]:n.attr("id").split("-")[1],content=jq("#"+r.attr("id")+" textarea"),jq("#"+r.attr("id")+" div.error").hide(),v.addClass("loading").prop("disabled",!0),content.addClass("loading").prop("disabled",!0),l={action:"new_activity_comment",cookie:bp_get_cookies(),_wpnonce_new_activity_comment:jq("#_wpnonce_new_activity_comment").val(),comment_id:c,form_id:o[2],content:content.val()},(d=jq("#_bp_as_nonce_"+c).val())&&(l["_bp_as_nonce_"+c]=d),jq.post(ajaxurl,l,function(e){if(v.removeClass("loading"),content.removeClass("loading"),e[0]+e[1]==="-1")r.append(jq(e.substr(2,e.length)).hide().fadeIn(200));else{var t=r.parent();r.fadeOut(200,function(){0===t.children("ul").length&&(t.hasClass("activity-comments")?t.prepend("<ul></ul>"):t.append("<ul></ul>"));var i=jq.trim(e);t.children("ul").append(jq(i).hide().fadeIn(200)),r.children("textarea").val(""),t.parent().addClass("has-comments")}),jq("#"+r.attr("id")+" textarea").val(""),u=Number(jq("#activity-"+o[2]+" a.acomment-reply span").html())+1,jq("#activity-"+o[2]+" a.acomment-reply span").html(u),(p=t.parents(".activity-comments").find(".show-all a"))&&p.html(BP_DTheme.show_x_comments.replace("%d",u))}jq(v).prop("disabled",!1),jq(content).prop("disabled",!1)}),!1):v.hasClass("acomment-delete")?(m=v.attr("href"),h=v.parent().parent(),r=h.parents("div.activity-comments").children("form"),_=m.split("_wpnonce="),_=_[1],c=m.split("cid="),c=c[1].split("&"),c=c[0],v.addClass("loading"),jq(".activity-comments ul .error").remove(),h.parents(".activity-comments").append(r),jq.post(ajaxurl,{action:"delete_activity_comment",cookie:bp_get_cookies(),_wpnonce:_,id:c},function(e){if(e[0]+e[1]==="-1")h.prepend(jq(e.substr(2,e.length)).hide().fadeIn(200));else{var t,i,a,s=jq("#"+h.attr("id")+" ul").children("li"),r=0;jq(s).each(function(){jq(this).is(":hidden")||r++}),h.fadeOut(200,function(){h.remove()}),i=(t=jq("#"+h.parents("#activity-stream > li").attr("id")+" a.acomment-reply span")).html()-(1+r),t.html(i),(a=h.parents(".activity-comments").find(".show-all a"))&&a.html(BP_DTheme.show_x_comments.replace("%d",i)),0===i&&jq(h.parents("#activity-stream > li")).removeClass("has-comments")}}),!1):v.hasClass("spam-activity-comment")?(m=v.attr("href"),h=v.parent().parent(),v.addClass("loading"),jq(".activity-comments ul div.error").remove(),h.parents(".activity-comments").append(h.parents(".activity-comments").children("form")),jq.post(ajaxurl,{action:"bp_spam_activity_comment",cookie:encodeURIComponent(document.cookie),_wpnonce:m.split("_wpnonce=")[1],id:m.split("cid=")[1].split("&")[0]},function(e){if(e[0]+e[1]==="-1")h.prepend(jq(e.substr(2,e.length)).hide().fadeIn(200));else{var t,i=jq("#"+h.attr("id")+" ul").children("li"),a=0;jq(i).each(function(){jq(this).is(":hidden")||a++}),h.fadeOut(200),t=h.parents("#activity-stream > li"),jq("#"+t.attr("id")+" a.acomment-reply span").html(jq("#"+t.attr("id")+" a.acomment-reply span").html()-(1+a))}}),!1):v.parent().hasClass("show-all")?(v.parent().addClass("loading"),setTimeout(function(){v.parent().parent().children("li").fadeIn(200,function(){v.parent().remove()})},600),!1):v.hasClass("ac-reply-cancel")?(jq(v).closest(".ac-form").slideUp(200),!1):void 0}),jq(document).keydown(function(e){(e=e||window.event).target?element=e.target:e.srcElement&&(element=e.srcElement),3===element.nodeType&&(element=element.parentNode),!0!==e.ctrlKey&&!0!==e.altKey&&!0!==e.metaKey&&27===(e.keyCode?e.keyCode:e.which)&&"TEXTAREA"===element.tagName&&jq(element).hasClass("ac-input")&&jq(element).parent().parent().parent().slideUp(200)}),jq(".dir-search, .groups-members-search").on("click",function(e){if(!jq(this).hasClass("no-ajax")){var t,i,a,s=jq(e.target);if("submit"===s.attr("type")){t=jq(".item-list-tabs li.selected").attr("id").split("-")[0],i=null,a=s.parent().find("#"+t+"_search").val(),"groups-members-search"===e.currentTarget.className&&(t="group_members",i="groups/single/members");var r=bp_get_directory_preference(t,"scope");return bp_filter_request(t,bp_get_directory_preference(t,"filter"),r,"div."+t,a,1,bp_get_directory_preference(t,"extras"),null,i),!1}}}),jq("div.item-list-tabs").on("click",function(e){if(jq("body").hasClass("type")&&jq("body").hasClass("directory")&&jq(this).addClass("no-ajax"),!jq(this).hasClass("no-ajax")&&!jq(e.target).hasClass("no-ajax")){var t,i,a,s="SPAN"===e.target.nodeName?e.target.parentNode:e.target,r=jq(s).parent();return"LI"!==r[0].nodeName||r.hasClass("last")?void 0:(t=r.attr("id").split("-"),"activity"!==(i=t[0])&&(a=t[1],bp_filter_request(i,jq("#"+i+"-order-select select").val(),a,"div."+i,jq("#"+i+"_search").val(),1,bp_get_directory_preference(i,"extras")),!1))}}),jq("li.filter select").change(function(){var e,t,i,a,s,r,n;return t=(e=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":this).attr("id").split("-"))[0],i=e[1],a=jq(this).val(),s=!1,r=null,jq(".dir-search input").length&&(s=jq(".dir-search input").val()),(n=jq(".groups-members-search input")).length&&(s=n.val(),t="members",i="groups"),"members"===t&&"groups"===i&&(t="group_members",r="groups/single/members"),"friends"===t&&(t="members"),bp_filter_request(t,a,i,"div."+t,s,1,bp_get_directory_preference(t,"extras"),null,r),!1}),jq("#buddypress").on("click",function(e){var t,i,a,s,r,n,o,c,l=jq(e.target);if(l.hasClass("button"))return!0;if(l.parent().parent().hasClass("pagination")&&!l.parent().parent().hasClass("no-ajax")){if(l.hasClass("dots")||l.hasClass("current"))return!1;i=(t=jq(jq(".item-list-tabs li.selected").length?".item-list-tabs li.selected":"li.filter select").attr("id").split("-"))[0],a=!1,s=jq(l).closest(".pagination-links").attr("id"),r=null,jq("div.dir-search input").length&&(a=!(a=jq(".dir-search input")).val()&&bp_get_querystring(a.attr("name"))?jq(".dir-search input").prop("placeholder"):a.val()),n=jq(l).hasClass("next")||jq(l).hasClass("prev")?jq(".pagination span.current").html():jq(l).html(),n=Number(n.replace(/\D/g,"")),jq(l).hasClass("next")?n++:jq(l).hasClass("prev")&&n--,(o=jq(".groups-members-search input")).length&&(a=o.val(),i="members"),"members"===i&&"groups"===t[1]&&(i="group_members",r="groups/single/members"),"admin"===i&&jq("body").hasClass("membership-requests")&&(i="requests"),c=-1!==s.indexOf("pag-bottom")?"pag-bottom":null;var d=bp_get_directory_preference(i,"scope");return bp_filter_request(i,bp_get_directory_preference(i,"filter"),d,"div."+i,a,n,bp_get_directory_preference(i,"extras"),c,r),!1}}),jq("#send-invite-form").on("click","#invite-list input",function(){var e,t,i=jq("#send-invite-form > .invite").length;jq(".ajax-loader").toggle(),i&&jq(this).parents("ul").find("input").prop("disabled",!0),e=jq(this).val(),t=!0===jq(this).prop("checked")?"invite":"uninvite",i||jq(".item-list-tabs li.selected").addClass("loading"),jq.post(ajaxurl,{action:"groups_invite_user",friend_action:t,cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:e,group_id:jq("#group_id").val()},function(a){jq("#message")&&jq("#message").hide(),i?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),"invite"===t?jq("#friend-list").append(a):"uninvite"===t&&jq("#friend-list li#uid-"+e).remove(),jq(".item-list-tabs li.selected").removeClass("loading"))})}),jq("#send-invite-form").on("click","a.remove",function(){var e=jq("#send-invite-form > .invite").length,t=jq(this).attr("id");return jq(".ajax-loader").toggle(),t=t.split("-"),t=t[1],jq.post(ajaxurl,{action:"groups_invite_user",friend_action:"uninvite",cookie:bp_get_cookies(),_wpnonce:jq("#_wpnonce_invite_uninvite_user").val(),friend_id:t,group_id:jq("#group_id").val()},function(i){e?bp_filter_request("invite","bp-invite-filter","bp-invite-scope","div.invite",!1,1,"","",""):(jq(".ajax-loader").toggle(),jq("#friend-list #uid-"+t).remove(),jq("#invite-list #f-"+t).prop("checked",!1))}),!1}),jq(".visibility-toggle-link").on("click",function(e){e.preventDefault(),jq(this).attr("aria-expanded","true").parent().hide().addClass("field-visibility-settings-hide").siblings(".field-visibility-settings").show().addClass("field-visibility-settings-open")}),jq(".field-visibility-settings-close").on("click",function(e){e.preventDefault(),jq(".visibility-toggle-link").attr("aria-expanded","false");var t=jq(this).parent(),i=t.find("input:checked").parent().text();t.hide().removeClass("field-visibility-settings-open").siblings(".field-visibility-settings-toggle").find(".current-visibility-level").text(i).end().show().removeClass("field-visibility-settings-hide")}),jq("#profile-edit-form input:not(:submit), #profile-edit-form textarea, #profile-edit-form select, #signup_form input:not(:submit), #signup_form textarea, #signup_form select").change(function(){var e=!0;jq("#profile-edit-form input:submit, #signup_form input:submit").on("click",function(){e=!1}),window.onbeforeunload=function(t){if(e)return BP_DTheme.unsaved_changes}}),jq("#friend-list a.accept, #friend-list a.reject").on("click",function(){var e,t=jq(this),i=jq(this).parents("#friend-list li"),a=jq(this).parents("li div.action"),s=i.attr("id").substr(11,i.attr("id").length),r=t.attr("href").split("_wpnonce=")[1];return!jq(this).hasClass("accepted")&&!jq(this).hasClass("rejected")&&(jq(this).hasClass("accept")?(e="accept_friendship",a.children("a.reject").css("visibility","hidden")):(e="reject_friendship",a.children("a.accept").css("visibility","hidden")),t.addClass("loading"),jq.post(ajaxurl,{action:e,cookie:bp_get_cookies(),id:s,_wpnonce:r},function(e){t.removeClass("loading"),e[0]+e[1]==="-1"?(i.prepend(e.substr(2,e.length)),i.children("#message").hide().fadeIn(200)):t.fadeOut(100,function(){jq(this).hasClass("accept")?(a.children("a.reject").hide(),jq(this).html(BP_DTheme.accepted).contents().unwrap()):(a.children("a.accept").hide(),jq(this).html(BP_DTheme.rejected).contents().unwrap())})}),!1)}),jq("#members-dir-list, #members-group-list, #item-header").on("click",".friendship-button a",function(){jq(this).parent().addClass("loading");var e=jq(this).attr("id"),t=jq(this).attr("href"),i=jq(this);return e=e.split("-"),e=e[1],t=t.split("?_wpnonce="),t=t[1].split("&"),t=t[0],jq.post(ajaxurl,{action:"addremove_friend",cookie:bp_get_cookies(),fid:e,_wpnonce:t},function(e){var t=i.attr("rel");parentdiv=i.parent(),"add"===t?jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("add_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("pending_friend"),parentdiv.fadeIn(200).html(e)}):"remove"===t&&jq(parentdiv).fadeOut(200,function(){parentdiv.removeClass("remove_friend"),parentdiv.removeClass("loading"),parentdiv.addClass("add"),parentdiv.fadeIn(200).html(e)})}),!1}),jq("#buddypress").on("click",".group-button .leave-group",function(){if(!1===confirm(BP_DTheme.leave_group_confirm))return!1}),jq("#groups-dir-list").on("click",".group-button a",function(){var e=jq(this).parent().attr("id"),t=jq(this).attr("href"),i=jq(this);return e=e.split("-"),e=e[1],t=t.split("?_wpnonce="),t=t[1].split("&"),t=t[0],(!i.hasClass("leave-group")||!1!==confirm(BP_DTheme.leave_group_confirm))&&(jq.post(ajaxurl,{action:"joinleave_group",cookie:bp_get_cookies(),gid:e,_wpnonce:t},function(e){var t=i.parent();jq("body.directory").length?jq(t).fadeOut(200,function(){t.fadeIn(200).html(e);var a=jq("#groups-personal span"),s=1;i.hasClass("leave-group")?(t.hasClass("hidden")&&t.closest("li").slideUp(200),s=0):i.hasClass("request-membership")&&(s=!1),a.length&&!1!==s&&(s?a.text(1+(a.text()>>0)):a.text((a.text()>>0)-1))}):window.location.reload()}),!1)}),jq("#groups-list li.hidden").each(function(){"none"===jq(this).css("display")&&jq(this).css("cssText","display: list-item !important")}),jq("#buddypress").on("click",".pending",function(){return!1}),jq("body").hasClass("register")){var s=jq("#signup_with_blog");s.prop("checked")||jq("#blog-details").toggle(),s.change(function(){jq("#blog-details").toggle()})}jq(".message-search").on("click",function(e){if(!jq(this).hasClass("no-ajax")){var t,i=jq(e.target);if("submit"===i.attr("type")||"button"===i.attr("type")){var a=bp_get_directory_preference(t="messages","scope"),s=bp_get_directory_preference(t,"filter"),r=bp_get_directory_preference(t,"extras");return bp_filter_request(t,s,a,"div."+t,jq("#messages_search").val(),1,r),!1}}}),jq("#send_reply_button").click(function(){var e=jq("#messages_order").val()||"ASC",t=jq("#message-recipients").offset(),i=jq("#send_reply_button");return jq(i).addClass("loading").prop("disabled",!0),jq.post(ajaxurl,{action:"messages_send_reply",cookie:bp_get_cookies(),_wpnonce:jq("#send_message_nonce").val(),content:jq("#message_content").val(),send_to:jq("#send_to").val(),subject:jq("#subject").val(),thread_id:jq("#thread_id").val()},function(a){a[0]+a[1]==="-1"?jq("#send-reply").prepend(a.substr(2,a.length)):(jq("#send-reply #message").remove(),jq("#message_content").val(""),"ASC"===e?jq("#send-reply").before(a):(jq("#message-recipients").after(a),jq(window).scrollTop(t.top)),jq(".new-message").hide().slideDown(200,function(){jq(".new-message").removeClass("new-message")})),jq(i).removeClass("loading").prop("disabled",!1)}),!1}),jq("body.messages #item-body div.messages").on("change","#message-type-select",function(){var e=this.value,t=jq('td input[type="checkbox"]'),i="checked";switch(t.each(function(e){t[e].checked=""}),e){case"unread":t=jq('tr.unread td input[type="checkbox"]');break;case"read":t=jq('tr.read td input[type="checkbox"]');break;case"":i=""}t.each(function(e){t[e].checked=i})}),jq("#select-all-messages").click(function(e){this.checked?jq(".message-check").each(function(){this.checked=!0}):jq(".message-check").each(function(){this.checked=!1})}),jq("#messages-bulk-manage").attr("disabled","disabled"),jq("#messages-select").on("change",function(){jq("#messages-bulk-manage").attr("disabled",jq(this).val().length<=0)}),starAction=function(){var e=jq(this);return jq.post(ajaxurl,{action:"messages_star",message_id:e.data("message-id"),star_status:e.data("star-status"),nonce:e.data("star-nonce"),bulk:e.data("star-bulk")},function(t){1===parseInt(t,10)&&("unstar"===e.data("star-status")?(e.data("star-status","star"),e.removeClass("message-action-unstar").addClass("message-action-star"),e.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_star),1===BP_PM_Star.is_single_thread?e.attr("data-bp-tooltip",BP_PM_Star.strings.title_star):e.attr("data-bp-tooltip",BP_PM_Star.strings.title_star_thread)):(e.data("star-status","unstar"),e.removeClass("message-action-star").addClass("message-action-unstar"),e.find(".bp-screen-reader-text").text(BP_PM_Star.strings.text_unstar),1===BP_PM_Star.is_single_thread?e.attr("data-bp-tooltip",BP_PM_Star.strings.title_unstar):e.attr("data-bp-tooltip",BP_PM_Star.strings.title_unstar_thread)))}),!1},jq("#message-threads").on("click","td.thread-star a",starAction),jq("#message-thread").on("click",".message-star-actions a",starAction),jq("#message-threads td.bulk-select-check :checkbox").on("change",function(){var e=jq(this),t=e.closest("tr").find(".thread-star a");e.prop("checked")?"unstar"===t.data("star-status")?BP_PM_Star.star_counter++:BP_PM_Star.unstar_counter++:"unstar"===t.data("star-status")?BP_PM_Star.star_counter--:BP_PM_Star.unstar_counter--,BP_PM_Star.star_counter>0&&0===parseInt(BP_PM_Star.unstar_counter,10)?jq('option[value="star"]').hide():jq('option[value="star"]').show(),BP_PM_Star.unstar_counter>0&&0===parseInt(BP_PM_Star.star_counter,10)?jq('option[value="unstar"]').hide():jq('option[value="unstar"]').show()}),jq("#select-all-notifications").click(function(e){this.checked?jq(".notification-check").each(function(){this.checked=!0}):jq(".notification-check").each(function(){this.checked=!1})}),jq("#notification-bulk-manage").attr("disabled","disabled"),jq("#notification-select").on("change",function(){jq("#notification-bulk-manage").attr("disabled",jq(this).val().length<=0)}),jq("#close-notice").on("click",function(){return jq(this).addClass("loading"),jq("#sidebar div.error").remove(),jq.post(ajaxurl,{action:"messages_close_notice",notice_id:jq(".notice").attr("rel").substr(2,jq(".notice").attr("rel").length),nonce:jq("#close-notice-nonce").val()},function(e){jq("#close-notice").removeClass("loading"),e[0]+e[1]==="-1"?(jq(".notice").prepend(e.substr(2,e.length)),jq("#sidebar div.error").hide().fadeIn(200)):jq(".notice").slideUp(100)}),!1}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseover(function(){jq(this).addClass("sfhover")}),jq("#wp-admin-bar ul.main-nav li, #nav li").mouseout(function(){jq(this).removeClass("sfhover")}),jq("#wp-admin-bar-logout, a.logout").on("click",function(){jq.removeCookie("bp-activity-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-activity-oldestpage",{path:"/",secure:"https:"===window.location.protocol});var e=["members","groups","blogs","forums"];jq(e).each(function(t){jq.removeCookie("bp-"+e[t]+"-scope",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+e[t]+"-filter",{path:"/",secure:"https:"===window.location.protocol}),jq.removeCookie("bp-"+e[t]+"-extras",{path:"/",secure:"https:"===window.location.protocol})})}),jq("body").hasClass("no-js")&&jq("body").attr("class",jq("body").attr("class").replace(/no-js/,"js")),"undefined"!=typeof wp&&void 0!==wp.heartbeat&&void 0!==BP_DTheme.pulse&&(wp.heartbeat.interval(Number(BP_DTheme.pulse)),jq.fn.extend({"heartbeat-send":function(){return this.bind("heartbeat-send.buddypress")}}));var r=0;jq(document).on("heartbeat-send.buddypress",function(e,t){r=0,jq("#buddypress ul.activity-list li").first().prop("id")&&(timestamp=jq("#buddypress ul.activity-list li").first().prop("class").match(/date-recorded-([0-9]+)/),timestamp&&(r=timestamp[1])),(0===activity_last_recorded||Number(r)>activity_last_recorded)&&(activity_last_recorded=Number(r)),t.bp_activity_last_recorded=activity_last_recorded,last_recorded_search=bp_get_querystring("s"),last_recorded_search&&(t.bp_activity_last_recorded_search_terms=last_recorded_search)}),jq(document).on("heartbeat-tick",function(e,t){t.bp_activity_newest_activities&&(newest_activities=t.bp_activity_newest_activities.activities+newest_activities,activity_last_recorded=Number(t.bp_activity_newest_activities.last_recorded),jq("#buddypress ul.activity-list li").first().hasClass("load-newest")||jq("#buddypress ul.activity-list").prepend('<li class="load-newest"><a href="#newest">'+BP_DTheme.newest+"</a></li>"))})});
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress-functions.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress-functions.php
index 0a5d582ad..ab50551eb 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress-functions.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress-functions.php
@@ -324,6 +324,13 @@ class BP_Nouveau extends BP_Theme_Compat {
 
 		// Add The password verify if needed.
 		if ( bp_is_active( 'settings' ) || bp_get_signup_allowed() ) {
+			/**
+			 * BP Nouveau is now directly using the `wp-admin/js/user-profile.js` script.
+			 *
+			 * Setting the user password is now more consistent with how WordPress handles it.
+			 *
+			 * @deprecated 5.0.0
+			 */
 			$scripts['bp-nouveau-password-verify'] = array(
 				'file'         => 'js/password-verify%s.js',
 				'dependencies' => array( 'bp-nouveau', 'password-strength-meter' ),
@@ -372,7 +379,7 @@ class BP_Nouveau extends BP_Theme_Compat {
 		wp_enqueue_script( 'bp-nouveau' );
 
 		if ( bp_is_register_page() || bp_is_user_settings_general() ) {
-			wp_enqueue_script( 'bp-nouveau-password-verify' );
+			wp_enqueue_script( 'user-profile' );
 		}
 
 		if ( is_singular() && bp_is_blog_page() && get_option( 'thread_comments' ) ) {
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/activity/form.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/activity/form.php
index ef5cfbbfd..285245993 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/activity/form.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/activity/form.php
@@ -2,10 +2,15 @@
 /**
  * Activity Post form JS Templates
  *
- * @version 3.1.0
+ * @since 3.0.0
+ * @version 5.0.0
  */
 ?>
 
+<script type="text/html" id="tmpl-activity-before-post-form-inputs">
+	<?php bp_nouveau_activity_hook( 'before', 'post_form' ); ?>
+</script>
+
 <script type="text/html" id="tmpl-activity-post-form-feedback">
 	<span class="bp-icon" aria-hidden="true"></span><p>{{{data.message}}}</p>
 </script>
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php
new file mode 100644
index 000000000..7ea66333d
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * BP Nouveau single group's membership management main template.
+ *
+ * This template is used to inject the BuddyPress Backbone views
+ * dealing with a group's membership management.
+ *
+ * @since 5.0.0
+ * @version 5.0.0
+ */
+?>
+
+<?php
+/**
+ * Placeholder to inject elements of the UI
+ * to manage Group members.
+ *
+ * @since 5.0.0
+ * @version 5.0.0
+ */
+?>
+<div id="group-manage-members-ui" class="standard-form">
+	<ul class="subnav-filters">
+		<li id="group-roles-filter" class="last filter"><?php // Placeholder for the Group Role Tabs ?></li>
+		<li id="group-members-pagination" class="left-menu"><?php // Placeholder for paginate links ?></li>
+		<li id="group-members-search-form" class="bp-search"><?php // Placeholder for search form ?></li>
+	</ul>
+	<table id="group-members-list-table" class="<?php echo is_admin() ? 'widefat bp-group-members' : 'bp-list'; ?>"><?php // Placeholder to list members ?></table>
+</div>
+
+<script type="text/html" id="tmpl-bp-manage-members-updating">
+	<# if ( ! data.type ) { #>
+		<small><?php echo esc_html_x( 'Updating role... Please wait.', 'group manage members update feedback', 'buddypress' ); ?></small>
+	<# } else if ( 'ban' === data.type ) { #>
+		<small><?php echo esc_html_x( 'Banning member... Please wait.', 'group manage members ban feedback', 'buddypress' ); ?></small>
+	<# } else if ( 'unban' === data.type ) { #>
+		<small><?php echo esc_html_x( 'Unbanning member... Please wait.', 'group manage members unban feedback', 'buddypress' ); ?></small>
+	<# } else if ( 'remove' === data.type ) { #>
+		<small><?php echo esc_html_x( 'Removing member... Please wait.', 'group manage members remove feedback', 'buddypress' ); ?></small>
+	<# } #>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-error">
+   <small>{{data.message}}</small>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-header">
+	<tr>
+		<th><?php echo esc_html_x( 'Group Members', 'group manage members table header', 'buddypress' ); ?></th>
+		<th><?php echo esc_html_x( 'Roles', 'group manage members table header', 'buddypress' ); ?></th>
+	</tr>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-empty-row">
+	<td colspan="2">
+		<div class="bp-feedback info">
+			<span class="bp-icon" aria-hidden="true"></span>
+			<p><?php esc_html_e( 'No Group members were found for this request.', 'buddypress' ); ?></p>
+		</div>
+	</td>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-label">
+	<# if ( data.type && 'filter' !== data.type ) { #>
+		<?php echo esc_html_x( 'Change role for:', 'group manage members row edit', 'buddypress' ); ?>
+	<# } else { #>
+		<?php echo esc_html_x( 'Filter:', 'group manage members roles filter', 'buddypress' ); ?></small>
+	<# } #>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-row">
+	<td class="uname-column">
+		<div class="group-member">
+			<a href="{{{data.link}}}">
+				<img src="{{{data.avatar_urls.thumb}}}" alt="{{data.name}}" class="avatar profile-photo alignleft"/>
+				{{data.name}}
+			</a>
+		</div>
+		<div class="group-member-actions row-actions">
+			<# if ( ! data.editing && ! data.is_banned ) { #>
+				<span class="edit"><a href="#edit-role" data-action="edit"><?php echo esc_html_x( 'Edit', 'group member edit role link', 'buddypress' ); ?></a> | </span>
+			<# } #>
+			<# if ( data.editing ) { #>
+				<span><a href="#edit-role-abort" data-action="abort"><?php echo esc_html_x( 'Stop editing', 'group member edit role abort link', 'buddypress' ); ?></a> | </span>
+			<# } #>
+			<# if ( ! data.is_banned ) { #>
+				<span class="spam"><a href="#ban" class="submitdelete" data-action="ban"><?php echo esc_html_x( 'Ban', 'group member ban link', 'buddypress' ); ?></a> | </span>
+			<# } else { #>
+				<span class="ham"><a href="#unban" data-action="unban"><?php echo esc_html_x( 'Unban', 'group member unban link', 'buddypress' ); ?></a> | </span>
+			<# } #>
+			<span class="delete"><a href="#remove" class="submitdelete" data-action="remove"><?php echo esc_html_x( 'Remove', 'group member ban link', 'buddypress' ); ?></a></span>
+		</div>
+	</td>
+	<td class="urole-column">
+		<# if ( ! data.editing  && ! data.managingBan && ! data.removing ) { #>
+			{{data.role.name}}
+		<# } else { #>
+			<div id="edit-group-member-{{data.id}}" class="group-member-edit"><?php // Placeholder for the Edit Role Dropdown. ;?></div>
+		<# } #>
+	</td>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-search">
+	<?php
+		$button_classes = array( 'bp-button', 'bp-search' );
+		$screen_reader_class = 'bp-screen-reader-text';
+
+		if ( is_admin() ) {
+			$button_classes[]    = 'button-secondary';
+			$screen_reader_class = 'screen-reader-text';
+		}
+	?>
+	<label for="manage-members-search" class="<?php echo sanitize_html_class( $screen_reader_class ); ?>">
+		<?php esc_html_e( 'Search Members', 'buddypress' ); ?>
+	</label>
+	<input type="search" id="manage-members-search" class="small" placeholder="<?php echo esc_attr_x( 'Search', 'search placeholder text', 'buddypress' ); ?>"/>
+	<button type="submit" id="manage-members-search-submit" class="<?php echo join( ' ', array_map( 'sanitize_html_class', $button_classes ) ); ?>">
+		<span class="dashicons dashicons-search" aria-hidden="true"></span>
+		<span class="<?php echo sanitize_html_class( $screen_reader_class ); ?>"><?php echo esc_html_x( 'Search', 'button', 'buddypress' ); ?></span>
+	</button>
+</script>
+
+<script type="text/html" id="tmpl-bp-manage-members-paginate">
+	<?php
+		$button_classes = array( 'group-members-paginate-button' );
+		$screen_reader_class = 'bp-screen-reader-text';
+
+		if ( is_admin() ) {
+			$button_classes[]    = 'button-secondary';
+			$screen_reader_class = 'screen-reader-text';
+		}
+	?>
+	<# if ( ! isNaN( data.currentPage ) && ! isNaN( data.totalPages ) ) { #>
+		<# if ( 1 !== data.currentPage && data.totalPages ) { #>
+			<button class="<?php echo join( ' ', array_map( 'sanitize_html_class', $button_classes ) ); ?>" data-page="{{data.prevPage}}">
+				<span class="dashicons dashicons-arrow-left"></span>
+				<span class="<?php echo sanitize_html_class( $screen_reader_class ); ?>"><?php echo esc_html_x( 'Prev.', 'link', 'buddypress' ); ?></span>
+			</button>
+		<# } #>
+		<# if ( data.totalPages !== data.currentPage ) { #>
+			<button class="<?php echo join( ' ', array_map( 'sanitize_html_class', $button_classes ) ); ?>" data-page="{{data.nextPage}}">
+				<span class="<?php echo sanitize_html_class( $screen_reader_class ); ?>"><?php echo esc_html_x( 'Next', 'link', 'buddypress' ); ?></span>
+				<span class="dashicons dashicons-arrow-right"></span>
+			</button>
+		<# } #>
+	<# } #>
+</script>
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php
index f29e351db..6aa50ec19 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php
@@ -3,7 +3,7 @@
  * BP Nouveau Group's manage members template.
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 5.0.0
  */
 ?>
 
@@ -11,7 +11,17 @@
 	<?php esc_html_e( 'Manage Group Members', 'buddypress' ); ?>
 </h2>
 
-	<p class="bp-help-text"><?php esc_html_e( 'Manage your group members; promote to moderators, admins or demote or ban.', 'buddypress' ); ?></p>
+<p class="bp-help-text"><?php esc_html_e( 'Manage your group members; promote to moderators, admins or demote or ban.', 'buddypress' ); ?></p>
+
+<?php if ( bp_rest_api_is_available() ) :
+	/**
+	 * Get the templates to manage Group Members using the BP REST API.
+	 *
+	 * @since 5.0.0
+	 */
+	bp_get_template_part( 'common/js-templates/group-members/index' );
+
+else : ?>
 
 	<dl class="groups-manage-members-list">
 
@@ -119,5 +129,6 @@
 
 		bp_nouveau_user_feedback( 'group-manage-members-none' );
 
-	endif; ?>
+	endif;
 
+endif;
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php
index e92cba5b4..ce1d50ff2 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php
@@ -22,7 +22,7 @@ bp_nouveau_group_hook( 'before', 'request_membership_content' ); ?>
 	</p>
 
 	<form action="<?php bp_group_form_action( 'request-membership' ); ?>" method="post" name="request-membership-form" id="request-membership-form" class="standard-form">
-		<label for="group-request-membership-comments"><?php esc_html( 'Comments (optional)', 'buddypress' ); ?></label>
+		<label for="group-request-membership-comments"><?php esc_html_e( 'Comments (optional)', 'buddypress' ); ?></label>
 		<textarea name="group-request-membership-comments" id="group-request-membership-comments"></textarea>
 
 		<?php bp_nouveau_group_hook( '', 'request_membership_content' ); ?>
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests-loop.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests-loop.php
new file mode 100644
index 000000000..76c63e934
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests-loop.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * BuddyPress - Members Friends Requests Loop
+ *
+ * @since 5.0.0
+ * @version 5.0.0
+ */
+?>
+
+<?php if ( bp_has_members( bp_ajax_querystring( 'friendship_requests' ) . '&include=' . bp_get_friendship_requests() ) ) : ?>
+
+	<?php bp_nouveau_pagination( 'top' ); ?>
+
+	<ul id="friend-list" class="<?php bp_nouveau_loop_classes(); ?>">
+		<?php
+		while ( bp_members() ) :
+			bp_the_member();
+		?>
+
+			<li id="friendship-<?php bp_friend_friendship_id(); ?>" <?php bp_member_class( array( 'item-entry' ) ); ?> data-bp-item-id="<?php bp_friend_friendship_id(); ?>" data-bp-item-component="members">
+				<div class="item-avatar">
+					<a href="<?php bp_member_link(); ?>"><?php bp_member_avatar( array( 'type' => 'full' ) ); ?></a>
+				</div>
+
+				<div class="item">
+					<div class="item-title"><a href="<?php bp_member_link(); ?>"><?php bp_member_name(); ?></a></div>
+					<div class="item-meta"><span class="activity"><?php bp_member_last_active(); ?></span></div>
+
+					<?php bp_nouveau_friend_hook( 'requests_item' ); ?>
+				</div>
+
+				<?php bp_nouveau_members_loop_buttons(); ?>
+			</li>
+
+		<?php endwhile; ?>
+	</ul>
+
+	<?php bp_nouveau_friend_hook( 'requests_content' ); ?>
+
+	<?php bp_nouveau_pagination( 'bottom' ); ?>
+
+<?php else : ?>
+
+	<?php bp_nouveau_user_feedback( 'member-requests-none' ); ?>
+
+<?php endif; ?>
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests.php
index df0c435ef..09eee139c 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/friends/requests.php
@@ -3,7 +3,7 @@
  * BuddyPress - Members Friends Requests
  *
  * @since 3.0.0
- * @version 3.0.0
+ * @version 5.0.0
  */
 ?>
 
@@ -11,43 +11,8 @@
 
 <?php bp_nouveau_member_hook( 'before', 'friend_requests_content' ); ?>
 
-<?php if ( bp_has_members( 'type=alphabetical&include=' . bp_get_friendship_requests() ) ) : ?>
+<div data-bp-list="friendship_requests">
+	<?php bp_get_template_part( 'members/single/friends/requests-loop' ); ?>
+</div>
 
-	<?php bp_nouveau_pagination( 'top' ); ?>
-
-	<ul id="friend-list" class="<?php bp_nouveau_loop_classes(); ?>" data-bp-list="friendship_requests">
-		<?php
-		while ( bp_members() ) :
-			bp_the_member();
-		?>
-
-			<li id="friendship-<?php bp_friend_friendship_id(); ?>" <?php bp_member_class( array( 'item-entry' ) ); ?> data-bp-item-id="<?php bp_friend_friendship_id(); ?>" data-bp-item-component="members">
-				<div class="item-avatar">
-					<a href="<?php bp_member_link(); ?>"><?php bp_member_avatar( array( 'type' => 'full' ) ); ?></a>
-				</div>
-
-				<div class="item">
-					<div class="item-title"><a href="<?php bp_member_link(); ?>"><?php bp_member_name(); ?></a></div>
-					<div class="item-meta"><span class="activity"><?php bp_member_last_active(); ?></span></div>
-
-					<?php bp_nouveau_friend_hook( 'requests_item' ); ?>
-				</div>
-
-				<?php bp_nouveau_members_loop_buttons(); ?>
-			</li>
-
-		<?php endwhile; ?>
-	</ul>
-
-	<?php bp_nouveau_friend_hook( 'requests_content' ); ?>
-
-	<?php bp_nouveau_pagination( 'bottom' ); ?>
-
-<?php else : ?>
-
-	<?php bp_nouveau_user_feedback( 'member-requests-none' ); ?>
-
-<?php endif; ?>
-
-<?php
-bp_nouveau_member_hook( 'after', 'friend_requests_content' );
+<?php bp_nouveau_member_hook( 'after', 'friend_requests_content' );
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/settings/general.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/settings/general.php
index 462191faa..460187d3c 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/settings/general.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/members/single/settings/general.php
@@ -3,43 +3,68 @@
  * BuddyPress - Members Settings ( General )
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 5.0.0
  */
 
 bp_nouveau_member_hook( 'before', 'settings_template' ); ?>
 
 <h2 class="screen-heading general-settings-screen">
-	<?php _e( 'Email & Password', 'buddypress' ); ?>
+	<?php esc_html_e( 'Email & Password', 'buddypress' ); ?>
 </h2>
 
 <p class="info email-pwd-info">
-	<?php _e( 'Update your email and or password.', 'buddypress' ); ?>
+	<?php esc_html_e( 'Update your email and or password.', 'buddypress' ); ?>
 </p>
 
-<form action="<?php echo esc_url( bp_displayed_user_domain() . bp_get_settings_slug() . '/general' ); ?>" method="post" class="standard-form" id="settings-form">
+<form action="<?php echo esc_url( bp_displayed_user_domain() . bp_get_settings_slug() . '/general' ); ?>" method="post" class="standard-form" id="your-profile">
 
 	<?php if ( ! is_super_admin() ) : ?>
 
-		<label for="pwd"><?php _e( 'Current Password <span>(required to update email or change current password)</span>', 'buddypress' ); ?></label>
-		<input type="password" name="pwd" id="pwd" size="16" value="" class="settings-input small" <?php bp_form_field_attributes( 'password' ); ?>/> &nbsp;<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php esc_html_e( 'Lost your password?', 'buddypress' ); ?></a>
+		<label for="pwd"><?php printf( esc_html__( 'Current Password %s', 'buddypress' ), '<span>' . esc_html__( '(required to update email or change current password)', 'buddypress' ) . '</span>' ); ?></label>
+		<input type="password" name="pwd" id="pwd" value="" size="24" class="settings-input small" <?php bp_form_field_attributes( 'password' ); ?>/> &nbsp;<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php esc_html_e( 'Lost your password?', 'buddypress' ); ?></a>
 
 	<?php endif; ?>
 
-	<label for="email"><?php _e( 'Account Email', 'buddypress' ); ?></label>
+	<label for="email"><?php esc_html_e( 'Account Email', 'buddypress' ); ?></label>
 	<input type="email" name="email" id="email" value="<?php echo esc_attr( bp_get_displayed_user_email() ); ?>" class="settings-input" <?php bp_form_field_attributes( 'email' ); ?>/>
 
 	<div class="info bp-feedback">
 		<span class="bp-icon" aria-hidden="true"></span>
-		<p class="text"><?php esc_html_e( 'Leave password fields blank for no change', 'buddypress' ); ?></p>
+		<p class="text"><?php esc_html_e( 'Click on the "Generate Password" button to change your password.', 'buddypress' ); ?></p>
 	</div>
 
-	<label for="pass1"><?php esc_html_e( 'Add Your New Password', 'buddypress' ); ?></label>
-	<input type="password" name="pass1" id="pass1" size="16" value="" class="settings-input small password-entry" <?php bp_form_field_attributes( 'password' ); ?>/>
+	<div class="user-pass1-wrap">
+		<button type="button" class="button wp-generate-pw">
+			<?php esc_html_e( 'Generate Password', 'buddypress' ); ?>
+		</button>
 
-	<label for="pass2" class="repeated-pwd"><?php esc_html_e( 'Repeat Your New Password', 'buddypress' ); ?></label>
-	<input type="password" name="pass2" id="pass2" size="16" value="" class="settings-input small password-entry-confirm" <?php bp_form_field_attributes( 'password' ); ?>/>
+		<div class="wp-pwd">
+			<label for="pass1"><?php esc_html_e( 'Add Your New Password', 'buddypress' ); ?></label>
+			<span class="password-input-wrapper">
+				<input type="password" name="pass1" id="pass1" size="24" class="settings-input small password-entry" value="" <?php bp_form_field_attributes( 'password', array( 'data-pw' => wp_generate_password( 24 ), 'aria-describedby' => 'pass-strength-result' ) ); ?> />
+			</span>
+			<button type="button" class="button wp-hide-pw" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password', 'buddypress' ); ?>">
+				<span class="dashicons dashicons-hidden" aria-hidden="true"></span>
+				<span class="text bp-screen-reader-text"><?php esc_html_e( 'Hide', 'buddypress' ); ?></span>
+			</button>
+			<button type="button" class="button wp-cancel-pw" data-toggle="0" aria-label="<?php esc_attr_e( 'Cancel password change', 'buddypress' ); ?>">
+				<span class="text"><?php esc_html_e( 'Cancel', 'buddypress' ); ?></span>
+			</button>
+			<div id="pass-strength-result" aria-live="polite"></div>
+		</div>
+	</div>
+
+	<div class="user-pass2-wrap">
+		<label class="label" for="pass2"><?php esc_html_e( 'Repeat Your New Password', 'buddypress' ); ?></label>
+		<input name="pass2" type="password" id="pass2" size="24" class="settings-input small password-entry-confirm" value="" <?php bp_form_field_attributes( 'password' ); ?> />
+	</div>
 
-	<div id="pass-strength-result"></div>
+	<div class="pw-weak">
+		<label>
+			<input type="checkbox" name="pw_weak" class="pw-checkbox" />
+			<span id="pw-weak-text-label"><?php esc_html_e( 'Confirm use of potentially weak password', 'buddypress' ); ?></span>
+		</label>
+	</div>
 
 	<?php bp_nouveau_submit_button( 'members-general-settings' ); ?>
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-mixins.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-mixins.scss
index 898ac7203..cb0f9910b 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-mixins.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-mixins.scss
@@ -532,6 +532,27 @@
 	color: $color;
 }
 
+@mixin pwd-strong-colors($color: inherit, $background: null, $border: null) {
+
+	@if $background {
+		$background: $background;
+	} @else {
+		$background: $background-strong;
+	}
+
+	background-color: $background;
+
+	@if $border {
+		$border: $border;
+	} @else {
+		$border: $border-strong;
+	}
+
+	border-color: $border;
+
+	color: $color;
+}
+
 // BP Tooltips
 
 // Bottom center tooltip - Default
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-variables.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-variables.scss
index 1d97187b6..3ef12b57b 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-variables.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp-variables.scss
@@ -69,8 +69,10 @@ $update-success: #8a2 !default;
 $pwd-background:    #eee !default;
 $background-short:  #ffa0a0 !default;
 $border-short:      #f04040 !default;
-$background-good:   #66d66e !default;
-$border-good:       #438c48 !default;
+$background-good:   #ffec8b !default;
+$border-good:       #fc0 !default;
+$background-strong: #66d66e !default;
+$border-strong:     #438c48 !default;
 $background-bad:    #ffb78c !default;
 $border-bad:        #ff853c !default;
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_activity_entries.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_activity_entries.scss
index b294474a1..005e6c99f 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_activity_entries.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_activity_entries.scss
@@ -1,5 +1,6 @@
 // BP Activity Entries - activity loop
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 .activity-list {
 
@@ -133,7 +134,9 @@
 			.avatar {
 				display: inline-block;
 				margin: 0 $marg-xsml;
-				vertical-align: bottom;
+				vertical-align: text-top;
+				width: 20px;
+				height: 20px;
 			}
 
 			.time-since {
@@ -215,6 +218,7 @@
 
 			.button {
 				background: transparent;
+				color: $dark-grey;
 			}
 
 			a {
@@ -326,7 +330,7 @@
 				padding: $pad-sml 0;
 
 				&:focus,
-				&:hover, {
+				&:hover {
 					background: $white;
 					color: $black;
 				}
@@ -371,6 +375,7 @@ body.activity-permalink {
 
 			img {
 				max-width: 100%;
+				background-color: $light-grey;
 			}
 		}
 
@@ -409,6 +414,11 @@ body.activity-permalink {
 				margin-right: 0;
 				position: relative;
 				top: -20px;
+
+				img {
+					-webkit-box-shadow: 0 0 0 8px #fff;
+					box-shadow: 0 0 0 8px #fff;
+				}
 			}
 
 			.activity-content {
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_buttons.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_buttons.scss
index a1ff806bb..c20dd7e35 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_buttons.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_buttons.scss
@@ -1,5 +1,6 @@
 // BP Buttons, Submits, Icons and general clicky things styling.
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 // Buttons by default are styled as simple boxes but we may
 // change that by adding a parent class ( on any close parent to
@@ -25,8 +26,10 @@
 			border-color: $bp-border-dark;
 			border-style: solid;
 			border-width: 1px;
+			border-radius: 0;
 			color: $dark-grey;
 			cursor: pointer;
+			font-family: inherit;
 			font-size: inherit;
 			font-weight: 400;
 			outline: none;
@@ -34,6 +37,12 @@
 			text-align: center;
 			text-decoration: none;
 			width: auto;
+			line-height: 1;
+		}
+
+		button.dashicons,
+		a.button.dashicons {
+			font-family: dashicons;
 		}
 
 		// Re-instate the quick-tag padding to avoid the above ruleset
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_forms.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_forms.scss
index fa0f83c98..4c48f27c2 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_forms.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_forms.scss
@@ -1,5 +1,6 @@
 // BP Forms Elements Global Styles
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 // Some essential classes used for forms elements:
 // labels - sizing especially for standalone controls
@@ -132,7 +133,7 @@
 			}
 		}
 
-		input:not(.button-small),
+		input:not(.small),
 		textarea {
 			width: 100%;
 		}
@@ -353,7 +354,7 @@ body.no-js {
 			position: relative;
 			text-indent: -2px;
 			z-index: 1;
-			width: 100%;
+			width: auto;
 		}
 
 		select,
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_generic_and_typography.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_generic_and_typography.scss
index 2154c7ae1..d4f5a1157 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_generic_and_typography.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_generic_and_typography.scss
@@ -1,5 +1,6 @@
 // BP Generic elements, Typography and Images.
-// @version 4.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 // ========= Generic Sitewide elements ========
 body {
@@ -66,10 +67,10 @@ body.buddypress {
 			max-width: none;
 		}
 
-		.entry-content {
+		.entry-content,
+		.entry .entry-content > * {
 			float: none;
 			max-width: none;
-			//padding: 0 $pad-xlrg;
 		}
 
 		// 2017 has a very large top padding we'll reduce that for bp screens
@@ -125,6 +126,11 @@ body.buddypress { // add weight
 			// some themes add padding top lets manage that generically sitewide
 			padding: 0;
 		}
+
+		// Specific to Twenty Nineteen
+		h2:before {
+			display: none;
+		}
 	}
 }
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_create.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_create.scss
index 3b930aae2..59e76b75d 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_create.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_create.scss
@@ -8,6 +8,11 @@
 		text-align: center;
 	}
 
+	img.avatar {
+		width: auto;
+		height: auto;
+	}
+
 	.avatar-nav-items {
 		margin-top: $marg-med;
 	}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_management.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_management.scss
index 1ce2caf19..ad4853fd5 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_management.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_groups_management.scss
@@ -139,3 +139,36 @@
 	}
 
 } //close .groups-manage-members-list
+
+#group-manage-members-ui {
+
+	#group-members-search-form {
+
+		button[type="submit"] {
+			float: right;
+			font-size: inherit;
+			font-weight: 400;
+			line-height: 1.5;
+			text-align: center;
+			text-transform: none;
+
+			span {
+				font-family: dashicons;
+
+				@include font-size(18);
+				line-height: 1.6;
+			}
+		}
+	}
+
+	#group-members-pagination {
+
+		button:last-child {
+			margin-right: 2em;
+		}
+	}
+
+	#bp-no-group-members td {
+		border: none;
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_info_messages.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_info_messages.scss
index af15cd533..9ac95e156 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_info_messages.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_info_messages.scss
@@ -259,17 +259,22 @@
 		&.error,
 		&.bad {
 
-			@include pwd-bad-colors($color: $white);
+			@include pwd-bad-colors($color: $black);
 		}
 
 		&.short {
 
-			@include pwd-short-colors($color: $white);
+			@include pwd-short-colors($color: $black);
+		}
+
+		&.good {
+
+			@include pwd-good-colors($color: $black);
 		}
 
 		&.strong {
 
-			@include pwd-good-colors($color: $white);
+			@include pwd-strong-colors($color: $black);
 		}
 
 	} // close #pass-strength-result
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_body_general.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_body_general.scss
index fce4ca295..5509fcb52 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_body_general.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_body_general.scss
@@ -1,5 +1,6 @@
 // BP Single Screens Item Body General Styles.
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 .buddypress-wrap {
 
@@ -15,6 +16,7 @@
 
 		.button-tabs {
 			margin: $marg-xlrg 0 $marg-med;
+			list-style: none;
 		}
 
 	}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_header_general.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_header_general.scss
index 72720fc52..3f6b3d585 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_header_general.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_item_header_general.scss
@@ -1,5 +1,6 @@
 // BP Single Screens Item Header General Styles.
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 @include clearfix-element(".single-headers");
 
@@ -16,6 +17,8 @@
 
 			img {
 				float: none;
+				width: auto;
+				height: auto;
 			}
 		}
 	}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_lists.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_lists.scss
index 019c63636..fe8cefc6c 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_lists.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_lists.scss
@@ -1,5 +1,6 @@
 // BP Lists Global Styles.
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 // @todo decide whether using .buddypress quasi namespace parent
 // is useful, causing issue with specificity on other
@@ -42,7 +43,9 @@
 			text-align: center;
 
 			img.avatar {
-				display: inline;
+				display: inline-block;
+				width: auto;
+				height: auto;
 			}
 		}
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_registration.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_registration.scss
index 7ba78f393..1ec68c4ac 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_registration.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_registration.scss
@@ -51,6 +51,48 @@
 			margin: 0 $marg-med $marg-sml 0;
 		}
 
+		.wp-pwd button {
+			vertical-align: middle;
+		}
+
+		#pass1,
+		#pass1-text,
+		#pass-strength-result {
+			width: 10em;
+		}
+
+		#pass1 {
+			display: inline-block;
+			margin-bottom: inherit;
+		}
+
+		#pass1-text,
+		.pw-weak {
+			display: none;
+		}
+
+		.show-password {
+
+			#pass1-text {
+				display: inline-block;
+				margin-bottom: inherit;
+			}
+
+			#pass1 {
+				display: none;
+			}
+		}
+
+		.description.indicator-hint {
+
+			@include font-size(14);
+		}
+
+		#submit:disabled {
+			color: $light-text;
+			opacity: 0.4;
+		}
+
 		.password-entry,
 		.password-entry-confirm {
 			border: 1px solid $bp-border-color;
@@ -59,6 +101,20 @@
 
 } // close .register-page
 
+body.buddypress.register.js {
+
+	.user-pass2-wrap {
+		display: none;
+	}
+}
+
+body.buddypress.register.no-js {
+
+	.wp-hide-pw {
+		display: none;
+	}
+}
+
 // Flex layout containers for registration sections
 
 @include medium-up() {
@@ -101,6 +157,7 @@
 		.register-page {
 
 			.default-profile {
+				min-width: 14em;
 				flex: 1;
 				padding-right: $pad-med;
 			}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_search.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_search.scss
index 706acbe58..ae4fa53ce 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_search.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_search.scss
@@ -1,5 +1,6 @@
 // BP Directory Search elements
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 .buddypress-wrap { // the ID is required to add weight to rules
 
@@ -7,15 +8,12 @@
 
 	form.bp-dir-search-form,
 	form.bp-messages-search-form,
-	form.bp-invites-search-form {
+	form[data-bp-search].bp-invites-search-form,
+	form#group-members-search {
 		border: 1px solid $bp-border-color;
 
 		width: 100%;
 
-		@include medium-lrg-up() {
-			width: 15em;
-		}
-
 		label {
 			margin: 0;
 		}
@@ -71,6 +69,14 @@
 
 	} // close form
 
+	form#group-members-search {
+
+		&:hover {
+			border: 1px solid darken($bp-border-color, 10%);
+			box-shadow: inset 0 0 3px #eee;
+		}
+	}
+
 	// this block needs to be moved really.
 	ul.filters {
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_update_form.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_update_form.scss
index c0b058517..5ea7c8c19 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_update_form.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_update_form.scss
@@ -1,5 +1,6 @@
 // BP Whats new form handles user updates to groups or profiles
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 
 .activity-update-form {
 	padding: 10px 10px 0;
@@ -30,6 +31,8 @@
 		img {
 			box-shadow: none;
 			display: inline-block;
+			height: auto;
+			width: auto;
 		}
 	}
 
@@ -70,13 +73,20 @@
 		#whats-new-post-in-box-items {
 			list-style: none;
 			margin: $marg-sml 0;
+			padding-left: 0;
 
 			li {
 				margin-bottom: $marg-sml;
 			}
 
+			button.bp-remove-item {
+				margin-left: $marg-sml;
+				height: auto;
+			}
+
 			#activity-autocomplete {
 				padding: 0.3em;
+				width: 100%;
 			}
 
 			.bp-activity-object {
@@ -86,6 +96,7 @@
 
 				.avatar {
 					width: 30px;
+					height: 30px;
 				}
 
 				span {
@@ -133,8 +144,7 @@
 		#whats-new-content,
 		#whats-new-post-in-box,
 		#whats-new-submit {
-			margin-left: 8.5%;
-
+			margin-left: 55px;
 		}
 
 		#whats-new-submit {
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_profile.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_profile.scss
index b6337cd09..3f214de48 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_profile.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_profile.scss
@@ -33,17 +33,17 @@
 	.profile.edit {
 
 		// The groups tabs
-		.button-nav {
+		ul.button-nav {
 			list-style: none;
 			margin: $marg-xlrg 0 $marg-sml;
+			padding-left: 0;
 
 			li {
 				display: inline-block;
 				margin-right: $marg-sml;
 
 				a {
-
-					@include font-size(18);
+					padding: $pad-sml;
 				}
 			}
 		}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_settings.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_settings.scss
index ef49f7be4..3d97d81dc 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_settings.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/common-styles/_bp_user_settings.scss
@@ -1,5 +1,6 @@
 // BP User settings screens
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0 Add data export settings screen rules.
 
 // 1. Settings Global
 // 1. General (email/password change)
@@ -27,7 +28,66 @@
 // General
 
 /*__ General __*/
+body.buddypress.settings {
 
+	.wp-pwd button {
+		vertical-align: middle;
+	}
+
+	#pass1,
+	#pass1-text,
+	#pass-strength-result {
+		width: 16em;
+	}
+
+	#pass1 {
+		display: inline-block;
+		margin-bottom: inherit;
+	}
+
+	#pass1-text,
+	.pw-weak,
+	#pass-strength-result {
+		display: none;
+	}
+
+	.show-password {
+
+		#pass1-text {
+			display: inline-block;
+			margin-bottom: inherit;
+		}
+
+		#pass1 {
+			display: none;
+		}
+	}
+
+	#your-profile {
+
+		#submit:disabled {
+			color: $light-text;
+			opacity: 0.4;
+		}
+	}
+}
+
+body.buddypress.settings.js {
+
+	.wp-pwd,
+	.user-pass2-wrap {
+		display: none;
+	}
+}
+
+body.buddypress.settings.no-js {
+
+	.wp-generate-pw,
+	.wp-cancel-pw,
+	.wp-hide-pw {
+		display: none;
+	}
+}
 
 // Email notifications
 
@@ -41,3 +101,22 @@
 // Group Invites
 
 /*__ Group Invites __*/
+
+// Data Export
+
+/*__ Data Export __*/
+body.buddypress.settings.data {
+
+	#buddypress.buddypress-wrap {
+
+		.item-body {
+
+			p {
+
+				a {
+					text-decoration: underline;
+				}
+			}
+		}
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.css b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.css
index 91648d83d..a9ad15225 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.css
@@ -91,7 +91,8 @@ body #buddypress .bp-list .action {
 		float: none;
 		max-width: none;
 	}
-	body.buddypress .entry-content {
+	body.buddypress .entry-content,
+	body.buddypress .entry .entry-content > * {
 		float: none;
 		max-width: none;
 	}
@@ -119,6 +120,10 @@ body.buddypress .buddypress-wrap h6 {
 	padding: 0;
 }
 
+body.buddypress .buddypress-wrap h2:before {
+	display: none;
+}
+
 /* Ensure .bp-wrap encloses it's children */
 .bp-wrap:before,
 .bp-wrap:after {
@@ -897,7 +902,9 @@ body.buddypress article.page > .entry-header .entry-title {
 }
 
 .bp-list li .item-avatar img.avatar {
-	display: inline;
+	display: inline-block;
+	width: auto;
+	height: auto;
 }
 
 .bp-list li .item .item-avatar,
@@ -1107,6 +1114,8 @@ body.buddypress article.page > .entry-header .entry-title {
 .activity-update-form #whats-new-avatar img {
 	box-shadow: none;
 	display: inline-block;
+	height: auto;
+	width: auto;
 }
 
 .activity-update-form #whats-new-content {
@@ -1136,14 +1145,21 @@ body.buddypress article.page > .entry-header .entry-title {
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items {
 	list-style: none;
 	margin: 10px 0;
+	padding-right: 0;
 }
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items li {
 	margin-bottom: 10px;
 }
 
+.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items button.bp-remove-item {
+	margin-right: 10px;
+	height: auto;
+}
+
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items #activity-autocomplete {
 	padding: 0.3em;
+	width: 100%;
 }
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object {
@@ -1154,6 +1170,7 @@ body.buddypress article.page > .entry-header .entry-title {
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object .avatar {
 	width: 30px;
+	height: 30px;
 }
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object span {
@@ -1193,7 +1210,7 @@ body.buddypress article.page > .entry-header .entry-title {
 	.activity-update-form #whats-new-content,
 	.activity-update-form #whats-new-post-in-box,
 	.activity-update-form #whats-new-submit {
-		margin-right: 8.5%;
+		margin-right: 55px;
 	}
 	.activity-update-form #whats-new-submit input {
 		margin-bottom: 0;
@@ -1325,7 +1342,9 @@ body.buddypress article.page > .entry-header .entry-title {
 .activity-list .activity-item .activity-header .avatar {
 	display: inline-block;
 	margin: 0 5px;
-	vertical-align: bottom;
+	vertical-align: text-top;
+	width: 20px;
+	height: 20px;
 }
 
 .activity-list .activity-item .activity-header .time-since {
@@ -1391,6 +1410,7 @@ body.buddypress article.page > .entry-header .entry-title {
 
 .activity-list .activity-item .activity-meta.action .button {
 	background: transparent;
+	color: #555;
 }
 
 .activity-list .activity-item .activity-meta.action a {
@@ -1517,6 +1537,7 @@ body.activity-permalink .activity-list .activity-avatar a {
 
 body.activity-permalink .activity-list .activity-avatar img {
 	max-width: 100%;
+	background-color: #eaeaea;
 }
 
 body.activity-permalink .activity-list .activity-content {
@@ -1554,6 +1575,9 @@ body.activity-permalink .activity-list .activity-comments {
 		position: relative;
 		top: -20px;
 	}
+	body.activity-permalink .activity-list .activity-avatar img {
+		box-shadow: 0 0 0 8px #fff;
+	}
 	body.activity-permalink .activity-list .activity-content {
 		margin-left: 10px;
 	}
@@ -1946,11 +1970,57 @@ form.ac-form .ac-reply-content input {
 	margin: 0 0 10px 15px;
 }
 
+.register-page .signup-form .wp-pwd button {
+	vertical-align: middle;
+}
+
+.register-page .signup-form #pass1,
+.register-page .signup-form #pass1-text,
+.register-page .signup-form #pass-strength-result {
+	width: 10em;
+}
+
+.register-page .signup-form #pass1 {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+.register-page .signup-form #pass1-text,
+.register-page .signup-form .pw-weak {
+	display: none;
+}
+
+.register-page .signup-form .show-password #pass1-text {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+.register-page .signup-form .show-password #pass1 {
+	display: none;
+}
+
+.register-page .signup-form .description.indicator-hint {
+	font-size: 14px;
+}
+
+.register-page .signup-form #submit:disabled {
+	color: #767676;
+	opacity: 0.4;
+}
+
 .register-page .signup-form .password-entry,
 .register-page .signup-form .password-entry-confirm {
 	border: 1px solid #eee;
 }
 
+body.buddypress.register.js .user-pass2-wrap {
+	display: none;
+}
+
+body.buddypress.register.no-js .wp-hide-pw {
+	display: none;
+}
+
 @media screen and (min-width: 46.8em) {
 	.buddypress-wrap .register-page .layout-wrap {
 		display: flex;
@@ -1972,6 +2042,7 @@ form.ac-form .ac-reply-content input {
 
 @media screen and (min-width: 46.8em) {
 	.buddypress-wrap.extended-default-reg .register-page .default-profile {
+		min-width: 14em;
 		flex: 1;
 		padding-left: 1em;
 	}
@@ -1997,6 +2068,11 @@ form.ac-form .ac-reply-content input {
 	text-align: center;
 }
 
+#group-create-body img.avatar {
+	width: auto;
+	height: auto;
+}
+
 #group-create-body .avatar-nav-items {
 	margin-top: 15px;
 }
@@ -2032,6 +2108,8 @@ form.ac-form .ac-reply-content input {
 
 .single-headers #item-header-avatar a img {
 	float: none;
+	width: auto;
+	height: auto;
 }
 
 .single-headers div#item-header-content {
@@ -2333,6 +2411,7 @@ body.no-js .single-item-header .js-self-profile-button {
 
 .buddypress-wrap .item-body .button-tabs {
 	margin: 30px 0 15px;
+	list-style: none;
 }
 
 .buddypress-wrap.bp-single-vert-nav .bp-list:not(.grid) .item-entry {
@@ -2480,6 +2559,29 @@ body.no-js .single-item-header .js-self-profile-button {
 	}
 }
 
+#group-manage-members-ui #group-members-search-form button[type="submit"] {
+	float: left;
+	font-size: inherit;
+	font-weight: 400;
+	line-height: 1.5;
+	text-align: center;
+	text-transform: none;
+}
+
+#group-manage-members-ui #group-members-search-form button[type="submit"] span {
+	font-family: dashicons;
+	font-size: 18px;
+	line-height: 1.6;
+}
+
+#group-manage-members-ui #group-members-pagination button:last-child {
+	margin-left: 2em;
+}
+
+#group-manage-members-ui #bp-no-group-members td {
+	border: none;
+}
+
 /**
 *-----------------------------------------
 * @subsection 5.2.1.2 - Group Members List
@@ -2538,7 +2640,6 @@ body.no-js .single-item-header .js-self-profile-button {
 .buddypress .bp-invites-content li ul.group-inviters {
 	clear: both;
 	margin: 0;
-	overflow: hidden;
 }
 
 .buddypress .bp-invites-content li ul.group-inviters li {
@@ -2676,18 +2777,19 @@ body.no-js .single-item-header .js-self-profile-button {
 	width: 30%;
 }
 
-.buddypress-wrap .profile.edit .button-nav {
+.buddypress-wrap .profile.edit ul.button-nav {
 	list-style: none;
 	margin: 30px 0 10px;
+	padding-right: 0;
 }
 
-.buddypress-wrap .profile.edit .button-nav li {
+.buddypress-wrap .profile.edit ul.button-nav li {
 	display: inline-block;
 	margin-left: 10px;
 }
 
-.buddypress-wrap .profile.edit .button-nav li a {
-	font-size: 18px;
+.buddypress-wrap .profile.edit ul.button-nav li a {
+	padding: 0.5em;
 }
 
 .buddypress-wrap .profile.edit .editfield {
@@ -3016,6 +3118,7 @@ body.register .buddypress-wrap .page ul {
 .bp-messages-content .actions {
 	float: left;
 	max-width: 30%;
+	line-height: 1;
 }
 
 .bp-messages-content .actions .bp-icons:not(.bp-hide) {
@@ -3169,6 +3272,7 @@ body.register .buddypress-wrap .page ul {
 
 .bp-messages-content .thread-participants img {
 	width: 30px;
+	height: 30px;
 }
 
 .bp-messages-content #thread-preview .preview-message ul,
@@ -3221,9 +3325,60 @@ div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions {
 }
 
 /*__ General __*/
+body.buddypress.settings .wp-pwd button {
+	vertical-align: middle;
+}
+
+body.buddypress.settings #pass1,
+body.buddypress.settings #pass1-text,
+body.buddypress.settings #pass-strength-result {
+	width: 16em;
+}
+
+body.buddypress.settings #pass1 {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+body.buddypress.settings #pass1-text,
+body.buddypress.settings .pw-weak,
+body.buddypress.settings #pass-strength-result {
+	display: none;
+}
+
+body.buddypress.settings .show-password #pass1-text {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+body.buddypress.settings .show-password #pass1 {
+	display: none;
+}
+
+body.buddypress.settings #your-profile #submit:disabled {
+	color: #767676;
+	opacity: 0.4;
+}
+
+body.buddypress.settings.js .wp-pwd,
+body.buddypress.settings.js .user-pass2-wrap {
+	display: none;
+}
+
+body.buddypress.settings.no-js .wp-generate-pw,
+body.buddypress.settings.no-js .wp-cancel-pw,
+body.buddypress.settings.no-js .wp-hide-pw {
+	display: none;
+}
+
 /*__ Email notifications __*/
 /*__ Profile visibility __*/
 /*__ Group Invites __*/
+/*__ Data Export __*/
+body.buddypress.settings.data #buddypress.buddypress-wrap .item-body p a {
+	text-decoration: underline;
+}
+
 /**
 *-------------------------------------------------------------------------------
 * @section 6.0 - Forms  - General
@@ -3331,7 +3486,7 @@ div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions {
 	border-color: #b71717;
 }
 
-.buddypress-wrap .standard-form input:not(.button-small),
+.buddypress-wrap .standard-form input:not(.small),
 .buddypress-wrap .standard-form textarea {
 	width: 100%;
 }
@@ -3504,7 +3659,7 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 	position: relative;
 	text-indent: -2px;
 	z-index: 1;
-	width: 100%;
+	width: auto;
 }
 
 .buddypress-wrap .select-wrap select,
@@ -3560,22 +3715,16 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form,
 .buddypress-wrap form.bp-messages-search-form,
-.buddypress-wrap form.bp-invites-search-form {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form,
+.buddypress-wrap form#group-members-search {
 	border: 1px solid #eee;
 	width: 100%;
 }
 
-@media screen and (min-width: 55em) {
-	.buddypress-wrap form.bp-dir-search-form,
-	.buddypress-wrap form.bp-messages-search-form,
-	.buddypress-wrap form.bp-invites-search-form {
-		width: 15em;
-	}
-}
-
 .buddypress-wrap form.bp-dir-search-form label,
 .buddypress-wrap form.bp-messages-search-form label,
-.buddypress-wrap form.bp-invites-search-form label {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form label,
+.buddypress-wrap form#group-members-search label {
 	margin: 0;
 }
 
@@ -3585,9 +3734,12 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap form.bp-messages-search-form input[type="search"],
 .buddypress-wrap form.bp-messages-search-form input[type="text"],
 .buddypress-wrap form.bp-messages-search-form button[type="submit"],
-.buddypress-wrap form.bp-invites-search-form input[type="search"],
-.buddypress-wrap form.bp-invites-search-form input[type="text"],
-.buddypress-wrap form.bp-invites-search-form button[type="submit"] {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"],
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="text"],
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"],
+.buddypress-wrap form#group-members-search input[type="search"],
+.buddypress-wrap form#group-members-search input[type="text"],
+.buddypress-wrap form#group-members-search button[type="submit"] {
 	background: none;
 	border: 0;
 	border-radius: 0;
@@ -3598,8 +3750,10 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap form.bp-dir-search-form input[type="text"],
 .buddypress-wrap form.bp-messages-search-form input[type="search"],
 .buddypress-wrap form.bp-messages-search-form input[type="text"],
-.buddypress-wrap form.bp-invites-search-form input[type="search"],
-.buddypress-wrap form.bp-invites-search-form input[type="text"] {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"],
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="text"],
+.buddypress-wrap form#group-members-search input[type="search"],
+.buddypress-wrap form#group-members-search input[type="text"] {
 	float: right;
 	line-height: 1.5;
 	padding: 3px 10px;
@@ -3608,7 +3762,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form button[type="submit"],
 .buddypress-wrap form.bp-messages-search-form button[type="submit"],
-.buddypress-wrap form.bp-invites-search-form button[type="submit"] {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"],
+.buddypress-wrap form#group-members-search button[type="submit"] {
 	float: left;
 	font-size: inherit;
 	font-weight: 400;
@@ -3621,7 +3776,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form button[type="submit"] span,
 .buddypress-wrap form.bp-messages-search-form button[type="submit"] span,
-.buddypress-wrap form.bp-invites-search-form button[type="submit"] span {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"] span,
+.buddypress-wrap form#group-members-search button[type="submit"] span {
 	font-family: dashicons;
 	font-size: 18px;
 	line-height: 1.6;
@@ -3629,7 +3785,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form button[type="submit"].bp-show,
 .buddypress-wrap form.bp-messages-search-form button[type="submit"].bp-show,
-.buddypress-wrap form.bp-invites-search-form button[type="submit"].bp-show {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"].bp-show,
+.buddypress-wrap form#group-members-search button[type="submit"].bp-show {
 	height: auto;
 	right: 0;
 	overflow: visible;
@@ -3639,7 +3796,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form input[type="search"]::-webkit-search-cancel-button,
 .buddypress-wrap form.bp-messages-search-form input[type="search"]::-webkit-search-cancel-button,
-.buddypress-wrap form.bp-invites-search-form input[type="search"]::-webkit-search-cancel-button {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"]::-webkit-search-cancel-button,
+.buddypress-wrap form#group-members-search input[type="search"]::-webkit-search-cancel-button {
 	-webkit-appearance: searchfield-cancel-button;
 }
 
@@ -3647,11 +3805,18 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap form.bp-dir-search-form input[type="search"]::-webkit-search-results-decoration,
 .buddypress-wrap form.bp-messages-search-form input[type="search"]::-webkit-search-results-button,
 .buddypress-wrap form.bp-messages-search-form input[type="search"]::-webkit-search-results-decoration,
-.buddypress-wrap form.bp-invites-search-form input[type="search"]::-webkit-search-results-button,
-.buddypress-wrap form.bp-invites-search-form input[type="search"]::-webkit-search-results-decoration {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"]::-webkit-search-results-button,
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"]::-webkit-search-results-decoration,
+.buddypress-wrap form#group-members-search input[type="search"]::-webkit-search-results-button,
+.buddypress-wrap form#group-members-search input[type="search"]::-webkit-search-results-decoration {
 	display: none;
 }
 
+.buddypress-wrap form#group-members-search:hover {
+	border: 1px solid #d5d4d4;
+	box-shadow: inset 0 0 3px #eee;
+}
+
 .buddypress-wrap ul.filters li form label input {
 	line-height: 1.4;
 	padding: 0.1em 0.7em;
@@ -3883,8 +4048,10 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 	border-color: #ccc;
 	border-style: solid;
 	border-width: 1px;
+	border-radius: 0;
 	color: #555;
 	cursor: pointer;
+	font-family: inherit;
 	font-size: inherit;
 	font-weight: 400;
 	outline: none;
@@ -3892,6 +4059,12 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 	text-align: center;
 	text-decoration: none;
 	width: auto;
+	line-height: 1;
+}
+
+.buddypress .buddypress-wrap button.dashicons,
+.buddypress .buddypress-wrap a.button.dashicons {
+	font-family: dashicons;
 }
 
 .buddypress .buddypress-wrap .button-small[type="button"] {
@@ -4350,19 +4523,25 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap #pass-strength-result.error, .buddypress-wrap #pass-strength-result.bad {
 	background-color: #ffb78c;
 	border-color: #ff853c;
-	color: #fff;
+	color: #333;
 }
 
 .buddypress-wrap #pass-strength-result.short {
 	background-color: #ffa0a0;
 	border-color: #f04040;
-	color: #fff;
+	color: #333;
+}
+
+.buddypress-wrap #pass-strength-result.good {
+	background-color: #ffec8b;
+	border-color: #fc0;
+	color: #333;
 }
 
 .buddypress-wrap #pass-strength-result.strong {
 	background-color: #66d66e;
 	border-color: #438c48;
-	color: #fff;
+	color: #333;
 }
 
 .buddypress-wrap .standard-form#signup_form div div.error {
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.min.css b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.min.css
index fc0424695..089d63c35 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.min.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress-rtl.min.css
@@ -1 +1 @@
-body #buddypress * a{box-shadow:none;text-decoration:none}body #buddypress div,body #buddypress dl,body #buddypress input[type=reset],body #buddypress input[type=search],body #buddypress input[type=submit],body #buddypress li,body #buddypress select,body #buddypress textarea{border-radius:2px;background-clip:padding-box}body #buddypress #item-body blockquote,body #buddypress .bp-lists blockquote{margin-right:0}body #buddypress .bp-list .action{box-sizing:border-box}@media screen and (min-width:46.8em){body.buddypress .entry-content,body.buddypress .entry-header,body.buddypress .site-content .entry-header{max-width:none}body.buddypress .entry-header{float:none;max-width:none}body.buddypress .entry-content{float:none;max-width:none}body.buddypress .site-content{padding-top:2.5em}body.buddypress #page #primary{max-width:none}body.buddypress #page #primary .entry-content,body.buddypress #page #primary .entry-header{float:none;width:auto}}body.buddypress .buddypress-wrap h1,body.buddypress .buddypress-wrap h2,body.buddypress .buddypress-wrap h3,body.buddypress .buddypress-wrap h4,body.buddypress .buddypress-wrap h5,body.buddypress .buddypress-wrap h6{clear:none;margin:1em 0;padding:0}.bp-wrap:after,.bp-wrap:before{content:" ";display:table}.bp-wrap:after{clear:both}.buddypress-wrap.round-avatars .avatar{border-radius:50%}body.buddypress article.page>.entry-header{margin-bottom:2em;padding:0}body.buddypress article.page>.entry-header .entry-title{font-size:28px;font-weight:inherit;color:#767676}@media screen and (min-width:46.8em){body.buddypress article.page>.entry-header .entry-title{font-size:34px}}.buddypress-wrap dt.section-title{font-size:18px}@media screen and (min-width:46.8em){.buddypress-wrap dt.section-title{font-size:22px}}.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:16px}}.buddypress-wrap .activity-header{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-header{font-size:16px}}.buddypress-wrap .activity-inner{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-inner{font-size:18px}}.buddypress-wrap #whats-new-post-in{font-size:16px}.buddypress-wrap .acomment-meta,.buddypress-wrap .mini .activity-header{font-size:16px}.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:16px}}.buddypress-wrap .bp-tables-user th{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user th{font-size:16px}}.buddypress-wrap .bp-tables-user td{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user td{font-size:14px}}.buddypress-wrap .profile-fields th{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields th{font-size:18px}}.buddypress-wrap .profile-fields td{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields td{font-size:16px}}.buddypress-wrap #notification-select{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap #notification-select{font-size:14px}}.bp-navs{background:0 0;clear:both;overflow:hidden}.bp-navs ul{margin:0;padding:0}.bp-navs ul li{list-style:none;margin:0}.bp-navs ul li.last select{max-width:185px}.bp-navs ul li a,.bp-navs ul li span{border:0;display:block;padding:5px 10px;text-decoration:none}.bp-navs ul li .count{background:#eaeaea;border:1px solid #ccc;border-radius:50%;color:#555;display:inline;font-size:12px;margin-right:2px;padding:3px 6px;text-align:center;vertical-align:middle}.bp-navs ul li.current a,.bp-navs ul li.selected a{color:#333;opacity:1}.bp-navs.bp-invites-filters ul li a,.bp-navs.bp-messages-filters ul li a{border:1px solid #ccc;display:inline-block}.main-navs.dir-navs{margin-bottom:20px}.buddypress-wrap .bp-navs li a:hover a .count,.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count{background-color:#ccc}.buddypress-wrap .bp-navs li:not(.current) a:focus,.buddypress-wrap .bp-navs li:not(.current) a:hover,.buddypress-wrap .bp-navs li:not(.selected) a:focus,.buddypress-wrap .bp-navs li:not(.selected) a:hover{background:#ccc;color:#333}.buddypress-wrap .bp-navs li.current a,.buddypress-wrap .bp-navs li.current a:focus,.buddypress-wrap .bp-navs li.current a:hover,.buddypress-wrap .bp-navs li.selected a,.buddypress-wrap .bp-navs li.selected a:focus,.buddypress-wrap .bp-navs li.selected a:hover{background:#555;color:#fafafa}@media screen and (min-width:46.8em){.buddypress-wrap .main-navs:not(.dir-navs) li.current a,.buddypress-wrap .main-navs:not(.dir-navs) li.selected a{background:#fff;color:#333;font-weight:600}.buddypress-wrap .main-navs.vertical li.current a,.buddypress-wrap .main-navs.vertical li.selected a{background:#555;color:#fafafa;text-decoration:none}.buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links){border-bottom:1px solid #eee;border-top:1px solid #eee;box-shadow:0 2px 12px 0 #fafafa}}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.selected a{background:#fff;color:#333;font-weight:600}@media screen and (max-width:46.8em){.buddypress-wrap:not(.bp-single-vert-nav) .bp-navs li{background:#eaeaea}}.buddypress-wrap:not(.bp-single-vert-nav) .main-navs>ul>li>a{padding:.5em calc(.5em + 2px)}.buddypress-wrap:not(.bp-single-vert-nav) .group-subnav#subsubnav,.buddypress-wrap:not(.bp-single-vert-nav) .user-subnav#subsubnav{background:0 0}.buddypress-wrap .bp-subnavs,.buddypress-wrap ul.subnav{width:100%}.buddypress-wrap .bp-subnavs{margin:10px 0;overflow:hidden}.buddypress-wrap .bp-subnavs ul li{margin-top:0}.buddypress-wrap .bp-subnavs ul li.current :focus,.buddypress-wrap .bp-subnavs ul li.current :hover,.buddypress-wrap .bp-subnavs ul li.selected :focus,.buddypress-wrap .bp-subnavs ul li.selected :hover{background:0 0;color:#333}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap .bp-navs.bp-invites-filters#subsubnav ul li.last,.buddypress-wrap .bp-navs.bp-invites-nav#subnav ul li.last,.buddypress-wrap .bp-navs.bp-messages-filters#subsubnav ul li.last{margin-top:0}@media screen and (max-width:46.8em){.buddypress-wrap .single-screen-navs{border:1px solid #eee}.buddypress-wrap .single-screen-navs li{border-bottom:1px solid #eee}.buddypress-wrap .single-screen-navs li:last-child{border-bottom:none}.buddypress-wrap .bp-subnavs li a{font-size:14px}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.current a:focus,.buddypress-wrap .bp-subnavs li.current a:hover,.buddypress-wrap .bp-subnavs li.selected a,.buddypress-wrap .bp-subnavs li.selected a:focus,.buddypress-wrap .bp-subnavs li.selected a:hover{background:#555;color:#fff}}.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count,.buddypress_object_nav .bp-navs li.current a .count,.buddypress_object_nav .bp-navs li.selected a .count{background-color:#fff}.buddypress-wrap .bp-navs li.dynamic a .count,.buddypress-wrap .bp-navs li.dynamic.current a .count,.buddypress-wrap .bp-navs li.dynamic.selected a .count,.buddypress_object_nav .bp-navs li.dynamic a .count,.buddypress_object_nav .bp-navs li.dynamic.current a .count,.buddypress_object_nav .bp-navs li.dynamic.selected a .count{background-color:#5087e5;border:0;color:#fafafa}.buddypress-wrap .bp-navs li.dynamic a:hover .count,.buddypress_object_nav .bp-navs li.dynamic a:hover .count{background-color:#5087e5;border:0;color:#fff}.buddypress-wrap .bp-navs li a .count:empty,.buddypress_object_nav .bp-navs li a .count:empty{display:none}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current),.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current){color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:hover{background:0 0;color:#333}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li.current a,.buddypress_object_nav .bp-navs.group-create-links ul li.current a{text-align:center}@media screen and (min-width:46.8em){.buddypress-wrap .bp-navs li{float:right}.buddypress-wrap .subnav{float:right}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap #subsubnav .activity-search{float:right}.buddypress-wrap #subsubnav .filter{float:left}}.buddypress_object_nav .bp-navs li a .count{display:inline-block;float:left}@media screen and (min-width:46.8em){.bp-dir-vert-nav .bp-navs.dir-navs{background:0 0}.bp-dir-vert-nav .bp-navs.dir-navs a .count{float:left}}@media screen and (min-width:46.8em){.buddypress-wrap .tabbed-links ol,.buddypress-wrap .tabbed-links ul{border-bottom:1px solid #ccc;float:none;margin:20px 0 10px}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ol:before,.buddypress-wrap .tabbed-links ul:after,.buddypress-wrap .tabbed-links ul:before{content:" ";display:block}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ul:after{clear:both}.buddypress-wrap .tabbed-links ol li,.buddypress-wrap .tabbed-links ul li{float:right;list-style:none;margin:0 0 0 10px}.buddypress-wrap .tabbed-links ol li a,.buddypress-wrap .tabbed-links ol li span:not(.count),.buddypress-wrap .tabbed-links ul li a,.buddypress-wrap .tabbed-links ul li span:not(.count){background:0 0;border:none;display:block;padding:4px 10px}.buddypress-wrap .tabbed-links ol li a:focus,.buddypress-wrap .tabbed-links ol li a:hover,.buddypress-wrap .tabbed-links ul li a:focus,.buddypress-wrap .tabbed-links ul li a:hover{background:0 0}.buddypress-wrap .tabbed-links ol li:not(.current),.buddypress-wrap .tabbed-links ul li:not(.current){margin-bottom:2px}.buddypress-wrap .tabbed-links ol li.current,.buddypress-wrap .tabbed-links ul li.current{border-color:#ccc #ccc #fff;border-style:solid;border-top-right-radius:4px;border-top-left-radius:4px;border-width:1px;margin-bottom:-1px;padding:0 .5em 1px}.buddypress-wrap .tabbed-links ol li.current a,.buddypress-wrap .tabbed-links ul li.current a{background:0 0;color:#333}.buddypress-wrap .bp-subnavs.tabbed-links>ul{margin-top:0}.buddypress-wrap .bp-navs.tabbed-links{background:0 0;margin-top:2px}.buddypress-wrap .bp-navs.tabbed-links ul li a{border-left:0;font-size:inherit}.buddypress-wrap .bp-navs.tabbed-links ul li.last{float:left;margin:0}.buddypress-wrap .bp-navs.tabbed-links ul li.last a{margin-top:-.5em}.buddypress-wrap .bp-navs.tabbed-links ul li a,.buddypress-wrap .bp-navs.tabbed-links ul li a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li a:hover,.buddypress-wrap .bp-navs.tabbed-links ul li.current a,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:hover{background:0 0;border:0}.buddypress-wrap .bp-navs.tabbed-links ul li a:active,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:active{outline:0}}.buddypress-wrap .dir-component-filters .filter label{display:inline}.buddypress-wrap .subnav-filters:after,.buddypress-wrap .subnav-filters:before{content:" ";display:table}.buddypress-wrap .subnav-filters:after{clear:both}.buddypress-wrap .subnav-filters{background:0 0;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .subnav-filters div{margin:0}.buddypress-wrap .subnav-filters>ul{float:right;list-style:none}.buddypress-wrap .subnav-filters.bp-messages-filters ul{width:100%}.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:1em}@media screen and (min-width:46.8em){.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:0}}.buddypress-wrap .subnav-filters div{float:none}.buddypress-wrap .subnav-filters div input[type=search],.buddypress-wrap .subnav-filters div select{font-size:16px}.buddypress-wrap .subnav-filters div button.nouveau-search-submit{padding:5px .8em 6px}.buddypress-wrap .subnav-filters div button#user_messages_search_submit{padding:7px .8em}.buddypress-wrap .subnav-filters .component-filters{margin-top:10px}.buddypress-wrap .subnav-filters .feed{margin-left:15px}.buddypress-wrap .subnav-filters .last.filter label{display:inline}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:before{content:" ";display:table}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after{clear:both}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-show{display:inline-block}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-hide{display:none}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap{border:0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:focus,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:hover{outline:1px solid #d6d6d6}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions{float:right}.buddypress-wrap .subnav-filters .user-messages-bulk-actions label{display:inline-block;font-weight:300;margin-left:25px;padding:5px 0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions div select{-webkit-appearance:textfield}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply{border:0;border-radius:none;font-weight:400;line-height:1.8;margin:0 10px 0 0;padding:3px 5px;text-align:center;text-transform:none;width:auto}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply span{vertical-align:middle}@media screen and (min-width:32em){.buddypress-wrap .subnav-filters li{margin-bottom:0}.buddypress-wrap .subnav-filters .bp-search,.buddypress-wrap .subnav-filters .dir-search,.buddypress-wrap .subnav-filters .feed,.buddypress-wrap .subnav-filters .group-act-search,.buddypress-wrap .subnav-filters .group-invites-search,.buddypress-wrap .subnav-filters .subnav-search,.buddypress-wrap .subnav-filters .subnav-search form,.buddypress-wrap .subnav-filters .user-messages-bulk-actions,.buddypress-wrap .subnav-filters .user-messages-search{float:right}.buddypress-wrap .subnav-filters .component-filters,.buddypress-wrap .subnav-filters .last{float:left;margin-top:0;width:auto}.buddypress-wrap .subnav-filters .component-filters select,.buddypress-wrap .subnav-filters .last select{max-width:250px}.buddypress-wrap .subnav-filters .user-messages-search{float:left}}.buddypress-wrap .notifications-options-nav input#notification-bulk-manage{border:0;border-radius:0;line-height:1.6}.buddypress-wrap .group-subnav-filters .group-invites-search{margin-bottom:1em}.buddypress-wrap .group-subnav-filters .last{text-align:center}.buddypress-wrap .bp-pagination{background:0 0;border:0;color:#767676;float:right;font-size:small;margin:0;padding:.5em 0;position:relative;width:100%}.buddypress-wrap .bp-pagination .pag-count{float:right}.buddypress-wrap .bp-pagination .bp-pagination-links{float:left;margin-left:10px}.buddypress-wrap .bp-pagination .bp-pagination-links a,.buddypress-wrap .bp-pagination .bp-pagination-links span{font-size:small;padding:0 5px}.buddypress-wrap .bp-pagination .bp-pagination-links a:focus,.buddypress-wrap .bp-pagination .bp-pagination-links a:hover{opacity:1}.buddypress-wrap .bp-pagination p{margin:0}.bp-list:after,.bp-list:before{content:" ";display:table}.bp-list:after{clear:both}.bp-list{box-sizing:border-box;border-top:1px solid #eaeaea;clear:both;list-style:none;margin:20px 0;padding:.5em 0;width:100%}.bp-list li:after,.bp-list li:before{content:" ";display:table}.bp-list li:after{clear:both}.bp-list>li{border-bottom:1px solid #eaeaea}.bp-list li{list-style:none;margin:10px 0;padding:.5em 0;position:relative}.bp-list li .item-avatar{text-align:center}.bp-list li .item-avatar img.avatar{display:inline}.bp-list li .item .group-details,.bp-list li .item .item-avatar,.bp-list li .item .item-meta,.bp-list li .item .list-title{text-align:center}.bp-list li .item .list-title{clear:none;font-size:22px;font-weight:400;line-height:1.1;margin:0 auto}@media screen and (min-width:46.8em){.bp-list li .item .list-title{font-size:26px}}.bp-list li .item-meta,.bp-list li .meta{color:#737373;font-size:12px;margin-bottom:10px;margin-top:10px}.bp-list li .last-post{text-align:center}.bp-list li .action{margin:0;text-align:center}.bp-list li .action .generic-button{display:inline-block;font-size:12px;margin:0 0 0 10px}.bp-list li .action div.generic-button{margin:10px 0}@media screen and (min-width:46.8em){.bp-list li .item-avatar{float:right;margin-left:5%}.bp-list li .item{margin:0;overflow:hidden}.bp-list li .item .item-block{float:right;margin-left:2%;width:50%}.bp-list li .item .item-meta,.bp-list li .item .list-title{float:right;text-align:right}.bp-list li .item .group-details,.bp-list li .item .last-post{text-align:right}.bp-list li .group-desc,.bp-list li .last-post,.bp-list li .user-update{clear:none;overflow:hidden;width:auto}.bp-list li .action{clear:right;padding:0;text-align:right}.bp-list li .action li.generic-button{margin-left:0}.bp-list li .action div.generic-button{margin:0 0 10px}.bp-list li .generic-button{display:block;margin:0 0 5px 0}}@media screen and (min-width:32em){#activity-stream{clear:both;padding-top:1em}}.activity-list.bp-list{background:#fafafa;border:1px solid #eee}.activity-list.bp-list .activity-item{background:#fff;border:1px solid #b7b7b7;box-shadow:0 0 6px #d2d2d2;margin:20px 0}.activity-list.bp-list li:first-child{margin-top:0}.friends-list{list-style-type:none}.friends-request-list .item-title,.membership-requests-list .item-title{text-align:center}@media screen and (min-width:46.8em){.friends-request-list li,.membership-requests-list li{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap}.friends-request-list li .item,.membership-requests-list li .item{-moz-flex:1 1 auto;-o-flex:1 1 auto;flex:1 1 auto}.friends-request-list li .action,.membership-requests-list li .action{text-align:left}.friends-request-list li .item-title,.membership-requests-list li .item-title{font-size:22px;text-align:right}.friends-request-list li .item-title h3,.membership-requests-list li .item-title h3{margin:0}}#notifications-user-list{clear:both;padding-top:1em}@media screen and (min-width:46.8em){body:not(.logged-in) .bp-list .item{margin-left:0}}.activity-permalink .item-list,.activity-permalink .item-list li.activity-item{border:0}.activity-update-form{padding:10px 10px 0}.item-body .activity-update-form .activity-form{margin:0;padding:0}.activity-update-form{border:1px solid #ccc;box-shadow:inset 0 0 6px #eee;margin:15px 0}.activity-update-form #whats-new-avatar{margin:10px 0;text-align:center}.activity-update-form #whats-new-avatar img{box-shadow:none;display:inline-block}.activity-update-form #whats-new-content{padding:0 0 20px 0}.activity-update-form #whats-new-textarea textarea{background:#fff;box-sizing:border-box;color:#333;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}.activity-update-form #whats-new-textarea textarea:focus{box-shadow:0 0 6px 0 #d6d6d6}.activity-update-form #whats-new-post-in-box{margin:10px 0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items{list-style:none;margin:10px 0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items li{margin-bottom:10px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items #activity-autocomplete{padding:.3em}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object{display:flex;align-items:center;padding:.2em}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object .avatar{width:30px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object span{padding-right:10px;vertical-align:middle}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:focus,.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:hover{background:#eaeaea;cursor:pointer}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object.selected{border:1px solid #d6d6d6}.activity-update-form #whats-new-submit{margin:15px 0 10px}.activity-update-form #whats-new-submit input{font-size:14px;line-height:inherit;margin-bottom:10px;margin-left:10px;padding:.2em 0;text-align:center;width:100%}@media screen and (min-width:46.8em){.activity-update-form #whats-new-avatar{display:block;float:right;margin:0}.activity-update-form #whats-new-content,.activity-update-form #whats-new-post-in-box,.activity-update-form #whats-new-submit{margin-right:8.5%}.activity-update-form #whats-new-submit input{margin-bottom:0;margin-left:10px;width:8em}}.activity-list{padding:.5em}.activity-list .activity-item:after,.activity-list .activity-item:before{content:" ";display:table}.activity-list .activity-item:after{clear:both}.activity-list .activity-item{list-style:none;padding:1em}.activity-list .activity-item.has-comments{padding-bottom:1em}.activity-list .activity-item div.item-avatar{margin:0 auto;text-align:center;width:auto}.activity-list .activity-item div.item-avatar img{height:auto;max-width:40%}@media screen and (min-width:46.8em){.activity-list .activity-item div.item-avatar{margin:0 0 0 2%;text-align:right;width:15%}.activity-list .activity-item div.item-avatar img{max-width:80%}}.activity-list .activity-item.mini{font-size:13px;position:relative}.activity-list .activity-item.mini .activity-avatar{margin-right:0 auto;text-align:center;width:auto}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:15%}@media screen and (min-width:46.8em){.activity-list .activity-item.mini .activity-avatar{margin-right:15px;text-align:right;width:15%}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:60%}}.activity-list .activity-item.new_forum_post .activity-inner,.activity-list .activity-item.new_forum_topic .activity-inner{border-right:2px solid #eaeaea;margin-right:10px;padding-right:1em}.activity-list .activity-item.newest_blogs_activity,.activity-list .activity-item.newest_friends_activity,.activity-list .activity-item.newest_groups_activity,.activity-list .activity-item.newest_mentions_activity{background:rgba(31,179,221,.1)}.activity-list .activity-item .activity-inreplyto{color:#767676;font-size:13px}.activity-list .activity-item .activity-inreplyto>p{display:inline;margin:0}.activity-list .activity-item .activity-inreplyto .activity-inner,.activity-list .activity-item .activity-inreplyto blockquote{background:0 0;border:0;display:inline;margin:0;overflow:hidden;padding:0}.activity-list .activity-item .activity-header{margin:0 auto;width:80%}.activity-list .activity-item .activity-header a,.activity-list .activity-item .activity-header img{display:inline}.activity-list .activity-item .activity-header .avatar{display:inline-block;margin:0 5px;vertical-align:bottom}.activity-list .activity-item .activity-header .time-since{font-size:14px;color:#767676;text-decoration:none}.activity-list .activity-item .activity-header .time-since:hover{color:#767676;cursor:pointer;text-decoration:underline}.activity-list .activity-item .activity-content .activity-header,.activity-list .activity-item .activity-content .comment-header{color:#767676;margin-bottom:10px}.activity-list .activity-item .activity-content .activity-inner,.activity-list .activity-item .activity-content blockquote{background:#fafafa;margin:15px 0 10px;overflow:hidden;padding:1em}.activity-list .activity-item .activity-content p{margin:0}.activity-list .activity-item .activity-inner p{word-wrap:break-word}.activity-list .activity-item .activity-read-more{margin-right:1em;white-space:nowrap}.activity-list .activity-item ul.activity-meta{margin:0;padding-right:0}.activity-list .activity-item ul.activity-meta li{border:0;display:inline-block}.activity-list .activity-item .activity-meta.action{border:1px solid transparent;background:#fafafa;padding:2px;position:relative;text-align:right}.activity-list .activity-item .activity-meta.action div.generic-button{margin:0}.activity-list .activity-item .activity-meta.action .button{background:0 0}.activity-list .activity-item .activity-meta.action a{padding:4px 8px}.activity-list .activity-item .activity-meta.action .button:focus,.activity-list .activity-item .activity-meta.action .button:hover{background:0 0}.activity-list .activity-item .activity-meta.action .button:before,.activity-list .activity-item .activity-meta.action .icons:before{font-family:dashicons;font-size:18px;vertical-align:middle}.activity-list .activity-item .activity-meta.action .acomment-reply.button:before{content:"\f101"}.activity-list .activity-item .activity-meta.action .view:before{content:"\f125"}.activity-list .activity-item .activity-meta.action .fav:before{content:"\f154"}.activity-list .activity-item .activity-meta.action .unfav:before{content:"\f155"}.activity-list .activity-item .activity-meta.action .delete-activity:before{content:"\f153"}.activity-list .activity-item .activity-meta.action .delete-activity:hover{color:#800}.activity-list .activity-item .activity-meta.action .button{border:0;box-shadow:none}.activity-list .activity-item .activity-meta.action .button span{background:0 0;color:#555;font-weight:700}@media screen and (min-width:46.8em){.activity-list.bp-list{padding:30px}.activity-list .activity-item .activity-content{margin:0;position:relative}.activity-list .activity-item .activity-content:after{clear:both;content:"";display:table}.activity-list .activity-item .activity-header{margin:0 0 0 15px;width:auto}}.buddypress-wrap .activity-list .load-more,.buddypress-wrap .activity-list .load-newest{background:#fafafa;border:1px solid #eee;font-size:110%;margin:15px 0;padding:0;text-align:center}.buddypress-wrap .activity-list .load-more a,.buddypress-wrap .activity-list .load-newest a{color:#555;display:block;padding:.5em 0}.buddypress-wrap .activity-list .load-more a:focus,.buddypress-wrap .activity-list .load-more a:hover,.buddypress-wrap .activity-list .load-newest a:focus,.buddypress-wrap .activity-list .load-newest a:hover{background:#fff;color:#333}.buddypress-wrap .activity-list .load-more:focus,.buddypress-wrap .activity-list .load-more:hover,.buddypress-wrap .activity-list .load-newest:focus,.buddypress-wrap .activity-list .load-newest:hover{border-color:#e1e1e1;box-shadow:0 0 6px 0 #eaeaea}body.activity-permalink .activity-list li{border-width:1px;padding:1em 0 0 0}body.activity-permalink .activity-list li:first-child{padding-top:0}body.activity-permalink .activity-list li.has-comments{padding-bottom:0}body.activity-permalink .activity-list .activity-avatar{width:auto}body.activity-permalink .activity-list .activity-avatar a{display:block}body.activity-permalink .activity-list .activity-avatar img{max-width:100%}body.activity-permalink .activity-list .activity-content{border:0;font-size:100%;line-height:1.5;padding:0}body.activity-permalink .activity-list .activity-content .activity-header{margin:0;padding:.5em 0 0 0;text-align:center;width:100%}body.activity-permalink .activity-list .activity-content .activity-inner,body.activity-permalink .activity-list .activity-content blockquote{margin-right:0;margin-top:10px}body.activity-permalink .activity-list .activity-meta{margin:10px 0 10px}body.activity-permalink .activity-list .activity-comments{margin-bottom:10px}@media screen and (min-width:46.8em){body.activity-permalink .activity-list .activity-avatar{right:-20px;margin-left:0;position:relative;top:-20px}body.activity-permalink .activity-list .activity-content{margin-left:10px}body.activity-permalink .activity-list .activity-content .activity-header p{text-align:right}}.buddypress-wrap .activity-comments{clear:both;margin:0 5%;overflow:hidden;position:relative;width:auto}.buddypress-wrap .activity-comments ul{clear:both;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .activity-comments ul li{border-top:1px solid #eee;border-bottom:0;padding:1em 0 0}.buddypress-wrap .activity-comments ul li ul{margin-right:5%}.buddypress-wrap .activity-comments ul li:first-child{border-top:0}.buddypress-wrap .activity-comments ul li:last-child{margin-bottom:0}.buddypress-wrap .activity-comments div.acomment-avatar{width:auto}.buddypress-wrap .activity-comments div.acomment-avatar img{border-width:1px;float:right;height:25px;max-width:none;width:25px}.buddypress-wrap .activity-comments .acomment-content p,.buddypress-wrap .activity-comments .acomment-meta{font-size:14px}.buddypress-wrap .activity-comments .acomment-meta{color:#555;overflow:hidden;padding-right:2%}.buddypress-wrap .activity-comments .acomment-content{border-right:1px solid #ccc;margin:15px 10% 0 0;padding:.5em 1em}.buddypress-wrap .activity-comments .acomment-content p{margin-bottom:.5em}.buddypress-wrap .activity-comments .acomment-options{float:right;margin:10px 20px 10px 0}.buddypress-wrap .activity-comments .acomment-options a{color:#767676;font-size:14px}.buddypress-wrap .activity-comments .acomment-options a:focus,.buddypress-wrap .activity-comments .acomment-options a:hover{color:inherit}.buddypress-wrap .activity-comments .activity-meta.action{background:0 0;margin-top:10px}.buddypress-wrap .activity-comments .activity-meta.action button{font-size:14px;font-weight:400;text-transform:none}.buddypress-wrap .activity-comments .show-all button{font-size:14px;text-decoration:underline;padding-right:.5em}.buddypress-wrap .activity-comments .show-all button span{text-decoration:none}.buddypress-wrap .activity-comments .show-all button:focus span,.buddypress-wrap .activity-comments .show-all button:hover span{color:#5087e5}.buddypress-wrap .mini .activity-comments{clear:both;margin-top:0}body.activity-permalink .activity-comments{background:0 0;width:auto}body.activity-permalink .activity-comments>ul{padding:0 1em 0 .5em}body.activity-permalink .activity-comments ul li>ul{margin-top:10px}form.ac-form{display:none;padding:1em}form.ac-form .ac-reply-avatar{float:right}form.ac-form .ac-reply-avatar img{border:1px solid #eee}form.ac-form .ac-reply-content{color:#767676;padding-right:1em}form.ac-form .ac-reply-content a{text-decoration:none}form.ac-form .ac-reply-content .ac-textarea{margin-bottom:15px;padding:0 .5em;overflow:hidden}form.ac-form .ac-reply-content .ac-textarea textarea{background:0 0;box-shadow:none;color:#555;font-family:inherit;font-size:100%;height:60px;margin:0;outline:0;padding:.5em;width:100%}form.ac-form .ac-reply-content .ac-textarea textarea:focus{box-shadow:0 0 6px #d6d6d6}form.ac-form .ac-reply-content input{margin-top:10px}.activity-comments li form.ac-form{clear:both;margin-left:15px}.activity-comments form.root{margin-right:0}@media screen and (min-width:46.8em){.buddypress-wrap .blogs-list li .item-block{float:none;width:auto}.buddypress-wrap .blogs-list li .item-meta{clear:right;float:none}}@media screen and (min-width:46.8em){.buddypress-wrap .bp-dir-vert-nav .blogs-list .list-title{width:auto}}.buddypress-wrap .groups-list li .list-title{text-align:center}.buddypress-wrap .groups-list li .group-details{clear:right}.buddypress-wrap .groups-list li .group-desc{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;font-size:13px;color:#737373;font-style:italic;margin:10px auto 0;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .group-desc{font-size:16px}}.buddypress-wrap .groups-list li p{margin:0 0 .5em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .item{margin-left:0}.buddypress-wrap .groups-list li .item-meta,.buddypress-wrap .groups-list li .list-title{text-align:right;width:auto}.buddypress-wrap .groups-list li .item-meta{margin-bottom:20px}.buddypress-wrap .groups-list li .last-activity{clear:right;margin-top:-20px}}.buddypress-wrap .groups-list li.group-no-avatar div.group-desc{margin-right:0}.buddypress-wrap .mygroups .groups-list.grid .wrap{min-height:450px;padding-bottom:0}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list.grid.four .group-desc,.buddypress-wrap .groups-list.grid.three .group-desc{font-size:14px}}@media screen and (min-width:46.8em){.buddypress .bp-vertical-navs .groups-list .item-avatar{margin-left:3%;width:15%}}.buddypress-wrap .members-list li .member-name{margin-bottom:10px}.buddypress-wrap .members-list li .user-update{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;color:#737373;font-style:italic;font-size:13px;margin:15px auto;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .user-update{font-size:16px}}.buddypress-wrap .members-list li .user-update .activity-read-more{display:block;font-size:12px;font-style:normal;margin-top:10px;padding-right:2px}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .last-activity{clear:right;margin-top:-10px}}@media screen and (min-width:46.8em){.buddypress-wrap .members-group-list li .joined{clear:right;float:none}}@media screen and (min-width:32em){body:not(.logged-in) .members-list .user-update{width:96%}}.register-page .register-section{box-sizing:border-box}.register-page .signup-form{margin-top:20px}.register-page .signup-form .default-profile input{margin-bottom:20px}.register-page .signup-form label,.register-page .signup-form legend{margin:10px 0 0}.register-page .signup-form .editfield{margin:15px 0}.register-page .signup-form .editfield fieldset{border:0;padding:0}.register-page .signup-form .editfield fieldset legend{margin:0 0 5px;text-indent:0}.register-page .signup-form .editfield .field-visibility-settings{padding:.5em}.register-page .signup-form .editfield .field-visibility-settings fieldset{margin:0 0 10px}.register-page .signup-form #signup-avatar img{margin:0 0 10px 15px}.register-page .signup-form .password-entry,.register-page .signup-form .password-entry-confirm{border:1px solid #eee}@media screen and (min-width:46.8em){.buddypress-wrap .register-page .layout-wrap{display:flex;flex-flow:row wrap;justify-content:space-around}.buddypress-wrap .register-page .layout-wrap .default-profile{flex:1;padding-left:2em}.buddypress-wrap .register-page .layout-wrap .blog-details{flex:1;padding-right:2em}.buddypress-wrap .register-page .submit{clear:both}}@media screen and (min-width:46.8em){.buddypress-wrap.extended-default-reg .register-page .default-profile{flex:1;padding-left:1em}.buddypress-wrap.extended-default-reg .register-page .extended-profile{flex:2;padding-right:1em}.buddypress-wrap.extended-default-reg .register-page .blog-details{flex:1 100%}}#group-create-body{padding:.5em}#group-create-body .creation-step-name{text-align:center}#group-create-body .avatar-nav-items{margin-top:15px}.single-headers:after,.single-headers:before{content:" ";display:table}.single-headers:after{clear:both}.single-headers{margin-bottom:15px}.single-headers #item-header-avatar a{display:block;text-align:center}.single-headers #item-header-avatar a img{float:none}.single-headers div#item-header-content{float:none}@media screen and (min-width:46.8em){.single-headers #item-header-avatar a{text-align:right}.single-headers #item-header-avatar a img{float:right}.single-headers #item-header-content{padding-right:2em}}.single-headers .activity,.single-headers .group-status{display:inline}.single-headers .group-status{font-size:18px;color:#333;padding-left:1em}.single-headers .activity{display:inline-block;font-size:12px;padding:0}.single-headers #sitewide-notice p,.single-headers div#message p{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.single-headers h2{line-height:1.2;margin:0 0 5px}.single-headers h2 a{color:#767676;text-decoration:none}.single-headers h2 span.highlight{display:inline-block;font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle}.single-headers h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-size:80%;font-weight:700;margin-bottom:2px;padding:1px 4px;position:relative;left:-2px;top:-2px;vertical-align:middle}.single-headers img.avatar{float:right;margin:0 0 19px 15px}.single-headers .item-meta{color:#767676;font-size:14px;margin:15px 0 5px;padding-bottom:.5em}.single-headers ul{margin-bottom:15px}.single-headers ul li{float:left;list-style:none}.single-headers div.generic-button{text-align:center}.single-headers li.generic-button{display:inline-block;text-align:center}@media screen and (min-width:46.8em){.single-headers a.button,.single-headers div.generic-button,.single-headers li.generic-button{float:right}}.single-headers a.button,.single-headers div.generic-button{margin:10px 0 0 10px}.single-headers li.generic-button{margin:2px 10px}.single-headers li.generic-button:first-child{margin-right:0}.single-headers div#message.info{line-height:.8}body.no-js .single-item-header .js-self-profile-button{display:none}#cover-image-container{position:relative}#header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#item-header-cover-image{position:relative;z-index:2}#item-header-cover-image #item-header-avatar{padding:0 1em}.groups-header .bp-group-type-list{margin:0}.groups-header .bp-feedback{clear:both}.groups-header .group-item-actions{float:right;margin:0 15px 15px 0;padding-top:0;width:100%}.groups-header .moderators-lists{margin-top:0}.groups-header .moderators-lists .moderators-title{font-size:14px}.groups-header .moderators-lists .user-list{margin:0 0 5px}.groups-header .moderators-lists .user-list ul:after{clear:both;content:"";display:table}.groups-header .moderators-lists .user-list li{display:inline-block;float:none;margin-right:4px;padding:4px}.groups-header .moderators-lists img.avatar{box-shadow:none;float:none;height:30px;margin:0;max-width:100%;width:30px}@media screen and (min-width:46.8em){.groups-header div#item-header-content{float:right;margin-right:10%;text-align:right;padding-top:15px;width:42%}.groups-header .group-item-actions{float:left;margin:0 15px 15px 0;text-align:left;width:20%}.groups-header .groups-meta{clear:both}}.groups-header .desc-wrap{background:#eaeaea;border:1px solid #d6d6d6;margin:0 0 15px;padding:1em;text-align:center}.groups-header .desc-wrap .group-description{background:#fafafa;box-shadow:inset 0 0 9px #ccc;padding:1em;text-align:right}.groups-header .desc-wrap .group-description p{margin:0;padding:0}.bp-user .users-header .user-nicename{margin-bottom:5px}.bp-user .member-header-actions{overflow:hidden}.bp-user .member-header-actions *>*{display:block}.buddypress-wrap .item-body{margin:20px 0}.buddypress-wrap .item-body .screen-heading{font-size:20px;font-weight:400}.buddypress-wrap .item-body .button-tabs{margin:30px 0 15px}.buddypress-wrap.bp-single-vert-nav .bp-list:not(.grid) .item-entry{padding-right:.5em}.single-item.group-members .item-body .filters:not(.no-subnav){border-top:5px solid #eaeaea;padding-top:1em}.single-item.group-members .item-body .filters{margin-top:0}.buddypress-wrap .group-status-type ul{margin:0 20px 20px 0}.groups-manage-members-list{padding:.5em 0}.groups-manage-members-list dd{margin:0;padding:1em 0}.groups-manage-members-list .section-title{background:#eaeaea;padding-right:.3em}.groups-manage-members-list ul{list-style:none;margin-bottom:0}.groups-manage-members-list ul li{border-bottom:1px solid #eee;margin-bottom:10px;padding:.5em .3em .3em}.groups-manage-members-list ul li:last-child,.groups-manage-members-list ul li:only-child{border-bottom:0}.groups-manage-members-list ul li:nth-child(even){background:#fafafa}.groups-manage-members-list ul li.banned-user{background:#fad3d3}.groups-manage-members-list ul .member-name{margin-bottom:0;text-align:center}.groups-manage-members-list ul img{display:block;margin:0 auto;width:20%}@media screen and (min-width:32em){.groups-manage-members-list ul .member-name{text-align:right}.groups-manage-members-list ul img{display:inline;width:50px}}.groups-manage-members-list ul .members-manage-buttons:after,.groups-manage-members-list ul .members-manage-buttons:before{content:" ";display:table}.groups-manage-members-list ul .members-manage-buttons:after{clear:both}.groups-manage-members-list ul .members-manage-buttons{margin:15px 0 5px}.groups-manage-members-list ul .members-manage-buttons a.button{color:#767676;display:block;font-size:13px}@media screen and (min-width:32em){.groups-manage-members-list ul .members-manage-buttons a.button{display:inline-block}}.groups-manage-members-list ul .members-manage-buttons.text-links-list{margin-bottom:0}@media screen and (max-width:32em){.groups-manage-members-list ul .members-manage-buttons.text-links-list a.button{background:#fafafa;border:1px solid #eee;display:block;margin-bottom:10px}}.groups-manage-members-list ul .action:not(.text-links-list) a.button{font-size:12px}@media screen and (min-width:46.8em){.groups-manage-members-list ul li .avatar,.groups-manage-members-list ul li .member-name{float:right}.groups-manage-members-list ul li .avatar{margin-left:15px}.groups-manage-members-list ul li .action{clear:both;float:right}}.buddypress .bp-invites-content ul.item-list{border-top:0}.buddypress .bp-invites-content ul.item-list li{border:1px solid #eaeaea;margin:0 0 1%;padding-right:5px;padding-left:5px;position:relative;width:auto}.buddypress .bp-invites-content ul.item-list li .list-title{margin:0 auto;width:80%}.buddypress .bp-invites-content ul.item-list li .action{position:absolute;top:10px;left:10px}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button{border:0}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:focus,.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:hover{color:#1fb3dd}.buddypress .bp-invites-content ul.item-list li.selected{box-shadow:inset 0 0 12px 0 rgba(237,187,52,.2)}.buddypress .bp-invites-content .group-inviters li,.buddypress .bp-invites-content .item-list .item-meta span{color:#767676}.buddypress .bp-invites-content li ul.group-inviters{clear:both;margin:0;overflow:hidden}.buddypress .bp-invites-content li ul.group-inviters li{border:0;float:right;font-size:20px;width:inherit}.buddypress .bp-invites-content li .status{font-size:20px;font-style:italic;clear:both;color:#555;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul:after,.buddypress .bp-invites-content #send-invites-editor ul:before{content:" ";display:table}.buddypress .bp-invites-content #send-invites-editor ul:after{clear:both}.buddypress .bp-invites-content #send-invites-editor textarea{width:100%}.buddypress .bp-invites-content #send-invites-editor ul{clear:both;list-style:none;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul li{float:right;margin:.5%;max-height:50px;max-width:50px}.buddypress .bp-invites-content #send-invites-editor #bp-send-invites-form{clear:both;margin-top:10px}.buddypress .bp-invites-content #send-invites-editor .action{margin-top:10px;padding-top:10px}.buddypress .bp-invites-content #send-invites-editor.bp-hide{display:none}@media screen and (min-width:46.8em){.buddypress .bp-invites-content ul.item-list>li{box-sizing:border-box;border:1px solid #eaeaea;float:right;padding-right:.5em;padding-left:.5em;width:49.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(odd){margin-left:.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(even){margin-right:.5%}.buddypress .bp-invites-content ul.item-list ul.group-inviters{float:right;width:auto}}@media screen and (min-width:46.8em){:not(.vertical)+.item-body #group-invites-container{display:-ms-grid;display:grid;-ms-grid-columns:25% auto;grid-template-columns:25% auto;grid-template-areas:"group-invites-nav group-invites-column"}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav{-ms-grid-row:1;-ms-grid-column:1;grid-area:group-invites-nav}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav li{display:block;float:none}:not(.vertical)+.item-body #group-invites-container .group-invites-column{-ms-grid-row:1;-ms-grid-column:2;grid-area:group-invites-column}}.buddypress.groups .activity-update-form{margin-top:0}.buddypress-wrap .profile{margin-top:30px}.buddypress-wrap .public .profile-fields td.label{width:30%}.buddypress-wrap .profile.edit .button-nav{list-style:none;margin:30px 0 10px}.buddypress-wrap .profile.edit .button-nav li{display:inline-block;margin-left:10px}.buddypress-wrap .profile.edit .button-nav li a{font-size:18px}.buddypress-wrap .profile.edit .editfield{background:#fafafa;border:1px solid #eee;margin:15px 0;padding:1em}.buddypress-wrap .profile.edit .editfield fieldset{border:0}.buddypress-wrap .profile.edit .editfield fieldset label{font-weight:400}.buddypress-wrap .profile.edit .editfield fieldset label.xprofile-field-label{display:inline}.buddypress-wrap .profile.edit .editfield{display:flex;flex-direction:column}.buddypress-wrap .profile.edit .editfield .description{margin-top:10px;order:2}.buddypress-wrap .profile.edit .editfield>fieldset{order:1}.buddypress-wrap .profile.edit .editfield .field-visibility-settings,.buddypress-wrap .profile.edit .editfield .field-visibility-settings-toggle{order:3}body.no-js .buddypress-wrap .field-visibility-settings-close,body.no-js .buddypress-wrap .field-visibility-settings-toggle{display:none}body.no-js .buddypress-wrap .field-visibility-settings{display:block}.buddypress-wrap .field-visibility-settings{margin:10px 0}.buddypress-wrap .current-visibility-level{font-style:normal;font-weight:700}.buddypress-wrap .field-visibility-settings,.buddypress-wrap .field-visibility-settings-header{color:#737373}.buddypress-wrap .field-visibility-settings fieldset{margin:5px 0}.buddypress-wrap .standard-form .editfield fieldset{margin:0}.buddypress-wrap .standard-form .field-visibility-settings label{font-weight:400;margin:0}.buddypress-wrap .standard-form .field-visibility-settings .radio{list-style:none;margin-bottom:0}.buddypress-wrap .standard-form .field-visibility-settings .field-visibility-settings-close{font-size:12px}.buddypress-wrap .standard-form .wp-editor-container{border:1px solid #dedede}.buddypress-wrap .standard-form .wp-editor-container textarea{background:#fff;width:100%}.buddypress-wrap .standard-form .description{background:#fafafa;font-size:inherit}.buddypress-wrap .standard-form .field-visibility-settings legend,.buddypress-wrap .standard-form .field-visibility-settings-header{font-style:italic}.buddypress-wrap .standard-form .field-visibility-settings-header{font-size:14px}.buddypress-wrap .standard-form .field-visibility-settings label,.buddypress-wrap .standard-form .field-visibility-settings legend{font-size:14px}.buddypress-wrap .standard-form .field-visibility select{margin:0}.buddypress-wrap .html-active button.switch-html{background:#f5f5f5;border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.buddypress-wrap .tmce-active button.switch-tmce{background:#f5f5f5;border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.buddypress-wrap .profile.public .profile-group-title{border-bottom:1px solid #ccc}body.register .buddypress-wrap .page ul{list-style:none}.buddypress-wrap .profile .bp-avatar-nav{margin-top:20px}.message-action-delete:before,.message-action-star:before,.message-action-unstar:before,.message-action-view:before{font-family:dashicons;font-size:18px}.message-action-star:before{color:#aaa;content:"\f154"}.message-action-unstar:before{color:#fcdd77;content:"\f155"}.message-action-view:before{content:"\f473"}.message-action-delete:before{content:"\f153"}.message-action-delete:hover:before{color:#a00}.preview-content .actions a{text-decoration:none}.bp-messages-content{margin:15px 0}.bp-messages-content .avatar{box-shadow:none}.bp-messages-content .thread-participants{list-style:none}.bp-messages-content .thread-participants dd{margin-right:0}.bp-messages-content time{color:#737373;font-size:12px}#message-threads{border-top:1px solid #eaeaea;clear:both;list-style:none;margin:0;max-height:220px;overflow-x:hidden;overflow-y:auto;padding:0;width:100%}#message-threads li{border-bottom:1px solid #eaeaea;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;margin:0;overflow:hidden;padding:.5em 0}#message-threads li .thread-cb{display:flex;align-items:center;-moz-flex:1 2 5%;-o-flex:1 2 5%;flex:1 2 5%}#message-threads li .thread-from,#message-threads li .thread-to{-moz-flex:1 2 20%;-o-flex:1 2 20%;flex:1 2 20%}#message-threads li .thread-from img.avatar,#message-threads li .thread-to img.avatar{float:right;margin:0 0 0 10px}#message-threads li .thread-from .user-name,#message-threads li .thread-to .user-name{display:inline-block;line-height:1.1}#message-threads li .thread-from .num-recipients,#message-threads li .thread-to .num-recipients{color:#737373;font-weight:400;font-size:12px;margin:0}#message-threads li .thread-content{-moz-flex:1 2 60%;-o-flex:1 2 60%;flex:1 2 60%}#message-threads li .thread-date{-moz-flex:1 2 15%;-o-flex:1 2 15%;flex:1 2 15%}#message-threads li.selected{background-color:#fafafa}#message-threads li.selected .thread-subject .subject{color:#5087e5}#message-threads li.unread{font-weight:700}#message-threads li .thread-content .excerpt{color:#737373;font-size:12px;margin:0}#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:13px}@media screen and (min-width:46.8em){#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:16px}}#message-threads li .thread-content .thread-subject{vertical-align:top}#message-threads li .thread-content .thread-subject .excerpt{font-weight:400}#message-threads li .thread-date{padding-left:5px;text-align:left}.bp-messages-content .actions{float:left;max-width:30%}.bp-messages-content .actions .bp-icons:not(.bp-hide){display:inline-block;margin:0;padding:.3em .5em}.bp-messages-content .actions .bp-icons:not(.bp-hide):before{font-size:26px}.bp-messages-content #thread-preview{border:1px solid #eaeaea;margin-top:20px}.bp-messages-content #thread-preview .preview-message{overflow:hidden}.bp-messages-content #thread-preview .preview-content{margin:.5em}.bp-messages-content #thread-preview .preview-content .preview-message{background:#fafafa;margin:10px 0;padding:1em .3em .3em}.bp-messages-content #bp-message-thread-list{border-top:1px solid #eaeaea;clear:both;list-style:none;padding:1em 0 .3em}.bp-messages-content #bp-message-thread-list li{padding:.5em}.bp-messages-content #bp-message-thread-list li:nth-child(2n) .message-content{background:#fafafa}.bp-messages-content #bp-message-thread-list .message-metadata{border-bottom:1px solid #ccc;box-shadow:2px 1px 9px 0 #eee;display:table;padding:.2em;width:100%}.bp-messages-content #bp-message-thread-list .message-metadata .avatar{width:30px}.bp-messages-content #bp-message-thread-list .message-metadata .user-link{display:block;font-size:13px;float:right}@media screen and (min-width:46.8em){.bp-messages-content #bp-message-thread-list .message-metadata .user-link{font-size:16px}}.bp-messages-content #bp-message-thread-list .message-metadata time{color:#737373;font-size:12px;padding:0 .5em}.bp-messages-content #bp-message-thread-list .message-metadata button{padding:0 .3em}.bp-messages-content #bp-message-thread-list .message-metadata button:before{font-size:20px}.bp-messages-content #bp-message-thread-list .message-content{overflow:hidden;margin:1em auto 0;width:90%}.bp-messages-content #bp-message-thread-list img.avatar{float:right;margin:0 0 0 10px}.bp-messages-content #bp-message-thread-list .actions a:before{font-size:18px}.bp-messages-content form.send-reply .avatar-box{padding:.5em 0}.bp-messages-content .preview-pane-header,.bp-messages-content .single-message-thread-header{border-bottom:1px solid #eaeaea}.bp-messages-content .preview-pane-header:after,.bp-messages-content .single-message-thread-header:after{clear:both;content:"";display:table}.bp-messages-content .preview-thread-title,.bp-messages-content .single-thread-title{font-size:16px}.bp-messages-content .preview-thread-title .messages-title,.bp-messages-content .single-thread-title .messages-title{padding-right:2em}.bp-messages-content .thread-participants{float:right;margin:5px 0;width:70%}.bp-messages-content .thread-participants dd,.bp-messages-content .thread-participants ul{margin-bottom:10px}.bp-messages-content .thread-participants ul{list-style:none}.bp-messages-content .thread-participants ul:after{clear:both;content:"";display:table}.bp-messages-content .thread-participants li{float:right;margin-right:5px}.bp-messages-content .thread-participants img{width:30px}.bp-messages-content #bp-message-thread-list li .message-content blockquote,.bp-messages-content #bp-message-thread-list li .message-content ol,.bp-messages-content #bp-message-thread-list li .message-content ul,.bp-messages-content #thread-preview .preview-message blockquote,.bp-messages-content #thread-preview .preview-message ol,.bp-messages-content #thread-preview .preview-message ul{list-style-position:inside;margin-right:0}.bp-messages-content #thread-preview:empty,.bp-messages-content ul#message-threads:empty{display:none}.bp-messages-content #bp-message-thread-header h2:first-child,.bp-messages-content #thread-preview h2:first-child{background-color:#eaeaea;color:#555;font-weight:700;margin:0;padding:.5em}.bp-messages-content #bp-message-thread-list li a.user-link,.bp-messages-content #message-threads .thread-content a{border:0;text-decoration:none}.bp-messages-content .standard-form #subject{margin-bottom:20px}div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions{margin-left:15px;max-width:42.5%}.buddypress.settings .profile-settings.bp-tables-user select{width:100%}.buddypress-wrap #whats-new-post-in-box select,.buddypress-wrap .filter select{border:1px solid #d6d6d6}.buddypress-wrap input.action[disabled]{cursor:pointer;opacity:.4}.buddypress-wrap #notification-bulk-manage[disabled]{display:none}.buddypress-wrap fieldset legend{font-size:inherit;font-weight:600}.buddypress-wrap input[type=email]:focus,.buddypress-wrap input[type=password]:focus,.buddypress-wrap input[type=tel]:focus,.buddypress-wrap input[type=text]:focus,.buddypress-wrap input[type=url]:focus,.buddypress-wrap textarea:focus{box-shadow:0 0 8px #eaeaea}.buddypress-wrap select{height:auto}.buddypress-wrap textarea{resize:vertical}.buddypress-wrap .standard-form .bp-controls-wrap{margin:1em 0}.buddypress-wrap .standard-form .groups-members-search input[type=search],.buddypress-wrap .standard-form .groups-members-search input[type=text],.buddypress-wrap .standard-form [data-bp-search] input[type=search],.buddypress-wrap .standard-form [data-bp-search] input[type=text],.buddypress-wrap .standard-form input[type=color],.buddypress-wrap .standard-form input[type=date],.buddypress-wrap .standard-form input[type=datetime-local],.buddypress-wrap .standard-form input[type=datetime],.buddypress-wrap .standard-form input[type=email],.buddypress-wrap .standard-form input[type=month],.buddypress-wrap .standard-form input[type=number],.buddypress-wrap .standard-form input[type=password],.buddypress-wrap .standard-form input[type=range],.buddypress-wrap .standard-form input[type=search],.buddypress-wrap .standard-form input[type=tel],.buddypress-wrap .standard-form input[type=text],.buddypress-wrap .standard-form input[type=time],.buddypress-wrap .standard-form input[type=url],.buddypress-wrap .standard-form input[type=week],.buddypress-wrap .standard-form select,.buddypress-wrap .standard-form textarea{background:#fafafa;border:1px solid #d6d6d6;border-radius:0;font:inherit;font-size:100%;padding:.5em}.buddypress-wrap .standard-form input[required],.buddypress-wrap .standard-form select[required],.buddypress-wrap .standard-form textarea[required]{box-shadow:none;border-width:2px;outline:0}.buddypress-wrap .standard-form input[required]:invalid,.buddypress-wrap .standard-form select[required]:invalid,.buddypress-wrap .standard-form textarea[required]:invalid{border-color:#b71717}.buddypress-wrap .standard-form input[required]:valid,.buddypress-wrap .standard-form select[required]:valid,.buddypress-wrap .standard-form textarea[required]:valid{border-color:#91cc2c}.buddypress-wrap .standard-form input[required]:focus,.buddypress-wrap .standard-form select[required]:focus,.buddypress-wrap .standard-form textarea[required]:focus{border-color:#d6d6d6;border-width:1px}.buddypress-wrap .standard-form input.invalid[required],.buddypress-wrap .standard-form select.invalid[required],.buddypress-wrap .standard-form textarea.invalid[required]{border-color:#b71717}.buddypress-wrap .standard-form input:not(.button-small),.buddypress-wrap .standard-form textarea{width:100%}.buddypress-wrap .standard-form input[type=checkbox],.buddypress-wrap .standard-form input[type=radio]{margin-left:5px;width:auto}.buddypress-wrap .standard-form select{padding:3px}.buddypress-wrap .standard-form textarea{height:120px}.buddypress-wrap .standard-form textarea#message_content{height:200px}.buddypress-wrap .standard-form input[type=password]{margin-bottom:5px}.buddypress-wrap .standard-form input:focus,.buddypress-wrap .standard-form select:focus,.buddypress-wrap .standard-form textarea:focus{background:#fafafa;color:#555;outline:0}.buddypress-wrap .standard-form label,.buddypress-wrap .standard-form span.label{display:block;font-weight:600;margin:15px 0 5px;width:auto}.buddypress-wrap .standard-form a.clear-value{display:block;margin-top:5px;outline:0}.buddypress-wrap .standard-form .submit{clear:both;padding:15px 0 0}.buddypress-wrap .standard-form p.submit{margin-bottom:0}.buddypress-wrap .standard-form div.submit input{margin-left:15px}.buddypress-wrap .standard-form #invite-list label,.buddypress-wrap .standard-form p label{font-weight:400;margin:auto}.buddypress-wrap .standard-form p.description{color:#737373;margin:5px 0}.buddypress-wrap .standard-form div.checkbox label:nth-child(n+2),.buddypress-wrap .standard-form div.radio div label{color:#737373;font-size:100%;font-weight:400;margin:5px 0 0}.buddypress-wrap .standard-form#send-reply textarea{width:97.5%}.buddypress-wrap .standard-form#sidebar-login-form label{margin-top:5px}.buddypress-wrap .standard-form#sidebar-login-form input[type=password],.buddypress-wrap .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}.buddypress-wrap .standard-form.profile-edit input:focus{background:#fff}@media screen and (min-width:46.8em){.buddypress-wrap .standard-form .left-menu{float:right}.buddypress-wrap .standard-form #invite-list ul{list-style:none;margin:1%}.buddypress-wrap .standard-form #invite-list ul li{margin:0 1% 0 0}.buddypress-wrap .standard-form .main-column{margin-right:190px}.buddypress-wrap .standard-form .main-column ul#friend-list{clear:none;float:right}.buddypress-wrap .standard-form .main-column ul#friend-list h4{clear:none}}.buddypress-wrap .standard-form .bp-tables-user label{margin:0}.buddypress-wrap .signup-form label,.buddypress-wrap .signup-form legend{font-weight:400}body.no-js .buddypress #delete_inbox_messages,body.no-js .buddypress #delete_sentbox_messages,body.no-js .buddypress #message-type-select,body.no-js .buddypress #messages-bulk-management #select-all-messages,body.no-js .buddypress #notifications-bulk-management #select-all-notifications,body.no-js .buddypress label[for=message-type-select]{display:none}.buddypress-wrap .wp-editor-wrap .wp-editor-wrap button,.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=button],.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=submit],.buddypress-wrap .wp-editor-wrap a.button,.buddypress-wrap .wp-editor-wrap input[type=reset]{padding:0 8px 1px}.buddypress-wrap .select-wrap{border:1px solid #eee}.buddypress-wrap .select-wrap label{display:inline}.buddypress-wrap .select-wrap select::-ms-expand{display:none}.buddypress-wrap .select-wrap select{-moz-appearance:none;-webkit-appearance:none;-o-appearance:none;appearance:none;border:0;cursor:pointer;margin-left:-25px;padding:6px 10px 6px 25px;position:relative;text-indent:-2px;z-index:1;width:100%}.buddypress-wrap .select-wrap select,.buddypress-wrap .select-wrap select:active,.buddypress-wrap .select-wrap select:focus{background:0 0}.buddypress-wrap .select-wrap span.select-arrow{display:inline-block;position:relative;z-index:0}.buddypress-wrap .select-wrap span.select-arrow:before{color:#ccc;content:"\25BC"}.buddypress-wrap .select-wrap:focus .select-arrow:before,.buddypress-wrap .select-wrap:hover .select-arrow:before{color:#a6a6a6}.buddypress-wrap .bp-search form:focus,.buddypress-wrap .bp-search form:hover,.buddypress-wrap .select-wrap:focus,.buddypress-wrap .select-wrap:hover{border:1px solid #d5d4d4;box-shadow:inset 0 0 3px #eee}@media screen and (min-width:32em){.buddypress-wrap .notifications-options-nav .select-wrap{float:right}}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after,.buddypress-wrap .bp-messages-search-form:before{content:" ";display:table}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after{clear:both}.buddypress-wrap form.bp-dir-search-form,.buddypress-wrap form.bp-invites-search-form,.buddypress-wrap form.bp-messages-search-form{border:1px solid #eee;width:100%}@media screen and (min-width:55em){.buddypress-wrap form.bp-dir-search-form,.buddypress-wrap form.bp-invites-search-form,.buddypress-wrap form.bp-messages-search-form{width:15em}}.buddypress-wrap form.bp-dir-search-form label,.buddypress-wrap form.bp-invites-search-form label,.buddypress-wrap form.bp-messages-search-form label{margin:0}.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-invites-search-form button[type=submit],.buddypress-wrap form.bp-invites-search-form input[type=search],.buddypress-wrap form.bp-invites-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text]{background:0 0;border:0;border-radius:0;background-clip:padding-box}.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-invites-search-form input[type=search],.buddypress-wrap form.bp-invites-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text]{float:right;line-height:1.5;padding:3px 10px;width:80%}.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-invites-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form button[type=submit]{float:left;font-size:inherit;font-weight:400;line-height:1.5;padding:3px .7em;text-align:center;text-transform:none;width:20%}.buddypress-wrap form.bp-dir-search-form button[type=submit] span,.buddypress-wrap form.bp-invites-search-form button[type=submit] span,.buddypress-wrap form.bp-messages-search-form button[type=submit] span{font-family:dashicons;font-size:18px;line-height:1.6}.buddypress-wrap form.bp-dir-search-form button[type=submit].bp-show,.buddypress-wrap form.bp-invites-search-form button[type=submit].bp-show,.buddypress-wrap form.bp-messages-search-form button[type=submit].bp-show{height:auto;right:0;overflow:visible;position:static;top:0}.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-invites-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-invites-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-invites-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-decoration{display:none}.buddypress-wrap ul.filters li form label input{line-height:1.4;padding:.1em .7em}.buddypress-wrap .current-member-type{font-style:italic}.buddypress-wrap .dir-form{clear:both}.budypress.no-js form.bp-dir-search-form button[type=submit]{height:auto;right:0;overflow:visible;position:static;top:0}.bp-user [data-bp-search] form input[type=search],.bp-user [data-bp-search] form input[type=text]{padding:6px 10px 7px}.buddypress-wrap .bp-tables-user,.buddypress-wrap table.forum,.buddypress-wrap table.wp-profile-fields{width:100%}.buddypress-wrap .bp-tables-user thead tr,.buddypress-wrap table.forum thead tr,.buddypress-wrap table.wp-profile-fields thead tr{background:0 0;border-bottom:2px solid #ccc}.buddypress-wrap .bp-tables-user tbody tr,.buddypress-wrap table.forum tbody tr,.buddypress-wrap table.wp-profile-fields tbody tr{background:#fafafa}.buddypress-wrap .bp-tables-user tr td,.buddypress-wrap .bp-tables-user tr th,.buddypress-wrap table.forum tr td,.buddypress-wrap table.forum tr th,.buddypress-wrap table.wp-profile-fields tr td,.buddypress-wrap table.wp-profile-fields tr th{padding:.5em;vertical-align:middle}.buddypress-wrap .bp-tables-user tr td.label,.buddypress-wrap table.forum tr td.label,.buddypress-wrap table.wp-profile-fields tr td.label{border-left:1px solid #eaeaea;font-weight:600;width:25%}.buddypress-wrap .bp-tables-user tr.alt td,.buddypress-wrap table.wp-profile-fields tr.alt td{background:#fafafa}.buddypress-wrap table.profile-fields .data{padding:.5em 1em}.buddypress-wrap table.profile-fields tr:last-child{border-bottom:none}.buddypress-wrap table.notifications td{padding:1em .5em}.buddypress-wrap table.notifications .bulk-select-all,.buddypress-wrap table.notifications .bulk-select-check{width:7%}.buddypress-wrap table.notifications .bulk-select-check{vertical-align:middle}.buddypress-wrap table.notifications .date,.buddypress-wrap table.notifications .notification-description,.buddypress-wrap table.notifications .notification-since,.buddypress-wrap table.notifications .title{width:39%}.buddypress-wrap table.notifications .actions,.buddypress-wrap table.notifications .notification-actions{width:15%}.buddypress-wrap table.notification-settings th.title,.buddypress-wrap table.profile-settings th.title{width:80%}.buddypress-wrap table.notifications .notification-actions a.delete,.buddypress-wrap table.notifications .notification-actions a.mark-read{display:inline-block}.buddypress-wrap table.notification-settings{margin-bottom:15px;text-align:right}.buddypress-wrap #groups-notification-settings{margin-bottom:0}.buddypress-wrap table.notification-settings td:first-child,.buddypress-wrap table.notification-settings th.icon,.buddypress-wrap table.notifications td:first-child,.buddypress-wrap table.notifications th.icon{display:none}.buddypress-wrap table.notification-settings .no,.buddypress-wrap table.notification-settings .yes{text-align:center;width:40px;vertical-align:middle}.buddypress-wrap table#message-threads{clear:both}.buddypress-wrap table#message-threads .thread-info{min-width:40%}.buddypress-wrap table#message-threads .thread-info p{margin:0}.buddypress-wrap table#message-threads .thread-info p.thread-excerpt{color:#737373;font-size:12px;margin-top:3px}.buddypress-wrap table.profile-fields{margin-bottom:20px}.buddypress-wrap table.profile-fields:last-child{margin-bottom:0}.buddypress-wrap table.profile-fields p{margin:0}.buddypress-wrap table.profile-fields p:last-child{margin-top:0}.bp-screen-reader-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-vert{display:flex;align-items:center}.bp-hide{display:none}.bp-show{height:auto;right:0;overflow:visible;position:static;top:0}.buddypress .buddypress-wrap .activity-read-more a,.buddypress .buddypress-wrap .comment-reply-link,.buddypress .buddypress-wrap .generic-button a,.buddypress .buddypress-wrap a.bp-title-button,.buddypress .buddypress-wrap a.button,.buddypress .buddypress-wrap button,.buddypress .buddypress-wrap input[type=button],.buddypress .buddypress-wrap input[type=reset],.buddypress .buddypress-wrap input[type=submit],.buddypress .buddypress-wrap ul.button-nav:not(.button-tabs) li a{background:#fff;border-color:#ccc;border-style:solid;border-width:1px;color:#555;cursor:pointer;font-size:inherit;font-weight:400;outline:0;padding:.3em .5em;text-align:center;text-decoration:none;width:auto}.buddypress .buddypress-wrap .button-small[type=button]{padding:0 8px 1px}.buddypress .buddypress-wrap .activity-read-more a:focus,.buddypress .buddypress-wrap .activity-read-more a:hover,.buddypress .buddypress-wrap .button-nav li a:focus,.buddypress .buddypress-wrap .button-nav li a:hover,.buddypress .buddypress-wrap .button-nav li.current a,.buddypress .buddypress-wrap .comment-reply-link:focus,.buddypress .buddypress-wrap .comment-reply-link:hover,.buddypress .buddypress-wrap .generic-button a:focus,.buddypress .buddypress-wrap .generic-button a:hover,.buddypress .buddypress-wrap a.button:focus,.buddypress .buddypress-wrap a.button:hover,.buddypress .buddypress-wrap button:focus,.buddypress .buddypress-wrap button:hover,.buddypress .buddypress-wrap input[type=button]:focus,.buddypress .buddypress-wrap input[type=button]:hover,.buddypress .buddypress-wrap input[type=reset]:focus,.buddypress .buddypress-wrap input[type=reset]:hover,.buddypress .buddypress-wrap input[type=submit]:focus,.buddypress .buddypress-wrap input[type=submit]:hover{background:#ededed;border-color:#999;color:#333;outline:0;text-decoration:none}.buddypress .buddypress-wrap a.disabled,.buddypress .buddypress-wrap button.disabled,.buddypress .buddypress-wrap button.pending,.buddypress .buddypress-wrap div.pending a,.buddypress .buddypress-wrap input[type=button].disabled,.buddypress .buddypress-wrap input[type=button].pending,.buddypress .buddypress-wrap input[type=reset].disabled,.buddypress .buddypress-wrap input[type=reset].pending,.buddypress .buddypress-wrap input[type=submit].pending,.buddypress .buddypress-wrap input[type=submit][disabled=disabled]{border-color:#eee;color:#767676;cursor:default}.buddypress .buddypress-wrap a.disabled:hover,.buddypress .buddypress-wrap button.disabled:hover,.buddypress .buddypress-wrap button.pending:hover,.buddypress .buddypress-wrap div.pending a:hover,.buddypress .buddypress-wrap input[type=button]:hover.disabled,.buddypress .buddypress-wrap input[type=button]:hover.pending,.buddypress .buddypress-wrap input[type=reset]:hover.disabled,.buddypress .buddypress-wrap input[type=reset]:hover.pending,.buddypress .buddypress-wrap input[type=submit]:hover.disabled,.buddypress .buddypress-wrap input[type=submit]:hover.pending{border-color:#eee;color:#767676}.buddypress .buddypress-wrap button.text-button,.buddypress .buddypress-wrap input.text-button{background:0 0;border:0;box-shadow:none;color:#767676}.buddypress .buddypress-wrap button.text-button.small,.buddypress .buddypress-wrap input.text-button.small{font-size:13px}.buddypress .buddypress-wrap button.text-button:focus,.buddypress .buddypress-wrap button.text-button:hover,.buddypress .buddypress-wrap input.text-button:focus,.buddypress .buddypress-wrap input.text-button:hover{background:0 0;text-decoration:underline}.buddypress .buddypress-wrap .activity-list a.button{border:none}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover{color:#1fb3dd}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.invite-button:hover{color:#a00}.buddypress .buddypress-wrap #item-buttons:empty{display:none}.buddypress .buddypress-wrap input:disabled:focus,.buddypress .buddypress-wrap input:disabled:hover{background:0 0}.buddypress .buddypress-wrap .text-links-list a.button{background:0 0;border:none;border-left:1px solid #eee;color:#737373;display:inline-block;padding:.3em 1em}.buddypress .buddypress-wrap .text-links-list a.button:visited{color:#d6d6d6}.buddypress .buddypress-wrap .text-links-list a.button:focus,.buddypress .buddypress-wrap .text-links-list a.button:hover{color:#5087e5}.buddypress .buddypress-wrap .text-links-list a:first-child{padding-right:0}.buddypress .buddypress-wrap .text-links-list a:last-child{border-left:none}.buddypress .buddypress-wrap .bp-list.grid .action a,.buddypress .buddypress-wrap .bp-list.grid .action button{border:1px solid #ccc;display:block;margin:0}.buddypress .buddypress-wrap .bp-list.grid .action a:focus,.buddypress .buddypress-wrap .bp-list.grid .action a:hover,.buddypress .buddypress-wrap .bp-list.grid .action button:focus,.buddypress .buddypress-wrap .bp-list.grid .action button:hover{background:#ededed}.buddypress #buddypress .create-button{background:0 0;text-align:center}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{text-decoration:underline}@media screen and (min-width:46.8em){.buddypress #buddypress .create-button{float:left}}.buddypress #buddypress .create-button a{border:1px solid #ccc;border-radius:5px;background-clip:padding-box;box-shadow:inset 0 0 6px 0 #eaeaea;margin:.2em 0;width:auto}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{background:0 0;border-color:#ccc;box-shadow:inset 0 0 12px 0 #eaeaea}@media screen and (min-width:46.8em){.buddypress #buddypress.bp-dir-vert-nav .create-button{float:none;padding-top:2em}.buddypress #buddypress.bp-dir-vert-nav .create-button a{margin-left:.5em}}.buddypress #buddypress.bp-dir-hori-nav .create-button{float:right}.buddypress #buddypress.bp-dir-hori-nav .create-button a,.buddypress #buddypress.bp-dir-hori-nav .create-button a:hover{background:0 0;border:0;box-shadow:none;margin:0}.buddypress-wrap button.ac-reply-cancel,.buddypress-wrap button.bp-icons{background:0 0;border:0}.buddypress-wrap button.bp-icons:focus,.buddypress-wrap button.bp-icons:hover{background:0 0}.buddypress-wrap button.ac-reply-cancel:focus,.buddypress-wrap button.ac-reply-cancel:hover{background:0 0;text-decoration:underline}.buddypress-wrap .bp-invites-content li .invite-button span.icons:before,.buddypress-wrap .bp-invites-filters .invite-button span.icons:before,.buddypress-wrap .bp-messages-filters li a.messages-button:before,.buddypress-wrap .feed a:before,.buddypress-wrap .filter label:before{font-family:dashicons;font-size:18px}.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:27px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:32px}}.buddypress-wrap .bp-list a.button.invite-button:focus,.buddypress-wrap .bp-list a.button.invite-button:hover{background:0 0}.buddypress-wrap .filter label:before{content:"\f536"}.buddypress-wrap div.feed a:before,.buddypress-wrap li.feed a:before{content:"\f303"}.buddypress-wrap ul.item-list li .invite-button:not(.group-remove-invite-button) span.icons:before{content:"\f502"}.buddypress-wrap ul.item-list li .group-remove-invite-button span.icons:before,.buddypress-wrap ul.item-list li.selected .invite-button span.icons:before{content:"\f153"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-next-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-next-page:before{content:"\f345"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-prev-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-prev-page:before{content:"\f341"}.buddypress-wrap .warn{color:#b71717}.buddypress-wrap .bp-messages{border:1px solid #ccc;margin:0 0 15px}.buddypress-wrap .bp-messages .sitewide-notices{display:block;margin:5px;padding:.5em}.buddypress-wrap .bp-messages.info{margin-bottom:0}.buddypress-wrap .bp-messages.updated{clear:both;display:block}.buddypress-wrap .bp-messages.bp-user-messages-feedback{border:0}.buddypress-wrap #group-create-body .bp-cover-image-status p.warning{background:#0b80a4;border:0;box-shadow:0 0 3px 0 rgba(0,0,0,.2);color:#fff}.buddypress-wrap .bp-feedback:not(.custom-homepage-info){display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;align-items:stretch}.buddypress-wrap .bp-feedback{background:#fff;color:#807f7f;box-shadow:0 1px 1px 1px rgba(0,0,0,.1);color:#737373;margin:10px 0;position:relative}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback span.bp-icon{color:#fff;display:block;font-family:dashicons;right:0;margin-left:10px;position:relative;padding:0 .5em}.buddypress-wrap .bp-feedback .bp-help-text{font-style:italic}.buddypress-wrap .bp-feedback .text{font-size:14px;margin:0;padding:.5em 0}.buddypress-wrap .bp-feedback.no-icon{padding:.5em}.buddypress-wrap .bp-feedback.small:before{line-height:inherit}.buddypress-wrap a[data-bp-close] span:before,.buddypress-wrap button[data-bp-close] span:before{font-size:32px}.buddypress-wrap a[data-bp-close],.buddypress-wrap button[data-bp-close]{border:0;position:absolute;top:10px;left:10px;width:32px}.buddypress-wrap .bp-feedback.no-icon a[data-bp-close],.buddypress-wrap .bp-feedback.no-icon button[data-bp-close]{top:-6px;left:6px}.buddypress-wrap button[data-bp-close]:hover{background-color:transparent}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback .bp-icon{font-size:20px;padding:0 2px}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon,.buddypress-wrap .bp-feedback.loading .bp-icon,.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{display:flex;align-items:center}.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon{background-color:#0b80a4}.buddypress-wrap .bp-feedback.help .bp-icon:before,.buddypress-wrap .bp-feedback.info .bp-icon:before{content:"\f348"}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{background-color:#d33}.buddypress-wrap .bp-feedback.error .bp-icon:before,.buddypress-wrap .bp-feedback.warning .bp-icon:before{content:"\f534"}.buddypress-wrap .bp-feedback.loading .bp-icon{background-color:#ffd087}.buddypress-wrap .bp-feedback.loading .bp-icon:before{content:"\f469"}.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon{background-color:#8a2}.buddypress-wrap .bp-feedback.success .bp-icon:before,.buddypress-wrap .bp-feedback.updated .bp-icon:before{content:"\f147"}.buddypress-wrap .bp-feedback.help .bp-icon:before{content:"\f468"}.buddypress-wrap #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;font-weight:700;margin:10px 0 10px 0;padding:.5em;text-align:center;width:auto}.buddypress-wrap #pass-strength-result.show{display:block}.buddypress-wrap #pass-strength-result.mismatch{background-color:#333;border-color:transparent;color:#fff}.buddypress-wrap #pass-strength-result.bad,.buddypress-wrap #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c;color:#fff}.buddypress-wrap #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040;color:#fff}.buddypress-wrap #pass-strength-result.strong{background-color:#66d66e;border-color:#438c48;color:#fff}.buddypress-wrap .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px 0;padding:.5em;width:90%}.buddypress-wrap .accept,.buddypress-wrap .reject{float:right;margin-right:10px}.buddypress-wrap .members-list.grid .bp-ajax-message{background:rgba(255,255,255,.9);border:1px solid #eee;font-size:14px;right:2%;position:absolute;padding:.5em 1em;left:2%;top:30px}.buddypress.widget .item-options{font-size:12px;margin:0 0 1em;padding:1em 0}.buddypress.widget .bp-login-widget-user-avatar{float:right}.buddypress.widget .bp-login-widget-user-links{margin-right:70px}.buddypress.widget ul.item-list{list-style:none;margin:10px 0}.buddypress.widget ul.activity-list{padding:0}.buddypress.widget ul.activity-list blockquote{margin:0 0 1.5em;overflow:visible;padding:0 .75em .75em 0}.buddypress.widget ul.activity-list img{margin-bottom:.5em}.buddypress.widget ul.activity-list li{border-bottom:1px solid #ccc;margin-bottom:1em}.buddypress.widget ul.activity-list li .activity-header p{margin-bottom:.5em}.buddypress.widget ul.activity-list li:last-child{border-bottom:0}.buddypress.widget .avatar-block{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}.buddypress.widget .avatar-block img{margin:.5em}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#friends-list li:before,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#groups-list li:before,.buddypress.widget ul#members-list li:after,.buddypress.widget ul#members-list li:before{content:" ";display:table}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#members-list li:after{clear:both}.buddypress.widget ul#friends-list li,.buddypress.widget ul#groups-list li,.buddypress.widget ul#members-list li{margin-bottom:1em}.buddypress.widget ul#friends-list li .item-avatar,.buddypress.widget ul#groups-list li .item-avatar,.buddypress.widget ul#members-list li .item-avatar{float:right;width:60px}.buddypress.widget ul#friends-list li .item,.buddypress.widget ul#groups-list li .item,.buddypress.widget ul#members-list li .item{margin-right:70px}.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:column nowrap;flex-flow:column nowrap}@media screen and (min-width:32em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{border:1px solid #eee;align-items:stretch;-moz-flex:1 1 46%;-o-flex:1 1 46%;flex:1 1 46%;margin:2%}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 20%;-o-flex:0 1 20%;flex:0 1 20%}}.buddypress-wrap .buddypress.widget ul#friends-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#groups-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#members-list li .item-avatar{padding:.5em;text-align:center}.buddypress-wrap .buddypress.widget ul#friends-list li .item,.buddypress-wrap .buddypress.widget ul#groups-list li .item,.buddypress-wrap .buddypress.widget ul#members-list li .item{padding:.5em}.buddypress-wrap .buddypress.widget ul#friends-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#groups-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#members-list li .item .item-meta{font-size:12px;overflow-wrap:break-word}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{margin:10px -2%;width:100%}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 auto;-o-flex:0 1 auto;flex:0 1 auto;margin:10px 2% 1%;width:46%}}.buddypress-wrap .buddypress.widget blockquote{margin:0 0 1.5em;overflow:visible;padding:0 .75em .75em 0}#buddypress-wrap *{transition:opacity .1s ease-in-out .1s}#buddypress-wrap a.button,#buddypress-wrap a.generic-button,#buddypress-wrap button,#buddypress-wrap input[type=reset],#buddypress-wrap input[type=submit]{transition:background .1s ease-in-out .1s,color .1s ease-in-out .1s,border-color .1s ease-in-out .1s}.buddypress-wrap a.loading,.buddypress-wrap input.loading{animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@keyframes loader-pulsate{from{border-color:#aaa;box-shadow:0 0 6px #ccc}to{border-color:#ccc;box-shadow:0 0 6px #f8f8f8}}.buddypress-wrap a.loading:hover,.buddypress-wrap input.loading:hover{color:#777}[data-bp-tooltip]{position:relative}[data-bp-tooltip]:after{background-color:#fff;display:none;opacity:0;position:absolute;transform:translate3d(0,0,0);visibility:hidden}[data-bp-tooltip]:after{border:1px solid #737373;border-radius:1px;box-shadow:-4px 4px 8px rgba(0,0,0,.2);color:#333;content:attr(data-bp-tooltip);font-family:"Helvetica Neue",helvetica,arial,san-serif;font-size:12px;font-weight:400;letter-spacing:normal;line-height:1.25;max-width:200px;padding:5px 8px;pointer-events:none;text-shadow:none;text-transform:none;transition:all 1.5s ease;white-space:nowrap;word-wrap:break-word;z-index:100000}[data-bp-tooltip]:active:after,[data-bp-tooltip]:focus:after,[data-bp-tooltip]:hover:after{display:block;opacity:1;overflow:visible;visibility:visible}[data-bp-tooltip=""]{display:none;opacity:0;visibility:hidden}.bp-tooltip:after{right:50%;margin-top:7px;top:110%;transform:translate(50%,0)}.user-list .bp-tooltip:after{right:0;transform:translate(0,0)}@media screen and (min-width:46.8em){.user-list .bp-tooltip:after{right:auto;left:0;transform:translate(0,0)}}.activity-list .bp-tooltip:after,.activity-meta-action .bp-tooltip:after,.avatar-block .item-avatar .bp-tooltip:after,.notification-actions .bp-tooltip:after,.participants-list .bp-tooltip:after{right:0;transform:translate(0,0)}.bp-invites-content .bp-tooltip:after,.message-metadata .actions .bp-tooltip:after,.single-message-thread-header .actions .bp-tooltip:after{right:auto;left:0;transform:translate(0,0)}.bp-invites-content #send-invites-editor .bp-tooltip:after{right:0;left:auto}#item-body,.single-screen-navs{box-sizing:border-box}.grid>li,.grid>li .generic-button a{box-sizing:border-box}.grid>li{border-bottom:0;padding-bottom:10px;padding-top:0}.grid>li .list-wrap{background:#fafafa;border:1px solid #eee;padding-bottom:15px;position:relative;overflow:hidden;padding-top:14px}.grid>li .list-wrap .list-title{padding:.5em}.grid>li .list-wrap .update{color:#737373;padding:.5em 2em}.grid>li .item-avatar{text-align:center}.grid>li .item-avatar .avatar{border-radius:50%;display:inline-block;width:50%}@media screen and (min-width:24em){.grid.members-list .list-wrap{min-height:340px}.grid.members-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.members-group-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.groups-list .list-wrap{min-height:470px}.grid.groups-list .list-wrap .item-block{min-height:6rem}.grid.groups-list .list-wrap .group-desc{margin:15px auto 0;min-height:5em;overflow:hidden}.grid.groups-list .list-wrap .group-details,.grid.groups-list .list-wrap .item-desc,.grid.groups-list .list-wrap .last-activity{margin-bottom:0}.grid.groups-list .list-wrap .group-details p,.grid.groups-list .list-wrap .item-desc p,.grid.groups-list .list-wrap .last-activity p{margin-bottom:0}.grid.blogs-list .list-wrap{min-height:350px}.grid.blogs-list .list-wrap .item-block{margin:0 auto;min-height:7rem}}@media screen and (min-width:24em){.grid>li.item-entry{float:right;margin:0}.grid.two>li{padding-bottom:20px}}@media screen and (min-width:24em) and (min-width:75em){.grid.two>li .list-wrap{max-width:500px;margin:0 auto}}@media screen and (min-width:24em){.grid.three>li,.grid.two>li{width:50%}.grid.three>li:nth-child(odd),.grid.two>li:nth-child(odd){padding-left:10px}.grid.three>li:nth-child(even),.grid.two>li:nth-child(even){padding-right:10px}.grid.three>li .item,.grid.two>li .item{margin:1rem auto 0;width:80%}.grid.three>li .item .item-title,.grid.two>li .item .item-title{width:auto}}@media screen and (min-width:46.8em){.grid.three>li{padding-top:0;width:33.333333%;width:calc(100% / 3)}.grid.three>li:nth-child(1n+1){padding-right:5px;padding-left:5px}.grid.three>li:nth-child(3n+3){padding-right:5px;padding-left:0}.grid.three>li:nth-child(3n+1){padding-right:0;padding-left:5px}}@media screen and (min-width:46.8em){.grid.four>li{width:25%}.grid.four>li:nth-child(1n+1){padding-right:5px;padding-left:5px}.grid.four>li:nth-child(4n+4){padding-right:5px;padding-left:0}.grid.four>li:nth-child(4n+1){padding-right:0;padding-left:5px}}.buddypress-wrap .grid.bp-list{padding-top:1em}.buddypress-wrap .grid.bp-list>li{border-bottom:none}.buddypress-wrap .grid.bp-list>li .list-wrap{padding-bottom:3em}.buddypress-wrap .grid.bp-list>li .item-avatar{margin:0;text-align:center;width:auto}.buddypress-wrap .grid.bp-list>li .item-avatar img.avatar{display:inline-block;height:auto;width:50%}.buddypress-wrap .grid.bp-list>li .item-meta,.buddypress-wrap .grid.bp-list>li .list-title{float:none;text-align:center}.buddypress-wrap .grid.bp-list>li .list-title{font-size:inherit;line-height:1.1}.buddypress-wrap .grid.bp-list>li .item{font-size:18px;right:0;margin:0 auto;text-align:center;width:96%}@media screen and (min-width:46.8em){.buddypress-wrap .grid.bp-list>li .item{font-size:22px}}.buddypress-wrap .grid.bp-list>li .item .group-desc,.buddypress-wrap .grid.bp-list>li .item .item-block{float:none;width:96%}.buddypress-wrap .grid.bp-list>li .item .item-block{margin-bottom:10px}.buddypress-wrap .grid.bp-list>li .item .last-activity{margin-top:5px}.buddypress-wrap .grid.bp-list>li .item .group-desc{clear:none}.buddypress-wrap .grid.bp-list>li .item .user-update{clear:both;text-align:right}.buddypress-wrap .grid.bp-list>li .item .activity-read-more a{display:inline}.buddypress-wrap .grid.bp-list>li .action{bottom:5px;float:none;height:auto;right:0;margin:0;padding:0 5px;position:absolute;text-align:center;top:auto;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button{float:none;margin:5px 0 0;text-align:center;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button a,.buddypress-wrap .grid.bp-list>li .action .generic-button button{width:100%}.buddypress-wrap .grid.bp-list>li .avatar,.buddypress-wrap .grid.bp-list>li .item,.buddypress-wrap .grid.bp-list>li .item-avatar{float:none}.buddypress-wrap .blogs-list.grid.two>li .blogs-title{min-height:5em}.buddypress-wrap .grid.four>li .group-desc,.buddypress-wrap .grid.three>li .group-desc{min-height:8em}.buddypress-wrap .blogs-list.grid.four>li,.buddypress-wrap .blogs-list.grid.three>li{min-height:350px}.buddypress-wrap .blogs-list.grid.four>li .last-activity,.buddypress-wrap .blogs-list.grid.three>li .last-activity{margin-bottom:0}.buddypress-wrap .blogs-list.grid.four>li .last-post,.buddypress-wrap .blogs-list.grid.three>li .last-post{margin-top:0}.buddypress:not(.logged-in) .grid.bp-list .list-wrap{padding-bottom:5px}.buddypress:not(.logged-in) .grid.groups-list .list-wrap{min-height:430px}.buddypress:not(.logged-in) .grid.members-list .list-wrap{min-height:300px}.buddypress:not(.logged-in) .grid.blogs-list .list-wrap{min-height:320px}@media screen and (min-width:46.8em){.bp-single-vert-nav .bp-navs.vertical{overflow:visible}.bp-single-vert-nav .bp-navs.vertical ul{border-left:1px solid #d6d6d6;border-bottom:0;float:right;margin-left:-1px;width:25%}.bp-single-vert-nav .bp-navs.vertical li{float:none;margin-left:0}.bp-single-vert-nav .bp-navs.vertical li.selected a{background:#ccc;color:#333}.bp-single-vert-nav .bp-navs.vertical li:focus,.bp-single-vert-nav .bp-navs.vertical li:hover{background:#ccc}.bp-single-vert-nav .bp-navs.vertical li span{background:#d6d6d6;border-radius:10%;float:left;margin-left:2px}.bp-single-vert-nav .bp-navs.vertical li:hover span{border-color:#eaeaea}.bp-single-vert-nav .bp-navs.vertical.tabbed-links li.selected a{padding-right:0}.bp-single-vert-nav .bp-wrap{margin-bottom:15px}.bp-single-vert-nav .bp-wrap .group-nav-tabs.groups-nav ul li,.bp-single-vert-nav .bp-wrap .user-nav-tabs.users-nav ul li{right:1px;position:relative}.bp-single-vert-nav .item-body:not(#group-create-body){background:#fff;border-right:1px solid #d6d6d6;float:left;margin:0;min-height:400px;padding:0 1em 0 0;width:calc(75% + 1px)}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links){background:#eaeaea;margin:0 -5px 0 0;width:auto}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li{font-size:16px;margin:10px 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a{border-left:1px solid #ccc;padding:0 .5em}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:focus,.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:hover{background:0 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li.current a{background:0 0;color:#333;text-decoration:underline}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li:last-child a{border:none}.bp-dir-vert-nav .dir-navs{float:right;right:1px;position:relative;width:20%}.bp-dir-vert-nav .dir-navs ul li{float:none;overflow:hidden;width:auto}.bp-dir-vert-nav .dir-navs ul li.selected{border:1px solid #eee}.bp-dir-vert-nav .dir-navs ul li.selected a{background:#555;color:#fff}.bp-dir-vert-nav .dir-navs ul li.selected a span{background:#eaeaea;border-color:#ccc;color:#5087e5}.bp-dir-vert-nav .dir-navs ul li a:focus,.bp-dir-vert-nav .dir-navs ul li a:hover{background:#ccc;color:#333}.bp-dir-vert-nav .dir-navs ul li a:focus span,.bp-dir-vert-nav .dir-navs ul li a:hover span{border:1px solid #555}.bp-dir-vert-nav .screen-content{border-right:1px solid #d6d6d6;margin-right:20%;overflow:hidden;padding:0 1em 2em 0}.bp-dir-vert-nav .screen-content .subnav-filters{margin-top:0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:hover{background:0 0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected{background:0 0;border:1px solid #d6d6d6;border-left-color:#fff}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a{background:0 0;color:#333;font-weight:600}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a span{background:#555;border:1px solid #d6d6d6;color:#fff}}
\ No newline at end of file
+body #buddypress * a{box-shadow:none;text-decoration:none}body #buddypress div,body #buddypress dl,body #buddypress input[type=reset],body #buddypress input[type=search],body #buddypress input[type=submit],body #buddypress li,body #buddypress select,body #buddypress textarea{border-radius:2px;background-clip:padding-box}body #buddypress #item-body blockquote,body #buddypress .bp-lists blockquote{margin-right:0}body #buddypress .bp-list .action{box-sizing:border-box}@media screen and (min-width:46.8em){body.buddypress .entry-content,body.buddypress .entry-header,body.buddypress .site-content .entry-header{max-width:none}body.buddypress .entry-header{float:none;max-width:none}body.buddypress .entry .entry-content>*,body.buddypress .entry-content{float:none;max-width:none}body.buddypress .site-content{padding-top:2.5em}body.buddypress #page #primary{max-width:none}body.buddypress #page #primary .entry-content,body.buddypress #page #primary .entry-header{float:none;width:auto}}body.buddypress .buddypress-wrap h1,body.buddypress .buddypress-wrap h2,body.buddypress .buddypress-wrap h3,body.buddypress .buddypress-wrap h4,body.buddypress .buddypress-wrap h5,body.buddypress .buddypress-wrap h6{clear:none;margin:1em 0;padding:0}body.buddypress .buddypress-wrap h2:before{display:none}.bp-wrap:after,.bp-wrap:before{content:" ";display:table}.bp-wrap:after{clear:both}.buddypress-wrap.round-avatars .avatar{border-radius:50%}body.buddypress article.page>.entry-header{margin-bottom:2em;padding:0}body.buddypress article.page>.entry-header .entry-title{font-size:28px;font-weight:inherit;color:#767676}@media screen and (min-width:46.8em){body.buddypress article.page>.entry-header .entry-title{font-size:34px}}.buddypress-wrap dt.section-title{font-size:18px}@media screen and (min-width:46.8em){.buddypress-wrap dt.section-title{font-size:22px}}.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:16px}}.buddypress-wrap .activity-header{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-header{font-size:16px}}.buddypress-wrap .activity-inner{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-inner{font-size:18px}}.buddypress-wrap #whats-new-post-in{font-size:16px}.buddypress-wrap .acomment-meta,.buddypress-wrap .mini .activity-header{font-size:16px}.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:16px}}.buddypress-wrap .bp-tables-user th{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user th{font-size:16px}}.buddypress-wrap .bp-tables-user td{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user td{font-size:14px}}.buddypress-wrap .profile-fields th{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields th{font-size:18px}}.buddypress-wrap .profile-fields td{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields td{font-size:16px}}.buddypress-wrap #notification-select{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap #notification-select{font-size:14px}}.bp-navs{background:0 0;clear:both;overflow:hidden}.bp-navs ul{margin:0;padding:0}.bp-navs ul li{list-style:none;margin:0}.bp-navs ul li.last select{max-width:185px}.bp-navs ul li a,.bp-navs ul li span{border:0;display:block;padding:5px 10px;text-decoration:none}.bp-navs ul li .count{background:#eaeaea;border:1px solid #ccc;border-radius:50%;color:#555;display:inline;font-size:12px;margin-right:2px;padding:3px 6px;text-align:center;vertical-align:middle}.bp-navs ul li.current a,.bp-navs ul li.selected a{color:#333;opacity:1}.bp-navs.bp-invites-filters ul li a,.bp-navs.bp-messages-filters ul li a{border:1px solid #ccc;display:inline-block}.main-navs.dir-navs{margin-bottom:20px}.buddypress-wrap .bp-navs li a:hover a .count,.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count{background-color:#ccc}.buddypress-wrap .bp-navs li:not(.current) a:focus,.buddypress-wrap .bp-navs li:not(.current) a:hover,.buddypress-wrap .bp-navs li:not(.selected) a:focus,.buddypress-wrap .bp-navs li:not(.selected) a:hover{background:#ccc;color:#333}.buddypress-wrap .bp-navs li.current a,.buddypress-wrap .bp-navs li.current a:focus,.buddypress-wrap .bp-navs li.current a:hover,.buddypress-wrap .bp-navs li.selected a,.buddypress-wrap .bp-navs li.selected a:focus,.buddypress-wrap .bp-navs li.selected a:hover{background:#555;color:#fafafa}@media screen and (min-width:46.8em){.buddypress-wrap .main-navs:not(.dir-navs) li.current a,.buddypress-wrap .main-navs:not(.dir-navs) li.selected a{background:#fff;color:#333;font-weight:600}.buddypress-wrap .main-navs.vertical li.current a,.buddypress-wrap .main-navs.vertical li.selected a{background:#555;color:#fafafa;text-decoration:none}.buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links){border-bottom:1px solid #eee;border-top:1px solid #eee;box-shadow:0 2px 12px 0 #fafafa}}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.selected a{background:#fff;color:#333;font-weight:600}@media screen and (max-width:46.8em){.buddypress-wrap:not(.bp-single-vert-nav) .bp-navs li{background:#eaeaea}}.buddypress-wrap:not(.bp-single-vert-nav) .main-navs>ul>li>a{padding:.5em calc(.5em + 2px)}.buddypress-wrap:not(.bp-single-vert-nav) .group-subnav#subsubnav,.buddypress-wrap:not(.bp-single-vert-nav) .user-subnav#subsubnav{background:0 0}.buddypress-wrap .bp-subnavs,.buddypress-wrap ul.subnav{width:100%}.buddypress-wrap .bp-subnavs{margin:10px 0;overflow:hidden}.buddypress-wrap .bp-subnavs ul li{margin-top:0}.buddypress-wrap .bp-subnavs ul li.current :focus,.buddypress-wrap .bp-subnavs ul li.current :hover,.buddypress-wrap .bp-subnavs ul li.selected :focus,.buddypress-wrap .bp-subnavs ul li.selected :hover{background:0 0;color:#333}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap .bp-navs.bp-invites-filters#subsubnav ul li.last,.buddypress-wrap .bp-navs.bp-invites-nav#subnav ul li.last,.buddypress-wrap .bp-navs.bp-messages-filters#subsubnav ul li.last{margin-top:0}@media screen and (max-width:46.8em){.buddypress-wrap .single-screen-navs{border:1px solid #eee}.buddypress-wrap .single-screen-navs li{border-bottom:1px solid #eee}.buddypress-wrap .single-screen-navs li:last-child{border-bottom:none}.buddypress-wrap .bp-subnavs li a{font-size:14px}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.current a:focus,.buddypress-wrap .bp-subnavs li.current a:hover,.buddypress-wrap .bp-subnavs li.selected a,.buddypress-wrap .bp-subnavs li.selected a:focus,.buddypress-wrap .bp-subnavs li.selected a:hover{background:#555;color:#fff}}.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count,.buddypress_object_nav .bp-navs li.current a .count,.buddypress_object_nav .bp-navs li.selected a .count{background-color:#fff}.buddypress-wrap .bp-navs li.dynamic a .count,.buddypress-wrap .bp-navs li.dynamic.current a .count,.buddypress-wrap .bp-navs li.dynamic.selected a .count,.buddypress_object_nav .bp-navs li.dynamic a .count,.buddypress_object_nav .bp-navs li.dynamic.current a .count,.buddypress_object_nav .bp-navs li.dynamic.selected a .count{background-color:#5087e5;border:0;color:#fafafa}.buddypress-wrap .bp-navs li.dynamic a:hover .count,.buddypress_object_nav .bp-navs li.dynamic a:hover .count{background-color:#5087e5;border:0;color:#fff}.buddypress-wrap .bp-navs li a .count:empty,.buddypress_object_nav .bp-navs li a .count:empty{display:none}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current),.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current){color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:hover{background:0 0;color:#333}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li.current a,.buddypress_object_nav .bp-navs.group-create-links ul li.current a{text-align:center}@media screen and (min-width:46.8em){.buddypress-wrap .bp-navs li{float:right}.buddypress-wrap .subnav{float:right}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap #subsubnav .activity-search{float:right}.buddypress-wrap #subsubnav .filter{float:left}}.buddypress_object_nav .bp-navs li a .count{display:inline-block;float:left}@media screen and (min-width:46.8em){.bp-dir-vert-nav .bp-navs.dir-navs{background:0 0}.bp-dir-vert-nav .bp-navs.dir-navs a .count{float:left}}@media screen and (min-width:46.8em){.buddypress-wrap .tabbed-links ol,.buddypress-wrap .tabbed-links ul{border-bottom:1px solid #ccc;float:none;margin:20px 0 10px}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ol:before,.buddypress-wrap .tabbed-links ul:after,.buddypress-wrap .tabbed-links ul:before{content:" ";display:block}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ul:after{clear:both}.buddypress-wrap .tabbed-links ol li,.buddypress-wrap .tabbed-links ul li{float:right;list-style:none;margin:0 0 0 10px}.buddypress-wrap .tabbed-links ol li a,.buddypress-wrap .tabbed-links ol li span:not(.count),.buddypress-wrap .tabbed-links ul li a,.buddypress-wrap .tabbed-links ul li span:not(.count){background:0 0;border:none;display:block;padding:4px 10px}.buddypress-wrap .tabbed-links ol li a:focus,.buddypress-wrap .tabbed-links ol li a:hover,.buddypress-wrap .tabbed-links ul li a:focus,.buddypress-wrap .tabbed-links ul li a:hover{background:0 0}.buddypress-wrap .tabbed-links ol li:not(.current),.buddypress-wrap .tabbed-links ul li:not(.current){margin-bottom:2px}.buddypress-wrap .tabbed-links ol li.current,.buddypress-wrap .tabbed-links ul li.current{border-color:#ccc #ccc #fff;border-style:solid;border-top-right-radius:4px;border-top-left-radius:4px;border-width:1px;margin-bottom:-1px;padding:0 .5em 1px}.buddypress-wrap .tabbed-links ol li.current a,.buddypress-wrap .tabbed-links ul li.current a{background:0 0;color:#333}.buddypress-wrap .bp-subnavs.tabbed-links>ul{margin-top:0}.buddypress-wrap .bp-navs.tabbed-links{background:0 0;margin-top:2px}.buddypress-wrap .bp-navs.tabbed-links ul li a{border-left:0;font-size:inherit}.buddypress-wrap .bp-navs.tabbed-links ul li.last{float:left;margin:0}.buddypress-wrap .bp-navs.tabbed-links ul li.last a{margin-top:-.5em}.buddypress-wrap .bp-navs.tabbed-links ul li a,.buddypress-wrap .bp-navs.tabbed-links ul li a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li a:hover,.buddypress-wrap .bp-navs.tabbed-links ul li.current a,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:hover{background:0 0;border:0}.buddypress-wrap .bp-navs.tabbed-links ul li a:active,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:active{outline:0}}.buddypress-wrap .dir-component-filters .filter label{display:inline}.buddypress-wrap .subnav-filters:after,.buddypress-wrap .subnav-filters:before{content:" ";display:table}.buddypress-wrap .subnav-filters:after{clear:both}.buddypress-wrap .subnav-filters{background:0 0;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .subnav-filters div{margin:0}.buddypress-wrap .subnav-filters>ul{float:right;list-style:none}.buddypress-wrap .subnav-filters.bp-messages-filters ul{width:100%}.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:1em}@media screen and (min-width:46.8em){.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:0}}.buddypress-wrap .subnav-filters div{float:none}.buddypress-wrap .subnav-filters div input[type=search],.buddypress-wrap .subnav-filters div select{font-size:16px}.buddypress-wrap .subnav-filters div button.nouveau-search-submit{padding:5px .8em 6px}.buddypress-wrap .subnav-filters div button#user_messages_search_submit{padding:7px .8em}.buddypress-wrap .subnav-filters .component-filters{margin-top:10px}.buddypress-wrap .subnav-filters .feed{margin-left:15px}.buddypress-wrap .subnav-filters .last.filter label{display:inline}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:before{content:" ";display:table}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after{clear:both}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-show{display:inline-block}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-hide{display:none}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap{border:0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:focus,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:hover{outline:1px solid #d6d6d6}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions{float:right}.buddypress-wrap .subnav-filters .user-messages-bulk-actions label{display:inline-block;font-weight:300;margin-left:25px;padding:5px 0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions div select{-webkit-appearance:textfield}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply{border:0;border-radius:none;font-weight:400;line-height:1.8;margin:0 10px 0 0;padding:3px 5px;text-align:center;text-transform:none;width:auto}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply span{vertical-align:middle}@media screen and (min-width:32em){.buddypress-wrap .subnav-filters li{margin-bottom:0}.buddypress-wrap .subnav-filters .bp-search,.buddypress-wrap .subnav-filters .dir-search,.buddypress-wrap .subnav-filters .feed,.buddypress-wrap .subnav-filters .group-act-search,.buddypress-wrap .subnav-filters .group-invites-search,.buddypress-wrap .subnav-filters .subnav-search,.buddypress-wrap .subnav-filters .subnav-search form,.buddypress-wrap .subnav-filters .user-messages-bulk-actions,.buddypress-wrap .subnav-filters .user-messages-search{float:right}.buddypress-wrap .subnav-filters .component-filters,.buddypress-wrap .subnav-filters .last{float:left;margin-top:0;width:auto}.buddypress-wrap .subnav-filters .component-filters select,.buddypress-wrap .subnav-filters .last select{max-width:250px}.buddypress-wrap .subnav-filters .user-messages-search{float:left}}.buddypress-wrap .notifications-options-nav input#notification-bulk-manage{border:0;border-radius:0;line-height:1.6}.buddypress-wrap .group-subnav-filters .group-invites-search{margin-bottom:1em}.buddypress-wrap .group-subnav-filters .last{text-align:center}.buddypress-wrap .bp-pagination{background:0 0;border:0;color:#767676;float:right;font-size:small;margin:0;padding:.5em 0;position:relative;width:100%}.buddypress-wrap .bp-pagination .pag-count{float:right}.buddypress-wrap .bp-pagination .bp-pagination-links{float:left;margin-left:10px}.buddypress-wrap .bp-pagination .bp-pagination-links a,.buddypress-wrap .bp-pagination .bp-pagination-links span{font-size:small;padding:0 5px}.buddypress-wrap .bp-pagination .bp-pagination-links a:focus,.buddypress-wrap .bp-pagination .bp-pagination-links a:hover{opacity:1}.buddypress-wrap .bp-pagination p{margin:0}.bp-list:after,.bp-list:before{content:" ";display:table}.bp-list:after{clear:both}.bp-list{box-sizing:border-box;border-top:1px solid #eaeaea;clear:both;list-style:none;margin:20px 0;padding:.5em 0;width:100%}.bp-list li:after,.bp-list li:before{content:" ";display:table}.bp-list li:after{clear:both}.bp-list>li{border-bottom:1px solid #eaeaea}.bp-list li{list-style:none;margin:10px 0;padding:.5em 0;position:relative}.bp-list li .item-avatar{text-align:center}.bp-list li .item-avatar img.avatar{display:inline-block;width:auto;height:auto}.bp-list li .item .group-details,.bp-list li .item .item-avatar,.bp-list li .item .item-meta,.bp-list li .item .list-title{text-align:center}.bp-list li .item .list-title{clear:none;font-size:22px;font-weight:400;line-height:1.1;margin:0 auto}@media screen and (min-width:46.8em){.bp-list li .item .list-title{font-size:26px}}.bp-list li .item-meta,.bp-list li .meta{color:#737373;font-size:12px;margin-bottom:10px;margin-top:10px}.bp-list li .last-post{text-align:center}.bp-list li .action{margin:0;text-align:center}.bp-list li .action .generic-button{display:inline-block;font-size:12px;margin:0 0 0 10px}.bp-list li .action div.generic-button{margin:10px 0}@media screen and (min-width:46.8em){.bp-list li .item-avatar{float:right;margin-left:5%}.bp-list li .item{margin:0;overflow:hidden}.bp-list li .item .item-block{float:right;margin-left:2%;width:50%}.bp-list li .item .item-meta,.bp-list li .item .list-title{float:right;text-align:right}.bp-list li .item .group-details,.bp-list li .item .last-post{text-align:right}.bp-list li .group-desc,.bp-list li .last-post,.bp-list li .user-update{clear:none;overflow:hidden;width:auto}.bp-list li .action{clear:right;padding:0;text-align:right}.bp-list li .action li.generic-button{margin-left:0}.bp-list li .action div.generic-button{margin:0 0 10px}.bp-list li .generic-button{display:block;margin:0 0 5px 0}}@media screen and (min-width:32em){#activity-stream{clear:both;padding-top:1em}}.activity-list.bp-list{background:#fafafa;border:1px solid #eee}.activity-list.bp-list .activity-item{background:#fff;border:1px solid #b7b7b7;box-shadow:0 0 6px #d2d2d2;margin:20px 0}.activity-list.bp-list li:first-child{margin-top:0}.friends-list{list-style-type:none}.friends-request-list .item-title,.membership-requests-list .item-title{text-align:center}@media screen and (min-width:46.8em){.friends-request-list li,.membership-requests-list li{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap}.friends-request-list li .item,.membership-requests-list li .item{-moz-flex:1 1 auto;-o-flex:1 1 auto;flex:1 1 auto}.friends-request-list li .action,.membership-requests-list li .action{text-align:left}.friends-request-list li .item-title,.membership-requests-list li .item-title{font-size:22px;text-align:right}.friends-request-list li .item-title h3,.membership-requests-list li .item-title h3{margin:0}}#notifications-user-list{clear:both;padding-top:1em}@media screen and (min-width:46.8em){body:not(.logged-in) .bp-list .item{margin-left:0}}.activity-permalink .item-list,.activity-permalink .item-list li.activity-item{border:0}.activity-update-form{padding:10px 10px 0}.item-body .activity-update-form .activity-form{margin:0;padding:0}.activity-update-form{border:1px solid #ccc;box-shadow:inset 0 0 6px #eee;margin:15px 0}.activity-update-form #whats-new-avatar{margin:10px 0;text-align:center}.activity-update-form #whats-new-avatar img{box-shadow:none;display:inline-block;height:auto;width:auto}.activity-update-form #whats-new-content{padding:0 0 20px 0}.activity-update-form #whats-new-textarea textarea{background:#fff;box-sizing:border-box;color:#333;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}.activity-update-form #whats-new-textarea textarea:focus{box-shadow:0 0 6px 0 #d6d6d6}.activity-update-form #whats-new-post-in-box{margin:10px 0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items{list-style:none;margin:10px 0;padding-right:0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items li{margin-bottom:10px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items button.bp-remove-item{margin-right:10px;height:auto}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items #activity-autocomplete{padding:.3em;width:100%}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object{display:flex;align-items:center;padding:.2em}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object .avatar{width:30px;height:30px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object span{padding-right:10px;vertical-align:middle}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:focus,.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:hover{background:#eaeaea;cursor:pointer}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object.selected{border:1px solid #d6d6d6}.activity-update-form #whats-new-submit{margin:15px 0 10px}.activity-update-form #whats-new-submit input{font-size:14px;line-height:inherit;margin-bottom:10px;margin-left:10px;padding:.2em 0;text-align:center;width:100%}@media screen and (min-width:46.8em){.activity-update-form #whats-new-avatar{display:block;float:right;margin:0}.activity-update-form #whats-new-content,.activity-update-form #whats-new-post-in-box,.activity-update-form #whats-new-submit{margin-right:55px}.activity-update-form #whats-new-submit input{margin-bottom:0;margin-left:10px;width:8em}}.activity-list{padding:.5em}.activity-list .activity-item:after,.activity-list .activity-item:before{content:" ";display:table}.activity-list .activity-item:after{clear:both}.activity-list .activity-item{list-style:none;padding:1em}.activity-list .activity-item.has-comments{padding-bottom:1em}.activity-list .activity-item div.item-avatar{margin:0 auto;text-align:center;width:auto}.activity-list .activity-item div.item-avatar img{height:auto;max-width:40%}@media screen and (min-width:46.8em){.activity-list .activity-item div.item-avatar{margin:0 0 0 2%;text-align:right;width:15%}.activity-list .activity-item div.item-avatar img{max-width:80%}}.activity-list .activity-item.mini{font-size:13px;position:relative}.activity-list .activity-item.mini .activity-avatar{margin-right:0 auto;text-align:center;width:auto}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:15%}@media screen and (min-width:46.8em){.activity-list .activity-item.mini .activity-avatar{margin-right:15px;text-align:right;width:15%}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:60%}}.activity-list .activity-item.new_forum_post .activity-inner,.activity-list .activity-item.new_forum_topic .activity-inner{border-right:2px solid #eaeaea;margin-right:10px;padding-right:1em}.activity-list .activity-item.newest_blogs_activity,.activity-list .activity-item.newest_friends_activity,.activity-list .activity-item.newest_groups_activity,.activity-list .activity-item.newest_mentions_activity{background:rgba(31,179,221,.1)}.activity-list .activity-item .activity-inreplyto{color:#767676;font-size:13px}.activity-list .activity-item .activity-inreplyto>p{display:inline;margin:0}.activity-list .activity-item .activity-inreplyto .activity-inner,.activity-list .activity-item .activity-inreplyto blockquote{background:0 0;border:0;display:inline;margin:0;overflow:hidden;padding:0}.activity-list .activity-item .activity-header{margin:0 auto;width:80%}.activity-list .activity-item .activity-header a,.activity-list .activity-item .activity-header img{display:inline}.activity-list .activity-item .activity-header .avatar{display:inline-block;margin:0 5px;vertical-align:text-top;width:20px;height:20px}.activity-list .activity-item .activity-header .time-since{font-size:14px;color:#767676;text-decoration:none}.activity-list .activity-item .activity-header .time-since:hover{color:#767676;cursor:pointer;text-decoration:underline}.activity-list .activity-item .activity-content .activity-header,.activity-list .activity-item .activity-content .comment-header{color:#767676;margin-bottom:10px}.activity-list .activity-item .activity-content .activity-inner,.activity-list .activity-item .activity-content blockquote{background:#fafafa;margin:15px 0 10px;overflow:hidden;padding:1em}.activity-list .activity-item .activity-content p{margin:0}.activity-list .activity-item .activity-inner p{word-wrap:break-word}.activity-list .activity-item .activity-read-more{margin-right:1em;white-space:nowrap}.activity-list .activity-item ul.activity-meta{margin:0;padding-right:0}.activity-list .activity-item ul.activity-meta li{border:0;display:inline-block}.activity-list .activity-item .activity-meta.action{border:1px solid transparent;background:#fafafa;padding:2px;position:relative;text-align:right}.activity-list .activity-item .activity-meta.action div.generic-button{margin:0}.activity-list .activity-item .activity-meta.action .button{background:0 0;color:#555}.activity-list .activity-item .activity-meta.action a{padding:4px 8px}.activity-list .activity-item .activity-meta.action .button:focus,.activity-list .activity-item .activity-meta.action .button:hover{background:0 0}.activity-list .activity-item .activity-meta.action .button:before,.activity-list .activity-item .activity-meta.action .icons:before{font-family:dashicons;font-size:18px;vertical-align:middle}.activity-list .activity-item .activity-meta.action .acomment-reply.button:before{content:"\f101"}.activity-list .activity-item .activity-meta.action .view:before{content:"\f125"}.activity-list .activity-item .activity-meta.action .fav:before{content:"\f154"}.activity-list .activity-item .activity-meta.action .unfav:before{content:"\f155"}.activity-list .activity-item .activity-meta.action .delete-activity:before{content:"\f153"}.activity-list .activity-item .activity-meta.action .delete-activity:hover{color:#800}.activity-list .activity-item .activity-meta.action .button{border:0;box-shadow:none}.activity-list .activity-item .activity-meta.action .button span{background:0 0;color:#555;font-weight:700}@media screen and (min-width:46.8em){.activity-list.bp-list{padding:30px}.activity-list .activity-item .activity-content{margin:0;position:relative}.activity-list .activity-item .activity-content:after{clear:both;content:"";display:table}.activity-list .activity-item .activity-header{margin:0 0 0 15px;width:auto}}.buddypress-wrap .activity-list .load-more,.buddypress-wrap .activity-list .load-newest{background:#fafafa;border:1px solid #eee;font-size:110%;margin:15px 0;padding:0;text-align:center}.buddypress-wrap .activity-list .load-more a,.buddypress-wrap .activity-list .load-newest a{color:#555;display:block;padding:.5em 0}.buddypress-wrap .activity-list .load-more a:focus,.buddypress-wrap .activity-list .load-more a:hover,.buddypress-wrap .activity-list .load-newest a:focus,.buddypress-wrap .activity-list .load-newest a:hover{background:#fff;color:#333}.buddypress-wrap .activity-list .load-more:focus,.buddypress-wrap .activity-list .load-more:hover,.buddypress-wrap .activity-list .load-newest:focus,.buddypress-wrap .activity-list .load-newest:hover{border-color:#e1e1e1;box-shadow:0 0 6px 0 #eaeaea}body.activity-permalink .activity-list li{border-width:1px;padding:1em 0 0 0}body.activity-permalink .activity-list li:first-child{padding-top:0}body.activity-permalink .activity-list li.has-comments{padding-bottom:0}body.activity-permalink .activity-list .activity-avatar{width:auto}body.activity-permalink .activity-list .activity-avatar a{display:block}body.activity-permalink .activity-list .activity-avatar img{max-width:100%;background-color:#eaeaea}body.activity-permalink .activity-list .activity-content{border:0;font-size:100%;line-height:1.5;padding:0}body.activity-permalink .activity-list .activity-content .activity-header{margin:0;padding:.5em 0 0 0;text-align:center;width:100%}body.activity-permalink .activity-list .activity-content .activity-inner,body.activity-permalink .activity-list .activity-content blockquote{margin-right:0;margin-top:10px}body.activity-permalink .activity-list .activity-meta{margin:10px 0 10px}body.activity-permalink .activity-list .activity-comments{margin-bottom:10px}@media screen and (min-width:46.8em){body.activity-permalink .activity-list .activity-avatar{right:-20px;margin-left:0;position:relative;top:-20px}body.activity-permalink .activity-list .activity-avatar img{box-shadow:0 0 0 8px #fff}body.activity-permalink .activity-list .activity-content{margin-left:10px}body.activity-permalink .activity-list .activity-content .activity-header p{text-align:right}}.buddypress-wrap .activity-comments{clear:both;margin:0 5%;overflow:hidden;position:relative;width:auto}.buddypress-wrap .activity-comments ul{clear:both;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .activity-comments ul li{border-top:1px solid #eee;border-bottom:0;padding:1em 0 0}.buddypress-wrap .activity-comments ul li ul{margin-right:5%}.buddypress-wrap .activity-comments ul li:first-child{border-top:0}.buddypress-wrap .activity-comments ul li:last-child{margin-bottom:0}.buddypress-wrap .activity-comments div.acomment-avatar{width:auto}.buddypress-wrap .activity-comments div.acomment-avatar img{border-width:1px;float:right;height:25px;max-width:none;width:25px}.buddypress-wrap .activity-comments .acomment-content p,.buddypress-wrap .activity-comments .acomment-meta{font-size:14px}.buddypress-wrap .activity-comments .acomment-meta{color:#555;overflow:hidden;padding-right:2%}.buddypress-wrap .activity-comments .acomment-content{border-right:1px solid #ccc;margin:15px 10% 0 0;padding:.5em 1em}.buddypress-wrap .activity-comments .acomment-content p{margin-bottom:.5em}.buddypress-wrap .activity-comments .acomment-options{float:right;margin:10px 20px 10px 0}.buddypress-wrap .activity-comments .acomment-options a{color:#767676;font-size:14px}.buddypress-wrap .activity-comments .acomment-options a:focus,.buddypress-wrap .activity-comments .acomment-options a:hover{color:inherit}.buddypress-wrap .activity-comments .activity-meta.action{background:0 0;margin-top:10px}.buddypress-wrap .activity-comments .activity-meta.action button{font-size:14px;font-weight:400;text-transform:none}.buddypress-wrap .activity-comments .show-all button{font-size:14px;text-decoration:underline;padding-right:.5em}.buddypress-wrap .activity-comments .show-all button span{text-decoration:none}.buddypress-wrap .activity-comments .show-all button:focus span,.buddypress-wrap .activity-comments .show-all button:hover span{color:#5087e5}.buddypress-wrap .mini .activity-comments{clear:both;margin-top:0}body.activity-permalink .activity-comments{background:0 0;width:auto}body.activity-permalink .activity-comments>ul{padding:0 1em 0 .5em}body.activity-permalink .activity-comments ul li>ul{margin-top:10px}form.ac-form{display:none;padding:1em}form.ac-form .ac-reply-avatar{float:right}form.ac-form .ac-reply-avatar img{border:1px solid #eee}form.ac-form .ac-reply-content{color:#767676;padding-right:1em}form.ac-form .ac-reply-content a{text-decoration:none}form.ac-form .ac-reply-content .ac-textarea{margin-bottom:15px;padding:0 .5em;overflow:hidden}form.ac-form .ac-reply-content .ac-textarea textarea{background:0 0;box-shadow:none;color:#555;font-family:inherit;font-size:100%;height:60px;margin:0;outline:0;padding:.5em;width:100%}form.ac-form .ac-reply-content .ac-textarea textarea:focus{box-shadow:0 0 6px #d6d6d6}form.ac-form .ac-reply-content input{margin-top:10px}.activity-comments li form.ac-form{clear:both;margin-left:15px}.activity-comments form.root{margin-right:0}@media screen and (min-width:46.8em){.buddypress-wrap .blogs-list li .item-block{float:none;width:auto}.buddypress-wrap .blogs-list li .item-meta{clear:right;float:none}}@media screen and (min-width:46.8em){.buddypress-wrap .bp-dir-vert-nav .blogs-list .list-title{width:auto}}.buddypress-wrap .groups-list li .list-title{text-align:center}.buddypress-wrap .groups-list li .group-details{clear:right}.buddypress-wrap .groups-list li .group-desc{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;font-size:13px;color:#737373;font-style:italic;margin:10px auto 0;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .group-desc{font-size:16px}}.buddypress-wrap .groups-list li p{margin:0 0 .5em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .item{margin-left:0}.buddypress-wrap .groups-list li .item-meta,.buddypress-wrap .groups-list li .list-title{text-align:right;width:auto}.buddypress-wrap .groups-list li .item-meta{margin-bottom:20px}.buddypress-wrap .groups-list li .last-activity{clear:right;margin-top:-20px}}.buddypress-wrap .groups-list li.group-no-avatar div.group-desc{margin-right:0}.buddypress-wrap .mygroups .groups-list.grid .wrap{min-height:450px;padding-bottom:0}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list.grid.four .group-desc,.buddypress-wrap .groups-list.grid.three .group-desc{font-size:14px}}@media screen and (min-width:46.8em){.buddypress .bp-vertical-navs .groups-list .item-avatar{margin-left:3%;width:15%}}.buddypress-wrap .members-list li .member-name{margin-bottom:10px}.buddypress-wrap .members-list li .user-update{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;color:#737373;font-style:italic;font-size:13px;margin:15px auto;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .user-update{font-size:16px}}.buddypress-wrap .members-list li .user-update .activity-read-more{display:block;font-size:12px;font-style:normal;margin-top:10px;padding-right:2px}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .last-activity{clear:right;margin-top:-10px}}@media screen and (min-width:46.8em){.buddypress-wrap .members-group-list li .joined{clear:right;float:none}}@media screen and (min-width:32em){body:not(.logged-in) .members-list .user-update{width:96%}}.register-page .register-section{box-sizing:border-box}.register-page .signup-form{margin-top:20px}.register-page .signup-form .default-profile input{margin-bottom:20px}.register-page .signup-form label,.register-page .signup-form legend{margin:10px 0 0}.register-page .signup-form .editfield{margin:15px 0}.register-page .signup-form .editfield fieldset{border:0;padding:0}.register-page .signup-form .editfield fieldset legend{margin:0 0 5px;text-indent:0}.register-page .signup-form .editfield .field-visibility-settings{padding:.5em}.register-page .signup-form .editfield .field-visibility-settings fieldset{margin:0 0 10px}.register-page .signup-form #signup-avatar img{margin:0 0 10px 15px}.register-page .signup-form .wp-pwd button{vertical-align:middle}.register-page .signup-form #pass-strength-result,.register-page .signup-form #pass1,.register-page .signup-form #pass1-text{width:10em}.register-page .signup-form #pass1{display:inline-block;margin-bottom:inherit}.register-page .signup-form #pass1-text,.register-page .signup-form .pw-weak{display:none}.register-page .signup-form .show-password #pass1-text{display:inline-block;margin-bottom:inherit}.register-page .signup-form .show-password #pass1{display:none}.register-page .signup-form .description.indicator-hint{font-size:14px}.register-page .signup-form #submit:disabled{color:#767676;opacity:.4}.register-page .signup-form .password-entry,.register-page .signup-form .password-entry-confirm{border:1px solid #eee}body.buddypress.register.js .user-pass2-wrap{display:none}body.buddypress.register.no-js .wp-hide-pw{display:none}@media screen and (min-width:46.8em){.buddypress-wrap .register-page .layout-wrap{display:flex;flex-flow:row wrap;justify-content:space-around}.buddypress-wrap .register-page .layout-wrap .default-profile{flex:1;padding-left:2em}.buddypress-wrap .register-page .layout-wrap .blog-details{flex:1;padding-right:2em}.buddypress-wrap .register-page .submit{clear:both}}@media screen and (min-width:46.8em){.buddypress-wrap.extended-default-reg .register-page .default-profile{min-width:14em;flex:1;padding-left:1em}.buddypress-wrap.extended-default-reg .register-page .extended-profile{flex:2;padding-right:1em}.buddypress-wrap.extended-default-reg .register-page .blog-details{flex:1 100%}}#group-create-body{padding:.5em}#group-create-body .creation-step-name{text-align:center}#group-create-body img.avatar{width:auto;height:auto}#group-create-body .avatar-nav-items{margin-top:15px}.single-headers:after,.single-headers:before{content:" ";display:table}.single-headers:after{clear:both}.single-headers{margin-bottom:15px}.single-headers #item-header-avatar a{display:block;text-align:center}.single-headers #item-header-avatar a img{float:none;width:auto;height:auto}.single-headers div#item-header-content{float:none}@media screen and (min-width:46.8em){.single-headers #item-header-avatar a{text-align:right}.single-headers #item-header-avatar a img{float:right}.single-headers #item-header-content{padding-right:2em}}.single-headers .activity,.single-headers .group-status{display:inline}.single-headers .group-status{font-size:18px;color:#333;padding-left:1em}.single-headers .activity{display:inline-block;font-size:12px;padding:0}.single-headers #sitewide-notice p,.single-headers div#message p{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.single-headers h2{line-height:1.2;margin:0 0 5px}.single-headers h2 a{color:#767676;text-decoration:none}.single-headers h2 span.highlight{display:inline-block;font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle}.single-headers h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-size:80%;font-weight:700;margin-bottom:2px;padding:1px 4px;position:relative;left:-2px;top:-2px;vertical-align:middle}.single-headers img.avatar{float:right;margin:0 0 19px 15px}.single-headers .item-meta{color:#767676;font-size:14px;margin:15px 0 5px;padding-bottom:.5em}.single-headers ul{margin-bottom:15px}.single-headers ul li{float:left;list-style:none}.single-headers div.generic-button{text-align:center}.single-headers li.generic-button{display:inline-block;text-align:center}@media screen and (min-width:46.8em){.single-headers a.button,.single-headers div.generic-button,.single-headers li.generic-button{float:right}}.single-headers a.button,.single-headers div.generic-button{margin:10px 0 0 10px}.single-headers li.generic-button{margin:2px 10px}.single-headers li.generic-button:first-child{margin-right:0}.single-headers div#message.info{line-height:.8}body.no-js .single-item-header .js-self-profile-button{display:none}#cover-image-container{position:relative}#header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#item-header-cover-image{position:relative;z-index:2}#item-header-cover-image #item-header-avatar{padding:0 1em}.groups-header .bp-group-type-list{margin:0}.groups-header .bp-feedback{clear:both}.groups-header .group-item-actions{float:right;margin:0 15px 15px 0;padding-top:0;width:100%}.groups-header .moderators-lists{margin-top:0}.groups-header .moderators-lists .moderators-title{font-size:14px}.groups-header .moderators-lists .user-list{margin:0 0 5px}.groups-header .moderators-lists .user-list ul:after{clear:both;content:"";display:table}.groups-header .moderators-lists .user-list li{display:inline-block;float:none;margin-right:4px;padding:4px}.groups-header .moderators-lists img.avatar{box-shadow:none;float:none;height:30px;margin:0;max-width:100%;width:30px}@media screen and (min-width:46.8em){.groups-header div#item-header-content{float:right;margin-right:10%;text-align:right;padding-top:15px;width:42%}.groups-header .group-item-actions{float:left;margin:0 15px 15px 0;text-align:left;width:20%}.groups-header .groups-meta{clear:both}}.groups-header .desc-wrap{background:#eaeaea;border:1px solid #d6d6d6;margin:0 0 15px;padding:1em;text-align:center}.groups-header .desc-wrap .group-description{background:#fafafa;box-shadow:inset 0 0 9px #ccc;padding:1em;text-align:right}.groups-header .desc-wrap .group-description p{margin:0;padding:0}.bp-user .users-header .user-nicename{margin-bottom:5px}.bp-user .member-header-actions{overflow:hidden}.bp-user .member-header-actions *>*{display:block}.buddypress-wrap .item-body{margin:20px 0}.buddypress-wrap .item-body .screen-heading{font-size:20px;font-weight:400}.buddypress-wrap .item-body .button-tabs{margin:30px 0 15px;list-style:none}.buddypress-wrap.bp-single-vert-nav .bp-list:not(.grid) .item-entry{padding-right:.5em}.single-item.group-members .item-body .filters:not(.no-subnav){border-top:5px solid #eaeaea;padding-top:1em}.single-item.group-members .item-body .filters{margin-top:0}.buddypress-wrap .group-status-type ul{margin:0 20px 20px 0}.groups-manage-members-list{padding:.5em 0}.groups-manage-members-list dd{margin:0;padding:1em 0}.groups-manage-members-list .section-title{background:#eaeaea;padding-right:.3em}.groups-manage-members-list ul{list-style:none;margin-bottom:0}.groups-manage-members-list ul li{border-bottom:1px solid #eee;margin-bottom:10px;padding:.5em .3em .3em}.groups-manage-members-list ul li:last-child,.groups-manage-members-list ul li:only-child{border-bottom:0}.groups-manage-members-list ul li:nth-child(even){background:#fafafa}.groups-manage-members-list ul li.banned-user{background:#fad3d3}.groups-manage-members-list ul .member-name{margin-bottom:0;text-align:center}.groups-manage-members-list ul img{display:block;margin:0 auto;width:20%}@media screen and (min-width:32em){.groups-manage-members-list ul .member-name{text-align:right}.groups-manage-members-list ul img{display:inline;width:50px}}.groups-manage-members-list ul .members-manage-buttons:after,.groups-manage-members-list ul .members-manage-buttons:before{content:" ";display:table}.groups-manage-members-list ul .members-manage-buttons:after{clear:both}.groups-manage-members-list ul .members-manage-buttons{margin:15px 0 5px}.groups-manage-members-list ul .members-manage-buttons a.button{color:#767676;display:block;font-size:13px}@media screen and (min-width:32em){.groups-manage-members-list ul .members-manage-buttons a.button{display:inline-block}}.groups-manage-members-list ul .members-manage-buttons.text-links-list{margin-bottom:0}@media screen and (max-width:32em){.groups-manage-members-list ul .members-manage-buttons.text-links-list a.button{background:#fafafa;border:1px solid #eee;display:block;margin-bottom:10px}}.groups-manage-members-list ul .action:not(.text-links-list) a.button{font-size:12px}@media screen and (min-width:46.8em){.groups-manage-members-list ul li .avatar,.groups-manage-members-list ul li .member-name{float:right}.groups-manage-members-list ul li .avatar{margin-left:15px}.groups-manage-members-list ul li .action{clear:both;float:right}}#group-manage-members-ui #group-members-search-form button[type=submit]{float:left;font-size:inherit;font-weight:400;line-height:1.5;text-align:center;text-transform:none}#group-manage-members-ui #group-members-search-form button[type=submit] span{font-family:dashicons;font-size:18px;line-height:1.6}#group-manage-members-ui #group-members-pagination button:last-child{margin-left:2em}#group-manage-members-ui #bp-no-group-members td{border:none}.buddypress .bp-invites-content ul.item-list{border-top:0}.buddypress .bp-invites-content ul.item-list li{border:1px solid #eaeaea;margin:0 0 1%;padding-right:5px;padding-left:5px;position:relative;width:auto}.buddypress .bp-invites-content ul.item-list li .list-title{margin:0 auto;width:80%}.buddypress .bp-invites-content ul.item-list li .action{position:absolute;top:10px;left:10px}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button{border:0}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:focus,.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:hover{color:#1fb3dd}.buddypress .bp-invites-content ul.item-list li.selected{box-shadow:inset 0 0 12px 0 rgba(237,187,52,.2)}.buddypress .bp-invites-content .group-inviters li,.buddypress .bp-invites-content .item-list .item-meta span{color:#767676}.buddypress .bp-invites-content li ul.group-inviters{clear:both;margin:0}.buddypress .bp-invites-content li ul.group-inviters li{border:0;float:right;font-size:20px;width:inherit}.buddypress .bp-invites-content li .status{font-size:20px;font-style:italic;clear:both;color:#555;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul:after,.buddypress .bp-invites-content #send-invites-editor ul:before{content:" ";display:table}.buddypress .bp-invites-content #send-invites-editor ul:after{clear:both}.buddypress .bp-invites-content #send-invites-editor textarea{width:100%}.buddypress .bp-invites-content #send-invites-editor ul{clear:both;list-style:none;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul li{float:right;margin:.5%;max-height:50px;max-width:50px}.buddypress .bp-invites-content #send-invites-editor #bp-send-invites-form{clear:both;margin-top:10px}.buddypress .bp-invites-content #send-invites-editor .action{margin-top:10px;padding-top:10px}.buddypress .bp-invites-content #send-invites-editor.bp-hide{display:none}@media screen and (min-width:46.8em){.buddypress .bp-invites-content ul.item-list>li{box-sizing:border-box;border:1px solid #eaeaea;float:right;padding-right:.5em;padding-left:.5em;width:49.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(odd){margin-left:.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(even){margin-right:.5%}.buddypress .bp-invites-content ul.item-list ul.group-inviters{float:right;width:auto}}@media screen and (min-width:46.8em){:not(.vertical)+.item-body #group-invites-container{display:-ms-grid;display:grid;-ms-grid-columns:25% auto;grid-template-columns:25% auto;grid-template-areas:"group-invites-nav group-invites-column"}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav{-ms-grid-row:1;-ms-grid-column:1;grid-area:group-invites-nav}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav li{display:block;float:none}:not(.vertical)+.item-body #group-invites-container .group-invites-column{-ms-grid-row:1;-ms-grid-column:2;grid-area:group-invites-column}}.buddypress.groups .activity-update-form{margin-top:0}.buddypress-wrap .profile{margin-top:30px}.buddypress-wrap .public .profile-fields td.label{width:30%}.buddypress-wrap .profile.edit ul.button-nav{list-style:none;margin:30px 0 10px;padding-right:0}.buddypress-wrap .profile.edit ul.button-nav li{display:inline-block;margin-left:10px}.buddypress-wrap .profile.edit ul.button-nav li a{padding:.5em}.buddypress-wrap .profile.edit .editfield{background:#fafafa;border:1px solid #eee;margin:15px 0;padding:1em}.buddypress-wrap .profile.edit .editfield fieldset{border:0}.buddypress-wrap .profile.edit .editfield fieldset label{font-weight:400}.buddypress-wrap .profile.edit .editfield fieldset label.xprofile-field-label{display:inline}.buddypress-wrap .profile.edit .editfield{display:flex;flex-direction:column}.buddypress-wrap .profile.edit .editfield .description{margin-top:10px;order:2}.buddypress-wrap .profile.edit .editfield>fieldset{order:1}.buddypress-wrap .profile.edit .editfield .field-visibility-settings,.buddypress-wrap .profile.edit .editfield .field-visibility-settings-toggle{order:3}body.no-js .buddypress-wrap .field-visibility-settings-close,body.no-js .buddypress-wrap .field-visibility-settings-toggle{display:none}body.no-js .buddypress-wrap .field-visibility-settings{display:block}.buddypress-wrap .field-visibility-settings{margin:10px 0}.buddypress-wrap .current-visibility-level{font-style:normal;font-weight:700}.buddypress-wrap .field-visibility-settings,.buddypress-wrap .field-visibility-settings-header{color:#737373}.buddypress-wrap .field-visibility-settings fieldset{margin:5px 0}.buddypress-wrap .standard-form .editfield fieldset{margin:0}.buddypress-wrap .standard-form .field-visibility-settings label{font-weight:400;margin:0}.buddypress-wrap .standard-form .field-visibility-settings .radio{list-style:none;margin-bottom:0}.buddypress-wrap .standard-form .field-visibility-settings .field-visibility-settings-close{font-size:12px}.buddypress-wrap .standard-form .wp-editor-container{border:1px solid #dedede}.buddypress-wrap .standard-form .wp-editor-container textarea{background:#fff;width:100%}.buddypress-wrap .standard-form .description{background:#fafafa;font-size:inherit}.buddypress-wrap .standard-form .field-visibility-settings legend,.buddypress-wrap .standard-form .field-visibility-settings-header{font-style:italic}.buddypress-wrap .standard-form .field-visibility-settings-header{font-size:14px}.buddypress-wrap .standard-form .field-visibility-settings label,.buddypress-wrap .standard-form .field-visibility-settings legend{font-size:14px}.buddypress-wrap .standard-form .field-visibility select{margin:0}.buddypress-wrap .html-active button.switch-html{background:#f5f5f5;border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.buddypress-wrap .tmce-active button.switch-tmce{background:#f5f5f5;border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.buddypress-wrap .profile.public .profile-group-title{border-bottom:1px solid #ccc}body.register .buddypress-wrap .page ul{list-style:none}.buddypress-wrap .profile .bp-avatar-nav{margin-top:20px}.message-action-delete:before,.message-action-star:before,.message-action-unstar:before,.message-action-view:before{font-family:dashicons;font-size:18px}.message-action-star:before{color:#aaa;content:"\f154"}.message-action-unstar:before{color:#fcdd77;content:"\f155"}.message-action-view:before{content:"\f473"}.message-action-delete:before{content:"\f153"}.message-action-delete:hover:before{color:#a00}.preview-content .actions a{text-decoration:none}.bp-messages-content{margin:15px 0}.bp-messages-content .avatar{box-shadow:none}.bp-messages-content .thread-participants{list-style:none}.bp-messages-content .thread-participants dd{margin-right:0}.bp-messages-content time{color:#737373;font-size:12px}#message-threads{border-top:1px solid #eaeaea;clear:both;list-style:none;margin:0;max-height:220px;overflow-x:hidden;overflow-y:auto;padding:0;width:100%}#message-threads li{border-bottom:1px solid #eaeaea;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;margin:0;overflow:hidden;padding:.5em 0}#message-threads li .thread-cb{display:flex;align-items:center;-moz-flex:1 2 5%;-o-flex:1 2 5%;flex:1 2 5%}#message-threads li .thread-from,#message-threads li .thread-to{-moz-flex:1 2 20%;-o-flex:1 2 20%;flex:1 2 20%}#message-threads li .thread-from img.avatar,#message-threads li .thread-to img.avatar{float:right;margin:0 0 0 10px}#message-threads li .thread-from .user-name,#message-threads li .thread-to .user-name{display:inline-block;line-height:1.1}#message-threads li .thread-from .num-recipients,#message-threads li .thread-to .num-recipients{color:#737373;font-weight:400;font-size:12px;margin:0}#message-threads li .thread-content{-moz-flex:1 2 60%;-o-flex:1 2 60%;flex:1 2 60%}#message-threads li .thread-date{-moz-flex:1 2 15%;-o-flex:1 2 15%;flex:1 2 15%}#message-threads li.selected{background-color:#fafafa}#message-threads li.selected .thread-subject .subject{color:#5087e5}#message-threads li.unread{font-weight:700}#message-threads li .thread-content .excerpt{color:#737373;font-size:12px;margin:0}#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:13px}@media screen and (min-width:46.8em){#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:16px}}#message-threads li .thread-content .thread-subject{vertical-align:top}#message-threads li .thread-content .thread-subject .excerpt{font-weight:400}#message-threads li .thread-date{padding-left:5px;text-align:left}.bp-messages-content .actions{float:left;max-width:30%;line-height:1}.bp-messages-content .actions .bp-icons:not(.bp-hide){display:inline-block;margin:0;padding:.3em .5em}.bp-messages-content .actions .bp-icons:not(.bp-hide):before{font-size:26px}.bp-messages-content #thread-preview{border:1px solid #eaeaea;margin-top:20px}.bp-messages-content #thread-preview .preview-message{overflow:hidden}.bp-messages-content #thread-preview .preview-content{margin:.5em}.bp-messages-content #thread-preview .preview-content .preview-message{background:#fafafa;margin:10px 0;padding:1em .3em .3em}.bp-messages-content #bp-message-thread-list{border-top:1px solid #eaeaea;clear:both;list-style:none;padding:1em 0 .3em}.bp-messages-content #bp-message-thread-list li{padding:.5em}.bp-messages-content #bp-message-thread-list li:nth-child(2n) .message-content{background:#fafafa}.bp-messages-content #bp-message-thread-list .message-metadata{border-bottom:1px solid #ccc;box-shadow:2px 1px 9px 0 #eee;display:table;padding:.2em;width:100%}.bp-messages-content #bp-message-thread-list .message-metadata .avatar{width:30px}.bp-messages-content #bp-message-thread-list .message-metadata .user-link{display:block;font-size:13px;float:right}@media screen and (min-width:46.8em){.bp-messages-content #bp-message-thread-list .message-metadata .user-link{font-size:16px}}.bp-messages-content #bp-message-thread-list .message-metadata time{color:#737373;font-size:12px;padding:0 .5em}.bp-messages-content #bp-message-thread-list .message-metadata button{padding:0 .3em}.bp-messages-content #bp-message-thread-list .message-metadata button:before{font-size:20px}.bp-messages-content #bp-message-thread-list .message-content{overflow:hidden;margin:1em auto 0;width:90%}.bp-messages-content #bp-message-thread-list img.avatar{float:right;margin:0 0 0 10px}.bp-messages-content #bp-message-thread-list .actions a:before{font-size:18px}.bp-messages-content form.send-reply .avatar-box{padding:.5em 0}.bp-messages-content .preview-pane-header,.bp-messages-content .single-message-thread-header{border-bottom:1px solid #eaeaea}.bp-messages-content .preview-pane-header:after,.bp-messages-content .single-message-thread-header:after{clear:both;content:"";display:table}.bp-messages-content .preview-thread-title,.bp-messages-content .single-thread-title{font-size:16px}.bp-messages-content .preview-thread-title .messages-title,.bp-messages-content .single-thread-title .messages-title{padding-right:2em}.bp-messages-content .thread-participants{float:right;margin:5px 0;width:70%}.bp-messages-content .thread-participants dd,.bp-messages-content .thread-participants ul{margin-bottom:10px}.bp-messages-content .thread-participants ul{list-style:none}.bp-messages-content .thread-participants ul:after{clear:both;content:"";display:table}.bp-messages-content .thread-participants li{float:right;margin-right:5px}.bp-messages-content .thread-participants img{width:30px;height:30px}.bp-messages-content #bp-message-thread-list li .message-content blockquote,.bp-messages-content #bp-message-thread-list li .message-content ol,.bp-messages-content #bp-message-thread-list li .message-content ul,.bp-messages-content #thread-preview .preview-message blockquote,.bp-messages-content #thread-preview .preview-message ol,.bp-messages-content #thread-preview .preview-message ul{list-style-position:inside;margin-right:0}.bp-messages-content #thread-preview:empty,.bp-messages-content ul#message-threads:empty{display:none}.bp-messages-content #bp-message-thread-header h2:first-child,.bp-messages-content #thread-preview h2:first-child{background-color:#eaeaea;color:#555;font-weight:700;margin:0;padding:.5em}.bp-messages-content #bp-message-thread-list li a.user-link,.bp-messages-content #message-threads .thread-content a{border:0;text-decoration:none}.bp-messages-content .standard-form #subject{margin-bottom:20px}div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions{margin-left:15px;max-width:42.5%}.buddypress.settings .profile-settings.bp-tables-user select{width:100%}body.buddypress.settings .wp-pwd button{vertical-align:middle}body.buddypress.settings #pass-strength-result,body.buddypress.settings #pass1,body.buddypress.settings #pass1-text{width:16em}body.buddypress.settings #pass1{display:inline-block;margin-bottom:inherit}body.buddypress.settings #pass-strength-result,body.buddypress.settings #pass1-text,body.buddypress.settings .pw-weak{display:none}body.buddypress.settings .show-password #pass1-text{display:inline-block;margin-bottom:inherit}body.buddypress.settings .show-password #pass1{display:none}body.buddypress.settings #your-profile #submit:disabled{color:#767676;opacity:.4}body.buddypress.settings.js .user-pass2-wrap,body.buddypress.settings.js .wp-pwd{display:none}body.buddypress.settings.no-js .wp-cancel-pw,body.buddypress.settings.no-js .wp-generate-pw,body.buddypress.settings.no-js .wp-hide-pw{display:none}body.buddypress.settings.data #buddypress.buddypress-wrap .item-body p a{text-decoration:underline}.buddypress-wrap #whats-new-post-in-box select,.buddypress-wrap .filter select{border:1px solid #d6d6d6}.buddypress-wrap input.action[disabled]{cursor:pointer;opacity:.4}.buddypress-wrap #notification-bulk-manage[disabled]{display:none}.buddypress-wrap fieldset legend{font-size:inherit;font-weight:600}.buddypress-wrap input[type=email]:focus,.buddypress-wrap input[type=password]:focus,.buddypress-wrap input[type=tel]:focus,.buddypress-wrap input[type=text]:focus,.buddypress-wrap input[type=url]:focus,.buddypress-wrap textarea:focus{box-shadow:0 0 8px #eaeaea}.buddypress-wrap select{height:auto}.buddypress-wrap textarea{resize:vertical}.buddypress-wrap .standard-form .bp-controls-wrap{margin:1em 0}.buddypress-wrap .standard-form .groups-members-search input[type=search],.buddypress-wrap .standard-form .groups-members-search input[type=text],.buddypress-wrap .standard-form [data-bp-search] input[type=search],.buddypress-wrap .standard-form [data-bp-search] input[type=text],.buddypress-wrap .standard-form input[type=color],.buddypress-wrap .standard-form input[type=date],.buddypress-wrap .standard-form input[type=datetime-local],.buddypress-wrap .standard-form input[type=datetime],.buddypress-wrap .standard-form input[type=email],.buddypress-wrap .standard-form input[type=month],.buddypress-wrap .standard-form input[type=number],.buddypress-wrap .standard-form input[type=password],.buddypress-wrap .standard-form input[type=range],.buddypress-wrap .standard-form input[type=search],.buddypress-wrap .standard-form input[type=tel],.buddypress-wrap .standard-form input[type=text],.buddypress-wrap .standard-form input[type=time],.buddypress-wrap .standard-form input[type=url],.buddypress-wrap .standard-form input[type=week],.buddypress-wrap .standard-form select,.buddypress-wrap .standard-form textarea{background:#fafafa;border:1px solid #d6d6d6;border-radius:0;font:inherit;font-size:100%;padding:.5em}.buddypress-wrap .standard-form input[required],.buddypress-wrap .standard-form select[required],.buddypress-wrap .standard-form textarea[required]{box-shadow:none;border-width:2px;outline:0}.buddypress-wrap .standard-form input[required]:invalid,.buddypress-wrap .standard-form select[required]:invalid,.buddypress-wrap .standard-form textarea[required]:invalid{border-color:#b71717}.buddypress-wrap .standard-form input[required]:valid,.buddypress-wrap .standard-form select[required]:valid,.buddypress-wrap .standard-form textarea[required]:valid{border-color:#91cc2c}.buddypress-wrap .standard-form input[required]:focus,.buddypress-wrap .standard-form select[required]:focus,.buddypress-wrap .standard-form textarea[required]:focus{border-color:#d6d6d6;border-width:1px}.buddypress-wrap .standard-form input.invalid[required],.buddypress-wrap .standard-form select.invalid[required],.buddypress-wrap .standard-form textarea.invalid[required]{border-color:#b71717}.buddypress-wrap .standard-form input:not(.small),.buddypress-wrap .standard-form textarea{width:100%}.buddypress-wrap .standard-form input[type=checkbox],.buddypress-wrap .standard-form input[type=radio]{margin-left:5px;width:auto}.buddypress-wrap .standard-form select{padding:3px}.buddypress-wrap .standard-form textarea{height:120px}.buddypress-wrap .standard-form textarea#message_content{height:200px}.buddypress-wrap .standard-form input[type=password]{margin-bottom:5px}.buddypress-wrap .standard-form input:focus,.buddypress-wrap .standard-form select:focus,.buddypress-wrap .standard-form textarea:focus{background:#fafafa;color:#555;outline:0}.buddypress-wrap .standard-form label,.buddypress-wrap .standard-form span.label{display:block;font-weight:600;margin:15px 0 5px;width:auto}.buddypress-wrap .standard-form a.clear-value{display:block;margin-top:5px;outline:0}.buddypress-wrap .standard-form .submit{clear:both;padding:15px 0 0}.buddypress-wrap .standard-form p.submit{margin-bottom:0}.buddypress-wrap .standard-form div.submit input{margin-left:15px}.buddypress-wrap .standard-form #invite-list label,.buddypress-wrap .standard-form p label{font-weight:400;margin:auto}.buddypress-wrap .standard-form p.description{color:#737373;margin:5px 0}.buddypress-wrap .standard-form div.checkbox label:nth-child(n+2),.buddypress-wrap .standard-form div.radio div label{color:#737373;font-size:100%;font-weight:400;margin:5px 0 0}.buddypress-wrap .standard-form#send-reply textarea{width:97.5%}.buddypress-wrap .standard-form#sidebar-login-form label{margin-top:5px}.buddypress-wrap .standard-form#sidebar-login-form input[type=password],.buddypress-wrap .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}.buddypress-wrap .standard-form.profile-edit input:focus{background:#fff}@media screen and (min-width:46.8em){.buddypress-wrap .standard-form .left-menu{float:right}.buddypress-wrap .standard-form #invite-list ul{list-style:none;margin:1%}.buddypress-wrap .standard-form #invite-list ul li{margin:0 1% 0 0}.buddypress-wrap .standard-form .main-column{margin-right:190px}.buddypress-wrap .standard-form .main-column ul#friend-list{clear:none;float:right}.buddypress-wrap .standard-form .main-column ul#friend-list h4{clear:none}}.buddypress-wrap .standard-form .bp-tables-user label{margin:0}.buddypress-wrap .signup-form label,.buddypress-wrap .signup-form legend{font-weight:400}body.no-js .buddypress #delete_inbox_messages,body.no-js .buddypress #delete_sentbox_messages,body.no-js .buddypress #message-type-select,body.no-js .buddypress #messages-bulk-management #select-all-messages,body.no-js .buddypress #notifications-bulk-management #select-all-notifications,body.no-js .buddypress label[for=message-type-select]{display:none}.buddypress-wrap .wp-editor-wrap .wp-editor-wrap button,.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=button],.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=submit],.buddypress-wrap .wp-editor-wrap a.button,.buddypress-wrap .wp-editor-wrap input[type=reset]{padding:0 8px 1px}.buddypress-wrap .select-wrap{border:1px solid #eee}.buddypress-wrap .select-wrap label{display:inline}.buddypress-wrap .select-wrap select::-ms-expand{display:none}.buddypress-wrap .select-wrap select{-moz-appearance:none;-webkit-appearance:none;-o-appearance:none;appearance:none;border:0;cursor:pointer;margin-left:-25px;padding:6px 10px 6px 25px;position:relative;text-indent:-2px;z-index:1;width:auto}.buddypress-wrap .select-wrap select,.buddypress-wrap .select-wrap select:active,.buddypress-wrap .select-wrap select:focus{background:0 0}.buddypress-wrap .select-wrap span.select-arrow{display:inline-block;position:relative;z-index:0}.buddypress-wrap .select-wrap span.select-arrow:before{color:#ccc;content:"\25BC"}.buddypress-wrap .select-wrap:focus .select-arrow:before,.buddypress-wrap .select-wrap:hover .select-arrow:before{color:#a6a6a6}.buddypress-wrap .bp-search form:focus,.buddypress-wrap .bp-search form:hover,.buddypress-wrap .select-wrap:focus,.buddypress-wrap .select-wrap:hover{border:1px solid #d5d4d4;box-shadow:inset 0 0 3px #eee}@media screen and (min-width:32em){.buddypress-wrap .notifications-options-nav .select-wrap{float:right}}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after,.buddypress-wrap .bp-messages-search-form:before{content:" ";display:table}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after{clear:both}.buddypress-wrap form#group-members-search,.buddypress-wrap form.bp-dir-search-form,.buddypress-wrap form.bp-messages-search-form,.buddypress-wrap form[data-bp-search].bp-invites-search-form{border:1px solid #eee;width:100%}.buddypress-wrap form#group-members-search label,.buddypress-wrap form.bp-dir-search-form label,.buddypress-wrap form.bp-messages-search-form label,.buddypress-wrap form[data-bp-search].bp-invites-search-form label{margin:0}.buddypress-wrap form#group-members-search button[type=submit],.buddypress-wrap form#group-members-search input[type=search],.buddypress-wrap form#group-members-search input[type=text],.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text],.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=text]{background:0 0;border:0;border-radius:0;background-clip:padding-box}.buddypress-wrap form#group-members-search input[type=search],.buddypress-wrap form#group-members-search input[type=text],.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=text]{float:right;line-height:1.5;padding:3px 10px;width:80%}.buddypress-wrap form#group-members-search button[type=submit],.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form button[type=submit],.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit]{float:left;font-size:inherit;font-weight:400;line-height:1.5;padding:3px .7em;text-align:center;text-transform:none;width:20%}.buddypress-wrap form#group-members-search button[type=submit] span,.buddypress-wrap form.bp-dir-search-form button[type=submit] span,.buddypress-wrap form.bp-messages-search-form button[type=submit] span,.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit] span{font-family:dashicons;font-size:18px;line-height:1.6}.buddypress-wrap form#group-members-search button[type=submit].bp-show,.buddypress-wrap form.bp-dir-search-form button[type=submit].bp-show,.buddypress-wrap form.bp-messages-search-form button[type=submit].bp-show,.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit].bp-show{height:auto;right:0;overflow:visible;position:static;top:0}.buddypress-wrap form#group-members-search input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.buddypress-wrap form#group-members-search input[type=search]::-webkit-search-results-button,.buddypress-wrap form#group-members-search input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search]::-webkit-search-results-decoration{display:none}.buddypress-wrap form#group-members-search:hover{border:1px solid #d5d4d4;box-shadow:inset 0 0 3px #eee}.buddypress-wrap ul.filters li form label input{line-height:1.4;padding:.1em .7em}.buddypress-wrap .current-member-type{font-style:italic}.buddypress-wrap .dir-form{clear:both}.budypress.no-js form.bp-dir-search-form button[type=submit]{height:auto;right:0;overflow:visible;position:static;top:0}.bp-user [data-bp-search] form input[type=search],.bp-user [data-bp-search] form input[type=text]{padding:6px 10px 7px}.buddypress-wrap .bp-tables-user,.buddypress-wrap table.forum,.buddypress-wrap table.wp-profile-fields{width:100%}.buddypress-wrap .bp-tables-user thead tr,.buddypress-wrap table.forum thead tr,.buddypress-wrap table.wp-profile-fields thead tr{background:0 0;border-bottom:2px solid #ccc}.buddypress-wrap .bp-tables-user tbody tr,.buddypress-wrap table.forum tbody tr,.buddypress-wrap table.wp-profile-fields tbody tr{background:#fafafa}.buddypress-wrap .bp-tables-user tr td,.buddypress-wrap .bp-tables-user tr th,.buddypress-wrap table.forum tr td,.buddypress-wrap table.forum tr th,.buddypress-wrap table.wp-profile-fields tr td,.buddypress-wrap table.wp-profile-fields tr th{padding:.5em;vertical-align:middle}.buddypress-wrap .bp-tables-user tr td.label,.buddypress-wrap table.forum tr td.label,.buddypress-wrap table.wp-profile-fields tr td.label{border-left:1px solid #eaeaea;font-weight:600;width:25%}.buddypress-wrap .bp-tables-user tr.alt td,.buddypress-wrap table.wp-profile-fields tr.alt td{background:#fafafa}.buddypress-wrap table.profile-fields .data{padding:.5em 1em}.buddypress-wrap table.profile-fields tr:last-child{border-bottom:none}.buddypress-wrap table.notifications td{padding:1em .5em}.buddypress-wrap table.notifications .bulk-select-all,.buddypress-wrap table.notifications .bulk-select-check{width:7%}.buddypress-wrap table.notifications .bulk-select-check{vertical-align:middle}.buddypress-wrap table.notifications .date,.buddypress-wrap table.notifications .notification-description,.buddypress-wrap table.notifications .notification-since,.buddypress-wrap table.notifications .title{width:39%}.buddypress-wrap table.notifications .actions,.buddypress-wrap table.notifications .notification-actions{width:15%}.buddypress-wrap table.notification-settings th.title,.buddypress-wrap table.profile-settings th.title{width:80%}.buddypress-wrap table.notifications .notification-actions a.delete,.buddypress-wrap table.notifications .notification-actions a.mark-read{display:inline-block}.buddypress-wrap table.notification-settings{margin-bottom:15px;text-align:right}.buddypress-wrap #groups-notification-settings{margin-bottom:0}.buddypress-wrap table.notification-settings td:first-child,.buddypress-wrap table.notification-settings th.icon,.buddypress-wrap table.notifications td:first-child,.buddypress-wrap table.notifications th.icon{display:none}.buddypress-wrap table.notification-settings .no,.buddypress-wrap table.notification-settings .yes{text-align:center;width:40px;vertical-align:middle}.buddypress-wrap table#message-threads{clear:both}.buddypress-wrap table#message-threads .thread-info{min-width:40%}.buddypress-wrap table#message-threads .thread-info p{margin:0}.buddypress-wrap table#message-threads .thread-info p.thread-excerpt{color:#737373;font-size:12px;margin-top:3px}.buddypress-wrap table.profile-fields{margin-bottom:20px}.buddypress-wrap table.profile-fields:last-child{margin-bottom:0}.buddypress-wrap table.profile-fields p{margin:0}.buddypress-wrap table.profile-fields p:last-child{margin-top:0}.bp-screen-reader-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-vert{display:flex;align-items:center}.bp-hide{display:none}.bp-show{height:auto;right:0;overflow:visible;position:static;top:0}.buddypress .buddypress-wrap .activity-read-more a,.buddypress .buddypress-wrap .comment-reply-link,.buddypress .buddypress-wrap .generic-button a,.buddypress .buddypress-wrap a.bp-title-button,.buddypress .buddypress-wrap a.button,.buddypress .buddypress-wrap button,.buddypress .buddypress-wrap input[type=button],.buddypress .buddypress-wrap input[type=reset],.buddypress .buddypress-wrap input[type=submit],.buddypress .buddypress-wrap ul.button-nav:not(.button-tabs) li a{background:#fff;border-color:#ccc;border-style:solid;border-width:1px;border-radius:0;color:#555;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:400;outline:0;padding:.3em .5em;text-align:center;text-decoration:none;width:auto;line-height:1}.buddypress .buddypress-wrap a.button.dashicons,.buddypress .buddypress-wrap button.dashicons{font-family:dashicons}.buddypress .buddypress-wrap .button-small[type=button]{padding:0 8px 1px}.buddypress .buddypress-wrap .activity-read-more a:focus,.buddypress .buddypress-wrap .activity-read-more a:hover,.buddypress .buddypress-wrap .button-nav li a:focus,.buddypress .buddypress-wrap .button-nav li a:hover,.buddypress .buddypress-wrap .button-nav li.current a,.buddypress .buddypress-wrap .comment-reply-link:focus,.buddypress .buddypress-wrap .comment-reply-link:hover,.buddypress .buddypress-wrap .generic-button a:focus,.buddypress .buddypress-wrap .generic-button a:hover,.buddypress .buddypress-wrap a.button:focus,.buddypress .buddypress-wrap a.button:hover,.buddypress .buddypress-wrap button:focus,.buddypress .buddypress-wrap button:hover,.buddypress .buddypress-wrap input[type=button]:focus,.buddypress .buddypress-wrap input[type=button]:hover,.buddypress .buddypress-wrap input[type=reset]:focus,.buddypress .buddypress-wrap input[type=reset]:hover,.buddypress .buddypress-wrap input[type=submit]:focus,.buddypress .buddypress-wrap input[type=submit]:hover{background:#ededed;border-color:#999;color:#333;outline:0;text-decoration:none}.buddypress .buddypress-wrap a.disabled,.buddypress .buddypress-wrap button.disabled,.buddypress .buddypress-wrap button.pending,.buddypress .buddypress-wrap div.pending a,.buddypress .buddypress-wrap input[type=button].disabled,.buddypress .buddypress-wrap input[type=button].pending,.buddypress .buddypress-wrap input[type=reset].disabled,.buddypress .buddypress-wrap input[type=reset].pending,.buddypress .buddypress-wrap input[type=submit].pending,.buddypress .buddypress-wrap input[type=submit][disabled=disabled]{border-color:#eee;color:#767676;cursor:default}.buddypress .buddypress-wrap a.disabled:hover,.buddypress .buddypress-wrap button.disabled:hover,.buddypress .buddypress-wrap button.pending:hover,.buddypress .buddypress-wrap div.pending a:hover,.buddypress .buddypress-wrap input[type=button]:hover.disabled,.buddypress .buddypress-wrap input[type=button]:hover.pending,.buddypress .buddypress-wrap input[type=reset]:hover.disabled,.buddypress .buddypress-wrap input[type=reset]:hover.pending,.buddypress .buddypress-wrap input[type=submit]:hover.disabled,.buddypress .buddypress-wrap input[type=submit]:hover.pending{border-color:#eee;color:#767676}.buddypress .buddypress-wrap button.text-button,.buddypress .buddypress-wrap input.text-button{background:0 0;border:0;box-shadow:none;color:#767676}.buddypress .buddypress-wrap button.text-button.small,.buddypress .buddypress-wrap input.text-button.small{font-size:13px}.buddypress .buddypress-wrap button.text-button:focus,.buddypress .buddypress-wrap button.text-button:hover,.buddypress .buddypress-wrap input.text-button:focus,.buddypress .buddypress-wrap input.text-button:hover{background:0 0;text-decoration:underline}.buddypress .buddypress-wrap .activity-list a.button{border:none}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover{color:#1fb3dd}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.invite-button:hover{color:#a00}.buddypress .buddypress-wrap #item-buttons:empty{display:none}.buddypress .buddypress-wrap input:disabled:focus,.buddypress .buddypress-wrap input:disabled:hover{background:0 0}.buddypress .buddypress-wrap .text-links-list a.button{background:0 0;border:none;border-left:1px solid #eee;color:#737373;display:inline-block;padding:.3em 1em}.buddypress .buddypress-wrap .text-links-list a.button:visited{color:#d6d6d6}.buddypress .buddypress-wrap .text-links-list a.button:focus,.buddypress .buddypress-wrap .text-links-list a.button:hover{color:#5087e5}.buddypress .buddypress-wrap .text-links-list a:first-child{padding-right:0}.buddypress .buddypress-wrap .text-links-list a:last-child{border-left:none}.buddypress .buddypress-wrap .bp-list.grid .action a,.buddypress .buddypress-wrap .bp-list.grid .action button{border:1px solid #ccc;display:block;margin:0}.buddypress .buddypress-wrap .bp-list.grid .action a:focus,.buddypress .buddypress-wrap .bp-list.grid .action a:hover,.buddypress .buddypress-wrap .bp-list.grid .action button:focus,.buddypress .buddypress-wrap .bp-list.grid .action button:hover{background:#ededed}.buddypress #buddypress .create-button{background:0 0;text-align:center}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{text-decoration:underline}@media screen and (min-width:46.8em){.buddypress #buddypress .create-button{float:left}}.buddypress #buddypress .create-button a{border:1px solid #ccc;border-radius:5px;background-clip:padding-box;box-shadow:inset 0 0 6px 0 #eaeaea;margin:.2em 0;width:auto}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{background:0 0;border-color:#ccc;box-shadow:inset 0 0 12px 0 #eaeaea}@media screen and (min-width:46.8em){.buddypress #buddypress.bp-dir-vert-nav .create-button{float:none;padding-top:2em}.buddypress #buddypress.bp-dir-vert-nav .create-button a{margin-left:.5em}}.buddypress #buddypress.bp-dir-hori-nav .create-button{float:right}.buddypress #buddypress.bp-dir-hori-nav .create-button a,.buddypress #buddypress.bp-dir-hori-nav .create-button a:hover{background:0 0;border:0;box-shadow:none;margin:0}.buddypress-wrap button.ac-reply-cancel,.buddypress-wrap button.bp-icons{background:0 0;border:0}.buddypress-wrap button.bp-icons:focus,.buddypress-wrap button.bp-icons:hover{background:0 0}.buddypress-wrap button.ac-reply-cancel:focus,.buddypress-wrap button.ac-reply-cancel:hover{background:0 0;text-decoration:underline}.buddypress-wrap .bp-invites-content li .invite-button span.icons:before,.buddypress-wrap .bp-invites-filters .invite-button span.icons:before,.buddypress-wrap .bp-messages-filters li a.messages-button:before,.buddypress-wrap .feed a:before,.buddypress-wrap .filter label:before{font-family:dashicons;font-size:18px}.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:27px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:32px}}.buddypress-wrap .bp-list a.button.invite-button:focus,.buddypress-wrap .bp-list a.button.invite-button:hover{background:0 0}.buddypress-wrap .filter label:before{content:"\f536"}.buddypress-wrap div.feed a:before,.buddypress-wrap li.feed a:before{content:"\f303"}.buddypress-wrap ul.item-list li .invite-button:not(.group-remove-invite-button) span.icons:before{content:"\f502"}.buddypress-wrap ul.item-list li .group-remove-invite-button span.icons:before,.buddypress-wrap ul.item-list li.selected .invite-button span.icons:before{content:"\f153"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-next-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-next-page:before{content:"\f345"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-prev-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-prev-page:before{content:"\f341"}.buddypress-wrap .warn{color:#b71717}.buddypress-wrap .bp-messages{border:1px solid #ccc;margin:0 0 15px}.buddypress-wrap .bp-messages .sitewide-notices{display:block;margin:5px;padding:.5em}.buddypress-wrap .bp-messages.info{margin-bottom:0}.buddypress-wrap .bp-messages.updated{clear:both;display:block}.buddypress-wrap .bp-messages.bp-user-messages-feedback{border:0}.buddypress-wrap #group-create-body .bp-cover-image-status p.warning{background:#0b80a4;border:0;box-shadow:0 0 3px 0 rgba(0,0,0,.2);color:#fff}.buddypress-wrap .bp-feedback:not(.custom-homepage-info){display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;align-items:stretch}.buddypress-wrap .bp-feedback{background:#fff;color:#807f7f;box-shadow:0 1px 1px 1px rgba(0,0,0,.1);color:#737373;margin:10px 0;position:relative}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback span.bp-icon{color:#fff;display:block;font-family:dashicons;right:0;margin-left:10px;position:relative;padding:0 .5em}.buddypress-wrap .bp-feedback .bp-help-text{font-style:italic}.buddypress-wrap .bp-feedback .text{font-size:14px;margin:0;padding:.5em 0}.buddypress-wrap .bp-feedback.no-icon{padding:.5em}.buddypress-wrap .bp-feedback.small:before{line-height:inherit}.buddypress-wrap a[data-bp-close] span:before,.buddypress-wrap button[data-bp-close] span:before{font-size:32px}.buddypress-wrap a[data-bp-close],.buddypress-wrap button[data-bp-close]{border:0;position:absolute;top:10px;left:10px;width:32px}.buddypress-wrap .bp-feedback.no-icon a[data-bp-close],.buddypress-wrap .bp-feedback.no-icon button[data-bp-close]{top:-6px;left:6px}.buddypress-wrap button[data-bp-close]:hover{background-color:transparent}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback .bp-icon{font-size:20px;padding:0 2px}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon,.buddypress-wrap .bp-feedback.loading .bp-icon,.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{display:flex;align-items:center}.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon{background-color:#0b80a4}.buddypress-wrap .bp-feedback.help .bp-icon:before,.buddypress-wrap .bp-feedback.info .bp-icon:before{content:"\f348"}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{background-color:#d33}.buddypress-wrap .bp-feedback.error .bp-icon:before,.buddypress-wrap .bp-feedback.warning .bp-icon:before{content:"\f534"}.buddypress-wrap .bp-feedback.loading .bp-icon{background-color:#ffd087}.buddypress-wrap .bp-feedback.loading .bp-icon:before{content:"\f469"}.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon{background-color:#8a2}.buddypress-wrap .bp-feedback.success .bp-icon:before,.buddypress-wrap .bp-feedback.updated .bp-icon:before{content:"\f147"}.buddypress-wrap .bp-feedback.help .bp-icon:before{content:"\f468"}.buddypress-wrap #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;font-weight:700;margin:10px 0 10px 0;padding:.5em;text-align:center;width:auto}.buddypress-wrap #pass-strength-result.show{display:block}.buddypress-wrap #pass-strength-result.mismatch{background-color:#333;border-color:transparent;color:#fff}.buddypress-wrap #pass-strength-result.bad,.buddypress-wrap #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c;color:#333}.buddypress-wrap #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040;color:#333}.buddypress-wrap #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0;color:#333}.buddypress-wrap #pass-strength-result.strong{background-color:#66d66e;border-color:#438c48;color:#333}.buddypress-wrap .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px 0;padding:.5em;width:90%}.buddypress-wrap .accept,.buddypress-wrap .reject{float:right;margin-right:10px}.buddypress-wrap .members-list.grid .bp-ajax-message{background:rgba(255,255,255,.9);border:1px solid #eee;font-size:14px;right:2%;position:absolute;padding:.5em 1em;left:2%;top:30px}.buddypress.widget .item-options{font-size:12px;margin:0 0 1em;padding:1em 0}.buddypress.widget .bp-login-widget-user-avatar{float:right}.buddypress.widget .bp-login-widget-user-links{margin-right:70px}.buddypress.widget ul.item-list{list-style:none;margin:10px 0}.buddypress.widget ul.activity-list{padding:0}.buddypress.widget ul.activity-list blockquote{margin:0 0 1.5em;overflow:visible;padding:0 .75em .75em 0}.buddypress.widget ul.activity-list img{margin-bottom:.5em}.buddypress.widget ul.activity-list li{border-bottom:1px solid #ccc;margin-bottom:1em}.buddypress.widget ul.activity-list li .activity-header p{margin-bottom:.5em}.buddypress.widget ul.activity-list li:last-child{border-bottom:0}.buddypress.widget .avatar-block{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}.buddypress.widget .avatar-block img{margin:.5em}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#friends-list li:before,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#groups-list li:before,.buddypress.widget ul#members-list li:after,.buddypress.widget ul#members-list li:before{content:" ";display:table}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#members-list li:after{clear:both}.buddypress.widget ul#friends-list li,.buddypress.widget ul#groups-list li,.buddypress.widget ul#members-list li{margin-bottom:1em}.buddypress.widget ul#friends-list li .item-avatar,.buddypress.widget ul#groups-list li .item-avatar,.buddypress.widget ul#members-list li .item-avatar{float:right;width:60px}.buddypress.widget ul#friends-list li .item,.buddypress.widget ul#groups-list li .item,.buddypress.widget ul#members-list li .item{margin-right:70px}.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:column nowrap;flex-flow:column nowrap}@media screen and (min-width:32em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{border:1px solid #eee;align-items:stretch;-moz-flex:1 1 46%;-o-flex:1 1 46%;flex:1 1 46%;margin:2%}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 20%;-o-flex:0 1 20%;flex:0 1 20%}}.buddypress-wrap .buddypress.widget ul#friends-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#groups-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#members-list li .item-avatar{padding:.5em;text-align:center}.buddypress-wrap .buddypress.widget ul#friends-list li .item,.buddypress-wrap .buddypress.widget ul#groups-list li .item,.buddypress-wrap .buddypress.widget ul#members-list li .item{padding:.5em}.buddypress-wrap .buddypress.widget ul#friends-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#groups-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#members-list li .item .item-meta{font-size:12px;overflow-wrap:break-word}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{margin:10px -2%;width:100%}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 auto;-o-flex:0 1 auto;flex:0 1 auto;margin:10px 2% 1%;width:46%}}.buddypress-wrap .buddypress.widget blockquote{margin:0 0 1.5em;overflow:visible;padding:0 .75em .75em 0}#buddypress-wrap *{transition:opacity .1s ease-in-out .1s}#buddypress-wrap a.button,#buddypress-wrap a.generic-button,#buddypress-wrap button,#buddypress-wrap input[type=reset],#buddypress-wrap input[type=submit]{transition:background .1s ease-in-out .1s,color .1s ease-in-out .1s,border-color .1s ease-in-out .1s}.buddypress-wrap a.loading,.buddypress-wrap input.loading{animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@keyframes loader-pulsate{from{border-color:#aaa;box-shadow:0 0 6px #ccc}to{border-color:#ccc;box-shadow:0 0 6px #f8f8f8}}.buddypress-wrap a.loading:hover,.buddypress-wrap input.loading:hover{color:#777}[data-bp-tooltip]{position:relative}[data-bp-tooltip]:after{background-color:#fff;display:none;opacity:0;position:absolute;transform:translate3d(0,0,0);visibility:hidden}[data-bp-tooltip]:after{border:1px solid #737373;border-radius:1px;box-shadow:-4px 4px 8px rgba(0,0,0,.2);color:#333;content:attr(data-bp-tooltip);font-family:"Helvetica Neue",helvetica,arial,san-serif;font-size:12px;font-weight:400;letter-spacing:normal;line-height:1.25;max-width:200px;padding:5px 8px;pointer-events:none;text-shadow:none;text-transform:none;transition:all 1.5s ease;white-space:nowrap;word-wrap:break-word;z-index:100000}[data-bp-tooltip]:active:after,[data-bp-tooltip]:focus:after,[data-bp-tooltip]:hover:after{display:block;opacity:1;overflow:visible;visibility:visible}[data-bp-tooltip=""]{display:none;opacity:0;visibility:hidden}.bp-tooltip:after{right:50%;margin-top:7px;top:110%;transform:translate(50%,0)}.user-list .bp-tooltip:after{right:0;transform:translate(0,0)}@media screen and (min-width:46.8em){.user-list .bp-tooltip:after{right:auto;left:0;transform:translate(0,0)}}.activity-list .bp-tooltip:after,.activity-meta-action .bp-tooltip:after,.avatar-block .item-avatar .bp-tooltip:after,.notification-actions .bp-tooltip:after,.participants-list .bp-tooltip:after{right:0;transform:translate(0,0)}.bp-invites-content .bp-tooltip:after,.message-metadata .actions .bp-tooltip:after,.single-message-thread-header .actions .bp-tooltip:after{right:auto;left:0;transform:translate(0,0)}.bp-invites-content #send-invites-editor .bp-tooltip:after{right:0;left:auto}#item-body,.single-screen-navs{box-sizing:border-box}.grid>li,.grid>li .generic-button a{box-sizing:border-box}.grid>li{border-bottom:0;padding-bottom:10px;padding-top:0}.grid>li .list-wrap{background:#fafafa;border:1px solid #eee;padding-bottom:15px;position:relative;overflow:hidden;padding-top:14px}.grid>li .list-wrap .list-title{padding:.5em}.grid>li .list-wrap .update{color:#737373;padding:.5em 2em}.grid>li .item-avatar{text-align:center}.grid>li .item-avatar .avatar{border-radius:50%;display:inline-block;width:50%}@media screen and (min-width:24em){.grid.members-list .list-wrap{min-height:340px}.grid.members-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.members-group-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.groups-list .list-wrap{min-height:470px}.grid.groups-list .list-wrap .item-block{min-height:6rem}.grid.groups-list .list-wrap .group-desc{margin:15px auto 0;min-height:5em;overflow:hidden}.grid.groups-list .list-wrap .group-details,.grid.groups-list .list-wrap .item-desc,.grid.groups-list .list-wrap .last-activity{margin-bottom:0}.grid.groups-list .list-wrap .group-details p,.grid.groups-list .list-wrap .item-desc p,.grid.groups-list .list-wrap .last-activity p{margin-bottom:0}.grid.blogs-list .list-wrap{min-height:350px}.grid.blogs-list .list-wrap .item-block{margin:0 auto;min-height:7rem}}@media screen and (min-width:24em){.grid>li.item-entry{float:right;margin:0}.grid.two>li{padding-bottom:20px}}@media screen and (min-width:24em) and (min-width:75em){.grid.two>li .list-wrap{max-width:500px;margin:0 auto}}@media screen and (min-width:24em){.grid.three>li,.grid.two>li{width:50%}.grid.three>li:nth-child(odd),.grid.two>li:nth-child(odd){padding-left:10px}.grid.three>li:nth-child(even),.grid.two>li:nth-child(even){padding-right:10px}.grid.three>li .item,.grid.two>li .item{margin:1rem auto 0;width:80%}.grid.three>li .item .item-title,.grid.two>li .item .item-title{width:auto}}@media screen and (min-width:46.8em){.grid.three>li{padding-top:0;width:33.333333%;width:calc(100% / 3)}.grid.three>li:nth-child(1n+1){padding-right:5px;padding-left:5px}.grid.three>li:nth-child(3n+3){padding-right:5px;padding-left:0}.grid.three>li:nth-child(3n+1){padding-right:0;padding-left:5px}}@media screen and (min-width:46.8em){.grid.four>li{width:25%}.grid.four>li:nth-child(1n+1){padding-right:5px;padding-left:5px}.grid.four>li:nth-child(4n+4){padding-right:5px;padding-left:0}.grid.four>li:nth-child(4n+1){padding-right:0;padding-left:5px}}.buddypress-wrap .grid.bp-list{padding-top:1em}.buddypress-wrap .grid.bp-list>li{border-bottom:none}.buddypress-wrap .grid.bp-list>li .list-wrap{padding-bottom:3em}.buddypress-wrap .grid.bp-list>li .item-avatar{margin:0;text-align:center;width:auto}.buddypress-wrap .grid.bp-list>li .item-avatar img.avatar{display:inline-block;height:auto;width:50%}.buddypress-wrap .grid.bp-list>li .item-meta,.buddypress-wrap .grid.bp-list>li .list-title{float:none;text-align:center}.buddypress-wrap .grid.bp-list>li .list-title{font-size:inherit;line-height:1.1}.buddypress-wrap .grid.bp-list>li .item{font-size:18px;right:0;margin:0 auto;text-align:center;width:96%}@media screen and (min-width:46.8em){.buddypress-wrap .grid.bp-list>li .item{font-size:22px}}.buddypress-wrap .grid.bp-list>li .item .group-desc,.buddypress-wrap .grid.bp-list>li .item .item-block{float:none;width:96%}.buddypress-wrap .grid.bp-list>li .item .item-block{margin-bottom:10px}.buddypress-wrap .grid.bp-list>li .item .last-activity{margin-top:5px}.buddypress-wrap .grid.bp-list>li .item .group-desc{clear:none}.buddypress-wrap .grid.bp-list>li .item .user-update{clear:both;text-align:right}.buddypress-wrap .grid.bp-list>li .item .activity-read-more a{display:inline}.buddypress-wrap .grid.bp-list>li .action{bottom:5px;float:none;height:auto;right:0;margin:0;padding:0 5px;position:absolute;text-align:center;top:auto;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button{float:none;margin:5px 0 0;text-align:center;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button a,.buddypress-wrap .grid.bp-list>li .action .generic-button button{width:100%}.buddypress-wrap .grid.bp-list>li .avatar,.buddypress-wrap .grid.bp-list>li .item,.buddypress-wrap .grid.bp-list>li .item-avatar{float:none}.buddypress-wrap .blogs-list.grid.two>li .blogs-title{min-height:5em}.buddypress-wrap .grid.four>li .group-desc,.buddypress-wrap .grid.three>li .group-desc{min-height:8em}.buddypress-wrap .blogs-list.grid.four>li,.buddypress-wrap .blogs-list.grid.three>li{min-height:350px}.buddypress-wrap .blogs-list.grid.four>li .last-activity,.buddypress-wrap .blogs-list.grid.three>li .last-activity{margin-bottom:0}.buddypress-wrap .blogs-list.grid.four>li .last-post,.buddypress-wrap .blogs-list.grid.three>li .last-post{margin-top:0}.buddypress:not(.logged-in) .grid.bp-list .list-wrap{padding-bottom:5px}.buddypress:not(.logged-in) .grid.groups-list .list-wrap{min-height:430px}.buddypress:not(.logged-in) .grid.members-list .list-wrap{min-height:300px}.buddypress:not(.logged-in) .grid.blogs-list .list-wrap{min-height:320px}@media screen and (min-width:46.8em){.bp-single-vert-nav .bp-navs.vertical{overflow:visible}.bp-single-vert-nav .bp-navs.vertical ul{border-left:1px solid #d6d6d6;border-bottom:0;float:right;margin-left:-1px;width:25%}.bp-single-vert-nav .bp-navs.vertical li{float:none;margin-left:0}.bp-single-vert-nav .bp-navs.vertical li.selected a{background:#ccc;color:#333}.bp-single-vert-nav .bp-navs.vertical li:focus,.bp-single-vert-nav .bp-navs.vertical li:hover{background:#ccc}.bp-single-vert-nav .bp-navs.vertical li span{background:#d6d6d6;border-radius:10%;float:left;margin-left:2px}.bp-single-vert-nav .bp-navs.vertical li:hover span{border-color:#eaeaea}.bp-single-vert-nav .bp-navs.vertical.tabbed-links li.selected a{padding-right:0}.bp-single-vert-nav .bp-wrap{margin-bottom:15px}.bp-single-vert-nav .bp-wrap .group-nav-tabs.groups-nav ul li,.bp-single-vert-nav .bp-wrap .user-nav-tabs.users-nav ul li{right:1px;position:relative}.bp-single-vert-nav .item-body:not(#group-create-body){background:#fff;border-right:1px solid #d6d6d6;float:left;margin:0;min-height:400px;padding:0 1em 0 0;width:calc(75% + 1px)}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links){background:#eaeaea;margin:0 -5px 0 0;width:auto}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li{font-size:16px;margin:10px 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a{border-left:1px solid #ccc;padding:0 .5em}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:focus,.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:hover{background:0 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li.current a{background:0 0;color:#333;text-decoration:underline}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li:last-child a{border:none}.bp-dir-vert-nav .dir-navs{float:right;right:1px;position:relative;width:20%}.bp-dir-vert-nav .dir-navs ul li{float:none;overflow:hidden;width:auto}.bp-dir-vert-nav .dir-navs ul li.selected{border:1px solid #eee}.bp-dir-vert-nav .dir-navs ul li.selected a{background:#555;color:#fff}.bp-dir-vert-nav .dir-navs ul li.selected a span{background:#eaeaea;border-color:#ccc;color:#5087e5}.bp-dir-vert-nav .dir-navs ul li a:focus,.bp-dir-vert-nav .dir-navs ul li a:hover{background:#ccc;color:#333}.bp-dir-vert-nav .dir-navs ul li a:focus span,.bp-dir-vert-nav .dir-navs ul li a:hover span{border:1px solid #555}.bp-dir-vert-nav .screen-content{border-right:1px solid #d6d6d6;margin-right:20%;overflow:hidden;padding:0 1em 2em 0}.bp-dir-vert-nav .screen-content .subnav-filters{margin-top:0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:hover{background:0 0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected{background:0 0;border:1px solid #d6d6d6;border-left-color:#fff}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a{background:0 0;color:#333;font-weight:600}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a span{background:#555;border:1px solid #d6d6d6;color:#fff}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.css b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.css
index 164f1fb57..e114e6877 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.css
@@ -91,7 +91,8 @@ body #buddypress .bp-list .action {
 		float: none;
 		max-width: none;
 	}
-	body.buddypress .entry-content {
+	body.buddypress .entry-content,
+	body.buddypress .entry .entry-content > * {
 		float: none;
 		max-width: none;
 	}
@@ -119,6 +120,10 @@ body.buddypress .buddypress-wrap h6 {
 	padding: 0;
 }
 
+body.buddypress .buddypress-wrap h2:before {
+	display: none;
+}
+
 /* Ensure .bp-wrap encloses it's children */
 .bp-wrap:before,
 .bp-wrap:after {
@@ -897,7 +902,9 @@ body.buddypress article.page > .entry-header .entry-title {
 }
 
 .bp-list li .item-avatar img.avatar {
-	display: inline;
+	display: inline-block;
+	width: auto;
+	height: auto;
 }
 
 .bp-list li .item .item-avatar,
@@ -1107,6 +1114,8 @@ body.buddypress article.page > .entry-header .entry-title {
 .activity-update-form #whats-new-avatar img {
 	box-shadow: none;
 	display: inline-block;
+	height: auto;
+	width: auto;
 }
 
 .activity-update-form #whats-new-content {
@@ -1136,14 +1145,21 @@ body.buddypress article.page > .entry-header .entry-title {
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items {
 	list-style: none;
 	margin: 10px 0;
+	padding-left: 0;
 }
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items li {
 	margin-bottom: 10px;
 }
 
+.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items button.bp-remove-item {
+	margin-left: 10px;
+	height: auto;
+}
+
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items #activity-autocomplete {
 	padding: 0.3em;
+	width: 100%;
 }
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object {
@@ -1154,6 +1170,7 @@ body.buddypress article.page > .entry-header .entry-title {
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object .avatar {
 	width: 30px;
+	height: 30px;
 }
 
 .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object span {
@@ -1193,7 +1210,7 @@ body.buddypress article.page > .entry-header .entry-title {
 	.activity-update-form #whats-new-content,
 	.activity-update-form #whats-new-post-in-box,
 	.activity-update-form #whats-new-submit {
-		margin-left: 8.5%;
+		margin-left: 55px;
 	}
 	.activity-update-form #whats-new-submit input {
 		margin-bottom: 0;
@@ -1325,7 +1342,9 @@ body.buddypress article.page > .entry-header .entry-title {
 .activity-list .activity-item .activity-header .avatar {
 	display: inline-block;
 	margin: 0 5px;
-	vertical-align: bottom;
+	vertical-align: text-top;
+	width: 20px;
+	height: 20px;
 }
 
 .activity-list .activity-item .activity-header .time-since {
@@ -1391,6 +1410,7 @@ body.buddypress article.page > .entry-header .entry-title {
 
 .activity-list .activity-item .activity-meta.action .button {
 	background: transparent;
+	color: #555;
 }
 
 .activity-list .activity-item .activity-meta.action a {
@@ -1517,6 +1537,7 @@ body.activity-permalink .activity-list .activity-avatar a {
 
 body.activity-permalink .activity-list .activity-avatar img {
 	max-width: 100%;
+	background-color: #eaeaea;
 }
 
 body.activity-permalink .activity-list .activity-content {
@@ -1554,6 +1575,9 @@ body.activity-permalink .activity-list .activity-comments {
 		position: relative;
 		top: -20px;
 	}
+	body.activity-permalink .activity-list .activity-avatar img {
+		box-shadow: 0 0 0 8px #fff;
+	}
 	body.activity-permalink .activity-list .activity-content {
 		margin-right: 10px;
 	}
@@ -1946,11 +1970,57 @@ form.ac-form .ac-reply-content input {
 	margin: 0 15px 10px 0;
 }
 
+.register-page .signup-form .wp-pwd button {
+	vertical-align: middle;
+}
+
+.register-page .signup-form #pass1,
+.register-page .signup-form #pass1-text,
+.register-page .signup-form #pass-strength-result {
+	width: 10em;
+}
+
+.register-page .signup-form #pass1 {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+.register-page .signup-form #pass1-text,
+.register-page .signup-form .pw-weak {
+	display: none;
+}
+
+.register-page .signup-form .show-password #pass1-text {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+.register-page .signup-form .show-password #pass1 {
+	display: none;
+}
+
+.register-page .signup-form .description.indicator-hint {
+	font-size: 14px;
+}
+
+.register-page .signup-form #submit:disabled {
+	color: #767676;
+	opacity: 0.4;
+}
+
 .register-page .signup-form .password-entry,
 .register-page .signup-form .password-entry-confirm {
 	border: 1px solid #eee;
 }
 
+body.buddypress.register.js .user-pass2-wrap {
+	display: none;
+}
+
+body.buddypress.register.no-js .wp-hide-pw {
+	display: none;
+}
+
 @media screen and (min-width: 46.8em) {
 	.buddypress-wrap .register-page .layout-wrap {
 		display: flex;
@@ -1972,6 +2042,7 @@ form.ac-form .ac-reply-content input {
 
 @media screen and (min-width: 46.8em) {
 	.buddypress-wrap.extended-default-reg .register-page .default-profile {
+		min-width: 14em;
 		flex: 1;
 		padding-right: 1em;
 	}
@@ -1997,6 +2068,11 @@ form.ac-form .ac-reply-content input {
 	text-align: center;
 }
 
+#group-create-body img.avatar {
+	width: auto;
+	height: auto;
+}
+
 #group-create-body .avatar-nav-items {
 	margin-top: 15px;
 }
@@ -2032,6 +2108,8 @@ form.ac-form .ac-reply-content input {
 
 .single-headers #item-header-avatar a img {
 	float: none;
+	width: auto;
+	height: auto;
 }
 
 .single-headers div#item-header-content {
@@ -2333,6 +2411,7 @@ body.no-js .single-item-header .js-self-profile-button {
 
 .buddypress-wrap .item-body .button-tabs {
 	margin: 30px 0 15px;
+	list-style: none;
 }
 
 .buddypress-wrap.bp-single-vert-nav .bp-list:not(.grid) .item-entry {
@@ -2480,6 +2559,29 @@ body.no-js .single-item-header .js-self-profile-button {
 	}
 }
 
+#group-manage-members-ui #group-members-search-form button[type="submit"] {
+	float: right;
+	font-size: inherit;
+	font-weight: 400;
+	line-height: 1.5;
+	text-align: center;
+	text-transform: none;
+}
+
+#group-manage-members-ui #group-members-search-form button[type="submit"] span {
+	font-family: dashicons;
+	font-size: 18px;
+	line-height: 1.6;
+}
+
+#group-manage-members-ui #group-members-pagination button:last-child {
+	margin-right: 2em;
+}
+
+#group-manage-members-ui #bp-no-group-members td {
+	border: none;
+}
+
 /**
 *-----------------------------------------
 * @subsection 5.2.1.2 - Group Members List
@@ -2538,7 +2640,6 @@ body.no-js .single-item-header .js-self-profile-button {
 .buddypress .bp-invites-content li ul.group-inviters {
 	clear: both;
 	margin: 0;
-	overflow: hidden;
 }
 
 .buddypress .bp-invites-content li ul.group-inviters li {
@@ -2676,18 +2777,19 @@ body.no-js .single-item-header .js-self-profile-button {
 	width: 30%;
 }
 
-.buddypress-wrap .profile.edit .button-nav {
+.buddypress-wrap .profile.edit ul.button-nav {
 	list-style: none;
 	margin: 30px 0 10px;
+	padding-left: 0;
 }
 
-.buddypress-wrap .profile.edit .button-nav li {
+.buddypress-wrap .profile.edit ul.button-nav li {
 	display: inline-block;
 	margin-right: 10px;
 }
 
-.buddypress-wrap .profile.edit .button-nav li a {
-	font-size: 18px;
+.buddypress-wrap .profile.edit ul.button-nav li a {
+	padding: 0.5em;
 }
 
 .buddypress-wrap .profile.edit .editfield {
@@ -3016,6 +3118,7 @@ body.register .buddypress-wrap .page ul {
 .bp-messages-content .actions {
 	float: right;
 	max-width: 30%;
+	line-height: 1;
 }
 
 .bp-messages-content .actions .bp-icons:not(.bp-hide) {
@@ -3169,6 +3272,7 @@ body.register .buddypress-wrap .page ul {
 
 .bp-messages-content .thread-participants img {
 	width: 30px;
+	height: 30px;
 }
 
 .bp-messages-content #thread-preview .preview-message ul,
@@ -3221,9 +3325,60 @@ div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions {
 }
 
 /*__ General __*/
+body.buddypress.settings .wp-pwd button {
+	vertical-align: middle;
+}
+
+body.buddypress.settings #pass1,
+body.buddypress.settings #pass1-text,
+body.buddypress.settings #pass-strength-result {
+	width: 16em;
+}
+
+body.buddypress.settings #pass1 {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+body.buddypress.settings #pass1-text,
+body.buddypress.settings .pw-weak,
+body.buddypress.settings #pass-strength-result {
+	display: none;
+}
+
+body.buddypress.settings .show-password #pass1-text {
+	display: inline-block;
+	margin-bottom: inherit;
+}
+
+body.buddypress.settings .show-password #pass1 {
+	display: none;
+}
+
+body.buddypress.settings #your-profile #submit:disabled {
+	color: #767676;
+	opacity: 0.4;
+}
+
+body.buddypress.settings.js .wp-pwd,
+body.buddypress.settings.js .user-pass2-wrap {
+	display: none;
+}
+
+body.buddypress.settings.no-js .wp-generate-pw,
+body.buddypress.settings.no-js .wp-cancel-pw,
+body.buddypress.settings.no-js .wp-hide-pw {
+	display: none;
+}
+
 /*__ Email notifications __*/
 /*__ Profile visibility __*/
 /*__ Group Invites __*/
+/*__ Data Export __*/
+body.buddypress.settings.data #buddypress.buddypress-wrap .item-body p a {
+	text-decoration: underline;
+}
+
 /**
 *-------------------------------------------------------------------------------
 * @section 6.0 - Forms  - General
@@ -3331,7 +3486,7 @@ div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions {
 	border-color: #b71717;
 }
 
-.buddypress-wrap .standard-form input:not(.button-small),
+.buddypress-wrap .standard-form input:not(.small),
 .buddypress-wrap .standard-form textarea {
 	width: 100%;
 }
@@ -3504,7 +3659,7 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 	position: relative;
 	text-indent: -2px;
 	z-index: 1;
-	width: 100%;
+	width: auto;
 }
 
 .buddypress-wrap .select-wrap select,
@@ -3560,22 +3715,16 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form,
 .buddypress-wrap form.bp-messages-search-form,
-.buddypress-wrap form.bp-invites-search-form {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form,
+.buddypress-wrap form#group-members-search {
 	border: 1px solid #eee;
 	width: 100%;
 }
 
-@media screen and (min-width: 55em) {
-	.buddypress-wrap form.bp-dir-search-form,
-	.buddypress-wrap form.bp-messages-search-form,
-	.buddypress-wrap form.bp-invites-search-form {
-		width: 15em;
-	}
-}
-
 .buddypress-wrap form.bp-dir-search-form label,
 .buddypress-wrap form.bp-messages-search-form label,
-.buddypress-wrap form.bp-invites-search-form label {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form label,
+.buddypress-wrap form#group-members-search label {
 	margin: 0;
 }
 
@@ -3585,9 +3734,12 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap form.bp-messages-search-form input[type="search"],
 .buddypress-wrap form.bp-messages-search-form input[type="text"],
 .buddypress-wrap form.bp-messages-search-form button[type="submit"],
-.buddypress-wrap form.bp-invites-search-form input[type="search"],
-.buddypress-wrap form.bp-invites-search-form input[type="text"],
-.buddypress-wrap form.bp-invites-search-form button[type="submit"] {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"],
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="text"],
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"],
+.buddypress-wrap form#group-members-search input[type="search"],
+.buddypress-wrap form#group-members-search input[type="text"],
+.buddypress-wrap form#group-members-search button[type="submit"] {
 	background: none;
 	border: 0;
 	border-radius: 0;
@@ -3598,8 +3750,10 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap form.bp-dir-search-form input[type="text"],
 .buddypress-wrap form.bp-messages-search-form input[type="search"],
 .buddypress-wrap form.bp-messages-search-form input[type="text"],
-.buddypress-wrap form.bp-invites-search-form input[type="search"],
-.buddypress-wrap form.bp-invites-search-form input[type="text"] {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"],
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="text"],
+.buddypress-wrap form#group-members-search input[type="search"],
+.buddypress-wrap form#group-members-search input[type="text"] {
 	float: left;
 	line-height: 1.5;
 	padding: 3px 10px;
@@ -3608,7 +3762,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form button[type="submit"],
 .buddypress-wrap form.bp-messages-search-form button[type="submit"],
-.buddypress-wrap form.bp-invites-search-form button[type="submit"] {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"],
+.buddypress-wrap form#group-members-search button[type="submit"] {
 	float: right;
 	font-size: inherit;
 	font-weight: 400;
@@ -3621,7 +3776,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form button[type="submit"] span,
 .buddypress-wrap form.bp-messages-search-form button[type="submit"] span,
-.buddypress-wrap form.bp-invites-search-form button[type="submit"] span {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"] span,
+.buddypress-wrap form#group-members-search button[type="submit"] span {
 	font-family: dashicons;
 	font-size: 18px;
 	line-height: 1.6;
@@ -3629,7 +3785,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form button[type="submit"].bp-show,
 .buddypress-wrap form.bp-messages-search-form button[type="submit"].bp-show,
-.buddypress-wrap form.bp-invites-search-form button[type="submit"].bp-show {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type="submit"].bp-show,
+.buddypress-wrap form#group-members-search button[type="submit"].bp-show {
 	height: auto;
 	left: 0;
 	overflow: visible;
@@ -3639,7 +3796,8 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 
 .buddypress-wrap form.bp-dir-search-form input[type="search"]::-webkit-search-cancel-button,
 .buddypress-wrap form.bp-messages-search-form input[type="search"]::-webkit-search-cancel-button,
-.buddypress-wrap form.bp-invites-search-form input[type="search"]::-webkit-search-cancel-button {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"]::-webkit-search-cancel-button,
+.buddypress-wrap form#group-members-search input[type="search"]::-webkit-search-cancel-button {
 	-webkit-appearance: searchfield-cancel-button;
 }
 
@@ -3647,11 +3805,18 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap form.bp-dir-search-form input[type="search"]::-webkit-search-results-decoration,
 .buddypress-wrap form.bp-messages-search-form input[type="search"]::-webkit-search-results-button,
 .buddypress-wrap form.bp-messages-search-form input[type="search"]::-webkit-search-results-decoration,
-.buddypress-wrap form.bp-invites-search-form input[type="search"]::-webkit-search-results-button,
-.buddypress-wrap form.bp-invites-search-form input[type="search"]::-webkit-search-results-decoration {
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"]::-webkit-search-results-button,
+.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type="search"]::-webkit-search-results-decoration,
+.buddypress-wrap form#group-members-search input[type="search"]::-webkit-search-results-button,
+.buddypress-wrap form#group-members-search input[type="search"]::-webkit-search-results-decoration {
 	display: none;
 }
 
+.buddypress-wrap form#group-members-search:hover {
+	border: 1px solid #d5d4d4;
+	box-shadow: inset 0 0 3px #eee;
+}
+
 .buddypress-wrap ul.filters li form label input {
 	line-height: 1.4;
 	padding: 0.1em 0.7em;
@@ -3883,8 +4048,10 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 	border-color: #ccc;
 	border-style: solid;
 	border-width: 1px;
+	border-radius: 0;
 	color: #555;
 	cursor: pointer;
+	font-family: inherit;
 	font-size: inherit;
 	font-weight: 400;
 	outline: none;
@@ -3892,6 +4059,12 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 	text-align: center;
 	text-decoration: none;
 	width: auto;
+	line-height: 1;
+}
+
+.buddypress .buddypress-wrap button.dashicons,
+.buddypress .buddypress-wrap a.button.dashicons {
+	font-family: dashicons;
 }
 
 .buddypress .buddypress-wrap .button-small[type="button"] {
@@ -4350,19 +4523,25 @@ body.no-js .buddypress #messages-bulk-management #select-all-messages {
 .buddypress-wrap #pass-strength-result.error, .buddypress-wrap #pass-strength-result.bad {
 	background-color: #ffb78c;
 	border-color: #ff853c;
-	color: #fff;
+	color: #333;
 }
 
 .buddypress-wrap #pass-strength-result.short {
 	background-color: #ffa0a0;
 	border-color: #f04040;
-	color: #fff;
+	color: #333;
+}
+
+.buddypress-wrap #pass-strength-result.good {
+	background-color: #ffec8b;
+	border-color: #fc0;
+	color: #333;
 }
 
 .buddypress-wrap #pass-strength-result.strong {
 	background-color: #66d66e;
 	border-color: #438c48;
-	color: #fff;
+	color: #333;
 }
 
 .buddypress-wrap .standard-form#signup_form div div.error {
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.min.css b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.min.css
index eaf9719c3..a0b3f412a 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.min.css
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/css/buddypress.min.css
@@ -1 +1 @@
-body #buddypress * a{box-shadow:none;text-decoration:none}body #buddypress div,body #buddypress dl,body #buddypress input[type=reset],body #buddypress input[type=search],body #buddypress input[type=submit],body #buddypress li,body #buddypress select,body #buddypress textarea{border-radius:2px;background-clip:padding-box}body #buddypress #item-body blockquote,body #buddypress .bp-lists blockquote{margin-left:0}body #buddypress .bp-list .action{box-sizing:border-box}@media screen and (min-width:46.8em){body.buddypress .entry-content,body.buddypress .entry-header,body.buddypress .site-content .entry-header{max-width:none}body.buddypress .entry-header{float:none;max-width:none}body.buddypress .entry-content{float:none;max-width:none}body.buddypress .site-content{padding-top:2.5em}body.buddypress #page #primary{max-width:none}body.buddypress #page #primary .entry-content,body.buddypress #page #primary .entry-header{float:none;width:auto}}body.buddypress .buddypress-wrap h1,body.buddypress .buddypress-wrap h2,body.buddypress .buddypress-wrap h3,body.buddypress .buddypress-wrap h4,body.buddypress .buddypress-wrap h5,body.buddypress .buddypress-wrap h6{clear:none;margin:1em 0;padding:0}.bp-wrap:after,.bp-wrap:before{content:" ";display:table}.bp-wrap:after{clear:both}.buddypress-wrap.round-avatars .avatar{border-radius:50%}body.buddypress article.page>.entry-header{margin-bottom:2em;padding:0}body.buddypress article.page>.entry-header .entry-title{font-size:28px;font-weight:inherit;color:#767676}@media screen and (min-width:46.8em){body.buddypress article.page>.entry-header .entry-title{font-size:34px}}.buddypress-wrap dt.section-title{font-size:18px}@media screen and (min-width:46.8em){.buddypress-wrap dt.section-title{font-size:22px}}.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:16px}}.buddypress-wrap .activity-header{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-header{font-size:16px}}.buddypress-wrap .activity-inner{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-inner{font-size:18px}}.buddypress-wrap #whats-new-post-in{font-size:16px}.buddypress-wrap .acomment-meta,.buddypress-wrap .mini .activity-header{font-size:16px}.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:16px}}.buddypress-wrap .bp-tables-user th{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user th{font-size:16px}}.buddypress-wrap .bp-tables-user td{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user td{font-size:14px}}.buddypress-wrap .profile-fields th{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields th{font-size:18px}}.buddypress-wrap .profile-fields td{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields td{font-size:16px}}.buddypress-wrap #notification-select{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap #notification-select{font-size:14px}}.bp-navs{background:0 0;clear:both;overflow:hidden}.bp-navs ul{margin:0;padding:0}.bp-navs ul li{list-style:none;margin:0}.bp-navs ul li.last select{max-width:185px}.bp-navs ul li a,.bp-navs ul li span{border:0;display:block;padding:5px 10px;text-decoration:none}.bp-navs ul li .count{background:#eaeaea;border:1px solid #ccc;border-radius:50%;color:#555;display:inline;font-size:12px;margin-left:2px;padding:3px 6px;text-align:center;vertical-align:middle}.bp-navs ul li.current a,.bp-navs ul li.selected a{color:#333;opacity:1}.bp-navs.bp-invites-filters ul li a,.bp-navs.bp-messages-filters ul li a{border:1px solid #ccc;display:inline-block}.main-navs.dir-navs{margin-bottom:20px}.buddypress-wrap .bp-navs li a:hover a .count,.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count{background-color:#ccc}.buddypress-wrap .bp-navs li:not(.current) a:focus,.buddypress-wrap .bp-navs li:not(.current) a:hover,.buddypress-wrap .bp-navs li:not(.selected) a:focus,.buddypress-wrap .bp-navs li:not(.selected) a:hover{background:#ccc;color:#333}.buddypress-wrap .bp-navs li.current a,.buddypress-wrap .bp-navs li.current a:focus,.buddypress-wrap .bp-navs li.current a:hover,.buddypress-wrap .bp-navs li.selected a,.buddypress-wrap .bp-navs li.selected a:focus,.buddypress-wrap .bp-navs li.selected a:hover{background:#555;color:#fafafa}@media screen and (min-width:46.8em){.buddypress-wrap .main-navs:not(.dir-navs) li.current a,.buddypress-wrap .main-navs:not(.dir-navs) li.selected a{background:#fff;color:#333;font-weight:600}.buddypress-wrap .main-navs.vertical li.current a,.buddypress-wrap .main-navs.vertical li.selected a{background:#555;color:#fafafa;text-decoration:none}.buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links){border-bottom:1px solid #eee;border-top:1px solid #eee;box-shadow:0 2px 12px 0 #fafafa}}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.selected a{background:#fff;color:#333;font-weight:600}@media screen and (max-width:46.8em){.buddypress-wrap:not(.bp-single-vert-nav) .bp-navs li{background:#eaeaea}}.buddypress-wrap:not(.bp-single-vert-nav) .main-navs>ul>li>a{padding:.5em calc(.5em + 2px)}.buddypress-wrap:not(.bp-single-vert-nav) .group-subnav#subsubnav,.buddypress-wrap:not(.bp-single-vert-nav) .user-subnav#subsubnav{background:0 0}.buddypress-wrap .bp-subnavs,.buddypress-wrap ul.subnav{width:100%}.buddypress-wrap .bp-subnavs{margin:10px 0;overflow:hidden}.buddypress-wrap .bp-subnavs ul li{margin-top:0}.buddypress-wrap .bp-subnavs ul li.current :focus,.buddypress-wrap .bp-subnavs ul li.current :hover,.buddypress-wrap .bp-subnavs ul li.selected :focus,.buddypress-wrap .bp-subnavs ul li.selected :hover{background:0 0;color:#333}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap .bp-navs.bp-invites-filters#subsubnav ul li.last,.buddypress-wrap .bp-navs.bp-invites-nav#subnav ul li.last,.buddypress-wrap .bp-navs.bp-messages-filters#subsubnav ul li.last{margin-top:0}@media screen and (max-width:46.8em){.buddypress-wrap .single-screen-navs{border:1px solid #eee}.buddypress-wrap .single-screen-navs li{border-bottom:1px solid #eee}.buddypress-wrap .single-screen-navs li:last-child{border-bottom:none}.buddypress-wrap .bp-subnavs li a{font-size:14px}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.current a:focus,.buddypress-wrap .bp-subnavs li.current a:hover,.buddypress-wrap .bp-subnavs li.selected a,.buddypress-wrap .bp-subnavs li.selected a:focus,.buddypress-wrap .bp-subnavs li.selected a:hover{background:#555;color:#fff}}.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count,.buddypress_object_nav .bp-navs li.current a .count,.buddypress_object_nav .bp-navs li.selected a .count{background-color:#fff}.buddypress-wrap .bp-navs li.dynamic a .count,.buddypress-wrap .bp-navs li.dynamic.current a .count,.buddypress-wrap .bp-navs li.dynamic.selected a .count,.buddypress_object_nav .bp-navs li.dynamic a .count,.buddypress_object_nav .bp-navs li.dynamic.current a .count,.buddypress_object_nav .bp-navs li.dynamic.selected a .count{background-color:#5087e5;border:0;color:#fafafa}.buddypress-wrap .bp-navs li.dynamic a:hover .count,.buddypress_object_nav .bp-navs li.dynamic a:hover .count{background-color:#5087e5;border:0;color:#fff}.buddypress-wrap .bp-navs li a .count:empty,.buddypress_object_nav .bp-navs li a .count:empty{display:none}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current),.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current){color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:hover{background:0 0;color:#333}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li.current a,.buddypress_object_nav .bp-navs.group-create-links ul li.current a{text-align:center}@media screen and (min-width:46.8em){.buddypress-wrap .bp-navs li{float:left}.buddypress-wrap .subnav{float:left}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap #subsubnav .activity-search{float:left}.buddypress-wrap #subsubnav .filter{float:right}}.buddypress_object_nav .bp-navs li a .count{display:inline-block;float:right}@media screen and (min-width:46.8em){.bp-dir-vert-nav .bp-navs.dir-navs{background:0 0}.bp-dir-vert-nav .bp-navs.dir-navs a .count{float:right}}@media screen and (min-width:46.8em){.buddypress-wrap .tabbed-links ol,.buddypress-wrap .tabbed-links ul{border-bottom:1px solid #ccc;float:none;margin:20px 0 10px}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ol:before,.buddypress-wrap .tabbed-links ul:after,.buddypress-wrap .tabbed-links ul:before{content:" ";display:block}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ul:after{clear:both}.buddypress-wrap .tabbed-links ol li,.buddypress-wrap .tabbed-links ul li{float:left;list-style:none;margin:0 10px 0 0}.buddypress-wrap .tabbed-links ol li a,.buddypress-wrap .tabbed-links ol li span:not(.count),.buddypress-wrap .tabbed-links ul li a,.buddypress-wrap .tabbed-links ul li span:not(.count){background:0 0;border:none;display:block;padding:4px 10px}.buddypress-wrap .tabbed-links ol li a:focus,.buddypress-wrap .tabbed-links ol li a:hover,.buddypress-wrap .tabbed-links ul li a:focus,.buddypress-wrap .tabbed-links ul li a:hover{background:0 0}.buddypress-wrap .tabbed-links ol li:not(.current),.buddypress-wrap .tabbed-links ul li:not(.current){margin-bottom:2px}.buddypress-wrap .tabbed-links ol li.current,.buddypress-wrap .tabbed-links ul li.current{border-color:#ccc #ccc #fff;border-style:solid;border-top-left-radius:4px;border-top-right-radius:4px;border-width:1px;margin-bottom:-1px;padding:0 .5em 1px}.buddypress-wrap .tabbed-links ol li.current a,.buddypress-wrap .tabbed-links ul li.current a{background:0 0;color:#333}.buddypress-wrap .bp-subnavs.tabbed-links>ul{margin-top:0}.buddypress-wrap .bp-navs.tabbed-links{background:0 0;margin-top:2px}.buddypress-wrap .bp-navs.tabbed-links ul li a{border-right:0;font-size:inherit}.buddypress-wrap .bp-navs.tabbed-links ul li.last{float:right;margin:0}.buddypress-wrap .bp-navs.tabbed-links ul li.last a{margin-top:-.5em}.buddypress-wrap .bp-navs.tabbed-links ul li a,.buddypress-wrap .bp-navs.tabbed-links ul li a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li a:hover,.buddypress-wrap .bp-navs.tabbed-links ul li.current a,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:hover{background:0 0;border:0}.buddypress-wrap .bp-navs.tabbed-links ul li a:active,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:active{outline:0}}.buddypress-wrap .dir-component-filters .filter label{display:inline}.buddypress-wrap .subnav-filters:after,.buddypress-wrap .subnav-filters:before{content:" ";display:table}.buddypress-wrap .subnav-filters:after{clear:both}.buddypress-wrap .subnav-filters{background:0 0;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .subnav-filters div{margin:0}.buddypress-wrap .subnav-filters>ul{float:left;list-style:none}.buddypress-wrap .subnav-filters.bp-messages-filters ul{width:100%}.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:1em}@media screen and (min-width:46.8em){.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:0}}.buddypress-wrap .subnav-filters div{float:none}.buddypress-wrap .subnav-filters div input[type=search],.buddypress-wrap .subnav-filters div select{font-size:16px}.buddypress-wrap .subnav-filters div button.nouveau-search-submit{padding:5px .8em 6px}.buddypress-wrap .subnav-filters div button#user_messages_search_submit{padding:7px .8em}.buddypress-wrap .subnav-filters .component-filters{margin-top:10px}.buddypress-wrap .subnav-filters .feed{margin-right:15px}.buddypress-wrap .subnav-filters .last.filter label{display:inline}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:before{content:" ";display:table}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after{clear:both}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-show{display:inline-block}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-hide{display:none}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap{border:0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:focus,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:hover{outline:1px solid #d6d6d6}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions{float:left}.buddypress-wrap .subnav-filters .user-messages-bulk-actions label{display:inline-block;font-weight:300;margin-right:25px;padding:5px 0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions div select{-webkit-appearance:textfield}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply{border:0;border-radius:none;font-weight:400;line-height:1.8;margin:0 0 0 10px;padding:3px 5px;text-align:center;text-transform:none;width:auto}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply span{vertical-align:middle}@media screen and (min-width:32em){.buddypress-wrap .subnav-filters li{margin-bottom:0}.buddypress-wrap .subnav-filters .bp-search,.buddypress-wrap .subnav-filters .dir-search,.buddypress-wrap .subnav-filters .feed,.buddypress-wrap .subnav-filters .group-act-search,.buddypress-wrap .subnav-filters .group-invites-search,.buddypress-wrap .subnav-filters .subnav-search,.buddypress-wrap .subnav-filters .subnav-search form,.buddypress-wrap .subnav-filters .user-messages-bulk-actions,.buddypress-wrap .subnav-filters .user-messages-search{float:left}.buddypress-wrap .subnav-filters .component-filters,.buddypress-wrap .subnav-filters .last{float:right;margin-top:0;width:auto}.buddypress-wrap .subnav-filters .component-filters select,.buddypress-wrap .subnav-filters .last select{max-width:250px}.buddypress-wrap .subnav-filters .user-messages-search{float:right}}.buddypress-wrap .notifications-options-nav input#notification-bulk-manage{border:0;border-radius:0;line-height:1.6}.buddypress-wrap .group-subnav-filters .group-invites-search{margin-bottom:1em}.buddypress-wrap .group-subnav-filters .last{text-align:center}.buddypress-wrap .bp-pagination{background:0 0;border:0;color:#767676;float:left;font-size:small;margin:0;padding:.5em 0;position:relative;width:100%}.buddypress-wrap .bp-pagination .pag-count{float:left}.buddypress-wrap .bp-pagination .bp-pagination-links{float:right;margin-right:10px}.buddypress-wrap .bp-pagination .bp-pagination-links a,.buddypress-wrap .bp-pagination .bp-pagination-links span{font-size:small;padding:0 5px}.buddypress-wrap .bp-pagination .bp-pagination-links a:focus,.buddypress-wrap .bp-pagination .bp-pagination-links a:hover{opacity:1}.buddypress-wrap .bp-pagination p{margin:0}.bp-list:after,.bp-list:before{content:" ";display:table}.bp-list:after{clear:both}.bp-list{box-sizing:border-box;border-top:1px solid #eaeaea;clear:both;list-style:none;margin:20px 0;padding:.5em 0;width:100%}.bp-list li:after,.bp-list li:before{content:" ";display:table}.bp-list li:after{clear:both}.bp-list>li{border-bottom:1px solid #eaeaea}.bp-list li{list-style:none;margin:10px 0;padding:.5em 0;position:relative}.bp-list li .item-avatar{text-align:center}.bp-list li .item-avatar img.avatar{display:inline}.bp-list li .item .group-details,.bp-list li .item .item-avatar,.bp-list li .item .item-meta,.bp-list li .item .list-title{text-align:center}.bp-list li .item .list-title{clear:none;font-size:22px;font-weight:400;line-height:1.1;margin:0 auto}@media screen and (min-width:46.8em){.bp-list li .item .list-title{font-size:26px}}.bp-list li .item-meta,.bp-list li .meta{color:#737373;font-size:12px;margin-bottom:10px;margin-top:10px}.bp-list li .last-post{text-align:center}.bp-list li .action{margin:0;text-align:center}.bp-list li .action .generic-button{display:inline-block;font-size:12px;margin:0 10px 0 0}.bp-list li .action div.generic-button{margin:10px 0}@media screen and (min-width:46.8em){.bp-list li .item-avatar{float:left;margin-right:5%}.bp-list li .item{margin:0;overflow:hidden}.bp-list li .item .item-block{float:left;margin-right:2%;width:50%}.bp-list li .item .item-meta,.bp-list li .item .list-title{float:left;text-align:left}.bp-list li .item .group-details,.bp-list li .item .last-post{text-align:left}.bp-list li .group-desc,.bp-list li .last-post,.bp-list li .user-update{clear:none;overflow:hidden;width:auto}.bp-list li .action{clear:left;padding:0;text-align:left}.bp-list li .action li.generic-button{margin-right:0}.bp-list li .action div.generic-button{margin:0 0 10px}.bp-list li .generic-button{display:block;margin:0 0 5px 0}}@media screen and (min-width:32em){#activity-stream{clear:both;padding-top:1em}}.activity-list.bp-list{background:#fafafa;border:1px solid #eee}.activity-list.bp-list .activity-item{background:#fff;border:1px solid #b7b7b7;box-shadow:0 0 6px #d2d2d2;margin:20px 0}.activity-list.bp-list li:first-child{margin-top:0}.friends-list{list-style-type:none}.friends-request-list .item-title,.membership-requests-list .item-title{text-align:center}@media screen and (min-width:46.8em){.friends-request-list li,.membership-requests-list li{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap}.friends-request-list li .item,.membership-requests-list li .item{-moz-flex:1 1 auto;-o-flex:1 1 auto;flex:1 1 auto}.friends-request-list li .action,.membership-requests-list li .action{text-align:right}.friends-request-list li .item-title,.membership-requests-list li .item-title{font-size:22px;text-align:left}.friends-request-list li .item-title h3,.membership-requests-list li .item-title h3{margin:0}}#notifications-user-list{clear:both;padding-top:1em}@media screen and (min-width:46.8em){body:not(.logged-in) .bp-list .item{margin-right:0}}.activity-permalink .item-list,.activity-permalink .item-list li.activity-item{border:0}.activity-update-form{padding:10px 10px 0}.item-body .activity-update-form .activity-form{margin:0;padding:0}.activity-update-form{border:1px solid #ccc;box-shadow:inset 0 0 6px #eee;margin:15px 0}.activity-update-form #whats-new-avatar{margin:10px 0;text-align:center}.activity-update-form #whats-new-avatar img{box-shadow:none;display:inline-block}.activity-update-form #whats-new-content{padding:0 0 20px 0}.activity-update-form #whats-new-textarea textarea{background:#fff;box-sizing:border-box;color:#333;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}.activity-update-form #whats-new-textarea textarea:focus{box-shadow:0 0 6px 0 #d6d6d6}.activity-update-form #whats-new-post-in-box{margin:10px 0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items{list-style:none;margin:10px 0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items li{margin-bottom:10px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items #activity-autocomplete{padding:.3em}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object{display:flex;align-items:center;padding:.2em}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object .avatar{width:30px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object span{padding-left:10px;vertical-align:middle}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:focus,.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:hover{background:#eaeaea;cursor:pointer}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object.selected{border:1px solid #d6d6d6}.activity-update-form #whats-new-submit{margin:15px 0 10px}.activity-update-form #whats-new-submit input{font-size:14px;line-height:inherit;margin-bottom:10px;margin-right:10px;padding:.2em 0;text-align:center;width:100%}@media screen and (min-width:46.8em){.activity-update-form #whats-new-avatar{display:block;float:left;margin:0}.activity-update-form #whats-new-content,.activity-update-form #whats-new-post-in-box,.activity-update-form #whats-new-submit{margin-left:8.5%}.activity-update-form #whats-new-submit input{margin-bottom:0;margin-right:10px;width:8em}}.activity-list{padding:.5em}.activity-list .activity-item:after,.activity-list .activity-item:before{content:" ";display:table}.activity-list .activity-item:after{clear:both}.activity-list .activity-item{list-style:none;padding:1em}.activity-list .activity-item.has-comments{padding-bottom:1em}.activity-list .activity-item div.item-avatar{margin:0 auto;text-align:center;width:auto}.activity-list .activity-item div.item-avatar img{height:auto;max-width:40%}@media screen and (min-width:46.8em){.activity-list .activity-item div.item-avatar{margin:0 2% 0 0;text-align:left;width:15%}.activity-list .activity-item div.item-avatar img{max-width:80%}}.activity-list .activity-item.mini{font-size:13px;position:relative}.activity-list .activity-item.mini .activity-avatar{margin-left:0 auto;text-align:center;width:auto}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:15%}@media screen and (min-width:46.8em){.activity-list .activity-item.mini .activity-avatar{margin-left:15px;text-align:left;width:15%}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:60%}}.activity-list .activity-item.new_forum_post .activity-inner,.activity-list .activity-item.new_forum_topic .activity-inner{border-left:2px solid #eaeaea;margin-left:10px;padding-left:1em}.activity-list .activity-item.newest_blogs_activity,.activity-list .activity-item.newest_friends_activity,.activity-list .activity-item.newest_groups_activity,.activity-list .activity-item.newest_mentions_activity{background:rgba(31,179,221,.1)}.activity-list .activity-item .activity-inreplyto{color:#767676;font-size:13px}.activity-list .activity-item .activity-inreplyto>p{display:inline;margin:0}.activity-list .activity-item .activity-inreplyto .activity-inner,.activity-list .activity-item .activity-inreplyto blockquote{background:0 0;border:0;display:inline;margin:0;overflow:hidden;padding:0}.activity-list .activity-item .activity-header{margin:0 auto;width:80%}.activity-list .activity-item .activity-header a,.activity-list .activity-item .activity-header img{display:inline}.activity-list .activity-item .activity-header .avatar{display:inline-block;margin:0 5px;vertical-align:bottom}.activity-list .activity-item .activity-header .time-since{font-size:14px;color:#767676;text-decoration:none}.activity-list .activity-item .activity-header .time-since:hover{color:#767676;cursor:pointer;text-decoration:underline}.activity-list .activity-item .activity-content .activity-header,.activity-list .activity-item .activity-content .comment-header{color:#767676;margin-bottom:10px}.activity-list .activity-item .activity-content .activity-inner,.activity-list .activity-item .activity-content blockquote{background:#fafafa;margin:15px 0 10px;overflow:hidden;padding:1em}.activity-list .activity-item .activity-content p{margin:0}.activity-list .activity-item .activity-inner p{word-wrap:break-word}.activity-list .activity-item .activity-read-more{margin-left:1em;white-space:nowrap}.activity-list .activity-item ul.activity-meta{margin:0;padding-left:0}.activity-list .activity-item ul.activity-meta li{border:0;display:inline-block}.activity-list .activity-item .activity-meta.action{border:1px solid transparent;background:#fafafa;padding:2px;position:relative;text-align:left}.activity-list .activity-item .activity-meta.action div.generic-button{margin:0}.activity-list .activity-item .activity-meta.action .button{background:0 0}.activity-list .activity-item .activity-meta.action a{padding:4px 8px}.activity-list .activity-item .activity-meta.action .button:focus,.activity-list .activity-item .activity-meta.action .button:hover{background:0 0}.activity-list .activity-item .activity-meta.action .button:before,.activity-list .activity-item .activity-meta.action .icons:before{font-family:dashicons;font-size:18px;vertical-align:middle}.activity-list .activity-item .activity-meta.action .acomment-reply.button:before{content:"\f101"}.activity-list .activity-item .activity-meta.action .view:before{content:"\f125"}.activity-list .activity-item .activity-meta.action .fav:before{content:"\f154"}.activity-list .activity-item .activity-meta.action .unfav:before{content:"\f155"}.activity-list .activity-item .activity-meta.action .delete-activity:before{content:"\f153"}.activity-list .activity-item .activity-meta.action .delete-activity:hover{color:#800}.activity-list .activity-item .activity-meta.action .button{border:0;box-shadow:none}.activity-list .activity-item .activity-meta.action .button span{background:0 0;color:#555;font-weight:700}@media screen and (min-width:46.8em){.activity-list.bp-list{padding:30px}.activity-list .activity-item .activity-content{margin:0;position:relative}.activity-list .activity-item .activity-content:after{clear:both;content:"";display:table}.activity-list .activity-item .activity-header{margin:0 15px 0 0;width:auto}}.buddypress-wrap .activity-list .load-more,.buddypress-wrap .activity-list .load-newest{background:#fafafa;border:1px solid #eee;font-size:110%;margin:15px 0;padding:0;text-align:center}.buddypress-wrap .activity-list .load-more a,.buddypress-wrap .activity-list .load-newest a{color:#555;display:block;padding:.5em 0}.buddypress-wrap .activity-list .load-more a:focus,.buddypress-wrap .activity-list .load-more a:hover,.buddypress-wrap .activity-list .load-newest a:focus,.buddypress-wrap .activity-list .load-newest a:hover{background:#fff;color:#333}.buddypress-wrap .activity-list .load-more:focus,.buddypress-wrap .activity-list .load-more:hover,.buddypress-wrap .activity-list .load-newest:focus,.buddypress-wrap .activity-list .load-newest:hover{border-color:#e1e1e1;box-shadow:0 0 6px 0 #eaeaea}body.activity-permalink .activity-list li{border-width:1px;padding:1em 0 0 0}body.activity-permalink .activity-list li:first-child{padding-top:0}body.activity-permalink .activity-list li.has-comments{padding-bottom:0}body.activity-permalink .activity-list .activity-avatar{width:auto}body.activity-permalink .activity-list .activity-avatar a{display:block}body.activity-permalink .activity-list .activity-avatar img{max-width:100%}body.activity-permalink .activity-list .activity-content{border:0;font-size:100%;line-height:1.5;padding:0}body.activity-permalink .activity-list .activity-content .activity-header{margin:0;padding:.5em 0 0 0;text-align:center;width:100%}body.activity-permalink .activity-list .activity-content .activity-inner,body.activity-permalink .activity-list .activity-content blockquote{margin-left:0;margin-top:10px}body.activity-permalink .activity-list .activity-meta{margin:10px 0 10px}body.activity-permalink .activity-list .activity-comments{margin-bottom:10px}@media screen and (min-width:46.8em){body.activity-permalink .activity-list .activity-avatar{left:-20px;margin-right:0;position:relative;top:-20px}body.activity-permalink .activity-list .activity-content{margin-right:10px}body.activity-permalink .activity-list .activity-content .activity-header p{text-align:left}}.buddypress-wrap .activity-comments{clear:both;margin:0 5%;overflow:hidden;position:relative;width:auto}.buddypress-wrap .activity-comments ul{clear:both;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .activity-comments ul li{border-top:1px solid #eee;border-bottom:0;padding:1em 0 0}.buddypress-wrap .activity-comments ul li ul{margin-left:5%}.buddypress-wrap .activity-comments ul li:first-child{border-top:0}.buddypress-wrap .activity-comments ul li:last-child{margin-bottom:0}.buddypress-wrap .activity-comments div.acomment-avatar{width:auto}.buddypress-wrap .activity-comments div.acomment-avatar img{border-width:1px;float:left;height:25px;max-width:none;width:25px}.buddypress-wrap .activity-comments .acomment-content p,.buddypress-wrap .activity-comments .acomment-meta{font-size:14px}.buddypress-wrap .activity-comments .acomment-meta{color:#555;overflow:hidden;padding-left:2%}.buddypress-wrap .activity-comments .acomment-content{border-left:1px solid #ccc;margin:15px 0 0 10%;padding:.5em 1em}.buddypress-wrap .activity-comments .acomment-content p{margin-bottom:.5em}.buddypress-wrap .activity-comments .acomment-options{float:left;margin:10px 0 10px 20px}.buddypress-wrap .activity-comments .acomment-options a{color:#767676;font-size:14px}.buddypress-wrap .activity-comments .acomment-options a:focus,.buddypress-wrap .activity-comments .acomment-options a:hover{color:inherit}.buddypress-wrap .activity-comments .activity-meta.action{background:0 0;margin-top:10px}.buddypress-wrap .activity-comments .activity-meta.action button{font-size:14px;font-weight:400;text-transform:none}.buddypress-wrap .activity-comments .show-all button{font-size:14px;text-decoration:underline;padding-left:.5em}.buddypress-wrap .activity-comments .show-all button span{text-decoration:none}.buddypress-wrap .activity-comments .show-all button:focus span,.buddypress-wrap .activity-comments .show-all button:hover span{color:#5087e5}.buddypress-wrap .mini .activity-comments{clear:both;margin-top:0}body.activity-permalink .activity-comments{background:0 0;width:auto}body.activity-permalink .activity-comments>ul{padding:0 .5em 0 1em}body.activity-permalink .activity-comments ul li>ul{margin-top:10px}form.ac-form{display:none;padding:1em}form.ac-form .ac-reply-avatar{float:left}form.ac-form .ac-reply-avatar img{border:1px solid #eee}form.ac-form .ac-reply-content{color:#767676;padding-left:1em}form.ac-form .ac-reply-content a{text-decoration:none}form.ac-form .ac-reply-content .ac-textarea{margin-bottom:15px;padding:0 .5em;overflow:hidden}form.ac-form .ac-reply-content .ac-textarea textarea{background:0 0;box-shadow:none;color:#555;font-family:inherit;font-size:100%;height:60px;margin:0;outline:0;padding:.5em;width:100%}form.ac-form .ac-reply-content .ac-textarea textarea:focus{box-shadow:0 0 6px #d6d6d6}form.ac-form .ac-reply-content input{margin-top:10px}.activity-comments li form.ac-form{clear:both;margin-right:15px}.activity-comments form.root{margin-left:0}@media screen and (min-width:46.8em){.buddypress-wrap .blogs-list li .item-block{float:none;width:auto}.buddypress-wrap .blogs-list li .item-meta{clear:left;float:none}}@media screen and (min-width:46.8em){.buddypress-wrap .bp-dir-vert-nav .blogs-list .list-title{width:auto}}.buddypress-wrap .groups-list li .list-title{text-align:center}.buddypress-wrap .groups-list li .group-details{clear:left}.buddypress-wrap .groups-list li .group-desc{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;font-size:13px;color:#737373;font-style:italic;margin:10px auto 0;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .group-desc{font-size:16px}}.buddypress-wrap .groups-list li p{margin:0 0 .5em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .item{margin-right:0}.buddypress-wrap .groups-list li .item-meta,.buddypress-wrap .groups-list li .list-title{text-align:left;width:auto}.buddypress-wrap .groups-list li .item-meta{margin-bottom:20px}.buddypress-wrap .groups-list li .last-activity{clear:left;margin-top:-20px}}.buddypress-wrap .groups-list li.group-no-avatar div.group-desc{margin-left:0}.buddypress-wrap .mygroups .groups-list.grid .wrap{min-height:450px;padding-bottom:0}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list.grid.four .group-desc,.buddypress-wrap .groups-list.grid.three .group-desc{font-size:14px}}@media screen and (min-width:46.8em){.buddypress .bp-vertical-navs .groups-list .item-avatar{margin-right:3%;width:15%}}.buddypress-wrap .members-list li .member-name{margin-bottom:10px}.buddypress-wrap .members-list li .user-update{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;color:#737373;font-style:italic;font-size:13px;margin:15px auto;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .user-update{font-size:16px}}.buddypress-wrap .members-list li .user-update .activity-read-more{display:block;font-size:12px;font-style:normal;margin-top:10px;padding-left:2px}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .last-activity{clear:left;margin-top:-10px}}@media screen and (min-width:46.8em){.buddypress-wrap .members-group-list li .joined{clear:left;float:none}}@media screen and (min-width:32em){body:not(.logged-in) .members-list .user-update{width:96%}}.register-page .register-section{box-sizing:border-box}.register-page .signup-form{margin-top:20px}.register-page .signup-form .default-profile input{margin-bottom:20px}.register-page .signup-form label,.register-page .signup-form legend{margin:10px 0 0}.register-page .signup-form .editfield{margin:15px 0}.register-page .signup-form .editfield fieldset{border:0;padding:0}.register-page .signup-form .editfield fieldset legend{margin:0 0 5px;text-indent:0}.register-page .signup-form .editfield .field-visibility-settings{padding:.5em}.register-page .signup-form .editfield .field-visibility-settings fieldset{margin:0 0 10px}.register-page .signup-form #signup-avatar img{margin:0 15px 10px 0}.register-page .signup-form .password-entry,.register-page .signup-form .password-entry-confirm{border:1px solid #eee}@media screen and (min-width:46.8em){.buddypress-wrap .register-page .layout-wrap{display:flex;flex-flow:row wrap;justify-content:space-around}.buddypress-wrap .register-page .layout-wrap .default-profile{flex:1;padding-right:2em}.buddypress-wrap .register-page .layout-wrap .blog-details{flex:1;padding-left:2em}.buddypress-wrap .register-page .submit{clear:both}}@media screen and (min-width:46.8em){.buddypress-wrap.extended-default-reg .register-page .default-profile{flex:1;padding-right:1em}.buddypress-wrap.extended-default-reg .register-page .extended-profile{flex:2;padding-left:1em}.buddypress-wrap.extended-default-reg .register-page .blog-details{flex:1 100%}}#group-create-body{padding:.5em}#group-create-body .creation-step-name{text-align:center}#group-create-body .avatar-nav-items{margin-top:15px}.single-headers:after,.single-headers:before{content:" ";display:table}.single-headers:after{clear:both}.single-headers{margin-bottom:15px}.single-headers #item-header-avatar a{display:block;text-align:center}.single-headers #item-header-avatar a img{float:none}.single-headers div#item-header-content{float:none}@media screen and (min-width:46.8em){.single-headers #item-header-avatar a{text-align:left}.single-headers #item-header-avatar a img{float:left}.single-headers #item-header-content{padding-left:2em}}.single-headers .activity,.single-headers .group-status{display:inline}.single-headers .group-status{font-size:18px;color:#333;padding-right:1em}.single-headers .activity{display:inline-block;font-size:12px;padding:0}.single-headers #sitewide-notice p,.single-headers div#message p{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.single-headers h2{line-height:1.2;margin:0 0 5px}.single-headers h2 a{color:#767676;text-decoration:none}.single-headers h2 span.highlight{display:inline-block;font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle}.single-headers h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-size:80%;font-weight:700;margin-bottom:2px;padding:1px 4px;position:relative;right:-2px;top:-2px;vertical-align:middle}.single-headers img.avatar{float:left;margin:0 15px 19px 0}.single-headers .item-meta{color:#767676;font-size:14px;margin:15px 0 5px;padding-bottom:.5em}.single-headers ul{margin-bottom:15px}.single-headers ul li{float:right;list-style:none}.single-headers div.generic-button{text-align:center}.single-headers li.generic-button{display:inline-block;text-align:center}@media screen and (min-width:46.8em){.single-headers a.button,.single-headers div.generic-button,.single-headers li.generic-button{float:left}}.single-headers a.button,.single-headers div.generic-button{margin:10px 10px 0 0}.single-headers li.generic-button{margin:2px 10px}.single-headers li.generic-button:first-child{margin-left:0}.single-headers div#message.info{line-height:.8}body.no-js .single-item-header .js-self-profile-button{display:none}#cover-image-container{position:relative}#header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#item-header-cover-image{position:relative;z-index:2}#item-header-cover-image #item-header-avatar{padding:0 1em}.groups-header .bp-group-type-list{margin:0}.groups-header .bp-feedback{clear:both}.groups-header .group-item-actions{float:left;margin:0 0 15px 15px;padding-top:0;width:100%}.groups-header .moderators-lists{margin-top:0}.groups-header .moderators-lists .moderators-title{font-size:14px}.groups-header .moderators-lists .user-list{margin:0 0 5px}.groups-header .moderators-lists .user-list ul:after{clear:both;content:"";display:table}.groups-header .moderators-lists .user-list li{display:inline-block;float:none;margin-left:4px;padding:4px}.groups-header .moderators-lists img.avatar{box-shadow:none;float:none;height:30px;margin:0;max-width:100%;width:30px}@media screen and (min-width:46.8em){.groups-header div#item-header-content{float:left;margin-left:10%;text-align:left;padding-top:15px;width:42%}.groups-header .group-item-actions{float:right;margin:0 0 15px 15px;text-align:right;width:20%}.groups-header .groups-meta{clear:both}}.groups-header .desc-wrap{background:#eaeaea;border:1px solid #d6d6d6;margin:0 0 15px;padding:1em;text-align:center}.groups-header .desc-wrap .group-description{background:#fafafa;box-shadow:inset 0 0 9px #ccc;padding:1em;text-align:left}.groups-header .desc-wrap .group-description p{margin:0;padding:0}.bp-user .users-header .user-nicename{margin-bottom:5px}.bp-user .member-header-actions{overflow:hidden}.bp-user .member-header-actions *>*{display:block}.buddypress-wrap .item-body{margin:20px 0}.buddypress-wrap .item-body .screen-heading{font-size:20px;font-weight:400}.buddypress-wrap .item-body .button-tabs{margin:30px 0 15px}.buddypress-wrap.bp-single-vert-nav .bp-list:not(.grid) .item-entry{padding-left:.5em}.single-item.group-members .item-body .filters:not(.no-subnav){border-top:5px solid #eaeaea;padding-top:1em}.single-item.group-members .item-body .filters{margin-top:0}.buddypress-wrap .group-status-type ul{margin:0 0 20px 20px}.groups-manage-members-list{padding:.5em 0}.groups-manage-members-list dd{margin:0;padding:1em 0}.groups-manage-members-list .section-title{background:#eaeaea;padding-left:.3em}.groups-manage-members-list ul{list-style:none;margin-bottom:0}.groups-manage-members-list ul li{border-bottom:1px solid #eee;margin-bottom:10px;padding:.5em .3em .3em}.groups-manage-members-list ul li:last-child,.groups-manage-members-list ul li:only-child{border-bottom:0}.groups-manage-members-list ul li:nth-child(even){background:#fafafa}.groups-manage-members-list ul li.banned-user{background:#fad3d3}.groups-manage-members-list ul .member-name{margin-bottom:0;text-align:center}.groups-manage-members-list ul img{display:block;margin:0 auto;width:20%}@media screen and (min-width:32em){.groups-manage-members-list ul .member-name{text-align:left}.groups-manage-members-list ul img{display:inline;width:50px}}.groups-manage-members-list ul .members-manage-buttons:after,.groups-manage-members-list ul .members-manage-buttons:before{content:" ";display:table}.groups-manage-members-list ul .members-manage-buttons:after{clear:both}.groups-manage-members-list ul .members-manage-buttons{margin:15px 0 5px}.groups-manage-members-list ul .members-manage-buttons a.button{color:#767676;display:block;font-size:13px}@media screen and (min-width:32em){.groups-manage-members-list ul .members-manage-buttons a.button{display:inline-block}}.groups-manage-members-list ul .members-manage-buttons.text-links-list{margin-bottom:0}@media screen and (max-width:32em){.groups-manage-members-list ul .members-manage-buttons.text-links-list a.button{background:#fafafa;border:1px solid #eee;display:block;margin-bottom:10px}}.groups-manage-members-list ul .action:not(.text-links-list) a.button{font-size:12px}@media screen and (min-width:46.8em){.groups-manage-members-list ul li .avatar,.groups-manage-members-list ul li .member-name{float:left}.groups-manage-members-list ul li .avatar{margin-right:15px}.groups-manage-members-list ul li .action{clear:both;float:left}}.buddypress .bp-invites-content ul.item-list{border-top:0}.buddypress .bp-invites-content ul.item-list li{border:1px solid #eaeaea;margin:0 0 1%;padding-left:5px;padding-right:5px;position:relative;width:auto}.buddypress .bp-invites-content ul.item-list li .list-title{margin:0 auto;width:80%}.buddypress .bp-invites-content ul.item-list li .action{position:absolute;top:10px;right:10px}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button{border:0}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:focus,.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:hover{color:#1fb3dd}.buddypress .bp-invites-content ul.item-list li.selected{box-shadow:inset 0 0 12px 0 rgba(237,187,52,.2)}.buddypress .bp-invites-content .group-inviters li,.buddypress .bp-invites-content .item-list .item-meta span{color:#767676}.buddypress .bp-invites-content li ul.group-inviters{clear:both;margin:0;overflow:hidden}.buddypress .bp-invites-content li ul.group-inviters li{border:0;float:left;font-size:20px;width:inherit}.buddypress .bp-invites-content li .status{font-size:20px;font-style:italic;clear:both;color:#555;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul:after,.buddypress .bp-invites-content #send-invites-editor ul:before{content:" ";display:table}.buddypress .bp-invites-content #send-invites-editor ul:after{clear:both}.buddypress .bp-invites-content #send-invites-editor textarea{width:100%}.buddypress .bp-invites-content #send-invites-editor ul{clear:both;list-style:none;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul li{float:left;margin:.5%;max-height:50px;max-width:50px}.buddypress .bp-invites-content #send-invites-editor #bp-send-invites-form{clear:both;margin-top:10px}.buddypress .bp-invites-content #send-invites-editor .action{margin-top:10px;padding-top:10px}.buddypress .bp-invites-content #send-invites-editor.bp-hide{display:none}@media screen and (min-width:46.8em){.buddypress .bp-invites-content ul.item-list>li{box-sizing:border-box;border:1px solid #eaeaea;float:left;padding-left:.5em;padding-right:.5em;width:49.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(odd){margin-right:.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(even){margin-left:.5%}.buddypress .bp-invites-content ul.item-list ul.group-inviters{float:left;width:auto}}@media screen and (min-width:46.8em){:not(.vertical)+.item-body #group-invites-container{display:-ms-grid;display:grid;-ms-grid-columns:25% auto;grid-template-columns:25% auto;grid-template-areas:"group-invites-nav group-invites-column"}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav{-ms-grid-row:1;-ms-grid-column:1;grid-area:group-invites-nav}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav li{display:block;float:none}:not(.vertical)+.item-body #group-invites-container .group-invites-column{-ms-grid-row:1;-ms-grid-column:2;grid-area:group-invites-column}}.buddypress.groups .activity-update-form{margin-top:0}.buddypress-wrap .profile{margin-top:30px}.buddypress-wrap .public .profile-fields td.label{width:30%}.buddypress-wrap .profile.edit .button-nav{list-style:none;margin:30px 0 10px}.buddypress-wrap .profile.edit .button-nav li{display:inline-block;margin-right:10px}.buddypress-wrap .profile.edit .button-nav li a{font-size:18px}.buddypress-wrap .profile.edit .editfield{background:#fafafa;border:1px solid #eee;margin:15px 0;padding:1em}.buddypress-wrap .profile.edit .editfield fieldset{border:0}.buddypress-wrap .profile.edit .editfield fieldset label{font-weight:400}.buddypress-wrap .profile.edit .editfield fieldset label.xprofile-field-label{display:inline}.buddypress-wrap .profile.edit .editfield{display:flex;flex-direction:column}.buddypress-wrap .profile.edit .editfield .description{margin-top:10px;order:2}.buddypress-wrap .profile.edit .editfield>fieldset{order:1}.buddypress-wrap .profile.edit .editfield .field-visibility-settings,.buddypress-wrap .profile.edit .editfield .field-visibility-settings-toggle{order:3}body.no-js .buddypress-wrap .field-visibility-settings-close,body.no-js .buddypress-wrap .field-visibility-settings-toggle{display:none}body.no-js .buddypress-wrap .field-visibility-settings{display:block}.buddypress-wrap .field-visibility-settings{margin:10px 0}.buddypress-wrap .current-visibility-level{font-style:normal;font-weight:700}.buddypress-wrap .field-visibility-settings,.buddypress-wrap .field-visibility-settings-header{color:#737373}.buddypress-wrap .field-visibility-settings fieldset{margin:5px 0}.buddypress-wrap .standard-form .editfield fieldset{margin:0}.buddypress-wrap .standard-form .field-visibility-settings label{font-weight:400;margin:0}.buddypress-wrap .standard-form .field-visibility-settings .radio{list-style:none;margin-bottom:0}.buddypress-wrap .standard-form .field-visibility-settings .field-visibility-settings-close{font-size:12px}.buddypress-wrap .standard-form .wp-editor-container{border:1px solid #dedede}.buddypress-wrap .standard-form .wp-editor-container textarea{background:#fff;width:100%}.buddypress-wrap .standard-form .description{background:#fafafa;font-size:inherit}.buddypress-wrap .standard-form .field-visibility-settings legend,.buddypress-wrap .standard-form .field-visibility-settings-header{font-style:italic}.buddypress-wrap .standard-form .field-visibility-settings-header{font-size:14px}.buddypress-wrap .standard-form .field-visibility-settings label,.buddypress-wrap .standard-form .field-visibility-settings legend{font-size:14px}.buddypress-wrap .standard-form .field-visibility select{margin:0}.buddypress-wrap .html-active button.switch-html{background:#f5f5f5;border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.buddypress-wrap .tmce-active button.switch-tmce{background:#f5f5f5;border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.buddypress-wrap .profile.public .profile-group-title{border-bottom:1px solid #ccc}body.register .buddypress-wrap .page ul{list-style:none}.buddypress-wrap .profile .bp-avatar-nav{margin-top:20px}.message-action-delete:before,.message-action-star:before,.message-action-unstar:before,.message-action-view:before{font-family:dashicons;font-size:18px}.message-action-star:before{color:#aaa;content:"\f154"}.message-action-unstar:before{color:#fcdd77;content:"\f155"}.message-action-view:before{content:"\f473"}.message-action-delete:before{content:"\f153"}.message-action-delete:hover:before{color:#a00}.preview-content .actions a{text-decoration:none}.bp-messages-content{margin:15px 0}.bp-messages-content .avatar{box-shadow:none}.bp-messages-content .thread-participants{list-style:none}.bp-messages-content .thread-participants dd{margin-left:0}.bp-messages-content time{color:#737373;font-size:12px}#message-threads{border-top:1px solid #eaeaea;clear:both;list-style:none;margin:0;max-height:220px;overflow-x:hidden;overflow-y:auto;padding:0;width:100%}#message-threads li{border-bottom:1px solid #eaeaea;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;margin:0;overflow:hidden;padding:.5em 0}#message-threads li .thread-cb{display:flex;align-items:center;-moz-flex:1 2 5%;-o-flex:1 2 5%;flex:1 2 5%}#message-threads li .thread-from,#message-threads li .thread-to{-moz-flex:1 2 20%;-o-flex:1 2 20%;flex:1 2 20%}#message-threads li .thread-from img.avatar,#message-threads li .thread-to img.avatar{float:left;margin:0 10px 0 0}#message-threads li .thread-from .user-name,#message-threads li .thread-to .user-name{display:inline-block;line-height:1.1}#message-threads li .thread-from .num-recipients,#message-threads li .thread-to .num-recipients{color:#737373;font-weight:400;font-size:12px;margin:0}#message-threads li .thread-content{-moz-flex:1 2 60%;-o-flex:1 2 60%;flex:1 2 60%}#message-threads li .thread-date{-moz-flex:1 2 15%;-o-flex:1 2 15%;flex:1 2 15%}#message-threads li.selected{background-color:#fafafa}#message-threads li.selected .thread-subject .subject{color:#5087e5}#message-threads li.unread{font-weight:700}#message-threads li .thread-content .excerpt{color:#737373;font-size:12px;margin:0}#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:13px}@media screen and (min-width:46.8em){#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:16px}}#message-threads li .thread-content .thread-subject{vertical-align:top}#message-threads li .thread-content .thread-subject .excerpt{font-weight:400}#message-threads li .thread-date{padding-right:5px;text-align:right}.bp-messages-content .actions{float:right;max-width:30%}.bp-messages-content .actions .bp-icons:not(.bp-hide){display:inline-block;margin:0;padding:.3em .5em}.bp-messages-content .actions .bp-icons:not(.bp-hide):before{font-size:26px}.bp-messages-content #thread-preview{border:1px solid #eaeaea;margin-top:20px}.bp-messages-content #thread-preview .preview-message{overflow:hidden}.bp-messages-content #thread-preview .preview-content{margin:.5em}.bp-messages-content #thread-preview .preview-content .preview-message{background:#fafafa;margin:10px 0;padding:1em .3em .3em}.bp-messages-content #bp-message-thread-list{border-top:1px solid #eaeaea;clear:both;list-style:none;padding:1em 0 .3em}.bp-messages-content #bp-message-thread-list li{padding:.5em}.bp-messages-content #bp-message-thread-list li:nth-child(2n) .message-content{background:#fafafa}.bp-messages-content #bp-message-thread-list .message-metadata{border-bottom:1px solid #ccc;box-shadow:-2px 1px 9px 0 #eee;display:table;padding:.2em;width:100%}.bp-messages-content #bp-message-thread-list .message-metadata .avatar{width:30px}.bp-messages-content #bp-message-thread-list .message-metadata .user-link{display:block;font-size:13px;float:left}@media screen and (min-width:46.8em){.bp-messages-content #bp-message-thread-list .message-metadata .user-link{font-size:16px}}.bp-messages-content #bp-message-thread-list .message-metadata time{color:#737373;font-size:12px;padding:0 .5em}.bp-messages-content #bp-message-thread-list .message-metadata button{padding:0 .3em}.bp-messages-content #bp-message-thread-list .message-metadata button:before{font-size:20px}.bp-messages-content #bp-message-thread-list .message-content{overflow:hidden;margin:1em auto 0;width:90%}.bp-messages-content #bp-message-thread-list img.avatar{float:left;margin:0 10px 0 0}.bp-messages-content #bp-message-thread-list .actions a:before{font-size:18px}.bp-messages-content form.send-reply .avatar-box{padding:.5em 0}.bp-messages-content .preview-pane-header,.bp-messages-content .single-message-thread-header{border-bottom:1px solid #eaeaea}.bp-messages-content .preview-pane-header:after,.bp-messages-content .single-message-thread-header:after{clear:both;content:"";display:table}.bp-messages-content .preview-thread-title,.bp-messages-content .single-thread-title{font-size:16px}.bp-messages-content .preview-thread-title .messages-title,.bp-messages-content .single-thread-title .messages-title{padding-left:2em}.bp-messages-content .thread-participants{float:left;margin:5px 0;width:70%}.bp-messages-content .thread-participants dd,.bp-messages-content .thread-participants ul{margin-bottom:10px}.bp-messages-content .thread-participants ul{list-style:none}.bp-messages-content .thread-participants ul:after{clear:both;content:"";display:table}.bp-messages-content .thread-participants li{float:left;margin-left:5px}.bp-messages-content .thread-participants img{width:30px}.bp-messages-content #bp-message-thread-list li .message-content blockquote,.bp-messages-content #bp-message-thread-list li .message-content ol,.bp-messages-content #bp-message-thread-list li .message-content ul,.bp-messages-content #thread-preview .preview-message blockquote,.bp-messages-content #thread-preview .preview-message ol,.bp-messages-content #thread-preview .preview-message ul{list-style-position:inside;margin-left:0}.bp-messages-content #thread-preview:empty,.bp-messages-content ul#message-threads:empty{display:none}.bp-messages-content #bp-message-thread-header h2:first-child,.bp-messages-content #thread-preview h2:first-child{background-color:#eaeaea;color:#555;font-weight:700;margin:0;padding:.5em}.bp-messages-content #bp-message-thread-list li a.user-link,.bp-messages-content #message-threads .thread-content a{border:0;text-decoration:none}.bp-messages-content .standard-form #subject{margin-bottom:20px}div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions{margin-right:15px;max-width:42.5%}.buddypress.settings .profile-settings.bp-tables-user select{width:100%}.buddypress-wrap #whats-new-post-in-box select,.buddypress-wrap .filter select{border:1px solid #d6d6d6}.buddypress-wrap input.action[disabled]{cursor:pointer;opacity:.4}.buddypress-wrap #notification-bulk-manage[disabled]{display:none}.buddypress-wrap fieldset legend{font-size:inherit;font-weight:600}.buddypress-wrap input[type=email]:focus,.buddypress-wrap input[type=password]:focus,.buddypress-wrap input[type=tel]:focus,.buddypress-wrap input[type=text]:focus,.buddypress-wrap input[type=url]:focus,.buddypress-wrap textarea:focus{box-shadow:0 0 8px #eaeaea}.buddypress-wrap select{height:auto}.buddypress-wrap textarea{resize:vertical}.buddypress-wrap .standard-form .bp-controls-wrap{margin:1em 0}.buddypress-wrap .standard-form .groups-members-search input[type=search],.buddypress-wrap .standard-form .groups-members-search input[type=text],.buddypress-wrap .standard-form [data-bp-search] input[type=search],.buddypress-wrap .standard-form [data-bp-search] input[type=text],.buddypress-wrap .standard-form input[type=color],.buddypress-wrap .standard-form input[type=date],.buddypress-wrap .standard-form input[type=datetime-local],.buddypress-wrap .standard-form input[type=datetime],.buddypress-wrap .standard-form input[type=email],.buddypress-wrap .standard-form input[type=month],.buddypress-wrap .standard-form input[type=number],.buddypress-wrap .standard-form input[type=password],.buddypress-wrap .standard-form input[type=range],.buddypress-wrap .standard-form input[type=search],.buddypress-wrap .standard-form input[type=tel],.buddypress-wrap .standard-form input[type=text],.buddypress-wrap .standard-form input[type=time],.buddypress-wrap .standard-form input[type=url],.buddypress-wrap .standard-form input[type=week],.buddypress-wrap .standard-form select,.buddypress-wrap .standard-form textarea{background:#fafafa;border:1px solid #d6d6d6;border-radius:0;font:inherit;font-size:100%;padding:.5em}.buddypress-wrap .standard-form input[required],.buddypress-wrap .standard-form select[required],.buddypress-wrap .standard-form textarea[required]{box-shadow:none;border-width:2px;outline:0}.buddypress-wrap .standard-form input[required]:invalid,.buddypress-wrap .standard-form select[required]:invalid,.buddypress-wrap .standard-form textarea[required]:invalid{border-color:#b71717}.buddypress-wrap .standard-form input[required]:valid,.buddypress-wrap .standard-form select[required]:valid,.buddypress-wrap .standard-form textarea[required]:valid{border-color:#91cc2c}.buddypress-wrap .standard-form input[required]:focus,.buddypress-wrap .standard-form select[required]:focus,.buddypress-wrap .standard-form textarea[required]:focus{border-color:#d6d6d6;border-width:1px}.buddypress-wrap .standard-form input.invalid[required],.buddypress-wrap .standard-form select.invalid[required],.buddypress-wrap .standard-form textarea.invalid[required]{border-color:#b71717}.buddypress-wrap .standard-form input:not(.button-small),.buddypress-wrap .standard-form textarea{width:100%}.buddypress-wrap .standard-form input[type=checkbox],.buddypress-wrap .standard-form input[type=radio]{margin-right:5px;width:auto}.buddypress-wrap .standard-form select{padding:3px}.buddypress-wrap .standard-form textarea{height:120px}.buddypress-wrap .standard-form textarea#message_content{height:200px}.buddypress-wrap .standard-form input[type=password]{margin-bottom:5px}.buddypress-wrap .standard-form input:focus,.buddypress-wrap .standard-form select:focus,.buddypress-wrap .standard-form textarea:focus{background:#fafafa;color:#555;outline:0}.buddypress-wrap .standard-form label,.buddypress-wrap .standard-form span.label{display:block;font-weight:600;margin:15px 0 5px;width:auto}.buddypress-wrap .standard-form a.clear-value{display:block;margin-top:5px;outline:0}.buddypress-wrap .standard-form .submit{clear:both;padding:15px 0 0}.buddypress-wrap .standard-form p.submit{margin-bottom:0}.buddypress-wrap .standard-form div.submit input{margin-right:15px}.buddypress-wrap .standard-form #invite-list label,.buddypress-wrap .standard-form p label{font-weight:400;margin:auto}.buddypress-wrap .standard-form p.description{color:#737373;margin:5px 0}.buddypress-wrap .standard-form div.checkbox label:nth-child(n+2),.buddypress-wrap .standard-form div.radio div label{color:#737373;font-size:100%;font-weight:400;margin:5px 0 0}.buddypress-wrap .standard-form#send-reply textarea{width:97.5%}.buddypress-wrap .standard-form#sidebar-login-form label{margin-top:5px}.buddypress-wrap .standard-form#sidebar-login-form input[type=password],.buddypress-wrap .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}.buddypress-wrap .standard-form.profile-edit input:focus{background:#fff}@media screen and (min-width:46.8em){.buddypress-wrap .standard-form .left-menu{float:left}.buddypress-wrap .standard-form #invite-list ul{list-style:none;margin:1%}.buddypress-wrap .standard-form #invite-list ul li{margin:0 0 0 1%}.buddypress-wrap .standard-form .main-column{margin-left:190px}.buddypress-wrap .standard-form .main-column ul#friend-list{clear:none;float:left}.buddypress-wrap .standard-form .main-column ul#friend-list h4{clear:none}}.buddypress-wrap .standard-form .bp-tables-user label{margin:0}.buddypress-wrap .signup-form label,.buddypress-wrap .signup-form legend{font-weight:400}body.no-js .buddypress #delete_inbox_messages,body.no-js .buddypress #delete_sentbox_messages,body.no-js .buddypress #message-type-select,body.no-js .buddypress #messages-bulk-management #select-all-messages,body.no-js .buddypress #notifications-bulk-management #select-all-notifications,body.no-js .buddypress label[for=message-type-select]{display:none}.buddypress-wrap .wp-editor-wrap .wp-editor-wrap button,.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=button],.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=submit],.buddypress-wrap .wp-editor-wrap a.button,.buddypress-wrap .wp-editor-wrap input[type=reset]{padding:0 8px 1px}.buddypress-wrap .select-wrap{border:1px solid #eee}.buddypress-wrap .select-wrap label{display:inline}.buddypress-wrap .select-wrap select::-ms-expand{display:none}.buddypress-wrap .select-wrap select{-moz-appearance:none;-webkit-appearance:none;-o-appearance:none;appearance:none;border:0;cursor:pointer;margin-right:-25px;padding:6px 25px 6px 10px;position:relative;text-indent:-2px;z-index:1;width:100%}.buddypress-wrap .select-wrap select,.buddypress-wrap .select-wrap select:active,.buddypress-wrap .select-wrap select:focus{background:0 0}.buddypress-wrap .select-wrap span.select-arrow{display:inline-block;position:relative;z-index:0}.buddypress-wrap .select-wrap span.select-arrow:before{color:#ccc;content:"\25BC"}.buddypress-wrap .select-wrap:focus .select-arrow:before,.buddypress-wrap .select-wrap:hover .select-arrow:before{color:#a6a6a6}.buddypress-wrap .bp-search form:focus,.buddypress-wrap .bp-search form:hover,.buddypress-wrap .select-wrap:focus,.buddypress-wrap .select-wrap:hover{border:1px solid #d5d4d4;box-shadow:inset 0 0 3px #eee}@media screen and (min-width:32em){.buddypress-wrap .notifications-options-nav .select-wrap{float:left}}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after,.buddypress-wrap .bp-messages-search-form:before{content:" ";display:table}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after{clear:both}.buddypress-wrap form.bp-dir-search-form,.buddypress-wrap form.bp-invites-search-form,.buddypress-wrap form.bp-messages-search-form{border:1px solid #eee;width:100%}@media screen and (min-width:55em){.buddypress-wrap form.bp-dir-search-form,.buddypress-wrap form.bp-invites-search-form,.buddypress-wrap form.bp-messages-search-form{width:15em}}.buddypress-wrap form.bp-dir-search-form label,.buddypress-wrap form.bp-invites-search-form label,.buddypress-wrap form.bp-messages-search-form label{margin:0}.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-invites-search-form button[type=submit],.buddypress-wrap form.bp-invites-search-form input[type=search],.buddypress-wrap form.bp-invites-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text]{background:0 0;border:0;border-radius:0;background-clip:padding-box}.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-invites-search-form input[type=search],.buddypress-wrap form.bp-invites-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text]{float:left;line-height:1.5;padding:3px 10px;width:80%}.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-invites-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form button[type=submit]{float:right;font-size:inherit;font-weight:400;line-height:1.5;padding:3px .7em;text-align:center;text-transform:none;width:20%}.buddypress-wrap form.bp-dir-search-form button[type=submit] span,.buddypress-wrap form.bp-invites-search-form button[type=submit] span,.buddypress-wrap form.bp-messages-search-form button[type=submit] span{font-family:dashicons;font-size:18px;line-height:1.6}.buddypress-wrap form.bp-dir-search-form button[type=submit].bp-show,.buddypress-wrap form.bp-invites-search-form button[type=submit].bp-show,.buddypress-wrap form.bp-messages-search-form button[type=submit].bp-show{height:auto;left:0;overflow:visible;position:static;top:0}.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-invites-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-invites-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-invites-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-decoration{display:none}.buddypress-wrap ul.filters li form label input{line-height:1.4;padding:.1em .7em}.buddypress-wrap .current-member-type{font-style:italic}.buddypress-wrap .dir-form{clear:both}.budypress.no-js form.bp-dir-search-form button[type=submit]{height:auto;left:0;overflow:visible;position:static;top:0}.bp-user [data-bp-search] form input[type=search],.bp-user [data-bp-search] form input[type=text]{padding:6px 10px 7px}.buddypress-wrap .bp-tables-user,.buddypress-wrap table.forum,.buddypress-wrap table.wp-profile-fields{width:100%}.buddypress-wrap .bp-tables-user thead tr,.buddypress-wrap table.forum thead tr,.buddypress-wrap table.wp-profile-fields thead tr{background:0 0;border-bottom:2px solid #ccc}.buddypress-wrap .bp-tables-user tbody tr,.buddypress-wrap table.forum tbody tr,.buddypress-wrap table.wp-profile-fields tbody tr{background:#fafafa}.buddypress-wrap .bp-tables-user tr td,.buddypress-wrap .bp-tables-user tr th,.buddypress-wrap table.forum tr td,.buddypress-wrap table.forum tr th,.buddypress-wrap table.wp-profile-fields tr td,.buddypress-wrap table.wp-profile-fields tr th{padding:.5em;vertical-align:middle}.buddypress-wrap .bp-tables-user tr td.label,.buddypress-wrap table.forum tr td.label,.buddypress-wrap table.wp-profile-fields tr td.label{border-right:1px solid #eaeaea;font-weight:600;width:25%}.buddypress-wrap .bp-tables-user tr.alt td,.buddypress-wrap table.wp-profile-fields tr.alt td{background:#fafafa}.buddypress-wrap table.profile-fields .data{padding:.5em 1em}.buddypress-wrap table.profile-fields tr:last-child{border-bottom:none}.buddypress-wrap table.notifications td{padding:1em .5em}.buddypress-wrap table.notifications .bulk-select-all,.buddypress-wrap table.notifications .bulk-select-check{width:7%}.buddypress-wrap table.notifications .bulk-select-check{vertical-align:middle}.buddypress-wrap table.notifications .date,.buddypress-wrap table.notifications .notification-description,.buddypress-wrap table.notifications .notification-since,.buddypress-wrap table.notifications .title{width:39%}.buddypress-wrap table.notifications .actions,.buddypress-wrap table.notifications .notification-actions{width:15%}.buddypress-wrap table.notification-settings th.title,.buddypress-wrap table.profile-settings th.title{width:80%}.buddypress-wrap table.notifications .notification-actions a.delete,.buddypress-wrap table.notifications .notification-actions a.mark-read{display:inline-block}.buddypress-wrap table.notification-settings{margin-bottom:15px;text-align:left}.buddypress-wrap #groups-notification-settings{margin-bottom:0}.buddypress-wrap table.notification-settings td:first-child,.buddypress-wrap table.notification-settings th.icon,.buddypress-wrap table.notifications td:first-child,.buddypress-wrap table.notifications th.icon{display:none}.buddypress-wrap table.notification-settings .no,.buddypress-wrap table.notification-settings .yes{text-align:center;width:40px;vertical-align:middle}.buddypress-wrap table#message-threads{clear:both}.buddypress-wrap table#message-threads .thread-info{min-width:40%}.buddypress-wrap table#message-threads .thread-info p{margin:0}.buddypress-wrap table#message-threads .thread-info p.thread-excerpt{color:#737373;font-size:12px;margin-top:3px}.buddypress-wrap table.profile-fields{margin-bottom:20px}.buddypress-wrap table.profile-fields:last-child{margin-bottom:0}.buddypress-wrap table.profile-fields p{margin:0}.buddypress-wrap table.profile-fields p:last-child{margin-top:0}.bp-screen-reader-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-vert{display:flex;align-items:center}.bp-hide{display:none}.bp-show{height:auto;left:0;overflow:visible;position:static;top:0}.buddypress .buddypress-wrap .activity-read-more a,.buddypress .buddypress-wrap .comment-reply-link,.buddypress .buddypress-wrap .generic-button a,.buddypress .buddypress-wrap a.bp-title-button,.buddypress .buddypress-wrap a.button,.buddypress .buddypress-wrap button,.buddypress .buddypress-wrap input[type=button],.buddypress .buddypress-wrap input[type=reset],.buddypress .buddypress-wrap input[type=submit],.buddypress .buddypress-wrap ul.button-nav:not(.button-tabs) li a{background:#fff;border-color:#ccc;border-style:solid;border-width:1px;color:#555;cursor:pointer;font-size:inherit;font-weight:400;outline:0;padding:.3em .5em;text-align:center;text-decoration:none;width:auto}.buddypress .buddypress-wrap .button-small[type=button]{padding:0 8px 1px}.buddypress .buddypress-wrap .activity-read-more a:focus,.buddypress .buddypress-wrap .activity-read-more a:hover,.buddypress .buddypress-wrap .button-nav li a:focus,.buddypress .buddypress-wrap .button-nav li a:hover,.buddypress .buddypress-wrap .button-nav li.current a,.buddypress .buddypress-wrap .comment-reply-link:focus,.buddypress .buddypress-wrap .comment-reply-link:hover,.buddypress .buddypress-wrap .generic-button a:focus,.buddypress .buddypress-wrap .generic-button a:hover,.buddypress .buddypress-wrap a.button:focus,.buddypress .buddypress-wrap a.button:hover,.buddypress .buddypress-wrap button:focus,.buddypress .buddypress-wrap button:hover,.buddypress .buddypress-wrap input[type=button]:focus,.buddypress .buddypress-wrap input[type=button]:hover,.buddypress .buddypress-wrap input[type=reset]:focus,.buddypress .buddypress-wrap input[type=reset]:hover,.buddypress .buddypress-wrap input[type=submit]:focus,.buddypress .buddypress-wrap input[type=submit]:hover{background:#ededed;border-color:#999;color:#333;outline:0;text-decoration:none}.buddypress .buddypress-wrap a.disabled,.buddypress .buddypress-wrap button.disabled,.buddypress .buddypress-wrap button.pending,.buddypress .buddypress-wrap div.pending a,.buddypress .buddypress-wrap input[type=button].disabled,.buddypress .buddypress-wrap input[type=button].pending,.buddypress .buddypress-wrap input[type=reset].disabled,.buddypress .buddypress-wrap input[type=reset].pending,.buddypress .buddypress-wrap input[type=submit].pending,.buddypress .buddypress-wrap input[type=submit][disabled=disabled]{border-color:#eee;color:#767676;cursor:default}.buddypress .buddypress-wrap a.disabled:hover,.buddypress .buddypress-wrap button.disabled:hover,.buddypress .buddypress-wrap button.pending:hover,.buddypress .buddypress-wrap div.pending a:hover,.buddypress .buddypress-wrap input[type=button]:hover.disabled,.buddypress .buddypress-wrap input[type=button]:hover.pending,.buddypress .buddypress-wrap input[type=reset]:hover.disabled,.buddypress .buddypress-wrap input[type=reset]:hover.pending,.buddypress .buddypress-wrap input[type=submit]:hover.disabled,.buddypress .buddypress-wrap input[type=submit]:hover.pending{border-color:#eee;color:#767676}.buddypress .buddypress-wrap button.text-button,.buddypress .buddypress-wrap input.text-button{background:0 0;border:0;box-shadow:none;color:#767676}.buddypress .buddypress-wrap button.text-button.small,.buddypress .buddypress-wrap input.text-button.small{font-size:13px}.buddypress .buddypress-wrap button.text-button:focus,.buddypress .buddypress-wrap button.text-button:hover,.buddypress .buddypress-wrap input.text-button:focus,.buddypress .buddypress-wrap input.text-button:hover{background:0 0;text-decoration:underline}.buddypress .buddypress-wrap .activity-list a.button{border:none}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover{color:#1fb3dd}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.invite-button:hover{color:#a00}.buddypress .buddypress-wrap #item-buttons:empty{display:none}.buddypress .buddypress-wrap input:disabled:focus,.buddypress .buddypress-wrap input:disabled:hover{background:0 0}.buddypress .buddypress-wrap .text-links-list a.button{background:0 0;border:none;border-right:1px solid #eee;color:#737373;display:inline-block;padding:.3em 1em}.buddypress .buddypress-wrap .text-links-list a.button:visited{color:#d6d6d6}.buddypress .buddypress-wrap .text-links-list a.button:focus,.buddypress .buddypress-wrap .text-links-list a.button:hover{color:#5087e5}.buddypress .buddypress-wrap .text-links-list a:first-child{padding-left:0}.buddypress .buddypress-wrap .text-links-list a:last-child{border-right:none}.buddypress .buddypress-wrap .bp-list.grid .action a,.buddypress .buddypress-wrap .bp-list.grid .action button{border:1px solid #ccc;display:block;margin:0}.buddypress .buddypress-wrap .bp-list.grid .action a:focus,.buddypress .buddypress-wrap .bp-list.grid .action a:hover,.buddypress .buddypress-wrap .bp-list.grid .action button:focus,.buddypress .buddypress-wrap .bp-list.grid .action button:hover{background:#ededed}.buddypress #buddypress .create-button{background:0 0;text-align:center}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{text-decoration:underline}@media screen and (min-width:46.8em){.buddypress #buddypress .create-button{float:right}}.buddypress #buddypress .create-button a{border:1px solid #ccc;border-radius:5px;background-clip:padding-box;box-shadow:inset 0 0 6px 0 #eaeaea;margin:.2em 0;width:auto}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{background:0 0;border-color:#ccc;box-shadow:inset 0 0 12px 0 #eaeaea}@media screen and (min-width:46.8em){.buddypress #buddypress.bp-dir-vert-nav .create-button{float:none;padding-top:2em}.buddypress #buddypress.bp-dir-vert-nav .create-button a{margin-right:.5em}}.buddypress #buddypress.bp-dir-hori-nav .create-button{float:left}.buddypress #buddypress.bp-dir-hori-nav .create-button a,.buddypress #buddypress.bp-dir-hori-nav .create-button a:hover{background:0 0;border:0;box-shadow:none;margin:0}.buddypress-wrap button.ac-reply-cancel,.buddypress-wrap button.bp-icons{background:0 0;border:0}.buddypress-wrap button.bp-icons:focus,.buddypress-wrap button.bp-icons:hover{background:0 0}.buddypress-wrap button.ac-reply-cancel:focus,.buddypress-wrap button.ac-reply-cancel:hover{background:0 0;text-decoration:underline}.buddypress-wrap .bp-invites-content li .invite-button span.icons:before,.buddypress-wrap .bp-invites-filters .invite-button span.icons:before,.buddypress-wrap .bp-messages-filters li a.messages-button:before,.buddypress-wrap .feed a:before,.buddypress-wrap .filter label:before{font-family:dashicons;font-size:18px}.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:27px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:32px}}.buddypress-wrap .bp-list a.button.invite-button:focus,.buddypress-wrap .bp-list a.button.invite-button:hover{background:0 0}.buddypress-wrap .filter label:before{content:"\f536"}.buddypress-wrap div.feed a:before,.buddypress-wrap li.feed a:before{content:"\f303"}.buddypress-wrap ul.item-list li .invite-button:not(.group-remove-invite-button) span.icons:before{content:"\f502"}.buddypress-wrap ul.item-list li .group-remove-invite-button span.icons:before,.buddypress-wrap ul.item-list li.selected .invite-button span.icons:before{content:"\f153"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-next-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-next-page:before{content:"\f345"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-prev-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-prev-page:before{content:"\f341"}.buddypress-wrap .warn{color:#b71717}.buddypress-wrap .bp-messages{border:1px solid #ccc;margin:0 0 15px}.buddypress-wrap .bp-messages .sitewide-notices{display:block;margin:5px;padding:.5em}.buddypress-wrap .bp-messages.info{margin-bottom:0}.buddypress-wrap .bp-messages.updated{clear:both;display:block}.buddypress-wrap .bp-messages.bp-user-messages-feedback{border:0}.buddypress-wrap #group-create-body .bp-cover-image-status p.warning{background:#0b80a4;border:0;box-shadow:0 0 3px 0 rgba(0,0,0,.2);color:#fff}.buddypress-wrap .bp-feedback:not(.custom-homepage-info){display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;align-items:stretch}.buddypress-wrap .bp-feedback{background:#fff;color:#807f7f;box-shadow:0 1px 1px 1px rgba(0,0,0,.1);color:#737373;margin:10px 0;position:relative}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback span.bp-icon{color:#fff;display:block;font-family:dashicons;left:0;margin-right:10px;position:relative;padding:0 .5em}.buddypress-wrap .bp-feedback .bp-help-text{font-style:italic}.buddypress-wrap .bp-feedback .text{font-size:14px;margin:0;padding:.5em 0}.buddypress-wrap .bp-feedback.no-icon{padding:.5em}.buddypress-wrap .bp-feedback.small:before{line-height:inherit}.buddypress-wrap a[data-bp-close] span:before,.buddypress-wrap button[data-bp-close] span:before{font-size:32px}.buddypress-wrap a[data-bp-close],.buddypress-wrap button[data-bp-close]{border:0;position:absolute;top:10px;right:10px;width:32px}.buddypress-wrap .bp-feedback.no-icon a[data-bp-close],.buddypress-wrap .bp-feedback.no-icon button[data-bp-close]{top:-6px;right:6px}.buddypress-wrap button[data-bp-close]:hover{background-color:transparent}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback .bp-icon{font-size:20px;padding:0 2px}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon,.buddypress-wrap .bp-feedback.loading .bp-icon,.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{display:flex;align-items:center}.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon{background-color:#0b80a4}.buddypress-wrap .bp-feedback.help .bp-icon:before,.buddypress-wrap .bp-feedback.info .bp-icon:before{content:"\f348"}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{background-color:#d33}.buddypress-wrap .bp-feedback.error .bp-icon:before,.buddypress-wrap .bp-feedback.warning .bp-icon:before{content:"\f534"}.buddypress-wrap .bp-feedback.loading .bp-icon{background-color:#ffd087}.buddypress-wrap .bp-feedback.loading .bp-icon:before{content:"\f469"}.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon{background-color:#8a2}.buddypress-wrap .bp-feedback.success .bp-icon:before,.buddypress-wrap .bp-feedback.updated .bp-icon:before{content:"\f147"}.buddypress-wrap .bp-feedback.help .bp-icon:before{content:"\f468"}.buddypress-wrap #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;font-weight:700;margin:10px 0 10px 0;padding:.5em;text-align:center;width:auto}.buddypress-wrap #pass-strength-result.show{display:block}.buddypress-wrap #pass-strength-result.mismatch{background-color:#333;border-color:transparent;color:#fff}.buddypress-wrap #pass-strength-result.bad,.buddypress-wrap #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c;color:#fff}.buddypress-wrap #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040;color:#fff}.buddypress-wrap #pass-strength-result.strong{background-color:#66d66e;border-color:#438c48;color:#fff}.buddypress-wrap .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px 0;padding:.5em;width:90%}.buddypress-wrap .accept,.buddypress-wrap .reject{float:left;margin-left:10px}.buddypress-wrap .members-list.grid .bp-ajax-message{background:rgba(255,255,255,.9);border:1px solid #eee;font-size:14px;left:2%;position:absolute;padding:.5em 1em;right:2%;top:30px}.buddypress.widget .item-options{font-size:12px;margin:0 0 1em;padding:1em 0}.buddypress.widget .bp-login-widget-user-avatar{float:left}.buddypress.widget .bp-login-widget-user-links{margin-left:70px}.buddypress.widget ul.item-list{list-style:none;margin:10px 0}.buddypress.widget ul.activity-list{padding:0}.buddypress.widget ul.activity-list blockquote{margin:0 0 1.5em;overflow:visible;padding:0 0 .75em .75em}.buddypress.widget ul.activity-list img{margin-bottom:.5em}.buddypress.widget ul.activity-list li{border-bottom:1px solid #ccc;margin-bottom:1em}.buddypress.widget ul.activity-list li .activity-header p{margin-bottom:.5em}.buddypress.widget ul.activity-list li:last-child{border-bottom:0}.buddypress.widget .avatar-block{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}.buddypress.widget .avatar-block img{margin:.5em}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#friends-list li:before,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#groups-list li:before,.buddypress.widget ul#members-list li:after,.buddypress.widget ul#members-list li:before{content:" ";display:table}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#members-list li:after{clear:both}.buddypress.widget ul#friends-list li,.buddypress.widget ul#groups-list li,.buddypress.widget ul#members-list li{margin-bottom:1em}.buddypress.widget ul#friends-list li .item-avatar,.buddypress.widget ul#groups-list li .item-avatar,.buddypress.widget ul#members-list li .item-avatar{float:left;width:60px}.buddypress.widget ul#friends-list li .item,.buddypress.widget ul#groups-list li .item,.buddypress.widget ul#members-list li .item{margin-left:70px}.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:column nowrap;flex-flow:column nowrap}@media screen and (min-width:32em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{border:1px solid #eee;align-items:stretch;-moz-flex:1 1 46%;-o-flex:1 1 46%;flex:1 1 46%;margin:2%}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 20%;-o-flex:0 1 20%;flex:0 1 20%}}.buddypress-wrap .buddypress.widget ul#friends-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#groups-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#members-list li .item-avatar{padding:.5em;text-align:center}.buddypress-wrap .buddypress.widget ul#friends-list li .item,.buddypress-wrap .buddypress.widget ul#groups-list li .item,.buddypress-wrap .buddypress.widget ul#members-list li .item{padding:.5em}.buddypress-wrap .buddypress.widget ul#friends-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#groups-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#members-list li .item .item-meta{font-size:12px;overflow-wrap:break-word}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{margin:10px -2%;width:100%}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 auto;-o-flex:0 1 auto;flex:0 1 auto;margin:10px 2% 1%;width:46%}}.buddypress-wrap .buddypress.widget blockquote{margin:0 0 1.5em;overflow:visible;padding:0 0 .75em .75em}#buddypress-wrap *{transition:opacity .1s ease-in-out .1s}#buddypress-wrap a.button,#buddypress-wrap a.generic-button,#buddypress-wrap button,#buddypress-wrap input[type=reset],#buddypress-wrap input[type=submit]{transition:background .1s ease-in-out .1s,color .1s ease-in-out .1s,border-color .1s ease-in-out .1s}.buddypress-wrap a.loading,.buddypress-wrap input.loading{animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@keyframes loader-pulsate{from{border-color:#aaa;box-shadow:0 0 6px #ccc}to{border-color:#ccc;box-shadow:0 0 6px #f8f8f8}}.buddypress-wrap a.loading:hover,.buddypress-wrap input.loading:hover{color:#777}[data-bp-tooltip]{position:relative}[data-bp-tooltip]:after{background-color:#fff;display:none;opacity:0;position:absolute;transform:translate3d(0,0,0);visibility:hidden}[data-bp-tooltip]:after{border:1px solid #737373;border-radius:1px;box-shadow:4px 4px 8px rgba(0,0,0,.2);color:#333;content:attr(data-bp-tooltip);font-family:"Helvetica Neue",helvetica,arial,san-serif;font-size:12px;font-weight:400;letter-spacing:normal;line-height:1.25;max-width:200px;padding:5px 8px;pointer-events:none;text-shadow:none;text-transform:none;transition:all 1.5s ease;white-space:nowrap;word-wrap:break-word;z-index:100000}[data-bp-tooltip]:active:after,[data-bp-tooltip]:focus:after,[data-bp-tooltip]:hover:after{display:block;opacity:1;overflow:visible;visibility:visible}[data-bp-tooltip=""]{display:none;opacity:0;visibility:hidden}.bp-tooltip:after{left:50%;margin-top:7px;top:110%;transform:translate(-50%,0)}.user-list .bp-tooltip:after{left:0;transform:translate(0,0)}@media screen and (min-width:46.8em){.user-list .bp-tooltip:after{left:auto;right:0;transform:translate(0,0)}}.activity-list .bp-tooltip:after,.activity-meta-action .bp-tooltip:after,.avatar-block .item-avatar .bp-tooltip:after,.notification-actions .bp-tooltip:after,.participants-list .bp-tooltip:after{left:0;transform:translate(0,0)}.bp-invites-content .bp-tooltip:after,.message-metadata .actions .bp-tooltip:after,.single-message-thread-header .actions .bp-tooltip:after{left:auto;right:0;transform:translate(0,0)}.bp-invites-content #send-invites-editor .bp-tooltip:after{left:0;right:auto}#item-body,.single-screen-navs{box-sizing:border-box}.grid>li,.grid>li .generic-button a{box-sizing:border-box}.grid>li{border-bottom:0;padding-bottom:10px;padding-top:0}.grid>li .list-wrap{background:#fafafa;border:1px solid #eee;padding-bottom:15px;position:relative;overflow:hidden;padding-top:14px}.grid>li .list-wrap .list-title{padding:.5em}.grid>li .list-wrap .update{color:#737373;padding:.5em 2em}.grid>li .item-avatar{text-align:center}.grid>li .item-avatar .avatar{border-radius:50%;display:inline-block;width:50%}@media screen and (min-width:24em){.grid.members-list .list-wrap{min-height:340px}.grid.members-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.members-group-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.groups-list .list-wrap{min-height:470px}.grid.groups-list .list-wrap .item-block{min-height:6rem}.grid.groups-list .list-wrap .group-desc{margin:15px auto 0;min-height:5em;overflow:hidden}.grid.groups-list .list-wrap .group-details,.grid.groups-list .list-wrap .item-desc,.grid.groups-list .list-wrap .last-activity{margin-bottom:0}.grid.groups-list .list-wrap .group-details p,.grid.groups-list .list-wrap .item-desc p,.grid.groups-list .list-wrap .last-activity p{margin-bottom:0}.grid.blogs-list .list-wrap{min-height:350px}.grid.blogs-list .list-wrap .item-block{margin:0 auto;min-height:7rem}}@media screen and (min-width:24em){.grid>li.item-entry{float:left;margin:0}.grid.two>li{padding-bottom:20px}}@media screen and (min-width:24em) and (min-width:75em){.grid.two>li .list-wrap{max-width:500px;margin:0 auto}}@media screen and (min-width:24em){.grid.three>li,.grid.two>li{width:50%}.grid.three>li:nth-child(odd),.grid.two>li:nth-child(odd){padding-right:10px}.grid.three>li:nth-child(even),.grid.two>li:nth-child(even){padding-left:10px}.grid.three>li .item,.grid.two>li .item{margin:1rem auto 0;width:80%}.grid.three>li .item .item-title,.grid.two>li .item .item-title{width:auto}}@media screen and (min-width:46.8em){.grid.three>li{padding-top:0;width:33.333333%;width:calc(100% / 3)}.grid.three>li:nth-child(1n+1){padding-left:5px;padding-right:5px}.grid.three>li:nth-child(3n+3){padding-left:5px;padding-right:0}.grid.three>li:nth-child(3n+1){padding-left:0;padding-right:5px}}@media screen and (min-width:46.8em){.grid.four>li{width:25%}.grid.four>li:nth-child(1n+1){padding-left:5px;padding-right:5px}.grid.four>li:nth-child(4n+4){padding-left:5px;padding-right:0}.grid.four>li:nth-child(4n+1){padding-left:0;padding-right:5px}}.buddypress-wrap .grid.bp-list{padding-top:1em}.buddypress-wrap .grid.bp-list>li{border-bottom:none}.buddypress-wrap .grid.bp-list>li .list-wrap{padding-bottom:3em}.buddypress-wrap .grid.bp-list>li .item-avatar{margin:0;text-align:center;width:auto}.buddypress-wrap .grid.bp-list>li .item-avatar img.avatar{display:inline-block;height:auto;width:50%}.buddypress-wrap .grid.bp-list>li .item-meta,.buddypress-wrap .grid.bp-list>li .list-title{float:none;text-align:center}.buddypress-wrap .grid.bp-list>li .list-title{font-size:inherit;line-height:1.1}.buddypress-wrap .grid.bp-list>li .item{font-size:18px;left:0;margin:0 auto;text-align:center;width:96%}@media screen and (min-width:46.8em){.buddypress-wrap .grid.bp-list>li .item{font-size:22px}}.buddypress-wrap .grid.bp-list>li .item .group-desc,.buddypress-wrap .grid.bp-list>li .item .item-block{float:none;width:96%}.buddypress-wrap .grid.bp-list>li .item .item-block{margin-bottom:10px}.buddypress-wrap .grid.bp-list>li .item .last-activity{margin-top:5px}.buddypress-wrap .grid.bp-list>li .item .group-desc{clear:none}.buddypress-wrap .grid.bp-list>li .item .user-update{clear:both;text-align:left}.buddypress-wrap .grid.bp-list>li .item .activity-read-more a{display:inline}.buddypress-wrap .grid.bp-list>li .action{bottom:5px;float:none;height:auto;left:0;margin:0;padding:0 5px;position:absolute;text-align:center;top:auto;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button{float:none;margin:5px 0 0;text-align:center;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button a,.buddypress-wrap .grid.bp-list>li .action .generic-button button{width:100%}.buddypress-wrap .grid.bp-list>li .avatar,.buddypress-wrap .grid.bp-list>li .item,.buddypress-wrap .grid.bp-list>li .item-avatar{float:none}.buddypress-wrap .blogs-list.grid.two>li .blogs-title{min-height:5em}.buddypress-wrap .grid.four>li .group-desc,.buddypress-wrap .grid.three>li .group-desc{min-height:8em}.buddypress-wrap .blogs-list.grid.four>li,.buddypress-wrap .blogs-list.grid.three>li{min-height:350px}.buddypress-wrap .blogs-list.grid.four>li .last-activity,.buddypress-wrap .blogs-list.grid.three>li .last-activity{margin-bottom:0}.buddypress-wrap .blogs-list.grid.four>li .last-post,.buddypress-wrap .blogs-list.grid.three>li .last-post{margin-top:0}.buddypress:not(.logged-in) .grid.bp-list .list-wrap{padding-bottom:5px}.buddypress:not(.logged-in) .grid.groups-list .list-wrap{min-height:430px}.buddypress:not(.logged-in) .grid.members-list .list-wrap{min-height:300px}.buddypress:not(.logged-in) .grid.blogs-list .list-wrap{min-height:320px}@media screen and (min-width:46.8em){.bp-single-vert-nav .bp-navs.vertical{overflow:visible}.bp-single-vert-nav .bp-navs.vertical ul{border-right:1px solid #d6d6d6;border-bottom:0;float:left;margin-right:-1px;width:25%}.bp-single-vert-nav .bp-navs.vertical li{float:none;margin-right:0}.bp-single-vert-nav .bp-navs.vertical li.selected a{background:#ccc;color:#333}.bp-single-vert-nav .bp-navs.vertical li:focus,.bp-single-vert-nav .bp-navs.vertical li:hover{background:#ccc}.bp-single-vert-nav .bp-navs.vertical li span{background:#d6d6d6;border-radius:10%;float:right;margin-right:2px}.bp-single-vert-nav .bp-navs.vertical li:hover span{border-color:#eaeaea}.bp-single-vert-nav .bp-navs.vertical.tabbed-links li.selected a{padding-left:0}.bp-single-vert-nav .bp-wrap{margin-bottom:15px}.bp-single-vert-nav .bp-wrap .group-nav-tabs.groups-nav ul li,.bp-single-vert-nav .bp-wrap .user-nav-tabs.users-nav ul li{left:1px;position:relative}.bp-single-vert-nav .item-body:not(#group-create-body){background:#fff;border-left:1px solid #d6d6d6;float:right;margin:0;min-height:400px;padding:0 0 0 1em;width:calc(75% + 1px)}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links){background:#eaeaea;margin:0 0 0 -5px;width:auto}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li{font-size:16px;margin:10px 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a{border-right:1px solid #ccc;padding:0 .5em}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:focus,.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:hover{background:0 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li.current a{background:0 0;color:#333;text-decoration:underline}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li:last-child a{border:none}.bp-dir-vert-nav .dir-navs{float:left;left:1px;position:relative;width:20%}.bp-dir-vert-nav .dir-navs ul li{float:none;overflow:hidden;width:auto}.bp-dir-vert-nav .dir-navs ul li.selected{border:1px solid #eee}.bp-dir-vert-nav .dir-navs ul li.selected a{background:#555;color:#fff}.bp-dir-vert-nav .dir-navs ul li.selected a span{background:#eaeaea;border-color:#ccc;color:#5087e5}.bp-dir-vert-nav .dir-navs ul li a:focus,.bp-dir-vert-nav .dir-navs ul li a:hover{background:#ccc;color:#333}.bp-dir-vert-nav .dir-navs ul li a:focus span,.bp-dir-vert-nav .dir-navs ul li a:hover span{border:1px solid #555}.bp-dir-vert-nav .screen-content{border-left:1px solid #d6d6d6;margin-left:20%;overflow:hidden;padding:0 0 2em 1em}.bp-dir-vert-nav .screen-content .subnav-filters{margin-top:0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:hover{background:0 0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected{background:0 0;border:1px solid #d6d6d6;border-right-color:#fff}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a{background:0 0;color:#333;font-weight:600}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a span{background:#555;border:1px solid #d6d6d6;color:#fff}}
\ No newline at end of file
+body #buddypress * a{box-shadow:none;text-decoration:none}body #buddypress div,body #buddypress dl,body #buddypress input[type=reset],body #buddypress input[type=search],body #buddypress input[type=submit],body #buddypress li,body #buddypress select,body #buddypress textarea{border-radius:2px;background-clip:padding-box}body #buddypress #item-body blockquote,body #buddypress .bp-lists blockquote{margin-left:0}body #buddypress .bp-list .action{box-sizing:border-box}@media screen and (min-width:46.8em){body.buddypress .entry-content,body.buddypress .entry-header,body.buddypress .site-content .entry-header{max-width:none}body.buddypress .entry-header{float:none;max-width:none}body.buddypress .entry .entry-content>*,body.buddypress .entry-content{float:none;max-width:none}body.buddypress .site-content{padding-top:2.5em}body.buddypress #page #primary{max-width:none}body.buddypress #page #primary .entry-content,body.buddypress #page #primary .entry-header{float:none;width:auto}}body.buddypress .buddypress-wrap h1,body.buddypress .buddypress-wrap h2,body.buddypress .buddypress-wrap h3,body.buddypress .buddypress-wrap h4,body.buddypress .buddypress-wrap h5,body.buddypress .buddypress-wrap h6{clear:none;margin:1em 0;padding:0}body.buddypress .buddypress-wrap h2:before{display:none}.bp-wrap:after,.bp-wrap:before{content:" ";display:table}.bp-wrap:after{clear:both}.buddypress-wrap.round-avatars .avatar{border-radius:50%}body.buddypress article.page>.entry-header{margin-bottom:2em;padding:0}body.buddypress article.page>.entry-header .entry-title{font-size:28px;font-weight:inherit;color:#767676}@media screen and (min-width:46.8em){body.buddypress article.page>.entry-header .entry-title{font-size:34px}}.buddypress-wrap dt.section-title{font-size:18px}@media screen and (min-width:46.8em){.buddypress-wrap dt.section-title{font-size:22px}}.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-label-text,.buddypress-wrap .message-threads{font-size:16px}}.buddypress-wrap .activity-header{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-header{font-size:16px}}.buddypress-wrap .activity-inner{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .activity-inner{font-size:18px}}.buddypress-wrap #whats-new-post-in{font-size:16px}.buddypress-wrap .acomment-meta,.buddypress-wrap .mini .activity-header{font-size:16px}.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .dir-component-filters #activity-filter-by{font-size:16px}}.buddypress-wrap .bp-tables-user th{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user th{font-size:16px}}.buddypress-wrap .bp-tables-user td{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-tables-user td{font-size:14px}}.buddypress-wrap .profile-fields th{font-size:15px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields th{font-size:18px}}.buddypress-wrap .profile-fields td{font-size:13px}@media screen and (min-width:46.8em){.buddypress-wrap .profile-fields td{font-size:16px}}.buddypress-wrap #notification-select{font-size:12px}@media screen and (min-width:46.8em){.buddypress-wrap #notification-select{font-size:14px}}.bp-navs{background:0 0;clear:both;overflow:hidden}.bp-navs ul{margin:0;padding:0}.bp-navs ul li{list-style:none;margin:0}.bp-navs ul li.last select{max-width:185px}.bp-navs ul li a,.bp-navs ul li span{border:0;display:block;padding:5px 10px;text-decoration:none}.bp-navs ul li .count{background:#eaeaea;border:1px solid #ccc;border-radius:50%;color:#555;display:inline;font-size:12px;margin-left:2px;padding:3px 6px;text-align:center;vertical-align:middle}.bp-navs ul li.current a,.bp-navs ul li.selected a{color:#333;opacity:1}.bp-navs.bp-invites-filters ul li a,.bp-navs.bp-messages-filters ul li a{border:1px solid #ccc;display:inline-block}.main-navs.dir-navs{margin-bottom:20px}.buddypress-wrap .bp-navs li a:hover a .count,.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count{background-color:#ccc}.buddypress-wrap .bp-navs li:not(.current) a:focus,.buddypress-wrap .bp-navs li:not(.current) a:hover,.buddypress-wrap .bp-navs li:not(.selected) a:focus,.buddypress-wrap .bp-navs li:not(.selected) a:hover{background:#ccc;color:#333}.buddypress-wrap .bp-navs li.current a,.buddypress-wrap .bp-navs li.current a:focus,.buddypress-wrap .bp-navs li.current a:hover,.buddypress-wrap .bp-navs li.selected a,.buddypress-wrap .bp-navs li.selected a:focus,.buddypress-wrap .bp-navs li.selected a:hover{background:#555;color:#fafafa}@media screen and (min-width:46.8em){.buddypress-wrap .main-navs:not(.dir-navs) li.current a,.buddypress-wrap .main-navs:not(.dir-navs) li.selected a{background:#fff;color:#333;font-weight:600}.buddypress-wrap .main-navs.vertical li.current a,.buddypress-wrap .main-navs.vertical li.selected a{background:#555;color:#fafafa;text-decoration:none}.buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links){border-bottom:1px solid #eee;border-top:1px solid #eee;box-shadow:0 2px 12px 0 #fafafa}}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.selected a{background:#fff;color:#333;font-weight:600}@media screen and (max-width:46.8em){.buddypress-wrap:not(.bp-single-vert-nav) .bp-navs li{background:#eaeaea}}.buddypress-wrap:not(.bp-single-vert-nav) .main-navs>ul>li>a{padding:.5em calc(.5em + 2px)}.buddypress-wrap:not(.bp-single-vert-nav) .group-subnav#subsubnav,.buddypress-wrap:not(.bp-single-vert-nav) .user-subnav#subsubnav{background:0 0}.buddypress-wrap .bp-subnavs,.buddypress-wrap ul.subnav{width:100%}.buddypress-wrap .bp-subnavs{margin:10px 0;overflow:hidden}.buddypress-wrap .bp-subnavs ul li{margin-top:0}.buddypress-wrap .bp-subnavs ul li.current :focus,.buddypress-wrap .bp-subnavs ul li.current :hover,.buddypress-wrap .bp-subnavs ul li.selected :focus,.buddypress-wrap .bp-subnavs ul li.selected :hover{background:0 0;color:#333}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap .bp-navs.bp-invites-filters#subsubnav ul li.last,.buddypress-wrap .bp-navs.bp-invites-nav#subnav ul li.last,.buddypress-wrap .bp-navs.bp-messages-filters#subsubnav ul li.last{margin-top:0}@media screen and (max-width:46.8em){.buddypress-wrap .single-screen-navs{border:1px solid #eee}.buddypress-wrap .single-screen-navs li{border-bottom:1px solid #eee}.buddypress-wrap .single-screen-navs li:last-child{border-bottom:none}.buddypress-wrap .bp-subnavs li a{font-size:14px}.buddypress-wrap .bp-subnavs li.current a,.buddypress-wrap .bp-subnavs li.current a:focus,.buddypress-wrap .bp-subnavs li.current a:hover,.buddypress-wrap .bp-subnavs li.selected a,.buddypress-wrap .bp-subnavs li.selected a:focus,.buddypress-wrap .bp-subnavs li.selected a:hover{background:#555;color:#fff}}.buddypress-wrap .bp-navs li.current a .count,.buddypress-wrap .bp-navs li.selected a .count,.buddypress_object_nav .bp-navs li.current a .count,.buddypress_object_nav .bp-navs li.selected a .count{background-color:#fff}.buddypress-wrap .bp-navs li.dynamic a .count,.buddypress-wrap .bp-navs li.dynamic.current a .count,.buddypress-wrap .bp-navs li.dynamic.selected a .count,.buddypress_object_nav .bp-navs li.dynamic a .count,.buddypress_object_nav .bp-navs li.dynamic.current a .count,.buddypress_object_nav .bp-navs li.dynamic.selected a .count{background-color:#5087e5;border:0;color:#fafafa}.buddypress-wrap .bp-navs li.dynamic a:hover .count,.buddypress_object_nav .bp-navs li.dynamic a:hover .count{background-color:#5087e5;border:0;color:#fff}.buddypress-wrap .bp-navs li a .count:empty,.buddypress_object_nav .bp-navs li a .count:empty{display:none}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current),.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current){color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a:hover{background:0 0;color:#333}.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress-wrap .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:focus,.buddypress_object_nav .bp-navs.group-create-links ul li:not(.current) a[disabled]:hover{color:#767676}.buddypress-wrap .bp-navs.group-create-links ul li.current a,.buddypress_object_nav .bp-navs.group-create-links ul li.current a{text-align:center}@media screen and (min-width:46.8em){.buddypress-wrap .bp-navs li{float:left}.buddypress-wrap .subnav{float:left}.buddypress-wrap ul.subnav{width:auto}.buddypress-wrap #subsubnav .activity-search{float:left}.buddypress-wrap #subsubnav .filter{float:right}}.buddypress_object_nav .bp-navs li a .count{display:inline-block;float:right}@media screen and (min-width:46.8em){.bp-dir-vert-nav .bp-navs.dir-navs{background:0 0}.bp-dir-vert-nav .bp-navs.dir-navs a .count{float:right}}@media screen and (min-width:46.8em){.buddypress-wrap .tabbed-links ol,.buddypress-wrap .tabbed-links ul{border-bottom:1px solid #ccc;float:none;margin:20px 0 10px}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ol:before,.buddypress-wrap .tabbed-links ul:after,.buddypress-wrap .tabbed-links ul:before{content:" ";display:block}.buddypress-wrap .tabbed-links ol:after,.buddypress-wrap .tabbed-links ul:after{clear:both}.buddypress-wrap .tabbed-links ol li,.buddypress-wrap .tabbed-links ul li{float:left;list-style:none;margin:0 10px 0 0}.buddypress-wrap .tabbed-links ol li a,.buddypress-wrap .tabbed-links ol li span:not(.count),.buddypress-wrap .tabbed-links ul li a,.buddypress-wrap .tabbed-links ul li span:not(.count){background:0 0;border:none;display:block;padding:4px 10px}.buddypress-wrap .tabbed-links ol li a:focus,.buddypress-wrap .tabbed-links ol li a:hover,.buddypress-wrap .tabbed-links ul li a:focus,.buddypress-wrap .tabbed-links ul li a:hover{background:0 0}.buddypress-wrap .tabbed-links ol li:not(.current),.buddypress-wrap .tabbed-links ul li:not(.current){margin-bottom:2px}.buddypress-wrap .tabbed-links ol li.current,.buddypress-wrap .tabbed-links ul li.current{border-color:#ccc #ccc #fff;border-style:solid;border-top-left-radius:4px;border-top-right-radius:4px;border-width:1px;margin-bottom:-1px;padding:0 .5em 1px}.buddypress-wrap .tabbed-links ol li.current a,.buddypress-wrap .tabbed-links ul li.current a{background:0 0;color:#333}.buddypress-wrap .bp-subnavs.tabbed-links>ul{margin-top:0}.buddypress-wrap .bp-navs.tabbed-links{background:0 0;margin-top:2px}.buddypress-wrap .bp-navs.tabbed-links ul li a{border-right:0;font-size:inherit}.buddypress-wrap .bp-navs.tabbed-links ul li.last{float:right;margin:0}.buddypress-wrap .bp-navs.tabbed-links ul li.last a{margin-top:-.5em}.buddypress-wrap .bp-navs.tabbed-links ul li a,.buddypress-wrap .bp-navs.tabbed-links ul li a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li a:hover,.buddypress-wrap .bp-navs.tabbed-links ul li.current a,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:focus,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:hover{background:0 0;border:0}.buddypress-wrap .bp-navs.tabbed-links ul li a:active,.buddypress-wrap .bp-navs.tabbed-links ul li.current a:active{outline:0}}.buddypress-wrap .dir-component-filters .filter label{display:inline}.buddypress-wrap .subnav-filters:after,.buddypress-wrap .subnav-filters:before{content:" ";display:table}.buddypress-wrap .subnav-filters:after{clear:both}.buddypress-wrap .subnav-filters{background:0 0;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .subnav-filters div{margin:0}.buddypress-wrap .subnav-filters>ul{float:left;list-style:none}.buddypress-wrap .subnav-filters.bp-messages-filters ul{width:100%}.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:1em}@media screen and (min-width:46.8em){.buddypress-wrap .subnav-filters.bp-messages-filters .messages-search{margin-bottom:0}}.buddypress-wrap .subnav-filters div{float:none}.buddypress-wrap .subnav-filters div input[type=search],.buddypress-wrap .subnav-filters div select{font-size:16px}.buddypress-wrap .subnav-filters div button.nouveau-search-submit{padding:5px .8em 6px}.buddypress-wrap .subnav-filters div button#user_messages_search_submit{padding:7px .8em}.buddypress-wrap .subnav-filters .component-filters{margin-top:10px}.buddypress-wrap .subnav-filters .feed{margin-right:15px}.buddypress-wrap .subnav-filters .last.filter label{display:inline}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:before{content:" ";display:table}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap:after{clear:both}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-show{display:inline-block}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions-wrap.bp-hide{display:none}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap{border:0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:focus,.buddypress-wrap .subnav-filters .user-messages-bulk-actions .select-wrap:hover{outline:1px solid #d6d6d6}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-actions{float:left}.buddypress-wrap .subnav-filters .user-messages-bulk-actions label{display:inline-block;font-weight:300;margin-right:25px;padding:5px 0}.buddypress-wrap .subnav-filters .user-messages-bulk-actions div select{-webkit-appearance:textfield}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply{border:0;border-radius:none;font-weight:400;line-height:1.8;margin:0 0 0 10px;padding:3px 5px;text-align:center;text-transform:none;width:auto}.buddypress-wrap .subnav-filters .user-messages-bulk-actions .bulk-apply span{vertical-align:middle}@media screen and (min-width:32em){.buddypress-wrap .subnav-filters li{margin-bottom:0}.buddypress-wrap .subnav-filters .bp-search,.buddypress-wrap .subnav-filters .dir-search,.buddypress-wrap .subnav-filters .feed,.buddypress-wrap .subnav-filters .group-act-search,.buddypress-wrap .subnav-filters .group-invites-search,.buddypress-wrap .subnav-filters .subnav-search,.buddypress-wrap .subnav-filters .subnav-search form,.buddypress-wrap .subnav-filters .user-messages-bulk-actions,.buddypress-wrap .subnav-filters .user-messages-search{float:left}.buddypress-wrap .subnav-filters .component-filters,.buddypress-wrap .subnav-filters .last{float:right;margin-top:0;width:auto}.buddypress-wrap .subnav-filters .component-filters select,.buddypress-wrap .subnav-filters .last select{max-width:250px}.buddypress-wrap .subnav-filters .user-messages-search{float:right}}.buddypress-wrap .notifications-options-nav input#notification-bulk-manage{border:0;border-radius:0;line-height:1.6}.buddypress-wrap .group-subnav-filters .group-invites-search{margin-bottom:1em}.buddypress-wrap .group-subnav-filters .last{text-align:center}.buddypress-wrap .bp-pagination{background:0 0;border:0;color:#767676;float:left;font-size:small;margin:0;padding:.5em 0;position:relative;width:100%}.buddypress-wrap .bp-pagination .pag-count{float:left}.buddypress-wrap .bp-pagination .bp-pagination-links{float:right;margin-right:10px}.buddypress-wrap .bp-pagination .bp-pagination-links a,.buddypress-wrap .bp-pagination .bp-pagination-links span{font-size:small;padding:0 5px}.buddypress-wrap .bp-pagination .bp-pagination-links a:focus,.buddypress-wrap .bp-pagination .bp-pagination-links a:hover{opacity:1}.buddypress-wrap .bp-pagination p{margin:0}.bp-list:after,.bp-list:before{content:" ";display:table}.bp-list:after{clear:both}.bp-list{box-sizing:border-box;border-top:1px solid #eaeaea;clear:both;list-style:none;margin:20px 0;padding:.5em 0;width:100%}.bp-list li:after,.bp-list li:before{content:" ";display:table}.bp-list li:after{clear:both}.bp-list>li{border-bottom:1px solid #eaeaea}.bp-list li{list-style:none;margin:10px 0;padding:.5em 0;position:relative}.bp-list li .item-avatar{text-align:center}.bp-list li .item-avatar img.avatar{display:inline-block;width:auto;height:auto}.bp-list li .item .group-details,.bp-list li .item .item-avatar,.bp-list li .item .item-meta,.bp-list li .item .list-title{text-align:center}.bp-list li .item .list-title{clear:none;font-size:22px;font-weight:400;line-height:1.1;margin:0 auto}@media screen and (min-width:46.8em){.bp-list li .item .list-title{font-size:26px}}.bp-list li .item-meta,.bp-list li .meta{color:#737373;font-size:12px;margin-bottom:10px;margin-top:10px}.bp-list li .last-post{text-align:center}.bp-list li .action{margin:0;text-align:center}.bp-list li .action .generic-button{display:inline-block;font-size:12px;margin:0 10px 0 0}.bp-list li .action div.generic-button{margin:10px 0}@media screen and (min-width:46.8em){.bp-list li .item-avatar{float:left;margin-right:5%}.bp-list li .item{margin:0;overflow:hidden}.bp-list li .item .item-block{float:left;margin-right:2%;width:50%}.bp-list li .item .item-meta,.bp-list li .item .list-title{float:left;text-align:left}.bp-list li .item .group-details,.bp-list li .item .last-post{text-align:left}.bp-list li .group-desc,.bp-list li .last-post,.bp-list li .user-update{clear:none;overflow:hidden;width:auto}.bp-list li .action{clear:left;padding:0;text-align:left}.bp-list li .action li.generic-button{margin-right:0}.bp-list li .action div.generic-button{margin:0 0 10px}.bp-list li .generic-button{display:block;margin:0 0 5px 0}}@media screen and (min-width:32em){#activity-stream{clear:both;padding-top:1em}}.activity-list.bp-list{background:#fafafa;border:1px solid #eee}.activity-list.bp-list .activity-item{background:#fff;border:1px solid #b7b7b7;box-shadow:0 0 6px #d2d2d2;margin:20px 0}.activity-list.bp-list li:first-child{margin-top:0}.friends-list{list-style-type:none}.friends-request-list .item-title,.membership-requests-list .item-title{text-align:center}@media screen and (min-width:46.8em){.friends-request-list li,.membership-requests-list li{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap}.friends-request-list li .item,.membership-requests-list li .item{-moz-flex:1 1 auto;-o-flex:1 1 auto;flex:1 1 auto}.friends-request-list li .action,.membership-requests-list li .action{text-align:right}.friends-request-list li .item-title,.membership-requests-list li .item-title{font-size:22px;text-align:left}.friends-request-list li .item-title h3,.membership-requests-list li .item-title h3{margin:0}}#notifications-user-list{clear:both;padding-top:1em}@media screen and (min-width:46.8em){body:not(.logged-in) .bp-list .item{margin-right:0}}.activity-permalink .item-list,.activity-permalink .item-list li.activity-item{border:0}.activity-update-form{padding:10px 10px 0}.item-body .activity-update-form .activity-form{margin:0;padding:0}.activity-update-form{border:1px solid #ccc;box-shadow:inset 0 0 6px #eee;margin:15px 0}.activity-update-form #whats-new-avatar{margin:10px 0;text-align:center}.activity-update-form #whats-new-avatar img{box-shadow:none;display:inline-block;height:auto;width:auto}.activity-update-form #whats-new-content{padding:0 0 20px 0}.activity-update-form #whats-new-textarea textarea{background:#fff;box-sizing:border-box;color:#333;font-family:inherit;font-size:medium;height:2.2em;line-height:1.4;padding:6px;width:100%}.activity-update-form #whats-new-textarea textarea:focus{box-shadow:0 0 6px 0 #d6d6d6}.activity-update-form #whats-new-post-in-box{margin:10px 0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items{list-style:none;margin:10px 0;padding-left:0}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items li{margin-bottom:10px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items button.bp-remove-item{margin-left:10px;height:auto}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items #activity-autocomplete{padding:.3em;width:100%}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object{display:flex;align-items:center;padding:.2em}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object .avatar{width:30px;height:30px}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object span{padding-left:10px;vertical-align:middle}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:focus,.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:hover{background:#eaeaea;cursor:pointer}.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object.selected{border:1px solid #d6d6d6}.activity-update-form #whats-new-submit{margin:15px 0 10px}.activity-update-form #whats-new-submit input{font-size:14px;line-height:inherit;margin-bottom:10px;margin-right:10px;padding:.2em 0;text-align:center;width:100%}@media screen and (min-width:46.8em){.activity-update-form #whats-new-avatar{display:block;float:left;margin:0}.activity-update-form #whats-new-content,.activity-update-form #whats-new-post-in-box,.activity-update-form #whats-new-submit{margin-left:55px}.activity-update-form #whats-new-submit input{margin-bottom:0;margin-right:10px;width:8em}}.activity-list{padding:.5em}.activity-list .activity-item:after,.activity-list .activity-item:before{content:" ";display:table}.activity-list .activity-item:after{clear:both}.activity-list .activity-item{list-style:none;padding:1em}.activity-list .activity-item.has-comments{padding-bottom:1em}.activity-list .activity-item div.item-avatar{margin:0 auto;text-align:center;width:auto}.activity-list .activity-item div.item-avatar img{height:auto;max-width:40%}@media screen and (min-width:46.8em){.activity-list .activity-item div.item-avatar{margin:0 2% 0 0;text-align:left;width:15%}.activity-list .activity-item div.item-avatar img{max-width:80%}}.activity-list .activity-item.mini{font-size:13px;position:relative}.activity-list .activity-item.mini .activity-avatar{margin-left:0 auto;text-align:center;width:auto}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:15%}@media screen and (min-width:46.8em){.activity-list .activity-item.mini .activity-avatar{margin-left:15px;text-align:left;width:15%}.activity-list .activity-item.mini .activity-avatar img.FB_profile_pic,.activity-list .activity-item.mini .activity-avatar img.avatar{max-width:60%}}.activity-list .activity-item.new_forum_post .activity-inner,.activity-list .activity-item.new_forum_topic .activity-inner{border-left:2px solid #eaeaea;margin-left:10px;padding-left:1em}.activity-list .activity-item.newest_blogs_activity,.activity-list .activity-item.newest_friends_activity,.activity-list .activity-item.newest_groups_activity,.activity-list .activity-item.newest_mentions_activity{background:rgba(31,179,221,.1)}.activity-list .activity-item .activity-inreplyto{color:#767676;font-size:13px}.activity-list .activity-item .activity-inreplyto>p{display:inline;margin:0}.activity-list .activity-item .activity-inreplyto .activity-inner,.activity-list .activity-item .activity-inreplyto blockquote{background:0 0;border:0;display:inline;margin:0;overflow:hidden;padding:0}.activity-list .activity-item .activity-header{margin:0 auto;width:80%}.activity-list .activity-item .activity-header a,.activity-list .activity-item .activity-header img{display:inline}.activity-list .activity-item .activity-header .avatar{display:inline-block;margin:0 5px;vertical-align:text-top;width:20px;height:20px}.activity-list .activity-item .activity-header .time-since{font-size:14px;color:#767676;text-decoration:none}.activity-list .activity-item .activity-header .time-since:hover{color:#767676;cursor:pointer;text-decoration:underline}.activity-list .activity-item .activity-content .activity-header,.activity-list .activity-item .activity-content .comment-header{color:#767676;margin-bottom:10px}.activity-list .activity-item .activity-content .activity-inner,.activity-list .activity-item .activity-content blockquote{background:#fafafa;margin:15px 0 10px;overflow:hidden;padding:1em}.activity-list .activity-item .activity-content p{margin:0}.activity-list .activity-item .activity-inner p{word-wrap:break-word}.activity-list .activity-item .activity-read-more{margin-left:1em;white-space:nowrap}.activity-list .activity-item ul.activity-meta{margin:0;padding-left:0}.activity-list .activity-item ul.activity-meta li{border:0;display:inline-block}.activity-list .activity-item .activity-meta.action{border:1px solid transparent;background:#fafafa;padding:2px;position:relative;text-align:left}.activity-list .activity-item .activity-meta.action div.generic-button{margin:0}.activity-list .activity-item .activity-meta.action .button{background:0 0;color:#555}.activity-list .activity-item .activity-meta.action a{padding:4px 8px}.activity-list .activity-item .activity-meta.action .button:focus,.activity-list .activity-item .activity-meta.action .button:hover{background:0 0}.activity-list .activity-item .activity-meta.action .button:before,.activity-list .activity-item .activity-meta.action .icons:before{font-family:dashicons;font-size:18px;vertical-align:middle}.activity-list .activity-item .activity-meta.action .acomment-reply.button:before{content:"\f101"}.activity-list .activity-item .activity-meta.action .view:before{content:"\f125"}.activity-list .activity-item .activity-meta.action .fav:before{content:"\f154"}.activity-list .activity-item .activity-meta.action .unfav:before{content:"\f155"}.activity-list .activity-item .activity-meta.action .delete-activity:before{content:"\f153"}.activity-list .activity-item .activity-meta.action .delete-activity:hover{color:#800}.activity-list .activity-item .activity-meta.action .button{border:0;box-shadow:none}.activity-list .activity-item .activity-meta.action .button span{background:0 0;color:#555;font-weight:700}@media screen and (min-width:46.8em){.activity-list.bp-list{padding:30px}.activity-list .activity-item .activity-content{margin:0;position:relative}.activity-list .activity-item .activity-content:after{clear:both;content:"";display:table}.activity-list .activity-item .activity-header{margin:0 15px 0 0;width:auto}}.buddypress-wrap .activity-list .load-more,.buddypress-wrap .activity-list .load-newest{background:#fafafa;border:1px solid #eee;font-size:110%;margin:15px 0;padding:0;text-align:center}.buddypress-wrap .activity-list .load-more a,.buddypress-wrap .activity-list .load-newest a{color:#555;display:block;padding:.5em 0}.buddypress-wrap .activity-list .load-more a:focus,.buddypress-wrap .activity-list .load-more a:hover,.buddypress-wrap .activity-list .load-newest a:focus,.buddypress-wrap .activity-list .load-newest a:hover{background:#fff;color:#333}.buddypress-wrap .activity-list .load-more:focus,.buddypress-wrap .activity-list .load-more:hover,.buddypress-wrap .activity-list .load-newest:focus,.buddypress-wrap .activity-list .load-newest:hover{border-color:#e1e1e1;box-shadow:0 0 6px 0 #eaeaea}body.activity-permalink .activity-list li{border-width:1px;padding:1em 0 0 0}body.activity-permalink .activity-list li:first-child{padding-top:0}body.activity-permalink .activity-list li.has-comments{padding-bottom:0}body.activity-permalink .activity-list .activity-avatar{width:auto}body.activity-permalink .activity-list .activity-avatar a{display:block}body.activity-permalink .activity-list .activity-avatar img{max-width:100%;background-color:#eaeaea}body.activity-permalink .activity-list .activity-content{border:0;font-size:100%;line-height:1.5;padding:0}body.activity-permalink .activity-list .activity-content .activity-header{margin:0;padding:.5em 0 0 0;text-align:center;width:100%}body.activity-permalink .activity-list .activity-content .activity-inner,body.activity-permalink .activity-list .activity-content blockquote{margin-left:0;margin-top:10px}body.activity-permalink .activity-list .activity-meta{margin:10px 0 10px}body.activity-permalink .activity-list .activity-comments{margin-bottom:10px}@media screen and (min-width:46.8em){body.activity-permalink .activity-list .activity-avatar{left:-20px;margin-right:0;position:relative;top:-20px}body.activity-permalink .activity-list .activity-avatar img{box-shadow:0 0 0 8px #fff}body.activity-permalink .activity-list .activity-content{margin-right:10px}body.activity-permalink .activity-list .activity-content .activity-header p{text-align:left}}.buddypress-wrap .activity-comments{clear:both;margin:0 5%;overflow:hidden;position:relative;width:auto}.buddypress-wrap .activity-comments ul{clear:both;list-style:none;margin:15px 0 0;padding:0}.buddypress-wrap .activity-comments ul li{border-top:1px solid #eee;border-bottom:0;padding:1em 0 0}.buddypress-wrap .activity-comments ul li ul{margin-left:5%}.buddypress-wrap .activity-comments ul li:first-child{border-top:0}.buddypress-wrap .activity-comments ul li:last-child{margin-bottom:0}.buddypress-wrap .activity-comments div.acomment-avatar{width:auto}.buddypress-wrap .activity-comments div.acomment-avatar img{border-width:1px;float:left;height:25px;max-width:none;width:25px}.buddypress-wrap .activity-comments .acomment-content p,.buddypress-wrap .activity-comments .acomment-meta{font-size:14px}.buddypress-wrap .activity-comments .acomment-meta{color:#555;overflow:hidden;padding-left:2%}.buddypress-wrap .activity-comments .acomment-content{border-left:1px solid #ccc;margin:15px 0 0 10%;padding:.5em 1em}.buddypress-wrap .activity-comments .acomment-content p{margin-bottom:.5em}.buddypress-wrap .activity-comments .acomment-options{float:left;margin:10px 0 10px 20px}.buddypress-wrap .activity-comments .acomment-options a{color:#767676;font-size:14px}.buddypress-wrap .activity-comments .acomment-options a:focus,.buddypress-wrap .activity-comments .acomment-options a:hover{color:inherit}.buddypress-wrap .activity-comments .activity-meta.action{background:0 0;margin-top:10px}.buddypress-wrap .activity-comments .activity-meta.action button{font-size:14px;font-weight:400;text-transform:none}.buddypress-wrap .activity-comments .show-all button{font-size:14px;text-decoration:underline;padding-left:.5em}.buddypress-wrap .activity-comments .show-all button span{text-decoration:none}.buddypress-wrap .activity-comments .show-all button:focus span,.buddypress-wrap .activity-comments .show-all button:hover span{color:#5087e5}.buddypress-wrap .mini .activity-comments{clear:both;margin-top:0}body.activity-permalink .activity-comments{background:0 0;width:auto}body.activity-permalink .activity-comments>ul{padding:0 .5em 0 1em}body.activity-permalink .activity-comments ul li>ul{margin-top:10px}form.ac-form{display:none;padding:1em}form.ac-form .ac-reply-avatar{float:left}form.ac-form .ac-reply-avatar img{border:1px solid #eee}form.ac-form .ac-reply-content{color:#767676;padding-left:1em}form.ac-form .ac-reply-content a{text-decoration:none}form.ac-form .ac-reply-content .ac-textarea{margin-bottom:15px;padding:0 .5em;overflow:hidden}form.ac-form .ac-reply-content .ac-textarea textarea{background:0 0;box-shadow:none;color:#555;font-family:inherit;font-size:100%;height:60px;margin:0;outline:0;padding:.5em;width:100%}form.ac-form .ac-reply-content .ac-textarea textarea:focus{box-shadow:0 0 6px #d6d6d6}form.ac-form .ac-reply-content input{margin-top:10px}.activity-comments li form.ac-form{clear:both;margin-right:15px}.activity-comments form.root{margin-left:0}@media screen and (min-width:46.8em){.buddypress-wrap .blogs-list li .item-block{float:none;width:auto}.buddypress-wrap .blogs-list li .item-meta{clear:left;float:none}}@media screen and (min-width:46.8em){.buddypress-wrap .bp-dir-vert-nav .blogs-list .list-title{width:auto}}.buddypress-wrap .groups-list li .list-title{text-align:center}.buddypress-wrap .groups-list li .group-details{clear:left}.buddypress-wrap .groups-list li .group-desc{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;font-size:13px;color:#737373;font-style:italic;margin:10px auto 0;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .group-desc{font-size:16px}}.buddypress-wrap .groups-list li p{margin:0 0 .5em}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list li .item{margin-right:0}.buddypress-wrap .groups-list li .item-meta,.buddypress-wrap .groups-list li .list-title{text-align:left;width:auto}.buddypress-wrap .groups-list li .item-meta{margin-bottom:20px}.buddypress-wrap .groups-list li .last-activity{clear:left;margin-top:-20px}}.buddypress-wrap .groups-list li.group-no-avatar div.group-desc{margin-left:0}.buddypress-wrap .mygroups .groups-list.grid .wrap{min-height:450px;padding-bottom:0}@media screen and (min-width:46.8em){.buddypress-wrap .groups-list.grid.four .group-desc,.buddypress-wrap .groups-list.grid.three .group-desc{font-size:14px}}@media screen and (min-width:46.8em){.buddypress .bp-vertical-navs .groups-list .item-avatar{margin-right:3%;width:15%}}.buddypress-wrap .members-list li .member-name{margin-bottom:10px}.buddypress-wrap .members-list li .user-update{border:1px solid #eaeaea;border-radius:10px;background-clip:padding-box;color:#737373;font-style:italic;font-size:13px;margin:15px auto;padding:1em}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .user-update{font-size:16px}}.buddypress-wrap .members-list li .user-update .activity-read-more{display:block;font-size:12px;font-style:normal;margin-top:10px;padding-left:2px}@media screen and (min-width:46.8em){.buddypress-wrap .members-list li .last-activity{clear:left;margin-top:-10px}}@media screen and (min-width:46.8em){.buddypress-wrap .members-group-list li .joined{clear:left;float:none}}@media screen and (min-width:32em){body:not(.logged-in) .members-list .user-update{width:96%}}.register-page .register-section{box-sizing:border-box}.register-page .signup-form{margin-top:20px}.register-page .signup-form .default-profile input{margin-bottom:20px}.register-page .signup-form label,.register-page .signup-form legend{margin:10px 0 0}.register-page .signup-form .editfield{margin:15px 0}.register-page .signup-form .editfield fieldset{border:0;padding:0}.register-page .signup-form .editfield fieldset legend{margin:0 0 5px;text-indent:0}.register-page .signup-form .editfield .field-visibility-settings{padding:.5em}.register-page .signup-form .editfield .field-visibility-settings fieldset{margin:0 0 10px}.register-page .signup-form #signup-avatar img{margin:0 15px 10px 0}.register-page .signup-form .wp-pwd button{vertical-align:middle}.register-page .signup-form #pass-strength-result,.register-page .signup-form #pass1,.register-page .signup-form #pass1-text{width:10em}.register-page .signup-form #pass1{display:inline-block;margin-bottom:inherit}.register-page .signup-form #pass1-text,.register-page .signup-form .pw-weak{display:none}.register-page .signup-form .show-password #pass1-text{display:inline-block;margin-bottom:inherit}.register-page .signup-form .show-password #pass1{display:none}.register-page .signup-form .description.indicator-hint{font-size:14px}.register-page .signup-form #submit:disabled{color:#767676;opacity:.4}.register-page .signup-form .password-entry,.register-page .signup-form .password-entry-confirm{border:1px solid #eee}body.buddypress.register.js .user-pass2-wrap{display:none}body.buddypress.register.no-js .wp-hide-pw{display:none}@media screen and (min-width:46.8em){.buddypress-wrap .register-page .layout-wrap{display:flex;flex-flow:row wrap;justify-content:space-around}.buddypress-wrap .register-page .layout-wrap .default-profile{flex:1;padding-right:2em}.buddypress-wrap .register-page .layout-wrap .blog-details{flex:1;padding-left:2em}.buddypress-wrap .register-page .submit{clear:both}}@media screen and (min-width:46.8em){.buddypress-wrap.extended-default-reg .register-page .default-profile{min-width:14em;flex:1;padding-right:1em}.buddypress-wrap.extended-default-reg .register-page .extended-profile{flex:2;padding-left:1em}.buddypress-wrap.extended-default-reg .register-page .blog-details{flex:1 100%}}#group-create-body{padding:.5em}#group-create-body .creation-step-name{text-align:center}#group-create-body img.avatar{width:auto;height:auto}#group-create-body .avatar-nav-items{margin-top:15px}.single-headers:after,.single-headers:before{content:" ";display:table}.single-headers:after{clear:both}.single-headers{margin-bottom:15px}.single-headers #item-header-avatar a{display:block;text-align:center}.single-headers #item-header-avatar a img{float:none;width:auto;height:auto}.single-headers div#item-header-content{float:none}@media screen and (min-width:46.8em){.single-headers #item-header-avatar a{text-align:left}.single-headers #item-header-avatar a img{float:left}.single-headers #item-header-content{padding-left:2em}}.single-headers .activity,.single-headers .group-status{display:inline}.single-headers .group-status{font-size:18px;color:#333;padding-right:1em}.single-headers .activity{display:inline-block;font-size:12px;padding:0}.single-headers #sitewide-notice p,.single-headers div#message p{background-color:#ffd;border:1px solid #cb2;color:#440;font-weight:400;margin-top:3px;text-decoration:none}.single-headers h2{line-height:1.2;margin:0 0 5px}.single-headers h2 a{color:#767676;text-decoration:none}.single-headers h2 span.highlight{display:inline-block;font-size:60%;font-weight:400;line-height:1.7;vertical-align:middle}.single-headers h2 span.highlight span{background:#a1dcfa;color:#fff;cursor:pointer;font-size:80%;font-weight:700;margin-bottom:2px;padding:1px 4px;position:relative;right:-2px;top:-2px;vertical-align:middle}.single-headers img.avatar{float:left;margin:0 15px 19px 0}.single-headers .item-meta{color:#767676;font-size:14px;margin:15px 0 5px;padding-bottom:.5em}.single-headers ul{margin-bottom:15px}.single-headers ul li{float:right;list-style:none}.single-headers div.generic-button{text-align:center}.single-headers li.generic-button{display:inline-block;text-align:center}@media screen and (min-width:46.8em){.single-headers a.button,.single-headers div.generic-button,.single-headers li.generic-button{float:left}}.single-headers a.button,.single-headers div.generic-button{margin:10px 10px 0 0}.single-headers li.generic-button{margin:2px 10px}.single-headers li.generic-button:first-child{margin-left:0}.single-headers div#message.info{line-height:.8}body.no-js .single-item-header .js-self-profile-button{display:none}#cover-image-container{position:relative}#header-cover-image{background-color:#c5c5c5;background-position:center top;background-repeat:no-repeat;background-size:cover;border:0;display:block;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}#item-header-cover-image{position:relative;z-index:2}#item-header-cover-image #item-header-avatar{padding:0 1em}.groups-header .bp-group-type-list{margin:0}.groups-header .bp-feedback{clear:both}.groups-header .group-item-actions{float:left;margin:0 0 15px 15px;padding-top:0;width:100%}.groups-header .moderators-lists{margin-top:0}.groups-header .moderators-lists .moderators-title{font-size:14px}.groups-header .moderators-lists .user-list{margin:0 0 5px}.groups-header .moderators-lists .user-list ul:after{clear:both;content:"";display:table}.groups-header .moderators-lists .user-list li{display:inline-block;float:none;margin-left:4px;padding:4px}.groups-header .moderators-lists img.avatar{box-shadow:none;float:none;height:30px;margin:0;max-width:100%;width:30px}@media screen and (min-width:46.8em){.groups-header div#item-header-content{float:left;margin-left:10%;text-align:left;padding-top:15px;width:42%}.groups-header .group-item-actions{float:right;margin:0 0 15px 15px;text-align:right;width:20%}.groups-header .groups-meta{clear:both}}.groups-header .desc-wrap{background:#eaeaea;border:1px solid #d6d6d6;margin:0 0 15px;padding:1em;text-align:center}.groups-header .desc-wrap .group-description{background:#fafafa;box-shadow:inset 0 0 9px #ccc;padding:1em;text-align:left}.groups-header .desc-wrap .group-description p{margin:0;padding:0}.bp-user .users-header .user-nicename{margin-bottom:5px}.bp-user .member-header-actions{overflow:hidden}.bp-user .member-header-actions *>*{display:block}.buddypress-wrap .item-body{margin:20px 0}.buddypress-wrap .item-body .screen-heading{font-size:20px;font-weight:400}.buddypress-wrap .item-body .button-tabs{margin:30px 0 15px;list-style:none}.buddypress-wrap.bp-single-vert-nav .bp-list:not(.grid) .item-entry{padding-left:.5em}.single-item.group-members .item-body .filters:not(.no-subnav){border-top:5px solid #eaeaea;padding-top:1em}.single-item.group-members .item-body .filters{margin-top:0}.buddypress-wrap .group-status-type ul{margin:0 0 20px 20px}.groups-manage-members-list{padding:.5em 0}.groups-manage-members-list dd{margin:0;padding:1em 0}.groups-manage-members-list .section-title{background:#eaeaea;padding-left:.3em}.groups-manage-members-list ul{list-style:none;margin-bottom:0}.groups-manage-members-list ul li{border-bottom:1px solid #eee;margin-bottom:10px;padding:.5em .3em .3em}.groups-manage-members-list ul li:last-child,.groups-manage-members-list ul li:only-child{border-bottom:0}.groups-manage-members-list ul li:nth-child(even){background:#fafafa}.groups-manage-members-list ul li.banned-user{background:#fad3d3}.groups-manage-members-list ul .member-name{margin-bottom:0;text-align:center}.groups-manage-members-list ul img{display:block;margin:0 auto;width:20%}@media screen and (min-width:32em){.groups-manage-members-list ul .member-name{text-align:left}.groups-manage-members-list ul img{display:inline;width:50px}}.groups-manage-members-list ul .members-manage-buttons:after,.groups-manage-members-list ul .members-manage-buttons:before{content:" ";display:table}.groups-manage-members-list ul .members-manage-buttons:after{clear:both}.groups-manage-members-list ul .members-manage-buttons{margin:15px 0 5px}.groups-manage-members-list ul .members-manage-buttons a.button{color:#767676;display:block;font-size:13px}@media screen and (min-width:32em){.groups-manage-members-list ul .members-manage-buttons a.button{display:inline-block}}.groups-manage-members-list ul .members-manage-buttons.text-links-list{margin-bottom:0}@media screen and (max-width:32em){.groups-manage-members-list ul .members-manage-buttons.text-links-list a.button{background:#fafafa;border:1px solid #eee;display:block;margin-bottom:10px}}.groups-manage-members-list ul .action:not(.text-links-list) a.button{font-size:12px}@media screen and (min-width:46.8em){.groups-manage-members-list ul li .avatar,.groups-manage-members-list ul li .member-name{float:left}.groups-manage-members-list ul li .avatar{margin-right:15px}.groups-manage-members-list ul li .action{clear:both;float:left}}#group-manage-members-ui #group-members-search-form button[type=submit]{float:right;font-size:inherit;font-weight:400;line-height:1.5;text-align:center;text-transform:none}#group-manage-members-ui #group-members-search-form button[type=submit] span{font-family:dashicons;font-size:18px;line-height:1.6}#group-manage-members-ui #group-members-pagination button:last-child{margin-right:2em}#group-manage-members-ui #bp-no-group-members td{border:none}.buddypress .bp-invites-content ul.item-list{border-top:0}.buddypress .bp-invites-content ul.item-list li{border:1px solid #eaeaea;margin:0 0 1%;padding-left:5px;padding-right:5px;position:relative;width:auto}.buddypress .bp-invites-content ul.item-list li .list-title{margin:0 auto;width:80%}.buddypress .bp-invites-content ul.item-list li .action{position:absolute;top:10px;right:10px}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button{border:0}.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:focus,.buddypress .bp-invites-content ul.item-list li .action a.button.invite-button:hover{color:#1fb3dd}.buddypress .bp-invites-content ul.item-list li.selected{box-shadow:inset 0 0 12px 0 rgba(237,187,52,.2)}.buddypress .bp-invites-content .group-inviters li,.buddypress .bp-invites-content .item-list .item-meta span{color:#767676}.buddypress .bp-invites-content li ul.group-inviters{clear:both;margin:0}.buddypress .bp-invites-content li ul.group-inviters li{border:0;float:left;font-size:20px;width:inherit}.buddypress .bp-invites-content li .status{font-size:20px;font-style:italic;clear:both;color:#555;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul:after,.buddypress .bp-invites-content #send-invites-editor ul:before{content:" ";display:table}.buddypress .bp-invites-content #send-invites-editor ul:after{clear:both}.buddypress .bp-invites-content #send-invites-editor textarea{width:100%}.buddypress .bp-invites-content #send-invites-editor ul{clear:both;list-style:none;margin:10px 0}.buddypress .bp-invites-content #send-invites-editor ul li{float:left;margin:.5%;max-height:50px;max-width:50px}.buddypress .bp-invites-content #send-invites-editor #bp-send-invites-form{clear:both;margin-top:10px}.buddypress .bp-invites-content #send-invites-editor .action{margin-top:10px;padding-top:10px}.buddypress .bp-invites-content #send-invites-editor.bp-hide{display:none}@media screen and (min-width:46.8em){.buddypress .bp-invites-content ul.item-list>li{box-sizing:border-box;border:1px solid #eaeaea;float:left;padding-left:.5em;padding-right:.5em;width:49.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(odd){margin-right:.5%}.buddypress .bp-invites-content ul.item-list>li:nth-child(even){margin-left:.5%}.buddypress .bp-invites-content ul.item-list ul.group-inviters{float:left;width:auto}}@media screen and (min-width:46.8em){:not(.vertical)+.item-body #group-invites-container{display:-ms-grid;display:grid;-ms-grid-columns:25% auto;grid-template-columns:25% auto;grid-template-areas:"group-invites-nav group-invites-column"}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav{-ms-grid-row:1;-ms-grid-column:1;grid-area:group-invites-nav}:not(.vertical)+.item-body #group-invites-container .bp-invites-nav li{display:block;float:none}:not(.vertical)+.item-body #group-invites-container .group-invites-column{-ms-grid-row:1;-ms-grid-column:2;grid-area:group-invites-column}}.buddypress.groups .activity-update-form{margin-top:0}.buddypress-wrap .profile{margin-top:30px}.buddypress-wrap .public .profile-fields td.label{width:30%}.buddypress-wrap .profile.edit ul.button-nav{list-style:none;margin:30px 0 10px;padding-left:0}.buddypress-wrap .profile.edit ul.button-nav li{display:inline-block;margin-right:10px}.buddypress-wrap .profile.edit ul.button-nav li a{padding:.5em}.buddypress-wrap .profile.edit .editfield{background:#fafafa;border:1px solid #eee;margin:15px 0;padding:1em}.buddypress-wrap .profile.edit .editfield fieldset{border:0}.buddypress-wrap .profile.edit .editfield fieldset label{font-weight:400}.buddypress-wrap .profile.edit .editfield fieldset label.xprofile-field-label{display:inline}.buddypress-wrap .profile.edit .editfield{display:flex;flex-direction:column}.buddypress-wrap .profile.edit .editfield .description{margin-top:10px;order:2}.buddypress-wrap .profile.edit .editfield>fieldset{order:1}.buddypress-wrap .profile.edit .editfield .field-visibility-settings,.buddypress-wrap .profile.edit .editfield .field-visibility-settings-toggle{order:3}body.no-js .buddypress-wrap .field-visibility-settings-close,body.no-js .buddypress-wrap .field-visibility-settings-toggle{display:none}body.no-js .buddypress-wrap .field-visibility-settings{display:block}.buddypress-wrap .field-visibility-settings{margin:10px 0}.buddypress-wrap .current-visibility-level{font-style:normal;font-weight:700}.buddypress-wrap .field-visibility-settings,.buddypress-wrap .field-visibility-settings-header{color:#737373}.buddypress-wrap .field-visibility-settings fieldset{margin:5px 0}.buddypress-wrap .standard-form .editfield fieldset{margin:0}.buddypress-wrap .standard-form .field-visibility-settings label{font-weight:400;margin:0}.buddypress-wrap .standard-form .field-visibility-settings .radio{list-style:none;margin-bottom:0}.buddypress-wrap .standard-form .field-visibility-settings .field-visibility-settings-close{font-size:12px}.buddypress-wrap .standard-form .wp-editor-container{border:1px solid #dedede}.buddypress-wrap .standard-form .wp-editor-container textarea{background:#fff;width:100%}.buddypress-wrap .standard-form .description{background:#fafafa;font-size:inherit}.buddypress-wrap .standard-form .field-visibility-settings legend,.buddypress-wrap .standard-form .field-visibility-settings-header{font-style:italic}.buddypress-wrap .standard-form .field-visibility-settings-header{font-size:14px}.buddypress-wrap .standard-form .field-visibility-settings label,.buddypress-wrap .standard-form .field-visibility-settings legend{font-size:14px}.buddypress-wrap .standard-form .field-visibility select{margin:0}.buddypress-wrap .html-active button.switch-html{background:#f5f5f5;border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.buddypress-wrap .tmce-active button.switch-tmce{background:#f5f5f5;border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.buddypress-wrap .profile.public .profile-group-title{border-bottom:1px solid #ccc}body.register .buddypress-wrap .page ul{list-style:none}.buddypress-wrap .profile .bp-avatar-nav{margin-top:20px}.message-action-delete:before,.message-action-star:before,.message-action-unstar:before,.message-action-view:before{font-family:dashicons;font-size:18px}.message-action-star:before{color:#aaa;content:"\f154"}.message-action-unstar:before{color:#fcdd77;content:"\f155"}.message-action-view:before{content:"\f473"}.message-action-delete:before{content:"\f153"}.message-action-delete:hover:before{color:#a00}.preview-content .actions a{text-decoration:none}.bp-messages-content{margin:15px 0}.bp-messages-content .avatar{box-shadow:none}.bp-messages-content .thread-participants{list-style:none}.bp-messages-content .thread-participants dd{margin-left:0}.bp-messages-content time{color:#737373;font-size:12px}#message-threads{border-top:1px solid #eaeaea;clear:both;list-style:none;margin:0;max-height:220px;overflow-x:hidden;overflow-y:auto;padding:0;width:100%}#message-threads li{border-bottom:1px solid #eaeaea;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;margin:0;overflow:hidden;padding:.5em 0}#message-threads li .thread-cb{display:flex;align-items:center;-moz-flex:1 2 5%;-o-flex:1 2 5%;flex:1 2 5%}#message-threads li .thread-from,#message-threads li .thread-to{-moz-flex:1 2 20%;-o-flex:1 2 20%;flex:1 2 20%}#message-threads li .thread-from img.avatar,#message-threads li .thread-to img.avatar{float:left;margin:0 10px 0 0}#message-threads li .thread-from .user-name,#message-threads li .thread-to .user-name{display:inline-block;line-height:1.1}#message-threads li .thread-from .num-recipients,#message-threads li .thread-to .num-recipients{color:#737373;font-weight:400;font-size:12px;margin:0}#message-threads li .thread-content{-moz-flex:1 2 60%;-o-flex:1 2 60%;flex:1 2 60%}#message-threads li .thread-date{-moz-flex:1 2 15%;-o-flex:1 2 15%;flex:1 2 15%}#message-threads li.selected{background-color:#fafafa}#message-threads li.selected .thread-subject .subject{color:#5087e5}#message-threads li.unread{font-weight:700}#message-threads li .thread-content .excerpt{color:#737373;font-size:12px;margin:0}#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:13px}@media screen and (min-width:46.8em){#message-threads li .thread-content .thread-from,#message-threads li .thread-content .thread-subject,#message-threads li .thread-content .thread-to{font-size:16px}}#message-threads li .thread-content .thread-subject{vertical-align:top}#message-threads li .thread-content .thread-subject .excerpt{font-weight:400}#message-threads li .thread-date{padding-right:5px;text-align:right}.bp-messages-content .actions{float:right;max-width:30%;line-height:1}.bp-messages-content .actions .bp-icons:not(.bp-hide){display:inline-block;margin:0;padding:.3em .5em}.bp-messages-content .actions .bp-icons:not(.bp-hide):before{font-size:26px}.bp-messages-content #thread-preview{border:1px solid #eaeaea;margin-top:20px}.bp-messages-content #thread-preview .preview-message{overflow:hidden}.bp-messages-content #thread-preview .preview-content{margin:.5em}.bp-messages-content #thread-preview .preview-content .preview-message{background:#fafafa;margin:10px 0;padding:1em .3em .3em}.bp-messages-content #bp-message-thread-list{border-top:1px solid #eaeaea;clear:both;list-style:none;padding:1em 0 .3em}.bp-messages-content #bp-message-thread-list li{padding:.5em}.bp-messages-content #bp-message-thread-list li:nth-child(2n) .message-content{background:#fafafa}.bp-messages-content #bp-message-thread-list .message-metadata{border-bottom:1px solid #ccc;box-shadow:-2px 1px 9px 0 #eee;display:table;padding:.2em;width:100%}.bp-messages-content #bp-message-thread-list .message-metadata .avatar{width:30px}.bp-messages-content #bp-message-thread-list .message-metadata .user-link{display:block;font-size:13px;float:left}@media screen and (min-width:46.8em){.bp-messages-content #bp-message-thread-list .message-metadata .user-link{font-size:16px}}.bp-messages-content #bp-message-thread-list .message-metadata time{color:#737373;font-size:12px;padding:0 .5em}.bp-messages-content #bp-message-thread-list .message-metadata button{padding:0 .3em}.bp-messages-content #bp-message-thread-list .message-metadata button:before{font-size:20px}.bp-messages-content #bp-message-thread-list .message-content{overflow:hidden;margin:1em auto 0;width:90%}.bp-messages-content #bp-message-thread-list img.avatar{float:left;margin:0 10px 0 0}.bp-messages-content #bp-message-thread-list .actions a:before{font-size:18px}.bp-messages-content form.send-reply .avatar-box{padding:.5em 0}.bp-messages-content .preview-pane-header,.bp-messages-content .single-message-thread-header{border-bottom:1px solid #eaeaea}.bp-messages-content .preview-pane-header:after,.bp-messages-content .single-message-thread-header:after{clear:both;content:"";display:table}.bp-messages-content .preview-thread-title,.bp-messages-content .single-thread-title{font-size:16px}.bp-messages-content .preview-thread-title .messages-title,.bp-messages-content .single-thread-title .messages-title{padding-left:2em}.bp-messages-content .thread-participants{float:left;margin:5px 0;width:70%}.bp-messages-content .thread-participants dd,.bp-messages-content .thread-participants ul{margin-bottom:10px}.bp-messages-content .thread-participants ul{list-style:none}.bp-messages-content .thread-participants ul:after{clear:both;content:"";display:table}.bp-messages-content .thread-participants li{float:left;margin-left:5px}.bp-messages-content .thread-participants img{width:30px;height:30px}.bp-messages-content #bp-message-thread-list li .message-content blockquote,.bp-messages-content #bp-message-thread-list li .message-content ol,.bp-messages-content #bp-message-thread-list li .message-content ul,.bp-messages-content #thread-preview .preview-message blockquote,.bp-messages-content #thread-preview .preview-message ol,.bp-messages-content #thread-preview .preview-message ul{list-style-position:inside;margin-left:0}.bp-messages-content #thread-preview:empty,.bp-messages-content ul#message-threads:empty{display:none}.bp-messages-content #bp-message-thread-header h2:first-child,.bp-messages-content #thread-preview h2:first-child{background-color:#eaeaea;color:#555;font-weight:700;margin:0;padding:.5em}.bp-messages-content #bp-message-thread-list li a.user-link,.bp-messages-content #message-threads .thread-content a{border:0;text-decoration:none}.bp-messages-content .standard-form #subject{margin-bottom:20px}div.bp-navs#subsubnav.bp-messages-filters .user-messages-bulk-actions{margin-right:15px;max-width:42.5%}.buddypress.settings .profile-settings.bp-tables-user select{width:100%}body.buddypress.settings .wp-pwd button{vertical-align:middle}body.buddypress.settings #pass-strength-result,body.buddypress.settings #pass1,body.buddypress.settings #pass1-text{width:16em}body.buddypress.settings #pass1{display:inline-block;margin-bottom:inherit}body.buddypress.settings #pass-strength-result,body.buddypress.settings #pass1-text,body.buddypress.settings .pw-weak{display:none}body.buddypress.settings .show-password #pass1-text{display:inline-block;margin-bottom:inherit}body.buddypress.settings .show-password #pass1{display:none}body.buddypress.settings #your-profile #submit:disabled{color:#767676;opacity:.4}body.buddypress.settings.js .user-pass2-wrap,body.buddypress.settings.js .wp-pwd{display:none}body.buddypress.settings.no-js .wp-cancel-pw,body.buddypress.settings.no-js .wp-generate-pw,body.buddypress.settings.no-js .wp-hide-pw{display:none}body.buddypress.settings.data #buddypress.buddypress-wrap .item-body p a{text-decoration:underline}.buddypress-wrap #whats-new-post-in-box select,.buddypress-wrap .filter select{border:1px solid #d6d6d6}.buddypress-wrap input.action[disabled]{cursor:pointer;opacity:.4}.buddypress-wrap #notification-bulk-manage[disabled]{display:none}.buddypress-wrap fieldset legend{font-size:inherit;font-weight:600}.buddypress-wrap input[type=email]:focus,.buddypress-wrap input[type=password]:focus,.buddypress-wrap input[type=tel]:focus,.buddypress-wrap input[type=text]:focus,.buddypress-wrap input[type=url]:focus,.buddypress-wrap textarea:focus{box-shadow:0 0 8px #eaeaea}.buddypress-wrap select{height:auto}.buddypress-wrap textarea{resize:vertical}.buddypress-wrap .standard-form .bp-controls-wrap{margin:1em 0}.buddypress-wrap .standard-form .groups-members-search input[type=search],.buddypress-wrap .standard-form .groups-members-search input[type=text],.buddypress-wrap .standard-form [data-bp-search] input[type=search],.buddypress-wrap .standard-form [data-bp-search] input[type=text],.buddypress-wrap .standard-form input[type=color],.buddypress-wrap .standard-form input[type=date],.buddypress-wrap .standard-form input[type=datetime-local],.buddypress-wrap .standard-form input[type=datetime],.buddypress-wrap .standard-form input[type=email],.buddypress-wrap .standard-form input[type=month],.buddypress-wrap .standard-form input[type=number],.buddypress-wrap .standard-form input[type=password],.buddypress-wrap .standard-form input[type=range],.buddypress-wrap .standard-form input[type=search],.buddypress-wrap .standard-form input[type=tel],.buddypress-wrap .standard-form input[type=text],.buddypress-wrap .standard-form input[type=time],.buddypress-wrap .standard-form input[type=url],.buddypress-wrap .standard-form input[type=week],.buddypress-wrap .standard-form select,.buddypress-wrap .standard-form textarea{background:#fafafa;border:1px solid #d6d6d6;border-radius:0;font:inherit;font-size:100%;padding:.5em}.buddypress-wrap .standard-form input[required],.buddypress-wrap .standard-form select[required],.buddypress-wrap .standard-form textarea[required]{box-shadow:none;border-width:2px;outline:0}.buddypress-wrap .standard-form input[required]:invalid,.buddypress-wrap .standard-form select[required]:invalid,.buddypress-wrap .standard-form textarea[required]:invalid{border-color:#b71717}.buddypress-wrap .standard-form input[required]:valid,.buddypress-wrap .standard-form select[required]:valid,.buddypress-wrap .standard-form textarea[required]:valid{border-color:#91cc2c}.buddypress-wrap .standard-form input[required]:focus,.buddypress-wrap .standard-form select[required]:focus,.buddypress-wrap .standard-form textarea[required]:focus{border-color:#d6d6d6;border-width:1px}.buddypress-wrap .standard-form input.invalid[required],.buddypress-wrap .standard-form select.invalid[required],.buddypress-wrap .standard-form textarea.invalid[required]{border-color:#b71717}.buddypress-wrap .standard-form input:not(.small),.buddypress-wrap .standard-form textarea{width:100%}.buddypress-wrap .standard-form input[type=checkbox],.buddypress-wrap .standard-form input[type=radio]{margin-right:5px;width:auto}.buddypress-wrap .standard-form select{padding:3px}.buddypress-wrap .standard-form textarea{height:120px}.buddypress-wrap .standard-form textarea#message_content{height:200px}.buddypress-wrap .standard-form input[type=password]{margin-bottom:5px}.buddypress-wrap .standard-form input:focus,.buddypress-wrap .standard-form select:focus,.buddypress-wrap .standard-form textarea:focus{background:#fafafa;color:#555;outline:0}.buddypress-wrap .standard-form label,.buddypress-wrap .standard-form span.label{display:block;font-weight:600;margin:15px 0 5px;width:auto}.buddypress-wrap .standard-form a.clear-value{display:block;margin-top:5px;outline:0}.buddypress-wrap .standard-form .submit{clear:both;padding:15px 0 0}.buddypress-wrap .standard-form p.submit{margin-bottom:0}.buddypress-wrap .standard-form div.submit input{margin-right:15px}.buddypress-wrap .standard-form #invite-list label,.buddypress-wrap .standard-form p label{font-weight:400;margin:auto}.buddypress-wrap .standard-form p.description{color:#737373;margin:5px 0}.buddypress-wrap .standard-form div.checkbox label:nth-child(n+2),.buddypress-wrap .standard-form div.radio div label{color:#737373;font-size:100%;font-weight:400;margin:5px 0 0}.buddypress-wrap .standard-form#send-reply textarea{width:97.5%}.buddypress-wrap .standard-form#sidebar-login-form label{margin-top:5px}.buddypress-wrap .standard-form#sidebar-login-form input[type=password],.buddypress-wrap .standard-form#sidebar-login-form input[type=text]{padding:4px;width:95%}.buddypress-wrap .standard-form.profile-edit input:focus{background:#fff}@media screen and (min-width:46.8em){.buddypress-wrap .standard-form .left-menu{float:left}.buddypress-wrap .standard-form #invite-list ul{list-style:none;margin:1%}.buddypress-wrap .standard-form #invite-list ul li{margin:0 0 0 1%}.buddypress-wrap .standard-form .main-column{margin-left:190px}.buddypress-wrap .standard-form .main-column ul#friend-list{clear:none;float:left}.buddypress-wrap .standard-form .main-column ul#friend-list h4{clear:none}}.buddypress-wrap .standard-form .bp-tables-user label{margin:0}.buddypress-wrap .signup-form label,.buddypress-wrap .signup-form legend{font-weight:400}body.no-js .buddypress #delete_inbox_messages,body.no-js .buddypress #delete_sentbox_messages,body.no-js .buddypress #message-type-select,body.no-js .buddypress #messages-bulk-management #select-all-messages,body.no-js .buddypress #notifications-bulk-management #select-all-notifications,body.no-js .buddypress label[for=message-type-select]{display:none}.buddypress-wrap .wp-editor-wrap .wp-editor-wrap button,.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=button],.buddypress-wrap .wp-editor-wrap .wp-editor-wrap input[type=submit],.buddypress-wrap .wp-editor-wrap a.button,.buddypress-wrap .wp-editor-wrap input[type=reset]{padding:0 8px 1px}.buddypress-wrap .select-wrap{border:1px solid #eee}.buddypress-wrap .select-wrap label{display:inline}.buddypress-wrap .select-wrap select::-ms-expand{display:none}.buddypress-wrap .select-wrap select{-moz-appearance:none;-webkit-appearance:none;-o-appearance:none;appearance:none;border:0;cursor:pointer;margin-right:-25px;padding:6px 25px 6px 10px;position:relative;text-indent:-2px;z-index:1;width:auto}.buddypress-wrap .select-wrap select,.buddypress-wrap .select-wrap select:active,.buddypress-wrap .select-wrap select:focus{background:0 0}.buddypress-wrap .select-wrap span.select-arrow{display:inline-block;position:relative;z-index:0}.buddypress-wrap .select-wrap span.select-arrow:before{color:#ccc;content:"\25BC"}.buddypress-wrap .select-wrap:focus .select-arrow:before,.buddypress-wrap .select-wrap:hover .select-arrow:before{color:#a6a6a6}.buddypress-wrap .bp-search form:focus,.buddypress-wrap .bp-search form:hover,.buddypress-wrap .select-wrap:focus,.buddypress-wrap .select-wrap:hover{border:1px solid #d5d4d4;box-shadow:inset 0 0 3px #eee}@media screen and (min-width:32em){.buddypress-wrap .notifications-options-nav .select-wrap{float:left}}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after,.buddypress-wrap .bp-messages-search-form:before{content:" ";display:table}.buddypress-wrap .bp-dir-search-form,.buddypress-wrap .bp-messages-search-form:after{clear:both}.buddypress-wrap form#group-members-search,.buddypress-wrap form.bp-dir-search-form,.buddypress-wrap form.bp-messages-search-form,.buddypress-wrap form[data-bp-search].bp-invites-search-form{border:1px solid #eee;width:100%}.buddypress-wrap form#group-members-search label,.buddypress-wrap form.bp-dir-search-form label,.buddypress-wrap form.bp-messages-search-form label,.buddypress-wrap form[data-bp-search].bp-invites-search-form label{margin:0}.buddypress-wrap form#group-members-search button[type=submit],.buddypress-wrap form#group-members-search input[type=search],.buddypress-wrap form#group-members-search input[type=text],.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text],.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=text]{background:0 0;border:0;border-radius:0;background-clip:padding-box}.buddypress-wrap form#group-members-search input[type=search],.buddypress-wrap form#group-members-search input[type=text],.buddypress-wrap form.bp-dir-search-form input[type=search],.buddypress-wrap form.bp-dir-search-form input[type=text],.buddypress-wrap form.bp-messages-search-form input[type=search],.buddypress-wrap form.bp-messages-search-form input[type=text],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search],.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=text]{float:left;line-height:1.5;padding:3px 10px;width:80%}.buddypress-wrap form#group-members-search button[type=submit],.buddypress-wrap form.bp-dir-search-form button[type=submit],.buddypress-wrap form.bp-messages-search-form button[type=submit],.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit]{float:right;font-size:inherit;font-weight:400;line-height:1.5;padding:3px .7em;text-align:center;text-transform:none;width:20%}.buddypress-wrap form#group-members-search button[type=submit] span,.buddypress-wrap form.bp-dir-search-form button[type=submit] span,.buddypress-wrap form.bp-messages-search-form button[type=submit] span,.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit] span{font-family:dashicons;font-size:18px;line-height:1.6}.buddypress-wrap form#group-members-search button[type=submit].bp-show,.buddypress-wrap form.bp-dir-search-form button[type=submit].bp-show,.buddypress-wrap form.bp-messages-search-form button[type=submit].bp-show,.buddypress-wrap form[data-bp-search].bp-invites-search-form button[type=submit].bp-show{height:auto;left:0;overflow:visible;position:static;top:0}.buddypress-wrap form#group-members-search input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-cancel-button,.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.buddypress-wrap form#group-members-search input[type=search]::-webkit-search-results-button,.buddypress-wrap form#group-members-search input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-dir-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form.bp-messages-search-form input[type=search]::-webkit-search-results-decoration,.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search]::-webkit-search-results-button,.buddypress-wrap form[data-bp-search].bp-invites-search-form input[type=search]::-webkit-search-results-decoration{display:none}.buddypress-wrap form#group-members-search:hover{border:1px solid #d5d4d4;box-shadow:inset 0 0 3px #eee}.buddypress-wrap ul.filters li form label input{line-height:1.4;padding:.1em .7em}.buddypress-wrap .current-member-type{font-style:italic}.buddypress-wrap .dir-form{clear:both}.budypress.no-js form.bp-dir-search-form button[type=submit]{height:auto;left:0;overflow:visible;position:static;top:0}.bp-user [data-bp-search] form input[type=search],.bp-user [data-bp-search] form input[type=text]{padding:6px 10px 7px}.buddypress-wrap .bp-tables-user,.buddypress-wrap table.forum,.buddypress-wrap table.wp-profile-fields{width:100%}.buddypress-wrap .bp-tables-user thead tr,.buddypress-wrap table.forum thead tr,.buddypress-wrap table.wp-profile-fields thead tr{background:0 0;border-bottom:2px solid #ccc}.buddypress-wrap .bp-tables-user tbody tr,.buddypress-wrap table.forum tbody tr,.buddypress-wrap table.wp-profile-fields tbody tr{background:#fafafa}.buddypress-wrap .bp-tables-user tr td,.buddypress-wrap .bp-tables-user tr th,.buddypress-wrap table.forum tr td,.buddypress-wrap table.forum tr th,.buddypress-wrap table.wp-profile-fields tr td,.buddypress-wrap table.wp-profile-fields tr th{padding:.5em;vertical-align:middle}.buddypress-wrap .bp-tables-user tr td.label,.buddypress-wrap table.forum tr td.label,.buddypress-wrap table.wp-profile-fields tr td.label{border-right:1px solid #eaeaea;font-weight:600;width:25%}.buddypress-wrap .bp-tables-user tr.alt td,.buddypress-wrap table.wp-profile-fields tr.alt td{background:#fafafa}.buddypress-wrap table.profile-fields .data{padding:.5em 1em}.buddypress-wrap table.profile-fields tr:last-child{border-bottom:none}.buddypress-wrap table.notifications td{padding:1em .5em}.buddypress-wrap table.notifications .bulk-select-all,.buddypress-wrap table.notifications .bulk-select-check{width:7%}.buddypress-wrap table.notifications .bulk-select-check{vertical-align:middle}.buddypress-wrap table.notifications .date,.buddypress-wrap table.notifications .notification-description,.buddypress-wrap table.notifications .notification-since,.buddypress-wrap table.notifications .title{width:39%}.buddypress-wrap table.notifications .actions,.buddypress-wrap table.notifications .notification-actions{width:15%}.buddypress-wrap table.notification-settings th.title,.buddypress-wrap table.profile-settings th.title{width:80%}.buddypress-wrap table.notifications .notification-actions a.delete,.buddypress-wrap table.notifications .notification-actions a.mark-read{display:inline-block}.buddypress-wrap table.notification-settings{margin-bottom:15px;text-align:left}.buddypress-wrap #groups-notification-settings{margin-bottom:0}.buddypress-wrap table.notification-settings td:first-child,.buddypress-wrap table.notification-settings th.icon,.buddypress-wrap table.notifications td:first-child,.buddypress-wrap table.notifications th.icon{display:none}.buddypress-wrap table.notification-settings .no,.buddypress-wrap table.notification-settings .yes{text-align:center;width:40px;vertical-align:middle}.buddypress-wrap table#message-threads{clear:both}.buddypress-wrap table#message-threads .thread-info{min-width:40%}.buddypress-wrap table#message-threads .thread-info p{margin:0}.buddypress-wrap table#message-threads .thread-info p.thread-excerpt{color:#737373;font-size:12px;margin-top:3px}.buddypress-wrap table.profile-fields{margin-bottom:20px}.buddypress-wrap table.profile-fields:last-child{margin-bottom:0}.buddypress-wrap table.profile-fields p{margin:0}.buddypress-wrap table.profile-fields p:last-child{margin-top:0}.bp-screen-reader-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-vert{display:flex;align-items:center}.bp-hide{display:none}.bp-show{height:auto;left:0;overflow:visible;position:static;top:0}.buddypress .buddypress-wrap .activity-read-more a,.buddypress .buddypress-wrap .comment-reply-link,.buddypress .buddypress-wrap .generic-button a,.buddypress .buddypress-wrap a.bp-title-button,.buddypress .buddypress-wrap a.button,.buddypress .buddypress-wrap button,.buddypress .buddypress-wrap input[type=button],.buddypress .buddypress-wrap input[type=reset],.buddypress .buddypress-wrap input[type=submit],.buddypress .buddypress-wrap ul.button-nav:not(.button-tabs) li a{background:#fff;border-color:#ccc;border-style:solid;border-width:1px;border-radius:0;color:#555;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:400;outline:0;padding:.3em .5em;text-align:center;text-decoration:none;width:auto;line-height:1}.buddypress .buddypress-wrap a.button.dashicons,.buddypress .buddypress-wrap button.dashicons{font-family:dashicons}.buddypress .buddypress-wrap .button-small[type=button]{padding:0 8px 1px}.buddypress .buddypress-wrap .activity-read-more a:focus,.buddypress .buddypress-wrap .activity-read-more a:hover,.buddypress .buddypress-wrap .button-nav li a:focus,.buddypress .buddypress-wrap .button-nav li a:hover,.buddypress .buddypress-wrap .button-nav li.current a,.buddypress .buddypress-wrap .comment-reply-link:focus,.buddypress .buddypress-wrap .comment-reply-link:hover,.buddypress .buddypress-wrap .generic-button a:focus,.buddypress .buddypress-wrap .generic-button a:hover,.buddypress .buddypress-wrap a.button:focus,.buddypress .buddypress-wrap a.button:hover,.buddypress .buddypress-wrap button:focus,.buddypress .buddypress-wrap button:hover,.buddypress .buddypress-wrap input[type=button]:focus,.buddypress .buddypress-wrap input[type=button]:hover,.buddypress .buddypress-wrap input[type=reset]:focus,.buddypress .buddypress-wrap input[type=reset]:hover,.buddypress .buddypress-wrap input[type=submit]:focus,.buddypress .buddypress-wrap input[type=submit]:hover{background:#ededed;border-color:#999;color:#333;outline:0;text-decoration:none}.buddypress .buddypress-wrap a.disabled,.buddypress .buddypress-wrap button.disabled,.buddypress .buddypress-wrap button.pending,.buddypress .buddypress-wrap div.pending a,.buddypress .buddypress-wrap input[type=button].disabled,.buddypress .buddypress-wrap input[type=button].pending,.buddypress .buddypress-wrap input[type=reset].disabled,.buddypress .buddypress-wrap input[type=reset].pending,.buddypress .buddypress-wrap input[type=submit].pending,.buddypress .buddypress-wrap input[type=submit][disabled=disabled]{border-color:#eee;color:#767676;cursor:default}.buddypress .buddypress-wrap a.disabled:hover,.buddypress .buddypress-wrap button.disabled:hover,.buddypress .buddypress-wrap button.pending:hover,.buddypress .buddypress-wrap div.pending a:hover,.buddypress .buddypress-wrap input[type=button]:hover.disabled,.buddypress .buddypress-wrap input[type=button]:hover.pending,.buddypress .buddypress-wrap input[type=reset]:hover.disabled,.buddypress .buddypress-wrap input[type=reset]:hover.pending,.buddypress .buddypress-wrap input[type=submit]:hover.disabled,.buddypress .buddypress-wrap input[type=submit]:hover.pending{border-color:#eee;color:#767676}.buddypress .buddypress-wrap button.text-button,.buddypress .buddypress-wrap input.text-button{background:0 0;border:0;box-shadow:none;color:#767676}.buddypress .buddypress-wrap button.text-button.small,.buddypress .buddypress-wrap input.text-button.small{font-size:13px}.buddypress .buddypress-wrap button.text-button:focus,.buddypress .buddypress-wrap button.text-button:hover,.buddypress .buddypress-wrap input.text-button:focus,.buddypress .buddypress-wrap input.text-button:hover{background:0 0;text-decoration:underline}.buddypress .buddypress-wrap .activity-list a.button{border:none}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover{color:#1fb3dd}.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li a.invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.group-remove-invite-button:hover,.buddypress .buddypress-wrap .bp-invites-content ul.bp-list li.selected a.invite-button:hover{color:#a00}.buddypress .buddypress-wrap #item-buttons:empty{display:none}.buddypress .buddypress-wrap input:disabled:focus,.buddypress .buddypress-wrap input:disabled:hover{background:0 0}.buddypress .buddypress-wrap .text-links-list a.button{background:0 0;border:none;border-right:1px solid #eee;color:#737373;display:inline-block;padding:.3em 1em}.buddypress .buddypress-wrap .text-links-list a.button:visited{color:#d6d6d6}.buddypress .buddypress-wrap .text-links-list a.button:focus,.buddypress .buddypress-wrap .text-links-list a.button:hover{color:#5087e5}.buddypress .buddypress-wrap .text-links-list a:first-child{padding-left:0}.buddypress .buddypress-wrap .text-links-list a:last-child{border-right:none}.buddypress .buddypress-wrap .bp-list.grid .action a,.buddypress .buddypress-wrap .bp-list.grid .action button{border:1px solid #ccc;display:block;margin:0}.buddypress .buddypress-wrap .bp-list.grid .action a:focus,.buddypress .buddypress-wrap .bp-list.grid .action a:hover,.buddypress .buddypress-wrap .bp-list.grid .action button:focus,.buddypress .buddypress-wrap .bp-list.grid .action button:hover{background:#ededed}.buddypress #buddypress .create-button{background:0 0;text-align:center}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{text-decoration:underline}@media screen and (min-width:46.8em){.buddypress #buddypress .create-button{float:right}}.buddypress #buddypress .create-button a{border:1px solid #ccc;border-radius:5px;background-clip:padding-box;box-shadow:inset 0 0 6px 0 #eaeaea;margin:.2em 0;width:auto}.buddypress #buddypress .create-button a:focus,.buddypress #buddypress .create-button a:hover{background:0 0;border-color:#ccc;box-shadow:inset 0 0 12px 0 #eaeaea}@media screen and (min-width:46.8em){.buddypress #buddypress.bp-dir-vert-nav .create-button{float:none;padding-top:2em}.buddypress #buddypress.bp-dir-vert-nav .create-button a{margin-right:.5em}}.buddypress #buddypress.bp-dir-hori-nav .create-button{float:left}.buddypress #buddypress.bp-dir-hori-nav .create-button a,.buddypress #buddypress.bp-dir-hori-nav .create-button a:hover{background:0 0;border:0;box-shadow:none;margin:0}.buddypress-wrap button.ac-reply-cancel,.buddypress-wrap button.bp-icons{background:0 0;border:0}.buddypress-wrap button.bp-icons:focus,.buddypress-wrap button.bp-icons:hover{background:0 0}.buddypress-wrap button.ac-reply-cancel:focus,.buddypress-wrap button.ac-reply-cancel:hover{background:0 0;text-decoration:underline}.buddypress-wrap .bp-invites-content li .invite-button span.icons:before,.buddypress-wrap .bp-invites-filters .invite-button span.icons:before,.buddypress-wrap .bp-messages-filters li a.messages-button:before,.buddypress-wrap .feed a:before,.buddypress-wrap .filter label:before{font-family:dashicons;font-size:18px}.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:27px}@media screen and (min-width:46.8em){.buddypress-wrap .bp-invites-content .item-list li .invite-button span.icons:before{font-size:32px}}.buddypress-wrap .bp-list a.button.invite-button:focus,.buddypress-wrap .bp-list a.button.invite-button:hover{background:0 0}.buddypress-wrap .filter label:before{content:"\f536"}.buddypress-wrap div.feed a:before,.buddypress-wrap li.feed a:before{content:"\f303"}.buddypress-wrap ul.item-list li .invite-button:not(.group-remove-invite-button) span.icons:before{content:"\f502"}.buddypress-wrap ul.item-list li .group-remove-invite-button span.icons:before,.buddypress-wrap ul.item-list li.selected .invite-button span.icons:before{content:"\f153"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-next-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-next-page:before{content:"\f345"}.buddypress-wrap .bp-invites-filters ul li #bp-invites-prev-page:before,.buddypress-wrap .bp-messages-filters ul li #bp-messages-prev-page:before{content:"\f341"}.buddypress-wrap .warn{color:#b71717}.buddypress-wrap .bp-messages{border:1px solid #ccc;margin:0 0 15px}.buddypress-wrap .bp-messages .sitewide-notices{display:block;margin:5px;padding:.5em}.buddypress-wrap .bp-messages.info{margin-bottom:0}.buddypress-wrap .bp-messages.updated{clear:both;display:block}.buddypress-wrap .bp-messages.bp-user-messages-feedback{border:0}.buddypress-wrap #group-create-body .bp-cover-image-status p.warning{background:#0b80a4;border:0;box-shadow:0 0 3px 0 rgba(0,0,0,.2);color:#fff}.buddypress-wrap .bp-feedback:not(.custom-homepage-info){display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row nowrap;flex-flow:row nowrap;align-items:stretch}.buddypress-wrap .bp-feedback{background:#fff;color:#807f7f;box-shadow:0 1px 1px 1px rgba(0,0,0,.1);color:#737373;margin:10px 0;position:relative}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback span.bp-icon{color:#fff;display:block;font-family:dashicons;left:0;margin-right:10px;position:relative;padding:0 .5em}.buddypress-wrap .bp-feedback .bp-help-text{font-style:italic}.buddypress-wrap .bp-feedback .text{font-size:14px;margin:0;padding:.5em 0}.buddypress-wrap .bp-feedback.no-icon{padding:.5em}.buddypress-wrap .bp-feedback.small:before{line-height:inherit}.buddypress-wrap a[data-bp-close] span:before,.buddypress-wrap button[data-bp-close] span:before{font-size:32px}.buddypress-wrap a[data-bp-close],.buddypress-wrap button[data-bp-close]{border:0;position:absolute;top:10px;right:10px;width:32px}.buddypress-wrap .bp-feedback.no-icon a[data-bp-close],.buddypress-wrap .bp-feedback.no-icon button[data-bp-close]{top:-6px;right:6px}.buddypress-wrap button[data-bp-close]:hover{background-color:transparent}.buddypress-wrap .bp-feedback p{margin:0}.buddypress-wrap .bp-feedback .bp-icon{font-size:20px;padding:0 2px}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon,.buddypress-wrap .bp-feedback.loading .bp-icon,.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{display:flex;align-items:center}.buddypress-wrap .bp-feedback.help .bp-icon,.buddypress-wrap .bp-feedback.info .bp-icon{background-color:#0b80a4}.buddypress-wrap .bp-feedback.help .bp-icon:before,.buddypress-wrap .bp-feedback.info .bp-icon:before{content:"\f348"}.buddypress-wrap .bp-feedback.error .bp-icon,.buddypress-wrap .bp-feedback.warning .bp-icon{background-color:#d33}.buddypress-wrap .bp-feedback.error .bp-icon:before,.buddypress-wrap .bp-feedback.warning .bp-icon:before{content:"\f534"}.buddypress-wrap .bp-feedback.loading .bp-icon{background-color:#ffd087}.buddypress-wrap .bp-feedback.loading .bp-icon:before{content:"\f469"}.buddypress-wrap .bp-feedback.success .bp-icon,.buddypress-wrap .bp-feedback.updated .bp-icon{background-color:#8a2}.buddypress-wrap .bp-feedback.success .bp-icon:before,.buddypress-wrap .bp-feedback.updated .bp-icon:before{content:"\f147"}.buddypress-wrap .bp-feedback.help .bp-icon:before{content:"\f468"}.buddypress-wrap #pass-strength-result{background-color:#eee;border-color:#ddd;border-style:solid;border-width:1px;display:none;font-weight:700;margin:10px 0 10px 0;padding:.5em;text-align:center;width:auto}.buddypress-wrap #pass-strength-result.show{display:block}.buddypress-wrap #pass-strength-result.mismatch{background-color:#333;border-color:transparent;color:#fff}.buddypress-wrap #pass-strength-result.bad,.buddypress-wrap #pass-strength-result.error{background-color:#ffb78c;border-color:#ff853c;color:#333}.buddypress-wrap #pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040;color:#333}.buddypress-wrap #pass-strength-result.good{background-color:#ffec8b;border-color:#fc0;color:#333}.buddypress-wrap #pass-strength-result.strong{background-color:#66d66e;border-color:#438c48;color:#333}.buddypress-wrap .standard-form#signup_form div div.error{background:#faa;color:#a00;margin:0 0 10px 0;padding:.5em;width:90%}.buddypress-wrap .accept,.buddypress-wrap .reject{float:left;margin-left:10px}.buddypress-wrap .members-list.grid .bp-ajax-message{background:rgba(255,255,255,.9);border:1px solid #eee;font-size:14px;left:2%;position:absolute;padding:.5em 1em;right:2%;top:30px}.buddypress.widget .item-options{font-size:12px;margin:0 0 1em;padding:1em 0}.buddypress.widget .bp-login-widget-user-avatar{float:left}.buddypress.widget .bp-login-widget-user-links{margin-left:70px}.buddypress.widget ul.item-list{list-style:none;margin:10px 0}.buddypress.widget ul.activity-list{padding:0}.buddypress.widget ul.activity-list blockquote{margin:0 0 1.5em;overflow:visible;padding:0 0 .75em .75em}.buddypress.widget ul.activity-list img{margin-bottom:.5em}.buddypress.widget ul.activity-list li{border-bottom:1px solid #ccc;margin-bottom:1em}.buddypress.widget ul.activity-list li .activity-header p{margin-bottom:.5em}.buddypress.widget ul.activity-list li:last-child{border-bottom:0}.buddypress.widget .avatar-block{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}.buddypress.widget .avatar-block img{margin:.5em}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#friends-list li:before,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#groups-list li:before,.buddypress.widget ul#members-list li:after,.buddypress.widget ul#members-list li:before{content:" ";display:table}.buddypress.widget ul#friends-list li:after,.buddypress.widget ul#groups-list li:after,.buddypress.widget ul#members-list li:after{clear:both}.buddypress.widget ul#friends-list li,.buddypress.widget ul#groups-list li,.buddypress.widget ul#members-list li{margin-bottom:1em}.buddypress.widget ul#friends-list li .item-avatar,.buddypress.widget ul#groups-list li .item-avatar,.buddypress.widget ul#members-list li .item-avatar{float:left;width:60px}.buddypress.widget ul#friends-list li .item,.buddypress.widget ul#groups-list li .item,.buddypress.widget ul#members-list li .item{margin-left:70px}.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:column nowrap;flex-flow:column nowrap}@media screen and (min-width:32em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-o-flex-flow:row wrap;flex-flow:row wrap}}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{border:1px solid #eee;align-items:stretch;-moz-flex:1 1 46%;-o-flex:1 1 46%;flex:1 1 46%;margin:2%}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 20%;-o-flex:0 1 20%;flex:0 1 20%}}.buddypress-wrap .buddypress.widget ul#friends-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#groups-list li .item-avatar,.buddypress-wrap .buddypress.widget ul#members-list li .item-avatar{padding:.5em;text-align:center}.buddypress-wrap .buddypress.widget ul#friends-list li .item,.buddypress-wrap .buddypress.widget ul#groups-list li .item,.buddypress-wrap .buddypress.widget ul#members-list li .item{padding:.5em}.buddypress-wrap .buddypress.widget ul#friends-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#groups-list li .item .item-meta,.buddypress-wrap .buddypress.widget ul#members-list li .item .item-meta{font-size:12px;overflow-wrap:break-word}@media screen and (min-width:75em){.buddypress-wrap .buddypress.widget ul#friends-list,.buddypress-wrap .buddypress.widget ul#groups-list,.buddypress-wrap .buddypress.widget ul#members-list{margin:10px -2%;width:100%}.buddypress-wrap .buddypress.widget ul#friends-list li,.buddypress-wrap .buddypress.widget ul#groups-list li,.buddypress-wrap .buddypress.widget ul#members-list li{-moz-flex:0 1 auto;-o-flex:0 1 auto;flex:0 1 auto;margin:10px 2% 1%;width:46%}}.buddypress-wrap .buddypress.widget blockquote{margin:0 0 1.5em;overflow:visible;padding:0 0 .75em .75em}#buddypress-wrap *{transition:opacity .1s ease-in-out .1s}#buddypress-wrap a.button,#buddypress-wrap a.generic-button,#buddypress-wrap button,#buddypress-wrap input[type=reset],#buddypress-wrap input[type=submit]{transition:background .1s ease-in-out .1s,color .1s ease-in-out .1s,border-color .1s ease-in-out .1s}.buddypress-wrap a.loading,.buddypress-wrap input.loading{animation:loader-pulsate .5s infinite ease-in-out alternate;border-color:#aaa}@keyframes loader-pulsate{from{border-color:#aaa;box-shadow:0 0 6px #ccc}to{border-color:#ccc;box-shadow:0 0 6px #f8f8f8}}.buddypress-wrap a.loading:hover,.buddypress-wrap input.loading:hover{color:#777}[data-bp-tooltip]{position:relative}[data-bp-tooltip]:after{background-color:#fff;display:none;opacity:0;position:absolute;transform:translate3d(0,0,0);visibility:hidden}[data-bp-tooltip]:after{border:1px solid #737373;border-radius:1px;box-shadow:4px 4px 8px rgba(0,0,0,.2);color:#333;content:attr(data-bp-tooltip);font-family:"Helvetica Neue",helvetica,arial,san-serif;font-size:12px;font-weight:400;letter-spacing:normal;line-height:1.25;max-width:200px;padding:5px 8px;pointer-events:none;text-shadow:none;text-transform:none;transition:all 1.5s ease;white-space:nowrap;word-wrap:break-word;z-index:100000}[data-bp-tooltip]:active:after,[data-bp-tooltip]:focus:after,[data-bp-tooltip]:hover:after{display:block;opacity:1;overflow:visible;visibility:visible}[data-bp-tooltip=""]{display:none;opacity:0;visibility:hidden}.bp-tooltip:after{left:50%;margin-top:7px;top:110%;transform:translate(-50%,0)}.user-list .bp-tooltip:after{left:0;transform:translate(0,0)}@media screen and (min-width:46.8em){.user-list .bp-tooltip:after{left:auto;right:0;transform:translate(0,0)}}.activity-list .bp-tooltip:after,.activity-meta-action .bp-tooltip:after,.avatar-block .item-avatar .bp-tooltip:after,.notification-actions .bp-tooltip:after,.participants-list .bp-tooltip:after{left:0;transform:translate(0,0)}.bp-invites-content .bp-tooltip:after,.message-metadata .actions .bp-tooltip:after,.single-message-thread-header .actions .bp-tooltip:after{left:auto;right:0;transform:translate(0,0)}.bp-invites-content #send-invites-editor .bp-tooltip:after{left:0;right:auto}#item-body,.single-screen-navs{box-sizing:border-box}.grid>li,.grid>li .generic-button a{box-sizing:border-box}.grid>li{border-bottom:0;padding-bottom:10px;padding-top:0}.grid>li .list-wrap{background:#fafafa;border:1px solid #eee;padding-bottom:15px;position:relative;overflow:hidden;padding-top:14px}.grid>li .list-wrap .list-title{padding:.5em}.grid>li .list-wrap .update{color:#737373;padding:.5em 2em}.grid>li .item-avatar{text-align:center}.grid>li .item-avatar .avatar{border-radius:50%;display:inline-block;width:50%}@media screen and (min-width:24em){.grid.members-list .list-wrap{min-height:340px}.grid.members-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.members-group-list .list-wrap .item-block{margin:0 auto;min-height:7rem}.grid.groups-list .list-wrap{min-height:470px}.grid.groups-list .list-wrap .item-block{min-height:6rem}.grid.groups-list .list-wrap .group-desc{margin:15px auto 0;min-height:5em;overflow:hidden}.grid.groups-list .list-wrap .group-details,.grid.groups-list .list-wrap .item-desc,.grid.groups-list .list-wrap .last-activity{margin-bottom:0}.grid.groups-list .list-wrap .group-details p,.grid.groups-list .list-wrap .item-desc p,.grid.groups-list .list-wrap .last-activity p{margin-bottom:0}.grid.blogs-list .list-wrap{min-height:350px}.grid.blogs-list .list-wrap .item-block{margin:0 auto;min-height:7rem}}@media screen and (min-width:24em){.grid>li.item-entry{float:left;margin:0}.grid.two>li{padding-bottom:20px}}@media screen and (min-width:24em) and (min-width:75em){.grid.two>li .list-wrap{max-width:500px;margin:0 auto}}@media screen and (min-width:24em){.grid.three>li,.grid.two>li{width:50%}.grid.three>li:nth-child(odd),.grid.two>li:nth-child(odd){padding-right:10px}.grid.three>li:nth-child(even),.grid.two>li:nth-child(even){padding-left:10px}.grid.three>li .item,.grid.two>li .item{margin:1rem auto 0;width:80%}.grid.three>li .item .item-title,.grid.two>li .item .item-title{width:auto}}@media screen and (min-width:46.8em){.grid.three>li{padding-top:0;width:33.333333%;width:calc(100% / 3)}.grid.three>li:nth-child(1n+1){padding-left:5px;padding-right:5px}.grid.three>li:nth-child(3n+3){padding-left:5px;padding-right:0}.grid.three>li:nth-child(3n+1){padding-left:0;padding-right:5px}}@media screen and (min-width:46.8em){.grid.four>li{width:25%}.grid.four>li:nth-child(1n+1){padding-left:5px;padding-right:5px}.grid.four>li:nth-child(4n+4){padding-left:5px;padding-right:0}.grid.four>li:nth-child(4n+1){padding-left:0;padding-right:5px}}.buddypress-wrap .grid.bp-list{padding-top:1em}.buddypress-wrap .grid.bp-list>li{border-bottom:none}.buddypress-wrap .grid.bp-list>li .list-wrap{padding-bottom:3em}.buddypress-wrap .grid.bp-list>li .item-avatar{margin:0;text-align:center;width:auto}.buddypress-wrap .grid.bp-list>li .item-avatar img.avatar{display:inline-block;height:auto;width:50%}.buddypress-wrap .grid.bp-list>li .item-meta,.buddypress-wrap .grid.bp-list>li .list-title{float:none;text-align:center}.buddypress-wrap .grid.bp-list>li .list-title{font-size:inherit;line-height:1.1}.buddypress-wrap .grid.bp-list>li .item{font-size:18px;left:0;margin:0 auto;text-align:center;width:96%}@media screen and (min-width:46.8em){.buddypress-wrap .grid.bp-list>li .item{font-size:22px}}.buddypress-wrap .grid.bp-list>li .item .group-desc,.buddypress-wrap .grid.bp-list>li .item .item-block{float:none;width:96%}.buddypress-wrap .grid.bp-list>li .item .item-block{margin-bottom:10px}.buddypress-wrap .grid.bp-list>li .item .last-activity{margin-top:5px}.buddypress-wrap .grid.bp-list>li .item .group-desc{clear:none}.buddypress-wrap .grid.bp-list>li .item .user-update{clear:both;text-align:left}.buddypress-wrap .grid.bp-list>li .item .activity-read-more a{display:inline}.buddypress-wrap .grid.bp-list>li .action{bottom:5px;float:none;height:auto;left:0;margin:0;padding:0 5px;position:absolute;text-align:center;top:auto;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button{float:none;margin:5px 0 0;text-align:center;width:100%}.buddypress-wrap .grid.bp-list>li .action .generic-button a,.buddypress-wrap .grid.bp-list>li .action .generic-button button{width:100%}.buddypress-wrap .grid.bp-list>li .avatar,.buddypress-wrap .grid.bp-list>li .item,.buddypress-wrap .grid.bp-list>li .item-avatar{float:none}.buddypress-wrap .blogs-list.grid.two>li .blogs-title{min-height:5em}.buddypress-wrap .grid.four>li .group-desc,.buddypress-wrap .grid.three>li .group-desc{min-height:8em}.buddypress-wrap .blogs-list.grid.four>li,.buddypress-wrap .blogs-list.grid.three>li{min-height:350px}.buddypress-wrap .blogs-list.grid.four>li .last-activity,.buddypress-wrap .blogs-list.grid.three>li .last-activity{margin-bottom:0}.buddypress-wrap .blogs-list.grid.four>li .last-post,.buddypress-wrap .blogs-list.grid.three>li .last-post{margin-top:0}.buddypress:not(.logged-in) .grid.bp-list .list-wrap{padding-bottom:5px}.buddypress:not(.logged-in) .grid.groups-list .list-wrap{min-height:430px}.buddypress:not(.logged-in) .grid.members-list .list-wrap{min-height:300px}.buddypress:not(.logged-in) .grid.blogs-list .list-wrap{min-height:320px}@media screen and (min-width:46.8em){.bp-single-vert-nav .bp-navs.vertical{overflow:visible}.bp-single-vert-nav .bp-navs.vertical ul{border-right:1px solid #d6d6d6;border-bottom:0;float:left;margin-right:-1px;width:25%}.bp-single-vert-nav .bp-navs.vertical li{float:none;margin-right:0}.bp-single-vert-nav .bp-navs.vertical li.selected a{background:#ccc;color:#333}.bp-single-vert-nav .bp-navs.vertical li:focus,.bp-single-vert-nav .bp-navs.vertical li:hover{background:#ccc}.bp-single-vert-nav .bp-navs.vertical li span{background:#d6d6d6;border-radius:10%;float:right;margin-right:2px}.bp-single-vert-nav .bp-navs.vertical li:hover span{border-color:#eaeaea}.bp-single-vert-nav .bp-navs.vertical.tabbed-links li.selected a{padding-left:0}.bp-single-vert-nav .bp-wrap{margin-bottom:15px}.bp-single-vert-nav .bp-wrap .group-nav-tabs.groups-nav ul li,.bp-single-vert-nav .bp-wrap .user-nav-tabs.users-nav ul li{left:1px;position:relative}.bp-single-vert-nav .item-body:not(#group-create-body){background:#fff;border-left:1px solid #d6d6d6;float:right;margin:0;min-height:400px;padding:0 0 0 1em;width:calc(75% + 1px)}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links){background:#eaeaea;margin:0 0 0 -5px;width:auto}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li{font-size:16px;margin:10px 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a{border-right:1px solid #ccc;padding:0 .5em}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:focus,.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li a:hover{background:0 0}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li.current a{background:0 0;color:#333;text-decoration:underline}.bp-single-vert-nav .item-body:not(#group-create-body) #subnav:not(.tabbed-links) li:last-child a{border:none}.bp-dir-vert-nav .dir-navs{float:left;left:1px;position:relative;width:20%}.bp-dir-vert-nav .dir-navs ul li{float:none;overflow:hidden;width:auto}.bp-dir-vert-nav .dir-navs ul li.selected{border:1px solid #eee}.bp-dir-vert-nav .dir-navs ul li.selected a{background:#555;color:#fff}.bp-dir-vert-nav .dir-navs ul li.selected a span{background:#eaeaea;border-color:#ccc;color:#5087e5}.bp-dir-vert-nav .dir-navs ul li a:focus,.bp-dir-vert-nav .dir-navs ul li a:hover{background:#ccc;color:#333}.bp-dir-vert-nav .dir-navs ul li a:focus span,.bp-dir-vert-nav .dir-navs ul li a:hover span{border:1px solid #555}.bp-dir-vert-nav .screen-content{border-left:1px solid #d6d6d6;margin-left:20%;overflow:hidden;padding:0 0 2em 1em}.bp-dir-vert-nav .screen-content .subnav-filters{margin-top:0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li:not(.selected) a:hover,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:focus,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li:not(.selected) a:hover{background:0 0}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected{background:0 0;border:1px solid #d6d6d6;border-right-color:#fff}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a{background:0 0;color:#333;font-weight:600}.buddypress-wrap.bp-vertical-navs .dir-navs.activity-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.groups-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.members-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .dir-navs.sites-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.group-nav-tabs ul li.selected a span,.buddypress-wrap.bp-vertical-navs .main-navs.user-nav-tabs ul li.selected a span{background:#555;border:1px solid #d6d6d6;color:#fff}}
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/ajax.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/ajax.php
index 18a4c826a..28bcee926 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/ajax.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/ajax.php
@@ -148,7 +148,7 @@ function bp_nouveau_ajax_unmark_activity_favorite() {
 	}
 
 	if ( bp_activity_remove_user_favorite( $_POST['id'] ) ) {
-		$response = array( 'content' => __( 'Favorite', 'buddypress' ) );
+		$response = array( 'content' => __( 'Mark as Favorite', 'buddypress' ) );
 
 		$fav_count = (int) bp_get_total_favorite_count_for_user( bp_loggedin_user_id() );
 
@@ -539,7 +539,7 @@ function bp_nouveau_ajax_post_update() {
 		}
 
 	} else {
-		/** This filter is documented in bp-activity/bp-activity-actions.php */
+		/** This filter is documented in bp-activity/actions/post.php */
 		$activity_id = apply_filters( 'bp_activity_custom_update', false, $object, $item_id, $_POST['content'] );
 	}
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/functions.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/functions.php
index 385dd1634..975bc5e86 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/functions.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/functions.php
@@ -3,7 +3,7 @@
  * Activity functions
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 5.0.0
  */
 
 // Exit if accessed directly.
@@ -67,7 +67,10 @@ function bp_nouveau_activity_localize_scripts( $params = array() ) {
 	$activity_params = array(
 		'user_id'     => bp_loggedin_user_id(),
 		'object'      => 'user',
-		'backcompat'  => (bool) has_action( 'bp_activity_post_form_options' ),
+		'backcompat'  => array(
+			'before_post_form'  => (bool) has_action( 'bp_before_activity_post_form' ),
+			'post_form_options' => (bool) has_action( 'bp_activity_post_form_options' ),
+		),
 		'post_nonce'  => wp_create_nonce( 'post_update', '_wpnonce_post_update' ),
 	);
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/template-tags.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/template-tags.php
index 0d8fbf0ff..29e4d7273 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/template-tags.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/activity/template-tags.php
@@ -3,7 +3,7 @@
  * Activity Template tags
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 5.0.0
  */
 
 // Exit if accessed directly.
@@ -67,18 +67,12 @@ function bp_nouveau_after_activity_directory_content() {
  * Enqueue needed scripts for the Activity Post Form
  *
  * @since 3.0.0
+ * @since 5.0.0 Move the `bp_before_activity_post_form` hook inside the Activity post form.
  */
 function bp_nouveau_before_activity_post_form() {
 	if ( bp_nouveau_current_user_can( 'publish_activity' ) ) {
 		wp_enqueue_script( 'bp-nouveau-activity-post-form' );
 	}
-
-	/**
-	 * Fires before the activity post form.
-	 *
-	 * @since 1.2.0
-	 */
-	do_action( 'bp_before_activity_post_form' );
 }
 
 /**
@@ -375,7 +369,7 @@ function bp_nouveau_activity_entry_buttons( $args = array() ) {
 					'button_element'   => $button_element,
 					'link_class'       => 'button fav bp-secondary-action bp-tooltip',
 					'data_bp_tooltip'  => __( 'Mark as Favorite', 'buddypress' ),
-					'link_text'        => __( 'Favorite', 'buddypress' ),
+					'link_text'        => __( 'Mark as Favorite', 'buddypress' ),
 					'aria-pressed'     => 'false',
 					'link_attr'        => bp_get_activity_favorite_link(),
 				);
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/ajax.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/ajax.php
index 83ab32cf3..bbefca7bc 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/ajax.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/ajax.php
@@ -110,6 +110,10 @@ function bp_nouveau_ajax_object_template_loader() {
 			$template_part = 'groups/single/requests-loop.php';
 		break;
 
+		case 'friend_requests' :
+			$template_part = 'members/single/friends/requests-loop.php';
+		break;
+
 		case 'member_notifications' :
 			$template_part = 'members/single/notifications/notifications-loop.php';
 		break;
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/functions.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/functions.php
index 711596337..a4cd20aa8 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/functions.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/functions.php
@@ -1161,22 +1161,8 @@ function bp_nouveau_get_signup_fields( $section = '' ) {
 				'type'           => 'email',
 				'class'          => '',
 			),
-			'signup_password' => array(
-				'label'          => __( 'Choose a Password', 'buddypress' ),
-				'required'       => true,
-				'value'          => '',
-				'attribute_type' => 'password',
-				'type'           => 'password',
-				'class'          => 'password-entry',
-			),
-			'signup_password_confirm' => array(
-				'label'          => __( 'Confirm Password', 'buddypress' ),
-				'required'       => true,
-				'value'          => '',
-				'attribute_type' => 'password',
-				'type'           => 'password',
-				'class'          => 'password-entry-confirm',
-			),
+			'signup_password' => array(),
+			'signup_password_confirm' => array(),
 		),
 		'blog_details' => array(
 			'signup_blog_url' => array(
@@ -1256,7 +1242,7 @@ function bp_nouveau_get_submit_button( $action = '' ) {
 			'nonce'      => 'bp_new_signup',
 			'attributes' => array(
 				'name'  => 'signup_submit',
-				'id'    => 'signup_submit',
+				'id'    => 'submit',
 				'value' => __( 'Complete Sign Up', 'buddypress' ),
 			),
 		),
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/ajax.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/ajax.php
index 93167c69f..4d4ba9451 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/ajax.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/ajax.php
@@ -397,6 +397,7 @@ function bp_nouveau_ajax_send_group_invites() {
 				array(
 					'user_id'  => $user_id,
 					'group_id' => $group_id,
+					'content'  => $_POST['message'],
 				)
 			);
 		}
@@ -413,7 +414,7 @@ function bp_nouveau_ajax_send_group_invites() {
 	}
 
 	// Send the invites.
-	groups_send_invites( bp_loggedin_user_id(), $group_id );
+	groups_send_invites( array(	'group_id' => $group_id ) );
 
 	if ( ! empty( $_POST['message'] ) ) {
 		unset( $bp->groups->invites_message );
@@ -469,23 +470,27 @@ function bp_nouveau_ajax_remove_group_invite() {
 		wp_send_json_error( $response );
 	}
 
-	// Verify pending invite.
-	$invites_args = array(
-		'is_confirmed' => false,
-		'is_banned'    => null,
-		'is_admin'     => null,
-		'is_mod'       => null,
-	);
-	$invites = bp_get_user_groups( $user_id, $invites_args );
-	if ( empty( $invites ) ) {
+	// Verify that a sent invite exists.
+	$inviter_ids = groups_get_invites( array(
+		'user_id'     => $user_id,
+		'item_id'     => $group_id,
+		'invite_sent' => 'sent',
+		'fields'      => 'inviter_ids'
+	) );
+
+	if ( empty( $inviter_ids ) ) {
 		wp_send_json_error( $response );
 	}
 
-	if ( ! groups_is_user_admin( bp_loggedin_user_id(), $group_id ) ) {
+	// Is the current user the inviter?
+	$inviter_id = in_array( bp_loggedin_user_id(), $inviter_ids, true ) ? bp_loggedin_user_id() : false;
+
+	// A site moderator, group admin or the inviting user should be able to remove an invitation.
+	if ( ! bp_is_item_admin() && ! $inviter_id ) {
 		wp_send_json_error( $response );
 	}
 
-	if ( BP_Groups_Member::check_for_membership_request( $user_id, $group_id ) ) {
+	if ( groups_is_user_member( $user_id, $group_id ) ) {
 		wp_send_json_error(
 			array(
 				'feedback' => __( 'The member is already a member of the group.', 'buddypress' ),
@@ -495,8 +500,8 @@ function bp_nouveau_ajax_remove_group_invite() {
 		);
 	}
 
-	// Remove the unsent invitation.
-	if ( ! groups_uninvite_user( $user_id, $group_id ) ) {
+	// Remove the invitation.
+	if ( ! groups_uninvite_user( $user_id, $group_id, $inviter_id ) ) {
 		wp_send_json_error(
 			array(
 				'feedback' => __( 'Group invitation could not be removed.', 'buddypress' ),
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/classes.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/classes.php
index 7d4fe616a..3b68f8003 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/classes.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/classes.php
@@ -50,10 +50,13 @@ class BP_Nouveau_Group_Invite_Query extends BP_User_Query {
 
 		$group_member_ids = $this->get_group_member_ids();
 
-		// We want to get users that are already members of the group
+		/**
+		 * We want to exclude users who are already members or who have been
+		 * invited by **any** of the group members to join it.
+		 */
 		$type = 'exclude';
 
-		// We want to get invited users who did not confirmed yet
+		// We want to get the invited users who did not confirmed yet.
 		if ( false === $this->query_vars['is_confirmed'] ) {
 			$type = 'include';
 		}
@@ -77,6 +80,22 @@ class BP_Nouveau_Group_Invite_Query extends BP_User_Query {
 			return $this->group_member_ids;
 		}
 
+		// Fetch **all** invited users.
+		$pending_invites = groups_get_invites( array(
+			'item_id'     => $this->query_vars['group_id'],
+			'invite_sent' => 'sent',
+			'fields'      => 'user_ids'
+		) );
+
+		// This is a clue that we only want the invitations.
+		if ( false === $this->query_vars['is_confirmed'] ) {
+			return $pending_invites;
+		}
+
+		/**
+		 * Otherwise, we want group members _and_ users with outstanding invitations,
+		 * because we're doing an "exclude" query.
+		 */
 		$bp  = buddypress();
 		$sql = array(
 			'select'  => "SELECT user_id FROM {$bp->groups->table_name_members}",
@@ -91,11 +110,6 @@ class BP_Nouveau_Group_Invite_Query extends BP_User_Query {
 		// Group id
 		$sql['where'][] = $wpdb->prepare( 'group_id = %d', $this->query_vars['group_id'] );
 
-		if ( false === $this->query_vars['is_confirmed'] ) {
-			$sql['where'][] = $wpdb->prepare( 'is_confirmed = %d', (int) $this->query_vars['is_confirmed'] );
-			$sql['where'][] = 'inviter_id != 0';
-		}
-
 		// Join the query part
 		$sql['where'] = ! empty( $sql['where'] ) ? 'WHERE ' . implode( ' AND ', $sql['where'] ) : '';
 
@@ -106,7 +120,7 @@ class BP_Nouveau_Group_Invite_Query extends BP_User_Query {
 		/** LIMIT clause ******************************************************/
 		$this->group_member_ids = $wpdb->get_col( "{$sql['select']} {$sql['where']} {$sql['orderby']} {$sql['order']} {$sql['limit']}" );
 
-		return $this->group_member_ids;
+		return array_merge( $this->group_member_ids, $pending_invites );
 	}
 
 	/**
@@ -137,9 +151,12 @@ class BP_Nouveau_Group_Invite_Query extends BP_User_Query {
 			return array();
 		}
 
-		$bp = buddypress();
-
-		return $wpdb->get_col( $wpdb->prepare( "SELECT inviter_id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d", $user_id, $group_id ) );
+		return groups_get_invites( array(
+			'user_id'     => $user_id,
+			'item_id'     => $group_id,
+			'invite_sent' => 'sent',
+			'fields'      => 'inviter_ids'
+		) );
 	}
 }
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/functions.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/functions.php
index e0f18356c..46412c6c3 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/functions.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/groups/functions.php
@@ -3,7 +3,7 @@
  * Groups functions
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 5.0.0
  */
 
 // Exit if accessed directly.
@@ -68,11 +68,18 @@ function bp_nouveau_groups_enqueue_scripts() {
 		' );
 	}
 
-	if ( ! bp_is_group_invites() && ! ( bp_is_group_create() && bp_is_group_creation_step( 'group-invites' ) ) ) {
-		return;
+	if ( bp_is_group_invites() || ( bp_is_group_create() && bp_is_group_creation_step( 'group-invites' ) ) ) {
+		wp_enqueue_script( 'bp-nouveau-group-invites' );
 	}
 
-	wp_enqueue_script( 'bp-nouveau-group-invites' );
+	if ( bp_rest_api_is_available() && bp_is_group_admin_page() && bp_is_group_admin_screen( 'manage-members' ) ) {
+		wp_enqueue_script( 'bp-group-manage-members' );
+		wp_localize_script(
+			'bp-group-manage-members',
+			'bpGroupManageMembersSettings',
+			bp_groups_get_group_manage_members_script_data( bp_get_current_group_id() )
+		);
+	}
 }
 
 /**
@@ -259,8 +266,7 @@ function bp_nouveau_get_group_potential_invites( $args = array() ) {
 	}
 
 	// Check the current user's access to the group.
-	$group = groups_get_group( $r['group_id'] );
-	if ( ! $group->user_has_access && ! bp_current_user_can( 'bp_moderate' ) ) {
+	if ( ! bp_groups_user_can_send_invites( $r['group_id'] ) ) {
 		return false;
 	}
 
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/notifications/template-tags.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/notifications/template-tags.php
index e5029fcf6..e56a38e72 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/notifications/template-tags.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/notifications/template-tags.php
@@ -104,7 +104,7 @@ function bp_nouveau_notifications_bulk_management_dropdown() {
 		?></label>
 
 		<select name="notification_bulk_action" id="notification-select">
-			<option value="" selected="selected"><?php echo esc_html( 'Bulk Actions', 'buddypress' ); ?></option>
+			<option value="" selected="selected"><?php esc_html_e( 'Bulk Actions', 'buddypress' ); ?></option>
 
 			<?php if ( bp_is_current_action( 'unread' ) ) : ?>
 				<option value="read"><?php echo esc_html_x( 'Mark read', 'button', 'buddypress' ); ?></option>
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/template-tags.php b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/template-tags.php
index a0341a0bd..8662aa552 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/template-tags.php
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/includes/template-tags.php
@@ -1988,10 +1988,15 @@ function bp_nouveau_current_object() {
 		}
 
 	} else {
+		$data_filter = bp_current_component();
+		if ( 'friends' === $data_filter && bp_is_user_friend_requests() ) {
+			$data_filter = 'friend_requests';
+		}
+
 		$component['members_select']   = 'members-order-select';
 		$component['members_order_by'] = 'members-order-by';
 		$component['object']           = bp_current_component();
-		$component['data_filter']      = bp_current_component();
+		$component['data_filter']      = $data_filter;
 	}
 
 	return $component;
@@ -2304,147 +2309,172 @@ function bp_nouveau_signup_form( $section = 'account_details' ) {
 	}
 
 	foreach ( $fields as $name => $attributes ) {
-		list( $label, $required, $value, $attribute_type, $type, $class ) = array_values( $attributes );
+		if ( 'signup_password' === $name ) {
+			?>
+			<label for="pass1"><?php esc_html_e( 'Choose a Password (required)', 'buddypress' ); ?></label>
+			<div class="user-pass1-wrap">
+				<div class="wp-pwd">
+					<div class="password-input-wrapper">
+						<input type="password" data-reveal="1" name="signup_password" id="pass1" class="password-entry" size="24" value="" <?php bp_form_field_attributes( 'password', array( 'data-pw' => wp_generate_password( 12 ), 'aria-describedby' => 'pass-strength-result' ) ); ?> />
+						<button type="button" class="button wp-hide-pw">
+							<span class="dashicons dashicons-hidden" aria-hidden="true"></span>
+						</button>
+					</div>
+					<div id="pass-strength-result" aria-live="polite"><?php esc_html_e( 'Strength indicator', 'buddypress' ); ?></div>
+				</div>
+				<div class="pw-weak">
+					<label>
+						<input type="checkbox" name="pw_weak" class="pw-checkbox" />
+						<?php esc_html_e( 'Confirm use of weak password', 'buddypress' ); ?>
+					</label>
+				</div>
+			</div>
+			<?php
+		} elseif ( 'signup_password_confirm' === $name ) {
+			?>
+			<p class="user-pass2-wrap">
+				<label for="pass2"><?php esc_html_e( 'Confirm new password', 'buddypress' ); ?></label><br />
+				<input type="password" name="signup_password_confirm" id="pass2" class="password-entry-confirm" size="24" value="" <?php bp_form_field_attributes( 'password' ); ?> />
+			</p>
 
-		// Text fields are using strings, radios are using their inputs
-		$label_output = '<label for="%1$s">%2$s</label>';
-		$id           = $name;
-		$classes      = '';
+			<p class="description indicator-hint"><?php echo wp_get_password_hint(); ?></p>
+			<?php
+		} else {
+			list( $label, $required, $value, $attribute_type, $type, $class ) = array_values( $attributes );
 
-		if ( $required ) {
-			/* translators: Do not translate placeholders. 2 = form field name, 3 = "(required)". */
-			$label_output = __( '<label for="%1$s">%2$s %3$s</label>', 'buddypress' );
-		}
+			// Text fields are using strings, radios are using their inputs
+			$label_output = '<label for="%1$s">%2$s</label>';
+			$id           = $name;
+			$classes      = '';
 
-		// Output the label for regular fields
-		if ( 'radio' !== $type ) {
 			if ( $required ) {
-				printf( $label_output, esc_attr( $name ), esc_html( $label ), __( '(required)', 'buddypress' ) );
-			} else {
-				printf( $label_output, esc_attr( $name ), esc_html( $label ) );
+				/* translators: Do not translate placeholders. 2 = form field name, 3 = "(required)". */
+				$label_output = __( '<label for="%1$s">%2$s %3$s</label>', 'buddypress' );
 			}
 
-			if ( ! empty( $value ) && is_callable( $value ) ) {
-				$value = call_user_func( $value );
-			}
+			// Output the label for regular fields
+			if ( 'radio' !== $type ) {
+				if ( $required ) {
+					printf( $label_output, esc_attr( $name ), esc_html( $label ), __( '(required)', 'buddypress' ) );
+				} else {
+					printf( $label_output, esc_attr( $name ), esc_html( $label ) );
+				}
 
-		// Handle the specific case of Site's privacy differently
-		} elseif ( 'signup_blog_privacy_private' !== $name ) {
-			?>
-				<span class="label">
-					<?php esc_html_e( 'I would like my site to appear in search engines, and in public listings around this network.', 'buddypress' ); ?>
-				</span>
-			<?php
-		}
+				if ( ! empty( $value ) && is_callable( $value ) ) {
+					$value = call_user_func( $value );
+				}
 
-		// Set the additional attributes
-		if ( $attribute_type ) {
-			$existing_attributes = array();
+			// Handle the specific case of Site's privacy differently
+			} elseif ( 'signup_blog_privacy_private' !== $name ) {
+				?>
+					<span class="label">
+						<?php esc_html_e( 'I would like my site to appear in search engines, and in public listings around this network.', 'buddypress' ); ?>
+					</span>
+				<?php
+			}
 
-			if ( ! empty( $required ) ) {
-				$existing_attributes = array( 'aria-required' => 'true' );
+			// Set the additional attributes
+			if ( $attribute_type ) {
+				$existing_attributes = array();
 
-				/**
-				 * The blog section is hidden, so let's avoid a browser warning
-				 * and deal with the Blog section in Javascript.
-				 */
-				if ( $section !== 'blog_details' ) {
-					$existing_attributes['required'] = 'required';
+				if ( ! empty( $required ) ) {
+					$existing_attributes = array( 'aria-required' => 'true' );
+
+					/**
+					 * The blog section is hidden, so let's avoid a browser warning
+					 * and deal with the Blog section in Javascript.
+					 */
+					if ( $section !== 'blog_details' ) {
+						$existing_attributes['required'] = 'required';
+					}
 				}
+
+				$attribute_type = ' ' . bp_get_form_field_attributes( $attribute_type, $existing_attributes );
 			}
 
-			$attribute_type = ' ' . bp_get_form_field_attributes( $attribute_type, $existing_attributes );
-		}
+			// Specific case for Site's privacy
+			if ( 'signup_blog_privacy_public' === $name || 'signup_blog_privacy_private' === $name ) {
+				$name      = 'signup_blog_privacy';
+				$submitted = bp_get_signup_blog_privacy_value();
 
-		// Specific case for Site's privacy
-		if ( 'signup_blog_privacy_public' === $name || 'signup_blog_privacy_private' === $name ) {
-			$name      = 'signup_blog_privacy';
-			$submitted = bp_get_signup_blog_privacy_value();
+				if ( ! $submitted ) {
+					$submitted = 'public';
+				}
 
-			if ( ! $submitted ) {
-				$submitted = 'public';
+				$attribute_type = ' ' . checked( $value, $submitted, false );
 			}
 
-			$attribute_type = ' ' . checked( $value, $submitted, false );
-		}
+			// Do not run function to display errors for the private radio.
+			if ( 'private' !== $value ) {
 
-		// Do not run function to display errors for the private radio.
-		if ( 'private' !== $value ) {
+				/**
+				 * Fetch & display any BP member registration field errors.
+				 *
+				 * Passes BP signup errors to Nouveau's template function to
+				 * render suitable markup for error string.
+				 */
+				if ( isset( buddypress()->signup->errors[ $name ] ) ) {
+					nouveau_error_template( buddypress()->signup->errors[ $name ] );
+					$invalid = 'invalid';
+				}
+			}
 
-			/**
-			 * Fetch & display any BP member registration field errors.
-			 *
-			 * Passes BP signup errors to Nouveau's template function to
-			 * render suitable markup for error string.
-			 */
-			if ( isset( buddypress()->signup->errors[ $name ] ) ) {
-				nouveau_error_template( buddypress()->signup->errors[ $name ] );
-				$invalid = 'invalid';
+			if ( isset( $invalid ) && isset( buddypress()->signup->errors[ $name ] ) ) {
+				if ( ! empty( $class ) ) {
+					$class = $class . ' ' . $invalid;
+				} else {
+					$class = $invalid;
+				}
 			}
-		}
 
-		if ( isset( $invalid ) && isset( buddypress()->signup->errors[ $name ] ) ) {
-			if ( ! empty( $class ) ) {
-				$class = $class . ' ' . $invalid;
-			} else {
-				$class = $invalid;
+			if ( $class ) {
+				$class = sprintf(
+					' class="%s"',
+					esc_attr( join( ' ', array_map( 'sanitize_html_class', explode( ' ', $class ) ) ) )
+				);
 			}
-		}
 
-		if ( $class ) {
-			$class = sprintf(
-				' class="%s"',
-				esc_attr( join( ' ', array_map( 'sanitize_html_class', explode( ' ', $class ) ) ) )
+			// Set the input.
+			$field_output = sprintf(
+				'<input type="%1$s" name="%2$s" id="%3$s" %4$s value="%5$s" %6$s />',
+				esc_attr( $type ),
+				esc_attr( $name ),
+				esc_attr( $id ),
+				$class,  // Constructed safely above.
+				esc_attr( $value ),
+				$attribute_type // Constructed safely above.
 			);
-		}
 
-		// Set the input.
-		$field_output = sprintf(
-			'<input type="%1$s" name="%2$s" id="%3$s" %4$s value="%5$s" %6$s />',
-			esc_attr( $type ),
-			esc_attr( $name ),
-			esc_attr( $id ),
-			$class,  // Constructed safely above.
-			esc_attr( $value ),
-			$attribute_type // Constructed safely above.
-		);
-
-		// Not a radio, let's output the field
-		if ( 'radio' !== $type ) {
-			if ( 'signup_blog_url' !== $name ) {
-				print( $field_output );  // Constructed safely above.
-
-			// If it's the signup blog url, it's specific to Multisite config.
-			} elseif ( is_subdomain_install() ) {
-				// Constructed safely above.
-				printf(
-					'%1$s %2$s . %3$s',
-					is_ssl() ? 'https://' : 'http://',
-					$field_output,
-					bp_signup_get_subdomain_base()
-				);
+			// Not a radio, let's output the field
+			if ( 'radio' !== $type ) {
+				if ( 'signup_blog_url' !== $name ) {
+					print( $field_output );  // Constructed safely above.
+
+				// If it's the signup blog url, it's specific to Multisite config.
+				} elseif ( is_subdomain_install() ) {
+					// Constructed safely above.
+					printf(
+						'%1$s %2$s . %3$s',
+						is_ssl() ? 'https://' : 'http://',
+						$field_output,
+						bp_signup_get_subdomain_base()
+					);
+
+				// Subfolders!
+				} else {
+					printf(
+						'%1$s %2$s',
+						home_url( '/' ),
+						$field_output  // Constructed safely above.
+					);
+				}
 
-			// Subfolders!
+			// It's a radio, let's output the field inside the label
 			} else {
-				printf(
-					'%1$s %2$s',
-					home_url( '/' ),
-					$field_output  // Constructed safely above.
-				);
+				// $label_output and $field_output are constructed safely above.
+				printf( $label_output, esc_attr( $name ), $field_output . ' ' . esc_html( $label ) );
 			}
-
-		// It's a radio, let's output the field inside the label
-		} else {
-			// $label_output and $field_output are constructed safely above.
-			printf( $label_output, esc_attr( $name ), $field_output . ' ' . esc_html( $label ) );
 		}
-
-		// Password strength is restricted to the signup_password field
-		if ( 'signup_password' === $name ) :
-		?>
-			<div id="pass-strength-result"></div>
-		<?php
-		endif;
 	}
 
 	/**
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js
index 1e17af71d..4465aeca1 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js
@@ -1,5 +1,6 @@
 /* global bp, BP_Nouveau, _, Backbone */
-/* @version 3.1.0 */
+/* @since 3.0.0 */
+/* @version 5.0.0 */
 window.wp = window.wp || {};
 window.bp = window.bp || {};
 
@@ -375,6 +376,11 @@ window.bp = window.bp || {};
 		template : bp.template( 'activity-post-form-options' )
 	} );
 
+	bp.Views.BeforeFormInputs = bp.View.extend( {
+		tagName  : 'div',
+		template : bp.template( 'activity-before-post-form-inputs' )
+	} );
+
 	bp.Views.FormTarget = bp.View.extend( {
 		tagName   : 'div',
 		id        : 'whats-new-post-in-box',
@@ -586,24 +592,32 @@ window.bp = window.bp || {};
 				BP_Nouveau.activity.params,
 				['user_id', 'item_id', 'object' ]
 			) );
+			this.options.backcompat = BP_Nouveau.activity.params.backcompat;
+			var staticViews = [
+				new bp.Views.FormAvatar(),
+				new bp.Views.FormContent( { activity: this.model } )
+			];
+
+			// Backcompat to take the `bp_before_activity_post_form` action in account.
+			if ( true === this.options.backcompat.before_post_form ) {
+				staticViews.unshift( new bp.Views.BeforeFormInputs() );
+			}
 
 			// Clone the model to set the resetted one
 			this.resetModel = this.model.clone();
 
-			this.views.set( [
-				new bp.Views.FormAvatar(),
-				new bp.Views.FormContent( { activity: this.model } )
-			] );
+			this.views.set( staticViews );
 
 			this.model.on( 'change:errors', this.displayFeedback, this );
 		},
 
 		displayFull: function( event ) {
+			var numStaticViews = true === this.options.backcompat.before_post_form ? 3 : 2;
 
 			// Remove feedback.
 			this.cleanFeedback();
 
-			if ( 2 !== this.views._views[''].length ) {
+			if ( numStaticViews !== this.views._views[''].length ) {
 				return;
 			}
 
@@ -612,29 +626,35 @@ window.bp = window.bp || {};
 				height : 'auto'
 			} );
 
-			// Backcompat custom fields
-			if ( true === BP_Nouveau.activity.params.backcompat ) {
+			this.$el.addClass( 'activity-form-expanded' );
+
+			// Add the container view for buttons or custom fields.
+			if ( true === this.options.backcompat.post_form_options ) {
 				this.views.add( new bp.Views.FormOptions( { model: this.model } ) );
+			} else {
+				this.views.add( new bp.View( { id: 'whats-new-options' } ) );
 			}
 
 			// Attach buttons
 			if ( ! _.isUndefined( BP_Nouveau.activity.params.buttons ) ) {
 				// Global
 				bp.Nouveau.Activity.postForm.buttons.set( BP_Nouveau.activity.params.buttons );
-				this.views.add( new bp.Views.FormButtons( { collection: bp.Nouveau.Activity.postForm.buttons, model: this.model } ) );
+				this.views.add( '#whats-new-options', new bp.Views.FormButtons( { collection: bp.Nouveau.Activity.postForm.buttons, model: this.model } ) );
 			}
 
 			// Select box for the object
 			if ( ! _.isUndefined( BP_Nouveau.activity.params.objects ) && 1 < _.keys( BP_Nouveau.activity.params.objects ).length ) {
-				this.views.add( new bp.Views.FormTarget( { model: this.model } ) );
+				this.views.add( '#whats-new-options', new bp.Views.FormTarget( { model: this.model } ) );
 			}
 
-			this.views.add( new bp.Views.FormSubmit( { model: this.model } ) );
+			this.views.add( '#whats-new-options', new bp.Views.FormSubmit( { model: this.model } ) );
 		},
 
 		resetForm: function() {
+			var self = this, indexStaticViews = self.options.backcompat.before_post_form ? 2 : 1;
+
 			_.each( this.views._views[''], function( view, index ) {
-				if ( index > 1 ) {
+				if ( index > indexStaticViews ) {
 					view.remove();
 				}
 			} );
@@ -644,6 +664,8 @@ window.bp = window.bp || {};
 				height : '50px'
 			} );
 
+			this.$el.removeClass( 'activity-form-expanded' );
+
 			// Reset the model
 			this.model.clear();
 			this.model.set( this.resetModel.attributes );
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.min.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.min.js
index 81debc541..e4e8bd0ea 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.min.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity-post-form.min.js
@@ -1 +1 @@
-window.wp=window.wp||{},window.bp=window.bp||{},function(e,t){bp.Nouveau=bp.Nouveau||{},void 0!==bp.Nouveau.Activity&&"undefined"!=typeof BP_Nouveau&&(_.extend(bp,_.pick(wp,"Backbone","ajax","template")),bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.Nouveau.Activity.postForm={start:function(){this.views=new Backbone.Collection,this.ActivityObjects=new bp.Collections.ActivityObjects,this.buttons=new Backbone.Collection,this.postFormView()},postFormView:function(){if(t("#bp-nouveau-activity-form").length){var e=new bp.Views.PostForm;this.views.add({id:"post_form",view:e}),e.inject("#bp-nouveau-activity-form")}}},void 0===bp.View&&(bp.View=bp.Backbone.View.extend({inject:function(e){this.render(),t(e).html(this.el),this.views.ready()},prepare:function(){return!_.isUndefined(this.model)&&_.isFunction(this.model.toJSON)?this.model.toJSON():{}}})),bp.Models.Activity=Backbone.Model.extend({defaults:{user_id:0,item_id:0,object:"",content:""}}),bp.Models.ActivityObject=Backbone.Model.extend({defaults:{id:0,name:"",avatar_url:"",object_type:"group"}}),bp.Collections.ActivityObjects=Backbone.Collection.extend({model:bp.Models.ActivityObject,sync:function(e,t,i){if("read"===e)return i=i||{},i.context=this,i.data=_.extend(i.data||{},{action:"bp_nouveau_get_activity_objects"}),bp.ajax.send(i)},parse:function(e){return _.isArray(e)||(e=[e]),e}}),bp.Views.activityFeedback=bp.View.extend({tagName:"div",id:"message",template:bp.template("activity-post-form-feedback"),initialize:function(){this.model=new Backbone.Model,this.options.value&&this.model.set("message",this.options.value,{silent:!0}),this.type="info",_.isUndefined(this.options.type)||"info"===this.options.type||(this.type=this.options.type),this.el.className="bp-messages bp-feedback "+this.type}}),bp.Views.ActivityInput=bp.View.extend({tagName:"input",attributes:{type:"text"},initialize:function(){_.isObject(this.options)&&_.each(this.options,function(e,t){this.$el.prop(t,e)},this)}}),bp.Views.WhatsNew=bp.View.extend({tagName:"textarea",className:"bp-suggestions",id:"whats-new",attributes:{name:"whats-new",cols:"50",rows:"4",placeholder:BP_Nouveau.activity.strings.whatsnewPlaceholder,"aria-label":BP_Nouveau.activity.strings.whatsnewLabel},initialize:function(){this.on("ready",this.adjustContent,this),this.options.activity.on("change:content",this.resetContent,this)},adjustContent:function(){this.$el.css({resize:"none",height:"50px"});var e=bp.Nouveau.getLinkParams(null,"r")||null;_.isNull(e)||(this.$el.text("@"+_.escape(e)+" "),this.$el.focus())},resetContent:function(e){_.isUndefined(e)||this.$el.val(e.get("content"))}}),bp.Views.WhatsNewPostIn=bp.View.extend({tagName:"select",id:"whats-new-post-in",attributes:{name:"whats-new-post-in","aria-label":BP_Nouveau.activity.strings.whatsnewpostinLabel},events:{change:"change"},keys:[],initialize:function(){this.model=new Backbone.Model,this.filters=this.options.filters||{},this.$el.html(_.chain(this.filters).map(function(e,i){return{el:t("<option></option>").val(i).html(e.text)[0],priority:e.priority||50}},this).sortBy("priority").pluck("el").value())},change:function(){var e=this.filters[this.el.value];e&&this.model.set({selected:this.el.value,placeholder:e.autocomplete_placeholder})}}),bp.Views.Item=bp.View.extend({tagName:"li",className:"bp-activity-object",template:bp.template("activity-target-item"),attributes:{role:"checkbox"},initialize:function(){this.model.get("selected")&&(this.el.className+=" selected")},events:{click:"setObject"},setObject:function(e){e.preventDefault(),!0===this.model.get("selected")?this.model.clear():this.model.set("selected",!0)}}),bp.Views.AutoComplete=bp.View.extend({tagName:"ul",id:"whats-new-post-in-box-items",events:{keyup:"autoComplete"},initialize:function(){var e=new bp.Views.ActivityInput({type:"text",id:"activity-autocomplete",placeholder:this.options.placeholder||""}).render();this.$el.prepend(t("<li></li>").html(e.$el)),this.on("ready",this.setFocus,this),this.collection.on("add",this.addItemView,this),this.collection.on("reset",this.cleanView,this)},setFocus:function(){this.$el.find("#activity-autocomplete").focus()},addItemView:function(e){this.views.add(new bp.Views.Item({model:e}))},autoComplete:function(){var e=t("#activity-autocomplete").val();this.collection.reset(),2>e.length||this.collection.fetch({data:{type:this.options.type,search:e,nonce:BP_Nouveau.nonces.activity},success:_.bind(this.itemFetched,this),error:_.bind(this.itemFetched,this)})},itemFetched:function(e){e.length||this.cleanView()},cleanView:function(){_.each(this.views._views[""],function(e){e.remove()})}}),bp.Views.FormAvatar=bp.View.extend({tagName:"div",id:"whats-new-avatar",template:bp.template("activity-post-form-avatar"),initialize:function(){this.model=new Backbone.Model(_.pick(BP_Nouveau.activity.params,["user_id","avatar_url","avatar_width","avatar_height","avatar_alt","user_domain"])),this.model.has("avatar_url")&&this.model.set("display_avatar",!0)}}),bp.Views.FormContent=bp.View.extend({tagName:"div",id:"whats-new-content",initialize:function(){this.$el.html(t("<div></div>").prop("id","whats-new-textarea")),this.views.set("#whats-new-textarea",new bp.Views.WhatsNew({activity:this.options.activity}))}}),bp.Views.FormOptions=bp.View.extend({tagName:"div",id:"whats-new-options",template:bp.template("activity-post-form-options")}),bp.Views.FormTarget=bp.View.extend({tagName:"div",id:"whats-new-post-in-box",className:"in-profile",initialize:function(){var e=new bp.Views.WhatsNewPostIn({filters:BP_Nouveau.activity.params.objects});this.views.add(e),e.model.on("change",this.attachAutocomplete,this),bp.Nouveau.Activity.postForm.ActivityObjects.on("change:selected",this.postIn,this)},attachAutocomplete:function(e){0!==bp.Nouveau.Activity.postForm.ActivityObjects.models.length&&bp.Nouveau.Activity.postForm.ActivityObjects.reset(),_.each(this.views._views[""],function(e){_.isUndefined(e.collection)||e.remove()}),"profile"!==e.get("selected")?(this.views.add(new bp.Views.AutoComplete({collection:bp.Nouveau.Activity.postForm.ActivityObjects,type:e.get("selected"),placeholder:e.get("placeholder")})),this.model.set("object",e.get("selected"))):this.model.set({object:"user",item_id:0}),this.updateDisplay()},postIn:function(e){if(_.isUndefined(e.get("id")))return this.model.set("item_id",0),void this.attachAutocomplete(new Backbone.Model({selected:this.model.get("object")}));this.model.set("item_id",e.get("id")),this.views.set("#whats-new-post-in-box-items",new bp.Views.Item({model:e}))},updateDisplay:function(){"user"!==this.model.get("object")?this.$el.removeClass():this.$el.hasClass("in-profile")||this.$el.addClass("in-profile")}}),bp.Views.FormButtons=bp.View.extend({tagName:"div",id:"whats-new-actions",initialize:function(){this.views.add(new bp.View({tagName:"ul",id:"whats-new-buttons"})),_.each(this.collection.models,function(e){this.addItemView(e)},this),this.collection.on("change:active",this.isActive,this)},addItemView:function(e){this.views.add("#whats-new-buttons",new bp.Views.FormButton({model:e}))},isActive:function(e){_.each(this.views._views[""],function(e,t){0!==t&&e.remove()}),!0===e.get("active")?(_.each(this.views._views["#whats-new-buttons"],function(t){t.model.get("id")!==e.get("id")&&(t.model.set("active",!1,{silent:!0}),t.$el.removeClass("active"),this.collection.trigger("reset:"+t.model.get("id"),this.model))},this),this.collection.trigger("display:"+e.get("id"),this)):this.collection.trigger("reset:"+e.get("id"),this.model)}}),bp.Views.FormButton=bp.View.extend({tagName:"li",className:"whats-new-button",template:bp.template("activity-post-form-buttons"),events:{click:"setActive"},setActive:function(e){var t=this.model.get("active")||!1;e.preventDefault(),!1===t?(this.$el.addClass("active"),this.model.set("active",!0)):(this.$el.removeClass("active"),this.model.set("active",!1))}}),bp.Views.FormSubmit=bp.View.extend({tagName:"div",id:"whats-new-submit",className:"in-profile",initialize:function(){var e=new bp.Views.ActivityInput({type:"reset",id:"aw-whats-new-reset",className:"text-button small",value:BP_Nouveau.activity.strings.cancelButton}),t=new bp.Views.ActivityInput({type:"submit",id:"aw-whats-new-submit",className:"button",name:"aw-whats-new-submit",value:BP_Nouveau.activity.strings.postUpdateButton});this.views.set([t,e]),this.model.on("change:object",this.updateDisplay,this)},updateDisplay:function(e){_.isUndefined(e)||("user"!==e.get("object")?this.$el.removeClass("in-profile"):this.$el.hasClass("in-profile")||this.$el.addClass("in-profile"))}}),bp.Views.PostForm=bp.View.extend({tagName:"form",className:"activity-form",id:"whats-new-form",attributes:{name:"whats-new-form",method:"post"},events:{"focus #whats-new":"displayFull",reset:"resetForm",submit:"postUpdate",keydown:"postUpdate"},initialize:function(){this.model=new bp.Models.Activity(_.pick(BP_Nouveau.activity.params,["user_id","item_id","object"])),this.resetModel=this.model.clone(),this.views.set([new bp.Views.FormAvatar,new bp.Views.FormContent({activity:this.model})]),this.model.on("change:errors",this.displayFeedback,this)},displayFull:function(e){this.cleanFeedback(),2===this.views._views[""].length&&(t(e.target).css({resize:"vertical",height:"auto"}),!0===BP_Nouveau.activity.params.backcompat&&this.views.add(new bp.Views.FormOptions({model:this.model})),_.isUndefined(BP_Nouveau.activity.params.buttons)||(bp.Nouveau.Activity.postForm.buttons.set(BP_Nouveau.activity.params.buttons),this.views.add(new bp.Views.FormButtons({collection:bp.Nouveau.Activity.postForm.buttons,model:this.model}))),!_.isUndefined(BP_Nouveau.activity.params.objects)&&1<_.keys(BP_Nouveau.activity.params.objects).length&&this.views.add(new bp.Views.FormTarget({model:this.model})),this.views.add(new bp.Views.FormSubmit({model:this.model})))},resetForm:function(){_.each(this.views._views[""],function(e,t){t>1&&e.remove()}),t("#whats-new").css({resize:"none",height:"50px"}),this.model.clear(),this.model.set(this.resetModel.attributes)},cleanFeedback:function(){_.each(this.views._views[""],function(e){"message"===e.$el.prop("id")&&e.remove()})},displayFeedback:function(e){_.isUndefined(this.model.get("errors"))?this.cleanFeedback():this.views.add(new bp.Views.activityFeedback(e.get("errors")))},postUpdate:function(e){var i=this,s={};if(e){if("keydown"===e.type&&(13!==e.keyCode||!e.ctrlKey))return e;e.preventDefault()}_.each(this.$el.serializeArray(),function(e){e.name=e.name.replace("[]",""),"whats-new"===e.name?i.model.set("content",e.value):-1===_.indexOf(["aw-whats-new-submit","whats-new-post-in"],e.name)&&(_.isUndefined(s[e.name])?s[e.name]=e.value:(_.isArray(s[e.name])||(s[e.name]=[s[e.name]]),s[e.name].push(e.value)))}),this.model.set(s,{silent:!0});var a={_wpnonce_post_update:BP_Nouveau.activity.params.post_nonce};t("#_bp_as_nonce").val()&&(a._bp_as_nonce=t("#_bp_as_nonce").val()),bp.ajax.post("post_update",_.extend(a,this.model.attributes)).done(function(e){var s=bp.Nouveau.getStorage("bp-activity"),a=t('[data-bp-search="activity"] input[type="search"]').val(),o={},n=!1;a&&(a=new RegExp(a,"im"),o=e.activity.match(a)),a&&!o||(n=!s.filter||0===parseInt(s.filter,10)||"activity_update"===s.filter),n&&e.is_directory&&(n="all"===s.scope&&("user"===i.model.get("object")||!1===e.is_private)||i.model.get("object")+"s"===s.scope),i.resetForm(),n?t("#activity-"+e.id).length||(t("#activity-stream ul.activity-list").length||t("#activity-stream").html(t("<ul></ul>").addClass("activity-list item-list bp-list")),bp.Nouveau.inject("#activity-stream ul.activity-list",e.activity,"prepend")):i.views.add(new bp.Views.activityFeedback({value:e.message,type:"updated"}))}).fail(function(e){i.model.set("errors",{type:"error",value:e.message})})}}),bp.Nouveau.Activity.postForm.start())}(bp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},window.bp=window.bp||{},function(e,t){bp.Nouveau=bp.Nouveau||{},void 0!==bp.Nouveau.Activity&&"undefined"!=typeof BP_Nouveau&&(_.extend(bp,_.pick(wp,"Backbone","ajax","template")),bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.Nouveau.Activity.postForm={start:function(){this.views=new Backbone.Collection,this.ActivityObjects=new bp.Collections.ActivityObjects,this.buttons=new Backbone.Collection,this.postFormView()},postFormView:function(){if(t("#bp-nouveau-activity-form").length){var e=new bp.Views.PostForm;this.views.add({id:"post_form",view:e}),e.inject("#bp-nouveau-activity-form")}}},void 0===bp.View&&(bp.View=bp.Backbone.View.extend({inject:function(e){this.render(),t(e).html(this.el),this.views.ready()},prepare:function(){return!_.isUndefined(this.model)&&_.isFunction(this.model.toJSON)?this.model.toJSON():{}}})),bp.Models.Activity=Backbone.Model.extend({defaults:{user_id:0,item_id:0,object:"",content:""}}),bp.Models.ActivityObject=Backbone.Model.extend({defaults:{id:0,name:"",avatar_url:"",object_type:"group"}}),bp.Collections.ActivityObjects=Backbone.Collection.extend({model:bp.Models.ActivityObject,sync:function(e,t,i){if("read"===e)return i=i||{},i.context=this,i.data=_.extend(i.data||{},{action:"bp_nouveau_get_activity_objects"}),bp.ajax.send(i)},parse:function(e){return _.isArray(e)||(e=[e]),e}}),bp.Views.activityFeedback=bp.View.extend({tagName:"div",id:"message",template:bp.template("activity-post-form-feedback"),initialize:function(){this.model=new Backbone.Model,this.options.value&&this.model.set("message",this.options.value,{silent:!0}),this.type="info",_.isUndefined(this.options.type)||"info"===this.options.type||(this.type=this.options.type),this.el.className="bp-messages bp-feedback "+this.type}}),bp.Views.ActivityInput=bp.View.extend({tagName:"input",attributes:{type:"text"},initialize:function(){_.isObject(this.options)&&_.each(this.options,function(e,t){this.$el.prop(t,e)},this)}}),bp.Views.WhatsNew=bp.View.extend({tagName:"textarea",className:"bp-suggestions",id:"whats-new",attributes:{name:"whats-new",cols:"50",rows:"4",placeholder:BP_Nouveau.activity.strings.whatsnewPlaceholder,"aria-label":BP_Nouveau.activity.strings.whatsnewLabel},initialize:function(){this.on("ready",this.adjustContent,this),this.options.activity.on("change:content",this.resetContent,this)},adjustContent:function(){this.$el.css({resize:"none",height:"50px"});var e=bp.Nouveau.getLinkParams(null,"r")||null;_.isNull(e)||(this.$el.text("@"+_.escape(e)+" "),this.$el.focus())},resetContent:function(e){_.isUndefined(e)||this.$el.val(e.get("content"))}}),bp.Views.WhatsNewPostIn=bp.View.extend({tagName:"select",id:"whats-new-post-in",attributes:{name:"whats-new-post-in","aria-label":BP_Nouveau.activity.strings.whatsnewpostinLabel},events:{change:"change"},keys:[],initialize:function(){this.model=new Backbone.Model,this.filters=this.options.filters||{},this.$el.html(_.chain(this.filters).map(function(e,i){return{el:t("<option></option>").val(i).html(e.text)[0],priority:e.priority||50}},this).sortBy("priority").pluck("el").value())},change:function(){var e=this.filters[this.el.value];e&&this.model.set({selected:this.el.value,placeholder:e.autocomplete_placeholder})}}),bp.Views.Item=bp.View.extend({tagName:"li",className:"bp-activity-object",template:bp.template("activity-target-item"),attributes:{role:"checkbox"},initialize:function(){this.model.get("selected")&&(this.el.className+=" selected")},events:{click:"setObject"},setObject:function(e){e.preventDefault(),!0===this.model.get("selected")?this.model.clear():this.model.set("selected",!0)}}),bp.Views.AutoComplete=bp.View.extend({tagName:"ul",id:"whats-new-post-in-box-items",events:{keyup:"autoComplete"},initialize:function(){var e=new bp.Views.ActivityInput({type:"text",id:"activity-autocomplete",placeholder:this.options.placeholder||""}).render();this.$el.prepend(t("<li></li>").html(e.$el)),this.on("ready",this.setFocus,this),this.collection.on("add",this.addItemView,this),this.collection.on("reset",this.cleanView,this)},setFocus:function(){this.$el.find("#activity-autocomplete").focus()},addItemView:function(e){this.views.add(new bp.Views.Item({model:e}))},autoComplete:function(){var e=t("#activity-autocomplete").val();this.collection.reset(),2>e.length||this.collection.fetch({data:{type:this.options.type,search:e,nonce:BP_Nouveau.nonces.activity},success:_.bind(this.itemFetched,this),error:_.bind(this.itemFetched,this)})},itemFetched:function(e){e.length||this.cleanView()},cleanView:function(){_.each(this.views._views[""],function(e){e.remove()})}}),bp.Views.FormAvatar=bp.View.extend({tagName:"div",id:"whats-new-avatar",template:bp.template("activity-post-form-avatar"),initialize:function(){this.model=new Backbone.Model(_.pick(BP_Nouveau.activity.params,["user_id","avatar_url","avatar_width","avatar_height","avatar_alt","user_domain"])),this.model.has("avatar_url")&&this.model.set("display_avatar",!0)}}),bp.Views.FormContent=bp.View.extend({tagName:"div",id:"whats-new-content",initialize:function(){this.$el.html(t("<div></div>").prop("id","whats-new-textarea")),this.views.set("#whats-new-textarea",new bp.Views.WhatsNew({activity:this.options.activity}))}}),bp.Views.FormOptions=bp.View.extend({tagName:"div",id:"whats-new-options",template:bp.template("activity-post-form-options")}),bp.Views.BeforeFormInputs=bp.View.extend({tagName:"div",template:bp.template("activity-before-post-form-inputs")}),bp.Views.FormTarget=bp.View.extend({tagName:"div",id:"whats-new-post-in-box",className:"in-profile",initialize:function(){var e=new bp.Views.WhatsNewPostIn({filters:BP_Nouveau.activity.params.objects});this.views.add(e),e.model.on("change",this.attachAutocomplete,this),bp.Nouveau.Activity.postForm.ActivityObjects.on("change:selected",this.postIn,this)},attachAutocomplete:function(e){0!==bp.Nouveau.Activity.postForm.ActivityObjects.models.length&&bp.Nouveau.Activity.postForm.ActivityObjects.reset(),_.each(this.views._views[""],function(e){_.isUndefined(e.collection)||e.remove()}),"profile"!==e.get("selected")?(this.views.add(new bp.Views.AutoComplete({collection:bp.Nouveau.Activity.postForm.ActivityObjects,type:e.get("selected"),placeholder:e.get("placeholder")})),this.model.set("object",e.get("selected"))):this.model.set({object:"user",item_id:0}),this.updateDisplay()},postIn:function(e){if(_.isUndefined(e.get("id")))return this.model.set("item_id",0),void this.attachAutocomplete(new Backbone.Model({selected:this.model.get("object")}));this.model.set("item_id",e.get("id")),this.views.set("#whats-new-post-in-box-items",new bp.Views.Item({model:e}))},updateDisplay:function(){"user"!==this.model.get("object")?this.$el.removeClass():this.$el.hasClass("in-profile")||this.$el.addClass("in-profile")}}),bp.Views.FormButtons=bp.View.extend({tagName:"div",id:"whats-new-actions",initialize:function(){this.views.add(new bp.View({tagName:"ul",id:"whats-new-buttons"})),_.each(this.collection.models,function(e){this.addItemView(e)},this),this.collection.on("change:active",this.isActive,this)},addItemView:function(e){this.views.add("#whats-new-buttons",new bp.Views.FormButton({model:e}))},isActive:function(e){_.each(this.views._views[""],function(e,t){0!==t&&e.remove()}),!0===e.get("active")?(_.each(this.views._views["#whats-new-buttons"],function(t){t.model.get("id")!==e.get("id")&&(t.model.set("active",!1,{silent:!0}),t.$el.removeClass("active"),this.collection.trigger("reset:"+t.model.get("id"),this.model))},this),this.collection.trigger("display:"+e.get("id"),this)):this.collection.trigger("reset:"+e.get("id"),this.model)}}),bp.Views.FormButton=bp.View.extend({tagName:"li",className:"whats-new-button",template:bp.template("activity-post-form-buttons"),events:{click:"setActive"},setActive:function(e){var t=this.model.get("active")||!1;e.preventDefault(),!1===t?(this.$el.addClass("active"),this.model.set("active",!0)):(this.$el.removeClass("active"),this.model.set("active",!1))}}),bp.Views.FormSubmit=bp.View.extend({tagName:"div",id:"whats-new-submit",className:"in-profile",initialize:function(){var e=new bp.Views.ActivityInput({type:"reset",id:"aw-whats-new-reset",className:"text-button small",value:BP_Nouveau.activity.strings.cancelButton}),t=new bp.Views.ActivityInput({type:"submit",id:"aw-whats-new-submit",className:"button",name:"aw-whats-new-submit",value:BP_Nouveau.activity.strings.postUpdateButton});this.views.set([t,e]),this.model.on("change:object",this.updateDisplay,this)},updateDisplay:function(e){_.isUndefined(e)||("user"!==e.get("object")?this.$el.removeClass("in-profile"):this.$el.hasClass("in-profile")||this.$el.addClass("in-profile"))}}),bp.Views.PostForm=bp.View.extend({tagName:"form",className:"activity-form",id:"whats-new-form",attributes:{name:"whats-new-form",method:"post"},events:{"focus #whats-new":"displayFull",reset:"resetForm",submit:"postUpdate",keydown:"postUpdate"},initialize:function(){this.model=new bp.Models.Activity(_.pick(BP_Nouveau.activity.params,["user_id","item_id","object"])),this.options.backcompat=BP_Nouveau.activity.params.backcompat;var e=[new bp.Views.FormAvatar,new bp.Views.FormContent({activity:this.model})];!0===this.options.backcompat.before_post_form&&e.unshift(new bp.Views.BeforeFormInputs),this.resetModel=this.model.clone(),this.views.set(e),this.model.on("change:errors",this.displayFeedback,this)},displayFull:function(e){var i=!0===this.options.backcompat.before_post_form?3:2;this.cleanFeedback(),i===this.views._views[""].length&&(t(e.target).css({resize:"vertical",height:"auto"}),this.$el.addClass("activity-form-expanded"),!0===this.options.backcompat.post_form_options?this.views.add(new bp.Views.FormOptions({model:this.model})):this.views.add(new bp.View({id:"whats-new-options"})),_.isUndefined(BP_Nouveau.activity.params.buttons)||(bp.Nouveau.Activity.postForm.buttons.set(BP_Nouveau.activity.params.buttons),this.views.add("#whats-new-options",new bp.Views.FormButtons({collection:bp.Nouveau.Activity.postForm.buttons,model:this.model}))),!_.isUndefined(BP_Nouveau.activity.params.objects)&&1<_.keys(BP_Nouveau.activity.params.objects).length&&this.views.add("#whats-new-options",new bp.Views.FormTarget({model:this.model})),this.views.add("#whats-new-options",new bp.Views.FormSubmit({model:this.model})))},resetForm:function(){var e=this.options.backcompat.before_post_form?2:1;_.each(this.views._views[""],function(t,i){i>e&&t.remove()}),t("#whats-new").css({resize:"none",height:"50px"}),this.$el.removeClass("activity-form-expanded"),this.model.clear(),this.model.set(this.resetModel.attributes)},cleanFeedback:function(){_.each(this.views._views[""],function(e){"message"===e.$el.prop("id")&&e.remove()})},displayFeedback:function(e){_.isUndefined(this.model.get("errors"))?this.cleanFeedback():this.views.add(new bp.Views.activityFeedback(e.get("errors")))},postUpdate:function(e){var i=this,s={};if(e){if("keydown"===e.type&&(13!==e.keyCode||!e.ctrlKey))return e;e.preventDefault()}_.each(this.$el.serializeArray(),function(e){e.name=e.name.replace("[]",""),"whats-new"===e.name?i.model.set("content",e.value):-1===_.indexOf(["aw-whats-new-submit","whats-new-post-in"],e.name)&&(_.isUndefined(s[e.name])?s[e.name]=e.value:(_.isArray(s[e.name])||(s[e.name]=[s[e.name]]),s[e.name].push(e.value)))}),this.model.set(s,{silent:!0});var a={_wpnonce_post_update:BP_Nouveau.activity.params.post_nonce};t("#_bp_as_nonce").val()&&(a._bp_as_nonce=t("#_bp_as_nonce").val()),bp.ajax.post("post_update",_.extend(a,this.model.attributes)).done(function(e){var s=bp.Nouveau.getStorage("bp-activity"),a=t('[data-bp-search="activity"] input[type="search"]').val(),o={},n=!1;a&&(a=new RegExp(a,"im"),o=e.activity.match(a)),a&&!o||(n=!s.filter||0===parseInt(s.filter,10)||"activity_update"===s.filter),n&&e.is_directory&&(n="all"===s.scope&&("user"===i.model.get("object")||!1===e.is_private)||i.model.get("object")+"s"===s.scope),i.resetForm(),n?t("#activity-"+e.id).length||(t("#activity-stream ul.activity-list").length||t("#activity-stream").html(t("<ul></ul>").addClass("activity-list item-list bp-list")),bp.Nouveau.inject("#activity-stream ul.activity-list",e.activity,"prepend")):i.views.add(new bp.Views.activityFeedback({value:e.message,type:"updated"}))}).fail(function(e){i.model.set("errors",{type:"error",value:e.message})})}}),bp.Nouveau.Activity.postForm.start())}(bp,jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.js
index ce7584b26..50ea597d3 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.js
@@ -465,7 +465,7 @@ window.bp = window.bp || {};
 							} else {
 								$( this ).html( response.data.content );
 							}
-							$( this ).prop( 'title', response.data.content );
+							$( this ).attr( 'data-bp-tooltip', response.data.content );
 
 							if ('false' === $(this).attr('aria-pressed') ) {
 								$( this ).attr('aria-pressed', 'true');
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.min.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.min.js
index b267f2e5f..9912d1bd9 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.min.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-activity.min.js
@@ -1 +1 @@
-window.bp=window.bp||{},function(t,a){"undefined"!=typeof BP_Nouveau&&(bp.Nouveau=bp.Nouveau||{},bp.Nouveau.Activity={start:function(){this.setupGlobals(),this.addListeners()},setupGlobals:function(){this.just_posted=[],this.current_page=1,this.mentions_count=Number(a(bp.Nouveau.objectNavParent+' [data-bp-scope="mentions"]').find("a span").html())||0,this.heartbeat_data={newest:"",highlights:{},last_recorded:0,first_recorded:0,document_title:a(document).prop("title")}},addListeners:function(){a("#buddypress").on("bp_heartbeat_send",this.heartbeatSend.bind(this)),a("#buddypress").on("bp_heartbeat_tick",this.heartbeatTick.bind(this)),a('#buddypress [data-bp-list="activity"]').on("click","li.load-newest, li.load-more",this.injectActivities.bind(this)),a("#buddypress").on("bp_ajax_request",'[data-bp-list="activity"]',this.scopeLoaded.bind(this)),a('#buddypress [data-bp-list="activity"]').on("bp_ajax_append",this.hideComments),a('#buddypress [data-bp-list="activity"]').on("click",".show-all",this.showComments),a('#buddypress [data-bp-list="activity"]').on("click",".activity-item",bp.Nouveau,this.activityActions),a(document).keydown(this.commentFormAction)},heartbeatSend:function(t,e){this.heartbeat_data.first_recorded=a("#buddypress [data-bp-list] [data-bp-activity-id]").first().data("bp-timestamp")||0,(0===this.heartbeat_data.last_recorded||this.heartbeat_data.first_recorded>this.heartbeat_data.last_recorded)&&(this.heartbeat_data.last_recorded=this.heartbeat_data.first_recorded),e.bp_activity_last_recorded=this.heartbeat_data.last_recorded,a("#buddypress .dir-search input[type=search]").length&&(e.bp_activity_last_recorded_search_terms=a("#buddypress .dir-search input[type=search]").val()),a.extend(e,{bp_heartbeat:bp.Nouveau.getStorage("bp-activity")})},heartbeatTick:function(t,e){var i,s,n=bp.Nouveau.objects,d=bp.Nouveau.getStorage("bp-activity","scope"),o=this;if(void 0!==e&&e.bp_activity_newest_activities){if(this.heartbeat_data.newest=a.trim(e.bp_activity_newest_activities.activities)+this.heartbeat_data.newest,this.heartbeat_data.last_recorded=Number(e.bp_activity_newest_activities.last_recorded),s=a(this.heartbeat_data.newest).filter(".activity-item"),i=Number(s.length),n.push("mentions"),"all"===d){a.each(s,function(t,e){e=a(e),a.each(n,function(t,i){-1!==a.inArray("bp-my-"+i,e.get(0).classList)&&(void 0===o.heartbeat_data.highlights[i]?o.heartbeat_data.highlights[i]=[e.data("bp-activity-id")]:-1===a.inArray(e.data("bp-activity-id"),o.heartbeat_data.highlights[i])&&o.heartbeat_data.highlights[i].push(e.data("bp-activity-id")))})});var r=new RegExp("bp-my-("+n.join("|")+")","g");this.heartbeat_data.newest=this.heartbeat_data.newest.replace(r,""),a(bp.Nouveau.objectNavParent+' [data-bp-scope="all"]').find("a span").html(i)}else this.heartbeat_data.highlights[d]=[],a.each(s,function(t,e){o.heartbeat_data.highlights[d].push(a(e).data("bp-activity-id"))});if(a.each(n,function(t,e){if(void 0!==o.heartbeat_data.highlights[e]&&o.heartbeat_data.highlights[e].length){var i=0;"mentions"===e&&(i=o.mentions_count),a(bp.Nouveau.objectNavParent+' [data-bp-scope="'+e+'"]').find("a span").html(Number(o.heartbeat_data.highlights[e].length)+i)}}),n.pop(),a(document).prop("title","("+i+") "+this.heartbeat_data.document_title),a('#buddypress [data-bp-list="activity"] li').first().hasClass("load-newest")){var c=a('#buddypress [data-bp-list="activity"] .load-newest a').html();a('#buddypress [data-bp-list="activity"] .load-newest a').html(c.replace(/([0-9]+)/,i))}else a('#buddypress [data-bp-list="activity"] ul.activity-list').prepend('<li class="load-newest"><a href="#newest">'+BP_Nouveau.newest+" ("+i+")</a></li>");a('#buddypress [data-bp-list="activity"]').trigger("bp_heartbeat_pending",this.heartbeat_data)}},injectActivities:function(t){var e=bp.Nouveau.getStorage("bp-activity"),i=e.scope||null,s=e.filter||null;if(a(t.currentTarget).hasClass("load-newest")){t.preventDefault(),a(t.currentTarget).remove();var n=a.parseHTML(this.heartbeat_data.newest);a.each(n,function(t,e){"LI"===e.nodeName&&a(e).hasClass("just-posted")&&a("#"+a(e).prop("id")).length&&a("#"+a(e).prop("id")).remove()}),a(t.delegateTarget).find(".activity-list").prepend(this.heartbeat_data.newest).trigger("bp_heartbeat_prepend",this.heartbeat_data),this.heartbeat_data.newest="","all"===i&&a(bp.Nouveau.objectNavParent+' [data-bp-scope="all"]').find("a span").html(""),"mentions"===i&&(bp.Nouveau.ajax({action:"activity_clear_new_mentions"},"activity"),this.mentions_count=0),a(bp.Nouveau.objectNavParent+' [data-bp-scope="'+i+'"]').find("a span").html(""),void 0!==this.heartbeat_data.highlights[i]&&(this.heartbeat_data.highlights[i]=[]),setTimeout(function(){a(t.delegateTarget).find("[data-bp-activity-id]").removeClass("newest_"+i+"_activity")},3e3),a(document).prop("title",this.heartbeat_data.document_title)}else if(a(t.currentTarget).hasClass("load-more")){var d=1*Number(this.current_page)+1,o=this,r="";t.preventDefault(),a(t.currentTarget).find("a").first().addClass("loading"),this.just_posted=[],a(t.delegateTarget).children(".just-posted").each(function(){o.just_posted.push(a(this).data("bp-activity-id"))}),a("#buddypress .dir-search input[type=search]").length&&(r=a("#buddypress .dir-search input[type=search]").val()),bp.Nouveau.objectRequest({object:"activity",scope:i,filter:s,search_terms:r,page:d,method:"append",exclude_just_posted:this.just_posted.join(","),target:"#buddypress [data-bp-list] ul.bp-list"}).done(function(e){!0===e.success&&(a(t.currentTarget).remove(),o.current_page=d)})}},hideComments:function(t){var e,i,s,n,d=a(t.target).find(".activity-comments");d.length&&d.each(function(t,d){n=a(d).children("ul"),(i=a(n).find("li")).length&&(e=a(d).closest(".activity-item"),s=a("#acomment-comment-"+e.data("bp-activity-id")+" span.comment-count").html()||" ",i.each(function(t,n){if(t<i.length-5&&(a(n).addClass("bp-hidden").hide(),!t)){var d=e.data("bpActivityId");void 0!==d&&(d=parseInt(d,10),a(n).before('<li class="show-all"><button class="text-button" type="button" data-bp-show-comments-id="#activity-'+d+'/show-all/"><span class="icon dashicons dashicons-visibility" aria-hidden="true"></span> '+BP_Nouveau.show_x_comments.replace("%d",s)+"</button></li>"))}}),a(n).children(".bp-hidden").length===a(n).children("li").length-1&&a(n).find("li.show-all").length&&a(n).children("li").removeClass("bp-hidden").toggle())})},showComments:function(t){t.preventDefault(),a(t.target).addClass("loading"),setTimeout(function(){a(t.target).closest("ul").find("li").removeClass("bp-hidden").fadeIn(300,function(){a(t.target).parent("li").remove()})},600)},scopeLoaded:function(t,e){this.hideComments(t),this.current_page=1,"mentions"===e.scope&&void 0!==e.response.new_mentions?(a.each(e.response.new_mentions,function(t,e){a("#buddypress #activity-stream").find('[data-bp-activity-id="'+e+'"]').addClass("newest_mentions_activity")}),this.mentions_count=0):void 0!==this.heartbeat_data.highlights[e.scope]&&this.heartbeat_data.highlights[e.scope].length&&a.each(this.heartbeat_data.highlights[e.scope],function(t,i){a("#buddypress #activity-stream").find('[data-bp-activity-id="'+i+'"]').length&&a("#buddypress #activity-stream").find('[data-bp-activity-id="'+i+'"]').addClass("newest_"+e.scope+"_activity")}),this.heartbeat_data.newest="",a.each(a(bp.Nouveau.objectNavParent+" [data-bp-scope]").find("a span"),function(t,e){0===parseInt(a(e).html(),10)&&a(e).html("")}),void 0!==this.heartbeat_data.highlights[e.scope]&&(this.heartbeat_data.highlights[e.scope]=[]),a(document).prop("title",this.heartbeat_data.document_title),setTimeout(function(){a("#buddypress #activity-stream .activity-item").removeClass("newest_"+e.scope+"_activity")},3e3)},activityActions:function(t){var e,i,s=t.data,n=a(t.target),d=a(t.currentTarget),o=d.data("bp-activity-id"),r=a(t.delegateTarget);if(a(n).is("span")&&(n=a(n).closest("a")),n.hasClass("fav")||n.hasClass("unfav")){var c=n.hasClass("fav")?"fav":"unfav";t.preventDefault(),n.addClass("loading"),s.ajax({action:"activity_mark_"+c,id:o},"activity").done(function(t){if(n.removeClass("loading"),!1!==t.success)if(n.fadeOut(200,function(){a(this).find("span").first().length?a(this).find("span").first().html(t.data.content):a(this).html(t.data.content),a(this).prop("title",t.data.content),"false"===a(this).attr("aria-pressed")?a(this).attr("aria-pressed","true"):a(this).attr("aria-pressed","false"),a(this).fadeIn(200)}),"fav"===c)void 0!==t.data.directory_tab&&(a(s.objectNavParent+' [data-bp-scope="favorites"]').length||a(s.objectNavParent+' [data-bp-scope="all"]').after(t.data.directory_tab)),n.removeClass("fav"),n.addClass("unfav");else if("unfav"===c){var e=a('[data-bp-user-scope="favorites"]').hasClass("selected")||a(s.objectNavParent+' [data-bp-scope="favorites"]').hasClass("selected");e&&d.remove(),void 0!==t.data.no_favorite&&(a(s.objectNavParent+' [data-bp-scope="all"]').length&&a(s.objectNavParent+' [data-bp-scope="all"]').hasClass("selected")?a(s.objectNavParent+' [data-bp-scope="favorites"]').remove():e&&r.append(t.data.no_favorite)),n.removeClass("unfav"),n.addClass("fav")}})}if(n.hasClass("delete-activity")||n.hasClass("acomment-delete")||n.hasClass("spam-activity")||n.hasClass("spam-activity-comment")){var l,p,h,b,v=n.closest("[data-bp-activity-comment-id]"),m=v.data("bp-activity-comment-id"),u=0;if(t.preventDefault(),void 0!==BP_Nouveau.confirm&&!1===window.confirm(BP_Nouveau.confirm))return!1;n.addClass("loading");var f={action:"delete_activity",id:o,_wpnonce:s.getLinkParams(n.prop("href"),"_wpnonce"),is_single:n.closest("[data-bp-single]").length};(n.hasClass("spam-activity")||n.hasClass("spam-activity-comment"))&&(f.action="bp_spam_activity"),l=d,m&&(delete f.is_single,f.id=m,f.is_comment=!0,l=v),s.ajax(f,"activity").done(function(t){if(n.removeClass("loading"),!1===t.success)l.prepend(t.data.feedback),l.find(".bp-feedback").hide().fadeIn(300);else{if(t.data.redirect)return window.location.href=t.data.redirect;m&&(u=1,d.append(v.find("form")),a.each(v.find("li"),function(){u+=1}),p=d.find(".acomment-reply span.comment-count"),h=Number(p.html()-u),p.html(h),(b=d.find("li.show-all a")).length&&b.html(BP_Nouveau.show_x_comments.replace("%d",h)),0===h&&d.removeClass("has-comments")),l.slideUp(300,function(){l.remove()}),m||d.data("bp-timestamp")!==s.Activity.heartbeat_data.last_recorded||(s.Activity.heartbeat_data.newest="",s.Activity.heartbeat_data.last_recorded=0)}})}if(n.closest("span").hasClass("activity-read-more")){var _=n.closest("div"),y=n.closest("span");if(e=null,a(_).hasClass("activity-inner")?e=o:a(_).hasClass("acomment-content")&&(e=n.closest("li").data("bp-activity-comment-id")),!e)return t;t.preventDefault(),a(y).addClass("loading"),s.ajax({action:"get_single_activity_content",id:e},"activity").done(function(t){a(y).removeClass("loading"),_.parent().find(".bp-feedback").length&&_.parent().find(".bp-feedback").remove(),!1===t.success?(_.after(t.data.feedback),_.parent().find(".bp-feedback").hide().fadeIn(300)):a(_).slideUp(300).html(t.data.contents).slideDown(300)})}if(n.hasClass("acomment-reply")||n.parent().hasClass("acomment-reply")){i=a("#ac-form-"+o),e=o,t.preventDefault(),n.parent().hasClass("acomment-reply")&&n.parent(),n.closest("li").data("bp-activity-comment-id")&&(e=n.closest("li").data("bp-activity-comment-id")),i.removeClass("root"),a(".ac-form").hide(),a.each(i.children("div"),function(t,e){a(e).hasClass("error")&&a(e).remove()}),e===o?(a('[data-bp-activity-id="'+e+'"] .activity-comments').append(i),i.addClass("root")):a('[data-bp-activity-comment-id="'+e+'"]').append(i),i.slideDown(200),n.attr("aria-expanded","true"),a.scrollTo(i,500,{offset:-100,easing:"swing"}),a("#ac-form-"+o+" textarea").focus()}if(n.hasClass("ac-reply-cancel")&&(a(n).closest(".ac-form").slideUp(200),a(".acomment-reply").attr("aria-expanded","false"),t.preventDefault()),"ac_form_submit"===n.prop("name")){var g,w;i=n.closest("form"),e=o,t.preventDefault(),n.closest("li").data("bp-activity-comment-id")&&(e=n.closest("li").data("bp-activity-comment-id")),g=a(i).find("textarea").first(),n.addClass("loading").prop("disabled",!0),g.addClass("loading").prop("disabled",!0),w={action:"new_activity_comment",_wpnonce_new_activity_comment:a("#_wpnonce_new_activity_comment").val(),comment_id:e,form_id:o,content:g.val()},a("#_bp_as_nonce_"+o).val()&&(w["_bp_as_nonce_"+o]=a("#_bp_as_nonce_"+o).val()),s.ajax(w,"activity").done(function(t){if(n.removeClass("loading"),g.removeClass("loading"),a(".acomment-reply").attr("aria-expanded","false"),!1===t.success)i.append(a(t.data.feedback).hide().fadeIn(200));else{var e=i.parent(),s=a.trim(t.data.contents);i.fadeOut(200,function(){0===e.children("ul").length&&(e.hasClass("activity-comments")?e.prepend("<ul></ul>"):e.append("<ul></ul>")),e.children("ul").append(a(s).hide().fadeIn(200)),a(i).find("textarea").first().val(""),e.parent().addClass("has-comments")}),h=Number(a(d).find("a span.comment-count").html()||0)+1,a(d).find("a span.comment-count").html(h),(b=a(d).find(".show-all a"))&&b.html(BP_Nouveau.show_x_comments.replace("%d",h))}n.prop("disabled",!1),g.prop("disabled",!1)})}},commentFormAction:function(t){var e,i;return(t=t||window.event).target?e=t.target:t.srcElement&&(e=t.srcElement),3===e.nodeType&&(e=e.parentNode),!0===t.altKey||!0===t.metaKey?t:"TEXTAREA"===e.tagName&&a(e).hasClass("ac-input")?void(27===(i=t.keyCode?t.keyCode:t.which)&&!1===t.ctrlKey?"TEXTAREA"===e.tagName&&a(e).closest("form").slideUp(200):t.ctrlKey&&13===i&&a(e).val()&&a(e).closest("form").find("[type=submit]").first().trigger("click")):t}},bp.Nouveau.Activity.start())}(bp,jQuery);
\ No newline at end of file
+window.bp=window.bp||{},function(t,a){"undefined"!=typeof BP_Nouveau&&(bp.Nouveau=bp.Nouveau||{},bp.Nouveau.Activity={start:function(){this.setupGlobals(),this.addListeners()},setupGlobals:function(){this.just_posted=[],this.current_page=1,this.mentions_count=Number(a(bp.Nouveau.objectNavParent+' [data-bp-scope="mentions"]').find("a span").html())||0,this.heartbeat_data={newest:"",highlights:{},last_recorded:0,first_recorded:0,document_title:a(document).prop("title")}},addListeners:function(){a("#buddypress").on("bp_heartbeat_send",this.heartbeatSend.bind(this)),a("#buddypress").on("bp_heartbeat_tick",this.heartbeatTick.bind(this)),a('#buddypress [data-bp-list="activity"]').on("click","li.load-newest, li.load-more",this.injectActivities.bind(this)),a("#buddypress").on("bp_ajax_request",'[data-bp-list="activity"]',this.scopeLoaded.bind(this)),a('#buddypress [data-bp-list="activity"]').on("bp_ajax_append",this.hideComments),a('#buddypress [data-bp-list="activity"]').on("click",".show-all",this.showComments),a('#buddypress [data-bp-list="activity"]').on("click",".activity-item",bp.Nouveau,this.activityActions),a(document).keydown(this.commentFormAction)},heartbeatSend:function(t,e){this.heartbeat_data.first_recorded=a("#buddypress [data-bp-list] [data-bp-activity-id]").first().data("bp-timestamp")||0,(0===this.heartbeat_data.last_recorded||this.heartbeat_data.first_recorded>this.heartbeat_data.last_recorded)&&(this.heartbeat_data.last_recorded=this.heartbeat_data.first_recorded),e.bp_activity_last_recorded=this.heartbeat_data.last_recorded,a("#buddypress .dir-search input[type=search]").length&&(e.bp_activity_last_recorded_search_terms=a("#buddypress .dir-search input[type=search]").val()),a.extend(e,{bp_heartbeat:bp.Nouveau.getStorage("bp-activity")})},heartbeatTick:function(t,e){var i,s,n=bp.Nouveau.objects,d=bp.Nouveau.getStorage("bp-activity","scope"),o=this;if(void 0!==e&&e.bp_activity_newest_activities){if(this.heartbeat_data.newest=a.trim(e.bp_activity_newest_activities.activities)+this.heartbeat_data.newest,this.heartbeat_data.last_recorded=Number(e.bp_activity_newest_activities.last_recorded),s=a(this.heartbeat_data.newest).filter(".activity-item"),i=Number(s.length),n.push("mentions"),"all"===d){a.each(s,function(t,e){e=a(e),a.each(n,function(t,i){-1!==a.inArray("bp-my-"+i,e.get(0).classList)&&(void 0===o.heartbeat_data.highlights[i]?o.heartbeat_data.highlights[i]=[e.data("bp-activity-id")]:-1===a.inArray(e.data("bp-activity-id"),o.heartbeat_data.highlights[i])&&o.heartbeat_data.highlights[i].push(e.data("bp-activity-id")))})});var r=new RegExp("bp-my-("+n.join("|")+")","g");this.heartbeat_data.newest=this.heartbeat_data.newest.replace(r,""),a(bp.Nouveau.objectNavParent+' [data-bp-scope="all"]').find("a span").html(i)}else this.heartbeat_data.highlights[d]=[],a.each(s,function(t,e){o.heartbeat_data.highlights[d].push(a(e).data("bp-activity-id"))});if(a.each(n,function(t,e){if(void 0!==o.heartbeat_data.highlights[e]&&o.heartbeat_data.highlights[e].length){var i=0;"mentions"===e&&(i=o.mentions_count),a(bp.Nouveau.objectNavParent+' [data-bp-scope="'+e+'"]').find("a span").html(Number(o.heartbeat_data.highlights[e].length)+i)}}),n.pop(),a(document).prop("title","("+i+") "+this.heartbeat_data.document_title),a('#buddypress [data-bp-list="activity"] li').first().hasClass("load-newest")){var c=a('#buddypress [data-bp-list="activity"] .load-newest a').html();a('#buddypress [data-bp-list="activity"] .load-newest a').html(c.replace(/([0-9]+)/,i))}else a('#buddypress [data-bp-list="activity"] ul.activity-list').prepend('<li class="load-newest"><a href="#newest">'+BP_Nouveau.newest+" ("+i+")</a></li>");a('#buddypress [data-bp-list="activity"]').trigger("bp_heartbeat_pending",this.heartbeat_data)}},injectActivities:function(t){var e=bp.Nouveau.getStorage("bp-activity"),i=e.scope||null,s=e.filter||null;if(a(t.currentTarget).hasClass("load-newest")){t.preventDefault(),a(t.currentTarget).remove();var n=a.parseHTML(this.heartbeat_data.newest);a.each(n,function(t,e){"LI"===e.nodeName&&a(e).hasClass("just-posted")&&a("#"+a(e).prop("id")).length&&a("#"+a(e).prop("id")).remove()}),a(t.delegateTarget).find(".activity-list").prepend(this.heartbeat_data.newest).trigger("bp_heartbeat_prepend",this.heartbeat_data),this.heartbeat_data.newest="","all"===i&&a(bp.Nouveau.objectNavParent+' [data-bp-scope="all"]').find("a span").html(""),"mentions"===i&&(bp.Nouveau.ajax({action:"activity_clear_new_mentions"},"activity"),this.mentions_count=0),a(bp.Nouveau.objectNavParent+' [data-bp-scope="'+i+'"]').find("a span").html(""),void 0!==this.heartbeat_data.highlights[i]&&(this.heartbeat_data.highlights[i]=[]),setTimeout(function(){a(t.delegateTarget).find("[data-bp-activity-id]").removeClass("newest_"+i+"_activity")},3e3),a(document).prop("title",this.heartbeat_data.document_title)}else if(a(t.currentTarget).hasClass("load-more")){var d=1*Number(this.current_page)+1,o=this,r="";t.preventDefault(),a(t.currentTarget).find("a").first().addClass("loading"),this.just_posted=[],a(t.delegateTarget).children(".just-posted").each(function(){o.just_posted.push(a(this).data("bp-activity-id"))}),a("#buddypress .dir-search input[type=search]").length&&(r=a("#buddypress .dir-search input[type=search]").val()),bp.Nouveau.objectRequest({object:"activity",scope:i,filter:s,search_terms:r,page:d,method:"append",exclude_just_posted:this.just_posted.join(","),target:"#buddypress [data-bp-list] ul.bp-list"}).done(function(e){!0===e.success&&(a(t.currentTarget).remove(),o.current_page=d)})}},hideComments:function(t){var e,i,s,n,d=a(t.target).find(".activity-comments");d.length&&d.each(function(t,d){n=a(d).children("ul"),(i=a(n).find("li")).length&&(e=a(d).closest(".activity-item"),s=a("#acomment-comment-"+e.data("bp-activity-id")+" span.comment-count").html()||" ",i.each(function(t,n){if(t<i.length-5&&(a(n).addClass("bp-hidden").hide(),!t)){var d=e.data("bpActivityId");void 0!==d&&(d=parseInt(d,10),a(n).before('<li class="show-all"><button class="text-button" type="button" data-bp-show-comments-id="#activity-'+d+'/show-all/"><span class="icon dashicons dashicons-visibility" aria-hidden="true"></span> '+BP_Nouveau.show_x_comments.replace("%d",s)+"</button></li>"))}}),a(n).children(".bp-hidden").length===a(n).children("li").length-1&&a(n).find("li.show-all").length&&a(n).children("li").removeClass("bp-hidden").toggle())})},showComments:function(t){t.preventDefault(),a(t.target).addClass("loading"),setTimeout(function(){a(t.target).closest("ul").find("li").removeClass("bp-hidden").fadeIn(300,function(){a(t.target).parent("li").remove()})},600)},scopeLoaded:function(t,e){this.hideComments(t),this.current_page=1,"mentions"===e.scope&&void 0!==e.response.new_mentions?(a.each(e.response.new_mentions,function(t,e){a("#buddypress #activity-stream").find('[data-bp-activity-id="'+e+'"]').addClass("newest_mentions_activity")}),this.mentions_count=0):void 0!==this.heartbeat_data.highlights[e.scope]&&this.heartbeat_data.highlights[e.scope].length&&a.each(this.heartbeat_data.highlights[e.scope],function(t,i){a("#buddypress #activity-stream").find('[data-bp-activity-id="'+i+'"]').length&&a("#buddypress #activity-stream").find('[data-bp-activity-id="'+i+'"]').addClass("newest_"+e.scope+"_activity")}),this.heartbeat_data.newest="",a.each(a(bp.Nouveau.objectNavParent+" [data-bp-scope]").find("a span"),function(t,e){0===parseInt(a(e).html(),10)&&a(e).html("")}),void 0!==this.heartbeat_data.highlights[e.scope]&&(this.heartbeat_data.highlights[e.scope]=[]),a(document).prop("title",this.heartbeat_data.document_title),setTimeout(function(){a("#buddypress #activity-stream .activity-item").removeClass("newest_"+e.scope+"_activity")},3e3)},activityActions:function(t){var e,i,s=t.data,n=a(t.target),d=a(t.currentTarget),o=d.data("bp-activity-id"),r=a(t.delegateTarget);if(a(n).is("span")&&(n=a(n).closest("a")),n.hasClass("fav")||n.hasClass("unfav")){var c=n.hasClass("fav")?"fav":"unfav";t.preventDefault(),n.addClass("loading"),s.ajax({action:"activity_mark_"+c,id:o},"activity").done(function(t){if(n.removeClass("loading"),!1!==t.success)if(n.fadeOut(200,function(){a(this).find("span").first().length?a(this).find("span").first().html(t.data.content):a(this).html(t.data.content),a(this).attr("data-bp-tooltip",t.data.content),"false"===a(this).attr("aria-pressed")?a(this).attr("aria-pressed","true"):a(this).attr("aria-pressed","false"),a(this).fadeIn(200)}),"fav"===c)void 0!==t.data.directory_tab&&(a(s.objectNavParent+' [data-bp-scope="favorites"]').length||a(s.objectNavParent+' [data-bp-scope="all"]').after(t.data.directory_tab)),n.removeClass("fav"),n.addClass("unfav");else if("unfav"===c){var e=a('[data-bp-user-scope="favorites"]').hasClass("selected")||a(s.objectNavParent+' [data-bp-scope="favorites"]').hasClass("selected");e&&d.remove(),void 0!==t.data.no_favorite&&(a(s.objectNavParent+' [data-bp-scope="all"]').length&&a(s.objectNavParent+' [data-bp-scope="all"]').hasClass("selected")?a(s.objectNavParent+' [data-bp-scope="favorites"]').remove():e&&r.append(t.data.no_favorite)),n.removeClass("unfav"),n.addClass("fav")}})}if(n.hasClass("delete-activity")||n.hasClass("acomment-delete")||n.hasClass("spam-activity")||n.hasClass("spam-activity-comment")){var l,p,h,b,v=n.closest("[data-bp-activity-comment-id]"),m=v.data("bp-activity-comment-id"),u=0;if(t.preventDefault(),void 0!==BP_Nouveau.confirm&&!1===window.confirm(BP_Nouveau.confirm))return!1;n.addClass("loading");var f={action:"delete_activity",id:o,_wpnonce:s.getLinkParams(n.prop("href"),"_wpnonce"),is_single:n.closest("[data-bp-single]").length};(n.hasClass("spam-activity")||n.hasClass("spam-activity-comment"))&&(f.action="bp_spam_activity"),l=d,m&&(delete f.is_single,f.id=m,f.is_comment=!0,l=v),s.ajax(f,"activity").done(function(t){if(n.removeClass("loading"),!1===t.success)l.prepend(t.data.feedback),l.find(".bp-feedback").hide().fadeIn(300);else{if(t.data.redirect)return window.location.href=t.data.redirect;m&&(u=1,d.append(v.find("form")),a.each(v.find("li"),function(){u+=1}),p=d.find(".acomment-reply span.comment-count"),h=Number(p.html()-u),p.html(h),(b=d.find("li.show-all a")).length&&b.html(BP_Nouveau.show_x_comments.replace("%d",h)),0===h&&d.removeClass("has-comments")),l.slideUp(300,function(){l.remove()}),m||d.data("bp-timestamp")!==s.Activity.heartbeat_data.last_recorded||(s.Activity.heartbeat_data.newest="",s.Activity.heartbeat_data.last_recorded=0)}})}if(n.closest("span").hasClass("activity-read-more")){var _=n.closest("div"),y=n.closest("span");if(e=null,a(_).hasClass("activity-inner")?e=o:a(_).hasClass("acomment-content")&&(e=n.closest("li").data("bp-activity-comment-id")),!e)return t;t.preventDefault(),a(y).addClass("loading"),s.ajax({action:"get_single_activity_content",id:e},"activity").done(function(t){a(y).removeClass("loading"),_.parent().find(".bp-feedback").length&&_.parent().find(".bp-feedback").remove(),!1===t.success?(_.after(t.data.feedback),_.parent().find(".bp-feedback").hide().fadeIn(300)):a(_).slideUp(300).html(t.data.contents).slideDown(300)})}if(n.hasClass("acomment-reply")||n.parent().hasClass("acomment-reply")){i=a("#ac-form-"+o),e=o,t.preventDefault(),n.parent().hasClass("acomment-reply")&&n.parent(),n.closest("li").data("bp-activity-comment-id")&&(e=n.closest("li").data("bp-activity-comment-id")),i.removeClass("root"),a(".ac-form").hide(),a.each(i.children("div"),function(t,e){a(e).hasClass("error")&&a(e).remove()}),e===o?(a('[data-bp-activity-id="'+e+'"] .activity-comments').append(i),i.addClass("root")):a('[data-bp-activity-comment-id="'+e+'"]').append(i),i.slideDown(200),n.attr("aria-expanded","true"),a.scrollTo(i,500,{offset:-100,easing:"swing"}),a("#ac-form-"+o+" textarea").focus()}if(n.hasClass("ac-reply-cancel")&&(a(n).closest(".ac-form").slideUp(200),a(".acomment-reply").attr("aria-expanded","false"),t.preventDefault()),"ac_form_submit"===n.prop("name")){var g,w;i=n.closest("form"),e=o,t.preventDefault(),n.closest("li").data("bp-activity-comment-id")&&(e=n.closest("li").data("bp-activity-comment-id")),g=a(i).find("textarea").first(),n.addClass("loading").prop("disabled",!0),g.addClass("loading").prop("disabled",!0),w={action:"new_activity_comment",_wpnonce_new_activity_comment:a("#_wpnonce_new_activity_comment").val(),comment_id:e,form_id:o,content:g.val()},a("#_bp_as_nonce_"+o).val()&&(w["_bp_as_nonce_"+o]=a("#_bp_as_nonce_"+o).val()),s.ajax(w,"activity").done(function(t){if(n.removeClass("loading"),g.removeClass("loading"),a(".acomment-reply").attr("aria-expanded","false"),!1===t.success)i.append(a(t.data.feedback).hide().fadeIn(200));else{var e=i.parent(),s=a.trim(t.data.contents);i.fadeOut(200,function(){0===e.children("ul").length&&(e.hasClass("activity-comments")?e.prepend("<ul></ul>"):e.append("<ul></ul>")),e.children("ul").append(a(s).hide().fadeIn(200)),a(i).find("textarea").first().val(""),e.parent().addClass("has-comments")}),h=Number(a(d).find("a span.comment-count").html()||0)+1,a(d).find("a span.comment-count").html(h),(b=a(d).find(".show-all a"))&&b.html(BP_Nouveau.show_x_comments.replace("%d",h))}n.prop("disabled",!1),g.prop("disabled",!1)})}},commentFormAction:function(t){var e,i;return(t=t||window.event).target?e=t.target:t.srcElement&&(e=t.srcElement),3===e.nodeType&&(e=e.parentNode),!0===t.altKey||!0===t.metaKey?t:"TEXTAREA"===e.tagName&&a(e).hasClass("ac-input")?void(27===(i=t.keyCode?t.keyCode:t.which)&&!1===t.ctrlKey?"TEXTAREA"===e.tagName&&a(e).closest("form").slideUp(200):t.ctrlKey&&13===i&&a(e).val()&&a(e).closest("form").find("[type=submit]").first().trigger("click")):t}},bp.Nouveau.Activity.start())}(bp,jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.js
index 36f7faf6f..b78440a4f 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.js
@@ -633,7 +633,7 @@ window.bp = window.bp || {};
 			if ( errors.length ) {
 				var feedback = '';
 				_.each( errors, function( e ) {
-					feedback += '<div class="bp-feedback error"><span class="bp-icon" aria-hidden="true"></span><p>'+BP_Nouveau.messages.errors[ e ] + '</p></div>';
+					feedback += BP_Nouveau.messages.errors[ e ] + '<br/>';
 				} );
 
 				bp.Nouveau.Messages.displayFeedback( feedback, 'error' );
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.min.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.min.js
index 56989da73..f532e8236 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.min.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-messages.min.js
@@ -1 +1 @@
-window.wp=window.wp||{},window.bp=window.bp||{},function(e,s){"undefined"!=typeof BP_Nouveau&&(_.extend(bp,_.pick(wp,"Backbone","ajax","template")),bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.Nouveau=bp.Nouveau||{},bp.Nouveau.Messages={start:function(){this.views=new Backbone.Collection,this.threads=new bp.Collections.Threads,this.messages=new bp.Collections.Messages,this.router=new bp.Nouveau.Messages.Router,this.box="inbox",this.setupNav(),Backbone.history.start({pushState:!0,root:BP_Nouveau.messages.rootUrl})},setupNav:function(){var e=this;s("#compose-personal-li").addClass("last"),s("#subnav a").on("click",function(t){t.preventDefault();var a=s(t.target).prop("id");if(e.removeTinyMCE(),"compose"===a)if(_.isUndefined(e.views.get("compose")))e.router.navigate("compose/",{trigger:!0});else{var i=e.views.get("compose");i.get("view").remove(),e.views.remove({id:"compose",view:i}),"single"===e.box&&(e.box="inbox"),e.router.navigate(e.box+"/",{trigger:!0})}else e.box===a&&_.isUndefined(e.views.get("compose"))||(e.clearViews(),e.router.navigate(a+"/",{trigger:!0}))})},removeTinyMCE:function(){"undefined"!=typeof tinymce&&null!==tinymce.get("message_content")&&tinymce.EditorManager.execCommand("mceRemoveEditor",!0,"message_content")},tinyMCEinit:function(){void 0!==window.tinyMCE&&null!==window.tinyMCE.activeEditor&&void 0!==window.tinyMCE.activeEditor&&(_.isEmpty(e.mentions)||s(window.tinyMCE.activeEditor.contentDocument.activeElement).atwho("setIframe",s("#message_content_ifr")[0]).bp_mentions({data:[],suffix:" "}))},removeFeedback:function(){var e;_.isUndefined(this.views.get("feedback"))||((e=this.views.get("feedback")).get("view").remove(),this.views.remove({id:"feedback",view:e}))},displayFeedback:function(e,s){var t;this.removeFeedback(),e&&(t=new bp.Views.Feedback({value:e,type:s||"info"}),this.views.add({id:"feedback",view:t}),t.inject(".bp-messages-feedback"))},clearViews:function(){_.isUndefined(this.views.models)||(_.each(this.views.models,function(e){e.get("view").remove()},this),this.views.reset())},composeView:function(){this.clearViews();var e=new bp.Views.messageForm({model:new bp.Models.Message});this.views.add({id:"compose",view:e}),e.inject(".bp-messages-content")},threadsView:function(){s("#subnav ul li").each(function(e,t){s(t).removeClass("current selected")}),s("#subnav a#"+this.box).closest("li").addClass("current selected");var e=new bp.Views.userThreads({collection:this.threads,box:this.box});this.views.add({id:"threads",view:e}),e.inject(".bp-messages-content"),this.displayFilters(this.threads)},displayFilters:function(e){var s;this.filters=new Backbone.Model({page:1,total_page:0,search_terms:"",box:this.box}),s=new bp.Views.messageFilters({model:this.filters,threads:e}),this.views.add({id:"filters",view:s}),s.inject(".bp-messages-filters")},singleView:function(e){this.clearViews(),this.box="single";var s=new bp.Views.userMessages({collection:this.messages,thread:e});this.views.add({id:"single",view:s}),s.inject(".bp-messages-content")}},bp.Models.Message=Backbone.Model.extend({defaults:{send_to:[],subject:"",message_content:"",meta:{}},sendMessage:function(){if(!0!==this.get("sending")){this.set("sending",!0,{silent:!0});var e=bp.ajax.post("messages_send_message",_.extend({nonce:BP_Nouveau.messages.nonces.send},this.attributes));return this.set("sending",!1,{silent:!0}),e}}}),bp.Models.Thread=Backbone.Model.extend({defaults:{id:0,message_id:0,subject:"",excerpt:"",content:"",unread:!0,sender_name:"",sender_link:"",sender_avatar:"",count:0,date:0,display_date:"",recipients:[]},updateReadState:function(e){return e=e||{},e.data=_.extend(_.pick(this.attributes,["id","message_id"]),{action:"messages_thread_read",nonce:BP_Nouveau.nonces.messages}),bp.ajax.send(e)}}),bp.Models.messageThread=Backbone.Model.extend({defaults:{id:0,content:"",sender_id:0,sender_name:"",sender_link:"",sender_avatar:"",date:0,display_date:""}}),bp.Collections.Threads=Backbone.Collection.extend({model:bp.Models.Thread,initialize:function(){this.options={page:1,total_page:0}},sync:function(e,s,t){if(t=t||{},t.context=this,t.data=t.data||{},t.data.nonce=BP_Nouveau.nonces.messages,"read"===e)return t.data=_.extend(t.data,{action:"messages_get_user_message_threads"}),bp.ajax.send(t)},parse:function(e){return _.isArray(e.threads)||(e.threads=[e.threads]),_.each(e.threads,function(s,t){_.isNull(s)||(e.threads[t].id=s.id,e.threads[t].message_id=s.message_id,e.threads[t].subject=s.subject,e.threads[t].excerpt=s.excerpt,e.threads[t].content=s.content,e.threads[t].unread=s.unread,e.threads[t].sender_name=s.sender_name,e.threads[t].sender_link=s.sender_link,e.threads[t].sender_avatar=s.sender_avatar,e.threads[t].count=s.count,e.threads[t].date=new Date(s.date),e.threads[t].display_date=s.display_date,e.threads[t].recipients=s.recipients,e.threads[t].star_link=s.star_link,e.threads[t].is_starred=s.is_starred)}),_.isUndefined(e.meta)||(this.options.page=e.meta.page,this.options.total_page=e.meta.total_page),bp.Nouveau.Messages.box&&(this.options.box=bp.Nouveau.Messages.box),_.isUndefined(e.extraContent)||_.extend(this.options,_.pick(e.extraContent,["beforeLoop","afterLoop"])),e.threads},doAction:function(e,s,t){return t=t||{},t.context=this,t.data=t.data||{},t.data=_.extend(t.data,{action:"messages_"+e,nonce:BP_Nouveau.nonces.messages,id:s}),bp.ajax.send(t)}}),bp.Collections.Messages=Backbone.Collection.extend({model:bp.Models.messageThread,options:{},sync:function(e,s,t){return t=t||{},t.context=this,t.data=t.data||{},t.data.nonce=BP_Nouveau.nonces.messages,"read"===e?(t.data=_.extend(t.data,{action:"messages_get_thread_messages"}),bp.ajax.send(t)):"create"===e?(t.data=_.extend(t.data,{action:"messages_send_reply",nonce:BP_Nouveau.messages.nonces.send},s||{}),bp.ajax.send(t)):void 0},parse:function(e){return _.isArray(e.messages)||(e.messages=[e.messages]),_.each(e.messages,function(s,t){_.isNull(s)||(e.messages[t].id=s.id,e.messages[t].content=s.content,e.messages[t].sender_id=s.sender_id,e.messages[t].sender_name=s.sender_name,e.messages[t].sender_link=s.sender_link,e.messages[t].sender_avatar=s.sender_avatar,e.messages[t].date=new Date(s.date),e.messages[t].display_date=s.display_date,e.messages[t].star_link=s.star_link,e.messages[t].is_starred=s.is_starred)}),_.isUndefined(e.thread)||(this.options.thread_id=e.thread.id,this.options.thread_subject=e.thread.subject,this.options.recipients=e.thread.recipients),e.messages}}),bp.Nouveau.Messages.View=bp.Backbone.View.extend({inject:function(e){this.render(),s(e).html(this.el),this.views.ready()},prepare:function(){return!_.isUndefined(this.model)&&_.isFunction(this.model.toJSON)?this.model.toJSON():{}}}),bp.Views.Feedback=bp.Nouveau.Messages.View.extend({tagName:"div",className:"bp-messages bp-user-messages-feedback",template:bp.template("bp-messages-feedback"),initialize:function(){this.model=new Backbone.Model({type:this.options.type||"info",message:this.options.value})}}),bp.Views.Hook=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-messages-hook"),initialize:function(){this.model=new Backbone.Model({extraContent:this.options.extraContent}),this.el.className="bp-messages-hook",this.options.className&&(this.el.className+=" "+this.options.className)}}),bp.Views.messageEditor=bp.Nouveau.Messages.View.extend({template:bp.template("bp-messages-editor"),initialize:function(){this.on("ready",this.activateTinyMce,this)},activateTinyMce:function(){"undefined"!=typeof tinymce&&tinymce.EditorManager.execCommand("mceAddEditor",!0,"message_content")}}),bp.Views.messageForm=bp.Nouveau.Messages.View.extend({tagName:"form",id:"send_message_form",className:"standard-form",template:bp.template("bp-messages-form"),events:{"click #bp-messages-send":"sendMessage","click #bp-messages-reset":"resetForm"},initialize:function(){this.resetModel=this.model.clone(),this.views.add("#bp-message-content",new bp.Views.messageEditor),this.model.on("change",this.resetFields,this),this.on("ready",this.addMentions,this)},addMentions:function(){var e=s(this.el).find("#send-to-input"),t=bp.Nouveau.getLinkParams(null,"r")||null;e.bp_mentions({data:[],suffix:" "}),_.isNull(t)||(e.val("@"+_.escape(t)+" "),e.focus())},resetFields:function(e){_.each(e.previousAttributes(),function(e,t){"message_content"===t?void 0!==tinyMCE.activeEditor&&null!==tinyMCE.activeEditor&&tinyMCE.activeEditor.setContent(""):"meta"!==t&&!1!==e&&s('input[name="'+t+'"]').val("")}),s(this.el).trigger("message:reset",_.pick(e.previousAttributes(),"meta"))},sendMessage:function(e){var t={},a=[],i=this;if(e.preventDefault(),bp.Nouveau.Messages.removeFeedback(),_.each(this.$el.serializeArray(),function(e){if(e.name=e.name.replace("[]",""),-1===_.indexOf(["send_to","subject","message_content"],e.name))_.isUndefined(t[e.name])?t[e.name]=e.value:(_.isArray(t[e.name])||(t[e.name]=[t[e.name]]),t[e.name].push(e.value));else if("send_to"===e.name){var i=e.value.match(/(^|[^@\w\-])@([a-zA-Z0-9_\-]{1,50})\b/g);i?((i=i.map(function(e){return e=s.trim(e)}))&&s.isArray(i)||a.push("send_to"),this.model.set("send_to",i,{silent:!0})):a.push("send_to")}else"message_content"===e.name&&void 0!==tinyMCE.activeEditor&&(e.value=tinyMCE.activeEditor.getContent()),e.value?this.model.set(e.name,e.value,{silent:!0}):a.push(e.name)},this),a.length){var n="";return _.each(a,function(e){n+='<div class="bp-feedback error"><span class="bp-icon" aria-hidden="true"></span><p>'+BP_Nouveau.messages.errors[e]+"</p></div>"}),void bp.Nouveau.Messages.displayFeedback(n,"error")}this.model.set("meta",t,{silent:!0}),this.model.sendMessage().done(function(e){i.model.set(i.resetModel),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type),bp.Nouveau.Messages.removeTinyMCE();var s=bp.Nouveau.Messages.views.get("compose");s.get("view").remove(),bp.Nouveau.Messages.views.remove({id:"compose",view:s}),bp.Nouveau.Messages.router.navigate("sentbox/",{trigger:!0})}).fail(function(e){e.feedback&&bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})},resetForm:function(e){e.preventDefault(),this.model.set(this.resetModel)}}),bp.Views.userThreads=bp.Nouveau.Messages.View.extend({tagName:"div",events:{"click .subject":"changePreview"},initialize:function(){var e=[new bp.Nouveau.Messages.View({tagName:"ul",id:"message-threads",className:"message-lists"}),new bp.Views.previewThread({collection:this.collection})];_.each(e,function(e){this.views.add(e)},this),this.requestThreads(),this.collection.on("reset",this.cleanContent,this),this.collection.on("add",this.addThread,this)},requestThreads:function(){this.collection.reset(),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.loading,"loading"),this.collection.fetch({data:_.pick(this.options,"box"),success:_.bind(this.threadsFetched,this),error:this.threadsFetchError})},threadsFetched:function(){bp.Nouveau.Messages.removeFeedback(),this.collection.options.afterLoop&&this.views.add(new bp.Views.Hook({extraContent:this.collection.options.afterLoop,className:"after-messages-loop"}),{at:1}),this.collection.options.beforeLoop&&this.views.add(new bp.Views.Hook({extraContent:this.collection.options.beforeLoop,className:"before-messages-loop"}),{at:0}),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.howto,"info")},threadsFetchError:function(e,s){bp.Nouveau.Messages.displayFeedback(s.feedback,s.type)},cleanContent:function(){_.each(this.views._views["#message-threads"],function(e){e.remove()})},addThread:function(e){var s=this.collection.findWhere({active:!0});_.isUndefined(s)&&e.set("active",!0),this.views.add("#message-threads",new bp.Views.userThread({model:e}))},setActiveThread:function(e){e&&_.each(this.collection.models,function(s){s.id===e?s.set("active",!0):s.unset("active")},this)},changePreview:function(e){var t=s(e.currentTarget);e.preventDefault(),bp.Nouveau.Messages.removeFeedback(),t.closest(".thread-item").hasClass("selected")?bp.Nouveau.Messages.router.navigate("view/"+t.closest(".thread-content").data("thread-id")+"/",{trigger:!0}):(this.setActiveThread(t.closest(".thread-content").data("thread-id")),s(".message-action-view").focus())}}),bp.Views.userThread=bp.Nouveau.Messages.View.extend({tagName:"li",template:bp.template("bp-messages-thread"),className:"thread-item",events:{"click .message-check":"singleSelect"},initialize:function(){if(this.model.get("active")&&(this.el.className+=" selected"),this.model.get("unread")&&(this.el.className+=" unread"),"sentbox"===bp.Nouveau.Messages.box){var e=this.model.get("recipients").length,s="";2===e?s=BP_Nouveau.messages.toOthers.one:2<e&&(s=BP_Nouveau.messages.toOthers.more.replace("%d",Number(e-1))),this.model.set({recipientsCount:e,toOthers:s},{silent:!0})}else this.model.get("recipientsCount")&&this.model.unset("recipientsCount",{silent:!0});this.model.on("change:active",this.toggleClass,this),this.model.on("change:unread",this.updateReadState,this),this.model.on("change:checked",this.bulkSelect,this),this.model.on("remove",this.cleanView,this)},toggleClass:function(e){!0===e.get("active")?s(this.el).addClass("selected"):s(this.el).removeClass("selected")},updateReadState:function(e,t){!1===t?s(this.el).removeClass("unread"):s(this.el).addClass("unread")},bulkSelect:function(e){s("#bp-message-thread-"+e.get("id")).length&&s("#bp-message-thread-"+e.get("id")).prop("checked",e.get("checked"))},singleSelect:function(e){var t=s(e.currentTarget).prop("checked");this.model.set("checked",t,{silent:!0});var a=!1;_.each(this.model.collection.models,function(e){!0===e.get("checked")&&(a=!0)}),a?(s("#user-messages-bulk-actions").closest(".bulk-actions-wrap").removeClass("bp-hide"),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.howtoBulk,"info")):(s("#user-messages-bulk-actions").closest(".bulk-actions-wrap").addClass("bp-hide"),bp.Nouveau.Messages.removeFeedback())},cleanView:function(){this.views.view.remove()}}),bp.Views.previewThread=bp.Nouveau.Messages.View.extend({tagName:"div",id:"thread-preview",template:bp.template("bp-messages-preview"),events:{"click .actions button":"doAction","click .actions a":"doAction"},initialize:function(){this.collection.on("change:active",this.setPreview,this),this.collection.on("change:is_starred",this.updatePreview,this),this.collection.on("reset",this.emptyPreview,this),this.collection.on("remove",this.emptyPreview,this)},render:function(){_.isUndefined(this.model)||!0!==this.model.get("active")||bp.Nouveau.Messages.View.prototype.render.apply(this,arguments)},setPreview:function(e){var s=this;this.model=e,!0===e.get("unread")&&this.model.updateReadState().done(function(){s.model.set("unread",!1)}),this.render()},updatePreview:function(e){!0===e.get("active")&&this.render()},emptyPreview:function(){s(this.el).html("")},doAction:function(e){var t,a=s(e.currentTarget).data("bp-action"),i=this,n={},o=BP_Nouveau.messages.doingAction;if(!a)return e;e.preventDefault();var d=this.collection.findWhere({active:!0});d.get("id")&&(t=d.get("id"),"view"!==a?("star"!==a&&"unstar"!==a||(n.data={star_nonce:d.get("star_nonce")},t=d.get("starred_id")),_.isUndefined(o[a])||bp.Nouveau.Messages.displayFeedback(o[a],"loading"),this.collection.doAction(a,t,n).done(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type),"delete"===a||"starred"===i.collection.options.box&&"unstar"===a?(i.collection.remove(d.get("id")),i.collection.fetch({data:_.pick(i.collection.options,["box","search_terms","page"])})):"unstar"===a||"star"===a?(_.each(e.messages,function(e){d.set(e)}),d.set(_.first(e.messages))):e.messages&&d.set(_.first(e.messages))}).fail(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})):bp.Nouveau.Messages.router.navigate("view/"+t+"/",{trigger:!0}))}}),bp.Views.Pagination=bp.Nouveau.Messages.View.extend({tagName:"li",className:"last filter",template:bp.template("bp-messages-paginate")}),bp.Views.BulkActions=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-bulk-actions"),events:{"click #user_messages_select_all":"bulkSelect","click .bulk-apply":"doBulkAction"},bulkSelect:function(e){var t=s(e.currentTarget).prop("checked");t?(s(this.el).find(".bulk-actions-wrap").removeClass("bp-hide").addClass("bp-show"),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.howtoBulk,"info")):(s(this.el).find(".bulk-actions-wrap").addClass("bp-hide"),bp.Nouveau.Messages.removeFeedback()),_.each(this.collection.models,function(e){e.set("checked",t)})},doBulkAction:function(e){var t,a=this,i={},n="id",o=BP_Nouveau.messages.doingAction;e.preventDefault();var d=s("#user-messages-bulk-actions").val();if(d){var r=this.collection.where({checked:!0}),c=_.map(r,function(e){return e.get("id")});t=c,"star"!==d&&"unstar"!==d||(1===(t=_.map(r,function(e){return e.get("starred_id")})).length&&(i.data={star_nonce:r[0].get("star_nonce")}),n="starred_id");var l=_.object(_.map(r,function(e){return[e.get(n),e.get("id")]}));_.isUndefined(o[d])||bp.Nouveau.Messages.displayFeedback(o[d],"loading"),this.collection.doAction(d,t,i).done(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type),"delete"===d||"starred"===a.collection.options.box&&"unstar"===d?(a.collection.remove(c),a.collection.fetch({data:_.pick(a.collection.options,["box","search_terms","page"])})):e.messages&&_.each(e.messages,function(e,s){a.collection.get(l[s]).set(e)})}).fail(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})}}}),bp.Views.messageFilters=bp.Nouveau.Messages.View.extend({tagName:"ul",template:bp.template("bp-messages-filters"),events:{"search #user_messages_search":"resetSearchTerms","submit #user_messages_search_form":"setSearchTerms","click #bp-messages-next-page":"nextPage","click #bp-messages-prev-page":"prevPage"},initialize:function(){this.model.on("change",this.filterThreads,this),this.options.threads.on("sync",this.addPaginatation,this)},addPaginatation:function(e){_.each(this.views._views,function(e){_.isUndefined(e)||_.first(e).remove()}),this.views.add(new bp.Views.Pagination({model:new Backbone.Model(e.options)})),this.views.add(".user-messages-bulk-actions",new bp.Views.BulkActions({model:new Backbone.Model(BP_Nouveau.messages.bulk_actions),collection:e}))},filterThreads:function(){bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.loading,"loading"),this.options.threads.reset(),_.extend(this.options.threads.options,_.pick(this.model.attributes,["box","search_terms"])),this.options.threads.fetch({data:_.pick(this.model.attributes,["box","search_terms","page"]),success:this.threadsFiltered,error:this.threadsFilterError})},threadsFiltered:function(){bp.Nouveau.Messages.removeFeedback()},threadsFilterError:function(e,s){bp.Nouveau.Messages.displayFeedback(s.feedback,s.type)},resetSearchTerms:function(e){e.preventDefault(),s(e.target).val()?s(e.target).closest("form").find("[type=submit]").addClass("bp-show").removeClass("bp-hide"):s(e.target).closest("form").submit()},setSearchTerms:function(e){e.preventDefault(),this.model.set({search_terms:s(e.target).find("input[type=search]").val()||"",page:1})},nextPage:function(e){e.preventDefault(),this.model.set("page",this.model.get("page")+1)},prevPage:function(e){e.preventDefault(),this.model.set("page",this.model.get("page")-1)}}),bp.Views.userMessagesHeader=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-messages-single-header"),events:{"click .actions a":"doAction","click .actions button":"doAction"},doAction:function(e){var t=s(e.currentTarget).data("bp-action"),a=this,i={},n=BP_Nouveau.messages.doingAction;if(!t)return e;if(e.preventDefault(),this.model.get("id")){if("star"===t||"unstar"===t){var o={star:"unstar",unstar:"star"};i.data={star_nonce:this.model.get("star_nonce")},s(e.currentTarget).addClass("bp-hide"),s(e.currentTarget).parent().find('[data-bp-action="'+o[t]+'"]').removeClass("bp-hide")}_.isUndefined(n[t])||bp.Nouveau.Messages.displayFeedback(n[t],"loading"),bp.Nouveau.Messages.threads.doAction(t,this.model.get("id"),i).done(function(e){"delete"===t?bp.Nouveau.Messages.clearViews():e.messages&&a.model.set(_.first(e.messages)),bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)}).fail(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})}}}),bp.Views.userMessagesEntry=bp.Views.userMessagesHeader.extend({tagName:"li",template:bp.template("bp-messages-single-list"),events:{"click [data-bp-action]":"doAction"},initialize:function(){this.model.on("change:is_starred",this.updateMessage,this)},updateMessage:function(e){this.model.get("id")===e.get("id")&&this.render()}}),bp.Views.userMessages=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-messages-single"),initialize:function(){this.requestMessages(),this.reply=new bp.Models.messageThread,this.collection.on("add",this.addMessage,this),this.views.add("#bp-message-content",new bp.Views.messageEditor)},events:{"click #send_reply_button":"sendReply"},requestMessages:function(){var e={};this.collection.reset(),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.loading,"loading"),_.isUndefined(this.options.thread.attributes)?e.id=this.options.thread.id:(e.id=this.options.thread.get("id"),e.js_thread=!_.isEmpty(this.options.thread.get("subject"))),this.collection.fetch({data:e,success:_.bind(this.messagesFetched,this),error:this.messagesFetchError})},messagesFetched:function(e,s){_.isUndefined(s.thread)||(this.options.thread=new Backbone.Model(s.thread)),bp.Nouveau.Messages.removeFeedback(),this.views.add("#bp-message-thread-header",new bp.Views.userMessagesHeader({model:this.options.thread}))},messagesFetchError:function(e,s){s.feedback&&s.type&&bp.Nouveau.Messages.displayFeedback(s.feedback,s.type)},addMessage:function(e){this.views.add("#bp-message-thread-list",new bp.Views.userMessagesEntry({model:e}))},addEditor:function(){this.views.add("#bp-message-content",new bp.Views.messageEditor)},sendReply:function(e){e.preventDefault(),!0!==this.reply.get("sending")&&(this.reply.set({thread_id:this.options.thread.get("id"),content:tinyMCE.activeEditor.getContent(),sending:!0}),this.collection.sync("create",_.pick(this.reply.attributes,["thread_id","content"]),{success:_.bind(this.replySent,this),error:_.bind(this.replyError,this)}))},replySent:function(e){var s=this.collection.parse(e);tinyMCE.activeEditor.setContent(""),this.reply.set("sending",!1),this.collection.add(_.first(s))},replyError:function(e){e.feedback&&e.type&&bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)}}),bp.Nouveau.Messages.Router=Backbone.Router.extend({routes:{"compose/":"composeMessage","view/:id/":"viewMessage","sentbox/":"sentboxView","starred/":"starredView","inbox/":"inboxView","":"inboxView"},composeMessage:function(){bp.Nouveau.Messages.composeView()},viewMessage:function(e){if(e){var s=bp.Nouveau.Messages.threads.get(e);void 0===s&&((s={}).id=e),bp.Nouveau.Messages.singleView(s)}},sentboxView:function(){bp.Nouveau.Messages.box="sentbox",bp.Nouveau.Messages.threadsView()},starredView:function(){bp.Nouveau.Messages.box="starred",bp.Nouveau.Messages.threadsView()},inboxView:function(){bp.Nouveau.Messages.box="inbox",bp.Nouveau.Messages.threadsView()}}),bp.Nouveau.Messages.start())}(bp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},window.bp=window.bp||{},function(e,s){"undefined"!=typeof BP_Nouveau&&(_.extend(bp,_.pick(wp,"Backbone","ajax","template")),bp.Models=bp.Models||{},bp.Collections=bp.Collections||{},bp.Views=bp.Views||{},bp.Nouveau=bp.Nouveau||{},bp.Nouveau.Messages={start:function(){this.views=new Backbone.Collection,this.threads=new bp.Collections.Threads,this.messages=new bp.Collections.Messages,this.router=new bp.Nouveau.Messages.Router,this.box="inbox",this.setupNav(),Backbone.history.start({pushState:!0,root:BP_Nouveau.messages.rootUrl})},setupNav:function(){var e=this;s("#compose-personal-li").addClass("last"),s("#subnav a").on("click",function(t){t.preventDefault();var a=s(t.target).prop("id");if(e.removeTinyMCE(),"compose"===a)if(_.isUndefined(e.views.get("compose")))e.router.navigate("compose/",{trigger:!0});else{var i=e.views.get("compose");i.get("view").remove(),e.views.remove({id:"compose",view:i}),"single"===e.box&&(e.box="inbox"),e.router.navigate(e.box+"/",{trigger:!0})}else e.box===a&&_.isUndefined(e.views.get("compose"))||(e.clearViews(),e.router.navigate(a+"/",{trigger:!0}))})},removeTinyMCE:function(){"undefined"!=typeof tinymce&&null!==tinymce.get("message_content")&&tinymce.EditorManager.execCommand("mceRemoveEditor",!0,"message_content")},tinyMCEinit:function(){void 0!==window.tinyMCE&&null!==window.tinyMCE.activeEditor&&void 0!==window.tinyMCE.activeEditor&&(_.isEmpty(e.mentions)||s(window.tinyMCE.activeEditor.contentDocument.activeElement).atwho("setIframe",s("#message_content_ifr")[0]).bp_mentions({data:[],suffix:" "}))},removeFeedback:function(){var e;_.isUndefined(this.views.get("feedback"))||((e=this.views.get("feedback")).get("view").remove(),this.views.remove({id:"feedback",view:e}))},displayFeedback:function(e,s){var t;this.removeFeedback(),e&&(t=new bp.Views.Feedback({value:e,type:s||"info"}),this.views.add({id:"feedback",view:t}),t.inject(".bp-messages-feedback"))},clearViews:function(){_.isUndefined(this.views.models)||(_.each(this.views.models,function(e){e.get("view").remove()},this),this.views.reset())},composeView:function(){this.clearViews();var e=new bp.Views.messageForm({model:new bp.Models.Message});this.views.add({id:"compose",view:e}),e.inject(".bp-messages-content")},threadsView:function(){s("#subnav ul li").each(function(e,t){s(t).removeClass("current selected")}),s("#subnav a#"+this.box).closest("li").addClass("current selected");var e=new bp.Views.userThreads({collection:this.threads,box:this.box});this.views.add({id:"threads",view:e}),e.inject(".bp-messages-content"),this.displayFilters(this.threads)},displayFilters:function(e){var s;this.filters=new Backbone.Model({page:1,total_page:0,search_terms:"",box:this.box}),s=new bp.Views.messageFilters({model:this.filters,threads:e}),this.views.add({id:"filters",view:s}),s.inject(".bp-messages-filters")},singleView:function(e){this.clearViews(),this.box="single";var s=new bp.Views.userMessages({collection:this.messages,thread:e});this.views.add({id:"single",view:s}),s.inject(".bp-messages-content")}},bp.Models.Message=Backbone.Model.extend({defaults:{send_to:[],subject:"",message_content:"",meta:{}},sendMessage:function(){if(!0!==this.get("sending")){this.set("sending",!0,{silent:!0});var e=bp.ajax.post("messages_send_message",_.extend({nonce:BP_Nouveau.messages.nonces.send},this.attributes));return this.set("sending",!1,{silent:!0}),e}}}),bp.Models.Thread=Backbone.Model.extend({defaults:{id:0,message_id:0,subject:"",excerpt:"",content:"",unread:!0,sender_name:"",sender_link:"",sender_avatar:"",count:0,date:0,display_date:"",recipients:[]},updateReadState:function(e){return e=e||{},e.data=_.extend(_.pick(this.attributes,["id","message_id"]),{action:"messages_thread_read",nonce:BP_Nouveau.nonces.messages}),bp.ajax.send(e)}}),bp.Models.messageThread=Backbone.Model.extend({defaults:{id:0,content:"",sender_id:0,sender_name:"",sender_link:"",sender_avatar:"",date:0,display_date:""}}),bp.Collections.Threads=Backbone.Collection.extend({model:bp.Models.Thread,initialize:function(){this.options={page:1,total_page:0}},sync:function(e,s,t){if(t=t||{},t.context=this,t.data=t.data||{},t.data.nonce=BP_Nouveau.nonces.messages,"read"===e)return t.data=_.extend(t.data,{action:"messages_get_user_message_threads"}),bp.ajax.send(t)},parse:function(e){return _.isArray(e.threads)||(e.threads=[e.threads]),_.each(e.threads,function(s,t){_.isNull(s)||(e.threads[t].id=s.id,e.threads[t].message_id=s.message_id,e.threads[t].subject=s.subject,e.threads[t].excerpt=s.excerpt,e.threads[t].content=s.content,e.threads[t].unread=s.unread,e.threads[t].sender_name=s.sender_name,e.threads[t].sender_link=s.sender_link,e.threads[t].sender_avatar=s.sender_avatar,e.threads[t].count=s.count,e.threads[t].date=new Date(s.date),e.threads[t].display_date=s.display_date,e.threads[t].recipients=s.recipients,e.threads[t].star_link=s.star_link,e.threads[t].is_starred=s.is_starred)}),_.isUndefined(e.meta)||(this.options.page=e.meta.page,this.options.total_page=e.meta.total_page),bp.Nouveau.Messages.box&&(this.options.box=bp.Nouveau.Messages.box),_.isUndefined(e.extraContent)||_.extend(this.options,_.pick(e.extraContent,["beforeLoop","afterLoop"])),e.threads},doAction:function(e,s,t){return t=t||{},t.context=this,t.data=t.data||{},t.data=_.extend(t.data,{action:"messages_"+e,nonce:BP_Nouveau.nonces.messages,id:s}),bp.ajax.send(t)}}),bp.Collections.Messages=Backbone.Collection.extend({model:bp.Models.messageThread,options:{},sync:function(e,s,t){return t=t||{},t.context=this,t.data=t.data||{},t.data.nonce=BP_Nouveau.nonces.messages,"read"===e?(t.data=_.extend(t.data,{action:"messages_get_thread_messages"}),bp.ajax.send(t)):"create"===e?(t.data=_.extend(t.data,{action:"messages_send_reply",nonce:BP_Nouveau.messages.nonces.send},s||{}),bp.ajax.send(t)):void 0},parse:function(e){return _.isArray(e.messages)||(e.messages=[e.messages]),_.each(e.messages,function(s,t){_.isNull(s)||(e.messages[t].id=s.id,e.messages[t].content=s.content,e.messages[t].sender_id=s.sender_id,e.messages[t].sender_name=s.sender_name,e.messages[t].sender_link=s.sender_link,e.messages[t].sender_avatar=s.sender_avatar,e.messages[t].date=new Date(s.date),e.messages[t].display_date=s.display_date,e.messages[t].star_link=s.star_link,e.messages[t].is_starred=s.is_starred)}),_.isUndefined(e.thread)||(this.options.thread_id=e.thread.id,this.options.thread_subject=e.thread.subject,this.options.recipients=e.thread.recipients),e.messages}}),bp.Nouveau.Messages.View=bp.Backbone.View.extend({inject:function(e){this.render(),s(e).html(this.el),this.views.ready()},prepare:function(){return!_.isUndefined(this.model)&&_.isFunction(this.model.toJSON)?this.model.toJSON():{}}}),bp.Views.Feedback=bp.Nouveau.Messages.View.extend({tagName:"div",className:"bp-messages bp-user-messages-feedback",template:bp.template("bp-messages-feedback"),initialize:function(){this.model=new Backbone.Model({type:this.options.type||"info",message:this.options.value})}}),bp.Views.Hook=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-messages-hook"),initialize:function(){this.model=new Backbone.Model({extraContent:this.options.extraContent}),this.el.className="bp-messages-hook",this.options.className&&(this.el.className+=" "+this.options.className)}}),bp.Views.messageEditor=bp.Nouveau.Messages.View.extend({template:bp.template("bp-messages-editor"),initialize:function(){this.on("ready",this.activateTinyMce,this)},activateTinyMce:function(){"undefined"!=typeof tinymce&&tinymce.EditorManager.execCommand("mceAddEditor",!0,"message_content")}}),bp.Views.messageForm=bp.Nouveau.Messages.View.extend({tagName:"form",id:"send_message_form",className:"standard-form",template:bp.template("bp-messages-form"),events:{"click #bp-messages-send":"sendMessage","click #bp-messages-reset":"resetForm"},initialize:function(){this.resetModel=this.model.clone(),this.views.add("#bp-message-content",new bp.Views.messageEditor),this.model.on("change",this.resetFields,this),this.on("ready",this.addMentions,this)},addMentions:function(){var e=s(this.el).find("#send-to-input"),t=bp.Nouveau.getLinkParams(null,"r")||null;e.bp_mentions({data:[],suffix:" "}),_.isNull(t)||(e.val("@"+_.escape(t)+" "),e.focus())},resetFields:function(e){_.each(e.previousAttributes(),function(e,t){"message_content"===t?void 0!==tinyMCE.activeEditor&&null!==tinyMCE.activeEditor&&tinyMCE.activeEditor.setContent(""):"meta"!==t&&!1!==e&&s('input[name="'+t+'"]').val("")}),s(this.el).trigger("message:reset",_.pick(e.previousAttributes(),"meta"))},sendMessage:function(e){var t={},a=[],i=this;if(e.preventDefault(),bp.Nouveau.Messages.removeFeedback(),_.each(this.$el.serializeArray(),function(e){if(e.name=e.name.replace("[]",""),-1===_.indexOf(["send_to","subject","message_content"],e.name))_.isUndefined(t[e.name])?t[e.name]=e.value:(_.isArray(t[e.name])||(t[e.name]=[t[e.name]]),t[e.name].push(e.value));else if("send_to"===e.name){var i=e.value.match(/(^|[^@\w\-])@([a-zA-Z0-9_\-]{1,50})\b/g);i?((i=i.map(function(e){return e=s.trim(e)}))&&s.isArray(i)||a.push("send_to"),this.model.set("send_to",i,{silent:!0})):a.push("send_to")}else"message_content"===e.name&&void 0!==tinyMCE.activeEditor&&(e.value=tinyMCE.activeEditor.getContent()),e.value?this.model.set(e.name,e.value,{silent:!0}):a.push(e.name)},this),a.length){var n="";return _.each(a,function(e){n+=BP_Nouveau.messages.errors[e]+"<br/>"}),void bp.Nouveau.Messages.displayFeedback(n,"error")}this.model.set("meta",t,{silent:!0}),this.model.sendMessage().done(function(e){i.model.set(i.resetModel),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type),bp.Nouveau.Messages.removeTinyMCE();var s=bp.Nouveau.Messages.views.get("compose");s.get("view").remove(),bp.Nouveau.Messages.views.remove({id:"compose",view:s}),bp.Nouveau.Messages.router.navigate("sentbox/",{trigger:!0})}).fail(function(e){e.feedback&&bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})},resetForm:function(e){e.preventDefault(),this.model.set(this.resetModel)}}),bp.Views.userThreads=bp.Nouveau.Messages.View.extend({tagName:"div",events:{"click .subject":"changePreview"},initialize:function(){var e=[new bp.Nouveau.Messages.View({tagName:"ul",id:"message-threads",className:"message-lists"}),new bp.Views.previewThread({collection:this.collection})];_.each(e,function(e){this.views.add(e)},this),this.requestThreads(),this.collection.on("reset",this.cleanContent,this),this.collection.on("add",this.addThread,this)},requestThreads:function(){this.collection.reset(),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.loading,"loading"),this.collection.fetch({data:_.pick(this.options,"box"),success:_.bind(this.threadsFetched,this),error:this.threadsFetchError})},threadsFetched:function(){bp.Nouveau.Messages.removeFeedback(),this.collection.options.afterLoop&&this.views.add(new bp.Views.Hook({extraContent:this.collection.options.afterLoop,className:"after-messages-loop"}),{at:1}),this.collection.options.beforeLoop&&this.views.add(new bp.Views.Hook({extraContent:this.collection.options.beforeLoop,className:"before-messages-loop"}),{at:0}),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.howto,"info")},threadsFetchError:function(e,s){bp.Nouveau.Messages.displayFeedback(s.feedback,s.type)},cleanContent:function(){_.each(this.views._views["#message-threads"],function(e){e.remove()})},addThread:function(e){var s=this.collection.findWhere({active:!0});_.isUndefined(s)&&e.set("active",!0),this.views.add("#message-threads",new bp.Views.userThread({model:e}))},setActiveThread:function(e){e&&_.each(this.collection.models,function(s){s.id===e?s.set("active",!0):s.unset("active")},this)},changePreview:function(e){var t=s(e.currentTarget);e.preventDefault(),bp.Nouveau.Messages.removeFeedback(),t.closest(".thread-item").hasClass("selected")?bp.Nouveau.Messages.router.navigate("view/"+t.closest(".thread-content").data("thread-id")+"/",{trigger:!0}):(this.setActiveThread(t.closest(".thread-content").data("thread-id")),s(".message-action-view").focus())}}),bp.Views.userThread=bp.Nouveau.Messages.View.extend({tagName:"li",template:bp.template("bp-messages-thread"),className:"thread-item",events:{"click .message-check":"singleSelect"},initialize:function(){if(this.model.get("active")&&(this.el.className+=" selected"),this.model.get("unread")&&(this.el.className+=" unread"),"sentbox"===bp.Nouveau.Messages.box){var e=this.model.get("recipients").length,s="";2===e?s=BP_Nouveau.messages.toOthers.one:2<e&&(s=BP_Nouveau.messages.toOthers.more.replace("%d",Number(e-1))),this.model.set({recipientsCount:e,toOthers:s},{silent:!0})}else this.model.get("recipientsCount")&&this.model.unset("recipientsCount",{silent:!0});this.model.on("change:active",this.toggleClass,this),this.model.on("change:unread",this.updateReadState,this),this.model.on("change:checked",this.bulkSelect,this),this.model.on("remove",this.cleanView,this)},toggleClass:function(e){!0===e.get("active")?s(this.el).addClass("selected"):s(this.el).removeClass("selected")},updateReadState:function(e,t){!1===t?s(this.el).removeClass("unread"):s(this.el).addClass("unread")},bulkSelect:function(e){s("#bp-message-thread-"+e.get("id")).length&&s("#bp-message-thread-"+e.get("id")).prop("checked",e.get("checked"))},singleSelect:function(e){var t=s(e.currentTarget).prop("checked");this.model.set("checked",t,{silent:!0});var a=!1;_.each(this.model.collection.models,function(e){!0===e.get("checked")&&(a=!0)}),a?(s("#user-messages-bulk-actions").closest(".bulk-actions-wrap").removeClass("bp-hide"),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.howtoBulk,"info")):(s("#user-messages-bulk-actions").closest(".bulk-actions-wrap").addClass("bp-hide"),bp.Nouveau.Messages.removeFeedback())},cleanView:function(){this.views.view.remove()}}),bp.Views.previewThread=bp.Nouveau.Messages.View.extend({tagName:"div",id:"thread-preview",template:bp.template("bp-messages-preview"),events:{"click .actions button":"doAction","click .actions a":"doAction"},initialize:function(){this.collection.on("change:active",this.setPreview,this),this.collection.on("change:is_starred",this.updatePreview,this),this.collection.on("reset",this.emptyPreview,this),this.collection.on("remove",this.emptyPreview,this)},render:function(){_.isUndefined(this.model)||!0!==this.model.get("active")||bp.Nouveau.Messages.View.prototype.render.apply(this,arguments)},setPreview:function(e){var s=this;this.model=e,!0===e.get("unread")&&this.model.updateReadState().done(function(){s.model.set("unread",!1)}),this.render()},updatePreview:function(e){!0===e.get("active")&&this.render()},emptyPreview:function(){s(this.el).html("")},doAction:function(e){var t,a=s(e.currentTarget).data("bp-action"),i=this,n={},o=BP_Nouveau.messages.doingAction;if(!a)return e;e.preventDefault();var d=this.collection.findWhere({active:!0});d.get("id")&&(t=d.get("id"),"view"!==a?("star"!==a&&"unstar"!==a||(n.data={star_nonce:d.get("star_nonce")},t=d.get("starred_id")),_.isUndefined(o[a])||bp.Nouveau.Messages.displayFeedback(o[a],"loading"),this.collection.doAction(a,t,n).done(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type),"delete"===a||"starred"===i.collection.options.box&&"unstar"===a?(i.collection.remove(d.get("id")),i.collection.fetch({data:_.pick(i.collection.options,["box","search_terms","page"])})):"unstar"===a||"star"===a?(_.each(e.messages,function(e){d.set(e)}),d.set(_.first(e.messages))):e.messages&&d.set(_.first(e.messages))}).fail(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})):bp.Nouveau.Messages.router.navigate("view/"+t+"/",{trigger:!0}))}}),bp.Views.Pagination=bp.Nouveau.Messages.View.extend({tagName:"li",className:"last filter",template:bp.template("bp-messages-paginate")}),bp.Views.BulkActions=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-bulk-actions"),events:{"click #user_messages_select_all":"bulkSelect","click .bulk-apply":"doBulkAction"},bulkSelect:function(e){var t=s(e.currentTarget).prop("checked");t?(s(this.el).find(".bulk-actions-wrap").removeClass("bp-hide").addClass("bp-show"),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.howtoBulk,"info")):(s(this.el).find(".bulk-actions-wrap").addClass("bp-hide"),bp.Nouveau.Messages.removeFeedback()),_.each(this.collection.models,function(e){e.set("checked",t)})},doBulkAction:function(e){var t,a=this,i={},n="id",o=BP_Nouveau.messages.doingAction;e.preventDefault();var d=s("#user-messages-bulk-actions").val();if(d){var r=this.collection.where({checked:!0}),c=_.map(r,function(e){return e.get("id")});t=c,"star"!==d&&"unstar"!==d||(1===(t=_.map(r,function(e){return e.get("starred_id")})).length&&(i.data={star_nonce:r[0].get("star_nonce")}),n="starred_id");var l=_.object(_.map(r,function(e){return[e.get(n),e.get("id")]}));_.isUndefined(o[d])||bp.Nouveau.Messages.displayFeedback(o[d],"loading"),this.collection.doAction(d,t,i).done(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type),"delete"===d||"starred"===a.collection.options.box&&"unstar"===d?(a.collection.remove(c),a.collection.fetch({data:_.pick(a.collection.options,["box","search_terms","page"])})):e.messages&&_.each(e.messages,function(e,s){a.collection.get(l[s]).set(e)})}).fail(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})}}}),bp.Views.messageFilters=bp.Nouveau.Messages.View.extend({tagName:"ul",template:bp.template("bp-messages-filters"),events:{"search #user_messages_search":"resetSearchTerms","submit #user_messages_search_form":"setSearchTerms","click #bp-messages-next-page":"nextPage","click #bp-messages-prev-page":"prevPage"},initialize:function(){this.model.on("change",this.filterThreads,this),this.options.threads.on("sync",this.addPaginatation,this)},addPaginatation:function(e){_.each(this.views._views,function(e){_.isUndefined(e)||_.first(e).remove()}),this.views.add(new bp.Views.Pagination({model:new Backbone.Model(e.options)})),this.views.add(".user-messages-bulk-actions",new bp.Views.BulkActions({model:new Backbone.Model(BP_Nouveau.messages.bulk_actions),collection:e}))},filterThreads:function(){bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.loading,"loading"),this.options.threads.reset(),_.extend(this.options.threads.options,_.pick(this.model.attributes,["box","search_terms"])),this.options.threads.fetch({data:_.pick(this.model.attributes,["box","search_terms","page"]),success:this.threadsFiltered,error:this.threadsFilterError})},threadsFiltered:function(){bp.Nouveau.Messages.removeFeedback()},threadsFilterError:function(e,s){bp.Nouveau.Messages.displayFeedback(s.feedback,s.type)},resetSearchTerms:function(e){e.preventDefault(),s(e.target).val()?s(e.target).closest("form").find("[type=submit]").addClass("bp-show").removeClass("bp-hide"):s(e.target).closest("form").submit()},setSearchTerms:function(e){e.preventDefault(),this.model.set({search_terms:s(e.target).find("input[type=search]").val()||"",page:1})},nextPage:function(e){e.preventDefault(),this.model.set("page",this.model.get("page")+1)},prevPage:function(e){e.preventDefault(),this.model.set("page",this.model.get("page")-1)}}),bp.Views.userMessagesHeader=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-messages-single-header"),events:{"click .actions a":"doAction","click .actions button":"doAction"},doAction:function(e){var t=s(e.currentTarget).data("bp-action"),a=this,i={},n=BP_Nouveau.messages.doingAction;if(!t)return e;if(e.preventDefault(),this.model.get("id")){if("star"===t||"unstar"===t){var o={star:"unstar",unstar:"star"};i.data={star_nonce:this.model.get("star_nonce")},s(e.currentTarget).addClass("bp-hide"),s(e.currentTarget).parent().find('[data-bp-action="'+o[t]+'"]').removeClass("bp-hide")}_.isUndefined(n[t])||bp.Nouveau.Messages.displayFeedback(n[t],"loading"),bp.Nouveau.Messages.threads.doAction(t,this.model.get("id"),i).done(function(e){"delete"===t?bp.Nouveau.Messages.clearViews():e.messages&&a.model.set(_.first(e.messages)),bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)}).fail(function(e){bp.Nouveau.Messages.removeFeedback(),bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)})}}}),bp.Views.userMessagesEntry=bp.Views.userMessagesHeader.extend({tagName:"li",template:bp.template("bp-messages-single-list"),events:{"click [data-bp-action]":"doAction"},initialize:function(){this.model.on("change:is_starred",this.updateMessage,this)},updateMessage:function(e){this.model.get("id")===e.get("id")&&this.render()}}),bp.Views.userMessages=bp.Nouveau.Messages.View.extend({tagName:"div",template:bp.template("bp-messages-single"),initialize:function(){this.requestMessages(),this.reply=new bp.Models.messageThread,this.collection.on("add",this.addMessage,this),this.views.add("#bp-message-content",new bp.Views.messageEditor)},events:{"click #send_reply_button":"sendReply"},requestMessages:function(){var e={};this.collection.reset(),bp.Nouveau.Messages.displayFeedback(BP_Nouveau.messages.loading,"loading"),_.isUndefined(this.options.thread.attributes)?e.id=this.options.thread.id:(e.id=this.options.thread.get("id"),e.js_thread=!_.isEmpty(this.options.thread.get("subject"))),this.collection.fetch({data:e,success:_.bind(this.messagesFetched,this),error:this.messagesFetchError})},messagesFetched:function(e,s){_.isUndefined(s.thread)||(this.options.thread=new Backbone.Model(s.thread)),bp.Nouveau.Messages.removeFeedback(),this.views.add("#bp-message-thread-header",new bp.Views.userMessagesHeader({model:this.options.thread}))},messagesFetchError:function(e,s){s.feedback&&s.type&&bp.Nouveau.Messages.displayFeedback(s.feedback,s.type)},addMessage:function(e){this.views.add("#bp-message-thread-list",new bp.Views.userMessagesEntry({model:e}))},addEditor:function(){this.views.add("#bp-message-content",new bp.Views.messageEditor)},sendReply:function(e){e.preventDefault(),!0!==this.reply.get("sending")&&(this.reply.set({thread_id:this.options.thread.get("id"),content:tinyMCE.activeEditor.getContent(),sending:!0}),this.collection.sync("create",_.pick(this.reply.attributes,["thread_id","content"]),{success:_.bind(this.replySent,this),error:_.bind(this.replyError,this)}))},replySent:function(e){var s=this.collection.parse(e);tinyMCE.activeEditor.setContent(""),this.reply.set("sending",!1),this.collection.add(_.first(s))},replyError:function(e){e.feedback&&e.type&&bp.Nouveau.Messages.displayFeedback(e.feedback,e.type)}}),bp.Nouveau.Messages.Router=Backbone.Router.extend({routes:{"compose/":"composeMessage","view/:id/":"viewMessage","sentbox/":"sentboxView","starred/":"starredView","inbox/":"inboxView","":"inboxView"},composeMessage:function(){bp.Nouveau.Messages.composeView()},viewMessage:function(e){if(e){var s=bp.Nouveau.Messages.threads.get(e);void 0===s&&((s={}).id=e),bp.Nouveau.Messages.singleView(s)}},sentboxView:function(){bp.Nouveau.Messages.box="sentbox",bp.Nouveau.Messages.threadsView()},starredView:function(){bp.Nouveau.Messages.box="starred",bp.Nouveau.Messages.threadsView()},inboxView:function(){bp.Nouveau.Messages.box="inbox",bp.Nouveau.Messages.threadsView()}}),bp.Nouveau.Messages.start())}(bp,jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.js
index d1d9f9a48..576c609c2 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.js
@@ -285,7 +285,7 @@ window.bp = window.bp || {};
 			$( this.objectNavParent + ' [data-bp-scope="' + data.scope + '"], #object-nav li.current' ).addClass( 'selected loading' );
 			$( '#buddypress [data-bp-filter="' + data.object + '"] option[value="' + data.filter + '"]' ).prop( 'selected', true );
 
-			if ( 'friends' === data.object || 'group_members' === data.object ) {
+			if ( 'friends' === data.object || 'friend_requests' === data.object || 'group_members' === data.object ) {
 				data.template = data.object;
 				data.object   = 'members';
 			} else if ( 'group_requests' === data.object ) {
@@ -318,20 +318,20 @@ window.bp = window.bp || {};
 						$( 'html,body' ).animate( { scrollTop: top.offset().top }, 'slow', function() {
 							$( data.target ).fadeOut( 100, function() {
 								self.inject( this, response.data.contents, data.method );
-								$( this ).fadeIn( 100 );
-
-								// Inform other scripts the list of objects has been refreshed.
-								$( data.target ).trigger( 'bp_ajax_request', $.extend( data, { response: response.data } ) );
+								$( this ).fadeIn( 100, 'swing', function(){
+									// Inform other scripts the list of objects has been refreshed.
+									$( data.target ).trigger( 'bp_ajax_request', $.extend( data, { response: response.data } ) );
+								} );
 							} );
 						} );
 
 					} else {
 						$( data.target ).fadeOut( 100, function() {
 							self.inject( this, response.data.contents, data.method );
-							$( this ).fadeIn( 100 );
-
-							// Inform other scripts the list of objects has been refreshed.
-							$( data.target ).trigger( 'bp_ajax_request', $.extend( data, { response: response.data } ) );
+							$( this ).fadeIn( 100, 'swing', function(){
+								// Inform other scripts the list of objects has been refreshed.
+								$( data.target ).trigger( 'bp_ajax_request', $.extend( data, { response: response.data } ) );
+							} );
 						} );
 					}
 				}
@@ -574,10 +574,6 @@ window.bp = window.bp || {};
 				search_terms = $( '#buddypress [data-bp-search="' + object + '"] input[type=search]' ).val();
 			}
 
-			if ( 'friends' === object ) {
-				object = 'members';
-			}
-
 			self.objectRequest( {
 				object       : object,
 				scope        : scope,
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.min.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.min.js
index 5ce768a3b..b825125ac 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.min.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/buddypress-nouveau.min.js
@@ -1 +1 @@
-window.wp=window.wp||{},window.bp=window.bp||{},function(e,t){"undefined"!=typeof BP_Nouveau&&(bp.Nouveau={start:function(){this.setupGlobals(),this.prepareDocument(),this.initObjects(),this.setHeartBeat(),this.addListeners()},setupGlobals:function(){this.ajax_request=null,this.objects=t.map(BP_Nouveau.objects,function(e){return e}),this.objectNavParent=BP_Nouveau.object_nav_parent,this.heartbeat=wp.heartbeat||{},this.querystring=this.getLinkParams()},prepareDocument:function(){if(t("body").hasClass("no-js")&&t("body").removeClass("no-js").addClass("js"),BP_Nouveau.warnings&&"undefined"!=typeof console&&console.warn&&t.each(BP_Nouveau.warnings,function(e,t){console.warn(t)}),t(".buddypress_object_nav .widget-title").length){var e=t(".buddypress_object_nav .widget-title").html();t("body").find('*:contains("'+e+'")').each(function(a,s){t(s).hasClass("widget-title")||e!==t(s).html()||t(s).is("a")||t(s).remove()})}},getStorage:function(e,t){var a=sessionStorage.getItem(e);return a=a?JSON.parse(a):{},void 0!==t?a[t]||!1:a},setStorage:function(e,t,a){var s=this.getStorage(e);return void 0===a&&void 0!==s[t]?delete s[t]:s[t]=a,sessionStorage.setItem(e,JSON.stringify(s)),null!==sessionStorage.getItem(e)},getLinkParams:function(e,t){var a;if(!(a=e?-1!==e.indexOf("?")?"?"+e.split("?")[1]:"":document.location.search))return null;var s=a.replace(/(^\?)/,"").split("&").map(function(e){return e=e.split("="),this[e[0]]=e[1],this}.bind({}))[0];return t?s[t]:s},urlDecode:function(e,t){var a=t||{amp:"&",lt:"<",gt:">",quot:'"',"#039":"'"};return decodeURIComponent(e.replace(/\+/g," ")).replace(/&([^;]+);/g,function(e,t){return a[t]||""})},ajax:function(e,a){this.ajax_request&&this.ajax_request.abort();var s=t.extend({},bp.Nouveau.getStorage("bp-"+a),{nonce:BP_Nouveau.nonces[a]},e);return void 0!==BP_Nouveau.customizer_settings&&(s.customized=BP_Nouveau.customizer_settings),this.ajax_request=t.post(BP_Nouveau.ajaxurl,s,"json"),this.ajax_request},inject:function(e,a,s){t(e).length&&a&&("append"===(s=s||"reset")?t(e).append(a):"prepend"===s?t(e).prepend(a):t(e).html(a),"undefined"==typeof bp_mentions&&void 0===bp.mentions||t(".bp-suggestions").bp_mentions(bp.mentions.users))},objectRequest:function(e){var a={},s=this;if((e=t.extend({object:"",scope:null,filter:null,target:"#buddypress [data-bp-list]",search_terms:"",page:1,extras:null,caller:null,template:null,method:"reset"},e)).object&&e.target)return e.search_terms&&(e.search_terms=e.search_terms.replace(/</g,"&lt;").replace(/>/g,"&gt;")),null!==e.scope&&this.setStorage("bp-"+e.object,"scope",e.scope),null!==e.filter&&this.setStorage("bp-"+e.object,"filter",e.filter),null!==e.extras&&this.setStorage("bp-"+e.object,"extras",e.extras),t(this.objectNavParent+" [data-bp-object]").each(function(){t(this).removeClass("selected loading")}),t(this.objectNavParent+' [data-bp-scope="'+e.scope+'"], #object-nav li.current').addClass("selected loading"),t('#buddypress [data-bp-filter="'+e.object+'"] option[value="'+e.filter+'"]').prop("selected",!0),"friends"===e.object||"group_members"===e.object?(e.template=e.object,e.object="members"):"group_requests"===e.object?(e.object="groups",e.template="group_requests"):"notifications"===e.object&&(e.object="members",e.template="member_notifications"),a=t.extend({action:e.object+"_filter"},e),this.ajax(a,e.object).done(function(a){if(!1!==a.success)if(t(s.objectNavParent+' [data-bp-scope="'+e.scope+'"]').removeClass("loading"),"reset"!==e.method)s.inject(e.target,a.data.contents,e.method),t(e.target).trigger("bp_ajax_"+e.method,t.extend(e,{response:a.data}));else if("pag-bottom"===e.caller&&t("#subnav").length){var r=t("#subnav").parent();t("html,body").animate({scrollTop:r.offset().top},"slow",function(){t(e.target).fadeOut(100,function(){s.inject(this,a.data.contents,e.method),t(this).fadeIn(100),t(e.target).trigger("bp_ajax_request",t.extend(e,{response:a.data}))})})}else t(e.target).fadeOut(100,function(){s.inject(this,a.data.contents,e.method),t(this).fadeIn(100),t(e.target).trigger("bp_ajax_request",t.extend(e,{response:a.data}))})})},initObjects:function(){var e=this,a={},s={},r="all",n="",i=null,o=null;t.each(this.objects,function(d,p){void 0!==(a=e.getStorage("bp-"+p)).scope&&(r=a.scope),void 0!==a.extras&&"notifications"!==p&&(i=a.extras),t('#buddypress [data-bp-filter="'+p+'"]').length&&("-1"!==t('#buddypress [data-bp-filter="'+p+'"]').val()&&"0"!==t('#buddypress [data-bp-filter="'+p+'"]').val()?o=t('#buddypress [data-bp-filter="'+p+'"]').val():void 0!==a.filter&&(o=a.filter,t('#buddypress [data-bp-filter="'+p+'"] option[value="'+o+'"]').prop("selected",!0))),t(this.objectNavParent+' [data-bp-object="'+p+'"]').length&&(t(this.objectNavParent+' [data-bp-object="'+p+'"]').each(function(){t(this).removeClass("selected")}),t(this.objectNavParent+' [data-bp-scope="'+p+'"], #object-nav li.current').addClass("selected")),null!==e.querystring&&(void 0!==e.querystring[p+"_search"]?n=e.querystring[p+"_search"]:void 0!==e.querystring.s&&(n=e.querystring.s),n&&(n=e.urlDecode(n),t('#buddypress [data-bp-search="'+p+'"] input[type=search]').val(n))),t('#buddypress [data-bp-list="'+p+'"]').length&&(s={object:p,scope:r,filter:o,search_terms:n,extras:i},e.objectRequest(s))})},setHeartBeat:function(){void 0!==BP_Nouveau.pulse&&this.heartbeat&&(this.heartbeat.interval(Number(BP_Nouveau.pulse)),t.fn.extend({"heartbeat-send":function(){return this.bind("heartbeat-send.buddypress")}}),t.fn.extend({"heartbeat-tick":function(){return this.bind("heartbeat-tick.buddypress")}}))},addListeners:function(){t("[data-bp-disable-input]").on("change",this.toggleDisabledInput),t(document).on("heartbeat-send.buddypress",this.heartbeatSend),t(document).on("heartbeat-tick.buddypress",this.heartbeatTick),t(this.objectNavParent+" .bp-navs").on("click","a",this,this.scopeQuery),t("#buddypress [data-bp-filter]").on("change",this,this.filterQuery),t("#buddypress [data-bp-search]").on("submit","form",this,this.searchQuery),t("#buddypress [data-bp-search] form").on("search","input[type=search]",this.resetSearch),t("#buddypress [data-bp-list], #buddypress #item-header").on("click","[data-bp-btn-action]",this,this.buttonAction),t("#buddypress [data-bp-close]").on("click",this,this.closeNotice),t("#buddypress [data-bp-list]").on("click","[data-bp-pagination] a",this,this.paginateAction)},toggleDisabledInput:function(){var e=t(this).attr("data-bp-disable-input");t(e).prop("disabled",!0)&&!t(this).hasClass("enabled")?(t(this).addClass("enabled").removeClass("disabled"),t(e).removeProp("disabled")):t(e).prop("disabled",!1)&&t(this).hasClass("enabled")&&(t(this).removeClass("enabled").addClass("disabled"),t(e).attr("disabled","disabled"))},heartbeatSend:function(e,a){t("#buddypress").trigger("bp_heartbeat_send",a)},heartbeatTick:function(e,a){t("#buddypress").trigger("bp_heartbeat_tick",a)},scopeQuery:function(e){var a,s=e.data,r=t(e.currentTarget).parent(),n="all",i=null,o="";return r.hasClass("no-ajax")||t(e.currentTarget).hasClass("no-ajax")||!r.attr("data-bp-scope")?e:(n=r.data("bp-scope"),a=r.data("bp-object"),n&&a?(e.preventDefault(),i=t("#buddypress").find('[data-bp-filter="'+a+'"]').first().val(),t('#buddypress [data-bp-search="'+a+'"] input[type=search]').length&&(o=t('#buddypress [data-bp-search="'+a+'"] input[type=search]').val()),r.hasClass("dynamic")&&r.find("a span").html(""),void s.objectRequest({object:a,scope:n,filter:i,search_terms:o,page:1})):e)},filterQuery:function(e){var a=e.data,s=t(e.target).data("bp-filter"),r="all",n=t(e.target).val(),i="";if(!s)return e;t(a.objectNavParent+" [data-bp-object].selected").length&&(r=t(a.objectNavParent+" [data-bp-object].selected").data("bp-scope")),t('#buddypress [data-bp-search="'+s+'"] input[type=search]').length&&(i=t('#buddypress [data-bp-search="'+s+'"] input[type=search]').val()),"friends"===s&&(s="members"),a.objectRequest({object:s,scope:r,filter:n,search_terms:i,page:1,template:null})},searchQuery:function(e){var a,s=e.data,r="all",n=null,i="";if(t(e.delegateTarget).hasClass("no-ajax")||void 0===t(e.delegateTarget).data("bp-search"))return e;e.preventDefault(),a=t(e.delegateTarget).data("bp-search"),n=t("#buddypress").find('[data-bp-filter="'+a+'"]').first().val(),i=t(e.delegateTarget).find("input[type=search]").first().val(),t(s.objectNavParent+" [data-bp-object]").length&&(r=t(s.objectNavParent+' [data-bp-object="'+a+'"].selected').data("bp-scope")),s.objectRequest({object:a,scope:r,filter:n,search_terms:i,page:1,template:null})},showSearchSubmit:function(e){t(e.delegateTarget).find("[type=submit]").addClass("bp-show"),t("[type=submit]").hasClass("bp-hide")&&t("[type=submit]").removeClass("bp-hide")},resetSearch:function(e){t(e.target).val()?t(e.delegateTarget).find("[type=submit]").show():t(e.delegateTarget).submit()},buttonAction:function(e){var a=e.data,s=t(e.currentTarget),r=s.data("bp-btn-action"),n=s.data("bp-nonce"),i=s.closest("[data-bp-item-id]"),o=i.data("bp-item-id"),d=s.closest(".list-wrap"),p=i.data("bp-item-component"),c="";if(!r||!o||!p)return e;if(e.preventDefault(),void 0!==BP_Nouveau[r+"_confirm"]&&!1===window.confirm(BP_Nouveau[r+"_confirm"])||s.hasClass("pending"))return!1;c=n?(c=n.split("?_wpnonce="))[1]:a.getLinkParams(s.prop("href"),"_wpnonce");var l={is_friend:"remove_friend",not_friends:"add_friend",pending:"withdraw_friendship",accept_friendship:"accept_friendship",reject_friendship:"reject_friendship"};"members"===p&&void 0!==l[r]&&(r=l[r],p="friends"),s.addClass("pending loading"),a.ajax({action:p+"_"+r,item_id:o,_wpnonce:c},p).done(function(e){if(!1===e.success)d.prepend(e.data.feedback),s.removeClass("pending loading"),i.find(".bp-feedback").fadeOut(6e3);else{if("groups"===p&&void 0!==e.data.is_group&&e.data.is_group)return window.location.reload();if(void 0!==e.data.is_user&&e.data.is_user)return s.parent().html(e.data.feedback),void i.fadeOut(1500);if(t(a.objectNavParent+' [data-bp-scope="personal"]').length){var n=Number(t(a.objectNavParent+' [data-bp-scope="personal"] span').html())||0;-1!==t.inArray(r,["leave_group","remove_friend"])?n-=1:-1!==t.inArray(r,["join_group"])&&(n+=1),n<0&&(n=0),t(a.objectNavParent+' [data-bp-scope="personal"] span').html(n)}s.parent().replaceWith(e.data.contents)}})},closeNotice:function(e){var a=t(e.currentTarget);e.preventDefault(),"clear"===a.data("bp-close")&&(void 0!==t.cookie("bp-message")&&t.removeCookie("bp-message"),void 0!==t.cookie("bp-message-type")&&t.removeCookie("bp-message-type")),a.closest(".bp-feedback").hasClass("bp-sitewide-notice")&&bp.Nouveau.ajax({action:"messages_dismiss_sitewide_notice"},"messages"),a.closest(".bp-feedback").remove()},paginateAction:function(e){var a,s,r,n=e.data,i=t(e.currentTarget),o=null,d=null,p=null,c=null;if(null===(a=i.closest("[data-bp-pagination]").data("bp-pagination")||null))return e;e.preventDefault(),null!==(s=t(e.delegateTarget).data("bp-list")||null)&&(void 0!==(r=n.getStorage("bp-"+s)).scope&&(o=r.scope),void 0!==r.filter&&(d=r.filter),void 0!==r.extras&&(c=r.extras)),t('#buddypress [data-bp-search="'+s+'"] input[type=search]').length&&(p=t('#buddypress [data-bp-search="'+s+'"] input[type=search]').val());var l={object:s,scope:o,filter:d,search_terms:p,extras:c,page:n.getLinkParams(i.prop("href"),a)||1};n.objectRequest(l)}},bp.Nouveau.start())}(bp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},window.bp=window.bp||{},function(e,t){"undefined"!=typeof BP_Nouveau&&(bp.Nouveau={start:function(){this.setupGlobals(),this.prepareDocument(),this.initObjects(),this.setHeartBeat(),this.addListeners()},setupGlobals:function(){this.ajax_request=null,this.objects=t.map(BP_Nouveau.objects,function(e){return e}),this.objectNavParent=BP_Nouveau.object_nav_parent,this.heartbeat=wp.heartbeat||{},this.querystring=this.getLinkParams()},prepareDocument:function(){if(t("body").hasClass("no-js")&&t("body").removeClass("no-js").addClass("js"),BP_Nouveau.warnings&&"undefined"!=typeof console&&console.warn&&t.each(BP_Nouveau.warnings,function(e,t){console.warn(t)}),t(".buddypress_object_nav .widget-title").length){var e=t(".buddypress_object_nav .widget-title").html();t("body").find('*:contains("'+e+'")').each(function(a,s){t(s).hasClass("widget-title")||e!==t(s).html()||t(s).is("a")||t(s).remove()})}},getStorage:function(e,t){var a=sessionStorage.getItem(e);return a=a?JSON.parse(a):{},void 0!==t?a[t]||!1:a},setStorage:function(e,t,a){var s=this.getStorage(e);return void 0===a&&void 0!==s[t]?delete s[t]:s[t]=a,sessionStorage.setItem(e,JSON.stringify(s)),null!==sessionStorage.getItem(e)},getLinkParams:function(e,t){var a;if(!(a=e?-1!==e.indexOf("?")?"?"+e.split("?")[1]:"":document.location.search))return null;var s=a.replace(/(^\?)/,"").split("&").map(function(e){return e=e.split("="),this[e[0]]=e[1],this}.bind({}))[0];return t?s[t]:s},urlDecode:function(e,t){var a=t||{amp:"&",lt:"<",gt:">",quot:'"',"#039":"'"};return decodeURIComponent(e.replace(/\+/g," ")).replace(/&([^;]+);/g,function(e,t){return a[t]||""})},ajax:function(e,a){this.ajax_request&&this.ajax_request.abort();var s=t.extend({},bp.Nouveau.getStorage("bp-"+a),{nonce:BP_Nouveau.nonces[a]},e);return void 0!==BP_Nouveau.customizer_settings&&(s.customized=BP_Nouveau.customizer_settings),this.ajax_request=t.post(BP_Nouveau.ajaxurl,s,"json"),this.ajax_request},inject:function(e,a,s){t(e).length&&a&&("append"===(s=s||"reset")?t(e).append(a):"prepend"===s?t(e).prepend(a):t(e).html(a),"undefined"==typeof bp_mentions&&void 0===bp.mentions||t(".bp-suggestions").bp_mentions(bp.mentions.users))},objectRequest:function(e){var a={},s=this;if((e=t.extend({object:"",scope:null,filter:null,target:"#buddypress [data-bp-list]",search_terms:"",page:1,extras:null,caller:null,template:null,method:"reset"},e)).object&&e.target)return e.search_terms&&(e.search_terms=e.search_terms.replace(/</g,"&lt;").replace(/>/g,"&gt;")),null!==e.scope&&this.setStorage("bp-"+e.object,"scope",e.scope),null!==e.filter&&this.setStorage("bp-"+e.object,"filter",e.filter),null!==e.extras&&this.setStorage("bp-"+e.object,"extras",e.extras),t(this.objectNavParent+" [data-bp-object]").each(function(){t(this).removeClass("selected loading")}),t(this.objectNavParent+' [data-bp-scope="'+e.scope+'"], #object-nav li.current').addClass("selected loading"),t('#buddypress [data-bp-filter="'+e.object+'"] option[value="'+e.filter+'"]').prop("selected",!0),"friends"===e.object||"friend_requests"===e.object||"group_members"===e.object?(e.template=e.object,e.object="members"):"group_requests"===e.object?(e.object="groups",e.template="group_requests"):"notifications"===e.object&&(e.object="members",e.template="member_notifications"),a=t.extend({action:e.object+"_filter"},e),this.ajax(a,e.object).done(function(a){if(!1!==a.success)if(t(s.objectNavParent+' [data-bp-scope="'+e.scope+'"]').removeClass("loading"),"reset"!==e.method)s.inject(e.target,a.data.contents,e.method),t(e.target).trigger("bp_ajax_"+e.method,t.extend(e,{response:a.data}));else if("pag-bottom"===e.caller&&t("#subnav").length){var r=t("#subnav").parent();t("html,body").animate({scrollTop:r.offset().top},"slow",function(){t(e.target).fadeOut(100,function(){s.inject(this,a.data.contents,e.method),t(this).fadeIn(100,"swing",function(){t(e.target).trigger("bp_ajax_request",t.extend(e,{response:a.data}))})})})}else t(e.target).fadeOut(100,function(){s.inject(this,a.data.contents,e.method),t(this).fadeIn(100,"swing",function(){t(e.target).trigger("bp_ajax_request",t.extend(e,{response:a.data}))})})})},initObjects:function(){var e=this,a={},s={},r="all",n="",i=null,o=null;t.each(this.objects,function(d,p){void 0!==(a=e.getStorage("bp-"+p)).scope&&(r=a.scope),void 0!==a.extras&&"notifications"!==p&&(i=a.extras),t('#buddypress [data-bp-filter="'+p+'"]').length&&("-1"!==t('#buddypress [data-bp-filter="'+p+'"]').val()&&"0"!==t('#buddypress [data-bp-filter="'+p+'"]').val()?o=t('#buddypress [data-bp-filter="'+p+'"]').val():void 0!==a.filter&&(o=a.filter,t('#buddypress [data-bp-filter="'+p+'"] option[value="'+o+'"]').prop("selected",!0))),t(this.objectNavParent+' [data-bp-object="'+p+'"]').length&&(t(this.objectNavParent+' [data-bp-object="'+p+'"]').each(function(){t(this).removeClass("selected")}),t(this.objectNavParent+' [data-bp-scope="'+p+'"], #object-nav li.current').addClass("selected")),null!==e.querystring&&(void 0!==e.querystring[p+"_search"]?n=e.querystring[p+"_search"]:void 0!==e.querystring.s&&(n=e.querystring.s),n&&(n=e.urlDecode(n),t('#buddypress [data-bp-search="'+p+'"] input[type=search]').val(n))),t('#buddypress [data-bp-list="'+p+'"]').length&&(s={object:p,scope:r,filter:o,search_terms:n,extras:i},e.objectRequest(s))})},setHeartBeat:function(){void 0!==BP_Nouveau.pulse&&this.heartbeat&&(this.heartbeat.interval(Number(BP_Nouveau.pulse)),t.fn.extend({"heartbeat-send":function(){return this.bind("heartbeat-send.buddypress")}}),t.fn.extend({"heartbeat-tick":function(){return this.bind("heartbeat-tick.buddypress")}}))},addListeners:function(){t("[data-bp-disable-input]").on("change",this.toggleDisabledInput),t(document).on("heartbeat-send.buddypress",this.heartbeatSend),t(document).on("heartbeat-tick.buddypress",this.heartbeatTick),t(this.objectNavParent+" .bp-navs").on("click","a",this,this.scopeQuery),t("#buddypress [data-bp-filter]").on("change",this,this.filterQuery),t("#buddypress [data-bp-search]").on("submit","form",this,this.searchQuery),t("#buddypress [data-bp-search] form").on("search","input[type=search]",this.resetSearch),t("#buddypress [data-bp-list], #buddypress #item-header").on("click","[data-bp-btn-action]",this,this.buttonAction),t("#buddypress [data-bp-close]").on("click",this,this.closeNotice),t("#buddypress [data-bp-list]").on("click","[data-bp-pagination] a",this,this.paginateAction)},toggleDisabledInput:function(){var e=t(this).attr("data-bp-disable-input");t(e).prop("disabled",!0)&&!t(this).hasClass("enabled")?(t(this).addClass("enabled").removeClass("disabled"),t(e).removeProp("disabled")):t(e).prop("disabled",!1)&&t(this).hasClass("enabled")&&(t(this).removeClass("enabled").addClass("disabled"),t(e).attr("disabled","disabled"))},heartbeatSend:function(e,a){t("#buddypress").trigger("bp_heartbeat_send",a)},heartbeatTick:function(e,a){t("#buddypress").trigger("bp_heartbeat_tick",a)},scopeQuery:function(e){var a,s=e.data,r=t(e.currentTarget).parent(),n="all",i=null,o="";return r.hasClass("no-ajax")||t(e.currentTarget).hasClass("no-ajax")||!r.attr("data-bp-scope")?e:(n=r.data("bp-scope"),a=r.data("bp-object"),n&&a?(e.preventDefault(),i=t("#buddypress").find('[data-bp-filter="'+a+'"]').first().val(),t('#buddypress [data-bp-search="'+a+'"] input[type=search]').length&&(o=t('#buddypress [data-bp-search="'+a+'"] input[type=search]').val()),r.hasClass("dynamic")&&r.find("a span").html(""),void s.objectRequest({object:a,scope:n,filter:i,search_terms:o,page:1})):e)},filterQuery:function(e){var a=e.data,s=t(e.target).data("bp-filter"),r="all",n=t(e.target).val(),i="";if(!s)return e;t(a.objectNavParent+" [data-bp-object].selected").length&&(r=t(a.objectNavParent+" [data-bp-object].selected").data("bp-scope")),t('#buddypress [data-bp-search="'+s+'"] input[type=search]').length&&(i=t('#buddypress [data-bp-search="'+s+'"] input[type=search]').val()),a.objectRequest({object:s,scope:r,filter:n,search_terms:i,page:1,template:null})},searchQuery:function(e){var a,s=e.data,r="all",n=null,i="";if(t(e.delegateTarget).hasClass("no-ajax")||void 0===t(e.delegateTarget).data("bp-search"))return e;e.preventDefault(),a=t(e.delegateTarget).data("bp-search"),n=t("#buddypress").find('[data-bp-filter="'+a+'"]').first().val(),i=t(e.delegateTarget).find("input[type=search]").first().val(),t(s.objectNavParent+" [data-bp-object]").length&&(r=t(s.objectNavParent+' [data-bp-object="'+a+'"].selected').data("bp-scope")),s.objectRequest({object:a,scope:r,filter:n,search_terms:i,page:1,template:null})},showSearchSubmit:function(e){t(e.delegateTarget).find("[type=submit]").addClass("bp-show"),t("[type=submit]").hasClass("bp-hide")&&t("[type=submit]").removeClass("bp-hide")},resetSearch:function(e){t(e.target).val()?t(e.delegateTarget).find("[type=submit]").show():t(e.delegateTarget).submit()},buttonAction:function(e){var a=e.data,s=t(e.currentTarget),r=s.data("bp-btn-action"),n=s.data("bp-nonce"),i=s.closest("[data-bp-item-id]"),o=i.data("bp-item-id"),d=s.closest(".list-wrap"),p=i.data("bp-item-component"),c="";if(!r||!o||!p)return e;if(e.preventDefault(),void 0!==BP_Nouveau[r+"_confirm"]&&!1===window.confirm(BP_Nouveau[r+"_confirm"])||s.hasClass("pending"))return!1;c=n?(c=n.split("?_wpnonce="))[1]:a.getLinkParams(s.prop("href"),"_wpnonce");var l={is_friend:"remove_friend",not_friends:"add_friend",pending:"withdraw_friendship",accept_friendship:"accept_friendship",reject_friendship:"reject_friendship"};"members"===p&&void 0!==l[r]&&(r=l[r],p="friends"),s.addClass("pending loading"),a.ajax({action:p+"_"+r,item_id:o,_wpnonce:c},p).done(function(e){if(!1===e.success)d.prepend(e.data.feedback),s.removeClass("pending loading"),i.find(".bp-feedback").fadeOut(6e3);else{if("groups"===p&&void 0!==e.data.is_group&&e.data.is_group)return window.location.reload();if(void 0!==e.data.is_user&&e.data.is_user)return s.parent().html(e.data.feedback),void i.fadeOut(1500);if(t(a.objectNavParent+' [data-bp-scope="personal"]').length){var n=Number(t(a.objectNavParent+' [data-bp-scope="personal"] span').html())||0;-1!==t.inArray(r,["leave_group","remove_friend"])?n-=1:-1!==t.inArray(r,["join_group"])&&(n+=1),n<0&&(n=0),t(a.objectNavParent+' [data-bp-scope="personal"] span').html(n)}s.parent().replaceWith(e.data.contents)}})},closeNotice:function(e){var a=t(e.currentTarget);e.preventDefault(),"clear"===a.data("bp-close")&&(void 0!==t.cookie("bp-message")&&t.removeCookie("bp-message"),void 0!==t.cookie("bp-message-type")&&t.removeCookie("bp-message-type")),a.closest(".bp-feedback").hasClass("bp-sitewide-notice")&&bp.Nouveau.ajax({action:"messages_dismiss_sitewide_notice"},"messages"),a.closest(".bp-feedback").remove()},paginateAction:function(e){var a,s,r,n=e.data,i=t(e.currentTarget),o=null,d=null,p=null,c=null;if(null===(a=i.closest("[data-bp-pagination]").data("bp-pagination")||null))return e;e.preventDefault(),null!==(s=t(e.delegateTarget).data("bp-list")||null)&&(void 0!==(r=n.getStorage("bp-"+s)).scope&&(o=r.scope),void 0!==r.filter&&(d=r.filter),void 0!==r.extras&&(c=r.extras)),t('#buddypress [data-bp-search="'+s+'"] input[type=search]').length&&(p=t('#buddypress [data-bp-search="'+s+'"] input[type=search]').val());var l={object:s,scope:o,filter:d,search_terms:p,extras:c,page:n.getLinkParams(i.prop("href"),a)||1};n.objectRequest(l)}},bp.Nouveau.start())}(bp,jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.js
index 6fd604501..92ee4c8ed 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.js
@@ -1,8 +1,14 @@
 /* jshint undef: false */
 /* Password Verify */
 /* global pwsL10n */
-/* @version 3.0.0 */
+/* @since 3.0.0 */
+/* @version 5.0.0 */
 ( function( $ ){
+	/**
+	 * Function to inform the user about the strength of its password.
+	 *
+	 * @deprecated since version 5.0.0.
+	 */
 	function check_pass_strength() {
 		var pass1 = $( '.password-entry' ).val(),
 		    pass2 = $( '.password-entry-confirm' ).val(),
@@ -40,6 +46,9 @@
 	$( document ).ready( function() {
 		$( '.password-entry' ).val( '' ).keyup( check_pass_strength );
 		$( '.password-entry-confirm' ).val( '' ).keyup( check_pass_strength );
+
+		// Display a deprecated warning.
+		console.warn( 'The bp-nouveau/js/password-verify.js script is deprecated since 5.0.0 and will be deleted in version 6.0.0.' );
 	} );
 
 } )( jQuery );
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.min.js b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.min.js
index bf676912a..a560ee0f0 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.min.js
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/js/password-verify.min.js
@@ -1 +1 @@
-!function(s){function t(){var t=s(".password-entry").val(),a=s(".password-entry-confirm").val();if(s("#pass-strength-result").removeClass("show mismatch short bad good strong"),t)switch(wp.passwordStrength.meter(t,wp.passwordStrength.userInputBlacklist(),a)){case 2:s("#pass-strength-result").addClass("show bad").html(pwsL10n.bad);break;case 3:s("#pass-strength-result").addClass("show good").html(pwsL10n.good);break;case 4:s("#pass-strength-result").addClass("show strong").html(pwsL10n.strong);break;case 5:s("#pass-strength-result").addClass("show mismatch").html(pwsL10n.mismatch);break;default:s("#pass-strength-result").addClass("show short").html(pwsL10n.short)}else s("#pass-strength-result").html(pwsL10n.empty)}s(document).ready(function(){s(".password-entry").val("").keyup(t),s(".password-entry-confirm").val("").keyup(t)})}(jQuery);
\ No newline at end of file
+!function(s){function t(){var t=s(".password-entry").val(),e=s(".password-entry-confirm").val();if(s("#pass-strength-result").removeClass("show mismatch short bad good strong"),t)switch(wp.passwordStrength.meter(t,wp.passwordStrength.userInputBlacklist(),e)){case 2:s("#pass-strength-result").addClass("show bad").html(pwsL10n.bad);break;case 3:s("#pass-strength-result").addClass("show good").html(pwsL10n.good);break;case 4:s("#pass-strength-result").addClass("show strong").html(pwsL10n.strong);break;case 5:s("#pass-strength-result").addClass("show mismatch").html(pwsL10n.mismatch);break;default:s("#pass-strength-result").addClass("show short").html(pwsL10n.short)}else s("#pass-strength-result").html(pwsL10n.empty)}s(document).ready(function(){s(".password-entry").val("").keyup(t),s(".password-entry-confirm").val("").keyup(t),console.warn("The bp-nouveau/js/password-verify.js script is deprecated since 5.0.0 and will be deleted in version 6.0.0.")})}(jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_invites.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_invites.scss
index f6663a49b..271122c9b 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_invites.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_invites.scss
@@ -56,7 +56,6 @@
 			ul.group-inviters {
 				clear: both;
 				margin: 0;
-				overflow: hidden;
 
 				li {
 					border: 0;
diff --git a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_messages.scss b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_messages.scss
index 6544227c6..a04c262ce 100644
--- a/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_messages.scss
+++ b/wp-content/plugins/buddypress/bp-templates/bp-nouveau/sass/_nouveau_messages.scss
@@ -1,5 +1,6 @@
 // Nouveau Messages styles.
-// @version 3.0.0
+// @since 3.0.0
+// @version 5.0.0
 // Icon additions to default action star
 
 
@@ -187,6 +188,7 @@
 	.actions {
 		float: right;
 		max-width: 30%;
+		line-height: 1;
 
 		.bp-icons:not(.bp-hide) {
 			display: inline-block;
@@ -354,6 +356,7 @@
 
 		img {
 			width: 30px;
+			height: 30px;
 		}
 	}
 
diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php
index dc372e77b..91976a0af 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cache.php
@@ -287,5 +287,18 @@ function bp_xprofile_reset_fields_by_name_cache_incrementor() {
 }
 add_action( 'xprofile_field_before_save', 'bp_xprofile_reset_fields_by_name_cache_incrementor' );
 
+/**
+ * Resets all incremented bp_xprofile_groups caches.
+ *
+ * @since 5.0.0
+ */
+function bp_xprofile_reset_groups_cache_incrementor() {
+	bp_core_reset_incrementor( 'bp_xprofile_groups' );
+}
+add_action( 'xprofile_group_after_delete', 'bp_xprofile_reset_groups_cache_incrementor' );
+add_action( 'xprofile_group_after_save', 'bp_xprofile_reset_groups_cache_incrementor' );
+add_action( 'xprofile_field_after_delete', 'bp_xprofile_reset_groups_cache_incrementor' );
+add_action( 'xprofile_field_after_save', 'bp_xprofile_reset_groups_cache_incrementor' );
+
 // List actions to clear super cached pages on, if super cache is installed.
 add_action( 'xprofile_updated_profile', 'bp_core_clear_cache' );
diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cssjs.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cssjs.php
index 419f5c72f..81c36cc22 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cssjs.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-cssjs.php
@@ -21,7 +21,7 @@ function xprofile_add_admin_css() {
 
 		wp_enqueue_style( 'xprofile-admin-css', buddypress()->plugin_url . "bp-xprofile/admin/css/admin{$min}.css", array(), bp_get_version() );
 
-		wp_style_add_data( 'xprofile-admin-css', 'rtl', true );
+		wp_style_add_data( 'xprofile-admin-css', 'rtl', 'replace' );
 		if ( $min ) {
 			wp_style_add_data( 'xprofile-admin-css', 'suffix', $min );
 		}
diff --git a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php
index 4b03a9590..64282e4b0 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/bp-xprofile-filters.php
@@ -12,12 +12,12 @@
 // Exit if accessed directly.
 defined( 'ABSPATH' ) || exit;
 
-add_filter( 'bp_get_the_profile_group_name',            'wp_filter_kses',       1 );
-add_filter( 'bp_get_the_profile_group_description',     'wp_filter_kses',       1 );
-add_filter( 'bp_get_the_profile_field_value',           'xprofile_filter_kses', 1 );
-add_filter( 'bp_get_the_profile_field_name',            'wp_filter_kses',       1 );
-add_filter( 'bp_get_the_profile_field_edit_value',      'wp_filter_kses',       1 );
-add_filter( 'bp_get_the_profile_field_description',     'wp_filter_kses',       1 );
+add_filter( 'bp_get_the_profile_group_name',        'wp_filter_kses', 1 );
+add_filter( 'bp_get_the_profile_group_description', 'wp_filter_kses', 1 );
+add_filter( 'bp_get_the_profile_field_name',        'wp_filter_kses', 1 );
+add_filter( 'bp_get_the_profile_field_edit_value',  'xprofile_sanitize_data_value_before_display', 1, 3 );
+add_filter( 'bp_get_the_profile_field_description', 'wp_filter_kses', 1 );
+add_filter( 'bp_get_the_profile_field_value',       'xprofile_sanitize_data_value_before_display', 1, 3 );
 
 add_filter( 'bp_get_the_profile_field_value',           'wptexturize'        );
 add_filter( 'bp_get_the_profile_field_value',           'convert_chars'      );
@@ -40,7 +40,7 @@ add_filter( 'bp_get_the_profile_field_edit_value',      'stripslashes' );
 add_filter( 'bp_get_the_profile_field_name',            'stripslashes' );
 add_filter( 'bp_get_the_profile_field_description',     'stripslashes' );
 
-add_filter( 'xprofile_get_field_data',                  'xprofile_filter_kses', 1 );
+add_filter( 'xprofile_get_field_data',                  'xprofile_sanitize_data_value_before_display_from_get_field_data', 1, 2 );
 add_filter( 'xprofile_field_name_before_save',          'wp_filter_kses', 1 );
 add_filter( 'xprofile_field_description_before_save',   'wp_filter_kses', 1 );
 
@@ -116,24 +116,31 @@ function bp_xprofile_sanitize_field_default( $field_default = '' ) {
  * Run profile field values through kses with filterable allowed tags.
  *
  * @since 1.5.0
+ * @since 2.1.0 Added `$data_obj` parameter.
+ * @since 5.0.0 Added `$field_id` parameter.
  *
- * @param string      $content  Content to filter.
- * @param object|null $data_obj The BP_XProfile_ProfileData object.
+ * @param string                       $content  Content to filter.
+ * @param BP_XProfile_ProfileData|null $data_obj Optional. The BP_XProfile_ProfileData object.
+ * @param int|null                     $field_id Optional. The ID of the profile field.
  * @return string $content
  */
-function xprofile_filter_kses( $content, $data_obj = null ) {
+function xprofile_filter_kses( $content, $data_obj = null, $field_id = null ) {
 	global $allowedtags;
 
 	$xprofile_allowedtags             = $allowedtags;
 	$xprofile_allowedtags['a']['rel'] = array();
 
+	if ( null === $field_id && $data_obj instanceof BP_XProfile_ProfileData ) {
+		$field_id = $data_obj->field_id;
+	}
+
 	// If the field supports rich text, we must allow tags that appear in wp_editor().
-	if ( $data_obj instanceof BP_XProfile_ProfileData && bp_xprofile_is_richtext_enabled_for_field( $data_obj->field_id ) ) {
+	if ( $field_id && bp_xprofile_is_richtext_enabled_for_field( $field_id ) ) {
 		$richtext_tags = array(
-			'img'  => array( 'id' => 1, 'class' => 1, 'src' => 1, 'alt' => 1, 'width' => 1, 'height' => 1 ),
-			'ul'   => array( 'id' => 1, 'class' => 1 ),
-			'ol'   => array( 'id' => 1, 'class' => 1 ),
-			'li'   => array( 'id' => 1, 'class' => 1 ),
+			'img'  => array( 'src' => 1, 'alt' => 1, 'width' => 1, 'height' => 1 ),
+			'ul'   => array(),
+			'ol'   => array(),
+			'li'   => array(),
 			'span' => array( 'style' => 1 ),
 			'p'    => array( 'style' => 1 ),
 		);
@@ -145,14 +152,42 @@ function xprofile_filter_kses( $content, $data_obj = null ) {
 	 * Filters the allowed tags for use within xprofile_filter_kses().
 	 *
 	 * @since 1.5.0
+	 * @since 2.1.0 Added `$data_obj` parameter.
+	 * @since 5.0.0 Added `$field_id` parameter.
 	 *
-	 * @param array                   $xprofile_allowedtags Array of allowed tags for profile field values.
-	 * @param BP_XProfile_ProfileData $data_obj             The BP_XProfile_ProfileData object.
+	 * @param array                        $xprofile_allowedtags Array of allowed tags for profile field values.
+	 * @param BP_XProfile_ProfileData|null $data_obj             The BP_XProfile_ProfileData object.
+	 * @param int|null                     $field_id             The ID of the profile field.
 	 */
-	$xprofile_allowedtags = apply_filters( 'xprofile_allowed_tags', $xprofile_allowedtags, $data_obj );
+	$xprofile_allowedtags = apply_filters( 'xprofile_allowed_tags', $xprofile_allowedtags, $data_obj, $field_id );
 	return wp_kses( $content, $xprofile_allowedtags );
 }
 
+/**
+ * Filters profile field values for whitelisted HTML.
+ *
+ * @since 5.0.0
+ *
+ * @param string $value    Field value.
+ * @param string $type     Field type.
+ * @param int    $field_id Field ID.
+ */
+function xprofile_sanitize_data_value_before_display( $value, $type, $field_id ) {
+	return xprofile_filter_kses( $value, null, $field_id );
+}
+
+/**
+ * Filters profile field values for whitelisted HTML, when coming from xprofile_get_field_data().
+ *
+ * @since 5.0.0
+ *
+ * @param string $value    Field value.
+ * @param int    $field_id Field ID.
+ */
+function xprofile_sanitize_data_value_before_display_from_get_field_data( $value, $field_id ) {
+	return xprofile_filter_kses( $value, $field_id );
+}
+
 /**
  * Safely runs profile field data through kses and force_balance_tags.
  *
@@ -631,14 +666,16 @@ function bp_xprofile_filter_meta_query( $q ) {
  * Register XProfile personal data exporter.
  *
  * @since 4.0.0
+ * @since 5.0.0 adds an `exporter_bp_friendly_name` param to exporters.
  *
  * @param array $exporters  An array of personal data exporters.
  * @return array An array of personal data exporters.
  */
 function bp_xprofile_register_personal_data_exporter( $exporters ) {
 	$exporters['buddypress-xprofile'] = array(
-		'exporter_friendly_name' => __( 'BuddyPress Extended Profile Data', 'buddypress' ),
-		'callback'               => 'bp_xprofile_personal_data_exporter',
+		'exporter_friendly_name'    => __( 'BuddyPress Extended Profile Data', 'buddypress' ),
+		'callback'                  => 'bp_xprofile_personal_data_exporter',
+		'exporter_bp_friendly_name' => _x( 'Extended Profile information', 'BuddyPress Extended Profile data exporter friendly name', 'buddypress' ),
 	);
 
 	return $exporters;
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php
new file mode 100644
index 000000000..9809dc46b
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php
@@ -0,0 +1,598 @@
+<?php
+/**
+ * BP REST: BP_REST_XProfile_Data_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * XProfile Data endpoints.
+ *
+ * Use /xprofile/{field_id}/data/{user_id}
+ *
+ * @since 5.0.0
+ */
+class BP_REST_XProfile_Data_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * XProfile Fields Class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_XProfile_Fields_Endpoint
+	 */
+	protected $fields_endpoint;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace       = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base       = buddypress()->profile->id;
+		$this->fields_endpoint = new BP_REST_XProfile_Fields_Endpoint();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<field_id>[\d]+)/data/(?P<user_id>[\d]+)',
+			array(
+				'args'   => array(
+					'field_id' => array(
+						'description' => __( 'The ID of the field the data is from.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+					'user_id'  => array(
+						'description' => __( 'The ID of user the field data is from.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => array(
+						'value' => array(
+							'description' => __( 'The list of values for the field data.', 'buddypress' ),
+							'type'        => 'array',
+							'items'       => array(
+								'type' => 'string',
+							),
+							'arg_options' => array(
+								'validate_callback' => 'rest_validate_request_arg',
+								'sanitize_callback' => 'rest_sanitize_request_arg',
+							),
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Retrieve single XProfile field data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		// Get Field data.
+		$field_data = $this->get_xprofile_field_data_object( $request['field_id'], $request['user_id'] );
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field_data, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires before a XProfile data is retrieved via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_ProfileData $field_data The field data object.
+		 * @param WP_REST_Response      $response  The response data.
+		 * @param WP_REST_Request       $request   The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_data_get_item', $field_data, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to get users's data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = true;
+
+		// Check the field exists.
+		$field = $this->get_xprofile_field_object( $request['field_id'] );
+
+		if ( empty( $field->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Check the requested user exists.
+		if ( true === $retval && ! bp_rest_get_user( $request['user_id'] ) ) {
+			$retval = new WP_Error(
+				'bp_rest_member_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		// Check the user can view this field value.
+		$hidden_user_fields = bp_xprofile_get_hidden_fields_for_user( $request['user_id'] );
+
+		if ( true === $retval && in_array( $field->id, $hidden_user_fields, true ) ) {
+			$retval = new WP_Error(
+				'bp_rest_hidden_profile_field',
+				__( 'Sorry, the profile field value is not viewable for this user.', 'buddypress' ),
+				array(
+					'status' => 403,
+				)
+			);
+		}
+
+		/**
+		 * Filter the XProfile data `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_data_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Save XProfile data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$field = $this->get_xprofile_field_object( $request['field_id'] );
+
+		if ( empty( $field->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$user  = bp_rest_get_user( $request['user_id'] );
+		$value = $request['value'];
+
+		/**
+		 * For field types not supporting multiple values, join values in case
+		 * the submitted value was not an array.
+		 */
+		if ( ! $field->type_obj->supports_multiple_defaults ) {
+			$value = implode( ' ', $value );
+		}
+
+		if ( ! xprofile_set_field_data( $field->id, $user->ID, $value ) ) {
+			return new WP_Error(
+				'rest_user_cannot_save_xprofile_data',
+				__( 'Cannot save XProfile data.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Get Field data.
+		$field_data = $this->get_xprofile_field_data_object( $field->id, $user->ID );
+
+		// Create Additional fields.
+		$fields_update = $this->update_additional_fields_for_object( $field_data, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field_data, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a XProfile data is saved via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Field       $field      The field object.
+		 * @param BP_XProfile_ProfileData $field_data The field data object.
+		 * @param WP_User                 $user      The user object.
+		 * @param WP_REST_Response        $response  The response data.
+		 * @param WP_REST_Request         $request   The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_data_save_item', $field, $field_data, $user, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to save XProfile field data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you need to be logged in to save XProfile data.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['user_id'] );
+
+		if ( true === $retval && ! $user instanceof WP_User ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid member ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! $this->can_see( $user->ID ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you cannot save XProfile field data.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the XProfile data `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_data_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete user's XProfile data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$field = $this->get_xprofile_field_object( $request['field_id'] );
+
+		if ( empty( $field->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$user = bp_rest_get_user( $request['user_id'] );
+
+		// Get the field data before it's deleted.
+		$field_data = $this->get_xprofile_field_data_object( $field->id, $user->ID );
+
+		// Set empty for the response.
+		$field_data->value = '';
+		$previous          = $this->prepare_item_for_response( $field_data, $request );
+
+		if ( ! $field_data->delete() ) {
+			return new WP_Error(
+				'bp_rest_xprofile_data_cannot_delete',
+				__( 'Could not delete XProfile data.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after a XProfile data is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Field       $field       Deleted field object.
+		 * @param BP_XProfile_ProfileData  $field_data  Deleted field data object.
+		 * @param WP_User                $user       User object.
+		 * @param WP_REST_Response       $response   The response data.
+		 * @param WP_REST_Request        $request    The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_data_delete_item', $field, $field_data, $user, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete users's data.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->update_item_permissions_check( $request );
+
+		/**
+		 * Filter the XProfile data `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_data_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares XProfile data to return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  BP_XProfile_ProfileData $field_data XProfile field data object.
+	 * @param  WP_REST_Request         $request   Full data about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $field_data, $request ) {
+		$data = array(
+			'id'           => $field_data->id,
+			'field_id'     => $field_data->field_id,
+			'user_id'      => $field_data->user_id,
+			'value'        => array(
+				'raw'          => $field_data->value,
+				'unserialized' => $this->fields_endpoint->get_profile_field_unserialized_value( $field_data->value ),
+				'rendered'     => $this->fields_endpoint->get_profile_field_rendered_value( $field_data->value, $field_data->field_id ),
+			),
+			'last_updated' => bp_rest_prepare_date_response( $field_data->last_updated ),
+		);
+
+		$context  = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $field_data ) );
+
+		/**
+		 * Filter the XProfile data response returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response      $response  The response data.
+		 * @param WP_REST_Request       $request   Request used to generate the response.
+		 * @param BP_XProfile_ProfileData $field_data XProfile field data object.
+		 */
+		return apply_filters( 'bp_rest_xprofile_data_prepare_value', $response, $request, $field_data );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_XProfile_ProfileData $field_data XProfile field data object.
+	 * @return array
+	 */
+	protected function prepare_links( $field_data ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self' => array(
+				'href' => rest_url( $base . $field_data->field_id ),
+			),
+			'user' => array(
+				'href'       => rest_url( bp_rest_get_user_url( $field_data->user_id ) ),
+				'embeddable' => true,
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array                 $links     The prepared links of the REST response.
+		 * @param BP_XProfile_ProfileData $field_data XProfile field data object.
+		 */
+		return apply_filters( 'bp_rest_xprofile_data_prepare_links', $links, $field_data );
+	}
+
+	/**
+	 * Get XProfile field object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $field_id Field id.
+	 * @return BP_XProfile_Field
+	 */
+	public function get_xprofile_field_object( $field_id ) {
+		return $this->fields_endpoint->get_xprofile_field_object( $field_id );
+	}
+
+	/**
+	 * Get XProfile field data object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $field_id Field id.
+	 * @param int $user_id User id.
+	 * @return BP_XProfile_ProfileData
+	 */
+	public function get_xprofile_field_data_object( $field_id, $user_id ) {
+		return new BP_XProfile_ProfileData( $field_id, $user_id );
+	}
+
+	/**
+	 * Can this user see the XProfile data?
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param int $field_user_id User ID of the field.
+	 * @return bool
+	 */
+	protected function can_see( $field_user_id ) {
+		return ( bp_current_user_can( 'bp_moderate' ) || bp_loggedin_user_id() === $field_user_id );
+	}
+
+	/**
+	 * Get the XProfile data schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_xprofile_data',
+			'type'       => 'object',
+			'properties' => array(
+				'id'           => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the profile data.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'field_id'     => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the field the data is from.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'user_id'      => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the user the field data is from.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'value'        => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The value of the field data.', 'buddypress' ),
+					'type'        => 'object',
+					'arg_options' => array(
+						'sanitize_callback' => null,
+						'validate_callback' => null,
+					),
+					'properties'  => array(
+						'raw'          => array(
+							'description' => __( 'Value for the field, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+						),
+						'unserialized' => array(
+							'description' => __( 'Unserialized value for the field, regular string will be casted as array.', 'buddypress' ),
+							'type'        => 'array',
+							'context'     => array( 'view', 'edit' ),
+							'items'       => array(
+								'type' => 'string',
+							),
+							'readonly'    => true,
+						),
+						'rendered'     => array(
+							'description' => __( 'HTML value for the field, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'last_updated' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The date the field data was last updated, in the site\'s timezone.', 'buddypress' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+				),
+			),
+		);
+
+		/**
+		 * Filters the xprofile data schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_xprofile_data_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php
new file mode 100644
index 000000000..27dd4ae49
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php
@@ -0,0 +1,892 @@
+<?php
+/**
+ * BP REST: BP_REST_XProfile_Field_Groups_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * XProfile Field Groups Endpoints.
+ *
+ * Use /xprofile/groups
+ * Use /xprofile/groups/{id}
+ *
+ * @since 5.0.0
+ */
+class BP_REST_XProfile_Field_Groups_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * XProfile Fields Class.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @var BP_REST_XProfile_Fields_Endpoint
+	 */
+	protected $fields_endpoint;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace       = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base       = buddypress()->profile->id . '/groups';
+		$this->fields_endpoint = new BP_REST_XProfile_Fields_Endpoint();
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<id>[\d]+)',
+			array(
+				'args'   => array(
+					'id' => array(
+						'description' => __( 'A unique numeric ID for the group of profile fields.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Edit some properties for the CREATABLE & EDITABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method || WP_REST_Server::EDITABLE === $method ) {
+			$key                         = 'update_item';
+			$args['description']['type'] = 'string';
+			unset( $args['description']['properties'] );
+
+			if ( WP_REST_Server::CREATABLE === $method ) {
+				$key = 'create_item';
+				unset( $args['group_order'] );
+			}
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_xprofile_field_groups_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Retrieve XProfile groups.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'profile_group_id'       => $request['profile_group_id'],
+			'user_id'                => $request['user_id'],
+			'member_type'            => $request['member_type'],
+			'hide_empty_groups'      => $request['hide_empty_groups'],
+			'hide_empty_fields'      => $request['hide_empty_fields'],
+			'fetch_fields'           => $request['fetch_fields'],
+			'fetch_field_data'       => $request['fetch_field_data'],
+			'fetch_visibility_level' => $request['fetch_visibility_level'],
+			'exclude_groups'         => $request['exclude_groups'],
+			'exclude_fields'         => $request['exclude_fields'],
+			'update_meta_cache'      => $request['update_meta_cache'],
+		);
+
+		if ( empty( $request['member_type'] ) ) {
+			$args['member_type'] = null;
+		}
+
+		if ( empty( $request['exclude_fields'] ) ) {
+			$args['exclude_fields'] = false;
+		}
+
+		if ( empty( $request['exclude_groups'] ) ) {
+			$args['exclude_groups'] = false;
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_xprofile_field_groups_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$field_groups = bp_xprofile_get_groups( $args );
+
+		$retval = array();
+		foreach ( (array) $field_groups as $item ) {
+			$retval[] = $this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $item, $request )
+			);
+		}
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a list of field groups are fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $field_groups Fetched field groups.
+		 * @param WP_REST_Response $response     The response data.
+		 * @param WP_REST_Request  $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_field_groups_get_items', $field_groups, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to XProfile field groups items.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		/**
+		 * Filter the XProfile fields groups `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool            $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_get_items_permissions_check', true, $request );
+	}
+
+	/**
+	 * Retrieve single XProfile field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$field_group = $this->get_xprofile_field_group_object( $request );
+
+		if ( empty( $field_group->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field_group, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a field group is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Group $field_group Fetched field group.
+		 * @param WP_REST_Response  $response    The response data.
+		 * @param WP_REST_Request   $request     The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_field_groups_get_item', $field_group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to get information about a specific field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool|WP_Error
+	 */
+	public function get_item_permissions_check( $request ) {
+		$retval = $this->get_items_permissions_check( $request );
+
+		/**
+		 * Filter the XProfile fields groups `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_get_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Create a XProfile field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$args = array(
+			'name'        => $request['name'],
+			'description' => $request['description'],
+			'can_delete'  => $request['can_delete'],
+		);
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_xprofile_field_groups_create_item_query_args', $args, $request );
+
+		if ( empty( $args['name'] ) ) {
+			return new WP_Error(
+				'bp_rest_required_param_missing',
+				__( 'Required param missing.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$group_id = xprofile_insert_field_group( $args );
+
+		if ( ! $group_id ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_create_xprofile_field_group',
+				__( 'Cannot create new XProfile field group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		$field_group = $this->get_xprofile_field_group_object( $group_id );
+
+		// Create Additional fields.
+		$fields_update = $this->update_additional_fields_for_object( $field_group, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field_group, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a XProfile field group is created via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Group $field_group Created field group object.
+		 * @param WP_REST_Response  $response    The response data.
+		 * @param WP_REST_Request   $request     The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_field_groups_create_item', $field_group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to create a XProfile field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! ( is_user_logged_in() && bp_current_user_can( 'bp_moderate' ) ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to view this XProfile field group.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the XProfile fields groups `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update a XProfile field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$field_group = $this->get_xprofile_field_group_object( $request );
+
+		if ( empty( $field_group->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$args = array(
+			'field_group_id' => $field_group->id,
+			'name'           => is_null( $request['name'] ) ? $field_group->name : $request['name'],
+			'description'    => is_null( $request['description'] ) ? $field_group->description : $request['description'],
+			'can_delete'     => is_null( $request['can_delete'] ) ? (bool) $field_group->can_delete : $request['can_delete'],
+		);
+
+		$group_id = xprofile_insert_field_group( $args );
+
+		if ( ! $group_id ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_xprofile_field_group',
+				__( 'Cannot update XProfile field group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Update the position if the group_order exists.
+		if ( is_numeric( $request['group_order'] ) ) {
+			xprofile_update_field_group_position( $group_id, $request['group_order'] );
+		}
+
+		$field_group = $this->get_xprofile_field_group_object( $group_id );
+
+		// Update Additional fields.
+		$fields_update = $this->update_additional_fields_for_object( $field_group, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field_group, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a XProfile field group is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Group $field_group Updated field group object.
+		 * @param WP_REST_Response  $response    The response data.
+		 * @param WP_REST_Request   $request     The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_field_groups_update_item', $field_group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to create a XProfile field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = $this->create_item_permissions_check( $request );
+
+		/**
+		 * Filter the XProfile fields groups `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete a XProfile field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the field group before it's deleted.
+		$field_group = $this->get_xprofile_field_group_object( $request );
+
+		if ( empty( $field_group->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field group ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( ! xprofile_delete_field_group( $field_group->id ) ) {
+			return new WP_Error(
+				'bp_rest_xprofile_field_group_cannot_delete',
+				__( 'Could not delete XProfile field group.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$previous = $this->prepare_item_for_response( $field_group, $request );
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after a field group is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Group $field_group Deleted field group.
+		 * @param WP_REST_Response  $response    The response data.
+		 * @param WP_REST_Request   $request     The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_field_groups_delete_item', $field_group, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a field group.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = $this->create_item_permissions_check( $request );
+
+		/**
+		 * Filter the XProfile fields groups `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares single XProfile field group data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_XProfile_Group $group   XProfile field group data.
+	 * @param WP_REST_Request   $request Full data about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $group, $request ) {
+		$data = array(
+			'id'          => (int) $group->id,
+			'name'        => $group->name,
+			'description' => array(
+				'raw'      => $group->description,
+				'rendered' => apply_filters( 'bp_get_the_profile_field_description', $group->description ),
+			),
+			'group_order' => (int) $group->group_order,
+			'can_delete'  => (bool) $group->can_delete,
+		);
+
+		// If the fields have been requested, we populate them.
+		if ( $request['fetch_fields'] ) {
+			$data['fields'] = array();
+
+			foreach ( $group->fields as $field ) {
+				$data['fields'][] = $this->fields_endpoint->assemble_response_data( $field, $request );
+			}
+		}
+
+		$context  = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data     = $this->add_additional_fields_to_object( $data, $request );
+		$data     = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $group ) );
+
+		/**
+		 * Filter the XProfile field group returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  Request used to generate the response.
+		 * @param BP_XProfile_Group  $group    XProfile field group.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_prepare_value', $response, $request, $group );
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_XProfile_Group $group XProfile field group.
+	 * @return array
+	 */
+	protected function prepare_links( $group ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $base . $group->id ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $links The prepared links of the REST response.
+		 * @param BP_XProfile_Group $group XProfile field group object.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_prepare_links', $links, $group );
+	}
+
+	/**
+	 * Get XProfile field group object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return BP_XProfile_Group|string XProfile field group object.
+	 */
+	public function get_xprofile_field_group_object( $request ) {
+		$profile_group_id = is_numeric( $request ) ? $request : (int) $request['id'];
+
+		$args = array(
+			'profile_group_id'       => $profile_group_id,
+			'user_id'                => $request['user_id'],
+			'member_type'            => $request['member_type'],
+			'hide_empty_fields'      => $request['hide_empty_fields'],
+			'fetch_fields'           => $request['fetch_fields'],
+			'fetch_field_data'       => $request['fetch_field_data'],
+			'fetch_visibility_level' => $request['fetch_visibility_level'],
+			'exclude_fields'         => $request['exclude_fields'],
+			'update_meta_cache'      => $request['update_meta_cache'],
+		);
+
+		if ( empty( $request['member_type'] ) ) {
+			$args['member_type'] = null;
+		}
+
+		if ( empty( $request['exclude_fields'] ) ) {
+			$args['exclude_fields'] = false;
+		}
+
+		$field_group = current( bp_xprofile_get_groups( $args ) );
+
+		if ( empty( $field_group->id ) ) {
+			return '';
+		}
+
+		return $field_group;
+	}
+
+	/**
+	 * Get the XProfile field group schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_xprofile_group',
+			'type'       => 'object',
+			'properties' => array(
+				'id'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the group of profile fields.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'name'        => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The name of group of profile fields.', 'buddypress' ),
+					'type'        => 'string',
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'description' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The description of the group of profile fields.', 'buddypress' ),
+					'type'        => 'object',
+					'arg_options' => array(
+						'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+						'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Content for the group of profile fields, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML content for the group of profile fields, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'group_order' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The order of the group of profile fields.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'can_delete'  => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the group of profile fields can be deleted or not.', 'buddypress' ),
+					'type'        => 'boolean',
+				),
+				'fields'      => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The fields associated with this group of profile fields.', 'buddypress' ),
+					'type'        => 'array',
+					'readonly'    => true,
+				),
+			),
+		);
+
+		/**
+		 * Filters the xprofile field group schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_group_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for XProfile field groups.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		$params['profile_group_id'] = array(
+			'description'       => __( 'ID of the field group that have fields.', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['hide_empty_groups'] = array(
+			'description'       => __( 'Whether to hide profile groups of fields that do not have any profile fields or not.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Required if you want to load a specific user\'s data.', 'buddypress' ),
+			'default'           => bp_loggedin_user_id(),
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['member_type'] = array(
+			'description'       => __( 'Limit fields by those restricted to a given member type, or array of member types. If `$user_id` is provided, the value of `$member_type` will be overridden by the member types of the provided user. The special value of \'any\' will return only those fields that are unrestricted by member type - i.e., those applicable to any type.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'string' ),
+			'sanitize_callback' => 'bp_rest_sanitize_member_types',
+			'validate_callback' => 'bp_rest_validate_member_types',
+		);
+
+		$params['hide_empty_fields'] = array(
+			'description'       => __( 'Whether to hide profile groups of fields that do not have any profile fields or not.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['fetch_fields'] = array(
+			'description'       => __( 'Whether to fetch the fields for each group.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['fetch_field_data'] = array(
+			'description'       => __( 'Whether to fetch data for each field. Requires a $user_id.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['fetch_visibility_level'] = array(
+			'description'       => __( 'Whether to fetch the visibility level for each field.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude_groups'] = array(
+			'description'       => __( 'Ensure result set excludes specific profile field groups.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude_fields'] = array(
+			'description'       => __( 'Ensure result set excludes specific profile fields.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'string' ),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['update_meta_cache'] = array(
+			'description'       => __( 'Whether to pre-fetch xprofilemeta for all retrieved groups, fields, and data.', 'buddypress' ),
+			'default'           => true,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_groups_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php
new file mode 100644
index 000000000..f2f6146ce
--- /dev/null
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php
@@ -0,0 +1,1179 @@
+<?php
+/**
+ * BP REST: BP_REST_XProfile_Fields_Endpoint class
+ *
+ * @package BuddyPress
+ * @since 5.0.0
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * XProfile Fields endpoints.
+ *
+ * Use /xprofile/fields
+ * Use /xprofile/fields/{id}
+ *
+ * @since 5.0.0
+ */
+class BP_REST_XProfile_Fields_Endpoint extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 5.0.0
+	 */
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = buddypress()->profile->id . '/fields';
+	}
+
+	/**
+	 * Register the component routes.
+	 *
+	 * @since 5.0.0
+	 */
+	public function register_routes() {
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base,
+			array(
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_items' ),
+					'permission_callback' => array( $this, 'get_items_permissions_check' ),
+					'args'                => $this->get_collection_params(),
+				),
+				array(
+					'methods'             => WP_REST_Server::CREATABLE,
+					'callback'            => array( $this, 'create_item' ),
+					'permission_callback' => array( $this, 'create_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+
+		register_rest_route(
+			$this->namespace,
+			'/' . $this->rest_base . '/(?P<id>[\d]+)',
+			array(
+				'args'   => array(
+					'id' => array(
+						'description' => __( 'A unique numeric ID for the profile field.', 'buddypress' ),
+						'type'        => 'integer',
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::READABLE,
+					'callback'            => array( $this, 'get_item' ),
+					'permission_callback' => array( $this, 'get_item_permissions_check' ),
+					'args'                => array(
+						'user_id' => array(
+							'description'       => __( 'Required if you want to load a specific user\'s data.', 'buddypress' ),
+							'default'           => 0,
+							'type'              => 'integer',
+							'sanitize_callback' => 'absint',
+							'validate_callback' => 'rest_validate_request_arg',
+						),
+					),
+				),
+				array(
+					'methods'             => WP_REST_Server::EDITABLE,
+					'callback'            => array( $this, 'update_item' ),
+					'permission_callback' => array( $this, 'update_item_permissions_check' ),
+					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				),
+				array(
+					'methods'             => WP_REST_Server::DELETABLE,
+					'callback'            => array( $this, 'delete_item' ),
+					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+					'args'                => array(
+						'delete_data' => array(
+							'description'       => __( 'Required if you want to delete users data for the field.', 'buddypress' ),
+							'default'           => false,
+							'type'              => 'boolean',
+							'sanitize_callback' => 'rest_sanitize_boolean',
+							'validate_callback' => 'rest_validate_request_arg',
+						),
+					),
+				),
+				'schema' => array( $this, 'get_item_schema' ),
+			)
+		);
+	}
+
+	/**
+	 * Edit some properties for the CREATABLE & EDITABLE methods.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param string $method Optional. HTTP method of the request.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+		$args = WP_REST_Controller::get_endpoint_args_for_item_schema( $method );
+		$key  = 'get_item';
+
+		if ( WP_REST_Server::CREATABLE === $method || WP_REST_Server::EDITABLE === $method ) {
+			$args['description']['type'] = 'string';
+			unset( $args['description']['properties'] );
+
+			// Add specific properties to the edit context.
+			$edit_args = array();
+
+			// The visibility level chose by the administrator is the default visibility.
+			$edit_args['default_visibility']                = $args['visibility_level'];
+			$edit_args['default_visibility']['description'] = __( 'Default visibility for the profile field.', 'buddypress' );
+
+			// Unset the visibility level which can be the user defined visibility.
+			unset( $args['visibility_level'] );
+
+			// Add specific properties to the edit context.
+			$edit_args['allow_custom_visibility'] = array(
+				'context'     => array( 'edit' ),
+				'description' => __( 'Whether to allow members to set the visibility for the profile field data or not.', 'buddypress' ),
+				'default'     => 'allowed',
+				'type'        => 'string',
+				'enum'        => array( 'allowed', 'disabled' ),
+			);
+
+			$edit_args['do_autolink'] = array(
+				'context'     => array( 'edit' ),
+				'description' => __( 'Autolink status for this profile field', 'buddypress' ),
+				'default'     => 'off',
+				'type'        => 'string',
+				'enum'        => array( 'on', 'off' ),
+			);
+
+			// Set required params for the CREATABLE method.
+			if ( WP_REST_Server::CREATABLE === $method ) {
+				$key                          = 'create_item';
+				$args['group_id']['required'] = true;
+				$args['type']['required']     = true;
+				$args['name']['required']     = true;
+			} elseif ( WP_REST_Server::EDITABLE === $method ) {
+				$key                                        = 'update_item';
+				$args['can_delete']['default']              = true;
+				$args['order_by']['default']                = 'asc';
+				$edit_args['default_visibility']['default'] = 'public';
+			}
+
+			// Merge arguments.
+			$args = array_merge( $args, $edit_args );
+		} elseif ( WP_REST_Server::DELETABLE === $method ) {
+			$key = 'delete_item';
+		}
+
+		/**
+		 * Filters the method query arguments.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array  $args   Query arguments.
+		 * @param string $method HTTP method of the request.
+		 */
+		return apply_filters( "bp_rest_xprofile_fields_{$key}_query_arguments", $args, $method );
+	}
+
+	/**
+	 * Retrieve XProfile fields.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response
+	 */
+	public function get_items( $request ) {
+		$args = array(
+			'profile_group_id'       => $request['profile_group_id'],
+			'user_id'                => $request['user_id'],
+			'member_type'            => $request['member_type'],
+			'hide_empty_groups'      => $request['hide_empty_groups'],
+			'hide_empty_fields'      => $request['hide_empty_fields'],
+			'fetch_field_data'       => $request['fetch_field_data'],
+			'fetch_visibility_level' => $request['fetch_visibility_level'],
+			'exclude_groups'         => $request['exclude_groups'],
+			'exclude_fields'         => $request['exclude_fields'],
+			'update_meta_cache'      => $request['update_meta_cache'],
+			'fetch_fields'           => true,
+		);
+
+		if ( empty( $request['member_type'] ) ) {
+			$args['member_type'] = false;
+		}
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_xprofile_fields_get_items_query_args', $args, $request );
+
+		// Actually, query it.
+		$field_groups = bp_xprofile_get_groups( $args );
+
+		$retval = array();
+		foreach ( $field_groups as $group ) {
+			foreach ( $group->fields as $field ) {
+				$retval[] = $this->prepare_response_for_collection(
+					$this->prepare_item_for_response( $field, $request )
+				);
+			}
+		}
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a list of field are fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $field_groups  Fetched field groups.
+		 * @param WP_REST_Response $response     The response data.
+		 * @param WP_REST_Request  $request      The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_fields_get_items', $field_groups, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to XProfile fields.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		/**
+		 * Filter the XProfile fields `get_items` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool            $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_get_items_permissions_check', true, $request );
+	}
+
+	/**
+	 * Retrieve single XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function get_item( $request ) {
+		$profile_field_id = (int) $request['id'];
+
+		$field = $this->get_xprofile_field_object( $profile_field_id );
+
+		if ( empty( $profile_field_id ) || empty( $field->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( ! empty( $request['user_id'] ) ) {
+			$field->data = new stdClass();
+
+			// Ensure that the requester is allowed to see this field.
+			$hidden_user_fields = bp_xprofile_get_hidden_fields_for_user( $request['user_id'] );
+
+			if ( in_array( $profile_field_id, $hidden_user_fields, true ) ) {
+				$field->data->value = __( 'Value suppressed.', 'buddypress' );
+			} else {
+				// Get the raw value for the field.
+				$field->data->value = BP_XProfile_ProfileData::get_value_byid( $profile_field_id, $request['user_id'] );
+			}
+
+			// Set 'fetch_field_data' to true so that the data is included in the response.
+			$request['fetch_field_data'] = true;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after XProfile field is fetched via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Field $field    Fetched field object.
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_fields_get_item', $field, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to get information about a specific XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool
+	 */
+	public function get_item_permissions_check( $request ) {
+
+		/**
+		 * Filter the XProfile fields `get_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool            $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_get_item_permissions_check', true, $request );
+	}
+
+	/**
+	 * Set additional field properties.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param integer         $field_id The profile field object ID.
+	 * @param WP_REST_Request $request  The request sent to the API.
+	 */
+	public function set_additional_field_properties( $field_id = 0, WP_REST_Request $request ) {
+		if ( ! $field_id ) {
+			return;
+		}
+
+		// Get the edit schema.
+		$schema = $this->get_endpoint_args_for_item_schema( $request->get_method() );
+
+		// Define default visibility property.
+		if ( isset( $schema['default_visibility'] ) ) {
+			$default_visibility = $schema['default_visibility']['default'];
+
+			if ( $request['default_visibility'] ) {
+				$default_visibility = $request['default_visibility'];
+			}
+
+			// Save the default visibility.
+			bp_xprofile_update_field_meta( $field_id, 'default_visibility', $default_visibility );
+		}
+
+		// Define allow custom visibility property.
+		if ( isset( $schema['allow_custom_visibility'] ) ) {
+			$allow_custom_visibility = $schema['allow_custom_visibility']['default'];
+
+			if ( $request['allow_custom_visibility'] ) {
+				$allow_custom_visibility = $request['allow_custom_visibility'];
+			}
+
+			// Save the default visibility.
+			bp_xprofile_update_field_meta( $field_id, 'allow_custom_visibility', $allow_custom_visibility );
+		}
+
+		// Define autolink property.
+		if ( isset( $schema['do_autolink'] ) ) {
+			$do_autolink = $schema['do_autolink']['default'];
+
+			if ( $request['do_autolink'] ) {
+				$do_autolink = $request['do_autolink'];
+			}
+
+			// Save the default visibility.
+			bp_xprofile_update_field_meta( $field_id, 'do_autolink', $do_autolink );
+		}
+	}
+
+	/**
+	 * Create a XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function create_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$args = array(
+			'field_group_id'    => $request['group_id'],
+			'parent_id'         => $request['parent_id'],
+			'type'              => $request['type'],
+			'name'              => $request['name'],
+			'description'       => $request['description'],
+			'is_required'       => $request['required'],
+			'can_delete'        => $request['can_delete'],
+			'order_by'          => $request['order_by'],
+			'is_default_option' => $request['is_default_option'],
+			'option_order'      => $request['option_order'],
+			'field_order'       => $request['field_order'],
+		);
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_xprofile_fields_create_item_query_args', $args, $request );
+
+		$field_id = xprofile_insert_field( $args );
+		if ( ! $field_id ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_create_xprofile_field',
+				__( 'Cannot create new XProfile field.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Define visibility and autolink field properties.
+		$this->set_additional_field_properties( $field_id, $request );
+
+		$field = $this->get_xprofile_field_object( $field_id );
+
+		// Create Additional fields.
+		$fields_update = $this->update_additional_fields_for_object( $field, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a XProfile field is created via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Field $field     Created field object.
+		 * @param WP_REST_Response  $response  The response data.
+		 * @param WP_REST_Request   $request   The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_fields_create_item', $field, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to create a XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function create_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() || ! bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to create a XProfile field.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the XProfile fields `create_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_create_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Update a XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function update_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		$field = $this->get_xprofile_field_object( $request );
+
+		if ( empty( $field->id ) ) {
+			return new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid profile field ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		$args = array(
+			'field_id'          => $field->id,
+			'field_group_id'    => is_null( $request['group_id'] ) ? $field->group_id : $request['group_id'],
+			'parent_id'         => is_null( $request['parent_id'] ) ? $field->parent_id : $request['parent_id'],
+			'type'              => is_null( $request['type'] ) ? $field->type : $request['type'],
+			'name'              => is_null( $request['name'] ) ? $field->name : $request['name'],
+			'description'       => is_null( $request['description'] ) ? $field->description : $request['description'],
+			'is_required'       => is_null( $request['required'] ) ? $field->is_required : $request['required'],
+			'can_delete'        => $request['can_delete'], // Set to true by default.
+			'order_by'          => is_null( $request['order_by'] ) ? $field->order_by : $request['order_by'],
+			'is_default_option' => is_null( $request['is_default_option'] ) ? $field->is_default_option : $request['is_default_option'],
+			'option_order'      => is_null( $request['option_order'] ) ? $field->option_order : $request['option_order'],
+			'field_order'       => is_null( $request['field_order'] ) ? $field->field_order : $request['field_order'],
+		);
+
+		/**
+		 * Filter the query arguments for the request.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		$args = apply_filters( 'bp_rest_xprofile_fields_update_item_query_args', $args, $request );
+
+		// Specific check to make sure the Full Name xprofile field will remain undeletable.
+		if ( bp_xprofile_fullname_field_id() === $field->id ) {
+			$args['can_delete'] = false;
+		}
+
+		$field_id = xprofile_insert_field( $args );
+		if ( ! $field_id ) {
+			return new WP_Error(
+				'bp_rest_user_cannot_update_xprofile_field',
+				__( 'Cannot update XProfile field.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Define visibility and autolink field properties.
+		$this->set_additional_field_properties( $field_id, $request );
+
+		$field = $this->get_xprofile_field_object( $field_id );
+
+		// Update Additional fields.
+		$fields_update = $this->update_additional_fields_for_object( $field, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$retval = array(
+			$this->prepare_response_for_collection(
+				$this->prepare_item_for_response( $field, $request )
+			),
+		);
+
+		$response = rest_ensure_response( $retval );
+
+		/**
+		 * Fires after a XProfile field is updated via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Field  $field      Updated field object.
+		 * @param WP_REST_Response  $response  The response data.
+		 * @param WP_REST_Request   $request   The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_fields_update_item', $field, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to update a XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function update_item_permissions_check( $request ) {
+		$retval = $this->delete_item_permissions_check( $request );
+
+		/**
+		 * Filter the XProfile fields `update_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_update_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Delete a XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error
+	 */
+	public function delete_item( $request ) {
+		// Setting context.
+		$request->set_param( 'context', 'edit' );
+
+		// Get the field before it's deleted.
+		$field    = new BP_XProfile_Field( (int) $request['id'] );
+		$previous = $this->prepare_item_for_response( $field, $request );
+
+		if ( ! $field->delete( $request['delete_data'] ) ) {
+			return new WP_Error(
+				'bp_rest_xprofile_field_cannot_delete',
+				__( 'Could not delete XProfile field.', 'buddypress' ),
+				array(
+					'status' => 500,
+				)
+			);
+		}
+
+		// Build the response.
+		$response = new WP_REST_Response();
+		$response->set_data(
+			array(
+				'deleted'  => true,
+				'previous' => $previous->get_data(),
+			)
+		);
+
+		/**
+		 * Fires after a XProfile field is deleted via the REST API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param BP_XProfile_Field $field     Deleted field object.
+		 * @param WP_REST_Response  $response  The response data.
+		 * @param WP_REST_Request   $request   The request sent to the API.
+		 */
+		do_action( 'bp_rest_xprofile_fields_delete_item', $field, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Check if a given request has access to delete a XProfile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$retval = true;
+
+		if ( ! is_user_logged_in() ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to delete this field.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		$field = $this->get_xprofile_field_object( $request );
+
+		if ( true === $retval && empty( $field->id ) ) {
+			$retval = new WP_Error(
+				'bp_rest_invalid_id',
+				__( 'Invalid field ID.', 'buddypress' ),
+				array(
+					'status' => 404,
+				)
+			);
+		}
+
+		if ( true === $retval && ! bp_current_user_can( 'bp_moderate' ) ) {
+			$retval = new WP_Error(
+				'bp_rest_authorization_required',
+				__( 'Sorry, you are not allowed to delete this field.', 'buddypress' ),
+				array(
+					'status' => rest_authorization_required_code(),
+				)
+			);
+		}
+
+		/**
+		 * Filter the XProfile fields `delete_item` permissions check.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool|WP_Error   $retval  Returned value.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_delete_item_permissions_check', $retval, $request );
+	}
+
+	/**
+	 * Prepares single XProfile field data to return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_XProfile_Field $field   XProfile field object.
+	 * @param WP_REST_Request   $request Full data about the request.
+	 * @return WP_REST_Response
+	 */
+	public function prepare_item_for_response( $field, $request ) {
+		$data = $this->assemble_response_data( $field, $request );
+
+		$response = rest_ensure_response( $data );
+		$response->add_links( $this->prepare_links( $field ) );
+
+		/**
+		 * Filter the XProfile field returned from the API.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param WP_REST_Response  $response The response data.
+		 * @param WP_REST_Request   $request  Request used to generate the response.
+		 * @param BP_XProfile_Field  $field     XProfile field object.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_prepare_value', $response, $request, $field );
+	}
+
+	/**
+	 * Assembles single XProfile field data for return as an object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_XProfile_Field $field   XProfile field object.
+	 * @param WP_REST_Request   $request Full data about the request.
+	 * @return array
+	 */
+	public function assemble_response_data( $field, $request ) {
+		$data = array(
+			'id'                => (int) $field->id,
+			'group_id'          => (int) $field->group_id,
+			'parent_id'         => (int) $field->parent_id,
+			'type'              => $field->type,
+			'name'              => $field->name,
+			'description'       => array(
+				'raw'      => $field->description,
+				'rendered' => apply_filters( 'bp_get_the_profile_field_description', $field->description ),
+			),
+			'is_required'       => (bool) $field->is_required,
+			'can_delete'        => (bool) $field->can_delete,
+			'field_order'       => (int) $field->field_order,
+			'option_order'      => (int) $field->option_order,
+			'order_by'          => $field->order_by,
+			'is_default_option' => (bool) $field->is_default_option,
+		);
+
+		if ( ! empty( $request['fetch_visibility_level'] ) ) {
+			$data['visibility_level'] = $field->visibility_level;
+		}
+
+		if ( ! empty( $request['fetch_field_data'] ) ) {
+			if ( isset( $field->data->id ) ) {
+				$data['data']['id'] = $field->data->id;
+			}
+
+			$data['data']['value'] = array(
+				'raw'          => $field->data->value,
+				'unserialized' => $this->get_profile_field_unserialized_value( $field->data->value ),
+				'rendered'     => $this->get_profile_field_rendered_value( $field->data->value, $field ),
+			);
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		return $data;
+	}
+
+	/**
+	 * Prepare links for the request.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param BP_XProfile_Field $field XProfile field object.
+	 * @return array
+	 */
+	protected function prepare_links( $field ) {
+		$base = sprintf( '/%s/%s/', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( $base . $field->id ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+		);
+
+		/**
+		 * Filter links prepared for the REST response.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param array            $links The prepared links of the REST response.
+		 * @param BP_XProfile_Field $field  XProfile field object.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_prepare_links', $links, $field );
+	}
+
+	/**
+	 * Get XProfile field object.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return BP_XProfile_Field|string XProfile field object|string.
+	 */
+	public function get_xprofile_field_object( $request ) {
+		$field_id = is_numeric( $request ) ? $request : (int) $request['id'];
+		$field    = xprofile_get_field( $field_id );
+
+		if ( empty( $field ) ) {
+			return '';
+		}
+
+		return $field;
+	}
+
+	/**
+	 * Retrieve the rendered value of a profile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  string                    $value         The raw value of the field.
+	 * @param  integer|BP_XProfile_Field $profile_field The ID or the full object for the field.
+	 * @return string                                   The field value for the display context.
+	 */
+	public function get_profile_field_rendered_value( $value = '', $profile_field = null ) {
+		if ( ! $value ) {
+			return '';
+		}
+
+		$profile_field = xprofile_get_field( $profile_field );
+
+		if ( ! isset( $profile_field->id ) ) {
+			return '';
+		}
+
+		// Unserialize the BuddyPress way.
+		$value = bp_unserialize_profile_field( $value );
+
+		global $field;
+		$reset_global = $field;
+
+		// Set the $field global as the `xprofile_filter_link_profile_data` filter needs it.
+		$field = $profile_field;
+
+		/**
+		 * Apply Filters to sanitize XProfile field value.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param string $value Value for the profile field.
+		 * @param string $type  Type for the profile field.
+		 * @param int    $id    ID for the profile field.
+		 */
+		$value = apply_filters( 'bp_get_the_profile_field_value', $value, $field->type, $field->id );
+
+		// Reset the global before returning the value.
+		$field = $reset_global;
+
+		return $value;
+	}
+
+	/**
+	 * Retrieve the unserialized value of a profile field.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param  string $value The raw value of the field.
+	 * @return array         The unserialized field value.
+	 */
+	public function get_profile_field_unserialized_value( $value = '' ) {
+		if ( ! $value ) {
+			return array();
+		}
+
+		$unserialized_value = maybe_unserialize( $value );
+		if ( ! is_array( $unserialized_value ) ) {
+			$unserialized_value = (array) $unserialized_value;
+		}
+
+		return $unserialized_value;
+	}
+
+	/**
+	 * Get the XProfile field schema, conforming to JSON Schema.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/draft-04/schema#',
+			'title'      => 'bp_xprofile_field',
+			'type'       => 'object',
+			'properties' => array(
+				'id'                => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'A unique numeric ID for the profile field.', 'buddypress' ),
+					'readonly'    => true,
+					'type'        => 'integer',
+				),
+				'group_id'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the group the field is part of.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'parent_id'         => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The ID of the parent field.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'type'              => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The type for the profile field.', 'buddypress' ),
+					'type'        => 'string',
+					'enum'        => buddypress()->profile->field_types,
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'name'              => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The name of the profile field.', 'buddypress' ),
+					'type'        => 'string',
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'description'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The description of the profile field.', 'buddypress' ),
+					'type'        => 'object',
+					'arg_options' => array(
+						'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
+						'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
+					),
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'Content for the profile field, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+						),
+						'rendered' => array(
+							'description' => __( 'HTML content for the profile field, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'is_required'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the profile field must have a value.', 'buddypress' ),
+					'type'        => 'boolean',
+				),
+				'can_delete'        => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the profile field can be deleted or not.', 'buddypress' ),
+					'default'     => true,
+					'type'        => 'boolean',
+				),
+				'field_order'       => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The order of the profile field into the group of fields.', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'option_order'      => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The order of the option into the profile field list of options', 'buddypress' ),
+					'type'        => 'integer',
+				),
+				'order_by'          => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The way profile field\'s options are ordered.', 'buddypress' ),
+					'default'     => 'asc',
+					'type'        => 'string',
+					'enum'        => array( 'asc', 'desc' ),
+				),
+				'is_default_option' => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Whether the option is the default one for the profile field.', 'buddypress' ),
+					'type'        => 'boolean',
+				),
+				'visibility_level'  => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'Who may see the saved value for this profile field.', 'buddypress' ),
+					'default'     => 'public',
+					'type'        => 'string',
+					'enum'        => array_keys( bp_xprofile_get_visibility_levels() ),
+				),
+				'data'              => array(
+					'context'     => array( 'view', 'edit' ),
+					'description' => __( 'The saved value for this profile field.', 'buddypress' ),
+					'type'        => 'object',
+					'readonly'    => true,
+					'properties'  => array(
+						'raw'          => array(
+							'description' => __( 'Value for the field, as it exists in the database.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+						),
+						'unserialized' => array(
+							'description' => __( 'Unserialized value for the field, regular string will be casted as array.', 'buddypress' ),
+							'type'        => 'array',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+						'rendered'     => array(
+							'description' => __( 'HTML value for the field, transformed for display.', 'buddypress' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+			),
+		);
+
+		/**
+		 * Filters the xprofile field schema.
+		 *
+		 * @param array $schema The endpoint schema.
+		 */
+		return apply_filters( 'bp_rest_xprofile_field_schema', $this->add_additional_fields_schema( $schema ) );
+	}
+
+	/**
+	 * Get the query params for the XProfile fields.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @return array
+	 */
+	public function get_collection_params() {
+		$params                       = parent::get_collection_params();
+		$params['context']['default'] = 'view';
+
+		$params['profile_group_id'] = array(
+			'description'       => __( 'ID of the profile group of fields that have profile fields', 'buddypress' ),
+			'default'           => 0,
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['hide_empty_groups'] = array(
+			'description'       => __( 'Whether to hide profile groups of fields that do not have any profile fields or not.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['user_id'] = array(
+			'description'       => __( 'Required if you want to load a specific user\'s data.', 'buddypress' ),
+			'default'           => bp_loggedin_user_id(),
+			'type'              => 'integer',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['member_type'] = array(
+			'description'       => __( 'Limit fields by those restricted to a given member type, or array of member types. If `$user_id` is provided, the value of `$member_type` will be overridden by the member types of the provided user. The special value of \'any\' will return only those fields that are unrestricted by member type - i.e., those applicable to any type.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'string' ),
+			'sanitize_callback' => 'bp_rest_sanitize_member_types',
+			'validate_callback' => 'bp_rest_validate_member_types',
+		);
+
+		$params['hide_empty_fields'] = array(
+			'description'       => __( 'Whether to hide profile fields where the user has not provided data or not.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['fetch_field_data'] = array(
+			'description'       => __( 'Whether to fetch data for each field. Requires a $user_id.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['fetch_visibility_level'] = array(
+			'description'       => __( 'Whether to fetch the visibility level for each field.', 'buddypress' ),
+			'default'           => false,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude_groups'] = array(
+			'description'       => __( 'Ensure result set excludes specific profile field groups.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'integer' ),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['exclude_fields'] = array(
+			'description'       => __( 'Ensure result set excludes specific profile fields.', 'buddypress' ),
+			'default'           => array(),
+			'type'              => 'array',
+			'items'             => array( 'type' => 'string' ),
+			'sanitize_callback' => 'bp_rest_sanitize_string_list',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$params['update_meta_cache'] = array(
+			'description'       => __( 'Whether to pre-fetch xprofilemeta for all retrieved groups, fields, and data.', 'buddypress' ),
+			'default'           => true,
+			'type'              => 'boolean',
+			'sanitize_callback' => 'rest_sanitize_boolean',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		/**
+		 * Filters the collection query params.
+		 *
+		 * @param array $params Query params.
+		 */
+		return apply_filters( 'bp_rest_xprofile_fields_collection_params', $params );
+	}
+}
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php
index 8b619afc9..49ae02dd5 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-component.php
@@ -489,4 +489,21 @@ class BP_XProfile_Component extends BP_Component {
 
 		return $wp_admin_nav;
 	}
+
+	/**
+	 * Init the BP REST API.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $controllers Optional. See BP_Component::rest_api_init() for
+	 *                           description.
+	 */
+	public function rest_api_init( $controllers = array() ) {
+		parent::rest_api_init( array(
+			'BP_REST_XProfile_Fields_Endpoint',
+			'BP_REST_XProfile_Field_Groups_Endpoint',
+			'BP_REST_XProfile_Data_Endpoint',
+			'BP_REST_Attachments_Member_Avatar_Endpoint',
+		) );
+	}
 }
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php
index aa158873e..8f81db54d 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-data-template.php
@@ -123,9 +123,10 @@ class BP_XProfile_Data_Template {
 	 * }
 	 */
 	public function __construct( $args = '' ) {
+		$function_args = func_get_args();
 
 		// Backward compatibility with old method of passing arguments.
-		if ( ! is_array( $args ) || func_num_args() > 1 ) {
+		if ( ! is_array( $args ) || count( $function_args ) > 1 ) {
 			_deprecated_argument( __METHOD__, '2.3.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
 
 			$old_args_keys = array(
@@ -141,7 +142,7 @@ class BP_XProfile_Data_Template {
 				9 => 'update_meta_cache'
 			);
 
-			$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
+			$args = bp_core_parse_args_array( $old_args_keys, $function_args );
 		}
 
 		$r = wp_parse_args( $args, array(
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php
index afc10747d..e96f69fdb 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-field.php
@@ -977,6 +977,8 @@ class BP_XProfile_Field {
 		$sql        = $wpdb->prepare( "UPDATE {$table_name} SET field_order = %d, group_id = %d WHERE id = %d", $position, $field_group_id, $field_id );
 		$parent     = $wpdb->query( $sql );
 
+		$retval = false;
+
 		// Update $field_id with new $position and $field_group_id.
 		if ( ! empty( $parent ) && ! is_wp_error( $parent ) ) {
 
@@ -984,13 +986,15 @@ class BP_XProfile_Field {
 			$sql = $wpdb->prepare( "UPDATE {$table_name} SET group_id = %d WHERE parent_id = %d", $field_group_id, $field_id );
 			$wpdb->query( $sql );
 
-			// Invalidate profile field cache.
+			// Invalidate profile field and group query cache.
 			wp_cache_delete( $field_id, 'bp_xprofile_fields' );
 
-			return $parent;
+			$retval = $parent;
 		}
 
-		return false;
+		bp_core_reset_incrementor( 'bp_xprofile_groups' );
+
+		return $retval;
 	}
 
 	/**
diff --git a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php
index 27a4d8c1a..c32786578 100644
--- a/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php
+++ b/wp-content/plugins/buddypress/bp-xprofile/classes/class-bp-xprofile-group.php
@@ -288,24 +288,9 @@ class BP_XProfile_Group {
 			'data'  => array(),
 		);
 
-		// WHERE.
-		if ( ! empty( $r['profile_group_id'] ) ) {
-			$where_sql = $wpdb->prepare( 'WHERE g.id = %d', $r['profile_group_id'] );
-		} elseif ( $r['exclude_groups'] ) {
-			$exclude   = join( ',', wp_parse_id_list( $r['exclude_groups'] ) );
-			$where_sql = "WHERE g.id NOT IN ({$exclude})";
-		} else {
-			$where_sql = '';
-		}
-
 		$bp = buddypress();
 
-		// Include or exclude empty groups.
-		if ( ! empty( $r['hide_empty_groups'] ) ) {
-			$group_ids = $wpdb->get_col( "SELECT DISTINCT g.id FROM {$bp->profile->table_name_groups} g INNER JOIN {$bp->profile->table_name_fields} f ON g.id = f.group_id {$where_sql} ORDER BY g.group_order ASC" );
-		} else {
-			$group_ids = $wpdb->get_col( "SELECT DISTINCT g.id FROM {$bp->profile->table_name_groups} g {$where_sql} ORDER BY g.group_order ASC" );
-		}
+		$group_ids = self::get_group_ids( $r );
 
 		// Get all group data.
 		$groups = self::get_group_data( $group_ids );
@@ -326,52 +311,7 @@ class BP_XProfile_Group {
 			return $groups;
 		}
 
-		// Setup IN query from group IDs.
-		$group_ids_in = implode( ',', (array) $group_ids );
-
-		// Support arrays and comma-separated strings.
-		$exclude_fields_cs = wp_parse_id_list( $r['exclude_fields'] );
-
-		// Visibility - Handled here so as not to be overridden by sloppy use of the
-		// exclude_fields parameter. See bp_xprofile_get_hidden_fields_for_user().
-		$hidden_user_fields = bp_xprofile_get_hidden_fields_for_user( $r['user_id'] );
-		$exclude_fields_cs  = array_merge( $exclude_fields_cs, $hidden_user_fields );
-		$exclude_fields_cs  = implode( ',', $exclude_fields_cs );
-
-		// Set up NOT IN query for excluded field IDs.
-		if ( ! empty( $exclude_fields_cs ) ) {
-			$exclude_fields_sql = "AND id NOT IN ({$exclude_fields_cs})";
-		} else {
-			$exclude_fields_sql = '';
-		}
-
-		// Set up IN query for included field IDs.
-		$include_field_ids = array();
-
-		// Member-type restrictions.
-		if ( bp_get_member_types() ) {
-			if ( $r['user_id'] || false !== $r['member_type'] ) {
-				$member_types = $r['member_type'];
-				if ( $r['user_id'] ) {
-					$member_types = bp_get_member_type( $r['user_id'], false );
-					if ( empty( $member_types ) ) {
-						$member_types = array( 'null' );
-					}
-				}
-
-				$member_types_fields = BP_XProfile_Field::get_fields_for_member_type( $member_types );
-				$include_field_ids += array_keys( $member_types_fields );
-			}
-		}
-
-		$in_sql = '';
-		if ( ! empty( $include_field_ids ) ) {
-			$include_field_ids_cs = implode( ',', array_map( 'intval', $include_field_ids ) );
-			$in_sql = " AND id IN ({$include_field_ids_cs}) ";
-		}
-
-		// Fetch the fields.
-		$field_ids = $wpdb->get_col( "SELECT id FROM {$bp->profile->table_name_fields} WHERE group_id IN ( {$group_ids_in} ) AND parent_id = 0 {$exclude_fields_sql} {$in_sql} ORDER BY field_order" );
+		$field_ids = self::get_group_field_ids( $group_ids, $r );
 
 		foreach( $groups as $group ) {
 			$group->fields = array();
@@ -498,6 +438,152 @@ class BP_XProfile_Group {
 		return $groups;
 	}
 
+	/**
+	 * Gets group IDs, based on passed parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $args {
+	 *    Array of optional arguments:
+	 *    @type int   $profile_group_id  Limit results to a single profile group. Default false.
+	 *    @type array $exclude_groups    Comma-separated list or array of group IDs to exclude. Default false.
+	 *    @type bool  $hide_empty_groups True to hide groups that don't have any fields. Default: false.
+	 * }
+	 * @return array
+	 */
+	public static function get_group_ids( $args = array() ) {
+		global $wpdb;
+
+		$r = array_merge(
+			array(
+				'profile_group_id'  => false,
+				'exclude_groups'    => false,
+				'hide_empty_groups' => false,
+			),
+			$args
+		);
+
+		$bp = buddypress();
+
+		if ( ! empty( $r['profile_group_id'] ) ) {
+			$where_sql = $wpdb->prepare( 'WHERE g.id = %d', $r['profile_group_id'] );
+		} elseif ( $r['exclude_groups'] ) {
+			$exclude   = join( ',', wp_parse_id_list( $r['exclude_groups'] ) );
+			$where_sql = "WHERE g.id NOT IN ({$exclude})";
+		} else {
+			$where_sql = '';
+		}
+
+		// Include or exclude empty groups.
+		if ( ! empty( $r['hide_empty_groups'] ) ) {
+			$group_ids_sql = "SELECT DISTINCT g.id FROM {$bp->profile->table_name_groups} g INNER JOIN {$bp->profile->table_name_fields} f ON g.id = f.group_id {$where_sql} ORDER BY g.group_order ASC";
+		} else {
+			$group_ids_sql = "SELECT DISTINCT g.id FROM {$bp->profile->table_name_groups} g {$where_sql} ORDER BY g.group_order ASC";
+		}
+
+		$cached = bp_core_get_incremented_cache( $group_ids_sql, 'bp_xprofile_groups' );
+		if ( false === $cached ) {
+			$group_ids = $wpdb->get_col( $group_ids_sql );
+			bp_core_set_incremented_cache( $group_ids_sql, 'bp_xprofile_groups', $group_ids );
+		} else {
+			$group_ids = $cached;
+		}
+
+		return array_map( 'intval', $group_ids );
+	}
+
+	/**
+	 * Gets group field IDs, based on passed parameters.
+	 *
+	 * @since 5.0.0
+	 *
+	 * @param array $group_ids Array of group IDs.
+	 * @param array $args {
+	 *    Array of optional arguments:
+	 *      @type array        $exclude_fields    Comma-separated list or array of field IDs to exclude.
+	 *                                            Default empty.
+	 *      @type int          $user_id           Limit results to fields associated with a given user's
+	 *                                            member type. Default empty.
+	 *      @type array|string $member_type       Limit fields by those restricted to a given member type, or array of
+	 *                                            member types. If `$user_id` is provided, the value of `$member_type`
+	 *                                            is honored.
+	 * }
+	 * @return array
+	 */
+	public static function get_group_field_ids( $group_ids, $args = array() ) {
+		global $wpdb;
+
+		$r = array_merge(
+			array(
+				'exclude_fields' => false,
+				'user_id' => false,
+				'member_type' => false,
+			),
+			$args
+		);
+
+		$bp = buddypress();
+
+		// Setup IN query from group IDs.
+		if ( empty( $group_ids ) ) {
+			$group_ids = array( 0 );
+		}
+		$group_ids_in = implode( ',', array_map( 'intval', $group_ids ) );
+
+		// Support arrays and comma-separated strings.
+		$exclude_fields_cs = wp_parse_id_list( $r['exclude_fields'] );
+
+		// Visibility - Handled here so as not to be overridden by sloppy use of the
+		// exclude_fields parameter. See bp_xprofile_get_hidden_fields_for_user().
+		$hidden_user_fields = bp_xprofile_get_hidden_fields_for_user( $r['user_id'] );
+		$exclude_fields_cs  = array_merge( $exclude_fields_cs, $hidden_user_fields );
+		$exclude_fields_cs  = implode( ',', $exclude_fields_cs );
+
+		// Set up NOT IN query for excluded field IDs.
+		if ( ! empty( $exclude_fields_cs ) ) {
+			$exclude_fields_sql = "AND id NOT IN ({$exclude_fields_cs})";
+		} else {
+			$exclude_fields_sql = '';
+		}
+
+		// Set up IN query for included field IDs.
+		$include_field_ids = array();
+
+		// Member-type restrictions.
+		if ( bp_get_member_types() ) {
+			if ( $r['user_id'] || false !== $r['member_type'] ) {
+				$member_types = $r['member_type'];
+				if ( $r['user_id'] ) {
+					$member_types = bp_get_member_type( $r['user_id'], false );
+					if ( empty( $member_types ) ) {
+						$member_types = array( 'null' );
+					}
+				}
+
+				$member_types_fields = BP_XProfile_Field::get_fields_for_member_type( $member_types );
+				$include_field_ids += array_keys( $member_types_fields );
+			}
+		}
+
+		$in_sql = '';
+		if ( ! empty( $include_field_ids ) ) {
+			$include_field_ids_cs = implode( ',', array_map( 'intval', $include_field_ids ) );
+			$in_sql = " AND id IN ({$include_field_ids_cs}) ";
+		}
+
+		$field_ids_sql = "SELECT id FROM {$bp->profile->table_name_fields} WHERE group_id IN ( {$group_ids_in} ) AND parent_id = 0 {$exclude_fields_sql} {$in_sql} ORDER BY field_order";
+
+		$cached = bp_core_get_incremented_cache( $field_ids_sql, 'bp_xprofile_groups' );
+		if ( false === $cached ) {
+			$field_ids = $wpdb->get_col( $field_ids_sql );
+			bp_core_set_incremented_cache( $field_ids_sql, 'bp_xprofile_groups', $field_ids );
+		} else {
+			$field_ids = $cached;
+		}
+
+		return array_map( 'intval', $field_ids );
+	}
+
 	/**
 	 * Get data about a set of groups, based on IDs.
 	 *
@@ -613,8 +699,9 @@ class BP_XProfile_Group {
 			return false;
 		}
 
-		// Purge profile field group cache.
+		// Purge profile field group and group query caches.
 		wp_cache_delete( 'all', 'bp_xprofile_groups' );
+		bp_core_reset_incrementor( 'bp_xprofile_groups' );
 
 		$bp = buddypress();
 
diff --git a/wp-content/plugins/buddypress/buddypress.pot b/wp-content/plugins/buddypress/buddypress.pot
index b6f2b2875..ae1cb22b8 100644
--- a/wp-content/plugins/buddypress/buddypress.pot
+++ b/wp-content/plugins/buddypress/buddypress.pot
@@ -1,14 +1,14 @@
-# Copyright (C) 2019 The BuddyPress Community
+# Copyright (C) 2020 The BuddyPress Community
 # This file is distributed under the GPLv2 or later (license.txt).
 msgid ""
 msgstr ""
-"Project-Id-Version: BuddyPress 4.4.0\n"
+"Project-Id-Version: BuddyPress 5.1.2\n"
 "Report-Msgid-Bugs-To: https://buddypress.trac.wordpress.org\n"
-"POT-Creation-Date: 2019-07-23 05:07:35+00:00\n"
+"POT-Creation-Date: 2020-01-03 21:04:46+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
 "Last-Translator: JOHN JAMES JACOBY <jjj@buddypress.org>\n"
 "Language-Team: ENGLISH <jjj@buddypress.org>\n"
 "X-Generator: grunt-wp-i18n 1.0.3\n"
@@ -98,11 +98,11 @@ msgstr ""
 msgid "Please enter some content to post."
 msgstr ""
 
-#: bp-activity/actions/post.php:90
+#: bp-activity/actions/post.php:93
 msgid "Update Posted!"
 msgstr ""
 
-#: bp-activity/actions/post.php:92
+#: bp-activity/actions/post.php:95
 msgid "There was an error when posting your update. Please try again."
 msgstr ""
 
@@ -313,7 +313,7 @@ msgid "Go back and try again."
 msgstr ""
 
 #: bp-activity/bp-activity-admin.php:746
-#: bp-activity/classes/class-bp-activity-list-table.php:690
+#: bp-activity/classes/class-bp-activity-list-table.php:696
 msgid "View Activity"
 msgstr ""
 
@@ -322,7 +322,7 @@ msgid "Approved"
 msgstr ""
 
 #: bp-activity/bp-activity-admin.php:755
-#: bp-activity/classes/class-bp-activity-list-table.php:606
+#: bp-activity/classes/class-bp-activity-list-table.php:612
 #: bp-activity/classes/class-bp-akismet.php:205
 #: bp-activity/classes/class-bp-akismet.php:234
 #: bp-core/admin/bp-core-admin-functions.php:1015
@@ -341,14 +341,14 @@ msgid "Submitted on: %s"
 msgstr ""
 
 #: bp-activity/bp-activity-admin.php:764
-#: bp-activity/classes/class-bp-activity-list-table.php:599
-#: bp-groups/classes/class-bp-groups-list-table.php:527
+#: bp-activity/classes/class-bp-activity-list-table.php:605
+#: bp-groups/classes/class-bp-groups-list-table.php:535
 msgid "Edit"
 msgstr ""
 
 #: bp-activity/bp-activity-admin.php:777
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1202
-#: bp-xprofile/classes/class-bp-xprofile-group.php:741
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1206
+#: bp-xprofile/classes/class-bp-xprofile-group.php:828
 msgid "Update"
 msgstr ""
 
@@ -368,99 +368,100 @@ msgstr ""
 msgid "Author ID"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:889
+#: bp-activity/bp-activity-admin.php:902
 msgid ""
 "This activity item has a type (%s) that is not registered using "
 "bp_activity_set_action(), so no label is available."
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:897
+#: bp-activity/bp-activity-admin.php:910
 #. translators: accessibility text
 msgid "Select activity type"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:918
+#: bp-activity/bp-activity-admin.php:931
 msgid "Primary Item ID"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:922
+#: bp-activity/bp-activity-admin.php:935
 msgid "Secondary Item ID"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:925
+#: bp-activity/bp-activity-admin.php:938
 msgid ""
 "These identify the object that created this activity. For example, the "
 "fields could reference a pair of site and comment IDs."
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:964
+#: bp-activity/bp-activity-admin.php:977
 msgid "%s activity item has been permanently deleted."
 msgid_plural "%s activity items have been permanently deleted."
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-activity/bp-activity-admin.php:968
+#: bp-activity/bp-activity-admin.php:981
 msgid "An error occurred when trying to update activity ID #%s."
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:971
+#: bp-activity/bp-activity-admin.php:984
 msgid "Errors occurred when trying to update these activity items:"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:977
+#: bp-activity/bp-activity-admin.php:990
 #. Translators: This is a bulleted list of item IDs.
 msgid "#%s"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:986
+#: bp-activity/bp-activity-admin.php:999
 msgid "%s activity item has been successfully spammed."
 msgid_plural "%s activity items have been successfully spammed."
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-activity/bp-activity-admin.php:989
+#: bp-activity/bp-activity-admin.php:1002
 msgid "%s activity item has been successfully unspammed."
 msgid_plural "%s activity items have been successfully unspammed."
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-activity/bp-activity-admin.php:992
+#: bp-activity/bp-activity-admin.php:1005
 msgid "The activity item has been updated successfully."
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1010
+#: bp-activity/bp-activity-admin.php:1023
 msgid "Activity related to ID #%s"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1016 bp-groups/bp-groups-admin.php:776
+#: bp-activity/bp-activity-admin.php:1029 bp-groups/bp-groups-admin.php:776
 #: bp-groups/bp-groups-admin.php:791
 #: bp-members/classes/class-bp-members-admin.php:1964
 #: bp-members/classes/class-bp-members-admin.php:1985
 msgid "Search results for &#8220;%s&#8221;"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1029
+#: bp-activity/bp-activity-admin.php:1042
 msgid "Search all Activity"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1040
+#: bp-activity/bp-activity-admin.php:1053
 msgid "Reply to Activity"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1043
-#: bp-activity/bp-activity-admin.php:1049
-#: bp-activity/classes/class-bp-activity-list-table.php:593
+#: bp-activity/bp-activity-admin.php:1056
+#: bp-activity/bp-activity-admin.php:1062
+#: bp-activity/classes/class-bp-activity-list-table.php:599
 #: bp-templates/bp-legacy/buddypress/activity/comment.php:40
 #. translators: accessibility text
 msgid "Reply"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1048 bp-groups/bp-groups-admin.php:722
+#: bp-activity/bp-activity-admin.php:1061 bp-groups/bp-groups-admin.php:722
 #: bp-members/classes/class-bp-members-admin.php:2188
 #: bp-templates/bp-legacy/buddypress/activity/entry.php:130
-#: bp-templates/bp-nouveau/includes/activity/functions.php:167
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1355
-#: bp-xprofile/classes/class-bp-xprofile-group.php:833
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:51
+#: bp-templates/bp-nouveau/includes/activity/functions.php:170
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1359
+#: bp-xprofile/classes/class-bp-xprofile-group.php:920
 msgid "Cancel"
 msgstr ""
 
@@ -498,7 +499,7 @@ msgstr ""
 msgid "Load Newest"
 msgstr ""
 
-#: bp-activity/bp-activity-filters.php:827
+#: bp-activity/bp-activity-filters.php:828
 msgid "BuddyPress Activity Data"
 msgstr ""
 
@@ -560,7 +561,7 @@ msgstr ""
 #: bp-activity/bp-activity-notifications.php:389
 #: bp-activity/classes/class-bp-activity-oembed-extension.php:138
 #: bp-activity/classes/class-bp-activity-theme-compat.php:161
-#: bp-core/classes/class-bp-admin.php:574
+#: bp-core/classes/class-bp-admin.php:578
 msgid "Activity"
 msgstr ""
 
@@ -601,24 +602,28 @@ msgid "%1$s replied to one of your activity comments"
 msgstr ""
 
 #: bp-activity/bp-activity-notifications.php:390
-#: bp-blogs/bp-blogs-template.php:1114 bp-friends/bp-friends-functions.php:947
+#: bp-blogs/bp-blogs-template.php:1114
+#: bp-core/admin/bp-core-admin-tools.php:527
+#: bp-friends/bp-friends-functions.php:947
 #: bp-friends/bp-friends-notifications.php:252
-#: bp-groups/bp-groups-notifications.php:1085
+#: bp-groups/bp-groups-notifications.php:1123
 #: bp-messages/bp-messages-notifications.php:264
 #: bp-settings/bp-settings-functions.php:135
 #: bp-templates/bp-legacy/buddypress/members/register.php:318
-#: bp-templates/bp-nouveau/includes/functions.php:1199
+#: bp-templates/bp-nouveau/includes/functions.php:1185
 msgid "Yes"
 msgstr ""
 
 #: bp-activity/bp-activity-notifications.php:391
-#: bp-blogs/bp-blogs-template.php:1118 bp-friends/bp-friends-functions.php:947
+#: bp-blogs/bp-blogs-template.php:1118
+#: bp-core/admin/bp-core-admin-tools.php:529
+#: bp-friends/bp-friends-functions.php:947
 #: bp-friends/bp-friends-notifications.php:253
-#: bp-groups/bp-groups-notifications.php:1086
+#: bp-groups/bp-groups-notifications.php:1124
 #: bp-messages/bp-messages-notifications.php:265
 #: bp-settings/bp-settings-functions.php:136
 #: bp-templates/bp-legacy/buddypress/members/register.php:319
-#: bp-templates/bp-nouveau/includes/functions.php:1207
+#: bp-templates/bp-nouveau/includes/functions.php:1193
 msgid "No"
 msgstr ""
 
@@ -630,11 +635,11 @@ msgstr ""
 #: bp-activity/bp-activity-notifications.php:416
 #: bp-friends/bp-friends-notifications.php:263
 #: bp-friends/bp-friends-notifications.php:275
-#: bp-groups/bp-groups-notifications.php:1096
-#: bp-groups/bp-groups-notifications.php:1108
-#: bp-groups/bp-groups-notifications.php:1120
-#: bp-groups/bp-groups-notifications.php:1132
-#: bp-groups/bp-groups-notifications.php:1144
+#: bp-groups/bp-groups-notifications.php:1134
+#: bp-groups/bp-groups-notifications.php:1146
+#: bp-groups/bp-groups-notifications.php:1158
+#: bp-groups/bp-groups-notifications.php:1170
+#: bp-groups/bp-groups-notifications.php:1182
 #: bp-messages/bp-messages-notifications.php:275
 #. translators: accessibility text
 msgid "Yes, send email"
@@ -644,11 +649,11 @@ msgstr ""
 #: bp-activity/bp-activity-notifications.php:420
 #: bp-friends/bp-friends-notifications.php:267
 #: bp-friends/bp-friends-notifications.php:279
-#: bp-groups/bp-groups-notifications.php:1100
-#: bp-groups/bp-groups-notifications.php:1112
-#: bp-groups/bp-groups-notifications.php:1124
-#: bp-groups/bp-groups-notifications.php:1136
-#: bp-groups/bp-groups-notifications.php:1148
+#: bp-groups/bp-groups-notifications.php:1138
+#: bp-groups/bp-groups-notifications.php:1150
+#: bp-groups/bp-groups-notifications.php:1162
+#: bp-groups/bp-groups-notifications.php:1174
+#: bp-groups/bp-groups-notifications.php:1186
 #: bp-messages/bp-messages-notifications.php:279
 #. translators: accessibility text
 msgid "No, do not send email"
@@ -671,16 +676,16 @@ msgstr[1] ""
 #: bp-activity/bp-activity-template.php:1037
 #: bp-activity/bp-activity-template.php:1206
 #: bp-activity/bp-activity-template.php:1217
-#: bp-activity/classes/class-bp-activity-component.php:413
+#: bp-activity/classes/class-bp-activity-component.php:434
 #: bp-blogs/classes/class-bp-blogs-component.php:332
 #: bp-core/deprecated/2.1.php:459
 #: bp-friends/classes/class-bp-friends-component.php:299
-#: bp-groups/bp-groups-template.php:1631 bp-groups/bp-groups-template.php:1663
-#: bp-groups/bp-groups-template.php:2273 bp-groups/bp-groups-template.php:2289
-#: bp-groups/bp-groups-template.php:2349 bp-groups/bp-groups-template.php:2365
-#: bp-groups/bp-groups-template.php:3754 bp-groups/bp-groups-template.php:3793
-#: bp-groups/bp-groups-template.php:3834 bp-groups/bp-groups-template.php:5415
-#: bp-groups/classes/class-bp-groups-component.php:868
+#: bp-groups/bp-groups-template.php:1687 bp-groups/bp-groups-template.php:1719
+#: bp-groups/bp-groups-template.php:2329 bp-groups/bp-groups-template.php:2345
+#: bp-groups/bp-groups-template.php:2405 bp-groups/bp-groups-template.php:2421
+#: bp-groups/bp-groups-template.php:3810 bp-groups/bp-groups-template.php:3849
+#: bp-groups/bp-groups-template.php:3890 bp-groups/bp-groups-template.php:5471
+#: bp-groups/classes/class-bp-groups-component.php:869
 #: bp-members/bp-members-template.php:804
 #: bp-members/bp-members-template.php:1558
 #: bp-members/bp-members-template.php:1613
@@ -701,7 +706,7 @@ msgstr ""
 
 #: bp-activity/bp-activity-template.php:1185
 #: bp-groups/bp-groups-template.php:790
-#: bp-groups/classes/class-bp-groups-list-table.php:554
+#: bp-groups/classes/class-bp-groups-list-table.php:562
 msgid "Group logo of %s"
 msgstr ""
 
@@ -721,9 +726,9 @@ msgstr ""
 
 #: bp-activity/bp-activity-template.php:2642
 #: bp-core/bp-core-attachments.php:777
-#: bp-groups/classes/class-bp-groups-component.php:745
+#: bp-groups/classes/class-bp-groups-component.php:746
 #: bp-groups/classes/class-bp-groups-list-table.php:371
-#: bp-groups/classes/class-bp-groups-list-table.php:530
+#: bp-groups/classes/class-bp-groups-list-table.php:538
 #: bp-members/classes/class-bp-members-list-table.php:171
 #: bp-members/classes/class-bp-members-list-table.php:319
 #: bp-members/classes/class-bp-members-ms-list-table.php:158
@@ -742,7 +747,7 @@ msgstr ""
 #: bp-core/admin/bp-core-admin-functions.php:1021
 #: bp-core/admin/bp-core-admin-slugs.php:148
 #: bp-core/admin/bp-core-admin-slugs.php:219
-#: bp-groups/classes/class-bp-groups-list-table.php:533
+#: bp-groups/classes/class-bp-groups-list-table.php:541
 #: bp-members/bp-members-template.php:1048
 #: bp-templates/bp-legacy/buddypress-functions.php:315
 msgid "View"
@@ -764,17 +769,19 @@ msgstr ""
 msgid "Site Wide Activity RSS Feed"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-activity.php:365
-#: bp-activity/classes/class-bp-activity-template.php:144
-#: bp-groups/bp-groups-functions.php:245 bp-groups/bp-groups-functions.php:695
-#: bp-groups/classes/class-bp-groups-group-members-template.php:99
-#: bp-groups/classes/class-bp-groups-group.php:1051
-#: bp-groups/classes/class-bp-groups-invite-template.php:84
-#: bp-groups/classes/class-bp-groups-membership-requests-template.php:91
-#: bp-groups/classes/class-bp-groups-template.php:134
-#: bp-messages/classes/class-bp-messages-box-template.php:113
-#: bp-messages/classes/class-bp-messages-thread.php:450
-#: bp-xprofile/classes/class-bp-xprofile-data-template.php:129
+#: bp-activity/classes/class-bp-activity-activity.php:367
+#: bp-activity/classes/class-bp-activity-template.php:146
+#: bp-groups/bp-groups-functions.php:246 bp-groups/bp-groups-functions.php:697
+#: bp-groups/bp-groups-functions.php:1674
+#: bp-groups/bp-groups-functions.php:2011
+#: bp-groups/classes/class-bp-groups-group-members-template.php:100
+#: bp-groups/classes/class-bp-groups-group.php:1058
+#: bp-groups/classes/class-bp-groups-invite-template.php:85
+#: bp-groups/classes/class-bp-groups-membership-requests-template.php:92
+#: bp-groups/classes/class-bp-groups-template.php:135
+#: bp-messages/classes/class-bp-messages-box-template.php:114
+#: bp-messages/classes/class-bp-messages-thread.php:452
+#: bp-xprofile/classes/class-bp-xprofile-data-template.php:130
 msgid ""
 "Arguments passed to %1$s should be in an associative array. See the inline "
 "documentation at %2$s for more details."
@@ -785,7 +792,7 @@ msgstr ""
 msgid "Activity Streams"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:185
+#: bp-activity/classes/class-bp-activity-component.php:206
 msgid "Search Activity..."
 msgstr ""
 
@@ -820,60 +827,60 @@ msgstr ""
 msgid "Spam <span class=\"count\">(%s)</span>"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:343
+#: bp-activity/classes/class-bp-activity-list-table.php:351
 msgid "Mark as Spam"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:344
-#: bp-activity/classes/class-bp-activity-list-table.php:604
+#: bp-activity/classes/class-bp-activity-list-table.php:352
+#: bp-activity/classes/class-bp-activity-list-table.php:610
 #: bp-core/admin/bp-core-admin-functions.php:1009
 msgid "Not Spam"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:345
-#: bp-activity/classes/class-bp-activity-list-table.php:609
+#: bp-activity/classes/class-bp-activity-list-table.php:353
+#: bp-activity/classes/class-bp-activity-list-table.php:615
 #: bp-groups/bp-groups-admin.php:721
 msgid "Delete Permanently"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:425
+#: bp-activity/classes/class-bp-activity-list-table.php:426
 #. translators: accessibility text
 msgid "Filter by activity type"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:428
+#: bp-activity/classes/class-bp-activity-list-table.php:429
 msgid "View all actions"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:471
+#: bp-activity/classes/class-bp-activity-list-table.php:477
 msgid "Filter"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:519
+#: bp-activity/classes/class-bp-activity-list-table.php:525
 #. translators: accessibility text
 msgid "Select activity item %1$d"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:550
+#: bp-activity/classes/class-bp-activity-list-table.php:556
 msgid "Unregistered action - %s"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:595
+#: bp-activity/classes/class-bp-activity-list-table.php:601
 msgid "Replies disabled"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:609
-#: bp-core/bp-core-cssjs.php:165
-#: bp-templates/bp-nouveau/buddypress-functions.php:420
+#: bp-activity/classes/class-bp-activity-list-table.php:615
+#: bp-core/bp-core-cssjs.php:181
+#: bp-templates/bp-nouveau/buddypress-functions.php:427
 msgid "Are you sure?"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:626
+#: bp-activity/classes/class-bp-activity-list-table.php:632
 #. translators: %s: activity date and time
 msgid "Submitted on %s"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:632
+#: bp-activity/classes/class-bp-activity-list-table.php:638
 #: bp-core/bp-core-template.php:418
 #. translators: 1: activity date, 2: activity time
 msgid "%1$s at %2$s"
@@ -929,6 +936,211 @@ msgstr ""
 msgid "Activity History"
 msgstr ""
 
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:71
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:109
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1272
+msgid "A unique numeric ID for the activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:317
+msgid "Sorry, you cannot view the activities."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:349
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:503
+msgid "Please, enter some content."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:398
+msgid "Cannot create new activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:456
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:470
+msgid "Sorry, you are not allowed to create activities."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:515
+msgid "Cannot update existing activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:565
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:587
+msgid "Sorry, you are not allowed to update this activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:577
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:690
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:752
+msgid "Invalid activity ID."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:634
+msgid "Could not delete the activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:678
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:700
+msgid "Sorry, you are not allowed to delete this activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:764
+msgid "Sorry, you cannot remove the activity from your favorites."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:770
+msgid "Sorry, you cannot add the activity to your favorites."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:827
+msgid "Sorry, you are not allowed to update favorites."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1278
+msgid "The ID of some other object primarily associated with this one."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1283
+msgid "The ID of some other object also associated with this one."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1288
+msgid "The ID for the author of the activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1293
+msgid "The permalink to this activity on the site."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1299
+msgid "The active BuddyPress component the activity relates to."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1308
+msgid "The activity type of the activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1317
+msgid "The description of the activity's type (eg: Username posted an update)"
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1326
+msgid "Allowed HTML content for the activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1334
+msgid "Content for the activity, as it exists in the database."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1339
+msgid "HTML content for the activity, transformed for display."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1348
+msgid "The date the activity was published, in the site's timezone."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1354
+msgid "Whether the activity has been marked as spam or not."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1364
+msgid "A list of objects children of the activity object."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1370
+msgid "Total number of comments of the activity object."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1376
+msgid "Whether the activity object should be sitewide hidden or not."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1381
+msgid "Whether the activity object has been favorited by the current user."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1395
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1083
+#: bp-members/classes/class-bp-rest-members-endpoint.php:694
+#. translators: Full image size for the member Avatar
+#. translators: Full image size for the group Avatar
+#. translators: Full image size for the member Avatar
+msgid "Avatar URL with full image size (%1$d x %2$d pixels)."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1403
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1091
+#: bp-members/classes/class-bp-rest-members-endpoint.php:702
+#. translators: Thumb imaze size for the member Avatar
+#. translators: Thumb imaze size for the group Avatar
+#. translators: Thumb imaze size for the member Avatar
+msgid "Avatar URL with thumb image size (%1$d x %2$d pixels)."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1410
+msgid "Avatar URLs for the author of the activity."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1437
+#: bp-members/classes/class-bp-rest-members-endpoint.php:779
+msgid "Ensure result set excludes specific IDs."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1446
+#: bp-members/classes/class-bp-rest-members-endpoint.php:770
+msgid "Ensure result set includes specific IDs."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1455
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1135
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:834
+msgid "Order sort attribute ascending or descending."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1464
+msgid "Limit result set to items published after a given ISO8601 compliant date."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1471
+msgid "Limit result set to items created by a specific user (ID)."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1479
+#: bp-core/classes/class-bp-rest-components-endpoint.php:513
+msgid "Limit result set to items with a specific status."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1488
+msgid "Limit result set to items created by a specific group."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1496
+msgid "Limit result set to items created by a specific site."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1504
+msgid "Limit result set to items with a specific prime association ID."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1512
+msgid "Limit result set to items with a specific secondary association ID."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1520
+msgid "Limit result set to items with a specific active BuddyPress component."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1528
+msgid "Limit result set to items with a specific activity type."
+msgstr ""
+
+#: bp-activity/classes/class-bp-rest-activity-endpoint.php:1536
+msgid ""
+"No comments by default, stream for within stream display, threaded for "
+"below each activity item."
+msgstr ""
+
 #: bp-activity/screens/permalink.php:149
 msgid "You do not have access to this activity."
 msgstr ""
@@ -1002,8 +1214,8 @@ msgstr ""
 #: bp-blogs/bp-blogs-template.php:624
 #: bp-core/classes/class-bp-core-user.php:172
 #: bp-groups/bp-groups-widgets.php:72
-#: bp-groups/classes/class-bp-groups-invite-template.php:240
-#: bp-groups/classes/class-bp-groups-widget.php:147
+#: bp-groups/classes/class-bp-groups-invite-template.php:241
+#: bp-groups/classes/class-bp-groups-widget.php:152
 #: bp-members/bp-members-template.php:963
 #: bp-members/bp-members-template.php:1695
 #: bp-templates/bp-legacy/buddypress/groups/groups-loop.php:67
@@ -1115,7 +1327,7 @@ msgid "%s's Recent Comments"
 msgstr ""
 
 #: bp-blogs/bp-blogs-template.php:1315 bp-core/deprecated/1.5.php:413
-#: bp-groups/bp-groups-template.php:5074
+#: bp-groups/bp-groups-template.php:5130
 #: bp-members/bp-members-template.php:1273
 #: bp-messages/bp-messages-template.php:859
 #: bp-templates/bp-legacy/buddypress/common/search/dir-search-form.php:15
@@ -1164,26 +1376,26 @@ msgid "A list of recently published posts from across your network."
 msgstr ""
 
 #: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:43
-#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:148
+#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:152
 msgid "Recent Networkwide Posts"
 msgstr ""
 
-#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:112
+#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:113
 msgid "Sorry, there were no posts found. Why not write one?"
 msgstr ""
 
-#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:160
+#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:166
 msgid "Link widget title to Blogs directory"
 msgstr ""
 
-#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:161
+#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:167
 msgid "Max posts to show:"
 msgstr ""
 
 #: bp-core/admin/bp-core-admin-components.php:24
 #: bp-core/admin/bp-core-admin-settings.php:267
 #: bp-core/admin/bp-core-admin-slugs.php:24
-#: bp-core/classes/class-bp-admin.php:741
+#: bp-core/classes/class-bp-admin.php:830
 msgid "BuddyPress Settings"
 msgstr ""
 
@@ -1327,7 +1539,7 @@ msgstr ""
 #: bp-core/admin/bp-core-admin-slugs.php:91
 #: bp-members/classes/class-bp-members-list-table.php:315
 #: bp-members/classes/class-bp-members-ms-list-table.php:308
-#: bp-messages/bp-messages-template.php:1276
+#: bp-messages/bp-messages-template.php:1298
 #: bp-templates/bp-legacy/buddypress/members/activate.php:60
 msgid "Activate"
 msgstr ""
@@ -1368,7 +1580,7 @@ msgid "Pages"
 msgstr ""
 
 #: bp-core/admin/bp-core-admin-functions.php:434
-#: bp-core/classes/class-bp-admin.php:743
+#: bp-core/classes/class-bp-admin.php:832
 msgid "Credits"
 msgstr ""
 
@@ -1708,6 +1920,18 @@ msgid ""
 "the \"Repopulate site tracking records\" option."
 msgstr ""
 
+#: bp-core/admin/bp-core-admin-tools.php:551
+msgid "Version"
+msgstr ""
+
+#: bp-core/admin/bp-core-admin-tools.php:555
+msgid "Active components"
+msgstr ""
+
+#: bp-core/admin/bp-core-admin-tools.php:559
+msgid "Active template pack"
+msgstr ""
+
 #: bp-core/bp-core-admin.php:25
 msgid "Maintenance Release"
 msgid_plural "Maintenance Releases"
@@ -1820,7 +2044,7 @@ msgstr ""
 msgid "HTTP error."
 msgstr ""
 
-#: bp-core/bp-core-attachments.php:661 bp-core/bp-core-avatars.php:1059
+#: bp-core/bp-core-attachments.php:661 bp-core/bp-core-avatars.php:1073
 msgid "Upload failed."
 msgstr ""
 
@@ -1920,7 +2144,7 @@ msgid ""
 "wide, and %2$spx tall."
 msgstr ""
 
-#: bp-core/bp-core-attachments.php:1344 bp-core/bp-core-avatars.php:902
+#: bp-core/bp-core-attachments.php:1344 bp-core/bp-core-avatars.php:916
 msgid "Upload Failed! Error was: %s"
 msgstr ""
 
@@ -1932,11 +2156,12 @@ msgstr ""
 msgid "Profile Photo"
 msgstr ""
 
-#: bp-core/bp-core-avatars.php:930
+#: bp-core/bp-core-avatars.php:944 bp-core/classes/trait-attachments.php:176
+#. translators: %s is replaced with error message.
 msgid "Upload failed! Error was: %s"
 msgstr ""
 
-#: bp-core/bp-core-avatars.php:936
+#: bp-core/bp-core-avatars.php:950
 msgid ""
 "You have selected an image that is smaller than recommended. For best "
 "results, upload a picture larger than %d x %d pixels."
@@ -2014,7 +2239,7 @@ msgstr ""
 msgid "[User Set]"
 msgstr ""
 
-#: bp-core/bp-core-filters.php:581
+#: bp-core/bp-core-filters.php:603
 msgid "Page %s"
 msgstr ""
 
@@ -2158,7 +2383,7 @@ msgid "Log In"
 msgstr ""
 
 #: bp-core/bp-core-functions.php:3288
-#: bp-templates/bp-nouveau/includes/template-tags.php:2482
+#: bp-templates/bp-nouveau/includes/template-tags.php:2512
 msgid "Privacy Policy"
 msgstr ""
 
@@ -2407,6 +2632,7 @@ msgstr ""
 msgid ""
 "<a href=\"{{{inviter.url}}}\">{{inviter.name}}</a> has invited you to join "
 "the group: &quot;{{group.name}}&quot;.\n"
+"{{invite.message}}\n"
 "<a href=\"{{{invites.url}}}\">Go here to accept your invitation</a> or <a "
 "href=\"{{{group.url}}}\">visit the group</a> to learn more."
 msgstr ""
@@ -2451,8 +2677,10 @@ msgstr ""
 #. translators: do not remove {} brackets or translate its contents.
 msgid ""
 "<a href=\"{{{profile.url}}}\">{{requesting-user.name}}</a> wants to join "
-"the group &quot;{{group.name}}&quot;. As you are an administrator of this "
-"group, you must either accept or reject the membership request.\n"
+"the group &quot;{{group.name}}&quot;.\n"
+" {{request.message}}\n"
+" As you are an administrator of this group, you must either accept or "
+"reject the membership request.\n"
 "\n"
 "<a href=\"{{{group-requests.url}}}\">Go here to manage this</a> and all "
 "other pending requests."
@@ -2704,6 +2932,20 @@ msgstr ""
 msgid "You have posted too many links"
 msgstr ""
 
+#: bp-core/bp-core-rest-api.php:93
+msgid "An unexpected error occured. Please try again."
+msgstr ""
+
+#: bp-core/bp-core-rest-api.php:244
+#. translators: %1$s and %2$s is replaced with the registered type(s)
+msgid "The member type you provided, %1$s, is not one of %2$s."
+msgstr ""
+
+#: bp-core/bp-core-rest-api.php:293
+#. translators: %1$s and %2$s is replaced with the registered types
+msgid "The group type you provided, %1$s, is not one of %2$s."
+msgstr ""
+
 #: bp-core/bp-core-template.php:146
 msgid "%s Directory"
 msgstr ""
@@ -2712,10 +2954,10 @@ msgstr ""
 #: bp-core/classes/class-bp-core-user.php:169
 #: bp-core/classes/class-bp-core-user.php:170
 #: bp-core/classes/class-bp-core-user.php:171
-#: bp-groups/classes/class-bp-groups-invite-template.php:234
 #: bp-groups/classes/class-bp-groups-invite-template.php:235
 #: bp-groups/classes/class-bp-groups-invite-template.php:236
-#: bp-templates/bp-nouveau/includes/activity/functions.php:90
+#: bp-groups/classes/class-bp-groups-invite-template.php:237
+#: bp-templates/bp-nouveau/includes/activity/functions.php:93
 #. translators: %s = member name
 msgid "Profile photo of %s"
 msgstr ""
@@ -2742,8 +2984,8 @@ msgstr ""
 msgid "Activate Your Account"
 msgstr ""
 
-#: bp-core/bp-core-template.php:3123 bp-groups/bp-groups-template.php:3394
-#: bp-templates/bp-nouveau/includes/groups/functions.php:536
+#: bp-core/bp-core-template.php:3123 bp-groups/bp-groups-template.php:3450
+#: bp-templates/bp-nouveau/includes/groups/functions.php:542
 msgid "Create a Group"
 msgstr ""
 
@@ -2841,7 +3083,7 @@ msgid "Akismet"
 msgstr ""
 
 #: bp-core/classes/class-bp-admin.php:506
-#: bp-groups/classes/class-bp-groups-component.php:709
+#: bp-groups/classes/class-bp-groups-component.php:710
 #: bp-settings/bp-settings-functions.php:208
 #: bp-settings/classes/class-bp-settings-component.php:28
 #: bp-settings/classes/class-bp-settings-component.php:142
@@ -2849,33 +3091,41 @@ msgstr ""
 msgid "Settings"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:557
+#: bp-core/classes/class-bp-admin.php:544
+msgid "Sorry, the page you requested was not found."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:545
+msgid "Hello BuddyPress"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:561
 msgid "Suggested text:"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:562
+#: bp-core/classes/class-bp-admin.php:566
 msgid "What personal data we collect and why we collect it"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:563
+#: bp-core/classes/class-bp-admin.php:567
 msgid ""
 "Sites powered by BuddyPress rely heavily on user-provided data. In this "
 "section, you should note what data you collect, from both registered users "
 "and anonymous visitors."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:566
+#: bp-core/classes/class-bp-admin.php:570
 msgid "Profile Data"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:567
+#: bp-core/classes/class-bp-admin.php:571
 msgid ""
 "In this section you should note what information is collected on user "
 "profiles. The suggested text gives an overview of the kinds of profile data "
 "collected by BuddyPress."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:569
+#: bp-core/classes/class-bp-admin.php:573
 msgid ""
 "When you register for the site, you may be asked to provide certain "
 "personal data for display on your profile. The \"Name\" field is required "
@@ -2884,7 +3134,7 @@ msgid ""
 "administrator."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:570
+#: bp-core/classes/class-bp-admin.php:574
 msgid ""
 "User information provided during account registration can be modified or "
 "removed on the Profile > Edit panel. In most cases, users also have control "
@@ -2894,14 +3144,14 @@ msgid ""
 "for all users."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:575
+#: bp-core/classes/class-bp-admin.php:579
 msgid ""
 "In this section you should describe the kinds of information collected in "
 "the activity stream, how and whether it can be edited or deleted, and to "
 "whom the activity is visible."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:577
+#: bp-core/classes/class-bp-admin.php:581
 msgid ""
 "This site records certain user actions, in the form of \"activity\" data. "
 "Activity includes updates and comments posted directly to activity streams, "
@@ -2909,7 +3159,7 @@ msgid ""
 "such as new friendships, newly joined groups, and profile updates."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:578
+#: bp-core/classes/class-bp-admin.php:582
 msgid ""
 "The content of activity items obey the same privacy rules as the contexts "
 "in which the activity items are created. For example, activity updates "
@@ -2918,26 +3168,26 @@ msgid ""
 "Site administrators can view all activity items, regardless of context."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:579
+#: bp-core/classes/class-bp-admin.php:583
 msgid ""
 "Activity items may be deleted at any time by users who created them. Site "
 "administrators can edit all activity items."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:583
+#: bp-core/classes/class-bp-admin.php:587
 #: bp-messages/bp-messages-notifications.php:263
 #: bp-messages/classes/class-bp-messages-component.php:223
 #: bp-messages/classes/class-bp-messages-component.php:331
 msgid "Messages"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:584
+#: bp-core/classes/class-bp-admin.php:588
 msgid ""
 "In this section you should describe any personal data related to private "
 "messages."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:586
+#: bp-core/classes/class-bp-admin.php:590
 msgid ""
 "The content of private messages is visible only to the sender and the "
 "recipients of the message. With the exception of site administrators, who "
@@ -2946,24 +3196,24 @@ msgid ""
 "any message."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:589
+#: bp-core/classes/class-bp-admin.php:593
 msgid "Cookies"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:590
+#: bp-core/classes/class-bp-admin.php:594
 msgid ""
 "In this section you should describe the BuddyPress-specific cookies that "
 "your site collects. The suggested text describes the default cookies."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:592
+#: bp-core/classes/class-bp-admin.php:596
 msgid ""
 "We use a cookie to show success and failure messages to logged-in users, in "
 "response to certain actions, like joining a group. These cookies contain no "
 "personal data, and are deleted immediately after the next page load."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:594
+#: bp-core/classes/class-bp-admin.php:598
 msgid ""
 "We use cookies on group, member, and activity directories to keep track of "
 "a user's browsing preferences. These preferences include the last-selected "
@@ -2971,7 +3221,7 @@ msgid ""
 "These cookies contain no personal data, and are deleted after 24 hours."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:597
+#: bp-core/classes/class-bp-admin.php:601
 msgid ""
 "When a logged-in user creates a new group, we use a number of cookies to "
 "keep track of the group creation process. These cookies contain no personal "
@@ -2979,163 +3229,269 @@ msgid ""
 "after 24 hours."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:628
-#: bp-core/classes/class-bp-admin.php:629
-msgid "Close pop-up"
+#: bp-core/classes/class-bp-admin.php:637
+#. translators: %s is the placehoder for the BuddyPress version number.
+msgid "BuddyPress %s"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:639
-msgid "New tools for data control and privacy"
+#: bp-core/classes/class-bp-admin.php:643
+msgid "What's new?"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:641
-msgid ""
-"BuddyPress boasts a proud history of letting community members and managers "
-"control their data, independent of third-party, commercial entities. In "
-"this spirit, as well as the spirit of recent regulations like the EU's "
-"General Data Protection Regulation (GDPR), BuddyPress 4.0 introduces a "
-"suite of tools allowing users and site admins to manage member data and "
-"privacy."
+#: bp-core/classes/class-bp-admin.php:644
+msgid "Changelog"
 msgstr ""
 
 #: bp-core/classes/class-bp-admin.php:645
-msgid "Screenshot of Export Data settings panel"
+msgid "Get involved"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:647
-msgid "Improved user control over data exports"
+#: bp-core/classes/class-bp-admin.php:651
+msgid "Introducing the BP REST API"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:651
+#: bp-core/classes/class-bp-admin.php:656
 msgid ""
-"The new \"Export Data\" Settings panel lets users request an export of all "
-"BuddyPress data they've created. BuddyPress integrates seamlessly with the "
-"data export functionality introduced in WordPress 4.9.8, and BP data is "
-"included in exports that are initiated either from the Export Data panel or "
-"via WP's Tools > Export Personal Data interface."
+"BuddyPress 5.0.0 comes with REST API endpoints for members, groups, "
+"activities, users, private messages, screen notifications and extended "
+"profiles."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:653
+#: bp-core/classes/class-bp-admin.php:659
 msgid ""
-"BuddyPress 4.0 also integrates with WordPress 4.9.8's Privacy Policy tools. "
-"When you create or update your Privacy Policy, BP will suggest text that's "
-"specifically tailored to the kinds of social data generated on a BuddyPress "
-"site. And will prompt registering users to agree to the Privacy Policy, if "
-"your theme supports it."
+"BuddyPress endpoints provide machine-readable external access to your "
+"WordPress site with a clear, standards-driven interface, paving the way for "
+"new and innovative methods of interacting with your community through "
+"plugins, themes, apps, and beyond."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:655
-msgid "Nouveau template improvements"
+#: bp-core/classes/class-bp-admin.php:662
+#. translators: %s is the placehoder for the link to the BP REST API
+#. documentation site.
+msgid "Ready to get started with development? Check out the %s."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:656
+#: bp-core/classes/class-bp-admin.php:666
+msgid "BP REST API reference"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:673
+msgid "A new interface for managing group members."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:675
 msgid ""
-"BuddyPress 3.0 introduced a new set of default templates, which we call "
-"\"Nouveau\". In 4.0, we've fixed bugs and smoothed the edges in these "
-"templates, including more accessible markup and improved appearance on "
-"mobile devices."
+"The best way to show the power of the BP REST API is to start using it for "
+"one of our Core features."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:658
-msgid "BuddyPress: leaner, faster, stronger"
+#: bp-core/classes/class-bp-admin.php:678
+msgid ""
+"Screenshot of the Group Members management interface in the administration "
+"and on the front-end of your site."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:659
+#: bp-core/classes/class-bp-admin.php:681
+msgid ""
+"Group administrators will love our new interface for managing group "
+"membership. Whether you're working as a group admin on the front-end Manage "
+"tab, or as the site admin on the Dashboard, the new REST API-based tools "
+"are faster, easier to use, and more consistent."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:686
+msgid "Improved Group invites and membership requests."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:691
+msgid ""
+"Thanks to the new BP Invitations API, Group invites and membership requests "
+"are now managed in a more consistent way."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:694
+msgid ""
+"The BP Invitations API abstracts how these two actions are handled and "
+"allows developers to use them for any object on your site (e.g., Sites of a "
+"WordPress network)."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:697
+#. translators: %s is the placehoder for the link to the BP Invitations API
+#. development note.
+msgid "Read more about the %s."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:701
+msgid "BP Invitations API"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:708
+msgid "Help our support volunteers help you."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:710
+msgid ""
+"Knowing your WordPress and BuddyPress configuration is very important when "
+"one of our beloved support volunteers tries to help you fix an issue. "
+"That's why we added a BuddyPress section to the Site Health Info "
+"Administration screen."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:713
+msgid ""
+"Screenshot of the BuddyPress section of the Site Health Info Administration "
+"screen."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:716
+msgid ""
+"The panel is displayed at the bottom of the screen. It includes the "
+"BuddyPress version, active components, active template pack, and a list of "
+"other component-specific settings information."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:721
+msgid "Improved integrations with WordPress"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:723
+msgid ""
+"Screenshot of the BuddyPress members directory & Password control in Twenty "
+"Ninteen."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:727
+msgid ""
+"In BuddyPress 5.0.0, the BP Nouveau template pack looks better than ever "
+"with the Twenty Nineteen theme."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:728
 msgid ""
-"With every BuddyPress version, we strive to make internal improvements to "
-"performance and code quality in addition to introducing new features and "
-"fixes. In BuddyPress 4.0, we've improved PHP compatibility both in our "
-"codebase and in our automated testing tools; we've reworked some automated "
-"tests for faster performance; we've ensured compatibility with upcoming "
-"changes in WordPress; and we've fixed a number of bugs in the formatting "
-"and sending of emails."
+"Nouveau also now uses the same password control as the one used in "
+"WordPress Core, for better consistency between BuddyPress and WordPress "
+"spaces."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:732
+msgid "BuddyPress Blocks now have their own category into the Block Editor."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:735
+msgid "Screenshot of the BuddyPress block category."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:664
+#: bp-core/classes/class-bp-admin.php:738
 msgid ""
-"To read the full list of features, fixes, and changes in this version of "
-"BuddyPress, <a href=\"%s\">visit Trac</a>."
+"Developers building tools for the Block Editor can now add their blocks to "
+"the BuddyPress category. This change provides a foundation for organizing "
+"custom BuddyPress blocks."
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:741
+#. translators: %s is the placehoder for the link to the blocks category
+#. development note.
+msgid "Read more about this feature in the %s."
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:674
+#: bp-core/classes/class-bp-admin.php:745
+msgid "development note"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:757
+#. translators: %s is the placehoder for the link to BuddyPress support forums.
 msgid ""
 " How are you using BuddyPress? Receiving your feedback and suggestions for "
 "future versions of BuddyPress genuinely motivates and encourages our "
-"contributors. Please <a href=\"%s\">share your feedback</a> about this "
-"version of BuddyPress on our website. "
+"contributors. Please %s about this version of BuddyPress on our website. "
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:679
+#: bp-core/classes/class-bp-admin.php:761
+msgid "share your feedback"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:766
 msgid "Thank you for using BuddyPress! 😊"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:689
-msgid "Built by <a href=\"%s\">%s volunteer</a>."
-msgid_plural "Built by <a href=\"%s\">%s volunteers</a>."
+#: bp-core/classes/class-bp-admin.php:777
+msgid "Built with %1$s by <a href=\"%2$s\">%3$d volunteer</a>."
+msgid_plural "Built with %1$s by <a href=\"%2$s\">%3$d volunteers</a>."
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-core/classes/class-bp-admin.php:745
+#: bp-core/classes/class-bp-admin.php:792
+#: bp-core/classes/class-bp-admin.php:794
+msgid "Follow BuddyPress on Twitter"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:803
+#: bp-core/classes/class-bp-admin.php:805
+msgid "Visit the Support Forums"
+msgstr ""
+
+#: bp-core/classes/class-bp-admin.php:834
 msgid "Meet the contributors behind BuddyPress:"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:747
+#: bp-core/classes/class-bp-admin.php:836
 msgid "Project Leaders"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:752
+#: bp-core/classes/class-bp-admin.php:841
 msgid "Project Lead"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:757
-#: bp-core/classes/class-bp-admin.php:762
+#: bp-core/classes/class-bp-admin.php:846
+#: bp-core/classes/class-bp-admin.php:851
 msgid "Lead Developer"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:766
+#: bp-core/classes/class-bp-admin.php:855
 msgid "BuddyPress Team"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:771
-#: bp-core/classes/class-bp-admin.php:776
-#: bp-core/classes/class-bp-admin.php:781
-#: bp-core/classes/class-bp-admin.php:791
-#: bp-core/classes/class-bp-admin.php:796
-#: bp-core/classes/class-bp-admin.php:816
-#: bp-core/classes/class-bp-admin.php:821
-#: bp-core/classes/class-bp-admin.php:826
-#: bp-core/classes/class-bp-admin.php:831
+#: bp-core/classes/class-bp-admin.php:860
+#: bp-core/classes/class-bp-admin.php:865
+#: bp-core/classes/class-bp-admin.php:870
+#: bp-core/classes/class-bp-admin.php:880
+#: bp-core/classes/class-bp-admin.php:885
+#: bp-core/classes/class-bp-admin.php:905
+#: bp-core/classes/class-bp-admin.php:910
+#: bp-core/classes/class-bp-admin.php:915
+#: bp-core/classes/class-bp-admin.php:920
 msgid "Core Developer"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:786
+#: bp-core/classes/class-bp-admin.php:875
 msgid "Navigator"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:801
-#: bp-core/classes/class-bp-admin.php:806
-#: bp-core/classes/class-bp-admin.php:811
-#: bp-core/classes/class-bp-admin.php:836
+#: bp-core/classes/class-bp-admin.php:890
+#: bp-core/classes/class-bp-admin.php:895
+#: bp-core/classes/class-bp-admin.php:900
+#: bp-core/classes/class-bp-admin.php:925
 msgid "Community Support"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:840
+#: bp-core/classes/class-bp-admin.php:929
 msgid "Recent Rockstars"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:864
+#: bp-core/classes/class-bp-admin.php:953
 msgid "Contributors to BuddyPress %s"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:904
+#: bp-core/classes/class-bp-admin.php:985
 msgid "With our thanks to these Open Source projects"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:918
+#: bp-core/classes/class-bp-admin.php:999
 msgid "Contributor Emeriti"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:923
+#: bp-core/classes/class-bp-admin.php:1004
 msgid "Project Founder"
 msgstr ""
 
@@ -3309,101 +3665,292 @@ msgid "Remember Me"
 msgstr ""
 
 #: bp-core/classes/class-bp-core-login-widget.php:180
-#: bp-groups/classes/class-bp-groups-widget.php:217
-#: bp-members/classes/class-bp-core-members-widget.php:207
-#: bp-members/classes/class-bp-core-recently-active-widget.php:143
-#: bp-members/classes/class-bp-core-whos-online-widget.php:142
+#: bp-groups/classes/class-bp-groups-widget.php:226
+#: bp-members/classes/class-bp-core-members-widget.php:213
+#: bp-members/classes/class-bp-core-recently-active-widget.php:151
+#: bp-members/classes/class-bp-core-whos-online-widget.php:150
 #: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:116
 #: bp-templates/bp-nouveau/includes/activity/widgets.php:187
 msgid "Title:"
 msgstr ""
 
 #: bp-core/classes/class-bp-core-user.php:186
-#: bp-groups/classes/class-bp-groups-invite-template.php:244
+#: bp-groups/classes/class-bp-groups-invite-template.php:245
 msgid "%d group"
 msgid_plural "%d groups"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-core/deprecated/1.5.php:146
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:62
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:29
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/profile-wp.php:16
-msgid "My Profile"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:80
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:63
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:89
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:60
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:959
+msgid "A unique numeric ID for the Group."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:153
-#: bp-members/classes/class-bp-members-list-table.php:151
-#: bp-members/classes/class-bp-members-ms-list-table.php:138
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:36
-#: bp-templates/bp-nouveau/includes/members/functions.php:470
-msgid "Name"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:134
+msgid "Sorry, there was a problem fetching this group avatar."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:162
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:45
-#: bp-templates/bp-nouveau/includes/members/functions.php:471
-msgid "About Me"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:178
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:211
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:461
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:324
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:491
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:628
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:207
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:449
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:245
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:449
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:553
+msgid "Invalid group ID."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:171
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:54
-#: bp-templates/bp-nouveau/includes/members/functions.php:472
-msgid "Website"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:213
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:204
+msgid "Sorry, you need an image file to upload."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:180
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:63
-msgid "Jabber"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:262
+msgid "Sorry, group avatar upload is disabled."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:189
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:72
-msgid "AOL Messenger"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:275
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:281
+msgid "Sorry, you are not authorized to perform this action."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:198
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:81
-msgid "Yahoo Messenger"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:308
+msgid "Sorry, there are no uploaded avatars for this group on this site."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:358
-msgid "%1$s mentioned you in the group \"%2$s\""
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:341
+msgid "Sorry, there was a problem deleting this group avatar."
 msgstr ""
 
-#: bp-core/deprecated/1.5.php:360
-msgid ""
-"%1$s mentioned you in the group \"%2$s\":\n"
-"\n"
-"\"%3$s\"\n"
-"\n"
-"To view and respond to the message, log in and visit: %4$s\n"
-"\n"
-"---------------------\n"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:441
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:447
+msgid "Full size of the image file."
 msgstr ""
 
-#: bp-core/deprecated/1.6.php:127 bp-core/deprecated/1.6.php:148
-#: bp-groups/bp-groups-template.php:5098 bp-groups/bp-groups-template.php:5121
-msgid "Recently Active"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:447
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:454
+msgid "Thumb size of the image file."
 msgstr ""
 
-#: bp-core/deprecated/1.6.php:128 bp-core/deprecated/1.6.php:151
-#: bp-friends/classes/class-bp-core-friends-widget.php:105
-#: bp-friends/classes/class-bp-core-friends-widget.php:197
-#: bp-groups/bp-groups-template.php:4361
-#: bp-groups/classes/class-bp-groups-widget.php:121
-#: bp-groups/classes/class-bp-groups-widget.php:226
-#: bp-members/classes/class-bp-core-members-widget.php:111
-#: bp-members/classes/class-bp-core-members-widget.php:229
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:100
-#: bp-templates/bp-legacy/buddypress/members/single/blogs.php:22
-#: bp-templates/bp-nouveau/includes/blogs/functions.php:107
-#: bp-templates/bp-nouveau/includes/members/functions.php:112
-msgid "Newest"
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:477
+msgid "Whether to return an <img> HTML element, vs a raw URL to a group avatar."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-group-avatar-endpoint.php:485
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:493
+msgid "The alt attribute for the <img> element."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:70
+#: bp-members/classes/class-bp-rest-members-endpoint.php:600
+msgid "A unique numeric ID for the Member."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:125
+msgid "Sorry, there was a problem fetching the avatar."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:169
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:222
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:233
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:471
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:218
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:438
+#: bp-members/classes/class-bp-rest-members-endpoint.php:155
+#: bp-members/classes/class-bp-rest-members-endpoint.php:232
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:200
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:155
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:291
+msgid "Invalid member ID."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:261
+msgid "Sorry, you need to be logged in to perform this action."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:271
+msgid "Sorry, member avatar upload is disabled."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:314
+msgid "Sorry, there are no uploaded avatars for this user on this site."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:347
+msgid "Sorry, there was a problem deleting the avatar."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:485
+msgid "Whether to return an <img> HTML element, vs a raw URL to an avatar."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-attachments-member-avatar-endpoint.php:501
+msgid "Whether to disable the default Gravatar fallback."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:52
+msgid "Name of the component."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:58
+msgid "Whether to activate or deactivate the component."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:173
+msgid "Sorry, you do not have access to list components."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:205
+msgid "Sorry, this component does not exist."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:216
+msgid "Sorry, this is not a valid action."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:227
+msgid "Sorry, this component is already active."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:239
+msgid "Sorry, this component is not active."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:249
+msgid "Sorry, you cannot deactivate a required component."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:344
+msgid "active"
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:347
+msgid "inactive"
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:459
+msgid "Name of the object."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:467
+msgid "Whether the object is active or inactive."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:476
+msgid "HTML title of the object."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:484
+msgid "HTML description of the object."
+msgstr ""
+
+#: bp-core/classes/class-bp-rest-components-endpoint.php:522
+msgid "Limit result set to items with a specific type."
+msgstr ""
+
+#: bp-core/classes/trait-attachments.php:73
+#. translators: %s is replaced with the error
+msgid "Upload failed! Error was: %s."
+msgstr ""
+
+#: bp-core/classes/trait-attachments.php:94
+#. translators: %1$s and %2$s is replaced with the correct sizes.
+msgid ""
+"You have selected an image that is smaller than recommended. For best "
+"results, upload a picture larger than %1$s x %2$s pixels."
+msgstr ""
+
+#: bp-core/classes/trait-attachments.php:252
+#. translators: %s is replaced with object type.
+msgid "There was a problem cropping your %s photo."
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:146
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:62
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:29
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/profile-wp.php:16
+msgid "My Profile"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:153
+#: bp-members/classes/class-bp-members-list-table.php:151
+#: bp-members/classes/class-bp-members-ms-list-table.php:138
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:36
+#: bp-templates/bp-nouveau/includes/members/functions.php:470
+msgid "Name"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:162
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:45
+#: bp-templates/bp-nouveau/includes/members/functions.php:471
+msgid "About Me"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:171
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:54
+#: bp-templates/bp-nouveau/includes/members/functions.php:472
+msgid "Website"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:180
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:63
+msgid "Jabber"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:189
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:72
+msgid "AOL Messenger"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:198
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:81
+msgid "Yahoo Messenger"
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:358
+msgid "%1$s mentioned you in the group \"%2$s\""
+msgstr ""
+
+#: bp-core/deprecated/1.5.php:360
+msgid ""
+"%1$s mentioned you in the group \"%2$s\":\n"
+"\n"
+"\"%3$s\"\n"
+"\n"
+"To view and respond to the message, log in and visit: %4$s\n"
+"\n"
+"---------------------\n"
+msgstr ""
+
+#: bp-core/deprecated/1.6.php:127 bp-core/deprecated/1.6.php:148
+#: bp-groups/bp-groups-template.php:5154 bp-groups/bp-groups-template.php:5177
+msgid "Recently Active"
+msgstr ""
+
+#: bp-core/deprecated/1.6.php:128 bp-core/deprecated/1.6.php:151
+#: bp-friends/classes/class-bp-core-friends-widget.php:105
+#: bp-friends/classes/class-bp-core-friends-widget.php:197
+#: bp-groups/bp-groups-template.php:4417
+#: bp-groups/classes/class-bp-groups-widget.php:126
+#: bp-groups/classes/class-bp-groups-widget.php:235
+#: bp-members/classes/class-bp-core-members-widget.php:114
+#: bp-members/classes/class-bp-core-members-widget.php:235
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:100
+#: bp-templates/bp-legacy/buddypress/members/single/blogs.php:22
+#: bp-templates/bp-nouveau/includes/blogs/functions.php:107
+#: bp-templates/bp-nouveau/includes/members/functions.php:112
+msgid "Newest"
 msgstr ""
 
 #: bp-core/deprecated/1.6.php:129 bp-core/deprecated/1.6.php:154
-#: bp-groups/bp-groups-template.php:5103 bp-groups/bp-groups-template.php:5136
+#: bp-groups/bp-groups-template.php:5159 bp-groups/bp-groups-template.php:5192
 msgid "Alphabetically"
 msgstr ""
 
@@ -3466,7 +4013,7 @@ msgid "Group Settings"
 msgstr ""
 
 #: bp-core/deprecated/2.1.php:373
-#: bp-groups/classes/class-bp-groups-component.php:881
+#: bp-groups/classes/class-bp-groups-component.php:882
 msgid "Group Profile Photo"
 msgstr ""
 
@@ -3483,7 +4030,7 @@ msgstr ""
 msgid "Membership Requests"
 msgstr ""
 
-#: bp-core/deprecated/2.1.php:391 bp-groups/bp-groups-admin.php:1065
+#: bp-core/deprecated/2.1.php:391 bp-groups/bp-groups-admin.php:1083
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:12
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:39
 #: bp-templates/bp-nouveau/includes/groups/template-tags.php:373
@@ -3603,15 +4150,15 @@ msgstr ""
 msgid "%1$s and %2$s are now friends"
 msgstr ""
 
-#: bp-friends/bp-friends-filters.php:61
+#: bp-friends/bp-friends-filters.php:62
 msgid "BuddyPress Friends"
 msgstr ""
 
-#: bp-friends/bp-friends-filters.php:66
+#: bp-friends/bp-friends-filters.php:68
 msgid "BuddyPress Friend Requests (Sent)"
 msgstr ""
 
-#: bp-friends/bp-friends-filters.php:71
+#: bp-friends/bp-friends-filters.php:74
 msgid "BuddyPress Friend Requests (Received)"
 msgstr ""
 
@@ -3639,10 +4186,10 @@ msgstr ""
 
 #: bp-friends/bp-friends-functions.php:1013
 #: bp-friends/bp-friends-functions.php:1076
-#: bp-groups/bp-groups-functions.php:2778
-#: bp-groups/bp-groups-functions.php:2848
-#: bp-groups/bp-groups-functions.php:2918
-#: bp-messages/bp-messages-functions.php:701
+#: bp-groups/bp-groups-functions.php:2964
+#: bp-groups/bp-groups-functions.php:3034
+#: bp-groups/bp-groups-functions.php:3104
+#: bp-messages/bp-messages-functions.php:708
 msgid "Date Sent"
 msgstr ""
 
@@ -3675,8 +4222,8 @@ msgid "You have a friendship request from %s"
 msgstr ""
 
 #: bp-friends/bp-friends-template.php:84
-#: bp-templates/bp-nouveau/includes/activity/functions.php:240
-#: bp-templates/bp-nouveau/includes/groups/functions.php:139
+#: bp-templates/bp-nouveau/includes/activity/functions.php:243
+#: bp-templates/bp-nouveau/includes/groups/functions.php:146
 #: bp-templates/bp-nouveau/includes/members/functions.php:62
 msgid "My Friends"
 msgstr ""
@@ -3751,20 +4298,20 @@ msgstr ""
 
 #: bp-friends/classes/class-bp-core-friends-widget.php:106
 #: bp-friends/classes/class-bp-core-friends-widget.php:198
-#: bp-groups/classes/class-bp-groups-widget.php:123
-#: bp-groups/classes/class-bp-groups-widget.php:227
-#: bp-members/classes/class-bp-core-members-widget.php:113
-#: bp-members/classes/class-bp-core-members-widget.php:230
+#: bp-groups/classes/class-bp-groups-widget.php:128
+#: bp-groups/classes/class-bp-groups-widget.php:236
+#: bp-members/classes/class-bp-core-members-widget.php:116
+#: bp-members/classes/class-bp-core-members-widget.php:236
 #: bp-members/classes/class-bp-members-admin.php:1080
 msgid "Active"
 msgstr ""
 
 #: bp-friends/classes/class-bp-core-friends-widget.php:107
 #: bp-friends/classes/class-bp-core-friends-widget.php:199
-#: bp-groups/classes/class-bp-groups-widget.php:125
-#: bp-groups/classes/class-bp-groups-widget.php:228
-#: bp-members/classes/class-bp-core-members-widget.php:117
-#: bp-members/classes/class-bp-core-members-widget.php:231
+#: bp-groups/classes/class-bp-groups-widget.php:130
+#: bp-groups/classes/class-bp-groups-widget.php:237
+#: bp-members/classes/class-bp-core-members-widget.php:120
+#: bp-members/classes/class-bp-core-members-widget.php:237
 msgid "Popular"
 msgstr ""
 
@@ -3775,7 +4322,7 @@ msgid "Sorry, no members were found."
 msgstr ""
 
 #: bp-friends/classes/class-bp-core-friends-widget.php:190
-#: bp-members/classes/class-bp-core-members-widget.php:215
+#: bp-members/classes/class-bp-core-members-widget.php:221
 msgid "Link widget title to Members directory"
 msgstr ""
 
@@ -3829,6 +4376,7 @@ msgid "You are not an admin of this group."
 msgstr ""
 
 #: bp-groups/actions/create.php:27
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:352
 msgid "Sorry, you are not allowed to create groups."
 msgstr ""
 
@@ -3882,7 +4430,7 @@ msgstr ""
 msgid "There was an error leaving the group."
 msgstr ""
 
-#: bp-groups/actions/leave-group.php:45 bp-groups/bp-groups-functions.php:526
+#: bp-groups/actions/leave-group.php:45 bp-groups/bp-groups-functions.php:527
 msgid "You successfully left the group."
 msgstr ""
 
@@ -3898,7 +4446,7 @@ msgstr ""
 msgid "Joined a group"
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:44 bp-groups/bp-groups-functions.php:2719
+#: bp-groups/bp-groups-activity.php:44 bp-groups/bp-groups-functions.php:2905
 msgid "Group Memberships"
 msgstr ""
 
@@ -3910,34 +4458,46 @@ msgstr ""
 msgid "Group Updates"
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:81
+#: bp-groups/bp-groups-activity.php:60
+msgid "Posted a status update in a Group"
+msgstr ""
+
+#: bp-groups/bp-groups-activity.php:62
+msgid "Group Activity Updates"
+msgstr ""
+
+#: bp-groups/bp-groups-activity.php:111
 msgid "%1$s created the group %2$s"
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:109 bp-groups/bp-groups-activity.php:570
+#: bp-groups/bp-groups-activity.php:139 bp-groups/bp-groups-activity.php:706
 msgid "%1$s joined the group %2$s"
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:156
+#: bp-groups/bp-groups-activity.php:186
 msgid "%1$s updated details for the group %2$s"
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:160
+#: bp-groups/bp-groups-activity.php:190
 msgid "%1$s changed the name and description of the group %2$s"
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:164
+#: bp-groups/bp-groups-activity.php:194
 msgid "%1$s changed the name of the group %2$s from \"%3$s\" to \"%4$s\""
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:168
+#: bp-groups/bp-groups-activity.php:198
 msgid "%1$s changed the description of the group %2$s from \"%3$s\" to \"%4$s\""
 msgstr ""
 
-#: bp-groups/bp-groups-activity.php:171
+#: bp-groups/bp-groups-activity.php:201
 msgid "%1$s changed the permalink of the group %2$s."
 msgstr ""
 
+#: bp-groups/bp-groups-activity.php:232
+msgid "%1$s posted an update in the group %2$s"
+msgstr ""
+
 #: bp-groups/bp-groups-admin.php:117
 msgid ""
 "This page is a convenient way to edit the details associated with one of "
@@ -4050,10 +4610,10 @@ msgstr ""
 msgid "Name and Description"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:621 bp-groups/bp-groups-functions.php:2681
-#: bp-groups/bp-groups-functions.php:2770
-#: bp-groups/bp-groups-functions.php:2836
-#: bp-groups/bp-groups-functions.php:2906
+#: bp-groups/bp-groups-admin.php:621 bp-groups/bp-groups-functions.php:2867
+#: bp-groups/bp-groups-functions.php:2956
+#: bp-groups/bp-groups-functions.php:3022
+#: bp-groups/bp-groups-functions.php:3092
 #. translators: accessibility text
 msgid "Group Name"
 msgstr ""
@@ -4096,7 +4656,7 @@ msgstr[1] ""
 
 #: bp-groups/bp-groups-admin.php:769 bp-groups/bp-groups-admin.php:784
 #: bp-groups/classes/class-bp-groups-widget.php:75
-#: bp-groups/classes/class-bp-groups-widget.php:204
+#: bp-groups/classes/class-bp-groups-widget.php:211
 msgid "Groups"
 msgstr ""
 
@@ -4112,18 +4672,18 @@ msgstr ""
 msgid "Privacy"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:837 bp-groups/bp-groups-template.php:1280
-#: bp-groups/classes/class-bp-groups-list-table.php:601
+#: bp-groups/bp-groups-admin.php:837 bp-groups/bp-groups-template.php:1336
+#: bp-groups/classes/class-bp-groups-list-table.php:609
 msgid "Public"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:838 bp-groups/bp-groups-template.php:1282
-#: bp-groups/classes/class-bp-groups-list-table.php:604
+#: bp-groups/bp-groups-admin.php:838 bp-groups/bp-groups-template.php:1338
+#: bp-groups/classes/class-bp-groups-list-table.php:612
 msgid "Private"
 msgstr ""
 
 #: bp-groups/bp-groups-admin.php:839
-#: bp-groups/classes/class-bp-groups-list-table.php:607
+#: bp-groups/classes/class-bp-groups-list-table.php:615
 msgid "Hidden"
 msgstr ""
 
@@ -4161,60 +4721,62 @@ msgstr ""
 msgid "Add new members"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:944
+#: bp-groups/bp-groups-admin.php:962
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:26
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:18
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:28
 msgid "Administrators"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:945
+#: bp-groups/bp-groups-admin.php:963
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:119
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:49
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:59
 msgid "Moderators"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:946 bp-groups/bp-groups-template.php:4340
-#: bp-groups/classes/class-bp-groups-component.php:731
-#: bp-members/classes/class-bp-core-members-widget.php:249
+#: bp-groups/bp-groups-admin.php:964 bp-groups/bp-groups-template.php:4396
+#: bp-groups/classes/class-bp-groups-component.php:732
+#: bp-members/classes/class-bp-core-members-widget.php:255
 #: bp-members/classes/class-bp-members-component.php:38
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:214
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:79
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:89
 #: bp-templates/bp-nouveau/includes/customizer.php:263
 #. translators: accessibility text
 msgid "Members"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:947
+#: bp-groups/bp-groups-admin.php:965
 msgid "Banned Members"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:984
+#: bp-groups/bp-groups-admin.php:1002
 #. translators: accessibility text
 msgid "Select group role for member"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:987
+#: bp-groups/bp-groups-admin.php:1005
 msgid "Roles"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:988
+#: bp-groups/bp-groups-admin.php:1006 bp-groups/bp-groups-functions.php:1196
 msgid "Administrator"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:989 bp-groups/bp-groups-functions.php:2702
+#: bp-groups/bp-groups-admin.php:1007 bp-groups/bp-groups-functions.php:1204
+#: bp-groups/bp-groups-functions.php:2888
 msgid "Moderator"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:990 bp-groups/bp-groups-functions.php:2704
+#: bp-groups/bp-groups-admin.php:1008 bp-groups/bp-groups-functions.php:1212
+#: bp-groups/bp-groups-functions.php:2890
 #: bp-members/classes/class-bp-members-admin.php:819
 msgid "Member"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:992
+#: bp-groups/bp-groups-admin.php:1010 bp-groups/bp-groups-functions.php:1220
 msgid "Banned"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:995
+#: bp-groups/bp-groups-admin.php:1013
 #: bp-members/classes/class-bp-members-admin.php:1531
 #: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:86
 #: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:22
@@ -4222,73 +4784,73 @@ msgstr ""
 msgid "Actions"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:996
+#: bp-groups/bp-groups-admin.php:1014
 msgid "Remove"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:998
+#: bp-groups/bp-groups-admin.php:1016
 msgid "Ban"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1040
+#: bp-groups/bp-groups-admin.php:1058
 msgid "No members of this type"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1069
+#: bp-groups/bp-groups-admin.php:1087
 #: bp-groups/classes/class-bp-group-extension.php:522
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:53
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:110
 #: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:108
 #: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:47
 #: bp-templates/bp-legacy/buddypress/members/single/settings/notifications.php:40
-#: bp-templates/bp-nouveau/includes/functions.php:1270
-#: bp-templates/bp-nouveau/includes/functions.php:1301
-#: bp-templates/bp-nouveau/includes/functions.php:1312
-#: bp-templates/bp-nouveau/includes/functions.php:1323
+#: bp-templates/bp-nouveau/includes/functions.php:1256
+#: bp-templates/bp-nouveau/includes/functions.php:1287
+#: bp-templates/bp-nouveau/includes/functions.php:1298
+#: bp-templates/bp-nouveau/includes/functions.php:1309
 #: bp-templates/bp-nouveau/includes/groups/template-tags.php:365
 msgid "Save Changes"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1099
+#: bp-groups/bp-groups-admin.php:1117
 #. translators: accessibility text
 msgid "Select group type"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1109
+#: bp-groups/bp-groups-admin.php:1127
 msgid "(Not available on the front end)"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1204
+#: bp-groups/bp-groups-admin.php:1222
 msgid "&laquo;"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1205
+#: bp-groups/bp-groups-admin.php:1223
 msgid "&raquo;"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1211 bp-groups/bp-groups-template.php:4187
+#: bp-groups/bp-groups-admin.php:1229 bp-groups/bp-groups-template.php:4243
 #: bp-members/bp-members-template.php:500
 msgid "Viewing 1 member"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1280
+#: bp-groups/bp-groups-admin.php:1298
 #. Translators: 1: user_login, 2: user_email.
 msgid "%1$s (%2$s)"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1376
+#: bp-groups/bp-groups-admin.php:1394
 msgid "There was an error while changing group type. Please try again."
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1379
+#: bp-groups/bp-groups-admin.php:1397
 msgid "Group type was changed successfully."
 msgstr ""
 
-#: bp-groups/bp-groups-filters.php:379
+#: bp-groups/bp-groups-filters.php:377
 msgid "BuddyPress Group Memberships"
 msgstr ""
 
-#: bp-groups/bp-groups-filters.php:384
+#: bp-groups/bp-groups-filters.php:383
 msgid "BuddyPress Pending Group Membership Requests"
 msgstr ""
 
@@ -4296,7 +4858,7 @@ msgstr ""
 msgid "BuddyPress Pending Group Invitations (Received)"
 msgstr ""
 
-#: bp-groups/bp-groups-filters.php:394
+#: bp-groups/bp-groups-filters.php:395
 msgid "BuddyPress Pending Group Invitations (Sent)"
 msgstr ""
 
@@ -4305,119 +4867,123 @@ msgstr ""
 msgid "Group Admin"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:517
+#: bp-groups/bp-groups-functions.php:518
 msgid "As the only admin, you cannot leave the group."
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:1315
-msgid "%1$s posted an update in the group %2$s"
+#: bp-groups/bp-groups-functions.php:2079
+#: bp-groups/bp-groups-functions.php:2112
+#: bp-groups/bp-groups-functions.php:2149
+msgid ""
+"Argument `membership_id` passed to %1$s  is deprecated. See the inline "
+"documentation at %2$s for more details."
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2312
+#: bp-groups/bp-groups-functions.php:2498
 msgid "Group type already exists."
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2339
+#: bp-groups/bp-groups-functions.php:2525
 msgid "You may not register a group type with this name."
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2685
-#: bp-groups/bp-groups-functions.php:2774
-#: bp-groups/bp-groups-functions.php:2840
-#: bp-groups/bp-groups-functions.php:2910
+#: bp-groups/bp-groups-functions.php:2871
+#: bp-groups/bp-groups-functions.php:2960
+#: bp-groups/bp-groups-functions.php:3026
+#: bp-groups/bp-groups-functions.php:3096
 msgid "Group URL"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2692
-#: bp-groups/bp-groups-functions.php:2914
+#: bp-groups/bp-groups-functions.php:2878
+#: bp-groups/bp-groups-functions.php:3100
 msgid "Invited By"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2698
+#: bp-groups/bp-groups-functions.php:2884
 msgid "Creator"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2700
+#: bp-groups/bp-groups-functions.php:2886
 msgid "Admin"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2708
+#: bp-groups/bp-groups-functions.php:2894
 msgid "Group Role"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2713
+#: bp-groups/bp-groups-functions.php:2899
 msgid "Date Joined"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2785
+#: bp-groups/bp-groups-functions.php:2971
 msgid "Pending Group Membership Requests"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2844
+#: bp-groups/bp-groups-functions.php:3030
 msgid "Sent To"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2855
+#: bp-groups/bp-groups-functions.php:3041
 msgid "Pending Group Invitations (Sent)"
 msgstr ""
 
-#: bp-groups/bp-groups-functions.php:2925
+#: bp-groups/bp-groups-functions.php:3111
 msgid "Pending Group Invitations (Received)"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:244
+#: bp-groups/bp-groups-notifications.php:253
 msgid "an administrator"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:247
+#: bp-groups/bp-groups-notifications.php:256
 msgid "a moderator"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:375
+#: bp-groups/bp-groups-notifications.php:396
 msgid "%1$d new membership requests for the group \"%2$s\""
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:421
+#: bp-groups/bp-groups-notifications.php:442
 msgid "%s requests group membership"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:476
+#: bp-groups/bp-groups-notifications.php:497
 msgid "%d accepted group membership requests"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:515
+#: bp-groups/bp-groups-notifications.php:536
 msgid "Membership for group \"%s\" accepted"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:565
+#: bp-groups/bp-groups-notifications.php:586
 msgid "%d rejected group membership requests"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:604
+#: bp-groups/bp-groups-notifications.php:625
 msgid "Membership for group \"%s\" rejected"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:653
+#: bp-groups/bp-groups-notifications.php:674
 msgid "You were promoted to an admin in %d groups"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:688
+#: bp-groups/bp-groups-notifications.php:709
 msgid "You were promoted to an admin in the group \"%s\""
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:735
+#: bp-groups/bp-groups-notifications.php:756
 msgid "You were promoted to a mod in %d groups"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:770
+#: bp-groups/bp-groups-notifications.php:791
 msgid "You were promoted to a mod in the group \"%s\""
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:818
+#: bp-groups/bp-groups-notifications.php:839
 msgid "You have %d new group invitations"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:852
+#: bp-groups/bp-groups-notifications.php:873
 msgid "You have an invitation to the group: %s"
 msgstr ""
 
@@ -4441,37 +5007,37 @@ msgstr ""
 msgid "Group"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:942
+#: bp-groups/bp-groups-template.php:998
 msgid "not yet active"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:1568
+#: bp-groups/bp-groups-template.php:1624
 msgid "Group creator profile photo of %s"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:1636
+#: bp-groups/bp-groups-template.php:1692
 msgid "No Admins"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:1672
+#: bp-groups/bp-groups-template.php:1728
 msgid "No Mods"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:1812
+#: bp-groups/bp-groups-template.php:1868
 msgid "Filter Groups"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:1912
+#: bp-groups/bp-groups-template.php:1968
 msgid "Viewing 1 group"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:1914
+#: bp-groups/bp-groups-template.php:1970
 msgid "Viewing %1$s - %2$s of %3$s group"
 msgid_plural "Viewing %1$s - %2$s of %3$s groups"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-groups/bp-groups-template.php:2014
+#: bp-groups/bp-groups-template.php:2070
 #: bp-templates/bp-nouveau/buddypress/members/single/groups/invites.php:40
 #. translators: %s = number of members
 msgid "%s member"
@@ -4479,111 +5045,111 @@ msgid_plural "%s members"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-groups/bp-groups-template.php:2280 bp-groups/bp-groups-template.php:2356
+#: bp-groups/bp-groups-template.php:2336 bp-groups/bp-groups-template.php:2412
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:75
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:169
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:35
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:65
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:45
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:75
 msgid "Demote to Member"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:2293 bp-groups/bp-groups-template.php:2369
-#: bp-groups/bp-groups-template.php:4073
+#: bp-groups/bp-groups-template.php:2349 bp-groups/bp-groups-template.php:2425
+#: bp-groups/bp-groups-template.php:4129
 msgid "joined %s"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:2316
+#: bp-groups/bp-groups-template.php:2372
 msgid "This group has no administrators"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:2355
+#: bp-groups/bp-groups-template.php:2411
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:168
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:277
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:64
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:74
 #: bp-templates/bp-nouveau/includes/groups/template-tags.php:901
 msgid "Promote to Admin"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:2389
+#: bp-groups/bp-groups-template.php:2445
 msgid "This group has no moderators"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:2746
+#: bp-groups/bp-groups-template.php:2802
 msgid ""
 "This action should not be used directly. Please use the BuddyPress Group "
 "Extension API to generate Manage tabs."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3277
+#: bp-groups/bp-groups-template.php:3333
 #: bp-templates/bp-legacy/buddypress-functions.php:1561
 #: bp-templates/bp-legacy/buddypress-functions.php:1575
 msgid "Leave Group"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3298
+#: bp-groups/bp-groups-template.php:3354
 #: bp-templates/bp-legacy/buddypress-functions.php:1595
 msgid "Join Group"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3316
+#: bp-groups/bp-groups-template.php:3372
 msgid "Accept Invitation"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3331
+#: bp-groups/bp-groups-template.php:3387
 #: bp-templates/bp-legacy/buddypress-functions.php:1585
 msgid "Request Sent"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3346
+#: bp-groups/bp-groups-template.php:3402
 #: bp-templates/bp-legacy/buddypress-functions.php:1597
 msgid "Request Membership"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3491
+#: bp-groups/bp-groups-template.php:3547
 msgid "This group is not currently accessible."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3502
+#: bp-groups/bp-groups-template.php:3558
 msgid ""
 "You must accept your pending invitation before you can access this private "
 "group."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3504
+#: bp-groups/bp-groups-template.php:3560
 msgid ""
 "This is a private group and you must request group membership in order to "
 "join."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3507
+#: bp-groups/bp-groups-template.php:3563
 msgid ""
 "This is a private group. To join you must be a registered site member and "
 "request group membership."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3510
+#: bp-groups/bp-groups-template.php:3566
 msgid ""
 "This is a private group. Your membership request is awaiting approval from "
 "the group administrator."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:3518
+#: bp-groups/bp-groups-template.php:3574
 msgid "This is a hidden group and only invited members can join."
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:4189 bp-members/bp-members-template.php:502
+#: bp-groups/bp-groups-template.php:4245 bp-members/bp-members-template.php:502
 msgid "Viewing %1$s - %2$s of %3$s member"
 msgid_plural "Viewing %1$s - %2$s of %3$s members"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-groups/bp-groups-template.php:4317
+#: bp-groups/bp-groups-template.php:4373
 #: bp-templates/bp-legacy/buddypress/groups/single/activity.php:11
 #: bp-templates/bp-legacy/buddypress/groups/single/admin.php:11
 msgid "Group secondary navigation"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:4359
+#: bp-groups/bp-groups-template.php:4415
 #: bp-notifications/bp-notifications-template.php:1000
 #: bp-templates/bp-legacy/buddypress/blogs/index.php:97
 #: bp-templates/bp-legacy/buddypress/groups/index.php:93
@@ -4591,23 +5157,23 @@ msgstr ""
 #: bp-templates/bp-legacy/buddypress/members/single/blogs.php:19
 #: bp-templates/bp-legacy/buddypress/members/single/friends.php:20
 #: bp-templates/bp-legacy/buddypress/members/single/groups.php:20
-#: bp-templates/bp-nouveau/includes/template-tags.php:2104
+#: bp-templates/bp-nouveau/includes/template-tags.php:2109
 msgid "Order By:"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:4362
+#: bp-groups/bp-groups-template.php:4418
 #: bp-templates/bp-nouveau/includes/members/functions.php:113
 msgid "Oldest"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:4365
+#: bp-groups/bp-groups-template.php:4421
 #: bp-templates/bp-nouveau/includes/members/functions.php:117
 msgid "Group Activity"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:4368
-#: bp-groups/classes/class-bp-groups-widget.php:127
-#: bp-groups/classes/class-bp-groups-widget.php:229
+#: bp-groups/bp-groups-template.php:4424
+#: bp-groups/classes/class-bp-groups-widget.php:132
+#: bp-groups/classes/class-bp-groups-widget.php:238
 #: bp-templates/bp-legacy/buddypress/blogs/index.php:101
 #: bp-templates/bp-legacy/buddypress/groups/index.php:99
 #: bp-templates/bp-legacy/buddypress/members/index.php:98
@@ -4615,76 +5181,76 @@ msgstr ""
 #: bp-templates/bp-legacy/buddypress/members/single/friends.php:24
 #: bp-templates/bp-legacy/buddypress/members/single/groups.php:25
 #: bp-templates/bp-nouveau/includes/blogs/functions.php:108
-#: bp-templates/bp-nouveau/includes/groups/functions.php:594
+#: bp-templates/bp-nouveau/includes/groups/functions.php:600
 #: bp-templates/bp-nouveau/includes/members/functions.php:102
 #: bp-templates/bp-nouveau/includes/members/functions.php:120
 msgid "Alphabetical"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:4790
+#: bp-groups/bp-groups-template.php:4846
 msgid "Group photo"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5099 bp-groups/bp-groups-template.php:5124
+#: bp-groups/bp-groups-template.php:5155 bp-groups/bp-groups-template.php:5180
 msgid "Recently Joined"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5100 bp-groups/bp-groups-template.php:5127
+#: bp-groups/bp-groups-template.php:5156 bp-groups/bp-groups-template.php:5183
 msgid "Most Popular"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5101 bp-groups/bp-groups-template.php:5130
+#: bp-groups/bp-groups-template.php:5157 bp-groups/bp-groups-template.php:5186
 msgid "Administrator Of"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5102 bp-groups/bp-groups-template.php:5133
+#: bp-groups/bp-groups-template.php:5158 bp-groups/bp-groups-template.php:5189
 msgid "Moderator Of"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5160
+#: bp-groups/bp-groups-template.php:5216
 msgid "Viewing groups of the type: %s"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5244
+#: bp-groups/bp-groups-template.php:5300
 msgid "Group avatar"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5505
+#: bp-groups/bp-groups-template.php:5573
 msgid "requested %s"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5576
+#: bp-groups/bp-groups-template.php:5644
 msgid "Viewing 1 request"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5578
+#: bp-groups/bp-groups-template.php:5646
 msgid "Viewing %1$s - %2$s of %3$s request"
 msgid_plural "Viewing %1$s - %2$s of %3$s requests"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-groups/bp-groups-template.php:5845
+#: bp-groups/bp-groups-template.php:5913
 msgid "Viewing 1 invitation"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:5847
+#: bp-groups/bp-groups-template.php:5915
 msgid "Viewing %1$s - %2$s of %3$s invitation"
 msgid_plural "Viewing %1$s - %2$s of %3$s invitations"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-groups/bp-groups-template.php:5868
+#: bp-groups/bp-groups-template.php:5936
 msgid "Group Activity RSS Feed"
 msgstr ""
 
-#: bp-groups/bp-groups-template.php:6150
+#: bp-groups/bp-groups-template.php:6218
 msgid "%s group"
 msgid_plural "%s groups"
 msgstr[0] ""
 msgstr[1] ""
 
 #: bp-groups/bp-groups-widgets.php:68
-#: bp-groups/classes/class-bp-groups-widget.php:143
+#: bp-groups/classes/class-bp-groups-widget.php:148
 msgid "created %s"
 msgstr ""
 
@@ -4696,36 +5262,36 @@ msgstr ""
 msgid "You do not have access to this content."
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:560
-#: bp-groups/classes/class-bp-groups-component.php:593
-#: bp-templates/bp-nouveau/includes/groups/classes.php:233
+#: bp-groups/classes/class-bp-groups-component.php:561
+#: bp-groups/classes/class-bp-groups-component.php:594
+#: bp-templates/bp-nouveau/includes/groups/classes.php:250
 msgid "Memberships"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:571
+#: bp-groups/classes/class-bp-groups-component.php:572
 msgid "Invitations"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:703
+#: bp-groups/classes/class-bp-groups-component.php:704
 msgid "Details"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:716
+#: bp-groups/classes/class-bp-groups-component.php:717
 msgid "Photo"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:724
+#: bp-groups/classes/class-bp-groups-component.php:725
 #: bp-templates/bp-legacy/buddypress/groups/create.php:296
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-cover-image.php:12
 #. translators: accessibility text
 msgid "Cover Image"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:738
+#: bp-groups/classes/class-bp-groups-component.php:739
 msgid "Requests"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:885
+#: bp-groups/classes/class-bp-groups-component.php:886
 msgid "No Group Profile Photo"
 msgstr ""
 
@@ -4761,21 +5327,21 @@ msgid_plural "Hidden <span class=\"count\">(%s)</span>"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bp-groups/classes/class-bp-groups-list-table.php:470
+#: bp-groups/classes/class-bp-groups-list-table.php:478
 #. translators: accessibility text
 msgid "Select group %1$d"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-list-table.php:773
-#: bp-groups/classes/class-bp-groups-list-table.php:775
+#: bp-groups/classes/class-bp-groups-list-table.php:781
+#: bp-groups/classes/class-bp-groups-list-table.php:783
 msgid "Change group type to&hellip;"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-list-table.php:783
+#: bp-groups/classes/class-bp-groups-list-table.php:791
 msgid "No Group Type"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-list-table.php:788
+#: bp-groups/classes/class-bp-groups-list-table.php:796
 #: bp-members/classes/class-bp-members-admin.php:2236
 #: bp-xprofile/classes/class-bp-xprofile-user-admin.php:388
 msgid "Change"
@@ -4789,4171 +5355,5361 @@ msgstr ""
 msgid "A dynamic list of recently active, popular, newest, or alphabetical groups"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-widget.php:163
+#: bp-groups/classes/class-bp-groups-widget.php:168
 msgid "There are no groups to display."
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-widget.php:219
+#: bp-groups/classes/class-bp-groups-widget.php:228
 msgid "Link widget title to Groups directory"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-widget.php:221
+#: bp-groups/classes/class-bp-groups-widget.php:230
 msgid "Max groups to show:"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-widget.php:224
+#: bp-groups/classes/class-bp-groups-widget.php:233
 msgid "Default groups to show:"
 msgstr ""
 
-#: bp-groups/screens/single/admin/delete-group.php:43
-msgid "There was an error deleting the group. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:75
+msgid "A unique numeric ID for the group invitation."
 msgstr ""
 
-#: bp-groups/screens/single/admin/delete-group.php:45
-msgid "The group was deleted successfully."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:200
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:321
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:566
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:692
+msgid "Sorry, you need to be logged in to see the group invitations."
 msgstr ""
 
-#: bp-groups/screens/single/admin/edit-details.php:34
-msgid "Groups must have a name and a description. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:257
+msgid "Sorry, you are not allowed to fetch group invitations with those arguments."
 msgstr ""
 
-#: bp-groups/screens/single/admin/edit-details.php:42
-msgid "There was an error updating group details. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:331
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:576
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:702
+msgid "Invalid group invitation ID."
 msgstr ""
 
-#: bp-groups/screens/single/admin/edit-details.php:44
-msgid "Group details were successfully updated."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:351
+msgid "Sorry, you are not allowed to fetch an invitation."
 msgstr ""
 
-#: bp-groups/screens/single/admin/group-avatar.php:90
-msgid "The new group profile photo was uploaded successfully."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:396
+msgid "Could not invite member to the group."
 msgstr ""
 
-#: bp-groups/screens/single/admin/group-settings.php:72
-msgid "There was an error updating group settings. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:451
+msgid "Sorry, you need to be logged in to create an invitation."
 msgstr ""
 
-#: bp-groups/screens/single/admin/group-settings.php:74
-msgid "Group settings were successfully updated."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:482
+msgid "Sorry, you are not allowed to create the invitation as requested."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:36
-msgid "There was an error when promoting that user. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:514
+msgid "Could not accept group invitation."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:38
-msgid "User promoted successfully"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:589
+msgid "Sorry, you are not allowed to accept the invitation as requested."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:69
-msgid "There was an error when demoting that user. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:642
+msgid "Could not delete group invitation."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:71
-msgid "User demoted successfully"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:717
+msgid "Sorry, you are not allowed to delete the invitation as requested."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:95
-msgid "There was an error when banning that user. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:864
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:826
+msgid "The optional message to send to the invited user."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:97
-msgid "User banned successfully"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:873
+msgid "Whether the invite should be sent to the invitee."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:121
-msgid "There was an error when unbanning that user. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:909
+msgid "A unique numeric ID for the BP Invitation object."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:123
-msgid "User ban removed successfully"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:915
+msgid "The ID of the user who is invited to join the Group."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:147
-msgid "There was an error removing that user from the group. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:920
+msgid "Whether the invite has been sent to the invitee."
 msgstr ""
 
-#: bp-groups/screens/single/admin/manage-members.php:149
-msgid "User removed successfully"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:925
+msgid "The ID of the user who made the invite."
 msgstr ""
 
-#: bp-groups/screens/single/admin/membership-requests.php:38
-msgid "There was an error accepting the membership request. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:930
+msgid "The ID of the group to which the user has been invited."
 msgstr ""
 
-#: bp-groups/screens/single/admin/membership-requests.php:40
-msgid "Group membership request accepted"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:935
+msgid "The date the object was created or last updated, in the site's timezone."
 msgstr ""
 
-#: bp-groups/screens/single/admin/membership-requests.php:49
-msgid "There was an error rejecting the membership request. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:941
+msgid "Invitation or request."
 msgstr ""
 
-#: bp-groups/screens/single/admin/membership-requests.php:51
-msgid "Group membership request rejected"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:948
+msgid "The raw and rendered versions for the content of the message."
 msgstr ""
 
-#: bp-groups/screens/single/request-membership.php:28
-msgid "Group invite accepted"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:956
+msgid "Content for the object, as it exists in the database."
 msgstr ""
 
-#: bp-groups/screens/single/request-membership.php:30
-msgid "There was an error accepting the group invitation. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:961
+msgid "HTML content for the object, transformed for display."
 msgstr ""
 
-#: bp-groups/screens/single/request-membership.php:42
-msgid "There was an error sending your group membership request. Please try again."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:995
+msgid "ID of the group to limit results to."
 msgstr ""
 
-#: bp-groups/screens/single/request-membership.php:44
-msgid ""
-"Your membership request was sent to the group administrator successfully. "
-"You will be notified when the group administrator responds to your request."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:1004
+msgid "Return only invitations extended to this user."
 msgstr ""
 
-#: bp-groups/screens/single/send-invites.php:35
-msgid "Group invites sent."
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:1013
+msgid "Return only invitations extended by this user."
 msgstr ""
 
-#: bp-groups/screens/single/send-invites.php:91
-msgid "You are not allowed to send or remove invites"
+#: bp-groups/classes/class-bp-rest-group-invites-endpoint.php:1022
+msgid "Limit result set to invites that have been sent, not sent, or include all."
 msgstr ""
 
-#: bp-groups/screens/single/send-invites.php:94
-msgid "The member requested to join the group"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:93
+msgid "A unique numeric ID for the Group Member."
 msgstr ""
 
-#: bp-groups/screens/user/invites.php:24
-msgid "Group invite could not be accepted"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:219
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:347
+msgid "Could not join the group."
 msgstr ""
 
-#: bp-groups/screens/user/invites.php:29
-msgid "Group invite accepted. Visit %s."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:244
+msgid "Could not add member to the group."
 msgstr ""
 
-#: bp-groups/screens/user/invites.php:53
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:144
-msgid "Group invite could not be rejected"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:301
+msgid "Sorry, you need to be logged in to join a group."
 msgstr ""
 
-#: bp-groups/screens/user/invites.php:55
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:152
-msgid "Group invite rejected"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:313
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:480
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:617
+msgid "Invalid group member ID."
 msgstr ""
 
-#: bp-loader.php:62
-msgid "Your site does not support BuddyPress."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:393
+msgid "Could not promote member."
 msgstr ""
 
-#: bp-loader.php:64
-#. translators: 1: current PHP version, 2: required PHP version
-msgid ""
-"Your site is currently running PHP version %1$s, while BuddyPress requires "
-"version %2$s or greater."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:403
+msgid "Could not demote member."
 msgstr ""
 
-#: bp-loader.php:65
-msgid "Please update your server or deactivate BuddyPress."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:412
+msgid "Could not demote member from the group."
 msgstr ""
 
-#: bp-members/bp-members-activity.php:24
-msgid "New member registered"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:413
+msgid "Could not ban member from the group."
 msgstr ""
 
-#: bp-members/bp-members-activity.php:26
-msgid "New Members"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:414
+msgid "Could not unban member from the group."
 msgstr ""
 
-#: bp-members/bp-members-activity.php:50
-msgid "%s became a registered member"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:468
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:546
+msgid "Sorry, you need to be logged in to make an update."
 msgstr ""
 
-#: bp-members/bp-members-adminbar.php:41
-msgid "Edit My Profile"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:507
+msgid "Sorry, you are not allowed to ban this group member."
 msgstr ""
 
-#: bp-members/bp-members-adminbar.php:95
-msgid "Edit Member"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:508
+msgid "Sorry, you are not allowed to unban this group member."
 msgstr ""
 
-#: bp-members/bp-members-adminbar.php:104
-#: bp-members/classes/class-bp-members-admin.php:436
-#: bp-members/classes/class-bp-members-admin.php:437
-#: bp-members/classes/class-bp-members-admin.php:473
-#: bp-members/classes/class-bp-members-admin.php:474
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/edit.php:11
-#: bp-xprofile/bp-xprofile-template.php:1248
-msgid "Edit Profile"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:509
+msgid "Sorry, you are not allowed to promote this group member."
 msgstr ""
 
-#: bp-members/bp-members-adminbar.php:113
-#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:482
-msgid "Edit Profile Photo"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:510
+msgid "Sorry, you are not allowed to demote this group member."
 msgstr ""
 
-#: bp-members/bp-members-adminbar.php:123
-msgid "Edit Cover Image"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:556
+msgid "Could not remove member from this group."
 msgstr ""
 
-#: bp-members/bp-members-adminbar.php:143
-#: bp-settings/classes/class-bp-settings-component.php:211
-#: bp-settings/classes/class-bp-settings-component.php:286
-#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:44
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/delete-account.php:12
-#: bp-templates/bp-nouveau/includes/functions.php:1291
-msgid "Delete Account"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:605
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:646
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:662
+msgid "Sorry, you need to be logged in to view a group membership."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1039
-msgid ""
-"User last_activity data is no longer stored in usermeta. Use "
-"bp_get_user_last_activity() instead."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:781
+msgid "Group role to assign the user to."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1074
-msgid ""
-"User last_activity data is no longer stored in usermeta. Use "
-"bp_update_user_last_activity() instead."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:795
+msgid "A unique numeric ID for the Member to add to the Group."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1289
-#: bp-members/bp-members-functions.php:2377
-msgid "<strong>ERROR</strong>: Your account has been marked as a spammer."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:805
+msgid "Action used to update a group member."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1522
-msgid "Please check your email address."
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:845
+msgid "`1` if this member is a Group moderator, `0` otherwise."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1526
-#: bp-members/bp-members-functions.php:1530
-msgid "Sorry, that email address is not allowed!"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:852
+msgid "`1` if this member has been banned from the Group, `0` otherwise."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1534
-msgid "Sorry, that email address is already used!"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:859
+msgid "`1` if this member is a Group administrator, `0` otherwise."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1574
-msgid "Please enter a username"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:866
+msgid "`1` if the membership of this user has been confirmed, `0` otherwise."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1580
-msgid "That username is not allowed"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:873
+msgid ""
+"The date of the last time the membership of this user was modified, in the "
+"site's timezone."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1585
-msgid "Usernames can contain only letters, numbers, ., -, and @"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:903
+msgid "Sort the order of results by the status of the group members."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1590
-msgid "Username must be at least 4 characters"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:912
+msgid "Ensure result set includes specific Group roles."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1595
-msgid "Sorry, usernames may not contain the character \"_\"!"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:924
+msgid "Ensure result set excludes specific member IDs."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1602
-msgid "Sorry, usernames must have letters too!"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:933
+msgid "Whether results should exclude group admins and mods."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1614
-msgid "Sorry, that username already exists!"
+#: bp-groups/classes/class-bp-rest-group-membership-endpoint.php:941
+msgid "Whether results should exclude banned group members."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1828
-#: bp-members/bp-members-functions.php:1855
-msgid "Invalid activation key."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:85
+msgid "A unique numeric ID for the group membership request."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1835
-msgid "The user is already active."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:196
+msgid "Sorry, you need to be logged in to view membership requests."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1837
-msgid "The site is already active."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:232
+msgid "Sorry, you are not allowed to view membership requests."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1867
-msgid "Could not create user"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:296
+msgid "Sorry, you need to be logged in to get a membership."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:1881
-msgid "That username is already activated."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:306
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:556
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:682
+msgid "Invalid group membership request ID."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:2240
-msgid ""
-"If you have not received an email yet, <a href=\"%s\">click here to resend "
-"it</a>."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:319
+msgid "Sorry, you are not allowed to view a membership request."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:2242
-msgid ""
-"<strong>ERROR</strong>: Your account has not been activated. Check your "
-"email for the activation link."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:354
+msgid "There is already a request to this member."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:2273
-msgid "<strong>ERROR</strong>: Your account has already been activated."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:372
+msgid "Could not send membership request to this group."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:2275
-msgid "Activation email resent! Please check your inbox or spam folder."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:427
+msgid "Sorry, you need to be logged in to create a membership request."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:2464
-msgid "Member type already exists."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:462
+msgid "User may not extend requests on behalf of another user."
 msgstr ""
 
-#: bp-members/bp-members-functions.php:2487
-msgid "You may not register a member type with this name."
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:494
+msgid "There was an error accepting the membership request."
 msgstr ""
 
-#: bp-members/bp-members-template.php:482
-msgid "Viewing 1 active member"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:568
+msgid "User is not allowed to approve membership requests to this group."
 msgstr ""
 
-#: bp-members/bp-members-template.php:484
-msgid "Viewing %1$s - %2$s of %3$s active member"
-msgid_plural "Viewing %1$s - %2$s of %3$s active members"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-members/bp-members-template.php:488
-msgid "Viewing 1 member with friends"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:622
+msgid "There was an error rejecting the membership request."
 msgstr ""
 
-#: bp-members/bp-members-template.php:490
-msgid "Viewing %1$s - %2$s of %3$s member with friends"
-msgid_plural "Viewing %1$s - %2$s of %3$s members with friends"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-members/bp-members-template.php:494
-msgid "Viewing 1 online member"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:672
+msgid "Sorry, you need to be logged in to delete a request."
 msgstr ""
 
-#: bp-members/bp-members-template.php:496
-msgid "Viewing %1$s - %2$s of %3$s online member"
-msgid_plural "Viewing %1$s - %2$s of %3$s online members"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-members/bp-members-template.php:2010
-msgid "Viewing members of the type: %s"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:695
+msgid "User is not allowed to delete this membership request."
 msgstr ""
 
-#: bp-members/bp-members-template.php:2492
-msgid "Your Profile Photo"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:866
+msgid "The ID of the user who requested a Group membership."
 msgstr ""
 
-#: bp-members/bp-members-template.php:2582
-msgid "Activity RSS Feed"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:867
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:894
+msgid "The ID of the group the user requested a membership for."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-members-widget.php:29
-msgid "A dynamic list of recently active, popular, and newest members"
+#: bp-groups/classes/class-bp-rest-group-membership-request-endpoint.php:893
+msgid "Return only Membership requests made by a specific user."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-members-widget.php:157
-msgid "No one has signed up yet!"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:179
+msgid "Sorry, you cannot view hidden groups."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-members-widget.php:221
-#: bp-members/classes/class-bp-core-recently-active-widget.php:150
-#: bp-members/classes/class-bp-core-whos-online-widget.php:149
-msgid "Max members to show:"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:255
+msgid "Sorry, you cannot view the group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-members-widget.php:227
-msgid "Default members to show:"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:290
+msgid "Please, enter the name of group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-recently-active-widget.php:27
-msgid "Profile photos of recently active members"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:302
+msgid "Cannot create new group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-recently-active-widget.php:98
-msgid "There are no recently active members"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:387
+msgid "Cannot update existing group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-recently-active-widget.php:169
-msgid "Recently Active Members"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:437
+msgid "Sorry, you need to be logged in to update this group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-whos-online-widget.php:27
-msgid "Profile photos of online users"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:460
+msgid "Sorry, you are not allowed to update this group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-whos-online-widget.php:97
-msgid "There are no users currently online"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:497
+msgid "Could not delete the group."
 msgstr ""
 
-#: bp-members/classes/class-bp-core-whos-online-widget.php:168
-msgid "Who's Online"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:541
+msgid "Sorry, you need to be logged in to delete this group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:353
-msgid "Profile photo was deleted."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:563
+msgid "Sorry, you are not allowed to delete this group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:371
-msgid "Profile updated."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:965
+msgid "The ID of the user who created the Group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:383
-msgid "There was a problem deleting that profile photo. Please try again."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:971
+msgid "The name of the Group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:389
-msgid "User could not be removed as spammer."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:980
+msgid "The URL-friendly slug for the Group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:395
-msgid "User could not be marked as spammer."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:988
+msgid "The permalink to the Group on the site."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:401
-msgid "An error occurred while trying to update the profile."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:995
+msgid "The description of the Group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:407
-#: bp-xprofile/screens/edit.php:65
-msgid ""
-"Your changes have not been saved. Please fill in all required fields, and "
-"save your changes again."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1004
+msgid "Content for the description of the Group, as it exists in the database."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:413
-#: bp-xprofile/screens/edit.php:131
-msgid ""
-"There was a problem updating some of your profile information. Please try "
-"again."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1009
+msgid "HTML content for the description of the Group, transformed for display."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:485
-#: bp-members/classes/class-bp-members-admin.php:486
-msgid "Manage Signups"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1018
+msgid "The status of the Group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:708
-#: bp-members/classes/class-bp-members-admin.php:914
-msgid "Profile"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1028
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1218
+msgid "Whether the Group has a forum enabled or not."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:712
-msgid "Extended Profile"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1033
+msgid "ID of the parent Group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:734
-msgid "You cannot edit the requested user."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1038
+msgid "The date the Group was created, in the site's timezone."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:776
-msgid "This is the admin view of a user&#39;s profile."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1045
+msgid "Group administrators."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:777
-msgid ""
-"In the main column, you can edit the fields of the user&#39;s extended "
-"profile."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1054
+msgid "Group moderators."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:778
-msgid ""
-"In the right-hand column, you can update the user&#39;s status, delete the "
-"user&#39;s avatar, and view recent statistics."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1063
+msgid "Count of all Group members."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:784
-msgid ""
-"<a "
-"href=\"https://codex.buddypress.org/administrator-guide/extended-profiles/\""
-">Managing Profiles</a>"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1069
+msgid "The date the Group was last active, in the site's timezone."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:916
-msgid "Edit User"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1098
+msgid "Avatar URLs for the group."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:940
-msgid "&larr; Back to Users"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1126
+#: bp-members/classes/class-bp-rest-members-endpoint.php:744
+msgid "Shorthand for certain orderby/order combinations."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1022
-msgid "No user found with this ID."
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1144
+msgid "Order Groups by which attribute."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1055
-msgid "User account has not yet been activated"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1153
+msgid "Group statuses to limit results to."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1081
-msgid "Spammer"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1165
+msgid "Pass a user_id to limit to only Groups that this user is a member of."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1093
-msgid "Registered on: %s"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1173
+msgid "Get Groups that are children of the specified Group(s) IDs."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1103
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/profile-loop.php:11
-msgid "View Profile"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1183
+msgid "Get Groups based on their meta data information."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1104
-msgid "Update Profile"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1191
+msgid "Ensure result set includes Groups with specific IDs."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1123
-#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:433
-msgid ""
-"%s has been marked as a spammer. All BuddyPress data associated with the "
-"user has been removed"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1200
+msgid "Ensure result set excludes Groups with specific IDs"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1154
-msgid "Last active: %1$s"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1209
+msgid "Limit results set to a certain Group type."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1196
-#. translators: accessibility text
-msgid "Select member type"
+#: bp-groups/classes/class-bp-rest-groups-endpoint.php:1226
+msgid "Whether results should include hidden Groups."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1201
-#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:209
-#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:232
-#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:240
-#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:108
-#. translators: no option picked in select box
-msgid "----"
+#: bp-groups/screens/single/admin/delete-group.php:43
+msgid "There was an error deleting the group. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1281
-msgid "Extended"
+#: bp-groups/screens/single/admin/delete-group.php:45
+msgid "The group was deleted successfully."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1523
-msgid "This is the administration screen for pending accounts on your site."
+#: bp-groups/screens/single/admin/edit-details.php:34
+msgid "Groups must have a name and a description. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1524
-msgid ""
-"From the screen options, you can customize the displayed columns and the "
-"pagination of this screen."
+#: bp-groups/screens/single/admin/edit-details.php:42
+msgid "There was an error updating group details. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1525
-msgid ""
-"You can reorder the list of your pending accounts by clicking on the "
-"Username, Email or Registered column headers."
+#: bp-groups/screens/single/admin/edit-details.php:44
+msgid "Group details were successfully updated."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1526
-msgid ""
-"Using the search form, you can find pending accounts more easily. The "
-"Username and Email fields will be included in the search."
+#: bp-groups/screens/single/admin/group-avatar.php:90
+msgid "The new group profile photo was uploaded successfully."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1533
-msgid ""
-"Hovering over a row in the pending accounts list will display action links "
-"that allow you to manage pending accounts. You can perform the following "
-"actions:"
+#: bp-groups/screens/single/admin/group-settings.php:72
+msgid "There was an error updating group settings. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1534
-msgid ""
-"\"Email\" takes you to the confirmation screen before being able to send "
-"the activation link to the desired pending account. You can only send the "
-"activation email once per day."
+#: bp-groups/screens/single/admin/group-settings.php:74
+msgid "Group settings were successfully updated."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1535
-msgid ""
-"\"Delete\" allows you to delete a pending account from your site. You will "
-"be asked to confirm this deletion."
+#: bp-groups/screens/single/admin/manage-members.php:36
+msgid "There was an error when promoting that user. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1536
-msgid ""
-"By clicking on a Username you will be able to activate a pending account "
-"from the confirmation screen."
+#: bp-groups/screens/single/admin/manage-members.php:38
+msgid "User promoted successfully"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1537
-msgid "Bulk actions allow you to perform these 3 actions for the selected rows."
+#: bp-groups/screens/single/admin/manage-members.php:69
+msgid "There was an error when demoting that user. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1549
-#. translators: accessibility text
-msgid "Filter users list"
+#: bp-groups/screens/single/admin/manage-members.php:71
+msgid "User demoted successfully"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1551
-#. translators: accessibility text
-msgid "Pending users list navigation"
+#: bp-groups/screens/single/admin/manage-members.php:95
+msgid "There was an error when banning that user. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1553
-#. translators: accessibility text
-msgid "Pending users list"
+#: bp-groups/screens/single/admin/manage-members.php:97
+msgid "User banned successfully"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1813
-msgid "There was a problem sending the activation emails. Please try again."
+#: bp-groups/screens/single/admin/manage-members.php:121
+msgid "There was an error when unbanning that user. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1820
-msgid "There was a problem activating accounts. Please try again."
+#: bp-groups/screens/single/admin/manage-members.php:123
+msgid "User ban removed successfully"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1827
-msgid "There was a problem deleting sign-ups. Please try again."
+#: bp-groups/screens/single/admin/manage-members.php:147
+msgid "There was an error removing that user from the group. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1951
-#: bp-members/classes/class-bp-members-admin.php:1972
-msgid "Users"
+#: bp-groups/screens/single/admin/manage-members.php:149
+msgid "User removed successfully"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:1998
-msgid "Search Pending Users"
+#: bp-groups/screens/single/admin/membership-requests.php:40
+msgid "There was an error accepting the membership request. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2046
-msgid "Delete Pending Accounts"
+#: bp-groups/screens/single/admin/membership-requests.php:42
+msgid "Group membership request accepted"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2048
-msgid "You are about to delete the following account:"
+#: bp-groups/screens/single/admin/membership-requests.php:53
+msgid "There was an error rejecting the membership request. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2050
-msgid "You are about to delete the following accounts:"
+#: bp-groups/screens/single/admin/membership-requests.php:55
+msgid "Group membership request rejected"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2055
-msgid "Activate Pending Accounts"
+#: bp-groups/screens/single/request-membership.php:28
+msgid "Group invite accepted"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2057
-msgid "You are about to activate the following account:"
+#: bp-groups/screens/single/request-membership.php:30
+msgid "There was an error accepting the group invitation. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2059
-msgid "You are about to activate the following accounts:"
+#: bp-groups/screens/single/request-membership.php:42
+msgid "There was an error sending your group membership request. Please try again."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2064
-msgid "Resend Activation Emails"
+#: bp-groups/screens/single/request-membership.php:44
+msgid ""
+"Your membership request was sent to the group administrator successfully. "
+"You will be notified when the group administrator responds to your request."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2066
-msgid "You are about to resend an activation email to the following account:"
+#: bp-groups/screens/single/send-invites.php:35
+msgid "Group invites sent."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2068
-msgid "You are about to resend an activation email to the following accounts:"
+#: bp-groups/screens/single/send-invites.php:91
+msgid "You are not allowed to send or remove invites"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2137
-msgid "Display Name"
+#: bp-groups/screens/single/send-invites.php:94
+msgid "The member requested to join the group"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2142
-#: bp-members/classes/class-bp-members-list-table.php:152
-#: bp-members/classes/class-bp-members-list-table.php:316
-#: bp-members/classes/class-bp-members-ms-list-table.php:139
-#: bp-members/classes/class-bp-members-ms-list-table.php:309
-#: bp-settings/classes/class-bp-settings-component.php:164
-#: bp-settings/classes/class-bp-settings-component.php:261
-msgid "Email"
+#: bp-groups/screens/user/invites.php:24
+msgid "Group invite could not be accepted"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2165
-msgid "Last notified: %s"
+#: bp-groups/screens/user/invites.php:29
+msgid "Group invite accepted. Visit %s."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2169
-msgid "(less than 24 hours ago)"
+#: bp-groups/screens/user/invites.php:53
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:144
+msgid "Group invite could not be rejected"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2187
-msgid "Confirm"
+#: bp-groups/screens/user/invites.php:55
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:152
+msgid "Group invite rejected"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2221
-#: bp-members/classes/class-bp-members-admin.php:2223
-msgid "Change member type to&hellip;"
+#: bp-loader.php:62
+msgid "Your site does not support BuddyPress."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2231
-msgid "No Member Type"
+#: bp-loader.php:64
+#. translators: 1: current PHP version, 2: required PHP version
+msgid ""
+"Your site is currently running PHP version %1$s, while BuddyPress requires "
+"version %2$s or greater."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2326
-msgid "There was an error while changing member type. Please try again."
+#: bp-loader.php:65
+msgid "Please update your server or deactivate BuddyPress."
 msgstr ""
 
-#: bp-members/classes/class-bp-members-admin.php:2329
-msgid "Member type was changed successfully."
+#: bp-members/bp-members-activity.php:24
+msgid "New member registered"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-component.php:164
-msgid "Search Members..."
+#: bp-members/bp-members-activity.php:26
+msgid "New Members"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-component.php:431
-msgid "You"
+#: bp-members/bp-members-activity.php:50
+msgid "%s became a registered member"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:153
-#: bp-members/classes/class-bp-members-ms-list-table.php:140
-msgid "Registered"
+#: bp-members/bp-members-adminbar.php:41
+msgid "Edit My Profile"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:154
-#: bp-members/classes/class-bp-members-ms-list-table.php:141
-msgid "Last Sent"
+#: bp-members/bp-members-adminbar.php:95
+msgid "Edit Member"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:155
-#: bp-members/classes/class-bp-members-ms-list-table.php:142
-msgid "Emails Sent"
+#: bp-members/bp-members-adminbar.php:104
+#: bp-members/classes/class-bp-members-admin.php:436
+#: bp-members/classes/class-bp-members-admin.php:437
+#: bp-members/classes/class-bp-members-admin.php:473
+#: bp-members/classes/class-bp-members-admin.php:474
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/edit.php:11
+#: bp-xprofile/bp-xprofile-template.php:1248
+msgid "Edit Profile"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:187
-#: bp-members/classes/class-bp-members-ms-list-table.php:173
-msgid "No pending accounts found."
+#: bp-members/bp-members-adminbar.php:113
+#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:482
+msgid "Edit Profile Photo"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:193
-#: bp-members/classes/class-bp-members-list-table.php:195
-#: bp-members/classes/class-bp-members-ms-list-table.php:178
-msgid "Edit settings"
+#: bp-members/bp-members-adminbar.php:123
+msgid "Edit Cover Image"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:198
-#: bp-members/classes/class-bp-members-ms-list-table.php:181
-msgid "Registration is disabled. %s"
+#: bp-members/bp-members-adminbar.php:143
+#: bp-settings/classes/class-bp-settings-component.php:211
+#: bp-settings/classes/class-bp-settings-component.php:286
+#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:44
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/delete-account.php:12
+#: bp-templates/bp-nouveau/includes/functions.php:1277
+msgid "Delete Account"
 msgstr ""
 
-#: bp-members/classes/class-bp-members-list-table.php:265
-#: bp-members/classes/class-bp-members-ms-list-table.php:258
-#. translators: accessibility text
-msgid "Select user: %s"
+#: bp-members/bp-members-functions.php:1073
+msgid ""
+"User last_activity data is no longer stored in usermeta. Use "
+"bp_get_user_last_activity() instead."
 msgstr ""
 
-#: bp-members/classes/class-bp-registration-theme-compat.php:103
-msgid "Check Your Email To Activate Your Account!"
+#: bp-members/bp-members-functions.php:1108
+msgid ""
+"User last_activity data is no longer stored in usermeta. Use "
+"bp_update_user_last_activity() instead."
 msgstr ""
 
-#: bp-members/classes/class-bp-registration-theme-compat.php:111
-msgid "Account Activated"
+#: bp-members/bp-members-functions.php:1323
+#: bp-members/bp-members-functions.php:2454
+msgid "<strong>ERROR</strong>: Your account has been marked as a spammer."
 msgstr ""
 
-#: bp-members/classes/class-bp-signup.php:633
-#: bp-members/classes/class-bp-signup.php:720
-#: bp-members/classes/class-bp-signup.php:797
-msgid "the sign-up has already been activated."
+#: bp-members/bp-members-functions.php:1556
+msgid "Please check your email address."
 msgstr ""
 
-#: bp-members/screens/activate.php:106
-msgid "Your account is now active!"
+#: bp-members/bp-members-functions.php:1560
+#: bp-members/bp-members-functions.php:1564
+msgid "Sorry, that email address is not allowed!"
 msgstr ""
 
-#: bp-members/screens/register.php:70
-msgid "Please make sure you enter your password twice"
+#: bp-members/bp-members-functions.php:1568
+msgid "Sorry, that email address is already used!"
 msgstr ""
 
-#: bp-members/screens/register.php:74
-msgid "The passwords you entered do not match."
+#: bp-members/bp-members-functions.php:1608
+msgid "Please enter a username"
 msgstr ""
 
-#: bp-members/screens/register.php:77
-msgid "You must indicate that you have read and agreed to the Privacy Policy."
+#: bp-members/bp-members-functions.php:1614
+msgid "That username is not allowed"
 msgstr ""
 
-#: bp-members/screens/register.php:107
-msgid "This is a required field"
+#: bp-members/bp-members-functions.php:1619
+msgid "Usernames can contain only letters, numbers, ., -, and @"
 msgstr ""
 
-#: bp-messages/actions/bulk-delete.php:31
-msgid "There was an error deleting messages."
+#: bp-members/bp-members-functions.php:1624
+msgid "Username must be at least 4 characters"
 msgstr ""
 
-#: bp-messages/actions/bulk-delete.php:33
-#: bp-messages/actions/bulk-manage.php:54
-msgid "Messages deleted."
+#: bp-members/bp-members-functions.php:1629
+msgid "Sorry, usernames may not contain the character \"_\"!"
 msgstr ""
 
-#: bp-messages/actions/bulk-manage-star.php:55
-msgid "%s message was successfully starred"
-msgid_plural "%s messages were successfully starred"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-messages/actions/bulk-manage-star.php:69
-msgid "%s message was successfully unstarred"
-msgid_plural "%s messages were successfully unstarred"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-messages/actions/bulk-manage.php:43
-msgid "There was a problem managing your messages."
+#: bp-members/bp-members-functions.php:1636
+msgid "Sorry, usernames must have letters too!"
 msgstr ""
 
-#: bp-messages/actions/bulk-manage.php:61
-msgid "Messages marked as read"
+#: bp-members/bp-members-functions.php:1648
+msgid "Sorry, that username already exists!"
 msgstr ""
 
-#: bp-messages/actions/bulk-manage.php:68
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:686
-msgid "Messages marked as unread."
+#: bp-members/bp-members-functions.php:1867
+#: bp-members/bp-members-functions.php:1894
+msgid "Invalid activation key."
 msgstr ""
 
-#: bp-messages/actions/compose.php:37
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:55
-msgid "Your message was not sent. Please enter a subject line."
+#: bp-members/bp-members-functions.php:1874
+msgid "The user is already active."
 msgstr ""
 
-#: bp-messages/actions/compose.php:39 bp-messages/bp-messages-functions.php:63
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:57
-msgid "Your message was not sent. Please enter some content."
+#: bp-members/bp-members-functions.php:1876
+msgid "The site is already active."
 msgstr ""
 
-#: bp-messages/actions/compose.php:54
-#: bp-messages/classes/class-bp-messages-notices-admin.php:233
-msgid "Notice successfully created."
+#: bp-members/bp-members-functions.php:1906
+msgid "Could not create user"
 msgstr ""
 
-#: bp-messages/actions/compose.php:60
-#: bp-messages/classes/class-bp-messages-notices-admin.php:227
-msgid "Notice was not created. Please try again."
+#: bp-members/bp-members-functions.php:1920
+msgid "That username is already activated."
 msgstr ""
 
-#: bp-messages/actions/compose.php:91
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:94
-msgid "Message successfully sent."
+#: bp-members/bp-members-functions.php:2276
+msgid ""
+"If you have not received an email yet, <a href=\"%s\">click here to resend "
+"it</a>."
 msgstr ""
 
-#: bp-messages/actions/delete.php:32
-msgid "There was an error deleting that message."
+#: bp-members/bp-members-functions.php:2278
+msgid ""
+"<strong>ERROR</strong>: Your account has not been activated. Check your "
+"email for the activation link."
 msgstr ""
 
-#: bp-messages/actions/delete.php:34
-msgid "Message deleted."
+#: bp-members/bp-members-functions.php:2309
+msgid "<strong>ERROR</strong>: Your account has already been activated."
 msgstr ""
 
-#: bp-messages/actions/notices.php:55
-msgid "Notice deactivated successfully."
+#: bp-members/bp-members-functions.php:2311
+msgid "Activation email resent! Please check your inbox or spam folder."
 msgstr ""
 
-#: bp-messages/actions/notices.php:56
-msgid "There was a problem deactivating that notice."
+#: bp-members/bp-members-functions.php:2541
+msgid "Member type already exists."
 msgstr ""
 
-#: bp-messages/actions/notices.php:63
-msgid "Notice activated successfully."
+#: bp-members/bp-members-functions.php:2564
+msgid "You may not register a member type with this name."
 msgstr ""
 
-#: bp-messages/actions/notices.php:64
-msgid "There was a problem activating that notice."
+#: bp-members/bp-members-template.php:482
+msgid "Viewing 1 active member"
 msgstr ""
 
-#: bp-messages/actions/notices.php:71
-msgid "Notice deleted successfully."
-msgstr ""
+#: bp-members/bp-members-template.php:484
+msgid "Viewing %1$s - %2$s of %3$s active member"
+msgid_plural "Viewing %1$s - %2$s of %3$s active members"
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-messages/actions/notices.php:72
-msgid "There was a problem deleting that notice."
+#: bp-members/bp-members-template.php:488
+msgid "Viewing 1 member with friends"
 msgstr ""
 
-#: bp-messages/actions/read.php:41
-msgid "Message marked as read."
-msgstr ""
+#: bp-members/bp-members-template.php:490
+msgid "Viewing %1$s - %2$s of %3$s member with friends"
+msgid_plural "Viewing %1$s - %2$s of %3$s members with friends"
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-messages/actions/read.php:43 bp-messages/actions/unread.php:43
-msgid "There was a problem marking that message."
+#: bp-members/bp-members-template.php:494
+msgid "Viewing 1 online member"
 msgstr ""
 
-#: bp-messages/actions/unread.php:41
-msgid "Message marked unread."
-msgstr ""
+#: bp-members/bp-members-template.php:496
+msgid "Viewing %1$s - %2$s of %3$s online member"
+msgid_plural "Viewing %1$s - %2$s of %3$s online members"
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-messages/actions/view.php:41
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:216
-msgid "Your reply was sent successfully"
+#: bp-members/bp-members-template.php:2010
+msgid "Viewing members of the type: %s"
 msgstr ""
 
-#: bp-messages/actions/view.php:43
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:111
-msgid "There was a problem sending your reply. Please try again."
+#: bp-members/bp-members-template.php:2492
+msgid "Your Profile Photo"
 msgstr ""
 
-#: bp-messages/bp-messages-filters.php:143
-msgid "BuddyPress Messages"
+#: bp-members/bp-members-template.php:2582
+msgid "Activity RSS Feed"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:60
-msgid "Your message was not sent. Please use a valid sender."
+#: bp-members/classes/class-bp-core-members-widget.php:29
+msgid "A dynamic list of recently active, popular, and newest members"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:96
-msgid "Re: %s"
+#: bp-members/classes/class-bp-core-members-widget.php:160
+msgid "No one has signed up yet!"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:105
-msgid "Message could not be sent. Please enter a recipient."
+#: bp-members/classes/class-bp-core-members-widget.php:227
+#: bp-members/classes/class-bp-core-recently-active-widget.php:158
+#: bp-members/classes/class-bp-core-whos-online-widget.php:157
+msgid "Max members to show:"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:113
-msgid "No Subject"
+#: bp-members/classes/class-bp-core-members-widget.php:233
+msgid "Default members to show:"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:165
-msgid ""
-"Message could not be sent because you have entered an invalid username. "
-"Please try again."
+#: bp-members/classes/class-bp-core-recently-active-widget.php:27
+msgid "Profile photos of recently active members"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:185
-msgid "Message was not sent. Please try again."
+#: bp-members/classes/class-bp-core-recently-active-widget.php:101
+msgid "There are no recently active members"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:693
-msgid "Message Subject"
+#: bp-members/classes/class-bp-core-recently-active-widget.php:177
+msgid "Recently Active Members"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:697
-msgid "Message Content"
+#: bp-members/classes/class-bp-core-whos-online-widget.php:27
+msgid "Profile photos of online users"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:705
-msgid "Recipients"
+#: bp-members/classes/class-bp-core-whos-online-widget.php:100
+msgid "There are no users currently online"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:709
-msgid "Thread URL"
+#: bp-members/classes/class-bp-core-whos-online-widget.php:176
+msgid "Who's Online"
 msgstr ""
 
-#: bp-messages/bp-messages-functions.php:716
-#: bp-messages/classes/class-bp-messages-component.php:39
-msgid "Private Messages"
+#: bp-members/classes/class-bp-members-admin.php:353
+msgid "Profile photo was deleted."
 msgstr ""
 
-#: bp-messages/bp-messages-notifications.php:31
-#: bp-messages/classes/class-bp-messages-component.php:239
-#: bp-messages/classes/class-bp-messages-component.php:332
-msgid "Inbox"
+#: bp-members/classes/class-bp-members-admin.php:371
+msgid "Profile updated."
 msgstr ""
 
-#: bp-messages/bp-messages-notifications.php:37
-msgid "You have %d new messages"
+#: bp-members/classes/class-bp-members-admin.php:383
+msgid "There was a problem deleting that profile photo. Please try again."
 msgstr ""
 
-#: bp-messages/bp-messages-notifications.php:48
-msgid "%s sent you a new private message"
+#: bp-members/classes/class-bp-members-admin.php:389
+msgid "User could not be removed as spammer."
 msgstr ""
 
-#: bp-messages/bp-messages-notifications.php:50
-msgid "You have %s new private message"
-msgid_plural "You have %s new private messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-messages/bp-messages-notifications.php:272
-msgid "A member sends you a new message"
+#: bp-members/classes/class-bp-members-admin.php:395
+msgid "User could not be marked as spammer."
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:107
-#: bp-templates/bp-legacy/buddypress-functions.php:345
-#: bp-templates/bp-nouveau/includes/messages/functions.php:124
-msgid "Unstar"
+#: bp-members/classes/class-bp-members-admin.php:401
+msgid "An error occurred while trying to update the profile."
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:108
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:82
-#: bp-templates/bp-legacy/buddypress-functions.php:346
-#: bp-templates/bp-nouveau/includes/messages/functions.php:125
-#. translators: accessibility text
-msgid "Star"
+#: bp-members/classes/class-bp-members-admin.php:407
+#: bp-xprofile/screens/edit.php:65
+msgid ""
+"Your changes have not been saved. Please fill in all required fields, and "
+"save your changes again."
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:109
-#: bp-messages/classes/class-bp-messages-component.php:250
-#: bp-messages/classes/class-bp-messages-component.php:357
-#: bp-templates/bp-legacy/buddypress-functions.php:347
-#: bp-templates/bp-nouveau/includes/messages/functions.php:126
-msgid "Starred"
+#: bp-members/classes/class-bp-members-admin.php:413
+#: bp-xprofile/screens/edit.php:131
+msgid ""
+"There was a problem updating some of your profile information. Please try "
+"again."
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:110
-#: bp-templates/bp-legacy/buddypress-functions.php:348
-#: bp-templates/bp-nouveau/includes/messages/functions.php:127
-msgid "Not starred"
+#: bp-members/classes/class-bp-members-admin.php:485
+#: bp-members/classes/class-bp-members-admin.php:486
+msgid "Manage Signups"
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:111
-#: bp-templates/bp-legacy/buddypress-functions.php:349
-#: bp-templates/bp-nouveau/includes/messages/functions.php:128
-msgid "Remove all starred messages in this thread"
+#: bp-members/classes/class-bp-members-admin.php:708
+#: bp-members/classes/class-bp-members-admin.php:914
+msgid "Profile"
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:112
-#: bp-templates/bp-legacy/buddypress-functions.php:350
-#: bp-templates/bp-nouveau/includes/messages/functions.php:129
-msgid "Star the first message in this thread"
+#: bp-members/classes/class-bp-members-admin.php:712
+msgid "Extended Profile"
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:339
-msgid "Add star"
+#: bp-members/classes/class-bp-members-admin.php:734
+msgid "You cannot edit the requested user."
 msgstr ""
 
-#: bp-messages/bp-messages-star.php:340
-msgid "Remove star"
+#: bp-members/classes/class-bp-members-admin.php:776
+msgid "This is the admin view of a user&#39;s profile."
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:642
-#. translators: 1: total number, 2: accessibility text: number of unread
-#. messages
-msgid "%d unread"
-msgid_plural "%d unread"
-msgstr[0] ""
-msgstr[1] ""
-
-#: bp-messages/bp-messages-template.php:826
-msgid "Viewing 1 message"
+#: bp-members/classes/class-bp-members-admin.php:777
+msgid ""
+"In the main column, you can edit the fields of the user&#39;s extended "
+"profile."
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:828
-msgid "Viewing %1$s - %2$s of %3$s message"
-msgid_plural "Viewing %1$s - %2$s of %3$s messages"
-msgstr[0] ""
-msgstr[1] ""
+#: bp-members/classes/class-bp-members-admin.php:778
+msgid ""
+"In the right-hand column, you can update the user&#39;s status, delete the "
+"user&#39;s avatar, and view recent statistics."
+msgstr ""
 
-#: bp-messages/bp-messages-template.php:856
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/search-form.php:11
-#. translators: accessibility text
-msgid "Search Messages"
+#: bp-members/classes/class-bp-members-admin.php:784
+msgid ""
+"<a "
+"href=\"https://codex.buddypress.org/administrator-guide/extended-profiles/\""
+">Managing Profiles</a>"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1001
-#. translators: accessibility text
-msgid "Select:"
+#: bp-members/classes/class-bp-members-admin.php:916
+msgid "Edit User"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1004
-#: bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php:192
-#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:173
-#. translators: accessibility text
-msgid "Select"
+#: bp-members/classes/class-bp-members-admin.php:940
+msgid "&larr; Back to Users"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1020
-msgid "Delete Selected"
+#: bp-members/classes/class-bp-members-admin.php:1022
+msgid "No user found with this ID."
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1033
-#: bp-notifications/bp-notifications-template.php:1024
-#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:103
-#. translators: accessibility text
-msgid "Select Bulk Action"
+#: bp-members/classes/class-bp-members-admin.php:1055
+msgid "User account has not yet been activated"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1036
-#: bp-notifications/bp-notifications-template.php:1027
-msgid "Bulk Actions"
+#: bp-members/classes/class-bp-members-admin.php:1081
+msgid "Spammer"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1037
-#: bp-notifications/bp-notifications-template.php:1030
-msgid "Mark read"
+#: bp-members/classes/class-bp-members-admin.php:1093
+msgid "Registered on: %s"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1038
-#: bp-notifications/bp-notifications-template.php:1032
-msgid "Mark unread"
+#: bp-members/classes/class-bp-members-admin.php:1103
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/profile-loop.php:11
+msgid "View Profile"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1049
-#: bp-notifications/bp-notifications-template.php:1036
-msgid "Apply"
+#: bp-members/classes/class-bp-members-admin.php:1104
+msgid "Update Profile"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1102
-msgid "Currently Active"
+#: bp-members/classes/class-bp-members-admin.php:1123
+#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:433
+msgid ""
+"%s has been marked as a spammer. All BuddyPress data associated with the "
+"user has been removed"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1274
-msgid "Deactivate"
+#: bp-members/classes/class-bp-members-admin.php:1154
+msgid "Last active: %1$s"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1340
-msgid "Dismiss this notice"
+#: bp-members/classes/class-bp-members-admin.php:1196
+#. translators: accessibility text
+msgid "Select member type"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1429
-msgid "Private Message"
+#: bp-members/classes/class-bp-members-admin.php:1201
+#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:209
+#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:232
+#: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:240
+#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:108
+#. translators: no option picked in select box
+msgid "----"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1658
-msgid "%s recipients"
+#: bp-members/classes/class-bp-members-admin.php:1281
+msgid "Extended"
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1728
-#: bp-messages/bp-messages-template.php:1984
-#: bp-messages/classes/class-bp-messages-thread.php:861
-msgid "Deleted User"
+#: bp-members/classes/class-bp-members-admin.php:1523
+msgid "This is the administration screen for pending accounts on your site."
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:1733
-msgid "you"
+#: bp-members/classes/class-bp-members-admin.php:1524
+msgid ""
+"From the screen options, you can customize the displayed columns and the "
+"pagination of this screen."
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:2049
-msgid "Sent %s"
+#: bp-members/classes/class-bp-members-admin.php:1525
+msgid ""
+"You can reorder the list of your pending accounts by clicking on the "
+"Username, Email or Registered column headers."
 msgstr ""
 
-#: bp-messages/bp-messages-template.php:2103
-msgid "[deleted]"
+#: bp-members/classes/class-bp-members-admin.php:1526
+msgid ""
+"Using the search form, you can find pending accounts more easily. The "
+"Username and Email fields will be included in the search."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:182
-msgid "Search Messages..."
+#: bp-members/classes/class-bp-members-admin.php:1533
+msgid ""
+"Hovering over a row in the pending accounts list will display action links "
+"that allow you to manage pending accounts. You can perform the following "
+"actions:"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:215
-#: bp-messages/classes/class-bp-messages-component.php:322
-#. translators: %s: Unread message count for the current user
-msgid "Messages %s"
+#: bp-members/classes/class-bp-members-admin.php:1534
+msgid ""
+"\"Email\" takes you to the confirmation screen before being able to send "
+"the activation link to the desired pending account. You can only send the "
+"activation email once per day."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:261
-#: bp-messages/classes/class-bp-messages-component.php:367
-msgid "Sent"
+#: bp-members/classes/class-bp-members-admin.php:1535
+msgid ""
+"\"Delete\" allows you to delete a pending account from your site. You will "
+"be asked to confirm this deletion."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:275
-#: bp-messages/classes/class-bp-messages-component.php:376
-msgid "Compose"
+#: bp-members/classes/class-bp-members-admin.php:1536
+msgid ""
+"By clicking on a Username you will be able to activate a pending account "
+"from the confirmation screen."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:290
-msgid "Notices"
+#: bp-members/classes/class-bp-members-admin.php:1537
+msgid "Bulk actions allow you to perform these 3 actions for the selected rows."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:327
-#. translators: %s: Unread message count for the current user
-msgid "Inbox %s"
+#: bp-members/classes/class-bp-members-admin.php:1549
+#. translators: accessibility text
+msgid "Filter users list"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:386
-msgid "Site Notices"
+#: bp-members/classes/class-bp-members-admin.php:1551
+#. translators: accessibility text
+msgid "Pending users list navigation"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-component.php:405
-msgid "My Messages"
+#: bp-members/classes/class-bp-members-admin.php:1553
+#. translators: accessibility text
+msgid "Pending users list"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:197
-msgid "Manage notices shown at front end of your site to all logged-in users."
+#: bp-members/classes/class-bp-members-admin.php:1813
+msgid "There was a problem sending the activation emails. Please try again."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:201
-msgid "Add New Notice"
+#: bp-members/classes/class-bp-members-admin.php:1820
+msgid "There was a problem activating accounts. Please try again."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:206
-#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:39
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:65
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:39
-msgid "Subject"
+#: bp-members/classes/class-bp-members-admin.php:1827
+msgid "There was a problem deleting sign-ups. Please try again."
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:213
-msgid "Publish Notice"
+#: bp-members/classes/class-bp-members-admin.php:1951
+#: bp-members/classes/class-bp-members-admin.php:1972
+msgid "Users"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:229
-msgid "Notice was not updated. Please try again."
+#: bp-members/classes/class-bp-members-admin.php:1998
+msgid "Search Pending Users"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:235
-msgid "Notice successfully updated."
+#: bp-members/classes/class-bp-members-admin.php:2046
+msgid "Delete Pending Accounts"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-admin.php:245
-msgid "Notices List"
+#: bp-members/classes/class-bp-members-admin.php:2048
+msgid "You are about to delete the following account:"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-list-table.php:119
-msgid "Activate Notice"
+#: bp-members/classes/class-bp-members-admin.php:2050
+msgid "You are about to delete the following accounts:"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-list-table.php:127
-msgid "Delete Notice"
+#: bp-members/classes/class-bp-members-admin.php:2055
+msgid "Activate Pending Accounts"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-notices-list-table.php:139
-msgid "Deactivate Notice"
+#: bp-members/classes/class-bp-members-admin.php:2057
+msgid "You are about to activate the following account:"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:26
-msgid "(BuddyPress) Sitewide Notices"
+#: bp-members/classes/class-bp-members-admin.php:2059
+msgid "You are about to activate the following accounts:"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:29
-msgid "Display Sitewide Notices posted by the site administrator"
+#: bp-members/classes/class-bp-members-admin.php:2064
+msgid "Resend Activation Emails"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-thread.php:852
-msgid "%s Recipients"
+#: bp-members/classes/class-bp-members-admin.php:2066
+msgid "You are about to resend an activation email to the following account:"
 msgstr ""
 
-#: bp-messages/screens/view.php:28
-msgid "The conversation you tried to access is no longer available"
+#: bp-members/classes/class-bp-members-admin.php:2068
+msgid "You are about to resend an activation email to the following accounts:"
 msgstr ""
 
-#: bp-messages/screens/view.php:43
-msgid "You do not have access to that conversation."
+#: bp-members/classes/class-bp-members-admin.php:2137
+msgid "Display Name"
 msgstr ""
 
-#: bp-messages/screens/view.php:54
-msgid "Messages <span class=\"%s\">%s</span>"
+#: bp-members/classes/class-bp-members-admin.php:2142
+#: bp-members/classes/class-bp-members-list-table.php:152
+#: bp-members/classes/class-bp-members-list-table.php:316
+#: bp-members/classes/class-bp-members-ms-list-table.php:139
+#: bp-members/classes/class-bp-members-ms-list-table.php:309
+#: bp-settings/classes/class-bp-settings-component.php:164
+#: bp-settings/classes/class-bp-settings-component.php:261
+msgid "Email"
 msgstr ""
 
-#: bp-notifications/actions/bulk-manage.php:36
-msgid "There was a problem managing your notifications."
+#: bp-members/classes/class-bp-members-admin.php:2165
+msgid "Last notified: %s"
 msgstr ""
 
-#: bp-notifications/actions/bulk-manage.php:48
-msgid "Notifications deleted."
+#: bp-members/classes/class-bp-members-admin.php:2169
+msgid "(less than 24 hours ago)"
 msgstr ""
 
-#: bp-notifications/actions/bulk-manage.php:55
-msgid "Notifications marked as read"
+#: bp-members/classes/class-bp-members-admin.php:2187
+msgid "Confirm"
 msgstr ""
 
-#: bp-notifications/actions/bulk-manage.php:62
-msgid "Notifications marked as unread."
+#: bp-members/classes/class-bp-members-admin.php:2221
+#: bp-members/classes/class-bp-members-admin.php:2223
+msgid "Change member type to&hellip;"
 msgstr ""
 
-#: bp-notifications/actions/delete.php:36
-msgid "Notification successfully deleted."
+#: bp-members/classes/class-bp-members-admin.php:2231
+msgid "No Member Type"
 msgstr ""
 
-#: bp-notifications/actions/delete.php:38
-msgid "There was a problem deleting that notification."
+#: bp-members/classes/class-bp-members-admin.php:2326
+msgid "There was an error while changing member type. Please try again."
 msgstr ""
 
-#: bp-notifications/bp-notifications-adminbar.php:56
-msgid "No new notifications"
+#: bp-members/classes/class-bp-members-admin.php:2329
+msgid "Member type was changed successfully."
 msgstr ""
 
-#: bp-notifications/bp-notifications-filters.php:23
-msgid "BuddyPress Notifications Data"
+#: bp-members/classes/class-bp-members-component.php:164
+msgid "Search Members..."
 msgstr ""
 
-#: bp-notifications/bp-notifications-functions.php:867
-msgid "Notification Content"
+#: bp-members/classes/class-bp-members-component.php:431
+msgid "You"
 msgstr ""
 
-#: bp-notifications/bp-notifications-functions.php:871
-msgid "Notification Date"
+#: bp-members/classes/class-bp-members-list-table.php:153
+#: bp-members/classes/class-bp-members-ms-list-table.php:140
+msgid "Registered"
 msgstr ""
 
-#: bp-notifications/bp-notifications-functions.php:875
-msgid "Status"
+#: bp-members/classes/class-bp-members-list-table.php:154
+#: bp-members/classes/class-bp-members-ms-list-table.php:141
+msgid "Last Sent"
 msgstr ""
 
-#: bp-notifications/bp-notifications-functions.php:876
-#: bp-notifications/bp-notifications-template.php:650
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:145
-msgid "Unread"
+#: bp-members/classes/class-bp-members-list-table.php:155
+#: bp-members/classes/class-bp-members-ms-list-table.php:142
+msgid "Emails Sent"
 msgstr ""
 
-#: bp-notifications/bp-notifications-functions.php:876
-#: bp-notifications/bp-notifications-template.php:558
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:143
-msgid "Read"
+#: bp-members/classes/class-bp-members-list-table.php:187
+#: bp-members/classes/class-bp-members-ms-list-table.php:173
+msgid "No pending accounts found."
 msgstr ""
 
-#: bp-notifications/bp-notifications-template.php:474
-msgid "Date not found"
+#: bp-members/classes/class-bp-members-list-table.php:193
+#: bp-members/classes/class-bp-members-list-table.php:195
+#: bp-members/classes/class-bp-members-ms-list-table.php:178
+msgid "Edit settings"
 msgstr ""
 
-#: bp-notifications/bp-notifications-template.php:937
-msgid "Viewing 1 notification"
+#: bp-members/classes/class-bp-members-list-table.php:198
+#: bp-members/classes/class-bp-members-ms-list-table.php:181
+msgid "Registration is disabled. %s"
 msgstr ""
 
-#: bp-notifications/bp-notifications-template.php:939
-msgid "Viewing %1$s - %2$s of %3$s notification"
-msgid_plural "Viewing %1$s - %2$s of %3$s notifications"
-msgstr[0] ""
-msgstr[1] ""
+#: bp-members/classes/class-bp-members-list-table.php:265
+#: bp-members/classes/class-bp-members-ms-list-table.php:258
+#. translators: accessibility text
+msgid "Select user: %s"
+msgstr ""
 
-#: bp-notifications/bp-notifications-template.php:1003
-#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:85
-msgid "Newest First"
+#: bp-members/classes/class-bp-registration-theme-compat.php:103
+msgid "Check Your Email To Activate Your Account!"
 msgstr ""
 
-#: bp-notifications/bp-notifications-template.php:1004
-#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:86
-msgid "Oldest First"
+#: bp-members/classes/class-bp-registration-theme-compat.php:111
+msgid "Account Activated"
 msgstr ""
 
-#: bp-notifications/bp-notifications-template.php:1008
-msgid "Go"
+#: bp-members/classes/class-bp-rest-members-endpoint.php:143
+#: bp-members/classes/class-bp-rest-members-endpoint.php:167
+#: bp-members/classes/class-bp-rest-members-endpoint.php:199
+#: bp-members/classes/class-bp-rest-members-endpoint.php:247
+msgid "Sorry, you are not allowed to view members."
 msgstr ""
 
-#: bp-notifications/classes/class-bp-notifications-component.php:122
-msgid "Search Notifications..."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:301
+#. translators: %s: transport method name
+msgid "'%s' Transport Method not implemented."
 msgstr ""
 
-#: bp-notifications/screens/read.php:60
-msgid "Notification successfully marked unread."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:322
+#. translators: %s: transport method name
+msgid "'%s' Transport method not implemented."
 msgstr ""
 
-#: bp-notifications/screens/read.php:62 bp-notifications/screens/unread.php:62
-msgid "There was a problem marking that notification."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:490
+msgid "No extended profile data available as the component is inactive"
 msgstr ""
 
-#: bp-notifications/screens/unread.php:60
-msgid "Notification successfully marked read."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:528
+msgid "The data for the user was not found."
 msgstr ""
 
-#: bp-settings/actions/data.php:40
-msgid "We were unable to generate the data export request."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:557
+msgid "The email address for the member."
 msgstr ""
 
-#: bp-settings/actions/data.php:51
-msgid "Data export request successfully created"
+#: bp-members/classes/class-bp-rest-members-endpoint.php:606
+msgid "Display name for the member."
 msgstr ""
 
-#: bp-settings/actions/delete-account.php:51
-msgid "%s was successfully deleted."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:614
+msgid "The name used for that user in @-mentions."
 msgstr ""
 
-#: bp-settings/actions/general.php:189
-msgid "That email address is invalid. Check the formatting and try again."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:622
+msgid "Profile URL of the member."
 msgstr ""
 
-#: bp-settings/actions/general.php:192
-msgid "That email address is currently unavailable for use."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:629
+msgid "An alphanumeric identifier for the Member."
 msgstr ""
 
-#: bp-settings/actions/general.php:195
-msgid "That email address is already taken."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:638
+msgid "Member types associated with the member."
 msgstr ""
 
-#: bp-settings/actions/general.php:198
-msgid "Email address cannot be empty."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:644
+msgid "Registration date for the member."
 msgstr ""
 
-#: bp-settings/actions/general.php:208
-msgid "Your current password is invalid."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:651
+msgid "Password for the member (never included)."
 msgstr ""
 
-#: bp-settings/actions/general.php:211
-msgid "The new password fields did not match."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:660
+msgid "Roles assigned to the member."
 msgstr ""
 
-#: bp-settings/actions/general.php:214
-msgid "One of the password fields was empty."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:668
+msgid "All capabilities assigned to the user."
 msgstr ""
 
-#: bp-settings/actions/general.php:217
-msgid "The new password must be different from the current password."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:674
+msgid "Any extra capabilities assigned to the user."
 msgstr ""
 
-#: bp-settings/actions/general.php:226
-msgid "Your settings have been saved."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:680
+msgid "Member XProfile groups and its fields."
 msgstr ""
 
-#: bp-settings/actions/general.php:232
-msgid "No changes were made to your account."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:709
+msgid "Avatar URLs for the member."
 msgstr ""
 
-#: bp-settings/actions/general.php:234
-msgid "No changes were made to this account."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:753
+msgid "Limit results to friends of a user."
 msgstr ""
 
-#: bp-settings/actions/general.php:289
-msgid "You have successfully verified your new email address."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:761
+msgid "Pass IDs of users to limit result set."
 msgstr ""
 
-#: bp-settings/actions/general.php:292
-msgid "There was a problem verifying your new email address. Please try again."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:788
+msgid "Limit results set to certain type(s)."
 msgstr ""
 
-#: bp-settings/actions/general.php:304
-msgid "You have successfully dismissed your pending email change."
+#: bp-members/classes/class-bp-rest-members-endpoint.php:797
+msgid "Limit results set to a certain XProfile field."
 msgstr ""
 
-#: bp-settings/actions/notifications.php:42
-msgid "Your notification settings have been saved."
+#: bp-members/classes/class-bp-signup.php:633
+#: bp-members/classes/class-bp-signup.php:725
+#: bp-members/classes/class-bp-signup.php:802
+msgid "the sign-up has already been activated."
 msgstr ""
 
-#: bp-settings/actions/notifications.php:44
-msgid "This user's notification settings have been saved."
+#: bp-members/screens/activate.php:106
+msgid "Your account is now active!"
 msgstr ""
 
-#: bp-settings/bp-settings-filters.php:22
-msgid "BuddyPress Settings Data"
+#: bp-members/screens/register.php:70
+msgid "Please make sure you enter your password twice"
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:145
-msgid "Receive email when a member mentions you in an update?"
+#: bp-members/screens/register.php:74
+msgid "The passwords you entered do not match."
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:149
-msgid "Receive email when a member replies to an update or comment you've posted?"
+#: bp-members/screens/register.php:77
+msgid "You must indicate that you have read and agreed to the Privacy Policy."
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:156
-msgid "Receive email when a member sends you a new message?"
+#: bp-members/screens/register.php:107
+msgid "This is a required field"
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:163
-msgid "Receive email when a member invites you to join a group?"
+#: bp-messages/actions/bulk-delete.php:31
+msgid "There was an error deleting messages."
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:170
-msgid "Receive email when group information is updated?"
+#: bp-messages/actions/bulk-delete.php:33
+#: bp-messages/actions/bulk-manage.php:54
+msgid "Messages deleted."
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:174
-msgid "Receive email when you are promoted to a group administrator or moderator?"
-msgstr ""
+#: bp-messages/actions/bulk-manage-star.php:55
+msgid "%s message was successfully starred"
+msgid_plural "%s messages were successfully starred"
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-settings/bp-settings-functions.php:178
-msgid ""
-"Receive email when a member requests to join a private group for which you "
-"are an admin?"
-msgstr ""
+#: bp-messages/actions/bulk-manage-star.php:69
+msgid "%s message was successfully unstarred"
+msgid_plural "%s messages were successfully unstarred"
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-settings/bp-settings-functions.php:182
-msgid "Receive email when your request to join a group has been approved or denied?"
+#: bp-messages/actions/bulk-manage.php:43
+msgid "There was a problem managing your messages."
 msgstr ""
 
-#: bp-settings/bp-settings-functions.php:201
-msgid "Receive group invitations from my friends only?"
+#: bp-messages/actions/bulk-manage.php:61
+msgid "Messages marked as read"
 msgstr ""
 
-#: bp-settings/bp-settings-template.php:89
-msgid "There is a pending change of your email address to %s."
+#: bp-messages/actions/bulk-manage.php:68
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:686
+msgid "Messages marked as unread."
 msgstr ""
 
-#: bp-settings/bp-settings-template.php:94
-msgid ""
-"Check your email (%1$s) for the verification link, or <a "
-"href=\"%2$s\">cancel the pending change</a>."
+#: bp-messages/actions/compose.php:37
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:55
+msgid "Your message was not sent. Please enter a subject line."
 msgstr ""
 
-#: bp-settings/classes/class-bp-settings-component.php:152
-#: bp-settings/classes/class-bp-settings-component.php:251
-msgid "General"
+#: bp-messages/actions/compose.php:39 bp-messages/bp-messages-functions.php:63
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:57
+msgid "Your message was not sent. Please enter some content."
 msgstr ""
 
-#: bp-settings/classes/class-bp-settings-component.php:176
-msgid "Capabilities"
+#: bp-messages/actions/compose.php:54
+#: bp-messages/classes/class-bp-messages-notices-admin.php:233
+msgid "Notice successfully created."
 msgstr ""
 
-#: bp-settings/classes/class-bp-settings-component.php:198
-#: bp-settings/classes/class-bp-settings-component.php:275
-msgid "Export Data"
+#: bp-messages/actions/compose.php:60
+#: bp-messages/classes/class-bp-messages-notices-admin.php:227
+msgid "Notice was not created. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/activity-loop.php:34
-msgid "Load More"
+#: bp-messages/actions/compose.php:91
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:94
+msgid "Message successfully sent."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/activity-loop.php:48
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:157
-#: bp-templates/bp-nouveau/includes/functions.php:961
-msgid "Sorry, there was no activity found. Please try a different filter."
+#: bp-messages/actions/delete.php:32
+msgid "There was an error deleting that message."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/comment.php:30
-#. translators: 1: user profile link, 2: user name, 3: activity permalink, 4:
-#. ISO8601 timestamp, 5: activity relative timestamp
-msgid ""
-"<a href=\"%1$s\">%2$s</a> replied <a href=\"%3$s\" "
-"class=\"activity-time-since\"><span class=\"time-since\" "
-"data-livestamp=\"%4$s\">%5$s</span></a>"
+#: bp-messages/actions/delete.php:34
+msgid "Message deleted."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/entry.php:60
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:310
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:314
-msgid "View Conversation"
+#: bp-messages/actions/notices.php:55
+msgid "Notice deactivated successfully."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/entry.php:68
-msgid "Comment %s"
+#: bp-messages/actions/notices.php:56
+msgid "There was a problem deactivating that notice."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/entry.php:76
-#: bp-templates/bp-legacy/buddypress-functions.php:307
-#: bp-templates/bp-legacy/buddypress-functions.php:1260
-#: bp-templates/bp-legacy/buddypress-functions.php:1288
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:151
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:378
-msgid "Favorite"
+#: bp-messages/actions/notices.php:63
+msgid "Notice activated successfully."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/entry.php:80
-#: bp-templates/bp-legacy/buddypress-functions.php:310
-#: bp-templates/bp-legacy/buddypress-functions.php:1258
-#: bp-templates/bp-legacy/buddypress-functions.php:1290
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:111
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:389
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:390
-msgid "Remove Favorite"
+#: bp-messages/actions/notices.php:64
+msgid "There was a problem activating that notice."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/entry.php:126
-#. translators: accessibility text
-msgid "Comment"
+#: bp-messages/actions/notices.php:71
+msgid "Notice deleted successfully."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/entry.php:130
-msgid "Post"
+#: bp-messages/actions/notices.php:72
+msgid "There was a problem deleting that notice."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:48
-msgid "Sitewide activities navigation"
+#: bp-messages/actions/read.php:41
+msgid "Message marked as read."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:59
-#: bp-templates/bp-legacy/buddypress/members/index.php:62
-msgid "All Members %s"
+#: bp-messages/actions/read.php:43 bp-messages/actions/unread.php:43
+msgid "There was a problem marking that message."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:76
-#: bp-templates/bp-legacy/buddypress/members/index.php:65
-msgid "My Friends %s"
+#: bp-messages/actions/unread.php:41
+msgid "Message marked unread."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:101
-#: bp-templates/bp-legacy/buddypress/groups/index.php:65
-#. translators: %s: total joined groups count for the current user
-msgid "My Groups %s"
+#: bp-messages/actions/view.php:41
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:216
+msgid "Your reply was sent successfully"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:122
-msgid "My Favorites %s"
+#: bp-messages/actions/view.php:43
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:111
+msgid "There was a problem sending your reply. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:137
-#: bp-templates/bp-nouveau/includes/activity/functions.php:273
-msgid "Mentions"
+#: bp-messages/bp-messages-filters.php:144
+msgid "BuddyPress Messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:154
-msgid "Activity secondary navigation"
+#: bp-messages/bp-messages-functions.php:60
+msgid "Your message was not sent. Please use a valid sender."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:156
-#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:13
-#: bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php:15
-#: bp-templates/bp-nouveau/buddypress/groups/single/activity.php:21
-msgid "RSS Feed"
+#: bp-messages/bp-messages-functions.php:96
+msgid "Re: %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:156
-#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:13
-#: bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php:15
-#: bp-templates/bp-nouveau/buddypress/groups/single/activity.php:21
-msgid "RSS"
+#: bp-messages/bp-messages-functions.php:105
+msgid "Message could not be sent. Please enter a recipient."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:168
-#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:25
-#: bp-templates/bp-legacy/buddypress/members/single/activity.php:18
-#: bp-templates/bp-nouveau/includes/template-tags.php:2107
-msgid "Show:"
+#: bp-messages/bp-messages-functions.php:113
+msgid "No Subject"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/index.php:170
-#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:27
-#: bp-templates/bp-legacy/buddypress/members/single/activity.php:20
-#: bp-templates/bp-nouveau/includes/functions.php:559
-#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:53
-msgid "&mdash; Everything &mdash;"
+#: bp-messages/bp-messages-functions.php:165
+msgid ""
+"Message could not be sent because you have entered an invalid username. "
+"Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:30
-msgid "What's new in %s, %s?"
+#: bp-messages/bp-messages-functions.php:185
+msgid "Message was not sent. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:32
-#: bp-templates/bp-nouveau/includes/activity/functions.php:163
-msgid "What's new, %s?"
+#: bp-messages/bp-messages-functions.php:700
+msgid "Message Subject"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:39
-#: bp-templates/bp-nouveau/includes/activity/functions.php:164
-#. translators: accessibility text
-msgid "Post what's new"
+#: bp-messages/bp-messages-functions.php:704
+msgid "Message Content"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:48
-#: bp-templates/bp-nouveau/includes/activity/functions.php:166
-msgid "Post Update"
+#: bp-messages/bp-messages-functions.php:712
+msgid "Recipients"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:55
-#: bp-templates/bp-legacy/buddypress/activity/post-form.php:59
-#: bp-templates/bp-nouveau/includes/activity/functions.php:165
-#. translators: accessibility text
-msgid "Post in"
+#: bp-messages/bp-messages-functions.php:716
+msgid "Thread URL"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:18
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/camera.php:15
-msgid "Your browser does not support this feature."
+#: bp-messages/bp-messages-functions.php:723
+#: bp-messages/classes/class-bp-messages-component.php:39
+msgid "Private Messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:25
-msgid "Capture"
+#: bp-messages/bp-messages-notifications.php:31
+#: bp-messages/classes/class-bp-messages-component.php:239
+#: bp-messages/classes/class-bp-messages-component.php:332
+msgid "Inbox"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:26
-#: bp-templates/bp-legacy/buddypress/members/single/settings/capabilities.php:30
-#: bp-templates/bp-nouveau/includes/functions.php:1280
-#: bp-templates/bp-nouveau/includes/functions.php:1332
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1180
-#: bp-xprofile/classes/class-bp-xprofile-group.php:732
-msgid "Save"
+#: bp-messages/bp-messages-notifications.php:37
+msgid "You have %d new messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/crop.php:24
-#: bp-templates/bp-legacy/buddypress/groups/create.php:267
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:58
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:61
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:106
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:59
-msgid "Crop Image"
+#: bp-messages/bp-messages-notifications.php:48
+msgid "%s sent you a new private message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:38
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:45
-msgid ""
-"If you'd like to delete your current profile photo but not upload a new "
-"one, please use the delete profile photo button."
-msgstr ""
+#: bp-messages/bp-messages-notifications.php:50
+msgid "You have %s new private message"
+msgid_plural "You have %s new private messages"
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:39
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:46
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/index.php:36
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:44
-msgid "Delete My Profile Photo"
+#: bp-messages/bp-messages-notifications.php:272
+msgid "A member sends you a new message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:41
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:30
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:61
-#: bp-templates/bp-nouveau/includes/functions.php:1017
-msgid ""
-"If you'd like to remove the existing group profile photo but not upload a "
-"new one, please use the delete group profile photo button."
+#: bp-messages/bp-messages-star.php:107
+#: bp-templates/bp-legacy/buddypress-functions.php:345
+#: bp-templates/bp-nouveau/includes/messages/functions.php:124
+msgid "Unstar"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:42
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:32
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/index.php:39
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:71
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:72
-msgid "Delete Group Profile Photo"
+#: bp-messages/bp-messages-star.php:108
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:82
+#: bp-templates/bp-legacy/buddypress-functions.php:346
+#: bp-templates/bp-nouveau/includes/messages/functions.php:125
+#. translators: accessibility text
+msgid "Star"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:27
-msgid ""
-"If you'd like to delete your current cover image but not upload a new one, "
-"please use the delete Cover Image button."
+#: bp-messages/bp-messages-star.php:109
+#: bp-messages/classes/class-bp-messages-component.php:250
+#: bp-messages/classes/class-bp-messages-component.php:357
+#: bp-templates/bp-legacy/buddypress-functions.php:347
+#: bp-templates/bp-nouveau/includes/messages/functions.php:126
+msgid "Starred"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:28
-msgid "Delete My Cover Image"
+#: bp-messages/bp-messages-star.php:110
+#: bp-templates/bp-legacy/buddypress-functions.php:348
+#: bp-templates/bp-nouveau/includes/messages/functions.php:127
+msgid "Not starred"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:30
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/cover-images/index.php:31
-msgid ""
-"If you'd like to remove the existing group cover image but not upload a new "
-"one, please use the delete group cover image button."
+#: bp-messages/bp-messages-star.php:111
+#: bp-templates/bp-legacy/buddypress-functions.php:349
+#: bp-templates/bp-nouveau/includes/messages/functions.php:128
+msgid "Remove all starred messages in this thread"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:31
-msgid "Delete Group Cover Image"
+#: bp-messages/bp-messages-star.php:112
+#: bp-templates/bp-legacy/buddypress-functions.php:350
+#: bp-templates/bp-nouveau/includes/messages/functions.php:129
+msgid "Star the first message in this thread"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:17
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:14
-msgid "The web browser on your device cannot be used to upload files."
+#: bp-messages/bp-messages-star.php:339
+msgid "Add star"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:19
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:16
-msgid "Upload Limit Exceeded"
+#: bp-messages/bp-messages-star.php:340
+msgid "Remove star"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:24
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:21
-msgid "Drop your file here"
+#: bp-messages/bp-messages-template.php:642
+#. translators: 1: total number, 2: accessibility text: number of unread
+#. messages
+msgid "%d unread"
+msgid_plural "%d unread"
+msgstr[0] ""
+msgstr[1] ""
+
+#: bp-messages/bp-messages-template.php:826
+msgid "Viewing 1 message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:28
-#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:29
+#: bp-messages/bp-messages-template.php:828
+msgid "Viewing %1$s - %2$s of %3$s message"
+msgid_plural "Viewing %1$s - %2$s of %3$s messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: bp-messages/bp-messages-template.php:856
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/search-form.php:11
 #. translators: accessibility text
-msgid "Select your File"
+msgid "Search Messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/blogs-loop.php:121
-#: bp-templates/bp-nouveau/includes/functions.php:965
-msgid "Sorry, there were no sites found."
+#: bp-messages/bp-messages-template.php:1001
+#. translators: accessibility text
+msgid "Select:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/create.php:41
-msgid "Site registration is currently disabled"
+#: bp-messages/bp-messages-template.php:1004
+#: bp-xprofile/classes/class-bp-xprofile-field-type-multiselectbox.php:192
+#: bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php:173
+#. translators: accessibility text
+msgid "Select"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:61
-msgid "Sites directory main navigation"
+#: bp-messages/bp-messages-template.php:1020
+msgid "Delete Selected"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:63
-msgid "All Sites %s"
+#: bp-messages/bp-messages-template.php:1033
+#: bp-notifications/bp-notifications-template.php:1024
+#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:103
+#. translators: accessibility text
+msgid "Select Bulk Action"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:67
-msgid "My Sites %s"
+#: bp-messages/bp-messages-template.php:1036
+#: bp-notifications/bp-notifications-template.php:1027
+#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:107
+msgid "Bulk Actions"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:83
-msgid "Sites directory secondary navigation"
+#: bp-messages/bp-messages-template.php:1037
+#: bp-notifications/bp-notifications-template.php:1030
+msgid "Mark read"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:99
-#: bp-templates/bp-legacy/buddypress/groups/index.php:96
-#: bp-templates/bp-legacy/buddypress/members/index.php:94
-#: bp-templates/bp-legacy/buddypress/members/single/blogs.php:21
-#: bp-templates/bp-legacy/buddypress/members/single/friends.php:22
-#: bp-templates/bp-legacy/buddypress/members/single/groups.php:22
-#: bp-templates/bp-nouveau/includes/blogs/functions.php:106
-#: bp-templates/bp-nouveau/includes/groups/functions.php:591
-#: bp-templates/bp-nouveau/includes/members/functions.php:97
-msgid "Last Active"
+#: bp-messages/bp-messages-template.php:1038
+#: bp-notifications/bp-notifications-template.php:1032
+msgid "Mark unread"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/blogs/index.php:119
-#. translators: accessibility text
-msgid "Sites directory"
+#: bp-messages/bp-messages-template.php:1049
+#: bp-notifications/bp-notifications-template.php:1036
+msgid "Apply"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:62
-#. translators: accessibility text
-msgid "Group Details"
+#: bp-messages/bp-messages-template.php:1102
+msgid "Currently Active"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:75
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:23
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:25
-msgid "Group Name (required)"
+#: bp-messages/bp-messages-template.php:1296
+msgid "Deactivate"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:80
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:26
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:28
-msgid "Group Description (required)"
+#: bp-messages/bp-messages-template.php:1360
+msgid "Dismiss this notice"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:117
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:25
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:27
-msgid "Privacy Options"
+#: bp-messages/bp-messages-template.php:1449
+msgid "Private Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:121
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:29
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:30
-msgid "This is a public group"
+#: bp-messages/bp-messages-template.php:1678
+msgid "%s recipients"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:124
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:32
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:34
-msgid "Any site member can join this group."
+#: bp-messages/bp-messages-template.php:1748
+#: bp-messages/bp-messages-template.php:2004
+#: bp-messages/classes/class-bp-messages-thread.php:863
+msgid "Deleted User"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:125
-#: bp-templates/bp-legacy/buddypress/groups/create.php:133
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:33
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:41
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:35
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:45
-msgid "This group will be listed in the groups directory and in search results."
+#: bp-messages/bp-messages-template.php:1753
+msgid "you"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:126
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:34
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:36
-msgid "Group content and activity will be visible to any site member."
+#: bp-messages/bp-messages-template.php:2069
+msgid "Sent %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:129
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:37
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:40
-msgid "This is a private group"
+#: bp-messages/bp-messages-template.php:2123
+msgid "[deleted]"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:132
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:40
-msgid "Only users who request membership and are accepted can join the group."
+#: bp-messages/classes/class-bp-messages-component.php:182
+msgid "Search Messages..."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:134
-#: bp-templates/bp-legacy/buddypress/groups/create.php:142
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:42
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:50
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:46
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:56
-msgid "Group content and activity will only be visible to members of the group."
+#: bp-messages/classes/class-bp-messages-component.php:215
+#: bp-messages/classes/class-bp-messages-component.php:322
+#. translators: %s: Unread message count for the current user
+msgid "Messages %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:137
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:45
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:50
-msgid "This is a hidden group"
+#: bp-messages/classes/class-bp-messages-component.php:261
+#: bp-messages/classes/class-bp-messages-component.php:367
+msgid "Sent"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:140
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:48
-msgid "Only users who are invited can join the group."
+#: bp-messages/classes/class-bp-messages-component.php:275
+#: bp-messages/classes/class-bp-messages-component.php:376
+msgid "Compose"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:141
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:49
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:55
-msgid "This group will not be listed in the groups directory or search results."
+#: bp-messages/classes/class-bp-messages-component.php:290
+msgid "Notices"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:153
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:61
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:67
-msgid "Group Types"
+#: bp-messages/classes/class-bp-messages-component.php:327
+#. translators: %s: Unread message count for the current user
+msgid "Inbox %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:155
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:63
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:69
-msgid "Select the types this group should be a part of."
+#: bp-messages/classes/class-bp-messages-component.php:386
+msgid "Site Notices"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:163
+#: bp-messages/classes/class-bp-messages-component.php:405
+msgid "My Messages"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:197
+msgid "Manage notices shown at front end of your site to all logged-in users."
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:201
+msgid "Add New Notice"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:206
+#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:39
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:65
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:39
+msgid "Subject"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:213
+msgid "Publish Notice"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:229
+msgid "Notice was not updated. Please try again."
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:235
+msgid "Notice successfully updated."
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-admin.php:245
+msgid "Notices List"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-list-table.php:119
+msgid "Activate Notice"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-list-table.php:127
+msgid "Delete Notice"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-notices-list-table.php:139
+msgid "Deactivate Notice"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:26
+msgid "(BuddyPress) Sitewide Notices"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-sitewide-notices-widget.php:29
+msgid "Display Sitewide Notices posted by the site administrator"
+msgstr ""
+
+#: bp-messages/classes/class-bp-messages-thread.php:854
+msgid "%s Recipients"
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:94
+msgid "ID of one of the message of the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:188
+msgid "Sorry, you are not allowed to see the messages."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:210
+msgid "Sorry, you cannot view the messages."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:275
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:301
+msgid "Sorry, you are not allowed to see this thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:287
+msgid "Sorry, this thread does not exist."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:347
+msgid "There was an error trying to create the message."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:370
+msgid "Please provide some recipients for your message or reply."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:431
+msgid "Sorry, you need to be logged in to create a message."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:465
+msgid "There was an error trying to update the message."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:572
+msgid "Sorry, this message does not exist."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:582
+msgid "Sorry, you cannot add the message to your starred box."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:586
+msgid "Sorry, you cannot remove the message from your starred box."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:647
+msgid "Sorry, you are not allowed to star/unstar messages."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:693
+msgid "There was an error trying to delete a thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:994
+msgid "ID of the Messages Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1000
+msgid "ID of the Messages Thread. Required when replying to an existing Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1005
+msgid "The user ID of the Message sender."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1016
+msgid "Subject of the Message initializing the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1020
+msgid "Content of the Message to add to the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1026
+msgid "The list of the recipients user IDs of the Message."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1038
+msgid ""
+"By default the latest message of the thread will be updated. Specify this "
+"message ID to edit another message of the thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1050
+msgid "The user ID to remove from the thread"
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1086
+msgid "A unique numeric ID for the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1091
+msgid "The ID of the latest message of the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1097
+msgid "The ID of latest sender of the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1103
+msgid "Title of the latest message of the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1111
+msgid "Title of the latest message of the Thread, as it exists in the database."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1117
+msgid "Title of the latest message of the Thread, transformed for display."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1127
+msgid "Summary of the latest message of the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1136
+msgid "Summary for the latest message of the Thread, as it exists in the database."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1141
+msgid "HTML summary for the latest message of the Thread, transformed for display."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1149
+msgid "Content of the latest message of the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1158
+msgid "Content for the latest message of the Thread, as it exists in the database."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1163
+msgid "HTML content for the latest message of the Thread, transformed for display."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1172
+msgid "The date the latest message of the Thread, in the site's timezone."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1179
+msgid "Total count of unread messages into the Thread for the requested user."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1185
+msgid "The list of user IDs for all messages in the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1194
+msgid "The list of recipient User Objects involved into the Thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1202
+msgid "List of message objects for the thread."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1211
+msgid "List of starred message IDs."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1249
+msgid "Filter the result by box."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1258
+msgid "Filter the result by thread status."
+msgstr ""
+
+#: bp-messages/classes/class-bp-rest-messages-endpoint.php:1267
+msgid "Limit result to messages created by a specific user."
+msgstr ""
+
+#: bp-messages/screens/view.php:28
+msgid "The conversation you tried to access is no longer available"
+msgstr ""
+
+#: bp-messages/screens/view.php:43
+msgid "You do not have access to that conversation."
+msgstr ""
+
+#: bp-messages/screens/view.php:54
+msgid "Messages <span class=\"%s\">%s</span>"
+msgstr ""
+
+#: bp-notifications/actions/bulk-manage.php:36
+msgid "There was a problem managing your notifications."
+msgstr ""
+
+#: bp-notifications/actions/bulk-manage.php:48
+msgid "Notifications deleted."
+msgstr ""
+
+#: bp-notifications/actions/bulk-manage.php:55
+msgid "Notifications marked as read"
+msgstr ""
+
+#: bp-notifications/actions/bulk-manage.php:62
+msgid "Notifications marked as unread."
+msgstr ""
+
+#: bp-notifications/actions/delete.php:36
+msgid "Notification successfully deleted."
+msgstr ""
+
+#: bp-notifications/actions/delete.php:38
+msgid "There was a problem deleting that notification."
+msgstr ""
+
+#: bp-notifications/bp-notifications-adminbar.php:56
+msgid "No new notifications"
+msgstr ""
+
+#: bp-notifications/bp-notifications-filters.php:24
+msgid "BuddyPress Notifications Data"
+msgstr ""
+
+#: bp-notifications/bp-notifications-functions.php:867
+msgid "Notification Content"
+msgstr ""
+
+#: bp-notifications/bp-notifications-functions.php:871
+msgid "Notification Date"
+msgstr ""
+
+#: bp-notifications/bp-notifications-functions.php:875
+msgid "Status"
+msgstr ""
+
+#: bp-notifications/bp-notifications-functions.php:876
+#: bp-notifications/bp-notifications-template.php:650
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:145
+msgid "Unread"
+msgstr ""
+
+#: bp-notifications/bp-notifications-functions.php:876
+#: bp-notifications/bp-notifications-template.php:558
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:143
+msgid "Read"
+msgstr ""
+
+#: bp-notifications/bp-notifications-template.php:474
+msgid "Date not found"
+msgstr ""
+
+#: bp-notifications/bp-notifications-template.php:937
+msgid "Viewing 1 notification"
+msgstr ""
+
+#: bp-notifications/bp-notifications-template.php:939
+msgid "Viewing %1$s - %2$s of %3$s notification"
+msgid_plural "Viewing %1$s - %2$s of %3$s notifications"
+msgstr[0] ""
+msgstr[1] ""
+
+#: bp-notifications/bp-notifications-template.php:1003
+#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:85
+msgid "Newest First"
+msgstr ""
+
+#: bp-notifications/bp-notifications-template.php:1004
+#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:86
+msgid "Oldest First"
+msgstr ""
+
+#: bp-notifications/bp-notifications-template.php:1008
+msgid "Go"
+msgstr ""
+
+#: bp-notifications/classes/class-bp-notifications-component.php:122
+msgid "Search Notifications..."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:60
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:757
+msgid "A unique numeric ID for the notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:172
+msgid "Sorry, you are not allowed to see the notifications."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:237
+msgid "Sorry, you are not allowed to see the notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:249
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:464
+msgid "Invalid notification ID."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:259
+msgid "Sorry, you cannot view this notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:294
+msgid "Cannot create new notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:369
+msgid "Notification is already with the status you are trying to update into."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:384
+msgid "Cannot update the status of this notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:763
+msgid "The ID of the user the notification is addressed to."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:769
+msgid "The ID of the item associated with the notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:774
+msgid "The ID of the secondary item associated with the notification."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:779
+msgid "The name of the BuddyPress component the notification relates to."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:784
+msgid "The name of the component's action the notification is about."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:788
+msgid "The date the notification was created, in the site's timezone."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:795
+msgid "Whether it's a new notification or not."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:825
+msgid "Name of the field to order according to."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:843
+msgid "Limit result set to notifications associated with a specific component"
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:851
+msgid ""
+"Limit result set to notifications associated with a specific component's "
+"action name."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:859
+msgid "Limit result set to notifications addressed to a specific user."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:867
+msgid "Limit result set to notifications associated with a specific item ID."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:875
+msgid ""
+"Limit result set to notifications associated with a specific secondary item "
+"ID."
+msgstr ""
+
+#: bp-notifications/classes/class-bp-rest-notifications-endpoint.php:883
+msgid "Limit result set to items from specific states."
+msgstr ""
+
+#: bp-notifications/screens/read.php:60
+msgid "Notification successfully marked unread."
+msgstr ""
+
+#: bp-notifications/screens/read.php:62 bp-notifications/screens/unread.php:62
+msgid "There was a problem marking that notification."
+msgstr ""
+
+#: bp-notifications/screens/unread.php:60
+msgid "Notification successfully marked read."
+msgstr ""
+
+#: bp-settings/actions/data.php:40
+msgid "We were unable to generate the data export request."
+msgstr ""
+
+#: bp-settings/actions/data.php:51
+msgid "Data export request successfully created"
+msgstr ""
+
+#: bp-settings/actions/delete-account.php:51
+msgid "%s was successfully deleted."
+msgstr ""
+
+#: bp-settings/actions/general.php:189
+msgid "That email address is invalid. Check the formatting and try again."
+msgstr ""
+
+#: bp-settings/actions/general.php:192
+msgid "That email address is currently unavailable for use."
+msgstr ""
+
+#: bp-settings/actions/general.php:195
+msgid "That email address is already taken."
+msgstr ""
+
+#: bp-settings/actions/general.php:198
+msgid "Email address cannot be empty."
+msgstr ""
+
+#: bp-settings/actions/general.php:208
+msgid "Your current password is invalid."
+msgstr ""
+
+#: bp-settings/actions/general.php:211
+msgid "The new password fields did not match."
+msgstr ""
+
+#: bp-settings/actions/general.php:214
+msgid "One of the password fields was empty."
+msgstr ""
+
+#: bp-settings/actions/general.php:217
+msgid "The new password must be different from the current password."
+msgstr ""
+
+#: bp-settings/actions/general.php:226
+msgid "Your settings have been saved."
+msgstr ""
+
+#: bp-settings/actions/general.php:232
+msgid "No changes were made to your account."
+msgstr ""
+
+#: bp-settings/actions/general.php:234
+msgid "No changes were made to this account."
+msgstr ""
+
+#: bp-settings/actions/general.php:289
+msgid "You have successfully verified your new email address."
+msgstr ""
+
+#: bp-settings/actions/general.php:292
+msgid "There was a problem verifying your new email address. Please try again."
+msgstr ""
+
+#: bp-settings/actions/general.php:304
+msgid "You have successfully dismissed your pending email change."
+msgstr ""
+
+#: bp-settings/actions/notifications.php:42
+msgid "Your notification settings have been saved."
+msgstr ""
+
+#: bp-settings/actions/notifications.php:44
+msgid "This user's notification settings have been saved."
+msgstr ""
+
+#: bp-settings/bp-settings-filters.php:23
+msgid "BuddyPress Settings Data"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:145
+msgid "Receive email when a member mentions you in an update?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:149
+msgid "Receive email when a member replies to an update or comment you've posted?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:156
+msgid "Receive email when a member sends you a new message?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:163
+msgid "Receive email when a member invites you to join a group?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:170
+msgid "Receive email when group information is updated?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:174
+msgid "Receive email when you are promoted to a group administrator or moderator?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:178
+msgid ""
+"Receive email when a member requests to join a private group for which you "
+"are an admin?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:182
+msgid "Receive email when your request to join a group has been approved or denied?"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:201
+msgid "Receive group invitations from my friends only?"
+msgstr ""
+
+#: bp-settings/bp-settings-template.php:89
+msgid "There is a pending change of your email address to %s."
+msgstr ""
+
+#: bp-settings/bp-settings-template.php:94
+msgid ""
+"Check your email (%1$s) for the verification link, or <a "
+"href=\"%2$s\">cancel the pending change</a>."
+msgstr ""
+
+#: bp-settings/classes/class-bp-settings-component.php:152
+#: bp-settings/classes/class-bp-settings-component.php:251
+msgid "General"
+msgstr ""
+
+#: bp-settings/classes/class-bp-settings-component.php:176
+msgid "Capabilities"
+msgstr ""
+
+#: bp-settings/classes/class-bp-settings-component.php:198
+#: bp-settings/classes/class-bp-settings-component.php:275
+msgid "Export Data"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/activity-loop.php:34
+msgid "Load More"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/activity-loop.php:48
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:157
+#: bp-templates/bp-nouveau/includes/functions.php:961
+msgid "Sorry, there was no activity found. Please try a different filter."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/comment.php:30
+#. translators: 1: user profile link, 2: user name, 3: activity permalink, 4:
+#. ISO8601 timestamp, 5: activity relative timestamp
+msgid ""
+"<a href=\"%1$s\">%2$s</a> replied <a href=\"%3$s\" "
+"class=\"activity-time-since\"><span class=\"time-since\" "
+"data-livestamp=\"%4$s\">%5$s</span></a>"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/entry.php:60
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:304
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:308
+msgid "View Conversation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/entry.php:68
+msgid "Comment %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/entry.php:76
+#: bp-templates/bp-legacy/buddypress-functions.php:307
+#: bp-templates/bp-legacy/buddypress-functions.php:1260
+#: bp-templates/bp-legacy/buddypress-functions.php:1288
+msgid "Favorite"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/entry.php:80
+#: bp-templates/bp-legacy/buddypress-functions.php:310
+#: bp-templates/bp-legacy/buddypress-functions.php:1258
+#: bp-templates/bp-legacy/buddypress-functions.php:1290
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:111
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:383
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:384
+msgid "Remove Favorite"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/entry.php:126
+#. translators: accessibility text
+msgid "Comment"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/entry.php:130
+msgid "Post"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:48
+msgid "Sitewide activities navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:59
+#: bp-templates/bp-legacy/buddypress/members/index.php:62
+msgid "All Members %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:76
+#: bp-templates/bp-legacy/buddypress/members/index.php:65
+msgid "My Friends %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:101
+#: bp-templates/bp-legacy/buddypress/groups/index.php:65
+#. translators: %s: total joined groups count for the current user
+msgid "My Groups %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:122
+msgid "My Favorites %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:137
+#: bp-templates/bp-nouveau/includes/activity/functions.php:276
+msgid "Mentions"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:154
+msgid "Activity secondary navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:156
+#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:13
+#: bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php:15
+#: bp-templates/bp-nouveau/buddypress/groups/single/activity.php:21
+msgid "RSS Feed"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:156
+#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:13
+#: bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php:15
+#: bp-templates/bp-nouveau/buddypress/groups/single/activity.php:21
+msgid "RSS"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:168
+#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:25
+#: bp-templates/bp-legacy/buddypress/members/single/activity.php:18
+#: bp-templates/bp-nouveau/includes/template-tags.php:2112
+msgid "Show:"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/index.php:170
+#: bp-templates/bp-legacy/buddypress/groups/single/activity.php:27
+#: bp-templates/bp-legacy/buddypress/members/single/activity.php:20
+#: bp-templates/bp-nouveau/includes/functions.php:559
+#: bp-templates/bp-nouveau/includes/notifications/template-tags.php:53
+msgid "&mdash; Everything &mdash;"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:30
+msgid "What's new in %s, %s?"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:32
+#: bp-templates/bp-nouveau/includes/activity/functions.php:166
+msgid "What's new, %s?"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:39
+#: bp-templates/bp-nouveau/includes/activity/functions.php:167
+#. translators: accessibility text
+msgid "Post what's new"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:48
+#: bp-templates/bp-nouveau/includes/activity/functions.php:169
+msgid "Post Update"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:55
+#: bp-templates/bp-legacy/buddypress/activity/post-form.php:59
+#: bp-templates/bp-nouveau/includes/activity/functions.php:168
+#. translators: accessibility text
+msgid "Post in"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:18
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/camera.php:15
+msgid "Your browser does not support this feature."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:25
+msgid "Capture"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/camera.php:26
+#: bp-templates/bp-legacy/buddypress/members/single/settings/capabilities.php:30
+#: bp-templates/bp-nouveau/includes/functions.php:1266
+#: bp-templates/bp-nouveau/includes/functions.php:1318
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1184
+#: bp-xprofile/classes/class-bp-xprofile-group.php:819
+msgid "Save"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/crop.php:24
+#: bp-templates/bp-legacy/buddypress/groups/create.php:267
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:58
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:61
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:106
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:59
+msgid "Crop Image"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:38
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:45
+msgid ""
+"If you'd like to delete your current profile photo but not upload a new "
+"one, please use the delete profile photo button."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:39
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:46
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/index.php:36
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:44
+msgid "Delete My Profile Photo"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:41
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:30
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:61
+#: bp-templates/bp-nouveau/includes/functions.php:1017
+msgid ""
+"If you'd like to remove the existing group profile photo but not upload a "
+"new one, please use the delete group profile photo button."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/avatars/index.php:42
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:32
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/index.php:39
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:71
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:72
+msgid "Delete Group Profile Photo"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:27
+msgid ""
+"If you'd like to delete your current cover image but not upload a new one, "
+"please use the delete Cover Image button."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:28
+msgid "Delete My Cover Image"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:30
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/cover-images/index.php:31
+msgid ""
+"If you'd like to remove the existing group cover image but not upload a new "
+"one, please use the delete group cover image button."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/cover-images/index.php:31
+msgid "Delete Group Cover Image"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:17
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:14
+msgid "The web browser on your device cannot be used to upload files."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:19
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:16
+msgid "Upload Limit Exceeded"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:24
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:21
+msgid "Drop your file here"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:28
+#: bp-templates/bp-legacy/buddypress/assets/_attachments/uploader.php:29
+#. translators: accessibility text
+msgid "Select your File"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/blogs-loop.php:121
+#: bp-templates/bp-nouveau/includes/functions.php:965
+msgid "Sorry, there were no sites found."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/create.php:41
+msgid "Site registration is currently disabled"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:61
+msgid "Sites directory main navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:63
+msgid "All Sites %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:67
+msgid "My Sites %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:83
+msgid "Sites directory secondary navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:99
+#: bp-templates/bp-legacy/buddypress/groups/index.php:96
+#: bp-templates/bp-legacy/buddypress/members/index.php:94
+#: bp-templates/bp-legacy/buddypress/members/single/blogs.php:21
+#: bp-templates/bp-legacy/buddypress/members/single/friends.php:22
+#: bp-templates/bp-legacy/buddypress/members/single/groups.php:22
+#: bp-templates/bp-nouveau/includes/blogs/functions.php:106
+#: bp-templates/bp-nouveau/includes/groups/functions.php:597
+#: bp-templates/bp-nouveau/includes/members/functions.php:97
+msgid "Last Active"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/blogs/index.php:119
+#. translators: accessibility text
+msgid "Sites directory"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:62
+#. translators: accessibility text
+msgid "Group Details"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:75
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:23
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:25
+msgid "Group Name (required)"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:80
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:26
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:28
+msgid "Group Description (required)"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:117
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:25
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:27
+msgid "Privacy Options"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:121
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:29
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:30
+msgid "This is a public group"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:124
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:32
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:34
+msgid "Any site member can join this group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:125
+#: bp-templates/bp-legacy/buddypress/groups/create.php:133
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:33
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:41
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:35
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:45
+msgid "This group will be listed in the groups directory and in search results."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:126
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:34
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:36
+msgid "Group content and activity will be visible to any site member."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:129
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:37
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:40
+msgid "This is a private group"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:132
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:40
+msgid "Only users who request membership and are accepted can join the group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:134
+#: bp-templates/bp-legacy/buddypress/groups/create.php:142
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:42
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:50
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:46
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:56
+msgid "Group content and activity will only be visible to members of the group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:137
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:45
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:50
+msgid "This is a hidden group"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:140
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:48
+msgid "Only users who are invited can join the group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:141
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:49
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:55
+msgid "This group will not be listed in the groups directory or search results."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:153
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:61
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:67
+msgid "Group Types"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:155
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:63
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:69
+msgid "Select the types this group should be a part of."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:163
 #: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:71
 #. translators: Group type description shown when creating a group.
 msgid "&ndash; %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:177
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:85
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:90
-msgid "Group Invitations"
+#: bp-templates/bp-legacy/buddypress/groups/create.php:177
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:85
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:90
+msgid "Group Invitations"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:179
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:87
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:92
+msgid "Which members of this group are allowed to invite others?"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:211
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:12
+#. translators: accessibility text
+msgid "Group Avatar"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:232
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:16
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:46
+msgid ""
+"Upload an image to use as a profile photo for this group. The image will be "
+"shown on the main group page, and in search results."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:237
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:21
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:37
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:49
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:36
+#. translators: accessibility text
+msgid "Select an image"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:240
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:24
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:40
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:51
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:38
+msgid "Upload Image"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:244
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:56
+msgid ""
+"To skip the group profile photo upload process, hit the \"Next Step\" "
+"button."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:259
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:98
+msgid "Crop Group Profile Photo"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:261
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:52
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:55
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:100
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:53
+msgid "Profile photo to crop"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:264
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:55
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:58
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:103
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:56
+msgid "Profile photo preview"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:310
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-cover-image.php:23
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-cover-image.php:26
+msgid "The Cover Image will be used to customize the header of your group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:332
+#: bp-templates/bp-nouveau/buddypress/members/single/groups/invites.php:10
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/group-invites.php:11
+#. translators: accessibility text
+msgid "Group Invites"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:361
+msgid "Select people to invite from your friends list."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:379
+#: bp-templates/bp-legacy/buddypress/groups/single/invites-loop.php:75
+#: bp-templates/bp-legacy/buddypress-functions.php:1391
+msgid "Remove Invite"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:396
+msgid ""
+"Once you have built up friend connections you will be able to invite others "
+"to your group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:441
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:394
+msgid "Back to Previous Step"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:448
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:402
+msgid "Next Step"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:455
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:409
+msgid "Create Group and Continue"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/create.php:462
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:416
+msgid "Finish"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/groups-loop.php:136
+msgid "There were no groups found."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/index.php:60
+msgid "Groups directory main navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/index.php:62
+msgid "All Groups %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/index.php:80
+msgid "Groups directory secondary navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/index.php:97
+#: bp-templates/bp-legacy/buddypress/members/single/groups.php:23
+#: bp-templates/bp-nouveau/includes/groups/functions.php:598
+msgid "Most Members"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/index.php:98
+#: bp-templates/bp-legacy/buddypress/members/single/groups.php:24
+#: bp-templates/bp-nouveau/includes/groups/functions.php:599
+msgid "Newly Created"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/index.php:116
+#. translators: accessibility text
+msgid "Groups directory"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:24
+msgid ""
+"WARNING: Deleting this group will completely remove ALL content associated "
+"with it. There is no way back, please be careful with this option."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:27
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/delete-group.php:18
+msgid "I understand the consequences of deleting this group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:12
+msgid "Manage Group Details"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:40
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:1421
+msgid "Notify group members of these changes via email"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:50
+msgid "Crop Profile Photo"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:12
+msgid "Manage Group Settings"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:112
+msgid "No group administrators were found."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:207
+msgid "No group moderators were found."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:248
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:112
+#. translators: indicates a user is banned from a group, e.g. "Mike (banned)".
+msgid "(banned)"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:271
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:844
+msgid "Remove Ban"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:275
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:863
+msgid "Kick &amp; Ban"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:276
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:892
+msgid "Promote to Mod"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:281
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:921
+msgid "Remove from group"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:179
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:87
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:92
-msgid "Which members of this group are allowed to invite others?"
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:318
+msgid "No group members were found."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:211
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:12
-#. translators: accessibility text
-msgid "Group Avatar"
+#: bp-templates/bp-legacy/buddypress/groups/single/admin/membership-requests.php:12
+#: bp-templates/bp-nouveau/buddypress/groups/single/requests-loop.php:13
+msgid "Manage Membership Requests"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:232
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:16
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:46
+#: bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php:75
+#: bp-templates/bp-legacy/buddypress/groups/single/group-header.php:23
+msgid "Group Admins"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php:95
+#: bp-templates/bp-legacy/buddypress/groups/single/group-header.php:43
+#: bp-templates/bp-nouveau/buddypress/groups/single/parts/header-item-actions.php:28
+msgid "Group Mods"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/home.php:40
+msgid "Group primary navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/invites-loop.php:111
+msgid "Select friends to invite."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/members.php:132
+msgid "No members were found."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/request-membership.php:18
+msgid "Group membership request form"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/request-membership.php:25
+#: bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php:17
+#. translators:  %s =group name
+#. translators: %s = group name
+msgid "You are requesting to become a member of the group \"%s\"."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/request-membership.php:33
+#: bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php:25
+msgid "Comments (optional)"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:58
+#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:63
+#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:51
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:727
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:783
+msgid "Accept"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:60
+#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:64
+#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:52
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:754
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:810
+msgid "Reject"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:96
+#: bp-templates/bp-nouveau/includes/functions.php:1005
+msgid "There are no pending membership requests."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:21
+msgid "Send invites"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:31
+#: bp-templates/bp-nouveau/includes/groups/functions.php:136
+msgid "Send Invites"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:46
+msgid "Group invitations can only be extended to friends."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:47
 msgid ""
-"Upload an image to use as a profile photo for this group. The image will be "
-"shown on the main group page, and in search results."
+"Once you've made some friendships, you'll be able to invite those members "
+"to this group."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:237
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:21
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:37
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:49
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:36
+#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:55
+msgid "All of your friends already belong to this group."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/activate.php:45
+#: bp-templates/bp-nouveau/buddypress/members/activate.php:21
+msgid ""
+"Your account was activated successfully! Your account details have been "
+"sent to you in a separate email."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/activate.php:47
+msgid ""
+"Your account was activated successfully! You can now <a href=\"%s\">log "
+"in</a> with the username and password you provided when you signed up."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/activate.php:52
+#: bp-templates/bp-nouveau/buddypress/members/activate.php:36
+msgid "Please provide a valid activation key."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/activate.php:56
+#: bp-templates/bp-nouveau/buddypress/members/activate.php:40
+msgid "Activation Key:"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/index.php:60
+msgid "Members directory main navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/index.php:80
+msgid "Members directory secondary navigation"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/index.php:95
+#: bp-templates/bp-legacy/buddypress/members/single/friends.php:23
+#: bp-templates/bp-nouveau/includes/members/functions.php:98
+msgid "Newest Registered"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/index.php:116
 #. translators: accessibility text
-msgid "Select an image"
+msgid "Members directory"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:240
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:24
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:40
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:51
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:38
-msgid "Upload Image"
+#: bp-templates/bp-legacy/buddypress/members/register.php:46
+msgid "User registration is currently not allowed."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:244
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:56
+#: bp-templates/bp-legacy/buddypress/members/register.php:68
+#: bp-templates/bp-nouveau/includes/functions.php:941
 msgid ""
-"To skip the group profile photo upload process, hit the \"Next Step\" "
-"button."
+"Registering for this site is easy. Just fill in the fields below, and we'll "
+"get a new account set up for you in no time."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:259
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:98
-msgid "Crop Group Profile Photo"
+#: bp-templates/bp-legacy/buddypress/members/register.php:83
+#: bp-templates/bp-nouveau/buddypress/members/register.php:31
+msgid "Account Details"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:261
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:52
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:55
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:100
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:53
-msgid "Profile photo to crop"
+#: bp-templates/bp-legacy/buddypress/members/register.php:85
+#: bp-templates/bp-legacy/buddypress/members/register.php:96
+#: bp-templates/bp-legacy/buddypress/members/register.php:107
+#: bp-templates/bp-legacy/buddypress/members/register.php:119
+#: bp-templates/bp-legacy/buddypress/members/register.php:280
+#: bp-templates/bp-legacy/buddypress/members/register.php:296
+#: bp-templates/bp-nouveau/includes/template-tags.php:2358
+#: bp-xprofile/bp-xprofile-template.php:1463
+msgid "(required)"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:96
+#: bp-templates/bp-nouveau/includes/functions.php:1157
+msgid "Email Address"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:107
+msgid "Choose a Password"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:119
+msgid "Confirm Password"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:165
+#: bp-templates/bp-nouveau/buddypress/members/register.php:47
+msgid "Profile Details"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:190
+#: bp-templates/bp-legacy/buddypress/members/register.php:212
+#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:60
+#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:81
+#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:380
+msgid "This field can be seen by: %s"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:200
+#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:70
+#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:397
+msgid "Who can see this field?"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:205
+#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:75
+#: bp-templates/bp-legacy/buddypress-functions.php:304
+#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:402
+msgid "Close"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:274
+msgid "Blog Details"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:276
+msgid "Yes, I'd like to create a new site"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:280
+msgid "Blog URL"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:296
+#: bp-templates/bp-nouveau/includes/functions.php:1177
+msgid "Site Title"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:308
+msgid ""
+"Privacy: I would like my site to appear in search engines, and in public "
+"listings around this network."
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:356
+#: bp-templates/bp-nouveau/includes/functions.php:1246
+msgid "Complete Sign Up"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/register.php:393
+#: bp-templates/bp-nouveau/includes/functions.php:1085
+msgid ""
+"You have successfully created your account! To begin using this site you "
+"will need to activate your account via the email we have just sent to your "
+"address."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:264
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:55
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:58
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:103
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:56
-msgid "Profile photo preview"
+#: bp-templates/bp-legacy/buddypress/members/register.php:395
+#: bp-templates/bp-nouveau/includes/functions.php:947
+msgid ""
+"You have successfully created your account! Please log in using the "
+"username and password you have just created."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:310
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-cover-image.php:23
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-cover-image.php:26
-msgid "The Cover Image will be used to customize the header of your group."
+#: bp-templates/bp-legacy/buddypress/members/single/activity.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/blogs.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/friends.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/groups.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/messages.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/notifications.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/plugins.php:22
+#: bp-templates/bp-legacy/buddypress/members/single/profile.php:12
+#: bp-templates/bp-legacy/buddypress/members/single/settings.php:12
+msgid "Member secondary navigation"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:332
-#: bp-templates/bp-nouveau/buddypress/members/single/groups/invites.php:10
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/group-invites.php:11
+#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:21
 #. translators: accessibility text
-msgid "Group Invites"
-msgstr ""
-
-#: bp-templates/bp-legacy/buddypress/groups/create.php:361
-msgid "Select people to invite from your friends list."
+msgid "Friendship requests"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:379
-#: bp-templates/bp-legacy/buddypress/groups/single/invites-loop.php:75
-#: bp-templates/bp-legacy/buddypress-functions.php:1391
-msgid "Remove Invite"
+#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:108
+#: bp-templates/bp-nouveau/includes/functions.php:1029
+msgid "You have no pending friendship requests."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:396
-msgid ""
-"Once you have built up friend connections you will be able to invite others "
-"to your group."
+#: bp-templates/bp-legacy/buddypress/members/single/friends.php:59
+#. translators: accessibility text
+msgid "My friends"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:441
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:394
-msgid "Back to Previous Step"
+#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:21
+#: bp-templates/bp-nouveau/includes/groups/functions.php:1221
+#. translators: accessibility text
+msgid "Group invitations"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:448
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:402
-msgid "Next Step"
+#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:72
+#: bp-templates/bp-nouveau/includes/functions.php:1033
+msgid "You have no outstanding group invites."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:455
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:409
-msgid "Create Group and Continue"
+#: bp-templates/bp-legacy/buddypress/members/single/groups.php:61
+#. translators: accessibility text
+msgid "My groups"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/create.php:462
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:416
-msgid "Finish"
+#: bp-templates/bp-legacy/buddypress/members/single/groups.php:66
+#. translators: accessibility text
+msgid "Member's groups"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/groups-loop.php:136
-msgid "There were no groups found."
+#: bp-templates/bp-legacy/buddypress/members/single/home.php:39
+msgid "Member primary navigation"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/index.php:60
-msgid "Groups directory main navigation"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:13
+#. translators: accessibility text
+msgid "Compose Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/index.php:62
-msgid "All Groups %s"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:27
+msgid "Send To (Username or Friend's Name)"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/index.php:80
-msgid "Groups directory secondary navigation"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:36
+msgid "This is a notice to all users."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/index.php:97
-#: bp-templates/bp-legacy/buddypress/members/single/groups.php:23
-#: bp-templates/bp-nouveau/includes/groups/functions.php:592
-msgid "Most Members"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:42
+msgid "Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/index.php:98
-#: bp-templates/bp-legacy/buddypress/members/single/groups.php:24
-#: bp-templates/bp-nouveau/includes/groups/functions.php:593
-msgid "Newly Created"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:57
+msgid "Send Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/index.php:116
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:21
 #. translators: accessibility text
-msgid "Groups directory"
+msgid "Starred messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:24
-msgid ""
-"WARNING: Deleting this group will completely remove ALL content associated "
-"with it. There is no way back, please be careful with this option."
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:62
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:18
+#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:18
+#. translators: accessibility text
+msgid "Select all"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/delete-group.php:27
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/delete-group.php:18
-msgid "I understand the consequences of deleting this group."
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:64
+msgid "From"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:12
-msgid "Manage Group Details"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:98
+#. translators: accessibility text
+msgid "Select this message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/edit-details.php:40
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:1421
-msgid "Notify group members of these changes via email"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:105
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:134
+msgid "From:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-avatar.php:50
-msgid "Crop Profile Photo"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:112
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:144
+msgid "To:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php:12
-msgid "Manage Group Settings"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:119
+msgid "View Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:112
-msgid "No group administrators were found."
+#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:195
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:253
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:410
+msgid "Sorry, no messages were found."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:207
-msgid "No group moderators were found."
+#: bp-templates/bp-legacy/buddypress/members/single/messages/notices-loop.php:64
+msgid "Sent:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:248
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:102
-#. translators: indicates a user is banned from a group, e.g. "Mike (banned)".
-msgid "(banned)"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/notices-loop.php:78
+msgid "Delete Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:271
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:844
-msgid "Remove Ban"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/notices-loop.php:96
+msgid "Sorry, no notices were found."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:275
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:863
-msgid "Kick &amp; Ban"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:31
+msgid "You are alone in this conversation."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:276
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:892
-msgid "Promote to Mod"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:35
+msgid "Conversation between %s recipients."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:281
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:921
-msgid "Remove from group"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:39
+msgid "Conversation between %s."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/manage-members.php:318
-msgid "No group members were found."
+#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:102
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:323
+msgid "Send a Reply"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/admin/membership-requests.php:12
-#: bp-templates/bp-nouveau/buddypress/groups/single/requests-loop.php:13
-msgid "Manage Membership Requests"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:125
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:334
+#. translators: accessibility text
+msgid "Reply to Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php:75
-#: bp-templates/bp-legacy/buddypress/groups/single/group-header.php:23
-msgid "Group Admins"
+#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:139
+msgid "Send Reply"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php:95
-#: bp-templates/bp-legacy/buddypress/groups/single/group-header.php:43
-#: bp-templates/bp-nouveau/buddypress/groups/single/parts/header-item-actions.php:28
-msgid "Group Mods"
+#: bp-templates/bp-legacy/buddypress/members/single/messages.php:44
+#. translators: accessibility text
+msgid "Messages inbox"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/home.php:40
-msgid "Group primary navigation"
+#: bp-templates/bp-legacy/buddypress/members/single/messages.php:49
+#. translators: accessibility text
+msgid "Sent Messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/invites-loop.php:111
-msgid "Select friends to invite."
+#: bp-templates/bp-legacy/buddypress/members/single/messages.php:89
+#. translators: accessibility text
+msgid "Sitewide Notices"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/members.php:132
-msgid "No members were found."
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:17
+#: bp-templates/bp-nouveau/includes/functions.php:1093
+msgid "You have no unread notifications."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/request-membership.php:18
-msgid "Group membership request form"
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:21
+#: bp-templates/bp-nouveau/includes/functions.php:1090
+msgid "This member has no unread notifications."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/request-membership.php:25
-#: bp-templates/bp-nouveau/buddypress/groups/single/request-membership.php:17
-#. translators:  %s =group name
-#. translators: %s = group name
-msgid "You are requesting to become a member of the group \"%s\"."
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:29
+#: bp-templates/bp-nouveau/includes/functions.php:1096
+msgid "You have no notifications."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/request-membership.php:33
-msgid "Comments (optional)"
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:33
+#: bp-templates/bp-nouveau/includes/functions.php:1037
+msgid "This member has no notifications."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:58
-#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:63
-#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:51
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:727
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:783
-msgid "Accept"
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:20
+#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:19
+msgid "Notification"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:60
-#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:64
-#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:52
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:754
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:810
-msgid "Reject"
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:21
+#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:21
+msgid "Date Received"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/requests-loop.php:96
-#: bp-templates/bp-nouveau/includes/functions.php:1005
-msgid "There are no pending membership requests."
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:34
+#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:37
+#. translators: accessibility text
+msgid "Select this notification"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:21
-msgid "Send invites"
+#: bp-templates/bp-legacy/buddypress/members/single/notifications/unread.php:16
+#. translators: accessibility text
+msgid "Unread notifications"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:31
-#: bp-templates/bp-nouveau/includes/groups/functions.php:129
-msgid "Send Invites"
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:12
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:10
+msgid "Change Profile Photo"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:46
-msgid "Group invitations can only be extended to friends."
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:25
+msgid ""
+"Your profile photo will be used on your profile and throughout the site. If "
+"there is a <a href=\"http://gravatar.com\">Gravatar</a> associated with "
+"your account email we will use that, or you can upload an image from your "
+"computer."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:47
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:32
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:33
 msgid ""
-"Once you've made some friendships, you'll be able to invite those members "
-"to this group."
+"Click below to select a JPG, GIF or PNG format photo from your computer and "
+"then click 'Upload Image' to proceed."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/groups/single/send-invites.php:55
-msgid "All of your friends already belong to this group."
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:53
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:51
+msgid "Crop Your New Profile Photo"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/activate.php:45
-#: bp-templates/bp-nouveau/buddypress/members/activate.php:21
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:85
 msgid ""
-"Your account was activated successfully! Your account details have been "
-"sent to you in a separate email."
+"Your profile photo will be used on your profile and throughout the site. To "
+"change your profile photo, please create an account with <a "
+"href=\"https://gravatar.com\">Gravatar</a> using the same email address as "
+"you used to register with this site."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/activate.php:47
-msgid ""
-"Your account was activated successfully! You can now <a href=\"%s\">log "
-"in</a> with the username and password you provided when you signed up."
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-cover-image.php:12
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-cover-image.php:21
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-cover-image.php:11
+msgid "Change Cover Image"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/activate.php:52
-#: bp-templates/bp-nouveau/buddypress/members/activate.php:36
-msgid "Please provide a valid activation key."
+#: bp-templates/bp-legacy/buddypress/members/single/profile/change-cover-image.php:23
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-cover-image.php:17
+msgid "Your Cover Image will be used to customize the header of your profile."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/activate.php:56
-#: bp-templates/bp-nouveau/buddypress/members/activate.php:40
-msgid "Activation Key:"
+#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:27
+msgid "Editing '%s' Profile Group"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/index.php:60
-msgid "Members directory main navigation"
+#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:30
+msgid "Profile field groups"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/index.php:80
-msgid "Members directory secondary navigation"
+#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:29
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/profile-wp.php:20
+#. Translators: a member's profile, e.g. "Paul's profile".
+msgid "%s's Profile"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/index.php:95
-#: bp-templates/bp-legacy/buddypress/members/single/friends.php:23
-#: bp-templates/bp-nouveau/includes/members/functions.php:98
-msgid "Newest Registered"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/capabilities.php:26
+msgid "This user is a spammer."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/index.php:116
-#. translators: accessibility text
-msgid "Members directory"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:13
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:12
+msgid "Data Export"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:46
-msgid "User registration is currently not allowed."
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:23
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:23
+msgid "Your request for an export of personal data has been completed."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:68
-#: bp-templates/bp-nouveau/includes/functions.php:941
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:24
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:24
 msgid ""
-"Registering for this site is easy. Just fill in the fields below, and we'll "
-"get a new account set up for you in no time."
+"You may download your personal data by clicking on the link below. For "
+"privacy and security, we will automatically delete the file on %s, so "
+"please download it before then."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:83
-#: bp-templates/bp-nouveau/buddypress/members/register.php:31
-msgid "Account Details"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:26
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:26
+msgid "Download personal data"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:85
-#: bp-templates/bp-legacy/buddypress/members/register.php:96
-#: bp-templates/bp-legacy/buddypress/members/register.php:107
-#: bp-templates/bp-legacy/buddypress/members/register.php:119
-#: bp-templates/bp-legacy/buddypress/members/register.php:280
-#: bp-templates/bp-legacy/buddypress/members/register.php:296
-#: bp-templates/bp-nouveau/includes/template-tags.php:2322
-#: bp-xprofile/bp-xprofile-template.php:1463
-msgid "(required)"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:30
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:30
+msgid "Your previous request for an export of personal data has expired."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:96
-#: bp-templates/bp-nouveau/includes/functions.php:1157
-msgid "Email Address"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:31
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:31
+msgid "Please click on the button below to make a new request."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:107
-#: bp-templates/bp-nouveau/includes/functions.php:1165
-msgid "Choose a Password"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:35
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:35
+msgid "Request new data export"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:119
-#: bp-templates/bp-nouveau/includes/functions.php:1173
-msgid "Confirm Password"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:42
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:42
+msgid "You previously requested an export of your personal data on %s."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:165
-#: bp-templates/bp-nouveau/buddypress/members/register.php:47
-msgid "Profile Details"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:43
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:43
+msgid ""
+"You will receive a link to download your export via email once we are able "
+"to fulfill your request."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:190
-#: bp-templates/bp-legacy/buddypress/members/register.php:212
-#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:60
-#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:81
-#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:380
-msgid "This field can be seen by: %s"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:49
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:49
+msgid ""
+"You can request an export of your personal data, containing the following "
+"items if applicable:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:200
-#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:70
-#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:397
-msgid "Who can see this field?"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:53
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:53
+msgid "If you want to make a request, please click on the button below:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:205
-#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:75
-#: bp-templates/bp-legacy/buddypress-functions.php:304
-#: bp-xprofile/classes/class-bp-xprofile-user-admin.php:402
-msgid "Close"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:56
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:56
+msgid "Request personal data export"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:274
-msgid "Blog Details"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:64
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:62
+#. translators: accessibility text
+msgid "Data Erase"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:276
-msgid "Yes, I'd like to create a new site"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:17
+#: bp-templates/bp-nouveau/includes/functions.php:1101
+msgid ""
+"Deleting your account will delete all of the content you have created. It "
+"will be completely irrecoverable."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:280
-msgid "Blog URL"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:21
+msgid ""
+"Deleting this account will delete all of the content it has created. It "
+"will be completely irrecoverable."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:296
-#: bp-templates/bp-nouveau/includes/functions.php:1191
-msgid "Site Title"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:40
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/delete-account.php:21
+msgid "I understand the consequences."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:308
+#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:15
+#. translators: accessibility text
+msgid "Account settings"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:22
 msgid ""
-"Privacy: I would like my site to appear in search engines, and in public "
-"listings around this network."
+"Current Password <span>(required to update email or change current "
+"password)</span>"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:356
-#: bp-templates/bp-nouveau/includes/functions.php:1260
-msgid "Complete Sign Up"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:23
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:24
+msgid "Lost your password?"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:393
-#: bp-templates/bp-nouveau/includes/functions.php:1085
-msgid ""
-"You have successfully created your account! To begin using this site you "
-"will need to activate your account via the email we have just sent to your "
-"address."
+#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:27
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:28
+msgid "Account Email"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/register.php:395
-#: bp-templates/bp-nouveau/includes/functions.php:947
-msgid ""
-"You have successfully created your account! Please log in using the "
-"username and password you have just created."
+#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:30
+msgid "Change Password <span>(leave blank for no change)</span>"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/activity.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/blogs.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/friends.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/groups.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/messages.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/notifications.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/plugins.php:22
-#: bp-templates/bp-legacy/buddypress/members/single/profile.php:12
-#: bp-templates/bp-legacy/buddypress/members/single/settings.php:12
-msgid "Member secondary navigation"
+#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:33
+msgid "Repeat New Password"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:21
+#: bp-templates/bp-legacy/buddypress/members/single/settings/notifications.php:15
 #. translators: accessibility text
-msgid "Friendship requests"
+msgid "Notification settings"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/friends/requests.php:108
-#: bp-templates/bp-nouveau/includes/functions.php:1029
-msgid "You have no pending friendship requests."
+#: bp-templates/bp-legacy/buddypress/members/single/settings/notifications.php:19
+msgid "Send an email notice when:"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:19
+#. translators: accessibility text
+msgid "Profile visibility settings"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:34
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/profile.php:34
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1479
+msgid "Visibility"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress-functions.php:61 class-buddypress.php:770
+msgid "BuddyPress Legacy"
+msgstr ""
+
+#: bp-templates/bp-legacy/buddypress-functions.php:303
+msgid "Accepted"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/friends.php:59
-#. translators: accessibility text
-msgid "My friends"
+#: bp-templates/bp-legacy/buddypress-functions.php:305
+msgid "comments"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:21
-#: bp-templates/bp-nouveau/includes/groups/functions.php:1215
-#. translators: accessibility text
-msgid "Group invitations"
+#: bp-templates/bp-legacy/buddypress-functions.php:306
+msgid "Are you sure you want to leave this group?"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php:72
-#: bp-templates/bp-nouveau/includes/functions.php:1033
-msgid "You have no outstanding group invites."
+#: bp-templates/bp-legacy/buddypress-functions.php:308
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:119
+#: bp-templates/bp-nouveau/includes/activity/functions.php:230
+msgid "My Favorites"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/groups.php:61
-#. translators: accessibility text
-msgid "My groups"
+#: bp-templates/bp-legacy/buddypress-functions.php:309
+msgid "Rejected"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/groups.php:66
-#. translators: accessibility text
-msgid "Member's groups"
+#: bp-templates/bp-legacy/buddypress-functions.php:311
+msgid "Show all"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/home.php:39
-msgid "Member primary navigation"
+#: bp-templates/bp-legacy/buddypress-functions.php:312
+msgid "Show all comments for this thread"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:13
-#. translators: accessibility text
-msgid "Compose Message"
+#: bp-templates/bp-legacy/buddypress-functions.php:313
+msgid "Show all comments (%d)"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:27
-msgid "Send To (Username or Friend's Name)"
+#: bp-templates/bp-legacy/buddypress-functions.php:314
+#: bp-templates/bp-nouveau/buddypress-functions.php:429
+msgid ""
+"Your profile has unsaved changes. If you leave the page, the changes will "
+"be lost."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:36
-msgid "This is a notice to all users."
+#: bp-templates/bp-legacy/buddypress-functions.php:996
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:549
+msgid "There was a problem posting your update. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:42
-msgid "Message"
+#: bp-templates/bp-legacy/buddypress-functions.php:1135
+#: bp-templates/bp-legacy/buddypress-functions.php:1175
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:201
+msgid "There was a problem when deleting. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/compose.php:57
-msgid "Send Message"
+#: bp-templates/bp-legacy/buddypress-functions.php:1395
+msgid ""
+"%s has previously requested to join this group. Sending an invitation will "
+"automatically add the member to the group."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:21
-#. translators: accessibility text
-msgid "Starred messages"
+#: bp-templates/bp-legacy/buddypress-functions.php:1437
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:107
+msgid "No member found by that ID."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:62
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:18
-#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:18
-#. translators: accessibility text
-msgid "Select all"
+#: bp-templates/bp-legacy/buddypress-functions.php:1455
+msgid " Friendship could not be requested."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:64
-msgid "From"
+#: bp-templates/bp-legacy/buddypress-functions.php:1467
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:210
+msgid "Friendship request could not be cancelled."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:98
-#. translators: accessibility text
-msgid "Select this message"
+#: bp-templates/bp-legacy/buddypress-functions.php:1472
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:220
+msgid "Request Pending"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:105
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:134
-msgid "From:"
+#: bp-templates/bp-legacy/buddypress-functions.php:1493
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:121
+msgid "There was a problem accepting that request. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:112
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:144
-msgid "To:"
+#: bp-templates/bp-legacy/buddypress-functions.php:1513
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:145
+msgid "There was a problem rejecting that request. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:119
-msgid "View Message"
+#: bp-templates/bp-legacy/buddypress-functions.php:1553
+#: bp-templates/bp-legacy/buddypress-functions.php:1559
+msgid "Error joining group"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/messages-loop.php:195
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:253
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:410
-msgid "Sorry, no messages were found."
+#: bp-templates/bp-legacy/buddypress-functions.php:1567
+msgid "Error accepting invitation"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/notices-loop.php:64
-msgid "Sent:"
+#: bp-templates/bp-legacy/buddypress-functions.php:1573
+#: bp-templates/bp-legacy/buddypress-functions.php:1583
+msgid "Error requesting membership"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/notices-loop.php:78
-msgid "Delete Message"
+#: bp-templates/bp-legacy/buddypress-functions.php:1593
+msgid "Error leaving group"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/notices-loop.php:96
-msgid "Sorry, no notices were found."
+#: bp-templates/bp-legacy/buddypress-functions.php:1620
+msgid "There was a problem closing the notice."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:31
-msgid "You are alone in this conversation."
+#: bp-templates/bp-legacy/buddypress-functions.php:1655
+#: bp-templates/bp-legacy/buddypress-functions.php:1695
+msgid "There was a problem sending that reply. Please try again."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:35
-msgid "Conversation between %s recipients."
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/index.php:35
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:43
+msgid ""
+"If you'd like to delete your current profile photo, use the delete profile "
+"photo button."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:39
-msgid "Conversation between %s."
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/cover-images/index.php:24
+msgid ""
+"If you'd like to delete your current cover image, use the delete Cover "
+"Image button."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:102
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:323
-msgid "Send a Reply"
+#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:25
+msgid "Select your file"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:125
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:334
-#. translators: accessibility text
-msgid "Reply to Message"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:58
+msgid "No Group members were found for this request."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages/single.php:139
-msgid "Send Reply"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:114
+msgid "Search Members"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages.php:44
-#. translators: accessibility text
-msgid "Messages inbox"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:16
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:22
+msgid "Invite Members"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages.php:49
-#. translators: accessibility text
-msgid "Sent Messages"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:29
+msgid "Group invitations menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/messages.php:89
-#. translators: accessibility text
-msgid "Sitewide Notices"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:65
+msgid "Invited by:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:17
-#: bp-templates/bp-nouveau/includes/functions.php:1093
-msgid "You have no unread notifications."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:74
+msgid "The invite has not been sent yet."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:21
-#: bp-templates/bp-nouveau/includes/functions.php:1090
-msgid "This member has no unread notifications."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:76
+msgid "The invite has been sent."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:29
-#: bp-templates/bp-nouveau/includes/functions.php:1096
-msgid "You have no notifications."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:86
+msgid "Cancel invitation"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/feedback-no-notifications.php:33
-#: bp-templates/bp-nouveau/includes/functions.php:1037
-msgid "This member has no notifications."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:116
+msgid "Optional: add a message to your invite."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:20
-#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:19
-msgid "Notification"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:36
+msgid "Send @Username"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:21
-#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:21
-msgid "Date Received"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:104
+msgid "All Messages"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/notifications-loop.php:34
-#: bp-templates/bp-nouveau/buddypress/members/single/notifications/notifications-loop.php:37
-#. translators: accessibility text
-msgid "Select this notification"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:108
+msgid "Select bulk action"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/notifications/unread.php:16
-#. translators: accessibility text
-msgid "Unread notifications"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:127
+msgid "Select message:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:12
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:10
-msgid "Change Profile Photo"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:169
+msgid "Active conversation:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:25
-msgid ""
-"Your profile photo will be used on your profile and throughout the site. If "
-"there is a <a href=\"http://gravatar.com\">Gravatar</a> associated with "
-"your account email we will use that, or you can upload an image from your "
-"computer."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:175
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:238
+msgid "Participants:"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:32
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:33
-msgid ""
-"Click below to select a JPG, GIF or PNG format photo from your computer and "
-"then click 'Upload Image' to proceed."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:188
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:189
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:250
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:251
+msgid "Delete conversation."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:53
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:51
-msgid "Crop Your New Profile Photo"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:195
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:196
+msgid "Unstar Conversation"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-avatar.php:85
-msgid ""
-"Your profile photo will be used on your profile and throughout the site. To "
-"change your profile photo, please create an account with <a "
-"href=\"https://gravatar.com\">Gravatar</a> using the same email address as "
-"you used to register with this site."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:199
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:200
+msgid "Star Conversation"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-cover-image.php:12
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-cover-image.php:21
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-cover-image.php:11
-msgid "Change Cover Image"
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:206
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:207
+msgid "View full conversation and reply."
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:273
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:274
+msgid "Unstar Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/change-cover-image.php:23
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-cover-image.php:17
-msgid "Your Cover Image will be used to customize the header of your profile."
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:277
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:278
+msgid "Star Message"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:27
-msgid "Editing '%s' Profile Group"
+#: bp-templates/bp-nouveau/buddypress/common/nav/directory-nav.php:10
+msgid "Directory menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/edit.php:30
-msgid "Profile field groups"
+#: bp-templates/bp-nouveau/buddypress/common/notices/template-notices.php:15
+#: bp-templates/bp-nouveau/buddypress/members/single/default-front.php:16
+msgid "Close this notice"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/profile/profile-wp.php:29
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/profile-wp.php:20
-#. Translators: a member's profile, e.g. "Paul's profile".
-msgid "%s's Profile"
+#: bp-templates/bp-nouveau/buddypress/groups/create.php:11
+msgid "Create A New Group"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/capabilities.php:26
-msgid "This user is a spammer."
+#: bp-templates/bp-nouveau/buddypress/groups/create.php:27
+msgid "Group creation menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:13
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:12
-msgid "Data Export"
+#: bp-templates/bp-nouveau/buddypress/groups/single/activity.php:12
+msgid "Group Activities"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:23
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:23
-msgid "Your request for an export of personal data has been completed."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/delete-group.php:11
+msgid "Delete this group"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:24
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:24
-msgid ""
-"You may download your personal data by clicking on the link below. For "
-"privacy and security, we will automatically delete the file on %s, so "
-"please download it before then."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:14
+msgid "Enter Group Name &amp; Description"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:26
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:26
-msgid "Download personal data"
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:20
+msgid "Edit Group Name &amp; Description"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:30
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:30
-msgid "Your previous request for an export of personal data has expired."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:13
+msgid "Upload Group Avatar"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:31
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:31
-msgid "Please click on the button below to make a new request."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:19
+msgid "Change Group Avatar"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:35
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:35
-msgid "Request new data export"
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:26
+msgid ""
+"Add an image to use as a profile photo for this group. The image will be "
+"shown on the main group page, and in search results."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:42
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:42
-msgid "You previously requested an export of your personal data on %s."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:28
+msgid "Edit or update your avatar image for this group."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:43
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:43
-msgid ""
-"You will receive a link to download your export via email once we are able "
-"to fulfill your request."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-cover-image.php:13
+msgid "Upload Cover Image"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:49
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:49
-msgid ""
-"You can request an export of your personal data, containing the following "
-"items if applicable:"
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:13
+msgid "Select Group Settings"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:53
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:53
-msgid "If you want to make a request, please click on the button below:"
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:19
+msgid "Change Group Settings"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:56
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:56
-msgid "Request personal data export"
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:44
+msgid "Only people who request membership and are accepted can join the group."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/data.php:64
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:62
-#. translators: accessibility text
-msgid "Data Erase"
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:54
+msgid "Only people who are invited can join the group."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:17
-#: bp-templates/bp-nouveau/includes/functions.php:1101
-msgid ""
-"Deleting your account will delete all of the content you have created. It "
-"will be completely irrecoverable."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:11
+msgid "Manage Group Members"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:21
-msgid ""
-"Deleting this account will delete all of the content it has created. It "
-"will be completely irrecoverable."
+#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:14
+msgid "Manage your group members; promote to moderators, admins or demote or ban."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/delete-account.php:40
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/delete-account.php:21
-msgid "I understand the consequences."
+#: bp-templates/bp-nouveau/buddypress/groups/single/default-front.php:16
+msgid "Manage the Groups default front page"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:15
-#. translators: accessibility text
-msgid "Account settings"
+#: bp-templates/bp-nouveau/buddypress/groups/single/default-front.php:21
+msgid "You can set your preferences for the %1$s or add %2$s to it."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:22
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:23
-msgid ""
-"Current Password <span>(required to update email or change current "
-"password)</span>"
+#: bp-templates/bp-nouveau/buddypress/groups/single/members.php:20
+msgid "Membership List"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:23
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:24
-msgid "Lost your password?"
+#: bp-templates/bp-nouveau/buddypress/groups/single/parts/admin-subnav.php:10
+msgid "Group administration menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:27
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:28
-msgid "Account Email"
+#: bp-templates/bp-nouveau/buddypress/groups/single/parts/header-item-actions.php:13
+msgid "Group Leadership"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:30
-msgid "Change Password <span>(leave blank for no change)</span>"
+#: bp-templates/bp-nouveau/buddypress/groups/single/parts/header-item-actions.php:16
+msgid "Group Administrators"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/general.php:33
-msgid "Repeat New Password"
+#: bp-templates/bp-nouveau/buddypress/groups/single/parts/item-nav.php:10
+msgid "Group menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/notifications.php:15
-#. translators: accessibility text
-msgid "Notification settings"
+#: bp-templates/bp-nouveau/buddypress/members/activate.php:23
+msgid ""
+"Your account was activated successfully! You can now log in with the "
+"username and password you provided when you signed up."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/notifications.php:19
-msgid "Send an email notice when:"
+#: bp-templates/bp-nouveau/buddypress/members/register.php:89
+msgid "Site Details"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:19
-#. translators: accessibility text
-msgid "Profile visibility settings"
+#: bp-templates/bp-nouveau/buddypress/members/register.php:91
+msgid "Yes, i'd like to create a new site"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress/members/single/settings/profile.php:34
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/profile.php:34
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1475
-msgid "Visibility"
+#: bp-templates/bp-nouveau/buddypress/members/single/activity.php:11
+msgid "Activity menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:61 class-buddypress.php:742
-msgid "BuddyPress Legacy"
+#: bp-templates/bp-nouveau/buddypress/members/single/activity.php:20
+msgid "Member Activities"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:303
-msgid "Accepted"
+#: bp-templates/bp-nouveau/buddypress/members/single/blogs.php:10
+msgid "Sites menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:305
-msgid "comments"
+#: bp-templates/bp-nouveau/buddypress/members/single/default-front.php:15
+msgid "Manage the members default front page"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:306
-msgid "Are you sure you want to leave this group?"
+#: bp-templates/bp-nouveau/buddypress/members/single/default-front.php:19
+msgid "You can set the preferences of the %1$s or add %2$s to it."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:308
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:119
-#: bp-templates/bp-nouveau/includes/activity/functions.php:227
-msgid "My Favorites"
+#: bp-templates/bp-nouveau/buddypress/members/single/friends/requests.php:10
+msgid "Friendship Requests"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:309
-msgid "Rejected"
+#: bp-templates/bp-nouveau/buddypress/members/single/friends.php:10
+msgid "Friends menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:311
-msgid "Show all"
+#: bp-templates/bp-nouveau/buddypress/members/single/groups.php:10
+msgid "Groups menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:312
-msgid "Show all comments for this thread"
+#: bp-templates/bp-nouveau/buddypress/members/single/messages.php:9
+msgid "Messages menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:313
-msgid "Show all comments (%d)"
+#: bp-templates/bp-nouveau/buddypress/members/single/notifications.php:10
+msgid "Notifications menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:314
-#: bp-templates/bp-nouveau/buddypress-functions.php:422
-msgid ""
-"Your profile has unsaved changes. If you leave the page, the changes will "
-"be lost."
+#: bp-templates/bp-nouveau/buddypress/members/single/parts/item-nav.php:10
+msgid "Member menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:996
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:549
-msgid "There was a problem posting your update. Please try again."
+#: bp-templates/bp-nouveau/buddypress/members/single/parts/profile-visibility.php:21
+#: bp-templates/bp-nouveau/buddypress/members/single/parts/profile-visibility.php:44
+#. translators: field visibility level, e.g. "...seen by: everyone".
+msgid "This field may be seen by: %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1135
-#: bp-templates/bp-legacy/buddypress-functions.php:1175
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:201
-msgid "There was a problem when deleting. Please try again."
+#: bp-templates/bp-nouveau/buddypress/members/single/parts/profile-visibility.php:31
+msgid "Who is allowed to see this field?"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1395
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:21
+#. Translators: %s is used to output the link to the Gravatar site
 msgid ""
-"%s has previously requested to join this group. Sending an invitation will "
-"automatically add the member to the group."
+"Your profile photo will be used on your profile and throughout the site. If "
+"there is a %s associated with your account email we will use that, or you "
+"can upload an image from your computer."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1437
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:107
-msgid "No member found by that ID."
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:23
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:89
+#. Translators: Url to the Gravatar site, you can use the one for your country
+#. eg: https:fr.gravatar.com for French translation
+msgid "https://gravatar.com"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1455
-msgid " Friendship could not be requested."
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:87
+#. Translators: %s is used to output the link to the Gravatar site
+msgid ""
+"Your profile photo will be used on your profile and throughout the site. To "
+"change your profile photo, create an account with %s using the same email "
+"address as you used to register with this site."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1467
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:210
-msgid "Friendship request could not be cancelled."
+#: bp-templates/bp-nouveau/buddypress/members/single/profile/edit.php:34
+#. translators: %s = profile field group name
+msgid "Editing \"%s\" Profile Group"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/members/single/profile.php:10
+msgid "Profile menu"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1472
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:220
-msgid "Request Pending"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/capabilities.php:12
+msgid "Members Capabilities"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1493
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:121
-msgid "There was a problem accepting that request. Please try again."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/capabilities.php:19
+msgid "This member is a spammer."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1513
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:145
-msgid "There was a problem rejecting that request. Please try again."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
+#. translators: Link to Delete Account Settings page
+msgid ""
+"To erase all data associated with your account, your user account must be "
+"completely deleted."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1553
-#: bp-templates/bp-legacy/buddypress-functions.php:1559
-msgid "Error joining group"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
+msgid "Please contact the site administrator to request account deletion."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1567
-msgid "Error accepting invitation"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
+msgid "You may delete your account by visiting the %s page."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1573
-#: bp-templates/bp-legacy/buddypress-functions.php:1583
-msgid "Error requesting membership"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:12
+msgid "Email & Password"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1593
-msgid "Error leaving group"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:16
+msgid "Update your email and or password."
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1620
-msgid "There was a problem closing the notice."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:23
+msgid "Current Password %s"
 msgstr ""
 
-#: bp-templates/bp-legacy/buddypress-functions.php:1655
-#: bp-templates/bp-legacy/buddypress-functions.php:1695
-msgid "There was a problem sending that reply. Please try again."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:23
+msgid "(required to update email or change current password)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/avatars/index.php:35
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:43
-msgid ""
-"If you'd like to delete your current profile photo, use the delete profile "
-"photo button."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:33
+msgid "Click on the \"Generate Password\" button to change your password."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/cover-images/index.php:24
-msgid ""
-"If you'd like to delete your current cover image, use the delete Cover "
-"Image button."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:38
+msgid "Generate Password"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/assets/_attachments/uploader.php:25
-msgid "Select your file"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:42
+msgid "Add Your New Password"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:16
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:22
-msgid "Invite Members"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:46
+msgid "Hide password"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:29
-msgid "Group invitations menu"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:48
+msgid "Hide"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:65
-msgid "Invited by:"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:50
+msgid "Cancel password change"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:74
-msgid "The invite has not been sent yet."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:58
+msgid "Repeat Your New Password"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:76
-msgid "The invite has been sent."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:65
+msgid "Confirm use of potentially weak password"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:86
-msgid "Cancel invitation"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/group-invites.php:27
+msgid "I want to restrict Group invites to my friends only."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:116
-msgid "Optional: add a message to your invite."
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/notifications.php:12
+msgid "Email Notifications"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:36
-msgid "Send @Username"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/notifications.php:16
+msgid "Set your email notification preferences."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:104
-msgid "All Messages"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/profile.php:12
+msgid "Profile Visibility Settings"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:108
-msgid "Select bulk action"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings/profile.php:16
+msgid "Select who may see your profile details."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:127
-msgid "Select message:"
+#: bp-templates/bp-nouveau/buddypress/members/single/settings.php:12
+msgid "Settings menu"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:169
-msgid "Active conversation:"
+#: bp-templates/bp-nouveau/buddypress-functions.php:428
+msgid "Show all %d comments"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:175
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:238
-msgid "Participants:"
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:151
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:371
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:372
+msgid "Mark as Favorite"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:188
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:189
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:250
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:251
-msgid "Delete conversation."
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:273
+msgid "There was a problem displaying the content. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:195
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:196
-msgid "Unstar Conversation"
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:467
+msgid "No activities were found."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:199
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:200
-msgid "Star Conversation"
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:566
+msgid "Update posted."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:206
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:207
-msgid "View full conversation and reply."
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:566
+msgid "View activity."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:273
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:274
-msgid "Unstar Message"
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:594
+msgid "There was a problem marking this activity as spam. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:277
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:278
-msgid "Star Message"
+#: bp-templates/bp-nouveau/includes/activity/ajax.php:643
+msgid "This activity has been marked as spam and is no longer visible."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/nav/directory-nav.php:10
-msgid "Directory menu"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:140
+msgid "Post in: Profile"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/notices/template-notices.php:15
-#: bp-templates/bp-nouveau/buddypress/members/single/default-front.php:16
-msgid "Close this notice"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:149
+msgid "Post in: Group"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/create.php:11
-msgid "Create A New Group"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:150
+msgid "Start typing the group name..."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/create.php:27
-msgid "Group creation menu"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:202
+#: bp-templates/bp-nouveau/includes/groups/functions.php:125
+#: bp-templates/bp-nouveau/includes/members/functions.php:49
+msgid "All Members"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/activity.php:12
-msgid "Group Activities"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:256
+#: bp-templates/bp-nouveau/includes/groups/functions.php:529
+msgid "My Groups"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/delete-group.php:11
-msgid "Delete this group"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:496
+msgid "New mentions"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:14
-msgid "Enter Group Name &amp; Description"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:501
+msgid "New update replies"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/edit-details.php:20
-msgid "Edit Group Name &amp; Description"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:506
+msgid "New update comment replies"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:13
-msgid "Upload Group Avatar"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:528
+msgid "Use column navigation for the Activity directory."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:19
-msgid "Change Group Avatar"
+#: bp-templates/bp-nouveau/includes/activity/functions.php:534
+msgid "Use tab styling for Activity directory navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:26
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:679
+#. translators: 1: user profile link, 2: user name, 3: activity permalink, 4:
+#. activity recorded date, 5: activity timestamp, 6: activity human time since
 msgid ""
-"Add an image to use as a profile photo for this group. The image will be "
-"shown on the main group page, and in search results."
+"<a href=\"%1$s\">%2$s</a> replied <a href=\"%3$s\" "
+"class=\"activity-time-since\"><time class=\"time-since\" datetime=\"%4$s\" "
+"data-bp-timestamp=\"%5$d\">%6$s</time></a>"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-avatar.php:28
-msgid "Edit or update your avatar image for this group."
+#: bp-templates/bp-nouveau/includes/activity/widgets.php:35
+msgid ""
+"Display the latest updates of your community having the types of your "
+"choice."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-cover-image.php:13
-msgid "Upload Cover Image"
+#: bp-templates/bp-nouveau/includes/activity/widgets.php:40
+msgid "(BuddyPress) Latest Activities"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:13
-msgid "Select Group Settings"
+#: bp-templates/bp-nouveau/includes/activity/widgets.php:62
+#: bp-templates/bp-nouveau/includes/activity/widgets.php:171
+msgid "Latest updates"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:19
-msgid "Change Group Settings"
+#: bp-templates/bp-nouveau/includes/activity/widgets.php:192
+msgid "Maximum amount to display:"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:44
-msgid "Only people who request membership and are accepted can join the group."
+#: bp-templates/bp-nouveau/includes/activity/widgets.php:196
+msgid "Type:"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php:54
-msgid "Only people who are invited can join the group."
+#: bp-templates/bp-nouveau/includes/blogs/functions.php:23
+msgid "All Sites"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:11
-msgid "Manage Group Members"
+#: bp-templates/bp-nouveau/includes/blogs/functions.php:168
+msgid "Sites loop:"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/admin/manage-members.php:14
-msgid "Manage your group members; promote to moderators, admins or demote or ban."
+#: bp-templates/bp-nouveau/includes/blogs/functions.php:175
+msgid "Use column navigation for the Sites directory."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/default-front.php:16
-msgid "Manage the Groups default front page"
+#: bp-templates/bp-nouveau/includes/blogs/functions.php:181
+msgid "Use tab styling for Sites directory navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/default-front.php:21
-msgid "You can set your preferences for the %1$s or add %2$s to it."
+#: bp-templates/bp-nouveau/includes/classes.php:197
+msgid ""
+"Displays BuddyPress primary nav in the sidebar of your site. Make sure to "
+"use it as the first widget of the sidebar and only once."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/members.php:20
-msgid "Membership List"
+#: bp-templates/bp-nouveau/includes/classes.php:203
+msgid "(BuddyPress) Primary navigation"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/parts/admin-subnav.php:10
-msgid "Group administration menu"
+#: bp-templates/bp-nouveau/includes/classes.php:330
+msgid "Include navigation title"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/parts/header-item-actions.php:13
-msgid "Group Leadership"
+#: bp-templates/bp-nouveau/includes/customizer-controls.php:40
+msgid ""
+"Customizing the Groups navigation order needs you create at least one group "
+"first."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/parts/header-item-actions.php:16
-msgid "Group Administrators"
+#: bp-templates/bp-nouveau/includes/customizer-controls.php:58
+msgid ""
+"Drag each possible group navigation items that are listed below into the "
+"order you prefer, in some groups some of these navigation items might not "
+"be active."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/groups/single/parts/item-nav.php:10
-msgid "Group menu"
+#: bp-templates/bp-nouveau/includes/customizer-controls.php:65
+msgid ""
+"Drag each possible member navigation items that are listed below into the "
+"order you prefer."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/activate.php:23
-msgid ""
-"Your account was activated successfully! You can now log in with the "
-"username and password you provided when you signed up."
+#: bp-templates/bp-nouveau/includes/customizer.php:26
+msgid "Customize the appearance of BuddyPress Nouveau Template pack."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/register.php:89
-msgid "Site Details"
+#: bp-templates/bp-nouveau/includes/customizer.php:40
+msgid "General BP Settings"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/register.php:91
-msgid "Yes, i'd like to create a new site"
+#: bp-templates/bp-nouveau/includes/customizer.php:43
+msgid "Configure general BuddyPress appearance options."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/activity.php:11
-msgid "Activity menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:46
+msgid "Member front page"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/activity.php:20
-msgid "Member Activities"
+#: bp-templates/bp-nouveau/includes/customizer.php:49
+msgid "Configure the default front page for members."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/blogs.php:10
-msgid "Sites menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:52
+msgid "Member navigation"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/default-front.php:15
-msgid "Manage the members default front page"
+#: bp-templates/bp-nouveau/includes/customizer.php:55
+msgid ""
+"Customize the navigation menu for members. In the preview window, navigate "
+"to a user to preview your changes."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/default-front.php:19
-msgid "You can set the preferences of the %1$s or add %2$s to it."
+#: bp-templates/bp-nouveau/includes/customizer.php:58
+msgid "Loop layouts"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/friends/requests.php:10
-msgid "Friendship Requests"
+#: bp-templates/bp-nouveau/includes/customizer.php:61
+msgid "Set the number of columns to use for BuddyPress loops."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/friends.php:10
-msgid "Friends menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:64
+msgid "Directory layouts"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/groups.php:10
-msgid "Groups menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:67
+msgid "Select the layout style for directory content &amp; navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/messages.php:9
-msgid "Messages menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:220
+msgid "Use the round style for member and group avatars."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/notifications.php:10
-msgid "Notifications menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:226
+msgid "Enable default front page for member profiles."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/parts/item-nav.php:10
-msgid "Member menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:232
+msgid "Display the biographical info from the member's WordPress profile."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/parts/profile-visibility.php:21
-#: bp-templates/bp-nouveau/buddypress/members/single/parts/profile-visibility.php:44
-#. translators: field visibility level, e.g. "...seen by: everyone".
-msgid "This field may be seen by: %s"
+#: bp-templates/bp-nouveau/includes/customizer.php:238
+msgid "Display the member navigation vertically."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/parts/profile-visibility.php:31
-msgid "Who is allowed to see this field?"
+#: bp-templates/bp-nouveau/includes/customizer.php:244
+msgid "Use tab styling for primary nav."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:21
-#. Translators: %s is used to output the link to the Gravatar site
-msgid ""
-"Your profile photo will be used on your profile and throughout the site. If "
-"there is a %s associated with your account email we will use that, or you "
-"can upload an image from your computer."
+#: bp-templates/bp-nouveau/includes/customizer.php:250
+msgid "Use tab styling for secondary nav."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:23
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:89
-#. Translators: Url to the Gravatar site, you can use the one for your country
-#. eg: https:fr.gravatar.com for French translation
-msgid "https://gravatar.com"
+#: bp-templates/bp-nouveau/includes/customizer.php:257
+msgid "Reorder the primary navigation for a user."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/change-avatar.php:87
-#. Translators: %s is used to output the link to the Gravatar site
-msgid ""
-"Your profile photo will be used on your profile and throughout the site. To "
-"change your profile photo, create an account with %s using the same email "
-"address as you used to register with this site."
+#: bp-templates/bp-nouveau/includes/customizer.php:270
+msgid "Member > Friends"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/profile/edit.php:34
-#. translators: %s = profile field group name
-msgid "Editing \"%s\" Profile Group"
+#: bp-templates/bp-nouveau/includes/customizer.php:277
+msgid "Use column navigation for the Members directory."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/profile.php:10
-msgid "Profile menu"
+#: bp-templates/bp-nouveau/includes/customizer.php:283
+msgid "Use tab styling for Members directory navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/capabilities.php:12
-msgid "Members Capabilities"
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:68
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:47
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:263
+msgid "There was a problem performing this action. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/capabilities.php:19
-msgid "This member is a spammer."
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:130
+msgid "Friendship accepted."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
-#. translators: Link to Delete Account Settings page
-msgid ""
-"To erase all data associated with your account, your user account must be "
-"completely deleted."
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:154
+msgid "Friendship rejected."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
-msgid "Please contact the site administrator to request account deletion."
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:167
+msgid "Friendship could not be cancelled."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/data.php:66
-msgid "You may delete your account by visiting the %s page."
+#: bp-templates/bp-nouveau/includes/friends/ajax.php:180
+msgid "Friendship cancelled."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:12
-msgid "Email & Password"
+#: bp-templates/bp-nouveau/includes/friends/loader.php:101
+msgid "Accepted friendship requests"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:16
-msgid "Update your email and or password."
+#: bp-templates/bp-nouveau/includes/friends/loader.php:106
+msgid "Pending friendship requests"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:33
-msgid "Leave password fields blank for no change"
+#: bp-templates/bp-nouveau/includes/functions.php:331
+msgid "BuddyPress Member's Home"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:36
-msgid "Add Your New Password"
+#: bp-templates/bp-nouveau/includes/functions.php:333
+msgid ""
+"Add widgets here to appear in the front page of each member of your "
+"community."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/general.php:39
-msgid "Repeat Your New Password"
+#: bp-templates/bp-nouveau/includes/functions.php:343
+msgid "BuddyPress Group's Home"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/group-invites.php:27
-msgid "I want to restrict Group invites to my friends only."
+#: bp-templates/bp-nouveau/includes/functions.php:345
+msgid ""
+"Add widgets here to appear in the front page of each group of your "
+"community."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/notifications.php:12
-msgid "Email Notifications"
+#: bp-templates/bp-nouveau/includes/functions.php:701
+msgid "One column"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/notifications.php:16
-msgid "Set your email notification preferences."
+#: bp-templates/bp-nouveau/includes/functions.php:702
+msgid "Two columns"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/profile.php:12
-msgid "Profile Visibility Settings"
+#: bp-templates/bp-nouveau/includes/functions.php:703
+msgid "Three columns"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings/profile.php:16
-msgid "Select who may see your profile details."
+#: bp-templates/bp-nouveau/includes/functions.php:704
+msgid "Four columns"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/members/single/settings.php:12
-msgid "Settings menu"
+#: bp-templates/bp-nouveau/includes/functions.php:935
+msgid "Member registration is currently not allowed."
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress-functions.php:421
-msgid "Show all %d comments"
+#: bp-templates/bp-nouveau/includes/functions.php:953
+msgid "Loading the community updates. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:273
-msgid "There was a problem displaying the content. Please try again."
+#: bp-templates/bp-nouveau/includes/functions.php:957
+msgid "Loading the update. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:467
-msgid "No activities were found."
+#: bp-templates/bp-nouveau/includes/functions.php:969
+msgid "Site registration is currently disabled."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:566
-msgid "Update posted."
+#: bp-templates/bp-nouveau/includes/functions.php:973
+msgid "Loading the sites of the network. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:566
-msgid "View activity."
+#: bp-templates/bp-nouveau/includes/functions.php:977
+msgid "Loading the groups of the community. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:594
-msgid "There was a problem marking this activity as spam. Please try again."
+#: bp-templates/bp-nouveau/includes/functions.php:981
+msgid "Sorry, there were no groups found."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/ajax.php:643
-msgid "This activity has been marked as spam and is no longer visible."
+#: bp-templates/bp-nouveau/includes/functions.php:985
+msgid "Loading the group updates. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:137
-msgid "Post in: Profile"
+#: bp-templates/bp-nouveau/includes/functions.php:989
+msgid "Requesting the group members. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:146
-msgid "Post in: Group"
+#: bp-templates/bp-nouveau/includes/functions.php:993
+msgid "Sorry, there were no group members found."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:147
-msgid "Start typing the group name..."
+#: bp-templates/bp-nouveau/includes/functions.php:997
+msgid "Sorry, there was no member of that name found in this group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:199
-#: bp-templates/bp-nouveau/includes/groups/functions.php:118
-#: bp-templates/bp-nouveau/includes/members/functions.php:49
-msgid "All Members"
+#: bp-templates/bp-nouveau/includes/functions.php:1001
+msgid "This group has no members."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:253
-#: bp-templates/bp-nouveau/includes/groups/functions.php:523
-msgid "My Groups"
+#: bp-templates/bp-nouveau/includes/functions.php:1009
+msgid "Loading the members who requested to join the group. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:493
-msgid "New mentions"
+#: bp-templates/bp-nouveau/includes/functions.php:1013
+msgid ""
+"WARNING: Deleting this group will completely remove ALL content associated "
+"with it. There is no way back. Please be careful with this option."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:498
-msgid "New update replies"
+#: bp-templates/bp-nouveau/includes/functions.php:1021
+msgid "Loading the members of your community. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:503
-msgid "New update comment replies"
+#: bp-templates/bp-nouveau/includes/functions.php:1041
+msgid "%s did not save any profile information yet."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:525
-msgid "Use column navigation for the Activity directory."
+#: bp-templates/bp-nouveau/includes/functions.php:1045
+msgid ""
+"Deleting this account will delete all of the content it has created. It "
+"will be completely unrecoverable."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/functions.php:531
-msgid "Use tab styling for Activity directory navigation."
+#: bp-templates/bp-nouveau/includes/functions.php:1049
+msgid "Loading the member's updates. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:377
-msgid "Mark as Favorite"
+#: bp-templates/bp-nouveau/includes/functions.php:1053
+msgid "Loading the member's blogs. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:685
-#. translators: 1: user profile link, 2: user name, 3: activity permalink, 4:
-#. activity recorded date, 5: activity timestamp, 6: activity human time since
-msgid ""
-"<a href=\"%1$s\">%2$s</a> replied <a href=\"%3$s\" "
-"class=\"activity-time-since\"><time class=\"time-since\" datetime=\"%4$s\" "
-"data-bp-timestamp=\"%5$d\">%6$s</time></a>"
+#: bp-templates/bp-nouveau/includes/functions.php:1057
+msgid "Loading the member's friends. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/widgets.php:35
-msgid ""
-"Display the latest updates of your community having the types of your "
-"choice."
+#: bp-templates/bp-nouveau/includes/functions.php:1061
+msgid "Loading the member's groups. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/widgets.php:40
-msgid "(BuddyPress) Latest Activities"
+#: bp-templates/bp-nouveau/includes/functions.php:1065
+msgid "Loading notifications. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/widgets.php:62
-#: bp-templates/bp-nouveau/includes/activity/widgets.php:171
-msgid "Latest updates"
+#: bp-templates/bp-nouveau/includes/functions.php:1069
+msgid ""
+"Currently every member of the community can invite you to join their "
+"groups. If you are not comfortable with it, you can always restrict group "
+"invites to your friends only."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/widgets.php:192
-msgid "Maximum amount to display:"
+#: bp-templates/bp-nouveau/includes/functions.php:1073
+msgid ""
+"Currently only your friends can invite you to groups. Uncheck the box to "
+"allow any member to send invites."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/widgets.php:196
-msgid "Type:"
+#: bp-templates/bp-nouveau/includes/functions.php:1103
+msgid "Loading your updates. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/blogs/functions.php:23
-msgid "All Sites"
+#: bp-templates/bp-nouveau/includes/functions.php:1105
+msgid "Loading your blogs. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/blogs/functions.php:168
-msgid "Sites loop:"
+#: bp-templates/bp-nouveau/includes/functions.php:1107
+msgid "Loading your friends. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/blogs/functions.php:175
-msgid "Use column navigation for the Sites directory."
+#: bp-templates/bp-nouveau/includes/functions.php:1109
+msgid "Loading your groups. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/blogs/functions.php:181
-msgid "Use tab styling for Sites directory navigation."
+#: bp-templates/bp-nouveau/includes/functions.php:1169
+msgid "Site URL"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/classes.php:197
-msgid ""
-"Displays BuddyPress primary nav in the sidebar of your site. Make sure to "
-"use it as the first widget of the sidebar and only once."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:79
+msgid "You cannot join this group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/classes.php:203
-msgid "(BuddyPress) Primary navigation"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:80
+msgid "You are already a member of the group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/classes.php:330
-msgid "Include navigation title"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:108
+msgid "Group invitation could not be accepted."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer-controls.php:40
-msgid ""
-"Customizing the Groups navigation order needs you create at least one group "
-"first."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:129
+msgid "Group invite accepted."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer-controls.php:58
-msgid ""
-"Drag each possible group navigation items that are listed below into the "
-"order you prefer, in some groups some of these navigation items might not "
-"be active."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:175
+msgid "Error joining this group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer-controls.php:65
-msgid ""
-"Drag each possible member navigation items that are listed below into the "
-"order you prefer."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:196
+msgid "Error requesting membership."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:26
-msgid "Customize the appearance of BuddyPress Nouveau Template pack."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:217
+msgid "Error leaving group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:40
-msgid "General BP Settings"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:295
+msgid ""
+"Select members to invite by clicking the + button. Once you've made your "
+"selection, use the \"Send Invites\" navigation item to continue."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:43
-msgid "Configure general BuddyPress appearance options."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:300
+msgid ""
+"Select friends to invite by clicking the + button. Once you've made your "
+"selection, use the \"Send Invites\" navigation item to continue."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:46
-msgid "Member front page"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:307
+msgid "No pending group invitations found."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:49
-msgid "Configure the default front page for members."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:314
+msgid "You can view the group's pending invitations from this screen."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:52
-msgid "Member navigation"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:321
+msgid "No members were found. Try another filter."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:55
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:327
 msgid ""
-"Customize the navigation menu for members. In the preview window, navigate "
-"to a user to preview your changes."
+"All your friends are already members of this group, or have already "
+"received an invite to join this group, or have requested to join it."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:58
-msgid "Loop layouts"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:333
+msgid "You have no friends!"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:61
-msgid "Set the number of columns to use for BuddyPress loops."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:362
+msgid "Invites could not be sent. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:64
-msgid "Directory layouts"
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:378
+msgid "You are not allowed to send invitations for this group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:67
-msgid "Select the layout style for directory content &amp; navigation."
-msgstr ""
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:431
+#. translators: count of users affected
+msgid "Invitation failed for %s user."
+msgid_plural "Invitation failed for %s users."
+msgstr[0] ""
+msgstr[1] ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:220
-msgid "Use the round style for member and group avatars."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:450
+msgid "Invitations sent."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:226
-msgid "Enable default front page for member profiles."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:464
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:507
+msgid "Group invitation could not be removed."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:232
-msgid "Display the biographical info from the member's WordPress profile."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:496
+msgid "The member is already a member of the group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:238
-msgid "Display the member navigation vertically."
+#: bp-templates/bp-nouveau/includes/groups/ajax.php:516
+msgid "There are no more pending invitations for the group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:244
-msgid "Use tab styling for primary nav."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:130
+msgid "Pending Invites"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:250
-msgid "Use tab styling for secondary nav."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:157
+msgid "Loading members. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:257
-msgid "Reorder the primary navigation for a user."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:158
+msgid ""
+"Use the \"Send\" button to send your invite or the \"Cancel\" button to "
+"abort."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:270
-msgid "Member > Friends"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:159
+msgid ""
+"Group invitations cleared. Please use one of the available tabs to select "
+"members to invite."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:277
-msgid "Use column navigation for the Members directory."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:160
+msgid "Sending group invitations. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/customizer.php:283
-msgid "Use tab styling for Members directory navigation."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:161
+msgid "Cancel invitation %s"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:68
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:47
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:263
-msgid "There was a problem performing this action. Please try again."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:484
+msgid "Group invites preferences saved."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:130
-msgid "Friendship accepted."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:486
+msgid "You are not allowed to perform this action."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:154
-msgid "Friendship rejected."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:513
+msgid "All Groups"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:167
-msgid "Friendship could not be cancelled."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:698
+msgid "Group front page"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/ajax.php:180
-msgid "Friendship cancelled."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:701
+msgid "Configure the default front page for groups."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/loader.php:101
-msgid "Accepted friendship requests"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:704
+msgid "Group navigation"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/friends/loader.php:106
-msgid "Pending friendship requests"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:707
+msgid ""
+"Customize the navigation menu for groups. See your changes by navigating to "
+"a group in the live-preview window."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:331
-msgid "BuddyPress Member's Home"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:808
+msgid "Enable custom front pages for groups."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:333
+#: bp-templates/bp-nouveau/includes/groups/functions.php:814
 msgid ""
-"Add widgets here to appear in the front page of each member of your "
-"community."
+"Enable widget region for group homepages. When enabled, the site admin can "
+"add widgets to group pages via the Widgets panel."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:343
-msgid "BuddyPress Group's Home"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:820
+msgid "Display the group description in the body of the group's front page."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:345
-msgid ""
-"Add widgets here to appear in the front page of each group of your "
-"community."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:826
+msgid "Display the group navigation vertically."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:701
-msgid "One column"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:832
+msgid "Use tab styling for primary navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:702
-msgid "Two columns"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:838
+msgid "Use tab styling for secondary navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:703
-msgid "Three columns"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:844
+msgid "Use tab styling for the group creation process."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:704
-msgid "Four columns"
+#: bp-templates/bp-nouveau/includes/groups/functions.php:851
+msgid "Reorder the primary navigation for a group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:935
-msgid "Member registration is currently not allowed."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:864
+msgid "Group > Members"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:953
-msgid "Loading the community updates. Please wait."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:871
+msgid "Use column navigation for the Groups directory."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:957
-msgid "Loading the update. Please wait."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:877
+msgid "Use tab styling for Groups directory navigation."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:969
-msgid "Site registration is currently disabled."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:1196
+msgid "Pending Group membership requests"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:973
-msgid "Loading the sites of the network. Please wait."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:1201
+msgid "Accepted Group membership requests"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:977
-msgid "Loading the groups of the community. Please wait."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:1206
+msgid "Rejected Group membership requests"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:981
-msgid "Sorry, there were no groups found."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:1211
+msgid "Group Administrator promotions"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:985
-msgid "Loading the group updates. Please wait."
+#: bp-templates/bp-nouveau/includes/groups/functions.php:1216
+msgid "Group Moderator promotions"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:989
-msgid "Requesting the group members. Please wait."
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:1307
+msgid "Groups default front page"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:993
-msgid "Sorry, there were no group members found."
+#: bp-templates/bp-nouveau/includes/groups/template-tags.php:1325
+#: bp-templates/bp-nouveau/includes/members/template-tags.php:711
+msgid "(BuddyPress) Widgets"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:997
-msgid "Sorry, there was no member of that name found in this group."
+#: bp-templates/bp-nouveau/includes/members/template-tags.php:693
+msgid "Members default front page"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1001
-msgid "This group has no members."
+#: bp-templates/bp-nouveau/includes/members/template-tags.php:785
+msgid "Edit your bio"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1009
-msgid "Loading the members who requested to join the group. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:43
+msgid "Your message could not be sent. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1013
-msgid ""
-"WARNING: Deleting this group will completely remove ALL content associated "
-"with it. There is no way back. Please be careful with this option."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:65
+msgid "Your message was not sent. Please enter at least one username."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1021
-msgid "Loading the members of your community. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:121
+msgid "Your reply was not sent. Please enter some content."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1041
-msgid "%s did not save any profile information yet."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:229
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:404
+msgid "Unauthorized request."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1045
-msgid ""
-"Deleting this account will delete all of the content it has created. It "
-"will be completely unrecoverable."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:524
+msgid "There was a problem deleting your messages. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1049
-msgid "Loading the member's updates. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:547
+msgid "Messages deleted"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1053
-msgid "Loading the member's blogs. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:563
+msgid "There was a problem starring your messages. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1057
-msgid "Loading the member's friends. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:565
+msgid "There was a problem unstarring your messages. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1061
-msgid "Loading the member's groups. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:639
+msgid "Messages successfully starred."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1065
-msgid "Loading notifications. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:641
+msgid "Messages successfully unstarred."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1069
-msgid ""
-"Currently every member of the community can invite you to join their "
-"groups. If you are not comfortable with it, you can always restrict group "
-"invites to your friends only."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:662
+msgid "There was a problem marking your messages as read. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1073
-msgid ""
-"Currently only your friends can invite you to groups. Uncheck the box to "
-"allow any member to send invites."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:668
+msgid "There was a problem marking your messages as unread. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1103
-msgid "Loading your updates. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:688
+msgid "Messages marked as read."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1105
-msgid "Loading your blogs. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:723
+msgid "There was a problem dismissing the notice. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1107
-msgid "Loading your friends. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/ajax.php:757
+msgid "Sitewide notice dismissed"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1109
-msgid "Loading your groups. Please wait."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:95
+msgid "Please add at least one recipient."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1183
-msgid "Site URL"
+#: bp-templates/bp-nouveau/includes/messages/functions.php:96
+msgid "Please add a subject to your message."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:79
-msgid "You cannot join this group."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:97
+msgid "Please add some content to your message."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:80
-msgid "You are already a member of the group."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:102
+msgid "Loading messages. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:108
-msgid "Group invitation could not be accepted."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:104
+msgid "Marking messages as read. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:129
-msgid "Group invite accepted."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:105
+msgid "Marking messages as unread. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:175
-msgid "Error joining this group."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:106
+msgid "Deleting messages. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:196
-msgid "Error requesting membership."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:107
+msgid "Starring messages. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:217
-msgid "Error leaving group."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:108
+msgid "Unstarring messages. Please wait."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:295
+#: bp-templates/bp-nouveau/includes/messages/functions.php:111
 msgid ""
-"Select members to invite by clicking the + button. Once you've made your "
-"selection, use the \"Send Invites\" navigation item to continue."
+"Click on the message title to preview it in the Active conversation box "
+"below."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:300
+#: bp-templates/bp-nouveau/includes/messages/functions.php:112
 msgid ""
-"Select friends to invite by clicking the + button. Once you've made your "
-"selection, use the \"Send Invites\" navigation item to continue."
+"Use the select box to define your bulk action and click on the &#10003; "
+"button to apply."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:307
-msgid "No pending group invitations found."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:114
+msgid "(and 1 other)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:314
-msgid "You can view the group's pending invitations from this screen."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:115
+msgid "(and %d others)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:321
-msgid "No members were found. Try another filter."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:234
+msgid "New sitewide notice"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:327
-msgid ""
-"All your friends are already members of this group, or have already "
-"received an invite to join this group, or have requested to join it."
+#: bp-templates/bp-nouveau/includes/messages/functions.php:413
+msgid "New private messages"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:333
-msgid "You have no friends!"
+#: bp-templates/bp-nouveau/includes/template-tags.php:2314
+msgid "Choose a Password (required)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:362
-msgid "Invites could not be sent. Please try again."
+#: bp-templates/bp-nouveau/includes/template-tags.php:2323
+msgid "Strength indicator"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:378
-msgid "You are not allowed to send invitations for this group."
+#: bp-templates/bp-nouveau/includes/template-tags.php:2328
+msgid "Confirm use of weak password"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:430
-#. translators: count of users affected
-msgid "Invitation failed for %s user."
-msgid_plural "Invitation failed for %s users."
-msgstr[0] ""
-msgstr[1] ""
+#: bp-templates/bp-nouveau/includes/template-tags.php:2336
+msgid "Confirm new password"
+msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:449
-msgid "Invitations sent."
+#: bp-templates/bp-nouveau/includes/template-tags.php:2352
+#. translators: Do not translate placeholders. 2 = form field name, 3 =
+#. "(required)".
+msgid "<label for=\"%1$s\">%2$s %3$s</label>"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:463
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:502
-msgid "Group invitation could not be removed."
+#: bp-templates/bp-nouveau/includes/template-tags.php:2371
+msgid ""
+"I would like my site to appear in search engines, and in public listings "
+"around this network."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:491
-msgid "The member is already a member of the group."
+#: bp-templates/bp-nouveau/includes/template-tags.php:2512
+#. translators: link to Privacy Policy
+msgid "I have read and agree to this site's %s."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/ajax.php:511
-msgid "There are no more pending invitations for the group."
+#: bp-xprofile/bp-xprofile-activity.php:29
+msgid "Member changed profile picture"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:123
-msgid "Pending Invites"
+#: bp-xprofile/bp-xprofile-activity.php:31
+msgid "Updated Profile Photos"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:150
-msgid "Loading members. Please wait."
+#: bp-xprofile/bp-xprofile-activity.php:37
+msgid "Updated Profile"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:151
-msgid ""
-"Use the \"Send\" button to send your invite or the \"Cancel\" button to "
-"abort."
+#: bp-xprofile/bp-xprofile-activity.php:39
+#: bp-xprofile/bp-xprofile-activity.php:339
+msgid "Profile Updates"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:152
-msgid ""
-"Group invitations cleared. Please use one of the available tabs to select "
-"members to invite."
+#: bp-xprofile/bp-xprofile-activity.php:63
+msgid "%s changed their profile picture"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:153
-msgid "Sending group invitations. Please wait."
+#: bp-xprofile/bp-xprofile-activity.php:97
+msgid "%s's profile was updated"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:154
-msgid "Cancel invitation %s"
+#: bp-xprofile/bp-xprofile-admin.php:149 bp-xprofile/bp-xprofile-admin.php:157
+#: bp-xprofile/classes/class-bp-xprofile-group.php:818
+msgid "Add New Field Group"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:478
-msgid "Group invites preferences saved."
+#: bp-xprofile/bp-xprofile-admin.php:191 bp-xprofile/bp-xprofile-admin.php:677
+msgid "(Primary)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:480
-msgid "You are not allowed to perform this action."
+#: bp-xprofile/bp-xprofile-admin.php:234
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1183
+msgid "Add New Field"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:507
-msgid "All Groups"
+#: bp-xprofile/bp-xprofile-admin.php:273
+#. translators: accessibility text
+msgid "Fields for \"%s\" Group"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:692
-msgid "Group front page"
+#: bp-xprofile/bp-xprofile-admin.php:299
+msgid "There are no fields in this group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:695
-msgid "Configure the default front page for groups."
+#: bp-xprofile/bp-xprofile-admin.php:307
+msgid "* Fields in this group appear on the signup page."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:698
-msgid "Group navigation"
+#: bp-xprofile/bp-xprofile-admin.php:361
+msgid "There was an error saving the group. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:701
-msgid ""
-"Customize the navigation menu for groups. See your changes by navigating to "
-"a group in the live-preview window."
+#: bp-xprofile/bp-xprofile-admin.php:366
+msgid "The group was saved successfully."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:802
-msgid "Enable custom front pages for groups."
+#: bp-xprofile/bp-xprofile-admin.php:480
+msgid "There was an error saving the field. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:808
-msgid ""
-"Enable widget region for group homepages. When enabled, the site admin can "
-"add widgets to group pages via the Widgets panel."
+#: bp-xprofile/bp-xprofile-admin.php:483
+msgid "The field was saved successfully."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:814
-msgid "Display the group description in the body of the group's front page."
+#: bp-xprofile/bp-xprofile-admin.php:569
+msgid "field"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:820
-msgid "Display the group navigation vertically."
+#: bp-xprofile/bp-xprofile-admin.php:569
+msgid "option"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:826
-msgid "Use tab styling for primary navigation."
+#: bp-xprofile/bp-xprofile-admin.php:573
+msgid "There was an error deleting the %s. Please try again."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:832
-msgid "Use tab styling for secondary navigation."
+#: bp-xprofile/bp-xprofile-admin.php:576
+msgid "The %s was deleted successfully!"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:838
-msgid "Use tab styling for the group creation process."
+#: bp-xprofile/bp-xprofile-admin.php:679
+msgid "(Sign-up)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:845
-msgid "Reorder the primary navigation for a group."
+#: bp-xprofile/bp-xprofile-filters.php:676
+msgid "BuddyPress Extended Profile Data"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:858
-msgid "Group > Members"
+#: bp-xprofile/bp-xprofile-functions.php:1381
+msgid "Extended Profile Data"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:865
-msgid "Use column navigation for the Groups directory."
+#: bp-xprofile/bp-xprofile-settings.php:49
+msgid "Your profile settings have been saved."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:871
-msgid "Use tab styling for Groups directory navigation."
+#: bp-xprofile/bp-xprofile-settings.php:53
+msgid "This member's profile settings have been saved."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:1190
-msgid "Pending Group membership requests"
+#: bp-xprofile/bp-xprofile-template.php:1141
+msgid "Profile not recently updated."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:1195
-msgid "Accepted Group membership requests"
+#: bp-xprofile/bp-xprofile-template.php:1167
+msgid "Profile updated %s"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:1200
-msgid "Rejected Group membership requests"
+#: bp-xprofile/bp-xprofile-template.php:1404
+#. translators: accessibility text
+msgid "Select visibility"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:1205
-msgid "Group Administrator promotions"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:52
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:541
+msgid "The ID of the field the data is from."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:1210
-msgid "Group Moderator promotions"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:56
+msgid "The ID of user the field data is from."
+msgstr ""
+
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:71
+msgid "The list of values for the field data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:1307
-msgid "Groups default front page"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:144
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:203
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:336
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:281
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:710
+msgid "Invalid field ID."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/template-tags.php:1325
-#: bp-templates/bp-nouveau/includes/members/template-tags.php:711
-msgid "(BuddyPress) Widgets"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:168
+msgid "Sorry, the profile field value is not viewable for this user."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/members/template-tags.php:693
-msgid "Members default front page"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:224
+msgid "Cannot save XProfile data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/members/template-tags.php:785
-msgid "Edit your bio"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:279
+msgid "Sorry, you need to be logged in to save XProfile data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:43
-msgid "Your message could not be sent. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:301
+msgid "Sorry, you cannot save XProfile field data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:65
-msgid "Your message was not sent. Please enter at least one username."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:355
+msgid "Could not delete XProfile data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:121
-msgid "Your reply was not sent. Please enter some content."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:535
+msgid "A unique numeric ID for the profile data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:229
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:404
-msgid "Unauthorized request."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:547
+msgid "The ID of the user the field data is from."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:524
-msgid "There was a problem deleting your messages. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:553
+msgid "The value of the field data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:547
-msgid "Messages deleted"
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:561
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1049
+msgid "Value for the field, as it exists in the database."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:563
-msgid "There was a problem starring your messages. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:566
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1054
+msgid "Unserialized value for the field, regular string will be casted as array."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:565
-msgid "There was a problem unstarring your messages. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:575
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1060
+msgid "HTML value for the field, transformed for display."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:639
-msgid "Messages successfully starred."
+#: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php:584
+msgid "The date the field data was last updated, in the site's timezone."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:641
-msgid "Messages successfully unstarred."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:73
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:722
+msgid "A unique numeric ID for the group of profile fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:662
-msgid "There was a problem marking your messages as read. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:240
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:421
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:523
+msgid "Invalid field group ID."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:668
-msgid "There was a problem marking your messages as unread. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:322
+msgid "Required param missing."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:688
-msgid "Messages marked as read."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:334
+msgid "Cannot create new XProfile field group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:723
-msgid "There was a problem dismissing the notice. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:386
+msgid "Sorry, you are not allowed to view this XProfile field group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/ajax.php:757
-msgid "Sitewide notice dismissed"
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:440
+msgid "Cannot update XProfile field group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:95
-msgid "Please add at least one recipient."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:533
+msgid "Could not delete XProfile field group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:96
-msgid "Please add a subject to your message."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:728
+msgid "The name of group of profile fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:97
-msgid "Please add some content to your message."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:736
+msgid "The description of the group of profile fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:102
-msgid "Loading messages. Please wait."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:744
+msgid "Content for the group of profile fields, as it exists in the database."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:104
-msgid "Marking messages as read. Please wait."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:749
+msgid "HTML content for the group of profile fields, transformed for display."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:105
-msgid "Marking messages as unread. Please wait."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:758
+msgid "The order of the group of profile fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:106
-msgid "Deleting messages. Please wait."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:763
+msgid "Whether the group of profile fields can be deleted or not."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:107
-msgid "Starring messages. Please wait."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:768
+msgid "The fields associated with this group of profile fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:108
-msgid "Unstarring messages. Please wait."
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:795
+msgid "ID of the field group that have fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:111
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:803
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:828
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1098
 msgid ""
-"Click on the message title to preview it in the Active conversation box "
-"below."
+"Whether to hide profile groups of fields that do not have any profile "
+"fields or not."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:112
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:811
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:73
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1106
+msgid "Required if you want to load a specific user's data."
+msgstr ""
+
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:819
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1114
 msgid ""
-"Use the select box to define your bulk action and click on the &#10003; "
-"button to apply."
+"Limit fields by those restricted to a given member type, or array of member "
+"types. If `$user_id` is provided, the value of `$member_type` will be "
+"overridden by the member types of the provided user. The special value of "
+"'any' will return only those fields that are unrestricted by member type - "
+"i.e., those applicable to any type."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:114
-msgid "(and 1 other)"
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:836
+msgid "Whether to fetch the fields for each group."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:115
-msgid "(and %d others)"
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:844
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1131
+msgid "Whether to fetch data for each field. Requires a $user_id."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:234
-msgid "New sitewide notice"
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:852
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1139
+msgid "Whether to fetch the visibility level for each field."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/messages/functions.php:413
-msgid "New private messages"
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:860
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1147
+msgid "Ensure result set excludes specific profile field groups."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/template-tags.php:2316
-#. translators: Do not translate placeholders. 2 = form field name, 3 =
-#. "(required)".
-msgid "<label for=\"%1$s\">%2$s %3$s</label>"
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:869
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1156
+msgid "Ensure result set excludes specific profile fields."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/template-tags.php:2335
+#: bp-xprofile/classes/class-bp-rest-xprofile-field-groups-endpoint.php:878
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1165
 msgid ""
-"I would like my site to appear in search engines, and in public listings "
-"around this network."
+"Whether to pre-fetch xprofilemeta for all retrieved groups, fields, and "
+"data."
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/template-tags.php:2482
-#. translators: link to Privacy Policy
-msgid "I have read and agree to this site's %s."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:63
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:949
+msgid "A unique numeric ID for the profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-activity.php:29
-msgid "Member changed profile picture"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:93
+msgid "Required if you want to delete users data for the field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-activity.php:31
-msgid "Updated Profile Photos"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:127
+msgid "Default visibility for the profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-activity.php:37
-msgid "Updated Profile"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:135
+msgid ""
+"Whether to allow members to set the visibility for the profile field data "
+"or not."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-activity.php:39
-#: bp-xprofile/bp-xprofile-activity.php:339
-msgid "Profile Updates"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:143
+msgid "Autolink status for this profile field"
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-activity.php:63
-msgid "%s changed their profile picture"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:295
+msgid "Value suppressed."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-activity.php:97
-msgid "%s's profile was updated"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:441
+msgid "Cannot create new XProfile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:149 bp-xprofile/bp-xprofile-admin.php:157
-#: bp-xprofile/classes/class-bp-xprofile-group.php:731
-msgid "Add New Field Group"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:496
+msgid "Sorry, you are not allowed to create a XProfile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:191 bp-xprofile/bp-xprofile-admin.php:677
-msgid "(Primary)"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:531
+msgid "Invalid profile field ID."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:234
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1179
-msgid "Add New Field"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:572
+msgid "Cannot update XProfile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:273
-#. translators: accessibility text
-msgid "Fields for \"%s\" Group"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:654
+msgid "Could not delete XProfile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:299
-msgid "There are no fields in this group."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:698
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:720
+msgid "Sorry, you are not allowed to delete this field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:307
-msgid "* Fields in this group appear on the signup page."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:955
+msgid "The ID of the group the field is part of."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:361
-msgid "There was an error saving the group. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:960
+msgid "The ID of the parent field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:366
-msgid "The group was saved successfully."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:965
+msgid "The type for the profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:480
-msgid "There was an error saving the field. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:974
+msgid "The name of the profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:483
-msgid "The field was saved successfully."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:982
+msgid "The description of the profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:569
-msgid "field"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:990
+msgid "Content for the profile field, as it exists in the database."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:569
-msgid "option"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:995
+msgid "HTML content for the profile field, transformed for display."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:573
-msgid "There was an error deleting the %s. Please try again."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1004
+msgid "Whether the profile field must have a value."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:576
-msgid "The %s was deleted successfully!"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1009
+msgid "Whether the profile field can be deleted or not."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-admin.php:679
-msgid "(Sign-up)"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1015
+msgid "The order of the profile field into the group of fields."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-filters.php:640
-msgid "BuddyPress Extended Profile Data"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1020
+msgid "The order of the option into the profile field list of options"
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-functions.php:1381
-msgid "Extended Profile Data"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1025
+msgid "The way profile field's options are ordered."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-settings.php:49
-msgid "Your profile settings have been saved."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1032
+msgid "Whether the option is the default one for the profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-settings.php:53
-msgid "This member's profile settings have been saved."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1037
+msgid "Who may see the saved value for this profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-template.php:1141
-msgid "Profile not recently updated."
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1044
+msgid "The saved value for this profile field."
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-template.php:1167
-msgid "Profile updated %s"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1090
+msgid "ID of the profile group of fields that have profile fields"
 msgstr ""
 
-#: bp-xprofile/bp-xprofile-template.php:1404
-#. translators: accessibility text
-msgid "Select visibility"
+#: bp-xprofile/classes/class-bp-rest-xprofile-fields-endpoint.php:1123
+msgid "Whether to hide profile fields where the user has not provided data or not."
 msgstr ""
 
 #: bp-xprofile/classes/class-bp-xprofile-field-type-datebox.php:109
@@ -9150,7 +10906,7 @@ msgid "Add Another Option"
 msgstr ""
 
 #: bp-xprofile/classes/class-bp-xprofile-field.php:784
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1446
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1450
 msgid "Users with no member type"
 msgstr ""
 
@@ -9162,118 +10918,118 @@ msgstr ""
 msgid "(Unavailable to all members)"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1084
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1088
 msgid "Profile fields must have a name."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1090
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1094
 msgid "Profile field requirement is missing."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1096
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1100
 msgid "Profile field type is missing."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1102
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1106
 msgid "The profile field type %s is not registered."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1117
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1121
 msgid "These field options are invalid."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1128
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1134
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1132
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1138
 msgid "%s require at least one option."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1201
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1205
 msgid "Edit Field"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1328
-#: bp-xprofile/classes/class-bp-xprofile-group.php:809
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1332
+#: bp-xprofile/classes/class-bp-xprofile-group.php:896
 msgid "Submit"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1398
-#: bp-xprofile/classes/class-bp-xprofile-group.php:776
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1402
+#: bp-xprofile/classes/class-bp-xprofile-group.php:863
 #. translators: accessibility text
 msgid "Add description"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1429
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1433
 msgid "Member Types"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1431
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1435
 msgid "This field should be available to:"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1451
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1455
 msgid "Unavailable to all members."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1495
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1499
 msgid "Allow members to override"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1499
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1503
 msgid "Enforce field visibility"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1524
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1528
 msgid "Requirement"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1527
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1531
 msgid "Not Required"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1528
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1532
 msgid "Required"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1547
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1551
 msgid "Autolink"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1549
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1553
 msgid ""
 "On user profiles, link this field to a search of the Members directory, "
 "using the field value as a search term."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1554
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1558
 #. translators: accessibility text
 msgid "Autolink status for this field"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1557
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1561
 msgid "Enabled"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1558
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1562
 msgid "Disabled"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1582
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1586
 msgid "Type"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-group.php:591
+#: bp-xprofile/classes/class-bp-xprofile-group.php:677
 msgid "Please make sure you give the group a name."
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-group.php:740
+#: bp-xprofile/classes/class-bp-xprofile-group.php:827
 msgid "Edit Field Group"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-group.php:767
+#: bp-xprofile/classes/class-bp-xprofile-group.php:854
 msgid "Field Group Name (required)"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-group.php:772
+#: bp-xprofile/classes/class-bp-xprofile-group.php:859
 msgid "Field Group Description"
 msgstr ""
 
@@ -9289,7 +11045,7 @@ msgstr ""
 msgid "Cheatin&#8217; huh?"
 msgstr ""
 
-#: class-buddypress.php:750
+#: class-buddypress.php:778
 msgid "BuddyPress Nouveau"
 msgstr ""
 
@@ -9347,11 +11103,16 @@ msgctxt "Activity items per page (screen options)"
 msgid "Activity"
 msgstr ""
 
-#: bp-activity/bp-activity-admin.php:1012
+#: bp-activity/bp-activity-admin.php:1025
 msgctxt "Admin SWA page"
 msgid "Activity"
 msgstr ""
 
+#: bp-activity/bp-activity-filters.php:830
+msgctxt "BuddyPress Activity data exporter friendly name"
+msgid "Activity Data"
+msgstr ""
+
 #: bp-activity/bp-activity-functions.php:507
 msgctxt "Post Type generic activity post admin filter"
 msgid "New item published"
@@ -9393,103 +11154,103 @@ msgctxt "Activity Custom Post Type post comment action"
 msgid "%1$s commented on the %2$s"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:224
+#: bp-activity/classes/class-bp-activity-component.php:245
 msgctxt "Profile activity screen nav"
 msgid "Activity"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:234
+#: bp-activity/classes/class-bp-activity-component.php:255
 msgctxt "Profile activity screen sub nav"
 msgid "Personal"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:245
+#: bp-activity/classes/class-bp-activity-component.php:266
 msgctxt "Profile activity screen sub nav"
 msgid "Mentions"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:258
+#: bp-activity/classes/class-bp-activity-component.php:279
 msgctxt "Profile activity screen sub nav"
 msgid "Favorites"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:271
+#: bp-activity/classes/class-bp-activity-component.php:292
 msgctxt "Profile activity screen sub nav"
 msgid "Friends"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:284
+#: bp-activity/classes/class-bp-activity-component.php:305
 msgctxt "Profile activity screen sub nav"
 msgid "Groups"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:322
+#: bp-activity/classes/class-bp-activity-component.php:343
 #. translators: %s: Unread mention count for the current user
 msgctxt "Toolbar Mention logged in user"
 msgid "Mentions %s"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:326
+#: bp-activity/classes/class-bp-activity-component.php:347
 msgctxt "Toolbar Mention logged in user"
 msgid "Mentions"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:334
+#: bp-activity/classes/class-bp-activity-component.php:355
 msgctxt "My Account Activity sub nav"
 msgid "Activity"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:342
+#: bp-activity/classes/class-bp-activity-component.php:363
 msgctxt "My Account Activity sub nav"
 msgid "Personal"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:363
+#: bp-activity/classes/class-bp-activity-component.php:384
 msgctxt "My Account Activity sub nav"
 msgid "Favorites"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:374
+#: bp-activity/classes/class-bp-activity-component.php:395
 msgctxt "My Account Activity sub nav"
 msgid "Friends"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:385
+#: bp-activity/classes/class-bp-activity-component.php:406
 msgctxt "My Account Activity sub nav"
 msgid "Groups"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-component.php:408
+#: bp-activity/classes/class-bp-activity-component.php:429
 msgctxt "Page and <title>"
 msgid "My Activity"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:376
+#: bp-activity/classes/class-bp-activity-list-table.php:377
 msgctxt "Admin SWA column header"
 msgid "Author"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:377
+#: bp-activity/classes/class-bp-activity-list-table.php:378
 msgctxt "Admin SWA column header"
 msgid "Activity"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:378
+#: bp-activity/classes/class-bp-activity-list-table.php:379
 msgctxt "Admin SWA column header"
 msgid "Action"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-list-table.php:379
+#: bp-activity/classes/class-bp-activity-list-table.php:380
 msgctxt "Admin SWA column header"
 msgid "In Response To"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-template.php:291
+#: bp-activity/classes/class-bp-activity-template.php:293
 msgctxt "Activity pagination previous text"
 msgid "&larr;"
 msgstr ""
 
-#: bp-activity/classes/class-bp-activity-template.php:292
+#: bp-activity/classes/class-bp-activity-template.php:294
 msgctxt "Activity pagination next text"
 msgid "&rarr;"
 msgstr ""
@@ -9529,7 +11290,7 @@ msgctxt "widget name"
 msgid "(BuddyPress) Who's Online"
 msgstr ""
 
-#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:159
+#: bp-blogs/classes/class-bp-blogs-recent-posts-widget.php:165
 msgctxt "Label for the Title field of the Recent Networkwide Posts widget"
 msgid "Title:"
 msgstr ""
@@ -9566,7 +11327,7 @@ msgctxt "buddypress tools intro"
 msgid "Use the %s to repair these relationships."
 msgstr ""
 
-#: bp-core/bp-core-customizer-email.php:27 bp-core/bp-core-filters.php:1133
+#: bp-core/bp-core-customizer-email.php:27 bp-core/bp-core-filters.php:1155
 msgctxt "screen heading"
 msgid "BuddyPress Emails"
 msgstr ""
@@ -9577,7 +11338,7 @@ msgctxt "screen heading"
 msgid "Emails"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:670
+#: bp-core/classes/class-bp-admin.php:752
 msgctxt "screen heading"
 msgid "Your feedback"
 msgstr ""
@@ -9610,17 +11371,17 @@ msgctxt "email"
 msgid "unsubscribe"
 msgstr ""
 
-#: bp-core/bp-core-filters.php:777
+#: bp-core/bp-core-filters.php:799
 msgctxt "customizer menu type label"
 msgid "Custom Link"
 msgstr ""
 
-#: bp-core/bp-core-filters.php:798
+#: bp-core/bp-core-filters.php:820
 msgctxt "customizer menu section title"
 msgid "BuddyPress (logged-in)"
 msgstr ""
 
-#: bp-core/bp-core-filters.php:803
+#: bp-core/bp-core-filters.php:825
 msgctxt "customizer menu section title"
 msgid "BuddyPress (logged-out)"
 msgstr ""
@@ -9860,22 +11621,22 @@ msgctxt "component directory title"
 msgid "Directory"
 msgstr ""
 
-#: bp-core/bp-core-update.php:607
+#: bp-core/bp-core-update.php:655
 msgctxt "component directory title"
 msgid "Site-Wide Activity"
 msgstr ""
 
-#: bp-core/bp-core-update.php:608
+#: bp-core/bp-core-update.php:656
 msgctxt "component directory title"
 msgid "Sites"
 msgstr ""
 
-#: bp-core/bp-core-update.php:609
+#: bp-core/bp-core-update.php:657
 msgctxt "component directory title"
 msgid "Groups"
 msgstr ""
 
-#: bp-core/bp-core-update.php:610
+#: bp-core/bp-core-update.php:658
 msgctxt "component directory title"
 msgid "Members"
 msgstr ""
@@ -9902,12 +11663,7 @@ msgctxt "Colloquial alternative to \"learn about BuddyPress\""
 msgid "Hello, BuddyPress!"
 msgstr ""
 
-#: bp-core/classes/class-bp-admin.php:634
-msgctxt "section heading"
-msgid "New in BuddyPress"
-msgstr ""
-
-#: bp-core/classes/class-bp-admin.php:959
+#: bp-core/classes/class-bp-admin.php:1040
 msgctxt "Email post type"
 msgid "Situations"
 msgstr ""
@@ -9942,6 +11698,21 @@ msgctxt "email post type description"
 msgid "BuddyPress emails"
 msgstr ""
 
+#: bp-friends/bp-friends-filters.php:64
+msgctxt "BuddyPress Friends data exporter friendly name"
+msgid "Friends"
+msgstr ""
+
+#: bp-friends/bp-friends-filters.php:70
+msgctxt "BuddyPress Friend Requests data exporter friendly name"
+msgid "Friend Requests (Sent)"
+msgstr ""
+
+#: bp-friends/bp-friends-filters.php:76
+msgctxt "BuddyPress Friend Requests data exporter friendly name"
+msgid "Friend Requests (Received)"
+msgstr ""
+
 #: bp-friends/bp-friends-notifications.php:251
 msgctxt "Friend settings on notification settings page"
 msgid "Friends"
@@ -10039,22 +11810,22 @@ msgctxt "Groups per page (screen options)"
 msgid "Groups"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:959
+#: bp-groups/bp-groups-admin.php:977
 msgctxt "Group member user_id in group admin"
 msgid "ID"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:960
+#: bp-groups/bp-groups-admin.php:978
 msgctxt "Group member name in group admin"
 msgid "Name"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:961
+#: bp-groups/bp-groups-admin.php:979
 msgctxt "Group member role in group admin"
 msgid "Group Role"
 msgstr ""
 
-#: bp-groups/bp-groups-admin.php:1214
+#: bp-groups/bp-groups-admin.php:1232
 msgctxt "Group members pagination in group admin"
 msgid "Viewing %1$s - %2$s of %3$s member"
 msgid_plural "Viewing %1$s - %2$s of %3$s members"
@@ -10071,6 +11842,26 @@ msgctxt "Group WP Admin Bar delete link"
 msgid "%s Group"
 msgstr ""
 
+#: bp-groups/bp-groups-filters.php:379
+msgctxt "BuddyPress Group Memberships data exporter friendly name"
+msgid "Group Memberships"
+msgstr ""
+
+#: bp-groups/bp-groups-filters.php:385
+msgctxt "BuddyPress Pending Group Membership Requests data exporter friendly name"
+msgid "Pending Group Membership Requests"
+msgstr ""
+
+#: bp-groups/bp-groups-filters.php:391
+msgctxt "BuddyPress Pending Group Invitations data exporter friendly name"
+msgid "Pending Group Invitations (Received)"
+msgstr ""
+
+#: bp-groups/bp-groups-filters.php:397
+msgctxt "BuddyPress Pending Group Invitations data exporter friendly name"
+msgid "Pending Group Invitations (Sent)"
+msgstr ""
+
 #: bp-groups/bp-groups-notifications.php:34
 msgctxt "Group update email text"
 msgid "* Name changed from \"%s\" to \"%s\"."
@@ -10086,32 +11877,32 @@ msgctxt "Group update email text"
 msgid "* Permalink changed from \"%s\" to \"%s\"."
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:1084
+#: bp-groups/bp-groups-notifications.php:1122
 msgctxt "Group settings on notification settings page"
 msgid "Groups"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:1093
+#: bp-groups/bp-groups-notifications.php:1131
 msgctxt "group settings on notification settings page"
 msgid "A member invites you to join a group"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:1105
+#: bp-groups/bp-groups-notifications.php:1143
 msgctxt "group settings on notification settings page"
 msgid "Group information is updated"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:1117
+#: bp-groups/bp-groups-notifications.php:1155
 msgctxt "group settings on notification settings page"
 msgid "You are promoted to a group administrator or moderator"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:1129
+#: bp-groups/bp-groups-notifications.php:1167
 msgctxt "group settings on notification settings page"
 msgid "A member requests to join a private group for which you are an admin"
 msgstr ""
 
-#: bp-groups/bp-groups-notifications.php:1141
+#: bp-groups/bp-groups-notifications.php:1179
 msgctxt "group settings on notification settings page"
 msgid "Your request to join a group has been approved or denied"
 msgstr ""
@@ -10126,133 +11917,133 @@ msgctxt "Group screen page <title>"
 msgid "User Groups"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:259
+#: bp-groups/classes/class-bp-groups-component.php:260
 msgctxt "Component directory search"
 msgid "Search Groups..."
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:389
+#: bp-groups/classes/class-bp-groups-component.php:390
 msgctxt "Group screen nav"
 msgid "Details"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:393
+#: bp-groups/classes/class-bp-groups-component.php:394
 msgctxt "Group screen nav"
 msgid "Settings"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:402
+#: bp-groups/classes/class-bp-groups-component.php:403
 msgctxt "Group screen nav"
 msgid "Photo"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:409
+#: bp-groups/classes/class-bp-groups-component.php:410
 msgctxt "Group screen nav"
 msgid "Cover Image"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:417
+#: bp-groups/classes/class-bp-groups-component.php:418
 msgctxt "Group screen nav"
 msgid "Invites"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:620
+#: bp-groups/classes/class-bp-groups-component.php:621
 msgctxt "Group screen nav"
 msgid "Request Membership"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:531
+#: bp-groups/classes/class-bp-groups-component.php:532
 #. translators: %s: Group count for the current user
 msgctxt "Group screen nav with counter"
 msgid "Groups %s"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:539
+#: bp-groups/classes/class-bp-groups-component.php:540
 msgctxt "Group screen nav without counter"
 msgid "Groups"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:605
-#: bp-templates/bp-nouveau/includes/groups/classes.php:240
+#: bp-groups/classes/class-bp-groups-component.php:606
+#: bp-templates/bp-nouveau/includes/groups/classes.php:257
 msgctxt "Group screen navigation title"
 msgid "Home"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/classes.php:268
+#: bp-templates/bp-nouveau/includes/groups/classes.php:285
 msgctxt "Group screen navigation title"
 msgid "Home (Activity)"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/classes.php:270
+#: bp-templates/bp-nouveau/includes/groups/classes.php:287
 msgctxt "Group screen navigation title"
 msgid "Home (Members)"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:635
-#: bp-templates/bp-nouveau/includes/groups/classes.php:275
+#: bp-groups/classes/class-bp-groups-component.php:636
+#: bp-templates/bp-nouveau/includes/groups/classes.php:292
 msgctxt "My Group screen nav"
 msgid "Activity"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:651
+#: bp-groups/classes/class-bp-groups-component.php:652
 msgctxt "My Group screen nav"
 msgid "Members %s"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:665
+#: bp-groups/classes/class-bp-groups-component.php:666
 msgctxt "My Group screen nav"
 msgid "Send Invites"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:680
-#: bp-templates/bp-nouveau/includes/groups/classes.php:252
+#: bp-groups/classes/class-bp-groups-component.php:681
+#: bp-templates/bp-nouveau/includes/groups/classes.php:269
 msgctxt "My Group screen nav"
 msgid "Manage"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/classes.php:246
+#: bp-templates/bp-nouveau/includes/groups/classes.php:263
 msgctxt "My Group screen nav"
 msgid "Invite"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/classes.php:284
+#: bp-templates/bp-nouveau/includes/groups/classes.php:301
 msgctxt "My Group screen nav"
 msgid "Members"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:793
+#: bp-groups/classes/class-bp-groups-component.php:794
 msgctxt "My Account Groups"
 msgid "Groups"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:794
+#: bp-groups/classes/class-bp-groups-component.php:795
 msgctxt "My Account Groups sub nav"
 msgid "No Pending Invites"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:805
+#: bp-groups/classes/class-bp-groups-component.php:806
 #. translators: %s: Group invitation count for the current user
 msgctxt "My Account Groups sub nav"
 msgid "Pending Invites %s"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:822
+#: bp-groups/classes/class-bp-groups-component.php:823
 msgctxt "My Account Groups sub nav"
 msgid "Memberships"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:841
+#: bp-groups/classes/class-bp-groups-component.php:842
 msgctxt "My Account Groups sub nav"
 msgid "Create a Group"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:799
+#: bp-groups/classes/class-bp-groups-component.php:800
 #. translators: %s: Group invitation count for the current user
 msgctxt "My Account Groups nav"
 msgid "Groups %s"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-component.php:862
+#: bp-groups/classes/class-bp-groups-component.php:863
 msgctxt "My Groups page <title>"
 msgid "Memberships"
 msgstr ""
@@ -10282,17 +12073,17 @@ msgctxt "Groups admin Last Active column header"
 msgid "Last Active"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-list-table.php:699
+#: bp-groups/classes/class-bp-groups-list-table.php:707
 msgctxt "Label for the WP groups table group type column"
 msgid "Group Type"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-template.php:295
+#: bp-groups/classes/class-bp-groups-template.php:296
 msgctxt "Group pagination previous text"
 msgid "&larr;"
 msgstr ""
 
-#: bp-groups/classes/class-bp-groups-template.php:296
+#: bp-groups/classes/class-bp-groups-template.php:297
 msgctxt "Group pagination next text"
 msgid "&rarr;"
 msgstr ""
@@ -10443,6 +12234,11 @@ msgctxt "Pending signup action"
 msgid "Email"
 msgstr ""
 
+#: bp-messages/bp-messages-filters.php:146
+msgctxt "BuddyPress Messages data exporter friendly name"
+msgid "Private Messages"
+msgstr ""
+
 #: bp-messages/bp-messages-template.php:1005
 msgctxt "Message dropdown filter"
 msgid "Read"
@@ -10468,12 +12264,12 @@ msgctxt "Message management markup"
 msgid "Mark as Unread"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-box-template.php:215
+#: bp-messages/classes/class-bp-messages-box-template.php:216
 msgctxt "Message pagination previous text"
 msgid "&larr;"
 msgstr ""
 
-#: bp-messages/classes/class-bp-messages-box-template.php:216
+#: bp-messages/classes/class-bp-messages-box-template.php:217
 msgctxt "Message pagination next text"
 msgid "&rarr;"
 msgstr ""
@@ -10517,6 +12313,11 @@ msgctxt ""
 msgid "Active: %s"
 msgstr ""
 
+#: bp-notifications/bp-notifications-filters.php:26
+msgctxt "BuddyPress Notifications data exporter friendly name"
+msgid "Notifications Data"
+msgstr ""
+
 #: bp-notifications/classes/class-bp-notifications-component.php:28
 msgctxt "Page <title>"
 msgid "Notifications"
@@ -10580,6 +12381,26 @@ msgctxt "Notifications pagination next text"
 msgid "&rarr;"
 msgstr ""
 
+#: bp-settings/bp-settings-filters.php:25
+msgctxt "BuddyPress Settings Data data exporter friendly name"
+msgid "Personal settings"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:326
+msgctxt "WP Comments data exporter friendly name"
+msgid "Comments"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:327
+msgctxt "WP Media data exporter friendly name"
+msgid "Media"
+msgstr ""
+
+#: bp-settings/bp-settings-functions.php:328
+msgctxt "WP Media data exporter friendly name"
+msgid "Personal information"
+msgstr ""
+
 #: bp-templates/bp-legacy/buddypress/activity/index.php:137
 msgctxt "Number of new activity mentions"
 msgid "%s new"
@@ -10639,11 +12460,19 @@ msgctxt "button"
 msgid "Select your file"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/activity/form.php:42
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/activity/form.php:47
 msgctxt "button"
 msgid "Remove item"
 msgstr ""
 
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:119
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:134
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/search-form.php:16
+#: bp-templates/bp-nouveau/buddypress/common/search/search-form.php:19
+msgctxt "button"
+msgid "Search"
+msgstr ""
+
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:86
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:92
 msgctxt "button"
@@ -10663,13 +12492,6 @@ msgctxt "button"
 msgid "Send"
 msgstr ""
 
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:134
-#: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/search-form.php:16
-#: bp-templates/bp-nouveau/buddypress/common/search/search-form.php:19
-msgctxt "button"
-msgid "Search"
-msgstr ""
-
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:117
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:119
 #: bp-templates/bp-nouveau/includes/notifications/template-tags.php:121
@@ -10699,25 +12521,25 @@ msgctxt "button"
 msgid "Change"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:342
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:336
 msgctxt "button"
 msgid "Comment"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:460
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:461
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:454
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:455
 #: bp-templates/bp-nouveau/includes/notifications/template-tags.php:114
 msgctxt "button"
 msgid "Delete"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:506
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:511
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:500
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:505
 msgctxt "button"
 msgid "Spam"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/functions.php:1343
+#: bp-templates/bp-nouveau/includes/functions.php:1329
 msgctxt "button"
 msgid "Post"
 msgstr ""
@@ -10770,12 +12592,88 @@ msgctxt "heading"
 msgid "Search Members"
 msgstr ""
 
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:33
+msgctxt "group manage members update feedback"
+msgid "Updating role... Please wait."
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:35
+msgctxt "group manage members ban feedback"
+msgid "Banning member... Please wait."
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:37
+msgctxt "group manage members unban feedback"
+msgid "Unbanning member... Please wait."
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:39
+msgctxt "group manage members remove feedback"
+msgid "Removing member... Please wait."
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:49
+msgctxt "group manage members table header"
+msgid "Group Members"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:50
+msgctxt "group manage members table header"
+msgid "Roles"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:65
+msgctxt "group manage members row edit"
+msgid "Change role for:"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:67
+msgctxt "group manage members roles filter"
+msgid "Filter:"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:81
+msgctxt "group member edit role link"
+msgid "Edit"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:84
+msgctxt "group member edit role abort link"
+msgid "Stop editing"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:87
+msgctxt "group member ban link"
+msgid "Ban"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:91
+msgctxt "group member ban link"
+msgid "Remove"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:89
+msgctxt "group member unban link"
+msgid "Unban"
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:116
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:130
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/search-form.php:13
 msgctxt "search placeholder text"
 msgid "Search"
 msgstr ""
 
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:137
+msgctxt "link"
+msgid "Prev."
+msgstr ""
+
+#: bp-templates/bp-nouveau/buddypress/common/js-templates/group-members/index.php:142
+msgctxt "link"
+msgid "Next"
+msgstr ""
+
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:143
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/invites/index.php:145
 #: bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php:81
@@ -10790,23 +12688,23 @@ msgctxt "link"
 msgid "Next page"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:347
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:341
 msgctxt "link"
 msgid "Comment"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:794
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:788
 msgctxt "link"
 msgid "Reply"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:808
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:802
 #: bp-templates/bp-nouveau/includes/notifications/functions.php:248
 msgctxt "link"
 msgid "Delete"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/activity/template-tags.php:835
+#: bp-templates/bp-nouveau/includes/activity/template-tags.php:829
 msgctxt "link"
 msgid "Spam"
 msgstr ""
@@ -10831,21 +12729,21 @@ msgctxt "Customizer Panel"
 msgid "BuddyPress Nouveau"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:307
 #: bp-templates/bp-nouveau/includes/groups/functions.php:313
-#: bp-templates/bp-nouveau/includes/groups/functions.php:333
-#: bp-templates/bp-nouveau/includes/groups/functions.php:344
+#: bp-templates/bp-nouveau/includes/groups/functions.php:319
+#: bp-templates/bp-nouveau/includes/groups/functions.php:339
+#: bp-templates/bp-nouveau/includes/groups/functions.php:350
 msgctxt "Group invitations menu title"
 msgid "Invite"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:420
-#: bp-templates/bp-nouveau/includes/groups/functions.php:448
+#: bp-templates/bp-nouveau/includes/groups/functions.php:426
+#: bp-templates/bp-nouveau/includes/groups/functions.php:454
 msgctxt "Group invitations main menu title"
 msgid "Group Invites"
 msgstr ""
 
-#: bp-templates/bp-nouveau/includes/groups/functions.php:851
+#: bp-templates/bp-nouveau/includes/groups/functions.php:857
 msgctxt "Customizer control label"
 msgid "Groups"
 msgstr ""
@@ -10923,6 +12821,11 @@ msgctxt "xprofile field type category"
 msgid "Single Fields"
 msgstr ""
 
+#: bp-xprofile/bp-xprofile-filters.php:678
+msgctxt "BuddyPress Extended Profile data exporter friendly name"
+msgid "Extended Profile information"
+msgstr ""
+
 #: bp-xprofile/classes/class-bp-xprofile-component.php:49
 msgctxt "Component page <title>"
 msgid "Extended Profiles"
@@ -11068,12 +12971,12 @@ msgctxt "xprofile field type"
 msgid "URL"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1388
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1392
 msgctxt "XProfile admin edit field"
 msgid "Name (required)"
 msgstr ""
 
-#: bp-xprofile/classes/class-bp-xprofile-field.php:1394
+#: bp-xprofile/classes/class-bp-xprofile-field.php:1398
 msgctxt "XProfile admin edit field"
 msgid "Description"
 msgstr ""
diff --git a/wp-content/plugins/buddypress/class-buddypress.php b/wp-content/plugins/buddypress/class-buddypress.php
index 560a85a09..fbe82b4d4 100644
--- a/wp-content/plugins/buddypress/class-buddypress.php
+++ b/wp-content/plugins/buddypress/class-buddypress.php
@@ -303,8 +303,8 @@ class BuddyPress {
 
 		/** Versions **********************************************************/
 
-		$this->version    = '4.4.0';
-		$this->db_version = 11105;
+		$this->version    = '5.1.2';
+		$this->db_version = 12385;
 
 		/** Loading ***********************************************************/
 
@@ -487,6 +487,7 @@ class BuddyPress {
 		require( $this->plugin_dir . 'bp-core/bp-core-moderation.php'       );
 		require( $this->plugin_dir . 'bp-core/bp-core-loader.php'           );
 		require( $this->plugin_dir . 'bp-core/bp-core-customizer-email.php' );
+		require( $this->plugin_dir . 'bp-core/bp-core-rest-api.php'         );
 
 		// Maybe load deprecated functionality (this double negative is proof positive!)
 		if ( ! bp_get_option( '_bp_ignore_deprecated_code', ! $this->load_deprecated ) ) {
@@ -544,35 +545,49 @@ class BuddyPress {
 
 		// These classes don't have a name that matches their component.
 		$irregular_map = array(
-			'BP_Akismet' => 'activity',
-
-			'BP_Admin'                     => 'core',
-			'BP_Attachment_Avatar'         => 'core',
-			'BP_Attachment_Cover_Image'    => 'core',
-			'BP_Attachment'                => 'core',
-			'BP_Button'                    => 'core',
-			'BP_Component'                 => 'core',
-			'BP_Customizer_Control_Range'  => 'core',
-			'BP_Date_Query'                => 'core',
-			'BP_Email_Delivery'            => 'core',
-			'BP_Email_Recipient'           => 'core',
-			'BP_Email'                     => 'core',
-			'BP_Embed'                     => 'core',
-			'BP_Media_Extractor'           => 'core',
-			'BP_Members_Suggestions'       => 'core',
-			'BP_PHPMailer'                 => 'core',
-			'BP_Recursive_Query'           => 'core',
-			'BP_Suggestions'               => 'core',
-			'BP_Theme_Compat'              => 'core',
-			'BP_User_Query'                => 'core',
-			'BP_Walker_Category_Checklist' => 'core',
-			'BP_Walker_Nav_Menu_Checklist' => 'core',
-			'BP_Walker_Nav_Menu'           => 'core',
+			'BP_Akismet'                => 'activity',
+			'BP_REST_Activity_Endpoint' => 'activity',
+
+			'BP_Admin'                                   => 'core',
+			'BP_Attachment_Avatar'                       => 'core',
+			'BP_Attachment_Cover_Image'                  => 'core',
+			'BP_Attachment'                              => 'core',
+			'BP_Button'                                  => 'core',
+			'BP_Component'                               => 'core',
+			'BP_Customizer_Control_Range'                => 'core',
+			'BP_Date_Query'                              => 'core',
+			'BP_Email_Delivery'                          => 'core',
+			'BP_Email_Address'                           => 'core',
+			'BP_Email_Recipient'                         => 'core',
+			'BP_Email_Sender'                            => 'core',
+			'BP_Email_Participant'                       => 'core',
+			'BP_Email'                                   => 'core',
+			'BP_Embed'                                   => 'core',
+			'BP_Media_Extractor'                         => 'core',
+			'BP_Members_Suggestions'                     => 'core',
+			'BP_PHPMailer'                               => 'core',
+			'BP_Recursive_Query'                         => 'core',
+			'BP_Suggestions'                             => 'core',
+			'BP_Theme_Compat'                            => 'core',
+			'BP_User_Query'                              => 'core',
+			'BP_Walker_Category_Checklist'               => 'core',
+			'BP_Walker_Nav_Menu_Checklist'               => 'core',
+			'BP_Walker_Nav_Menu'                         => 'core',
+			'BP_Invitation_Manager'                      => 'core',
+			'BP_Invitation'                              => 'core',
+			'BP_REST_Components_Endpoint'                => 'core',
+			'BP_REST_Attachments'                        => 'core',
+			'BP_REST_Attachments_Member_Avatar_Endpoint' => 'core',
+			'BP_REST_Attachments_Group_Avatar_Endpoint'  => 'core',
 
 			'BP_Core_Friends_Widget' => 'friends',
 
-			'BP_Group_Extension'    => 'groups',
-			'BP_Group_Member_Query' => 'groups',
+			'BP_Group_Extension'                        => 'groups',
+			'BP_Group_Member_Query'                     => 'groups',
+			'BP_REST_Groups_Endpoint'                   => 'groups',
+			'BP_REST_Group_Membership_Endpoint'         => 'groups',
+			'BP_REST_Group_Invites_Endpoint'            => 'groups',
+			'BP_REST_Group_Membership_Request_Endpoint' => 'groups',
 
 			'BP_Core_Members_Template'       => 'members',
 			'BP_Core_Members_Widget'         => 'members',
@@ -580,6 +595,15 @@ class BuddyPress {
 			'BP_Core_Whos_Online_Widget'     => 'members',
 			'BP_Registration_Theme_Compat'   => 'members',
 			'BP_Signup'                      => 'members',
+			'BP_REST_Members_Endpoint'       => 'members',
+
+			'BP_REST_Messages_Endpoint' => 'messages',
+
+			'BP_REST_Notifications_Endpoint' => 'notifications',
+
+			'BP_REST_XProfile_Fields_Endpoint'       => 'xprofile',
+			'BP_REST_XProfile_Field_Groups_Endpoint' => 'xprofile',
+			'BP_REST_XProfile_Data_Endpoint'         => 'xprofile',
 		);
 
 		$component = null;
@@ -600,7 +624,11 @@ class BuddyPress {
 		// Sanitize class name.
 		$class = strtolower( str_replace( '_', '-', $class ) );
 
-		$path = dirname( __FILE__ ) . "/bp-{$component}/classes/class-{$class}.php";
+		if ( 'bp-rest-attachments' === $class ) {
+			$path = dirname( __FILE__ ) . "/bp-{$component}/classes/trait-attachments.php";
+		} else {
+			$path = dirname( __FILE__ ) . "/bp-{$component}/classes/class-{$class}.php";
+		}
 
 		// Sanity check.
 		if ( ! file_exists( $path ) ) {
diff --git a/wp-content/plugins/buddypress/readme.txt b/wp-content/plugins/buddypress/readme.txt
index 03e8d0909..24d9bebca 100644
--- a/wp-content/plugins/buddypress/readme.txt
+++ b/wp-content/plugins/buddypress/readme.txt
@@ -1,10 +1,10 @@
 === BuddyPress ===
 Contributors: johnjamesjacoby, DJPaul, boonebgorges, r-a-y, imath, mercime, tw2113, dcavins, hnla, karmatosed, slaFFik, dimensionmedia, henrywright, netweb, offereins, espellcaste, modemlooper, danbp, Venutius, apeatling, shanebp
-Tags: user profiles, activity streams, messaging, friends, user groups, notifications, community, social networking
-Requires at least: 4.6
-Tested up to: 5.2
+Tags: user profiles, activity streams, messaging, friends, user groups, notifications, community, social networking, intranet
+Requires at least: 4.7
+Tested up to: 5.3
 Requires PHP: 5.3
-Stable tag: 4.4.0
+Stable tag: 5.1.2
 License: GPLv2 or later
 License URI: https://www.gnu.org/licenses/gpl-2.0.html
 
@@ -34,7 +34,6 @@ WordPress.org is home to some amazing extensions for BuddyPress, including:
 
 - [rtMedia for WordPress, BuddyPress and bbPress](https://wordpress.org/plugins/buddypress-media/)
 - [BuddyPress Docs](https://wordpress.org/plugins/buddypress-docs/)
-- [BuddyPress Activity Plus](https://wordpress.org/plugins/buddypress-activity-plus/)
 
 Search WordPress.org for "BuddyPress" to find them all!
 
@@ -126,6 +125,18 @@ Try <a href="https://wordpress.org/plugins/bbpress/">bbPress</a>. It integrates
 
 == Upgrade Notice ==
 
+= 5.1.2 =
+See: https://codex.buddypress.org/releases/version-5-1-2/
+
+= 5.1.1 =
+See: https://codex.buddypress.org/releases/version-5-1-1/
+
+= 5.1.0 =
+See: https://codex.buddypress.org/releases/version-5-1-0/
+
+= 5.0.0 =
+See: https://codex.buddypress.org/releases/version-5-0-0/
+
 = 4.4.0 =
 See: https://codex.buddypress.org/releases/version-4-4-0/
 
@@ -143,6 +154,18 @@ See: https://codex.buddypress.org/releases/version-4-0-0/
 
 == Changelog ==
 
+= 5.1.2 =
+See: https://codex.buddypress.org/releases/version-5-1-2/
+
+= 5.1.1 =
+See: https://codex.buddypress.org/releases/version-5-1-1/
+
+= 5.1.0 =
+See: https://codex.buddypress.org/releases/version-5-1-0/
+
+= 5.0.0 =
+See: https://codex.buddypress.org/releases/version-5-0-0/
+
 = 4.4.0 =
 See: https://codex.buddypress.org/releases/version-4-4-0/
 
-- 
GitLab