null Responsible Investing Policy
An error occurred while processing the template.
The following has evaluated to null or missing:
==> RelatedBanner.RelatedCTA  [in template "MELLONPUBLIC-COMMON-RELATED-CONTENT" at line 186, column 22]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if RelatedBanner.RelatedCTA.getData(...  [in template "MELLONPUBLIC-COMMON-RELATED-CONTENT" in macro "doRelatedBanner" at line 186, column 17]
	- Reached through: @doRelatedBanner  [in template "20099#20135#MELLONPUBLIC-MISCELLANEOUS-CONTENT" at line 248, column 41]
----
1<#include "${templatesPath}/MELLONPUBLIC-COMMON" /> 
2<#include "${templatesPath}/MELLONPUBLIC-COMMON-RELATED-CONTENT" /> 
3  
4<#assign displayDate_Data = getterUtil.getString(.vars['reserved-article-display-date'].data)> 
5<#assign displayDate_DateObj = displayDate_Data?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
6<#assign displayDate_Display = dateUtil.getDate(displayDate_DateObj, "MMMM yyyy", locale) /> 
7 
8<#-- check to see if a fixed display page exists to be used as alternative to the one set against the web content item --> 
9<#assign bioFixedLayout = layoutLocalService.fetchLayoutByFriendlyURL(page_group_id, layout.isPrivateLayout(), fixedDisplayPageBio)!"" /> 
10<#assign bioApPortletInstance = "" /> 
11<#if bioFixedLayout != ""> 
12	<#-- if there is a custom page get hold of the portlet embedded in the page --> 
13	<#assign layoutType = bioFixedLayout.getLayoutType() /> 
14	<#assign portletIds = layoutType.getPortletIds() /> 
15	<#list portletIds as portletId> 
16		<#if portletId?starts_with(portletIdPrefix)> 
17			<#assign bioApPortletInstance = portletId?remove_beginning(portletIdPrefix) /> 
18			<#break /> 
19		</#if> 
20	</#list> 
21</#if> 
22<#-- On Page title --> 
23<#assign onPageTitle = "" /> 
24<#if (ContentDetails.title_on_page.getData())?? && ContentDetails.title_on_page.getData() != ""> 
25    <#attempt> 
26        <#assign onPageTitle = ContentDetails.title_on_page.getData() /> 
27    <#recover> 
28    </#attempt> 
29<#else> 
30    <#assign onPageTitle = .vars['reserved-article-title'].data /> 
31</#if> 
32<script type="application/ld+json"> 
33
34  "@context": "http://schema.org", 
35  "@type": "OpinionNewsArticle", 
36  "mainEntityOfPage": { 
37    "@type": "WebPage", 
38    "@id": "https://www.mellon.com/" 
39  }, 
40  "headline": "${onPageTitle}", 
41  "image": [ 
42    "https://www.mellon.com${PresentationDetails.PrimaryImage.getData()}" 
43   ], 
44  "datePublished": "${displayDate_DateObj?string.iso}", 
45  "dateModified": "${displayDate_DateObj?string.iso}", 
46 
47  "author": [ 
48
49                   "@type": "Person", 
50                   "name": "Mellon Investments" 
51                 }  ], 
52 
53   "publisher": { 
54    "@type": "Organization", 
55    "name": "Mellon Investments", 
56    "logo": { 
57      "@type": "ImageObject", 
58      "url": "https://www.mellon.com/o/mellon-public-theme/images/mellon-logo-pos.jpg" 
59
60  }, 
61  "description": "${.vars['reserved-article-description'].data}" 
62
63</script> 
64 
65 
66<div class="mellonpublic-fullwidth-component mellonpublic-misc mellonpublic-misc-header-section"> 
67    <div class="mellonpublic-grid"> 
68        <div class="mellonpublic-component mellonpublic-grid-padded-large"> 
69            <div class="mellonpublic-misc-header ${PresentationDetails.TextOverlayColour.getData()}"> 
70 
71                <ul class="breadcrumb"> 
72                    <li><a href="/" title="Home">Home</a></li> 
73                    <#-- find any "intermediate links" -->  
74					<#if PresentationDetails.BreadcrumbDetails.AdditionalPage.getSiblings()?has_content>  
75						<#list PresentationDetails.BreadcrumbDetails.AdditionalPage.getSiblings() as additionalPage>  
76							<#if additionalPage.getData()?has_content>  
77								<#-- get page/layout object -->  
78								<#assign breadLayout = layoutLocalService.getLayout(layout.getGroupId(), false, additionalPage.getData()?number) />  
79								<li><a href="${additionalPage.getFriendlyUrl()}" title="${breadLayout.getName(locale)}">${breadLayout.getName(locale)}</a></li>  
80							</#if>  
81						</#list>  
82					</#if>  
83                    <li>${onPageTitle}</li> 
84                </ul> 
85                 
86                <h1>${onPageTitle}</h1> 
87                 
88            </div> 
89        </div> 
90    </div> 
91    <div class="full-width-background"> 
92    	<#if PresentationDetails.PrimaryImage.getData()?? && PresentationDetails.PrimaryImage.getData() != "">  
93    		<img alt="${onPageTitle}" data-fileentryid="${PresentationDetails.PrimaryImage.getAttribute("fileEntryId")}" src="${PresentationDetails.PrimaryImage.getData()}" />  
94    	</#if> 
95    </div> 
96</div> 
97 
98<div class="mellonpublic-fullwidth-component mellonpublic-misc"> 
99    <div class="mellonpublic-grid"> 
100        <div class="mellonpublic-component mellonpublic-grid-padded-large"> 
101            <div class="mellonpublic-misc-layout"> 
102                <div class="mellonpublic-misc-main"> 
103 
104					<#if AdditionalHeaders.SummaryHeading.getData()?has_content> 
105                    	<h2 class="misc-intro-title">${AdditionalHeaders.SummaryHeading.getData()}</h2> 
106                    </#if> 
107                    <div class="misc-intro"> 
108                        ${.vars['reserved-article-description'].data} 
109                    </div> 
110                     
111                    <#-- bios --> 
112                    <#if Bios.SelectedBio.getSiblings()?has_content> 
113						<#list Bios.SelectedBio.getSiblings() as bio> 
114							<#if bio.getData()?? && bio.getData() != ""> 
115								<#attempt>					 
116									<#assign bioMap = bio.getData()?eval />									 
117									<#assign bioJournalArticle = journalArticleLocalService.getLatestArticle(getterUtil.getLong(bioMap.classPK, 0))> 
118									<#assign documentObject = saxReaderUtil.read(bioJournalArticle.getContentByLocale(locale.toString())) /> 
119									<#-- get fields --> 
120									<#assign bioName = bioJournalArticle.getTitle() /> 
121									<#assign bioTitle = documentObject.selectSingleNode("/root/dynamic-element[@name='JobTitle']/dynamic-content").getData() /> 
122									<#assign bioImageUrl_data = documentObject.selectSingleNode("/root/dynamic-element[@name='HeadshotImage']/dynamic-content").getText() /> 
123									<#assign bioImage = images_folder + "/people/unknown.jpg" /> 
124					                <#if bioImageUrl_data?has_content> 
125					                	<#assign bioImageUrl_map = bioImageUrl_data?eval /> 
126					                	<#assign bioImage = "/documents/" + bioImageUrl_map.groupId + "/" + bioImageUrl_map.fileEntryId + "/" + bioImageUrl_map.title + "/" + bioImageUrl_map.uuid /> 
127					                </#if> 
128					                 
129					                <#-- build url --> 
130									<#if (bioFixedLayout != "") && (bioApPortletInstance != "")> 
131										<#assign viewFullContentURL = url_prefix + fixedDisplayPageBio + "/-/asset_publisher/" + bioApPortletInstance + "/content/" + bioJournalArticle.getUrlTitle() + "/" + bioJournalArticle.getGroupId() /> 
132									<#else> 
133										<#assign viewFullContentURL = "" /> 
134									</#if> 
135									 
136									<a href="${viewFullContentURL}" title="${bioName}" class="misc-biolink"> 
137				                        <div class="misc-biolink-photo"> 
138				                            <img src="${bioImage}" border="0" alt="${bioTitle}" /> 
139				                        </div> 
140				                        <div class="misc-biolink-info"> 
141				                            <h4>${bioName}</h4> 
142				                            <span class="title">${bioTitle}</span> 
143				                            <span class="readbio">Read Bio</span>       
144				                        </div> 
145				                    </a>							 
146					            <#recover> 
147					            </#attempt> 
148							</#if> 
149						</#list> 
150					</#if> 
151 
152                    <#switch ContentType.getData()> 
153  						<#case "document"> 
154  							<@doDocument /> 
155  							<#break> 
156  						<#case "weblink"> 
157  							<@doLink /> 
158  							<#break> 
159  						<#case "video"> 
160  							<@doVideo /> 
161  							<#break> 
162  					</#switch> 
163  					 
164                    <div class="misc-content"> 
165                        ${ContentDetails.Content.getData()} 
166                    </div> 
167                     
168                    <#if ContentType.getData() != "video"> 
169                    	<@doVideo /> 
170                    </#if> 
171                     
172                    <#if ContentType.getData() != "document"> 
173                    	<@doDocument /> 
174                    </#if> 
175                     
176                    <#if ContentType.getData() != "weblink"> 
177                    	<@doLink /> 
178                    </#if> 
179					 
180					<#attempt> 
181                    <#if ContentDetails.CTABanner.getData()?has_content> 
182                        <#if ContentDetails.CTALocation.getData() == "afterContent"> 
183                            <#assign wcd_obj = ContentDetails.CTABanner.getData() /> 
184                            <#list wcd_obj?split(",") as x> 
185                                <#if (x?last_index_of("classPK") != -1)> 
186                                    <#assign web_content_id = x?keep_after("classPK\":\"")?remove_ending("\"}")?remove_ending("\"") > 
187                                </#if> 
188                            </#list> 
189                             
190                            <#if web_content_id??> 
191                                <#assign real_web_content_id = web_content_id?number-2> 
192                                <#assign cur_articleID = journalArticleLocalService.fetchArticle(groupId, real_web_content_id?string)> 
193                                ${journalArticleLocalService.getArticleContent(cur_articleID, cur_articleID.getDDMTemplateKey(), "VIEW", locale, themeDisplay)} 
194                            </#if> 
195                        </#if> 
196                    </#if> 
197                    <#recover> 
198                    </#attempt> 
199 
200                    <div class="misc-disclaimer"> 
201                        ${DisclaimerContent.Disclaimer.getData()} 
202					</div> 
203					 
204					<#attempt> 
205                    <#if ContentDetails.CTABanner.getData()?has_content> 
206                        <#if ContentDetails.CTALocation.getData() == "afterDisclaimer"> 
207                            <#assign wcd_obj = ContentDetails.CTABanner.getData() /> 
208                            <#list wcd_obj?split(",") as x> 
209                                <#if (x?last_index_of("classPK") != -1)> 
210                                    <#assign web_content_id = x?keep_after("classPK\":\"")?remove_ending("\"}")?remove_ending("\"") > 
211                                </#if> 
212                            </#list> 
213                             
214                            <#if web_content_id??> 
215                                <#assign real_web_content_id = web_content_id?number-2> 
216                                <#assign cur_articleID = journalArticleLocalService.fetchArticle(groupId, real_web_content_id?string)> 
217                                ${journalArticleLocalService.getArticleContent(cur_articleID, cur_articleID.getDDMTemplateKey(), "VIEW", locale, themeDisplay)} 
218                            </#if> 
219                        </#if> 
220                    </#if> 
221                    <#recover> 
222                    </#attempt> 
223 
224                    <#attempt> 
225                    <#if ContentDetails.CTABanner.getData()?has_content> 
226                        <#if ContentDetails.CTALocation.getData() == "insideContent"> 
227                        <div class="cta-hidden"> 
228                            <#assign wcd_obj = ContentDetails.CTABanner.getData() /> 
229                            <#list wcd_obj?split(",") as x> 
230                                <#if (x?last_index_of("classPK") != -1)> 
231                                    <#assign web_content_id = x?keep_after("classPK\":\"")?remove_ending("\"}")?remove_ending("\"") > 
232                                </#if> 
233                            </#list> 
234                             
235                            <#if web_content_id??> 
236                                <#assign real_web_content_id = web_content_id?number-2> 
237                                <#assign cur_articleID = journalArticleLocalService.fetchArticle(groupId, real_web_content_id?string)> 
238                                ${journalArticleLocalService.getArticleContent(cur_articleID, cur_articleID.getDDMTemplateKey(), "VIEW", locale, themeDisplay)} 
239                            </#if> 
240                        </div> 
241                        </#if> 
242                    </#if> 
243                    <#recover> 
244                    </#attempt> 
245                </div> 
246                <div class="mellonpublic-misc-sidebar"> 
247 
248					<@doRelatedBanner /> 
249					 
250                	<@doRelatedTitle /> 
251                     
252                    <@listRelatedMisc /> 
253                     
254                    <@listRelatedStrategies /> 
255 
256                    <@listRelatedInsights /> 
257                     
258                    <div class="full-width-background-sidebar"></div> 
259                </div> 
260                <div class="mellonpublic-misc-tools"> 
261                    <ul> 
262                        <li><a href="https://www.linkedin.com/shareArticle?" class="share-popup" target="_blank" rel="noreferrer" title="Share on LinkedIn"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="linkedin" class="svg-inline--fa fa-linkedin fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a></li> 
263                        <li><a href="https://twitter.com/share?via=melloninvests&text=${.vars['reserved-article-title'].data}&" class="share-popup" target="_blank" rel="noreferrer" title="Share on Twitter"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter-square" class="svg-inline--fa fa-twitter-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"></path></svg></a></li> 
264                        <li><a href="javascript: window.print();" title="Print"><svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path fill="currentColor" d="M19 8H5c-1.66 0-3 1.34-3 3v4c0 1.1.9 2 2 2h2v2c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-2h2c1.1 0 2-.9 2-2v-4c0-1.66-1.34-3-3-3zm-4 11H9c-.55 0-1-.45-1-1v-4h8v4c0 .55-.45 1-1 1zm4-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2-9H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"/></svg></a></li> 
265                    </ul> 
266				</div> 
267            </div> 
268        </div> 
269    </div>    
270</div> 
271 
272<#-- macros for displaying specific items on the page --> 
273<#macro doDocument> 
274	<#if DocumentDetails.DocumentLink.getData() != ""> 
275        <div class="misc-download"> 
276			<i class="material-icons"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z" fill="#009dd9" /></svg></i> 
277			<#--  <i class="material-icons">insert_drive_file</i>  --> 
278            <a href="${DocumentDetails.DocumentLink.getData()}" title="${DocumentDetails.DocumentLinkLabelText.getData()}" target="_blank">${DocumentDetails.DocumentLinkLabelText.getData()}</a> 
279        </div> 
280    </#if> 
281</#macro> 
282 
283<#macro doLink> 
284	<#if (LinkOptions.LinkToPage.getFriendlyUrl()?has_content) || (LinkOptions.LinkToURL.getData()?has_content)> 
285		<div class="misc-link"> 
286	        <#-- set the button link based on provided url - page link takes priority over provided URL --> 
287	        <#if LinkOptions.LinkToPage.getFriendlyUrl()?has_content> 
288	            <#assign linkURL = LinkOptions.LinkToPage.getFriendlyUrl() /> 
289	        <#else> 
290	            <#assign linkURL = LinkOptions.LinkToURL.getData() /> 
291	        </#if> 
292			<#--  <i class="material-icons">arrow_forward</i>  --> 
293	        <a href="${linkURL}" title="${LinkOptions.LinkText.getData()}"><span>${LinkOptions.LinkText.getData()}</span></a> 
294		</div> 
295	</#if> 
296</#macro> 
297 
298<#macro doVideo> 
299	<#if VideoDetails??> 
300		<#if VideoDetails.VideoEmbedCode.getData() != "">  
301	    	<div class="misc-video"> 
302	        	${VideoDetails.VideoEmbedCode.getData()} 
303	        </div> 
304	    </#if> 
305    </#if> 
306</#macro>