CINXE.COM

U of T and Siemens Canada partner to transform energy grid | University of Toronto

<!DOCTYPE html> <html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#"> <head> <meta charset="utf-8" /> <meta name="description" content="The University of Toronto has signed a multi-year agreement with Siemens Canada that seeks to transform the energy grid and boost Canada’s ability to provide clean energy to communities. The partnership will bring together U of T’s cutting-edge research, commercialization and policy expertise with Siemens’s industry-leading experience in sustainable energy management and intelligent infrastructure – all with a view to advancing Ontario’s energy transition goals and contributing to Canada’s target of achieving net-zero emissions by 2050." /> <link rel="canonical" href="https://www.utoronto.ca/news/u-t-and-siemens-canada-partner-transform-energy-grid" /> <link rel="image_src" href="/sites/default/files/2024-11/043A0017-crop.jpg" /> <meta property="og:site_name" content="University of Toronto" /> <meta property="og:url" content="https://www.utoronto.ca/news/u-t-and-siemens-canada-partner-transform-energy-grid" /> <meta property="og:title" content="U of T and Siemens Canada partner to transform energy grid" /> <meta property="og:image" content="https://www.utoronto.ca/sites/default/files/2024-11/043A0017-crop.jpg" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="U of T and Siemens Canada partner to transform energy grid" /> <meta name="twitter:url" content="https://www.utoronto.ca/news/u-t-and-siemens-canada-partner-transform-energy-grid" /> <meta name="twitter:image" content="https://www.utoronto.ca/sites/default/files/2024-11/043A0017-crop.jpg" /> <meta name="Generator" content="Drupal 10 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <link rel="icon" href="/themes/custom/bootstrap_uoft/images/favicons/favicon.ico" type="image/vnd.microsoft.icon" /> <script src="/sites/default/files/google_tag/utoronto.ca/google_tag.script.js?snmmi0" defer></script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1134326665",accountID:"3922848",trustKey:"66686",xpid:"Vw8FU15XABABVFVTAgUBV1MC",licenseKey:"NRJS-27992c020635ff9e4a2",applicationID:"1041546173"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets&&(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(A,e,!0,"api")})),g.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==",249:"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==",212:"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})();</script> <title>U of T and Siemens Canada partner to transform energy grid | University of Toronto</title> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_IPOzt9b8HQxGUbLE2j3ptJZeZo0fSQ2yAP8CPZn9_6I.css?delta=0&amp;language=en&amp;theme=bootstrap_uoft&amp;include=eJyNjkEOwyAMBD8E4UnIJIZasnGETav8vlV7aCUuvexhZ1Zau8xRUgHDUFTdfMCZp1ZPjbUAR_OLqbew68C0q5zasbttX7vAGKQxCvb5p5YFqIc74cPSOzfRY_Lvh4-eqg5ZWxJomCtPOlboUCzXybwiQbPX0jJTu_kTpzFkdA" /> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_qWl9UTZNRTVA8AFSQfoWf_nCc6N1hxQJX6xvjnQr5wc.css?delta=1&amp;language=en&amp;theme=bootstrap_uoft&amp;include=eJyNjkEOwyAMBD8E4UnIJIZasnGETav8vlV7aCUuvexhZ1Zau8xRUgHDUFTdfMCZp1ZPjbUAR_OLqbew68C0q5zasbttX7vAGKQxCvb5p5YFqIc74cPSOzfRY_Lvh4-eqg5ZWxJomCtPOlboUCzXybwiQbPX0jJTu_kTpzFkdA" /> <link rel="preload" href="/themes/custom/bootstrap_uoft/gstatic/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/themes/custom/bootstrap_uoft/gstatic/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2" as="font" type="font/woff2" crossorigin> </head> <body class="layout-one-sidebar layout-sidebar-first page-node-310660 path-node node--type-news-story"> <a href="#main-content" class="visually-hidden focusable skip-link"> Skip to main content </a> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MFDGDNZ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div id="page-wrapper"> <div id="page"> <header data-sticky-header data-sticky-offset="6" data-sticky-media="(min-width: 40rem)" data-sticky-selector="main *:focus" id="header" class="header" role="banner" aria-label="Site header"> <nav class="navbar bg-transparent navbar-expand-lg" id="navbar-main"> <div class="uoft-logo"> <a href="/" title="Home" rel="home" class="navbar-brand"> <img src="/themes/custom/bootstrap_uoft/logo.svg" alt="Home" class="img-fluid d-inline-block align-top" /> <span class="ml-2 d-none d-md-inline"></span> </a> </div> <div class="navbar-form desktop"> <div class="header-tools"> <section class="row region region-header-tools"> <nav role="navigation" aria-labelledby="block-mainmenutools-menu" id="block-mainmenutools" class="settings-tray-editable block block-menu navigation menu--main-menu-tools" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-mainmenutools-menu">Main menu tools</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="https://mail.utoronto.ca/" class="webmail nav-link nav-link-https--mailutorontoca-">Email</a> </li> <li class="nav-item"> <a href="https://q.utoronto.ca/" class="portal nav-link nav-link-https--qutorontoca-">Quercus</a> </li> <li class="nav-item"> <a href="http://www.acorn.utoronto.ca/" class="acorn nav-link nav-link-http--wwwacornutorontoca-">Acorn</a> </li> </ul> </nav> <div id="block-maincampusstatus" class="settings-tray-editable block-content-main_campus_status block block-block-content block-block-contentc1abfe24-37a7-4697-b0a9-915322534083" data-drupal-settingstray="editable"> <div class="campus-status-wrapper"> <div class="status-ok"> <div class="status">&nbsp;</div> <div class="status-output"><a href="/campus-status">Campus status</a></div> </div> </div> </div> </section> </div> <div class="header-form"> <section class="row region region-header-form"> <div class="views-exposed-form settings-tray-editable block block-views block-views-exposed-filter-blocksearch-page-1" data-drupal-selector="views-exposed-form-search-page-1" id="block-exposedformsearchpage-1-2" data-drupal-settingstray="editable"> <div class="content"> <form action="/search" method="get" id="views-exposed-form-search-page-1" accept-charset="UTF-8"> <div class="d-flex flex-wrap"> <fieldset class="js-form-item js-form-type-textfield form-type-textfield js-form-item-query form-item-query bs-mb-2"> <label for="edit-query" class="bs-mb-1">Search the U of T website</label> <input data-drupal-selector="edit-query" type="text" id="edit-query" name="query" value="" size="30" maxlength="128" class="form-control" /> </fieldset> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper bs-mb-2" id="edit-actions--2"> <button data-drupal-selector="edit-submit-search" type="submit" id="edit-submit-search" value=" Search" class="button js-form-submit form-submit btn btn-primary"> Search</button> </div> </div> </form> </div> </div> <nav role="navigation" aria-labelledby="block-jumptomenu-menu" id="block-jumptomenu" class="block-jumptomenu settings-tray-editable block block-menu navigation menu--sub" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-jumptomenu-menu">Jump to menu</h2> <button class="jumpto-menu btn collapsed" data-toggle="collapse" data-target="#jumpto-menu" aria-controls="jumpto-menu" aria-expanded="false" aria-label="Jump to different areas on the site" role="button"> <span class="label">Jump to...</span> <span class="icon"><i class="fa-solid fa-caret-down"></i></span> </button> <div class="jumpto-menu-wrapper"> <div class="collapse" id="jumpto-menu" aria-expanded="false"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News &amp; Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research &amp; innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </div> <div id="jumpto-menu-mobile"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News &amp; Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research &amp; innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </nav> </section> </div> </div> <div class="navbar-form mobile"> <a class="search-mobile collapsed" href="#search-drawer" role="button" data-toggle="collapse" aria-label="search in mobile screen" aria-expanded="false" aria-controls="search-drawer"><i class="fa-regular fa-magnifying-glass"></i></a> <button class="navbar-toggler-mobile btn" type="button" data-toggle="collapse" data-target="#navbarMobile" aria-controls="navbarMobile" aria-expanded="false" aria-label="Mobile navigation"> <div class="animated-icon" id="animated-icon"><span></span><span></span><span></span><span></span></div> </button> </div> </nav> <div id="search-drawer" class="collapse"> <div class="views-exposed-form settings-tray-editable block block-views block-views-exposed-filter-blocksearch-page-1" data-drupal-selector="views-exposed-form-search-page-1" id="block-exposedformsearchpage-1-2" data-drupal-settingstray="editable"> <div class="content"> <form action="/search" method="get" id="views-exposed-form-search-page-1" accept-charset="UTF-8"> <div class="d-flex flex-wrap"> <fieldset class="js-form-item js-form-type-textfield form-type-textfield js-form-item-query form-item-query bs-mb-2"> <label for="edit-query" class="bs-mb-1">Search the U of T website</label> <input data-drupal-selector="edit-query" type="text" id="edit-query" name="query" value="" size="30" maxlength="128" class="form-control" /> </fieldset> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper bs-mb-2" id="edit-actions--2"> <button data-drupal-selector="edit-submit-search" type="submit" id="edit-submit-search" value=" Search" class="button js-form-submit form-submit btn btn-primary"> Search</button> </div> </div> </form> </div> </div> </div> <div class="primary-menu desktop justify-content-end"> <nav role="navigation" aria-labelledby="block-bootstrap-uoft-main-menu-menu" id="block-bootstrap-uoft-main-menu" class="block-bootstrap-uoft-main-menu settings-tray-editable block block-menu navigation menu--main" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-bootstrap-uoft-main-menu-menu">Main navigation</h2> <ul class="clearfix nav navbar-nav" data-component-id="bootstrap_barrio:menu_main"> <li class="nav-item"> <a href="/future-students" class="nav-link nav-link--future-students" data-drupal-link-system-path="node/169243">Future students</a> </li> <li class="nav-item"> <a href="/current-students" class="nav-link nav-link--current-students" data-drupal-link-system-path="node/169246">Current students</a> </li> <li class="nav-item"> <a href="/alumni" class="nav-link nav-link--alumni" data-drupal-link-system-path="node/169247">Alumni</a> </li> <li class="nav-item"> <a href="/faculty-staff" class="nav-link nav-link--faculty-staff" data-drupal-link-system-path="node/169250">Faculty and Staff</a> </li> <li class="nav-item"> <a href="https://defygravitycampaign.utoronto.ca/" class="nav-link nav-link-https--defygravitycampaignutorontoca-">Donors</a> </li> <li class="nav-item"> <a href="/visitors" class="nav-link nav-link--visitors" data-drupal-link-system-path="node/169248">Visitors</a> </li> </ul> </nav> </div> <div class="collapse navbar-collapse" id="navbarMobile"> <section class="row region region-header-tools"> <nav role="navigation" aria-labelledby="block-mainmenutools-menu" id="block-mainmenutools" class="settings-tray-editable block block-menu navigation menu--main-menu-tools" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-mainmenutools-menu">Main menu tools</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="https://mail.utoronto.ca/" class="webmail nav-link nav-link-https--mailutorontoca-">Email</a> </li> <li class="nav-item"> <a href="https://q.utoronto.ca/" class="portal nav-link nav-link-https--qutorontoca-">Quercus</a> </li> <li class="nav-item"> <a href="http://www.acorn.utoronto.ca/" class="acorn nav-link nav-link-http--wwwacornutorontoca-">Acorn</a> </li> </ul> </nav> <div id="block-maincampusstatus" class="settings-tray-editable block-content-main_campus_status block block-block-content block-block-contentc1abfe24-37a7-4697-b0a9-915322534083" data-drupal-settingstray="editable"> <div class="campus-status-wrapper"> <div class="status-ok"> <div class="status">&nbsp;</div> <div class="status-output"><a href="/campus-status">Campus status</a></div> </div> </div> </div> </section> <div class="mobile-navigation-wrapper"> <nav role="navigation" aria-labelledby="block-bootstrap-uoft-main-menu-menu" id="block-bootstrap-uoft-main-menu" class="block-bootstrap-uoft-main-menu settings-tray-editable block block-menu navigation menu--main" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-bootstrap-uoft-main-menu-menu">Main navigation</h2> <ul class="clearfix nav navbar-nav" data-component-id="bootstrap_barrio:menu_main"> <li class="nav-item"> <a href="/future-students" class="nav-link nav-link--future-students" data-drupal-link-system-path="node/169243">Future students</a> </li> <li class="nav-item"> <a href="/current-students" class="nav-link nav-link--current-students" data-drupal-link-system-path="node/169246">Current students</a> </li> <li class="nav-item"> <a href="/alumni" class="nav-link nav-link--alumni" data-drupal-link-system-path="node/169247">Alumni</a> </li> <li class="nav-item"> <a href="/faculty-staff" class="nav-link nav-link--faculty-staff" data-drupal-link-system-path="node/169250">Faculty and Staff</a> </li> <li class="nav-item"> <a href="https://defygravitycampaign.utoronto.ca/" class="nav-link nav-link-https--defygravitycampaignutorontoca-">Donors</a> </li> <li class="nav-item"> <a href="/visitors" class="nav-link nav-link--visitors" data-drupal-link-system-path="node/169248">Visitors</a> </li> </ul> </nav> <hr> <div class="row"> <nav role="navigation" aria-labelledby="block-jumptomenu-menu" id="block-jumptomenu" class="block-jumptomenu settings-tray-editable block block-menu navigation menu--sub" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-jumptomenu-menu">Jump to menu</h2> <button class="jumpto-menu btn collapsed" data-toggle="collapse" data-target="#jumpto-menu" aria-controls="jumpto-menu" aria-expanded="false" aria-label="Jump to different areas on the site" role="button"> <span class="label">Jump to...</span> <span class="icon"><i class="fa-solid fa-caret-down"></i></span> </button> <div class="jumpto-menu-wrapper"> <div class="collapse" id="jumpto-menu" aria-expanded="false"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News &amp; Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research &amp; innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </div> <div id="jumpto-menu-mobile"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News &amp; Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research &amp; innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </nav> </div> </div> </div> <nav class="navbar navbar-light bg-transparent" id="navbar-top"> <div class="sub-nav"> <section class="row region region-secondary-menu"> <nav role="navigation" aria-labelledby="block-uoftnewsmenu-menu" id="block-uoftnewsmenu" class="settings-tray-editable block block-menu navigation menu--u-of-t-news-menu" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-uoftnewsmenu-menu">U of T News menu</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">Latest news</a> </li> <li class="nav-item"> <a href="/news/searchnews" class="nav-link nav-link--news-searchnews" data-drupal-link-system-path="news/searchnews">Find a story</a> </li> <li class="nav-item"> <a href="/news/contact-us" class="nav-link nav-link--news-contact-us" data-drupal-link-system-path="node/171271">About U of T News</a> </li> <li class="nav-item"> <a href="/bulletin" class="nav-link nav-link--bulletin" data-drupal-link-system-path="node/171264">The Bulletin Brief</a> </li> <li class="nav-item"> <a href="http://magazine.utoronto.ca/" class="nav-link nav-link-http--magazineutorontoca-">U of T Magazine</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/bluebook/" class="nav-link nav-link-http--mediautorontoca-bluebook-">Blue Book</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/" class="nav-link nav-link-http--mediautorontoca-">Media Room</a> </li> </ul> </nav> </section> </div> <a class="sub-nav-mobile collapsed" href="#subNavMobile" role="button" data-toggle="collapse" aria-label="sub menu in mobile screen" aria-expanded="false" aria-controls="subNavMobile"> <span class="label">Navigation</span> <span class="icon"><i class="fa-solid fa-caret-down"></i></span> </a> <div class="collapse" id="subNavMobile"> <section class="row region region-secondary-menu"> <nav role="navigation" aria-labelledby="block-uoftnewsmenu-menu" id="block-uoftnewsmenu" class="settings-tray-editable block block-menu navigation menu--u-of-t-news-menu" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-uoftnewsmenu-menu">U of T News menu</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">Latest news</a> </li> <li class="nav-item"> <a href="/news/searchnews" class="nav-link nav-link--news-searchnews" data-drupal-link-system-path="news/searchnews">Find a story</a> </li> <li class="nav-item"> <a href="/news/contact-us" class="nav-link nav-link--news-contact-us" data-drupal-link-system-path="node/171271">About U of T News</a> </li> <li class="nav-item"> <a href="/bulletin" class="nav-link nav-link--bulletin" data-drupal-link-system-path="node/171264">The Bulletin Brief</a> </li> <li class="nav-item"> <a href="http://magazine.utoronto.ca/" class="nav-link nav-link-http--magazineutorontoca-">U of T Magazine</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/bluebook/" class="nav-link nav-link-http--mediautorontoca-bluebook-">Blue Book</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/" class="nav-link nav-link-http--mediautorontoca-">Media Room</a> </li> </ul> </nav> </section> </div> </nav> </header> <canvas id="confetti-canvas"></canvas> <div id="confetti-button" class="ready position-fixed"></div> <div id="main-wrapper" class="layout-main-wrapper clearfix"> <div id="main" class=" news"> <div class="clearfix"> <main class="main-content col" id="content" role="main"> <section class="section"> <a id="main-content" tabindex="-1"></a> <div id="block-newsheader-4" class="container settings-tray-editable block-content-news_and_celebrates_header block block-block-content block-block-content76bd2c76-a82f-40f2-913b-4a26ed2136b9" data-drupal-settingstray="editable"> <div class="block-header-wrapper"> <div class="logo"> <a href="/news" aria-label="U of T News">U of T News</a> </div> <div class="social-links"> <p class="label"> Follow U of T News</p> <a aria-label="Twitter link" href="https://twitter.com/uoft" target="_blank"><i aria-hidden="true" class="fa-brands fa-x-twitter"></i></a> <a aria-label="Facebook link" href="https://www.facebook.com/universitytoronto" target="_blank"><i aria-hidden="true" class="fa-brands fa-facebook-f"></i></a> <a aria-label="instagram link" href="https://www.instagram.com/uoft/" target="_blank"><i aria-hidden="true" class="fa-brands fa-instagram"></i></a> </div> </div> </div> <div id="block-bootstrap-uoft-content" class="block block-system block-system-main-block"> <div class="content"> <article data-history-node-id="310660" class="node node--type-news-story node--view-mode-full clearfix news-story container"> <div class="node__content clearfix"> <h1 class="title bs-mb-2"><span class="field field--name-title field--type-string field--label-hidden">U of T and Siemens Canada partner to transform energy grid</span> </h1> <div class="subheadline bs-mb-2"> Strategic industry-academic collaboration aims to accelerate adoption of green energy technologies </div> <div class="story-image bs-mb-2"> <img loading="eager" srcset="/sites/default/files/styles/news_banner_370/public/2024-11/043A0017-crop.jpg?h=81d682ee&amp;itok=fbMDzZ7o 370w, /sites/default/files/styles/news_banner_740/public/2024-11/043A0017-crop.jpg?h=81d682ee&amp;itok=FEq5k1bD 740w, /sites/default/files/styles/news_banner_1110/public/2024-11/043A0017-crop.jpg?h=81d682ee&amp;itok=awcxNObR 1110w" sizes="(min-width:1200px) 1110px, (max-width: 1199px) 80vw, (max-width: 767px) 90vw, (max-width: 575px) 95vw" width="740" height="494" src="/sites/default/files/styles/news_banner_370/public/2024-11/043A0017-crop.jpg?h=81d682ee&amp;itok=fbMDzZ7o" alt="&quot;&quot;" /> <div class="caption bs-mt-1"><p><em>Siemens Canada CEO and President Faisal Kazi (L), and Leah Cowen, U of T's vice-president, research and innovation, and strategic initiatives, shake hands after signing an institutional partnership agreement focused on advancing sustainability energy systems (photo by Liz Beddall)</em></p> </div> </div> <div class="row no-mb"> <div class="left-col col-md-8"> <div class="submitted bs-mb-2"> <p class="caption date no-mb"><strong>Published: <span>November 22, 2024</span></strong></p> <p class="caption authors no-mb"> By <a href="/taxonomy/term/6907">Sayyeda Masood</a> </p> </div> <div class="body bs-mb-4"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>The University of Toronto has signed a multi-year agreement with Siemens Canada that seeks to transform the energy grid and boost Canada’s ability to provide clean energy to communities.</p> <p>The partnership will bring together U of T’s cutting-edge research, commercialization and policy expertise with Siemens’s industry-leading experience in sustainable energy management and intelligent infrastructure – all with a view to advancing Ontario’s energy transition goals and contributing to Canada’s target of achieving net-zero emissions by 2050.</p> <p>“The University of Toronto is delighted to strengthen our relationship with Siemens by entering into this institutional partnership agreement,” said&nbsp;<strong>Leah Cowen</strong>, U of T’s vice-president, research and innovation, and strategic initiatives, at a signing ceremony held Nov. 21 at Hart House.</p> <p>“This framework agreement will generate broad and deep mutual value enabling both Siemens and U of T to build a green future together as global organizations with global ambitions.”</p> <p>The partnership expands on U of T’s existing ties with Siemens: the company is partner in U of T’s <a href="https://cpe.utoronto.ca/grid-modernization-centre/">Grid Modernization Centre</a>, which brings together companies and U of T researchers to advance decarbonization of the electric grid while supporting innovation in clean energy technologies, policy advocacy and financing. The centre is led by&nbsp;<a href="https://cpe.utoronto.ca/">Climate Positive Energy</a>, a U of T&nbsp;<a href="https://isi.utoronto.ca/">institutional strategic initiative</a>&nbsp;that leverages research expertise across the university to support efforts to curb carbon emissions, reimagine energy systems and facilitate an equitable transition to a clean energy future in Canada and globally.</p> <p>“We are thrilled to strengthen our partnership with the University of Toronto through signing this framework agreement,” said <strong>Faisal Kazi</strong>, president and CEO of Siemens Canada. “Today marks not just another step but the continuation of a collaborative journey we’ve nurtured over many years. I look forward to seeing continued leadership and innovation as a result of this agreement.”&nbsp;</p> <p>The partnership with Siemens Canada is part of ongoing efforts across the university to address grid modernization and accelerate the transition to a more sustainable future powered by clean energy.</p> <p>For example, researchers on all three campuses are currently contributing to efforts to transform Canada’s energy grid – and the infrastructure that powers homes, buildings and electric vehicles – into an intelligent and secure grid. The resulting “smart grid” will leverage the latest advances in AI to appropriately direct energy to the points of highest need at critical times to avoid power outages.</p> <p>The undertaking combines two areas where U of T is among the world leaders – sustainability and AI.&nbsp;U of T was named the <a href="https://defygravitycampaign.utoronto.ca/news-and-stories/u-of-t-ranked-worlds-most-sustainable-university/">most sustainable university in the world</a> in the 2024 QS World University Rankings, and is a longstanding leader in AI research, thanks in part to the efforts of luminaries like <a href="https://www.provost.utoronto.ca/awards-funding/university-professors/complete-list-university-professors/">University Professor</a> Emeritus <strong>Geoffrey Hinton</strong>, whose foundational discoveries and inventions were recently&nbsp;<a href="/news/geoffrey-hinton-wins-nobel-prize">recognized with a Nobel Prize</a>.</p> <p>At the same time, U of T researchers are also at the forefront of addressing emerging challenges associated with the transition to a smart grid. That includes security considerations – which will be among the key areas of focus for U of T’s partnership with Siemens, a leading supplier of electrical components to utilities.</p> <p>For example, Professor&nbsp;<strong>Deepa Kundur</strong>, chair of the Edward S. Rogers Sr. department of electrical and computer engineering in the Faculty of Applied Science &amp; Engineering, leads a research group that’s exploring&nbsp;<a href="/news/u-t-researcher-leads-effort-protect-power-utilities-quantum-attacks">exploring how to defend power utilities from cyberattacks</a>.</p> <p>Working with industrial partners across different sectors, these and other U of T researchers are helping companies make better use of resources and enabling safe access to emerging green technologies.</p> <p>Going forward, U of T’s collaboration with Siemens will expand beyond energy systems to encompass other crucial sectors such as AI, automation and advanced manufacturing.</p> <h3><a href="https://bluedoor.utoronto.ca/">Learn more about industry partnerships at U of T</a></h3> <h3><a href="https://cpe.utoronto.ca/">Learn more about Climate Positive Energy</a></h3> </div> </div> </div> <div class="right-col col-md-4"> <div class="social-share bs-mb-4"> <h2 class="bs-mb-2">Share this page</h2> <div class="icons"> <a href="https://twitter.com/share?text=Check+this+story+out+:&amp;url=https://www.utoronto.ca//news/u-t-and-siemens-canada-partner-transform-energy-grid" aria-label="Share this page on Twitter" rel="noreferrer" target="_blank"><i class="fa-brands fa-x-twitter"></i></a> <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.utoronto.ca//news/u-t-and-siemens-canada-partner-transform-energy-grid" aria-label="Share this page on Facebook" rel="noreferrer" target="_blank"><i class="fa-brands fa-facebook-f"></i></a> <a href="mailto:?subject=U of T and Siemens Canada partner to transform energy grid&body=Check this page out : https://www.utoronto.ca//news/u-t-and-siemens-canada-partner-transform-energy-grid" aria-label="Share this page" rel="noreferrer" target="_blank"><i class="fa-regular fa-envelope"></i></a> </div> </div> <div class="topics bs-mb-4"> <h2 class="bs-mb-2">Topics</h2> <div class="topics-content"> <a href="/news/topics/our-community"> Our Community</a> </div> </div> <div class="tags bs-mb-4"> <h2 class="bs-mb-2">Tags</h2> <div class="tags-content"> <a href="/news/tags/climate-positive-energy">Climate Positive Energy</a>, <a href="/news/tags/industry-partnerships">Industry Partnerships</a>, <a href="/news/tags/institutional-strategic-initiatives">Institutional Strategic Initiatives</a>, <a href="/news/tags/leah-cowen">Leah Cowen</a>, <a href="/news/tags/faculty-applied-science-engineering">Faculty of Applied Science &amp; Engineering</a>, <a href="/news/tags/sustainability">Sustainability</a> </div> </div> <div class="bulletin-subscription-form box-wrapper bg-light-grey border-medium-grey"> <a href="/bulletin" aria-label="Go to The Bulletin Brief hubpage."> <img src="/themes/custom/bootstrap_uoft/images/logos/logo-bulletin-brief.png" alt="The Bulletin Brief logo" loading="lazy" /> </a> <h2 class="bs-mb-2">Subscribe to The Bulletin Brief</h2> <div class="mailchimp-signup-subscribe-form settings-tray-editable block block-mailchimp-signup block-mailchimp-signup-subscribe-blockthe-bulletin-subscribe-form" data-drupal-selector="mailchimp-signup-subscribe-block-the-bulletin-subscribe-form-form" id="block-mailchimpsubscriptionformthebulletinsubscribeform" data-drupal-settingstray="editable"> <div class="content"> <form action="/news/u-t-and-siemens-canada-partner-transform-energy-grid" method="post" id="mailchimp-signup-subscribe-block-the-bulletin-subscribe-form-form" accept-charset="UTF-8"> <div id="mailchimp-newsletter-b5083c0488-mergefields" class="mailchimp-newsletter-mergefields"> <fieldset class="js-form-item js-form-type-email form-type-email js-form-item-mergevars-email form-item-mergevars-email bs-mb-2"> <label for="edit-mergevars-email" class="js-form-required form-required bs-mb-1">Email Address</label> <input autocomplete="email" data-drupal-selector="edit-mergevars-email" type="email" id="edit-mergevars-email" name="mergevars[EMAIL]" value="" size="25" maxlength="254" class="form-email required form-control" required="required" aria-required="true" /> </fieldset> </div><input data-drupal-selector="form-jocic3-ww6-ktk6uxhm1d3pnkd4b5jdur8o-e4srcc" type="hidden" name="form_build_id" value="form-_jOCIc3_ww6-Ktk6uXhM1d3pnKD4b5jDUR8O-E4srcc" class="form-control" /> <input data-drupal-selector="edit-mailchimp-signup-subscribe-block-the-bulletin-subscribe-form-form" type="hidden" name="form_id" value="mailchimp_signup_subscribe_block_the_bulletin_subscribe_form_form" class="form-control" /> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper bs-mb-2" id="edit-actions"> <button data-drupal-selector="edit-submit" type="submit" id="edit-submit" name="op" value="Subscribe" class="button js-form-submit form-submit btn btn-primary">Subscribe</button> </div> </form> </div> </div> </div> </div> </div> <div class="ga-source d-none">CPE</div> </div> </article> <div class="bg-light-grey bs-pt-4 bs-pb-4 "> <div class="container"> <h2 class="bs-mb-2 text-center">More U of T News</h2> <div class="views-element-container"><div class="view view-news-block view-id-news_block view-display-id-block_9 js-view-dom-id-975db693db6ab968e33f7dc0a2cfb4bcb5644a3a497adbad8dd2b0c77b53ad0d"> <div class="view-content row"> <div class="col col-lg-4 col-md-12 views-row"> <a class="news-grid-item" href="/news/u-t-shines-spotlight-exceptional-educators-excellence-teaching-reception" aria-label="U of T shines a spotlight on exceptional educators at Excellence in Teaching reception"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/news_block_thumbnail/public/2024-11/2024-11-04-Excellence-in-teaching_Polina-Teif-9-CROP.jpg?h=81d682ee&amp;itok=XXbli8GY" width="360" height="240" alt="&quot;&quot;" class="image-style-news-block-thumbnail" /> </span> <span class="date bs-mb-1"> November 27, 2024 </span> <span class="headline">U of T shines a spotlight on exceptional educators at Excellence in Teaching reception</span> </a> </div> <div class="col col-lg-4 col-md-12 views-row"> <a class="news-grid-item" href="/news/tree-stories-course-connects-u-t-students-nature-history-and-themselves" aria-label="‘Tree Stories&#039; course connects U of T students to nature, history, and themselves"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/news_block_thumbnail/public/2024-11/DSC_6467-crop.jpg?h=81d682ee&amp;itok=AUQUsc-e" width="360" height="240" alt="&quot;&quot;" class="image-style-news-block-thumbnail" /> </span> <span class="date bs-mb-1"> November 27, 2024 </span> <span class="headline">‘Tree Stories&#039; course connects U of T students to nature, history, and themselves</span> </a> </div> <div class="col col-lg-4 col-md-12 views-row"> <a class="news-grid-item" href="/news/phd-student-s-radiopharmaceutical-play-key-role-clinical-trial-lung-cancer-treatment" aria-label="PhD student&#039;s radiopharmaceutical to play key role in clinical trial for lung cancer treatment"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/news_block_thumbnail/public/2024-11/stephanie_borlase_faculty-crop.jpg?h=81d682ee&amp;itok=MiBokgiY" width="360" height="240" alt="&quot;&quot;" class="image-style-news-block-thumbnail" /> </span> <span class="date bs-mb-1"> November 26, 2024 </span> <span class="headline">PhD student&#039;s radiopharmaceutical to play key role in clinical trial for lung cancer treatment</span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </section> </main> </div> </div> </div> <footer id="footer"> <div class="site-footer"> <div class="container"> <div class="row"> <div class="col-md-12"> <section class="row region region-footer-logo"> <div id="block-footerlogo" class="settings-tray-editable block-content-basic block block-block-content block-block-content2fe9eedb-2036-47ab-b428-a7c80f3e78ef" data-drupal-settingstray="editable"> <div class="content"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="footer-logo-wrapper"> <p class="footer-campaign-logo"><a href="https://defygravitycampaign.utoronto.ca/" title="Defy gravity"><img alt="defy gravity logo" height="80" loading="lazy" src="/sites/default/files/2023-06/Defy_Gravity_KO-150.png" width="150"> </a></p> </div> </div> </div> </div> </section> </div> </div> <div class="row footer-cols"> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-first"> <nav role="navigation" aria-labelledby="block-mainnavigation-menu" id="block-mainnavigation" class="settings-tray-editable block block-menu navigation menu--main" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-mainnavigation-menu">Main navigation repeated</h2> <ul class="clearfix nav navbar-nav" data-component-id="bootstrap_barrio:menu_main"> <li class="nav-item"> <a href="/future-students" class="nav-link nav-link--future-students" data-drupal-link-system-path="node/169243">Future students</a> </li> <li class="nav-item"> <a href="/current-students" class="nav-link nav-link--current-students" data-drupal-link-system-path="node/169246">Current students</a> </li> <li class="nav-item"> <a href="/alumni" class="nav-link nav-link--alumni" data-drupal-link-system-path="node/169247">Alumni</a> </li> <li class="nav-item"> <a href="/faculty-staff" class="nav-link nav-link--faculty-staff" data-drupal-link-system-path="node/169250">Faculty and Staff</a> </li> <li class="nav-item"> <a href="https://defygravitycampaign.utoronto.ca/" class="nav-link nav-link-https--defygravitycampaignutorontoca-">Donors</a> </li> <li class="nav-item"> <a href="/visitors" class="nav-link nav-link--visitors" data-drupal-link-system-path="node/169248">Visitors</a> </li> </ul> </nav> </section> </div> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-second"> <nav role="navigation" aria-labelledby="block-subnavigation-2-menu" id="block-subnavigation-2" class="settings-tray-editable block block-menu navigation menu--sub" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-subnavigation-2-menu">Jump to menu repeated</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News &amp; Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research &amp; innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </nav> </section> </div> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-third"> <nav role="navigation" aria-labelledby="block-footermenupart3-menu" id="block-footermenupart3" class="settings-tray-editable block block-menu navigation menu--footer-menu-part-3" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-footermenupart3-menu">Quick links</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/contacts" class="nav-link nav-link--contacts" data-drupal-link-system-path="node/169266">Contact</a> </li> <li class="nav-item"> <a href="https://jobs.utoronto.ca/" class="nav-link nav-link-https--jobsutorontoca-">Careers</a> </li> <li class="nav-item"> <a href="/accessibility" class="nav-link nav-link--accessibility" data-drupal-link-system-path="node/169262">Accessibility</a> </li> <li class="nav-item"> <a href="/privacy" class="nav-link nav-link--privacy" data-drupal-link-system-path="node/169264">Privacy</a> </li> <li class="nav-item"> <a href="/site-feedback" class="nav-link nav-link--site-feedback" data-drupal-link-system-path="node/169265">Site feedback</a> </li> <li class="nav-item"> <a href="/sitemap" class="nav-link nav-link--sitemap" data-drupal-link-system-path="node/169894">Site map</a> </li> </ul> </nav> </section> </div> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-fourth"> <div id="block-maincampusstatus-3" class="settings-tray-editable block-content-main_campus_status block block-block-content block-block-contentc1abfe24-37a7-4697-b0a9-915322534083" data-drupal-settingstray="editable"> <div class="campus-status-wrapper"> <div class="status-ok"> <div class="status">&nbsp;</div> <div class="status-output"><a href="/campus-status">Campus status</a></div> </div> </div> </div> <nav role="navigation" aria-labelledby="block-footermenupart4-menu" id="block-footermenupart4" class="settings-tray-editable block block-menu navigation menu--footer-menu-part-4" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-footermenupart4-menu">Quick links</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/university-life/campuses/st-george" class="nav-link nav-link--university-life-campuses-st-george" data-drupal-link-system-path="node/169255">St. George campus</a> </li> <li class="nav-item"> <a href="/university-life/campuses/mississauga" class="nav-link nav-link--university-life-campuses-mississauga" data-drupal-link-system-path="node/169256">Mississauga campus</a> </li> <li class="nav-item"> <a href="/university-life/campuses/scarborough" class="nav-link nav-link--university-life-campuses-scarborough" data-drupal-link-system-path="node/169253">Scarborough campus</a> </li> <li class="nav-item"> <a href="http://map.utoronto.ca/" class="nav-link nav-link-http--maputorontoca-">Campus maps</a> </li> <li class="nav-item"> <a href="http://safety.utoronto.ca/" class="nav-link nav-link-http--safetyutorontoca-">Campus safety</a> </li> </ul> </nav> </section> </div> </div> <div class="site-footer__bottom"> <div class="row"> <div class="col-md-12"> <section class="row region region-footer-fifth"> <div id="block-footerstatementofacknowledgement-2" class="settings-tray-editable block-content-basic block block-block-content block-block-contentba347b0a-1f37-41cb-8d09-9d580073a024" data-drupal-settingstray="editable"> <div class="content"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="statement-wrapper"> <p class="title">Statement of Land Acknowledgement</p> <p>We wish to acknowledge this land on which the University of Toronto operates. For thousands of years it has been the traditional land of the Huron-Wendat, the Seneca, and the Mississaugas of the Credit. Today, this meeting place is still the home to many Indigenous people from across Turtle Island and we are grateful to have the opportunity to work on this land.&nbsp;<a href="https://indigenous.utoronto.ca/about/land-acknowledgement/" target="_blank" title="https://indigenous.utoronto.ca/about/land-acknowledgement/">Read about U of T’s Statement of Land Acknowledgement.</a></p> </div> </div> </div> </div> </section> </div> </div> </div> </div> </div> <div class="site-footer-bottom"> <section class="row region region-footer-bottom"> <div id="block-footersocialicons-2" class="settings-tray-editable block-content-footer_social_icons block block-block-content block-block-content3225f7ff-2693-4e9f-8469-ca9c240414f3 footer-social-icons" data-drupal-settingstray="editable"> <div class="footer-social-icons-wrapper"> <a aria-label="Twitter link" href="https://twitter.com/uoft" target="_blank"><i aria-hidden="true" class="fa-brands fa-x-twitter"></i></a> <a aria-label="Facebook link" href="https://www.facebook.com/universitytoronto" target="_blank"><i aria-hidden="true" class="fa-brands fa-facebook-f"></i></a> <a aria-label="instagram link" href="https://www.instagram.com/uoft/" target="_blank"><i aria-hidden="true" class="fa-brands fa-instagram"></i></a> <a aria-label="YouTube link" href="https://www.youtube.com/user/universitytoronto" target="_blank"><i aria-hidden="true" class="fa-brands fa-youtube"></i></a> <a aria-label="LinkedIn link" class="linkedin-icon" href="https://www.linkedin.com/school/university-of-toronto/" target="_blank"><i aria-hidden="true" class="fa-brands fa-linkedin-in"></i></a> <a aria-label="Tik tok link" class="tik-tok-icon" href="https://www.tiktok.com/@uoft" target="_blank"><i aria-hidden="true" class="fa-brands fa-tiktok"></i></a> <a aria-label="Social media directory link" href="/social-media-directory" target="_blank">Social media directory</a> </div> <div class="footer-message"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>UNIVERSITY OF TORONTO - SINCE 1827</p> </div> </div> </div> </section> </div> </footer> </div> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/310660","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxTrustedUrl":{"form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM":true,"\/search":true},"user":{"uid":0,"permissionsHash":"bf8f8b022f0bf2ebd333087f6db9f8327e1a1c8d4ebdc8fe013356f6ea6ec180"}}</script> <script src="/sites/default/files/js/js_rR_k2wT1SXxt301Zq6Ck7UyEpoT-d5UoeJRZwXkDKDI.js?scope=footer&amp;delta=0&amp;language=en&amp;theme=bootstrap_uoft&amp;include=eJxLys8vKS4pSiyIL81PK9FPz8lPSszRLS6pzMnMSwcAs1UL0w"></script> <link rel="stylesheet" media="all" href="/themes/custom/bootstrap_uoft/fa/css/all.min.css?v=1.4" /> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-27992c020635ff9e4a2","applicationID":"1041546173","transactionName":"NgBTZ0oHWEECV0xfDQ9KcFBMD1lcTHBKQxIACW1dVwJTbiBbVkIQDgldVko6eF0HUW5fBxYmXl1MFFleD1FKG1wXDFRE","queueTime":0,"applicationTime":190,"atts":"GkdQEQIdS08=","errorBeacon":"bam.nr-data.net","agent":""}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10