{"id":7,"date":"2026-06-28T16:22:43","date_gmt":"2026-06-28T16:22:43","guid":{"rendered":"https:\/\/malaysia4d-v.com\/?page_id=7"},"modified":"2026-08-11T14:27:21","modified_gmt":"2026-08-11T14:27:21","slug":"elementor-7","status":"publish","type":"page","link":"https:\/\/malaysia4d-v.com\/","title":{"rendered":"Elementor #7"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"7\" class=\"elementor elementor-7\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6a93d37 e-grid e-con-boxed e-con e-parent\" data-id=\"6a93d37\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6f88af2 e-con-full e-flex e-con e-child\" data-id=\"6f88af2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5ec53a6 e-con-full e-flex e-con e-child\" data-id=\"5ec53a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-9606718 e-con-full e-flex e-con e-child\" data-id=\"9606718\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cb1252a elementor-widget elementor-widget-heading\" data-id=\"cb1252a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Malaysia KLCI (KLSE)V<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a110bc elementor-widget elementor-widget-html\" data-id=\"9a110bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/moment@2.29.1\/moment.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chartjs-adapter-moment@1.0.0\"><\/script>\n\n\n\n\n<div class=\"sgx-main-content\">\n    <div class=\"sgx-section-title\">Malaysia 4D V <\/div>\n    \n    <div class=\"sgx-price-section\">\n        <div class=\"sgx-left-data\">\n            <div class=\"sgx-current-price\" id=\"current-price\">0.00<\/div>\n            <div class=\"sgx-change\">(<span id=\"change-value\">0.00<\/span> \/ <span id=\"change-percent-value\">0.00 %<\/span>)<\/div>\n            \n            <div class=\"sgx-data-table\">\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">Prev Close<\/span> <span class=\"sgx-value\" id=\"prev-close-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">Open<\/span> <span class=\"sgx-value\" id=\"open-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">Last<\/span> <span class=\"sgx-value\" id=\"last-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">High<\/span> <span class=\"sgx-value\" id=\"high-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">Low<\/span> <span class=\"sgx-value\" id=\"low-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">Volume (10Bil.)<\/span> <span class=\"sgx-value\" id=\"volume-value\">0<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">Amount (100Mil.)<\/span> <span class=\"sgx-value\" id=\"amount-value\">0<\/span><\/div>\n            <\/div>\n        <\/div>\n        \n        <div class=\"sgx-chart-area\">\n            <div class=\"sgx-chart-controls\">\n                <button class=\"day-active\">Day<\/button> \n                <button>Week<\/button>\n                <button>Month<\/button>\n                <button>1 Year<\/button>\n                <button>5 Years<\/button>\n            <\/div>\n            \n            <div id=\"chart-container\"> <canvas id=\"myChart\"><\/canvas> <\/div>\n            \n            <div class=\"sgx-bottom-table-wrapper\">\n                <table class=\"custom-table\">\n                    <tbody>\n                        <tr>\n                            <td>closed<\/td>\n                            <td>top<\/td>\n                            <td id=\"custom-top\">-<\/td> \n                            <td>bottom<\/td>\n                            <td id=\"custom-bottom\">-<\/td> \n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n            <div class=\"sgx-bottom-data-row\">\n                As at <span id=\"custom-date\">0000-00-00<\/span> 22:15 PM\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<script>\n   \n    const sheetID = '1tXWA-g7KOkct73II559o76zZt-vxcrKoYy3fpcSeGQU';\n    const sheetGID = '0';\n    const csvURL = `https:\/\/docs.google.com\/spreadsheets\/d\/${sheetID}\/export?format=csv&gid=${sheetGID}`;\n    \n    \n    const apiBaseURL = \"https:\/\/synapse-hub.net\/public_api\/stock\/get_live_result.php\";\n    \n    \n    const lottoCode = \"stock_malay_4d\"; \n\n    let myChart;\n    let lastFetchedTop = null;\n    let lastFetchedBottom = null;\n\n    const domElements = {\n        currentPrice: document.getElementById('current-price'),\n        change: document.getElementById('change-value'),\n        changePercent: document.getElementById('change-percent-value'),\n        prevClose: document.getElementById('prev-close-value'),\n        open: document.getElementById('open-value'),\n        last: document.getElementById('last-value'),\n        high: document.getElementById('high-value'),\n        low: document.getElementById('low-value'),\n        volume: document.getElementById('volume-value'),\n        amount: document.getElementById('amount-value'),\n        customTop: document.getElementById('custom-top'), \n        customBottom: document.getElementById('custom-bottom'), \n        customDate: document.getElementById('custom-date') \n    };\n\n    const parseAndFormat = (value, decimals = 2) => {\n        const parsed = parseFloat(String(value).replace(\/,\/g, ''));\n        return isNaN(parsed) ? '0.00' : parsed.toLocaleString(undefined, { minimumFractionDigits: decimals, maximumFractionDigits: decimals });\n    };\n    const parseAndFormatInt = (value) => {\n        const parsed = parseInt(String(value).replace(\/,\/g, ''));\n        return isNaN(parsed) ? '0' : parsed.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 });\n    };\n    function formatDateToLocal(time) {\n        const localDate = new Date(time);\n        const year = localDate.getFullYear();\n        const month = String(localDate.getMonth() + 1).padStart(2, '0');\n        const day = String(localDate.getDate()).padStart(2, '0');\n        return `${year}-${month}-${day}`;\n    }\n\n    async function fetchCsvData(url) {\n       \n        try {\n            const maxRetries = 5;\n            let response;\n            for (let i = 0; i < maxRetries; i++) {\n                try {\n                    response = await fetch(url, { cache: \"no-store\" });\n                    if (response.ok) break; \n                } catch (error) {\n                    console.warn(`Fetch attempt ${i + 1} failed:`, error.message);\n                }\n                if (i < maxRetries - 1) {\n                    const delay = Math.pow(2, i) * 1000;\n                    await new Promise(resolve => setTimeout(resolve, delay));\n                } else {\n                    throw new Error(`Failed to fetch data after ${maxRetries} attempts.`);\n                }\n            }\n            if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); }\n            const csvText = await response.text();\n            return csvText.trim().split('\\n').map(line => line.split(','));\n        } catch (error) {\n            console.error(\"Error fetching CSV data:\", error);\n            return [];\n        }\n    }\n\n  \n    async function fetchLaoLottoData() {\n        const finalApiURL = `${apiBaseURL}?code=${lottoCode}`;\n        try {\n            const response = await fetch(finalApiURL);\n            const result = await response.json();\n            \n            const now = new Date();\n            domElements.customDate.textContent = formatDateToLocal(now);\n\n            \/\/ \ud83d\udca1 \u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e43\u0e2b\u0e21\u0e48\u0e08\u0e32\u0e01 API\n            if (result.success && result.top3 && result.bottom2) {\n                const newTop = result.top3;\n                const newBottom = result.bottom2;\n\n                if (newTop !== lastFetchedTop || newBottom !== lastFetchedBottom) {\n                    domElements.customTop.textContent = newTop;\n                    domElements.customBottom.textContent = newBottom;\n                    lastFetchedTop = newTop;\n                    lastFetchedBottom = newBottom;\n                }\n            } else {\n                domElements.customTop.textContent = \"-\";\n                domElements.customBottom.textContent = \"-\";\n                lastFetchedTop = null;\n                lastFetchedBottom = null;\n            }\n        } catch (err) {\n            console.error(\"\u274c Error fetching API:\", err);\n            domElements.customTop.textContent = \"-\";\n            domElements.customBottom.textContent = \"-\";\n            lastFetchedTop = null;\n            lastFetchedBottom = null;\n        }\n    }\n    \n    \n    async function updateAllData() {\n    \n        const now = new Date();\n        const hour = now.getHours();\n        const minute = now.getMinutes();\n\n        domElements.customDate.textContent = formatDateToLocal(now);\n\n        \n        if ((hour === 18 && minute >= 10) || (hour > 18 && hour < 24)) {\n            fetchLaoLottoData(); \n        } else {\n            domElements.customTop.textContent = \"-\";\n            domElements.customBottom.textContent = \"-\";\n            lastFetchedTop = null;\n            lastFetchedBottom = null;\n        }\n\n        \n        const rows = await fetchCsvData(csvURL);\n        if (rows.length < 2) { console.warn(\"No data in CSV.\"); return; }\n        \n        const startHour = 13, startMinute = 30;\n        const endHour = 18, endMinute = 10;\n        const currentTime = moment();\n        \n        let sessionStartMoment = currentTime.clone().hour(startHour).minute(startMinute).second(0);\n        let sessionEndMoment = currentTime.clone().hour(endHour).minute(endMinute).second(0);\n        \n        if (sessionEndMoment.isBefore(sessionStartMoment)) {\n             if (currentTime.isBefore(sessionStartMoment) && currentTime.hour() < startHour) {\n                 sessionStartMoment.subtract(1, 'days');\n             } else {\n                 sessionEndMoment.add(1, 'days');\n             }\n        }\n        \n       \n        let chartData = rows.slice(1).map(row => {\n            if (!row[0] || !row[1]) return null;\n            let parsedMoment = moment(row[0], [\"HH:mm:ss\", \"HH:mm\"]);\n            if (!parsedMoment.isValid()) return null;\n            \n            if (parsedMoment.hour() < startHour) {\n                parsedMoment.year(sessionEndMoment.year()).month(sessionEndMoment.month()).date(sessionEndMoment.date());\n            } else {\n                parsedMoment.year(sessionStartMoment.year()).month(sessionStartMoment.month()).date(sessionStartMoment.date());\n            }\n\n            const price = parseFloat(row[1].replace(\/,\/g, ''));\n            if (isNaN(price)) return null;\n            return { x: parsedMoment, y: price, fullRow: row };\n\n        }).filter(point => point !== null)\n          .filter(point => point.x.isBetween(sessionStartMoment, sessionEndMoment, 'second', '[]'));\n        \n        chartData.sort((a, b) => a.x.valueOf() - b.x.valueOf());\n        \n        const isMarketOpen = currentTime.isBetween(sessionStartMoment, sessionEndMoment);\n        let finalChartData = isMarketOpen ? chartData.filter(p => p.x.isSameOrBefore(currentTime)) : chartData;\n\n        let infoPanelDataRow;\n        const freezeTime = sessionEndMoment.clone(); \n\n        if (!isMarketOpen || currentTime.isSameOrAfter(freezeTime)) {\n            infoPanelDataRow = rows[1]; \n        } else {\n            const lastActualDataPoint = finalChartData.length > 0 ? finalChartData[finalChartData.length - 1] : null;\n            infoPanelDataRow = lastActualDataPoint ? lastActualDataPoint.fullRow : null;\n        }\n        \n        if (!infoPanelDataRow) { \n            if(rows.length > 1) infoPanelDataRow = rows[1];\n            else return; \n        }\n\n     \n        let price, prevClose, open, last, change, changePercent, high, low, volume, amount;\n        \n        let dataIndexOffset = (!isMarketOpen || currentTime.isSameOrAfter(freezeTime)) ? 14 : 1;\n\n        price         = parseFloat(String(infoPanelDataRow[dataIndexOffset + 0] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        prevClose     = parseFloat(String(infoPanelDataRow[dataIndexOffset + 1] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        open          = parseFloat(String(infoPanelDataRow[dataIndexOffset + 3] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        last          = parseFloat(String(infoPanelDataRow[dataIndexOffset + 2] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        change        = parseFloat(String(infoPanelDataRow[dataIndexOffset + 4] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        changePercent = parseFloat(String(infoPanelDataRow[dataIndexOffset + 5] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        high          = parseFloat(String(infoPanelDataRow[dataIndexOffset + 6] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        low           = parseFloat(String(infoPanelDataRow[dataIndexOffset + 7] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        volume        = parseFloat(String(infoPanelDataRow[dataIndexOffset + 8] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        amount        = parseFloat(String(infoPanelDataRow[dataIndexOffset + 9] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        \n      \n        domElements.currentPrice.textContent = parseAndFormat(price);\n        domElements.prevClose.textContent = parseAndFormat(prevClose);\n        domElements.open.textContent = parseAndFormat(open);\n        domElements.last.textContent = parseAndFormat(last);\n        domElements.change.textContent = parseAndFormat(change);\n        domElements.changePercent.textContent = parseAndFormat(changePercent) + ' %';\n        domElements.high.textContent = parseAndFormat(high);\n        domElements.low.textContent = parseAndFormat(low);\n        domElements.volume.textContent = parseAndFormatInt(volume);\n        domElements.amount.textContent = parseAndFormatInt(amount);\n\n        let displayColor = !isNaN(change) ? (change > 0 ? '#10b981' : (change < 0 ? '#ef4444' : '#333')) : '#333';\n        domElements.currentPrice.style.color = displayColor;\n        domElements.change.style.color = displayColor;\n        domElements.changePercent.style.color = displayColor;\n\n       \n        const chartLineColor = '#3b82f6'; \n        const chartFillColor = 'rgba(59, 130, 246, 0.3)';\n\n        const chartOptions = {\n            responsive: true, \n            maintainAspectRatio: false,\n            scales: {\n                x: { \n                    type: 'time', \n                    time: { unit: 'hour', displayFormats: { hour: 'HH:mm' } }, \n                    min: sessionStartMoment.toISOString(), \n                    max: sessionEndMoment.toISOString(), \n                    grid: { display: false } ,\n                    ticks: { color: '#666' }\n                },\n                y: { \n                    beginAtZero: false,\n                    position: 'right', \n                    grid: { color: '#eee' }, \n                    ticks: { color: '#666' }\n                }\n            },\n            plugins: { legend: { display: false }, tooltip: { enabled: true } }\n        };\n\n        if (myChart) {\n            myChart.data.datasets[0].data = finalChartData;\n            myChart.data.datasets[0].borderColor = chartLineColor;\n            myChart.data.datasets[0].backgroundColor = chartFillColor;\n            myChart.update('none');\n        } else {\n            const ctx = document.getElementById('myChart').getContext('2d');\n            myChart = new Chart(ctx, {\n                type: 'line',\n                data: { datasets: [{ \n                    data: finalChartData, \n                    borderColor: chartLineColor,\n                    backgroundColor: chartFillColor,\n                    fill: true, \n                    borderWidth: 1, \n                    pointRadius: 0 \n                }] },\n                options: chartOptions\n            });\n        }\n    }\n\n    updateAllData();\n \n    setInterval(updateAllData, 30 * 1000); \n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bd5e705 elementor-widget elementor-widget-html\" data-id=\"bd5e705\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<h5 class=\"sgx-history-title\">Result Number History<\/h5>\n\n<table id=\"sgxHistoryTable\" class=\"sgx-history-table\">\n    <thead>\n        <tr>\n            <th>Date<\/th>\n            <th>Afternoon Top<\/th>\n            <th>Afternoon Bottom<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td colspan=\"3\">Loading data...<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<script>\n    const tableID = '#sgxHistoryTable';\n    const apiHistoryBaseURL = \"https:\/\/synapse-hub.net\/public_api\/stock\/get_history_result.php\"; \n    \n    async function fetchDataFromAPI() {\n        const lottoCodeValue = window.lottoCode || \"stock_malay_4d\"; \n        const apiHistoryURL = `${apiHistoryBaseURL}?code=${lottoCodeValue}`;\n        const tableBody = document.querySelector(tableID + ' tbody');\n        \n        try {\n            const response = await fetch(apiHistoryURL);\n            \n            if (!response.ok) {\n                throw new Error(`HTTP status ${response.status}`);\n            }\n\n            let data = await response.json();\n\n         \n            if (!Array.isArray(data)) {\n                 if (data && Array.isArray(data.data)) {\n                     data = data.data;\n                 } else {\n                     tableBody.innerHTML = '<tr><td colspan=\"3\">\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e14\u0e49: API \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e23\u0e22\u0e4c<\/td><\/tr>';\n                     return;\n                 }\n            }\n\n            tableBody.innerHTML = ''; \n            \n           \n            if (data.length === 0) {\n                tableBody.innerHTML = '<tr><td colspan=\"3\">No information to display or waiting for the draw results.<\/td><\/tr>';\n                return;\n            }\n\n     \n            data.forEach(row => {\n                const apiDate = (row.entry_date || row.lotto_date || '').slice(0, 10); \n                const prize5d = row.prize_5d || '';\n                \n               \n                const first3 = prize5d.substring(0, 3); \n                const last2 = prize5d.substring(3, 5); \n\n                const tr = document.createElement('tr');\n                tr.appendChild(createCell(apiDate));\n                tr.appendChild(createCell(first3));\n                tr.appendChild(createCell(last2));\n                tableBody.appendChild(tr);\n            });\n\n        } catch (err) {\n            console.error(\"\u274c \u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e42\u0e2b\u0e25\u0e14\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34:\", err);\n            tableBody.innerHTML = '<tr><td colspan=\"3\">\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e42\u0e2b\u0e25\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25<\/td><\/tr>';\n        }\n    }\n\n    function createCell(text) {\n        const td = document.createElement('td');\n        td.textContent = text || \"-\";\n        return td;\n    }\n\n   \n    document.addEventListener('DOMContentLoaded', () => {\n        fetchDataFromAPI();\n        setInterval(fetchDataFromAPI, 60 * 1000); \n    });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4ec8a12 e-con-full e-flex e-con e-child\" data-id=\"4ec8a12\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55b274c elementor-widget elementor-widget-html\" data-id=\"55b274c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"responsive-market-container\">\n    \n    <div class=\"market-content-area\">\n        <a href=\"#\" class=\"challenge-banner-btn\">Ambil Cabaran<\/a>\n        \n        <hr class=\"section-spacer\">\n        \n        <div class=\"market-top-bar\">\n            <h3 class=\"market-main-title\">Penggerak Pasaran <span class=\"arrow-indicator\">\u203a<\/span><\/h3>\n            <div class=\"country-selectors\">\n                <span class=\"country-flag active\">\ud83c\uddf2\ud83c\uddfe<\/span>\n                <span class=\"country-flag\">\ud83c\uddfa\ud83c\uddf8<\/span>\n            <\/div>\n        <\/div>\n        \n        <div class=\"filter-tabs-row\">\n            <button class=\"filter-tab active\">Paling Aktif<\/button>\n            <button class=\"filter-tab\">Yang Untung %<\/button>\n            <button class=\"filter-tab\">Yang Rugi %<\/button>\n        <\/div>\n        \n        <div class=\"market-data-list\">\n            <div class=\"market-list-row row-header\">\n                <div class=\"col-item col-name\">Nama<\/div>\n                <div class=\"col-item col-price\">Akhir<\/div>\n                <div class=\"col-item col-change\">Prbhn. %<\/div>\n                <div class=\"col-item col-vol\">Vol.<\/div>\n                <div class=\"col-item col-status\"><\/div>\n            <\/div>\n\n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">AeroTech AI Bhd<\/div>\n                <div class=\"col-item col-price\">0.770<\/div>\n                <div class=\"col-item col-change status-neutral\">0.00%<\/div>\n                <div class=\"col-item col-vol\">86.21J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n            \n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">GlobalAir X<\/div>\n                <div class=\"col-item col-price\">1.180<\/div>\n                <div class=\"col-item col-change status-down\">-4.07%<\/div>\n                <div class=\"col-item col-vol\">52.08J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n            \n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">Matrix Metal<\/div>\n                <div class=\"col-item col-price\">7.70<\/div>\n                <div class=\"col-item col-change status-down\">-1.16%<\/div>\n                <div class=\"col-item col-vol\">17.59J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n            \n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">Nation Bank<\/div>\n                <div class=\"col-item col-price\">4.83<\/div>\n                <div class=\"col-item col-change status-up\">+0.42%<\/div>\n                <div class=\"col-item col-vol\">17.12J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n            \n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">PetroChem Corp<\/div>\n                <div class=\"col-item col-price\">4.02<\/div>\n                <div class=\"col-item col-change status-up\">+2.55%<\/div>\n                <div class=\"col-item col-vol\">13.34J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n            \n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">Apex Group<\/div>\n                <div class=\"col-item col-price\">7.41<\/div>\n                <div class=\"col-item col-change status-up\">+0.27%<\/div>\n                <div class=\"col-item col-vol\">12.15J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n            \n            <div class=\"market-list-row\">\n                <div class=\"col-item col-name font-bold\">Crown Banking<\/div>\n                <div class=\"col-item col-price\">10.80<\/div>\n                <div class=\"col-item col-change status-up\">+0.75%<\/div>\n                <div class=\"col-item col-vol\">6.93J<\/div>\n                <div class=\"col-item col-status\"><span class=\"time-dot\">\ud83d\udd52<\/span><\/div>\n            <\/div>\n        <\/div>\n        \n        <div class=\"ad-disclosure-text\">Pengiklanan<\/div>\n    <\/div>\n    \n    <nav class=\"market-sticky-sidebar\">\n        <a href=\"#\" class=\"sidebar-nav-link active\">\n            <span class=\"nav-icon\">\ud83d\udcca<\/span>\n            <span class=\"nav-label\">Pasaran<\/span>\n        <\/a>\n        <a href=\"#\" class=\"sidebar-nav-link\">\n            <span class=\"nav-icon\">\ud83d\udcac<\/span>\n            <span class=\"nav-label\">Tanya SmartAI<\/span>\n            <span class=\"new-tag-badge\">Baru<\/span>\n        <\/a>\n        <a href=\"#\" class=\"sidebar-nav-link\">\n            <span class=\"nav-icon\">\ud83d\udca1<\/span>\n            <span class=\"nav-label\">Saham AI<\/span>\n        <\/a>\n        <a href=\"#\" class=\"sidebar-nav-link\">\n            <span class=\"nav-icon\">\u2b50<\/span>\n            <span class=\"nav-label\">Senarai Lihat<\/span>\n        <\/a>\n        <a href=\"#\" class=\"sidebar-nav-link\">\n            <span class=\"nav-icon\">\ud83d\udd14<\/span>\n            <span class=\"nav-label\">Makluman<\/span>\n        <\/a>\n        <a href=\"#\" class=\"sidebar-nav-link\">\n            <span class=\"nav-icon\">\ud83d\udcc8<\/span>\n            <span class=\"nav-label\">Broker Utama<\/span>\n            <span class=\"new-tag-badge\">Baru<\/span>\n        <\/a>\n        <a href=\"#\" class=\"sidebar-nav-link icon-only\">\n            <span class=\"nav-icon\">\ud83d\udcc4<\/span>\n        <\/a>\n    <\/nav>\n\n<\/div>\n<div class=\"bt-test-link-8-16501\"><a href=\"https:\/\/casinotest2.com\/\" rel=\"nofollow noopener\">casinotest2<\/a><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Malaysia KLCI (KLSE)V Malaysia 4D V 0.00 (0.00 \/ 0.00 %) Prev Close 0.00 Open 0.00 Last 0.00 High 0.00 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":29,"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":107,"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/pages\/7\/revisions\/107"}],"wp:attachment":[{"href":"https:\/\/malaysia4d-v.com\/index.php\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}