ࡱ> 46123  @bjbj4242 0VXVX02 $$( <<<PPP8 P0F0000000,36B0<B0&<<W0&&&<<0&0&&V.@ / Wg @/ 0m000/ E7&E7 /&< /B0B0&0E7$ :   STRING LAB : VALIDATING USER INPUT Begin at the beginning, the King said, very gravely, and go on till you come to the end: then stop. Lewis Carroll, Alice in Wonderland, [1] Lab objectives. In this lab you will learn to handle input and output in your program, with emphasis on string as a tool. In the first part of the lab you will learn about input and output through console. In the second part, you will learn to handle input and output by reading from and writing to files. Through these exercises that require user input manipulation, you will become aware of the importance of input validation. 1. Input/output on the console window Introduction. The vast expanse of black screen greets you as you open your eyes. You must have fallen asleep on your keyboard and without knowing initiated the console window. Suddenly, white letters appear at the top of the screen. Hey, are you there? The cursor is blinking as you try to figure out what had just happened. You type and enter: yes. The reply is instant. Want to find out how Im talking to you? Say yes, and youll find out. Say no, youll go back to sleep and forever wonder if this encounter was a dream. This doesnt leave you with much of a choice. You are about to learn about input and output through the console window. When you write a program that prints to and reads from the console, you need to include the iostream library. iostream library: input and output using objects cout and cin. The iostream library provides input and output functionality using streams.[2] A stream is an abstraction which represents, in this case, the console. The objects cin and cout belong to iostream library. Insertion operator (<<) and extraction operator (>>) are required to perform input/output operations. You have already seen the insertion operator from the earlier parts of the course. The Hello World! program uses cout and <<. cout << inserts messages to the console. To recreate the conversation in the introduction you may write cout << "Hey, are you there?" << endl; endl adds a newline character to the end of the message. It is equivalent to writing a newline character \n within the quotation marks: cout << "Hey, are you there?\n"; Both expressions print to the console the message: Hey, are you there? Now it is time for you to write a program that will accept user input, and respond accordingly. First, you need to know how cin and extraction operator >> work. Put together, cin>> extract formatted data from user input. There are two major sources of error in using cin>>: when the user inputs the wrong type of data and when the user inputs more data than necessary for the specific operation. When the user inputs the wrong type of data, the stream enters the fail state and can no longer get user input from the console. This state can be checked with cin.fail(): after using cin>>, calling cin.fail() will return true if the user input an incorrect type and false if the user input the correct type. Consider the following code snippet: int x; cin >> x; if (cin.fail()) cout << "fail" << endl; else cout << "success" << endl; Here, if the user inputs 66u, cin.fail() will return true and fail will be printed to the console. If the user inputs 66, cin.fail() will return false and success will be printed to the console. The less obvious error is due to extra characters in the buffer. cin>> consumes all blank spaces and stops reading after extracting a single input. The error arises from the fact that cin>> keeps the rest of user input after extraction of formatted data. The remaining characters can be manipulated further or mess up other input if unexpected. Correct use of the operation is given in the following example. If the user inputs 7 8 9 in console for this line of code: cin >> numApples >> numOranges >> numGrapes; numApples will have 7, numOranges 8, and numGrapes 9 assigned. However, remaining characters in the buffer can be a cause of great vulnerability. Lets examine code for manipulating ATM transactions : #include using namespace std; void transferMoney(int value); int main(){ int pin; int value; cout << "Please enter your PIN: " << endl; cin >> pin; if (!cin.fail() && pin == 12345) { cout << "Please enter the amount to be "; cout << "transferred (in hundreds of dollars): " << endl; cin >> value; } if (value > 0) { transferMoney(100*value); cout << "You have transferred $" << 100*value << "." << endl; cout << "Thank you for your transaction. " << endl; } return 0; } void transferMoney(int value) { // this can be blank for the sake of this example } Run the program. When asked to type in the PIN, you write by accident the PIN and an extra digit, separated by a space. For example: 12345 6. What is printed to the console? Why does this happen? Another standard function you can use is getline( ). It reads user input into a string until the newline character and does not leave any extra characters in the buffer. Here is an example of getting a name input: string name; getline(cin, name); Here, when the user types a name, the entire line is stored in the string name, including white spaces. USS Yorktown Software Disaster  Source: http://ww2db.com/image.php?image_id=6865 In November 1998 the USS Yorktown, a guided-missile cruiser that was the first to be outfitted with Smart Ship technology, suffered a widespread system failure. After a crew member mistakenly entered a zero into the data field of an application, the computer system proceeded to divide another quantity by that zero. The operation caused a buffer overflow, in which data leaked from a temporary storage space in the memory, and the error eventually brought down the ships propulsion system. The result: the Yorktown was dead in the water for more than two hours. [6] Writing a safer integer input function: stringstream stringstream provides an interface to manipulate strings as if they were input/output streams[4]. The extraction operator >> and insertion operator << function the same way with stringstream as with iostream. Stringstream objects also have a .fail() function that works in the same way as with the cin object. For example, consider the following code snippet: stringstream converter; //declaring sstream object int x; string result; converter << getline(cin, result); converter >> x; //works similarly to cin Let us examine some pseudocode for an implementation of a safer integer input function, using stringstream. int GetInteger(){ /* 1. Declare stringstream object */ /* 2. Get a line of user input as a string, then write into the object.*/ /* 3. Extract an integer from the string*/ /* 4. Do error checking : 1) fail state 2) extra characters*/ } Note that on an invalid input, GetInteger() should rebuke the input and re-prompt the user to reenter until a valid integer is written. To check if there are extra characters, you may find the .eof() function of the stringstream object useful. Although many functions are commonly used, it is always good practice to place checks for errors, and write your own modified versions if necessary. Using the knowledge gained from previous sections of this lab, implement the GetInteger() function. int GetInteger(){ } How does your implementation protect against extra unnecessary characters in the input? How does your implementation correctly ensure that the input is a valid int? Exercises. 1) Spot the errors in the following piece of code: int number; string str; cin >> number; getline(cin, str); (Hint: getline reads until it finds a newline character.) 3) Fixing ugly code: Improve the ATM example by inserting the safer input function in the right places (you only have to reimplement the main method). #include #include #include using namespace std; void TransferMoney(int value); int main() { } 2. File input/output Introduction. The fstream library lets you read from and write to files with two classes: ifstream (short for input file stream) and ofstream (short for output file stream). As you may have guessed, ifstream is used to read from files and ofstream is used to write to them. Let us write code that will take in the file name and open the file. Table 1 below lists the functions in fstream associated with opening a file. Table 1 file.open(filename) This method attempts to open the file named by filename and attach it to the stream file. Note that the filename parameter is a C-style string, not a C++ string object. You can convert a C++ string to its C-style equivalent with the string method c_str. You can check whether open fails by calling the fail() method.  file.close()  This method closes the file attached to the stream file. file.fail()  This method returns a bool indicating the error state of the stream file. A result of true means that a previous operation on this stream failed for some reason. Once an error occurs, the error state must be cleared before any further operations on the file will succeed.  To open the file, you need to know the filename. If you already know the file name, you can incorporate it in the program itself. However, to be more generic, you will need to get the users input (using getline()). If the user enters the wrong file name, all following manipulation with file data will be rendered useless. To ensure that the file exists and opens correctly, you need to place a check (also, you need to keep asking the user until they enter a valid file name). Using the functions from table 1, write a function that prompts the user for a file name, opens the file if it exists, attaching it to the provided ifstream, and keeps prompting the user if it does not. void getFile(ifstream &file) { } You have successfully completed opening the file! Now you need to read the characters in the file using ifstream and write to a separate file using ofstream. Opening an existing file is simple, as seen before, but what if you want to open a new file to write to? To instantiate an ofstream object with a new file, use the following notation: ofstream outfile(filename); If the file with the given name does not exist, then this will create a new file for you. However, if a file with the same name already exists, then whatever you write to the ofstream will not just append to the end of the existing file, but it will overwrite it (so beware!). Say we had an ofstream object called outfile and an ifstream object called infile. Table 2 below summarizes the functions needed to read from an ifstream and write to an ofstream. Table 2 infile.get()  This method reads and returns the next character in the input file stream. If there are no more characters, get() returns the constant EOF. If some other error occurs that puts the ifstream object into a fail state, this can be checked by calling ifstream.fail(). Note that the return value of get() is an int, not char.  outfile.put(char ch)  This will write a single character to an output file stream. (Dont forget to call outfile.close() when youre done!)  Using these functions, write a method that takes a file name from user input and copies the contents of the file character by character into a new file named stringLab.txt. You may use the getFile() function that youve implemented above to read the users input and open a file. const char *outfileName = "stringLab.txt"; void copyFile() { } Does your implementation take care not to overwrite any previously existing files? If not, change your implementation to do so and then describe your solution here. REFERENCES [1] Carroll, Lewis. Alice in Wonderland. Tribeca Books, 2011. Print. [2] IOstream Library. cplusplus.com. N.p., n.d. Web. 12 Sep 2011. . [3] b33tr00t,.cs106lib/simpio.cpp. github.com. N.p.,n.d. Web. 12 Sep 2011. . [4] stringstream.cplusplus.com.N.p.,n.d.Web.12Sep2011.. [5] Schwarz, Keith. CS106L Standard C++ Programming Laboratory Course Reader. www.keithschwarz.com. Stan- ford University, 2009. Web. 12 Sep 2011. . [6] ostream::put.cplusplus.com.N.p.,n.d.Web.12Sep2011.. [7] Roberts, Eric, and Zelenski Julie. Programming Abstractions in C++. Stanford University, Sept-12-2011. Web. 12 Sep 2011. . As a refresher, here is an example printing different variables with cout : int numApples = 3; int numOranges = 4; string container = box; cout << There are << numApples << apples and << numOranges << oranges in the << container << endl; This will print to the console the message : There are 3 apples and 4 oranges in the box  As a refresher, here is an example printing different variables with cout : int numApples = 3; int numOranges = 4; string container = box; cout << There are << numApples << apples and << numOranges << oranges in the << container << endl; 1 This will print to the console the message : There are 3 apples and 4 oranges in the box  The idea of the example comes from Keith Schwarzs CS106L coursereader. [5]  Safer version of getline with checks on fail state. From github.com [3]: string GetLine() { string returnString; while (true) { getline(cin,returnString); if (!cin.fail()) break; else { returnString=""; cin.clear(); } } return returnString; }  If you want to use delimiters other than the newline character you can specify by using a variant of getline. For example, if , were a delimiter you write : getline(cin, str, ,) However, with any other delimiter than the newline character, you will face the same problem of leftover input as cin>>.  Implementation from Keith Schwarzs CS106L course reader. [5] Only some comments were changed.     $j m |  t | &'( ʷݢݢݢݢݢݢݢ݊ykYYݢ#hB*OJQJ^J_H aJphh 2B*^J_H aJph!h4B hoB*^J_H aJ ph.jh4B ho0JB*U^J_H aJph)h4B hoB*OJQJ^J_H aJph$h4B ho5B*^J_H aJph$h4B ho5B*^J_H aJph!h4B hoB*^J_H aJph!h4B hoB*^J_H aJph"#$i j { x" & F & 0` P@1$7$8$H$gdo" & F & 0` P@1$7$8$H$gdo & 0` P@1$7$8$H$gdo"$ & 0` P@1$7$8$H$a$gdo {  oSS & 0` P@1$7$8$H$" & F & 0` P@1$7$8$H$gdo+ & 0` P@01$7$8$H$]^0gdW| & 0` P@1$7$8$H$gdo# & 0` P@1$7$8$H$gdo  %FG# & 0` P@1$7$8$H$gdo & 0` P@1$7$8$H$gdo' & 0` P@01$7$8$H$`0gdo (,HL(,-9EJT_sbM)hu{hoB*OJQJ^J_H aJph!h4B h9B*^J_H aJphh9B*^J_H aJphh4`)B*^J_H aJphhB*^J_H aJphhmB*^J_H aJphhsB*^J_H aJphhqdB*^J_H aJph)h4B hoB*OJQJ^J_H aJph#hB*OJQJ^J_H aJph!h4B hoB*^J_H aJph_kp34;<Ggqrw~TW=> ~#h!o B*OJQJ^J_H aJph.jh4B ho0JB*U^J_H aJph!hu{hoB*^J_H aJphh}B*^J_H aJph#hB*OJQJ^J_H aJph)h4B hoB*OJQJ^J_H aJph!h4B hoB*^J_H aJph*-7?Hop679:dnopٛقtcK.jhu{ho0JB*U^J_H aJph!h4B hb*$B*^J_H aJphhb*$B*^J_H aJphhoB*^J_H aJphhu{hoOJQJ)hD-hD-B*OJQJ^J_H aJph!h4B hoB*^J_H aJ ph.jh4B ho0JB*U^J_H aJph!h4B hoB*^J_H aJph)hu{hoB*OJQJ^J_H aJph  ,-9ET*>DXy# & 0` P@1$7$8$H$^gdW| & 0` P@1$7$8$H$gdo9npq56789:; & 0` P@1$7$8$H$gdo^gdo# & 0` P@1$7$8$H$^gdW|67  H}kXE0(hu{ho5B*CJ^J_H aJph$hu{ho6B*^J_H aJph%hu{hoB*CJ^J_H aJph*jhu{hoB*U^J_H aJph3hu{ho5B*CJ$OJQJ\^J_H aJ$ph!hu{h wB*^J_H aJphh wB*^J_H aJphhoB*^J_H aJph)h4B hoB*OJQJ^J_H aJph!h4B hoB*^J_H aJph!hu{hoB*^J_H aJph"67 & 0` P@1$7$8$H$gdo# & 0` P@01$7$8$H$^0gdo   GH}~ !%!5!Y!!!!"$ & 0` P@1$7$8$H$a$gdo & 0` P@1$7$8$H$gdo0 < @ D E [ q w $!%!4!ཬ{dP<'h@B*CJOJQJ^J_H aJph'hoB*CJOJQJ^J_H aJph-h hoB*CJOJQJ^J_H aJphhaB*^J_H aJphh;*B*^J_H aJph)h hoB*OJQJ^J_H aJph!h4B hsRB*^J_H aJphhsRB*^J_H aJph)h4B hoB*OJQJ^J_H aJph!h4B hoB*^J_H aJphh >B*^J_H aJph4!5!D!W!!!!!!!!!!!!"0#1#m#ѽѯqcqNq;qq%h hoB*CJ^J_H aJph)h4B hoB*OJQJ^J_H aJphh|bkB*^J_H aJph!h4B hoB*^J_H aJphhB*^J_H aJph!h4B h ;"B*^J_H aJphh ;"B*^J_H aJphhoB*^J_H aJph'h@B*CJOJQJ^J_H aJph-h hoB*CJOJQJ^J_H aJph-h h@B*CJOJQJ^J_H aJph!!!!"-"x"""""##$$$$$$$gdo^gdo`gdo# & 0` P@01$7$8$H$^0gdo & 0` P@1$7$8$H$gdom######$$$$$$%%%%%%%&&/&6&i&j&k&&˶˶˶ve˶˶WF!h4B hq8B*^J_H aJphhoB*^J_H aJph!h4B hYB*^J_H aJph$h4B ho5B*^J_H aJph!h4B hoB*^J_H aJ ph6jh4B ho0JB*OJQJU^J_H aJph)h4B hoB*OJQJ^J_H aJph!h4B hoB*^J_H aJph)hW|hRFtB*OJQJ^J_H aJphhRFtB*^J_H aJph$$$$$$$$$$R%S%T%U%V%W%X%Y%%%%%%%% & 0` P@1$7$8$H$gdo^gdogdo%%%&&'&(&b&c&d&e&f&g&h&j&k&''','?'U'gdo# & 0` P@01$7$8$H$^0gdo & 0` P@1$7$8$H$gdo&&'''''''''''''' ((6(>(x((((.)5)^)IJxexP)h0hoB*OJQJ^J_H aJph$h4B ho5B*^J_H aJph$h4B ho5B*^J_H aJph)h4B h,B*OJQJ^J_H aJph#h,B*OJQJ^J_H aJph#hoB*OJQJ^J_H aJph)h4B hoB*OJQJ^J_H aJph!h4B hoB*^J_H aJph)h hoB*OJQJ^J_H aJphU'u'v'''''''''''''''''''''''"$ & 0` P@1$7$8$H$a$gdogdo'''((V)^)_)s)t)**# & 0` P@$1$7$8$H$Ifgdo"$ & 0` P@1$7$8$H$a$gdo & 0` P@1$7$8$H$gdo ^)_)s)))))))))**3*:*k*r******** +"+&+P+T+b+f+,S,T,,,>.?.˶m_hwTsB*^J_H aJph)h4B hoB*OJQJ^J_H aJphhFBB*^J_H aJph!h4B hoB*^J_H aJph)hohoB*OJQJ^J_H aJph)hW|hXB*OJQJ^J_H aJphhXB*^J_H aJph)hW|hoB*OJQJ^J_H aJph!hohoB*^J_H aJph%*******xTTTTT# & 0` P@$1$7$8$H$Ifgdokdr$$Ifl0$ t0644 lapyto*** + + +,,xTTTTTT# & 0` P@$1$7$8$H$Ifgdokd|s$$Ifl0$ t0644 lapyto,,, ,,,.xV7777 & 0` P@1$7$8$H$gdo"$ & 0` P@1$7$8$H$a$gdokdt$$Ifl0$ t0644 lapyto?.u......../v////'0)000e0021;1111t_N_N<_N_N_N_N#hB*OJQJ^J_H aJph!h hoB*^J_H aJph)h hoB*OJQJ^J_H aJph)h4B hoB*OJQJ^J_H aJph)h25h25B*OJQJ^J_H aJph!h4B h0B*^J_H aJphh0B*^J_H aJphhoB*^J_H aJph)hW|hwTsB*OJQJ^J_H aJphhwTsB*^J_H aJph!h4B hoB*^J_H aJph....................... & 0` P@1$7$8$H$gdW| & 0` P@1$7$8$H$gdo.///////// / / / //d0e00011M2N2O2P2Q2R2 & 0` P@1$7$8$H$gdo111111*232B2M2N2P2Q2R2Z2334)4>445Z5[5555ǵُlZEZ)h\h\B*OJQJ^J_H aJph#h\B*OJQJ^J_H aJph)hohoB*OJQJ^J_H aJphhkmB*^J_H aJph!hohoB*^J_H aJph)h hB*OJQJ^J_H aJph#hB*OJQJ^J_H aJph#hoB*OJQJ^J_H aJph!h hoB*^J_H aJph)h hoB*OJQJ^J_H aJphR2Z2[2h2i2j2r3s333# & 0` P@$1$7$8$H$Ifgdo"$ & 0` P@1$7$8$H$a$gdo 333333<4=4xTTTTTT# & 0` P@$1$7$8$H$Ifgdokdt$$Ifl0p$ t0644 lapyto=4>4?4Y5Z5[555555xYYYYYYYYY & 0` P@1$7$8$H$gdokdJu$$Ifl0p$ t0644 lapyto 555555555555555555555555X6Y6Z6 & 0` P@1$7$8$H$gdo5555e6f6/:0:1:|:}:::C;q;Ͼvm`I6'h4B hCJ^J_H aJ$h4B hCJOJQJ^J_H aJ-h4B hB*CJOJQJ^J_H aJphh4B hCJOJQJh4B hCJ%h4B hB*CJ^J_H aJphjh4B h0JCJU%h{hoB*CJ^J_H aJph%h{hoB*CJ^J_H aJph!h4B hoB*^J_H aJph!h4B hB*^J_H aJphhoB*^J_H aJph!h hoB*^J_H aJphZ6[6\6]6^6_6`6a6b6c6d6e6p6q66,7y770888l90:"$ & 0` P@1$7$8$H$a$gdo & 0` P@1$7$8$H$gdo0:}::::C;;;<<2<<<J=K======>>0> & 0` P@1$7$8$H$gdo & 0` P@1$7$8$H$q;;;;;;;<<<<1<2<3<<<<<<̵ppp]J]7J$hu{hCJOJQJ^J_H aJ$hu{hCJOJQJ^J_H aJ$hu{hCJOJQJ^J_H aJ -hu{hB*CJOJQJ^J_H aJ ph-hu{hB*CJOJQJ^J_H aJph-hu{hB*CJOJQJ^J_H aJph-hu{hB*CJOJQJ^J_H aJphhu{hCJjhu{h0JCJUh4B hCJ$h4B hCJOJQJ^J_H aJ<<<J=K=L=M===d>g>h>i>j>????????????@@@@@ޯ~o\oXPXPXPXPXjh?Uh?$h4B hCJOJQJ^J_H aJh4B hCJ^J_H aJ h4B h$h4B hCJOJQJ^J_H aJ-h4B hB*CJOJQJ^J_H aJph-h4B hB*CJOJQJ^J_H aJphh4B hCJjh4B h0JCJU%h4B hB*CJ^J_H aJphhjh0JU0>A>G>L>d>g>h>?????@@@@@@@ @ & 0` P@1$7$8$H$gdo@ @%h{hoB*CJ^J_H aJph.:po/ =!"#$% rDd\+\  C 8A ship_yorktown42R2rjʪBN ,rDFrjʪBN ,JFIF``C  !"$"$  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?s6O\ԌV:Ԫv9[ޙU7{mIGmN~tߛv2ۄ~(jweMڎG´|wz6nI/Fb4G?F_Z~P4w+2?ʝFΓiiNfG̿ztnڏлNGjUeffe҆?SSK(nS ~o÷ғsKӕ\M~Zru[rMiQ#gnI?/a֛o*M J$Pv##HRZhڻwү[qNmҙлF~\޴}h_Kѻ=S5G *r N9]t~o݅ϯAG I?w֗oG_zrf٥}ĭښwN"_9s<ާ˵#}_#{SUͨlySݿ/ͻQo 5'~)h_ڗHރ妱"sj2Xz|Gz+= X_#L_Jw/K#so;1ޏ*3I|2\*I;]g#56ꍻ3Qn=i)ܴ/on(aޑKr?*?h_vߛQv޽>.ޝ`t~VZooPO߻Q>röSCcw?Jv["p?//LL ^qޝޥ:N6zvNϭ m_O_Zk{nQ؊F~^?J>ޣ^ꓦS[SY٤>b.;fȮU ޟsHڅ#e괴w7Mc6jv~6"J_jF4 ǷKw)B7:Qϛ~OQg O#UB: =i=_J~ߛGړ׵51ӷRݾ֓hoƚ/q=qMR=y F=OTe?uQt;~Ww8_Jk|Qۿ揗o۞)jwtߔo;y_ҍޚw2P\wQoZM/79E7f[/^튑r7n߽RBӟAʝizN_ܿH|۾ߗĿi~4m֎wni^gwJ>qRRmܬpr)sқޝT}k?[ӵKU j8nٻՈԪ˷۵?j?[j)nI{/=CM?4;z~7S$IqU;Q?bͷ?ښv4+|/~?3SLWʶݷw~u|n3visZEo=hz\jLw<џ.͸#o9)Tngt޴?.IӀ=iwSo⛹vw_˚3Q8FߥoJ>aFw7McZw|v7&J?v;j{ڍ^GÚcl]xhzFʟ{LPݽn&߿Zzn_(HwʌurY(R?OV+}LWݻ(]ݴn>f~MSG}ʌ]oq_Z3{c۶ud2k7yV{'7P}rhVӧs+3}^ũF{.Ϟf[ǧO;;_7w珥;w*Xeh_O替ezRoҕO_1vnt'S+| dYwl?̪z 5_s+.z*V|;vѻ.qF~Z|(o֍۶/U CF~B ;w}/)vj|k4;= >ޡB†>~7-N m5%H&2xdLzq[wbT0j6IxQ+MlsLUv.JLndۗ7ޜT)};ùaH͞No-S5q1Z=2GۗRv,s5>q89XNm3}]۷n\w=/_mwm&~{ccq`{~o,۹^3UP\|?oѹmZk.6m*qsn{jo-SeqIy|v ˻:ۻnK!n{ ҙ_ 諸mڴMwv=ݡ~t1;Brnɣ|Dq9bj/S7RJz B~eUcjtLoOΛ_Μ4nWcMߎ?ytOM9>5ǧ1bM?٦Q*t=*M.hBwiݺS+tew4 "[s~t_ƒDʯ7>1D^ lKtMToSSuXhU us?{_ZCmwiz~\Фonʹ߭+1r)[wמ(V =]~_SU 5FN=:)۾S#1o}hfUq})OW]F~4YAUa E=vѵE9[_[kn~V+n)3wJ~ҕ~_;6m{wwҕ~;wLg~v D r,»xjE+NV?w֕8F~l'C~wPiۗjn^>Ԍ}On_,ۃ߅UyVyw4f4ޚ]9ݸSw]uR+ n. ~uHIm~ֲ-:bn? ~_ϘQ]ˆ֥Vm6;W/ZM7/ܫn=G\TykC*9_IhoS~ 3|194ۛwݣx]Q(͟)pڝLc?GcfkZMqjk;7l6ˏΥ< ߥ hޥ~ofUNz=HovO^9XUn4o 7~^ԍ|T]6\~t_BqvhS>nԻQ:ScޜS?RZvZiKvuѹwJ_ ^ҝ4ei8?JnsHQa~f4ߥ9vJc}sF[sLy}x l{3) W\ׂ OmmI%~yj؂DqJ<`_?{ݻv_J0\h^Jc O18eC?˻Zon~e!hWkԋ".Ve_ŸbTUn_O^=vTLr{S|[UZپ~?T҆o}c_jU8kJsޑOwzS~-5TY=?V9YtO{w봊՘۸1)x\Թfӣ, GK@mINݩwwanozߗvbVۻߟJ].Ow ا+/3n=?Zf~_>6to{wL%]ϓן,uGRԛG~Mݷu/~˟E7njqZP?ZF+lT%r?,C7cMo7ކ~_{8?7z2zUs5S|wp3ӌ*I]Q0_x)WUx~x4$wpn в۳a[ohl_dOb? 1qr)~NSTʂ6N_NWnoǷ階Ou&~~^K?w|۽ oLPo">|piw~]iu+wgU[sg<mOl*ቧ'Sޘg_Jjmܫӊs7ScUN$sOۏoz{PVE w+Foҕ7ۿ|Q~mVO.|CmŎwt*鼨9'33ԵKOMgAĎ9{6Ya\D sEtVb%ww)] zռ{ގ77 _׵H>\7SY͞Um۳ʻ[DO䧩o+QJq~̯U)^Ч?jHfe{(]ʿurݩ߯Xw=sD[|zw@ϵRzSGҳ/~ߩ=jEeVmoG{w|7?9]z {1Hݿic|Ŷ6>\Zn+v7i`ۤQ>ʑYUv7#҆?{4}O"wn#oU}~;mYW;?Fp?ڥSqר?K6+g-?v6iħ֑mqJ^i[<_?*nNNёfi_/M*W?CoZr﷨ktvRn/͊dlnݻC^e.޽*9>d_JNrWa="3mm M+rd/vwck3}G_ZM+|:?Ey^ͣ3Cj0%#)[97w\ӟK񖠏~]^` ~ux35%:E,Z$ 2bE%. 񕬰r]G"acIqm r/*Oμ^ͤڈԼ(*1pxUtx!ac"[eVPOr9W<繑̻˷*U7ѮuLAwpgQ6o{Wu_I'AZ[DW"Q,ݷlUe<[*v͹ ϫngڕ.~U~6O{SVџ{z!+Ө1)gҝl+ chgVV}Ou]ۿJdw RAߥ>7ܿ+~e-N+.iw3.x.~\NR򎿅+2` E#J1,x~7o97)B{ҏ3WS/+7xN)QKZ(R2~w$sʳ>P-yo#JTr8 ;MtqOWg6{cWHsGݻo/ZVu OaSsq|cЭ򪚗wC7J{^:TWP-o. F$sQK#ɗIi\jtnO5.S= Ro Nvք?uWjUw>_jBo':uLS[cFˏJfނ;jT_/Co/L] S[nڬ4M{>)%ϵ&Ww(zTd2'd?p fzH/EssHbQss岂6bqjuM>*TQec5^9#ZQX$c s"Y8`>"o|{6Rtۭ7T^[2̹%^*Y|+Ck7 V $m.ۍzqqK]+C̰{LFwoma]G AOZn+K&H0VG?4jn,9K#-:!k-@'9Y7mnx)~;u,qTv1~y{}~Z|g|;vI[N6[W#>{QMfoGi#姷i{2O2c#p|8T\qSmެ7O;})o]C_ZUe~7Yi9΢'Ҏ^s4 >66v|[n;zŸ]i7޿Ҏ.޿~;~S~oo;hUFvCn_^ {eX|Gr9"0znk?q~Ԟ"]vAdkIiQ /]Ȯ̿{w͏~;.+7p(0=Tpѵ՜D͑oB펝io^Ge1#(b6;7Y4+Axt/JmaR (6ommt}3̰;n 2>~jhZ:o.(rbsb_G/^j^Q+-RGCU[ m=mʻW{r :?e_=]w 6={Tr|F~}ߟnsֆ|c7:n]zzn4ƞ[p)|ݝ~aRo]1j=)7^y)o3c/=ӷ፴r͟+]Voww~moܪO~)&_s{{_Mz㎛qN?&z/ETLi~s*UcxGIk./!x޸+gi]=XY~]AK N7}W/E #1۷4w۾֝Qօq?t{>YG7~wߕu~V;@U[uk6Fo?"me ojEu5m߇N\*ۺ>m޵ݏv$glfTUUE^2ğĞjOzOJ>^oҙ晷-41U۝K`MeRmwSv\6ߺzqPm{އ4΍=*6_wjyqKfGBKpJrk&h[q}>='zGjx-ɤu029ܤtZG-5[ZR6 Lncצ~5]C"]} X)[YM&?19 xqY>8Ӽq׶r"3!yaG,}| /:?j3X=(it&3I 1x!=a\jjjؚ)'7NeM`Y|xW ~=/#>jߛ?7Eݻz2G_B7}}rim;|Ϊ^w)wmUqޜV\uLZn:c>/zPҲn`Gjje9d-iUqs7z{TqFwu_OY?* |ݷrN]^_sS{^iT?W+ HGGm2ѺrspPp1o‰v;ӫ.NrRnsxY:_Z~fe>SF5ߍ$w, ©aw/AF~WE_#G[ۓ~מ O V$Ws6 {z|MV}~SϏ nObKXaMJM`lO%%,q_0밗YHү|DowWX0؝<)IX ¶O96x/] L*~ߌ$Ѯcz/u4xttdl$.>m_1|NBt@wںO |ܑW.qqkyaiX#vzs7˷z:[st,[pӞ(3mcaH~os=nTN8w+|ˎ?:Uw_zEvmۗj5ی6ʛ߷>޵/zq=;Ys,1sLݻj{{To˻Aۗ]{ip]B/آG]7~R3*zeӔ37͑RU۷FhR9owxdm/L2qM7z/;4:ëEmvӸr)13 "QlIYԪ-ץ:6E??nOL_w_j2-;vWPP{6S6AMInПw{-gm&2wh¡Y_=~Zw˃ҡ]ѲzWnnnm!9@3Ϲ$g<;CiMp+@0>y?¢7K|kӴ-Ͻ3BY;V42r^xG}s}X@2F< t޵0K[ Ȯm<`DbR7><< λY[{Wmvy&\ҵI[esKdCF~Srm"E<ѻii~olI1vwڹ?\>|̭U*w}Ǩ,rv{So{>)RCUm6O`&''U Te'?-[Ѹ63_msϯZ]K(u_i$,zb>rl7zu^Kԛbh2h"f6c8^JoC.M?__1Anքs#*y*湢Zm7ń"F GޭZu9@߇mXʟN_[ïLdU(Wڻw&7qToU.s.i_85_s{vR&fYoSDowш#5*ӕjr{黾e9ocI#Q+T.ߍ&z7L?j?h֍.?Zf~UI.dTf&xg;ȷr:daו|zm^MK=js }Gv"FE^tWĚ:-[$; 2-Wms,W,jr 0`Lm%Nq_wk!ōūZޭILS KsU[Tt;Lg_.Ce lQBۢÉKFBW_iw\kwlSkuP84.䍘-1]6 ű4n60yr/alԴfH'4)+"3 2JRc.4q:t7͐>m]ߕKk 嵵m[iiզ﬚)nmi%nT2#kRZ7r=I/..7aB?/Zҷ{DLоcpI?ʼ/¾-)M෵/̒ŶawplH.RwZ־1]5ƣ=6E4Ks0`uIahG1B yRVm:8qv>y tޮ$g}5<—k),<3>c\8,[#nVOO|Cyž(U\}dj+2|@֨]ns}i>[M҃5͌ww`CMm^OZ,3 eoiZSdUfnZl"n-]EgvS{Vu.ߴi~MrzҨϩ=_ mwK$kӟߺ7VtRJkeb#"T^iPGpNZ5;5ڗzo+?P+:dNkY6q0eF'y_1o'/ȼQpΆeRo~ijU~n6ߛ7FuڒF,Lc\TyJ77eOiݺRy[Miw܏>3~Jx-Q|=Ix_t`,B/\p+޼N_T|$.`O)Lۜn O h~'i, :(Olblcڏڮq^x-|^湮խV=Dͽ(g^NAM~kk +Jmi$Xw <,sltO~ N{KKUӥn,llKp!c_3~^ǥK_ XG,|zEWij!j .b UU7^?|WHƙjkP][́ën A2Zf+CxƢq*D@o]&>ٺ7ma)/$KFB]c)Ԏ: ^X&i{>2%%?/ʅ?^ Ŵ<A4V pE˳|Ro_Y o*M_TsHKrZz7Ԟ5M9֢oR3/gӥ5jFi\m޿09Ȩמ31Y.;M6}ץ7lb::7kq\\Rc>Хv$zc9\n-3S<7nֆsC:./ Ցu7i}'wax2$ v)hڔ_ZũMqku4;?xl~|ugO1n%Y%ԙ02ٰg닺x)^L+(T.e3wscC]oZ[x3ݪ/~eX04} l:EK[kx% IV27l.Sjma5==eR.J3+{64~9SJ:c۞kNvMJ@v+WOZ3xbۋcs֭%TfgP}c,Gv=ڔR*aBo@_l֞Ytㄬt! kN͉``T,y浴?z]Py7=F9zφCim?CVM=d8O=)Un:n~nS̯z{·MS~b3EV CJ6_ʢgWGcd~4|SV],wz~u?x1?_Qޑ\VXv)؍ղ1(iWs^֓<֘έ~*[h,Y4+RB<7Su X֢ӯ4ӠfcsyӒk82;-WM =b;r8EoN} X|bX,D?>sdRD(a=:_:-xL,A$qϊڄ>4dӭ⺒ -f÷2~CweK-k Zd滨dҵ;&RvSnI;I}*v<X <Ğ$^-X0x#N]\j@tcdwXwP#";dw!PsNv> r?C?˟6A#6x+iͷ`+rNj|+6ݧ搩ri/;?n9G5p]6 qQ6BӃR,s U)8>/T.;jf`>bW Oz4rˈ|/>qTMFJk4?Jݷ_' 7''zVIhn6Fm'8]xvV 6[h6JшY~v` emyw5\iC^\ȶ\&!GC^EMگhxX U-JVBf㫟Gfݘ;=>gf*2Hl[׵KVIIk6bH6Sk*o*SF_4 Ha.'fCpkQ4&Nhݕ+^oo&خᕇMNW3^coQVoe[+׵i2aTD;;qkӾ y7浪7z^l #8&M{}cK>w'kZTjBBcāYݶ O񅟂a*v]jrcvm/־l| &yj@.dC] hY:zƼTT[5ЖIUfl;U.4ۙ+R {浴}Q=Ǔѷ;؜ZEW6>}0 6yݑs\氺/-X[;dʱ)CaoOij<4>3Wxq;mcrqOWُ1K8ZHE ly'q8UsDN( ȏ9ezK3$q`8ہzU%J'aFM1'5vkKK=Un$v HP-+6vnl#=;Kkx6FQXy7ٶV~'$v 5]<>rEt;M_1F8]*v.\Tw*1W{T~fQNRSYoHnB 7gE1]oZJ>Wip nwuMDwwSSps 1Mb8^|nw.im2}$oDY|Vb퍽qTψQ"kX1#\q!RO~3|4d6-kNk:e[t⦕iisI'?ćjF; i-"<;Xiy{3# ]Y|N27 u=^Al[[M" lkSᕞ|6ҦEK.\Ҵʲ -+n4;]Jktaپ+"h,݂SgWc8u_ |?lt=NYW_hhqol[ZoEXh焬$?}e(LG2;WiSq@owGҭm49e#=+ /l؞p>kS,j)#=i:w:i[A#Fڽ2s3-{Ybuhu[axC@J,h;}9hoC*FweڿLs7^P:c&_zsڢ#WڅrYz/Ohrʤvܫ|o7~_4fE査cn:oG6*zZ{cǧ?5:_Rǧ&qӯj!Ibr,QY4y}ZJ,X-زb@X`ؼѯty5Pbh23+׷ K4./]W;ۍn N:Vh~o4i!xKKţ)k.e?$$d'h5-bV\NQIۄ*6~^U_? vrqw \Vki].yj77u3y$ vPFB+)鵖` %€:_km4Z67a+[?R[Ҟް8[:U_ Xuguq&u5W@mkXv{WT$ u% ]̍靤=~ t1up-8:Mby튬 eoo!\.P ',7zVOukkcd'e H r+g07,/5(O27 rW#5y<3vNc}aA5)T"nr=MvyBd]Bܯo_,ۿZ3v6Fzq*/n~gW Etq1}y{GMv;m9ϟrޢ3i$f6_\WKcPޞH+}Sҳێy:sRO FOCSyܧ0c5=Dž|9gDxIZR4}2#.ߙ[޶|?*~!'ƶq|CeI# V~ONoIkQ2iO/D֦%KEyDJ)w!~o9T(JxsA𝧆&6V0Y؝Vݐyn]Ts_=@O!g[񶾚N[se.34q`v~<5)u]1^\16lኴ2l\}!`ރ|NJ5|EKstܬ̿jۊ|?TϒsW[M(2(hӃVQWxvE6flWTͭ{:L(Tm\5k['τ崅ܩV9vͫ߁_uI!45ᑎuK3ӏ7?^>o}:bVy!\?|?Zo-gisS#q7W 4Нߒsj,mb_*8)uKwnH?*]{ړv7_R<Ҙ1 F79Oס߻ێi[ZIRpnCpdvH z|7@93۱ϭE'˹=[2O.'dv$$.=3_B/K :q}[g\|(NgFq-zei:\VZU6Q."vϩ?1V7|[;y4._;Ӽ+rYz;N=[>e;fZjܨwa_zBJ|M@6߽~o`ަ+έ3xItԤh]*6Q6;k=E j.]|r8$X;GΩ|ۙ aO坾\p>j|IxA_[~լ>lZ OyqpB$EWw+CQ[z"$VшdhT$|bZZkFQ_-kh.UYXنfCeFij|i%?p" Bde67s?%xI[J(HR<]v6 𭕍i=&qa# Bs޼w\.F(A`FNyYԳ&>c[N} sWxJ|?=/HiBo]>1\C¼$ޯ(֡mo4W['M&YB!NcOp w/n]uuHWv޹Vx)w׮'kmCG#2/֍>?&m޽9Jn[nٿAPm6ኯm}idnϧ?w~5^ׁ2?͝qMVfێ~޼S&U/JXb,fd T }+~3CGΣnMyd90p+x"cP#5 @+3WZY3#ul&x#|i.Уm<(G3_=xR4i5(i rqG+.xz/?]=-٭P,2Hv=~Q^4|0gt5_ͺKxe<9V?~0g<[U>c<i(H3v [v 2S唳 1kAїM]2]:Gᜏ/t2~r$fe*zJ"H2_R.o-CxRdKz+WIҴkoe駪ٲc?nS'M/#ڣ~'o/3͌/:Wg&zΟ[YдVcs[TָRۮogH;I6tr1W? xbTԮ9f-9.Ej&:W\a:Tnrx銂Kkn>e#q;I{8ŝޕi8ɗ~mR8 RMjzM績 mrRGAAR6 vpGgLPyRK{g*2"C5薿 H*GKs<4wJ~WpU!zt5a6T== .ݹnzGZ zfv31?3ϾWliI\kW+n:_ ,`0 ʻ ^yF|:ƕmWAemf{f3WpxWοnhz-BM#W}Efм]⅗j+;G^֪o>8B{ ]އ| }:Ğ$^IjV]A R2HweOYx=& sxvIw(_im잤>0|RԭUֵ4etK,dTz~k~"ݎsGR[Y9ݗ'WeW5m'G4wH"&4'îw.{ _cn7.i,n,X~]6"r:cRg_w+M83_Ɇ)FôZ,Zqq*|j-/ l+9բԬhMqA]=7kou҈ T^yَV%Ca6qHj&wLF#c`Mg2]lXeIeo5}299-׳Of9Tā^{74_ ^NV)IdS*{׷6VN 3oX f勳ORgU?7C}浺Mז410%Ny߯nn6~/nҟ܀Sq_`r2E1[{ofaNt7^WP0ϳL{闚:%VYMDr}{LK YZ=k'O"T,ծdBAqֹ[i>՘nT#9ccgayyo%*vG eX ? |{-JzTS!U_J屈F߆Jb–[s ҫOϒ~*xRNɩGgccK9mU9l)Vڧf ,M${E[Hd\"Fǖ7|Lo4 '4MW h/A7t{f6-yv'ǀ'|XO;y 9%®+0lkfu^%IRoIo=D.-&0º?{濋'i"ƩdV(nF‚pwzVώ|Ok9_5O,R#ATwm[2%|+־$Cm$nT}1o|%7}Y/ING>߈?E)6 DG|u >#Git o${B2nk㞱hPk:</GW9> .uVP@m-n벇[Ӯn>cXgmFyacm|VOM6%v)"dc ƯkPf=wcj0CxD^hUa+ƚLjGXxZ{ 7Uz];DCk¾꽯[|+_Gc{4,#({=b_m%uZX>J\G xxŶ,w.+'ⲇO5O/"8cwRԞ.{y-2݀ mszvx֗\%ܴg+$.2:½|OE5;'&՗S72PH/7LUlEto=[D,uhI%7r\}j>oypz$LxG4vFp?֌8S/7Oi?Eq3$5)' ׭zRzg̣:~ToWy;N:HW*z~G+Ÿ6Tcwc`yxێ2?Lc.*o=)Y'1\}zfDzs3};AZLU`:fwF~_άۺ?QB˵wneyn___3{+d.ހ&V7f~x syuk֞&$V +aH=*9Gd?lS{?t}W@;-_6E`US`n5n[ޟ_[ķfʐ[I,#2`U'68'}n@׵i;tM(iIcD6Bˀp_>1#6>oyׂ@AEgCZc I6UՀbn rj;ONFCxH4׎$ݱdڱ'Z k6mf+DVQõb!,;Ual즖.H[E琨[=k\GM[jT\\iхpgG?¼Vk1 םRO父.b3`gti/am e;\m `e@ϮkWO>ݥ6-Vm 6,wWҴl xZّ^yڲ%A8<ֽo4˫4U䥷ML7_u_h?|[[xךaSm;r>a+&V^"ŷP6k& QPXl{ֺ[[Mif.m'ج`Hvѐ+R.UY)bF Sdr+:6}[ʸQGɆ%%Rr>x\4|XiO* `{y_6m; &KXclw ݞxasa}sauk,7ΎG8z=/!~U۵e;/gۦ1^#ڏu=/I{H wQugMF#n@_q/AY%~>X]cXX|LX#ÅTМKw6uAr_!uݕ k2.ƫ[|0 u m6\\$P- Є+ gϭg@wj*VN܇2%q/d9kti 9VKk*miTƗ>^tdے0{zo{txty&~4eh*MCt/jxY仂oxL7O,WMء N3^oI|9.hw tZKefl6Ǔk񕦃 >Xt%:eEq*YE^2wm>jOۛm.V\Ԅv@"KHDQ;;2?6+.>KEaX>nOo zP nu[i6Ŕ K7<A&׮e٠8C3ʝpʁ^<[yh 8x;s#>% }%.AVm6 |If!ȓ' m٧4/w ҼgLuj{RHRfgD .8 (!v}SxW`:Qo+G6ޣovX4cnɉ?!%}{eӦ('˶@0*}qȨK$qr-2.邂[`c` t#^zT 3,#*~?=fNؾN n?ʣQٙ{~^8)qpS-Y(p{u8!`2sTC72[#D˹*q+{:qm9cLNjl{x!}}&KlFY  T ?ʾZMCqlSs8R,}kա]COʚ϶>z,/ݦvSݼQLYUٟocsԚ<dΈg"[ve uNY|YSiE$_C*: \|=xk?ٖW x'扯iK;XjIC@Iful9YZ\0/yţ mmqg殣_ |EL4}6 8!ݨFpZ_Z}%OO]-i.!B$tі*1*E[{E+Cp.(_f#fM//kTO*e12J$rυaW{}cMujng&I$FZo_ckoWGO[D(+,ey8*zԳ\3r;ܩ?P*i[ah0ҡ[H#{ %^KFEMj$S"0UL/>u- o)Ldj[*m2EhA ǿ#JM} K2oPmHdUcxj'r[``[^bԟx?*{=Z-ɽ,'@~F0{ Do]F N=x!ki-%BEpTC/S4;8&uqdordfzm KDrno:xe'ʙDZo'atpʬ<|n ڭ#ؿ0,q}[7Y6 u$aGLӵ+MOǂLfp>`x-_>"x?÷W2tR8efLq63-M&RI*(oوFvSֽKtu :+In#FA ".1ѹ7VqJȷ u@TCdw$Ys=y>B^/J!;.'+m) xbXmP9lwWhԡ.dʰXck_ֹ֡kY\#p1x־oio ]ꓮ۽#ʧҺvBǥ1:5"e쭎~IoWq70*Nw|?9ɤ—v]G:ﻓߒ0 YUW#=ҥ߲O?+sSwu^ݾ ҅V7VzP͵xSMn>\Lc_"U~z0V*%;2{Lu$ο9;~kSk r [ gokuI07V(۵3?b|I'Jr:qlA!1';p+)M k aky3,VdQ=Q=rky$yslϥ ;FuPe03UKM`1H7_>h7ώ{)5w(@S囮9^~iUu UoF?PWoy\1D]|jX2jڶ|hwX@T&1fZԾ"X%gL `ǥ}YG.koFkK~Pi< IxɷVlHBFG oxE,k>obLETˏq᎝g|Aku%Qh{k+ֽXlMҭqnf\*|u5|3Uv+B]x aUsU|ygKM.٠G74Ͷ5y,ُa5ռB_ j]"V'vpCpt99ZѺ,ɡHIZ fi>xh%' ȭhw.ͦYcֺ}Cj[7"G,ŰĞԊ;0MM8 (]JE[{Zɣz3⩼q>zvːk}6MҭKDI$.ʙ'n=~mv+GFM=7sd0eAĘ;rɪqY_XEtVnTul2!K6M^o͆\eHp%Xhܡ2[t][IPEaxu>[vXwCNm]%cxW[g>3P$@2ьVַJu&ݢkjpT2)ac rV>_E l~(=ݸv!jab^cE^M!ІFR*r\ۙVn=j[Z 6㄂|@9dE)%P6PoheA!;Yg]ǯ8X/RC'bde*O1vMLfO3]ةTx| ďoYܡrS|XY?^ ʹy>Stluqi0.>dq; =H|4(Tl P>n{SwE#+ǧ|BK:kZh1ͤxi9']{AܼlMpFdsyoݓ=*z62ػvF}_RVL2px% Ua2&;Jfwg6'KjBgֱD<p9+\αoU\m嬙>GZI\+߳6=RA.SI~B?x}kٕ\uwҤܿwW] wc~Si^x{Rx+vgӯuV7?gSZ`/>I]m]"M`~֩ts4.U WךKMA-۳Z.y{"h6deio<]p-e40ۖ X ]W~ŭ..TIHC6Wc} ?gV\ (n zL}{T?2otmZ^Or"kkghc0ĥfwQmܽ+o{cK KvTi6{WU w:=BI;+ nUp8S9\]++|[r{TBB"s .?/ANkIoFH~f=sMϵB bO \ap9qQҫȄ:CRF;G3r~W%\ƳΛpA ܊o]K ٮY^`&%eeݷ wQZ%Mk{;DSs,0) 7HO,p=,i"- ( c${j"ViL͞M5vsډCyjWwzcZbŋGoέ% uVeUeTNG֛ʪt!NqQM,7HB \};vh?yA-m=ۢMt`zTR"Ǵl$:zҴpy񎜚v#FmKnq|SL\n·MGJ|66v$p}EEqrJM>$sv&,{r[x֥i|?y|ҤPV4dv:q"Y1- }ח;)u2T$oW)V=d3[{wd^15,vѫ2:8=+CVmBka7yn$E(aʖZW_x[-nڴZZ2,l?T? |_>!-cݻ8]}v}Me_3仲\W4vn4 -s'M7ݎ*&a#mw ǾkVmF$;p&74h3*I"& yax0m|6iSA_Z#(fU^O<wn?q/a~kWڪw6nUwu {i+z? oSǵ7n۞wg7яim{w>^{SchR z. 7#xClco ;ѽYxcqQ2XfA C3wqᾔpw#P^]Z[ 7nm6NnXfipt =j0LshS'ju{i+Lh]ow,Ts-yq]++vݭl#U3T*3j%3Jw*[JO.V9]HN=Mo?b $oҒDPeRaLS歮tlfD: ?:d߻ycϯri|OZ6K ƒdoUݞFx]lG'={{matJ_uuLw*[;l>i0%;S$ݹ?Kkב[}v fYeRݻb5[H!v?3'\¹[Q)#6褓U hZj G_/!8e#} } vƗ6;u"m7#gg]ⱼExUOx}-[߈Z;O%{f8EQ}k]k΅{D^Acœc+ٛo^b}҅v7/͟ˊ7͹_5b7H/i+.T=s1/O>1Oͅm߭9[#vnaGo_\Lb_{0ǩZpnY'c#y۵vcқ6vp-w7SQ\ w',Bݗn5?4]|46['Y 'xDKx-/'Cl|ө+%|M/ iD~oQkl(xb|n$=Z3ۯW?k鯥_hh ;kpIP<m\=MuW_4Х$B{kL|@ӴߋǝiztWVZ +-̫89 hnd7<+Np:i4R\$\x%O:݈cB>1]E,#g0}&ӭWH7SAzgi,Uwd+AWSMx epl$XWk|0.mr/ 7>`mZXݐI^o9Y~-Լ O x_&a4:ܢn{/@闗#\X_Ag4ňo@ˏ? 2;So˺5H1dh9;#s~I:Zɪin ܬY3Uv>$&:kv4"ܑ?vsi_XXO}DS.\>6?Nzj4m>F0躶KqmI*Vkb=m Yxr o>έWp%z.:{qF6zC=sCڌ7:}Žko6n*]~RݳKKߋ&M܉\#<>`6B!9ڶ? gABTM,v3OqIl! _8>uW^SUg0EaIkfZCG"̪6+^? xk.Z|b~R?/bZ;V=QG\[St[I%KK=]e]ö`k/O^~x 8-N&MLrcєji73khXK\}mKsnIA׭axIi5>'K{F@xnx޼M7<1624_.ļ[HgE^Ȼ#;([FFITDP=M$ ɹ ~_U䵎edITBx|g?/b?~U*_L6:5cx>Ϲ@_g֙j'mJÀGE>GEԖ[;ʗ yPA;[(aеM$3JΉ*I@W>ŔS~ n" ś{A\{-i=]0־P+ryy;polwYؖ;[}Dyd68)nF2 隻oi$]EBV+ȘlzѪiĖWךTѸM((u#ס敭վTɌ~}hŷ+|Jj{Y/ E0w}1Vm^46VHR& m02Hi^QEZc̦yRcHھitgH{Ф7y(~A;$VIG5O4{C jd .ׁV<+ Îzg;z+1 ؝1L+mI䔏;?epp{UQ]p;–w˞t-cVUoAn3SCJ;vVۻd ƞ ՠnt}:YBj==o*% Jyów=i ~+9H~.1`W=omʻ((Q mP8eZ-hku9[.#h۹Y08=+mM^YRطDC[VBַ qp$H KrO*N~_Z6߼yKTw⥎UY67ojKn ~л|ϓO}_0/ X1RTn'֕NeVv?|vL߻wC w+U6?OzrW:SUul oigP]sͨK S]F_×bHJAur(=|Iũ{qL^ .yUY'J#'q\ŵ1BFmF;W(%t:K/VZkH#\PzWzxN-[Z4;ľmƑJb6*'o)Ȏ,(gc]{/hqx_MѴ;]G]$洰y`rt Wh ͕_i,(˴cqz-Jӯ/ZYlc?"e[#J<;izB[ݽqwFAk,g#GԵ[MM,769 .`Ͽx4U>L6(Sz5Z_|i}xZy-aόu7TBh3N qoJwޣc=Z~.Q0n`XqֽJPRԄc3’~^{Cxc3I6KjD!pkB K"E()m6 nP!JL6*#)_oY7|~/OmA1 D"{}ۙ_#z&d^#ٽrSh[vK lǠ1F=C!#*Bk{V#lF{uZd/c,O>teHv1b3N[3lEћY񻨸rpKTE;qܽFMZ5X!XXk2=if~R{P:mܑ57ns5mo5WCqڒ;1ӱ,SUor\{U#|J"]l.9jUYQWjƥݕTyowP_r4v4?.$v2?ȩ-7/ʹwc{vgR-`{{Tm\ɸu|gOvwS񷑷SG="O!i +*Ă4d^&0^Yz&5峲̱VF+ʿ{n@#˪VcIzuKHJ~iizeaOⴸfqGBخ~\I}qLloFB)~`^/{)I~Q>#J ܨUmۛi jH݀?7Sv1iwsU#?C׽_oC2wrxΆo'V-Uk5Hak*fk69Ny!HV7z}m*b&Hn_:-zնjsVHN1̀8<6_~teVLm$>|'J>|/ټZnn5 cSwτ.Ӭ,uku,i\$\'_|ǕEv߳t?<:uc{u`~|q KI%ytl >`휯j~;[jS|<]jqwp2On݋{8Dv(9]\{3^)9e`JL(/F9?O }6iIkge+e?ji8@rO5:u=F=e&[99"\+69kk_XQ]Yֱ$ےxkm |2hVeIU7Sr)\* ቦ5Lo[luӎ%H|t (YiZH̒û!3aI +r# ܒzW'mSE$n˹jQH7s[(u>kվ!|?5cƺ|ExݲiLу$'Q^q <]:팋hZ[,)?w:y3Vy^Yiz\ [2 ,3 !qEu|L$T5ҵAHŵف믈f⊙…g}`N6v{|SQ5Ž,-9&Wb4R6`viiA|:О4VျNq;b7_jv0.-|o!$+9 *+ `,F-4 k!N0>SO_ m)'D>BTQl?7U;aBirO8X]|l8yx+3 ?EſvR;~w ryOo_LOEh:\iV?t#fU) Ɨ7nk|iH>d)郦ܝV?b|=uLh~$[oY-8ۆ^_=u]ݮjvw]xm}2D[* wh[eugXnLJw۹,v f2_~iaBVgu9n٪\\ ߽Ffگ̫u&40"mWzRȄ*rJ/ #ԾK>틵+/x}F۸SsħUc ۩Z)Xba|椎vC^VcڬM.wwlQ#|s2GlG$Tmpޅyl t~wTl5*÷ޗq>Íש|Hv?6ߵ+&zNn|uHv[ v$f(?t~4+7@{ݹ~{zㄳ/ T}52 y^w\̝?/?/'v?QLl]˷9 EK ooX_jgLb:y~١N6#5_muCmOYm;(P)\ZlF{f{c=Ǔ$4/ eq'noS(#uXje{C)IeavGJwѮU$_B-sDc 4c9}'$6QՅX>r(y g֝UuYXp~ϠkֵK_\ΖVZgV.7DFr[@+6!MCN]GJY^hBm^Fe+kwol㳼;ȱ6J'5G۱%oZDUь$;{ۡw*Ky5i TetSOeګ~ѤѲKa*ۯVh[M&0 QR'L|ǵ$dcKút d=ŕE,Rޥ[8E]>o`K.fSρD~q /x ]cJo!܈N"6G'oV/ayF۬2SG*?ÿ 'txXx @'xFY!^<-q$4o7Fwݎu|O7YaX+IXƺ nvtm2^} ڈJMXV}ەQIoǦZc:og֢YW?1 з9Wk;*25s*,hʌ:q=ݕq.O2{~_IV6V.ֶSܡg#%TW^;W' FOG`)W~'v­=jշ*&񎿷R)}lÏ;,L~he==i?i-[i~`8bE7CFKڤ|&'wkv?(Q_Pù?-֞u?ap: rxKݼo;p#+#[p\k ,+ >7Gg6znϗY:N*2eMߍ?b3.g*جWL.< 1 :z U͟/N۷o J k=i2SRw7[Rȱ\N#1RM}D/=yhT/nl:8ljF7) ㍧\_=Zku2ZB&A~GQ]ۀWT?=B̩"67OKFTR/}O7Oa>ӁܡFqqTJ?eM8'>e$c٩sA7Y&%?fO߅vƱ7NM,3fRu9ڒkmGtm-u+ ]-q]R2˿ 2W ߩF>n8#֩jV}orJ&i!zD2&ݟ:֞Ȭ!Q4lnW>S~YWz6PrzT^_>{֝1^>^~lgu`α J.q\/tʈ4MA?#"lzQo=9ȡ#ݷː:nj83܅qR2g NTmÿ'Ndܿww҅~fX=Ҳ{w>~oeco= /Foo5#/S ̻ON}9Sv:ENUc{(Z6noڕwچ F>9UGӹz>UޙT54=A͋Yd([>^16?_;wvʿuqt?\?ț_w>2B-m{^C>ϱ~8OvwZ}l֗-*Z7*hͷm׵Kٙ~_>:KHW{n/H\S[捜2NT*>Va_rOCSD.0~QҼUѤϨj 20c\PRD:2@8I P?cWc|I,v n#cҽrp~?x;hAm18 m8R/:wi<>x}c"iyj>R{-Eyy#[?$+ ^+sjm8}ziͅyP?F6;MnϕӃPE.IۘJ~ߛV/Enu(-Efx~rkh7zYRI[ݯ2\ON8c?{i#T[sZ&9 +ydgN2˵!VMf܄³+b:?uݝv'8ֵ}F:έi.n=V&0o uJ۬1$>%=۬(AfB9Aj v>@W*c Aڠh3:|'ǭE1ޭv`?\ҪGov CGi7H{mLw|}S~B7.O7myRT=`k73xFfOWXKIl涗s3eϥ9z?ݢ3c'OXf?y]犫o Mv p8ku06;;qv&Muj.b11OGGzSX̓!e[Gwj^7nH_oʕ)VKm=K}=OF% Tyi$M ; u85;[h^wG03,.b[1[k "Gy̻W>=jiVosNJ<֋[mnm2ۂRz[;?w{g l"R9 c#F[F~[[;;N-DیW o㴷>{62`34cӧVݟ5y ؚtd{* n,us`Aഽأ YJ$~Xy i> ,[1c-Zi3B0d'q§qk.%6+(u3XlsRvX9VbW>)*&,ǚ[e^K^Ý>X3 5mZ)a1o1cH+>卝8;ntI$yLI/7@ .VfurEKôJ ;Ɂby6on,1ѨQp<5߇;mcEl!,A,ЙE!h/5,fo'sC*O";2v1'>i?$tOk/>rc#Ҵ?{lw^[b/_őh}ޚ,*8̿1R"m{>'X:<ֲǶKp~^KTlt{ HQ"R$ַNKB_Wqr1ӽYU]hQ?.O=و7˳`G٦iGS{V:viqQi#2yy ,>iʗ] RYUrc;y4Vmqv>~^}j [v-bhddݸ0=ciwͷ5㿴ŽgYˏ%c|3hxq=Ky濺U%)$ 2HA9&-/'}^owC3Yxv)!vJs!*p wŸuiuOh7oq~6lkt&S$ #ᏼkt ^h>G%tP^Fm|^\\ל[uBNynam&F`d!짝ʿÊ؏5mSu,dEc3lIA'q]5w[. $od\4} diw,Jl!-x{TwlKy~ FPGAe'̟W%~S5٪DWOғ`fb[q鷠Q[jO6"|=icEܾ(/T-37~y1b ~T{ }÷ҟ(]ޛjme^޴4ݴ})BҲ8;ߝ*) *~PxU~:nڳ|QJ6(aUsylʑ\v=)˭Z 6 g=jox m$z ue%7\uhk5xuXc-xS`t=k6}Cxb#ZJFhP1j/=ۿӭTmFsZI[+?,sڏIfs}?4lUƥb]{)Rm82q1?yQΛlIǗ2G%BukM[GK)V[{?ta ..B/v\W<_N5h af$6ӥsַ*K*"p}:q*)hg6BkxCR u4̍Y] eGq]k|v񟙿ZU_q)fi|51s~{UCkmUSy ם:qbp{rqu cW{˻U~7eH2BI8X!osjVpSoy޿WlqF;+KRr zi{Y,eTt+< er :sPGj"EХʷ8$ -jFY[EuK3򐼚5|T><:ZZw"5Ґ,[I`  }x|IpZo&VbE8p߼U$Mx^[]⮣,#dZGbޯLT![WnDuw&f⣜ܞ1[?cbV~kY,2D n`0?ZW7 4+KHOLv4~UɼUKt[h աCX/xS2cF"ľu\\&xJc]|mqxE]VX_v†9"QG]֏#91X\^VFpaONb_BHU~CnX)G>qN[@q/ýiI!erq4~o>!p6 Ar ii8ԣeϖ[mWvA5#|uo- èDɚ[U2f1i ʷ~ZX?[3W6Xns╾?[Ep%$v(tbu cZvOK}?fӄvI]Ѿ ?{09bn_=#::QD.* IǨZY*{W<FcsbE&I6)`KsLXm^CD1F}/j>nmO7?EpqhKV|HK$?QS~t ~ ąK/km*O>y,M:Ki?uJS@I>[/MNxuf9p3 <"hs7|o$jqZx 7|`6oMsZeR]|6e#qqiWfw*~2y:$ݻHX S{_N?ko<&O[|/$Y0?v#X֩~|뭞gyc6$=>|ʻ-u"6q:** I¢sĈ;?F=Ȝ'i֔]5Oooru\.AG4mƸ^Kr}~ ..b .6q=1LտibZaE䂻kƛH5C}:zT q5#ƬG}tzO!2>ݹwfX}u\n-^K{To-zv CyY,l>l?Lq޲Qj~ңY.L|?{ޛ_ ^i16ni{pw|[٢[-gޖMlmhP_ɥ钡Ö߂N>^3!o&-7I`y sVZy~9`Rs\>\1\T0~T^t{^6_OA.eH)bKn@ʞp1Wo2-xB=vI2#uB'` U."՘nC9Lr>ݮDŋ:TCu;3>KM!ٞݖdLh˗9 m玽ݼn6s 7 t)3I&VX6g6m Tt*` *s:Oo9V͐I;Q۶ Yo 7qmV99Ge極!g?CeKu`9(WkD"YQby{m.n8U*θt\iGn[Wd8o+zvM3c,q7=4hI`;gQ.۴-ggnCD5vG!vl+e#vkIᢾl`N|Nzo~j/5cC9ya,NWJIkmhfqr gT>tux"Pf{zՆ%OӮh%f' {<7 H<_eB[SIlta/g>efUȧi5՝eu]gM*>$evt\gV.NʠÑ浃oSx -S#Ҋɺm7DF{s}:oltr$4pCr ~oU'k4#,2Cnp=?Tx^RR>77>RpqӯJгu-5;]T;0@IqZMIQ#_[C*x2*|Æ9Ny>upLL@xeUdrw?.9Z:^[>^$ay#8aq֣ԵZFKy-.˳A kw] g_O]*]*94&fn~S0qj$[(daȅ~@uFldoY^٭? 6=f},m8)d㍹U7j&݅ $AaW4FM[EyRܼz|a7F,&9>q}_:41NVePybY֬h~;x(&4|9'̊Lku@pli~"\o3~q$Td*qsO>5eJ|`Ɋ2Wm1v.xSE㑺6c9Jyw3Y]+OuinL֤T\ ުi5OƦP xf~c]kyv8'~OZ4߈W n-l-icv&ᘥfs;Čezj玬fvǖYhY[a29דcp˧Hoiyl-g;}=*Y5WP|Mc 1HN5zךҲR%%g4T{4ӞG4Cxσf̎%{x3F>c?/<`vWԚ Hri#hOI9荑=y;8!bV8Q,PK?YmDM'^~f-l]KëLPs r{Uxl4{U~u>lOl0m~Qw<%[uºK<,~"Qy…v t-KPkdh2ЍZIg+IqP~ǫiٶU=bIYH!pzJ~+_>3I3O7c cGYZy\ p/\gZc׼l ʑ&Vo @+gzi&~  ]JG0H4]oe2MnI|{vO_xhuKX 01EkoKZ'dh?0 M*xl(mi f4|cgKԴ9Vvcy6ذd1<ϪջGēH0H/X?>~;oWrnN\26׋X;sJ0qyyR*:$ח$P"Gs˨E5={j7 _f35 [ei [V!zgZu0Em9u!s'S-[Z] 0)L#ZoM|¨vL*[Q) &[o;Nû돗ҥho(A\8G h-|G:۝f #Vﴀ1qip^U[ |F8*\[u G&d*B==g܉YW^HZ6lV!KmjtmAjSs*2<6::\4k"R8ʸn ;nn.aphW]Ab{ 1R[E})<uO*Rnv Hnt(Ķ>R$ʂ$RSfzrQ[x{rz+>PĤCx. O iBfI%b5Ga(y{Y*ԯ-0X[AB9WW1%&Py jOYa(N i$v?QӮdE$ĞAٜoa{u0<j^[HIY*wqU,gp"cOP5Vңdy-87y#ܚ[h<_Y Qq2Ipv#eN::a?M6ۖDS%[-}V˙9k7O4ɎpOŌ~43CG0r2C35v; ovuI-ezmcs}ڱ}iO0b1(9:}*k}?{ekϲGx@czcDRk+e < 1e5nj1moaj 9[Y`QZfB|`TuןmK#%&E`r? uYhe/#ڨZ+tl=麕y< ֫Tn<Ì>;[LXF?+T*sڅFψ%ҤE AK0_Cd 5e\(uY{D08)6~8:c*>c> Qdz9}Κ\ɷr1_[tX>3;kC%wPk G$F3HbBzr~lu[ˋb;.Q>,7zw 4q]e$e2e3橬:9fEc$`Xmeea|t`n}Kn;eoB}ޢbUddL3Bn2AcUVXep.6x;@楷{m-nd%d 0k6G^Hooct$L euXO,7ݴPDiАI*FHϧi fȑ?-™Xʂ9B:[MWmEDQʬFG5zU?uf%V6_~ k~UȽt+j$prܞ:dmu.ҩ=Cݻ,T*}:=]dn @HvD'Bcmњ)>hY4! dy ?غ->{>Uȧ9 3_]-׉;i֟TDd$Rr7$t tk+X{k ෙ%`nTf *ܲ_ˬEq+46I&'rIy'<|)i춷mkCr0XV,Fy}{[ΛۋәZ8e+&FzvSwκ<۷GWU~^FJ;u ۤP"!mxv}ZZH}KM䍠6']չXoa7p^ AϘoZcx/*O#I$ HcC2յiMbS*1̪AHbzpHM(MaQ^3+ϯZ]H7(aۥVi[i"|KrNy\o4/3;f3r?=IY Ӏz ˻1OאgH-F ==ַ158dq vdRz?Jј2G.R,$F?Xd_7q ?ơ_Gkq@-ʖeb0=hqg6ڄP19Sb8JIaeD,.*OjIDs,s}F}Z7 f%9%5.5Q=*nX͵CtsOyh^I@䓻a-5^kIfVV&43>?*Ԏt#/,5Y7$NrO LH\ sad-Bk,1ρ,7pPdO;or=ʰ{ 5]3\s$Ŕ~n:Ukƙ-s<qcvLI la+ K݁g=›UM&Ic`>s[XkCTj7OI})oKo5L8v+9Ke⦼#{<З{CӒIoێ=(swb5B`q͆Qs.ȗ [HΖɆdUT__63Rɢ7"1m]WXUarJ!e,2*+6ek]:]."p{ۃ- j7+BN6$RvU-CW\;0rW,HpZiws^]\^&O/`6u=zV/xΑjW_deH@j0w_j9͑#Iq:6[+! CU~wEQ/Ofi$\ER9UE*yo:33b8'7jU6:&| 7cʳqpu8PAꞋC=̖h:F~F=nҫe++$mOV'_ *MBNXlfݻ1H?tՖd.z2pR[Au kKRų>f7ddOgXt;A#c'{})N gH}wU}t4?/rٹG?OiW t2'S& MqWIHfWISƫ\\\*4A n2X'5iMpH$y~2NP_RyJW*sG=N̲M ̽Vf-d;8+8LYv2 6v8[^K Γg/o6 2IdI>-qq8a,˵ [ ޽ޗ{io#[\h6WAΟ vr+mcS#5 `<ϲ9ϞU dư*۞MRc^o_ZEl" 8s:U>M.[OզBC7Yysh[zݼ֩cw9$-1T6U?T23/ 0UF3C5]J&%2W²/ak&$MJ8$UYi]&$h \mr~vIl㜌YGYe͵J{imo=~S#CZ3-fH$x>MkАquƖ7WJ h~PQJӵt>+8/"Ğ"&l7#9Y; cRL6k(~$x$aҭGͧE<vqսcoN 0YFӓ, ! Y9z7VO~ҝ䨍@# iw<v4Mam9dv=ˎ~cpjYY[T33J'Mnb 2Ƒ8ܳ:φXwZӾs4έtޒAc[6W%O̅4&i=:,,qng$21] IJxn8R0G*ZoxdFȠT1)S隊hvZ=V$Ӣg&i_rHd T}Mդev.g{r T/XTk5D2!t >LT:}YIQ']$˒@\|ՍSX=Ƞ4Gg#cyCOk3?(E ǎw|"uaWU gOb09b!pcˑ$Yj-vōdz+>|Z%q.Y啺ha#Mui]2CXZV1%vgU,kh=il|ʈps?JmE9$_֭50ʦ5)%s9MyfWj|&pɏT;|^Xjz6y=:f6kT45xD0 MT.m);VփqگۭxV%a˨ܠ1jOUil|Š Eaާb_.&`hoU1GnY&q]Va#D~1Su ^4Hy u?chm)ިfPO*$)JS)aojWupK"w'ÊygjaK]1+~izd^[<Ww}qEd$T,aU]*Duu" ܼ ԓ[J+tخՉ#q6Yo6%Oʀd}Nsڪ0⨖Q|9g˟ջ2s48pV6 u}km[1(BmZv^.AcY#M4Q°VQU4Mb3Xi6wBF߈/8$<93(gu[iUzcs`f]BRa W2]PEqn+߶}]?No=if<ه/Diyc1*RhiƐU.eOʓ24 1L!\U[gtd$H>sn۞ ̖!_xci$|R@=L6mo i݉0fBQGugwy\۪"wRgƴ/Q;[Wp |"q~^#OG0;o[6sPzODWLA# @xrQ-XAHEs11Z%oCX"Whb_ wT7z*nK # gtdC  Ny#~$H ) yw} :\ An5us 5oːc’lcP( ~Uf؁O|V,|GgmGcy}̊ e\tvWk'yq# Oբ]Rhnңqq41 5qyg S_4vGC+0bz:}(O9.&mceMihl~ls0[,$I:0C͞@ߡlo'UHcTee= wrGZWfK_um8>jzlf7 >6oki4Qb$"\%Gi]yq,b ̖re|2g|GT˩Xα/d F;InTK;?q'#$tTeԄup#Uy |TqRnZŶjck81 x^"0;I+yûn|@TcrTb5{`G;s Lp:?$–YC,W"bS]ޒ,A3ƺ_躎2鷚nw!M5 HT84Mmb𾭾v%n2P8$zn,k}cOl~yܲg}x,2,P۠* \zu[۫º6s$J#_ΫX1\[2x-j+cT\yPFz k&=[:UZi Go!(\`r83i}3\kHd;I;9=VTu o?ؖ,3רJM+vwy)1zmCg}4gq8Wڤз_OdMIƂIqw_ue\o䝇vK4:,m|:n$dU[[KeuȀ4SDɟ(2.?jƋa}tyȠubR8*`QþTniFAL%Bwf[,a*BEW]Jnۉl%ʞwnA|8].l4~wێ}j~ek lacrުkq-^ZˆO+ A'!dqUMv}:H-@~0nbHYu-Br.>ySlz\DXUCcrOj$hu-x >ϴ| Y'c,_nI<дVF9 ?3u oLNt!<˩$:c#ץY-}'Eɫ1(moK k䉛HfmY|~~ Omy&nJU056zmpNI1En\7}@4ƟMFHfլﮣR-eTql޵nt~fKͳJOb]85|ڌ^kZ>癭|>rzsEW#6si<[#c#B&Zke#Ek*ƌ@/-[x%0+;H3L>$\̭Xy@;iZ5YϦa@7rq&]N*El8ֵki 6K ?(LMԗz}TO1~bH_VKq`y8N+Ӧt-ݸ >BkTnNzz]eaELH#dmk.Qrst!֚nͻlJJ|6z#6qs'I~fEq?~an4 A?6)09Fk#l\G"_`}A~@g-p0 49d ci^]J59 Ewx y6r1fn,W޵5݈c2 kjVֳIm%ţHH }}iFS e7֩L;g;ni`w`{Qޛ5XcE..Ueo6B;PءYp(=MKWؗڊgX#UYy>-q0S2a&b85Jm1~ٺ$H3}2NYMiC 0HPd]ܒ+pGqVvZk[@ZylUZ]?V[ sh2&cQ"c~os5wQE1Jq鍿Z,eIvp ƭRɤVk aCYUMk_oip]EfuS16=T7-e<0>*UېOL[Q&3iE&`v79ܽ3K:F}{.]&c px#ҥүۈ=20|R2^h ζtzoOovjw?ncAIcwҶtټ<:;8)7ʏcͅoҙ7ّMgh[9}go8fɤ~[;p3 ɪ冣cZ,{Ң 4ZGJ2Jab66ovAs >J=C@PlE996UKS5-?ǨAe)-]J3:=qXX-z|[uOB :Px&kP$xqWoFO=Ej ?*E =y{U7xׂO5sC=ϸ3n*HxU!}>\qS&%o(D~z`߆.Iki&ԌzqNR×b^+F[yGlֲZmcVO1Eέ &fI11TT;l~pEq;cp9Z))]'jy`{iFel2cRidIR1AUb3ZWZM,^IfpvöHW(ȳmPd@t]mW\d>]J.}qqt|;, :&\o4?_y܆̻שd-QԵm-(dQO @V,Q~yFMqOZu:-n56RisB _[H܀Cc5uً6_,szGjyC#5VD!|̒rT\+>c*尧w)G*w%v29c⡸a~SsU..R)x^A?tzzzUۧWj[K"1%cԬm_@ ~ѿa;d%(9 0]~`-R6lt Zhfdjrڿޚ?s~Y5g)T ׏+ά.@q«MwkJVy *)-oPAMtk{fId c(rsNXX^-!_ik$}Mӌ;&H l1nlVyq%I 19=sMs\Ku|)Ffa@}Kd^v܇3#mr*CutL;mҲ #B77|ЖHQ5 z6|"g&HeZ.[\2\*Gv#xkBiKSɂ ݷ0֍KGu+!='Ooox%k fV+[cq ֭c-<7^klH? Xn4y$Pw? 2yC2͏,Ak_*1TG)S"8mwg+E4>Q&u EeX%1Ū^Z؆iocԓ"^ZЇBЬ"_>022|+nU|IiV"iZ Y #3I(>D&&mq5Nioq{6A.> 5kQ HUG_^zt.PCKG*8rN*]>[K6k e4j|{U;=㤚J\pF(L1q_X?6KEW:wȹ)-~.GAj(uFoxfIyИ9goTϕ=͜PXo;FZ]G?Z{ڄw1r)Ϩy{P;*4k>m<ݍ{s?$*ulu2VΆm:%70=@ssBMtx[p"Rg^Nx~Zɾm=x[j7W?}x4DKϹ5qᕒ'ϺtBn,Fɰn?Ju+K CmlbnaIF $sKVKM-&{ m+`R eԴk{ss|{9n& 8d NۯĪ[&gzqߊJ,.R3c8O Zu*;܇'wd*˞?> ݾuz:y;H &fޠ*V-ܯ&]2 2+Ft5)>jՌK.9ˋE9C#ٖ,N\go5KO]p?^KVxl⴬U^M9IR'gkyn4۫oGj+qip$k,jO`G4I_0Ӣۤjɪ]]KӬt)/~[!sQ5Mx";p~oS:<[n.#r+PZ]$-#JСGHn>%~GxN1EL,>)WFW44*̿j0?ڱ-m˩opC\X\ZٳޱʴԆ7nezKvWԹR[CxȲ Ȋ6 Xۻt5hgxے7Njōɦ @ĜSLMr.uׄdS=;+)t٭5XCqߞtC5I,.0O /'K54># ;rNjK$А)ouoi~>дݶy"Ӡ_Kg[;re+m.ٳP^_kLdm+>PgC?!Y2(ǫbkGQ_>Q}," n $ox{Xy5u[?t\zt xW 5ժ\:u,G.*/n c2F7&_iȐii^2v)G`+Ja7;M2K e^<;4Y}ڝawn]hF'1:bzSٯLvv>BIy$rEdV}y5bO8˜Rjz훢>L6tڣVԭ^km6(wffˑ+bkګ'K˨tNE;P|Ic"ZI&R c95JmSIp& c)^XUXZŊ:Ơ P2 XԴ_iJ(ryA ?t+GJ\EwnF-f,`scI-!d)@>Ҿl=y.ԢM) ck[8XEɸLL]8{yonUEGSN*ݺ6˱`d{v=eZi.n5p#kxeұ./<s ]D!A+j u#uàPU&ubhE5Ks=d|5^U߾o+8oB趐ʅL~)\VJn5-bi#6[{aoj$* YŹ ⋌D,7: a3-̋띍}rj|Gc?,aG?w3k65q4ZãG8柪Zk4K1n#?(/JΧwm%OGěx>JFYc,[j[oBj^7l.8nj۾aV5U oo&+)u 6 u{ HZ/7)#\z f]Du{X$bwy&|nZ lF|E{r8Zqq/o]쌩r*$n P%)~b<,,IO_ Fz UIB#|E<n{U ytϟqp? tS%3^1V?(8lMew#fk"n6شoFC}jŜU_"mϚT| 0Z7Z .߷8}qV?-ԡ[h1M2ڡ;I~/WG,+cjnw LYS>_cV\JpcP{Op yr$o=ji-bUtcsz|}jKtvfr;PyfnqyswŞ獬={ʬOm0K;~:^j[7>7,2py#扮mm$dG?#3ÂlQt۔vHrLu2})mp-{.녨t_m4lF·Չ :b.t<@`C{.<7[}}&1\?<* 9l:qYA}ty $%F˂9o`ךk=.sWX#o gK- I&tE,t|qZv:ܭ\ht;_5$3EnZ?$-sm6|S420~k2:kn-ٲ|ҺŶ* m'w@K&o,5QKvU?8#$#u%T m$U?MS5(n.L7dEHY{\ֳE5AbLw s9nN7ڛ<㦱F,~[[[uh48;[*\.juIm? G6BiO~P8wk[w0講~*+ZZ4Oҭ..5PXihkWk p`LO.U46Ay5Ku#[־uݝڬn.ۘ sP.ZB}'>RM+ºC?5ŭsN39i-4+{P|*o\V~(4SyZr",[[m*ڥΩ,h:b~i?]tO* ԑAza/Vj4*J7ydprð wfO'Pe՛Ll̾c{0~uj NZ ofbOp"}MhYcN3jq}*6XqWn!1HV9{^vjnf[a CbH<%uӓHcn=Nju;h>6 PfgiB]ZBz\zSuA0b>Q-Zsk\G-c7U,|3mu,͈v8b+?\y Y70#e|J #M6ZR33(= 5be{} q=9G n#[,qGWuX۴WՍawجI鱲%i-c"<&g|ͣjDZ貙/u +ec˧Z?aik?:ӊmT^P%Mv_sZZ==C|J}}듛Li6!g_Оյ9~QQ֝;X) ~uEt:6sF>4UvxHVmlvپ2KwuW:U>u;HC-;BmJez( ǟy둖SIKѵ/q>mKNIC1=@?:M]z1͢,}*8{r9_IΉyKtYn&OܜPGԴJ鼴a8;Y |!Kj˅~]L9Q}Ȭ_O}J7+%z÷ʑaCVCYqЖ*N?³-h,!DatΒ(صk;L[kaOXy3*Jl7 46AW&@iʥG25\o24i,bQO'F'ֈlenϦ:ՅY6O&]lvROE]=[,(˲9QʃKzM* )U;IjMEՅiggk*nAUϨp]Ȋjd!}FNw'fuԥI?fry9V=ᛕ[jq,Ͼܑ\Υ Aoֱv'ip.E'fxkGR|j!4WMKvA1-kXiTZ@(ʖXt+= iv]3$1~55md>2մ12@=eh>+>4֖cʃucܰ/--U\[e]8ïxD[ht|ITx"Q{E0{uuqz_/1:rOOcGss 絋8(z6fXP߁5ԏnXvsYl8 oΥm&dى8Q-[ell:e Zsija%9ˆp隻ϳ]#)*}|A,V+cB ⭣C,=qʟ{^S"4_ ufڸlIo{hV]ïڔK~bߪB//fϷ{ėI:8LaP۟ozÁZz呭N_F7!7߯I"X&GNS7 7*tw%q}F*Uү`E6mv=l%y l_ޏ$a[<OzšHφԪǮ1:\"_k*.2:Tv:,0Y"EPNUϰ"C9^>`s }*+uIMIP;I(!;Wkbل;㷚K'xm {V#|ۭF"T&n~\~YZC.0$#Jayu}V? ~˩- i#v8+Vփ-n8^X[=8je<o'toAvw7[Ozm-4:k B S/'hOJu寒 !RJp\NDy=:Nl4l)Ug4ogZ۸2[mc6+3xvT~] /rF:0dbЕy>{'VGe<5}5歝2rK~ y0]g=Nð]3#jInE7JOy%b_o7M֗o}%S-ԷSj6 (>> Jic Ƶ>##be7#=:Г5l s9fO;K2IЎYF*[uW.pI܃G!?$M:'*ז4uSꖻStlno$宝(~X=߱Y^y6MFɋȭc@D B y4/zt$ҦgóEV?\[}=9 \oK-3Uu']|7I%̋Ma-njɷ2\yc=IsFu>O?FtM=Nчfȭv:MBpYͿ3W}KOLgx2ar=U};L${1R5$/qU5#TͅE*<\M2;úЛpygӭ:=?ǗS36o[^:íJK#RN&H2yff+[zm:/.${y9ijanOhC$ѣ[,}Aq5³\Y:%뻸yVג1CvU+Io,7ۦfcb,dU{y YVmJ0t?j25jSXLѮLvW{h-Y_nF$;~5aKWPӴ۸Ejz [Ү[K9l]L+7 d"|gh|Cmɱ ,ooYbT2XU wr;cǨv6kv:zON[ZMDž-|oR/f6]z)ŞjhEb7g#@ҵ- P1e:n7Ds%$`1pGT\_Xyf_;hp?%x&iȋxb-cjAyK^\|sM%4Sx>PER}Zt }:5Zdv&ć^S[Ȏs| =hm#v mp#9Ҩ-`*;Vf>[LtXZxchA_,@LxV2AӽfM Zڴ|+Č~4[{{{Md/QRZS<#w#e\͸Fno&hKƩ]v^jxQK3+d;ڿoit=F`㓕^3ҵTh^JǓ%P:5ַa&[@c!?0t_~D|[ }G5b]vӭqquԒԪ*]Zy?/dvao1s#OY6{TWդn>Ӷr`1FU7%żgYwZV[vJIdKqy#loȝ|ʖ8Ғ{?\85׌&N(MIugKvE]<-p#WrKi{}K~(o4Y Ьqjqyr-:m:dgJ<H'n{-4ċˮ?!Wu$o4= $*74v=Ms^^(dP|8WyV-oU<@Qno|5 z) 7M<$х^.WTrX]d}0i$QnV[zd c!i|=kWՙY&'p=Njq]RmvHfG=SI GtZŕ pA60)EIw w}[ rVM\ S-30KC'ٿZHZPezXjLLzyU)~2?-F[=6yB6_+8\֥ mxo$o'$&fþpTz4ɤ?7*ӆ[F۴hn&b}uy2+,Ò\^>=8Wnu ݜ "sȒBc+2 I i(\$~ W$^M8^6[K#=j-?AѥUX A}j;V~NF4;۹8x)<1Z3ũC85!Qɧ*GDt2ӜU6ЊxCoJ4H%՘]/p=}̏tJR})xf 1 2$~[ȷ!]5c{8۽Ū5oizl,_rJ)j:d3)_G(|KsꤞX,pp8K]{91#Jh[[#-Jc-?ưIm&)Nacw艥 Ɵ$;'_HU] 4w[Wq᷼[Q֙Χr&6Eb^EU,MjmQ}mzX!C{qWEW"o ߈At{kTNVZz Olf޸ )6ŲH^ը_\u[_- +Z"[bX"銎<2YUq׊I-4ęKO8slB_|EԾXJ6GަluKxch.=+kMڥc'L)n}Vޟ+2#yx-L"egX97Vvzw%Î)^YA+#BNC$JhЭ㐼j{fI&8TVp k3 n9ǥK5ҵJ~IF>Ւ ԇ_ 6l!wn|<{K;kwj66ϊlƉM.R:{.喩-=b@/&eUs1ơTѳ4־H*.w©jZ,FO6E~# 14oŤ .3&|ToE%FV57Anq:w)5=֏yu[zY[_A&Ҹf}alhMB&kϑ6o\t7QUbմ*p CXCe1(FI;of,Oym~˺_d^K9m5ٴeX|_%Vhvа 7MIxa]BN j# u*o9UFG]EmV-rβFؖYHYZ7G%XpqUk5ѥ[5 a1c8>ԐM6wЪ=Gzft+$!\{JԼ5_"),}_nhUU{y67cO?j[(ʲWN!LA4j%`]+Iq cIG0wfG8߇i|?usa5-+!vT9VUGu)?W }U,-jS/we8{ԫ]uގIN7R*>epH.O`oOdm.ܷ,!acoZ}ul.=kCCi~u2ݻjx°)c9FQi躅,wٴ݀E!#I:}EOoHP~^ĀyOHl"w|'oSYTih wAO^5tv~ӥOexc\̗GO! ֆ0ׯ!&d6 t!X%=1w"B)p5æBT;0jߘެH?KXYTc)#۷ߊ};V\v7w?z]kmo:MםdU+SF2466-6MjWicy ϗwcbogujjGЍal/}ۑO=Ȩn5Ky62a N4W3$2\Od%uZg|WVvceq8R2qV~}k+Ӷ;i-عfW-3n=M<*Cl.cSh֛H]j"?{ah!p>oMuQq *0U_2mC^T[rOp]Ϋ1L+q* *Ct1փkw42{RTr#=r:_kon"YO 91\bt=8ttcVҼ֦G _3vutfҴӧN00yLT~>s'8e ص;vhmVQ:lkZήycJQHq޿dLjTʖ_ҩKsIhYNs^57p/$>F_ln<#\], qb\Vvl~M՝*td]ExXt<^G;Ӭ;v򯢺wyjԵ]F&x& R<שXM#:sWo5=0ȽTd<'d^z6}OݜxITxM_% ;Vv=zUo4jwG_kz6X%G\ugIw \&,sWSy[?GZI Ι9'ⲵ CUUb\Bq:d^=j/{}ªn ۽:VKxQcO>f;~[ŭb ^Z sP;fûAl_h ۦi4\ePvvgpG5h~2FscɊ8O㓎kŰK# GI2R/nIOUHܞՊ7r*y-KNkWEl=2)ZEI ;@ $b&*O!KmnQ,6#$`ǸU{5f7P3=tZ/J|7yb4QEkukqPjΕb?YC+1;gT!<jGo,F<7u'䶣fu$gcxI%/"s~F>,C'֤NhͦA[ڏ/͹#sHW~j ;\,77G?_q޳3t"X>~1V4="a6t|;I%v$[2/7u$H^,Kp%\zZ6^PzUPwf{8mi9oU9sHhvC|mɑREǠ㚩kCX\1/|^B5mY"8V!7RmJ;{ڰ$oy-bO2~r_gzCֳ\\b Bs^Tm) >|A 9}xm8Ү4ex.?Յ ԭ7K8urmvZ˪ʱ PN?fyat'C #ۊoI3eӚ0DQӧ[~,s~BJӷM$emuҭMgG$Ll6ZolF e|f{X\ng(uyK5/[LV:|Vym?Ds5:_7Twm[tyqy3tI[m,)'$qԞRZ«=o|/?#[_t[*E2z+4) kCX+6_݌}?$+t O cOakZg#i F8=y8t;E=+i|9V2iwWRm(}5zͽİ\I:cZb;Q.؋2+H?Z״Q'_~FH~>=dU-!S;gn:dU?ۖ;&gl0 # mڕS[dI8E^ ʇm#UEa}/#OU{\̾ \ṓ;KH֭"7x+Q "ZLN'֪3]^D8r wߧӊ$+=ȹ$͆ջ{;Kvn"tRkSA=#Pk[-v٣-pcqYzeu 919O#}sUż?:KLF3.69>=c=إ5TU|K=[UO FӟojHח߼{Y_^7/-}V,'ogeO?K.XPK)Py5y,v+cHSn@\tR fit}P6GO]uZ$vzm7#p=NEUյzΛM'rmmyKisg$\Wj=7@Y%xբu[ [[2} MKOՠ<;"?Jĸg' ztojVL]VߝjZ~mvXr 5ZYcGa2wֺ;dkŌ2aoui4Ս.a #P4 0>\ /CJA^+pM zݷiׇ٧!k?ZЬƛ,[mάwôn tVvڤQ㯿nSKԭQT9&7ߏaU{}cgՖ(N2?h{ya7~n&SϥW]6FK9H$ې5&v@,[Zեo" #N=:&gVMsğHGaü7>^.~lT0}Лy`y0:v&]K L篖#=8~JK:|~}hɸml֤7 *xcʺTPNXAiǒX\@ϸ`GFm{ }j to,M܀'e7tM/_δ5oEix7<+9;q_+V_Ri?s?li]Z޴k#V?VAko Cu}bXNjY[jZ'|?5/]&Sk_G٫+/\\oZ? ׏YλҺ;oƫ15k_G]--V/_LQsokxF4_]uWR?7yOzxC[ş{]~2?jw_ʻf_5/ KW-ԯrΨZǻ~ιKtJ55_C[ǝUS\_ տկϷ)nEf K˿|xo\_负w籮OMĿYKg׸O6[ASP٪{f?E5o?Z{}??5A7|K٘$$If!vh#vi #v:V l t0655pyto$$If!vh#vi #v:V l t0655pyto$$If!vh#vi #v:V l t0655pyto$$If!vh#v#v:V l t0655pyto$$If!vh#v#v:V l t0655pyto666666666vvvvvvvvv666666>6666666666666666666666666666666666666666666666666hH6666666666666666666666666666666666666666666666666666666666666666662 0@P`p2( 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p8XV~8XV~_HmH nH sH tH @`@ NormalCJ_HaJmH sH tH DA`D Default Paragraph FontRi@R  Table Normal4 l4a (k (No List 6@6 4B Footnote Text@&`@ 4B Footnote ReferenceH*n@n { Table Grid7:V0_HH@"H W|0 Balloon TextCJOJQJ^JaJN/1N W|0Balloon Text CharCJOJQJ^JaJPK!pO[Content_Types].xmlj0Eжr(΢]yl#!MB;.n̨̽\A1&ҫ QWKvUbOX#&1`RT9<l#$>r `С-;c=1g~'}xPiB$IO1Êk9IcLHY<;*v7'aE\h>=^,*8q;^*4?Wq{nԉogAߤ>8f2*<")QHxK |]Zz)ӁMSm@\&>!7;wP3[EBU`1OC5VD Xa?p S4[NS28;Y[꫙,T1|n;+/ʕj\\,E:! t4.T̡ e1 }; [z^pl@ok0e g@GGHPXNT,مde|*YdT\Y䀰+(T7$ow2缂#G֛ʥ?q NK-/M,WgxFV/FQⷶO&ecx\QLW@H!+{[|{!KAi `cm2iU|Y+ ި [[vxrNE3pmR =Y04,!&0+WC܃@oOS2'Sٮ05$ɤ]pm3Ft GɄ-!y"ӉV . `עv,O.%вKasSƭvMz`3{9+e@eՔLy7W_XtlPK! ѐ'theme/theme/_rels/themeManager.xml.relsM 0wooӺ&݈Э5 6?$Q ,.aic21h:qm@RN;d`o7gK(M&$R(.1r'JЊT8V"AȻHu}|$b{P8g/]QAsم(#L[PK-!pO[Content_Types].xmlPK-!֧6 -_rels/.relsPK-!kytheme/theme/themeManager.xmlPK-!!Z!theme/theme/theme1.xmlPK-! ѐ'( theme/theme/_rels/themeManager.xml.relsPK]# &=n 8m8i 8  _4!m#&^)?.15q;<@ @!%&'*-.036:=BEFH{ !$%U''**,..R23=45Z60:0> @"#$()+,/1245789;<>?@ACDG8@0(  B S  ?t|knswos|  }  - 5 E H T \    # + / @ D g o T W  -7?H  #-0<?HKW[|#'03^k*+.dk")*-p|~0<EMO[!CJKN!!$/6#*[hilwz  6 > x .!5!_!h!k"p""""#"#&#$$&&&&&&v'~''''(/(f(n(o(v(2):)))))))))**2*C*K*[*e*+'+a+n+++++++,&,,-[-`-g-r-----......b/e/000+0S1[1\1c11102v2z2222222222222 33<3@333333344443474K4T4j4t44485D5^5e555555555566*646=6U6a666 7777777777788888 8 | - 6 & * g p T W  -0<?HKW[03GI^k ?Ckn")~nu!&,6?Zc -2sux} !.5@EVZwz_!h!"""""#$$&&f(n([*e***a+o+++++,',,-[-`-----..........0/8/;/C/a/e/l/x/////D00000001 111102v2|222222222g3p333334444347444M555555555555666*646=6N6T6777777788888 8:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::N*>rbPe}. ^`OJQJo( 8^8`OJQJo(^`OJ QJ ^J o(o  p^ `OJ QJ o(  @ ^ `OJ QJ o( x^x`OJQJo(H^H`OJ QJ ^J o(o ^`OJ QJ o( ^`OJ QJ o(\^`\o(.\^`\o(..0^`0o(...0^`0o(.... 88^8`o( ..... 88^8`o( ...... `^``o(....... `^``o(........ ^`o(.........\^`\o(.\^`\o(..0^`0o(...0^`0o(.... 88^8`o( ..... 88^8`o( ...... `^``o(....... `^``o(........ ^`o(.........e}r21H!o am[7 } ;"b*$4`);* 2525FBsRf|bkGmkmwTsRFt wW|M~-- o\AY >9sXD-qdq8,0?@}0222@--{-- 8`@Unknown G*Ax Times New Roman5Symbol3 *Cx Arial;[xPHelveticaO oAmerican Typewriter7@ CalibrikTimesNewRomanPSMTTimes New Roman]0CourierNewPSMTCourier NewC  PLucida Grande? *Cx Courier New;WingdingsA$BCambria Math 1h*#g'+#g,}* [}* [422?JQP$PuJF2! xx -STRING LAB 2 : INPUT AND OUTPUT USING STRINGS Alison Fauci Pokey Rule    Oh+'0 (4 X d p |'0STRING LAB 2 : INPUT AND OUTPUT USING STRINGSAlison Fauci Normal.dotm Pokey Rule44Microsoft Macintosh Word@k@$8@l[8@?J }* ՜.+,D՜.+,X hp|  '[2 .STRING LAB 2 : INPUT AND OUTPUT USING STRINGS Title 8@ _PID_HLINKS'AXr$ship_yorktown42  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      "#$%&'(*+,-./05Root Entry FvW7Data Ju1Table]7WordDocument0SummaryInformation(!DocumentSummaryInformation8)CompObj` F Microsoft Word 97-2004 DocumentNB6WWord.Document.8