/* Decoded by unphp.net */ $tbvg3b=Grav::igjq3c()[base64_decode('aW5mbGVjdG9y')]->zajs3d($voxn24);}else{if(tbuy5($ezzy26)){$this->$tbvg3b=md5($ezzy26);}else{$this->$tbvg3b=spl_object_hash($ezzy26);}}$this->$whzq3e=new snht3f(base64_decode('bm93'));$this->$mfnj40=sys_get_temp_dir();$this->$xvsb41=$ezzy26;$this->$bulq42=$kihw28;$dqid43=Grav::igjq3c()[base64_decode('Y29uZmln')]->uzkk44(base64_decode('c2NoZWR1bGVyLnN0YXR1cw=='));$this->$ggiq45=!(isset($dqid43[$voxn24])&&$dqid43[$voxn24]===base64_decode('ZGlzYWJsZWQ='));}/** * Get the command * * @return Closure|string */ public function ftbt7(){return $this->$xvsb41;}/** * Get the cron 'at' syntax for this job * * @return string */ public function pxfa8(){return $this->$rihe46;}/** * Get the status of this job * * @return bool */ public function scrf9(){return $this->$ggiq45;}/** * Get optional arguments * * @return string|null */ public function oywga(){if(tbuy5($this->$bulq42)){return $this->$bulq42;}return null;}/** * @return CronExpression */ public function baszb(){return CronExpression::xncc47($this->$rihe46);}/** * Get the status of the last run for this job * * @return bool */ public function hxjrc(){return $this->$oaby48;}/** * Get the Job id. * * @return string */ public function fksdd(){return $this->$tbvg3b;}/** * Check if the Job is due to run. * It accepts as input a DateTime used to check if * the job is due. Defaults to job creation time. * It also default the execution time if not previously defined. * * @param DateTime|null $date * @return bool */ public function ubhne(DateTime $gwlo49=null){if(!$this->$fpdh4a){$this->mcpi4b(base64_decode('KiAqICogKiAq'));}$gwlo49=$gwlo49 ?? $this->$whzq3e;return $this->$fpdh4a->ubhne($gwlo49);}/** * Check if the Job is overlapping. * * @return bool */ public function noxkf(){return $this->$oqwu4c&&file_exists($this->$oqwu4c)&&injt0($this->$qirp4d,filemtime($this->$oqwu4c))===false;}/** * Force the Job to run in foreground. * * @return $this */ public function pkto10(){$this->$cenl4e=false;return $this;}/** * Sets/Gets an option backlink * * @param string|null $link * @return string|null */ public function rlxh11($cnbi4f=null){if($cnbi4f){$this->$vzbs50=$cnbi4f;}return $this->$vzbs50;}/** * Check if the Job can run in background. * * @return bool */ public function tlsx12(){return!(fqgn4($this->$xvsb41)||$this->$cenl4e===false);}/** * This will prevent the Job from overlapping. * It prevents another instance of the same Job of * being executed if the previous is still running. * The job id is used as a filename for the lock file. * * @param string|null $tempDir The directory path for the lock files * @param callable|null $whenOverlapping A callback to ignore job overlapping * @return self */ public function zxxx13($ojnl2c=null,callable $peek36=null){if($ojnl2c===null||!is_dir($ojnl2c)){$ojnl2c=$this->$mfnj40;}$this->$oqwu4c=implode(base64_decode('Lw=='),[trim($ojnl2c),trim($this->$tbvg3b).base64_decode('LmxvY2s='),]);if($peek36){$this->$qirp4d=$peek36;}else{$this->$qirp4d=static function(){return false;};}return $this;}/** * Configure the job. * * @param array $config * @return self */ public function qdce15(array$slkh51=[]){if(isset($slkh51[base64_decode('dGVtcERpcg==')])&&is_dir($slkh51[base64_decode('dGVtcERpcg==')])){$this->$mfnj40=$slkh51[base64_decode('dGVtcERpcg==')];}return $this;}/** * Truth test to define if the job should run if due. * * @param callable $fn * @return self */ public function xobk16(callable $nvlw52){$this->$wump53=$nvlw52();return $this;}/** * Run the job. * * @return bool */ public function vlwe17(){if($this->$wump53!==true){return false;}if($this->noxkf()){return false;}$this->gdle1a();if(fqgn4($this->$uojq54)){injt0($this->$uojq54);}if(fqgn4($this->$xvsb41)){$this->$obcj55=$this->vcap1c();}else{$kihw28=tbuy5($this->$bulq42)?explode(base64_decode('IA=='),$this->$bulq42):$this->$bulq42;$ezzy26=array_merge([$this->$xvsb41],$kihw28);$ziyc38=new ycun56($ezzy26);$this->$zokk57=$ziyc38;if($this->tlsx12()){$ziyc38->atii58();}else{$ziyc38->vlwe17();$this->jxaz18();}}return true;}/** * Finish up processing the job * * @return void */ public function jxaz18(){$ziyc38=$this->$zokk57;if($ziyc38){$ziyc38->islo59();if($ziyc38->hxjrc()){$this->$oaby48=true;$this->$obcj55=$ziyc38->okpj1e();}else{$this->$oaby48=false;$this->$obcj55=$ziyc38->gigf5a();}$this->ftnr19();unset($this->$zokk57);}}/** * Things to run after job has run * * @return void */ private function ftnr19(){if(dfyv2($this->$igpt5b)>0){foreach($this->$igpt5b as $sode5c){$xift5d=$this->$wxaf5e===base64_decode('YXBwZW5k')?FILE_APPEND|LOCK_EX:LOCK_EX;$kfnx5f=(new snht3f(base64_decode('bm93')))->trew60(base64_decode('Yw=='));$foui2f=$kfnx5f.base64_decode('Cg==').str_pad('',strlen($kfnx5f),base64_decode('Pg==')).base64_decode('Cg==').$this->$obcj55;file_put_contents($sode5c,$foui2f,$xift5d);}}$this->qxdn20();if(fqgn4($this->$nhba61)){injt0($this->$nhba61,$this->$obcj55,$this->$laoz62);}$this->ckrd1b();}/** * Create the job lock file. * * @param mixed $content * @return void */ private function gdle1a($zuyk63=null){if($this->$oqwu4c){if($zuyk63===null||!tbuy5($zuyk63)){$zuyk63=$this->fksdd();}file_put_contents($this->$oqwu4c,$zuyk63);}}/** * Remove the job lock file. * * @return void */ private function ckrd1b(){if($this->$oqwu4c&&file_exists($this->$oqwu4c)){unlink($this->$oqwu4c);}}/** * Execute a callable job. * * @return string * @throws RuntimeException */ private function vcap1c(){$zftv64='';ob_start();try{$zftv64=grcz1($this->$xvsb41,$this->$bulq42);$this->$oaby48=true;}catch(RuntimeException $hgth65){$zftv64=$hgth65->tbpn66();$this->$oaby48=false;}$this->$obcj55=ob_get_clean().(tbuy5($zftv64)?$zftv64:'');$this->ftnr19();return $this->$obcj55;}/** * Set the file/s where to write the output of the job. * * @param string|array $filename * @param bool $append * @return self */ public function vhdv1d($zvxp67,$mkzx68=false){$this->$igpt5b=hztr3($zvxp67)?$zvxp67:[$zvxp67];$this->$wxaf5e=$mkzx68===false?base64_decode('b3ZlcndyaXRl'):base64_decode('YXBwZW5k');return $this;}/** * Get the job output. * * @return mixed */ public function okpj1e(){return $this->$obcj55;}/** * Set the emails where the output should be sent to. * The Job should be set to write output to a file * for this to work. * * @param string|array $email * @return self */ public function ioxl1f($vqek69){if(!tbuy5($vqek69)&&!hztr3($vqek69)){throw new cvqn6a(base64_decode('VGhlIGVtYWlsIGNhbiBiZSBvbmx5IHN0cmluZyBvciBhcnJheQ=='));}$this->$scqk6b=hztr3($vqek69)?$vqek69:[$vqek69];$this->pkto10();return $this;}/** * Email the output of the job, if any. * * @return bool */ private function qxdn20(){if(!dfyv2($this->$igpt5b)||!dfyv2($this->$scqk6b)){return false;}if(fqgn4(base64_decode('R3JhdlxQbHVnaW5cRW1haWxcVXRpbHM6OnNlbmRFbWFpbA=='))){$szud6c=base64_decode('R3JhdiBTY2hlZHVsZWQgSm9iIFs=').$this->fksdd().base64_decode('XQ==');$zuyk63="

Output from Job ID: {$this->fksdd()}

\n

Command: {$this->ftbt7()}


\n".$this->okpj1e().base64_decode('CjwvcHJlPg==');$crgt6d=$this->$scqk6b;\Grav\Plugin\Email\Utils::pxmw6e($szud6c,$zuyk63,$crgt6d);}return true;}/**
     * Set function to be called before job execution
     * Job object is injected as a parameter to callable function.
     *
     * @param callable $fn
     * @return self
     */ public function nezf21(callable $nvlw52){$this->$uojq54=$nvlw52;return $this;}/**
     * Set a function to be called after job execution.
     * By default this will force the job to run in foreground
     * because the output is injected as a parameter of this
     * function, but it could be avoided by passing true as a
     * second parameter. The job will run in background if it
     * meets all the other criteria.
     *
     * @param  callable $fn
     * @param  bool $runInBackground
     * @return self
     */ public function idrx22(callable $nvlw52,$wyox29=false){$this->$nhba61=$nvlw52;if($wyox29===false){$this->pkto10();}return $this;}}?>