1 2 3 window.fqdn = window.fqdn ?? "vb-bo.de"; 4 window.adobe_uri = window.adobe_uri ?? "https://assets.adobedtm.com/7780bfea0c47/975d777c3e84/launch-27d6937279d0.min.js"; 5 let consentApi=window.publicApi.consent;function nlmMarketingMain(){let n=!1,t=0,s=[],a=!1,c="no ECID yet",l=.2,u=1990,o="homepage-usergroup",r=1500;function m(...e){window.nlmdebug&&console.log("[me-loader] ",e)}function i(e){var t;for(t of document.cookie?document.cookie.split("; "):[]){var[n,...a]=t.split("=");if(n===e)return decodeURIComponent(a.join("="))}}async function d(e){if(void 0!==i(o))return!1;if(null===document.querySelector('div[data-cta-resource-type="personalisierung"]'))return!1;if(!0!==e?.find(e=>"marketing"===e.name)?.value)return!1;if(window.__nlmHomepageUsergroupAssignmentLock)return m("homepage-usergroup assignment already running"),!1;window.__nlmHomepageUsergroupAssignmentLock=!0;var t,n,a,e=await(async()=>{var e=window.location.origin+"/serviceproxy/decision-service/decision";let t=new AbortController;var n=window.setTimeout(()=>t.abort(),r);try{var a,o=await fetch(e,{method:"GET",headers:{Accept:"application/json"},credentials:"same-origin",cache:"no-store",signal:t.signal});if(o.ok)return m("decision service request succeeded",(a=await o.json()).name),a.cookieValue||void 0;m("decision service request failed",{url:e,status:o.status}),g("ERROR - decision service request failed",{me_decision_status:o.status})}catch(e){var i=e instanceof DOMException&&"AbortError"===e.name;m("decision service request failed",e),g(i?"ERROR - decision service request timed out":"ERROR - decision service request failed",{me_error:e instanceof Error?e.message:String(e),me_decision_timeout_ms:r})}finally{window.clearTimeout(n)}})();return void 0!==e&&(t="instance-b"===e,n=e,a="https:"===window.location.protocol?"; Secure":"",document.cookie=o+`=${n}; Path=/; SameSite=Lax`+a,m("homepage-usergroup cookie set",e),t)&&(m("Reloading page for homepage-usergroup instance-b"),window.location.reload(),!0)}function g(r,e={},t=!1){var n=i("nlm-session-id");if(n){let a=window.location.origin+"/serviceproxy/me-service/update";var d=new URL(window.location.href),d=d.origin+d.pathname;let o={me_logCount:window.meLogCount=(window.meLogCount||0)+1,me_session:n,me_ecid:c,me_clientTimestamp:(new Date).toISOString(),me_eventName:r,...(n=s,{me_consent_essenziell:(n=new Map((n??[]).map(e=>[e.name,e.value]))).get("essenziell")??null,me_consent_komfort:n.get("komfort")??null,me_consent_marketing:n.get("marketing")??null,me_consent_statistik:n.get("statistik")??null}),me_url:d,...((e,t="me_")=>{if(!e)return{};let n;try{n=new URL(e)}catch{return{}}var a,o,i,r={},d=["utm_campaign","utm_id"];for([a,o]of n.searchParams.entries())d.includes(a)&&(r[i=""+t+a]=r[i]?r[i]+","+o:o);return r})(window.location.href),me_referrer:document.referrer,me_logVersion:l,...e},i=(e=>{var t={...e};let n=JSON.stringify(t);for(var a=n.length,o=[];n.length>u;){var i=Object.entries(t).filter(e=>"string"==typeof e[1]).sort((e,t)=>t[1].length-e[1].length)[0];if(!i)return m("marketing UI log payload truncated to fallback payload",{originalLength:a,finalLength:(r=JSON.stringify({me_eventName:"string"==typeof t.me_eventName?t.me_eventName:"truncated_log",me_error:"log payload exceeded maximum length"})).length,truncationActions:o}),r;var[r,i]=i,d=n.length-u;i.length>1+d?(t[r]=i.slice(0,i.length-d-1)+"â¦",o.push("shortened:"+r)):(delete t[r],o.push("dropped:"+r)),n=JSON.stringify(t)}return 0<o.length&&m("marketing UI log payload truncated",{originalLength:a,finalLength:n.length,truncationActions:o}),n})(o);t?navigator.sendBeacon(a,i)||m("sendBeacon failed for marketing UI log",{url:a,eventName:r,originalLength:JSON.stringify(o).length,sentLength:i.length}):async function t(n=0){try{var e=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0});e.ok||(m("fetch failed for marketing UI log",{url:a,eventName:r,status:e.status,originalLength:JSON.stringify(o).length,sentLength:i.length,retryCount:n}),n<3&&setTimeout(()=>t(n+1),500))}catch(e){m("fetch error for marketing UI log",{url:a,eventName:r,error:e,originalLength:JSON.stringify(o).length,sentLength:i.length,retryCount:n}),n<3&&setTimeout(()=>t(n+1),500)}}()}}function p(e,t,n){m("finding nonce with element: ",e," attribute: ",t," value: ",n);var n=((e,t,n)=>{if(m("building selector with element: ",e," attribute: ",t," value: ",n),e?.trim()&&t?.trim()&&null!=n)return n=String(n).replace(/["\\]/g,"\\$&"),e.trim()+`[${t}="${n}"]`}
5)(e,t,n);return n?!!((n=document.querySelector(n)?.nonce)&&0<n.length)&&n:(g("ERROR - selector not build",{me_selector_element:e,me_selector_attribute:t}),!1)}async function w(){if(m("loading launch lib..."),t+=1,null==window.adobe_uri)return console.log("No adobe uri given"),g("ERROR - no adobe uri given"),!1;var e=p("script","data-automation-id","marketing-tag-manager");let n=document.createElement("script");n.src=window.adobe_uri,n.async=!0,e?(n.setAttribute("nonce",e),m("Applying CSP nonce to Launch script")):g("ERROR - cannot find nonce for marketing-tag-manager");e=new Promise((e,t)=>{n.addEventListener("load",()=>{window.dispatchEvent(new CustomEvent("adobe:launch:loaded")),e(!0)}),n.addEventListener("error",()=>{window.dispatchEvent(new CustomEvent("adobe:launch:error")),t(!1)})});return document.head.appendChild(n),e}async function f(e){var e=!0===(s=e).find(e=>"statistik"===e.name)?.value,t=await(async e=>{if(window.alloy)try{return await window.alloy?.("setConsent",{consent:[{standard:"Adobe",version:"1.0",value:{general:e?"in":"out"}}]}),!0}catch(e){m("Failed to set Adobe consent:",e),g("ERROR - setConsent failed",{me_error:e instanceof Error?e.message:String(e)})}else m("Alloy is null in setConsent"),e&&g("Alloy is null in setConsent");return!1})(e);g(`update_consent(${e})`),!t&&e||(m("dispatching state event with payload: "+(t=e)),window.dispatchEvent(new CustomEvent("me:data-layer",{detail:t})))}function v(e){try{return JSON.stringify(e)??"[undefined]"}catch{return"[unserializable]"}}function h(e){var t=e.page,t=t&&"object"==typeof t?t.pageInfo:void 0,t=t&&"object"==typeof t?t:void 0,n=("string"==typeof t?.URL&&t.URL,e.campaign&&"object"==typeof e.campaign?e.campaign:void 0);return{me_datalayer_event_name:(e=e,String(e.event??e.type??"unknown")),me_datalayer_event_referringURL:t?.referringURL,me_datalayer_event_campaign_utm_campaign:n?.utm_campaign,me_datalayer_event_campaign_utm_placement:n?.utm_placement,me_datalayer_event_campaign_utm_id:n?.utm_id}}function y(e){m("DataLayer: Event received ",e),g("DataLayer: Event received",h(e))}function L(e){m("DataLayer: Past event received (before registration)",e),g("DataLayer: Past event received",h(e))}return{set launchLibLoaded(e){n=e},get launchLibLoadedRetry(){return t},setupDataLayerTap:function(){window.adobeDataLayer=window.adobeDataLayer||[];var e=window.adobeDataLayer;let t="function"==typeof e.getState;t&&(m("DataLayer was already loaded with state ",e=e.getState()),g("DataLayer was already loaded",{me_datalayer_state:v(e)})),window.adobeDataLayer.push(function(e){e.addEventListener("pageview",L,{scope:"past"}),e.addEventListener("pageview",y,{scope:"future"}),t||(m("DataLayer loaded with state: ",e=e.getState()),g("DataLayer loaded",{me_datalayer_state:v(e)}))})},logMe:m,checkConsent:async function e(t){m("checking consent. First time? "+t),s=await(t?consentApi.getNextConsent():consentApi.getConsent()),t&&await d(s)||(s?.filter(e=>"essenziell"!==e.name).some(e=>!0===e.value)?n?f(s):await w():(g(t?"Consent refused":"No initial consent"),f(s)),e(!0))},updateConsent:f,sendMarketingUiLog:g,loadLaunchLibrary:w,fetchEcidAsync:async function(){if(n&&window.alloy&&!a)try{var e=await window.alloy("getIdentity");(c=e?.identity?.ECID)&&!a&&(a=!0,g("ECID received",{me_ecid:c}))}catch(e){console.error("Failed to retrieve identity:",e)}}}}let meLoader=nlmMarketingMain();function waitForConsentApiAndCheckConsent(){let e=setTimeout(()=>{meLoader.sendMarketingUiLog("window.publicApi.consent not yet available")},4800),t=setInterval(()=>{window.publicApi&&window.publicApi.consent?(clearTimeout(e),clearInterval(t),meLoader.checkConsent(!1)):meLoader.logMe("consentApi not available, retrying...")},100)}meLoader.setupDataLayerTap(),window.addEventListener("adobe:launch:loaded",async function(){meLoader.logMe("Adobe Launch script loaded"),meLoader.sendMarketingUiLog("Adobe Launch script loaded"),meLoader.launchLibLoaded=!0,meLoader.fetchEcidAsync();var e=await consentApi.getConsent();await meLoader.updateConsent(e)}),window.addEventListener("adobe:launch:error",function(){meLoader.logMe("Adobe Launch script failed to load"),meLoader.sendMarketingUiLog("ERROR - Adobe Launch script failed to load"),meLoader.launchLibLoadedRetry<4&&meLoader.loadLaunchLibrary()}),window.addEventListener("portal:me:start",async function(){meLoader.logMe("Received portal:me:start"),meLoader.sendMarketingUiLog("Received portal:me:start");var e=await consentApi.getConsent();await meLoader.updateConsent(e)}),window.addEventListener("beforeunload",()=>{meLoader.sendMarketingUiLog("Unload Page",{me_page_path:location.pathname},!0),meLoader.logMe("Unload Page",location.pathname)}),waitForConsentApiAndCheckConsent();
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.