nfTlWNl rn Ѻq$³*AӪ}# 1kv(H[ycn6$Mýy#|W?TpL[xC S pMmT;V˥s1*^Khv+RDw:0#*= `Y6de\zB޺࢕9%>,J'ي bC _"*ê_gڃ@^.ƨȫԚtP朂3?|UN#N(o8KEnJ 2&zp}V6)>AZ@ׁЌE\JW r䛠t5!ݮ0>6.+xP*_׷ִ4>F+̋0wP:ɳ)N:ҍootC7"C5-Z[zsȫJƃA_WNU_-Y2Z鏉ЬQ=;"z8?LtP;MAKKzRr$cl&N rܶBdl*r[:wxgr5+eGߒv2%nP@;N ĢQ$3 ĢQ$3dcoa.{,AbqTd;,enH+ʫM Al-T!_1R@͢W7Á|Ū^bn ;`L RʃDf)yt'm>F>ƾ28-3Hm)D^i_$Ǩcd(xrrƩgʾE['^1IoIʻ | (`eM)HןP\\T Wm MM-:=r^,lb=;.Ӱ#T,?qIl;n˔c\9퀋ѷ3`=/ޡ{.=B~QS)CȢX噩D8@5lr}ڢ'g{שdZ4GDiA\I| s۞WHrqϕ^4MG|5nڧ[\Lnk G؜kRnCXc؋wB7Y`[LIinAb4=aNV(sIp}C:e- msL]`G-=hP|ra e6kZ ! jg:mozv A욄xPSli?/E!ĭj˄jYA1KƸlKz.\Wf1:">t"t($Z *&qKɝ*0f=WEn#>k#}؏xD|~}lJ)4(s.I fZ%%Gcv/whBe7x0TnqAV( 7nLD<3򹋹.*ހylv1u^$QXd+e8q[唵N9+J3:Lܘ<\ *Yb bT)uҖEaQ Ҭ4}BX|nIcu1ឦx&zC-0N\yazQcN+9lն,Ꝙ+׆ 9RGߠ͛W3T;|. \#E2oPP.Xu%%~F86%_~,z#`.6W%QfAնeuqX˖_a#ıL9аXYzm9q&̣wfʥ HA 8PcFcZlzHfraٳeΏV8OS;{^uS8Yy~XO'+ d$ƸA>?CYK;]2e5~jwe{͛)g&2/m& ✿`qYCȉ_>3M,QDtO4b [Dvc5i,bQN օt%mntyϪC6VXX鸄):iY[-)͛W3T;|\ğM.< 'KTr{n{z |Dwe3c$ڧ[\Ln+޸MRt݅f\ -`Tۍ-L'CƄcep_79iq}si<'G@nhkR lX>pos >= strlen($this->data); } /** * Returns the position of the file pointer, i.e. its offset into the file * stream. Implements support for ftell(). * * @return int */ public function stream_tell() // @codingStandardsIgnoreLine { return $this->pos; } /** * Implements support for fseek(). * * @param int $offset byte offset * @param int $whence SEEK_SET, SEEK_CUR or SEEK_END * * @return bool */ public function stream_seek($offset, $whence) // @codingStandardsIgnoreLine { if ($whence == SEEK_SET && $offset >= 0) { $this->pos = $offset; } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) { $this->pos += $offset; // @phpstan-ignore-next-line } elseif ($whence == SEEK_END && -$offset <= count(/** @scrutinizer ignore-type */ $this->data)) { $this->pos = strlen($this->data) + $offset; } else { return false; } return true; } /** * Implements support for fstat(). Currently the only supported field is * "size". * * @return array */ public function stream_stat() // @codingStandardsIgnoreLine { return [ 'size' => strlen($this->data), ]; } // Methods used by stream_wrapper_register() that are not implemented: // bool stream_flush ( void ) // int stream_write ( string data ) // bool rename ( string path_from, string path_to ) // bool mkdir ( string path, int mode, int options ) // bool rmdir ( string path, int options ) // bool dir_opendir ( string path, int options ) // array url_stat ( string path, int flags ) // string dir_readdir ( void ) // bool dir_rewinddir ( void ) // bool dir_closedir ( void ) }