CINXE.COM
Global permission granting | Pearson
<!DOCTYPE HTML> <html lang="en-CA" class="no-js"> <head> <meta charset="UTF-8"/> <meta name="template" content="global-store-en-ca-template"/> <link href="https://www.pearson.com/pcp-hed/css/pcp-hed.css" rel='stylesheet'/> <title>Global permission granting | Pearson</title> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta property="og:title" content="Global permission granting "/> <meta name="twitter:title" content="Global permission granting "/> <meta name="description" content="Global Permissions Granting provides permission at the asset/extract level for third parties, educators, authors, publishers and much more. "/> <meta property="og:description" content="Global Permissions Granting provides permission at the asset/extract level for third parties, educators, authors, publishers and much more. "/> <meta property="og:url" content="https://www.pearson.com/en-ca/global-permission-granting.html"/> <meta name="twitter:description" content="Global Permissions Granting provides permission at the asset/extract level for third parties, educators, authors, publishers and much more. "/> <meta name="article:modified_time" content="2023-10-12T19:49:31.794Z"/> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/page/page-properties-dialog.min.ACSHASH1de7355ba14c780dbdf61ff69fb685cf.css" type="text/css"> <link rel="shortcut icon" media="(prefers-color-scheme: dark)" href="/conf/pearson/settings/wcm/templates/global-store-en-ca-template/favicon-on-dark.ico"/> <link rel="shortcut icon" media="(prefers-color-scheme: light)" href="/conf/pearson/settings/wcm/templates/global-store-en-ca-template/favicon-on-light.ico"/> <script type="text/javascript" src="https://www.pearson.com/assets/11916e3c49167f794e266452faa1fa11422373f0727" ></script><script src="/etc/clientlibs/platform/aem-core/libraries/jquery-3-6-0.min.ACSHASHf7f88c154f8dde28b5bcdd9e1c79f655.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/jquery-ui-1-13-2.min.ACSHASH1e2047978946a1d271356d0b557a84a3.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/picturefill.min.ACSHASH173a529fee52e78dd3735db343325617.js"></script> <script src="/etc/clientlibs/platform/aem-core/form-validator.min.ACSHASH36c30c0fad3028f0587f00d798961847.js"></script> <script src="/etc.clientlibs/clientlibs/granite/lodash/modern.min.ACSHASH76136ba6e7c9276b178edc785c389ba7.js"></script> <script src="/etc.clientlibs/cq/personalization/clientlib/underscore.min.ACSHASH03540ac0f1ea39be635e17b62c718dd5.js"></script> <script src="/etc.clientlibs/clientlibs/granite/backbone.min.ACSHASHe590febe6539b40e39ec9c983d8e96c0.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/template-settings.min.ACSHASH6e38b7e6a576e04396c34830c83f30fc.js"></script> <script src="/etc/clientlibs/platform/aem-core/components.min.ACSHASH5354bee8d264e371dc96ce368e69f55a.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/bootstrap-4-3-1.min.ACSHASHcb8bf3d1be0523e7c0bd6ce9a1c7a388.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/parsley-2-8.min.ACSHASH556fd9ab479352b3d4b9e80b17f0b476.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/highered-reimagined.min.ACSHASH8484c9b42a7d840d13f47526d5f50435.js"></script> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/libraries/bootstrap-4-3-1.min.ACSHASHcf4d74070a73cdb86117b5ecea837a56.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/libraries/font-awesome-4-2.min.ACSHASHbd12c3d96f5473480f04fb430338d21c.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/libraries/parsley-2-8.min.ACSHASHca334e633e206e73cb76e8ce5f18875f.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/static-collection.min.ACSHASHd8d236ca379e8a2f4fda3e67ba9e1224.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/video-common.min.ACSHASHb41659e9aebfc61648ef1e6283e6e6ef.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/column-control.min.ACSHASH6371e8f53bc80147ef09e70201ed9df7.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/column-nav.min.ACSHASH72c9c50403bd963fcb6e0e49268c9504.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/youtube-video.min.ACSHASHb4f8a1709ea5e6bebb8f47c1a7a30078.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/modal-window-pop-up.min.ACSHASH9e8a7baff9560796c704601fa9097501.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/events/events-calendar.min.ACSHASH0887ef49815a1b7c07691cecf69b0b86.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/static-collection.min.ACSHASH4d4a2616c5ebe9372c4f8a686430979d.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/highered-reimagined.min.ACSHASHf91cea1c4b4db1498187a97173294de1.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/global-message.min.ACSHASHf9caedf14ceff1d7ebee18b5b70365b8.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/column-control-collapse.min.ACSHASHce2e9e8aa192f718db55e5af9287386c.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-footer.min.ACSHASH89f6f96afc9ac21d2559b3e9250643ec.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-aem-header.min.ACSHASHeeef99282da9bd62c9cde0b17b4e23b3.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/he-marketing-block.min.ACSHASH2665c417098669f6210a955d67dcdb18.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/rte-styles-for-ordered-list.min.ACSHASH5f44c4b223bc4ea49340790d743bacd4.css" type="text/css"> <script id="digital-data-layer" type="text/javascript"> dataLayer = [{ "version" : "1.0", "site" : { "siteId" : "pearson.com | CA", "siteLabel" : "global", "domain" : "pearson.com", "siteSection" : "global-permission-granting", "language" : "en" }, "pageInfo" : { "pageTitle" : "Global permission granting", "pageURL" : "/en-ca/global-permission-granting.html", "pageTemplate" : "/conf/pearson/settings/wcm/templates/global-store-en-ca-template", "dateCreated" : "2023-10-12T19:49:56.935Z", "lastUpdated" : "2023-10-12T19:49:31.794Z", "pageCategory" : "Static", "isBypassEnabled" : false, "loginPageLink" : "/store/login", "breadcrumb" : [ "Home (CA)", "Global permission granting" ], "pageLayout" : "/conf/pearson/settings/wcm/templates/initial-content-article-page-editable-template", "redirectIfAuthenticatedByIES" : false } }]; </script> <!-- NR Script Start for www.pearson.com --> <script> window.NREUM || (NREUM = {}); NREUM.init = { distributed_tracing: { enabled: true }, privacy: { cookies_enabled: true }, ajax: { deny_list: ['bam.nr-data.net'] }, }; NREUM.loader_config = { accountID: '1765996', trustKey: '691807', agentID: '1120248489', licenseKey: '068b3faa02', applicationID: '1120248489', }; NREUM.info = { beacon: 'bam.nr-data.net', errorBeacon: 'bam.nr-data.net', licenseKey: '068b3faa02', applicationID: '1120248489', sa: 1, }; /*! For license information please see nr-loader-spa-1.246.1.min.js.LICENSE.txt */ (() => { 'use strict'; var e, t, r = { 234: (e, t, r) => { r.d(t, { P_: () => g, Mt: () => v, C5: () => s, DL: () => A, OP: () => D, lF: () => N, Yu: () => x, Dg: () => m, CX: () => c, GE: () => w, sU: () => j, }); var n = r(8632), i = r(9567); const o = { beacon: n.ce.beacon, errorBeacon: n.ce.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) { 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 c(e, t) { if (!e) throw new Error('All info objects require an agent identifier!'); (a[e] = (0, i.D)(t, o)), (0, n.Qy)(e, a[e], 'info'); } const u = e => { if (!e || 'string' != typeof e) return !1; try { document.createDocumentFragment().querySelector(e); } catch { return !1; } return !0; }; var d = r(7056), l = r(50); const f = () => { 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 { feature_flags: [], proxy: { assets: void 0, beacon: void 0 }, privacy: { cookies_enabled: !0 }, 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, }, session: { domain: void 0, expiresMs: d.oD, inactiveMs: d.Hb }, ssl: void 0, obfuscate: void 0, jserrors: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, metrics: { enabled: !0, autoStart: !0 }, page_action: { enabled: !0, harvestTimeSeconds: 30, autoStart: !0 }, page_view_event: { enabled: !0, autoStart: !0 }, page_view_timing: { enabled: !0, harvestTimeSeconds: 30, long_task: !1, autoStart: !0 }, session_trace: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, harvest: { tooManyRequestsDelay: 60 }, session_replay: { autoStart: !0, enabled: !1, harvestTimeSeconds: 60, sampling_rate: 50, error_sampling_rate: 50, collect_fonts: !1, inline_images: !1, inline_stylesheet: !0, mask_all_inputs: !0, get mask_text_selector() { return e.mask_selector; }, set mask_text_selector(t) { u(t) ? (e.mask_selector = t + ',[data-nr-mask]') : null === t ? (e.mask_selector = t) : (0, l.Z)('An invalid session_replay.mask_selector was provided and will not be used', 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) { u(t) ? (e.block_selector += ','.concat(t)) : '' !== t && (0, l.Z)('An invalid session_replay.block_selector was provided and will not be used', 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, l.Z)('An invalid session_replay.mask_input_option was provided and will not be used', t); }, }, spa: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, }; }, h = {}, p = 'All configuration objects require an agent identifier!'; function g(e) { if (!e) throw new Error(p); if (!h[e]) throw new Error('Configuration for '.concat(e, ' was never set')); return h[e]; } function m(e, t) { if (!e) throw new Error(p); (h[e] = (0, i.D)(t, f())), (0, n.Qy)(e, h[e], 'config'); } function v(e, t) { if (!e) throw new Error(p); var r = g(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; } const b = { accountID: void 0, trustKey: void 0, agentID: void 0, licenseKey: void 0, applicationID: void 0, xpid: void 0, }, y = {}; function A(e) { if (!e) throw new Error('All loader-config objects require an agent identifier!'); if (!y[e]) throw new Error('LoaderConfig for '.concat(e, ' was never set')); return y[e]; } function w(e, t) { if (!e) throw new Error('All loader-config objects require an agent identifier!'); (y[e] = (0, i.D)(t, b)), (0, n.Qy)(e, y[e], 'loader_config'); } const x = (0, n.mF)().o; var E = r(385), _ = r(6818); const T = { buildEnv: _.Re, customTransaction: void 0, disabled: !1, distMethod: _.gF, isolatedBacklog: !1, loaderType: void 0, maxBytes: 3e4, offset: Math.floor( E._A?.performance?.timeOrigin || E._A?.performance?.timing?.navigationStart || Date.now(), ), onerror: void 0, origin: '' + E._A.location, ptid: void 0, releaseIds: {}, session: void 0, xhrWrappable: 'function' == typeof E._A.XMLHttpRequest?.prototype?.addEventListener, version: _.q4, denyList: void 0, }, S = {}; function D(e) { if (!e) throw new Error('All runtime objects require an agent identifier!'); if (!S[e]) throw new Error('Runtime for '.concat(e, ' was never set')); return S[e]; } function j(e, t) { if (!e) throw new Error('All runtime objects require an agent identifier!'); (S[e] = (0, i.D)(t, T)), (0, n.Qy)(e, S[e], 'runtime'); } function N(e) { return (function (e) { try { const t = s(e); return !!t.licenseKey && !!t.errorBeacon && !!t.applicationID; } catch (e) { return !1; } })(e); } }, 9567: (e, t, r) => { r.d(t, { D: () => i }); var n = r(50); function i(e, t) { try { if (!e || 'object' != typeof e) return (0, n.Z)('Setting a Configurable requires an object as input'); if (!t || 'object' != typeof t) return (0, n.Z)('Setting a Configurable requires a model to set its initial properties'); 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 { 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.Z)('An error occurred while setting a property of a Configurable', e); } return r; } catch (e) { (0, n.Z)('An error occured while setting a Configurable', e); } } }, 6818: (e, t, r) => { r.d(t, { Re: () => i, gF: () => o, lF: () => a, q4: () => n }); const n = '1.246.1', i = 'PROD', o = 'CDN', a = '2.0.0-alpha.11'; }, 385: (e, t, r) => { r.d(t, { FN: () => s, IF: () => d, Nk: () => f, Tt: () => c, _A: () => o, cv: () => h, iS: () => a, il: () => n, ux: () => u, v6: () => i, w1: () => l, }); const n = 'undefined' != typeof window && !!window.document, i = 'undefined' != typeof WorkerGlobalScope && (('undefined' != typeof self && self instanceof WorkerGlobalScope && self.navigator instanceof WorkerNavigator) || ('undefined' != typeof globalThis && globalThis instanceof WorkerGlobalScope && globalThis.navigator instanceof WorkerNavigator)), o = n ? window : 'undefined' != typeof WorkerGlobalScope && (('undefined' != typeof self && self instanceof WorkerGlobalScope && self) || ('undefined' != typeof globalThis && globalThis instanceof WorkerGlobalScope && globalThis)), a = Boolean('hidden' === o?.document?.visibilityState), s = '' + o?.location, c = /iPad|iPhone|iPod/.test(o.navigator?.userAgent), u = c && 'undefined' == typeof SharedWorker, d = (() => { const e = o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/); return Array.isArray(e) && e.length >= 2 ? +e[1] : 0; })(), l = Boolean(n && window.document.documentMode), f = !!o.navigator?.sendBeacon, h = Math.floor(o?.performance?.timeOrigin || o?.performance?.timing?.navigationStart || Date.now()); }, 1117: (e, t, r) => { r.d(t, { w: () => o }); var n = r(50); const i = { agentIdentifier: '', ee: void 0 }; class o { constructor(e) { try { if ('object' != typeof e) return (0, n.Z)('shared context requires an object as input'); (this.sharedContext = {}), Object.assign(this.sharedContext, i), Object.entries(e).forEach(e => { let [t, r] = e; Object.keys(i).includes(t) && (this.sharedContext[t] = r); }); } catch (e) { (0, n.Z)('An error occured while setting SharedContext', e); } } } }, 8e3: (e, t, r) => { r.d(t, { L: () => d, R: () => c }); var n = r(8325), i = r(1284), o = r(4322), a = r(3325); const s = {}; function c(e, t) { const r = { staged: !1, priority: a.p[t] || 0 }; u(e), s[e].get(t) || s[e].set(t, r); } function u(e) { e && (s[e] || (s[e] = new Map())); } function d() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : '', t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 'feature'; if ((u(e), !e || !s[e].get(t))) return a(t); s[e].get(t).staged = !0; const r = [...s[e]]; function a(t) { const r = e ? n.ee.get(e) : n.ee, a = o.X.handlers; if (r.backlog && a) { var s = r.backlog[t], c = a[t]; if (c) { for (var u = 0; s && u < s.length; ++u) l(s[u], c); (0, i.D)(c, function (e, t) { (0, i.D)(t, function (t, r) { r[0].on(e, r[1]); }); }); } delete a[t], (r.backlog[t] = null), r.emit('drain-' + t, []); } } r.every(e => { let [t, r] = e; return r.staged; }) && (r.sort((e, t) => e[1].priority - t[1].priority), r.forEach(t => { let [r] = t; s[e].delete(r), a(r); })); } function l(e, t) { var r = e[1]; (0, i.D)(t[r], function (t, r) { var n = e[0]; if (r[0] === n) { var i = r[1], o = e[3], a = e[2]; i.apply(o, a); } }); } }, 8325: (e, t, r) => { r.d(t, { A: () => c, ee: () => u }); var n = r(8632), i = r(2210), o = r(234); class a { constructor(e) { this.contextId = e; } } var s = r(3117); const c = 'nr@context:'.concat(s.a), u = (function e(t, r) { var n = {}, s = {}, d = {}, f = !1; try { f = 16 === r.length && (0, o.OP)(r).isolatedBacklog; } catch (e) {} var h = { on: g, addEventListener: g, 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 = p(n), c = m(e), d = c.length, l = 0; l < d; l++) c[l].apply(a, r); var f = b()[s[e]]; f && f.push([h, e, r, a]); return a; }, get: v, listeners: m, context: p, buffer: function (e, t) { const r = b(); if (((t = t || 'feature'), h.aborted)) return; Object.entries(e || {}).forEach(e => { let [n, i] = e; (s[i] = t), t in r || (r[t] = []); }); }, abort: l, aborted: !1, isBuffering: function (e) { return !!b()[s[e]]; }, debugId: r, backlog: f ? {} : t && 'object' == typeof t.backlog ? t.backlog : {}, }; return h; function p(e) { return e && e instanceof a ? e : e ? (0, i.X)(e, c, () => new a(c)) : new a(c); } function g(e, t) { n[e] = m(e).concat(t); } function m(e) { return n[e] || []; } function v(t) { return (d[t] = d[t] || e(h, t)); } function b() { return h.backlog; } })(void 0, 'globalEE'), d = (0, n.fP)(); function l() { (u.aborted = !0), (u.backlog = {}); } d.ee || (d.ee = u); }, 5546: (e, t, r) => { r.d(t, { E: () => n, p: () => i }); var n = r(8325).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)); } }, 4322: (e, t, r) => { r.d(t, { X: () => o }); var n = r(5546); o.on = a; var i = (o.handlers = {}); function o(e, t, r, o) { a(o || n.E, i, e, t, r); } function a(e, t, r, i, o) { o || (o = 'feature'), e || (e = n.E); var a = (t[o] = t[o] || {}); (a[r] = a[r] || []).push([e, i]); } }, 3239: (e, t, r) => { r.d(t, { bP: () => s, iz: () => c, m$: () => a }); var n = r(385); let i = !1, o = !1; try { const e = { get passive() { return (i = !0), !1; }, get signal() { return (o = !0), !1; }, }; n._A.addEventListener('test', null, e), n._A.removeEventListener('test', null, e); } catch (e) {} function a(e, t) { return i || o ? { capture: !!e, passive: i, signal: t } : !!e; } function s(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = arguments.length > 3 ? arguments[3] : void 0; window.addEventListener(e, t, a(r, n)); } function c(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = arguments.length > 3 ? arguments[3] : void 0; document.addEventListener(e, t, a(r, n)); } }, 3117: (e, t, r) => { r.d(t, { a: () => n }); const n = (0, r(4402).Rl)(); }, 4402: (e, t, r) => { r.d(t, { Ht: () => u, M: () => c, Rl: () => a, ky: () => s }); var n = r(385); 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._A?.crypto || n._A?.msCrypto; let t, r = 0; return ( e && e.getRandomValues && (t = e.getRandomValues(new Uint8Array(31))), 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._A?.crypto || n._A?.msCrypto; let r, i = 0; t && t.getRandomValues && (r = t.getRandomValues(new Uint8Array(31))); 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); } }, 7056: (e, t, r) => { r.d(t, { Bq: () => n, Hb: () => o, oD: () => i }); const n = 'NRBA', i = 144e5, o = 18e5; }, 7894: (e, t, r) => { function n() { return Math.round(performance.now()); } r.d(t, { z: () => n }); }, 7243: (e, t, r) => { r.d(t, { e: () => i }); var n = r(385); 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._A?.location?.protocol && t.host === n._A?.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 {}; } } }, 50: (e, t, r) => { function n(e, t) { 'function' == typeof console.warn && (console.warn('New Relic: '.concat(e)), t && console.warn(t)); } r.d(t, { Z: () => n }); }, 2587: (e, t, r) => { r.d(t, { N: () => c, T: () => u }); var n = r(8325), i = r(5546), o = r(3325); const a = { stn: [o.D.sessionTrace], err: [o.D.jserrors, o.D.metrics], ins: [o.D.pageAction], spa: [o.D.spa], sr: [o.D.sessionReplay, o.D.sessionTrace], }, s = new Set(); function c(e, t) { const r = n.ee.get(t); e && 'object' == typeof e && (s.has(t) || Object.entries(e).forEach(e => { let [t, n] = e; a[t] ? a[t].forEach(e => { n ? (0, i.p)('feat-' + t, [], void 0, e, r) : (0, i.p)('block-' + t, [], void 0, e, r), (0, i.p)('rumresp-' + t, [Boolean(n)], void 0, e, r); }) : n && (0, i.p)('feat-' + t, [], void 0, void 0, r), (u[t] = Boolean(n)); }), Object.keys(a).forEach(e => { void 0 === u[e] && (a[e]?.forEach(t => (0, i.p)('rumresp-' + e, [!1], void 0, t, r)), (u[e] = !1)); }), s.add(t)); } const u = {}; }, 2210: (e, t, r) => { r.d(t, { X: () => 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; } }, 1284: (e, t, r) => { r.d(t, { D: () => n }); const n = (e, t) => Object.entries(e || {}).map(e => { let [r, n] = e; return t(r, n); }); }, 4351: (e, t, r) => { r.d(t, { P: () => o }); var n = r(8325); 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) {} } } }, 3960: (e, t, r) => { r.d(t, { K: () => a, b: () => o }); var n = r(3239); function i() { return 'undefined' == typeof document || 'complete' === document.readyState; } function o(e, t) { if (i()) return e(); (0, n.bP)('load', e, t); } function a(e) { if (i()) return e(); (0, n.iz)('DOMContentLoaded', e); } }, 8632: (e, t, r) => { r.d(t, { EZ: () => u, Qy: () => c, ce: () => o, fP: () => a, gG: () => d, mF: () => s }); var n = r(7894), i = r(385); const o = { beacon: 'bam.nr-data.net', errorBeacon: 'bam.nr-data.net' }; function a() { return i._A.NREUM || (i._A.NREUM = {}), void 0 === i._A.newrelic && (i._A.newrelic = i._A.NREUM), i._A.NREUM; } function s() { let e = a(); return ( e.o || (e.o = { ST: i._A.setTimeout, SI: i._A.setImmediate, CT: i._A.clearTimeout, XHR: i._A.XMLHttpRequest, REQ: i._A.Request, EV: i._A.Event, PR: i._A.Promise, MO: i._A.MutationObserver, FETCH: i._A.fetch, }), e ); } function c(e, t, r) { let i = a(); const o = i.initializedAgents || {}, s = o[e] || {}; return ( Object.keys(s).length || (s.initializedAt = { ms: (0, n.z)(), date: new Date() }), (i.initializedAgents = { ...o, [e]: { ...s, [r]: t } }), i ); } function u(e, t) { a()[e] = t; } function d() { 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() ); } }, 7956: (e, t, r) => { r.d(t, { N: () => i }); var n = r(3239); function i(e) { let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], r = arguments.length > 2 ? arguments[2] : void 0, i = arguments.length > 3 ? arguments[3] : void 0; (0, n.iz)( 'visibilitychange', function () { if (t) return void ('hidden' === document.visibilityState && e()); e(document.visibilityState); }, r, i, ); } }, 1214: (e, t, r) => { r.d(t, { em: () => b, u5: () => D, QU: () => C, _L: () => I, Gm: () => H, Lg: () => L, BV: () => G, Kf: () => K, }); var n = r(8325), i = r(3117); const o = 'nr@original:'.concat(i.a); 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]); } var l = r(2210), f = r(385); const h = {}, p = f._A.XMLHttpRequest, g = 'addEventListener', m = 'removeEventListener', v = 'nr@wrapped:'.concat(n.A); function b(e) { var t = (function (e) { return (e || n.ee).get('events'); })(e); if (h[t.debugId]++) return t; h[t.debugId] = 1; var r = c(t, !0); function i(e) { r.inPlace(e, [g, m], '-', o); } function o(e, t) { return e[1]; } return ( 'getPrototypeOf' in Object && (f.il && y(document, i), y(f._A, i), y(p.prototype, i)), t.on(g + '-start', function (e, t) { var n = e[1]; if (null !== n && ('function' == typeof n || 'object' == typeof n)) { var i = (0, l.X)(n, v, 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(m + '-start', function (e) { e[1] = this.wrapped || e[1]; }), t ); } function y(e, t) { let r = e; for (; 'object' == typeof r && !Object.prototype.hasOwnProperty.call(r, g); ) r = Object.getPrototypeOf(r); for (var n = arguments.length, i = new Array(n > 2 ? n - 2 : 0), o = 2; o < n; o++) i[o - 2] = arguments[o]; r && t(r, ...i); } var A = 'fetch-', w = A + 'body-', x = ['arrayBuffer', 'blob', 'json', 'text', 'formData'], E = f._A.Request, _ = f._A.Response, T = 'prototype'; const S = {}; function D(e) { const t = (function (e) { return (e || n.ee).get('fetch'); })(e); if (!(E && _ && f._A.fetch)) return t; if (S[t.debugId]++) return t; function r(e, r, i) { var o = e[r]; 'function' == typeof o && (e[r] = function () { var e, r = [...arguments], a = {}; t.emit(i + 'before-start', [r], a), a[n.A] && a[n.A].dt && (e = a[n.A].dt); var s = o.apply(this, r); return ( t.emit(i + 'start', [r, e], s), s.then( function (e) { return t.emit(i + 'end', [null, e], s), e; }, function (e) { throw (t.emit(i + 'end', [e], s), e); }, ) ); }); } return ( (S[t.debugId] = 1), x.forEach(e => { r(E[T], e, w), r(_[T], e, w); }), r(f._A, 'fetch', A), t.on(A + 'end', function (e, r) { var n = this; if (r) { var i = r.headers.get('content-length'); null !== i && (n.rxSize = i), t.emit(A + 'done', [null, r], n); } else t.emit(A + 'done', [e], n); }), t ); } const j = {}, N = ['pushState', 'replaceState']; function C(e) { const t = (function (e) { return (e || n.ee).get('history'); })(e); return !f.il || j[t.debugId]++ || ((j[t.debugId] = 1), c(t).inPlace(window.history, N, '-')), t; } var O = r(3239); const P = {}, R = ['appendChild', 'insertBefore', 'replaceChild']; function I(e) { const t = (function (e) { return (e || n.ee).get('jsonp'); })(e); if (!f.il || P[t.debugId]) return t; P[t.debugId] = !0; var r = c(t), i = /[?&](?:callback|cb)=([^&#]+)/, o = /(.*)\.([^.]+)/, a = /^(\w+)(\.|$)(.*)$/; function s(e, t) { if (!e) return t; const r = e.match(a), n = r[1]; return s(r[3], t[n]); } return ( r.inPlace(Node.prototype, R, '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 n = ((a = e.src), (c = a.match(i)), c ? c[1] : null); var a, c; if (!n) return; var u = (function (e) { var t = e.match(o); if (t && t.length >= 3) return { key: t[2], parent: s(t[1], window) }; return { key: e, parent: window }; })(n); if ('function' != typeof u.parent[u.key]) return; var d = {}; function l() { t.emit('jsonp-end', [], d), e.removeEventListener('load', l, (0, O.m$)(!1)), e.removeEventListener('error', f, (0, O.m$)(!1)); } function f() { t.emit('jsonp-error', [], d), t.emit('jsonp-end', [], d), e.removeEventListener('load', l, (0, O.m$)(!1)), e.removeEventListener('error', f, (0, O.m$)(!1)); } r.inPlace(u.parent, [u.key], 'cb-', d), e.addEventListener('load', l, (0, O.m$)(!1)), e.addEventListener('error', f, (0, O.m$)(!1)), t.emit('new-jsonp', [e.src], d); })(e[0]); }), t ); } const k = {}; function H(e) { const t = (function (e) { return (e || n.ee).get('mutation'); })(e); if (!f.il || k[t.debugId]) return t; k[t.debugId] = !0; var r = c(t), i = f._A.MutationObserver; return ( i && ((window.MutationObserver = function (e) { return this instanceof i ? new i(r(e, 'fn-')) : i.apply(this, arguments); }), (MutationObserver.prototype = i.prototype)), t ); } const z = {}; function L(e) { const t = (function (e) { return (e || n.ee).get('promise'); })(e); if (z[t.debugId]) return t; z[t.debugId] = !0; var r = t.context, i = c(t), a = f._A.Promise; return ( a && (function () { function e(r) { var n = t.context(), o = i(r, 'executor-', n, null, !1); const s = Reflect.construct(a, [o], e); return ( (t.context(s).getCtx = function () { return n; }), s ); } (f._A.Promise = e), Object.defineProperty(e, 'name', { value: 'Promise' }), (e.toString = function () { return a.toString(); }), Object.setPrototypeOf(e, a), ['all', 'race'].forEach(function (r) { const n = a[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 = a[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 = a.prototype); const n = a.prototype.then; (a.prototype.then = function () { var e = this, o = r(e); o.promise = e; for (var a = arguments.length, s = new Array(a), c = 0; c < a; c++) s[c] = arguments[c]; (s[0] = i(s[0], 'cb-', o, null, !1)), (s[1] = i(s[1], 'cb-', o, null, !1)); const u = n.apply(this, s); return (o.nextPromise = u), t.emit('propagate', [e, !0], u, !1, !1), u; }), (a.prototype.then[o] = n), t.on('executor-start', function (e) { (e[0] = i(e[0], 'resolve-', this, null, !1)), (e[1] = i(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 M = {}, F = 'setTimeout', B = 'setInterval', U = 'clearTimeout', Z = '-start', V = '-', q = [F, 'setImmediate', B, U, 'clearImmediate']; function G(e) { const t = (function (e) { return (e || n.ee).get('timer'); })(e); if (M[t.debugId]++) return t; M[t.debugId] = 1; var r = c(t); return ( r.inPlace(f._A, q.slice(0, 2), F + V), r.inPlace(f._A, q.slice(2, 3), B + V), r.inPlace(f._A, q.slice(3), U + V), t.on(B + Z, function (e, t, n) { e[0] = r(e[0], 'fn-', null, n); }), t.on(F + Z, function (e, t, n) { (this.method = n), (this.timerDuration = isNaN(e[1]) ? 0 : +e[1]), (e[0] = r(e[0], 'fn-', this, n)); }), t ); } var W = r(50); const X = {}, Q = ['open', 'send']; function K(e) { var t = e || n.ee; const r = (function (e) { return (e || n.ee).get('xhr'); })(t); if (X[r.debugId]++) return r; (X[r.debugId] = 1), b(t); var i = c(r), o = f._A.XMLHttpRequest, a = f._A.MutationObserver, s = f._A.Promise, u = f._A.setInterval, d = 'readystatechange', l = ['onload', 'onerror', 'onabort', 'onloadstart', 'onloadend', 'onprogress', 'ontimeout'], h = [], p = (f._A.XMLHttpRequest = function (e) { const t = new o(e), n = r.context(t); try { r.emit('new-xhr', [t], n), t.addEventListener( d, ((a = n), function () { var e = this; e.readyState > 3 && !a.resolved && ((a.resolved = !0), r.emit('xhr-resolved', [], e)), i.inPlace(e, l, 'fn-', w); }), (0, O.m$)(!1), ); } catch (e) { (0, W.Z)('An error occurred while intercepting XHR', e); try { r.emit('internal-error', [e]); } catch (e) {} } var a; return t; }); function g(e, t) { i.inPlace(t, ['onreadystatechange'], 'fn-', w); } if ( ((function (e, t) { for (var r in e) t[r] = e[r]; })(o, p), (p.prototype = o.prototype), i.inPlace(p.prototype, Q, '-xhr-', w), r.on('send-xhr-start', function (e, t) { g(e, t), (function (e) { h.push(e), a && (m ? m.then(A) : u ? u(A) : ((v = -v), (y.data = v))); })(t); }), r.on('open-xhr-start', g), a) ) { var m = s && s.resolve(); if (!u && !s) { var v = 1, y = document.createTextNode(v); new a(A).observe(y, { characterData: !0 }); } } else t.on('fn-end', function (e) { (e[0] && e[0].type === d) || A(); }); function A() { for (var e = 0; e < h.length; e++) g(0, h[e]); h.length && (h = []); } function w(e, t) { return t; } return r; } }, 7825: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.ajax; }, 6660: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.jserrors; }, 3081: (e, t, r) => { r.d(t, { gF: () => o, mY: () => i, t9: () => n, vz: () => s, xS: () => a }); const n = r(3325).D.metrics, i = 'sm', o = 'cm', a = 'storeSupportabilityMetrics', s = 'storeEventMetrics'; }, 4649: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.pageAction; }, 7633: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.pageViewEvent; }, 9251: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.pageViewTiming; }, 7144: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.sessionReplay; }, 3614: (e, t, r) => { r.d(t, { BST_RESOURCE: () => i, END: () => s, FEATURE_NAME: () => n, FN_END: () => u, FN_START: () => c, PUSH_STATE: () => d, RESOURCE: () => o, START: () => a, }); const n = r(3325).D.sessionTrace, i = 'bstResource', o = 'resource', a = '-start', s = '-end', c = 'fn' + a, u = 'fn' + s, d = 'pushState'; }, 7836: (e, t, r) => { r.d(t, { BODY: () => x, CB_END: () => E, CB_START: () => u, END: () => w, FEATURE_NAME: () => i, FETCH: () => T, FETCH_BODY: () => v, FETCH_DONE: () => m, FETCH_START: () => g, FN_END: () => c, FN_START: () => s, INTERACTION: () => f, INTERACTION_API: () => d, INTERACTION_EVENTS: () => o, JSONP_END: () => b, JSONP_NODE: () => p, JS_TIME: () => _, MAX_TIMER_BUDGET: () => a, REMAINING: () => l, SPA_NODE: () => h, START: () => A, originalSetTimeout: () => y, }); var n = r(234); const i = r(3325).D.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 = n.Yu.ST, A = '-start', w = '-end', x = '-body', E = 'cb' + w, _ = 'jsTime', T = 'fetch'; }, 5938: (e, t, r) => { r.d(t, { W: () => i }); var n = r(8325); class i { constructor(e, t, r) { (this.agentIdentifier = e), (this.aggregator = t), (this.ee = n.ee.get(e)), (this.featureName = r), (this.blocked = !1); } } }, 7530: (e, t, r) => { r.d(t, { j: () => b }); var n = r(3325), i = r(234), o = r(5546), a = r(8325), s = r(7894), c = r(8e3), u = r(3960), d = r(385), l = r(50), f = r(3081), h = r(8632); function p() { const e = (0, h.gG)(); [ 'setErrorHandler', 'finished', 'addToTrace', 'addRelease', 'addPageAction', 'setCurrentRouteName', 'setPageViewName', 'setCustomAttribute', 'interaction', 'noticeError', 'setUserId', 'setApplicationVersion', 'start', ].forEach(t => { e[t] = function () { for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++) n[i] = arguments[i]; return (function (t) { for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i]; let o = []; return ( Object.values(e.initializedAgents).forEach(e => { e.exposed && e.api[t] && o.push(e.api[t](...n)); }), o.length > 1 ? o : o[0] ); })(t, ...n); }; }); } var g = r(2587); const m = e => { const t = e.startsWith('http'); (e += '/'), (r.p = t ? e : 'https://' + e); }; let v = !1; function b(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, b = arguments.length > 2 ? arguments[2] : void 0, y = arguments.length > 3 ? arguments[3] : void 0, { init: A, info: w, loader_config: x, runtime: E = { loaderType: b }, exposed: _ = !0 } = t; const T = (0, h.gG)(); w || ((A = T.init), (w = T.info), (x = T.loader_config)), (0, i.Dg)(e, A || {}), (0, i.GE)(e, x || {}), (w.jsAttributes ??= {}), d.v6 && (w.jsAttributes.isWorker = !0), (0, i.CX)(e, w); const S = (0, i.P_)(e), D = [w.beacon, w.errorBeacon]; v || ((v = !0), S.proxy.assets && (m(S.proxy.assets), D.push(S.proxy.assets)), S.proxy.beacon && D.push(S.proxy.beacon)), (E.denyList = [...(S.ajax.deny_list || []), ...(S.ajax.block_internal ? D : [])]), (0, i.sU)(e, E), p(); const j = (function (e, t) { t || (0, c.R)(e, 'api'); const h = {}; var p = a.ee.get(e), g = p.get('tracer'), m = 'api-', v = m + 'ixn-'; function b(t, r, n, o) { const a = (0, i.C5)(e); return ( null === r ? delete a.jsAttributes[t] : (0, i.CX)(e, { ...a, jsAttributes: { ...a.jsAttributes, [t]: r } }), w(m, n, !0, o || null === r ? 'session' : void 0)(t, r) ); } function y() {} ['setErrorHandler', 'finished', 'addToTrace', 'addRelease'].forEach(e => { h[e] = w(m, e, !0, 'api'); }), (h.addPageAction = w(m, 'addPageAction', !0, n.D.pageAction)), (h.setCurrentRouteName = w(m, 'routeName', !0, n.D.spa)), (h.setPageViewName = function (t, r) { if ('string' == typeof t) return ( '/' !== t.charAt(0) && (t = '/' + t), ((0, i.OP)(e).customTransaction = (r || 'http://custom.transaction') + t), w(m, 'setPageViewName', !0)() ); }), (h.setCustomAttribute = function (e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; if ('string' == typeof e) { if (['string', 'number', 'boolean'].includes(typeof t) || null === t) return b(e, t, 'setCustomAttribute', r); (0, l.Z)( 'Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <'.concat( typeof t, '> was provided.', ), ); } else (0, l.Z)( 'Failed to execute setCustomAttribute.\nName must be a string type, but a type of <'.concat( typeof e, '> was provided.', ), ); }), (h.setUserId = function (e) { if ('string' == typeof e || null === e) return b('enduser.id', e, 'setUserId', !0); (0, l.Z)( 'Failed to execute setUserId.\nNon-null value must be a string type, but a type of <'.concat( typeof e, '> was provided.', ), ); }), (h.setApplicationVersion = function (e) { if ('string' == typeof e || null === e) return b('application.version', e, 'setApplicationVersion', !1); (0, l.Z)( 'Failed to execute setApplicationVersion. Expected <String | null>, but got <'.concat(typeof e, '>.'), ); }), (h.start = e => { try { const t = e ? 'defined' : 'undefined'; (0, o.p)(f.xS, ['API/start/'.concat(t, '/called')], void 0, n.D.metrics, p); const r = Object.values(n.D); if (void 0 === e) e = r; else { if ((e = Array.isArray(e) && e.length ? e : [e]).some(e => !r.includes(e))) return (0, l.Z)('Invalid feature name supplied. Acceptable feature names are: '.concat(r)); e.includes(n.D.pageViewEvent) || e.push(n.D.pageViewEvent); } e.forEach(e => { p.emit(''.concat(e, '-opt-in')); }); } catch (e) { (0, l.Z)('An unexpected issue occurred', e); } }), (h.interaction = function () { return new y().get(); }); var A = (y.prototype = { createTracer: function (e, t) { var r = {}, i = this, a = 'function' == typeof t; return ( (0, o.p)(v + 'tracer', [(0, s.z)(), e, r], i, n.D.spa, p), function () { if ((g.emit((a ? '' : 'no-') + 'fn-start', [(0, s.z)(), i, a], r), a)) try { return t.apply(this, arguments); } catch (e) { throw (g.emit('fn-err', [arguments, this, e], r), e); } finally { g.emit('fn-end', [(0, s.z)()], r); } } ); }, }); function w(e, t, r, i) { return function () { return ( (0, o.p)(f.xS, ['API/' + t + '/called'], void 0, n.D.metrics, p), i && (0, o.p)(e + t, [(0, s.z)(), ...arguments], r ? null : this, i, p), r ? void 0 : this ); }; } function x() { r.e(111) .then(r.bind(r, 7438)) .then(t => { let { setAPI: r } = t; r(e), (0, c.L)(e, 'api'); }) .catch(() => (0, l.Z)('Downloading runtime APIs failed...')); } return ( ['actionText', 'setName', 'setAttribute', 'save', 'ignore', 'onEnd', 'getContext', 'end', 'get'].forEach( e => { A[e] = w(v, e, void 0, n.D.spa); }, ), (h.noticeError = function (e, t) { 'string' == typeof e && (e = new Error(e)), (0, o.p)(f.xS, ['API/noticeError/called'], void 0, n.D.metrics, p), (0, o.p)('err', [e, (0, s.z)(), !1, t], void 0, n.D.jserrors, p); }), d.il ? (0, u.b)(() => x(), !0) : x(), h ); })(e, y); return (0, h.Qy)(e, j, 'api'), (0, h.Qy)(e, _, 'exposed'), (0, h.EZ)('activatedFeatures', g.T), j; } }, 3325: (e, t, r) => { r.d(t, { D: () => n, p: () => i }); const n = { ajax: 'ajax', jserrors: 'jserrors', metrics: 'metrics', pageAction: 'page_action', pageViewEvent: 'page_view_event', pageViewTiming: 'page_view_timing', sessionReplay: 'session_replay', sessionTrace: 'session_trace', spa: 'spa', }, i = { [n.pageViewEvent]: 1, [n.pageViewTiming]: 2, [n.metrics]: 3, [n.jserrors]: 4, [n.ajax]: 5, [n.sessionTrace]: 6, [n.pageAction]: 7, [n.spa]: 8, [n.sessionReplay]: 9, }; }, }, 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 => ({ 111: 'nr-spa', 164: 'nr-spa-compressor', 433: 'nr-spa-recorder' }[e] + '-1.246.1.min.js')), (i.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), (e = {}), (t = 'NRBA-1.246.1.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; } } s || ((c = !0), ((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)), (e[r] = [n]); var f = (t, n) => { (s.onerror = s.onload = null), clearTimeout(h); var i = e[r]; if ((delete e[r], s.parentNode && s.parentNode.removeChild(s), i && i.forEach(e => e(n)), t)) return t(n); }, h = setTimeout(f.bind(null, void 0, { type: 'timeout', target: s }), 12e4); (s.onerror = f.bind(null, s.onerror)), (s.onload = f.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 = { 801: 0, 92: 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.246.1.PROD'] = self['webpackChunk:NRBA-1.246.1.PROD'] || []); r.forEach(t.bind(null, 0)), (r.push = t.bind(null, r.push.bind(r))); })(), (() => { var e = i(50); class t { addPageAction(t, r) { (0, e.Z)('Call to agent api addPageAction failed. The page action feature is not currently initialized.'); } setPageViewName(t, r) { (0, e.Z)('Call to agent api setPageViewName failed. The page view feature is not currently initialized.'); } setCustomAttribute(t, r, n) { (0, e.Z)('Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.'); } noticeError(t, r) { (0, e.Z)('Call to agent api noticeError failed. The js errors feature is not currently initialized.'); } setUserId(t) { (0, e.Z)('Call to agent api setUserId failed. The js errors feature is not currently initialized.'); } setApplicationVersion(t) { (0, e.Z)('Call to agent api setApplicationVersion failed. The agent is not currently initialized.'); } setErrorHandler(t) { (0, e.Z)('Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.'); } finished(t) { (0, e.Z)('Call to agent api finished failed. The page action feature is not currently initialized.'); } addRelease(t, r) { (0, e.Z)('Call to agent api addRelease failed. The js errors feature is not currently initialized.'); } start(t) { (0, e.Z)('Call to agent api addRelease failed. The agent is not currently initialized.'); } } var r = i(3325), n = i(234); const o = Object.values(r.D); function a(e) { const t = {}; return ( o.forEach(r => { t[r] = (function (e, t) { return !1 !== (0, n.Mt)(t, ''.concat(e, '.enabled')); })(r, e); }), t ); } var s = i(7530); var c = i(8e3), u = i(5938), d = i(3960), l = i(385); class f extends u.W { constructor(e, t, r) { let i = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; super(e, t, r), (this.auto = i), (this.abortHandler = void 0), (this.featAggregate = void 0), (this.onAggregateImported = void 0), !1 === (0, n.Mt)(this.agentIdentifier, ''.concat(this.featureName, '.autoStart')) && (this.auto = !1), this.auto && (0, c.R)(e, r); } importAggregator() { let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (this.featAggregate) return; if (!this.auto) return void this.ee.on(''.concat(this.featureName, '-opt-in'), () => { (0, c.R)(this.agentIdentifier, this.featureName), (this.auto = !0), this.importAggregator(); }); const r = l.il && !0 === (0, n.Mt)(this.agentIdentifier, 'privacy.cookies_enabled'); let o; this.onAggregateImported = new Promise(e => { o = e; }); const a = async () => { let n; try { if (r) { const { setupAgentSession: e } = await i.e(111).then(i.bind(i, 3228)); n = e(this.agentIdentifier); } } catch (t) { (0, e.Z)( 'A problem occurred when starting up session manager. This page will not start or extend any session.', t, ); } try { if (!this.shouldImportAgg(this.featureName, n)) return (0, c.L)(this.agentIdentifier, this.featureName), void o(!1); const { lazyFeatureLoader: e } = await i.e(111).then(i.bind(i, 8582)), { Aggregate: r } = await e(this.featureName, 'aggregate'); (this.featAggregate = new r(this.agentIdentifier, this.aggregator, t)), o(!0); } catch (t) { (0, e.Z)('Downloading and initializing '.concat(this.featureName, ' failed...'), t), this.abortHandler?.(), (0, c.L)(this.agentIdentifier, this.featureName), o(!1); } }; l.il ? (0, d.b)(() => a(), !0) : a(); } shouldImportAgg(e, t) { return ( e !== r.D.sessionReplay || (!!n.Yu.MO && !1 !== (0, n.Mt)(this.agentIdentifier, 'session_trace.enabled') && (!!t?.isNew || !!t?.state.sessionReplayMode)) ); } } var h = i(7633); class p extends f { static featureName = h.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, h.t, r), this.importAggregator(); } } var g = i(1117), m = i(1284); class v extends g.w { constructor(e) { super(e), (this.aggregatedData = {}); } store(e, t, r, n, i) { var o = this.getBucket(e, t, r, i); return ( (o.metrics = (function (e, t) { t || (t = { count: 0 }); return ( (t.count += 1), (0, m.D)(e, function (e, r) { t[e] = b(r, t[e]); }), t ); })(n, o.metrics)), o ); } merge(e, t, r, n, i) { var o = this.getBucket(e, t, n, i); if (o.metrics) { var a = o.metrics; (a.count += r.count), (0, m.D)(r, function (e, t) { if ('count' !== e) { var n = a[e], i = r[e]; i && !i.c ? (a[e] = b(i.t, n)) : (a[e] = (function (e, t) { if (!t) return e; t.c || (t = y(t.t)); return ( (t.min = Math.min(e.min, t.min)), (t.max = Math.max(e.max, t.max)), (t.t += e.t), (t.sos += e.sos), (t.c += e.c), t ); })(i, a[e])); } }); } else o.metrics = r; } storeMetric(e, t, r, n) { var i = this.getBucket(e, t, r); return (i.stats = b(n, i.stats)), i; } getBucket(e, t, r, n) { this.aggregatedData[e] || (this.aggregatedData[e] = {}); var i = this.aggregatedData[e][t]; return i || ((i = this.aggregatedData[e][t] = { params: r || {} }), n && (i.custom = n)), i; } get(e, t) { return t ? this.aggregatedData[e] && this.aggregatedData[e][t] : this.aggregatedData[e]; } take(e) { for (var t = {}, r = '', n = !1, i = 0; i < e.length; i++) (t[(r = e[i])] = A(this.aggregatedData[r])), t[r].length && (n = !0), delete this.aggregatedData[r]; return n ? t : null; } } function b(e, t) { return null == e ? (function (e) { e ? e.c++ : (e = { c: 1 }); return e; })(t) : t ? (t.c || (t = y(t.t)), (t.c += 1), (t.t += e), (t.sos += e * e), e > t.max && (t.max = e), e < t.min && (t.min = e), t) : { t: e }; } function y(e) { return { t: e, min: e, max: e, sos: e * e, c: 1 }; } function A(e) { return 'object' != typeof e ? [] : (0, m.D)(e, w); } function w(e, t) { return t; } var x = i(8632), E = i(4402), _ = i(4351); var T = i(5546), S = i(7956), D = i(3239), j = i(7894), N = i(9251); class C extends f { static featureName = N.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, N.t, r), l.il && ((0, S.N)(() => (0, T.p)('docHidden', [(0, j.z)()], void 0, N.t, this.ee), !0), (0, D.bP)('pagehide', () => (0, T.p)('winPagehide', [(0, j.z)()], void 0, N.t, this.ee)), this.importAggregator()); } } var O = i(3081); class P extends f { static featureName = O.t9; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, O.t9, r), this.importAggregator(); } } var R = i(6660); class I { constructor(e, t, r, n) { (this.name = 'UncaughtError'), (this.message = e), (this.sourceURL = t), (this.line = r), (this.column = n); } } class k extends f { static featureName = R.t; #e = new Set(); constructor(e, t) { let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, R.t, n); try { this.removeOnAbort = new AbortController(); } catch (e) {} this.ee.on('fn-err', (e, t, n) => { this.abortHandler && !this.#e.has(n) && (this.#e.add(n), (0, T.p)('err', [this.#t(n), (0, j.z)()], void 0, r.D.jserrors, this.ee)); }), this.ee.on('internal-error', e => { this.abortHandler && (0, T.p)('ierr', [this.#t(e), (0, j.z)(), !0], void 0, r.D.jserrors, this.ee); }), l._A.addEventListener( 'unhandledrejection', e => { this.abortHandler && (0, T.p)( 'err', [this.#r(e), (0, j.z)(), !1, { unhandledPromiseRejection: 1 }], void 0, r.D.jserrors, this.ee, ); }, (0, D.m$)(!1, this.removeOnAbort?.signal), ), l._A.addEventListener( 'error', e => { this.abortHandler && (this.#e.has(e.error) ? this.#e.delete(e.error) : (0, T.p)('err', [this.#n(e), (0, j.z)()], void 0, r.D.jserrors, this.ee)); }, (0, D.m$)(!1, this.removeOnAbort?.signal), ), (this.abortHandler = this.#i), this.importAggregator(); } #i() { this.removeOnAbort?.abort(), this.#e.clear(), (this.abortHandler = void 0); } #t(e) { return e instanceof Error ? e : void 0 !== e?.message ? new I(e.message, e.filename || e.sourceURL, e.lineno || e.line, e.colno || e.col) : new I('string' == typeof e ? e : (0, _.P)(e)); } #r(e) { let t = 'Unhandled Promise Rejection: '; if (e?.reason instanceof Error) try { return (e.reason.message = t + e.reason.message), e.reason; } catch (t) { return e.reason; } if (void 0 === e.reason) return new I(t); const r = this.#t(e.reason); return (r.message = t + r.message), r; } #n(e) { return e.error instanceof Error ? e.error : new I(e.message, e.filename, e.lineno, e.colno); } } var H = i(2210); let z = 1; const L = 'nr@id'; function M(e) { const t = typeof e; return !e || ('object' !== t && 'function' !== t) ? -1 : e === l._A ? 0 : (0, H.X)(e, L, function () { return z++; }); } function F(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, _.P)(e).length; } catch (e) { return; } } } var B = i(1214), U = i(7243); class Z { constructor(e) { this.agentIdentifier = e; } generateTracePayload(e) { if (!this.shouldGenerateTrace(e)) return null; var t = (0, n.DL)(this.agentIdentifier); if (!t) return null; var r = (t.accountID || '').toString() || null, i = (t.agentID || '').toString() || null, o = (t.trustKey || '').toString() || null; if (!r || !i) return null; var a = (0, E.M)(), s = (0, E.Ht)(), 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, r, i, o))), ((e.sameOrigin && !this.excludeNewrelicHeader()) || (!e.sameOrigin && this.isAllowedOrigin(e) && this.useNewrelicHeaderForCors())) && (u.newrelicHeader = this.generateTraceHeader(a, s, c, r, 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 l._A?.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, _.P)(a)); } shouldGenerateTrace(e) { return this.isDtEnabled() && this.isAllowedOrigin(e); } isAllowedOrigin(e) { var t = !1, r = {}; if ( ((0, n.Mt)(this.agentIdentifier, 'distributed_tracing') && (r = (0, n.P_)(this.agentIdentifier).distributed_tracing), e.sameOrigin) ) t = !0; else if (r.allowed_origins instanceof Array) for (var i = 0; i < r.allowed_origins.length; i++) { var o = (0, U.e)(r.allowed_origins[i]); if (e.hostname === o.hostname && e.protocol === o.protocol && e.port === o.port) { t = !0; break; } } return t; } isDtEnabled() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !!e.enabled; } excludeNewrelicHeader() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !!e.exclude_newrelic_header; } useNewrelicHeaderForCors() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !1 !== e.cors_use_newrelic_header; } useTraceContextHeadersForCors() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !!e.cors_use_tracecontext_headers; } } var V = i(7825), q = ['load', 'error', 'abort', 'timeout'], G = q.length, W = n.Yu.REQ, X = n.Yu.XHR; class Q extends f { static featureName = V.t; constructor(e, t) { let i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; if ((super(e, t, V.t, i), (0, n.OP)(e).xhrWrappable)) { (this.dt = new Z(e)), (this.handler = (e, t, r, n) => (0, T.p)(e, t, r, n, this.ee)); try { const e = { xmlhttprequest: 'xhr', fetch: 'fetch', beacon: 'beacon' }; l._A?.performance?.getEntriesByType('resource').forEach(t => { if (t.initiatorType in e && 0 !== t.responseStatus) { const n = { status: t.responseStatus }, i = { rxSize: t.transferSize, duration: Math.floor(t.duration), cbTime: 0 }; K(n, t.name), this.handler('xhr', [n, i, t.startTime, t.responseEnd, e[t.initiatorType]], void 0, r.D.ajax); } }); } catch (e) {} (0, B.u5)(this.ee), (0, B.Kf)(this.ee), (function (e, t, i, o) { function a(e) { var t = this; (t.totalCbs = 0), (t.called = 0), (t.cbTime = 0), (t.end = x), (t.ended = !1), (t.xhrGuids = {}), (t.lastSize = null), (t.loadCaptureCalled = !1), (t.params = this.params || {}), (t.metrics = this.metrics || {}), e.addEventListener( 'load', function (r) { E(t, e); }, (0, D.m$)(!1), ), l.IF || e.addEventListener( 'progress', function (e) { t.lastSize = e.loaded; }, (0, D.m$)(!1), ); } function s(e) { (this.params = { method: e[0] }), K(this, e[1]), (this.metrics = {}); } function c(t, r) { var i = (0, n.DL)(e); i.xpid && this.sameOrigin && r.setRequestHeader('X-NewRelic-ID', i.xpid); var a = o.generateTracePayload(this.parsedOrigin); if (a) { var s = !1; a.newrelicHeader && (r.setRequestHeader('newrelic', a.newrelicHeader), (s = !0)), a.traceContextParentHeader && (r.setRequestHeader('traceparent', a.traceContextParentHeader), a.traceContextStateHeader && r.setRequestHeader('tracestate', a.traceContextStateHeader), (s = !0)), s && (this.dt = a); } } function u(e, r) { var n = this.metrics, i = e[0], o = this; if (n && i) { var a = F(i); a && (n.txSize = a); } (this.startTime = (0, j.z)()), (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 < G; s++) r.addEventListener(q[s], this.listener, (0, D.m$)(!1)); } function d(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 f(e, t) { var r = '' + M(e) + !!t; this.xhrGuids && !this.xhrGuids[r] && ((this.xhrGuids[r] = !0), (this.totalCbs += 1)); } function h(e, t) { var r = '' + M(e) + !!t; this.xhrGuids && this.xhrGuids[r] && (delete this.xhrGuids[r], (this.totalCbs -= 1)); } function p() { this.endTime = (0, j.z)(); } function g(e, r) { r instanceof X && 'load' === e[0] && t.emit('xhr-load-added', [e[1], e[2]], r); } function m(e, r) { r instanceof X && 'load' === e[0] && t.emit('xhr-load-removed', [e[1], e[2]], r); } function v(e, t, r) { t instanceof X && ('onload' === r && (this.onload = !0), ('load' === (e[0] && e[0].type) || this.onload) && (this.xhrCbStart = (0, j.z)())); } function b(e, r) { this.xhrCbStart && t.emit('xhr-cb-time', [(0, j.z)() - this.xhrCbStart, this.onload, r], r); } function y(e) { var t, r = e[1] || {}; if ( ('string' == typeof e[0] ? 0 === (t = e[0]).length && l.il && (t = '' + l._A.location.href) : e[0] && e[0].url ? (t = e[0].url) : l._A?.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, U.e)(t)), (this.sameOrigin = this.parsedOrigin.sameOrigin)); var n = o.generateTracePayload(this.parsedOrigin); if (n && (n.newrelicHeader || n.traceContextParentHeader)) if (e[0] && e[0].headers) s(e[0].headers, n) && (this.dt = n); else { var i = {}; for (var a in r) i[a] = r[a]; (i.headers = new Headers(r.headers || {})), s(i.headers, n) && (this.dt = n), e.length > 1 ? (e[1] = i) : e.push(i); } } 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 A(e, t) { (this.params = {}), (this.metrics = {}), (this.startTime = (0, j.z)()), (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 W ? (r = i.url) : l._A?.URL && 'object' == typeof i && i instanceof URL && (r = i.href), K(this, r); var o = ('' + ((i && i instanceof W && i.method) || n.method || 'GET')).toUpperCase(); (this.params.method = o), (this.body = n.body), (this.txSize = F(n.body) || 0); } function w(e, t) { var n; (this.endTime = (0, j.z)()), this.params || (this.params = {}), (this.params.status = t ? t.status : 0), 'string' == typeof this.rxSize && this.rxSize.length > 0 && (n = +this.rxSize); var o = { txSize: this.txSize, rxSize: n, duration: (0, j.z)() - this.startTime }; i('xhr', [this.params, o, this.startTime, this.endTime, 'fetch'], this, r.D.ajax); } function x(e) { var t = this.params, n = this.metrics; if (!this.ended) { this.ended = !0; for (var o = 0; o < G; o++) e.removeEventListener(q[o], this.listener, !1); t.aborted || ((n.duration = (0, j.z)() - this.startTime), this.loadCaptureCalled || 4 !== e.readyState ? null == t.status && (t.status = 0) : E(this, e), (n.cbTime = this.cbTime), i('xhr', [t, n, this.startTime, this.endTime, 'xhr'], this, r.D.ajax)); } } function E(e, t) { e.params.status = t.status; var r = (function (e, t) { var r = e.responseType; return 'json' === r && null !== t ? t : 'arraybuffer' === r || 'blob' === r || 'json' === r ? F(e.response) : 'text' === r || '' === r || void 0 === r ? F(e.responseText) : void 0; })(t, e.lastSize); if ((r && (e.metrics.rxSize = r), e.sameOrigin)) { var n = t.getResponseHeader('X-NewRelic-App-Data'); n && (e.params.cat = n.split(', ').pop()); } e.loadCaptureCalled = !0; } t.on('new-xhr', a), t.on('open-xhr-start', s), t.on('open-xhr-end', c), t.on('send-xhr-start', u), t.on('xhr-cb-time', d), t.on('xhr-load-added', f), t.on('xhr-load-removed', h), t.on('xhr-resolved', p), t.on('addEventListener-end', g), t.on('removeEventListener-end', m), t.on('fn-end', b), t.on('fetch-before-start', y), t.on('fetch-start', A), t.on('fn-start', v), t.on('fetch-done', w); })(e, this.ee, this.handler, this.dt), this.importAggregator(); } } } function K(e, t) { var r = (0, U.e)(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); } var Y = i(3614); const { BST_RESOURCE: J, RESOURCE: ee, START: te, END: re, FEATURE_NAME: ne, FN_END: ie, FN_START: oe, PUSH_STATE: ae, } = Y; var se = i(7144); class ce extends f { static featureName = se.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, se.t, r), this.importAggregator(); } } var ue = i(7836); const { FEATURE_NAME: de, START: le, END: fe, BODY: he, CB_END: pe, JS_TIME: ge, FETCH: me, FN_START: ve, CB_START: be, FN_END: ye, } = ue; var Ae = i(4649); class we extends f { static featureName = Ae.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, Ae.t, r), this.importAggregator(); } } new (class extends t { constructor(t) { let r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0, E.ky)(16); super(), l._A ? ((this.agentIdentifier = r), (this.sharedAggregator = new v({ agentIdentifier: this.agentIdentifier })), (this.features = {}), (this.desiredFeatures = new Set(t.features || [])), this.desiredFeatures.add(p), Object.assign(this, (0, s.j)(this.agentIdentifier, t, t.loaderType || 'agent')), this.run()) : (0, e.Z)('Failed to initial the agent. Could not determine the runtime environment.'); } get config() { return { info: (0, n.C5)(this.agentIdentifier), init: (0, n.P_)(this.agentIdentifier), loader_config: (0, n.DL)(this.agentIdentifier), runtime: (0, n.OP)(this.agentIdentifier), }; } run() { const t = 'features'; try { const n = a(this.agentIdentifier), i = [...this.desiredFeatures]; i.sort((e, t) => r.p[e.featureName] - r.p[t.featureName]), i.forEach(t => { if (n[t.featureName] || t.featureName === r.D.pageViewEvent) { const i = (function (e) { switch (e) { case r.D.ajax: return [r.D.jserrors]; case r.D.sessionTrace: return [r.D.ajax, r.D.pageViewEvent]; case r.D.sessionReplay: return [r.D.sessionTrace]; case r.D.pageViewTiming: return [r.D.pageViewEvent]; default: return []; } })(t.featureName); i.every(e => n[e]) || (0, e.Z)( '' .concat(t.featureName, ' is enabled but one or more dependent features has been disabled (') .concat((0, _.P)(i), '). This may cause unintended consequences or missing data...'), ), (this.features[t.featureName] = new t(this.agentIdentifier, this.sharedAggregator)); } }), (0, x.Qy)(this.agentIdentifier, this.features, t); } catch (r) { (0, e.Z)('Failed to initialize all enabled instrument classes (agent aborted) -', r); for (const e in this.features) this.features[e].abortHandler?.(); const n = (0, x.fP)(); return ( delete n.initializedAgents[this.agentIdentifier]?.api, delete n.initializedAgents[this.agentIdentifier]?.[t], delete this.sharedAggregator, n.ee?.abort(), delete n.ee?.get(this.agentIdentifier), !1 ); } } addToTrace(t) { (0, e.Z)('Call to agent api addToTrace failed. The session trace feature is not currently initialized.'); } setCurrentRouteName(t) { (0, e.Z)('Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.'); } interaction() { (0, e.Z)('Call to agent api interaction failed. The spa feature is not currently initialized.'); } })({ features: [ Q, p, C, class extends f { static featureName = ne; constructor(e, t) { if ((super(e, t, ne, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]), !l.il)) return; const n = this.ee; let i; (0, B.QU)(n), (this.eventsEE = (0, B.em)(n)), this.eventsEE.on(oe, function (e, t) { this.bstStart = (0, j.z)(); }), this.eventsEE.on(ie, function (e, t) { (0, T.p)('bst', [e[0], t, this.bstStart, (0, j.z)()], void 0, r.D.sessionTrace, n); }), n.on(ae + te, function (e) { (this.time = (0, j.z)()), (this.startPath = location.pathname + location.hash); }), n.on(ae + re, function (e) { (0, T.p)('bstHist', [location.pathname + location.hash, this.startPath, this.time], void 0, r.D.sessionTrace, n); }); try { (i = new PerformanceObserver(e => { const t = e.getEntries(); (0, T.p)(J, [t], void 0, r.D.sessionTrace, n); })), i.observe({ type: ee, buffered: !0 }); } catch (e) {} this.importAggregator({ resourceObserver: i }); } }, ce, P, we, k, class extends f { static featureName = de; constructor(e, t) { if ((super(e, t, de, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]), !l.il)) return; if (!(0, n.OP)(e).xhrWrappable) return; try { this.removeOnAbort = new AbortController(); } catch (e) {} let r, i = 0; const o = this.ee.get('tracer'), a = (0, B._L)(this.ee), s = (0, B.Lg)(this.ee), c = (0, B.BV)(this.ee), u = (0, B.Kf)(this.ee), d = this.ee.get('events'), f = (0, B.u5)(this.ee), h = (0, B.QU)(this.ee), p = (0, B.Gm)(this.ee); function g(e, t) { h.emit('newURL', ['' + window.location, t]); } function m() { i++, (r = window.location.hash), (this[ve] = (0, j.z)()); } function v() { i--, window.location.hash !== r && g(0, !0); var e = (0, j.z)(); (this[ge] = ~~this[ge] + e - this[ve]), (this[ye] = e); } function b(e, t) { e.on(t, function () { this[t] = (0, j.z)(); }); } this.ee.on(ve, m), s.on(be, m), a.on(be, m), this.ee.on(ye, v), s.on(pe, v), a.on(pe, v), this.ee.buffer([ve, ye, 'xhr-resolved'], this.featureName), d.buffer([ve], this.featureName), c.buffer(['setTimeout' + fe, 'clearTimeout' + le, ve], this.featureName), u.buffer([ve, 'new-xhr', 'send-xhr' + le], this.featureName), f.buffer([me + le, me + '-done', me + he + le, me + he + fe], this.featureName), h.buffer(['newURL'], this.featureName), p.buffer([ve], this.featureName), s.buffer(['propagate', be, pe, 'executor-err', 'resolve' + le], this.featureName), o.buffer([ve, 'no-' + ve], this.featureName), a.buffer(['new-jsonp', 'cb-start', 'jsonp-error', 'jsonp-end'], this.featureName), b(f, me + le), b(f, me + '-done'), b(a, 'new-jsonp'), b(a, 'jsonp-end'), b(a, 'cb-start'), h.on('pushState-end', g), h.on('replaceState-end', g), window.addEventListener('hashchange', g, (0, D.m$)(!0, this.removeOnAbort?.signal)), window.addEventListener('load', g, (0, D.m$)(!0, this.removeOnAbort?.signal)), window.addEventListener( 'popstate', function () { g(0, i > 1); }, (0, D.m$)(!0, this.removeOnAbort?.signal), ), (this.abortHandler = this.#i), this.importAggregator(); } #i() { this.removeOnAbort?.abort(), (this.abortHandler = void 0); } }, ], loaderType: 'spa', }); })(); })(); </script> <!-- NR Script End for www.pearson.com --> <!-- OneTrust Cookies Consent Notice start for www.pearson.com --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="0d545d30-0e52-4bd4-bbe4-db2d55525649"></script> <script type="text/javascript"> function OptanonWrapper() { var profile = blueConicClient.profile.getProfile(); if(!OnetrustActiveGroups.includes("C0004")){ profile.permission.setLevel(blueConicClient.permission.level.DO_NOT_TRACK); blueConicClient.profile.updateProfile(); } else { profile.permission.setLevel(blueConicClient.permission.level.PERSONAL); blueConicClient.profile.updateProfile(); } } </script> <!-- OneTrust Cookies Consent Notice end for www.pearson.com --> <!-- Start VWO Async SmartCode --> <script> window._vwo_code = window._vwo_code || (function () { var account_id = 725134, version = 1.5, settings_tolerance = 2000, library_tolerance = 2500, use_existing_jquery = false, is_spa = 1, hide_element = "", hide_element_style = "opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important", /* DO NOT EDIT BELOW THIS LINE */ f = false, d = document, vwoCodeEl = d.querySelector("#vwoCode"), filterToleranceTimer, code = { use_existing_jquery: function () { return use_existing_jquery; }, library_tolerance: function () { return library_tolerance; }, hide_element_style: function () { return "{" + hide_element_style + "}"; }, finish: function () { if (!f) { f = true; var a = d.getElementById("_vis_opt_path_hides"); if (a) a.parentNode.removeChild(a); } }, finished: function () { return f; }, load: function (a) { var b = d.createElement("script"); b.src = a; b.type = "text/javascript"; b.innerText; b.onerror = function () { _vwo_code.finish(); }; d.getElementsByTagName("head")[0].appendChild(b); }, getVersion: function () { return version; }, getMatchedCookies: function (matchPattern) { var matchedCookies = []; if (document.cookie) { matchedCookies = document.cookie.match(matchPattern) || []; } return matchedCookies; }, getCombinationCookie: function () { var matchedCookies = code.getMatchedCookies( /(?:^|;)\s?(_vis_opt_exp_\d+_combi=[^;$]*)/gi ); matchedCookies = matchedCookies.map(function (cookie) { try { var decodedCookie = decodeURIComponent(cookie); if ( !/_vis_opt_exp_\d+_combi=(?:\d+,?)+\s*$/.test(decodedCookie) ) { return ""; } return decodedCookie; } catch (e) { return ""; } }); var combinations = []; matchedCookies.forEach(function (each) { var cookiePair = each.match(/([\d,]+)/g); cookiePair && combinations.push(cookiePair.join("-")); }); return combinations.join("|"); }, init: function () { if (d.URL.indexOf("__vwo_disable__") > -1) return; window.settings_timer = setTimeout(function () { _vwo_code.finish(); _vwo_code.removeLoaderAndOverlay(); }, settings_tolerance); var filterConfig = this.filterConfig; if (!filterConfig || filterConfig.filterTime === "balanced") { var a = d.createElement("style"), b = hide_element ? hide_element + "{" + hide_element_style + "}" : "", h = d.getElementsByTagName("head")[0]; a.setAttribute("id", "_vis_opt_path_hides"); vwoCodeEl && a.setAttribute("nonce", vwoCodeEl.nonce); a.setAttribute("type", "text/css"); if (a.styleSheet) a.styleSheet.cssText = b; else a.appendChild(d.createTextNode(b)); h.appendChild(a); } if (filterConfig && filterConfig.filterTime === "early") { this.removeLoaderAndOverlay(); } var c = this.getCombinationCookie(); this.load( "https://dev.visualwebsiteoptimizer.com/j.php?a=" + account_id + "&u=" + encodeURIComponent(d.URL) + "&f=" + +is_spa + "&vn=" + version + (c ? "&c=" + c : "") ); return settings_timer; }, setFilterConfigAndApplyFilter: function (config) { if (!config) { return; } var state = this.isNonLiveMode(account_id) || config.isConsentGiven(); if (state === "1") { hide_element = "body"; window._vwo_settings_timer = _vwo_code.init(); return; } else if (state === "2") { return; } function clearIntervals(timerIds) { for (var i = 0; i < timerIds.length; i++) { clearInterval(timerIds[i]); } } this.filterConfig = config; var popupTimer = setInterval(function () { if (_vwo_code.applyFilters(config)) { clearInterval(popupTimer); } }, 100); var timer = setInterval(function () { var state = config.isConsentGiven(); var shouldClearAllIntervals; if (state === "1") { _vwo_code.showLoader(); window._vwo_settings_timer = _vwo_code.init(); shouldClearAllIntervals = true; } else if (state === "2") { _vwo_code.filterConfig = undefined; _vwo_code.removeLoaderAndOverlay(); shouldClearAllIntervals = true; } if (shouldClearAllIntervals) { clearIntervals([timer, popupTimer]); clearInterval(filterToleranceTimer); } }, 100); if (config.filterTolerance) { filterToleranceTimer = setTimeout(function () { _vwo_code.removeLoaderAndOverlay(); clearIntervals([timer, popupTimer]); }, config.filterTolerance); } }, showLoader: function () { var vwoOverlay = d.getElementsByClassName("vwo-overlay")[0]; if (!vwoOverlay) return; var vwoContentLoader = d.createElement("div"); vwoContentLoader.classList.add("vwo-content-loader"); vwoOverlay.parentNode.insertBefore( vwoContentLoader, vwoOverlay.nextSibling ); }, applyFilters: function (config) { var popup = d.querySelector(config.popupSelector); var popupZIndex; if (!popup && d.getElementById("_vis_opt_overlay")) { return; } var maxZIndex = 2147483647; if (popup) { var popupStyle = window.getComputedStyle(popup); popupZIndex = popupStyle.getPropertyValue("z-index"); if (!popupZIndex || popupZIndex === "auto") { popupZIndex = maxZIndex; } popup.style.zIndex = popupZIndex; } popupZIndex = popupZIndex || maxZIndex; var vwoFilter = "position: fixed; top: 0; left: 0; right: 0; bottom: 0; height: 100%; width: 100%; -webkit-filter: blur(5px); filter: blur(5px); backdrop-filter: saturate(180%) blur(3px); -webkit-backdrop-filter: saturate(180%) blur(3px); z-index:" + (popupZIndex - 1) + ";", vwoLoaderCss = " .vwo-content-loader{ border: 16px solid #f3f3f3; border-top: 16px solid #3498db; border-radius: 50%; width: 90px; height: 90px; position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); animation: vwo-spin 2s linear infinite; z-index:" + (popupZIndex - 1) + "; }" + "@keyframes vwo-spin { 0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg); } 100% { -webkit-transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg); } }"; /** * This below written code should not be tweaked * */ var overlayStyleTag = d.getElementById("_vis_opt_overlay"), overlayCSS = ".vwo-overlay{" + vwoFilter + "}" + vwoLoaderCss; if (overlayStyleTag) { if (overlayStyleTag.styleSheet) { overlayStyleTag.styleSheet.cssText = overlayCSS; } else { var _vwo_textNode = d.createTextNode(overlayCSS); overlayStyleTag.appendChild(_vwo_textNode); overlayStyleTag.removeChild(overlayStyleTag.childNodes[0]); } } else { var a = d.createElement("style"), h = d.getElementsByTagName("head")[0], body = d.getElementsByTagName("body")[0]; var vwoOverlay = d.createElement("div"); vwoOverlay.classList.add("vwo-overlay"); body.prepend(vwoOverlay); a.setAttribute("id", "_vis_opt_overlay"); a.setAttribute("type", "text/css"); if (a.styleSheet) a.styleSheet.cssText = overlayCSS; else a.appendChild(d.createTextNode(overlayCSS)); h.appendChild(a); } return !!popup; }, removeLoaderAndOverlay: function () { var overlay = d.getElementsByClassName("vwo-overlay"); var loader = d.getElementsByClassName("vwo-content-loader"); var overlayStyleTag = d.getElementById("_vis_opt_overlay"); overlay && (overlay = overlay[0]) && overlay.parentElement.removeChild(overlay); loader && (loader = loader[0]) && loader.parentElement.removeChild(loader); overlayStyleTag && overlayStyleTag.parentElement.removeChild(overlayStyleTag); }, isNonLiveMode: function (accountId) { var wName = window.name; if (!wName) { return; } return ( (wName.indexOf("_vis_editor") > -1 || wName.indexOf("_vis_preview_" + accountId) > -1 || wName.indexOf("_vis_heatmap_" + accountId) > -1) && "1" ); }, }; return code; })(); _vwo_code.setFilterConfigAndApplyFilter({ popupSelector: "SELECTOR_PATH_OF_POPUP", filterTime: "FILTER_TIME_AS_PER_YOUR_PREFERENCE", isConsentGiven: function () { var consented =document.cookie.indexOf("C0004%3A1"); if(consented >-1) { return '1'; } else if (consented === -1) { return '2'; } else { return '3'; } }, filterTolerance: "HARD_TIMER_FOR_REMOVING_OVERLAY_AND_POPUP", }); </script> <!-- End VWO Async SmartCode --> <!-- BlueConic script start --> <script type="text/javascript" class="optanon-category-C0004" src="https://k244.pearson.com/script.js"></script> <!-- BlueConic script end --> <!-- Algolia---> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.8.6/dist/algoliasearch-lite.umd.js" integrity="sha384-IOZI4NOHnjNUgjFM1ve1lHru3vDjs3NpgfwSuy2l5Lpn8IpoTh9GXwxITUL4ipUm" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.8.6/dist/algoliasearch-lite.umd.js" integrity="sha384-luo2c12TZjgETdO3DWL+3/2foUYU8hIdTImzr3x3E+K1DSzBLUvO0CCqAEcc3XZK" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/autocomplete.js/0/autocomplete.min.js"></script> <!-- End of Algolia --> <!-- Algolia start --> <script type="text/javascript"> var algoliaConfigPath = "/etc/clientlibs/global-store/algolia-search/algolia-configs/live/global-store/sites/en-ca/highered-educators/algolia-config.2.json"; </script> <!-- Algolia end --> <!-- Google Tag Manager New --> <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-MVH69VF');</script> <!-- End Google Tag Manager --> <script src='https://login.pearson.com/v1/piapi/login/js/v2/session.js'></script> <!-- This is the path to script for the current cloud service --> <script src="/etc/cloudservices/geolocation/global-store/_jcr_content/geolocation-context.js" charset="iso-8859-1"></script> <script src="/etc/cloudservices/geolocation/global-store/_jcr_content/geolocation-context.initScript.js"></script> <script type="text/javascript"> var globalProperties = {"siteId":"global-store","homePageLevel":3,"sitemapLevel":4,"sitemapIndexLevel":3,"msmSitesLevel":0,"selfReferencingCanonical":false,"extensionRemovalEnabled":false,"sitemapAlternativeLinksEnabled":false,"firstLevelNavEnabled":true,"secondLevelNavEnabled":true,"navContentEnabled":true,"footerFilteringEnabled":true,"useHomePageLevelInBreadcrumbs":true,"automaticMSMCanonicalTagEnabled":false,"columnControlConfigPath":"/etc/config/platform/aem-core/components/content/column-control-v3/columns","excludedContentPathsForSelfReferencingCanonicalTag":[],"navColumnControlConfigPath":"/etc/config/platform/aem-core/components/content/column-control-v3/columns","embedPageConfigPath":"/etc/config/platform/aem-core/components/page/embed-page/column-width-v2","megaNavContentBSVersion":4,"seoBreadcrumbEnabled":false,"seoHtmlMarkupEnabled":false,"enablePageLevelBreadcrumb":true,"blogPostConfig":false,"displayViewAllTagsForBlogs":true,"displayViewAllTagsForEvents":true,"rtlPage":false,"displayPastDatesForEvents":true,"walletAddEditEnabled":true,"walletAttemptsLimitationLogic":false,"cartMergeEnabled":true,"cartToHybrisEnabled":false,"manageSubscriptionEnabled":true,"showAutorenew":true,"updateProfileEnabled":true,"seoToolEnabled":true,"masterNodeDisabledForPreviewServer":false,"altTextGenerationEnabled":true,"recaptchValidationEnabled":false,"recaptchaV3Enabled":false,"multicoloredFaviconEnabled":true,"includeHiddenPagesInSitemap":false,"disableChatbotForInternalUsers":false,"contentSelectorExportJsonEnabled":false,"customDropdownEnabled":false,"contentTileNonSemanticMarkupEnabled":true,"tabPanelAccessibleMarkupEnabled":false,"localeSelectionAccessibleMarkupEnabled":true,"youTubeLazyLoadingEnabled":false,"heroSlideVideoBackgroundEnabled":false,"eventHeadingStyle":"h2","globalProperties":[{"errorPage":"/content/global-store/sites/en-ca/error.html"},{"ies-server-root":"https://login.pearson.com/v1/piapi"},{"cart-data-host":"https://api-pgi.pearson.com/headless/ecommerce/v2"},{"sign-up-educator-redirect":"/en-ca/instructor-verification"},{"download-limit-highrisk":"8"},{"download-limit-lowrisk":"50"},{"ies-ispmc":"true"},{"ies-terms-of-use-url":"/en-ca/legal-information/terms-of-use.html"},{"ies-privacy-policy-url":"/en-ca/legal-information/privacy-policy.html"},{"global-property-upsert-url":"https://api-gip-01.pgi.pearsonprd.tech/educator-account-upsert-papi/v1/account_upsert"},{"sift-api-url":"https://apigw-us-gip.pearson.com/sift/api/v205/events"},{"sift-beacon-key":"25bd44c182"},{"sift-api-key":"a39b3061b675f905"},{"sift-script-url":"https://cdn.siftscience.com/s.js"},{"user-restricted-redirect":"/{locale}.html"},{"pagesToRedirectFromAfterLogout":"/store/{locale}/checkout,/store/{locale}/my-account,/{locale}/my-learning"},{"terms-and-conditions-platforms-url":"/content/dam/global-store/global/educator/resources/aivmap.json"},{"brand_name":"pearson"},{"product-not-found-page-url":"/en-ca/legal-information/platforms-terms-and-conditions/product-not-found.html"},{"hybris-logout-url":"/store/en-ca/logout?autoLogoutFlag=true"},{"ies-server-login-path":"/iesui/signin"},{"ies-server-reset-password-path":"/iesui/forgot-unpw"},{"pmc-services-server-root":"https://service.pearson.com/pmc-services/user-profile-state"},{"progressive-profile-second-step-url":"https://www.pearson.com/en-ca/user/profiling"},{"launchdarkly-client-id":"65314c1b6faa991281047bf6"},{"allowed-return-hosts":"mypearson.com,pearson.com"},{"ies-client-id":"xO0f5VKQSrVWW3vH48j0Kx80ti51QXhU"}],"translations":{},"productMetatagNames":[],"navLibsCategories":["global.store.algolia-search.educator","one-dot-com.one-dot-com.he-js-base","dmcp.globalmessage","one-dot-com.one-dot-com.hed-navigation.nav-aem-header","one-dot-com.one-dot-com.hed-navigation.nav-footer"],"localesInfo":[{"en-us":"https://www.pearson.com/en-us.html"},{"en-gb":"https://www.pearson.com/en-gb.html"},{"en-au":"https://www.pearson.com/en-au.html"},{"en-nz":"https://www.pearson.com/en-nz.html"}],"suppressedExcludedLibsCategories":[],"standaloneLibsCategories":[]}; </script> <link rel="alternate" hreflang="en-CA" href="https://www.pearson.com/en-ca/global-permission-granting.html"/> <link rel="alternate" hreflang="en-US" href="https://www.pearson.com/en-us/global-permission-granting.html"/> <link rel="alternate" hreflang="x-default" href="https://www.pearson.com/global-permission-granting.html"/> <link rel="alternate" hreflang="en-GB" href="https://www.pearson.com/en-gb/global-permission-granting.html"/> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/jotform.min.ACSHASHd41d8cd98f00b204e9800998ecf8427e.css" type="text/css"> <script src="/etc/clientlibs/one-dot-com/one-dot-com/jotform.min.ACSHASH979664a4b511549e72415cd774c93c4a.js"></script> <script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="XCNNJ-G8PCV-U855W-LP259-ULUSU",function(){function e(){if(!r){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,o.appendChild(e),r=!0}}function t(e){r=!0;var n,t,a,i,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(o,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",i=(a.frameElement||a).style,i.width=0,i.height=0,i.border=0,i.display="none",o.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void 0;",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=14,window.BOOMR.url=n+"XCNNJ-G8PCV-U855W-LP259-ULUSU";var i=document.currentScript||document.getElementsByTagName("script")[0],o=i.parentNode,r=!1,d=document.createElement("link");if(d.relList&&"function"==typeof d.relList.supports&&d.relList.supports("preload")&&"as"in d)window.BOOMR.snippetMethod="p",d.href=window.BOOMR.url,d.rel="preload",d.as="script",d.addEventListener("load",e),d.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!r)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),o.appendChild(d);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="bdpnbevydq2gsz2htz3a-f-7e27b2b92-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,o={"ak.v":"39","ak.cp":"797525","ak.ai":parseInt("503985",10),"ak.ol":"0","ak.cr":4,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"b5c687a","ak.r":23331,"ak.a2":n,"ak.m":"x","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":37288,"ak.gh":"23.50.232.140","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1732746870","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==nH9rbQgmKVly/4fYGETtFq5kt/lGh7LoJpvOGvt70Xjmdl7+rV8XnarfuM9e34bhfz4BoQoYqAGEQ7AgkepsoonB9NaHmhbv62gueP+rGRRScO1Or1YWUpEqLOY7QD2EyDlkCoPeMN/NPfXbE/51pxWW+zsphLhN6jjLsop+kE/GTEdOjT5lf/lidEuwC2zJhPb85cxC3EW+bZlyDIXVyTO0xxQGOwblRcayfJ7AHYXOfNYxbxivtHiYPefeEuN1HEEiGpdoeRbOqfOf+Pb/VCmRQYL27020jdoG0YVetjKn7yHvETCrHouv6CH8S7Wcdeiw7iuf0YcJ4AOEvnMuKCkM2/iK9hbmiP8+D0fqtP+fN8exzTILOoS0K7K7HrdbAVHkqSUz+t9/zUVbfo7yf81Eg9zEsA2YCsDQ46oItN8=","ak.pv":"153","ak.dpoabenc":"","ak.tf":i};if(""!==t)o["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))o["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(o)},rv:function(){var e=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:o,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head> <body data-breadcrumb="true" class="page basicpage" id="page-973d4ca728"> <script src="/etc/clientlibs/platform/aem-core/ies-session.min.ACSHASH70b4b3c7e053d633c2d7be7163e8646a.js"></script> <header> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> </div> </div> </div> </div> </div> </div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control aem-GridColumn aem-GridColumn--default--12 he-navigation-topnav"> <div class="container"> <div class="row"><div class="col-sm-9 col-xs-12"><div role="navigation" class="mega-nav navbar navbar-default section"> <div class="navbar-header"> <button aria-label=" items" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/schools.html" role="link" target="_self" aria-label="for-school" class="dropdown-toggle js-opacity-0"> For School </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education.html" role="link" target="_self" aria-label="for-college" class="dropdown-toggle js-opacity-0"> For College & University </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/work.html" role="link" target="_self" aria-label="for-work" class="dropdown-toggle js-opacity-0"> For Work </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/explore-pearson.html" role="link" target="_self" aria-label="all-pearson" class="dropdown-toggle js-opacity-0"> Explore Pearson </a> </li> </ul> </div> </div> </div><div class=" col-sm-3 col-xs-12"><div class="locale-selection section"> <div> <button class="locale-selection__button selected_en-CA" aria-haspopup="true" aria-label="Locale Selection. Currently selected: Canada" aria-expanded="false" aria-controls="locale-selection-dropdown"> Canada </button> <div class="locale-selection__dropdown" aria-describedby="locale-selection-description" id="locale-selection-dropdown"> <ul role="menu" aria-label="Locale Selection"> <li role="none"> <a role="menuitem" lang="en-US" hreflang="en-US" href="https://www.pearson.com/en-us.html"> United States </a> </li> <li role="none"> <a role="menuitem" lang="en-CA" hreflang="en-CA" href="https://www.pearson.com/en-ca.html" aria-selected="true"> Canada </a> </li> <li role="none"> <a role="menuitem" lang="en-GB" hreflang="en-GB" href="https://www.pearson.com/en-gb.html"> United Kingdom </a> </li> <li role="none"> <a role="menuitem" lang="en" hreflang="en" href="https://www.pearson.com/en-ca/location-selector.html"> All countries </a> </li> </ul> </div> </div> </div> </div></div> </div> </section> </div> </div> </div> </div> </div> </div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control he-pr-nav__wrapper layout-default clipping-default clip-target-default default-texture default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow aem-GridColumn nav-content-selector aem-GridColumn--default--12 isAuthenticated"> <div class="container"> <div class="row"><div class="col-12"><div role="navigation" class="mega-nav navbar navbar-default he-header-mobile-nav he-drop-down-nav section"> <div data-aria-label-nav="Menu"></div> <div class="navbar-header"> <button aria-label="Menu items" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <div class="mega-nav-items-container"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="#" role="button" target="_self" aria-label="for-school" aria-controls="menu-item--forschool" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> For School <span class="caret"></span> </a> <div id="menu-item--forschool" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to main menu</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>FOR SCHOOL</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/schools.html">Explore for School</a></p> </div> <div role="navigation" class="mega-nav navbar navbar-default he-nav--arrow-links section"> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearsoncanadaschool.com/index.cfm?locator=PS2wSm" target="_blank" class="new-window" rel="noreferrer">K-12 Education Support </a> </li> <li> <a href="https://support.pearson.com/usclinical/s/" target="_blank" class="new-window" rel="noreferrer">Clinical Assessment Support </a> </li> <li> <a href="https://pearsonelt.ca/get-support/" target="_blank" class="new-window" rel="noreferrer">English Language Teaching Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="#" role="button" target="_self" aria-label="for-college" aria-controls="menu-item--forcollegeuniversity" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> For College & University <span class="caret"></span> </a> <div id="menu-item--forcollegeuniversity" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to main menu</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>FOR COLLEGE</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/higher-education.html">Explore for College</a></p> </div> <div role="navigation" class="mega-nav navbar navbar-default he-nav--arrow-links section"> <div class="navbar-header"> <button aria-label=" items" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education/students.html" role="link" target="_self" aria-label="students" aria-controls="menu-item--students" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> Students <span class="caret"></span> </a> <div id="menu-item--students" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to For College</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>STUDENTS</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/higher-education/students.html">Explore Students</a></p> </div> <div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-md-3 col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Shop For Your Courses</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/pearsonplus.html">eTextbooks </a> </li> <li> <a href="https://www.mondly.com/" target="_blank" class="new-window" rel="noreferrer">Mondly by Pearson (TM) </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/students.html">All Student Resources </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="718452942-1" aria-expanded="false"> <span>Sign into Digital Learning Platform</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="718452942-1"> <div class="link-list section c-footer__link-list"> <div> <ul id="mn-root--488284454"> <li> <a href="https://login.pearson.com/v1/piapi/iesui/signin?client_id=ejQ30eVDKpw6inZeCXwIaBAcLikqQT2a&login_success_url=https%3A%2F%2Fwww.pearson.com%2Fen-us%2Fpearsonplus%2Fuser%2Fprofiling%3FnextPage%3Dhttps%253A%252F%252Fwww.pearson.com%252Fen-us%252Fpearsonplus.html%26attrCheck%3DeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyRGF0YVRvQ2hlY2siOlsxMCwyMCwzMCw0MCw1MCw1MSw1Ml19.wdrDMMqGiZasDVrUL8TMv55XuQkSb4nEby3XmkV2g0s" target="_blank" class="new-window" rel="noreferrer">eTextbooks </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mastering.html" target="_blank" class="new-window" rel="noreferrer">Mastering </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mylab.html" target="_blank" class="new-window" rel="noreferrer">MyLab </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/revel.html">Revel </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="900265415-1" aria-expanded="false"> <span>Get Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="900265415-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-402861665"> <li> <a href="https://login.pearson.com/v1/piapi/login/saml/generateResponse?sessionType=fr&targetUrl=https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="100367895-1" aria-expanded="false"> <span>Resources</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="100367895-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--1017926991"> <li> <a href="https://www.pearson.com/en-ca/higher-education/students/student-programs/pearson-campus-ambassador.html">Be a Pearson Campus Ambassador </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion/truth-and-reconciliation.html" target="_blank" class="new-window" rel="noreferrer">Truth & Reconciliation </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p><a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education/educators.html" role="link" target="_self" aria-label="educators" aria-controls="menu-item--educators" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> Educators <span class="caret"></span> </a> <div id="menu-item--educators" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to For College</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>EDUCATORS</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/higher-education/educators.html">Explore Educators</a></p> </div> <div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-md-3 col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Find Products & Services</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearson.com/en-ca/higher-education/educators/digital-learning-environments.html">Digital Learning Platforms </a> </li> <li> <a href="https://www.pearson.com/en-ca/search.html">Browse the Catalogue </a> </li> </ul> </div> </div> </div> </section> </div> <div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="477563589-1" aria-expanded="false"> <span>Featured Products</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="477563589-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-1619015391"> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/pearsonplus.html">eTextbooks on Pearson+ </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mastering.html">Mastering </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mylab.html">MyLab </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/revel.html">Revel </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="718452942-1" aria-expanded="false"> <span>Explore Resources for Your Discipline</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="718452942-1"> <div class="link-list section c-footer__link-list"> <div> <ul id="mn-root--488284454"> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/accounting.html">Accounting </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/business-economics.html">Business & Economics </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/engineering.html">Engineering & Computer Science </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/english.html">English </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/humanities-social-sciences.html">Humanities & Social Science </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/math-statistics.html">Math & Statistics </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/psychology.html">Psychology </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/sciences.html">Sciences </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/information-technology-mis.html">Information Technology & MIS </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline.html">All Discipline Resources </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="900265415-1" aria-expanded="false"> <span>Get Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="900265415-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-402861665"> <li> <a href="https://login.pearson.com/v1/piapi/login/saml/generateResponse?sessionType=fr&targetUrl=https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support/pearson-dot-com-educator-account-faqs.html">Instructor Resources & Request a Copy </a> </li> <li> <a href="/en-ca/help-and-support/contact-us/find-a-rep.html">Find Your Rep </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="100367895-1" aria-expanded="false"> <span>Learn & Connect</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="100367895-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--1017926991"> <li> <a href="https://www.pearson.com/en-ca/higher-education/about-us.html">Why Choose Pearson? </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/webinars-events.html">Webinars & Events </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/higher-education-blog.html">Blogs </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion/truth-and-reconciliation.html" target="_blank" class="new-window" rel="noreferrer">Truth & Reconciliation </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p><a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/search.html" role="link" target="_self" aria-label="store" aria-controls="menu-item--browsebysubject" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> Browse by Subject <span class="caret"></span> </a> <div id="menu-item--browsebysubject" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to For College</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>BROWSE BY SUBJECT</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/search.html">Explore our subjects</a></p> </div> <div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Shop for College & University</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default link-list--columns-4 section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="/en-ca/search.html/Arts">Arts </a> </li> <li> <a href="/en-ca/search.html/Business+%26+Economics">Business & Economics </a> </li> <li> <a href="/en-ca/search.html/Careers+%26+Trades">Careers & Trades </a> </li> <li> <a href="/en-ca/search.html/Social+Sciences/Communication">Communication </a> </li> <li> <a href="/en-ca/search.html/Computer+Science">Computer Science </a> </li> <li> <a href="/en-ca/search.html/Engineering">Engineering </a> </li> <li> <a href="/en-ca/search.html/English">English </a> </li> <li> <a href="/en-ca/search.html/Health+Professions">Health Professions </a> </li> <li> <a href="/en-ca/search.html/Helping+Professions">Helping Professions </a> </li> <li> <a href="/en-ca/search.html/Humanities">Humanities </a> </li> <li> <a href="/en-ca/search.html/Information+Technology">Information Technology </a> </li> <li> <a href="/en-ca/search.html/Mathematics">Mathematics </a> </li> <li> <a href="/en-ca/search.html/Nursing">Nursing </a> </li> <li> <a href="/en-ca/search.html/Personal+%26+Professional+Development">Personal & Professional Development </a> </li> <li> <a href="/en-ca/search.html/Science">Science </a> </li> <li> <a href="/en-ca/search.html/Social+Sciences">Social Sciences </a> </li> <li> <a href="/en-ca/search.html/Statistics">Statistics </a> </li> <li> <a href="/en-ca/search.html/Teacher+Education">Teacher Education </a> </li> <li> <a href="/en-ca/search.html/World+Languages">World Languages </a> </li> <li> <a href="https://www.pearson.com/en-ca/search.html">View All </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p><a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> </ul> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p> <a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="#" role="button" target="_self" aria-label="for-work" aria-controls="menu-item--forwork" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> For Work <span class="caret"></span> </a> <div id="menu-item--forwork" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to main menu</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>FOR WORK</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/work.html">Explore for work</a></p> </div> <div role="navigation" class="mega-nav navbar navbar-default he-nav--arrow-links section"> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.credly.com/hc/en-us" target="_blank" class="new-window" rel="noreferrer">Credly Support </a> </li> <li> <a href="https://www.talentlens.com/about/get-in-touch-for-more-details.html" target="_blank" class="new-window" rel="noreferrer">TalentLens Support </a> </li> <li> <a href="https://www.pearsonaccelerated.com/contact.html" target="_blank" class="new-window" rel="noreferrer">Accelerated Pathways Contact </a> </li> <li> <a href="https://www.pearson.com/skills-accelerator/form.html" target="_blank" class="new-window" rel="noreferrer">Skills Accelerator Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/work/support.html">All Work Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/explore-pearson.html" role="link" target="_self" aria-label="all-pearson" class="dropdown-toggle js-opacity-0"> Explore Pearson </a> </li> </ul> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearsoncanadaschool.com/customer-support/help-and-support.html" target="_blank" class="new-window" rel="noreferrer">School Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">College & University Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/work/support.html">Work Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html">Global Rights Licensing </a> </li> <li> <a href="https://www.pearson.com/en-ca/global-permission-granting.html">Global Permissions </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </div> </div> <div class="logo-v2 header__logo section"> <a id="logo" href="https://www.pearson.com/en-ca.html" aria-label="Pearson Logo"> <picture> <source media="(max-width: 414px)" srcset="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg"/> <img src="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg" alt="Pearson"/> </picture> </a> </div> <div role="navigation" class="mega-nav navbar navbar-default section he-header-desktop-nav"> </div> <div class="function-panel section function-panel educator-nav__search c-nav__search aem-GridColumn aem-GridColumn--default--12"> <div class="facet__auto_suggest" data-fp-attributes="{"productsTitle":"PRODUCTS","suggestedTitle":"SUGGESTED SEARCHES"}" data-hide-tags="true"></div> </div> <section class="column-control layout-default clipping-default clip-target-default default-texture default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow he-header-icon-navigation section"> <div class="row"><div class="col-12"><div class="parsys section"><div class="text text-default default-btn-type default-btn-width default-btn-size default-links default-color has-padding-top--none has-padding-bottom--none he-header-desktop-cart section"> <a href="/store/en-ca/cart" title="Cart" class="cart-link"> </a> </div> <div role="navigation" class="mega-nav navbar navbar-default he-header-help-nav he-icon-dropdown he-drop-down-nav on-left section"> <div data-aria-label-nav="Support"></div> <div class="navbar-header"> <button aria-label="Support items" title="Support" data-toggle="collapse" data-target="#Support" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="Support" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearsoncanadaschool.com/customer-support/help-and-support.html" role="link" target="_blank" class="dropdown-toggle js-opacity-0"> School Support </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education/support.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> College & University Support </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/work/support.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> Work Support </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> Global Rights Licensing </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/global-permission-granting.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> Global Permissions </a> </li> </ul> </div> </div> <div class="custom-header he-user-navigation section"> <div class="custom-header__container container"> <div id="custom-header" class="row" data-header-path="/store/en-us/commerce-header-v2"></div> </div> </div> </div> </div></div> </section> </div></div> </div> </section> </div> </div> </div> <nav class="breadcrumb-wrapper-nav-hide c-breadcrumb__wrapper section"> <nav class="breadcrumb c-breadcrumb__nav section" aria-label="Breadcrumb"> <ol class="c-breadcrumb__list"> <li class="c-breadcrumb__item" aria-current="page"> <a href="https://www.pearson.com/en-ca.html">Home Page</a> </li> </ol> </nav> </nav> </div> </div> </div> </div> </header> <main role="main"><div> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control flex-layout bgcolor--background-dark dots-lrUp-textureDark default-gutters has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 bgcolor--grey-95"> <div class="container"> <div class="row"><div class="col-md-6 col-12"><div class="content-tile content-tile-landscape--83-17 vertically-centered pad-eq-vertical--30__caption color--text-primary-inverse section"> <div class="content-tile-container"> <div class="content-tile__figure"> <div class="content-tile__figcaption"> <h1 class="content-tile__title">Global Permission Granting</h1> </div> </div> </div> </div> </div><div class="col-md-6 col-12"><section class="column-control bgcolor--default default-texture min-height--400 display-tablet section"> <style> .bg568060028 { background-image: url('/content/dam/one-dot-com/one-dot-com/global/Images/landing-headers/1440x960-getty-1223604450.jpeg'); background-size: ; background-position: top; background-repeat: repeat; } @media (max-width:320px) { .bg568060028 { background-image: url('/content/dam/one-dot-com/one-dot-com/global/Images/landing-headers/1440x960-getty-1223604450.jpeg.transform/tiny-size-xs/img.jpeg'); } } @media (max-width:480px) { .bg568060028 { background-image: url('/content/dam/one-dot-com/one-dot-com/global/Images/landing-headers/1440x960-getty-1223604450.jpeg.transform/tiny-size-xl/img.jpeg'); } } @media (max-width:991px) { .bg568060028 { background-image: url('/content/dam/one-dot-com/one-dot-com/global/Images/landing-headers/1440x960-getty-1223604450.jpeg.transform/medium-size/img.jpeg'); } } @media (max-width:1199px) { .bg568060028 { background-image: url('/content/dam/one-dot-com/one-dot-com/global/Images/landing-headers/1440x960-getty-1223604450.jpeg.transform/big-size-xs/img.jpeg'); } } @media (min-width:1200px) { .bg568060028 { background-image: url('/content/dam/one-dot-com/one-dot-com/global/Images/landing-headers/1440x960-getty-1223604450.jpeg.transform/big-size-xl/img.jpeg'); } } </style> <div class="column-control--bg bg568060028 "></div> <div class="row"><div class="col-12"></div></div> </section> </div></div> </div> </section> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control layout-default default-padding-top default-padding-bottom default-padding-horizontal default-min-height default-rule aem-GridColumn aem-GridColumn--default--12"> <div class="container"> <div class="row"><div class="col-md-2 col-12"></div><div class="col-md-8 col-12"><div class="content-tile behavior--none content-tile-portrait bgcolor--default default-links default-btn-type default-btn-size default-btn-width pad--default__figure pad-eq-vertical--default__caption pad-left--0__pad-right--15__caption default-title-typesize default-title-typeweight default-subtitle-typesize default-subtitle-typeweight default-subtitle-color default-content-tile-text--col-count section"> <div class="content-tile-container"> <div class="content-tile__figure"> <div class="content-tile__figcaption"> <div class="content-tile-text rte-container"><p>If you would like to use content from Pearson products, for instance, in your course, workshop, organization, publication or document, you will require written permission.</p> <p>Please use the form below if you wish to use an extract or portion from a Pearson product. If you would like to adapt, reproduce or translate an entire Pearson product, please contact <a adhocenable="false" href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html">Global Rights Licensing</a>. To request permission to use extracts from Pearson's assessment products, visit one of our regional <a adhocenable="false" href="https://www.pearsonassessments.com/location-selector.html">Pearson Assessment websites</a>.</p> <p>If you are having trouble accessing your purchased copy of a Pearson product or having trouble with your access codes, please contact <a adhocenable="false" href="https://support.pearson.com/getsupport/s/" target="_blank" class="new-window" aria-label="Pearson Support. Opens new tab.">Pearson Support</a>.</p> <p>If you suspect that a Pearson product has been used without the necessary authorization, then please report the alleged infringement here: <a adhocenable="false" href="https://www.pearson.com/en-ca/report-piracy.html">https://www.pearson.com/report-piracy.html</a>.</p> </div> </div> </div> </div> </div> <div class="text default-color default-links use-button-primary default-btn-size default-btn-width default-padding-top has-padding-bottom--30 section"> <p><a adhocenable="false" href="https://app.smartsheet.com/b/form/68610eab22b34a2e8f4032519adbaf65" target="_blank" class="new-window" aria-label="Make a request. Opens new tab.">Make a request</a></p> </div> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <h2>Guidelines<br /> </h2> <p>Before submitting your request via the online form, please look at our guidelines below:<br /> </p> <p>When completing the form, please note the following items:</p> <ul> <li>The turnaround time for completion of your request is 2 - 3 weeks depending on the age of the product which contains the content you wish to use. Check the credits, acknowledgements, and notes on the copyright page or at the back of the publication to verify if Pearson is the publisher. Copyright for photographs, illustrations, and poems usually belongs to the photographer, illustrator, or poet rather than the publisher. Copyright for quotes made by historical or well-known figures also rarely belong to the publisher. Unfortunately, we are unable to check this material on your behalf.</li> </ul> <ul> </ul> <ul> <li>If the product you are requesting is out of print, please check if the content you require is available in a newer edition. If it is, request for the content from the newer edition.</li> </ul> <ul> </ul> <ul> <li>The online form contains all the required fields to process your request. Omission of this information will cause a delay in the processing of your request.</li> </ul> <ul> </ul> <ul> <li>Depending on your request type, you may have to submit a copy of your page or screen containing the requested content, as well as the acknowledgement page of the Pearson product.</li> </ul> <ul> </ul> <ul> <li>There are two types of requests:<ul> <li>Educational: select this type on the form if you are using Pearson owned content in a teaching setting (physical and/or virtual) or for your studies</li> <li>Commercial: select this type on the form if you are wanting to republish portions of Pearson owned content</li> </ul> </li> <li>If you are uncertain as to which type of request you require, please fill in the commercial request form and note this in the comments section.</li> </ul> <p>If you are an agent or vendor requesting permission on behalf of a third party, please ensure you complete the third party’s address under licensee details. Please do not use the requested content if a grant confirmation has not been received and a signed copy of the formal grant letter has been returned to us.<br /> </p> </div> </div><div class="col-md-2 col-12"></div></div> </div> </section> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control layout-default bgcolor--ui-01 default-padding-top default-padding-bottom default-padding-horizontal default-min-height default-rule aem-GridColumn aem-GridColumn--default--12"> <div class="container"> <div class="row"><div class="col-md-2 col-12"></div><div class="col-md-8 col-12"><div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top has-padding-bottom--15 section"> <h2>Frequently Asked Questions</h2> </div> <div class="accordion section"> <div class="accordion-panel"> <h3 aria-controls="-397213286-1" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>I have an urgent request. What are your turnaround times?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-1" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>Our general turnaround times are 2-3 weeks for processing most requests. Requests for older titles may require 3-4 weeks for processing. If your request is urgent, please indicate the urgency and the reason in the comments section on the online form.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-2" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>Why do I need to provide acknowledgment pages?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-2" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>Acknowledgement pages list third party content used within a publication and Pearson only provides permission for the use of Pearson owned content and not for any third party owned materials.<br /> </p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-3" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>I don’t have all the details that are required. What are the minimum details needed to process a request?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-3" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>The minimum requirements are marked with an asterisk (*) on the online form. These details include your details, our product details, the content being requested, how and where you will be using the content and the details of the institution or company you are requesting on behalf of.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-4" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>Can you provide copies of the content I wish to use?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-4" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>No, we are not able to make copies or high-resolution files of the required content available to you. The permissions granting team are only able to provide you with the relevant permission grant to reproduce the content.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-5" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>Can you provide details of authors or the estates of authors for titles where the rights have reverted?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-5" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>We can unfortunately not assist you with author information. You will need to obtain the details of the author or his/her estate in the event that the author is deceased and request permission from them directly.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-6" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>I am not sure how many students will register for the course. Can you grant permission in the interim?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-6" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>Permission can only be granted once the number of students has been confirmed.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-7" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>I do not know who will publish my book. Can you grant permission in the interim?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-7" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>We will not be able to grant the required permission because the Publisher’s details are required to finalise the Permissions Grant.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-8" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>Can I request permission retrospectively i.e once the material has already been used?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-8" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>No, permission must be requested before using the material.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-9" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>Can I post content that has been approved on social media websites?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-9" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>No, you may not post Pearson content on social media websites. We require our content to be protected when online.</p> </div> </div> </div> <div class="accordion-panel"> <h3 aria-controls="-397213286-10" aria-expanded="false" class="accordion-panel-header" role="accordion"> <a href="#"> <span>If a book is out of print does it mean that it is now in the public domain and can be used without permission?</span> <span class="pull-right fa fa-plus"></span> </a> </h3> <div aria-hidden="true" class="accordion-panel-content accordion-panel-hide" id="-397213286-10" role="accordionpanel"> <div class="text default-color default-links default-btn-type default-btn-size default-btn-width default-padding-top default-padding-bottom section"> <p>No, whether a book is in the public domain needs consideration of various factors which is dependent on the country of origin too. Please consult with your permissions or legal team for further information.</p> </div> </div> </div> </div> </div><div class="col-md-2 col-12"></div></div> </div> </section> </div> </div> </main> <footer><div> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control he-footer-global layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow aem-GridColumn aem-GridColumn--default--12"> <div class="container"> <div class="row"><div class="col-12"><section class="column-control layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters default-padding-top default-padding-bottom default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow section c-footer__main"> <div class="row"><div class="col-md-3 col-12"><div class="logo-v2 section c-footer__logo"> <a id="footer__vCake-logo" href="https://www.pearson.com/en-ca.html"> <picture> <source media="(max-width: 800px)" srcset="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg"/> <img src="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg" alt="Pearson Home"/> </picture> </a> </div> <div class="social-links c-footer__social-links section"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/social-links.min.ACSHASHda4fe63359349df9709a7c55ffa945e7.css" type="text/css"> <ul class="social-links__list"> <li class="social-links__item"> <a href="https://www.facebook.com/PearsonHigherEducationCA" target="_blank" rel="noopener noreferrer" aria-label="Facebook" class="social-links--facebook"></a> </li> <li class="social-links__item"> <a href="https://twitter.com/pearson" target="_blank" rel="noopener noreferrer" aria-label="Twitter" class="social-links--twitter"></a> </li> <li class="social-links__item"> <a href="https://www.youtube.com/c/PearsonHigherEducation" target="_blank" rel="noopener noreferrer" aria-label="Youtube" class="social-links--youtube"></a> </li> <li class="social-links__item"> <a href="https://www.linkedin.com/showcase/pearson-higher-education" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" class="social-links--linkedin"></a> </li> <li class="social-links__item"> <a href="https://www.instagram.com/pearsonhighereducation" target="_blank" rel="noopener noreferrer" aria-label="Instagram" class="social-links--instagram"></a> </li> </ul> </div> <div class="parsys section"><div class="parsys section"><div class="parsys section"><div class="locale-selection he-nav--mobile-only section"> <div> <button class="locale-selection__button selected_en-CA" aria-haspopup="true" aria-label="Locale Selection. Currently selected: Canada" aria-expanded="false" aria-controls="locale-selection-dropdown"> Canada </button> <div class="locale-selection__dropdown" aria-describedby="locale-selection-description" id="locale-selection-dropdown"> <ul role="menu" aria-label="Locale Selection"> <li role="none"> <a role="menuitem" lang="en-US" hreflang="en-US" href="https://www.pearson.com/en-us.html"> United States </a> </li> <li role="none"> <a role="menuitem" lang="en-CA" hreflang="en-CA" href="https://www.pearson.com/en-ca.html" aria-selected="true"> Canada </a> </li> <li role="none"> <a role="menuitem" lang="en-GB" hreflang="en-GB" href="https://www.pearson.com/en-gb.html"> United Kingdom </a> </li> <li role="none"> <a role="menuitem" lang="en" hreflang="en" href="https://www.pearson.com/en-ca/location-selector.html"> All countries </a> </li> </ul> </div> </div> </div> </div> <div class="parsys section"><div class="parsys section"></div> </div> </div> </div> <div class="parsys section"></div> </div><div class="col-md-9 col-12"><section class="column-control layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow section c-footer__navigation"> <div class="row"><div class="col-20pct col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="-2033578333-1" aria-expanded="false"> <span>Explore</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="-2033578333-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--842179"> <li> <a href="https://www.pearson.com/en-ca/schools.html">Schools </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education.html">College & University </a> </li> <li> <a href="https://www.pearson.com/en-ca/work.html">Work </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1750854786-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1750854786-1"> <div class="link-list section c-footer__link-list"> <div> <ul id="mn-root-90893990"> <li> <a href="https://www.pearson.com/en-ca/schools/support.html">PreK-12 Schools Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">Higher Education Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/work/support.html">Work Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/global-permission-granting.html">Global Permissions </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html">Global Rights Licensing </a> </li> <li> <a href="https://www.pearson.com/en-ca/report-piracy.html">Report Piracy </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1074786963-1" aria-expanded="false"> <span>Insights</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1074786963-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--1159223763"> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/higher-education-blog.html">Higher Education Blog </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/webinars-events.html">Webinars & Events </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1215568587-1" aria-expanded="false"> <span>Major businesses</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1215568587-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-2097032293"> <li> <a href="https://www.pearsonclinical.ca/en.html" target="_blank" class="new-window" rel="noreferrer">Clinical Assessments </a> </li> <li> <a href="https://www.pearsoncanadaschool.com/" target="_blank" class="new-window" rel="noreferrer">PreK-12 Schools </a> </li> <li> <a href="https://pearsonelt.ca/" target="_blank" class="new-window" rel="noreferrer">Pearson ELT </a> </li> <li> <a href="https://home.pearsonvue.com/" target="_blank" class="new-window" rel="noreferrer">Pearson VUE </a> </li> <li> <a href="https://www.pearsonpte.com/destination-canada" target="_blank" class="new-window" rel="noreferrer">Pearson Test of English </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="-822487702-1" aria-expanded="false"> <span>About us</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="-822487702-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-426518724"> <li> <a href="https://pearson.jobs/" target="_blank" class="new-window" rel="noreferrer">Careers </a> </li> <li> <a href="https://plc.pearson.com/en-GB/investors" target="_blank" class="new-window" rel="noreferrer">Investor Relations </a> </li> <li> <a href="https://plc.pearson.com/en-GB/company" target="_blank" class="new-window" rel="noreferrer">Our Company </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion.html">Diversity & Inclusion </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion/truth-and-reconciliation.html">Truth & Reconciliation </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </section> </div></div> </section> <section class="column-control layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters has-padding-top--30 has-padding-bottom--30 default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow section c-footer__main c-footer__bottom"> <div class="row"><div class="col-12"><div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-2107762321"> <li> <a href="https://www.pearson.com/en-ca/legal-information/terms-of-use.html">Terms of Use </a> </li> <li> <a href="https://www.pearson.com/en-ca/privacy-center/privacy-notices.html">Privacy </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/cookie-policy.html" id="open-ot-preference-modal">Cookies </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/accessibility.html">Accessibility </a> </li> </ul> </div> </div> <div class="text section c-footer__bottom-copyright"> <p>© 1996–2024 Pearson All rights reserved.</p> </div> </div></div> </section> </div></div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </footer> <script src="/etc/clientlibs/global-store/parse-data-layer.min.ACSHASHf33cc89d499e9552305582b58c89767d.js"></script> <script src="/etc/clientlibs/global-store/algolia-search/educator.min.ACSHASHc328ad43291a4d6d35d18cb33d42e751.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/he-js-base.min.ACSHASH911bcaf7fe95ad924b4d5441f7b59a72.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/column-control-collapse.min.ACSHASHedfe505c62d117a26f847348e9799da0.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-footer.min.ACSHASH7dd356d31b898e675466aa6dcdb753d3.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-aem-header.min.ACSHASHe9fe6611a4cf481434e820d55dd5325b.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/he-ies-signin-modal.min.ACSHASH241772f65f00a3abe7fe627720819e23.js"></script> <script src="/etc/clientlibs/platform/aem-core/components/content/in-page-navigation.min.ACSHASH022562582b074198c334f68d55a07919.js"></script> <div class="cloudservice pearson-data-layer"> <script src="/etc/clientlibs/platform/aem-core/data-layer/user-info.min.ACSHASHca102e1b1b56cceaaa7c112f1b42d549.js"></script> </div> <div class="cloudservice script-include-service"> </div> <div class="cloudservice gtm"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MVH69VF" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> </div> <div class="cloudservice ecommerce-service-component"> <script src="https://www.pearson.com/store/_ui/addons/b2bacceleratoraddon/responsive/common/js/acc.orderform.js"></script> <script src="https://www.pearson.com/store/_ui/addons/pmciamaddon/responsive/common/js/pmciamaddon.js"></script> </div> <div class="cloudservice geolocation-service-component"></div> </body> </html>