1var host = location.href; 2var absUrl = ''; 3 4function openEditor(r) { 5 var u = "/edit.opencms.php?resource=" + r; 6 window.open(u, 'targetWindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=1024,height=980') 7} 8 9// When the user clicks on the button, scroll to the top of the document 10 11function is_numeric(n) { 12 return !isNaN(parseFloat(n)) && isFinite(n); 13} 14 15$(document).ready(function () { 16 17 18 $(".openServices").click(function () { 19 $(".openServices").removeClass('show').addClass('hide'); 20 $(".closeServices").removeClass('hide').addClass('show'); 21 console.debug('apro'); 22 }); 23 $(".closeServices").click(function () { 24 $(".closeServices").removeClass('show').addClass('hide'); 25 $(".openServices").removeClass('hide').addClass('show'); 26 console.debug('chiudo'); 27 }); 28 29 /* Tracciamento Click Nuova HP 2021 */ 30 $('.btn-wt-hp').click(function () { 31 getCtWt = $(this).attr('data-ct'); 32 getCk1Wt = $(this).attr('data-ck1'); 33 trackingNewHp(getCtWt, getCk1Wt, ''); 34 }); 35 /* tracciamento link pagine articolo */ 36 $('.page-art a').click(function () { 37 if ($(this).attr('data-wt') === 'click') { 38 wt.sendinfo({linkId: $(this).text()}); 39 } 40 }); 41 /*apertura layer tool di copertura e caricamento priority*/ 42 DeleteCookie('setprodlna', '/', 'tiscali.it'); 43 $('.btn-slide, .btn-wt, #btn-scontrino-mobile, #btn-tc-mobile').click(function () { 44 getCtWt = $(this).attr('data-ct'); 45 getCk1Wt = $(this).attr('data-ck1'); 46 fbq('track', 'ViewContent', { 47 content_type: 'Scopri' 48 }); 49 if ($(this).attr('data-act') === 'bb') { 50 console.log("apro il tc"); 51 $("input#Start_From").val($(this).attr('data-prod')); 52 $('#tool-di-copertura .btnWt').attr('data-ck1', getCk1Wt); 53 $('#tool-di-copertura .btn').attr('data-ck1', getCk1Wt); 54 $('#tool-di-copertura-mobile .btn').attr('data-ck1', getCk1Wt); 55 $("#tool-di-copertura,#tool-di-copertura-mobile").modal('show'); 56 } 57 if ($(this).attr('data-act') === 'oc') { 58 59 shortCode = $(this).attr('data-shortCode'); 60 shortCode_ko = $(this).attr('data-shortCode_ko'); 61 console.group("apro operator check mobile"); 62 console.debug('shortCode = ' + shortCode); 63 console.debug('shortCode_ko = ' + shortCode_ko); 64 console.groupEnd(); 65 66 $('#shortCode').attr('value', shortCode); 67 68 $('#shortCode_ko').attr('value', shortCode_ko); 69 $('#operatorCheck').modal('show'); 70 } 71 if ($(this).attr('data-act') === 'cb') { 72 $("#prospectMod").removeClass("hidden"); 73 $("#upgradeMod").addClass("hidden"); 74 $('#modal-sitofono').modal('show'); 75 $('#type-sit').val('HA'); 76 } 77 }); 78 79 $('#btn-lay_1,#btn-lay_2,#btn-lay_3,#btn-lay_4,#btn-lay_5').click(function () { 80 getCtWt = $(this).attr('data-ct'); 81 getCk1Wt = $(this).attr('data-ck1'); 82 trackingNewHp(getCtWt, getCk1Wt, ''); 83 if ($(this).attr('data-act') == 'bb') { 84 $('#continuaLink').attr('data-pos', 'hp'); 85 $('#continuaLink').attr('data-prod', $(this).attr('data-prod')); 86 $('#continuaLink').attr('data-ck1', getCk1Wt); 87 } 88 $('#modal-vd').modal('show'); 89 }); 90 91 $(".continuaOnline").click(function () { 92 if ($(this).attr('data-pos') == 'hp') { 93 getCtWt = $(this).attr('data-ct'); 94 getCk1Wt = $(this).attr('data-ck1'); 95 trackingNewHp(getCtWt, getCk1Wt, ''); 96 $("input#Start_From").val($(this).attr('data-prod')); 97 $("#tool-di-copertura").modal('show'); 98 } 99 }); 100 101 $('.link-stripe-hp').click(function () { 102 trackingNewHp('Click Stripe HP', 'Scopri', ''); 103 }); 104 $('.control-arrow a').click(function () {
105 getCk1Wt = $(this).attr('data-slide'); 106 trackingNewHp('Click Sliding', 'Freccia ' + getCk1Wt, ''); 107 }); 108 $('.carousel-indicators li').click(function () { 109 trackingNewHp('Click Sliding', 'Pallini', ''); 110 }); 111 $('.alreadyTiscali a , .container-basso .btn , .altriServizi .btn, .infoSocial .btn , .social .btn').click(function () { 112 getCk1Wt = $(this).attr('data-ck1'); 113 if (getCk1Wt.indexOf('<br />') !== -1) { 114 var arr = getCk1Wt.split('<br />'); 115 getCk1Wt = arr[0]; 116 } 117 trackingNewHp('Click Secondo Piano', getCk1Wt, ''); 118 }); 119 $('#tool-di-copertura .btn, #tool-di-copertura-mobile .btn').click(function () { 120 getCk1Wt = $(this).attr('data-ck1'); 121 getStep = $(this).attr('data-step'); 122 checkedValues = ''; 123 if (getStep == 'Step2') { 124 var checkboxes = $('input[name="voce"]'); 125 checkedValues = checkboxes.filter(":checked").map(function () { 126 if (this.value == '0') 127 return 'NO'; 128 else 129 return 'SI'; 130 }).get() 131 } else if (getStep == 'Verifica') { 132 var checkboxes = $('input[name="adsl"]'); 133 checkedValues = checkboxes.filter(":checked").map(function () { 134 if (this.value == '0') 135 return 'NO'; 136 else 137 return 'SI'; 138 }).get() 139 } 140 //alert(checkedValues); 141 items = getCk1Wt.split('-'); 142 if (items[0] === 'PP') { 143 if (getStep == 'Step2' || getStep == 'Verifica') { 144 trackingNewHp('Click Primo Piano', getCk1Wt, 'VC Overlay ' + items[1] + ' ' + getStep + ' (' + checkedValues + ')'); 145 } else { 146 trackingNewHp('Click Primo Piano', getCk1Wt, 'VC Overlay ' + items[1] + ' ' + getStep); 147 } 148 } else { 149 if (getStep == 'Step2' || getStep == 'Verifica') { 150 trackingNewHp('Click Menu Internet e Voce', 'VC Menu Ultrafibra', 'VC Overlay ' + items[1] + ' ' + getStep + ' (' + checkedValues + ')'); 151 } else { 152 trackingNewHp('Click Menu Internet e Voce', 'VC Menu Ultrafibra', 'VC Overlay ' + items[1] + ' ' + getStep); 153 } 154 } 155 156 }); 157 158 $("#viewDetailsMobile").click(function () { 159 if ($("#commonBoxMobile").is(":hidden")) { 160 offs = $("#viewDetailsMobile").offset(); 161 newtop = offs.top - 80; 162 $("#viewDetailsMobile > div > div.col-xs-6.text-right").empty(); 163 $("#viewDetailsMobile > div > div.col-xs-6.text-right").text('Chiudi'); 164 $("#viewDetailsMobile > div > div.col-xs-6.text-right").css({'background': 'url(/static/img/chiudi.png) no-repeat right'}); 165 $(".detailsMobile").css({'border': 'none'}); 166 $("#commonBoxMobile").fadeIn(); 167 $('html, body').animate({scrollTop: newtop}, 'slow'); 168 } else { 169 $("#viewDetailsMobile > div > div.col-xs-6.text-right").empty(); 170 $("#viewDetailsMobile > div > div.col-xs-6.text-right").text('Leggi tutto'); 171 $("#viewDetailsMobile > div > div.col-xs-6.text-right").css({'background': 'url(/static/img/avanti.png) no-repeat right'}); 172 $(".detailsMobile").css({'border-bottom': '1px solid #c0c0c0'}); 173 $("#commonBoxMobile").fadeOut(); 174 $('html, body').animate({scrollTop: -80}, 'slow'); 175 } 176 }); 177 178 $('#pdfLink').click(function () { 179 getCk1Wt = $(this).attr('href'); 180 trackingNewHp('download-pdf', '8 ' + getCk1Wt, ''); 181 }); 182 if ($(window).width() <= 768) { 183 dropdownCasa('m'); 184 } else { 185 dropdownCasa('d'); 186 } 187 188 $('#inbound').change(function () { 189 SetCookie('RETAILER_CODE', this.value, '', '/', 'tiscali.it', ''); 190 $('#rcSetted').text('(' + this.value + ')'); 191 $('#RetailerCode').val(this.value); 192 }); 193 $('#readMore').click(function () { 194 $('#datiSociali').animate({height: "200px"}, 500); 195 $('#readLess').css({'display': 'block'});
196 $('#readMore').css({'display': 'none'}); 197 var textP = $('#datiSociali p').text(); 198 $('#datiSociali p').remove(); 199 $('#datiSociali').html("<div>" + textP + "</div>"); 200 }); 201 $('#readLess').click(function () { 202 $('#datiSociali').animate({height: "130px"}, 500); 203 $('#readMore').css({'display': 'block'}); 204 $('#readLess').css({'display': 'none'}); 205 var textDiv = $('#datiSociali div').text(); 206 $('#datiSociali div').remove(); 207 $('#datiSociali').html("<p>" + textDiv + "</p>"); 208 return false; 209 }); 210 $("#sendNewsletter").click(function () { 211 newsletter(); 212 }); 213 $('#stripe-sitofono,#link-sitofono').click(function () { 214 if (this.id == "stripe-sitofono") { 215 try { 216 wt.sendinfo({linkId: 'link-chiamiamo-noi', customClickParameter: {4: "pulsante"}}); 217 } catch (err) { 218 } 219 } else { 220 try { 221 wt.sendinfo({linkId: 'link-chiamiamo-noi', customClickParameter: {4: "link"}}); 222 } catch (err) { 223 } 224 } 225 $('#tool-di-copertura').modal('hide'); 226 $('#modal-cliente').modal('show'); 227 //$('#modal-sitofono').modal('show'); 228 }); 229 $('#close-sitofono').click(function () { 230 $('#modal-sitofono').modal('hide'); 231 $('#box-form').css({'display': 'block'}); 232 $('#resp-sitofono-text').empty(); 233 $('#num_tel').val(""); 234 $('#resp-sitofono').css({'display': 'none'}); 235 $("#num_tel").css({'border': 'none'}); 236 $('#box-err').css({'display': 'none'}); 237 }); 238 $('#close-cliente').click(function () { 239 $('#modal-cliente').modal('hide'); 240 }); 241 $('.internalModal').click(function () { 242 c = this.href; 243 c = c.replace("layer", "modal"); 244 $('#modalInternal').load(c); 245 $('#modalInternal').modal('show'); 246 return false; 247 }); 248 $("#set-appuntamento").click(function () { 249 lead = $("#id-lead").val(); 250 date = $("#dtp_input2").val(); 251 time = $("#form-time").val(); 252 if (date == "" || time == null) { 253 $("#respAppointment").html('E\' necessario specificare data ed ora dell\'appuntamento'); 254 $("#respAppointment").css({"display": "block"}); 255 return false; 256 } 257 $.ajax({
258 type: "POST", 259 url: "/inc/etc/prenota_appuntamento.php", 260 data: { 261 lead: lead, 262 date: date, 263 time: time 264 }, 265 dataType: "json", 266 success: function (response) { 267 update = response.insert; 268 if (update == 0) { 269 error = response.error; 270 if (error == '1') { 271 $("#respAppointment").html('Non è stato possibile registrare il suo appuntamento la preghiamo di riprovare più tardi.'); 272 } else if (error == '2') { 273 $("#respAppointment").html('La sua richiesta è stata già presa in carico da un nostro consulente verrà contattato nella data da lei richiesta.'); 274 } else if (error == '3') { 275 $("#respAppointment").html('Non è stato possibile registrare il suo appuntamento la preghiamo di riprovare più tardi.'); 276 } 277 } else { 278 $("#respAppointment").html('Il suo appuntamento è stato registrato e verrà preso in carico da un nostro consulente.'); 279 } 280 $("#formAppointment").css({"display": "none"}); 281 $("#respAppointment").css({"display": "block"}); 282 } 283 }); 284 }); 285 $("#ti-chiamiamo-noi").click(function (e) { 286 locate = $(this).attr('href'); 287 targ = $(this).attr('target'); 288 e.preventDefault(); 289 try { 290 wt.sendinfo({linkId: "Ti Chiamiamo Noi"}); 291 } catch (err) { 292 } 293 if (targ == '_blank') { 294 window.open(locate, '_blank'); 295 } else { 296 location.href = locate; 297 } 298 }); 299 $("#badgeImage, #stripeSlide").click(function () { 300 href = $("#badgeImage").attr('data-href'); 301 targ = $("#badgeImage").attr('data-target'); 302 if (targ === "_blank") { 303 window.open(href, '_blank'); 304 } else { 305 window.location = href; 306 } 307 if (this.id === 'badgeImage') { 308 wtfrom = "Badge Image"; 309 } else { 310 wtfrom = "Badge Stripe"; 311 } 312 try { 313 wt.sendinfo({linkId: "Badge Homepage: " + wtfrom}); 314 } catch (err) { 315 } 316 }); 317}); 318 319 320$(window).resize(function () { 321 322 if ($(window).width() <= 768) { 323 dropdownCasa('m'); 324 } else { 325 dropdownCasa('d'); 326 } 327}); 328function trackingNewHp(ct, ck1, ck2) { 329 //console.debug(ct+' - '+ck1+' - '+ck2); 330 try { 331 wt.sendinfo({linkId: ct, customClickParameter: {1: ck1, 2: ck2}}); 332 } catch (err) { 333 } 334} 335 336 337function dropdownCasa(s) { 338 339 /* ========================= 340 HANDLER COMUNI (desktop + mobile) 341 ========================== */ 342 343 // Click sui box prodotto (.boxHref) 344 $(document) 345 .off('click.boxHref') 346 .on('click.boxHref', '.boxHref', function (e) { 347 e.preventDefault(); 348 e.stopImmediatePropagation(); 349 350 var nameProd = 'MN-' + $(this).children('.dropdown-header').text(); 351 var getProd = $(this).attr('data-prod'); 352 var getAction = $(this).attr('data-act'); 353 var getCtWt = $(this).attr('data-ct'); 354 var getCk1Wt = $(this).attr('data-ck1'); 355 356 trackingNewHp(getCtWt, getCk1Wt, ''); 357 358 if (getAction === 'mo') { 359 // link diretto 360 location.href = getProd; 361 } else if (getAction === 'bb') { 362 // apertura tool di copertura 363 $("input#Start_From").val(getProd); 364 $('#tool-di-copertura .btnWt').attr('data-ck1', nameProd); 365 $('#tool-di-copertura .btn').attr('data-ck1', nameProd); 366 $('#tool-di-copertura-mobile .btn').attr('data-ck1', nameProd); 367 $("#tool-di-copertura").modal('show'); 368 // logica geolab originale 369 add_geolab(City, StreetAddress, prov, zip); 370 geolab = false; 371 } 372 }); 373 374 // Tracciamento click su voci semplici di menu 375 $(document) 376 .off('click.dropdownTrack') 377 .on('click.dropdownTrack', '.dropdown-li a, .dropdown-altri a', function () { 378 var getCtWt = $(this).attr('data-ct'); 379 var getMenuTitle = $(this).attr('title'); 380 trackingNewHp(getCtWt, getMenuTitle, ''); 381 }); 382 383 384 /* ========================= 385 DESKTOP 386 ========================== */ 387 if (s === 'd') { 388 389 // rimuovo eventuali handler mobile 390 $(document).off('click.menuDevice'); 391 $(document).off('click.dropdownToggleMobile'); 392 393 // click su .dropdown-toggle (link normali del menu) 394 $(document) 395 .off('click.dropdownToggleDesktop') 396 .on('click.dropdownToggleDesktop', '.dropdown-toggle', function () { 397 var getAnchor = $(this).attr('href'); 398 var getMenuTitle = $(this).attr('title'); 399 400 if (getAnchor !== "#") { 401 trackingNewHp('click-menu', getMenuTitle, ''); 402 } 403 }); 404 405 // mouseenter: apro megamenu e chiudo gli altri 406 $(document) 407 .off('mouseenter.dropdownToggleDesktop') 408 .on('mouseenter.dropdownToggleDesktop', '.dropdown-toggle', function () { 409 var getMegaMenu = $(this).attr('data-menu'); 410 var getMenuTitle = $(this).attr('title'); 411 var getMenuView = $(this).attr('data-view'); 412 413 if (getMenuView === '0') { 414 trackingNewHp('mouse-over', getMenuTitle, ''); 415 $(this).attr('data-view', '1'); 416 } 417 418 $('#megamenu' + getMegaMenu).addClass('open'); 419 420 var otherMenu = $('.navbar-right>li').length; 421 for (var i = 1; i < otherMenu; i++) { 422 if (i != getMegaMenu) { 423 $('#megamenu' + i).removeClass('open'); 424 } 425 } 426 }); 427 428 // mouseleave dal blocco megamenu: chiudo 429 $(document) 430 .off('mouseleave.megaDropdownDesktop') 431 .on('mouseleave.megaDropdownDesktop', '.mega-dropdown-menu', function () { 432 var getMegaMenu = $(this).attr('data-menu'); 433 $('#megamenu' + getMegaMenu).removeClass('open'); 434 }); 435 436 437 /* ========================= 438 MOBILE 439 ========================== */ 440 } else if (s === 'm') { 441 442 // rimuovo handler desktop 443 $(document).off('click.dropdownToggleDesktop'); 444 $(document).off('mouseenter.dropdownToggleDesktop'); 445 $(document).off('mouseleave.megaDropdownDesktop'); 446 447 // Icona hamburger / chiudi menu 448 $(document) 449 .off('click.menuDevice') 450 .on('click.menuDevice', '.menu-device', function (e) { 451 e.preventDefault(); 452 453 var $img = $('.menu-device img'); 454 var state = $img.attr('data-view') || 'closed'; 455 456 457 if (state === 'closed') { 458 $img.attr('src', '/static/img/chiudi.png'); 459 $img.attr('srcset', '/static/img/2x/chiudi.png'); 460 $img.attr('data-view', 'opened'); 461 } else { 462 $img.attr('src', '/img/menu.png'); 463 $img.attr('srcset', '/img/2x/menu.png'); 464 $img.attr('data-view', 'closed'); 465 } 466 }); 467
468 // Click su .dropdown-toggle (apri/chiudi voci del megamenu mobile) 469 $(document) 470 .off('click.dropdownToggleMobile') 471 .on('click.dropdownToggleMobile', '.dropdown-toggle', function (e) { 472 e.preventDefault(); 473 e.stopPropagation(); 474 475 var getMegaMenu = $(this).attr('data-menu'); 476 var classString = $(this).attr('class') || ''; 477 var getClass = classString.split(/\s+/); 478 var $menu = $('#megamenu' + getMegaMenu); 479 var $link = $(this); 480 481 // Debug eventuale 482 // console.log("Click menu mobile:", getMegaMenu, getClass); 483 484 // Se l'elemento ha la classe 'mo' lo salto (link diretto) 485 if ($.inArray('mo', getClass) !== -1) { 486 return; 487 } 488 489 // Inizializzo data-toggle se non presente 490 if (!$menu.attr('data-toggle')) { 491 $menu.attr('data-toggle', 'closed'); 492 } 493 494 var isClosed = $menu.attr('data-toggle') === 'closed'; 495 496 if (isClosed) { 497 // APRO 498 $menu.addClass('open').attr('data-toggle', 'opened'); 499 $menu.removeClass('arrow-menu'); 500 $menu.addClass('arrow-menu-opened'); 501 var hscroll = $(window).height() - 13; 502 $('.navbar-nav').css({'height': hscroll}); 503 504 //$link.css({'background': 'url("/static/img/drop-down.png") 95% 15px no-repeat'}); 505 // console.log("â Menu aperto:", getMegaMenu); 506 } else { 507 // CHIUDO 508 $menu.removeClass('open').attr('data-toggle', 'closed'); 509 $menu.removeClass('arrow-menu-opened'); 510 $menu.addClass('arrow-menu'); 511 //$link.css({'background': 'url("/static/img/avanti.png") 95% 15px no-repeat'}); 512 // console.log("â Menu chiuso:", getMegaMenu); 513 } 514 }); 515 } 516} 517 518 519/* pop up*/ 520function popup(page) { 521 newwin = window.open(page, "abbonati", 'toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,status=no,width=620,height=450,top=0,left=0'); 522} 523 524/* cookies */ 525function GetCookie(name) { 526 var arg = name + "="; 527 var alen = arg.length; 528 var clen = document.cookie.length; 529 var i = 0; 530 while (i < clen) { 531 var j = i + alen; 532 if (document.cookie.substring(i, j) == arg) 533 return getCookieVal(j); 534 i = document.cookie.indexOf(" ", i) + 1; 535 if (i == 0) 536 break; 537 } 538 return null; 539} 540 541function SetCookie(name, value, expires, path, domain, secure) { 542 var today = new Date(); 543 var expires_date = new Date(); 544 if (isFinite(expires)) { 545 expires_date.setTime(today.getTime() + 3600000 * 24 * expires); 546 } else { 547 expires_date = expires; 548 } 549 document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires_date.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? "; secure" : ""); 550} 551 552function DeleteCookie(name, path, domain) { 553 if (GetCookie(name)) { 554 document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Tue, 01-Jan-2002 00:00:01 GMT"; 555 } 556} 557 558function getCookieVal(offset) { 559 var endstr = document.cookie.indexOf(";", offset); 560 if (endstr == -1) 561 endstr = document.cookie.length; 562 return unescape(document.cookie.substring(offset, endstr)); 563} 564 565function uChoice(u) { 566 if (u == 0) { 567 $('body').attr("onunload", 'retention(0)'); 568 } else { 569 $('body').attr("onunload", 'retention(1)'); 570 } 571} 572 573// target blank 574function target() { 575 for (var i = 0; i < document.links.length; i++) { 576 if (document.links[i].className.indexOf('blank') != -1) 577 document.links[i].target = "_blank"; 578 } 579} 580 581window.onload = target; 582//console.debug("actionForm -> "+actionForm); 583// rimozione bordo rosso errore 584function removeError(id) { 585 $("#" + id).css({'background-color': '#FFFFFF'}); 586 setTimeout('$("#msg_errore").css({"display":"none"});', 5000); 587 $('.check' + id).removeClass('glyphicon-remove'); 588 $('.check' + id).removeClass('glyphicon-ok'); 589 // $('.check'+id).addClass('glyphicon-remove'); 590} 591 592 593function checkMail(v) { 594 var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 595 if (reg.test(v) == false) { 596 return false 597 } else { 598 return true 599 } 600} 601 602function add_geolab2(c, a, p, z) { 603 elemTownRic = c; 604 elemTown = c; 605 elemAddress = a; 606 elemProv = p; 607 elemZip = z;
608 setTimeout('init(\'' + geolab + '\');', 500); 609} 610 611function getFallBackProduct(targetProduct, cntId, backUpKey, productChannel, productNumber, label, device, tot_el, req_type, showReview, isShp, dataId, fixPrice) { 612 return new Promise((resolve, reject) => { 613 var apiUrl = 'https://shopping.tiscali.it/shopping/api/eby/product/article/product?v1.8&bckKey=' + backUpKey + '&channel=' + productChannel + '&count=' + productNumber + '&label=' + label + '&device=' + device + '&totalb=' + tot_el + '&req_type=' + req_type + '&showReview=' + showReview + '&isShp=' + isShp + '&uuid=' + dataId + "&fixPrice=" + fixPrice; 614 $.get(apiUrl) 615 .done(function (data) { 616 if (typeof data != 'undefined') { 617 $('.' + targetProduct).html(data); 618 resolve(cntId) 619 } 620 }) 621 .fail(function (xhr, status, error) { 622 reject({'error': xhr.status, 'id': cntId, 'target': targetProduct}) 623 }) 624 }) 625}
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.