Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php if( !defined("IEM_ADDONS_PATH") ) { $l = "[\$Id: mta.php 3185 2017-11-17 07..

Decoded Output download

<?php  
if( !defined("IEM_ADDONS_PATH") )  
{ 
    $l = "[\$Id: mta.php 3185 2017-11-17 07:46:19Z maborak \$]"; 
    exit( "denied: " . $l ); 
} 
 
require_once(IEM_ADDONS_PATH . "/installer/api/installer.php"); 
require_once(IEM_ADDONS_PATH . "/mta/config/config.php"); 
if( MT::S()->addon_enabled("mta") )  
{ 
    $installer = Installer_API::Singleton()->apply_patches("mta"); 
} 
 
 
class _obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_ 
{ 
    /** 
     * Create the data output array for the DataTables rows 
     * 
     * @param array $columns 
     *            Column information array 
     * @param array $data 
     *            Data from the SQL get 
     * @return array Formatted data in a row based format 
     */ 
 
    public static function _obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) 
    { 
        $out = array(  ); 
        $i = 0; 
        for( $ien = count($data); $i < $ien; $i++ )  
        { 
            $row = array(  ); 
            $j = 0; 
            for( $jen = count($columns); $j < $jen; $j++ )  
            { 
                $column = $columns[$j]; 
                if( isset($column["formatter"]) )  
                { 
                    $row[$column["dt"]] = $column["formatter"]($data[$i][$column["db"]], $data[$i]); 
                } 
                else 
                { 
                    $row[$column["dt"]] = $data[$i][$columns[$j]["db"]]; 
                } 
 
            } 
            $out[] = $row; 
        } 
        return $out; 
    } 
 
    /** 
     * Database connection 
     * 
     * Obtain an PHP PDO connection from a connection details array 
     * 
     * @param array $conn 
     *            SQL connection details. The array should have 
     *            the following properties 
     *            * host - host name 
     *            * db - database name 
     *            * user - user name 
     *            * pass - user password 
     * @return resource PDO connection 
     */ 
 
    public static function db($conn) 
    { 
        if( is_array($conn) )  
        { 
            return self::_obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($conn); 
        } 
 
        return $conn; 
    } 
 
    /** 
     * Paging 
     * 
     * Construct the LIMIT clause for server-side processing SQL query 
     * 
     * @param array $request 
     *            Data sent to server by DataTables 
     * @param array $columns 
     *            Column information array 
     * @return string SQL limit clause 
     */ 
 
    public static function _obfuscated_7FA69FB1A39AB493BB9CBF9384AEC08B8886B288BF9F81_($request, $columns) 
    { 
        $limit = ""; 
        if( isset($request["start"]) && $request["length"] != -1 )  
        { 
            $limit = "LIMIT " . intval($request["start"]) . ", " . intval($request["length"]); 
        } 
 
        return $limit; 
    } 
 
    /** 
     * Ordering 
     * 
     * Construct the ORDER BY clause for server-side processing SQL query 
     * 
     * @param array $request 
     *            Data sent to server by DataTables 
     * @param array $columns 
     *            Column information array 
     * @return string SQL order by clause 
     */ 
 
    public static function _obfuscated_7FBA8893ADBA9E94A59AA4AE95A1BEB4888A868CB689B1_($request, $columns) 
    { 
        $order = ""; 
        if( isset($request["order"]) && count($request["order"]) )  
        { 
            $orderBy = array(  ); 
            $dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt"); 
            $i = 0; 
            for( $ien = count($request["order"]); $i < $ien; $i++ )  
            { 
                $columnIdx = intval($request["order"][$i]["column"]); 
                $requestColumn = $request["columns"][$columnIdx]; 
                $columnIdx = array_search($requestColumn["data"], $dtColumns); 
                $column = $columns[$columnIdx]; 
                if( $requestColumn["orderable"] == "true" )  
                { 
                    $dir = ($request["order"][$i]["dir"] === "asc" ? "ASC" : "DESC"); 
                    $orderBy[] = "`" . $column["db"] . "` " . $dir; 
                } 
 
            } 
            $order = "ORDER BY " . implode(", ", $orderBy); 
        } 
 
        return $order; 
    } 
 
    /** 
     * Searching / Filtering 
     * 
     * Construct the WHERE clause for server-side processing SQL query. 
     * 
     * NOTE this does not match the built-in DataTables filtering which does it 
     * word by word on any field. It's possible to do here performance on large 
     * databases would be very poor 
     * 
     * @param array $request 
     *            Data sent to server by DataTables 
     * @param array $columns 
     *            Column information array 
     * @param array $bindings 
     *            Array of values for PDO bindings, used in the 
     *            sql_exec() function 
     * @return string SQL where clause 
     */ 
 
    public static function _obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, &$bindings) 
    { 
        $globalSearch = array(  ); 
        $columnSearch = array(  ); 
        $dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt"); 
        if( isset($request["search"]) && $request["search"]["value"] != "" )  
        { 
            $str = $request["search"]["value"]; 
            $i = 0; 
            for( $ien = count($request["columns"]); $i < $ien; $i++ )  
            { 
                $requestColumn = $request["columns"][$i]; 
                $columnIdx = array_search($requestColumn["data"], $dtColumns); 
                $column = $columns[$columnIdx]; 
                if( $requestColumn["searchable"] == "true" )  
                { 
                    $binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR); 
                    $globalSearch[] = "`" . $column["db"] . "` LIKE " . $binding; 
                } 
 
            } 
        } 
 
        if( isset($request["columns"]) )  
        { 
            $i = 0; 
            for( $ien = count($request["columns"]); $i < $ien; $i++ )  
            { 
                $requestColumn = $request["columns"][$i]; 
                $columnIdx = array_search($requestColumn["data"], $dtColumns); 
                $column = $columns[$columnIdx]; 
                $str = $requestColumn["search"]["value"]; 
                if( $requestColumn["searchable"] == "true" && $str != "" )  
                { 
                    $binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR); 
                    $columnSearch[] = "`" . $column["db"] . "` LIKE " . $binding; 
                } 
 
            } 
        } 
 
        $where = ""; 
        if( count($globalSearch) )  
        { 
            $where = "(" . implode(" OR ", $globalSearch) . ")"; 
        } 
 
        if( count($columnSearch) )  
        { 
            $where = ($where === "" ? implode(" AND ", $columnSearch) : $where . " AND " . implode(" AND ", $columnSearch)); 
        } 
 
        if( $where !== "" )  
        { 
            $where = "HAVING " . $where; 
        } 
 
        return $where; 
    } 
 
    /** 
     * Perform the SQL queries needed for an server-side processing requested, 
     * utilising the helper functions of this class, limit(), order() and 
     * filter() among others. 
     * The returned array is ready to be encoded as JSON 
     * in response to an SSP request, or can be modified if needed before 
     * sending back to the client. 
     * 
     * @param array $request 
     *            Data sent to server by DataTables 
     * @param array|PDO $conn 
     *            PDO connection resource or connection parameters array 
     * @param string $table 
     *            SQL table to query 
     * @param string $primaryKey 
     *            Primary key of the table 
     * @param array $columns 
     *            Column information array 
     * @return array Server-side processing response array 
     */ 
 
    public static function _obfuscated_7F8D999B908AA58EC0B9B8AAB188AA999790ACA5A28EB1_($request, $conn, $table, $primaryKey, $columns) 
    { 
        $bindings = array(  ); 
        $db = self::db($conn); 
        $limit = self::limit($request, $columns); 
        $order = self::order($request, $columns); 
        $where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings); 
        $data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db")) . "`
             FROM `" . $table . "`
             " . $where . "
             " . $order . "
             " . $limit); 
        $resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()"); 
        $recordsFiltered = $resFilterLength[0][0]; 
        $resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT COUNT(`" . $primaryKey . "`)
             FROM   `" . $table . "`"); 
        $recordsTotal = $resTotalLength[0][0]; 
        return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) ); 
    } 
 
    /** 
     * The difference between this method and the `simple` one, is that you can 
     * apply additional `where` conditions to the SQL queries. 
     * These can be in 
     * one of two forms: 
     * 
     * * 'Result condition' - This is applied to the result set, but not the 
     * overall paging information query - i.e. it will not effect the number 
     * of records that a user sees they can have access to. This should be 
     * used when you want apply a filtering condition that the user has sent. 
     * * 'All condition' - This is applied to all queries that are made and 
     * reduces the number of records that the user can access. This should be 
     * used in conditions where you don't want the user to ever have access to 
     * particular records (for example, restricting by a login id). 
     * 
     * @param array $request 
     *            Data sent to server by DataTables 
     * @param array|PDO $conn 
     *            PDO connection resource or connection parameters array 
     * @param string $table 
     *            SQL table to query 
     * @param string $primaryKey 
     *            Primary key of the table 
     * @param array $columns 
     *            Column information array 
     * @param string $whereResult 
     *            WHERE condition to apply to the result set 
     * @param string $whereAll 
     *            WHERE condition to apply to all queries 
     * @return array Server-side processing response array 
     */ 
 
    public static function _obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($request, $conn, $table, $primaryKey, $columns, $whereResult = NULL, $whereAll = NULL) 
    { 
        $bindings = array(  ); 
        $db = self::db($conn); 
        $localWhereResult = array(  ); 
        $localWhereAll = array(  ); 
        $whereAllSql = ""; 
        $limit = self::limit($request, $columns); 
        $order = self::order($request, $columns); 
        $where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings); 
        $whereResult = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereResult); 
        $whereAll = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereAll); 
        if( $whereResult )  
        { 
            $where = ($where ? $where . " AND " . $whereResult : "WHERE " . $whereResult); 
        } 
 
        if( $whereAll )  
        { 
            $where = ($where ? $where . " AND " . $whereAll : "WHERE " . $whereAll); 
            $whereAllSql = "WHERE " . $whereAll; 
        } 
 
        $pp = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "process"); 
        $process = (0 < count($pp) ? " , " . implode(" , ", $pp) : ""); 
        $data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db", "process")) . "` " . $process . " 
             FROM `" . $table . "`
             " . $where . "
             " . $order . "
             " . $limit); 
        $resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()"); 
        $recordsFiltered = $resFilterLength[0][0]; 
        $resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT COUNT(`" . $primaryKey . "`)
             FROM   `" . $table . "` " . $whereAllSql); 
        $recordsTotal = $resTotalLength[0][0]; 
        return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) ); 
    } 
 
    /** 
     * Connect to the database 
     * 
     * @param array $sql_details 
     *            SQL server connection details array, with the 
     *            properties: 
     *            * host - host name 
     *            * db - database name 
     *            * user - user name 
     *            * pass - user password 
     * @return resource Database connection handle 
     */ 
 
    public static function _obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($sql_details) 
    { 
        try 
        { 
            $db = @new PDO("mysql:host=" . $sql_details["host"] . ";dbname=" . $sql_details["db"], $sql_details["user"], $sql_details["pass"], array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION )); 
        } 
        catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e )  
        { 
            self::fatal("An error occurred while connecting to the database. " . "The error reported by the server was: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_()); 
        } 
        return $db; 
    } 
 
    /** 
     * Execute an SQL query on the database 
     * 
     * @param resource $db 
     *            Database handler 
     * @param array $bindings 
     *            Array of PDO binding values from bind() to be 
     *            used for safely escaping strings. Note that this can be given as the 
     *            SQL query string if no bindings are required. 
     * @param string $sql 
     *            SQL query to execute. 
     * @return array Result from the query (all rows) 
     */ 
 
    public static function _obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, $sql = NULL) 
    { 
        if( $sql === NULL )  
        { 
            $sql = $bindings; 
        } 
 
        $stmt = $db->prepare($sql); 
        if( is_array($bindings) )  
        { 
            $i = 0; 
            for( $ien = count($bindings); $i < $ien; $i++ )  
            { 
                $binding = $bindings[$i]; 
                $stmt->bindValue($binding["key"], $binding["val"], $binding["type"]); 
            } 
        } 
 
        try 
        { 
            $stmt->execute(); 
        } 
        catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e )  
        { 
            self::fatal("An SQL error occurred: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_()); 
        } 
        return $stmt->fetchAll(PDO::FETCH_BOTH); 
    } 
 
    /** 
     * Throw a fatal error. 
     * 
     * This writes out an error message in a JSON string which DataTables will 
     * see and show to the user in the browser. 
     * 
     * @param string $msg 
     *            Message to send to the client 
     */ 
 
    public static function fatal($msg) 
    { 
        echo json_encode(array( "error" => $msg )); 
        exit( 0 ); 
    } 
 
    /** 
     * Create a PDO binding key which can be used for escaping variables safely 
     * when executing a query with sql_exec() 
     * 
     * @param 
     *            array &$a Array of bindings 
     * @param * $val 
     *            Value to bind 
     * @param int $type 
     *            PDO field type 
     * @return string Bound key to be used in the SQL where this parameter 
     *         would be used. 
     */ 
 
    public static function _obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_(&$a, $val, $type) 
    { 
        $key = ":binding_" . count($a); 
        $a[] = array( "key" => $key, "val" => $val, "type" => $type ); 
        return $key; 
    } 
 
    /** 
     * Pull a particular property from each assoc. 
     * array in a numeric array, 
     * returning and array of the property values from each item. 
     * 
     * @param array $a 
     *            Array to get data from 
     * @param string $prop 
     *            Property to read 
     * @return array Array of property values 
     */ 
 
    public static function _obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($a, $prop, $ignore = "none") 
    { 
        $out = array(  ); 
        $i = 0; 
        for( $len = count($a); $i < $len; $i++ )  
        { 
            if( isset($a[$i][$ignore]) )  
            { 
                continue; 
            } 
 
            if( isset($a[$i][$prop]) )  
            { 
                $out[] = $a[$i][$prop]; 
            } 
 
        } 
        return $out; 
    } 
 
    /** 
     * Return a string from an array or a string 
     * 
     * @param array|string $a 
     *            Array to join 
     * @param string $join 
     *            Glue for the concatenation 
     * @return string Joined string 
     */ 
 
    public static function _obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($a, $join = " AND ") 
    { 
        if( !$a )  
        { 
            return ""; 
        } 
 
        if( $a && is_array($a) )  
        { 
            return implode($join, $a); 
        } 
 
        return $a; 
    } 
 
} 
 
 
class _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_ 
{ 
    public $current_statid = 0; 
 
    public function _obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_() 
    { 
        $r = 5; 
        $v = MT::S()->version(); 
        if( $r <= $v )  
        { 
        } 
        else 
        { 
            exit( sprintf(base64_decode("RXJyb3I6IEFkZG9uIEluc3RhbGxlciB2ZXJzaW9uICUuMUYgaXMgcmVxdWlyZWQuIFBsZWFzZSBjb250YWN0IHRvIHlvdXIgYWRtaW5pc3RyYXRvci4="), $r) ); 
        } 
 
    } 
 
    public function _obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($raw = array(  )) 
    { 
        $data = array(  ); 
        foreach( $raw as $key => $value )  
        { 
            $uid = (int) $value; 
            $d = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'")); 
            if( $d )  
            { 
                $hd = array(  ); 
                $hd["name"] = $d["name"]; 
                $hd["size"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($uid); 
                $data[] = $hd; 
            } 
 
        } 
        return $data; 
    } 
 
    public function _obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid = 0, $all = true) 
    { 
        $uid = (int) $uid; 
        $all = ($all ? "" : " AND status=1"); 
        $data = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'" . $all)); 
        if( $data )  
        { 
            $hs = array(  ); 
            $h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'"); 
            while( $row = MT::S()->db->Fetch($h) )  
            { 
                $hs[] = array( "name" => $row["name"], "value" => $row["value"] ); 
            } 
            $data["headers"] = $hs; 
            return $data; 
        } 
 
        return array(  ); 
    } 
 
    public function _obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($uid = 0) 
    { 
        $hs = array(  ); 
        $h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'"); 
        while( $row = MT::S()->db->Fetch($h) )  
        { 
            $hs[] = array( "name" => $row["name"], "value" => $row["value"] ); 
        } 
        return $hs; 
    } 
 
    public function _obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_($all = true) 
    { 
        $all = ($all ? "" : " WHERE status=1"); 
        $d = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers" . $all); 
        $data = array(  ); 
        while( $row = MT::S()->db->Fetch($d) )  
        { 
            $row["total"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($row["uid"]); 
            $row["values"] = $this->_obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($row["uid"]); 
            $data[] = $row; 
        } 
        return $data; 
    } 
 
    public function _obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($header_uid = 0) 
    { 
        $header_uid = (int) $header_uid; 
        $t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $header_uid . "'")); 
        return (int) $t["total"]; 
    } 
 
    public function _obfuscated_7F97AEA3A39D94B0A28B9CB29793AE949789B5B2908A91_() 
    { 
        $t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard")); 
        return (int) $t["total"]; 
    } 
 
    public function _obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid = 0) 
    { 
        $header_uid = (int) $uid; 
        return (MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $header_uid . "'")) ? true : false); 
    } 
 
    public function _obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid = 0, $value = false) 
    { 
        MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET status='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'"); 
    } 
 
    public function _obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid = 0, $value = false) 
    { 
        MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET rotation='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'"); 
    } 
 
    public function _obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name = "no-name", $data = array(  ), $status = 1, $rotation = 0) 
    { 
        $id = MT::S()->db->InsertQuery("addon_mta_headers", array( "name" => MT::S()->db->Quote($name), "status" => (int) $status, "rotation" => (int) $rotation )); 
        if( $id )  
        { 
            foreach( $data as $key => $value )  
            { 
                $h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $id, "name" => $value["name"], "value" => $value["value"] )); 
            } 
        } 
 
    } 
 
    public function _obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid = 0) 
    { 
        MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . (int) $uid . "'"); 
        MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'"); 
    } 
 
    public function _obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid = 0, $name = "no-name", $data = array(  ), $status = 1, $rotation = 0) 
    { 
        $result = MT::S()->db->UpdateQuery("addon_mta_headers", array( "name" => $name, "status" => $status, "rotation" => $rotation ), "`uid`=" . MT::S()->db->Quote($uid)); 
        MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'"); 
        foreach( $data as $key => $value )  
        { 
            $h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $uid, "name" => $value["name"], "value" => $value["value"] )); 
        } 
    } 
 
    public function _obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($hostname) 
    { 
        if( preg_match("/" . preg_quote("->") . "/", $hostname) )  
        { 
            $a = explode("->", $hostname); 
            return trim($a[0]); 
        } 
 
        return $hostname; 
    } 
 
    public function _obfuscated_7F85A6BB8D849798908AA68F81AEB6968CB7AE90BA95B1_($hostname) 
    { 
        if( preg_match("/" . preg_quote("->") . "/", $hostname) )  
        { 
            $a = explode("->", $hostname); 
            return trim($a[1]); 
        } 
 
        return $hostname; 
    } 
 
} 
 
 
class Mta_API extends _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_ 
{ 
    public $internal_email_rebuild = false; 
    private $db = NULL; 
    private $log_send_counter = 0; 
    private $mta_data_temp = array(  ); 
    private $LE = "
"; 
    public $bbs = NULL; 
    public $bbe = NULL; 
    public $encoding = false; 
    public $data_type_reputation = array( "reputation", "reputation_volume", "reputation_complaint", "reputation_unknown", "reputation_filtered", "blacklist", "whitelist" ); 
    public static $instance = false; 
    public $log_method = array(  ); 
 
    /** 
     * Launch Encoding Options 
     *  
     * @param [string] $m 
     *            [String] 
     * @return [function] [Function] 
     */ 
 
    public function _obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() 
    { 
        if( !$this->bbs )  
        { 
            $this->bbs = "IEMB" . getmypid(); 
        } 
 
        return $this->bbs; 
    } 
 
    public function _obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() 
    { 
        if( !$this->bbe )  
        { 
            $this->bbe = "IEME" . getmypid(); 
        } 
 
        return $this->bbe; 
    } 
 
    public function public_splittest_cron(&$_this, $send_results) 
    { 
        return $this->_obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_($_this, $send_results); 
    } 
 
    private function _obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_(&$_this, $send_results) 
    { 
        $this->iem_log_send_pre($_this, $send_results); 
        $this->iem_log_send($_this, $send_results, true); 
    } 
 
    public function public_splittest_setupemail(&$_this) 
    { 
        return $this->_obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_($_this); 
    } 
 
    private function _obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_(&$_this) 
    { 
        $_this->email_objects = array(  ); 
    } 
 
    public function mta_encode_pre_body(&$_this) 
    { 
        $encode_type = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_(); 
        if( $encode_type == "quoted-printable" || $encode_type == "base64" || $encode_type == "binary" )  
        { 
            $_this->wrap_length = 90000; 
        } 
 
        if( !empty($_this->body["h"]) )  
        { 
            $_this->body["h"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["h"]); 
            $_this->body["h"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["h"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_(); 
        } 
 
        if( !empty($_this->body["t"]) )  
        { 
            $_this->body["t"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["t"]); 
            $_this->body["t"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["t"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_(); 
        } 
 
    } 
 
    private function _obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($str) 
    { 
        $str2 = str_replace(array( $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_(), $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() ), "", $str); 
        return $str2; 
    } 
 
    public function mta_encode_post_body($body) 
    { 
        if( isset($this->old_boundary) )  
        { 
        } 
 
        if( isset($this->email_api) )  
        { 
        } 
 
        $body = preg_replace_callback("/" . $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . "(.*?)" . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() . "/msi", array( $this, "__Zend__Launcher_merb" ), $body); 
        return $body; 
    } 
 
    private function __Zend__Launcher_merb($m) 
    { 
        $r = $this->_obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($m); 
        return $r; 
    } 
 
    public function _obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($matches) 
    { 
        $mime = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_(); 
        switch( $mime )  
        { 
            case "base64": 
                $body = chunk_split(base64_encode($matches[1]), 76, $this->LE); 
                break; 
            case "binary": 
                $body = $matches[1]; 
                break; 
            case "7bit": 
            case "8bit": 
                $body = $this->_obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($matches[1]); 
                if( substr($body, 0 - strlen($this->LE)) != $this->LE )  
                { 
                    $body .= $this->LE; 
                } 
 
                break; 
            case "quoted-printable": 
                $body = $matches[1]; 
                $body = quoted_printable_encode($body); 
                break; 
            default: 
                $body = $matches[1]; 
                break; 
        } 
        return $body; 
    } 
 
    public function mta_encode_set_header(&$_this) 
    { 
        $this->_obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_($_this); 
    } 
 
    private function _obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_(&$_this) 
    { 
        $_this->ContentEncoding = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_($_this); 
        return true; 
    } 
 
    private function _obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_() 
    { 
        if( isset($this->jobdetails) && isset($this->jobdetails["mta"]) && isset($this->jobdetails["mta"]["mime"]) )  
        { 
            $mime_post = (int) $this->jobdetails["mta"]["mime"]; 
            switch( $mime_post )  
            { 
                case 0: 
                    $mime = "8bit"; 
                    break; 
                case 1: 
                    $mime = "quoted-printable"; 
                    break; 
                case 2: 
                    $mime = "base64"; 
                    break; 
                case 3: 
                    $mime = "binary"; 
                    break; 
                default: 
                    $mime = "8bit"; 
                    break; 
            } 
        } 
        else 
        { 
            $mime = "8bit"; 
        } 
 
        return $mime; 
    } 
 
    public static function Singleton() 
    { 
        if( !self::$instance )  
        { 
            self::$instance = new Mta_API(); 
            self::$instance->db = MT::S()->db; 
            $GLOBALS["addon_mta_class"] = self::$instance; 
            self::$instance->settings = array(  ); 
            self::$instance->settings["debug_mail_sent"] = ADDON_MTA_MAIL_SENT_DEBUG; 
            self::$instance->timer = microtime(); 
            self::$instance->nosql = MT_TOOLS::S()->nosql("mta"); 
            self::$instance->_obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_(); 
            MT::S()->l("mta"); 
            if( defined("MTA_LOG_METHOD") )  
            { 
                self::$instance->log_method = array( "addon" => "mta", "method" => MTA_LOG_METHOD ); 
            } 
 
        } 
 
        return self::$instance; 
    } 
 
    public function __construct() 
    { 
    } 
 
    public function cron() 
    { 
        return $this->_obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_(); 
    } 
 
    public function _obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_() 
    { 
    } 
 
    public function _obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($job) 
    { 
        if( isset($job->jobdetails["mta"]["pmtajobid"]) && $job->jobdetails["mta"]["pmtajobid"]["enabled"] == 1 )  
        { 
            $jobid = $this->_obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($job->statid); 
            MT::S()->set_extra_header("x-job", $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid)); 
        } 
 
    } 
 
    public function _obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($statid) 
    { 
        if( isset($this->statid) && isset($this->jobid) && $this->statid == $statid )  
        { 
            return $this->jobid; 
        } 
 
        $this->jobid = $this->_obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid); 
        $this->statid = $statid; 
        return $this->jobid; 
    } 
 
    public function _obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid) 
    { 
        $query = "SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'"; 
        $result = $this->db->Query($query); 
        $row = $this->db->Fetch($result); 
        return ($row ? (int) $row["jobid"] : 0); 
    } 
 
    public function _obfuscated_7FB592BBBEBAB6918DBFB5A6A78EBCB19ABDAABD8597A1_() 
    { 
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send' AND jobstatus='c'"); 
        if( $result )  
        { 
            while( $row = $this->db->Fetch($result) )  
            { 
                $queues_unsent = MT::S()->queues_unsent($row["queueid"]); 
                if( 0 < $queues_unsent )  
                { 
                    $job_details = unserialize($row["jobdetails"]); 
                    if( isset($job_details["mta"]["resend"]) && $job_details["mta"]["resend"]["current_time"] < $job_details["mta"]["resend"]["times"] )  
                    { 
                        $job_details["mta"]["resend"]["current_time"]++; 
                        $result = $this->db->UpdateQuery("jobs", array( "jobstatus" => "r", "jobdetails" => serialize($job_details) ), "`jobid`=" . $this->db->Quote($row["jobid"])); 
                        MT::S()->FLOG("Jobid=" . $row["jobid"] . ",Unsent=" . $queues_unsent . ",Times=[" . $job_details["mta"]["resend"]["current_time"] . "/" . $job_details["mta"]["resend"]["times"] . "]", "Automatic-resend"); 
                    } 
 
                } 
 
            } 
        } 
 
    } 
 
    public function _obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($uid = 0, $users = array(  ), $force = 0, $force_ms = 0) 
    { 
        $uid = (int) $uid; 
        $users = (!$users || !is_array($users) ? array(  ) : $users); 
        $this->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid=" . $uid); 
        foreach( $users as $k => $v )  
        { 
            $result = $this->db->InsertQuery("addon_mta_users", array( "mta_group_uid" => $this->db->Quote($uid), "user_uid" => $this->db->Quote((int) $v) )); 
        } 
        return true; 
    } 
 
    public function _obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta_uid = 0, $value = 0, $type = "sent", $time = false, $extra = "") 
    { 
        $ct = (!$time ? time() : $time); 
        if( !is_numeric($value) )  
        { 
            return false; 
        } 
 
        $mt = $this->get_date_info($ct, "hour"); 
        $tmpk = md5($mt . $mta_uid . $type); 
        if( !isset($this->mta_data_temp[$tmpk]) )  
        { 
            $dc = $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($mt, $mta_uid, $type); 
            if( $dc )  
            { 
                $this->mta_data_temp[$tmpk] = true; 
            } 
 
        } 
 
        if( $type == "sent" || $type == "failed" || $type == "bounced" )  
        { 
            $q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=value+" . $value . ", extra='" . $this->db->Quote($extra) . "'  WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' "; 
            $result = $this->db->Query($q); 
            $q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "=" . $type . "+" . $value . " WHERE `uid`=" . $this->db->Quote($mta_uid) . ""; 
            $result = $this->db->Query($q); 
        } 
        else 
        { 
            if( in_array($type, $this->data_type_reputation) )  
            { 
                $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=" . $value . ", extra='" . $this->db->Quote($extra) . "' WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' "); 
                if( $type == "blacklist" )  
                { 
                    $result = $this->db->Query("SELECT blacklist_extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data LIMIT 1"); 
                    if( !$result )  
                    { 
                        $result = $this->db->Query("ALTER TABLE `" . SENDSTUDIO_TABLEPREFIX . "addon_mta_data` ADD `blacklist_extra` TEXT"); 
                    } 
 
                    $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "',  blacklist_data='" . $this->db->Quote($extra) . "'  WHERE `uid`=" . $this->db->Quote($mta_uid) . ""); 
                } 
                else 
                { 
                    if( $type == "whitelist" )  
                    { 
                        $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "',  whitelist_data='" . $this->db->Quote($extra) . "'  WHERE `uid`=" . $this->db->Quote($mta_uid) . ""); 
                    } 
                    else 
                    { 
                        $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . ""); 
                    } 
 
                } 
 
            } 
 
        } 
 
        return $result; 
    } 
 
    public function _obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid = 0, $type = "sent", $time = false) 
    { 
        $time = $this->get_date_info((!$time ? time() : $time), "hour"); 
        $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type); 
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'"); 
        $result = $this->db->Fetch($result); 
        return ($result ? (int) $result["value"] : 0); 
    } 
 
    public function _obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid = 0, $type = "sent", $time = false, $arr = false) 
    { 
        $time = $this->get_date_info((!$time ? time() : $time), "day"); 
        $time2 = $time + 3600 * 24; 
        $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type); 
        if( preg_match("/reputation/i", $type) || $type == "blacklist" )  
        { 
            $result = $this->db->Query("SELECT value as total,extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1"); 
        } 
        else 
        { 
            $result = $this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "'"); 
        } 
 
        $result = $this->db->Fetch($result); 
        return ($arr ? $result : ($result ? (int) $result["total"] : 0)); 
    } 
 
    /** 
     * FIXME: ARREGLAR CUANDO DEVUELVE EMPTY 
     *  
     * @param integer $mta_uid 
     *            [description] 
     * @param boolean $time 
     *            [description] 
     * @param string $date 
     *            [description] 
     * @param boolean $data 
     *            [description] 
     * @return [type] [description] 
     */ 
 
    public function _obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($mta_uid = 0, $time = false, $date = "daily", $data = false) 
    { 
        if( !$data )  
        { 
            $time = ($time ? $time : time()); 
            if( $date == "daily" )  
            { 
                $bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time, true); 
            } 
 
            $data = array(  ); 
            $blids = explode(",", trim($bl["extra"])); 
            if( trim($bl["extra"]) == "" )  
            { 
                return $data; 
            } 
 
        } 
        else 
        { 
            $blids = $data; 
        } 
 
        $processed_data = array(  ); 
        $blids = implode(",", $blids); 
        if( empty($blids) )  
        { 
            return array(  ); 
        } 
 
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")"); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $processed_data[] = $row; 
        } 
        return $processed_data; 
    } 
 
    public function _obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid = 0, $time = false, $date = "daily", $data = false) 
    { 
        if( !$data )  
        { 
            $time = ($time ? $time : time()); 
            if( $date == "daily" )  
            { 
                $bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time, true); 
            } 
 
            $data = array(  ); 
            $blids = explode(",", trim($bl["extra"])); 
            if( trim($bl["extra"]) == "" )  
            { 
                return $data; 
            } 
 
        } 
        else 
        { 
            $blids = $data; 
        } 
 
        $processed_data = array(  ); 
        $blids = implode(",", $blids); 
        if( empty($blids) )  
        { 
            return array(  ); 
        } 
 
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")"); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $processed_data[] = $row; 
        } 
        return $processed_data; 
    } 
 
    public function _obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta_uid = 0, $hm = 7, $from = "daily", $when = "previous", $time = false) 
    { 
        $_time = (!$time ? time() : $time); 
        $data = array( "time" => array(  ), "sent" => array(  ), "failed" => array(  ), "bounced" => array(  ), "reputation" => array(  ), "blacklist" => array(  ) ); 
        for( $i = 0; $i < $hm; $i++ )  
        { 
            $interval = ($from == "daily" ? 24 * 60 * 60 * $i : 24 * 60 * 60 * $i); 
            $time = ($when == "previous" ? $_time - $interval : $_time + $interval); 
            $data["time"][] = date("M j", $time); 
            $data["sent"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "sent", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "sent", $time))); 
            $data["failed"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "failed", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "failed", $time))); 
            $data["bounced"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "bounced", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "bounced", $time))); 
            $data["reputation"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation", $time))); 
            $complaint = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_complaint", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_complaint", $time))); 
            $complaint_reversed = (0 < $complaint ? 100 - $complaint : $complaint); 
            $data["reputation_complaint"][] = $complaint; 
            $volume = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_volume", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_volume", $time))); 
            $volume_reversed = (0 < $volume ? 100 - $volume : $volume); 
            $data["reputation_volume"][] = $volume; 
            $unknown = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_unknown", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_unknown", $time))); 
            $data["reputation_unknown"][] = $unknown; 
            $data["reputation_filtered"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_filtered", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_filtered", $time))); 
            $data["blacklist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "blacklist", $time))); 
            $data["whitelist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "whitelist", $time))); 
        } 
        $data["time"] = array_reverse($data["time"]); 
        $data["sent"] = array_reverse($data["sent"]); 
        $data["failed"] = array_reverse($data["failed"]); 
        $data["bounced"] = array_reverse($data["bounced"]); 
        $data["reputation"] = array_reverse($data["reputation"]); 
        $data["reputation_complaint"] = array_reverse($data["reputation_complaint"]); 
        $data["reputation_volume"] = array_reverse($data["reputation_volume"]); 
        $data["reputation_unknown"] = array_reverse($data["reputation_unknown"]); 
        $data["reputation_filtered"] = array_reverse($data["reputation_filtered"]); 
        $data["blacklist"] = array_reverse($data["blacklist"]); 
        $data["whitelist"] = array_reverse($data["whitelist"]); 
        return $data; 
    } 
 
    public function _obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time = 0, $mta_uid = 0, $type = "send") 
    { 
        if( !$this->_obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time, $mta_uid, $type) )  
        { 
            $result = $this->db->InsertQuery("addon_mta_stats", array( "mta_uid" => $mta_uid, "time" => $time, "type" => $type )); 
            return true; 
        } 
 
        return false; 
    } 
 
    public function _obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time = 0, $mta_uid = 0, $type = "send") 
    { 
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'"); 
        $ex = ($this->db->Fetch($result) ? true : false); 
        return $ex; 
    } 
 
    public function _obfuscated_7F81B58BA1A7B083BB93AFB782B98A8C999A87B587B381_($timestam = 0, $g = "day", $hm = 40, $t = "-") 
    { 
    } 
 
    public function _obfuscated_7F85AB928E93A0868598868B94A4AFB5ACB9C0BAAF8581_($jobid = 0) 
    { 
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $jobid . "'"); 
        $jobinfo = $this->db->Fetch($result); 
        if( !$jobinfo )  
        { 
            return array(  ); 
        } 
 
        $result = $this->db->Query("SELECT COUNT(*) as total,queueid,reasoncode,reason FROM " . SENDSTUDIO_TABLEPREFIX . "queues_unsent WHERE queueid='" . $jobinfo["queueid"] . "' group by reason ORDER BY total DESC LIMIT 1000"); 
        $data = array(  ); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $row["total_format"] = number_format((int) $row["total"]); 
            $row["reason"] = (trim($row["reason"]) == "" ? "Unknown reason" : $row["reason"]); 
            $data[] = $row; 
        } 
        return $data; 
    } 
 
    public function get_date_info($timestamp = 0, $g = "day") 
    { 
        $timestamp = ($timestamp ? $timestamp : time()); 
        $ta = explode("-", date("Y-n-d-H-i-s", $timestamp)); 
        $t = 0; 
        if( $g == "day" )  
        { 
            $t = mktime(0, 0, 0, $ta[1], $ta[2], $ta[0]); 
        } 
        else 
        { 
            if( $g == "hour" )  
            { 
                $t = mktime($ta[3], 0, 0, $ta[1], $ta[2], $ta[0]); 
            } 
            else 
            { 
                if( $g == "month" )  
                { 
                    $t = mktime(0, 0, 0, $ta[1], 0, $ta[0]); 
                } 
 
            } 
 
        } 
 
        return $t; 
    } 
 
    public function _obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($data = array(  )) 
    { 
        $name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]); 
        $method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1); 
        $result = $this->db->InsertQuery("addon_mta_group", array( "name" => $name, "rotation" => $method )); 
        return $result; 
    } 
 
    public function _obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($data = array(  )) 
    { 
        $name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]); 
        $method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1); 
        $result = $this->db->UpdateQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ), "`uid`=" . $data["mta_group_uid"]); 
        return $result; 
    } 
 
    public function _obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id = 0) 
    { 
        $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, true); 
        foreach( $mtas as $k => $value )  
        { 
            $this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $value["uid"]); 
            $this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $value["uid"]); 
        } 
        return $this->db->DeleteQuery("addon_mta_group", "WHERE `uid`=" . $id, 1); 
    } 
 
    public function _obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($r = 1) 
    { 
        $ro = array( 1 => "Random", 2 => "Cycle" ); 
        return $ro[$r]; 
    } 
 
    public function _obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_($id = false) 
    { 
        $id = ($id ? "WHERE uid='" . $id . "'" : ""); 
        $data = array(  ); 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id; 
        $result = $this->db->Query($query); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $row["rotation_raw"] = $row["rotation"]; 
            $row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]); 
            $row["inactives"] = $this->_obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($row["uid"]); 
            $row = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"])); 
            $row["total"] = (int) $row["inactives"] + (int) $row["mtas"]; 
            $data[] = $row; 
        } 
        if( !$id )  
        { 
        } 
 
        return $data; 
    } 
 
    public function _obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($guid) 
    { 
        $total = 0; 
        $query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group=" . $guid . " AND status=2"; 
        $result = $this->db->Query($query); 
        $row = $this->db->Fetch($result); 
        if( $row )  
        { 
            $total = $row["total"]; 
        } 
 
        return $total; 
    } 
 
    public function _obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_($id = false, $mtas = false, $blacklistdata = false, $user = false) 
    { 
        $user =& GetUser(); 
        $is_admin = $user->isAdmin(); 
        $disabled_is_admin = true; 
        if( $is_admin && $disabled_is_admin == false )  
        { 
            $id = ($id ? "WHERE uid='" . $id . "'" : ""); 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id; 
        } 
        else 
        { 
            $id = ($id ? "WHERE uid='" . $id . "'" : ""); 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $user->userid; 
        } 
 
        $data = array(  ); 
        $result = $this->db->Query($query); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]); 
            if( $mtas )  
            { 
                $row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, $blacklistdata); 
            } 
 
            $data[] = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"])); 
        } 
        return $data; 
    } 
 
    public function _obfuscated_7F84AAAFA6B78796B1B194BAB286A384C082B4B396A4A1_() 
    { 
        $data = array(  ); 
        $data["uid"] = 0; 
        $data["name"] = GetLang("Addon_mta_nongrouped"); 
        $data["rotation"] = "N/A"; 
        return array_merge($data, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_(0)); 
    } 
 
    public function _obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($id = 0) 
    { 
        $data = array(  ); 
        $data["mtas"] = $this->_obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id); 
        $data["users"] = $this->_obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id); 
        $data = array_merge($data, $this->_obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id)); 
        return $data; 
    } 
 
    public function _obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id = 0) 
    { 
        $query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' AND status=1"; 
        $result = $this->db->Query($query); 
        if( $result )  
        { 
            $row = $this->db->Fetch($result); 
            return (int) $row["total"]; 
        } 
 
        return 0; 
    } 
 
    public function _obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id = 0) 
    { 
        $query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'"; 
        $result = $this->db->Query($query); 
        if( $result )  
        { 
            $row = $this->db->Fetch($result); 
            return (int) $row["total"]; 
        } 
 
        return 0; 
    } 
 
    public function _obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id = 0) 
    { 
        $query = "SELECT SUM(sent) as sent,SUM(failed) as failed, SUM(bounced) as bounced FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "'"; 
        $result = $this->db->Query($query); 
        if( $result )  
        { 
            $row = $this->db->Fetch($result); 
            $row["sent"] = (int) $row["sent"]; 
            $row["failed"] = (int) $row["failed"]; 
            $row["bounced"] = (int) $row["bounced"]; 
            return $row; 
        } 
 
        return 0; 
    } 
 
    public function _obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, $partial = false) 
    { 
        if( $id )  
        { 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid='" . $id . "'"; 
            $result = $this->db->Query($query); 
            if( $result )  
            { 
                $row = $this->db->Fetch($result); 
                return array( "raw" => $row, "exist" => true, "data" => array( "mta_group_uid" => $id, "mta_group_name" => $row["name"], "mta_group_rotation" => $row["rotation"], "users" => $this->_obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id) ) ); 
            } 
 
            return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_(); 
        } 
 
        return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_(); 
    } 
 
    public function _obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id = 0) 
    { 
        $id = (int) $id; 
        $users = array(  ); 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'"; 
        $result = $this->db->Query($query); 
        if( $result )  
        { 
            while( $row = $this->db->Fetch($result) )  
            { 
                $users[] = (int) $row["user_uid"]; 
            } 
        } 
 
        return $users; 
    } 
 
    public function _obfuscated_7F9CBDB2B98F97818C92B6AA8698A5B2A2BE9CB296A381_($group, $id, $partial = false) 
    { 
        if( $id )  
        { 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $this->db->Quote($group) . "' AND uid='" . $this->db->Quote($id) . "'"; 
            $result = $this->db->Query($query); 
            if( $result )  
            { 
                $row = $this->db->Fetch($result); 
                return array( "exist" => true, "data" => $row ); 
            } 
 
            return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_(); 
        } 
 
        return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_(); 
    } 
 
    public function _obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid = 0) 
    { 
        if( $uid )  
        { 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid='" . $this->db->Quote($uid) . "'"; 
            $result = $this->db->Query($query); 
            if( $result )  
            { 
                $row = $this->db->Fetch($result); 
                return array( "exist" => true, "data" => $row ); 
            } 
 
            return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_(); 
        } 
 
        return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_(); 
    } 
 
    public function _obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id = 0, $lite = false, $active = false, $random = false, $limit = false, $blacklistdata = false, $whitelistdata = false) 
    { 
        $active = ($active ? " AND status=1" : ""); 
        $order = ($random ? " ORDER BY RAND()" : ""); 
        $limit = ($limit && is_numeric($limit) ? " LIMIT " . $limit : ""); 
        if( !$lite )  
        { 
            $mtas = array(  ); 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit; 
            $result = $this->db->Query($query); 
            while( $row = $this->db->Fetch($result) )  
            { 
                $row["sent"] = number_format($row["sent"]); 
                $row["failed"] = number_format($row["failed"]); 
                $row["bounced"] = number_format($row["bounced"]); 
                $row["reputation"] = number_format($row["reputation"]); 
                $row["blacklist"] = number_format($row["blacklist"]); 
                if( $blacklistdata )  
                { 
                    $row["blacklist_data"] = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($row["uid"], time(), "daily", explode(",", $row["blacklist_data"])); 
                } 
 
                if( $whitelistdata )  
                { 
                    $wl_data = explode(",", $row["whitelist_data"]); 
                    $row["whitelist_data"] = $this->_obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($row["uid"], time(), "daily", $wl_data); 
                } 
 
                $mtas[] = $row; 
            } 
        } 
        else 
        { 
            $mtas = array(  ); 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit; 
            $result = $this->db->Query($query); 
            while( $row = $this->db->Fetch($result) )  
            { 
                $mtas[] = $row; 
            } 
        } 
 
        return $mtas; 
    } 
 
    public function _obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($mta_uid, $type) 
    { 
        if( $type == "reputation" || $type == "blacklist" )  
        { 
            $sent = $this->db->Fetch($this->db->Query("SELECT value as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1")); 
        } 
        else 
        { 
            $sent = $this->db->Fetch($this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "'")); 
        } 
 
        return (int) $sent["total"]; 
    } 
 
    public function _obfuscated_7F98B6AEAD81B5BF90998DC0BBA68C899197A299AF9281_($mta_uid, $value, $key) 
    { 
        $result = $this->db->UpdateQuery("addon_mta_data", array( $key => $value ), "`uid`=" . $mta_uid); 
        return $value; 
    } 
 
    public function _obfuscated_7F97898C81AD9292B1A7A8A4AEAE9CB383BF9387A6B191_($group_id = 0, $type = "sent") 
    { 
        $total = 0; 
        if( $type == "reputation" )  
        { 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'"; 
            $result = $this->db->Query($query); 
            while( $row = $this->db->Fetch($result) )  
            { 
                $total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type); 
            } 
        } 
        else 
        { 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'"; 
            $result = $this->db->Query($query); 
            while( $row = $this->db->Fetch($result) )  
            { 
                $total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type); 
            } 
        } 
 
        return $total; 
    } 
 
    public function _obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_() 
    { 
        return array( "exist" => false, "data" => array( "name" => time() ) ); 
    } 
 
    public function _obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_() 
    { 
        return array( "exist" => false, "data" => array( "mta_group_name" => time(), "mta_group_rotation" => 1 ) ); 
    } 
 
    public function _obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($job = 0) 
    { 
        $job = $this->db->Quote($job); 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $job . "'"; 
        $result = $this->db->Query($query); 
        $r = array(  ); 
        $mta = 0; 
        $row = $this->db->Fetch($result); 
        if( !$row )  
        { 
            return "None"; 
        } 
 
        $mta = $this->_obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($row["ownerid"]); 
        if( $mta == 0 )  
        { 
            $md = unserialize($row["jobdetails"]); 
            return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($md["mta"], "J"); 
        } 
 
        return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta, "U"); 
    } 
 
    public function _obfuscated_7FAEB7858EA59181A09892B7B5A79897BE9FB29AB9ADA1_($stat = 0) 
    { 
        $stat = $this->db->Quote($stat); 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $stat . "'"; 
        $result = $this->db->Query($query); 
        $r = array(  ); 
        $mta = 0; 
        $row = $this->db->Fetch($result); 
        if( !$row )  
        { 
            return "None"; 
        } 
 
        return $this->_obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($row["jobid"]); 
    } 
 
    public function _obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($user) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE userid='" . $user . "'"; 
        $result = $this->db->Query($query); 
        $mta = 0; 
        while( $row = $this->db->Fetch($result) )  
        { 
            $mta = (int) $row["mta"]; 
        } 
        return $mta; 
    } 
 
    public function _obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta = 0, $default = "None", $type = "J") 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "smtp WHERE uid='" . $mta . "'"; 
        $result = $this->db->Query($query); 
        $mta = $default; 
        while( $row = $this->db->Fetch($result) )  
        { 
            $mta = "<img src='images/" . (($type == "J" ? "mnu_contactlist_button" : "user")) . ".gif'> " . $row["name"]; 
        } 
        return $mta; 
    } 
 
    public function _obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($data = array(  )) 
    { 
        $mta_data = array( "hostname" => trim($data["hostname"]), "username" => trim($data["username"]), "password" => trim($data["password"]), "port" => (int) trim($data["port"]), "name" => trim($data["name"]), "mail_from" => trim($data["mail_from"]), "mail_reply" => trim($data["mail_reply"]), "mail_bounce" => trim($data["mail_bounce"]), "mail_test" => trim($data["mail_test"]), "mta_group" => (int) $data["mta_group_uid"] ); 
        $result = $this->db->InsertQuery("addon_mta_data", $mta_data); 
        return $result; 
    } 
 
    public function _obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id = 0) 
    { 
        $result = $this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $id); 
        $result = $this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $id); 
        return $result; 
    } 
 
    public function _obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($ids = array(  )) 
    { 
        $i = 0; 
        foreach( $ids as $k => $v )  
        { 
            $id = (int) $v; 
            if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id) )  
            { 
                $i++; 
            } 
 
        } 
        return $i; 
    } 
 
    public function _obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($ids = array(  )) 
    { 
        $i = 0; 
        foreach( $ids as $k => $v )  
        { 
            $id = (int) $v; 
            if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 1 )) )  
            { 
                $i++; 
            } 
 
        } 
        return $i; 
    } 
 
    public function _obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($ids = array(  )) 
    { 
        $i = 0; 
        foreach( $ids as $k => $v )  
        { 
            $id = (int) $v; 
            if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 2 )) )  
            { 
                $i++; 
            } 
 
        } 
        return $i; 
    } 
 
    public function _obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($data = array(  )) 
    { 
        $result = $this->db->UpdateQuery("addon_mta_data", array( "hostname" => $data["hostname"], "username" => $data["username"], "password" => $data["password"], "port" => (int) $data["port"], "name" => $data["name"], "mail_from" => $data["mail_from"], "mail_reply" => $data["mail_reply"], "mail_bounce" => $data["mail_bounce"], "mail_test" => $data["mail_test"] ), "`uid`=" . $data["uid"]); 
        return $result; 
    } 
 
    public function _obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) 
    { 
        $f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id); 
        return ($f["exist"] == false ? false : true); 
    } 
 
    public function _obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($data = array(  )) 
    { 
        $valid = array( "hostname", "username", "password", "port", "name", "status", "mail_from", "mail_reply", "mail_bounce", "mail_test" ); 
        $fields = array(  ); 
        foreach( $data as $k => $v )  
        { 
            if( in_array($k, $valid) )  
            { 
                $fields[$k] = $v; 
            } 
 
        } 
        $result = $this->db->UpdateQuery("addon_mta_data", $fields, "`uid`=" . (int) $data["uid"]); 
        return $result; 
    } 
 
    public function _obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_() 
    { 
        if( defined("MTA_POPULATE_IPGUARD_IP_BINDING") && MTA_POPULATE_IPGUARD_IP_BINDING != false )  
        { 
            $opts = array( "socket" => array( "bindto" => MTA_POPULATE_IPGUARD_IP_BINDING ) ); 
            $context = stream_context_create($opts); 
            MT::S()->CLI("binding to: " . MTA_POPULATE_IPGUARD_IP_BINDING, "mta-addon-populate-binding", false, $this->log_method); 
            return $context; 
        } 
 
        MT::S()->CLI("binding to: FALSE", "mta-addon-populate-binding", false, $this->log_method); 
    } 
 
    public function _obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_() 
    { 
        require_once(dirname(__FILE__) . "/class.dom.php"); 
        if( defined("MTA_POPULATE_IPGUARD_URL") && MTA_POPULATE_IPGUARD_URL != false )  
        { 
            $furl = MTA_POPULATE_IPGUARD_URL; 
        } 
        else 
        { 
            $furl = "http://multirbl.valli.org/lookup/184.154.76.66.html"; 
        } 
 
        MT::S()->CLI($furl, "mta-populate-url", false, $this->log_method); 
        if( defined("MTA_POPULATE_IPGUARD_CONTEXT") && MTA_POPULATE_IPGUARD_CONTEXT == true )  
        { 
            $html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl, false, $this->_obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_()); 
        } 
        else 
        { 
            $html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl); 
        } 
 
        if( $html == false )  
        { 
            return false; 
        } 
 
        $data = array( "blacklist" => array(  ), "combined" => array(  ), "whitelist" => array(  ), "informational" => array(  ) ); 
        foreach( $html->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("table[id=dnsbl_data]") as $a )  
        { 
            foreach( $a->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("tr") as $b )  
            { 
                $trid = $b->id; 
                if( preg_match("/DNSBLBlacklistTest/i", $trid) )  
                { 
                    $data["blacklist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext ); 
                } 
                else 
                { 
                    if( preg_match("/DNSBLCombined/i", $trid) )  
                    { 
                        $data["combined"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext ); 
                    } 
                    else 
                    { 
                        if( preg_match("/DNSBLWhitelist/i", $trid) )  
                        { 
                            $data["whitelist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext ); 
                        } 
                        else 
                        { 
                            if( preg_match("/DNSBLInformational/i", $trid) )  
                            { 
                                $data["informational"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext ); 
                            } 
 
                        } 
 
                    } 
 
                } 
 
            } 
        } 
        $data["reputation"] = array( array( "name" => "SenderScore score", "url" => "https://www.senderscore.org/faq/", "dns" => "score.senderscore.com" ), array( "name" => "SenderScore complaint", "url" => "https://www.senderscore.org/faq/", "dns" => "cmplt.rating.senderscore.com" ), array( "name" => "SenderScore volume", "url" => "https://www.senderscore.org/faq/", "dns" => "vol.rating.senderscore.com" ), array( "name" => "SenderScore unknown", "url" => "https://www.senderscore.org/faq/", "dns" => "uus.rating.senderscore.com" ), array( "name" => "SenderScore filtered", "url" => "https://www.senderscore.org/faq/", "dns" => "filtered.rating.senderscore.com" ) ); 
        return $data; 
    } 
 
    public function _obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_($data) 
    { 
        MT::S()->ECH0(PHP_EOL . print_r($data, true), $this->log_method); 
    } 
 
    public function _obfuscated_7FB29DBB8C9E9BA4AEA6AD9F85A2BDA58E8FB49FB28581_() 
    { 
        $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Download RBL data"); 
        $data = $this->_obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_(); 
        if( is_array($data) == false )  
        { 
            return false; 
        } 
 
        foreach( $data as $k => $v )  
        { 
            foreach( $v as $_k => $_v )  
            { 
                if( !$this->_obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($_v["dns"], $k) && !empty($_v["dns"]) )  
                { 
                    $rbl = array( "name" => $_v["name"], "url" => $_v["url"], "dns" => $_v["dns"], "type" => $k ); 
                    $result = $this->db->InsertQuery("addon_mta_ipguard", $rbl); 
                    if( $result )  
                    { 
                        $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Added new entry: " . print_r($rbl, true)); 
                    } 
 
                } 
                else 
                { 
                    $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Already Added [" . $k . "]: " . print_r($_v, true)); 
                } 
 
            } 
        } 
    } 
 
    public function _obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($dns, $type) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE `dns`='" . $this->db->Quote(trim($dns)) . "' AND `type`='" . $this->db->Quote(trim($type)) . "'"; 
        $result = $this->db->Query($query); 
        return ($this->db->Fetch($result) ? true : false); 
    } 
 
    public function _obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type = false) 
    { 
        $type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : ""); 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type . " ORDER BY dns"; 
        $result = $this->db->Query($query); 
        $rbls = array(  ); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $rbls[] = $row; 
        } 
        return $rbls; 
    } 
 
    public function _obfuscated_7F82B5BE92A2BB89A5AFB29EB7ACBC9BA1A3AD89B2A9A1_($type = false) 
    { 
        $type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : ""); 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type; 
        $result = $this->db->Query($query); 
        $rbls = array(  ); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $rbls[] = $row; 
        } 
        return $rbls; 
    } 
 
    public function _obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip) 
    { 
        switch( MTA_DNS_QUERY_METHOD )  
        { 
            case "php": 
                $r = gethostbyname($ip); 
                if( !empty($r) )  
                { 
                    $d = explode(".", $r); 
                    $rp = ((int) $d[0] == 127 ? (int) $d[3] : false); 
                    $res = array( "reply" => $rp, "reply_inet" => $r ); 
                } 
                else 
                { 
                    $res = array( "reply" => false, "reply_inet" => false ); 
                } 
 
                break; 
            case "dig": 
                $op = exec("dig +short " . $ip, $r); 
                if( $r && !empty($r[0]) )  
                { 
                    $r = $r[0]; 
                    $d = explode(".", $r); 
                    $rp = ((int) $d[0] == 127 ? (int) $d[3] : false); 
                    $res = array( "reply" => $rp, "reply_inet" => $r ); 
                } 
                else 
                { 
                    $res = array( "reply" => false, "reply_inet" => false ); 
                } 
 
                break; 
            default: 
                $com = MTA_NSLOOKUP_BIN . " " . $ip; 
                if( MT_TOOLS::S()->_obfuscated_7F8E8F9AAE8A90979F949A868D88C08FABB4A186ACA8A1_() )  
                { 
                    exec($com, $op); 
                    if( is_array($op) && 5 < count($op) )  
                    { 
                        $a = trim(str_replace("\"", "", $op[4])); 
                        $b = explode(" ", $a); 
                        $c = $b[2]; 
                        $d = explode(".", $c); 
                        $res = ((int) $d[0] == 127 ? (int) $d[3] : false); 
                        $res = array( "reply" => $res, "reply_inet" => $c ); 
                    } 
 
                } 
                else 
                { 
                    exec($com, $op); 
                    if( is_array($op) && 5 < count($op) )  
                    { 
                        $a = trim(str_replace("\"", "", $op[5])); 
                        $b = explode(" ", $a); 
                        $c = $b[1]; 
                        $d = explode(".", $c); 
                        $res = ((int) $d[0] == 127 ? (int) $d[3] : false); 
                        $res = array( "reply" => $res, "reply_inet" => $c ); 
                    } 
 
                } 
 
                break; 
        } 
        return $res; 
    } 
 
    public function _obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($dns, $result, $result_inet) 
    { 
        if( preg_match("/uribl/i", $dns) && $result_inet == "127.0.0.1" )  
        { 
            return false; 
        } 
 
        if( 0 < (int) $result && (int) $result < 100 )  
        { 
            return true; 
        } 
 
        return false; 
    } 
 
    public function _obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $rbl) 
    { 
        $rip = explode(".", $ip); 
        $reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0]; 
        $res = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($reverse_ip . "." . $rbl); 
        return $res; 
    } 
 
    public function _obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip = "0.0") 
    { 
        return (filter_var($ip, FILTER_VALIDATE_IP) ? true : false); 
    } 
 
    public function _obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($tld = false) 
    { 
        if( !$tld )  
        { 
            return false; 
        } 
 
        return (preg_match("/^(?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,6}\$/", trim($tld)) ? true : false); 
    } 
 
    public function _obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $dns, $type = "rbl", $_return = false) 
    { 
        if( $type == "rbl" )  
        { 
            if( !$this->_obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns) )  
            { 
                return false; 
            } 
 
            $rip = explode(".", $ip); 
            $reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0]; 
            $ip = $reverse_ip; 
        } 
        else 
        { 
            if( $type == "dbl" && (!$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns)) )  
            { 
                return false; 
            } 
 
        } 
 
        $ns_result = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip . "." . $dns); 
        return ($_return ? array( "query" => $ip . "." . $dns, "result" => $ns_result ) : $ns_result); 
    } 
 
    private function _obfuscated_7F839195A78FA290B18A9EA58DB9898AAC83B2888B8C91_() 
    { 
        $groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_(); 
        foreach( $groups as $g => $k )  
        { 
            MT::S()->ECH0(PHP_EOL . "|	Group: " . MT::S()->color($k["name"], "yellow"), $this->log_method); 
            $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]); 
            foreach( $mtas as $_k => $_v )  
            { 
                $rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "reputation", $time); 
            } 
        } 
    } 
 
    private function _obfuscated_7F9389839EB39AADA7BBA7978FC0AFA3B38EAE86A7BAA1_() 
    { 
        $groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_(); 
        foreach( $groups as $g => $k )  
        { 
            MT::S()->ECH0(PHP_EOL . "|	Group: " . MT::S()->color($k["name"], "yellow"), $this->log_method); 
            $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]); 
            foreach( $mtas as $_k => $_v )  
            { 
                $rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "blacklist", $time); 
            } 
        } 
    } 
 
    /** 
     * New IP monitoring API 
     */ 
 
    private function _obfuscated_7F819BAC93B7839D8A8EB1A99197A498B78FACBDB4AEA1_() 
    { 
        $sp = "{first sentence|second sentence} {  {His|Her} {car|truck} is {blue|red}. | {She|He} is {feeling|doing} {much|a lot} better.}"; 
        $data = array( "api_key" => 123, "ip" => "maborak.com" ); 
        echo 234; 
        print_r(MT_TOOLS::S()->api("https://platform.maborak.com/api/dnsbl_service", $data)); 
        exit(); 
    } 
 
    public function _obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($mta = array(  ), $type = "reputation", $time = false, $run = false) 
    { 
        $time = (!$time ? time() : $time); 
        $type = (!$type ? "reputation" : $type); 
        $rbls = $this->_obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type); 
        $result = array(  ); 
        $ip = gethostbyname($mta["hostname"]); 
        if( filter_var($ip, FILTER_VALIDATE_IP) )  
        { 
            $bl = array(  ); 
            $wl = array(  ); 
            $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("	Checking " . $type . " for " . $ip . ":"); 
            $j = 1; 
            $total = count($rbls); 
            foreach( $rbls as $k => $v )  
            { 
                if( $type == "reputation" )  
                { 
                    if( $v["dns"] != "score.senderscore.com" )  
                    { 
                        continue; 
                    } 
 
                    $result = $this->_obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $v["dns"]); 
                    $value = $result["reply"]; 
                    $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("		" . $v["dns"] . "[" . $result["reply_inet"] . "] : " . $result["reply"]); 
                    if( $type == "reputation" && $v["dns"] == "score.senderscore.com" )  
                    { 
                        $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], (int) $value, "reputation", $time); 
                    } 
 
                } 
                else 
                { 
                    if( $type == "blacklist" )  
                    { 
                        $result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true); 
                        if( $result_query )  
                        { 
                            $value = $result_query["result"]["reply"]; 
                            $listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]); 
                            if( $listed )  
                            { 
                                $bl[] = $v["uid"]; 
                            } 
 
                            $o = MT::S()->color("OK", "green"); 
                            $l = MT::S()->color("LISTED", "light_red"); 
                            $inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty"); 
                            MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "light_red") : $result_query["query"])), false, $this->log_method); 
                            $listed = false; 
                        } 
 
                    } 
                    else 
                    { 
                        if( $type == "whitelist" )  
                        { 
                            $result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true); 
                            if( $result_query )  
                            { 
                                $value = $result_query["result"]["reply"]; 
                                $listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]); 
                                if( $listed )  
                                { 
                                    $wl[] = $v["uid"]; 
                                } 
 
                                $o = MT::S()->color("NOT-LISTED", "light_red"); 
                                $l = MT::S()->color("LISTED", "green"); 
                                $inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty"); 
                                MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "green") : $result_query["query"])), false, $this->log_method); 
                                $listed = false; 
                            } 
 
                        } 
 
                    } 
 
                } 
 
                $j++; 
            } 
            if( $type == "blacklist" )  
            { 
                $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($bl), "blacklist", $time, implode(",", $bl)); 
            } 
            else 
            { 
                if( $type == "whitelist" )  
                { 
                    $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($wl), "whitelist", $time, implode(",", $wl)); 
                } 
 
            } 
 
        } 
        else 
        { 
            $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Invalid IP: " . $ip); 
            $result["result"] = false; 
        } 
 
        return $result; 
    } 
 
    public function _obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_() 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "usergroups"; 
        $result = $this->db->Query($query); 
        $groups = array(  ); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $row["users"] = $this->_obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($row["groupid"]); 
            $groups[] = $row; 
        } 
        return $groups; 
    } 
 
    public function _obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($group = 0) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE groupid='" . $group . "'"; 
        $result = $this->db->Query($query); 
        $users = array(  ); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $users[] = $row; 
        } 
        return $users; 
    } 
 
    public function _obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas) 
    { 
        $optional = 1; 
        foreach( $mtas["groups"] as $key => $value )  
        { 
            if( (int) $value["s_force"] != 4 )  
            { 
                return 0; 
            } 
 
        } 
        return $optional; 
    } 
 
    public function _obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas) 
    { 
        $f = 0; 
        foreach( $mtas["groups"] as $key => $value )  
        { 
            if( (int) $value["s_force"] == 1 )  
            { 
                return 1; 
            } 
 
        } 
        return $f; 
    } 
 
    /** 
     * Este metodo muestra los MTA Selection en el Email Campaign Step 
     *  
     * @return [type] [description] 
     * @see $this->__Zend__iem_email_campaign_save_mta() 
     */ 
 
    private function _obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_() 
    { 
        $mtas = array(  ); 
        $mtas["groups"] = $this->_obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_(false, true, false, false); 
        $filtered_group = array(  ); 
        foreach( $mtas["groups"] as $key => $value )  
        { 
            if( (int) $value["s_force"] != 2 && (int) $value["s_force"] != 0 )  
            { 
                $filtered_group[] = $value; 
            } 
 
        } 
        $mtas["groups"] = $filtered_group; 
        $this->template_system->Assign("default", $this->_obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas)); 
        $this->template_system->Assign("is_forcing", $this->_obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas)); 
        $this->template_system->Assign("mtas", $mtas, true); 
        $this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(false), true); 
        $GLOBALS["MTA_SEND_SELECT_MTA"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta", true); 
    } 
 
    public function iem_show_mtas_in_email_campaign() 
    { 
        $this->_obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_(); 
    } 
 
    private function _obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $data = array(  )) 
    { 
        $data = $this->_obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_(); 
        $this->_obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid, $data); 
        print_r($data); 
        print_r($this->_obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid)); 
        exit(); 
    } 
 
    private function _obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid = 0) 
    { 
        $nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid); 
        return $nosql->public_getNode("data"); 
    } 
 
    private function _obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid = 0, $data = array(  )) 
    { 
        $nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid); 
        return $nosql->public_setNode("data", $data); 
    } 
 
    private function _obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_($data = array(  )) 
    { 
        $log = array(  ); 
        $user =& GetUser(); 
        $mtas = array(  ); 
        $send_details = array(  ); 
        $forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid); 
        $forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid); 
        $mtas["groups"] = $forced; 
        $mtas["groups_mail_settings"] = $forced_mail_settings; 
        $log["username"] = $user->username; 
        $log["ip"] = $_SERVER["REMOTE_ADDR"]; 
        $send_details["log"] = $log; 
        $send_mta = array( "mtas_uid" => array(  ) ); 
        $mta_raw = array(  ); 
        if( isset($data["mta"]) && is_array($data["mta"]) )  
        { 
            foreach( $data["mta"] as $key => $value )  
            { 
                $_mta = explode("_", $value); 
                if( count($_mta) != 2 || $_mta[0] != "s" )  
                { 
                    continue; 
                } 
 
                $_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]); 
                if( $_m["exist"] )  
                { 
                    $group_id = $_m["data"]["mta_group"]; 
                    if( !isset($mta_raw[$group_id]) )  
                    { 
                        $group_info = $this->group_info($group_id); 
                        $mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array(  ) ); 
                    } 
 
                    $mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"]; 
                } 
 
            } 
        } 
 
        foreach( $mta_raw as $key => $value )  
        { 
            if( array_key_exists($key, $mtas["groups"]) )  
            { 
            } 
            else 
            { 
                $mtas["groups"][$key] = array(  ); 
                foreach( $value["mtas"] as $akey => $avalue )  
                { 
                    $mtas["groups"][$key][] = $avalue; 
                } 
            } 
 
        } 
        $ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array(  )); 
        foreach( $ms as $key => $value )  
        { 
            if( array_key_exists($key, $mtas["groups_mail_settings"]) )  
            { 
                if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) )  
                { 
                    $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false); 
                } 
 
                if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) )  
                { 
                    $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false); 
                } 
 
                if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) )  
                { 
                    $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false); 
                } 
 
            } 
            else 
            { 
                $mtas["groups_mail_settings"][$key] = array(  ); 
                $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false); 
                $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false); 
                $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false); 
            } 
 
        } 
        $gnames = array(  ); 
        foreach( $mtas["groups"] as $key => $value )  
        { 
            $group_info = $this->group_info($key); 
            $gnames[$key] = $group_info[0]["name"]; 
        } 
        $mtas["group_names"] = $gnames; 
        $mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 ); 
        $mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 ); 
        $mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) ); 
        $mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false); 
        $mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array(  ), "manual" => "None" )); 
        $send_details["mta"] = $mtas; 
        return $send_details; 
    } 
 
    /** 
     * Save MTA Accounts in JobDetails 
     * 
     * @param unknown $send_details 
     * @param array $data 
     * @param string $is_trigger 
     */ 
 
    private function _obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_(&$send_details, $data = array(  ), $is_trigger = false) 
    { 
        $log = array(  ); 
        $user =& GetUser(); 
        $mtas = array(  ); 
        $forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid); 
        $forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid); 
        $mtas["groups"] = $forced; 
        $mtas["groups_mail_settings"] = $forced_mail_settings; 
        $log["username"] = $user->username; 
        $log["ip"] = $_SERVER["REMOTE_ADDR"]; 
        $send_details["log"] = $log; 
        $send_mta = array( "mtas_uid" => array(  ) ); 
        $mta_raw = array(  ); 
        if( isset($data["mta"]) && is_array($data["mta"]) )  
        { 
            foreach( $data["mta"] as $key => $value )  
            { 
                $_mta = explode("_", $value); 
                if( count($_mta) != 2 || $_mta[0] != "s" )  
                { 
                    continue; 
                } 
 
                $_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]); 
                if( $_m["exist"] )  
                { 
                    $group_id = $_m["data"]["mta_group"]; 
                    if( !isset($mta_raw[$group_id]) )  
                    { 
                        $group_info = $this->group_info($group_id); 
                        $mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array(  ) ); 
                    } 
 
                    $mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"]; 
                } 
 
            } 
        } 
 
        foreach( $mta_raw as $key => $value )  
        { 
            if( array_key_exists($key, $mtas["groups"]) )  
            { 
            } 
            else 
            { 
                $mtas["groups"][$key] = array(  ); 
                foreach( $value["mtas"] as $akey => $avalue )  
                { 
                    $mtas["groups"][$key][] = $avalue; 
                } 
            } 
 
        } 
        $ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array(  )); 
        foreach( $ms as $key => $value )  
        { 
            if( array_key_exists($key, $mtas["groups_mail_settings"]) )  
            { 
                if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) )  
                { 
                    $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false); 
                } 
 
                if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) )  
                { 
                    $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false); 
                } 
 
                if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) )  
                { 
                    $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false); 
                } 
 
            } 
            else 
            { 
                $mtas["groups_mail_settings"][$key] = array(  ); 
                $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false); 
                $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false); 
                $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false); 
            } 
 
        } 
        $gnames = array(  ); 
        foreach( $mtas["groups"] as $key => $value )  
        { 
            $group_info = $this->group_info($key); 
            $gnames[$key] = $group_info[0]["name"]; 
        } 
        $mtas["group_names"] = $gnames; 
        $mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 ); 
        $mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 ); 
        $mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) ); 
        $mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false); 
        $mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array(  ), "manual" => "None" )); 
        $headers = $this->_obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($mtas["headers"]["groups"]); 
        $this->template_system->Assign("mta_headers", $headers, true); 
        $this->template_system->Assign("mta_headers_manual", (!empty($mtas["headers"]["manual"]) ? $mtas["headers"]["manual"] : "none"), true); 
        $send_details["mta"] = $mtas; 
        $this->template_system->Assign("mta", $send_details["mta"], true); 
        $GLOBALS["MTA_SEND_SELECT_MTA_CONFIRM"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta_confirm", true); 
    } 
 
    public function iem_email_campaign_save_mta(&$a, $b) 
    { 
        return $this->_obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_($a, $b); 
    } 
 
    public function _obfuscated_7F8191B5968AB783879993B0A6ADB2BCA8B687B09DA1B1_($triggerid, $b) 
    { 
        return $this->_obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $b); 
    } 
 
    public function _obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($id = 0) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2)"; 
        $data = array(  ); 
        $result = $this->db->Query($query); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $data[$row["uid"]] = array(  ); 
            $row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]); 
            $row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, false); 
            foreach( $row["mtas_data"] as $key => $value )  
            { 
                $data[$row["uid"]][] = $value["uid"]; 
            } 
        } 
        return $data; 
    } 
 
    public function _obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($gid) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_from=1 OR s_force_from=2)"; 
        $result = $this->db->Fetch($this->db->Query($query)); 
        return ($result ? true : false); 
    } 
 
    public function _obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($gid) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_reply=1 OR s_force_reply=2)"; 
        $result = $this->db->Fetch($this->db->Query($query)); 
        return ($result ? true : false); 
    } 
 
    public function _obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($gid) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_bounce=1 OR s_force_bounce=2)"; 
        $result = $this->db->Fetch($this->db->Query($query)); 
        return ($result ? true : false); 
    } 
 
    public function _obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($id = 0) 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2) OR (s_force_from=1 OR s_force_from=2 OR s_force_reply=1 OR s_force_reply=2 OR s_force_bounce=1 OR s_force_bounce=2)"; 
        $data = array(  ); 
        $result = $this->db->Query($query); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $data[$row["uid"]] = array(  ); 
            $data[$row["uid"]]["from"] = ((int) $row["s_force_from"] == 1 || (int) $row["s_force_from"] == 2 ? true : false); 
            $data[$row["uid"]]["reply"] = ((int) $row["s_force_reply"] == 1 || (int) $row["s_force_reply"] == 2 ? true : false); 
            $data[$row["uid"]]["bounce"] = ((int) $row["s_force_bounce"] == 1 || (int) $row["s_force_bounce"] == 2 ? true : false); 
        } 
        return $data; 
    } 
 
    private function _obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_() 
    { 
        $m = array(  ); 
        if( isset($this->mta["groups"]) )  
        { 
            foreach( $this->mta["groups"] as $key => $value )  
            { 
                foreach( $value as $akey => $avalue )  
                { 
                    $m[] = $avalue; 
                } 
            } 
        } 
 
        return $m; 
    } 
 
    /** 
     * MTA Object 
     * Return all the MTA's assigned to the user. 
     * 
     * @todo Optimizar la seleccion de MTA's 
     * @return array The mta accounts in an array. 
     */ 
 
    private function _obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_() 
    { 
        $mtas = $this->_obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_(); 
        $user = GetUser(); 
        $fromname = $user->Get("fullname"); 
        $sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">"); 
        $mo = array(  ); 
        if( 0 < count($mtas) )  
        { 
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid IN(" . implode(",", $mtas) . ") AND status=1"; 
            $qa = $this->db->Query($query); 
            while( ($row = $this->db->Fetch($qa)) != false )  
            { 
                $fn = explode($sep, trim($row["mail_from"])); 
                if( 1 < count($fn) )  
                { 
                    $row["mail_from_name"] = trim($fn[0]); 
                    $row["mail_from"] = trim($fn[1]); 
                } 
 
                $mo[] = $row; 
            } 
        } 
 
        return $mo; 
    } 
 
    private function _obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_() 
    { 
        $next_in = MTA_NEXT_MTA_AFTER; 
        if( !$this->mta["current_mta"] || $this->log_send_counter % $next_in == 0 )  
        { 
            if( MTA_DEFAULT_SORT == "random" )  
            { 
                $switched_mta = $this->_obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($this->mta["objects"]); 
            } 
            else 
            { 
                $switched_mta = $this->_obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($this->mta["objects"]); 
            } 
 
            return $switched_mta; 
        } 
 
        return $this->mta["current_mta"]; 
    } 
 
    private function _obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($pool = array(  )) 
    { 
        $rand_key = array_rand($pool, 1); 
        return $pool[$rand_key]; 
    } 
 
    private function _obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($pool = array(  )) 
    { 
        $this->mta["current_cycle_index"]++; 
        if( isset($pool[$this->mta["current_cycle_index"]]) )  
        { 
            return $pool[$this->mta["current_cycle_index"]]; 
        } 
 
        $this->mta["current_cycle_index"] = 0; 
        return $pool[$this->mta["current_cycle_index"]]; 
    } 
 
    /** 
     * Entrada principal de todo el engine SMTP 
     * 
     * @param object $_this 
     *            Email_API object 
     * @param unknown $disconnect 
     *            We will disconnect? 
     */ 
 
    public function iem_switch_smtp(&$_this, &$disconnect) 
    { 
        $this->_this = $_this; 
        if( isset($_this->Email_API->statid) && $_this->Email_API->statid != $this->current_statid )  
        { 
            $this->el_html = ""; 
            $this->current_statid = $_this->Email_API->statid; 
        } 
 
        if( empty($this->el_html) )  
        { 
            $this->el_html = $_this->Email_API->body["h"]; 
        } 
 
        return $this->_obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_($_this, $disconnect); 
    } 
 
    /** 
     * 
     * Quitamos todos los valores procesados para volver a procesarlos 
     * 
     * @param object $mail_object 
     *            Email_API 
     */ 
 
    public function rebuild_mail($mail_object) 
    { 
        $mail_object->_AssembledEmail["Headers"]["m"] = NULL; 
        $mail_object->_AssembledEmail["Headers"]["t"] = NULL; 
        $mail_object->_AssembledEmail["Headers"]["h"] = NULL; 
        $mail_object->_AssembledEmail["Body"]["t"] = NULL; 
        $mail_object->_AssembledEmail["Body"]["h"] = NULL; 
        $mail_object->_AttachmentBody = ""; 
        $mail_object->_ImageBody = NULL; 
        if( !empty($this->el_html) )  
        { 
            $mail_object->body["h"] = $this->el_html; 
        } 
 
    } 
 
    /** 
     * After the email is sent 
     *  
     * @param unknown $_this 
     * @param unknown $mail_results 
     * @return unknown 
     */ 
 
    public function iem_log_send_pre(&$_this, $mail_results) 
    { 
        return $this->_obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_($_this, $mail_results); 
    } 
 
    private function _obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_(&$_this, $mail_results) 
    { 
        if( $this->settings["debug_mail_sent"] )  
        { 
            $this->_obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($_this->Email_API); 
        } 
 
        if( isset($_this->jobdetails["mta"]) && isset($this->mta["selection"]) )  
        { 
            $mta_uid = (int) $this->mta["selection"]["mta"]["uid"]; 
            if( !isset($_this->mta_used_to_sent) )  
            { 
                $_this->mta_used_to_sent = array(  ); 
            } 
 
            if( !isset($_this->mta_used_to_sent[$mta_uid]) )  
            { 
                $_this->mta_used_to_sent[$mta_uid] = array( "sent" => 0, "failed" => 0 ); 
            } 
 
            if( 0 < $mail_results["success"] )  
            { 
                $_this->mta_used_to_sent[$mta_uid]["sent"]++; 
            } 
            else 
            { 
                $_this->mta_used_to_sent[$mta_uid]["failed"]++; 
            } 
 
        } 
 
    } 
 
    /** 
     * 
     * @param unknown $_this 
     * @param unknown $mail_result 
     * @param boolean $force 
     *            Ask if the campaign finished. 
     * @return unknown 
     */ 
 
    public function iem_log_send(&$_this, $mail_result, $force = false) 
    { 
        return $this->_obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_($_this, $mail_result, $force); 
    } 
 
    private function _obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_(&$_this, $mail_result, $force = false) 
    { 
        if( ($this->log_send_counter % MTA_COUNTER_TO_UPDATE_STATS == 0 || $force == true) && MTA_COUNTER_ENABLED == true && isset($_this->jobdetails["mta"]) && isset($_this->mta_used_to_sent) )  
        { 
            MT::S()->CLI($_this->mta_used_to_sent, "mta-used-to-send"); 
            foreach( $_this->mta_used_to_sent as $k => $v )  
            { 
                if( 0 < $v["sent"] )  
                { 
                    $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["sent"], "sent"); 
                } 
 
                if( 0 < $v["failed"] )  
                { 
                    $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["failed"], "failed"); 
                } 
 
                $_this->mta_used_to_sent[$k] = array( "sent" => 0, "failed" => 0 ); 
            } 
        } 
 
        if( $force == true )  
        { 
            Mta_API::$instance = NULL; 
            $GLOBALS["addon_mta_class"] = NULL; 
            if( isset($GLOBALS["addon_spins_class"]) && $GLOBALS["addon_spins_class"] != NULL )  
            { 
            } 
 
        } 
 
    } 
 
    /** 
     * Modify the encoding content 
     *  
     * @param array $data 
     *            [Job details] 
     */ 
 
    public function _obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($data = array(  )) 
    { 
        if( isset($data["headers"]) )  
        { 
            $this->encoding = "base64"; 
            if( $this->encoding == "base64" && isset($this->_this) && isset($this->_this->Email_API) )  
            { 
                $raw_subject = $this->_this->Email_API->Subject; 
                if( !preg_match("/" . preg_quote("=?utf-8?B?") . "/", $raw_subject) )  
                { 
                } 
 
            } 
 
        } 
        else 
        { 
            $this->encoding = "8bit"; 
        } 
 
    } 
 
    /** 
     * Modify the headers 
     *  
     * @param array $data 
     *            [Job details] 
     */ 
 
    public function _obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($data = array(  )) 
    { 
        if( isset($this->headers) )  
        { 
            $headers = $this->headers; 
        } 
        else 
        { 
            $data_header = array( "data" => array(  ), "multiple" => 1, "manual" => "" ); 
            if( isset($data["headers"]) && isset($data["headers"]["groups"]) && is_array($data["headers"]["groups"]) )  
            { 
                $groups = $data["headers"]["groups"]; 
                $data_header["multiple"] = (int) ((isset($data["headers"]["multiple"]) ? $data["headers"]["multiple"] : 1)); 
                foreach( $groups as $key => $value )  
                { 
                    $uid = (int) $value; 
                    $headers_data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid, false); 
                    $data_header["data"][] = $headers_data; 
                } 
            } 
 
            $data_header["manual"] = (isset($data["headers"]["manual"]) && !empty($data["headers"]["manual"]) ? trim($data["headers"]["manual"]) : ""); 
            $this->headers = $data_header; 
        } 
 
        $headers = $this->headers; 
        $new_headers = array(  ); 
        if( 0 < count($headers["data"]) )  
        { 
            switch( $headers["multiple"] )  
            { 
                case 1: 
                    $rh = array_rand($headers["data"], 1); 
                    $selected = $headers["data"][$rh]; 
                    if( 1 < count($headers["data"]) || $selected["rotation"] == 1 )  
                    { 
                        $this->internal_email_rebuild = true; 
                    } 
 
                    $selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]); 
                    foreach( $selected["headers"] as $key => $value )  
                    { 
                        $new_headers[] = $value; 
                    } 
                    break; 
                default: 
                    foreach( $headers["data"] as $k => $h )  
                    { 
                        $selected = $h; 
                        if( $selected["rotation"] == 1 )  
                        { 
                            $this->internal_email_rebuild = true; 
                        } 
 
                        $selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]); 
                        foreach( $selected["headers"] as $_k => $_v )  
                        { 
                            $new_headers[] = $_v; 
                        } 
                    } 
                    break; 
            } 
        } 
 
        foreach( $new_headers as $key => $value )  
        { 
            MT::S()->set_extra_header($value["name"], $value["value"]); 
        } 
        if( !empty($headers["manual"]) )  
        { 
            $c = explode(PHP_EOL, $headers["manual"]); 
            foreach( $c as $k => $v )  
            { 
                $d = explode(":", $v); 
                if( 1 < count($d) )  
                { 
                    $___k = trim($d[0]); 
                    $sd = array_shift($d); 
                    $___v = trim(implode(":", $d)); 
                    MT::S()->set_extra_header($___k, $___v); 
                } 
 
            } 
        } 
 
    } 
 
    /** 
     * Hacemos el el uso de los MTA's asignados 
     * 
     * @param unknown $_this 
     *            Jobs_Send_API 
     * @param unknown $disconnect 
     */ 
 
    private function _obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_(&$_this, &$disconnect) 
    { 
        if( !isset($_this->jobdetails["mta"]) )  
        { 
            $user =& GetUser(); 
            $mtas = array(  ); 
            $forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid); 
            $forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid); 
            $mtas["groups"] = $forced; 
            $mtas["groups_mail_settings"] = $forced_mail_settings; 
            $gnames = array(  ); 
            foreach( $mtas["groups"] as $key => $value )  
            { 
                $group_info = $this->group_info($key); 
                $gnames[$key] = $group_info[0]["name"]; 
            } 
            $mtas["group_names"] = $gnames; 
            $_this->jobdetails["mta"] = $mtas; 
        } 
 
        if( isset($_this->jobdetails["mta"]) )  
        { 
            $this->jobdetails = $_this->jobdetails; 
            $this->_obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($_this->jobdetails["mta"]); 
            if( $this->internal_email_rebuild === true )  
            { 
                $this->rebuild_mail($_this->Email_API); 
            } 
 
            $this->_obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($_this->jobdetails["mta"]); 
            $this->_obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($_this); 
            if( !isset($this->mta) || $this->mta == NULL )  
            { 
                $this->mta = $_this->jobdetails["mta"]; 
                $this->mta["sort"] = 2; 
                $this->mta["current_mta"] = false; 
                $this->mta["current_cycle_index"] = -1; 
            } 
 
            if( $this->log_send_counter % MTA_ASK_FOR_SETTINGS_AFTER == 0 )  
            { 
                $this->mta["objects"] = $this->_obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_(); 
            } 
 
            if( 0 < count($this->mta["objects"]) )  
            { 
                $switched_mta = $this->_obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_(); 
                if( $switched_mta )  
                { 
                    $this->mta["current_mta"] = $switched_mta; 
                    $this->mta["selection"] = array( "mta" => $switched_mta ); 
                    $this->_obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this); 
                    $this->log_send_counter++; 
                    $GLOBALS["cmta"] = $switched_mta["hostname"]; 
                    $this->mta["last_mta"] = $this->mta["current_mta"]; 
                } 
 
            } 
 
        } 
        else 
        { 
            $this->jobdetails = false; 
        } 
 
    } 
 
    private function _obfuscated_7FB4AFA9B08989819A99BBA7BA998F9184B99CB4B5A8B1_() 
    { 
        $mta_need_new_connection = (!isset($this->mta["last_mta"]) || $this->mta["last_mta"]["hostname"] != $this->mta["current_mta"]["hostname"] || $this->mta["last_mta"]["username"] != $this->mta["current_mta"]["username"] || $this->mta["last_mta"]["password"] != $this->mta["current_mta"]["password"] || $this->mta["last_mta"]["port"] != $this->mta["current_mta"]["port"] ? true : false); 
        return $mta_need_new_connection; 
    } 
 
    private function _obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this) 
    { 
        $this->email_api = $_this->Email_API; 
        if( $this->mta_need_new_connection() )  
        { 
            $_this->Email_API->_Close_Smtp_Connection(); 
        } 
 
        $switched_mta = $this->mta["current_mta"]; 
        if( $this->mta_need_new_connection() )  
        { 
            $switched_mta["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($switched_mta["hostname"]); 
            $_this->Email_API->SetSmtp(trim($switched_mta["hostname"]), trim($switched_mta["username"]), trim($switched_mta["password"]), trim($switched_mta["port"])); 
        } 
 
        $rebuild_mail = false; 
        if( isset($this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]]) )  
        { 
            $mail_settings = $this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]]; 
            if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) )  
            { 
                if( $_this->Email_API->FromAddress != trim($switched_mta["mail_from"]) )  
                { 
                    $_this->Email_API->Set("FromAddress", trim($switched_mta["mail_from"])); 
                    $GLOBALS["addon_mta_umf"] = true; 
                    $rebuild_mail = true; 
                } 
 
            } 
            else 
            { 
                $GLOBALS["addon_mta_umf"] = false; 
            } 
 
            if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) )  
            { 
                if( $_this->Email_API->FromName != trim($switched_mta["mail_from_name"]) && !empty($switched_mta["mail_from_name"]) )  
                { 
                    $_this->Email_API->Set("FromName", trim($switched_mta["mail_from_name"])); 
                    $GLOBALS["addon_mta_umf"] = true; 
                    $rebuild_mail = true; 
                } 
 
            } 
            else 
            { 
                $GLOBALS["addon_mta_umf"] = false; 
            } 
 
            if( $mail_settings["reply"] == true && !empty($switched_mta["mail_reply"]) )  
            { 
                if( $_this->Email_API->ReplyTo != trim($switched_mta["mail_reply"]) )  
                { 
                    $_this->Email_API->Set("ReplyTo", trim($switched_mta["mail_reply"])); 
                    $GLOBALS["addon_mta_umr"] = true; 
                    $rebuild_mail = true; 
                } 
 
            } 
            else 
            { 
                $GLOBALS["addon_mta_umr"] = false; 
            } 
 
            if( $mail_settings["bounce"] == true && !empty($switched_mta["mail_bounce"]) )  
            { 
                if( $_this->Email_API->BounceAddress != trim($switched_mta["mail_bounce"]) )  
                { 
                    $_this->Email_API->Set("BounceAddress", trim($switched_mta["mail_bounce"])); 
                    $GLOBALS["addon_mta_umb"] = true; 
                    $rebuild_mail = true; 
                } 
 
            } 
            else 
            { 
                $GLOBALS["addon_mta_umb"] = false; 
            } 
 
        } 
        else 
        { 
            $GLOBALS["addon_mta_umf"] = false; 
            $GLOBALS["addon_mta_umr"] = false; 
            $GLOBALS["addon_mta_umb"] = false; 
            $GLOBALS["addon_mta_umn"] = false; 
        } 
 
        if( $rebuild_mail == true || $this->internal_email_rebuild === true )  
        { 
            $this->rebuild_mail($_this->Email_API); 
        } 
 
    } 
 
    private function _obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($mail_object) 
    { 
        $log_path = IEM_ADDONS_PATH . "/mta/install/backup/maillog.txt"; 
        $status = ($mail_object->Error ? false : true); 
        $t = microtime() - $this->timer; 
        $data = (($status ? "[SUCCESS]" : "[FAILED]")) . "[" . $mail_object->_Recipients[0]["address"] . "]" . "[" . $t . " ms]" . (($status ? "" : "[" . $mail_object->Error . "]")); 
        file_put_contents($log_path, $data . PHP_EOL, FILE_APPEND); 
        $this->timer = microtime(); 
    } 
 
    public function iem_mta_schedule_details($details) 
    { 
        return $this->_obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details); 
    } 
 
    /** 
     * Este metodo muestra informacion del MTA en la pagina Schedule 
     *  
     * @param [array] $details 
     *            [detalles del MTA] 
     * @return [array] [description] 
     */ 
 
    private function _obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details) 
    { 
        $job_details = unserialize($details["jobdetails"]); 
        if( MT::S()->addon_enabled("spins") )  
        { 
            require_once(IEM_ADDONS_PATH . "/spins/api/spins.php"); 
            $_api = Spins_API::Singleton(); 
            if( method_exists($_api, "iem_schedule_info") )  
            { 
                $_api->iem_schedule_info($details); 
            } 
 
        } 
 
        $real_send_size = $this->_obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($details["jobid"]); 
        $job_details["SendSize"] = (isset($real_send_size["sendsize"]) ? $real_send_size["sendsize"] : $job_details["SendSize"]); 
        $ar = (isset($job_details["mta"]) && isset($job_details["mta"]["resend"]) ? $job_details["mta"]["resend"]["times"] : 0); 
        MT::S()->mail_info(GetLang("Addon_mta_automatic_resend"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_resend_100_success") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["resend"]["current_time"] . "</b> of <b>" . $ar . "</b>"))); 
        $ar = (isset($job_details["mta"]) && isset($job_details["mta"]["reschedule"]) ? $job_details["mta"]["reschedule"]["times"] : 0); 
        MT::S()->mail_info(GetLang("Addon_mta_automatic_reschedule"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_reschedule_infinity") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["reschedule"]["current_time"] . "</b> of <b>" . $ar . "</b>"))); 
        $ji = (isset($job_details["mta"]) && isset($job_details["mta"]["pmtajobid"]) ? $job_details["mta"]["pmtajobid"]["enabled"] : 0); 
        $pmtajobid = $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($details["jobid"]); 
        MT::S()->mail_info(GetLang("Addon_mta_pmta_jobid_add"), ($ji == 0 ? "No" : "Yes" . " <b>[</b>" . $pmtajobid . "<b>]</b>")); 
        MT::S()->mail_info(GetLang("Addon_mta_custom_headers"), "Yes"); 
        if( isset($job_details["mta"]) )  
        { 
            if( isset($job_details["mta"]["groups"]) )  
            { 
                if( count($job_details["mta"]["groups"]) == 0 )  
                { 
                    $job_details["mta"] = false; 
                } 
 
            } 
            else 
            { 
                $job_details["mta"] = false; 
            } 
 
        } 
 
        $this->template_system->Assign("mail_info", MT::S()->mail_info()); 
        $this->template_system->Assign("job_id", $details["jobid"]); 
        $this->template_system->Assign("job_details", $job_details); 
        $GLOBALS["MTA_SCHEDULE_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_title", true); 
        $GLOBALS["MTA_SCHEDULE_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_content", true); 
    } 
 
    public function iem_mta_stats_details_title() 
    { 
        if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true )  
        { 
            $style_datatable = $this->template_system->ParseTemplate("css", true); 
            if( defined("MTA_SHOW_INBOX_CONVERSIONS") && MTA_SHOW_INBOX_CONVERSIONS == true )  
            { 
                $this->conv = true; 
            } 
 
            $lp = "
<script type='text/javascript'>
\$(function(){
	\$(\"#conversions\").parent().parent().parent().prev().before('<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=\"DashboardPanel\"><tr><td class=\"PanelContent\" valign=\"top\" style=\"height:auto;\"><div id=\"GraphPanel\"><div class=\"PanelHeaderBox1 IndexPage_GettingStarted_Header\" style=\"padding:0px 0px 10px 5px;\"><div id=\"HomeStartTitle\">All Conversions</div></div><hr><div id=\"ct\"></div></div></td></tr></table>');
	\$.post( \"index.php?Page=Addons&Addon=mta&Action=interface&AJAX=1\",{do:\"conversions_preload\"}, function( data ) {
	 	\$(\"#ct\").html(data);
	});

});
</script>
<link rel=\"stylesheet\" href=\"addons/rbp/third/jq/css/jquery-ui.css\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"addons/rbp/third/datatables/css/jquery.dataTables.css\">
<script src=\"addons/installer/third/jquery/latest.js\"></script>
<script type=\"text/javascript\" language=\"javascript\" src=\"addons/rbp/third/datatables/js/jquery.dataTables.js\"></script>" . $style_datatable; 
            $GLOBALS["MTA_STATS_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_stats_info_title", true); 
        } 
        else 
        { 
            return NULL; 
        } 
 
    } 
 
    public function iem_mta_stats_details($statdetails) 
    { 
        return $this->_obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails); 
    } 
 
    /** 
     * Este metodo muestra informacion del MTA en la pagina Schedule 
     *  
     * @param [type] $details 
     *            [detalles del MTA] 
     * @return [type] [description] 
     */ 
 
    private function _obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails) 
    { 
        if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true )  
        { 
            $mta = $this->_obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statdetails["statid"]); 
            $opens = $this->_obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statdetails["statid"], true); 
            $clicks = $this->_obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statdetails["statid"]); 
            $open_percent = (0 < $opens ? number_format((int) ($opens + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0); 
            $click_percent = (0 < $clicks ? number_format((int) ($clicks + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0); 
            $this->template_system->Assign("opens", number_format($opens)); 
            $this->template_system->Assign("opens_percent", number_format($open_percent, 2)); 
            $this->template_system->Assign("clicks", number_format($clicks)); 
            $this->template_system->Assign("clicks_percent", number_format($click_percent, 2)); 
            $this->template_system->Assign("sending_time", (0 < $statdetails["finishtime"] ? $this->_obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($statdetails["finishtime"] - $statdetails["starttime"]) : GetLang("NotFinishedSending"))); 
            $this->template_system->Assign("mta", $mta); 
            if( $this->conv == true )  
            { 
                $c = $this->_obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statdetails["statid"]); 
            } 
 
            $mtas = ($mta == false || is_array($mta["group_names"]) && count($mta["group_names"]) == 0 ? "Default" : implode("<br>", $mta["group_names"])); 
            $this->template_system->Assign("stat_id", $statdetails["statid"]); 
            $GLOBALS["MTA_STATS_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_stats_info_content", true); 
        } 
        else 
        { 
            return NULL; 
        } 
 
    } 
 
    /** 
     * TimeDifference 
     * Returns the time difference in an easy format / unit system (eg how many seconds, minutes, hours etc). 
     * 
     * @param Int $timedifference 
     *            Time difference as an integer to transform. 
     *             
     * @return String Time difference plus units. 
     */ 
 
    public function _obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($timedifference) 
    { 
        if( $timedifference < 60 )  
        { 
            if( $timedifference == 1 )  
            { 
                $timechange = GetLang("TimeTaken_Seconds_One"); 
            } 
            else 
            { 
                $timechange = sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($timedifference, 0)); 
            } 
 
        } 
 
        if( 60 <= $timedifference && $timedifference < 3600 )  
        { 
            $num_mins = floor($timedifference / 60); 
            $secs = floor($timedifference % 60); 
            if( $num_mins == 1 )  
            { 
                $timechange = GetLang("TimeTaken_Minutes_One"); 
            } 
            else 
            { 
                $timechange = sprintf(GetLang("TimeTaken_Minutes_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($num_mins, 0)); 
            } 
 
            if( 0 < $secs )  
            { 
                $timechange .= ", " . sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($secs, 0)); 
            } 
 
        } 
 
        if( 3600 <= $timedifference )  
        { 
            $hours = floor($timedifference / 3600); 
            $mins = floor($timedifference % 3600) / 60; 
            if( $hours == 1 )  
            { 
                if( $mins == 0 )  
                { 
                    $timechange = GetLang("TimeTaken_Hours_One"); 
                } 
                else 
                { 
                    $timechange = sprintf(GetLang("TimeTaken_Hours_One_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0)); 
                } 
 
            } 
 
            if( 1 < $hours )  
            { 
                if( $mins == 0 )  
                { 
                    $timechange = sprintf(GetLang("TimeTaken_Hours_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0)); 
                } 
                else 
                { 
                    $timechange = sprintf(GetLang("TimeTaken_Hours_Many_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0)); 
                } 
 
            } 
 
        } 
 
        return $timechange; 
    } 
 
    /** 
     * FormatNumber 
     * Formats the number passed in according to language variables and returns the value. 
     * 
     * @param Int $number 
     *            Number to format 
     * @param Int $decimalplaces 
     *            Number of decimal places to format to 
     *             
     * @see GetLang 
     * 
     * @return String The number formatted 
     */ 
 
    public function _obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($number = 0, $decimalplaces = 0) 
    { 
        return number_format((double) $number, $decimalplaces, GetLang("NumberFormat_Dec"), GetLang("NumberFormat_Thousands")); 
    } 
 
    public function _obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statid) 
    { 
        $row = $this->db->Fetch($this->db->Query("SELECT COUNT(conversion_id) as total FROM " . SENDSTUDIO_TABLEPREFIX . "conversions WHERE c_statid='" . $statid . "'")); 
        return (int) $row["total"]; 
    } 
 
    public function _obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statid, $unique = false) 
    { 
        $row = $this->db->Fetch($this->db->Query("SELECT COUNT(DISTINCT subscriberid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_emailopens WHERE statid='" . $statid . "'")); 
        return (int) $row["total"]; 
    } 
 
    public function _obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statid) 
    { 
        $row = $this->db->Fetch($this->db->Query("SELECT COUNT(clickid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_linkclicks WHERE statid='" . $statid . "'")); 
        return (int) $row["total"]; 
    } 
 
    public function _obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statid = 0) 
    { 
        $result = $this->db->Query("SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'"); 
        $row = $this->db->Fetch($result); 
        if( !$row )  
        { 
            return false; 
        } 
 
        $result = $this->db->Query("SELECT jobdetails FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $row["jobid"] . "'"); 
        $row = $this->db->Fetch($result); 
        if( !$row )  
        { 
            return false; 
        } 
 
        $job_details = unserialize($row["jobdetails"]); 
        if( !isset($job_details["mta"]) )  
        { 
            return false; 
        } 
 
        return $job_details["mta"]; 
    } 
 
    public function _obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid = 0) 
    { 
        $d = str_replace(".", "_", MT::S()->local_domain()); 
        return (string) $d . "-" . $jobid; 
    } 
 
    public function _obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($jobid = 0) 
    { 
        $jobid = (int) $jobid; 
        if( $jobid <= 0 )  
        { 
            return array(  ); 
        } 
 
        $query = "SELECT COUNT(statid) AS statcount, SUM(htmlrecipients + textrecipients + multipartrecipients) AS totalsent, SUM(sendsize) AS sendsize FROM " . SENDSTUDIO_TABLEPREFIX . "jobs j, " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters n WHERE j.jobid='" . $jobid . "' AND n.queueid=j.queueid"; 
        $result = $this->db->Query($query); 
        $row = $this->db->Fetch($result); 
        if( 1 < $row["statcount"] )  
        { 
            $row["sendsize"] = (int) $row["sendsize"] / $row["statcount"]; 
        } 
 
        return array( "totalsent" => $row["totalsent"], "sendsize" => $row["sendsize"] ); 
    } 
 
    public function upgrade() 
    { 
        $jobs = $this->_obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_(); 
        foreach( $jobs as $key => $value )  
        { 
            $jobdetails = unserialize($value["jobdetails"]); 
            if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["mtas_uid"]) )  
            { 
                $new_details = $this->_obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails); 
                $jobdetails["mta"] = $new_details; 
                $q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "jobs SET jobdetails='" . $this->db->Quote(serialize($jobdetails)) . "'"; 
                $result = $this->db->Query($q); 
            } 
            else 
            { 
                if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["groups"]) )  
                { 
                } 
 
            } 
 
        } 
    } 
 
    /** 
     * Upgrade from 3.2 to 3.4 
     */ 
 
    public function _obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails = array(  )) 
    { 
        $mtas = array(  ); 
        $groups = array(  ); 
        $mtas["groups_mail_settings"] = array(  ); 
        $mtas["group_names"] = array(  ); 
        foreach( $jobdetails["mta"]["data"] as $group_key => $group )  
        { 
            $groups[$group_key] = array(  ); 
            $mtas["groups_mail_settings"][$group_key] = array( "from" => true, "reply" => true, "bounce" => true ); 
            $mtas["group_names"][$group_key] = $group["group"]["name"]; 
            foreach( $group["mtas"] as $a => $b )  
            { 
                $groups[$group_key][] = $b; 
            } 
        } 
        $mtas["groups"] = $groups; 
        return $mtas; 
    } 
 
    public function _obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_() 
    { 
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send'"; 
        $result = $this->db->Query($query); 
        $data = array(  ); 
        while( $row = $this->db->Fetch($result) )  
        { 
            $data[] = $row; 
        } 
        return $data; 
    } 
 
    public function _obfuscated_7F99AAA7A29A8B9DB4A984B7A59795AFB384B0AB889AA1_($key = "mta_b", $type = "start") 
    { 
        if( !isset($GLOBALS["bench_" . $key]) && $type != "start" )  
        { 
            return false; 
        } 
 
        if( $type == "start" )  
        { 
            $GLOBALS["bench_" . $key] = array( "start" => time(), "calls" => 0 ); 
        } 
        else 
        { 
            if( $type == "call" )  
            { 
                $GLOBALS["bench_" . $key]["calls"]++; 
            } 
            else 
            { 
                if( $type == "end" )  
                { 
                    $GLOBALS["bench_" . $key]["end"] = time(); 
                    $GLOBALS["bench_" . $key]["time"] = $GLOBALS["bench_" . $key]["end"] - $GLOBALS["bench_" . $key]["start"]; 
                    return $GLOBALS["bench_" . $key]; 
                } 
 
            } 
 
        } 
 
    } 
 
    private function _obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($str) 
    { 
        $str = str_replace("
", "
", $str); 
        $str = str_replace("
", "
", $str); 
        $str = str_replace("
", $this->LE, $str); 
        return $str; 
    } 
 
    /** 
     * Prueba del SMTP 
     *  
     * @param array $data 
     *            [array] 
     * @param boolean $mta 
     *            [false] 
     * @return [type] [description] 
     */ 
 
    public function _obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($data = array(  ), $mta = false) 
    { 
        $user = GetUser(); 
        $data["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($data["hostname"]); 
        $user_email = $user->Get("emailaddress"); 
        $sf = new SendStudio_Functions(); 
        $email_test = (empty($data["mail_test"]) ? MTA_DEFAULT_TEST_MAIL : $data["mail_test"]); 
        $subject = GetLang("TestSendingSubject"); 
        $text = GetLang("TestSendingEmail"); 
        $email_api = $sf->GetApi("Email"); 
        $smtp = false; 
        if( !empty($data["hostname"]) )  
        { 
            $email_api->Set("SMTPServer", trim($data["hostname"])); 
            $smtp = true; 
        } 
 
        if( !empty($data["username"]) )  
        { 
            $email_api->Set("SMTPUsername", trim($data["username"])); 
        } 
 
        if( !empty($data["password"]) )  
        { 
            $email_api->Set("SMTPPassword", trim($data["password"])); 
        } 
 
        if( !empty($data["port"]) )  
        { 
            $email_api->Set("SMTPPort", urldecode($data["port"])); 
        } 
 
        $email_api->Set("Subject", $subject); 
        $email_api->Set("CharSet", SENDSTUDIO_CHARSET); 
        $sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">"); 
        $fromaddress = (!empty($data["mail_from"]) ? $data["mail_from"] : $user_email); 
        $fromname = $user->Get("fullname"); 
        $fn = explode($sep, $fromaddress); 
        if( 1 < count($fn) )  
        { 
            $fromname = trim($fn[0]); 
            $fromaddress = trim($fn[1]); 
        } 
 
        $email_api->Set("FromAddress", $fromaddress); 
        $email_api->Set("ReplyTo", (!empty($data["mail_reply"]) ? $data["mail_reply"] : $user_email)); 
        $email_api->Set("BounceAddress", (!empty($data["mail_bounce"]) ? $data["mail_bounce"] : $user_email)); 
        $email_api->Set("FromName", $fromname); 
        $email_api->Set("Multipart", true); 
        $email_api->AddBody("text", $text . "
Format: Text"); 
        $email_api->AddBody("html", $text . " <BR> Format: HTML"); 
        $email_api->AddRecipient($email_test, "", "m"); 
        $cn = explode("@", $email_api->FromAddress); 
        $send_result = $email_api->Send(); 
        if( $mta )  
        { 
            $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta, 1, (isset($send_result["success"]) && 0 < $send_result["success"] ? "sent" : "failed"), time()); 
        } 
 
        $result = array(  ); 
        $result["success"] = $send_result["success"]; 
        $result["mail_test"] = $email_test; 
        if( isset($send_result["success"]) && 0 < $send_result["success"] )  
        { 
            $result["msg"] = vsprintf(GetLang("TestEmailSent"), $email_test); 
        } 
        else 
        { 
            if( $smtp )  
            { 
                $failure = array_shift($send_result["fail"]); 
                $result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, htmlspecialchars($failure[1], ENT_QUOTES, SENDSTUDIO_CHARSET)); 
            } 
            else 
            { 
                $result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, GetLang("ProblemWithLocalMailServer")); 
            } 
 
        } 
 
        return $result; 
    } 
 
    public function GUI($do = "nothing", $params = array(  ), $tpl = NULL) 
    { 
        $this->url_params = $params; 
        switch( $do )  
        { 
            case "conversions_preload": 
                $tpl->ParseTemplate("conversions_preload"); 
                break; 
            case "conversion_load": 
                $table = SENDSTUDIO_TABLEPREFIX . "conversions"; 
                $primaryKey = "conversion_id"; 
                $columns = array( array( "db" => "date", "dt" => 0, "process" => " FROM_UNIXTIME(date) as date" ), array( "db" => "c_subscriberid", "dt" => 1, "process" => " (SELECT emailaddress from " . SENDSTUDIO_TABLEPREFIX . "list_subscribers WHERE `subscriberid`=c_subscriberid LIMIT 1 ) as c_subscriberid " ), array( "db" => "lead_id", "dt" => 2 ), array( "db" => "affid", "dt" => 3 ), array( "db" => "campid", "dt" => 4 ), array( "db" => "oid", "dt" => 5 ), array( "db" => "cid", "dt" => 6 ), array( "db" => "price", "dt" => 7 ), array( "db" => "c_listid", "dt" => 8, "process" => "(SELECT name FROM " . SENDSTUDIO_TABLEPREFIX . "lists WHERE listid=c_listid LIMIT 1) as c_listid" ), array( "db" => "c_statid", "dt" => 9 ), array( "db" => "subid", "dt" => 10, "process" => "(SELECT data from email_subscribers_data WHERE fieldid=(SELECT fieldid FROM email_customfields WHERE name=\"subid\" LIMIT 1) AND subscriberid=c_subscriberid) as subid" ) ); 
                $sql_details = array( "user" => SENDSTUDIO_DATABASE_USER, "pass" => SENDSTUDIO_DATABASE_PASS, "db" => SENDSTUDIO_DATABASE_NAME, "host" => SENDSTUDIO_DATABASE_HOST ); 
                echo json_encode(_obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_::_obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($_POST, $sql_details, $table, $primaryKey, $columns)); 
                break; 
            default: 
                break; 
        } 
    } 
 
    /** 
     * Este es todo el handler para las peticiones 
     *  
     * @param [type] $n 
     *            [tipo de proceso] 
     * @return [type] [Template] 
     */ 
 
    public function cf($n) 
    { 
        switch( $n )  
        { 
            case "manager": 
                $data = $this->group_info(); 
                $data_json = json_encode($data); 
                $hc = count($data) * 70; 
                $hc = (!$hc ? 100 : $hc); 
                $hc = $hc + 70; 
                $this->template_system->Assign("groups", $data, true); 
                $this->template_system->Assign("height_count", $hc, true); 
                $this->template_system->Assign("data_json", $data_json); 
                $this->template_system->Assign("FlashMessages", GetFlashMessages(), false); 
                $this->template_system->ParseTemplate("main"); 
                break; 
            case "group": 
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0); 
                $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                if( $id != 0 && $f["exist"] == false )  
                { 
                    FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=add_group"); 
                } 
 
                $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, false, false, false, false, true, true); 
                $usergroups = $this->_obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_(); 
                foreach( $usergroups as $k => $v )  
                { 
                    foreach( $v["users"] as $_k => $_v )  
                    { 
                        $usergroups[$k]["users"][$_k]["mta_user_in_group"] = (in_array($_v["userid"], $f["data"]["users"]) ? 1 : 0); 
                    } 
                } 
                $mta_stats = array(  ); 
                foreach( $mtas as $k => $v )  
                { 
                } 
                $gc = count($mtas); 
                $this->template_system->Assign("group_users", $group_users, true); 
                $this->template_system->Assign("mtas", $mtas, true); 
                $this->template_system->Assign("gcmtas", $gc, true); 
                $this->template_system->Assign("usergroups", $usergroups, true); 
                $this->template_system->Assign("group_raw", $f["raw"], true); 
                $this->template_system->Assign("group", $f["data"], true); 
                $this->template_system->Assign("FlashMessages", GetFlashMessages(), false); 
                $this->template_system->ParseTemplate("group"); 
                break; 
            case "ajax": 
                if( $_SERVER["REQUEST_METHOD"] == "POST" )  
                { 
                    $action = $_POST["do"]; 
                    $uid = (!empty($_POST["uid"]) ? $_POST["uid"] : 0); 
                    $uid = (int) $uid; 
                    switch( $action )  
                    { 
                        case "ajax_bulk_test_load_form": 
                            $this->template_system->assign("ajax", 1); 
                            $this->template_system->assign("do", "display_form"); 
                            $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($uid, true); 
                            $mta_uids = array(  ); 
                            foreach( $mtas as $key => $value )  
                            { 
                                $mta_uids[] = $value["uid"]; 
                            } 
                            $this->template_system->assign("mtas", $mtas); 
                            $form = $this->template_system->ParseTemplate("test_all_mta_accounts", true); 
                            echo json_encode(array( "table" => $form, "uids" => $mta_uids )); 
                            break; 
                        case "mta_test_simple": 
                            $test_send_to = (!empty($_POST["test_send_to"]) ? $_POST["test_send_to"] : "[email protected]"); 
                            MT_TOOLS::S()->flush_session(); 
                            $mta_details = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid); 
                            $mta_details["data"]["mail_test"] = $test_send_to; 
                            $result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($mta_details["data"]); 
                            if( $result["success"] )  
                            { 
                                $message = "<span style='color:green;font-weight:bold;'>SUCCESS: </span><span style='color:#749C11;'>Email sent to " . $test_send_to . "</span>"; 
                            } 
                            else 
                            { 
                                $message = "<span style='color:red;font-weight:bold;'>FAILED:</span> <span style='color:#DB4900;'>" . $result["msg"] . "</span>"; 
                            } 
 
                            echo json_encode(array( "result" => $result["success"], "message" => $message )); 
                            break; 
                        case "header_group_list": 
                            $this->template_system->Assign("do", "h_groups_list"); 
                            $this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(), true); 
                            $this->template_system->ParseTemplate("headers"); 
                            break; 
                        case "header_group_values": 
                            if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )  
                            { 
                                $data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid); 
                            } 
                            else 
                            { 
                                $data = array(  ); 
                                $data["name"] = "Header-" . time(); 
                                $data["status"] = 1; 
                                $data["rotation"] = 0; 
                                $data["headers"] = array( array( "name" => "Test", "value" => "Test-Value" ) ); 
                            } 
 
                            $this->template_system->Assign("do", "h_values"); 
                            $this->template_system->Assign("data", $data, true); 
                            $this->template_system->ParseTemplate("headers"); 
                            break; 
                        case "header_group_delete": 
                            if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )  
                            { 
                                $this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid); 
                            } 
 
                            break; 
                        case "header_group_mass": 
                            $hdo = (isset($_POST["headers_action"]) ? $_POST["headers_action"] : "none"); 
                            $uids = (isset($_POST["header_uids"]) ? $_POST["header_uids"] : array(  )); 
                            $uids = (is_array($uids) ? $uids : array(  )); 
                            foreach( $uids as $key => $value )  
                            { 
                                if( !$this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_((int) $value) )  
                                { 
                                    continue; 
                                } 
 
                                switch( $hdo )  
                                { 
                                    case "delete": 
                                        $this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($value); 
                                        break; 
                                    case "active": 
                                        $this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, true); 
                                        break; 
                                    case "inactive": 
                                        $this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, false); 
                                        break; 
                                    case "rotation_on": 
                                        $this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, true); 
                                        break; 
                                    case "rotation_off": 
                                        $this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, false); 
                                        break; 
                                    default: 
                                        break; 
                                } 
                            } 
                            break; 
                        case "header_group_save": 
                            $data = array(  ); 
                            $rd = (isset($_POST["name"]) && is_array($_POST["name"]) ? $_POST["name"] : array(  )); 
                            $vd = (isset($_POST["value"]) && is_array($_POST["value"]) ? $_POST["value"] : array(  )); 
                            foreach( $rd as $key => $value )  
                            { 
                                if( trim($value) == "" )  
                                { 
                                    continue; 
                                } 
 
                                $data[] = array( "name" => $value, "value" => $vd[$key] ); 
                            } 
                            $name = (isset($_POST["header_name"]) ? $_POST["header_name"] : "Header-NoName"); 
                            $status = (isset($_POST["status"]) ? $_POST["status"] : 1); 
                            $rotation = (isset($_POST["rotation"]) ? $_POST["rotation"] : 0); 
                            if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )  
                            { 
                                $this->_obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid, $name, $data, $status, $rotation); 
                            } 
                            else 
                            { 
                                $this->_obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name, $data, $status, $rotation); 
                            } 
 
                            break; 
                        case "header_group_change_status": 
                            $value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0)); 
                            $this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid, ($value ? true : false)); 
                            break; 
                        case "header_group_change_rotation": 
                            $value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0)); 
                            $this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid, ($value ? true : false)); 
                            break; 
                        case "mta_stat": 
                            $mta = (int) ((!empty($_POST["mta"]) ? $_POST["mta"] : 0)); 
                            $data = $this->_obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta, 20, "daily", "previous", time()); 
                            echo json_encode($data); 
                            break; 
                        case "mta_test": 
                            $mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid); 
                            if( $mta["exist"] )  
                            { 
                                $result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_(array_merge($mta["data"], $_POST), $mta["data"]["uid"]); 
                                echo json_encode($result); 
                            } 
                            else 
                            { 
                                echo json_encode(array( "msg" => "mta not found" )); 
                            } 
 
                            break; 
                        case "mta_modify": 
                            $mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid); 
                            if( $mta["exist"] )  
                            { 
                                $result = $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($_POST); 
                                echo json_encode(array( "msg" => ($result ? "Saved" : "Failed") )); 
                            } 
                            else 
                            { 
                                echo json_encode(array( "msg" => "mta not found" )); 
                            } 
 
                            break; 
                        default: 
                            echo json_encode(array( "msg" => "invalid request" )); 
                            break; 
                    } 
                } 
                else 
                { 
                    $action = $_GET["do"]; 
                    switch( $action )  
                    { 
                        case "mta_blacklist": 
                            $mta_uid = (int) ((!empty($_GET["id"]) ? $_GET["id"] : 0)); 
                            $mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($mta_uid); 
                            if( $mta["exist"] )  
                            { 
                                $bl = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid, time(), "daily"); 
                                $this->template_system->Assign("mta", $mta, true); 
                                $this->template_system->Assign("dnsbl", $bl, true); 
                                $this->template_system->ParseTemplate("mta_blacklist"); 
                            } 
 
                            break; 
                        default: 
                            echo json_encode(array( "msg" => "invalid request" )); 
                            break; 
                    } 
                } 
 
            case "mass-mta": 
                $group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0); 
                $action = (!empty($_POST["mtas_action"]) ? $_POST["mtas_action"] : "none"); 
                $valid_actions = array( "none", "delete", "active", "inactive" ); 
                $mtas = (!empty($_POST["mass_mta"]) ? $_POST["mass_mta"] : array(  )); 
                if( !in_array($action, $valid_actions) || $action == "none" )  
                { 
                    FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                } 
                else 
                { 
                    $affected = 0; 
                    if( $action == "delete" )  
                    { 
                        $affected = $this->_obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($mtas); 
                        FlashMessage(sprintf(GetLang("Addon_mta_mass_delete_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                    } 
                    else 
                    { 
                        if( $action == "active" )  
                        { 
                            $affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas); 
                            FlashMessage(sprintf(GetLang("Addon_mta_mass_active_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                        } 
                        else 
                        { 
                            if( $action == "inactive" )  
                            { 
                                $affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas); 
                                FlashMessage(sprintf(GetLang("Addon_mta_mass_inactive_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                            } 
 
                        } 
 
                    } 
 
                } 
 
                break; 
            case "handle-mta": 
                $group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0); 
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0); 
                $group = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($group_id, true); 
                $f = $this->mta_details($group_id, $id, true); 
                if( $id != 0 && $f["exist"] == false )  
                { 
                    FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                } 
 
                if( $_SERVER["REQUEST_METHOD"] == "POST" )  
                { 
                    if( isset($_POST["test_smtp"]) )  
                    { 
                        if( isset($_POST["uid"]) )  
                        { 
                            $mta = (int) $_POST["uid"]; 
                        } 
                        else 
                        { 
                            $mta = false; 
                        } 
 
                        $result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($_POST, $mta); 
                        FlashMessage($result["msg"], (!$result["success"] ? SS_FLASH_MSG_ERROR : SS_FLASH_MSG_SUCCESS), NULL); 
                        $group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]); 
                        $this->template_system->assign("do", ($f["exist"] == false ? "add" : "update")); 
                        $this->template_system->assign("group", $group["data"], true); 
                        $this->template_system->assign("value", $_POST, true); 
                        $this->template_system->Assign("FlashMessages", GetFlashMessages()); 
                        $this->template_system->ParseTemplate("mta_add_mta"); 
                    } 
                    else 
                    { 
                        if( $_POST["mta_do"] == "update" )  
                        { 
                            $result = $this->_obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($_POST); 
                            if( $result )  
                            { 
                                FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                            } 
                            else 
                            { 
                                FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                            } 
 
                        } 
                        else 
                        { 
                            if( $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($_POST) )  
                            { 
                                FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                            } 
                            else 
                            { 
                                FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                            } 
 
                        } 
 
                    } 
 
                } 
                else 
                { 
                    $group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]); 
                    $this->template_system->assign("do", ($f["exist"] == false ? "add" : "update")); 
                    $this->template_system->assign("group", $group["data"], true); 
                    $this->template_system->assign("value", $f["data"], true); 
                    $this->template_system->Assign("FlashMessages", GetFlashMessages(), false); 
                    $this->template_system->ParseTemplate("mta_add_mta"); 
                } 
 
                break; 
            case "delete-mta": 
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0); 
                $group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0); 
                $f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id); 
                if( $f["exist"] == false )  
                { 
                    FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                } 
                else 
                { 
                    $this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id); 
                    FlashMessage(GetLang("Addon_mta_mta_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                } 
 
                break; 
            case "add-group": 
                if( $_SERVER["REQUEST_METHOD"] == "POST" )  
                { 
                    if( $_POST["mta_group_do"] == "update" )  
                    { 
                        $this->_obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($_POST); 
                        $na = $this->db->NumAffected(); 
                        FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                    } 
                    else 
                    { 
                        $ng = $this->_obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($_POST); 
                        if( $ng )  
                        { 
                            FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $ng); 
                        } 
                        else 
                        { 
                            FlashMessage(GetLang("Addon_mta_group_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                        } 
 
                    } 
 
                } 
                else 
                { 
                    $id = (!empty($_GET["id"]) ? $_GET["id"] : 0); 
                    $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                    if( $id != 0 && $f["exist"] == false )  
                    { 
                        FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager"); 
                    } 
 
                    $this->template_system->assign("do", ($f["exist"] == false ? "add" : "update")); 
                    $this->template_system->assign("value", $f["data"], true); 
                    $this->template_system->ParseTemplate("mta_add_group"); 
                } 
 
                break; 
            case "export-group": 
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0); 
                $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                if( $id != 0 && $f["exist"] == false )  
                { 
                    FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                } 
 
                $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id); 
                $this->template_system->Assign("mtas", $mtas, true); 
                $this->template_system->Assign("groupid", $id, true); 
                $this->template_system->ParseTemplate("group_export"); 
                break; 
            case "delete-group": 
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0); 
                $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                if( $id != 0 && $f["exist"] == false )  
                { 
                    FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager"); 
                } 
                else 
                { 
                    $this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id); 
                    FlashMessage(GetLang("Addon_mta_group_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=Manager"); 
                } 
 
                break; 
            case "add-mta-bulk": 
                if( $_SERVER["REQUEST_METHOD"] == "POST" )  
                { 
                    if( !empty($_POST["bulk"]) && isset($_POST["mta_group_uid"]) )  
                    { 
                        $group = (int) $_POST["mta_group_uid"]; 
                        $data = trim($_POST["bulk"]); 
                        $mtas = explode(PHP_EOL, $data); 
                        foreach( $mtas as $k => $v )  
                        { 
                            $mta = explode("|", trim($v)); 
                            $mta_data = array( "hostname" => trim($mta[0]), "username" => trim($mta[1]), "password" => trim($mta[2]), "port" => (empty($mta[3]) ? ADDON_MTA_DEFAULT_SMTP_PORT : $mta[3]), "name" => (empty($mta[4]) ? $mta[0] : $mta[4]), "mail_from" => $mta[5], "mail_reply" => $mta[6], "mail_bounce" => $mta[7], "mail_test" => $mta[8], "mta_group_uid" => $group ); 
                            $result = $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($mta_data); 
                        } 
                        FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group); 
                    } 
                    else 
                    { 
                        if( isset($_POST["mta_group_uid"]) )  
                        { 
                            $group = (int) $_POST["mta_group_uid"]; 
                            FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group); 
                        } 
                        else 
                        { 
                            FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                        } 
 
                    } 
 
                } 
 
                break; 
            case "process": 
                if( $_SERVER["REQUEST_METHOD"] == "POST" )  
                { 
                    $action = (!empty($_POST["do"]) ? $_POST["do"] : "none"); 
                    $data = (!empty($_POST["data"]) ? $_POST["data"] : array(  )); 
                    switch( $action )  
                    { 
                        case "mass_group": 
                            $action = (!empty($data["action"]) ? $data["action"] : "none"); 
                            $valid_actions = array( "none", "delete", "active", "inactive" ); 
                            $groups = (!empty($data["groups"]) ? $data["groups"] : array(  )); 
                            if( !in_array($action, $valid_actions) || $action == "none" )  
                            { 
                                FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id); 
                            } 
                            else 
                            { 
                                $affected = 0; 
                                $mtas = array(  ); 
                                foreach( $groups as $key => $value )  
                                { 
                                    $m = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($value, true); 
                                    foreach( $m as $akey => $avalue )  
                                    { 
                                        $mtas[] = $avalue["uid"]; 
                                    } 
                                } 
                                if( $action == "delete" )  
                                { 
                                    foreach( $groups as $key => $id )  
                                    { 
                                        $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                                        if( $id != 0 && $f["exist"] == false )  
                                        { 
                                        } 
                                        else 
                                        { 
                                            $this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id); 
                                        } 
 
                                    } 
                                } 
                                else 
                                { 
                                    if( $action == "active" )  
                                    { 
                                        $affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas); 
                                    } 
                                    else 
                                    { 
                                        if( $action == "inactive" )  
                                        { 
                                            $affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas); 
                                        } 
 
                                    } 
 
                                } 
 
                            } 
 
                            FlashMessage(GetLang("Addon_mta_group_modified"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                            break; 
                        case "group_assign_user": 
                            $id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0); 
                            $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                            if( $f["exist"] == false )  
                            { 
                                FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                            } 
                            else 
                            { 
                                $users = (empty($data["users"]) ? array(  ) : $data["users"]); 
                                $f = ((int) empty($data["force"]) ? 0 : $data["force"]); 
                                $fms = ((int) empty($data["force_ms"]) ? 0 : $data["force_ms"]); 
                                $users = (empty($data["users"]) ? array(  ) : $data["users"]); 
                                $this->_obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($id, $users, $f, $fms); 
                                FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id); 
                            } 
 
                            break; 
                        case "group_settings": 
                            $id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0); 
                            $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true); 
                            if( $f["exist"] == false )  
                            { 
                                FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager"); 
                            } 
                            else 
                            { 
                                $force = (int) ((!empty($data["force"]) ? $data["force"] : 0)); 
                                $force_from = (int) ((!empty($data["force_from"]) ? $data["force_from"] : 0)); 
                                $force_reply = (int) ((!empty($data["force_reply"]) ? $data["force_reply"] : 0)); 
                                $force_bounce = (int) ((!empty($data["force_bounce"]) ? $data["force_bounce"] : 0)); 
                                $result = MT::S()->db->UpdateQuery("addon_mta_group", array( "s_force" => $force, "s_force_from" => $force_from, "s_force_reply" => $force_reply, "s_force_bounce" => $force_bounce ), "`uid`=" . $id); 
                                FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id); 
                            } 
 
                            break; 
                        default: 
                            break; 
                    } 
                } 
                else 
                { 
                    $action = $_GET["do"]; 
                    break; 
                } 
 
            case "sending-errors": 
                $jobid = (!empty($_GET["jobid"]) ? $_GET["jobid"] : 0); 
                $sending_errors = $this->sending_errors($jobid); 
                $this->template_system->assign("data", $sending_errors, true); 
                $this->template_system->ParseTemplate("sending_errors"); 
                break; 
            default: 
                break; 
        } 
        break; 
    } 
 
    public function _obfuscated_7FA29589998C8EBDB29B9AAFAFA58FB38EA0B79E92B791_($host = "127.0.0.1", $type = "A", $ns = "8.8.8.8") 
    { 
        $nss = array( "8.8.8.8", "8.8.4.4", "208.67.222.222", "209.244.0.3", "4.2.2.4", "204.97.212.10", "24.244.175.2" ); 
        $nss = ($ns ? (is_array($ns) ? $ns : array( $ns )) : $nss); 
        $data = false; 
        foreach( $nss as $key => $value )  
        { 
            $query = new _obfuscated_7FAE8BAA81A5B083A7ABBFA48BA6B69AB6B4A3A3B58E81_($value, 53, 3, true, false, false); 
            $result = $query->Query($host, $type); 
            $result_count = $result->count; 
            for( $a = 0; $a < $result_count; $a++ )  
            { 
                if( $result->results[$a]->typeid == $type )  
                { 
                    $data = $result->results[$a]->data; 
                    return $data; 
                } 
 
            } 
            unset($query); 
        } 
        return $data; 
    } 
 
    public function _obfuscated_7F92AE8F9EAABBB3B794878CB790878BA783A3B69999B1_() 
    { 
        $socket = @fsockopen("127.0.0.1", 8080, $errno, $errstr, $timeout); 
        fwrite($socket, pack("C3", 5, 1, 0)); 
        $proxy_status = fread($socket, 8192); 
        if( $proxy_status == pack("C2", 5, 0) )  
        { 
            $proxy_status = 2; 
            fwrite($socket, pack("C5", 5, 1, 0, 3, strlen($server)) . $server . pack("n", $port)); 
            $proxy_buffer = fread($socket, 8192); 
            if( $proxy_buffer == pack("C10", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0) )  
            { 
                $proxy_status = 3; 
                $proxy_ready_to_connect = ($proxy_status == 3 ? true : false); 
                if( !$proxy_ready_to_connect )  
                { 
                    $this->ErrorCode = 1; 
                    $this->Error = sprintf(GetLang("UnableToConnectToEmailServer"), $errstr . "(" . $errno . ")"); 
                    return false; 
                } 
 
            } 
            else 
            { 
                $proxy_status = -3; 
                $this->ErrorCode = 3; 
                $this->Error = "The SOCKS server failed to connect to the specificed host and port. ( " . $server . ":" . $port . " )"; 
                fclose($socket); 
                $this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error); 
                return false; 
            } 
 
        } 
        else 
        { 
            $proxy_status = -2; 
            $this->ErrorCode = 2; 
            $this->Error = "Cannot connect to Proxy"; 
            fclose($socket); 
            $this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error); 
            return false; 
        } 
 
    } 
 
} 
 
function ___d($data) 
{ 
} 
 
function kio_general_mta() 
{ 
    $p = _obfuscated_0D373C03163331133B3C25073F340B17142208120B1322_(); 
    return $p["generalk"]; 
} 
 
 
 ?>

Did this file decode correctly?

Original Code

<?php 
if( !defined("IEM_ADDONS_PATH") ) 
{
    $l = "[\$Id: mta.php 3185 2017-11-17 07:46:19Z maborak \$]";
    exit( "denied: " . $l );
}

require_once(IEM_ADDONS_PATH . "/installer/api/installer.php");
require_once(IEM_ADDONS_PATH . "/mta/config/config.php");
if( MT::S()->addon_enabled("mta") ) 
{
    $installer = Installer_API::Singleton()->apply_patches("mta");
}


class _obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_
{
    /**
     * Create the data output array for the DataTables rows
     *
     * @param array $columns
     *            Column information array
     * @param array $data
     *            Data from the SQL get
     * @return array Formatted data in a row based format
     */

    public static function _obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data)
    {
        $out = array(  );
        $i = 0;
        for( $ien = count($data); $i < $ien; $i++ ) 
        {
            $row = array(  );
            $j = 0;
            for( $jen = count($columns); $j < $jen; $j++ ) 
            {
                $column = $columns[$j];
                if( isset($column["formatter"]) ) 
                {
                    $row[$column["dt"]] = $column["formatter"]($data[$i][$column["db"]], $data[$i]);
                }
                else
                {
                    $row[$column["dt"]] = $data[$i][$columns[$j]["db"]];
                }

            }
            $out[] = $row;
        }
        return $out;
    }

    /**
     * Database connection
     *
     * Obtain an PHP PDO connection from a connection details array
     *
     * @param array $conn
     *            SQL connection details. The array should have
     *            the following properties
     *            * host - host name
     *            * db - database name
     *            * user - user name
     *            * pass - user password
     * @return resource PDO connection
     */

    public static function db($conn)
    {
        if( is_array($conn) ) 
        {
            return self::_obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($conn);
        }

        return $conn;
    }

    /**
     * Paging
     *
     * Construct the LIMIT clause for server-side processing SQL query
     *
     * @param array $request
     *            Data sent to server by DataTables
     * @param array $columns
     *            Column information array
     * @return string SQL limit clause
     */

    public static function _obfuscated_7FA69FB1A39AB493BB9CBF9384AEC08B8886B288BF9F81_($request, $columns)
    {
        $limit = "";
        if( isset($request["start"]) && $request["length"] != -1 ) 
        {
            $limit = "LIMIT " . intval($request["start"]) . ", " . intval($request["length"]);
        }

        return $limit;
    }

    /**
     * Ordering
     *
     * Construct the ORDER BY clause for server-side processing SQL query
     *
     * @param array $request
     *            Data sent to server by DataTables
     * @param array $columns
     *            Column information array
     * @return string SQL order by clause
     */

    public static function _obfuscated_7FBA8893ADBA9E94A59AA4AE95A1BEB4888A868CB689B1_($request, $columns)
    {
        $order = "";
        if( isset($request["order"]) && count($request["order"]) ) 
        {
            $orderBy = array(  );
            $dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt");
            $i = 0;
            for( $ien = count($request["order"]); $i < $ien; $i++ ) 
            {
                $columnIdx = intval($request["order"][$i]["column"]);
                $requestColumn = $request["columns"][$columnIdx];
                $columnIdx = array_search($requestColumn["data"], $dtColumns);
                $column = $columns[$columnIdx];
                if( $requestColumn["orderable"] == "true" ) 
                {
                    $dir = ($request["order"][$i]["dir"] === "asc" ? "ASC" : "DESC");
                    $orderBy[] = "`" . $column["db"] . "` " . $dir;
                }

            }
            $order = "ORDER BY " . implode(", ", $orderBy);
        }

        return $order;
    }

    /**
     * Searching / Filtering
     *
     * Construct the WHERE clause for server-side processing SQL query.
     *
     * NOTE this does not match the built-in DataTables filtering which does it
     * word by word on any field. It's possible to do here performance on large
     * databases would be very poor
     *
     * @param array $request
     *            Data sent to server by DataTables
     * @param array $columns
     *            Column information array
     * @param array $bindings
     *            Array of values for PDO bindings, used in the
     *            sql_exec() function
     * @return string SQL where clause
     */

    public static function _obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, &$bindings)
    {
        $globalSearch = array(  );
        $columnSearch = array(  );
        $dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt");
        if( isset($request["search"]) && $request["search"]["value"] != "" ) 
        {
            $str = $request["search"]["value"];
            $i = 0;
            for( $ien = count($request["columns"]); $i < $ien; $i++ ) 
            {
                $requestColumn = $request["columns"][$i];
                $columnIdx = array_search($requestColumn["data"], $dtColumns);
                $column = $columns[$columnIdx];
                if( $requestColumn["searchable"] == "true" ) 
                {
                    $binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR);
                    $globalSearch[] = "`" . $column["db"] . "` LIKE " . $binding;
                }

            }
        }

        if( isset($request["columns"]) ) 
        {
            $i = 0;
            for( $ien = count($request["columns"]); $i < $ien; $i++ ) 
            {
                $requestColumn = $request["columns"][$i];
                $columnIdx = array_search($requestColumn["data"], $dtColumns);
                $column = $columns[$columnIdx];
                $str = $requestColumn["search"]["value"];
                if( $requestColumn["searchable"] == "true" && $str != "" ) 
                {
                    $binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR);
                    $columnSearch[] = "`" . $column["db"] . "` LIKE " . $binding;
                }

            }
        }

        $where = "";
        if( count($globalSearch) ) 
        {
            $where = "(" . implode(" OR ", $globalSearch) . ")";
        }

        if( count($columnSearch) ) 
        {
            $where = ($where === "" ? implode(" AND ", $columnSearch) : $where . " AND " . implode(" AND ", $columnSearch));
        }

        if( $where !== "" ) 
        {
            $where = "HAVING " . $where;
        }

        return $where;
    }

    /**
     * Perform the SQL queries needed for an server-side processing requested,
     * utilising the helper functions of this class, limit(), order() and
     * filter() among others.
     * The returned array is ready to be encoded as JSON
     * in response to an SSP request, or can be modified if needed before
     * sending back to the client.
     *
     * @param array $request
     *            Data sent to server by DataTables
     * @param array|PDO $conn
     *            PDO connection resource or connection parameters array
     * @param string $table
     *            SQL table to query
     * @param string $primaryKey
     *            Primary key of the table
     * @param array $columns
     *            Column information array
     * @return array Server-side processing response array
     */

    public static function _obfuscated_7F8D999B908AA58EC0B9B8AAB188AA999790ACA5A28EB1_($request, $conn, $table, $primaryKey, $columns)
    {
        $bindings = array(  );
        $db = self::db($conn);
        $limit = self::limit($request, $columns);
        $order = self::order($request, $columns);
        $where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings);
        $data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db")) . "`\r\n             FROM `" . $table . "`\r\n             " . $where . "\r\n             " . $order . "\r\n             " . $limit);
        $resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()");
        $recordsFiltered = $resFilterLength[0][0];
        $resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT COUNT(`" . $primaryKey . "`)\r\n             FROM   `" . $table . "`");
        $recordsTotal = $resTotalLength[0][0];
        return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) );
    }

    /**
     * The difference between this method and the `simple` one, is that you can
     * apply additional `where` conditions to the SQL queries.
     * These can be in
     * one of two forms:
     *
     * * 'Result condition' - This is applied to the result set, but not the
     * overall paging information query - i.e. it will not effect the number
     * of records that a user sees they can have access to. This should be
     * used when you want apply a filtering condition that the user has sent.
     * * 'All condition' - This is applied to all queries that are made and
     * reduces the number of records that the user can access. This should be
     * used in conditions where you don't want the user to ever have access to
     * particular records (for example, restricting by a login id).
     *
     * @param array $request
     *            Data sent to server by DataTables
     * @param array|PDO $conn
     *            PDO connection resource or connection parameters array
     * @param string $table
     *            SQL table to query
     * @param string $primaryKey
     *            Primary key of the table
     * @param array $columns
     *            Column information array
     * @param string $whereResult
     *            WHERE condition to apply to the result set
     * @param string $whereAll
     *            WHERE condition to apply to all queries
     * @return array Server-side processing response array
     */

    public static function _obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($request, $conn, $table, $primaryKey, $columns, $whereResult = NULL, $whereAll = NULL)
    {
        $bindings = array(  );
        $db = self::db($conn);
        $localWhereResult = array(  );
        $localWhereAll = array(  );
        $whereAllSql = "";
        $limit = self::limit($request, $columns);
        $order = self::order($request, $columns);
        $where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings);
        $whereResult = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereResult);
        $whereAll = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereAll);
        if( $whereResult ) 
        {
            $where = ($where ? $where . " AND " . $whereResult : "WHERE " . $whereResult);
        }

        if( $whereAll ) 
        {
            $where = ($where ? $where . " AND " . $whereAll : "WHERE " . $whereAll);
            $whereAllSql = "WHERE " . $whereAll;
        }

        $pp = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "process");
        $process = (0 < count($pp) ? " , " . implode(" , ", $pp) : "");
        $data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db", "process")) . "` " . $process . " \r\n             FROM `" . $table . "`\r\n             " . $where . "\r\n             " . $order . "\r\n             " . $limit);
        $resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()");
        $recordsFiltered = $resFilterLength[0][0];
        $resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT COUNT(`" . $primaryKey . "`)\r\n             FROM   `" . $table . "` " . $whereAllSql);
        $recordsTotal = $resTotalLength[0][0];
        return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) );
    }

    /**
     * Connect to the database
     *
     * @param array $sql_details
     *            SQL server connection details array, with the
     *            properties:
     *            * host - host name
     *            * db - database name
     *            * user - user name
     *            * pass - user password
     * @return resource Database connection handle
     */

    public static function _obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($sql_details)
    {
        try
        {
            $db = @new PDO("mysql:host=" . $sql_details["host"] . ";dbname=" . $sql_details["db"], $sql_details["user"], $sql_details["pass"], array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
        }
        catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e ) 
        {
            self::fatal("An error occurred while connecting to the database. " . "The error reported by the server was: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_());
        }
        return $db;
    }

    /**
     * Execute an SQL query on the database
     *
     * @param resource $db
     *            Database handler
     * @param array $bindings
     *            Array of PDO binding values from bind() to be
     *            used for safely escaping strings. Note that this can be given as the
     *            SQL query string if no bindings are required.
     * @param string $sql
     *            SQL query to execute.
     * @return array Result from the query (all rows)
     */

    public static function _obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, $sql = NULL)
    {
        if( $sql === NULL ) 
        {
            $sql = $bindings;
        }

        $stmt = $db->prepare($sql);
        if( is_array($bindings) ) 
        {
            $i = 0;
            for( $ien = count($bindings); $i < $ien; $i++ ) 
            {
                $binding = $bindings[$i];
                $stmt->bindValue($binding["key"], $binding["val"], $binding["type"]);
            }
        }

        try
        {
            $stmt->execute();
        }
        catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e ) 
        {
            self::fatal("An SQL error occurred: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_());
        }
        return $stmt->fetchAll(PDO::FETCH_BOTH);
    }

    /**
     * Throw a fatal error.
     *
     * This writes out an error message in a JSON string which DataTables will
     * see and show to the user in the browser.
     *
     * @param string $msg
     *            Message to send to the client
     */

    public static function fatal($msg)
    {
        echo json_encode(array( "error" => $msg ));
        exit( 0 );
    }

    /**
     * Create a PDO binding key which can be used for escaping variables safely
     * when executing a query with sql_exec()
     *
     * @param
     *            array &$a Array of bindings
     * @param * $val
     *            Value to bind
     * @param int $type
     *            PDO field type
     * @return string Bound key to be used in the SQL where this parameter
     *         would be used.
     */

    public static function _obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_(&$a, $val, $type)
    {
        $key = ":binding_" . count($a);
        $a[] = array( "key" => $key, "val" => $val, "type" => $type );
        return $key;
    }

    /**
     * Pull a particular property from each assoc.
     * array in a numeric array,
     * returning and array of the property values from each item.
     *
     * @param array $a
     *            Array to get data from
     * @param string $prop
     *            Property to read
     * @return array Array of property values
     */

    public static function _obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($a, $prop, $ignore = "none")
    {
        $out = array(  );
        $i = 0;
        for( $len = count($a); $i < $len; $i++ ) 
        {
            if( isset($a[$i][$ignore]) ) 
            {
                continue;
            }

            if( isset($a[$i][$prop]) ) 
            {
                $out[] = $a[$i][$prop];
            }

        }
        return $out;
    }

    /**
     * Return a string from an array or a string
     *
     * @param array|string $a
     *            Array to join
     * @param string $join
     *            Glue for the concatenation
     * @return string Joined string
     */

    public static function _obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($a, $join = " AND ")
    {
        if( !$a ) 
        {
            return "";
        }

        if( $a && is_array($a) ) 
        {
            return implode($join, $a);
        }

        return $a;
    }

}


class _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_
{
    public $current_statid = 0;

    public function _obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_()
    {
        $r = 5;
        $v = MT::S()->version();
        if( $r <= $v ) 
        {
        }
        else
        {
            exit( sprintf(base64_decode("RXJyb3I6IEFkZG9uIEluc3RhbGxlciB2ZXJzaW9uICUuMUYgaXMgcmVxdWlyZWQuIFBsZWFzZSBjb250YWN0IHRvIHlvdXIgYWRtaW5pc3RyYXRvci4="), $r) );
        }

    }

    public function _obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($raw = array(  ))
    {
        $data = array(  );
        foreach( $raw as $key => $value ) 
        {
            $uid = (int) $value;
            $d = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'"));
            if( $d ) 
            {
                $hd = array(  );
                $hd["name"] = $d["name"];
                $hd["size"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($uid);
                $data[] = $hd;
            }

        }
        return $data;
    }

    public function _obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid = 0, $all = true)
    {
        $uid = (int) $uid;
        $all = ($all ? "" : " AND status=1");
        $data = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'" . $all));
        if( $data ) 
        {
            $hs = array(  );
            $h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'");
            while( $row = MT::S()->db->Fetch($h) ) 
            {
                $hs[] = array( "name" => $row["name"], "value" => $row["value"] );
            }
            $data["headers"] = $hs;
            return $data;
        }

        return array(  );
    }

    public function _obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($uid = 0)
    {
        $hs = array(  );
        $h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'");
        while( $row = MT::S()->db->Fetch($h) ) 
        {
            $hs[] = array( "name" => $row["name"], "value" => $row["value"] );
        }
        return $hs;
    }

    public function _obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_($all = true)
    {
        $all = ($all ? "" : " WHERE status=1");
        $d = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers" . $all);
        $data = array(  );
        while( $row = MT::S()->db->Fetch($d) ) 
        {
            $row["total"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($row["uid"]);
            $row["values"] = $this->_obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($row["uid"]);
            $data[] = $row;
        }
        return $data;
    }

    public function _obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($header_uid = 0)
    {
        $header_uid = (int) $header_uid;
        $t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $header_uid . "'"));
        return (int) $t["total"];
    }

    public function _obfuscated_7F97AEA3A39D94B0A28B9CB29793AE949789B5B2908A91_()
    {
        $t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard"));
        return (int) $t["total"];
    }

    public function _obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid = 0)
    {
        $header_uid = (int) $uid;
        return (MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $header_uid . "'")) ? true : false);
    }

    public function _obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid = 0, $value = false)
    {
        MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET status='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'");
    }

    public function _obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid = 0, $value = false)
    {
        MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET rotation='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'");
    }

    public function _obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name = "no-name", $data = array(  ), $status = 1, $rotation = 0)
    {
        $id = MT::S()->db->InsertQuery("addon_mta_headers", array( "name" => MT::S()->db->Quote($name), "status" => (int) $status, "rotation" => (int) $rotation ));
        if( $id ) 
        {
            foreach( $data as $key => $value ) 
            {
                $h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $id, "name" => $value["name"], "value" => $value["value"] ));
            }
        }

    }

    public function _obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid = 0)
    {
        MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . (int) $uid . "'");
        MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'");
    }

    public function _obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid = 0, $name = "no-name", $data = array(  ), $status = 1, $rotation = 0)
    {
        $result = MT::S()->db->UpdateQuery("addon_mta_headers", array( "name" => $name, "status" => $status, "rotation" => $rotation ), "`uid`=" . MT::S()->db->Quote($uid));
        MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'");
        foreach( $data as $key => $value ) 
        {
            $h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $uid, "name" => $value["name"], "value" => $value["value"] ));
        }
    }

    public function _obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($hostname)
    {
        if( preg_match("/" . preg_quote("->") . "/", $hostname) ) 
        {
            $a = explode("->", $hostname);
            return trim($a[0]);
        }

        return $hostname;
    }

    public function _obfuscated_7F85A6BB8D849798908AA68F81AEB6968CB7AE90BA95B1_($hostname)
    {
        if( preg_match("/" . preg_quote("->") . "/", $hostname) ) 
        {
            $a = explode("->", $hostname);
            return trim($a[1]);
        }

        return $hostname;
    }

}


class Mta_API extends _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_
{
    public $internal_email_rebuild = false;
    private $db = NULL;
    private $log_send_counter = 0;
    private $mta_data_temp = array(  );
    private $LE = "\n";
    public $bbs = NULL;
    public $bbe = NULL;
    public $encoding = false;
    public $data_type_reputation = array( "reputation", "reputation_volume", "reputation_complaint", "reputation_unknown", "reputation_filtered", "blacklist", "whitelist" );
    public static $instance = false;
    public $log_method = array(  );

    /**
     * Launch Encoding Options
     * 
     * @param [string] $m
     *            [String]
     * @return [function] [Function]
     */

    public function _obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_()
    {
        if( !$this->bbs ) 
        {
            $this->bbs = "IEMB" . getmypid();
        }

        return $this->bbs;
    }

    public function _obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_()
    {
        if( !$this->bbe ) 
        {
            $this->bbe = "IEME" . getmypid();
        }

        return $this->bbe;
    }

    public function public_splittest_cron(&$_this, $send_results)
    {
        return $this->_obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_($_this, $send_results);
    }

    private function _obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_(&$_this, $send_results)
    {
        $this->iem_log_send_pre($_this, $send_results);
        $this->iem_log_send($_this, $send_results, true);
    }

    public function public_splittest_setupemail(&$_this)
    {
        return $this->_obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_($_this);
    }

    private function _obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_(&$_this)
    {
        $_this->email_objects = array(  );
    }

    public function mta_encode_pre_body(&$_this)
    {
        $encode_type = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_();
        if( $encode_type == "quoted-printable" || $encode_type == "base64" || $encode_type == "binary" ) 
        {
            $_this->wrap_length = 90000;
        }

        if( !empty($_this->body["h"]) ) 
        {
            $_this->body["h"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["h"]);
            $_this->body["h"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["h"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_();
        }

        if( !empty($_this->body["t"]) ) 
        {
            $_this->body["t"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["t"]);
            $_this->body["t"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["t"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_();
        }

    }

    private function _obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($str)
    {
        $str2 = str_replace(array( $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_(), $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() ), "", $str);
        return $str2;
    }

    public function mta_encode_post_body($body)
    {
        if( isset($this->old_boundary) ) 
        {
        }

        if( isset($this->email_api) ) 
        {
        }

        $body = preg_replace_callback("/" . $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . "(.*?)" . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() . "/msi", array( $this, "__Zend__Launcher_merb" ), $body);
        return $body;
    }

    private function __Zend__Launcher_merb($m)
    {
        $r = $this->_obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($m);
        return $r;
    }

    public function _obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($matches)
    {
        $mime = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_();
        switch( $mime ) 
        {
            case "base64":
                $body = chunk_split(base64_encode($matches[1]), 76, $this->LE);
                break;
            case "binary":
                $body = $matches[1];
                break;
            case "7bit":
            case "8bit":
                $body = $this->_obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($matches[1]);
                if( substr($body, 0 - strlen($this->LE)) != $this->LE ) 
                {
                    $body .= $this->LE;
                }

                break;
            case "quoted-printable":
                $body = $matches[1];
                $body = quoted_printable_encode($body);
                break;
            default:
                $body = $matches[1];
                break;
        }
        return $body;
    }

    public function mta_encode_set_header(&$_this)
    {
        $this->_obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_($_this);
    }

    private function _obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_(&$_this)
    {
        $_this->ContentEncoding = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_($_this);
        return true;
    }

    private function _obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_()
    {
        if( isset($this->jobdetails) && isset($this->jobdetails["mta"]) && isset($this->jobdetails["mta"]["mime"]) ) 
        {
            $mime_post = (int) $this->jobdetails["mta"]["mime"];
            switch( $mime_post ) 
            {
                case 0:
                    $mime = "8bit";
                    break;
                case 1:
                    $mime = "quoted-printable";
                    break;
                case 2:
                    $mime = "base64";
                    break;
                case 3:
                    $mime = "binary";
                    break;
                default:
                    $mime = "8bit";
                    break;
            }
        }
        else
        {
            $mime = "8bit";
        }

        return $mime;
    }

    public static function Singleton()
    {
        if( !self::$instance ) 
        {
            self::$instance = new Mta_API();
            self::$instance->db = MT::S()->db;
            $GLOBALS["addon_mta_class"] = self::$instance;
            self::$instance->settings = array(  );
            self::$instance->settings["debug_mail_sent"] = ADDON_MTA_MAIL_SENT_DEBUG;
            self::$instance->timer = microtime();
            self::$instance->nosql = MT_TOOLS::S()->nosql("mta");
            self::$instance->_obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_();
            MT::S()->l("mta");
            if( defined("MTA_LOG_METHOD") ) 
            {
                self::$instance->log_method = array( "addon" => "mta", "method" => MTA_LOG_METHOD );
            }

        }

        return self::$instance;
    }

    public function __construct()
    {
    }

    public function cron()
    {
        return $this->_obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_();
    }

    public function _obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_()
    {
    }

    public function _obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($job)
    {
        if( isset($job->jobdetails["mta"]["pmtajobid"]) && $job->jobdetails["mta"]["pmtajobid"]["enabled"] == 1 ) 
        {
            $jobid = $this->_obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($job->statid);
            MT::S()->set_extra_header("x-job", $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid));
        }

    }

    public function _obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($statid)
    {
        if( isset($this->statid) && isset($this->jobid) && $this->statid == $statid ) 
        {
            return $this->jobid;
        }

        $this->jobid = $this->_obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid);
        $this->statid = $statid;
        return $this->jobid;
    }

    public function _obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid)
    {
        $query = "SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'";
        $result = $this->db->Query($query);
        $row = $this->db->Fetch($result);
        return ($row ? (int) $row["jobid"] : 0);
    }

    public function _obfuscated_7FB592BBBEBAB6918DBFB5A6A78EBCB19ABDAABD8597A1_()
    {
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send' AND jobstatus='c'");
        if( $result ) 
        {
            while( $row = $this->db->Fetch($result) ) 
            {
                $queues_unsent = MT::S()->queues_unsent($row["queueid"]);
                if( 0 < $queues_unsent ) 
                {
                    $job_details = unserialize($row["jobdetails"]);
                    if( isset($job_details["mta"]["resend"]) && $job_details["mta"]["resend"]["current_time"] < $job_details["mta"]["resend"]["times"] ) 
                    {
                        $job_details["mta"]["resend"]["current_time"]++;
                        $result = $this->db->UpdateQuery("jobs", array( "jobstatus" => "r", "jobdetails" => serialize($job_details) ), "`jobid`=" . $this->db->Quote($row["jobid"]));
                        MT::S()->FLOG("Jobid=" . $row["jobid"] . ",Unsent=" . $queues_unsent . ",Times=[" . $job_details["mta"]["resend"]["current_time"] . "/" . $job_details["mta"]["resend"]["times"] . "]", "Automatic-resend");
                    }

                }

            }
        }

    }

    public function _obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($uid = 0, $users = array(  ), $force = 0, $force_ms = 0)
    {
        $uid = (int) $uid;
        $users = (!$users || !is_array($users) ? array(  ) : $users);
        $this->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid=" . $uid);
        foreach( $users as $k => $v ) 
        {
            $result = $this->db->InsertQuery("addon_mta_users", array( "mta_group_uid" => $this->db->Quote($uid), "user_uid" => $this->db->Quote((int) $v) ));
        }
        return true;
    }

    public function _obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta_uid = 0, $value = 0, $type = "sent", $time = false, $extra = "")
    {
        $ct = (!$time ? time() : $time);
        if( !is_numeric($value) ) 
        {
            return false;
        }

        $mt = $this->get_date_info($ct, "hour");
        $tmpk = md5($mt . $mta_uid . $type);
        if( !isset($this->mta_data_temp[$tmpk]) ) 
        {
            $dc = $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($mt, $mta_uid, $type);
            if( $dc ) 
            {
                $this->mta_data_temp[$tmpk] = true;
            }

        }

        if( $type == "sent" || $type == "failed" || $type == "bounced" ) 
        {
            $q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=value+" . $value . ", extra='" . $this->db->Quote($extra) . "'  WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' ";
            $result = $this->db->Query($q);
            $q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "=" . $type . "+" . $value . " WHERE `uid`=" . $this->db->Quote($mta_uid) . "";
            $result = $this->db->Query($q);
        }
        else
        {
            if( in_array($type, $this->data_type_reputation) ) 
            {
                $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=" . $value . ", extra='" . $this->db->Quote($extra) . "' WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' ");
                if( $type == "blacklist" ) 
                {
                    $result = $this->db->Query("SELECT blacklist_extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data LIMIT 1");
                    if( !$result ) 
                    {
                        $result = $this->db->Query("ALTER TABLE `" . SENDSTUDIO_TABLEPREFIX . "addon_mta_data` ADD `blacklist_extra` TEXT");
                    }

                    $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "',  blacklist_data='" . $this->db->Quote($extra) . "'  WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
                }
                else
                {
                    if( $type == "whitelist" ) 
                    {
                        $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "',  whitelist_data='" . $this->db->Quote($extra) . "'  WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
                    }
                    else
                    {
                        $result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
                    }

                }

            }

        }

        return $result;
    }

    public function _obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid = 0, $type = "sent", $time = false)
    {
        $time = $this->get_date_info((!$time ? time() : $time), "hour");
        $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type);
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'");
        $result = $this->db->Fetch($result);
        return ($result ? (int) $result["value"] : 0);
    }

    public function _obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid = 0, $type = "sent", $time = false, $arr = false)
    {
        $time = $this->get_date_info((!$time ? time() : $time), "day");
        $time2 = $time + 3600 * 24;
        $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type);
        if( preg_match("/reputation/i", $type) || $type == "blacklist" ) 
        {
            $result = $this->db->Query("SELECT value as total,extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1");
        }
        else
        {
            $result = $this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "'");
        }

        $result = $this->db->Fetch($result);
        return ($arr ? $result : ($result ? (int) $result["total"] : 0));
    }

    /**
     * FIXME: ARREGLAR CUANDO DEVUELVE EMPTY
     * 
     * @param integer $mta_uid
     *            [description]
     * @param boolean $time
     *            [description]
     * @param string $date
     *            [description]
     * @param boolean $data
     *            [description]
     * @return [type] [description]
     */

    public function _obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($mta_uid = 0, $time = false, $date = "daily", $data = false)
    {
        if( !$data ) 
        {
            $time = ($time ? $time : time());
            if( $date == "daily" ) 
            {
                $bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time, true);
            }

            $data = array(  );
            $blids = explode(",", trim($bl["extra"]));
            if( trim($bl["extra"]) == "" ) 
            {
                return $data;
            }

        }
        else
        {
            $blids = $data;
        }

        $processed_data = array(  );
        $blids = implode(",", $blids);
        if( empty($blids) ) 
        {
            return array(  );
        }

        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")");
        while( $row = $this->db->Fetch($result) ) 
        {
            $processed_data[] = $row;
        }
        return $processed_data;
    }

    public function _obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid = 0, $time = false, $date = "daily", $data = false)
    {
        if( !$data ) 
        {
            $time = ($time ? $time : time());
            if( $date == "daily" ) 
            {
                $bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time, true);
            }

            $data = array(  );
            $blids = explode(",", trim($bl["extra"]));
            if( trim($bl["extra"]) == "" ) 
            {
                return $data;
            }

        }
        else
        {
            $blids = $data;
        }

        $processed_data = array(  );
        $blids = implode(",", $blids);
        if( empty($blids) ) 
        {
            return array(  );
        }

        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")");
        while( $row = $this->db->Fetch($result) ) 
        {
            $processed_data[] = $row;
        }
        return $processed_data;
    }

    public function _obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta_uid = 0, $hm = 7, $from = "daily", $when = "previous", $time = false)
    {
        $_time = (!$time ? time() : $time);
        $data = array( "time" => array(  ), "sent" => array(  ), "failed" => array(  ), "bounced" => array(  ), "reputation" => array(  ), "blacklist" => array(  ) );
        for( $i = 0; $i < $hm; $i++ ) 
        {
            $interval = ($from == "daily" ? 24 * 60 * 60 * $i : 24 * 60 * 60 * $i);
            $time = ($when == "previous" ? $_time - $interval : $_time + $interval);
            $data["time"][] = date("M j", $time);
            $data["sent"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "sent", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "sent", $time)));
            $data["failed"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "failed", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "failed", $time)));
            $data["bounced"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "bounced", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "bounced", $time)));
            $data["reputation"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation", $time)));
            $complaint = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_complaint", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_complaint", $time)));
            $complaint_reversed = (0 < $complaint ? 100 - $complaint : $complaint);
            $data["reputation_complaint"][] = $complaint;
            $volume = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_volume", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_volume", $time)));
            $volume_reversed = (0 < $volume ? 100 - $volume : $volume);
            $data["reputation_volume"][] = $volume;
            $unknown = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_unknown", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_unknown", $time)));
            $data["reputation_unknown"][] = $unknown;
            $data["reputation_filtered"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_filtered", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_filtered", $time)));
            $data["blacklist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "blacklist", $time)));
            $data["whitelist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "whitelist", $time)));
        }
        $data["time"] = array_reverse($data["time"]);
        $data["sent"] = array_reverse($data["sent"]);
        $data["failed"] = array_reverse($data["failed"]);
        $data["bounced"] = array_reverse($data["bounced"]);
        $data["reputation"] = array_reverse($data["reputation"]);
        $data["reputation_complaint"] = array_reverse($data["reputation_complaint"]);
        $data["reputation_volume"] = array_reverse($data["reputation_volume"]);
        $data["reputation_unknown"] = array_reverse($data["reputation_unknown"]);
        $data["reputation_filtered"] = array_reverse($data["reputation_filtered"]);
        $data["blacklist"] = array_reverse($data["blacklist"]);
        $data["whitelist"] = array_reverse($data["whitelist"]);
        return $data;
    }

    public function _obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time = 0, $mta_uid = 0, $type = "send")
    {
        if( !$this->_obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time, $mta_uid, $type) ) 
        {
            $result = $this->db->InsertQuery("addon_mta_stats", array( "mta_uid" => $mta_uid, "time" => $time, "type" => $type ));
            return true;
        }

        return false;
    }

    public function _obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time = 0, $mta_uid = 0, $type = "send")
    {
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'");
        $ex = ($this->db->Fetch($result) ? true : false);
        return $ex;
    }

    public function _obfuscated_7F81B58BA1A7B083BB93AFB782B98A8C999A87B587B381_($timestam = 0, $g = "day", $hm = 40, $t = "-")
    {
    }

    public function _obfuscated_7F85AB928E93A0868598868B94A4AFB5ACB9C0BAAF8581_($jobid = 0)
    {
        $result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $jobid . "'");
        $jobinfo = $this->db->Fetch($result);
        if( !$jobinfo ) 
        {
            return array(  );
        }

        $result = $this->db->Query("SELECT COUNT(*) as total,queueid,reasoncode,reason FROM " . SENDSTUDIO_TABLEPREFIX . "queues_unsent WHERE queueid='" . $jobinfo["queueid"] . "' group by reason ORDER BY total DESC LIMIT 1000");
        $data = array(  );
        while( $row = $this->db->Fetch($result) ) 
        {
            $row["total_format"] = number_format((int) $row["total"]);
            $row["reason"] = (trim($row["reason"]) == "" ? "Unknown reason" : $row["reason"]);
            $data[] = $row;
        }
        return $data;
    }

    public function get_date_info($timestamp = 0, $g = "day")
    {
        $timestamp = ($timestamp ? $timestamp : time());
        $ta = explode("-", date("Y-n-d-H-i-s", $timestamp));
        $t = 0;
        if( $g == "day" ) 
        {
            $t = mktime(0, 0, 0, $ta[1], $ta[2], $ta[0]);
        }
        else
        {
            if( $g == "hour" ) 
            {
                $t = mktime($ta[3], 0, 0, $ta[1], $ta[2], $ta[0]);
            }
            else
            {
                if( $g == "month" ) 
                {
                    $t = mktime(0, 0, 0, $ta[1], 0, $ta[0]);
                }

            }

        }

        return $t;
    }

    public function _obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($data = array(  ))
    {
        $name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]);
        $method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1);
        $result = $this->db->InsertQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ));
        return $result;
    }

    public function _obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($data = array(  ))
    {
        $name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]);
        $method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1);
        $result = $this->db->UpdateQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ), "`uid`=" . $data["mta_group_uid"]);
        return $result;
    }

    public function _obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id = 0)
    {
        $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, true);
        foreach( $mtas as $k => $value ) 
        {
            $this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $value["uid"]);
            $this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $value["uid"]);
        }
        return $this->db->DeleteQuery("addon_mta_group", "WHERE `uid`=" . $id, 1);
    }

    public function _obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($r = 1)
    {
        $ro = array( 1 => "Random", 2 => "Cycle" );
        return $ro[$r];
    }

    public function _obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_($id = false)
    {
        $id = ($id ? "WHERE uid='" . $id . "'" : "");
        $data = array(  );
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id;
        $result = $this->db->Query($query);
        while( $row = $this->db->Fetch($result) ) 
        {
            $row["rotation_raw"] = $row["rotation"];
            $row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
            $row["inactives"] = $this->_obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($row["uid"]);
            $row = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"]));
            $row["total"] = (int) $row["inactives"] + (int) $row["mtas"];
            $data[] = $row;
        }
        if( !$id ) 
        {
        }

        return $data;
    }

    public function _obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($guid)
    {
        $total = 0;
        $query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group=" . $guid . " AND status=2";
        $result = $this->db->Query($query);
        $row = $this->db->Fetch($result);
        if( $row ) 
        {
            $total = $row["total"];
        }

        return $total;
    }

    public function _obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_($id = false, $mtas = false, $blacklistdata = false, $user = false)
    {
        $user =& GetUser();
        $is_admin = $user->isAdmin();
        $disabled_is_admin = true;
        if( $is_admin && $disabled_is_admin == false ) 
        {
            $id = ($id ? "WHERE uid='" . $id . "'" : "");
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id;
        }
        else
        {
            $id = ($id ? "WHERE uid='" . $id . "'" : "");
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $user->userid;
        }

        $data = array(  );
        $result = $this->db->Query($query);
        while( $row = $this->db->Fetch($result) ) 
        {
            $row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
            if( $mtas ) 
            {
                $row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, $blacklistdata);
            }

            $data[] = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"]));
        }
        return $data;
    }

    public function _obfuscated_7F84AAAFA6B78796B1B194BAB286A384C082B4B396A4A1_()
    {
        $data = array(  );
        $data["uid"] = 0;
        $data["name"] = GetLang("Addon_mta_nongrouped");
        $data["rotation"] = "N/A";
        return array_merge($data, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_(0));
    }

    public function _obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($id = 0)
    {
        $data = array(  );
        $data["mtas"] = $this->_obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id);
        $data["users"] = $this->_obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id);
        $data = array_merge($data, $this->_obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id));
        return $data;
    }

    public function _obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id = 0)
    {
        $query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' AND status=1";
        $result = $this->db->Query($query);
        if( $result ) 
        {
            $row = $this->db->Fetch($result);
            return (int) $row["total"];
        }

        return 0;
    }

    public function _obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id = 0)
    {
        $query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'";
        $result = $this->db->Query($query);
        if( $result ) 
        {
            $row = $this->db->Fetch($result);
            return (int) $row["total"];
        }

        return 0;
    }

    public function _obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id = 0)
    {
        $query = "SELECT SUM(sent) as sent,SUM(failed) as failed, SUM(bounced) as bounced FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "'";
        $result = $this->db->Query($query);
        if( $result ) 
        {
            $row = $this->db->Fetch($result);
            $row["sent"] = (int) $row["sent"];
            $row["failed"] = (int) $row["failed"];
            $row["bounced"] = (int) $row["bounced"];
            return $row;
        }

        return 0;
    }

    public function _obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, $partial = false)
    {
        if( $id ) 
        {
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid='" . $id . "'";
            $result = $this->db->Query($query);
            if( $result ) 
            {
                $row = $this->db->Fetch($result);
                return array( "raw" => $row, "exist" => true, "data" => array( "mta_group_uid" => $id, "mta_group_name" => $row["name"], "mta_group_rotation" => $row["rotation"], "users" => $this->_obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id) ) );
            }

            return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_();
        }

        return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_();
    }

    public function _obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id = 0)
    {
        $id = (int) $id;
        $users = array(  );
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'";
        $result = $this->db->Query($query);
        if( $result ) 
        {
            while( $row = $this->db->Fetch($result) ) 
            {
                $users[] = (int) $row["user_uid"];
            }
        }

        return $users;
    }

    public function _obfuscated_7F9CBDB2B98F97818C92B6AA8698A5B2A2BE9CB296A381_($group, $id, $partial = false)
    {
        if( $id ) 
        {
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $this->db->Quote($group) . "' AND uid='" . $this->db->Quote($id) . "'";
            $result = $this->db->Query($query);
            if( $result ) 
            {
                $row = $this->db->Fetch($result);
                return array( "exist" => true, "data" => $row );
            }

            return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
        }

        return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
    }

    public function _obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid = 0)
    {
        if( $uid ) 
        {
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid='" . $this->db->Quote($uid) . "'";
            $result = $this->db->Query($query);
            if( $result ) 
            {
                $row = $this->db->Fetch($result);
                return array( "exist" => true, "data" => $row );
            }

            return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
        }

        return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
    }

    public function _obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id = 0, $lite = false, $active = false, $random = false, $limit = false, $blacklistdata = false, $whitelistdata = false)
    {
        $active = ($active ? " AND status=1" : "");
        $order = ($random ? " ORDER BY RAND()" : "");
        $limit = ($limit && is_numeric($limit) ? " LIMIT " . $limit : "");
        if( !$lite ) 
        {
            $mtas = array(  );
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit;
            $result = $this->db->Query($query);
            while( $row = $this->db->Fetch($result) ) 
            {
                $row["sent"] = number_format($row["sent"]);
                $row["failed"] = number_format($row["failed"]);
                $row["bounced"] = number_format($row["bounced"]);
                $row["reputation"] = number_format($row["reputation"]);
                $row["blacklist"] = number_format($row["blacklist"]);
                if( $blacklistdata ) 
                {
                    $row["blacklist_data"] = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($row["uid"], time(), "daily", explode(",", $row["blacklist_data"]));
                }

                if( $whitelistdata ) 
                {
                    $wl_data = explode(",", $row["whitelist_data"]);
                    $row["whitelist_data"] = $this->_obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($row["uid"], time(), "daily", $wl_data);
                }

                $mtas[] = $row;
            }
        }
        else
        {
            $mtas = array(  );
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit;
            $result = $this->db->Query($query);
            while( $row = $this->db->Fetch($result) ) 
            {
                $mtas[] = $row;
            }
        }

        return $mtas;
    }

    public function _obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($mta_uid, $type)
    {
        if( $type == "reputation" || $type == "blacklist" ) 
        {
            $sent = $this->db->Fetch($this->db->Query("SELECT value as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1"));
        }
        else
        {
            $sent = $this->db->Fetch($this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "'"));
        }

        return (int) $sent["total"];
    }

    public function _obfuscated_7F98B6AEAD81B5BF90998DC0BBA68C899197A299AF9281_($mta_uid, $value, $key)
    {
        $result = $this->db->UpdateQuery("addon_mta_data", array( $key => $value ), "`uid`=" . $mta_uid);
        return $value;
    }

    public function _obfuscated_7F97898C81AD9292B1A7A8A4AEAE9CB383BF9387A6B191_($group_id = 0, $type = "sent")
    {
        $total = 0;
        if( $type == "reputation" ) 
        {
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'";
            $result = $this->db->Query($query);
            while( $row = $this->db->Fetch($result) ) 
            {
                $total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type);
            }
        }
        else
        {
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'";
            $result = $this->db->Query($query);
            while( $row = $this->db->Fetch($result) ) 
            {
                $total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type);
            }
        }

        return $total;
    }

    public function _obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_()
    {
        return array( "exist" => false, "data" => array( "name" => time() ) );
    }

    public function _obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_()
    {
        return array( "exist" => false, "data" => array( "mta_group_name" => time(), "mta_group_rotation" => 1 ) );
    }

    public function _obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($job = 0)
    {
        $job = $this->db->Quote($job);
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $job . "'";
        $result = $this->db->Query($query);
        $r = array(  );
        $mta = 0;
        $row = $this->db->Fetch($result);
        if( !$row ) 
        {
            return "None";
        }

        $mta = $this->_obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($row["ownerid"]);
        if( $mta == 0 ) 
        {
            $md = unserialize($row["jobdetails"]);
            return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($md["mta"], "J");
        }

        return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta, "U");
    }

    public function _obfuscated_7FAEB7858EA59181A09892B7B5A79897BE9FB29AB9ADA1_($stat = 0)
    {
        $stat = $this->db->Quote($stat);
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $stat . "'";
        $result = $this->db->Query($query);
        $r = array(  );
        $mta = 0;
        $row = $this->db->Fetch($result);
        if( !$row ) 
        {
            return "None";
        }

        return $this->_obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($row["jobid"]);
    }

    public function _obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($user)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE userid='" . $user . "'";
        $result = $this->db->Query($query);
        $mta = 0;
        while( $row = $this->db->Fetch($result) ) 
        {
            $mta = (int) $row["mta"];
        }
        return $mta;
    }

    public function _obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta = 0, $default = "None", $type = "J")
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "smtp WHERE uid='" . $mta . "'";
        $result = $this->db->Query($query);
        $mta = $default;
        while( $row = $this->db->Fetch($result) ) 
        {
            $mta = "<img src='images/" . (($type == "J" ? "mnu_contactlist_button" : "user")) . ".gif'> " . $row["name"];
        }
        return $mta;
    }

    public function _obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($data = array(  ))
    {
        $mta_data = array( "hostname" => trim($data["hostname"]), "username" => trim($data["username"]), "password" => trim($data["password"]), "port" => (int) trim($data["port"]), "name" => trim($data["name"]), "mail_from" => trim($data["mail_from"]), "mail_reply" => trim($data["mail_reply"]), "mail_bounce" => trim($data["mail_bounce"]), "mail_test" => trim($data["mail_test"]), "mta_group" => (int) $data["mta_group_uid"] );
        $result = $this->db->InsertQuery("addon_mta_data", $mta_data);
        return $result;
    }

    public function _obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id = 0)
    {
        $result = $this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $id);
        $result = $this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $id);
        return $result;
    }

    public function _obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($ids = array(  ))
    {
        $i = 0;
        foreach( $ids as $k => $v ) 
        {
            $id = (int) $v;
            if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id) ) 
            {
                $i++;
            }

        }
        return $i;
    }

    public function _obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($ids = array(  ))
    {
        $i = 0;
        foreach( $ids as $k => $v ) 
        {
            $id = (int) $v;
            if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 1 )) ) 
            {
                $i++;
            }

        }
        return $i;
    }

    public function _obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($ids = array(  ))
    {
        $i = 0;
        foreach( $ids as $k => $v ) 
        {
            $id = (int) $v;
            if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 2 )) ) 
            {
                $i++;
            }

        }
        return $i;
    }

    public function _obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($data = array(  ))
    {
        $result = $this->db->UpdateQuery("addon_mta_data", array( "hostname" => $data["hostname"], "username" => $data["username"], "password" => $data["password"], "port" => (int) $data["port"], "name" => $data["name"], "mail_from" => $data["mail_from"], "mail_reply" => $data["mail_reply"], "mail_bounce" => $data["mail_bounce"], "mail_test" => $data["mail_test"] ), "`uid`=" . $data["uid"]);
        return $result;
    }

    public function _obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id)
    {
        $f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id);
        return ($f["exist"] == false ? false : true);
    }

    public function _obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($data = array(  ))
    {
        $valid = array( "hostname", "username", "password", "port", "name", "status", "mail_from", "mail_reply", "mail_bounce", "mail_test" );
        $fields = array(  );
        foreach( $data as $k => $v ) 
        {
            if( in_array($k, $valid) ) 
            {
                $fields[$k] = $v;
            }

        }
        $result = $this->db->UpdateQuery("addon_mta_data", $fields, "`uid`=" . (int) $data["uid"]);
        return $result;
    }

    public function _obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_()
    {
        if( defined("MTA_POPULATE_IPGUARD_IP_BINDING") && MTA_POPULATE_IPGUARD_IP_BINDING != false ) 
        {
            $opts = array( "socket" => array( "bindto" => MTA_POPULATE_IPGUARD_IP_BINDING ) );
            $context = stream_context_create($opts);
            MT::S()->CLI("binding to: " . MTA_POPULATE_IPGUARD_IP_BINDING, "mta-addon-populate-binding", false, $this->log_method);
            return $context;
        }

        MT::S()->CLI("binding to: FALSE", "mta-addon-populate-binding", false, $this->log_method);
    }

    public function _obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_()
    {
        require_once(dirname(__FILE__) . "/class.dom.php");
        if( defined("MTA_POPULATE_IPGUARD_URL") && MTA_POPULATE_IPGUARD_URL != false ) 
        {
            $furl = MTA_POPULATE_IPGUARD_URL;
        }
        else
        {
            $furl = "http://multirbl.valli.org/lookup/184.154.76.66.html";
        }

        MT::S()->CLI($furl, "mta-populate-url", false, $this->log_method);
        if( defined("MTA_POPULATE_IPGUARD_CONTEXT") && MTA_POPULATE_IPGUARD_CONTEXT == true ) 
        {
            $html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl, false, $this->_obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_());
        }
        else
        {
            $html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl);
        }

        if( $html == false ) 
        {
            return false;
        }

        $data = array( "blacklist" => array(  ), "combined" => array(  ), "whitelist" => array(  ), "informational" => array(  ) );
        foreach( $html->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("table[id=dnsbl_data]") as $a ) 
        {
            foreach( $a->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("tr") as $b ) 
            {
                $trid = $b->id;
                if( preg_match("/DNSBLBlacklistTest/i", $trid) ) 
                {
                    $data["blacklist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
                }
                else
                {
                    if( preg_match("/DNSBLCombined/i", $trid) ) 
                    {
                        $data["combined"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
                    }
                    else
                    {
                        if( preg_match("/DNSBLWhitelist/i", $trid) ) 
                        {
                            $data["whitelist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
                        }
                        else
                        {
                            if( preg_match("/DNSBLInformational/i", $trid) ) 
                            {
                                $data["informational"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
                            }

                        }

                    }

                }

            }
        }
        $data["reputation"] = array( array( "name" => "SenderScore score", "url" => "https://www.senderscore.org/faq/", "dns" => "score.senderscore.com" ), array( "name" => "SenderScore complaint", "url" => "https://www.senderscore.org/faq/", "dns" => "cmplt.rating.senderscore.com" ), array( "name" => "SenderScore volume", "url" => "https://www.senderscore.org/faq/", "dns" => "vol.rating.senderscore.com" ), array( "name" => "SenderScore unknown", "url" => "https://www.senderscore.org/faq/", "dns" => "uus.rating.senderscore.com" ), array( "name" => "SenderScore filtered", "url" => "https://www.senderscore.org/faq/", "dns" => "filtered.rating.senderscore.com" ) );
        return $data;
    }

    public function _obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_($data)
    {
        MT::S()->ECH0(PHP_EOL . print_r($data, true), $this->log_method);
    }

    public function _obfuscated_7FB29DBB8C9E9BA4AEA6AD9F85A2BDA58E8FB49FB28581_()
    {
        $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Download RBL data");
        $data = $this->_obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_();
        if( is_array($data) == false ) 
        {
            return false;
        }

        foreach( $data as $k => $v ) 
        {
            foreach( $v as $_k => $_v ) 
            {
                if( !$this->_obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($_v["dns"], $k) && !empty($_v["dns"]) ) 
                {
                    $rbl = array( "name" => $_v["name"], "url" => $_v["url"], "dns" => $_v["dns"], "type" => $k );
                    $result = $this->db->InsertQuery("addon_mta_ipguard", $rbl);
                    if( $result ) 
                    {
                        $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Added new entry: " . print_r($rbl, true));
                    }

                }
                else
                {
                    $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Already Added [" . $k . "]: " . print_r($_v, true));
                }

            }
        }
    }

    public function _obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($dns, $type)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE `dns`='" . $this->db->Quote(trim($dns)) . "' AND `type`='" . $this->db->Quote(trim($type)) . "'";
        $result = $this->db->Query($query);
        return ($this->db->Fetch($result) ? true : false);
    }

    public function _obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type = false)
    {
        $type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : "");
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type . " ORDER BY dns";
        $result = $this->db->Query($query);
        $rbls = array(  );
        while( $row = $this->db->Fetch($result) ) 
        {
            $rbls[] = $row;
        }
        return $rbls;
    }

    public function _obfuscated_7F82B5BE92A2BB89A5AFB29EB7ACBC9BA1A3AD89B2A9A1_($type = false)
    {
        $type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : "");
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type;
        $result = $this->db->Query($query);
        $rbls = array(  );
        while( $row = $this->db->Fetch($result) ) 
        {
            $rbls[] = $row;
        }
        return $rbls;
    }

    public function _obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip)
    {
        switch( MTA_DNS_QUERY_METHOD ) 
        {
            case "php":
                $r = gethostbyname($ip);
                if( !empty($r) ) 
                {
                    $d = explode(".", $r);
                    $rp = ((int) $d[0] == 127 ? (int) $d[3] : false);
                    $res = array( "reply" => $rp, "reply_inet" => $r );
                }
                else
                {
                    $res = array( "reply" => false, "reply_inet" => false );
                }

                break;
            case "dig":
                $op = exec("dig +short " . $ip, $r);
                if( $r && !empty($r[0]) ) 
                {
                    $r = $r[0];
                    $d = explode(".", $r);
                    $rp = ((int) $d[0] == 127 ? (int) $d[3] : false);
                    $res = array( "reply" => $rp, "reply_inet" => $r );
                }
                else
                {
                    $res = array( "reply" => false, "reply_inet" => false );
                }

                break;
            default:
                $com = MTA_NSLOOKUP_BIN . " " . $ip;
                if( MT_TOOLS::S()->_obfuscated_7F8E8F9AAE8A90979F949A868D88C08FABB4A186ACA8A1_() ) 
                {
                    exec($com, $op);
                    if( is_array($op) && 5 < count($op) ) 
                    {
                        $a = trim(str_replace("\"", "", $op[4]));
                        $b = explode(" ", $a);
                        $c = $b[2];
                        $d = explode(".", $c);
                        $res = ((int) $d[0] == 127 ? (int) $d[3] : false);
                        $res = array( "reply" => $res, "reply_inet" => $c );
                    }

                }
                else
                {
                    exec($com, $op);
                    if( is_array($op) && 5 < count($op) ) 
                    {
                        $a = trim(str_replace("\"", "", $op[5]));
                        $b = explode(" ", $a);
                        $c = $b[1];
                        $d = explode(".", $c);
                        $res = ((int) $d[0] == 127 ? (int) $d[3] : false);
                        $res = array( "reply" => $res, "reply_inet" => $c );
                    }

                }

                break;
        }
        return $res;
    }

    public function _obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($dns, $result, $result_inet)
    {
        if( preg_match("/uribl/i", $dns) && $result_inet == "127.0.0.1" ) 
        {
            return false;
        }

        if( 0 < (int) $result && (int) $result < 100 ) 
        {
            return true;
        }

        return false;
    }

    public function _obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $rbl)
    {
        $rip = explode(".", $ip);
        $reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0];
        $res = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($reverse_ip . "." . $rbl);
        return $res;
    }

    public function _obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip = "0.0")
    {
        return (filter_var($ip, FILTER_VALIDATE_IP) ? true : false);
    }

    public function _obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($tld = false)
    {
        if( !$tld ) 
        {
            return false;
        }

        return (preg_match("/^(?:[-A-Za-z0-9]+\\.)+[A-Za-z]{2,6}\$/", trim($tld)) ? true : false);
    }

    public function _obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $dns, $type = "rbl", $_return = false)
    {
        if( $type == "rbl" ) 
        {
            if( !$this->_obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns) ) 
            {
                return false;
            }

            $rip = explode(".", $ip);
            $reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0];
            $ip = $reverse_ip;
        }
        else
        {
            if( $type == "dbl" && (!$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns)) ) 
            {
                return false;
            }

        }

        $ns_result = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip . "." . $dns);
        return ($_return ? array( "query" => $ip . "." . $dns, "result" => $ns_result ) : $ns_result);
    }

    private function _obfuscated_7F839195A78FA290B18A9EA58DB9898AAC83B2888B8C91_()
    {
        $groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_();
        foreach( $groups as $g => $k ) 
        {
            MT::S()->ECH0(PHP_EOL . "|\tGroup: " . MT::S()->color($k["name"], "yellow"), $this->log_method);
            $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]);
            foreach( $mtas as $_k => $_v ) 
            {
                $rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "reputation", $time);
            }
        }
    }

    private function _obfuscated_7F9389839EB39AADA7BBA7978FC0AFA3B38EAE86A7BAA1_()
    {
        $groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_();
        foreach( $groups as $g => $k ) 
        {
            MT::S()->ECH0(PHP_EOL . "|\tGroup: " . MT::S()->color($k["name"], "yellow"), $this->log_method);
            $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]);
            foreach( $mtas as $_k => $_v ) 
            {
                $rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "blacklist", $time);
            }
        }
    }

    /**
     * New IP monitoring API
     */

    private function _obfuscated_7F819BAC93B7839D8A8EB1A99197A498B78FACBDB4AEA1_()
    {
        $sp = "{first sentence|second sentence} {  {His|Her} {car|truck} is {blue|red}. | {She|He} is {feeling|doing} {much|a lot} better.}";
        $data = array( "api_key" => 123, "ip" => "maborak.com" );
        echo 234;
        print_r(MT_TOOLS::S()->api("https://platform.maborak.com/api/dnsbl_service", $data));
        exit();
    }

    public function _obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($mta = array(  ), $type = "reputation", $time = false, $run = false)
    {
        $time = (!$time ? time() : $time);
        $type = (!$type ? "reputation" : $type);
        $rbls = $this->_obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type);
        $result = array(  );
        $ip = gethostbyname($mta["hostname"]);
        if( filter_var($ip, FILTER_VALIDATE_IP) ) 
        {
            $bl = array(  );
            $wl = array(  );
            $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("\tChecking " . $type . " for " . $ip . ":");
            $j = 1;
            $total = count($rbls);
            foreach( $rbls as $k => $v ) 
            {
                if( $type == "reputation" ) 
                {
                    if( $v["dns"] != "score.senderscore.com" ) 
                    {
                        continue;
                    }

                    $result = $this->_obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $v["dns"]);
                    $value = $result["reply"];
                    $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("\t\t" . $v["dns"] . "[" . $result["reply_inet"] . "] : " . $result["reply"]);
                    if( $type == "reputation" && $v["dns"] == "score.senderscore.com" ) 
                    {
                        $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], (int) $value, "reputation", $time);
                    }

                }
                else
                {
                    if( $type == "blacklist" ) 
                    {
                        $result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true);
                        if( $result_query ) 
                        {
                            $value = $result_query["result"]["reply"];
                            $listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]);
                            if( $listed ) 
                            {
                                $bl[] = $v["uid"];
                            }

                            $o = MT::S()->color("OK", "green");
                            $l = MT::S()->color("LISTED", "light_red");
                            $inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty");
                            MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "light_red") : $result_query["query"])), false, $this->log_method);
                            $listed = false;
                        }

                    }
                    else
                    {
                        if( $type == "whitelist" ) 
                        {
                            $result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true);
                            if( $result_query ) 
                            {
                                $value = $result_query["result"]["reply"];
                                $listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]);
                                if( $listed ) 
                                {
                                    $wl[] = $v["uid"];
                                }

                                $o = MT::S()->color("NOT-LISTED", "light_red");
                                $l = MT::S()->color("LISTED", "green");
                                $inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty");
                                MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "green") : $result_query["query"])), false, $this->log_method);
                                $listed = false;
                            }

                        }

                    }

                }

                $j++;
            }
            if( $type == "blacklist" ) 
            {
                $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($bl), "blacklist", $time, implode(",", $bl));
            }
            else
            {
                if( $type == "whitelist" ) 
                {
                    $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($wl), "whitelist", $time, implode(",", $wl));
                }

            }

        }
        else
        {
            $this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Invalid IP: " . $ip);
            $result["result"] = false;
        }

        return $result;
    }

    public function _obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_()
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "usergroups";
        $result = $this->db->Query($query);
        $groups = array(  );
        while( $row = $this->db->Fetch($result) ) 
        {
            $row["users"] = $this->_obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($row["groupid"]);
            $groups[] = $row;
        }
        return $groups;
    }

    public function _obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($group = 0)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE groupid='" . $group . "'";
        $result = $this->db->Query($query);
        $users = array(  );
        while( $row = $this->db->Fetch($result) ) 
        {
            $users[] = $row;
        }
        return $users;
    }

    public function _obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas)
    {
        $optional = 1;
        foreach( $mtas["groups"] as $key => $value ) 
        {
            if( (int) $value["s_force"] != 4 ) 
            {
                return 0;
            }

        }
        return $optional;
    }

    public function _obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas)
    {
        $f = 0;
        foreach( $mtas["groups"] as $key => $value ) 
        {
            if( (int) $value["s_force"] == 1 ) 
            {
                return 1;
            }

        }
        return $f;
    }

    /**
     * Este metodo muestra los MTA Selection en el Email Campaign Step
     * 
     * @return [type] [description]
     * @see $this->__Zend__iem_email_campaign_save_mta()
     */

    private function _obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_()
    {
        $mtas = array(  );
        $mtas["groups"] = $this->_obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_(false, true, false, false);
        $filtered_group = array(  );
        foreach( $mtas["groups"] as $key => $value ) 
        {
            if( (int) $value["s_force"] != 2 && (int) $value["s_force"] != 0 ) 
            {
                $filtered_group[] = $value;
            }

        }
        $mtas["groups"] = $filtered_group;
        $this->template_system->Assign("default", $this->_obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas));
        $this->template_system->Assign("is_forcing", $this->_obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas));
        $this->template_system->Assign("mtas", $mtas, true);
        $this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(false), true);
        $GLOBALS["MTA_SEND_SELECT_MTA"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta", true);
    }

    public function iem_show_mtas_in_email_campaign()
    {
        $this->_obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_();
    }

    private function _obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $data = array(  ))
    {
        $data = $this->_obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_();
        $this->_obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid, $data);
        print_r($data);
        print_r($this->_obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid));
        exit();
    }

    private function _obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid = 0)
    {
        $nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid);
        return $nosql->public_getNode("data");
    }

    private function _obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid = 0, $data = array(  ))
    {
        $nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid);
        return $nosql->public_setNode("data", $data);
    }

    private function _obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_($data = array(  ))
    {
        $log = array(  );
        $user =& GetUser();
        $mtas = array(  );
        $send_details = array(  );
        $forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
        $forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
        $mtas["groups"] = $forced;
        $mtas["groups_mail_settings"] = $forced_mail_settings;
        $log["username"] = $user->username;
        $log["ip"] = $_SERVER["REMOTE_ADDR"];
        $send_details["log"] = $log;
        $send_mta = array( "mtas_uid" => array(  ) );
        $mta_raw = array(  );
        if( isset($data["mta"]) && is_array($data["mta"]) ) 
        {
            foreach( $data["mta"] as $key => $value ) 
            {
                $_mta = explode("_", $value);
                if( count($_mta) != 2 || $_mta[0] != "s" ) 
                {
                    continue;
                }

                $_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]);
                if( $_m["exist"] ) 
                {
                    $group_id = $_m["data"]["mta_group"];
                    if( !isset($mta_raw[$group_id]) ) 
                    {
                        $group_info = $this->group_info($group_id);
                        $mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array(  ) );
                    }

                    $mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"];
                }

            }
        }

        foreach( $mta_raw as $key => $value ) 
        {
            if( array_key_exists($key, $mtas["groups"]) ) 
            {
            }
            else
            {
                $mtas["groups"][$key] = array(  );
                foreach( $value["mtas"] as $akey => $avalue ) 
                {
                    $mtas["groups"][$key][] = $avalue;
                }
            }

        }
        $ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array(  ));
        foreach( $ms as $key => $value ) 
        {
            if( array_key_exists($key, $mtas["groups_mail_settings"]) ) 
            {
                if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) ) 
                {
                    $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
                }

                if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) ) 
                {
                    $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
                }

                if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) ) 
                {
                    $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
                }

            }
            else
            {
                $mtas["groups_mail_settings"][$key] = array(  );
                $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
                $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
                $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
            }

        }
        $gnames = array(  );
        foreach( $mtas["groups"] as $key => $value ) 
        {
            $group_info = $this->group_info($key);
            $gnames[$key] = $group_info[0]["name"];
        }
        $mtas["group_names"] = $gnames;
        $mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 );
        $mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 );
        $mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) );
        $mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false);
        $mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array(  ), "manual" => "None" ));
        $send_details["mta"] = $mtas;
        return $send_details;
    }

    /**
     * Save MTA Accounts in JobDetails
     *
     * @param unknown $send_details
     * @param array $data
     * @param string $is_trigger
     */

    private function _obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_(&$send_details, $data = array(  ), $is_trigger = false)
    {
        $log = array(  );
        $user =& GetUser();
        $mtas = array(  );
        $forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
        $forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
        $mtas["groups"] = $forced;
        $mtas["groups_mail_settings"] = $forced_mail_settings;
        $log["username"] = $user->username;
        $log["ip"] = $_SERVER["REMOTE_ADDR"];
        $send_details["log"] = $log;
        $send_mta = array( "mtas_uid" => array(  ) );
        $mta_raw = array(  );
        if( isset($data["mta"]) && is_array($data["mta"]) ) 
        {
            foreach( $data["mta"] as $key => $value ) 
            {
                $_mta = explode("_", $value);
                if( count($_mta) != 2 || $_mta[0] != "s" ) 
                {
                    continue;
                }

                $_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]);
                if( $_m["exist"] ) 
                {
                    $group_id = $_m["data"]["mta_group"];
                    if( !isset($mta_raw[$group_id]) ) 
                    {
                        $group_info = $this->group_info($group_id);
                        $mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array(  ) );
                    }

                    $mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"];
                }

            }
        }

        foreach( $mta_raw as $key => $value ) 
        {
            if( array_key_exists($key, $mtas["groups"]) ) 
            {
            }
            else
            {
                $mtas["groups"][$key] = array(  );
                foreach( $value["mtas"] as $akey => $avalue ) 
                {
                    $mtas["groups"][$key][] = $avalue;
                }
            }

        }
        $ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array(  ));
        foreach( $ms as $key => $value ) 
        {
            if( array_key_exists($key, $mtas["groups_mail_settings"]) ) 
            {
                if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) ) 
                {
                    $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
                }

                if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) ) 
                {
                    $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
                }

                if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) ) 
                {
                    $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
                }

            }
            else
            {
                $mtas["groups_mail_settings"][$key] = array(  );
                $mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
                $mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
                $mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
            }

        }
        $gnames = array(  );
        foreach( $mtas["groups"] as $key => $value ) 
        {
            $group_info = $this->group_info($key);
            $gnames[$key] = $group_info[0]["name"];
        }
        $mtas["group_names"] = $gnames;
        $mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 );
        $mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 );
        $mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) );
        $mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false);
        $mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array(  ), "manual" => "None" ));
        $headers = $this->_obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($mtas["headers"]["groups"]);
        $this->template_system->Assign("mta_headers", $headers, true);
        $this->template_system->Assign("mta_headers_manual", (!empty($mtas["headers"]["manual"]) ? $mtas["headers"]["manual"] : "none"), true);
        $send_details["mta"] = $mtas;
        $this->template_system->Assign("mta", $send_details["mta"], true);
        $GLOBALS["MTA_SEND_SELECT_MTA_CONFIRM"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta_confirm", true);
    }

    public function iem_email_campaign_save_mta(&$a, $b)
    {
        return $this->_obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_($a, $b);
    }

    public function _obfuscated_7F8191B5968AB783879993B0A6ADB2BCA8B687B09DA1B1_($triggerid, $b)
    {
        return $this->_obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $b);
    }

    public function _obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($id = 0)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2)";
        $data = array(  );
        $result = $this->db->Query($query);
        while( $row = $this->db->Fetch($result) ) 
        {
            $data[$row["uid"]] = array(  );
            $row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
            $row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, false);
            foreach( $row["mtas_data"] as $key => $value ) 
            {
                $data[$row["uid"]][] = $value["uid"];
            }
        }
        return $data;
    }

    public function _obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($gid)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_from=1 OR s_force_from=2)";
        $result = $this->db->Fetch($this->db->Query($query));
        return ($result ? true : false);
    }

    public function _obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($gid)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_reply=1 OR s_force_reply=2)";
        $result = $this->db->Fetch($this->db->Query($query));
        return ($result ? true : false);
    }

    public function _obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($gid)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_bounce=1 OR s_force_bounce=2)";
        $result = $this->db->Fetch($this->db->Query($query));
        return ($result ? true : false);
    }

    public function _obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($id = 0)
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2) OR (s_force_from=1 OR s_force_from=2 OR s_force_reply=1 OR s_force_reply=2 OR s_force_bounce=1 OR s_force_bounce=2)";
        $data = array(  );
        $result = $this->db->Query($query);
        while( $row = $this->db->Fetch($result) ) 
        {
            $data[$row["uid"]] = array(  );
            $data[$row["uid"]]["from"] = ((int) $row["s_force_from"] == 1 || (int) $row["s_force_from"] == 2 ? true : false);
            $data[$row["uid"]]["reply"] = ((int) $row["s_force_reply"] == 1 || (int) $row["s_force_reply"] == 2 ? true : false);
            $data[$row["uid"]]["bounce"] = ((int) $row["s_force_bounce"] == 1 || (int) $row["s_force_bounce"] == 2 ? true : false);
        }
        return $data;
    }

    private function _obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_()
    {
        $m = array(  );
        if( isset($this->mta["groups"]) ) 
        {
            foreach( $this->mta["groups"] as $key => $value ) 
            {
                foreach( $value as $akey => $avalue ) 
                {
                    $m[] = $avalue;
                }
            }
        }

        return $m;
    }

    /**
     * MTA Object
     * Return all the MTA's assigned to the user.
     *
     * @todo Optimizar la seleccion de MTA's
     * @return array The mta accounts in an array.
     */

    private function _obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_()
    {
        $mtas = $this->_obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_();
        $user = GetUser();
        $fromname = $user->Get("fullname");
        $sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">");
        $mo = array(  );
        if( 0 < count($mtas) ) 
        {
            $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid IN(" . implode(",", $mtas) . ") AND status=1";
            $qa = $this->db->Query($query);
            while( ($row = $this->db->Fetch($qa)) != false ) 
            {
                $fn = explode($sep, trim($row["mail_from"]));
                if( 1 < count($fn) ) 
                {
                    $row["mail_from_name"] = trim($fn[0]);
                    $row["mail_from"] = trim($fn[1]);
                }

                $mo[] = $row;
            }
        }

        return $mo;
    }

    private function _obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_()
    {
        $next_in = MTA_NEXT_MTA_AFTER;
        if( !$this->mta["current_mta"] || $this->log_send_counter % $next_in == 0 ) 
        {
            if( MTA_DEFAULT_SORT == "random" ) 
            {
                $switched_mta = $this->_obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($this->mta["objects"]);
            }
            else
            {
                $switched_mta = $this->_obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($this->mta["objects"]);
            }

            return $switched_mta;
        }

        return $this->mta["current_mta"];
    }

    private function _obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($pool = array(  ))
    {
        $rand_key = array_rand($pool, 1);
        return $pool[$rand_key];
    }

    private function _obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($pool = array(  ))
    {
        $this->mta["current_cycle_index"]++;
        if( isset($pool[$this->mta["current_cycle_index"]]) ) 
        {
            return $pool[$this->mta["current_cycle_index"]];
        }

        $this->mta["current_cycle_index"] = 0;
        return $pool[$this->mta["current_cycle_index"]];
    }

    /**
     * Entrada principal de todo el engine SMTP
     *
     * @param object $_this
     *            Email_API object
     * @param unknown $disconnect
     *            We will disconnect?
     */

    public function iem_switch_smtp(&$_this, &$disconnect)
    {
        $this->_this = $_this;
        if( isset($_this->Email_API->statid) && $_this->Email_API->statid != $this->current_statid ) 
        {
            $this->el_html = "";
            $this->current_statid = $_this->Email_API->statid;
        }

        if( empty($this->el_html) ) 
        {
            $this->el_html = $_this->Email_API->body["h"];
        }

        return $this->_obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_($_this, $disconnect);
    }

    /**
     *
     * Quitamos todos los valores procesados para volver a procesarlos
     *
     * @param object $mail_object
     *            Email_API
     */

    public function rebuild_mail($mail_object)
    {
        $mail_object->_AssembledEmail["Headers"]["m"] = NULL;
        $mail_object->_AssembledEmail["Headers"]["t"] = NULL;
        $mail_object->_AssembledEmail["Headers"]["h"] = NULL;
        $mail_object->_AssembledEmail["Body"]["t"] = NULL;
        $mail_object->_AssembledEmail["Body"]["h"] = NULL;
        $mail_object->_AttachmentBody = "";
        $mail_object->_ImageBody = NULL;
        if( !empty($this->el_html) ) 
        {
            $mail_object->body["h"] = $this->el_html;
        }

    }

    /**
     * After the email is sent
     * 
     * @param unknown $_this
     * @param unknown $mail_results
     * @return unknown
     */

    public function iem_log_send_pre(&$_this, $mail_results)
    {
        return $this->_obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_($_this, $mail_results);
    }

    private function _obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_(&$_this, $mail_results)
    {
        if( $this->settings["debug_mail_sent"] ) 
        {
            $this->_obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($_this->Email_API);
        }

        if( isset($_this->jobdetails["mta"]) && isset($this->mta["selection"]) ) 
        {
            $mta_uid = (int) $this->mta["selection"]["mta"]["uid"];
            if( !isset($_this->mta_used_to_sent) ) 
            {
                $_this->mta_used_to_sent = array(  );
            }

            if( !isset($_this->mta_used_to_sent[$mta_uid]) ) 
            {
                $_this->mta_used_to_sent[$mta_uid] = array( "sent" => 0, "failed" => 0 );
            }

            if( 0 < $mail_results["success"] ) 
            {
                $_this->mta_used_to_sent[$mta_uid]["sent"]++;
            }
            else
            {
                $_this->mta_used_to_sent[$mta_uid]["failed"]++;
            }

        }

    }

    /**
     *
     * @param unknown $_this
     * @param unknown $mail_result
     * @param boolean $force
     *            Ask if the campaign finished.
     * @return unknown
     */

    public function iem_log_send(&$_this, $mail_result, $force = false)
    {
        return $this->_obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_($_this, $mail_result, $force);
    }

    private function _obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_(&$_this, $mail_result, $force = false)
    {
        if( ($this->log_send_counter % MTA_COUNTER_TO_UPDATE_STATS == 0 || $force == true) && MTA_COUNTER_ENABLED == true && isset($_this->jobdetails["mta"]) && isset($_this->mta_used_to_sent) ) 
        {
            MT::S()->CLI($_this->mta_used_to_sent, "mta-used-to-send");
            foreach( $_this->mta_used_to_sent as $k => $v ) 
            {
                if( 0 < $v["sent"] ) 
                {
                    $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["sent"], "sent");
                }

                if( 0 < $v["failed"] ) 
                {
                    $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["failed"], "failed");
                }

                $_this->mta_used_to_sent[$k] = array( "sent" => 0, "failed" => 0 );
            }
        }

        if( $force == true ) 
        {
            Mta_API::$instance = NULL;
            $GLOBALS["addon_mta_class"] = NULL;
            if( isset($GLOBALS["addon_spins_class"]) && $GLOBALS["addon_spins_class"] != NULL ) 
            {
            }

        }

    }

    /**
     * Modify the encoding content
     * 
     * @param array $data
     *            [Job details]
     */

    public function _obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($data = array(  ))
    {
        if( isset($data["headers"]) ) 
        {
            $this->encoding = "base64";
            if( $this->encoding == "base64" && isset($this->_this) && isset($this->_this->Email_API) ) 
            {
                $raw_subject = $this->_this->Email_API->Subject;
                if( !preg_match("/" . preg_quote("=?utf-8?B?") . "/", $raw_subject) ) 
                {
                }

            }

        }
        else
        {
            $this->encoding = "8bit";
        }

    }

    /**
     * Modify the headers
     * 
     * @param array $data
     *            [Job details]
     */

    public function _obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($data = array(  ))
    {
        if( isset($this->headers) ) 
        {
            $headers = $this->headers;
        }
        else
        {
            $data_header = array( "data" => array(  ), "multiple" => 1, "manual" => "" );
            if( isset($data["headers"]) && isset($data["headers"]["groups"]) && is_array($data["headers"]["groups"]) ) 
            {
                $groups = $data["headers"]["groups"];
                $data_header["multiple"] = (int) ((isset($data["headers"]["multiple"]) ? $data["headers"]["multiple"] : 1));
                foreach( $groups as $key => $value ) 
                {
                    $uid = (int) $value;
                    $headers_data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid, false);
                    $data_header["data"][] = $headers_data;
                }
            }

            $data_header["manual"] = (isset($data["headers"]["manual"]) && !empty($data["headers"]["manual"]) ? trim($data["headers"]["manual"]) : "");
            $this->headers = $data_header;
        }

        $headers = $this->headers;
        $new_headers = array(  );
        if( 0 < count($headers["data"]) ) 
        {
            switch( $headers["multiple"] ) 
            {
                case 1:
                    $rh = array_rand($headers["data"], 1);
                    $selected = $headers["data"][$rh];
                    if( 1 < count($headers["data"]) || $selected["rotation"] == 1 ) 
                    {
                        $this->internal_email_rebuild = true;
                    }

                    $selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]);
                    foreach( $selected["headers"] as $key => $value ) 
                    {
                        $new_headers[] = $value;
                    }
                    break;
                default:
                    foreach( $headers["data"] as $k => $h ) 
                    {
                        $selected = $h;
                        if( $selected["rotation"] == 1 ) 
                        {
                            $this->internal_email_rebuild = true;
                        }

                        $selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]);
                        foreach( $selected["headers"] as $_k => $_v ) 
                        {
                            $new_headers[] = $_v;
                        }
                    }
                    break;
            }
        }

        foreach( $new_headers as $key => $value ) 
        {
            MT::S()->set_extra_header($value["name"], $value["value"]);
        }
        if( !empty($headers["manual"]) ) 
        {
            $c = explode(PHP_EOL, $headers["manual"]);
            foreach( $c as $k => $v ) 
            {
                $d = explode(":", $v);
                if( 1 < count($d) ) 
                {
                    $___k = trim($d[0]);
                    $sd = array_shift($d);
                    $___v = trim(implode(":", $d));
                    MT::S()->set_extra_header($___k, $___v);
                }

            }
        }

    }

    /**
     * Hacemos el el uso de los MTA's asignados
     *
     * @param unknown $_this
     *            Jobs_Send_API
     * @param unknown $disconnect
     */

    private function _obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_(&$_this, &$disconnect)
    {
        if( !isset($_this->jobdetails["mta"]) ) 
        {
            $user =& GetUser();
            $mtas = array(  );
            $forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
            $forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
            $mtas["groups"] = $forced;
            $mtas["groups_mail_settings"] = $forced_mail_settings;
            $gnames = array(  );
            foreach( $mtas["groups"] as $key => $value ) 
            {
                $group_info = $this->group_info($key);
                $gnames[$key] = $group_info[0]["name"];
            }
            $mtas["group_names"] = $gnames;
            $_this->jobdetails["mta"] = $mtas;
        }

        if( isset($_this->jobdetails["mta"]) ) 
        {
            $this->jobdetails = $_this->jobdetails;
            $this->_obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($_this->jobdetails["mta"]);
            if( $this->internal_email_rebuild === true ) 
            {
                $this->rebuild_mail($_this->Email_API);
            }

            $this->_obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($_this->jobdetails["mta"]);
            $this->_obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($_this);
            if( !isset($this->mta) || $this->mta == NULL ) 
            {
                $this->mta = $_this->jobdetails["mta"];
                $this->mta["sort"] = 2;
                $this->mta["current_mta"] = false;
                $this->mta["current_cycle_index"] = -1;
            }

            if( $this->log_send_counter % MTA_ASK_FOR_SETTINGS_AFTER == 0 ) 
            {
                $this->mta["objects"] = $this->_obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_();
            }

            if( 0 < count($this->mta["objects"]) ) 
            {
                $switched_mta = $this->_obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_();
                if( $switched_mta ) 
                {
                    $this->mta["current_mta"] = $switched_mta;
                    $this->mta["selection"] = array( "mta" => $switched_mta );
                    $this->_obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this);
                    $this->log_send_counter++;
                    $GLOBALS["cmta"] = $switched_mta["hostname"];
                    $this->mta["last_mta"] = $this->mta["current_mta"];
                }

            }

        }
        else
        {
            $this->jobdetails = false;
        }

    }

    private function _obfuscated_7FB4AFA9B08989819A99BBA7BA998F9184B99CB4B5A8B1_()
    {
        $mta_need_new_connection = (!isset($this->mta["last_mta"]) || $this->mta["last_mta"]["hostname"] != $this->mta["current_mta"]["hostname"] || $this->mta["last_mta"]["username"] != $this->mta["current_mta"]["username"] || $this->mta["last_mta"]["password"] != $this->mta["current_mta"]["password"] || $this->mta["last_mta"]["port"] != $this->mta["current_mta"]["port"] ? true : false);
        return $mta_need_new_connection;
    }

    private function _obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this)
    {
        $this->email_api = $_this->Email_API;
        if( $this->mta_need_new_connection() ) 
        {
            $_this->Email_API->_Close_Smtp_Connection();
        }

        $switched_mta = $this->mta["current_mta"];
        if( $this->mta_need_new_connection() ) 
        {
            $switched_mta["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($switched_mta["hostname"]);
            $_this->Email_API->SetSmtp(trim($switched_mta["hostname"]), trim($switched_mta["username"]), trim($switched_mta["password"]), trim($switched_mta["port"]));
        }

        $rebuild_mail = false;
        if( isset($this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]]) ) 
        {
            $mail_settings = $this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]];
            if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) ) 
            {
                if( $_this->Email_API->FromAddress != trim($switched_mta["mail_from"]) ) 
                {
                    $_this->Email_API->Set("FromAddress", trim($switched_mta["mail_from"]));
                    $GLOBALS["addon_mta_umf"] = true;
                    $rebuild_mail = true;
                }

            }
            else
            {
                $GLOBALS["addon_mta_umf"] = false;
            }

            if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) ) 
            {
                if( $_this->Email_API->FromName != trim($switched_mta["mail_from_name"]) && !empty($switched_mta["mail_from_name"]) ) 
                {
                    $_this->Email_API->Set("FromName", trim($switched_mta["mail_from_name"]));
                    $GLOBALS["addon_mta_umf"] = true;
                    $rebuild_mail = true;
                }

            }
            else
            {
                $GLOBALS["addon_mta_umf"] = false;
            }

            if( $mail_settings["reply"] == true && !empty($switched_mta["mail_reply"]) ) 
            {
                if( $_this->Email_API->ReplyTo != trim($switched_mta["mail_reply"]) ) 
                {
                    $_this->Email_API->Set("ReplyTo", trim($switched_mta["mail_reply"]));
                    $GLOBALS["addon_mta_umr"] = true;
                    $rebuild_mail = true;
                }

            }
            else
            {
                $GLOBALS["addon_mta_umr"] = false;
            }

            if( $mail_settings["bounce"] == true && !empty($switched_mta["mail_bounce"]) ) 
            {
                if( $_this->Email_API->BounceAddress != trim($switched_mta["mail_bounce"]) ) 
                {
                    $_this->Email_API->Set("BounceAddress", trim($switched_mta["mail_bounce"]));
                    $GLOBALS["addon_mta_umb"] = true;
                    $rebuild_mail = true;
                }

            }
            else
            {
                $GLOBALS["addon_mta_umb"] = false;
            }

        }
        else
        {
            $GLOBALS["addon_mta_umf"] = false;
            $GLOBALS["addon_mta_umr"] = false;
            $GLOBALS["addon_mta_umb"] = false;
            $GLOBALS["addon_mta_umn"] = false;
        }

        if( $rebuild_mail == true || $this->internal_email_rebuild === true ) 
        {
            $this->rebuild_mail($_this->Email_API);
        }

    }

    private function _obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($mail_object)
    {
        $log_path = IEM_ADDONS_PATH . "/mta/install/backup/maillog.txt";
        $status = ($mail_object->Error ? false : true);
        $t = microtime() - $this->timer;
        $data = (($status ? "[SUCCESS]" : "[FAILED]")) . "[" . $mail_object->_Recipients[0]["address"] . "]" . "[" . $t . " ms]" . (($status ? "" : "[" . $mail_object->Error . "]"));
        file_put_contents($log_path, $data . PHP_EOL, FILE_APPEND);
        $this->timer = microtime();
    }

    public function iem_mta_schedule_details($details)
    {
        return $this->_obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details);
    }

    /**
     * Este metodo muestra informacion del MTA en la pagina Schedule
     * 
     * @param [array] $details
     *            [detalles del MTA]
     * @return [array] [description]
     */

    private function _obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details)
    {
        $job_details = unserialize($details["jobdetails"]);
        if( MT::S()->addon_enabled("spins") ) 
        {
            require_once(IEM_ADDONS_PATH . "/spins/api/spins.php");
            $_api = Spins_API::Singleton();
            if( method_exists($_api, "iem_schedule_info") ) 
            {
                $_api->iem_schedule_info($details);
            }

        }

        $real_send_size = $this->_obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($details["jobid"]);
        $job_details["SendSize"] = (isset($real_send_size["sendsize"]) ? $real_send_size["sendsize"] : $job_details["SendSize"]);
        $ar = (isset($job_details["mta"]) && isset($job_details["mta"]["resend"]) ? $job_details["mta"]["resend"]["times"] : 0);
        MT::S()->mail_info(GetLang("Addon_mta_automatic_resend"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_resend_100_success") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["resend"]["current_time"] . "</b> of <b>" . $ar . "</b>")));
        $ar = (isset($job_details["mta"]) && isset($job_details["mta"]["reschedule"]) ? $job_details["mta"]["reschedule"]["times"] : 0);
        MT::S()->mail_info(GetLang("Addon_mta_automatic_reschedule"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_reschedule_infinity") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["reschedule"]["current_time"] . "</b> of <b>" . $ar . "</b>")));
        $ji = (isset($job_details["mta"]) && isset($job_details["mta"]["pmtajobid"]) ? $job_details["mta"]["pmtajobid"]["enabled"] : 0);
        $pmtajobid = $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($details["jobid"]);
        MT::S()->mail_info(GetLang("Addon_mta_pmta_jobid_add"), ($ji == 0 ? "No" : "Yes" . " <b>[</b>" . $pmtajobid . "<b>]</b>"));
        MT::S()->mail_info(GetLang("Addon_mta_custom_headers"), "Yes");
        if( isset($job_details["mta"]) ) 
        {
            if( isset($job_details["mta"]["groups"]) ) 
            {
                if( count($job_details["mta"]["groups"]) == 0 ) 
                {
                    $job_details["mta"] = false;
                }

            }
            else
            {
                $job_details["mta"] = false;
            }

        }

        $this->template_system->Assign("mail_info", MT::S()->mail_info());
        $this->template_system->Assign("job_id", $details["jobid"]);
        $this->template_system->Assign("job_details", $job_details);
        $GLOBALS["MTA_SCHEDULE_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_title", true);
        $GLOBALS["MTA_SCHEDULE_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_content", true);
    }

    public function iem_mta_stats_details_title()
    {
        if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true ) 
        {
            $style_datatable = $this->template_system->ParseTemplate("css", true);
            if( defined("MTA_SHOW_INBOX_CONVERSIONS") && MTA_SHOW_INBOX_CONVERSIONS == true ) 
            {
                $this->conv = true;
            }

            $lp = "\r\n<script type='text/javascript'>\r\n\$(function(){\r\n\t\$(\"#conversions\").parent().parent().parent().prev().before('<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=\"DashboardPanel\"><tr><td class=\"PanelContent\" valign=\"top\" style=\"height:auto;\"><div id=\"GraphPanel\"><div class=\"PanelHeaderBox1 IndexPage_GettingStarted_Header\" style=\"padding:0px 0px 10px 5px;\"><div id=\"HomeStartTitle\">All Conversions</div></div><hr><div id=\"ct\"></div></div></td></tr></table>');\r\n\t\$.post( \"index.php?Page=Addons&Addon=mta&Action=interface&AJAX=1\",{do:\"conversions_preload\"}, function( data ) {\r\n\t \t\$(\"#ct\").html(data);\r\n\t});\r\n\r\n});\r\n</script>\r\n<link rel=\"stylesheet\" href=\"addons/rbp/third/jq/css/jquery-ui.css\">\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"addons/rbp/third/datatables/css/jquery.dataTables.css\">\r\n<script src=\"addons/installer/third/jquery/latest.js\"></script>\r\n<script type=\"text/javascript\" language=\"javascript\" src=\"addons/rbp/third/datatables/js/jquery.dataTables.js\"></script>" . $style_datatable;
            $GLOBALS["MTA_STATS_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_stats_info_title", true);
        }
        else
        {
            return NULL;
        }

    }

    public function iem_mta_stats_details($statdetails)
    {
        return $this->_obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails);
    }

    /**
     * Este metodo muestra informacion del MTA en la pagina Schedule
     * 
     * @param [type] $details
     *            [detalles del MTA]
     * @return [type] [description]
     */

    private function _obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails)
    {
        if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true ) 
        {
            $mta = $this->_obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statdetails["statid"]);
            $opens = $this->_obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statdetails["statid"], true);
            $clicks = $this->_obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statdetails["statid"]);
            $open_percent = (0 < $opens ? number_format((int) ($opens + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0);
            $click_percent = (0 < $clicks ? number_format((int) ($clicks + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0);
            $this->template_system->Assign("opens", number_format($opens));
            $this->template_system->Assign("opens_percent", number_format($open_percent, 2));
            $this->template_system->Assign("clicks", number_format($clicks));
            $this->template_system->Assign("clicks_percent", number_format($click_percent, 2));
            $this->template_system->Assign("sending_time", (0 < $statdetails["finishtime"] ? $this->_obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($statdetails["finishtime"] - $statdetails["starttime"]) : GetLang("NotFinishedSending")));
            $this->template_system->Assign("mta", $mta);
            if( $this->conv == true ) 
            {
                $c = $this->_obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statdetails["statid"]);
            }

            $mtas = ($mta == false || is_array($mta["group_names"]) && count($mta["group_names"]) == 0 ? "Default" : implode("<br>", $mta["group_names"]));
            $this->template_system->Assign("stat_id", $statdetails["statid"]);
            $GLOBALS["MTA_STATS_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_stats_info_content", true);
        }
        else
        {
            return NULL;
        }

    }

    /**
     * TimeDifference
     * Returns the time difference in an easy format / unit system (eg how many seconds, minutes, hours etc).
     *
     * @param Int $timedifference
     *            Time difference as an integer to transform.
     *            
     * @return String Time difference plus units.
     */

    public function _obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($timedifference)
    {
        if( $timedifference < 60 ) 
        {
            if( $timedifference == 1 ) 
            {
                $timechange = GetLang("TimeTaken_Seconds_One");
            }
            else
            {
                $timechange = sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($timedifference, 0));
            }

        }

        if( 60 <= $timedifference && $timedifference < 3600 ) 
        {
            $num_mins = floor($timedifference / 60);
            $secs = floor($timedifference % 60);
            if( $num_mins == 1 ) 
            {
                $timechange = GetLang("TimeTaken_Minutes_One");
            }
            else
            {
                $timechange = sprintf(GetLang("TimeTaken_Minutes_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($num_mins, 0));
            }

            if( 0 < $secs ) 
            {
                $timechange .= ", " . sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($secs, 0));
            }

        }

        if( 3600 <= $timedifference ) 
        {
            $hours = floor($timedifference / 3600);
            $mins = floor($timedifference % 3600) / 60;
            if( $hours == 1 ) 
            {
                if( $mins == 0 ) 
                {
                    $timechange = GetLang("TimeTaken_Hours_One");
                }
                else
                {
                    $timechange = sprintf(GetLang("TimeTaken_Hours_One_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0));
                }

            }

            if( 1 < $hours ) 
            {
                if( $mins == 0 ) 
                {
                    $timechange = sprintf(GetLang("TimeTaken_Hours_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0));
                }
                else
                {
                    $timechange = sprintf(GetLang("TimeTaken_Hours_Many_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0));
                }

            }

        }

        return $timechange;
    }

    /**
     * FormatNumber
     * Formats the number passed in according to language variables and returns the value.
     *
     * @param Int $number
     *            Number to format
     * @param Int $decimalplaces
     *            Number of decimal places to format to
     *            
     * @see GetLang
     *
     * @return String The number formatted
     */

    public function _obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($number = 0, $decimalplaces = 0)
    {
        return number_format((double) $number, $decimalplaces, GetLang("NumberFormat_Dec"), GetLang("NumberFormat_Thousands"));
    }

    public function _obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statid)
    {
        $row = $this->db->Fetch($this->db->Query("SELECT COUNT(conversion_id) as total FROM " . SENDSTUDIO_TABLEPREFIX . "conversions WHERE c_statid='" . $statid . "'"));
        return (int) $row["total"];
    }

    public function _obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statid, $unique = false)
    {
        $row = $this->db->Fetch($this->db->Query("SELECT COUNT(DISTINCT subscriberid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_emailopens WHERE statid='" . $statid . "'"));
        return (int) $row["total"];
    }

    public function _obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statid)
    {
        $row = $this->db->Fetch($this->db->Query("SELECT COUNT(clickid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_linkclicks WHERE statid='" . $statid . "'"));
        return (int) $row["total"];
    }

    public function _obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statid = 0)
    {
        $result = $this->db->Query("SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'");
        $row = $this->db->Fetch($result);
        if( !$row ) 
        {
            return false;
        }

        $result = $this->db->Query("SELECT jobdetails FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $row["jobid"] . "'");
        $row = $this->db->Fetch($result);
        if( !$row ) 
        {
            return false;
        }

        $job_details = unserialize($row["jobdetails"]);
        if( !isset($job_details["mta"]) ) 
        {
            return false;
        }

        return $job_details["mta"];
    }

    public function _obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid = 0)
    {
        $d = str_replace(".", "_", MT::S()->local_domain());
        return (string) $d . "-" . $jobid;
    }

    public function _obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($jobid = 0)
    {
        $jobid = (int) $jobid;
        if( $jobid <= 0 ) 
        {
            return array(  );
        }

        $query = "SELECT COUNT(statid) AS statcount, SUM(htmlrecipients + textrecipients + multipartrecipients) AS totalsent, SUM(sendsize) AS sendsize FROM " . SENDSTUDIO_TABLEPREFIX . "jobs j, " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters n WHERE j.jobid='" . $jobid . "' AND n.queueid=j.queueid";
        $result = $this->db->Query($query);
        $row = $this->db->Fetch($result);
        if( 1 < $row["statcount"] ) 
        {
            $row["sendsize"] = (int) $row["sendsize"] / $row["statcount"];
        }

        return array( "totalsent" => $row["totalsent"], "sendsize" => $row["sendsize"] );
    }

    public function upgrade()
    {
        $jobs = $this->_obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_();
        foreach( $jobs as $key => $value ) 
        {
            $jobdetails = unserialize($value["jobdetails"]);
            if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["mtas_uid"]) ) 
            {
                $new_details = $this->_obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails);
                $jobdetails["mta"] = $new_details;
                $q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "jobs SET jobdetails='" . $this->db->Quote(serialize($jobdetails)) . "'";
                $result = $this->db->Query($q);
            }
            else
            {
                if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["groups"]) ) 
                {
                }

            }

        }
    }

    /**
     * Upgrade from 3.2 to 3.4
     */

    public function _obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails = array(  ))
    {
        $mtas = array(  );
        $groups = array(  );
        $mtas["groups_mail_settings"] = array(  );
        $mtas["group_names"] = array(  );
        foreach( $jobdetails["mta"]["data"] as $group_key => $group ) 
        {
            $groups[$group_key] = array(  );
            $mtas["groups_mail_settings"][$group_key] = array( "from" => true, "reply" => true, "bounce" => true );
            $mtas["group_names"][$group_key] = $group["group"]["name"];
            foreach( $group["mtas"] as $a => $b ) 
            {
                $groups[$group_key][] = $b;
            }
        }
        $mtas["groups"] = $groups;
        return $mtas;
    }

    public function _obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_()
    {
        $query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send'";
        $result = $this->db->Query($query);
        $data = array(  );
        while( $row = $this->db->Fetch($result) ) 
        {
            $data[] = $row;
        }
        return $data;
    }

    public function _obfuscated_7F99AAA7A29A8B9DB4A984B7A59795AFB384B0AB889AA1_($key = "mta_b", $type = "start")
    {
        if( !isset($GLOBALS["bench_" . $key]) && $type != "start" ) 
        {
            return false;
        }

        if( $type == "start" ) 
        {
            $GLOBALS["bench_" . $key] = array( "start" => time(), "calls" => 0 );
        }
        else
        {
            if( $type == "call" ) 
            {
                $GLOBALS["bench_" . $key]["calls"]++;
            }
            else
            {
                if( $type == "end" ) 
                {
                    $GLOBALS["bench_" . $key]["end"] = time();
                    $GLOBALS["bench_" . $key]["time"] = $GLOBALS["bench_" . $key]["end"] - $GLOBALS["bench_" . $key]["start"];
                    return $GLOBALS["bench_" . $key];
                }

            }

        }

    }

    private function _obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($str)
    {
        $str = str_replace("\r\n", "\n", $str);
        $str = str_replace("\r", "\n", $str);
        $str = str_replace("\n", $this->LE, $str);
        return $str;
    }

    /**
     * Prueba del SMTP
     * 
     * @param array $data
     *            [array]
     * @param boolean $mta
     *            [false]
     * @return [type] [description]
     */

    public function _obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($data = array(  ), $mta = false)
    {
        $user = GetUser();
        $data["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($data["hostname"]);
        $user_email = $user->Get("emailaddress");
        $sf = new SendStudio_Functions();
        $email_test = (empty($data["mail_test"]) ? MTA_DEFAULT_TEST_MAIL : $data["mail_test"]);
        $subject = GetLang("TestSendingSubject");
        $text = GetLang("TestSendingEmail");
        $email_api = $sf->GetApi("Email");
        $smtp = false;
        if( !empty($data["hostname"]) ) 
        {
            $email_api->Set("SMTPServer", trim($data["hostname"]));
            $smtp = true;
        }

        if( !empty($data["username"]) ) 
        {
            $email_api->Set("SMTPUsername", trim($data["username"]));
        }

        if( !empty($data["password"]) ) 
        {
            $email_api->Set("SMTPPassword", trim($data["password"]));
        }

        if( !empty($data["port"]) ) 
        {
            $email_api->Set("SMTPPort", urldecode($data["port"]));
        }

        $email_api->Set("Subject", $subject);
        $email_api->Set("CharSet", SENDSTUDIO_CHARSET);
        $sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">");
        $fromaddress = (!empty($data["mail_from"]) ? $data["mail_from"] : $user_email);
        $fromname = $user->Get("fullname");
        $fn = explode($sep, $fromaddress);
        if( 1 < count($fn) ) 
        {
            $fromname = trim($fn[0]);
            $fromaddress = trim($fn[1]);
        }

        $email_api->Set("FromAddress", $fromaddress);
        $email_api->Set("ReplyTo", (!empty($data["mail_reply"]) ? $data["mail_reply"] : $user_email));
        $email_api->Set("BounceAddress", (!empty($data["mail_bounce"]) ? $data["mail_bounce"] : $user_email));
        $email_api->Set("FromName", $fromname);
        $email_api->Set("Multipart", true);
        $email_api->AddBody("text", $text . "\r\nFormat: Text");
        $email_api->AddBody("html", $text . " <BR> Format: HTML");
        $email_api->AddRecipient($email_test, "", "m");
        $cn = explode("@", $email_api->FromAddress);
        $send_result = $email_api->Send();
        if( $mta ) 
        {
            $this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta, 1, (isset($send_result["success"]) && 0 < $send_result["success"] ? "sent" : "failed"), time());
        }

        $result = array(  );
        $result["success"] = $send_result["success"];
        $result["mail_test"] = $email_test;
        if( isset($send_result["success"]) && 0 < $send_result["success"] ) 
        {
            $result["msg"] = vsprintf(GetLang("TestEmailSent"), $email_test);
        }
        else
        {
            if( $smtp ) 
            {
                $failure = array_shift($send_result["fail"]);
                $result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, htmlspecialchars($failure[1], ENT_QUOTES, SENDSTUDIO_CHARSET));
            }
            else
            {
                $result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, GetLang("ProblemWithLocalMailServer"));
            }

        }

        return $result;
    }

    public function GUI($do = "nothing", $params = array(  ), $tpl = NULL)
    {
        $this->url_params = $params;
        switch( $do ) 
        {
            case "conversions_preload":
                $tpl->ParseTemplate("conversions_preload");
                break;
            case "conversion_load":
                $table = SENDSTUDIO_TABLEPREFIX . "conversions";
                $primaryKey = "conversion_id";
                $columns = array( array( "db" => "date", "dt" => 0, "process" => " FROM_UNIXTIME(date) as date" ), array( "db" => "c_subscriberid", "dt" => 1, "process" => " (SELECT emailaddress from " . SENDSTUDIO_TABLEPREFIX . "list_subscribers WHERE `subscriberid`=c_subscriberid LIMIT 1 ) as c_subscriberid " ), array( "db" => "lead_id", "dt" => 2 ), array( "db" => "affid", "dt" => 3 ), array( "db" => "campid", "dt" => 4 ), array( "db" => "oid", "dt" => 5 ), array( "db" => "cid", "dt" => 6 ), array( "db" => "price", "dt" => 7 ), array( "db" => "c_listid", "dt" => 8, "process" => "(SELECT name FROM " . SENDSTUDIO_TABLEPREFIX . "lists WHERE listid=c_listid LIMIT 1) as c_listid" ), array( "db" => "c_statid", "dt" => 9 ), array( "db" => "subid", "dt" => 10, "process" => "(SELECT data from email_subscribers_data WHERE fieldid=(SELECT fieldid FROM email_customfields WHERE name=\"subid\" LIMIT 1) AND subscriberid=c_subscriberid) as subid" ) );
                $sql_details = array( "user" => SENDSTUDIO_DATABASE_USER, "pass" => SENDSTUDIO_DATABASE_PASS, "db" => SENDSTUDIO_DATABASE_NAME, "host" => SENDSTUDIO_DATABASE_HOST );
                echo json_encode(_obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_::_obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($_POST, $sql_details, $table, $primaryKey, $columns));
                break;
            default:
                break;
        }
    }

    /**
     * Este es todo el handler para las peticiones
     * 
     * @param [type] $n
     *            [tipo de proceso]
     * @return [type] [Template]
     */

    public function cf($n)
    {
        switch( $n ) 
        {
            case "manager":
                $data = $this->group_info();
                $data_json = json_encode($data);
                $hc = count($data) * 70;
                $hc = (!$hc ? 100 : $hc);
                $hc = $hc + 70;
                $this->template_system->Assign("groups", $data, true);
                $this->template_system->Assign("height_count", $hc, true);
                $this->template_system->Assign("data_json", $data_json);
                $this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
                $this->template_system->ParseTemplate("main");
                break;
            case "group":
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
                $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                if( $id != 0 && $f["exist"] == false ) 
                {
                    FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=add_group");
                }

                $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, false, false, false, false, true, true);
                $usergroups = $this->_obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_();
                foreach( $usergroups as $k => $v ) 
                {
                    foreach( $v["users"] as $_k => $_v ) 
                    {
                        $usergroups[$k]["users"][$_k]["mta_user_in_group"] = (in_array($_v["userid"], $f["data"]["users"]) ? 1 : 0);
                    }
                }
                $mta_stats = array(  );
                foreach( $mtas as $k => $v ) 
                {
                }
                $gc = count($mtas);
                $this->template_system->Assign("group_users", $group_users, true);
                $this->template_system->Assign("mtas", $mtas, true);
                $this->template_system->Assign("gcmtas", $gc, true);
                $this->template_system->Assign("usergroups", $usergroups, true);
                $this->template_system->Assign("group_raw", $f["raw"], true);
                $this->template_system->Assign("group", $f["data"], true);
                $this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
                $this->template_system->ParseTemplate("group");
                break;
            case "ajax":
                if( $_SERVER["REQUEST_METHOD"] == "POST" ) 
                {
                    $action = $_POST["do"];
                    $uid = (!empty($_POST["uid"]) ? $_POST["uid"] : 0);
                    $uid = (int) $uid;
                    switch( $action ) 
                    {
                        case "ajax_bulk_test_load_form":
                            $this->template_system->assign("ajax", 1);
                            $this->template_system->assign("do", "display_form");
                            $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($uid, true);
                            $mta_uids = array(  );
                            foreach( $mtas as $key => $value ) 
                            {
                                $mta_uids[] = $value["uid"];
                            }
                            $this->template_system->assign("mtas", $mtas);
                            $form = $this->template_system->ParseTemplate("test_all_mta_accounts", true);
                            echo json_encode(array( "table" => $form, "uids" => $mta_uids ));
                            break;
                        case "mta_test_simple":
                            $test_send_to = (!empty($_POST["test_send_to"]) ? $_POST["test_send_to"] : "[email protected]");
                            MT_TOOLS::S()->flush_session();
                            $mta_details = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
                            $mta_details["data"]["mail_test"] = $test_send_to;
                            $result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($mta_details["data"]);
                            if( $result["success"] ) 
                            {
                                $message = "<span style='color:green;font-weight:bold;'>SUCCESS: </span><span style='color:#749C11;'>Email sent to " . $test_send_to . "</span>";
                            }
                            else
                            {
                                $message = "<span style='color:red;font-weight:bold;'>FAILED:</span> <span style='color:#DB4900;'>" . $result["msg"] . "</span>";
                            }

                            echo json_encode(array( "result" => $result["success"], "message" => $message ));
                            break;
                        case "header_group_list":
                            $this->template_system->Assign("do", "h_groups_list");
                            $this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(), true);
                            $this->template_system->ParseTemplate("headers");
                            break;
                        case "header_group_values":
                            if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) ) 
                            {
                                $data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid);
                            }
                            else
                            {
                                $data = array(  );
                                $data["name"] = "Header-" . time();
                                $data["status"] = 1;
                                $data["rotation"] = 0;
                                $data["headers"] = array( array( "name" => "Test", "value" => "Test-Value" ) );
                            }

                            $this->template_system->Assign("do", "h_values");
                            $this->template_system->Assign("data", $data, true);
                            $this->template_system->ParseTemplate("headers");
                            break;
                        case "header_group_delete":
                            if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) ) 
                            {
                                $this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid);
                            }

                            break;
                        case "header_group_mass":
                            $hdo = (isset($_POST["headers_action"]) ? $_POST["headers_action"] : "none");
                            $uids = (isset($_POST["header_uids"]) ? $_POST["header_uids"] : array(  ));
                            $uids = (is_array($uids) ? $uids : array(  ));
                            foreach( $uids as $key => $value ) 
                            {
                                if( !$this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_((int) $value) ) 
                                {
                                    continue;
                                }

                                switch( $hdo ) 
                                {
                                    case "delete":
                                        $this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($value);
                                        break;
                                    case "active":
                                        $this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, true);
                                        break;
                                    case "inactive":
                                        $this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, false);
                                        break;
                                    case "rotation_on":
                                        $this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, true);
                                        break;
                                    case "rotation_off":
                                        $this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, false);
                                        break;
                                    default:
                                        break;
                                }
                            }
                            break;
                        case "header_group_save":
                            $data = array(  );
                            $rd = (isset($_POST["name"]) && is_array($_POST["name"]) ? $_POST["name"] : array(  ));
                            $vd = (isset($_POST["value"]) && is_array($_POST["value"]) ? $_POST["value"] : array(  ));
                            foreach( $rd as $key => $value ) 
                            {
                                if( trim($value) == "" ) 
                                {
                                    continue;
                                }

                                $data[] = array( "name" => $value, "value" => $vd[$key] );
                            }
                            $name = (isset($_POST["header_name"]) ? $_POST["header_name"] : "Header-NoName");
                            $status = (isset($_POST["status"]) ? $_POST["status"] : 1);
                            $rotation = (isset($_POST["rotation"]) ? $_POST["rotation"] : 0);
                            if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) ) 
                            {
                                $this->_obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid, $name, $data, $status, $rotation);
                            }
                            else
                            {
                                $this->_obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name, $data, $status, $rotation);
                            }

                            break;
                        case "header_group_change_status":
                            $value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0));
                            $this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid, ($value ? true : false));
                            break;
                        case "header_group_change_rotation":
                            $value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0));
                            $this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid, ($value ? true : false));
                            break;
                        case "mta_stat":
                            $mta = (int) ((!empty($_POST["mta"]) ? $_POST["mta"] : 0));
                            $data = $this->_obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta, 20, "daily", "previous", time());
                            echo json_encode($data);
                            break;
                        case "mta_test":
                            $mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
                            if( $mta["exist"] ) 
                            {
                                $result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_(array_merge($mta["data"], $_POST), $mta["data"]["uid"]);
                                echo json_encode($result);
                            }
                            else
                            {
                                echo json_encode(array( "msg" => "mta not found" ));
                            }

                            break;
                        case "mta_modify":
                            $mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
                            if( $mta["exist"] ) 
                            {
                                $result = $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($_POST);
                                echo json_encode(array( "msg" => ($result ? "Saved" : "Failed") ));
                            }
                            else
                            {
                                echo json_encode(array( "msg" => "mta not found" ));
                            }

                            break;
                        default:
                            echo json_encode(array( "msg" => "invalid request" ));
                            break;
                    }
                }
                else
                {
                    $action = $_GET["do"];
                    switch( $action ) 
                    {
                        case "mta_blacklist":
                            $mta_uid = (int) ((!empty($_GET["id"]) ? $_GET["id"] : 0));
                            $mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($mta_uid);
                            if( $mta["exist"] ) 
                            {
                                $bl = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid, time(), "daily");
                                $this->template_system->Assign("mta", $mta, true);
                                $this->template_system->Assign("dnsbl", $bl, true);
                                $this->template_system->ParseTemplate("mta_blacklist");
                            }

                            break;
                        default:
                            echo json_encode(array( "msg" => "invalid request" ));
                            break;
                    }
                }

            case "mass-mta":
                $group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
                $action = (!empty($_POST["mtas_action"]) ? $_POST["mtas_action"] : "none");
                $valid_actions = array( "none", "delete", "active", "inactive" );
                $mtas = (!empty($_POST["mass_mta"]) ? $_POST["mass_mta"] : array(  ));
                if( !in_array($action, $valid_actions) || $action == "none" ) 
                {
                    FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                }
                else
                {
                    $affected = 0;
                    if( $action == "delete" ) 
                    {
                        $affected = $this->_obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($mtas);
                        FlashMessage(sprintf(GetLang("Addon_mta_mass_delete_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                    }
                    else
                    {
                        if( $action == "active" ) 
                        {
                            $affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas);
                            FlashMessage(sprintf(GetLang("Addon_mta_mass_active_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                        }
                        else
                        {
                            if( $action == "inactive" ) 
                            {
                                $affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas);
                                FlashMessage(sprintf(GetLang("Addon_mta_mass_inactive_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                            }

                        }

                    }

                }

                break;
            case "handle-mta":
                $group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
                $group = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($group_id, true);
                $f = $this->mta_details($group_id, $id, true);
                if( $id != 0 && $f["exist"] == false ) 
                {
                    FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                }

                if( $_SERVER["REQUEST_METHOD"] == "POST" ) 
                {
                    if( isset($_POST["test_smtp"]) ) 
                    {
                        if( isset($_POST["uid"]) ) 
                        {
                            $mta = (int) $_POST["uid"];
                        }
                        else
                        {
                            $mta = false;
                        }

                        $result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($_POST, $mta);
                        FlashMessage($result["msg"], (!$result["success"] ? SS_FLASH_MSG_ERROR : SS_FLASH_MSG_SUCCESS), NULL);
                        $group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]);
                        $this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
                        $this->template_system->assign("group", $group["data"], true);
                        $this->template_system->assign("value", $_POST, true);
                        $this->template_system->Assign("FlashMessages", GetFlashMessages());
                        $this->template_system->ParseTemplate("mta_add_mta");
                    }
                    else
                    {
                        if( $_POST["mta_do"] == "update" ) 
                        {
                            $result = $this->_obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($_POST);
                            if( $result ) 
                            {
                                FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                            }
                            else
                            {
                                FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                            }

                        }
                        else
                        {
                            if( $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($_POST) ) 
                            {
                                FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                            }
                            else
                            {
                                FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                            }

                        }

                    }

                }
                else
                {
                    $group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]);
                    $this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
                    $this->template_system->assign("group", $group["data"], true);
                    $this->template_system->assign("value", $f["data"], true);
                    $this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
                    $this->template_system->ParseTemplate("mta_add_mta");
                }

                break;
            case "delete-mta":
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
                $group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
                $f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id);
                if( $f["exist"] == false ) 
                {
                    FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                }
                else
                {
                    $this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id);
                    FlashMessage(GetLang("Addon_mta_mta_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                }

                break;
            case "add-group":
                if( $_SERVER["REQUEST_METHOD"] == "POST" ) 
                {
                    if( $_POST["mta_group_do"] == "update" ) 
                    {
                        $this->_obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($_POST);
                        $na = $this->db->NumAffected();
                        FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager");
                    }
                    else
                    {
                        $ng = $this->_obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($_POST);
                        if( $ng ) 
                        {
                            FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $ng);
                        }
                        else
                        {
                            FlashMessage(GetLang("Addon_mta_group_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
                        }

                    }

                }
                else
                {
                    $id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
                    $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                    if( $id != 0 && $f["exist"] == false ) 
                    {
                        FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager");
                    }

                    $this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
                    $this->template_system->assign("value", $f["data"], true);
                    $this->template_system->ParseTemplate("mta_add_group");
                }

                break;
            case "export-group":
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
                $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                if( $id != 0 && $f["exist"] == false ) 
                {
                    FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
                }

                $mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id);
                $this->template_system->Assign("mtas", $mtas, true);
                $this->template_system->Assign("groupid", $id, true);
                $this->template_system->ParseTemplate("group_export");
                break;
            case "delete-group":
                $id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
                $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                if( $id != 0 && $f["exist"] == false ) 
                {
                    FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager");
                }
                else
                {
                    $this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id);
                    FlashMessage(GetLang("Addon_mta_group_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=Manager");
                }

                break;
            case "add-mta-bulk":
                if( $_SERVER["REQUEST_METHOD"] == "POST" ) 
                {
                    if( !empty($_POST["bulk"]) && isset($_POST["mta_group_uid"]) ) 
                    {
                        $group = (int) $_POST["mta_group_uid"];
                        $data = trim($_POST["bulk"]);
                        $mtas = explode(PHP_EOL, $data);
                        foreach( $mtas as $k => $v ) 
                        {
                            $mta = explode("|", trim($v));
                            $mta_data = array( "hostname" => trim($mta[0]), "username" => trim($mta[1]), "password" => trim($mta[2]), "port" => (empty($mta[3]) ? ADDON_MTA_DEFAULT_SMTP_PORT : $mta[3]), "name" => (empty($mta[4]) ? $mta[0] : $mta[4]), "mail_from" => $mta[5], "mail_reply" => $mta[6], "mail_bounce" => $mta[7], "mail_test" => $mta[8], "mta_group_uid" => $group );
                            $result = $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($mta_data);
                        }
                        FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group);
                    }
                    else
                    {
                        if( isset($_POST["mta_group_uid"]) ) 
                        {
                            $group = (int) $_POST["mta_group_uid"];
                            FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group);
                        }
                        else
                        {
                            FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
                        }

                    }

                }

                break;
            case "process":
                if( $_SERVER["REQUEST_METHOD"] == "POST" ) 
                {
                    $action = (!empty($_POST["do"]) ? $_POST["do"] : "none");
                    $data = (!empty($_POST["data"]) ? $_POST["data"] : array(  ));
                    switch( $action ) 
                    {
                        case "mass_group":
                            $action = (!empty($data["action"]) ? $data["action"] : "none");
                            $valid_actions = array( "none", "delete", "active", "inactive" );
                            $groups = (!empty($data["groups"]) ? $data["groups"] : array(  ));
                            if( !in_array($action, $valid_actions) || $action == "none" ) 
                            {
                                FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
                            }
                            else
                            {
                                $affected = 0;
                                $mtas = array(  );
                                foreach( $groups as $key => $value ) 
                                {
                                    $m = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($value, true);
                                    foreach( $m as $akey => $avalue ) 
                                    {
                                        $mtas[] = $avalue["uid"];
                                    }
                                }
                                if( $action == "delete" ) 
                                {
                                    foreach( $groups as $key => $id ) 
                                    {
                                        $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                                        if( $id != 0 && $f["exist"] == false ) 
                                        {
                                        }
                                        else
                                        {
                                            $this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id);
                                        }

                                    }
                                }
                                else
                                {
                                    if( $action == "active" ) 
                                    {
                                        $affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas);
                                    }
                                    else
                                    {
                                        if( $action == "inactive" ) 
                                        {
                                            $affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas);
                                        }

                                    }

                                }

                            }

                            FlashMessage(GetLang("Addon_mta_group_modified"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager");
                            break;
                        case "group_assign_user":
                            $id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0);
                            $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                            if( $f["exist"] == false ) 
                            {
                                FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
                            }
                            else
                            {
                                $users = (empty($data["users"]) ? array(  ) : $data["users"]);
                                $f = ((int) empty($data["force"]) ? 0 : $data["force"]);
                                $fms = ((int) empty($data["force_ms"]) ? 0 : $data["force_ms"]);
                                $users = (empty($data["users"]) ? array(  ) : $data["users"]);
                                $this->_obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($id, $users, $f, $fms);
                                FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id);
                            }

                            break;
                        case "group_settings":
                            $id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0);
                            $f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
                            if( $f["exist"] == false ) 
                            {
                                FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
                            }
                            else
                            {
                                $force = (int) ((!empty($data["force"]) ? $data["force"] : 0));
                                $force_from = (int) ((!empty($data["force_from"]) ? $data["force_from"] : 0));
                                $force_reply = (int) ((!empty($data["force_reply"]) ? $data["force_reply"] : 0));
                                $force_bounce = (int) ((!empty($data["force_bounce"]) ? $data["force_bounce"] : 0));
                                $result = MT::S()->db->UpdateQuery("addon_mta_group", array( "s_force" => $force, "s_force_from" => $force_from, "s_force_reply" => $force_reply, "s_force_bounce" => $force_bounce ), "`uid`=" . $id);
                                FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id);
                            }

                            break;
                        default:
                            break;
                    }
                }
                else
                {
                    $action = $_GET["do"];
                    break;
                }

            case "sending-errors":
                $jobid = (!empty($_GET["jobid"]) ? $_GET["jobid"] : 0);
                $sending_errors = $this->sending_errors($jobid);
                $this->template_system->assign("data", $sending_errors, true);
                $this->template_system->ParseTemplate("sending_errors");
                break;
            default:
                break;
        }
        break;
    }

    public function _obfuscated_7FA29589998C8EBDB29B9AAFAFA58FB38EA0B79E92B791_($host = "127.0.0.1", $type = "A", $ns = "8.8.8.8")
    {
        $nss = array( "8.8.8.8", "8.8.4.4", "208.67.222.222", "209.244.0.3", "4.2.2.4", "204.97.212.10", "24.244.175.2" );
        $nss = ($ns ? (is_array($ns) ? $ns : array( $ns )) : $nss);
        $data = false;
        foreach( $nss as $key => $value ) 
        {
            $query = new _obfuscated_7FAE8BAA81A5B083A7ABBFA48BA6B69AB6B4A3A3B58E81_($value, 53, 3, true, false, false);
            $result = $query->Query($host, $type);
            $result_count = $result->count;
            for( $a = 0; $a < $result_count; $a++ ) 
            {
                if( $result->results[$a]->typeid == $type ) 
                {
                    $data = $result->results[$a]->data;
                    return $data;
                }

            }
            unset($query);
        }
        return $data;
    }

    public function _obfuscated_7F92AE8F9EAABBB3B794878CB790878BA783A3B69999B1_()
    {
        $socket = @fsockopen("127.0.0.1", 8080, $errno, $errstr, $timeout);
        fwrite($socket, pack("C3", 5, 1, 0));
        $proxy_status = fread($socket, 8192);
        if( $proxy_status == pack("C2", 5, 0) ) 
        {
            $proxy_status = 2;
            fwrite($socket, pack("C5", 5, 1, 0, 3, strlen($server)) . $server . pack("n", $port));
            $proxy_buffer = fread($socket, 8192);
            if( $proxy_buffer == pack("C10", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0) ) 
            {
                $proxy_status = 3;
                $proxy_ready_to_connect = ($proxy_status == 3 ? true : false);
                if( !$proxy_ready_to_connect ) 
                {
                    $this->ErrorCode = 1;
                    $this->Error = sprintf(GetLang("UnableToConnectToEmailServer"), $errstr . "(" . $errno . ")");
                    return false;
                }

            }
            else
            {
                $proxy_status = -3;
                $this->ErrorCode = 3;
                $this->Error = "The SOCKS server failed to connect to the specificed host and port. ( " . $server . ":" . $port . " )";
                fclose($socket);
                $this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error);
                return false;
            }

        }
        else
        {
            $proxy_status = -2;
            $this->ErrorCode = 2;
            $this->Error = "Cannot connect to Proxy";
            fclose($socket);
            $this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error);
            return false;
        }

    }

}

function ___d($data)
{
}

function kio_general_mta()
{
    $p = _obfuscated_0D373C03163331133B3C25073F340B17142208120B1322_();
    return $p["generalk"];
}


Function Calls

defined 1

Variables

None

Stats

MD5 8dafe2f4bd03f5b52174af437335505d
Eval Count 0
Decode Time 605 ms