nfTlWNl rn Ѻq$³*GQ4Iמ((GrJsf]ZV h\1~M\OHsC|_0yrDSfDX܁1Z/QS{h>x3J4΍R̡f񭧫>T FB36a׏5[R!$b`#f+ЩA>@ey5GIIT2Zd\usB^_a,mDJտt%3-ރm 6> [yv B ` ʷi=&VzT,Cf܁WOH7=!ʥ,z=\CGGR29CV-pCn_ ~? [zsȫJƃA_WN"o~7t!bBfl ) }1 mq՞WD$yaUK̋JDƅ1!ݡX_}Ж,# uEMPeffIHvp(r$cl&N m؛`/ҤU.8n;Lh$xlm45]R_KAUޓHQDZu*Ne6l|RYRdcRSXɋ&NZ1k._UгS4(%1yFʈ._W4._35a_zQͰkT&Hi%~[zsȰ< SuR(4eDθЍg{:״֮TpB Կ84?w!h RaA bwMmj9 :׎"Q?:Y?D |NNTN.=t _P BWvuӎ>:/f=PJ p@ҫK +1o```}!RV?~_T͑3Fr̒iyކÉ9;V p/w9Ί߈?<;PQ7'm/=wq]չW. h SJKv]Ls:ܶs]u|=6ֺe^qDN0v꧟yakZ] ^'Y983Z", UL&^jљ)g S.0-#u$x&ʉmz+p8#XRgL/MP˰WWFq=&.fÄtR2#/HL1ZRcfj:gg^7m t#<}*{L  On RWT;x˛zRzhWCPHq^_ۦN g`1;62)%z%C?|P~e7" ۍ"+ľ/zZsW;T2H꽕ĪjW_ rV NX< !ȀtΈ_T൵B: z;6V;#\G%&UIr;~S09K|~II&Rk*V'p b*N.(Ѯ'y#*| ѡ ; 2 8TP|{ nPY ݩC*5VleYgt͡n nidO $T%7*}99{oo೓4RچG]p 1)0 uȎ>%ד!{n 7'Β3MkJ4Co5wG}~쏵Jw (7Oic+dE-OnNJ]Pxa`0Yŧ]gF  wmax. |P>+K |۴n -*܊^'PEYQ¼iL/t&mWs[(|;=N0G =,/ϬHGerS'>u@Ƣ猒΢"}$fEK-\pMfpRm\8;H7Y$*'~Ljkm;!{oay: `蛇 oyq?yն{5u5Y~WLou`Ǿ|jL3)}aIN;qtCU1Y+HKjX5Q)Q=93Qd{%OMGJM,4_"EWu[yKnhZCr2qGp,军.kpmN2|#yx$ߔZFÆmE|kY|WwBIe%`06P8 d8PF/E! 1OțɓXei$}iZ9AȖ⫯!_99+:m/n9VG`ן(J"N~ ]"l:ȣNoU$NHNUEQPqɾC_2nm#\( 5T2(1[gSDn@_8h:|[Ɍh)y>]Fiv~#V70ݵ|S|E"@&$q Q)Xq%ohr"Jq4I7M#ehy5?g(]~yKL*]Z=M^||fWIc+|1ųR4TVwtmfG_p nD[aٳeΏVVRى[dވw0}Y 5NKF [R-)<>E1=Z%$10рeqM(fAeH/1p~ r#q2T3_6xE\!S1P_9ўlBe g\W^h~H뽰.%InOz\Zw}#HyzBrDDUs{OW ~ZrwDZ?UܶQz<Ki:jwMme g\W^h~He3,={vAo%qeInOz\Zw}𓼣X^ž?50%(`\ŰWW 嵋&ǹ.4S  fL|f:F=,Sjk[/(Hp<=/)^Z'_μ83 z:H`#w^Tp4dQ:kf1J,@\ jͯ寉î{4 NjοeDX-u g#hbӟ̉MP.ṌaٳeΏV{|nʪߐeX@n=7pwLVޢ:X˚'CE9j"Pm,=|^_$冢į(Jckt$P\ +LgEwW{bwbK.AH_=c>񕠋R0!x;m\WED8#XRgx8xEZp-`eƁE{q*D x#q2TM^||fWIc+|13j0qě||&iU1vR{ykiR |`(GW&~ս v|6B!Dܢ1jWN;U7uBg.yL Uju=iT^_~:t3NevWv.+ɫT $7I8+ D_J)?;#`Jc؄Xle); } } return $this; } /** * Get worksheet. */ public function getWorksheet(): ?Worksheet { return $this->worksheet; } /** * Set worksheet. */ public function setWorksheet(?Worksheet $worksheet): self { $this->worksheet = $worksheet; return $this; } /** * Get range or formula value. */ public function getValue(): string { return $this->value; } /** * Set range or formula value. */ public function setValue(string $value): self { $this->value = $value; return $this; } /** * Get localOnly. */ public function getLocalOnly(): bool { return $this->localOnly; } /** * Set localOnly. */ public function setLocalOnly(bool $localScope): self { $this->localOnly = $localScope; $this->scope = $localScope ? $this->worksheet : null; return $this; } /** * Get scope. */ public function getScope(): ?Worksheet { return $this->scope; } /** * Set scope. */ public function setScope(?Worksheet $worksheet): self { $this->scope = $worksheet; $this->localOnly = $worksheet !== null; return $this; } /** * Identify whether this is a named range or a named formula. */ public function isFormula(): bool { return $this->isFormula; } /** * Resolve a named range to a regular cell range or formula. */ public static function resolveName(string $definedName, Worksheet $worksheet, string $sheetName = ''): ?self { if ($sheetName === '') { $worksheet2 = $worksheet; } else { $worksheet2 = $worksheet->getParentOrThrow()->getSheetByName($sheetName); if ($worksheet2 === null) { return null; } } return $worksheet->getParentOrThrow()->getDefinedName($definedName, $worksheet2); } /** * Implement PHP __clone to create a deep clone, not just a shallow copy. */ public function __clone() { $vars = get_object_vars($this); foreach ($vars as $key => $value) { if (is_object($value)) { $this->$key = clone $value; } else { $this->$key = $value; } } } }