




<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>O Level Paper Solution Archives &#187; GyanXp</title>
	<atom:link href="https://gyanxp.com/category/o-level-paper-solution/feed/" rel="self" type="application/rss+xml" />
	<link>https://gyanxp.com/category/o-level-paper-solution/</link>
	<description>अपनी Online Class</description>
	<lastBuildDate>Sun, 16 Aug 2026 14:27:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://gyanxp.com/wp-content/uploads/2025/02/image-1.webp</url>
	<title>O Level Paper Solution Archives &#187; GyanXp</title>
	<link>https://gyanxp.com/category/o-level-paper-solution/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-4 Series-44 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-4-series-44-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-4-series-44-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 14:25:11 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6155</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 4 Series 44 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-4-series-44-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-4 Series-44 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6155" class="elementor elementor-6155">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-4b28900 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4b28900" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-84bbf3e" data-id="84bbf3e" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-864eebb elementor-widget elementor-widget-html" data-id="864eebb" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 4</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">44</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1csOaGREjbJ6FkgFIpnnVWaJDkYymuxiw/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "A", "D", "B", "A", "A", "C", "B", "A", "A", "D",
    "B", "B", "A", "C", "A", "C", "B", "C", "B", "D",
    "C", "A", "C", "C", "D", "A", "B", "C", "B", "C",
    "D", "C", "D", "D", "C", "A", "A", "A", "A", "B",
    "D", "A", "D", "C", "A", "D", "D", "B", "C", "D",
    "B", "A", "C", "B", "B", "D", "C", "B", "A", "A",
    "A", "B", "C", "B", "A", "C", "A", "C", "B", "C",
    "B", "C", "D", "C", "D", "B", "A", "D", "D", "C",
    "B", "D", "D", "B", "B", "B", "A", "B", "B", "D",
    "D", "A", "D", "C", "B", "A", "C", "A", "D", "B"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-4-series-44-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-4 Series-44 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-4-series-44-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-2 Series-24 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-24-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-24-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 14:05:05 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6146</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 2 Series 24 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-24-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-2 Series-24 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6146" class="elementor elementor-6146">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-b6bc715 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b6bc715" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cad9a80" data-id="cad9a80" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ceb97b0 elementor-widget elementor-widget-html" data-id="ceb97b0" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 2</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">24</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1aZeKENR6nf3LLt9ncf-tFOQYPcu0dlqK/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "D", "B", "B", "B", "A", "A", "A", "D", "C", "A",
    "C", "B", "C", "C", "D", "C", "B", "A", "D", "C",
    "B", "B", "A", "C", "B", "C", "C", "A", "D", "C",
    "D", "C", "B", "B", "D", "D", "D", "C", "D", "C",
    "C", "D", "C", "D", "B", "C", "B", "A", "C", "D",
    "C", "D", "B", "A", "A", "D", "A", "A", "D", "A",
    "A", "D", "A", "A", "D", "B", "B", "A", "B", "A",
    "C", "C", "A", "C", "B", "A", "A", "D", "B", "B",
    "D", "A", "A", "A", "C", "C", "C", "D", "D", "B",
    "D", "C", "A", "C", "C", "B", "D", "B", "B", "A"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-24-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-2 Series-24 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-24-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-2 Series-23 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-23-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-23-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 13:44:07 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6137</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 2 Series 23 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-23-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-2 Series-23 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6137" class="elementor elementor-6137">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-d6d0d48 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d6d0d48" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-73cbd4b" data-id="73cbd4b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-2378cf0 elementor-widget elementor-widget-html" data-id="2378cf0" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 2</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">23</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1M3qkWV25Q-jSig3YzDPuhjJqRBzgT9Pw/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "A", "B", "B", "A", "D", "A", "C", "A", "C", "A",
    "A", "D", "B", "D", "B", "D", "A", "C", "C", "C",
    "B", "A", "A", "B", "D", "B", "C", "A", "B", "D",
    "D", "D", "B", "C", "B", "C", "C", "A", "C", "A",
    "C", "D", "A", "D", "C", "A", "A", "D", "C", "D",
    "C", "D", "D", "C", "B", "C", "B", "A", "D", "B",
    "A", "C", "C", "A", "B", "D", "C", "C", "D", "B",
    "C", "D", "C", "A", "A", "C", "A", "B", "B", "D",
    "B", "C", "B", "B", "B", "A", "C", "B", "D", "A",
    "D", "D", "D", "B", "C", "A", "C", "C", "B", "A"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-23-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-2 Series-23 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-23-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-2 Series-21 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-21-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-21-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 13:31:58 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6128</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 2 Series 21 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-21-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-2 Series-21 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6128" class="elementor elementor-6128">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-b5d2e67 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b5d2e67" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c5fd966" data-id="c5fd966" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-baf4f85 elementor-widget elementor-widget-html" data-id="baf4f85" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 2</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">21</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1bVlROBW2LfX9JNrDUDFy8f8s2862mHbN/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "A", "C", "A", "A", "A", "B", "C", "A", "D", "A",
    "A", "B", "B", "A", "C", "D", "D", "B", "D", "D",
    "B", "A", "A", "C", "C", "B", "C", "D", "C", "D",
    "B", "A", "D", "C", "B", "A", "D", "D", "B", "D",
    "A", "C", "B", "B", "B", "A", "B", "D", "B", "B",
    "C", "A", "D", "A", "B", "D", "A", "C", "C", "D",
    "D", "A", "A", "D", "C", "C", "C", "C", "B", "D",
    "A", "C", "C", "A", "B", "A", "C", "C", "C", "B",
    "A", "C", "C", "D", "B", "A", "A", "D", "B", "D",
    "C", "B", "B", "D", "C", "B", "C", "D", "A", "A"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-21-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-2 Series-21 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-2-series-21-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-1 Series-14 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-14-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-14-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 13:23:57 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6119</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 1 Series 14 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-14-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-1 Series-14 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6119" class="elementor elementor-6119">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-ff11e04 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ff11e04" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fb9eb15" data-id="fb9eb15" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8d329ef elementor-widget elementor-widget-html" data-id="8d329ef" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">14</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1NbmL5hVkBJ3WUEeHrKxi1IzfX0Ew_nmw/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "D", "B", "C", "C", "B", "B", "D", "C", "D", "D",
    "A", "C", "C", "D", "D", "C", "D", "B", "C", "C",
    "C", "D", "A", "A", "B", "A", "A", "D", "C", "D",
    "D", "C", "D", "D", "C", "A", "C", "D", "B", "C",
    "B", "B", "C", "C", "C", "A", "B", "C", "B", "D",
    "D", "C", "B", "C", "A", "D", "D", "A", "A", "D",
    "C", "A", "B", "C", "B", "D", "C", "B", "C", "A",
    "C", "B", "B", "C", "D", "B", "A", "B", "C", "A",
    "B", "A", "C", "D", "B", "D", "D", "A", "A", "C",
    "D", "C", "A", "B", "B", "B", "A", "A", "A", "D"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-14-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-1 Series-14 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-14-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-1 Series-13 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-13-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-13-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 13:08:37 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6110</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 1 Series 13 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-13-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-1 Series-13 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6110" class="elementor elementor-6110">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-1820cb0 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1820cb0" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e6e50a4" data-id="e6e50a4" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-4e2713b elementor-widget elementor-widget-html" data-id="4e2713b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">13</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/10ri2yFEWtv-e3LthUg7gnRTvCMMu8Qoo/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "C", "B", "D", "B", "A", "C", "C", "A", "B", "B",
    "C", "A", "C", "D", "A", "B", "C", "D", "C", "C",
    "A", "B", "A", "D", "D", "C", "C", "A", "D", "D",
    "A", "B", "C", "D", "B", "A", "D", "B", "A", "C",
    "D", "B", "A", "A", "D", "B", "C", "C", "A", "C",
    "B", "A", "A", "B", "C", "D", "D", "C", "B", "A",
    "B", "D", "B", "C", "B", "C", "D", "A", "B", "B",
    "A", "D", "A", "C", "D", "D", "D", "B", "C", "C",
    "A", "C", "B", "A", "D", "A", "B", "D", "C", "D",
    "A", "A", "D", "B", "D", "B", "B", "A", "C", "A"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-13-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-1 Series-13 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-13-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things (M4-R5.1) Paper Solution Set-1 Series-12 (JUL 2026)</title>
		<link>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-12-jul-2026/</link>
					<comments>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-12-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 13:00:45 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6101</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Internet of Things Paper Code M4-R5.1 Session JUL 2026 Paper Set Set &#8211; 1 Series 12 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-12-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-1 Series-12 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6101" class="elementor elementor-6101">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-d028414 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d028414" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-89c2ba3" data-id="89c2ba3" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-bce7582 elementor-widget elementor-widget-html" data-id="bce7582" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Internet of Things</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M4-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">12</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1A00P4IyEQBYSBM2IuKu9t0lbTfOPn_3g/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "B", "B", "B", "A", "B", "D", "A", "C", "C", "B",
    "A", "A", "C", "A", "B", "B", "D", "C", "B", "C",
    "C", "C", "D", "B", "A", "D", "D", "A", "C", "A",
    "C", "C", "B", "D", "C", "B", "B", "A", "A", "D",
    "C", "C", "C", "C", "A", "A", "A", "D", "A", "C",
    "C", "A", "C", "D", "B", "D", "B", "A", "A", "B",
    "C", "D", "A", "D", "D", "A", "D", "C", "D", "A",
    "D", "D", "A", "A", "C", "C", "B", "B", "B", "C",
    "D", "D", "B", "B", "C", "D", "B", "D", "B", "A",
    "A", "D", "D", "A", "C", "B", "B", "B", "D", "C"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-12-jul-2026/">Internet of Things (M4-R5.1) Paper Solution Set-1 Series-12 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/internet-of-things-m4-r5-1-paper-solution-set-1-series-12-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Web Designing &#038; Publishing (M2-R5.1) Paper Solution Set-2 Series-24 (JUL 2026)</title>
		<link>https://gyanxp.com/web-designing-publishing-m2-r5-1-paper-solution-set-2-series-24-jul-2026/</link>
					<comments>https://gyanxp.com/web-designing-publishing-m2-r5-1-paper-solution-set-2-series-24-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 12:48:40 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6092</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Web Designing &#038; Publishing Paper Code M2-R5.1 Session JUL 2026 Paper Set Set &#8211; 2 Series 24 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/web-designing-publishing-m2-r5-1-paper-solution-set-2-series-24-jul-2026/">Web Designing &amp; Publishing (M2-R5.1) Paper Solution Set-2 Series-24 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6092" class="elementor elementor-6092">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-50c0ad6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="50c0ad6" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b266273" data-id="b266273" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6c202c0 elementor-widget elementor-widget-html" data-id="6c202c0" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Web Designing & Publishing</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M2-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 2</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">24</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1PysOYiCyL5yxWI_2ON_zHZrgFvea0SJv/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "A", "B", "C", "C", "D", "B", "D", "B", "D", "C",
    "D", "A", "D", "B", "C", "D", "C", "A", "A", "B",
    "A", "B", "B", "B", "D", "D", "A", "B", "D", "B",
    "A", "A", "B", "A", "A", "B", "B", "B", "B", "B",
    "D", "C", "A", "B", "C", "B", "C", "B", "C", "C",
    "A", "A", "B", "A", "D", "C", "D", "C", "D", "B",
    "B", "D", "C", "D", "D", "C", "B", "C", "A", "B",
    "A", "C", "D", "A", "B", "A", "A", "D", "C", "A",
    "B", "A", "C", "C", "B", "C", "B", "C", "C", "D",
    "A", "D", "D", "D", "B", "C", "B", "A", "A", "B"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/web-designing-publishing-m2-r5-1-paper-solution-set-2-series-24-jul-2026/">Web Designing &amp; Publishing (M2-R5.1) Paper Solution Set-2 Series-24 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/web-designing-publishing-m2-r5-1-paper-solution-set-2-series-24-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python Programming (M3-R5.1) Paper Solution Set-1 Series-13 (JUL 2026)</title>
		<link>https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-13-jul-2026/</link>
					<comments>https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-13-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 11:35:32 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6083</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Python Programming Paper Code M3-R5.1 Session JUL 2026 Paper Set Set &#8211; 1 Series 13 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key OMR [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-13-jul-2026/">Python Programming (M3-R5.1) Paper Solution Set-1 Series-13 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6083" class="elementor elementor-6083">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-7ace8ec elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7ace8ec" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2e8a0fb" data-id="2e8a0fb" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6830194 elementor-widget elementor-widget-html" data-id="6830194" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Python Programming</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M3-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">13</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1DzirqYae_Zy_RYDBflwtJbJ5GDiZwV3X/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "D", "D", "C", "C", "B", "A", "A", "B", "D", "C",
    "C", "A", "A", "A", "A", "A", "B", "D", "D", "B",
    "A", "A", "B", "D", "D", "A", "D", "B", "B", "A",
    "A", "C", "D", "B", "D", "B", "D", "B", "A", "C",
    "C", "C", "D", "A", "B", "C", "D", "C", "D", "B",
    "A", "B", "C", "B", "B", "A", "A", "A", "C", "A",
    "A", "A", "C", "B", "A", "C", "D", "D", "D", "C",
    "B", "D", "C", "D", "C", "B", "A", "C", "B", "A",
    "B", "C", "C", "B", "B", "D", "B", "D", "A", "B",
    "B", "D", "D", "A", "B", "D", "C", "D", "C", "B"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-13-jul-2026/">Python Programming (M3-R5.1) Paper Solution Set-1 Series-13 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-13-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python Programming (M3-R5.1) Paper Solution Set-1 Series-12 (JUL 2026)</title>
		<link>https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-12-jul-2026/</link>
					<comments>https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-12-jul-2026/#respond</comments>
		
		<dc:creator><![CDATA[Balmukund Maurya]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 07:43:42 +0000</pubDate>
				<category><![CDATA[O Level Paper Solution]]></category>
		<guid isPermaLink="false">https://gyanxp.com/?p=6074</guid>

					<description><![CDATA[<p>Print Answer Key 🌙 Subject Name Python Programming Paper Code M3-R5.1 Session JUL 2026 Paper Set Set &#8211; 1 Series 12 Question Paper * Downloading and Printing is restricted for this document. Official Answer Key Q. No. Correct Options (OMR View) Bridge ← Prev Page 1 of 10 Next → Check Your Answer Key OMR [&#8230;]</p>
<p>The post <a href="https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-12-jul-2026/">Python Programming (M3-R5.1) Paper Solution Set-1 Series-12 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6074" class="elementor elementor-6074">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-e9c3c05 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9c3c05" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d8e0f3f" data-id="d8e0f3f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-b56d39e elementor-widget elementor-widget-html" data-id="b56d39e" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="paper-container" id="mainContainer">
    <!-- Top Action Bar -->
    <div class="top-action-bar no-print">
        <button class="action-btn secondary-btn" id="masterPrintBtn" onclick="printAnswerKey()">
            <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z"/><path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z"/></svg>
            Print Answer Key
        </button>

        <button class="dark-toggle-btn" id="themeToggle" onclick="toggleDarkMode()" aria-label="Toggle Dark Mode">
            <span class="mode-icon">🌙</span>
        </button>
    </div>

    <!-- Paper Details Header -->
    <header class="paper-header">
        <div class="meta-item subject-item">
            <span class="meta-label">Subject Name</span>
            <span class="meta-value">Python Programming</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Code</span>
            <span class="meta-value">M3-R5.1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Session</span>
            <span class="meta-value">JUL 2026</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Paper Set</span>
            <span class="meta-value">Set - 1</span>
        </div>
        <div class="meta-item">
            <span class="meta-label">Series</span>
            <span class="meta-value">12</span>
        </div>
    </header>

    <!-- Main Workspace Split -->
    <div class="content-layout">
        <!-- PDF Presentation Block -->
        <div class="pdf-section" id="pdfSection">
            <h3 class="section-title">Question Paper</h3>
            <div class="pdf-wrapper-container">
                <div class="pdf-wrapper">
                    <iframe src="https://drive.google.com/file/d/1NtF_L8k9D7nCGUF_2s2M3gnkSL6cQIhQ/preview" width="640" height="480" allow="autoplay" oncontextmenu="return false;"></iframe>
                </div>
                <div class="pdf-popout-shield"></div>
            </div>
            <p class="security-note">* Downloading and Printing is restricted for this document.</p>
        </div>

        <!-- Answer Grid Console Block -->
        <div class="answer-section" id="printableArea">
            <h3 class="section-title no-print">Official Answer Key</h3>
            
            <div class="search-box no-print">
                <input type="number" id="qSearch" placeholder="Jump to Question No. (e.g., 45)" min="1" max="100" oninput="searchQuestion()">
            </div>

            <div class="table-responsive" id="tableContainer">
                <table class="answer-table">
                    <thead>
                        <tr>
                            <th>Q. No.</th>
                            <th>Correct Options (OMR View)</th>
                            <th class="no-print">Bridge</th>
                        </tr>
                    </thead>
                    <tbody id="answer-body">
                        <!-- Loaded dynamically via JS Matrix -->
                    </tbody>
                </table>
            </div>

            <div class="pagination-container no-print" id="pagination-controls">
                <button class="nav-btn" id="prevBtn" onclick="changePage(-1)">← Prev</button>
                <span id="pageIndicator" class="page-indicator">Page 1 of 10</span>
                <button class="nav-btn" id="nextBtn" onclick="changePage(1)">Next →</button>
            </div>
        </div>
    </div>

    <!-- Bottom Trigger Action Button -->
    <div class="check-action-wrapper no-print">
        <button class="check-key-btn" onclick="revealOMRPortal()">Check Your Answer Key</button>
    </div>

    <!-- Student Evaluation Dynamic OMR Portal Section -->
    <div id="student-omr-portal" class="student-omr-portal no-print" style="display: none;">
        <h3 class="omr-title">OMR Answer Sheet (Select options here)</h3>
        
        <!-- OMR Grid Workspace Container -->
        <div class="omr-layout-box">
            <div class="omr-column-wrapper">
                <div id="omr-sheet-grid" class="omr-columns-container">
                    <!-- Loaded dynamically via JS -->
                </div>
            </div>
        </div>

        <!-- 🌟 Left/Right Navigation Buttons Centered at the Bottom 🌟 -->
        <div class="omr-scroll-center-bottom">
            <button class="omr-scroll-btn" onclick="scrollOMR('left')">← Scroll Left</button>
            <button class="omr-scroll-btn" onclick="scrollOMR('right')">Scroll Right →</button>
        </div>
        
        <div class="btn-container-vertical">
            <button class="btn-submit" onclick="evaluateOMRSheet()">SUBMIT TEST</button>
        </div>
        
        <!-- Results Dashboard Panel -->
        <div id="result" class="result-box"></div>

        <!-- Comprehensive Audit Verification Table Grid -->
        <div id="matrix-box" class="matrix-container" style="display: none;">
            <h3>📋 Detailed Answer Audit Sheet</h3>
            <div id="audit-grid" class="audit-grid"></div>
        </div>
    </div>
</div>

<style>
/* Modern Fluid Orange Design Tokens */
:root {
    --primary-color: #1e293b;
    --accent-color: #ff6b35; 
    --accent-gradient: linear-gradient(135deg, #ff6b35, #ff9f1c);
    --bg-main: #ffffff;
    --bg-light: #f8fafc;
    --text-main: #475569;
    --text-qno: #1e293b; 
    --border-color: #cbd5e1;
    --card-shadow: 0 4px 6px -1px rgba(255, 107, 53, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    --omr-inactive: #f1f5f9;
    --omr-text: #64748b;
}

[data-theme="dark"] {
    --primary-color: #f8fafc;
    --accent-color: #ff9f1c; 
    --accent-gradient: linear-gradient(135deg, #ff9f1c, #ff6b35);
    --bg-main: #0b0f19;
    --bg-light: #111824;
    --text-main: #cbd5e1;
    --text-qno: #ffffff; 
    --border-color: #1e293b;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
    --omr-inactive: #121824;
    --omr-text: #6b7280;
}

.paper-container {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: background 0.3s ease, color 0.3s ease;
}

.top-action-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}
.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: var(--bg-light);
    color: var(--text-main);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}
.action-btn:hover:not(:disabled) { 
    background: var(--accent-gradient); 
    color: white; 
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
}
.action-btn:disabled { opacity: 0.4; cursor: not-allowed !important; background: #e2e8f0; color: #94a3b8; }

.dark-toggle-btn {
    background: var(--bg-light); border: 1px solid var(--border-color);
    width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
    color: var(--text-main); transition: all 0.2s;
}
.dark-toggle-btn:hover { border-color: var(--accent-color); }

.paper-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 15px;
    background: linear-gradient(135deg, #ff6b35, #e65c00);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    color: #ffffff;
    align-items: center;
    box-shadow: 0 8px 20px -5px rgba(230, 92, 0, 0.25);
}
[data-theme="dark"] .paper-header {
    background: linear-gradient(135deg, #cc5200, #993d00);
}
.meta-item {
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.meta-item:last-child { border-right: none; }
.subject-item { text-align: left; padding-left: 10px; }
.meta-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.meta-value { font-size: 1.15rem; font-weight: 800; color: #ffffff !important; }

.content-layout { display: flex; gap: 30px; flex-wrap: wrap; }
.pdf-section { flex: 1.3; min-width: 350px; }
.answer-section {
    flex: 1; min-width: 340px; background: var(--bg-main); border: 1px solid var(--border-color);
    border-radius: 14px; padding: 25px; box-shadow: var(--card-shadow);
    display: flex; flex-direction: column; height: 620px;
}
.section-title { font-size: 1.15rem; font-weight: 800; margin-bottom: 20px; color: var(--accent-color); border-bottom: 2px solid var(--accent-color); padding-bottom: 6px; display: inline-block; }

.omr-container { display: flex; gap: 8px; justify-content: center; }
.omr-circle { width: 32px; height: 32px; border-radius: 50%; background: var(--omr-inactive); color: var(--omr-text); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; border: 1px solid var(--border-color); }
.omr-circle.correct { 
    background: var(--accent-gradient) !important; 
    color: white !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 6px rgba(255, 107, 53, 0.2);
}

.sync-bridge-btn { background: none; border: none; color: var(--accent-color); cursor: pointer; font-size: 0.85rem; font-weight: 700; }
.sync-bridge-btn:hover { text-decoration: underline; }

.search-box { margin-bottom: 15px; }
.search-box input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); background: var(--bg-light); color: var(--text-main); border-radius: 8px; outline: none; box-sizing: border-box; font-weight: 500; }
.search-box input:focus { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }

.pdf-wrapper-container { position: relative; width: 100%; }
.pdf-wrapper { position: relative; padding-bottom: 120%; height: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--border-color); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.pdf-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.pdf-popout-shield { position: absolute; top: 0; right: 0; width: 55px; height: 55px; background: transparent; z-index: 999; cursor: default; }
.security-note { font-size: 0.75rem; color: #ef4444; margin-top: 6px; font-style: italic; }

.table-responsive { flex-grow: 1; border: 1px solid var(--border-color); border-radius: 10px; overflow-y: auto; background-color: var(--bg-light); }
.answer-table { width: 100%; border-collapse: collapse; text-align: center; }
.answer-table th { background-color: var(--border-color); color: var(--text-main); padding: 14px; font-weight: 700; position: sticky; top: 0; z-index: 5; font-size: 0.88rem; }
.answer-table td { padding: 12px 6px; border-bottom: 1px solid var(--border-color); background: var(--bg-main); color: var(--text-main); }
.qno-text { color: var(--text-qno) !important; font-weight: 700; transition: color 0.3s ease; }

.pagination-container { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; }
.nav-btn { background: var(--bg-light); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.2s; }
.nav-btn:hover:not(:disabled) { border-color: var(--accent-color); color: var(--accent-color); }
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.page-indicator { font-size: 0.85rem; font-weight: 700; color: var(--text-main); }

.check-action-wrapper {
    display: flex;
    justify-content: center;
    margin: 40px 0 20px 0;
}
.check-key-btn {
    background: linear-gradient(135deg, #e65100, #ff6b35);
    color: #ffffff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(230, 81, 0, 0.3);
    transition: all 0.2s ease;
}
.check-key-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 20px rgba(230, 81, 0, 0.4);
}
.student-omr-portal {
    margin-top: 30px;
    border-top: 3px solid var(--border-color);
    padding-top: 25px;
}
.omr-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-qno);
    margin: 10px 0 15px 0;
}

.omr-layout-box {
    border: 2px solid #e65100;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-main);
    margin-bottom: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.omr-column-wrapper { width: 100%; }

/* 🌟 Styling for Centered Bottom Buttons 🌟 */
.omr-scroll-center-bottom {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 15px 0 25px 0;
    width: 100%;
}

.omr-scroll-btn {
    background: var(--bg-light);
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    box-shadow: var(--card-shadow);
}
.omr-scroll-btn:hover {
    background: var(--accent-gradient);
    color: #ffffff;
    border-color: transparent;
    transform: translateY(-1px);
}

/* 10 Columns Auto Matrix Layout for Row Limit 10 */
.omr-columns-container {
    display: grid;
    grid-template-columns: repeat(10, minmax(130px, 1fr));
    gap: 1px;
    background-color: var(--border-color);
    border: 1px solid var(--border-color);
}
.omr-table-column { background-color: var(--bg-main); display: flex; flex-direction: column; }
.omr-column-header {
    display: flex; background-color: #e65100; color: #ffffff;
    font-weight: 700; font-size: 12px; padding: 6px 2px; text-align: center;
}
.header-q { width: 30%; border-right: 1px solid rgba(255, 255, 255, 0.4); }
.header-a { width: 70%; }
.omr-sheet-row { display: flex; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--border-color); background-color: var(--bg-main); }
.omr-sheet-row:hover { background-color: var(--bg-light); }
.omr-q-num { width: 30%; font-weight: 700; color: var(--text-qno); font-size: 12px; text-align: center; border-right: 1px solid var(--border-color); }
.omr-bubble-options { width: 70%; display: flex; justify-content: space-around; align-items: center; padding-left: 2px; }
.omr-interactive-bubble {
    display: flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border: 1.5px solid #e65100; border-radius: 50%;
    font-size: 10.5px; font-weight: 700; color: #e65100; cursor: pointer;
    transition: all 0.15s ease; user-select: none; background-color: transparent;
}
.omr-interactive-bubble:hover { background-color: #ffe0b2; }
.omr-interactive-bubble.selected { background-color: #e65100 !important; color: #ffffff !important; border-color: #e65100 !important; }

.btn-container-vertical { display: flex; justify-content: center; margin-top: 15px; }
.btn-submit {
    display: block; width: 100%; max-width: 240px; height: 50px;
    color: #ffffff; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 700; cursor: pointer; text-align: center; background: #2e7d32;
    transition: background 0.2s ease;
}
.btn-submit:hover { background: #1b5e20; }

.result-box { margin-top: 25px; padding: 20px; border-radius: 10px; display: none; border: 1px solid transparent; }
.pass { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.fail { background-color: #fef2f2; color: #991b1b; border-color: #fee2e2; }
.info { background-color: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.highlight-value { font-size: 26px; font-weight: 800; color: var(--text-qno); display: block; margin-top: 5px; }

.matrix-container { margin-top: 30px; border-top: 2px dashed var(--border-color); padding-top: 20px; }
.matrix-container h3 { font-size: 16px; font-weight: 700; color: var(--text-qno); margin-bottom: 15px; }
.audit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.audit-card { padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 13px; background: var(--bg-light); line-height: 1.5; }
.audit-card.audit-correct { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d;}
.audit-card.audit-wrong { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c;}
.audit-card strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--text-qno); }

@media print {
    body, html { background: #ffffff !important; color: #000000 !important; overflow: visible !important; height: auto !important; }
    .paper-container { max-width: 100% !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    .paper-header { display: grid !important; grid-template-columns: 2fr 1fr 1fr 1fr 1fr !important; background: #f1f5f9 !important; color: #000000 !important; border: 1px solid #000000 !important; border-radius: 6px !important; padding: 12px !important; box-shadow: none !important; }
    .meta-item { border-right: 1px solid #cbd5e1 !important; }
    .meta-label { color: #475569 !important; }
    .meta-value { color: #000000 !important; font-size: 1rem !important; }
    .no-print, .pdf-section, .top-action-bar, .search-box, .pagination-container, th:last-child, td:last-child, .omr-scroll-center-bottom { display: none !important; }
    .content-layout { display: block !important; overflow: visible !important; }
    .answer-section { border: none !important; box-shadow: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; display: block !important; overflow: visible !important; }
    .table-responsive { overflow: visible !important; max-height: none !important; height: auto !important; border: none !important; display: block !important; }
    .answer-table { width: 100% !important; border: 1px solid #000000 !important; margin-top: 15px; table-layout: auto !important; }
    .answer-table th { background-color: #f8fafc !important; color: #000000 !important; border-bottom: 2px solid #000000 !important; position: relative !important; }
    .answer-table td { background: #ffffff !important; color: #000000 !important; padding: 8px !important; border-bottom: 1px solid #cbd5e1 !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    .qno-text { color: #000000 !important; }
    .omr-circle { border: 1px solid #64748b !important; background: transparent !important; color: #000000 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .omr-circle.correct { background-color: #ff6b35 !important; background: #ff6b35 !important; color: #ffffff !important; border-color: #ff6b35 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media (max-width: 900px) {
    .content-layout { flex-direction: column; }
    .answer-section { height: auto; }
    .paper-header { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .subject-item { text-align: center; padding-left: 0; }
    .meta-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 8px; }
    .meta-item:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<script>
const ALLOW_PRINT = "YES";

const rawAnswers = [
    "B", "A", "A", "B", "D", "A", "C", "D", "A", "A",
    "C", "B", "A", "A", "B", "B", "C", "B", "A", "D",
    "C", "A", "C", "A", "A", "B", "D", "D", "D", "D",
    "D", "A", "D", "D", "C", "A", "A", "B", "C", "D",
    "D", "B", "A", "C", "B", "A", "C", "C", "B", "D",
    "C", "B", "C", "A", "C", "D", "C", "D", "C", "D",
    "B", "B", "B", "DD", "A", "D", "C", "C", "D", "A",
    "B", "D", "C", "C", "B", "C", "C", "A", "D", "B",
    "A", "A", "B", "B", "A", "B", "D", "C", "B", "A",
    "B", "B", "D", "B", "C", "C", "C", "B", "D", "A"
];

const answersData = Array.from({ length: 100 }, (_, i) => ({
    qNo: i + 1,
    ans: rawAnswers[i] || "A"
}));

const studentAnswers = new Array(100).fill(null);

let currentPage = 1;
const itemsPerPage = 10;

// Dynamic Smooth Left-Right Scroll Navigation Function
function scrollOMR(direction) {
    const targetWrapper = document.querySelector('.omr-layout-box');
    if (!targetWrapper) return;
    const shiftValue = direction === 'left' ? -280 : 280;
    targetWrapper.scrollBy({ left: shiftValue, behavior: 'smooth' });
}

function generateOMRHTML(questionNumber, correctAnswer) {
    const options = ["A", "B", "C", "D"];
    let omrHTML = '<div class="omr-container">';
    options.forEach(opt => {
        const isCorrect = (opt === correctAnswer) ? 'correct' : '';
        omrHTML += '<span class="omr-circle ' + isCorrect + '">' + opt + '</span>';
    });
    omrHTML += '</div>';
    return omrHTML;
}

function renderTable(pageData) {
    const tbody = document.getElementById('answer-body');
    if (!tbody) return;
    tbody.innerHTML = '';
    pageData.forEach(item => {
        const row = '<tr>' +
            '<td><strong class="qno-text">Q. ' + item.qNo + '</strong></td>' +
            '<td>' + generateOMRHTML(item.qNo, item.ans) + '</td>' +
            '<td class="no-print">' +
                '<button class="sync-bridge-btn" onclick="scrollToPDF()">🔍 View</button>' +
            '</td>' +
        '</tr>';
        tbody.insertAdjacentHTML('beforeend', row);
    });
}

function showPage(page) {
    currentPage = page;
    const start = (page - 1) * itemsPerPage;
    const end = start + itemsPerPage;
    renderTable(answersData.slice(start, end));
    
    const paginationControls = document.getElementById('pagination-controls');
    const pageIndicator = document.getElementById('pageIndicator');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    
    if (paginationControls) paginationControls.style.display = 'flex';
    if (pageIndicator) pageIndicator.innerText = 'Page ' + currentPage + ' of 10';
    if (prevBtn) prevBtn.disabled = currentPage === 1;
    if (nextBtn) nextBtn.disabled = currentPage === 10;
}

function changePage(direction) {
    let newPage = currentPage + direction;
    if (newPage >= 1 && newPage <= 10) showPage(newPage);
}

function searchQuestion() {
    const inputVal = parseInt(document.getElementById('qSearch').value);
    if (!inputVal || inputVal < 1 || inputVal > 100) {
        showPage(1);
        return;
    }
    const filteredResult = answersData.filter(q => q.qNo === inputVal);
    renderTable(filteredResult);
    const paginationControls = document.getElementById('pagination-controls');
    if (paginationControls) paginationControls.style.display = 'none';
}

function toggleDarkMode() {
    const container = document.getElementById('mainContainer');
    const iconSpan = document.querySelector('.mode-icon');
    if (!container) return;
    if(container.getAttribute('data-theme') === 'dark') {
        container.removeAttribute('data-theme');
        if (iconSpan) iconSpan.innerText = "🌙";
    } else {
        container.setAttribute('data-theme', 'dark');
        if (iconSpan) iconSpan.innerText = "☀️";
    }
}

function scrollToPDF() {
    const pdfSection = document.getElementById('pdfSection');
    if (pdfSection) pdfSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function checkPrintPermission() {
    const printBtn = document.getElementById('masterPrintBtn');
    if (!printBtn) return;
    if (ALLOW_PRINT.trim().toUpperCase() === "YES") {
        printBtn.disabled = false;
        printBtn.style.display = "inline-flex";
    } else {
        printBtn.disabled = true;
        printBtn.style.display = "none";
    }
}

function printAnswerKey() {
    if (ALLOW_PRINT.trim().toUpperCase() !== "YES") return;
    renderTable(answersData);
    setTimeout(() => {
        window.print();
        showPage(currentPage);
    }, 150);
}

function revealOMRPortal() {
    const portal = document.getElementById('student-omr-portal');
    portal.style.display = "block";
    buildStudentOMRGrid();
    portal.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function buildStudentOMRGrid() {
    const gridContainer = document.getElementById('omr-sheet-grid');
    if (gridContainer.children.length > 0) return; 
    
    let totalQuestions = 100;
    let questionsPerColumn = 10; 
    let columnsCount = totalQuestions / questionsPerColumn; 
    let fullHTML = '';
    
    for (let col = 0; col < columnsCount; col++) {
        let columnHTML = `<div class="omr-table-column">
            <div class="omr-column-header">
                <div class="header-q">Q.N</div>
                <div class="header-a">Ans</div>
            </div>`;
            
        let startQueryIndex = col * questionsPerColumn;
        let endQueryIndex = startQueryIndex + questionsPerColumn;
        
        for (let i = startQueryIndex; i < endQueryIndex; i++) {
            const qNum = i + 1;
            columnHTML += `
                <div class="omr-sheet-row">
                    <div class="omr-q-num">${qNum}</div>
                    <div class="omr-bubble-options">
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="A">A</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="B">B</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="C">C</div>
                        <div class="omr-interactive-bubble" data-q="${i}" data-val="D">D</div>
                    </div>
                </div>
            `;
        }
        columnHTML += '</div>';
        fullHTML += columnHTML;
    }
    
    gridContainer.innerHTML = fullHTML;

    gridContainer.querySelectorAll('.omr-interactive-bubble').forEach(bubble => {
        bubble.addEventListener('click', function() {
            const qIndex = parseInt(this.getAttribute('data-q'));
            const value = this.getAttribute('data-val');
            const siblings = this.parentNode.querySelectorAll('.omr-interactive-bubble');
            
            siblings.forEach(sib => sib.classList.remove('selected'));

            if (studentAnswers[qIndex] === value) {
                studentAnswers[qIndex] = null; 
            } else {
                this.classList.add('selected');
                studentAnswers[qIndex] = value;
            }
        });
    });
}

function evaluateOMRSheet() {
    let resultDiv = document.getElementById('result');
    let matrixBox = document.getElementById('matrix-box');
    let auditGrid = document.getElementById('audit-grid');
    
    resultDiv.style.display = "block";
    matrixBox.style.display = "block";

    let score = 0;
    let auditHTML = '';

    for (let i = 0; i < 100; i++) {
        const qNum = i + 1;
        const studentSelection = studentAnswers[i] || "Unanswered";
        const correctKey = rawAnswers[i];
        const isCorrect = studentSelection === correctKey;

        if (isCorrect) score++;

        auditHTML += `
            <div class="audit-card ${isCorrect ? 'audit-correct' : 'audit-wrong'}">
                <strong>Question ${qNum}</strong>
                Your Answer: <b>${studentSelection}</b><br>
                Correct Answer: <b>${correctKey}</b>
            </div>
        `;
    }
    
    auditGrid.innerHTML = auditHTML;

    if (score < 33) {
        resultDiv.className = "result-box fail";
        resultDiv.innerHTML = `
            <h3>❌ Examination Status: FAILED</h3>
            <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
            <p style="margin-top:8px; font-weight:600;">The theory result is below the minimum required threshold of 33 marks. Therefore, passing is technically not possible..</p>
        `;
    } else {
        let dynamicPracticalRequirement = (50 - (score * 0.6)) / 0.4;
        let requiredPracticalScore = Math.ceil(dynamicPracticalRequirement);

        if (requiredPracticalScore < 33) {
            requiredPracticalScore = 33; 
        }

        if (requiredPracticalScore > 100) {
            resultDiv.className = "result-box fail";
            resultDiv.innerHTML = `
                <h3>⚠️ Core Aggregate Unobtainable</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <p>Required Practical Mark Index: <span class="highlight-value" style="color: #b91c1c !important;">${requiredPracticalScore} Marks</span></p>
                <p style="margin-top: 6px;">Your base aggregate ratio index cannot clear the overall total 50% target requirements even with an absolute maximum score of 100 in your practical portion.</p>
            `;
        } else {
            resultDiv.className = "result-box info";
            resultDiv.innerHTML = `
                <h3>🎉 Evaluation Metrics Calculated</h3>
                <p>Total Obtained Marks: <span class="highlight-value">${score} / 100</span></p>
                <hr style="border:0; border-top:1px solid #bfdbfe; margin:12px 0;">
                <p>To clear the remaining structural validation benchmarks, you need:</p>
                <p>Required Practical Score to Pass: <span class="highlight-value" style="color: #1e40af !important;">${requiredPracticalScore} Marks</span></p>
            `;
        }
    }
    
    resultDiv.scrollIntoView({ behavior: 'smooth' });
}

window.addEventListener('DOMContentLoaded', () => {
    showPage(1);
    checkPrintPermission();
});
</script>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-12-jul-2026/">Python Programming (M3-R5.1) Paper Solution Set-1 Series-12 (JUL 2026)</a> appeared first on <a href="https://gyanxp.com">GyanXp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gyanxp.com/python-programming-m3-r5-1-paper-solution-set-1-series-12-jul-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
