CINXE.COM
Offices and Services | University of Waterloo
<!DOCTYPE html> <html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# " class="no-js"> <head> <meta charset="utf-8" /><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:"1103280112",accountID:"4165269",trustKey:"66686",xpid:"UAcBVFRVARABVFhaBQMHUlYJ",licenseKey:"NRJS-00798bf011f7ec1aa7f",applicationID:"1098220428"};;/*! 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> <meta name="description" content="Offices and Services at the University of Waterloo" /> <link rel="canonical" href="https://uwaterloo.ca/offices-services" /> <meta property="og:url" content="https://uwaterloo.ca/offices-services" /> <meta property="og:title" content="Offices and Services | University of Waterloo" /> <meta property="og:description" content="Offices and Services at the University of Waterloo" /> <meta property="og:updated_time" content="2024-10-04T13:42:20-04:00" /> <meta property="og:locale" content="en_CA" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="Generator" content="Drupal 9 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-L2Z2MKPQ2G"></script> <script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-L2Z2MKPQ2G', { 'cookie_domain': 'uwaterloo.ca', 'cookie_path': '/', 'cookie_expires': 2592000 });</script> <link rel="icon" href="/profiles/uw_base_profile/themes/uw_fdsu_theme_resp/favicon.ico" /> <link rel="alternate" hreflang="en" href="https://uwaterloo.ca/offices-services" /> <link rel="icon" href="/profiles/uw_base_profile/themes/uw_fdsu_theme_resp/icon.svg" type="image/svg+xml" /> <link rel="apple-touch-icon" href="/profiles/uw_base_profile/themes/uw_fdsu_theme_resp/apple-touch-icon.png" /> <link rel="manifest" href="data:application/manifest+json,%7B%22icons%22%3A%5B%7B%22src%22%3A%22https%3A%5C%2F%5C%2Fuwaterloo.ca%5C%2Fprofiles%5C%2Fuw_base_profile%5C%2Fthemes%5C%2Fuw_fdsu_theme_resp%5C%2Ficon-192.png%22%2C%22type%22%3A%22image%5C%2Fpng%22%2C%22sizes%22%3A%22192x192%22%7D%2C%7B%22src%22%3A%22https%3A%5C%2F%5C%2Fuwaterloo.ca%5C%2Fprofiles%5C%2Fuw_base_profile%5C%2Fthemes%5C%2Fuw_fdsu_theme_resp%5C%2Ficon-512.png%22%2C%22type%22%3A%22image%5C%2Fpng%22%2C%22sizes%22%3A%22512x512%22%7D%5D%7D" /> <title>Offices and Services | University of Waterloo</title> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;700&family=Barlow:wght@400;500;700&display=swap" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;700&family=Barlow:wght@400;500;700&display=swap" media="print" onload="this.media='all'" /> <noscript> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;700&family=Barlow:wght@400;500;700&display=swap" /> </noscript> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M9XLVF');</script> <!-- End Google Tag Manager --> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_yYIob_JSc1msF-q-DpGs3SxT09DUAB7pE-QKovjLHU0.css" /> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_rBGq5khqe9fByZy__ig99L2IK5BM6HX6rJhuSBFkLXY.css" /> <link rel="stylesheet" media="all" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css" /> <link rel="stylesheet" media="all" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.min.css" /> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_EAsArFN2_7N4N5Wc6V7FvaEm1piFXaVRTj0lsjiPDBs.css" /> </head> <body class="org-default not-layout-page path-node not-front node-page node-page--node-type-uw-ct-web-page"> <!-- Google Tag Manager (noscript) --> <noscript> <iframe aria-label="Google Tag Manager" src="https://www.googletagmanager.com/ns.html?id=GTM-M9XLVF" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <div class="skiplinks"> <a href="#main" class="skiplinks__link visually-hidden focusable">Skip to main content</a> </div> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div class="uw-site-container"> <header class="uw-header uw-header__menu--full org-default" role="banner"> <div class="uw-header__masthead" lang="en"> <div class="uw-site-logo"> <a class="uw-site-logo__link" href="https://uwaterloo.ca" title="University of Waterloo Home" aria-label="University of Waterloo Home" rel="home"></a> </div> <div class="uw-header-menu uw-header-menu__full"> <nav class="uw-horizontal-nav uw-horizontal-nav--header" aria-label="University of Waterloo navigation"> <div class="uw-horizontal-nav--wrapper"> <div class="uw-horizontal-nav--menu"> <ul class="menu menu--horizontal" > <li class="menu__item is-active-trail has-submenu" > <a class="menu__link is-active-trail menu__link-sub" tabindex="0" aria-haspopup="true" role="button" > <span class="link-text"> Jump to </span> </a> <ul class="menu menu__subnav"> <li class="menu__item menu__item-parent"> <a href="#" class="menu__link-parent"> <span class="link-text"> Jump to </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/admissions/" > <span class="link-text"> Admissions </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/about/" > <span class="link-text"> About Waterloo </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/faculties-academics/" > <span class="link-text"> Faculties & Academics </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/offices-services/" > <span class="link-text"> Offices & Services </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/support/" > <span class="link-text"> Support Waterloo </span> </a> </li> </ul> </li> </ul> </div> </div> </nav> </div> <div class="uw-header-search"> <form class="uw-search--form" role="search" data-drupal-selector="uw-search-form" action="/offices-services" method="post" id="uw-search-form" accept-charset="UTF-8"> <input class="uw-input uw-input--checkboxform form-checkbox" aria-hidden="true" tabindex="-1" data-drupal-selector="edit-opentray" type="checkbox" id="edit-opentray" name="opentray" value="1" /> <label class="uw-search--checkboxlabel option" data-drupal-selector="edit-opentray" for="edit-opentray"><span class="uw-search--checkboxlabel__labeltext">Open Search Location </span></label><div class="js-form-item form-item js-form-type-textfield form-item-search-input js-form-item-search-input form-no-label"> <label for="uw-search" class="visually-hidden"><span class="uw-search--labeltext">Search for </span></label> <input class="uw-input uw-input--search form-text" data-drupal-selector="uw-search" data-msg-maxlength="<span class="uw-search--labeltext">Search for </span> field has a maximum length of 128." type="text" id="uw-search" name="search-input" value="" size="60" maxlength="128" placeholder="Search" /> </div> <div class="js-form-item form-item js-form-type-select form-item-search-type js-form-item-search-type form-no-label"> <label for="uw-select-site" class="visually-hidden">Search Location</label> <select class="form-item__select uw-select--search form-select" data-drupal-selector="uw-select-site" id="uw-select-site" name="search-type"><option value="" selected="selected">On all sites</option></select> </div> <input autocomplete="off" data-drupal-selector="form-hjldol-zv1elwm6hoe7lg3g4d0oviwyd1re-78tn6t8" type="hidden" name="form_build_id" value="form-HJlDOl-Zv1ELWm6HOe7lg3G4D0OviWYd1re-78TN6T8" /> <input data-drupal-selector="edit-uw-search-form" type="hidden" name="form_id" value="uw_search_form" /> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><div class="uw-search-button__wrapper"><input value="Search" class="button button--submit button--submit__form js-form-submit form-submit" data-drupal-selector="uw-search-submit" type="submit" id="uw-search-submit" name="op" /> </div></div> </form> </div> </div> <!-- Branding colour bar. --> <div class="uw-colour-bar"> <div class="uw-colour-bar__wrapper"> <div class="uw-colour-bar__cbars"> <div class="uw-colour-bar__cbar org-default-1"></div> <div class="uw-colour-bar__cbar org-default-2"></div> <div class="uw-colour-bar__cbar org-default-3"></div> <div class="uw-colour-bar__cbar org-default-4"></div> </div> </div> </div> </header> <div class="uw-highlighted"> <div class="uw-highlighted__content"> <div data-drupal-messages-fallback class="hidden"></div> </div> </div> <!-- Button for show and hide of admin --> <button class="uw-show-hide" id="revision-show-hide" title="Show/hide revision elements">±</button> <!-- end --> <main id="main" class="uw-main" role="main" tabindex="-1"> <div role="article" about="/offices-services" class="node node--type-uw-ct-web-page node--view-mode-full uw-node"> <div class="uw-node__grid"> <article class="uw-node__node"> <div class="node__content"> <div class="uw-node__with-media uw-node__with-media--banner"> <article class="card card__node card__node--web-page"> <div class="card__media layout uw-full-width"> <article id="banner1-" class="card card__banner card__node--uw_ct_web_page"> <div class="card__body"> <div class="card__banner--image uw-text-overlay--none"> <!--If banner text overlay is split then always show the H1 in the top white bar. --> <div class="card__banner--media"> <picture class="uw-picture"> <!--[if IE 9]><video style="display: none;"><![endif]--> <source srcset="/sites/default/files/styles/uw_is_media_x_large/public/uploads/images/_dsc9791.jpg?itok=9ySu_5Ex 1x" media="all and (min-width: 63.19em)" type="image/jpeg" /> <source srcset="/sites/default/files/styles/uw_is_media_large/public/uploads/images/_dsc9791.jpg?itok=nObN4z7a 1x" media="all and (min-width: 49.81em)" type="image/jpeg" /> <source srcset="/sites/default/files/styles/uw_is_media_medium/public/uploads/images/_dsc9791.jpg?itok=PFzcdsl0 1x" media="all and (min-width: 30em)" type="image/jpeg" /> <source srcset="/sites/default/files/styles/uw_is_media_small/public/uploads/images/_dsc9791.jpg?itok=FSwKcs7O 1x" media="all and (min-width: 25em)" type="image/jpeg" /> <source srcset="/sites/default/files/styles/uw_is_media_x_small/public/uploads/images/_dsc9791.jpg?itok=qJ9h5BJ1 1x" media="all and (min-width: 15em)" type="image/jpeg" /> <source srcset="/sites/default/files/styles/uw_is_portrait/public/uploads/images/_dsc9791.jpg?itok=DpqiG1q1 1x" media="all and (min-width: 1em)" type="image/jpeg" /> <!--[if IE 9]></video><![endif]--> <img class="uw-picture__fallback" src="/sites/default/files/styles/large/public/uploads/images/_dsc9791.jpg?itok=lQJeXB6b" alt="Exterior of the Student Life Centre"> </picture> </div> <div class="card__banner--caption uw_para_image_banner"> <div class="card__banner--text-align"> </div> </div> </div> </div> </article> </div> <div class="card__header uw-node__with-media uw-node__with-media--banner"> <h1 class="card__title"> Offices and Services </h1> </div> <div class="card__body"> <div class="card__content"> <section class="uw-contained-width uw-section-spacing--default uw-section-separator--bottom uw-column-separator--none layout layout--uw-1-col" > <div > </div> </section> <section class="uw-contained-width uw-section-spacing--default uw-section-separator--bottom uw-column-separator--none layout layout--uw-1-col" > <div class="layout__region layout__region--first" > <div class="uw-text-align--center block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <p class="highlight"><strong><a id="top" name="top"></a><a id="top" name="top"></a>Jump to:</strong> <a href="#a">A</a> <a href="#b">B</a> <a href="#c">C</a> <a href="#d">D</a> <a href="#e">E</a> <a href="#f">F</a> <a href="#g">G</a> <a href="#h">H</a> <a href="#i">I</a> J K <a href="#l">L</a> <a href="#m">M</a> <a href="#n">N</a> <a href="#o">O</a> <a href="#p">P</a> Q <a href="#r">R</a> <a href="#s">S</a> <a href="#t">T</a> <a href="#u">U</a> <a href="#v">V</a> <a href="#w">W</a> X Y Z</p> </div> </div> </div> </div> </section> <section class="uw-contained-width uw-section-spacing--default uw-section-separator--none uw-column-separator--none layout layout--uw-1-col" > <div > </div> </section> <section class="uw-contained-width uw-section-spacing--default uw-section-separator--none uw-column-separator--between layout layout--uw-2-col even-split" > <div class="layout__region layout__region--first" > <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="a" name="a"></a>A</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/academic-integrity/">Academic Integrity Office</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/academic-leadership-program/">Academic Leadership Program</a> </span></p> <p><a href="https://uwaterloo.ca/academic-quality-enhancement/"><span class="blocklinks">Academic Quality Enhancement</span></a></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/accessability-services/">AccessAbility Services</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/discover-graduate-studies/">Admissions - Graduate</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/find-out-more/admissions">Admissions - Undergraduate</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/advancement/">Advancement (Office of)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/alumni/">Alumni Relations</a> </span></p> <p><span class="blocklinks"><a href="http://uwag.uwaterloo.ca/">Art Gallery</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/associate-provost-co-operative-and-experiential-education/">Associate Provost, Co-operative an Experiential Education</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/associate-provost-human-resources/">Associate Provost, Human Resources</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/associate-vice-president-academic/">Associate Vice-President, Academic</a> </span></p> <p><a href="https://uwaterloo.ca/faculty-planning-policy/">Associate Vice-President, Faculty Planning and Policy</a></p> <p><span class="blocklinks"><a href="http://www.varsity.uwaterloo.ca/">Athletics and Recreation</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/information-systems-technology/services/category/149">Audio-Visual Centre (see ITMS)</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="b" name="b"></a>B</h2> </div> <p><a href="https://uwaterloo.ca/grebel/about-conrad-grebel/affiliates-and-related-organizations/brubacher-house">Brubacher House</a></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="c" name="c"></a>C</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/housing/">Campus Housing</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/campus-wellness/health-services/campus-response-team">Campus Response Team</a> </span></p> <p><span class="blocklinks"><a href="http://www.campustech.uwaterloo.ca/home.html">Campus TechShop</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/campus-wellness/">Campus Wellness</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/catering/">Catering & Event Services</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/central-stores/">Central Stores</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/centre-academic-policy-support-caps">Centre for Academic Policy Support (CAPS)</a> </span></p> <p><a href="https://uwaterloo.ca/career-action/">Centre for Career Development</a><span class="blocklinks"> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/centre-community-clinical-applied-research-excellence/">Centre for Community, Clinical and Applied Research Excellence</a> </span></p> <p><span class="blocklinks"><a href="http://cel.uwaterloo.ca/home.html">Centre for Extended Learning</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/centre-for-teaching-excellence/">Centre for Teaching Excellence</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/the-centre">Centre, The (Student Service Centre)</a> </span></p> <p><a href="https://uwaterloo.ca/centre-for-work-integrated-learning">Centre for Work-Integrated Learning</a></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/community-relations/">Community Relations</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/conference-management/">Conference Centre</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/conflict-management-human-rights/">Conflict Management and Human Rights Office</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/student-run-services/co-op-connection/">Co-op Connection</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/co-operative-education/">Co-operative Education</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/associate-provost-co-operative-and-experiential-education/">Co-operative and Experiential Education (CEE)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/copyright-at-waterloo/">Copyright@Waterloo</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/campus-wellness/counselling-services">Counselling Services</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/creative-studio/">Creative Studio</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/cybersecurity-privacy-institute/">Cybersecurity and Privacy Institute</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="d" name="d"></a>D</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/research-technology-park/">David Johnston Research + Technology Park</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/deputy-provost">Deputy Provost</a> </span></p> <p><span class="blocklinks"><a href="http://cel.uwaterloo.ca/home.html">Distance Education (see Centre for Extended Learning)</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="e" name="e"></a>E</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/earth-sciences-museum/">Earth Science Museum</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/edge/">EDGE</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/employee-assistance-program/">Employee Assistance Program</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/english-language-institute/">English Language Institute (Renison ELI)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/writing-centre/english-language-proficiency-exam-elpe">English Language Proficiency Exam (ELPE)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/entrepreneurship/">Entrepreneurship</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/equity">Equity Office</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="f" name="f"></a>F</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/faculty-association/">Faculty Association</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/fed-bus">Fed Bus</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/finance/">Finance</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/finance/student-financial-services">Finance (Student Financial Services)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/food-services/">Food Services</a></span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="g" name="g"></a>G</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/gateway-enterprises-discover-innovation/">Gateway for Enterprises to Discover innovation (GEDI)</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/glow-centre-sexual-and-gender-diversity">Glow Centre for Sexual & Gender Diversity</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/government-relations/">Government Relations</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/graduate-student-association/">Graduate Student Association</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/graduate-studies-postdoctoral-affairs/">Graduate Studies and Postdoctoral Affairs</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/gradventure/">GRADventure (Professional Development)</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="h" name="h"></a>H</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/campus-wellness/health-services">Health Services</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/hire/">Hire Waterloo</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/human-resources/">Human Resources</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/human-rights-equity-inclusion/">Human Rights, Equity and Inclusion</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="i" name="i"></a>I</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/indigenous">Indigenous Relations</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/privacy/">Information and Privacy</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/information-systems-technology/">Information Systems & Technology</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/information-systems-technology/services/ist-service-desk">Information Systems & Technology (IST) Service Desk</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/institutional-analysis-planning/">Institutional Analysis and Planning</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/information-systems-technology/about/organizational-structure/instructional-technologies-multimedia-services">Instructional Technologies and Media Services (ITMS)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/waterloo-undergraduate-student-association/services/international-news">International News (WUSA)</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/international-and-canadian-student-network">International and Canadian Student Network</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/student-success/students/international-student-resources">International Student Resources</a> </span></p> <p><span class="blocklinks"><a href="http://intramurals.uwaterloo.ca">Intramurals</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="l" name="l"></a>L</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/legal-and-immigration-services/">Legal and Immigration Services</a> </span></p> <p><span class="blocklinks"><a href="http://www.lib.uwaterloo.ca/">Library</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> </div> <div class="layout__region layout__region--second" > <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="m" name="m"></a>M</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/university-relations/about/marketing-and-strategic-initiatives">Marketing and Strategic Initiatives</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/university-relations/about/university-communications">Media Relations and Issues Management</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/uw-mates">Mentor Assistance Through Education and Support (MATES)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/biology/services-and-resources/electron-and-confocal-microscopy">Microscopy (Electron and confocal)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/earth-sciences-museum/">Museum, Earth Sciences</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/museum-vision-science/">Museum of Vision Science</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="n" name="n"></a>N</h2> </div> <p><span class="blocklinks"><a href="http://www.newmediaservices.uwaterloo.ca/">New Media Services</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="o" name="o"></a>O</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/occupational-health/">Occupational Health</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/off-campus-community">Off Campus Community</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/off-campus-housing/">Off-Campus Housing</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/advancement/">Office of Advancement</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/research/">Office of Research</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/president/">Office of the President</a> </span></p> <p><a href="https://uwaterloo.ca/provost/"><span class="blocklinks">Office of the Vice-President, Academic and Provost</span></a></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/human-resources/strategic-partners-programs-and-initiatives/organizational-and-human-development">Organizational & Human Development</a></span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="p" name="p"></a>P</h2> </div> <p><span class="blocklinks"><a href="http://pts.uwaterloo.ca/">Part-Time Studies (see Centre for Extended Learning)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/accessability-services/">Persons with Disabilities (see AccessAbility Services)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/plant-operations/">Plant Operations</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/graduate-studies-postdoctoral-affairs/welcome-postdoctoral-affairs">Postdoctoral Affairs</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/print-and-retail-solutions/">Print + Retail Solutions</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/procurement/">Procurement & Contract Services</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/watspeed/">Professional Development (WatSPEED)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/professional-development-program/">Professional Development Program (CEE)</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="r" name="r"></a>R</h2> </div> <p><span class="blocklinks"><a href="https://wusa.ca/services/racial-advocacy-inclusion-solidarity-and-equity-raise">Racial Advocacy for Inclusion, Solidarity and Equity (RAISE)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/registrar/">Registrar's Office</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/research/">Research (Office of)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/retirees-association/">Retirees Association</a></span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="s" name="s"></a>S</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/safety-office/">Safety Office</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/secretariat/">Secretariat</a> </span></p> <p><a href="https://uwaterloo.ca/sexual-violence-prevention-response-office/">Sexual Violence Prevention and Response Office</a></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/institutional-analysis-planning/">Space Information and Planning (See Institutional Analysis and Planning)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/deputy-provost-and-space-planning/">Space Planning ( see Deputy Provost )</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/special-constable-service/">Special Constable Service</a></span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/staff-association/">Staff Association</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/staff-association/staff-excellence-fund">Staff Excellence Fund (formerly Special Recognition Award Program)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/student-awards-financial-aid/">Student Awards and Financial Aid</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/student-life-centre/">Student Life Centre</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/student-success/">Student Success Office</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/associate-provost-students/">Students, Office of the Associate Provost</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/summer-accommodations/">Summer Accommodation</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/support/">Support Waterloo</a> </span></p> <p><a href="https://uwaterloo.ca/sustainable-transportation"><span class="blocklinks">Sustainable Transportation</span></a></p> <p><span class="blocklinks"><a href="http://uwaterloo.ca/sustainability">Sustainability</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="t" name="t"></a>T</h2> </div> <p><a href="https://uwaterloo.ca/teaching-assessment-processes/">Teaching Assessment Processes</a></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/ist/services/telephone-installation-changes-and-features">Telecommunications (Telephone Services)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/theatre-centre/">Theatre Centre</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="u" name="u"></a>U</h2> </div> <p><span class="blocklinks"><a href="https://uwaterloo.ca/university-club/">University Club</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/university-communications/">University Communications</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/records-management/">University Records Management</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/university-relations/">University Relations</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/about/grt-upass">UPASS</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/centre-community-clinical-applied-research-excellence/uw-fitness-services">UW Fitness Services</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="v" name="v"></a>V</h2> </div> <p><span class="blocklinks"><a href="http://velocity.uwaterloo.ca/">Velocity</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/future-students/tours-events/visitors-centre">Visitors Centre</a> </span></p> <p><span class="blocklinks"><a href="https://volunteerwr.ca/">Volunteer Action Centre</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> <div class="uw-text-align--left block block-layout-builder block-inline-blockuw-cbl-copy-text"> <div class="uw-copy-text"> <div class="uw-copy-text__wrapper "> <div class="uw-ff--with-bubbles__gold"> <h2 class="black uw-ff--fact"><a id="w" name="w"></a>W</h2> </div> <p><span class="blocklinks"><a href="https://wstore.uwaterloo.ca/wprint">W Print</a> </span></p> <p><span class="blocklinks"><a href="https://wstore.uwaterloo.ca">W Store</a> </span></p> <p><span class="blocklinks"><a href="http://www.watcard.uwaterloo.ca/">WatCard</a> </span></p> <p><span class="blocklinks"><a href="http://watiam.uwaterloo.ca/search/">WatIAM</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/watsafe/">WatSAFE</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/watspeed/">WatSPEED</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/stpauls/waterloo-aboriginal-education-centre">Waterloo Indigenous Student Centre (WISC)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/international/">Waterloo International</a> </span></p> <p><span class="blocklinks"><a href="http://wici.ca/">Waterloo Institute for Complexity and Innovation (WICI)</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/waterloo-undergraduate-student-association">Waterloo Undergraduate Student Association (WUSA)</a> </span></p> <p><span class="blocklinks"><a href="https://waterlooworks.uwaterloo.ca">WaterlooWorks</a> </span></p> <p><span class="blocklinks"><a href="http://uwaterloo.ca/web-resources/">Web Resources</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/womens-centre">Women's Centre</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/work-learn-institute/">Work-Learn Institute</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/writing-and-communication-centre/">Writing and Communication Centre</a> </span></p> <p><span class="blocklinks"><a href="https://uwaterloo.ca/waterloo-undergraduate-student-association/services/student-food-bank">WUSA Food Support Service</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/student-supports/health-and-dental-plan/">WUSA Health and Dental Plan</a> </span></p> <p><span class="blocklinks"><a href="https://wusa.ca/services/food-retail/used-bookstore/">WUSA Used Books</a> </span></p> <p class="align-right"><a href="#top">Back to top ⇧</a></p> </div> </div> </div> </div> </section> <section class="uw-contained-width uw-section-spacing--default uw-section-separator--none uw-column-separator--none layout layout--uw-1-col" > <div > </div> </section> </div> </div> </article> </div> </div> </article> </div> </div> </main> <footer class="uw-footer" role="contentinfo"> <div class="uw-site-footer__block"> <div id="block-uw-fdsu-theme-resp-uw-block-site-footer" class="block block-uw-ct-site-footer block-uw-block-site-footer"> </div> </div> <div class="uw-footer__wrapper" lang="en"> <div class="uw-footer__address"> <div class="uw-footer-address" about="//uwaterloo.ca/" typeof="v:VCard"> <div class="hidden"> <div property="v:fn">University of Waterloo</div> <div rel="v:org"> <div property="v:organisation-name">University of Waterloo</div> </div> <div rel="v:geo"> <div property="v:latitude">43.471468</div> <div property="v:longitude">-80.544205</div> </div> </div> <div class="uw-footer-address--show" rel="v:adr"> <a href="https://uwaterloo.ca/map/" class="uw-icon-link " > <div class="uw-icon"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <title>Campus map</title> <g transform="translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)"> <path d="M5.2,0.2C3,0.2,1.3,2,1.3,4.1c0,1,0.3,1.8,0.9,2.5l3,3.5l3-3.5C8.7,6,9.1,5.1,9.1,4.1C9.1,2,7.3,0.2,5.2,0.2z M5.2,5.6 C4.3,5.6,3.6,4.9,3.6,4s0.7-1.6,1.6-1.6S6.8,3.1,6.8,4S6.1,5.6,5.2,5.6z"/> </g> </svg> </div> <span class="off-screen" > Campus map </span> </a> <div class="uw-footer-address__street" property="v:street-address">200 University Avenue West</div> <div class="uw-footer-address__region"> <span property="v:locality">Waterloo</span>, <span property="v:region">ON</span>, <span property="v:country-name">Canada</span> <span property="v:postal-code">N2L 3G1</span> </div> <div class="uw-footer-phone" rel="v:tel"> <a href="tel:+1-519-888-4567" property="rdf:value">+1 519 888 4567</a> </div> </div> </div> </div> <div class="uw-footer__menu"> <ul class="menu menu--uw-footer" > <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/about/contact-us" > <span class="link-text"> Contact Waterloo </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/accessibility/" > <span class="link-text"> Accessibility </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/news/" > <span class="link-text"> News </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/about/maps-and-directions" > <span class="link-text"> Maps & directions </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/privacy/" > <span class="link-text"> Privacy </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/careers/" > <span class="link-text"> Careers </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/emergency-notifications/" > <span class="link-text"> Emergency notifications </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/copyright" > <span class="link-text"> Copyright </span> </a> </li> <li class="menu__item" > <a class="menu__link" href="https://uwaterloo.ca/about/contact-us/contact-form" > <span class="link-text"> Feedback </span> </a> </li> </ul> </div> <div class="uw-footer__territorial"> <div class="uw-bg--"> <div class="uw-territorial"> <p>The University of Waterloo acknowledges that much of our work takes place on the traditional territory of the Neutral, Anishinaabeg, and Haudenosaunee peoples. Our main campus is situated on the Haldimand Tract, the land granted to the Six Nations that includes six miles on each side of the Grand River. Our active work toward reconciliation takes place across our campuses through research, learning, teaching, and community building, and is co-ordinated within the <a href="https://uwaterloo.ca/indigenous" >Office of Indigenous Relations</a>.</p> </div> </div> </div> <div class="uw-footer__social"> <div class="uw-social-media"> <ul class="social-media-list "> <li class="social-media-list-item"> <a href="https://www.instagram.com/uofwaterloo/" class="uw-icon-link icon--button icon--social" > <div class="uw-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="30" viewBox="0 0 40 30"> <title>Instagram</title> <path d="M14.3,1.2c-1.5,0.1-2.5,0.3-3.4,0.7C10,2.2,9.2,2.7,8.5,3.5C7.7,4.3,7.3,5.1,6.9,6C6.6,6.9,6.3,7.9,6.3,9.4 c-0.1,1.5-0.1,2-0.1,5.7c0,3.8,0,4.2,0.1,5.7s0.3,2.5,0.6,3.4c0.4,0.9,0.8,1.7,1.6,2.4c0.8,0.8,1.5,1.2,2.5,1.6 c0.9,0.3,1.9,0.6,3.4,0.6c1.5,0.1,2,0.1,5.7,0.1c3.8,0,4.2,0,5.7-0.1s2.5-0.3,3.4-0.6c0.9-0.4,1.7-0.8,2.4-1.6 c0.8-0.8,1.2-1.5,1.6-2.5c0.3-0.9,0.6-1.9,0.6-3.4c0.1-1.5,0.1-2,0.1-5.7c0-3.8,0-4.2-0.1-5.7s-0.3-2.5-0.6-3.4 c-0.4-0.9-0.9-1.7-1.7-2.4C30.7,2.7,30,2.3,29,1.9c-0.9-0.3-1.9-0.6-3.4-0.6c-1.5-0.1-2-0.1-5.7-0.1C16.2,1.2,15.8,1.2,14.3,1.2 M14.5,26.3c-1.4-0.1-2.1-0.3-2.6-0.5c-0.6-0.3-1.1-0.5-1.6-1s-0.8-0.9-1-1.6c-0.2-0.5-0.4-1.2-0.5-2.6c-0.1-1.5-0.1-1.9-0.1-5.6 s0-4.1,0.1-5.6c0-1.3,0.3-2.1,0.5-2.6c0.3-0.6,0.5-1.1,1-1.6s0.9-0.8,1.6-1c0.5-0.2,1.2-0.4,2.6-0.5c1.5-0.1,1.9-0.1,5.6-0.1 s4.1,0,5.6,0.1c1.4,0.1,2.1,0.3,2.6,0.5c0.6,0.3,1.1,0.5,1.6,1s0.8,0.9,1,1.6c0.2,0.5,0.4,1.2,0.5,2.6c0.1,1.5,0.1,1.9,0.1,5.6 s0,4.1-0.1,5.6c-0.1,1.4-0.3,2.1-0.5,2.6c-0.3,0.6-0.5,1.1-1,1.6s-0.9,0.8-1.6,1c-0.5,0.2-1.2,0.4-2.6,0.5 c-1.5,0.1-1.9,0.1-5.6,0.1S15.9,26.4,14.5,26.3 M25.8,7.6c0,0.9,0.8,1.7,1.7,1.7s1.7-0.8,1.7-1.7s-0.8-1.7-1.7-1.7 C26.5,5.9,25.8,6.7,25.8,7.6 M12.9,15c0,3.9,3.2,7.1,7.1,7.1s7.1-3.2,7.1-7.1S23.9,7.9,20,7.9S12.9,11.1,12.9,15 M15.4,15 c0-2.5,2.1-4.6,4.6-4.6s4.6,2.1,4.6,4.6s-2.1,4.6-4.6,4.6S15.4,17.6,15.4,15"/> </svg> </div> <span class="off-screen" > Instagram </span> </a> </li> <li class="social-media-list-item"> <a href="https://twitter.com/UWaterloo" class="uw-icon-link icon--button icon--social" > <div class="uw-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <title>X (formerly Twitter)</title> <path d="M18.4,14.6L26,5.8h-1.8l-6.6,7.6l-5.2-7.6H6.3l8,11.6l-8,9.2H8l7-8.1l5.5,8.1h6.1L18.4,14.6L18.4,14.6z M15.9,17.5l-0.8-1.1 L8.7,7.2h2.8l5.2,7.4l0.8,1.1l6.8,9.7h-2.8L15.9,17.5L15.9,17.5z"/> </svg> </div> <span class="off-screen" > X (formerly Twitter) </span> </a> </li> <li class="social-media-list-item"> <a href="https://www.linkedin.com/school/uwaterloo/" class="uw-icon-link icon--button icon--social" > <div class="uw-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="30" viewBox="0 0 40 30"> <title>LinkedIn</title> <path d="M12,29V10.1H5.7v18.8H12V29z M8.9,7.5c2.2,0,3.5-1.4,3.5-3.3S11.1,1,8.9,1C6.8,1,5.4,2.4,5.4,4.3S6.7,7.5,8.9,7.5L8.9,7.5 L8.9,7.5z M15.5,29h6.3V18.4c0-0.5,0-1.1,0.2-1.5c0.4-1.1,1.4-2.3,3.2-2.3c2.3,0,3.2,1.8,3.2,4.3V29h6.3V18.2c0-5.8-3.1-8.5-7.2-8.5 c-3.4,0-4.8,1.9-5.7,3.2l0,0V10h-6.3C15.5,11.8,15.5,29,15.5,29L15.5,29L15.5,29z"/> </svg> </div> <span class="off-screen" > LinkedIn </span> </a> </li> <li class="social-media-list-item"> <a href="https://www.facebook.com/university.waterloo" class="uw-icon-link icon--button icon--social" > <div class="uw-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="30" viewBox="0 0 40 30"> <title>Facebook</title> <path d="M26.4,16l0.6-4.9h-4.9v-3c0-1.4,0.4-2.3,2.5-2.3h2.6V1.5c-0.5-0.1-2-0.2-3.8-0.2c-3.8,0-6.4,2.2-6.4,6.3v3.6h-4.3v4.9H17 v12.4h5.1V16H26.4L26.4,16z"/> </svg> </div> <span class="off-screen" > Facebook </span> </a> </li> <li class="social-media-list-item"> <a href="https://www.youtube.com/user/uwaterloo" class="uw-icon-link icon--button icon--social" > <div class="uw-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="30" viewBox="0 0 40 30"> <title>YouTube</title> <path d="M39.1,5.4c-0.4-1.7-1.8-3.1-3.5-3.5C32.5,1,20,1,20,1S7.5,1,4.4,1.8c-1.7,0.5-3,1.9-3.5,3.6C0.1,8.5,0.1,15,0.1,15 s0,6.5,0.8,9.6c0.4,1.7,1.8,3.1,3.5,3.5C7.5,29,20,29,20,29s12.5,0,15.6-0.8c1.7-0.4,3.1-1.8,3.5-3.5c0.8-3.1,0.8-9.6,0.8-9.6 S39.9,8.5,39.1,5.4z M15.9,20.9V9.1L26.4,15L15.9,20.9z"/> </svg> </div> <span class="off-screen" > YouTube </span> </a> </li> </ul> </div> <div class="uw-footer__social-directory"> <a href="https://uwaterloo.ca/social-media/">@uwaterloo social directory</a> </div> </div> <div class="uw-footer__marketing"> <div class="uw-footer__marketing--svg"> <div class="uw-icon"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32px" height="23.6px" viewBox="0 0 32 23.6"> <title>On It Check</title> <g transform="translate(0 15.477)"> <path d="M11.3-3.5L0-10.1V1.6l11.3,6.5L32-3.8l0-11.7L11.3-3.5z"/> </g> </svg> </div> </div> <div class="uw-footer__marketing--text"> <span> WHERE THERE’S <br> A CHALLENGE,<br>WATERLOO IS<br><span class="text_uw-gold">ON IT</span>. </span> <br> <a href="https://uwaterloo.ca/on-it"><i>Learn how → </i></a> </div> </div> <div class="uw-footer__bottom"> ©2024 All rights reserved </div> </div> </footer> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"node\/8","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"clientside_validation_jquery":{"validate_all_ajax_forms":2,"force_validate_on_blur":false,"messages":{"required":"This field is required.","remote":"Please fix this field.","email":"Please enter a valid email address.","url":"Please enter a valid URL.","date":"Please enter a valid date.","dateISO":"Please enter a valid date (ISO).","number":"Please enter a valid number.","digits":"Please enter only digits.","equalTo":"Please enter the same value again.","maxlength":"Please enter no more than {0} characters.","minlength":"Please enter at least {0} characters.","rangelength":"Please enter a value between {0} and {1} characters long.","range":"Please enter a value between {0} and {1}.","max":"Please enter a value less than or equal to {0}.","min":"Please enter a value greater than or equal to {0}.","step":"Please enter a multiple of {0}."}},"eu_cookie_compliance":{"cookie_policy_version":"1.0.0","popup_enabled":true,"popup_agreed_enabled":false,"popup_hide_agreed":false,"popup_clicking_confirmation":true,"popup_scrolling_confirmation":false,"popup_html_info":"\u003Cdiv class=\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--default\u0022\u003E\n \u003Cdiv class=\u0022popup-content info eu-cookie-compliance-content\u0022\u003E\n \u003Cdiv role=\u0022alertdialog\u0022\n aria-labelledby=\u0022cookieLabel\u0022\n aria-describedby=\u0022cookieDescription\u0022\n id=\u0022popup-text\u0022\n class=\u0022eu-cookie-compliance-message\u0022\u003E\n \u003Ch2 id=\u0022cookieLabel\u0022\u003EWe use cookies on this site to enhance your user experience\u003C\/h2\u003E\n \u003Cp id=\u0022cookieDescription\u0022\u003ESelect \u0026#039;Accept all\u0026#039; to agree and continue. You consent to our cookies if you continue to use this website.\u003C\/p\u003E\n \u003C\/div\u003E\n\n \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-buttons\u0022\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022agree-button eu-cookie-compliance-default-button\u0022\u003EAccept all\u003C\/button\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\u003C\/div\u003E","use_mobile_message":false,"mobile_popup_html_info":"\u003Cdiv class=\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--default\u0022\u003E\n \u003Cdiv class=\u0022popup-content info eu-cookie-compliance-content\u0022\u003E\n \u003Cdiv role=\u0022alertdialog\u0022\n aria-labelledby=\u0022cookieLabel\u0022\n aria-describedby=\u0022cookieDescription\u0022\n id=\u0022popup-text\u0022\n class=\u0022eu-cookie-compliance-message\u0022\u003E\n \u003Ch2 id=\u0022cookieLabel\u0022\u003E\u003C\/h2\u003E\n \u003Cp id=\u0022cookieDescription\u0022\u003E\u003C\/p\u003E\n \u003C\/div\u003E\n\n \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-buttons\u0022\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022agree-button eu-cookie-compliance-default-button\u0022\u003EAccept all\u003C\/button\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\u003C\/div\u003E","mobile_breakpoint":768,"popup_html_agreed":false,"popup_use_bare_css":true,"popup_height":"auto","popup_width":"100%","popup_delay":1000,"popup_link":"\/","popup_link_new_window":true,"popup_position":false,"fixed_top_position":true,"popup_language":"en","store_consent":false,"better_support_for_screen_readers":false,"cookie_name":"","reload_page":false,"domain":"","domain_all_sites":true,"popup_eu_only":false,"popup_eu_only_js":false,"cookie_lifetime":100,"cookie_session":0,"set_cookie_session_zero_on_disagree":0,"disagree_do_not_show_popup":false,"method":"default","automatic_cookies_removal":true,"allowed_cookies":"","withdraw_markup":"\u003Cbutton type=\u0022button\u0022 class=\u0022eu-cookie-withdraw-tab\u0022\u003EPrivacy settings\u003C\/button\u003E\n\u003Cdiv aria-labelledby=\u0022popup-text\u0022 class=\u0022eu-cookie-withdraw-banner\u0022\u003E\n \u003Cdiv class=\u0022popup-content info eu-cookie-compliance-content\u0022\u003E\n \u003Cdiv id=\u0022popup-text\u0022 class=\u0022eu-cookie-compliance-message\u0022 role=\u0022document\u0022\u003E\n \u003Ch2\u003EWe use cookies on this site to enhance your user experience\u003C\/h2\u003E\u003Cp\u003EYou have given your consent for us to set cookies.\u003C\/p\u003E\n \u003C\/div\u003E\n \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-buttons\u0022\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022eu-cookie-withdraw-button \u0022\u003EWithdraw consent\u003C\/button\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\u003C\/div\u003E","withdraw_enabled":false,"reload_options":0,"reload_routes_list":"","withdraw_button_on_info_popup":false,"cookie_categories":[],"cookie_categories_details":[],"enable_save_preferences_button":true,"cookie_value_disagreed":"0","cookie_value_agreed_show_thank_you":"1","cookie_value_agreed":"2","containing_element":"body","settings_tab_enabled":false,"olivero_primary_button_classes":"","olivero_secondary_button_classes":"","close_button_action":"close_banner","open_by_default":true,"modules_allow_popup":true,"hide_the_banner":false,"geoip_match":true},"ajaxTrustedUrl":{"form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM":true},"user":{"uid":0,"permissionsHash":"c7b1406d4aef9aedba241ab1bd3f795dd59a66dd36e67cd337fd2ca5f44527ce"}}</script> <script src="/sites/default/files/js/js_nMDEJaNNBsugaSyPstYN2POAgaqs1Qqn_3TFt4KcxHU.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script> <script src="/sites/default/files/js/js_UE8aZiUJz6BNBkYOXN5yXMj1ARngsjl6xLY3TWqCNxw.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS_HTML"></script> <script src="/sites/default/files/js/js_2YaXSay7C8woVi1VfveleEVrYbngmHpQ6SaSya0OH_w.js"></script> <script src="/profiles/uw_base_profile/modules/contrib/eu_cookie_compliance/js/eu_cookie_compliance.min.js?v=9.5.11" defer></script> <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.min.js"></script> <script src="/profiles/uw_base_profile/modules/contrib/clientside_validation/clientside_validation_jquery/js/cv.jquery.validate.js?sn92kk"></script> <script src="/sites/default/files/js/js__ABBtM3cdcn9AMfT6ivTk94ZrUw3-xEIHcZ_Dt_8Cjo.js"></script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-00798bf011f7ec1aa7f","applicationID":"1098220428","transactionName":"ZgRaZUpWWhIDBURcWF9OeVJMXlsPTRZRUlJuAllSUFI=","queueTime":0,"applicationTime":15,"atts":"SkNZEwJMSRw=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>