1<!doctype html> 2<html lang="en"> 3 <head>
3<script>
vendor: 323 bytes, line 3
3(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
3GTM-N3FBFM7P
vendor: 3 bytes, line 3
3');
3</script>
3 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>Harvest SA · Issue 84 Reader</title> 7 <link rel="preload" href="/magazine/84/font/Frutiger-LightCn.otf" as="font" type="font/otf" crossorigin> 8 <link rel="preload" href="/magazine/84/font/Impact.ttf" as="font" type="font/ttf" crossorigin> 9 <link rel="preload" href="/magazine/84/font/LeadershipDemi.otf" as="font" type="font/otf" crossorigin> 10 <link rel="preload" href="/magazine/84/font/LeadershipLight.otf" as="font" type="font/otf" crossorigin> 11 <link rel="preload" href="/magazine/84/font/MinionPro-Regular.otf" as="font" type="font/otf" crossorigin> 12 <link rel="preload" href="/magazine/84/font/MyriadPro-Bold.otf" as="font" type="font/otf" crossorigin> 13 <link rel="preload" href="/magazine/84/font/MyriadPro-BoldCond.otf" as="font" type="font/otf" crossorigin> 14 <link rel="preload" href="/magazine/84/font/MyriadPro-Cond.otf" as="font" type="font/otf" crossorigin> 15 <link rel="preload" href="/magazine/84/font/MyriadPro-It.otf" as="font" type="font/otf" crossorigin> 16 <link rel="preload" href="/magazine/84/font/MyriadPro-Light.otf" as="font" type="font/otf" crossorigin> 17 <link rel="preload" href="/magazine/84/font/MyriadPro-LightCond.otf" as="font" type="font/otf" crossorigin> 18 <link rel="preload" href="/magazine/84/font/MyriadPro-LightIt.otf" as="font" type="font/otf" crossorigin> 19 <link rel="preload" href="/magazine/84/font/MyriadPro-Regular.otf" as="font" type="font/otf" crossorigin> 20 <link rel="preload" href="/magazine/84/font/MyriadPro-Semibold.otf" as="font" type="font/otf" crossorigin> 21 <link rel="preload" href="/magazine/84/font/MyriadPro-SemiboldCond.otf" as="font" type="font/otf" crossorigin> 22 <link rel="preload" href="/magazine/84/font/Wingdings-Regular.ttf" as="font" type="font/ttf" crossorigin> 23 <!-- Google Tag Manager --> 24
24<script> 25 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start":new Date().getTime(),event:"gtm.js"});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=true;j.src="https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f);})(window,document,"script","dataLayer",""); 26 </script>
26 27 <!-- End Google Tag Manager --> 28 <link rel="icon" href="data:,"> 29 <link rel="stylesheet" href="/magazine/84/_engine/reader.css?v=p31-reading-s2-20260920"> 30
30<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/page-flip.browser.min.js"></script>
30 31 </head> 32 <body>
vendor: 67 bytes, line 32
32<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
32GTM-N3FBFM7P
vendor: 87 bytes, lines 32-33
32" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 33
33<!-- Google Tag Manager (noscript) --> 34 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 35 <!-- End Google Tag Manager (noscript) --> 36
36<script> 37 window.FlipReaderTracking = window.LeadershipReaderTracking = { 38 endpoint: "https:\/\/ai.capemedia.co.za\/mag_enhancer\/campaign_tracker_api.php", 39 initialPageTracked: true, 40 initialPage: 1 }; 41 window.FlipReaderConfig = window.LeadershipReaderAddons = {"basePath":"/magazine/84","assetsPath":"/magazine/84/publication-web-resources","articleIndexUrl":"/magazine/84/article-index.json","pageModel":"spread","pageWidth":595,"pageHeight":780,"sourceCount":39,"pageCount":76,"pageNumberOffset":0,"contentsPage":null,"contentsSource":null,"issueKey":"harvest-84","publicationEditionId":2215,"addonsEditionId":2215,"conversationalAiExperience":"harvest-84","endpoint":"https://ai.capemedia.co.za/mag_enhancer/api/reader_addons.php","allowQueryOverride":true,"replaceStaticExternalTools":true,"renderMode":false,"staffPreview":false,"flippingTime":650}; 42 </script>
42 43 <main class="reader-shell"> 44 <header class="reader-topbar"> 45 <a class="reader-brand has-logo" href="/magazine/84/" data-initial="H" aria-label="Harvest SA · Issue 84 home"> 46 <img class="reader-brand-logo" src="/magazine/84/_engine/assets/publications/harvest/harvest.png" alt="Harvest SA · Issue 84" onerror="this.hidden=true;this.parentElement.classList.remove('has-logo')"> 47 <span class="reader-brand-label">Harvest SA · Issue 84</span> 48 </a> 49 <div class="reader-context"> 50 <div class="reader-status" id="readerStatus">Loading</div> 51 <div class="route-note" id="routeNote"></div> 52 </div> 53 <div class="toolbar-actions"> 54 <button class="icon-button" type="button" id="articleToggle" aria-label="Contents" title="Contents" data-compact-label="Contents"> 55 <svg viewBox="0 0 24 24" aria-hidden="true"><line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><circle cx="4" cy="6" r="1"/><circle cx="4" cy="12" r="1"/><circle cx="4" cy="18" r="1"/></svg> 56 </button> 57 <button class="icon-button" type="button" id="searchToggle" aria-label="Search" title="Search" data-compact-label="Search"> 58 <svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.5" y2="16.5"/></svg> 59 </button> 60 <button class="icon-button" type="button" id="fullscreenToggle" aria-label="Fullscreen" title="Fullscreen" data-compact-label="Full"> 61 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 3H5a2 2 0 0 0-2 2v3"/><path d="M16 3h3a2 2 0 0 1 2 2v3"/><path d="M8 21H5a2 2 0 0 1-2-2v-3"/><path d="M16 21h3a2 2 0 0 0 2-2v-3"/></svg> 62 </button> 63 </div> 64 <button class="ask-hero" type="button" id="askHero" aria-label="This mag wants to talk to you" title="This mag wants to talk to you" hidden> 65 <svg class="ask-hero-microphone" viewBox="0 0 24 24" aria-hidden="true"><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5.5 11a6.5 6.5 0 0 0 13 0"/><line x1="12" y1="17.5" x2="12" y2="21"/><line x1="8.5" y1="21" x2="15.5" y2="21"/></svg> 66 <span id="askHeroLabel">This mag wants to talk to you</span> 67 </button> 68 </header> 69 <section class="reader-stage" aria-label="Harvest SA · Issue 84 StPageFlip reader"> 70 <button class="nav-arrow nav-prev" type="button" id="prevPage" aria-label="Previous page">‹</button> 71 <div id="flipBook" class="flip-book"></div> 72 <button class="nav-arrow nav-next" type="button" id="nextPage" aria-label="Next page">›</button> 73 </section> 74 <footer class="reader-controls"> 75 <div class="innovation-dock" id="innovationDock" aria-label="Page tools"></div> 76 <div class="rail-foot"> 77 <div class="page-label" id="readerPageLabel">Page 1 / 76</div> 78 <input class="page-scrubber" id="pageScrubber" type="range" min="1" max="76" value="1" aria-label="Page scrubber"> 79 </div> 80 </footer> 81 </main> 82 <div class="reader-backdrop" id="readerBackdrop" hidden></div> 83 <aside class="reader-drawer" id="searchDrawer" aria-label="Search" hidden> 84 <div class="drawer-head"> 85 <h2>Search</h2> 86 <button class="icon-button" type="button" data-close-panel aria-label="Close search">Close</button> 87 </div> 88 <input class="drawer-search" id="readerSearchInput" type="search" placeholder="Search articles"> 89 <div class="drawer-list" id="readerSearchResults"></div> 90 </aside> 91 <aside class="innovation-panel" id="innovationPanel" aria-label="Page tool" hidden> 92 <div class="innovation-head"> 93 <h2 id="innovationTitle">Page tool</h2> 94 <button class="icon-button" type="button" data-close-panel aria-label="Close page tool">Close</button> 95 </div> 96 <div class="innovation-body" id="innovationBody"></div> 97 <div class="innovation-actions"> 98 <button class="reader-button" type="button" id="innovationLaunch">Open</button> 99 <button class="reader-button" type="button" id="innovationSpeak" hidden>Play</button> 100 <button class="reader-button" type="button" id="innovationStop" hidden>Stop</button> 101 </div> 102 </aside> 103
103<script src="/magazine/84/_engine/reader.js?v=p31-reading-s2-20260920"></script>
103 104 </body> 105</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.