PageSourceSearch

https://www.svazpersonalistu.cz/wp-content/themes/mesmerize/assets/js/theme.js?ver=1.81.1790794605

js svazpersonalistu.cz collected 2026-10-01 16:18:10 UTC 26,587 bytes, 858 lines download raw bytes

1(function ($) {
2    if ("ontouchstart" in window) {
3        document.documentElement.className = document.documentElement.className + " touch-enabled";
4    }
5    if (navigator.userAgent.match(/(iPod|iPhone|iPad|Android)/i)) {
6        document.documentElement.className = document.documentElement.className + " no-parallax";
7    }
8
9    // animation frame interval;
10
11    var reqAnimFrame = (function () {
12        return window.requestAnimationFrame ||
13            window.webkitRequestAnimationFrame ||
14            window.mozRequestAnimationFrame ||
15            window.oRequestAnimationFrame ||
16            window.msRequestAnimationFrame || function (callback, element) {
17                window.setTimeout(callback, 1000 / 60);
18            };
19    })();
20
21
22    window.requestInterval = function (fn, delay, cancelFunction) {
23        if (!window.requestAnimationFrame &&
24            !window.webkitRequestAnimationFrame &&
25            !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support
26            !window.oRequestAnimationFrame &&
27            !window.msRequestAnimationFrame)
28            return window.setInterval(fn, delay);
29
30        var start = new Date().getTime(),
31            handle = {};
32
33
34        function loop() {
35            var current = new Date().getTime(),
36                delta = current - start;
37
38            if (delta >= delay) {
39                fn.call();
40                start = new Date().getTime();
41            }
42
43            handle.value = reqAnimFrame(loop);
44
45            if (delta >= delay && cancelFunction && cancelFunction.call() === true) {
46                clearRequestInterval(handle);
47            }
48        };
49
50        handle.value = reqAnimFrame(loop);
51
52
53        return handle;
54    };
55
56    window.clearRequestInterval = function (handle) {
57        window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) :
58            window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) :
59                window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */
60                    window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) :
61                        window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) :
62                            window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) :
63                                clearInterval(handle);
64    };
65
66    if (!$.event.special.tap) {
67
68        $.event.special.tap = {
69            setup: function (data, namespaces) {
70                var $elem = $(this);
71                $elem.bind('touchstart', $.event.special.tap.handler)
72                    .bind('touchmove', $.event.special.tap.handler)
73                    .bind('touchend', $.event.special.tap.handler);
74            },
75
76            teardown: function (namespaces) {
77                var $elem = $(this);
78                $elem.unbind('touchstart', $.event.special.tap.handler)
79                    .unbind('touchmove', $.event.special.tap.handler)
80                    .unbind('touchend', $.event.special.tap.handler);
81            },
82
83            handler: function (event) {
84
85                var $elem = $(this);
86                $elem.data(event.type, 1);
87                if (event.type === 'touchend' && !$elem.data('touchmove')) {
88                    event.type = 'tap';
89                    $.event.handle.apply(this, arguments);
90                }
91                else if ($elem.data('touchend')) {
92                    $elem.removeData('touchstart touchmove touchend');
93                }
94            }
95        };
96
97    }
98
99    if (!$.fn.isInView) {
100        $.fn.isInView = function (fullyInView) {
101            var element = this;
102            var pageTop = $(window).scrollTop();
103            var pageBottom = pageTop + $(window).height();
104            var elementTop = $(element).offset().top;
105            var elementBottom = elementTop + $(element).height();
106
107            if (fullyInView === true) {
108                return ((pageTop < elementTop) && (pageBottom > elementBottom));
109            } else {
110                return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
111            }
112        }
113    }
114
115
116    if (!$.throttle) {
117        $.throttle = function (fn, threshhold, scope) {
118            threshhold || (threshhold = 250);
119            var last,
120                deferTimer;
121            return function () {
122                var context = scope || this;
123
124                var now = +new Date,
125                    args = arguments;
126                if (last && now < last + threshhold) {
127                    // hold on to it
128                    clearTimeout(deferTimer);
129                    deferTimer = setTimeout(function () {
130                        last = now;
131                        fn.apply(context, args);
132                    }, threshhold);
133                } else {
134                    last = now;
135                    fn.apply(context, args);
136                }
137            };
138        }
139    }
140
141
142    if (!$.debounce) {
143        $.debounce = function (func, wait, immediate) {
144            var timeout;
145            return function () {
146                var context = this, args = arguments;
147                var later = function () {
148                    timeout = null;
149                    if (!immediate) func.apply(context, args);
150                };
151                var callNow = immediate && !timeout;
152                clearTimeout(timeout);
153                timeout = setTimeout(later, wait);
154                if (callNow) func.apply(context, args);
155            };
156        }
157    }
158
159
160})(jQuery);
161
162
163(function ($) {
164    if (!window.mesmerize_smooth_scroll || !window.mesmerize_smooth_scroll.enabled) {
165        return;
166    }
167
168    var goUp = true;
169    var end = null;
170    var interval = null;
171    var animationInterval = 10; //lower is faster
172    var steps = 10; //lower is faster
173    var distance = 100;
174    var step = 0;
175
176    function handle(delta) {
177
178        delta = Math.sign(delta) * parseInt(Math.min(Math.abs(delta, 10))); // normalize delta
179        if (end === null) {
180            end = $(window).scrollTop();
181        }
182
183        end -= distance * delta;
184        goUp = delta > 0;
185
186        $('body').on('mousedown.wheelscroll', 'a', function (event) {
187            if (interval) {
188                clearRequestInterval(interval);
189                interval = null;
190                end = null;
191                $('body').off('mousedown.wheelscroll');
192            }
193        });
194
195        function updateScroll() {
196            var scrollTop = $(window).scrollTop();
197            step = Math.round((end - scrollTop) / steps);
198            $(window).scrollTop(scrollTop + step);
199        }
200
201        function cancelInterval() {
202            var scrollTop = $(window).scrollTop();
203            if (
204                (scrollTop <= 0 && goUp) || scrollTop >= $(window).prop("scrollHeight") - $(window).height() ||
205                (goUp && step > -1) || (!goUp && step < 1)
206            ) {
207
208                interval = null;
209                end = null;
210                return true;
211            }
212            return false;
213        }
214
215        if (interval === null) {
216            interval = requestInterval(updateScroll, animationInterval, cancelInterval)
217        }
218    }
219
220    function wheel(event) {
221
222        var delta = 0;
223        if (event.wheelDelta) delta = event.wheelDelta / 120;
224        else if (event.detail) delta = -event.detail / 3;
225
226        if (window.scrollY === 0 && delta > 0) { // do nothing when scrolling to top and already there
227            return true;
228        }
229
230        if (((window.innerHeight + window.scrollY) >= document.body.offsetHeight) && delta < 0) { // do nothing when scrolling to bottom and already there
231            return true;
232        }
233
234        handle(delta);
235        if (event.preventDefault) event.preventDefault();
236        event.returnValue = false;
237    }
238
239    $(window).load(function (event) {
240        if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
241        window.onmousewheel = document.onmousewheel = wheel;
242    });
243
244})(jQuery);
245
246
247jQuery(document).ready(function ($) {
248
249    if (window.mesmerize_backstretch) {
250
251        window.mesmerize_backstretch.duration = parseInt(window.mesmerize_backstretch.duration);
252        window.mesmerize_backstretch.transitionDuration = parseInt(window.mesmerize_backstretch.transitionDuration);
253
254        var images = mesmerize_backstretch.images;
255
256        if (!images) {
257            return;
258        }
259
260        jQuery('.header-homepage, .header').backstretch(images, mesmerize_backstretch);
261    }
262
263
264    var masonry = $(".post-list.row");
265
266    var images = masonry.find('img');
267    var loadedImages = 0;
268
269    var debounceMasonryRefresh = jQuery.debounce(function () {
270        masonry.data().masonry.layout();
271    }, 500);
272
273    function imageLoaded() {
274        loadedImages++;
275        if (images.length === loadedImages && masonry.data().masonry) {
276            masonry.data().masonry.layout();
277        }
278    }
279
280    images.each(function () {
281        $(this).on('load', imageLoaded);
282        debounceMasonryRefresh();
283    });
284
285
286    var items = $(".post-list.row .post-list-item");
287    var index = items.length - 1;
288    items.each(function () {
289        $(this).css({
290            width: $(this).css('max-width')
291        })
292    });
293    if (masonry.length) {
294        masonry.masonry({
295            itemSelector: '.post-list-item',
296            percentPosition: true,
297            columnWidth: '.' + items.eq(index).attr('data-masonry-width')
298        });
299    }
300
301    if ($.fn.smoothScrollAnchor) {
302        var _$body = $('body');
303        $('.header-homepage-arrow-c .header-homepage-arrow').smoothScrollAnchor({
304            target: _$body.find('[data-id]').length ? _$body.find('[data-id]').first() : _$body.find('.page-content, .content').eq(0),
305            targetSel: _$body.find('[data-id]').length ? '[data-id]:first' : '.page-content, .content',
306            offset: function () {
307                var $fixed = $('.navigation-bar.fixto-fixed');
308                if ($fixed.length) {
309                    return $fixed[0].getBoundingClientRect().height;
310                }
311
312                return 0;
313            }
314        });
315    }
316
317    // logo inside menu ME fix
318    $('.navigation-bar.logo-inside-menu #main_menu > .logo').each(function () {
319        $(this).css('width', $(this).find('.text-logo').outerWidth() + 32);
320    });
321
322});
323
324
325(function ($) {
326
327    function toggleFooter() {
328        var footerTop = footer.offset().top + footer.outerHeight();
329        var pageBottom = pageContent.offset().top + pageContent.height();
330
331        if (footerTop >= pageBottom) {
332            footer.css('visibility', 'visible');
333        } else {
334            footer.css('visibility', '');
335        }
336    }
337
338    function updateFooter() {
339        pageContent.css("margin-bottom", footer.outerHeight() - 1);
340        toggleFooter();
341    }
342
343    var footer = $('.footer.paralax');
344
345    if (footer.length) {
346        if (footer.parents('.no-parallax').length) {
347            footer.css('visibility', 'visible');
348            return;
349        }
350
351        $('.header-wrapper').css('z-index', 1);
352
353        var pageContent = footer.prev();
354        pageContent.addClass('footer-shadow');
355        pageContent.css({
356            'position': 'relative',
357            'z-index': 1
358        });
359
360        jQuery(window).resize(function (e) {
361            updateFooter();
362        });
363
364        jQuery(document).ready(function () {
365            window.setTimeout(function () {
366                updateFooter();
367            }, 100);
368        })
369
370        updateFooter();
371
372        $(window).on('scroll', function () {
373            toggleFooter();
374        });
375    }
376
377
378})(jQuery);
379
380jQuery(function ($) {
381
382    var morphed = $("[data-text-effect]");
383    if ($.fn.typed && morphed.length && JSON.parse(mesmerize_morph.header_text_morph)) {
384        morphed.each(function () {
385            $(this).empty();
386            $(this).typed({
387                strings: JSON.parse($(this).attr('data-text-effect')),
388                typeSpeed: parseInt(mesmerize_morph.header_text_morph_speed),
389                loop: true
390            });
391
392        });
393    }
394});
395
396// OffScreen Menu
397
398(function ($) {
399    var $menus = $('.offcanvas_menu');
400    var $offCanvasWrapper = $('#offcanvas-wrapper');
401
402    if ($offCanvasWrapper.length) {
403        $('html').addClass('has-offscreen');
404        $offCanvasWrapper.appendTo('body');
405
406
407        $offCanvasWrapper.on('kube.offcanvas.ready', function () {
408            $offCanvasWrapper.removeClass('force-hide');
409        });
410
411
412        $offCanvasWrapper.on('kube.offcanvas.open', function () {
413            $('html').addClass('offcanvas-opened');
414        });
415
416
417        $offCanvasWrapper.on('kube.offcanvas.close', function () {
418            $('html').removeClass('offcanvas-opened')
419        });
420    }
421
422
423    $menus.each(function () {
424
425        var $menu = $(this);
426
427        $menu.on('mesmerize.open-all', function () {
428            $(this).find('.menu-item-has-children, .page_item_has_children').each(function () {
429                $(this).addClass('open');
430                $(this).children('ul').slideDown(100);
431            });
432        });
433
434        $menu.find('.menu-item-has-children a, .page_item_has_children a').each(function () {
435            if ($(this).children('i.fa.arrow').length === 0) {
436                $(this).append('<i class="fa arrow"></i>');
437
438            }
439        });
440
441        $menu.on('click', '.menu-item-has-children > a, .page_item_has_children > a', function (event) {
442            var $this = $(this);
443            var $li = $this.closest('li');
444            event.stopPropagation();
445
446            if ($li.children('ul').length === 0) {
447                return true;
448            }
449
450            if ($li.hasClass('open')) {
451                if ($this.is('a')) {
452                    return true;
453                }
454                $li.children('ul').slideUp(100, function () {
455                    $li.find('ul').each(function () {
456                        $(this).parent().removeClass('open');
457                        $(this).css('display', 'none');
458                    })
459                });
460            } else {
461                $li.children('ul').slideDown(100);
462            }
463
464            $li.toggleClass('open');
465
466            event.preventDefault();
467
468        });
469
470        $menu.on('click tap', '.mesmerize-menu-cart', function (event) {
471            event.stopPropagation();
472        });
473
474        $menu.on('click tap', '.menu-item-has-children > a > .arrow, .page_item_has_children  > a > .arrow', function (event) {
475            var $this = $(this);
476            var $li = $this.closest('li');
477            event.stopPropagation();
478            event.preventDefault();
479            $li.toggleClass('open');
480
481            if ($li.hasClass('open')) {
482                $li.children('ul').slideDown(100);
483            } else {
484                $li.children('ul').slideUp(100);
485            }
486        });
487
488        if ($.fn.scrollSpy) {
489            $menu.find('a').scrollSpy({
490                onChange: function () {
491                    $menu.find('.current-menu-item,.current_page_item').removeClass('current-menu-item current_page_item');
492                    $(this).closest('li').addClass('current-menu-item');
493                },
494                onLeave: function () {
495                    $(this).closest('li').removeClass('current-menu-item current_page_item');
496                },
497                smoothScrollAnchor: true,
498                offset: function () {
499                    if ($('.navigation-bar.fixto-fixed').length) {
500                        return $('.navigation-bar.fixto-fixed')[0].getBoundingClientRect().height;
501                    }
502
503                    return 0;
504                }
505            });
506        }
507
508    });
509
510
511    if ($.fn.smoothScrollAnchor) {
512        $('#page > .page-content > .content, #page >  .content').find('a[data-cp-link]').filter(function () {
513            var $el = $(this);
514
515            if ($el.is('[role=tab]') || $el.parent().is('[role=tab]')) {
516                return false;
517            }
518
519            return true;
520
521        }).smoothScrollAnchor();
522
523
524        $('#page > .footer').find('a').filter(function () {
525            var $el = $(this);
526
527            if ($el.is('[role=tab]') || $el.parent().is('[role=tab]')) {
528                return false;
529            }
530            return true;
531
532        }).smoothScrollAnchor();
533    }
534})(jQuery);
535
536
537(function ($) {
538
539
540    function updateCounterCircle($el) {
541        var $valueHolder = $el.find('[data-countup]');
542        var val = $valueHolder.text();
543        val = jQuery.map(val.match(/[-]{0,1}[s\d.]*[\d]+/g), function (x) {
544            return x
545        }).join([]);
546
547        var max = $valueHolder.attr('data-max') !== undefined ? $valueHolder.attr('data-max') : 100;
548        var min = $valueHolder.attr('data-min') !== undefined ? $valueHolder.attr('data-min') : 0;
549
550        if (min > max) {
551            var aux = max;
552            max = min;
553            min = aux;
554        }
555
556        if (!val) {
557            val = min;
558        }
559
560        var percentage = val / max * 100;
561
562        var $circle = $el.find('.circle-bar');
563        var r = $circle.attr('r');
564        var c = Math.PI * (r * 2);
565
566        if (percentage < 0) {
567            percentage = 0;
568        }
569        if (percentage > 100) {
570            percentage = 100;
571        }
572        var pct = c * (100 - percentage) / 100;
573        $circle.css({strokeDashoffset: pct});
574
575        $(function () {
576            if (!wp || !wp.customize) {
577                $circle.parent().height($circle.parent().width());
578            }
579        });
580    }
581
582    function initCounterCircle($circle) {
583        updateCounterCircle($circle);
584
585
586        $circle.find('[data-countup]').bind('countup.update', function () {
587            updateCounterCircle($circle);
588        });
589
590        // $circle.find('[data-countup]').bind('DOMSubtreeModified', updateCircleOnDOMSubtreeModified);
591
592        $circle.data('doCircle', function () {
593            updateCounterCircle($circle);
594        });
595    }
596
597    function initCountUP($self, force) {
598        var min = $self.attr('data-min') !== undefined ? $self.attr('data-min') : 0,
599            stopAt = $self.attr('data-stop'),
600            max = $self.attr('data-max') !== undefined ? $self.attr('data-max') : 100,
601            prefix = $self.attr('data-prefix') || "",
602            suffix = $self.attr('data-suffix') || "",
603            duration = $self.attr('data-duration') || 2000,
604            decimals = $self.attr('data-decimals') || 0;
605
606        if (stopAt !== undefined) {
607            max = stopAt;
608        }
609
610        var formattedMax = '';
611
612        try {
613            var counter = new CountUp($self[0], parseInt(min), parseInt(max), parseInt(decimals), parseInt(duration) / 1000, {
614                prefix: prefix,
615                suffix: suffix,
616                onUpdate: function (value) {
617                    $self.trigger('countup.update', [value]);
618                }
619            });
620
621            formattedMax = counter.options.formattingFn(parseInt(max));
622        } catch (e) {
623            console.error('invalid countup args', {
624                min: min,
625                max: max,
626                decimals: decimals,
627                duration: duration,
628                suffix: suffix,
629                prefix: prefix
630            });
631        }
632
633        $self.data('countup', counter);
634
635
636        $self.attr('data-max-computed', formattedMax);
637
638        if (force) {
639            $self.data('countup').reset();
640        }
641
642        if ($self.isInView(true) || force) {
643            $self.data('countup').start();
644        }
645
646        $self.data('restartCountUp', function () {
647            initCountUP($self);
648        })
649    }
650
651
652    $('.circle-counter').each(function () {
653        initCounterCircle($(this));
654    });
655
656    var $countUPs = $('[data-countup]');
657
658    $countUPs.each(function () {
659        var $self = $(this);
660        initCountUP($self);
661    });
662
663    $(window).on('scroll', function () {
664        $countUPs.each(function () {
665            var $self = $(this);
666
667            if ($self.isInView(true) && !$self.data('one')) {
668                $self.data('countup').start();
669                $self.data('one', true);
670            } else {
671                // $self.data('countup').reset();
672            }
673
674        });
675    });
676
677    $(function () {
678        if (!wp || !wp.customize) {
679            $(window).on('resize', function () {
680                $('.circle-counter .circle-svg').each(function () {
681                    $(this).height($(this).width());
682                });
683
684            });
685        }
686    });
687
688
689    // customizer binding
690
691    if (parent.CP_Customizer) {
692        parent.CP_Customizer.addModule(function (CP_Customizer) {
693            CP_Customizer.hooks.addAction('after_node_insert', function ($node) {
694                if ($node.is('[data-countup]')) {
695
696                    if ($node.closest('.circle-counter').length) {
697                        initCounterCircle($node.closest('.circle-counter'));
698                    }
699
700                    initCountUP($node, true);
701                }
702
703                $node.find('[data-countup]').each(function () {
704
705                    if ($(this).closest('.circle-counter').length) {
706                        initCounterCircle($(this).closest('.circle-counter'));
707                    }
708
709                    initCountUP($(this), true);
710                })
711            });
712        });
713    }
714
715
716	// Animations
717    var nonadmin = $('body');
718/*
719    // Logo
720    if (!nonadmin.hasClass('logged-in')){
721        $('#page .logo img').addClass('to-animate');
722
723
724		$('#page .logo').waypoint( function( direction ) {
725
726				if( direction === 'down' && !$(this.element).hasClass('animated') ) {
727
728					setTimeout(function() {
729						$('#page .to-animate').each(function( k ) {
730							var el = $(this);
731
732							setTimeout ( function () {
733								el.addClass('fadeInRight animated');
734							},  k * 300, 'easeInExpo' );
735
736						});
737					}, 990);
738
739					$(this.element).addClass('animated');
740
741				}
742		} , { offset: '90%' } );
743
744    }
745 */
746
747/*
748
749	// Sluzby
750    if (!nonadmin.hasClass('logged-in')){
751        $('#sluzby .col-xs-12').addClass('to-animate');
752
753		$('#sluzby').waypoint( function( direction ) {
754
755				if( direction === 'down' && !$(this.element).hasClass('animated') ) {
756
757					setTimeout(function() {
758						$('#sluzby .to-animate').each(function( k ) {
759							var el = $(this);
760
761							setTimeout ( function () {
762								el.addClass('fadeInRight animated');
763							},  k * 200, 'easeInSine' );
764
765						});
766					}, 990);
767
768					$(this.element).addClass('animated');
769
770				}
771		} , { offset: '90%' } );
772    }
773
774    // Set href attribute form img #sluzby
775    if (!nonadmin.hasClass('logged-in')){
776        $('#sluzby .col-xs-12 > div').each(function () {
777            $('img', this).wrap('<a class="rdm"></a>');
778            //$('img', this).after('</a>');
779            var lnk = $(this).find('a.button').attr('href');
780            $('a.rdm', this).attr('href', lnk);
781        });
782    }
783
784
785    // Accordion menu - subpages - nemazat!
786    $('#left-column #menu-auto-menu-from-pages > li > a').click(function() {
787        $(this).siblings('.sub-menu').slideToggle(1200);
788        	$(this).parent().addClass('current-menu-parent');
789			$(this).parent().siblings().removeClass('current_page_item');
790
791        //Hide the other panels
792        $(".sub-menu").not($(this).next()).slideUp('fast');
793            $(this).parent().siblings().removeClass('current-menu-item');  // First level
794            $(this).parent().siblings().removeClass('current-menu-parent'); // Two level
795            $(this).parent().siblings().removeClass('current-page-ancestor'); // More then two level
796
797        return false;
798    });
799
800    $('li:has(.current-menu-item)').addClass('current-menu-parent');
801    $('li:has(.current_page_parent)').addClass('current-menu-parent');
802*/
803
804    // Odebrani funkce zoom
805    $('.woocommerce-product-gallery__image img').removeClass('zoomImg');
806
807    // Custom code - add div for section #pocitadlo
808    $('#pocitadlo').prepend('<div class="bg-overlay"></div>');
809
810    (function($) {
811        $(document).ready(function() {
812            // Definice proměnných
813            const $bubble = $('.fa-bars');
814            const $offcanvas = $('#offcanvas-wrapper');
815
816            // Funkce pro otevření menu
817            function openMenu() {
818                $offcanvas
819                    .removeClass('hide force-hide')
820                    .addClass('offcanvas open')
821                    .css('width', '300px');
822            }
823
824            // Funkce pro zavření menu
825            function closeMenu() {
826                $offcanvas
827                    .removeClass('offcanvas open')
828                    .addClass('hide force-hide')
829                    .css('width', '');
830            }
831
832            // Kliknutí na bubble
833            $bubble.on('click', function(e) {
834                e.stopPropagation();
835                if ($offcanvas.hasClass('hide')) {
836                    openMenu();
837                } else {
838                    closeMenu();
839                }
840            });
841
842            // Kliknutí mimo menu
843            $(document).on('click', function(e) {
844                if (!$(e.target).closest('#offcanvas-wrapper').length
845                    && !$(e.target).closest('.fa-bars').length
846                    && $offcanvas.hasClass('open')) {
847                    closeMenu();
848                }
849            });
850
851            // Zabrání zavření při kliknutí uvnitř menu
852            $offcanvas.on('click', function(e) {
853                e.stopPropagation();
854            });
855        });
856    })(jQuery);
857
858})(jQuery);

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.