{
    "status": "success",
    "timestamp": "2026-08-29 13:34:01",
    "action": "generate",
    "steps": [
        {
            "step": "START",
            "step_number": 1,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Starting CAPTCHA generation process",
            "data": null
        },
        {
            "step": "STEP_1_GET_HOMEPAGE",
            "step_number": 2,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Fetching homepage for CSRF token",
            "data": null
        },
        {
            "step": "STEP_1_GET_HOMEPAGE",
            "step_number": 3,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Homepage fetched successfully",
            "data": {
                "status": 200
            }
        },
        {
            "step": "STEP_2_EXTRACT_CSRF",
            "step_number": 4,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Extracting CSRF token from HTML",
            "data": null
        },
        {
            "step": "STEP_2_EXTRACT_CSRF",
            "step_number": 5,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "CSRF token extracted",
            "data": {
                "csrf_token": "cd282a8f-90c1-41fe-a905-5ea17676ea69"
            }
        },
        {
            "step": "STEP_3_GET_CAPTCHA_URL",
            "step_number": 6,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Extracting CAPTCHA URL from HTML",
            "data": null
        },
        {
            "step": "STEP_3_GET_CAPTCHA_URL",
            "step_number": 7,
            "timestamp": "2026-08-29 13:34:01",
            "success": false,
            "message": "ERROR: CAPTCHA URL not found, using default pattern",
            "data": null
        },
        {
            "step": "STEP_3_GET_CAPTCHA_URL",
            "step_number": 8,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "CAPTCHA URL ready",
            "data": {
                "url": "https://services.nidw.gov.bd/nid-pub/captcha/?t=1788010441184"
            }
        },
        {
            "step": "STEP_4_DOWNLOAD_CAPTCHA",
            "step_number": 9,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Downloading CAPTCHA image",
            "data": null
        },
        {
            "step": "STEP_4_DOWNLOAD_CAPTCHA",
            "step_number": 10,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "CAPTCHA downloaded successfully",
            "data": {
                "filepath": "captcha_output/captcha_20260829_133401.jpg",
                "size": 3267
            }
        },
        {
            "step": "STEP_5_EXTRACT_TEXT",
            "step_number": 11,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Starting text extraction with multiple methods",
            "data": null
        },
        {
            "step": "STEP_5_1_OCRSPACE",
            "step_number": 12,
            "timestamp": "2026-08-29 13:34:01",
            "success": true,
            "message": "Attempting OCR.space",
            "data": null
        },
        {
            "step": "STEP_5_1_OCRSPACE",
            "step_number": 13,
            "timestamp": "2026-08-29 13:34:02",
            "success": false,
            "message": "ERROR: OCR.space failed",
            "data": {
                "error": "Text too short"
            }
        },
        {
            "step": "STEP_5_2_TESSERACT",
            "step_number": 14,
            "timestamp": "2026-08-29 13:34:02",
            "success": true,
            "message": "Attempting Tesseract OCR",
            "data": null
        },
        {
            "step": "STEP_5_2_TESSERACT",
            "step_number": 15,
            "timestamp": "2026-08-29 13:34:02",
            "success": false,
            "message": "ERROR: Tesseract failed",
            "data": {
                "error": "Tesseract not installed"
            }
        },
        {
            "step": "STEP_5_3_IMAGE_ANALYSIS",
            "step_number": 16,
            "timestamp": "2026-08-29 13:34:02",
            "success": true,
            "message": "Attempting pixel-based analysis",
            "data": null
        },
        {
            "step": "STEP_5_3_IMAGE_ANALYSIS",
            "step_number": 17,
            "timestamp": "2026-08-29 13:34:02",
            "success": false,
            "message": "ERROR: Image analysis failed",
            "data": {
                "error": "Failed to load image"
            }
        },
        {
            "step": "STEP_5_4_FALLBACK",
            "step_number": 18,
            "timestamp": "2026-08-29 13:34:02",
            "success": true,
            "message": "All OCR methods failed, using fallback patterns",
            "data": null
        },
        {
            "step": "STEP_5_4_FALLBACK",
            "step_number": 19,
            "timestamp": "2026-08-29 13:34:02",
            "success": true,
            "message": "Fallback used",
            "data": {
                "text": "abcdef"
            }
        },
        {
            "step": "STEP_5_EXTRACT_TEXT",
            "step_number": 20,
            "timestamp": "2026-08-29 13:34:02",
            "success": true,
            "message": "Text extraction completed",
            "data": {
                "method": "fallback_common",
                "text": "abcdef"
            }
        }
    ],
    "session": {
        "file": "/tmp/captcha_session_22fd1198be3010656fda8ce90e8b8c4e.txt",
        "jsessionid": null,
        "server_id": null,
        "cookies": [],
        "content": "# Netscape HTTP Cookie File\n# https://curl.haxx.se/docs/http-cookies.html\n# This file was generated by libcurl! Edit at your own risk.\n\nservices.nidw.gov.bd\tFALSE\t/nid-pub\tFALSE\t0\tJSESSIONID\t\"KRPEuMdsnS8_x2jZ1261kccDJukmMwTe3o08CGGF.slave2:PUB_MSRV032\"\nservices.nidw.gov.bd\tFALSE\t/\tFALSE\t0\tSERVERID\tbec-pub08\n",
        "size": 309
    },
    "captcha": {
        "url": "https://services.nidw.gov.bd/nid-pub/captcha/?t=1788010441184",
        "filename": "captcha_20260829_133401.jpg",
        "filepath": "captcha_output/captcha_20260829_133401.jpg",
        "csrf_token": "cd282a8f-90c1-41fe-a905-5ea17676ea69",
        "image_size": 3267,
        "image_base64": "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"
    },
    "extracted_text": {
        "text": "abcdef",
        "method": "fallback_common",
        "success": true,
        "raw_text": "[FALLBACK]"
    },
    "all_attempts": {
        "ocrspace": {
            "success": false,
            "raw_text": "",
            "clean_text": "",
            "error": "Text too short",
            "method": "ocrspace"
        },
        "tesseract": {
            "success": false,
            "error": "Tesseract not installed",
            "method": "tesseract"
        },
        "image_analysis": {
            "success": false,
            "error": "Failed to load image"
        }
    },
    "files": {
        "image": "captcha_output/captcha_20260829_133401.jpg",
        "session": "/tmp/captcha_session_22fd1198be3010656fda8ce90e8b8c4e.txt",
        "log": "captcha_logs/step_log_20260829_133401.txt"
    },
    "errors": [],
    "log_file": "captcha_logs/step_log_20260829_133401.txt"
}
