{"id":38851,"date":"2026-08-22T18:25:04","date_gmt":"2026-08-22T16:25:04","guid":{"rendered":"https:\/\/geeksco.co.za\/?page_id=38851"},"modified":"2026-08-26T23:41:06","modified_gmt":"2026-08-26T21:41:06","slug":"asdf","status":"publish","type":"page","link":"https:\/\/geeksco.co.za\/?page_id=38851","title":{"rendered":"Wedding Photos"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/geeksco.co.za\/wp-content\/uploads\/2026\/08\/1001257499.png&#8221; parallax=&#8221;on&#8221; background_blend=&#8221;screen&#8221; min_height=&#8221;883px&#8221; background_last_edited=&#8221;on|phone&#8221; background_blend_phone=&#8221;screen&#8221; global_colors_info=&#8221;{}&#8221; background__hover_enabled=&#8221;off|desktop&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_heading title=&#8221;Share Photos&#8221; admin_label=&#8221;Heading&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; title_font=&#8221;Holtwood One SC|700|||||||&#8221; title_text_align=&#8221;center&#8221; title_text_color=&#8221;#000000&#8243; box_shadow_style=&#8221;preset6&#8243; text_shadow_style=&#8221;preset5&#8243; text_shadow_color=&#8221;#50c878&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_heading][et_pb_heading title=&#8221; You Captured With us&#8221; admin_label=&#8221;Heading&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; title_font=&#8221;Holtwood One SC|700|||||||&#8221; title_text_align=&#8221;center&#8221; title_text_color=&#8221;#000000&#8243; box_shadow_style=&#8221;preset6&#8243; text_shadow_style=&#8221;preset5&#8243; text_shadow_color=&#8221;#50c878&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_heading][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<div style=\"text-align:center; padding: 20px; font-family: sans-serif;\"><!-- [et_pb_line_break_holder] -->    <input type=\"file\" id=\"wedding-photos\" accept=\"image\/*\" multiple style=\"display:none;\" onchange=\"uploadToDrive()\"><!-- [et_pb_line_break_holder] -->    <button onclick=\"document.getElementById('wedding-photos').click()\" style=\"padding: 15px 30px; font-size: 18px; background: #800020; color: white; border: none; border-radius: 155px; cursor: pointer; font-weight: bold; width: 100%; max-width: 300px; box-shadow: 0 4px 30px #50C878;\"><!-- [et_pb_line_break_holder] -->        \ud83d\udcf8 Select 10 Photos To Upload<!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"progress-container\" style=\"display: none; width: 100%; max-width: 300px; margin: 20px auto 0; background-color: #e0e0e0; border-radius: 10px; overflow: hidden; height: 12px; box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div id=\"progress-bar\" style=\"width: 0%; height: 100%; background-color: #4CAF50; transition: width 0.4s ease;\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"upload-status\" style=\"margin-top: 20px; font-size: 20px; font-weight: bold; color: #333; line-height: 1.6; white-space: pre-wrap; text-shadow: 0 1px 1px #50C878;\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->let wakeLock = null;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->async function requestWakeLock() {<!-- [et_pb_line_break_holder] -->    try {<!-- [et_pb_line_break_holder] -->        if ('wakeLock' in navigator) {<!-- [et_pb_line_break_holder] -->            wakeLock = await navigator.wakeLock.request('screen');<!-- [et_pb_line_break_holder] -->            console.log('Screen Wake Lock active');<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    } catch (err) {<!-- [et_pb_line_break_holder] -->        console.error(`Wake Lock error: ${err.message}`);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->async function releaseWakeLock() {<!-- [et_pb_line_break_holder] -->    if (wakeLock !== null) {<!-- [et_pb_line_break_holder] -->        await wakeLock.release();<!-- [et_pb_line_break_holder] -->        wakeLock = null;<!-- [et_pb_line_break_holder] -->        console.log('Screen Wake Lock released');<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->async function uploadToDrive() {<!-- [et_pb_line_break_holder] -->    const fileInput = document.getElementById('wedding-photos');<!-- [et_pb_line_break_holder] -->    let files = Array.from(fileInput.files); \/\/ Converted to Array so we can limit it<!-- [et_pb_line_break_holder] -->    const statusText = document.getElementById('upload-status');<!-- [et_pb_line_break_holder] -->    const progressContainer = document.getElementById('progress-container');<!-- [et_pb_line_break_holder] -->    const progressBar = document.getElementById('progress-bar');<!-- [et_pb_line_break_holder] -->    const webAppUrl = 'https:\/\/script.google.com\/macros\/s\/AKfycbwlx5jsNb3X3EphVO1h38WKXl5fkyXsnw3EQzEctLVMF_XumoC692a6rgoslI16F5szig\/exec'; <!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (!files || files.length === 0) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ NEW: Limit to 10 photos per upload batch<!-- [et_pb_line_break_holder] -->    if (files.length > 10) {<!-- [et_pb_line_break_holder] -->        alert(\"To ensure a smooth upload, please select a maximum of 10 photos at a time. We will process your first 10 selections now.\");<!-- [et_pb_line_break_holder] -->        files = files.slice(0, 10);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    progressContainer.style.display = 'block';<!-- [et_pb_line_break_holder] -->    progressBar.style.width = '0%';<!-- [et_pb_line_break_holder] -->    progressBar.style.backgroundColor = '#4CAF50';<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    await requestWakeLock();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    let successCount = 0;<!-- [et_pb_line_break_holder] -->    let failCount = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    for (let i = 0; i < files.length; i++) {<!-- [et_pb_line_break_holder] -->        let file = files[i];<!-- [et_pb_line_break_holder] -->        statusText.innerText = `Processing photo ${i + 1} of ${files.length}...\\n(Uploaded: ${successCount} | Failed: ${failCount})`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        try {<!-- [et_pb_line_break_holder] -->            let base64 = await resizeAndBase64(file, 2048, 0.80);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let formData = new URLSearchParams();<!-- [et_pb_line_break_holder] -->            let cleanName = file.name.replace(\/[^a-zA-Z0-9.-]\/g, '_');<!-- [et_pb_line_break_holder] -->            formData.append('fileName', cleanName);<!-- [et_pb_line_break_holder] -->            formData.append('mimeType', 'image\/jpeg');<!-- [et_pb_line_break_holder] -->            formData.append('fileData', base64);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            await uploadWithRetry(webAppUrl, formData, 20, statusText, i + 1, files.length);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            successCount++;<!-- [et_pb_line_break_holder] -->            await new Promise(r => setTimeout(r, 1000));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        } catch (err) {<!-- [et_pb_line_break_holder] -->            console.error(\"Final error on file: \" + file.name, err);<!-- [et_pb_line_break_holder] -->            failCount++;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        let percentComplete = ((i + 1) \/ files.length) * 100;<!-- [et_pb_line_break_holder] -->        progressBar.style.width = percentComplete + '%';<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    statusText.innerText = `\ud83c\udf89 Done! Successfully uploaded ${successCount} of ${files.length} photos.`;<!-- [et_pb_line_break_holder] -->    if (failCount > 0) {<!-- [et_pb_line_break_holder] -->        statusText.innerText += `\\n\u26a0\ufe0f ${failCount} photos failed due to persistent network issues.`;<!-- [et_pb_line_break_holder] -->        progressBar.style.backgroundColor = '#f44336';<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    fileInput.value = \"\"; <!-- [et_pb_line_break_holder] -->    await releaseWakeLock();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Internal auto-retry for weak network signals (runs invisibly in the background)<!-- [et_pb_line_break_holder] -->async function uploadWithRetry(url, formData, maxRetries, statusElement, currentNum, totalNum) {<!-- [et_pb_line_break_holder] -->    for (let attempt = 1; attempt <= maxRetries; attempt++) {<!-- [et_pb_line_break_holder] -->        try {<!-- [et_pb_line_break_holder] -->            await fetch(url, { method: 'POST', mode: 'no-cors', body: formData });<!-- [et_pb_line_break_holder] -->            return true;<!-- [et_pb_line_break_holder] -->        } catch (error) {<!-- [et_pb_line_break_holder] -->            if (attempt === maxRetries) {<!-- [et_pb_line_break_holder] -->                throw error; <!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->            statusElement.innerText = `Network drop detected.\\nRetrying photo ${currentNum} of ${totalNum} (Attempt ${attempt + 1}\/${maxRetries})...`;<!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->            await new Promise(r => setTimeout(r, 30000));<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function resizeAndBase64(file, maxDimension, quality) {<!-- [et_pb_line_break_holder] -->    return new Promise((resolve, reject) => {<!-- [et_pb_line_break_holder] -->        const reader = new FileReader();<!-- [et_pb_line_break_holder] -->        reader.readAsDataURL(file);<!-- [et_pb_line_break_holder] -->        reader.onload = (event) => {<!-- [et_pb_line_break_holder] -->            const img = new Image();<!-- [et_pb_line_break_holder] -->            img.src = event.target.result;<!-- [et_pb_line_break_holder] -->            img.onload = () => {<!-- [et_pb_line_break_holder] -->                let width = img.width;<!-- [et_pb_line_break_holder] -->                let height = img.height;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                if (width > height) {<!-- [et_pb_line_break_holder] -->                    if (width > maxDimension) {<!-- [et_pb_line_break_holder] -->                        height = Math.round((height * maxDimension) \/ width);<!-- [et_pb_line_break_holder] -->                        width = maxDimension;<!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                } else {<!-- [et_pb_line_break_holder] -->                    if (height > maxDimension) {<!-- [et_pb_line_break_holder] -->                        width = Math.round((width * maxDimension) \/ height);<!-- [et_pb_line_break_holder] -->                        height = maxDimension;<!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                const canvas = document.createElement('canvas');<!-- [et_pb_line_break_holder] -->                canvas.width = width;<!-- [et_pb_line_break_holder] -->                canvas.height = height;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                const ctx = canvas.getContext('2d');<!-- [et_pb_line_break_holder] -->                ctx.drawImage(img, 0, 0, width, height);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                resolve(canvas.toDataURL('image\/jpeg', quality).split(',')[1]);<!-- [et_pb_line_break_holder] -->            };<!-- [et_pb_line_break_holder] -->            img.onerror = (err) => reject(err);<!-- [et_pb_line_break_holder] -->        };<!-- [et_pb_line_break_holder] -->        reader.onerror = (err) => reject(err);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_heading title=&#8221;Recent Photos:&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; title_font=&#8221;Adamina|700|||||||&#8221; title_text_align=&#8221;center&#8221; title_text_color=&#8221;#000000&#8243; hover_enabled=&#8221;0&#8243; box_shadow_style=&#8221;preset6&#8243; text_shadow_style=&#8221;preset5&#8243; text_shadow_color=&#8221;#50c878&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_heading][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; box_shadow_style=&#8221;preset6&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<style><!-- [et_pb_line_break_holder] -->  .wedding-gallery {<!-- [et_pb_line_break_holder] -->      display: grid;<!-- [et_pb_line_break_holder] -->      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));<!-- [et_pb_line_break_holder] -->      gap: 15px;<!-- [et_pb_line_break_holder] -->      margin-top: 30px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .gallery-img {<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      height: 150px;<!-- [et_pb_line_break_holder] -->      object-fit: cover;<!-- [et_pb_line_break_holder] -->      border-radius: 8px;<!-- [et_pb_line_break_holder] -->      box-shadow: 0 2px 5px rgba(0,0,0,0.2);<!-- [et_pb_line_break_holder] -->      transition: transform 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .gallery-img:active {<!-- [et_pb_line_break_holder] -->      transform: scale(0.95);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #view-all-btn {<!-- [et_pb_line_break_holder] -->      display: block;<!-- [et_pb_line_break_holder] -->      margin: 20px auto;<!-- [et_pb_line_break_holder] -->      padding: 10px 20px;<!-- [et_pb_line_break_holder] -->      font-size: 16px;<!-- [et_pb_line_break_holder] -->      background-color: #800020;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->      border-radius: 155px;<!-- [et_pb_line_break_holder] -->      cursor: pointer;<!-- [et_pb_line_break_holder] -->    \tbox-shadow: 0 4px 30px #50C878<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #gallery-loading {<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->      font-weight: bold;<!-- [et_pb_line_break_holder] -->  \t\tfont-size: 20px;<!-- [et_pb_line_break_holder] -->      margin-top: 20px;<!-- [et_pb_line_break_holder] -->      color: #000;<!-- [et_pb_line_break_holder] -->    text-shadow: 2px 2px 4px #50C878<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"gallery-loading\">Loading recent photos&#8230;<\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"wedding-gallery\" class=\"wedding-gallery\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><button id=\"view-all-btn\" style=\"display:none;\" onclick=\"loadGallery(-1)\">View All Photos<\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  \/\/ Automatically load the latest 6 photos when the page opens<!-- [et_pb_line_break_holder] -->  document.addEventListener(\"DOMContentLoaded\", function() {<!-- [et_pb_line_break_holder] -->      loadGallery(6);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  async function loadGallery(limit) {<!-- [et_pb_line_break_holder] -->      const galleryDiv = document.getElementById('wedding-gallery');<!-- [et_pb_line_break_holder] -->      const loadingText = document.getElementById('gallery-loading');<!-- [et_pb_line_break_holder] -->      const viewAllBtn = document.getElementById('view-all-btn');<!-- [et_pb_line_break_holder] -->      <!-- [et_pb_line_break_holder] -->      const webAppUrl = 'https:\/\/script.google.com\/macros\/s\/AKfycbwlx5jsNb3X3EphVO1h38WKXl5fkyXsnw3EQzEctLVMF_XumoC692a6rgoslI16F5szig\/exec'; \/\/ Replace with your URL<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (limit === -1) {<!-- [et_pb_line_break_holder] -->          loadingText.style.display = 'block';<!-- [et_pb_line_break_holder] -->          loadingText.innerText = \"Loading all photos (this may take a moment)...\";<!-- [et_pb_line_break_holder] -->          viewAllBtn.style.display = 'none'; \/\/ Hide button after clicking<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      try {<!-- [et_pb_line_break_holder] -->          \/\/ Fetch the photo IDs from your Google Script<!-- [et_pb_line_break_holder] -->          const response = await fetch(`${webAppUrl}?limit=${limit}`);<!-- [et_pb_line_break_holder] -->          const photos = await response.json();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          galleryDiv.innerHTML = ''; \/\/ Clear out the gallery grid<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          if (photos.length === 0) {<!-- [et_pb_line_break_holder] -->              loadingText.innerText = \"No photos uploaded yet. Be the first!\";<!-- [et_pb_line_break_holder] -->              return;<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          \/\/ Loop through the data and generate image tags<!-- [et_pb_line_break_holder] -->          photos.forEach(photo => {<!-- [et_pb_line_break_holder] -->              const img = document.createElement('img');<!-- [et_pb_line_break_holder] -->              img.className = 'gallery-img';<!-- [et_pb_line_break_holder] -->              \/\/ Use Google's secret high-speed thumbnail endpoint<!-- [et_pb_line_break_holder] -->              img.src = `https:\/\/drive.google.com\/thumbnail?id=${photo.id}&sz=w600`;<!-- [et_pb_line_break_holder] -->              <!-- [et_pb_line_break_holder] -->              \/\/ Optional: Clicking an image opens the full-size version in a new tab<!-- [et_pb_line_break_holder] -->              img.onclick = () => window.open(`https:\/\/drive.google.com\/uc?export=view&id=${photo.id}`, '_blank');<!-- [et_pb_line_break_holder] -->              <!-- [et_pb_line_break_holder] -->              galleryDiv.appendChild(img);<!-- [et_pb_line_break_holder] -->          });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          loadingText.style.display = 'none';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          \/\/ Show the \"View All\" button only if we are currently limiting the view<!-- [et_pb_line_break_holder] -->          if (limit !== -1 && photos.length >= limit) {<!-- [et_pb_line_break_holder] -->              viewAllBtn.style.display = 'block';<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      } catch (error) {<!-- [et_pb_line_break_holder] -->          console.error(\"Gallery Load Error:\", error);<!-- [et_pb_line_break_holder] -->          loadingText.innerText = \"Could not load photos. Check your network.\";<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-template-blank.php","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-38851","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/geeksco.co.za\/index.php?rest_route=\/wp\/v2\/pages\/38851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geeksco.co.za\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/geeksco.co.za\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/geeksco.co.za\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geeksco.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=38851"}],"version-history":[{"count":60,"href":"https:\/\/geeksco.co.za\/index.php?rest_route=\/wp\/v2\/pages\/38851\/revisions"}],"predecessor-version":[{"id":38968,"href":"https:\/\/geeksco.co.za\/index.php?rest_route=\/wp\/v2\/pages\/38851\/revisions\/38968"}],"wp:attachment":[{"href":"https:\/\/geeksco.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}