Entretenimiento

El elenco de ‘Blue Bloods’ desde la temporada 1 hasta ahora: Donnie Wahlberg, Bridget Moynahan y más

¡La familia Reagan, entonces y ahora! Sangre azul se estrenó en CBS en septiembre de 2010, presentando al mundo a una familia de policías, y ahora está en la temporada 13.

len cariou lidera a la familia como el comisionado de policía jubilado de Nueva York, Henry Reagan; su hijo franco (tom Selleck), reproduce la PC actual; Danny, el hijo de Frank (donnie wahlberg) interpreta a un detective y a su hijo menor Jamie (will estes) es sargento; la hija de Frank, Erin (Bridget Moynahan), es asistente del fiscal de distrito y tiene una hija, Nicky (sami gayle).

Aunque el programa comenzó con muchas otras estrellas, incluidas jennifer esposito como la detective Jackie Curatola y amy carlson como la esposa de Danny, Linda, los seis actores anteriores son los únicos que han sido parte del programa desde el principio y aún permanecen en la serie.

Esposito dejó el programa a mitad de la temporada 3 después de que le diagnosticaran enfermedad celíaca. En un comunicado de prensa, CBS dijo en ese momento que la actriz «no podía cumplir con las demandas de su papel y lamentablemente tuvimos que poner a su personaje en un permiso de ausencia».

Carlson, por su parte, sorprendió al público cuando decidió salir del programa después de que se filmó el final de la temporada 7. Fue ascendida a serie regular en la temporada 2, pero sintió que era hora de salir del programa después de que finalizó su contrato. Finalmente, durante el estreno de la temporada 8, se reveló que murió en un accidente de helicóptero mientras estaba de servicio.

w5V4rfdB_zhNYySv2_div»>

console.log('AMI jwp ad params', videoParams); if ( videoParams.advertising ) { console.log('AMI jwp ad params', videoParams.advertising); } var vHash="ami" + decodeURIComponent( 'w5V4rfdB' ); if ( window.jwpDef[vHash].advertising ) { if ( window.jwpDef[vHash].advertising.schedule ) { if ( window.jwpDef[vHash].advertising.schedule[0].tag ) { if ( typeof window.jwVastTag[vHash] === 'undefined' ){ window.jwVastTag[vHash] = window.jwpDef[vHash].advertising.schedule[0].tag; var vastURL = new URL( window.jwVastTag[vHash] ); var vastParams = new URLSearchParams( vastURL.search ); var ui = vastParams.get( 'iu' ).split( '/' ); window.prerollTag[vHash] = vastParams.get( 'iu' ); window.prerollTag[vHash] = vastParams.get( 'iu' ); window.jwpBids[vHash] = {}; console.log('AMI jwp', window.jwpBids); console.log('AMI jwp prerolltag', window.prerollTag[vHash]); console.log('AMI jwp GAM Tag', window.jwVastTag[vHash]); } } } } function performAsyncBidding(player, item, index) { var el = decodeURIComponent( 'jwplayer_w5V4rfdB_zhNYySv2_div' ); var vHash="ami" + decodeURIComponent( 'w5V4rfdB' ); let url = window.jwVastTag[vHash];

var utms = {}; if ( adsParseUrlParams( 'utm_source' ) || typeof getCookie('utm_source') !== 'undefined' ) { var utm_source; if(adsParseUrlParams( 'utm_source' )){ utm_source = adsParseUrlParams( 'utm_source' ); setCookie('utm_source', utm_source, {expires:1800, path: '/'}); } else { utm_source = getCookie('utm_source'); } utms.utm_source = utm_source; }

if ( adsParseUrlParams( 'utm_medium' ) || typeof getCookie('utm_medium') !== 'undefined' ) { var utm_medium; if( adsParseUrlParams( 'utm_medium' ) ){ utm_medium = adsParseUrlParams( 'utm_medium' ); setCookie('utm_medium', utm_medium, {expires:1800, path: '/'}); } else { utm_medium = getCookie('utm_medium'); } utms.utm_medium = utm_medium; }

if ( adsParseUrlParams( 'utm_campaign' ) || typeof getCookie('utm_campaign') !== 'undefined' ) { var utm_campaign; if(adsParseUrlParams( 'utm_campaign' )){ utm_campaign = adsParseUrlParams( 'utm_campaign' ); setCookie('utm_campaign', utm_campaign, {expires:1800, path: '/'}); } else { utm_campaign = getCookie('utm_campaign'); } utms.utm_campaign = utm_campaign ; }

if ( typeof utms.utm_source !== 'undefined' || typeof utms.utm_medium !== 'undefined' || typeof utms.utm_campaign !== 'undefined' ) { var vastURL = new URL( window.jwVastTag[vHash] ); var vastParams = new URLSearchParams( vastURL.search ); var keys = Object.keys( utms ); if ( vastParams.has( 'cust_params' ) ) { var custParams = new URLSearchParams( vastParams.get( 'cust_params' ) ); } else { var custParams = new URLSearchParams(); } for ( var key of keys ) { custParams.set( key, utms[key]); } vastParams.set( 'cust_params', decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); }

console.log( 'AMI jwp GAM tag with UTM', url );

if ( localStorage._pdfps ) { var playerSegsPerm = encodeURIComponent('&permutive=" + encodeURIComponent(JSON.parse(localStorage._pdfps || "[]').slice(0,250).join(','))); url = url.replace(/(cust_params[^&]+)/, '$1' + playerSegsPerm); }

console.log( 'AMI jwp GAM tag with Permutive', url );

return new Promise((resolve, reject) => { let bidders = ['a9', 'ix', 'iris'];

// create a requestManager to keep track of bidder state to determine when to send ad server // request and what amazonSlots to request from the ad server var requestManager = { adserverRequestSent: false, };

//loop through bidder array and add the bidders to the request manager: bidders.forEach( function( bidder ) { requestManager[bidder] = false; } );

// return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map( function( bidder ) { return requestManager[bidder]; } ) // get rid of false values - indicates that the bidder has responded .filter( Boolean ) // if length is equal to bidders, all bidders are back .length === bidders.length;

return allBiddersBack; }

// handler for header bidder responses function headerBidderBack( bidder ) { // return early if request to adserver is already sent if ( requestManager.adserverRequestSent === true ) { return; } // flip bidder back flag if ( bidder === 'a9' ) { requestManager.a9 = true; console.log('second promise a9 ready'); } else if ( bidder === 'ix' ) { requestManager.ix = true; console.log('second promise ix ready'); } else if ( bidder === 'iris' ) { requestManager.iris = true; console.log('second promise iris ready'); } // if all bidders are back, send the request to the ad server if ( allBiddersBack() ) { resolve( url ); } }

if ( typeof apstag == 'object' && apstag ) { apstag.fetchBids({ slots: [{ slotID: window.prerollTag[vHash], mediaType: 'video' }] }, function( bids ) { console.log( "AMI jwp amazon bid callback", new Date().getTime(), bids ); window.jwpBids[vHash].amazon = true; if ( bids.length > 0 ) { //If we have received any bids back try { console.log("AMI jwp amazon bid request ad", bids[0].encodedQsParams); url = url + '&scp=' + bids[0].encodedQsParams; } catch ( e ) { console.log(e); } } else { console.log("AMI jwp amazon no bids"); } headerBidderBack('a9'); }); } else { headerBidderBack('a9'); }

headertag.cmd.push( function() { headertag.retrieveVideoDemand( [{'htSlotName': 'preroll'}], function( demand ) { console.log( "AMI jwp IX callback", demand );

if ( 'undefined' !== typeof demand.preroll && demand.preroll.length ){ window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price;

console.log( 'AMI jwp IX Bids', new Date().getTime(), demand.preroll[0].targeting );

var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( 'cust_params' ) ) { var custParams = new URLSearchParams( vastParams.get( 'cust_params' ) ); } else { var custParams = new URLSearchParams(); } var keys = Object.keys( demand.preroll[0].targeting.price ); for ( var key of keys ) { custParams.set( key, demand.preroll[0].targeting.price[key][0]); } vastParams.set( 'cust_params', custParams.toString() ); vastURL.search = vastParams.toString(); url = vastURL.toString(); }

headerBidderBack('ix'); } ); } );

// Get main item context data window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) { // Encode the context data console.log( 'AMI jwp IrisTV Bids', new Date().getTime(), data.context ); // Replace the server url with the context data (this is for simple ad requests), // If you have the serverUrl dynamically configured, then you will need to append the context data // under cust_params, so this is just for testing purpose

if ( data.context && Object.keys( data.context ).length ) { var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( 'cust_params' ) ) { var custParams = new URLSearchParams( vastParams.get( 'cust_params' ) ); } else { var custParams = new URLSearchParams(); } custParams.set( 'iris_context', data.context.join(',')); vastParams.set( 'cust_params', decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack('iris'); });

setTimeout(function(){ resolve( url ); }, 10000); }); }

var player_jwplayer_w5V4rfdB_zhNYySv2_div = jwplayer(el).setup(videoParams).on("ready", function(){ var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var playerInstance = jwplayer(el); ns_.StreamingAnalytics.JWPlayer( playerInstance, { publisherId: "6036076", labelmapping: "ns_st_pu=\"AMI\", c3=\"Us Weekly\", ns_st_ge=\"" + decodeURIComponent( "%2Anull" ) + "\", ns_st_ia=\"" + decodeURIComponent( "%2Anull" ) + "\", ns_st_ce=\"" + decodeURIComponent( "1" ) + "\", ns_st_ddt=\"" + decodeURIComponent( "%2Anull" ) + "\", ns_st_tdt=\"" + decodeURIComponent( "%2Anull" ) + "\"", }); }).on('adsManager', (e) => { var vHash="ami" + decodeURIComponent( 'w5V4rfdB' ); const { adsManager, videoElement } = e; const iasConfig = { anId: '928572', campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded chanId: window.prerollTag[vHash], placementId: 'Open Auction', pubOrder: 'Video', pubId: 'Direct' }; if (googleImaVansAdapter) { googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig); } }).on( 'time', function( e ) { var id = this.id; var pct = Math.round( e.position );

if ( ! window.amiPlayersData ) { window.amiPlayersData = {}; }

if ( ! window.amiPlayersData[id] ) { window.amiPlayersData[id] = { m3: false, m10: false }; }

if ( window.amiPlayersData[id]['m3'] === false && pct >= 3 ) { window.amiPlayersData[id]['m3'] = true; console.log( '3sec played: ', id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: 'JWPlayEvent', jwTime: '3s played'} ); }

if ( window.amiPlayersData[id]['m10'] === false && pct >= 10 ) { window.amiPlayersData[id]['m10'] = true; console.log( '10sec played: ', id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: 'JWPlayEvent', jwTime: '10s played'} ); }

}).on( 'complete', function( e ) { if ( window.amiPlayersData && window.amiPlayersData[ this.id ] ) { window.amiPlayersData[ this.id ]['m3'] = false; window.amiPlayersData[ this.id ]['m10'] = false; console.log( 'clear played: ', this.id ); } }).once("play", function(){ var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var playerInstance = jwplayer(el); loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins["https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js"]) }).on('play', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== 'idle' && jwplayer(el).getState() !== 'complete') { return; }

window.permutive.track("VideoPlay", { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language:"English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } });

console.log("Permutive video play");

}).on('complete', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== 'idle' && jwplayer(el).getState() !== 'complete') { return; }

window.permutive.track("VideoComplete", { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language: "English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } }); console.log("Permutive video event:", e); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; }).on('time', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.currentTime/e.duration).toFixed(2);

if ( (0.25 === progress && false === window.lock_25) || (0.5 === progress && false === window.lock_50) || (0.75 === progress && false === window.lock_75) || (100 === progress && false === window.lock_100) ) { window.permutive.track("VideoProgress", { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language: "English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } }); if ( 0.25 === progress ) { window.lock_25 = true; } if ( 0.5 === progress ) { window.lock_50 = true; } if ( 0.75 === progress ) { window.lock_75 = true; } if ( 1 === progress ) { window.lock_100 = true; } console.log("Permutive video play progress " + progress); }

}).on('mute', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.permutive.track("VideoEvent", { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.mute) ? "sound off" : "sound on", video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } });

console.log("Permutive video event:", e);

}).on('fullscreen', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.permutive.track("VideoEvent", { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.fullscreen) ? "fullscreen on" : "fullscreen off", video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log("Permutive video event:", e); }).on('ready', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); console.log(jwInfo); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false;

window.permutive.track("VideoLoad", { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language: "English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } }); console.log("Permutive video load event"); }).on('adPlay', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

window.adInfo = e; var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.adlock_25 = false; window.adlock_50 = false; window.adlock_75 = false; window.adlock_100 = false;

window.permutive.track("VideoAdPlay", { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: "instream" //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language: "English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } }); console.log("Permutive video ad play"); }).on('adClick', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.permutive.track("VideoAdClick", { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: "instream" //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language: "English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } }); console.log("Permutive video ad click"); }).on('adTime', (e) => { var el = decodeURIComponent( "jwplayer_w5V4rfdB_zhNYySv2_div" ); var vHash = "ami" + decodeURIComponent( "w5V4rfdB" ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.position/e.duration).toFixed(2);

if ( (0.25 >= progress && false === window.adlock_25) || (0.5 >= progress && false === window.adlock_50) || (0.75 >= progress && false === window.adlock_75) || (0.95 >= progress && false === window.adlock_100) ) {

window.permutive.track("VideoAdProgress", { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: "instream" //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( "w5V4rfdB" ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( "Us%20Weekly" ), //tv channel name language: "English", //language of the content type: "video", keywords: jwInfo.tags.split(","), //keywords for the page } }); if ( 0.25 >= progress ) { window.adlock_25 = true; } if ( 0.5 >= progress ) { window.adlock_50 = true; } if ( 0.75 >= progress ) { window.adlock_75 = true; } if ( 0.95 >= progress ) { window.adlock_100 = true; } console.log("Permutive video ad progress " + progress); } }).setPlaylistItemCallback(function(item, index) { return waitForAmazon // Wait until Amazon is loaded. .then(() => performAsyncBidding( player_jwplayer_w5V4rfdB_zhNYySv2_div, item, index ), () => { console.log("AMI JWP bidding FAILER"); }) // External bidding. .then(tag => { // Update the playlist item. console.log("AMI jwp new headerbid", tag);

return Object.assign({}, item, { adschedule: [{ tag, offset: "pre" }] }); }).catch(function(e){ console.log("AMI jwp bidding failed", e); return item; }); // If bidding fails, use unmodified playlist item. });; clearInterval(checkJWReady); } }, 500); })();

“Fueron siete años maravillosos y pasé un tiempo maravilloso allí y estoy muy agradecida con CBS y fue una oportunidad increíble”, dijo. nosotros semanalmente exclusivamente en 2017. “Me encantó interpretar a la esposa de Donnie. Eran como una segunda familia para mí. … Él y yo nos enviamos mensajes de texto todo el tiempo. Todavía estamos muy unidos y somos grandes amigos. Estuvimos allí el uno para el otro durante mucho tiempo. Ha dicho algunas de las mejores cosas sobre mí a la prensa y nunca ha vacilado en ese apoyo. Ha sido súper generoso y una persona encantadora”.

Al final de la temporada 12 en abril de 2022, a los fanáticos les preocupaba si el popular drama se reanudaría para otra temporada. Después de publicar una foto a través de Instagram de su último día en el set de la temporada, Wahlberg compartió su esperanza de continuar trabajando en el proyecto. “Si Dios quiere”, escribió a través de Instagram en ese momento junto a una selfie de sí mismo con su uniforme de detective de policía.

Más tarde ese mes, CBS anunció la renovación del programa para la temporada 13, y la presidenta de Entretenimiento de la cadena, Kelly Kahl, dijo: Variedad que el programa continuó “dominando los índices de audiencia”.

En septiembre de 2022, Wahlberg compartió un video detrás de escena a través de Instagram de las famosas cenas familiares del drama criminal, etiquetando vanessa rayo, Moynahan, Estes y el “legendario” Selleck, quien saludó adorablemente a la cámara.

Desplácese por la galería a continuación para ver el elenco en la temporada 1 y ahora:

Oliver Barker

Nació en Bristol y se crió en Southampton. Tiene una licenciatura en Contabilidad y Economía y una maestría en Finanzas y Economía de la Universidad de Southampton. Tiene 34 años y vive en Midanbury, Southampton.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba