1!function(e){var t={};function r(a){if(t[a])return t[a].exports;var n=t[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.d=function(e,t,a){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(a,n,function(t){return e[t]}.bind(null,n));return a},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/static/js/",r(r.s=103)}({103:function(e,t,r){"use strict";r.r(t);r(82),r(83);var a=r(13);window.dataLayer=window.dataLayer||[];var n=document.querySelector(".gtm-course-name"),o=n?n.value:null;!async function(){O("Load user context");var e=await async function(){var e,t,r,a,n=await fetch("/dynamic/user-context"),o=await n.text(),c=(new DOMParser).parseFromString(o,"text/html");return{userId:(null===(e=c.querySelector(".gtm-user-id"))||void 0===e?void 0:e.value)||null,userEmail:(null===(t=c.querySelector(".gtm-user-email"))||void 0===t?void 0:t.value)||null,userIsLoggedIn:(null===(r=c.querySelector(".gtm-user-is-logged-in"))||void 0===r?void 0:r.value)||null,userType:(null===(a=c.querySelector(".gtm-user-type"))||void 0===a?void 0:a.value)||null}}();window.dataLayer.push({event:"load_user_context",user_id:e.userId,user_email:e.userEmail,is_logged_in:e.userIsLoggedIn,user_role:e.userType})}();var c=document.querySelectorAll(".generate_lead");c.length&&c.forEach((function(e){var t=e.querySelector('input[type="submit"], button[type="submit"]');t&&t.addEventListener("click",(function(){var e=this.closest("form"),t=e?e.querySelector('input[name="lead_source"]'):null,r=t?t.value:null,n=e?e.querySelector('input[type="email"]'):null,o=n?n.value:null;r&&(O("Generate lead"),Object(a.a)(),window.dataLayer.push({event:"generate_lead",user_email:o,lead_source:r}))}))}));var u=new URLSearchParams(window.location.search),i=document.querySelector(".post-course-survey__paid"),s=u.get("courseName")||null;i&&i.addEventListener("submit",(function(e){e.preventDefault(),O("Submit Post-course Survey PAID"),Object(a.a)(),window.dataLayer.push({event:"submit_post_course_survey",course_name:s,is_free_course:!1})}));var l=document.querySelector(".post-course-survey__free"),d=u.get("courseName")||null;l&&l.addEventListener("submit",(function(e){e.preventDefault(),O("Submit Post-course Survey FREE"),Object(a.a)(),window.dataLayer.push({event:"submit_post_course_survey",course_name:d,is_free_course:!0})}));var m=document.querySelector(".gtm-file-download-btn");m&&m.addEventListener("click",(function(){var e=this.title||null;Object(a.a)(),window.dataLayer.push({event:"file_download",file_title:e})}));var v=document.querySelectorAll(".gtm-download-certificate");v.length&&v.forEach((function(e){e.addEventListener("click",(function(){var e=this.dataset.coursename||null,t=this.classList.contains("gtm-is-free-course");O("Download certificate"),Object(a.a)(),window.dataLayer.push({event:"download_certificate",course_name:e,is_free_course:t})}))}));var f=document.querySelectorAll(".gtm-login");f.length&&f.forEach((function(e){e.addEventListener("click",(function(t){console.log("DEBUG login_method: "+e.dataset.gtmLoginMethod),localStorage.setItem("gtmLoginMethod",e.dataset.gtmLoginMethod)}))})),document.addEventListener("click",(function(e){e.target.matches(".gtm-logout")&&(O("Logout"),Object(a.a)(),window.dataLayer.push({event:"logout"}))}));var g=document.querySelector(".gtm-free-course"),p=document.querySelector(".gtm-paid-course");g&&g.addEventListener("click",(function(){O("Free course start"),Object(a.a)(),window.dataLayer.push({event:"start_course",course_name:o,is_free_course:!0})})),p&&p.addEventListener("click",(function(){O("Paid course start"),Object(a.a)(),window.dataLayer.push({event:"start_course",course_name:o,is_free_course:!1})}));var y=document.querySelector(".gtm-lesson-name"),_=document.querySelector(".gtm-lesson-number"),w=y?y.value:null,h=_?_.value:null;if(w&&h){O("Lesson view"),Object(a.a)(),window.dataLayer.push({event:"view_lesson",course_name:o,lesson_name:w,lesson_number:h}),setInterval((async function(){O("Lesson engaged"),Object(a.a)(),window.dataLayer.push({event:"lesson_engaged",course_name:o,lesson_name:w,lesson_number:h})}),3e4)}var b=document.querySelector(".gtm-skills-test-start"),S=document.querySelector(".gtm-exam-start");b&&b.addEventListener("click",(function(){O("Start skills test"),Object(a.a)(),window.dataLayer.push({event:"start_skills_training_test",course_name:o})})),S&&S.addEventListener("click",(function(){O("Start exam"),Object(a.a)(),window.dataLayer.push({event:"start_exam",course_name:o})}));var L=document.getElementById("reset-password");function O(e){console.log("Custom GTM - "+e+" triggered")}L&&L.addEventListener("submit",(function(e){e.preventDefault(),e.stopPropagation(),Object(a.a)();var t=L.dataset.email;window.dataLayer.push({event:"login",method:"local_password",user_email:t}),this.submit()})),window.dataLayer=window.dataLayer||[];var E=document.querySelector(".gtm-view-item-list"),q=document.querySelector(".gtm-view-item"),j=document.querySelector(".gtm-view-cart"),k=document.querySelectorAll(".gtm-add-to-cart"),A=document.querySelectorAll(".gtm-remove-from-cart"),I=document.querySelector(".gtm-purchase"),x=document.querySelectorAll(".gtm-begin-checkout"),M=document.querySelectorAll(".gtm-select-cross-sell"),N=document.querySelectorAll(".gtm-select-upsell"),P=document.querySelector(".gtm-add-shipping-info");document.addEventListener("DOMContentLoaded",(function(){if((E||j||I)&&Object(a.a)(),E){var e=(null==E?void 0:E.value)||null;console.log("debug view_item_list: "+e);var t=JSON.parse(e);window.dataLayer.push({event:"view_item_list",ecommerce:t})}if(q){var r=q.value||null;console.log("debug view_item: "+r);var n=JSON.parse(r);window.dataLayer.push({event:"view_item",ecommerce:n})}if(j){var o=j.dataset.gtm;console.log("debug view_cart: "+o);var c=JSON.parse(o);window.dataLayer.push({event:"view_cart",ecommerce:c})}})),x&&x.forEach((function(e){e.addEventListener("submit",(function(t){t.preventDefault(),t.stopPropagation();var r=e.dataset.gtm;console.log("debug begin_checkout: "+r);var n=JSON.parse(r);n.checkout_type="regular",Object(a.a)(),window.dataLayer.push({event:"begin_checkout",ecommerce:n}),this.submit()}))}
1)),k&&k.forEach((function(e){e.addEventListener("click",(function(){var t=e.dataset.gtm;console.log("debug add_to_cart: "+t);var r=JSON.parse(t);Object(a.a)(),window.dataLayer.push({event:"add_to_cart",ecommerce:r})}))})),A&&A.forEach((function(e){e.addEventListener("click",(function(){var t=e.dataset.gtm;console.log("debug remove_from_cart: "+t);var r=JSON.parse(t);Object(a.a)(),window.dataLayer.push({event:"remove_from_cart",ecommerce:r})}))})),P&&P.addEventListener("blur",(function(){var e=P.dataset.gtm;console.log("debug add_shipping_info: "+e);var t=JSON.parse(e);Object(a.a)(),window.dataLayer.push({event:"add_shipping_info",ecommerce:t})})),M.length&&M.forEach((function(e){e.addEventListener("click",(function(){var t=e.dataset.gtmCrossSell;console.log("debug select_cross_sell: "+t);var r=JSON.parse(t);Object(a.a)(),window.dataLayer.push({event:"select_cross_sell",ecommerce:r})}))})),N.length&&N.forEach((function(e){e.addEventListener("change",(function(){var t=e.dataset.gtm;console.log("debug select_upsell: "+t);var r=JSON.parse(t);Object(a.a)(),window.dataLayer.push({event:"select_upsell",ecommerce:r})}))}))},13:function(e,t,r){"use strict";function a(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({ecommerce:null})}function n(){var e=document.querySelector(".gtm-mini-cart__data");if(e){var t=e.value;console.log("debug view_cart (mini-cart): "+t);var r=JSON.parse(t);a(),window.dataLayer.push({event:"view_cart",ecommerce:r})}}r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return n}))},82:function(e,t){function r(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll("button.hydrated.content"),t=document.querySelectorAll('a[href="#nifti-chat"]');[].concat(r(e),r(t)).forEach((function(e){e.addEventListener("click",(function(){var e=document.querySelector("chat-widget");if(e&&e.shadowRoot){var t=e.shadowRoot.getElementById("lc_text-widget--btn");t&&t.click()}}))}))}))},83:function(e,t){var r,a,n;r=window,a="tap",r.TapfiliateObject=a,r.tap=r.tap||function(){(r.tap.q=r.tap.q||[]).push(arguments)},(n=document.createElement("script")).src="https://script.tapfiliate.com/tapfiliate.js",n.async=!0,document.head.appendChild(n),tap("create","46007-5d86ea",{integration:"javascript"}),tap("detect"),console.log("[Tapfiliate] Initialised and detecting referral"),document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelector(".gtm-purchase");if(e)try{var t=JSON.parse(e.dataset.gtm);if(t.transaction_id&&void 0!==t.value){var r=t.currency?{currency:t.currency}:{};tap("conversion",t.transaction_id,t.value,r),console.log("[Tapfiliate] Conversion fired â order:",t.transaction_id,"value:",t.value,"currency:",t.currency||"default (USD)")}}catch(e){console.warn("[Tapfiliate] Failed to parse purchase data",e)}else{var a=document.querySelector("[data-tapfiliate-customer-id]");a&&a.dataset.tapfiliateCustomerId&&(tap("customer",a.dataset.tapfiliateCustomerId),console.log("[Tapfiliate] Customer identified:",a.dataset.tapfiliateCustomerId))}}))}});
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.