/*
* @Author: hungeazy
* @Date:   2025-10-21 10:00:32
* @Last Modified by:   hungeazy
* @Last Modified time: 2025-10-21 15:55:28
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
// #pragma GCC optimize("O3")  
// #pragma GCC optimize("unroll-loops")  
// #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")  
using namespace std;
using namespace __gnu_pbds; 
bool M1;
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define int long long
#define ll long long 
#define ull unsigned long long
#define sz(x) x.size()
#define sqr(x) (1LL * (x) * (x))
#define all(x) x.begin(), x.end()
#define fill(f,x) memset(f,x,sizeof(f))
#define FOR(i,l,r) for(int i=l;i<=r;i++)
#define FOD(i,r,l) for(int i=r;i>=l;i--)
#define debug(x) cout << #x << " = " << x << '\n'
#define ii pair<int,int>
#define iii pair<int,ii>
#define di pair<ii,ii>
#define vi vector<int>
#define vii vector<ii>
#define mii map<int,int>
#define fi first
#define se second
#define pb push_back
#define MOD 1000000007
#define __lcm(a,b) (1ll * ((a) / __gcd((a), (b))) * (b))
#define YES cout << "YES\n"
#define NO cout << "NO\n"
#define MASK(i) (1LL << (i))
#define c_bit(i) __builtin_popcountll(i)
#define BIT(x,i) ((x) & MASK(i))
#define SET_ON(x,i) ((x) | MASK(i))
#define SET_OFF(x,i) ((x) & ~MASK(i))
#define oo 1e18
#define name ""
#define endl '\n'
#define memory() cerr << abs(&M2-&M1)/1024.0/1024 << " MB" << endl
#define time() cerr << endl << "-------------Time:" << 1000.0 * clock() / CLOCKS_PER_SEC << "ms." << endl
template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return true; }; return false; }
template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return true; }; return false; }
template <class T> using ordered_set = tree <T, null_type, less_equal <T>, rb_tree_tag,tree_order_statistics_node_update>;
const int N = (int)5e5+10;
int n,W;
 
struct Data {
	int v,w;
	bool operator<(const Data &other) {
		return w > other.w;
	}
} a[N];
 
namespace sub3 {
 
	bool approved() {
		return n <= 1e3 and W <= 1e4;
	}
 
	void solve(void)
	{
		sort(a+1,a+n+1);
		mii dp;
		dp[W] = 0;
		FOR(i,1,n)
			for (auto &x : dp)
				if (x.fi >= a[i].w)
					maximize(dp[x.fi-a[i].w],x.se+a[i].v);
		int ans = 0;
		for (auto &x : dp) maximize(ans,x.se);
		cout << ans;
	}
 
}
 
namespace sub5 {
 
	bool approved() {
		int x = a[1].w;
		FOR(i,1,n)
			if (a[i].w != x) return false;
		return W <= 1e8;
	}
 
	void solve(void)
	{
		sort(a+1,a+n+1,[&](Data &x, Data &y) {
			return x.v > y.v;
		});
		int w0 = a[1].w, k = min(W/w0,n);
		int ans = 0;
		FOR(i,1,k) ans += a[i].v;
		cout << ans;
	}
 
}
 
namespace sub6 {
 
	map<int,vi> val;
	int pre1[N],pre2[N];
 
	bool approved() {
		set<int> s;
		FOR(i,1,n) s.insert(a[i].w);
		return W <= 1e8 and sz(s) <= 2;
	}
 
	void solve(void)
	{
		FOR(i,1,n) val[a[i].w].pb(a[i].v);
		int val1 = 0, len1 = 0, val2 = 0, len2 = 0;
		for (auto x : val)
			if (!val1)
			{
				len1 = sz(x.se);
				val1 = x.fi;
				sort(all(x.se),greater<int>());
				FOR(i,0,len1-1)
					pre1[i+1] = pre1[i]+x.se[i];
			}
			else
			{	
				len2 = sz(x.se);
				val2 = x.fi;
				sort(all(x.se),greater<int>());
				FOR(i,0,len2-1)
					pre2[i+1] = pre2[i]+x.se[i];
			}
		int ans = 0;
		FOR(i,0,len1-1)
			if (val1*i >= W) break;
			else 
			{
				int cur = (W-(i*val1))/val2;
				maximize(ans,pre1[i]+pre2[cur]);
			}
		cout << ans;
	}
 
}
 
namespace sub7 {
 
	vi val[N];
 
	vi mergeSort(vi &a, vi &b)
	{
		int n = sz(a)-1, m = sz(b)-1;
		vi ans(n+m+1);
		int pos = 0;
		FOR(i,0,n+m)
		{
			int l = max(0LL,i-m), r = min(i,n);
			if (pos < l) pos = l;
			if (pos > r) pos = r;
			while (pos < r and a[pos+1]+b[i-(pos+1)] >= a[pos]+b[i-pos]) 
				++pos;
			ans[i] = a[pos]+b[i-pos];
		}
		return ans;
	}
 
	vi calc(vi &v, int tmp, int sz)
	{
		vi ans;
		int pos = 1, sum = v[0];
		while (pos < sz(v) and tmp > 0)
		{
			tmp--;
			sum = v[pos++];
		}
		ans.pb(sum);
		while (pos < sz(v))
		{
			int cur = pos+sz;
			while (pos < sz(v) and pos < cur)
				sum = v[pos++];
			ans.pb(sum);
		}
		return ans;
	}
 
	void solve(void)
	{
		sort(a+1,a+n+1,[&](Data &x, Data &y) {
			if (x.w == y.w) return x.v > y.v;
			return x.w < y.w;
		});	
		while (n and a[n].w > W) n--;
		vi vec;
		FOR(i,1,n) vec.pb(a[i].w);
		vec.erase(unique(all(vec)),vec.end());
		int len = sz(vec);
		if (vec.empty())
		{
			cout << 0 << endl;
			return;
		}
		FOR(i,0,len-1) val[i].pb(0);
		int pos = 0;
		FOR(i,1,n)
		{
			if (vec[pos] != a[i].w) pos++;
			val[pos].pb(a[i].v);
		}
		FOR(i,0,pos)
			FOR(j,1,sz(val[i])-1) val[i][j] += val[i][j-1];
		FOR(i,0,pos-1)
		{
			int cur = (W-(W/vec[i+1])*vec[i+1])/vec[i], sz = vec[i+1]/vec[i];
			val[i] = calc(val[i],cur,sz);
			val[i+1] = mergeSort(val[i],val[i+1]);
		}
		int tmp = W/vec[pos];
		cout << val[pos][min(tmp,(int)sz(val[pos])-1)];
	}
 
}
 
bool M2;
signed main()
{
    fast;
    if (fopen(name".inp","r"))
    {
    	freopen(name".inp","r",stdin);
    	freopen(name".out","w",stdout);
    }
    cin >> n >> W;
    FOR(i,1,n) cin >> a[i].v >> a[i].w;
    if (sub3::approved()) return sub3::solve(), time(), memory(), 0;
    if (sub5::approved()) return sub5::solve(), time(), memory(), 0;
    if (sub6::approved()) return sub6::solve(), time(), memory(), 0;
    sub7::solve();
    time();
    memory();
    return 0;
}
// ██░ ██  █    ██  ███▄    █   ▄████
//▓██░ ██▒ ██  ▓██▒ ██ ▀█   █  ██▒ ▀█▒
//▒██▀▀██░▓██  ▒██░▓██  ▀█ ██▒▒██░▄▄▄░
//░▓█ ░██ ▓▓█  ░██░▓██▒  ▐▌██▒░▓█  ██▓
//░▓█▒░██▓▒▒█████▓ ▒██░   ▓██░░▒▓███▀▒
// ▒ ░░▒░▒░▒▓▒ ▒ ▒ ░ ▒░   ▒ ▒  ░▒   ▒
// ▒ ░▒░ ░░░▒░ ░ ░ ░ ░░   ░ ▒░  ░   ░
// ░  ░░ ░ ░░░ ░ ░    ░   ░ ░ ░ ░   ░
// ░  ░  ░   ░              ░       ░
				LyoKKiBAQXV0aG9yOiBodW5nZWF6eQoqIEBEYXRlOiAgIDIwMjUtMTAtMjEgMTA6MDA6MzIKKiBATGFzdCBNb2RpZmllZCBieTogICBodW5nZWF6eQoqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjUtMTAtMjEgMTU6NTU6MjgKKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4gCiNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPiAKLy8gI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zIikgIAovLyAjcHJhZ21hIEdDQyBvcHRpbWl6ZSgidW5yb2xsLWxvb3BzIikgIAovLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIscG9wY250LGx6Y250IikgIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsgCmJvb2wgTTE7CiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgc3ooeCkgeC5zaXplKCkKI2RlZmluZSBzcXIoeCkgKDFMTCAqICh4KSAqICh4KSkKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLCB4LmVuZCgpCiNkZWZpbmUgZmlsbChmLHgpIG1lbXNldChmLHgsc2l6ZW9mKGYpKQojZGVmaW5lIEZPUihpLGwscikgZm9yKGludCBpPWw7aTw9cjtpKyspCiNkZWZpbmUgRk9EKGkscixsKSBmb3IoaW50IGk9cjtpPj1sO2ktLSkKI2RlZmluZSBkZWJ1Zyh4KSBjb3V0IDw8ICN4IDw8ICIgPSAiIDw8IHggPDwgJ1xuJwojZGVmaW5lIGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBpaWkgcGFpcjxpbnQsaWk+CiNkZWZpbmUgZGkgcGFpcjxpaSxpaT4KI2RlZmluZSB2aSB2ZWN0b3I8aW50PgojZGVmaW5lIHZpaSB2ZWN0b3I8aWk+CiNkZWZpbmUgbWlpIG1hcDxpbnQsaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBfX2xjbShhLGIpICgxbGwgKiAoKGEpIC8gX19nY2QoKGEpLCAoYikpKSAqIChiKSkKI2RlZmluZSBZRVMgY291dCA8PCAiWUVTXG4iCiNkZWZpbmUgTk8gY291dCA8PCAiTk9cbiIKI2RlZmluZSBNQVNLKGkpICgxTEwgPDwgKGkpKQojZGVmaW5lIGNfYml0KGkpIF9fYnVpbHRpbl9wb3Bjb3VudGxsKGkpCiNkZWZpbmUgQklUKHgsaSkgKCh4KSAmIE1BU0soaSkpCiNkZWZpbmUgU0VUX09OKHgsaSkgKCh4KSB8IE1BU0soaSkpCiNkZWZpbmUgU0VUX09GRih4LGkpICgoeCkgJiB+TUFTSyhpKSkKI2RlZmluZSBvbyAxZTE4CiNkZWZpbmUgbmFtZSAiIgojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIG1lbW9yeSgpIGNlcnIgPDwgYWJzKCZNMi0mTTEpLzEwMjQuMC8xMDI0IDw8ICIgTUIiIDw8IGVuZGwKI2RlZmluZSB0aW1lKCkgY2VyciA8PCBlbmRsIDw8ICItLS0tLS0tLS0tLS0tVGltZToiIDw8IDEwMDAuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAibXMuIiA8PCBlbmRsCnRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgbWF4aW1pemUoVCAmcmVzLCBjb25zdCBUICZ2YWwpIHsgaWYgKHJlcyA8IHZhbCl7IHJlcyA9IHZhbDsgcmV0dXJuIHRydWU7IH07IHJldHVybiBmYWxzZTsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIG1pbmltaXplKFQgJnJlcywgY29uc3QgVCAmdmFsKSB7IGlmIChyZXMgPiB2YWwpeyByZXMgPSB2YWw7IHJldHVybiB0cnVlOyB9OyByZXR1cm4gZmFsc2U7IH0KdGVtcGxhdGUgPGNsYXNzIFQ+IHVzaW5nIG9yZGVyZWRfc2V0ID0gdHJlZSA8VCwgbnVsbF90eXBlLCBsZXNzX2VxdWFsIDxUPiwgcmJfdHJlZV90YWcsdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKY29uc3QgaW50IE4gPSAoaW50KTVlNSsxMDsKaW50IG4sVzsKCnN0cnVjdCBEYXRhIHsKCWludCB2LHc7Cglib29sIG9wZXJhdG9yPChjb25zdCBEYXRhICZvdGhlcikgewoJCXJldHVybiB3ID4gb3RoZXIudzsKCX0KfSBhW05dOwoKbmFtZXNwYWNlIHN1YjMgewoKCWJvb2wgYXBwcm92ZWQoKSB7CgkJcmV0dXJuIG4gPD0gMWUzIGFuZCBXIDw9IDFlNDsKCX0KCgl2b2lkIHNvbHZlKHZvaWQpCgl7CgkJc29ydChhKzEsYStuKzEpOwoJCW1paSBkcDsKCQlkcFtXXSA9IDA7CgkJRk9SKGksMSxuKQoJCQlmb3IgKGF1dG8gJnggOiBkcCkKCQkJCWlmICh4LmZpID49IGFbaV0udykKCQkJCQltYXhpbWl6ZShkcFt4LmZpLWFbaV0ud10seC5zZSthW2ldLnYpOwoJCWludCBhbnMgPSAwOwoJCWZvciAoYXV0byAmeCA6IGRwKSBtYXhpbWl6ZShhbnMseC5zZSk7CgkJY291dCA8PCBhbnM7Cgl9CgkKfQoKbmFtZXNwYWNlIHN1YjUgewoKCWJvb2wgYXBwcm92ZWQoKSB7CgkJaW50IHggPSBhWzFdLnc7CgkJRk9SKGksMSxuKQoJCQlpZiAoYVtpXS53ICE9IHgpIHJldHVybiBmYWxzZTsKCQlyZXR1cm4gVyA8PSAxZTg7Cgl9CgoJdm9pZCBzb2x2ZSh2b2lkKQoJewoJCXNvcnQoYSsxLGErbisxLFsmXShEYXRhICZ4LCBEYXRhICZ5KSB7CgkJCXJldHVybiB4LnYgPiB5LnY7CgkJfSk7CgkJaW50IHcwID0gYVsxXS53LCBrID0gbWluKFcvdzAsbik7CgkJaW50IGFucyA9IDA7CgkJRk9SKGksMSxrKSBhbnMgKz0gYVtpXS52OwoJCWNvdXQgPDwgYW5zOwoJfQoKfQoKbmFtZXNwYWNlIHN1YjYgewoKCW1hcDxpbnQsdmk+IHZhbDsKCWludCBwcmUxW05dLHByZTJbTl07CgoJYm9vbCBhcHByb3ZlZCgpIHsKCQlzZXQ8aW50PiBzOwoJCUZPUihpLDEsbikgcy5pbnNlcnQoYVtpXS53KTsKCQlyZXR1cm4gVyA8PSAxZTggYW5kIHN6KHMpIDw9IDI7Cgl9CgoJdm9pZCBzb2x2ZSh2b2lkKQoJewoJCUZPUihpLDEsbikgdmFsW2FbaV0ud10ucGIoYVtpXS52KTsKCQlpbnQgdmFsMSA9IDAsIGxlbjEgPSAwLCB2YWwyID0gMCwgbGVuMiA9IDA7CgkJZm9yIChhdXRvIHggOiB2YWwpCgkJCWlmICghdmFsMSkKCQkJewoJCQkJbGVuMSA9IHN6KHguc2UpOwoJCQkJdmFsMSA9IHguZmk7CgkJCQlzb3J0KGFsbCh4LnNlKSxncmVhdGVyPGludD4oKSk7CgkJCQlGT1IoaSwwLGxlbjEtMSkKCQkJCQlwcmUxW2krMV0gPSBwcmUxW2ldK3guc2VbaV07CgkJCX0KCQkJZWxzZQoJCQl7CQoJCQkJbGVuMiA9IHN6KHguc2UpOwoJCQkJdmFsMiA9IHguZmk7CgkJCQlzb3J0KGFsbCh4LnNlKSxncmVhdGVyPGludD4oKSk7CgkJCQlGT1IoaSwwLGxlbjItMSkKCQkJCQlwcmUyW2krMV0gPSBwcmUyW2ldK3guc2VbaV07CgkJCX0KCQlpbnQgYW5zID0gMDsKCQlGT1IoaSwwLGxlbjEtMSkKCQkJaWYgKHZhbDEqaSA+PSBXKSBicmVhazsKCQkJZWxzZSAKCQkJewoJCQkJaW50IGN1ciA9IChXLShpKnZhbDEpKS92YWwyOwoJCQkJbWF4aW1pemUoYW5zLHByZTFbaV0rcHJlMltjdXJdKTsKCQkJfQoJCWNvdXQgPDwgYW5zOwoJfQoKfQoKbmFtZXNwYWNlIHN1YjcgewoKCXZpIHZhbFtOXTsKCgl2aSBtZXJnZVNvcnQodmkgJmEsIHZpICZiKQoJewoJCWludCBuID0gc3ooYSktMSwgbSA9IHN6KGIpLTE7CgkJdmkgYW5zKG4rbSsxKTsKCQlpbnQgcG9zID0gMDsKCQlGT1IoaSwwLG4rbSkKCQl7CgkJCWludCBsID0gbWF4KDBMTCxpLW0pLCByID0gbWluKGksbik7CgkJCWlmIChwb3MgPCBsKSBwb3MgPSBsOwoJCQlpZiAocG9zID4gcikgcG9zID0gcjsKCQkJd2hpbGUgKHBvcyA8IHIgYW5kIGFbcG9zKzFdK2JbaS0ocG9zKzEpXSA+PSBhW3Bvc10rYltpLXBvc10pIAoJCQkJKytwb3M7CgkJCWFuc1tpXSA9IGFbcG9zXStiW2ktcG9zXTsKCQl9CgkJcmV0dXJuIGFuczsKCX0KCgl2aSBjYWxjKHZpICZ2LCBpbnQgdG1wLCBpbnQgc3opCgl7CgkJdmkgYW5zOwoJCWludCBwb3MgPSAxLCBzdW0gPSB2WzBdOwoJCXdoaWxlIChwb3MgPCBzeih2KSBhbmQgdG1wID4gMCkKCQl7CgkJCXRtcC0tOwoJCQlzdW0gPSB2W3BvcysrXTsKCQl9CgkJYW5zLnBiKHN1bSk7CgkJd2hpbGUgKHBvcyA8IHN6KHYpKQoJCXsKCQkJaW50IGN1ciA9IHBvcytzejsKCQkJd2hpbGUgKHBvcyA8IHN6KHYpIGFuZCBwb3MgPCBjdXIpCgkJCQlzdW0gPSB2W3BvcysrXTsKCQkJYW5zLnBiKHN1bSk7CgkJfQoJCXJldHVybiBhbnM7Cgl9CgoJdm9pZCBzb2x2ZSh2b2lkKQoJewoJCXNvcnQoYSsxLGErbisxLFsmXShEYXRhICZ4LCBEYXRhICZ5KSB7CgkJCWlmICh4LncgPT0geS53KSByZXR1cm4geC52ID4geS52OwoJCQlyZXR1cm4geC53IDwgeS53OwoJCX0pOwkKCQl3aGlsZSAobiBhbmQgYVtuXS53ID4gVykgbi0tOwoJCXZpIHZlYzsKCQlGT1IoaSwxLG4pIHZlYy5wYihhW2ldLncpOwoJCXZlYy5lcmFzZSh1bmlxdWUoYWxsKHZlYykpLHZlYy5lbmQoKSk7CgkJaW50IGxlbiA9IHN6KHZlYyk7CgkJaWYgKHZlYy5lbXB0eSgpKQoJCXsKCQkJY291dCA8PCAwIDw8IGVuZGw7CgkJCXJldHVybjsKCQl9CgkJRk9SKGksMCxsZW4tMSkgdmFsW2ldLnBiKDApOwoJCWludCBwb3MgPSAwOwoJCUZPUihpLDEsbikKCQl7CgkJCWlmICh2ZWNbcG9zXSAhPSBhW2ldLncpIHBvcysrOwoJCQl2YWxbcG9zXS5wYihhW2ldLnYpOwoJCX0KCQlGT1IoaSwwLHBvcykKCQkJRk9SKGosMSxzeih2YWxbaV0pLTEpIHZhbFtpXVtqXSArPSB2YWxbaV1bai0xXTsKCQlGT1IoaSwwLHBvcy0xKQoJCXsKCQkJaW50IGN1ciA9IChXLShXL3ZlY1tpKzFdKSp2ZWNbaSsxXSkvdmVjW2ldLCBzeiA9IHZlY1tpKzFdL3ZlY1tpXTsKCQkJdmFsW2ldID0gY2FsYyh2YWxbaV0sY3VyLHN6KTsKCQkJdmFsW2krMV0gPSBtZXJnZVNvcnQodmFsW2ldLHZhbFtpKzFdKTsKCQl9CgkJaW50IHRtcCA9IFcvdmVjW3Bvc107CgkJY291dCA8PCB2YWxbcG9zXVttaW4odG1wLChpbnQpc3oodmFsW3Bvc10pLTEpXTsKCX0KCn0KCmJvb2wgTTI7CnNpZ25lZCBtYWluKCkKewogICAgZmFzdDsKICAgIGlmIChmb3BlbihuYW1lIi5pbnAiLCJyIikpCiAgICB7CiAgICAJZnJlb3BlbihuYW1lIi5pbnAiLCJyIixzdGRpbik7CiAgICAJZnJlb3BlbihuYW1lIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgfQogICAgY2luID4+IG4gPj4gVzsKICAgIEZPUihpLDEsbikgY2luID4+IGFbaV0udiA+PiBhW2ldLnc7CiAgICBpZiAoc3ViMzo6YXBwcm92ZWQoKSkgcmV0dXJuIHN1YjM6OnNvbHZlKCksIHRpbWUoKSwgbWVtb3J5KCksIDA7CiAgICBpZiAoc3ViNTo6YXBwcm92ZWQoKSkgcmV0dXJuIHN1YjU6OnNvbHZlKCksIHRpbWUoKSwgbWVtb3J5KCksIDA7CiAgICBpZiAoc3ViNjo6YXBwcm92ZWQoKSkgcmV0dXJuIHN1YjY6OnNvbHZlKCksIHRpbWUoKSwgbWVtb3J5KCksIDA7CiAgICBzdWI3Ojpzb2x2ZSgpOwogICAgdGltZSgpOwogICAgbWVtb3J5KCk7CiAgICByZXR1cm4gMDsKfQovLyDilojilojilpEg4paI4paIICDiloggICAg4paI4paIICDilojilojilojiloQgICAg4paIICAg4paE4paI4paI4paI4paICi8v4paT4paI4paI4paRIOKWiOKWiOKWkiDilojiloggIOKWk+KWiOKWiOKWkiDilojilogg4paA4paIICAg4paIICDilojilojilpIg4paA4paI4paSCi8v4paS4paI4paI4paA4paA4paI4paI4paR4paT4paI4paIICDilpLilojilojilpHilpPilojiloggIOKWgOKWiCDilojilojilpLilpLilojilojilpHiloTiloTiloTilpEKLy/ilpHilpPilogg4paR4paI4paIIOKWk+KWk+KWiCAg4paR4paI4paI4paR4paT4paI4paI4paSICDilpDilozilojilojilpLilpHilpPiloggIOKWiOKWiOKWkwovL+KWkeKWk+KWiOKWkuKWkeKWiOKWiOKWk+KWkuKWkuKWiOKWiOKWiOKWiOKWiOKWkyDilpLilojilojilpEgICDilpPilojilojilpHilpHilpLilpPilojilojilojiloDilpIKLy8g4paSIOKWkeKWkeKWkuKWkeKWkuKWkeKWkuKWk+KWkiDilpIg4paSIOKWkSDilpLilpEgICDilpIg4paSICDilpHilpIgICDilpIKLy8g4paSIOKWkeKWkuKWkSDilpHilpHilpHilpLilpEg4paRIOKWkSDilpEg4paR4paRICAg4paRIOKWkuKWkSAg4paRICAg4paRCi8vIOKWkSAg4paR4paRIOKWkSDilpHilpHilpEg4paRIOKWkSAgICDilpEgICDilpEg4paRIOKWkSDilpEgICDilpEKLy8g4paRICDilpEgIOKWkSAgIOKWkSAgICAgICAgICAgICAg4paRICAgICAgIOKWkQ==