PageSourceSearch

https://www.cdw.com/search/8.33/dist/scripts/a/serpSignals.js

js cdw.com collected 2026-10-01 08:16:21 UTC 19,583 bytes, 1 lines download raw bytes

1(()=>{"use strict";var e={69953:(e,t,r)=>{r.r(t),r.d(t,{EventType:()=>_,addOrReplace:()=>y,buildSignalObject:()=>p,findIndexImplementation:()=>f,getClosestDataAttribute:()=>w,getEleInfo:()=>v,hasFlag:()=>m,init:()=>S,postMessageToChannel:()=>u,sendData:()=>l,updateSignalData:()=>h});var n,a,o,i=(n=window.location.hostname,["m.cdw.ca","m.cdwg.com","m.cdw.com","www.cdw.ca","www.cdwg.com","www.cdw.com","fr.cdw.ca"].some((function(e){return n.indexOf(e)>=0}))?"https://origin.cdw.com/sp.prod/signals/":["webqaint1vha-proxy.corp.cdw.com","webqaint1vha-proxy.corp.cdw.ca","webqaint1vha-proxy.corp.cdwg.com","webqaint1vhb-proxy.corp.cdw.com","webqaint1vhb-proxy.corp.cdw.ca","webqaint1vhb-proxy.corp.cdwg.com"].some((function(e){return n.indexOf(e)>=0}))?"https://origin.npd.cdw.com/sp.qa/signals/":"https://origin.npd.cdw.com/sp.test/signals/"),c="cdw-signals",s=(a=["active_products","Content"],o="active_products",{set name(e){a.includes(e)?o=e:console.error("set operation on target failed: "+e+" is not a valid target")},get name(){return o}}),d=null;try{d=new BroadcastChannel("cdw-signals-channel")}catch(e){console.log("BroadcastChannel not available")}function u(e){d&&d.postMessage(e)}function l(e){var t,r=[];e&&(e instanceof Array?r=e:r.push(e));var n=function(){var e=(new Date).getTime(),n=window.crypto||window.msCrypto||null,a=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(e){return(e^n.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)}));r[t].timestamp=e,r[t].id=a};for(t=0;t<r.length;++t)n();try{var a=new Blob([JSON.stringify(r)],{type:"application/json"});if(!navigator.sendBeacon(i+s.name,a))throw new Error("navigator.sendBeacon failed to queue signal")}catch(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new XMLHttpRequest;r.addEventListener("readystatechange",(function(){this.readyState===this.DONE&&console.log(this.responseText)})),r.open("POST",e,!0),r.setRequestHeader("content-type","application/json"),r.send(t)}(i+s.name,JSON.stringify(r),{dataType:"json",contentType:"application/json"}),!0}}function p(e){return{template:e,queries:[],products:[],cart:[]}}function f(e,t){if(null==e)throw new TypeError('"array" is null or not defined');var r=Object(e),n=r.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var a=arguments[1],o=0;o<n;){var i=r[o];if(t.call(a,i,o,r))return o;o++}return-1}function y(e,t,r){var n=function(e,t){return Array.prototype.findIndex&&0===[,1].findIndex((function(e,t){return 0===t}))?e.findIndex(t):f(e,t)}(e,(function(e){return e[t]&&r[t]&&e[t].toString()===r[t].toString()}));n>-1?e[n]=r:e.push(r)}var g=function(){var e={},t=!1,r=0,n=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],r++);for(var a=function(r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t&&"[object Object]"===Object.prototype.toString.call(r[n])?e[n]=g(!0,e[n],r[n]):e[n]=r[n])};r<n;r++)a(arguments[r]);return e};function w(e,t){return Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;do{if(Element.prototype.matches.call(t,e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null}),e.closest(t)}var _={SIGNAL:1,TAGMAN:2};function m(e,t){return t===(e&t)}function v(e){var t;if(e&&w(e,"[data-signal]")&&(t=w(e,"[data-signal]").dataset.signal),t){var r=window.sessionStorage.getItem(c);if(null!=r){var n=JSON.parse(r),a=g({},n.template),o=w(e,"[data-product-code]"),i=w(e,"[data-sort-rank]"),s=0;null!=i&&i.dataset&&i.dataset.hasOwnProperty("sortRank")&&(s=JSON.parse(i.dataset.sortRank));var d=[];null!=o&&(d=JSON.parse(w(e,"[data-product-code]").dataset.productCode));var p=!d||d instanceof Array?null:d.toString(),f=a.params.fusion_query_id,_=!1;switch(t){case"click":case"compare":case"specs":y(n.products,"doc_id",{fusion_query_id:f,doc_id:p}),y(n.queries,"params.fusion_query_id",a),s>0&&(a.params.res_pos=s),a.params.doc_id=p,a.type=t,_=!0;break;case"cart-search":y(n.products,"doc_id",{fusion_query_id:f,doc_id:p}),y(n.queries,"params.fusion_query_id",a),y(n.cart,"doc_id",{fusion_query_id:f,doc_id:p}),a.params.doc_id=p,s>0&&(a.params.res_pos=s),a.type="cart",_=!0;break;case"click-compare":var m=n.products.filter((function(e){return e.doc_id.toString()===p.toString()})).pop();if(m){var v=m.fusion_query_id,h=n.queries.filter((function(e){return e.params.fusion_query_id===v})).pop();h&&((a=h).params.doc_id=p,a.type="click",_=!0)}break;case"cart-compare":var S=n.products.filter((function(e){return e.doc_id.toString()===p.toString()})).pop();if(S){var b=S.fusion_query_id,q=n.queries.filter((function(e){return e.params.fusion_query_id===b})).pop();q&&(y(n.cart,"doc_id",{fusion_query_id:f,doc_id:p}),(a=q).params.doc_id=p,a.type="cart-compare",_=!0)}break;case"cart-product":case"cart-product-better-together":var T=n.products.filter((function(e){return e.doc_id.toString()===p.toString()})).pop();if(T||(y(n.products,"doc_id",{fusion_query_id:f,doc_id:p}),y(n.queries,"params.fusion_query_id",a),T=n.products.filter((function(e){return e.doc_id.toString()===p.toString()})).pop()),T){var O=T.fusion_query_id,E=n.queries.filter((function(e){return e.params.fusion_query_id===O})).pop();E&&(y(n.cart,"doc_id",{fusion_query_id:f,doc_id:p}),(a=E).params.doc_id=p,a.type=t,_=!0)}break;case"quote":case"quote-product":for(var I,C=p?[p]:d,k=[],R=C.length,A=null===(I=e.dataset)||void 0===I?void 0:I.productOrderkey,N=function(){var e=C[j],t=n.products.filter((function(t){return t.doc_id.toString()===e.toString()})).pop();if(t){var r=t.fusion_query_id,o=n.queries.filter((function(e){return e.params.fusion_query_id===r})).pop();o&&((a=o).params.doc_id=e,a.params.order_key=A,a.type="quote",k.push(a),_=!0),n.cart=n.cart.filter((function(t){return t.doc_id.toString()!==e.toString()})),n.products=n.products.filter((function(t){return t.doc_id.toString()!==e.toString()}))}},j=0;j<R;j++)N();a=k;break;case"order-details":var P,x,D=[],F=null===(P=e.dataset)||void 0===P?void 0:P.productOrdernumber,L=null===(x=e.dataset)||void 0===x?void 0:x.productOrderkey;null!=a&&F&&(a.params.order_number=F,a.params.order_key=L,a.params.type="order-details",a.params.fusion_query_id=null,a.params.doc_id=null,a.params.filter=null,a.params.filter_field=null,D.push(a),_=!0),a=D;break;case"purchase":for(var M,K=[],V=d.length,J=null===(M=e.dataset)||void 0===M?void 0:M.productOrderkey,B=function(){var e=d[U],t=n.cart.filter((function(t){return t.doc_id.toString()===e.toString()})).pop();if(t){var r=t.fusion_query_id,o=n.queries.filter((function(e){return e.params.fusion_query_id===r})).pop();o&&((a=o).params.doc_id=e,a.params.order_key=J,a.type="purchase",K.push(a),_=!0),n.cart=n.cart.filter((function(t){return t.doc_id.toString()!==e.toString()})),n.products=n.products.filter((function(t){return t.doc_id.toString()!==e.toString()}))}},U=0;U<V;U++)B();a=K;break;case"wayfinder-click":var G=function(e,t){var r;if(null==e||null===(r=e.dataset)||void 0===r||!r.hasOwnProperty(t))return null;try{return e.dataset[t]}catch(e){return null}},H=w(e,"[data-wayfinderfacet]"),Q=w(e,"[data-wayfindervalue]"),X=G(H,"wayfinderfacet"),Y=G(Q,"wayfindervalue");X&&Y&&(a.params.wayfinder_facet=X,a.params.wayfinder_value=Y,a.type=t,_=!0);break;case"filter":var W=function(e,t){var r;if(null==e||null===(r=e.dataset)||void 0===r||!r.hasOwnProperty(t))return null;try{return e.dataset[t]}catch(e){return null}},z=W(e,"facetKey"),Z=W(e,"facetValue");z&&Z&&(a.params.facet_key=z,a.params.facet_value=Z,a.type=t,_=!0)}if(_){var $=JSON.stringify(n);window.sessionStorage.setItem(c,$),u($),l(a)}return _}}}function h(e){window.sessionStorage.setItem(c,e.data)}function S(e){e&&(s.name=e),d&&(d.onmessage=function(e){return h(e)})}},68321:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function o(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}r.r(t),r.d(t,{SIGNAL_EVENT_NAME:()=>g,SIGNAL_TYPES:()=>f,SignalContract:()=>_,buildSignalContract:()=>m,processSignal:()=>S,registerSignalEventListener:()=>q,validateSignalContract:()=>v});var i,c,s,d=(i=window.location.hostname,["m.cdw.ca","m.cdwg.com","m.cdw.com","www.cdw.ca","www.cdwg.com","www.cdw.com"].some((function(e){return i.indexOf(e)>=0}))?"https://origin.cdw.com/sp.prod/signals/":["webqaint1vha-proxy.corp.cdw.com","webqaint1vha-proxy.corp.cdw.ca","webqaint1vha-proxy.corp.cdwg.com","webqaint1vhb-proxy.corp.cdw.com","webqaint1vhb-proxy.corp.cdw.ca","webqaint1vhb-proxy.corp.cdwg.com"].some((function(e){return i.indexOf(e)>=0}))?"https://origin.npd.cdw.com/sp.qa/signals/":"https://origin.npd.cdw.com/sp.test/signals/"),u=(c=["active_products","Content"],s="active_products",{set name(e){c.includes(e)?s=e:console.error("set operation on target failed: "+e+" is not a valid target")},get name(){return s}}),l=null;try{l=new BroadcastChannel("cdw-signals-channel")}catch(e){console.log("BroadcastChannel not available")}function p(e,t,r){var n=function(e,t){return Array.prototype.findIndex&&0===[,1].findIndex((function(e,t){return 0===t}))?e.findIndex(t):function(e,t){if(null==e)throw new TypeError('"array" is null or not defined');var r=Object(e),n=r.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var a=arguments[1],o=0;o<n;){var i=r[o];if(t.call(a,i,o,r))return o;o++}return-1}(e,t)}(e,(function(e){return e[t]&&r[t]&&e[t].toString()===r[t].toString()}));n>-1?e[n]=r:e.push(r)}var f=Object.freeze({CLICK:"click",COMPARE:"compare",SPECS:"specs",CART_SEARCH:"cart-search",CLICK_COMPARE:"click-compare",CART_COMPARE:"cart-compare",CART_PRODUCT:"cart-product",CART_PRODUCT_BETTER_TOGETHER:"cart-product-better-together",CART_CONFIG:"
1cart-config",QUOTE:"quote",QUOTE_PRODUCT:"quote-product",ORDER_DETAILS:"order-details",PURCHASE:"purchase",WAYFINDER_CLICK:"wayfinder-click",FILTER:"filter"}),y=Object.values(f),g="cdwSearchSignalEvent",w="cdw-signals",_=function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r=r||{},this.signalType=t,this.docId=r.docId||null;var n=r.docIds||[];!n||n instanceof Array||(n=[n.toString()]),this.docIds=n,this.sortRank=r.sortRank||0,this.orderKey=r.orderKey||null,this.orderNumber=r.orderNumber||null,this.wayfinderFacet=r.wayfinderFacet||null,this.wayfinderValue=r.wayfinderValue||null,this.facetKey=r.facetKey||null,this.facetValue=r.facetValue||null},(t=[{key:"validate",value:function(){if(!this.signalType)return{valid:!1,error:"signalType is required"};if(!y.includes(this.signalType))return{valid:!1,error:"Invalid signalType: "+this.signalType};switch(this.signalType){case f.CLICK:case f.COMPARE:case f.SPECS:case f.CART_SEARCH:case f.CLICK_COMPARE:case f.CART_COMPARE:case f.CART_PRODUCT:case f.CART_PRODUCT_BETTER_TOGETHER:case f.CART_CONFIG:if(!this.docId)return{valid:!1,error:this.signalType+" requires docId"};break;case f.QUOTE:case f.QUOTE_PRODUCT:if(!(this.docId||this.docIds&&this.docIds.length))return{valid:!1,error:this.signalType+" requires docId or docIds"};break;case f.ORDER_DETAILS:if(!this.orderNumber)return{valid:!1,error:this.signalType+" requires orderNumber"};break;case f.PURCHASE:if(!this.docIds||!this.docIds.length)return{valid:!1,error:this.signalType+" requires docIds"};break;case f.WAYFINDER_CLICK:if(!this.wayfinderFacet||!this.wayfinderValue)return{valid:!1,error:this.signalType+" requires wayfinderFacet and wayfinderValue"};break;case f.FILTER:if(!this.facetKey||!this.facetValue)return{valid:!1,error:this.signalType+" requires facetKey and facetValue"}}return{valid:!0}}},{key:"toPayload",value:function(){return{docId:this.docId,docIds:this.docIds,sortRank:this.sortRank,orderKey:this.orderKey,orderNumber:this.orderNumber,wayfinderFacet:this.wayfinderFacet,wayfinderValue:this.wayfinderValue,facetKey:this.facetKey,facetValue:this.facetValue}}}])&&a(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function m(e,t){return new _(e,t)}function v(e){return e instanceof _?e.validate():new _(e&&e.signalType,e).validate()}function h(){var e={},t=!1,r=0,n=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],r++);for(var a=function(r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t&&"[object Object]"===Object.prototype.toString.call(r[n])?e[n]=h(!0,e[n],r[n]):e[n]=r[n])};r<n;r++)a(arguments[r]);return e}function S(e,t){t=t||{};var r=window.sessionStorage.getItem(w);if(null!=r){var n=JSON.parse(r),a=h({},n.template),o=t.docId||null,i=t.docIds||[],c=t.sortRank||0,s=t.orderKey||null,f=t.orderNumber||null,y=a.params.fusion_query_id,g=!1;switch(e){case"click":case"compare":case"specs":p(n.products,"doc_id",{fusion_query_id:y,doc_id:o}),p(n.queries,"params.fusion_query_id",a),c>0&&(a.params.res_pos=c),a.params.doc_id=o,a.type=e,g=!0;break;case"cart-search":p(n.products,"doc_id",{fusion_query_id:y,doc_id:o}),p(n.queries,"params.fusion_query_id",a),p(n.cart,"doc_id",{fusion_query_id:y,doc_id:o}),a.params.doc_id=o,c>0&&(a.params.res_pos=c),a.type="cart",g=!0;break;case"click-compare":var _=n.products.filter((function(e){return e.doc_id.toString()===o.toString()})).pop();if(_){var m=_.fusion_query_id,v=n.queries.filter((function(e){return e.params.fusion_query_id===m})).pop();v&&((a=v).params.doc_id=o,a.type="click",g=!0)}break;case"cart-compare":var S=n.products.filter((function(e){return e.doc_id.toString()===o.toString()})).pop();if(S){var b=S.fusion_query_id,q=n.queries.filter((function(e){return e.params.fusion_query_id===b})).pop();q&&(p(n.cart,"doc_id",{fusion_query_id:y,doc_id:o}),(a=q).params.doc_id=o,a.type="cart-compare",g=!0)}break;case"cart-product":case"cart-product-better-together":case"cart-config":var T=n.products.filter((function(e){return e.doc_id.toString()===o.toString()})).pop();if(T||(p(n.products,"doc_id",{fusion_query_id:y,doc_id:o}),p(n.queries,"params.fusion_query_id",a),T=n.products.filter((function(e){return e.doc_id.toString()===o.toString()})).pop()),T){var O=T.fusion_query_id,E=n.queries.filter((function(e){return e.params.fusion_query_id===O})).pop();E&&(p(n.cart,"doc_id",{fusion_query_id:y,doc_id:o}),(a=E).params.doc_id=o,a.type=e,g=!0)}break;case"quote":case"quote-product":for(var I=o?[o]:i,C=[],k=function(){var e=I[R],t=n.products.filter((function(t){return t.doc_id.toString()===e.toString()})).pop();if(t){var r=t.fusion_query_id,o=n.queries.filter((function(e){return e.params.fusion_query_id===r})).pop();o&&((a=o).params.doc_id=e,a.params.order_key=s,a.type="quote",C.push(a),g=!0),n.cart=n.cart.filter((function(t){return t.doc_id.toString()!==e.toString()})),n.products=n.products.filter((function(t){return t.doc_id.toString()!==e.toString()}))}},R=0;R<I.length;R++)k();a=C;break;case"order-details":var A=[];null!=a&&f&&(a.params.order_number=f,a.params.order_key=s,a.params.type="order-details",a.params.fusion_query_id=null,a.params.doc_id=null,a.params.filter=null,a.params.filter_field=null,A.push(a),g=!0),a=A;break;case"purchase":for(var N=[],j=function(){var e=i[P],t=n.cart.filter((function(t){return t.doc_id.toString()===e.toString()})).pop();if(t){var r=t.fusion_query_id,o=n.queries.filter((function(e){return e.params.fusion_query_id===r})).pop();o&&((a=o).params.doc_id=e,a.params.order_key=s,a.type="purchase",
1N.push(a),g=!0),n.cart=n.cart.filter((function(t){return t.doc_id.toString()!==e.toString()})),n.products=n.products.filter((function(t){return t.doc_id.toString()!==e.toString()}))}},P=0;P<i.length;P++)j();a=N;break;case"wayfinder-click":var x=t.wayfinderFacet||null,D=t.wayfinderValue||null;x&&D&&(a.params.wayfinder_facet=x,a.params.wayfinder_value=D,a.type=e,g=!0);break;case"filter":var F=t.facetKey||null,L=t.facetValue||null;F&&L&&(a.params.facet_key=F,a.params.facet_value=L,a.type=e,g=!0)}if(g){var M=JSON.stringify(n);window.sessionStorage.setItem(w,M),function(e){l&&l.postMessage(e)}(M),function(e){var t,r=[];e&&(e instanceof Array?r=e:r.push(e));var n=function(){var e=(new Date).getTime(),n=window.crypto||window.msCrypto||null,a=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(e){return(e^n.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)}));r[t].timestamp=e,r[t].id=a};for(t=0;t<r.length;++t)n();try{var a=new Blob([JSON.stringify(r)],{type:"application/json"});if(!navigator.sendBeacon(d+u.name,a))throw new Error("navigator.sendBeacon failed to queue signal")}catch(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new XMLHttpRequest;r.addEventListener("readystatechange",(function(){this.readyState===this.DONE&&console.log(this.responseText)})),r.open("POST",e,!0),r.setRequestHeader("content-type","application/json"),r.send(t)}(d+u.name,JSON.stringify(r),{dataType:"json",contentType:"application/json"}),!0}}(a)}return g}}var b=!1;function q(){b||(b=!0,document.addEventListener(g,(function(e){var t,r,n,a;e.detail&&e.detail.signalType&&(t=e.detail.signalType,r=e.detail.payload||{},(a=(n=new _(t,r)).validate()).valid?S(n.signalType,n.toPayload()):(console.error("fireSignal validation failed:",a.error),a.error))})))}}},t={};function r(n){var a=t[n];if(void 0!==a)return a.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n=r(69953),a=r(68321),o=a.registerSignalEventListener,i=a.SIGNAL_EVENT_NAME,c="cdw-signals";function s(){if(void 0!==window.cdwFusionSignalData)if(window.sessionStorage.getItem(c)){var e=JSON.parse(window.sessionStorage.getItem(c));e.template=window.cdwFusionSignalData,window.sessionStorage.setItem(c,JSON.stringify(e))}else{var t=n.buildSignalObject(window.cdwFusionSignalData);window.sessionStorage.setItem(c,JSON.stringify(t))}}window.CdwSignals=(n.init(),s(),document.addEventListener(i,(function(){window.sessionStorage.getItem(c)||s()})),o(),{fireEvent:function(e,t){if(e){if(n.hasFlag(e,n.EventType.TAGMAN)){var r=n.getClosestDataAttribute(t,"[data-tagman
1]");if(r){var a=r.dataset.tagman;a&&CdwTagMan.createElementPageTag(a.type,a.name)}}n.hasFlag(e,n.EventType.SIGNAL)&&function(e){if(void 0!==window.cdwFusionSignalData)if(window.sessionStorage.getItem(c)){var t=window.sessionStorage.getItem(c),r=JSON.parse(t);r.template=window.cdwFusionSignalData,window.sessionStorage.setItem(c,JSON.stringify(r))}else{var a=n.buildSignalObject(window.cdwFusionSignalData),o=JSON.stringify(a);window.sessionStorage.setItem(c,o)}else console.log("window.cdwFusionSignalData NOT EXIST");n.getEleInfo(e)}(t)}}})})();

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.