CINXE.COM
FAQ - Princeton Engineering
<!DOCTYPE html> <html lang="en-US"> <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:"1588608049",accountID:"3348991",trustKey:"66686",xpid:"VwUDWV9aCRABUVNbDgUPUlMF",licenseKey:"NRJS-b00d4b4e7850ab82d90",applicationID:"1529948474"};;/*! 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="viewport" content="width=device-width, initial-scale=1" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v23.6) - https://yoast.com/wordpress/plugins/seo/ --> <meta name="description" content="Incoming graduate students may have questions before their engineering studies at Princeton. If you can't find an answer to your question here, please contact the graduate program administrator for your department." /> <link rel="canonical" href="https://engineering.princeton.edu/graduate-studies/faq" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Princeton Engineering - FAQ" /> <meta property="og:description" content="Incoming graduate students may have questions before their engineering studies at Princeton. If you can't find an answer to your question here, please contact the graduate program administrator for your department." /> <meta property="og:url" content="https://engineering.princeton.edu/graduate-studies/faq" /> <meta property="og:site_name" content="Princeton Engineering" /> <meta property="article:publisher" content="https://www.facebook.com/princetonengineering/" /> <meta property="article:modified_time" content="2024-10-19T12:12:49+00:00" /> <meta property="og:image" content="https://engineering.princeton.edu/wp-content/uploads/2024/10/princeton-engineering-pages.png" /> <meta property="og:image:width" content="1600" /> <meta property="og:image:height" content="900" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@EPrinceton" /> <meta name="twitter:label1" content="Est. reading time" /> <meta name="twitter:data1" content="15 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://engineering.princeton.edu/graduate-studies/faq","url":"https://engineering.princeton.edu/graduate-studies/faq","name":"FAQ - Princeton Engineering","isPartOf":{"@id":"https://engineering.princeton.edu/#website"},"datePublished":"2021-08-27T16:31:50+00:00","dateModified":"2024-10-19T12:12:49+00:00","description":"Incoming graduate students may have questions before their engineering studies at Princeton. If you can't find an answer to your question here, please contact the graduate program administrator for your department.","breadcrumb":{"@id":"https://engineering.princeton.edu/graduate-studies/faq#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://engineering.princeton.edu/graduate-studies/faq"]}]},{"@type":"BreadcrumbList","@id":"https://engineering.princeton.edu/graduate-studies/faq#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://engineering.princeton.edu/"},{"@type":"ListItem","position":2,"name":"Graduate Studies","item":"https://engineering.princeton.edu/graduate-studies"},{"@type":"ListItem","position":3,"name":"FAQ"}]},{"@type":"WebSite","@id":"https://engineering.princeton.edu/#website","url":"https://engineering.princeton.edu/","name":"Princeton Engineering","description":"","publisher":{"@id":"https://engineering.princeton.edu/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://engineering.princeton.edu/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://engineering.princeton.edu/#organization","name":"Princeton Engineering | Princeton University","url":"https://engineering.princeton.edu/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://engineering.princeton.edu/#/schema/logo/image/","url":"https://engineering.princeton.edu/wp-content/uploads/2024/10/Princeton-Engineering-Social-Media-5-X-Profile-Icon.png","contentUrl":"https://engineering.princeton.edu/wp-content/uploads/2024/10/Princeton-Engineering-Social-Media-5-X-Profile-Icon.png","width":500,"height":500,"caption":"Princeton Engineering | Princeton University"},"image":{"@id":"https://engineering.princeton.edu/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/princetonengineering/","https://x.com/EPrinceton","https://www.instagram.com/eprinceton/","https://www.linkedin.com/school/princetonengineering/","https://www.youtube.com/user/princetonengineering","https://en.m.wikipedia.org/wiki/Princeton_University_School_of_Engineering_and_Applied_Science"]}]}</script> <!-- / Yoast SEO Premium plugin. --> <title>FAQ - Princeton Engineering</title> <link rel='dns-prefetch' href='//engineering.princeton.edu' /> <link rel='dns-prefetch' href='//kit.fontawesome.com' /> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <link rel='dns-prefetch' href='//www.googletagmanager.com' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="Princeton Engineering » Feed" href="https://engineering.princeton.edu/feed" /> <link rel="alternate" type="application/rss+xml" title="Princeton Engineering » Comments Feed" href="https://engineering.princeton.edu/comments/feed" /> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/engineering.princeton.edu\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); </script> <style id='wp-block-group-inline-css'> .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} </style> <style id='wp-block-post-title-inline-css'> .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title a{display:inline-block} </style> <style id='wp-block-heading-inline-css'> h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} </style> <style id='wp-block-list-inline-css'> ol,ul{box-sizing:border-box}:root :where(ul.has-background,ol.has-background){padding:1.25em 2.375em} </style> <style id='wp-block-separator-inline-css'> @charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important} </style> <style id='wp-block-paragraph-inline-css'> .is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} </style> <style id='wp-block-table-inline-css'> .wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:initial;border-bottom:1px solid #f0f0f0;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:#0000}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:initial}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:initial}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit} </style> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <style id='wp-block-library-inline-css'> :root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color)}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip:auto!important;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} </style> <link rel='stylesheet' id='engineering-block-global-style-css' href='https://engineering.princeton.edu/wp-content/plugins/engineering/engineering-block-global-style.css?ver=1732641269' media='all' /> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--base: #f9f9f9;--wp--preset--color--base-2: #ffffff;--wp--preset--color--base-3: #00000025;--wp--preset--color--contrast-yellow: #FEF9C3;--wp--preset--color--contrast-green: #EEFDF2;--wp--preset--color--contrast-blue: #EDF5FF;--wp--preset--color--contrast-red: #FEF0F0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--gradient-1: linear-gradient(to bottom, #cfcabe 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-2: linear-gradient(to bottom, #C2A990 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-3: linear-gradient(to bottom, #D8613C 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-4: linear-gradient(to bottom, #B1C5A4 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-5: linear-gradient(to bottom, #B5BDBC 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-6: linear-gradient(to bottom, #A4A4A4 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-7: linear-gradient(to bottom, #cfcabe 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-8: linear-gradient(to bottom, #C2A990 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-9: linear-gradient(to bottom, #D8613C 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-10: linear-gradient(to bottom, #B1C5A4 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-11: linear-gradient(to bottom, #B5BDBC 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-12: linear-gradient(to bottom, #A4A4A4 50%, #F9F9F9 50%);--wp--preset--font-size--small: 0.9rem;--wp--preset--font-size--medium: 1.05rem;--wp--preset--font-size--large: clamp(1.39rem, 1.39rem + ((1vw - 0.2rem) * 0.767), 1.85rem);--wp--preset--font-size--x-large: clamp(1.85rem, 1.85rem + ((1vw - 0.2rem) * 1.083), 2.5rem);--wp--preset--font-size--xx-large: clamp(2.5rem, 2.5rem + ((1vw - 0.2rem) * 1.283), 3.27rem);--wp--preset--font-family--body: "Inter", sans-serif;--wp--preset--font-family--heading: Cardo;--wp--preset--font-family--system-sans-serif: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;--wp--preset--font-family--system-serif: Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--wp--preset--spacing--20: min(1.5rem, 2vw);--wp--preset--spacing--30: min(2.5rem, 3vw);--wp--preset--spacing--40: min(4rem, 5vw);--wp--preset--spacing--50: min(6.5rem, 8vw);--wp--preset--spacing--60: min(10.5rem, 13vw);--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--spacing--10: 1rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:root { --wp--style--global--content-size: 620px;--wp--style--global--wide-size: 1280px; }:where(body) { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 1.2rem; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 1.2rem; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 1.2rem;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 1.2rem;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 1.2rem;}:root :where(.is-layout-grid){gap: 1.2rem;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{background-color: var(--wp--preset--color--base);color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--body);font-size: var(--wp--preset--font-size--medium);font-style: normal;font-weight: 400;line-height: 1.55;--wp--style--root--padding-top: 0px;--wp--style--root--padding-right: var(--wp--preset--spacing--50);--wp--style--root--padding-bottom: 0px;--wp--style--root--padding-left: var(--wp--preset--spacing--50);}a:where(:not(.wp-element-button)){color: var(--wp--preset--color--contrast);text-decoration: underline;}:root :where(a:where(:not(.wp-element-button)):hover){text-decoration: none;}h1, h2, h3, h4, h5, h6{color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--heading);font-weight: 400;line-height: 1.2;}h1{font-size: var(--wp--preset--font-size--xx-large);line-height: 1.15;}h2{font-size: var(--wp--preset--font-size--x-large);}h3{font-size: var(--wp--preset--font-size--large);}h4{font-size: clamp(1.1rem, 1.1rem + ((1vw - 0.2rem) * 0.767), 1.5rem);}h5{font-size: var(--wp--preset--font-size--medium);}h6{font-size: var(--wp--preset--font-size--small);}:root :where(.wp-element-button, .wp-block-button__link){background-color: var(--wp--preset--color--contrast);border-radius: .33rem;border-color: var(--wp--preset--color--contrast);border-width: 0;color: var(--wp--preset--color--base);font-family: inherit;font-size: var(--wp--preset--font-size--small);font-style: normal;font-weight: 500;line-height: inherit;padding-top: 0.6rem;padding-right: 1rem;padding-bottom: 0.6rem;padding-left: 1rem;text-decoration: none;}:root :where(.wp-element-button:hover, .wp-block-button__link:hover){background-color: var(--wp--preset--color--contrast-2);border-color: var(--wp--preset--color--contrast-2);color: var(--wp--preset--color--base);}:root :where(.wp-element-button:focus, .wp-block-button__link:focus){background-color: var(--wp--preset--color--contrast-2);border-color: var(--wp--preset--color--contrast-2);color: var(--wp--preset--color--base);outline-color: var(--wp--preset--color--contrast);outline-offset: 2px;outline-style: dotted;outline-width: 1px;}:root :where(.wp-element-button:active, .wp-block-button__link:active){background-color: var(--wp--preset--color--contrast);color: var(--wp--preset--color--base);}:root :where(.wp-element-caption, .wp-block-audio figcaption, .wp-block-embed figcaption, .wp-block-gallery figcaption, .wp-block-image figcaption, .wp-block-table figcaption, .wp-block-video figcaption){color: var(--wp--preset--color--contrast-2);font-family: var(--wp--preset--font-family--body);font-size: 0.8rem;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-base-color{color: var(--wp--preset--color--base) !important;}.has-base-2-color{color: var(--wp--preset--color--base-2) !important;}.has-base-3-color{color: var(--wp--preset--color--base-3) !important;}.has-contrast-yellow-color{color: var(--wp--preset--color--contrast-yellow) !important;}.has-contrast-green-color{color: var(--wp--preset--color--contrast-green) !important;}.has-contrast-blue-color{color: var(--wp--preset--color--contrast-blue) !important;}.has-contrast-red-color{color: var(--wp--preset--color--contrast-red) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-base-background-color{background-color: var(--wp--preset--color--base) !important;}.has-base-2-background-color{background-color: var(--wp--preset--color--base-2) !important;}.has-base-3-background-color{background-color: var(--wp--preset--color--base-3) !important;}.has-contrast-yellow-background-color{background-color: var(--wp--preset--color--contrast-yellow) !important;}.has-contrast-green-background-color{background-color: var(--wp--preset--color--contrast-green) !important;}.has-contrast-blue-background-color{background-color: var(--wp--preset--color--contrast-blue) !important;}.has-contrast-red-background-color{background-color: var(--wp--preset--color--contrast-red) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-base-border-color{border-color: var(--wp--preset--color--base) !important;}.has-base-2-border-color{border-color: var(--wp--preset--color--base-2) !important;}.has-base-3-border-color{border-color: var(--wp--preset--color--base-3) !important;}.has-contrast-yellow-border-color{border-color: var(--wp--preset--color--contrast-yellow) !important;}.has-contrast-green-border-color{border-color: var(--wp--preset--color--contrast-green) !important;}.has-contrast-blue-border-color{border-color: var(--wp--preset--color--contrast-blue) !important;}.has-contrast-red-border-color{border-color: var(--wp--preset--color--contrast-red) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-gradient-1-gradient-background{background: var(--wp--preset--gradient--gradient-1) !important;}.has-gradient-2-gradient-background{background: var(--wp--preset--gradient--gradient-2) !important;}.has-gradient-3-gradient-background{background: var(--wp--preset--gradient--gradient-3) !important;}.has-gradient-4-gradient-background{background: var(--wp--preset--gradient--gradient-4) !important;}.has-gradient-5-gradient-background{background: var(--wp--preset--gradient--gradient-5) !important;}.has-gradient-6-gradient-background{background: var(--wp--preset--gradient--gradient-6) !important;}.has-gradient-7-gradient-background{background: var(--wp--preset--gradient--gradient-7) !important;}.has-gradient-8-gradient-background{background: var(--wp--preset--gradient--gradient-8) !important;}.has-gradient-9-gradient-background{background: var(--wp--preset--gradient--gradient-9) !important;}.has-gradient-10-gradient-background{background: var(--wp--preset--gradient--gradient-10) !important;}.has-gradient-11-gradient-background{background: var(--wp--preset--gradient--gradient-11) !important;}.has-gradient-12-gradient-background{background: var(--wp--preset--gradient--gradient-12) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-xx-large-font-size{font-size: var(--wp--preset--font-size--xx-large) !important;}.has-body-font-family{font-family: var(--wp--preset--font-family--body) !important;}.has-heading-font-family{font-family: var(--wp--preset--font-family--heading) !important;}.has-system-sans-serif-font-family{font-family: var(--wp--preset--font-family--system-sans-serif) !important;}.has-system-serif-font-family{font-family: var(--wp--preset--font-family--system-serif) !important;} :root :where(.wp-block-list){padding-left: var(--wp--preset--spacing--10);} :root :where(.wp-block-post-title a:where(:not(.wp-element-button))){text-decoration: none;} :root :where(.wp-block-post-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;} :root :where(.wp-block-separator){border-color: currentColor;border-width: 0 0 1px 0;border-style: solid;color: var(--wp--preset--color--contrast);}:root :where(.wp-block-separator){}:root :where(.wp-block-separator:not(.is-style-wide):not(.is-style-dots):not(.alignwide):not(.alignfull)){width: var(--wp--preset--spacing--60)} :where(.wp-site-blocks *:focus){outline-width:2px;outline-style:solid}:root :where(.wp-block-calendar.wp-block-calendar table:where(:not(.has-text-color)) th){background-color:var(--wp--preset--color--contrast-2);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--contrast-2)}:root :where(.wp-block-calendar table:where(:not(.has-text-color)) td){border-color:var(--wp--preset--color--contrast-2)}:root :where(.wp-block-categories){list-style-type:none;}:root :where(.wp-block-categories li){margin-bottom: 0.5rem;}:root :where(.wp-block-post-comments-form textarea, .wp-block-post-comments-form input){border-radius:.33rem}:root :where(.wp-block-loginout input){border-radius:.33rem;padding:calc(0.667em + 2px);border:1px solid #949494;}:root :where(.wp-block-post-terms .wp-block-post-terms__prefix){color: var(--wp--preset--color--contrast-2);}:root :where(.wp-block-query-title span){font-style: italic;}:root :where(.wp-block-quote :where(p)){margin-block-start:0;margin-block-end:calc(var(--wp--preset--spacing--10) + 0.5rem);}:root :where(.wp-block-quote :where(:last-child)){margin-block-end:0;}:root :where(.wp-block-quote.has-text-align-right.is-style-plain, .rtl .is-style-plain.wp-block-quote:not(.has-text-align-center):not(.has-text-align-left)){border-width: 0 2px 0 0;padding-left:calc(var(--wp--preset--spacing--20) + 0.5rem);padding-right:calc(var(--wp--preset--spacing--20) + 0.5rem);}:root :where(.wp-block-quote.has-text-align-left.is-style-plain, body:not(.rtl) .is-style-plain.wp-block-quote:not(.has-text-align-center):not(.has-text-align-right)){border-width: 0 0 0 2px;padding-left:calc(var(--wp--preset--spacing--20) + 0.5rem);padding-right:calc(var(--wp--preset--spacing--20) + 0.5rem)}:root :where(.wp-block-search .wp-block-search__input){border-radius:.33rem}:root :where(.wp-block-separator){}:root :where(.wp-block-separator:not(.is-style-wide):not(.is-style-dots):not(.alignwide):not(.alignfull)){width: var(--wp--preset--spacing--60)} </style> <style id='wp-block-template-skip-link-inline-css'> .skip-link.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; } .skip-link.screen-reader-text:focus { background-color: #eee; clip: auto !important; clip-path: none; color: #444; display: block; font-size: 1em; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; } </style> <link rel='stylesheet' id='dashicons-css' href='https://engineering.princeton.edu/wp-includes/css/dashicons.min.css?ver=6.6.2' media='all' /> <link rel='stylesheet' id='megamenu-google-fonts-css' href='//fonts.googleapis.com/css?family=Libre+Franklin%3A400%2C700&ver=6.6.2' media='all' /> <link rel='stylesheet' id='megamenu-genericons-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/genericons/genericons/genericons.css?ver=2.4' media='all' /> <link rel='stylesheet' id='megamenu-fontawesome-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/fontawesome/css/font-awesome.min.css?ver=2.4' media='all' /> <link rel='stylesheet' id='megamenu-fontawesome5-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/fontawesome5/css/all.min.css?ver=2.4' media='all' /> <link rel='stylesheet' id='megamenu-fontawesome6-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/fontawesome6/css/all.min.css?ver=2.4' media='all' /> <link rel='stylesheet' id='search-filter-plugin-styles-css' href='https://engineering.princeton.edu/wp-content/plugins/search-filter-pro/public/assets/css/search-filter.min.css?ver=2.5.17' media='all' /> <link rel='stylesheet' id='twentytwentyfour-style-css' href='https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/style.css?ver=6.6.2' media='all' /> <link rel='stylesheet' id='engineering-style-v2-css' href='https://engineering.princeton.edu/wp-content/themes/engineering/style.css?ver=1732641276' media='all' /> <script src="https://engineering.princeton.edu/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script src="https://engineering.princeton.edu/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script defer crossorigin="anonymous" src="https://kit.fontawesome.com/8299227453.js" id="font-awesome-official-js"></script> <!-- Google tag (gtag.js) snippet added by Site Kit --> <!-- Google Analytics snippet added by Site Kit --> <script src="https://www.googletagmanager.com/gtag/js?id=G-LKJSE43ML1" id="google_gtagjs-js" async></script> <script id="google_gtagjs-js-after"> window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} gtag("set","linker",{"domains":["engineering.princeton.edu"]}); gtag("js", new Date()); gtag("set", "developer_id.dZTNiMT", true); gtag("config", "G-LKJSE43ML1"); </script> <!-- End Google tag (gtag.js) snippet added by Site Kit --> <link rel="https://api.w.org/" href="https://engineering.princeton.edu/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://engineering.princeton.edu/wp-json/wp/v2/pages/5245" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://engineering.princeton.edu/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.6.2" /> <link rel='shortlink' href='https://engineering.princeton.edu/?p=5245' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://engineering.princeton.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fengineering.princeton.edu%2Fgraduate-studies%2Ffaq" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://engineering.princeton.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fengineering.princeton.edu%2Fgraduate-studies%2Ffaq&format=xml" /> <meta name="generator" content="Site Kit by Google 1.137.0" /> <script type='text/javascript'> document.addEventListener('DOMContentLoaded', function() { var globalStyles = document.getElementById('global-styles-inline-css'); if (globalStyles) { globalStyles.parentNode.removeChild(globalStyles); } }); </script> <!-- 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-MMWLX8H3'); </script> <!-- End Google Tag Manager --> <link rel="icon" href="/wp-content/themes/engineering/assets/images/favicon.ico" type="image/x-icon"><link rel="shortcut icon" href="/wp-content/themes/engineering/assets/images/favicon.ico" type="image/x-icon"><style id='wp-fonts-local'> @font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_400.woff2') format('woff2');} @font-face{font-family:Cardo;font-style:italic;font-weight:400;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_italic_400.woff2') format('woff2');} @font-face{font-family:Cardo;font-style:normal;font-weight:700;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_700.woff2') format('woff2');} </style> <link rel="icon" href="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-270x270.png" /> <style type="text/css">/** Mega Menu CSS: fs **/</style> </head> <body class="page-template page-template-page-no-featured-image page page-id-5245 page-child parent-pageid-6541 wp-embed-responsive"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MMWLX8H3" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="wp-site-blocks"><header class="wp-block-template-part"> <div class="wp-block-group engineering-site-header is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group engineering-site-header__content"> <div class="engineering-modal" x-data="{ open: false, searchOpen: false }"> <div class="engineering-navbar"> <div class="nav-item menu-item"> <a tabindex="0" role="button" @click="open = !open" @keydown.enter="open = !open" :aria-expanded="open ? 'true' : 'false'" :class="{ 'is-active': open }" > <i class="fa-solid fa-bars"></i> <div class="name-and-description"> <p class="name"><span>Menu</span></p> </div> </a> </div> <h1 class="engineering-logo"> <a href="/">School of Engineering & Applied Science</a> </h1> <div class="engineering-search"> <div class="nav-item search-item"> <a tabindex="0" role="button" @click="searchOpen = !searchOpen" @keydown.enter="searchOpen = !searchOpen" > <div class="name-and-description"> <p class="name"><span>Search</span></p> </div> <i class="fa-solid fa-magnifying-glass"></i> </a> </div> </div> </div> <nav id="engineering_menu" x-data="{ aboutOpen: false, deiOpen: false, undergradOpen: false, gradOpen: false, deptOpen: false, centersOpen: false, moreOpen: false }" x-show="open" @click.outside="open = false" @keydown.enter.outside="open = false" @keydown.esc.window="open = false" x-cloak x-transition > <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="aboutOpen = !aboutOpen" @keydown.enter="aboutOpen = !aboutOpen" :aria-expanded="aboutOpen ? 'true' : 'false'" :class="{ 'is-active': aboutOpen }" > <div class="name-and-description"> <p class="name"><span>About</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="aboutOpen" @click.outside="aboutOpen = false" @keydown.enter.outside="aboutOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">School Information</p> <div class="nav-item second-tier"> <a href="/about"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> <p class="description"> Your first points of contact with Princeton Engineering </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/leadership-and-staff"> <div class="name-and-description"> <p class="name"><span>Leadership and Staff</span></p> <p class="description">Meet our administrative team</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/leadership-council"> <div class="name-and-description"> <p class="name"><span>Leadership Council</span></p> <p class="description"> Accomplished leaders who serve as advisors to the dean </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/strategic-planning"> <div class="name-and-description"> <p class="name"><span>Strategic Planning</span></p> <p class="description">A bold vision for the next decade</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/princeton-engineers"> <div class="name-and-description"> <p class="name"><span>Princeton Engineers</span></p> <p class="description">Celebrating our community</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/by-the-numbers"> <div class="name-and-description"> <p class="name"><span>By the Numbers</span></p> <p class="description">Brief facts about the school</p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">Information for</p> <div class="nav-item second-tier"> <a href="/about/prospective-students"> <div class="name-and-description"> <p class="name"><span>Prospective Students</span></p> <p class="description">Why become a Princeton Engineer</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/corporate-partners"> <div class="name-and-description"> <p class="name"><span>Corporate Partners</span></p> <p class="description"> Research partnerships, licensing, and recruiting </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/entrepreneurs"> <div class="name-and-description"> <p class="name"><span>Entrepreneurs</span></p> <p class="description"> Helping students turn inspiration into action </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/alumni"> <div class="name-and-description"> <p class="name"><span>Alumni</span></p> <p class="description"> Stay connected to Princeton Engineering </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/visitors"> <div class="name-and-description"> <p class="name"><span>Visitors</span></p> <p class="description">Directions, and tour information</p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="deiOpen = !deiOpen" @keydown.enter="deiOpen = !deiOpen" :aria-expanded="deiOpen ? 'true' : 'false'" :class="{ 'is-active': deiOpen }" > <div class="name-and-description"> <p class="name"><span>Diversity & Inclusion</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="deiOpen" @click.outside="deiOpen = false" @keydown.enter.outside="deiOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">General Information</p> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion"> <div class="name-and-description"> <p class="name"><span>Diversity and Inclusion</span></p> <p class="description"> Our commitment to diversity and inclusion </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/dashboard"> <div class="name-and-description"> <p class="name"><span>Diversity Dashboard</span></p> <p class="description">Demographic information and trends</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-champions-program"> <div class="name-and-description"> <p class="name"><span>Diversity Champions Program</span></p> <p class="description"> Learn, share, and practice strategies related to diversity, equity, and inclusion </p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">Resources</p> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/programs"> <div class="name-and-description"> <p class="name"> <span> Diversity and Inclusion Programs and Resources</span> </p> <p class="description"> Fostering greater diversity in science and engineering </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/events"> <div class="name-and-description"> <p class="name"> <span>Diversity and Inclusion Events</span> </p> <p class="description"> Professional, social opportunities for the Princeton community </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/newsletter-archive"> <div class="name-and-description"> <p class="name"><span>Newsletter Archive</span></p> <p class="description"> Quarterly publication of the Office of Diversity and Inclusion at Princeton Engineering </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="undergradOpen = !undergradOpen" @keydown.enter="undergradOpen = !undergradOpen" :aria-expanded="undergradOpen ? 'true' : 'false'" :class="{ 'is-active': undergradOpen }" > <div class="name-and-description"> <p class="name"><span>Undergraduate Studies</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="undergradOpen" @click.outside="undergradOpen = false" @keydown.enter.outside="undergradOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">General information</p> <div class="nav-item second-tier"> <a href="/undergraduate-studies"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> <p class="description"> Rigorous foundation, hands-on experience, liberal arts context </p> </div> </a> </div> <div x-data="{ toursOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="toursOpen = !toursOpen" @keydown.enter="toursOpen = !toursOpen" :aria-expanded="toursOpen ? 'true' : 'false'" :class="{ 'is-active': toursOpen }" > <div class="name-and-description"> <p class="name"><span>Admission and Tours</span></p> <p class="description">Sign up for a tour</p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="toursOpen" @click.outside="toursOpen = false" @keydown.enter.outside="toursOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/admission-and-tours"> <div class="name-and-description"> <p class="name"> <span>Admissions & Tours Overview</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/admission-and-tours/prospective-students-faq" > <div class="name-and-description"> <p class="name"><span>Prospective Students FAQ</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/admission-and-tours/high-school-guidance" > <div class="name-and-description"> <p class="name"> <span>Guidance for high school students</span> </p> </div> </a> </div> </section> </div> <div x-data="{ academicsOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="academicsOpen = !academicsOpen" @keydown.enter="academicsOpen = !academicsOpen" :aria-expanded="academicsOpen ? 'true' : 'false'" :class="{ 'is-active': academicsOpen }" > <div class="name-and-description"> <p class="name"><span>Academics</span></p> <p class="description"> Six departments offer BSE degrees; one also offers A.B </p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="academicsOpen" @click.outside="academicsOpen = false" @keydown.enter.outside="academicsOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/concentrations"> <div class="name-and-description"> <p class="name"><span>Academics Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/abet-accreditation"> <div class="name-and-description"> <p class="name"><span>ABET Accreditation</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/certificate-programs"> <div class="name-and-description"> <p class="name"><span>Certificate programs</span></p> </div> </a> </div> </section> </div> </div> <div class="column"> <p class="nav-items-group-title">For current students</p> <div x-data="{ advisingOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="advisingOpen = !advisingOpen" @keydown.enter="advisingOpen = !advisingOpen" :aria-expanded="advisingOpen ? 'true' : 'false'" :class="{ 'is-active': advisingOpen }" > <div class="name-and-description"> <p class="name"><span>Advising</span></p> <p class="description">We are here to help</p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="advisingOpen" @click.outside="advisingOpen = false" @keydown.enter.outside="advisingOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/undergraduate-affairs-office" ><div class="name-and-description"> <p class="name"><span>Advising Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/first-year-advising" ><div class="name-and-description"> <p class="name"><span>First-Year Advising</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/first-year-advising/degree-requirements" ><div class="name-and-description"> <p class="name"><span>Degree Requirements</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/first-year-advising/first-year-faq" ><div class="name-and-description"> <p class="name"> <span> Q and A About the First Year in Engineering</span > </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/sophomore-senior-advising" ><div class="name-and-description"> <p class="name"><span>Sophomore-Senior Advising</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/rising-sophomore-faq" ><div class="name-and-description"> <p class="name"><span>Rising Sophomore FAQ</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/senior-thesis-independent-work-funding" ><div class="name-and-description"> <p class="name"> <span>Senior Thesis/Independent Work Funding</span> </p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/summer-course-information" ><div class="name-and-description"> <p class="name"><span>Summer Course Information</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/study-abroad" ><div class="name-and-description"> <p class="name"><span>Study Abroad</span></p> </div> </a> </div> </section> </div> <div x-data="{ careersOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="careersOpen = !careersOpen" @keydown.enter="careersOpen = !careersOpen" :aria-expanded="careersOpen ? 'true' : 'false'" :class="{ 'is-active': careersOpen }" > <div class="name-and-description"> <p class="name"><span>Careers</span></p> <p class="description"> What do engineering students go on to do? </p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="careersOpen" @click.outside="careersOpen = false" @keydown.enter.outside="careersOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/careers/" ><div class="name-and-description"> <p class="name"><span>Careers Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/careers/science-and-technology-fair" ><div class="name-and-description"> <p class="name"> <span>Science and Technology Job Fair</span> </p> </div> </a> </div> </section> </div> <div class="nav-item second-tier"> <a href="/undergraduate-studies/student-organizations"> <div class="name-and-description"> <p class="name"><span>Student Organizations</span></p> <p class="description"> Sixteen groups create community around special interests </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/undergraduate-studies/social-life"> <div class="name-and-description"> <p class="name"><span>Social Life</span></p> <p class="description"> Life outside the EQuad is key to your growth </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="gradOpen = !gradOpen" @keydown.enter="gradOpen = !gradOpen" :aria-expanded="gradOpen ? 'true' : 'false'" :class="{ 'is-active': gradOpen }" > <div class="name-and-description"> <p class="name"><span>Graduate</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="gradOpen" @click.outside="gradOpen = false" @keydown.enter.outside="gradOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">General information</p> <div class="nav-item second-tier"> <a href="/graduate-studies/prospective-students"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> <p class="description"> Learn to push the boundaries of your field and lead projects </p> </div> </a> </div> <div x-data="{ pathwaysOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="pathwaysOpen = !pathwaysOpen" @keydown.enter="pathwaysOpen = !pathwaysOpen" :aria-expanded="pathwaysOpen ? 'true' : 'false'" :class="{ 'is-active': pathwaysOpen }" > <div class="name-and-description"> <p class="name"><span>Academic Pathways</span></p> <p class="description"> Meet faculty and grad students, learn about applying </p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="pathwaysOpen" @click.outside="pathwaysOpen = false" @keydown.enter.outside="pathwaysOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/graduate-studies/academic-pathways/prospective-graduate-students" > <div class="name-and-description"> <p class="name"> <span> Pathways to Graduate School for Rising College Seniors</span > </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/graduate-studies/academic-pathways/prospective-faculty" > <div class="name-and-description"> <p class="name"> <span> Princeton Pathway into the Academy Program</span> </p> </div> </a> </div> </section> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/degrees-and-research"> <div class="name-and-description"> <p class="name"><span>Degrees and Research</span></p> <p class="description"> Doctoral programs in six departments cover 40 specialties </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/princeton-engineers"> <div class="name-and-description"> <p class="name"><span>Princeton Engineers</span></p> <p class="description"> Profiles of current graduate students </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/funding"> <div class="name-and-description"> <p class="name"><span>Funding</span></p> <p class="description"> Every Ph.D. student receives full funding </p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">For prospective students</p> <div class="nav-item second-tier"> <a href="/graduate-studies/student-organizations"> <div class="name-and-description"> <p class="name"><span>Student Organizations</span></p> <p class="description"> Several groups cater specifically to engineering grad students </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/social-life"> <div class="name-and-description"> <p class="name"><span>Social Life</span></p> <p class="description"> An array of opportunities, plus proximity to NYC, Philly </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/careers"> <div class="name-and-description"> <p class="name"><span>Careers</span></p> <p class="description">Many paths beyond grad school</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/faq"> <div class="name-and-description"> <p class="name"><span>FAQ</span></p> <p class="description">Your questions answered</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/resources-for-current-students"> <div class="name-and-description"> <p class="name"> <span>Resources for Current Students</span> </p> <p class="description"> Programs to support your academic goals </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="deptOpen = !deptOpen" @keydown.enter="deptOpen = !deptOpen" :aria-expanded="deptOpen ? 'true' : 'false'" :class="{ 'is-active': deptOpen }" > <div class="name-and-description"> <p class="name"><span>Departments</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="deptOpen" @click.outside="deptOpen = false" @keydown.enter.outside="deptOpen = false" x-transition > <div class="column"> <div class="nav-item second-tier"> <a href="/departments/chemical-and-biological-engineering"> <div class="name-and-description"> <p class="name"> <span>Chemical and Biological Engineering</span> </p> <p class="description"> Advancing human health, energy, materials science, and industrial processes </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/civil-and-environmental-engineering"> <div class="name-and-description"> <p class="name"> <span>Civil and Environmental Engineering</span> </p> <p class="description"> Fundamental insights into the built and natural environments, and interactions between the two </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/computer-science"> <div class="name-and-description"> <p class="name"><span>Computer Science</span></p> <p class="description"> Leading the field through foundational theory, applications, and societal impact </p> </div> </a> </div> </div> <div class="column"> <div class="nav-item second-tier"> <a href="/departments/electrical-computer-engineering"> <div class="name-and-description"> <p class="name"> <span>Electrical and Computer Engineering</span> </p> <p class="description"> Improving human health, energy systems, computing and communications, and security </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/mechanical-and-aerospace-engineering"> <div class="name-and-description"> <p class="name"> <span>Mechanical and Aerospace Engineering</span> </p> <p class="description"> Solving problems in energy, combustion, fluids, lasers, materials science, robotics and control systems, and nuclear security </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/operations-research-and-financial-engineering" > <div class="name-and-description"> <p class="name"> <span> Operations Research and Financial Engineering</span> </p> <p class="description"> Developing mathematical and computational tools for making decisions under uncertainty </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="centersOpen = !centersOpen" @keydown.enter="centersOpen = !centersOpen" :aria-expanded="centersOpen ? 'true' : 'false'" :class="{ 'is-active': centersOpen }" > <div class="name-and-description"> <p class="name"><span>Centers & Initiatives</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="centersOpen" @click.outside="centersOpen = false" @keydown.enter.outside="centersOpen = false" x-transition > <div class="column"> <div class="nav-item second-tier"> <a href="/centers/aiprinceton"> <div class="name-and-description"> <p class="name"><span>AI at Princeton</span></p> <p class="description"> Nimble, high-intensity research teams across engineering, science, social science, and humanities </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/acee"> <div class="name-and-description"> <p class="name"> <span> Andlinger Center for Energy and the Environment</span > </p> <p class="description"> Decarbonizing the world while increasing energy access worldwide </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/citp"> <div class="name-and-description"> <p class="name"> <span>Center for Information Technology Policy</span> </p> <p class="description"> Promoting informed discussion of digital technologies and their role in society </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/center-decentralization-power-through-blockchain-technology-decenter" > <div class="name-and-description"> <p class="name"><span>DeCenter</span></p> <p class="description"> Exploring a wide range of decentralized technologies and their implications for society </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/keller-center"> <div class="name-and-description"> <p class="name"> <span> Keller Center for Innovation in Engineering Education</span > </p> <p class="description"> Enabling students and faculty across Princeton to realize their aspirations for addressing societal challenges </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/omenn-darling-bioengineering-institute"> <div class="name-and-description"> <p class="name"> <span>Omenn-Darling Bioengineering Institute</span> </p> <p class="description"> Interdisciplinary research on cellular, device and computational bioengineering </p> </div> </a> </div> </div> <div class="column"> <div class="nav-item second-tier"> <a href="/centers/metropolis-initiative"> <div class="name-and-description"> <p class="name"><span>Metropolis Initiative</span></p> <p class="description"> Innovations to make cities more sustainable, resilient, and equitable </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/nextg"> <div class="name-and-description"> <p class="name"><span>NextG</span></p> <p class="description"> Creating the intelligent networks of the future </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/pmi"> <div class="name-and-description"> <p class="name"><span>Princeton Materials Institute</span></p> <p class="description"> Multidisciplinary research driving advances in materials science and photonics </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/princeton-quantum-initiative"> <div class="name-and-description"> <p class="name"><span>Princeton Quantum Initiative</span></p> <p class="description"> Taking a ‘full-stack’ approach to advancing quantum information science </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/robotics-center"> <div class="name-and-description"> <p class="name"><span>Princeton Robotics</span></p> <p class="description"> Advancing innovative, safe, and ethical use of robotic systems </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="moreOpen = !moreOpen" @keydown.enter="moreOpen = !moreOpen" :aria-expanded="moreOpen ? 'true' : 'false'" :class="{ 'is-active': moreOpen }" > <div class="name-and-description"> <p class="name"><span>More</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="moreOpen" @click.outside="moreOpen = false" @keydown.enter.outside="moreOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">Resources</p> <div class="nav-item second-tier"> <a href="/resources"> <div class="name-and-description"> <p class="name"><span>Resources</span></p> <p class="description"> Tools and policies for faculty and staff </p> </div> </a> </div> <div x-data="{ policyOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="policyOpen = !policyOpen" @keydown.enter="policyOpen = !policyOpen" :aria-expanded="policyOpen ? 'true' : 'false'" :class="{ 'is-active': policyOpen }" > <div class="name-and-description"> <p class="name"><span>Policies and Procedures</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="policyOpen" @click.outside="policyOpen = false" @keydown.enter.outside="policyOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures"> <div class="name-and-description"> <p class="name"><span>Policy Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/poster-policy"> <div class="name-and-description"> <p class="name"><span>Poster Policy</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/resource-recovery" ><div class="name-and-description"> <p class="name"><span>Resource Recovery Program</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/gas-cylinders"> <div class="name-and-description"> <p class="name"><span>Gas Cylinders</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/lab-coats"> <div class="name-and-description"> <p class="name"><span>Lab Coats</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/machine-shop"> <div class="name-and-description"> <p class="name"><span>Machine Shop Request Form</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/mailroom-shipping-receiving" > <div class="name-and-description"> <p class="name"> <span>Mailroom, Shipping and Receiving</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/nitrogen-policy"> <div class="name-and-description"> <p class="name"><span>Nitrogen Policy</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/pet-policy"> <div class="name-and-description"> <p class="name"><span>Pet Policy and Guidelines</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/stockroom"> <div class="name-and-description"> <p class="name"><span>Stockroom</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/seas-vehicles"> <div class="name-and-description"> <p class="name"><span>Vehicle Reservations</span></p> </div> </a> </div> </section> </div> <div x-data="{ safetyOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="safetyOpen = !safetyOpen" @keydown.enter="safetyOpen = !safetyOpen" :aria-expanded="safetyOpen ? 'true' : 'false'" :class="{ 'is-active': safetyOpen }" > <div class="name-and-description"> <p class="name"><span>Safety</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="safetyOpen" @click.outside="safetyOpen = false" @keydown.enter.outside="safetyOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/resources/safety/general-safety"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/roles-and-responsibilities"> <div class="name-and-description"> <p class="name"> <span>Roles and Responsibilities</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/emergency-response"> <div class="name-and-description"> <p class="name"><span>Emergency Response</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/illness-injury-reporting"> <div class="name-and-description"> <p class="name"> <span>Illness and Injury Reporting</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/general-safety"> <div class="name-and-description"> <p class="name"><span>General Safety</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/dale-grieb-safety-award" ><div class="name-and-description"> <p class="name"><span>Dale Grieb Safety Award</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/safety-handbook"> <div class="name-and-description"> <p class="name"><span>Safety Handbook</span></p> </div> </a> </div> </section> </div> <div x-data="{ fundingOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="fundingOpen = !fundingOpen" @keydown.enter="fundingOpen = !fundingOpen" :aria-expanded="fundingOpen ? 'true' : 'false'" :class="{ 'is-active': fundingOpen }" > <div class="name-and-description"> <p class="name"><span>Funding</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="fundingOpen" @click.outside="fundingOpen = false" @keydown.enter.outside="fundingOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/funding/"> <div class="name-and-description"> <p class="name"><span>Funding Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/funding/funding-guide-engineering-faculty" > <div class="name-and-description"> <p class="name"> <span>Funding Guide for Engineering Faculty</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/innovation-grants"> <div class="name-and-description"> <p class="name"><span>Innovation Grants</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/seed-grants"> <div class="name-and-description"> <p class="name"><span>Seed Grants</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/funding/william-pierson-field-fund-visiting-lecturers" > <div class="name-and-description"> <p class="name"> <span> William Pierson Field Fund for Visiting Lecturers</span > </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/travel-funds"> <div class="name-and-description"> <p class="name"><span>Travel funds</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="https://docs.google.com/forms/d/e/1FAIpQLSefr0g-gDTaZMq3yJHEOmCg9WiOKZxioUE9EeYlfSKQhRfnmQ/viewform" > <div class="name-and-description"> <p class="name"> <span>Diversity and Inclusion Initiatives</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/william-r-kenan-jr-visiting-professorship-for-distinguished-teaching" > <div class="name-and-description"> <p class="name"> <span> William R. Kenan, Jr. Visiting Professorship for Distinguished Teaching</span > </p> </div> </a> </div> </section> </div> <p class="nav-items-group-title">Quick links</p> <div class="nav-item second-tier"> <a href="/resources/faculty-directory"> <div class="name-and-description"> <p class="name"><span>Faculty Directory</span></p> <p class="description">Browse and filter our faculty list</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/jobs"> <div class="name-and-description"> <p class="name"><span>Jobs</span></p> <p class="description"> See open faculty positions across engineering and applied science </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about"> <div class="name-and-description"> <p class="name"><span>Contact</span></p> <p class="description"> A dean’s welcome and key points of contact </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/visitors"> <div class="name-and-description"> <p class="name"><span>Visit</span></p> <p class="description">Directions and a map</p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">News</p> <div class="nav-item second-tier"> <a href="/events"> <div class="name-and-description"> <p class="name"><span>Events</span></p> <p class="description">Upcoming events across the school</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/news"> <div class="name-and-description"> <p class="name"><span>News</span></p> <p class="description"> A filterable listing of news and features </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/podcasts"> <div class="name-and-description"> <p class="name"><span>Podcasts</span></p> <p class="description"> A deeper look at the research from our faculty, students and alumni </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/news/equad-magazine"> <div class="name-and-description"> <p class="name"><span>EQuad Magazine</span></p> <p class="description">Our semiannual news magazine</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/news/media-inquiries"> <div class="name-and-description"> <p class="name"><span>Media Inquiries</span></p> <p class="description">Information for journalists</p> </div> </a> </div> </div> </section> <section class="social-media"> <ul> <li> <a href="https://www.linkedin.com/school/princetonengineering" ><i class="fa-brands fa-linkedin"></i ></a> </li> <li> <a href="https://www.instagram.com/eprinceton" ><i class="fa-brands fa-instagram"></i ></a> </li> <li> <a href="https://www.x.com/eprinceton" ><i class="fa-brands fa-x-twitter"></i ></a> </li> <li> <a href="https://www.facebook.com/princetonengineering" ><i class="fa-brands fa-facebook"></i ></a> </li> <li> <a href="https://www.youtube.com/princetonengineering" ><i class="fa-brands fa-youtube"></i ></a> </li> </ul> </section> </nav> <section class="engineering-search-modal is-layout-flow wp-block-group-is-layout-flow" x-show="searchOpen" @click.outside="searchOpen = false" @keydown.enter.outside="searchOpen = false" @keydown.esc.window="searchOpen = false" x-transition x-cloak > <form role="search" method="get" class="search-form" action="https://engineering.princeton.edu/"> <label><br /> <span class="screen-reader-text">Search for:</span><br /> <input type="search" class="search-field" placeholder="Search …" value="" name="s" /><br /> </label><br /> <input type="submit" class="search-submit" value="Search" /><br /> </form> </section> <div class="engineering-modal-bg" x-show="open | searchOpen" x-transition x-cloak ></div> </div> </div> </div> </header> <main class="wp-block-group default-page no-featured-image is-layout-flow wp-block-group-is-layout-flow"> <article class="wp-block-group page is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group page__inner is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group page__header is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group page__header__content is-layout-flow wp-block-group-is-layout-flow"> <svg class="primary-chevron" viewBox="0 0 101 70" fill="none" xmlns="http://www.w3.org/2000/svg" > <g> <path fill-rule="evenodd" clip-rule="evenodd" d="M81.5853 69.6198L100.62 50.5856L50.5511 0.51725L0.482788 50.5856L19.517 69.6198L50.5511 38.5857L81.5853 69.6198Z" fill="#55D6F4" /> </g> </svg> <svg class="secondary-chevron" viewBox="0 0 101 70" fill="none" xmlns="http://www.w3.org/2000/svg" > <g> <path fill-rule="evenodd" clip-rule="evenodd" d="M81.5853 69.6198L100.62 50.5856L50.5511 0.51725L0.482788 50.5856L19.517 69.6198L50.5511 38.5857L81.5853 69.6198Z" fill="#7600D8" /> </g> </svg> </div> </div> <nav class="wp-block-group breadcrumbs is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group breadcrumbs__inner is-layout-flow wp-block-group-is-layout-flow"> <p> <span><span><a href="https://engineering.princeton.edu/">Home</a></span> » <span><a href="https://engineering.princeton.edu/graduate-studies">Graduate Studies</a></span> » <span class="breadcrumb_last" aria-current="page">FAQ</span></span></p> </div> </nav> <div class="wp-block-group page__content is-layout-flow wp-block-group-is-layout-flow"> <h1 class="page__title not-prose wp-block-post-title">FAQ</h1> <div class="entry-content wp-block-post-content is-layout-flow wp-block-post-content-is-layout-flow"> <h2 class="wp-block-heading" id="theTop">Admissions questions</h2> <ul class="wp-block-list"> <li><a href="/graduate-studies/faq#faq1">Should I apply for the master’s program if my final goal is a Ph.D.?</a></li> <li><a href="/graduate-studies/faq#faq2">What does Princeton Engineering look for in an application?</a></li> <li><a href="/graduate-studies/faq#faq3">What GRE scores do I need to be accepted?</a></li> <li><a href="/graduate-studies/faq#faq4">Should I contact Princeton professors with whom I am interested in working?</a></li> <li><a href="/graduate-studies/faq#faq5">Do I need an undergraduate or master’s degree in an engineering field to apply?</a></li> <li><a href="/graduate-studies/faq#faq6">Do I have to know my specific research area before I apply?</a></li> <li><a href="/graduate-studies/faq#faq7">Should I mention specific professors with whom I would like to work in my application personal statement?</a></li> </ul> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-m-eng-questions">M.Eng. questions</h2> <p>In 2020, several departments of the School of Engineering and Applied Science piloted a one-year course-based Master of Engineering (M. Eng.) degree for their graduates in the Classes of 2020 and 2021. This program will be continued for the Class of 2023 by the departments referenced in the FAQs below with approval of the Graduate School.</p> <ul class="wp-block-list"> <li><a href="/graduate-studies/faq#faq16">Which School of Engineering departments are participating?</a></li> <li><a href="/graduate-studies/faq#faq17">What is the length of the M.Eng. Program?</a></li> <li><a href="/graduate-studies/faq#faq18">Who is eligible to apply to this M.Eng. program?</a></li> <li><a href="/graduate-studies/faq#faq19">How does one apply to the program?</a></li> <li><a href="/graduate-studies/faq#faq20">Is it possible to defer admission?</a></li> <li><a href="/graduate-studies/faq#faq21">Where can I find funding opportunities or resources?</a></li> <li><a href="/graduate-studies/faq#faq22">Are M.Eng. students allowed to work?</a></li> <li><a href="/graduate-studies/faq#faq23">Are M.Eng. students able to apply for student housing?</a></li> <li><a href="/graduate-studies/faq#faq24">Can M.Eng. students purchase meal plans?</a></li> <li><a href="/graduate-studies/faq#faq25">Could M.Eng. students take additional course or audit courses?</a></li> </ul> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-academics-questions">Academics questions</h2> <ul class="wp-block-list"> <li><a href="/graduate-studies/faq#faq8">What are general examinations?</a></li> <li><a href="/graduate-studies/faq#faq9">Can I take courses in departments outside of my own?</a></li> </ul> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-student-life-questions">Student life questions</h2> <ul class="wp-block-list"> <li><a href="/graduate-studies/faq#faq10">What is social life like for graduate students at Princeton?</a></li> <li><a href="/graduate-studies/faq#faq11">What housing options are available for Princeton graduate students?</a></li> <li><a href="/graduate-studies/faq#faq12">What is the town of Princeton like?</a></li> </ul> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-international-student-questions">International student questions</h2> <ul class="wp-block-list"> <li><a href="/graduate-studies/faq#faq13">How many of your students are international?</a></li> <li><a href="/graduate-studies/faq#faq14">If I am a Canadian citizen, do I still need to get a visa?</a></li> <li><a href="/graduate-studies/faq#faq15">Whom should I contact about visas?</a></li> </ul> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-admission">Admission</h2> <h3 class="wp-block-heading" id="faq1">Should I apply for the master’s program if my final goal is a Ph.D.?</h3> <p>No. The master’s programs are separate programs that terminate with the master’s degree.</p> <p>There are two types of master’s programs: Master of Science in Engineering (M.S.E.) and Master of Engineering (M.Eng.). The M.S.E. is available in all departments except Electrical Engineering and is typically funded (tuition and stipend). The M.Eng. is available in all departments except Computer Science and Operations Research and Financial Engineering.</p> <p>If you are interested in obtaining a Ph.D., you should apply directly to the Ph.D. program in your field. Most departments offer a master’s degree “en route” to the Ph.D. (usually after your second year).</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq1">What does Princeton Engineering look for in an application?</h3> <p>The school takes a “holistic reading process” approach to reviewing applications. All aspects of the application, including undergraduate coursework, test scores, research experience, and letters of recommendation, are considered.</p> <p>Strengths in any of these areas may compensate for weaknesses in any other areas, and while it is not necessary to possess an impeccable record in all areas, strength in each is correlated with admission.</p> <p>In short, there is no formula for gaining admission. Meeting even a small group of current students will help you realize the diverse backgrounds of our admitted students.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq3">What GRE scores do I need to be accepted?</h3> <p>There are no strict cutoffs or quotas pertaining to GRE scores and admission. Averages are reported in some university publications and media such as U.S. News & World Report.</p> <p>The majority of scores for recently admitted students were over 550 on the verbal portion and over 700 on the quantitative portion, with specific results varying across departments and programs.</p> <p>Please do not let scores you perceive to be low discourage you from applying, as strengths in other areas can and regularly do compensate.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq4">Should I contact Princeton professors with whom I am interested in working?</h3> <p>Not necessarily. It is not required that you contact faculty members at Princeton, nor is it clear that doing so will help you gain admission. The answer varies from one faculty member to another.</p> <p>If you have a specific question about a faculty member’s research, you are welcome to send him or her an email. However, please keep in mind that faculty members are very busy, so you should not feel discouraged from applying if you do not receive a response.</p> <p>In fact, some faculty have a policy of not responding to emails from prospective students to avoid issues of advantage or fairness. Please be sure to visit the faculty member’s web page first to see if he or she encourages emails from prospective students.</p> <p>If you are planning to visit the campus as a prospective student, please email the graduate program administrator for your department to arrange meetings with faculty members with whom you would like to meet. Please see the department web pages for contact information for your prospective graduate program administrator.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq5">Do I need an undergraduate or master’s degree in an engineering field to apply?</h3> <p>No. Many of our students majored in other disciplines as undergraduates.</p> <p>Since the school emphasizes both engineering and applied science, a large number of these students majored in the sciences and are now pursuing more applied work. Other students come from non-science fields.</p> <p>All departments do, however, have core competency requirements that usually must be fulfilled within the first two years in the program. These requirements vary in terms of the background knowledge expected of incoming students.</p> <p>Please consult the departmental web sites and graduate program administrators for specific information.</p> <p><strong><a href="https://engineering.princeton.edu/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq6">Do I have to know my specific research area before I apply?</h3> <p>The short answer is no, although you must apply to only one department.</p> <p>Departments and research groups take varying approaches in this matter, though all departments have some flexibility so that students are not committed to one faculty member or research group from the day they arrive.</p> <p>Many departments do, however, request that students indicate a division of interest on their applications, and they assign first-year advisors based on these interests. Please check with the department’s graduate program administrators for further information about this question.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq7">Should I mention specific professors with whom I would like to work in my application personal statement?</h3> <p>Generally, yes. Your personal statement should detail why you would like to attend Princeton Engineering for graduate school and should indicate that you are aware of the research opportunities available in your program and have considered faculty members and research groups that are a good match for your background and interests.</p> <p>Often this information is used by departments to ensure that appropriate faculty members have a chance to review relevant applications and to help in making decisions such as first year advisor assignments. However, it is also important to be selective and show thoughtfulness. Simply listing the names of every professor in your program or division will not impress anybody.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-m-eng">M.Eng.</h2> <h3 class="wp-block-heading" id="faq16">Which School of Engineering departments are participating?</h3> <p>The departments that will offer the M.Eng. for the Class of 2023 are</p> <p>Chemical and Biological Engineering (CBE)</p> <p>Electrical and Computer Engineering (ECE)</p> <p>Mechanical and Aerospace Engineering (MAE)</p> <figure class="wp-block-table is-style-regular"><table><thead><tr><th>Deptartment</th><th>Deadline</th><th>Contact for more info</th></tr></thead><tbody><tr><td>CBE</td><td>December 1, 2023</td><td><a href="mailto:koliver@princeton.edu">Karen Oliver</a></td></tr><tr><td>ECE</td><td>December 15, 2023</td><td><a href="mailto:jb6@princeton.edu">Jean Bausmith</a></td></tr><tr><td>MAE</td><td>December 1, 2023</td><td><a href="mailto:clove@princeton.edu">Caasi Love</a></td></tr></tbody></table></figure> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq17">What is the length of the M.Eng. Program?</h3> <p>It is a two-semester, course-based Master of Engineering degree.</p> <p>No courses taken while an undergraduate may count toward the M.Eng. degree, and no courses may be retaken to count toward the M.Eng. degree.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq18">Who is eligible to apply to this M.Eng. program?</h3> <p>Eligibility requirements will vary by department. Some departmental programs are only open to Princeton students from designated majors. You are advised to read carefully each department’s graduate application webpage for eligibility requirements, deadlines, and submission materials.</p> <p>Questions about specific requirements such as GPAs, or from non-BSE Princeton students, should be directed to the departments of interest.</p> <p>Applications from BSE students and non-BSE students in departments other than the one for which they are applying will be assessed to determine level of preparation for completing graduate coursework.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq19">How does one apply to the program?</h3> <p>The graduate application can be found at: https://gradschool.princeton.edu/admission/applying-princeton/apply.</p> <p>Application fees will be waived for Princeton seniors applying to the M.Eng. program. You may refer to the Director of Graduate Studies or the Graduate Program Administrator in the department to which you will apply for a fee waiver code.</p> <p>Final decisions and official notifications will be sent by the graduate school in March, and admitted applicants will have until April 15 to accept the offer of admission.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq20">Is it possible to defer admission?</h3> <p>Deferral of admission to a future year is not possible; seniors who apply and are accepted are admitted for the following academic year only.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq21">Where can I find funding opportunities or resources?</h3> <p>Princeton University subscribes to a <a href="https://research.princeton.edu/funding/pivot">comprehensive funding database</a> where you can source graduate funding opportunities. In the search bar type in “graduate student fellowships” or “graduate student scholarships,” or similar.</p> <h3 class="wp-block-heading" id="faq22">Are M.Eng. students allowed to work?</h3> <p>M.Eng. students are permitted to work in a variety of ways as described below. However, because graduate study at Princeton requires a full-time commitment, we ask students to be prudent about the amount of time devoted to work to ensure academic progress/success.</p> <p>M.Eng. students participating in this program are eligible to perform paid hourly work on education-related activities for their departments or for the University on a part-time basis (and are not bound by the 10 hour/week limit placed on fully-funded graduate students).</p> <ul class="wp-block-list"> <li>M.Eng. students may serve as half AIs in the fall. AI eligibility in the spring term will be contingent upon making good academic progress in the fall as determined by the departmental Director of Graduate Studies.</li> <li>M.Eng. students may not AR but may participate in research on an hourly basis</li> <li>M.Eng. students may be assigned hourly work related to course or lab development</li> <li>M.Eng. students may be hired to work on educational programs such as winter session programs</li> </ul> <p>M.Eng. students who are U.S. citizens and permanent residents are eligible to apply to the <strong>Federal Work Study (FWS) program</strong>. FWS is a federal aid program that subsidizes wages for eligible students and at Princeton. To be eligible for this program at Princeton, students must:</p> <ul class="wp-block-list"> <li>Be either U.S. citizens or permanent residents</li> <li>Demonstrate financial need and federal eligibility</li> <li>Complete the FAFSA: <a href="https://fafsa.ed.gov">Free Application for Federal Student Aid (FAFSA)</a>. The FAFSA is <strong>required to evaluate your eligibility</strong> to take part in the work study program.</li> <li><a href="https://gradschool.princeton.edu/forms/notification-completed-fafsa">Notify the Graduate School</a> once the FAFSA has been completed and submitted</li> <li>Be in good academic standing if applying mid-year.</li> </ul> <p>Federal Work Study students are paid on an hourly basis only. <strong>Salary, fee or commission arrangements are not permitted</strong>. Students must be paid for all hours worked and may not volunteer their services to employers.</p> <p>More information can be found on the Graduate School <a href="https://gradschool.princeton.edu/costs-funding/sources-funding/loans-and-assistance/federal-work-study">website</a> or the Student Employment <a href="https://finaid.princeton.edu/student-employment/information-undergraduates/federal-work-study">site</a>. </p> <p>Resources for filling out the FAFSA at: <a href="https://studentaid.gov/apply-for-aid/fafsa/filling-out">https://studentaid.gov/apply-for-aid/fafsa/filling-out</a>. More specific questions can be answered by Jeanette DeGuire in the Graduate School: <a href="mailto:jdeguire@Princeton.EDU">jdeguire@Princeton.EDU</a>.</p> <p>International students are eligible to work on campus for up to 20 hours/week during the semester. If students plan to work on campus the summer between their bachelor’s and master’s program, they are advised to go to the Davis International Center to ask for a “change of level” from bachelors to masters before to become employment eligible. Questions regarding off-campus work should be directed to the Davis International Center.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq23">Are M.Eng. students able to apply for student housing?</h3> <p>Applicants should not apply for University graduate housing, as it will not be available to students in this program.</p> <p>Students seeking off-campus housing can find listings and roommate search options on the Off-Campus Housing site: <a href="https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Foffcampushousing.princeton.edu%2F&data=05%7C01%7Cjulieyun%40princeton.edu%7C8c85257368874737901208da2d46959b%7C2ff601167431425db5af077d7791bda4%7C0%7C0%7C637872078438669651%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Xm7blrY5V5pfzOWvtBbYaoEOU74JEQHKcI9ar%2BMoZwo%3D&reserved=0">https://offcampushousing.princeton.edu</a>. The contact for students with questions is <strong>Sarah Major</strong> who is the manager for Off-Campus Housing: <a href="mailto:smajor@princeton.edu">smajor@princeton.edu</a>; Phone: 609-258-5897 </p> <p>Some departments may have information about available sublets provided by prior students. If you need assistance with housing, please check in with your department for available resources.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq24">Can M.Eng. students purchase meal plans?</h3> <ul class="wp-block-list"> <li>All graduate students can have <strong>6 free meals</strong> each semester <strong>at Proctor Hall</strong> in the Graduate College regardless of where they reside </li> <li>M.Eng. students are eligible to purchase student meal plans <a href="https://dining.princeton.edu/meal-plans/faqs">https://dining.princeton.edu/meal-plans/faqs</a> and <a href="https://dining.princeton.edu/meal-plans/dining-programs">https://dining.princeton.edu/meal-plans/dining-programs</a></li> <li>Meal Plan Rates: <a href="https://dining.princeton.edu/AY_21_22_Meal_Plans">https://dining.princeton.edu/AY_21_22_Meal_Plans</a></li> <li>Contact Campus Dining to sign up: <a href="mailto:dining@princeton.edu">dining@princeton.edu</a></li> </ul> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq25">Could M.Eng. students take additional course or audit courses?</h3> <p>Students are permitted to take courses in addition to those required by their degree programs and they need not be in a STEM discipline. Students planning to take additional coursework are recommended to advise their department of these plans to ensure they are on track to meet degree requirements.</p> <p>Graduate students are allowed to audit courses as long as they get permission from individual instructors teaching the courses. It is highly recommended that students advise their departments of plans to audit additional courses to ensure they are able to meet department requirements.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-academics">Academics</h2> <h3 class="wp-block-heading" id="faq8">What are general examinations?</h3> <p>General examinations, or “generals,” vary by department, but are essentially comprehensive examinations intended to assess expertise in a field. They may be written, oral, or a combination of both and may include both undergraduate and graduate material.</p> <p>Depending on your department, they are usually taken in the first or second year of the Ph.D. program. Most graduate schools have similar examinations, though the titles may vary – they can also be referred to as “qualifiers,” “A-levels,” or “prelims.”</p> <p>Please consult the individual department web pages for specific details about general exams within each department.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq9">Can I take courses in departments outside of my own?</h3> <p>Absolutely! That’s one of the perks of being a Princeton graduate student.</p> <p>With a few rare exceptions, such as visual and performance arts, you are free to take courses in any department in the university and the tuition is still covered. In fact, you are encouraged to take courses in other departments that are related to your research.</p> <p>Engineering graduate students often take courses for personal interest, whether for credit or not, in a variety of programs in the humanities, arts, and social and natural sciences.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-student-life">Student life</h2> <h3 class="wp-block-heading" id="faq10">What is social life like for graduate students at Princeton?</h3> <p>Princeton is unusual in that the Graduate College, or “GC,” serves as a focal point for graduate student residential and social life.</p> <p>The social life of Princeton graduate students is a communal, supportive environment, with much camaraderie among students. They benefit from a small school atmosphere in which most graduate students know most others.</p> <p>Most single first-year graduate students live in the GC, which is a dormitory-style complex, and enjoy plenty of opportunities to meet through living and dining with each other.</p> <p>Some students elect to live in one of the on-campus apartments, yet still enjoy the wealth of social events that the GC provides. These include weekly social hours, movie nights, intramural sports, and activities ranging from canoeing in the Pocono Mountains to trips to the Jersey shore.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq11">What housing options are available for Princeton graduate students?</h3> <p>Most graduate students, especially incoming students, live in University housing, either in dorms at the Graduate College or in apartments in Lawrence or Lakeside Communities.</p> <p>Housing for students with families is available in all of the apartment complexes. Assignment to university housing is based on a lottery system, with priority allocated based on year in the program.</p> <p>For more information, please consult the university’s official <a href="https://hres.princeton.edu/graduate-housing" target="_blank" rel="noreferrer noopener">graduate student housing site</a>.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <h3 class="wp-block-heading" id="faq12">What is the town of Princeton like?</h3> <p><a href="http://www.princetonboro.org/" target="_blank" rel="noreferrer noopener">Princeton</a> is a vibrant college town with a rich history that dates back to America’s colonial era.</p> <p>The town offers many restaurants, shopping areas, and cultural activities. It is a safe area, with a very low crime index, within an hour of both New York City and Philadelphia by train or car.</p> <p>The proximity to these cities provides many opportunities for entertainment and convenience – both Newark and Philadelphia international airports, for instance, are less than an hour away. We encourage you to visit Princeton for yourself to find out more.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <hr class="wp-block-separator has-css-opacity"/> <h2 class="wp-block-heading" id="h-international-students">International students</h2> <h3 class="wp-block-heading" id="faq13">How many of your students are international?</h3> <p>Approximately 55% of Princeton Engineering graduate students are international.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <hr class="wp-block-separator has-css-opacity"/> <h3 class="wp-block-heading" id="faq14">If I am a Canadian citizen, do I still need to get a visa?</h3> <p>Yes, you do, but you do not need to go to an American Embassy. Instead, just show your documents when you cross the border (whether it’s by plane or otherwise), and a visa will be issued to you on the spot.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> <hr class="wp-block-separator has-css-opacity"/> <h3 class="wp-block-heading" id="faq15">Whom should I contact about visas?</h3> <p>The office of <a href="https://davisic.princeton.edu/immigration/current-students/j-1-visa-eligibility">Visa Services</a> may be able to help you.</p> <p><strong><a href="/graduate-studies/faq#theTop">Return to Questions List</a></strong></p> </div> </div> </div> </article> </main> <footer class="wp-block-template-part"> <div class="wp-block-group engineering-site-footer is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group engineering-site-footer__content is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group logos-and-address"> <h3 class="engineering-logo is-layout-flow wp-block-group-is-layout-flow"> <a href="/">School of Engineering & Applied Science</a> </h3> <div class="wp-block-group engineering-address is-layout-flow wp-block-group-is-layout-flow"> <address> <p>School of Engineering and Applied Science</p> <p>Princeton, New Jersey 08544</p> </address> </div> <div class="wp-block-group engineering-newsletter is-layout-flow wp-block-group-is-layout-flow"> <div id="mc_embed_shell" style="width: 100%"> <link href="//cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css" /> <div id="mc_embed_signup"> <form action="https://princeton.us15.list-manage.com/subscribe/post?u=815013b76bec0c1d6fae893ba&id=329ebd13b8&f_id=00479be0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" > <div id="mc_embed_signup_scroll"> <h2>Engineering Newsletter Signup</h2> <div class="mc-field-group"> <input type="email" name="EMAIL" placeholder="email address (required)" class="required email" id="mce-EMAIL" required="" value="" /> </div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display: none" ></div> <div class="response" id="mce-success-response" style="display: none" ></div> </div> <div aria-hidden="true" style="position: absolute; left: -5000px" > <input type="text" name="b_815013b76bec0c1d6fae893ba_329ebd13b8" tabindex="-1" value="" /> </div> <div class="clear"> <input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe" /> </div> </div> </form> </div> <script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js" ></script> <script type="text/javascript"> (function ($) { window.fnames = new Array(); window.ftypes = new Array(); fnames[0] = "EMAIL"; ftypes[0] = "email"; fnames[1] = "FNAME"; ftypes[1] = "text"; fnames[2] = "LNAME"; ftypes[2] = "text"; fnames[3] = "ADDRESS"; ftypes[3] = "address"; fnames[4] = "PHONE"; ftypes[4] = "phone"; fnames[5] = "MMERGE5"; ftypes[5] = "text"; fnames[6] = "MMERGE6"; ftypes[6] = "text"; fnames[7] = "MMERGE7"; ftypes[7] = "text"; })(jQuery); var $mcj = jQuery.noConflict(true); </script> </div> </div> </div> <div class="equal-opportunity is-layout-flow wp-block-group-is-layout-flow"> <p> Equal Opportunity and Nondiscrimination at Princeton University: Princeton University believes that commitment to principles of fairness and respect for all is favorable to the free and open exchange of ideas, and the University seeks to reach out as widely as possible in order to attract the ablest individuals as students, faculty, and staff. In applying this policy, the University is committed to nondiscrimination on the basis of personal beliefs or characteristics such as political views, religion, national origin, ancestry, race, color, sex, sexual orientation, gender identity or expression, pregnancy/childbirth, age, marital or domestic partnership status, veteran status, disability, genetic information and/or other characteristics protected by applicable law in any phase of its education or employment programs or activities. In addition, pursuant to Title IX of the Education Amendments of 1972 and supporting regulations, Princeton does not discriminate on the basis of sex in the education programs or activities that it operates; this extends to admission and employment. Inquiries about the application of Title IX and its supporting regulations may be directed to the Assistant Secretary for Civil Rights, Office for Civil Rights, U.S. Department of Education or to the University’s Sexual Misconduct/Title IX Coordinator. See Princeton’s full Equal Opportunity Policy and Nondiscrimination Statement. </p> </div> <div class="university-info is-layout-flow wp-block-group-is-layout-flow"> <p>© 2024 The Trustees of Princeton University</p> <div class="wp-block-group university-address is-layout-flow wp-block-group-is-layout-flow"> <address> <p>Princeton, New Jersey 08544 United States</p> <p> <strong>Operator:</strong> <a href="tel+6092583000">(609) 258-3000</a> </p> </address> <p> <a href="https://www.princeton.edu/content/copyright-infringement" >Copyright Infringement</a > </p> </div> <div class="wp-block-group university-footer-logo is-layout-flow wp-block-group-is-layout-flow"> <h3 class="university-logo"> <a href="https://www.princeton.edu">Princeton University</a> </h3> <p> <a href="https://www.princeton.edu/privacy-notice">Privacy Notice</a> </p> </div> </div> </div> </div> </footer> </div> <script id="wp-block-template-skip-link-js-after"> ( function() { var skipLinkTarget = document.querySelector( 'main' ), sibling, skipLinkTargetID, skipLink; // Early exit if a skip-link target can't be located. if ( ! skipLinkTarget ) { return; } /* * Get the site wrapper. * The skip-link will be injected in the beginning of it. */ sibling = document.querySelector( '.wp-site-blocks' ); // Early exit if the root element was not found. if ( ! sibling ) { return; } // Get the skip-link target's ID, and generate one if it doesn't exist. skipLinkTargetID = skipLinkTarget.id; if ( ! skipLinkTargetID ) { skipLinkTargetID = 'wp--skip-link--target'; skipLinkTarget.id = skipLinkTargetID; } // Create the skip link. skipLink = document.createElement( 'a' ); skipLink.classList.add( 'skip-link', 'screen-reader-text' ); skipLink.href = '#' + skipLinkTargetID; skipLink.innerHTML = 'Skip to content'; // Inject the skip link. sibling.parentElement.insertBefore( skipLink, sibling ); }() ); </script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/app/dist/assets/index-vV-Zt8Fy.js?ver=1.0.3" id="vite-script-js"></script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/assets/js/main.js?ver=1732641276" id="main-js"></script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/assets/js/main.min.js?ver=1732641276" id="main-min-js"></script> <script src="https://kit.fontawesome.com/8299227453.js" id="fontawesome-js"></script> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js" id="alpinejs-js"></script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/assets/js/main.min.js" id="custom-js-js"></script> <script src="https://engineering.princeton.edu/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> <script id="megamenu-js-extra"> var megamenu = {"timeout":"300","interval":"100"}; </script> <script src="https://engineering.princeton.edu/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.3.1.2" id="megamenu-js"></script> <script src="https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/assets/public.js?ver=2.4" id="megamenu-pro-js"></script> <script type="text/javascript"> /* <![CDATA[ */ document.querySelectorAll("ul.nav-menu").forEach( ulist => { if (ulist.querySelectorAll("li").length == 0) { ulist.style.display = "none"; } } ); /* ]]> */ </script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-b00d4b4e7850ab82d90","applicationID":"1529948474","transactionName":"NFUAYEdRDBUFW0ReVw0fI1dBWQ0IS0xVWkgPURZRGFMDCBJZQw==","queueTime":0,"applicationTime":410,"atts":"GBIDFg9LHxs=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>