{"id":81,"date":"2026-04-10T20:37:37","date_gmt":"2026-04-10T20:37:37","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=81"},"modified":"2026-06-26T23:07:28","modified_gmt":"2026-06-26T23:07:28","slug":"ads","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/ads\/","title":{"rendered":"Ads"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n    <title>Adase Ads Ltd \u2013 Fast Service Dashboard<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <style>\n        \/* \u2500\u2500 All styles unchanged (kept for brevity) \u2500\u2500 *\/\n        * { margin: 0; padding: 0; box-sizing: border-box; }\n        body { font-family: 'Inter', sans-serif; background: #f4f7fc; color: #1a2c3e; padding: 24px 20px; }\n        .dashboard-container { max-width: 1600px; margin: 0 auto; }\n        .dashboard-header { margin-bottom: 28px; }\n        .brand { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 15px; }\n        h1 { font-size: 1.9rem; font-weight: 700; background: linear-gradient(135deg, #1E3C72, #2A5298); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -0.3px; }\n        .company-indigo { color: #4f46e5; background: none; -webkit-background-clip: unset; background-clip: unset; background: none; color: #4f46e5; }\n        .address-badge { background: #eef2ff; padding: 8px 18px; border-radius: 40px; font-size: 0.8rem; font-weight: 500; color: #1e3a8a; display: inline-flex; align-items: center; gap: 8px; }\n        .badge-total { background: #eef2ff; padding: 6px 14px; border-radius: 40px; font-size: 0.85rem; font-weight: 500; color: #1e3a8a; }\n        .controls-bar { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; margin-top: 20px; background: white; padding: 14px 20px; border-radius: 24px; box-shadow: 0 2px 6px rgba(0,0,0,0.03), 0 1px 2px rgba(0,0,0,0.05); }\n        .search-wrapper { flex: 2; min-width: 220px; position: relative; }\n        .search-wrapper i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #7f8c8d; font-size: 0.9rem; }\n        .search-wrapper input { width: 100%; padding: 12px 16px 12px 40px; border: 1px solid #e2e8f0; border-radius: 44px; font-size: 0.9rem; transition: all 0.2s; background: #ffffff; }\n        .search-wrapper input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.2); }\n        .filter-group { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }\n        select, .reset-btn { background: white; border: 1px solid #cbd5e1; padding: 10px 18px; border-radius: 40px; font-size: 0.85rem; font-weight: 500; cursor: pointer; transition: all 0.2s; color: #1f2a44; }\n        .reset-btn { background: #f1f5f9; display: inline-flex; align-items: center; gap: 8px; }\n        select:hover, .reset-btn:hover { border-color: #3b82f6; background: #f8fafc; }\n        .stats-info { background: #eef2ff; border-radius: 32px; padding: 8px 18px; font-size: 0.85rem; font-weight: 500; }\n        .table-wrapper { background: white; border-radius: 28px; box-shadow: 0 8px 20px rgba(0,0,0,0.03), 0 2px 4px rgba(0,0,0,0.05); overflow-x: auto; margin-top: 24px; border: 1px solid #edf2f7; }\n        .services-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; min-width: 900px; }\n        .services-table th { text-align: left; padding: 18px 16px; background: #f9fbfe; font-weight: 600; color: #2c3e66; border-bottom: 1px solid #e9edf2; text-transform: uppercase; letter-spacing: 0.3px; }\n        .services-table td { padding: 14px 16px; border-bottom: 1px solid #eff3f8; vertical-align: middle; }\n        .services-table tr:hover { background: #fafcff; }\n        .category-badge { background: #e9f0fe; padding: 4px 12px; border-radius: 30px; font-size: 0.7rem; font-weight: 600; display: inline-block; color: #1e4b7a; white-space: nowrap; }\n        .service-name { font-weight: 500; max-width: 300px; word-break: break-word; }\n        .price-highlight { font-weight: 700; color: #0f3b2c; background: #e6f7ef; display: inline-block; padding: 4px 10px; border-radius: 32px; font-size: 0.8rem; }\n        .buy-btn { background: #0f172a; border: none; padding: 7px 18px; border-radius: 40px; color: white; font-weight: 600; font-size: 0.7rem; cursor: pointer; transition: 0.2s; display: inline-flex; align-items: center; gap: 8px; }\n        .buy-btn:hover { background: #1e293b; transform: scale(0.97); }\n        .empty-state { text-align: center; padding: 50px 20px; color: #5b6e8c; }\n        footer { text-align: center; margin-top: 35px; font-size: 0.7rem; color: #6f8faa; border-top: 1px solid #e2edf7; padding-top: 20px; }\n        @media (max-width: 720px) { body { padding: 16px; } .controls-bar { flex-direction: column; align-items: stretch; } .filter-group { justify-content: space-between; } .brand { flex-direction: column; align-items: flex-start; } }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"dashboard-container\">\n    <div class=\"dashboard-header\">\n        <div class=\"brand\">\n            <h1><i class=\"fas fa-chart-line\" style=\"color: #2c5f8a;\"><\/i> <span class=\"company-indigo\">Adase Ads Ltd<\/span><\/h1>\n            <div class=\"address-badge\">\n                <i class=\"fas fa-map-marker-alt\"><\/i> Zion Road 12 AAA Close, Kira\n            <\/div>\n        <\/div>\n        <div style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 12px;\">\n            <span class=\"badge-total\"><i class=\"fas fa-rocket\"><\/i> Prices shown per unit (\u00d730 markup)<\/span>\n            <span style=\"font-size: 0.75rem; color:#43627f;\">\u26a1 Blazing fast | Real\u2011time filtering<\/span>\n        <\/div>\n    <\/div>\n\n    <div class=\"controls-bar\">\n        <div class=\"search-wrapper\">\n            <i class=\"fas fa-search\"><\/i>\n            <input type=\"text\" id=\"searchInput\" placeholder=\"Search by service name, ID or category...\">\n        <\/div>\n        <div class=\"filter-group\">\n            <select id=\"categoryFilter\">\n                <option value=\"all\">\ud83d\udcc1 All categories<\/option>\n            <\/select>\n            <select id=\"sortSelect\">\n                <option value=\"id_asc\">\ud83d\udd22 ID (Ascending)<\/option>\n                <option value=\"price_asc\">\ud83d\udcb0 Price (Low \u2192 High)<\/option>\n                <option value=\"price_desc\">\ud83d\udcb0 Price (High \u2192 Low)<\/option>\n                <option value=\"name_asc\">\ud83d\udcdd Name A \u2192 Z<\/option>\n            <\/select>\n            <button class=\"reset-btn\" id=\"resetBtn\"><i class=\"fas fa-undo-alt\"><\/i> Reset<\/button>\n            <div class=\"stats-info\" id=\"resultStats\">0 services<\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"table-wrapper\">\n        <table class=\"services-table\" id=\"servicesTable\">\n            <thead>\n                <tr><th>Category<\/th><th>ID<\/th><th>Service Name<\/th><th>Min Order<\/th><th>Max Order<\/th><th>\ud83d\udcb0 Price per unit<\/th><th>Action<\/th><\/tr>\n            <\/thead>\n            <tbody id=\"tableBody\">\n                <tr><td colspan=\"7\" style=\"text-align:center; padding: 40px;\"><i class=\"fas fa-spinner fa-pulse\"><\/i> Loading services&#8230;<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n    <\/div>\n    <footer>\u00a9 Adase Ads Ltd \u2013 Zion Road 12 AAA Close Kira | All prices are per unit (original rate per 1000 \u00d7 30 markup). Click &#8220;Buy Now&#8221; to order via WhatsApp.<\/footer>\n<\/div>\n\n<script>\n    (function() {\n        'use strict';\n\n        \/\/ \u2500\u2500 RAW DATA (same as before) \u2500\u2500\n        const FULL_RAW_DATA = `TikTok : Views [ Cheapest ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6110 -TikTok Views | Slow\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n6107 -TikTok Video Views [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 100000000\n1 $\tBuy Now\n5737 -TikTok Video Views [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 2147483647\n1 $\tBuy Now\n6108 -Tiktok Views | Cheap\nNot enough data\nMin order 100\nMax order 217545811\n1 $\tBuy Now\n6109 -Tiktok Video Views | No Refill\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n6016 -TikTok Video Views [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 100000000\n1 $\tBuy Now\n5738 -TikTok Video Views [ \ud835\udc14\ud835\udc0b\ud835\udc13\ud835\udc11\ud835\udc00 \ud835\udc05\ud835\udc00\ud835\udc12\ud835\udc13 ]\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5740 -Tiktok Views | Always Instant\nNot enough data\nMin order 100\nMax order 217545811\n1 $\tBuy Now\n5805 -TikTok - Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5739 -TikTok Views | No Refill\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n6017 -TikTok Video Views [ \ud835\udc14\ud835\udc0b\ud835\udc13\ud835\udc11\ud835\udc00 \ud835\udc05\ud835\udc00\ud835\udc12\ud835\udc13 & \ud835\udc12\ud835\udc2d\ud835\udc1a\ud835\udc1b\ud835\udc25\ud835\udc1e ]\nNot enough data\nMin order 100\nMax order 2147483647\n2 $\tBuy Now\n5741 -TikTok Real Views [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 100\nMax order 2147483647\n356 $\tBuy Now\nTikTok : Views [ \ud835\udde1\ud835\uddfc\ud835\uddfb \ud835\uddd7\ud835\uddff\ud835\uddfc\ud835\uddfd ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6064 -TikTok Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 1000000000\n2 $\tBuy Now\n6101 -TikTok Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 100000000\n2 $\tBuy Now\n6063 -TikTok Views [ \ud835\udc0d\ud835\udc28\ud835\udc27 \ud835\udc03\ud835\udc2b\ud835\udc28\ud835\udc29 ]\nNot enough data\nMin order 1000\nMax order 2147483647\n4 $\tBuy Now\nTikTok : Likes [ Cheapest ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6121 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6088 -TikTok Likes [ Emergency ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6089 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6094 -Tiktok Likes | Bot+Real | 30 Days Refill\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n5742 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n6021 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 500\nMax order 5000000\n1 $\tBuy Now\n6059 -TikTok - Likes [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29 ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6085 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6139 -Tiktok Likes | 30K\/Day | 0-40 MIN | 30 Days Refill\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\nTikTok : Likes [ \ud835\udc14\ud835\udc25\ud835\udc2d\ud835\udc2b\ud835\udc1a \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d \u26a1 ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6122 -TikTok - Likes [ \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6081 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6060 -TikTok - Likes [ \u26a1\ud835\udc13\ud835\udc0e\ud835\udc0f \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\u26a1 ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6078 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6087 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\nTikTok : Likes [ Best Speed ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6123 -TikTok - Likes [ \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 5000000\n1 $\tBuy Now\n6091 -TikTok - Likes [ \ud835\udc12\ud835\udc2e\ud835\udc29\ud835\udc1e\ud835\udc2b\ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6090 -TikTok - Likes [ \u26a1\ud835\udc13\ud835\udc0e\ud835\udc0f \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\u26a1 ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n5745 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n2 $\tBuy Now\n6086 -TikTok Likes [\u26a1\ufe0f BEST ]\nNot enough data\nMin order 100\nMax order 5000000\n2 $\tBuy Now\n6012 -TikTok - Likes [ \u26a1\ud835\udc13\ud835\udc0e\ud835\udc0f \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\u26a1 ]\nNot enough data\nMin order 100\nMax order 5000000\n6 $\tBuy Now\n5804 -Tiktok Real Likes [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 10\nMax order 1000000\n18 $\tBuy Now\nTikTok : Likes [ Non Drop ]\nID -Service \/Average time\tRate per 1000\tBuy now\n6083 -TikTok - Real Likes [ Non Drop ]\nNot enough data\nMin order 100\nMax order 5000000\n3 $\tBuy Now\n5744 -TikTok - Global Likes [ Non Drop ]\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\n6084 -TikTok - Real Likes [ Non Drop ]\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\nTikTok : Followers | Cheapest\nID -Service \/Average time\tRate per 1000\tBuy now\n6071 -TikTok Followers | Speed 5K+ \/ DAY | No Refill | \u26d4\ud83d\udd25\nNot enough data\nMin order 100\nMax order 1000000\n5 $\tBuy Now\n6074 -TikTok Followers [ Real Quality ] [ Less Drop ] [ 30D Refill ]\nNot enough data\nMin order 100\nMax order 1000000\n6 $\tBuy Now\n6072 -TikTok Followers [ Mixed .Quality ] [ No Refill ] Normal Speed\nNot enough data\nMin order 100\nMax order 5000000\n6 $\tBuy Now\nTikTok : Followers | \ud835\udc07\ud835\udc22\ud835\udc20\ud835\udc21 \ud835\udc12\ud835\udc29\ud835\udc1e\ud835\udc1e\ud835\udc1d\nID -Service \/Average time\tRate per 1000\tBuy now\n6069 -TikTok Followers | HQ Profiles | 10-40k\/Day | 30 Days Refill\nNot enough data\nMin order 10\nMax order 5000000\n8 $\tBuy Now\n6073 -TikTok Followers [ Real Quality ] [ Nondrop ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 5000000\n8 $\tBuy Now\n6068 -TikTok Followers [ Mixed Quality ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 500000\n9 $\tBuy Now\nTikTok : Followers | \ud835\udde1\ud835\uddfc\ud835\uddfb \ud835\uddd7\ud835\uddff\ud835\uddfc\ud835\uddfd\nID -Service \/Average time\tRate per 1000\tBuy now\n6011 -TikTok Followers [ Real Quality ] [ Less Drop ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 2000000\n13 $\tBuy Now\n6028 -TikTok Followers [ High Quality ] [ Less Drop ] [ 30D Refill ] Fast\nNot enough data\nMin order 100\nMax order 5000000\n13 $\tBuy Now\n6010 -TikTok Followers [ Real Quality ] [ Nondrop ] [ 365D Refill ] Fast\nNot enough data\nMin order 100\nMax order 500000\n16 $\tBuy Now\nTikTok : Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5851 -Tiktok Comment Likes [ HQ ]\nNot enough data\nMin order 100\nMax order 10000\n1 $\tBuy Now\n5852 -Random Comments [ HQ Profiles ]\nNot enough data\nMin order 1\nMax order 200\n35 $\tBuy Now\nTikTok : Saves\nID -Service \/Average time\tRate per 1000\tBuy now\n5763 -TikTok - Saves [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29\ud835\udc1e\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 2147482677\n1 $\tBuy Now\n5764 -TikTok Video Saves\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\nTikTok : Add Favorites\nID -Service \/Average time\tRate per 1000\tBuy now\n5767 -TikTok - Add Favorites [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29\ud835\udc1e\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5768 -TikTok - Add Favorites | 100% Organic\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\nTikTok : Shares\nID -Service \/Average time\tRate per 1000\tBuy now\n5766 -Tiktok - Shares [ \ud835\udc02\ud835\udc21\ud835\udc1e\ud835\udc1a\ud835\udc29\ud835\udc1e\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 2147482677\n1 $\tBuy Now\n5765 -Tiktok - Shares [ \ud835\udc14\ud835\udc25\ud835\udc2d\ud835\udc2b\ud835\udc1a \ud835\udc05\ud835\udc1a\ud835\udc2c\ud835\udc2d ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\nTikTok : Downloads\nID -Service \/Average time\tRate per 1000\tBuy now\n5773 -Tiktok Video Downloads\nNot enough data\nMin order 10\nMax order 1000000000\n1 $\tBuy Now\nTikTok : Live stream views\nID -Service \/Average time\tRate per 1000\tBuy now\n5751 -Live Views \u2022 15 Minutes\nNot enough data\nMin order 10\nMax order 10000\n2 $\tBuy Now\n5752 -Live Views \u2022 30 Minutes\nNot enough data\nMin order 50\nMax order 10000\n3 $\tBuy Now\n5753 -Live Views \u2022 60 Minutes\nNot enough data\nMin order 10\nMax order 10000\n6 $\tBuy Now\n5754 -Live Views \u2022 90 Minutes\nNot enough data\nMin order 50\nMax order 10000\n9 $\tBuy Now\n5755 -Live Views \u2022 120 Minutes\nNot enough data\nMin order 10\nMax order 10000\n12 $\tBuy Now\n5756 -Live Views \u2022 150 Minutes\nNot enough data\nMin order 10\nMax order 10000\n14 $\tBuy Now\n5757 -Live Views \u2022 180 Minutes\nNot enough data\nMin order 50\nMax order 10000\n17 $\tBuy Now\n5758 -Live Views \u2022 210 Minutes\nNot enough data\nMin order 10\nMax order 10000\n20 $\tBuy Now\n5759 -Live Views \u2022 240 Minutes\nNot enough data\nMin order 10\nMax order 10000\n23 $\tBuy Now\n5760 -Live Views \u2022 270 Minutes\nNot enough data\nMin order 10\nMax order 10000\n26 $\tBuy Now\n5761 -Live Views \u2022 300 Minutes\nNot enough data\nMin order 10\nMax order 10000\n28 $\tBuy Now\n5762 -Live Views \u2022 360 Minutes\nNot enough data\nMin order 10\nMax order 10000\n34 $\tBuy Now\nTikTok : Live stream Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n5748 -Tiktok Live Likes\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5749 -Tiktok Live Likes\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5750 -Tiktok Live Likes\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\nTikTok : Live stream Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5769 -Tiktok Live Stream Shares\nNot enough data\nMin order 10\nMax order 10000000\n1 $\tBuy Now\n5770 -Tiktok Live Stream Emoji Comments\nNot enough data\nMin order 10\nMax order 1000000\n19 $\tBuy Now\n5771 -Tiktok Live Stream Costum Comments\nNot enough data\nMin order 1\nMax order 100000\n27 $\tBuy Now\n5772 -Tiktok Live Stream Random Comments\nNot enough data\nMin order 1\nMax order 1000000\n28 $\tBuy Now\nTikTok : PK Battle Points\nID -Service \/Average time\tRate per 1000\tBuy now\n5775 -TikTok PK Battle Points\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5776 -TikTok - Live PK Battle Points\nNot enough data\nMin order 100\nMax order 50000\n1 $\tBuy Now\n5777 -TikTok - Live PK Battle Points\nNot enough data\nMin order 100\nMax order 1000000000\n1 $\tBuy Now\n5774 -TikTok PK Battle Points\nNot enough data\nMin order 100\nMax order 1000000000\n1 $\tBuy Now\nTiktok Spam Report\nID -Service \/Average time\tRate per 1000\tBuy now\n5778 -Tiktok Spam Report - Post\nNot enough data\nMin order 0\nMax order 0\n14 $\tBuy Now\n5779 -Tiktok Spam Report - Account\nNot enough data\nMin order 0\nMax order 0\n135 $\tBuy Now\nTikTok : Real Reach\nID -Service \/Average time\tRate per 1000\tBuy now\n5780 -TikTok Views + 30% Likes From Search [ Real Views - \ud835\udddb\ud835\uddf2\ud835\uddf9\ud835\uddfd \ud835\ude01\ud835\uddfc \ud835\uddf4\ud835\uddfc \ud835\udde9\ud835\uddf6\ud835\uddff\ud835\uddee\ud835\uddf9 \ud835\ude03\ud835\uddf6\ud835\uddf1\ud835\uddf2\ud835\uddfc\nNot enough data\nMin order 200\nMax order 100000\n3 $\tBuy Now\nTikTok : Followers [ Country \ud83c\udf0d \ud83c\uddfa\ud83c\uddec\nID -Service \/Average time\tRate per 1000\tBuy now\n5782 -TikTok Followers [ Africa Countries \ud83c\uddf3\ud83c\uddec ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 10\nMax order 100000\n13 $\tBuy Now\n5781 -TikTok Followers [ Africa Countries \ud83c\uddfa\ud83c\uddec ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 10\nMax order 100000\n14 $\tBuy Now\n5783 -TikTok Followers [ Asian Countries ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 10\nMax order 20000\n18 $\tBuy Now\nWhatsapp | Poll Votes\nID -Service \/Average time\tRate per 1000\tBuy now\n6022 -Whatsapp Poll Votes [Option A] No Refill\nNot enough data\nMin order 10\nMax order 100000\n20 $\tBuy Now\n6023 -Whatsapp Poll Votes [Option B] No Refill\nNot enough data\nMin order 10\nMax order 100000\n20 $\tBuy Now\n6024 -Whatsapp Poll Votes [Option C] No Refill\nNot enough data\nMin order 10\nMax order 100000\n20 $\tBuy Now\n6025 -Whatsapp Poll Votes [Option D] No Refill\nNot enough data\nMin order 10\nMax order 100000\n20 $\tBuy Now\n6026 -Whatsapp Poll Votes [Option e] No Refill\nNot enough data\nMin order 10\nMax order 100000\n20 $\tBuy Now\nWhatsApp : Channel Followers\nID -Service \/Average time\tRate per 1000\tBuy now\n5795 -\ud83c\udf0e WhatsApp Channel Followers - [ 5k-10k\/day ] [ No Refill ] Instant S1\nNot enough data\nMin order 10\nMax order 50000\n10 $\tBuy Now\n5796 -\ud83c\udde6\ud83c\uddea WhatsApp Channel \ud835\uddd4\ud835\uddff\ud835\uddee\ud835\uddef\ud835\uddf6\ud835\uddf0 Followers - [ 5k-10k\/day ] [ No Refill ] Instant\nNot enough data\nMin order 10\nMax order 50000\n12 $\tBuy Now\n5797 -\ud83c\uddf9\ud83c\uddf7 WhatsApp Channel Turkey Followers - [ 5k-10k\/day ] [ No Refill ] Instant\nNot enough data\nMin order 10\nMax order 50000\n12 $\tBuy Now\n5798 -\ud83c\uddfa\ud83c\uddf8 WhatsApp Channel \ud835\udde8\ud835\udde6\ud835\uddd4 Followers - [ 5k-10k\/day ] [ No Refill ] Instant\nNot enough data\nMin order 10\nMax order 50000\n12 $\tBuy Now\n5799 -\ud83c\uddea\ud83c\uddfa WhatsApp Channel Europe Followers - [ 5k-10k\/day ] [ No Refill ] Instant\nNot enough data\nMin order 10\nMax order 50000\n12 $\tBuy Now\n5800 -\ud83c\uddee\ud83c\uddf3 WhatsApp Channel \ud835\udddc\ud835\uddfb\ud835\uddf1\ud835\uddf6\ud835\uddee\ud835\uddfb Followers - [ 5k-10k\/day ] [ No Refill ] Instant\nNot enough data\nMin order 10\nMax order 50000\n13 $\tBuy Now\nWhatsApp : Channel Emoji Reactions\nID -Service \/Average time\tRate per 1000\tBuy now\n5787 -Whatsapp Channel Post Emoji Reactions [ \ud83d\ude32 ]\nNot enough data\nMin order 10\nMax order 50000\n3 $\tBuy Now\n5788 -Whatsapp Channel Post Emoji Reactions [ \ud83d\ude25 ]\nNot enough data\nMin order 10\nMax order 50000\n3 $\tBuy Now\n5790 -Whatsapp Channel Post Emoji Reactions [ \ud83d\udc4f ]\nNot enough data\nMin order 10\nMax order 50000\n3 $\tBuy Now\n5792 -Whatsapp Channel Post Emoji Reactions [ \ud83c\udfc6 ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5793 -Whatsapp Channel Post Emoji Reactions [ \ud83c\udf89 ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5791 -Whatsapp Channel Post Emoji Reactions [ \ud83d\udd25 ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5786 -Whatsapp Channel Post Emoji Reactions [ \ud83d\ude02 ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5789 -Whatsapp Channel Post Emoji Reactions [ \ud83d\ude4f ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5784 -Whatsapp Channel Post Emoji Reactions [ \ud83d\udc4d ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5785 -Whatsapp Channel Post Emoji Reactions [ \u2764\ufe0f ]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n5794 -Whatsapp Channel Post Emoji Reactions | Random Mix [\ud83d\udc4d\u2764\ufe0f\ud83d\ude02\ud83d\ude32\ud83d\ude25\ud83d\ude4f]\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\nInstagram : Views\nID -Service \/Average time\tRate per 1000\tBuy now\n6061 -IG Reel Views - Cheapest\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5807 -IG Reel Views - High Retention\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5812 -IG Reel Views [ Better \ud83d\ude03 ]\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5809 -IG Reel Views [ Best \ud83d\ude04 ]\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5808 -IG Reel Views - Superfast \u26a1\ufe0f\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5810 -IG Reel Views [ For Collab Reels ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5811 -IG Post \/ Photo Views\nNot enough data\nMin order 10\nMax order 100000000\n1 $\tBuy Now\n5813 -IG Reel Views [ Good \ud83d\ude00 ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5814 -IG Reel Views [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\nInstagram : Likes | Cheapest\nID -Service \/Average time\tRate per 1000\tBuy now\n6124 -Instagram Likes | 0-5 Hour | No Refill | No Speed Up\nNot enough data\nMin order 10\nMax order 250000\n1 $\tBuy Now\n6125 -Instagram Likes | 20k Speed | No Refill\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n6015 -Instagram Likes - Cheapest 1\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n6126 -Instagram Likes | 40k Speed | 30 Days Refill\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n6127 -Instagram Likes | 45k Speed | 30 Days Refill\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n6066 -Instagram Likes - Cheapest\nNot enough data\nMin order 10\nMax order 10000000\n1 $\tBuy Now\n5820 -Instagram Likes - HQ PROFILES\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5815 -Instagram MIX Quality Likes\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5817 -Instagram Likes - EMERGENCY\nNot enough data\nMin order 10\nMax order 100000\n1 $\tBuy Now\n5819 -Instagram Likes - Cheap\nNot enough data\nMin order 1\nMax order 400000\n1 $\tBuy Now\n5821 -HQ Likes - Auto Refill \ud83c\udf1f\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5818 -Instagram Likes + Reach\nNot enough data\nMin order 10\nMax order 1000000\n2 $\tBuy Now\nInstagram : Likes | \ud835\udc0d\ud835\udc0e\ud835\udc0d \ud835\udc03\ud835\udc11\ud835\udc0e\ud835\udc0f\nID -Service \/Average time\tRate per 1000\tBuy now\n5816 -\ud83c\udd85\ud83c\udd78\ud83c\udd7f Instagram Likes | Full Real HQ | Non Drop | Speed 5K+ Per DAY | Start Time 0-4hrs| \ud835\udddf\ud835\uddf6\ud835\uddf3\ud835\uddf2\ud835\ude01\ud835\uddf6\ud835\uddfa\ud835\uddf2 \ud835\uddda\ud835\ude02\ud835\uddee\ud835\uddff\ud835\uddee\ud835\uddfb\ud835\ude01\ud835\uddf2\ud835\uddf2 | \u2705\ud83d\udd25\u26a1\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n6029 -\ud83c\udd85\ud83c\udd78\ud83c\udd7f Instagram Likes | Full Real HQ | Non Drop | Speed 3K+ Per DAY | Start Time 0-5 Minutes | \ud835\udddf\ud835\uddf6\ud835\uddf3\ud835\uddf2\ud835\ude01\ud835\uddf6\ud835\uddfa\ud835\uddf2 \ud835\uddda\ud835\ude02\ud835\uddee\ud835\uddff\ud835\uddee\ud835\uddfb\ud835\ude01\ud835\uddf2\ud835\uddf2 | \u2705\ud83d\udd25\u26a1\nNot enough data\nMin order 10\nMax order 100000\n1 $\tBuy Now\n6128 -\ud83c\udd85\ud83c\udd78\ud83c\udd7f Instagram Likes | Non Drop | Speed 40K+ Per DAY | Start Time 0-5 Minutes | \ud835\udddf\ud835\uddf6\ud835\uddf3\ud835\uddf2\ud835\ude01\ud835\uddf6\ud835\uddfa\ud835\uddf2 \ud835\uddda\ud835\ude02\ud835\uddee\ud835\uddff\ud835\uddee\ud835\uddfb\ud835\ude01\ud835\uddf2\ud835\uddf2 | \u2705\ud83d\udd25\u26a1\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\nInstagram : Followers | Cheapest\nID -Service \/Average time\tRate per 1000\tBuy now\n6140 -Instagram Followers [ Mixed Quality ] [ 365D Refill ] Normal Speed\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\n6070 -Instagram Followers | Cheapest | \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D [ Drop: \u00b150% ]\nNot enough data\nMin order 100\nMax order 500000\n2 $\tBuy Now\n6104 -Instagram - Followers [ Working ] [ Flag OFF \u2705] ~ 15k\/day ~ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D\nNot enough data\nMin order 20\nMax order 1000000\n2 $\tBuy Now\n5830 -Instagram Followers [ Mixed Quality ] [ 30D Refill ] Normal Speed\nNot enough data\nMin order 10\nMax order 1000000\n2 $\tBuy Now\n5833 -Instagram Followers [ Mixed Quality ] [ 30D Refill ] Fast Speed\nNot enough data\nMin order 10\nMax order 1000000\n2 $\tBuy Now\n6105 -Instagram - Followers [ \ud835\udc01\ud835\udc2e\ud835\udc25\ud835\udc25\ud835\udc1e\ud835\udc2d \ud835\udc12\ud835\udc29\ud835\udc1e\ud835\udc1e\ud835\udc1d ] ~ 500k\/day ~ Instant ~ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D - \ud835\udc01\ud835\udc04\ud835\udc12\ud835\udc13 \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\ud83c\udfc6\nNot enough data\nMin order 10\nMax order 1000000\n2 $\tBuy Now\n6106 -Instagram - Followers [ \ud835\udc01\ud835\udc2e\ud835\udc25\ud835\udc25\ud835\udc1e\ud835\udc2d \ud835\udc12\ud835\udc29\ud835\udc1e\ud835\udc1e\ud835\udc1d ] ~ 40k\/day ~ Instant ~ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D - \ud835\udc01\ud835\udc04\ud835\udc12\ud835\udc13 \ud835\udc12\ud835\udc0f\ud835\udc04\ud835\udc04\ud835\udc03\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\nInstagram : Followers | \ud835\udc0d\ud835\udc0e\ud835\udc0d \ud835\udc03\ud835\udc11\ud835\udc0e\ud835\udc0f\nID -Service \/Average time\tRate per 1000\tBuy now\n5831 -Instagram Followers [ Good Quality ] [ 365D Refill ] Fast Speed\nNot enough data\nMin order 100\nMax order 1000000\n3 $\tBuy Now\n5834 -Instagram Followers [ Good Quality ] [ Lifetime Refill ] Fast Speed\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\n5836 -Instagram Followers [ Real Profiles ] [ 365D Refill ] [ Lifetime ]\nNot enough data\nMin order 10\nMax order 3000000\n4 $\tBuy Now\n5835 -instagram Followers [ Real Profiles ] [ USA Insights ] [ Lifetime ]\nNot enough data\nMin order 10\nMax order 5000000\n8 $\tBuy Now\nInstagram : Followers | \ud835\udde1\ud835\udde2 Warranty\nID -Service \/Average time\tRate per 1000\tBuy now\n6062 -Instagram Followers [ No Guarantee ] [ No Refill ]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6111 -Instagram Followers | Have Drops | No Guarantee | No Refill | No Warranty\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5829 -Instagram Followers [ For Pranks ] [ No Guarantee ] High Drops\nNot enough data\nMin order 1000\nMax order 1000000\n1 $\tBuy Now\n5832 -Instagram Followers [ Good Quality ] [ No Refill ] Good Speed\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\n6014 -Instagram Followers [ For Pranks ] [ No Guarantee ] High Drops\nNot enough data\nMin order 100\nMax order 100000\n2 $\tBuy Now\nInstagram : Saves\nID -Service \/Average time\tRate per 1000\tBuy now\n5837 -Instagram Post \/ Reel Saves [ Fast ]\nNot enough data\nMin order 10\nMax order 300000\n1 $\tBuy Now\n5838 -Instagram Post \/ Reel Saves [ Instant ]\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n5839 -Instagram Post Saves [ Instant ]\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\nInstagram : Shares\nID -Service \/Average time\tRate per 1000\tBuy now\n5840 -IG Post Shares [ Cheap ]\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5841 -IG Reel\/Post Shares [ Instant ]\nNot enough data\nMin order 20\nMax order 1000000\n1 $\tBuy Now\n5842 -IG Reel\/Post Shares [ Lifetime ]\nNot enough data\nMin order 100\nMax order 10000000\n1 $\tBuy Now\nInstagram : Story services\nID -Service \/Average time\tRate per 1000\tBuy now\n5862 -Instagram Story Sharing | Story Link\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\n5863 -Instagram Story Discover Support Engagement | [Story Link] ]\nNot enough data\nMin order 100\nMax order 1000000\n4 $\tBuy Now\n5859 -Highlight Views\nNot enough data\nMin order 20\nMax order 20000\n8 $\tBuy Now\nInstagram : Repost\nID -Service \/Average time\tRate per 1000\tBuy now\n5847 -Instagram Repost [ Cheapest ]\nNot enough data\nMin order 10\nMax order 1000000\n2 $\tBuy Now\n5848 -Instagram Repost + Reach [ Global \ud83c\udf0d ]\nNot enough data\nMin order 10\nMax order 1000000\n2 $\tBuy Now\nInstagram : Random Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5855 -Instagram Random Comments [ H Q ]\nNot enough data\nMin order 10\nMax order 5000\n2 $\tBuy Now\n5857 -Instagram Random Comments [ H Q ] s2\nNot enough data\nMin order 10\nMax order 5000\n14 $\tBuy Now\nInstagram : Custom Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5853 -Instagram Custom Comments [ Mixed Quality ] [ Minimum - 10 ]\nNot enough data\nMin order 10\nMax order 3000\n6 $\tBuy Now\n5854 -Instagram Custom Comments [ High Quality ] [ Foreign Profiles ] S1\nNot enough data\nMin order 10\nMax order 5000\n11 $\tBuy Now\nInstagram : Emoji Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n5856 -Instagram Emoji Comments\nNot enough data\nMin order 10\nMax order 1000\n11 $\tBuy Now\n5934 -Instagram Emoji Comments [ Positive ]\nNot enough data\nMin order 10\nMax order 1000\n13 $\tBuy Now\nInstagram : Comment Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n5858 -Comment Likes \u2665\ufe0f [ Real ]\nNot enough data\nMin order 500\nMax order 200000\n9 $\tBuy Now\nInstagram : Channel Member\nID -Service \/Average time\tRate per 1000\tBuy now\n5867 -Instagram Channel Member [ Organic & Real Users ] [ Super Fast ] ~ Global \ud83c\udf0e\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\n5868 -Instagram Channel Member [ Organic & Real Users ] [ Super Fast ] ~ Arab \ud83c\uddf8\ud83c\udde6\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\n5869 -Instagram Channel Member [ Organic & Real Users ] [ Super Fast ] ~ India \ud83c\uddee\ud83c\uddf3\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\n5870 -Instagram Channel Member [ Organic & Real Users ] [ Super Fast ] ~ Nigeria \ud83c\uddf3\ud83c\uddec\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\n5866 -Instagram Channel Member [ Organic & Real Users ] [ Super Fast ] ~ USA \ud83c\uddfa\ud83c\uddf8\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\nInstagram : Uganda Services\nID -Service \/Average time\tRate per 1000\tBuy now\n5873 -IG Reel Views [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5871 -IG Uganda Followers [ Mixed Quality ]\nNot enough data\nMin order 10\nMax order 5000\n28 $\tBuy Now\n5872 -IG Uganda Followers [ HQ ]\nNot enough data\nMin order 10\nMax order 5000\n37 $\tBuy Now\nFacebook : Post Reactions\nID -Service \/Average time\tRate per 1000\tBuy now\n5880 -FB Post Reaction [ Angry \ud83e\udd2c]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5879 -FB Post Reaction [ Sad \ud83d\ude25]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5878 -FB Post Reaction [ Wow \ud83d\ude32]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5874 -FB Post Reaction [ Like \ud83d\udc4d]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5875 -FB Post Reaction [ Love \u2764\ufe0f]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5876 -FB Post Reaction [ Care \ud83e\udd17]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5877 -FB Post Reaction [ Haha \ud83d\ude02]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\nFacebook : Post Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n6103 -FB Post Like [ Cheap ]\nNot enough data\nMin order 20\nMax order 50000\n1 $\tBuy Now\n5881 -FB Post Likes - Mix Quality\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5883 -FB Post Like [ Cheap ]\nNot enough data\nMin order 10\nMax order 500000\n1 $\tBuy Now\n5882 -FB Post Likes - NR\nNot enough data\nMin order 10\nMax order 100000\n2 $\tBuy Now\n5884 -FB Post Likes [ Lifetime Refill ]\u26a1\ufe0f\nNot enough data\nMin order 10\nMax order 500000\n5 $\tBuy Now\nFacebook : Views\nID -Service \/Average time\tRate per 1000\tBuy now\n5886 -Facebook Reel & Video Views [ Real Quality ] [ Plays ]\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5885 -Facebook Reel & Video Views [ Real Quality ] [\u26a1\ufe0fFast Speed ]\nNot enough data\nMin order 10\nMax order 1000000000\n1 $\tBuy Now\n5887 -Facebook Reel & Video Views [ Real Quality ] [\u26a1\ufe0fLifetime ]\nNot enough data\nMin order 100\nMax order 20000000\n3 $\tBuy Now\nFacebook : Followers\nID -Service \/Average time\tRate per 1000\tBuy now\n6013 -Facebook Followers [ Mixed Quality ] [ 30D Refill ] Cheap\u26a1\ufe0f\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5888 -Facebook Followers [ Nice Quality ] [ 365D Refill ] Cheap\u26a1\ufe0f\nNot enough data\nMin order 10\nMax order 1000000\n1 $\tBuy Now\n5891 -Facebook Page & Profile Followers [ Nice Quality ] Recomended \ud83c\udf1f\nNot enough data\nMin order 100\nMax order 100000\n2 $\tBuy Now\n5889 -Facebook Page\/Profile Followers [ New Service ] [ Lifetime Refill ]\nNot enough data\nMin order 10\nMax order 500000\n3 $\tBuy Now\n5890 -Facebook Followers [ Nice Quality ] [ 365D Refill ] Fast\u26a1\ufe0f\nNot enough data\nMin order 10\nMax order 5000000\n4 $\tBuy Now\nFacebook : Followers + Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n5892 -FB Page Followers + Like [ Affordable] [ 30 Day Refill ] [ Good Speed ]\u26a1\ufe0f\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n5893 -FB Page Like + Followers [ Nondrop ] [ 30 Day Refill ] [ Fast ]\nNot enough data\nMin order 10\nMax order 500000\n2 $\tBuy Now\n5894 -FB Page Like + Followers [ Nice Quality ] [ 365D Refill ] [ Fast ]\nNot enough data\nMin order 10\nMax order 1000000\n3 $\tBuy Now\n5895 -FB Page Like + Followers [ Nondrop ] [ Lifetime Refill ] [ Fast ]\nNot enough data\nMin order 10\nMax order 5000000\n5 $\tBuy Now\nFacebook : Watchtime\nID -Service \/Average time\tRate per 1000\tBuy now\n5896 -Facebook 60K Minutes - [ Monetization ] [ Nondrop ] [ 2HR Video ]\nNot enough data\nMin order 1000\nMax order 1000\n4 $\tBuy Now\n5897 -Facebook 120K Minutes - [ Monetization ] [ Nondrop ] [ 2HR Video]\nNot enough data\nMin order 1000\nMax order 1000\n6 $\tBuy Now\n5898 -Facebook 180K Minutes - [ Monetization ] [ Nondrop ] [ 2HR Video]\nNot enough data\nMin order 1000\nMax order 1000\n10 $\tBuy Now\nFacebook : Live Watchtime\nID -Service \/Average time\tRate per 1000\tBuy now\n5899 -FB 60K Minutes [ For 2hr live Video ]\nNot enough data\nMin order 1000\nMax order 1000\n4 $\tBuy Now\n5900 -FB 120K Minutes [ For 2hr live Video ]\nNot enough data\nMin order 1000\nMax order 1000\n5 $\tBuy Now\n5901 -FB 600K Minutes [ For 3hr live Video ]\nNot enough data\nMin order 1000\nMax order 1000\n8 $\tBuy Now\n5902 -FB 600K Minutes [ For 1hr live Video ]\nNot enough data\nMin order 1000\nMax order 1000\n12 $\tBuy Now\nFacebook : Comments\nID -Service \/Average time\tRate per 1000\tBuy now\n6057 -Facebook Custom Comments\nNot enough data\nMin order 10\nMax order 50\n14 $\tBuy Now\n6058 -Facebook Random Comments [ WorldWide ]\nNot enough data\nMin order 50\nMax order 5000\n18 $\tBuy Now\nFacebook : Live Stream Views [ GOOD ]\nID -Service \/Average time\tRate per 1000\tBuy now\n5903 -FB Live Stream Viewers [ 15 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n2 $\tBuy Now\n5904 -FB Live Stream Viewers [ 30 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n3 $\tBuy Now\n5905 -FB Live Stream Viewers [ 45 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n4 $\tBuy Now\n5906 -FB Live Stream Viewers [ 60 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n5 $\tBuy Now\n5907 -FB Live Stream Viewers [ 90 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n7 $\tBuy Now\n5908 -FB Live Stream Viewers [ 120 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n9 $\tBuy Now\n5909 -FB Live Stream Viewers [ 150 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n12 $\tBuy Now\n5910 -FB Live Stream Viewers [ 180 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n14 $\tBuy Now\n5911 -FB Live Stream Viewers [ 210 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n16 $\tBuy Now\n5912 -FB Live Stream Viewers [ 240 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n18 $\tBuy Now\n5913 -FB Live Stream Viewers [ 270 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n21 $\tBuy Now\n5914 -FB Live Stream Viewers [ 300 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n23 $\tBuy Now\n5915 -FB Live Stream Viewers [ 360 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n27 $\tBuy Now\n5916 -FB Live Stream Viewers [ 420 minutes ]\nNot enough data\nMin order 10\nMax order 10000\n32 $\tBuy Now\nTwitter X : Followers\nID -Service \/Average time\tRate per 1000\tBuy now\n6003 -[X] Twitter Followers [ Premium ] [ Stable ] [ Refill: 30 Days ]\nNot enough data\nMin order 10\nMax order 1000000\n33 $\tBuy Now\nTwitter X : Views\nID -Service \/Average time\tRate per 1000\tBuy now\n5923 -X - Views [ \ud835\udde2\ud835\uddff\ud835\uddf4\ud835\uddee\ud835\uddfb\ud835\uddf6\ud835\uddf0 \ud835\udde9\ud835\uddf6\ud835\uddf2\ud835\ude04\ud835\ude00 ] ~ 50k\/day ~ Instant ~ \ud835\udc0d\ud835\udc0e \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5925 -X - Views [ \ud835\udde2\ud835\uddff\ud835\uddf4\ud835\uddee\ud835\uddfb\ud835\uddf6\ud835\uddf0 \ud835\udde9\ud835\uddf6\ud835\uddf2\ud835\ude04\ud835\ude00 ] ~ 50k\/day ~ Instant ~ \ud835\udc0d\ud835\udc0e \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf\nNot enough data\nMin order 100\nMax order 2147483647\n1 $\tBuy Now\n5924 -X - Views [ \ud835\udc14\ud835\udc0b\ud835\udc13\ud835\udc11\ud835\udc00 \ud835\udc05\ud835\udc00\ud835\udc12\ud835\udc13 ] ~ 10m\/day ~ Instant ~ \ud835\udc0d\ud835\udc0e \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf [ \ud835\udde5\ud835\uddf2\ud835\uddf0\ud835\uddfc\ud835\uddfa\ud835\uddfa\ud835\uddf2\ud835\uddfb\ud835\uddf1\ud835\uddf2\ud835\uddf1\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\nTwitter X : Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n5918 -X - Likes [ \ud835\udc11\ud835\udc04\ud835\uddd4\ud835\udc0b ] ~ 1K\/day ~ Instant ~ NO \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf\nNot enough data\nMin order 100\nMax order 500000\n3 $\tBuy Now\n5922 -X - Likes [ \ud835\udc11\ud835\udc04\ud835\uddd4\ud835\udc0b ] ~ 1-5k\/day ~ Instant ~ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D\nNot enough data\nMin order 100\nMax order 10000\n7 $\tBuy Now\n5919 -X - Likes [ \ud835\udc11\ud835\udc04\ud835\uddd4\ud835\udc0b ] ~ 1k\/day ~ Instant ~ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D\nNot enough data\nMin order 10\nMax order 100000\n9 $\tBuy Now\n5920 -X - Likes [ \ud835\udc11\ud835\udc04\ud835\uddd4\ud835\udc0b ] ~ 5k\/day ~ Instant ~ NO \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf\nNot enough data\nMin order 10\nMax order 10000\n9 $\tBuy Now\n5921 -X - Likes [ \ud835\udc11\ud835\udc04\ud835\uddd4\ud835\udc0b ] ~ 10k\/day ~ Instant ~ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D\nNot enough data\nMin order 10\nMax order 10000\n9 $\tBuy Now\nTwitter X : Poll Votes\nID -Service \/Average time\tRate per 1000\tBuy now\n5926 -Twitter Poll Votes\nNot enough data\nMin order 100\nMax order 20000\n1 $\tBuy Now\nTwitter X : Clicks\nID -Service \/Average time\tRate per 1000\tBuy now\n5928 -Twitter Profile Click\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\n5929 -Twitter Details Click\nNot enough data\nMin order 500\nMax order 100000000\n1 $\tBuy Now\n5927 -Twitter Link Clicks\nNot enough data\nMin order 250\nMax order 10000000\n2 $\tBuy Now\nTwitter X : Retweets\nID -Service \/Average time\tRate per 1000\tBuy now\n5930 -Twitter Retweets [ Cheap ]\nNot enough data\nMin order 100\nMax order 1000\n3 $\tBuy Now\n5931 -Twitter Retweet [ SuperFast ]\nNot enough data\nMin order 100\nMax order 50000\n4 $\tBuy Now\n5932 -Twitter Retweets [ Real Mix ]\nNot enough data\nMin order 50\nMax order 5000\n7 $\tBuy Now\nTwitter X : Reach \/ Impressions\nID -Service \/Average time\tRate per 1000\tBuy now\n5933 -Twitter Bundle Impression [ Views + Impressions + Detail Expand + Profile Clicks ]\nNot enough data\nMin order 100\nMax order 100000000\n1 $\tBuy Now\nTelegram : Members\nID -Service \/Average time\tRate per 1000\tBuy now\n6120 -Telegram Members [ Nondrop ] [ High Quality ] [ 60 Day Refill ]\nNot enough data\nMin order 600\nMax order 200000\n3 $\tBuy Now\n5968 -Telegram Members [ Nondrop ] [ High Quality ] [ 365 Day Refill ]\nNot enough data\nMin order 500\nMax order 1000000\n3 $\tBuy Now\n5967 -Telegram Members [ Nondrop ] [ High Quality ] [ 90 Day Refill ]\nNot enough data\nMin order 100\nMax order 350000\n2 $\tBuy Now\nTelegram : Members [ Cheap ]\nID -Service \/Average time\tRate per 1000\tBuy now\n5969 -Tg Members [ No Refill ] - No Warranty\nNot enough data\nMin order 100\nMax order 350000\n1 $\tBuy Now\nTelegram : Post Views\nID -Service \/Average time\tRate per 1000\tBuy now\n6113 -Telegram Post Views [Last 1]\nNot enough data\nMin order 10\nMax order 100000\n1 $\tBuy Now\n6114 -Telegram Post Views [Last 1 Post]\nNot enough data\nMin order 10\nMax order 100000000\n1 $\tBuy Now\n6112 -Telegram Post Views [Last 1 Post]\nNot enough data\nMin order 10\nMax order 100000\n1 $\tBuy Now\n6115 -Telegram Post View [Last 1 Post]\nNot enough data\nMin order 100\nMax order 300000\n1 $\tBuy Now\n6116 -Telegram Post Views [Last 5 Post]\nNot enough data\nMin order 1000\nMax order 100000000\n1 $\tBuy Now\n6117 -Telegram Post Views [Last 10 Post]\nNot enough data\nMin order 10\nMax order 100000000\n1 $\tBuy Now\n6118 -Telegram Post View [Last 5 Post]\nNot enough data\nMin order 50\nMax order 300000\n1 $\tBuy Now\n6119 -Telegram Post View - LAST 20 POST |\nNot enough data\nMin order 1000\nMax order 10000000\n1 $\tBuy Now\n5958 -Telegram Views [ 5 Post ]\nNot enough data\nMin order 200\nMax order 50000000\n1 $\tBuy Now\n5959 -Telegram Views [ 10 Post ]\nNot enough data\nMin order 1000000\nMax order 50000000\n1 $\tBuy Now\n5961 -Telegram Views [ 1000 Post ]\nNot enough data\nMin order 10\nMax order 50000000\n2 $\tBuy Now\nTelegram : Post Reactions\nID -Service \/Average time\tRate per 1000\tBuy now\n5951 -Positive Reactions [ \ud83d\udc4d \u2764\ufe0f \ud83d\udd25 \ud83c\udf89 \ud83d\ude01]\nNot enough data\nMin order 10\nMax order 200000\n1 $\tBuy Now\n5952 -Reaction\ud83d\udc4d\nNot enough data\nMin order 10\nMax order 200000\n1 $\tBuy Now\n5953 -Reaction\ud83d\udc4e\nNot enough data\nMin order 10\nMax order 200000\n1 $\tBuy Now\n5954 -Reaction\u2764\ufe0f\nNot enough data\nMin order 10\nMax order 200000\n1 $\tBuy Now\n5955 -Reaction Negative\ud83d\udd95\ud83d\udc94\ud83d\ude08\nNot enough data\nMin order 10\nMax order 200000\n1 $\tBuy Now\n5956 -Reaction\ud83d\ude0d\nNot enough data\nMin order 10\nMax order 200000\n1 $\tBuy Now\n5947 -Reactions + Views | \u2764\ufe0f\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n5948 -Reactions + Views | \ud83e\udd70\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n5949 -Reactions + Views | \ud83d\udc4c\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n5950 -Reactions + Views | \ud83d\ude31\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n5942 -Premium [\ud83d\udc4d ] Reaction + Static\nNot enough data\nMin order 10\nMax order 1000\n1 $\tBuy Now\n5943 -Premium [\u2764\ufe0f ] Reaction + Static\nNot enough data\nMin order 10\nMax order 1000\n1 $\tBuy Now\n5944 -Premium \ud83d\udc4d\ud83e\udd29\ud83c\udf89\ud83d\udd25\u2764\ufe0f\ud83e\udd70\ud83d\udc4f\ud83c\udffb - Include Static\nNot enough data\nMin order 10\nMax order 1000\n2 $\tBuy Now\n5945 -Premium \ud83d\udc4e\ud83d\ude01\ud83d\ude22\ud83d\udca9\ud83e\udd2e\ud83e\udd14\ud83e\udd2f\ud83e\udd2c - Include Static\nNot enough data\nMin order 10\nMax order 1000\n2 $\tBuy Now\n5946 -Premium \ud83d\udc4e - Include Static\nNot enough data\nMin order 10\nMax order 50000\n18 $\tBuy Now\nTelegram : Bot start + Seo\nID -Service \/Average time\tRate per 1000\tBuy now\n5966 -Bot Start - Mix Country + Accept Referral Code \ud83c\udf0e\ud83d\udd1d\nNot enough data\nMin order 50\nMax order 220000\n1 $\tBuy Now\nTelegram : Poll Vote\nID -Service \/Average time\tRate per 1000\tBuy now\n5941 -Telegram Post Poll Vote - Instant\nNot enough data\nMin order 20\nMax order 5000\n1 $\tBuy Now\nTelegram : Comments + Views\nID -Service \/Average time\tRate per 1000\tBuy now\n5937 -Telegram Random English Comments + views\nNot enough data\nMin order 15\nMax order 3500\n27 $\tBuy Now\n5938 -Telegram Russian Random Comments + Views \ud83c\uddf7\ud83c\uddfa\nNot enough data\nMin order 15\nMax order 3500\n27 $\tBuy Now\n5939 -Telegram Indian Random Comments + Views \ud83c\uddee\ud83c\uddf3\nNot enough data\nMin order 15\nMax order 3000\n27 $\tBuy Now\n5940 -Telegram Arabic Random Comments + View \ud83c\udde6\ud83c\uddea\nNot enough data\nMin order 15\nMax order 3000\n27 $\tBuy Now\nTelegram : Story Views\nID -Service \/Average time\tRate per 1000\tBuy now\n5935 -Telegram Story Views [ Cheap ]\nNot enough data\nMin order 50\nMax order 100000\n1 $\tBuy Now\n5936 -Telegram Story Views [ HQ ]\nNot enough data\nMin order 10\nMax order 500000\n2 $\tBuy Now\nTelegram : Future post Service\nID -Service \/Average time\tRate per 1000\tBuy now\n5965 -Future Post Reactions [ Positive ]\nNot enough data\nMin order 25\nMax order 25000\n1 $\tBuy Now\nTelegram : Premium Bot Start\nID -Service \/Average time\tRate per 1000\tBuy now\n5970 -Tg Premium Bot Start\nNot enough data\nMin order 1000\nMax order 50000\n12 $\tBuy Now\nTelegram : Online Members\nID -Service \/Average time\tRate per 1000\tBuy now\n5971 -Telegram ONLINE Premium Members [ 30Day Premium ] \u26a1\ufe0f\nNot enough data\nMin order 10\nMax order 25000\n18 $\tBuy Now\n5972 -Telegram ONLINE Premium Members [ 20-30D Premium ]\nNot enough data\nMin order 10\nMax order 50000\n20 $\tBuy Now\n5973 -Telegram ONLINE Premium Members [ 30-60D Premium ]\nNot enough data\nMin order 10\nMax order 350000\n36 $\tBuy Now\nTelegram : Premium Post View\nID -Service \/Average time\tRate per 1000\tBuy now\n5976 -Telegram Premium Views\nNot enough data\nMin order 10\nMax order 1000\n2 $\tBuy Now\nYouTube : Guaranteed Subscribers\nID -Service \/Average time\tRate per 1000\tBuy now\n5979 -YouTube Subscriber [ Nondrop ] [ 30D Refill ] [ Good Speed ]\nNot enough data\nMin order 5\nMax order 100000\n51 $\tBuy Now\n5981 -YouTube Subscriber [ Lifetime Guaranteed ] [ Normal Speed ]\u26a1\ufe0f\nNot enough data\nMin order 100\nMax order 50000\n62 $\tBuy Now\n5982 -YouTube Subscriber [ Nondrop ] [ 30D Refill ] [ Slow Speed ]\nNot enough data\nMin order 100\nMax order 50000\n76 $\tBuy Now\n5980 -YouTube Subscriber [ Lifetime Guaranteed ] [ Best Service ]\u26a1\ufe0f\nNot enough data\nMin order 100\nMax order 50000\n80 $\tBuy Now\nYouTube : Prank Subscribers\nID -Service \/Average time\tRate per 1000\tBuy now\n5983 -YouTube Prank Subscribers [ No Guarantee ] [ fast speed ] S1\nNot enough data\nMin order 500\nMax order 1000000\n2 $\tBuy Now\n5984 -YouTube Prank Subscribers [ No Guarantee ] [ fast speed ] S2\nNot enough data\nMin order 500\nMax order 1000000\n3 $\tBuy Now\nYouTube : Likes\nID -Service \/Average time\tRate per 1000\tBuy now\n5987 -Youtube Likes [ Premium Quality ] [ Lifetime Guarantee ] [ 100k\/D ]\nNot enough data\nMin order 10\nMax order 2000000\n24 $\tBuy Now\nYouTube : Video Views\nID -Service \/Average time\tRate per 1000\tBuy now\n5991 -YouTube - 100,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D ]\nNot enough data\nMin order 100000\nMax order 100000000\n4 $\tBuy Now\n5992 -YouTube - 10,000 Views [ Nondrop \u26a1] [ Lifetime ]\nNot enough data\nMin order 10000\nMax order 100000000\n4 $\tBuy Now\n5993 -YouTube - 200,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D ]\nNot enough data\nMin order 3000\nMax order 100000000\n4 $\tBuy Now\n6018 -YouTube - 3,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D ] \ud83c\uddee\ud83c\uddf3\nNot enough data\nMin order 3000\nMax order 100000000\n4 $\tBuy Now\n6020 -YouTube - 3,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 90D ] \ud83c\uddee\ud83c\uddf3\nNot enough data\nMin order 3000\nMax order 3000000\n5 $\tBuy Now\n5995 -YouTube - Min 100 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D ]\nNot enough data\nMin order 100\nMax order 3000\n3 $\tBuy Now\n5994 -YouTube - 1,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D ]\nNot enough data\nMin order 1000\nMax order 3000000\n4 $\tBuy Now\n6095 -YouTube - 1,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D ]\nNot enough data\nMin order 1000\nMax order 1000000\n5 $\tBuy Now\n5996 -YouTube - 1,000 Views [ Nondrop \u26a1 ] [ \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 365D ]\nNot enough data\nMin order 1000\nMax order 10000\n11 $\tBuy Now\nYouTube : Watchtime\nID -Service \/Average time\tRate per 1000\tBuy now\n6098 -YouTube Watchtime | Video Length 30 Minute+ | 1k Quantity = 250 hours | \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D\nNot enough data\nMin order 100\nMax order 20000\n64 $\tBuy Now\n6099 -YouTube Watchtime | Video Length 10-20 Minute+ | 1k Quantity = 1k hours | \ud835\udde5\ud835\uddd8\ud835\uddd9\ud835\udddc\ud835\udddf\ud835\udddf 30D\nNot enough data\nMin order 100\nMax order 4000\n79 $\tBuy Now\n6100 -Youtube Watchtime | Video Length 60 Min+ | 500 Hour\/Day | 30 Days Refill\nNot enough data\nMin order 100\nMax order 4000\n82 $\tBuy Now\nYouTube : Short Service\nID -Service \/Average time\tRate per 1000\tBuy now\n6000 -Youtube Short Views | Lifetime Guarantee\nNot enough data\nMin order 100\nMax order 3000000\n4 $\tBuy Now\nYouTube : Shares\nID -Service \/Average time\tRate per 1000\tBuy now\n6001 -Youtube Shares | Start Time 0-2hrs\nNot enough data\nMin order 100\nMax order 100000\n1 $\tBuy Now\nYouTube : Live Stream Views\nID -Service \/Average time\tRate per 1000\tBuy now\n6129 -YouTube Live Stream | 15 Minutes\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n6130 -YouTube Live Stream [ Max 50K ] | Instant Start | 30 Minutes\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n6131 -YouTube Live Stream [ Max 50K ] | Instant Start | 60 Minutes\nNot enough data\nMin order 10\nMax order 50000\n1 $\tBuy Now\n6132 -YouTube Live Stream [ Max 50K ] | Instant Start | 90 Minutes\nNot enough data\nMin order 10\nMax order 50000\n2 $\tBuy Now\n6133 -YouTube Live Stream [ Max 50K ] | Instant Start | 120 Minutes\nNot enough data\nMin order 10\nMax order 50000\n2 $\tBuy Now\n6134 -YouTube Live Stream [ Max 50K ] | Instant Start | 180 Minutes\nNot enough data\nMin order 10\nMax order 50000\n3 $\tBuy Now\n6135 -YouTube Live Stream [ Max 50K ] | Instant Start | 240 Minutes\nNot enough data\nMin order 10\nMax order 50000\n4 $\tBuy Now\n6136 -YouTube Live Stream [ Max 50K ] | Instant Start | 360 Minutes\nNot enough data\nMin order 10\nMax order 50000\n6 $\tBuy Now\n6137 -YouTube Live Stream [ Max 50K ] | Instant Start | 720 Minutes\nNot enough data\nMin order 10\nMax order 50000\n13 $\tBuy Now\n6138 -YouTube Live Stream [ Max 50K ] | Instant Start | 1440 Minutes\nNot enough data\nMin order 10\nMax order 50000\n25 $\tBuy Now\nReal Ugandans Services \ud83c\uddfa\ud83c\uddec\nID -Service \/Average time\tRate per 1000\tBuy now\n6004 -TikTok Real Views [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 1000\nMax order 2147483647\n3 $\tBuy Now\n6006 -TikTok Followers [ Africa Countries \ud83c\uddfa\ud83c\uddec ] [ Nondrop ] [ 30D Refill ]\nNot enough data\nMin order 500\nMax order 100000\n14 $\tBuy Now\n6005 -Tiktok Real Likes [ Organic \ud83c\uddfa\ud83c\uddec ]\nNot enough data\nMin order 500\nMax order 1000000\n15 $\tBuy Now\n6007 -\ud83c\uddfa\ud83c\uddec WhatsApp Channel Uganda Followers - [ 5k-10k\/day ] [ No Refill ] Instant\nNot enough data\nMin order 1000\nMax order 10000\n38 $\tBuy Now\n6008 -Instagram Ugandans Followers \ud83c\uddfa\ud83c\uddec\nNot enough data\nMin order 500\nMax order 5000\n42 $\tBuy Now\nSpotify Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6031 -Spotify Followers \u26a1\ufe0f| 365 Days Refill\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6033 -Spotify Saves [LINK - Track, Album, Podcast]\nNot enough data\nMin order 100\nMax order 1000000\n1 $\tBuy Now\n6032 -Spotify Quality Followers [365 Days Refill]\nNot enough data\nMin order 100\nMax order 1000000\n2 $\tBuy Now\n6034 -\ud83c\uddfa\ud83c\uddf8 Spotify USA Monthly Listeners\nNot enough data\nMin order 500\nMax order 20000000\n5 $\tBuy Now\nLinkedin Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6035 -LinkedIn Post Like [REAL] [HQ]\nNot enough data\nMin order 100\nMax order 10000\n24 $\tBuy Now\n6036 -Linkedin Connect [Real]\nNot enough data\nMin order 1\nMax order 10000\n44 $\tBuy Now\n6037 -Linkedin Followers [Premium] [100%HQ] [10-50\/Day] [0-24Hour] [0-10% Drop]\nNot enough data\nMin order 100\nMax order 10000\n63 $\tBuy Now\nTwitch Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6038 -Twitch Video Views\nNot enough data\nMin order 100\nMax order 10000000\n1 $\tBuy Now\n6039 -Twitch Followers [ 30 Day Refill ]\nNot enough data\nMin order 20\nMax order 10000\n1 $\tBuy Now\n6040 -Twitch Channel Views \u26a1\ufe0f\u267b\ud83d\udca7\u2b50\nNot enough data\nMin order 1000\nMax order 100000\n6 $\tBuy Now\nBlueSky Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6041 -BlueSky Retweet[Instant ]\nNot enough data\nMin order 100\nMax order 500000\n21 $\tBuy Now\n6042 -BlueSky Likes [Instant ]\nNot enough data\nMin order 100\nMax order 500000\n27 $\tBuy Now\n6043 -BlueSky Followers [Brazil\ud83c\udde7\ud83c\uddf7]\nNot enough data\nMin order 10\nMax order 5000\n28 $\tBuy Now\nSoundCloud Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6044 -SoundCloud Plays\nNot enough data\nMin order 500\nMax order 100000000\n2 $\tBuy Now\n6045 -SoundCloud Follower\nNot enough data\nMin order 10\nMax order 10000\n57 $\tBuy Now\n6046 -SoundCloud Likes\nNot enough data\nMin order 10\nMax order 100000\n60 $\tBuy Now\nPinterest Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6047 -Pinterest Likes [Real]\nNot enough data\nMin order 10\nMax order 10000\n23 $\tBuy Now\n6048 -Pinterest Followers [Real Accounts]\nNot enough data\nMin order 20\nMax order 15000\n33 $\tBuy Now\nBoomPlay Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6049 -Boomplay Streams [AFRICA]\nNot enough data\nMin order 1000\nMax order 100000\n7 $\tBuy Now\nDiscord Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6050 -Discord Server Members [Online [Bot Required] [30D Online]\nNot enough data\nMin order 100\nMax order 2000\n20 $\tBuy Now\n6051 -Discord Friend Request [No Drop]\nNot enough data\nMin order 1000\nMax order 2000\n23 $\tBuy Now\nAudiomack Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6052 -Audiomack Direct Plays [ Non Drop ]\nNot enough data\nMin order 1000\nMax order 1000000\n1 $\tBuy Now\n6053 -Audiomack Followers\nNot enough data\nMin order 100\nMax order 1000000\n5 $\tBuy Now\n6054 -Audiomack Likes\nNot enough data\nMin order 100\nMax order 1000000\n5 $\tBuy Now\nSnapchat Services\nID -Service \/Average time\tRate per 1000\tBuy now\n6055 -Snapchat Likes [100% Real Active]\nNot enough data\nMin order 10\nMax order 10000\n27 $\tBuy Now\n6056 -Snapchat Followers\nNot enough data\nMin order 10\nMax order 50\n74 $\tBuy Now`;\n\n        \/\/ \u2500\u2500 Parser (optimized) \u2500\u2500\n        function parseServices(raw) {\n            const lines = raw.split(\/\\r?\\n\/);\n            const services = [];\n            let currentCategory = \"General\";\n            const MAX_SAFE = 2147483647;\n            let i = 0;\n            while (i < lines.length) {\n                const line = lines[i].trim();\n                if (!line) { i++; continue; }\n                \/\/ detect category\n                if (\/^[A-Za-z]\/.test(line) &#038;&#038; (line.includes(':') || line.includes('|')) &#038;&#038; !line.includes('-Service') &#038;&#038; !line.toLowerCase().includes(\"rate per 1000\") &#038;&#038; !line.match(\/^\\d\/)) {\n                    currentCategory = line.replace(\/[\\t]+\/g, ' ').substring(0, 80);\n                    i++;\n                    continue;\n                }\n                const idMatch = line.match(\/^(\\d+)\\s*-\\s*(.+)$\/);\n                if (idMatch) {\n                    const id = idMatch[1];\n                    const name = idMatch[2].trim();\n                    let minOrder = 0, maxOrder = 0, price = 0;\n                    let j = i + 1;\n                    while (j < lines.length &#038;&#038; !(\/^\\d+\\s*-\/.test(lines[j].trim())) &#038;&#038; !(lines[j].trim() &#038;&#038; lines[j].trim().includes(':') &#038;&#038; !lines[j].trim().match(\/^\\d\/))) {\n                        const cur = lines[j].trim().toLowerCase();\n                        if (cur.startsWith(\"min order\")) {\n                            const m = cur.match(\/\\d+\/);\n                            if (m) minOrder = parseInt(m[0]);\n                        } else if (cur.startsWith(\"max order\")) {\n                            const m = cur.match(\/\\d+\/);\n                            if (m) maxOrder = parseInt(m[0]);\n                        } else if (cur.includes(\"$\")) {\n                            const pm = cur.match(\/(\\d+(?:\\.\\d+)?)\\s*\\$\/) || cur.match(\/\\$?\\s*(\\d+(?:\\.\\d+)?)\/);\n                            if (pm) price = parseFloat(pm[1]);\n                        }\n                        j++;\n                    }\n                    if (price > 0) {\n                        const perUnitPrice = (price * 30) \/ 1000;\n                        services.push({\n                            category: currentCategory,\n                            id: id,\n                            name: name,\n                            minOrder: minOrder || 0,\n                            maxOrder: maxOrder === MAX_SAFE ? 2147483647 : maxOrder,\n                            perUnitPrice: perUnitPrice\n                        });\n                    }\n                    i = j;\n                } else {\n                    i++;\n                }\n            }\n            return services;\n        }\n\n        \/\/ \u2500\u2500 Parse & filter TikTok \u2500\u2500\n        let allServices = parseServices(FULL_RAW_DATA);\n        allServices = allServices.filter(s => {\n            const cat = s.category.toLowerCase();\n            const name = s.name.toLowerCase();\n            return !cat.includes('tiktok') && !name.includes('tiktok');\n        });\n\n        \/\/ \u2500\u2500 DOM refs \u2500\u2500\n        const tbody = document.getElementById('tableBody');\n        const searchInput = document.getElementById('searchInput');\n        const categoryFilter = document.getElementById('categoryFilter');\n        const sortSelect = document.getElementById('sortSelect');\n        const resetBtn = document.getElementById('resetBtn');\n        const resultStats = document.getElementById('resultStats');\n\n        let currentDisplay = [...allServices];\n        let renderPending = false;\n\n        \/\/ \u2500\u2500 Build category options \u2500\u2500\n        function buildCategoryOptions() {\n            const cats = [...new Set(allServices.map(s => s.category))].sort();\n            categoryFilter.innerHTML = '<option value=\"all\">\ud83d\udcc1 All categories<\/option>';\n            cats.forEach(c => {\n                const opt = document.createElement('option');\n                opt.value = c;\n                opt.textContent = c;\n                categoryFilter.appendChild(opt);\n            });\n        }\n\n        \/\/ \u2500\u2500 Filter & sort (fast) \u2500\u2500\n        function filterAndSort() {\n            let filtered = allServices;\n            const term = searchInput.value.toLowerCase().trim();\n            const cat = categoryFilter.value;\n            if (term) {\n                filtered = filtered.filter(s => s.name.toLowerCase().includes(term) || s.id.includes(term) || s.category.toLowerCase().includes(term));\n            }\n            if (cat !== 'all') filtered = filtered.filter(s => s.category === cat);\n\n            const sortBy = sortSelect.value;\n            if (sortBy === 'id_asc') filtered.sort((a, b) => parseInt(a.id) - parseInt(b.id));\n            else if (sortBy === 'price_asc') filtered.sort((a, b) => a.perUnitPrice - b.perUnitPrice);\n            else if (sortBy === 'price_desc') filtered.sort((a, b) => b.perUnitPrice - a.perUnitPrice);\n            else if (sortBy === 'name_asc') filtered.sort((a, b) => a.name.localeCompare(b.name));\n\n            currentDisplay = filtered;\n            scheduleRender();\n        }\n\n        \/\/ \u2500\u2500 Schedule render with requestAnimationFrame \u2500\u2500\n        function scheduleRender() {\n            if (!renderPending) {\n                renderPending = true;\n                requestAnimationFrame(() => {\n                    renderPending = false;\n                    renderTable();\n                });\n            }\n        }\n\n        \/\/ \u2500\u2500 Render table (using DocumentFragment) \u2500\u2500\n        function renderTable() {\n            if (currentDisplay.length === 0) {\n                tbody.innerHTML = '<tr><td colspan=\"7\" class=\"empty-state\">\ud83d\ude1e No services match your filters.<\/td><\/tr>';\n                resultStats.innerText = '0 services';\n                return;\n            }\n            const fragment = document.createDocumentFragment();\n            for (const s of currentDisplay) {\n                const row = document.createElement('tr');\n                const maxShow = s.maxOrder === 2147483647 ? '\u221e' : s.maxOrder.toLocaleString();\n                row.innerHTML = `\n                    <td><span class=\"category-badge\">${escapeHtml(s.category)}<\/span><\/td>\n                    <td style=\"font-weight:500;\">${s.id}<\/td>\n                    <td class=\"service-name\">${escapeHtml(s.name)}<\/td>\n                    <td>${s.minOrder.toLocaleString()}<\/td>\n                    <td>${maxShow}<\/td>\n                    <td><span class=\"price-highlight\">$${s.perUnitPrice.toFixed(4)}<\/span><\/td>\n                    <td><button class=\"buy-btn\" data-id=\"${s.id}\" data-name=\"${escapeHtml(s.name)}\" data-price=\"${s.perUnitPrice}\"><i class=\"fas fa-shopping-cart\"><\/i> Buy Now<\/button><\/td>\n                `;\n                fragment.appendChild(row);\n            }\n            tbody.innerHTML = '';\n            tbody.appendChild(fragment);\n            resultStats.innerText = `${currentDisplay.length} services`;\n        }\n\n        \/\/ \u2500\u2500 Escape HTML \u2500\u2500\n        function escapeHtml(str) {\n            return str.replace(\/[&<>]\/g, m => m === '&' ? '&amp;' : m === '<' ? '&lt;' : '&gt;');\n        }\n\n        \/\/ \u2500\u2500 Reset \u2500\u2500\n        function resetAll() {\n            searchInput.value = '';\n            categoryFilter.value = 'all';\n            sortSelect.value = 'id_asc';\n            filterAndSort();\n        }\n\n        \/\/ \u2500\u2500 Buy Now handler (event delegation) \u2500\u2500\n        function handleBuyClick(e) {\n            const btn = e.target.closest('.buy-btn');\n            if (!btn) return;\n            const id = btn.dataset.id;\n            const name = btn.dataset.name;\n            const price = parseFloat(btn.dataset.price);\n            if (isNaN(price) || price <= 0) {\n                alert('Invalid price for this service.');\n                return;\n            }\n            const quantityInput = prompt(`Enter quantity for \"${name}\" (ID: ${id}):`, \"1\");\n            if (quantityInput === null) return;\n            const quantity = parseInt(quantityInput);\n            if (isNaN(quantity) || quantity <= 0) {\n                alert('Please enter a valid positive number for quantity.');\n                return;\n            }\n            const total = price * quantity;\n            const confirmMessage = `You are ordering:\\n\\n` +\n                                  `Service: ${name}\\n` +\n                                  `ID: ${id}\\n` +\n                                  `Quantity: ${quantity}\\n` +\n                                  `Price per unit: $${price.toFixed(4)}\\n` +\n                                  `Total: $${total.toFixed(4)}\\n\\n` +\n                                  `Proceed to WhatsApp?`;\n            if (!confirm(confirmMessage)) return;\n            const message = `Hello Adase Ads, I would like to order the following service:%0A%0A` +\n                            `Service ID: ${id}%0A` +\n                            `Service Name: ${name}%0A` +\n                            `Price per unit: $${price.toFixed(4)}%0A` +\n                            `Quantity: ${quantity}%0A` +\n                            `Total: $${total.toFixed(4)}%0A%0A` +\n                            `Please proceed with my order.`;\n            window.open(`https:\/\/wa.me\/256775036603?text=${message}`, '_blank');\n        }\n\n        \/\/ \u2500\u2500 Event listeners with debounce \u2500\u2500\n        let debounceTimer;\n        searchInput.addEventListener('input', () => {\n            clearTimeout(debounceTimer);\n            debounceTimer = setTimeout(filterAndSort, 200);\n        });\n        categoryFilter.addEventListener('change', filterAndSort);\n        sortSelect.addEventListener('change', filterAndSort);\n        resetBtn.addEventListener('click', resetAll);\n\n        \/\/ Event delegation for Buy Now\n        tbody.addEventListener('click', handleBuyClick);\n\n        \/\/ \u2500\u2500 Init \u2500\u2500\n        buildCategoryOptions();\n        filterAndSort();\n    })();\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n  <title>Cash Chat Bank | Adase Ads Ltd<\/title>\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n    .cashchat-redesign {\n      font-family: 'Inter', sans-serif;\n      margin: 0 auto;\n      max-width: 100%;\n      color: #1a202c;\n      line-height: 1.6;\n      background: #fff;\n      border-radius: 0;\n    }\n    .cashchat-redesign *,\n    .cashchat-redesign *::before,\n    .cashchat-redesign *::after {\n      box-sizing: border-box;\n    }\n\n    \/* ---------- Navigation ---------- *\/\n    .cc-nav {\n      position: sticky;\n      top: 0;\n      z-index: 100;\n      background: #1a365d;\n      padding: 0.8rem 1.5rem;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n    }\n    .cc-nav .cc-logo {\n      font-weight: 700;\n      font-size: 1.4rem;\n      color: #f6e05e;\n      text-decoration: none;\n    }\n    .cc-nav-links {\n      display: flex;\n      gap: 2rem;\n      list-style: none;\n      margin: 0;\n      padding: 0;\n    }\n    .cc-nav-links a {\n      color: #fff;\n      text-decoration: none;\n      font-weight: 500;\n      transition: color 0.2s;\n    }\n    .cc-nav-links a:hover {\n      color: #f6e05e;\n    }\n\n    \/* Mobile menu (checkbox hack) *\/\n    #cc-menu-toggle {\n      display: none;\n    }\n    .cc-menu-icon {\n      display: none;\n      flex-direction: column;\n      cursor: pointer;\n      gap: 5px;\n    }\n    .cc-menu-icon span {\n      width: 25px;\n      height: 3px;\n      background: #f6e05e;\n      border-radius: 3px;\n      transition: 0.3s;\n    }\n    @media (max-width: 768px) {\n      .cc-nav-links {\n        position: absolute;\n        top: 100%;\n        left: 0;\n        width: 100%;\n        background: #1a365d;\n        flex-direction: column;\n        align-items: center;\n        gap: 1rem;\n        padding: 1.5rem 0;\n        display: none;\n      }\n      .cc-menu-icon {\n        display: flex;\n      }\n      #cc-menu-toggle:checked ~ .cc-nav-links {\n        display: flex;\n      }\n      \/* Animation for hamburger to X *\/\n      #cc-menu-toggle:checked + .cc-menu-icon span:nth-child(1) {\n        transform: rotate(45deg) translate(5px, 5px);\n      }\n      #cc-menu-toggle:checked + .cc-menu-icon span:nth-child(2) {\n        opacity: 0;\n      }\n      #cc-menu-toggle:checked + .cc-menu-icon span:nth-child(3) {\n        transform: rotate(-45deg) translate(6px, -6px);\n      }\n    }\n\n    \/* ---------- Sections ---------- *\/\n    .cc-hero {\n      background: linear-gradient(135deg, #1a365d 0%, #2a4a7f 100%);\n      color: #fff;\n      padding: 4rem 1.5rem;\n      text-align: center;\n    }\n    .cc-hero h1 {\n      font-size: 2.8rem;\n      margin-bottom: 1rem;\n      color: #f6e05e;\n    }\n    .cc-hero p {\n      font-size: 1.2rem;\n      max-width: 700px;\n      margin: 0 auto 2rem;\n      opacity: 0.95;\n    }\n    .cc-btn {\n      display: inline-block;\n      padding: 0.8rem 2rem;\n      border-radius: 6px;\n      font-weight: 600;\n      text-decoration: none;\n      margin: 0.3rem;\n      transition: 0.2s;\n    }\n    .cc-btn-primary {\n      background: #f6e05e;\n      color: #1a365d;\n    }\n    .cc-btn-primary:hover {\n      background: #ecc94b;\n    }\n    .cc-btn-outline {\n      border: 2px solid #f6e05e;\n      color: #f6e05e;\n      background: transparent;\n    }\n    .cc-btn-outline:hover {\n      background: #f6e05e;\n      color: #1a365d;\n    }\n\n    .cc-section {\n      padding: 4rem 1.5rem;\n      max-width: 1200px;\n      margin: 0 auto;\n    }\n    .cc-section h2 {\n      font-size: 2rem;\n      margin-bottom: 2rem;\n      text-align: center;\n      color: #1a365d;\n    }\n\n    \/* Steps *\/\n    .cc-steps-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n      gap: 2rem;\n      margin-top: 2rem;\n    }\n    .cc-step-card {\n      background: #f7fafc;\n      padding: 2rem 1.5rem;\n      border-radius: 10px;\n      text-align: center;\n      box-shadow: 0 5px 15px rgba(0,0,0,0.05);\n    }\n    .cc-step-number {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 3rem;\n      height: 3rem;\n      background: #f6e05e;\n      color: #1a365d;\n      font-weight: 700;\n      font-size: 1.4rem;\n      border-radius: 50%;\n      margin-bottom: 1rem;\n    }\n    .cc-step-card h4 {\n      margin: 0.5rem 0;\n      color: #1a365d;\n    }\n\n    \/* Features *\/\n    .cc-features-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n      gap: 2rem;\n    }\n    .cc-feature-card {\n      text-align: center;\n      padding: 2rem 1.5rem;\n      border-radius: 10px;\n      background: #edf2f7;\n    }\n    .cc-feature-icon {\n      font-size: 2.5rem;\n      margin-bottom: 0.8rem;\n      color: #1a365d;\n    }\n\n    \/* About & CTA *\/\n    .cc-about {\n      background: #f7fafc;\n      text-align: center;\n    }\n    .cc-about p {\n      max-width: 700px;\n      margin: 0 auto 2rem;\n    }\n\n    .cc-cta-banner {\n      background: #1a365d;\n      color: #fff;\n      text-align: center;\n      padding: 3rem 1.5rem;\n    }\n    .cc-cta-banner h2 {\n      color: #f6e05e;\n    }\n    .cc-cta-banner .cc-btn-primary {\n      background: #f6e05e;\n      color: #1a365d;\n    }\n\n    \/* Footer \/ Contact *\/\n    .cc-footer {\n      background: #1a202c;\n      color: #a0aec0;\n      padding: 3rem 1.5rem;\n      text-align: center;\n      font-size: 0.95rem;\n    }\n    .cc-footer a {\n      color: #f6e05e;\n      text-decoration: none;\n    }\n    .cc-footer a:hover {\n      text-decoration: underline;\n    }\n    .cc-contact-info {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 2rem;\n      margin-bottom: 1.5rem;\n    }\n    .cc-contact-item {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n\n    \/* Smooth scroll *\/\n    html {\n      scroll-behavior: smooth;\n    }\n  <\/style>\n<\/head>\n<body>\n<div class=\"cashchat-redesign\">\n\n  <!-- Sticky Navigation -->\n  <nav class=\"cc-nav\">\n    <a href=\"#\" class=\"cc-logo\">Adase Ads<\/a>\n    <input type=\"checkbox\" id=\"cc-menu-toggle\">\n    <label for=\"cc-menu-toggle\" class=\"cc-menu-icon\">\n      <span><\/span><span><\/span><span><\/span>\n    <\/label>\n    <ul class=\"cc-nav-links\">\n      <li><a href=\"#home\">Home<\/a><\/li>\n      <li><a href=\"\/dir\/pitch\/\">Our Story<\/a><\/li>\n      <li><a href=\"#contact\">Contact<\/a><\/li>\n    <\/ul>\n  <\/nav>\n\n  <!-- Hero Section -->\n  <section class=\"cc-hero\" id=\"home\">\n    <h1>Monetizing Africa<\/h1>\n    <p>Cash Chat Bank gives you a free, secure digital wallet to send, receive, and store money right from your phone. No hidden fees, no paperwork.<\/p>\n    <!-- Create Free Wallet \u2192 https:\/\/cashchatbank.com (external, new tab) -->\n    <a href=\"https:\/\/cashchatbank.com\" class=\"cc-btn cc-btn-primary\" target=\"_blank\" rel=\"noopener noreferrer\">Create Free Wallet<\/a>\n    <!-- See More Features \u2192 https:\/\/ai.cashchatapp.com (external) -->\n    <a href=\"https:\/\/ai.cashchatapp.com\" class=\"cc-btn cc-btn-outline\" target=\"_blank\" rel=\"noopener noreferrer\">See More Features<\/a>\n  <\/section>\n\n  <!-- Registration Steps -->\n  <section class=\"cc-section\">\n    <h2>How to Register Your Wallet<\/h2>\n    <div class=\"cc-steps-grid\">\n      <div class=\"cc-step-card\">\n        <div class=\"cc-step-number\">1<\/div>\n        <h4>Download the App<\/h4>\n        <p>Get Cash Chat App from the Google Play Store or official website.<\/p>\n      <\/div>\n      <div class=\"cc-step-card\">\n        <div class=\"cc-step-number\">2<\/div>\n        <h4>Sign Up<\/h4>\n        <p>Open the app and tap &#8220;Create Account&#8221;.<\/p>\n      <\/div>\n      <div class=\"cc-step-card\">\n        <div class=\"cc-step-number\">3<\/div>\n        <h4>Verify Your Number<\/h4>\n        <p>Enter your active mobile number and verify with the OTP code sent via SMS.<\/p>\n      <\/div>\n      <div class=\"cc-step-card\">\n        <div class=\"cc-step-number\">4<\/div>\n        <h4>Set Your PIN &amp; Go<\/h4>\n        <p>Create a 6\u2011digit PIN for security. Your wallet is ready!<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Features -->\n  <section class=\"cc-section\" id=\"features\">\n    <h2>Why Cash Chat Bank?<\/h2>\n    <div class=\"cc-features-grid\">\n      <div class=\"cc-feature-card\">\n        <div class=\"cc-feature-icon\">\u26a1<\/div>\n        <h4>Instant Transactions<\/h4>\n        <p>Send and receive money in real\u2011time, 24\/7.<\/p>\n      <\/div>\n      <div class=\"cc-feature-card\">\n        <div class=\"cc-feature-icon\">\ud83d\udd12<\/div>\n        <h4>Bank\u2011Level Security<\/h4>\n        <p>Encrypted and protected with multi\u2011factor authentication.<\/p>\n      <\/div>\n      <div class=\"cc-feature-card\">\n        <div class=\"cc-feature-icon\">\ud83c\udf0d<\/div>\n        <h4>Bill Payments &amp; Airtime<\/h4>\n        <p>Pay utilities, buy airtime, and more directly from your wallet.<\/p>\n      <\/div>\n      <div class=\"cc-feature-card\">\n        <div class=\"cc-feature-icon\">\ud83d\udcf1<\/div>\n        <h4>Works Offline<\/h4>\n        <p>Check balances and initiate transactions even with slow networks.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- About Adase Ads -->\n  <section class=\"cc-section cc-about\">\n    <h2>Built by Adase Ads Ltd<\/h2>\n    <p>Cash Chat Bank is a product of <strong>Adase Ads Ltd<\/strong>, a company born from resilience. After facing challenges in the fintech licensing process, we redirected our expertise into ad\u2011tech while keeping our payment solutions alive. Our journey is a testament to innovation and persistence.<\/p>\n    <a href=\"\/dir\/pitch\/\" class=\"cc-btn cc-btn-primary\">Read Our Full Story \u2192<\/a>\n  <\/section>\n\n  <!-- CTA Banner (Register Now button remains independent; not modified per specs) -->\n  <section class=\"cc-cta-banner\">\n    <h2>Ready to take control of your money?<\/h2>\n    <p style=\"margin-bottom:1.5rem;\">Join thousands of users who trust Cash Chat Bank every day.<\/p>\n    <!-- Optional: consistent action but not overwriting spec, kept as # for neutrality -->\n    <a href=\"#\" class=\"cc-btn cc-btn-primary\">Register Now<\/a>\n  <\/section>\n\n  <!-- Footer \/ Contact -->\n  <footer class=\"cc-footer\" id=\"contact\">\n    <div class=\"cc-contact-info\">\n      <div class=\"cc-contact-item\">\n        \ud83d\udce7 <a href=\"mailto:ads@cashchat.se\">ads@cashchat.se<\/a>\n      <\/div>\n      <div class=\"cc-contact-item\">\n        \ud83d\udcde <a href=\"tel:+256775036603\">+256 775 036 603<\/a>\n      <\/div>\n      <div class=\"cc-contact-item\">\n        \ud83d\udccd P.O.BOX 207475, Kampala, Uganda\n      <\/div>\n    <\/div>\n    <p>\u00a9 2026 Adase Ads Ltd. All rights reserved. | <a href=\"\/dir\/contact\/\">Contact Us<\/a><\/p>\n  <\/footer>\n\n<\/div>\n<\/body>\n<\/html>\n\n\n\n<!--nextpage-->\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n  <title>Adase Ads Ltd | Fast SMM + Ad Platform<\/title>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\n  <style>\n    *{margin:0;padding:0;box-sizing:border-box;font-family:'Inter',sans-serif}body{background:#f5f7fb}#appMain{margin-top:30px}.container{max-width:1280px;margin:0 auto;padding:0 20px}.navbar{background:rgba(255,255,255,0.96);box-shadow:0 2px 8px rgba(0,0,0,0.03);padding:12px 0;position:sticky;top:0;z-index:100}.nav-flex{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.logo{font-weight:800;font-size:1.5rem;background:linear-gradient(135deg,#1F3A8A,#2E5AFF);-webkit-background-clip:text;background-clip:text;color:transparent}.btn-sm{padding:6px 18px;border-radius:40px;font-weight:600;border:none;cursor:pointer;background:#f0f2f5;transition:.2s}.btn-primary{background:#2E5AFF;color:#fff}.btn-primary:hover{background:#1e44cc;transform:translateY(-1px)}.card{background:#fff;border-radius:28px;padding:24px;margin-bottom:24px;border:1px solid #eef2f9;box-shadow:0 4px 12px rgba(0,0,0,0.02)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.badge{background:#eef3ff;color:#1f3a8a;padding:4px 12px;border-radius:40px;font-size:.75rem;font-weight:600;display:inline-block}input,select,textarea{width:100%;padding:10px 14px;border-radius:20px;border:1px solid #cfdfed;margin:5px 0 12px}.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}th,td{padding:10px 8px;text-align:left;border-bottom:1px solid #eef2f9}.pagination{display:flex;justify-content:center;gap:10px;margin-top:20px;flex-wrap:wrap}.pagination button{padding:5px 12px;border-radius:30px;background:#eef2f9;border:none;cursor:pointer}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:1000;justify-content:center;align-items:center}.modal-content{background:#fff;max-width:500px;width:90%;border-radius:32px;padding:24px}.close-modal{float:right;font-size:28px;cursor:pointer}@media (max-width:700px){.nav-flex{flex-direction:column;align-items:stretch}}\n  <\/style>\n<\/head>\n<body>\n<div class=\"navbar\">\n  <div class=\"container nav-flex\">\n    <div class=\"logo\">\ud83d\udce2 Adase Serve<\/div>\n    <div id=\"globalUserArea\" class=\"auth-buttons\"><\/div>\n  <\/div>\n<\/div>\n<div class=\"container\" id=\"appMain\"><div id=\"dynamicPanel\">Loading&#8230;<\/div><\/div>\n\n<script>\n  \/\/ ---------- DATA ----------\n  let users = [], ads = [], proofs = [], platformRevenue = 0, sessions = { currentUserId: null };\n  let smmOrders = [], withdrawRequests = [], contacts = [];\n  let contactsCurrentPage = 1, contactsPerPage = 20;\n\n  \/\/ ---------- CACHED DOM ----------\n  let dynamicPanel, globalUserArea;\n\n  function loadData() {\n    const stored = (key) => localStorage.getItem(key);\n    users = JSON.parse(stored('adase_users') || '[]');\n    ads = JSON.parse(stored('adase_ads') || '[]');\n    proofs = JSON.parse(stored('adase_proofs') || '[]');\n    platformRevenue = parseFloat(stored('adase_platformRevenue') || '0');\n    smmOrders = JSON.parse(stored('adase_smm_orders') || '[]');\n    withdrawRequests = JSON.parse(stored('adase_withdraw_requests') || '[]');\n    contacts = []; \/\/ reset as requested\n    localStorage.setItem('adase_contacts', '[]');\n\n    const adminEmail = \"sales@cashchat.se\", adminPass = \"Justtrade81#\";\n    const existingAdmin = users.find(u => u.email === adminEmail && u.role === 'admin');\n    if (!existingAdmin) {\n      users = users.filter(u => u.role !== 'admin');\n      users.push({ id: Date.now()+1, name:\"Super Admin\", firstName:\"Super\", lastName:\"Admin\", email:adminEmail, password:adminPass, role:\"admin\", wallet:0, advertiserWallet:0, viewedAds:[], phone:\"\", sponsorCode:\"\", country:\"\", gender:\"\", ageGroup:\"\", walletStatus:\"Active\", accountStatus:\"active\" });\n    } else existingAdmin.password = adminPass;\n\n    users = users.map(u => {\n      if(!u.firstName) u.firstName = u.name?.split(' ')[0] || \"\";\n      if(!u.lastName) u.lastName = u.name?.split(' ')[1] || \"\";\n      if(u.phone === undefined) u.phone = \"\";\n      if(u.sponsorCode === undefined) u.sponsorCode = \"\";\n      if(u.country === undefined) u.country = \"\";\n      if(u.gender === undefined) u.gender = \"\";\n      if(u.ageGroup === undefined) u.ageGroup = \"\";\n      if(u.walletStatus === undefined) u.walletStatus = (u.role === 'user' ? \"Not Active\" : \"Active\");\n      if(u.accountStatus === undefined) u.accountStatus = \"active\";\n      if(!u.name && u.firstName) u.name = (u.firstName + \" \" + u.lastName).trim();\n      return u;\n    });\n\n    if(users.length === 1) {\n      users.push({ id:1001, name:\"Demo Advertiser\", firstName:\"Demo\", lastName:\"Advertiser\", email:\"adv@demo.com\", password:\"adv123\", role:\"advertiser\", wallet:0, advertiserWallet:50000, viewedAds:[], phone:\"+256700000000\", sponsorCode:\"DEMO123\", country:\"Uganda\", gender:\"Male\", ageGroup:\"25-34\", walletStatus:\"Active\", accountStatus:\"active\" });\n      users.push({ id:1002, name:\"Alice Viewer\", firstName:\"Alice\", lastName:\"Viewer\", email:\"alice@view.com\", password:\"view123\", role:\"user\", wallet:600, advertiserWallet:0, viewedAds:[], phone:\"+256712345678\", sponsorCode:\"\", country:\"Kenya\", gender:\"Female\", ageGroup:\"18-24\", walletStatus:\"Active\", accountStatus:\"active\" });\n      if(!ads.length) ads.push({ id:201, advertiserId:1001, title:\"Cool Sneakers\", type:\"video\", mediaUrl:\"https:\/\/www.w3schools.com\/html\/mov_bbb.mp4\", dailyCostUGX:2000, specialInstructions:\"Upload receipt\", activeUntil:Date.now()+86400000, isActive:true });\n    }\n    saveAll();\n  }\n\n  function saveAll() {\n    localStorage.setItem('adase_users', JSON.stringify(users));\n    localStorage.setItem('adase_ads', JSON.stringify(ads));\n    localStorage.setItem('adase_proofs', JSON.stringify(proofs));\n    localStorage.setItem('adase_platformRevenue', platformRevenue);\n    localStorage.setItem('adase_smm_orders', JSON.stringify(smmOrders));\n    localStorage.setItem('adase_withdraw_requests', JSON.stringify(withdrawRequests));\n    localStorage.setItem('adase_contacts', JSON.stringify(contacts));\n  }\n\n  function getCurrentUser() { return sessions.currentUserId ? users.find(u => u.id === sessions.currentUserId) : null; }\n\n  function updatePlatformRevenue(amount) { platformRevenue = Math.max(0, platformRevenue + amount); localStorage.setItem('adase_platformRevenue', platformRevenue); }\n\n  \/\/ ---------- RENDER HELPERS ----------\n  function renderApp() {\n    dynamicPanel = document.getElementById('dynamicPanel');\n    globalUserArea = document.getElementById('globalUserArea');\n    if(!sessions.currentUserId) renderAuthScreen();\n    else {\n      const user = getCurrentUser();\n      if(!user || ['suspended','banned'].includes(user.accountStatus)) {\n        sessions.currentUserId = null;\n        alert(\"Account suspended or banned.\");\n        renderAuthScreen();\n        return;\n      }\n      if(user.role === 'advertiser') renderAdvertiserDashboard(user);\n      else if(user.role === 'user') renderUserDashboard(user);\n      else if(user.role === 'admin') renderAdminPanel(user);\n      else renderAuthScreen();\n    }\n    renderGlobalNav();\n  }\n\n  function renderGlobalNav() {\n    if(!globalUserArea) return;\n    if(!sessions.currentUserId) {\n      globalUserArea.innerHTML = `<button class=\"btn-sm\" id=\"showLoginBtn\">Login<\/button><button class=\"btn-sm btn-primary\" id=\"showRegisterBtn\">Register<\/button>`;\n      document.getElementById('showLoginBtn')?.addEventListener('click', () => showLoginForm());\n      document.getElementById('showRegisterBtn')?.addEventListener('click', () => showRegisterForm());\n    } else {\n      const user = getCurrentUser();\n      globalUserArea.innerHTML = `<span style=\"font-weight:500;\">\ud83d\udc4b ${user.name} (${user.role})<\/span><button class=\"btn-sm\" id=\"logoutBtn\">Logout<\/button>`;\n      document.getElementById('logoutBtn')?.addEventListener('click', () => { sessions.currentUserId = null; renderApp(); });\n    }\n  }\n\n  function showLoginForm() {\n    dynamicPanel.innerHTML = `<div class=\"card\" style=\"max-width:500px;margin:auto;\"><h2>Login<\/h2><label>Email<\/label><input id=\"loginEmail\"><label>Password<\/label><input id=\"loginPass\" type=\"password\"><button class=\"btn-primary\" id=\"doLoginBtn\" style=\"width:100%\">Login<\/button><p class=\"mt-2 text-sm\">Demo: adv@demo.com \/ adv123 | alice@view.com \/ view123<\/p><\/div>`;\n    document.getElementById('doLoginBtn')?.addEventListener('click', () => {\n      const email = document.getElementById('loginEmail').value, pwd = document.getElementById('loginPass').value;\n      const user = users.find(u => u.email === email && u.password === pwd);\n      if(user && user.accountStatus === 'active') { sessions.currentUserId = user.id; renderApp(); }\n      else if(user && user.accountStatus !== 'active') alert(\"Account suspended\/banned\");\n      else alert(\"Invalid credentials\");\n    });\n  }\n\n  function showRegisterForm() { \/* identical to original - kept for brevity *\/ \n    dynamicPanel.innerHTML = `<div class=\"card\"><h2>Create Account<\/h2><select id=\"regRole\"><option value=\"user\">Viewer<\/option><option value=\"advertiser\">Advertiser<\/option><\/select><div id=\"viewerExtraFields\" style=\"display:none;\"><div style=\"display:flex;gap:16px;\"><div><label>First Name<\/label><input id=\"regFirstName\"><\/div><div><label>Last Name<\/label><input id=\"regLastName\"><\/div><\/div><label>Phone<\/label><input id=\"regPhone\"><label>Email<\/label><input id=\"regEmail\"><label>Sponsor Code<\/label><input id=\"regSponsorCode\"><div style=\"display:flex;gap:16px;\"><div><label>Country<\/label><input id=\"regCountry\"><\/div><div><label>Gender<\/label><select id=\"regGender\"><option>Male<\/option><option>Female<\/option><\/select><\/div><div><label>Age Group<\/label><select id=\"regAgeGroup\"><option>18-24<\/option><option>25-34<\/option><option>35-44<\/option><option>45+<\/option><\/select><\/div><\/div><label>Wallet Status<\/label><select id=\"regWalletStatus\"><option>Not Active<\/option><option>Active<\/option><\/select><\/div><div id=\"advertiserSimpleFields\"><label>Full Name<\/label><input id=\"regNameSimple\"><label>Email<\/label><input id=\"regEmailSimple\"><\/div><label>Password<\/label><input id=\"regPass\" type=\"password\"><button class=\"btn-primary\" id=\"doRegBtn\">Sign up<\/button><\/div>`;\n    const roleSel = document.getElementById('regRole'), viewerDiv = document.getElementById('viewerExtraFields'), advDiv = document.getElementById('advertiserSimpleFields');\n    roleSel.onchange = () => { const isViewer = roleSel.value === 'user'; viewerDiv.style.display = isViewer ? 'block' : 'none'; advDiv.style.display = isViewer ? 'none' : 'block'; };\n    roleSel.dispatchEvent(new Event('change'));\n    document.getElementById('doRegBtn').onclick = () => {\n      const role = roleSel.value, pwd = document.getElementById('regPass').value;\n      if(!pwd) return alert(\"Password required\");\n      if(role === 'user') {\n        const fname = document.getElementById('regFirstName').value.trim(), lname = document.getElementById('regLastName').value.trim(), phone = document.getElementById('regPhone').value.trim(), email = document.getElementById('regEmail').value.trim(), sponsor = document.getElementById('regSponsorCode').value.trim(), country = document.getElementById('regCountry').value.trim(), gender = document.getElementById('regGender').value, age = document.getElementById('regAgeGroup').value, walletStat = document.getElementById('regWalletStatus').value;\n        if(!fname || !lname || !phone || !email) return alert(\"All fields required\");\n        if(users.find(u=>u.email===email)) return alert(\"Email exists\");\n        users.push({ id:Date.now(), name:fname+\" \"+lname, firstName:fname, lastName:lname, email, password:pwd, role:\"user\", wallet:0, advertiserWallet:0, viewedAds:[], phone, sponsorCode:sponsor, country, gender, ageGroup:age, walletStatus:walletStat, accountStatus:\"active\" });\n        saveAll(); alert(\"Registered! Login.\"); showLoginForm();\n      } else {\n        const full = document.getElementById('regNameSimple').value.trim(), email = document.getElementById('regEmailSimple').value.trim();\n        if(!full || !email) return alert(\"Fill all fields\");\n        if(users.find(u=>u.email===email)) return alert(\"Email exists\");\n        users.push({ id:Date.now(), name:full, firstName:full.split(' ')[0], lastName:full.split(' ')[1]||\"\", email, password:pwd, role:\"advertiser\", wallet:0, advertiserWallet:0, viewedAds:[], phone:\"\", sponsorCode:\"\", country:\"\", gender:\"\", ageGroup:\"\", walletStatus:\"Active\", accountStatus:\"active\" });\n        saveAll(); alert(\"Advertiser created!\"); showLoginForm();\n      }\n    };\n  }\n\n  function renderAuthScreen() { dynamicPanel.innerHTML = `<div class=\"card text-center\"><h3>Welcome to Adase Serve<\/h3><p>Earn points by watching ads, or run campaigns.<\/p><button class=\"btn-primary\" id=\"gotoLoginBtn\">Login \/ Register<\/button><\/div>`; document.getElementById('gotoLoginBtn')?.addEventListener('click', showLoginForm); }\n\n  \/\/ ----- USER DASHBOARD (simplified, same functionality) -----\n  function renderUserDashboard(user) {\n    if(user.walletStatus !== \"Active\") { dynamicPanel.innerHTML = `<div class=\"card\"><h3>\u26a0\ufe0f Wallet Not Active<\/h3><p>Contact admin.<\/p><\/div>`; return; }\n    const activeAds = ads.filter(ad => ad.isActive && ad.activeUntil > Date.now());\n    const points = Math.floor(user.wallet\/3);\n    const pending = withdrawRequests.filter(r => r.userId === user.id && r.status === 'pending').length;\n    dynamicPanel.innerHTML = `<div class=\"flex-between\"><h2>\ud83c\udfac Watch & Earn<\/h2><span class=\"badge\">\ud83d\udcb0 ${user.wallet} UGX (${points} pts)<\/span><\/div>\n      <div class=\"card\"><div class=\"flex-between\"><span>\u2b50 1 point = UGX 3<\/span><button id=\"requestWithdrawBtn\" class=\"btn-primary\" ${user.wallet<1500?'disabled':''}>Withdraw 1500 UGX<\/button><\/div>${pending?`<p class=\"badge\">${pending} pending<\/p>`:''}<\/div>\n      <div class=\"card\"><h3>\ud83d\udcfa Active Ads<\/h3><div id=\"viewerAdsList\"><\/div><\/div>\n      <div class=\"card\"><h3>\ud83d\udce4 My proofs<\/h3><div id=\"viewerProofHistory\"><\/div><\/div>`;\n    document.getElementById('requestWithdrawBtn')?.addEventListener('click', () => { if(user.wallet>=1500){ withdrawRequests.push({id:Date.now(), userId:user.id, amount:1500, status:'pending', date:new Date().toISOString()}); saveAll(); alert(\"Request submitted.\"); renderUserDashboard(getCurrentUser()); } else alert(\"Insufficient\"); });\n    const container = document.getElementById('viewerAdsList');\n    if(!activeAds.length) container.innerHTML = \"<p>No active ads.<\/p>\";\n    else {\n      container.innerHTML = activeAds.map(ad => `<div style=\"border:1px solid #eef; border-radius:24px; padding:16px; margin-bottom:18px;\"><h4>${ad.title}<\/h4><div>${ad.type==='video'?`<video controls src=\"${ad.mediaUrl}\" style=\"max-width:100%\"><\/video>`:ad.type==='audio'?`<audio controls src=\"${ad.mediaUrl}\"><\/audio>`:`<img decoding=\"async\" src=\"${ad.mediaUrl}\" style=\"max-width:100%; border-radius:12px;\">`}<\/div>${ad.specialInstructions?`<p>\u26a0\ufe0f ${ad.specialInstructions}<\/p>`:''}${!user.viewedAds?.includes(ad.id)?`<button class=\"btn-sm btn-primary\" data-viewad=\"${ad.id}\">\u2705 Earn 3 UGX<\/button>`:`<span class=\"badge\">Claimed<\/span>`} ${ad.specialInstructions?`<button class=\"btn-sm btn-outline\" data-proofad=\"${ad.id}\">\ud83d\udcce Proof<\/button>`:''}<\/div>`).join('');\n      document.querySelectorAll('[data-viewad]').forEach(btn => btn.addEventListener('click', (e) => { const adId = parseInt(btn.dataset.viewad); const ad = ads.find(a=>a.id===adId); if(ad && !user.viewedAds.includes(adId)){ user.viewedAds.push(adId); user.wallet+=3; saveAll(); alert(`+3 UGX`); renderUserDashboard(getCurrentUser()); } else alert(\"Already claimed.\"); }));\n      document.querySelectorAll('[data-proofad]').forEach(btn => btn.addEventListener('click', (e) => { const adId = parseInt(btn.dataset.proofad); const ad = ads.find(a=>a.id===adId); const txt = prompt(`Proof for ${ad.title}:`); if(txt?.trim()){ proofs.push({id:Date.now(), adId, userId:user.id, userName:user.name, proofText:txt.trim(), timestamp:Date.now()}); saveAll(); alert(\"Proof submitted!\"); renderUserDashboard(getCurrentUser()); } }));\n    }\n    const historyDiv = document.getElementById('viewerProofHistory');\n    const userProofs = proofs.filter(p => p.userId === user.id);\n    historyDiv.innerHTML = userProofs.length ? userProofs.map(p=>`<div>${p.proofText}<\/div>`).join('') : \"<p>No proofs.<\/p>\";\n  }\n\n  \/\/ ----- ADMIN PANEL (optimized with lazy exports) -----\n  function renderAdminPanel(admin) {\n    const allUsers = users.filter(u => u.role !== 'admin');\n    const pendingWithdrawals = withdrawRequests.filter(r => r.status === 'pending');\n    dynamicPanel.innerHTML = `\n      <div class=\"flex-between\"><h2>\ud83d\udee1\ufe0f Admin Console<\/h2><span class=\"badge\">Platform: UGX ${platformRevenue.toFixed(0)}<\/span><\/div>\n      <div class=\"grid-2\">\n        <div class=\"card\"><h3>\ud83d\udc65 Users<\/h3><div class=\"search-box\"><input id=\"searchUser\" placeholder=\"Search\"><button id=\"searchUserBtn\" class=\"btn-sm\">\ud83d\udd0d<\/button><\/div><div id=\"usersTableContainer\"><table id=\"usersTable\"><thead><tr><th>ID<\/th><th>Name<\/th><th>Email<\/th><th>Role<\/th><th>Status<\/th><th>Actions<\/th><\/tr><\/thead><tbody><\/tbody><\/table><\/div><\/div>\n        <div class=\"card\"><h3>\ud83d\udcb0 Withdrawals<\/h3><div id=\"withdrawalsList\"><\/div><\/div>\n      <\/div>\n      <div class=\"card\"><h3>\ud83d\udcc1 Contacts (CSV: Status,First Name,Last Name,Phone,Email,Sponsor Code)<\/h3>\n        <input type=\"file\" id=\"contactsCsv\" accept=\".csv\"><button id=\"uploadContactsBtn\" class=\"btn-sm\">Upload CSV<\/button> \n        <button id=\"downloadContactsExcel\" class=\"btn-sm\">Excel<\/button> <button id=\"downloadContactsPdf\" class=\"btn-sm\">PDF<\/button>\n        <div style=\"margin:15px 0\"><label>Show entries: <\/label><select id=\"perPageSelect\"><option value=\"20\">20<\/option><option value=\"50\">50<\/option><option value=\"100\">100<\/option><option value=\"200\">200<\/option><\/select><\/div>\n        <div id=\"contactsPreview\"><\/div><div id=\"paginationControls\" class=\"pagination\"><\/div>\n      <\/div>\n      <div class=\"card\"><h3>\u2709\ufe0f Broadcast<\/h3><label>Subject<\/label><input id=\"emailSubject\"><label>Message<\/label><textarea id=\"emailMessage\" rows=\"3\"><\/textarea><button id=\"sendEmailBtn\" class=\"btn-primary\">Send to All<\/button><\/div>`;\n    \/\/ User table rendering\n    function renderUsersTable(filter=\"\") {\n      const filtered = allUsers.filter(u => u.name.toLowerCase().includes(filter.toLowerCase()) || u.email.toLowerCase().includes(filter.toLowerCase()));\n      const tbody = document.querySelector('#usersTable tbody');\n      if(tbody) {\n        tbody.innerHTML = filtered.map(u => `<tr><td>${u.id}<\/td><td>${u.name}<\/td><td>${u.email}<\/td><td>${u.role}<\/td><td><span class=\"badge\" style=\"background:${u.accountStatus==='active'?'#d1fae5':'#fee2e2'}\">${u.accountStatus}<\/span><\/td><td><button class=\"btn-sm\" data-action=\"edit\" data-id=\"${u.id}\">\u270f\ufe0f<\/button> ${u.accountStatus==='active'?`<button class=\"btn-sm btn-warning\" data-action=\"suspend\" data-id=\"${u.id}\">Suspend<\/button>`:`<button class=\"btn-sm\" data-action=\"unsuspend\" data-id=\"${u.id}\">Unsuspend<\/button>`} ${u.accountStatus!=='banned'?`<button class=\"btn-sm btn-danger\" data-action=\"ban\" data-id=\"${u.id}\">Ban<\/button>`:`<button class=\"btn-sm\" data-action=\"restore\" data-id=\"${u.id}\">Restore<\/button>`} <button class=\"btn-sm\" data-action=\"credit\" data-id=\"${u.id}\">\ud83d\udcb0<\/button><\/td><\/tr>`).join('');\n        document.querySelectorAll('[data-action]').forEach(btn => btn.addEventListener('click', (e) => {\n          const action = btn.dataset.action, userId = parseInt(btn.dataset.id);\n          const target = users.find(u => u.id === userId);\n          if(!target) return;\n          if(action === 'edit') openEditModal(target);\n          else if(action === 'suspend') { target.accountStatus='suspended'; saveAll(); renderUsersTable(filter); }\n          else if(action === 'unsuspend') { target.accountStatus='active'; saveAll(); renderUsersTable(filter); }\n          else if(action === 'ban') { target.accountStatus='banned'; saveAll(); renderUsersTable(filter); }\n          else if(action === 'restore') { target.accountStatus='active'; saveAll(); renderUsersTable(filter); }\n          else if(action === 'credit') { let amt = prompt(\"Add UGX to earnings:\"); if(amt && !isNaN(amt)) { target.wallet += parseFloat(amt); saveAll(); renderUsersTable(filter); } }\n        }));\n      }\n    }\n    renderUsersTable();\n    document.getElementById('searchUserBtn')?.addEventListener('click', () => renderUsersTable(document.getElementById('searchUser').value));\n    \/\/ Withdrawals\n    const withdrawalsDiv = document.getElementById('withdrawalsList');\n    if(pendingWithdrawals.length===0) withdrawalsDiv.innerHTML = \"<p>No pending withdrawals.<\/p>\";\n    else {\n      withdrawalsDiv.innerHTML = pendingWithdrawals.map(w => { const u = users.find(u=>u.id===w.userId); return `<div class=\"flex-between\"><span>${u?.name} (${u?.email}) - UGX ${w.amount}<\/span><div><button class=\"btn-sm btn-primary\" data-wid=\"${w.id}\" data-action=\"approve\">Approve<\/button> <button class=\"btn-sm btn-danger\" data-wid=\"${w.id}\" data-action=\"reject\">Reject<\/button><\/div><\/div>`; }).join('');\n      document.querySelectorAll('[data-wid]').forEach(btn => btn.addEventListener('click', (e) => {\n        const wid = parseInt(btn.dataset.wid), action = btn.dataset.action;\n        const req = withdrawRequests.find(r=>r.id===wid);\n        if(!req) return;\n        const user = users.find(u=>u.id===req.userId);\n        if(action === 'approve') {\n          if(user.wallet >= req.amount) { user.wallet -= req.amount; updatePlatformRevenue(-req.amount); req.status='approved'; alert(\"Approved\"); }\n          else alert(\"Insufficient balance\");\n        } else if(action === 'reject') { req.status='rejected'; alert(\"Rejected\"); }\n        saveAll(); renderAdminPanel(admin);\n      }));\n    }\n    \/\/ Contacts pagination\n    function refreshContactsPreview() {\n      const previewDiv = document.getElementById('contactsPreview');\n      if(!previewDiv) return;\n      if(!contacts.length) { previewDiv.innerHTML = \"<p>No contacts uploaded.<\/p>\"; document.getElementById('paginationControls').innerHTML = ''; return; }\n      const total = contacts.length, totalPages = Math.ceil(total\/contactsPerPage);\n      if(contactsCurrentPage < 1) contactsCurrentPage = 1;\n      if(contactsCurrentPage > totalPages) contactsCurrentPage = totalPages;\n      const start = (contactsCurrentPage-1)*contactsPerPage, pageContacts = contacts.slice(start, start+contactsPerPage);\n      previewDiv.innerHTML = `<table><thead><tr><th>Status<\/th><th>First Name<\/th><th>Last Name<\/th><th>Phone<\/th><th>Email<\/th><th>Sponsor Code<\/th><\/tr><\/thead><tbody>${pageContacts.map(c => `<tr><td>${c.status||''}<\/td><td>${c.firstName}<\/td><td>${c.lastName}<\/td><td>${c.phone}<\/td><td>${c.email}<\/td><td>${c.sponsorCode||''}<\/td><\/tr>`).join('')}<\/tbody><\/table>`;\n      const paginationDiv = document.getElementById('paginationControls');\n      paginationDiv.innerHTML = `<button id=\"firstPage\" ${contactsCurrentPage===1?'disabled':''}>\u00ab First<\/button><button id=\"prevPage\" ${contactsCurrentPage===1?'disabled':''}>\u2039 Prev<\/button><span>Page ${contactsCurrentPage} of ${totalPages}<\/span><button id=\"nextPage\" ${contactsCurrentPage===totalPages?'disabled':''}>Next \u203a<\/button><button id=\"lastPage\" ${contactsCurrentPage===totalPages?'disabled':''}>Last \u00bb<\/button>`;\n      document.getElementById('firstPage')?.addEventListener('click',()=>{ contactsCurrentPage=1; refreshContactsPreview(); });\n      document.getElementById('prevPage')?.addEventListener('click',()=>{ if(contactsCurrentPage>1) contactsCurrentPage--; refreshContactsPreview(); });\n      document.getElementById('nextPage')?.addEventListener('click',()=>{ if(contactsCurrentPage<totalPages) contactsCurrentPage++; refreshContactsPreview(); });\n      document.getElementById('lastPage')?.addEventListener('click',()=>{ contactsCurrentPage=totalPages; refreshContactsPreview(); });\n    }\n    document.getElementById('perPageSelect')?.addEventListener('change', (e) => { contactsPerPage = parseInt(e.target.value); contactsCurrentPage=1; refreshContactsPreview(); });\n    \/\/ Upload CSV\n    document.getElementById('uploadContactsBtn')?.addEventListener('click', () => {\n      const file = document.getElementById('contactsCsv').files[0];\n      if(!file) return alert(\"Select CSV\");\n      const reader = new FileReader();\n      reader.onload = function(e) {\n        const rows = e.target.result.split(\/\\r?\\n\/);\n        let newContacts = [];\n        for(let i=0;i<rows.length;i++) {\n          let line = rows[i].trim();\n          if(!line) continue;\n          let parts = line.split(',');\n          if(parts.length<6) { alert(`Row ${i+1} has <6 columns. Skipping.`); continue; }\n          let [status, firstName, lastName, phone, email, sponsorCode] = parts.map(p=>p.trim());\n          if(!firstName && !lastName && !email) continue;\n          newContacts.push({ id:Date.now()+i, status, firstName, lastName, phone, email, sponsorCode });\n        }\n        contacts.push(...newContacts); saveAll(); alert(`Added ${newContacts.length} contacts.`); contactsCurrentPage=1; refreshContactsPreview();\n      };\n      reader.readAsText(file);\n    });\n    \/\/ Lazy load SheetJS for Excel export\n    document.getElementById('downloadContactsExcel')?.addEventListener('click', () => {\n      if(!window.XLSX) {\n        const script = document.createElement('script');\n        script.src = \"https:\/\/cdn.sheetjs.com\/xlsx-0.20.2\/package\/dist\/xlsx.full.min.js\";\n        script.onload = () => exportExcel();\n        document.head.appendChild(script);\n      } else exportExcel();\n      function exportExcel() {\n        const wsData = contacts.map(c => ({ \"Status\":c.status||'', \"First Name\":c.firstName, \"Last Name\":c.lastName, \"Phone\":c.phone, \"Email\":c.email, \"Sponsor Code\":c.sponsorCode||'' }));\n        const ws = XLSX.utils.json_to_sheet(wsData);\n        const wb = XLSX.utils.book_new();\n        XLSX.utils.book_append_sheet(wb, ws, \"Contacts\");\n        XLSX.writeFile(wb, `contacts_${new Date().toISOString().slice(0,19)}.xlsx`);\n      }\n    });\n    \/\/ Lazy load html2pdf for PDF export\n    document.getElementById('downloadContactsPdf')?.addEventListener('click', () => {\n      if(!window.html2pdf) {\n        const script = document.createElement('script');\n        script.src = \"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2pdf.js\/0.10.1\/html2pdf.bundle.min.js\";\n        script.onload = () => exportPdf();\n        document.head.appendChild(script);\n      } else exportPdf();\n      function exportPdf() {\n        const tempDiv = document.createElement('div');\n        tempDiv.innerHTML = `<table border=\"1\" cellpadding=\"5\"><thead><tr><th>Status<\/th><th>First Name<\/th><th>Last Name<\/th><th>Phone<\/th><th>Email<\/th><th>Sponsor Code<\/th><\/tr><\/thead><tbody>${contacts.map(c => `<tr><td>${c.status||''}<\/td><td>${c.firstName}<\/td><td>${c.lastName}<\/td><td>${c.phone}<\/td><td>${c.email}<\/td><td>${c.sponsorCode||''}<\/td><\/tr>`).join('')}<\/tbody><\/table>`;\n        document.body.appendChild(tempDiv);\n        html2pdf().from(tempDiv).set({ margin:0.5, filename:'contacts.pdf', html2canvas:{scale:2} }).save().then(()=>tempDiv.remove());\n      }\n    });\n    \/\/ Email broadcast (simulated)\n    document.getElementById('sendEmailBtn')?.addEventListener('click', () => {\n      const subj = document.getElementById('emailSubject').value, msg = document.getElementById('emailMessage').value;\n      if(!subj || !msg) return alert(\"Fill subject & message\");\n      allUsers.forEach(u => console.log(`To ${u.email}: ${subj} - ${msg.replace(\/{name}\/g, u.name)}`));\n      alert(`Email sent to ${allUsers.length} users (simulated).`);\n    });\n    refreshContactsPreview();\n  }\n\n  function openEditModal(user) {\n    const modal = document.createElement('div'); modal.className = 'modal'; modal.style.display = 'flex';\n    modal.innerHTML = `<div class=\"modal-content\"><span class=\"close-modal\">&times;<\/span><h3>Edit User<\/h3><label>First Name<\/label><input id=\"editFirstName\" value=\"${user.firstName}\"><label>Last Name<\/label><input id=\"editLastName\" value=\"${user.lastName}\"><label>Email<\/label><input id=\"editEmail\" value=\"${user.email}\"><label>Phone<\/label><input id=\"editPhone\" value=\"${user.phone||''}\"><label>Country<\/label><input id=\"editCountry\" value=\"${user.country||''}\"><label>Gender<\/label><select id=\"editGender\"><option ${user.gender==='Male'?'selected':''}>Male<\/option><option ${user.gender==='Female'?'selected':''}>Female<\/option><\/select><label>Age Group<\/label><select id=\"editAgeGroup\"><option ${user.ageGroup==='18-24'?'selected':''}>18-24<\/option><option ${user.ageGroup==='25-34'?'selected':''}>25-34<\/option><option ${user.ageGroup==='35-44'?'selected':''}>35-44<\/option><option ${user.ageGroup==='45+'?'selected':''}>45+<\/option><\/select><label>Wallet Status<\/label><select id=\"editWalletStatus\"><option ${user.walletStatus==='Active'?'selected':''}>Active<\/option><option ${user.walletStatus==='Not Active'?'selected':''}>Not Active<\/option><\/select><button class=\"btn-primary\" id=\"saveUserEdit\">Save<\/button><\/div>`;\n    document.body.appendChild(modal);\n    modal.querySelector('.close-modal').onclick = () => modal.remove();\n    modal.querySelector('#saveUserEdit').onclick = () => {\n      user.firstName = modal.querySelector('#editFirstName').value;\n      user.lastName = modal.querySelector('#editLastName').value;\n      user.name = user.firstName + \" \" + user.lastName;\n      user.email = modal.querySelector('#editEmail').value;\n      user.phone = modal.querySelector('#editPhone').value;\n      user.country = modal.querySelector('#editCountry').value;\n      user.gender = modal.querySelector('#editGender').value;\n      user.ageGroup = modal.querySelector('#editAgeGroup').value;\n      user.walletStatus = modal.querySelector('#editWalletStatus').value;\n      saveAll(); alert(\"Updated\"); modal.remove(); renderAdminPanel(getCurrentUser());\n    };\n  }\n\n  \/\/ ----- ADVERTISER DASHBOARD (simplified) -----\n  function renderAdvertiserDashboard(user) {\n    const myAds = ads.filter(ad => ad.advertiserId === user.id);\n    dynamicPanel.innerHTML = `<div class=\"flex-between\"><h2>\ud83d\udce2 Advertiser Hub<\/h2><span class=\"badge\">\ud83d\udcb0 Wallet: ${user.advertiserWallet.toFixed(0)} UGX<\/span><\/div>\n      <div class=\"grid-2\"><div class=\"card\"><h3>\u2795 Create Ad<\/h3><input id=\"adTitle\" placeholder=\"Title\"><select id=\"adType\"><option>video<\/option><option>audio<\/option><option>banner<\/option><\/select><input id=\"adMedia\" placeholder=\"Media URL\"><textarea id=\"adInstructions\" placeholder=\"Instructions\"><\/textarea><select id=\"dailyCostSelect\"><option value=\"2000\">UGX 2,000<\/option><option value=\"3800\">$1 (3800 UGX)<\/option><\/select><button id=\"createAdBtn\" class=\"btn-primary\">Create<\/button><\/div>\n      <div class=\"card\"><h3>\ud83d\udcb0 Fund Wallet<\/h3><input id=\"fundAmount\" value=\"10000\"><select id=\"payMethod\"><option>MTN<\/option><option>Airtel<\/option><option>Mpesa<\/option><option>Visa<\/option><option>PayPal<\/option><\/select><button id=\"fundWalletBtn\" class=\"btn-primary\">Add funds<\/button><hr><h4>My Ads<\/h4><div id=\"advertiserAdsList\"><\/div><\/div><\/div>\n      <div id=\"smmServicesContainer\" class=\"card\"><\/div>`;\n    document.getElementById('createAdBtn')?.addEventListener('click', () => {\n      const title = document.getElementById('adTitle').value, type = document.getElementById('adType').value, media = document.getElementById('adMedia').value, inst = document.getElementById('adInstructions').value, cost = document.getElementById('dailyCostSelect').value===\"2000\"?2000:3800;\n      if(!title || !media) return alert(\"Required\");\n      ads.push({ id:Date.now(), advertiserId:user.id, title, type, mediaUrl:media, specialInstructions:inst, dailyCostUGX:cost, activeUntil:null, isActive:false });\n      saveAll(); alert(\"Ad created\"); renderAdvertiserDashboard(user);\n    });\n    document.getElementById('fundWalletBtn')?.addEventListener('click', () => { let amt = parseFloat(document.getElementById('fundAmount').value); if(amt>0){ user.advertiserWallet+=amt; saveAll(); alert(\"Funds added\"); renderAdvertiserDashboard(user); } });\n    const adsDiv = document.getElementById('advertiserAdsList');\n    adsDiv.innerHTML = myAds.map(ad => `<div><strong>${ad.title}<\/strong> - ${ad.isActive && ad.activeUntil>Date.now() ? 'Active' : 'Inactive'} <button class=\"btn-sm\" data-adid=\"${ad.id}\">Activate (${ad.dailyCostUGX} UGX)<\/button><\/div>`).join('');\n    document.querySelectorAll('[data-adid]').forEach(btn => btn.addEventListener('click', () => {\n      const adId = parseInt(btn.dataset.adid), ad = ads.find(a=>a.id===adId);\n      if(ad && user.advertiserWallet >= ad.dailyCostUGX) { user.advertiserWallet -= ad.dailyCostUGX; ad.isActive=true; ad.activeUntil=Date.now()+86400000; updatePlatformRevenue(ad.dailyCostUGX); saveAll(); alert(\"Activated\"); renderAdvertiserDashboard(user); }\n      else alert(\"Insufficient balance\");\n    }));\n    const smmDiv = document.getElementById('smmServicesContainer');\n    if(smmDiv) {\n      smmDiv.innerHTML = `<h3>SMM Services<\/h3><button class=\"btn-primary\" id=\"buySmmDemo\">Buy Demo (1000 Views = 10326 UGX)<\/button>`;\n      document.getElementById('buySmmDemo')?.addEventListener('click', () => { if(user.advertiserWallet >= 10326) { user.advertiserWallet -= 10326; updatePlatformRevenue(10326); saveAll(); alert(\"Order placed!\"); renderAdvertiserDashboard(user); } else alert(\"Insufficient wallet\"); });\n    }\n  }\n\n  loadData();\n  renderApp();\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads Ltd \u2013 Fast Service Dashboard Adase Ads Ltd Zion Road 12 AAA Close, Kira Prices shown per unit (\u00d730 markup) \u26a1 Blazing fast | Real\u2011time filtering \ud83d\udcc1 All categories \ud83d\udd22 ID (Ascending)\ud83d\udcb0 Price (Low \u2192 High)\ud83d\udcb0 Price (High \u2192 Low)\ud83d\udcdd Name A \u2192 Z Reset 0 services Category ID Service Name Min Order [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-81","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/comments?post=81"}],"version-history":[{"count":15,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/81\/revisions"}],"predecessor-version":[{"id":278,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/81\/revisions\/278"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}