#!/usr/bin/python # # title: cdsstr.py # summary: Wrapper for Curtis Johnson's CD -> Secondary Structure program # author: Nicholas Fitzkee (nfitzkee at chemistry.msstate.edu) # date: November 13, 2012 # import getopt, sys, os, tempfile, shutil, uu, gzip from Tkinter import * import tkFileDialog import tkSimpleDialog # If a local version of the binary has been compiled from source, # place the complete path in LOCAL_BINARY LOCAL_BINARY = None WV_MIN = 178.0 WV_MAX = 260.0 WV_NUM = int(WV_MAX - WV_MIN + 1) ########################################################################### # Main Function ########################################################################### def main(argv): outdir = None outname = None minwv = None maxwv = None mre = None binary = LOCAL_BINARY gui = 0 short_opts = 'hRCb:d:o:eEm:x:' long_opts = ['help',] try: opts, args = getopt.getopt(argv[1:], short_opts, long_opts) except getopt.error: usage() for o, v in opts: if o in ('-h', '--help'): help() elif o in ('-R',): print README sys.exit(0) elif o in ('-C',): print SOURCE sys.exit(0) elif o in ('-b',): binary = v elif o in ('-d',): outdir = v elif o in ('-o',): outname = v elif o in ('-e',): mre = 1 elif o in ('-E',): mre = 0 elif o in ('-m',): minwv = parse_float(v) elif o in ('-x',): maxwv = parse_float(v) else: usage(1) arch = sys.platform if not len(args): root = Tk() app = MyTKApp(root, arch=arch, binary=binary) root.mainloop() else: for arg in args: if not os.path.exists(arg): usage(1) cdsstr(arg, outdir, outname, minwv, maxwv, mre, arch=arch, binary=binary) class DataFileError(Exception): pass class OutputError(Exception): pass class BinaryError(Exception): pass ########################################################################### # TK Functions ########################################################################### class MyTKApp(Frame): def __init__(self, parent, arch, binary): Frame.__init__(self, parent) self.arch = arch self.parent = parent self.binary = binary self.initUI() def initUI(self): win_width = 500 win_height = 150 par = self.parent self.minWavField = IntVar() self.maxWavField = IntVar() self.cdValField = IntVar() self.outNameField = IntVar() self.minWavField.set(1) self.maxWavField.set(1) self.cdValField.set(1) self.outNameField.set(1) par.title("CDSSTR - Secondary Structure from CD") # par.geometry("%ix%i+300+300" % (win_width, win_height)) f1 = Frame(par) f1.pack(fill=BOTH, expand=1) quitB = Button(par, text="Quit", command=self.quit) aboutB = Button(par, text="About", command=self.aboutWindow) runB = Button(par, text="Run", command=self.runCalc) quitB.pack(side=LEFT, padx=5, pady=5) aboutB.pack(side=LEFT, padx=5, pady=5) runB.pack(side=RIGHT, padx=5, pady=5) f2 = Frame(f1, relief=RAISED, borderwidth=1) f2.pack(fill=X) Label(f2, text="Input spectrum:").pack(side=LEFT, padx=5, pady=5) self.inputfnE = Entry(f2, width=35) browseB = Button(f2, text="Browse...", command=self.getInputFile) browseB.pack(side=RIGHT, padx=5, pady=5) self.inputfnE.pack(fill=X, padx=5, pady=5) self.inputfnE.focus_set() f3 = Frame(f1) f3.pack(fill=X) f4 = Frame(f3) f4.pack(fill=X) f5 = Frame(f4, relief=RAISED, borderwidth=1) f5.pack(side=LEFT, fill=X, expand=1) f6 = Frame(f4, relief=RAISED, borderwidth=1) f6.pack(side=RIGHT, fill=X, expand=1) Label(f5, text="Minimum\nwavelength:").pack(side=LEFT, padx=5, pady=5) Label(f6, text="Maximum\nwavelength:").pack(side=LEFT, padx=5, pady=5) f5a = Frame(f5) f5b = Frame(f5) f5a.pack(side=LEFT, fill=BOTH, expand=1) f5b.pack(fill=BOTH, expand=1) f6a = Frame(f6) f6b = Frame(f6) f6a.pack(side=LEFT, fill=BOTH, expand=1) f6b.pack(fill=BOTH, expand=1) f6aa = Frame(f6a) f6ab = Frame(f6a) f6aa.pack(fill=X, padx=5) f6ab.pack(fill=X, padx=5) f5aa = Frame(f5a) f5ab = Frame(f5a) f5aa.pack(fill=X, padx=5) f5ab.pack(fill=X, padx=5) self.minwvAutoRB = Radiobutton(f5aa, variable=self.minWavField, value=1) self.minwvManRB = Radiobutton(f5ab, variable=self.minWavField, value=2) self.minwvE = Entry(f5ab, width=5) lb5ab = Label(f5ab, text="nm") lb5aa = Label(f5aa, text="Auto") self.maxwvAutoRB = Radiobutton(f6aa, variable=self.maxWavField, value=1) self.maxwvManRB = Radiobutton(f6ab, variable=self.maxWavField, value=2) self.maxwvE = Entry(f6ab, width=5) lb6ab = Label(f6ab, text="nm") lb6aa = Label(f6aa, text="Auto") def minwvManSelect(event): self.minwvManRB.select() def maxwvManSelect(event): self.maxwvManRB.select() self.minwvE.bind("", minwvManSelect) self.maxwvE.bind("", maxwvManSelect) self.minwvAutoRB.pack(side=LEFT) self.minwvManRB.pack(side=LEFT) self.minwvE.pack(side=LEFT, fill=X, expand=1) lb5aa.pack(side=LEFT) lb5ab.pack(side=RIGHT) self.maxwvAutoRB.pack(side=LEFT) self.maxwvManRB.pack(side=LEFT) self.maxwvE.pack(side=LEFT, fill=X, expand=1) lb6aa.pack(side=LEFT) lb6ab.pack(side=RIGHT) f7 = Frame(f3, relief=RAISED, borderwidth=1) f7.pack(fill=X) Label(f7, text="CD Value:").pack(side=LEFT, padx=5) f7a = Frame(f7) f7aa = Frame(f7a) f7ab = Frame(f7a) f7ac = Frame(f7a) f7a.pack(fill=X, expand=1) f7aa.pack(fill=X, expand=1) f7ab.pack(fill=X, expand=1) f7ac.pack(fill=X, expand=1) self.cdAutoRB = Radiobutton(f7aa, text="Automatic", variable=self.cdValField, value=1) self.cdMRERB = Radiobutton(f7ab, text="MRE (deg cm^2 dmol^-1 res^-1)", variable=self.cdValField, value=2) self.cdElliptRB = Radiobutton(f7ac, text="Ellipticity (L mol^-1 cm^-1 res)", variable=self.cdValField, value=3) self.cdAutoRB.pack(side=LEFT, fill=X) self.cdElliptRB.pack(side=LEFT, fill=X) self.cdMRERB.pack(side=LEFT, fill=X) f8 = Frame(f3, relief=RAISED, borderwidth=1) f8.pack(fill=X, expand=1) f8.columnconfigure(1, weight=1) Label(f8, text="Output Name:").grid(row=0, column=0, padx=5, pady=5, sticky=NW) Label(f8, text="Output Location:").grid(row=1, column=0, padx=5, pady=5, sticky=W) f8a = Frame(f8) f8aa = Frame(f8a) f8ab = Frame(f8a) f8a.grid(row=0, column=1, sticky=W+E, padx=5) f8aa.pack(fill=X, expand=1) f8ab.pack(fill=X, expand=1) self.nameAutoRB = Radiobutton(f8aa, variable=self.outNameField, value=1) self.nameSpecRB = Radiobutton(f8ab, variable=self.outNameField, value=2) self.nameAutoRB.pack(side=LEFT) self.nameSpecRB.pack(side=LEFT) Label(f8aa, text="Auto").pack(side=LEFT, pady=5) Label(f8ab, text="Specified:").pack(side=LEFT) self.outnameE = Entry(f8ab, width=25) self.outnameE.pack(side=LEFT, fill=X, expand=1) def outnameRBSelect(event): self.nameSpecRB.select() self.outnameE.bind("", outnameRBSelect) self.outdirE = Entry(f8, width=25) browseB2 = Button(f8, text="Browse...", command=self.getOutputLoc) self.outdirE.grid(row=1, column=1, padx=5, pady=5, sticky=W+E) browseB2.grid(row=1, column=3, padx=5, pady=5) fbot = Frame(f3) fbot.pack(fill=BOTH, expand=1) par.bind("", self.runCalc) par.bind("", self.quitEvent) def getInputFile(self): filename = tkFileDialog.askopenfilename() self.inputfnE.delete(0, END) self.inputfnE.insert(0, filename) def getOutputLoc(self): directory = tkFileDialog.askdirectory() self.outdirE.delete(0, END) self.outdirE.insert(0, directory) def aboutWindow(self): about = "CDSSTR - Secondary Structure from CD Data\n\n"\ "Written by W. Curtis Johnson, OSU (1999)\n" \ "Python wrapper version 1.0 by Nicholas C. Fitzkee, " \ "MSU (2012)\n\n"\ "For the original README, type \"cdsstr.py -R\".\n" \ "For help on program features, type \"cdsstr.py -h\". " d = MyDialog(self.parent, message=about) def quitEvent(self, event): self.quit() def runCalc(self, event=None): if not os.path.exists(self.inputfnE.get()): d = MyDialog(self.parent, message="Unable to locate spectrum!", title="") return datafn = self.inputfnE.get() minwv = None if self.minWavField.get() <> 1: try: minwv = float(self.minwvE.get()) except: d = MyDialog(self.parent, message="Bad number for minimum " \ "wavelength!") return maxwv = None if self.maxWavField.get() <> 1: try: maxwv = float(self.maxwvE.get()) except: d = MyDialog(self.parent, message="Bad number for maximum " \ "wavelength!") return mre = None if self.cdValField.get() == 3: mre = 0 elif self.cdValField.get() == 2: mre = 1 outname = None if self.outNameField.get() == 2: outname = outnameE.get() outdir = os.path.realpath(self.outdirE.get()) if not os.path.exists(outdir): d = MyDialog(self.parent, message="Unable to locate output " \ "directory!") return try: result = cdsstr(datafn, outdir, outname, minwv, maxwv, mre, gui=1, arch=self.arch, binary=self.binary) pcts, files = result H, G, E, T, P, O, TOT = pcts reconf, outf, logf = files a = [] def w(str): a.append(str) w('\nSummary:\n') w('- Alpha Helix (H) : %8.1f%%\n' % (H*100.0)) w('- 3/10 Helix (G) : %8.1f%%\n' % (G*100.0)) w('- Beta strand (E) : %8.1f%%\n' % (E*100.0)) w('- Beta turns (T) : %8.1f%%\n' % (T*100.0)) w('- PII Helix (P) : %8.1f%%\n' % (P*100.0)) w('- Other (O) : %8.1f%%\n' % (O*100.0)) w('- TOTAL : %8.1f%%\n\n' % (TOT*100.0)) w('Reconstructed Spectrum:\n%s\n\n' % reconf) w('CDSSTR Output File:\n%s\n\n' % outf) w('Program Log File:\n%s\n' % logf) summary = ''.join(a) d = MyDialog(self.parent, message=summary, font="Courier", justify=LEFT) except BinaryError: error = 'No binary is available for your architecture. \n' \ 'Currently, binaries are only included for linux and\n' \ 'win32 systems. For more ' \ 'information, see the terminal output.\n' d = MyDialog(self.parent, message = error) except DataFileError: error = 'Your dataset has missing points. CD datasets must ' \ 'contain \n'\ 'continuous integer wavelengths. They may contain ' \ 'other \n'\ 'wavelengths as well, but they will be ignored.\n' d = MyDialog(self.parent, message = error) except OutputError: error = 'Unable to parse output file! See console for\n' \ 'more details.' d = MyDialog(self.parent, message = error) except: raise class MyDialog(tkSimpleDialog.Dialog): def __init__(self, parent, message, font=None, justify=None, title=None): self.message = message self.font = font self.justify = justify tkSimpleDialog.Dialog.__init__(self, parent, title) def buttonbox(self): # add standard button box. override if you don't want the # standard buttons box = Frame(self) w = Button(box, text="OK", width=10, command=self.ok, default=ACTIVE) w.pack(side=LEFT, padx=5, pady=5) self.bind("", self.ok) box.pack() def body(self, master): Label(master, text=self.message, font=self.font, justify=self.justify).pack(side=LEFT, padx=5, pady=5) ########################################################################### # cdsstr function ########################################################################### def cdsstr(datafn, outdir=None, outname=None, minwv=None, maxwv=None, mre=None, rev=1, gui=0, arch='linux2', binary=None, out=sys.stdout): """cdsstr - main function for calculating SVD""" close_out = 1 if type(out) == type(''): out = open(out, 'w') close_out = 1 w = out.write # Check to see whether we have a binary to run. w("Detected architecture is %s.\n" % arch) if binary == None and arch not in ('linux2', 'win32'): w("ERROR: This program does not contain binaries for this \n") w(" architecture. You should extract the source code of\n") w(" cdsstr (-C from the command line) and compile it using\n") w(" your favorite FORTRAN compiler. Then, specify the name\n") w(" of the binary using the -b option or by editing the\n") w(" LOCAL_BINARY variable in this file.\n") if gui: raise BinaryError # Parse Johnson's original basis set -- see end of this code bs_titles, basis = parse_basis_set() ss_titles, ss = parse_secstr_data() # Try to parse the user's data file try: data, dminwv, dmaxwv = parse_data(datafn) except DataFileError: if gui: raise DataFileError sys.exit(1) # Try to make some sense of options, guess if nothing given if minwv == None: minwv = max(dminwv, WV_MIN) else: minwv = max(max(int(minwv)*1.0, dminwv), WV_MIN) if maxwv == None: maxwv = min(dmaxwv, WV_MAX) else: maxwv = min(min(int(maxwv)*1.0, dmaxwv), WV_MAX) numwv = maxwv - minwv + 1.0 if outdir == None: if outname == None: outdir = os.path.realpath(os.curdir) else: outdir = os.path.realpath(os.path.split(datafn)[0]) else: outdir = os.path.realpath(outdir) if not os.path.exists(outdir): os.makedirs(outdir) if outname == None: outname = os.path.split(os.path.realpath( os.path.splitext(datafn)[0]))[1] else: outname = os.path.realpath(outname) if mre == None: mre = check_mre(data, w) if mre: for i in xrange(len(data)): data[i][1] = data[i][1]/3298.0 # Create the temporary directory tmpdir = tempfile.mkdtemp('.cdsstr') w('TEMP: Output directory is %s.\n' % tmpdir) # Populate the temporary directory with data and the binary indata = "%i\n%i\n%i\n%i\n%i\n" % (26, numwv, 1, 400, 100000) f = open('%s/input.txt' % tmpdir, 'w') f.write(indata) f.close() if not binary: executable = extract_binary(tmpdir, arch) else: binary = os.path.abspath(binary) write_data(tmpdir, data, minwv, maxwv, rev) write_secstr_data(tmpdir, ss_titles, ss) write_basis_set(tmpdir, bs_titles, basis, minwv, maxwv, rev) # Change to the temporary directory and run the program mypath = os.path.realpath(os.curdir) os.chdir(tmpdir) if binary: os.system('"%s" < input.txt > cdsstr.out' % (binary)) else: os.system('"%s/%s" < input.txt > cdsstr.out' % (tmpdir, executable)) # Copy the output files to the destination reconf = '%s/%s.svd.dat' % (outdir, outname) outf = '%s/%s.svd.anal' % (outdir, outname) logf = '%s/%s.svd.out' % (outdir, outname) parse_recon(tmpdir, reconf, minwv, maxwv, mre) shutil.copy('%s/anal.out' % tmpdir, outf) shutil.copy('%s/cdsstr.out' % tmpdir, logf) # Delete the temporary directory os.chdir(mypath) shutil.rmtree(tmpdir) try: H, G, E, T, P, O, TOT = parse_output('%s/%s.svd.anal' % (outdir, outname)) except OutputError: if gui: raise OutputError sys.exit(1) w('\nSummary:\n') w('- Alpha Helix (H) : %8.1f%%\n' % (H*100.0)) w('- 3/10 Helix (G) : %8.1f%%\n' % (G*100.0)) w('- Beta strand (E) : %8.1f%%\n' % (E*100.0)) w('- Beta turns (T) : %8.1f%%\n' % (T*100.0)) w('- PII Helix (P) : %8.1f%%\n' % (P*100.0)) w('- Other (O) : %8.1f%%\n' % (O*100.0)) w('- TOTAL : %8.1f%%\n' % (TOT*100.0)) return (H, G, E, T, P, O, TOT), (reconf, outf, logf) ########################################################################### # Begin Helper Functions ########################################################################### def parse_float(n): try: return float(n) except: sys.stderr.write('Unable to parse wavelength: %s\n' % n) sys.exit(1) def check_mre(data, w): """check_mre - attempt to determine whether MRE or extinction is used""" avg = 0.0 n = 0.0 for i, val in data: if val < 0: avg = avg + val n = n + 1.0 avg = avg / n if avg < -1000.0: w('AUTOMRE: Converting to MRE (%.2f).\n' % avg) return 1 w('AUTOMRE: Using extinction (%.2f).\n' % avg) return 0 def parse_output(outfile): try: f = open(outfile) lines = f.readlines() f.close() for l in lines: l = l.strip() if not l or l[0] == '#': continue toks = l.split() if toks[0] <> 'Predicted:': continue l = l.replace('= .', '=.') toks = l.split() H = float(toks[1][2:]) G = float(toks[2][2:]) E = float(toks[3][2:]) T = float(toks[4][2:]) P = float(toks[5][2:]) O = float(toks[6][2:]) TOT = max(H, 0.0) + max(G, 0.0) + max(E, 0.0) + max(T, 0.0) + \ max(P, 0.0) + max(O, 0.0) return H, G, E, T, P, O, TOT raise OutputError except OutputError: werr = sys.stderr.write werr("There was an error processing the output file:\n\n" \ " %s\n\n" % outfile) werr("It is recommended that you examine this file to see what \n"\ "the problem could be.\n") raise OutputError def parse_recon(outdir, fn, minwv, maxwv, mre): """parse_recon - convert the reconstructed experimental data""" f = open('%s/reconCD.out' % outdir) lines = f.readlines() f.close() data = [] wv = maxwv for l in lines[1:]: data.append([wv, float(l)]) wv = wv - 1.0 data.sort() f = open('%s' % fn, 'w') for wv, val in data: if mre: val = val*3298.0 f.write('%6.1f %13.5e\n' % (wv, val)) f.close() def extract_binary(outdir, arch): """extract_binary - create the system-specific binary, return the FN""" if arch == 'linux2': uuencode = UUENCODE_LINUX32 binary = 'CDsstr' elif arch == 'win32': uuencode = UUENCODE_WIN32.replace('replacewithquotes', '"""') binary = 'CDsstr.exe' else: uuencode = None if uuencode <> None: f = open('%s/CDsstr.gz.str' % outdir, 'w') f.writelines(uuencode) f.close() uu.decode('%s/CDsstr.gz.str' % outdir, '%s/CDsstr.gz' % outdir) f = gzip.open('%s/CDsstr.gz' % outdir) data = f.read() f.close() f = open('%s/%s' % (outdir, binary), 'wb') f.write(data) f.close() os.chmod('%s/%s' % (outdir, binary), 755) return binary else: raise BinaryError def parse_data(fn): """parse_data - parse the user's data file, check for gaps""" f = open(fn) l = f.readline() minwv = None maxwv = None data = [] while l: l = l.strip() if not l or l[0] == '#': l = f.readline() continue toks = l.split() wv, val = float(toks[0]), float(toks[1]) if not int(wv)*1.0 == wv: l = f.readline() continue if minwv == None: minwv = wv maxwv = wv else: if wv < minwv: minwv = wv if wv > maxwv: maxwv = wv data.append([wv, val]) l = f.readline() f.close() data.sort() try: for i in xrange(len(data)-1): assert(data[i][0] + 1.0 == data[i+1][0]) except AssertionError: werr = sys.stderr.write werr('Your dataset has missing points. CD datasets must contain \n'\ 'continuous integer wavelengths. They may contain other \n'\ 'wavelengths as well, but they will be ignored.\n') raise DataFileError return data, minwv, maxwv def write_data(dir, data, minwv=178.0, maxwv=260.0, rev=1, title='user spectrum', fn='proCD.dta'): """write the user's data file out in a format that CDsstr can read""" f = open('%s/%s' % (dir, fn), 'w') f.write('%s\n' % title) if rev: idx = xrange(len(data)-1, -1, -1) else: idx = xrange(len(data)) for i in idx: wv, val = data[i] if wv >= minwv and wv <= maxwv: f.write('%.2f\n' % val) f.close() def parse_basis_set(): """parse the Johnson basis set spectra""" lines = BASCD.split('\n') lines.append('EOF') titles = [] data = [] lidx = 0 last_title = '' last_spec = [] while lidx < len(lines): line = lines[lidx].strip() if line == '' or line[0] == '#': lidx = lidx + 1 continue if last_title == '': last_title = line elif len(last_spec) == WV_NUM: titles.append(last_title) last_spec.sort() data.append(last_spec) last_title = '' last_spec = [] continue else: val = float(line) wv = WV_MAX - 1.0*len(last_spec) last_spec.append((wv, val)) lidx = lidx + 1 return titles, data def parse_secstr_data(): """parse the secondary structure data""" lines = SECSTR.split('\n') lines.append('EOF') titles = [] data = [] lidx = 0 last_title = '' last_ss = [] while lidx < len(lines): line = lines[lidx].strip() if line == '' or line[0] == '#': lidx = lidx + 1 continue if last_title == '': last_title = line elif len(last_ss) == 6: titles.append(last_title) data.append(last_ss) last_title = '' last_ss = [] continue else: val = float(line) last_ss.append(val) lidx = lidx + 1 return titles, data def write_secstr_data(dir, titles, ss, fn="secstr.dta"): """write_secstr_data - write the data for secondary structure""" f = open('%s/%s' % (dir, fn), 'w') for i in xrange(len(titles)): f.write('%s\n' % titles[i]) for j in xrange(len(ss[i])): f.write('%.3f\n' % ss[i][j]) f.close() def write_basis_set(dir, titles, data, minwv=178.0, maxwv=260.0, rev=1, fn="basCD.dta"): """write_basis_set - write the basis set (filtered for wavelength)""" f = open('%s/%s' % (dir, fn), 'w') for i in xrange(len(titles)): f.write('%s\n' % titles[i]) if rev: for j in xrange(len(data[i])-1, -1, -1): wv, val = data[i][j] if wv >= minwv and wv <= maxwv: f.write('%.2f\n' % val) else: for j in xrange(len(titles[i])): wv, val = data[i][j] if wv >= minwv and wv <= maxwv: f.write('%.2f\n' % val) f.close() def usage(err=0): print 'cdsstr.py [options] [-h] ' exit(err) def help(err=0): print """cdsstr.py [options] cdsstr.py is a wrapper for W. Curtis Johnson's secondary structure prediction software, based on CD spectra. It is designed to simplify formating the data, making its use more practical. The data file is a simple text format where each line is a wavelength and then a CD value. The CD can either be reported in mean residue ellipticity per residue (deg cm^2 dmol^-1 residue^-1) or the difference in molar extinction coefficient (delta epsilon, L mol^-1 cm^-1 residue^-1). The program is sufficiently smart enough to convert between MRE vs. delta epsilon, but both of these quantities require you to scale your data before processing. This is most easily done in Excel, but you will need know the number of residues, etc. Output data is in three formats: an "out" file that contains the output from the SVD program, a "dat" file that contains the reconstructed spectrum, and the "anal" file that contains the percentages of secondary structure. options: -R Display the original README from Curtis Johnson's program -C Display the FORTRAN source code (modified to compile on gfortran by NCF) -h display this help message -d Force the output to be placed in directory . Default is the current directory. -o Force the output file to have a name . If is "test" then the output files would be test.svd.dat, test.svd.anal, and test.svd.out. -e Force the data to be interpreted as mean residue ellipticity (MRE). The units should be deg cm^2 dmol^-1 residue^-1. -E Force the data to be interpreted as differential extinction (delta epsilon). The units should be L mol^-1 cm^-1 residue^-1. -m Use a minimum wavelength of nm. This defaults to the lowest wavelength in the file (e.g. 190 nm). -x Use a maximum wavelength of nm. This defaults to the highest wavelength in the file (e.g. 260 nm). -b Normally the binary can be extracted from the Python source in its UUEncoded form. However, this can be slow for large numbers of files, and not every architecture is supported. Use this option to specify the location of the binary cdsstr file. Additionally, it may be worthwhile to set LOCAL_BINARY in the Python source code. To display Johnson's original CDSSTR source code, use the -C flag. If no arguments are given, the program will open a GUI interface. """ sys.exit(err) ########################################################################### # Source Material ########################################################################### # # There is no important Python code below this section; however, the # original README and the source code, as well as the basis set and # encoded binary files, are stored here. # README = """ Publication describing this program: W. Curtis Johnson (1999) Analyzing Protein Circular Dichroism Spectra for Accurate Secondary Structures, Proteins 35: 307-312. Program CDsstr COMPUTES THE SECONDARY STRUCTURE OF A PROTEIN FROM ITS CD, BY USING THE METHOD OF J. P. HENNESSEY, Jr. AND W. C. JOHNSON, Jr. (Biochem. (1981) 20, 1085-1094) AND THE SVD ALGORITHM (L. A. Compton and W. C. Johnson, Jr, Anal. Biochemistry (1986) 155,155-167), FOR VARIABLE SELECTION COMBINATIONS OF THE PROTEINS IN A MINIMUM BASIS SET (P. Manavalan and W. C. Johnson, Jr., Anal Biochem (1987) 167, 76-85). IT IS SELF CONSISTENT AS (N. Sreerama and R. W. Woody, Anal Biochem (1993) 209, 32-44), USES A MINIMUM BASIS SET AS IS IMPLICIT IN (I. H. M. van Stokkum, H. J. W. Spoelder, M. Bloemendal, R. van Grondelle, and F. C. A. Groen, Anal Biochem (1990) 191, 110-118), AND CHOOSES THIS MINIMUM BASIS SET RANDOMLY AS SUGGESTED BY (B. Dalmas and W. H. Bannister, Anal Biochem (1995) 225, 39-48). Detailed comments are available in the Fortran source code CDsstr.for. The executable file CDsstr.exe was compiled by MS Powerstation 4.0 as 32 bit code for use on a PC with Windows 95 or NT. This executable version will not run on a 16 bit system such as Windows 3.1 or when your computer is restarted under the MS DOS mode. Furthermore, this is a command line program. The best way to run it is from a DOS box accessed from the START menu; it will NOT run from the DOS box accessed by the DOS Prompt ICON, which is the 16 bit DOS mode. Go to START and choose PROGRAMS. From PROGRAMS choose the MS-DOS Prompt to get a 32 bit DOS box. This DOS box will stay around even after the program has stopped running, which is convenient if there are error messages. Alternatively, you could double click on the CDsstr.exe icon, but Windows 95 will close the DOS box when the program stops running. This can be a problem when there are error messages, because they will go away before you can see them. This version analyzes the CD of a set of up to 100 test proteins in file proCD.dta using the CD of basis proteins in file basCD.dta and the corresponding secondary stuctures in file secstr.dta. It randomly chooses NbsCDf basis proteins from the NbsCDi proteins in the basis set to analyze the test protein. It is self-consistent with the test protein in the SVD matrix iterated to a consistent structure. The first ncomb calculated sets of secondary structures with 0.952<=Tot=>1.05 and RMSE<=RmseMx are searched for alpha helix similar to the alpha helix predicted by H and J SVD. The average of the choosen combinations is stored in file anal.out. The average of the reconstructed CD for the choosen combinations is stored in reconCD.out. SECONDARY STRUCTURES ARE: H:alpha-Helix; G:3/10-Helix; E:Extended-beta-strand; T:beta-Turns; P:PolyprolineII-like 3/1-helix; O:OTHERS. TOT is the total of all secondary structures with any negative values excluded. As supplied NbsCDf=8 and NbsCDi=26. The CD of the 26 proteins in basCD.dta are digitized from 260 to 178nm at 1nm intervals. If your data do not cover this range, you will have to edit basCD.dta to be consistent with your data. This programs works reasonably well on data truncated even at 200nm, but the more data you have, the better your answers will be. The CD data for each protein to be analyzed (up to 100) should be entered into file proCD.dta. The data should have a one line title and then the CD digitized in delta epsilon units in the same way as basCD.dta in format 1F10.x. Instructions appear on the screen as Cdsstr is run. This program is for analyzing the CD of proteins; DO NOT use this program to analyze the CD of a short peptide. A peptide CD is usually a combination of the CD for a particular secondary structure and the CD of a random coil. Proteins have no random coil, so the CD of the proteins in the basis set has no random coil component. Other is NOT random coil. Analyze the CD of peptides as a combination of the CD for the expected secondary structure and the CD of a TRUE random coil (see, Toumadje and Johnson (1995) JACS 117, 7023-7024). Analyzing the CD of a peptide is not underdetermined, and so does not require a flexible method like Variable Selection. Therefore, Convex Constraint Analysis (Perczel et al (1991) Protein Eng 4, 669-679 and Perczel et al (1992) Anal Biochem 203, 83-93) would be the method of choice for analyzing a series of CD spectra for peptides. This method extracts the component spectra, so it should tell you what secondary structures you have in a series of spectra for a simple system. To get this program see the review by Norma Greenfield (Anal Biochem 235, 1-10. 1996). Test data for 3 proteins is in file proCD.tst, and the resulting comparison output in files anal.tst and reconCD.tst. Note that the CD spectra for these three proteins is also in the basis set, so this is not a valid test of the accuracy of the method. It is only meant to show that the program is operating on your system. """ # Basis CD Spectra BASCD = """ 01 azurin, p. aeruginosa 0.00 -0.03 -0.05 -0.07 -0.08 -0.09 -0.08 -0.07 -0.07 -0.06 -0.05 -0.05 -0.05 -0.05 -0.06 -0.07 -0.09 -0.11 -0.14 -0.19 -0.23 -0.29 -0.36 -0.43 -0.52 -0.61 -0.71 -0.82 -0.94 -1.06 -1.20 -1.34 -1.49 -1.64 -1.78 -1.92 -2.05 -2.16 -2.25 -2.31 -2.34 -2.34 -2.30 -2.22 -2.10 -1.97 -1.82 -1.66 -1.50 -1.33 -1.16 -0.98 -0.77 -0.51 -0.21 0.15 0.58 1.09 1.69 2.39 3.18 4.01 4.77 5.37 5.72 5.75 5.50 5.05 4.47 3.81 3.08 2.33 1.57 0.83 0.14 -0.50 -1.09 -1.62 -2.10 -2.52 -2.89 -3.19 -3.44 02 bence jones protein, human 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 -0.04 -0.10 -0.16 -0.20 -0.21 -0.20 -0.20 -0.20 -0.17 -0.10 0.00 0.10 0.21 0.30 0.36 0.40 0.42 0.40 0.32 0.20 0.05 -0.10 -0.21 -0.30 -0.40 -0.50 -0.56 -0.60 -0.62 -0.60 -0.54 -0.45 -0.33 -0.20 -0.06 0.10 0.30 0.50 0.70 0.90 1.12 1.30 1.38 1.40 1.38 1.30 1.13 0.90 0.65 0.40 0.16 -0.10 -0.39 -0.70 -1.01 -1.30 -1.54 -1.75 -1.97 -2.20 -2.41 -2.60 -2.78 -2.95 -3.12 -3.30 -3.50 -3.70 03 alpha-chymotrypsin, bovine 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.01 -0.02 -0.03 -0.05 -0.07 -0.10 -0.13 -0.16 -0.20 -0.24 -0.30 -0.37 -0.46 -0.58 -0.76 -0.96 -1.16 -1.31 -1.39 -1.39 -1.34 -1.28 -1.24 -1.23 -1.22 -1.23 -1.25 -1.28 -1.32 -1.36 -1.41 -1.48 -1.56 -1.65 -1.75 -1.86 -1.98 -2.11 -2.24 -2.38 -2.52 -2.65 -2.77 -2.86 -2.90 -2.90 -2.86 -2.76 -2.58 -2.33 -2.02 -1.65 -1.22 -0.75 -0.28 0.16 0.55 0.88 1.12 1.26 1.30 1.26 1.16 1.01 0.82 0.59 0.32 0.05 -0.19 -0.40 04 concanavalin-a, jack bean 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 -0.04 -0.06 -0.08 -0.10 -0.12 -0.16 -0.20 -0.25 -0.30 -0.36 -0.44 -0.53 -0.62 -0.72 -0.82 -0.91 -1.07 -1.33 -1.60 -1.77 -1.87 -1.93 -1.95 -1.94 -1.89 -1.81 -1.71 -1.62 -1.52 -1.41 -1.28 -1.14 -0.98 -0.80 -0.61 -0.41 -0.20 0.03 0.28 0.56 0.84 1.11 1.39 1.72 2.09 2.47 2.86 3.26 3.52 3.64 3.60 3.43 3.11 2.65 2.11 1.58 1.06 0.55 0.08 -0.31 -0.66 -1.02 -1.36 -1.67 -1.94 -2.19 -2.42 -2.63 -2.83 05 cytochrome-c, tuna heart 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 -0.06 -0.11 -0.17 -0.23 -0.31 -0.40 -0.50 -0.64 -0.82 -1.04 -1.28 -1.54 -1.84 -2.17 -2.50 -2.80 -3.05 -3.26 -3.43 -3.57 -3.67 -3.73 -3.73 -3.70 -3.65 -3.57 -3.47 -3.35 -3.23 -3.13 -3.04 -2.98 -2.94 -2.91 -2.86 -2.79 -2.66 -2.40 -1.94 -1.35 -0.70 0.02 0.84 1.72 2.59 3.37 3.99 4.37 4.48 4.37 4.13 3.84 3.59 3.36 3.14 2.95 2.80 2.67 2.55 2.44 2.33 2.22 2.10 1.83 1.34 0.83 06 elastase, porcine 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.01 -0.03 -0.05 -0.07 -0.09 -0.11 -0.13 -0.15 -0.17 -0.18 -0.19 -0.20 -0.20 -0.20 -0.21 -0.22 -0.23 -0.25 -0.27 -0.30 -0.34 -0.39 -0.44 -0.50 -0.57 -0.64 -0.72 -0.80 -0.89 -0.98 -1.07 -1.17 -1.27 -1.37 -1.48 -1.59 -1.70 -1.81 -1.92 -2.03 -2.13 -2.22 -2.30 -2.37 -2.43 -2.50 -2.60 -2.74 -2.91 -3.08 -3.15 -3.06 -2.85 -2.57 -2.23 -1.85 -1.45 -1.06 -0.66 -0.25 0.12 0.37 0.52 0.58 0.55 0.44 0.26 0.01 -0.29 -0.61 -0.95 07 flavodoxin, d. vulgaris 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 -0.06 -0.11 -0.17 -0.23 -0.28 -0.34 -0.39 -0.44 -0.50 -0.56 -0.63 -0.71 -0.80 -0.90 -1.02 -1.15 -1.30 -1.46 -1.63 -1.81 -2.00 -2.19 -2.38 -2.55 -2.70 -2.82 -2.92 -2.98 -3.00 -2.96 -2.90 -2.84 -2.80 -2.80 -2.80 -2.77 -2.70 -2.60 -2.47 -2.31 -2.13 -1.91 -1.60 -1.17 -0.60 0.08 0.80 1.48 2.10 2.68 3.20 3.66 4.00 4.18 4.20 4.07 3.80 3.43 3.02 2.61 2.21 1.81 1.40 0.97 0.55 0.15 -0.22 -0.54 -0.80 -1.00 -1.17 08 hemerythrin, theristle d. 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.05 -0.10 -0.13 -0.15 -0.17 -0.20 -0.25 -0.30 -0.33 -0.40 -0.55 -0.75 -0.94 -1.15 -1.42 -1.70 -1.97 -2.25 -2.59 -2.95 -3.30 -3.65 -4.00 -4.35 -4.65 -4.90 -5.11 -5.25 -5.32 -5.35 -5.36 -5.35 -5.33 -5.30 -5.26 -5.25 -5.28 -5.35 -5.44 -5.50 -5.46 -5.25 -4.81 -4.10 -3.12 -1.90 -0.44 1.30 3.34 5.50 7.58 9.50 11.17 12.50 13.38 13.80 13.75 13.30 12.52 11.50 10.35 9.20 8.18 7.30 6.54 5.90 5.38 4.95 4.57 4.20 3.83 3.45 09 hemoglobin, bovine 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 -0.05 -0.10 -0.17 -0.26 -0.38 -0.52 -0.70 -0.92 -1.19 -1.51 -1.89 -2.34 -2.83 -3.34 -3.88 -4.44 -5.00 -5.51 -5.98 -6.41 -6.78 -7.09 -7.34 -7.51 -7.60 -7.60 -7.54 -7.47 -7.37 -7.25 -7.11 -6.98 -6.89 -6.86 -6.88 -6.93 -6.97 -6.92 -6.67 -6.11 -5.26 -4.12 -2.60 -0.63 1.58 3.85 6.28 8.90 11.31 13.07 14.18 14.70 14.70 14.22 13.37 12.25 11.00 9.75 8.52 7.35 6.34 5.58 5.00 4.52 4.10 3.73 3.40 3.09 2.82 10 lactate dehydrogenase, chicken heart 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.03 -0.07 -0.12 -0.18 -0.25 -0.33 -0.43 -0.54 -0.67 -0.82 -0.99 -1.19 -1.41 -1.65 -1.92 -2.20 -2.49 -2.79 -3.11 -3.43 -3.71 -3.93 -4.10 -4.22 -4.29 -4.32 -4.31 -4.28 -4.22 -4.15 -4.06 -3.97 -3.87 -3.78 -3.71 -3.67 -3.64 -3.60 -3.53 -3.36 -3.05 -2.60 -2.04 -1.40 -0.68 0.22 1.38 2.68 4.00 5.32 6.63 7.74 8.46 8.91 9.20 9.27 9.02 8.45 7.60 6.63 5.69 4.80 3.95 3.15 2.40 1.71 1.11 0.58 0.12 -0.30 11 beta-lactoglobulin, bovine 0.00 0.00 0.00 -0.00 -0.01 -0.01 -0.02 -0.02 -0.03 -0.04 -0.06 -0.08 -0.10 -0.12 -0.15 -0.19 -0.23 -0.27 -0.32 -0.37 -0.43 -0.49 -0.56 -0.63 -0.70 -0.78 -0.86 -0.94 -1.03 -1.12 -1.21 -1.31 -1.41 -1.51 -1.62 -1.72 -1.82 -1.91 -2.01 -2.10 -2.18 -2.25 -2.32 -2.38 -2.42 -2.45 -2.47 -2.48 -2.47 -2.44 -2.40 -2.33 -2.24 -2.10 -1.92 -1.68 -1.36 -0.97 -0.51 -0.00 0.51 1.02 1.48 1.88 2.17 2.34 2.38 2.37 2.44 2.56 2.61 2.57 2.43 2.20 1.89 1.51 1.07 0.58 0.06 -0.49 -1.06 -1.63 -2.20 12 lysozyme, egg white 0.00 0.00 0.00 0.00 0.00 0.00 -0.01 -0.02 -0.04 -0.05 -0.07 -0.09 -0.11 -0.12 -0.14 -0.17 -0.20 -0.24 -0.30 -0.37 -0.45 -0.55 -0.68 -0.87 -1.08 -1.30 -1.53 -1.78 -2.01 -2.21 -2.37 -2.52 -2.65 -2.76 -2.86 -2.95 -3.04 -3.12 -3.19 -3.25 -3.31 -3.36 -3.40 -3.44 -3.47 -3.51 -3.57 -3.66 -3.77 -3.91 -4.09 -4.31 -4.46 -4.45 -4.30 -4.04 -3.63 -3.03 -2.24 -1.29 -0.22 0.91 2.03 3.06 3.92 4.57 4.98 5.17 5.20 5.12 4.94 4.65 4.26 3.81 3.32 2.82 2.32 1.81 1.33 0.89 0.49 0.13 -0.18 13 myoglobin, sperm whale 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.01 -0.01 -0.01 -0.01 -0.04 -0.09 -0.15 -0.22 -0.31 -0.42 -0.57 -0.77 -1.01 -1.30 -1.66 -2.08 -2.56 -3.09 -3.66 -4.27 -4.92 -5.59 -6.23 -6.79 -7.25 -7.62 -7.91 -8.13 -8.26 -8.30 -8.25 -8.13 -7.98 -7.83 -7.70 -7.58 -7.45 -7.35 -7.31 -7.35 -7.46 -7.57 -7.59 -7.43 -7.02 -6.26 -5.11 -3.67 -2.04 -0.09 2.32 5.03 7.84 10.60 13.13 15.21 16.66 17.61 18.19 18.39 18.14 17.46 16.41 15.17 13.91 12.65 11.40 10.16 8.97 7.90 7.01 6.25 5.55 4.88 14 papain, carica papaya 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.01 -0.02 -0.03 -0.04 -0.06 -0.09 -0.12 -0.16 -0.22 -0.29 -0.36 -0.44 -0.53 -0.64 -0.76 -0.90 -1.05 -1.23 -1.44 -1.67 -1.91 -2.15 -2.36 -2.54 -2.69 -2.80 -2.88 -2.91 -2.92 -2.91 -2.90 -2.88 -2.85 -2.83 -2.81 -2.80 -2.82 -2.87 -2.95 -3.04 -3.12 -3.18 -3.17 -3.06 -2.84 -2.55 -2.28 -2.09 -1.99 -1.96 -1.94 -1.88 -1.70 -1.36 -0.85 -0.19 0.60 1.49 2.37 3.14 3.73 4.08 4.22 4.20 4.06 3.82 3.51 3.17 2.82 2.47 2.12 1.77 1.43 15 pepsinogen, porcine 0.00 -0.01 -0.01 -0.02 -0.02 -0.02 -0.02 -0.01 -0.01 -0.01 -0.01 -0.01 -0.02 -0.02 -0.03 -0.04 -0.06 -0.07 -0.08 -0.10 -0.11 -0.13 -0.14 -0.15 -0.16 -0.17 -0.19 -0.22 -0.26 -0.31 -0.39 -0.49 -0.60 -0.73 -0.87 -1.02 -1.17 -1.32 -1.46 -1.59 -1.70 -1.79 -1.86 -1.90 -1.93 -1.95 -1.96 -1.97 -1.98 -1.99 -1.98 -1.94 -1.87 -1.75 -1.57 -1.34 -1.06 -0.74 -0.41 -0.06 0.29 0.64 0.96 1.24 1.49 1.69 1.82 1.87 1.81 1.57 1.21 0.82 0.41 -0.01 -0.42 -0.82 -1.20 -1.54 -1.85 -2.10 -2.29 -2.41 -2.45 16 prealbumin, human 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 -0.04 -0.06 -0.09 -0.12 -0.17 -0.23 -0.30 -0.38 -0.47 -0.58 -0.70 -0.82 -0.94 -1.06 -1.18 -1.30 -1.41 -1.52 -1.62 -1.71 -1.77 -1.80 -1.80 -1.76 -1.70 -1.65 -1.60 -1.55 -1.50 -1.43 -1.33 -1.19 -1.00 -0.77 -0.48 -0.12 0.30 0.78 1.30 1.82 2.30 2.67 2.90 2.97 2.90 2.73 2.50 2.23 1.90 1.49 1.00 0.45 -0.10 -0.61 -1.10 -1.59 -2.05 -2.44 -2.76 -3.04 -3.27 17 ribonuclease-a, bovine 0.00 0.00 0.00 0.00 0.01 0.02 0.02 0.02 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.06 0.07 0.08 0.08 0.08 0.08 0.07 0.06 0.03 -0.03 -0.12 -0.23 -0.35 -0.49 -0.64 -0.82 -1.02 -1.23 -1.45 -1.67 -1.90 -2.12 -2.32 -2.51 -2.68 -2.83 -2.96 -3.06 -3.14 -3.21 -3.26 -3.29 -3.32 -3.36 -3.40 -3.44 -3.45 -3.41 -3.28 -3.07 -2.79 -2.45 -2.04 -1.54 -0.96 -0.34 0.27 0.85 1.39 1.83 2.11 2.25 2.29 2.25 2.14 1.97 1.78 1.62 1.52 1.46 1.41 1.34 1.23 1.09 0.92 0.70 0.41 0.06 18 superoxide dismutase, bovine 0.00 0.02 0.03 0.04 0.04 0.04 0.04 0.03 0.02 0.02 0.01 0.00 -0.00 -0.01 -0.01 -0.02 -0.03 -0.05 -0.07 -0.09 -0.12 -0.15 -0.19 -0.23 -0.28 -0.32 -0.37 -0.42 -0.47 -0.51 -0.56 -0.61 -0.67 -0.73 -0.81 -0.89 -0.98 -1.08 -1.20 -1.34 -1.50 -1.66 -1.84 -2.02 -2.19 -2.36 -2.52 -2.66 -2.78 -2.87 -2.94 -2.96 -2.95 -2.89 -2.79 -2.62 -2.41 -2.12 -1.79 -1.42 -1.05 -0.69 -0.37 -0.10 0.10 0.27 0.42 0.58 0.77 0.96 1.08 1.07 0.91 0.62 0.25 -0.19 -0.67 -1.14 -1.58 -1.98 -2.34 -2.67 -2.97 19 T4 lysozyme, T4 0.00 0.00 0.00 -0.02 -0.02 -0.03 -0.04 -0.04 -0.04 -0.05 -0.07 -0.10 -0.15 -0.22 -0.31 -0.41 -0.50 -0.59 -0.70 -0.81 -0.97 -1.16 -1.42 -1.72 -2.07 -2.45 -2.85 -3.27 -3.69 -4.10 -4.49 -4.84 -5.15 -5.39 -5.57 -5.68 -5.73 -5.73 -5.68 -5.60 -5.49 -5.36 -5.21 -5.06 -4.91 -4.79 -4.71 -4.68 -4.69 -4.71 -4.71 -4.62 -4.39 -3.97 -3.30 -2.37 -1.19 0.25 1.89 3.67 5.53 7.35 9.05 10.51 11.65 12.40 12.74 12.67 12.24 11.54 10.66 9.66 8.63 7.62 6.67 5.79 4.99 4.30 3.71 3.24 2.89 2.65 2.55 20 thermolysin, b. thermoproteolytens 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.04 -0.10 -0.15 -0.20 -0.25 -0.30 -0.35 -0.40 -0.43 -0.50 -0.63 -0.80 -0.98 -1.20 -1.49 -1.80 -2.06 -2.30 -2.55 -2.80 -3.01 -3.20 -3.37 -3.50 -3.57 -3.60 -3.64 -3.70 -3.76 -3.80 -3.80 -3.80 -3.84 -3.90 -3.96 -4.00 -4.00 -3.90 -3.62 -3.20 -2.68 -2.10 -1.45 -0.70 0.22 1.40 2.87 4.30 5.36 6.20 7.02 7.80 8.42 8.70 8.50 8.00 7.39 6.70 5.92 5.10 4.30 3.60 3.07 2.60 2.09 1.60 1.19 0.80 0.37 -0.10 21 triose phosphate isomerase 0.00 0.00 0.00 0.00 0.02 0.04 0.04 0.04 0.02 -0.00 -0.03 -0.05 -0.07 -0.09 -0.11 -0.14 -0.17 -0.22 -0.29 -0.38 -0.49 -0.62 -0.78 -0.96 -1.17 -1.41 -1.67 -1.96 -2.27 -2.59 -2.90 -3.18 -3.44 -3.66 -3.84 -3.99 -4.11 -4.21 -4.30 -4.37 -4.43 -4.47 -4.50 -4.51 -4.50 -4.47 -4.42 -4.37 -4.33 -4.28 -4.20 -4.05 -3.77 -3.34 -2.75 -2.04 -1.24 -0.42 0.40 1.20 1.98 2.75 3.49 4.22 4.89 5.52 6.11 6.64 7.10 7.47 7.72 7.81 7.70 7.38 6.85 6.15 5.33 4.43 3.55 2.73 2.04 1.52 1.17 22 trypsin, bovine 0.00 0.00 0.00 0.00 -0.01 -0.01 -0.01 -0.01 -0.01 -0.01 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.03 -0.03 -0.03 -0.04 -0.05 -0.06 -0.08 -0.09 -0.11 -0.14 -0.16 -0.19 -0.23 -0.27 -0.32 -0.36 -0.41 -0.46 -0.50 -0.55 -0.59 -0.63 -0.67 -0.71 -0.75 -0.79 -0.83 -0.88 -0.93 -0.98 -1.04 -1.10 -1.17 -1.24 -1.31 -1.37 -1.43 -1.47 -1.50 -1.52 -1.52 -1.52 -1.52 -1.54 -1.57 -1.61 -1.65 -1.67 -1.67 -1.62 -1.53 -1.41 -1.25 -1.06 -0.86 -0.64 -0.42 -0.22 -0.03 0.12 0.23 0.28 0.28 0.23 0.14 0.04 -0.05 23 ovalbumin, hen egg white 0.00 0.00 -0.03 -0.04 -0.05 -0.04 -0.02 -0.01 -0.01 -0.01 -0.02 -0.04 -0.06 -0.09 -0.12 -0.15 -0.19 -0.23 -0.28 -0.35 -0.44 -0.55 -0.68 -0.82 -0.99 -1.16 -1.36 -1.57 -1.80 -2.03 -2.26 -2.48 -2.69 -2.88 -3.04 -3.18 -3.29 -3.36 -3.40 -3.42 -3.42 -3.39 -3.35 -3.28 -3.20 -3.10 -3.01 -2.93 -2.87 -2.83 -2.79 -2.72 -2.60 -2.41 -2.13 -1.76 -1.29 -0.73 -0.06 0.70 1.53 2.39 3.23 3.98 4.59 5.05 5.34 5.49 5.51 5.44 5.28 5.05 4.74 4.35 3.89 3.38 2.81 2.20 1.56 0.91 0.30 -0.25 -0.70 24 old yellow enzyme, brewer's yeast, Y196F mutant 0.00 0.00 0.00 0.01 0.01 0.01 0.01 0.01 0.02 0.02 0.00 -0.03 -0.06 -0.09 -0.13 -0.16 -0.20 -0.24 -0.29 -0.35 -0.42 -0.50 -0.61 -0.74 -0.91 -1.10 -1.33 -1.56 -1.80 -2.02 -2.23 -2.42 -2.59 -2.75 -2.89 -3.02 -3.14 -3.24 -3.32 -3.38 -3.43 -3.45 -3.45 -3.42 -3.38 -3.33 -3.31 -3.31 -3.34 -3.41 -3.47 -3.50 -3.46 -3.32 -3.04 -2.59 -1.95 -1.12 -0.12 1.00 2.15 3.22 4.12 4.78 5.18 5.34 5.33 5.22 5.06 4.91 4.76 4.61 4.44 4.24 4.00 3.69 3.33 2.90 2.40 1.85 1.30 0.78 0.36 25 trypanothione reductase, C. fasciculata 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.03 0.02 0.00 -0.03 -0.06 -0.09 -0.13 -0.16 -0.20 -0.25 -0.29 -0.34 -0.40 -0.46 -0.54 -0.65 -0.78 -0.95 -1.15 -1.38 -1.63 -1.89 -2.15 -2.40 -2.64 -2.86 -3.06 -3.25 -3.40 -3.54 -3.65 -3.73 -3.78 -3.81 -3.82 -3.82 -3.79 -3.75 -3.71 -3.68 -3.67 -3.67 -3.67 -3.61 -3.47 -3.21 -2.83 -2.34 -1.74 -1.05 -0.26 0.63 1.61 2.66 3.72 4.74 5.64 6.40 6.97 7.33 7.45 7.31 6.93 6.34 5.60 4.76 3.91 3.07 2.28 1.52 0.80 0.14 -0.44 -0.90 -1.23 26 enolase, baker's yeast 0.00 0.00 0.01 0.01 0.01 0.01 0.01 0.03 0.04 0.03 0.01 -0.02 -0.05 -0.08 -0.12 -0.17 -0.23 -0.30 -0.38 -0.49 -0.60 -0.74 -0.89 -1.07 -1.27 -1.51 -1.78 -2.07 -2.37 -2.67 -2.94 -3.18 -3.38 -3.54 -3.66 -3.75 -3.81 -3.84 -3.85 -3.83 -3.81 -3.77 -3.72 -3.68 -3.63 -3.60 -3.58 -3.59 -3.63 -3.69 -3.74 -3.72 -3.60 -3.33 -2.92 -2.35 -1.66 -0.84 0.08 1.13 2.27 3.48 4.70 5.88 6.94 7.83 8.53 9.03 9.29 9.32 9.11 8.67 8.04 7.29 6.46 5.62 4.78 3.97 3.19 2.47 1.84 1.34 1.01 """ # Secondary structure data for each of the basis spectra SECSTR = """ 01 azurin, p. aeruginosa, 5azu 0.094 0.084 0.337 0.132 0.059 0.295 02 bence jones protein, human, 1rei 0.000 0.000 0.335 0.099 0.123 0.443 03 alpha-chymotrypsin, bovine, 5cha 0.076 0.034 0.158 0.150 0.138 0.444 04 concanavalin-a, jack bean, 1nls 0.013 0.013 0.364 0.123 0.068 0.419 05 cytochrome-c, tuna heart, 5cyt 0.393 0.034 0.077 0.087 0.077 0.331 06 elastase, porcine, 1esa 0.059 0.042 0.213 0.138 0.109 0.439 07 flavodoxin, d. vulgaris, 5fx2 0.250 0.058 0.171 0.198 0.020 0.302 08 hemerythrin, theristle d., 1hmd 0.593 0.122 0.036 0.061 0.025 0.165 09 hemoglobin, horse, 2mhb 0.681 0.082 0.000 0.100 0.004 0.133 10 lactate dehydrogenase, dogfish, 6ldh 0.347 0.072 0.140 0.115 0.034 0.294 11 beta-lactoglobulin, 1beb 0.089 0.036 0.335 0.127 0.043 0.370 12 lysozyme, egg white, 4lzt 0.305 0.117 0.039 0.195 0.023 0.320 13 myoglobin, sperm whale, 1vxf 0.727 0.115 0.000 0.052 0.020 0.086 14 papain, carica papaya, 9pap 0.239 0.050 0.152 0.109 0.081 0.370 15 pepsinogen, porcine, 3psg 0.086 0.087 0.271 0.130 0.101 0.327 16 prealbumin, human, 2pab 0.049 0.036 0.353 0.066 0.036 0.460 17 ribonuclease-a, bovine, 1rbx 0.171 0.049 0.191 0.110 0.081 0.398 18 superoxide dismutase, bovine, 1sxn 0.000 0.037 0.240 0.160 0.090 0.473 19 t4 lysozyme, t4, 5lzm 0.607 0.086 0.061 0.037 0.012 0.197 20 thermolysin, b. thermoproteolytens, 1lnf 0.343 0.057 0.136 0.121 0.041 0.302 21 triose phosphate isomerase, 1ypi 0.329 0.070 0.148 0.105 0.038 0.310 22 trypsin, bovine, 1tld 0.088 0.031 0.193 0.136 0.140 0.412 23 ovalbumin, hen egg white, 1ova 0.290 0.022 0.252 0.114 0.049 0.273 24 old yellow enzyme, Y196F mutant, brewer's yeast, 1oya 0.324 0.033 0.118 0.131 0.068 0.327 25 trypanothione reductase, C. fasciculata, 1fec 0.247 0.089 0.173 0.072 0.063 0.356 26 enolase, baker's yeast, 4enl 0.361 0.055 0.099 0.129 0.060 0.297 """ # Original source code, modified so random numbers will work in gfortran SOURCE=""" C ------------------------------------------------------------------ C C Program Name: CDsstr.for (Variable Selection) C Written by Manavalan Parthasarathy, Arazdordi Toumadje, and W Curtis Johnson C C ------------------------------------------------------------------ C C Version 1.8.2 (formerly VSbsCD8.for) C C Written for an IBM computer and to be compiled by Microsoft Fortran C Powerstation C C This version incorporates random choice into variable selection, uses a minimum c basis set and self consistency, and chooses the combinations that give alpha C helix similar to that predicted by Hennessey and Johnson SVD C with self consistency. C C C$NOTSTRICT C C C THIS PROGRAM COMPUTES THE SECONDARY STRUCTURE OF A PROTEIN C FROM ITS CD, BY USING THE METHOD OF J. P. HENNESSEY, Jr. C AND W. C. JOHNSON, Jr. (Biochem. (1981) 20, 1085-1094) AND THE C SVD ALGORITHM ( L. A. Compton and W. C. Johnson, Jr, Anal. C Biochemistry (1986) 155, 155-167), FOR COMBINATIONS OF THE PROTEINS IN C A MINIMUM BASIS SET (P. Manavalan C and W. C. Johnson, Jr., Anal Biochem (1987) 167, 76-85). IT IS SELF CONSISTENT C AS (N. Sreerama and R. W. Woody, Anal Biochem (1993) 209, 32-44), USES A C MINIMUM BASIS SET AS IS IMPLICIT IN (I. H. M. van Stokkum, H. J. W. Spoelder, C M. Bloemendal, R. van Grondelle, and F. C. A. Groen, Anal Biochem (1990) C 191, 110-118), AND CHOOSES THIS MINIMUM BASIS SET RANDOMLY AS SUGGESTED BY C (B. Dalmas and W. H. Bannister, Anal Biochem (1995) 225, 39-48). C C THIS PROGRAM CALLS THE SUBROUTINE SVD1 (SINGULAR VALUE DECOMP). C C This version analyzes the CD of a set of up to test 100 proteins in file proCD.dta C using basis proteins in file basCD.dta and their corresponding secondary stucture C in file secstr.dta. It randomly chooses NbsCDf basis proteins from the NbsCDi C proteins in the basis set to analyze the test protein. It is self-consistent with C the test protein in the SVD matrix. The first ncomb calculated sets of secondary C structures with 0.952<=Tot=>1.05 and RMSE<=RmseMx are searched for alpha helix C similar to the alpha helix predicted by H and J SVD. The average of the choosen C combinations are stored in file anal.out. The average of the reconstructed CD C for the choosen combinations are stored in reconCD.out. C C INPUT DATA VARIABLES C --------------------- C C BasCD: CD spectra for the proteins in the basis set C to be used in the analysis C FssMin: The greatest negative value allowed for a sec structure C Fsstr: Fractions of sec structure for each protein in basis set c H: Fraction of alpha helix from H and J SVD C icombf: Program stops after icombf combinations if the number of successful C combinations does not reach ncomb C icombi: Initial combination number for this analysis, here set = 1 C Matxu and Matxv =1 to calc U and V in subroutine SVD C NbasCD: Number of proteins in basis set C NbsCDv: Number of basis CD vectors. ONLY CD BASIS VECTORS WITH C SIGNIFICANT SINGULAR VALUES SHOULD BE USED IN AN ANALYSIS C NbsCD1: Dimensioned number of CD basis proteins C NbsCDf: Final number basis proteins in set after some eliminated C for this analysis C NCD: Number of CD spectra undergoing SVD. With self-consistency C this is NbsCDf+1 (including the test protein) C ncomb: The number of successful combinations to be averaged C Npro: The number of test proteins in proCD.dta C Nsstr: Number of different secondary structures(eg. H,G,E,T,P,O =6) C Nsstr1: Dimensioned number of secondary structures C Numbas: Numbers corresponding to the basis proteins being used in SVD C Nwave: Number of CD data points (number of wavelengths) C Nwave1: Dimensioned number of CD data points C Proname: Name of each protein in input data (max is 40 characters) C ProCD: CD data for protein to be analysed C ProFss: Predicted fraction of sec struc for protein analyzed; the average C of all the successful combinations C Psstr: Predicted fractions stored for each successful combination C RecnCD: Average of the reconstructed CD for all the successful combinations C RecnCD1: Reconstructed CD stored for each successful combination C RMSE: Average of Root Mean Square of Error at each wavelength C when comparing measured ProCD to CD reconstructed C from analysis for sec struc of one combination C RmseMx: The maximum value of RMSE for which a calculated set of C secondary structures will be considered C C *** The program will accept spectral data with the wavelengths C in any direction, but all data must be consistent. C The basis CD spectra supplied with this new version have the C INITIAL WAVELENGTH as the LONGEST WAVELENGTH, so your protein C CD must begin with the longest wavelength if you are using the C new basis CD spectra. C C SECONDARY STRUCTURES ARE: C H:alpha-Helix; G:3/10-Helix; E:Extended-beta-strand;T:beta-Turns; C P:Polyproline-like 3/1-helix; O:OTHERS. TOT is the total of all secondary C structures with any negative values excluded. C Parameter (Nwave1=100, NbsCD1=35, Nsstr1=6, Matxu=1, Matxv=1) Parameter (NbsCDv=5,Nsstr=6,combi=1) Parameter (RmseMx=0.25,FssMin=-0.03,NbsCDf=8) Dimension ProCD(Nwave1),BasCD(Nwave1,NbsCD1),Fsstr(NbsCD1,Nsstr1) Dimension Psstr(Nsstr1,400),ProFss(Nsstr1) Dimension RecnCD(Nwave1),RecnCD1(Nwave1,400) Character*80 Proname C C Read in CD spectra and secondary structures for proteins in basis set C Open (Unit=2, file='basCD.dta', status='OLD') Open (Unit=3, file='secstr.dta', status='OLD') Open (Unit=1, file='proCD.dta', status='OLD') Open (Unit=7, file='anal.out', status='NEW') Open (Unit=9, file='reconCD.out',status='NEW') C c basCD.dta: the CD of the basis proteins used in the analysis c secstr.dta: the corresponding secondary structures for the c basis proteins c proCD.dta: the CD of the protein to be analyzed c anal.out: predicted secondary structure for proCD as output c reconCD: the reconstructed CD for the protein analyzed as output c Write(6,2050) Read(5,1000) NbasCD 2050 Format(' The basis set of protein CD spectra should be stored in f 2ile basCD.dta, '/' the corresponding secondary structures in file 3secstr.dta,'/' and your CD spectrum to be analyzed in file proCD.d 4ta with a title line'/' and then the CD data in delta epsilon unit 5s beginning at long wavelength'/' (260nm as supplied) and at 1nm i 6ntervals to 178nm (as supplied) '/' with each data point on a diff 7erent line in F10.x format.'///' Type in the number of CD spectra 8in the basis set,'/' (NbasCD) as supplied this is 26'/) C Write(6,2051) Read(5,1000) Nwave 2051 Format(///' Your protein CD in file proCD.dta should be in delta e 2psilon units.'/' It should begin at 260nm with 1nm intervals and e 3nd at 178nm.'/' Otherwise you must set up a basCD file consistent 4with your data'/' using the basis protein data from 260 to 178 nm 5at 1 nm intervals'/' provided in file basCD.dta.'/' This program w 6orks reasonably well for data truncated even to 200nm,'/' but the 7more data you have the better your answer will be.'///' Type in th 8e number of wavelengths (Nwave) in basCD.dta, as supplied this is 983.'/) C Write(6,2056) Read(5,1000) Npro 2056 Format(///' Type in the number of protein CD spectra in proCD.dta 2(Npro),100 maximum'/) C Write(6,2053) Read(5,1000) ncomb 2053 Format(///' Original input and secondary structure output will be 2found in file anal.out.'/' Average reconstructed CD spectrum will 3be found in file reconCD.out'///' Type in the number of successful 4 combinations to be considered (ncomb),'/' usually 100, but for al 5l alpha proteins, use 400,'/' the maximum for which the program is 6 dimensioned.'/' The number of predicted structures averaged shoul 7d be at least 10.'/) C Write(6,2052) Read(5,1000) icombf 2052 Format(///' Most protein CD spectra being analyzed will reach ncom 2b=100 very quickly,'/' but if an exceptional protein takes 100,000 3 trials, it will take about 20 m'/' on a Pentium 200MHz computer, 4operating in Windows.'/' Truncating basCD and proCD to 240 to 178n 5m '/' will reduce the time to about 15 m, and increasing the inter 6val to 4nm '/' will reduce the time to about 6 m. Reducing the dat 7a to 15 points at 4nm '/' intervals between 240 and 178 nm does no 8t change the analysis significantly.'/' Running the program on the 9 DOS prompt further reduces the time by one third.'///' Type in th 1e maximum number of trial combinations allowed', 2/' (icombf) before the program stops trying to analyze a protein, 3'/' usually 100000.'/) C Write(7,2054) NbasCD,Nwave,Npro,ncomb,icombf 2054 Format('NbasCD=',I3,3x,'Nwave=',I3,3x,'Npro=',I3,3x,'ncomb=',I3, 23x,'icombf=',I6) c c Read CD spectra of proteins in basis set DO 10 I=1, NbasCD Read(2,1006) Proname Write(7,1008) Proname Read(2,1010) (BasCD(J,I),J=1,Nwave) Write(7,2015) (BasCD(J,I),J=1,Nwave) 10 Continue c c Read secondary structure of proteins in basis set DO 30 I=1,NbasCD Read(3,1006) Proname Write(7,1008) Proname Read(3,1010) (Fsstr(I,K),K=1,Nsstr) Write(7,2010) (Fsstr(I,K),K=1,Nsstr) 30 Continue C C Loops thru up to 100 proteins to be analyzed Do 1202 IProCD=1,Npro C C Initialize reconstucted CD Do 35,J=1,Nwave 35 RecnCD(J)=0.0 C C Read in CD of protein to be analysed C Read(1,1006) Proname Write(7,2000) Write(7,1008) Proname Write(9,1008) Proname Read(1,1010) (ProCD(J),J=1,Nwave) Write(7,2015) (ProCD(J),J=1,Nwave) C C Analyze ProCD using all basis CD spectra in basCD as original Hennessey and C Johnson to get accurate analysis for alpha helix (H) Call BVPRO3(NbasCD,Nwave,BasCD,Fsstr,Nsstr,ProFss, 2NbsCDv,ProCD) H=ProFss(1) Write(7,2060) H 2060 Format(' Helix from H and J SVD with all basis proteins is',F6.3) C C Set up seed for generation random numbers CNCF Call GetTim(ihr,imin,isec,i100th) CNCF iseed=(360000*ihr)+(6000*imin)+(100*isec)+i100th CNCF Call Seed(iseed) Call Seed() C C NbsCDi=NbasCD icnt=0 C DO 1200 icomb=1,icombf c Call BVPRO4(Nwave,BasCD,Fsstr,Nsstr,Psstr,RecnCD1,IproCD, 2RmseMx,FssMin,NbsCDv,ProCD,NbsCDi,NbsCDf,icnt,icomb,icombf) If(icnt.ge.ncomb) GoTo 1205 1200 Continue 1205 If (icomb.ge.icombf) then icntf=icnt Else icntf=ncomb Endif If(icntf.lt.5) then Write(6,2500) Write(6,2501) GoTo 1201 Endif C C The program now searches the ncomb successful combinations for ones that have C a fraction of alpha helix similar to that predicted by Hennessey and Johnson C SVD (H). For most proteins with H less than 0.15 it doesn't matter, but a few C have alpha helix closer to the minimum in the successful combinations while C others have alpha closer to H. We average these two possibilities to get the C basis for the search. Proteins with alpha greater than 0.65 need all the alpha C they can get, and we search the successful combinations for the maximum alpha. C For most proteins with H between 0.25 and 0.65 it doesn't matter, but a few C have alpha closer to the maximum in the successful combinations while C others have alpha closer to H. We average these two possibilities to get the C basis for this search. The search of the combinations for proteins with H C between 0.15 and 0.25 simply uses H as the basis. C Do 38, K=1,Nsstr 38 ProFss(K)=0.0 min=icntf/20 If(min.lt.4) min=4 If(H.lt.0.15) then Hmin=1.0 Do 40 I=1,icntf 40 If(Psstr(1,I).lt.Hmin) Hmin=Psstr(1,I) 43 If(Hmin.le.0.0) Hmin=0.0 Hmin=(Hmin+H)/2.0 Hmax=Hmin+0.03 Hmin=Hmin-0.03 c Write(7,2010)Hmin,Hmax isstr=0 Do 45 I=1,icntf If((Psstr(1,I).ge.Hmin).and.(Psstr(1,I).le.Hmax)) then Do 46 K=1,Nsstr 46 ProFss(K)=Psstr(K,I)+ProFss(K) Do 141 J=1,Nwave 141 RecnCD(J)=RecnCD(J)+RecnCD1(J,I) isstr=isstr+1 Endif 45 Continue If(isstr.eq.0) then Write(6,1025) Goto 1201 Endif 1025 Format(' Random selection failed to give good helix, try again wit 1h larger ncomb') Do 47 K=1,Nsstr 47 ProFss(K)=ProFss(K)/isstr Do 142 J=1,Nwave 142 RecnCD(J)=RecnCD(J)/isstr Write(9,1010) (RecnCD(J),J=1,Nwave) Write(7,2011) (ProFss(K),K=1,Nsstr),isstr C ElseIf(H.gt.0.25) then Hmax=0.0 Do 50 I=1,icntf 50 If(Psstr(1,I).gt.Hmax) Hmax=Psstr(1,I) 51 icnt=0 Do 52 I=1,icntf If(Psstr(1,I).ge.Hmax) icnt=icnt+1 52 Continue If(icnt.ge.min) GoTo 53 Hmax=Hmax-0.001 GoTo 51 53 If(H.lt.0.65) then Hmax=(Hmax+H)/2.0 Hmin=Hmax-0.03 Hmax=Hmax+0.03 Else Hmin=Hmax-0.03 Hmax=1.0 Endif isstr=0 Do 55 I=1,icntf If((Psstr(1,I).ge.Hmin).and.(Psstr(1,I).le.Hmax)) then Do 56 K=1,Nsstr 56 ProFss(K)=Psstr(K,I)+ProFss(K) Do 151 J=1,Nwave 151 RecnCD(J)=RecnCD(J)+RecnCD1(J,I) isstr=isstr+1 Endif 55 Continue If(isstr.eq.0) then Write(6,1025) Goto 1201 Endif Do 57 K=1,Nsstr 57 ProFss(K)=ProFss(K)/isstr Do 152 J=1,Nwave 152 RecnCD(J)=RecnCD(J)/isstr Write(9,1010) (RecnCD(J),J=1,Nwave) Write(7,2011) (ProFss(K),K=1,Nsstr),isstr C Else Hmin=H-0.03 Hmax=H+0.03 isstr=0 Do 65 I=1,icntf If((Psstr(1,I).ge.Hmin).and.(Psstr(1,I).le.Hmax)) then Do 66 K=1,Nsstr 66 ProFss(K)=Psstr(K,I)+ProFss(K) Do 161 J=1,Nwave 161 RecnCD(J)=RecnCD(J)+RecnCD1(J,I) isstr=isstr+1 Endif 65 Continue If(isstr.eq.0) then Write(6,1025) Goto 1201 Endif Do 67 K=1,Nsstr 67 ProFss(K)=ProFss(K)/isstr Do 162 J=1,Nwave 162 RecnCD(J)=RecnCD(J)/isstr Write(9,1010) (RecnCD(J),J=1,Nwave) Write(7,2011) (ProFss(K),K=1,Nsstr),isstr EndIf C 1201 Continue 1202 Continue C 2000 Format(///) 1000 Format(I10) 1006 Format(A50) 1008 Format(3x,A50) 1010 Format(F10.2) 1012 Format(3x,'Protein being analyzed is ',A50) 1014 Format(3x,'RmseF is:') 2010 Format(3X,10F6.3) 2011 Format(/' Predicted: H=',F4.2,' G=',F4.2,' E=',F4.2,' T=', 2F4.2,' P=',F4.2,' O=',F4.2,' No solns avgd=',I3) 2012 Format(3x,'Fsstr:',3x,8F6.3) 2015 Format(3X,10F6.2) 2500 Format(' The number of acceptable solutions is less than five.') 2501 Format(' There is a problem. Are you using delta epsilon units?') C Close(Unit=1) Close(Unit=2) Close(Unit=3) Close(Unit=7) Close(Unit=9) END C C C C C C SUBROUTINE BVPRO3(NbasCD,Nwave,BasCD,Fsstr,Nsstr,ProFss, 2NbsCDv,ProCD) Parameter (Nwave1=100, NbsCD1=35, Nsstr1=6, Matxu=1, Matxv=1) Dimension CD(Nwave1,NbsCD1), U(Nwave1,NbsCD1), V(Nwave1,NbsCD1) Dimension S(NbsCD1), Work(NbsCD1), SS(NbsCD1,Nsstr1) Dimension BasCD(Nwave1,NbsCD1), Fsstr(NbsCD1,Nsstr1) Dimension C(NbsCD1), ProFss(Nsstr1), ProCD(Nwave1) LOGICAL Matu, Matv C C CREATES INPUT DATA FOR SINGULAR VALUE DECOMPOSITION C NbsCDf=NbasCD DO 12 ia=1,NbsCDf DO 3 J=1,Nwave 3 CD(J,ia)=BasCD(J,ia) DO 4 K=1,Nsstr 4 SS(ia,K)= Fsstr(ia,K) 12 Continue NCD=NbsCDf+1 DO 15 J=1,Nwave 15 CD(J,NCD)=ProCD(J) SS(NCD,1)=0.36 SS(NCD,2)=0.06 SS(NCD,3)=0.18 SS(NCD,4)=0.12 SS(NCD,5)=0.07 SS(NCD,6)=0.21 IM=1 Matu=IM.EQ.Matxu Matv=IM.EQ.Matxv C C SUBROUTINE SVD IS CALLED FOR SINGULAR VALUE DECOMPOSITION C C THE VARIABLE Nwave1 MUST BE SET AT LEAST AS LARGE AS THE MAXIMUM C OF ROW DIMENSION OF 'CD'.SEE SUBROUTINE SVD FOR FURTHER COMMENTS. C Call SVD(Nwave,NCD,CD,S,Matu,U,Matv,V,ierr,Work) C IF(ierr .NE. 0) Write(7,1025) ierr 1025 Format(' TROUBLE, IERR=',I4) C C Predicted Structure (ProFss) from CD of protein (ProCD) and C significant number (NbsCDv) of CD basis vectors in U by simple C matrix multiplication from L. A. Compton and W. C. Johnson Jr. C (Anal Biochem (1986) 155, 155-167) given by: C ProFss = Fsstr * V * S(inverse) * U(transpose) * ProCD C 22 IF(NbsCDv.EQ.0) GO TO 400 C DO 35 ib=1,NCD 35 C(ib)=0.0 DO 60 K=1,NbsCDv Dotprd=0.0 DO 40 J=1,Nwave 40 Dotprd=Dotprd+U(J,K)*ProCD(J) If(S(K).eq.0.0) then Write(6,1026) Goto 400 endif 1026 Format( 'Trouble! A singular value equals 0.0, run protein again') Dotprd=Dotprd/S(K) DO 50 I=1,NCD 50 C(I)=C(I)+Dotprd*V(I,K) 60 Continue DO 75 JINT=1,20 DO 75 K=1,Nsstr ProFss(K)=0.0 DO 70 I=1,NCD 70 ProFss(K)=ProFss(K)+C(I)*SS(I,K) SS(NCD,K)=ProFss(K) 75 Continue C C 400 Continue C C END OF PROGRAM C 9998 RETURN END SUBROUTINE Seed() INTEGER :: i, n, clock INTEGER, DIMENSION(:), ALLOCATABLE :: mySeed CALL RANDOM_SEED(size = n) ALLOCATE(mySeed(n)) CALL SYSTEM_CLOCK(COUNT=clock) mySeed = clock + 37 * (/ (i - 1, i = 1, n) /) CALL RANDOM_SEED(PUT = mySeed) DEALLOCATE(mySeed) END SUBROUTINE C C C SUBROUTINE BVPRO4(Nwave,BasCD,Fsstr,Nsstr,Psstr,RecnCD1,IproCD, 2RmseMx,FssMin,NbsCDv,ProCD,NbsCDi,NbsCDf,icnt,icomb,icombf) Parameter (Nwave1=100, NbsCD1=35, Nsstr1=6, Matxu=1, Matxv=1) Dimension CD(Nwave1,NbsCD1), U(Nwave1,NbsCD1), V(Nwave1,NbsCD1) Dimension S(NbsCD1), Work(NbsCD1),RecnCD1(Nwave1,400) Dimension BasCD(Nwave1,NbsCD1), Fsstr(NbsCD1,Nsstr1) Dimension Numbas(NbsCD1), SS(NbsCD1,Nsstr1), Psstr(Nsstr1,400) Dimension C(NbsCD1), ProFss(Nsstr1), ProCD(Nwave1),RecnCD(Nwave1) LOGICAL Matu, Matv C C CREATES INPUT DATA FOR SINGULAR VALUE DECOMPOSITION C IF(icnt.gt.icombf) STOP Call Rndm(NbsCDi,NbsCDf,Nwave,Nsstr, 2BasCD,Fsstr,Numbas,CD,SS) NCD=NbsCDf+1 DO 15 J=1,Nwave 15 CD(J,NCD)=ProCD(J) SS(NCD,1)=0.36 SS(NCD,2)=0.06 SS(NCD,3)=0.18 SS(NCD,4)=0.12 SS(NCD,5)=0.07 SS(NCD,6)=0.21 IM=1 Matu=IM.EQ.Matxu Matv=IM.EQ.Matxv C C SUBROUTINE SVD IS CALLED FOR SINGULAR VALUE DECOMPOSITION C C THE VARIABLE Nwave1 MUST BE SET AT LEAST AS LARGE AS THE MAXIMUM C OF ROW DIMENSION OF 'CD'.SEE SUBROUTINE SVD FOR FURTHER COMMENTS. C Call SVD(Nwave,NCD,CD,S,Matu,U,Matv,V,ierr,Work) C IF(ierr .NE. 0) Write(7,1025) ierr 1025 Format(' TROUBLE, IERR=',I4) C C Predicted Structure (ProFss) from CD of protein (ProCD) and C significant number (NbsCDv) of CD basis vectors in U by simple C matrix multiplication from L. A. Compton and W. C. Johnson Jr. C (Anal Biochem (1986) 155, 155-167) given by: C ProFss = Fsstr * V * S(inverse) * U(transpose) * ProCD C 22 IF(NbsCDv.EQ.0) GO TO 400 C DO 35 ib=1,NCD 35 C(ib)=0.0 DO 60 K=1,NbsCDv Dotprd=0.0 DO 40 J=1,Nwave 40 Dotprd=Dotprd+U(J,K)*ProCD(J) If(S(K).eq.0.0) then Write(6,1026) Goto 400 endif 1026 Format( 'Trouble! A singular value equals 0.0, run protein again') Dotprd=Dotprd/S(K) DO 50 I=1,NCD 50 C(I)=C(I)+Dotprd*V(I,K) 60 Continue DO 75 JINT=1,20 Tot=0.0 DO 75 K=1,Nsstr ProFss(K)=0.0 DO 70 I=1,NCD 70 ProFss(K)=ProFss(K)+C(I)*SS(I,K) SS(NCD,K)=ProFss(K) IF(ProFss(K).LT.0.0) GO to 75 Tot=Tot+ProFss(K) 75 Continue C C Reconstructed CD spectrum corresponding to predicted sec struc C SSE=0.0 DO 90 J=1,Nwave RecnCD(J)=0.0 DO 88 JA=1,Nwave DO 88 K=1,NbsCDv 88 RecnCD(J)=RecnCD(J)+U(J,K)*U(JA,K)*ProCD(JA) C se=RecnCD(J)-ProCD(J) SSE=SSE+se*se 90 Continue RMSE=SQRT(SSE/FLOAT(Nwave)) C C If((Tot.ge.0.952).and.(Tot.le.1.05).and.(RMSE.le.RmseMx).and. 2(ProFss(1).ge.FssMin).and.(ProFss(2).ge.FssMin).and. 3(ProFss(3).ge.FssMin).and.(ProFss(4).ge.FssMin).and. 4(ProFss(5).ge.FssMin).and.(ProFss(6).ge.FssMin))then icnt=icnt+1 Do 91 K=1,Nsstr 91 Psstr(K,icnt)=ProFss(k) Do 95 J=1,Nwave 95 RecnCD1(J,icnt)=RecnCD(J) C Write(7,1020) icomb,icnt,(ProFss(K),K=1,Nsstr),Tot,RMSE C Write(7,1021)(Numbas(I),I=1,NbsCDf) c Write(7,1090) C Write(7,2010)(S(I),I=1,NbsCDv) C Write(7,1091) C DO 92 K=1,NbsCDv C92 Write(7,2010)(U(J,K),J=1,Nwave) C Write(7,1092) C DO 93 I=1,NCD C93 Write(7,2010)(V(I,K),K=1,NbsCDv) EndIf C icombr=icombf-icomb Write(6,3001) IproCD,icnt,icomb,icombr C 400 Continue C C END OF PROGRAM C 1011 Format(F10.2) 1020 Format(2X,2I6,6F6.2,1X,F6.2,1X,2F7.3) 1021 Format(3x,25I3) 1090 Format('Singular Values are:') 1091 Format('U Matrix is:') 1092 Format('V Matrix is:') 2010 Format(1X,10F6.2) 3001 Format(' Pro',I3,', Successful comb',I4,', Trial comb',I7, 2', Remaining comb=',I7) 9998 RETURN END C C C Subroutine Rndm(NbsCDi,NbsCDf,Nwave,Nsstr, 2BasCD,Fsstr,Numbas,CD,SS) Parameter (Nwave1=100, NbsCD1=35, Nsstr1=6) Dimension Numbas(NbsCD1),BasCD(Nwave1,NbsCD1),Fsstr(NbsCD1,Nsstr1) 2,CD(Nwave1,NbsCD1),SS(NbsCD1,Nsstr1) DO 100 I=1,NbsCDf 10 I1=0 Call Random_number(ranval) scrap=ranval*Real(NbsCDi) Numbas(I)=Int(scrap)+1 20 I1=I1+1 IF(I1.ge.I) Goto 30 IF(Numbas(I).eq.Numbas(I1))Goto 10 Goto 20 30 na=Numbas(I) DO 3 J=1,Nwave 3 CD(J,I)=BasCD(J,na) DO 4 K=1,Nsstr 4 SS(I,K)=Fsstr(na,K) 100 Continue C C Write(8,1000) icnt,(Numbas(I),I=1,NbsCDf) 1000 Format('icnt=',I4,2x,30I3) Return End C C C SUBROUTINE SVD(M,N,A,W,Matu,U,Matv,V,ierr,RV1) C$NOTSTRICT C----------------------------------------------------------------------- C ***NOTE WELL*** Nwave1 must be greater than or equal to NbsCD1, C or you WILL GET THE WRONG ANSWER!!!! PARAMETER (Nwave1=100,NbsCD1=35) Dimension A(Nwave1,NbsCD1),W(NbsCD1),U(Nwave1,NbsCD1) Dimension V(Nwave1,NbsCD1),RV1(NbsCD1) LOGICAL MATU,MATV C------------------------------------------------------------------------ C Singular Value Decomposition subroutine from: C Forsythe, Malcolm, & Moler. "Computer Methods for Mathematical C Computations", Prentice-Hall, Inc., 1977. C C This subroutine is a translation of the ALGOL procedure SVD, C Num. Math. 14, 403-420(1970) by Golub and Reinsch. C Handbook for Auto. Comp., Vol. II-Linear Algebra, 134-151(1971). C C This Subroutine determines the Singular Value Decomposition C T C A = U S V of a real M by N rectangular matrix. Householder C bidiagonalization and a variant of the QR algorithm are used. C C For input: C C NM must be set to the row dimension of two-dimensional C array parameters as declared in the calling program C dimension statement. Note that NM must be at least C as large as the maximum of M and N. C C M is the number of rows of A, and U. C C N is the number of columns of A and U and the order of V. C C A contains the rectangular input matrix to be decomposed. C C MATU should be set to .TRUE. if the U matrix is desired. C C MATV should be set to .TRUE. if the V matrix is desired. C C On output: C C A is unaltered (unless overwritten by U or V). C C W contains the N non-negative singular values of A (the C diagonal elements of S). They are unordered. If an error C exit is made, the singular values should be correct for C indicies IERR+1, IERR+2, ..., N. C C U contains the matrix U (orthogonal column vectors) of the C decomposition if MATU has been set to .TRUE. otherwise C U is used as a temporary array. U may coincide with A. C If an error exit is made, the columns of U corresponding C to indices of correct singular values should be correct. C C V contains the matrix V (orthogonal) of the decomposition if C MATV has been set to .TRUE. otherwise V is not referenced. C V may also coincide with A if U is not needed. If an error C exit is made, the columns of V corresponding to indices of C correct singular values should be correct. C C IERR is set to: C 0 for normal return. C K if the K-th singular value has not been determined C after 35 iterations. C C RV1 is a temporary storage array. C C Questions and comments should be directed to B. S. Gargow, C Applied Mathematics Division, Argonne National Laboratory. C---------------------------------------------------------------------------- IERR = 0 C DO 100 I=1,M DO 100 J=1,N U(I,J) = A(I,J) 100 CONTINUE C------------------------------------------------- C HOUSEHOLDER REDUCTION TO BIDIAGONAL FORM C------------------------------------------------- G = 0.0 SCALE = 0.0 ANORM = 0.0 C DO 300 I=1,N L = I + 1 RV1(I) = SCALE * G G = 0.0 S = 0.0 SCALE = 0.0 IF(I .GT. M) GOTO 210 C DO 120 K=I,M 120 SCALE = SCALE + ABS( U(K,I) ) C IF(SCALE .EQ. 0.0) GOTO 210 C DO 130 K = I,M U(K,I) = U(K,I) / SCALE S = S + U(K,I)**2 130 CONTINUE C F = U(I,I) G = -SIGN( SQRT(S), F ) H = F * G - S U(I,I) = F - G IF(I .EQ. N) GOTO 190 C DO 150 J=L,N S = 0.0 C DO 140 K=I,M 140 S = S + U(K,I) * U(K,J) C F = S / H C DO 150 K=I,M U(K,J) = U(K,J) + F * U(K,I) 150 CONTINUE C 190 DO 200 K=I,M 200 U(K,I) = SCALE * U(K,I) C 210 W(I) = SCALE * G G = 0.0 S = 0.0 SCALE = 0.0 IF(I .GT. M .OR. I .EQ. N) GOTO 290 C DO 220 K=L,N 220 SCALE = SCALE + ABS( U(I,K) ) C IF(SCALE .EQ. 0.0) GOTO 290 C DO 230 K = L,N U(I,K) = U(I,K) / SCALE S = S + U(I,K)**2 230 CONTINUE C F = U(I,L) G = -SIGN( SQRT(S), F ) H = F * G - S U(I,L) = F - G C DO 240 K=L,N 240 RV1(K) = U(I,K) / H C IF(I .EQ. M) GOTO 270 C DO 260 J=L,M S = 0.0 C DO 250 K=L,N 250 S = S + U(J,K) * U(I,K) C DO 260 K=L,N U(J,K) = U(J,K) + S * RV1(K) 260 CONTINUE C 270 DO 280 K=L,N 280 U(I,K) = SCALE * U(I,K) C 290 ANORM = AMAX1(ANORM,ABS(W(I))+ABS(RV1(I))) 300 CONTINUE C--------------------------------------------------- C ACCUMULATION OF RIGHT-HAND TRANSFORMATIONS C--------------------------------------------------- IF(.NOT. MATV) GOTO 410 C--------------------------------------- C FOR I = N STEP -1 UNTIL 1 DO -- C--------------------------------------- DO 400 II=1,N I = N + 1 - II IF(I .EQ. N) GOTO 390 IF(G .EQ. 0.0) GOTO 360 C DO 320 J=L,N 320 V(J,I) = (U(I,J) / U(I,L)) / G C DO 350 J=L,N S = 0.0 C DO 340 K=L,N 340 S = S + U(I,K) * V(K,J) C DO 350 K=L,N V(K,J) = V(K,J) + S * V(K,I) 350 CONTINUE C 360 DO 380 J=L,N V(I,J) = 0.0 V(J,I) = 0.0 380 CONTINUE C 390 V(I,I) = 1.0 G = RV1(I) L = I 400 CONTINUE C-------------------------------------------------- C ACCUMULATION OF LEFT-HAND TRANSFORMATIONS C-------------------------------------------------- 410 IF(.NOT. MATU) GOTO 510 C MN = N IF(M .LT. N) MN = M C DO 500 II= 1,MN I = MN + 1 - II L = I + 1 G = W(I) IF(I .EQ. N) GOTO 430 C DO 420 J=L,N 420 U(I,J) = 0.0 C 430 IF(G .EQ. 0.0) GOTO 475 IF(I .EQ. MN) GOTO 460 C DO 450 J=L,N S = 0.0 C DO 440 K=L,M 440 S = S + U(K,I) * U(K,J) C F = (S / U(I,I)) / G C DO 450 K=I,M U(K,J) = U(K,J) + F * U(K,I) 450 CONTINUE C 460 DO 470 J=I,M 470 U(J,I) = U(J,I) / G C GOTO 490 C 475 DO 480 J=I,M 480 U(J,I) = 0.0 C 490 U(I,I) = U(I,I) + 1.0 500 CONTINUE C----------------------------------------------- C DIAGONALIZATION OF THE BIDIAGONAL FORM C----------------------------------------------- 510 DO 700 KK = 1,N K1 = N - KK K = K1 + 1 ITS = 0 C--------------------------- C TEST FOR SPLITTING C--------------------------- 520 DO 530 LL=1,K L1 = K - LL L = L1 + 1 IF(ABS(RV1(L))+ANORM .EQ. ANORM) GOTO 565 IF(ABS(W(L1))+ANORM .EQ. ANORM) GOTO 540 530 CONTINUE C------------------------------------------- C CANCELLATION OF RV1(L) IF L .GT. 1 C------------------------------------------- 540 C = 0.0 S = 1.0 C DO 560 I=L,K F = S * RV1(I) RV1(I) = C * RV1(I) IF(ABS(F)+ANORM .EQ. ANORM) GOTO 565 G = W(I) H = SQRT( F*F + G*G ) W(I) = H C = G / H S = -F / H IF(.NOT. MATU) GOTO 560 C DO 550 J=1,M Y = U(J,L1) Z = U(J,I) U(J,L1) = Y * C + Z * S U(J,I) = -Y * S + Z * C 550 CONTINUE C 560 CONTINUE C---------------------------- C TEST FOR CONVERGENCE C---------------------------- 565 Z = W(K) IF(L .EQ. K) GOTO 650 C--------------------------------------- C SHIFT FROM BOTTOM 2 BY 2 MINOR C--------------------------------------- IF(ITS .EQ. 35) GOTO 1000 ITS = ITS + 1 X = W(L) Y = W(K1) G = RV1(K1) H = RV1(K) F = ((Y-Z)*(Y+Z)+(G-H)*(G+H)) / (2.0 * H * Y) G = SQRT( F*F + 1.0 ) F = ((X-Z)*(X+Z)+H*(Y/(F+SIGN(G,F))-H))/X C------------------------------- C NEXT QR TRANSFORMATION C------------------------------- C = 1.0 S = 1.0 C DO 600 I1=L,K1 I = I1 + 1 G = RV1(I) Y = W(I) H = S * G G = C * G Z = SQRT(F*F + H*H) RV1(I1) = Z C = F / Z S = H / Z F = X * C + G * S G = -X * S + G * C H = Y * S Y = Y * C IF(.NOT. MATV) GOTO 575 C DO 570 J=1,N X = V(J,I1) Z = V(J,I) V(J,I1) = X * C + Z * S V(J,I) = -X * S + Z * C 570 CONTINUE C 575 Z = SQRT(F*F+H*H) W(I1) = Z C----------------------------------------------- C ROTATION CAN BE ARBITRARY IF Z IS ZERO C----------------------------------------------- IF(Z .EQ. 0.0) GOTO 580 C = F / Z S = H / Z 580 F = C * G + S * Y X = -S * G + C * Y IF(.NOT. MATU) GOTO 600 C DO 590 J=1,M Y = U(J,I1) Z = U(J,I) U(J,I1) = Y * C + Z * S U(J,I) = -Y * S + Z * C 590 CONTINUE C 600 CONTINUE C RV1(L) = 0.0 RV1(K) = F W(K) = X GOTO 520 C-------------------- C CONVERGENCE C-------------------- 650 IF(Z .GE. 0.0) GOTO 700 C W(K) = -Z IF(.NOT. MATV) GOTO 700 C DO 690 J=1,N 690 V(J,K) = -V(J,K) C 700 CONTINUE C GOTO 1001 C------------------------------------------------------- C SET ERROR - NO CONVERGENCE AFTER 30 ITERATIONS C------------------------------------------------------- 1000 IERR = K 1001 RETURN END """ # UUEncoded Binary file for Linux x86 UUENCODE_LINUX32=r"""begin 755 CDsstr.gz M'XL("'0=HU T-$609G<)8. ML#+*4T$S5N2)#M; T$!Z@!;29&50IG#2[.GSD6W=+2M"G=/99<_V[.I,5=:M MPCIIB:8PU8DU:F)#"6,=4UOG5 ^.@FCV^[[[[LM[+ZTPGFW/R[W?O?=]]_OS MN]_]WGNW4;SK-HO%(O"_$J%40"HA6VT+H&S?QMH7"+.$:<(!WYF2#@A?<+%:S? M6@]7WFK#:RLTM/M+:%[L+X%B)O3/A#Z\4D#C-46= R\?W..#N?%:!O0R75_5 M^X&:76MA^JS5AE<-M-7H^N^!?F&"/\Y_)?3KY3L';>=T^GUO<^W/OK>YYF\V MU]8%M\]KJ)_W?=97H?;?_A-)M37C.5.]UZ':#OM/+AE\+VH[,^.)_ M\<2.IM_=C..O4GF0K6;!O]KVS)WO19 M[J\W]9\P];]GZO_[O--$BC'>]"1B#^J6"71 5QLWU/L# M_G5U"*L?"![/QBWU=9Z&P#I_P.,1/"O^WK/2N[&V(>#UW[IY74.#MT'P\#L\ M^-.PP>OWK/>M\Z];#V,\#_MK U[=D 9OP%._-5!;7Z>_L0$;O76Z%G^P+E"[ MQ>OQ^OWU_HFF\'O7;2[B#E=-_1:/?X&1]_K-]0W>B9C4U@6\&[U^DWSK_!L; MBIDV>+TUGEH#YY^#&;8@]_6;/*8I0;P:3TU]G796B^E2]#J95J/H)9L3[ (-Y2P&(EKI:*V M]F*,BCO4-8/]BXKZ2W7]C$^%NGZ:O&=*,$HVJ??L(KI$>%P=/PYQ>XH=:V6V MJ1:<"4KHLV$)XI9C:<5[H2S#V SE%(S54$X5!">6-I0%RFFP3K&\2( =$LKI M@C 7RW)!F(_EQ;A?0GF)("S$$N9=C"4(MA3+2W%_@A(6_1U8PF9Y%Y:P(51A M>3G$1BR_A3$9RF]#+,02-HZU6%Z!^Q>45\*>AZ53$.X-C=ERJ-Z:W4?#+6VDBVBTH ]=-M)!-%K2-P?I5J+1 MHCZ$S\@NHM&ROH5(;R4:+>Q;BO1:HM'2OCN0KB(:+>ZK0GHIT6AY'VY=(_.) M1@_XUB(]BVCTA \5&JD@&CWBVXJT0#1ZQK<=Z?&OD$8/^7:1_D2CIWS-I#_1 MZ#%?*^E/-'K.MX_T)QH]Z.L@_8E&3_HZ27^BT:.^+M*?:/2LKYOT)QH][(N2 M_D2CIWU]I#_1Z'%?@O0'^L:/'I)/A8;'JU:M]$4'(/^I@I][[O-= D7N9AA_ MNM7P)\GO U2LNY;L C9"\.9?-4%YN *\OWNT''Y[OB@)C5HJ4PU71V@[#D4M M_X9#\HXP=M/PRI0_]VH9,K"$8M8UU4N$R)'OXGC@'QJ;^2L'C 7PS4"] M!*A,BUM=V)9/'#N*,JR^[][=8\YG *?B8J5"$96-UW2W] :7F!I%&+G0/-('(S\UC6Q50+3NZQ]L,;?_&MN77+2:,XF+4=0B MM#-JL;=%[2]$Y?!6&*BG-^.-X< JLIL+:GW,Z]^?Q22&GBX;E0FPY!*!ZN M@MJ=U+8*:A@YXN%94,.X'0^[H 9,A BU(<]I7X)^,)F56E6QK85^^1PJQJD# MY]"QW9KA;LV@6S/$ M)"[VL]OZ[2T2U.!6=I,TK$@V909'CY1J7()LW?V;CM64NE.A$6^Z*8)&5-RI MR /P.S]M?7+H6%H<'NI)5P_##?:V'OL+QPA$QP*O*%)_Z$-+NFDO&CG]IY,C M.[SX>R(5])BM>)5FQ1K-BHLGL.(4@Q6/?J&W4A"HD<=AGSN1,LX,\GT,\K%E M$!>S3+MLXVVD7994R89&8#Q9C2N<90HCDE)N5+']*3*JE.5J9E'-(VA(UO93-9CD=69)CQE+:].!P$H37* M#8IMS(GV)U#G\$#PURZ8@]9N".R#:/X ;*7:I<\4N^PM M9[E=4CJ[+'@5Q2&<)IE9DO:6%G6D>ZXRC5O6W=^X =NJ4Y&&//S"'I!N>HIN MK^[?-%A3BDW@X:<(TFI3LM T=$RI3D8>@2[ ^6%FPO_&VX&SO>VH_85!4FTP MT(XBJ#9-@DWM30WH!BG%K,($1A4@YJ:MCPV-I*N/I,4C*3?\]J&Q^DSQU]YD MRZNA7 X[ -Z#](NC/TY'TV<'ZS1"UPE8K]D?O/*&)_*&=1]JA*SY3+]\%HCEQP>C1@ M1FOC3834QCBO> M%!XE+3QV:.%1.F]X//CGPB:CB+.,.\QW#9V+C9T7&3J7&CL_^E2_=VTOVKM> M^U0?E4\"M3N&:=&:ASS51UF>%!I[%/P5IVQ=M2-;RV*RL9KL6([K.\;<%&M< M2&L[1F$Y&=EVH%!_ .H5BO-)Q>V4G<_"6+X08QCP+@-D5*LH4L12O%:.-\TBY)&(E2,N:$D) ^!8PQ$AR$,5S@* H\ !TLWNZP M:U585,6<5Q=QYG4_F^6Y5/ @5IR/%0N0ZDN+G2A IUF _T(+Y"R;$EY%="K6 M5EG,P% M!EW*8I B=J*S__ )1JE,^OV3V1.IV?AXG#X%:Z4DG87_ZA1T@?52 MWLYT=;O&%AN]P $:T4OD.F:_H3(D+JI099@-XG96]X5],E*I^).TCX@NZ.5 M4K3Q%L)(DG 1)8R 8L]RI!1:,&%1596B'"U11$L4.E+!]G1UQL3Z;AW\HCKX M12,_9TQ?+$S,6U+NS% /5A&5QGF>1VU4&\>TWS2=-)O@ALA47P._,B MZ*9@:5@$4<)B3+<(HKK0>9Y%8.*XO(@CKQ>P#ZB'K',NH;YS,M2_6(3ZOR74 M&RRVZ/Q0F!3U:8SB"'R$O+4U?8I3&(P9]^/>_FT!#C8 M2BA(XQ,,!'YUCT]2=OKE&=S^9\'S]3C2X6OX(M%G[Q>7J%DJ&"W4:[E!ZI=A M*2.U2,*EA/F/F"HLA11?"LLPY]*L'<.-[FY=$(O1YA8S>0YN,/OR3"J84MRN MM/-)\_[WO)&]O>4-AIX7"3WN3J6Z6W&7*]/DZFBE6T5/=90EPI&& THU\']> MJ8Y12Y1:7-"B0X\[RE/A**;"41-'TL=P/Z\_PG@=AAS;U,(P!%7G\V;VSYL4 MM#?=2 \\!AO>4I0LN Z3OLYG"Z8U-)O-%H5@"YG;IN->1<)!NVZ6:=.DA3Q7 M<3PF2_"(F92E[J*GG$^_I(110\QNCAA9?!K7<041E;T[;6Q58^O3>C15<30] MK<-2$NHP&Q?!P45@& LL,EG@AB(+."=3]9V)H8GO!6"V1=+3]J:\8(:IO65T M AS93#A*ZKQ>C"/G>7#D3L(3[::TES#^)([[&&".>W-U4C_7UR/,680P)R$, M]V:H7@C"ODT(X_D V?=AXQ)-FL(M+4=G\7(,WCSZJHG3/,-Z_WI/L82 XY(J M[WHI*.Y/YT ?-2J: /D< 9*2VR,LN3UB;WEVBHK*&\0CLKA/$?=1DAN-BWTL M)8=:%X-D5^,.FK@+PKS\^O5ORY_(TB%%.L01V!_FDUED Q5((SKUP:&E\/C#'G7$6.,OR-J' M:->+L2R'5GL;3P#UC8:1:;$-U$R+K2R &C)]UM]*_6W8/\+A8MB3 TUH6,,6 M^-17B)^HSBA@\.Y%L/DVO5Z*+[CZKK4WK89GP9#8!\_8W;J!'8 K'=G&R;G, MMIPK(]M1,&\K_HJM&!@@U6K'7[&=7KV([:EHRMTV= ;\JWHE-YE'UOR1>P0< MV$%<.U2NAO0._*MF>"E,#-L@Q'C;4^[VH9Y4L /F46%GA-\^64Q4!A/VE@-J MI!83M'B2&@ZY>GHDM>&SA1OB%^GDUA+*#"J&,TZLR>/O\:!/_WXLV87RKNI&"?C?#"WM4<#3C>E,!E-&1 M8*P.($>FGL7''S"3\25:T,?6*79EV<-D 33!.\V ^9$N@8_I$O@8)?"0WCT' M7"9T=A_N3*H61Y"W?>0!2K_G ^Y OB&8H_R=TCX"FFINJV=9MO::7O+#]B& M$!?'4>6(F,''NI?_P%^EBLE!,0GNASA0#8\*ITFKX?3. ?O_B .'RC? PDYO M20Q6)]-;!BB26_"M67EK2!R'VO@B\?3.J]EM: $'V&&<+#A+L397]@::1]\N M].*:!W-5H''&F''&V&LLZ3099(P,DE7K:*B92CFXWB67/P=CN6G&T#3'U2\& M.<8HIS+*;1JXME0Z'?%G>#U+K^^=Q&@.,S4$Z2A\LE[EL:FEE]NQ#>_[Z%'Z12.(7>/4#E (=8E9]%0H$ 2X3$]P13=$RF?"S 9V=%>9G.C)ELC'(17:R[Y7!,KC5M?G;UIMN659 M^K !7>$/8.Q+%IK/OJP7U7PBB]_[@CAX<1(&OP.T+/;'13HQ4&R;8;SIFE.( MM7Y\L2(E,$JZ,[(;LH)A2++B8C>S&:5A<3%*]XLQ8B=V,>H0%K_%GY?)F%(? M!A%W3!';KA^/5%F830;LRWLM??0E*09[#RIX5!&[Y ==5I3BR$D0M4>U?"(\ M:-^+-OD./.L&KQZ=@Z*O XU0=!^65E<'*OCG(9!#5?9#X! >#):I^7W7HF!; MXZ60 T9NR\O6ET)Q2^A5R^B'$4]>KHXI05"P'RQ^J2)F(@YP0[:RU]X4)O%A M"638BVV04\6%?7DB[0!OZ]#MPHN#J"/ 'D_'/^/\Q1*X&B9QZ MBT:917-HQ8,G&!KP>RXR8LN*&6NZVK&UT&$(;[O'HO^I[C.42Z0*8<3>\K10 M>.,0%X?96_+AQDIZF!BCAXEA>C+A]6WTEKS\67G/4_OP<[\TS!\MAO'1XA@& MGQG\<[*443EEZ#/B6.2!3*&^#>H.QNE0##EE.*<,<3*%+GO3??0E*T4'%)K[ MV+.(P(46A]4#"LW\@,(PA<)A.J#@8@<42&)QF+,=5@\H-!L/** TO%$[H*!O MU XHZ!NU PJZ1L,!!7V[_H "MJN?"T([D]J!A%8ZH%"@]] !A;[[^ &%-NV MPJK5_(#"'NV @O4?^0&%5NV PKDX/Z"P3SN@T*P=4"A'#'7^$65LTPXH/"KQ M;T>[H/8,!IWP08D?4.B4^ &%@,2_'6V7^ $%;$.>OHS^(T^;]I&']^<&Z>2% M2IT=5-^3X9;2BJ\\2$;=CL4.*.1TWW'OH ,*QOTI0TP*YQK,!Q1.FR&_A ,5 M8?ZNTBSUM20U'DO !80/=OQ-B5'FYV!*.I70 M7#B5H,K @@(%'[->]](1@ZQVQ"!+*<[L/'Z!Q'"J9CD87<=KT&,U![B/?5#; M0O[M&O?K-.XVC?N\K^4^ MU8O&J8)SFF+@Y'L' M5RZGKIB [R,:WT7O<+YE0C'?,@/?K6_IXVK?*SRN\OZ.M_7S^M\JGC>LS;M4 MF[>BY'SZ[#/P7?%V,=]_^$;Z="3U^G07Z9-X2S_OOR:+YWU>]9X)Y MC?KT&?CNF,!.__2-]$F\J=?G2)$^@F'>@3>+Y_T7;=Z#FC[[SXNW_VOO::.C MJ+*L3G>@T1 ^9%W\.E..:)+9IDE"B*"CT.0#@R%A0_R8&;6I=%>G:^BN"M55 M^?# .DP,@ED6=UU<=U&._5QZOJR@=AYL>JS.Z<^I0Z^>1[U>']ZO%CP]NII]$J4TIPWWPK3A!W3!TJV0'99"M)\-9PAG%_=L'Q5H.15XGUN@B0Z! MGNO+-<1.BV^7Q3?>C]]';/F+'D7H'_3\JV;>D*'L]D]G\*XX#:B8 MHY5^?*WL)1M7/YHK^RY+]@V6[)>.J+.M?7\(V7]^ ;*?!EST.2/[+!F(_?#W M7E[9Z>V5;XS2*YU#HVGO#^\=JX^RWG'9^[D:?G-,7KG@Z/!\3[_'\GW7@^]; MH_1*9WVO?8\=R4]X8 4QZJE5NZ_SUYS=M/SDII[^ \,:=>5[3J-.1S+L^%E[ MT4;^WR.Y\FG M!>>F;-XV@\Y\>MA64]-OS&/[F7GL2T_D+D^<=&OIR"B]V3D4KWIW>*_ZYR.L M5]6\FVN=]RR^VX;EZ[3.*@?=:SRL_OZ86LEE1X:OS[YW6+Y/>]3GZ"CY.J<% M6T?0X^T.OK,]^/:-LG4Z[==]& ,>ZT'W]C]03UP=(BZP+-X_K)/O.^R.N/[;[/^\W\ #;Q(UN2(6#W[B2 GX3^&C-XG/R+P<2OFX*<%QZ=L1B<# M-5O#NV]O(EGP:?XF4AP^58 YOK#, M-6B9ZZ81YX;;#['FN.]0KAO\RJ);^LEP;N"DV^R@.P&@TTV%^*V-W8\5T7X, MUZ5)]_#@%O3%G+[II[W+!EYM3202&]_^[6=[OO)O?'O/^6\8/P"H.=F]]J3_ M@8F':DZBOYT@_G8B/WDJ$*0_NS%_W/ H9!MO)ISKO6/ '%/=<=87-:8\^#&^E$.R(+[>Z_;N MJWVF=Z+XD1?6PC1+4ZBGJ.MW6X%7.\;76_M'"7H^T;H]Y#W,/W> M@;VC[_<.[\T-2C=84N^RS*:.V#>]M=%=EBD*9[,;8K:RS3_YIJ3:Z=BZ?Q.(\@-GEEG:F*-*W1K MY6; '+0#YB I;85(&\+P>>9R9ZX1]@?' ^D?-9#6CBF0SGZ+;1>?O GMXB\F M_&D&TF5C"J2A-R\ND*YY8_2!] =OY ;2AC$%TO8WQAQ(WWW]H@+I$Z^S#O," M0*>_\MN!U(X)[ ,,"^/-_X_:_.\;4_,/O\9:\]2K8,U0WI]F\Q?'U/QGOWIQ MS7_M*Z-O_NM>R6W^B3$U_XY7QMS\C^RZJ.;_Y"[685XDQ(QE2&-FW6?.K/N, MF77\C,?WT?9WC)SW66N-1ROG%1X-'J;4>I9P+TS,]2OV51RFG$3[= MF5OJ 8]23H?;OA-?\, W.HP7/+K[SW6?G4KWSS%W<6E]F:SA!!:=(B_HX:+A MP'50<.#,?QL[4!S>9^XG=->=*P8D>+)NW];9X YGK^Y-S2K=]!KNM330N@.L MU8T?2P[MR>;U9+62LB_IOD*]U;/F;PS-(MOT5,^J0.;9O_\QHG8?]"WX6O^D M>__5Y V_,Y,=^Q?]>E_OU;/VY>QG]"/9.(V[@!3Y*'$MU8 G+7T9WL>*5=5!,II8/O2(HR M'Q-2,9!-0W0M*?)"6M%EC5<2?%I,*VH7KRD\V2A.T$2.B]!/DB+S'8J>BO-B M9TP4XR9N2DI+&I?NPJWYN(BFB>DV2MBF 1]PV[LNZT$M%I$3)5U>&X M)C365V?$&#X& &Q!GPI +ZSH6D/-7:H84V1X"A#8IAF4!&6E#)\1B9Y,\U55 M\YDV,::I I])$N6TB'Q&4U20"+()?XMIB"^:4T04'E-45KH%O3[!&LC(L^Q(]%G<0,Q3PHH.:( !?^6517-*BNO*2DN*"8OOH.(9 MT^=9N.U8@S0>*H^H@&GOE")HJ%(U!LAT CU4#NDC(BNP*?U MC$;\4F\#79'J4+' JS*X22CHC5 F?H.Z11IZQFS]5"%FM8CN$ZJ21ID,<_%H M6A" 9T5#(E"H78I[^3J1LSE)";>J E1.45=E>(@#&46&EM_%=XBI%)J0L@1' MEFE+%MO1)Q6^O!1T0HS4HFM$4H@W(L7&>B?! VD%1(@.*JV>(&,3C$,78_8(,F,CQ0WP.>24%EI*9\6.J6T MG@:"$*LIS495 I^ &"_);5!MM+]'?. A+F&V44]0HR[;5C#C&#%"!$*_T"KR M)*)1 E =-GQX$V$BX'!:S#A[*A"=["MKQ"3B@G$1PV&QC/DE(>I\T!N""X . M0L2ZZ ;P!%);4C UF D!(L1R0#(#IZ$P@M^1E"!6X%/3Q< \<2DM DM%%N.& M"SI-(\8E4G\FT@I407&F\6*0 T<%ER\-$^-0VRQ3X)&'>5M$$AG-^$OTJ9)( M1NI\"YH:F'3QJW4IMBK593FUE(!2I#\EN_&"U4WJFK *1$/]E$)A#7M]4(=D M6!QS>:$%3 .MA$\C.1(HET-;ET ]T'26W78_&@2<1%1#O-(&=23=,M"^2Y+C M2@>-1YWC.@&,MVX34U(G[85N(U99WC M?G!KL;OU"S%L9V34F5%2.E4ST$E!_ (%"ACXVJ'/('K LJ!7R"9J@T+@D!&5 M=KFT\_3HWQ="82C;1':KAL"=@@"! ^>$ "$UCL9H!19\JZ+$^216,H1VHK, M6CV8,N" G6@6Y@5S<&)@!*V;P/2W@6YK*\+E(9B%\$M8H(8%FEE@.0LTLD"# M@II 9VMOC1,[EGC/?W!??3)59BX?,6M "X"&WP;;:!, M[[XID;AAH>\J_\TK(0-?K7CD69A3PSWP/'US-O1C^O)(&R[4X4SV8#8;@GOC M.]GL/7#_MZ/9[ :X_\T7V>Q/X-X'=_Q5T:)?T;>Z%\-]5A[=5Y_(_*WR6=\,H="0[GDN MFRW&J7.D,-B3MWAR_EW=^>L##_G]ETS:%SD8.10!F@=09I074O-_9+/5TQG\ ME0;^-=,=^+@1,M8UN3^;OS]^4[\)'VO'R&-N+BRNS_W,M@YLG$.3[K[6146=X=L"Q MS^DW_Q9NQP% P#VN.0[W1!R$?,'*CQ06/.2/%$Y='X@4SNC.;R@LS5M:. ,> M[(.<@X!R*%(8.( ;2>/N&<7GZ%H*7O@,?R1].3P+##D3'[_&K_%K_!J_QJ_Q M:_P:O\:O\6O\&OG"7638.UX^)N&Y1'C'\X<*X'[\H4!P,MQ_=RP0_,W7667[ MND 0IU?;NP-!7*@S2,Y!V0CJXT>:YI*KJ)K[XCA9=UO0Y]9(LJ I?$:X,SYU=II.' M\THHS''A3%=:$UK@KJGTGC0_D96]-BXL*YH8CBRNFZT)K0;4*NOA%EU*Q6=+ M<8Y 22&3Y,+Q+AGHT;NFTIQV4<5580<0A3Q53"$>_="6TI"A!/\UL1/^)P" M+ 77'KFPF(PF5"$M1I-QU8:X<$Q3U RPH[?OQU3"6DA+,6"G:.0?I4WIM&0 M+::DTZ*L78 ]K^*H?Z)/D3,7?=1OS,M 8/WUX:LR =CQ7' "WOH[R$& M;RJTJ:E0>#>SEC;5P/T[!@_/Y>P#(4)U3CR\'F?P,#;]KHGCKO3@NXVS_87_ M,!#D5W#SS0DT\I/\Q0P_/ASOG M00_3)PP>QO)!P.OTP!M@\%)@B=1@1XRX4L(>-R"+R4PMD,*%Q"X;Z,)TP:"[8K"A03&]D-AFF!!=.(/<."Z:KU3 NF(XAS%GPY@0":5 MQX*OX-C+#Y&!M5N ^R);P,CG _FN9.3S@7S%C'P^D(^<]_HPA?- /[<;_*@? M7L%]%^YX/ES @/'0O94,OIL_]GE!AO\ZN._ZU(2G<9M=_+>B?8[9]/[=1>]U MN,]^*1#$]6S,Q]>Z\)U7;G4>D0>_6\!7VGA";PIWBJD_GL#Z!:-_'^C_*U?^ M9)^M?Q_H_SJ \PWYIN=-YI;Z;/OP8)\[& 60\WE=<(\+?@%@ MS2@_%>JWPY7_L<_VS^G@GZ=<^0$0;,FST _ZJ7R7N,ZCO]J5?] %?^:"?^^"O^%WPF5^6U]305^W,OD\I&5^[,_S#?XSN>^Z MRM\/\-'G T'\[@/K^T._\SS=OW7A[W+!_^F"OW3!WPPXX;\$&(];%#C*3W#E M/PSP4ZLG6O;;'+#C"^(_%J#QQ)3OR8#3WL^YZ!T%&,]UO-DH_Q' VQ\-!/%[ M)X1/ 'SNZ4 0OU="^!-7>8Z)X:C/&?G._(4N. 'P@]!^\7LPI">[\C?GV_%T M.L;3F*IE-#V1"./!LE7-C4W1^KH5S7A0<;3: 2VM8H"X$FU-*2U"*DH&SE%! M[^3PA864J(GQ<&79O 4<9D2E>"= E64<'7O']72ZR^13TU!-:-4V19;56!"R M,3_;7&(6%^:%P&61N@; 4\68'(N7AY:/5W&B++ZJJ<.>0P72ZZI+YQ<:0^VEA;NZ*F.=H<65Q?$S7/VXUE M]"B94D#!ROF5X591B[;%HEI2EU>%6SHYG!Z8=-QG!B]:Y#B&%\_KA4?6@;U# M'W#L*A@5R23$^YQD-RX5UNO<:!9'D(\"JG<;$8\N]I1H&*H$YG=9*GW M&9Z0[<(Q3E(>HH7GLM:M0.K=,E#6TZVSO:#RC1)- *R7FGLWM M(MW2WJ8J1#VRT>S3P$>VE^.(;3>ZW5K(9'SH MXCF^C:W3T&NB+9KL %HPV_9J4_:IVSGVDF0NTP[NK,KQ=-3C6'(WUPL\CGUH 9QW,<9>YEZXJH1R7<](C._A\UNWH*\8$ end""" UUENCODE_WIN32 = r"""begin 644 CDsstr.exe.gz M'XL(""*ZHE```T-$&4`[%M_5%S5G7\P3)PDQ+`NJ=2"3M:)X@Y& M;(B2"@E)>`2[8(@A&BV)J&0[,9AD(^G2EKA$H(*/**>B!W>I2Q:ZLKMH8TNW MN(=T)XH=4K&R2G1FQ77,P?JF3H_\,2H]9W9F[_?[O?>]^X8AB7%[SOZQJ&_N MO>^^[_U\/_=^?[S[KI5W=RDV15'2V'_QN**,*/17HIS_KYG]=^E5_W:I,KSX M]94C*16OKZSV['W(>?#0@6\?NO=!Y_WW[M]_H,%YWQ[GH*!NS^IERY:XN(PJ55$J4NS*BU==42CD!I4E*4M3&*JG4Q5ESHYM??4IBI+! M"B=2"1V44PFWHIB_BM=A5&QXS:"^QJ_Q0W\''4K1.95T*%-Y-&[U!7`B_GK_ MRJ'4IBQ\?W7#GL8&]KNJ.Y4`/2TIP_^]W:$_]@?O9<#<1 M!PK,3O:\?ILN@(K___L__!=Z[DIVN>9:=HEGL4L9M'T*I:%<=NF`N_\`)1OK M,O%%_G9HX:/A`68"V^^X\P'E(OZQ>1I?VZ0\L-A3#S^I^I_4*4K+6--%RFH' M(4L\3?!CTU^]_\O(ZB%9%^O>V0W.6?OL.Q7PV[AE_G=VUZ]/WP-ULSV3^9D7?NA,J:?K- M]REFQ\G74!/%[.9B M;K**4^LU8FE%2HWH8JB*X_KJ:N.=LM MA3YP`RAQ:,JW,M1X(,&O,HBJ9&]WGK;.K5T.E8/.Y3IR1J)S5UTJU.,6HG-'7*I'8"J9U@LK]JI;;Q##J4@1H+ MM4_M)+[^>[>D23-I\H>M%FJ_N9VZOKS-(K>=Y%:07)\Z#CA\:D32=SRN1EJ. MC!OZ1O9YK[:I4<;ISF^COMLE?1^2D701D@.$Q*>.S1<^AL+'$H5K0OB3VR3A MBU@E]`Z2Z44R_4CFJ*:.NE4O(W-$4[W]^?LV*Z'%*'TD;H=:RY$1-L`-E\'@ MP_@@3>\)33WA5H?9@T.:.MRASG%00SC#0^R9/T50<[ZTM@(F!R/9>PR)1&#O M&?3.2[]EF9CH'<1VW2Z)C@&BH_8VLO["*NG>$-TKO]>Q6R_R.$KSZNV73&=34P0YUP+JL!U#I`:9T%BG-)GBL'N8@SN?` M#W/PPQH)RABA?KQ2-IH^3>WK4'NMTGM1>J\I71/27]PJ27=MA3GJL>,ZZ89' M/>.LUS&UI\JS9-7F:X-((EP9VT6_;PY8(E/9Z2QZV*]HRN+7W],'+6;)_ M2EL&O?>=KK.=LMGAZ?Y6>!`N^JMUW,+[VUG59^_<3XO&IW;AL@LB09V:VNE6 MN]BR:]?4KOZN_<9Z;8_;H=9RI)T1U8X/MCKPIQDI:6MB)"$K(,D#?3V=2$MK ME0>&Y&PU,[9.;%(\-7`!"_!D=;-+#W1%&8DDZM_]C/$'HM;9(48L?P+&"^%E M#^M_O`MO!?'6$(7#$RXQ[&MWKAUNA7[`G`PC$GU/-T3U*X`F= M`1[KO2W%O8L9`X<=_K4>UOWCI7'\U?^N/$7Y46`%"K+7LY9`CHN5N>A5U`)E MGSV7R_6UU5JUKD$5:U#K6M)Z)S;56K3>*;3>25KGI2RH]2-+Y]]S\7N/?H(8 MJHWU466LCRJ$4$T0*A!"M65]5(CU44$0KC/(M:D1-A)8-ULO?EHOK!3(QE+H M%.OO:RL7>J.S:RO%$4IQT'(:M`2;RG'0.3YH"0XZUW*R)&%0R!S8H*T_A*'F M_!1G6(D-"B4<-(ZTAW[)`E]+,<[`\K:5LG6UD@5=4DX6]/ZM;(T7+05>B@R& M"@V&"A%L$8$M0+!%%H8*!$,%!'8365"`&#F>BQ-^D*$Q5]1__ASJ;$7AK[YB M"UM1$G6#2%V^E;H\'#H/T>03FEQLRK=0ERNHRY71`&E`$$=3GX"FGJ.!7_W1 M,D1C<#IH1G`6(=[&:/I:F13"VER(`ZX=;4[`SF,9(7(*1$Y"9$8T$%^EOU\N MY2RWETL3Y7\;P]%N&LS7ELTG1>1$)#];\)\MRX]HQ'^5_C>2_/A:($#OI"9] M9@N3LG&QZ;5JN%_XP7UV\`LNPWZSK/:;B1IGXF1DT61D8%.6Q7XSA/UF+.BU MA(W^8+[7<@FO)47&MG0K$`>.ZD`@Z00D#9O2+4#2!)`T`G+MPD`>P0P$1PR] M$C?"'/AW'N8N1T_I0F]WT/!_H3O0OQ*/#<+[;Y>\JNM<7E7=C%[5E>!#^3B2 MGPUE2\/+SM8E0HSD=A4K6]$84`-7-]YB;,UADV)A"]J0+2A\:;<;B0FG,AL3 M3F46(<`=!B&,$*!B.I5PC"_J<.QBW*X>L_B.&1QA!@?5:=`@-NDQV7<$8]Q2 M@[$_@MNM>`?=;M4K:47@4S:YLV&/(;#/D1[#2!G4*PTQ:&I@1#4[&% MW:XGP=%YN*.#7_W9C@+13!*:<6R:M%`W+J@;CRWL=NL2T-1Q M-/"K9VP\A]OM>0?=;O5&V>V.(0ZX=K1Y8XENURL0>6-)W:YGL^1VW]TD353? M.^AV/RKA;G,Q3IH+-9!A#!$$`80PI!E ML0X(L@8NRIS[K&NR%T?HQ4'[:-`>;.JSK,D>L0)Z_ACFG.E'#U5+[+4;7J>I7Z)GFVI+];3J;[&>\_N;YU^ M!;]9]"KXS4)3'9K2GP=^09W!>85RAQK4U*!;G2G!3<@9H$DSVFJ1.PS!,W\$BVV,"KS-1V1/:] M>;5M1Y3)AG=Q)KOJ%BX[M`82,="TI#]W`^CNE?2P;NB9>HR@'K"7Y^*+I=*E M,>PY(&+?NW6VM[32HU&APP0,@<+3VJ;9P.%M(^M%W5-4ICSQ\N%B48\4P?U" MXWYS,=S_U+B?OKY,N:[F":/>P^K%2^Y<[[/GL0:`WE*,I>5MR_$%/)\WAY88 M565^KP)KKP+>RY/_?)GBR85+XW?8!=H]XW`!.9Y"+-FA"RO%#Z?KWAET:L^# M4VO]<]FI39.MA-?Q3P701]]=1.O\7V\!%ITMA8*/6Z0^=9!FU`DS.J"I`VYUL`1W!P?-U=.'JZ>/B5D/GM9> M\0*/C&JOM!YZ-+7'K?:RI[LUM==<#]VX'KK9T]>+]1#!C3EP:VR&:(7X*XY& M_2@YD`-7?`D@3PS$FGLGUG`0H7#PTT(*!X]]@REV)@5"/`AASQN>N<1 MX9U+M_T(<_)^1L]8J\[45\#QZZBC'7P%S_QMP<2@Z MK:WS0^[B>#WKM]S%\?K`;[F+X_7\C[B+X_71C[B+X_5R7;BX:5VX."P)YQ74 M+I$1-5'3"XF:YE>@^CNWR"Z. M!\B\"PN0Y.*B7(01\AS)0E[4#'E1"GG7B]5@.H:/ROCZ(!<'D@,Y<)5<'!"[ MD(LK#Z"+>V,-N;CG&(.A[]C!Q8&01!<'DM#%04'_RZ^CBX..(F(0G>>/&.3B M9B5-NJ_4U17PX2#,D=$F*)OKR6=.7SY(OEWW6+%-3^;`,%4SG"L+K M$AUF%!G-66W!E?\5XP<"[J'<@!ZZA M54#@62#0[C1T:9667_/\+S^XC+9AU4&.W^,ZS'Z?!%6!M\!!VO!L[.G#<7'\6 MMI5A6[JE[>O8EF%INQ+;,BUM2[`MR]+VF0)MV9:VLTAV45SZ+$16=K[/0A'+ M9Z&(\5EHI4@C6.C==WJ1K3*B[<@2=E#ZV$SH-+X*5\V1I/=T?H8O!:%?H5+H%13M,H2=TJ_ES%N?GTA+]JQ M&KTH2WCC^7HT'\,/D)*O?R(J):QR-I\?O@$9^A35]#SV:^8@)9"#M(0+6`+" M3^3P1/C\)W*VH,0-YA`+Y:M,AVR=1H6SS+757KGA1;7T2?D(OP^7O+=FAB[)#?PK/#G-] MW)D&)6<*IX;<:I#A\#.5S5GRXRS!P:$Z?&9*FMG$`T%SYH&@.3H0Y*8D!*F) MXJO['$\(=V4G4/,J`.\$?NQ3?"7X['ZC-"U*ZKB$@&4M8VYUG"'PLDS&1.U% MU%Z&X&$'&DI)?Q"]E!^='PR`TYX'.;<\X,R\H8&?RBCDTKAL=MA0'B8_2!Q+ M?4;!7K[P.]\FD M!WKQ@62P[?BER*LJ+'[,('ZXAH[$S>Y16*/4O5]'WJ&+/J>"&X8&O9N1&P@& M5DSA?$"3?Q4)"V-_:N'S9,@T4*73E!`_6U/@E`KKBJ_LN"Y8;J1WAY.+\NMNMUJ#WNXB^5;)KU=2&\7>_CFY/2*E8ZO=9W8 M9*'H)9QB*,H3$>83`;_ZV+68H>JD..9KB(EE:^UNM9-A:F49G(FI%3&U,DRE MR3$1N19D\\%R7D-#8(-OT[QC?H4A"K,KO+K59A:?&G&FF\U(V"@B82,%IQL7 M@N*7YE,>]R5S[9NVF?D%;+/S4NX3I&7QS32Q+"BWPY7!<[J#&&\;*-[6&YF? MJ5*]4*F>5+I&.&&Q$I/:\-B"-GS29H#QF&`H*:Q#,!X"4VNDCB:86@&FEL`\ ME!S,@M9]8!7MR<^WH_D*D76?W9A@W7_-`^4RT`%ST>0FOF*38>(O;OX")FX5 MS/%QPFI,PB@/VXF$U1!AU4:V9A)6+0BK)L)*SD^8Q0K7NX@P'B!"_XP('/+J MVF\X'4KAR%0H=:M`?%6$K]Q(\,P/&^6(;Z[E9#E/'2W.B(LM-=6FTSDE*+:4 MQ!;%Q1D>4^TBH781B5V77&UISW$!1_5BW""_T$1!QVX*$$4AH`:)#,'D6 M0"X!R"6[IWFT"/%+:K&ZPP>NBTW@'0#VR$70VZN$D/;*PR8EZS'(]LE"/V9:36:1' MKHU+*'%C7IW@_]Y.!5.<2N*,OI%J++),DTTZ.I.!*#()17I<'+`QUVZZ6+OI MA*+)FN*9BRS!IJ5MF6'L\7%ZG`KZ&TYF;K(Q3G%CG$(_XJ1O>$PW+LLE)F:_ MN4X=IB)T]"8-%7&0(DI<'-`Q%5&$(@I_I4IFA-&8(9;.J,SA1\LH?;2,Q,1) M%G.U1<0GO`A]PKMY02,48="5S`1_9JHV:V*@0RIAQ#!+&'1LFK5@T`4&G3`D MY`8N8\7/6',#U_S%3!I#_TR3*-<%T:-YS^ M6>S'S,:!V^6/+Q$O1'B'3L+@[MDLZDPG8*9043\I.HE-_IALJ),Q;JB3I.AI M&Y=@&"I_'R%'(B&V&/!>-0.?UT0UBA!&$9674(U@D]>":D2@&B%4C,FYGH?$NM]2+:Y+YR?_\S(S^67CG,XKJ]DG\MQS7W- MDLOC^12N%YU.&4"]!DFO/FP:M.C5)_3J2VK'%Y7CHQT?XCD^'6(A3'1XI08PF["5)EHKLFR*PLOP2L2';H![D<`;B]_(PPEB,6%HHS7Z_][Z7=U\)9-R= M?_:M_]?N_W^_E^O_?>=[_O5Q8X!PZ>Q`M8N(,$[V27HF::;F?M%SC)P5'4@SLV_]`!EUW6)-A" MAJY ME!YP[QM02_!]`V;)9SI!4!=B[/25'6#96E2O7MUAB<;Y4.]7)*JSL)R9%+&L MICN;E*8[R-5+!#E]D=N48#E2CUJZ+Y36?W81G0H0&1-_7LY.RMG+9B3-64NB M'6+KF.;R\6;JMI7V:IMSIX$;<1HX>U:^J\1"@ZUH-UKF M/"E[A!CQSBT.EGERS<\*\*GI8;5KL[;F3?+P4BI$M8)?,)Q4#EF&2H%2\+() M\[$F'4\:D9XP=JL]9#[6I..8#3!C*4<1)M/94(OI$6FRZ[DB,FN:3MCX\V2) MVL_8E$/^]`WH7R5J)R1W+L8\?%R'68X:L,/@?_+CF=!AF'ZF5<%MIKC-'.YT M!]_MS+(4_$_6E&3/5XQXW?>ES^G61)+^UE+MKQZEG'6T.KZFG'ZU/N M6]".UQ=^=0WK>`)=>N'U]-%SEVM\=-AYF(T\Y8H!&XMT$)4Q)_%6J]Z$D=IV M%8Y4$^W)?:BF!,MLI(X??R;9$?B?7%_,C=2!"W%>3#E+.)C,V7+/9LY4S*#! MZ.5-0(YN;@SQET;4494L8Z.12R&/TWF@1GL2JJ:^KZ;AJ&'AJ*)5-9IYH$J9 M!ZI8.!ZE$OJ46Q?*[0HZ8+1K\/-/`;S1O*SLZ-=ZX+RC/YMI--!EV'E#^\*5 MFM`6\Z&EPL>M8?'3)'F"OG;ZWQIT.^/L&Q^X<8'E0]\M3WNBIG,P#]O&A[52 M.[TOI3%<2L-:R<*ZF%95:L*Z6`GKXIQA_3O,[*JL__6DCF'M__2,G$#"F%2> MMI+G73H=8ACE2;_$+(>U_\LAU*>-[0^HTYZBL:7@>UDS/.5KADL3]>LB[7!9 M2)VXD/IU$?.K@U8MTOC5H?C5,<9=.>*N4BF9-&K75'-7COH%@-]O4@QU1'3J MK3G'5_MNR,0VL4UL$]O$-K%-;!/;Q#:Q36P3V\0VL4UL$]O_[VW/+KNXZ'N9 MC&=#8`&4S9G=@K"[$$NZ4";3=%&TVE[N\CM(\U;Z*MO!IS]<(=RRI9.,A_T*?@S2WMP?F^;E;U5+9JNM_J#Q`7?=W()(FT78(Q?2_+5(PH M$7N@D.((F41I)2WY>H`W9-+1@PV>6)5.(--3J<("&:K3!D*."MY MMC>ZQFYF9I8@Q1LQ6\.41Q^MMUM;W@D\`!S%X9%,<&KT-%YZRBQH_^NSI]Y> M31NM=X=,5K)JGB`[VS;3V_O4^A43$PTL<,NXV_[V(>2 MHR4H8;V+O,>%EY$Q9N0/FV$7;P0Q2.AL6RV$EV-)"!C[7X#JSGW0/TQ^,[C` MY'*3U^A',\T5[9W13-LOZ2>U@2[ZI[A(-269@"03>+K!19KK<],MAY%!YR+? M41GV\_37D*YWD>MSTU$^HG.[R!X5PC8[1[=BB"&8)A<:XP9O=#7(+^%3^T2_ MR47ZZBZ`#_P'<0\?%3OW43PN\KIRC")!ON@"]UCIIQ]!V"=9)!KZX":9WJ72 M/15#RY9LAB`%5C-7N\AJCR!'%'@.L(XD]W579`G&CGB^3=\6&1?."!4DK:X8 M@HA5V\V1)2C$188;\@K\EUMR"22?G\UD:-?8HKAE/%X(_4_SB__5UCQXI_!X M:_(+_')+3KS7YL4+71%O7N01/Y33'1Q>`X_WL?P"G;GQ/CR:#R^,C&7YQ:_, MAU?'XR5U>04^VI@3;_K,>+SAY:A#"&R*RN,T>G[AZKSD(H_D=$B7<;,\XY%[ M%%6=3#([T[#&E^?3H:-LQS:K.LB\K#S-_*'Z>Q7Z6XM?S.V<1$[GR-Y>53%$ M!3%GD\K\XJ[8G-/7.TZKOE;GLW/P7I-?@>,KX,7O8^<1]\#-.?$>&;DPWK78 M!>432/1Q(_'C?D%&G.C7CN<;_XH<-'O/^<17Y`/;P&/]^G\ M`AMNRHGWB5/Y\$Z"\U]^\9Z<[N#P3M*<_];F/_]MS'W^&QJ/E^Q?!<*@U[7$ M`T4X,T%O?FRU($B%OEY8E))7\/L^RP@;>@&(.2&'[%WD/K(]5VHZ<+JO`W,#8$C"%8Q(2BOZ74EJ'@I$/X:JRT M+/J*O1<*/B%%5\_+YRFKX$F'\+%YR>8S,3!V:4-UD=@0@/Z MO-YN@\-27!G%(T7H!%?KFF(K>2QG,&_9LN5-;FO/'5.CO*DTIS+4;#AJ1C&2JW4*\*YQ(4! MJU".V=P,'=$>J=%#-S'1Q6Z]W8ZCB#D)7V:+Z*6";,K#\)9ZZ9JX1$T>IF*CE/M3SA9I,0/JL)F0L=O*Z0O5#)>I:SK(NF/?66 M7&G/J1A^=UG->T[%=/QQ%>1!;,6`U;3'[%/7&/+*A/(&K3&YY"(O03>32L:E M3"YB\.3JY/**0>W/#8YIU]68X:&FWM#2:<"9PFF(M1Y_/9,0NYR". M^G"3&6+3\CI4!9:%VI!4'FOI@G^.<"T1O?CNK],,S%,PTBUO/(_/]I'V7K&U MY2TH>R-MOX=_X5<1A1"8Q"2$PDW%0G`.R@Y.CCG/&OI?I*J*V:'8_VN<3NPI M?%C7YHK6%KL)F9/MML"A[\?OD?LW M:LA&:8&ODB??IB&+DAD&\APR@\YG<,)HJQVT'':>=;4]BN:YUY/(#32["S6= M-00[GR?,U9(.$DV$Y^>,E M62!C^E#3J"&()8-?QR"-J9"6*)#L0M`6:AK3!\RP-Z"TC$&Z"_9Z"'J(JG2` M2KN;O%#*J03R#;Z'>/)/-&0#!/TQGAS0D'4TZ)>2.0RPW\``9E2`C]3(`!<* MP:448`$"#-KV.C,+]96ZV>WS!3&3,0HP#B/.`:F41*1 M\&^S.4.^U%//7T(:RK.>_U+GUS-SOE3->7V5K*E*L#3_$,?;%J` M-]24,02G0<-WL.$/64-I!S+`^'F+JEL#ZFK+)'1JR'D9T,4_^A89LH"-Z+EE3INERIU6T1ZIE,-L!S%$$4TK%!4#< M=K`_*PY.2F>4DQ+/<16O\`R>E!;QY.D:,IZ4EO+D+R[BR7A2JN+)W1HR.RG- M(]\O9=84,&O.J-:`F9]?E6J5`CYT#T[<^:(O2)4>T%I/L:>O4]?0!7&E$/V[L//1K M,#OZ<9<1:['WU[*)JTG9$%*(9+,(:WA,5PL.9@-5%7F8_\H.K+6`@ M:_X*[(.0WGQT@M8;!B,!N]@!K:PT.Z+74U3^?>$!*^08@L<57=)]=XV0>=\+ M"V!,XVW>R%7PKQ2/I^(2=;IWP3NLKASKK%#V'BX4O*>&<)F[Q1O1@S^/6`5M M/B7+=V5*4#Q>W<=5<;$W4@@B;7BL]T)%@3=BHMHBTU"*65#2EO"`'=J+=9Z* M#V09;7AUV>_(E/3"`=0]!?]@S=;\&U2*=T]\[=`QZC(ECS/FTCK,/>OJHDM^ M"16P-'?0*UO5]L6XR'?7N3+O8_-G!>KG18!BL3<*2*=!J1+3OF*H7HI5D7K[ M3*P`V#I,U[RWMQ?B\2QWIB0!LJ.)E@\"MV'*YL=,P.Q'+8L$NLYT^05WYOUH M8DNT\^;P43OXZ?^L+-JY11:ER>]D?[DJAB[LK\>S_DJ`OSRJOSSH+X\G6I;3 M7QY7YEUL_O`Y_J(H`:'9C>"G`[&2&E)MGRE#'H0$\:8+^.?=Z&`TQHPR?W7A M:E/.'YW[NXR_^72%@`?DND%,6/&0)Y70,^9?FX0KT8J1TY&\Y"TG,Y2;.1=$U.$K[U2GZ7DU2&I#.?YR+A6X/DWIRM MYB+I_9RMRI%T)"<)KW^DC(/0E_8GWMZ__\/>)^Z=G$H0.ZB0"E*)5"))N$9^ MG;_`KR>OTFL,YN3GB22V")J[C-L_99.H-),,?X9IXW/8)FCJ66Z"*7)_)_Z> M"ONQ..D+635^CY/LSHEJ'I*>UY+\>K\!=%\GZ^X#:,=!^4[C/?ID;Z>*P&\@ M/V>_P2?U0QL1VA2Q-O1#"#NGW">F^R4Q]7:ZOS.5Y-J)Y%:YW2?X2>GPT=%D MTQCDDV/>/;>.9;[P[JD=$\S).\>2H]Z(0<@ZGG(.)$5K7BI-&JH&DXU"7[DB2Q`E6WXSUC;T0 MYH8$BCH&.R?!M[%Z:GM3SD3*>:RGEJ2/PU$R+BV'UB`W,2*+&F:B-`+XYG"0 MP.;]M#EO&?8K_Q0RQ'[93^K34F1J0J;&J.V#8/LTL'W%>L[)P;E@.2T%1``X M36F=_#Q)^@^`N.2;P/"?64?%R:^@TO(#7.7($DP[OY]*IMZ6[B5]DMIM`V`= M-&E$)Y((1[@YU3B8!//H;CA]G+S&$:]-O@F5R3B0P37M)/VI2KLT\2:"(=U< MW=3T.*_XIY'_9C\.)_V96CT,7:L0K%[C9E;32+-N_,W[]&C4<**C!V$.8]UE M06,J.2R5)>.)$XDW>HPX],A.3J,E'1_6J$SZ"\E=3.6(]#%H,X.VM(MIZTAV MD%EID3<36(F))#3=LX-<^?SJ&FB#SA4M5,!353F1HR@[/E"O!D.UG)"TR@ MBJ]Q-<;TFR#2/Y74R@)/@$`+"'QUG8K[=J[!913EBK%,9H>%/,(1+)S/)3W( MM,B_)RE*'V<#;07)W^$DGSX+E.CLF!@R<91TGWB#NM&%RE45P[ M,UK)C3+:/[/G87!UXGFI;UF-P.Y[A8^(X0XQLF(T>MTHG-Q-U\2"9`L^")%= MWQ17Q&/&Q9#Z+_!$ESC@_[(EY;#?L6#O3,OA(WM##M!:^;7`C,HK@@O#(]8F M8VN]V73=+[#%2L9ZSWNAY51`L#1")5BGWAYLNA\P#J,A'^-$*MVQ@\)KH$K3-0_"#(:3KK*)U M1M-D5C`&BUC!9FGY`#3M+<*#4$>Y-(/5BY:'4MEZZIU6DRS#\GB[Y7`9%DW5 M]AEM-V;"(PLM#\81;_O>/5L?J1(R]I;1GU0)U/ZIH%3CQKC++2T7(:PR]!9YHZ&;E7#$'+^(^4,_E<6-/YHF@P:W[940+^H@/:+XT6F59$'4>1'HU3D@XK( MYOGG-/E`;;(=FX2RFBZRM-`;2W30.`KI_[VFYGC`%NJPM)HX3^RMT;76Z*6I MBI-8+3NJTNG)YE$6G-'LP"AG=EE:[H)A22IE.GY.2#;N1[N,-!\KUF7#6&AI M]@+8_AM%I:;X[X101UXZPQ!L.A?A[W%P_4RF?Y-#>$K,@?`HY(_]SQ@T?;-1 M;HS?0T%4 M2!A(B*`BWA(CBI?:$P<4;TFXY7QKK7W.7$+0/O_W_=[O_?V^Y'?FG'U;>^V] MUUY[[;W77CM%+"'\Y#3\E:W8#U.!Q_EAZ=C5.O_R)B`]^_.,)S*)L);<#1Q2LV9 M&%,=>MP8)=>">*C8KW62_:=A//V]%Z._4P"@0E+MMON>`$])-8CI/(4+?P291N&HUU=%I1F:[\OFAR0,ES`"TS1`O^/(:$:UYUF MU3AV=L+F;S9$JXT?C:NVY\_&JLW'C:^V?\6J[0D`L$)259L?K:KXFJ'&;.T_ M-FK#:#;4VTY,,21C83M']"QRQ%0-Y*S(9.:5+*9I7IG*MI$X7$K.:G4;Y`IG M"I;"60)?F"FF246('N168B2!P<$),;\JQ("-O3FC<6/O;``\=#<4*$BCBV*+ MS^@U:$G?V+0F M@?1_'W5,LK7_/.JPVMKOB:>G5G`H;7C$6X0O][#[:">.2[8]JU4YC62P-!S* MMLRW[3$4A$5KJ-A@VS.W("+6R0?]1X6I08,\#VN\HTPCBHBAO)BEV7HXL?5> MC[9>0V=.M(\W!%!CSKEV/2[QV,/^HZ*]3CD%".VF*RRVZA),<0]W>8`P4HY^ M!N@N5*.4K\%_-0H_\IO$D/Y82'MBR+$817WC`H"'8H%+/B]PW@6!K\4"[613 M"#VY&#U?J@5^,C8^Y2NQE*]<$'@XCOXA<*)$G2A4J6ME#_==>-[]H8=[!-XE M]WBXV^"Y$Y[?P3,*3W8H]IYQGX?[(SP'X7D7GED[V/?;\$X%&#^%9_Z//)ST M(_:^!$0@SF`T\>:D9$M*ZB1KFM/I3$^WP:]]\I2I3OIS./`WP^F.KX(I&@G+5[6P$QB2EV]G';PW45QGTHIS&8OAJ'(5YDE=IOHZN'3$W8FB=,HN!EQV_?A2" M-663)D[/8F6=Z%.G[%M.H/TG MFS@A!3(.J;Q-7ZZU3?L0\\%:W1IZB^)B/TK&46*H3 M.-P]P.&:#$KYJS2I9.S!&>XQYV&YH1;F:V7/BY8]/U9V7RX5)9>P[3$78>_3 MD(;R0$O86[\E%;EPTT>83LO6J5Y@1^"6JZTKE6HB+6LHA^I**[*\G2,*;79E M9G>%JE7R1A^J%_`2)L?\0JNN4TVK7'9IGW5EY+()`*%F$$0K-:A25ZI7V3M( MQ92/`/]+W8UE&EH-E+(7O[1D/4;*/_LTH.^01\A7/H.E6H'G)KJ'C)_\C@Y0 MO&7ZY"'((ZZELD_+0^-2/,OB/TNQH4YL]_F(5%F=;.UTZ6TM;^.C0`;&`3G$ M@!QB6<;TEQHZ+6]IR1L"%2JKLO\$!K2]G1-F[;&^%251%BLID!QLX",9 M"?DX(")F$6WL_RR?1GL67OD&O6JETAXTT,J/=;%&>Z(#Z.XO0:9-:%#VOY1` M@='S&&TG%!-=27#]8-M3KE'X?@U\:T7CXP;I*=,J%QJ0F;;]6^TH2YES0:"\`SO((T1>@_@RK(@;[O&AK.L]4G#YY MC1BAS++R*F$H2.@>%P]`JU'KT.E5;B?RLLH+YD*1VWINQRU5#0%;.^HYVD*X MWND_:6LG,MAN,8A72D6>4[0$V5OF('961B9\Y3*K='PL@+]O!E`I"NW[J.V# MHBD@YDE%6#B#6*2!3Q;=4A'J9''"U5*1#S_$RP"\29S95G0.G%WO>3C!)A6- M4IPD-0,_I**GB`R=;6,O`ZK"IK:Q5_'=U#;6.!W>7]5@BE_68`HS=9\*&"?H MXR8]:$'[H##5?Q(S82&NX;(-1O'24#M5D7P/(1I:A=J9P`7GX'KA?CLDFH3W MEJH!JC,=F'D/5H&[:R\D%['FF\^A5J0OMKV(TEIV\32"4OG*HA0%[0`9=^`K@81WMP(ZWNDYYU`!#W\=;CN M9-G'<[Y%&;Q4LTNAMPC0([7P(\X(>,.4\5HDEYL4KZCG=*]H?Z/X4BU2$ M`R!71VLW`?&ZU[6"X[ M%W)X9/XG55#_(2O.>2&V<$W^`AQ.!7/^[87B97);Y4FLXFNMD">DJ`M9/;(C M5$D]N\FIP57+S@'0YC]K([&X7"-M(;D3WY')G?/A!<,U*2+B]T[LJ9WX,^RQ M6H19TK923KQ$KBR4O7PU#%O<>YA!']/5&38?AK(9!;-R$'4L2-N26I_4'5]B M(YA4Q+]'--V);Z_R]*LX7R(_3HM@H0A7=^);KK17*S]G2>4T]*E6@I3$$DNR M#O4,=+&$;DDYB"MF]8U9)SV<>UBYRD],K-$+3B6'.>J4=V9RW$[,6!YM1$7? MP%9+;_)RTS_@51'*S8T>=)P8A>HV#!'!7*`MYIQXGLP MX.+^D+(#0)*\OA.Q"W@MO=Q\`+@3JU*NW-#61VGAXRU*7+F!-6+`6R@F]WH* MF;#DH9=YFPV:"+B"FJ$`_#_@K%&T2FE8Q8:A/X-S#MH_+<)9K-"H^;,7K[6O MIL>%>39Y&KG)\)T'V"@+^ZFY$@(J,>"R"0)68X"%!43RE9:91'VY+">C\A=P M!^8Y8?CIQ)\Y:(7;C.EWHE.Y.1.^LO!K3E%4`A0W-''*UUF;`JQTZ%KUNDLL M9359/H/CGJ"^4PF5V(BM4LG+&4232*N]BTBFG+!24:&7Z!K^?CGX]B^/_1U- MVS?TDK5]CCOVNSQ5UW7!'("+X5'3G7C25,UX%W4(E)_=Q2CF]E\!Q;S&2&`] MD1F>GZM3_GLZUE#@=L!M(S9PC&#BR:%MND8.1`G;E(L0`9''_Y(24K06CRR/ M(X.H9[[RRO3$=DJ:\;GM]+,9>CMM+XBUTWIHIZ=?CF^G1W276,**^!MG?!&; M+U;$@)>G9M,9#!8LL9G>^:6[:QVU`;5&3+[P%2%KS]J%O_)!,CLGM1\7AMM/HMV5RJ%B%:&**?)!2;_VPQZ"/)W@N4SK! M^X^"R%)+[+EE"HA-3M_-$'^)"G*"_VCK!^33?(F:)=IW@8S$+4&/O-)+5.$S MU./WM1HX81U^!?D;.T"&7;A/+'#WT5S)?[1E5B@G%Q,$,VT4^YTW\]84<>+T M8D_!,\WOF'K0+P&,&5&?#DP]/#3PZ?Z;)DG(EKK!=!H+%#KS,:@&.,*&6N5(1 M0C;*R3OOA[=XJ;P\LQ._"@XV&^6#BVD@"E0ZBZ]*0U^8_=C;SB*)"#?X!UOM M&EISE&]^1F@%UN4LM3TR.W^=2Y@&<\UROL:K/$=2AC50[O)W;4?K?3C\C]/G M\KJ/=KX.@DQ-765]@7D54H';&7^+37IM[0^"8X\/^@?,`JQ/)(.K*?63WX$C?I(9*K7:0#RY M#22;!<^SN1?,J;V-.""S>DMO(2F=%(VF7C`3%:]W#S?.OPPB_PIR:OP3\NX_ ML132:!()],=:=('^DX.L+P\+OZ#V\Z)VW353N0LGN.*;C4XHKWM06>$@`6E# MXUS@%8U''L41?.;EJ`<)[H[[\5?)ACB-]O=P/,&O&.Y&@-UQ/WU^">2FR,_0 MLB.'&VZ6MC%JQB^WC6W[KJJ*J;N0]0VA?6/J4G(:BB\%!ULF[UX%(DW^]<)L MF%%Z"KJ;/P7TKY#&S,)J:2Q)N'Q7,<1>AVU*\@^*3,.+K!X(9935>EU4Y-F% M-YI$;MYU$\$GOE3,&^(<).Q'+M7%?SOSE\8,,[M&^@/%/*6$?-9I&?4NRL,4 MX^5)(&_!984"`M,3D_$@/<38:]!EO8+>%N?NU9!<3O7W@33W/5Z8`F6K*!AM M/KD+VX#BA_C6]=W'C>OD#LJIF'*2?2C?C<\/A$]J.V1O[I/:I)Q6,(:,N^@6 MNH_\?J]R$PW<%A@>IDN]225MZFZ(N.EMPIRQ!4L8)AW9MCUF MA",I9=)H[M9,=U^P0_EOW$8,'8970O00?\O:GA]@;&"+?-G7W\/#612RXR&( M.]'S&#Q<$OT9DK0_8U+BGXF]>-UMCI?W3S3ZNZ#"A*72J$%(5?!>`]0^+70/ M[\4*EY.A@$Z9\S)"7OR*5FBFDRGU6LO;5!0!-KTB]Q"NC=`J=$>CB3V4#B9U MW\-]"54^1:LM5KGH%$H;=>JK=6K&I]]##8'(I#U(^BQ$&O-L7Q[BMX0R_82% M";"X/E3E\L@>OMJKK"2IC/>JKP+/F)M?Y5I#$Z"\_%+71A&U3POAZW;!*H4! MO[.$WU-Q^&GE[S4C5]5KPJMLQ"G-J*=U%I#VSKDXZ#+R#F1$YP+Z#`B&IN2M M-FS+!_Y`;?EC>'5B1G(:AE?3]*%ID=+_(3%D/?$.&>+A<_L?L+!&H]%@,.CC M0]N)7"#%'B(78,'RKUR%X(:A^@ARX'D(MZ;7C"\\;J8L@WDJ<5&8"7*?_"[8 M[JHRT%E#.PS+EU2[NVK`R\NF@BX%%?]J`@1$,6DTU[8?,\3!2YMOWEY3U];L MPJT97WVM_"<7+@G(:QWR,BLN.36GM3WE0MD'DK>VZ(/.7.73#ZB,NNR4U=B/ M+)CH9?I+&KV(J9W'45PDWQJH:-0S0$*[#NK>@3M6E\!H+\S6@*8IOV5`(Y/U MO<8G,>>>LF2CGH\3UXK.B!:(8#?$!AQA/?D+<_%E$"X+;7?&)#^#DQ>>^[4)Z(>?R0D7U:[F:+-C@D?/([ M^2!;&P,D/=#%9G9YO(K$"&W[(CWK9);U]05F9(S;KP[Q'OD>JNI\JQ]9'=0. MQ#@?1:9`:3U)R&C1JI5KM0WW3SA:Q+*KP@8=>G[C"46C7]E2K?B/ZFV2U7@J MVE+?C?JFTL`S]$/DTUH:%J6*1:%2C/1'-G]N-\?E\*I8-P>R=!*T:I@_KU1^ M^)+>@;7^C]K`T(\;Q9E04Z70>[>)D^&K$KZ:Q>1=3"7*W86+!7ACL5;L)D,3 M%+W=`J1-[:"DI$%8?UQS5#/_;BO'&BE@&M=,H4!G/Q*2[2Q',K1 M"#66;[O12#'$)*G2:H_PT@;KA]+369`PYK_!@OX;1IB_(>9/\3=`?%>B?Q;Y MOTE8"I>Q_<@9%-Q6N8$S:DBU;=B`6$9ND)[.B>8G9&`40UP4H*+(5"UN/(RH M-+>*UV)+VPK!688+:'[L*=(H;VN_`9UI&(S\)5#LD?;?OL_"ZLJ@U16N)>$J M+SB:;R:LL7,$2GB;_U[,:=1@\_OQ8ZG5TTE3PY)"K#F;GZ[R(%$$:F_H6_%H M]6ED?\;FWX.LO:206`+KPV)J+Z%(`SU]A42G/,8(HL2CRWK9$R_GJY6?[2?IM$ZY=S.)DX`W$+R8"MT@K49)L>B9 M0B&ZB$I@8'F11:7OK>P;"?D!K'A&(IN41X:(1(9D`ZD:E?&V/;L.`M]O>Y[S M,9\DVYZ.+A1&NW`C*5B&\R-^:Q',C7;]U8.UQ4>NU#JB\KUH;YZ*+#-R"?-> M0MX\>!D`+@BA-`O$W==&'WQYZTF:5:;VTJ('%`VF"D52T0Y:^4R3>\I12)@A MC1J%2SOWXX0@#9<]O=4UBAWD^L@_>LIX@_3O\Y$_PX=)>MX0>DWRLOA?88.57#4ICR!&J<@1*'\#/JQGK2YU MJ$N=2'B$OUU>BI/Z-X%BEF[06(20U=:'Z='GK1'Z_1!_^[+@=^@AHK:YU#6, MHEGJ\T2RH/Y$"TL4F0JC'CJZT)'4]M;-*H/-^`%T[:7$"KX6907D92JR+6(KFER/3 M0_Q*C5.#"!_HP)$L<#^*5"P*]1I3C?(BS_99&;/8,>M1#W<%/"5+[VG"07WTU;!)+E\+DW)U?(-XO>&RV\U"ED/6VSM?\<1*DN94T!;D7:8M#NDY5;CT%$2 M5G"#`T:5N\#QL$5(DEI*.6$:Q@F:"J\3[(79@K4P5[0W9462F:]7&5P(D-;9 M$5C)"@)U=YS<,ULNWS"\WR+,B4:9HXX`295OP*B1]?$X1*H37"4)K@4)KB]) M+4[.%J(!@5725Q3COQBS>A]U#;3(O>4T;90:K&,Z1BZII9`3+I5:/!S,(`H?9V]TZ_)SM'VE%DNRN"C48I63'_;!I/*@(9`L+[?W&)8"DL3Q MECOD MV4W=!6O!(B0'6APK`BW.]=(5(Z@;L!CM;X`LRFFD5BL7Y;*EFLS05JN<+@]) M_^*ELY>))GE]HW]0G*?7TO3H<`K=AS9/##,'I;`Q,NE)/)4EG3=(+ZK#W1;A M6]IVQ`:#D#7N'-'CWX;QA75:3C;_K['V5O`P M8;]4.HU2I64PVPGY*Q13(?)\_4:Q\("W:V:]7 MOO,V$X@%EU-;4_D*K37LHG637"%-ZK)6%%7B7/"C2$F(;X6Y))IB#GNL M'B$ZET#1UJL4H"0A(==">+U2%?OBR**)G808,:F@"%E9PD*@OOZ!ZSMR$HS_ M3[-='*`AI9=]URE[GF86\["XBE$:G;;UNSB?].RB^:1K5Y0G%2K_]19C<\Q= MI$@)[IN4S0GNFY6O);@7*C4);H]2PMSK`-OC__1P=LBK"]Y'X.'@^Q2\LW`= M*KJB0$L*)K:(8(ZN3X_;0S.3:$:[95/QL!,C2H/RNQPBJO".&HI01U/C>K1% MA"1F\X>QJI05>SA=+OHK%V.8RQ!TLM M:B"U,$U87I@*JD;W@602>"RX":%L\H-4`:!(#Q!>FBH>7 M%Z:)5[`DE%JN=$A=COPESNVI4H]1*<2T6<4!"S@B3L06Q`@0+VKJFSCEYOE, M!`&!1;30V@/PL5#Y&/N@]3]4]:^')`EF7ZI70I5MRJ;$ZW&M(L&^(E_G57[R M!*,FA(Q'H=I8Z4&&'L9LE MG\^2![9F@FA9X>BMH%W^0(7U">0_@8H-@8JYO14YM-=1D16H<`4J\@(K<@,K MY@Z@<1JIJS/4(Y$O:\'@"UAHT%'<8%Y&'^$F/,6U1 M?8\QM6>1@5/PHMEZY2^[M;TFK"=:CQBO;T7[RSRPUEUX>//9:U.[8(CT"99" M`S27*O+971$SS139Y5Q0T[0[&JT/]]%.#D3[)_`G8)2+^<`B7BZV!!99Y,76 MP!+K^/SJGK##;SW.)[B]F.B3WPNIT#H.3L-TG'TI'']FD5J7H]$.T6N4U(.T M28^KAKKJC^/OW!"JMFB-7:.\1\(VM(Z(L%?_58-]2WC'KG]+'!=_/D9;^+`V M36[:K+0M+VAY0G48UQ`B.GFCDAJ\5#3CS9S3-+1Q<8]\OY#S..,\F*=!:KLT4SBVE/YY?DOR*_P M?UD26@IF%JLL+"RPQ"+ML\27TQZKSYD7YO^%]J^@L)TQ!*(E9O&T%NMDT(RZ M=6#-N0$)@I$72TT!`8=A?$/K]7/GN?\]/;DL>_]C>IIY[@OJ?^Y_")E.XS'H M7L5\+F9?%^U/!$"&51X]^[\AK;BLQELDMF^KI;5&,8?8V0 MIT]&5B0;/3`Z""X'M1WZ6\DK,-\",IXQUA[C\LL$,-$D%P,U5PC$!D3SXUH+DJT2AVSHX>V< M;+!DVF6#)V`@YE#JRL*ZN@[JR0*Q+9;,:?)U,A*::]I>V;`.X@4RC;=(!AZS ME%7(Y)N8R2IF%AM)4C9&B40G#^9"(F'D@<0^`9%D7I1(HO(XR!]-%N7W\S1E MLOTT-[3&-$LB:3(9E0\8R`\%UAIEZSP4#\B-4J(#9<-B?IQB+X6#3-)K8')9 M=']W`<(%P?(R^:8F-JNOH.PM37R=/*(L9`Z_*KZ)V[\Q;2/J0S5R1A[(0G7^ MH_6:R1+^1W+:-J24#%QZ#\T_@-D0N7@#/]AP';3OO;?!;\=/&^%7N> MQ=H?81'>@1]LA&`$MH!(IO``NJ.E"5D)K#R++"H*&(.,F09^?CM$DV>A5!1H M$S"WQ[;A[\^;X7?1^G4!RB)V#"`!?U1.DOGVDERCR`F.NYDFY@ M@*'UHTDOO5PO$(FF2Q413(UF8#_$W<&?DOEV9AHI MS*RYBEK@'.6.^$#-J+0NE>IF)'T67GM;-/$3YDT-`2_9V6;F-\F"XZ@JIFCL M(M5'"ZVZ[4I_GS"5OIM,U3Y+EO(UIB43LV>)0O3B1"N6YA[4TXJQHYB%*$VK M\R]7EOE9N1&O$>6C4U'W4?U2H],$\=YY8 M#)Z>)1!E<@\W+U*%>[A-J=5>Y9D_L<7MT7A-F6K5?U3L1<6!5K;JH%G4*?1M M&R0ZL-V>_[3[9<(I_=E0M_3.__C_*SIF-(6O\CGY6? M8:3&M,NS5[D\`#;$S]`-[BR.S;]PP#FQ$S60@9>&EED#::MIU9X1T:]^GZC5 MB]8MV7XUSB.5/U^C[1S!]*S`C'OEPM=#E5;9\+!%+&(3;.G[4`(SKM<9\#IE MCP6W&I)Q=S@C%-BM1^YR`EE*SZF:[XM8WT`NGG4*R1O+0 M"Z#831S5`96:50$K)NHV*3_]74)7LC1I.6D0QLWGL1YA"*_K\>'."U?--F`V M345+7QA>"87?^F75Y<]Y)KH@Q"MW/:]/^)FI+RT@4_GFQ`&S%._S\4M`9L4S M+N(+?1[N?7A,D,W49[3U]A/\`XA.SC6%M((7[$"7N\OWUIO!;FFT7'!)HZN$ M'`WF"N7$JAA)H4XBKYUIP+ M:&E9R&N54W&=M(0(QR!>/=QM%*=HJZNEG)CS"P=C3(N?LZRL:`0CPUA#_%"Y:- MN7S!@X$TY*3*]W?&2E00MOF[H2P0P]WG2F8;8*R(R$B"!ZN5"/08;Z#L4V7E M,;:Y3WOR!);K*%/968"%8>$[PV6J3\BCD-"R$VCI+LBMC,:0RU2O\MU,U'7& M(1(BR+6G5BHG7U95VYZ#D>F^[>I58BI;YZILC*0$RU3$*'B0``:6C2;D)OZH M">\0]LK+/JU64J#&J(INB5=$U\_'?-'X8,'Q82.`A MH(%/?C=<-I8E7,WT&1Z#MHM?-;3Y?T-\\5.OQ8U,)$=17MC!%3A8BLW+OZ_8OHM>@1:4N98BO[_JDK1^OK\6N5-Y[1 M!EEZYM78JIH^R\;4^7-&K;FH&K MXFM>H%7Q7'@%9F%BI'A;>ZM!@QA:I@#5G[B`ZN^8CJITVZ&O*W+M"=GZ]%PH M5;5WI7+JJ*IVM!=AC0^5ZU`@IQBENV[J4@S8"[^>C298SYL#9:/BEPIZFLW2 MZ)DM>CFO4H;[&"R)ML_JO1ML33>%K9)$[N]7=I M%YGW^-'+Z'OZ27CQHB-(;C0?/*.+-W7XT9LH?J;OZ;V4>+J&]4Q%.LBP3N[Q M4Y"["VJ*4@1#",5]-/CCXF70TH&?[,<=L#-&,5FBQC&&_(@G\"YOM6(=T)B7 MME*\Z8B'>^4Y#Y?S/'O^!@\/?CGP%,"S&)YZ>%Z'.%QJ:JK!F)J*!Z!3DRTI MM/YZV_N+XM=KV0A^.RE@1V?LVZS/G]#E'Q;9J;(G\E8";CT_'SD=H(!0 MH2_DV!6R[@@5!IXX^&>.Z_ZW*7N4(LC[NH_S(=Z3O2]DW1?BGP%7]CX35&^K MV8R2X7K*9QW+*+9^H'2HI'K'#<(#/;8_S?G8HMAY,UYI3`Q_/2TK(7P74[3+ M_&@1NS;!6%.W$^U$U0OS<#K9`//K="BX21KE<3,^29Q!*=;WFA_5+/31-EF8 M=I>+T'34#\5KF`VI'#^D>#\!'Y"LLV0[9M/-V M"L@,I%&2&F<@XW[=YR'=!]/@04;"V-8^&[!ID)H!2=&LY)C9G5?I;.\NW(E6 M!'_NWI>]CS;D;%N30>[B7O7`M$$NX1M+(Z@(_,_'V7)]%ZH+58+7+OP)I/T- MTN[&'[9VV6M^^'TF]PX%.#0;B!!6$00Q"F&NG+8&(:RY.`2N[*@C_YF1#!8P(_B??_H]6$,#U:"U?RXVI!>)\F ML"AW&X5ID1N.E5@&9FT#SV,E]H%9'=@(E\LEUIW-5-D6&.FHLAV!C'NHQ>P[ M,4X((,J$H+<1&ZH1/ZL;$1]EZER]%61JN\#23)G:+E#C%*W*CTTQ13O7CR%Z8(479BBZ^(IS!>D.(L_SP'.2T'4^3\ M;U+D88J\BZ>XL*9.84V=^L]K"MCPP$L>;M++'JX(GL4O>KCO:F_]Z=3<+\+; M_(J'6P#/-^#Y.3R'X)&*R*RHD$Z,8:1_)[XB7T6ID#Z)O[/>0K-47I@9*3V6 M@=T!B-MJ%%,'^HYE8&<8Z(MDLP#TV4%O%L4Q\(P6Y9`6<&C@F1B_U5#8[I33 M\,-4Y;*(WXE'![J9\6+=[$\NULV,V,UOIF4.2D,UKG[[>H9:DCA=3FO$UL2?$&Z80*.D0K-$O)V(RQY$)=0, M_@?9,@-C4PURAH"I\(?A'_080U562T-@Q,3)US[8(2X=6QD#>;/C=0YV8 M=V51$%OZ[G\:\=+,8$?6ZR09'A_T<+MWZ$FBY@'D)?P*V1A2.%?Q0'49[8()H`#>XTA)()IB6W04( M\RJ,_*>)(T/V,L1?`1,6B%Z(T<_`4+1[UT4PWEU$."#.0R]@Q*Z+1;PI%O%A MC'AP8@1VXS%ZPG>H#:,=^>)"O0(IAE9AY-F`K-%Z% M=3<>U.]8D3XT'9.>^.)\^C&?$]"HNT?_D\H;P.A/8W3^Q,1%?2U:5#1SN]LZ M<3190P%AO@XI(AMW.R\2<^)ROL'*&9F_>^[GI(-DN]]$A""GK19(%^'I'";K M2-OG[,D;G[A!7LXS>Q?E242T%4EX]+_)!M.6P!,H^5KQRJ:YX5/]'F[V@(3^&9^9J'JX1'@N=1>-Z$)PGZ2"X\C?#<#P^SWV/[_]D?LQQD ML]K2TDE,'2@JO`[F]6US\-6E-K2EXAY[>9%&V_`]-J<.RBO(J M'@<#2'+*3Q M6E-7_Z0FOV?6[CT,[?.$%9T;79D=:UQ3Y<\"(+T&G)_\7K3M`G^?=GQKGP6F MFF7`4[.%5&ETGIA$!M/*;'N6<=+I?-O=1SAF1-+W)AF1W`@O]U'_H&C%$RZH M:>(>C!1)9XVV>XXA,F==MOOP'HVV=_"8L_LH9@HQ9K:=/7SXL-5VWW.TO?#+ MT)KB(_Y!VSVX^E_F/RKN\&U'0?!=`AK80 MGMN47Z3#"HX04J'MKO3F28$-G$6";Z`-D.PX+5-5654:/\DZ$&4MQP6;AOI MGR@_X_]I?A,6-);#'6]XZ'GP&,PAX?D:?'/\Q?X,^H4W4*]T>VRS=Z:_.E=U5Q*/4:G M$X:DGX5T33U$<-G]P]MGCKPAAW\^TNQR^(>%)-LC_6I M]_>16N;VM)$!`#N">GZG@""L>AK)RV/>X M[;E04BHB:R1K$$2DU+YM:;[369OY%X]'+-E=$7YXX,51G-7*;%:K@09X<2E2 M,(4-4MB&!UAB)8(J9=R%"?7R,'M1*`7B1P"-H<3/M\F$D@P3)!<[UL_6_/`" ML:9)3:G*T_]DVNG1_8:$<$[Y]>>&&Y3M%P]G_"PAODE9]KGP4I1YX\.E$U[- M'!2J,]O:O\HLE\TC%3=G8S^PC%JEU\A4AEE$6WL11'IRKE[ZO9\B]\1E3OEV M"S!,*%?3U,9SX!EIBEF8:O+(VRSC;![!D.B(;DK!^.?P*N<>UD_Y MT7X2<4`[C!`_*V:WK(DL92V&=!F+J[VURF4,2TC#-SHIC8WYQ)FY\O)0N#-1 M- MM,^$95CI#:Q0:Y7_,C#=4$8_DP,$V'_41DM4C*=X47_`W5?G/HJJF_4-;E7F M_Y['EW"A3#Q6P.U$FT3Y:5DPF1>LLH1O=J2_`3KFY;OF@KM!=C:TG>5\@L7W M[U,^=8=H;*B0NHR+&@K&Q'<:Y/FU&&E10]L8Y[.UXT[$DW,X-''=XWOWE._< M#M'A/MH@O]+VMFI#7SVZW-/Q\TJTVCB'.U7<4,1UB:D];>AQ6W'D:^!^0'=O M+H[4@/N([OY:<:3$]L^>AO+%0=_QLXLX5VMACL`79HF&Q1T4H9A"6>##/G': M1+["^SHFQ8MZVBK0E"@K@+\4:GL7)EC/_#EFX&"5T8<'9N!,E*7]CIT-4@Y`AJ4;!3FKN0@;CJ[T1.WTH MUT,OB!!S\0\*67CC3A.'-Z*[O-7*/XH,U/C]Q"QQ=H70S`!-M#?B6:]ZQZOKE3V_9GO!_5!>#QKE:L17O9*D10[')KX7]-^Z>EO[?^M]\@*C M;M$.9\$.U\36],E8@T[8I*='%@NQ:WCKE!>`4*%K3">`(.S=I*V#LT6H0L-PB9J MEO8NH M;@">$_!X%/9,Y/<9?%NT;WQ/A@?EEYHFSG4SS-,/5BOG<>$=.E_`X.Z3,Z@* M9P3#K!*[%!ZCG)G,C)0%#,'P+:A[,$Z_6EX#O+!6#KN'01AWVO8`_ZWW*N\^ MJ(\+DT+6[(*#6_AR3^3?9&;3M6L$C'+^V&6)8YY\#9K1AWWH;M5X2_(##C M)!U[:R-22R.2"8Q72,UT"(@+]MO:T:JR9M?.YG_1H!^4E8LW2-T;'K8(:0V= MJT\MHF7UJ9%I#]O18TW4PXRS"=W,\4\(%#(EWM;>`8ZV%"X+`6+N@,94.8-0 M@,[8.T8+^EEH"(4R-XJY1-)>I2H`2491ETB1%V!\\D]FTDB7W#F.)5N`#32E*D(O0#EAC:;NPIX[*@FJ=VE!DH=<2&KM!V0T>9 MEA=EFY@CRPR!"#QF`^`-9HQ,?B%AK@%-!DT%;G'B`8U-PI"70_!,!PIZMERF MG>S51O)0N:&ZSHOG-=;09JPULE>K""$-1#_6OSNJYJJ,L=#Y@7G4SZ^'ZJL\ MIZH[J6ZPH8>AA7VV/1V['D5N1!62QIB!D]%Q^Z#PY>%PNI#I>\<&<[VP5_D2 MC)YK=S:^HYOR`*8P'#8(;GV#SQG7!2`1]H)/TV%\1Q)D$/Z%3@2P-@I!&Z_8 M>8`Z[4#`M__,-B)QT]I2K3S':<=$I#%53(G.`NJ4SV[03B`G^#Y_(_FNTX^< MT'E+!K]>R\#*,E#F`P"L].VI,3,MRLW@6=!#A_:MZ]XE MBR^7^(\*YOQ-:/&EEZS9)%A\\>#PO'Z=S&P?N+N`)>GWXWF5GEVXHWV3,$\: MO5F8RRPF-"=1\C`F9<>YZ#@=+WOX,`L9^NT"PP7SB83S%-?\2:\^'JOO/M), MX^/M&R;&'_MC0GP;T-PX^5^/;Z9ZH,O'<;G")UJ4%^8;T!R(5]FFXJ[L@_.I M\L>E1V%DL-:MND^B8F9^$9-'@,&CG1IC5"JI5#8S5/S#8CH9LU'^"O#D_D@Z MDTZ2Y3?(VW]2J$(>52,I1ES,`+EX\0+-J!(0B;"IB:MI,C9N`)ZCV"G`'EIN MA"$X54FTHBBXU$%HB]4HL=QZ+AJ:/S1KOQV!B-Y.QPN@?/^QGE4]CK+;BX M8I5&<]&^_76"/>(D2WF1R4_@K#R2NGOT7]IT@VFS>`K)HN<59*S+ON["^J4Y MI'92,U3/](?$%"VQTZ,=%R;5'*G')84=4I]%OB9;,677!E+E"B#'W@?TP<>L MW!*&?&X"WM=DE$UX0'T%"#EU][(3Y4E4UL3]6#OE5!>JS"1SG9-ECR4`I"^- M)FU=K+K\VS["30@ZB+SULD>SUJ&HJA],GLR0],X-9-#Q9$^.;-!/)V\RRMUH MDIH=3M:/S.&"A^]7M/7QJJA9H$#?H@,1\'9#LU4!\2>^3Z4"%K_OUXZ1Z M5UJ@S'U8M_%B,6Z9EIC^_`Q;^WR5M,9YV8M'`4-+#`'&`6ZW!_EIU$"R^MR' M'B[YE(<[H+U?UMX?PCN^_3$A<&'S+B1>K_)T&Z$3FW\S?O=32?>FHP:V1ZI< M#G^?:":2QZ+"9/3H?T5'0A$OIR4#A6O_6U?QT^8WB?IKF:%EUMZR$]1VI-,$ M@Y$%Z&;9I])Q9[=B"I2=`N2F:$J00DI4$TY7S_MS+)+4;2 M/F+C6J_9@=J6*JHV.34-K#D^G,)N(RT=R,Y#=G3ELE.59%M&.FZ&07\G-@E: M3EB@B=NNF_2!$N2'L88N3/4K'/-3>\V_8OI7/KGL7:_2_W>Z2H;9)9*49'G9 MNQJ.8U(7[VU*KE;*_J&92@F4C88J-PP7&WC!)GMS`AD(J>TR]2R:3!Z5*RW! M'S8";^VH57UGU"C[MBE_^UU,-Y,T#PPS^T8&\,[MD'6QZ2"F=81.H9U-IK** MVHV:>D4RM"!U)H1OE;JLTEN6P#(%YJ4D'2:+R(C.PHC=/0)'N*L]#ZLFF-RUYKF-6!A#EH:_]UU#!/I4-N=&8/ MR=X-9=+;!H'WGVR>#))(2M3RS:BT;.HNZ&G)BJ2'^*O8I*"@.#-J8&M,^:^=,2-BI+\M;W.8MME)R0-5 MN4FSXRK"ALPV%42V&.7(_P.(G7DP#C'!Y92?!L%&S_)1]S-#H M\)]L8<,K#`:XM^#_FK;DA9/.$SQ)V61<[7KQ[ M;^Q;9AR2+=*&GX7H`_#\"Q[\/@4/9S#2`GL\_\WNPJLYL[OZ0"[0/BSP5@;'D32>1M]6X2I,(.P MVD4KOK)(OA&-[F$8@=9`5DFRJ*/H+$\56Z&RT/H&-PO0J%V=/9BG% M`'SKLC%$W2JE\&1!JN(V]#L['$9#CBE&8"27G8],E@UHK!Y^SN+/^8`!/?8& M#'-:4=7-(+5:3%&*GJ3,?8!QNPKB<]1,`I[-MB`KJ[!&9DS`[C[]+:5A39L# MDU&77$&]+@/5J'38&[AR!TQE=@F;2[(]&%=-^.H=/BDJD)A M=B)M">:=I41BE>^PP92A=B.@;Q1BS/J;+(NH]FC MMCZU!R43MO2"YH"W+@.Q./>LAY/3I3,&VQ[#S*/2V^>E?;SIA<`T[2@#"]I+ M06/C@Z#QN_E`NNZ&'+7/T&+N]3,>;@2>*0#_KM?IWSOUQ<,TFSPA2&4+')6L>5/V/SWE8,%F#B.!@WE9)-K2:2-\<$:CF5RJWMK&9W[+10+$K_@Q%/0#X M-CSQ[Z^=8W6,EB`;<.5@GT/?GY-H139FV:>6)K("K2.IM/P[E&/")5Q:X`W0 M$FR@Z!3U%.4=IH#9:_Y4ZS/R9J$IURN2._'.-? M@O%_X`F4.X:V`PJ/9N43>BU)@5F(;'Z+1;02\$S;O<^C"OQ)'49='A12=$5S M?O:C<4ACN,WO-.H+?_EI"-D6RL"BIM&XF($^'?QDU8P?0V>!J`J+1"LKILW_ M;\BP,,O6?BV^4VSM:,*P<*XXE>$H3@K,0E2&4(FZ\"I(1DY;^U]P8ZQR8.&A M4.4;,X^.O+;P$`JLDUX07%K"3%;[I"&Y!T@?%]8Z`-LA7.`OO%I'^5GUI)\I^MS8B`*3#W:M#"NH<$;VOH6!@X#@7*3@38C MQD>SHNV@86"[][>T!'T;B56!AQ]=Q"V63O.VNSO(*%KHL*%8HV:CS3\9)6C6 M-!5]R)=^N$2WV,:'):HR3EA?F"7>O:G$H?[@_WJQZ6+FC3]\0![`"696Q M7O#)0R0"Y9M99W@"1U@6BAX]O"6+53.KI7RJN.9CB7!Q;*3BTG$\X(\?+>(2 M8\3&]2KETY]I)N.(ST2Y\G)ED`5T?CH.%"'(-I,HFVSB4)5>BFB^"N)Y$_.4 MU6*NF/L&/*_#,Q^:I@Z;YX2%]BNU]:N`X+++%54%/:)9JP'\W;X2,8#^PE@I@+6N@858X?&?3A&V^LZG"9A52 M(V/.AU2MAR-&69$/+(.1Z]XA!*F#N&YB$&8`(YF;=-N4T M:IAR^=EE'6MR57]?ZR-#_T6B!C-(^%40-1XV"+?HU_;P#QN%Y0_#S%>NN,V0 M"_"!+5K2=UX]ZHKV:E'4T[68>C\4Q8))>#+&T/I/T8Y84'L!F7KV:'80-+ M*ME'QY(UG?TD8PE$Q\=1F.)0XR2-A]]QFYVV]J,\1R>J'N1Q62D);?45T3Z6 M[9[O\YRV9Y4.,VAB0:2)-PLER^=QL]/P+>B;CC:PM M3E6T*,O?AV%UN:-Q%Y)QN<.$QMQ^<0];=^L'C\:G((!\2^_1";S)/R@TD%D$ M^SW:_IB\#JW>3&TR>&N4F1TD)>&F7IIHCWKS,>]4\2@E?T&FY(!8]@%Y.5]? M&[K_O`F/"(YN97M:#H92L-2IYJ2QX[K9_=FT&E*CO%,*12DTZDV?*J3X3B?9 MVM$V>"?C_S[D_VA/UG:WPTA&,?LMQ5"%,2/&4Y2T_V(R)JVKJ!E(@/G4+<1" M>?F&X6Y>F#_<;1`NE],ZWM$MIF4?*EA2M=DF+[]-/I+]HBD#0X!VP$F?V2\: M)GN53_?AD'(3(#E!E-M[14HO:39 M_&CZ5Y._4I6?*>R4*PA9=H]M3Y5!!5',=QJB.R':$%K[\YU.CA9SJG+EC[1B M4FB!:V`#Y*.\!MD,?XESX=%(TF5WY\(>,5V1@EQQZ'@GM_^Z*BAM!L**$ M;X^OI,VW1"OH@7]?4$'"U6C.+EHQ+?^>N&($$U`Y*U8CWF>G9+"2X9V8PJ7P MZQ"=NDWVN(%LZ.FS43[3,NT"I8FA'Y^-KFI$.96_#CP+#8*KB5,>`?:JR]"E M[[!C%Z4D-@NRGN01H3MU6ML'7\ MDB3JB]C^:WX/ZFB\$4';GB/2^RG2F2_9[L;^`9/HX-Q)Q2@1G4LMYO+G/4#R MW4^X*%]9FR8N\`^W6'M^@,V3.Y2E]RK?+NQ41F$2XX5#%@C0(YTER?@'7\*A M7IG?J&EOEHEZ7+R1+Q[H(>XB0!_G8D!_3ZM2Y/TK';^+[;EX[F-+M%LZ*'%Y M''!>O%4:,XAK-+`TLS)]$JEBLJ+O"1;G!O^P>/VX*)?[AULO9=&")%'Z3AN% M--]I7K`PO"+)6G8K;(%O@.0.[+$\5`Y"'1M%:5>QDUD/5RL=Y&0)(:)]?$3< M/30L0.=X!\PS:U**N7^DLD>%;W3/@>\#J>R]`IY-\/P8'LZ0FFI,C?LST2\? M\\!+;E-3ZK3MP+JYVA4\AVM(B.F70BT..9DAU:0A-2F&5#+B M]*9:GH/F#L?OG_]'^5$NU^J]9;K@BLOP]-L7R1!RVU''EIQUB6&:7!P#3TV= M?PZYV)F?U#I5AACV'MZ8)2=Y`DGYQ<[M)^7BN7*UTW2DH#IS>XJA MV-Z;Q)K*K.W_ZAN\1%0M=O^@>$D35])KOD?K,&B\P\),)Y5G%O1O2J:^1GGD=V@OV+I>.F@)H`AW'G[7Q9;+T+Y.':L$W>;T7':NE)6&;HF$F7]Y M5L&1+>98/8U;DR&#Q-YJI1AR@S88=YY7JYC+M)5^O78F:XI%>A-4.V*5/UWV MH$QM'MYO%Q+S"N^0FET\5HJP(58!VJX`NRU@NEPYERG=@11]7:\9OW"K,3)G M;Q<(/T^D((O)135?N=+)(N*&&KY7T$),E58[X_7S-NOZ>1N\2MUK.(TF_;SB M/:DDF2HK@=3S%R!?T>QY8"F<8E*`9OL7U]3K&:^I]RO(+$%!+W$__D+Y?"J( MXYIZ826].RK7=+)MS=SKF/&@>-$;[W?#R[GDC2X[BN!#=!^K-!`G@G>;HB*X M+GLS4=P.3B:_Z+(*!^!#T&WM>+49]*1XP?C3NVDL)?&,#;I=E=YZY?S?@4/T#_V1 MP^SC),4#=\=MFLU:PW"&B6I207^S4>[/IFD[*X%,BFA:.?Y",D.7-)K2G"J- M6ELRI%%;%.QDY3L38:%F6+$R^R-S`>=X*=?#8E._*S@[H\OU,;_JP6A2N;)* MZJK*/@13XA(UUUL^MJ^(N> M,W\:O8;+;X4^(1$;P=[""=]GLR]A$Y3W._Z3PCK]Q!0I]5A1J2<[LAB7K$IW M'\:)5HL][ER<<45#(#FXQ-BQPBB5.XR1K-U'QL59(1LQ!MX3#3'XLJ6LF^)? M;0WC<^R&Z=GLHF>49)WC)=GFFT"2M9TC2;8$1OM_W1B59%LL!M$6 M9;XBCP;U272GK_&"[I]N'2?H@ARS<'(QMPB>(#PO:D]4/^\$WU/J,EW;8\;* MOA*Y%BV/-^(*$K5)@/:$E<>AL8DN$@Q-L^I@F#*S+!0[,`]YJB\/:/T2@$8L M^,DO<=I-=P0VQM*5U7%*O24ZCFC+H.YG;7@+NSCAY M(4AKJ&-24D4+4, M5/X\&A4*F'[G&M<4UGRL*36XOX0Y]Q0&P*LED^8A(",MUL?535#+!YBZ_Q-4 M?D<55#02%:M#W01\]'ZQFG&[K,>%2X)A=Y^FZYS^+U*'M@0,D51\]QJP[:)Z MHQ^^R[2E;PD8='OATHG*FKK8>C:,472=N%O5]ST0\U"5*R^PG?'"ZL"VU5&= M>.7/?MP6H&W>#-(X%R!FE2LGL,HU7U->%]*T#9OD98[\9;B\MW)` M6]XKTY;WEL66]R8]GJ4NT[<_U.2M?U-=3RLSBSG?V2O%A^FHEWLX\EO;GC`P M+E3;RQ)2.GY#DX!(`*8X?C:'P',`>6R&J[S[#7W]Q+J7SNL-#ZV!QG"K0[4J MBHN'I*$4Z?3\K5A3;5F9.#GS6^`ECM=WEFC$?(C+]`) MB#S-8ENNCK.MO0`WI(;S%Z`&;XL3`+CP\BMO>;42P1T"\F]5-'#M@^*OAIPF MY.Q:L6QW8Z5AT3:RHJW&HC6[YG(V_^\,VK60[N&]J/Z%BMUX90'2*GQG#LT? MTUD7US)%>?)=="&]7&MK?Q(RV8OB[Q!>K4'M<95PM32:(TR61A<*67JE?01( MJ@`73SSFFQ%9VSU':3HJI-8IE8]13M#\"VWM[W*#>&HY)9Y%?543502IK(/ MFY!*'=KV2'M,D&QNZQ/0*5@A7C.WN5S7^*[3%KI8H. MAK6*F^6^EPZC#D.%XK5XW-"_`6,HIUA!]ZF)V1`PE_1HAT4;UCK':+/K'*D$ M.MS#E8C&T*/GHC>EK%+Z6YD.Y"_/(2F**4P]`]7:<1AJ1@U#.Q[';;72(CM; MLM*F^IJ;:GH:I/_N+J@[]'3S:QE`"LH6>/Q-C,>$SQ&+N M??),E)^0*:>A_SE#=:O<&)_W=R^2]Y3XO)=`I#UX72-5',`86G<&820<+V*# M326II[=,*^;N@><5>/Y\23&7Z2SF1N`]:48Q]S8\SDO8DP:/67N?@KB<><(_ M@_8VLIA.?< MC"_$3<*NA#/5>908D,P'#QAOM>4I+=]B@8K6SR6""WVS%D%1+E[#]9CW;6;"R-1,6 M'QF16H7[A\)B]TDY*;_$N3U57FJOAO@_!AIF53*9[03))78Y'3=<(Y."R1!) MGE;1P4\F$$G24JN!`1*?D$NTE8O-YIT=4=JVXH&UAC#D-%5F!6?B1OY;;OJ77C#MKM/BY%MLR+*_@LRN<(X/(K'%< M^LXE.]TCO`UW^DL$-A.IXCS\FDC0RC59]UK`9?@SQ`'=Y_O[3>#STBG2YO- MTNFRELL>R_6=SA6G^M56FYQ!R[^[V5B0W'$?">^4F?@S/+!_2U@J^C%)D?I0 M=(,RL(V-7Q2LX5N/1UJ&Y=55!6^(%C8!CMCSZ;W=(G^23?NF4+W+Y`B;<[:8 MG\97K7(6AH<"I85W#T:,V?T%/:U\]JG(Y=D]A(0PG966:4B6[^BP+M2P^[=_ ML/7Q_**X'=J*GM(\-8MYL1U:6C-&_6'2,E+:YM/2_T$`VR2=ADFLS-%&PE*' M7./,?J$359$7%1S99)2/^(\*5\O[Y,UVIH1@^BCQ.-M5&1C74.(P$%[Y\]`I M_$8N<6:7./"\Q!^53Y^%H6*I(](IW6GA19=SRW$E4-PAY:B@66?,%U3=U3NALQREN(.H&"@A5^@[G2TF&G!U#V.BE5>I*(L=1!]U1('R^(N\=+81@>P MERP-RF)EU1;MIIP',-Y.1*ZP#:V;XYB?\&1+:QQ M%UZ5@6YY'[-JU&:U$J@D6?N%Y+G5505#'/` M6R/20/X\](XJM'B55(9RC'CO4FX\Q(HFHM)9":%R1":D%Q6\``B\8-H';<[J M4,B(I7Q1.?\,(_L^M21G8GH>5Q_08B>TD50YGANKD#:]0G"]@MWF7N.DZLBN M<<1ZZ7SY&7D?7@\P#Z&D?,LJWVEG!U!-=SK&-V*-UE^Q=@'G;D0Y';A!*E`? ML/G'0BB1L:[QHZ'OX%E!Z+LV/^X+#I=8#8*-42E$_0%$C5RJ3["GL!HPT1Z, MIZ!D[G83%%^^,V>%[9$[Y^;?Z1)JFXQX%RD[_>95+EG-AJ?>9J-[N(G+'JNG MT9ECWJ8>8`8P,\O2Y(,F0^,I$A!R]])@Y>_:;E;VWZ.IV(\[CSZ^?J\"9C%L M\`F7R#7V'N-2Z%FR@6RQ:[R#=1B4;MTG`T0B>NW@S=:M#E8U/X70@0.E`L8;@MTY;9H:PT'6!ZY* MHV,]5'T>=L9-RP$Q$66@>!F4@ M4*(>G7)@VH0!S\AWTMF&.^TZ1V#4HW4A2AR7F::`!)UZSL#:IJDX$.PV;W>.N5O2S! MVKAMD/CQ;UYT_/L>U>,?&*^9J%]=B_T*BXD'4^ZT0V=B]3(A7X2.%=^EM.[T MU2#*CM2.OXK3@[)YD;17\=J_L63W27^==6:U\V,AL MMISJF#VJ5.ONZ6P*30?H]5FY_?5;N8XNX-X\/[S>(?>3.T]S%PA/@)FD& M2CO@I/,S6;2-+RF3:J#$?'WMUBMA.MP\KYAI0`YPQ]:XG!&F$"=7\K(=IAZ9 M@54P1V#WX&1"7;[:2);./&A/!V3M0G;:TR)76G&>0F=KH6%QN04CK')E2MLL MG)@/@^,\3C1)[QOE?4M0/5`QT@3,$<1MO92.,@X5"2-\3QEW31E%:7UK:#_$ MP823Q$F0^UP2NROI+`?Z6@%%$#W[FBT%IYOY[-.1>3VEKGFID2M97K/]?2WI MV:\N*7BA)1D#)D72*%Q?I<%8-O$K\+K&*.:Y!T&XG[L'5Q;D[I^/C/F/BF;I MK&$[O[@D,I3@S1>\T<(7+XV\'YI?$%G-H#AHGR1OC>L:,26TU8"@(D6$>;.+ M8M#95(=OFX$3K;Z\7#'9/8C)IX?FY\L#D2DR)*!U.Y!$C7(X-#]OY,V"-[=/ MD=_$PKK[W,.]7#9.LFH9H5CQ)EA:[J(#RB*[UE!V^$=QOP.2>`M>"53RS4;Y ME95*V=7Z"60[0RFEA%6JH9S:J9)G"Q?-MEWX8O)&%C.799?RYHDI>"4)7CR" M<[/Y=(M(*O/*#C4:_(/B)+10#2V76P9B^:SL3R9NU]RRI>*_6/N&2V#@L9(? M?3=_ZA]NF7FQ9,O%?Q'"MO;'M7;#Q3#73@MJ8F^G,GBMOH6Y`I\-5`*CELLH M3I-.?ZT5YBB_WDYQ/10YDH6MG20X\)4LI"&H%"$),BFCK$K+:ALY"PZ/M_X" MU\(Q37%!=XMM%XJML8KIQ`"/28E'2['_:2UIWH,O;9>OJBV/9DE)O5R\KY3'B<9`;J=VC!97>9-M M[6:37M"\<-L8;R!@?/2`Y'.D1.SQ%G0#G7;+IY[&\4);842D;7Z%B\\84V+& M^(8Y.7#0@BJ7<[L+;\7:F_,VC!0#[-:90TR7_1#CWH++F?T)+IM]`]*5=W]@ MH'-U#CI_7.7*8C:XC]OP%?1Y@.-U2//>1I/7/Y?>MIGV=8_ROB<1.M9:EF"1 MSJNB*?0M0PDNITR4./MMMM3R!V1@]-'\V#/0S+E(60\340[K'<87)9P4QRA^LN&,WX(KE4(&=B[_"%NEI M0ZAX&X<3FVG[)$2BQT>>FH9-MU?*1_V=52YFD2#[9=E357`$^,N1P&2M^2E` MO$6NK$(5B99,[)?9W04'@%`.R$J(X.F4Q8@)HN57>K<[LP<*C@&H8R&J#3FB MQW*?#/GC4T&>J&7>R+Y$:NP55S<):C\\;(;%PZ M!V<#.NLCNERP4GGP&]JRB48`!GR)D[K>P<'1T>&,H'T9_+0XM7*(28RA0K,[ M*@K&;/?@G,3=I9=6MV]*A>T^;JJA51@FIQ4QED*#`W*G+V8K24@H`?LXUH*G M@G1E=[UV68:5IE/:H6IO-J3T'VVYE*D,$&MX)MX^O0$ORV,7(KM/%C2[[-M7 MN+N>Q'V'8))\I'O4X'O;X-N7*YU6.WX\&V'@(6[1XCN3*YA"UME+[WA-ZK5` MJ&!^FJDOL=HQE4<,RQ%<\V,0*)J1/!;WW,WV_]C54_N\TD+L`X+>!S["/G`* M"/=4X/IQ?=YJ`I8B2%:OA?[P!D08HSRZ1#E*3^O M5Y2[+S%5K`]`RNP7H`^27+HV^R`D8/%BP(&ZCVS/N7@X@6"QDJA#'&0Q/K^5 M_N,>`-7I/ID]F@^]*]#LRC(Q^Y M^W;C!E`P'0?^4.%4W!SMWNARF'QO)?NZ<]D"K.])TL`5DG$0,\H?+KGC92EL M*J\4NR.W1H>OI6B-;P(K6V)*CT3)Y0@IOCFV\M@WD;$LI9Q,;*T7G3TH)X3T6/AZ!&?ZG-&CPN!)XX>$V9^P>AQ M0:S_N*,``!PLL)/`<.',AX[34H7#Q?6#RZ"SX'#A3.@L-R9VE@'L+/?>&MTB MK[#M"2,S"SD.PNS-T?PW;+&UZP-)[BZ&'EOFP7/Z=5[W,*J1U#49&S-!7JVK MJU9>RD?A%Z_4DO9G=K)+8RWL&BUO8`$>5%!N_1%MUN/MNK&KL:KIJBQE`1>[ M-ZN@1YBB?"IK-V8%%J"RZ+JP\G:!JK+(_7K8NO`.NK\]IZ9.-R"S\8;$L]`. MH/PGLSB=KEA+5#ND;D>^%Y6%#_]#53O*U(A=FYW;@XYI';6J:LA;JPJ'?-O5 M%.$`_*8*>^$W37BBIVQ,C5/]E_8YQLK&Y%14_K-E8QVE:2]%,C05 M0KMM3]E8T#JIH\K\DFJ4BIJM):@#AKZV/>#79*Q6MN03UA%GU%?.N#VUA'-W M-17@LD M6?:27&OI@5!.-@8G+[2+,U*/"E."U8:%7H.8+G4;I2YCZE'Q77=7Q#RS2^JG M6^&0W4QXQ"%5^?G?$ZILM1T+MPSO7=JN7FEK?VU,59_$M4"H05L[7D)UD:JO M_OM%JA[AB-U#/T1`6;3/W[%6#8BCO68\%,J&8$T!)=M`^0A.:JDIU%)6:JDD M^+U67$Z_R;UEHS1]AV`Q)5\&N;?D9@MY!E80"?9 M4UG>17]+J)-8WH!ZCIA[$8R3+Y9*JZ<`HOTR701'QVHY[69*=D45ZTJWL&LJ MI1-"39W\-Q>J8*,XQ\[`-[/1.'\6$F\+4'12D]&K=+&^%ID"%'DAO:9#+*_R MIP5$IQ%C,*GC[ONOK>0J=*LYB'J*4O4XH)ZD=Q8OT%)J1SHY5(^>WU2`U)AL MP)7K95J6CG%9SL%@M'OENVF]F"*I6;:[5J"X-]CQ6\S45X2_0)QWX>H0.5RV M=A&7D_[DPDW-_+66EE)WUUX,D9?QLM4@3P[:%J9"7^F#OK+"L'`)]I5>H[3/ MF-H'?:4/^DJ?-*#Z^X04J8LO`0"MW?`C6IOL337*@C7:!6X\2,36^^5BO*'< M*5=;@;=FPJ2V&(V09B&.=)UR4-N]W(&^S&2AJCE!"$SZT>HNWO'HAK(%3!X9Z8*F1-"PADU'AZ\::ZXD>*)7X#/52/N[ M>!Q_CJW]=;R++0E8'%^8(B:0T16*^3$BH^,)V28\F\:+:$IA3>PK4#V:,LMTDVI\C8^Q+>*6[N/`Y,&2!^X MR99M%EZH;0ALL\N&'D_:I?(Z7C8$5L./_!V+>]"ORK5[E66; M.2[;.@OD.,-]-+#:"5+ZC4#6_\&^(?EJP*-#OF;>;9'KHY,P;9+\,NNH!RMD",VB=3- ME^?GMJ*(XUP+Y:&]>GV_NQ1\O83",)I.%%S.`"[1X&J*/?]VWG;O"-NV6.-J ME,*%,&%9`PE6AZKF9WKKJY4<1M?8/1]&03LY9R';<@J4O`O]8[D6-P_C*@8V1H`U'^$N?VR4K;GU5U;49++>B\6FJ?K1=#M-1%+TAM&_"4!3(L2]D5[DLQ8%*,C&Y&)?TUJ\S6.AN M$6T^ZR+<:Z":T/U)5Y\57==[XLE)EQ1<81("GKXD6^!(Y+5K@ZJ@( MD.Q5_C!/%P&2.TKG6\L3!8"E?_SBZ@4!(%D3`*JNB0H`MHD%@)M1`!@#`:`: M!8"C4`^%':OF6^5B:[Z]I<0]C$;HP2%[>#DS-YB\T`1C?!>,\16&A27:&!\V MIG8ER,/")#2!U.-^ MS`/C"Q1#I%^Y%`.=< M!<]J>-;`LP&>V^!IA&I7&XGF3.2#!\^S.]VAUQI]_>U.*$-DV"( M"Y0Z[($UCE52#[!Q?K'X?B_P:4WE8"YGN[>`B3O;(,)/@6L46G(X@ MJR\Q`)`"`-G\=W"NJ0!G+LS&GCZ63;?1L932"C]T"( M!T(*(23+=M^-+*010BHA!!>A2U$QWG:?D85LA!`OA'@A!!=.YMKN>W8LMJY[ M6SAN'N.,F\=88_,8T:JO:-P>J'3$C1"WH;W$;=BF0):3V=1(#]'OP\BDDY#- MKEPYN5(:G62[^UIF'.*I)<58W?.]BL6F'6VVM4_%=;08_,PPB_'36(R/#!/& M<*1'8SP_<8R_VJ,Q_CQQC..Q7.2)8[PQ-1KCFQ/'6#,E&J-BXAC!R=$8F"&!7(Z>=#=1L=T=,B>-=70BP0S2JL^2`1AFDZ#=++"FL`B`_MUFV$ M0=4@K\JUTJ8]?MEQDD)?#IJ>&.2J7-I,*GA6N$07Y$$6=N)=`$L_H]$(61$N MUF&W(D.J.,'(6NF%C.1JX)37H]W]4J_RU%DZZU$(_`I[C"XVF[.IB.#ET*7F MCZ_6O>:*TP%]8+\E4(3[BN,V(3+#$U37D%Y=0G]"Z(YUE<6<#YX'X=D/SWOP M6!87:I;:?IDOI)%-I`R;0M&5ZQ+2_`F>C<]J M964=.V=5ZIK$2=LJ83K>4#LU^-;LCLJUVA&N]5&+$S;QAE"](9A*P>NTM>MUOCR;."VX MPHB^%AB_<0RO,/J2C9')P63Y3(9.%JT]7+)^:HPQ M#W=?KX=X-,`A@:M+29+V504/RKT5>/\3#(6+<&L17KB8S@US,/&3WN>+Y>[% MT+0S022H"!@+6\5D.5GJY0,P,^G"EM*]R@N"H@@^9*)QENQLMU6&E;EQ)E9JULE@S7&FT^1_21]9ASZT& MX4[]2.HF,I%K$)H`TP:832YP=P63HT=2)^.1U(Q(%AMO*QV1:=JA^4AR8Y:E MA&OBV1%`-L>MESV5>.B6SNYKMWM4QHZ@5II&ARX'#.NU`;ZR.CZJZ8[*(3ZF M(%JM_&HI.^GRX7G-P#2D"%2N'GH33VB1(=!._`D4'LAY5_O6,JVN##@.Y*(A MFL?/T_D4_Q_1(%V_2:N!'L\:P]#].EAP<4/!\[CDI"]E#]T9==)1J(T:F-O@ MC1>1&(:^@JG)&*F5ZN)9)\B[$:NAZ1#8-`X>^1">#T&8!)Z9W M=D31#11G:V\NZC$6/V$3W#!;UFX1W=I@$S9>KL?/T4'L%^ M-VI/:Q8:[XFD=IY`'SI$2C84-L_*IC?A',B@HQV&G8CL4,TYK"?]@$?VY$`& M>1>>8R.`908,[L&GL:<%R,(3.^Z@G5:E&EV=I1%,5H!L!.4W6L14E#U] MR@]JM&97-8L&^:LK6_\Y%#RK>;=MV*"BH;Y?$T;SGL$UK-%,V]W?/,NZ5C_K M6O?`2RO#.N7CRI@%N7M!/<&Y6B"^U9E7X+[J\I?$]Q?4QY,<-^F_"C! M_77EK@3W-Y1-">Y&Y:L)[F\J*Q/<3WE.L3W!N5RQ/+0/Y.B3%SCS3`N&/S#XA1W%YD+326RI$-$I*\>H"%% MB"::'E,WWY&TK)@[#,]0=3'W7TO9^W5P_P#?*V"\75[,9.!9P4\ MM\+S8WA:(<[-WF+NR:5H0V?*%"/]F7ASTI0IR98I*:F3K&GI-IO-/EE6;X5X MWX.G#9X?PM,)SV/P=,/S`CQOP?,1/`;(>S(\E\%S'3S%\%3##D^5&0P&L]%D,O/\#GW\?LQ0 M4W?](#L8=J$]M,ED%L+_4&TQ][A!6;T3K5#;VKMPOK#@I4>U,^>-1Q[%$_RI M`K2W,H2[#IUT`HI,+E;*GS'E>[*+/=)/K3-T`,4[-6)EI_?G:B>E=8W1%$UC M5#1>WV?;TQVR>D*9J)+$F1X_`5DQ-0)O2%;`4:U9>5`DU2!>PBY".E_!CA;V MW(WG>G(B!V%DN\+TH=1CZJ&-S*O*(@YVO\H'!3UQYA^TZYMHMUHPE:/Y%OU6 M)+DG^P`S11&QXA((;FNB#@#J<:$T_"1:"LA?X,4*O.]-6G^@0_9U]71Z7QL6 M373,,9NBR1_H%K^8^7T;TU?,G,ATC&Z0QC_<^LNA?W!1RS3,XC^M"-MESUP8 MQ/F"4ZWINC7[#&EL1;/.;&]1%I=2QXQQ[$0$IL2@).\QZ+)>)>?_P MA\#!]Z)1\9VH5:V%8*9[&Z\ MKKI@7\O&$#_9E[>@&2\93E_7PUW7XS&P]81P#X@VOKQ\,3V_W+K9UL/EHDOX M>-T8Y^Z"P.M,^]1R'I+D)B21;IHG7B*76^6#'E]^KC#JVZ9R8E)O4A9VA"ZT M_X2GZ-=\N9(3<'',TF3R*C]OC&U=6R;>NO[]9KJXB;:?8WO7`0(46>P>;C+A MOGA@`0+Q*I5?#/"S[TT$4+G)'MW9UNMO'+X&F-]\XPO!#V_Z`GP-\?C>_\4` MRR;&]U[;%^%K]"KY7PR^_(OP-<;CJS1\(<"?W#XAOF^D?Q&^5J\2^&+P/YVP M.N+PM<;CF_?%`/_UW0GQO>8+\9WD50:^_H7@WYNP.N+PG12/;\<7`UPP,;XM M:1?'MP+Q]2I+XRJ#GQAXWN=A6^$>)D`,6>7SA#%-EDKS+M/X#_1<@FZ\CV??4+ M@6W9."&R>U,3JYC='S`>WR2OTO#%66R>L#[B\$W2\9W^Q#F1L09/0[SKUO\`ZJ2)45^5 M$D,]?C]L$`1`>'!OQ6+JLDEX52@JAZ7C8;%TP?3&Z7"WDNG;E8MZ+"(Z$:TY MN,8F?*.(7AL&FEVX*YJ9=C/,,^>HGS";-@,;R?Z,D^+BXLPE_6D>@#+0I[\A M1B8`[$\KU;Q+X[V1$B8!5HF9BA__![D)DQEFU^/*IJEK\]41"_O:E#70=ZQ_ MH*L_K1*R&FQV\5C^@;Y?8IY#HV.JJF4NG9Y/Z M1V.?Y/L&>3#O-\@'H%H'N@8+7?"1I?P*8$(>D&\T(0NR*FTLR!H7--"7F'J= MEIK@:LF6T'8DRP?\E(4:F'B_*^/B0(5&X:5C"?L(GV?B\6'Y*KA(1<'6N."! M9\9#.:A'T_'2DC]*_K%\$9-?14$F^KK`U+GC@\'@HOB@4'4>6O)'\8_DB+JNB(!/]"Q/C'HY!OQQ##A..SR;@2'@H M)CW8&A<\\.QX**^?U:'H.++D^\D_EB_B\J@>UYKH?W]BW&=CT%LPY%G"\;D$ M'`D/9;T>;(T+'GAN/)2\*!0=1Y8\B_QC^2(NUBC(1/]/SR3$?2X&_34,>8YP M?#X!1\)#>5(/ML8%#SP_'LJ/HU!T'%GR9O*/Y8NX-$9!)OI[HW&!/>GLH.`, MZ^KHI?7^N9H7JDY9YG"A\/'%G` MTZ$\")Z#.2[LFE8,[!=<%GQ[B0-SW"F$=2H>UC&$]2V"98G".H:PZA)@6;C7 M"9:%\T;3OHEIKQV'QYN8=L8X/&)I!C$-7H(3GV80T[PW-B[-YY?_F;$)RO_W M<3#ZF_^C\K>,35#^;XZ-*W_SA.5?-#9!^>>-+TMB^=,G*O_I\^/2Q)&)8Y1H M8G78&T6VO8.. M[/ZMZ^)"4N-#;!T?,VEE+BD*1D/D0]G]TCO)TB$^^Y#0AP'WNI_`1O,@'<#]K\UT/=Z6C/)-M*0 M07P7$S.,(&[FX+QV#!HEUUQ`8#XKA9`^<#R2JLEGS&:@;PY70OH``_-=;;>Y>/4ICDL!&6L` MK4]E?OF6U>&5T@G$RPFDX3X*:9/^@"TII"K'<--G?^Y7PD!=`,LI\RZ0S'CA M#C;P,YI[QCC`C$NY]-K$PF!S95%M%NV!GZU.Z1G#ZVFW,>G+J7T5NB)9T<1< M7.)C_=$8X(114$=D8)1>_W]#M^'_U]+M9U]`MY_]/TJWN[4Y;Y1T7_M_"^E6 MCR-=Y5X0P,**!R^V'_@D//!QF.XK5="$@/*/N7C'8TH)IQ3"U^#;X>A]IN'# MB7^]YMOL)9SGI\4PV6N$KR[ZV@A?1WZ"7[?#UP/@MVO#+XJYG1O`M5.`GRB8 MSOLA%U*P2,,OO$Q5VO_I+P>VC_VR02X;\QVV-@3*S@U\^]R;VS\=^/:87/:I M7#O:%\/B-M1YQIM7F]1&[V.+N,:'_U#,>6\+S&'*%6B&/?!U1)JM$' M@R^UO:5RV$7M@8Q^R#&0]A+\[CP,/]UO64S/!-*.8+F%0H[K+<.[?CAE]4+X M*5F("_VO`YB=GN_`9#@,L]2=?X*H_B[<:$$_3DQM4I772`V*5RZ_#E(5Y<+/ M_;B5HV`N)^#'VWF:70=@/JS[,/U9,K#TLAW@P_7A?9T.0T+@-C$-0'F*\G' M.HX@M'"#5[E^PO`F`Z96,O1`<(./8M;=O68^53OSP\R00:=W=,SBP%.\62HJ MQ&H67/*"'/B0/N`+%J#/IJER$BM#U&OSR<;<@[BQU@/(?TDK3MXSX#._;Y&> MOP7M4J!@A==`0\NNNR5<5T_;4M`U"T:VV'`WG<#V\@4C6S]:ORXLKP)2O3KP M%3[P?4M@DS7P53OTZ,`B1^^BK-SK2^IZ%]&J!J/*P"(GVJ=)Z5V4B4T5*<#5 ME$E]=-;`&ECD6BQ:9`]\9$8NPSTC^%@L7%)7'Q)_\&&\8[34A1MG M+T$!V3(&T($7-^9+7>ET_#3>9TKTC>,."U&V+J3S`#G2?J>_3S`&#'A'O7Z_ ML97@*^X"CNE'[>>STRS07"$^$'+X`%JG%5W6'W6_90+L@#X(*AJ>Z@X?;L2H MRO!"3J/)W9NFEG!#?X2Q/X"ORZ>Z_XNLD\S]1<('_ M=G,.\+T%P[,'B?HN\O,/9M&?!E0,BE&92N M/8/240P^&B.O8'R,!'B[,VFR1SGZ_U21%LN0P'8QN.XL]3M73!Y]U'@R]T8O!PJ=?@$QR[4([H`.KM*76EHD7UE$@Z;>;!)_JE(&DC M`S')&8A5M1?/"GD;\1+6E8J*`_'^S+@<\!:V261-D&='X;O`P!P%*]W'+ M+9.ZT3>^_$BB)RPUH6)H.%<.\ M*H9Y$C(W#>>JL5N\9SX\.) M/UFEL>-;S'BZ((Q6==@>?+/+7J?,XO1;@J;Z5<%6IVRLU#W>IOC8_G+:8?#V M-N&F/[>IDAM7/]8ZG+=*IU/%Z?ZN[1F87Y.ANLZK9'',?%4/@$%/#CTGQ3R) MGO!P5`T[WE`K6'N2YI6CJNC(0(0GE=$Q&60JN3O[Z,AG\FO:^Z!T-F6+V1>N MCYA\X=R.2\O]?>+K/4G<\F!2T-:1OKPCN:)@;-/'[.!0/'Z3`+_DW72`Q@B# M.^"T$E':IC(CJX@2APZMT4FMHF;P M\4U"_?5$%G+?.AA[Y;.5[,A;&H[+V6GH*77S!=V;2[4(+[$( M4I==IE`@[UMMNHE^D[LKG)#TK7,[\6TZ&"!?%H9E@:''C-]\?/UYE2W4I#SI MQB3VJ$8?2G"_/\'"8O0J^7U#CHJ:2R#A(=+S/) M?I,#[3=E(F7FU$/K95HAUD@/(ELK6G3S8R,]-*'AKQ^,S(9O#\<][A,S.N;"ZS^!2Q<213+U M&W`H!P?=6(\Y.,A26L\CP8EMY6A75EX-I0I8J'9,"NA21P&3`. M\DK!0F&62/I(#_)R"N4XN_(J'GD=5>51\;)X_)T3X8];34TXMKAJ\5PD.XZ* M1T!6>N5YHR#35:LO(RQ%S%0S+)MH/W\%]34&6@-3JV98-Q'Q7P&?GT(Z/?97 M)H@-%"2:?8>`(J11DVCR';+4^@X9ZI4WS(QI]+(N$'H8NP"Z9LNUJ+B+ZP8= M:XQ\,.RJ[("6MOEALLP-AWW,+-M(#]:UK1UM^C89F]1Z9;N)L2NTARU>V5:$ MA9(=F2">CVR<.$9Z+-B`5KD,AQ&GK\K"9\F]48P6<]=O M*^8*X2F'QPO/9'C&V[,WC'./-VAO0GZ*TS?LQ6E0HFNDHJ=0KA/G-.),5)G- M1O?.;;;HG`WG=$HRIXO/A]M./(QFU+J>.)5>`B+=CUV/@K.NOC9_LF"5NBV> MMM.8>-.I?,=VNS2FPG#TJ9KA@.J33\G_A7DUT?%Y M^8PWX:ZEE75JAAUBQ4$Y?-C=MPO;D88INS!)ZK(4%U$+?Y3O>)9:F">53Y"8 M?0@:).2$`1)%S9JZ@C0IMTCW(FKNUWKV+<.S&WGU):#X1RG#I];Q!^&:U MXC"Q\1QZSE3J,.L9#TNAE8BP?G:QNHE;"2)-)J"-3*J?F:),8KP'+];V*J\M MB?4ZDO"2U_MNR^7/RV%PC`<=8X\0&)57:E!:V6X)F3>`\$P6=0H>5>4N$%RN M"2:5![]4D;=?^#BGN'#&C#[?6UG&;K[X!\<3G'G'A:,SNC)5VYZNR/Q=V*?< M@Y3^2YA^=D5>O_"QMT9Y'H1=8%7[>>7`)$(Z+RR\1D=&;]'EHIJZ>KJ[`P^T MGWR2*G"J_ZA0'KH+QX6"(YLO>P('D?8EO)`B[;,4'-GT:22]UTCM/+7[C"DT M_VHDB6]*![*D,%_1=C8+US>>9+8$PHT(1.G_A$07J+Y%HW7.'NVXV21T3O`PYSVB!,DTX;A:S(/%RXJ6D:5C.RH*DCES/G9YIS M*G-^JCEY=$+#!S)ST?S0%S=[`OW6U><3OEL:)D!70U9.-O4,>X!V%TEYJE"D M8WVECG4:8IT>F0;CPG`D%7X_B^`T5$,04.OE<\F@7->ZS\,."9_7L)D%^;^E M"XL[J)GX9P@'D\R%)TI.@,>5#Z8.J%E>_[!%,#Z>-;S?(\!P[,/97GUT2'?J M8_F]%8E]Z<)Q7+D%UX&A*YX29\67PSF^ENMAP*]33IYG=DU`NORW_!P4!$JT MGA4&9@X=:Y[AQ[<'RN-JAHL0&]_;;5[E1'D,0^1%3'[O8?)[.)I^+F,88H9> MLK_%IWO8(%PV#!5C%&8P[-.BV)NCU<@8G7;XU)%?A&UB^P$:5X^*+_?'Q)=) M409W'330)DDU"&9)-8HS8!H_E[19>%EI,BJ9[+M`$2ZM5VS,X64"%4XL&+JR M`O/1D_7*^O.LHYX4IM8J'YFFK9B--?V6%9R09`H*0B7)TTE`+>X>V! M2#X.ES#S_C$5QULKIZRLCD:=$D62'5?/BFBMA#-H=BK_F5D7NJ?++%X1 M:PA<(5V[?B>V!K51M(;82=:9I8G-&@NDVI+MPZ6IO$>8+K-*\.7-&%?1\0V? M.;[A8]"RUF;W3)SH`FK1XAQFXQ'9V\`NX!\6T^J57YXDFD2B\JNBK4[Y_H?D MP6Q5R+-RH&9H)4)2CV\!WTAR?5T3YU5?!/*>)17A\A1,C.J5J3=H"TL467R! MI;"&YS+<=.,'I904?;BJLK5>&2_2I_S40L-KF M)UO[9\W;9Y<\D4JS0S1>Z-N7*_=TU'++T"&?*OAP\WZ,+7X=8C9O>/*K$+&G MC+M57H"UP.H"_U"P__M9XEML;X8XA)@1BR&=O5.8VK&6*XF\B$)\@```]M@N M"8[QHTU4WEAF?^=*>0#724;<*)X-F`[)8R"%?/+[8+GJ[EM8H6[E!7[QXI$7 MY.Y;XM=,I!,P7+&KF7A;^Y\1&=5D:\=SI;AF)HT9A5726(90)HU-$SS2F$TH MD,8L0JHTQ@-#&ILD;J]31HWZ@>?;Y4H+VJCQHXP7V&:1NJS@%#Z3N]%("!]& M<)`J0YPC%9VRH3B?V61H?+0#9O,9N<1B#>)EO68,HBV7#XS2F&-KJ[LK^(,? M=]`]:#Z*B]TEU@/6QZ;;E(N<=AP`R-V!(GROU_Q.:'XGXOS>U?S>C?-3-#\E MYH?K)UH)7)!_'CQ5\&R`1^@8-Z]BDRJC2:]?O(]"G/P$8M*)/V3_,F)[`K/L MQ)_=N/>#ED/<77A?"DRUK"M[L?2<>@0[,GY"0*R]M"'$&:H8DT8=;$%$"-*" MR*J@OB"B'<9YFFIB`?Y&;JA7EI,1"#[4:)%%+C+G::J3!?@;<3Y-E;$`?R.3 MGJ9:6("_TIA!3-4/O/.XP)O:9%(>>I>M<*E("^HD')QX\6IYUMS)D$*U])KQ M@X;;FD[79.P.^(OB/+(Y$K#L$$]]@?IKK&KDKF-2ANW9(IZU;KI!?'7D-`&<_(W?+S\#$_Z!T7,_% MC[E`&O"-IC]O^LAT6D-I/:$D?[XY"$]G;Y_ M8"\P1X5%*1N'C_CU.Y"Z<*+$EH+D,LX4QEF*K=V(]A)7D4'!''U5%R_&.0[$ M"#&,-O\K[*M2F!GTF`M3!4>'<=%B@*"O_/:4.LVI2,$@052OE)=QLF,Z"''S MV;2EB@TLTJA9S%Q[P?#"5A)PY5P:_7:,(]K#7N6_%XY?J+,S@6L9AS;80Z73 M^:!EN!N$U*L,)-@Y.2$=2^);",*GKX^/F'QOG06>/K<#!G!2L.I%Z;B@U_:# M#SDT$UXXP]:.%]86I@F6\H[DH2Z-%CXF@#F9%>37#LAHJ;[C4 M"34Z"UY:H/ M2%ZG0(''I`6"*]-V%]YD#!/O,D#02?7CP;HP=EBR`1B:^Y3)`C"KSEAU?ZZH M&=O8T/YV\2!K*W5OJBJ3!/_F^3F@/V`M4;XR7/H,$IS5 M@#554Z5R;`EX>R%?_)EJ_CFIR[ MZPF<330B3_KDCW7*U4P4E$=WX0I]@;+=*!]@7+5.^Y\*OM.4-HZ)>64/@O,8R+5S$%\*4_.."\GRF6+YH\A017GD7W(WS%J[;EF_+GZ' M#].[N[S:GUQK1;YI!!C)BVQ_Y%V13P"TU*?N*`XFH6>Y;2?OVOPQ#!S[L]9I M_,V@R(VXU:G=!-U>2#.(D0.DF&C&<="\QX=#Q`&#YF,4D]J>PX$3-YX[ M/P71*OL0,Y27(V>@$T4(D_2<1TY#%ZG@%*-1(^O:0+6=>0:N6T(!6YAKF-LP8Z):)-WOZ6Q_UIV]4ZVU#=T? M\$]"SKZ&MKKC!RE;O+WR=.\Y\4 MI^"T8RT,,I9`!1_`^[_"$,50Z!Z,\`U[U-;NMR:1Q<4#W4I&][\F3>J>%`Y< M"U'Q))9/G-.P7$Z6^^45?!OV1I^IKSLRV]0U:2"0/()6IGR!];PPV##I8\AA MJR4Z!6^^Q>`M/@9N M5-U_'<26US>Z\`(J^X#R.OS2G58D/HE&-'GH1'TG"XYRRD,JGFD7TBA4-_#? MZ`4)4S2C$L'[_8$*8*RX,N$1"F#4N[!0*ZW%A MH[98V+C\U)"A%X_[@2H%FU=]U:N^HCP_1@?U9Y1( M9[.:7Z?U!PJ(I8SY)10\5M],?X1,-1L^TS;-OR[,)\L1Y?E%,7O/O%!?:>T9]DA>"Z0_X('I'4GDP*?A"Q[3@P?+VH^(GZ] M44A:!$[Q(WG?(E\>)^1AF#UH+/RZD%I8I@6>DOP]",#5BIA/'=NBAZ;JG-57M,U>0M?5D29E'J_N:C0[3`?]PJ]'=5^U5_":F+(6W:3GHVK3JE71>"1*Z:'0*E1OJ MO7(R2Z_,D_&D#@/#@)BZ30>\RM/E;+_T6>GF>6)R:)FAIXR;YQ]NF1RJ-@2- M'0;YF>`L:I09#%'#S*,CKYE>,+TBSVH'YR[\"81P9[#/.*I;.W-4_=M6%\^8/Z/R"E7>PON'MU^OE4#@1]Z(6$;>*/BL MV2A_5E>O/,ABLZLYGF-7&CE)4$01H]U^PJZ-V>U7Y4`'&C!"URC/:4C''U=;7*,BZZ,4F+C%[TM)"G M7?>TDZG952X+G6>J[C$3T<#H=NJ`"*'Z@$KO4XSXE3&@UT].-QB^)!87+5XY9( M^+;[V'5,B"FN5=XFHZ#)M=W!8T:B7:ZVRBNM^=46[=Z_<$WUD_=`]4=2M0]Y MF26PU!(HX0/?LG[YENB"%W)3-#J\RA"U0;D0<_=:\`[3:]'WC%FT]7J02%BQ MH:I@HB]:M%VGL+P`%W_(EGH:+0-MXRTP5<02I]'B4QHM/M'O]LME>H>LBT.% M(5QX8G%ZDZETO=;%XJ=R$2X?R5S1O2`4B%:VLH7J(9';BW;$>;6AU]JB'\9Y MD879)47_%>?E1Z\;BT)Q7G>AEZOHOC@O/(8>F5ST(_1*95Y!\(JN?1W%08'P MBMBUND!]:_37=M\"5`NT(6BO5C,J009`FHJM7Z5>9/GJ/=D8MWHEG>#E##QF M@-.IX5H<+F?X%A8)AG+MABM&NZ87<.!\+\3_'05HK_+WEU5UI\(T_9DXTY2B M''^>[6/-0WCR`5R2%]8EJ$^@S7/P+A**JI5-+U/L@(D4YE*4![74X]0MNO%B MU1&Y0`KST8N!3!L)#"<^V/DG.N4P[55*2TLEG+X,J,E_EKIZ4B'98P=65M<$ M\AEJDG3B@8K`@E%(CG)"DKP`/;0)@,5;C9VRCLG?-$]T=!\WFE"37]G]$L.3 M!*XFB_+^<^36DQ*#J`[Q/P-6IUP:2U\9*,)S&>MWXKF,=5&A"><.-:C)H.VC MP+RQEJ;J;(&TUT@=?Q+$<$H0Q@>,OILN%\I5`PB?YN"T#KLG.*T<=8F'I7QH M:5ZP:D&7=C@]Y;XS64(*\.44WYD4\1!(3Z;E$2\$5_5X5"Y27HZP1A)`!OAQ66%\\0AYH-:G!YV&.EB\%IF*,9%&R'B9?$5E=1A+X?"!:=YRCN\JFH8PBL5XR.8H)950_E0/1/UJ<00 MS89[R52>5"P/LRV*Q4&Z4XWCYL=LON`>K)47K,$%F35XZTD.P!=O4%_!GB,` M1T`W*3)>KF:LTB8(NC]M+\3)[E(1Q;;Y<3(*'6\*`Q,OWC=(!9P<$1S2`6.# MA-UD./IU(CL"W[7*9R_0`HB#J6Y/KE$S5F^JY.+D?)!GY4_D9YG2T;,UU.U8 M)+9?&8^,T>8_P9"9%L,_'B'Y$U\!)US7Q'5NFX;:1TUJ79/!JV9XV0YJJ3Q& M?1[7UC1V@Z0C/H_7#K#CB5ZE)`'CF8!Q50+&\;FAU3?,L9)&[6>S<=S.P*R[ M3QNRN[VUE/_*:/X+M?RSNVI9YDIY(=M7V5AF1$1V-=`&A99G?`6P/=J?'246 M<`%.U/Z\5)0[61-)10\C`V@S8!^"O=>$*5(/D`"4943_^"![I(GK'C,TX9HB,+MZ M_%4S-FB34*&X5GE>8\F(S_487%L3'PW:85*-\HL7V/[N8+U&'V$]Z_I$JN+# M#%VC>.?%2`7*%\&&2]?V<]GKX^Q(6:VRZ/GQ)%N5`/PB))O88GPXEB`JCT@G MG-@X7N5Y)I3(2OZ\PBG01:-X.<,P*[]`6^MFG$;6[BS^4L@A[UYM%OU!`I;G_SQ?W!]UF#[`=J4 M#PFN&7FEKAE"3G"YH;U/F./N`K8,D]^"(YLF^SJ(+7G(E0NV_11;8!*H"QC)1IZA+L@7[I*W`%B42T6(F3-"\U_]G9(`S"% MZUC^,"@`0YP6'"AX;=.T8,=J"+4$,9]%X+W.4/#:YE,:$L][I%%^TVX]6Q3& M=GJFT*(7C)R\_"M/XQ02%G97PCMTC^$%%R@9Y,UPKYEBLG&8 MET;'1#OSPDI3YS12PYQ/]'SW>^AY#J30J"(GNS4]A6[;G?TU:M M`B]W5WC79%*?X"WX.X5]X^\1"'X%GM?A>1N>9W_/]ID3=':-IL/U[BYJ)[V5 M=E;J5;&>:H6J@U4$%;`3/>/&G*;SRE7G=64GXC^E2-M,L4\]Q/HSK2,US52N M[6&BRP\P-+``5\I[F8X?9%[0LV6.KN2WG)=Z++WE3,FO[CPIEYI)S:]GZ]LA M6A/*V`A5V0#$O(AC2^?P60J?85;UI7)>:#7?IG)0,:'YLYO->_&K@+2F6M8^ M[0*`#,=;#NG*A\5,ZS!0IBL>%ASFA$\E`W3D[?%HBJ>3!PZ^O M7!HS-?^PLY^=V3GQO-VW#-`Y9KX*/HA(4$[)%17*#L7*AL-E)R3-UOE.RTXZ[PU9-TB-=_'?U^DDY3_(IG$_2(9"+Q)K5'>)V"6M='E29Q(U])T_RJY.-,K%SN] MR@$M$NIGG'"1"E-N?6W;!QM107^LW'8/7G/:-H8S,MM]#[+1N5#.^77A=)A= M;G1Y1GIH3S9).FML,90I>?.!IAW#(?X5R*EHZ?"SEVA`I7AAQW M=+]MA`_H!E4AQ][`1E>.:96K,@`3<@A8"B$@%F:A;00(-67T.X%3%KT.OUSH M*:.OK;:9;DD`.>-:72=*2&K[T)Z."G&,*%SQG,\5WY[2B?EURL_<'/=$(;(Q MA/US*&[AR.F&0'E2B&E#XM'=!L"=CG,U!):S$[3SL#KPN#\[L8MWJV>QSZ1* MO(HE>MB7+@K'Y?3YB`2=^R7]0/WH;X#V3/$.AIMNH&7//"@$9&,)),%$:'X" MA0YH)TNGA0?&V)$>_^V0A7GH6+)V;!;HLFW_!N!X-;\< M>'H-A/U2*NK"0XF"0]D*!-ICGGM=)6=0\$*L6_K"`WW'?O)]%4US':N]*W+L M@M2QQ"^:8XFK6&*6-/)N+)4J6G'1IH,MS:FB0Q7MRO>92X.H?`2`%!.#P`!" MZ]Y/9Q^JCF5D@3M(A4KM$F84JH*G<$PHA.]27`;)ASJK4!.IFEH>A4JY`;V>GU6![@!YF\VSW\][6'XCN2PV":*O6-<;)\6>TO2 MZVD/P'==O?QKO#^F)/!K/"?G*Z(RBC/.A41+Z&FLLM_]SG>GU2!80J(]M/VN MW_WNV-I@B#((_1IQKO$R`,&2="BT5[G_!FWAZ5A9<&@.*KN/K_!+N(0J_A(4 M2WE@3%6ABIF!AYH&N2R]0>ZG:H`:$"]M:#NDMC8$UH[)959YK<7V4/^D0-F9 MP-KAP6\/1TS'RBRWT+9D:I\X9>!,&%Z3P@/O$@6*D?#0M\T:O2DW0M8_&(I< MKES#X7?"O MO(&!RAO=;_1!#L>>WH#--NR_%6=`HOGZDY#]ZJ$S4*1C_8/SKD:YXU@_0)IT MK'\@HD$:*J#@H5?H%7PVPBG/(Z6\Q2>>)C]\6,,I]:2X%#+]*)*F>4`V[[_1 MI^`E1XB*EKW@&%"B9[W?^"AB5O[\#U4=WN<1C0/G6=Y#?P6J4,H-=&+5W$M_I?ROJ!_1P"D&UM`(9^;Y"?ML$89H/=**EW M13ZJDTX(\J?P:SF6Z6*_OSRVQ:*TSL=NX3C68#F6).T7UN'"S1":U@F/HP=5 M08WDU$'A3A+5WQB*+&=%>31CHJ+4[@V]]51E"8OB M5C9A!&7@./*,H78#HV.LKJ%%QI@C'%8ZH<<.70-^0S_#Y7N"8Z'+02,*4J=[ M4/DE!`R_J%-GBC*7,C_6CR1I&7X521\T??OL<=OCO`-3]X\M2'PZW78*G_&WR>+ MH.,-_"OP$V1,6GTP#+E?!D.(SI&WCIP^TAWL=ME>!:[5]A:*^?)KIGXI;%>O M^+\AFX$^EL_`OW1RZ0O^F3+^UY'S1PX$#T#&P>-Q6!QY]\B[J?LOQ$7IUBHM MK*#1_\@P$O7`!V%Z*>'!I[\*0`?_C+_#_F_"KT>P,!R2M<8UO&Z>CWQHH&^B MR"E:Y$BR%AOJ?J)X6?]Y:SJ]$*O.WU5? M*ZYHXN0%S71,L,G0N`;\:4K1Q*FOH+%\)BGF-K'@U7'!&=N8;)[,^I>F/Q]F MP'!O;"=F`K.(#%S,K?ZU!-ELS$EQG!C'6\V*3PM2WZE7!I^.SA&%]1BU'F/6 MQ2)"/54,E[JFHZ++7&&6OT_X3L'S\JM8[&:C_`P:2+BDB_:X(K7^/A&-7>5@ M6>1YN-Q63RM_+],JU0TURMJ]E%N=LFJO=DI`+P8=0L[UUK-DD*J:I1*>J5&^ MI*>ZE'TP,3BLK:>C`OQ'*'SZNT)>5;#C:I=@EWJ,\IDED.LI6OU*SOZH>\P@ M]ZP?-T&JZ5R52$_;='I:?0$]&>/I*9[<,IIU>C(DTM,VG9Y6)=+3/Z+TA`$4 MBO-#--N#VI$N_60V(ZKZE=`6&CVQJ`:;'[4)/Y>>ZKU-*=5LS3.!D$(\,G?. MJ[SUY,3TA+.G7*`E;`)]R;3F0B)JUHGH1J(.LB<_%VD.58D*1EO1QH332R7" MJ]YJ:ZI7ZA5E\_\,EU>5%4]K[5K^=#PUA/CM#,.;GXS1Y@OC:5.K\R(%I/G,]K;0+1'W4$GORLC(;KJ#B+EL@A>+89&:K9VY%`URJZG-+0>>6H\ MN9'^5%V]OPLM.H4J5?E5(0WWT-(6R1\M]@^+G^"V&9_]JKQ/(S1:#VZ>IJ\' MU^'$3E[0CIEK1`13%&,K5U%N-* MWFJJI5J-*XU;P:UI,B@]S*98HL(2'XX'5%.7"`8*(7VNDAJY[(KK')GP- M%>J`D23):8T:,O58D)I03D4=+LRKZDIX@:!0S:JEH6W[&"T5VX79\`WAXB6T M%PX=R=2%%R6/O,#XDT5?PJU37MI-.=8KAW;3K9:XS)RP4!R=3_.=/NR\7=1^ M5=`R4^0%/JW]HNT3QR"NQ2AQC9O1GL`<$EH-X>ST:;U_'MIC\1^%@I.J/O$! M+,8:?6S!'A1M12V90=SF'G0/H^YQP5E(6C2^`;W532GU,38@W%3;9%2FS8NV MES`/8V.?SX(6:C+41_L\ZC^XJI%^((050^ZO4WZAM55XHNHZW)D#DT%F?P^_ MPN2.BT+G:01'TZ;&'R,#[8`?1_2B]OLT2WQRF648S?*]2RUSJ68LSWQ656_6U'W02AZ$T]:L M;B#O77G9J=L"I![!UIMBIWNT\W'V^EJYQ2Z76Q^^R]9^.0!_V&/SS\"W09C9 M6\Y3WA!JM[7[Z-,22)(:K&/@YSXI'30&RJW2\0_A5XL[4F[%OBI>V3;6-:,$ M[8",'8!=N9DBJ*DR3>^7GQZV6LC/'VF'. M>L7*AOX@;KPMMW08(M-HCQ>7?VH@EU\?T'(I.":DLS4K:;DU2QMJ'&MI<91. M%H_#0:_/MA.5>&J@W>4UXH9?ZRU&S>$JH@+M9F!<_=+>>=J;C/*YAP."JY"F M0;8]84G)DD;MMKM%`[M7,Z^770$)+^DYX]`ZM(#Q')+`4`U*!,\9AI;2FQ\J MH;=E""?LOK-7BU>'VEVWX6"F_"*%F1AEVC0A)*N1?DB"UPP/64FSQS4?RHGK MDE751Z`D\X<^TS!$3(=PXQY!7A4%6<%`9FD@>^/*,[2;29"9"1`SA]!$)'A) M0XNET]?8[OXQ;#.,VWS3!?M$O,Q]CV'.K21[ZF MMQLT`AUY"N(6&RY;+J+OU;#+IZ&]D=E:"TU4& M\L*(#R4SA386KD4+.ML';?YWSA/'G\L4XY&\PM)S69&7I.?LD>"@O,]JHF]AJ;B8R!$+0UCYBHI.**9U/,7D1U22=;A5K M';/W#]KNQ:,.#7(9UX"2W"<0W\M6N[1[I021)`Y_RL.W-Z_[0@&O?0S]A!:,&!V_R:\/;0'=- MT\RCR*.()%,1"-VA#GT-]^&>\^Q-I070:*X=2;HY25XSE&1N"%@BQH`E6LM7 MF71S6'O)\$XA5!X>`9B/-6MA]%Z*.F):)#*O=$D/C.2YV,.-K!.4\M4=I:ZI MFAFM:Z((7))$5>T*K'+-Q=U75"9C2+Z$<-%<:.3W&FIN9N])3RM,4_K,6'XT MXN6"Q#_'*Y,CI>O.@&V\0-.&D0%VL`&:(#=BUX,Q!'U8<<54Z397C@H_ MN>R"\^VINHFKB$EZ;P3\../6@.Z-7D>#CJH&IM-((\D%H=2Z&41P,V^ARU6+8Z]D$ M/4%1@(O3MX7*'T&:MF.8[^PTQ:LM+8BU@D=E;KAR5O>^V1C&I"J4T MP&(5=?IJX$2A*M?JE5YY#&?DJ#J[W]'V;Z0O(8.J4$S'OHY[J13(8V938*:B M>]^F><-H-D],9VT$05^FZH0"Q6G.0?>(5)#6O7('T#J0Z1JFI+8:(T=R2(,) M>OXNO>>#6PXOQ2,-OIM!HJ@@A_@)UA/$K>1L_JXSJJJ1D)M9,1.2L4?,BV2. M])":&CFS(VG,#I>0ADZDOCP#ZR_SLWNSP372@X=OD#+%S#A.C>T(K+HI2ZD@ M=FY/#,O#6IR&:K>-+%BSF>4:Z4&A:$)0N^7N+N>_#B!-1C=[2N"Y?U\Q]S*\7P+_8OC.ZF;OI?#<"<\.>*K!;PC> MI^!YZ`#D:3?8C?;8GPE_>+M9=RPI^IDZRVNUI]G2[W:;)]ZM<%GD1 M7QE8Q&^;*AOQG'&'188Y9-!0'$B-I.-48F6U\KM/:0<7=]=+758QN9=#T@^K MW'CY/\X^12T.AWCN0>Y=`>T\N;:F3@FI[(`>S!)%92)[#!=/?XG<4UM>8]MC MJ58JXJ"\G0@%9RFR1>KF`Q:Y^%PXZK:@>U2N/B<-77!^6HO?@`G('6=/M6.\ M/54(=_?M[L)E(SS_EV\4+I/V68K;SJ`5QTVGI-&IFV9)HZZMSMAQP;#,/[L? M$Z!'N`A-Z&V:4O0,O+9.8K&P8X7CCE''UT<]W@B6`\#%18V-SNAY)]01^T[C M&O"0B_!`4HWZZDZ,!1REOK$*/L"C,0_>.W.98^=\>'?FLBB\>H0FGU.D(O1& M,ZEJ!G[)IV1FZ00/SMF]9*0,P3*M]`L;3"I"A1BNI@[M+[!9!5T$6]"S]@IZ!!LJ`4^!KRUOQJSE4!;C?2V[,?FVW:USUJED?EGI^[]V6CD1Q\78VFJ>TOOC/RHC]SEY#$ M<*^05-/VR2%^EY3'B5.D+AX]FC_6U-XG*F$-L^Y!DRJY]['9F"/+[Q0,F>Y] MJ`47EV>(_^>+[WAE2TVU\M!].>C.(,L+W MSP6^<@[/*;WXSC*QGTR*R,_1T=8>2_=Q8_9!8!CY0/^M2;(AD!1)ZDVBY8LA M7OJ`7W+'O_2CU(=U^]-.X!VI-77NP0:YO[Z678C1%E%OQB7B!FBK:F/;>RC$ MR<5)6!1$$34[#-W'[6UG#5W4"$XQWSW(]$Y>'=-ULB:Y<:5S_M`4)GE`V!\A M#+QP^DGK74,C;+IO#^$25;7R+19>B">B<<:SP@)2VN_/Z^9S#"7R=WGY0':% MI2#<,AW3N0>]2AW+D`'\/?P4'&M=GAW13KX#&U`<$`./Z@*4VFJ*'UH5S6"E M4G8^&BQ76-V#'DAR'2,WMBJW*G]VZ_6L!$,LK@,BME61%0(?3M2J%8XED-<[ M3+/98MVEIO4.>06:1+97M]WFLQE30:3V>)21@2F)&@OXCTW+C-2/,BLP\6.^%$X3MBX>?.CPLG>K"2#GJ#?$"C4F&= MX2],;\#TM_Z?IZ?\+[L@_6\O3"^=6%5#RTU8^/K:T$97H5MM@!G+%+1P@#,7 M>'+AR8%GOKL/N,+M\)4'3R8\KH``'3^I,$NP%J8(EL)4@2],P[,2D>"EY=+I M2;:[O3RN,85>?Z68\YV]KMGF.YO?FDH\;PB-CRVDXY=B*ED]';J"9\M*H]F" M31J=)\R41G.%+PTEX:0=D)S"<4]0%SIKTCU\S.-]\*"CH$/'V:R;RC,^P[`I M+D,<`TCY@Y9"LJ73"VUW_]K$ED)RY]`B^U#@6@&K?A%BQ6BZ<(L M-IC&EVF%22M3KI#.C'5!E0WE1^%=&X>P;C!G* M@X?BSA2#:`2--'WS9%\DMZP<3Q=TK%6#Z]3(/Z'VP9D9^4MB<';C0D4`]!OMPP$:W\?]C[UO`FKFO1&6ED#[:,9)`=80RH02100THJ M:""VP<;&.`2(;`/7%>/;_N_69]FJV9 MV:^U'[/WVFNOO591*HZ5I3>7=6Y8V4-58. MX-,OJ9CI__2I%5,>%7J0+QJJ/="E^V$FZ;!AV^SM:7*-4\L'?_RIB=5CU%>4 M%[S((."DA=$&FI6-BG1B14Y*E3E>3M45+\FJO7@>!5BCG"]PA)^X0&S.S<3T MBJ9[J[LSY&VQA82Q>F_+:OP.4+^..]EQV<&&U704P[$:^IP+@]#I MOG/(4,"Y#,;,*AQ#[REG"J^1U[[=DGC#"L,>8P$)MH7@=<"3G*C$:ANMKAV`=#5?HC[7<[^&ZZC]KN3O@>@RNN_X$ZVJX#AYDU^MP_=6X M-OP)U_H\KO(O!:MUG)<9(`B[>B%/O'YG7)3>)9K"D^E[=C)>!BS3N- MK$?$[%HCO5Y""K"9HQ;MA?A[]^8D4I#4SP#1;:=QCRR)24;,9S#F,Y\:,PYE MW+T'@CR'3O2&=#@^J-X"X6X6=C;G[6AB:+[(.*PU,'8XJ,:",4UT/'L@ MNF"+.H#B\PO\CFD65[`!&7G&XN%9 M-S'[1G";)1BY1OH*)`##1:-U.#S2<<5GMR&&5<9*VFTOH:Y'W]$711H4UGG+ M$(TR7&N-+4TND%XK)4;\:GDX?'1[6>(HK,8@=+N3^5YDOM?+P]'[A`;U6'BD M_4X83)%`G5NG6B*\NDQ0FY&FCC2)B'Z3%BDE`UTHH="DA=@#$JWTHEG[J(3> MX-*G2;L-O'="WP.A;P62,SBU\;X7)4]X(_>1T^R`,=R M`Z!^TR>.A+QY>`P!Z#U&LV/1U7,S5WGMB3_/'"X\%]!0O"X8(95)PA&T_SY` MZCZ)_L#HF]H_/XO'>J1RM4%(<"+'/V(MJ= MLI$%QF0\N)4*("1:,IF`0>`.@T",D0$G92),$:LA"`T%:)IL0N( MM<4N(G(6NQ-+8[%[$GV()MQ9DOE!;KR!)^;J@'_$PAXOZMPOQ,7._6+K==30Q8YH=[VR?OO(WK/BK9EN^8 M'K<.Y,UO:)3/#N1QX=[094#/+`P5K^E`#YX(R7&\CJOO5H6;]-K2:'Q MN)H)/D*U!+?1:=-Q^,=8V6J?ND_IM021R_1A15]LE&],VZ?<3PQ0N5"#Q1JG MV_`Q,XVN,S\S6&^^LYL.@*?VM\O8(=7#E<<2L:?2H2X&&`Y[I^BSCV=U8"J?@`?K#5^XB'NU#M5TOP=J=X M;8%<5C`D3=K9R%^[DIWV#S&T!T)O83I>LC[U.F.-E[=9=V-%M_BUGN\2VDQ0@>JPNM M:JU+&:US/(S-K#[D1)W0#Z,$OZ)/<#SR/;JQMD^$I^T34LQG93307@SO9;NZ MX,4:K+J!_'@^W-?#_1ZKS#=$_7JTO#?VD24J'(Z6=UK_^#RN.J+=7YWU(UU_ M/'&AXCVUMAQ3F%HY')HHYRD/B9;M!NL[E4WE<`?SXD.Y7N,P^%721^C7D$V7 MMA?JUP3C.:G_VJFN<-'P/[K<\?#78+"J5CD\S8?*2=5MSO!("+5=MU?]!GE: MZL#CB?,\S@QX$VEUA@]MGV`]B";.X`$-A4(BYWBBDT26SIO8\58XT4J`55T0 MQNJ!0HSR[7R#,<6(C>K!V"A\:$-1URM1^Z/66/3A^5^"BE%7V,/P3HS`*!5R MPMB#JF\>?I1'Y:?;'>'>[85DFM01[6`?LACNA?Y%GV5T`1E;D9R(*`12-#<) MIM6@#*V?4!+#(U%['BKX,=(>@O)CVB-9:<\TTF9#`25./M$%D8S4J]*I(\&J MKA#&2?TP=TGJJ.GU"Z6.\D)J?CIQ.R0NA(="'9`P6>&CZ-OOIP6IM%Q[^2-= MI^\%5:Y@RS5I?:ZDK,E*]09/>*A#W'Z5\J"':Y_=M=DKXFE)MGSX(0L7+V:/ ME9.3T2:KP\0$@#$#?)AZ<$/G4%JL425];^M\0RU!5<2]G\VM$51?E=>HC.9O MFX/LEK=KF5!)?%H/+3-+>XKQS]&#(WQ<',QCS(6P+GTSNA[%"^S^EE;M,4:P MPE1P*W2>S8C8J`9)X(L&M*V]J"7:(")%Z&]J138\4(6_I5F#/`1A0:?.S-F2!`6JD!A_<-TJA^BX=;U[_KS6[7<,;C>@BL.%SZ/PO4> M7%=!R8_!]WCD!)Y)6N?E`KZ1+I1KX(8[Y/L62UZW?#5;C[P#B;H_1YDI M'`9@>#$4)AKH$04K]M/3\%+CR/06$)\,J&E%N$K'#JA7U--J$SIF$`(1XK7IU%E"%9A M4B6[RV=@9/>,=&146P/W*(,D?E)"Z=)F%RR37V_85(6B_).7FFG/+MQ`3>I? M(;N;3=2?`2E8"HB(5XU4#7W1_GK1_;]VMT[RB#DM(?!C4:/7X2) M9.$NN'\.7^,ZT1Y4FYUJ]1Z8BF#E'?DF+!KM%;W!2).3Z*-<8V0O8A+C&3`+ ME7VB`;-QXI!N+8H8#5\)AY-K7D22A,]-_GO`(1F@-:C\JDA^EU*JR!Y)%QD/P=0_)WS,Y:]=-3 MF=)EW7/>P`ZX&KDI02;;1VB`<^M7G_L'W*#(+32B/V$[`RU.IQ&&H+ZV@,G),9I,V5TL=J>!>T ME6E[VME"]\DRU'2DEJ`7RJVLLEQ48AYEU!^*^T:>>P9'_RS5]IVD^D78AXIM MD%[+8W;^E#Y/0]='SJEUW);_DSO=[-?B0,]U5G,%.$793O_8D[-B9'.M@.>M M<`;$TV%DO42N0%:J7>>V,G.,J&V1Y,.^C&O.G3#3[N"-N5-`"ZJ<6H+;78:N M;11>:Z93B4UM/%"DGB;C)%[RZ!?2]\A02J>9S"6G`"W(UW$7]LI,)@SE1=!X M$\H;V>'_C_%:=1\9^[O1BX++]H.G#QX]^+>#APN'Y`\2[ZO#B8U`8:$HEBOQ M5^O!+1,K(=PV<4M^)83=RJ_Q'0+ZX]8^9TK""P\ZNHSL*$'*#H@2L[X#B-O.R0UT3(2]PJ5@#N4X%&AW\1_NV)UQ*'E=>XS,RQ M/Y.`$JG'C2XHJ'QOBU!Y[@&FK$)NTY)IP(E>R. M-@C^-EZ%Q=+_2KVTZK!4:!#4&P1_D^ILUM0L'W6-J`S`.F<%4E_WZRG5M>G^ ML4;B*HYV+OSNCZ*][&WIEA[8U8H@+J`>8*!S=$E@GJ,M': M6SBP/K(,J3P#WS6B"C@<5$=CIWGE)!\[.4,YQ<=.S8BL$6,:7]@7`=\\O(,D M\M9G\8OM)(+G:0WVK*E!^30O$XXR/N/!!E*>&CXKW0/M1!L`:IX:$`)`,<'7 MWH128-HUK*NMK@MH%6U;=9U$U2J/ M>QS?+J6[GJ7;G+=%VL5(NQ!9LH&9(<;]KBN#.L1/-(@H^B1/4=H%&,CQ0/7$ MX&!#05+Y:CF0S\'P(1@T,#2BF%AFQ%B\3)!=BRTRI-X@;H!VA?8T8M"1"3QL M$/)ZGL=FL^I[D6J$+\03HC38M=D[:6PIJBZ; MQ+7/Z\%^&X;JD\O829>RCW4]"%%+46D1!>HX;OPOQ_>3'KH:MW[(^D$P<33( MPSWQ%(/AS5Z7Q*]@R4QF6MF"U\NGX@*9R],E6R=T'7XO2N(%%T.HK4L@W5)= M]OF&<%M+P;TK&15#E>'@.UW793LVWW2JU7@Q_DV/%X!;%A?`+<50D_2.+5\V M.C^BZ>2G]MZ&IQT[-Y!%=_9U0-T;;0IU5(H+Q6`$Q<_*\1GZJ"58"%E$`GG! M2$-!LDT_?ZJ7?I_EK3V]L*X,CTBW;\]/_*7'XZGCZ!P*"E7+MB"J[@7/>F7P M1G4@-F95CN=#"UZ-FHM=WPYV7*VT1?[\X\OW9#*"F!<<@X<59*O:E).8[4@K4A M_GO?T9W3&]0+RH5YDDVY4"';Z(7O;-I4E]"BY8?&-=6%3"5GM/[G7$-T<]T! M5)FHQP?5EQ5]GIR?.$QRXI>(G-.I5JTA-?>1T.T\U+0,H\I,I7H8%4=)I=K3 M4SB:-Y/G](T@4C,4UP45N3*+>D7=KT`>2PO4[9DDX'65O]OJ5I=SG57N:MG1 M`B1PT12#"R4YE9<%4AF[/YG%.*">B!V4K0>B+H>K3@0+6^.NGX0.YD'MT*X`=HC=C(_\9KUE:[SG;X3?&AN M3==IO#$>IZ4>N?!)/C0!'O$FSM;@SW'6 MJ-`9.PY5;-T7UGM$9,W:>I!#^QP=1=T@[,;0BZW;BY1^89GQ$'I_9:1D$=S2 M@,VAJGL+%C^VT5M).`S!7&R?RF849VV%`>Y^AN MYO%H^_E3!A?"T8W25%WUF=S0JF0D=6##8`-)K5&.`>WRI`]ICE/S6':/8WZ) M\Y%2QB*/E"J;O6(5"P(^CR?.JVN$'GS$TB,O]_&$#A,=!"^PO@HWXX07>]RY MX<5D>!'#NW_C3H>/$$>\?;;:X"8A)ZN1S$`D@`9=13Y`U-(&/E#.;%02YW@E M!$>F?`_M4-2+^92-6VVP8_Q(`W3YCAE*[PP\5:2$Y5A(``E69J:@>+2MM+A3R^QJXC]RNA)QE5T4@:>5>RSSB$)T#R'!W!1Q4`GF8Z591^Q`/[V@3* M;"YI6[@DLQ#+#%E?E)_*1*I=RIF;J-]M]`,=DV]+\J+G1ID(UF:8L3;YH]U> M&.LY-*SD;%4V>E>-!8`L9.>9W#2K;0IH/V0'79,5%82BAOQ-4$:T:HE\ M63N6R2O="?E;IJJ%TB]6'O6@(0/TN80Q(A+",(2QC*)!^##1!23?G996T MB)5T1U9)#\/+8]V49G9A]R?U%0N^H98`VIK"/>Y(HXB+E$@C2E&5XWZYHP=M M#9`6BT:!)]3MN&]>U/-8^KT%]]R+>KZ3?B/@WGM1S_],OZ%=^**>7>DWN`9R MX4D%I5=4)R<.J2*1ZX+OH'+2Z3L8<:I6DL5E1W#P]*GQ&@``-8?#&(!)2KA;S[1!5H`*=:D+2STHO^%O(WZ540*=!U=N<>(74O[A%3]\(>9^K>LL)K(2THTLNVA;HW_#"WC.N:J;^O MZ_$KH&[TA*X78 MQQC6=`KT;#%2H)RP7!O4VGI<5#;51$H-[2NZ`+C8X2J':RY74 M#./0Z9016(_PTJ0V7CF5T+XA,"W;*(G'CG^R``($$)13%[0&(T`=!:!S[R3K M@(%$1S=:+6P3-8]`I<-SZQE=<*)T)Q3S"N74V&D!][$Y.KJ/9D:H,SJZ?X7C M!/C^E<=]'CPE_?I48YN+=G3`+U(G&/LZA:>1?$KN^X#7L:FG?SY.1/N,=$1Q M!D7\UB41I<^7XVJ*B*DD(U9^OAQ=ET1$#F)@*1=+\GB.Q2$*;#4`6NX4F?7>2NL/[;[ M]N)?18Q.*H1AEI3R@&RWJ*=CFV')!"]<6CG'I7.TG3L'`;6LCH MW9`XS!9![+R+!TC[0ZP\=K;9?0]][O5T$FD!GJZ.2+11AURL*CRPAWI0:#Z" MJ=&-9X$@$-I36`6>'C]J-M#P\`"NR4C24/E#GZ1?C]G(NQ;7T]3[' M34]9O''`O%'3]='AZ7CTU=?;KPHO"].S!*HP?1CM\XBQT`_S@:$Y"&:)/-H$ M[(>Y(X]95X+YQIJK4"@IO^CHJ?=:+F5/IN47/R$`QC\2\I((.=&*075?,'$P M./-`<.8J>%WX"LJ]6HYL9EEPN2D8Y[EP[BX\.@\+>A3HPR=PGBY^XHWC[!5N MYSX!3T@+0"@M^0KG]PE'WCFB_>7-X,'9"^`14"%!BAS;C MBYCE=J.YC==Z^C6UO8'=:$>P>K1#-KH!Z0^^+`&(Z'H^D],6..@C.,Y?HG&* M?6\B#3N!0B3/9`?I`!+ALI]&77AX,J&,+&TZPF@'*H':*70'2]G%23*--:Z7 M<"A)FQV$`:<7OO!Z!]S@J"+D1LD. M[T1[9IV9X=1,^V\PBL^=D&WQ#;Z-`(TTFY9.YC@MRKA"ZC"V;%E2&S1B(F]5 MF:3X:Q\GCQ.$@-BTM,^#04=:>D1[G1F?<>-I8C=3L@O+JUDP3^\CJ[[E=.R` M\@IHLR"?8^S@\GICV&41,8KV*BFU=Y(/FY`@;?G+R.0CAH"+OVO0N$CSV)S_Y/J)][+HQ7/])D?+P\ M^>@(J]1MB0]Y`CZ.KO/P112S?@M?Q)7L?)O'B#3*-&XO!W]/ZHLIYZ0%6$%& MK7H"27V$R3+#R]FP5KX"ZGHQV.[BN(*8UWN)M+"4&/9,(;EQEM ML/NC2]L@7=M7)B/A<7;COG16AZ;.@BU M6P"U++%QR9$:E^Z,YGPA;>S<%_84&Y(X?E;CVJ2/Z+-V)G4K,,K3'L#%JA?7 MKJ3#QMM$C3))>VPXW2BI0=7(LS@UG+:QX?02)-[^*(7$O$PDHN>_`!+%VL0, M)(Q6_]^CV3T]U;G\R!O!;N7!R-I39+7'S/(A7C2#,IJ>#; M0K9BZ-["9A9&'D#^72>Q&\]"1GLA5*ALIV4OKH![/;0K,RVW%R1#W*_THGU[ MN)\UBC19;XYYY/UM!=J<>]D.?JEVWW]/[N5_[^L&`QK7/LA41VV,O8RJ6]\? MT!9R2:G)?*8JHW^DH:A&FJ(V./V:FVG]0D,H'/$3#^BH2(-R3O.+&^SJOLX3 MUL[S%KGJIZ2?<*&AGS!\M/W++7Y*ZAZ9"('*?MF!"A([HFY#7O=:WUE%%R2/HU4D#(`TJ^\.8:;``%MUYBA MM_84TP6FKK%WG7B_3]<3@UA7D35VZ(=#*`+QO(4]Q[&[NH&&G]VB';HSJ4ER M$I73$*Q@9>M:8Q+ZJN^7F5( M1PF3A+K=WJJN=K[WKS)?6[':F3BBCJU__^E_4?O6;QC*I:>96*]N]N;F1 M:[_Y>139?A%UJK'F$P!AZ9KP)KOD\&M5-J/OZ1+?H%SPAZ8;;>QNTH8W,HYV M$;X9%*8@EDJ_L((EW/%OZL"E&H"0I0L?&'[A9&J)F7=LWHUFF'"00F:(7_LU M<07+408#VZ&C7]$LJ?ZF+L1-F[6HA3J@5G^=]$FK>>R@8QO*R[7Q^JN&+E9M MW1UIDVN+6;BU+:E04-"KVCCH<2W:G07477#K]1ECAR;=!<:[2\__K1D$P.;W M,PB`Z1D$4KDC_`C')4G%__@@FTBZ%H>NU40DD2(W''%Q*F>"OR+0(0N`C)G2 MAD].K?5O-&QOR!RWWW^/QFV/P>&T]Q^M)PG15%*,$IJB_4VC@7M#%O7DEMW) M\3\WG2ACQ)K.:C.]C5(70:8 M/*E:@IR,YMU(HOFUA1]2(B+IHP-JYBA;$,_%.B%4FYJAM,7:/:1DK``=W4GQ%';T__9(])^5+<"[YSAW)`:Z,XKM%A@+=]309 MLY'.4+(KL<#1JO#Q+]5QRE(.>AX)EOUR/1,LRT\EJ.:32$/>7O2/-,!X*%!Z M,%A:BE&B;!SY7YJN:8Z0YL(4ZI06!K3#0-)T!>TZ4"PHJ\:FKZ14"]&L--TZ MI0D![6>CA$4J69JO<:I4I(H]HG0E*O?5$AN8P!8E`2DG+F#*(DLP4]H-Y7'8 MI$J59M]3(]D'&W"\Y=1!P!U271;0%HT:VKF3^M,$JM]SFXWZW9Y/:<0O4QO* M<2?9KVW=@!F6)XN2D2+M@="AM M44K=-OLCO?L_2FE%QW#96M%A[4@I(^,K/-*.I*8WX->>YPW5US#/S@?*@TC0 M%K_VE/'^<'C$T=W&DS;4[COH=!OA0,KEY[;`ES`;**`U.S#4[Q+,$L=)%VIB MG^U/%IWJ'VJ2CBG_C]L,C>H/L1LVNR:%]OW:'4G_FV_+4/:/_I5_D8N(!DZ^ MJ'B?.#$/V5)6W5(L`_6_:.]!.>-1JL^D^M\5G]*K8,0Y8_0J:,N:\-GV>M0Q ML3:@_<3"^HH6_UI*SWNZYY8\F>J59Y*]]Z5D:3W]I*=BG;<1^A[*$-6WM&JM M1GJ':>NNGB%HD&7;V(ZT7(^ M/A;`6+Q"G:S-LBO4-]S$MG]?Y^]"ES>X!M93`+\M7HN:!.TTE9V3)B$HGJAFV?&)!Q0ISF.Y<.I."<#+,[PN'&&4W'4A1B_ M8C-QX]QKF[4Y?$J7=V@ECCW+&6X+H^4OJ5:_]M!-;,58R4D.M4[`%4>D[B(\ MRN=BIRRP--R[*:EDK26^"A.-N%Z*-QJ'N?X=-X!TU*43%4C/A#^@?3L9(0?+ MJ'TO12\VCHRQ^J4J#>;H!ZYMTLZM32\U5N1XIX]17\`CU'2`P!#[BZZ:AH>^ MH]?Q,V/^%KWD:53VJ7VW-6L0S[2SG(4BKH>HH8"2DJXB26W)ZVQ1\Z%8N]XS M)#?E(C5_I^"NJI:F=?=*4Y1!`>FNUX!@J+!AW/6Q4T3="F MWL!:"V),52>J`[#8:H(FTW[%:!=L.9A.WE8'46+Q4GY#2O]HJUR*JW"<"P-- MVMM$&XDD1X>;:^`3=/R:1[4M*Y]'5'R'=A[H_B$I))VQLXFOA=&LPO'L:.P4 MBBKV%8Y6CLD3H[4Z)N!X]D#EGZ7)$+^6KX44Y/ZX45+'L[T5*)R$_)Y;9\80 M,5Q_P_*[59L)F=Q2X]7\*U#,G3?XI M4M&21?X]H(PI5L3ZH[5CJ;N/4W<7C;M4_LCI$.-W[,+WK08B#H9(91*13\=C M)N!1QO"8:.`1_SVJPRZ*/C06%Z,/?1RW1A_"C.U&^E-V%F-];]QQV0HCBW?B MMLAET.TH'Y4WD*U&=!>0T"?\IJ\$(&IL1-_0'VMC0O\/XUV<]_2NXG3>3ZY$[H/DALCM)+>;W!WD/DSN+G*_ M2^X/R/T1N4^2^W2&1MZVXK8'M/QM8Z3IDY:`T:?I"(KQ1_ZGMGZZ_^!G^/_D MD_W[HQN]'%T9X;>Q\+[>_EWT_(VDGW/3'S>__)SX"3G[^93\ MB>FQ\N>$?S;G^2LZZ M1ZJK"UJ7-/SZ@:7!X+>67H(DSP-F%HN%LPH"9[-QO`70)4<0X6?)"%J(P<=)4N2:'#<<5U_=]#X7S'_ZJ_Z%BS\VC6+%MAKON6'W[EMK[MZR^_:&5\KTKYK%5I9VI57*XRI MFC#:'4D3[=]]]]]U[WWUO9D?3 M_'GD7/_.R#<=GRVS9;;,EMDR6_[ORYUI/SDPY"=[COO/S_Q[4DX^M.:S5F&V MS);/14F?F,T+LV6VS)9":5[5TY%):$,]G9;Y)2UN9WH"S9F,;?5$M:2F9C07 M]?69%NE5,X%F7\)6H5^DO9EDM#@V,0+B:AK9>-V%MKR_0NZ M5SG]52-!1\RL51@]FZ*VB4/C/$:V%`V>GR@=UNT!JE);MX&K94EOCVTS!YRG5]F'W%4Q$;"3-FG%61C;5JUGH MMB)WN6UYK[JVK0@S=U463P$8@0?^ZE8"4V5%J+:F$N*FPAMK(_JB*"+.M7TA M-F:VK,\9/&07.,'2:#7'GLP@4PV(5M5K,VTS<%2\_AQ_D/0'@ZT]!LT,R9IFIDA@$>UD%ZKW;> MF"F$>`:B`[%*9"I:U3.%2F.];\98F7F,&=()8(7XJ0@#7%E56U-#4^IF/95- MH7"4.UU^Q-(AF$"M@YCN4F-!6M"PYQ:86![ M9947IEDU"8$"=JEB$8#!`A2HZ0'5LVJF"A@UV@!,A?SKFI'U&![0(=4@U0M% M<&!"3VDPK&EHB7RP3G69EM"9)8I2MNJ8*E&TX#%30DC#`JGQ.4X[QV<=)C3/ M$`*]&DNU7DIG5K986F16N!G#`08GPP.5*T%/0^Z$>US7$MC9:$>/#D MV^H@*(H6JX'NMJ7#:JVBNAL+V$K57G`9K"Z:<@2RS-L)N4('@\&BZVC=@FZ" M`-*L*FJF8#$<6U6SY-M04M@$O\;,I)K)Q M9]G:X`3D<32JO9ZFJI@,W8ACGO"2E)=VD+7AMQ2VDJ9\-(JMGA0GRY@X#-MQ M,NB[@KA"ZH5D,JQ!"L()H#9N$DR88%C#M&E\0#7ZG3&9\]@.H_<;>I\>5PT[ M.>*:)YIU-M/BR#.=I=$!HA3FQ M>/?$?:&\RAUO>CI1X[A48=N#\YZ9S#J>@;Y)2(O@!!5SZA!L5CAGUA=\`\W, M]-`)8MEO.7N^LW?/<,A87<[&C8*>H&\&-K4X#D/[5,C6"71H/PQ!^TTS00=P M8E7H:ZKVJQ!-;$I)U>H'=9E'R@LV09=W>NEP%:6T%=S3TN"K`SJEMQ8CP6(D M5HQT%B.18B1LHDDP4(?Z$RP09N?Q.9P'C44CW6O;@U64AH+1*#8T5%:4QRPS M"P&ZF/HI!F86=*:01;,:U39E,9O6^&#SAHTBOT.Q"9;_SF3"TR-+)N4@E'9- M/7B@?*6EI!LJ/YM'X=DR6S[S$HX0LC'8Q>Y8N^!X M0*MQ?;'3`IR64GC&@/-S62GRKPL&V6<2S<'V8"Q8Z%\L`]_%X#N7KD#4'PNT MDFBPL]T?")+N\+IP9$.8='<%HRC#WQ7JPGLTN"$4;@:\LS.(]Z[@^NY@.!;R MM\,XH6@P$"NTM42B'?Y8+`@@R"M@:T-A?W0CC-_=WHXR[PA&(XYL?_.&:`A5 M93#2/#P<"0>9'IV1+LA1G:V`K>^.L#9O/C!"+.H/D_905XP4R2B6Z]V;@^&- MGLQ`I*/3'W-HT6;GOB'JXAL(*5V\EI25=NAQR\R8?39UQZ$5@4I:H`9,*^V[ M,A:.`90>@:?"`9MQ=`Y`LFQ7T[0+N(952ZNB(2,.+J+G*:1+ZQK)V%H*#Y^= MECX$NU2_!OI^$AW+J._OUDR-&N][E/SW)F[[DCR?SRO+?3.6Y;YJWQ4^7\4% M5_JN6W(M75"9+Q<[#/+EOCFE<^?Q)3Z?XELH"E+5)8N`S/G*H-^*3VW'XNEQ MR9&UY'*H2Z#60+T):BO4&-0>J`FH::BC4'=`W0WUNU!_`/4-J.]`_254+/B] MUTS?2:VB%5`#[9&N8(6#LXAP80C;EE`[8JMH*+R^&P*:P>V1P+I0^%8&1R"X M409&E7/'%5'!^J_U!]9U=<+Z\>1%6EB?))_EC0H:RB MS<&I%"8K>&LH'&O%85SB*@H+J-5!"GSK87@/0SHAE2X*=X:C,I74X?#VS];Z MUAFL,UMFRVR9+9_O4MASVU5X&,%7I4'+BF1MM[VL=%X9+<.[71O(Q^V=L5IVK6/7>G8%.IR`"/G( MWWT[(6?@<8L0OCT$9Y(SKM)KUM3,9SKS;"L3>4[D1?PLN.A[7O%W9^?_3V4F M,TS[?)F4P@-J-7N3IUD6N#RZLH9]!\U>-!IJ$F'T::MJ))):+-C1&8GB0?5\ M./:9+@-K)*T9JV@7>\]`6=#AR^]N0[>I$X/(@*%K6L3O,'3@[T>]FMM)2Y25 MQ;Q3O7?.7YT_DSOC0,2YL$=W1B"DY-A:N$.AJ!M^7IB#JW15S\K_6L#6#A1/Q28*7G><(C@BEA5,_4-FIGY.= M4S_&I2CBR9X3\5R/WZ-S`CQE\`(\9G"*^YPA*.X#AJBX3QP2(=*<_#,"/[?H M@4&0G2<&[SPGR\Z)'37"$[HH.R=VR<&;A1+O=.]\#<^+>(CB)';2$^;D'P>* MOY6_'>RT&>I34$O>=^;]3!Z.FP48\ET>UC:G\W#2 M["_P;+)L%P:19/GR@DY]*3.!=[CE:8%(S!]>Q4""-X@Q]AM$M?,[,EML2&^. M=/A#D":[X"B-O)';@M&6]L@&A+O#S7DD!J=S?-CL=.^Z,:0F]01):`;^ZIQT MYHT_=.(K^2V:91+BQ3:V98U$'M$-;;,:MTEF4Q8>O:AEF@!/60W$Q0N]'(W9 M_R/S;MV_YDM#X$L"ON>KE35>]^NJK\^S#P87`'Q) M:,%%4*#]0BQ?_47C!5\(C)0AW[R#-?.>^[>_F%N56#P7Y)3N3=]<^F>I=]XJV;%C1\F7YZ\M@?[*UI,O*-NW;U>4;*<"0RG5=;4--S0T MUJ]L:(1]+;A9B[-7UM2VU+C6"_JODB/F_9S@T0C^6(&\ ME87MD95IZ1&>&5RGPF-E$=LL/`O_/L/D6JCEQ'G6QH+_MX1GM),E?G*$\Q-_ M)J-9=H5N)K1X7>4J.JRI@U3;C`<$FK&SO32N)I-:@G3.]9,TU)-0[YSG)P>@ MTC(_&85Z!&K-!5`O!/AB:#NZAN0$/WGC4N#'<:YQQLI1/]NKR1\`[V*`H3YU M'?`O`5G+@%;AAX4.=*BY:C^97P=P@W_:NQ&)*&0^N8)<1Y;AVX+1:L#%W$K2 M1&XA`1(D'60]4+M)#^EC]SYBD#1`6=(-UZU@GGO(5T#*;K*'?)O1MS+Z(^2R MW#[R.'D&Y.PG?PMW[/T"4%\A/P'I/R.3Y#UR#*@G25/N(Z@2UY2;"_4R;B&W MB%O*[2?5J`_GXU9`K>$D4IMO69ZKR\-7Y^KS<`-'1INXU5P+U\:MXV*`]8#$ M!#?(31*+VPHXPJ/<=H!VXI[G]0!F$ M^XOL_@IWF-U_RCV8&^3^B5V/L.M[['J,78^SZVGN#/#N(UOASO.39!Z//HQK(K_B'0N>YL_RG,`+P[FY M0A.Y2'"HE[,[Q@89O5I8++1P2P4'6BZ<9G-<(>PG<\%^C<)S,,(`R'^;7RVT M"&B-#N%IWB!OYY`_*F"L;(1K@,U$%0:%Q6,HNP6PK""1)M".C.*LFKBMP+== MV"DLY0+D`>$;@#W&W3&6)6<`7Y3+DF\*ZMAN_CM"@#PI+,K]-?1>P2%O`_>L MJ]]SPK/"\\)<\`P9/0CM+PD8,X/"+0]#O9]#O7>%]81%(/2ZDR6GH=T8X MPRTC>`I&;\P'OUS.SQ51[PO%`'`MRBFP9A:*!J%B-=!KQ2;N,HCCTW"]4?R& ML$9L$4]SBV$6;6*'$!:[@`?C['WAV;$_A/8;^1ZX!L@?B:@+&?WAV!?%9:1? M1'L'R'UC.-_7Q@;$IWE3?&-LN_#ZV`/"%ACM+O%'K.U>\:#@X^X7?;`V'A!? M&GM0A'4H+N6>Y+\FOC9V6OBZ^.S8-Z'GMT2TXGUP/R2\-F7D.NXED.2L?>S1 M1)X4OR<^#7I^'_J1-R3RHMC&'63ZO3:V6UPP?D@\#/K]H_BN^*_B<>`[+.[! M-2QNYTZ)@V#Q#\6/18R#.=*#N0721N$L?ZGDR+^'P/HY4)Z[0EHF54NUK*U> MNEDBHT'I+'^%%':AL-0MG8(QZHM;]GAM9,^Z<4=>&Z>0.Z1>B1PX)7Y):A$- MX"^TF&Y+%EJV`D1&YQ-R`+RYQ]'CV^24Z.E%#K1QC>.?UGXWR/Y3IO%7I)W2 MN'1(V%I$.25>+3P,^%[I4>EQZ2]!S_W2\_#$<$@X"-1_D%#N8<:['WA?SNV5 MD'\_1,YA*4#V2S[N40ERI:O_3^%^&"2]4R1I4D(M'I4:QQUI[^2E>3HVCJ/6 M1Z4/0*+72D9_+?V/U`=Y_/AXELUJ/ZRX!3`R+R\C)3)L.S(972`OY:^0S_+7 MP+V`50*._?>0A\8TB\0\ZV!(+VAA2%\>7R['N'O("AE;&^75\J-2 MLQP@2V1<'WM(2&Z3<5X=T_#;`+]3QG$2,MIS$XPV)(_(C>-;Y-:)/X%Z=U'K MP\P>.^3RG.=Q1\> MP!6V;`PSYU;)T_.HC+FMF/+O0(%,P^;*"643.X6')BXMFMFOY0]E*=N4L_QRI4%9 M1CBA4;E%(:/+(-:7*Z?$>FF2-"LM"I[6'*YF:.^6UBNOY^8I,:5'"4NQ7?H MO`UT?D!$Z%[0:Z=ROZ(4XT(QME?VL(>5'^YRH&\!79G8*.R#63RF_'A7F_A7 MRO=!WQ<5;/V1LG?\#>7M76\I[RA!6-U(.RQ]**,O_T4I9#]'EZ.?X(.CRHUY M;QT%:WX`.#G%B"YYIY<%U0 M,B*_R.'^M1\\LK!D&]`7`/UQJ?+^0>YQ"?FN!?Q2Z46NMN0B89)<#SUN*L$= M`W?A6TH6N?MQ,T"X:YWF8F.#7*@D0'JX-!D9A' M(&[I:?N]S6E+R^"WI">R]HF^_\"O`P^V^J/^0"P8_4#MU9+'3?LH?CM[S)AD M;[ZTQ,N16.0#/6/_.!P+WAJ,3EJZ/9#2;#U^PGU/<,(XAE_X'G->1KP9]+=6C9HB5.6MJ0;F8S[^%C]*._4NV!XR99H8`'M]]Y[[S MSGFIX<=7W55=75U=55W+5Q7$<1MG-AP5I1)#HD%O*?>/NAV5U>F]@JV@M['2 MKRI^"7'8G6)(/B/KE'HH>CUM#DD>&3ROC`LZJ^3C"ZYT+82MU3:'MTI04D*4 MD!:R_^VK=N1_5U!8:!R6H.<2CSJ<0KE3$GA;]AFWX-IPEI=X/*T@G79X,BFJ MM3AT4G(8XXSZ5',-.BP9/)+-U7.2K'&*!Y:C)_J\OY(R+,[N3;`D&GXP&%+J MK!(%4:(,]5%(MM,^I]?A=@KG>)LCJPXQ@]YH MBC5#))8[G:*LN%Z'MW%5D,1:Q-WKF"A0].V^#*$ZRRH(-L_Z)\;G:1.V57AE M5F&[,6Z[,@6\1Y[5S9='/,\AF7J*+F=V=98RR%LA9(LN6[7+=E[5MQ5=E4[1 M(]@J?+1:HE+,S.2KD'R9R!I2E<-#6H:V\G0<$M^AQT$7(#X7*S'*= M,,%'^KZ\\Y1H'2_8+KB(Y57:ZHQR6:NJ7%$L MK<["B_.<%Y'I7-GTICWTMCQUFMKT!==XESC)54XJ6A[O)>1T*CQNWBJH)&;N+$=:>"71;1"[IN)#% MH^?LR.2=%WG)08E'>:B(2S*09H=25"Y)HBNC2E,91XP%'L5?HI*N92H;O6ZK M%FJ-5\BL40?ID7D$R6&M<&0@ON?MO.NXP+M/T>M2K>"A-%W1Z^$++D$M@'6" MMR)[J]F<,"RY3G`C5BB198+E(PU'JH?1!1?6@"A9+X5O&TB[[(*#^W-^H3^`LAMBCR+ET[3E!SD%6H=B8@*K/=(ET\^N\O$0/<%;-J*>0N=95 MRTNGCB&EY8Q,"S0V//K(?M1C1E,QRM%QWE-#FI%NQ`DI4H?WYRPQIIKTAG*7 MK9B+U7*59X_!',^E&([S$P4E&$^U4Y#S&YT^+62*4O9N4ZS!1.77<\9J]4F> M\Y-0/&LRD5L\%'@M#:B3K`)*'BJ9K'.\\N"3!&F;.3XA MSE)GY]V"/[=4*.KD6TTF;E0).7]:P=LJ/79'NC?-ROLM?#[2B4CCDF/3+`E) MACH[WDJA(?G;O3@H,R8;]G.)J0:S&GO/-F-JLF479WZVV&2,3=5;2E*3D-F= M5`-Y[=N-6,XVBXHR"L&-@G[34Y(21O889+)QIV`_^X[C$5'-\(4TZ M%NA1^Q5P\O_F^#B+'KD8QK6:[[R`E))X*;L< M7X1,MS??KU^"3.P])6NQGAE':_K*75L5%VYHHN$2[U&/#'56WLE+_IJT-^^O M:-E4F?06BW$%:I]]\E.B MID?FL?7T($M\.X0J8B0X2GVQT9Q@23`F;]73_ZBO$Y+V!6:.MG$F4P(W#)^& M9(O)F'@&]=?6V.%!#M!`?@>_`!H/[%=H`CL!L7@1[`'E("]8!_8#WJ$,-83]`*] M01_0%_0#CX,G0'_P)!@`G@(#P=-@$!@,AH"_A-`8$F.SP&PP!\P%\\!\\"Y8 M`!:"]\#[X._@`_`A6`0^`HO!$K`4?`R6@>4@%ZP`*\%_@//@`K@(+H'+X`JX M"JZ!Z^`&^`W4TT!C*.UF13M<,1862O/8C(T$H\!HL!%\"[X/0QJ"0K`7[`/[ M02DX`'X"9>!G`,.`M^!>=`'3@/+H"+X!*X#*Z` MJ^`:N`YN@-]`/4U.AM%\+-X%"`/AH`EH"NX"$>!/(!+<#9J!YJ`%:`E:@=:@ M#;@'M`7W@G;@/M`>=``=02=P/X@"#X`'@0YT!G\&74!70./9P?/GD2K!YVBL M7='J0!A#='(YO45A4C74!=1V&VMH0M3-OUQB(+R`HZQ'<)=\=]G%'Q0\`XS``5S@;;`4;`!%H!;4@>96CK4!_4`<>`%(8`Y8`-:! M]6`_.`%";;2[A&\A8YZ%@>0^.YYCK9P*FNGCXK17\2\WX=ID-IG0=FS9!*3$ M%QQ;\[DBO9_??/SIYPJEJJ1SP>Z3(_4RM*]>PU]W_^]6MUM_\;<9O? MS3ZF!OU"_N`O^/II0;_0/_C3KM7]+[R[_^N&\F\O5:*3&#RM+M=ELHZ# M1B2=B*!#55:C+)NL4H=OG$'7^(0BY4Z"$ M0]<]>R=\3=PP_#1VH+(>W M-]J-$#JYI^0/O^]`NL[GDM?@>45:U^J2EQZC1`M491UJ?IRB>>)?F:FMM0A.KSX# M[QB>X$(*BO)(#[R3WZ?NZ)?7NDE:^O;I1WXUI1IU/4^B3KK%OD]TGFSH!YPZ?*07782[QF/\P&_N"N-H2CGU(.;/3]K,"4; M$A_OI]TKYC!W6X*-\%@?6X.X4[]39$QJOSR#_KG5+D> M_G*"7F`=5S%,2=:1]-`>[20 MPJRB)^#>AK6"^\O![EX^Z'H=Z]K@^IM-..DI^GTW8;-6<^R#U8KO!9#A?%!T M0EJPM:MO#BV<#XI.2'/V#=SO7Q/L'A2=D)8L+^CZ>/AK0NY:LH6V8H5P'[I& M:0]V6Z,P*.BX8?N1_&K^VP6>+J?^%;^M_N"*TF]>39^PKGF,!IDPMZ(#J<0IBHU%^-W7*O?HOXYC/6$O6A,X;A@G.D=H[DV< M8D;?/EH:=&(=<'WX6B4-VD*&P3WPQCJRJ(;N^!H'W-NR"6L";WS=V@9O=);C MW?>:35D8%A..%V?W7_4@UC>ND"HOY([7DS`O3-[/>CZ MUI\UN.N6^GHM)]?[U\J%1(1'1!`LO)G"/V]WT;#&@MF,[IGS7U:Z[+.G;0-]J%%^Y*TKZP_2M MISJ]&5/VMVZFGB,9J;K='>363KV69$LUW%;J.6H?M%&A\YW5\_W58TX]UJO' M*>HU)O6\694CU/!'J?=VJNK[C/4 M<&@:D%)ND7J\1(W/,O5^*]3S7ZGQ*U+=2U7W]GI]8D!]F/)< M4U&'ME??`Z4!%?6^79Y+YI)))B3',47&RM(LG]>,9;0B<]Q*OR)%6>;J-RFQ M-Q\?::]G9P'5V[2]/0U.4!#4CEL`OF3*>&0=I8\Z_I@,,M7.MW;=T^H[I(H% M;1/2XI/',L\Q94]]&KM,`LX0Y7TI^H^!G16>UG7S]%#6TI!%WDBLFRV2Y;?4 M,V\'/5L&V3V%9FQU)H%V7$!GP":,\RD;M?"!>0Y=3]TS"19EDZUQM$9'GEB3 M"T\<6LX.=1*4?.*?79RD[#^E-1^M/'5<:&LB6'@MDI'IRCAV#YU'4+9?"6JQ MVD2KW!CW!ZI-)I&\T=,6K8+]`5]6+JD?-2UX;,T>[9;1$,LC1:=X-AI M4]SA3%,F+%TY3>M":%D%LPH.N::DUA6UP*B5IC7EM":5UO32FFA:4T[[L&L- M`*VAH#53J#E"32"*05L<7X_24]^*78Y2^K/GHY3^["G(!R&KHI3^[T%(*I=[ M(5M`%D+2MR,?DKZ/&Z.4_O,7D/3=705)=>/***4?O0Q2![D8DKXI"R&I[I\% M>2_D3$CZUN5$*?WKK"BE'^Z.4OK==DCZMHV%O`]R)"3IF5L@NT"F0':%3(S2 M:Z\DIU6L8E'KA1SMKWHH1ON[&I?K;_]W.()TVA>'QOCM.YL$[%PY[RYLI]EU&S=U4.SAFPLZO?T$V9><+BSJE%>2'*,[N^A+ M]V,K/]W^H2.F>,R-;M4=WS9V.#D]9L*[I?/U+9J\]G/CSPK4ON(R\-W7CH M[<-7/KQV MWKQTYYA#.:[$@K\OT/TMU#0VOYN/'GU7X2[UCPQ=BYXP)+*4UOR4?GPY>K1M MT"_&MQ:XVDR_$+VMI(?0H6+D?5_]^&MT<B\V[<*.)GM)Y4^(^JZ-Z)?RU/RM\T;_[1@N@Y M^>9!OMA=;3>]OR;Z<,:&>0,-GSZP;O>\Z*Y==E1LW#"H+__&Y&@^==36*>O, M+[7YS[3HTMK>;S7=-.?5>Z_%1G>-7EXSOWLJ4-F7WVZPV1K-WW?+:L&=W[]QZ>F#5OP-;M1.NC@S)$1 MG=8=KWPM-VS0CAF&H7>M?\\WX.=>3S\^X?X]77[N5YLP:_3`W'_?M&5$V?)I MN4N_[%=A_ZSU"M-'L:.^:M6C6T)5SR>?,)I7%XWO]LZH\&5;#N>]?.WXC@<6 M'9LY>L3LP9M3IO^Y??*SPK@;T]]9TW3>RZVK>A[^J&C/SO!#N0=N7KC4:!I- MHVDTC:;1-)I&TV@:3:-I-(VFT32:_[=FL#LP:Q?CB6`?3(A@WJ!SUR=&L+T3 M;C^SUQ;^>X#KTG]OYF\LKG )`#YH%%8!78!`Z"$^`R:.J-8&W``Z`7&`SB MP4C@`CE@%E@$O@!YH`P]`=/`6>`<\#.Y@"%H)/P"90#"HF_D]F/N]L&M/W7YN^D8RSO>CS>"WB>,'E MWR36PR:P1%$<[W/[3PVG-7<<6ROO5J:J/A/"_'T"0H\2VE,/6*2J3>*SF5D"3V=8A)X&URY-@9\F-PV8SIRG%8B*J_ MQMELDJS0EA62*/(V5>D.]_@NQ.1UIKIH(2=[*#35I>@DV`S:'R]!.'+\WV"4 M4H:`[J)97L^':,X-22+=RJ'97L$BCG#8!+V=EU@Q/=&MWMF;=PAG!-MS^RM& M,#;TO]K[[O`JRF[?F;W3"`$";)!NZ*B`[_0^$XHT*1$!$?)!:-(B!`A*-R!= MP5!$I(8BTHV`@(`0D"XE1)I("56:D-`1A/N;V>>?\]]GLOX^?BMS.R9 M=]ZUUJ_,GCWCRM]MF_Z^8U&SG8J*LRN">F3__U;OM+!KR>/-4)>!R8.3[)7U MJ+;./'JK@J(^<**&/>R?&@ZE!M/-&[3HDN0]&.;CD\`8QW[-NS<[LFL!6Y0+ M_@NV^8^SQ_=[#\/>]_S7.F_:G>+LS]B-T*%_O\`:IJBU=&O[!VJ^^;;O;&B4 M.'A0+SN!]9V?D`ZR[XQH8/^6;F`/WS@K!O\%H\CQYMXW?^WR?B]9SW>O8L!= M":^65\O_7TNTC7T4-9\L)3=(#A$8G1G-3&0.,\>96TPAM@S+LG%L9W8H^PV[ MC,U@S[-_L^%<=8[G6G*=N$1N&#>1F\7]P%WC'G/%^2J\R;?@Q_"+^1_Y:WRD M4$]H+20*(X5OA9/"(X$3/Q`3Q6%BJKA+/"/>$D.ERA(K-9?^(PV5)DJ;I%/2 M-:F4K,D-Y19R:_D#.5[^2.XK#Y$GR'/DA?)2>86\7MXA'Y9/R^?D2_)M.5=^ M+(4=DI'I;O26QFH?*J,4$8KXY7IRC?*/&69LEK9J>Q3LI13RD7E MFG);H=0*ZCAUMIJF+E/7J[^HOZI9ZE7U;4W0WM7BM(Y:%RU)&Z:E:!.T5&VV MME1;J:5K&[5MVBYMO_:G5EU_2Z^G-]97Z3_I._3?]1CC38,W+*.9T.>=)F&D M.*E&^I%D\CF90F8@#RM).ME*=I),X8=YY[ MB?S$\)WX4?QV/HN_R>?PC_CGO$N($(H*E86^P@!A@C!%R!6>":%B6?$C,0F9 M&H=<+16+2"6DUZ58J8TT5TJ3UDA'I&SIKE0'69HB+Y)CE-K**B5<+8UY[:SV M5X>J*>HD-57]%C.\0DU7?U8SU`-JIGI&O:+FJI06J;VFU=#>UGA-T4RM@=9$ M:Z&UUC[0>FA#M4G:>NVJ5DL?J(_1)^K?Z//U]?IA_91^4;^I/])=AF[4-YH; M[8Q0L[49;TXPIYLGS#/F!9.VZEFMK7BKFY6(>1YA?6Y]:NL7 M:Y]UW+IL_6W]8]G?_S?$O!9UMCK[-JNP(]CM[!$VC(OFRG'5.)FSN$:8 M[79D M"#.%Y<(V(5-H+&X0CXIGQ9)2?VF(-%6:*:V4?I!V2?>DM^09\E#E2#7F&+N-FF8=4S9-\SUSO;G-W&T^ MPER&6Z6L-ZRW+15UV\)ZW_K0ZFSUL/I98ZPKF,.'EGVS7CSFL`I)(D/)7?*0 MO"0?,*E,+O,&:[)[V-^`$O6Y]U![P[@QW/?<0^X%-Y`?`ERXS)<1M@J_"I>% M?X4HL:782?P8-797?"A&2.6EWM)`(,!MZ;$4*;\I7N^L]]*3]%'Z%?V)7L(H8U0RJJ%_!71OG-$>'3S5F&%\ M;_QL;#<.&D>-/XULX[;QS*#-<+.(6=(L;U8V[?F23,-L8#8SNZ#'/S:'F*/, M26:J^:VYR%R#6?S9W&'N,7\S3Z(N_S+OFT]-MQ5EO6;U0?]_9HVSOK"F6=]8 M\U&;*ZP?K)^L7=81Z[1UP;INY5C/+?M&T7F`!Q>Q*[0"LW_T;?\>.DWX0?A9V"'L$XX)EX2'0CE1$NN) MC9#/'N(0<8PX2YPG+A-_`\9?$*^+]\3'(BV%2=%2:>2XNE17,J7WI`^D!.DC M*4GZ3!HGS9862Z64-Q1&495Z2DNEC=))Z:<,4\8H7P#%%RK?*>N5/:"^T:+VT M'H.JT?1W]??U>+VKGHR*^5K_7O]!WPS,/Z1GZ6?U6\"C%WJX4=0H;U0VWC;> M,3XP.AN]C/[&"&.,\:4QUUAFK#4VH9)^,XX9%XR'1I19RGS=K&%RIH+J^<#L M:O8U!YLC4#M?F?/-G\P#YC%@V47SCOG`?&$6MLNW9'.C<*1R$W;E**O$$8H%D]TA+UT@FU,HR, M(5^0Z60A^8ZL)W^"4=HS`YF5S#9F%U.5KIQS;B>W&#@62HWA]O!'>%^Y\Z"ZV]SC[CG7!@?Q9?@*_#5>9%OQ+?F MN_*)_$!^!#^9G\$OXK_GT\$P--CE>^&`<%T(%VN(GXK3Q#FHC1WB>9&5WI7Z M2.>DYU)Y^3?YBJPH[<'=UY272B7U*W6Y6E'3D9LCVM^:#O0:J<_3M^IUC,9& M"V.0,<289!0V^YAKS:WF+O.X^:=YVVR"7CH/;KUGV7=M';)_BTP*`^%[D3WD M"KD/C"K*E`-W"DQ#)H[IS/1C1C*3F-G,4O3(#N8(GLTO8U>#33/8L>XOU<,VYM=Q&[ARWB3_&=Q`&":G":B%#."S4%%DQ M%IQI5_\R\0_QAO@O>%.76J+.IP'+-TC%Y')R39F7+4?7C)U,UJN]DR+T$OJ%?2:.M%5O2$8H[7>5Y^D3\>LI^N_ MZ/OU8ZCYJ_I=W6T4`VY6,5C#-!J!B>.-WL9`XU,@Y]>H]UW&<6#F=>.)\0+Y M\9AE30*TC#.[FY^84\QOS!\==#QB_F'^;3XV_S4CKMF]8#NZY3;0>'VH9&JDTL\BYICYKN10:3+\'42\A:**6]Y"CY M@SPA-%.<*Q8=@JTTWSD^C8Z4^X/[B\M%3U!\"!^!OHCF/7P9]$8,7XVOQ=?F M"<_S,J_SL7Q#O@G?G(_CV_#M^7A4T5V^J_"I\(6P0/A.6"4<$BX(MX"I_PB% MH,):B]VAPCY'19T2_Q)SQ4=B8:D*-/,[Z)RITE9ICR3*ICQ2WB9?E:LH,U$E M!Y4K2BFU@?JI.EF=H2Z&QEVK;H+*/:_^I>:H3U47L+"IU@J5T$WKI7VL#=0^ MU49J8[49VA)M-[CS+ZV^WE8?HJ<"\18#\7[2#^AG]+_TY\"Z4N#+&D8=0T'N M&QC_,1*-8<"Z:<:WQG?&.F,+U.]IXSGR7LFL:_*F:C8&QGUB?F:.-1>:FZ$N M=IE'P8AWS(=F$:L&<*V]U=WJ;0V!KIAB[;8.`\\>652:]QD=99'O-\C;Q"`) MI`?I2P:02CDJ>"[-?-A4:VM=M+ ML8)43VH$!3=)^A9*>9.4(1V2,J7CTFGI+#3S%2E6;BGW0N]_*<^7EP,!]LH1 M2A7%4!JBZULI'R@]E$1E`%!PI/(ELCD;_F6SA2P<2:Z M_`]HZ3+0?$VTSMI'VF?P*1NT?=H)S:5'ZL7TJGHMO0'XZV-]D#Y6GZ8OU^_H M8F9+^)6A4'\GS:LF9\G6=]9.ZW?KAIV/ M=(I:C7P4(3QIBL[KCHZ+A\YCH1R:0#?\![PQC)WF=,]F=AL/\:&^4%2L+IIB"W$W>.*:&"YYI#>DQE`-O:2?I&W23NF8=%'*E6BYN%Q- MKB77E@EP599UN:O<1QX@I\C3Y=EP)GO!*Y?D8HI'>4MIK+102FIEX#4&0QE_ M`[[/A4J,TLOKE751U_5W,%MMH`][0"5/T*?H<_0T?0WA_FL;*ER(K1@_-+HYZ#<>?#_'6&RL--+!][NA'<\8UZ`<'T([AIB14(X5 MS:KF6R9C6F8[^)8>8/YD"6K MFO6FQ5N*H\);PT%^`F_9+]EEW,KF33X2PSV+W@PI/L9?8&>Y=]SK[D MPH%V'KX\_Q;_+M^=G\Y_PR_A-_+;^/W\4?X$_R=\SUW^']XM1`HQ0G7A+8$1 M),%P'%!KH1NZ:I(P2Y@G+(8/6B.L%[;`"UT0;@`!GPF4&"861J>5=GJM@=A! MG"JN$G\4-XF_0EW^CLIX*+JDH@XBRL#$5E)[:,I$J;WB3Y;*^?* MA93B2CDE1GE;J8\ZB%>Z*#V5CY51RF3E*V6M\I-R6,E2;D%7>M3:*E%Y558; MJJW57HZJG`4ML@&LNE_-4K/5&VJX%JN]H[6'BARNI6A3M#F.@CRE74)%A>@E M]+?U^GH!F?^8'JL._%@G:R/<[$'KOF4_-.D* M0E,UA:8V8L?P`_E/^9W"">$,T*V<%7( M%>R\1XNEQ%IP%CI0MK'XOMA;["*:6#$5:B#PV*6>%H\![5%22%2 MA!0%E^&1RD@5I!BIFE1+JBT1B4=MZ%)]J1GP(U[J(7TJC9=2X3E62#^"/X]( M?P"9;THYTD/IF>21R\J59!9(4E]N*R?(O>5^\FC4D7WU::6\73X&GK6O.\4` M3Y*5)VVEJ,]@*=XKE%ZB!ZA M1^G1N@>>M(*^3O]9WZ4?U(\"EY_IQ:"G&AG?H!)JFXE6DI4,3AQA:Y]LBFJ# M''=E^C*CP7#3P6Y9S#W&Q59!!MNSG=E^[&?0+M^R:>C'U^#8WN,F<(NYE=PQ M*-3+X+5G7`S?BO^0[\,/@RJ?PZ_B-_$[^H"]2EZC;U-S53O:.6AVIE-`U:I:7604O0>FK] MH5L7:"NA6@^AU^H#HV?IO^K7X.2K&*W!:IG&14,R-T%GW(>R?`O=TM!J!J^T MT]IGG7+\]7U[3G,H*M/!R$)`Q%DDC92&7AS"C&!2X)HG,E_"-Y>!_K<]L=TC M8]B)\`!I["ITR0'V=\SS4[8D5YY[FY.X%EPB-YJ;P:5QZ=QA.*,7G(>OPYM0 M=78_?,6OYK>`Z2[Q?X'C**&(4%N0A19"!Z&KT%,8)7PC+!,V"3OAH7.`=*^) M1+20APYB'_$+\5MQ@[A+/"`>@8>^)CX1G^?5=T/'-2=*`Z7AT@0PX1ZHBY/2 M>>FJ]+?T2*H`-JPKB_)`!_?2Y8WR?KDV5$6",E%9KFQ4]D-)G`#./5/"U=?4 M*FI=]1W,?B^UGSI<_1P.(E6=#[VX7=VCGE:)QFLR'%BLUA!8UQ<:<8SVE38/ M6'<(*N.R5D5_$^YXDCY3GPV/D*8OA<;8@WJ^J-_7G^HO]4*&`"\\V)AMI!D_ M@POOP1&$F$7,"J9N-C3?A_,=:4Z&[UUJ;H`CV`]'<`'*\)'YT@RW2L/YUK)$ MJXG5TFIC=8%&'&R-MV99"Z%+5CF\=]+ZRWLUC[)_V5/!15$E2!E2'0[!(`U( M*](;O':-W";WR%/XOD@F&LXOAJG!B(P)9&P&3$P`*@Y%3WW%?,W,8=*8[YA5 MZ*Y-S';F$)/)'&=.,V?A%9XQ-%NPA3W(1G#EX`849-[&Q61HR87< M&GB`K=QN*,DL[K33=]>Y'"Z*+PN];T'KVU>^1O%C^6E@QH7\\"O7I(GTBC MD?IGCKQ>_EG>*9^6S\K9\-;7 MY7MR825:J:DT@G*CLD?)A,:\H-Q4'BF4&@D>K(G>Y-1Z MZGOHSN[J$.C.J6#"-?`2^]23ZE7UGOI=:6V&SBODFJJ21V1QLV,5,-%.@E*:##Y>@MS/-4^85\Z:9Z_C'$"O* M*@5(5ZK4Q>1^^<2Q\XWRRFFPF MA\D-DDM<\!"5F.JHC%:HB21F,"IB(:IA,[.;.2F^B@[VYN/ZHADSO.W>2>`A5"^*)\9;XF M7""+FH@#8W;DD_F1_'A@Q!Q^,6KB!_XG,.8A/@NJ^!)_G;_#WX=FHH1PH;CP MFL.0E]AC#!9..5HY5SA7[!E*;&\6$<4P9##P([+Q?7B5?$V M,+P*^$]T=%%/Z3/I&VD!',D^Z:D4#L7<4%Z""MDG9Z)*+LD/Y7)*964$ZF&# MLA75D*U<5W(4^QJ;K)I00\W4$>K7ZB+U>]3`$7B/)^H+M9A6T;GNS,--#@0Z M?ZLMU+[3TK6CVNG_D?W:Z_%Z@MX=&LE&C=5ZNKY!WPS$*&Z\#G4M&%V@C$:B M-A:B,DX8R>8(YG`SD-W_\9> MA&>YSU+([&MP_771YTWA^`?"-7[#;8'+OPL^C>9K.'G4^`9\,WB9*>CEW_D7 M?%EH6TF(%;H(4X7YPB/A37CW3N)P,44<+TZ!7MDL'A0SP:W7Q4CGVQ0)FJ2C MU$WJ#;/&Q M$09UV0PN+\7<9QXVSZ-S(JV*5B,KT1H+1,VT[!^V-W>^%ZD$'!7A]5K!,]BS MN)3\!I]P"[-8G'F=J+6^5<.;S//>=*\57A%3A@8U-HDX[\&'X66/(!'RJ4 M!D-:X,>/X;2G0@E>@S:I+C81X\5N4'X3,(^KQ9^=62PDE88CM"L['IYPH#1$ M&BO](/TJ14.]U9#?!@6/Y4'R9_(D>2[<]E8Y0SXCARF%E=IP`7V4 M.U`A1511U=2V0+>)J.K?U;_5BJAG`?J^&9"L-_3].-1TNI:A'=".:R^U2Y74F*5KJB-EHIPQU-YS*(6BH MXV#QLU"E5]3KSO=N%305YV5?^_Y"FPF-ND9;KVW'>66A5^UK?[4=%]Q.7P9M MND<_K5^&,G49$8;'B#%:P*\D&+V,?L8P5-8D8Z[QG;'*V&P<-LX;EX'<=^%U M7QJES6HF9]8WNYJ]S7[FIZBU+\Q9Y@)P_!ISG;G9W(T>?H#^C7:N;=>"H^&@ MTNSKV[:_;0_\[@./.]&:"JY?8&V';K.=;:[UR'IA47$T-1L\'TYL-&?1Y?\A M7&"*"^$BX)FJ<0*GH^9MUY0(SS26F\)]RRWG-G([N%-0 M!E>@R!]S%!_&E^$)+_(ZWQA<\`DZ8+*C#N;#.:V".O@5"CT;JO$%7UBH(-1P MNJ(QW/*'\,N]A:%0CDOAF58+Z<(&Z,?#PN_"7<(?X@7H>!SQ1=B M"+QQ)>E-N&,-_J>5U!9X,UB:)$V3YDB+I+72!N#-$>F,=$FZ)=V37DJAD6N)S>3WY,[0<_WDTJ1Z$L'JLOU0BM&.JUBE8;#J`1',`'8)B^V@`HBX50 MH)O0C_O0CV?@LG+!+R%Z$3!+9;VF+NC-P2W=]8_U9'VT/D&?IB_05^@_ZEO@ MQ(_HQ_5+^G,]"A5=T:AF,(9DU`->?@B^Z>-X\;'&=-3U-F./<11^_+)Q`XHD MW"QAEC>KF[5-Q;3,%E`B1YRK9'^;[:T4N]<3:.=9*^/$`](5(/=)Z"V78BBC MU7E`DVG:7/B59U#+-=!?1!=U58_5&^I-]990SUV@C59C=/NABB[KUZ&1"/;O-@>8$\RMSMKD(;+C5S`".9YDWS(,6E413 M(<`;D30D7<@`H/88,HG,('/((K**[`1^9Y$_R&7R-WE`G@'%RT/OU&8X!\=; M,EW@+@=""W_N7".8RRP':A5CJZ,GAK-7V!?L`.XDE\TE"H.$RO`H(MQX&[&O M.``:=30P>08\RD5HC5PQ#'YQIK13^DT*DXO`1U<%YJZ37\J]E('*`F6M\AL4 MYEGE=;6_6@MY]?J+`4#8K[6?@4%_:G"S3XT>B,S7QE+ MC`W@L4/&=>-?>.1&9GO,Q#1SK6E:HZW%UEKKB46ET%0MA[^JP@&TQCR,(A/) M8>XPI5D)_/\I'-YB]/9!]CQ;DV.`R<.Y>=QZ M+A5]>`H:K)#01T@6%@*+<\'JT6)5\3MQE;A;/`Q?=E\\*!U'_UR%HJ+D,+FP M_!K8IZZLRO7EEN!P^VIDBCP6BOQ+B5>38`&[X6.25*GJ8O5U>B28EIU M.+/AVF,M$IC=4U_B4U*%#-V(-1H:38SFQ@_&`>."T=;L;/8Q/S'CK`Z6?7'] M+.HUDGC`\5U1$?^2.DXE-&?&,0?8T^PU\).;8Z%KW^7:<.VYSMQ'0+.!W!'^ M.#Q+#G@Z2J@LU!(,H2%P)U*L)#83QXFVIEDO;94.2D>E"Y+-O^TU);H,.;:NL<+RGHEMY*;ZMWU+LYUZO'P5-^CXX]K&>C M(\*,8NA6^XK9>^C3OL8X].<)(]:Y@CK4_`S,>]N\9[X+W4\Y#^=^@O\DDZ^A M5QZ24&C[BJCS2T^#7HDMI",VB21"B2U<(ZN/4_P<:YPA.A-#1W%5$6NXJ#X=8F MBS/%A5#>MFN_CG[($1_`MWNDRE(-J;;$2/6D+Z7ITD;,#R6'RS7EMIBA(?)7 M\FKXM)MR#)Q9?:4#/%F*,DV9K:Q12VIEM?Y0'VW@H*;I"_4<_;%.`1,&8P:F MH1_6&SN,XT:,-=,Z;U'IM/.,]6+D/=3\=^1GLAM=_A5SG7G(?(MS7,Y5X.OS M[T%?#(7G6,!_SV?`;>0X=Z/TA-9:*]P6JHK3Q47B2HS^I'A'?"Q&2Z6D6*F= M-$!*QYA?2LWD7M!1#Z&?BD*1UE5DC+<]=.DX9':[$@JWV$K=H.Z%BKJEWE>+ M:B6U&M!07;0AVE)MBW91NP6DMK^98/5$?8`>BWQ^AXX>#S3;8+XP0ZT+UC6+ MRJ"=>Q_*D*W@\_%,-?8I7UJH(Z0(_]/5O>92G-0&#B<>*GJF-%N:!R6]%/YX M-4:^0=H,GYPA[8:NMK^)J8'.:ZPTQTPG*D.4D6:HPJ? MP0.74"NHO-I:':FN4ZM#H=@7C6;:8X.V6,+LA:((@VZ(AZ+["8K@)5L>#K`; M-Q[^;R&0XS:<_5DQ6[P24`O/_YMKE`E2=^C71"DI8*SEE-?!I=W!HPN4G M989.0S'5L9K!W:98KX4WVBX]$6DJ1 MID@SD.U,J:N\$7KYN/P7N,R^OXM53*4!.'Z&+D%KJJ/SII"S1^#>2VJ61"QW>5>\N?`$NFRC/D-&#H'OF* M_%1^`6PQE';*:F67^A2J_2,PR,_Z-LM^PE.LL[\O22J926:3SN"W(<[W_#\" M`\XQ-YE(MC0\2PV>@8=KBUXWH;>["R_DS\S5%A7MHI;CXW6(2;J1P62\R;]`[&;N@L>UOD++,HH[O=3G/*`N\,[`24XUYDR%@ M.AWZU[X;J`W3@4E@/F(2P?!#?/<%S7+N&UP.5-S`;`$R[F4.,5E0R.?!BS>9 M'.CDYXR+C6"+LAZV'-1R#6AE%DK9A":@TEW.TW'L[Q4V,)L9^V4!]C.$HH"D M'BZ&KRU1S@L`[,?L-#'3K0W69FN;E6'MMO9;A^`SCUNGK;-6MG7%NH[LYWB_ MX\]V.<_MJXH)02.-U;)_R8F5FUH/UPMQT4UMV]S(^6#8.LL*+HS\GGYDGP-.'U'OB<_ M@OI]@;X(4R*!A264TDHY,'H5I8;R)G"1!;.KZ);Z2B.E&3B^-6JT`W"RJ_(1 M/&<_<.$GRC!EE#)&&:],!G8N59:#^;UGJCOGVD1MKL;]%]Y/5A^8SYWK71ZK M@E7-JFWQEFXUM)I;;:QXJSM\?+)W+J/=CA9,(-U)+Y)([/D:`UR:S$T%-BWC M5G)KN5W<7NX@V"X'SO,)^"[_7H7\>Q3R[TU(XI/Y(?P(/H4?RT_DO^13^9G@ MQ7E\&K^47\ZOYD.$"&B!:,$CE(%/B1&J@4]J"T3@!5G0A5BAC=!>B!<2H)^& M"".<>QUG"_.$-.&@<$3($DX*-X4[PCVHJDBQJ%A"+`TIR-<2, M,CW`DVK0W[QSY;BYV<:,-[N;B:9]76BL^:4YTYP'A[D:/&+?OWC(//Y_>>KQ MJ^75\FIYM;Q:7BVOEE?+J^75\FJQGXL:G?=PU`8-!PU*'EBWQY`>_ZM#^E]= MDG#NV7GS$49%NN)Z>I_=GK^D]0Q^]'1Z3\KW+B?[V=*9`;&]FYP"<72OX)@4 MB.-Z!>\O*2"VGVF?6F#[]%[^\=AQ1H$XL\#^<@K$T;TI^Q;?O.UI.J-`G-0G M.([I&QQG(LX(.%YJ8O#ZV(^#XYR/_=N[$*?W"UZ?T#\XCDXJ,+XD?SZ<\0]P M;I.C.&=^:KIR$">YO&,)IXJX$I*][ZK,7])&!L]/^DCO_FCGWTB:&N7=/L3Y M-X).&.5]-KT=N_%/VBCO,^`+.7\K[,K\S-L_A9SUA5PI$RG?(X9I*I1.G^C= M>:CSER)T^J3`]1C[)._^\Y>8R1A_I/=X+JJ<)W5F<+VES?3/GYLJ[$GXVCNX M,">NXDGX%N.WWVWH?/XU3\9<[SL$O,]&+TR3>?[C.?661ME?'^7_A)8X/]'(VU\A-UGJW9_'B3WNM.^\^AS(W=\93T4-68@P1WG;%` M:['=/Y]VS69N#]P?MMT1O+_,`C')\,;>_@NG4@O$.1G^XX4`CQ-V^N-0Q)D[ MO?C@S9^;2MGEKQ=[O-&_>K>GG>V+N%)^#?P\ZN_7P/-QNQ-V!\Z7RY6VV]]O M]ML^$_84B/=ZWU^;?SRR+[A_4O9YUWOQH:0G[8!W?KSG%T7''O2?K_W&BY1# M@?B(L1T+SF_*L6#\2BVP/NV8_WSL\4=G>>N!SALA*1#'(#Z3[D8?/S4@/7V MDEX@SBP0YQ3X/'4I>'U,@3CVDA_'L_'^7*N.:O+[O?4_]R;F'.FX]0.N6Z?_[<-OY<]\^7FXKT M1-_POH_7B_^O>;)O^?N/!K_%W@[";U?F[6!\B/D[F*_B"L0I?P?S2<;?_O'A M?#SI=P+Q+XR.N1N(O\4\:7>=$Z&\[W*+HM-R@_.7D>N??P<_[W4^QCQ&[\_FEI#O]G\#^BZ33G_OW;W-TQG/[/73YG_=X MLFG:_GHU[_/%/*ENFDH(]>:.1C_G1-`.WWJ7:$]<83J@'J"?$*<$Q#F(_?U9 MR)4010?HDT*NC*`XG(XI$K3>G5(D>'UV$3H(;TA1VO>R`^3738IA_"'^\6:7 MI)UW6--Y<4HI.H"/PNA,Q"3<^UXCFBKNH2K2WOOEG?65/)F5:(?_O/54Q)/] M.NW39_:;D%-C:!_^`Q\]I#(=H`\C/3EV[#M^"4]Z5=K'IS3F-Z,:;=]2XXMC M:M`./^?'I!8=T`^1'NH-.J`?BKES$*>YO>\.:I9WW M2WMW6=R3P]/.^YK=3ES.8[]`W,\?H72VAL^[G7N?N#VX>ZX!K1/CX6`CS(0I_CT9%%W[#MT$+['!<3V MDO".?W[#H.>H1C05BYV5S3M>;!/:_HK.>9>5BPKWY#2C`_H/GW\7\Q^>/_\5 M/3'O8W^N_"&6]62T#:Q/U%,[_WS8^B"C'1WL#SX(CF/:!\>9!>*4#X-CTB$X MSBX0IW8,C$/IV/C@.*=`G/8?.LA?Y/2EG7>%Y"_1B71^.IPE!K$<.+^)P?/? M_V/:>1=*WA*1COC-@/79B`/Y+[H?[?1._GI2((Y#7"SP>`7BI'YT`/\6=^7T M\^.)HQ?[T\[[J4(H+Q_'H-@L*K]^P7^(BP;L+W,`3>4_/<\9+^*KE-\/9`ZD MG7>$>?FX,)TTB,[CGCQ]@3@VX/B9B$L%K,]!K/O&&TJ39#\^H;X]J8C?#EB? M@;A20)PPF';>[9*_OQ3$]LOR(ISU473,)[3S+M7\]6F(2P;$&8C%@/.E/@W. M#T%$ M,?Y\VG$2XA8!YY.!>)]O?8@G]7.:>@LKPAS,]G@RQM%4?]_VX6XRGJ:.^;:/ M],1-H*D/Z7S]%.I*GTA330..1TVB[?_EZW%/ZF2:8@+69TXN4%^3"]37%_[\ M.MFO%WM)0-PJ[_/VI](1E_;Q>[@G\VN:ZN$[GLL5 M.XMVWNN6?_RT67X\<>H/AO4(]Y`!.">HB;35//\K:W_7KXYWC'X^M3S(#MK?[,6R5Z,[7T45M23LA3[H[WS M1]O7'Y;YZ]'QYX@[!\31W]-4;=_LN^E8Q&$!^8A#7#@@3D#\>QY_VOF(74$[ M[WC*VR.=M,*//_:2BKA(0)RRDJ9.4/GO2BSN25A%.^\Z+.*,)X2.W6!WH7?; M<#L?&VGGVI%W_B)(*P?$\[;Y\1=+1/8V[^];\H[O(=MIZDPAY[W%J(]JGNC] MM/.N26=V[?G;[^_/$"K*DX98"HBS]_OYQAG?_F`\CSX0//Z8`\'K8Q%_%!"G M(Y[N.WZH.^X@3>6_8=$%/9M^,/C\,Q!W]ZT''OV&_O?%;G<:XM54/A\5\\0= MHAWMY5T?2B<="AY_2L!ZIS\1KZ'RKY^5],0=IJG?Z/SK8^4\,4>#\2BV0)R` M>#25CR=1[AS$@F]_X13)#(Z3"L3IB%N!7.PY"\?XJ=->/'5[YY^.0SS7[?7/ M850%3PZ:J33E]^/19[WXXO/K9[W\[L7G$#KI;/!X4\\&Z@_H,\2+`N8CZ1QM MOQ_;%U/G_7SMY/-\>O_?H\`OG@_F9NA#'?V%./\&(U2VB[KGUQ\.7R"^3N7S`?S*?9I:YM/CP-.'-#7SQ?Q1#\.YOL8Q+-\<8@G`W$+GS\*=T<_I:E5/GX.=67\X^4W>[%K M,OJ9E__M^8)?H%*>>?G1KCG[^GCL<^]X[;@08@+P3W3GXUE)=QH^F>'*'V\1 M3X+;1:VEO/JL$.8S.L05I+=B$=<(B),0LP%Q.N+BE+^^,Q&7"(AS$/.^?*#^ M05$=J7S_&DZE(E:H_'?]%J8R$>?7HZ,O$-?UY0_S%^;=7_[V"8B[!6R?B?B. M;WT)5T:X=W^NO.-G(ZY%Y?LU\'N$R]'CKKQZ(8C+!!PO#O%K/K^,?BV$JG;G M]W\(G1(5/-XTQ&\'C@?QXH`XI8C+>0=C_I)6Q'L?I'<^X6\0=_?%X>Z$HJZ@ M?DY"W->W/L*3C3B?#VS\C2GFHG;DQ38_Q,!L^U\_7MB3AE@+.+]LQ)-]ZR,] M2<5=U&!??82ZEX\?[/Z@2KE\^M*^WA!7RIO/_/-)11QXO9PJ MC>/G]7\X^#6VC"N(KU,0_^WRUJ.]/JF\*XBOTQ#'^?`ERI-3T47%^]:[W7&5 M7%2R[WBA[DS$4WSK(]VIK[NH3WWK*:I,C,OW_8#C)ZJX@JY7)07$]I):($XO M$&=6<07A879`;,]I3H'U5%57T/6PZ*K!ZV,"8GLA!=;'%HCC`F(;+Q(*K$^J M&CR>E`+[3RTPGK0"VZ<7B#,*[#^S0)Q=8/\Y!=93U8+G.Z9:\'I2((XM$,<5 MB!.J!8\_J5KP>%\MKY97RZOE_Y6E97WG%<[4GBWK!=M#-%3C6[S?\)UV\7$# G^_?IT2UY4+SW+I[XUCT2>W09U",OK)O4O>M_N[__`X4VB-X`>`,` ` end""" if __name__ == '__main__': main(sys.argv)