PageSourceSearch

https://tradingeconomics.com/analytics/pricing.aspx?source=menu

html tradingeconomics.com collected 2026-09-24 06:03:15 UTC 95,556 bytes, 930 lines download raw bytes

1
2<!doctype html>
3<html >
4<head id="ctl00_Head1"><meta charset="utf-8" /><title>
5	Trading Economics - Analytics - Pricing
6</title><meta id="metaDesc" name="description" content="Get Free Economic Indicators Charts, Historical Data and Forecasts for 196 Countries." /><meta id="metaKeyword" name="keywords" content="Economic Indicators, Data, Charts" /><meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1" /><meta name="theme-color" content="#333333" /><link rel="preconnect" href="https://d3e5kp2e91w0k0.cloudfront.net" crossorigin="anonymous" /><link rel="preconnect" href="https://d2n2sd20z6hutz.cloudfront.net" crossorigin="anonymous" /><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous" />
7<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/css/bootstrap.min.css" integrity="sha512-SbiR/eusphKoMVVXysTKG/7VseWii+Y3FdHrt0EpKgpToZeemhqHeZeLWLhJutz/2ut2Vw1uQEj2MbRF+TVBUA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
8<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.10.2/font/bootstrap-icons.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
9<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.10.2/font/bootstrap-icons.min.css"></noscript>
10
11<link href="https://d2n2sd20z6hutz.cloudfront.net/stylesheet.min.css" rel="stylesheet" />
12    <link href="https://d2n2sd20z6hutz.cloudfront.net/stylesheet-dark.min.css" rel="stylesheet" />
13
14<script>(function () { var p = new URLSearchParams(window.location.search); if (!p.has('_auth')) return; p.delete('_auth'); var qs = p.toString(); history.replaceState({}, '', window.location.pathname + (qs ? '?' + qs : '')); window.location.reload(); })();</script>
14
15<script>(function () { function h(n) { return new RegExp('(?:^|;\\s*)' + n.replace(/\./g, '\\.') + '=').test(document.cookie); } if (h('TEIsLoggedIn') || !h('.ASPXAUTH')) return; var e = '; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/', s = ['', '; domain=tradingeconomics.com', '; domain=.tradingeconomics.com'];['.ASPXAUTH', 'TEUsername', 'TENickName', 'TERole', 'TEUserInfo', 'TEName', 'TEUserEmail'].forEach(function (n) { if (!h(n)) return; s.forEach(function (d) { document.cookie = n + '=' + e + d; }); }); document.cookie = 'TEIsLoggedIn=false; domain=.tradingeconomics.com; path=/; SameSite=Lax; Secure; max-age=31536000'; })();</script>
15
16<script type="text/javascript">var TEChartSettings = {}; var TESymbol = ''; var TECountry = ''; var TECategory = ''; var TEFrequency = ''; var TELanguage = ''; var TELastUpdate = '20260831000000'; var TEChartVersion = ''; var symbol = ''; var symbolType = ''; var hasCalendar = false; var isLoggedIn = document.cookie.indexOf('.ASPXAUTH') > -1; var TERole = (document.cookie.match(/(?:^|;\s*)TERole=([^;]*)/) || [])[1] || ''; var TEAlertsName = ''; var TEChartsDatasource = 'https://d3ii0wo49og5mi.cloudfront.net'; var IsMobile =  false; var TEChartsMeta = ''; var TEForecast = []; var TEAuthorization = ''; var TESecurify = ''; var TESecurifyUrl = ''; var TEType = ''; var TEChartUrl = '/analytics/pricing.aspx?source=menu'; var TEComparable = 0; var isAlertsLoaded = false; var IsDarkMode = (function () { try { return localStorage.getItem('IsDarkMode') === 'true'; } catch (e) { return false; } })(); var isPakoLoaded = false; var TEChartsToken = '20260324:loboantunes'; var TEObfuscationkey = 'tradingeconomics-charts-core-api-key'; var isCopyright = false;var TEStreamId= '';</script>
16
17<script type="text/javascript">var DEBUG = false; if (window.location.host.indexOf('localhost') > -1) DEBUG = true; else if (window.location.href.indexOf('debug') > -1) DEBUG = true; if (!DEBUG) { if (!window.console) window.console = {}; var methods = ["log", "debug", "info"]; for (var i = 0; i < methods.length; i++) { console[methods[i]] = function () { }; } }</script>
17
18<script>window.googletag = window.googletag || { cmd: [] };</script>
18
19<link rel="icon" href="https://d3e5kp2e91w0k0.cloudfront.net/favicon.svg" type="image/svg+xml" /><link rel="canonical" href="https://tradingeconomics.com/analytics/pricing.aspx?source=menu" /></head>
20<body>
21    
21<script>(function(){var c=localStorage.getItem('IsDarkMode')==='true';if(c)document.body.classList.add('dark-theme');window.IsDarkMode=c;})();</script>
21
22    <form method="post" action="./pricing.aspx?source=menu" id="aspnetForm">
23<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="Ob0b+MUu41Y+hcCfzoBsH/q+s0sghSB06tvR/lail8h8sDcZIEeG40DcnFWAP/xrf3GB+wBeWACuWtUpFB6r3SH0RzA=" />
24
25<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="70BF057E" />
26        
27        <nav id="ctl00_NavigationUC1_ctl00_menu" class="navbar navbar-dark fixed-top" role="navigation">
28    <div class="container">
29
30        <div class="navbar-header navbar-header-search" id="searchMobileHeader">
31            <div class="d-flex justify-content-between">
32                <a class="navbar-brand" style="width: 100%" role="form">
33                    <input type="text" placeholder="Search"
34                        id="thisIstheTinySearchBoxIdTag"
35                        autocomplete="off"
36                        class="nav-search-input-class navbar-search-2" />
37                </a>
38                <ul id="thisIstheTinySearchResultsIdTag" class="dropdown-menu navbar-search-1">
39                    <li>
40                        <div class="container-fluid">
41                            <div id="dpSearch-resultCnt-tiny" class="dpTaResult">
42                            </div>
43                        </div>
44                    </li>
45                </ul>
46                <div class="navbar-mobile-close-search">
47                    <a noref class="navbar-mobile-item" id="thisIsTheTinyRemoveId"><i class="bi bi-x-lg"></i></a>
48                </div>
49            </div>
50        </div>
51        
52        <div class="navbar-header navbar-collapse float-end" id="mainHeader">
53            <div class="d-flex">
54                <button type="button" class="navbar-toggler" data-bs-toggle="offcanvas" data-bs-target="#tesidemenu" aria-label="TradingEconomcis Menu">
55                    <span class="navbar-toggler-icon"></span>
56                </button>
57                <div class="logo-banner d-flex justify-content-between float-right">
58                    <a class="navbar-brand" href="/">
59                        
60<svg width="129" height="35" version="1.1" viewBox="0 0 34.131 9.2604" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" aria-label = "Trading Economics logo">
61    <g fill="#858585" stroke="#858585" stroke-width=".1" ><path d="m1.3315 8.5517v-3.7879h2.8086v0.64079h-2.0438v0.83974h1.9017v0.6382h-1.9017v1.0309h2.1162v0.6382z"/><path d="m7.2846 7.1591 0.74156 0.23513q-0.17053 0.62012-0.56844 0.92242-0.39532 0.29972-1.0051 0.29972-0.75448 0-1.2402-0.51418-0.48576-0.51676-0.48576-1.4108 0-0.94568 0.48834-1.4676 0.48834-0.52452 1.2842-0.52452 0.69505 0 1.1291 0.41083 0.25838 0.24288 0.38757 0.69763l-0.75706 0.18087q-0.067179-0.29456-0.28164-0.46509-0.21187-0.17053-0.51676-0.17053-0.42116 0-0.68471 0.30231-0.26097 0.30231-0.26097 0.97927 0 0.7183 0.25838 1.0232 0.25838 0.30489 0.67179 0.30489 0.30489 0 0.52452-0.19379 0.21962-0.19379 0.31523-0.60978z"/><path d="m8.5275 6.681q0-0.57878 0.17312-0.97152 0.12919-0.28939 0.3514-0.51935 0.22479-0.22996 0.49093-0.34106 0.35398-0.14986 0.81649-0.14986 0.83716 0 1.3384 0.51935 0.50385 0.51935 0.50385 1.4444 0 0.91726-0.49868 1.4366-0.49868 0.51676-1.3333 0.51676-0.84491 0-1.3436-0.51418-0.49868-0.51676-0.49868-1.4211zm0.78807-0.025838q0 0.64337 0.29714 0.97669 0.29714 0.33073 0.75448 0.33073 0.45734 0 0.74931-0.32815 0.29456-0.33073 0.29456-0.9896 0-0.65112-0.2868-0.97152-0.28422-0.32039-0.75706-0.32039-0.47284 0-0.76223 0.32556-0.28939 0.32298-0.28939 0.97669z"/><path d="m12.806 8.5517v-3.7879h0.74414l1.5503 2.5296v-2.5296h0.71055v3.7879h-0.7674l-1.527-2.4701v2.4701z"/><path d="m16.465 6.681q0-0.57878 0.17312-0.97152 0.12919-0.28939 0.3514-0.51935 0.22479-0.22996 0.49093-0.34106 0.35398-0.14986 0.81649-0.14986 0.83716 0 1.3384 0.51935 0.50384 0.51935 0.50384 1.4444 0 0.91726-0.49868 1.4366-0.49868 0.51676-1.3333 0.51676-0.84491 0-1.3436-0.51418-0.49868-0.51676-0.49868-1.4211zm0.78807-0.025838q0 0.64337 0.29714 0.97669 0.29714 0.33073 0.75448 0.33073t0.74931-0.32815q0.29456-0.33073 0.29456-0.9896 0-0.65112-0.2868-0.97152-0.28422-0.32039-0.75706-0.32039t-0.76223 0.32556q-0.28939 0.32298-0.28939 0.97669z"/><path d="m20.726 8.5517v-3.7879h1.1446l0.6873 2.5838 0.67955-2.5838h1.1472v3.7879h-0.71055v-2.9817l-0.75189 2.9817h-0.73639l-0.74931-2.9817v2.9817z"/><path d="m25.121 8.5517v-3.7879h0.76481v3.7879z"/><path d="m29.038 7.1591 0.74156 0.23513q-0.17053 0.62012-0.56844 0.92242-0.39532 0.29972-1.0051 0.29972-0.75448 0-1.2402-0.51418-0.48576-0.51676-0.48576-1.4108 0-0.94568 0.48834-1.4676 0.48834-0.52452 1.2842-0.52452 0.69505 0 1.1291 0.41083 0.25838 0.24288 0.38757 0.69763l-0.75706 0.18087q
61-0.06718-0.29456-0.28164-0.46509-0.21187-0.17053-0.51676-0.17053-0.42116 0-0.68471 0.30231-0.26097 0.30231-0.26097 0.97927 0 0.7183 0.25838 1.0232 0.25838 0.30489 0.67179 0.30489 0.30489 0 0.52452-0.19379 0.21962-0.19379 0.31523-0.60978z"/><path d="m30.242 7.3193 0.74414-0.072347q0.06718 0.37465 0.2713 0.55035 0.2067 0.1757 0.55552 0.1757 0.36949 0 0.55552-0.15503 0.18862-0.15761 0.18862-0.3669 0-0.13436-0.0801-0.22738-0.077514-0.095602-0.27388-0.16536-0.13436-0.046509-0.61237-0.16536-0.61495-0.15245-0.863-0.37465-0.34882-0.31264-0.34882-0.76223 0-0.28939 0.16278-0.54002 0.16536-0.25321 0.47284-0.38499 0.31006-0.13178 0.74672-0.13178 0.71314 0 1.0723 0.31264 0.36174 0.31264 0.37982 0.83457l-0.76481 0.03359q-0.04909-0.29197-0.21187-0.41858-0.1602-0.12919-0.48317-0.12919-0.33331 0-0.52193 0.13694-0.12144 0.08785-0.12144 0.23513 0 0.13436 0.11369 0.22996 0.14469 0.12144 0.7028 0.25321t0.82424 0.27389q0.26872 0.13953 0.41858 0.38499 0.15244 0.24288 0.15244 0.60203 0 0.32556-0.18087 0.60978-0.18087 0.28422-0.5116 0.42375-0.33073 0.13694-0.82424 0.13694-0.7183 0-1.1033-0.33073-0.38499-0.33331-0.45992-0.96893z"/></g>
62    <g fill="#ddd" stroke="#ddd" stroke-width=".1" ><path d="m1.4629 4.2437v-2.8324h-1.0116v-0.57671h2.7091v0.57671h-1.0092v2.8324z"/><path d="m3.607 4.2437v-3.4091h1.4487q0.54648 0 0.79297 0.093018 0.24882 0.090692 0.39765 0.32556 0.14883 0.23487 0.14883 0.53718 0 0.3837-0.22557 0.63484-0.22557 0.24882-0.67438 0.31393 0.22324 0.13022 0.36742 0.28603 0.1465 0.1558 0.393 0.55345l0.41625 0.66508h-0.82321l-0.49764-0.74182q-0.2651-0.39765-0.36277-0.49997-0.097668-0.10464-0.20696-0.14185-0.1093-0.039532-0.34649-0.039532h-0.13953v1.4232zm0.68833-1.9673h0.50927q0.49532 0 0.61857-0.041858t0.19301-0.14418q0.069763-0.10232 0.069763-0.2558 0-0.17208-0.093018-0.27673-0.090692-0.10697-0.25812-0.13488-0.083716-0.011627-0.50229-0.011627h-0.53718z"/><path d="m10.118 4.2437h-0.74879l-0.29766-0.77437h-1.3627l-0.28138 0.77437h-0.73019l1.3278-3.4091h0.72786zm-1.2674-1.3488-0.46974-1.265-0.46044 1.265z"/><path d="m10.481 0.8346h1.2581q0.42556 0 0.6488 0.065112 0.29998 0.088367 0.51392 0.31393 0.21394 0.22557 0.32556 0.55345 0.11162 0.32556 0.11162 0.8046 0 0.4209-0.10464 0.72554-0.1279 0.37207-0.36509 0.60229-0.17906 0.17441-0.48369 0.27208-0.22789 0.072089-0.60926 0.072089h-1.2953zm0.68833 0.57671v2.258h0.51392q0.28835 0 0.41625-0.032556 0.16743-0.041858 0.27673-0.14185 0.11162-0.099994 0.18138-0.32789 0.06976-0.23022 0.06976-0.62554t-0.06976-0.60694-0.19534-0.33021q-0.12557-0.1186-0.31858-0.16046-0.14418-0.032556-0.56508-0.032556z"/><path d="m13.902 4.2437v-3.4091h0.68833v3.4091z"/><path d="m15.253 4.2437v-3.4091h0.66973l1.3953 2.2766v-2.2766h0.6395v3.4091h-0.69066l-1.3743-2.2231v2.2231z"/><path d="m20.271 2.9903v-0.57438h1.4836v1.3581q-0.21627 0.20929-0.62787 0.36974-0.40928 0.15813-0.83018 0.15813-0.53485 0-0.9325-0.22324-0.39765-0.22557-0.59764-0.64182-0.19999-0.41858-0.19999-0.90925 0-0.53253 0.22324-0.94645 0.22324-0.41393 0.65345-0.63484 0.32789-0.16976 0.81623-0.16976 0.63484 0 0.99064 0.26743 0.35812 0.2651 0.46044 0.73484l-0.68368 0.1279q-0.072088-0.25115-0.27208-0.39532-0.19766-0.1465-0.49532-0.1465-0.45114 0-0.71856 0.28603-0.2651 0.28603-0.2651 0.84879 0 0.60694 0.26975 0.91157 0.26975 0.30231 0.70693 0.30231 0.21627 0 0.43253-0.083716 0.21859-0.086041 0.3744-0.20696v-0.43253z"/></g>
63</svg>
64                    </a>
65                    <div class="d-flex align-items-center nav-options">
66                        
67                        <div class="d-flex align-items-center nav-entry-link-group">
68                            <a class="nav-entry-link d-none d-md-block" href="/calendar"><span>Calendar</span></a>
69                            <a class="nav-entry-link d-none d-md-block" href="/stream"><span>News</span></a>
70                            <div class="dropdown">
71                                <a href="#" class="dropdown d-flex nav-entry-link d-none d-md-block" data-bs-toggle="dropdown"><span>Markets</span></a>
72                                <ul class="dropdown-menu nav-dropdown-menu">
73                                    <li class='dropdown-item nav-dropdown-item'><a href="/commodities">Commodities</a></li>
74                                    <li class='dropdown-item nav-dropdown-item'><a href="/stocks">Indexes</a></li>
75                                    <li class='dropdown-item nav-dropdown-item'><a href="/shares">Shares</a></li>
76                                    <li class='dropdown-item nav-dropdown-item'><a href="/currencies">Currencies</a></li>
77                                    <li class='dropdown-item nav-dropdown-item'><a href="/crypto">Crypto</a></li>
78                                    <li class='dropdown-item nav-dropdown-item'><a href="/bonds">Bonds</a></li>
79                                    <li class='dropdown-item nav-dropdown-item'><a href="/earnings">Earnings</a></li>
80                                </ul>
81                            </div>
82
83                            <a class="nav-entry-link d-none d-lg-block" href="/indicators"><span>Indicators</span></a>
84                            <a class="nav-entry-link d-none d-xl-block" href="/countries"><span >Countries</span></a>
85                            <div class="dropdown">
86                                <a href="#" class="dropdown d-flex nav-entry-link d-none d-md-block" data-bs-toggle="dropdown"><span>Forecasts</span></a>
87                                    <ul class="dropdown-menu nav-dropdown-menu">
88                                        <li class='dropdown-item nav-dropdown-item'><a href="/forecast/commodity">Commodities</a></li>
89                                        <li class='dropdown-item nav-dropdown-item'><a href="/forecast/stock-market">Indexes</a></li>
90                                        <li class='dropdown-item nav-dropdown-item'><a href="/forecast/currency">Currencies</a></li>
91                                        <li class='dropdown-item nav-dropdown-item'><a href="/forecast/crypto">Crypto</a></li>
92                                        <li class='dropdown-item nav-dropdown-item'><a href="/forecast/government-bond-10y">Bonds</a></li>
93                                        <li class='dropdown-item nav-dropdown-item'><a href="/forecasts">Countries</a></li>
94                                        <li class='dropdown-item nav-dropdown-item'><a href="/indicators?g=forecast">Indicators</a></li>
95                                    </ul>
96                            </div>
97                        </div>
98                        
99                        <div class="search-li d-none d-lg-block">
100                            <a noref id="thisIsTheSearchPlaceholderId" class="nav-searchbox-class stickydropdown d-block" title="Search">
101                                <div id="thisIsTheSearchBoxWrapperId" class="typeahead-searchbox-glyphicon-wrapper d-flex ">
102                                    <input type="text" placeholder="Search" aria-label="Search" id="thisIstheSearchBoxIdTag" autocomplete="off"
103                                        class="d-none d-md-block nav-search-input-class">
104                                </div>
105                            </a>
106
107                            <ul id="thisIstheSearchResultsIdTag" class="dropdown-menu nav-dropdown-menu typeahead-wrapper">
108                                <li>
109                                    <div class="container">
110                                        <div id="dpSearch-resultCnt" class="dpTaResult">
111                                        </div>
112                                    </div>
113                                </li>
114                            </ul>
115                        </div>
116
117                        <div>
118                            <a class="d-block d-lg-none navbar-mobile-item" id="thisIsTheTinyGlyphiconId"><i class="bi bi-search me-2"></i></a>
119                        </div>
120                        
121                        <div class="userOptionsMenu">
122                            <a title="User Menu" data-bs-toggle="offcanvas" href="#offcanvasGuest" role="button" aria-controls="offcanvasGuest">
122<i class="bi bi-person"></i></a>
123                        </div>
124                        
125                    </div>
126                </div>
127            </div>
128        </div>
129
130        
131        <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasGuest" aria-labelledby="offcanvasGuestLabel">
132            <div class="offcanvas-header">
133                <h5 class="offcanvas-title" id="offcanvasGuestLabel"><b>Members</b></h5>
134                <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
135            </div>
136            <div class="offcanvas-body user-offcanvas-body">
137                <div class="list-group list-group-user">
138                    <a href="/analytics/pricing.aspx?source=menu " class="user-item list-group-item">
139                        <b class="list-group-item-heading"><i class="bi bi-save2-fill me-2"></i>&nbsp;DATA PLANS</b><br>
140                        <span class="list-group-item-text">Download historical data for 20 million indicators using your browser.</span>
141                    </a>
142                    <div class="user-item list-group-item">
143                        
144                        <div class="navbar-user-link">
145                            <a href="/analytics/pricing.aspx?source=menu" class="navbar-te-link mx-1">Subscription Plans</a>
146                            |
147                            <a href="/analytics/features.aspx?source=menu" class="navbar-te-link mx-1">Features</a>
148                        </div>
149                      
150                    </div>
151                </div>
152                <div class="list-group list-group-user">
153
154                    <a href="/api/" class="user-item list-group-item">
155                        <b class="list-group-item-heading"><i class="bi bi-phone mx-1 me-2"></i>API GATEWAY</b><br>
156                        <span class="list-group-item-text mx-1">Direct access to our data from your apps using any programing language.</span>
157                    </a>
158                    <div class="user-item list-group-item">
159                        <div>
160                            <a href="/api/?source=menu" class="navbar-te-link mx-1">Features</a> |
161                            <a href="https://docs.tradingeconomics.com/" target="_blank" class="navbar-te-link mx-1">Docs</a> |
162                            <a href="https://developer.tradingeconomics.com/" class="navbar-te-link mx-1">Developer</a>
163                        </div>
164                    </div>
165                </div>
166               
167                
168                <div class="list-group list-group-user">
169
170                    
171                        <a class="user-item list-group-item" href="https://sso.tradingeconomics.com/sso/login?returnurl=https://tradingeconomics.com/analytics/pricing.aspx?source=menu"><i class="bi bi-person-fill"></i> Already a user? <b>Login</b></a>
172                    
173                </div>
174                
175<style>
176    .form-switch {
177        width: 3.5em !important;
178        height: 2em !important
179    }
180    .bi-sun-fill {
181        font-size: 12px;
182        color: #ddd !important;
183    }
184    .bi-moon-fill {
185        font-size: 10px;
186        color: #333 !important;
187    }
188    .darkmode-toggle-container {
189        width: auto;
190        padding: 0px;
191        margin-left: 0px;
192        margin-top: 0px;
193        border: none;
194    }
195    .form-check-div-sun {
196        width: 20px;
197        margin-bottom: 3px;
198        margin-left: -54px;
199        position: relative
200    }
201    .form-check-div-moon {
202        width: 20px;
203        margin-bottom: 3px;
204        margin-left: 3px;
205        position: relative
206    }
207    .dk-switch-right-menu{
208        padding-left:10px;
209    }
210</style>
211<div class="list-group list-group-user dk-switch-right-menu">
212    <div class="d-flex align-items-center darkmode-toggle-container">
213    <div class="form-check form-switch darkmode-form-switch user-item">
214        <input class="form-check-input p-1" type="checkbox" role="button" id="flexSwitchCheckChecked">
215    </div>
216    <div class="form-check-div-sun">
217        <label class="form-check-label form-check-label-sun p-1 d-inline" for="flexSwitchCheckChecked"><i class="bi bi-sun-fill"></i></label>
218    </div>
219    <div class="form-check-div-moon">
220        <label class="form-check-label form-check-label-moon p-1 d-inline" for="flexSwitchCheckChecked"><i class="bi bi-moon-fill"></i></label>
221    </div>
222</div>
223</div>
224
225
226<script>
227    function SetTheme(isDark) {
228        console.log('Changing theme', isDark);
229        if (IsDarkMode != isDark) {
230            IsDarkMode = isDark;
231            document.body.classList.toggle("dark-theme");
232            localStorage.setItem('IsDarkMode', IsDarkMode);
233
234            IsDarkMode ? ga('event', 'te_darkmode_on') : ga('event', 'te_darkmode_off');
235            window.location.reload();
236        }
237    }
238    document.addEventListener('DOMContentLoaded', function () {
239        let checkbox = document.getElementById("flexSwitchCheckChecked");
240        let sundiv = document.getElementsByClassName("form-check-label-sun")[0];
241        let moondiv = document.getElementsByClassName("form-check-label-moon")[0];
242
243        if (IsDarkMode) {
244            sundiv.classList.add("d-none");
245            moondiv.classList.remove("d-none");
246        } else {
247            moondiv.classList.add("d-none");
248            sundiv.classList.remove("d-none");
249        }
250        checkbox.checked = IsDarkMode;
251    });
252
253
254
255    document.getElementById("flexSwitchCheckChecked").addEventListener("change", function () {
256        SetTheme(!IsDarkMode)
257    });
258
259</script>
259
260            </div>
261        </div>
262
263        
264        <div class="offcanvas offcanvas-start" tabindex="-1" id="tesidemenu" aria-labelledby="tesidemenuoptions">
265            <div class="offcanvas-header">
266                <h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel"></h5>
267                <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
268            </div>
269            <div class="offcanvas-body">
270
271                <div class="row navbar-nav-scroll" style="--bs-scroll-height: 95vh;">
272                    <div class="accordion" id="accordionNavbar">
273                        <div class="accordion-item">
274                            <div class="accordion-header menu-main-option"><a class="nav-link accordion-button navmenu-mobile-item" href="/calendar" target="_self"><i class="bi bi-calendar3 me-2"></i>Calendar</a></div>
275                        </div>
276                        <div class="accordion-item">
277                            <div class="accordion-header menu-main-option"><a class="nav-link  accordion-button navmenu-mobile-item" href="/stream" target="_self"><i class="bi bi-layout-text-sidebar me-2"></i>News</a></div>
278                        </div>
279                        <div class="accordion-item">
280                            <div class="accordion-header menu-main-option d-flex align-items-center">
281                                <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseMarkets" aria-expanded="false" aria-controls="collapseTwo">
282                                    <i class="bi bi-arrow-down-up me-2"></i>Markets
283                                <i class="bi bi-caret-up-fill ms-auto caret-toggle"></i>
284                                </button>
285
286                            </div>
287                            <div id="collapseMarkets" class="accordion-collapse collapse " data-bs-parent="#accordionNavbar">
288                                <div class="accordion-body mobile-accordion-body">
289                                    <ul class="nav navbar-nav navbarMobile">
290                                        <li><a class="navmobile-link nav-link" href="/commodities" target="_self">Commodities</a></li>
291                                        <li><a class="navmobile-link nav-link" href="/stocks" target="_self">Indexes</a></li>
292                                        <li><a class="navmobile-link nav-link" href="/shares" target="_self">Shares</a></li>
293                                        <li><a class="navmobile-link nav-link" href="/currencies" target="_self">Currencies</a></li>
294                                        <li><a class="navmobile-link nav-link" href="/crypto" target="_self">Crypto</a></li>
295                                        <li><a class="navmobile-link nav-link" href="/bonds" target="_self">Bonds</a></li>
296                                        <li><a class="navmobile-link nav-link" href="/earnings" target="_self">Earnings</a></li>
297                                        <li><a class="navmobile-link nav-link" href="/holidays" target="_self">Holidays</a></li>
298                                    </ul>
299                                </div>
300                            </div>
301                        </div>
302
303                        <div class="accordion-item">
304                            <div class="accordion-header menu-main-option d-flex align-items-center">
305                                <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCountries" aria-expanded="false" aria-controls="collapseTwo">
306                                    <i class="bi bi-globe me-2"></i>Countries<i class="bi bi-caret-down-fill ms-auto caret-toggle"></i>
307                                </button>
308                            </div>
309                            <div id="collapseCountries" class="accordion-collapse collapse  " data-bs-parent="#accordionNavbar">
310                                <div class="accordion-body mobile-accordion-body">
311                                    <ul class="nav navbar-nav navbarMobile">
312                                        <li><a class="navmobile-link nav-link" href="/united-states/indicators" target="_self">United States</a></li>
313                                        <li><a class="navmobile-link nav-link" href="/united-kingdom/indicators" target="_self">United Kingdom</a></li>
314                                        <li><a class="navmobile-link nav-link" href="/euro-area/indicators" target="_self">Euro Area</a></li>
315                                        <li><a class="navmobile-link nav-link" href="/australia/indicators" target="_self">Australia</a></li>
316                                        <li><a class="navmobile-link nav-link" href="/canada/indicators" target="_self">Canada</a></li>
317                                        <li><a class="navmobile-link nav-link" href="/japan/indicators" target="_self">Japan</a></li>
318                                        <li><a class="navmobile-link nav-link" href="/china/indicators" target="_self">China</a></li>
319                                        <li><a class="navmobile-link nav-link" href="/brazil/indicators" target="_self">Brazil</a></li>
320                                        <li><a class="navmobile-link nav-link" href="/russia/indicators" target="_self">Russia</a></li>
321                                        <li><a class="navmobile-link nav-link" href="/india/indicators" target="_self">India</a></li>
322                                        <li><a class='navmobile-link nav-link' href="/countries" target="_self"><i class="bi bi-plus-square me-2"></i>More Countries</a></li>
323                                    </ul>
324                                </div>
325                            </div>
326                        </div>
327
328
329                        <div class="accordion-item">
330                            <div class="accordion-header menu-main-option d-flex align-items-center">
331                                <button class="accordion-button 
331navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseIndicators" aria-expanded="false" aria-controls="collapseTwo">
332                                    <i class="bi bi-bar-chart-fill me-2"></i>Indicators
333                                    <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i>
334                                </button>
335
336                            </div>
337                            <div id="collapseIndicators" class="accordion-collapse collapse  show" data-bs-parent="#accordionNavbar">
338                                <div class="accordion-body mobile-accordion-body">
339                                    <ul class="nav navbar-nav navbarMobile">
340                                        <li><a class="navmobile-link nav-link" href="/country-list/interest-rate" target="_self">Interest Rate</a></li>
341                                        <li><a class="navmobile-link nav-link" href="/country-list/inflation-rate" target="_self">Inflation Rate</a></li>
342                                        <li><a class="navmobile-link nav-link" href="/country-list/unemployment-rate" target="_self">Unemployment Rate</a></li>
343                                        <li><a class="navmobile-link nav-link" href="/country-list/gdp-growth-rate" target="_self">GDP Growth</a></li>
344                                        <li><a class="navmobile-link nav-link" href="/country-list/gdp-per-capita" target="_self">GDP per Capita</a></li>
345                                        <li><a class="navmobile-link nav-link" href="/country-list/current-account-to-gdp" target="_self">Current Account</a></li>
346                                        <li><a class="navmobile-link nav-link" href="/country-list/gold-reserves" target="_self">Gold Reserves</a></li>
347                                        <li><a class="navmobile-link nav-link" href="/country-list/government-debt-to-gdp" target="_self">Government Debt</a></li>
348                                        <li><a class="navmobile-link nav-link" href="/country-list/crude-oil-production" target="_self">Crude Oil Production</a></li>
349                                        <li><a class="navmobile-link nav-link" href="/country-list/gasoline-prices" target="_self">Gasoline Prices</a></li>
350                                        <li><a class="navmobile-link nav-link" href="/country-list/rating" target="_self">Credit Rating</a></li>
351                                        <li><a class='navmobile-link nav-link' href="/indicators" target="_self"><i class="bi bi-plus-square me-2"></i>More Indicators</a></li>
352                                    </ul>
353                                </div>
354                            </div>
355                        </div>
356
357
358                        <div class="accordion-item">
359                            <div class="accordion-header menu-main-option d-flex align-items-center">
360                                <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseForecasts" aria-expanded="false" aria-controls="collapseTwo">
361                                    <i class="bi bi-graph-down-arrow me-2"></i>Forecasts
362                                <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i>
363                                </button>
364
365                            </div>
366                            <div id="collapseForecasts" class="accordion-collapse collapse  " data-bs-parent="#accordionNavbar">
367                                <div class="accordion-body mobile-accordion-body">
368                                    <ul class="nav navbar-nav navbarMobile">
369                                        <li class="d-block d-sm-none"><a class="navmobile-link nav-link" href="/indicators?g=forecast" target="_self">Markets & Indicators</a></li>
370                                        <li class="d-block d-sm-none"><a class="navmobile-link nav-link" href="/forecasts" target="_self">Countries</a></li>
371                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/forecasts">Countries</a></li>
372                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/indicators?g=forecast">Indicators</a></li>
373                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/forecast/commodity">Commodities</a></li>
374                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/forecast/stock-market">Indexes</a></li>
375                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/forecast/currency">Currencies</a></li>
376                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/forecast/crypto">Crypto</a></li>
377                                        <li class="d-none d-sm-block"><a class='navmobile-link nav-link' href="/forecast/government-bond-10y">Bonds</a></li>
378                                    </ul>
379                                </div>
380                            </div>
381                        </div>
382
383                        
384                        <div class="accordion-item">
385                            <div class="accordion-header menu-main-option d-flex align-items-center">
386                                <button class="accordion-button 
386navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSolutions" aria-expanded="false" aria-controls="collapseTwo">
387                                    <i class="bi bi-code-square me-2"></i>Solutions
388                                <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i>
389                                </button>
390
391                            </div>
392                            <div id="collapseSolutions" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar">
393                                <div class="accordion-body mobile-accordion-body">
394                                    <ul class="nav navbar-nav navbarMobile">
395                                        <li><a class="navmobile-link nav-link" href="/analytics/features.aspx" title="Data Subscriptions">Data Subscriptions</a></li>
396                                        <li><a class="navmobile-link nav-link" href="/api/" title="API Access">API Access</a></li>
397                                        <li><a class="navmobile-link nav-link" href="/analytics/pricing.aspx?source=nav" title="Pricing">Pricing</a></li>
398                                    </ul>
399                                </div>
400                            </div>
401                        </div>
402                        
403                        <div class="accordion-item">
404                            <div class="accordion-header menu-main-option d-flex align-items-center">
405                                <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseApps" aria-expanded="false" aria-controls="collapseTwo">
406                                    <i class="bi bi-phone me-2"></i>Apps
407                                <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i>
408                                </button>
409
410                            </div>
411
412                            <div id="collapseApps" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar">
413                                <div class="accordion-body mobile-accordion-body">
414                                    <ul class="nav navbar-nav navbarMobile">
415                                        <li><a class="navmobile-link nav-link" href="https://itunes.apple.com/us/app/trading-economics/id1142178921?mt=8" target="_self">App Store</a></li>
416                                        <li><a class="navmobile-link nav-link" href="https://play.google.com/store/apps/details?id=com.tradingeconomics.calendar" target="_self">Google Play</a></li>
417                                        <li><a class="navmobile-link nav-link" href="https://www.twitter.com/teconomics" target="_self">Twitter</a></li>
418                                    </ul>
419                                </div>
420                            </div>
421                        </div>
422
423                        <div class="accordion-item">
424                            <div class="accordion-header menu-main-option d-flex align-items-center">
425                                <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseMore" aria-expanded="false" aria-controls="collapseTwo">
426                                    <i class="bi bi-question-circle me-2"></i>About
427                                <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i>
428                                </button>
429
430                            </div>
431
432                            <div id="collapseMore" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar">
433                                <div class="accordion-body mobile-accordion-body">
434                                    <ul class="nav navbar-nav navbarMobile">
435                                        <li><a class="navmobile-link nav-link" href="/api/customers.aspx" target="_self">Customers</a></li>
436                                        <li><a class="navmobile-link nav-link" href="/investors.aspx" target="_self">Investors</a></li>
437                                        <li><a class="navmobile-link nav-link" href="/careers.aspx" target="_self">Careers</a></li>
438                                        <li><a class="navmobile-link nav-link" href="/about-te.aspx" target="_self">About us</a></li>
439                                        <li><a class="navmobile-link nav-link" href="/contact.aspx" target="_self">Contact</a></li>
440                                    </ul>
441                                </div>
442                            </div>
443                        </div>
444
445                       
446                        <div class="accordion-item d-block d-md-none" style="border: none">
447                            <div class="accordion-header menu-main-option accordion-last-item" style="padding: 30px 0px !important;"></div>
448                        </div>
449                    </div>
450
451                </div>
452            </div>
453        </div>
454    </div>
455</nav>
456
457<script>
458    document.addEventListener('DOMContentLoaded', function () {
459        let accordionHeaders = document.querySelectorAll('.menu-main-option');
460
461        accordionHeaders.forEach(function (header) {
462            header.addEventListener('click', function () {
463                let caretIcon = header.querySelector('.caret-toggle');
464
465                let allCaretIcons = document.querySelectorAll('.menu-main-option .caret-toggle');
466
467                allCaretIcons.forEach(function (icon) {
468                    if (icon !== caretIcon) {
469                        icon.classList.remove('bi-caret-up-fill');
470                        icon.classList.add('bi-caret-down-fill');
471                    }
472                });
473                caretIcon.classList.toggle('bi-caret-down-fill');
474                caretIcon.classList.toggle('bi-caret-up-fill');
475            });
476        });
477    });
478
479
480
481    function handleClientLogout(e) {
482        e.preventDefault();
483        try {
484            var cookiesToDelete = ['aspxauth'];
485            document.cookie.split(';').forEach(function (c) {
486                var name = c.split('=')[0].trim();
487                if (cookiesToDelete.some(function (entry) { return name.toLowerCase().includes(entry); }) || name.startsWith('TE')) {
488                    document.cookie = name + '=;expires=' + new Date(0).toUTCString() + ';path=/';
489                }
490            });
491
492            var voteInfo = {};
493
494            Object.keys(localStorage).forEach(function (key) {
495                if (key.startsWith('voteInfo-')) {
496                    voteInfo[key] = localStorage.getItem(key);
497                }
498            });
499
500            localStorage.clear();
501
502            Object.keys(voteInfo).forEach(function (key) {
503                localStorage.setItem(key, voteInfo[key]);
504            });
505
506            sessionStorage.clear();
507            window.location.href = e.currentTarget.href;
508        } catch (err) {
509            console.error('JS Logout failed:', err);
510            window.location.href = e.currentTarget.href;
511        }
512    }
513</script>
513
514
515        
516<style>.page-title{color:#fff;white-space:nowrap}body.dark-theme .page-title{color:#fff;font-weight:300}.pagemenu{position:fixed;top:50px;right:0;left:0;z-index:100;height:40px;width:100%;background-color:#4f81bd;border-bottom:1px solid #cfcfcf}.pagemenu .container{display:flex;flex-direction:column;justify-content:center;height:100%}.pagemenu h1{padding-top:10px;font-weight:bold}@media only screen and (max-width:415px){.pagemenu h1{font-size:1em;padding-top:10px}}</style>
517
518<style>body {padding-top: 140px;}.pagemenu {top: 50px;}.pagetabs {top: 90px;}.navbar-default .navbar-nav>.active>a{ background-color: whitesmoke;} .navbar .navbar-expand-lg>.active, .navbar .navbar-expand-lg>.active>a{background-color: #f5f5f5;} .navbar .navbar-expand-lg>li:hover, .navbar .navbar-expand-lg>li:hover>a{background-color: #fff;} .nav-link:focus{color: #000;}</style>
519
520<style>.title-notes {padding-left: 10px;font-size: .7em;padding-top: 3px;font-weight:lighter;}
521.pagetabs{overflow:visible}
522.pagetabs .container{overflow:visible}
523.pagetabs #pagemenutabs{flex-wrap:nowrap!important;white-space:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#bfbfbf transparent}
524.pagetabs #pagemenutabs::-webkit-scrollbar{height:6px}
525.pagetabs #pagemenutabs::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:3px}
526.pagetabs #pagemenutabs::-webkit-scrollbar-track{background:transparent}
527.pagetabs #pagemenutabs>li.nav-item{flex:0 0 auto;white-space:nowrap}
528.pagetabs #pagemenutabs>li.nav-item>.nav-link{white-space:nowrap}</style>
529
530<style>
531    @media only screen and (max-width: 1000px){ .te-content{ margin-top: 35px; }}
532</style> 
533<div id="ctl00_ctl08_pageMenu">
534	
535    <div class="pagemenu">
536        <div class="container">
537            <div class="row">
538                <div class='col-xl-12' style="display: flex; flex-direction: row">
539                    <h1 class='page-title'>JOIN TRADING ECONOMICS</h1>
540                </div>
541            </div>
542        </div>
543    </div>
544
545</div>
546<div id="ctl00_ctl08_pageTabs" class="pagetabs">
547	
548    <div class="container " style="">
549        
550                <ul id="pagemenutabs" role="tablist" class="nav nav-tabs d-flex flex-nowrap nav-h-scroll " style="border-bottom: none;">
551            
552                <li role="presentation" class="nav-item ">
553                    <a 
554                        role="tab"
555                        class="nav-link  " href="/analytics/features.aspx"
556                        
557                        
558                        
559                                           
560                        
561                        
562                        class=""
563                         
564                        >
565                        Features 
566                         
567                    </a>
568                </li>
569            
570                <li role="presentation" class="nav-item ">
571                    <a 
572                        role="tab"
573                        class="nav-link  " href="/analytics/databases.aspx"
574                        
575                        
576                        
577                                           
578                        
579                        
580                        class=""
581                         
582                        >
583                        Indicators 
584                         
585                    </a>
586                </li>
587            
588                <li role="presentation" class="nav-item ">
589                    <a 
590                        role="tab"
591                        class="nav-link  " href="/analytics/calendar.aspx"
592                        
593                        
594                        
595                                           
596                        
597                        
598                        class=""
599                         
600                        >
601                        Calendar 
602                         
603                    </a>
604                </li>
605            
606                <li role="presentation" class="nav-item ">
607                    <a 
608                        role="tab"
609                        class="nav-link  " href="/analytics/markets.aspx"
610                        
611                        
612                        
613                                           
614                        
615                        
616                        class=""
617                         
618                        >
619                        Markets 
620                         
621                    </a>
622                </li>
623            
624                <li role="presentation" class="nav-item ">
625                    <a 
626                        role="tab"
627                        class="nav-link  " href="/analytics/financials.aspx"
628                        
629                        
630                        
631                                           
632                        
633                        
634                        class=""
635                         
636                        >
637                        Financials 
638                         
639                    </a>
640                </li>
641            
642                <li role="presentation" class="nav-item ">
643                    <a 
644                        role="tab"
645                        class="nav-link  " href="/analytics/excel.aspx"
646                        
647                        
648                        
649                                           
650                        
651                        
652                        class=""
653                         
654                        >
655                        Excel 
656                         
657                    </a>
658                </li>
659            
660                <li role="presentation" class="nav-item ">
661                    <a 
662                        role="tab"
663                        class="nav-link  " href="/analytics/apps.aspx"
664                        
665                        
666                        
667                                           
668                        
669                        
670                        class=""
671                         
672                        >
673                        Apps 
674                         
675                    </a>
676                </li>
677            
678                <li role="presentation" class="nav-item ">
679                    <a 
680                        role="tab"
681                        class="nav-link  " href="/analytics/api.aspx"
682                        
683                        
684                        
685                                           
686                        
687                        
688                        class=""
689                         
690                        >
691                        API 
692                         
693                    </a>
694                </li>
695            
696                <li role="presentation" class="nav-item ">
697                    <a 
698                        role="tab"
699                        class="nav-link  " href="/analytics/ai.aspx"
700                        
701                        
702                        
703                                           
704                        
705                        
706                        class=""
707                         
708                        >
709                        AI 
710                         
711                    </a>
712                </li>
713            
714                <li role="presentation" class="nav-item ">
715                    <a 
716                        role="tab"
717                        class="nav-link  " href="/analytics/customers.aspx"
718                        
719                        
720                        
721                                           
722                        
723                        
724                        class=""
725                         
726                        >
727                        Customers 
728                         
729                    </a>
730                </li>
731            
732                <li role="presentation" class="nav-item ">
733                    <a 
734                        role="tab"
735                        class="nav-link  active" href="/analytics/pricing.aspx"
736                        
737                        
738                        
739                                           
740                        
741                        
742                        class=""
743                         
744                        >
745                        Pricing 
746                         
747                    </a>
748                </li>
749            
750                </ul>
751            
752
753         
754    </div>
755
756
757</div>
758
759<style>@media only screen and (max-width: 767.98px){ .pagetabs .nav-tabs>li.active>a {background-color: #f5f5f5;} }</style>
760        
761        <div class="container">
762            <div class="row te-content">
763                <div class='col-xl-12' role="main">
764                    
765                    
766    
767<link rel="stylesheet" href="https://d3e5kp2e91w0k0.cloudfront.net/pricing/pricing-style.css?v=20260316">
768
769<div id="pricing-container" class="container pricing-container"></div>
770
771<script src="https://d3e5kp2e91w0k0.cloudfront.net/pricing/pricing-data.js?v=20260316"></script>
771
772<script src="https://d3e5kp2e91w0k0.cloudfront.net/pricing/pricing-render.js?v=20260316"></script>
772
773    <br /><br />
774    
775<div style="font-size: .7em; text-align: center;">
776     We accept all major credit cards and Paypal. Bank wire transfers are also accepted for quarterly and yearly plans.<br />
777    The trial fee is not refundable and if the trial expires and you haven't cancelled it you will be automatically charged.<br />
778    You can upgrade, downgrade or cancel your account at anytime but there is no refund or credit for unused days.<br />
779    To prevent abuse, trial users are limited to 100000 data points and 100 requests for data.  <br />
780</div>
781
782                </div>
783                
784            </div>
785        </div>
786        <div class="container-fluid te-footer" style="margin-bottom: -23px">
787            <footer>
788                <div class="container">
789                    <div class="row">
790                        <div id="ctl00_Footer1_PanelFooter">
791	
792    <br /> <br />
793    <div>
794        <div class="row">
795            <div class="col-lg-2 col-md-2 col-6">
796                <div class="footerHeader">Indicators</div>
797                <a id="ctl00_Footer1_HyperLink6" class="footerItems" href="../">Homepage</a><br />
798                <a id="ctl00_Footer1_HyperLink17" class="footerItems" href="../countries">Countries</a><br />
799                <a id="ctl00_Footer1_HyperLink18" class="footerItems" href="../indicators">Indicators</a><br />
800                <a id="ctl00_Footer1_HyperLink1" class="footerItems" href="../calendar">Calendar</a><br />
801                <a id="ctl00_Footer1_HyperLink2" class="footerItems" href="../forecasts">Forecasts</a><br />
802                <a id="ctl00_Footer1_HyperLink11" class="footerItems" href="../country-list/rating">Ratings</a>
803                
804            </div>
805            <div class="col-lg-2 col-md-2 col-6">
806                <div class="footerHeader">Solutions</div>
807                <a href="/analytics/features.aspx?source=footer"><span class="footerItems">Data Subscriptions</span></a><br />
808                <a href="/api/?source=footer"><span class="footerItems">API Access</span></a><br />
809                <a href="/analytics/excel.aspx"><span class="footerItems">Excel Add-In</span></a><br />
810                <a href="https://developer.tradingeconomics.com/" target="_blank"><span class="footerItems">Developer Account</span></a><br />
811                <a href="https://docs.tradingeconomics.com/" target="_blank"><span class="footerItems">Documentation</span></a><br />
812                <a href="/analytics/pricing.aspx?source=footer" target="_blank"><span class="footerItems">Pricing</span></a><br />
813                <br />
814            </div>
815            <div class="col-lg-2 col-md-2 col-6">
816                <div class="footerHeader">About Us</div>
817                <a id="ctl00_Footer1_HyperLink8" class="footerItems" href="../api/customers.aspx">Customers</a><br />
818                <a id="ctl00_Footer1_HyperLink23" class="footerItems" href="../careers.aspx">Careers</a><br />
819                <a id="ctl00_Footer1_HyperLink21" class="footerItems" href="../investors.aspx">Investors</a><br />
820                <a id="ctl00_Footer1_HyperLink20" class="footerItems" href="../advertise.aspx">Advertisers</a><br />
821                <a id="ctl00_Footer1_HyperLink19" class="footerItems" href="../about-te.aspx">About us</a><br />
822                <a id="ctl00_Footer1_HyperLink9" class="footerItems" href="../privacy-policy.aspx">Privacy</a>
823            </div>
824            
825            <div class="col-lg-2 col-md-2 col-6">
826                <div class="footerHeader">Contact Us</div>
827                <a href="/contact.aspx"><span class="footerItems">Submit Request</span></a><br /><br />
828                  
829                <br />
830                <br />
831            </div>
832            
833            <div class="col-lg-2 col-md-2 col-6">
834                <a href="https://itunes.apple.com/us/app/trading-economics/id1142178921?mt=8" class="footer-appstore" title="IOs app on Apple" style="margin-top: 30px">
835                    <img alt="IOs app on Apple" src="https://d3e5kp2e91w0k0.cloudfront.net/images/appstore-lrg.svg" width="129" height="45" loading="lazy" decoding="async"/>
836                </a>
837                 <a href="https://play.google.com/store/apps/details?id=com.tradingeconomics.calendar" class="footer-appstore"  title="Android app on Google Play" style="margin-top: 4px">
838                    <img alt="Android app on Google Play" src="https://d3e5kp2e91w0k0.cloudfront.net/images/google-play.png" width="129" height="45" loading="lazy" decoding="async"/>
839                 </a>
840            </div>
841        </div>
842    </div>
843    <br />
844    
845<div>
846    <div class="row">
847        <div class="col-lg-1 col-md-2 col-6">
848            <a class="footer-languages" href="https://tradingeconomics.com" target="_self">English</a><br />
849            <a class="footer-languages" href="https://es.tradingeconomics.com" target="_self">Español</a><br />
850            <a class="footer-languages" href="https://pt.tradingeconomics.com" target="_self">Português</a><br />
851            <a class="footer-languages" href="https://fr.tradingeconomics.com" target="_self">Français</a><br />
852        </div>
853        <div class="col-lg-1 col-md-2 col-6">
854            <a class="footer-languages" href="https://de.tradingeconomics.com" target="_self">
854Deutsch</a><br />
855            <a class="footer-languages" href="https://it.tradingeconomics.com" target="_self">Italiano</a><br />
856            <a class="footer-languages" href="https://pl.tradingeconomics.com" target="_self">Polski</a><br />
857            <a class="footer-languages" href="https://id.tradingeconomics.com" target="_self">Indonesian</a><br />
858        </div>
859        <div class="col-lg-1 col-md-2 col-6">
860
861            <a class="footer-languages" href="https://ru.tradingeconomics.com" target="_self">Русский</a><br />
862            <a class="footer-languages" href="https://tr.tradingeconomics.com" target="_self">Türkçe</a><br />
863            <a class="footer-languages" href="https://ar.tradingeconomics.com" target="_self">العربية</a><br />
864        </div>
865        <div class="col-lg-1 col-md-2 col-6">
866            <a class="footer-languages" href="https://zh.tradingeconomics.com" target="_self">简体中文</a><br />
867            <a class="footer-languages" href="https://jp.tradingeconomics.com" target="_self">日本語</a><br />
868            <a class="footer-languages" href="https://ko.tradingeconomics.com" target="_self">한국어</a><br />
869            
870        </div>
871    </div>
872</div>
873<br />
874    <div class="footer-copyright">
875        <br />
876        <span>Copyright ©2026 TRADING ECONOMICS<br />
877            All Rights Reserved</span><br />
878    </div>
879    <br />
880    <br />
881    
882
883</div>
884
885
886                    </div>
887                </div>
888            </footer>
889        </div>
890    </form>
891    
892<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
892
893
894    
895<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.1/js/bootstrap.bundle.min.js" defer></script>
895
896
897
898    
899<!-- Start of HubSpot Embed Code -->
900<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/49557271.js"></script>
900
901<!-- End of HubSpot Embed Code -->
902
903
904<script>function extractor_multi(n) { if (!n) return ""; var t = n.split(/\s/); return t && t[0] ? [t.slice(Math.max(0, t.length - 5), t.length).join(" "), t.slice(Math.max(0, t.length - 4), t.length).join(" "), t.slice(Math.max(0, t.length - 3), t.length).join(" "), t.slice(Math.max(0, t.length - 2), t.length).join(" "), t.slice(Math.max(0, t.length - 1), t.length).join(" "),] : "" } function capitaliseFirstLetter(n) { return ((n = (n + "").toLowerCase()) + "").replace(/^([a-z])|\s+([a-z])/g, function (n) { return n.toUpperCase() }).replace(/Gdp/g, "GDP").replace(/Ppp/g, "PPP").replace(/cpi/gi, "CPI").replace(/S\&t/g, "S&T").replace(/S\&p/g, "S&P") } function searchQueryEncode(n) { return whiteSpaceKiller(n.replace(/\%/g, "percent ").replace(/\,|\\|_/g, " ")).trim().replace(/\s|\t/g, "-").replace(/\:|\(|\)/g, "").toLowerCase() } function whiteSpaceKiller(n) { return (n = n.replace(/\s\s/g, " ")).match(/\s\s/) ? whiteSpaceKiller(n) : n } !function (n) { var t = function () { "use strict"; return { isMsie: function () { return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : !1 }, isBlankString: function (n) { return !n || /^\s*$/.test(n) }, escapeRegExChars: function (n) { return n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") }, isString: function (n) { return "string" == typeof n }, isNumber: function (n) { return "number" == typeof n }, isArray: n.isArray, isFunction: n.isFunction, isObject: n.isPlainObject, isUndefined: function (n) { return "undefined" == typeof n }, toStr: function (n) { return t.isUndefined(n) || null === n ? "" : n + "" }, bind: n.proxy, each: function (t, i) { function r(n, t) { return i(t, n) } n.each(t, r) }, map: n.map, filter: n.grep, every: function (t, i) { var r = !0; return t ? (n.each(t, function (n, u) { if (!(r = i.call(null, u, n, t))) return !1 }), !!r) : r }, some: function (t, i) { var r = !1; return t ? (n.each(t, function (n, u) { if ((r = i.call(null, u, n, t))) return !1 }), !!r) : r }, mixin: n.extend, getUniqueId: function () { var n = 0; return function () { return n++ } }(), templatify: function (t) { function i() { return String(t) } return n.isFunction(t) ? t : i }, defer: function (n) { setTimeout(n, 0) }, debounce: function (n, t, i) { var r, u; return function () { var f, e, o = this, s = arguments; return f = function () { r = null; i || (u = n.apply(o, s)) }, e = i && !r, clearTimeout(r), r = setTimeout(f, t), e && (u = n.apply(o, s)), u } }, throttle: function (n, t) { var u, f, i, e, r, o; return r = 0, o = function () { r = new Date; i = null; e = n.apply(u, f) }, function () { var s = new Date, h = t - (s - r); return u = this, f = arguments, 0 >= h ? (clearTimeout(i), i = null, r = s, e = n.apply(u, f)) : i || (i = setTimeout(o, h)), e } }, noop: function () { } } }(), f = "0.10.5", e = function () { "use strict"; function n(n) { return n = t.toStr(n), n ? n.split(/\s+/) : [] } function i(n) { return n = t.toStr(n), n ? n.split(/\W+/) : [] } function r(n) { return function () { var i = [].slice.call(arguments, 0); return function (r) { var u = []; return t.each(i, function (i) { u = u.concat(n(t.toStr(r[i]))) }), u } } } return { nonword: i, whitespace: n, obj: { nonword: r(i), whitespace: r(n) } } }(), r = function () { "use strict"; function i(i) { this.maxSize = t.isNumber(i) ? i : 100; this.reset(); this.maxSize <= 0 && (this.set = this.get = n.noop) } function r() { this.head = this.tail = null } function u(n, t) { this.key = n; this.val = t; this.prev = this.next = null } return t.mixin(i.prototype, { set: function (n, t) { var i, r = this.list.tail; this.size >= this.maxSize && (this.list.remove(r), delete this.hash[r.key]); (i = this.hash[n]) ? (i.val = t, this.list.moveToFront(i)) : (i = new u(n, t), this.list.add(i), this.hash[n] = i, this.size++) }, get: function (n) { var t = this.hash[n]; if (t) return (this.list.moveToFront(t), t.val) }, reset: function () { this.size = 0; this.hash = {}; this.list = new r } }), t.mixin(r.prototype, { add: function (n) { this.head && (n.next = this.head, this.head.prev = n); this.head = n; this.tail = this.tail || n }, remove: function (n) { n.prev ? n.prev.next = n.next : this.head = n.next; n.next ? n.next.prev = n.prev : this.tail = n.prev }, moveToFront: function (n) { this.remove(n); this.add(n) } }), i }(), o = function () { "use strict"; function i(n) { this.prefix = ["__", n, "__"].join(""); this.ttlKey = "__ttl__"; this.keyMatcher = new RegExp("^" + t.escapeRegExChars(this.prefix)) } function r() { return (new Date).getTime() } function u(n) { return JSON.stringify(t.isUndefined(n) ? null : n) } function f(n) { return JSON.parse(n) } var n, e; try { n = window.localStorage; n.setItem("~~~", "!"); n.removeItem("~~~") } catch (o) { n = null } return e = n && window.JSON ? { _prefix: function (n) { return this.prefix + n }
904, _ttlKey: function (n) { return this._prefix(n) + this.ttlKey }, get: function (t) { return this.isExpired(t) && this.remove(t), f(n.getItem(this._prefix(t))) }, set: function (i, f, e) { return t.isNumber(e) ? n.setItem(this._ttlKey(i), u(r() + e)) : n.removeItem(this._ttlKey(i)), n.setItem(this._prefix(i), u(f)) }, remove: function (t) { return n.removeItem(this._ttlKey(t)), n.removeItem(this._prefix(t)), this }, clear: function () { for (var r, i = [], u = n.length, t = 0; u > t; t++)(r = n.key(t)).match(this.keyMatcher) && i.push(r.replace(this.keyMatcher, "")); for (t = i.length; t--;)this.remove(i[t]); return this }, isExpired: function (i) { var u = f(n.getItem(this._ttlKey(i))); return t.isNumber(u) && r() > u ? !0 : !1 } } : { get: t.noop, set: t.noop, remove: t.noop, clear: t.noop, isExpired: t.noop }, t.mixin(i.prototype, e), i }(), u = function () { "use strict"; function i(t) { t = t || {}; this.cancelled = !1; this.lastUrl = null; this._send = t.transport ? s(t.transport) : n.ajax; this._get = t.rateLimiter ? t.rateLimiter(this._get) : this._get; this._cache = t.cache === !1 ? new r(0) : o } function s(i) { return function (r, u) { function e(n) { t.defer(function () { f.resolve(n) }) } function o(n) { t.defer(function () { f.reject(n) }) } var f = n.Deferred(); return i(r, u, e, o), f } } var u = 0, f = {}, e = 6, o = new r(10); return i.setMaxPendingRequests = function (n) { e = n }, i.resetCache = function () { o.reset() }, t.mixin(i.prototype, { _get: function (n, t, i) { function o(t) { i && i(null, t); r._cache.set(n, t) } function s() { i && i(!0) } function c() { u--; delete f[n]; r.onDeckRequestArgs && (r._get.apply(r, r.onDeckRequestArgs), r.onDeckRequestArgs = null) } var h, r = this; this.cancelled || n !== this.lastUrl || ((h = f[n]) ? h.done(o).fail(s) : e > u ? (u++, f[n] = this._send(n, t).done(o).fail(s).always(c)) : this.onDeckRequestArgs = [].slice.call(arguments, 0)) }, get: function (n, i, r) { var u; return t.isFunction(i) && (r = i, i = {}), this.cancelled = !1, this.lastUrl = n, (u = this._cache.get(n)) ? t.defer(function () { r && r(null, u) }) : this._get(n, i, r), !!u }, cancel: function () { this.cancelled = !0 } }), i }(), s = function () { "use strict"; function i(t) { t = t || {}; t.datumTokenizer && t.queryTokenizer || n.error("datumTokenizer and queryTokenizer are both required"); this.datumTokenizer = t.datumTokenizer; this.queryTokenizer = t.queryTokenizer; this.reset() } function r(n) { return n = t.filter(n, function (n) { return !!n }), n = t.map(n, function (n) { return n.toLowerCase() }) } function u() { return { ids: [], children: {} } } function f(n) { for (var i = {}, r = [], t = 0, u = n.length; u > t; t++)i[n[t]] || (i[n[t]] = !0, r.push(n[t])); return r } function e(n, t) { function u(n, t) { return n - t } var i = 0, r = 0, f = [], e, o; for (n = n.sort(u), t = t.sort(u), e = n.length, o = t.length; e > i && o > r;)n[i] < t[r] ? i++ : n[i] > t[r] ? r++ : (f.push(n[i]), i++, r++); return f } return t.mixin(i.prototype, { bootstrap: function (n) { this.datums = n.datums; this.trie = n.trie }, add: function (n) { var i = this; n = t.isArray(n) ? n : [n]; t.each(n, function (n) { var f, e; f = i.datums.push(n) - 1; e = r(i.datumTokenizer(n)); t.each(e, function (n) { for (var r, t = i.trie, e = n.split(""); r = e.shift();)t = t.children[r] || (t.children[r] = u()), t.ids.push(f) }) }) }, get: function (n) { var u, i, o = this; return u = r(this.queryTokenizer(n)), t.each(u, function (n) { var t, r, f, u; if (i && 0 === i.length) return !1; for (t = o.trie, r = n.split(""); t && (f = r.shift());)t = t.children[f]; return t && 0 === r.length ? (u = t.ids.slice(0), void (i = i ? e(i, u) : u)) : (i = [], !1) }), i ? t.map(f(i), function (n) { return o.datums[n] }) : [] }, reset: function () { this.datums = []; this.trie = u() }, serialize: function () { return { datums: this.datums, trie: this.trie } } }), i }(), i = function () { "use strict"; function i(n) { return n.local || null } function r(i) { var r, u; return u = { url: null, thumbprint: "", ttl: 864e5, filter: null, ajax: {} }, (r = i.prefetch || null) && (r = t.isString(r) ? { url: r } : r, r = t.mixin(u, r), r.thumbprint = f + r.thumbprint, r.ajax.type = r.ajax.type || "GET", r.ajax.dataType = r.ajax.dataType || "json", !r.url && n.error("prefetch requires url to be set")), r } function u(i) { function f(n) { return function (i) { return t.debounce(i, n) } } function e(n) { return function (i) { return t.throttle(i, n) } } var r, u; return u = { url: null, cache: !0, wildcard: "%QUERY", replace: null, rateLimitBy: "debounce", rateLimitWait: 300, send: null, filter: null, ajax: {} }, (r = i.remote || null) && (r = t.isString(r) ? { url: r } : r, r = t.mixin(u, r), r.rateLimiter = /^throttle$/i.test(r.rateLimitBy) ? e(r.rateLimitWait) : f(r.rateLimitWait), r.ajax.type = r.ajax.type || "GET", r.ajax.dataType = r.ajax.dataType || "json", delete r.rateLimitBy, delete r.rateLimitWait, !r.url && n.error("remote requires url to be set")), r } return { local: i, prefetch: r, remote: u } }(); !function (r) { "use strict"; function h(t) { t && (t.local || t.prefetch || t.remote) || n.error("one of local, prefetch, or remote is required"); this.limit = t.limit || 5; this.sorter = l(t.sorter); this.dupDetector = t.dupDetector || a; this.local = i.local(t); this.prefetch = i.prefetch(t); this.remote = i.remote(t); this.cacheKey = this.prefetch ? this.prefetch.cacheKey || this.prefetch.url : null; this.index = new s({ datumTokenizer: t.datumTokenizer, queryTokenizer: t.queryTokenizer }); this.storage = this.cacheKey ? new o(this.cacheKey) : null } function l(n) { function i(t) { return t.sort(n) } function r(n) { return n } return t.isFunction(n) ? i : r } function a() { return !1 } var c, f; return c = r.Bloodhound, f = { data: "data", protocol: "protocol", thumbprint: "thumbprint" }, r.Bloodhound = h, h.noConflict = function () { return r.Bloodhound = c, h }, h.tokenizers = e, t.mixin(h.prototype, { _loadPrefetch: function (t) { function f(n) { i.clear(); i.add(t.filter ? t.filter(n) : n); i._saveToStorage(i.index.serialize(), t.thumbprint, t.ttl) } var u, r, i = this; return (u = this._readFromStorage(t.thumbprint)) ? (this.index.bootstrap(u), r = n.Deferred().resolve()) : r = n.ajax(t.url, t.ajax).done(f), r }, _getFromRemote: function (n, t) { function f(n, i) { t(n ? [] : u.remote.filter ? u.remote.filter(i) : i) } var i, r, u = this; if (this.transport) return n = n || "", r = encodeURIComponent(n), i = this.remote.replace ? this.remote.replace(this.remote.url, n) : this.remote.url.replace(this.remote.wildcard, r), this.transport.get(i, this.remote.ajax, f) }, _cancelLastRemoteRequest: function () { this.transport && this.transport.cancel() }, _saveToStorage: function (n, t, i) { this.storage && (this.storage.set(f.data, n, i), this.storage.set(f.protocol, location.protocol, i), this.storage.set(f.thumbprint, t, i)) }, _readFromStorage: function (n) { var i, t = {}; return this.storage && (t.data = this.storage.get(f.data), t.protocol = this.storage.get(f.protocol), t.thumbprint = this.storage.get(f.thumbprint)), i = t.thumbprint !== n || t.protocol !== location.protocol, t.data && !i ? t.data : null }, _initialize: function () { function f() { e.add(t.isFunction(i) ? i() : i) } var r, e = this, i = this.local; return r = this.prefetch ? this._loadPrefetch(this.prefetch) : n.Deferred().resolve(), i && r.done(f), this.transport = this.remote ? new u(this.remote) : null, this.initPromise = r.promise() }, initialize: function (n) { return !this.initPromise || n ? this._initialize() : this.initPromise }, add: function (n) { this.index.add(n) }, get: function (n, i) { function e(n) { var f = r.slice(0); t.each(n, function (n) { var i; return i = t.some(f, function (t) { return u.dupDetector(n, t) }), !i && f.push(n), f.length < u.limit }); i && i(u.sorter(f)) } var u = this, r = [], f = !1; r = this.index.get(n); r = this.sorter(r).slice(0, this.limit); r.length < this.limit ? f = this._getFromRemote(n, e) : this._cancelLastRemoteRequest(); f || (r.length > 0 || !this.transport) && i && i(r) }, clear: function () { this.index.reset() }, clearPrefetchCache: function () { this.storage && this.storage.clear() }, clearRemoteCache: function () { this.transport && u.resetCache() }
904, ttAdapter: function () { return t.bind(this.get, this) } }), h }(this) }(window.jQuery); !function (n, t) { "use strict"; "undefined" != typeof module && module.exports ? module.exports = t(require("jquery")(n)) : "function" == typeof define && define.amd ? define("bootstrap3-typeahead", ["jquery"], function (n) { return t(n) }) : t(n.jQuery) }(this, function (n) { "use strict"; var t, i, r; void 0 === t && (t = {}); t.default = ['<div class="ieacac-tabs hidden-xs">', '<ul class="iecac-menu-tabs">', "<\/ul>", "<\/div>",]; i = function (i, r) { var e, o, f, u; if (this.$element = n(i), this.options = n.extend({}, n.fn.iec_typeahead.defaults, r), this.matcher = this.options.matcher || this.matcher, this.wrapper = this.options.wrapper || [], this.table_chart_button = this.options.table_chart_button || !1, this.goDirectly = this.options.goDirectly || !1, this.lang = "string" == typeof iec_language ? window.iec_language : "en", this.sorter = this.options.sorter || this.sorter, this.allow_more = this.options.allow_more || !1, this.go_for_context = this.options.go_for_context || this.options.goForContext || !1, this.in_context_length = this.options.in_context_length || this.options.inContextLength || 0, this.in_context_stack = [], this.rendered = 0, this.select = this.options.select || this.select, this.allow_facilitator_more = this.options.allow_facilitator_more || this.options.allowNavigator || !1, this.on_facilitator_more_click = this.options.on_facilitator_more_click || this.options.onNavigatorMoreClick || !1, this.autoSelect = "boolean" != typeof this.options.autoSelect || this.options.autoSelect, this.expandable = "boolean" == typeof this.options.expandable && this.options.expandable, this.highlighter = this.options.highlighter || this.highlighter, this.render = this.options.render || this.render, this.updater = this.options.updater || this.updater, this.source = this.options.source, this.delay = "number" == typeof this.options.delay ? this.options.delay : 100, this.forceRenderToTextBox = void 0 === this.options.forceRenderToTextBox || this.options.forceRenderToTextBox, this.selectionHandler = void 0 !== this.options.selectionHandler && this.options.selectionHandler, this.$menu = n(this.options.menu), this.options.setClasses && this.options.setClasses.ul) { e = this.options.setClasses.ul.split(" "); for (o in e) this.$menu.addClass(e[o]) } if (this.options.setStyles && this.options.setStyles.ul) for (f in this.options.setStyles.ul) this.options.setStyles.ul[f].p && (console.log("setting style", this.options.setStyles.ul[f]), this.$menu.style(this.options.setStyles.ul[f].p, this.options.setStyles.ul[f].v, this.options.setStyles.ul[f].i)); this.shown = !1; this.tabs = []; this.stance = 0; this.req_num = 0; this.listen(); this.showHintOnFocus = "boolean" == typeof this.options.showHintOnFocus && this.options.showHintOnFocus; this.afterSelect = this.options.afterSelect || this.afterSelect; this.appendMenuTo = this.options.appendMenuTo || !1; this.originalQuery = !1; this.searching_for_something = !1; this.renderAnimation = this.options.renderAnimation || !1; u = {}; void 0 !== t ? u = t : void 0 !== r.typeahead_little_helper && (u = this.options.typeahead_little_helper); this.typeahead_little_helper = u; void 0 === this.options.typeahead_little_helper && (this.options.typeahead_little_helper = u); this.classname = u[this.wrapper] ? n(u[this.wrapper][0])[0].className || "none" : "none"; this.own_special_class = "ieconomics-" + Math.round(1e6 * Math.random()) + "-logic"; this.$element.data("ieconomics", this.own_special_class); this.$element.addClass(this.own_special_class) }; i.prototype = { constructor: i, afterSelect: function (t) { if (t && "go" == t) { console.log("trigger:", t); this.renderAnimation && this.renderAnimation(); var i = (n("#searchu").val() || n("#searchd").val()).trim().toLowerCase(); window.searchQueryEncode && (i = searchQueryEncode(i)); window.location.href = "http://" + window.location.host + "/" + i } }, select: function (t) { var i = this.$menu.find(".active").data("value"), u = !0, r; if (i || (i = this.$element.val(), u = !1), r = { raw: this.$menu.find(".active").data("raw") || i, value: i, isListed: u, type: this.$menu.find(".active").data("type") }, this.selectionHandler) return this.selectionHandler("https://tradingeconomics.com" + i, r, n("#" + this.options.searchBoxId).val()); if ("go_more_results" != i) { if (this.autoSelect || i) { if ("go_facilitator_modal" == i) return this.hide(), event.preventDefault(), event.stopPropagation(), this.mouse_ignore = !0, this.focusout(), void (this.on_facilitator_more_click && this.on_facilitator_more_click()); this.goDirectly ? (this.renderAnimation && this.renderAnimation(), this.hide(), n("#searchButton").attr("style", "background-image: url('/cdn/ie/img/roundload.gif')!important;background-color: #fff;"), window.location.href = "http://" + window.location.host + "/" + ("en" == this.lang ? "" : this.lang + "/") + searchQueryEncode(i)) : (this.$element.val(this.updater(i)).change(), this.table_chart_button && t ? this.afterSelect(t, r) : this.afterSelect(null, r)) } else this.table_chart_button && t ? this.afterSelect(t, r) : this.afterSelect("go", r); return this.hide(), this.mouse_ignore = !0, "" } window.location.href = "https://tradingeconomics.com" + ("en" == this.lang ? "" : this.lang + "/") + "more/" + (n("#searchu").val() || n("#searchd").val()).trim().toLowerCase().replace(/\s/, "-") }, updater: function (n) { return this.query, n }, setSource: function (n) { this.source = n }, show: function () { var u, t = n.extend({}, this.$element.position(), { height: this.$element[0].offsetHeight }), r, i; return u = "function" == typeof this.options.scrollHeight ? this.options.scrollHeight.call() : this.options.scrollHeight, r = t.top + t.height + u, i = t.left, this.options.align && "left" == this.options.align && (console.log("fix left", this.$menu.width()), i = t.left + this.$element.width() - (0 != this.$menu.width() ? this.$menu.width() : 556)), this.appendMenuTo ? this.appendMenuTo.append(this.$menu.css({ top: r, left: i, display: "table" })) : this.forceRenderToTextBox ? this.$menu.insertAfter(this.$element).css({ top: r, left: i, display: "table" }) : this.$menu.show(), this.shown = !0, this }, hide: function () { return this.shown && (this.$menu.hide(), this.shown = !1), this }, lookup: function (t) { if (this.originalQuery = !1, this.have_news = !0, this.query = null != t ? t : this.$element.val() || "", this.query.length > this.options.minLength && (this.searching_for_something = setTimeout(function () { }, 1e3)), this.query.length < this.options.minLength && !this.showHintOnFocus) return this.shown ? this.hide() : this; var i, r = n.proxy(function () { var t = "?"; this.options && "thisIstheSearchBoxIdTag" == this.options.searchBoxId && (t = "&"); this.options && "thisIstheTinySearchBoxIdTag" == this.options.searchBoxId && (t = "&"); this.options && "ac" == this.options.wrapper && (t = "&");
904 (i = n.isFunction(this.source) ? this.source(encodeURIComponent(this.query) + t + "stance=" + ++this.req_num, n.proxy(this.process, this)) : this.source) && this.process(i) }, this); clearTimeout(this.lookupWorker); this.lookupWorker = setTimeout(r, this.delay) }, process: function (t) { this.have_news = !1; clearTimeout(this.searching_for_something); var i = this; if (t[0]) { if (t[0].stance && !(t[0].stance == i.req_num || "searching" == t[0].stance)) return; (t[0].total || 0 === t[0].total) && (i.setBadges(t[0]), t = t.slice(1, t.length + 1)) } return t = n.grep(t, function (n) { return i.matcher(n.name) }), (t = this.sorter(t)).length ? "all" == this.options.items ? this.render(t).show() : this.focused ? this.render(t).show() : void 0 : this.shown ? this.hide() : this }, setBadges: function (i) { var f, u, r; if (this.tabs = [], 0 == this.tabs.length) { f = t[this.wrapper]; for (u in f) if (r = (n(f[u]).find("span").attr("class") || "").replace("iec-menu-tabs-nresults numresults-", ""), !(r.length < 1)) if (r != i.tab) this.tabs.push({ l: u, tab: r }); else { if ("all" == r && 0 === i.total) return console.info("zero"), this.focused = !1, this.hide(); this.populate(u, r, i.total) } this.stance++; this.fetchAndPopulate(this.stance) } }, fetchAndPopulate: function (n) { var t = this; t.stance > n || t.tabs[0] && jQuery.getJSON("http://" + iec_api + "/src/iecac/" + t.query + "?tab=" + t.tabs[0].tab + " &onlystats=true", function () { }).done(function (i) { t.populate(t.tabs[0].l, t.tabs[0].tab, i[0].total); t.stance > n || (t.tabs = t.tabs.slice(1, t.tabs.length), t.fetchAndPopulate(n)) }) }, populate: function (i, r, u) { (u || 0 === u) && (t[this.wrapper][i] = n(t[this.wrapper][i]).find("span").text("(" + u + ")").parent().prop("outerHTML"), n(".numresults-" + r).text("(" + u + ")")) }, matcher: function (n) { return n ? "no results" == n ? -1 : "searching" == n ? -1 : ~n.toLowerCase().indexOf(this.query.toLowerCase()) > -1 ? -1 : ~n.toLowerCase().indexOf(this.query.toLowerCase()) : -1 }, sorter: function (n) { return n }, highlighter: function (n) { var t = extractor_multi(this.query), i = 0; return n ? (n.match(RegExp("(" + (t[0] || "").trim() + ")", "ig")) || (n.match(RegExp("(" + t[1] + ")", "ig")) ? i = 1 : n.match(RegExp("(" + t[2] + ")", "ig")) ? i = 2 : n.match(RegExp("(" + t[3] + ")", "ig")) ? i = 3 : n.match(RegExp("(" + t[4] + ")", "ig")) && (i = 4)), n.replace(RegExp("(" + t[i] + ")", "ig"), function (n, t) { return "<strong>" + t + "<\/strong>" })) : "" }, reorderByCategory: function (n) { n.sort((n, t) => t.importance - n.importance); let r = ["General", "Markets", "Stocks", "Financials"], i = {}; for (var t = 0; t < n.length; t++) { let r = ""; "mkt" == n[t].type ? (r = "Stocks", n[t].type = "Stocks") : "idx" == n[t].type || "commodity" == n[t].type || "bond" == n[t].type || "forex" == n[t].type || "crypto" == n[t].type ? (r = "Markets", n[t].type = "Markets") : "financials" == n[t].type ? (r = "Financials", n[t].type = "Financials") : (r = "General", n[t].type = "General"); i[r] || (i[r] = []); i[r].push(n[t]) } r = n.map(n => n.type); let u = {}; for (let n of r) n in i && (u[n] = i[n]); return u }, addtabs: function (n) { let r = Object.keys(n), t = 0, i = 0; r.forEach(r => { let u = $('<li class="list-group-tab list-group-first-tab"><p>' + r + '<\/p><button type="button" class="btn-close btn-tab-close" aria-label="Close"><\/button><\/li>'), f = $('<li class="list-group-tab"><p>' + r + "<\/p><\/li>"); 0 == t ? this.$menu.children().eq(t).before(u) : this.$menu.children().eq(i).before(f); i = i + n[r].length + 1; t++; u.find(".btn-close").click(function () { $("#dpSearch-resultCnt").hide(); $(".nav-entry-link-group").removeClass("d-none"); $("#thisIsTheSearchBoxWrapperId").removeClass("is-wide-open"); $("#thisIstheSearchBoxIdTag").style("width", "") }) }) }, render: function (t) { var e = t, i, u, r, f; t[0] && void 0 !== t[0].page && (e = t[1]); i = this; t.length; u = this.reorderByCategory(e); let o = Object.keys(u).reduce((n, t) => n.concat(u[t]), []); return (t = n(o).map(function (t, r) { var f, u; return t || (i.in_context_stack = [], i.rendered = 0), f = i.options.items, (i.allow_facilitator_more && f > 1 && (f -= 1), !(i.rendered > f)) ? (r.full_name = r.pretty_name || r.full_name || r.name, r.name = r.pretty_name || r.name, r.the_url = r.url || r.the_url || r.value, r.value = r.the_url, (t = n(i.options.item)).addClass("list-group-item"), t.data("value", (r.value || "").toLowerCase()), t.data("type", (r.type || "").toLowerCase()), t.data("raw", r.value), t.find("a").prop("title", r.full_name || r.name), t.find("a").prop("href", "https://tradingeconomics.com" + r.the_url), t.find("a > .iec-dd-val").html(i.highlighter(r.name)), t.find("a > .iec-dd-symbol").html(r.symbol), u = !1, r.url && r.url.indexOf(":") > 0 && ("GOV" != (u = r.url.split(":")[1].toUpperCase()) && "IND" != u && "CUR" != u && "COM" != u || (u = !1)), r.origin = u || r.origin, r.origin ? t.find("a > .iec-dd-origin").html(r.origin.toUpperCase()) : t.find("a > .iec-dd-origin").addClass("iec-dd-origin-empty"), i.rendered++, t[0]) : void 0 }), this.autoSelect && t.first().addClass("active"), this.options.renderDiv ? this.$menu = n("#" + this.options.renderDiv) : this.$menu.html(this.options.typeahead_little_helper[this.wrapper].join("\n")), this.$menu.empty(), this.$menu.append(t), i.allow_more && t.length > 1) && (r = n('<li data-value="go_more_results" class="list-group-item">'), f = n("#" + this.options.searchBoxId).val().trim().toLowerCase(), this.options.moreUrlFormat && (f = this.options.moreUrlFormat + n("#" + this.options.searchBoxId).val().trim().toLowerCase()), r.append('<a href="https://tradingeconomics.com' + f + '"><span class="iec-dd-symbol d-none d-lg-inline hidden-lg"><\/span><span class="iec-dd-val iec-typeadead-more">More<\/span><span class="iec-dd-origin iec-dd-origin-empty hidden-xs"><\/span><\/a>'), this.$menu.append(r)), i.allow_facilitator_more && ((r = n('<li class="more-facilitator-modal" data-value="go_facilitator_modal">')).append('<a href="#" ><span class="iec-dd-symbol d-none d-lg-inline hidden-lg"><\/span><span class="iec-dd-val iec-typeadead-more">More<\/span><span class="iec-dd-origin iec-dd-origin-empty hidden-xs"><\/span><\/a>'), this.$menu.append(r)), this.addtabs(u), this }, next: function () { var t = this.$menu.find(".active").removeClass("active").next(); t.length || (t = n(this.$menu.find("li")[0])); t.addClass("active") }, prev: function () { var t = this.$menu.find(".active").removeClass("active").prev(); t.length || (t = this.$menu.find("li").last()); "DIV" != n(t[0]).get(0).tagName && t.addClass("active") }, listen: function () { this.$element.on("focus", n.proxy(this.focus, this)).on("blur", n.proxy(this.blur, this)).on("focusout", n.proxy(this.focusout, this)).on("keypress", n.proxy(this.keypress, this)).on("keyup", n.proxy(this.keyup, this));
904 this.eventSupported("keydown") && this.$element.on("keydown", n.proxy(this.keydown, this)); this.$menu.on("click", n.proxy(this.click, this)).on("mouseenter", "li", n.proxy(this.mouseenter, this)).on("mouseleave", "li", n.proxy(this.mouseleave, this)) }, destroy: function () { this.$element.data("typeahead", null); this.$element.off("focus").off("focusout").off("blur").off("keypress").off("keyup"); this.eventSupported("keydown") && this.$element.off("keydown"); this.$menu.remove() }, eventSupported: function (n) { var t = n in this.$element; return t || (this.$element.setAttribute(n, "return;"), t = "function" == typeof this.$element[n]), t }, move: function (t) { if (this.shown) { switch (t.keyCode) { case 9: case 13: case 27: case 39: t.preventDefault(); break; case 38: if (t.shiftKey || (t.preventDefault(), this.prev(), this.originalQuery || (this.originalQuery = this.$element.val()), "more results" == (i = n(n("." + this.classname).parent().find("> li.active")[0]).find("span.iec-dd-val").text()).toLowerCase() || "more" == i.toLowerCase())) return; "" == i.toLowerCase() && (i = this.originalQuery); this.$element.val(i.replace(/\s\s/g, " ").trim().toLowerCase()); break; case 40: var i; if (t.shiftKey || (t.preventDefault(), this.classname.indexOf(" ") > 1 && (this.classname = this.classname.substr(0, this.classname.indexOf(" "))), this.next(), this.originalQuery || (this.originalQuery = this.$element.val()), "more results" == (i = n(n("." + this.classname).parent().find("> li.active")[0]).find("span.iec-dd-val").text()).toLowerCase() || "more" == i.toLowerCase())) return; "" == i.toLowerCase() && (i = this.originalQuery); this.$element.val(i.replace(/\s\s/g, " ").trim().toLowerCase()) }t.stopPropagation() } }, keydown: function (t) { this.suppressKeyPressRepeat = ~n.inArray(t.keyCode, [40, 38, 9, 13, 27, 39]); this.shown || 40 != t.keyCode ? this.move(t) : this.lookup("") }, keypress: function (n) { this.suppressKeyPressRepeat || this.move(n) }, keyup: function (t) { switch (t.keyCode) { case 40: case 38: case 16: case 17: case 18: break; case 9: case 39: if (!this.shown) return; this.select(); break; case 13: if (console.log("event this?", this.shown, this.autoSelect), !this.shown) { if (!this.autoSelect) { if (this.selectionHandler) { var i = { raw: "https://tradingeconomics.com" + this.$element.val(), value: this.$element.val(), isListed: !1, type: !1 }; return this.selectionHandler("https://tradingeconomics.com" + this.$element.val(), i, n("#" + this.options.searchBoxId).val()) } this.goDirectly || this.afterSelect("go") } return } this.select(); this.goDirectly || this.afterSelect("go"); break; case 27: if (!this.shown) return; this.hide(); break; default: this.lookup() }t.stopPropagation(); t.preventDefault() }, focus: function () { if (!this.focused) { if (this.focused = !0, this.went_away) return this.$element.blur(), void (this.went_away = !1); this.show(); (0 === this.options.minLength && !this.$element.val() || this.options.showHintOnFocus) && this.lookup() } }, focusout: function () { this.focused = !1; this.mousedover || !this.shown || n("#" + this.options.renderDiv).is(":hover") || this.hide() }, click: function (n) { console.log("CLICKED -> e.target", n.target); n.preventDefault(); n.target.className.toString().indexOf("menu-tabs") > -1 || this.select() }, mouseenter: function (t) { this.mousedover = !0; this.$menu.find(".active").removeClass("active"); n(t.currentTarget).addClass("active") }, mouseleave: function () { this.mousedover = !1; this.mouse_ignore ? this.mouse_ignore = !1 : this.focused || (this.$element.focus(), this.focused = !0) } }; r = n.fn.typeahead; n.fn.iec_typeahead = function (t) { var r = arguments; return this.each(function () { var f = n(this), u = f.data("typeahead"); u || f.data("typeahead", u = new i(this, "object" == typeof t && t)); "string" == typeof t && (r.length > 1 ? u[t].apply(u, Array.prototype.slice.call(r, 1)) : u[t]()) }) }; n.fn.iec_typeahead.defaults = { source: [], items: 8, menu: '<ul class="typeahead dropdown-menu"><\/ul>', item: '<li><a href="#"><span class="iec-dd-symbol d-none d-lg-inline hidden-lg"><\/span><span class="iec-dd-val"><\/span><span class="iec-dd-origin hidden-xs"><\/span><\/a><\/li>', minLength: 2, scrollHeight: 0, autoSelect: !0 }; n.fn.iec_typeahead.Constructor = i; n.fn.iec_typeahead.noConflict = function () { return n.fn.typeahead = r, this };
904 n(document).on("focus.typeahead.data-api", '[data-provide="typeahead"]', function () { var t = n(this); t.data("typeahead") || t.iec_typeahead(t.data()) }) }), function (n) { if (!n.fn.style) { var t = function (n) { return n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") }; CSSStyleDeclaration.prototype.getPropertyValue || (CSSStyleDeclaration.prototype.getPropertyValue = function (n) { return this.getAttribute(n) }, CSSStyleDeclaration.prototype.setProperty = function (n, i, r) { if (this.setAttribute(n, i), "" != (r = void 0 !== r ? r : "")) { var u = RegExp(t(n) + "\\s*:\\s*" + t(i) + "(\\s*;)?", "gmi"); this.cssText = this.cssText.replace(u, n + ": " + i + " !" + r + ";") } }, CSSStyleDeclaration.prototype.removeProperty = function (n) { return this.removeAttribute(n) }, CSSStyleDeclaration.prototype.getPropertyPriority = function (n) { return RegExp(t(n) + "\\s*:\\s*[^\\s]*\\s*!important(\\s*;)?", "gmi").test(this.cssText) ? "important" : "" }); n.fn.style = function (n, t, i) { if (void 0 === this.get(0)) return this; var r = this.get(0).style; return void 0 !== n ? void 0 !== t ? (i = void 0 !== i ? i : "", r.setProperty(n, t, i), this) : r.getPropertyValue(n) : r } } }(jQuery); !function () { function o(t, r, u) { r.isListed ? "go_more_results" == t || t.indexOf("go_more_results") > 0 ? i(u || $("#" + n).val()) : window.location.href = t : i(u || $("#" + n).val()) } function i(n) { if (n && "" != n) { var t = r + encodeURIComponent(n); window.location = t } } var r = "/search.aspx?q=", n = "thisIstheSearchBoxIdTag", u = !1, t = !1, c = !1, f = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace("value"), queryTokenizer: Bloodhound.tokenizers.whitespace, limit: 250, remote: { url: "https://brains.tradingeconomics.com/v2/search/all", replace: function (n, t) { var i = n + "?q=" + t + "&as=true&p=0&t=te-ta&nofacets=true&pp=7"; return console.log("_url", i), i } } }); f.initialize(); $("#" + n).iec_typeahead({ items: 7, autoSelect: !1, wrapper: "default", expandable: !0, source: f.ttAdapter(), goDirectly: !0, allow_more: !0, searchBoxId: n, renderDiv: "dpSearch-resultCnt", forceRenderToTextBox: !1, selectionHandler: o, moreUrlFormat: r }); $("#thisIstheTinySearchBoxIdTag").iec_typeahead({ items: 7, autoSelect: !1, wrapper: "default", expandable: !0, source: f.ttAdapter(), goDirectly: !0, allow_more: !0, searchBoxId: "thisIstheTinySearchBoxIdTag", renderDiv: "dpSearch-resultCnt-tiny", forceRenderToTextBox: !1, selectionHandler: o, moreUrlFormat: r }); $("#" + n).on("focus", function () { e() }); $("#" + n).on("focusout", function (t) { $(t.target).attr("id") != n && (c = !1, s()) }); var e = function () { if (myResultsDisplayer = "#dpSearch-resultCnt", !t) { t = !0; var r = $(".navbar-collapse").width(), u = $(".navbar-header").width(), i = Math.min(Math.max(600, r - u - 100), 900); ga("event", "te-search-focus"); console.log("expand"); $("#thisIsTheSearchBoxWrapperId").toggleClass("is-wide-open"); $("#" + n).animate({ width: i }, 301); $("#" + n).toggleClass("d-none d-md-block"); $("#" + n).animate({ width: i }, 10); $(".nav-entry-link-group").addClass("d-none"); $("#" + n).focus(); $("#" + n).val() && $("#" + n).val().length && (console.log("expand immediatly"), h()) } }, s = function () { t && (t = !1, $("#thisIsTheSearchBoxWrapperId").toggleClass("is-wide-open"), $("#" + n).toggleClass("d-none d-md-block"), l(), $("#" + n).css("width", ""), $(".nav-entry-link-group").removeClass("d-none")) }, h = function () { u || (u = !0) }, l = function () { u = !1 }; $("#thisIsTheBigGlyphiconId").click(function () { t ? i($("#" + n).val()) : e() }); $("#thisIsTheSmallGlyphiconId1").click(function () { t ? i($("#" + n).val()) : e() }); $("#thisIsTheTinyGlyphiconId").click(function () { console.log("tiny click"); t || function () { myResultsDisplayer = "#dpSearch-resultCnt-tiny"; $("#mainHeader").hide(300, function () { }); $("#searchMobileHeader").show(300, function () { }); $("#thisIstheTinySearchBoxIdTag").focus(); $("#thisIstheTinySearchBoxIdTag").val() && $("#thisIstheTinySearchBoxIdTag").val().length && (console.log("expand immediatly"), h()) }() }); $("#thisIsTheTinyRemoveId").click(function () { $("#searchMobileHeader").hide(300, function () { }); $("#mainHeader").show(300, function () { }) }); $(document).on("click", function () { !t || $("#dpSearch-resultCnt").is(":hover") || $("#" + n).is(":hover") || $("#" + n).is(":focus") || $("#thisIsTheSearchPlaceholderId").is(":hover") || s() }) }();</script>
vendor: 73 bytes, lines 904-907
904
905
906    
907<script async src="https://www.googletagmanager.com/gtag/js?id=
907G-SZ14JCTXWQ
vendor: 13 bytes, line 907
907"></script>
908<script>
909    window.dataLayer = window.dataLayer || [];
910    function ga() { dataLayer.push(arguments); }
911    ga('js', new Date());
912    ga('consent', 'default', {
913        'ad_personalization': 'granted',
914        'ad_storage': 'granted',
915        'ad_user_data': 'granted',
916        'analytics_storage': 'granted',
917        'functionality_storage': 'granted',
918        'personalization_storage': 'granted',
919        'security_storage': 'granted'
920    });
921    ga('config', 'G-SZ14JCTXWQ', {
922        'user_properties': {
923            'isLoggedIn': isLoggedIn ? 'true' : 'false',
924            'IsDarkMode': IsDarkMode ? 'true' : 'false'
925        }
926    });
927</script>
927
928
929</body>
930</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.