1var BBCookieManager, bbCookieApi, BBGlobalSettings = function() { 2 var e = { 3 disabledStatementIds: "", 4 cookieName: "_2BCookieSettings", 5 robots: /googlebot|BaiDuSpider|bingbot|YandexBot|Sogou|Exabot-|Sosospider|facebookexternalhit|Feedfetcher-|Google-|FAST-WebCrawler|FAST Enterprise Crawler|Acoon Robot|ASPSeek|Yahoo-|Chrome-|Exabot|msnbot-|DuckDuckBot|Y!J-ASR\/|Y!J-BRI\/|Y!J-BRJ\/YATS|Y!J-BRO\/YFSJ|Y!J-BRW\/|Y!J-BSC\/|YahooCacheSystem/i, 6 CookieTypeEnum: { 7 Cookie: 1, 8 SessionStorage: 2, 9 LocalStorage: 3 10 }, 11 globalDomains: { 12 domains: [{ 13 domain: "google-analytics.com", 14 cat: ["statistic"] 15 }, { 16 domain: "google.*", 17 cat: ["marketing"] 18 }, { 19 domain: "youtube.com", 20 cat: ["marketing"] 21 }, { 22 domain: "youtube-nocookie.com", 23 cat: ["marketing"] 24 }, { 25 domain: "googleadservices.com", 26 cat: ["marketing"] 27 }, { 28 domain: "googlesyndication.com", 29 cat: ["marketing"] 30 }, { 31 domain: "doubleclick.net", 32 cat: ["marketing"] 33 }, { 34 domain: "facebook.*", 35 cat: ["marketing"] 36 }, { 37 domain: "linkedin.com", 38 cat: ["marketing"] 39 }, { 40 domain: "twitter.com", 41 cat: ["marketing"] 42 }, { 43 domain: "addthis.com", 44 cat: ["marketing"] 45 }, { 46 domain: "bing.com", 47 cat: ["marketing"] 48 }, { 49 domain: "vimeo.com", 50 cat: ["marketing"] 51 }, { 52 domain: "sharethis.com", 53 cat: ["marketing"] 54 }, { 55 domain: "yahoo.com", 56 cat: ["marketing"] 57 }, { 58 domain: "addtoany.com", 59 cat: ["marketing"] 60 }, { 61 domain: "dailymotion.com", 62 cat: ["marketing"] 63 }, { 64 domain: "amazon-adsystem.com", 65 cat: ["marketing"] 66 }] 67 }, 68 Events: { 69 onLoad: "BBCookieManagerOnLoad", 70 onAccept: "BBCookieManagerOnAccept", 71 onWidthdraw: "BBCookieManagerOnWithdraw", 72 onDialogInit: "BBCookieManagerOnDialogInit", 73 onDialogDisplay: "BBCookieManagerOnDialogDisplay", 74 onDialogSettingsInit: "BBCookieManagerOnDialogSettingsInit", 75 onDialogSettingsDisplay: "BBCookieManagerOnDialogSettingsDisplay", 76 onDecline: "BBCookieManagerOnDecline" 77 } 78 }; 79 return e 80}(), Helper = { 81 settings: { 82 enableLogger: !1, 83 scriptId: "BBCookieConsentRur", 84 scriptDecId: "BBCookieConsentDecBuilder", 85 scriptCsId: "BBCookieConsentDec", 86 scriptPsId: "BBPolicyConsentRur", 87 scriptOoId: "BBOptIOConsentRur", 88 scriptWOId: "BBWhistleOpsManagerRur", 89 scriptOcId: "BBOptIOConfirmator", 90 bbCDN: "https://cdn.2b-advice.com/psf", 91 configUrl: "https://prime-psf.2b-advice.com/statementmanager", 92 blobEndpoint: "https://prime-psf.2b-advice.com/statementmanager/v1/attachments", 93 errorMessage: "Oops, file is not uploaded. Please try again later.", 94 maxNumberOfFiles: 10, 95 maxSizeOfFiles: 10485760 96 }, 97 getTranslation: function(e, t) { 98 var o = BBCookieManager.configuration.localizations 99 , n = e.replace(/ /g, "").replace(/"/g, "").replace(/{/g, "").replace(/}/g, "").split("."); 100 return o[n[0]][n[1].replace(t, "")] 101 }, 102 appendEventListener: function(e, t, o) { 103 e.addEventListener ? e.addEventListener(t, o) : e.attachEvent("on" + t, function() { 104 o.call(e) 105 }) 106 }, 107 setCookie: function(e, t, o, n) { 108 var i, a = ""; 109 o && ((i = new Date).setTime(i.getTime() + 24 * o * 60 * 60 * 1e3), 110 a = "; expires=" + i.toUTCString()); 111 var r = e + "=" + (t || "") + a + "; path=/;"; 112 if (null !== n) 113 for (var s = JSON.parse(n), c = 0; c < s.length; c++) 114 r += s[c]; 115 document.cookie = r 116 }, 117 getWildcardCookies: function() { 118 var e = [] 119 , t = BBCookieManager.configuration.cookies; 120 if (t && 0 < t.length) 121 for (var o = 0; o < t.length; o++) 122 t[o].name.includes("*") && e.push(t[o].name); 123 return e 124 }, 125 getCookieByRelativeName: function(e) { 126 for (var t = e.split("*"), o = this.getWildcardCookies(), n = document.cookie.split(";"), i = 0; i < n.length; i++) { 127 for (var a = n[i]; " " === a.charAt(0); ) 128 a = a.substring(1, a.length); 129 var r = a.split("="); 130 if (r && 1 < r.length) { 131 var s = r[0] 132 , c = []; 133 if (s.startsWith(t[0]) && s.endsWith(t[1]) && s.length >= e.length) { 134 for (var g = 0; g < o.length; g++) { 135 var l = o[g].split("*"); 136 s.startsWith(l[0]) && s.endsWith(l[1]) && s.length >= o[g].length && c.push(o[g]) 137 } 138 if (!(1 < c.length)) 139 return s; 140 for (var u = { 141 length: c[0].length, 142 cName: c[0] 143 }, d = 1; d < c.length; d++) 144 c[d].length > u.length && (u = { 145 length: c[d].length, 146 cName: c[d] 147 }); 148 if (u.cName === e) 149 return s 150 } 151 } 152 } 153 return null 154 }, 155 getCookie: function(e) { 156 for (var t = e + "=", o = document.cookie.split(";"), n = 0; n < o.length; n++) { 157 for (var i = o[n]; " " === i.charAt(0); ) 158 i = i.substring(1, i.length); 159 if (0 === i.indexOf(t)) 160 return i.substring(t.length, i.length) 161 } 162 return null 163 }, 164 triggerEvent: function(e, t, o) { 165 var n = document.createEvent("CustomEvent"); 166 n.initCustomEvent(t, !0, !0, o), 167 e.dispatchEvent(n) 168 }, 169 createElement: function(e) { 170 if (e) { 171 var t = document.createElement("div"); 172 return t.innerHTML = e.trim(), 173 t.firstChild 174 } 175 return null 176 }, 177 insertAfter: function(e, t) { 178 t.parentNode.insertBefore(e, t.nextSibling) 179 }, 180 getLanguage: function() { 181 return (navigator.language || navigator.userLanguage).split("-")[0] 182 }, 183 getCookieByName: function(e) { 184 var t = BBCookieManager.configuration.cookies 185 , o = null; 186 if (t && 0 < t.length) 187 for (var n = 0; n < t.length; n++) 188 if (t[n].name.toLowerCase() === e.toLowerCase()) { 189 o = t[n]; 190 break 191 } 192 return o 193 },
194 setCookieContent: function(e, t, o, n) { 195 var i = document.getElementById(e); 196 i && (n ? i.innerHTML = t : i.innerText = t, 197 i.id += o) 198 }, 199 insertContent: function(e, t) { 200 var o = document.getElementById(e); 201 o && o.parentNode.insertBefore(t, o) 202 }, 203 hasAttr: function(e, t) { 204 return e.hasAttribute ? e.hasAttribute(t) : !!e.getAttribute(t) 205 }, 206 isNotNullOrStringEmpty: function(e) { 207 return null != e && "" !== e 208 }, 209 createParamlessUrl: function(e) { 210 if (this.isNotNullOrStringEmpty(e)) { 211 var t = document.createElement("a"); 212 t.href = e; 213 var o = t.cloneNode(!1).href; 214 return o.substring(0, o.indexOf("?")) 215 } 216 return null 217 } 218}, BBCookieLogger = { 219 writeToLog: function(e) { 220 Helper.settings.enableLogger && (e.obj ? console.log("[" + e.funcName + "] - ", e.msg, e.obj) : console.log("[" + e.funcName + "] - ", e.msg)) 221 } 222}, CookieHelper = { 223 set2BCookie: function(e) { 224 var t = this.getCookieLifeTime() 225 , o = this.isAcceptAllCookieCategories(e) ? t.allAccepted : t.notAllAccepted; 226 Helper.setCookie(BBGlobalSettings.cookieName, e, o, '["secure;"]') 227 }, 228 isAcceptAllCookieCategories: function(e) { 229 for (var t = !0, o = JSON.parse(e), n = BBCookieManager.configuration.categoryDefs, i = 0; i < n.length; i++) { 230 if (n[i].countOfCookies && 0 !== n[i].countOfCookies) 231 if (!o[n[i].id]) { 232 t = !1; 233 break 234 } 235 } 236 return t 237 }, 238 getCookieLifeTime: function() { 239 var e = BBCookieManager && BBCookieManager.configuration && BBCookieManager.configuration.cookieLifetime ? BBCookieManager.configuration.cookieLifetime : { 240 allAccepted: null, 241 notAllAccepted: null 242 }; 243 return null === e.allAccepted && (e.allAccepted = 365), 244 null === e.notAllAccepted && (e.notAllAccepted = 365), 245 e 246 }, 247 getCategoryCookies: function(t, e) { 248 return e.filter(function(e) { 249 return e.cat === t 250 }) 251 }, 252 getCategoryInfo: function(e, t) { 253 return e.filter(function(e) { 254 return e.id === t 255 }) 256 }, 257 fillCategoryLabelText: function(e, t, o) { 258 var n = document.getElementById("bbcdCategoryLabel_" + o); 259 n && (n.id += t, 260 n.innerHTML = Helper.getTranslation("dynamic.title-" + e.id)); 261 var i = document.getElementById("bbcdCount"); 262 i && (i.id += t, 263 i.innerHTML = e.countOfCookies) 264 }, 265 insertNode: function(e, t, o, n, i) { 266 return n < BBCookieManager.configuration.categoryDefs.length && (o.appendChild(e), 267 e = document.getElementById(i).cloneNode(!0)), 268 e 269 }, 270 insertCookieNode: function(e, t, o, n, i) { 271 document.getElementById("bbcdSelectedCookies_" + i).id += t; 272 var a = document.getElementById("bbcdCategoryDescription_" + i); 273 a && (a.innerHTML = Helper.getTranslation("dynamic.description-" + o), 274 a.id += t); 275 var r = document.getElementById("bbcdCookies_" + i); 276 if (r && (r.id += t, 277 h = document.getElementById("bbcdCookie_" + i))) { 278 var s = BBCookieManager.configuration.cookies 279 , c = Helper.getTranslation("static.bbcdCookiesExpiry", i) 280 , g = Helper.getTranslation("static.bbcdCookiesProvider", i) 281 , l = !0 282 , u = s.filter(function(e) { 283 return e.cat === o 284 }); 285 u && 0 < u.length && (l = !1); 286 for (var d = 0; d < u.length; d++) { 287 var m, B, h, p = t + "-" + d; 288 (h = document.getElementById("bbcdCookie_" + i)) && (m = h.cloneNode(!0), 289 h.id += p, 290 Helper.setCookieContent("bbcdCookieTitle_" + i, u[d].name, p, !1), 291 Helper.setCookieContent("bbcdCookieDescription_" + i, u[d].description, p, !1), 292 Helper.setCookieContent("bbcdCookieExpiry_" + i, c, p, !1), 293 Helper.setCookieContent("bbcdCookieExpiryText_" + i, u[d].expire, p, !1), 294 B = u[d].provider && "" !== u[d].provider, 295 Helper.setCookieContent("bbcdCookieProvider_" + i, B || u[d].domain && "" !== u[d].domain ? g : "", p, !1), 296 Helper.setCookieContent("bbcdCookieProviderText_" + i, B ? u[d].provider : u[d].domain, p, B)), 297 d < u.length - 1 && r.appendChild(m) 298 } 299 l && h && r.parentNode.removeChild(r) 300 } 301 }, 302 cloneScriptElement: function(e) { 303 var t = document.createElement("script"); 304 for (o = 0; o < e.attributes.length; o++) 305 void 0 !== e.attributes[o].value && "" !== e.attributes[o].value && t.setAttribute(e.attributes[o].name, e.attributes[o].value); 306 return Helper.hasAttr(e, "nomodule") && t.setAttribute("nomodule", ""), 307 void 0 !== e.text && (t.text = e.text), 308 t.setAttribute("type", "text/javascript"), 309 t 310 } 311}, renderEnum = { 312 auto: "auto", 313 ondemand: "ondemand" 314}, ConfigHelper = { 315 isValidGuid: function(e) { 316 return !!(0 < e.length && /^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$/.test(e)) 317 }, 318 getStatementIdFromScript: function(e) { 319 return Helper.hasAttr(e, "data-bbcid") ? e.getAttribute("data-bbcid") : this.getUrlParam("bbcid", e) 320 }, 321 createConfigScript: function(e, t) { 322 var o, n, i;
323 return !e || (o = this.getStatementIdFromScript(e)) && "" !== o && this.isValidGuid(o) && (n = Helper.hasAttr(e, "data-language") ? e.getAttribute("data-language") : this.getUrlParam("language", e), 324 i = t + "/" + o.toLowerCase() + "/bb-config.js", 325 n && "" !== n && (i += "?lang=" + n), 326 i += (-1 < i.indexOf("?") ? "&" : "?") + "rnd=" + (new Date).getTime()), 327 { 328 serialNumber: o, 329 srcValue: i 330 } 331 }, 332 getUrlParam: function(e, t) { 333 if (t && (e = new RegExp("[?&]" + encodeURIComponent(e) + "=([^&#]*)").exec(t.src))) 334 return decodeURIComponent(e[1].replace(/\+/g, " ")) 335 }, 336 callScript: function(e, t, o) { 337 var n = document.getElementsByTagName("script")[0] 338 , i = document.createElement("script"); 339 i.type = "text/javascript", 340 i.charset = "UTF-8", 341 t && (i.async = "async"), 342 i.src = e, 343 i.onload = i.onreadystatechange = function(e, t) { 344 !t && i.readyState && !/loaded|complete/.test(i.readyState) || (i.onload = i.onreadystatechange = null, 345 t || o && o(!0)) 346 } 347 , 348 i.onerror = function() { 349 o && o(!1) 350 } 351 , 352 n.parentNode.insertBefore(i, n) 353 }, 354 getRenderMode: function(e) { 355 var t = Helper.hasAttr(e, "data-rendermode") ? e.getAttribute("data-rendermode") : null; 356 return t && "" !== t && renderEnum.hasOwnProperty(t) ? t : renderEnum.auto 357 } 358}; 359function CookieManagerAPI() { 360 this.renderCookieDeclaration = function(e) { 361 "undefined" != typeof BBCookieDeclarationManager && (BBCookieLogger.writeToLog({ 362 funcName: "renderCookieDeclaration", 363 msg: "call API and insert into parent: ", 364 obj: e 365 }), 366 BBCookieDeclarationManager.renderCookieDeclaration(e)) 367 } 368 , 369 this.renderPolicyDeclaration = function(e) { 370 "undefined" != typeof BBPolicyManager && (BBCookieLogger.writeToLog({ 371 funcName: "renderPolicyDeclaration", 372 msg: "call API and insert into parent: ", 373 obj: e 374 }), 375 BBPolicyManager.renderPolicyDeclaration(e)) 376 } 377 , 378 this.showBanner = function() { 379 psm && (BBCookieLogger.writeToLog({ 380 funcName: "showBanner", 381 msg: "call API" 382 }), 383 psm.renew()) 384 } 385 , 386 this.showSettings = function() { 387 var e = new BannerSettings; 388 e && (BBCookieLogger.writeToLog({ 389 funcName: "showSettings", 390 msg: "call API" 391 }), 392 e.init(), 393 e.show()) 394 } 395 , 396 this.withdraw = function() { 397 void 0 !== BBCookieManager && (BBCookieLogger.writeToLog({ 398 funcName: "withdraw", 399 msg: "call API" 400 }), 401 BBCookieManager.withdraw()) 402 } 403 , 404 this.callbackByCategory = function(e, t) { 405 void 0 !== BBCookieManager && "" !== e && (BBCookieLogger.writeToLog({ 406 funcName: "callbackByCategory", 407 msg: "call API - execute calback for category: ", 408 obj: e 409 }), 410 (void 0 === BBCookieManager.consent[e.toLowerCase()] || BBCookieManager.consent[e.toLowerCase()] || "ignore" === e.toLowerCase()) && t && t()) 411 } 412 , 413 this.setCookie = function(e, t, o) { 414 var n, i, a, r; 415 void 0 !== BBCookieManager && (BBCookieLogger.writeToLog({ 416 funcName: "setCookie", 417 msg: "call API - set cookie: ", 418 obj: e 419 }), 420 n = !1, 421 (i = Helper.getCookieByName(e)) && "" !== i && void 0 !== BBCookieManager.consent[i.cat.toLowerCase()] && !BBCookieManager.consent[i.cat.toLowerCase()] || (n = !0), 422 n && (a = "", 423 o && ((r = new Date).setTime(r.getTime() + 60 * o * 60 * 1e3), 424 a = "; expires=" + r.toUTCString()), 425 document.cookie = e + "=" + (t || "") + a)) 426 } 427 , 428 this.registerEvent = function(e, t) { 429 BBCookieLogger.writeToLog({ 430 funcName: "registerEvent", 431 msg: "call API - register function for even: ", 432 obj: e 433 }), 434 window.addEventListener(e, function(e) { 435 t && t() 436 }) 437 } 438 , 439 this.appendSrcTag = function(e, t, o) { 440 var n; 441 e && o && void 0 !== BBCookieManager && (BBCookieLogger.writeToLog({ 442 funcName: "appendSrcTag", 443 msg: "call API - append element for category: " + t, 444 obj: e 445 }), 446 "SCRIPT" === e.tagName ? (Helper.hasAttr(e, "src") && BBCookieManager.preloadMutationScript(e.src), 447 e.setAttribute(BBCookieManager.cookieElemData, t), 448 e.origScriptType = e.type, 449 e.origOuterHTML = e.outerHTML, 450 e.type = "text/plain") : BBCookieManager.isCheckedSrcTagElement(e.tagName) && (e.setAttribute(BBCookieManager.cookieElemData, t), 451 "" !== (n = Helper.hasAttr(e, "src") ? e.getAttribute("src") : "") && (e.setAttribute("data-src", n), 452 e.removeAttribute("src"))), 453 o.appendChild(e)) 454 } 455 , 456 this.runSrcTags = function() { 457 if (void 0 !== BBCookieManager) { 458 BBCookieLogger.writeToLog({ 459 funcName: "runSrcTags", 460 msg: "call API - run src elements" 461 }); 462 for (var e = document.getElementsByTagName("script"), t = [], o = 0; o < e.length; o++) 463 e[o].hasAttribute("type") && "text/plain" === e[o].getAttribute("type").toLowerCase() && t.push(e[o]); 464 BBCookieManager.runScripts(t) 465 } 466 } 467} 468"undefined" == typeof BBCookieControler && (BBCookieControler = {}), 469BBCookieControler.start = function(e) { 470 this.cookieElemData = "data-bbcc", 471 this.cookieCssClass = "bbcc", 472 this.cookieName = e, 473 this.source = null, 474 this.deferMutations = [], 475 this.nonDeferMutations = [], 476 this.srcTagsMutations = [], 477 this.isAutoBlockingMode = !0, 478 this.cookieValues = "", 479 this.consented = !1, 480 this.doManualMutation = !1, 481 this.categoryInformation = [], 482 this.manualMutationDocAttr = [], 483 this.manualMutationOnloadListeners = [], 484 this.mutationAppName = "", 485 this.mutateEventListeners = !1, 486 this.windowOnloadTriggered = !1, 487 this.manualMutationScripts = [], 488 this.manualMutationDeferScripts = [], 489 this.manualMutationEventListeners = [], 490 this.orgDocumentWrite = null, 491 this.configuration = { 492 loaded: !1, 493 tags: [], 494 globalDomains: [], 495 categoryDefs: [], 496 cookies: [] 497 }, 498 this.consent = {}, 499 this.srcTagsElements = ["iframe", "img", "embed", "video", "audio", "picture", "source"], 500 this.mutationDisablingParams = ["elementor-preview"], 501 this.init = function() { 502 if (!navigator.userAgent.match(BBGlobalSettings.robots)) { 503 var t, e = ConfigHelper.getStatementIdFromScript(this.findSource()); 504 if ("" !== e && null !== e && "" !== BBGlobalSettings.disabledStatementIds) 505 if (e.match(BBGlobalSettings.disabledStatementIds)) 506 return; 507 this.isPreviewMode() ? (t = this).getConfigurations(function() { 508 var e = t.createDialogScript(); 509 ConfigHelper.callScript(e, !0, null) 510 }) : (this.orgDocumentWrite = document.write,
511 "cookie"in document && (this.setConsentFromCookie(), 512 this.setBlockingMode(), 513 this.isAutoBlockingMode && this.initMutationObserver()), 514 window.addEventListener ? window.addEventListener("load", o, !1) : window.attachEvent("onload", o)) 515 } 516 function o() { 517 BBCookieManager && !BBCookieManager.doManualMutation && BBCookieManager.doAfterStopMutation(), 518 BBCookieManager.windowOnloadTriggered = !0, 519 window.removeEventListener ? window.removeEventListener("load", o, !1) : window.detachEvent && window.detachEvent("onload", o) 520 } 521 } 522 , 523 this.doAfterStopMutation = function() { 524 BBCookieLogger.writeToLog({ 525 funcName: "doAfterStopMutation", 526 msg: "Start" 527 }), 528 BBCookieManager.stopMutationObserver(), 529 setTimeout(function() { 530 BBCookieManager.triggerGTMEvents(), 531 BBCookieManager.showHideSrcElement(), 532 BBCookieManager.triggerOnloadCallbacks(), 533 BBCookieLogger.writeToLog({ 534 funcName: "doAfterStopMutation", 535 msg: "Stop" 536 }), 537 document.write = BBCookieManager.orgDocumentWrite 538 }, 1e3) 539 } 540 , 541 this.triggerOnloadCallbacks = function() { 542 var e; 543 this.consented && ("function" == typeof BBCookieManagerCallbackOnLoad && BBCookieManagerCallbackOnLoad(), 544 (e = document.createEvent("Event")).initEvent(BBGlobalSettings.Events.onLoad, !0, !0), 545 window.dispatchEvent(e)) 546 } 547 , 548 this.createDialogScript = function() { 549 return Helper.settings.bbCDN + "/js/bb-ui.js" 550 } 551 , 552 this.setBlockingMode = function() { 553 var e, t = this.findSource(); 554 t && (e = t.getAttribute("data-mode"), 555 this.isAutoBlockingMode = !e || "auto" === e.toLowerCase()) 556 } 557 , 558 this.checkScriptAndRunByCategory = function(e, t) { 559 BBCookieLogger.writeToLog({ 560 funcName: "checkScriptAndRunByCategory", 561 msg: "Checking script element", 562 obj: e 563 }), 564 BBCookieManager.startJQueryHold(); 565 var o = "" 566 , n = "" 567 , i = !1 568 , a = !1; 569 Helper.hasAttr(e, "src") && (o = e.getAttribute("src"), 570 i = !0), 571 Helper.hasAttr(e, "defer") && (a = !0), 572 void 0 !== e.origOuterHTML && (n = this.getCookieCategories(e.origOuterHTML, o, e, !0)), 573 i && "" !== n && 0 <= o.toLocaleLowerCase().indexOf("jquery") && (n = ""), 574 "" !== (n = this.setUserScriptCategory(e, n)) && e.setAttribute(BBCookieManager.cookieElemData, n), 575 BBCookieLogger.writeToLog({ 576 funcName: "checkScriptAndRunByCategory", 577 msg: "Category is: " + n 578 }); 579 var r, s, c = e.parentNode; 580 "" === n || this.canRunScriptByCategory(e, n) ? "text/plain" === e.type && null !== c ? (BBCookieLogger.writeToLog({ 581 funcName: "checkScriptAndRunByCategory", 582 msg: "Run script", 583 obj: e 584 }), 585 (r = CookieHelper.cloneScriptElement(e)).consentProcessed = "1", 586 r.isCloned = !0, 587 s = Helper.hasAttr(r, "nomodule"), 588 !i || a || Helper.hasAttr(e, "async") || s || (r.onload = function() { 589 BBCookieLogger.writeToLog({ 590 funcName: "checkScriptAndRunByCategory", 591 msg: "onload method for script:", 592 obj: r 593 }), 594 t && BBCookieManager.checkAndRunByCategory(t) 595 } 596 , 597 r.onerror = function() { 598 BBCookieLogger.writeToLog({ 599 funcName: "checkScriptAndRunByCategory", 600 msg: "onerror method for script:", 601 obj: r 602 }), 603 t && BBCookieManager.checkAndRunByCategory(t) 604 } 605 ), 606 r.origOuterHTML = e.origOuterHTML, 607 void 0 !== e.origScriptType && (r.type = e.origScriptType), 608 BBCookieLogger.writeToLog({ 609 funcName: "checkScriptAndRunByCategory", 610 msg: "Insert script clone element", 611 obj: r 612 }), 613 c.insertBefore(r, e), 614 c.removeChild(e), 615 (!i || a || Helper.hasAttr(e, "async") || s) && t && BBCookieManager.checkAndRunByCategory(t)) : t && BBCookieManager.checkAndRunByCategory(t) : (e.type = "text/plain", 616 t && BBCookieManager.checkAndRunByCategory(t)) 617 } 618 , 619 this.checkAndRunByCategory = function(e) { 620 var t, o; 621 BBCookieLogger.writeToLog({ 622 funcName: "checkAndRunByCategory", 623 msg: "Start checking script elements", 624 obj: e 625 }), 626 0 < e.length ? "SCRIPT" === (t = e.shift()).tagName ? BBCookieManager.checkScriptAndRunByCategory(t, e) : BBCookieManager.checkAndRunByCategory(e) : 0 < this.deferMutations.length ? (BBCookieLogger.writeToLog({ 627 funcName: "checkAndRunByCategory",
628 msg: "Run checking scripts (Defer)" 629 }), 630 BBCookieManager.checkAndRunByCategory(BBCookieManager.deferMutations)) : (BBCookieLogger.writeToLog({ 631 funcName: "checkAndRunByCategory", 632 msg: "Finish" 633 }), 634 o = BBCookieManager.createDialogScript(), 635 ConfigHelper.callScript(o, !0, null), 636 setTimeout(function() { 637 BBCookieManager.endJQueryHold(), 638 BBCookieManager.dispatchEventsOnFinish() 639 }, 1e3)) 640 } 641 , 642 this.canRunScriptByCategory = function(e, t) { 643 if ("" !== i && "ignore" === t) 644 return !0; 645 BBCookieManager.fillConsent(); 646 var o = "" !== t && null !== t ? t.split(",") : null !== e.getAttribute(this.cookieElemData) ? e.getAttribute(this.cookieElemData).toLowerCase().split(",") : [] 647 , n = !0; 648 for (j = 0; j < o.length; j++) { 649 var i = o[j].replace(/^\s*/, "").replace(/\s*$/, ""); 650 "" === i || void 0 === BBCookieManager.consent[i.toLowerCase()] || BBCookieManager.consent[i.toLowerCase()] || (n = !1) 651 } 652 return n 653 } 654 , 655 this.processPostMutations = function() { 656 if (0 < this.srcTagsMutations.length) { 657 for (var e = 0; e < this.srcTagsMutations.length; e++) { 658 var t = this.srcTagsMutations[e]; 659 this.processMutation(t, !0) 660 } 661 this.srcTagsMutations = [] 662 } 663 } 664 , 665 this.renewUrl = function(e) { 666 var t = document.createElement("a"); 667 return t.href = e, 668 t.cloneNode(!1).href 669 } 670 , 671 this.manualMutation = function(e) { 672 var t = document.implementation.createHTMLDocument("" + (document.title || "")); 673 document.replaceChild(document.importNode(t.documentElement, !0), document.documentElement); 674 for (var o = 0; o < this.manualMutationDocAttr.length; o++) 675 document.documentElement.setAttribute(this.manualMutationDocAttr[o].name, this.manualMutationDocAttr[o].value); 676 document.documentElement.innerHTML = e; 677 for (var n = 0; n < BBCookieManager.srcTagsElements.length; n++) { 678 var i = document.getElementsByTagName(BBCookieManager.srcTagsElements[n]); 679 if (i && 0 < i.length) 680 for (var a = 0; a < i.length; a++) 681 Helper.hasAttr(i[a], "src") && (i[a].setAttribute("data-src", i[a].getAttribute("src")), 682 i[a].removeAttribute("src")) 683 } 684 document.getElementById(Helper.settings.scriptId) || document.head.appendChild(this.source), 685 this.getConfigurations(function() { 686 var e; 687 0 < document.getElementsByTagName("base").length && navigator.userAgent.match(/IEMobile|Trident/i) && (e = document.getElementsByTagName("*"), 688 [].forEach.call(e, function(e) { 689 var t, o; 690 Helper.hasAttr(e, "src") ? e.src = BBCookieManager.renewUrl(e.src) : Helper.hasAttr(e, "href") && (e.href = BBCookieManager.renewUrl(e.href)), 691 "LINK" === e.tagName && Helper.hasAttr(e, "rel") && (t = e.cloneNode(!0), 692 (o = e.parentNode) && (o.insertBefore(t, e), 693 o.removeChild(e))) 694 })); 695 var t = document.getElementsByTagName("script"); 696 [].forEach.call(t, function(e) { 697 var t, o, n; 698 BBCookieManager.isBBElem(e) && ((t = Helper.hasAttr(e, "id") ? e.getAttribute("id") : null) !== Helper.settings.scriptCsId && t !== Helper.settings.scriptPsId && t !== Helper.settings.scriptOoId && t !== Helper.settings.scriptOcId && t !== Helper.settings.scriptWOId || (o = e.parentNode, 699 n = CookieHelper.cloneScriptElement(e), 700 Helper.hasAttr(e, "async") && (n.async = "async"), 701 o && (o.insertBefore(n, e), 702 o.removeChild(e)))), 703 e.origOuterHTML = e.outerHTML, 704 Helper.hasAttr(e, "defer") && Helper.hasAttr(e, "src") ? BBCookieManager.manualMutationDeferScripts.push(e) : BBCookieManager.manualMutationScripts.push(e) 705 }); 706 for (var o = 0; o < BBCookieManager.srcTagsElements.length; o++) { 707 var n = document.getElementsByTagName(BBCookieManager.srcTagsElements[o]); 708 if (n && 0 < n.length) 709 for (var i = 0; i < n.length; i++) 710 BBCookieLogger.writeToLog({ 711 funcName: "manualMutation", 712 msg: "Check SRC element: ", 713 obj: n[i] 714 }), 715 BBCookieManager.processMutation(n[i], null) 716 } 717 BBCookieManager.checkScriptAndRunByCategoryManual(BBCookieManager.manualMutationScripts) 718 }) 719 } 720 , 721 this.cloneManualEvtListeners = function(e, t) { 722 for (var o = 0; o < this.manualMutationEventListeners.length; o++) 723 this.manualMutationEventListeners[o].target === e && t.addEventListenerBase(this.manualMutationEventListeners[o].type, this.manualMutationEventListeners[o].listener, this.manualMutationEventListeners[o].options) 724 } 725 , 726 this.checkScriptAndRunByCategoryManual = function(e) { 727 var t, o, n, i, a; 728 BBCookieLogger.writeToLog({ 729 funcName: "checkScriptAndRunByCategoryManual", 730 msg: "Start checking script elements", 731 obj: e 732 }), 733 BBCookieManager.startJQueryHold(), 734 0 < e.length ? (t = e.shift(), 735 BBCookieManager.processMutation(t, !0), 736 BBCookieLogger.writeToLog({ 737 funcName: "checkScriptAndRunByCategoryManual", 738 msg: "Checking script element", 739 obj: t 740 }), 741 o = t.parentNode, 742 this.isBBElem(t && null !== o) ? BBCookieManager.checkScriptAndRunByCategoryManual(e) : ((n = CookieHelper.cloneScriptElement(t)).type = t.type, 743 this.cloneManualEvtListeners(t, n), 744 i = !(n.consentProcessed = "1"), 745 Helper.hasAttr(t, "src") && (i = !Helper.hasAttr(n, "nomodule")), 746 a = "text/plain" === n.getAttribute("type"), 747 i && !a && (n.onload = function() { 748 BBCookieLogger.writeToLog({ 749 funcName: "checkScriptAndRunByCategoryManual", 750 msg: "onload method for script:", 751 obj: n 752 }), 753 BBCookieManager.checkScriptAndRunByCategoryManual(e), 754 BBCookieManager.startJQueryHold() 755 } 756 , 757 n.onerror = function() { 758 BBCookieLogger.writeToLog({ 759 funcName: "checkScriptAndRunByCategoryManual", 760 msg: "onerror method for script:", 761 obj: n 762 }), 763 BBCookieManager.checkScriptAndRunByCategoryManual(e), 764 BBCookieManager.startJQueryHold() 765 } 766 ), 767 BBCookieLogger.writeToLog({ 768 funcName: "checkScriptAndRunByCategoryManual", 769 msg: "Insert script clone element", 770 obj: n 771 }), 772 o.insertBefore(n, t), 773 o.removeChild(t), 774 a && (Helper.hasAttr(t, "defer") && i ? this.deferMutations.push(t) : this.nonDeferMutations.push(t)), 775 i && !a || BBCookieManager.checkScriptAndRunByCategoryManual(e))) : 0 < this.manualMutationDeferScripts.length ? (BBCookieLogger.writeToLog({ 776 funcName: "checkScriptAndRunByCategoryManual", 777 msg: "Check defer scripts" 778 }), 779 this.checkScriptAndRunByCategoryManual(this.manualMutationDeferScripts)) : setTimeout(function() { 780 BBCookieLogger.writeToLog({ 781 funcName: "checkScriptAndRunByCategoryManual", 782 msg: "Finish" 783 }), 784 BBCookieManager.stopMutationOverrideEventListeners(), 785 BBCookieManager.endJQueryHold(), 786 "undefined" == typeof EventTarget && BBCookieManager.dispatchEventsOnFinish(), 787 BBCookieLogger.writeToLog({ 788 funcName: "checkScriptAndRunByCategoryManual", 789 msg: "Call do after stop for manual mutation" 790 }), 791 BBCookieManager.doAfterStopMutation() 792 }, 1e3) 793 } 794 , 795 this.overrideManualMutationEventListeners = function() { 796 var n = this; 797 this.mutateEventListeners = !0, 798 "undefined" != typeof EventTarget && void 0 === EventTarget.prototype.addEventListenerBase && (EventTarget.prototype.addEventListenerBase = EventTarget.prototype.addEventListener, 799 EventTarget.prototype.addEventListener = function(e, t, o) { 800 n.mutateEventListeners && !n.isInternalEventListener(e, this, t) ? "DOMContentLoaded" === e || "load" === e || "onload" === e || "readystatechange" === e ? n.manualMutationOnloadListeners.push({ 801 target: this, 802 type: e, 803 listener: t, 804 options: o 805 }) : (n.manualMutationEventListeners.push({ 806 target: this, 807 type: e, 808 listener: t, 809 options: o 810 }), 811 this.addEventListenerBase(e, t, o)) : this.addEventListenerBase(e, t, o) 812 } 813 ) 814 } 815 , 816 this.isInternalEventListener = function(e, t) { 817 var o = !1; 818 return "beforescriptexecute" === e && void 0 !== t.origOuterHTML || "load" !== e && "error" !== e && (o = !0), 819 o 820 } 821 , 822 this.initMutationObserver = function() { 823 document.write = function(e) { 824 BBCookieManager.checkDocumentWriteElement(e) 825 } 826 ; 827 var e = !0; 828 if ("function" != typeof MutationObserver && "object" != typeof MutationObserver && (e = !1), 829 document && document.documentElement && Helper.hasAttr(document.documentElement, "ng-app") && (this.mutationAppName = document.documentElement.getAttribute("ng-app"), 830 document.documentElement.removeAttribute("ng-app")), 831 e && navigator.userAgent.match(/IEMobile|Trident|Edge/i)) { 832 for (var t, o, n, i = 0; i < document.documentElement.attributes.length; i++) { 833 var a = document.documentElement.attributes[i].name 834 , r = ""; 835 document.documentElement.attributes[i].value && (r = document.documentElement.attributes[i].value), 836 this.manualMutationDocAttr.push({ 837 name: a, 838 value: r 839 }) 840 } 841 e = !1, 842 this.overrideManualMutationEventListeners(), 843 window.manualMutation || (this.doManualMutation = !0, 844 window.manualMutation = this.doManualMutation), 845 this.doManualMutation && document.implementation && "function" == typeof document.implementation.createHTMLDocument && ((t = document.implementation.createHTMLDocument("")).documentElement.innerHTML = "<html><head></head><body></body></html>", 846 document.replaceChild(document.importNode(t.documentElement, !0), document.documentElement)), 847 this.doManualMutation && ("function" == typeof window.stop && window.stop(), 848 o = new XMLHttpRequest, 849 n = "", 850 o.onreadystatechange = function() { 851 4 === o.readyState && (n = o.responseText, 852 BBCookieManager.manualMutation(n)) 853 } 854 , 855 o.open("GET", document.URL, !0), 856 o.send(null)) 857 } 858 e && (this.mutationObserver = new MutationObserver(this.mutationHandler), 859 this.mutationObserver.observe(document.documentElement, { 860 childList: !0, 861 subtree: !0 862 }), 863 this.configuration.loaded || this.getConfigurations()) 864 } 865 , 866 this.checkDocumentWriteElement = function(e) { 867 var t = Helper.createElement(e); 868 t && t.tagName && BBCookieManager.isCheckedSrcTagElement(t.tagName) ? (t.isDW = !0, 869 BBCookieManager.configuration.loaded ? BBCookieManager.processMutation(t, null) : BBCookieManager.doListForMutation(t)) : t && t.tagName && "SCRIPT" === t.tagName ? BBCookieManager.configuration.loaded ? (t.origScriptType = t.type, 870 t.type = "text/plain", 871 document.body ? document.body.appendChild(t) : document.head.appendChild(t), 872 BBCookieLogger.writeToLog({ 873 funcName: "document.write", 874 msg: "Check document write script", 875 obj: t 876 }), 877 BBCookieManager.checkScriptAndRunByCategory(t, null)) : BBCookieManager.doListForMutation(t) : document.body ? document.body.insertAdjacentHTML("beforeend", e) : document.head.insertAdjacentHTML("beforeend", e) 878 } 879 , 880 this.stopMutationOverrideEventListeners = function() { 881 this.mutateEventListeners && setTimeout(function() { 882 BBCookieManager.mutateEventListeners = !1, 883 BBCookieManager.applyOverrideEventListeners(), 884 "" !== BBCookieManager.mutationAppName && angular && angular.bootstrap && angular.bootstrap(document.documentElement, [BBCookieManager.mutationAppName]) 885 }, 1) 886 } 887 , 888 this.overrideEventOnloaded = [], 889 this.overrideEventOnloading = [], 890 this.applyOverrideEventListeners = function() { 891 for (var e, t = 0; t < this.manualMutationOnloadListeners.length; t++) 892 try { 893 var o = this.manualMutationOnloadListeners[t]; 894 if (o.target && null !== o.target && void 0 !== o.target) { 895 if (o.target.addEventListenerBase(o.type, o.listener, o.options), 896 (!BBCookieManager.windowOnloadTriggered || o.target !== window && o.target !== document) && o.target !== window && o.target !== document) 897 try { 898 (e = document.createEvent("Event")).initEvent(mutationListenert.type, !0, !0), 899 o.target.dispatchEvent(e) 900 } catch (t) {} 901 } else { 902 var n = o.target.toString() + o.type.toString(); 903 BBCookieManager.overrideEventOnloaded.indexOf(n) < 0 && (BBCookieManager.overrideEventOnloaded.push(n), 904 BBCookieManager.overrideEventOnloading.push({ 905 target: o.target, 906 type: o.type 907 })) 908 } 909 } catch (t) {} 910 for (t = 0; t < BBCookieManager.overrideEventOnloading.length; t++) 911 try { 912 (e = document.createEvent("Event")).initEvent(BBCookieManager.overrideEventOnloading[t].type, !0, !0), 913 BBCookieManager.overrideEventOnloading[t].target.dispatchEvent(e) 914 } catch (t) {} 915 !BBCookieManager.windowOnloadTriggered || "function" != typeof window.onload || null !== document.body.getAttribute("onload") && document.body.onload === window.onload || window.onload(), 916 this.manualMutationOnloadListeners = [] 917 } 918 , 919 this.getConfigurations = function(r) { 920 var e = ConfigHelper.createConfigScript(this.findSource(), Helper.settings.configUrl); 921 this.serialNumber = e.serialNumber, 922 this.configuration.tags = [], 923 ConfigHelper.callScript(e.srcValue, !0, function(e) { 924 if (BBCookieManager.configuration.loaded = e, 925 BBCookieManager.configuration.loaded || console.log("The configuration file cannot be downloaded. The current domain name doesn't match with published statement domain name."), 926 0 === BBCookieManager.configuration.globalDomains.length) 927 for (var t = 0; t < BBCookieManager.configuration.tags.length; t++) { 928 var o, n = BBCookieManager.configuration.tags[t]; 929 !n.url || "" === n.url || "" !== (o = BBCookieManager.getHostnameFromURL(n.url)) && o !== window.location.hostname && BBCookieManager.configuration.globalDomains.push({ 930 domain: o, 931 cat: n.cat 932 }) 933 } 934 for (var i = BBCookieManager.configuration.categoryDefs, a = 0; a < i.length; a++) 935 BBCookieManager.categoryInformation.push({ 936 id: i[a].id, 937 countOfCookies: void 0 !== i[a].countOfCookies ? i[a].countOfCookies : CookieHelper.getCategoryCookie
937s(i[a].id, BBCookieManager.configuration.cookies).length 938 }); 939 BBCookieManager.configuration.loaded && "undefined" != typeof BBCookieDeclarationManager && BBCookieDeclarationManager.init(), 940 r && r() 941 }) 942 } 943 , 944 this.mutationHandler = function(e, t) { 945 var o = !0; 946 BBCookieManager.configuration.loaded && (o = !1, 947 BBCookieManager.processPostMutations()); 948 for (var n = 0; n < e.length; n++) { 949 var i = e[n]; 950 if ("childList" === i.type) 951 for (var a = 0; a < i.addedNodes.length; a++) { 952 var r = i.addedNodes[a]; 953 1 === r.nodeType && void 0 === r.isCloned && !BBCookieManager.isInIgnoredSubtree(r) && (o || "SCRIPT" === r.tagName ? BBCookieManager.doListForMutation(r) : BBCookieManager.processMutation(r, !1)) 954 } 955 } 956 } 957 , 958 this.setUserScriptCategory = function(e, t) { 959 return Helper.hasAttr(e, BBCookieManager.cookieElemData) && (t = e.getAttribute(BBCookieManager.cookieElemData)), 960 t 961 } 962 , 963 this.processMutation = function(e, t) { 964 BBCookieLogger.writeToLog({ 965 funcName: "processMutation", 966 msg: "Start - is set category: " + t, 967 obj: e 968 }); 969 var o, n, i, a, r, s, c = !0; 970 !t && this.isBBElem(e) && (c = !1), 971 e.consentProcessed && "1" === e.consentProcessed && (c = !1), 972 c && (BBCookieLogger.writeToLog({ 973 funcName: "processMutation", 974 msg: "doMutation" 975 }), 976 n = o = "", 977 i = !1, 978 "SCRIPT" === e.tagName ? (e.consentProcessed = "1", 979 Helper.hasAttr(e, "src") && (n = e.getAttribute("src"), 980 i = !0), 981 t && (void 0 !== e.origOuterHTML ? o = this.getCookieCategories(e.origOuterHTML, n, e, !0) : (o = this.getCookieCategories(e.outerHTML, n, e, !0), 982 null !== e.type && void 0 !== e.type && "" !== e.type && "text/plain" !== e.type && (e.origScriptType = e.type)), 983 o = this.setUserScriptCategory(e, o)), 984 i && "" !== o && 0 <= n.toLocaleLowerCase().indexOf("jquery") && (o = ""), 985 "" !== o && e.setAttribute(BBCookieManager.cookieElemData, o), 986 BBCookieLogger.writeToLog({ 987 funcName: "processMutation", 988 msg: "Category name is: " + o 989 }), 990 "" === o || this.canRunScriptByCategory(e, o) ? t && "text/plain" === e.type && (BBCookieLogger.writeToLog({ 991 funcName: "processMutation", 992 msg: "Run script", 993 obj: e 994 }), 995 a = e.parentNode, 996 (r = CookieHelper.cloneScriptElement(e)).consentProcessed = "1", 997 r.isCloned = !0, 998 r && (r.origOuterHTML = e.origOuterHTML, 999 void 0 !== e.origScriptType && (r.type = e.origScriptType), 1000 null !== a && (BBCookieLogger.writeToLog({ 1001 funcName: "processMutation", 1002 msg: "Insert script clone element", 1003 obj: r 1004 }), 1005 a.insertBefore(r, e), 1006 a.removeChild(e)))) : e.type = "text/plain") : this.isCheckedSrcTagElement(e.tagName) && (BBCookieLogger.writeToLog({ 1007 funcName: "processMutation", 1008 msg: "Check src elements", 1009 obj: e 1010 }), 1011 n = Helper.hasAttr(e, "data-src") ? e.getAttribute("data-src") : Helper.hasAttr(e, "src") ? e.getAttribute("src") : "", 1012 o = this.getCookieCategories(e.origOuterHTML, n, e, !0), 1013 "" !== (o = this.setUserScriptCategory(e, o)) && e.setAttribute(this.cookieElemData, o), 1014 s = this.canRunScriptByCategory(e, o), 1015 "" === o || s ? (Helper.hasAttr(e, "data-src") && (e.setAttribute("src", e.getAttribute("data-src")), 1016 e.removeAttribute("data-src"), 1017 this.prepareMediaElement(e)), 1018 e.consentProcessed = "1") : "" === o || s || Helper.hasAttr(e, "data-src") || (e.setAttribute("data-src", e.getAttribute("src")), 1019 e.removeAttribute("src")), 1020 e.isDW && (e.isDW = !1, 1021 document.body ? document.body.appendChild(e) : document.head.appendChild(e)))) 1022 } 1023 , 1024 this.getHashCode = function(e) { 1025 if (!e) 1026 return null; 1027 var t = 0; 1028 if (0 === (e = e.replace(/\r\n|\n|\r|\t|\s/g, "")).length) 1029 return t; 1030 for (var o = 0; o < e.length; o++) { 1031 t = (t << 5) - t + e.charCodeAt(o); 1032 t |= 0 1033 } 1034 return t 1035 } 1036 , 1037 this.getCookieCategories = function(e, t, o, n) { 1038 for (var i = "", a = 0; a < this.configuration.tags.length; a++) { 1039 var r = this.configuration.tags[a]; 1040 if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.paramlessUrl) && r.paramlessUrl.toLowerCase() === Helper.createParamlessUrl(t.toLowerCase())) { 1041 i = this.cookieCategoriesFromArray(r.cat); 1042 break 1043 } 1044 if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.url) && r.url.toLowerCase() === t.toLowerCase()) { 1045 i = this.cookieCategoriesFromArray(r.cat); 1046 break 1047 } 1048 if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.resolvedUrl) && r.resolvedUrl.toLowerCase() === t.toLowerCase()) { 1049 i = this.cookieCategoriesFromArray(r.cat); 1050 break 1051 } 1052 if (o.innerHTML && 5 < o.innerHTML.length) { 1053 if (Helper.isNotNullOrStringEmpty(r.innerHash)) { 1054 var s = this.getHashCode(o.innerHTML); 1055 if (null !== s && r.innerHash === s) { 1056 i = this.cookieCategoriesFromArray(r.cat); 1057 break 1058 } 1059 } 1060 if (Helper.isNotNullOrStringEmpty(r.outerHash) && void 0 !== e && "undefined" !== e && null !== (s = this.getHashCode(e)) && r.outerHash === s) { 1061 i = this.cookieCategoriesFromArray(r.cat); 1062 break 1063 } 1064 } 1065 if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.url) && 0 < this.configuration.globalDomains.length) { 1066 var c = this.getHostnameFromURL(t); 1067 if ("" !== c && c !== window.location.hostname) 1068 for (var g = 0; g < this.configuration.globalDomains.length; g++) { 1069 var l = this.configuration.globalDomains[g]; 1070 if (c === l.domain) { 1071 i = this.cookieCategoriesFromArray(l.cat); 1072 break 1073 } 1074 } 1075 } 1076 } 1077 if (n && "" !== t && "" === i) { 1078 var u = t.toLowerCase() 1079 , d = !0; 1080 if (0 === u.indexOf("https://") && 8 < u.length ? u = u.substr(8) : 0 === u.indexOf("http://") && 7 < u.length ? u = u.substr(7) : 0 === u.indexOf("//") && 2 < u.length ? u = u.substr(2) : d = !1, 1081 d && (0 < u.indexOf(":") && (u = u.substr(0, u.indexOf(":"))), 1082 0 < u.indexOf("/") && (u = u.substr(0, u.indexOf("/")))), 1083 3 < u.length) 1084 for (var m = 0; m < BBGlobalSettings.globalDomains.domains.length; m++) { 1085 var B = BBGlobalSettings.globalDomains.domains[m]; 1086 if (0 <= u.indexOf(B.domain)) { 1087 i = this.cookieCategoriesFromArray(B.cat); 1088 break 1089 } 1090 } 1091 } 1092 return i 1093 } 1094 , 1095 this.cookieCategoriesFromArray = function(e) { 1096 for (var t = "", o = 0; o < e.length; o++) 1097 "" !== t && (t += ","), 1098 t += e[o]; 1099 return "" !== t && "," === t.substr(t.length - 1, 1) && (t = t.substring(0, t.length - 1)), 1100 t 1101 } 1102 , 1103 this.isCheckedSrcTagElement = function(e) { 1104 for (var t = !1, o = 0; o < BBCookieManager.srcTagsElements.length; o++) 1105 if (BBCookieManager.srcTagsElements[o].toLowerCase() === e.toLowerCase()) { 1106 t = !0; 1107 break 1108 } 1109 return t 1110 } 1111 , 1112 this.isFriendlyCaptcha = function(t){ 1113 return t.getAttribute("data--frc-frame-id") 1114 } 1115 , 1116 this.isInIgnoredSubtree = function(t) { 1117 return !(!t || "function" != typeof t.closest) && null !== t.closest('[data-bbcc="ignore"]') 1118 } 1119 , 1120 this.doListForMutation = function(t) { 1121 var e, o, n, i; 1122 "ignore" == t.dataset.bbcc || this.isBBElem(t) || this.isFriendlyCaptcha(t) || ("SCRIPT" !== t.tagName || null !== t.type && void 0 !== t.type && "" !== t.type && "text/javascript" !== t.type && "text/plain" !== t.type ? this.isCheckedSrcTagElement(t.tagName) && Helper.hasAttr(t, "src") && !Helper.hasAttr(t, "data-src") && !Helper.hasAttr(t, "data-lazy-type") && !this.isBBElem(t) && this.getHostnameFromURL(t.src) && (t.origOuterHTML = t.outerHTML, 1123 t.setAttribute("data-src", t.getAttribute("src")), 1124 t.removeAttribute("src"), 1125 (e = t.cloneNode(!0)).isCloned = !0, 1126 (o = t.parentNode).insertBefore(e, t), 1127 o.removeChild(t), 1128 t = null, 1129 this.srcTagsMutations.push(e)) : (BBCookieManager.startJQueryHold(), 1130 t.origOuterHTML = t.outerHTML, 1131 null !== t.type && void 0 !== t.type && "" !== t.type && "text/plain" !== t.type && (t.origScriptType = t.type), 1132 t.type = "text/plain", 1133 n = function(e) { 1134 "text/plain" === t.getAttribute("type") && e.preventDefault(), 1135 t.removeEventListener("beforescriptexecute", n) 1136 } 1137 , 1138 t.addEventListener("beforescriptexecute", n), 1139 i = !1, 1140 Helper.hasAttr(t, "src") && !Helper.hasAttr(t, "nomodule") && (i = !0, 1141 this.preloadMutationScript(t.src)), 1142 Helper.hasAttr(t, "defer") && i ? this.deferMutations.push(t) : this.nonDeferMutations.push(t))) 1143 } 1144 , 1145 this.isBBElem = function(e) { 1146 var t, o = !1; 1147 return Helper.hasAttr(e, "src") && (0 !== (t = e.getAttribute("src").toLowerCase()).indexOf(Helper.settings.bbCDN.toLowerCase()) && 0 !== t.indexOf(Helper.settings.configUrl.toLowerCase()) || (o = !0)), 1148 o 1149 } 1150 , 1151 this.preloadMutationScript = function(e) { 1152 var t = document.createElement("link"); 1153 t.href = e, 1154 t.rel = "preload", 1155 t.as = "script", 1156 t.isCloned = !0, 1157 document.head.appendChild(t) 1158 } 1159 , 1160 this.startJQueryHold = function() { 1161 "undefined" != typeof jQuery && void 0 === window.BBstartJQueryHold && void 0 !== jQuery.holdReady && (window.BBstartJQueryHold = !0, 1162 jQuery.holdReady(!0)) 1163 } 1164 , 1165 this.endJQueryHold = function() { 1166 "undefined" != typeof jQuery && void 0 !== window.BBstartJQueryHold && void 0 !== jQuery.holdReady && jQuery.holdReady(!1) 1167 } 1168 , 1169 this.getHostnameFromURL = function(e) { 1170 try { 1171 var t = document.createElement("a"); 1172 return t.href = e, 1173 t.cloneNode(!1).hostname 1174 } catch (e) { 1175 return "" 1176 } 1177 } 1178 , 1179 this.runScripts = function(e) { 1180 BBCookieManager.checkSrcTags(); 1181 var t = [] 1182 , o = [] 1183 , n = null === e ? [] : e; 1184 for (i = 0; i < n.length; i++) { 1185 var a = n[i]; 1186 Helper.hasAttr(a, BBCookieManager.cookieElemData) && "text/plain" === a.getAttribute("type").toLowerCase() && void 0 === a.cookiesProcessed && (Helper.hasAttr(a, "defer") ? (a.removeAttribute("defer"), 1187 o.push(a)) : t.push(a)) 1188 } 1189 for (i = 0; i < o.length; i++) 1190 t.push(o[i]); 1191 BBCookieManager.runScriptTags(t) 1192 } 1193 , 1194 this.runScriptTags = function(e) { 1195 var t, o, n, i, a; 1196 BBCookieLogger.writeToLog({ 1197 funcName: "runScriptTags", 1198 msg: "start for scripts", 1199 obj: e 1200 }), 1201 0 < e.length && (o = (t = e.shift()).parentNode, 1202 Helper.hasAttr(t, this.cookieElemData) && null !== o && this.canRunScriptByCategory(t, null) ? (BBCookieLogger.writeToLog({ 1203 funcName: "runScriptTags", 1204 msg: "Run script", 1205 obj: t 1206 }), 1207 t.cookiesProcessed = 1, 1208 n = t.nextElementSibling, 1209 i = CookieHelper.cloneScriptElement(t), 1210 a = Helper.hasAttr(i, "async"), 1211 Helper.hasAttr(i, "src") && !a && (i.onload = function() { 1212 BBCookieLogger.writeToLog({ 1213 funcName: "runScriptTags", 1214 msg: "onload method for script", 1215 obj: i 1216 }), 1217 BBCookieManager.runScriptTags(e) 1218 } 1219 , 1220 i.onerror = function() { 1221 BBCookieLogger.writeToLog({ 1222 funcName: "runScriptTags", 1223 msg: "onerror method for script", 1224 obj: i 1225 }), 1226 BBCookieManager.runScriptTags(e) 1227 } 1228 ), 1229 BBCookieLogger.writeToLog({ 1230 funcName: "runScriptTags", 1231 msg: "Insert script clone", 1232 obj: i 1233 }), 1234 o.removeChild(t), 1235 o.insertBefore(i, n || null), 1236 !a && Helper.hasAttr(i, "src") || this.runScriptTags(e)) : this.runScriptTags(e)) 1237 } 1238 , 1239 this.checkSrcTags = function() { 1240 for (var e = 0; e < BBCookieManager.srcTagsElements.length; e++) 1241 BBCookieManager.runSrcTags(BBCookieManager.srcTagsElements[e]) 1242 } 1243 , 1244 this.runSrcTags = function(e) { 1245 var t = document.getElementsByTagName(e) 1246 , o = []; 1247 for (i = 0; i < t.length; i++) { 1248 var n = t[i]; 1249 Helper.hasAttr(n, this.cookieElemData) && Helper.hasAttr(n, "data-src") && "ignore" !== n.getAttribute(this.cookieElemData).toLowerCase() && o.push(n) 1250 } 1251 for (i = 0; i < o.length; i++) { 1252 n = o[i], 1253 this.preapreDisplayState(n); 1254 var a = n.getAttribute(this.cookieElemData).toLowerCase().split(",") 1255 , r = !0; 1256 for (j = 0; j < a.length; j++) { 1257 var s = a[j].replace(/^\s*/, "").replace(/\s*$/, ""); 1258 r && (this.addClass(n, BBCookieManager.cookieCssClass + "-" + s.toLowerCase()), 1259 r = void 0 === BBCookieManager.consent[s.toLowerCase()] || BBCookieManager.consent[s.toLowerCase()]) 1260 } 1261 r ? (n.src = n.getAttribute("data-src"), 1262 n.removeAttribute("data-src"), 1263 this.displayElement(n)) : this.hideElement(n) 1264 } 1265 } 1266 , 1267 this.preapreDisplayState = function(e) { 1268 var t; 1269 void 0 === e.ccDataStyle && (t = "", 1270 window.getComputedStyle && ("" === (t = window.getComputedStyle(e, null).getPropertyValue("display")) ? e.style.display ? e.ccDataStyle = e.style.display : e.ccDataStyle = "block" : e.ccDataStyle = t)) 1271 } 1272 , 1273 this.hasClass = function(e, t) { 1274 return e.className && e.className.match(new RegExp("(\\s|^)" + t + "(\\s|$)")) 1275 } 1276 , 1277 this.addClass = function(e, t) { 1278 this.hasClass(e, t) || (e.className += " " + t) 1279 } 1280 , 1281 this.hideElement = function(e) { 1282 e.style.display = "none" 1283 } 1284 , 1285 this.displayElement = function(e) { 1286 e.style.display = e.ccDataStyle 1287 } 1288 , 1289 this.showHideSrcElement = function() { 1290 for (var e = document.getElementsByTagName("iframe"), t = 0; t < e.length; t++) { 1291 var o = e[t]; 1292 if (Helper.hasAttr(o, this.cookieElemData) && Helper.hasAttr(o, "data-src") && !Helper.hasAttr(o, "src")) { 1293 var n = o.getAttribute(this.cookieElemData).replace("/ /g", "").toLowerCase().split(","); 1294 for (j = 0; j < n.length; j++) 1295 this.addClass(o, BBCookieManager.cookieCssClass + "-" + n[j].toLowerCase()) 1296 } 1297 } 1298 this.fillConsent(); 1299 var i = ""; 1300 for (var a in BBCookieManager.consent) { 1301 i += ("" === i ? "" : ", ") + "." + BBCookieManager.cookieCssClass + "-" + a 1302 } 1303 for (var r = BBCookieManager.configuration.loaded && "" !== i ? document.querySelectorAll(i) : [], t = 0; t < r.length; t++) { 1304 var s = !0; 1305 for (var c in BBCookieManager.consent) 1306 if (this.hasClass(r[t], BBCookieManager.cookieCssClass + "-" + c) && !BBCookieManager.consent[c]) { 1307 s = !1; 1308 break 1309 } 1310 this.preapreDispl
1310ayState(r[t]), 1311 s ? this.displayElement(r[t]) : this.hideElement(r[t]) 1312 } 1313 } 1314 , 1315 this.stopMutationObserver = function() { 1316 void 0 === this.mutationObserver && !this.doManualMutation || (BBCookieManager.processPostMutations(), 1317 BBCookieManager.checkAndRunByCategory(this.nonDeferMutations), 1318 void 0 !== this.mutationObserver && (this.mutationObserver.disconnect(), 1319 this.mutationObserver = null)) 1320 } 1321 , 1322 this.fillConsent = function() { 1323 if (BBCookieManager.cookieValues && "" !== BBCookieManager.cookieValues && BBCookieManager.canDoAction()) 1324 for (var e in BBCookieManager.consented = !0, 1325 BBCookieManager.cookieValues) 1326 BBCookieManager.consent[e] = BBCookieManager.cookieValues[e]; 1327 else if (BBCookieManager.consented = !1, 1328 BBCookieManager.configuration.categoryDefs && 0 < BBCookieManager.configuration.categoryDefs.length) 1329 for (var t = 0; t < BBCookieManager.configuration.categoryDefs.length; t++) { 1330 var o = BBCookieManager.configuration.categoryDefs[t].id.toLowerCase(); 1331 BBCookieManager.consent[o] || (BBCookieManager.consent[o] = !!BBCookieManager.configuration.categoryDefs[t].mandatory || !BBCookieManager.canDoAction()) 1332 } 1333 } 1334 , 1335 this.removeDisabledConsent = function() { 1336 if (BBCookieManager.consent) { 1337 var l = this 1338 , e = BBCookieManager.consent; 1339 for (var t in e) 1340 e[t] || function(e) { 1341 if (!BBCookieManager.configuration || !BBCookieManager.configuration.tags || 0 === BBCookieManager.configuration.tags) 1342 return; 1343 for (var t = BBCookieManager.configuration.cookies, o = 0; o < t.length; o++) { 1344 var n = t[o]; 1345 n.cat === e && function(e) { 1346 if (e && "" !== e) { 1347 var t = e.name; 1348 if (e.name = "" !== t && -1 !== t.indexOf("*") ? Helper.getCookieByRelativeName(t) : t, 1349 null === e.name) 1350 return e.name = t; 1351 if (e.type === BBGlobalSettings.CookieTypeEnum.Cookie) { 1352 var o = window.location.pathname.split("/") 1353 , n = window.location.hostname 1354 , i = "www" === n.substring(0, 3) 1355 , a = e.name 1356 , r = ";path=" 1357 , s = "=;expires=Thu, 01 Jan 1970 00:00:00 GMT" 1358 , c = ";domain="; 1359 document.cookie = a + s; 1360 for (var g = 0; g < o.length; g++) 1361 r += ("/" !== r.substr(-1) ? "/" : "") + o[g], 1362 document.cookie = a + s + r, 1363 document.cookie = a + s + r + c + escape(n), 1364 document.cookie = a + s + r + c + "." + escape(n), 1365 document.cookie = a + s + r + c + escape(l.getRootDomain(n)), 1366 document.cookie = a + s + r + c + "." + escape(l.getRootDomain(n)), 1367 i && (document.cookie = a + s + r + c + escape(n.substring(3))) 1368 } else 1369 e.type === BBGlobalSettings.CookieTypeEnum.LocalStorage ? localStorage.removeItem(e.name) : e.type === BBGlobalSettings.CookieTypeEnum.SessionStorage && sessionStorage.removeItem(e.name) 1370 } 1371 }(n) 1372 } 1373 }(t); 1374 var o = new XMLHttpRequest; 1375 o.open("GET", document.URL, !0), 1376 o.send() 1377 } 1378 } 1379 , 1380 this.setConsentFromCookie = function() { 1381 var e = Helper.getCookie(this.cookieName); 1382 if (this.cookieValues = JSON.parse(e), 1383 this.cookieValues && "" !== this.cookieValues) 1384 for (var t in this.consented = !0, 1385 this.cookieValues) 1386 this.consent[t] = this.cookieValues[t] 1387 } 1388 , 1389 this.reinitCookies = function() { 1390 this.orgDocumentWrite = document.write, 1391 document.write = function(e) { 1392 BBCookieManager.checkDocumentWriteElement(e) 1393 } 1394 , 1395 BBCookieLogger.writeToLog({ 1396 funcName: "reinitCookies", 1397 msg: "Reinit cookie" 1398 }), 1399 this.cookieValues = null,
1400 this.setConsentFromCookie(); 1401 for (var e = 0; e < BBCookieManager.srcTagsElements.length; e++) { 1402 var t = document.getElementsByTagName(BBCookieManager.srcTagsElements[e]); 1403 if (t && 0 < t.length) 1404 for (var o = 0; o < t.length; o++) 1405 Helper.hasAttr(t[o], BBCookieManager.cookieElemData) && t[o].hasAttribute("src") && t[o].getAttribute("src") && t[o].getAttribute(BBCookieManager.cookieElemData) !== "ignore" && (BBCookieLogger.writeToLog({ 1406 funcName: "reinitCookies", 1407 msg: "Disabled SRC element: ", 1408 obj: t[o] 1409 }), 1410 t[o].setAttribute("data-src", t[o].getAttribute("src")), 1411 t[o].removeAttribute("src")) 1412 } 1413 for (var n, i, a, r = document.getElementsByTagName("script"), s = [], c = 0; c < r.length; c++) { 1414 r[c].hasAttribute("type") && Helper.hasAttr(r[c], BBCookieManager.cookieElemData) && ((n = r[c].getAttribute(BBCookieManager.cookieElemData)) && "" !== n && "ignore" !== n && (i = void 0 === BBCookieManager.consent[n.toLowerCase()] || BBCookieManager.consent[n.toLowerCase()], 1415 a = r[c].getAttribute("type"), 1416 i && "text/plain" === a && (BBCookieLogger.writeToLog({ 1417 funcName: "reinitCookies", 1418 msg: "Enabled script:", 1419 obj: r[c] 1420 }), 1421 s.push(r[c])), 1422 i || (BBCookieLogger.writeToLog({ 1423 funcName: "reinitCookies", 1424 msg: "Disabled script:", 1425 obj: r[c] 1426 }), 1427 r[c].removeAttribute("type"), 1428 r[c].setAttribute("type", "text/plain")))) 1429 } 1430 this.removeDisabledConsent(), 1431 this.runScripts(s), 1432 setTimeout(function() { 1433 BBCookieManager.endJQueryHold() 1434 }, 1e3), 1435 document.write = BBCookieManager.orgDocumentWrite 1436 } 1437 , 1438 this.submitChanges = function() { 1439 BBCookieLogger.writeToLog({ 1440 funcName: "submitChanges", 1441 msg: "Do action after submit consent" 1442 }), 1443 this.cookieValues = null, 1444 this.setConsentFromCookie(), 1445 this.triggerGTMEvents(), 1446 this.reinitCookies(), 1447 "function" == typeof BBCookieManagerCallbackOnAccept && BBCookieManagerCallbackOnAccept(); 1448 var e = document.createEvent("Event"); 1449 e.initEvent(BBGlobalSettings.Events.onAccept, !0, !0), 1450 window.dispatchEvent(e), 1451 this.triggerOnloadCallbacks() 1452 } 1453 , 1454 this.setMandatoryCategories = function() { 1455 if (BBCookieManager.canDoAction()) { 1456 BBCookieLogger.writeToLog({ 1457 funcName: "setMandatoryCategories", 1458 msg: "Set only mandatory categories" 1459 }); 1460 for (var e = {}, t = BBCookieManager.configuration.categoryDefs, o = 0; o < t.length; o++) { 1461 var n = t[o].id 1462 , i = CookieHelper.getCategoryInfo(BBCookieManager.categoryInformation, n); 1463 i && 0 < i.length && 0 < i[0].countOfCookies && (e[n] = t[o].mandatory) 1464 } 1465 BBCookieManager.configuration.version && (e.version = BBCookieManager.configuration.version), 1466 BBCookieLogger.writeToLog({ 1467 funcName: "setMandatoryCategories", 1468 msg: "Settings version is: ", 1469 obj: e.version 1470 }); 1471 var a = JSON.stringify(e); 1472 CookieHelper.set2BCookie(a), 1473 BBCookieLogger.writeToLog({ 1474 funcName: "setMandatoryCategories", 1475 msg: "New cookies are: ", 1476 obj: a 1477 }), 1478 this.reinitCookies() 1479 } 1480 } 1481 , 1482 this.withdraw = function() { 1483 this.setMandatoryCategories(), 1484 "function" == typeof BBCookieManagerCallbackOnWithdraw && BBCookieManagerCallbackOnWithdraw(); 1485 var e = document.createEvent("Event"); 1486 e.initEvent(BBGlobalSettings.Events.onWidthdraw, !0, !0), 1487 window.dispatchEvent(e) 1488 } 1489 , 1490 this.getRootDomain = function(e) { 1491 var t, o = e; 1492 return 0 < e.length && (t = o.split("."), 1493 1 < o.length && (o = t.slice(-2).join("."))), 1494 o 1495 } 1496 , 1497 this.canDoAction = function() { 1498 return 0 < this.configuration.cookies.length 1499 } 1500 , 1501 this.findSource = function() { 1502 if (!this.source) { 1503 var e = document.getElementById(Helper.settings.scriptId); 1504 if (e) 1505 this.source = e; 1506 else 1507 for (var t = document.getElementsByTagName("script"), o = 0; o < t.length; o++) { 1508 var n = t[o]; 1509 if (Helper.hasAttr(n, "src") && 0 < n.getAttribute("src").toLowerCase().indexOf("bbcid=") && 0 < n.getAttribute("src").toLowerCase().indexOf("/bb-manager.js")) { 1510 this.source = n; 1511 break 1512 } 1513 } 1514 } 1515 return this.source 1516 } 1517 , 1518 this.updateGoogleConsent = function() { 1519 dataLayer.push(arguments) 1520 } 1521 , 1522 this.triggerGTMEvents = function() { 1523 if ("object" == typeof dataLayer && "function" == typeof dataLayer.push) { 1524 var e = "granted" 1525 , t = "denied" 1526 , o = BBCookieManager.consent 1527 , n = {}; 1528 for (var i in o) 1529 "marketing" === i ? (n.ad_storage = o.marketing ? e : t, 1530 n.ad_user_data = o.marketing ? e : t, 1531 n.ad_personalization = o.marketing ? e : t) : "statistic" === i ? n.analytics_storage = o.statistic ? e : t : "preferences" === i ? (n.functionality_storage = o.preferences ? e : t, 1532 n.personalization_storage = o.preferences ? e : t) : "necessary" === i ? n.security_storage = e : "version" !== i && (n[i] = o[i] ? e : t); 1533 this.updateGoogleConsent("consent", "update", n), 1534 this.updateGoogleConsent("set", "ads_data_redaction", !o.marketing), 1535 dataLayer.push({ 1536 event: "2bcookie_consent" 1537 }) 1538 } 1539 } 1540 , 1541 this.canInsertElement = function(e) { 1542 if (e) { 1543 var t = BBCookieManager.getCookieCategories(e.outerHTML, e.src, e, !0) 1544 , t = BBCookieManager.setUserScriptCategory(e, t); 1545 return BBCookieManager.canRunScriptByCategory(e, t) 1546 } 1547 return !1 1548 } 1549 , 1550 this.dispatchEventsOnFinish = function() { 1551 var e = document.createEvent("Event"); 1552 e.initEvent("readystatechange", !0, !0), 1553 window.document.dispatchEvent(e), 1554 (e = document.createEvent("Event")).initEvent("DOMContentLoaded", !0, !0), 1555 window.document.dispatchEvent(e), 1556 (e = document.createEvent("Event")).initEvent("load", !0, !0), 1557 window.dispatchEvent(e), 1558 (e = document.createEvent("Event")).initEvent("onload", !0, !0), 1559 window.dispatchEvent(e) 1560 } 1561 , 1562 this.prepareMediaElement = function(e) { 1563 var t; 1564 "source" === e.tagName.toLowerCase() && (!(t = e.parentNode) || "video" !== t.tagName.toLowerCase() && "audio" !== t.tagName.toLowerCase() || t.load()) 1565 } 1566 , 1567 this.isPreviewMode = function() { 1568 var e = !1; 1569 if (window.top !== window) { 1570 var t = window.location.search; 1571 if (t && "" !== t) 1572 for (var o = new URLSearchParams(t), n = 0; n < this.mutationDisablingParams.length; n++) { 1573 var i = o.get(this.mutationDisablingParams[n]); 1574 if (i && "" !== i) { 1575 e = !0; 1576 break 1577 } 1578 } 1579 } 1580 return e 1581 } 1582 , 1583 this.init(), 1584 BBCookieControler.start.prototype.onload = function() {} 1585} 1586, 1587void 0 === BBCookieManager ? BBCookieManager = new BBCookieControler.start(BBGlobalSettings.cookieName) : BBCookieLogger.writeToLog({ 1588 funcName: "BBCookieControler.start()", 1589 msg: "The bb-manager is already initialized" 1590}), 1591void 0 === bbCookieApi && (bbCookieApi = new CookieManagerAPI);
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.