!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/billing/system/application/models/   drwxr-xr-x
Free 13.22 GB of 57.97 GB (22.8%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     gatewaymodel.php (20.85 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?
class gatewayModel extends Model{

        function gatewayModel()
        {
                parent::Model();
        }


/**
 ***********************************************************************
 * @Start Global Section  **********************************************
 ***********************************************************************
*/

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}






/**
 ***********************************************************************
 * @Start Trunk Section **********************************************
 ***********************************************************************
*/


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return total number of Trunk List
 * @copyright 2011
 */
 
     function getTotalnumTrunk($description,$ipAddress)
     {

        if($description=="NULL")
        $descriptionStr = "";
        else
        $descriptionStr = "AND description like 'description%'";

        if($ipAddress=="NULL")
        $ipAddressStr = "";
        else
        $ipAddressStr = "AND providerip like '$ipAddress%'";


           $sql="SELECT
           count(id_trunk) as totalrows
           FROM trunk         
        Where id_trunk != '-1' $descriptionStr $ipAddressStr";

        $row = 0;
        $query = $this->db->query($sql);
        foreach($query->result() as $resultrow)
        {
            $row = $resultrow->totalrows;
        }
        return $row;

    }
    

/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Gateway List
 * @copyright 2011
 */
    function trunkList($startoffset,$limit,$description,$ipAddress)
    {
        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";


        if($description=="NULL")
        $descriptionStr = "";
        else
        $descriptionStr = "AND description like '$description%'";

        if($ipAddress=="NULL")
        $ipAddressStr = "";
        else
        $ipAddressStr = "AND providerip like '$ipAddress%'";

        $sql = "SELECT
                id_trunk,
                description,
                providertech,
                providerip,
                port,
                inuse,
                maxuse,
                status
                
                FROM trunk
                where id_trunk !=-1  $descriptionStr $ipAddressStr order by description ASC $limit_string";


        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Add Turnk
 * @copyright 2011
 */

 function addTrunk()
 {


        //$data['id_trunk']        = $this->input->post('id_trunk');
        $data['description']        = $this->input->post('description');
        $data['id_rate']        = $this->input->post('id_rate');    
        $data['providertech']        = $this->input->post('providertech');
        $data['providerip']        = $this->input->post('providerip');
        $data['inuse']        = $this->input->post('inuse');
        $data['maxuse']        = $this->input->post('maxuse');
        $data['if_max_use']        = $this->input->post('if_max_use');
        $data['disallow_loss']        = $this->input->post('disallow_loss');
        $data['status']        = $this->input->post('status');

        $sql = $this->db->insert_string('trunk', $data);
        $query = $this->db->query($sql);
        $idInsert = $this->db->insert_id();
 }
 
 
 
 
 /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Return Trunk Infomation
 * @copyright 2011
 */

    function trunkEditInfo($id_trunk)
    {
        $query = $this->db->query("select *from trunk where id_trunk = '$id_trunk' LIMIT 1");
        if($query->num_rows()>0)
        {
            return $query->result();
        }
        else
        return 0;
    }


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Edit Trunk Information 
 * @copyright 2011
 */

 function editTrunk()
 {

        $keyvalue        = $this->input->post('id_trunk');
        $data['description']        = $this->input->post('description');
        $data['id_rate']        = $this->input->post('id_rate');    
        $data['providertech']        = $this->input->post('providertech');
        $data['providerip']        = $this->input->post('providerip');
        $data['inuse']        = $this->input->post('inuse');
        $data['maxuse']        = $this->input->post('maxuse');
        $data['if_max_use']        = $this->input->post('if_max_use');
        $data['disallow_loss']        = $this->input->post('disallow_loss');
        $data['status']        = $this->input->post('status');

        $where = "id_trunk = $keyvalue";
        $sql = $this->db->update_string('trunk', $data, $where);
        $query = $this->db->query($sql);
        
 }
 


 /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Delete Trunk Information
 * @copyright 2011
 */

    function deleteTrunk($id_trunk)
    {
         $query = $this->db->query("delete from dialplan where id_trunk = '$id_trunk'");
        $query = $this->db->query("delete from trunk where id_trunk = '$id_trunk'");
    }







/**
 ***********************************************************************
 * @Start Dial Plan  Section *******************************************
 ***********************************************************************
*/


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return total number of Dial Plan
 * @copyright 2011
 */
 
  
     function getTotalnumDialPlan($idTrunk,$perfix,$routeType = 0)
     {
        if($perfix=="NULL")
        $perfixStr = "";
        else
        $perfixStr = "AND prefix like '$perfix%'";

        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND id_trunk = '$idTrunk'";

           $sql="SELECT
           count(id) as totalrows
           FROM dialplan    
        Where id != '-1' AND route_type = '$routeType' $perfixStr $idTrunkStr";

        $row = 0;
        $query = $this->db->query($sql);
        foreach($query->result() as $resultrow)
        {
            $row = $resultrow->totalrows;
        }
        return $row;

    }


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Provider List
 * @copyright 2011
 */
    function dialPlanList($startoffset,$limit,$idTrunk,$perfix,$routeType = 0)
    {

        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";

        if($perfix=="NULL")
        $perfixStr = "";
        else
        $perfixStr = "AND a.prefix like '$perfix%'";

        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND a.id_trunk = '$idTrunk'";

        $sql = "SELECT
                a.id,
                a.id_trunk,
                a.prefix,
                a.add_prefix,
                a.remove_prefix,
                a.priority,
                a.jump,
                a.share,
                a.from_day,
                a.to_day,
                a.from_hour,
                a.to_hour,
                a.route_type,
                a.status,
                b.description,
                b.providertech,
                b.providerip,
                b.status
                
                FROM dialplan a
                INNER JOIN trunk b
                ON a.id_trunk = b.id_trunk    
                where a.id !=-1 AND a.route_type = '$routeType' $idTrunkStr $perfixStr  order by  a.prefix ASC,a.priority ASC $limit_string";

         //echo $sql;
        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Add Dial Plan
 * @copyright 2011
 */

     function addDialPlan()
     {
        //$data['id']        = $this->input->post('id');
        $data['id_trunk']        = $this->input->post('id_trunk');
        $data['prefix']        = $this->input->post('prefix');
        $data['add_prefix']        = $this->input->post('add_prefix');
        $data['remove_prefix']        = $this->input->post('remove_prefix');
        $data['priority']        = $this->input->post('priority');
        $data['jump']        = $this->input->post('jump');
        $data['share']        = $this->input->post('share');
        $data['from_day']        = $this->input->post('from_day');
        $data['to_day']        = $this->input->post('to_day');
        $data['from_hour']        = $this->input->post('from_hour');
        $data['to_hour']        = $this->input->post('to_hour');
        $data['route_type']        = $this->input->post('routeType');
        $data['status']        = $this->input->post('status');
        $sql = $this->db->insert_string('dialplan', $data);
        $query = $this->db->query($sql);
        $idInsert = $this->db->insert_id();
     }
 
 
 
  /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Return Trunk Infomation
 * @copyright 2011
 */

    function dialPlanEditInfo($id)
    {
        $query = $this->db->query("select *from dialplan where id = '$id' LIMIT 1");
        if($query->num_rows()>0)
        {
            return $query->result();
        }
        else
        return 0;
    }
    


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Edit Dial Plan
 * @copyright 2011
 */
  
     function editDialPlan()
     {


        $keyvalue        = $this->input->post('id');
        //$data['id']        = $this->input->post('id');
        $data['id_trunk']        = $this->input->post('id_trunk');
        $data['prefix']        = $this->input->post('prefix');
        $data['add_prefix']        = $this->input->post('add_prefix');
        $data['remove_prefix']        = $this->input->post('remove_prefix');
        $data['priority']        = $this->input->post('priority');
        $data['jump']        = $this->input->post('jump');
        $data['share']        = $this->input->post('share');
        $data['from_day']        = $this->input->post('from_day');
        $data['to_day']        = $this->input->post('to_day');
        $data['from_hour']        = $this->input->post('from_hour');
        $data['to_hour']        = $this->input->post('to_hour');
        $data['route_type']        = $this->input->post('routeType');
        $data['status']        = $this->input->post('status');

        $where = "id = $keyvalue";
        $sql = $this->db->update_string('dialplan', $data, $where);
        $query = $this->db->query($sql);

     }


 /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Delete Dial Plan
 * @copyright 2011
 */

    function deleteDialPlan($id)
    {
        $query = $this->db->query("delete from dialplan where id = '$id'");
    }
         
         
         



/**
 ***********************************************************************
 * @Start Gatway Section *********************************************
 ***********************************************************************
*/



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return total number of Gateway
 * @copyright 2011
 */
 
     function getTotalnumGateway($full_name,$description,$id_rate,$ip_address,$phone)
     {
        if($description=="NULL")
        $descriptionStr = "";
        else
        $descriptionStr = "AND description like '$description%'";

        if($full_name=="NULL")
        $fullNameStr = "";
        else
        $fullNameStr = "AND full_name LIKE '$full_name%'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND id_rate = '$id_rate'";

        if($ip_address=="NULL")
        $ipAddressStr = "";
        else
        $ipAddressStr = "AND ip_address LIKE '$ip_address%'";

        if($phone=="NULL")
        $phoneStr = "";
        else
        $phoneStr = "AND phone LIKE '$phone%'";


           $sql="SELECT
           count(id_route) as totalrows
           FROM gateways Where id_route != '-1' $descriptionStr $fullNameStr $rateStr $ipAddressStr $phoneStr";
        $row = 0;
        $query = $this->db->query($sql);
        foreach($query->result() as $resultrow)
        {
            $row = $resultrow->totalrows;
        }
        return $row;

    }
    

/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Gateway List
 * @copyright 2011
 */
    function gatewayList($startoffset,$limit,$full_name,$description,$id_rate,$ip_address,$phone)
    {

        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";

        if($description=="NULL")
        $descriptionStr = "";
        else
        $descriptionStr = "AND description like '$description%'";

        if($full_name=="NULL")
        $fullNameStr = "";
        else
        $fullNameStr = "AND full_name LIKE '$full_name%'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND id_rate = '$id_rate'";

        if($ip_address=="NULL")
        $ipAddressStr = "";
        else
        $ipAddressStr = "AND ip_address LIKE '$ip_address%'";

        if($phone=="NULL")
        $phoneStr = "";
        else
        $phoneStr = "AND phone LIKE '$phone%'";


        $sql = "SELECT * FROM gateways
                 Where id_route != '-1' $descriptionStr $fullNameStr $rateStr $ipAddressStr $phoneStr order by description ASC $limit_string";

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
    

/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Add Provider Name
 * @copyright 2011
 */

 function addProvider()
 {

        //$data['id']        = $this->input->post('id');
        $data['provider_name']        = $this->input->post('provider_name');
        $data['description']        = $this->input->post('description');
        $data['contact_name']        = $this->input->post('contact_name');
        $data['contact_email']        = $this->input->post('contact_email');
        $data['contact_phone']        = $this->input->post('contact_phone');
        $data['office_address']        = $this->input->post('office_address');
        $data['office_phone']        = $this->input->post('office_phone');
        $data['office_email']        = $this->input->post('office_email');
        $data['office_country']        = $this->input->post('office_country');

        $sql = $this->db->insert_string('gatwayprovider', $data);
        $query = $this->db->query($sql);
        $idInsert = $this->db->insert_id();
 }
     


 /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Return Edit Infomation of Provider
 * @copyright 2011
 */

    function providerEditInfo($id)
    {
        $query = $this->db->query("select *from gatwayprovider where id = '$id' LIMIT 1");
        if($query->num_rows()>0)
        {
            return $query->result();
        }
        else
        return 0;
    }



  /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Edit Rate Chart Name
 * @copyright 2011
 */

 function editProvider()
 {

        $keyvalue        = $this->input->post('id');
        $data['provider_name']        = $this->input->post('provider_name');
        $data['description']        = $this->input->post('description');
        $data['contact_name']        = $this->input->post('contact_name');
        $data['contact_email']        = $this->input->post('contact_email');
        $data['contact_phone']        = $this->input->post('contact_phone');
        $data['office_address']        = $this->input->post('office_address');
        $data['office_phone']        = $this->input->post('office_phone');
        $data['office_email']        = $this->input->post('office_email');
        $data['office_country']        = $this->input->post('office_country');
        $where = "id = $keyvalue";
        $sql = $this->db->update_string('gatwayprovider', $data, $where);
        $query = $this->db->query($sql);
        
 }



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: Find check turnk information of provider
 * @copyright 2011
 */


function checkProviderTurnk($id)
{
    $query = $this->db->query("select *from trunk where id_provider = '$id'");

    if($query->num_rows()>0)
    {
        return 1;
    }
    else
    return 0;
}



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: Delete information of Provider Name
 * @copyright 2011
 */


function deleteProvider($id)
{
    $query = $this->db->query("delete from gatwayprovider where id = '$id'");

}



    function getTrunkRateID($idTrunk)
    {
         $query = $this->db->query("SELECT id_rate FROM trunk WHERE id_trunk = '$idTrunk'");
        if ($query->num_rows() > 0)
         {
             $row = $query->row();
              return $row->id_rate;
         }
         else
         return 0;
    }
    



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Add Dial Plan
 * @copyright 2011
 */

     function addLCRDialPlan()
    {
        $prefixListArray = array();
        $ratePrefix = array();
        $ratePrefixValue = array();
        $trunkIDArray = array();
        
        //$data['id']        = $this->input->post('id');
        $idTrunks        = $this->input->post('idTrunks');
        $prefix        = $this->input->post('prefix');
        $dataRoute['add_prefix']        = $this->input->post('add_prefix');
        $dataRoute['remove_prefix']        = $this->input->post('remove_prefix');
        $dataRoute['from_day']        = $this->input->post('from_day');
        $dataRoute['to_day']        = $this->input->post('to_day');
        $dataRoute['from_hour']        = $this->input->post('from_hour');
        $dataRoute['to_hour']        = $this->input->post('to_hour');
        $dataRoute['status']        = $this->input->post('status');
        
        $idRate = "";
        if(is_array($idTrunks))
        {
            foreach($idTrunks as $rowID)
            {
                $trunkID = $rowID;
                if($trunkID>0)
                {    
                    $trunkRateID = $this->getTrunkRateID($trunkID);
                    $trunkIDArray[$trunkRateID] = $trunkID;                    
                    $idRate .= $trunkRateID.",";
                }    
            }
        }
        
        $rateIDs = substr($idRate,0,-1);
        
        $rateList = $this->getLcrRatePrefixList($prefix,$rateIDs);
        $prefixList = $this->getLCRprefixList($prefix,$rateIDs);
    
        if(is_array($prefixList))
        {
            foreach($prefixList as $prefixRow)
            {
                $prefixListArray[$prefixRow->prefix] = $prefixRow->prefix;
            }
        }
        
        
        if(is_array($rateList))
        {
            foreach($rateList as $rpRow)
            {
                $ratePrefix[$rpRow->id_rate][$rpRow->prefix] = $rpRow->voice_rate;
                $ratePrefixValue[$rpRow->prefix][$rpRow->voice_rate] = $rpRow->id_rate;
            }
        }
        
        
        
        if(is_array($prefixList))
        {
            foreach($prefixList as $row)
            {
                $rateIDsArray = explode(",",$rateIDs);
                if(is_array($rateIDsArray))
                {
                    $priority = 1;
                    foreach($rateIDsArray as $rateID)
                    {    
                        if(isset($ratePrefix[$rateID][$row->prefix]))
                        {
                            $arrayRateValue[] = array('rateID' => $rateID, 'voiceRate' => $ratePrefix[$rateID][$row->prefix],'billPrefix'=>$row->prefix);
                            $arrayVoiceRateValue[] = array('routeRate'=>$ratePrefix[$rateID][$row->prefix],'billPrefix'=>$row->prefix,'rateID' => $rateID,'trunkID' => $trunkIDArray[$rateID], 'priority' => $priority);
                        }
                        else
                        {
                            $searchPrefixLen = strlen($searchPrefix);
                            $resultPrefixLen = strlen($row->prefix);
                            $diffLen = $resultPrefixLen - $searchPrefixLen;
                            for ($kk = 1; $kk<=$diffLen;$kk++)
                            {
                                $ratingPrefix = substr($row->prefix,0,-$kk);
                                if(isset($ratePrefix[$rateID][$ratingPrefix]))
                                {
                                    $arrayRateValue[] = array('rateID' => $rateID, 'voiceRate' => $ratePrefix[$rateID][$ratingPrefix],'billPrefix'=>$ratingPrefix);
                                    //$arrayVoiceRateValue[] = $ratePrefix[$rateID][$ratingPrefix];
                                    $arrayVoiceRateValue[] = array('routeRate'=>$ratePrefix[$rateID][$row->prefix],'billPrefix'=>$ratingPrefix,'rateID' => $rateID, 'trunkID'=>$trunkIDArray[$rateID], 'priority' => $priority);
                                    $kk = $diffLen + 1;
                                }
                            }
                        }
                        $priority = $priority + 1;
                    }    
                }
            }
            
            $arraySortRateKey = array();
            foreach ($arrayRateValue as $rateValue)
            {
                $arraySortRateKey[] = $rateValue['voiceRate'];
            }
            array_multisort($arraySortRateKey, SORT_ASC, $arrayRateValue);
            
            
            
            if(is_array($arrayVoiceRateValue))
            {
                foreach ($arrayVoiceRateValue as $routeRow)
                {
                    $routePrefix = $routeRow['billPrefix'];
                    $routeTrunkID = $routeRow['trunkID'];
                    $routePriority = $routeRow['priority'];
                    $routeRate = $routeRow['routeRate'];
                    
                    $dataRoute['id_trunk']        = $routeTrunkID;
                    $dataRoute['voice_rate']        = $routeRate;
                    $dataRoute['prefix']        = $routePrefix;
                    $dataRoute['priority']        = $routePriority;
                    $dataRoute['jump']        = 1;
                    $dataRoute['share']        = 100;
                    $dataRoute['route_type']        = 1;
                    
                    // Delete Dial Plan
                    
                    $sqlDialPlan = "DELETE FROM dialplan WHERE id_trunk = '$routeTrunkID' AND prefix = '$routePrefix' AND route_type = 1";
                    $queryDelete = $this->db->query($sqlDialPlan);
                    $sql = $this->db->insert_string('dialplan', $dataRoute);
                    $query = $this->db->query($sql);
                    $idInsert = $this->db->insert_id();
        
                }
            }
            //echo "<pre>";
            //echo print_r($arrayVoiceRateValue);
            //echo "</pre>";        
        }                
     }
     
 
 
 /**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Return Priefix & Rate List
 * @copyright 02 Jun 2014
 */
        
    function getLcrRatePrefixList($prefix,$rateIDs)
    {
        $sql = "SELECT 
                id_rate,
                prefix,
                voice_rate 
                FROM ratechart 
                WHERE prefix like '$prefix%' AND id_rate IN($rateIDs)
                group by id_rate,prefix,voice_rate order by prefix ASC,voice_rate ASC";
                
        $query = $this->db->query($sql);
        if($query->num_rows()>0)
        {
            return $query->result();
        }
        else
        return 0;
    }
    


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function Return Priefix & Rate List
 * @copyright 02 Jun 2014
 */


        //id, id_rate, prefix, description, voice_rate, rate_mult, grace_period, minimal_time, resolution, is_disable, creationdate, user_id, usertype, ipaddress


    function getLCRprefixList($prefix,$rateIDs)
    {
        $sql = "SELECT 
                prefix,
                description 
                FROM ratechart 
                WHERE prefix LIKE '$prefix%' AND id_rate IN($rateIDs)
                group by prefix order by prefix ASC";
                
        $query = $this->db->query($sql);
        if($query->num_rows()>0)
        {
            return $query->result();
        }
        else
        return 0;
    }
    
            
    
        
        
            

}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0089 ]--