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 @eval("?>".base64_decode("PD9waHANCg0KDQoNCmluY2x1ZGVfb25jZSgibWVyY2Fkb3BhZ28vbGliLn..

Decoded Output download

?>b'<?php



include_once("mercadopago/lib.php");

function mercadopago_config()

{

    global $CONFIG;

    $configarray = array(

        "FriendlyName" => array(

            "Type" => "System",

            "Value" => "MercadoPago"

        ),

        "links" => array(
            "FriendlyName" => "Links &Uacute;teis",
            "Description" => "| <a href=\'https://www.zeusphp.com.br\' target=\'_blank\'>Suporte T&eacute;cnico</a> | <a href=\'https://zeushosting.com.br/clientarea.php\' target=\'_blank\'>&Aacute;rea de Cliente</a> | <a href=\'https://www.zeusphp.com.br\' target=\'_blank\'>Nosso Site</a>  | ( Vers&atilde;o: 3.0 )"
        ),

	"client_id" => array(

            "FriendlyName" => "Client Id",

            "Type" => "text",

            "Size" => "40",

            "Description" => "Voc&ecirc; pode obter esta informa&ccedil;&atilde;o atrav&eacute;s do MercadoPago da <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Argentina</a>, <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Brasil</a>, <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Col&ocirc;mbia</a>, <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>M&eacute;xico</a> ou <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Venezuela</a>."

        ),

	"client_secret" => array(

            "FriendlyName" => "Client Secret",

            "Type" => "text",

            "Size" => "40",

            "Description" => "Voc&ecirc; pode obter esta informa&ccedil;&atilde;o atrav&eacute;s do MercadoPago da <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Argentina</a>, <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Brasil</a>, <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Col&ocirc;mbia</a>, <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>M&eacute;xico</a> ou <a href=\'https://www.mercadopago.com/mlb/account/credentials\' target=\'_blank\'>Venezuela</a>."

        ),

	"mp-mode" => array(

            "FriendlyName" => "Modo de Abertura",

            "Type" => "dropdown",

            "Options" => "Mesma Janela,Nova Janela,Janela Lightbox,Janela Pop-up",

            "Size" => "30",

            "Description" => "Defina o modo para abrir o processo de pagamento conforme o tipo de janela que prefira para o seu site."

        ),

	"auto_window" => array(

            "FriendlyName" => "Abrir Janela de Pagamento",

            "Type" => "yesno",

            "Description" => "Abrir janela de pagamento automaticamente ao acessar a fatura."

        ),

	"btn_pg_norec" => array(

            "FriendlyName" => "Texto do Bot&atilde;o de Pagamento",

            "Type" => "text",

            "Size" => "30",

            "Default" => "Pagar agora"

        ),

	"taxa_percentual" => array(

            "FriendlyName" => "Taxa Percentual (%)",

            "Type" => "text",

            "Size" => "10",

            "Description" => "Taxa para adicionar &agrave; fatura. Ex: 5 (igual a 5%). O total ser&aacute; somando com a taxa auxiliar, se houver."

        ),

	"taxa_auxiliar" => array(

            "FriendlyName" => "Taxa Auxiliar",

            "Type" => "text",

            "Size" => "10",

            "Description" => "Valor fixo adicional para a fatura. Ex: 0.50 ou 1.00"

        ),

	"estilo" => array(

            "FriendlyName" => "-- Op&ccedil;&otilde;es de CSS",

            "Description" => "(n&atilde;o altere se n&atilde;o tiver certeza.) --"

        ),

	"btn_css" => array(

            "FriendlyName" => "Classe CSS do Bot&atilde;o de Pagamento",

            "Type" => "text",

            "Size" => "30",

            "Default" => "blue-s-rn-tr"

        ),

	"custom_css" => array(

            "FriendlyName" => "CSS Personalizado",

            "Type" => "textarea",

            "Rows" => "5"

        ),

	"UsageNotes" => array(

            "Type" => "System",

            "Value" => "URL para notifica&ccedil;&atilde;o: <b>".$CONFIG["SystemURL"]."/modules/gateways/callback/mercadopago.php</b> - Insira a URL em sua conta MercadoPago da <a href=\'https://www.mercadopago.com.br/ipn-notifications\' target=\'_blank\'>Argentina</a>, <a href=\'https://www.mercadopago.com.br/ipn-notifications\' target=\'_blank\'>Brasil</a>, <a href=\'https://www.mercadopago.com.br/ipn-notifications\' target=\'_blank\'>Col&ocirc;mbia</a>, <a href=\'https://www.mercadopago.com.br/ipn-notifications\' target=\'_blank\'>M&eacute;xico</a> ou <a href=\'https://www.mercadopago.com.br/ipn-notifications\' target=\'_blank\'>Venezuela</a>."

        )

    );

    return $configarray;

}



function mercadopago_link($params)

{



    $taxa_percentual = ( $params[\'amount\'] / 100) * $params[\'taxa_percentual\'];

    $taxa_total = $taxa_percentual + $params[\'taxa_auxiliar\'];

    $valor_total = $params[\'amount\'] + $taxa_total;

    $valor_total = number_format($valor_total, 2, \'.\', \'\');



    $dados = array( "sponsor_id" => "131701457", "external_reference" => $params["invoiceid"], "currency" => $params["currency"], "title" => $params["description"], "description" => $params["description"], "quantity" => 1, "image" => "https://www.mercadopago.com/org-img/MP3/home/logomp3.gif", "amount" => (double) $valor_total, "payment_firstname" => $params["clientdetails"]["firstname"], "payment_lastname" => $params["clientdetails"]["lastname"], "email" => $params["clientdetails"]["email"], "pending" => $params["systemurl"] . "/viewinvoice.php?id=" . $params["invoiceid"] . "&pending=true", "approved" => $params["systemurl"] . "/viewinvoice.php?id=" . $params["invoiceid"] . "&success=true" );

    $exclude = "";

    $type = "initpoint";

    $pagamento = new mpCore($params["client_id"], $params["client_secret"]);

    $retorno1 = $pagamento->GetCheckout($dados, $exclude, $type);



    if( $params["mp-mode"] == "Janela Lightbox" ) $mp_mode = "modal";

    if( $params["mp-mode"] == "Janela Pop-up" ) $mp_mode = "popup";

    if( $params["mp-mode"] == "Nova Janela" ) $mp_mode = "blank";

    if( $params["mp-mode"] == "Mesma Janela" ) $mp_mode = "redirect";



    $recurrings = getRecurringBillingValues($params["invoiceid"]);

    if( $recurrings && !isset($recurrings["firstpaymentamount"]) && $params["assinatura"] ) 

    {

        if( $recurrings["recurringcycleunits"] == "Years" ) 

        {

            $recurrings["recurringcycleunits"] = "months";

            if( $recurrings["recurringcycleperiod"] == 1 ) 

            {

                $recurrings["recurringcycleperiod"] = 12;

            }

            else

            {

                if( $recurrings["recurringcycleperiod"] == 2 ) 

                {

                    $recurrings["recurringcycleperiod"] = 24;

                }

                else

                {

                    if( $recurrings["recurringcycleperiod"] == 3 ) 

                    {

                        $recurrings["recurringcycleperiod"] = 36;

                    }



                }



            }



        }



        $valor_recorrente = $recurrings["recurringamount"] + $taxa_total;

        $valor_recorrente = number_format($valor_recorrente, 2, \'.\', \'\');



        $preapproval_data = array( "sponsor_id" => "131701457", "payer_email" => $params["clientdetails"]["email"], "back_url" => $params["systemurl"] . "/viewinvoice.php?id=" . $params["invoiceid"] . "&success=true", "reason" => $params["description"], "external_reference" => $params["invoiceid"], "auto_recurring" => array( "frequency" => (int) $recurrings["recurringcycleperiod"], "frequency_type" => $recurrings["recurringcycleunits"], "transaction_amount" => (double) $valor_recorrente, "currency_id" => $params["currency"] ) );

        $pagamento = new mpCore($params["client_id"], $params["client_secret"]);

        $retorno2 = $pagamento->create_preapproval_payment($preapproval_data, "initpoint");



        $code = "<a href=\"" . $retorno1 . "\" name=\"MP-payButton\" id=\"MP-payButton\" class=\"".$params["btn_css"]."\" mp-mode=\"".$mp_mode."\">".$params["btn_pg_norec"]."</a><a href=\"" . $retorno2 . "\" name=\"MP-payButton\" class=\"".$params["btn_css"]."\" mp-mode=\"".$mp_mode."\">".$params["btn_pg_rec"]."</a><script type=\"text/javascript\" src=\"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js\"></script><style>".$params["custom_css"]."</style>";

        if ( $params[\'auto_window\'] && !$_GET["pending"] && !$_GET["success"] ) {

            $code .= "<script type=\"text/javascript\">document.getElementById(\"MP-payButton\").click();</script>";

        }

        if ( $params[\'taxa_percentual\'] || $params[\'taxa_auxiliar\'] ) {

            $code .= "<p>Taxa adicional: " . formatCurrency($taxa_total) . "</p>";

            $code .= "<p>Valor total &agrave; pagar: " . formatCurrency($valor_total) . "</p>";

        }

        return $code;

    }



    $code = "<a href=\"" . $retorno1 . "\" name=\"MP-payButton\" id=\"MP-payButton\" class=\"".$params["btn_css"]."\" mp-mode=\"".$mp_mode."\">".$params["btn_pg_norec"]."</a><script type=\"text/javascript\" src=\"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js\"></script><style>".$params["custom_css"]."</style>";

    if ( $params[\'auto_window\'] && !$_GET["pending"] && !$_GET["success"] ) {

        $code .= "<script type=\"text/javascript\">document.getElementById(\"MP-payButton\").click();</script>";

    }

    if ( $params[\'taxa_percentual\'] || $params[\'taxa_auxiliar\'] ) {

        $code .= "<p>Taxa adicional: " . formatCurrency($taxa_total) . "</p>";

        $code .= "<p>Valor total &agrave; pagar: " . formatCurrency($valor_total) . "</p>";

    }

    return $code;

}





function template_refund($params)

{

    $gatewayusername = $params["username"];

    $gatewaytestmode = $params["testmode"];

    $transid = $params["transid"];

    $amount = $params["amount"];

    $currency = $params["currency"];

    $firstname = $params["clientdetails"]["firstname"];

    $lastname = $params["clientdetails"]["lastname"];

    $email = $params["clientdetails"]["email"];

    $address1 = $params["clientdetails"]["address1"];

    $address2 = $params["clientdetails"]["address2"];

    $city = $params["clientdetails"]["city"];

    $state = $params["clientdetails"]["state"];

    $postcode = $params["clientdetails"]["postcode"];

    $country = $params["clientdetails"]["country"];

    $phone = $params["clientdetails"]["phonenumber"];

    $cardtype = $params["cardtype"];

    $cardnumber = $params["cardnum"];

    $cardexpiry = $params["cardexp"];

    $cardstart = $params["cardstart"];

    $cardissuenum = $params["cardissuenum"];

    $results = array(  );

    $results["status"] = "success";

    $results["transid"] = "12345";

    if( $results["status"] == "success" ) 

    {

        return array( "status" => "success", "transid" => $results["transid"], "rawdata" => $results );

    }



    if( $gatewayresult == "declined" ) 

    {

        return array( "status" => "declined", "rawdata" => $results );

    }



    return array( "status" => "error", "rawdata" => $results );

}
'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHANCg0KDQoNCmluY2x1ZGVfb25jZSgibWVyY2Fkb3BhZ28vbGliLnBocCIpOw0KDQpmdW5jdGlvbiBtZXJjYWRvcGFnb19jb25maWcoKQ0KDQp7DQoNCiAgICBnbG9iYWwgJENPTkZJRzsNCg0KICAgICRjb25maWdhcnJheSA9IGFycmF5KA0KDQogICAgICAgICJGcmllbmRseU5hbWUiID0+IGFycmF5KA0KDQogICAgICAgICAgICAiVHlwZSIgPT4gIlN5c3RlbSIsDQoNCiAgICAgICAgICAgICJWYWx1ZSIgPT4gIk1lcmNhZG9QYWdvIg0KDQogICAgICAgICksDQoNCiAgICAgICAgImxpbmtzIiA9PiBhcnJheSgNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJMaW5rcyAmVWFjdXRlO3RlaXMiLA0KICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiA9PiAifCA8YSBocmVmPSdodHRwczovL3d3dy56ZXVzcGhwLmNvbS5icicgdGFyZ2V0PSdfYmxhbmsnPlN1cG9ydGUgVCZlYWN1dGU7Y25pY288L2E+IHwgPGEgaHJlZj0naHR0cHM6Ly96ZXVzaG9zdGluZy5jb20uYnIvY2xpZW50YXJlYS5waHAnIHRhcmdldD0nX2JsYW5rJz4mQWFjdXRlO3JlYSBkZSBDbGllbnRlPC9hPiB8IDxhIGhyZWY9J2h0dHBzOi8vd3d3LnpldXNwaHAuY29tLmJyJyB0YXJnZXQ9J19ibGFuayc+Tm9zc28gU2l0ZTwvYT4gIHwgKCBWZXJzJmF0aWxkZTtvOiAzLjAgKSINCiAgICAgICAgKSwNCg0KCSJjbGllbnRfaWQiID0+IGFycmF5KA0KDQogICAgICAgICAgICAiRnJpZW5kbHlOYW1lIiA9PiAiQ2xpZW50IElkIiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJ0ZXh0IiwNCg0KICAgICAgICAgICAgIlNpemUiID0+ICI0MCIsDQoNCiAgICAgICAgICAgICJEZXNjcmlwdGlvbiIgPT4gIlZvYyZlY2lyYzsgcG9kZSBvYnRlciBlc3RhIGluZm9ybWEmY2NlZGlsOyZhdGlsZGU7byBhdHJhdiZlYWN1dGU7cyBkbyBNZXJjYWRvUGFnbyBkYSA8YSBocmVmPSdodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vbWxiL2FjY291bnQvY3JlZGVudGlhbHMnIHRhcmdldD0nX2JsYW5rJz5BcmdlbnRpbmE8L2E+LCA8YSBocmVmPSdodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vbWxiL2FjY291bnQvY3JlZGVudGlhbHMnIHRhcmdldD0nX2JsYW5rJz5CcmFzaWw8L2E+LCA8YSBocmVmPSdodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vbWxiL2FjY291bnQvY3JlZGVudGlhbHMnIHRhcmdldD0nX2JsYW5rJz5Db2wmb2NpcmM7bWJpYTwvYT4sIDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS9tbGIvYWNjb3VudC9jcmVkZW50aWFscycgdGFyZ2V0PSdfYmxhbmsnPk0mZWFjdXRlO3hpY288L2E+IG91IDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS9tbGIvYWNjb3VudC9jcmVkZW50aWFscycgdGFyZ2V0PSdfYmxhbmsnPlZlbmV6dWVsYTwvYT4uIg0KDQogICAgICAgICksDQoNCgkiY2xpZW50X3NlY3JldCIgPT4gYXJyYXkoDQoNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJDbGllbnQgU2VjcmV0IiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJ0ZXh0IiwNCg0KICAgICAgICAgICAgIlNpemUiID0+ICI0MCIsDQoNCiAgICAgICAgICAgICJEZXNjcmlwdGlvbiIgPT4gIlZvYyZlY2lyYzsgcG9kZSBvYnRlciBlc3RhIGluZm9ybWEmY2NlZGlsOyZhdGlsZGU7byBhdHJhdiZlYWN1dGU7cyBkbyBNZXJjYWRvUGFnbyBkYSA8YSBocmVmPSdodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vbWxiL2FjY291bnQvY3JlZGVudGlhbHMnIHRhcmdldD0nX2JsYW5rJz5BcmdlbnRpbmE8L2E+LCA8YSBocmVmPSdodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vbWxiL2FjY291bnQvY3JlZGVudGlhbHMnIHRhcmdldD0nX2JsYW5rJz5CcmFzaWw8L2E+LCA8YSBocmVmPSdodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vbWxiL2FjY291bnQvY3JlZGVudGlhbHMnIHRhcmdldD0nX2JsYW5rJz5Db2wmb2NpcmM7bWJpYTwvYT4sIDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS9tbGIvYWNjb3VudC9jcmVkZW50aWFscycgdGFyZ2V0PSdfYmxhbmsnPk0mZWFjdXRlO3hpY288L2E+IG91IDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS9tbGIvYWNjb3VudC9jcmVkZW50aWFscycgdGFyZ2V0PSdfYmxhbmsnPlZlbmV6dWVsYTwvYT4uIg0KDQogICAgICAgICksDQoNCgkibXAtbW9kZSIgPT4gYXJyYXkoDQoNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJNb2RvIGRlIEFiZXJ0dXJhIiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJkcm9wZG93biIsDQoNCiAgICAgICAgICAgICJPcHRpb25zIiA9PiAiTWVzbWEgSmFuZWxhLE5vdmEgSmFuZWxhLEphbmVsYSBMaWdodGJveCxKYW5lbGEgUG9wLXVwIiwNCg0KICAgICAgICAgICAgIlNpemUiID0+ICIzMCIsDQoNCiAgICAgICAgICAgICJEZXNjcmlwdGlvbiIgPT4gIkRlZmluYSBvIG1vZG8gcGFyYSBhYnJpciBvIHByb2Nlc3NvIGRlIHBhZ2FtZW50byBjb25mb3JtZSBvIHRpcG8gZGUgamFuZWxhIHF1ZSBwcmVmaXJhIHBhcmEgbyBzZXUgc2l0ZS4iDQoNCiAgICAgICAgKSwNCg0KCSJhdXRvX3dpbmRvdyIgPT4gYXJyYXkoDQoNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJBYnJpciBKYW5lbGEgZGUgUGFnYW1lbnRvIiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJ5ZXNubyIsDQoNCiAgICAgICAgICAgICJEZXNjcmlwdGlvbiIgPT4gIkFicmlyIGphbmVsYSBkZSBwYWdhbWVudG8gYXV0b21hdGljYW1lbnRlIGFvIGFjZXNzYXIgYSBmYXR1cmEuIg0KDQogICAgICAgICksDQoNCgkiYnRuX3BnX25vcmVjIiA9PiBhcnJheSgNCg0KICAgICAgICAgICAgIkZyaWVuZGx5TmFtZSIgPT4gIlRleHRvIGRvIEJvdCZhdGlsZGU7byBkZSBQYWdhbWVudG8iLA0KDQogICAgICAgICAgICAiVHlwZSIgPT4gInRleHQiLA0KDQogICAgICAgICAgICAiU2l6ZSIgPT4gIjMwIiwNCg0KICAgICAgICAgICAgIkRlZmF1bHQiID0+ICJQYWdhciBhZ29yYSINCg0KICAgICAgICApLA0KDQoJInRheGFfcGVyY2VudHVhbCIgPT4gYXJyYXkoDQoNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJUYXhhIFBlcmNlbnR1YWwgKCUpIiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJ0ZXh0IiwNCg0KICAgICAgICAgICAgIlNpemUiID0+ICIxMCIsDQoNCiAgICAgICAgICAgICJEZXNjcmlwdGlvbiIgPT4gIlRheGEgcGFyYSBhZGljaW9uYXIgJmFncmF2ZTsgZmF0dXJhLiBFeDogNSAoaWd1YWwgYSA1JSkuIE8gdG90YWwgc2VyJmFhY3V0ZTsgc29tYW5kbyBjb20gYSB0YXhhIGF1eGlsaWFyLCBzZSBob3V2ZXIuIg0KDQogICAgICAgICksDQoNCgkidGF4YV9hdXhpbGlhciIgPT4gYXJyYXkoDQoNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJUYXhhIEF1eGlsaWFyIiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJ0ZXh0IiwNCg0KICAgICAgICAgICAgIlNpemUiID0+ICIxMCIsDQoNCiAgICAgICAgICAgICJEZXNjcmlwdGlvbiIgPT4gIlZhbG9yIGZpeG8gYWRpY2lvbmFsIHBhcmEgYSBmYXR1cmEuIEV4OiAwLjUwIG91IDEuMDAiDQoNCiAgICAgICAgKSwNCg0KCSJlc3RpbG8iID0+IGFycmF5KA0KDQogICAgICAgICAgICAiRnJpZW5kbHlOYW1lIiA9PiAiLS0gT3AmY2NlZGlsOyZvdGlsZGU7ZXMgZGUgQ1NTIiwNCg0KICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiA9PiAiKG4mYXRpbGRlO28gYWx0ZXJlIHNlIG4mYXRpbGRlO28gdGl2ZXIgY2VydGV6YS4pIC0tIg0KDQogICAgICAgICksDQoNCgkiYnRuX2NzcyIgPT4gYXJyYXkoDQoNCiAgICAgICAgICAgICJGcmllbmRseU5hbWUiID0+ICJDbGFzc2UgQ1NTIGRvIEJvdCZhdGlsZGU7byBkZSBQYWdhbWVudG8iLA0KDQogICAgICAgICAgICAiVHlwZSIgPT4gInRleHQiLA0KDQogICAgICAgICAgICAiU2l6ZSIgPT4gIjMwIiwNCg0KICAgICAgICAgICAgIkRlZmF1bHQiID0+ICJibHVlLXMtcm4tdHIiDQoNCiAgICAgICAgKSwNCg0KCSJjdXN0b21fY3NzIiA9PiBhcnJheSgNCg0KICAgICAgICAgICAgIkZyaWVuZGx5TmFtZSIgPT4gIkNTUyBQZXJzb25hbGl6YWRvIiwNCg0KICAgICAgICAgICAgIlR5cGUiID0+ICJ0ZXh0YXJlYSIsDQoNCiAgICAgICAgICAgICJSb3dzIiA9PiAiNSINCg0KICAgICAgICApLA0KDQoJIlVzYWdlTm90ZXMiID0+IGFycmF5KA0KDQogICAgICAgICAgICAiVHlwZSIgPT4gIlN5c3RlbSIsDQoNCiAgICAgICAgICAgICJWYWx1ZSIgPT4gIlVSTCBwYXJhIG5vdGlmaWNhJmNjZWRpbDsmYXRpbGRlO286IDxiPiIuJENPTkZJR1siU3lzdGVtVVJMIl0uIi9tb2R1bGVzL2dhdGV3YXlzL2NhbGxiYWNrL21lcmNhZG9wYWdvLnBocDwvYj4gLSBJbnNpcmEgYSBVUkwgZW0gc3VhIGNvbnRhIE1lcmNhZG9QYWdvIGRhIDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS5ici9pcG4tbm90aWZpY2F0aW9ucycgdGFyZ2V0PSdfYmxhbmsnPkFyZ2VudGluYTwvYT4sIDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS5ici9pcG4tbm90aWZpY2F0aW9ucycgdGFyZ2V0PSdfYmxhbmsnPkJyYXNpbDwvYT4sIDxhIGhyZWY9J2h0dHBzOi8vd3d3Lm1lcmNhZG9wYWdvLmNvbS5ici9pcG4tbm90aWZpY2F0aW9ucycgdGFyZ2V0PSdfYmxhbmsnPkNvbCZvY2lyYzttYmlhPC9hPiwgPGEgaHJlZj0naHR0cHM6Ly93d3cubWVyY2Fkb3BhZ28uY29tLmJyL2lwbi1ub3RpZmljYXRpb25zJyB0YXJnZXQ9J19ibGFuayc+TSZlYWN1dGU7eGljbzwvYT4gb3UgPGEgaHJlZj0naHR0cHM6Ly93d3cubWVyY2Fkb3BhZ28uY29tLmJyL2lwbi1ub3RpZmljYXRpb25zJyB0YXJnZXQ9J19ibGFuayc+VmVuZXp1ZWxhPC9hPi4iDQoNCiAgICAgICAgKQ0KDQogICAgKTsNCg0KICAgIHJldHVybiAkY29uZmlnYXJyYXk7DQoNCn0NCg0KDQoNCmZ1bmN0aW9uIG1lcmNhZG9wYWdvX2xpbmsoJHBhcmFtcykNCg0Kew0KDQoNCg0KICAgICR0YXhhX3BlcmNlbnR1YWwgPSAoICRwYXJhbXNbJ2Ftb3VudCddIC8gMTAwKSAqICRwYXJhbXNbJ3RheGFfcGVyY2VudHVhbCddOw0KDQogICAgJHRheGFfdG90YWwgPSAkdGF4YV9wZXJjZW50dWFsICsgJHBhcmFtc1sndGF4YV9hdXhpbGlhciddOw0KDQogICAgJHZhbG9yX3RvdGFsID0gJHBhcmFtc1snYW1vdW50J10gKyAkdGF4YV90b3RhbDsNCg0KICAgICR2YWxvcl90b3RhbCA9IG51bWJlcl9mb3JtYXQoJHZhbG9yX3RvdGFsLCAyLCAnLicsICcnKTsNCg0KDQoNCiAgICAkZGFkb3MgPSBhcnJheSggInNwb25zb3JfaWQiID0+ICIxMzE3MDE0NTciLCAiZXh0ZXJuYWxfcmVmZXJlbmNlIiA9PiAkcGFyYW1zWyJpbnZvaWNlaWQiXSwgImN1cnJlbmN5IiA9PiAkcGFyYW1zWyJjdXJyZW5jeSJdLCAidGl0bGUiID0+ICRwYXJhbXNbImRlc2NyaXB0aW9uIl0sICJkZXNjcmlwdGlvbiIgPT4gJHBhcmFtc1siZGVzY3JpcHRpb24iXSwgInF1YW50aXR5IiA9PiAxLCAiaW1hZ2UiID0+ICJodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vb3JnLWltZy9NUDMvaG9tZS9sb2dvbXAzLmdpZiIsICJhbW91bnQiID0+IChkb3VibGUpICR2YWxvcl90b3RhbCwgInBheW1lbnRfZmlyc3RuYW1lIiA9PiAkcGFyYW1zWyJjbGllbnRkZXRhaWxzIl1bImZpcnN0bmFtZSJdLCAicGF5bWVudF9sYXN0bmFtZSIgPT4gJHBhcmFtc1siY2xpZW50ZGV0YWlscyJdWyJsYXN0bmFtZSJdLCAiZW1haWwiID0+ICRwYXJhbXNbImNsaWVudGRldGFpbHMiXVsiZW1haWwiXSwgInBlbmRpbmciID0+ICRwYXJhbXNbInN5c3RlbXVybCJdIC4gIi92aWV3aW52b2ljZS5waHA/aWQ9IiAuICRwYXJhbXNbImludm9pY2VpZCJdIC4gIiZwZW5kaW5nPXRydWUiLCAiYXBwcm92ZWQiID0+ICRwYXJhbXNbInN5c3RlbXVybCJdIC4gIi92aWV3aW52b2ljZS5waHA/aWQ9IiAuICRwYXJhbXNbImludm9pY2VpZCJdIC4gIiZzdWNjZXNzPXRydWUiICk7DQoNCiAgICAkZXhjbHVkZSA9ICIiOw0KDQogICAgJHR5cGUgPSAiaW5pdHBvaW50IjsNCg0KICAgICRwYWdhbWVudG8gPSBuZXcgbXBDb3JlKCRwYXJhbXNbImNsaWVudF9pZCJdLCAkcGFyYW1zWyJjbGllbnRfc2VjcmV0Il0pOw0KDQogICAgJHJldG9ybm8xID0gJHBhZ2FtZW50by0+R2V0Q2hlY2tvdXQoJGRhZG9zLCAkZXhjbHVkZSwgJHR5cGUpOw0KDQoNCg0KICAgIGlmKCAkcGFyYW1zWyJtcC1tb2RlIl0gPT0gIkphbmVsYSBMaWdodGJveCIgKSAkbXBfbW9kZSA9ICJtb2RhbCI7DQoNCiAgICBpZiggJHBhcmFtc1sibXAtbW9kZSJdID09ICJKYW5lbGEgUG9wLXVwIiApICRtcF9tb2RlID0gInBvcHVwIjsNCg0KICAgIGlmKCAkcGFyYW1zWyJtcC1tb2RlIl0gPT0gIk5vdmEgSmFuZWxhIiApICRtcF9tb2RlID0gImJsYW5rIjsNCg0KICAgIGlmKCAkcGFyYW1zWyJtcC1tb2RlIl0gPT0gIk1lc21hIEphbmVsYSIgKSAkbXBfbW9kZSA9ICJyZWRpcmVjdCI7DQoNCg0KDQogICAgJHJlY3VycmluZ3MgPSBnZXRSZWN1cnJpbmdCaWxsaW5nVmFsdWVzKCRwYXJhbXNbImludm9pY2VpZCJdKTsNCg0KICAgIGlmKCAkcmVjdXJyaW5ncyAmJiAhaXNzZXQoJHJlY3VycmluZ3NbImZpcnN0cGF5bWVudGFtb3VudCJdKSAmJiAkcGFyYW1zWyJhc3NpbmF0dXJhIl0gKSANCg0KICAgIHsNCg0KICAgICAgICBpZiggJHJlY3VycmluZ3NbInJlY3VycmluZ2N5Y2xldW5pdHMiXSA9PSAiWWVhcnMiICkgDQoNCiAgICAgICAgew0KDQogICAgICAgICAgICAkcmVjdXJyaW5nc1sicmVjdXJyaW5nY3ljbGV1bml0cyJdID0gIm1vbnRocyI7DQoNCiAgICAgICAgICAgIGlmKCAkcmVjdXJyaW5nc1sicmVjdXJyaW5nY3ljbGVwZXJpb2QiXSA9PSAxICkgDQoNCiAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICRyZWN1cnJpbmdzWyJyZWN1cnJpbmdjeWNsZXBlcmlvZCJdID0gMTI7DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZWxzZQ0KDQogICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICBpZiggJHJlY3VycmluZ3NbInJlY3VycmluZ2N5Y2xlcGVyaW9kIl0gPT0gMiApIA0KDQogICAgICAgICAgICAgICAgew0KDQogICAgICAgICAgICAgICAgICAgICRyZWN1cnJpbmdzWyJyZWN1cnJpbmdjeWNsZXBlcmlvZCJdID0gMjQ7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBlbHNlDQoNCiAgICAgICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYoICRyZWN1cnJpbmdzWyJyZWN1cnJpbmdjeWNsZXBlcmlvZCJdID09IDMgKSANCg0KICAgICAgICAgICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWN1cnJpbmdzWyJyZWN1cnJpbmdjeWNsZXBlcmlvZCJdID0gMzY7DQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQoNCg0KICAgICAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgICAkdmFsb3JfcmVjb3JyZW50ZSA9ICRyZWN1cnJpbmdzWyJyZWN1cnJpbmdhbW91bnQiXSArICR0YXhhX3RvdGFsOw0KDQogICAgICAgICR2YWxvcl9yZWNvcnJlbnRlID0gbnVtYmVyX2Zvcm1hdCgkdmFsb3JfcmVjb3JyZW50ZSwgMiwgJy4nLCAnJyk7DQoNCg0KDQogICAgICAgICRwcmVhcHByb3ZhbF9kYXRhID0gYXJyYXkoICJzcG9uc29yX2lkIiA9PiAiMTMxNzAxNDU3IiwgInBheWVyX2VtYWlsIiA9PiAkcGFyYW1zWyJjbGllbnRkZXRhaWxzIl1bImVtYWlsIl0sICJiYWNrX3VybCIgPT4gJHBhcmFtc1sic3lzdGVtdXJsIl0gLiAiL3ZpZXdpbnZvaWNlLnBocD9pZD0iIC4gJHBhcmFtc1siaW52b2ljZWlkIl0gLiAiJnN1Y2Nlc3M9dHJ1ZSIsICJyZWFzb24iID0+ICRwYXJhbXNbImRlc2NyaXB0aW9uIl0sICJleHRlcm5hbF9yZWZlcmVuY2UiID0+ICRwYXJhbXNbImludm9pY2VpZCJdLCAiYXV0b19yZWN1cnJpbmciID0+IGFycmF5KCAiZnJlcXVlbmN5IiA9PiAoaW50KSAkcmVjdXJyaW5nc1sicmVjdXJyaW5nY3ljbGVwZXJpb2QiXSwgImZyZXF1ZW5jeV90eXBlIiA9PiAkcmVjdXJyaW5nc1sicmVjdXJyaW5nY3ljbGV1bml0cyJdLCAidHJhbnNhY3Rpb25fYW1vdW50IiA9PiAoZG91YmxlKSAkdmFsb3JfcmVjb3JyZW50ZSwgImN1cnJlbmN5X2lkIiA9PiAkcGFyYW1zWyJjdXJyZW5jeSJdICkgKTsNCg0KICAgICAgICAkcGFnYW1lbnRvID0gbmV3IG1wQ29yZSgkcGFyYW1zWyJjbGllbnRfaWQiXSwgJHBhcmFtc1siY2xpZW50X3NlY3JldCJdKTsNCg0KICAgICAgICAkcmV0b3JubzIgPSAkcGFnYW1lbnRvLT5jcmVhdGVfcHJlYXBwcm92YWxfcGF5bWVudCgkcHJlYXBwcm92YWxfZGF0YSwgImluaXRwb2ludCIpOw0KDQoNCg0KICAgICAgICAkY29kZSA9ICI8YSBocmVmPVwiIiAuICRyZXRvcm5vMSAuICJcIiBuYW1lPVwiTVAtcGF5QnV0dG9uXCIgaWQ9XCJNUC1wYXlCdXR0b25cIiBjbGFzcz1cIiIuJHBhcmFtc1siYnRuX2NzcyJdLiJcIiBtcC1tb2RlPVwiIi4kbXBfbW9kZS4iXCI+Ii4kcGFyYW1zWyJidG5fcGdfbm9yZWMiXS4iPC9hPjxhIGhyZWY9XCIiIC4gJHJldG9ybm8yIC4gIlwiIG5hbWU9XCJNUC1wYXlCdXR0b25cIiBjbGFzcz1cIiIuJHBhcmFtc1siYnRuX2NzcyJdLiJcIiBtcC1tb2RlPVwiIi4kbXBfbW9kZS4iXCI+Ii4kcGFyYW1zWyJidG5fcGdfcmVjIl0uIjwvYT48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiBzcmM9XCJodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vb3JnLWltZy9qc2FwaS9tcHRvb2xzL2J1dHRvbnMvcmVuZGVyLmpzXCI+PC9zY3JpcHQ+PHN0eWxlPiIuJHBhcmFtc1siY3VzdG9tX2NzcyJdLiI8L3N0eWxlPiI7DQoNCiAgICAgICAgaWYgKCAkcGFyYW1zWydhdXRvX3dpbmRvdyddICYmICEkX0dFVFsicGVuZGluZyJdICYmICEkX0dFVFsic3VjY2VzcyJdICkgew0KDQogICAgICAgICAgICAkY29kZSAuPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJNUC1wYXlCdXR0b25cIikuY2xpY2soKTs8L3NjcmlwdD4iOw0KDQogICAgICAgIH0NCg0KICAgICAgICBpZiAoICRwYXJhbXNbJ3RheGFfcGVyY2VudHVhbCddIHx8ICRwYXJhbXNbJ3RheGFfYXV4aWxpYXInXSApIHsNCg0KICAgICAgICAgICAgJGNvZGUgLj0gIjxwPlRheGEgYWRpY2lvbmFsOiAiIC4gZm9ybWF0Q3VycmVuY3koJHRheGFfdG90YWwpIC4gIjwvcD4iOw0KDQogICAgICAgICAgICAkY29kZSAuPSAiPHA+VmFsb3IgdG90YWwgJmFncmF2ZTsgcGFnYXI6ICIgLiBmb3JtYXRDdXJyZW5jeSgkdmFsb3JfdG90YWwpIC4gIjwvcD4iOw0KDQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gJGNvZGU7DQoNCiAgICB9DQoNCg0KDQogICAgJGNvZGUgPSAiPGEgaHJlZj1cIiIgLiAkcmV0b3JubzEgLiAiXCIgbmFtZT1cIk1QLXBheUJ1dHRvblwiIGlkPVwiTVAtcGF5QnV0dG9uXCIgY2xhc3M9XCIiLiRwYXJhbXNbImJ0bl9jc3MiXS4iXCIgbXAtbW9kZT1cIiIuJG1wX21vZGUuIlwiPiIuJHBhcmFtc1siYnRuX3BnX25vcmVjIl0uIjwvYT48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiBzcmM9XCJodHRwczovL3d3dy5tZXJjYWRvcGFnby5jb20vb3JnLWltZy9qc2FwaS9tcHRvb2xzL2J1dHRvbnMvcmVuZGVyLmpzXCI+PC9zY3JpcHQ+PHN0eWxlPiIuJHBhcmFtc1siY3VzdG9tX2NzcyJdLiI8L3N0eWxlPiI7DQoNCiAgICBpZiAoICRwYXJhbXNbJ2F1dG9fd2luZG93J10gJiYgISRfR0VUWyJwZW5kaW5nIl0gJiYgISRfR0VUWyJzdWNjZXNzIl0gKSB7DQoNCiAgICAgICAgJGNvZGUgLj0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiTVAtcGF5QnV0dG9uXCIpLmNsaWNrKCk7PC9zY3JpcHQ+IjsNCg0KICAgIH0NCg0KICAgIGlmICggJHBhcmFtc1sndGF4YV9wZXJjZW50dWFsJ10gfHwgJHBhcmFtc1sndGF4YV9hdXhpbGlhciddICkgew0KDQogICAgICAgICRjb2RlIC49ICI8cD5UYXhhIGFkaWNpb25hbDogIiAuIGZvcm1hdEN1cnJlbmN5KCR0YXhhX3RvdGFsKSAuICI8L3A+IjsNCg0KICAgICAgICAkY29kZSAuPSAiPHA+VmFsb3IgdG90YWwgJmFncmF2ZTsgcGFnYXI6ICIgLiBmb3JtYXRDdXJyZW5jeSgkdmFsb3JfdG90YWwpIC4gIjwvcD4iOw0KDQogICAgfQ0KDQogICAgcmV0dXJuICRjb2RlOw0KDQp9DQoNCg0KDQoNCg0KZnVuY3Rpb24gdGVtcGxhdGVfcmVmdW5kKCRwYXJhbXMpDQoNCnsNCg0KICAgICRnYXRld2F5dXNlcm5hbWUgPSAkcGFyYW1zWyJ1c2VybmFtZSJdOw0KDQogICAgJGdhdGV3YXl0ZXN0bW9kZSA9ICRwYXJhbXNbInRlc3Rtb2RlIl07DQoNCiAgICAkdHJhbnNpZCA9ICRwYXJhbXNbInRyYW5zaWQiXTsNCg0KICAgICRhbW91bnQgPSAkcGFyYW1zWyJhbW91bnQiXTsNCg0KICAgICRjdXJyZW5jeSA9ICRwYXJhbXNbImN1cnJlbmN5Il07DQoNCiAgICAkZmlyc3RuYW1lID0gJHBhcmFtc1siY2xpZW50ZGV0YWlscyJdWyJmaXJzdG5hbWUiXTsNCg0KICAgICRsYXN0bmFtZSA9ICRwYXJhbXNbImNsaWVudGRldGFpbHMiXVsibGFzdG5hbWUiXTsNCg0KICAgICRlbWFpbCA9ICRwYXJhbXNbImNsaWVudGRldGFpbHMiXVsiZW1haWwiXTsNCg0KICAgICRhZGRyZXNzMSA9ICRwYXJhbXNbImNsaWVudGRldGFpbHMiXVsiYWRkcmVzczEiXTsNCg0KICAgICRhZGRyZXNzMiA9ICRwYXJhbXNbImNsaWVudGRldGFpbHMiXVsiYWRkcmVzczIiXTsNCg0KICAgICRjaXR5ID0gJHBhcmFtc1siY2xpZW50ZGV0YWlscyJdWyJjaXR5Il07DQoNCiAgICAkc3RhdGUgPSAkcGFyYW1zWyJjbGllbnRkZXRhaWxzIl1bInN0YXRlIl07DQoNCiAgICAkcG9zdGNvZGUgPSAkcGFyYW1zWyJjbGllbnRkZXRhaWxzIl1bInBvc3Rjb2RlIl07DQoNCiAgICAkY291bnRyeSA9ICRwYXJhbXNbImNsaWVudGRldGFpbHMiXVsiY291bnRyeSJdOw0KDQogICAgJHBob25lID0gJHBhcmFtc1siY2xpZW50ZGV0YWlscyJdWyJwaG9uZW51bWJlciJdOw0KDQogICAgJGNhcmR0eXBlID0gJHBhcmFtc1siY2FyZHR5cGUiXTsNCg0KICAgICRjYXJkbnVtYmVyID0gJHBhcmFtc1siY2FyZG51bSJdOw0KDQogICAgJGNhcmRleHBpcnkgPSAkcGFyYW1zWyJjYXJkZXhwIl07DQoNCiAgICAkY2FyZHN0YXJ0ID0gJHBhcmFtc1siY2FyZHN0YXJ0Il07DQoNCiAgICAkY2FyZGlzc3VlbnVtID0gJHBhcmFtc1siY2FyZGlzc3VlbnVtIl07DQoNCiAgICAkcmVzdWx0cyA9IGFycmF5KCAgKTsNCg0KICAgICRyZXN1bHRzWyJzdGF0dXMiXSA9ICJzdWNjZXNzIjsNCg0KICAgICRyZXN1bHRzWyJ0cmFuc2lkIl0gPSAiMTIzNDUiOw0KDQogICAgaWYoICRyZXN1bHRzWyJzdGF0dXMiXSA9PSAic3VjY2VzcyIgKSANCg0KICAgIHsNCg0KICAgICAgICByZXR1cm4gYXJyYXkoICJzdGF0dXMiID0+ICJzdWNjZXNzIiwgInRyYW5zaWQiID0+ICRyZXN1bHRzWyJ0cmFuc2lkIl0sICJyYXdkYXRhIiA9PiAkcmVzdWx0cyApOw0KDQogICAgfQ0KDQoNCg0KICAgIGlmKCAkZ2F0ZXdheXJlc3VsdCA9PSAiZGVjbGluZWQiICkgDQoNCiAgICB7DQoNCiAgICAgICAgcmV0dXJuIGFycmF5KCAic3RhdHVzIiA9PiAiZGVjbGluZWQiLCAicmF3ZGF0YSIgPT4gJHJlc3VsdHMgKTsNCg0KICAgIH0NCg0KDQoNCiAgICByZXR1cm4gYXJyYXkoICJzdGF0dXMiID0+ICJlcnJvciIsICJyYXdkYXRhIiA9PiAkcmVzdWx0cyApOw0KDQp9DQo="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 ee9cd279bf3240e009e16327a14126db
Eval Count 1
Decode Time 204 ms