RbiSearchHeader

Press escape key to go back

Past Searches

Theme
Theme
Text Size
Text Size
S1

RbiAnnouncementWeb

RBI Announcements
RBI Announcements

Governor Banner

Shri Sanjay Malhotra

Governor

text_image

Shri Sanjay Malhotra

Shri Sanjay Malhotra, an Indian Administrative Service Officer of 1990 Batch Rajasthan Cadre, took over charge as the 26th Governor of the Reserve Bank of India for a period of three years effective December 11, 2024. Immediately prior to this appointment, Shri Malhotra was Secretary, Department of Revenue (DOR) in the Ministry of Finance, Government of India, before which Shri Malhotra held the post of Secretary in Department of Financial Services in the Ministry of Finance, Government of India.

Shri Malhotra has vast and diverse experience across various key sectors including power, finance and taxation, information technology, etc. and has held key positions both at the State and the Central Government, apart from having a stint with a United Nations agency. He was also Chairman and Managing Director of Rural Electrification Corporation Limited. Shri Malhotra served on the Central Board of Reserve Bank of India as a Government Nominee Director from February 16, 2022 to November 14, 2022.

Shri Malhotra is a graduate in Computer Science and Engineering from the Indian Institute of Technology, Kanpur and a Master in Public Policy from the Princeton University, USA.

Contact Information

Contact Information

Asset Publisher

Listofpreviousgovernors

Shri Shaktikanta Das

Shri Shaktikanta Das, IAS Retd., former Secretary, Department of Revenue and Department of Economic Affairs, Ministry of Finance, Government of India assumed charge as the 25th Governor of the Reserve Bank of India effective December 12, 2018. Immediately prior to his current assignment, he was acting as Member, 15th Finance Commission and G20 Sherpa of India.

Shri Shaktikanta Das has vast experience in various areas of governance in the last 38 years. Shri Das has held important positions in the Central and State Governments in the areas of Finance, Taxation, Industries, Infrastructure, etc.

During his long tenure in the Ministry of Finance, Government of India, he was directly associated with the preparation of as many as 8 Union Budgets. Shri Das has also served as India’s Alternate Governor in the World Bank, Asian Development Bank (ADB), New Development Bank (NDB) and Asian Infrastructure Investment Bank (AIIB). He has represented India in international fora like the IMF, G20, BRICS, SAARC, etc.

Shri Shaktikanta Das is a postgraduate from St. Stephen’s College, Delhi University.

Central Government has re-appointed Shri Shaktikanta Das as Governor, Reserve Bank of India for a further period of three years beyond the 10th day of December 2021, or until further orders, whichever is earlier.

Dr. Urjit R. Patel

Dr. Urjit R. Patel

Dr. Urjit R. Patel assumed charge as the twenty-fourth Governor of the Reserve Bank of India effective September 4, 2016 after serving as Deputy Governor since January 2013. He was re-appointed as Deputy Governor on January 11, 2016 after completion of his first three-year term of office. Among his assignments as Deputy Governor, Dr. Patel chaired the Expert Committee to Revise and Strengthen the Monetary Policy Framework. Representing India, he actively participated in steering the signing into force of the inter-governmental treaty and the Inter-Central Bank Agreement (ICBA) among the BRICS nations, which led to the establishment of the Contingent Reserve Arrangement (CRA), a swap line framework among the central banks of these countries.

Dr. Patel has also served at the International Monetary Fund (IMF). He was on deputation from the IMF to the Reserve Bank during 1996-1997, and in that capacity he provided advice on development of the debt market, banking sector reforms, pension fund reforms, and evolution of the foreign exchange market. He was a Consultant to the Ministry of Finance (Department of Economic Affairs), Government of India, from 1998 to 2001. He has also had other assignments in the public and private sectors.

Dr. Patel has worked closely with several central and state government high level committees, including the Task Force on Direct Taxes (Kelkar Committee), the High Level Expert Group for Reviewing the Civil & Defence Services Pension System, the Prime Minister’s Task Force on Infrastructure, the Group of Ministers on Telecom Matters, the Committee on Civil Aviation Reforms and the Ministry of Power’s Expert Group on State Electricity Boards.

Dr. Patel has several publications in the areas of Indian macroeconomics, monetary policy, public finance, the Indian financial sector, international trade, and regulatory economics.

Dr. Patel has a Ph.D in economics from Yale University, an M. Phil from University of Oxford and a B. Sc. from the University of London.

Dr. Raghuram G. Rajan

Dr. Raghuram G. Rajan

Dr. Raghuram Rajan assumed charge as the 23rd Governor of the Reserve Bank of India on September 4, 2013. Prior to this, he was the Chief Economic Advisor, Ministry of Finance, Government of India and the Eric J. Gleacher Distinguished Service Professor of Finance at the University of Chicago's Booth School. Between 2003 and 2006, Dr. Rajan was the Chief Economist and Director of Research at the International Monetary Fund.

Dr. Rajan's research interests are in banking, corporate finance, and economic development, especially the role finance plays in it. He has co-authored Saving Capitalism from the Capitalists with Luigi Zingales in 2003. He then wrote Fault Lines: How Hidden Fractures Still Threaten the World Economy, for which he was awarded the Financial Times-Goldman Sachs prize for best business book in 2010.

Dr. Rajan is a member of the Group of Thirty. He was the President of the American Finance Association in 2011 and is a member of the American Academy of Arts and Sciences. In January 2003, the American Finance Association awarded Dr. Rajan the inaugural Fischer Black Prize for the best finance researcher under the age of 40. The other awards he has received include the global Indian of the year award from NASSCOM in 2011, the Infosys prize for the Economic Sciences in 2012, and the Center for Financial Studies-Deutsche Bank Prize for financial economics in 2013.

Born on February 3, 1963, Dr. Rajan is married to Radhika and has two children.

Dr. D. Subbarao

Dr. D. Subbarao

Dr. D. Subbarao took over on September 5, 2008 as the 22nd Governor of the Reserve Bank of India. Dr. Subbarao has been appointed for a three-year term. Prior to this appointment, Dr. Subbarao was the Finance Secretary in the Ministry of Finance, Government of India.

Dr. Subbarao has earlier been Secretary to the Prime Minister's Economic Advisory Council (2005-2007), lead economist in the World Bank (1999-2004), Finance Secretary to the Government of Andhra Pradesh (1993-98) and Joint Secretary in the Department of Economic Affairs, Ministry of Finance, Government of India (1988-1993).

Dr. Subbarao has wide experience in public finance. In the World Bank, he worked on issues of public finance in countries of Africa and East Asia. He managed a flagship study on decentralisation across major countries of East Asia including China, Indonesia, Vietnam, Philippines and Cambodia. Dr. Subbarao was also involved in initiation of fiscal reforms at the state level. Dr. Subbarao has written extensively on issues in public finance, decentralisation and political economy of reforms.

Born on August 11, 1949, Dr. Subbarao holds a B.Sc (Hons) in Physics from the Indian Institute of Technology, Kharagpur and M.Sc in Physics from the Indian Institute of Technology, Kanpur. Dr. Subbarao also holds an MS degree in Economics from Ohio State University. He was a Humphrey fellow at MIT during 1982-83. He has a Ph.D. in Economics with thesis on fiscal reforms at the sub-national level. Dr. Subbarao was a topper in the All India Civil Service examination for entry into Indian Administrative Services and Indian Foreign Services in 1972. He was one of the first IITians to join the civil service.

Dr. Y.V. Reddy

Dr. Yaga Venugopal Reddy the twenty-first Governor, is a member of the Indian Administrative Service. He has spent most of his career in the areas of finance and planning. He served as Secretary (Banking) in Ministry of Finance, Additional Secretary, Ministry of Commerce, Joint Secretary in Ministry of Finance in Government of India, Principal Secretary, Government of Andhra Pradesh and had a a six year tenure as Deputy Governor of the Reserve Bank of India. Prior to his appointment as the Governor, Dr. Reddy was India's Executive Director on the Board of the International Monetary Fund.

Dr. Reddy has made significant policy contributions in the areas of financial sector reforms; trade finance; monitoring of balance of payments and exchange rate; external commercial borrowings; centre-state financial relations; regional planning; and public enterprise reform and has been closely associated with institution building. He has several publications to his credit mainly in areas relating to finance, planning and public enterprises.

Related Links

Asset Publisher

Asset Publisher

an-error-occurred-while-processing-the-template
The following has evaluated to null or missing:
==> speakerCategoryId  [in template "20099#20125#104631168" at line 43, column 226]

----
Tip: If the failing expression is known to 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 category.getCategoryId() == speak...  [in template "20099#20125#104631168" at line 43, column 193]
----
1<#assign 
2    assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
3    dLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
4    assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") 
5		assetCategoryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")		 /> 
6<#assign UUID="" groupId="" fileSize="" docURL="" /> 
7<#assign index= 0 /> 
8<#assign currDate=.now?date /> 
9<#assign contentCategoryId = 8508119 /> 
10<#assign speakerVocabularyId = 45696473 /> 
11<#assign plId = layout.getPlid()> 
12<#assign layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId) /> 
13<#assign assetCategories = layoutEntry.getCategories()/> 
14	<#list assetCategories as assetCategory> 
15		<#if assetCategory.getVocabularyId() == speakerVocabularyId > 
16				<#assign speakerCategoryId = assetCategory.getCategoryId()/> 
17		</#if> 
18	</#list> 
19<#assign count = 0 /> 
20<#if entries?has_content> 
21<div class="Notification-content-wrap full-width governor-page-related-links dynamic-resize" tabindex="0"> 
22    <div class="container"> 
23        <div class="row no-gutters"> 
24						<div class="col-10" id="title-heading"> 
25						<h3 class="section-blcok-heading">${languageUtil.get(locale, "speeches")} </h3> 
26						</div> 
27            <div class="col-12"> 
28                <div class="notifications-row-wrapper toogle-grid-row show-row-view"> 
29                    <div class="row"> 
30                            <#list entries as curEntry> 
31													 
32																<#if curEntry.getClassName()== "com.liferay.journal.model.JournalArticle"> 
33																		<#assign assetRenderer=curEntry.getAssetRenderer() 
34																						 article=assetRenderer.getArticle() 
35																						journalArticle=assetRenderer.getAssetObject() 
36																						resourceKey = journalArticle.getResourcePrimKey()    
37																		categories = assetCategoryLocalService.getCategories(curEntry.getClassName(),resourceKey?number) /> 
38																		<#list categories as category> 
39																				 
40																						<#if category.getCategoryId()== contentCategoryId > 
41																								<#list categories as category> 
42																										 
43																								<#if category.getCategoryId() == speakerCategoryId > 
44																										<#assign article=assetRenderer.getArticle() 
45                                    									URL=article.getExpandoBridge().getAttribute("pdf-url") 
46																											groupId=article.getGroupId() 
47                                    									content=saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale)) 
48                                    									displayDate=article.getDisplayDate() 
49                                    									publishDate=curEntry.publishDate 
50																											speaker=content.valueOf("//dynamic-element[@name='Text48856133']/dynamic-content") 
51																											designation=content.valueOf("//dynamic-element[@name='Text01027456']/dynamic-content") 
52                                    									videoLink=content.valueOf("//dynamic-element[@name='Field62975852']/dynamic-content") 
53																											viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, 
54                                    									curEntry) viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse, 
55                                    									viewURL) index=index+1 /> 
56																									<#assign count=count + 1 /> 
57																									<#if count gt 5> 
58																										<#break> 
59																									</#if> 
60                                      <#if index gt 5> 
61																		<div class=" col-12 toggle-content-each grid-view-col d-none"> 
62                                                    <#else> 
63                                                        <div class="col-12 toggle-content-each grid-view-col"> 
64                                            </#if> 
65																					<div class="notification-row-each"> 
66                                                <div class="notification-row-each-inner"> 
67                                                    <div class="notification-date">						 
68																									<#if displayDate?has_content> 
69																													${dateUtil.getDate(publishDate, "MMM dd, yyyy", locale)} 
70                                                            <#if publishDate?has_content> 
71                                                                <#if currDate?string==publishDate?date?string> 
72                                                                    <div class="tag-new tag-date"><span>New</span></div> 
73                                                                </#if> 
74                                                            </#if> 
75																										</#if> 
76																									</div> 
77																													<a href="${viewURL}" class="mtm_list_item_heading"> 
78																													<div class="covid19-result-heading c-tooltips position-relative"> 
79																														<span class="mtm_list_item_heading textTruncate governor-page-title"> 
80																															${curEntry.getTitle(locale)} </span> 
81																														<div class="custom-tooltip covid19-tooltip"> 
82																														 <div class="tooltip-arrow-up"></div> 
83																																<div class="tooltip-content covid19-content"> 
84																																	${curEntry.getSummary(locale)} 
85																															</div> 
86																														</div> 
87																														</div> 
88																													</a> 
89																									<div class="speaker-content font-resized"> 
90																									<#if speaker?has_content>${speaker}, </#if> 
91																										<#if designation?has_content>${designation} </#if> 
92																									</div> 
93																									<#if URL?has_content> 
94                                                        <#list URL?keys as key> 
95                                                            <#if key==locale> 
96                                                                <#assign docURL=URL?values[key_index] /> 
97                                                            </#if> 
98                                                        </#list> 
99                                                    </#if> 
100                                                    <#if docURL?has_content> 
101                                                        <#list docURL?split("/") as sValue> 
102                                                            <#if sValue?is_last> 
103                                                                <#list sValue?split("?") as uuid> 
104                                                                    <#if uuid?is_first> 
105                                                                        <#assign UUID=uuid /> 
106                                                                    </#if> 
107                                                                </#list> 
108                                                            </#if> 
109                                                        </#list> 
110                                                    </#if> 
111																									<#attempt> 
112                                                   <#if UUID?has_content> 
113																										<#assign 
114																												DLFileEntry=dLFileEntryLocalService.fetchFileEntry(UUID,groupId?number) 
115																												fileSize=DLFileEntry.getSize() 
116																												fileAssetEntry=assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", 
117																												DLFileEntry.getFileEntryId()) 
118																												docURL=fileAssetEntry.getAssetRenderer().getURLDownload(themeDisplay) /> 
119																										</#if> 
120																										<#recover> 
121																							</#attempt> 
122																									 
123                                                    <div class="btn-wrap"> 
124																										<#if docURL?has_content  && docURL!=""> 
125																													<div class="inner-wrap"> 
126                                                            <a href="${docURL?split('?')[0]}" target="_blank" 
127                                                                class="matomo_download "> 
128																															<img src="/documents/70233/0/fileDownload.svg" 
129                                                                class="downloadFile" alt="Download File" 
130                                                                title="Download File"> 
131                                                                ${languageUtil.get(locale, "pdf")} (<span class="fileSizeSpeeches">${fileSize}</span>) 
132                                                            </a> 
133														</div> 
134															 
135															</#if> 
136 
137															<#if videoLink?has_content && videoLink!=""> 
138																											<div class="inner-wrap yt-link-wrap"> 
139																												<a href="javascript:void(0)" 
140																													data-toggle="modal" 
141																													data-target="#videoPopUpYT-${curEntry?counter}"> 
142																													<img src="/documents/20125/67624/icon-youtube.svg" 
143																														class="downloadFile mtm_yt" 
144																														alt="${languageUtil.get(locale,'youtube')}" 
145																														title="${languageUtil.get(locale,'youtube')}"> 
146																													<span 
147																														class="mtm_yt">${languageUtil.get(locale,'youtube')}</span> 
148																												</a> 
149																											</div> 
150																										</#if> 
151                                                       </div> 				 
152																						</div>  
153																					</div>  
154																				</div>  
155																			</#if> 
156																	</#list> 
157																</#if> 
158															</#list>		 
159														</#if> 
160													</#list> 
161 
162														<#if index gt 5> 
163                            <div class="col-12 "> 
164                                <div class="view-all-wrap toggle-view-content"> 
165                                    <a href="	${themeDisplay.getURLPortal()}/web/rbi/speeches?speaker=${speakerCategoryId}" role="button" 
166                                        class=" link-view-more link-animation-hover"> 
167                                        <span class="txtToggle"> ${languageUtil.get(locale, "view-more")} </span> 
168                                        <span> 
169                                            <img class="down-arrow" src="/documents/20125/67624/icon+feather-down.svg" 
170                                                alt="view more" title="view more"> 
171                                        </span> 
172                                    </a> 
173 
174                                </div> 
175														</div> 
176															</#if> 
177							</div>  
178						</div>  
179				</div>		 
180			</div>   
181	</div>   
182	</div>   
183	</#if> 
184 
185			 <input type="hidden" id="speechesIndex" value="${index}"> 
186			 
187<script> 
188	$(document).ready(function () { 
189		$(".youtube-video-popup #yt-player").each(function () { 
190			let newYoutubeLink = $(this).find("#iframe-yt").attr("data-src"); 
191			if (newYoutubeLink.includes("youtube.com")) { 
192				if (newYoutubeLink.includes('?')) { 
193					if (newYoutubeLink.includes('/live/')) { 
194						if (newYoutubeLink.includes('www')) { 
195							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'youtube.com/embed/') 
196
197						else { 
198							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'www.youtube.com/embed/') 
199
200
201					if (!newYoutubeLink.includes('?enablejsapi=1')) { 
202						newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
203
204
205				else { 
206					if (newYoutubeLink.includes('/live/')) { 
207						if (newYoutubeLink.includes('www')) { 
208							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'youtube.com/embed/') 
209
210						else { 
211							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'www.youtube.com/embed/') 
212
213
214					newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
215
216				$(this).find("#iframe-yt").attr("data-src", newYoutubeLink); 
217
218			else if (newYoutubeLink.includes("youtu.be")) { 
219				newYoutubeLink = newYoutubeLink.replace("youtu.be", "www.youtube.com/embed"); 
220				if (newYoutubeLink.includes('?')) { 
221					if (!newYoutubeLink.includes('?enablejsapi=1')) { 
222						newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
223
224
225				else { 
226					newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
227
228				$(this).find("#iframe-yt").attr("data-src", newYoutubeLink); 
229				return; 
230			} else if (newYoutubeLink.includes("watch?v=")) { 
231				newYoutubeLink = newYoutubeLink.replace("watch?v=", "embed/"); 
232				if (newYoutubeLink.includes('?')) { 
233					if (!newYoutubeLink.includes('?enablejsapi=1')) { 
234						newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
235
236
237				else { 
238					newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
239
240				$(this).find("#iframe-yt").attr("data-src", newYoutubeLink); 
241				return; 
242
243		}); 
244		$(".fileSizeSpeeches").each(function () { 
245			var fileSizeSpeeches = $(this).html() 
246			if (fileSizeSpeeches != "") { 
247				$(this).html(formatFileSizeSpeeches(parseInt(fileSizeSpeeches), 2)) 
248
249		}); 
250 
251		function formatFileSizeSpeeches(bytes, decimalPoint) { 
252			if (bytes == 0) 
253				return '0 Bytes'; 
254			var k = 1024, 
255				dm = decimalPoint || 2, 
256				sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 
257				i = Math.floor(Math.log(bytes) / Math.log(k)); 
258			return (parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]); 
259
260	}); 
261 
262</script> 

Asset Publisher

an-error-occurred-while-processing-the-template
The following has evaluated to null or missing:
==> speakerCategoryId  [in template "20099#20125#104631164" at line 40, column 226]

----
Tip: If the failing expression is known to 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 category.getCategoryId() == speak...  [in template "20099#20125#104631164" at line 40, column 193]
----
1<#assign 
2    assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
3    dLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
4    assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") 
5		assetCategoryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")		 /> 
6<#assign UUID="" groupId="" fileSize="" docURL="" /> 
7<#assign indexInteractions= 0 /> 
8<#assign currDate=.now?date /> 
9<#assign contentCategoryId = 8508122 />  
10<#assign speakerVocabularyId = 45696473 /> 
11<#assign plId = layout.getPlid()> 
12<#assign layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId) /> 
13<#assign assetCategories = layoutEntry.getCategories()/> 
14	<#list assetCategories as assetCategory> 
15		<#if assetCategory.getVocabularyId() == speakerVocabularyId > 
16				<#assign speakerCategoryId = assetCategory.getCategoryId()/> 
17		</#if> 
18	</#list> 
19<#assign count = 0 /> 
20<#if entries?has_content> 
21<div class="Notification-content-wrap full-width governor-page-related-links dynamic-resize" tabindex="0"> 
22    <div class="container"> 
23        <div class="row no-gutters"> 
24						<div class="col-10" id="title-interaction"> 
25						<h3 class="section-blcok-heading">${languageUtil.get(locale, "interviews")}</h3> 
26						</div> 
27            <div class="col-12"> 
28                <div class="notifications-row-wrapper toogle-grid-row show-row-view"> 
29                    <div class="row"> 
30                            <#list entries as curEntry> 
31																<#if curEntry.getClassName()== "com.liferay.journal.model.JournalArticle"> 
32																		<#assign assetRenderer=curEntry.getAssetRenderer() 
33																						 article=assetRenderer.getArticle() 
34																						journalArticle=assetRenderer.getAssetObject() 
35																						resourceKey = journalArticle.getResourcePrimKey()    
36																		categories = assetCategoryLocalService.getCategories(curEntry.getClassName(),resourceKey?number) /> 
37																		<#list categories as category> 
38																						<#if category.getCategoryId()== contentCategoryId > 
39																								<#list categories as category> 
40																								<#if category.getCategoryId() == speakerCategoryId > 
41																										<#assign article=assetRenderer.getArticle() 
42                                    									URL=article.getExpandoBridge().getAttribute("pdf-url") 
43																											groupId=article.getGroupId() 
44                                    									content=saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale)) 
45                                    									displayDate=article.getDisplayDate() 
46                                    									publishDate=curEntry.publishDate 
47																											speaker=content.valueOf("//dynamic-element[@name='Text48856133']/dynamic-content") 
48																											designation=content.valueOf("//dynamic-element[@name='Text01027456']/dynamic-content") 
49                                    									viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, 
50                                    									curEntry) viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse, 
51                                    									viewURL) indexInteractions=indexInteractions+1 /> 
52																									<#assign count=count + 1 /> 
53																									<#if count gt 5> 
54																										<#break> 
55																									</#if> 
56                                      <#if indexInteractions gt 5> 
57																		<div class=" col-12 toggle-content-each grid-view-col d-none"> 
58                                                    <#else> 
59                                                        <div class="col-12 toggle-content-each grid-view-col"> 
60                                            </#if> 
61																					<div class="notification-row-each"> 
62                                                <div class="notification-row-each-inner"> 
63                                                    <div class="notification-date">						 
64																									<#if displayDate?has_content> 
65																													${dateUtil.getDate(publishDate, "MMM dd, yyyy", locale)} 
66                                                            <#if publishDate?has_content> 
67                                                                <#if currDate?string==publishDate?date?string> 
68                                                                    <div class="tag-new tag-date"><span>New</span></div> 
69                                                                </#if> 
70                                                            </#if> 
71																										</#if> 
72																									</div> 
73																													<a href="${viewURL}" class="mtm_list_item_heading"> 
74																													<div class="covid19-result-heading c-tooltips position-relative"> 
75																														<span class="mtm_list_item_heading textTruncate governor-page-title"> 
76																															${curEntry.getTitle(locale)} </span> 
77																														<div class="custom-tooltip covid19-tooltip"> 
78																														 <div class="tooltip-arrow-up"></div> 
79																																<div class="tooltip-content covid19-content"> 
80																																	${curEntry.getSummary(locale)} 
81																															</div> 
82																														</div> 
83																														</div> 
84																													</a> 
85																									<div class="speaker-content font-resized"> 
86																									<#if speaker?has_content>${speaker}, </#if> 
87																										<#if designation?has_content>${designation} </#if> 
88																									</div> 
89																									<#if URL?has_content> 
90                                                        <#list URL?keys as key> 
91                                                            <#if key==locale> 
92                                                                <#assign docURL=URL?values[key_index] /> 
93                                                            </#if> 
94                                                        </#list> 
95                                                    </#if> 
96                                                    <#if docURL?has_content> 
97                                                        <#list docURL?split("/") as sValue> 
98                                                            <#if sValue?is_last> 
99                                                                <#list sValue?split("?") as uuid> 
100                                                                    <#if uuid?is_first> 
101                                                                        <#assign UUID=uuid /> 
102                                                                    </#if> 
103                                                                </#list> 
104                                                            </#if> 
105                                                        </#list> 
106                                                    </#if> 
107																									<!-- File --> 
108																									<#attempt> 
109                                                   <#if UUID?has_content> 
110																										<#assign 
111																												DLFileEntry=dLFileEntryLocalService.fetchFileEntry(UUID,groupId?number) 
112																												fileSize=DLFileEntry.getSize() 
113																												fileAssetEntry=assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", 
114																												DLFileEntry.getFileEntryId()) 
115																												docURL=fileAssetEntry.getAssetRenderer().getURLDownload(themeDisplay) /> 
116																										</#if> 
117																										<#recover> 
118																							</#attempt> 
119										 
120                                                    <div class="btn-wrap"> 
121														<#if docURL?? && docURL?has_content> 
122														<div class="inner-wrap"> 
123 
124                                                            <a href="${docURL?split('?')[0]}" target="_blank" 
125                                                                class="matomo_download "> 
126																															<img src="/documents/70233/0/fileDownload.svg" 
127                                                                class="downloadFile" alt="Download File" 
128                                                                title="Download File"> 
129                                                                ${languageUtil.get(locale, "pdf")} (<span class="fileSizeInteractions">${fileSize}</span>) 
130                                                            </a> 
131														</div> 
132														</#if> 
133 
134														<#if videoLink?has_content> 
135												<div class="inner-wrap yt-link-wrap"> 
136													<a href="javascript:void(0)" 
137														data-toggle="modal" 
138														data-target="#videoPopUpYT-${curEntry?counter}"> 
139														<img src="/documents/20125/67624/icon-youtube.svg" 
140															class="downloadFile mtm_yt" 
141															alt="${languageUtil.get(locale,'youtube')}" 
142															title="${languageUtil.get(locale,'youtube')}"> 
143														<span 
144															class="mtm_yt">${languageUtil.get(locale,'youtube')}</span> 
145													</a> 
146 
147												</div> 
148										</#if> 
149 
150 
151                                                       </div>  
152                                                     
153																										 
154																						</div>  
155																					</div>  
156																				</div>  
157																			</#if> 
158																	</#list> 
159																</#if> 
160															</#list>		 
161														</#if> 
162													</#list> 
163													 
164														<#if indexInteractions gt 5> 
165                            <div class="col-12 "> 
166                                <div class="view-all-wrap toggle-view-content"> 
167                                    <a href="	${themeDisplay.getURLPortal()}/web/rbi/interviews?interviewees=${speakerCategoryId}" role="button" 
168                                        class=" link-view-more link-animation-hover"> 
169                                        <span class="txtToggle">${languageUtil.get(locale, "view-more")}</span> 
170                                        <span> 
171                                            <img class="down-arrow" src="/documents/20125/67624/icon+feather-down.svg" 
172                                                alt="view more" title="view more"> 
173                                        </span> 
174                                    </a> 
175 
176                                </div> 
177														</div> 
178															</#if> 
179											 
180							</div>  
181						</div>  
182				</div>		 
183			</div>  
184	</div>   
185	</div>   
186	</#if> 
187 
188			 <input type="hidden" id="indexInteractions" value="${indexInteractions}"> 
189			 
190<script> 
191	$(document).ready(function () { 
192		$(".youtube-video-popup #yt-player").each(function () { 
193			let newYoutubeLink = $(this).find("#iframe-yt").attr("data-src"); 
194			if (newYoutubeLink.includes("youtube.com")) { 
195				if (newYoutubeLink.includes('?')) { 
196					if (newYoutubeLink.includes('/live/')) { 
197						if (newYoutubeLink.includes('www')) { 
198							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'youtube.com/embed/') 
199
200						else { 
201							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'www.youtube.com/embed/') 
202
203
204					if (!newYoutubeLink.includes('?enablejsapi=1')) { 
205						newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
206
207
208				else { 
209					if (newYoutubeLink.includes('/live/')) { 
210						if (newYoutubeLink.includes('www')) { 
211							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'youtube.com/embed/') 
212
213						else { 
214							newYoutubeLink = newYoutubeLink.replace('youtube.com/live/', 'www.youtube.com/embed/') 
215
216
217					newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
218
219				$(this).find("#iframe-yt").attr("data-src", newYoutubeLink); 
220
221			else if (newYoutubeLink.includes("youtu.be")) { 
222				newYoutubeLink = newYoutubeLink.replace("youtu.be", "www.youtube.com/embed"); 
223				if (newYoutubeLink.includes('?')) { 
224					if (!newYoutubeLink.includes('?enablejsapi=1')) { 
225						newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
226
227
228				else { 
229					newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
230
231				$(this).find("#iframe-yt").attr("data-src", newYoutubeLink); 
232				return; 
233			} else if (newYoutubeLink.includes("watch?v=")) { 
234				newYoutubeLink = newYoutubeLink.replace("watch?v=", "embed/"); 
235				if (newYoutubeLink.includes('?')) { 
236					if (!newYoutubeLink.includes('?enablejsapi=1')) { 
237						newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
238
239
240				else { 
241					newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
242
243				$(this).find("#iframe-yt").attr("data-src", newYoutubeLink); 
244				return; 
245
246		}); 
247		$(".fileSizeInteractions").each(function () { 
248			var fileSizeInteractions = $(this).html() 
249			if (fileSizeInteractions != "") { 
250				$(this).html(formatFileSizeInteractions(parseInt(fileSizeInteractions), 2)) 
251
252		}); 
253 
254		function formatFileSizeInteractions(bytes, decimalPoint) { 
255			if (bytes == 0) 
256				return '0 Bytes'; 
257			var k = 1024, 
258				dm = decimalPoint || 2, 
259				sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 
260				i = Math.floor(Math.log(bytes) / Math.log(k)); 
261			return (parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]); 
262
263	}); 
264 
265</script> 

Asset Publisher

an-error-occurred-while-processing-the-template
The following has evaluated to null or missing:
==> speakerCategoryId  [in template "20099#20125#104631160" at line 37, column 226]

----
Tip: If the failing expression is known to 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 category.getCategoryId() == speak...  [in template "20099#20125#104631160" at line 37, column 193]
----
1<#assign 
2    assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
3    dLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
4    assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") 
5		assetCategoryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")		 /> 
6<#assign UUID="" groupId="" fileSize="" docURL="" /> 
7<#assign indexKeyReleases= 0 /> 
8<#assign currDate=.now?date /> 
9<#assign speakerVocabularyId = 45696473 /> 
10<#assign plId = layout.getPlid()> 
11<#assign layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId) /> 
12<#assign assetCategories = layoutEntry.getCategories()/> 
13	<#list assetCategories as assetCategory> 
14		<#if assetCategory.getVocabularyId() == speakerVocabularyId > 
15				<#assign speakerCategoryId = assetCategory.getCategoryId()/> 
16		</#if> 
17	</#list> 
18<#assign count = 0 /> 
19<#if entries?has_content> 
20<div class="Notification-content-wrap full-width governor-page-related-links dynamic-resize" tabindex="0"> 
21    <div class="container"> 
22        <div class="row no-gutters"> 
23						<div class="col-10" id = "title-keyreleases"> 
24						<h3 class="section-blcok-heading">${languageUtil.get(locale, "Key-Releases")}</h3> 
25						</div> 
26            <div class="col-12"> 
27                <div class="notifications-row-wrapper toogle-grid-row show-row-view"> 
28                    <div class="row"> 
29                            <#list entries as curEntry> 
30																<#if curEntry.getClassName()== "com.liferay.journal.model.JournalArticle"> 
31																		<#assign assetRenderer=curEntry.getAssetRenderer() 
32																						 article=assetRenderer.getArticle() 
33																						journalArticle=assetRenderer.getAssetObject() 
34																						resourceKey = journalArticle.getResourcePrimKey()    
35																		categories = assetCategoryLocalService.getCategories(curEntry.getClassName(),resourceKey?number) /> 
36																		<#list categories as category> 
37																								<#if category.getCategoryId() == speakerCategoryId > 
38																										<#assign article=assetRenderer.getArticle() 
39                                    									URL=article.getExpandoBridge().getAttribute("pdf-url") 
40																											groupId=article.getGroupId() 
41                                    									content=saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale)) 
42                                    									displayDate=article.getDisplayDate() 
43                                    									publishDate=curEntry.publishDate 
44                                    									viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, 
45                                    									curEntry) viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse, 
46                                    									viewURL) indexKeyReleases=indexKeyReleases+1 /> 
47																									<#assign count=count + 1 /> 
48																									<#if count gt 5> 
49																										<#break> 
50																									</#if> 
51                                      <#if indexKeyReleases gt 5> 
52																		<div class=" col-12 toggle-content-each grid-view-col d-none"> 
53                                                    <#else> 
54                                                        <div class="col-12 toggle-content-each grid-view-col"> 
55                                            </#if> 
56																					<div class="notification-row-each"> 
57                                                <div class="notification-row-each-inner"> 
58                                                    <div class="notification-date">						 
59																									<#if displayDate?has_content> 
60																													${dateUtil.getDate(publishDate, "MMM dd, yyyy", locale)} 
61                                                            <#if publishDate?has_content> 
62                                                                <#if currDate?string==publishDate?date?string> 
63                                                                    <div class="tag-new tag-date"><span>New</span></div> 
64                                                                </#if> 
65                                                            </#if> 
66																										</#if> 
67																									</div> 
68																													<a href="${viewURL}" class="mtm_list_item_heading"> 
69																													<div class="covid19-result-heading c-tooltips position-relative"> 
70																														<span class="mtm_list_item_heading textTruncate governor-page-title"> 
71																															${curEntry.getTitle(locale)} </span> 
72																														<div class="custom-tooltip covid19-tooltip"> 
73																														 <div class="tooltip-arrow-up"></div> 
74																																<div class="tooltip-content covid19-content"> 
75																																	${curEntry.getSummary(locale)} 
76																															</div> 
77																														</div> 
78																														</div> 
79																													</a> 
80																									<div class="speaker-content font-resized"> 
81																									<#if speaker?has_content>${speaker}, </#if> 
82																										<#if designation?has_content>${designation} </#if> 
83																									</div> 
84																									<#if URL?has_content> 
85                                                        <#list URL?keys as key> 
86                                                            <#if key==locale> 
87                                                                <#assign docURL=URL?values[key_index] /> 
88                                                            </#if> 
89                                                        </#list> 
90                                                    </#if> 
91                                                    <#if docURL?has_content> 
92                                                        <#list docURL?split("/") as sValue> 
93                                                            <#if sValue?is_last> 
94                                                                <#list sValue?split("?") as uuid> 
95                                                                    <#if uuid?is_first> 
96                                                                        <#assign UUID=uuid /> 
97                                                                    </#if> 
98                                                                </#list> 
99                                                            </#if> 
100                                                        </#list> 
101                                                    </#if> 
102																									<!-- File --> 
103																									<#attempt> 
104                                                   <#if UUID?has_content> 
105																										<#assign 
106																												DLFileEntry=dLFileEntryLocalService.fetchFileEntry(UUID,groupId?number) 
107																												fileSize=DLFileEntry.getSize() 
108																												fileAssetEntry=assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", 
109																												DLFileEntry.getFileEntryId()) 
110																												docURL=fileAssetEntry.getAssetRenderer().getURLDownload(themeDisplay) /> 
111																										</#if> 
112																										<#recover> 
113																							</#attempt> 
114																									 
115                                                    <div class="btn-wrap"> 
116															<#if docURL?? && docURL?has_content> 
117														<div class="inner-wrap"> 
118                                                            <a href="${docURL?split('?')[0]}" target="_blank" 
119                                                                class="matomo_download "> 
120																															<img src="/documents/70233/0/fileDownload.svg" 
121                                                                class="downloadFile" alt="Download File" 
122                                                                title="Download File"> 
123                                                                ${languageUtil.get(locale, "pdf")} (<span class="fileSizeReleases">${fileSize}</span>) 
124                                                            </a> 
125															</div> 
126                                                                </#if> 
127 
128                                        <#if videoLink?has_content> 
129                                                                                    <div class="inner-wrap yt-link-wrap"> 
130                                                                                        <a href="javascript:void(0)" 
131                                                                                            data-toggle="modal" 
132                                                                                            data-target="#videoPopUpYT-${curEntry?counter}"> 
133                                                                                            <img src="/documents/20125/67624/icon-youtube.svg" 
134                                                                                                class="downloadFile mtm_yt" 
135                                                                                                alt="${languageUtil.get(locale,'youtube')}" 
136                                                                                                title="${languageUtil.get(locale,'youtube')}"> 
137                                                                                            <span 
138                                                                                                class="mtm_yt">${languageUtil.get(locale,'youtube')}</span> 
139                                                                                        </a> 
140 
141                                                                                    </div> 
142                                                                                </#if> 
143                                                       </div>  
144                                                     
145																						</div>  
146																					</div>  
147																				</div>  
148																			</#if> 
149																	</#list>		 
150														</#if> 
151													</#list> 
152														 
153							</div>  
154						</div>  
155				</div>		  
156			</div>   
157	</div>   
158	</div>   
159	</#if> 
160 
161			 <input type="hidden" id="indexKeyReleases" value="${indexKeyReleases}"> 
162			 
163<script> 
164		$( document ).ready(function() {			 
165			var indexSp = $('#speechesIndex').val(); 
166			console.log("indexSp " + indexSp); 
167			var indexMI = $('#indexInteractions').val(); 
168			console.log("indexMI " + indexMI); 
169			var indexKR = $('#indexKeyReleases').val(); 
170			console.log("indexKR " + indexKR); 
171		if (indexSp == 0) { 
172            $('#title-heading').hide(); // Hide the div 
173        }  
174		if(indexMI == 0){ 
175            $('#title-interaction').hide(); // Hide the div 
176
177		if(indexKR == 0){ 
178            $('#title-keyreleases').hide(); // Hide the div 
179
180		if (indexSp == 0 && indexMI == 0 && indexKR == 0){ 
181			 $('.governor-page-related-links,.related_links_heading').hide(); 
182
183				$(".youtube-video-popup #yt-player").each(function(){ 
184					let newYoutubeLink = $(this).find("#iframe-yt").attr("data-src"); 
185					console.log("newYoutubeLink : "+newYoutubeLink); 
186					if(newYoutubeLink.includes("youtube.com")){ 
187						if(newYoutubeLink.includes('?')){ 
188							newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
189
190						else{ 
191								newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
192
193												$(this).find("#iframe-yt").attr("data-src",newYoutubeLink); 
194
195					else if(newYoutubeLink.includes("youtu.be")){ 
196						newYoutubeLink = newYoutubeLink.replace("youtu.be","www.youtube.com/embed"); 
197						if(newYoutubeLink.includes('?')){ 
198							newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
199
200						else{ 
201								newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
202
203						console.log("newYoutubeLink : "+newYoutubeLink); 
204						$(this).find("#iframe-yt").attr("data-src",newYoutubeLink); 
205						return; 
206					}else if(newYoutubeLink.includes("watch?v=")){ 
207						newYoutubeLink = newYoutubeLink.replace("watch?v=","embed/"); 
208								if(newYoutubeLink.includes('?')){ 
209							newYoutubeLink = newYoutubeLink + '&enablejsapi=1' 
210
211						else{ 
212								newYoutubeLink = newYoutubeLink + '?enablejsapi=1'; 
213
214						console.log(newYoutubeLink); 
215						$(this).find("#iframe-yt").attr("data-src",newYoutubeLink); 
216						return; 
217
218				}); 
219				$(".fileSizeReleases").each(function () { 
220			var fileSizeReleases = $(this).html() 
221			if (fileSizeReleases != "") { 
222				$(this).html(formatFileSizeReleases(parseInt(fileSizeReleases), 2)) 
223
224		}); 
225 
226		function formatFileSizeReleases(bytes, decimalPoint) { 
227			if (bytes == 0) 
228				return '0 Bytes'; 
229			var k = 1024, 
230				dm = decimalPoint || 2, 
231				sizes = ['Bytes' , 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 
232				i = Math.floor(Math.log(bytes) / Math.log(k)); 
233			return (parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]); 
234
235		$('.search-filter-wrapper .search-option').click(function (ev) { 
236			if ($(this).hasClass("selected")) { 
237				$(this).removeClass("selected"); 
238			} else { 
239				$(this).addClass("selected"); 
240
241		}); 
242		}); 
243	</script> 

RBI-Install-RBI-Content-Global

भारतीय रिझर्व्ह बँक मोबाईल ॲप्लिकेशन इंस्टॉल करा आणि नवीनतम बातम्यांचा त्वरित ॲक्सेस मिळवा!

Scan Your QR code to Install our app