web/lib/Zend/CodeGenerator/Php/Abstract.php
author Raphael Velt <raph.velt@gmail.com>
Fri, 10 Feb 2012 18:24:21 +0100
changeset 500 4f5d9f654aaa
parent 68 ecaf28ffe26e
child 207 621fa6caec0c
permissions -rw-r--r--
Added tag V01.32 for changeset 93ed090132be
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     1
<?php
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     2
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     3
 * Zend Framework
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     4
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     5
 * LICENSE
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     6
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     7
 * This source file is subject to the new BSD license that is bundled
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     8
 * with this package in the file LICENSE.txt.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     9
 * It is also available through the world-wide-web at this URL:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    10
 * http://framework.zend.com/license/new-bsd
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    11
 * If you did not receive a copy of the license and are unable to
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    12
 * obtain it through the world-wide-web, please send an email
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    13
 * to license@zend.com so we can send you a copy immediately.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    14
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    15
 * @category   Zend
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    16
 * @package    Zend_CodeGenerator
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    17
 * @subpackage PHP
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    18
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    19
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    20
 * @version    $Id: Abstract.php 20096 2010-01-06 02:05:09Z bkarwin $
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    21
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    22
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    23
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    24
 * @see Zend_CodeGenerator_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    25
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    26
require_once 'Zend/CodeGenerator/Abstract.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    27
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    28
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    29
 * @category   Zend
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    30
 * @package    Zend_CodeGenerator
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    31
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    32
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    33
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    34
abstract class Zend_CodeGenerator_Php_Abstract extends Zend_CodeGenerator_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    35
{
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    36
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    37
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    38
     * Line feed to use in place of EOL
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    39
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    40
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    41
    const LINE_FEED = "\n";
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    42
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    43
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    44
     * @var bool
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    45
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    46
    protected $_isSourceDirty = true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    47
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    48
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    49
     * @var int|string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    50
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    51
    protected $_indentation = '    ';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    52
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    53
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    54
     * setSourceDirty()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    55
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    56
     * @param bool $isSourceDirty
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    57
     * @return Zend_CodeGenerator_Php_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    58
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    59
    public function setSourceDirty($isSourceDirty = true)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    60
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    61
        $this->_isSourceDirty = ($isSourceDirty) ? true : false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    62
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    63
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    64
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    65
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    66
     * isSourceDirty()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    67
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    68
     * @return bool
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    69
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    70
    public function isSourceDirty()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    71
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    72
        return $this->_isSourceDirty;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    73
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    74
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    75
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    76
     * setIndentation()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    77
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    78
     * @param string|int $indentation
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    79
     * @return Zend_CodeGenerator_Php_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    80
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    81
    public function setIndentation($indentation)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    82
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    83
        $this->_indentation = $indentation;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    84
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    85
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    86
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    87
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    88
     * getIndentation()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    89
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    90
     * @return string|int
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    91
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    92
    public function getIndentation()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    93
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    94
        return $this->_indentation;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    95
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    96
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    97
}
T`|]jc[8Gvgndz9f=( |>h{ˣVB`͓Nĉ~zQgv\pp1\X,B`݃X`ti2p1>-MgU 9c_^;´)q@F¢ p]?۵`TE]l%WS@OFg۔HϦ1ePd w\P7=)puƬ{7!=q@޾ϧz; Rb@&BhbJ>ؓL?JP20{ς`lo  %|F 4>b-pUo5_ijjkF@`2/(t1!ifѵd3a2_?gF>&SqG! jTˏ^a?]R0iW5%?honp}/6W$613"נY _ V6A1E 'ӛt* X~RKfxu l:"byvqn;9 ?(Kp'QjZm`@2R7V3$f"3㍀Nh@ h{ ZlB?Cx*LstSF-s" @"F%"^8Ej-^ɾ)Ud> *hoOAcꗛU^zNLR}[wd_>cԾ;YI,5>Pb ( N{j̯<mUˣYXtֱ\'#f>G`큎lTkҙmj 1,ѮBW\?ƪjL;aFR,[;8P4 R] ~2dV!{ܭi7O&jUWĨ 먂Λ>ly= ]% 5%,! =Mx$oA W7L#Ū&w6dFiEp@C2שl%NI0_M#HLsp YnCM&0p.4~=&FFN9QǼLlԟb wZ>Z_8QcZ/[BNh|P}0ghA_ztz=1jf W*:APx>0ppZMTIA.`ZD|!k7QZ].񞝑m^[bgjh5.jMg@;o 9~rgY)l_Q!̻aA<IU'峲]ߩ+LںUns+f-f_Xu߁ |_84շr^( Vdر4nxHY/ &S-`jjxɢ[VXe2eRW2Oc^aht~<^yYR{[  uL\n:Fo !ZʗmNzdU<:"y͟!㈧%[wI;)|0 bNBOTVM-q~8Gt}$kT"hÛW2׺aδRz*vm:}a@@_'u=+#J?(_| dp`YDY}EQb W4~_g{IS#YfN9NcmzɇD\v[zQ(Z Ѹy3wM:\&+2 -Hp6N;ahp0ŔwBqJ'ܟ^s^ԧy|<S;2}풾?|)}fTv{c@ ADNkYi:2Ya1*uzHs"G@%DAjSSEtcs80⣣8Q ^4Oo\r#|2-bn'ΈJr2ڽa[*۱ ?]ϼdAc9UY-~IF{/Dy/ҩ0Q$ cߏCo4=fW7unmg&]z5G`(_b^F: T^"ۘ-  9[uɧ)=l9+<.^*Za xM sbD99NwiC'(5X< tvAf,TwFg˓0-O`00D,o.eדAZEiC; hቋ#9;?=jX7} "he "MPF|X @xD<؏o iuX 8>`Bq\n 'QP I:"EMaZ8@r3MZ l5y@) d0ֱF' %K\>RJ2v6ֆmKZ6- =a U hvz@_) 0ېc b.ӕϘ*//'A t" _/p8a&IDwZyPȟ-'^a^EѰC.4L2CSwc;v#~[p\]v"G{a.,} |hD2 M=`5 0N*`WW'~ٻD[KcO"NwlÀX(.i𯀯YݵkU,2?v`C9K][-ٱr-M*ԛ5A:ޙbyP{TM ᰄ A&OF=csZQoOv2m# 5ZCƇ6A,ƨmG ap+ˬHXClka .eйZ60;cB0 W뱽/6w5?Oɑ:r4*= 7 :e .Rbw;MpberZ@ CW!"ᓏ..g.ҬJZp5no(I^#voU)uYλ*be 6G&ެR/.핸DIbdS(̣s౏as?YYrq. 2T]n!jUGjIDsL-nu&V[::;>$PQ-ٮs [ymైd*! )~ߕR1Jc" S[rvL%q`b@ךE Ƽ.  uMnv6u^玁6"Ik^,&kuV{Qb"1.jjk ڰ}@5:PK[`ls(_,LX-ЛB#ֆ 9>VH; zs|Tp߂Κ)2 dO0wf+Ĕûw$UyFI 8@G o ds?Wd΄"mx6#_Bps1&!tRHNH'߰q+ Ai5sJJ6½-A 9t/֫h- : IK">nnѧ3 Ƭ3ښoQ)R$'';x2q(UB"7‡72x6HmM^f7]y{=̰O6<-. B:I8;婛h&Xxɗ?:EgTuRSY6X(y s~0=>;X*Aqs0-,GyۍҫJ]v"BDBk]\k wy#/d' Nyu?+:d+kf/'pѮQϹ]՘t$t ܻ^$ $PNXQsaDs6ˏ+Կ_b R]Quj_75dDj-]JU #TgXph%<בP"saÆ9 b!].H;LËx "ZF+_$)b9`W*-+Px_#njb? +в-%=L(v0J5eP}~BrcI`P%pېİE3K`@ 2L]e 5%-1qM(4CS hb35ZP+Or:yȬQ'#(FLTyK>j"YMIQnUWw*Hx-@E7P?Z=ЌgϪ38?AIָ& \Y bs92!lsAD.:߮nB\6}Dgeă:h*'$͌@h(>s1AXɚ[7SYxgyBNJ I칏>ŐzOk#7ʲS].c}F9=iy12E٬:︼z\r z圦1I6֚:W0>Է4XSO)[ z5eF1JYic[`_S;.Ziy?dNѣK (nf}HP-`F[`tl~O~NrYSN2nЧP?75 8H-_QfEmK[Jw52%gԊ <ýFѧKEbݯ26YD;lw2xn ?a4jw,^U s# JC#M Pö )Y(vDd6Ua"x.C9]qBqg7EnEzHP2 '̚B{(J'CU2@K|У.jF0࢛xPov(:=K#ݗLquZS"gqӺn.4ol*f[ Z =x{S>Vӏ8>jH ś9JgDȵ,6-کbspSݳt L"Gu,x@th.e+@omѢBkvb2#֖ ~+ [EZ$ʢչnW8p/ կsBZ.n=7fЊuڪؼb^Oc S$f0 a$[ok?/U"2ހJeU+o"al1D]ai*>Qb3*#5T TH5۝B62*ac8hP?OU=Eїq(Xؒp䷛uêmL s 0|AAͮ09V%KlN8UZBWxcS&%hB^fW [(ٿ #%2=nlcښn*] O)dTyU;*ɷ_1msQ g )UU8+D/cJɀnFc:ZTe(>tFb8nGq~0H;Y4|7+yj8Y [8vBH5q007F:fv4|j UvZ`s aWUR$g_s uяxCTJPuރjvV+1wL|XgCF%vGv83A@clG?f{Q]nTm_"Sڱ\4zuJb fP!s7 @SQ-cZ;_c$,XͼE+V =lSnq,$@ag >K Z:UZ1 ?_M6z !K3< SS|ۅJW|Kfk"ǡM ,_=djPKag x6-,kp:e,k&봴gY:(ăG7;Z*FϘG%-x~D:ՖGQ U&Dh9:)Dn^ݙKgAcZsPŲ`B7;jԔ閟nTG3"DTXx2W#Qx ȁ:ot:j"9o Ǚc`s3nmUe Z!ሧv'VM[=szb1~ :vP[.%19ȓi5/uGm+Q 6=ATxh:խ-'5lY -%-o)WT$bG!/>YPa4{bBlRym )rF˃$~YnOAxjdӐp $%dVpm.sʕ9;K]ptdB6*z(}MGe&> ,m ڑ y[-*qH40 @ytXXAM,C1 3HC;#nq׋;ZTx­jl9!Kv lM>㪿:79PrxDlf>&a%e2#61>?g{o3v1,$YE3tڊQRq vT9fs1ÈNw<w؇Q)~[Cz 7^кU_NR_rl8wmiXO Cl cJ42 @u@ $*. djn)*TF _;p ̌k 쁋Y! E 5#X&ISZ0{YQ¯5G򠺉2#JHZl9 `FdjߺԻbmFñf>yAKv4ڳ",pAeGa >{P8I}7W"&LugpW䄗sCg'O4 V'%vrnÑ%AjL~Z?D\KY p8+ғ3)MBԹW):\t7VLxR3neg[ h;u;YMK+s&-V"3ǹH!d3d"r6(,D/뽽7WLEs~lwfd ^Q~UFO aYNJ5In7k>UYO6,FJF!Z=\_mJ VA*/#xTag߀+γ([!spcd@ıjnm7Rژ_{z /wH\d{̷wvYN17t)=@|omlemӿfSۂl{#u.4dGgOLg&bVLvcӻKӇ6n{2ꜩu~5zKlUi#\HXxGd.J2(oݏ 4<ΤE>E^5dH _90Y/qe--!X+mp⠞AvJk7V琕ս%g!\og!M֒\g|J~U$(X:aɓqU+'YV*PJq^'2 v~{H N6P~ᇱ0RY4Rk6ј"94$&04`Z RШ/ѳ O8[ŢAF}=xťmdfD;XM34 @/FO_ r*}īUc ӢAn=`!-FG^oEMIÑ&fuTPw>B.^uVhAYM{lziTm lTp=1k"kinw14nK]8D-( @9 .IaWnh)b~ cdbCvvH Qaff?vP:p&08nXX СhଥŗYT(pm}UeB^T8d@cܻ#`Vhc˪&u&K1AB]+摧0Hc"d8O8C.w#Y,d+{1)N m,JrEl `^;=P9[k*E8/P`,Ī$d{mM%2UqX gm،4 +L:1(0 oH :-vl/XKo-FI;Q%}Uή`;Ǣ?BE]k z[=ӳycrvШj 3akXЁUǽ%%\d{u͟7(DWJ^&b ϐįNOʛ0s{nmLRXk O!۶Vx! 8d>[K(\l(5#: $FPVr/IphASEOb+\=֬:E35.qo&JM]-_'N/=%]n"/t C.(k7<uUX|~cgi+tXNF\R2Cgk; ܳtRЏȵ4* :wi %wyIRȚ';|5_ſK2p[]Hp zC4KPjBH#Vr[ƃ8㾰~" rI0Jt'6ÔLNi2a^uo޿u'dRڗRk8joC嫡;ԭ$ή5aEIXh_os>|LlԀ:nd6&67z^"悶grk d8ߨI7-5w t}|ik p|v3y_{ +_C Ĝik_e1pU[ 'W/yᠤc(ք0M~4P0,n ˜7B#,dbrGg|wUQ+?J4U9bBN+"1+Zԕ1nK>($4 `0RvK8 kk*IѢGAvb W@IEjH2P//ۇ\('b0o53$U($+J5vu:7u\i9qng5$j5(,:Nr;q .-ooO6ND.R$G%(Z`^En+y8V.7_E_Xg(2vYE:iq1Dc!|ap:>A-L0G\fI+kƄ7@MPj F_m2]ߠ ¯t7q{NIb%݀ÙaF-( ctM?G\cy\^0 Jc5a08}h"MZp Y7庀4;[4ެ'wމx֎ ,v!')<h_SI *2bURU/kuG_[sXܚe}(ΞOw@^e_XM&fd>G~Rin[%T8;Ч$v Τ-h0Wd$Nم0Q((l;Q,nMJ_˽5k~PA0@\֜Zr&}}v&:/ݳ}5Yv?]X±+d,yG/Ŭi: }.-I0d1rP>yZ^zEA[䫶՞VmzI/rW@,YKVdnVLeg Xy#g~_v`uV@w/dg+ve^bpOڏ.E-6ۥM'KFvj^S8h-HL6S. ~68> K"ڒP~HՀar|4}Y.UvƸ;jMµc^zYP[Kը֮TɘvL@}˾M!T\Ep9-8oHlgOpO1 <\BȂuiW}}\tʅd jTƦ*ҼN-0!1cM'y`j@o { {rsȗY*` ΨaHp A,$0VwvVTyfHc^xݑQDnkt6UZ3`{rT*6?r8DXhr[{y*!)bLޞ@WެP-ӕ; qU{Z+] a/\;å=`!luUY! &ʰ4'P)҉%FӑI]ϡkr*/+*||+YY;sȫ~kq(>q͖WoXkkp)^s=U'~}%-:bTCBYlݞRӸф'# 1ðgy5@i61Q2q޷/09;sޣ[]7|' @y/H+qkM%+vV| -ÞF1a`lX⟻6tgXF22QHO㩬AW|R'.Wit76fݒ芓2@\+uKG"fkO?yt*Hn4Uʣ$.7+FZ&H.l6ZEBԦa3ڹKscW2AM Kȭ[; vA踰tjaȹ،7AU+VWc>]ّ 5Cdh'bn]mC럛k N Z#((eNS\Mnݴvr|X =;z+1hk`UeکD&j8ƬжDׅ:xGupQ*}RP 5՛xRxvJ!$ITeEfw`mQl4Ag8mm0x&uobòI C`'&w}Q;+6# AN[cAw}éi%S}40",G -TMo}xI FܜJH*qA[K!Jv;(!;Yy00M 8h'+pA4BGz?gRaoP> 57Y40A`@g6}L6 ./᧓(6UZSijj&|װúy6ͪ 'Xn%nIx3P&)C?87k`{NM93/ 1? 1,M[3etm1쒜q>m$ac3TH&K2H6&[1cVRQ+HM&3\ȸޗ-Zf*Z 1 zKK_li728ɍ9 F <ü MOIJkԼ~4-% v[zM|՚kb^k Lxd94V l!R$Yg 2%Դ>vQdQoV%?Mm}kXaz ɹ`FXޞP P3]7,m] 0ȁܶ~q ZlyLg!6 e%P*F`fc߃߲y{a-_d`Пb"llpJ3n&_l&'Bxb43;nGqm-X(OI|p_!L m\/<b 9qy$4l]/ `@ZtvZ3Z^G1,X2ASHP@5ƫYYTlËK+Pf \MҬ O5E"C1ց; i1"0u1퐊!]M]w 4^L'@DUiysb4xK6'h4ύO,xx2> r'fF86-l6E|f>Cm}kXp[F2XbQy(8kmavNW:V0.O2*nr!Z5z[_Evp`"cϫ3AF]ǖ?JP!CFmX˖]jښC'U{w /v !Ba+ПH-=ޱD3pА}iYmnJ,'DG,O804"ї1(.i!"dpH!v:a[ e] e %^S\8KQBG:VSQ+"Sg P^$a1~%՟O a/j/~$jkÁɰCvE28`GL ;{FF@ X1 c 5h_- FC5έh@2ΊjbʭjC:͕O#_Ifn3S( rf[X@!-ʈq^tlWA(5Հ^Ė gfA)~ @Wo p1hNcƨ6Idf٥B)pbчso=뗷Q ;9=}ٴWfbaCjP>r2w-e3ӵ݀Yu*݌"Sm~)͢?ׯ۩d%~*-Ft8E_? ON)PLF>І^kVKo&7 þsc:Օ׀ UwT.j&PjvxD97Y3C9#4TCdu,=,πҋ>X4<]iud$[C \@T\H7YYKMh&Aos~u`ӑ '"DڮxuBDūb5z(b (8fp׺j")mu[ 6U̬[r"UT-d/+(! cK']z\|6 `mʎ,`zn 4>Qe v9p:θ4 5#p g*ӃU:O:yfِ".$ =@sڻ7bMොΝϒ]Ϲ! ,-U\b." ݆Yq4^w{AА)}^Մ,䵁KzeMUE",̛E\(j]Y]ds狧cוg^+[]HmEb[se<e{LC _~Ἂ!71kgϬPڡT T? ' x#- OH20dEE[;.rΫ3=K‡u A}VNtx<.)EoHi˧$5/[mw2uԾ(@=`(PFWԀAlB zTįz|H, ؝)2I{ ݷ׹'Y-u/]]S^$=fHPɪ;Дp3Eլ#y!)l 6t2wP^xBlRbv}-=Wȍm2s.JӽjLvAղQ|e!d!. űV]!=Z2b7y щb||k=w Pՙ#=}d+h" w%0nC, e3Vw3V6Xp~b V3i[U¿)QWjnϧMI*s]c׷9O\#B'sT A'0zfemCG7j8P?Q֘$_CK>Sdرļb0i9scI5Sd]4S&~5̻s\W7L]okB}/b ̌qr_x -eb$>f.Fy(Ԭ.o% uF"dY4튛/副~`\}<U4|ʎHjÖ"'_F:iliP\O+dix88l=;[g(ݡȗAU,o}.A<[%#%$'T)Z,&:̟c 7o7,J07ayw,79UMlz{'ׅ(!-ۘbTm~-% *o5PR &uwuĊ (<}S~Lƴoky2.jgߦGۉ|ĕzq^Zfk 40*w@&埧u+6=l($8@͡D^3:belv 6ҒKxu2b>r?z:*HF k-l-<{-Mq ;UwJ9Y Xՙ΋KC%1@GyEnT=~وex;`$a@7xZE,E2Hy :) R,!a&H w]$N+|b|R( iHDHYc\ώrg!P&Y N*z/&n\Z/DzXiZ_`÷ru<h8 )PxamU_/M+! B@մUӗȉwT'Jʓa3i|Hh5ņzEYɔz;5 K툷+y$iux6C qZ‹2o)#x/;Pm8% (n6z䷘-ŰY$( 6X2Z{3 {d C r|C-uCW[qd8 1Q4"ǝ Dp?x4p)^Gk:hH)]+H>|Ou\9ϋ` ħa*FL4+7`1aKs1.@3~nDjtzn)W X8emk'>eRnlp xz7͟6-Ԓc.IcN" sHL`ц Ih郶J0F*8w؜9 { !(1ZY͛\S撛=V(+^u^\h_9~:|]B}i 6Ű\Ă`o>#H筘99GAzf]٦r<%!:59{Cj{I4i߽(do*1gZK=ylTZZθ0cc~tS׆\AYc}nޡ,"QkTW-A;s/Y>+wih@hAM'm*QJvWԠg}Ip+= bgS4!" *r [OxTV)~B`Da4UMl,jm"⥲YMo)f)-AI>_0Meu^~wEּsM*ϪQ:V%ˌ%~%u ~Ƈ%oIy7b kG";}nǙFj>{q. #;حCy5GKӡo.r0&Vكn+ 0*1&wfKj?H6{T>Oλ&9r-'C!TY V> 2>L ngr}f0rYpo>Z!2pkXr\꙯cKڜV -L -S}t #꘹YVnF\sǢW[r ;Sl" Q_b>t 2zZ(9̺K TOkr b.l<~7/Sk7ݏ~?wk=L NsXO(,Z%Q]\П>^lSr%4msJ}멢} !Pׁ"G ,sS4=̕ml{Te2^KsEnQq(Σj9H[rSO_/'е- K=92 P3S@_]O݄hOa֛`Ly1 :/6S7,CLj]$He{aNC^ǟdI)b_%aح%- <*KEZsI*ku/M|9^E %Ĕbi,o1}dm?&܏ #gI%ޯ ') o;"0㋼XmkMQT ҅tHj^'uF{7D g=-7 o8oy½VFCѽzWS ~IƱ?ta F?>cW@I !@l]|c?^F;B=XifNTY~R|>)GBWT\ OBd8gs^uĄ3q_4i=ab\^Mo< 6oㅸV1.D};:ziBz]߼kYɸïI;2W.!OwY3=,$櫓-gTĿ13Z9Fs;̌*V#ױITÞD%²h9$+!_%U`H2ZA_qq> .bkLW)r,4Uu ȧ:t1a)ϋh4o :(KjBjr_͍P^S-ւ*V6}IE/EhCp%)y :{u(=tdk3V4?'-[&:̡P+3q>۹ѨXP{sƕTxWn'ϫ,>r?I 'uu/λ$ݬW_$1ˑ%.]] ԗ[ }˸FM嶮G1׺{kǠ~VS+Y~8%"Sk|'oaE $)eۜgZPfo] ͉>>B\޻P)_Ȍ+=1K6q s^2 oӺU36],1gk0'i[ғsZDߏLoXόm?åZ%{~ڤ陵]K Jq X̜*&qp,S|Zl{QhZ1|ۇKd a㓆J2ԐLH6xD3eiY>b֝5@HDRs۴ulsq;(Zʄ-һSA]uJu&/fi  gs|КD{MX)$7apUWPifcT(A ka 0ņs>mS{2,S\+`ɚL~G7k,P%^dq&h.6R#K育WNI<~#;T0H8I\ƮV 纂0o6V]Ij5ٔ&4EQ+Hr]IҵmR-G{!kGu0NؗQQWI!񩮣H; ]oNU/`cS^=Mhk※swEAw<1>rZSVY>cF6&N[@ 2sB=XwUF4|0 =ÊAͫGئGaC#k&kAj t7@u>k5D,8J:!pH[R;AS `g[VϹd l~w dA*kz0 `{c`z*Op%Єo q' :-H SԔpA\ p4'Q^ !X'].MCԠ hpJJ- Xu>]gZ&t]pֵU.DQHNTBUugD!C!4Ƕ:YXG_PYQ^$+TԤ7G-ipaٽ#Qvg} 7iJFfV޽jb_V=C~0 {9 ГUb܂VŦ| )Mfq"TT$b7G1r0ٰKnz.*A,q̈,u5_i`}"iW 6#cPjxas8`ul9gJB̚'zt4]};ss H63}D ^ZT'Ÿ5Qe>J.sb-)c@&bXbHn3]=M} Q)ΟsfbNxy ވpw ܴ7#J}ƔKtGw~3L#c/OwrђE9m$Zr|"0o.YÝ(бv9%&? #%x`i~ovk'1v/j5G"GB}[ bMT&BDj!H|V:dO t<=r5˚+e^ϭC7њݞ[+cxˎ؊ضEG zfxVԕ ذG$Y) ו_?Gω'c2L1;W36ySG.=3K-gI$s^'0C~]m`&'Hٝǣ&^/9 L.+m ! Q_ꮐ6cXż4ېiAxSKfC#w BTr}2Ҋꡪ[u8؉k!یU^tIx]4WEP?xY 3; x۱aKv~' ^\ʡ %Hdq_žr3t) }ѽ&ľpN⸠kCi8Xtk_;gr}<2{y F_+^lJ8X]NQa=9}薌gBCvgž*O\1k ކs_ o >}C%=dɠ쟇@$?i1~Qb:9ydw!slE/su$KQ%?%] ѫ^ƹ5PG9r $iȠidXnЪBnhgJ}ջ5.*`i_6`΁=M#'6Μ]Ӑr:qI~YVc3SkQW"pr#2jkC.cJ z+&i<NxP%V1p2uJR!ЯG8aTkg863+!y± TQǽ"|))JCl y|?$6! 5nmdDF#@;) 67揸R/Б+џٱ3+0BU@B w0jc#(|1D) AM=jF^]ôRnd6M 4oR-]D؜*rԘ~Y ^Ajgl.jexc('!`w*Z֝i~MY*06 +ʓN U0ϓsW.f<0,7PWEv5L]toץ4.yyO?@UesQ:G:Y-lljiknzS\V UB7!Ek~|fŒ-l;YL9T.|0閙q;ƉDUvts%Tv)gx6?.L5N/ߔ)ۇ>;O]*c+KVUa{,ie3' AgܴtNߩ*6 YN'D;MZo+at](eVJ7RVxYI}߲$v Am4D7 "</EPGTݚV^iS@b=S^A ϩI4{Z@%>BVQ Rҳ`.*{0eBd]K+U|\(w5q5WF}F ۅd0+Jln~U?̕~."ʧ5p>}M 8xH6n[CHly`NFOjVT ֥U VC Nx wRƬI[+5&Z*4 iU|3H=*(yzS3m}Y]A֤;=jwtNiyg{vv0u7SNF!ͯX|~lQO"d ?/ӔQ\/Q=IeBNbSFRPOQU5ؒ`d[*:L0brh=BeF>}U]|qΙE[ >0#@%Xܡ9pPxY#p&R%PI,k qIw2||ᤓ3zbǖ𞈧dŜ\N}WFת9P<=^I^]1!4e  ah|4ʶԵƜפf;r(S oia":}\tO:V 8_tr2y}WUH" k_\}]&/da@TD; ~.Ӷvn/VGm~Ϡ6a.K2_U:GG_UK}Rvb(p|mQDDv.-'_/3,v*Ixgν]%oO8ųRC`زi59Ic;r6B?uCjչ3i߀Rgt5RnWNy{w]O8 SɦAM>`[38{yrF+ C[L]ho3h (n >uCy{H \o%ێeZ <$eȶgF)6Zu,cnK5F598r u*n2lf%f'"^o`˅bݻצgȊn8a}^ԙg^'ƅyOaTm{0k;evL6z0Dw.@},kM[EuFz kBMs=,PkZ*UR$p=qgv ӑ&*7Xo5[Qr*AG_장#ZBӣ4\io6pH)Q4Aa QrSgH%V* nePlvs&TG%]M:pUNImNafAR}*5%@M֍rJ,9j![o{)OAk;6~Uǎ rPIfӆmQVnn_xw>]U@e5Y浃m!3y]p\4$0ʏq7PH !/Ϳ9?JsRb~7A)uHe?*> +%>Ԫ=NgoXNڨ 'C"Ӿ5DD E}_9ώfJzj{}HgqDVtհ ZxlzowTf-Kyv>FS#@F? DB 1΍5񳞩8Qr?}NJޑ㳢}|dk4_;JuDur練yuYNCs\ǛAF6R!g鮝Zo`yY-d[3;@ _J|tԪŒdzy *' >tk@[lk5* bEk0tnd<频KՅ;NNy0lz]`7<=Ó*^LŴ5rB&ۑs폙[ _!Dќ̭UڴqzWIo\0>2^V[ eG1iA{e9eNd](}k3.3#x]Ĉ"8ῂb qs{ə<+~﹁p?24DGlra"g cwo)Sy&|JNǨWXҥ`*6=큳> L3.A9g<ڀ7( Q#U?l[U>̚˕A`ȞO/SX//rg,(8LA6^xk-ttk]mA"Ngwe;#%HCʾ`Wdd4؃^65XV?R/ō?hn%-["Pנ4+o9))M,L/F% P3^8ȽuO~y.ɦ L!JJ7ˮGr_|csDYS@X@cUV9@*mvaF(s F!t?Û!"/^ [rMI!HQi 9咺e8GK +b8?>?N  n-oŬ 6 ,+UjNsmz=lDyEFuk48Ew nGRAv^BY@^8ݗnd}ș'g%֨[)Feqoxͬ;ڶEl}( H;&$]a~wIAX N/ DKa_wa|U7GdIDYň2t 5NW5;`ТQ;D:C!U aqO9lQ۪Ss|sWR\韟o˚-8 ):ΜN.Ѫ=BQC M lett4wh`|zppIṭl2[&4V8-*G+GdzhiZܔ|.5M{{a6 9r^j.cw6:xiJ9s2Se _r1i\!iItΓ`qBB_fI=C-1Dx@ڥ< Wv6> ןv8~ȿ >Ă  ;'.ѴpQ_y NV-yүNa/D :K[T.iNo?m)Ia,Z9LJAΉ;SkՓ= X{Ӹc~ '5AoJ]tHL>آFI,߲=E㊉>8=y<E9ް!r;)L\XW3x"nщj>h A>89E6&F{7^w /!vLL(|`6,- AN ڽ}Bԁ|x#ppct*EДCzhSұL-P_dQ==VXsF룁z4)%5+i]O[Ӑי.:I6QQUTcͽ:^ߺe{gwx`M)eza# s4&ϔ:Y4=%~{ׅ}z7g?ǫ},a1qΒ[޶"(H)<