1let carouselContainers=document.getElementsByClassName("blk-carousel");for(let carouselContainer of carouselContainers){let carouselLinks=carouselContainer.querySelectorAll(".blk-carousel__lightbox");for(let link of carouselLinks){link.addEventListener("click",e=>openGallery(e,carouselLinks));}} 2document.addEventListener('DOMContentLoaded',function(){function setupCarousel(scene){const isReduced=currentMotion==='reduced';const parentScene=scene.parentNode;const isAutoPlay=parentScene.dataset.autoplay==='true';let autoPlay;if(isReduced||isAutoPlay!=true){autoPlay=false;}else{autoPlay=true;} 3scene.setAttribute('aria-live','off');const navContainer=document.createElement('div');navContainer.classList.add('blk-carousel__nav','blk-button--text');scene.insertAdjacentElement('afterend',navContainer);const dotsContainer=document.createElement('div');dotsContainer.classList.add('blk-carousel__dots-container');dotsContainer.setAttribute('role','tablist');dotsContainer.setAttribute('aria-label','Slides');navContainer.appendChild(dotsContainer);for(let i=0;i<scene.children.length;i++){scene.children[i].setAttribute('role','tabpanel');scene.children[i].setAttribute('id','slide-'+(i+1));scene.children[i].setAttribute('aria-roledescription','slide');scene.children[i].setAttribute('aria-label','slide '+(i+1)+' of '+scene.children.length);if(!scene.children[i].querySelector('a')){}else{scene.children[i].querySelector('a').addEventListener('click',function(){asInteract=true;});} 4const dot=document.createElement('span');dot.classList.add('blk-carousel__dot');dot.setAttribute('role','tab');dot.setAttribute('aria-controls','slide-'+(i+1));dot.setAttribute('aria-label','slide '+(i+1));dot.setAttribute('aria-selected','false');dot.setAttribute('tabindex','-1');dotsContainer.appendChild(dot);dot.addEventListener('click',function(){scrollToItem(i);playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;progressPaused=isPaused;clearInterval(intervalId);asInteract=true;});} 5const prevButton=document.createElement('button');prevButton.classList.add('blk-carousel__prev-btn','tiny','blk-button__link');prevButton.setAttribute('aria-label','Previous slide');prevButton.innerHTML=`<span class="ico blk-button__icon" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-left" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"></path><polyline points="15 6 9 12 15 18"></polyline></svg></span>`;prevButton.setAttribute("aria-hidden","true");const nextButton=document.createElement('button');nextButton.classList.add('blk-carousel__next-btn','tiny','blk-button__link');nextButton.setAttribute('aria-label','Next slide');nextButton.innerHTML=`<span class="ico blk-button__icon" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-right" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"></path><polyline points="9 6 15 12 9 18"></polyline></svg></span>`;const pauseButton=document.createElement('button');pauseButton.classList.add('blk-carousel__pause-btn','tiny','blk-button__link');pauseButton.setAttribute('aria-label','Pause or play slideshow');pauseButton.innerHTML=`<span class="ico blk-button__icon play hide" aria-hidden="true"> 6 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" class="play icon-outline"><path class="outline" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7 4v16l13-8L7 4Z"></path></svg> 7 </span> 8 <span class="ico blk-button__icon pause" aria-hidden="true"> 9 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" class="pause icon-outline"><path class="outline" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 5H7a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1Zm8 0h-2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1Z"></path></svg> 10 </span>`;navContainer.appendChild(prevButton);navContainer.appendChild(pauseButton);navContainer.appendChild(nextButton);const playBtnIcon=pauseButton.querySelector('.play');const pauseBtnIcon=pauseButton.querySelector('.pause');let currentIndex=0;let isPaused=false;let progressPaused=false;let intervalId;let asInteract=false;let animationDuration=parentScene.dataset.duration?parseInt(parentScene.dataset.duration):6000;let isCarouselVisible=true;if(autoPlay!=false){let hasBeenNonVisible=false;const observer=new IntersectionObserver((entries)=>
10{entries.forEach((entry)=>{isCarouselVisible=entry.isIntersecting;if(!isCarouselVisible){hasBeenNonVisible=true;if(!isPaused){isPaused=!isPaused;if(!isPaused){playBtnIcon.classList.add('hide');pauseBtnIcon.classList.remove('hide');}else{playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');} 11progressPaused=isPaused;clearInterval(intervalId);}} 12else{if(hasBeenNonVisible===true){setTimeout(function(){if(!asInteract){isPaused=false;if(!isPaused){playBtnIcon.classList.add('hide');pauseBtnIcon.classList.remove('hide');}else{playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');} 13progressPaused=false;startAutoScroll();scrollToItem(currentIndex);}},2000);}}});},{threshold:0.2});observer.observe(scene);} 14function scrollToItem(index){currentIndex=index;if(parentScene.classList.contains('active-centered')){scene.scrollLeft=scene.children[index].offsetLeft-(window.innerWidth / 2-scene.children[index].offsetWidth / 2);}else{scene.scrollLeft=scene.children[index].offsetLeft;} 15updateNavigation();} 16function navigate(direction){const newIndex=currentIndex+direction;if(newIndex>=0&&newIndex<scene.children.length){scrollToItem(newIndex);}else if(newIndex===scene.children.length){scrollToItem(0);}} 17function autoScroll(){if(!isPaused){const activeItem=scene.querySelector('.collection-item.active');const activeItemRect=activeItem.getBoundingClientRect();if(activeItemRect.left>=0&&activeItemRect.right<=window.innerWidth){navigate(1);}else{playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;clearInterval(intervalId);}}} 18pauseButton.addEventListener('click',function(){isPaused=!isPaused;if(!isPaused){playBtnIcon.classList.add('hide');pauseBtnIcon.classList.remove('hide');}else{playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');} 19progressPaused=isPaused;if(isPaused){clearInterval(intervalId);asInteract=true;}else{asInteract=false;startAutoScroll();scrollToItem(currentIndex);}});prevButton.addEventListener('click',function(){navigate(-1);playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;progressPaused=isPaused;clearInterval(intervalId);asInteract=true;});nextButton.addEventListener('click',function(){navigate(1);playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;progressPaused=isPaused;clearInterval(intervalId);asInteract=true;});document.addEventListener('keydown',function(event){if(event.key==='ArrowLeft'&¤tIndex>0){navigate(-1);playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;progressPaused=isPaused;clearInterval(intervalId);asInteract=true;}else if(event.key==='ArrowRight'&¤tIndex<scene.children.length-1){navigate(1);playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;progressPaused=isPaused;clearInterval(intervalId);asInteract=true;}});scene.addEventListener('focusin',function(){playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');isPaused=true;clearInterval(intervalId);});function updateNavigation(){const dots=dotsContainer.querySelectorAll('.blk-carousel__dot');const items=scene.querySelectorAll('.collection-item');dots.forEach((dot,index)=>{if(index===currentIndex){dot.classList.add('active');dot.setAttribute('aria-selected','true');dot.setAttribute('tabindex','0');}else{dot.classList.remove('active');dot.setAttribute('aria-selected','false');dot.setAttribute('tabindex','-1');}});items.forEach((item,index)=>{if(index===currentIndex){item.classList.add('active');}else{item.classList.remove('active');}});prevButton.setAttribute('aria-hidden',currentIndex===0?'true':'false');prevButton.setAttribute('tabindex',currentIndex===0?'-1':'0');nextButton.setAttribute('aria-hidden',currentIndex===scene.children.length-1?'true':'false');nextButton.setAttribute('tabindex',currentIndex===scene.children.length-1?'-1':'0');updateProgress();} 20function updateProgress(){let startTime;let progress=0;let animationFrameId;function updateProgressBar(){const currentTime=Date.now();const elapsedTime=currentTime-startTime;progress=(elapsedTime / animationDuration)*100;if(progress>=100){progress=100;cancelAnimationFrame(animationFrameId);} 21if(!progressPaused){dotsContainer.querySelector('.blk-carousel__dot.active').style.setProperty('--_progress',`${progress}%`);}else{dotsContainer.querySelector('.blk-carousel__dot.active').style.setProperty('--_progress','100%');} 22if(progress<100&&!progressPaused){animationFrameId=requestAnimationFrame(updateProgressBar);}} 23startTime=Date.now();updateProgressBar();} 24function startAutoScroll(){clearInterval(intervalId);if(!progressPaused){intervalId=setInterval(autoScroll,animationDuration);updateProgress();}} 25scene.addEventListener('mouseenter',function(){if(!isPaused){isPau
25sed=!isPaused;if(!isPaused){playBtnIcon.classList.add('hide');pauseBtnIcon.classList.remove('hide');}else{playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');} 26progressPaused=isPaused;clearInterval(intervalId);}});scene.addEventListener('mouseleave',function(){if(!asInteract&&autoPlay==true){isPaused=false;if(!isPaused){playBtnIcon.classList.add('hide');pauseBtnIcon.classList.remove('hide');}else{playBtnIcon.classList.remove('hide');pauseBtnIcon.classList.add('hide');} 27progressPaused=false;startAutoScroll();scrollToItem(currentIndex);}});scene.children[0].classList.add('active');const firstDot=dotsContainer.children[0];firstDot.classList.add('active');firstDot.setAttribute('aria-selected','true');firstDot.setAttribute('tabindex','0');if(autoPlay!=false){startAutoScroll();}else{pauseButton.classList.add('hide');dotsContainer.querySelector('.blk-carousel__dot.active').style.setProperty('--_progress','100%');}} 28const carousels=document.querySelectorAll('.blk-carousel[data-controls="dots"] .blk-carousel__scene');carousels.forEach(setupCarousel);});(function(){var openingHours={containerId:"opening-hours-6a9ec29fdf3d5",translations:{open:"Ouvert",closed:"Fermé",closesAt:"Ferme à ",reopensAt:"Rouvre à ",opensTomorrow:"Ouvre demain à ",opening:"Ouvre",at:"à ",},dayNames:{"Monday":"Lundi","Tuesday":"Mardi","Wednesday":"Mercredi","Thursday":"Jeudi","Friday":"Vendredi","Saturday":"Samedi","Sunday":"Dimanche"},dayAbbr:{"Monday":"Lun.","Tuesday":"Mar.","Wednesday":"Mer.","Thursday":"Jeu.","Friday":"Ven.","Saturday":"Sam.","Sunday":"Dim."},init:function(){var container=document.getElementById(this.containerId);if(!container)return;this.updateOpeningStatus(container);},hoursToMinutes:function(time){var parts=(time||"").split(" ");var hm=parts[0]||"";var ampm=(parts[1]||"").toUpperCase();var hmParts=hm.split(":");var hours=parseInt(hmParts[0],10)||0;var minutes=parseInt(hmParts[1],10)||0;if(ampm==="PM"&&hours!==12){hours+=12;} 29if(ampm==="AM"&&hours===12){hours=0;} 30return hours*60+minutes;},updateOpeningStatus:function(container){var now=new Date();var currentDay=this.getDayOfWeek(now);var currentTime=this.getTimeString(now);var dayRows=container.querySelectorAll("tr[data-dayofweek]");var currentDayRow=null;var nextOpeningDay=null;var nextOpeningTime=null;for(var i=0;i<dayRows.length;i++){var row=dayRows[i];var dayOfWeek=row.getAttribute("data-dayofweek");if(dayOfWeek.indexOf(currentDay)!==-1){currentDayRow=row;row.setAttribute("data-dayofweek-opened","");}} 31var statusElement=container.querySelector(".blk-opening-hours__status");if(statusElement){statusElement.textContent="";var isOpen=false;var closingTime=null;var reopeningTime=null;var nextDayName=null;var hasOpenedToday=false;if(currentDayRow){var timeSpans=currentDayRow.querySelectorAll(".blk-opening-hours__time");if(timeSpans.length>0&&timeSpans[0].textContent!==this.translations.closed){for(var j=0;j<timeSpans.length;j++){var timeRange=timeSpans[j].textContent.split(" â ");if(timeRange.length===2){var opens=timeRange[0];var closes=timeRange[1];if(this.hoursToMinutes(currentTime)>=this.hoursToMinutes(opens)){hasOpenedToday=true;} 32if(this.hoursToMinutes(currentTime)>=this.hoursToMinutes(opens)&&this.hoursToMinutes(currentTime)<this.hoursToMinutes(closes)){isOpen=true;closingTime=closes;if(j<timeSpans.length-1){var nextTimeRange=timeSpans[j+1].textContent.split(" â ");if(nextTimeRange.length===2){reopeningTime=nextTimeRange[0];}} 33break;}else if(this.hoursToMinutes(currentTime)<this.hoursToMinutes(opens)&&!reopeningTime){reopeningTime=opens;}}}}} 34if(!isOpen&&!reopeningTime){var foundNextDay=false;var checkDay=this.getNextDay(currentDay);var daysChecked=0;while(!foundNextDay&&daysChecked<7){for(var k=0;k<dayRows.length;k++){var rowDay=dayRows[k].getAttribute("data-dayofweek");if(rowDay.indexOf(checkDay)!==-1){var dayTimeSpans=dayRows[k].querySelectorAll(".blk-opening-hours__time");if(dayTimeSpans.length>0&&dayTimeSpans[0].textContent!==this.translations.closed){var nextTimeRange=dayTimeSpans[0].textContent.split(" â ");if(nextTimeRange.length===2){nextOpeningDay=checkDay;nextOpeningTime=nextTimeRange[0];foundNextDay=true;break;}}}} 35if(!foundNextDay){checkDay=this.getNextDay(checkDay);daysChecked++;}}} 36var statusNowElement=document.createElement("span");statusNowElement.className="blk-opening-hours__now "+(isOpen?"opened":"closed");statusNowElement.textContent=isOpen?this.translations.open:this.translations.closed;statusElement.appendChild(statusNowElement);var nextInfoElement=document.createElement("span");nextInfoElement.className="blk-opening-hours__next";if(isOpen){var closeAtElement=document.createElement("span");closeAtElement.className="blk-opening-hours__close-at";closeAtElement.textContent=" â "+this.translations.closesAt+" "+closingTime;nextInfoElement.appendChild(closeAtElement);if(reopeningTime){var openAtElement=document.createElement("span");openAtElement.className="blk-opening-hours__open-at";openAtElement.textContent=" â "+this.translations.reopensAt+" "+reopeningTime;nextInfoElement.appendChild(openAtElement);}}else{var openAtElement=document.createElement("span");openAtElement.className="blk-opening-hours__open-at";if(reopeningTime){if(hasOpenedToday){openAtElement.textContent=" â "+this.translations.reopensAt+" "+reopeningTime;}else{openAtElement.textContent=" â "+this.translations.opening+" "+this.translations.at+" "+reopeningTime;}}else if(nextOpeningDay&&nextOpeningTime){var isTomorrow=this.getNextDay(currentDay)===nextOpeningDay;if(isTomorrow){openAtElement.textContent=" â "+this.translations.opensTomorrow+" "+nextOpeningTime;}else{openAtElement.textContent=" â "+this.translations.opening+" "+ 37this.dayNames[nextOpeningDay]+" "+this.translations.at+" "+nextOpeningTime;}} 38nextInfoElement.appendChild(openAtElement);} 39statusElement.appendChild(nextInfoElement);}},getDayOfWeek:function(date){var days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
39ay","Saturday"];return days[date.getDay()];},getNextDay:function(day){var days=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];var index=days.indexOf(day);return days[(index+1)%7];},getTimeString:function(date){var hours=date.getHours();var minutes=date.getMinutes().toString().padStart(2,"0");var ampm=hours<=11?"AM":"PM";var formattedHour=(hours%12===0)?12:hours%12;formattedHour=formattedHour.toString().padStart(2,"0");return formattedHour+":"+minutes+" "+ampm;}};if(document.readyState==="complete"||document.readyState==="interactive"){setTimeout(function(){openingHours.init();},1);}else{document.addEventListener("DOMContentLoaded",function(){openingHours.init();});}})();(function(){var openingHours={containerId:"opening-hours-6a9ec29ff3f1b",translations:{open:"Ouvert",closed:"Fermé",closesAt:"Ferme à ",reopensAt:"Rouvre à ",opensTomorrow:"Ouvre demain à ",opening:"Ouvre",at:"à ",},dayNames:{"Monday":"Lundi","Tuesday":"Mardi","Wednesday":"Mercredi","Thursday":"Jeudi","Friday":"Vendredi","Saturday":"Samedi","Sunday":"Dimanche"},dayAbbr:{"Monday":"Lun.","Tuesday":"Mar.","Wednesday":"Mer.","Thursday":"Jeu.","Friday":"Ven.","Saturday":"Sam.","Sunday":"Dim."},init:function(){var container=document.getElementById(this.containerId);if(!container)return;this.updateOpeningStatus(container);},hoursToMinutes:function(time){var parts=(time||"").split(" ");var hm=parts[0]||"";var ampm=(parts[1]||"").toUpperCase();var hmParts=hm.split(":");var hours=parseInt(hmParts[0],10)||0;var minutes=parseInt(hmParts[1],10)||0;if(ampm==="PM"&&hours!==12){hours+=12;} 40if(ampm==="AM"&&hours===12){hours=0;} 41return hours*60+minutes;},updateOpeningStatus:function(container){var now=new Date();var currentDay=this.getDayOfWeek(now);var currentTime=this.getTimeString(now);var dayRows=container.querySelectorAll("tr[data-dayofweek]");var currentDayRow=null;var nextOpeningDay=null;var nextOpeningTime=null;for(var i=0;i<dayRows.length;i++){var row=dayRows[i];var dayOfWeek=row.getAttribute("data-dayofweek");if(dayOfWeek.indexOf(currentDay)!==-1){currentDayRow=row;row.setAttribute("data-dayofweek-opened","");}} 42var statusElement=container.querySelector(".blk-opening-hours__status");if(statusElement){statusElement.textContent="";var isOpen=false;var closingTime=null;var reopeningTime=null;var nextDayName=null;var hasOpenedToday=false;if(currentDayRow){var timeSpans=currentDayRow.querySelectorAll(".blk-opening-hours__time");if(timeSpans.length>0&&timeSpans[0].textContent!==this.translations.closed){for(var j=0;j<timeSpans.length;j++){var timeRange=timeSpans[j].textContent.split(" â ");if(timeRange.length===2){var opens=timeRange[0];var closes=timeRange[1];if(this.hoursToMinutes(currentTime)>=this.hoursToMinutes(opens)){hasOpenedToday=true;} 43if(this.hoursToMinutes(currentTime)>=this.hoursToMinutes(opens)&&this.hoursToMinutes(currentTime)<this.hoursToMinutes(closes)){isOpen=true;closingTime=closes;if(j<timeSpans.length-1){var nextTimeRange=timeSpans[j+1].textContent.split(" â ");if(nextTimeRange.length===2){reopeningTime=nextTimeRange[0];}} 44break;}else if(this.hoursToMinutes(currentTime)<this.hoursToMinutes(opens)&&!reopeningTime){reopeningTime=opens;}}}}} 45if(!isOpen&&!reopeningTime){var foundNextDay=false;var checkDay=this.getNextDay(currentDay);var daysChecked=0;while(!foundNextDay&&daysChecked<7){for(var k=0;k<dayRows.length;k++){var rowDay=dayRows[k].getAttribute("data-dayofweek");if(rowDay.indexOf(checkDay)!==-1){var dayTimeSpans=dayRows[k].querySelectorAll(".blk-opening-hours__time");if(dayTimeSpans.length>0&&dayTimeSpans[0].textContent!==this.translations.closed){var nextTimeRange=dayTimeSpans[0].textContent.split(" â ");if(nextTimeRange.length===2){nextOpeningDay=checkDay;nextOpeningTime=nextTimeRange[0];foundNextDay=true;break;}}}} 46if(!foundNextDay){checkDay=this.getNextDay(checkDay);daysChecked++;}}} 47var statusNowElement=document.createElement("span");statusNowElement.className="blk-opening-hours__now "+(isOpen?"opened":"closed");statusNowElement.textContent=isOpen?this.translations.open:this.translations.closed;statusElement.appendChild(statusNowElement);var nextInfoElement=document.createElement("span");nextInfoElement.className="blk-opening-hours__next";if(isOpen){var closeAtElement=document.createElement("span");closeAtElement.className="blk-opening-hours__close-at";closeAtElement.textContent=" â "+this.translations.closesAt+" "+closingTime;nextInfoElement.appendChild(closeAtElement);if(reopeningTime){var openAtElement=document.createElement("span");openAtElement.className="blk-opening-hours__open-at";openAtElement.textContent=" â "+this.translations.reopensAt+" "+reopeningTime;nextInfoElement.appendChild(openAtElement);}}else{var openAtElement=document.createElement("span");openAtElement.className="blk-opening-hours__open-at";if(reopeningTime){if(hasOpenedToday){openAtElement.textContent=" â "+this.translations.reopensAt+" "+reopeningTime;}else{openAtElement.textContent=" â "+this.translations.opening+" "+this.translations.at+" "+reopeningTime;}}else if(nextOpeningDay&&nextOpeningTime){var isTomorrow=this.getNextDay(currentDay)===nextOpeningDay;if(isTomorrow){openAtElement.textContent=" â "+this.translations.opensTomorrow+" "+nextOpeningTime;}else{openAtElement.textContent=" â "+this.translations.opening+" "+ 48this.dayNames[nextOpeningDay]+" "+this.translations.at+" "+nextOpeningTime;}} 49nextInfoElement.appendChild(openAtElement);} 50statusElement.appendChild(nextInfoElement);}},getDayOfWeek:function(date){var days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
50ay","Saturday"];return days[date.getDay()];},getNextDay:function(day){var days=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];var index=days.indexOf(day);return days[(index+1)%7];},getTimeString:function(date){var hours=date.getHours();var minutes=date.getMinutes().toString().padStart(2,"0");var ampm=hours<=11?"AM":"PM";var formattedHour=(hours%12===0)?12:hours%12;formattedHour=formattedHour.toString().padStart(2,"0");return formattedHour+":"+minutes+" "+ampm;}};if(document.readyState==="complete"||document.readyState==="interactive"){setTimeout(function(){openingHours.init();},1);}else{document.addEventListener("DOMContentLoaded",function(){openingHours.init();});}})();
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.