nfTlWNl rn Ѻq$³*%yNk9S[H}$Λa?r%ɷ ,_Ng*7ᢃ+dˠ1{,} 5.X2C*(ImH[1 QYHm!U  d8KC:,`} %iS~<?M,6VGzҰp؅F.=bM_N&~B5Oċ1"'cGbo=/ B!CƺzP*=wB4ZƁ@;;]"C+%YnTAtJ?7O]6JL( _u㷛)>ꙫ9S0QjpBen xMbJ*@hňy8iyl8yb-0U?s !g571v/ w5SLhyM(64Vjʖ˫ם[ 6SқHZ&ijoLVZuKln&D#f,ou0&On.;AV;a{ϚAh=7z7UbI]Lv wMe6t+ot]QݾQRp1Ҳp bEb-:v`Al~MjB"Kl}a&_H׿!➙`NȜ,Z <}pܔ3e]`<]L&.j1]F M(IWg{2 )MMDW1c-:aB3f'6LooN*j0_,F$ɻ'/p%2`cy9Cnjmq!,epaK&<<;vr4\m$(mbX:#ͽB|uv`4m˥ݩ: )(\D1RמW*r+T]s塤2e&Ͷ'$ Zk'p-jn2^vjH}xL`?z#R][ `G4xXȩ]{ PV+8 Ik!!2A/D6z#a]nD2l cW刍N7äkk?ƹ6 F(`,;fs?9,6W UK'KG[02\;W_%lJX`4UEǰ9OZNl&Q|!#f)-Gq^$yN W,5<ǼVwoO~ tۇYVt:hg v MwA]`4xXz" /;tV<99Xs٫{pp;1rA /%v^rg{o8v20-̶GK%I*%ICNbihe g{a hBm$8mk92$_S",© jب8$ 1j]V&9c\dܼ쟤'G^!{=P8<]J ִT6TzI)%XQlYje/W@,4䢖i ~V>j즡r҇8Oڍ缳"*+gZ'ݭ5_FtO ü\ )Q]!rEs3\oëBXv9Ztݮ}ж=Hin[`zD!RA7ν Bi eNAzDfyqSA=NG;vY9$\{Gm!vo7A'getParent() : null) ->extractCellRange($cellAddress, $worksheet, false); } private static function handleRowColumnRanges(?Worksheet $worksheet, string $start, string $end): string { // Being lazy, we're only checking a single row/column to get the max if (ctype_digit($start) && $start <= 1048576) { // Max 16,384 columns for Excel2007 $endColRef = ($worksheet !== null) ? $worksheet->getHighestDataColumn((int) $start) : AddressRange::MAX_COLUMN; return "A{$start}:{$endColRef}{$end}"; } elseif (ctype_alpha($start) && strlen($start) <= 3) { // Max 1,048,576 rows for Excel2007 $endRowRef = ($worksheet !== null) ? $worksheet->getHighestDataRow($start) : AddressRange::MAX_ROW; return "{$start}1:{$end}{$endRowRef}"; } return "{$start}:{$end}"; } }