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 namespace Drupal\miniorange_saml\Controller; use Drupal\Core\Field\EntityRef..
Decoded Output download
<?php
namespace Drupal\miniorange_saml\Controller;
use Drupal\Core\Field\EntityReferenceFieldItemList;
use Drupal\miniorange_saml\HigherUtilities;
use Drupal\profile\Entity\Profile;
use Drupal\taxonomy\Entity\Term;
use Drupal\user\Entity\User;
use Drupal\Component\Utility\Xss;
use Drupal\Core\Form\FormBuilder;
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\miniorange_saml\Utilities;
use Drupal\miniorange_saml\MiniOrangeAcs;
use Drupal\miniorange_saml\AESEncryption;
use Drupal\Core\Controller\ControllerBase;
use Drupal\miniorange_saml\XMLSecurityKey;
use Drupal\miniorange_saml\XMLSecurityDSig;
use Drupal\Core\Ajax\OpenModalDialogCommand;
use Drupal\views\Controller\ViewAjaxController;
use Drupal\views\Plugin\views\area\Entity;
use Symfony\Component\HttpFoundation\Response;
use Drupal\miniorange_saml\MiniOrangeAuthnRequest;
use Drupal\miniorange_saml\MiniorangeSAMLCustomer;
use Drupal\miniorange_saml\MiniorangeSAMLConstants;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\DependencyInjection\ContainerInterface;
class miniorange_samlController extends ControllerBase
{
protected $formBuilder;
public function __construct(FormBuilder $Zk)
{
$this->formBuilder = $Zk;
}
public static function saml_login($Y7 = '', $sS = '')
{
$XC = \Drupal::config("miniorange_saml.settings");
if (!(!$XC->get("miniorange_saml_enable_login") && strcasecmp($sS, "testValidate") != 0)) {
goto y9;
}
$Tk = "Can not initiate SSO.";
$IV = '';
$Bh = "SSO is not enabled.";
Utilities::showErrorMessage($Tk, $IV, $Bh, TRUE);
return new Response();
y9:
\Drupal::service("page_cache_kill_switch")->trigger();
$qd = $XC->get("miniorange_saml_default_relaystate");
$Dd = $XC->get("miniorange_saml_request_signed");
$dx = $XC->get("security_signature_algorithm");
$KT = $XC->get("miniorange_saml_http_binding");
$kn = isset($_REQUEST["destination"]) ? trim($_REQUEST["destination"], "'") : '';
if (empty($sS)) {
goto cg;
}
$kn = $sS;
cg:
if (!empty($kn)) {
goto XV;
}
$kn = $qd;
XV:
if (!empty($kn)) {
goto OD;
}
$kn = $Y7;
OD:
if (!(empty($kn) && isset($_SERVER["HTTP_REFERER"]))) {
goto xw;
}
$kn = $_SERVER["HTTP_REFERER"];
xw:
if (!empty($kn)) {
goto RH;
}
$kn = Utilities::getBaseUrl();
RH:
\Drupal::moduleHandler()->invokeAll("get_updated_relayState", [$_GET, &$kn]);
$QT = Utilities::getAcsUrl();
$Wl = $XC->get("miniorange_saml_idp_login_url");
$zI = $XC->get("miniorange_saml_nameid_format");
$YZ = new MiniOrangeAuthnRequest();
$YZ->initiateLogin($QT, $Wl, Utilities::getIssuer(), $kn, $zI, $KT, $Dd, $dx);
return new Response();
}
public static function create(ContainerInterface $GG)
{
return new static($GG->get("form_builder"));
}
public function saml_response()
{
global $base_url;
global $CE;
if (isset($_GET["SAMLResponse"])) {
goto Qy;
}
$XC = \Drupal::config("miniorange_saml.settings");
$pA = (array) json_decode($XC->get("miniorange_saml_custom_attrs_map_arr"));
$Yb = new MiniOrangeAcs();
$Ek = $XC->get("minorange_saml_customer_admin_fraud_check");
$vJ = $XC->get("miniorange_saml_customer_admin_token");
$MI = $XC->get("miniorange_saml_customer_admin_email");
$MW = \Drupal::request()->server->get("DOCUMENT_ROOT") . $CE;
$R4 = trim($base_url, "/");
if (preg_match("#^http(s)?://#", $R4)) {
goto s1;
}
$R4 = "http://" . $R4;
s1:
$sK = parse_url($R4);
$VY = isset($sK["path"]) ? $sK["path"] : '';
$lQ = preg_replace("/^www\./", '', $sK["host"] . $VY);
$rv = $MW . $lQ;
$M4 = $XC->get("miniorange_saml_isMultiSitePluginRequested") == true;
if (($M4 || $rv == AESEncryption::decrypt_data($Ek, $vJ) || $rv == AESEncryption::decrypt_data($Ek, $vJ, "AES-128-ECB")) && $MI != null && $MI != '') {
goto di;
}
if ($MI != null && $MI != '') {
goto Ib;
}
if (!($MI == null || $MI == '')) {
goto E8;
}
$Tk = "You are not logged in.";
$IV = "Please login first to activate single sign on.";
$Bh = "Make sure you have logged in/ Register in to module.";
Utilities::showErrorMessage($Tk, $IV, $Bh);
E8:
goto bm;
Ib:
if (isset($_POST["RelayState"]) && $_POST["RelayState"] == "testValidate") {
goto IY;
}
$Tk = "We could not sign you in.";
$IV = "Please Contact your administrator.";
Utilities::showErrorMessage($Tk, $IV, "-");
goto pi;
IY:
$Tk = "License key you have entered has already been used.";
$IV = "Please enter a key which has not been used before on any other instance or if you have exausted all your keys then buy more license from Licensing.";
Utilities::showErrorMessage($Tk, $IV, "-");
pi:
bm:
goto Z7;
di:
$h0 = $Yb->processSamlResponse($_POST, $pA);
$rO = $h0["response"];
$mj = $h0["resources"];
Z7:
if (!(MiniorangeSAMLConstants::PLUGIN_VERSION == MiniorangeSAMLConstants::ENTERPRISE_VERSION && \Drupal\miniorange_saml\HigherUtilities::Is_Restricted_Domain($rO["email"]) === TRUE)) {
goto Sd;
}
$Tk = "You are not allowed to login ";
$IV = "Please Contact your administrator.";
$Bh = "Your domain may be blocked by admin";
Utilities::showErrorMessage($Tk, $IV, $Bh);
Sd:
if ($XC->get("miniorange_saml_load_user") == 1) {
goto ul;
}
$jI = user_load_by_name($rO["username"]);
goto Vv;
ul:
$jI = user_load_by_mail($rO["email"]);
Vv:
$my = 0;
if (!($jI == NULL)) {
goto i2;
}
$C1 = $XC->get("miniorange_saml_disable_autocreate_users");
if ($C1) {
goto WO;
}
$ax = user_password(8);
$WX = $XC->get("miniorange_saml_default_role");
$XO = ["name" => $rO["username"], "mail" => $rO["email"], "pass" => $ax, "status" => 1];
$jI = User::create($XO);
$jI->save();
if (!($WX != "authenticated" && $XC->get("miniorange_saml_enable_rolemapping"))) {
goto W3;
}
$jI->addRole($WX);
$jI->save();
W3:
goto FF;
WO:
$Tk = "Account does not exist with your username.";
$IV = "Please Contact your administrator.";
$Bh = "Auto creation of user is not allowed if user does not exist.";
Utilities::showErrorMessage($Tk, $IV, $Bh);
FF:
i2:
$lA = array();
$lA = $rO["customFieldAttributes"];
$jI = User::load($jI->id());
$GO = json_decode($XC->get("miniorange_saml_custom_attrs_map_sep"));
foreach ($lA as $Tg => $dO) {
$qi = $jI->get($Tg);
$PU = $qi->getFieldDefinition();
$Rq = $PU->getFieldStorageDefinition();
if ($Rq->getType() === "entity_reference") {
goto v7;
}
if (Utilities::isMultiple($Tg) && !is_null($GO->{$Tg})) {
goto Sv;
}
$VI = array($dO);
goto iG;
Sv:
$VI = explode($GO->{$Tg}, $dO);
iG:
$jI->get($Tg)->setValue($VI);
$jI->save();
goto aC;
v7:
$pp = $Rq->getSetting("target_type");
$l2 = $PU->getSetting("handler_settings");
$xX = \Drupal::entityTypeManager()->getStorage($pp)->loadMultiple(NULL);
if (!isset($l2["target_bundles"])) {
goto ti;
}
if (Utilities::isMultiple($Tg) && !is_null($GO->{$Tg})) {
goto jU;
}
$VI = array($dO);
goto h_;
jU:
$VI = explode($GO->{$Tg}, $dO);
h_:
$A_ = [];
$Dy = [];
foreach ($VI as $dO) {
$xX = \Drupal::entityTypeManager()->getStorage($pp)->loadByProperties(["name" => $dO]);
$Nd = false;
foreach ($xX as $S4) {
if (!in_array($S4->bundle(), $l2["target_bundles"])) {
goto k5;
}
$A_[] = $S4->id();
$Nd = true;
k5:
C2:
}
Nb:
if ($Nd) {
goto sc;
}
$Dy[] = $dO;
sc:
Fs:
}
w3:
$rC = isset($l2["auto_create"]) ? $l2["auto_create"] : false;
$E7 = isset($l2["auto_create_bundle"]) ? $l2["auto_create_bundle"] : '';
if (!($rC && $pp == "taxonomy_term")) {
goto q3;
}
foreach ($Dy as $Hs) {
$za = Term::create(["name" => $Hs, "vid" => $E7]);
$za->save();
$A_[] = $za->id();
g1:
}
ce:
q3:
$qi->setValue($A_);
$jI->save();
ti:
aC:
KH:
}
z0:
if (!(!is_null($jI) && $XC->get("miniorange_saml_enable_rolemapping"))) {
goto my;
}
$uu = $XC->get("miniorange_saml_role_mapping_arr") != null ? (array) json_decode($XC->get("miniorange_saml_role_mapping_arr")) : [];
$Hz = array();
$Hz = $rO["customFieldRoles"];
$cn = \Drupal::configFactory()->getEditable("miniorange_saml.settings")->get("miniorange_saml_disable_role_update");
$uJ = $jI->getRoles();
if ($cn) {
goto xh;
}
foreach ($uJ as $Tg => $dO) {
if (in_array($dO, array_keys($uu))) {
goto TF;
}
if (!($dO != $XC->get("miniorange_saml_default_role"))) {
goto zF;
}
$jI->removeRole($dO);
$jI->save();
zF:
TF:
XW:
}
z2:
xh:
foreach ($uu as $Tg => $dO) {
$Yc = FALSE;
$cF = explode(";", $dO);
foreach ($cF as $jt => $jW) {
if (!(is_array($Hz) && in_array($jW, $Hz))) {
goto wo;
}
$Yc = TRUE;
wo:
eD:
}
Uc:
if ($Yc && $Tg != "authenticated") {
goto Cs;
}
$jI->removeRole($Tg);
$jI->save();
goto oO;
Cs:
$jI->addRole($Tg);
$jI->save();
oO:
VT:
}
td:
my:
$z0 = $XC->get("miniorange_saml_enable_profile_mapping");
if (!(MiniorangeSAMLConstants::PLUGIN_VERSION == MiniorangeSAMLConstants::ENTERPRISE_VERSION && $z0)) {
goto Ie;
}
HigherUtilities::profileFieldMapping($jI, $mj);
Ie:
if (user_is_blocked($rO["username"]) == FALSE) {
goto BT;
}
$Tk = "User Blocked By Administrator.";
$IV = "Please Contact your administrator.";
$Bh = "This user account is not allowed to login.";
Utilities::showErrorMessage($Tk, $IV, $Bh);
return new Response();
goto ZF;
BT:
if (!(array_key_exists("relay_state", $rO) && !empty($rO["relay_state"]))) {
goto we;
}
$Yu = $rO["relay_state"];
we:
$oY = Utilities::getBaseUrl();
if (!(empty($Yu) || $Yu == "/")) {
goto PK;
}
$Yu = $oY;
PK:
$_SESSION["sessionIndex"] = $rO["sessionIndex"];
$_SESSION["NameID"] = $rO["NameID"];
$_SESSION["mo_saml"]["logged_in_with_idp"] = TRUE;
\Drupal::moduleHandler()->invokeAll("invoke_miniorange_2fa_before_login", [$jI]);
\Drupal::moduleHandler()->invokeAll("miniorange_saml_idp_resources", [$jI, $mj]);
user_login_finalize($jI);
if (!($XC->get("miniorange_saml_restrict_redirect_outside_domain") == TRUE)) {
goto a8;
}
$q_ = parse_url($Yu);
$tV = parse_url($oY);
$HE = isset($tV["host"]) ? $tV["host"] : FALSE;
$kR = isset($q_["host"]) ? $q_["host"] : FALSE;
if (!($kR !== FALSE && $HE !== $kR)) {
goto Fj;
}
$Yk = $Yu;
$Yu = $oY;
$Hi = $XC->get("miniorange_saml_whitelist_domains");
$hS = explode(";", $Hi);
foreach ($hS as $yM) {
if (!($yM == '' or $yM == "/")) {
goto iw;
}
goto Bl;
iw:
if (!(strpos($kR, trim($yM)) !== false)) {
goto o5;
}
$Yu = $Yk;
goto br;
o5:
Bl:
}
br:
Fj:
a8:
\Drupal::moduleHandler()->invokeAll("headless_sso_redirect", [$jI, $Yu]);
$rO = new RedirectResponse($Yu);
$gl = \Drupal::request();
$gl->getSession()->save();
$rO->prepare($gl);
\Drupal::service("kernel")->terminate($gl, $rO);
$rO->send();
exit;
return new Response();
ZF:
goto A5;
Qy:
$gl = \Drupal::request();
$gl->getSession()->clear();
$rO = new RedirectResponse(Utilities::getBaseUrl());
$rO->send();
return new Response();
A5:
return new Response();
}
static function saml_logout()
{
$XC = \Drupal::config("miniorange_saml.settings");
$dx = $XC->get("security_signature_algorithm");
$Sb = Utilities::getBaseUrl();
$QW = Utilities::getRedirectUrAfterLogout($Sb);
$Tf = $XC->get("miniorange_saml_idp_logout_url");
$FO = $XC->get("miniorange_saml_slo_http_binding");
if (!empty($Tf)) {
goto gE;
}
$gl = \Drupal::request();
$gl->getSession()->clear();
$rO = new RedirectResponse($QW);
$rO->send();
return new Response();
goto B5;
gE:
if (!\Drupal::service("session")->getId() || \Drupal::service("session")->getId() == '' || !isset($_SESSION)) {
goto px;
}
if (!isset($_SESSION["mo_saml"]["logged_in_with_idp"])) {
goto W_;
}
unset($_SESSION["mo_saml"]);
$lV = $_SESSION["sessionIndex"];
$IY = $_SESSION["NameID"];
Utilities::checkIfLogoutRequest($_REQUEST, $_GET);
$KQ = $Sb;
$El = Utilities::createLogoutRequest($IY, Utilities::getIssuer(), $Tf, $FO, $lV);
$Dd = $XC->get("miniorange_saml_request_signed");
if (empty($FO) || $FO == "HTTP-Redirect") {
goto Ua;
}
if ($Dd) {
goto J0;
}
$Xn = base64_encode($El);
Utilities::postSAMLRequest($Tf, $Xn, $KQ);
exit;
J0:
$Xn = Utilities::signXML($El, Utilities::getPublicCertificate(), Utilities::getPrivateKey(), $dx, "NameID");
Utilities::postSAMLRequest($Tf, $Xn, $KQ);
goto t5;
Ua:
$El = "SAMLRequest=" . $El . "&RelayState=" . urlencode($KQ);
$kh = $Tf;
if (strpos($Tf, "?") !== false) {
goto M_;
}
$kh .= "?";
goto Fh;
M_:
$kh .= "&";
Fh:
if (!$Dd) {
goto IG;
}
if ($dx == "RSA_SHA256") {
goto jg;
}
if ($dx == "RSA_SHA384") {
goto N0;
}
if ($dx == "RSA_SHA512") {
goto NK;
}
if ($dx == "RSA_SHA1") {
goto wr;
}
goto Ga;
jg:
$El .= "&SigAlg=" . urlencode(XMLSecurityKey::RSA_SHA256);
goto Ga;
N0:
$El .= "&SigAlg=" . urlencode(XMLSecurityKey::RSA_SHA384);
goto Ga;
NK:
$El .= "&SigAlg=" . urlencode(XMLSecurityKey::RSA_SHA512);
goto Ga;
wr:
$El .= "&SigAlg=" . urlencode(XMLSecurityKey::RSA_SHA1);
Ga:
$Kb = array("type" => "private");
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $Kb);
if ($dx == "RSA_SHA384") {
goto mX;
}
if ($dx == "RSA_SHA512") {
goto aW;
}
if ($dx == "RSA_SHA1") {
goto QN;
}
goto Yz;
mX:
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA384, $Kb);
goto Yz;
aW:
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA512, $Kb);
goto Yz;
QN:
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, $Kb);
Yz:
$Tg->loadKey(Utilities::getPrivateKey(), FALSE);
$jM = new XMLSecurityDSig();
$O6 = $Tg->signData($El);
$O6 = base64_encode($O6);
$kh .= $El . "&Signature=" . urlencode($O6);
if ($XC->get("miniorange_saml_send_slo_in_iframe")) {
goto ZQ;
}
header("Location: " . $kh);
exit;
goto qe;
ZQ:
echo "<iframe id='mo_saml_iframe_slo' src='" . $kh . "' style='position: absolute; height: 0; width: 0; border: 0;' ></iframe>";
exit;
qe:
goto qm;
IG:
$kh .= $El;
if ($XC->get("miniorange_saml_send_slo_in_iframe")) {
goto cX;
}
$rO = new RedirectResponse($kh);
$rO->send();
return new Response();
goto QQ;
cX:
echo "<iframe id='mo_saml_iframe_slo' src='" . $kh . "' style='position: absolute; height: 0; width: 0; border: 0;' ></iframe>";
exit;
QQ:
qm:
t5:
W_:
$gl = \Drupal::request();
$gl->getSession()->clear();
if (!($XC->get("miniorange_saml_send_slo_in_iframe") && !isset($_GET["final"]))) {
goto yG;
}
echo "<script> window.top.location.href = '" . $Sb . "/user/logout?final=true'; </script>";
exit;
yG:
$rO = new RedirectResponse($QW);
$rO->send();
return new Response();
goto Ja;
px:
session_start();
return new Response();
Ja:
B5:
return new Response();
}
function test_configuration()
{
self::saml_login('', "testValidate");
return new Response();
}
function saml_request()
{
$Uo = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_idp_login_url");
$zI = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_nameid_format");
$Pd = Utilities::createAuthnRequest(Utilities::getAcsUrl(), Utilities::getIssuer(), $zI, $Uo, "HTTP-POST", "false");
$KQ = "displaySAMLRequest";
$Dd = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_request_signed");
$dx = \Drupal::config("miniorange_saml.settings")->get("security_signature_algorithm");
if (!$Dd) {
goto rO;
}
$Xn = Utilities::signXML($Pd, Utilities::getPublicCertificate(), Utilities::getPrivateKey(), $dx, "NameIDPolicy");
$Pd = base64_decode($Xn);
rO:
Utilities::Print_SAML_Request($Pd, $KQ);
return new Response();
}
function saml_response_generator()
{
self::saml_login('', "displaySamlResponse");
return new Response();
}
public function openModalForm()
{
$rO = new AjaxResponse();
$b7 = $this->formBuilder->getForm("\Drupal\miniorange_saml\Form\MiniorangeSAMLRemoveLicense");
$rO->addCommand(new OpenModalDialogCommand("Remove License Key", $b7, ["width" => "800"]));
return $rO;
}
public function moLicenseFetch()
{
global $base_url;
$MI = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_email");
$ao = new MiniorangeSAMLCustomer($MI, NULL, NULL, NULL);
$uD = json_decode($ao->ccl(), true);
Utilities::mo_save_expiry_details($uD);
\Drupal::messenger()->addStatus(t("Successfully fetched the update"));
$rO = new RedirectResponse($base_url . "/admin/config/people/miniorange_saml/customer_setup");
$rO->send();
}
function saml_metadata()
{
$XC = \Drupal::config("miniorange_saml.settings");
$Sb = Utilities::getBaseUrl();
$ze = Utilities::getIssuer();
$QT = Utilities::getAcsUrl();
$OY = Utilities::getPublicCertificate();
$pn = preg_replace("/[
]+/", '', $OY);
$pn = str_replace("-----BEGIN CERTIFICATE-----", '', $pn);
$pn = str_replace("-----END CERTIFICATE-----", '', $pn);
$pn = str_replace("-----BEGIN PUBLIC KEY-----", '', $pn);
$pn = str_replace("-----END PUBLIC KEY-----", '', $pn);
$pn = str_replace(" ", '', $pn);
if (isset($_REQUEST["downloadCertificate"]) && $_REQUEST["downloadCertificate"] && boolval($_REQUEST["downloadCertificate"])) {
goto J2;
}
if (isset($_REQUEST["download"]) && $_REQUEST["download"] && boolval($_REQUEST["download"])) {
goto tt;
}
$uY = "Content-Type: text/xml";
goto Xj;
J2:
$uY = "Content-Disposition: attachment; filename="sp-certificate.crt"";
header($uY);
echo xss::filter($OY);
exit;
goto Xj;
tt:
$uY = "Content-Disposition: attachment; filename="Metadata.xml"";
Xj:
header($uY);
echo "<?xml version="1.0"?>\xd
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2024-03-27T23:59:59Z" cacheDuration="PT1446808792S" entityID="" . $ze . "">
\xa <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">\xd\xa <md:KeyDescriptor use="signing">
\xa <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>\xd\xa <ds:X509Certificate>" . $pn . "</ds:X509Certificate>\xd
</ds:X509Data>\xd
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>" . $pn . "</ds:X509Certificate>
</ds:X509Data>\xd
</ds:KeyInfo>\xd
</md:KeyDescriptor>\xd\xa <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="" . $Sb . "/user/logout"/>
\xa <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="" . $Sb . "/user/logout"/>
\xa <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
\xa <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
\xa <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="" . $QT . "" index="1"/>
</md:SPSSODescriptor>\xd\xa <md:Organization>\xd\xa <md:OrganizationName xml:lang="en-US">" . $XC->get("mo_saml_metadata_OrganizationName") . "</md:OrganizationName>\xd\xa <md:OrganizationDisplayName xml:lang="en-US">" . $XC->get("mo_saml_OrganizationDisplayName") . "</md:OrganizationDisplayName>\xd
<md:OrganizationURL xml:lang="en-US">" . $XC->get("mo_saml_OrganizationURL") . "</md:OrganizationURL>\xd
</md:Organization>\xd
<md:ContactPerson contactType="technical">\xd\xa <md:GivenName>" . $XC->get("mo_saml_ContactPersonTechnicalName") . "</md:GivenName>\xd\xa <md:EmailAddress>" . $XC->get("mo_saml_ContactPersonTechnicalEmail") . "</md:EmailAddress>
\xa </md:ContactPerson>\xd
<md:ContactPerson contactType="support">
<md:GivenName>" . $XC->get("mo_saml_ContactPersonSupportName") . "</md:GivenName>\xd\xa <md:EmailAddress>" . $XC->get("mo_saml_ContactPersonSupportEmail") . "</md:EmailAddress>
\xa </md:ContactPerson>\xd\xa </md:EntityDescriptor>";
exit;
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Drupal\miniorange_saml\Controller;
use Drupal\Core\Field\EntityReferenceFieldItemList;
use Drupal\miniorange_saml\HigherUtilities;
use Drupal\profile\Entity\Profile;
use Drupal\taxonomy\Entity\Term;
use Drupal\user\Entity\User;
use Drupal\Component\Utility\Xss;
use Drupal\Core\Form\FormBuilder;
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\miniorange_saml\Utilities;
use Drupal\miniorange_saml\MiniOrangeAcs;
use Drupal\miniorange_saml\AESEncryption;
use Drupal\Core\Controller\ControllerBase;
use Drupal\miniorange_saml\XMLSecurityKey;
use Drupal\miniorange_saml\XMLSecurityDSig;
use Drupal\Core\Ajax\OpenModalDialogCommand;
use Drupal\views\Controller\ViewAjaxController;
use Drupal\views\Plugin\views\area\Entity;
use Symfony\Component\HttpFoundation\Response;
use Drupal\miniorange_saml\MiniOrangeAuthnRequest;
use Drupal\miniorange_saml\MiniorangeSAMLCustomer;
use Drupal\miniorange_saml\MiniorangeSAMLConstants;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\DependencyInjection\ContainerInterface;
class miniorange_samlController extends ControllerBase
{
protected $formBuilder;
public function __construct(FormBuilder $Zk)
{
$this->formBuilder = $Zk;
}
public static function saml_login($Y7 = '', $sS = '')
{
$XC = \Drupal::config("\x6d\151\156\151\x6f\162\141\x6e\147\145\x5f\x73\141\x6d\154\x2e\163\145\x74\164\151\x6e\147\163");
if (!(!$XC->get("\155\151\156\x69\x6f\162\141\156\147\x65\137\163\x61\x6d\154\x5f\x65\156\x61\142\154\145\137\x6c\157\147\151\x6e") && strcasecmp($sS, "\x74\x65\163\164\126\x61\154\151\144\x61\164\x65") != 0)) {
goto y9;
}
$Tk = "\103\141\x6e\40\x6e\157\164\x20\x69\156\x69\x74\151\x61\x74\x65\x20\123\x53\x4f\56";
$IV = '';
$Bh = "\123\123\x4f\40\151\163\x20\156\x6f\x74\x20\x65\x6e\141\x62\154\145\144\x2e";
Utilities::showErrorMessage($Tk, $IV, $Bh, TRUE);
return new Response();
y9:
\Drupal::service("\x70\141\x67\x65\137\143\141\143\150\x65\137\153\151\154\x6c\x5f\163\167\151\x74\143\x68")->trigger();
$qd = $XC->get("\155\151\x6e\x69\x6f\x72\x61\156\147\145\x5f\163\141\x6d\x6c\x5f\x64\145\146\x61\x75\154\164\x5f\162\145\x6c\x61\x79\163\164\141\x74\145");
$Dd = $XC->get("\155\151\156\x69\157\162\141\156\x67\x65\x5f\163\141\155\x6c\x5f\162\x65\x71\165\x65\163\x74\137\x73\151\147\156\145\x64");
$dx = $XC->get("\x73\x65\x63\165\162\x69\164\x79\137\163\x69\x67\x6e\141\164\x75\162\145\x5f\x61\154\x67\x6f\162\x69\x74\x68\x6d");
$KT = $XC->get("\155\151\x6e\151\x6f\162\x61\156\147\x65\137\163\x61\155\x6c\x5f\150\x74\164\160\137\x62\151\156\x64\x69\156\147");
$kn = isset($_REQUEST["\144\145\x73\164\x69\156\x61\x74\x69\x6f\156"]) ? trim($_REQUEST["\144\145\163\x74\x69\156\141\164\x69\x6f\156"], "\x27") : '';
if (empty($sS)) {
goto cg;
}
$kn = $sS;
cg:
if (!empty($kn)) {
goto XV;
}
$kn = $qd;
XV:
if (!empty($kn)) {
goto OD;
}
$kn = $Y7;
OD:
if (!(empty($kn) && isset($_SERVER["\x48\x54\124\x50\137\x52\105\x46\x45\x52\x45\x52"]))) {
goto xw;
}
$kn = $_SERVER["\110\124\x54\x50\137\122\x45\x46\x45\x52\105\x52"];
xw:
if (!empty($kn)) {
goto RH;
}
$kn = Utilities::getBaseUrl();
RH:
\Drupal::moduleHandler()->invokeAll("\147\x65\x74\x5f\x75\x70\x64\x61\x74\145\144\137\x72\x65\154\141\x79\123\164\x61\164\x65", [$_GET, &$kn]);
$QT = Utilities::getAcsUrl();
$Wl = $XC->get("\x6d\151\156\151\157\x72\x61\x6e\147\x65\137\x73\x61\x6d\x6c\x5f\x69\144\x70\137\154\x6f\147\x69\156\x5f\165\x72\154");
$zI = $XC->get("\155\x69\x6e\151\x6f\x72\141\156\147\145\x5f\163\x61\x6d\154\137\x6e\141\155\x65\x69\144\x5f\x66\x6f\x72\155\141\164");
$YZ = new MiniOrangeAuthnRequest();
$YZ->initiateLogin($QT, $Wl, Utilities::getIssuer(), $kn, $zI, $KT, $Dd, $dx);
return new Response();
}
public static function create(ContainerInterface $GG)
{
return new static($GG->get("\x66\157\162\155\137\142\x75\151\x6c\x64\x65\x72"));
}
public function saml_response()
{
global $base_url;
global $CE;
if (isset($_GET["\x53\101\x4d\x4c\122\x65\x73\160\157\x6e\x73\x65"])) {
goto Qy;
}
$XC = \Drupal::config("\x6d\x69\156\x69\157\162\141\x6e\x67\145\137\163\x61\x6d\x6c\56\x73\x65\164\164\x69\x6e\147\x73");
$pA = (array) json_decode($XC->get("\155\x69\156\151\x6f\162\141\x6e\x67\x65\x5f\163\x61\155\x6c\137\x63\x75\x73\x74\157\x6d\137\x61\164\164\162\x73\x5f\x6d\141\x70\137\141\x72\x72"));
$Yb = new MiniOrangeAcs();
$Ek = $XC->get("\155\151\156\157\x72\x61\x6e\147\145\137\x73\141\155\x6c\137\143\x75\163\x74\157\x6d\x65\162\x5f\x61\144\155\x69\156\x5f\146\x72\x61\x75\x64\137\143\x68\145\143\153");
$vJ = $XC->get("\155\x69\x6e\151\157\x72\x61\x6e\147\145\x5f\163\x61\x6d\154\x5f\143\x75\x73\164\x6f\x6d\x65\x72\x5f\x61\x64\155\x69\x6e\x5f\164\157\x6b\x65\x6e");
$MI = $XC->get("\x6d\x69\x6e\x69\157\162\x61\156\x67\x65\137\163\141\x6d\x6c\x5f\x63\165\x73\x74\157\155\x65\162\x5f\141\x64\155\x69\156\x5f\x65\155\x61\151\154");
$MW = \Drupal::request()->server->get("\x44\x4f\x43\125\115\x45\x4e\x54\137\x52\117\x4f\124") . $CE;
$R4 = trim($base_url, "\x2f");
if (preg_match("\43\136\x68\x74\164\x70\50\x73\51\77\72\x2f\57\x23", $R4)) {
goto s1;
}
$R4 = "\150\164\x74\x70\72\57\57" . $R4;
s1:
$sK = parse_url($R4);
$VY = isset($sK["\x70\141\164\150"]) ? $sK["\x70\141\x74\x68"] : '';
$lQ = preg_replace("\x2f\136\167\167\167\134\56\57", '', $sK["\x68\x6f\x73\164"] . $VY);
$rv = $MW . $lQ;
$M4 = $XC->get("\x6d\151\156\x69\157\162\x61\x6e\x67\x65\x5f\x73\x61\x6d\154\x5f\x69\x73\x4d\165\154\x74\151\x53\151\164\x65\120\x6c\165\x67\x69\156\x52\x65\x71\x75\145\x73\164\145\x64") == true;
if (($M4 || $rv == AESEncryption::decrypt_data($Ek, $vJ) || $rv == AESEncryption::decrypt_data($Ek, $vJ, "\101\x45\x53\55\x31\x32\x38\x2d\105\x43\x42")) && $MI != null && $MI != '') {
goto di;
}
if ($MI != null && $MI != '') {
goto Ib;
}
if (!($MI == null || $MI == '')) {
goto E8;
}
$Tk = "\x59\x6f\165\x20\141\162\145\x20\x6e\x6f\164\40\154\x6f\147\147\145\144\40\x69\156\56";
$IV = "\120\x6c\145\x61\163\x65\40\154\157\147\151\x6e\40\x66\x69\x72\163\164\40\x74\157\40\x61\x63\x74\x69\x76\x61\164\145\x20\163\151\156\x67\x6c\x65\40\163\x69\147\x6e\x20\x6f\156\x2e";
$Bh = "\115\141\x6b\145\40\163\165\x72\x65\x20\x79\157\x75\40\150\141\x76\145\40\x6c\157\147\x67\x65\x64\x20\x69\x6e\x2f\40\122\x65\147\x69\x73\x74\145\162\40\151\x6e\40\x74\x6f\x20\x6d\157\144\x75\x6c\x65\x2e";
Utilities::showErrorMessage($Tk, $IV, $Bh);
E8:
goto bm;
Ib:
if (isset($_POST["\x52\145\x6c\x61\171\123\x74\141\164\x65"]) && $_POST["\x52\145\154\x61\x79\123\x74\x61\164\145"] == "\x74\x65\163\x74\126\x61\x6c\x69\x64\x61\x74\145") {
goto IY;
}
$Tk = "\x57\145\40\143\157\165\154\144\x20\156\x6f\x74\40\163\x69\x67\x6e\x20\x79\x6f\165\x20\x69\156\56";
$IV = "\120\x6c\145\x61\x73\145\x20\x43\x6f\x6e\164\141\143\164\x20\x79\x6f\165\162\40\141\x64\155\151\156\151\x73\x74\x72\141\x74\x6f\x72\x2e";
Utilities::showErrorMessage($Tk, $IV, "\x2d");
goto pi;
IY:
$Tk = "\114\x69\x63\145\x6e\163\145\40\153\145\171\x20\x79\x6f\x75\40\x68\x61\x76\145\x20\x65\x6e\164\145\162\x65\144\40\150\141\x73\40\141\x6c\162\145\x61\144\171\x20\x62\145\x65\x6e\x20\x75\x73\145\x64\56";
$IV = "\120\x6c\145\x61\x73\x65\x20\145\156\164\x65\x72\x20\x61\40\x6b\145\171\x20\x77\150\151\143\x68\x20\x68\x61\x73\40\x6e\157\164\x20\142\x65\145\x6e\x20\x75\163\145\x64\40\142\145\x66\157\x72\x65\x20\157\156\40\141\x6e\171\40\157\x74\150\145\x72\x20\x69\156\163\x74\141\156\143\145\x20\157\x72\40\x69\x66\x20\171\157\x75\40\x68\x61\166\x65\40\x65\170\x61\x75\163\x74\x65\144\x20\x61\x6c\154\40\171\x6f\165\x72\40\x6b\145\x79\163\x20\x74\150\145\x6e\x20\142\165\x79\40\155\x6f\x72\x65\40\154\151\x63\x65\156\x73\x65\40\x66\x72\x6f\155\x20\114\151\x63\145\x6e\163\x69\156\147\x2e";
Utilities::showErrorMessage($Tk, $IV, "\x2d");
pi:
bm:
goto Z7;
di:
$h0 = $Yb->processSamlResponse($_POST, $pA);
$rO = $h0["\162\145\x73\160\x6f\156\163\145"];
$mj = $h0["\x72\145\x73\157\x75\162\143\145\163"];
Z7:
if (!(MiniorangeSAMLConstants::PLUGIN_VERSION == MiniorangeSAMLConstants::ENTERPRISE_VERSION && \Drupal\miniorange_saml\HigherUtilities::Is_Restricted_Domain($rO["\145\155\x61\x69\154"]) === TRUE)) {
goto Sd;
}
$Tk = "\x59\157\x75\x20\141\162\145\x20\x6e\157\x74\x20\x61\154\154\x6f\x77\x65\x64\x20\x74\157\40\154\x6f\147\x69\x6e\40";
$IV = "\x50\x6c\x65\x61\x73\x65\40\x43\157\x6e\164\141\x63\164\x20\171\157\x75\162\x20\x61\x64\x6d\x69\x6e\x69\163\x74\162\141\x74\x6f\162\x2e";
$Bh = "\x59\x6f\x75\x72\40\x64\157\x6d\141\x69\x6e\40\x6d\x61\x79\x20\x62\x65\x20\142\x6c\157\x63\x6b\145\144\40\142\171\40\x61\144\155\x69\x6e";
Utilities::showErrorMessage($Tk, $IV, $Bh);
Sd:
if ($XC->get("\155\151\156\151\157\162\141\156\147\x65\137\x73\141\155\154\x5f\x6c\x6f\x61\144\x5f\165\163\x65\x72") == 1) {
goto ul;
}
$jI = user_load_by_name($rO["\165\x73\x65\162\x6e\x61\x6d\145"]);
goto Vv;
ul:
$jI = user_load_by_mail($rO["\x65\155\141\x69\154"]);
Vv:
$my = 0;
if (!($jI == NULL)) {
goto i2;
}
$C1 = $XC->get("\x6d\x69\x6e\151\x6f\x72\x61\156\147\x65\x5f\163\x61\155\154\x5f\x64\x69\x73\x61\x62\x6c\145\137\141\165\x74\157\143\162\145\141\164\x65\137\x75\x73\x65\162\x73");
if ($C1) {
goto WO;
}
$ax = user_password(8);
$WX = $XC->get("\155\151\x6e\x69\157\162\x61\x6e\147\x65\x5f\163\x61\x6d\x6c\137\x64\x65\x66\141\165\154\164\137\162\x6f\x6c\x65");
$XO = ["\156\x61\x6d\x65" => $rO["\165\x73\145\x72\x6e\141\155\145"], "\155\x61\151\154" => $rO["\145\155\141\151\154"], "\160\x61\x73\x73" => $ax, "\x73\164\141\164\x75\x73" => 1];
$jI = User::create($XO);
$jI->save();
if (!($WX != "\141\x75\164\x68\145\156\164\151\143\141\164\145\x64" && $XC->get("\155\151\156\151\157\162\x61\x6e\147\x65\137\x73\x61\x6d\x6c\137\145\x6e\x61\142\x6c\145\137\x72\x6f\154\x65\x6d\x61\160\x70\x69\x6e\147"))) {
goto W3;
}
$jI->addRole($WX);
$jI->save();
W3:
goto FF;
WO:
$Tk = "\101\143\x63\x6f\165\x6e\x74\40\x64\157\145\x73\40\156\157\164\x20\x65\170\x69\163\164\40\x77\x69\164\x68\x20\x79\x6f\x75\162\40\165\163\145\162\156\x61\155\145\56";
$IV = "\x50\x6c\145\141\163\x65\x20\x43\x6f\156\164\141\143\164\40\x79\x6f\x75\x72\x20\141\x64\155\151\156\x69\x73\x74\x72\141\164\x6f\x72\56";
$Bh = "\x41\165\164\157\40\x63\x72\x65\x61\164\x69\x6f\x6e\40\x6f\x66\x20\165\x73\145\162\40\151\x73\x20\156\157\164\x20\141\154\154\157\167\x65\x64\40\151\x66\x20\x75\163\145\x72\40\x64\157\x65\x73\40\156\157\x74\40\x65\170\x69\163\164\56";
Utilities::showErrorMessage($Tk, $IV, $Bh);
FF:
i2:
$lA = array();
$lA = $rO["\143\x75\163\x74\157\155\106\151\145\154\144\x41\164\x74\162\151\142\x75\164\145\x73"];
$jI = User::load($jI->id());
$GO = json_decode($XC->get("\x6d\151\x6e\151\157\162\x61\156\x67\145\x5f\163\141\155\x6c\137\x63\165\163\164\x6f\155\137\141\x74\x74\x72\x73\x5f\x6d\141\160\137\163\145\160"));
foreach ($lA as $Tg => $dO) {
$qi = $jI->get($Tg);
$PU = $qi->getFieldDefinition();
$Rq = $PU->getFieldStorageDefinition();
if ($Rq->getType() === "\x65\156\164\151\164\171\137\x72\x65\146\145\162\145\156\143\x65") {
goto v7;
}
if (Utilities::isMultiple($Tg) && !is_null($GO->{$Tg})) {
goto Sv;
}
$VI = array($dO);
goto iG;
Sv:
$VI = explode($GO->{$Tg}, $dO);
iG:
$jI->get($Tg)->setValue($VI);
$jI->save();
goto aC;
v7:
$pp = $Rq->getSetting("\164\141\x72\x67\x65\x74\137\164\x79\160\145");
$l2 = $PU->getSetting("\150\x61\x6e\x64\x6c\x65\162\137\x73\x65\164\164\151\156\147\163");
$xX = \Drupal::entityTypeManager()->getStorage($pp)->loadMultiple(NULL);
if (!isset($l2["\164\141\162\147\145\x74\137\x62\x75\156\x64\154\x65\163"])) {
goto ti;
}
if (Utilities::isMultiple($Tg) && !is_null($GO->{$Tg})) {
goto jU;
}
$VI = array($dO);
goto h_;
jU:
$VI = explode($GO->{$Tg}, $dO);
h_:
$A_ = [];
$Dy = [];
foreach ($VI as $dO) {
$xX = \Drupal::entityTypeManager()->getStorage($pp)->loadByProperties(["\x6e\141\155\x65" => $dO]);
$Nd = false;
foreach ($xX as $S4) {
if (!in_array($S4->bundle(), $l2["\164\141\162\147\145\x74\x5f\142\165\156\x64\154\x65\163"])) {
goto k5;
}
$A_[] = $S4->id();
$Nd = true;
k5:
C2:
}
Nb:
if ($Nd) {
goto sc;
}
$Dy[] = $dO;
sc:
Fs:
}
w3:
$rC = isset($l2["\141\x75\x74\157\x5f\143\x72\x65\141\164\x65"]) ? $l2["\141\165\x74\x6f\x5f\143\x72\x65\x61\164\145"] : false;
$E7 = isset($l2["\x61\165\164\x6f\x5f\143\x72\145\141\x74\x65\x5f\x62\x75\x6e\x64\154\x65"]) ? $l2["\x61\x75\x74\157\137\143\x72\x65\x61\164\145\137\142\x75\156\144\154\x65"] : '';
if (!($rC && $pp == "\164\x61\x78\x6f\x6e\x6f\x6d\x79\137\x74\145\x72\155")) {
goto q3;
}
foreach ($Dy as $Hs) {
$za = Term::create(["\x6e\141\x6d\145" => $Hs, "\x76\x69\x64" => $E7]);
$za->save();
$A_[] = $za->id();
g1:
}
ce:
q3:
$qi->setValue($A_);
$jI->save();
ti:
aC:
KH:
}
z0:
if (!(!is_null($jI) && $XC->get("\155\151\156\151\157\162\x61\156\x67\x65\x5f\163\141\155\154\x5f\x65\156\141\142\154\x65\x5f\162\x6f\154\145\x6d\x61\x70\160\151\x6e\147"))) {
goto my;
}
$uu = $XC->get("\155\x69\x6e\x69\157\162\141\156\x67\x65\137\163\141\155\x6c\x5f\162\157\x6c\145\137\155\141\160\160\x69\156\147\x5f\141\162\162") != null ? (array) json_decode($XC->get("\x6d\151\x6e\151\x6f\x72\141\156\x67\x65\137\163\x61\x6d\x6c\x5f\x72\x6f\154\145\137\155\x61\x70\160\151\x6e\147\x5f\x61\162\162")) : [];
$Hz = array();
$Hz = $rO["\x63\165\x73\164\157\155\106\151\145\x6c\144\x52\x6f\154\x65\163"];
$cn = \Drupal::configFactory()->getEditable("\x6d\151\156\151\x6f\162\141\x6e\147\145\137\x73\x61\155\x6c\x2e\x73\145\x74\164\x69\156\x67\163")->get("\155\151\156\151\157\162\141\x6e\147\145\x5f\163\141\155\x6c\x5f\x64\x69\x73\x61\142\x6c\145\137\x72\x6f\x6c\145\x5f\165\160\144\x61\164\145");
$uJ = $jI->getRoles();
if ($cn) {
goto xh;
}
foreach ($uJ as $Tg => $dO) {
if (in_array($dO, array_keys($uu))) {
goto TF;
}
if (!($dO != $XC->get("\x6d\x69\156\151\157\162\141\156\x67\145\137\163\141\155\x6c\x5f\x64\x65\146\141\165\154\x74\x5f\162\x6f\154\145"))) {
goto zF;
}
$jI->removeRole($dO);
$jI->save();
zF:
TF:
XW:
}
z2:
xh:
foreach ($uu as $Tg => $dO) {
$Yc = FALSE;
$cF = explode("\x3b", $dO);
foreach ($cF as $jt => $jW) {
if (!(is_array($Hz) && in_array($jW, $Hz))) {
goto wo;
}
$Yc = TRUE;
wo:
eD:
}
Uc:
if ($Yc && $Tg != "\x61\165\x74\150\145\x6e\x74\151\x63\x61\164\145\144") {
goto Cs;
}
$jI->removeRole($Tg);
$jI->save();
goto oO;
Cs:
$jI->addRole($Tg);
$jI->save();
oO:
VT:
}
td:
my:
$z0 = $XC->get("\x6d\151\x6e\151\157\162\x61\156\x67\145\x5f\163\141\x6d\154\x5f\x65\156\x61\x62\x6c\x65\x5f\160\x72\x6f\146\x69\x6c\x65\x5f\155\141\x70\160\151\156\x67");
if (!(MiniorangeSAMLConstants::PLUGIN_VERSION == MiniorangeSAMLConstants::ENTERPRISE_VERSION && $z0)) {
goto Ie;
}
HigherUtilities::profileFieldMapping($jI, $mj);
Ie:
if (user_is_blocked($rO["\165\163\x65\162\156\141\x6d\145"]) == FALSE) {
goto BT;
}
$Tk = "\125\163\145\162\40\x42\x6c\x6f\x63\153\x65\144\40\x42\171\40\101\144\x6d\x69\156\x69\x73\164\162\x61\164\x6f\162\56";
$IV = "\120\x6c\x65\x61\x73\145\x20\x43\x6f\156\164\x61\143\164\x20\x79\x6f\x75\x72\40\x61\144\x6d\x69\x6e\151\163\164\x72\141\164\157\x72\x2e";
$Bh = "\x54\x68\x69\163\40\165\x73\145\x72\40\x61\143\143\x6f\x75\x6e\x74\40\x69\x73\40\x6e\157\164\40\141\154\154\x6f\x77\145\144\x20\x74\x6f\40\x6c\x6f\x67\151\156\x2e";
Utilities::showErrorMessage($Tk, $IV, $Bh);
return new Response();
goto ZF;
BT:
if (!(array_key_exists("\x72\145\x6c\x61\x79\x5f\x73\164\141\164\145", $rO) && !empty($rO["\x72\x65\154\141\171\x5f\163\x74\141\x74\145"]))) {
goto we;
}
$Yu = $rO["\x72\145\154\x61\171\137\163\164\x61\164\145"];
we:
$oY = Utilities::getBaseUrl();
if (!(empty($Yu) || $Yu == "\x2f")) {
goto PK;
}
$Yu = $oY;
PK:
$_SESSION["\163\x65\x73\163\151\x6f\x6e\111\156\x64\x65\170"] = $rO["\x73\x65\x73\x73\151\157\x6e\x49\x6e\144\x65\170"];
$_SESSION["\116\141\x6d\145\111\104"] = $rO["\116\x61\x6d\145\x49\104"];
$_SESSION["\x6d\x6f\137\x73\x61\x6d\x6c"]["\x6c\157\147\x67\x65\144\137\x69\x6e\137\x77\x69\x74\x68\x5f\151\144\x70"] = TRUE;
\Drupal::moduleHandler()->invokeAll("\x69\x6e\166\157\x6b\x65\137\155\x69\x6e\x69\x6f\162\141\x6e\147\145\x5f\62\146\x61\137\x62\x65\x66\157\162\x65\137\x6c\x6f\x67\x69\156", [$jI]);
\Drupal::moduleHandler()->invokeAll("\155\x69\x6e\x69\157\162\141\156\147\x65\137\163\141\x6d\154\x5f\x69\x64\x70\x5f\x72\x65\163\x6f\165\162\x63\x65\163", [$jI, $mj]);
user_login_finalize($jI);
if (!($XC->get("\x6d\x69\156\151\157\162\141\x6e\147\x65\137\163\141\x6d\x6c\x5f\162\x65\163\x74\x72\x69\x63\x74\x5f\162\x65\x64\x69\x72\x65\x63\164\x5f\x6f\165\x74\x73\x69\144\x65\x5f\144\x6f\x6d\x61\x69\x6e") == TRUE)) {
goto a8;
}
$q_ = parse_url($Yu);
$tV = parse_url($oY);
$HE = isset($tV["\150\x6f\163\164"]) ? $tV["\x68\157\x73\x74"] : FALSE;
$kR = isset($q_["\150\x6f\x73\x74"]) ? $q_["\150\x6f\163\x74"] : FALSE;
if (!($kR !== FALSE && $HE !== $kR)) {
goto Fj;
}
$Yk = $Yu;
$Yu = $oY;
$Hi = $XC->get("\155\x69\156\151\x6f\x72\141\156\147\x65\x5f\163\x61\155\154\x5f\x77\x68\151\x74\x65\x6c\x69\163\164\x5f\144\x6f\x6d\x61\151\156\x73");
$hS = explode("\73", $Hi);
foreach ($hS as $yM) {
if (!($yM == '' or $yM == "\x2f")) {
goto iw;
}
goto Bl;
iw:
if (!(strpos($kR, trim($yM)) !== false)) {
goto o5;
}
$Yu = $Yk;
goto br;
o5:
Bl:
}
br:
Fj:
a8:
\Drupal::moduleHandler()->invokeAll("\x68\x65\x61\x64\x6c\145\x73\x73\137\x73\x73\157\137\162\145\144\x69\x72\x65\x63\164", [$jI, $Yu]);
$rO = new RedirectResponse($Yu);
$gl = \Drupal::request();
$gl->getSession()->save();
$rO->prepare($gl);
\Drupal::service("\x6b\145\162\x6e\x65\154")->terminate($gl, $rO);
$rO->send();
exit;
return new Response();
ZF:
goto A5;
Qy:
$gl = \Drupal::request();
$gl->getSession()->clear();
$rO = new RedirectResponse(Utilities::getBaseUrl());
$rO->send();
return new Response();
A5:
return new Response();
}
static function saml_logout()
{
$XC = \Drupal::config("\155\x69\156\x69\157\x72\141\x6e\x67\145\137\163\141\x6d\x6c\56\x73\145\x74\164\x69\156\147\x73");
$dx = $XC->get("\x73\145\x63\165\x72\151\x74\x79\x5f\163\x69\147\x6e\141\x74\165\x72\145\137\141\154\x67\157\x72\151\x74\x68\x6d");
$Sb = Utilities::getBaseUrl();
$QW = Utilities::getRedirectUrAfterLogout($Sb);
$Tf = $XC->get("\x6d\x69\x6e\x69\x6f\162\x61\x6e\147\145\x5f\x73\141\x6d\154\137\151\x64\x70\137\154\157\147\157\x75\164\x5f\165\x72\x6c");
$FO = $XC->get("\x6d\x69\156\x69\x6f\x72\x61\x6e\147\x65\137\163\x61\x6d\x6c\137\163\x6c\157\x5f\x68\x74\164\x70\137\x62\151\156\144\x69\x6e\147");
if (!empty($Tf)) {
goto gE;
}
$gl = \Drupal::request();
$gl->getSession()->clear();
$rO = new RedirectResponse($QW);
$rO->send();
return new Response();
goto B5;
gE:
if (!\Drupal::service("\163\x65\163\163\151\x6f\x6e")->getId() || \Drupal::service("\x73\x65\x73\x73\151\157\156")->getId() == '' || !isset($_SESSION)) {
goto px;
}
if (!isset($_SESSION["\x6d\157\x5f\x73\x61\155\x6c"]["\x6c\157\x67\x67\145\144\x5f\x69\x6e\137\x77\151\164\x68\137\x69\144\160"])) {
goto W_;
}
unset($_SESSION["\155\x6f\x5f\163\141\155\154"]);
$lV = $_SESSION["\163\145\163\x73\x69\157\x6e\111\156\144\x65\170"];
$IY = $_SESSION["\116\141\x6d\x65\111\x44"];
Utilities::checkIfLogoutRequest($_REQUEST, $_GET);
$KQ = $Sb;
$El = Utilities::createLogoutRequest($IY, Utilities::getIssuer(), $Tf, $FO, $lV);
$Dd = $XC->get("\x6d\x69\156\x69\157\162\x61\156\147\145\137\x73\141\155\154\x5f\162\x65\x71\165\145\163\x74\x5f\163\x69\147\156\145\144");
if (empty($FO) || $FO == "\x48\124\x54\120\55\122\x65\x64\x69\162\x65\x63\x74") {
goto Ua;
}
if ($Dd) {
goto J0;
}
$Xn = base64_encode($El);
Utilities::postSAMLRequest($Tf, $Xn, $KQ);
exit;
J0:
$Xn = Utilities::signXML($El, Utilities::getPublicCertificate(), Utilities::getPrivateKey(), $dx, "\x4e\x61\155\x65\111\x44");
Utilities::postSAMLRequest($Tf, $Xn, $KQ);
goto t5;
Ua:
$El = "\x53\101\115\114\122\145\161\x75\x65\x73\x74\x3d" . $El . "\46\x52\145\154\x61\x79\123\164\141\x74\x65\75" . urlencode($KQ);
$kh = $Tf;
if (strpos($Tf, "\x3f") !== false) {
goto M_;
}
$kh .= "\x3f";
goto Fh;
M_:
$kh .= "\x26";
Fh:
if (!$Dd) {
goto IG;
}
if ($dx == "\122\123\x41\x5f\123\x48\x41\62\65\x36") {
goto jg;
}
if ($dx == "\122\123\101\137\123\110\101\63\70\x34") {
goto N0;
}
if ($dx == "\122\x53\101\137\x53\110\101\65\61\62") {
goto NK;
}
if ($dx == "\x52\x53\101\x5f\x53\x48\x41\x31") {
goto wr;
}
goto Ga;
jg:
$El .= "\46\123\151\x67\101\x6c\x67\75" . urlencode(XMLSecurityKey::RSA_SHA256);
goto Ga;
N0:
$El .= "\x26\x53\151\x67\101\x6c\147\x3d" . urlencode(XMLSecurityKey::RSA_SHA384);
goto Ga;
NK:
$El .= "\46\x53\x69\147\101\154\147\x3d" . urlencode(XMLSecurityKey::RSA_SHA512);
goto Ga;
wr:
$El .= "\46\x53\151\147\101\154\147\x3d" . urlencode(XMLSecurityKey::RSA_SHA1);
Ga:
$Kb = array("\164\x79\x70\x65" => "\160\162\151\x76\x61\164\145");
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $Kb);
if ($dx == "\x52\123\101\137\x53\110\x41\x33\70\x34") {
goto mX;
}
if ($dx == "\x52\x53\101\137\x53\110\101\x35\61\x32") {
goto aW;
}
if ($dx == "\122\x53\x41\x5f\x53\110\101\x31") {
goto QN;
}
goto Yz;
mX:
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA384, $Kb);
goto Yz;
aW:
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA512, $Kb);
goto Yz;
QN:
$Tg = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, $Kb);
Yz:
$Tg->loadKey(Utilities::getPrivateKey(), FALSE);
$jM = new XMLSecurityDSig();
$O6 = $Tg->signData($El);
$O6 = base64_encode($O6);
$kh .= $El . "\x26\123\151\x67\156\141\x74\165\x72\x65\x3d" . urlencode($O6);
if ($XC->get("\155\x69\x6e\151\157\x72\141\x6e\x67\145\x5f\163\x61\155\154\137\x73\145\x6e\x64\x5f\163\154\157\x5f\x69\x6e\137\151\146\x72\141\155\145")) {
goto ZQ;
}
header("\114\x6f\x63\141\x74\x69\x6f\156\72\x20" . $kh);
exit;
goto qe;
ZQ:
echo "\74\x69\146\x72\x61\155\145\40\151\144\x3d\47\x6d\157\137\x73\141\x6d\154\x5f\x69\x66\162\141\155\145\x5f\163\154\157\47\x20\163\162\143\75\47" . $kh . "\x27\x20\163\x74\x79\154\145\75\x27\160\157\163\151\164\151\x6f\156\x3a\40\141\x62\x73\x6f\x6c\165\x74\x65\x3b\x20\x68\x65\x69\x67\150\x74\x3a\40\60\x3b\40\167\151\144\164\150\72\x20\x30\73\40\x62\157\x72\144\145\x72\72\40\x30\73\x27\x20\76\x3c\57\151\x66\x72\141\x6d\145\x3e";
exit;
qe:
goto qm;
IG:
$kh .= $El;
if ($XC->get("\x6d\x69\156\x69\157\x72\x61\156\147\145\137\x73\141\155\x6c\137\x73\145\156\144\137\163\154\157\x5f\151\156\137\x69\146\162\141\155\x65")) {
goto cX;
}
$rO = new RedirectResponse($kh);
$rO->send();
return new Response();
goto QQ;
cX:
echo "\x3c\x69\x66\x72\x61\155\145\40\151\144\x3d\x27\155\x6f\x5f\163\141\155\x6c\137\151\x66\x72\141\155\145\x5f\163\154\x6f\x27\x20\163\x72\x63\75\x27" . $kh . "\x27\40\x73\x74\171\x6c\145\x3d\x27\x70\157\163\x69\x74\x69\157\x6e\72\40\141\x62\163\157\x6c\x75\x74\145\x3b\x20\150\x65\x69\147\150\164\x3a\40\x30\73\40\x77\151\144\164\x68\x3a\40\60\73\x20\x62\157\162\x64\x65\x72\72\x20\x30\73\x27\x20\x3e\74\57\151\146\162\141\155\x65\76";
exit;
QQ:
qm:
t5:
W_:
$gl = \Drupal::request();
$gl->getSession()->clear();
if (!($XC->get("\155\151\156\151\157\x72\141\x6e\147\145\137\x73\141\x6d\154\x5f\x73\145\156\x64\x5f\163\x6c\157\x5f\x69\x6e\137\151\146\162\141\x6d\x65") && !isset($_GET["\146\x69\x6e\x61\154"]))) {
goto yG;
}
echo "\x3c\163\x63\162\x69\160\x74\76\x20\167\151\156\144\157\167\56\x74\x6f\x70\56\154\x6f\x63\x61\x74\x69\157\x6e\x2e\150\x72\x65\146\40\x3d\40\x27" . $Sb . "\x2f\165\163\x65\x72\x2f\x6c\157\147\157\x75\x74\x3f\x66\151\x6e\141\x6c\75\x74\162\x75\145\x27\73\x20\74\57\163\143\162\151\160\164\x3e";
exit;
yG:
$rO = new RedirectResponse($QW);
$rO->send();
return new Response();
goto Ja;
px:
session_start();
return new Response();
Ja:
B5:
return new Response();
}
function test_configuration()
{
self::saml_login('', "\x74\x65\x73\x74\x56\x61\154\151\144\141\164\x65");
return new Response();
}
function saml_request()
{
$Uo = \Drupal::config("\155\151\156\x69\x6f\162\x61\156\147\145\137\x73\141\155\x6c\x2e\163\x65\164\x74\x69\156\147\163")->get("\x6d\x69\x6e\151\x6f\162\x61\156\x67\145\x5f\x73\x61\x6d\x6c\137\151\144\x70\x5f\x6c\x6f\147\x69\x6e\x5f\x75\x72\154");
$zI = \Drupal::config("\x6d\151\x6e\151\157\x72\x61\x6e\x67\x65\x5f\163\141\155\x6c\56\163\x65\x74\x74\151\x6e\147\x73")->get("\155\x69\156\x69\157\162\141\156\x67\x65\x5f\x73\x61\155\154\x5f\x6e\x61\155\x65\151\144\x5f\146\157\x72\x6d\141\164");
$Pd = Utilities::createAuthnRequest(Utilities::getAcsUrl(), Utilities::getIssuer(), $zI, $Uo, "\110\124\x54\120\x2d\120\x4f\123\124", "\146\x61\154\x73\x65");
$KQ = "\144\x69\163\x70\154\x61\171\123\x41\x4d\x4c\122\145\x71\x75\x65\163\164";
$Dd = \Drupal::config("\155\x69\156\151\157\162\x61\x6e\x67\x65\x5f\x73\141\155\154\56\163\145\x74\164\151\x6e\147\163")->get("\x6d\151\156\151\157\x72\x61\156\x67\x65\x5f\x73\141\155\x6c\x5f\162\x65\x71\165\x65\x73\x74\x5f\163\x69\x67\x6e\x65\144");
$dx = \Drupal::config("\x6d\x69\x6e\x69\157\x72\x61\x6e\147\145\x5f\163\141\155\154\x2e\x73\145\164\164\x69\x6e\x67\163")->get("\163\x65\x63\x75\162\151\x74\171\x5f\163\x69\x67\x6e\141\x74\x75\162\x65\x5f\x61\x6c\x67\157\162\x69\x74\150\155");
if (!$Dd) {
goto rO;
}
$Xn = Utilities::signXML($Pd, Utilities::getPublicCertificate(), Utilities::getPrivateKey(), $dx, "\x4e\x61\155\145\111\x44\x50\x6f\154\151\143\x79");
$Pd = base64_decode($Xn);
rO:
Utilities::Print_SAML_Request($Pd, $KQ);
return new Response();
}
function saml_response_generator()
{
self::saml_login('', "\144\x69\x73\160\x6c\141\171\123\141\155\x6c\122\145\163\160\157\x6e\x73\145");
return new Response();
}
public function openModalForm()
{
$rO = new AjaxResponse();
$b7 = $this->formBuilder->getForm("\134\104\x72\x75\160\x61\x6c\x5c\155\151\x6e\151\x6f\162\x61\x6e\x67\x65\137\x73\141\155\x6c\x5c\106\x6f\162\x6d\134\115\151\x6e\151\x6f\162\141\x6e\x67\x65\123\x41\x4d\x4c\x52\145\x6d\157\x76\x65\x4c\151\143\x65\156\163\x65");
$rO->addCommand(new OpenModalDialogCommand("\x52\x65\x6d\x6f\x76\x65\40\x4c\151\x63\145\156\x73\x65\x20\x4b\x65\x79", $b7, ["\x77\x69\144\x74\150" => "\70\60\x30"]));
return $rO;
}
public function moLicenseFetch()
{
global $base_url;
$MI = \Drupal::config("\x6d\151\156\x69\157\x72\x61\156\147\145\x5f\163\x61\x6d\154\56\163\145\x74\x74\x69\x6e\x67\x73")->get("\155\151\x6e\151\x6f\x72\x61\x6e\x67\145\137\x73\x61\155\x6c\x5f\x63\x75\x73\x74\157\155\145\162\x5f\141\144\x6d\151\x6e\x5f\x65\155\x61\x69\x6c");
$ao = new MiniorangeSAMLCustomer($MI, NULL, NULL, NULL);
$uD = json_decode($ao->ccl(), true);
Utilities::mo_save_expiry_details($uD);
\Drupal::messenger()->addStatus(t("\x53\165\143\x63\145\163\x73\146\165\154\x6c\x79\x20\146\145\164\143\150\x65\x64\40\x74\x68\x65\40\x75\160\x64\141\x74\145"));
$rO = new RedirectResponse($base_url . "\57\x61\144\x6d\151\156\57\143\x6f\156\146\151\x67\x2f\x70\145\x6f\x70\154\145\57\155\151\x6e\151\x6f\162\x61\156\147\x65\x5f\x73\141\x6d\x6c\57\x63\165\x73\164\x6f\x6d\145\162\x5f\163\145\164\x75\x70");
$rO->send();
}
function saml_metadata()
{
$XC = \Drupal::config("\x6d\151\x6e\151\x6f\x72\x61\x6e\147\x65\137\x73\141\155\x6c\x2e\x73\145\164\164\151\x6e\x67\x73");
$Sb = Utilities::getBaseUrl();
$ze = Utilities::getIssuer();
$QT = Utilities::getAcsUrl();
$OY = Utilities::getPublicCertificate();
$pn = preg_replace("\x2f\133\15\12\135\53\x2f", '', $OY);
$pn = str_replace("\55\55\x2d\x2d\x2d\102\x45\x47\x49\116\40\x43\x45\122\x54\111\106\x49\x43\x41\124\105\55\55\55\x2d\x2d", '', $pn);
$pn = str_replace("\55\x2d\55\x2d\55\x45\116\104\x20\103\x45\x52\x54\x49\x46\x49\103\x41\124\x45\55\55\x2d\55\55", '', $pn);
$pn = str_replace("\55\55\x2d\55\x2d\x42\105\x47\x49\116\x20\x50\125\x42\114\x49\103\x20\113\x45\x59\55\55\x2d\x2d\55", '', $pn);
$pn = str_replace("\55\x2d\55\x2d\x2d\x45\116\104\40\120\125\x42\x4c\x49\103\40\x4b\105\131\x2d\x2d\55\55\55", '', $pn);
$pn = str_replace("\x20", '', $pn);
if (isset($_REQUEST["\144\x6f\167\x6e\x6c\x6f\141\x64\103\x65\x72\x74\151\x66\151\143\x61\x74\x65"]) && $_REQUEST["\x64\x6f\167\156\x6c\157\141\x64\x43\x65\162\164\151\x66\151\143\x61\164\x65"] && boolval($_REQUEST["\144\157\167\x6e\154\x6f\x61\144\x43\x65\x72\x74\151\x66\151\x63\x61\x74\145"])) {
goto J2;
}
if (isset($_REQUEST["\x64\157\167\156\154\157\141\x64"]) && $_REQUEST["\144\157\167\156\x6c\157\141\144"] && boolval($_REQUEST["\144\x6f\x77\x6e\154\x6f\x61\144"])) {
goto tt;
}
$uY = "\103\x6f\156\164\145\156\x74\x2d\x54\x79\x70\145\72\40\x74\x65\170\164\57\170\155\154";
goto Xj;
J2:
$uY = "\103\157\156\x74\x65\156\x74\55\x44\x69\x73\160\157\x73\151\164\x69\157\x6e\72\40\x61\164\164\x61\x63\150\155\145\x6e\164\x3b\x20\146\x69\x6c\x65\156\141\x6d\x65\75\42\x73\x70\x2d\x63\x65\x72\164\x69\x66\151\143\141\164\x65\56\143\x72\x74\42";
header($uY);
echo xss::filter($OY);
exit;
goto Xj;
tt:
$uY = "\103\x6f\x6e\x74\x65\x6e\x74\x2d\104\x69\x73\160\x6f\163\151\164\151\157\x6e\72\40\x61\164\164\x61\143\150\155\145\x6e\164\73\40\146\151\154\x65\x6e\x61\x6d\145\x3d\42\x4d\x65\x74\x61\144\141\164\141\56\x78\155\154\x22";
Xj:
header($uY);
echo "\x3c\77\x78\155\154\x20\166\x65\162\x73\151\157\x6e\x3d\x22\x31\56\60\42\x3f\76\xd\12\40\x20\x20\x20\40\40\x20\40\x3c\155\144\72\x45\156\x74\x69\164\x79\x44\145\163\x63\x72\x69\160\x74\157\x72\40\x78\155\x6c\x6e\163\x3a\155\x64\75\x22\165\162\x6e\x3a\x6f\141\x73\x69\x73\x3a\156\x61\155\145\x73\x3a\x74\143\x3a\x53\101\x4d\114\x3a\62\56\x30\x3a\x6d\145\x74\141\x64\141\x74\141\42\x20\166\x61\154\x69\x64\x55\x6e\164\x69\154\x3d\42\x32\x30\x32\64\x2d\x30\x33\55\62\x37\x54\x32\63\x3a\65\71\x3a\65\71\x5a\42\x20\143\141\x63\x68\x65\104\x75\x72\141\x74\151\157\x6e\x3d\42\120\124\61\x34\64\x36\70\x30\x38\x37\71\x32\123\x22\x20\145\156\164\x69\x74\171\x49\x44\x3d\42" . $ze . "\42\76\15\xa\x20\x20\x20\x20\40\x20\x20\40\x20\40\74\x6d\x64\x3a\123\120\123\123\117\104\145\x73\x63\162\x69\160\x74\x6f\x72\x20\x41\165\x74\150\x6e\122\145\x71\165\145\163\x74\163\x53\151\147\156\145\x64\75\42\x74\162\x75\x65\x22\40\127\x61\156\x74\x41\x73\x73\145\x72\x74\x69\157\x6e\x73\123\151\147\156\145\144\75\42\x74\x72\165\x65\42\40\x70\162\x6f\x74\x6f\x63\x6f\x6c\123\165\160\x70\157\x72\x74\105\156\x75\155\x65\162\141\x74\x69\x6f\x6e\75\x22\x75\162\156\x3a\157\x61\163\x69\163\72\x6e\141\x6d\x65\x73\x3a\x74\143\x3a\123\x41\115\114\72\62\x2e\x30\x3a\160\162\x6f\x74\157\143\157\x6c\42\x3e\xd\xa\40\40\40\x20\x20\x20\40\40\x20\x20\40\40\x3c\155\144\x3a\x4b\145\171\x44\145\x73\143\162\151\x70\x74\x6f\x72\x20\165\163\x65\x3d\x22\163\x69\147\x6e\x69\156\x67\x22\76\15\xa\40\x20\x20\40\x20\40\x20\x20\x20\40\40\x20\x20\x20\x3c\144\x73\72\x4b\x65\171\x49\156\x66\x6f\x20\x78\x6d\x6c\156\163\72\x64\163\x3d\x22\x68\164\x74\160\x3a\57\x2f\x77\x77\x77\56\167\x33\56\x6f\x72\147\x2f\62\x30\x30\60\x2f\60\x39\57\x78\x6d\154\x64\163\x69\147\43\42\76\15\12\x20\x20\40\x20\x20\40\x20\40\40\40\x20\40\40\x20\40\40\x3c\144\x73\72\x58\65\60\71\x44\141\164\141\x3e\xd\xa\x20\x20\40\x20\x20\40\x20\40\40\x20\40\x20\x20\x20\x20\x20\x20\40\74\x64\163\72\130\65\x30\71\103\145\x72\164\x69\x66\151\143\141\164\x65\76" . $pn . "\74\57\144\x73\x3a\130\x35\60\71\x43\145\162\164\151\146\151\x63\x61\x74\x65\x3e\xd\12\40\40\x20\40\x20\40\40\40\x20\40\40\x20\40\x20\x20\40\x3c\57\x64\x73\72\x58\65\60\71\104\x61\x74\141\x3e\xd\12\x20\40\x20\x20\40\x20\40\40\x20\40\x20\x20\40\40\x3c\x2f\x64\163\x3a\x4b\145\171\x49\x6e\146\157\76\15\12\x20\40\40\40\x20\x20\40\40\40\40\x20\40\x3c\x2f\x6d\x64\72\113\x65\x79\x44\145\163\x63\x72\x69\x70\164\157\162\76\15\12\x20\x20\40\40\x20\x20\x20\x20\40\x20\40\x20\x3c\155\144\x3a\x4b\x65\x79\104\145\163\143\x72\151\x70\164\x6f\162\x20\x75\x73\145\75\42\x65\156\x63\162\x79\160\164\151\x6f\156\x22\x3e\15\12\x20\40\40\x20\40\x20\x20\x20\x20\40\x20\x20\x20\40\74\x64\x73\x3a\113\145\x79\111\x6e\146\x6f\40\170\x6d\x6c\x6e\163\x3a\144\x73\75\42\x68\164\x74\x70\x3a\57\57\167\167\x77\56\167\x33\56\x6f\162\x67\57\x32\x30\x30\x30\x2f\60\71\x2f\170\x6d\x6c\x64\x73\x69\147\43\42\x3e\15\12\x20\x20\40\40\40\x20\40\40\x20\40\40\x20\40\40\x20\40\74\x64\163\x3a\x58\65\60\x39\104\141\164\141\x3e\15\12\40\x20\x20\x20\x20\40\40\40\x20\40\x20\x20\40\x20\40\40\40\x20\74\144\x73\72\x58\65\x30\x39\103\x65\x72\x74\151\x66\151\x63\x61\x74\x65\x3e" . $pn . "\x3c\57\144\163\x3a\130\x35\60\x39\103\x65\162\164\x69\146\x69\143\141\x74\145\x3e\15\12\x20\40\40\40\x20\40\40\40\40\x20\x20\x20\x20\x20\40\40\x3c\x2f\144\163\x3a\130\65\x30\71\104\x61\x74\141\x3e\xd\12\x20\x20\x20\x20\40\40\40\40\40\40\40\x20\40\x20\74\x2f\x64\x73\72\x4b\x65\x79\111\x6e\x66\157\x3e\xd\12\40\40\x20\40\40\x20\40\40\40\x20\40\40\x3c\x2f\x6d\x64\72\x4b\145\x79\104\145\x73\x63\162\x69\160\164\x6f\162\76\xd\xa\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\x3c\155\x64\x3a\x53\151\x6e\147\x6c\145\x4c\157\x67\157\165\x74\123\x65\162\166\151\x63\145\40\x42\151\156\x64\x69\156\x67\x3d\42\x75\x72\156\72\x6f\141\163\x69\x73\x3a\x6e\x61\155\x65\163\72\164\x63\x3a\123\101\115\114\72\62\56\60\72\142\x69\x6e\x64\x69\156\147\x73\x3a\110\124\124\x50\55\x50\117\x53\x54\42\x20\x4c\157\143\141\164\151\157\156\75\42" . $Sb . "\57\x75\163\x65\x72\57\154\x6f\x67\x6f\165\x74\x22\x2f\x3e\15\xa\40\40\40\40\40\x20\x20\40\x20\40\40\x20\74\155\x64\72\123\x69\156\x67\x6c\145\x4c\157\x67\x6f\165\x74\123\x65\162\166\x69\143\145\x20\x42\x69\156\x64\151\156\147\75\x22\x75\162\x6e\72\x6f\141\163\151\x73\72\156\x61\x6d\x65\x73\72\x74\143\72\123\101\x4d\x4c\x3a\62\56\60\72\x62\x69\156\x64\151\x6e\147\x73\72\x48\x54\x54\120\x2d\122\145\144\151\x72\x65\x63\x74\42\x20\x4c\x6f\143\141\164\x69\157\x6e\75\x22" . $Sb . "\57\x75\163\x65\x72\x2f\x6c\x6f\147\157\165\x74\42\57\76\15\xa\x20\40\x20\x20\x20\40\40\40\x20\40\x20\x20\x3c\155\x64\72\116\141\155\x65\111\104\106\157\x72\x6d\141\x74\76\165\x72\x6e\72\x6f\x61\163\151\x73\x3a\x6e\141\155\x65\x73\72\x74\x63\72\x53\101\x4d\x4c\72\x31\56\x31\72\x6e\141\x6d\x65\x69\x64\55\x66\157\x72\155\x61\x74\x3a\x65\x6d\141\x69\x6c\x41\x64\144\162\145\163\x73\74\x2f\155\x64\x3a\x4e\141\155\x65\x49\104\106\157\162\155\141\164\x3e\15\xa\40\40\x20\x20\40\40\x20\x20\x20\40\40\x20\74\x6d\144\x3a\x4e\141\x6d\145\x49\104\106\157\162\x6d\141\164\x3e\x75\x72\156\x3a\157\x61\x73\x69\x73\x3a\x6e\141\x6d\145\163\x3a\164\143\x3a\x53\x41\x4d\x4c\x3a\x32\56\60\72\x6e\141\x6d\x65\151\x64\x2d\x66\157\x72\155\x61\164\x3a\165\x6e\163\160\145\143\151\x66\151\145\144\x3c\57\x6d\x64\x3a\x4e\x61\x6d\145\111\104\106\157\x72\x6d\141\164\x3e\15\12\x20\x20\x20\x20\x20\x20\x20\40\40\x20\40\40\74\155\144\72\x4e\x61\155\x65\111\x44\106\157\x72\155\x61\164\76\165\162\156\72\x6f\141\163\x69\163\x3a\x6e\x61\155\145\x73\x3a\164\143\x3a\123\x41\x4d\x4c\72\x32\x2e\x30\x3a\156\x61\155\x65\151\x64\55\146\x6f\x72\x6d\x61\x74\x3a\x74\x72\141\156\x73\151\x65\156\164\74\57\x6d\x64\72\x4e\x61\x6d\145\x49\x44\106\157\162\x6d\141\x74\x3e\15\xa\40\40\x20\x20\x20\40\x20\40\x20\x20\x20\40\74\x6d\144\72\x41\x73\x73\x65\162\x74\x69\157\156\103\x6f\156\x73\x75\x6d\x65\x72\x53\145\x72\x76\151\143\x65\x20\102\151\156\144\151\156\x67\x3d\x22\165\x72\x6e\72\157\x61\x73\151\x73\x3a\156\141\x6d\x65\x73\72\x74\x63\72\123\x41\x4d\114\x3a\62\x2e\60\x3a\142\151\x6e\x64\151\x6e\147\163\72\110\124\124\120\x2d\x50\x4f\123\x54\42\x20\x4c\x6f\143\x61\164\151\x6f\156\75\42" . $QT . "\x22\x20\x69\x6e\144\x65\170\75\42\61\x22\x2f\x3e\15\12\x20\40\x20\40\40\40\40\40\40\x20\x3c\x2f\155\144\72\123\120\x53\123\x4f\104\x65\163\x63\162\151\160\164\157\x72\76\xd\xa\x20\x20\x20\40\x20\40\40\40\40\40\x3c\155\144\72\117\x72\147\141\x6e\151\x7a\141\164\x69\157\156\76\xd\xa\x20\x20\40\x20\40\40\40\40\x20\x20\40\x20\74\155\x64\72\117\162\147\141\x6e\151\x7a\141\164\151\x6f\156\116\x61\155\145\40\x78\155\154\72\x6c\x61\156\x67\75\x22\x65\156\55\125\123\x22\76" . $XC->get("\155\157\x5f\163\x61\155\154\137\x6d\x65\x74\141\x64\141\x74\x61\137\117\162\147\x61\156\x69\x7a\141\x74\151\157\156\116\x61\x6d\x65") . "\x3c\x2f\x6d\x64\72\x4f\x72\147\x61\156\x69\x7a\x61\x74\x69\157\x6e\x4e\141\155\x65\x3e\xd\xa\x20\x20\40\40\x20\x20\40\x20\x20\40\x20\x20\x3c\155\x64\x3a\117\162\147\141\x6e\151\172\141\164\x69\157\156\x44\x69\x73\160\x6c\141\171\116\x61\155\145\40\170\155\x6c\x3a\154\x61\x6e\x67\x3d\42\145\156\x2d\125\x53\x22\76" . $XC->get("\155\x6f\137\163\x61\155\x6c\x5f\117\162\x67\x61\x6e\x69\172\141\x74\151\x6f\156\104\x69\x73\x70\x6c\x61\x79\x4e\x61\x6d\x65") . "\74\x2f\155\x64\x3a\x4f\x72\x67\141\x6e\x69\x7a\141\x74\x69\157\x6e\104\x69\163\160\154\x61\171\x4e\x61\155\145\x3e\xd\12\x20\40\x20\x20\x20\x20\x20\x20\x20\40\40\40\x3c\155\x64\x3a\117\162\147\x61\156\x69\172\x61\164\151\x6f\156\125\122\x4c\x20\170\155\x6c\72\x6c\141\156\147\75\42\x65\x6e\x2d\125\x53\42\76" . $XC->get("\x6d\x6f\x5f\x73\141\x6d\154\137\x4f\x72\147\141\156\x69\x7a\141\164\x69\157\156\x55\x52\x4c") . "\74\x2f\155\144\72\117\162\x67\x61\x6e\x69\x7a\141\x74\151\x6f\x6e\125\x52\x4c\x3e\xd\12\40\40\40\x20\40\40\x20\x20\40\40\74\x2f\x6d\x64\x3a\117\x72\147\x61\156\151\172\x61\x74\151\x6f\156\76\xd\12\40\x20\x20\40\x20\x20\40\40\x20\x20\74\x6d\144\x3a\103\157\156\164\x61\143\164\120\x65\162\x73\x6f\156\40\x63\157\x6e\x74\141\x63\x74\124\171\160\x65\x3d\42\x74\x65\x63\x68\156\x69\143\x61\154\x22\x3e\xd\xa\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\x3c\155\144\72\x47\151\x76\x65\156\116\x61\155\x65\76" . $XC->get("\155\157\137\x73\x61\x6d\154\137\103\x6f\x6e\164\x61\143\x74\120\145\162\x73\157\x6e\x54\145\143\150\156\x69\x63\141\x6c\116\141\155\x65") . "\x3c\x2f\155\144\x3a\x47\x69\166\145\x6e\116\x61\155\145\x3e\xd\xa\x20\x20\x20\x20\40\40\x20\x20\40\40\40\x20\x3c\155\144\x3a\105\155\141\x69\154\101\144\144\x72\x65\x73\163\x3e" . $XC->get("\x6d\x6f\137\x73\141\x6d\x6c\137\103\x6f\x6e\x74\x61\143\x74\x50\x65\x72\163\157\156\x54\145\143\x68\x6e\x69\x63\x61\154\105\155\x61\x69\x6c") . "\x3c\57\155\x64\x3a\105\155\141\x69\x6c\x41\144\144\x72\145\163\x73\x3e\15\xa\40\x20\40\x20\x20\40\40\40\x20\40\x3c\x2f\x6d\x64\72\103\x6f\156\x74\x61\143\x74\120\x65\162\163\x6f\156\76\xd\12\40\x20\40\x20\x20\x20\40\40\x20\40\x3c\155\144\72\x43\x6f\x6e\x74\141\x63\164\120\145\x72\163\157\156\40\143\157\156\164\141\x63\164\x54\171\x70\x65\75\42\163\165\x70\x70\x6f\162\x74\x22\x3e\15\12\40\40\40\40\x20\x20\x20\x20\x20\40\40\x20\x3c\x6d\144\x3a\x47\151\166\x65\156\x4e\x61\155\x65\76" . $XC->get("\x6d\x6f\x5f\x73\x61\155\x6c\137\x43\x6f\x6e\x74\x61\143\x74\120\x65\162\x73\x6f\x6e\x53\x75\x70\160\x6f\x72\164\x4e\141\155\145") . "\74\57\x6d\144\x3a\107\x69\x76\x65\x6e\116\x61\x6d\145\x3e\xd\xa\x20\40\40\40\40\x20\x20\x20\40\x20\x20\40\74\x6d\x64\x3a\x45\x6d\x61\151\154\x41\x64\144\x72\x65\163\x73\x3e" . $XC->get("\x6d\x6f\137\x73\x61\x6d\x6c\x5f\103\157\156\x74\x61\x63\x74\120\x65\162\163\x6f\156\123\165\160\x70\157\x72\164\x45\155\x61\151\x6c") . "\x3c\x2f\x6d\144\x3a\105\155\x61\151\x6c\x41\x64\x64\162\145\163\163\x3e\15\xa\40\40\x20\40\x20\x20\40\40\40\x20\x3c\x2f\155\x64\72\103\x6f\x6e\x74\141\x63\x74\120\x65\x72\163\x6f\156\76\xd\xa\x20\x20\40\x20\40\40\x20\x20\x3c\x2f\x6d\144\72\105\156\x74\x69\x74\x79\104\x65\163\x63\162\x69\160\x74\x6f\x72\76";
exit;
}
}
Function Calls
None |
Stats
MD5 | 0037e40484a6471200a0bf3e023b64ce |
Eval Count | 0 |
Decode Time | 144 ms |