diff --git a/.pages b/.pages index 1830443048927a413c799a03ac4539253bcfec81..d99a0502f48dfd493a543b40a08cd2aaece96836 100644 --- a/.pages +++ b/.pages @@ -1,10 +1,10 @@ +sort_type: natural nav: - README.md - Getting Started.md + - Students + - SSH-VPN-VNC - Servers - VSC.md - - ECMWF.md - - WRF.md - - TeachingHub.md - - SSH-VPN-VNC + - ECMWF - ... diff --git a/ECMWF/Data.md b/ECMWF/Data.md new file mode 100644 index 0000000000000000000000000000000000000000..429857b05227d7ebf9de377b95948e282c8a817f --- /dev/null +++ b/ECMWF/Data.md @@ -0,0 +1,16 @@ +# Data at ECMWF + +## MARS + + + + + +How to make a mars request + + +## GRIB + +How to handle grib files. + +Example using Python and Fortran90. \ No newline at end of file diff --git a/ECMWF.md b/ECMWF/README.md similarity index 82% rename from ECMWF.md rename to ECMWF/README.md index e011028c6345221d98b4cebbfde5cc7c9c51b2f7..6e06c94b9a1b8ce1d8120ab5be0dde8911bdd503 100644 --- a/ECMWF.md +++ b/ECMWF/README.md @@ -1,6 +1,6 @@ # European Center for Medium-Range Weather Forecast -<img src="./mkdocs/img/logo_ecmwf.png" width="400px"> +<img src="../mkdocs/img/logo_ecmwf.png" width="400px"> [website](https://www.ecmwf.int) / [service status](https://www.ecmwf.int/en/service-status) / [confluence](https://confluence.ecmwf.int) / [support](https://support.ecmwf.int) / [accounting](https://www.ecmwf.int/user) @@ -8,30 +8,32 @@ If you need access, talk to your supervisor to create an account for you. You wi Available Services @ IMGW: -- [ecaccess](https://confluence.ecmwf.int/display/ECAC/ECaccess+Home) -- [srvx1.gateway](https://srvx1.img.univie.ac.at/ecmwf/ecmwf) / [gateway.docs](https://confluence.ecmwf.int/display/ECAC/Releases+-+Gateway+package) / [boaccess](https://boaccess.ecmwf.int) - +- [ecaccess](#connecting-via-ecaccess) +- [ecgateway](#ecaccess-gateway) ## Connecting to ECMWF Services A ECMWF user can connect to the ECS/ATOS using teleport, first load the teleport module and start the ssh-agent: -```bash title="Using teleport" +```shell title="Using teleport" module load teleport ** INFO: Default jumphost now: jump.ecmwf.int -** INFO: Module loaded. SSH Agent required for login, run 'startagent', -** run ssh-agent -k to kill the agent. - Login using: python3 -m teleport.login and your ECMWF credentials. +** INFO: Module loaded. SSH Agent required for login, run 'ssh-agentstart', +** or 'ssh-agentreconnect' ro reconnect to an existing agent. +** run 'ssh-agent -k' to kill the agent. + Login run: 'python3 -m teleport.login' and your ECMWF credentials. + e.g. 'ssh -J <id>@jump.ecmwf.int <id>@ecs-login' + Check certificates, run: 'tsh status' # Activate the ssh-agent (required to store the key/certificate) -startagent +ssh-agentstart # Check if it is running ssh-add -l ``` once you have a running ssh-agent, run a browserless login via python -```bash title="Connecting to ECMWF" +```shell title="Connecting to ECMWF" # Login to the default teleport jump host (shell.ecmwf.int) Reading python3 -m teleport.login tsh status @@ -42,6 +44,8 @@ ssh-add -l ssh -J [user]@jump.ecmwf.int [user]@ecs-login # Login to HPC ATOS ssh -J [user]@jump.ecmwf.int [user]@hpc-login +# delete current certificates +tsh logout ``` Environment variables configuration: @@ -82,8 +86,9 @@ It is required to have an SSH-agent running in order to connect to the ECMWF ser # load the module module load teleport # start a new agent or reconnect -startagent - +ssh-agentstart +# or reconnect +ssh-agentreconnect # unsure about agents? userservices sshtools -h # kill all @@ -108,7 +113,7 @@ This will solve some `ecaccess` issues. ## Connecting via ECaccess -using a local installation of ecaccess tools can be used to submit jobs and monitor jobs from a remote location. +using a local installation of ecaccess tools can be used to submit jobs and monitor jobs from a remote location. [Documentation @ECMWF](https://confluence.ecmwf.int/display/ECAC/ECaccess+Home) ```bash title="ECAccess module" # load the ecaccess module @@ -142,4 +147,11 @@ ecaccess-certificate-create ## ECaccess Gateway -The department is running a member state ecaccess gateway service. \ No newline at end of file +The department is running a member state ecaccess gateway service. + +There are two gateways: + +- [boaccess](https://boaccess.ecmwf.int/) +- [imgw](https://ecaccess.wolke.img.univie.ac.at/) + +Please use your ECMWF credentials to login. [Documentation @ECMWF](https://confluence.ecmwf.int/display/ECAC/Releases+-+Gateway+package) diff --git a/Fortran/Compilers.md b/Fortran/Compilers.md index 31687770c273f3428f665954447c5b8a27db9633..a19d89b137fef8e5cc0593f2617247857b69278b 100644 --- a/Fortran/Compilers.md +++ b/Fortran/Compilers.md @@ -49,7 +49,7 @@ clean: rm *.o triangle ``` -```sh title="running the Makefile +```sh title="running the Makefile" $ make gfortran -c circle.f90 gfortran -c triangle.f90 diff --git a/Fortran/README.md b/Fortran/README.md index 5ed71ce4f42b938ef85441a6806b0d9a2de50120..15fb0fd4bece75c7fb08f612393dec2a901abbfb 100644 --- a/Fortran/README.md +++ b/Fortran/README.md @@ -16,32 +16,52 @@ Get some information on Fortran: There are a few compilers, but most commonly GNU (Gfortran) and INTEL (ifort) are used on our servers. -| | GNU Fortran | INTEL Fortran | -|---|---|---| -| double precision real| `-fdefault-real-8`| `-r8`| -| check array bounds| `-fbounds-check`| `-check`| -| call chain traceback|` -fbacktrace`| `-traceback`| -| convert little/big endian| `-fconvert=big-endian/little-endian` | `-convert big_endian/little_endian` | -| default optimisation| `-O0`| `-O2`| -| highest recommended optimisation | `-O3`| `-O2` maybe `-O3` or `-fast`| +| | GNU Fortran | INTEL Fortran | +| ---------------------------------- | ------------------------------------ | ----------------------------------- | +| double Fprecision real | `-fdefault-real-8` | `-r8` | +| check array bounds | `-fbounds-check` | `-check` | +| call chain traceback | `-fbacktrace` | `-traceback` | +| convert little/big endian | `-fconvert=big-endian/little-endian` | `-convert big_endian/little_endian` | +| default optimisation | `-O0` | `-O2` | +| highest recommended optimisation | `-O3` | `-O2` maybe `-O3` or `-fast` | +| position independent code (shared) | `-fPIC` | `-fPIC` | Please take a look into the compiler options guidelines from AMD or Intel, which might be very helpful for finding the right compiler flags for certain CPUs -- Servers such as Aurora [AMD EPYC ZEN3](compiler-options-quick-ref-guide-epyc-7xx3-series-processors.pdf) -- Servers such as VSC5, LUMI, ... [AMD EPYC ZEN4](compiler-options-quick-ref-guide-amd-epyc-9xx4-series-processors.pdf) -- Servers such as SRVX1, JET, VSC4 [Intel](quick-reference-guide-intel-compilers-v19-1-final.pdf) +- Servers such as Aurora [AMD EPYC ZEN3 compiler quick reference](compiler-options-quick-ref-guide-epyc-7xx3-series-processors.pdf) +- Servers such as VSC5, LUMI, ... [AMD EPYC ZEN4 compiler quick reference](compiler-options-quick-ref-guide-amd-epyc-9xx4-series-processors.pdf) +- Servers such as SRVX1, JET, VSC4 [Intel compiler quick reference](quick-reference-guide-intel-compilers-v19-1-final.pdf) more information on how to find good options can be found on the PRACE (Partnership for advanced computing in Europe) [website](https://prace-ri.eu/training-support/best-practice-guides/)  + +## Generating optimized code for a certain processor + +All compiler providers have special options that have optimizations for certain processors, especially intel. + + +| Processor Type | System | Flag (intel) | Flag (gcc) | +| -------------- | ---------------- | --------------- | -------------------- | +| Cascade Lake | VSC5 | `-xCORE-AVX512` | `-march=cascadelake` | +| Skylake | JET, SRVX1, VSC4 | `-xCORE-AVX512` | `-march=skylake` | +| Broadwell | SRVX8 | `-xCORE-AVX2` | `-march=broadwell` | +| Sandy Bridge | DEVx1 | `-xAVX` | `-march=sandybridge` | +| Milan | VSC5, Aurora | `-xCORE-AVX2` | `-march=znver3` | +| Generic x64 | containers | `-xCORE-AVX2` | `-march=x86-64-v4` | + + +[GCC/GFortran processor compiler flags](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html) + ## Intel Compiler from P. Seibert using ifort for the fastest code (srvx1): ```makefile # get GRIP_PATH from environment modules INCPATH = GRIP_API/include -LIBPATH = GRIP_API/lib +LIBPATH = GRIP_API/lib +# using -xAVX is for old CPUs !!! FFLAGS = -cpp -xAVX -ipo -O3 -no-prec-div -opt-prefetch -m64 -mcmodel=medium -I$(INCPATH) LDFLAGS = $(FFLAGS) -L$(LIBPATH) -Bstatic -lgrib_api_f90 -lgrib_api -lm -ljasper ``` diff --git a/Getting Started.md b/Getting Started.md index 937467b338fbf9aa0cf0b48bda54a577c611d8ed..e718fd93bc5cf920af6493a666f85d1d18f3cc09 100644 --- a/Getting Started.md +++ b/Getting Started.md @@ -1,41 +1,35 @@ # Getting Started -**Welcome to the Department of Meteorology and Geophysics @ University of Vienna.** - -🥳 +## Welcome to the Department of Meteorology and Geophysics Tasks to complete for newcomers, it is recommended that you print this page an tick off your steps: - [ ] Request a server account via your supervisor - [ ] Receive the inital user account information via mail. - - [ ] Change your initial password, via + - [ ] Setup a password manager. [ZID tips](https://zid.univie.ac.at/en/it-worlds/it-security/it-security-tips/password-manager/), e.g. Bitwarden or KeepassXC + - [ ] How to connect using SSH, read the [connection 101](./SSH-VPN-VNC/README.md) + - on Windows install a SSH-Client, e.g. Bitwise, MobaXterm, Putty,... + - [ ] Change your initial password with one of these options: - browser ([https://wolke.img.univie.ac.at/ipa/ui](https://wolke.img.univie.ac.at/ipa/ui)) - - ssh terminal `ssh [username]@srvx1.img.univie.ac.at`, follow the instructions in the command shell. Windows users install a ssh client - - Optional: Setup a password manager. [tips](https://zid.univie.ac.at/en/it-worlds/it-security/it-security-tips/password-manager/), e.g. Bitwarden - - [ ] (optional windows) Install a SSH-Client, e.g. Bitwise, MobaXterm, Putty,... - - [ ] (optional) setup ssh-key via [IPA](https://wolke.img.univie.ac.at/ipa/ui) - - [ ] Familiarize yourself with the shell environment @SRVX1 - - [ ] Apply for your first VSC Training course - - Login in to all servers: - * [ ] srvx1 .img.univie.ac.at - * [ ] srvx8 - * [ ] aurora - * [ ] jet01/jet02 - * [ ] (optional) connect to vsc5.vsc.ac.at + - terminal `ssh [username]@srvx1.img.univie.ac.at` + - [ ] Optional: [Create a ssh-key](./SSH-VPN-VNC/Questions.md#q-how-to-use-ssh-key-authentication) and add it to your profile on the [IPA](./SSH-VPN-VNC/IPA.md#add-ssh-key) + - [ ] Apply for your first [VSC Training course](https://vsc.ac.at/research/vsc-research-center/vsc-school-seminar/), e.g. Introduction to Working on the VSC Clusters + ## Environment -Please do the following steps to get a better idea of what is where: +When you are new to using servers and linux, these few steps might help to get started. However, it is recommended to make a linux introductionary course, e.g. VSC introduction to linux. Steps: - - [ ] login to srvx1 using ssh: `ssh [user]@srvx1.img.univie.ac.at` :earth_africa: - - [ ] run: `userpaths` to understand where different data resides. E.g. + - [ ] login to srvx1 using ssh: `ssh [user]@srvx1.img.univie.ac.at` :earth_africa: [More on SRVX1](./Servers/SRVX1.md) + - [ ] run: `userpaths` to understand where different data resides. e.g. - HOME, SCRATCH (personal), DATA, SHARED, WEBDATA, ?_JET - - [ ] check available modules by running: `module av` and load anaconda3 module by running: `module load anaconda3`. This should allow you to run some python programs. - - [ ] run: `userservices` to get some IMGW special tools. Maybe check the weather! + - [ ] check available modules by running: `module av` and load anaconda3 module by running: `module load anaconda3`. This should allow you to run some python programs. + - [ ] list and unload modules: `module list` and `module purge`. [More on Modules](./Misc/Environment-Modules.md) + - [ ] run: `userservices` to get some IMGW special tools. Maybe check the weather!? -Please find a useful summary of commands [here](./mkdocs/imgw-cheatsheet.pdf) +Please find a useful summary of commands in the [IMGW cheatsheet](./mkdocs/imgw-cheatsheet.pdf) ## Summary of Computing Resources @@ -43,8 +37,13 @@ The Department of Meteorology and Geophysics has access to the following computi - Teaching and Development Server ([SRVX1](Servers/SRVX1.md)) - Remote Desktop Server ([SRVX8](Servers/SRVX8.md)) +- Development Server ([Aurora](Servers/Aurora.md)) - Computing Cluster ([JET](Servers/JET.md)) - Vienna Scientific Cluster ([VSC](VSC.md)) -- European Center for Medium-Range Weather Forecast ([ECMWF](ECMWF.md)) + +External resources: + +- European Center for Medium-Range Weather Forecast ([ECMWF](./ECMWF/README.md)) +- Earth Observation Data Center ([EODC](https://eodc.wolke.img.univie.ac.at), [website](https://eodc.eu)) Please read about access, hardware and quotas at these different resources. A good starting point is [here](./Servers/README.md) \ No newline at end of file diff --git a/Git/README.md b/Git/README.md index 6572d61eb7bc5361f6f4bde64984cf060b267d7b..ee6cd89b3965769e1b69e7b594d2a05eaa3d5549 100644 --- a/Git/README.md +++ b/Git/README.md @@ -1,15 +1,27 @@ # Git Tipps and Tools -There is a lot of ways how to use git and sometimes a working solution can be very helpful for everybody. So please share you experience and working solutions. -## HowTo add a specif ssh-key for your git account +There are a lot of resources in the web, how to learn git. + +Some examples: + +- [ZID Introduction to git](https://phaidra.univie.ac.at/detail/o:1403751) +- [Gitlab - Learn Git](https://docs.gitlab.com/ee/tutorials/learn_git.html) +- [Git cheatsheet](./git%20cheat%20sheet.pdf) + +Don't be overwhelmed. Everyone learns as they go along, but make sure you have a nice [setup](https://docs.gitlab.com/ee/tutorials/learn_git.html) and understand the [basics](https://docs.gitlab.com/ee/tutorials/learn_git.html). + + +## HowTo add a specific ssh-key for your git account Sometimes it might be useful to have different ssh-keys per project or have a special ssh-key just for github/gitlab. Steps: + 1. Generate a `ssh-keygen` 2. Add ssh-key to GitHub or GitLab account under settings -3. Write a `~/.ssh/config` file with a content like this +3. Write a `~/.ssh/config` file with a content like this, other examples are in [ECMWF](../ECMWF/README.md). -``` + +```ini Host github.com HostName github.com User git @@ -20,29 +32,43 @@ Host gitlab.com User git IdentityFile ~/.ssh/id_rsa_for_gitlab ``` + Make sure that you adjust the `Hostname` accordingly and be sure that you use ssh in your git repo: + ```bash $ git remote -v origin git@github.com:USER/repo.git (fetch) origin git@github.com:USER/repo.git (push) ``` -show no `https` in the urls. + +These urls should not show `https`, if there is a `https` then you will need to sign in with your user credentials for gitlab (username and password). + +Every git repository can be cloned using https, but for ssh-key access you need the `git@...` version (usually there are two options: `ssh`, and `https`). ## HowTo Sync a GitHub and a GitLab repository It is easy to import a GitHub repo into GitLab and the otherway around. However, if you want to make sure you can have both repos at the same state, you need to syncronize them. How to call: `./git-repos-sync [URL1] [URL2] [Branch]` + This means: + - `URL1` - Address of the first remote repository - `URL2` - Address of the second remote repository - The order of `URL1` or `URL2` does not matter. - `Branch` is usually `master` Different use cases: + 1. You have **already** a local copy of either of the repositories (e.g. GitLab or GitHub) 2. You have no local copy of either repository. +??? note "syncronize git repos" + ```bash title="git-repos-sync" + --8<-- "Git/git-repos-sync" + ``` + + ### Case 1 ```bash diff --git a/Git/git cheat sheet.pdf b/Git/git cheat sheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e3e34ee638e2020b019a7a5d221d12b24850b6b6 --- /dev/null +++ b/Git/git cheat sheet.pdf @@ -0,0 +1,3321 @@ +%PDF-1.4 %���� +4 0 obj <</Linearized 1/L 251664/O 6/E 210179/N 1/T 251543/H [ 12596 592]>> endobj xref 4 615 0000000016 00000 n +0000013188 00000 n +0000013248 00000 n +0000015548 00000 n +0000015582 00000 n +0000016578 00000 n +0000017057 00000 n +0000017946 00000 n +0000018819 00000 n +0000019630 00000 n +0000020463 00000 n +0000021260 00000 n +0000022180 00000 n +0000023252 00000 n +0000023314 00000 n +0000023376 00000 n +0000026024 00000 n +0000081347 00000 n +0000081594 00000 n +0000081707 00000 n +0000082087 00000 n +0000082314 00000 n +0000082376 00000 n +0000082438 00000 n +0000082832 00000 n +0000083059 00000 n +0000083121 00000 n +0000083183 00000 n +0000083578 00000 n +0000083640 00000 n +0000084036 00000 n +0000084294 00000 n +0000084356 00000 n +0000084418 00000 n +0000084808 00000 n +0000084870 00000 n +0000085277 00000 n +0000085339 00000 n +0000085746 00000 n +0000085808 00000 n +0000086216 00000 n +0000086535 00000 n +0000086597 00000 n +0000086659 00000 n +0000087066 00000 n +0000087293 00000 n +0000087355 00000 n +0000087417 00000 n +0000087822 00000 n +0000088049 00000 n +0000088111 00000 n +0000088173 00000 n +0000088581 00000 n +0000088808 00000 n +0000088870 00000 n +0000088932 00000 n +0000089335 00000 n +0000089562 00000 n +0000089624 00000 n +0000089686 00000 n +0000090092 00000 n +0000090319 00000 n +0000090381 00000 n +0000090443 00000 n +0000090850 00000 n +0000091077 00000 n +0000091139 00000 n +0000091201 00000 n +0000091595 00000 n +0000091821 00000 n +0000091883 00000 n +0000091945 00000 n +0000092349 00000 n +0000092411 00000 n +0000092811 00000 n +0000093069 00000 n +0000093131 00000 n +0000093193 00000 n +0000093606 00000 n +0000093833 00000 n +0000093895 00000 n +0000093957 00000 n +0000094347 00000 n +0000094574 00000 n +0000094636 00000 n +0000094698 00000 n +0000095097 00000 n +0000095323 00000 n +0000095385 00000 n +0000095447 00000 n +0000095846 00000 n +0000096073 00000 n +0000096135 00000 n +0000096197 00000 n +0000096588 00000 n +0000096815 00000 n +0000096877 00000 n +0000096940 00000 n +0000097333 00000 n +0000097562 00000 n +0000097625 00000 n +0000097688 00000 n +0000098096 00000 n +0000098326 00000 n +0000098389 00000 n +0000098452 00000 n +0000098855 00000 n +0000099084 00000 n +0000099147 00000 n +0000099210 00000 n +0000099623 00000 n +0000099853 00000 n +0000099916 00000 n +0000099979 00000 n +0000100374 00000 n +0000100603 00000 n +0000100666 00000 n +0000100729 00000 n +0000101148 00000 n +0000101378 00000 n +0000101441 00000 n +0000101504 00000 n +0000101915 00000 n +0000102145 00000 n +0000102208 00000 n +0000102271 00000 n +0000102683 00000 n +0000102913 00000 n +0000102976 00000 n +0000103039 00000 n +0000103443 00000 n +0000103673 00000 n +0000103736 00000 n +0000103799 00000 n +0000104211 00000 n +0000104440 00000 n +0000104503 00000 n +0000104566 00000 n +0000104954 00000 n +0000105183 00000 n +0000105246 00000 n +0000105309 00000 n +0000105702 00000 n +0000105931 00000 n +0000105994 00000 n +0000106057 00000 n +0000106454 00000 n +0000106684 00000 n +0000106747 00000 n +0000106810 00000 n +0000107203 00000 n +0000107433 00000 n +0000107496 00000 n +0000107559 00000 n +0000107974 00000 n +0000108203 00000 n +0000108266 00000 n +0000108329 00000 n +0000108750 00000 n +0000108980 00000 n +0000109044 00000 n +0000110208 00000 n +0000110271 00000 n +0000110334 00000 n +0000110736 00000 n +0000110965 00000 n +0000111028 00000 n +0000111091 00000 n +0000111480 00000 n +0000111710 00000 n +0000111773 00000 n +0000111836 00000 n +0000112255 00000 n +0000112485 00000 n +0000112548 00000 n +0000112611 00000 n +0000113014 00000 n +0000113243 00000 n +0000113306 00000 n +0000113369 00000 n +0000113760 00000 n +0000113990 00000 n +0000114053 00000 n +0000114116 00000 n +0000114512 00000 n +0000114742 00000 n +0000114805 00000 n +0000114868 00000 n +0000115257 00000 n +0000115486 00000 n +0000115549 00000 n +0000115612 00000 n +0000116002 00000 n +0000116232 00000 n +0000116295 00000 n +0000116358 00000 n +0000116775 00000 n +0000117005 00000 n +0000117068 00000 n +0000117131 00000 n +0000117526 00000 n +0000117756 00000 n +0000117819 00000 n +0000118244 00000 n +0000118307 00000 n +0000118370 00000 n +0000118768 00000 n +0000118998 00000 n +0000119061 00000 n +0000119456 00000 n +0000119519 00000 n +0000119582 00000 n +0000119972 00000 n +0000120202 00000 n +0000120265 00000 n +0000120328 00000 n +0000120731 00000 n +0000120960 00000 n +0000121023 00000 n +0000121086 00000 n +0000121475 00000 n +0000121704 00000 n +0000121767 00000 n +0000121830 00000 n +0000122231 00000 n +0000122461 00000 n +0000122524 00000 n +0000122587 00000 n +0000122977 00000 n +0000123207 00000 n +0000123270 00000 n +0000123333 00000 n +0000123724 00000 n +0000123954 00000 n +0000124017 00000 n +0000124080 00000 n +0000124468 00000 n +0000124698 00000 n +0000124761 00000 n +0000124824 00000 n +0000125220 00000 n +0000125283 00000 n +0000125682 00000 n +0000125745 00000 n +0000126143 00000 n +0000126206 00000 n +0000126606 00000 n +0000126669 00000 n +0000127069 00000 n +0000127132 00000 n +0000127529 00000 n +0000127920 00000 n +0000127983 00000 n +0000128046 00000 n +0000128453 00000 n +0000128683 00000 n +0000128746 00000 n +0000128809 00000 n +0000129205 00000 n +0000129435 00000 n +0000129498 00000 n +0000129561 00000 n +0000129972 00000 n +0000130202 00000 n +0000130265 00000 n +0000130328 00000 n +0000130717 00000 n +0000130780 00000 n +0000131175 00000 n +0000131437 00000 n +0000131500 00000 n +0000131563 00000 n +0000131969 00000 n +0000132199 00000 n +0000132262 00000 n +0000132325 00000 n +0000132732 00000 n +0000132961 00000 n +0000133024 00000 n +0000133087 00000 n +0000133492 00000 n +0000133722 00000 n +0000133785 00000 n +0000133848 00000 n +0000134247 00000 n +0000134477 00000 n +0000134540 00000 n +0000134603 00000 n +0000135018 00000 n +0000135247 00000 n +0000135310 00000 n +0000135373 00000 n +0000135779 00000 n +0000136009 00000 n +0000136072 00000 n +0000136135 00000 n +0000136544 00000 n +0000136773 00000 n +0000136836 00000 n +0000136899 00000 n +0000137304 00000 n +0000137367 00000 n +0000137768 00000 n +0000138029 00000 n +0000138092 00000 n +0000138155 00000 n +0000138559 00000 n +0000138789 00000 n +0000138853 00000 n +0000139383 00000 n +0000139446 00000 n +0000139509 00000 n +0000139901 00000 n +0000140131 00000 n +0000140194 00000 n +0000140257 00000 n +0000140648 00000 n +0000140878 00000 n +0000140941 00000 n +0000141004 00000 n +0000141396 00000 n +0000141626 00000 n +0000141689 00000 n +0000141752 00000 n +0000142141 00000 n +0000142370 00000 n +0000142433 00000 n +0000142496 00000 n +0000142890 00000 n +0000143120 00000 n +0000143183 00000 n +0000143246 00000 n +0000143629 00000 n +0000143856 00000 n +0000143919 00000 n +0000143982 00000 n +0000144379 00000 n +0000144609 00000 n +0000144672 00000 n +0000144735 00000 n +0000145129 00000 n +0000145359 00000 n +0000145422 00000 n +0000145485 00000 n +0000145880 00000 n +0000146109 00000 n +0000146172 00000 n +0000146235 00000 n +0000146625 00000 n +0000146855 00000 n +0000146918 00000 n +0000146981 00000 n +0000147377 00000 n +0000147607 00000 n +0000147670 00000 n +0000147733 00000 n +0000148123 00000 n +0000148353 00000 n +0000148416 00000 n +0000148479 00000 n +0000148885 00000 n +0000149115 00000 n +0000149178 00000 n +0000149241 00000 n +0000149637 00000 n +0000149867 00000 n +0000149930 00000 n +0000149993 00000 n +0000150396 00000 n +0000150626 00000 n +0000150689 00000 n +0000150752 00000 n +0000151147 00000 n +0000151377 00000 n +0000151441 00000 n +0000151846 00000 n +0000151909 00000 n +0000151972 00000 n +0000152356 00000 n +0000152419 00000 n +0000152801 00000 n +0000152864 00000 n +0000153246 00000 n +0000153309 00000 n +0000153698 00000 n +0000153761 00000 n +0000154146 00000 n +0000154505 00000 n +0000154568 00000 n +0000154631 00000 n +0000155003 00000 n +0000155232 00000 n +0000155295 00000 n +0000155358 00000 n +0000155741 00000 n +0000155804 00000 n +0000156191 00000 n +0000156254 00000 n +0000156639 00000 n +0000156933 00000 n +0000156996 00000 n +0000157059 00000 n +0000157431 00000 n +0000157494 00000 n +0000157923 00000 n +0000158184 00000 n +0000158247 00000 n +0000158310 00000 n +0000158694 00000 n +0000158757 00000 n +0000159143 00000 n +0000159206 00000 n +0000159591 00000 n +0000159654 00000 n +0000160036 00000 n +0000160361 00000 n +0000160424 00000 n +0000160487 00000 n +0000160899 00000 n +0000161129 00000 n +0000161192 00000 n +0000161255 00000 n +0000161640 00000 n +0000161870 00000 n +0000161933 00000 n +0000161996 00000 n +0000162399 00000 n +0000162628 00000 n +0000162691 00000 n +0000162754 00000 n +0000163137 00000 n +0000163200 00000 n +0000163584 00000 n +0000163846 00000 n +0000163909 00000 n +0000163972 00000 n +0000164368 00000 n +0000164598 00000 n +0000164661 00000 n +0000164724 00000 n +0000165115 00000 n +0000165345 00000 n +0000165408 00000 n +0000165471 00000 n +0000176961 00000 n +0000177247 00000 n +0000177888 00000 n +0000178267 00000 n +0000178496 00000 n +0000178559 00000 n +0000178622 00000 n +0000179024 00000 n +0000179252 00000 n +0000179315 00000 n +0000179378 00000 n +0000179768 00000 n +0000179998 00000 n +0000180061 00000 n +0000180124 00000 n +0000180568 00000 n +0000180631 00000 n +0000181082 00000 n +0000181145 00000 n +0000181580 00000 n +0000181874 00000 n +0000181937 00000 n +0000182000 00000 n +0000182393 00000 n +0000182623 00000 n +0000182686 00000 n +0000182749 00000 n +0000183128 00000 n +0000183358 00000 n +0000183421 00000 n +0000183484 00000 n +0000183890 00000 n +0000184120 00000 n +0000184183 00000 n +0000184246 00000 n +0000184648 00000 n +0000184878 00000 n +0000184941 00000 n +0000185004 00000 n +0000185410 00000 n +0000185640 00000 n +0000185703 00000 n +0000185766 00000 n +0000186138 00000 n +0000186201 00000 n +0000186586 00000 n +0000186649 00000 n +0000187032 00000 n +0000187095 00000 n +0000187471 00000 n +0000187797 00000 n +0000187860 00000 n +0000187923 00000 n +0000188326 00000 n +0000188556 00000 n +0000188619 00000 n +0000188682 00000 n +0000189100 00000 n +0000189330 00000 n +0000189393 00000 n +0000189456 00000 n +0000189859 00000 n +0000190088 00000 n +0000190151 00000 n +0000190214 00000 n +0000190617 00000 n +0000190846 00000 n +0000190909 00000 n +0000190972 00000 n +0000191351 00000 n +0000191414 00000 n +0000191806 00000 n +0000192068 00000 n +0000192131 00000 n +0000192194 00000 n +0000192586 00000 n +0000192816 00000 n +0000192879 00000 n +0000192942 00000 n +0000193321 00000 n +0000193550 00000 n +0000193613 00000 n +0000193676 00000 n +0000194074 00000 n +0000194304 00000 n +0000194367 00000 n +0000194430 00000 n +0000194820 00000 n +0000195050 00000 n +0000195113 00000 n +0000195176 00000 n +0000195578 00000 n +0000195641 00000 n +0000196039 00000 n +0000196301 00000 n +0000196364 00000 n +0000196427 00000 n +0000196817 00000 n +0000197047 00000 n +0000197110 00000 n +0000197173 00000 n +0000197575 00000 n +0000197638 00000 n +0000198011 00000 n +0000198272 00000 n +0000198335 00000 n +0000198398 00000 n +0000198801 00000 n +0000198864 00000 n +0000199251 00000 n +0000199314 00000 n +0000199704 00000 n +0000199998 00000 n +0000200061 00000 n +0000200124 00000 n +0000200523 00000 n +0000200753 00000 n +0000200816 00000 n +0000200879 00000 n +0000201290 00000 n +0000201353 00000 n +0000201764 00000 n +0000201827 00000 n +0000202239 00000 n +0000202532 00000 n +0000202595 00000 n +0000202658 00000 n +0000203053 00000 n +0000203282 00000 n +0000203345 00000 n +0000203408 00000 n +0000203792 00000 n +0000203855 00000 n +0000204253 00000 n +0000204316 00000 n +0000204745 00000 n +0000204808 00000 n +0000205204 00000 n +0000205267 00000 n +0000205642 00000 n +0000206000 00000 n +0000206063 00000 n +0000206126 00000 n +0000206532 00000 n +0000206762 00000 n +0000206825 00000 n +0000206888 00000 n +0000207278 00000 n +0000207508 00000 n +0000207571 00000 n +0000207634 00000 n +0000208047 00000 n +0000208277 00000 n +0000208313 00000 n +0000208422 00000 n +0000208519 00000 n +0000208665 00000 n +0000208756 00000 n +0000208853 00000 n +0000208999 00000 n +0000209105 00000 n +0000209202 00000 n +0000209348 00000 n +0000209464 00000 n +0000209561 00000 n +0000209707 00000 n +0000209831 00000 n +0000209955 00000 n +0000210079 00000 n +0000210143 00000 n +0000012596 00000 n +trailer <</Size 619/Prev 251535/Root 5 0 R/Info 3 0 R/ID[<C6804A921E6648A4B197D4C3CEAC21C3><59D590B8CFAC4FEBA8C802E539B853C9>]>> startxref 0 %%EOF 618 0 obj <</Length 510/Filter/FlateDecode/I 1363/S 38>>stream +xڬT=OA��uAR���Α% ���"����0����`r>G��)P +Z������?@(�����{��.-g;y�s;og�G%Dc)i5E���h�H�����yE/����S��i�L��t�4HC4�|��=]�{5G�W `��E7�'l9��b����v���ݺ��l[Xws ���6��`���7Ō]�#���7���w�{�mNj�e�]w���Ŀ0/�Z⧈� �8в +�� ��:������7����)��v��Yv�b�Y+���Yf.4�:m�jO�b9�퀷�^ؼ�.�h�u�-�;���kA?�5>���7��L�w�x��ײQ���<�쵮�H���klK/!��ż�h���jػG���j����`ߣ��/��*2S��vq���� +�ͫ�L^�2SyF�x8 +�Y��)��Ӱ�6���=�}@w2t.�Y��)��n� n�G��ۏ�a����IJiBƷ2Vd��_Y�sO�hҗ�͇���C7�� endstream endobj 5 0 obj <</Metadata 2 0 R/Pages 1 0 R/Type/Catalog>> endobj 6 0 obj <</CropBox[1460.81 400.0 2456.57 1156.14]/Parent 1 0 R/Contents[8 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R]/Rotate 0/BleedBox[0.0 0.0 3708.0 1728.0]/ArtBox[1460.81 400.0 2456.57 1156.14]/Group 616 0 R/MediaBox[0.0 0.0 3708.0 1728.0]/TrimBox[0.0 0.0 3708.0 1728.0]/Resources<</XObject<</Fm110 24 0 R/Fm111 28 0 R/Fm112 34 0 R/Fm113 44 0 R/Fm114 48 0 R/Fm115 52 0 R/Fm116 56 0 R/Fm117 60 0 R/Fm118 64 0 R/Fm119 68 0 R/Fm50 72 0 R/Fm51 78 0 R/Fm52 82 0 R/Fm53 86 0 R/Fm54 90 0 R/Fm55 94 0 R/Fm56 98 0 R/Fm57 102 0 R/Fm58 106 0 R/Fm59 110 0 R/Fm120 114 0 R/Fm121 118 0 R/Fm122 122 0 R/Fm123 126 0 R/Fm124 130 0 R/Fm125 134 0 R/Fm126 138 0 R/Fm60 142 0 R/Fm61 146 0 R/Fm62 150 0 R/Fm63 154 0 R/Fm64 158 0 R/Fm65 162 0 R/Fm66 164 0 R/Fm67 168 0 R/Fm68 172 0 R/Fm69 176 0 R/Fm70 180 0 R/Fm71 184 0 R/Fm10 188 0 R/Fm72 192 0 R/Fm11 196 0 R/Fm73 200 0 R/Fm12 204 0 R/Fm74 206 0 R/Fm13 210 0 R/Fm75 212 0 R/Fm14 216 0 R/Fm76 220 0 R/Fm15 224 0 R/Fm77 228 0 R/Fm16 232 0 R/Fm78 236 0 R/Fm17 240 0 R/Fm79 254 0 R/Fm18 258 0 R/Fm19 262 0 R/Fm80 266 0 R/Fm81 272 0 R/Fm20 276 0 R/Fm82 280 0 R/Fm21 284 0 R/Fm83 288 0 R/Fm22 292 0 R/Fm84 296 0 R/Fm23 300 0 R/Fm85 306 0 R/Fm24 310 0 R/Fm86 312 0 R/Fm25 316 0 R/Fm87 320 0 R/Fm26 324 0 R/Fm88 328 0 R/Fm27 332 0 R/Fm89 336 0 R/Fm28 340 0 R/Fm29 344 0 R/Fm90 348 0 R/Fm91 352 0 R/Fm30 356 0 R/Fm92 360 0 R/Fm31 364 0 R/Fm93 368 0 R/Fm32 372 0 R/Fm94 376 0 R/Fm33 378 0 R/Fm95 390 0 R/Fm34 394 0 R/Fm96 402 0 R/Fm35 408 0 R/Fm97 418 0 R/Fm36 422 0 R/Fm98 426 0 R/Fm37 430 0 R/Fm99 436 0 R/Fm38 440 0 R/Fm39 444 0 R/Fm100 451 0 R/Fm101 455 0 R/Fm102 459 0 R/Fm103 467 0 R/Fm104 471 0 R/Fm105 475 0 R/Fm106 479 0 R/Fm107 483 0 R/Fm108 487 0 R/Fm109 497 0 R/Fm40 501 0 R/Fm41 505 0 R/Fm42 509 0 R/Fm43 513 0 R/Fm0 519 0 R/Fm44 523 0 R/Fm1 527 0 R/Fm45 531 0 R/Fm2 535 0 R/Fm46 541 0 R/Fm3 545 0 R/Fm47 551 0 R/Fm4 559 0 R/Fm48 563 0 R/Fm5 571 0 R/Fm49 575 0 R/Fm6 587 0 R/Fm7 591 0 R/Fm8 595 0 R/Fm9 599 0 R>>/Shading<</Sh0 603 0 R/Sh1 606 0 R/Sh2 609 0 R/Sh3 612 0 R>>/ColorSpace<</CS0 7 0 R/CS1 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0<</Color[20224 32768 65535]/Visible true/Editable true/Dimmed false/Preview true/Printed true/Title(svg2)>>>>/ExtGState<</GS0 22 0 R/GS1 613 0 R/GS2 614 0 R/GS3 615 0 R>>>>/Type/Page>> endobj 7 0 obj [/ICCBased 19 0 R] endobj 8 0 obj <</Length 928/Filter/FlateDecode>>stream +H��Vˎ7��W��#�z^=� q�c�5h8Y�6�{��)��5���Ǡ��Z�"E�����|�fN�ּy{6��|�f{6\?�}YN�a��ya��� s��TL�B֊Yc�7�>/,O�5%�6���X��|���ݣ5o�.�Yb6�Ԇ� +.2eN���d9 2<%'?怛K����x�3���֑�'�>N#f{\���>�d� +9S�Y���lV%Nz���f�-�z�ŕ���,vt������}��!_�Qw,���wjh�նC��-֎e뷁Ə�-ilM���I�UE�a"�# ���pL��Ȝ��D� +r5�ʶ��Er���E3�V��A�p3�JJ�q,�(y7���kW�/����u�[��)�I)��d?�a��$�����cJl�MdN:1�k���R-3N��Ѯ�Chet� +�+�ݢ��-kEYC�3�Ji�J��rt` �;���\w�uN�w-1�!�Y_�%���oy�^��� /LQ �Uq���xiz��/Ͱ�Ұ�c7g���/�?ya;�Ȭ�5�sQ�\�<�%�u�iV����������� ������ܸ�{n��z��� +nD��E�K����]�� {��ǨSl�X��2~��z����n��X{��wj��s+s6dΆ�ِ9:gC�l葍�.3�{V��Z*������Ν�&YD���\�\�(a���^jGч��rz�e�& +�r˕94�]�8kA7��'���@1�o~����"����8�q������� ˥�a�Jw��b�� �6�bJ��|.-����>훶���M9VS��zz�jI�)6�x7T�[ӵ�4꼍��g�=�֟Sx�-�G�Sӑ�xK���H��Upl����$��XJK�����b�wo>��������'Ӹ{��s�ѹ����W����%C endstream endobj 9 0 obj <</Subtype/TrueType/FontDescriptor 21 0 R/LastChar 126/Widths[278 278 355 0 556 0 0 191 333 333 389 0 278 333 278 278 556 556 556 556 556 0 0 0 0 0 278 0 0 0 0 0 1015 667 667 722 722 667 611 778 722 278 0 0 556 833 722 778 667 0 722 667 611 722 667 944 0 0 0 0 0 0 469 556 0 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 584]/BaseFont/WNYQBO+ArialMT/FirstChar 32/Encoding/WinAnsiEncoding/Type/Font>> endobj 10 0 obj <</Length 820/Filter/FlateDecode>>stream +H��V�nT1��+���1��p�EֈY��R��P���p�V�J�F��9�s�8y�e��g���-�}ܠh� +D����5���п���i��@���g.P0�M%{���ԩ��!��4>{�>�9@�l/�ʆ �x{�e�m�4dp�tu ȡ�$B=ǧ�>����`c:��=�s������a��PI��5�ى3;Z8��6�P0�R#D�];�ps�k� �TCq�o!�*ݚNm�T�O���9T�i&nꍱ�_���ca�}-��3 -�s���u������4"� �ld� ++���Q_�b��s�Rs-��!XP�q�"M�d���ʒ J��Z5��4x&�%�H)�eh���k�N&" C�\�G;�ݩ���M�v%�!;���JJ�{��Z#�����-��;ݧd*Ѩ$b2)k����0ʹ^0�"W��!J��r*KCZ��u��n��䙸�4�m�pd�,��ׂ��UR3�p΅{��ٽJ�[%ݭ��VI�%�� ftŒ�_kY�ֲw��L+��0A�[˺i��/-{���~���$��g�y*�k��M\��dCK���h��;-��V�>�Y_�Yf��d|����K3��́��Qn�S�}�P��y�����Ֆ���ڭ�����j�To�Zjw��vG�]�}Sm]�Y�g�w餐N +餐N +��Hʇ��}������y�ִ\�I+j���1D�8���GQ�z3�췇����:(��#�ۇ�ˇ���_�:��� �V�+֚��Q��'��pA�,\-�e��#����t[�a:�yM�eh�0�$S.��/\#��&�����>I%� endstream endobj 11 0 obj <</Length 804/Filter/FlateDecode>>stream +H���n�F���|�C�p���I +h��,����(��}��#i.����8������r�J��j��v؞�/t��n?��b�2�����\���n�d;n6d6�l�و��������+v�u�Y�V�,"�T �5�����DX%��+[�l9ɉ��yw���TU��ȩ��\P���}��Ը��ⱇ����b^����� ���0�>G.�,��V�d��������B�4 4=Z�+��x��K.�hy6�>������}�D{���1���`����xD�({%A���$�V��E�H�FG=�Ʋ�ߒj`1T���b$',&$P8�4b �糘Z�+�ءA�6�t�4u��.�DiE��@�U%�T�)>�D�Y�)��5��R�g���=���E��)~��+�,�On[(�(�Ų�#k]�1�1�1Cx��}����XN�� +qX���unv�79� +Nn�'im�澙K�x�t,1vP#���Y{��4{Oc�����jޡ�wK�wh���ks�������>�ӯ�ד���2P|�y�]R�VF£u��v�/ ���g�uX_��lY��3J�r�O5�I5���~ +�P9!ulC�<)V^���=��>�u�S%�5 �h�NGJ�,�ʮ+�� , rX��8o�1ʴ��/�$q,y��������ǭ��N@aN��'�c��7�v��ll��N� n���n9�kA����� �Jj��S�|�N����Y9�1X��5�t$4�{����+V��'�Z��s'�f;稞S<�1�h�k��_��>� � endstream endobj 12 0 obj <</Length 742/Filter/FlateDecode>>stream +H��Mo1�����&v>�+H U{���B���'��|���TU;���y�8ɛe�2�d1��:��͠ ��ƌ�5fk1�fOT�9!�� ��y����VKޒq!�Z�Li�J�=����SA���Fs1��y0����#������Ъ�����.I���j�������������U=�H��8��/5�E� �I��-��fїJ�&���.��.��˫!�V�� �S)-"��,�,="$��y�}����+�0��t> &��u4��C +�EY�&�9j��~�q+n��o0_�S7�g�g��/�P��8�~2}��<|��|��x�ͺ��i[K'-hu��9��_�3�L� +�JdC��z�wl\X� ��[1�����T�hE�`0Tm�!�-!�.��X�y���VN=�[4.h3���-�����*�`0tp �����C��i�1fb��>�"��"��,��ܼ���۟�w%�-���H�|��Ů�1����9RMn�+Ҝt0G6.��v٠�QR��/�b�zQ3�����wHЅ�RJ���kz�L�������L�V}�JZ�v��lU�vׄ�^��Q��ׄc��gx����Η^�|���/<�|�"�K0 ��k��4kuM8j�mʖ�ڄbJaaJH�4��7D9��g����ڂ�PpUo���{]���9̞� j�q��Yɭt��3uЪ�`��J� endstream endobj 13 0 obj <</Length 764/Filter/FlateDecode>>stream +H���n�0��~�y�����W +�@��@��BY����َgS$����ί�7�糘�9�D9GAhVґ�Z8f�k $�gb +� RHb�F&ud�����M�P���s�l�$�d<���՞4�\���8<�vAg����#ݝ/BOz�Hꡪ�(�lԉN���OK�����wܧ9�H�J�8�� ��AJ(r8T!��t�Ԅ�W%�sr�9+���R�5q�I3�F�"��qb��{�9j�E�d4GZ�[0���_�:��,!���]�GM~R=n��5n�-B��M�3�qw�tF/lY'܍+�C��ʠ>G���{��+>���l�E�U�gm��o;�Z�e��Y��em�0/iS5�#�76�;[�[���v������D�a�{�8F;(E�٤!� +Z=E��ڭdc�K��OKI�g���c��T��M�aے���yF}���������0�&������)�p�����e��!�G��W��el��+hEu0�*:�q�( J�wX��k��"}�� �V��ރ%�Ч���L��o=�ƛ�-�pp��1����C&|Y/�`{������-���Y��8!su<��s1?����M�G��z���Ű,-"��5�gO����J�@�ǫ��x5^�=<�`����ڏ�_8��f �,� *�k�v�F!xj@�Ҍq��֤�`X�,߰yc�z��{8b��t��#j_K�`RTd\d��%�%�Q�R���S�oм��B6�[�dڴ���I٬����55 endstream endobj 14 0 obj <</Length 728/Filter/FlateDecode>>stream +H��ˎ�0E���������-,�@���G@�A0~�k;���hԭԙv���E��/�2� ����K�L�cB��X�GN��_�w�#MW�������z��P�q�D6�D��������5����/���bа�W����4H�\�2&�dӎ�Tԑ̓e�t��2:�H=^vQ�H�I�`R?�Y��6��#tL<" в���m�ذ�k�ѥ�P�'uKfu��wn�L;�K�ʎ�a��7-d]�b�<v��l�Qx��o�_��iBĈ�E��IGS;X�p.1�?q�6� @չ�uF�'�3�j��v;i�,[l��-NN�'d4��_ͩtdy�Չ���A������ja&��-���-�ŕ������ݟ ݟ�dg�5����;U�N?��[�������_uj�Im��� ;?H�C�@f̷y�a�`�A� {��z���|�iIi5'u�N �j������g��K�=��V�aK�k�ѣ5�N&ud�x�v(Z�bm�]0�/o�n�� �P��3��P�2��6!�� Tk3��B�� '�A(���p��Jgpz��"]=�����l����k�3^e��y�����m|����:v��#�+���Q�>U�-^|�7��� +&u@�O�f�#��捧캄�X�|��4��d��K�M���:�ԑ�RB<gaS�g��y��پإ�� ����� endstream endobj 15 0 obj <</Length 851/Filter/FlateDecode>>stream +H��VA��8����5�D��5��[,���7��L���mٖ�gH6h�vQj�T,RN�4[(�,����L�O����ϧ�����_��tw���/!E!;]����D�����û0}~r*[�R�M+����~%�<fʑ[ Y��-s���u���T�����h��m��%�.����,U��Tv�0���6�d��,�����lI� �f��Y�S����oXO�xW�"��� � ,K`�v-���|��k䤹�MVF��/,��+�a6��]t��3� ��:.�@�:L�B J,����P_�Ҁ_�3Ī�B�ՠ�@w��vu��:�z-��8��M�����������Ԝ���Q7'������0w�v�k;�Nݸ��k�V�.�m��nܹ;�;u��}ݸYP[V�s�_��~Wb�� t��S��]������6��4!�����+��X���!z�1�Z��&CqS��� N� ;�"�z˸(6ce�3��{�{�=�av�a����U���|����'v�~��;�\(�"��DA;s$��]�M���!hg(m����`?_(�����,��z{�N���z��f�c�%�o>�'C��IrYL��� +�Qb��- ;ghFK��@v ��;���e^����7�G��uTA��\��Wx����a�'G�?!Z�㜔":�V��˨�E�=�����MX��)�c+N�6�xĚ�X��1��(��}=WZؗ뤶�u� �=�4�ʧ�Y ��&WW�k���:݄�и�!�5�V;t�(��t{��'d +{GaMTQn�c����f����������P��LJ�f3���� 0�� � endstream endobj 16 0 obj <</Length 1002/Filter/FlateDecode>>stream +H��V�n�F}߯��<�E���}�V_�"@ +&��A0m)�Ŧ�y��,I�Z�P�v�>gV�L{Q��<���!:�{�BL>L��N��,qQXɞ#�;�^���V��epT^FfZ2F?IJ*�'9H�u2�(}�ht��B�tp>5"��X�T֎b�����I���$ᷓ<$7:*�O-�'q}�P��za����n, �&Cћ���@��f����I���Fp�l�G�v�oĎ��p.!��%�r��7�vƐ��Q琓�4M�bD��bJ��� ?�(lii��=1*06αf`ȧo���Wr��=8E��tJiBj�ۢ����/��S���ڪ���I�J�S�^E��x�dl8$R�|�뇵����0Jp�c���NǶ�\��Ctw�{Ig��$;H�:q�&]`��&�T�iؤ� b�4�1I���@�L��V��7�����>r��R\!���c{e��N�֛�^� Ғ�K`]f̡��x4uY�>�B&�A�˄� ���9�E]�H;v���~�h3��a�8����/���t��Ɵ�W�ɤ�%�*-]L�(�8�[њId�.��Մ�i�әR�/���+U�t�5��5 +����gT�F�'y��{l����N����0��k�.����ju�3*(N<t8�ζ���`�I�8�g�x.�lҊ3)�Ee��,���\nJq]������]�l��?��1?s�y(wb�n����?tU�9���جh��n�9�i���n��96���M�nZ�����\**�Ģ>�v��6���[[��5�VW=Ѿ�5��7�a��ۦk����i���uG褭��` +�� ��+�u�����Z��U�X�n;|��lϻT�����(�ѡ�<��e�13z}>vmS�R�Mwh�Vs�_���rS�\oZ���E�K�?������U�}x���B���ǤR}۱3�a�(u��j� �u���s�_]8��})�?�xB� +0��D8S endstream endobj 17 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 18 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 19 0 obj <</Length 2574/Filter/FlateDecode/N 3>>stream +H���yTSw�oɞ����c [���5la�QIBH�ADED���2�mtFOE�.�c��}���0��8��8G�Ng�����9�w���߽�����'����0��֠�J��b� � + �2y�.-;!���K�Z� ���^�i�"L��0���-�� �@8(��r�;q��7�L��y��&�Q��q�4�j���|�9�� +�V��)g�B�0�i�W��8#�8wթ��8_�٥ʨQ����Q�j@�&�A)/��g�>'K����t�;\�� ӥ$պF�ZUn����(4T�%)뫔�0C&�����Z��i���8��bx��E���B�;�����P���ӓ̹�A�om?�W= +�x������-������[����0����}��y)7ta�����>j���T�7���@���tܛ�`q�2��ʀ��&���6�Z�L�Ą?�_��yxg)˔z���çL�U���*�u�Sk�Se�O4?�c����.�������R� ߁��-��2�5������ ��S�>ӣV����d�`r��n~��Y�&�+`��;�A4�� ���A9��=�-�t��l�`;��~p���� �Gp| ��[`L��`<� "A�YA�+��Cb(��R�,��*�T�2B-� +�ꇆ��n���Q�t�}MA�0�al������S�x ��k�&�^���>�0|>_�'��,�G!"F$H:R��!z��F�Qd?r9�\A&�G���rQ��h������E��]�a�4z�Bg�����E#H �*B=��0H�I��p�p�0MxJ$�D1��D, V���ĭ����KĻ�Y�dE�"E��I2���E�B�G��t�4MzN�����r!YK� ���?%_&�#���(��0J:EAi��Q�(�()ӔWT6U@���P+���!�~��m���D�e�Դ�!��h�Ӧh/��']B/����ҏӿ�?a0n�hF!��X���8����܌k�c&5S�����6�l��Ia�2c�K�M�A�!�E�#��ƒ�d�V��(�k��e���l ����}�}�C�q�9 +N'��)�].�u�J�r� +��w�G� xR^���[�oƜch�g�`>b���$���*~� �:����E���b��~���,m,�-��ݖ,�Y��¬�*�6X�[ݱF�=�3�뭷Y��~dó ���t���i�z�f�6�~`{�v���.�Ng����#{�}�}��������j������c1X6���fm���;'_9 �r�:�8�q�:��˜�O:ϸ8������u��Jq���nv=���M����m����R 4 � +n�3ܣ�k�Gݯz=��[=��=�<�=G</z�^�^j��^�� ޡ�Z�Q�B�0FX'�+������t���<�u�-���{���_�_�ߘ�-G�,�}���/���Hh8�m�W�2p[����AiA��N�#8$X�?�A�KHI�{!7�<q��W�y(!46�-���a�a���a�W�� ��@�@�`l���YĎ��H,�$����(�(Y�h�7��ъ���b<b*b��<�����~�L&Y&9��%�u�M�s�s��NpJP%�M�IJlN<�DHJIڐtCj'�KwKg�C��%�N��d��|�ꙪO=��%�mL���u�v�x:H��oL��!Ȩ��C&13#s$�/Y����������=�Osbs�rn��sO�1��v�=ˏ��ϟ\�h٢���#��¼����oZ<]T�Ut}�`IÒsK��V-���Y,+>TB(�/�S�,]6*�-���W:#��7�*���e��^YDY�}U�j��AyT�`�#�D=���"�b{ų���+�ʯ:�!kJ4G�m��t�}uC�%���K7YV��fF���Y�.�=b��?S��ƕƩ�Ⱥ����y��� چ���k�5%4��m�7�lqlio�Z�lG+�Z�z���mzy��]�����?u�u�w|�"űN���wW&���e֥ﺱ*|����j��5k��yݭ���ǯg��^y�kEk�����l�D_p߶������7Dm����o꿻1m��l�{��Mś� n�L�l�<9��O��[����$�����h�՛B��������d�Ҟ@��������i�ءG���&����v��V�ǥ8��������n��R�ĩ7�������u��\�ЭD���-��������u��`�ֲK�³8���%�������y��h��Y�ѹJ�º;���.���!������ +�����z���p���g���_���X���Q���K���F���Aǿ�=ȼ�:ɹ�8ʷ�6˶�5̵�5͵�6ζ�7ϸ�9к�<Ѿ�?���D���I���N���U���\���d���l���v��ۀ�܊�ݖ�ޢ�)߯�6��D���S���c���s���� ����2��F���[���p������(��@���X���r������4���P���m��������8���W���w����)���K���m������� endstream endobj 20 0 obj <</Length 55237/Filter/FlateDecode/Length1 118559>>stream +H���wp�ǿ��ۻ�~+T �@D1E4�c�k�Ā=a$@ a 4B�`�!4ӆ6Hh��26!�)��TcLG�.l�(�1�����[_�xR������}��ww�����#����{\Z���T�/,���Vm#��z";��RFe�foT��.Z��Mn���3w����{ؘ�Y_Y� +r��f�=fPr\!�� ����:��������4_�t�jW�`{4�ҳr'=���;I�2'�J |�s*�PQ�lV�쨁� +�Z��S������Ոr��Ξ01w��#AXb���sҲ� �kO*� �^CQh�"5'u$�G����acs�����9���;�(�z}H�x��?�C�BD$�#�mQ���B��(DA �A_��,0_3�Ę�8�_<���5��5*+S����|m�-�v��̌��8&c|*�h�3c|F.�j{(c�LӶ�SqQ��D2�����6:��}�C�-hkS�:c�V�����/=�TݹkC��`+�ذ*��֛'��U�F"-��.腁���L����|�c%އm��s���(��S�.[��-� ���=��Z�t�V��/z>���o�q�k��|L�7O�nZ��9f���.���@�Nde=p:;�u+*�ȥ�+�$�&{�!�d��r�|5���4Ԗ3����r.���r%��Y������&�:�I��`ګ�j:���:�E��D����t�%ƹe5`I�O ���!x#19���Dn1�a5֡���qe��rz��{+`)g3���)r>Ҿ�٢}��U�Rg�"R۵/r��}��C�g����.0�UL�k_�|�}��G�g����>�.v�S���h_�Ծ��T�����g]��V)E�}�sD�b��%�1�K��]�oDґM������ }�����)C�!SfȜ�u68g �s��y���r��d�\6D�"W �k��uC�!Rn��4D�0D��Dn"� �;��]C����?��kQ���7D" ���JC�kM�!dž̷��C�;]1O �g������ ���z�h"��H���%")<"���H�#"�GD��"{q�p���A%�Z� +���H��aY�#"�]"2�#"#="2�#"�{Dd�GD�p�ȚY�#"c����=2��GF��V����Ⱥ�O=�'�pi�ީ�7\�. ���K���g���46D�"M � �f�HsM��!��I4DZ"� �6�H[C��!�d��7D:"/i" �N�HgC�eS1]�Wtżj�t5d�2�=2�f�ܼ�h } ��'@�� �њx��`$�����)_,Q���S��B}eF�3�z븳F�sZ�q�ʣu��2i?� ��[=S0G]�W��t�_鲿����J��������K���I}F�{Z����F���n�����3����K?�[~F�����=�3z�g���Q��=�V��H�:�,5��b:��%�S@.��ӹ��n���c�j��W�}5�W��JнG!�Ί zd����HG�#���*i�[-���SVXA�bl� z~�Г���V���J�^��Y��U���\˵�㫽?*�9�eZ��Q_��q��S�b'\�n�-��N�Q�|uZ+N��!���n&���Rs�JLM��T���Sd;��t�W�}u�W}u�W�}u�WW�r���xڽDt@Fg����T�����U�N +��ڇto!;H���?�u��a�b���l-E�cʊY1�Y)��/l��f��N�\����j,t����Oc�Ѕ�l=��9��v�Y�*��'���{��C���#��,[�V�.[�V�ͱq��`��w���j�۳�Y�����^��r�?�Wz>����ܭ|ˎ��Zñ����xSޜ'���g�w�>�/�x>_ʗ�B�������E����ʷ��c���G�q~����5~�����+ES�B�"���%���b�,��7ěb�)Ɗ��1Q�V�NLS�t1S�s�<1_,���/ +�2�B��b�x_�D��$>��v�K��g�8.N��₸"n�[�B<���L<����A;��۵�:v=��x����N��M�fv;�nm�������vw��=�N������M�͊)[��j*J�TuT�j�����j�ڨ���ꢺ�ު��~���d5\���*�(��K�9�x�C��(7�}h�[��� o������4> ��g@�w�g���s�\����vc�x�`5ڕ���Y����B$_�� ��?�?�/���4��}��}I,�'wI~!��-"" "B,�[�[,U���j���vm[;�Qm�5�F��騃v���.2O���9�g��;���������{�������<�S;P���~ܱ=��]��U�s{Q��w�ո�GP��x5��'P��y +��:��u^���;{ .��������.�@ w�6�쎺K�S����ŝ���C�!�z�PNAm�q�N��:Gq��x�G]J�Dr:�P�� +�)���IIA4��=pb:�!��+qrz�1�'M8ACY���4�'�XI#ьr(q4�&�9M�I��tMEN�t$p�f"����$N������nZs� �ӷm8����)\����eH�4�@;N�*��T�F's-:p:ס#'t:qJ��3'u;�9��х�!�rj�э�At/J/zp~��g�$zs�?G��Ydp�/�/g��Q�?]������������At��"�����C�1=�PzF�0����S!"�9P�,xc$���(f������lTD�Qcu5] 㴿��xfŃ LJ&1-�x�����LM(�09���D`�麾��:ZGc&���t��A���q���u<����7����c��a��ԙ��st�;�:�b�c�c?�rp�B�ώ��@�ELa,f�a �XK���X�TV�r`��x�+��`�bJk�&5���p�1�&kM��ƻ��i�uLo,�3���`�L6�d��M&դb3�[��t��dw�V��7�1����)���ͬ�dڿ�X�V!*RE��j�Z�V�5j�ڬ�����Xc�S_����꺺��Qwٗ�Q�zL!��S*u�t�N��e�ʦ�4�&�d�D[i'�O�8KG(����3:C�e^����ݦ;t��N����#��v�u]VݥT��<���� )��=@�ێ��˔2���J���i\&�D�(��45�M�imښ4��t5=M�`��H��q�i6��]l��f^b-_i1�������������!F2b��b�rb$1�����������O�TY�TE�TU�TM�T]�TC\TS\�/. +9�3.�[<���g��3�x&X<SK<S[<"� τ�g��3u��b��b�H1@=1@}1@� Z�@�H�X�D#h*�4ĉ�����-�� b�D1@������� Y�F�"h+H����:0�Nt�; ŝ��t!����U��&�vZ{�=��^Bko���К!��Z� ������@a3S�$lf ����!��Pas��9\��6G�#��Q��has����+6모���YuQ����Ma�3��������JG����t^�z���d�}O��zN�h�&]��M7�9\�t�Y���d��ihbL�I0�L�i�;����̦�f�5�� �-��c�B��o��+��� �������<S=�c�z��<��<ة�����z[��|L������~�~�����o�Sd���Ԣ3��VRM/�f�T3K�Y%UnI5[*;4�y\T�'��a���z;{��Dv��f?�A)�:��@Rx�3<�F�.��sL3_�8�J����c��n�y��4f��V���2!M����W�,� ����'V4���it7W6����W>�r2G����#פ�����Ӎ/�;�Y�e��q���7��Hu����U�_+:����v#������|{>O�G�G���6϶�_����j�l�,{�Rdwh/{���B?��D�lK���%��]� +��mQ�q�}�^��9�����V@�E�����k���5dw���Wo �U�Z�y����['��x� �v;����T^��K�.�0e�����P��_�*U�U�Q�?��r{���Z�CB���Dԍ�W?*�A�F���4�m�<�EBbR�V��ۤ�Mm�>�C�N�ӻt�ֽG�^��d���f�<d���#F�=&g��^����7&O�:m����rg�y3o���Z����K�.[�b�wVc����oظi���n۾c�.�{��|�w���>���8z��''p��S�}���3gϝ�p�K\�S��+_]ŵ�����_o��7�o4�o՛�:�Vhw�{���@��F��j����w��ԫ�W���Ȗ�OO~�M�d�e�B��������?�_0-`M����N?��������������s�3�����y����������]�HW�+��s%�2\�\�\�\�����������tw�;ܽ�c�h������S���x�<ɞ��A��@�@��n�תdU�jZAV�m�Z��t+�ʳXK���nk��ѿ/ਮ+�sw߹g���u �]Ih$�I��1�8Q�TL�1���xBL���Xt�� +QDコЫ�e�Ղ�Z�@`ڮ�\ F�L�㼙��}w��;���s�s��������������k�냴�iCZE5.J�@�@�@��������;����U?��� +V7��k�O�f�vK=�S�)�4�4T{��� ≹�9ӜcL1����*��f�D}��#3�AS�/���l{����G��uG�Kj�َ-���+�J��H��R5����Բ4�܄�:jQ/����f�[�Zn=�PM-6���Z��~u���Zf=�\g�sE=�#��EM�'���qeij}�kj�E �~��u��8{Uu���P�]K��T�u��i��?�J�m���jGs����h�`q𨡽&x��mY���\���?�v�?��o�����o�[��O��n�?��>#��֚�5����2ߐ�Yz��n=�� (�*�ط��4�7�?�dYI�7�[��]Z[_����[ߥ{;{�z�=�=�<=<�=m=�O�'��Aw������V[�>�����ުg��K�k���]ܯ���I�D��z�o�o�wg���a�݂s�9[���t�:�\9e+3�Էε2�#�kB=5��Z�F����n�V{*��^T�]+�3�X��֨�Uk�Ku������#���>���n�:�{k��ʚ��n���w*{Z{��{��;���������`�E0 +F�zA�N*c`��y��o�8�t$L���L������L����!T�#(�U:����6�\�G�8���cpnA8'���ߡ��Y�����p�0��=���@���M��0Hg�¿`0|C�6����� �Oa+,���d�(�g�혇3Q� �h@��8�q6*�FB�58��|\��-hE�6,�E���b\�K���r\�+q��5���z܀�)��q87�f܂[q�`;�!6�P\�p����#1 +'�n܃{�K� +��h����c�1~��0�`<�q?�g��A):01 �!<�G�(��x�b2:х'�O�i<�ga6�昂�pn�9G�iM�I4�ri +M�i4�fPͤYF2��lXJsh.ͣ��� +h!�"ZLKh)���h-���V�jZCki�� ��6��ߧʹ���6�N;h'��ݴ��җ�}M��>�O� ��t���1:N'�$���*s���� a��adH� �a5���t���y�@�]&7y� +y��|t��Q)]�t�n�m��e䧻t���<^��x /�[��F2T��p!#e���12V��&2^ڥC&�D���U��Թ�D��UuM���ꆺ�n�۶om�mOlOm�l�m[�Ve��Մ@��T&K�t�f��L�����TQ*Zf��s9R������̑c�89^N��$9Y��)r��&��pJd\�3�,���k�v�yr�\ �BY(��p .��p��%r�,���r�B����j�F����z�An���f�bUc���xeW��U�j���S�T3��<�<�����kܕ�qw��y0�ο�_������˙�;�=���?�����+�'��{qo�c��RT�j��TK�J�V��*S~uW�SmT�j�yO�\��SyO���3y��l��syA�)�b�+�>>@V�C|��� >�g�[`��X���4�I��!HH��"��R(}� DC�H��0."���Q��E������MD����ht�H�6�!�b[�,��%���"E����zE��G]Q�B�W��H-E+�Z��6"C���+�����b��D|*����p�-F���H1J��#b�����1>�'�$�)>�g�,���|�/�%��n���r ��*_�R��7�&���\�~�����+�>?�J~ȏ�[~�O�)?��"G�5��f�sWF�eDs�,hF�k1Y��Bia��b�(��hl�M�x�n8,!��0^&�5�i������|� +k'97!!���ؗ�}��B �S����A)-&]�R�1�L�mJ�B��{�ľ\KDo$�L���cf�}����9�}ν��w����S �@�a8V��D�(�JS*K�<U���B�d���(�*:EP$U�*EU�Ec%���T�^��I��6�R�K�P=�O 0+SC��FԘ�PSjFͩ��V�Z���Uj�ps��tj�E�Q[jG��u�Nԙ�PW�Fݩ��^���tw:K��ԇ�R?�#�SJ�4�Q" �!� �a:��h8��7i$���4���8J��4A,��b�"���b;�r�B?��b��P|$V�5b��3Mԏ�c����[�s�N���F�I�7cm���#��w�{r��-�{.���r�J�aX'7�/�D�ȭr��F��!yD���yV����yEސ��]yO����-�G���zX�/�Wz���\�T��|����\�T�| ҐBJ��$b�Ɔ���)W7ǖ��`[�]�'��6��@�I8��Y'�T���8��<\��0�{��q�d]-��ZL��pnƿ�6܁�p7����l��I̐����n��K�&^C��������=|�*�J��ҧʫ� w�᪒�TUTU�j�YG�R��Rc�������j�Z�WU��j�ک����:�Ϊ�ꪺ��z���uՇ���[����G�RK�y>��JP�j���[�R�i���2V+� +�"�*VU+ڊ�b�zV���ji���[���Vo���`%ZC�$k��:�9�� ��id���o�i���DS�f1�L�Ԧe:��f�Y�,i���`�q����ؑ�x��������>�3�i}F�����O�g}N\7�M�Ӈ`+�U�S��X�;�;� +| ��N�w��̖�;��Cu1��a�C���do�Mv7��| �и� -�W����1���w�t ]�J�NZ��1_���6���R� ,6��%�Rc�1�fL֤��x5Q��o�.�[���z�ޯ���{qD��qqB���������"K\�%qY\W�5���� �ciK����� L���i'�]�������v�;0k��1o���3��0�3ţp4���e%�2�o�d��$�e�g3���i���f���겆|Y�Ț���-c��l|����[x�0�%�Ԡg�dNCU�:\��>y��-��قI��x��b�+3�հ��Q5���:S�PũF�Q���+�lp�����>:��i�0U����T9O.�#�1K� �(�]��[��^�^;��f���n���m�]��5�kc] ��v{����^[��k;�u�g�]^�A���B�>��k�^�#��vY������8{�9�ڸ"�9��vD�D�� +��r���3)gr�4����DZ�6��o�����|ڤ�q+��>s\�\�*��$9�Y$?��sB $/4������؝�oO�w�i���y����� N� +'R�U�(�$N$ŕZ�H��D:�u�ˉ�%R�)Z�HBxbA"�$ҹ(���ԈME��D~�D%282�I�N�Dʮw�$�$�.Hd������q"M�-���g����O$�ʛ^��_bc�z�����+�+�+��9}�O�L�|ʇ>�>�YP�5��r3��\ؐ5�V�wު��)��I�oe����ȷ2sC� +� +�'����ϟ�g������oSomo%OkO+O�������'�� ��� ��;n�������*w�{�{�{'����[�����+���a��˫��d���RvHP������i����^~,Vs?�a��翐����_��M9~r�����^�����j@\� �Ww��W��3��s��;_0�q�{am��Px4���w�m���m������_��C����Ȣ��0f�xXWa,���6�g������=X��=X���܅�� �}ȆO`3|i�%�A��p�a8�p�� �C N�)� +ހ;�~��p�� ��\H�a0ބ0Ra���0��xH� 0�ß`�o��;�c�Sa:��˂��m�ߜ�o�w��D��������������z��cw{�N��c<�y�q��L�EL��C��ۉ��4���<'��CBJp��|Z@i-�%dȏ,yi)-s�9�i9�����V�ZK�h=m����6��Jۜ�5K�h;�����v�����K�qL%�#��S����HIh<��t����t��(����L�����1 +�PJNat�N8?�_�c� �S���t�N�i:Cg�����")���"]��t����^JMi(-�s�:�蚌�q2^&�D�$�e�L�i2]f�L�%��H�#s��2O��Y(�d�,���L�� +Y)�<m=�d�����N�ˆ8;6�f�"[e�l���t��Sv�n�#{e��rP��sX��Q9&�儜�SrZ��Y9'��\�K�O���������+��p�����\�kr]n�M�%��ܕ{r_�Cy$��<�g�\^��8�_�ky#o�]�t�n�m�#��|�O�Y��W�&����_�[b$V��_u��5�z�UQU�Q?��U��W�HhBM��5@5�iR � �����)4�Mll����C��>�O�S��>�/�K�W�7�w��O�/�oo�7��������ǚJ#5J�5��Ѵ�NӻQ�A3j&ͬY4�f��Csj.ͭy4����Z@�?ZHk-�Ŵ��ВZJKk-�崼VЊZI+k��մ��КZKkk�����6І�Hkm�ʹ��Ж�J[km����vЎ�I;k��ݴ��О�K{k�����Ё:�&�A:X��P��u���Q:Z��X��u�N�I:Y��T���u�s�y�3��:Kg뜸ϋk�]��t�.ѥ�L�;�����sù�+t���պF��:]�t�n�ͺE��6ݮ;lRl��j��0n#l +�Ҧ��6�F��6�g�g�z����J���;J�ʢʣ*�*� +����j�j����{f� ����Z�Z� ڢڣ:�:�����z�z����c�bc�b�cFbFc�b�۴6�Mo3،6��l����W��}c�ڬ6�͎ ��I��)��i����Y��9��y��E�x>��u��=}��t�>�g�B��;������o��X�C�/;L��=첰2ذed�^�q|����qb�L�I(3e� N����C8��s�s�����R6NE�9��8�SsN��8=c �b�cVbVc �b�c6b6c�b�cvbvc�b������a�Q�q��9lN{���;��~�q�3pF�ę9g�l��spN�Źq��p^��������"\��qq.�%���2\��qy���W�*\��qu��5���:\��q}n� �7�&ܔ�qsn�-���6ܖ�q{���w�.ܕ�qw��=���>8�}���<��`�Cy�8�#y����.�.� +��?\�u��M��m��]��}<�C<�c<�S<�s��K��k��[��{|�G|�g|�W|�w��O���<�M�&�oĸ��Ĉ�7� t��A�kC�ݤn��g<�5b���g����7�M��g����pS�)�T&�Id��h�� ���d&Ą��&̄��¤4�|b�L�ImҘ�&�Io2��n��h2��&��j���&��ir��&��k��nj��0�?��)l�����)nJ�����lJ��>��g|~>��2��)gʛ +���d*�*���f�����ej�|��>_���yl^�������⺢�|��{�����Wۀ���n0��ll�;��qL]tB�D���@�B��J�".t�qVb<ɐqǙI2ag��};��wf�-�����W�*\�������\�kpM�ŵ���z\�pCnč� 7�O�S��?�/�7�ܒ[qkn�m�K����o����-w�Nܙ�pW��~ܝ{pO�Ž��e���y��A<���P�<�yq0��Q<�Cx�r��q<�'�D�ēy +O�i<�g�L�ʼn�Y�HW�&~�]zHO�%�����'�e��A2X��P&2\e�I���Q2ZBd��J���q2^&�D�$�e�L�i2]f�L�%�e�̕y2_�BY$�e�,�e�\V�JY%�e���u�^6�F�$�Y�H�l�m�]vH��(����]�L�̾,���l�����\4�� LCh( ��N�4��(�F�(M!4�B)���8Oh"M��4���4�N3h&͢�4���<�Oh!-�Ŵ���2ZN+h%��մ���:ZOh#m�p�L[(���6�N;(�vRES��.�M{h/���t��(�R��t���1:N'�$���t��R"%�9:O�"]��t���5�NɔB7�&ݢ��{��~��t���=�O�!=����LO�Y����9u^]�_\�ʵ\�ծq7���K��+��M�fp3����n7�����z�^��%z�^���z�^�W�5z�^��� z�ޤ��f�EG�z�ޮw�H�SG�h�c�.�[��{�>�_�q:^� ��>�����>�O���>���:Q'�s����/�K������k��N�)����o�����������ꢺ������~�����|���#|���q>�'�k�u+�J���+ȉQ���.c-�!�c1��:�ص�:v}��]O�R�y���nl7��� �����Re�fm����^��t��3I���AI���&�&vb>�TE��ʪ� +Uaj��Mʟ��s�;=�X�ͼ�#x+o����#�]�nk����g��XqV�u�J�Y��D+�:g��.X�K�e�uՔ7L}��44���k�����imژ����c�z��inZ�����aj�Z&�D�k���怉3]M7�g������l����vA���c����&�7A&��7��v3Ƅ�E�bvq��]�.e�m�6��s��3)憹in9��N&'s�;��N����i�t�S�d��Tr*;U��&ɜ3����S����w +9�M5��S�y�y�)�u�u�9� +��)h��߱o�w���7���0p�/���!�!=2xd&dFdE6dG�D.��W�*r#�zO��7�'�����Q�Q�QEQ�Q%Q +o�4���ş���r(� +xQ �QU�>>@5|���1��j�j����� ��|���9�@34G��h��N��0x�8�*� c��]�"��/��X��xk�&b��c�{����J{����Y%0�;����K���t�Ze�aV��줥%59��������������ǚ"�$���|*i>��5�M�n�I>��=��s����Z� ��K|��� ڡ=:�[tD'tFtE7��;z�'z�7��/���1�1��>����0!��_�1!5�e�5�030�0s0�ݱ˱+���M�fl�wא�HV +Q�Fb���{��q�q��A�p�qGq�p�pgp�HJs����w�����x������t������,o��Rw�_��VlK���w������]MP�V����g�� �'tV�U��O�S��t5���_�+y��Yw妺;�j�Z�V����jC��y�6�*���j��PYR�UV��o�*�ʁ*�����ڡr���+���U��q!���ʭ�`�_��訊+>wf�n,��By�GR�fEB�!�a�fh�d���IIhU�bAI��á�K�|h�/i� �6���!��m �䈤=iE���6!f���;���̝ys�w���(~��]����i�4��,ʦ:�}� +�Jc�9ʡ��S9���KW��4� 1�~��g�μl�'���=?KCu���1�¨W���.�� |� �~�T�(h�Jif���� ^��'����j~�(j�`Tؓ ��D�m���2��S> �OG,.��f�|��bZ��*�6o�q�݅���L����S�8��:iK�C`��g��9"x��'�\d~\��vp���Sw��5��>�e�i�o��Hp���`GhM�.��,3��fr�Z���&Gه�P��_�]`y.��x��6��.6�)@i< ��="�i�:Xq(y�Wy�|q2L���oa��|5���ň��@�}�K��|�l�ďy�;��x?���%7��!�ȗ�M��s�@x$�=���:��J*=BO�{�N�������*���V�=d�M`� B�TNߥZ�����n�v:E�q����K�QY�2K>"�ĭr��r,{3��� 3�|QX�8�)|�+k+Ϡt�� ���`�lZ���6�/i?��r�.�'�/�N79C����(Ω?�[�Nށr���#RD&�D���a�z��8/�e�4�s��MyAٯ��S�l�I,�ė{n��:c��ضXs��<�|ee���Q��>����ƽ��!�KG��t 3��RZ$���b�����vz����|d��q�/��~��kp��̷���B�E1H9b��'jģb��&qB�]\��/QL�,G�L�-�r��/��]T)Ǖ��dۃ��mQ�?�߲�g���������M +��o w��7e�9�N��!�/��I~|�ϪES�~j䫨��V��&�I4�u�l`���'�2*�Yl1�2�m�| �B��*_��N���mZͯ�����9�(�nq�}(:�.w���dJ��|�� �EJ���NvP,�U��3�|3i#x<�^B^��<��0q���+>�~����8nd?�j�9w<���Q1FyȖcN�uR�C��qy����\(�a�)�'vخ�3��;d2;+~ �;�AQ&�� +�E�BV_j�c+��<M���`Y��[�ȓ.<� �T!�FtA�O��%̙^̶�y��'$T���,v���*y�-R�c�x���5����"����y�֛�x�~v'���[�sȝ���4] �%`z���ྐྵ-ѿ@;�R����)�c�|;�ds����.d��8�|�ă�3�0U������%Xo'+7�����՚?�^�{Ѯ��� t�]�jx�������g��h-C����7��>��oN*���o��w�ػ=��1w}#;k���RG�y�Ȍ��ԔÇ 2�9h��G��~Iv�"'���a��2[�:�cյ"}��@bC ǻ��=�������v����$�Z� +=��_S��M���� �M%ZH5��岸�9.��ra��O�-Q +�~#�X����uM��}��&ٓ˚��C��Hі4QJ���/h�,i��2ҵ����X"��6f��%.Wȓk�o���`Z�1���|�i�ϰǧQ�հ jSn��1�d�nG�V� +"���Ƽ%F���~U�ˇ����j3��O�S����W�_��j]�(�w`,� +�����Kg���7��5`J�Z������h~�%�X5�i�Z��8פ��X�jNO����X�_�+��˘���"%#��1�b�oӼjZ�Ɠ��� l��A=�c@_��W���-���Y�,Ҧ���P�%A kʷ�j�0�� F��H���֝V�5�P����_g`�v��ĖHO�-�y�Y�œ^�A[6�n#'Ǣ����Ƣx}�'��(״%N��f�H�`,�w�,o�z�T������d43�Xw��aK�v[3|��Y{[�;<���-w6�H���r��-0h��P�t�Kgi��s��_�`[Z�P�����z$c�/(2x��3D\RV�v�*A�!���I]�'���R�3<��?��r����f�5*��jX��F�;�>)��`�C0[ei�\]ONЁj�N�y��2�R}�����7j��[�P��d>�����SM��#����� ��z@SzX�D͵4թ��?�/�o'jِa6��U- (8+nҨ���K���[������fN�.Y@r_e����!�0N��b�팹���u��6u��s�}8�s��I��Ic��?��Y.k�GV7� +S +�:Da0 DS���<��4�����I�&� mHU��V�L�n��Mu������}Ǧt����s�9�����=��Cʻ��.��8L���|���>8SpV|��T�$��I]��Dɸ��ą��KӨ�t���T}e4�����g\(�x �`��� I���#���8��jZ�Ӡb�Π��-]����aL5��X �9%�p\G�y#y-���FΈ-������ +�u57N�U���g�@tg��9.���荁��,J�y�A�g�55G��F����Fb��N�5n��9^#X7+q�1����AT�LI�%5��4ԥ1P% Vl�4�"a��v��U��ha�_"�07�ݷn��^�lϿ3�����P+��R���<��|�-�}���_�&rܺ�n��?�31��ڛ�����w���{(ޖ��Do�5�s5�V�)�s���2r����9��p��)�0��a�?ɻ�b��qf���"��$o�:rb��0��q�.9���n�C@�y��Rz'Z���~�`ꑱ����ɖ����ȓ'tk���nh��R�h����S݅���F"�,Ia�0v���VybҍB{�&��:��"�tk��#�� ��I��je����l_�Q�~�-���jq���f�V�b���+��bs��,��克V�Dµo�I������fN�,V���IG���fo�Aa�Ds��}�T<�A��E�a��Y#0%b�à��;X^U[���Ah!5��BG; &]n�[ ��x2�R�C T\n/q:D��E���'�@��FwJ����6mY�~z<wt���I���ᶥ��̻��۟ߙ[���&��~����#kd��\~k�m�m˖Y3k߮���J�i�7�~�{�s�q>ήh.�̿�_�-N�V1�o �N$pX�!��������xOoga�����*���+��}�Yy����5���S��V���PCi��ш��b��F�|�W��(.�.�۠������M���:)���!�����`glpy�y|[f���~��C��-7�}_y�s�i>�O�Q�ٌ�4�a�O�n�����w&��Jcz�l�4>խ�Dz���������8�MH�����II�ټ�3�c���̇�%����g���wKWf��*��J�[G�(k�Kz��e��I�d4Y�T1�2&���6 ��q����Y�])���v��K� #D}���1�M1��f�M�+�8�x6渚��,��Z)��C���R��[$��v�&,A4$�n��H �D2���|ێp��_lߵ�s��t��n��'��ZN?��`�mo��c��g����}�ƥ��W�QI���$���b=P �X��HL���u�Î��,�C�N�"x��9x��*���c@9C�H�),~*�Np�B߫���٧Ὃp����!����d3G28�lBd��&x�ͯ�M����(�)�����~�"҂�O3�� ��=���Z��jU�'Ə����o���,���t�I�e9��Y��]s� Dj��H�0�F���"�ِx9$q7� �����;jY�-�*dž�v5��ȸ��N�xty�G��s�q�s7xE��|��=EX>֥y^^px�f7$��n���a�6*��z��dib}(�.�(�z؊ꪙ���fA��4]/�4ft�,�L%e=��LL��*��9!�<��n������� .+d���8D��a���h�kɣ�ǜݞ���W9Wy���`� ��otn��N��[��!��}�� +�X�X��u���F��12R����~�R�z}����e�95�s�O-އ��}(�R��Z��Nm�X�岁s�M�����bфBM��w�Ա�c[���z���gGFG4Н%S�ǝǟ/�])�˿?q�|�|�����pnf�K�+���w�v:��8V_l�w�}��5�q�(�(`��� +z�� a� �W�4��+��Wj�vY�0s}a��}�*ዝ�'�<�$�����}*�Z���t�cA�U5Y�U�M�(:�c��Ģ���������@ï�u��6 �l��y�{��dT���n{͌J�Ri��FJ��u^FQ7����Qo�F�&�ܛ'�t��n_U�dl�h�\`��BE���ɋQF^����e����8�8������ݽ�;<��c�;�('�) ��w�N%ƪ�Ҏ +�M�Q4����Tc��X5�P~�F;��Zk3�4����Q�8�5-����݃�t`w��}�}�}���>�Gr8�1�n����<�EGY�s�{��g��4TD�,G�����7�g:�͘L�:����q�}�e��0G�I��:i�u�cS�N�y�]�ݴn��\IS<�W�)�oF ��W3X���(&���q;=����0�=��S�����ۻ���~2�Æ�diwv��:�#[���(��UL��ud3aI/ �t��t��AW�Py����x`��%YAjJ��"����b��~��,n�I �a��cHм� +O +ȸ�#�y|�+MqO�Ї7�>�۷��::f���z���=�H������wο�c�d���=6<%�F '��t��.��Us$��C�l�l>�%����Yr�BzW����Q+��Z.U���9"�ŐD�~��K��ҟ�Gj��"ϔ���L{�}c�(���Z窔嗝��7�;ӎ�Ne�%�� +���,:|@v���%)�uQ�N%�z���eʎ���:��.��j�Рڤa�)���O�� �n\x&�&���������S�����˰"լ����n ߡ�9��ބ9!T���xC�;�,�pB���1R# +�Z�3}o��_��Zx��!6to_�������KW�W5�ſ�������r�����v��k+���ծ�5gV-?8���O.�݃E�A Jl��OuTJ���tE��3�埱�|I<#p���~�a��22"���G�� J�C��,tAW-l7�>�qݛ>�2���Db2�02��]���џ/��u'QvNAD!*aL�@��Y:�tY�q����3�p��K�rO1t���E�HĠ���9,��QW��e�=H����Q�&cB�a��"����NI#RcYDҵ���너��1�ݟ���pr���1�7�L~��ҥ�x>^~�9�d���a��u��P����!�B]e9�f��L�Y��\T���M�\�ܥ"�X|��)�����Į_r@��u��-���*п� +֯�)~f��δ�q=�/ �Ι-�n +YS2CX3g{�P�{j�$3�y�����Xt�kufuh�{��>����n���h�V�̊�税YlY��2��BJ��J�<��Y2�����sӰ��>����(���͝� X�&[u�R� +:ق���Fy������� �7��i��j>�O��h�&�!z���p��|� +��Iq�P�Ȩ���e��i�f����0Ck�p^�TG�d�P�9ذ�2�g�`-�ȟ��b@��4L=C���v��c������=��^�/�͏�o;�~?�ڭ[x�#���Uv����|�Y|g|��|�&|�CxW��ߝ�x�b�Oi*/|u�������yKk?��K\|hi՛�+ZmiYO�ay�1����x��G���^_����w��{�Sl��+����jvV*����%�תw���{���a��Į����,�����;GCF��Yc�0�=s�9W��Ԙj�/(;�6� +w���<PD�QR�Ԋ����C����J��Z�b�X����m/ ��0�n3�F$'<"C�%�{��JNe�q���3|7Y���I�R'��^,"�E�!�h��,*co���L��n�u�L� |.1m��o�&��f�Q ��GJDK*���p�*�U\�o)����e�����.�j(C���o��o�WP�y�����-\R�����I���������0~&����!�I�'��<� �ji�'��~S��ǟ%K��x���*�%Xʎ�('� l2�28˖���@���̯q�ȭ77�[��"��bf\Yپ�ٜ��eg�B������|!�K�%��<h��t�;�L�<�y�D�������LM�������_$�^��)�O5�U���FEb4FY��N�ȉ��W�A�U9ӗ����*`��?��(�� �$:�k���H��V�v���8+ `^c��n^����G����k���h��߃��R8w^iS{�6���Zɒi�{[�\o�g�� +g�o�9��df�=�z��u��º�E/O�\=�7n#T�^t�k%Y�%8A���}�/�-��+�z�Co#j����I���tʗ�?�;އ^���{�L6?ޞ�Q�g�QgEr4�������8����o���[�$�Dnũ�YZt�1�i���bC�MK�IL��5+�m.�T��;}����I�������u�サ���ծV�lɒ%�bK�a��4;!a���)�6 +N��?�<:ih'�L!�>����L(P�3�����f��dR`�d¤@C�%L�����ޕ��?t*�{�� +�s������ĒE'����hX�\~�Ʉ`�(���q�$.XYh'��`x���n�����ze�1�1�4�p��������������/�����9Ьg�Mq��E�!��O�b�v+`OT�rwΞb��ԭ��# +.{q9��^^T^�k���K�CR�<n�q�])���B�%n-����Yr5�3V��BL�*Q����H4B<�}���( �����pP�%B�,\�,YL�'�k5α + ��Ac��gҪ���*�ʭ�?o�<����~���Z�g;_����'�u;�I��:����8����������LL@�;�>�<��v�GJP*�HY"oBETf�7��Aa���Q����?��7��-�|�y���Φo�Ӛj���ʿw��#[��ȟ�5�@�s�nG�f]�1�����v�ǰ�!a0k���z~�*wܗoB�6���Ƹ?���@�\�s���%|2r��mb~�{�q�z� �~��X(VLڪ�ô��Jd�$��7��|��N肕�x1NU%+MA����8E=�#��7�U��O�O���dyG���L+�������h�F#w98ϔoj&g������@A�'V�ʢe�e�Ǘ2�ũ�M���dD�[��_d��CE�W㤤��T��P���ײP��b?n4 ��:0�����У$,��|��� +�? �%���O;���⦏�a�1��z��{k`ݵ��g.}�ܳ��Y�� ~��I�b���_�^����5��o{۹���4��xe�ӌ���E�QHx��� �(!*�6e����x�o� +l�qq�a�/�'�/סa��nձ�T�K��h��� NI�{L �Z�֦-�����x��#�{��.E����)�09(IxW��� �688�F_'-�f���F��04�jȂ��;�z�H�u�]wg�^�q����>~��W$�=�p�H���D�Ș��� j����E�ЫM�St IAn>��U],�|v�Q���Bv.ۆ��xvv�'�ǀ/��}@�r�˖7�� +)ar��b]�� �F#cC!F ��>L��%DMF��N�/����m�s�@8�sQ�u�*�4H>�G�� ?�!�<1��Bf<ڐB����x�B�`@�.����ǒ�'x&ԫ�z��z����|T��>�)�@L��#�Z�dčd +��>_ IG�'N �%J��O�X��9e��<�� +|�*�.�`� ���F�����I@Y�ʙ����T�?_$���C���a��o���Cd +B��Z�=���E��24��~�L��8�c�*D�4DbT|����(��7�7�/L��$}��*>�=��ӨJ$�����d�p�l�F�^]�L^6ɛh��S��_%�$B}�V-Q0�����A�WQ��u�`�������B��'���؊ϫ��o���R�*<!� M�~(D�R�d����&uH�,��7����P�!u����gs�E Ƙ�((�I�=�% l�coJ�� ��a��� �Nr�1g����g��� +���.?쳲�$+���9-��N���pwr�My3h�,}��K��Ӱ�+p`3�ĭ�%�S�b,r�qJ����z�+�ȵ����a[���ٌ�O���҈�T���(�?S� )��zEB�2�� +�"��m��$�Y;��9g��T��6u�ڡJ*��a[��3� ގ�7���J���� } �Ab�E~Bn�D��3o�j��\S��&��~j��B�G�ff�]뚵Yy\i����R0k]�ݭভVde=�"v=�Wf�5�`3�jOq���xL���a6Ap`�;xgā[-�����`�| �O���b�]�)��!#��c1Q4ĐVc�p��]�#1b������a;�PZ�}��V`qQKxqdA���O�/�4!���-N�@�@b� ��8��w�`q@�ٱXz�q���z�@GiYAr&W@�FW�0uj$M���Z��o�J���2$ Z����cx�����ǝ���8~�#[y��O�)�.nǿt^��Sg�������8��X/V_pιjF���P��'=�N��1�Z����0(q�l0E75�؛�w4jF1��F�������Kǎ1>���xrXb +�� + k\�$@�� +�}C�� ���|�����譭��5k��=�X_�!gtt���jя�5V9���,D�8<b[AU�������i{9R>9�*�����Λ����`���z���z�Ue�:^�1�?���ӽ��>o�w�ܞFR�]6�������l��)}�����������\��߀ig���m����}�ι���;��v�q�$��9���6TR�`i���*TL�[�Zش�v��RU�X[(!�I0���CbU5X�)b0�+q�g��Ist��9ܻ���߇�x4M�QЫp8�us��J"k +���}�J���>�u��4E惖�G�]r�ťr�d�c,9��\>]�������������w�+Ȕ6��$�Fi�S�^[.��4_n�<)�nU���~Q%'f�y[�)�M�Bh�sC� �s��lW��Z5p�'��^���\�w}�z8EhlE��Ρ����O�����G�v�^�?�9:�Ҿ9�,Գ'���֥ �蜍�u���[+\c�l����N2��37 }�cÎ/��3�� �O�sՏҳ\�O�^���^�Z2aA��R��pE�-�ra��x��8KQ�p����\ĉ��A��dEq��ǚ��HGlz�Г��ت�g���Ӟ^ss�i��U�]�N��v*��/E����O�gKN-��*+ XIdQT2�3� ��KJo���U1���c(�zY��3c�i!��� �勁�yDlTf��We�cQY�`���U��ch̡X��ql�*� ����x��_�UQu���ED�ٕirKrk��l���(I(\�qw�LM"�Kᙐ��&o�e��ˊ��瓽�o(��|�0�hD>��P�h��UH��4J�`����ʯ{�b��ʖ ����q˚��ܜT�\P>dP���9 �@�%'��綮9�Dג��U������?>x{;{R9r��V���m[���ه��o�O�կ,������D|�R-{��fE�G/Ȼ^}a��lveb��M/��p� ���$����%����e�A���[:���Ј��8*��kv�C|��.ǖ��I�^� +EM~�x���w2��JȠH� �a-<9l�5\Y���,T�ґ#wn�������z�Om��,d��y�K`���L�g0��M���5�%RXħ>�������g؉{��`�/�!/ +y���ǻֻ�K{%+�F�t;t�.ӡ���}:t3�HQ�C�}:t� b��a*?ҩ��;�(�G�RTe���V���P4�����?��pg�ٙG�^`O�{�J���W�t��{�����>�<�G���=RL}��"�w��M��"�f�|�^�X�f����Ԇ�*;�aQ��c�X/���|��W<#~%V��.3���E&8! ��d{;"8�o�!ij�g)�f=���z� ɤ�G��'��H�x�������������1��b�X\id/{���e!��|���b"Y7��� +��$�1��H��� �TLHG)V�G����V�EH>��j�L�E�)۱(���<�Ex�ع�h뤚�4������J?ٶ������~�rm"��Ŷ���%u��Q�ZNo6gQ3�Y�Ls!�@[�/0�7�7�R#�������6�l���1��/.6V�+ĕ�v�����I�:[ ;����aO�� �@>�\�|7 Q�dE=��nx}�i��c)3DFQ��h?e@��X�!�x�L�烆�1S!h�Pꚨ(!U"o�����`J,m��"<�aN��k�|��:M@�%�ـæX4o B���h��Ec��;� N��c��W�{�r�$~��O+]:��9�N�!�CCpj*W�`�Xl�`Bw�����ź(V�m�n-��y�De�:�Y�V�s!����~ �����F��W[X}������)������k7��_��/n����%���P�̻=��(��G-s�`�e{rN��a��,��@�zmf�� q��V�2� +_F}.�ר� +����L�n����o�2��Q ������#���B�~����:|�3�k +�^���A��,j�p���̣��r �W�L'$���9T�{�E�g�_c��G�Ղ��DA��R�.)���f��jJݬ����{V���)mO�����!�HCJ�2N���o�'��C���ƕ��EA���S]w̄c)&��&U���LM�k�1����oM|�_�z��Kmw��������$#F�D�|�a��4�&����]�#��ev�����L�"�u��B�2����\�,�9E��\M����5Ou��" +827=�n��+���e�(`,%�S2u_U'�������b�����B��(Z��� ^l�q��T+d�[�Zl�d�V��]p�r͖����ܙ�E�|dn��/�bfm&z������Ü��I���D2Ήl���ܜkh}��ց�I���jn�8�w����tw���'�|~ �`�d�� ���P��7��Ԥa0C�PhC;�L��B !�IH�xhq�)��)d&N(Lc�$���7u���V<�w������=>�/䞾�VO�{{��z}iRx$�ߟ���I4�A��'E(�hC���*�C��ghR�~E� +G��C�?�A2���������f�o�^��U�vn�eo�ڿ�d��� +�ڊ���=�~ݯGw�W��gή9�G�\��T*;u��Z>klS�w{�L��J�dv�����N��轤�M�� +�f�0���"{���n�4�L�4��1��l2�}q5�Uk����DL�O��։Ս��3w�֭�������e��9l�y�R�Tg�-{�Xg_c� Jn��9�cAq� �]��c���$���L��i���t�~?�Ok�6�P<dp�\�JO~�����8eCӁIbn�m��L\��bC`��%�{V��R�40a/� +��Bf|{*�NU��8���sgL���U��-���]����I4��D&�T~!�@$�2~ �$�B�.����͙��+ZS�п~v��ٶSon�v�ޞ���ܗ>~n��Ч��W����箋���� �d��^����(��)b���C���ټ�e6{�\�����ܰzN��s��/_��I�e��5��Ʀ1�7][�[�%}I�0s�}M8&������g�[ݛ�f��}����nս��%�z +�/nw�����X��!x�$y�C��@�$܉"�=�A�ȓE�� ������͉�Z ��3�b��<i��:9lr��y`�I�Wn|N����NPɐ?�X����:$��k��k�k'd�'�J��}��)����BS��������v�����|a��;��;y�ņ��=ڇ�8�]�0����� Ϝ�˧�SM0�N)F�[�\�M 1� �^��������c-�ʾڹRI��U�5�������R橦�]k�]n,S$�U'3�B S%T+O�]���B��� �㑰���H�s2"�d��(F!YIR��%ْ�r�L� 5�!����Դ���*H���i�;.{`���-�R�i����[t���sÜ �˱\.-9��\n�)lԖ8�>�����Djv_z$��$ ��=�р�#�����/-&b��p+�x�N\}a�խ Wv'_)}/�wj�7O��鍽�:���#��g���^����/]��j����� f,�D���g����_�n�or�����t�d`͇QЀ�b�g�Ae `�7�zg������rﳁ�F���?�dKHŢ�iu*�l�j�����$[���P;s*���u6�}�;^��h�@\�6q`���aK��,k�0��{�Q18ZS�fMl�Q������ �7)�"�!�A1R)^�����N�̑H4H=l��!{(��t*NS>���Bq���$-C����>珢&�>����WC����U���n��ݳ�`���瞸h�o�E��3�$b��%C����ھ��w���DE|�f�H5,X���z�>N����a�/�����P"���M��( ��`���EÅ�LX��XrQ�2�lZȆX��D�`�O��� +f�º4�-��)�*�+����"4IQ�P�R`?Q&���ߩ����4�����v���������"�!�I�} �F���4��,Ə���R$���Y$!INo�b��]�p��1*�G�c*M�������B��#G|���j��L,��Dg'���ԆX�b���䊃��FL��~M����MV���J�)�|��p�`��D +'��,�ZY�-��~���H�ㅏ���D����ѕ�j�:�j������s+�W�NF�#��7�o�.�5���s�L��㨓Hyh��fԁ������n����p�T4u����4,i��Ԛ5[�l9S���QY�ʚFeMS�o����,�gdM�P0�^�"�*0�Ή��uqX��b�8�e��l��7р���T�D=ْ��3B���I��p鞁8!O����$RĔ4M�2������V�B}#�nM+_6}ˎ}�������������W��q|�'�y��Ē��P٪�����W1>�j�o;��f�|�q�����I7�~�{����IW����k1��C�r��ml��dM�iY�[VX;F�a���9�hEl؉;�X��Z����~+��6�I��3���Ձ$N q���p_����{뜣�XE�M�W��j�ڦ�6�QB���D�����ʹ�l@5*�0�4��L�̂[#�}�f� �/����u����s_�s���I��8hx��Ҥ��n��) ��"��V�(�!][�֍eh����!:u����uZ����C �أ/��"Fm(+;���u�a��s�}�}�w���}2�RF��l^X4E� =4�HQ�qT�ɱ� ����=j��]�ր�3���&�:�%�BAo܋0�'�cpӯ[r�.�~X����I~�|�g��=��N���%p}�t6�}�XA�ޫ�����~I�UI��]�N}q�>�Q<�JeE��"qƩ����~�G�� �L� ��Dct�(u���,��7��F ����+&\�$2��V���[�'d,}K��G~}w�?�.������r��� �ڻ����UXDq�>�|fe �8�c�k���ʔ�%�6e%�^f�b�&W+�e����0�ҝ0�^�Dʹ�f*�XQ�X�ia2��`b�4�0��ĢL 3 r�,�~U�\�jd1d��VkΪ���� `U����y��z,��9�UV�YF��5"9'�d��I=Rv ��w� +/L�����{b�<z�ܹ������K;���\�R���)5Ꮇ���R��7���q�����>�*��ă�*� ��c����oJJ! ZÁjȼ#�RFy��P�G�%�fe��r���8��Z5�5�������N���]�N��7���?�?�a~]���}���ʜ������i �T�+�&�`�0��R���d\Հ��A����Ψ��M��]uӁ��eR/ 3!� ȊIKm�8����}D\B�%<ɒ��D*w��T7�k��0X��d�)o�/�&o���=��ۭ���ItT�]kR�z�cvs��$���Ⱥ���@�����cI��?_٠k��M��Ł�h�4��pu~�vp���d�8.�����qp $��Vw�sas�tN��af|(�!��@� /���-����v�mG�&zݨW���8Q����5�w��N�{��6�W��o��s�2\ꑯW�2(&lT�c)lS3�v�t����6��rSƢl?��h\F�e]l'c�ܐG��L(�Ap6�%21S.U���}e��;X;~L+�1G��3�@��.��>�]B��IG��J�w��μ�c'�<Y���<S�������c�0诙�;���tX��8�γј�bqݎ�tE�WU�*��I�1� �������$z��K1�٘�D551��"���a�P��� elaf�;魘bH6����"�Ep:��4��E�JF1]Dp �s�%&��{8qD���x�I��>I�J� +�����+���G�� `)v��8��I#[�<��XT �X%#7K�s6ߊڼ^�J��JP�Yv���7B|��x�.F�78C��8�}ti�>0�КM��;N��#�/v�(�d�S/5���[��Xr�ݣ�)�O�-o|�`~�<�e���0��q�u �K�l������/�c�U��e�ϩ��&80[-�5d_��l��@�����p{\�}����D�e��2'ܖ�$0'�;���2�m��mPݖ)�ʡ���$�g�ڂt���Gl�����A�ڊ\!7Gs^�ü�o������p�"3�� \k��v��XxM���s�X�0��.,Ľ����p���=Rf�� O}I�m8B���c� �yk��,���Եs7�Mk��;�k���� �ot>��L�=p(��O�@�-���G��X���$+�� z���O5�]�|��o�WkZ�j�5�f�s�_Kh���:����/z��d��J���Zio&A�3�2����̵NY�V�\F���^��@M�O��*Rf���Uɉ��z�8`���_�HMS��ZjLU��@#����xj�=5��#b���B|+_���G +!��Rȁ,M���⚽��՝̎f�%XB2J����-ʖ��-�W�:�I��o�hRC�T�f���'�m7^�T�y|�g���W{d?��gS�J��o�*�>s�̹�O��/�SXM�A�TEVd���G�/X-M��cr4�9W�rFpF�*�b�1�1���iז�:��5�Z�j�3�62�0p��0�ê��p���X,�I+�I�'�|k���y��`�^���*�𘒧�f� ��1�7v4��N�m�2��Ұ��w� ݧ�%:;�!�Z\l��"���u��$ �"}���%i�F"��1A5&��Oq�)� ��ߊ����� ��+)�6��$�j=$�V���������Qk��(�R�\TC��,��R�^��ƽ/�Z��Ҷ�?x�{hӖ_���Å���]��{co��p����w��gO�>��_�V+�CK� �2{L9)O��[�.���[�{���Xʟ���f����m���=���Ͼ;�����q�_���! P|�P:-+�04~))+M`TA� �Z�M�R�R�hױJ�)�� ��#m� +��Q�hUŤ �d�����������?>?3����ˢKc}���%�-�k�NX�@�]�B��'�O�E��\Q��*��u+�?�a��Tz$��X�L_#J�� 뚣-��4!�xX:c�z��P��è��v-��q"��k!�5@�@~y���:#��t^�.�JB5��lS|�#�PJ����/�g�*���0�%;{� ���4�Ui��z��'�(@q�&���U�U����ɑ��Njgz���߰vߧ/�j�H����:,�yiߎ{3\��/�2+�YV�s���.�Pf��:A��Le� ԋ\2��@ +ͽ)c9��I%���?$�qZᅫ1�hDD�S���8N��[Oߞ2f��w���ɒ�ian�~�߷�4$�w�5�)A^$F/��U\�d�c�MY� �zfM�(�Z\�;|�P��:Ȳ0�e:��D01�Φ3S+���-�/��ڿ��Ԍ�͉O�^6�Q�4!zV�r�P:<j��[��J��[��d�Z6�ʦ&LJ-Rz�g���%ץ�R;��Էs�j;�C����쇹C�3�P��D� YR� Wr�c�@�,�rP�|�㏵,��iU"�L�੫�#�8 ��_m�v��֧�yKԬjk�u���7,b�d��`}� ¬�A�\�&:����1����e���:�VW��� +I�ǀE,�����u����,'.4��z;+\�´X!�++�8���q�B����şI�<[z���B��.�"� �/�)��E��UM6_X�p���H��1N�pI��̠x�"��8�k���B�s�7|T +��e[k=L�`� ����v�m\"�O=��q�x�ia��8��o�/9�|ǚ�}Xϛ%��d�%��ڌ������xќ���&d�5�d%�^U��Dq.K���Z��e�L��6�@���u�V4�pgoOg�9T��l&[G� +��K�f�k��ɴ�#%��?�^ݴyCSz��wۧ?�k������ڮ�ݡP}t��t��r� +~����3M�� Olmkݘ��gmZ��1�9YYPR��7w,z�g�aNS�ߑ��]d�/�#��`2S�P��,�0ªW�.ҩ�)��]MO����*�����K��>�MI@L9�H���(YVI%���w�YRɏ��K +��ɀ�Y$�I����N�nƓ���Ie�;���~~��B@x��Q?�ն�&�/�d$�73$KAH=�#?���յ۶:|8`�b��O[��,{ K�G^mx����%�e7��{�qa��f����O����NɁ��!s�� 5��a�D�{��� 0����������x������|�����ͶԨ�I��y>�;r 2"j�> ����h�8����T��R���{J���� �l��~lB�@ދSK���("�>��%�$��[fFDP��+Q6$�������i�ɲ�4��a &A�*n��do����͝�c��{�~���=|���[��c;i��U���u�UG�w2�g�-#E�� 7�ݘ�S�~�z�ڠ~m���<j�h���Ѣ��{��lfA� aHw���؞]�Cc5�c�;i"]@!�aGW�sugM��r4���&ejU�d��]�W�.��n@��z�Q�@�+�����zU�.����C�R��=�ItT:��Cg���� �J���*��u�0 +)9�Q��v�(���C7k��A��;e���@";�QAC!�����+q�U+[�5��}�A����Q�Y�d9M� � +rIc� +�,�L%��vXMȎ��>J�1=�����"�Ɖ��;�n�XÝÝ����N��6�S.�lt��uv����ua�-dĶ�#ozQ��������id��o����7�G�2��V�y���5�!�Q�~���Ǒ�)G��8�1.�^N���De�WK'N �t~�Q+D�ÏÅ���5� �*�@�&�" +e�3����� t$g�`�l�8/LP�lc���pq^�c�78 +���ء�5��*p��s�:UD��(��n ��z|�_GWP����*�`�R^�}�$M���f�ZEG�#?陡�����y�g���*�F���:��xB;���x��<F�Y_N��냏�f�z���.�#�1�سO=���'|.�W�m��/�]��?�U�q�gf��wf���w�s8�����/��@�L�) +$)�P7�6i�Rh������1��� H��R�---&%���C���f}����7�;?��ޛ�&�����o�S�maWM��%Kr�D�L~�3%��z��W����Y���=����DU�ƨ)kn�Iu����^�TK ��q̽���ammj�<��3����!����pGQ�e��"b�o�J����$'%˶SA� %ι�0�0e��Tف�(8b)�`����Mß� <.˒�MǦ�4���d^d�66�ч���d��W��T���y��f�U�&�X<�� ^\ �%�q�}��\�D��C�l��s#�F?�,V|`�hu���y��}Y*�MvV2Y�Osi=0jNG��ԓ�d�*ĴW�Y�؋�h���G��L끆9`qr��A���sZ�?��/�zPJ��P��_ +�P���xH��#B����_|�_���*\=�&I�+�6��h�Gm�?raE��3{�S ��*���'�N*�B��[�'�������=ړ�=�w�% �7�ɷs�>�@�L������4�п�i�K��)���QD"�H�G�6��*���1���"�?�c��3�S�m����OKQ�z�T)a��5���K���\k�d���a��Rwi�H������;vY������j�5.MG�E�"g7������T���p�$� q���� Ɋ�EQ �(�sSj0 � +bh��T���s�BXR���lT那낪(�@D� �:R�ll�� +�.��� +��'�7���G�xfR�H*�`/[�.���v�+�u64�i�Kx�"[Dk���,�ӧ�[�Q:�š���EP���2W�����zE�+����r�q�W�.�(w/���8�l'J���é/ᮧR�L����O~��ĸ�×�?�ۯ\���������M����s��|�U�B�0R��S�H��PA1j���l��<=Y�J�6Uz�4z�4Ƹ����F�0M`��2��8��G<ÃI��50��tŎQ�Z�֫�&��h4w[Z�]��ؙP&��^Z^'�`���;��یW������.��$;aw������ȱ[N!��]DEBZ"��ӭT������3�q�L�+!r�9�P��:��:�a��:���l[�5��,Aj�$�G&����G�z�D۳���)��}x�Q�+�Ըʫ���z�ަ���Nthq���ސ���d#l^����"HF��@� d;K�l�O�(�8�E�HM�EHu���3�m��6'�^���� |?�8��mvՊf�+;v���[D0 �0��P5�q��s/�Wq�&g¸��kLP˯<s%U1*u�7�b�躮���3{Y�����,P����K]/�g�|�393�G95�=��+�x��G~+?l�4��~�)���A� +�3�H�%5J-s����id�ܢ���x.�+/Pf�x Y"/W6��e;�&����C$���rJq�_˗�ĭ�7�WB��J��d��YU�0�G0�E�,�`��b<U|o�2U҇i/8àx�|!$Ae�WJ�/L�L�\dn6�eM�o4�2�"u#�=��U����(F��rN�YC���l��xb ņ������J��pE�nq�_5�y6g�{?��<2�� ��{2�Kȝ9�w�o��wfp�?{��M(���"G����P��_�ԈK���=b�o�beycyKM����֚�|����{��-��|]���_�=�Ay���|�P�]xE�<�'�kN$`$S��>N����x,����I +}���uC/�b+���G +iv3�jg��U�� B,� 56�?��5�E�rVY!�_�?�u�ԩ���7y[�L�l�:�C�S�PfϚПnJ,o��`��:����4M!�e�{�U?����կ���=Ð�CV�����X~��������8���F�XD�9@.��kP�E*C/�Q�F�>��E(C^`?z���$��y_h?�o i�v��b�L�� sxھ�����8�^�ȣЪ`{!��<���� �=�k��E+!��;@����>;�}h���@ٛ�; �KH/�~uŴ"��Ÿ�|,�����j�=�XS�֒�1g�|�1�4�Vh=��G���{�4����� ��tg�O�~�!�ҥ04)�!� �]�?�n���[|�#k�����2<������J���V��We�W�E�G���c�*�8��s�s��h7 +Aԡ� +��:����� `[���GÜW��f�U� 5�A� + k1��M��Ln`fV6'[6�d�M7,Zڳ���s���0��n���>�y<�y�_�N�`��Gf�%���������NW�*���@���Y�2��ݬ���Q��g����G���H��2ܿX��_���4��߬?T�-�?mYZ�r�G���6���i�uB�����ܫ�p�H���{���J�dN���/[��ꓺF׳�š6�didNv�l@����Y���>��p4�4� +���r�p�k��Qߴ��ox��!�Y�ͼC���L̬ ��s.�7J:ą��Ƌ�,����1�>������=է:��3�2Au�1�oE�q���N���+���Y�/b����� 1�w-�1�"_ }�&���|��e���;�)�e�yP&�?�;�?��&#�B�x�nvZeZj���.� ?��dK�o'�ٌ=[�ylz�iq.2- �k{���5;���.Gbg晲"�ٙ�� �}^39�9��k �g��D�5Q.���jpi�ĊT:�j�Lr}��D��J�f'��O�'/��*��u�ش�&���i���|�é'�q��Oj�?��,?����})��_�9?��A�O�� q0�qp?��,�ڠ���r4X�����N��-/�OD���t�?ύ�e�mm!�Gq�������9Ns��9�3��8g�_�4�ǚ��Ȍ0�/ +1 �c�<�}W�?>X�o 6�}� ~����`=�=����t��tXTK3�rNTG��2;�gkm�9"��:Zn���o��^�N���c{�w��W�Rޣ�]D<2*�&�.D�i]К�.��Z���}�~A�^K��c�Te�*��o�"SF��)UzW����}�!��'O��(�c��KO歶6(���/tm�� +[$�$>;�9����D���Xkma�Ӌ��-��ϗi��h��2� ��$�e ݲ��E֕�.��o��r����%7Ւs������m�}�ׁ[�����W� ���KM&�.��q���9yX����\&��i�c��#Or��=F���Y?(���ً���h���,��~����} +织e�;Ij�㯧�c��e8.�M��`TV�biv,7É�\���;��N8G$���,��r)rG��e��-���<���L�<g^��*��2����o�����fw�A^!3�8���3Sp_��~'=�,�uޓ��`�a��2�-'����`�γgl *f���`u��ٹ���ĝ�������کg��)�����N��dv�.�p�T�N��j�� �&�~bC����ab�l�$#��X���ៃM��m��g���W��@�\+c�k�+���g��sN5� o@��S�Vj H �+���X�k��+��I +��%�<w��.&{���2ؕ�����Y�W�eǒ�w�������,�@9� g��ق���i����g|H�K����}��>����}#{F����v<v������q9~����+23�t��2�Fa���rj�\�����]e��̐Kݕ�>8���O�! +g0���5���&G��k��� +�]����5��|�\�Ȳ�X���2�<���^���~%f�\__ O�'E��E��Tsb�Qx�=��@�v�7��g%_���ORL�Br�Ԉ��KN���C���g���1��oƾ ?/�v���3ޒA���:�+�i�6�7=���W"��2�ۚ�=������ ~^��X���������ȭ���[���_��>��Wh?��;��S|^�g�=���G�����������w�^�-ѕ3v���}�����>���1�ّ S��S��}����?��1d��f�X�ɋ}zh�����������>e�u��+�ٹ5qT@.r�9;C������Fk������]9Ժ�Ȼ��=��cQM�rk��MM���3��gQS�B̌�t��q�"^����姩��u����:��5R�H���KЍ�]�{�r��8c9֗Dr]��}/�g�K�N���L��f���?�!ǝ����l���5��|A�Ԩ`c�R'�(��!o�͎�U�~!Q'�ڑ��k�ع����Ο�~������̓O��2| �/���]�7$g��Pu�;����� �v�c�>�rr�8��M�.���_��{�ߧ�Y��]A����3�g�̓2�<?Ǵ������٦Cr���"jg 5t��Y[���K^ k��U�?�5�?B�����������̝b��3�9R�>�����k�;�^�#XC�cl<��e*���8�5n3>r���'Ov��e��(����M��c�4��d|j���MRﮒ�V%��U�e�H������?�T"9������C�6z�xO`����ˍ��F�R㩥Gx�V]��m��K@�a�����FNS���a����K%z�M�m+e�;��>��z�:x�|�,���Dga����BQo�� +0Q��B������ʼ�����;�z�9z��6���\�;R`>����� +�b��@��!V�A�4=S�<���:��^��ԟ��k�4OB?��)�%�K������a�\`���8���+-�BKY�Aa�+H�Ţ0n��Rn�Ҏ˔ ��uB�C^p���/� Z�L`�ŌmN\��.3HȀ@�`3J�{��9�ׯ_o1�%�<�9�_����c_#���o9�T�}����u�yg8��/�s6����1���n�Z�q���w�̑���[{��+��)�D�?��# +�}ȱ�~�}]O�]1�5O���|��n�"���H=-��`]f�?i71]�y�G����8y�<�y7(NP+ޗ� ��&�-~?C������E�F v��r�9�`=ϾPab�8�cw��K�u��~&9?�kʄDXW��D�/�;����D�/� ��0��ʵ6���sa~�-Gk��M��}�ߔD�?�+���u�I��9m�cz"̟�8�'�c�G�6�K�����h����E���|_�&��)����H��}^��e�h�Cv���D����������R�����úo��3�O��o\:ڃ\���������%[M����7�أ���w����F#�Mf�{o��F��o���|B�%���l�2��V�_�ug+��J��k���T�s�o���`�٭�]@�7�^g�WP �A|��X���V06���ZA酳p�w����AL�PO��eί1_��-��ހi�Db����)��U���~��2ݝ��8�7�zw:�?�1�+�e;uê�p���c=�Jƫ���p�DQ����!��D]`l�%�d~ ��LL���;������:���|�3*�(W.ʽ��G��1s��a��G=Fͤ���\� +5��?�=p��� +c�d�����c}R�y�s��][�!v r��p�[�\��{�G��o��l$�������;/h�v��,Qz1թE���]1�Q�-�����kB���㲰��|h%~��ol��P���b'yn:�uG3k��c7�n��žM����Q�N㺤����$d�>�}��I�v��-E.��s�J�.M2w|�?"{�}��%��n2��V�?YM����-X����W�V��7y�j.�%z��F�C���T�G��njc�^���vm��l���I���PO6��i��i�OyG�c�>�ut�e��Q�h���؝ƾ&gM�^����Vlk�5N��{Z���N������lL7�A`�]bz�=[�$�;����?� ��O��^��S�U{��X��Ţ��mԢm �N��hJ�`o��I�����*�/Y�t�HpU����/� �� 8� �*����+�t��k��o�|����zۄ*C�6���{���pn8�%�1���v��>~�}�U�nk���N�'������Q\Ոb�4��u=Lj� �f�w%����b�'_��9x�oS���. +������H�5�����������urp��^�9������r�J�]��r��¸+�|��gT6�|A)�M�� �I�廹+Ph��殢O�,8殥 �k��a��~��iG�u�7i��÷m� e��r���mѱ�h�u~�B�k�y4 St�3�J�,Eɴ���z�sXoߋ�3�a�V���]�Ҝ3���\�{w����:���DD�}:� 只�Y�/����ӏ���z��7�[/m���Jt���;��b&���no�-2|A�x˱�Z��v%�S�;��� y��3hS�\�2Y��U~��u�'����h]T�|�KC�F�G +Pa@5q���N�:����*���r_J6��n�{��4��a{�zݖ��Ij,���ɕ(��Ȇ���E.a�3ݸ��ɝ���� :�}�� +^e�����[�:�1�}K�1�ޤ>����,F���%w,�{%�c{!gi��]��<��sWj�NFvs,qxs���&q����Z��6R��x��V����kJ����q!ѾHk�,w��g������7T���}(�oHf�����y�.g�hAV �ZȻ6neuV �M���]�!ϓb��2�1#�ȵ�!.]'����9w�1�?�y���oh���s�KpƲ�0�RW�u{io� V��j!��ﺕ|J�����~��y��<�9}_�ͻ�tg�-��ؙnm���ȅ�+G���4��&���� �7�^�`w��^�7�d�hN߸��_�N5�u�ni�M���oH�0��6�.�3��ŗQ+���T$�E���M��ށ2��SU̠�w�M���8�Z7���V@|�ݍ���c,PV���R�$k(�Yc�ǕO�}� �wH���W��,�����ΰL�5r��oi$�D���t]�I��忼]��)E� ������і� �ph�Ӆ�N��Ӽ�<�:'yN�q�$&����9�{wCe���R��Au��<��j��Ge�D��$���(��u�!Ub��(�0�.Ш8-�x��,�qw��>����^3��I&�����/|˅o `��*v��Q A���oŽowrδ�ŀ����F�8q��9'��J*1�j�B�ͯ�Vɳ�N��.�\�-�5�eRIǚ>���K�C&��:|����Fz�\������?rjro{����8���t�u�#�4���w,����Fp#��?�����������L�E����s +o�4�e� `&�>�:0{P�9�g�{��٭��(�3��esl"�x� ����B�A�" �r�����$�쬳� ��[o�J��]�����}X���m�emK�籵�; O}�g������{��{���_���F�P��(�ŷ��P��E�����Q$}��`��1��� 9Q����A�c���"^(:�F�C�uċQ�x�K���#G5�E�� +�|��,XF��ڢ}#N�/@IQ:�1T�"^(:7G�[��x�诊x �+Z�8��RL-��U�9ŝb��1�է�U�a������X�_+�J��Wy�XyiX�x��K �#.5�/���0~Mĥ�����"�R��!��������K ˺|I ˖+/�,��|�0������Yy�r_y�0��ӕo'|���ʷW���S;+��W�j�u���Λ��Η�wV������B^Q�|��!�k�{(W_5!OT��TL� +X�A��GkD+y�� @'2*�,=_x��"wU�RF&!%�"k����s��v��Iќ$ܕ�)kAN�-��}��д6ҭ����F�-Ԋ�j�6L,�HȨ'������67�R�_�Co�T�g��c�=)v�4��"�����V�j1?o��\酕�� ��^�sZ�Uj�Rۭ��%�zR����v収�z��l�jvh�-ҟ%�6k��ё�:��\f�H�Hµ�b��f�'_G\�a��9�(����X��58J�����������(��k�2Oڤ�3꯳�R�H|�)�j��Z���Zʨ�6�yW՛�F��<��Q�gt������KJ� ���G��Vd�9���nB��"I=QW"��R6L��3܁MQܛ���r�`=ٽ�����=�ʠ���kf��%P]�2���5)����S���`�Zu':)�������tfm{�n�� 5S���=T�ª��m5�:�/��ǚ��Ϸ�KWZ�R)��mi �V��u�v'Y9�w�T�ӒK�~:Z��n��ge�U[Y=�6�M�^�k��V��ʚ*�ј7�f-� +|;���|�k�ll�����v'i5v���t���-OF|+��ҁ�:����5����p�-֬�f7�X#�z�I��t�^�Ύ�f�b.��V��K'% k��15Gy9���rYG"���t`��t���HPV�wE��G�v��8~���7uj")�M�@h�Wi����Df��*��� O7�H咲&VW^:�i s�[N[��ޢwUO���N6�2,��jG��iF�\�8ma-}W�&��tʳ���`�S���^/dr��t��2�N�����P�����m[O��j�ˮ=Q��o���˿a��dli��c����c�c����U`� +�W��*�� +zݽ��{fSc���K������˛���Ξ��!�� +-�V8Aڱ�<����̔�]��?뭼�7Ġk�u~t��[��i^��}�'�`��Z��C!�P��Q�2l�>(G�F_l�m��G?�������cv���]��bw�=e��^�[�Uz��`�+7�h�'w�XyO��xL�D�$������8�p0�t����)w�l.�X��{s�q���w4���8�p<N�<�d���Y�p��g�K�mZ�Nқ,��ˎ] +v2N��8 ��,ę8g����p>.��X����\��p9���� +Wc c��b)���za9n��� 7�܊�X,��,��w�n܃{q��xa�j<�G����xO�)<�g�,���x/�%��W�*^�:��7�&���x��=���!>�������_�K� +_����|]|�������?����/�+����;����e��¿�=��؇�����m�-������܁8�;rw�`�δ�w�n�ݹ��0�^ܛ#8���b5G���p_�r4���e�q<'p"����9�S8�q�!��Cygp&gq6g=��9��#x$���<���8���<�6��`����V�<��b����I��e�������<���4��3��g�,��sx.�����r/�b^�Kx)/�异W�*^�%� ��\ʟr�������țx3o᭼�?� +��/x;����KN�=����~>��W�a��#|��q ��q>�'���3|���y���_�+|��q_�/���[|���]����?�G����S~�����8��!ý��esY˵jٶm�6�m,oaٶm����������~<��'���Y�<x�^��7���]�>�|>��/���[�_�=���<�@F�P�a� �Q �1�'�<�E<�G$D"���H��H��H��Hj:R# �"�#2"2#~EVdCv�@N�Bn�A^�C~��(�B(�"(�b(��%Q +��ʠ,ʡ<*�"*�2��*��:j�&j�6�.�>�!�1��)��9Z�%Z�5ڠ-ڡ=:�#:�3��+��;z�'z�7��/��?` a0�`(�a8F`$Fa4�`,�a<&`"&a2�������阁���0s0�0���K�˰+���k��a6b6c�b��?؎؉]���{��q�q�qGq�q'q +�qgq�qq �qWq �q7q�qwq������O���/� +��o���� ��_� ��;~�'C1 H�fh�aX�cxF`DFbdFaTFct�`L�bl�a\�c|&`B&�/L�$L�dL�L�TL�4L�tL���L��,��Y��ٙ�9�����y����� �0��(��8K�w�d)��,ò,������ʬª�������ڬú���l��l��l¦�v���[�[� ۲۳;�;�����{�{����s�rs�r�sGrGs�r�s'r's +�r�sg�|�,����<��.�".�.�2.� +��*����:�y� ��M��-��m����ru�B�n7�p/�q?� �0��(��8O�$O�4��,��</�"/�2��*��:o�&o�6��.��>�!�1��)��9_�%_�5��-��=?�#?�3��+��?~��T(�(� +�0 +�p +���H��(��h����X��8��x��J�D!�I�$J�dJ�J�TJ�4J�tJ�ʨLʬ,!ʪlʮʩ\ʭ<ʫ|���*�B*�"*�b*�!V*�R*�2*�r*� +��J��*��j����Z��:��z��j�Fj�&j�fj�j�Vj�6j�vj��N�.�n��^�>�~��A�!�a��Q�1�q� ��I��)��i����?5K�5Gs5O�@�H��DK�L˵B+�J��Fk�N���6h�6i��h���o���ڡ�ڥ�[{�W��_tP�tXGtT�t\'tR�tZgtV�t^tQ�tYWtU�t]7tS�t[wtW�t_�P��XO�T��\/�R��Zo�V��^�Q��Y_�U�����~:�ôl�v�u8�wGt$GvGu4Gw�t,�v�u<�w't"���N�N��N�N��N�N����������_��ٜ�9�ӹ��y����߿������������wI�ri��2.�r.� +��J��*��j����Z��:��z��n�Fn�&n�fn�n�Vn�6n�vn���N��.��n����^��>��~���A�!�a��Q�1�q� ��I��)��i����?=˳=�s=����ȋ��K��˽�+�ʫ��k�����7x�7y��x���o���������{�����|Ї|�G|��|�'|ҧ|�g|��|�|ї|�W|��|�7|ӷ|�w|��|��Џ��O����G<���0��Vܶm۶m۶m۶m۶m�I�u�M�m�]�}�C�c�S�s�K�k�[�{�G�g�W�w�O�o�� (�!8B ���������������Ȉ����舁���؈�����H��H��H��H��H��H��H��H��Ȁ�Ȅ�Ȃ�Ȇ�ȁ�ȅ�ȃ�ȇ�(��(��(��(��(��(��(��(���ʨ����ꨁ���ڨ�����h��h��h��h��h��h��h��h��耎��肮��聞��胾�������������������ɘ����阁���٘�����X��X��X��X��X��X��X��X�����؆����؇�8��8��8��8��8��8��8��8���˸����븁���۸�����x��x��x��x��x��x��x��x������������������������� �`�$E3$C14�0,�1<#0"#12�0*�1:c0&c16�0.�1>0!11�0)�19S0%S15�0-�1=30#313�0+�1;s0's17�0/�1?� �0��(��8K�$K�4˰,˱<+�"+�2��*��:k�&k�6�.�>�!�1��)��9[�%[�5۰-۱=;�#;�3��+��;{�'{�7��/��?p q0�p(�q8Gp$Gq4�p,�q<'p"'q2�p*�q:gp&gq6�p.�q>p!q1�p)�q9Wp%Wq5�p-�q=7p#7q3�p+�q;wp'wq7�p/�q?� �0��(��8O�$O�4��,��</�"/�2��*��:o�&o�6��.��>�!�1��)��9_�%_�5��-��=?�#?�3��+��;�'�7��/�)��*��+��(� +�P +�0 +�p +���H��(��h����X��8��x��J�DJ�$J�dJ�J�TJ�4J�tJ�ʨLʬ,ʪlʮʩ\ʭ<ʫ|ʯ*�B*�"*�b*�*�R*�2*�r*� +��J��*��j����Z��:��z��j�Fj�&j�fj�j�Vj�6j�vj��N�.�n��^�>�~��A�!�a��Q�1�q� ��I��)��i����Y��9��y��Z�EZ�%Z�eZ�Z�UZ�5Z�uZ� ڨMڬ-ڪmڮک]ڭ=ګ}گ:�C:�#:�c:�:�S:�3:�s:���K��+��k����[��;��{��z�Gz�'z�gz�z�Wz�7z�wz���O��/��o����_��?������aZ�C:�C;��:��;�#:�#;��:��;�c:�c;��:��;�:�;��:��;�S:�S;��:��;�3:�3;��:��;�s:�s;��:������������K��K��˺�˻�+��+��������k��k��뺞뻁����������[��[��ۺ�ۻ�;��;��������{��{������{�z�{��z��{�Gz�G{��z��{�'z�'{��z��{�gz�g{��z��{�z�{��z��{�Wz�W{��z��{�7z�7{��z��{�wz�w{��z��������������O��O��������/��/��������o��o������������������_�?Ud�a �&��y����� ���J7�%Y���.Z(����B[����i�w���Ґ�p��7�ݹw�y��uúiݲn[w���=���zh=�[O���3���zi��^#R# B�0��X�� -�!=2 #2!3� +�!;r 'r!7� /�!? +� +�0��(��8J�$J�4ʠ,ʡ<"QQ �QUQ �Q5Q��}�F�E=�G4D#4F4E34GZ�%Z�5>@�E4ڡ=:�CtD'tFt�G膏aG����x��=�F<�"��C��7��/��?�� |���������������ɘ����阁���٘����c������ +_�,�",�|���=~�R,�r��J�X�5X�uX� ؈M،-� [� ��3v`'va7�`/�a?~��8��8��8��� ����N�N�����.�.� +������7��5\� ��-����=��<�#<�<�3<���+�f*�f�0�a�1����aZ�czf`FfbffaVfcv�`N�bn�a^�c~`AbaaQcq�`I�bi�aY�cyF�+�+� +����k������:��z��l�Fl�&l�fl�(�`K�bk~�6l�h�c{v����N��.�ʏ؍��:K'�3��t�{��z�e"{��$�`o�a_�c�'�A���9�C9��9�#9��9�c9��9�9��9�S9��9�39��9�s�?�<~�/9����7\�E\�%����{���\��\��\���k��븞�����[��r��g��N��n��^��~��_y�y��y�G��1� ��)����9��^�%^�^����o��k����[��;��{��|�G|�'|�g|�|�W|�TJ�4 +Q��dS�"d �$��J��ʠ�ʤ�ʢ�ʦ�ʡ�ʥ�ʣ�ʧ�*��*��*��*��*��*��*��*��TUT%UVUU5UW �T-���U[uTW�T_ �P��XM�T��\Qj��j���@m�V�j����Q��Y]�U��>�]1r(VNuW���R��[ �ȫD��OI�+��ꣾ���O4P���k��j��k�Fj�Fk��j��k�&j�&k��j��k�fj�fk���3}�y�B_j��+}�o�P��XK������AK�L˵B+�J?j��h��i�6h�6i���'m�6m��ڡ�ڥ�ڣ�ڧ��E���눎�7��c:�:�S:�3:�s:���K��+��?������G�t]7tS�t[wtW�t_�P��XO�T��\/�R��ڤ2�MbBM���pa,C#cLZ�Τ7LF��d6YLV��d79LN���6yL^���7LAS�6ELQS�7%LISʔ6eLYSΔ7����h*�ʦ��j��ꦆ�V�p�C�!��ȐV� ���B��U"�n�+1ɕ�0��i��ow8�D[�3��v�m������$���%�b�m��1>go�͞���8���3�������z��S� eFx÷&�[S�`�D���;m� �����F%'���Ķ�=A��<)0���8�/�����ߛ�M��D�`�/���Ǥ(��MH��A��\l�A�?a�|.O\X��i��/9��N���S�N���ɰ��䔰�x���:�fw'���b�n�=ܙ�wr^�+.��B�]&��}�������p��(OR ��sy}�DgR�8���y������)*���\q��`1���T1^�����;�����7�[.�?9�����u�5�m$Q�J"EK��I���� +�$�G�n�J��f� "��/��w�9�l�E�̰�_�P�w���s�j�n]Ow��X�u���ͺj��t7oU{z!�t���"���� +� M��]�_���Vh<o���"����P�L +͠Kh���Zz��[�-�|�߂o���[�-�|��/Om��8sk3�Է�g��ڧ������l�q��gw�ݮ��ywp+9;�j{~�z@{�ym�o��a�ַM����%�ip�;����u�6�'j\���s�w[c2��_|�n�O�]]9Ħ��}����Gl��̻�|u��U��^���п�ۧ�j�v���!"?�B`z3L{�i�0m���;_�,�W�V�f���j�y���_�닿[]���ӵכ�߆�(w�噚��=#l��%zKv�_C[֘����.~��Su��ܟ��S�n�f��=jmP뽯��7�=.����'����_�����Mc{�뮭�M�^������/�ѱ�u�m��n;{@�= +}����,~������J>� �c���0!�~B�~B�9���9g?!���3&�����?��z�SwWo�w��^�W~Ev�^�z��ñ�ܡ}��p�ں�n>�������.��>l��P������n��_Gy����F���������L����xr[��[7�zx���[K����S���K҅��7��X���w��m(hl�e��l��¿��ƛ��{o�{��þ�7Y��þ����� a:&K�ƛ�0���6u�ɐ|�s��R����Ӧ��������hW�6�����;���<�z�k�=6�{F|�C�����ë��0���}t�<���v���o(zh���������Xz�K��W_wDƺ���f�0pw*^������t-�L�{_�|��|�{����t$���j�Ch +͠K� +Z@K���)�\��W�+�� +p�\��W�P��| �_�/���K�%�| �_�/���K�%� +|�_���W�+�� +|�_���W�+��| �_�����k�5�| �_�����k�5�\�׀k�5�p �\�׀k�3�o�"�)|~���*� +����� 4�.�+h-��.�w� +��9~��{����;��QW��rԕ��u���/G}9��Q_~~~~~~~~~~~��%��["o�?��,�c|���g�z1�����w�c{��p�����|3/ߑ�Y�W�����f>a~/���+�5�y�|�|�|�����������V�z +VO�j(b�Y=���^�%e�P�:K�*/�������9���}h����-�q����>��,���������A<�!�{�Z�[��Я�j�Ch +͠���o��ח]�`�)7��J�J��F�� Y3���9 �q0I0)L��!y��z���R�U�!y�)���禫��t͉�z���H��1�`������qI�CJ�&��;�te9\��5.9��%/yx��W����fl`02O��ILL(QQ0"L�82��Y��*dV �+�s��ˋ7�@��@F�����c,q�%��EۖP<g� q��e�?'�.�+h�}�W�� +�P� S`��06L� ����ar�0�q��p`�8d�C�8d�C�8dNB�ph�ph�ph�ph�$dNB�pb�pb�pb�pb�IS���i~�7mӶ�n�w78�L���S!:���ԼӠ��NL���S�)ct�<N�Lx���Hx�c��:3�#�92�c��%_��%���p�_���9�yx��q_J~_J~_ʂ��b�%��P�)�)x'v��@a(�Jp�K �q)Aa(��5�<;Gnx����S��)����{JaO����<<���m��6�w��Ma�)��P����[Ca*�߇��C�҂���%�5X8�NK.y���XU�WU�U�|U5VU�U�|U5_U�U�|U5_U�WUcU5_U�WU�U�XU�o�%Nʲ`����^c�4�$4G���|q�_��0��l�}�M��,�P�#���:¼��_G�Qߎ���� '�)r��!g���rip*"GEEEEEEEEMMMMMMMMMMCCCCCCCCCCKKKKKKKKKK��11bb�Ĉ�#&FL��11b$�H��#!FB�� 1b$�H��#%FJ��)1Rb��H����"r��$��ir��%�K�CCCCCCCCCCC�ι�s.�:�ι�s.�:�B�Ӈ]����q�{��:ׂεP��Ach�v�����S���O�WDPP|���85�f|"�,��(��l�n����Ӯ9lnO�����1� �?�e��6����f7�f~G�E[�q�*I������= �t��_�n��6��E��K��z]]��lɐ[$�w�߁�e$w��;F7"�g|��E�{r�[������Vax������Ï��(�h��F�Ƈ �Z.=F�F�<�eE�[W/�i�^�N�w�������??��7û�7�����1~�S�_w�k��5~�5�_v���,����_�d��缰�뷋�����S���xo^�Y�+����xZ�l/�s���s�gK�w�/��F_����x���KU}����ㅪ��i{����>���;U��iusZNoߜ�>����~��_����ͥZ.������kqs������9���r��I-�y�f���xsx�.����;���l]�^T{~{Z=��=|8/oϩ=����,�Y�>���i���,�Y�>���I���V?OY�~��<�/��s�� �9-r�FvHCn�[d�ȈLȌ,Ȋlo����hs����}�`,o�I{|"���>G�fCn��Y� �|��~��2"� +l�5�C�_� ���U�0-q�������!p� +�\���T9_������^����L}l��������×ק��Ï�^��}��?��?�K�����O��?v�~�}�{����ݧO�ߞ�jw��cq�7�-r�����+�\��a45n0n�ȕ6�j�����F��Fn�Qo���h�r�<*���sq#wԨwԨw�XԽb��^ս�{��Խ�{S���>a��]�(j��WHq?*g��"��m�ԽS�N���d�n�n�N?���o�}��[�[uߪ�V�i�ԫ{��])�{T����]ҾK�]�j��RQ#=�����H?�A��iT#��&1f6<_��m�:����:��-�:����[5R�s���s��t�9Δ.k�2��:�Y3�`f��u0�f��̔;�`f̬��و���u0�ff���z�qg�n^a�Nk�i-:��C��Eǰ���âcXt�_t��a�1,�E�1,:�Eǰ�1%�{P����R�^*�f��,�R�^*�KE{��KE{�h/��B/����T�� +�T����R�^*�R�^*�KE{��6Uۦj�Tm��iP��?*⮇|���vW���]���]U��jwU��jwU����U鮪�U���vW���vW���]��� U9�*'T��&uO�ԝ#�꿔��R��K�4pU��iU�4c�f�ڌU��ҌU�rU�_Q�E����k�rM�i�4��Ɩ7����6����5���&5=[��h�)�4�ڴ���6-k�NM��ͦ��t4��f��M���� g����'�tP���A9{`�-27��M-k�^�M-pSCC���o��-`�{FCrk��5�Ž(�����܉m���>*�:Oz|Ol�����������L:1�N̤3�I�������lˡ��6l��*�V�J�U�/�3�ww�_V�15ln7 �_v�v�~||��4��_�n�K�ǯ�OO��İ���{�^<j,���#x��=��H�#�<إ������8+�r�Af�K��i� r��� ��Y� 9 �I�2��^/�����e�2x�^/��W�er���� +x�^��W�+�� +x�^�*x� +^��W���U�*x� +^��x|_�� �~����o�7�� �~�����q2v�4��:۫�ݗ��I�qRv��'e�I�qRv��'e�I�qRv��'e7�'f7��H=&�'�'�'�'�'�'�'�'�߮��Ґ��#2"r�W�ِrD.�c�������]|���ϻ�����o�����tdґIG&�tdbdbd`d`d`d`d`T���Q�*�y�Af�a�a�a�!� ِφ|z��<�yޯ�ɷ'ߞ|{��ɷ'Ϟ���ՓWO^=yp���n�7�� �pu +�����~�?����G�#��~?����G�#��~f1��`�Yf1��`�Yf1��`�Yf1��`K��0�X�1��`�i�1��`�i�1��`�i��~�1��`�y�1��`�y�1��`�y����c0��<��c0��<��c0��<VW<��1��`�y�1��`�i�1�`k�4p88888������ �2��e0��PCe0��PCe0��PCe0���[��N�NONϢ�G���������Rty]�x�ytzr��V��b';]�ON���,�����.v���^��=pzpztzr�;�X�����t�-����-�x�ŋ.7�M.vr����t��ϲ��]��b��k�&��ת�G�'�����.�������[��X��'��w'�~r�'�[r��M�e;��������k���ת�G�'�����.�������[ߍ.v��<:=9]c����}�_k���ٽ�����]nk���kՃӣӓ����� +������t���F;^x��v��FndA^ya��y�F�'��%���M�c�/h{�o?��W� x!D�D�,2##>/�ߏ������ˇ��8�p�~�����}���s�v����jh�����j��ot�Mz�+G�f�ih����f�ih�1���J����GC }4���Gc��KC }4���GC }4��q���?C��3���?C��3?�?�?�?�?�?�~�o� ��7����~�o� ��7�������sC� =7���sC� =7���sC� =7���sC� =7���cCO =!��BO=!��BO�4�4�|�k^i^i^zE��W�^zE��W�^zE��X�zE��W�^zE��'~�~�~�~]�v��k��wǞw���<��y7ϻy���n�w���<��y���;�u_mƟ�g���мmƟ�g����f���������������/���|f�Y�g1��|�Y�g1��|�X�c1��<�X�w5�j��x��W�o湙������ym~��x��6���o3���v���ۍ�ow��8��v�;��0���x���?��0��|�=���?�����_�����pЖ5��8F��c4��8F��C4�8D��C4�8D��C4�8D��C4��8B��#4��8B��#4��8B��#�����v��oi�F;��L�o�;=hғ^��+�Z �J�+�ket+���+�Z9���VN�r��ku+�[A� +�VP���ԭ�nu+�o��Ѿ%�{b���>}~������8��xyw<���w�LJ��8��;��s��@G��N':Ӆ�t�;=hғ֥��?����?����?����?��#��?��#��?��#��?��#��?������������������ ��7����~�o� ��7����~�o���w����;~�����w����;~�����?�O���?�O���?�O���?�O�3��?���3��?���3��?���3��?������-�[��o1�b��x����gu?��Y���~V����+����_�=�*~U���U��Wů�_�*~U��n��������*~U���U��Wş�?*�T���S��Gŏ�?*~T���Q��Gŏ�?���s���Q��Gŏ�?*~T���Q��Gŏ�?*~T���Q��Gŏ�?*�S���O��?����)~S���M��7�o�������I��'�O��?)~R���I��'�O��?)~R���I��'�O��?)~R���I��'�O��?�o�[��o��7�o���)~S���M-���7�o���)~S���M��7�o�����߬�+����o�����o�����o�����o�������;������;��;��;�{���{���{���{��n�&n�&n�%^�%^�%^�$N�8'Ήs����\O���=qO��t�'���^�^�N�N�N�N}㌷뽽�@G��D�Ҥ�q��w�.����J�.������}�����?�~�鯿^�����1�v��^��8�kӹk�W���Q�OZ7���ǼkP���xzׅ�t�;=hR��&sׁ�4h��Nt�IOj\�=���RJa(���RJa(o�qV�ѝ4�I��4���RJa(���RyK�-���R8J�(���RyK�-���RXJa)���RXJa)���RXJa)���RXJa)���RXJa)���RXJa)���RXJa)���RXJa)���RXJa)���RyK�-���RxJ�)���RyK�-���R�Ja*���R�Ja*���RyK�*���RyKa+���R�Ja+���R�Ja+���� +[��ZWw�H��4�>��u��� ����m��'�}���?�|��q\]q�?�O�{��ɗ��z�e���/�����ෟ~|~=�:Ҡ�v:љ.t���}�����s�~~=w� ��k���h�m�m��>�o���O�wO//O�|������u���p�_}=��6j��ٿn���}�f����^�qֺҍz'����5��!��5��!l akj������q�%p��<jk��-��-�_���Y\���Ӊz������^i��c2��<&[����Ӻ��mo�ۧ��|������o�ǧ��ʫE��߾��Ooo�����(�+|�ǻ�5�ނm�zg���b����b��ڔĪL�R�RL����H�@��0HE*J��T�-�j��<$�Xƕ�$S�M7-��T"Nڇ�!u�CS��of��-R���|gΜ���;�ν|K �~M�"C����Y�>Sj��}3�^�l�=Y�V_�������V��H^z��2Rϯ���N.lݒ��v[F¶+2"ۖ�+�� +#ZNz���ևe�(����)#���<�^�Gd�ȷB��wzIV����e�4����� ��U_�:Y}AV_��K����^��\1�^� G^N��\1�^�^�g]��������Ja��v��RX�����z=�^�]V�����z9��[�cIk��Ɛ��v#\|i�.��]�ŻD��N��N��N��N��x�x�x�x�x�x�y�鍭��N�:��o��A����o��A���o��A���o��A�雤o��I�&雤o��I�&雤o��I�&雤o��I�&�[�o��E��[�o��E��[�o��E��[�o��E��ۤo��M�6�ۤo��M�6�ۤo��M�6�ۤo��M�6�WH�B�үЎ�H_�&�<L�y���0)Ϥ��Mq��vv$��M��5M�k�f�W�^�Cz���~�大IOj�RC�l�\�4Sj�RC�my��aS&=Mzy��W�^Iz���I����I����I�\!N����o{vj��C�%ւ� p��@\$.�Ĵ�+О�@{��� +��+О�@{��3�?��^M�=Z���/T½�ElW�)��r���3�H+~�>#�9��������;i:Z.�?�`��7�V >��9b�8O��K�:�Al[�6q%`��ѩ�� ��� 6����~b9n��y�Oyl6Ӯ�lfˀP6��u^٤t�����=�X�Ŭ�*i�Y�oӰ��`h`J +�8�����m��1X�j�f�e�ҡ$ݴ�6)p�&XLic+�*�0�&�i`h���$pX�>6��<jos_�i��I�?�Npz�����7����=�mҰC�y��'z5��5��M�UişlE���r�k㜩첲�U�4R��$f{2�̂���"Ύ1u������Z#V� +K0U�S|\�ήm�f����� +��(�c������9� 0,����Q,�����>`��f�`���a��=��|�������Ż�[����=x��=��gW7�y�������Ӷ��D�Vrlƈ��IcD]W����+]noN�)��g՚��l:�^���V*��;, �����»��e�2P0�`�@Z,��wY?PvQqۅLM�r3�j��?�߲6����|~G�����o|~�/��ܔʬ/�:�=qp܇돈_��$�U�E,��T�>`&�i�Q,�.���@#��R�!�e���{5��'�r����Lf��`f�3Q�\�)N=��� +<�d��Cx��|�,<�dN���̱�<�90�3��}�`j���٤�����K��K��K�Y�8��A�W���-[�c����[T�wnpgw^��q��������C��r'ɝw�ܹ� t��˿x��,�sg�;org�;��r��;i��k��}2�ӰO��7��O�����N��N�`o��YI� yC���-�����ڤ�K,��E<�E�!Ѐ��a��F�@v��n+�*Ј�.>��l0L�g���/gl�J���GE�zgbG�N�Y�'���.e:�c)>�ZM ���2�-іo�����_4�&�I\Ӭ�e�i�A�Z�?q3�Uk=�1K5`�q�ex/�`S�y�%�XR����~�s3[�k|�wל� �w��dM��G���t����_ycN��<���W�"r#S�ki?u>i�o.��gqᒫ��ќ�����������CS8+��=��.�7�<�����:�<�����=sj?J���9�v������3孑����h��"[#�5��YMD�ѵ�/G�D���hCTDYt]mu��ext��56x����³0�K�G{�U������6��<�F������]�k�>P}������gW��H-����gG��������qD��5������:������3�[ν����ν4>��[O �&Z̝C��&�����;�G��U_��j���1>R������y�9�lxh���h|l^����������H����X��GF�}?/����c�h*Ȼ���~��x���&����65�y �˻:�3<t����iK�)?g�-��9K�����sZ���,�:^Nu�OI&��J�)�Q��S��Q?e=��R�˔���9� �y9�i^FN�����Y>���у�ǻ�wW_<�L{�9�N_=:�]HW�����Y�� �@�$C�ҏt�"!EEl��)R�RB��P5��F�ڭ��u�?�h��J����R��9xϾ�6�q��~�V�Y3�r�U��i�a9I�Y�����{�:K�wQ<pi��Z��@�� P+r�.�j���V�G�)�x��G$������y�ua�<�켌����ݍ���ʖ���'P�А��c�`M!u϶��VS�/��P���t�gV �a��3�p��LHB���a����I�j����L3���*���6�uG�nk�uǿ�?�~����3��!��M՛��)��!�t��a/���!AaPCT1�cSJ�{�9WMf�J�Bj_��!�*ImX,ZWLR�#���dك endstream endobj 21 0 obj <</StemV 88/FontName/WNYQBO+ArialMT/FontFile2 20 0 R/FontStretch/Normal/FontWeight 400/Flags 32/Descent -325/FontBBox[-665 -325 2000 1006]/Ascent 1006/FontFamily(Arial)/CapHeight 716/XHeight 519/Type/FontDescriptor/ItalicAngle 0>> endobj 22 0 obj <</OPM 1/BM/Normal/CA 1.0/OP false/SMask/None/ca 1.0/AIS false/op false/Type/ExtGState/SA true>> endobj 23 0 obj <</Subtype/Form/Length 132/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 18 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.38 957.559 1773.35 937.129]>>stream +BT +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1700.3843 942.7373 Tm +(Concepts)Tj +ET + endstream endobj 24 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 17 0 R/Resources<</XObject<</Fm0 23 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.38 957.559 1773.35 937.129]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 25 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 26 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 27 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 26 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.53 930.149 1777.27 909.719]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1699.5303 915.3271 Tm +(Git Basics)Tj +ET + endstream endobj 28 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 25 0 R/Resources<</XObject<</Fm0 27 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.53 930.149 1777.27 909.719]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 29 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 30 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 31 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 30 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.34 509.643 2291.34 497.455]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2224.3379 500.8008 Tm +(git reset --hard)Tj +ET + endstream endobj 32 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 33 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 32 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.34 500.267 2297.64 488.079]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2224.3379 491.4248 Tm +(git rebase --skip)Tj +ET + endstream endobj 34 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 29 0 R/Resources<</XObject<</Fm0 31 0 R/Fm1 33 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2224.34 509.643 2297.64 488.079]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 35 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 36 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 37 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 36 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 589.187 2249.0 577.0]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 580.3457 Tm +[(git dif)18(f)]TJ +ET + endstream endobj 38 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 39 0 obj <</Subtype/Form/Length 159/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 38 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 579.811 2305.34 567.623]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 570.9687 Tm +[(git dif)18(f --base $file)]TJ +ET + endstream endobj 40 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 41 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 40 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 570.435 2305.9 558.247]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 561.5928 Tm +[(git dif)18(f --ours $file)]TJ +ET + endstream endobj 42 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 43 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 42 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 561.059 2305.33 548.871]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 552.2168 Tm +[(git dif)18(f --theirs $file)]TJ +ET + endstream endobj 44 0 obj <</Subtype/Form/Length 80/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 35 0 R/Resources<</XObject<</Fm0 37 0 R/Fm1 39 0 R/Fm2 41 0 R/Fm3 43 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 589.187 2305.9 548.871]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q + endstream endobj 45 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 46 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 47 0 obj <</Subtype/Form/Length 159/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 46 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2216.22 467.083 2367.05 455.741]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2216.2388 458.8545 Tm +(After resolving conflicts, merge with)Tj +ET + endstream endobj 48 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 45 0 R/Resources<</XObject<</Fm0 47 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2216.22 467.083 2367.05 455.741]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 49 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 50 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 51 0 obj <</Subtype/Form/Length 157/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 50 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2215.22 526.083 2330.35 514.741]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2215.2212 517.8545 Tm +[(T)111(o discard conflicting patch)]TJ +ET + endstream endobj 52 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 49 0 R/Resources<</XObject<</Fm0 51 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2215.22 526.083 2330.35 514.741]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 53 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 54 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 55 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 54 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2192.44 592.631 2212.87 405.451]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 0 17.2716 -17.2716 0 2207.2646 405.4512 Tm +(Resolve Merge Conflicts)Tj +ET + endstream endobj 56 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 53 0 R/Resources<</XObject<</Fm0 55 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2192.44 592.631 2212.87 405.451]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 57 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 58 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 59 0 obj <</Subtype/Form/Length 155/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 58 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2323.55 579.449 2383.86 570.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2323.5471 572.8926 Tm +(\(against base file\))Tj +ET + endstream endobj 60 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 57 0 R/Resources<</XObject<</Fm0 59 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2323.55 579.449 2383.86 570.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 61 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 62 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 63 0 obj <</Subtype/Form/Length 158/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 62 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 569.449 2401.77 560.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2324.0471 562.8926 Tm +(\(against your changes\))Tj +ET + endstream endobj 64 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 61 0 R/Resources<</XObject<</Fm0 63 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 569.449 2401.77 560.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 65 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 66 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 67 0 obj <</Subtype/Form/Length 159/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 66 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 559.449 2404.32 550.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2324.0471 552.8926 Tm +(\(against other changes\))Tj +ET + endstream endobj 68 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 65 0 R/Resources<</XObject<</Fm0 67 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 559.449 2404.32 550.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 69 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 70 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 71 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 70 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 606.203 1773.89 594.016]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.2954 597.3613 Tm +(git checkout $id)Tj +ET + endstream endobj 72 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 69 0 R/Resources<</XObject<</Fm0 71 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 606.203 1773.89 594.016]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 73 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 74 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 75 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 74 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.05 498.646 1864.83 487.305]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699.0522 490.418 Tm +(Create branch $new_branch based on )Tj +ET + endstream endobj 76 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 77 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 76 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.05 486.661 1824.31 475.319]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699.0522 478.4326 Tm +(branch $other and switch to it)Tj +ET + endstream endobj 78 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 73 0 R/Resources<</XObject<</Fm0 75 0 R/Fm1 77 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.05 498.646 1864.83 475.319]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 79 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 80 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 81 0 obj <</Subtype/Form/Length 165/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 80 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1703.12 474.999 1867.08 462.812]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1703.1152 466.1572 Tm +(git checkout -b $new_branch $other)Tj +ET + endstream endobj 82 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 79 0 R/Resources<</XObject<</Fm0 81 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1703.12 474.999 1867.08 462.812]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 83 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 84 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 85 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 84 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 451.145 1795.27 439.803]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1698.2588 442.916 Tm +(Delete branch $branch)Tj +ET + endstream endobj 86 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 83 0 R/Resources<</XObject<</Fm0 85 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 451.145 1795.27 439.803]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 87 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 88 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 89 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 88 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 438.104 1799.67 425.917]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.2954 429.2627 Tm +(git branch -d $branch)Tj +ET + endstream endobj 90 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 87 0 R/Resources<</XObject<</Fm0 89 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 438.104 1799.67 425.917]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 91 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 92 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 93 0 obj <</Subtype/Form/Length 151/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 92 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2177.13 773.046 2305.03 761.704]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2177.1279 764.8174 Tm +(Commit all your local changes)Tj +ET + endstream endobj 94 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 91 0 R/Resources<</XObject<</Fm0 93 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2177.13 773.046 2305.03 761.704]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 95 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 96 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 97 0 obj <</Subtype/Form/Length 143/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 96 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2175.51 805.685 2232.16 785.255]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 2175.5107 790.8633 Tm +(Publish)Tj +ET + endstream endobj 98 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 95 0 R/Resources<</XObject<</Fm0 97 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2175.51 805.685 2232.16 785.255]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 99 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 100 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 101 0 obj <</Subtype/Form/Length 143/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 100 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2178.77 759.134 2237.74 746.946]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2178.7705 750.292 Tm +(git commit -a)Tj +ET + endstream endobj 102 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 99 0 R/Resources<</XObject<</Fm0 101 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2178.77 759.134 2237.74 746.946]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 103 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 104 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 105 0 obj <</Subtype/Form/Length 158/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 104 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2176.56 733.079 2332.74 721.737]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2176.5625 724.8506 Tm +(Prepare a patch for other developers)Tj +ET + endstream endobj 106 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 103 0 R/Resources<</XObject<</Fm0 105 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2176.56 733.079 2332.74 721.737]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 107 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 108 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 109 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 108 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2177.9 720.573 2277.54 708.386]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2177.8994 711.7314 Tm +(git format-patch origin)Tj +ET + endstream endobj 110 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 107 0 R/Resources<</XObject<</Fm0 109 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2177.9 720.573 2277.54 708.386]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 111 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 112 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 113 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 112 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2346.55 449.451 2427.66 440.413]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2346.5513 442.8945 Tm +(\(do for all resolved files\))Tj +ET + endstream endobj 114 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 111 0 R/Resources<</XObject<</Fm0 113 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2346.55 449.451 2427.66 440.413]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 115 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 116 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 117 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 116 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2061.94 585.688 2090.38 576.65]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2061.9385 579.1318 Tm +(\(to start\))Tj +ET + endstream endobj 118 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 115 0 R/Resources<</XObject<</Fm0 117 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2061.94 585.688 2090.38 576.65]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 119 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 120 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 121 0 obj <</Subtype/Form/Length 169/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 120 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2061.65 577.104 2166.53 568.065]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2061.6455 570.5469 Tm +(\($id is the last working version\))Tj +ET + endstream endobj 122 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 119 0 R/Resources<</XObject<</Fm0 121 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2061.65 577.104 2166.53 568.065]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 123 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 124 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 125 0 obj <</Subtype/Form/Length 161/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 124 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2060.89 566.949 2142.43 557.911]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2060.8926 560.3926 Tm +(\($id is a broken version\))Tj +ET + endstream endobj 126 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 123 0 R/Resources<</XObject<</Fm0 125 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2060.89 566.949 2142.43 557.911]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 127 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 128 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 129 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 128 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2067.12 548.723 2156.73 539.685]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2067.1235 542.166 Tm +(\(to mark it as bad or good\))Tj +ET + endstream endobj 130 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 127 0 R/Resources<</XObject<</Fm0 129 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2067.12 548.723 2156.73 539.685]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 131 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 132 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 133 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 132 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2064.29 528.924 2127.77 519.886]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2064.2949 522.3672 Tm +(\(once you're done\))Tj +ET + endstream endobj 134 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 131 0 R/Resources<</XObject<</Fm0 133 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2064.29 528.924 2127.77 519.886]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 135 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 136 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 137 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 136 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2065.0 538.823 2155.03 529.785]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2065.002 532.2666 Tm +(\(to launch gitk and mark it\))Tj +ET + endstream endobj 138 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 135 0 R/Resources<</XObject<</Fm0 137 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2065.0 538.823 2155.03 529.785]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 139 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 140 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 141 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 140 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2178.9 684.565 2214.99 672.378]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2178.8994 675.7236 Tm +(git push)Tj +ET + endstream endobj 142 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 139 0 R/Resources<</XObject<</Fm0 141 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2178.9 684.565 2214.99 672.378]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 143 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 144 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 145 0 obj <</Subtype/Form/Length 144/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 144 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2176.0 697.824 2273.54 686.482]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2175.9966 689.5957 Tm +(Push changes to origin)Tj +ET + endstream endobj 146 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 143 0 R/Resources<</XObject<</Fm0 145 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2176.0 697.824 2273.54 686.482]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 147 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 148 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 149 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 148 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2175.83 656.535 2287.74 645.193]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2175.834 648.3066 Tm +(Mark a version / milestone)Tj +ET + endstream endobj 150 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 147 0 R/Resources<</XObject<</Fm0 149 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2175.83 656.535 2287.74 645.193]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 151 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 152 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 153 0 obj <</Subtype/Form/Length 143/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 152 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2178.91 644.332 2229.32 632.145]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2178.9126 635.4902 Tm +(git tag v1.0)Tj +ET + endstream endobj 154 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 151 0 R/Resources<</XObject<</Fm0 153 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2178.91 644.332 2229.32 632.145]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 155 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 156 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 157 0 obj <</Subtype/Form/Length 166/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 156 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2270.63 588.949 2344.8 579.911]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2270.6309 582.3926 Tm +[(\(complete conflict dif)18(f\))]TJ +ET + endstream endobj 158 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 155 0 R/Resources<</XObject<</Fm0 157 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2270.63 588.949 2344.8 579.911]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 159 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 160 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 161 0 obj <</Subtype/Form/Length 171/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 160 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1508.13 506.449 1621.02 497.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1508.1309 499.8926 Tm +(\(star '*' marks the current branch\))Tj +ET + endstream endobj 162 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 159 0 R/Resources<</XObject<</Fm0 161 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1508.13 506.449 1621.02 497.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 163 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 164 0 obj <</Subtype/Form/Length 952/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 163 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2047.73 697.751 2056.45 690.265]>>stream +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +q 1 0 0 1 2052.4512 697.7441 cm +0 0 m +-1.796 -0.206 -3.205 -1.734 -3.205 -3.585 c +-3.205 -3.927 -3.156 -4.271 -3.067 -4.584 c +-3.128 -4.577 -3.177 -4.584 -3.239 -4.584 c +-3.492 -4.584 -3.756 -4.645 -3.963 -4.757 c +-4.024 -4.792 -4.115 -4.852 -4.17 -4.895 c +-4.225 -4.939 -4.295 -5.015 -4.343 -5.067 c +-4.449 -5.19 -4.557 -5.36 -4.618 -5.516 c +-4.676 -5.672 -4.722 -5.855 -4.722 -6.032 c +-4.722 -6.246 -4.667 -6.469 -4.584 -6.652 c +-4.491 -6.845 -4.332 -7.035 -4.17 -7.17 c +-4.115 -7.213 -4.024 -7.272 -3.963 -7.308 c +-3.756 -7.42 -3.492 -7.479 -3.239 -7.479 c +-2.962 -7.479 -2.702 -7.407 -2.481 -7.273 c +-2.333 -7.178 -2.173 -7.034 -2.067 -6.894 c +-2.02 -6.827 -1.966 -6.728 -1.93 -6.652 c +-1.9 -6.588 -1.881 -6.516 -1.861 -6.445 c +-1.859 -6.44 -1.828 -6.451 -1.826 -6.445 c +-1.213 -6.928 -0.426 -7.204 0.414 -7.204 c +2.405 -7.204 3.999 -5.576 3.999 -3.585 c +3.999 -1.594 2.405 0 0.414 0 c +0.274 0 0.137 0.016 0 0 c +f +Q + endstream endobj 165 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 166 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 167 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 166 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1942.98 733.861 2071.42 722.52]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1942.9766 725.6328 Tm +(Pull latest changes from origin)Tj +ET + endstream endobj 168 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 165 0 R/Resources<</XObject<</Fm0 167 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1942.98 733.861 2071.42 722.52]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 169 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 170 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 171 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 170 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1945.97 721.477 1975.76 709.289]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1945.9746 712.6348 Tm +(git pull)Tj +ET + endstream endobj 172 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 169 0 R/Resources<</XObject<</Fm0 171 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1945.97 721.477 1975.76 709.289]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 173 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 174 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 175 0 obj <</Subtype/Form/Length 169/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 174 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1950.53 708.223 2067.75 699.185]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1950.5283 701.666 Tm +(\(does a fetch followed by a merge\))Tj +ET + endstream endobj 176 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 173 0 R/Resources<</XObject<</Fm0 175 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1950.53 708.223 2067.75 699.185]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 177 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 178 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 179 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 178 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1943.98 774.44 2080.41 763.099]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1943.9766 766.2119 Tm +(Fetch latest changes from origin)Tj +ET + endstream endobj 180 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 177 0 R/Resources<</XObject<</Fm0 179 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1943.98 774.44 2080.41 763.099]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 181 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 182 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 183 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 182 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1942.36 800.362 1998.05 779.933]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1942.3589 785.541 Tm +(Update)Tj +ET + endstream endobj 184 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 181 0 R/Resources<</XObject<</Fm0 183 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1942.36 800.362 1998.05 779.933]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 185 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 186 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 187 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 186 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 761.884 1589.29 750.542]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 753.6553 Tm +(Changes to tracked files)Tj +ET + endstream endobj 188 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 185 0 R/Resources<</XObject<</Fm0 187 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 761.884 1589.29 750.542]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 189 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 190 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 191 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 190 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1945.62 761.529 1981.7 749.342]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1945.6187 752.6875 Tm +(git fetch)Tj +ET + endstream endobj 192 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 189 0 R/Resources<</XObject<</Fm0 191 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1945.62 761.529 1981.7 749.342]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 193 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 194 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 195 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 194 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 785.703 1533.65 773.515]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 776.8604 Tm +(git status)Tj +ET + endstream endobj 196 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 193 0 R/Resources<</XObject<</Fm0 195 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 785.703 1533.65 773.515]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 197 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 198 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 199 0 obj <</Subtype/Form/Length 167/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 198 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1949.41 749.543 2055.58 740.505]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1949.4131 742.9863 Tm +(\(but this does not merge them\).)Tj +ET + endstream endobj 200 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 197 0 R/Resources<</XObject<</Fm0 199 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1949.41 749.543 2055.58 740.505]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 201 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 202 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 203 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 202 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 749.281 1522.58 737.094]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 740.4395 Tm +[(git dif)18(f )]TJ +ET + endstream endobj 204 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 201 0 R/Resources<</XObject<</Fm0 203 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 749.281 1522.58 737.094]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 205 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 206 0 obj <</Subtype/Form/Length 175/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 205 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2001.07 670.566 2128.91 661.528]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2001.0737 664.0098 Tm +(\(in case of a conflict, resolve and use )Tj +ET + endstream endobj 207 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 208 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 209 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 208 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 557.562 1568.59 545.374]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 548.7197 Tm +(git show $id:$file)Tj +ET + endstream endobj 210 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 207 0 R/Resources<</XObject<</Fm0 209 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 557.562 1568.59 545.374]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 211 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 212 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 211 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2001.07 661.016 2060.1 651.978]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2001.0737 654.459 Tm +( git am --resolved)Tj +ET + endstream endobj 213 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 214 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 215 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 214 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 535.667 1561.57 524.325]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 527.4385 Tm +(All local branches)Tj +ET + endstream endobj 216 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 213 0 R/Resources<</XObject<</Fm0 215 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 535.667 1561.57 524.325]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 217 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 218 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 219 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 218 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1943.4 693.856 2085.19 682.515]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1943.4106 685.6279 Tm +(Apply a patch that some sent you)Tj +ET + endstream endobj 220 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 217 0 R/Resources<</XObject<</Fm0 219 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1943.4 693.856 2085.19 682.515]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 221 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 222 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 223 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 222 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 521.378 1537.67 509.19]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 512.5361 Tm +(git branch)Tj +ET + endstream endobj 224 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 221 0 R/Resources<</XObject<</Fm0 223 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 521.378 1537.67 509.19]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 225 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 226 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 227 0 obj <</Subtype/Form/Length 151/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 226 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1945.75 681.351 2041.96 669.163]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1945.7476 672.5088 Tm +(git am -3 patch.mbox)Tj +ET + endstream endobj 228 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 225 0 R/Resources<</XObject<</Fm0 227 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1945.75 681.351 2041.96 669.163]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 229 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 230 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 231 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 230 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 698.087 1565.83 686.745]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 689.8584 Tm +(History of changes)Tj +ET + endstream endobj 232 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 229 0 R/Resources<</XObject<</Fm0 231 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 698.087 1565.83 686.745]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 233 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 234 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 235 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 234 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1956.61 601.756 2040.29 590.414]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1956.6113 593.5273 Tm +(Finding regressions)Tj +ET + endstream endobj 236 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 233 0 R/Resources<</XObject<</Fm0 235 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1956.61 601.756 2040.29 590.414]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 237 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 238 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 239 0 obj <</Subtype/Form/Length 138/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 238 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 685.984 1522.78 673.797]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 677.1426 Tm +(git log )Tj +ET + endstream endobj 240 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 237 0 R/Resources<</XObject<</Fm0 239 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 685.984 1522.78 673.797]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 241 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 242 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 243 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 242 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 587.172 2028.7 574.984]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 578.3301 Tm +(git bisect start)Tj +ET + endstream endobj 244 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 245 0 obj <</Subtype/Form/Length 150/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 244 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 577.796 2048.2 565.608]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 568.9541 Tm +(git bisect good $id)Tj +ET + endstream endobj 246 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 247 0 obj <</Subtype/Form/Length 149/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 246 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 568.42 2042.46 556.232]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 559.5781 Tm +(git bisect bad $id)Tj +ET + endstream endobj 248 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 249 0 obj <</Subtype/Form/Length 150/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 248 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 549.667 2051.64 537.479]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 540.8252 Tm +(git bisect bad/good)Tj +ET + endstream endobj 250 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 251 0 obj <</Subtype/Form/Length 151/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 250 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 540.29 2048.17 528.103]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 531.4482 Tm +(git bisect visualize)Tj +ET + endstream endobj 252 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 253 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 252 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 530.914 2031.57 518.727]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 522.0723 Tm +(git bisect reset)Tj +ET + endstream endobj 254 0 obj <</Subtype/Form/Length 120/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 241 0 R/Resources<</XObject<</Fm0 243 0 R/Fm1 245 0 R/Fm2 247 0 R/Fm3 249 0 R/Fm4 251 0 R/Fm5 253 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 587.172 2051.64 518.727]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q +q +/GS0 gs +/Fm4 Do +Q +q +/GS0 gs +/Fm5 Do +Q + endstream endobj 255 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 256 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 257 0 obj <</Subtype/Form/Length 157/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 256 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 638.119 1645.81 626.777]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 629.8906 Tm +(Who changed what and when in a file)Tj +ET + endstream endobj 258 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 255 0 R/Resources<</XObject<</Fm0 257 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 638.119 1645.81 626.777]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 259 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 260 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 261 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 260 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 626.734 1558.85 614.547]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 617.8926 Tm +(git blame $file )Tj +ET + endstream endobj 262 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 259 0 R/Resources<</XObject<</Fm0 261 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 626.734 1558.85 614.547]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 263 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 264 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 265 0 obj <</Subtype/Form/Length 161/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 264 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 499.786 2124.88 488.444]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1956.4619 491.5576 Tm +(Check for errors and cleanup repository)Tj +ET + endstream endobj 266 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 263 0 R/Resources<</XObject<</Fm0 265 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 499.786 2124.88 488.444]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 267 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 268 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 269 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 268 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 485.202 1997.05 473.015]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1964.9873 476.3604 Tm +(git fsck)Tj +ET + endstream endobj 270 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 271 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 270 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 475.826 2025.69 463.639]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1964.9873 466.9844 Tm +(git gc --prune)Tj +ET + endstream endobj 272 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 267 0 R/Resources<</XObject<</Fm0 269 0 R/Fm1 271 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 485.202 2025.69 463.639]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 273 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 274 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 275 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 274 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 725.608 1651.67 714.267]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 717.3799 Tm +(What changed between $ID1 and $ID2)Tj +ET + endstream endobj 276 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 273 0 R/Resources<</XObject<</Fm0 275 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 725.608 1651.67 714.267]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 277 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 278 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 279 0 obj <</Subtype/Form/Length 158/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 278 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 452.85 2098.21 441.508]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1956.4619 444.6211 Tm +(Search working directory for foo\(\))Tj +ET + endstream endobj 280 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 277 0 R/Resources<</XObject<</Fm0 279 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 452.85 2098.21 441.508]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 281 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 282 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 283 0 obj <</Subtype/Form/Length 155/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 282 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 714.224 1567.27 702.036]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 705.3818 Tm +[(git dif)18(f $id1 $id2)]TJ +ET + endstream endobj 284 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 281 0 R/Resources<</XObject<</Fm0 283 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 714.224 1567.27 702.036]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 285 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 286 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 287 0 obj <</Subtype/Form/Length 149/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 286 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 438.266 2030.72 426.078]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1964.9873 429.4238 Tm +(git grep "foo\(\)")Tj +ET + endstream endobj 288 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 285 0 R/Resources<</XObject<</Fm0 287 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 438.266 2030.72 426.078]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 289 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 290 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 291 0 obj <</Subtype/Form/Length 166/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 290 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 668.756 1634.4 657.414]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 660.5273 Tm +[(History of changes for file with dif)18(fs)]TJ +ET + endstream endobj 292 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 289 0 R/Resources<</XObject<</Fm0 291 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 668.756 1634.4 657.414]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 293 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 294 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 295 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 294 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2216.47 603.756 2333.71 592.414]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2216.4697 595.5273 Tm +[(T)111(o view the merge conclicts)]TJ +ET + endstream endobj 296 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 293 0 R/Resources<</XObject<</Fm0 295 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2216.47 603.756 2333.71 592.414]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 297 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 298 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 299 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 298 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 657.153 1610.4 644.966]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 648.3115 Tm +(git log -p $file $dir/ec/tory/)Tj +ET + endstream endobj 300 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 297 0 R/Resources<</XObject<</Fm0 299 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 657.153 1610.4 644.966]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 301 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 302 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 303 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 302 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.0 451.172 2328.24 438.984]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2223.9951 442.3301 Tm +(git add $conflicting_file)Tj +ET + endstream endobj 304 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 305 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 304 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.0 441.796 2317.93 429.608]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2223.9951 432.9541 Tm +(git rebase --continue)Tj +ET + endstream endobj 306 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 301 0 R/Resources<</XObject<</Fm0 303 0 R/Fm1 305 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2224.0 451.172 2328.24 429.608]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 307 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 308 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 309 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 308 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 604.109 1597.27 592.768]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 595.8809 Tm +[(A)55( commit identified by $ID)]TJ +ET + endstream endobj 310 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 307 0 R/Resources<</XObject<</Fm0 309 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 604.109 1597.27 592.768]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 311 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 312 0 obj <</Subtype/Form/Length 319/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 311 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1930.1 1111.28 2416.49 826.791]>>stream +/CS0 cs 0.941 0.941 0.941 scn +1 i +/GS0 gs +q 1 0 0 1 1937.1807 1111.2783 cm +0 0 m +472.226 0 l +476.136 0 479.307 -3.17 479.307 -7.081 c +479.307 -277.405 l +479.307 -281.317 476.136 -284.487 472.226 -284.487 c +0 -284.487 l +-3.911 -284.487 -7.082 -281.317 -7.082 -277.405 c +-7.082 -7.081 l +-7.082 -3.17 -3.911 0 0 0 c +f +Q + endstream endobj 313 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 314 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 315 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 314 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 590.819 1546.83 578.632]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 581.9775 Tm +(git show $id)Tj +ET + endstream endobj 316 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 313 0 R/Resources<</XObject<</Fm0 315 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 590.819 1546.83 578.632]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 317 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 318 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 319 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 318 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2365.94 1003.27 2391.34 996.387]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 5.9363 0 0 5.8179 2365.9409 998.2764 Tm +(PUBLISH)Tj +ET + endstream endobj 320 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 317 0 R/Resources<</XObject<</Fm0 319 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2365.94 1003.27 2391.34 996.387]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 321 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 322 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 323 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 322 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.41 848.674 1751.28 828.244]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1700.4111 833.8525 Tm +(Revert)Tj +ET + endstream endobj 324 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 321 0 R/Resources<</XObject<</Fm0 323 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.41 848.674 1751.28 828.244]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 325 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 326 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 327 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 326 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2307.5 1003.35 2333.56 995.867]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2307.4956 997.9219 Tm +(COMMIT)Tj +ET + endstream endobj 328 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 325 0 R/Resources<</XObject<</Fm0 327 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2307.5 1003.35 2333.56 995.867]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 329 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 330 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 331 0 obj <</Subtype/Form/Length 144/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 330 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 781.717 1796.35 770.375]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1700.9683 773.4883 Tm +(Revert the last commit)Tj +ET + endstream endobj 332 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 329 0 R/Resources<</XObject<</Fm0 331 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 781.717 1796.35 770.375]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 333 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 334 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 335 0 obj <</Subtype/Form/Length 136/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 334 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2300.1 994.6 2335.29 981.683]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.9199 0 0 10.9199 2300.1016 985.229 Tm +(commit)Tj +ET + endstream endobj 336 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 333 0 R/Resources<</XObject<</Fm0 335 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2300.1 994.6 2335.29 981.683]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 337 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 338 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 339 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 338 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.61 769.805 1776.05 757.617]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1701.6108 760.9629 Tm +(git revert HEAD )Tj +ET + endstream endobj 340 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 337 0 R/Resources<</XObject<</Fm0 339 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.61 769.805 1776.05 757.617]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 341 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 342 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 343 0 obj <</Subtype/Form/Length 144/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 342 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 751.138 1797.41 739.796]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1700.9683 742.9092 Tm +(Revert specific commit)Tj +ET + endstream endobj 344 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 341 0 R/Resources<</XObject<</Fm0 343 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 751.138 1797.41 739.796]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 345 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 346 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 347 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 346 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2134.5 1003.35 2160.46 995.868]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2134.5015 997.9224 Tm +[(REVER)18(T)]TJ +ET + endstream endobj 348 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 345 0 R/Resources<</XObject<</Fm0 347 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2134.5 1003.35 2160.46 995.868]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 349 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 350 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 351 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 350 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2245.66 1002.85 2272.92 995.368]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2245.6582 997.4229 Tm +(BRANCH)Tj +ET + endstream endobj 352 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 349 0 R/Resources<</XObject<</Fm0 351 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2245.66 1002.85 2272.92 995.368]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 353 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 354 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 355 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 354 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 737.753 1760.52 725.565]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1700.9663 728.9111 Tm +(git revert $id )Tj +ET + endstream endobj 356 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 353 0 R/Resources<</XObject<</Fm0 355 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 737.753 1760.52 725.565]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 357 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 358 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 359 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 358 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2021.07 1003.35 2049.76 995.866]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3274 2021.0674 997.9209 Tm +(BROWSE)Tj +ET + endstream endobj 360 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 357 0 R/Resources<</XObject<</Fm0 359 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2021.07 1003.35 2049.76 995.866]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 361 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 362 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 363 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 362 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 677.439 1839.06 666.098]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699.9502 669.2109 Tm +(Checkout the $id version of a file)Tj +ET + endstream endobj 364 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 361 0 R/Resources<</XObject<</Fm0 363 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 677.439 1839.06 666.098]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 365 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 366 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 367 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 366 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2189.24 1003.23 2214.95 995.746]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2189.2417 997.8003 Tm +[(UPDA)74(TE)]TJ +ET + endstream endobj 368 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 365 0 R/Resources<</XObject<</Fm0 367 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2189.24 1003.23 2214.95 995.746]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 369 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 370 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 371 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 370 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 664.337 1793.31 652.149]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1699.9487 655.4951 Tm +(git checkout $id $file)Tj +ET + endstream endobj 372 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 369 0 R/Resources<</XObject<</Fm0 371 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 664.337 1793.31 652.149]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 373 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 374 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 375 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 374 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1967.88 1003.35 1993.59 995.868]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.456 0 0 6.3273 1967.8794 997.9224 Tm +[(CREA)74(TE)]TJ +ET + endstream endobj 376 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 373 0 R/Resources<</XObject<</Fm0 375 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1967.88 1003.35 1993.59 995.868]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 377 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 378 0 obj <</Subtype/Form/Length 194/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 377 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1771.6 802.218 1781.11 793.555]>>stream +/CS0 cs 0.678 0.678 0.675 scn +1 i +/GS0 gs +q 1 0 0 1 1776.3574 802.2178 cm +0 0 m +0.095 0 4.804 -8.513 4.756 -8.599 c +4.709 -8.685 -4.709 -8.685 -4.757 -8.599 c +-4.805 -8.513 -0.096 0 0 0 c +f +Q + endstream endobj 379 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 380 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 381 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 380 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2020.8 993.534 2046.51 982.137]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2020.8047 985.2656 Tm +(status)Tj +ET + endstream endobj 382 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 383 0 obj <</Subtype/Form/Length 132/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 382 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2027.23 985.826 2040.09 974.429]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2027.2285 977.5576 Tm +(log)Tj +ET + endstream endobj 384 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 385 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 384 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2022.41 978.118 2044.9 966.721]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2022.4111 969.8496 Tm +(show)Tj +ET + endstream endobj 386 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 387 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 386 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2027.32 970.411 2040.33 959.014]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2027.3184 962.1426 Tm +[(dif)18(f)]TJ +ET + endstream endobj 388 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 389 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 388 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2018.93 962.703 2048.39 951.306]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2018.9277 954.4346 Tm +(branch)Tj +ET + endstream endobj 390 0 obj <</Subtype/Form/Length 100/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 379 0 R/Resources<</XObject<</Fm0 381 0 R/Fm1 383 0 R/Fm2 385 0 R/Fm3 387 0 R/Fm4 389 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2018.93 993.534 2048.39 951.306]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q +q +/GS0 gs +/Fm4 Do +Q + endstream endobj 391 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 392 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 393 0 obj <</Subtype/Form/Length 123/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 392 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1773.87 801.553 1775.8 793.559]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.9394 0 0 6.7572 1773.8711 795.7534 Tm +(!)Tj +ET + endstream endobj 394 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 391 0 R/Resources<</XObject<</Fm0 393 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1773.87 801.553 1775.8 793.559]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 395 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 396 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 397 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 396 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2136.21 992.399 2157.61 981.014]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6249 0 0 9.6249 2136.209 984.1396 Tm +(reset)Tj +ET + endstream endobj 398 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 399 0 obj <</Subtype/Form/Length 137/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 398 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2127.65 984.699 2166.17 973.314]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6249 0 0 9.6249 2127.6465 976.4395 Tm +(checkout)Tj +ET + endstream endobj 400 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 401 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 400 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2134.61 976.999 2159.21 965.614]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6249 0 0 9.6249 2134.6055 968.7393 Tm +(revert)Tj +ET + endstream endobj 402 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 395 0 R/Resources<</XObject<</Fm0 397 0 R/Fm1 399 0 R/Fm2 401 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2127.65 992.399 2166.17 965.614]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 403 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 404 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 405 0 obj <</Subtype/Form/Length 123/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 404 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1774.1 801.329 1776.02 793.336]>>stream +BT +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.9394 0 0 6.7572 1774.0962 795.5303 Tm +(!)Tj +ET + endstream endobj 406 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 407 0 obj <</Subtype/Form/Length 218/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 406 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1774.1 801.329 1776.02 793.336]>>stream +/CS0 CS 0.631 0.506 0.114 SCN +1 i 0.579 w 4 M 1 j 1 J []0 d +/GS0 gs +q 1 0 0 1 1775.272 796.7314 cm +0 0 m +0.176 2.563 l +0.176 3.636 l +-0.579 3.636 l +-0.579 2.563 l +-0.393 0 l +0 0 l +h +0.149 -0.525 -0.702 -0.676 re +S +Q + endstream endobj 408 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 403 0 R/Resources<</XObject<</Fm0 405 0 R/Fm1 407 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1774.1 801.329 1776.02 793.336]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 409 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 410 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 411 0 obj <</Subtype/Form/Length 134/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 410 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2193.87 993.136 2209.69 981.117]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2193.8691 984.416 Tm +(pull)Tj +ET + endstream endobj 412 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 413 0 obj <</Subtype/Form/Length 136/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 412 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2190.76 985.007 2212.79 972.988]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2190.7637 976.2871 Tm +(fetch)Tj +ET + endstream endobj 414 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 415 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 414 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2187.38 976.878 2216.18 964.858]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2187.377 968.1582 Tm +(merge)Tj +ET + endstream endobj 416 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 417 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 416 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2194.72 968.749 2208.84 956.73]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2194.7207 960.0293 Tm +(am)Tj +ET + endstream endobj 418 0 obj <</Subtype/Form/Length 80/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 409 0 R/Resources<</XObject<</Fm0 411 0 R/Fm1 413 0 R/Fm2 415 0 R/Fm3 417 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2187.38 993.136 2216.18 956.73]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q + endstream endobj 419 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 420 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 421 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 420 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1786.95 802.689 1886.35 793.652]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1786.9492 796.1328 Tm +(you cannot undo a hard reset)Tj +ET + endstream endobj 422 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 419 0 R/Resources<</XObject<</Fm0 421 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1786.95 802.689 1886.35 793.652]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 423 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 424 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 425 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 424 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2365.77 995.113 2391.52 981.068]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 11.8731 0 0 11.8731 2365.7734 984.9238 Tm +(push)Tj +ET + endstream endobj 426 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 423 0 R/Resources<</XObject<</Fm0 425 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2365.77 995.113 2391.52 981.068]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 427 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 428 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 429 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 428 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.04 824.419 1844.4 813.077]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1701.04 816.1904 Tm +(Return to the last committed state)Tj +ET + endstream endobj 430 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 427 0 R/Resources<</XObject<</Fm0 429 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.04 824.419 1844.4 813.077]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 431 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 432 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 433 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 432 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1973.64 992.281 1985.51 981.297]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.2852 0 0 9.2852 1973.6396 984.3125 Tm +(init)Tj +ET + endstream endobj 434 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 435 0 obj <</Subtype/Form/Length 134/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 434 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1968.48 984.852 1990.67 973.868]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.2852 0 0 9.2852 1968.4756 976.8838 Tm +(clone)Tj +ET + endstream endobj 436 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 431 0 R/Resources<</XObject<</Fm0 433 0 R/Fm1 435 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1968.48 992.281 1990.67 973.868]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 437 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 438 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 439 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 438 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.68 813.507 1767.68 801.319]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1700.6826 804.665 Tm +(git reset --hard)Tj +ET + endstream endobj 440 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 437 0 R/Resources<</XObject<</Fm0 439 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.68 813.507 1767.68 801.319]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 441 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 442 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 443 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 442 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 718.624 1781.39 707.282]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1701.4678 710.3955 Tm +(Fix the last commit)Tj +ET + endstream endobj 444 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 441 0 R/Resources<</XObject<</Fm0 443 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 718.624 1781.39 707.282]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 445 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 446 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 447 0 obj <</Length 11404/Filter/FlateDecode/Length1 21819>>stream +H��W{tLW��s<0y���NF�D�-AE$ޏ�D=d��$��x+�j����-� ��^U�"�,aU��Tէ1%����3���Z����G�]�s�9��s��w��P�! �OtP�����{*�'�[Fuؒ�f��y��T�p�m?�=�d�L��I���v�:��/9&�4�K��o5Ι�G\z'ස�[�I�n:S��뛓R�\�gR�A@l1f������d��#�k'ŧYĻR8�����I Jg���T�ZƦ�&ϸGc�v����K��L ��wL<�C�(uO�pGͣ���t��i\At��t`�rw8��Q�)`��p��͛�j��$f�a �%;%-���%���L�Y�b�T4�3�dz +����\\�ܫT�������Z��ߨY�v���d�����_����6 +nڬy���Z� mۮ���:�w���ܥk��=z���'�o���o x;&v�;��a�G$�F�G%���<�2n|Jꄉ���'gL�:-s��3�fΚ=g���[�({�˖�����s?Z���k>Y�i��mظi�۶��Ŏ���v~�g��:|䫣ǎ�8���oN}{滳8w�����K��\�������t�P�Q�`gZ��걦,�E�x�Ʀ����&l�~r�*o1��h|����t�I�=���� +��i�;�˂YG֏ !ݩ�{�_Ru�H7D��>�T�8�ev��p��N��5�!��d7۽*�+�7rn̺1�4Q�\w}(p�W� +^*���P{�D��D�ɬ�Z�;[�)fb�#�1���c#�h����,,�ox����s���>Va�C�~�Zl��8�m��X�� 8�S8��(·� &��w8���_�%8�b��3�0���H�$c �b,�L@*&b� ���L��d:��.���A%lΓ�a��Ag��p7pW)Z�����p�ۅݠ����1�g��8�6c���G�!}N�1�s�/E����Cì������7��&ѝ�BGڮp�;E���F�y�^�Fu��xo/k�6�.������?4@C4Bc�#��h� �)��9���h��ďbw[�C{��CG��"��肮��聞���(�E?D�?������b �� �E�i� +�#qak&$ �1�f2!i!,$S K�4Bq2�8���F(*�L�R�7��Kl�O�{����������ا�7�ط����GXI�\E���{������H��L��J|||����`^�/�/{�����s�}�Xp�8|��|������� �*l-!f]$]vr�1����Nϧ�|1��ϱ���召�x��؉�b��~�����?��wĘ��_y�)�ࠪ�d�ȕ<c"oJ��+a���) +�B5�C�j �&BS��.D:�i#5�F<�S�ì�����S�����B,yU���Q�x��(?e�Kn�f߈��5Κh��v�)�Xqϫ���js��l��I�������+t�ig���|�֝��������U�x���T����\�����j���zm=6�����������O�Q�gFf�V!y���SH���l�C������N~��1��4WR�f�^�y����L��Bޏ� E�rߊhws�<�N���ZA���N�V�Qt��B<�QNkl���Md%�,�|�Ba�����ܟ�* ���i��O�K���bI�H%o���WO���c�yo�[6K$���$���A�#��H%����1�t1N}3�ճ5�o>I�c�4#X�A>W�H�����Ro:��f�T���o��N���XW��ЁdbO:�Z�l �$_�J"�i��%�oB��Pȡ�U/��c�F�M�c���&:�=�b�h��(���H��d}>��6"?�o�|2��\W�k�|D�WI�������/��|u������o�EF8W��� Yt5��IHP�m9�Y�#"jQ3�]� +�U���pAG�˚B_\V\��a��5x�"*R�Z?�r�U��kG�X�0�g�9e�'ꋏ��(ڧ��Ak`Q��PYγ�h�0���KDV���0=�P$s���}K�ԃʂi�Z��Rb}Xs��VU��`A���,�Ԍ����>a��ZK�ZI/��P�� b�F#q� �"��h����P-<|�Ƴ�*�AE�'�m+D_�Y[���l���~&ȘF ��Sf��)����*n�<���������K��˒�r�X��8����i��"&�B���j3X�\5���xO�"CJH�h�$�1���$�1�$��th�I-���6W�h���f���������$��V���8�ƥj�~��n����E��$Jr�f �=�H�Y�D,)p c�)h���8��G���JK>rj���M +͘�<ܱ��C�o���x��7����ݳ��7lɞ�^�VÙ��,o#ڲs��ե_oD����e��0Z��g���M]�8fwu�NG����r\��L�]2Z�F� J_#9�Go�P=V�i��(-������f��4C&�h��#u�-�<�}�rL���Pl���^y���ςc����n|���n��^���9յ�ٍ���=��m�ͱ/��X�D����"%�2�I�Z� �e�(�(�VK�,j�[�X�,���{���G���tO��<>���r�w]��x裿fOe�}��,U�9�����d��yUE��{�ׁ��jX-Cr4;��hH�҃gtz�[L�v`�B���(�A&Rc��J\_�k4����XZk��:R4 ��*��9U���8YS�Z�Q?���m��(�l��>������n�Md���/�ѱ�T�Y��#��dCm�����iò7��x}k������wn ���v>�8� +N�'�[��^Gx1ϕ�e �]��(��4�ԥ��qZ������<����쒁���$:u + +��m�~�>�De��r~]A`��� !9��L!s9*���!s�Y��(@����~�o�+P���zS�YnA-�����`\l�T彁`y���¥%��t���kݴ~��٣�Oۇ��Z����qKbh�!���^����m,��U�3g��#���'�g�El-���nBT�£bU,��b��zb�M1�Ii( Aa�RO$�#S�Q^Km`i^�@�a��i8d������Ŗ����N~��p���+�e��G���^�CW3�㇇�Y�*�G]�\'����o�%�~ҩ"� ��[@H� 8H��LTG�d\E�h��x�zuf���f����$��9�s�ua����i�Ԯ�_ͅ�W����+�Iy�рlv���NO�:�`4���pC��FCT�"��`Y�kcSJ���՛ +�( <��w��1�-@�.f�X +�[-�,<3zs\u�0mM&��{��#�s ����4��_( ���1@ht��i�ۀݘ�Q�H�iMZ�ֿjM���_yՖ�<�s �Wn��JK�=��9X�X��¹6&�>���k�6��/���UgV�}�b��:�xam�Iߊ�6��a�d�|�6���y�M�E��?=�Ճ�"-X ���U����`c#"?��' +2R�>���5�V^���D������0Ip�O���� �)J�%L=�ۼ^��6z|R>�O�w��i�.MN�Q�g`���{7�~�0ee��j�ee9"FL� l8Ä�n�ّD��7\]N�9�v�횪yw�n�ڎ���������ظ����/��[Ț���}��+�t����1�V�]�$�06�2jp5;R����L�I�Ƥ��9&�krNrs���9IO���;�|���[.miJ�����+UV��������`��O~�]�����ߎ�55����g}s�:��+w�c$��2) ��aa�F�,p6S&�"�"�O�$J1)Q�Ģ��M��y�IV�FZR,�ɩм3������ܼ��:��w�2�����L9�}�wSAn�5��-���hvEǡ5C��C��.�l�#���Z������|e�ƍ͍ WW��1?������?��{V�x]���V�M��(���yQ��k4�Rz�v:e��'�NĒnG�#����&�r٤J5��j�(fkgD%q�H�I6iMڒ��#��Zp��tx��[��x�:��<Dk6?�yv����^��nY�pljK�n�o4�oO�����OX�s�������gt�7_9�M<�.Q��T@�i!e/��2Z�Д�S� ��y�R�i{i�B��ΠWt/��<`�QA<l�Ό��0�ry6Z<:Kw��pKFЍQ�c �I��)��:i.��=��bl��C��^p�8�.��M�w���w=qz:�0Wf���rH4OR��w +�Iw#x�4KpK�ʌQ���칔�G�f���^5@Q]W�������]��_~w�B��B�QF�� +���!h�0���l���Xg��1 ��n�N�N�����8i��3Zk�Nj�����1�qw{�{����w߽�s���N�9M-���D�r�K�9áR ��= �z�1���J������&2���"�7����#� ���T�A�9�b�rbe��M��р�=��������w@T�1�V�i���F/x�j3f���N�D��(���CGLA��I0�Ш`�[J JݼB�j56���-�̒�)[d�ׂo_��i��Oí�Ǿ��H~�kzT +�˘�_��� �)%��/d�,d`"������ +R�� :$jDJ,4�CXfq��$��7�\S�&T�N $�g;����`:>�t�0��.�d��D��[���ڋ�7�X}t��`��p�� � ��\tӿ=-5%9�Ow�6���C��.�����N�I�(�2yo���gdxKd� ���ԉ��@̰۟��N���%x$g�xmv��<��f �h�#�Z���&R���Dh���O�.��w��դ�x2��uo��U�kj����(���_b*ZR�'�8�dV�q��*����g7�0�z�=f�|_uMnO��b*XP�.�'|'l�k�W7���Z��;���5�;˗�F{��-{e%�_G{������(�����0�_Q�%J��E�Y�t���R��Q:q��\Sx2Fۡ6ԃ�JC�ߤ!�D�o۞�����LWJ���O��Dr�ٴ(+{ +�P+9>�g�+��W���ȇX_�f����=������w��|-��֎��O8a��P���Fn'Ha�J��fzXk�]��ͦ�<���Lf����#au<Lq�Y �ҬSZ@�7mǯ��,��'L�$�P���� �0+�����Q�ӉɄ��ܩ� r��m�I-���c����¶�?���/X��E��{��O4bh}�>��>��B�ʺ _������������x�e����K-d�%zh�gH�f�(����tB��ح ���bVÙ�:��*�I"2����T�m.�ʚ�Hn(������;r'���[��}O�]yy_^��pM#^�z@�}�7� i��i��1�y�-�AH�[v�Hz����&\��6��f.��o�>�-��ThhS�F�6s�, mb�[���;ډ�����o�Z��٭�\���m��bT�W�U��Va�Cu����مv�]̮�.ԅ��������A4���w��es�S�ȍ��� +셨W�J��0��<��:h��y�t�ٴ���q���w�x�s�ve�����u�[���Ã�+fqy_���?�/hih^�1fWw��F=���� [q�Y~i��Od��e��m��( ���1�Lr">)�))iH�� 9�]-��@�{r��f'�Hw 9�1���$^rPb3�����B�t^3%���Bh��J�t��^\DH��Ee�����N�fu�gi��|G�u�n���g�wc��C�>���#mILS?��Ŀ�Z�&������:Qb=4�V���Mv�j�Ո�l��D�(t�� 8h4@�H�k ���њ�]�dJ�j˩�It�zO8���c'�7\O�š��Z�qC��}�y��]����'I�V8�l8�+����p�#/f7��m@����z�JJ��$�@�A9�ӥ𠝬����ed��#=���D�l&��=9c0�:I��7�)!\ +�6QL)�P0Q�Cp�!a��o1�F�ź8�8O�LH$�����'�S�)����d��<6S*aI��r�B�g�u5�n�E�)n���|��]zE_�~ƾ���υ�8$ɍ���`�{X�i6b����cɿ(��><��Y��|?ĴE�x\�E4-(�D�O��ʈ�rn\y¢���˨��,F���`�iT=���N���N!�(Y �?4k?�i��J΄t=h�����3�~�\����5��bi|@� +�e��K�K���o�W�:?�� � ��\�H���Î��� ��w�I��v�pP�� +��p ���3c�4�~���z�Wy^{� �w�@��C�����Ư�5���� +2#���C�����|����z,�����J����z)�(�SՉ�U�j�eT�z�/�wݧ�`�x����*?���Qu���Q�F����U�Vtߧ�<��Z*�l8J�7e3@e{=3���\��ۂmp9}V��?r�P��`L�gK�r#���!��Tr�U�憺����ޥ�[��U��.��"��k��U����û>S�����r��)��`c\6�n�M|U����G9:*(���S�v +��88��Ʒ�n�O���d��۪�+r&��輚��Cꇗ�>�gd=ȅ��0�a��VS;?~���S�N��w솇����x^}�/���GV���q�x��E�x\z����d`�U���]J��S�vH���U��kR]USU�N�`�π b��@lFB,A,�'�@����;�n�ˏ80�BW���<��7_�0�1.*oy�ď�y~���l�����d�է���ϝ<?�־��˵�M��u�{x~����g�^�{����Ӎ?߷��|�p�[���wx��_?��~�Y��|��lU|I<-��q�8����J4=�����Y�P� � +��.�]C�������v�+C��z�7�=�+>5�xO���[��Jik��WV�]�x=����W���g�^��h��k� ����}C����"�+k��o^zE�n��Ы⽭���x��ch�����+n����bo�O��'~��/Co��?xe�-��������<���<w��~î��$ ��\�x�����dw"��<�S���t"�*ka(]�ʤ�3�^h�:��:U���L��Q����#}ݶ�徫C�2-�T��Ny��8�����T2O���*}-�33~��y����x<�vˍ�o��ͫ������7�7Ou:�,�#��T�^?UQ�}K�R�I����-��RE��4�@��UQv<�'�|�e/��Ly�';1�hOG��N�8*��̗*�b/P�'�� u�����Pgr�4��lǽ|�R]y�HR���?�4���tG�f�"/��d�x��00��?-� ����%���NFHy6��lXd�q��L#��ո�d��AmB��M���x/Pz�4�A͂~,�ؒ٨���rZ)b�����ȏl�������}(j�!L!�s$"+V)/ɬ�=� ��j7� "�<�#TF*�q��t\�D�UKX��C5!��z� +s��U�����D�@6 +Uʦ|������I2�H��TyP��D�([�TT�_M�W+02%��6��J�:RÂ���BI�)[D��t~�~&+�n���rCV�y+&h�N�tMW��H�y .�` +M���7R% �LuCM��н�����@eШ�Ũ�ܬ�}9�|��8[*��7g6�C�nN%Jɐ�z�dL��Z���#��!�/�S\���^�ؖ��fG�[��5זN[���s��>��Z�K�p:ǭ���[kv^�֡�5_��N�����O]�ݖ-W:'� �ƚӬ7���܇\�Ց ���@i�ŢF�c�Iى�֏�Y�wN�%�N�tBiM��S?k�\yz架�6t@m�i��b��p��ӗ�stܱ ���%;n��>���-Bˮd�*PB���I�}\k4��iw\�vB���f�bt�<�u�VS��p��ӹ�WꍚsbɃ�I��nό�qg8���[kX�}j�"Gǵ��D��í��m��3,��4���l������&�%=��ۙBy�mK�\\+���m.����I�k��#Z�\�"i���]k@a�`\�����x:ɩ�M�C�j1E-��b���"�o��$j��'P1�o��4FP�8��!�_hLF +z$��22�w��� +aRS.�LB,��\l��`L��"�4�1R�a5 ~b���Y���e����X��'U�t�1� ���и����r����}8��*�u��G�e}����^$oC��DLD*���#<��Oq?��~��>xr��/Z(1V�� +�&B<R�S]i�j�\���)ΙC�j��� �E�k�~���\�*-?gy�'dI�J�'�� �tYo���Yj|������W|���X�Eﭙ�J�GY�Q{�1�1?U�[���;���W/�b��C�_t������!k�𦜕����}�A�$]=��S�$Ckc�e�� kˌ�Zs�������3/u挂l�l���3�I��Rqة�<HF�nwDENuT8�$��oƸ<�(����`E���� +9o���8�@�E�sԗ�(��YLh%�;��㜡�ك�k��ݜwK�[�8o��R�4&c���G,G��ڼG��t�6�#��5�����2� ��.� m]�5��14���x��S݁��b�o���\�6�Vt�Tu3����,��Ѓ)Wk�23�>�Ɇſ���᱾�g���ߘ�Rd�c�>#ҽi�v���֘g�,�si����pn:"[�-�e��90/'�oe��5���[���� 9%���H��b��f�x&��Ǔ�tW/E�&y��d�Ð�0��.'����+V +�W.���Wx���"f#hQ,Wz�3Z�Y4�>�ȣ�YK�f��**j�����>��:������,��*l��y�r� S=5H3���r%�Ve�7˧�6�N/D~�^�,_��l�L�^� ���,UZ�;����˽���~(�p�����i�c��N�'��骧�/p��1���3�Qs5]_+�wW�q�1�b�������|����x��g���ʎ��D8���FbQc���Zq>���{�1����kz%7�co!Z��f[-���j�#^����5�����s|`���S�گpg��M[�u:\�I�K!Y��o�z��x��訊,�=�.��4IH�@�QPH��BwB���N�#`:D $A F! ��K��(*��,�6���0�>���Ιafn�^�ޒ���c��{�n�廷��Ҳ쵅�ntji~�9�Ȟ��%�Y�WhJ���ߋ`w���R����!{�m�ci��Ǵ����h�X6AM�� ����b#϶�A�~/��96l��`dK�eh�J̗M-��I��o���kK�c���K�����cQ�~NҺm�"mW����T�h<��c��Z��c��p������0��6�S������w��LS�Ll|Z~Dn$w��� �<*7����|3g�h�Y����7��1F�� 'i-�s��h(2��J�_�X����'���al�N�;9Q�n��ю�d��0�S>�]K/�b���/<�a�~i8��XO4Y�ߨL3{��p�L��Qƚ�;!lyy\�E�X�ωQ�Z��G�orv8�"�[Fp�ɧ����(_/7v~�Wi�?���e%��$cj|/:0�̍��Ӹ��.j��:�S�bw��^�BU������?� G��w�J�p���NOX�R�:�$ک,7��������_���x�,���,�Ϝg:[[���_�������~G�r�^�Rl���ym��w���<_��Z��k�A��/��rk���0��6s�ZE=�}��<��Km���<���_d� �������,��YI��� +�-ڡ�� ��w�����Ґ��肮�@7tG&z�'zi]�u��}�A_�C\��1@[����`A��PC.�cFj?��U��0^s.��;�T�b���D��RS�&�]jW�r]S��>31�Q�k1sM�Yi���8��B��"�K ���A���&�#+t,V�܊��mh�����MX�u���I#v��nl�=���~����Al���C��vc�^��cxO`?�I<������a�Q�sx��^D'p�pg�^�+x��u��7���;x��}|�q�>�'���s|�/�]|���C�?�O�S�?�/�K� +��o�[����G� �_����������� A�˲�X�\��.��Z���V��hu��,w�����7�̯Z쮩�]�$PY�����*�*\V�DU�6�s�q�G��pC�c��ft��̘{�M�w��/����3��O��cṣE�\?��;9<�������]�;·�o_o�k�W�����_j��ӛ��3�ӧf�ӛx��u�d_ujOy]'��Dh�:q��A|Q�B���� ��:������f��"9PG�<��C��C�����|J�d��g��?�O�x*�ۛ�� ���� ��NW{��g$���|���q��ؕLJ�;w$��� �.|P�mj�ږ�:3(�?����yφ$�Ux�pKu��"�K�Y�I�Q�lnH���>��<���u�<j]�k�Bj��iM�j +��ѵf�G����k��wo�Q/�M�J?V ��xK�+ݼ�������˄�unU��:7kS��&E-�Ϛ...0C������ސ� �/�^\��j��*�����lVju�A^�Q�.����<��9jn�s]sfyԜ +��Vg���!��p�^13�39]�8��i�iNMa��L蟒���))�,�$�(,M�W�~N����q j�p\�ݼ&�"�a�0?�>o��wt���s�(os���QɼZx��Ja�H��r��j��#�s�0W8�<��x�0G8D8X8h@��fv�Yor������\xY����T� � +=���a��K���L�!��{�t�^�t�Gf����fz]ݻ�������2���ţ� +��묺x�Y�.LKf'=�I���O�h�)�L��V�Q�f�rg0I�A��y�L��R��uf[��O�j+Tz�ʣK/pe��l�I ��J$�:n�6[���Me��_��0�;��- endstream endobj 448 0 obj <</StemV 88/FontName/VFOKNQ+BitstreamVeraSansMono-Oblique/FontFile2 447 0 R/FontStretch/Normal/FontWeight 400/Flags 34/Descent -236/FontBBox[-71 -236 691 928]/Ascent 928/FontFamily(Bitstream Vera Sans Mono)/CapHeight 729/XHeight 547/Type/FontDescriptor/ItalicAngle 0>> endobj 449 0 obj <</Subtype/TrueType/FontDescriptor 448 0 R/LastChar 233/Widths[602 0 0 0 0 0 0 0 0 0 0 0 0 602 602 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 0 602 602 0 0 0 0 0 0 0 0 0 0 0 0 602 0 602 602 0 0 0 0 602 0 602 0 0 0 0 0 0 602 602 602 602 602 602 0 602 602 0 602 0 602 602 602 602 0 602 602 602 602 0 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602]/BaseFont/VFOKNQ+BitstreamVeraSansMono-Oblique/FirstChar 32/Encoding/WinAnsiEncoding/Type/Font>> endobj 450 0 obj <</Subtype/Form/Length 128/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 446 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2236.67 992.47 2284.83 981.467]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10 0 0 10 2236.665 983.8252 Tm +(checkout)Tj +ET + endstream endobj 451 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 445 0 R/Resources<</XObject<</Fm0 450 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2236.67 992.47 2284.83 981.467]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 452 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 453 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 454 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 453 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1932.1 1139.06 2124.4 1116.07]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 19.4356 0 0 19.4356 1932.0967 1122.3848 Tm +(Commands Sequence)Tj +ET + endstream endobj 455 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 452 0 R/Resources<</XObject<</Fm0 454 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1932.1 1139.06 2124.4 1116.07]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 456 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 457 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 458 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 457 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2076.16 1003.12 2103.79 995.636]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3274 2076.1641 997.6904 Tm +(CHANGE)Tj +ET + endstream endobj 459 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 456 0 R/Resources<</XObject<</Fm0 458 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2076.16 1003.12 2103.79 995.636]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 460 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 461 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 462 0 obj <</Subtype/Form/Length 194/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 461 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1099.32 2377.55 1090.53]>>stream +BT +/CS0 cs 0.031 0.035 0.035 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.4251 0 0 7.4251 2182.332 1092.9434 Tm +(the curves indicate that the command on the right is usually)Tj +ET + endstream endobj 463 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 464 0 obj <</Subtype/Form/Length 201/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 463 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1090.03 2383.46 1081.25]>>stream +BT +/CS0 cs 0.031 0.035 0.035 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.4251 0 0 7.4251 2182.332 1083.6621 Tm +[(executed after the command on the left. )18(This gives an idea of)]TJ +ET + endstream endobj 465 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 466 0 obj <</Subtype/Form/Length 185/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 465 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1080.75 2359.38 1071.97]>>stream +BT +/CS0 cs 0.031 0.035 0.035 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.4251 0 0 7.4251 2182.332 1074.3809 Tm +(the flow of commands someone usually does with Git.)Tj +ET + endstream endobj 467 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 460 0 R/Resources<</XObject<</Fm0 462 0 R/Fm1 464 0 R/Fm2 466 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1099.32 2383.46 1071.97]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 468 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 469 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 470 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 469 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2348.43 980.175 2406.52 971.329]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 8.0402 0 0 8.0402 2348.4277 973.2246 Tm +(format-patch)Tj +ET + endstream endobj 471 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 468 0 R/Resources<</XObject<</Fm0 470 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2348.43 980.175 2406.52 971.329]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 472 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 473 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 474 0 obj <</Subtype/Form/Length 127/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 473 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2241.17 980.917 2277.29 969.913]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10 0 0 10 2241.1699 972.2715 Tm +(branch)Tj +ET + endstream endobj 475 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 472 0 R/Resources<</XObject<</Fm0 474 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2241.17 980.917 2277.29 969.913]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 476 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 477 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 478 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 477 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1463.06 475.648 1628.21 455.219]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1463.0605 460.8271 Tm +(Cheat Sheet Notation)Tj +ET + endstream endobj 479 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 476 0 R/Resources<</XObject<</Fm0 478 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1463.06 475.648 1628.21 455.219]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 480 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 481 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 482 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 481 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1924.78 582.838 1945.21 440.777]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 0 17.2716 -17.2716 0 1939.6006 440.7773 Tm +(Useful Commands)Tj +ET + endstream endobj 483 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 480 0 R/Resources<</XObject<</Fm0 482 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1924.78 582.838 1945.21 440.777]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 484 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 485 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 486 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 485 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1596.52 1083.63 1707.77 1063.39]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.1052 0 0 17.1052 1596.5195 1068.9473 Tm +[( http://git.or)55(.cz/)]TJ +ET + endstream endobj 487 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 484 0 R/Resources<</XObject<</Fm0 486 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1596.52 1083.63 1707.77 1063.39]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 488 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 489 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 490 0 obj <</Subtype/Form/Length 122/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 489 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2405.0 421.365 2429.1 416.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 417.9072 Tm +(Zack Rusin)Tj +ET + endstream endobj 491 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 492 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 491 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2405.02 417.365 2455.59 412.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 413.9072 Tm +(Based on the work of:)Tj +ET + endstream endobj 493 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 494 0 obj <</Subtype/Form/Length 131/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 493 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2405.02 413.365 2443.55 408.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 409.9072 Tm +(S\351bastien Pierre)Tj +ET + endstream endobj 495 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 496 0 obj <</Subtype/Form/Length 124/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 495 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2404.77 409.365 2433.91 404.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 405.9072 Tm +(Xprima Corp.)Tj +ET + endstream endobj 497 0 obj <</Subtype/Form/Length 80/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 488 0 R/Resources<</XObject<</Fm0 490 0 R/Fm1 492 0 R/Fm2 494 0 R/Fm3 496 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2404.77 421.365 2455.59 404.964]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q + endstream endobj 498 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 499 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 500 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 499 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 705.521 1804.53 693.334]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1701.4668 696.6797 Tm +(git commit -a --amend )Tj +ET + endstream endobj 501 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 498 0 R/Resources<</XObject<</Fm0 500 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 705.521 1804.53 693.334]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 502 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 503 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 504 0 obj <</Subtype/Form/Length 168/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 503 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1718.59 692.997 1817.54 683.959]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1718.5854 686.4404 Tm +(\(after editing the broken files\))Tj +ET + endstream endobj 505 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 502 0 R/Resources<</XObject<</Fm0 504 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1718.59 692.997 1817.54 683.959]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 506 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 507 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 508 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 507 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 768.866 1865.41 759.828]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1789.4004 762.3096 Tm +(Creates a new commit)Tj +ET + endstream endobj 509 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 506 0 R/Resources<</XObject<</Fm0 508 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 768.866 1865.41 759.828]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 510 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 511 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 512 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 511 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 736.339 1865.41 727.301]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1789.4004 729.7822 Tm +(Creates a new commit)Tj +ET + endstream endobj 513 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 510 0 R/Resources<</XObject<</Fm0 512 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 736.339 1865.41 727.301]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 514 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 515 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 516 0 obj <</Subtype/Form/Length 129/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 515 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1494.91 1125.99 1559.75 1076.68]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 41.6828 0 0 41.6828 1494.9072 1090.2168 Tm +(Git )Tj +ET + endstream endobj 517 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 518 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 517 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1559.75 1125.99 1791.49 1076.68]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 41.6828 0 0 41.6828 1559.752 1090.2168 Tm +(Cheat Sheet)Tj +ET + endstream endobj 519 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 514 0 R/Resources<</XObject<</Fm0 516 0 R/Fm1 518 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1494.91 1125.99 1791.49 1076.68]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 520 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 521 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 522 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 521 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.23 646.095 1755.96 625.665]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1701.2314 631.2734 Tm +(Branch)Tj +ET + endstream endobj 523 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 520 0 R/Resources<</XObject<</Fm0 522 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.23 646.095 1755.96 625.665]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 524 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 525 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 526 0 obj <</Subtype/Form/Length 130/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 525 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.56 958.472 1545.4 938.042]>>stream +BT +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1493.5571 943.6504 Tm +(Create)Tj +ET + endstream endobj 527 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 524 0 R/Resources<</XObject<</Fm0 526 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.56 958.472 1545.4 938.042]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 528 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 529 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 530 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 529 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1698.32 583.467 1818.25 572.125]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1698.3164 575.2383 Tm +(Merge branch1 into branch2)Tj +ET + endstream endobj 531 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 528 0 R/Resources<</XObject<</Fm0 530 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1698.32 583.467 1818.25 572.125]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 532 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 533 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 534 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 533 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 877.303 1566.09 865.961]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.6904 869.0742 Tm +(From existing repo)Tj +ET + endstream endobj 535 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 532 0 R/Resources<</XObject<</Fm0 534 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 877.303 1566.09 865.961]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 536 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 537 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 538 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 537 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.31 570.864 1803.13 558.677]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.3145 562.0225 Tm +(git checkout $branch2)Tj +ET + endstream endobj 539 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 540 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 539 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.31 562.621 1785.36 550.434]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.3145 553.7793 Tm +(git merge branch1)Tj +ET + endstream endobj 541 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 536 0 R/Resources<</XObject<</Fm0 538 0 R/Fm1 540 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.31 570.864 1803.13 550.434]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 542 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 543 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 544 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 543 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 930.274 1565.56 918.933]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.6904 922.0459 Tm +(From existing data)Tj +ET + endstream endobj 545 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 542 0 R/Resources<</XObject<</Fm0 544 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 930.274 1565.56 918.933]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 546 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 547 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 548 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 547 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.0 542.631 1871.18 531.289]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699 534.4023 Tm +(Create branch named $branch based on)Tj +ET + endstream endobj 549 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 550 0 obj <</Subtype/Form/Length 125/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 549 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.0 530.646 1744.3 519.304]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699 522.417 Tm +( the HEAD)Tj +ET + endstream endobj 551 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 546 0 R/Resources<</XObject<</Fm0 548 0 R/Fm1 550 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.0 542.631 1871.18 519.304]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 552 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 553 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 554 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 553 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 916.672 1599.42 904.484]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493.189 907.8301 Tm +(cd ~/projects/myproject)Tj +ET + endstream endobj 555 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 556 0 obj <</Subtype/Form/Length 137/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 555 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 906.884 1520.11 894.696]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493.189 898.042 Tm +(git init)Tj +ET + endstream endobj 557 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 558 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 557 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 897.096 1532.71 884.908]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493.189 888.2539 Tm +(git add . )Tj +ET + endstream endobj 559 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 552 0 R/Resources<</XObject<</Fm0 554 0 R/Fm1 556 0 R/Fm2 558 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 916.672 1599.42 884.908]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 560 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 561 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 562 0 obj <</Subtype/Form/Length 149/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 561 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.43 519.625 1787.78 507.437]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.4316 510.7832 Tm +(git branch $branch)Tj +ET + endstream endobj 563 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 560 0 R/Resources<</XObject<</Fm0 562 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.43 519.625 1787.78 507.437]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 564 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 565 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 566 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 565 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 866.013 1655.67 853.825]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493 857.1709 Tm +(git clone ~/existing/repo ~/new/repo)Tj +ET + endstream endobj 567 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 568 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 567 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 856.224 1638.47 844.036]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493 847.3818 Tm +(git clone git://host.org/project.git)Tj +ET + endstream endobj 569 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 570 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 569 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 846.436 1656.95 834.248]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493 837.5937 Tm +(git clone ssh://you@host.org/proj.git)Tj +ET + endstream endobj 571 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 564 0 R/Resources<</XObject<</Fm0 566 0 R/Fm1 568 0 R/Fm2 570 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 866.013 1656.95 834.248]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 572 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 573 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 574 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 573 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 619.243 1800.6 607.901]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1698.2588 611.0146 Tm +(Switch to the $id branch)Tj +ET + endstream endobj 575 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 572 0 R/Resources<</XObject<</Fm0 574 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 619.243 1800.6 607.901]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 576 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 577 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 578 0 obj <</Subtype/Form/Length 134/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 577 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1510.84 1051.91 1566.25 1040.57]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1510.8389 1043.6855 Tm +(Remember: )Tj +ET + endstream endobj 579 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 580 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 579 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1566.25 1051.91 1648.32 1040.57]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1566.2544 1043.6855 Tm +(git command --help)Tj +ET + endstream endobj 581 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 582 0 obj <</Subtype/Form/Length 180/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 581 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1510.84 1027.94 1743.73 1016.6]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1510.8389 1019.7139 Tm +(Global Git configuration is stored in $HOME/.gitconfig \()Tj +ET + endstream endobj 583 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 584 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 583 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1743.73 1027.94 1809.29 1016.6]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1743.7324 1019.7139 Tm +(git config --help)Tj +ET + endstream endobj 585 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 586 0 obj <</Subtype/Form/Length 126/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 585 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1809.29 1027.94 1815.15 1016.6]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1809.2891 1019.7139 Tm +(\) )Tj +ET + endstream endobj 587 0 obj <</Subtype/Form/Length 100/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 576 0 R/Resources<</XObject<</Fm0 578 0 R/Fm1 580 0 R/Fm2 582 0 R/Fm3 584 0 R/Fm4 586 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1510.84 1051.91 1815.15 1016.6]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q +q +/GS0 gs +/Fm4 Do +Q + endstream endobj 588 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 589 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 590 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 589 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 797.114 1631.39 785.772]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 788.8857 Tm +(Files changed in working directory)Tj +ET + endstream endobj 591 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 588 0 R/Resources<</XObject<</Fm0 590 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 797.114 1631.39 785.772]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 592 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 593 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 594 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 593 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.12 828.082 1536.33 807.651]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1493.1226 813.2598 Tm +(Show)Tj +ET + endstream endobj 595 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 592 0 R/Resources<</XObject<</Fm0 594 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.12 828.082 1536.33 807.651]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 596 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 597 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 598 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 597 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 569.851 1623.91 558.509]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 561.6221 Tm +[(A)55( specific file from a specific $ID)]TJ +ET + endstream endobj 599 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 596 0 R/Resources<</XObject<</Fm0 598 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 569.851 1623.91 558.509]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 600 0 obj [/ICCBased 19 0 R] endobj 601 0 obj <</C0[1.0 0.713726 0.12549]/C1[1.0 0.713726 0.12549]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 602 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[601 0 R]/Bounds[]>> endobj 603 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 602 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 604 0 obj <</C0[1.0 1.0 1.0]/C1[1.0 1.0 1.0]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 605 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[604 0 R]/Bounds[]>> endobj 606 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 605 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 607 0 obj <</C0[1.0 1.0 1.0]/C1[0.737255 0.745098 0.752941]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 608 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[607 0 R]/Bounds[]>> endobj 609 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 608 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 610 0 obj <</C0[0.309804 0.364706 0.913725]/C1[0.109804 0.305882 1.0]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 611 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[610 0 R]/Bounds[]>> endobj 612 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 611 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 613 0 obj <</OPM 1/BM/Normal/CA 0.541962/OP false/SMask/None/ca 0.541962/AIS false/op false/Type/ExtGState/SA true>> endobj 614 0 obj <</OPM 1/BM/Normal/CA 0.706299/OP false/SMask/None/ca 0.706299/AIS false/op false/Type/ExtGState/SA true>> endobj 615 0 obj <</OPM 1/BM/Normal/CA 0.954544/OP false/SMask/None/ca 0.954544/AIS false/op false/Type/ExtGState/SA true>> endobj 616 0 obj <</I false/K false/CS 617 0 R/S/Transparency>> endobj 617 0 obj [/ICCBased 19 0 R] endobj 1 0 obj <</Count 1/Type/Pages/Kids[6 0 R]>> endobj 2 0 obj <</Subtype/XML/Length 41050/Type/Metadata>>stream +<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c036 46.277092, Fri Feb 23 2007 14:16:18 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">git-cheat-sheet</rdf:li> + </rdf:Alt> + </dc:title> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xap="http://ns.adobe.com/xap/1.0/" + xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"> + <xap:CreatorTool>Adobe Illustrator CS3</xap:CreatorTool> + <xap:CreateDate>2007-12-31T15:32:55-07:00</xap:CreateDate> + <xap:ModifyDate>2007-12-31T15:32:55-07:00</xap:ModifyDate> + <xap:MetadataDate>2007-12-31T15:32:55-07:00</xap:MetadataDate> + <xap:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xapGImg:width>256</xapGImg:width> + <xapGImg:height>196</xapGImg:height> + <xapGImg:format>JPEG</xapGImg:format> + <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAxAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxrzP5svtO1fT
dC0bTV1XXNSSa4SCW4+q28NrbFFlnnmEdw6jnMiqFiYknFWMeY/zjvPLOkyXPmDQTZajD9bB05Zp
5jcC1aALLZyx2rLLC/1peTyemyb/AAmjUVZdrPmiW2GlQaZZNe6jrJJs7admswsaR+pJJOZI2kiC
KQCvpl6mnHM3SaUZBKc5cMIDc1Z35ACxufeAwnOiB1KTXX5lSaVqVjYeYdIm0+S6+vCWSAy3q0sl
hcSQCCEyTRyJPUsUUpxPIZnQ7HGWEp4ZiYjwc6j9XEKlcqiQY8rN2KLDxaO4pN4vP/lKW6itor7m
ZjEI7hYZjbcrhBJEjXIT0Fd0YFUZ+W42zEl2XqBEyMeV7WOLY0Tw3xUD1qmXix70q1H82/KtvBby
Whub1rie1iSNLS7UvDdzCEXEVYf30Y34mOoY0UGrLXKw9hZ5EiXDGhI/VDnEXwn1ek++qFk7AoOY
dEb5t86Poep6fpsUFqZtQSaRLjUbv6haj0Sg9NZfSuOcrepsgXoCa5ToezvHhKZMqhW0Y8ct73q4
0Nudpnk4TSDtPzP09NXn0vXLSTSLiGKyfkS11GHvSyhZJrdHhiUOFCu7gNy7dMtn2NM4xkxEZATP
+ifT3CR4jtzAG1MBm3o7Jl/ysLygHnV78xpAszmeSGeOCQWx4zehMyCKcodiImY5j/yVqKHp51tc
bHFysXcb/pAM/Gj3oX/lZWhS65pmkWsd1LPqE0kEoe1u4HtykPqqZIpYVcBwRQtQcatWgOW/yPlG
KeSRiBAA/VE8W9bESrb477cyjxhxAMszUtrsVdirsVSPVNGknvpLmO7WCR4wqsVb1FoCOKyK6lUb
l8QG9d64ql6+WtT5RF/MM7hS5mHOVedfsfZkHHj7dcVbi8vaurFn8wSv+7KqKyAcyipzP7z2Jp4m
vXFW/wDDMzabcWMmpLIkrRNEsis6R+mPiorOa8m+Lfv1riqnP5f1v1EMGvPx+sNK3JnAWMiqoFVw
GFQBQ9B08Cqq/wCH9U+I/p6UkyO4BaSnB1oI9nFADTcb+FMVTTRrWexW4F1qLXpmlMkZf9hSPsip
bbFUy+sQfzj78Vd9Yg/nH34q76xB/OPvxV31iD+cffirvrEH84+/FXfWIP5x9+Ku+sQfzj78Vd9Y
g/nH34q2ssbmisCfAYquxV2KsX82+TbnV9RsNY0vUE03V7GKe1Lz2wvLa4s7oo01tcQc4GdGaFCO
MikU98VefT/843W8sV2Y9Yt7G4vRemSKw02O1so2u4raKP0LVJv3aRCzBYF2LliSwO5Velaz5d1H
UBpV7Dfx2uu6USyXgty9vJ6sfCdHtzLy9OTqAJeS0HxeObpNWMYlCceKExuLo7bgg0dx7iwnCyD1
CV3XlW6jv7TXde8wJJJZx30EjtCtvbqNR9GONIgZD6axmIAB2dmLfazMhrYmEsWLHtIwPOz6OIm9
t7voABXJhKHUlivl/wDLjytp7K9r5g0q4i070Hu7s2dpLfxTWUEcTmO7keUwJyRZKcCyH7LiubTV
dr58n1Y8gM7ocUxAiUiRcQBxHmOdHqGsQj0kFLTfyx02K/hktfNVg+qRRW7QstvyaV7G6iu1nn5X
bySk+jR6Oooajj3nm7ZmYESwz4CZX6uXHGUaj6KHPbY9xvpGOKIO0h+PizzzHzvQr2mu6fBZBDHd
2eoW8V7ayGqsrECa2dXWo/3YV3Hw1oc0OkqG0sczLoYyMZDn/RkK+F+bfIg9RSQ6R+VllBo2pWVn
qwlt9RWyjEixArG2n3LyuEAkpxZ2KKv7AFN8z8/bcpZIylCjDj68+OIA6d29/wAXk1xwbEXz/Qhx
+SOnfVruya4s1tJUnW2mj0y2W+DTSeohuLti7TCPpRVTkNmrln+iOdxlUuIVf7yXDsKPDHbhv3yr
ov5farTHR/yzl0zUrDUobrT7e4s7lppIbHS4rK3eF4DA0YSKT1OfxFg7yPQ9FptmNqO2BkhKBEyJ
Rq5ZDIg8XFe4qulAD3shh3u/sZ3mjb3Yq7FXYqlt5/vQ/wBH6hiqjiqncXENvEZZnCRrSpPiTQAA
dSTsAMVQwl1O43iRLSE9GmBeQ/7BSoT6WJ8QMVb+pXfX9ITcqdOMHGvy9Ov44q00up2/xSot3EPt
GEFJQP8AUYsH+hh7A4qibe4huIllhbnG3Q9NwaEEHcEHYg4qqYq8Q8++fjpH5gapZLqurQegtsZL
WG70+O0XkkHErHNHNOqyeoVYgfa6dQcVYRH+aUrW49fXfMMf1VTK8h1TSaPyjDRRuVUGjcDQjerU
J3qqqpqX5mmF1tl13zEVsIvTurn9KaSjNNIztxlHxAPG3JPhrUIDQjqqjD+ZstxEZY9c11pba0Ml
1FFqejGiMOBkIRACyCT1QR8J7mopiq5fzWlspnt5Nd1dltr+c/WbnUdIQymBGrDT0mQRlmAK1BHJ
abfZVQeh/mTLNeC1m8weZDcz3SWXGW+0tfQE8hWNyio5MiBaOGpU9t9lXqf5eP56ttcZNVsNcl0+
+VuU+r3VjItoY+bfCltRm9X4Fp2696Yq9Ttf96E+f8MVTLFXYqgtY1ez0mwnv7xuFpaxST3ElCeE
cS83aigk0UdhirCx+ff5Um1e6/xDaLDGY1k5MysrShiishUOG+BqilR3xVGw/nB+X8+kzavDq8Eu
m2/pia5Qsyq0yl0SgWvMqK8KcvbcZk6TR5dRPgxR4pMZSEeajrf5j/lpdRy6XquqWpRZgk0LylAJ
beVW4sRT7LqK7/PbNhpuytdEjJjxy5bGukh+prlkgdix/T5PyYh+v6xbXqyW0nGG7c3MrRAu3p/P
4gwRt6UPvvn5T2meHHKB4uY2F7b/ALR1v3NQjiFlN/LnlnyHcWdzPpbS3dlcNNAVEzKsalfSltwF
EbBetQ9WqeuYes7Q1cJAZAIyFHlz6iXX7NmcMMCNkwn8j+UZYoYjaSosH92UuJVNSysSfi+KvAA1
7bZjR7X1AJNjfyDI6eDIbGS1sbOCztoSlvboscS8ixCqKCpNST7nNfkySnIylzLaBQoK36RX+Q/f
kEu/SK/yH78Vd+kV/kP34q79Ir/IfvxVFRSCSMOBSvbFV2Kpbef70P8AR+oYqo4qkVrd3Op3TXNq
FaGNitvNICYkAqC4UFTJI/zAVe9eQKqYixu6b6hPXvRYAPorGf14qpyXN7YKZLoi4sx9udF4yRj+
aRRUMviy0p4d8VRdxdW9vbtcSvSFQDyG9a7AKBUkkmgA64qk9xHqEcj6mp+oW70+uRIFeUoNhMxb
lGroPtAA/D3NFoqmJtb9PiivWdv5Z442T/kmIm/HFVttPFLcvDc26w3yryZdmDp05I9ByUbA7VHc
dKqoo29uwo0SEeBUYqt+pWe/7iP4jVvgXc7+3viq5ba3UkrEgLfaIUb998VWDT7AMzC2iDMSzMEW
pJpUnb2xVf8AVrfkX9JOR6txFe/f6Tiqpiqta/70J8/4YqmWKuxVLddeaO0eSCD6zMkcjRW/IJ6j
haqnJvhXkdqnFXm9v5v88SoRP+XU8UyFDGpvbJoyWSR3PMGo4lFX7O5bsBUqtv5n83tHHEfy4naR
hzVTd6f6KSqWRC7c6gUAPJUZgp+ySKZKM5R5GkEAutfPPnO5W1Zvy7v4ku5Cs3qXNmDGnw/vHUuD
Qhjsd9jtjxHvWlaXzf5zjihEXkC6czSsk8P1uyHpoEiZXJ5cWJaVlpX9htztV4j3rSnN518+wWMs
ll+Xl00gNYbVr6yiLO8kfLkUaRVr6jvXf7PxcScBkTzTSiPP35n+tBG35czqksipLL+k7UiMEsCz
UWp40UmnY7bimBV1t+Yf5gTxvIv5caio+1CJL2xjZlPH7SvIpRtz8J8MVR9h53803cZc+TL+GkMU
3CSaBG5SqpMf7woOScjypsKb0O2bHT6PFOAlPLGBJO1SPxNBrlMg7C0fF5j8yM18knlm4R7dDJZg
TwETgFgFLVCozFOlW2K1pvSctFgAiRmjuaPplt+sb+XI/EeJL+aiNB17WNRvru2v9Dn0uO3SJ455
pEdZDKCSi8NqpTehO/0VxdVghjIEJjICOljqR1+fuZQkTzFJ5mKzTOz/AN5k+n9ZxVWxVLbz/eh/
o/UMVSfzJcTQaJdNACbiRRBABsfUnYRJ4ftOMVasdESC0ihlmlYxqFAikeJF9lEZWvzapPc4qrWz
3EN2bOeT1kdDLbSkAPxUgOr0oDxLrQ03HXcVKqNxVjcdtdTaw2lxyGGy02k6stC/G4BESJUUXhxk
UbbLSm9CFU2m0v8Adn6tPIktCB6skk8bVH2XSRmqp70offFWtBmkm0m3MgKyxhoJATU84GMTVPfd
MVXauvG0N2v99Zfv4z7IPjX/AGaVXFUbirsVdiqHvriWKJVhANxMwigDV48iCSzUIqFVS1K70piq
kNMBWslzcPN/v4Ssu/j6a0j+jj88VX2U0/qTWtwQ80HFllG3ON68WIGwaqsDTwrtWmKpha/70J8/
4YqmWKvlH8/PMnmKx/M7Uray1S8tbdYrYrDDPLGgJgQmiqwG5z1X2X0eGehhKUIyNy3IB/iLg5T6
z+Ojzwec/OA6a7qA/wCjuf8A5rzoP5O0/wDqcP8ASj9TCy3/AI185f8AV+1H/pLn/wCa8H8nab/U
4f6WP6lsu/xr5y/6v2o/9Jc//NeP8nab/U4f6WP6lsu/xr5y/wCr9qP/AElz/wDNeP8AJ2m/1OH+
lj+pbLv8a+cv+r9qP/SXP/zXj/J2m/1OH+lj+pbLv8a+cv8Aq/aj/wBJc/8AzXj/ACdpv9Th/pY/
qWy7/GvnL/q/aj/0lz/814/ydpv9Th/pY/qWy7/GvnL/AKv2o/8ASXP/AM14/wAnab/U4f6WP6ls
u/xr5y/6v2o/9Jc//NeP8nab/U4f6WP6lsu/xr5y/wCr9qP/AElz/wDNeP8AJ2m/1OH+lj+pbLv8
a+cv+r9qP/SXP/zXj/J2m/1OH+lj+pbLv8a+cv8Aq/aj/wBJc/8AzXj/ACdpv9Th/pY/qWy1/jPz
geuu6h/0lT/814f5P0/+pw/0o/Ui2v8AGXm//q+ah/0lT/8ANWP8n6f/AFOH+lH6lt9N/k5f315+
XGkXN3cS3NxJ9Y5zSuzu1LqVRVmJJoBTPLfaPFGGuyRiAB6dh/Vi5mL6Qj/zS1LX9GjsrqxvoIbJ
nQG0NnLezs0YMpfhG6kInCvOmxpv0zV6LQ5NTIxhQr+caHzPXyXJLh3LKfLllrCaZH+m72DUbl5i
8VxboY09FlHBTueR2qTmGQQSC2R5PNtZ8yeeItevLG31FRILiWK0QaXcvIFLMqgMsgUp+6LcuNDT
3Wuyh2RllDj4ocNX9Q8v1j8AtZzgGt1H89dY1jRNM8tW892WeYV1RoQY0nlgRKtxVkPAuS3DkM2f
s5ovHGXhrxBH0k9CbXLKiHlOo+e1nE/1ciH1FKx+nBJFItDVP3v1uQ/D/q/Rm503YOtjkjKc4GAO
47x1/hYHJGuT3fSNa1af8o9O1NdSjttXuUjUXlypkLtz4ABFKszEeHzzmNfov8MnjxjYH4DqmUvQ
CUL+WWva1qGqXKapqsU1jwkjS2NpJZsbkyfFx9ZyxYHlUAVrWu4IFOs7My4BcqP9Xf47MMUwTt9p
J+9NfzJ1LU9ItbC7gv4LawkR4p7WSGa4kmcxs3wpCQxWg369htXIaHRz1EjGFWO+q6DmW7JMR5ov
8vZtcv8AyrHqOsXi3hvJg9qRE0EkcYb02SRSzkNyU1Fcr1eA4chxyoyj3cmUJcQtieveZvPNzrc6
aO1zaWTzRQW0cuk3khAkP976iukYVR9qu4oajMv+SpcN8eLlf1R6dPeene4vFZ3EvmQyryX5huNW
jitb6C7+twms1zNaTWcLq32VQT/Gx7/xynV6GWGIJlA3/NkJfc24ZHlv+PNhms+cvO11rV1Jptvf
wadbzCSKKXRrt5fTVliZFZJOJrzJ+FeXHfMv+RpAD95h3/px7r/Hns08RJNiXzIep+VZLi60DS7u
9V/rtxZwyXAmj9KQO6BmDx1bgwrQiuanUY/DnKFg8JIscjXUeTl474RbyDUPMv5k2+sXaQWct2kV
69oJYrO/PNY5JV9TklyqGMcGPwr8l3ze4+zeIA+JijEx4t+Gxy29+4aDl8izb86ri8sPy31K4t53
gvI4ox9ZgJifl6sYJBUgitTlHs9CM9dAEXEk7HfoWefaD5u8gebPNM/nvy3BPrN9LDLqlkksT3Mz
KytcIGVlLUII6jPSe1NDgjpcpGOAIxz/AIR/NLjwPqCZ/wDORP8A5NbVP+MVr/1DpmN7J/4hD3y/
3RXL9Z/HRgtn5f1y9snvrOxnuLSNijyxIzgMoBbpU/DzWvhUV6jN5k1WKEuGUgJebXaovlfzK0Uk
o0q79OElZG9CT4WG5HTqO/hkTrcNgccbPmFtK8ykuxV2KuxVtVZmCqCzMaKo3JJ7DATSppc+VPM1
tK0U2l3QdBVgInYCgqd1BG3fwzGhrsEhYnH5otqHyv5lmlSGLSrtpHIVV9CQVLEKOo8SBjLW4Yiz
OPzC2gLm1urWYwXULwTKAWilUowDCoqrAHcGuXwnGQuJseSVLJq7FXYq7FX1Z+SP/ksNF/6Of+ou
XPJPaf8Ax/J/m/7iLmYvpDOdV0/yxrPpNrOj2uoSRLwRriGOUqD1ClwaZpsGqz4b8OcoX3EhmYg8
wj9Oext47XT7C2S0tIdo4YwFRVAJoqrsMpyylMmUjxSPVIobB475jW9uPzFTXFj1n6lYuZDILB5b
lHjleF47XjbFVR0IAZpTyA6VoV7PSGMdH4V4uKX9MCPIEGXr5g/0dvmDhSszvdln5yfl+3nWzsEt
7v6ndWlZITIpKMstAwddmB+EU/V4absDtf8AIzlxR4oy515ORlx8XJ5LF/zjxr0jzINYtgYXCE8J
NyUV/wDjfOp/0ZYf9Tl9jT4EvJ7PaeQ/Ls3kSz8q6i4l+ooqw3rwxPIrghmeMSpKi8iKUIO335yE
u1so1UtRDbiP02a+NEFv8IGNFQ8peRPKOm6jPrqM11dCa4S3jnitqxPHPInqRtFDE3I/FuxOzfMl
1XbWfPjGP6Y9aMt/fcj3DkiGGMTav+Z/kmfzNolrPbzJ61gvNbe5MItCrFTI8jSW90wKop+zTD2N
2nHSzlxD0y6i+LrVVKP2rmxcQ2TLyh5em8ueUbezmlSS4JSeVIgghWVlT1BF6ccNVZ1L1K1qxzG7
S1g1GcziNuQu7rersnptz6MscOGNJffeUfIr366pc2k0d41yZvrC3U8ZMs8obhVXX4WkI+AfD022
GWQ7V1MYcAkOGqrhj3V3c/PmjwY3aaaNYaZodjBYaVC8dpBI8vGaWSZ2eRuTkvIzNuT45janUTzz
M8h9R7gBy9zKMREUExfzJCuoQ2foktLFLNy5DYRNGtKe/q5icDO0Nq1rpGt+imoCaNLaRZ7d4JpY
HWRQVrzhZG+yxHyJzJ0+eeGzGtxRsA7fG2MoiXNLh5O8qgEJeaqgYgyBdS1AcwOzH1q0rvt+okHK
/lPN1GP/AJVw/wCJ/HyY+FHz+bE/zW0bR9K/LHzBHprXDi4Ecs7XE805LCSJBT1mfiAqgbZtOw9V
kza/EZ1tYFADoe4NeWAjA15PnT8uv/Jg+WP+2tY/9RKZ6P2t/imb/hc/9yWiH1B9KefPyB0nzh5m
udeuNWntZblY1aGONGUekgQbk13455v2Z7U5NJgGIQEgL3s9TbkTwWbtgNh5ZsPL0w0m2n8wxcry
8soJ/wBCJdcOY+qzyxzKkzRwzJQhgRUUag3yeo9qPGlxTxDp/FIA8JsWBsaLH8ue/wCxHz+dLppU
vrnVvMkbQQ3UyXUnl9FEavEHl+L0vhZgAi/cNjmBHtXAImIwRo1/HPpy6svBld8X2MW8v/lN5P1z
zBc6JBN5gtZ7YSk3N5ppt7Z/Rk9NuEreNQwrTYj5ZvP9HGX/AFOPzLH8v5sr/wChYtB/6vV1/wAi
48f9HGX/AFOPzK/l/N3/AELFoP8A1err/kXHj/o4y/6nH5lfy/m4f84xaBXfWrqnf93Hj/o4y/6n
H5lfy/mhB/zjtotr5ufTP07cxRWunrqf1sRpyVhMyUoD2CVzKl7XZDpvEOOO8zGrP822Hg+rhvoy
qz8trbw3cVj5vubZYnF5dRW+nWkVJBKi1+BQKmQKxHjv1znp9uYpkGWESIFbzmdvifNsGnPf9iYx
2RNioXzqxXlWJxp9srRcyDMAqqqfvPVHOoJ8O+UHtTDd+CP9PLfu+XRPgy/nfYkmpfkBpHm3UbjV
7rzPcXV2SkM8q20UW8MaooKqEFQgHbNtpfa6WCAx48UREX/ETzNsfy570P8A9Co6D/1frr/kTH/X
Mj/Rxl/1OPzK/l/N3/QqOg/9X66/5Ex/1x/0cZf9Tj8yv5fzd/0KjoP/AFfrr/kTH/XH/Rxl/wBT
j8yv5fzSvzP/AM4z6Jo/l+/1SPWrmV7OFpVjaKMBio6Eg5k6L2xy5s0cZxxHEa5ljkwmMSbereVf
Jtt5V0G10CC5e5is/U4zyKFZvVkaU1A22MlM47tHtGWqzyykUZVt7gB+hyYQoUmv1ZfE5g8bKlW3
jWKZJKk8T0xM7Wky+uweJ+7IJQN8UuJQykgKKZISpFJXHbrHqsqE0E8SyIPFoyVkP3NHh41pF/Vl
8TjxrSSwFNO1m4s524W16wuLSQ/ZEj0WRDXpV9x7tTqwx41pOntg8TRMxMbgqydiDsRjxrSTaPJe
wWi2V0j3DWZ9AyxUJAQDjzRiGBK0IIrUb7dMRNaUry1uNXv4rZeVtDZt9Ydm4s4lC/ueSqSooW58
Samm9NqpmtJiktyoKz2cvqjb90UdGP8AksWWg/1wMeNaSvQhJqWvalqEq8I7VUsLcBuQBBMk4Pbl
yKA022pv1LxrTIfqy+Jx41p31ZfE48a0lnmbylb+ZtDu9DnuHt4r1VVpkAZl4uH2B2/ZzM0GvOmz
RygWY9PhTCcOIUwnQP8AnGbRNH13TtXj1q5lk066hu0iaKMKzQSLIFJB6HjnR6r2xy5sUsZxxHHE
x5nqKao4KN29nzjXJeG+f9a1a18730cGvR6dBb2cUqwXFxOkQLTIruUhRgtFY7k9SO3TsuydNjlp
Yk4jMymRYjG+R2uR/FHrzws0jxnelTyP5ek8w6BaXA85apPJABDqAt7iZVeRd6K0yJKFZGFSAK+N
a5DtTWDTZpR/L4wDvG4jl/mkjmnFDiF8RZD/AMq71BBIYvN2th5pVkkZ50eirUFYxwCrXbsRt065
rP5ZgavBh2H80/bvv+N23wT/ADii9D8kXmmanFfT+ZNU1FYfUC2l1MpgIkHFSyhQWZQOpPXfucq1
XakcuMwGHHC63iN9v1soYiDzLKc1Da7FUrkFfzNuQO+gp1UuP965P2R9r5Zth/iI/wCHH/cho/yn
+b+liHkTWIdc1j6kl7BIrQ/6RBJpH1JpFjNu7KGaQmrVZ1BB+E1X7BzP7S7Nx4MfF4db8xk4ufF5
dNh7xvzYY8hkatR1zVltfMdzYQTRxW8N4sKwLojT8VdHLr6wcI1fTHxgUUD4slpuzcUsIkYAkxv+
9A7ulbe7r0RPKQav7Eu0zz/rNvpd4LDVQJlJq6eX5kUSkApyCTEHkI2QUB+KntyzZ9jYBMXjoH/b
h8f4fcfd9kBnNc/sT3/F3m82YRtTuxfPH68LJ5euKFGYLxaEyM3NT1+IAVFdsxfyGn4r4I8N0f38
fvrkfcfJn4ku8/Jkf5c69rWrrfNqd3LcGFbcRxzabLprISrc2pKzmQOR22FPfNd2vpcWLh4IgXxc
sgn3VyG1fa24pE3bM80zcxz8xv8AlBdc/wCYST9WbHsn/Gsf9YNWf6CmN5/vQ/0fqGa5tUcVdirs
VdiqE1GKXhHcwKXmtW9QRjq6EEOn0qdv8oDFURDNFNEk0TB45AGRh0IO4OKofUtPS8g4mglSpiZh
yWpFCrr+0jdGX+NDiqCtXmjkFqtyba4342l0PWUgdTC9Y3de+7GncL0xVUudK1CeQzC+EE/Hhyhi
4BlrXjJV3YjrTiykdj1xVUt2ubOH0vqI4iprBIrAk7lmMpiardT1+eKpbfajqN5BIIWFtZD4ZLm3
bnI5Y8VjgchV9RmPGq8gK/aqKYqm2kaemn6fFbKqqVFXCfZDHei134r9la9gMVRmKuxVWtf96E+f
8MVTLFXYq8k8y+etb8v+YbmG+i8uFkkkub6R2vY7hdLSbjas3p29xzm4SCorTkdhQ5tNN2bq88In
GCYGVDfa+vM+W7VLJAHfmk0P5u+axYXN5b2vlqe3srZ5riO2uL7mH9FjEFBtgCDKjBvChHWlZz7F
1nEIygblysjy8/MIGeHemOg/nhZT+ZZ7DWn0a00uFGKXNtPeTTSHijoyo1rGlKPRl5VFD1pkz7O6
7h4vDNe8frXx4d7MbT80vy0u7gW0GrQtcNyKxGOUMQq8+QBQVVl3U9GHSuQydhayA4jjNe8fr+fd
1T48O9bJ+a35ZRySxnVoWlglEEkcccsjCRpPSC8URifiHb54jsHWEA+GaIvmB0vvR48O9NfLXm/y
f5lab9A30N81sFab01YcA5IWvJV/lOYus7Nz6avFiY3yZxyCXJBCRF/NdkYgPJoSlF7kJeNyp8uY
+/Mij+Qv/bv941/5X/N/SwHyxoXn/Stejv5PLMKJDGhJtLTTLeVilqFMQlE/wKXHp7fZHSozfa3U
6TLiMBlO5P1SyEfVzrh37/PrTTGMxK6+5X8z6D5ql1/WZz5Yt7+znuENmwsbGWSZSnpfHNJMGqPW
J5OlAqkHZsho9VgGLGPFlGQjv65gDe+Qj5cgeZHcs4ys7JZ/hnzsb94o/LFqkUN5E8Ktpth6foiS
Y+okhnejcmrX7S1rShzJ/Oabgs5ZWYm/3k7uo7Vw/sPLox4J932Bm9n5687pplt63krU7q6VY455
zJZweo4Wjyel6zsnJ9+PQA9ds0mTszSmZrUY4x3oVM15Xw7/AI2cgZJVyTaTzT5qCyen5Ru5GUyC
MfWbRQeH2akyVHqD7Ox3+1TrmKNFg2vNHp/DL9XTr9lsuOX81F6DrvmDUL+4t9R8vT6VbxBjFdyz
wSpKQ/EBVjJYVX4txlWq02LHAGGUTJ6AEVt5/JMJSJ3FKP5kyInkTW2dgo+qutSabtsB9JNBk+yA
TqsdfzkZ/oKZXn+9D/R+oZrW1RxV2KuxV2KuxVL3insJnmgQy2chLzW6Cro5NWkjHevVl+kb7FVG
QXEFxEJYXEkbdGU1FRsR8xirp7e3uIzFPGssZ6o6hh9xxVQGmQp/dSzxjwE0jD6A5YD6MVULq10q
3QSXjPMCaJHM8k3Nj2WElgzeAVcVVLe3uJ7hbu7X0xHX6ra1B9OooXcjYyEGm2yjYV3OKo7FXYq7
FVa1/wB6E+f8MVTLFXYq8r88eQNW1rzRq91b2NhNFe6fDbQvfXdxFzcSCo9O2ZWCCnxHr0C9WzqO
ze1sWDDCMpTBjMn0xidvfLr3fbyDizxEyJpJ5Pyg8zSaTcWn6O02F5BEQiahqLpIYo5xwl5mvAtI
tQpG21aDMwdvYBkEuLIav+DHtZjuK67Hn13Yfl5dwU7r8mdbN8Jk0LRpkMi3Do17qUcZmNHkZhyk
Dcpa7cNlA61okoe0OLhrxMo2r6MZ26dB08+ZPLq+Ae4JdoH5M+dTfQ32raTpiipiMH128DxwMBHJ
xCPIvN0rxPM0rUjYDMnVe0Om4TDHPJ33wQ3PMdBsD5D7bYx08u5EW35Q+cI7hLZNI06GzjWOeeRt
QvpVnuLcSegpBfkFUykn4Rv3I+1XPt7TkcXHMyNgeiAqJq+nPbv+3k+BLlQepeT/APGfrT/p7TtP
061EcQhSyYtI0xUPMzU+Hh6jtx7+PieX1/5ah4UpzlZvi5V0+NVfRysfF1AC/W9C0bVdSvf0jYwX
rW9nbtbCdFfi5e4Hwk9OW1crxarLhxA45GNyly90VMBKW46D9LFbXynZoyRT+V9OmAFZJwiruzUA
ArvxUhjsO498l/K2q/1SXzXwIdyM0Pyj5fuJZG1Xy1Y2kfBfTRIw3xV3qQzY/wArar/VJfNfAh3J
x/gb8vf+rLaf8isf5W1X+qS+a+BDud/gb8vf+rLaf8isf5W1X+qS+a+BDud/gb8vf+rLaf8AIrH+
VtV/qkvmvgQ7nf4G/L3/AKstp/yKx/lbVf6pL5r4EO5Dap5J8ix6VfT22jWi3EFvLLC/pCquiEqy
17qdwe2XaftTUyyRickqJHXzYzwwAJpkd3G/rseJoaUP0ZqG9R4P/KfuxV3B/wCU/diruD/yn7sV
dwf+U/diruD/AMp+7FXcH/lP3YqhZtKhklM6K8Fy1OU8JKsadOQ+y9P8sHFVotdWXZLlHXsZYCz/
AElHjX/hcVcbPVX2kuhGvjBCFb75DMPwxVfbaZDbuZVRnnIo08hZ5CPDk1aD2G2Kong/8p+7FXcH
/lP3Yq7g/wDKfuxV3B/5T92KqtrG/rqeJoNycVTHFXYqxHVV8l6zqcpk1y2+tW6tDPbxXFuWRoHf
nzBqysjRyA16cW8DirtJh8n2NzHew6/HOI0V1D3cTR0mQskhANPjjaoPcb4qng8zeWzA9wNWszBG
rPJN9Yi4KibsxblQBe5xV3+JvLdIz+lrOkrrHEfrEXxO/Liq/Fux9J6D/JPgcVX2uv6DeXTWlpqV
rcXSMyPbxTRvIGQAsCisWBAIJxVH4qkepxvJc6vGiCV3sLdVjLFQxMlwApYbivjmUADjjfLjl/vG
vqfd+t4rF+TuvW40+5tNNsRNbxRMLSTU9VjgheFl9KIRJNJG6og4mpoxqe+bIQ7N4jcs1XtXDuO/
p18mF5PJXufyZ1KMWxsLCz5m1hhvmm1XViXkUSc9uVGVDL+651ZfHK8cez9+I5eZqhHl0vfn3pPi
dKTey/L7yO9sYLsanJf2jQQ3/wBV1HU+L3HHkzqUnDuBIG+J9xT5ZpPzGKeSccZsRPXnXS/NyDjk
Igy6qcH5TflmlzcyxWGrrLccYpybrUm5fu/SQktKxPpoPhY/Z7dsmxTnyf5a8n+UpbuXRLPU4zcg
CdJmu5ozT7PGOZiilR8OwrQUxVlUOtQTSRxrb3KtL0LwuoG5HxEii9O+KonUv+OPqf8AzBz/APJs
5kaX+9h/WH3sMn0n3J5PcwW6q0ziMMeKk9yAWp9ynMdmofpfSuSr9bh5OCVHNd6EA9/E0xVWtrq2
uYxLbyrLGafEhBG4BHT2OKquKuxV2KuxVYZohMsJYCV1Z1TuVQqGP0Fxh4TV9EWxy48+afbcvrNt
NH++9GKoUCQByjOvIrsvHr07V60CUQnnHTmvYrRo5FllZFH2SB6rcFPWtOex8KjFU+xV2KuxV2Ku
xV2KuxV2KvLfMv5Ux6p5i1XUrZtIsRcWzwWUjaZb3E6S3Lg3csrugL+ojzrxLEH1CTvm102o0kIR
E8RnMSuXqIsUaH3H4ebUYzs77ITQPyO8uQ6ml35kg0XWIY4nRIotJhtDzqqxFjGSrLHEvBU47ZHW
6jSzjWLEccrG/HxbV3V8UwjIHc2y6b8tPypmLNN5W0eRndpHL2MDEu/2mNU+03c5rGxSH5V/lIHl
ceVtJ/fMjyobSIoXiDhG4FeHIeq29N+/QYqjNL8hflzpOoxalpehWFjqEDtJFd29ukUoZ42iY8kA
JqkjDfxxVkYuoCQA4qfniqXTy+lqWqS1RfTsIH5S19McXuTV6b8fHMnhMscQOZlL7osLqR9363kN
v+cvmNrTnPP5XSiofrZfUkRyjxx3LLC8AbjX1RH+8qTxzYH2f1t14Zv3j397D8xDvVI/zf8ANX1K
0lkTy6Wb1hczxPqLwERRcxJETbqTzaKaib9FFTyByP8AIWruuDf3jrXn5j8BfzEO9Om80/mzqOiJ
rWg6Z5aOmXMQa1ubm7viSzEoCYxbRmnOgpUfPfbX6nTzw5DjmKlHm2RkJCwz2LzB5acCl1ATSpIr
TrSoNOlRTKGTm8x+VV+1e24+keFcVTG2NjcxCaDhJESyh16VRirfcQRiqG16ONNB1PioWtpPWn/G
NsyNL/ew/rD72GT6T7kH501Cx07Q2vL2xvdQgikTlDpsby3ChzwMgSMq3FFYlqb06AnbMdm84ufN
3kRVla68reZ5XWZYpnOnXVWZ2NGUKQHUBTvHXYe4qaVOLT8yfKmg2wNr5c8wrFeILqsel3cxNWEa
B6BuDMPi4tQ+NCQCFR9l+cvl6+hkuLPSddntYXRJJ00q6I+PnRlTj6jisVDwUkVFdqkKrbr85/L9
rZ291No+vqtyEEUR0m7EhkkdkSLgyglz6bHbanfcVVZ5bzJPBHOgYJKiuodSjAMKjkrAMp8QRiq/
FUvuTTXLQjtaXX/Jy3zIj/dS/rR+6TA/UPcf0MH1H827Ozu7i2n0LXZXtpZIecGlS3CPwkdOaNEH
BRzFVT4EE9cx2aj/AMrl0wTxxto2uI8kBnqdLl241IiNBX1eKswQb0B77YquuPzq0+C1iuDo3mB1
njEkKJpFyWbk7R8fsAK1U+yxBIIIqDirV3+dukWjzrPpmuKtvIYWl/RNzwZvVEK8WKb83b4fH57Y
qy7RvMLatpkGowLNDDcAtHHcwmCUAEgFopAHWtKgEVpiqOju7gyKC1QSARQYqmOKuxV2KuxV4Z5w
/J3U9U1zW30ywS2guUeW2u21C/haS8nlMjyPHby8OKfWJqVTrxG67ZtdPDReHE5ZZOO/UI1tHflf
Xl9rUTOzVUnun/k7odxpdsNetZpNSCcbowX2oNGf3gcLyllLuF4LQvuO1MwNR4fGfC4uDpxc/jTO
N1vzVI/yO8irCIWtb6WIrMsqSX16yyfWIPq0hcGXc+kOI8O2UsmQeUvJOj+VNPk0/RoZ47WSUzFJ
5prgqeKoFVpmdgoVBRa4qnfpS/yN9xxVsQyk0CHf2xVq5kEeoarIfTASwgYmavp0DXJ+Olfh8cyg
CccQOfHL7otfU33freSWv5t+YLewiWT/AAqLdIInWWJ9QiiaKOSKC4CRNbHgob1Ejq5347ZsD2Nr
jI3CRlfeOZHF3927AZofgK1h+af5g6re6bZ6dZ+WhdTTMfSll1ImRWa4jT0WFqqRsfq7HkzEGhHw
1GU5eydVjiZSjURz9Q8vP+kGQywNUybVdU/O20aZ7fSfLUWmxvxiM17eluBfjGSEtqVNRsBmsJtt
ZXZ+Y9Ce3i9a6tvrBjUyiOvDl0bgSPs86gYFVH8z+WF+1fW4+kfPFUytbi3uIRLburxEsAy9KqxV
v+GBxVC+YP8Ajgal/wAws/8AybbMjS/3sP6w+9hk+k+5KfzBHl+48uXGma3cpbW1+UijEk62ollD
iSOESMQf3jR8SF+KlaYdJqp6fIMkK4o3V79KTOIkKLzi20v8sxqMesrPpAvIWS6WVNYl4BoFKo5A
lCH0wy78e/3557e1ZxnHxDhII+mPI8+ltYwRDPj51kLtElxpYuEZo3hN4CRIhAZDQAggMCdtqgUz
Ttymnni4cyIs2lCWNwhT64D1PEVoKg8/hpTFU20/zbpM7x2k13bfpNq8rSGaN32BbZeXL7O/TFUz
/SEP8rfcP64qrxSrKnJenviqBuRXXLQDvaXX/Jy3zIj/AHUv60fukwP1D3H9DAJNCtLy71SRfPE6
vPf+l6VrewKLWW39TlaKpMgVx6nxqR+yKjbNhDtSEYxAw4zwxrcXxE1ueXdt3WWHhHvPNr/C9lp8
d1Ndeeb8EwFDPc6haqIYzRTIAVWMHYfGy1HYg74Z9rxlX7jCADe0Tv797ryuu9fC8yyiz1fRWjih
j1a0uZBGW5fWYGd1jLI8h4t2aJwx6VVvA5qJGyTVNoX/AKa0P0ll/Sdn6TMI1k+sw8S7AlVB50qQ
poPY5FLl1rRGaRV1OzZoQxmAuYSUCgFuXxbU5CtcVTK3gkk9KaPi8T8XSRWVlKncEEHcEYqmeKux
V2KuxV43r3lrz3b+bNXm0a78z3tuksepRp+k7eKzlkMwdbG3SeBhHComfluQQnFgdqbXT6LTyhGU
8wgZSojhJ4Rvvt8NvNqM5WQAgNI8tfnCus6dFJeeYILAXVvLe3Fxqen3AWEhjLHw+qhm4NIK7kMo
oNxXLMuh0kYExz8UhdDgO/dve1/YgTnf0/aq6F5K/Mq5136nfa15o0uwhV4ItQbUrG5jcRAr6rI1
szkytGrfFuORoQOtWo0enhi4oZhOW3p4SOddfL8eRjORNEMy/wCVXak7wtP548xSmIUalzFFzHqJ
JuIYo1/ZK1pXi1M1bao6j+VGrXyzxnz75jt4puAjS3uYojEEKfYdYhJyYIQSzEfEdsVZJ5O8rXHl
zT5rSfWtQ1xpZFkW51OX1pUCxJHwU0Hw1Qt8ya1O+Kq9zII9Q1WQ+mAlhAxM1fToGuT8dK/D45lA
E44gc+OX3Ra+pvu/W8lg/NrzBaadprzN5UFmzfV7mSJ9RiiWASCJTEhtm419OT92dhw+0c2H8i66
UyOCRlzO4vv7/P7WHjY1XT/za82XiTz2jeU5aXMdlZzPdX1uDJIX41LW78uQYGimi1NW3yvL2NrI
bShLkZd+w9yRmh3pv5a/OF11G8tPOuoaDaLARFCulTXdyxnqaq5khRf2Dx4k1+6rDsLWSiJDHKiL
6JOeHe9I0nUNK1bToNR05lnsrleUEoQryWpFaMFbr7Zrs+CeKZhMVIc2cZAiwi/Tj/lH3DKmS4AA
UAoPAYqgPMH/ABwNS/5hZ/8Ak22ZGl/vYf1h97DJ9J9yQ/mPoba1oVxZxpbtccKwSXUKXCJWqSMI
3SQFjC7qPhPXDpJ4o5Aco4odQOu3w6pmDW3N5dpH5YaGdXtb7VLGwu9PgCxiyj0GKJn/AHdEcyqo
4hXBeiL3pUimZmp1OkljMceIxmf4uMmt+73bb+9hGM73LJ77yT+Vt9K8955PhlluGM8sx0742dn5
MWZV5VZl38R12OaptV08o/lkqIq+U7agj4Ip05SfTVjIF3Ts68gPHfFURo3kz8t7fXv0hpnlu0tN
WiAdbtbJYWQ0JqpKrxciY8iNztXouKsvxVMbD+4/2RxVQn/471n/AMwl1/yct8yI/wB1L+tH7pMD
9Q9x/Q8z1fyFqGqa3c6ifK/lYPBqBksbm8haS4eItM7XDmIirtI6PxY9eRO5FNhCOgEY8RymXDvV
Vxbbb/52/uYXk35IC5/LnWpaxt5N8myp6aRQr++EKChd+cfAcl9RU40GwqOjEi0Q7M/nZvlHvFde
6/xzF5PJVX8v9bh0xKeT/Jj3kfqx+kkLKgtnILRR1Td5fjqSVWpr41HB2aZ/VmEa7o8/1cu8reTy
ZH5S/LbypFo0ceueV/L9rfCaOcx6fbIIucKERSMGBPqIZJB9pqV2O+a3WDAJ/uTIw/pc/s/Y2Q4q
9SNk/KP8oZJTK/lXSC5Dgn6rDv6hDMSONK7deo6DbMVmy62FnBDFbWwSOGJVjhhSgVUUUVVA6AAY
qr4q7FXYq7FXjuvfk9dXHmrW77StLt47a85XkVzNqOoo81/Lu5McU3BIj6jh04cW+HYjNpghovDi
cksniGXq4aoR+PXk1SM7NVScad+TXlzUdHs5fMNreQawYv8ASkg1XUCI3ZChVZFn3AUkU+zu225z
C1McYyEYyZQvYnmWcbrfmnnlP8rvLPlfVH1LTpb+W5aJ7dBeXtxdJHC7q/BEldh8PABWNWptXKGT
LsVdirsVSqaVIdS1SV4nnSOwgdoI19R3CvckoqftFugHfMgmsUf60vuiw/iPuH6Xn91+Y+gXyafb
QaN5m0pUoDDbaNNSJQp9Lm0ccq8BxAHpll+Kh70qOSRJJJssqCHH5iWTWj3a6f5tjROEqRtpY5Tp
WViqAAcSi25J5FW+NetaZHiKaVF/MfS0htLh9O83O8nqMkR0eRn/AHUjIzSKIiBy6AdfpOHiPeik
z0bz7Yi6idLbzJLDJGH9G60yWKNDLdJaotWjioSzhwu/wVbYVyJKWWeUvNMPmTTZb2PTr/S2hne2
ms9TgNtOroFYkLV1dCHHF0YqfHFU6xVAeYP+OBqX/MLP/wAm2zI0v97D+sPvYZPpPuSL80YgfJt5
L9f1HTmhaNo59HVHvDIziOJEVweQaV15KKchtWhw6TSnPkGMEAnqdgKF7pnLhFvPoI9UEWpj9Neb
2uLRhqFTp8fB0JjU2sBMbqd3NN6KNzUKa538kS9P7zF6pV9Y257ny2+4dWvxtuRStYPSuRpq+YfP
s8kl0v8AuSNvELdTA8ochmiFYvjYuN9gopVdrP5DnwcZyYhtdce/yXxx3FGaIy6hqNnbJ5k862hH
pQRSXdraRwP6caRGSVpYH+11eprWrdSCa9R2PLFAy8TFKv5swSozWaosvk/Lq79aSRfP+rrK9ukC
q0loUQK0TPMkYiVfUcRMOTVoHNBmobmXaFZ2mmaVb2M+ptqksNVa+vGhM8hZiw5mNY0qAaCijYYq
mkMtvIv7h0dR/IQQK/LFUDd/8dq1/wCYO7/5OW+ZEf7qX9aP3SYH6h7j+h4teeS9OXW76W18laky
w3EsdtPb6pPbrK1yLg3NwqGSNV5CSnKvxcttxmxh2dpzCJOeMSY2RRNcqG3Xn7qYHJK/pRmgfk75
c1LT/W1LTdW0KQsY3039M3VwrxIFELFxK1OKjYAgjcdMwdbhxY58OOfiRrnRG/du2QJI3FJ/q/5P
eTdUglim+vwiW6uL4tb393Hxmu3R5iqiThxYxj4eNBvSmYjJlWi6PY6NpdvpdgJBaWqlYRNLJO4B
JahklZ3br3OKo3FV8H99H/rD9eKptirsVdirsVeEax5H0K/86+ZX0OXSqqXu7gvrN2J/0i/NpfWh
huCsMfwzCRGQKQvQhTm0wQ0XhxOQ5PEMt+GqEd+/ryapGdmqpA6h5IXU9PtbhJNLhlS1iuLmebzF
qBAEsbq49SGf4YwhHH7SfExH2mpdHH2cJHillkLNUBy2o7/Hu/XG8nkh4/y4v7d2tRqOiyi5tjb3
sN1rupO0LQztdoLZhKHAiS2ikq3xcVZeXHpMDsyjZzc9vp5UOfxsJ/eeSvD5E53EguToYhukRDBB
5h1QF5Etywovrqp/dty2oeNX+I0rGcOza9Ms1+Yj+Px0ReTyZno35ZflNpdzomuz3EUesaLBbR29
x+lbl4Iv3XqJGizTuPSYEsit1WnbNPk4eI8P03tfOujcLrd6fb3NvcwJPbSpNBIOUcsbB0YeKsKg
5BKWXcTy3+rRRzNbSSafAqXCCrRlmuQHUeK9cy4yEYQJFgTO3f8ARs1kWT7v1sBg0fTJ7Kyr5812
CaCNoWcTcWlaWZpyXVo5at+ym9QoAzY/yzDikfAw0T/N5UK23HvPnux8E1zKKtvKOnX7/UYPOuvT
CW3WGAi6IoEKFpFk9MVl/cdSe7bdcR20Ab8HDzv6fftz5b/cvg+ZTe2/LaeC/tbtfNWuMbZ43eF7
lXjm4OXIlDISQwPEgEbZCfbAlAx8HFve/Dy26b9OaBhrqWaZpm92KuxVAeYP+OBqX/MLP/ybbMjS
/wB7D+sPvYZPpPuR+Y7N2Ksd84eUG8yJZoNRm036q7sz26RM7rInEpykV+K+NBvmbo9VDCSZY45L
H8V7MJwJ60k//KqoFt7eGPXtQRYVZHIi08mQM/P462pqQVUV9syP5Rx2T4GLf+vt7vWx8M95TPy/
5Es9KDi6u5dX5IsateRwVRVBHEelHGKb+GYur1McpBjCOP8Aq3+kllCNdbTX/DXl6lP0bbAEgkek
m5HSu2YjNE2mmadZs7WltFA0lPUMaKpanStBv1xVRn/479n/AMwt1/yct8yI/wB1L+tH7pMD9Q9x
/Q8jv/zb84adr+q2N6fLS2thNLApEmoCX1Gjm+qRP+4MfJpYB6lGoAdt8zcXYmryREowsSFjcchX
n5hic8R1RzfmZ5zuL6Ky06Dy9LcXE4htUaa/4yiX4oKt9WXhyRJCTxYCi/zVyuXZOojEyMaEQSdx
0q/vUZ4E1aeahP8AngtxE1hpPlqS2pynilurxZK0YcEcQ8evFuRXpUU75rm1N/Lsn5jvqrReY9N0
eHSxHJwurC4nkmaQOPT5QywoqgoTX942/fFWUelF/Iv3DFWxGgNQoB8QMVbxV2KuxV2KvLvMXke9
m8xanNpPlbyx6EqM6Xt/APrFxc3VEuTKYwTRo5JlYkVNe+bbTR0PhxOU5OOzYjVAb9/Xl9rTIzs1
VJTF+U4aFjL5N8n280lFkW3SQxNGZ7d2V04RhvhSVhWvEhad8lKPZ4OxykeYiOkvf14ftX955Ml8
ufln5XlsmuPNHljy4mtytKLiTTLZRFIkqFGLF1DkursDXsffMHWDBx/uOLg/pVf2NkOKt0zb8q/y
oaIRN5W0YxrUon1O3opbqV+H4fozFZK7flz+WjCh8u6VQqiMPqsFGWKFreNW+H4gsLsgr0U0xVO9
KsNG0mwh07S4ILKxgqILS3VY4kDMWIRFoB8TE7Yql+q3d3ZzazdWdp9fu4NOhe3seQj9eRWuSkXN
gQvM/DU9MyJf3Uf60vuiwH1H3D9Lz+DzX5paYxf8qseJIonlidrzTzWaKJ3SP4HenKQKgbtyr2zH
pmqr52832Eck9r+WTxyRsrQ8L2xSqH0kb4g3wOolkqv2fgPxUOxAKo2P8zfzBKRl/wAvLws8fNvT
vbJlVuKtxJaSPoW4nauxoDgVmej61f3mnWlze2J0+6njR7ixkdZHhdgC0ZeMsjcTtUYqnGKuxVL/
ADDX9AanTr9Un/5NtmRpP72H9YfewyfSfcr+pqX++If+Rzf9UsrqHefl+1O6gdRuv99Q/wDI1/8A
qljUO8/L9q7u/SN1/vmH/ka//VLGod5+X7V3d+kbr/fMP/I1/wDqljUO8/L9q7u/SN1/vmH/AJGv
/wBUsah3n5ftXd36Ruv98w/8jX/6pY1DvPy/au7v0jdf75h/5Gv/ANUsah3n5ftXdDST3jajBd+n
DxihmiK+q9SZWiYH+67ellolAQMbO5B5d1+fmijdqfO1a7/Rw0y0ZtQjmuZhUcH9Jo0cyVi+Jm9c
dQe+WAnh4+OXoIHuuyK3/osetUN0xSO7QIEs7ZRGAIwshAUAcQBSLbbbKCYnnKXy/az37l/qal/v
iH/kc3/VLI1DvPy/au7vU1L/AHxD/wAjm/6pY1DvPy/au7vU1L/fEP8AyOb/AKpY1DvPy/au7vU1
L/fEP/I5v+qWNQ7z8v2ru71NS/3xD/yOb/qljUO8/L9q7u9TUv8AfEP/ACOb/qljUO8/L9q7q0Rm
KVlVUfwRiw+8hf1ZCVdEhfgS8T83eSIJ9c1eK28rapfoha+SeLWLuzhubu5mRmREEqooHqO5YfZ4
0FK5tdPodPKEZZMwgZS3HCTwgXvt7gAPNqM5WQAk95+XaNp1pHD5C1EmGYqYzrkqTcHqXYyrMxb7
AG7bA0Xrl0Oz9HZB1A5c+CXkx8Sf837WT2n5E+RTpiQNZ39v6kcZeD9I3r+lIqEVTlKyhl5kVAzT
TAEiAbDcOSf+Xvy28seX9Uk1TTbaZb+VXSSaSaaUsJBGHqHZhU+gp+fzyKWTcH/lP3Yq2I3JoFNf
liqhqt9Hp8ms38sE1ylpp0E7W1qnqTyem1y3CJB9p2pRV7nMiX91H+tL7osB9R9w/S8bgP5RLFa2
7aB5le8itrm5jjeC+S44IS8rEpwUPI0JpQiuwHUZtZe0erJJuIvpwxrblzBaxp4OsofylaSCytvK
fmdjcF7Gj2t/6aCTnGzs0h9MAeq/xKTxxl7R6wmzIcwfpj0ry8gn8vBkHlv8xPJmjaV9R0zy15lt
bKCYrwm066Zqyq8rPWQMxUcCD3rmr1eryaifHkNy+X3NkICIoMg0H8y9H1fXIdKg0XW7aWRPV+s3
tlJa260TnxZ5Qp5fs0A65jMmbfpFf5D9+KotWDKGHQio+nFUD5g/44Gpf8ws/wDybbMjS/3sP6w+
9hk+k+50WtabcX9zpsM3K8tlLTR0IoNu5FD9oZjs3h3neK18v66tpL5y81QzOp1NYbaW1lhVXlkj
C/v4+RUM5/dklaAbbCm47P7EzarGckDEDi4d751fc05M4gaKSv5njmQcPOPmyunWv7+OK3s45Jpq
xQhlSRebAsSSCpoT9odDm/6FtQKuWP1H+d5Xuarow/NRZX5R1HRTeR6vcee9WMFvO3PTdYmsoYpj
JA25RIkkCAhio5U5IdswdR2JqcUuER49r9NnrXd7vmGcM8ZC+T0e+1UW0tukcXrC4VmVxJGqgClD
8RFa8h0zUkU3OsdWiuIDLOq2rBuPpvIjHoDWqkjvgVEi8syeInjLUBpzWtCaA9fHbFVwuIC/ASKX
6cQwr0r0xVK9WvL601a0msUWS5+qXSRiQqE+O5slNebxjvQfF1pmXD+4l/Xh902B+oe4/oSDz5Do
0l95b1HUdJe+1TVYY7Oa4g1FrGFIvUjYoxWVY5QXnPpg1qdv2q5kdn9njURnIy4eAXyMr2Pd7t/L
djkycJArmkPkfyr+XWp2UWsajCdHfSrgx2cqeY7m7KtN6blZJVnCpy+roRHWlO1elvaHZJw5BDHx
5CRf0Sj8gdz70QzWLO3xX/4V/LPTJrS5tX1CO1iv/Rj4eYJPSe4jLNHG3O6JrQFlUMK13rtmFHQZ
yaEJXV/SeXf7mfiR71e9/LLyBNpKz/onUrzSvT5i7/Ttw8REoq9GN0yt8R4Hx+gZjzhKB4ZAgjoW
QIPJm/lzzboEFglhUWFpp8cVvZ+tOszvHGnFeTAu1QF6sTXx65BKfWmv6NdzpBbXccs0i840U7so
rUj7jiqPxV2KuxV4/wCadG/MdfMOrR6HeeYJ7KHjfW5S6soo5ZpZ1P1OBp7duMKJM1a8qCMD57XT
6LTyhGWTMIGUtxwk8IF77e4ADzajOVkAJRL5a/NOOPTbi3k81yPZ3rytay6xpw5xSlmdZSIGEiLx
oocnjy+HouXQ7P0lkHUDlz4Jc9mPiT/m/amfl/y5+aE2uy2eoXvmGw0pgsVvqD6hp1zGiQP6wYx/
V1n5P6Yi5MWLBjyPfKtTo9LDFxY83HP+bwkfbyZRnIncMig/KvXllhluPzC8xytBM0yxrLaRxsCa
hHUW5Z1ptQtTwpmpbU98l+Tbny1HdrP5h1XXzdGMq2qzLMYRGpWkXFUoGr8Vak9zirJcVSt0Z9Yv
1UVJtLSg+UtwcyJf3Uf60vuiwH1H3D9Lx61/Lv8AOZrOB5tZliu1Vyw+vSVDyzI3xgRSo3CIMOvX
ptvnXZO1uzBIgYgY7fwDoDy3BFlxRiyd/wBqnb/lv+crWCB9Xm9R4njkt7jUZiR6isoYyRxH41Er
/wAwqq9aYZ9r9mie2McxuMcenkTy2HdzPJRiyd6Z6F+WP5kvMYtf8zX6WMaqsBs7xjMfTZCokLRL
1o1WryPw/wCVXF1fbOiAvDhhxnnxQFb3y9Xu25c/JnHFPqftejaRo1zp2nQ2bSzXbRAg3E55SOSx
arEUHftnM6nN4szOhG+g5ORCNCkZ9Wn/AJDlDJMolKxop6gAH6BiqC8wf8cDUv8AmFn/AOTbZkaX
+9h/WH3sMn0n3JPpgdfN+sKbX00MQZZwSA1Qn7O4qe5GY7N59+ZGk+RLnzQtx5h1iayujpqxJawR
lqQC4ZjKzBJOrsFp7fd1nYmo1kdPWDGJR8S7J68I25jo4meMCfUWK2nl38l1tdQjh8yXEsEgiNzK
kSCKJRMnHl6dusFS23xA7V7VzbZNZ2pxRJwxBF1vudj3z4vl1rrTXw4+8rtO0T8jUvLQDzFJcJA8
TtayIohuHDtwMqCBVJFeApSinwYYM2q7WMZfugLB3veO29Hi+Pv9yiOPvL1W+g0LVLXTdUN0YbOa
JDYsqKoYTKHjIDoSp4jYU2zgs2OUJyjL6okg+8c3OBBGyBW18pBjKNQHFWUsOMRUk8itaxn9mo+W
VpabTPKjO9dRX1YjyI4xAjjvSgQGgpiqeaavl25fnYLBJJb8avGoBWoovQD+X8MVSzzlaT3U1ukM
xiItbouoKjmpuLNCh5FR+1UCu5AGZcP7iX9eH3TYH6h7j+hAeefIuu+Zf8ESacInh0qkt7PNIoUL
SBhSgm5c/TYfDUeNRsdt2J2li02PMJ3c4gCv873d/wCrfdqz4zIimL2f5G+cYfKTaS02nNdSzF2d
2LqkZlR2QepbymrBCfgKrX7SufjG5ye0unOo8Sp8IH20e6Q+2z3GPI0/lpUui/Jfzr/heHRGGlwt
+kYr954SyOAbea3lo0cUa84wY3iPDZyew3EvaLTeOcv7w+gxo/1oyHOR2O4lvypkMEqp6X5Y8uav
o/5fW2iSvG2qQQyKWiKiPm8jOAp9NFAHKg+Afxzle1NTHPqJZIXwy7+fKu8/e5GKJjEAoSPy/wCc
RZRxrcqjqlCvqrQGp22hI+zt4frOA2K0+i+cY2L21yJKIVXnMvIb1+H9yBVgPx+nFWQaJHq0do66
oVa49RipVuY4GhArxToa9sVTDFXYq8c8w+YfzI03zfq1pa69cXdtblJ47SHy+t1BBbyyUSIyR3MU
00vGdNxTZD8JNa7XT9kzyYxk48cRIkDilR2v9X3NUswBqipaLrH5w6jcR2Ca5LDK8/B7y88uGONe
IblRlulAiYx0UlSRUVO+0c/ZhxQ4jkxna6ErPT7d1jms1Rei+UtL882L3P8AifXLXWUZIlszbWX1
IqyhvVeQerNyL1XpQCnvmsbWR4q7FXYqlF1Y2+oX+rWFyvK2u9PggnUFlJSVrlGFVKsNj1BrmRL+
6j/Wl90WA+o+4fpfLsqqdNtLpToiTRs/19DqvmIWbQyenbyGBFQLFUq6ENzUVFA3fY/6H9ZdcG/v
j3X39zD8xDvZh5aX8qHRbzzdqJGtS3DQwPpt9rj2xiihEcLFpHqzNExq+4Y13rWhHs9rSD6OXnH9
a/mId7JtH8q/kXq2rtpen397eX2qAztbvfamyTLBKlzv6j+n8LKpp1oPnmPn7I1OLGck4VEbHcdf
imOaMjQLIY/yH/LqPTDpggvzYmlYP0lfBTTnt8My7ESEEdPuzWtqvcfkp5FuJWlmXUGZ/VDAalfK
CJ5ZJ5AQswqHknYsDse+Ksk8ueVdJ8uw3MOm/WOF3N9Ym+s3NxdHnwVPha4eQqOKDYbYqiPMH/HA
1L/mFn/5NtmRpf72H9YfewyfSfck2lwyL5x1qQsODxrxUMhr8Kfsg8wRmOzYT588oeddX8zi90O7
FlZrp6QGT1miLTid3/3WGb4UPU/zbd6dN2T2lpcOn4M0eKXiE8r24QOvn93ucXNilKVhI7T8u/zV
CX7XWtAySR8bVReTN8VQ32lihVK8acvTJHambDJ2z2dceHHsDv6B+s38/fbDwJ96M8vflf5yluLy
48x+YLqGcRxwafNY3Idggcu5cvDHvstPm3jlGs7d0ojGODFEiyZCUetUKqR/ADKGA9Sz/WtOuLqG
3igiWZYyS3OZ4QKLQf3Y3zkSbNuWlp8uXbNxNuix/CGpdz1IA3G4P7WBURb+XVmeZb63CJJRw0Vx
MxLb12PGg36Yqm1jptrZBxbhgH41DMWoEUKAORPhiqVeYvqq31tLdSiK2is7t5eUZlRx69moR41K
FgWYdxvmXD+4l/Xh902B+oe4/oV73zN5k02GCHRfLNz5h08afBNaX0FzbQmWUv6bQvHO0RQiPjJy
FQdxtTMRmh189+d2WJh5B1Aco+c6Nd2IZW9GSQIv73i3xxolaj7Y8CMVQT/mH+Zwlbj+WN81vwRk
k/SemhyxBLqUMm3Hbeprv9Kq+T8yPPL26S2f5dapM7V5Ry3NpblR6MUq19R67tKydNip+hV6FGxZ
FZlKFgCUalVJ7HiSNvY4q3irsVdiqG/Sem/8tcP/ACMX+uWeDPuPyY8Q71K6vbGa2kij1COB3UhZ
kkTkpPcVJx8Gf80/JeId6Xrb2gtxH+npTIC1ZjNFyIIIApTjtWuwx8Gf80/JeId7vQt/TCf4gl2T
gW9WDkTzL8qlftUPHbtj4M/5p+S8Q71slrA0aIvmKZSvKr+rBybka7/DTbtTHwZ/zT8l4h3o2wns
7VHWXVRd8jUPNJFyH/A8R+GPgz/mn5LxDvRX6T03/lrh/wCRi/1x8Gf80/JeId6R6xrSWUfmDU7S
eAvY6XHOskhZ4VaP6y4Mvpcn4ilW4itOmW5IGOKNivVL7ooibkfcP0vHn/PTU9PcWMdx5Rjjt4iy
elPdAGM24mgMcMcDihA5cVc1FApqRWmWWUjZJJLIABUg/PbXtRvL2DSrjyo/1KEzSepcXvNCIech
obeMOqTdTUVUb8T0HGe9aUJv+ciNZsbM3c83ldw1UiltLq6fdVSXkyNBGxRY5VrwLOC2yHcYDIlN
JjY/nt5mvUZbe98sPPGJ3PC5vWUrzFra0/cru946q4qfhYHArMLbXfzteZDPpOhQw0UyBby5kevP
iwB9BR9j4h/wPvirMLDUNVaxtmv1ijvjEhu44CXiWYqPUEbMEZlDV4kqDTtiqtrbl/LmoMeptJq/
8i2zI0v97D+sPvYZPpPuQGjxxp5k1EMHE5DHk6xguhfkKssjswUMAnwrRdjvmOzYtq3mT8xdN1J7
a6HlSCAtJMj3V5PBMtqkx+JoSj8qwgfHzADHptQ5GLSZcguEZSF1sCd+5iZgcyiYdX/M2+sUm0iz
8s37pNcQ3bpeTmNTEwCKDHFJ8ZH21J+E+OV5cM8ZqYMTV7itkgg8lf1vzgK2f+4fy+GYD9IVurkh
G+tFT6P7j4x9VAarcfjPSgytKBe9/PiO3lYeXvLU0yKxREvrpeRJBQLyt6bDZuRXfcHFVe9u/wA6
hc3MVloHl5oVkH1a4mvbkAxsT9pVt+XJf2untXeirIfK7+bJluB5m06ws3QR/VzZSNMrkhvUrzVS
tPh+mo3ADFVPfQh/32v3DFWH+fHghmgDDiGsbsIEIjPIXNkwoxVwp+GtafdmXD+4l/Xh902B+oe4
/oQfmzyleav5Q0DT9HtIpVhu7e7minmeONUEUju7NHwd/jcUUUHKm3GuZnY2shgyTlMkXAgULNkj
v2+Pd5sM8DIADvYt/wAqw8522urqtppOkNNAq/VXfUtVVo248GYfERXizUNAR1G+bv8AlrTSxeHK
eWjz/d4t+rQMEgeQ+1Mofy68w6XrUOo6RpGmqYnjuS02oahOxumJjlcCTiqr6UjMftMW68sx5drY
cuIwyTyb2NoQHp5jl5gDoK7mXgyBsAfa9WzlXLdirsVdirsVYj5s8wxWOt2unHVo7G5uog9tA5YE
8XPqNQRSCSopQcgRxJ3Fcy8OhzZYGcI3GPMsJZIg0Ui038w47rVrG2l8zaZIkkhkaOFipliG3wsy
cSAVboex32zIn2Nq4xMjjlQ5sfGj3tW3nZg7LF5o0+aWdligjL+rSQSorhgsY4t++Rabbt0HaJ7J
1QBJxy2/b+o/JPjR71486GTTZpH8zWMVwpaR5assSxtDRAaovGpZWFe++9CMf5J1N1wG0ePDvQlx
+YSyWsdwnmrTY4GZ1nl9Tj8UBUuqAx8lorr/AMFT5z/kXV8XD4cr2+3l9xXxo96Z2X5laPaXAl1r
zLpZsyhKrC/LduLI1Qtd1YFd/s+O5wQ7F1cjQxy+S+NDvZdpXmbQNWmeHTL+G8kjijncQtyHpTV9
NwRsQ3E9Mxc+jy4hc4mIJI37xzZxmDyUb2ezgvtVnvZo7ezhsbeS4nmIWNI1e4LM7NsFAG5OCX91
H+tL7ooH1H3D9LzSPyt5WZCk35izteL60s8kV3bpUMkYYtGRIOMcaDrWlS3U1zay7ZhZrBh4dtiL
5X127/sA5NYwnrIoiDyz5UsmaeX8wLhofTueYnvLYpR4ZDI9WTf0ll9T4iQKCuwyGTteMh/cYRy5
RPQjz61R5cykYvMqieWfKrSrcL58uDHdRxMii8gKSK8KWqSAlTy9VwjV+yzdt9we141Xg4v9L/S4
u/4e5fB8yj4vyxlLB5PNmpiZgUcQOIoiDSlFZZGWnGuz9a/LJntjHyGDFXmLPz2+5iMB/nFVf8o7
lngYebtcQQIijjdCrtEGCu/wUY/FvUUNN8kO3AAf3GHe/wCHv7t0+D5llWkeX5tP02Cye9lvXhWj
XVy3OaQkklnbbxzT6jMMmQzERG+keQbYxoUiNcTh5d1FK1paTiv/ADzbJaX+9h/WH3oyfSfck2gw
WMfnPWnt2kLuoMqlR6YYkFuL8mJ+LtxFMx2bGvOPlPyV5k1y51uTzVbWk4s306iS2zpH6MrCdn5t
uVPwEGnEg1r23vZ/bktNiGMREhx8XMuPkwcRu1RfK/lTS4YbSz87yaNboSvo211Z25e4ZR6jvRKS
OwQt8YZuu9AAIz7aMyZTxwnI/wA7iO3QDfb4V99owVyJZVoV7oWk2p0yXzIupXMfqXDyXt1C9wIi
zGrU4ngnBhUjsfDNZqs4yz4hGMPKPJuhGhV2mS+YdAZo1XU7RmlFYlE8ZLDjy+H4t/h3+WY7Juw8
waBqMwh0/UrW8maITrFBPHKxhJAEgVGJ4VI+LpiqPxV2KsL/ADCaFZoGkKVFjd+msjuisxuLMU+A
qT8NaDMuH9xL+vD7psD9Q9x/QhPMet+f9Ih0iTQk8v8A6Fe2gjll1a9ntH+sMrDjEypMpSnDjuWO
/wA8oxYZ5DUAZHyFsjIDml2q+fPP8V9dw2U/lAWySAWkl3q0qOyAfGHRImowZ0H0+4y8aDUHljn/
AKU/qY+JHvCDf8yvzDNsycvJtrfJu31jW3MZj2VZlVIi3pyMduRUjYU75Idm6k8sc/8ASy/UviR7
witO86/mitpx1E+UZL25eKPTJINTmjt53Sn1mP4klk5/EGTiGoD8XvX+Szb+iXp3PpOw8+5PHHvT
GPWfzpAkS70ry9ZuZ4lt5ZL64ZHiMZabioiDM6NsKla0PahzGZMs0C/1B9Hsv07JZJrTRL9eSxkZ
7YzAfGYTJR+B6gNuPE9cVR5vbMGhnjBNaDmvbr3xVVVlZQykMrCqsNwQe4xV5b+amrXlr5n0q1Xz
FFotnLCJblWkEM3ppNSSSJ3tbpPstupIrTwrXqOxMEZYJy8I5JA0NrF1sD64/p5uLmPqG7CrvUfM
ltbzXkfm2zez9drCHUGv+EjSq3qFTSyMSMI37AgA+NTm6hiwyIicMuKuIx4Nq5f6pZF/c0b87XQ+
Y9UmsLr6t51tp7qtv9WJvVUoqQyPPzK2JKn4eXwn4uNfbBLSYxMcWnkI+q/R5jh/ynw35WvEa5p/
p2qaA2k3l3qv5iNB9dlAUWs0MqW/B+YSKRoFLco3SoKDj0zAy4MoyRjj0t8I/iBHF03HF3g9d+bZ
Eit5PU9Ei0y40y1uLe4TVISXltr8iJuQkJ3Uxqq7KeGw6Zy+plOMyCOA8jHfp7/m5UAK70wNrbHr
EnTj9kdKUp92Y/HLvZUFyxxqxZUCswAJAAJArT9eAklNJRfWFvqF7qtjcxLPbXVjbwzwSAFHjd7h
XRgeoZTQ5fL+6j/Wl90WA+o+4fpeUw/lNrrxfWm8l+UorySOQGF4SOPrMwdC0YYUMcrcqV36bUza
yh2YJVxZiO/0/p8/sagcvkiV/KjVzp8xPlDypHqUskyrJHE3BbeaNo2XeMM7Op4k8lFNqZXw9ncY
3y8Fd0bv9A+fvSTkropRflRr628Rbyf5PN1BEIoWWB+CgszEKpQ8VLOW+k5Mx7M4tjm4fdFf3vk9
VsrPUfq9ubxY1uuCG4ERJjElBz4V3416VzTZOHiPDfDe186824XW6bZBLsVQHmD/AI4Gpf8AMLP/
AMm2zI0v97D+sPvYZPpPuVodPtYbqS6UOZ5AQWeSSQAE8iEV2YIK9lAzHZvN/OP5crc67NdaZ5J8
vajbC3eQz38KNNLd3EzySChoKcnZ3LbnlQHrm00mPRmH76UxPi6DYR/WWmZnfpAQ8P5X3jpPLN5O
8oR3kUvowEWdVmtXr6rE05Rlldl471qa7D4pyjoARRykEb/Tse7z+z9Q/eeSYeUPyj8tx2ky+YPK
mhRyR1t7NLa1V2FuUIkDTStK7K7SOADSi9fbF1o04I8HiIrfi/sHT3s8fF/Eyaz/AC38gWUkb2nl
7T4DCwkgCW8YWNlDAGNacU+232R3PjmE2L9B/L3yR5f1OTU9C0S00u9lh+rSS2kSwhoi4fiUTin2
lG9K4qyDFXYqxHzw7R3MTrN9XK2F2fWoxoPrVlXZQSa9PDx2zLh/cS/rw+6bA/UPcf0KHmbynfeZ
/L3l6G2ubdWtJbe7lubmE3HJVhIJRJBuzFhu/T7XUZk9l6+OmlMyEjxRrY13cz+O5jlxmVUxqb8m
NeJnMOqaMhnJLH9BW3I/vRIKsH7Ef5nfNxH2hxbXDLt/t0u6u78fY1flz3/Yi9Z/JuS9m/0OXRrG
39L0wiaJbO1eRblylaTeu5/ZP8td8p0/tAID1DLI3/qsv0V+vzScB7x8kZ5Z/KWLT9SFxrMlhq1r
GHktbb6iIhDcvIjmaMNJKifY4/CoNAoJPEZVrO3TkhWMTxyPM8d3GiKOwJ59T37bpx4OE77s6u9M
0+8eF7u3jneAloS6huJNK0r8hnPOQh28t+X2py022biAFrEhoB2G2KpTqdz+Wml3a6ZqlxpFheTK
s6WVzLbQysjOY0kEblWKl6qDTrtiqe6Vd6ZeabbXOlzxXOnSxqbSe3dZInjpRSjqSCKe+Kqlx9S5
L9Y9Ll+z6nGvXtX3ycOLpaDXVaf0dxWvo8eR4fZpy4709+P4YfX5rspv+h/X+P6v6/E15cOfGnxd
d6U65IeJW3FXxR6V7fo3gvL0eG3CvCntTAOPzXZELx4jhTj2p0yssm8CuxVCRfV/0vc8ef1j6vb+
pWnDhzm4ce9a8q/Rl0r8Md3FL7o/sYjmi8pZOxV2KuxV2KuxVCax9X/RF99Y5/V/q8vrenTnw4Hl
xrtWnSuXae/EjXPiH3sZ8jaLylk7FXYq7FXYq7FXYq7FWHee/wBFfX9N/SH1mnoXPp/VfSrX1Lb7
Xq/D1pTMmF+BLu44/dNgfqHuP6GVWHp/Ubf0/wC79JOH2OnEU/uv3f8AwO3htmMzV8VdirsVdirs
VeDfnb/yrT/lY2nf4k/xB+lv0bF9W/Rf1f6nx+sT+lX1vi9evq9NvT5c/g5Yqi/KH/QvHqN9a9H9
IV1D1f8AEvGv+9a/XK+v/ovL6xTp8fWm1cVf/9k=</xapGImg:image> + </rdf:li> + </rdf:Alt> + </xap:Thumbnails> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"> + <xapMM:DocumentID>uuid:C94FEAC825B9DC119493EFD327A74A4F</xapMM:DocumentID> + <xapMM:InstanceID>uuid:665becf3-7209-2d46-8ddb-af2c09923db0</xapMM:InstanceID> + <xapMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>uuid:C84FEAC825B9DC119493EFD327A74A4F</stRef:instanceID> + <stRef:documentID>uuid:C74FEAC825B9DC119493EFD327A74A4F</stRef:documentID> + </xapMM:DerivedFrom> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xapTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#" + xmlns:xapG="http://ns.adobe.com/xap/1.0/g/"> + <xapTPg:NPages>1</xapTPg:NPages> + <xapTPg:HasVisibleTransparency>True</xapTPg:HasVisibleTransparency> + <xapTPg:HasVisibleOverprint>False</xapTPg:HasVisibleOverprint> + <xapTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>51.500000</stDim:w> + <stDim:h>24.000000</stDim:h> + <stDim:unit>Inches</stDim:unit> + </xapTPg:MaxPageSize> + <xapTPg:Fonts> + <rdf:Bag> + <rdf:li rdf:parseType="Resource"> + <stFnt:fontName>ArialMT</stFnt:fontName> + <stFnt:fontFamily>Arial</stFnt:fontFamily> + <stFnt:fontFace>Regular</stFnt:fontFace> + <stFnt:fontType>Open Type</stFnt:fontType> + <stFnt:versionString>Version 5.01.2x</stFnt:versionString> + <stFnt:composite>False</stFnt:composite> + <stFnt:fontFileName>Arial.ttf</stFnt:fontFileName> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stFnt:fontName>BitstreamVeraSansMono-Oblique</stFnt:fontName> + <stFnt:fontFamily>Bitstream Vera Sans Mono</stFnt:fontFamily> + <stFnt:fontFace>Oblique</stFnt:fontFace> + <stFnt:fontType>TrueType</stFnt:fontType> + <stFnt:versionString>Release 1.10</stFnt:versionString> + <stFnt:composite>False</stFnt:composite> + <stFnt:fontFileName>VeraMoIt.ttf</stFnt:fontFileName> + </rdf:li> + </rdf:Bag> + </xapTPg:Fonts> + <xapTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xapTPg:PlateNames> + <xapTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xapG:groupName>Default Swatch Group</xapG:groupName> + <xapG:groupType>0</xapG:groupType> + </rdf:li> + </rdf:Seq> + </xapTPg:SwatchGroups> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <pdf:Producer>Adobe PDF library 8.00</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?> endstream endobj 3 0 obj <</CreationDate(D:20071231153255-07'00')/Creator(Adobe Illustrator CS3)/Producer(Adobe PDF library 8.00)/ModDate(D:20071231153255-07'00')/Title(git-cheat-sheet)>> endobj xref 0 4 0000000000 65535 f +0000210179 00000 n +0000210230 00000 n +0000251357 00000 n +trailer <</Size 4>> startxref 116 %%EOF \ No newline at end of file diff --git a/ICON-NWP/README.md b/ICON-NWP/README.md index 471d3915ddff332cb575d18888d3368de5fa1888..41ede0ee724eaaac30a57b9322e9dd24027dea01 100644 --- a/ICON-NWP/README.md +++ b/ICON-NWP/README.md @@ -1,2 +1,4 @@ -## ICON-NWP -This is a short introduction to [using the ICON-NWP model on `jet.imgw`](./ICON-NWP.md) and how you can [run assimilation](./how-to-bacy.md) experiments with [`bacy`](./bacy.md). You can get more information about the model [here](https://code.mpimet.mpg.de/projects/iconpublic). \ No newline at end of file +# ICON-NWP +This is a short introduction to using the ICON-NWP model on `jet` ([ICON-NWP](./ICON-NWP.md)) and how you can [run assimilation](./how-to-bacy.md) experiments with [`bacy`](./bacy.md). + +You can get more information about the model [here](https://code.mpimet.mpg.de/projects/iconpublic). \ No newline at end of file diff --git a/Misc/Environment-Modules.md b/Misc/Environment-Modules.md index 52677eb1e5afd84e85cd80116d6418bbc09bdee3..df55163aff722b41c5f6cf4ab80bcbfd29bedb1d 100644 --- a/Misc/Environment-Modules.md +++ b/Misc/Environment-Modules.md @@ -1,4 +1,4 @@ -# Using environment modules +# Environment modules  @@ -16,7 +16,7 @@ Currently Loaded Modulefiles: `module list` shows the currently loaded modules and reports that 6 libraries need to be loaded as dependencies for `ECCODES`. Thus, it is not necessary to load the other libraries manually as they are dependencies of `ECCODES`. However it will be necessary to load the intel compiler suite `intel-parallel-studio/composer.2020.2-intel-20.0.2-zuot22y` as well for build applications. -```bash +```bash title="using environment modules" # unload modules $ module unload eccodes/2.18.0-intel-20.0.2-6tadpgr @@ -45,7 +45,9 @@ prepend-path CMAKE_PREFIX_PATH /jetfs/spack/opt/spack/linux-rhel8-skylake_avx ### GNU gfortran is available on the default command search path, so it is not essential to load a module, unless: (1) You need to set environment variables such as FC and F77; (2) You need to link MPI libraries. In these cases, you should load the gfortran module. This is what the module does to the environment: -``` + + +```sh title="module details gcc" $ module show gcc/8.3.1-gcc-8.3.1-pp3wjou ------------------------------------------------------------------- /jetfs/spack/share/spack/modules/linux-rhel8-skylake_avx512/gcc/8.3.1-gcc-8.3.1-pp3wjou: @@ -69,7 +71,8 @@ setenv F90 /usr/bin/gfortran ### INTEL there are a few version of intel compilers installed and some more might be added as well: -```bash + +```bash title="module details intel" $ module av intel ----------------------- /jetfs/spack/share/spack/modules/linux-rhel8-skylake_avx512 ------------------------ intel-mkl/2020.3.279-gcc-8.3.1-5xeezjw @@ -81,10 +84,12 @@ intel-parallel-studio/composer.2020.2-intel-20.0.2-zuot22y --------------------------- /jetfs/spack/share/spack/modules/linux-rhel8-haswell --------------------------- intel-parallel-studio/composer.2017.7-intel-17.0.7-disfj2g ``` + This shows that we have `intel-parallel-studio` with version `20.0.2` and `17.0.7` installed and `intel-oneapi-compilers` at version `2021.2.0`. The first does not come with Intel-MPI, but the second does. Again the module sets a lot of -```bash + +```bash title="module details intel-parallel-studio" $ module show intel-parallel-studio/composer.2020.2-intel-20.0.2-zuot22y ------------------------------------------------------------------- /jetfs/spack/share/spack/modules/linux-rhel8-skylake_avx512/intel-parallel-studio/composer.2020.2-intel-20.0.2-zuot22y: diff --git a/Misc/Shells.md b/Misc/Shells.md index 850cab5c62ce6871949a632691cb75ea313298c2..d3a83f9ebf28b7b5308bb2804fee1abe1b3247e6 100644 --- a/Misc/Shells.md +++ b/Misc/Shells.md @@ -1,12 +1,65 @@ # User Shells +Almost every linux shell has ways to modify the user experience. There are multiple ways of changing your shell environment. + +Here are some topics listed: + + - modifying the shell user limits + - virtual terminals ## Limits -It is possible to address resource limits in a user shell, which makes sure that programs do not run + +It is possible to address resource limits in a user shell, which make sure that programs do not run out of control. This can be useful for a code that might have an infinite recursion. This is usually controlled by the stack size limit. Check what resource limits you have: -`ulimit -a` +```sh +$ ulimit -a +core file size (blocks, -c) 0 +data seg size (kbytes, -d) unlimited +scheduling priority (-e) 0 +file size (blocks, -f) unlimited +pending signals (-i) 3091355 +max locked memory (kbytes, -l) unlimited +max memory size (kbytes, -m) unlimited +open files (-n) 1024 +pipe size (512 bytes, -p) 8 +POSIX message queues (bytes, -q) 819200 +real-time priority (-r) 0 +stack size (kbytes, -s) 8192 +cpu time (seconds, -t) unlimited +max user processes (-u) 10000 +virtual memory (kbytes, -v) unlimited +file locks (-x) unlimited + +# in an slurm job it might be necessary to use +ulimit -s unlimited +# to allow a larger stack size for e.g. FORTRAN programs. +``` + +Stack contains all local variables & data, intermediate storage for registers, and function parameters. This setting is used to block infinite recursion. -## Virtual terminals +| flags | description | +| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| -H | Specifies that the hard limit for the given resource is set. If you have root user authority, you can increase the hard limit. Anyone can decrease it | +| -S | Specifies that the soft limit for the given resource is set. A soft limit can be increased up to the value of the hard limit. If neither the -H nor -S flags are specified, the limit applies to both | +| -a | Lists all of the current resource limits | +| -b | The maximum socket buffer size | +| -c | The maximum size of core files created | +| -d | The maximum size of a process's data segment | +| -e | The maximum scheduling priority ("nice") | +| -f | The maximum size of files written by the shell and its children | +| -i | The maximum number of pending signals | +| -l | The maximum size that may be locked into memory | +| -m | The maximum resident set size (many systems do not honor this limit) | +| -n | The maximum number of open file descriptors (most systems do not allow this value to be set) | +| -p | The pipe size in 512-byte blocks (this may not be set) | +| -q | The maximum number of bytes in POSIX message queues | +| -r | The maximum real-time scheduling priority | +| -s | The maximum stack size | +| -t | The maximum amount of cpu time in seconds | +| -u | The maximum number of processes available to a single user | +| -v | The maximum amount of virtual memory available to the shell and, on some systems, to its children | +| -x | The maximum number of file locks | +| -T | The maximum number of threads | diff --git a/Misc/Slurm.md b/Misc/Slurm.md index d63706b75064b2efeb7d6bbd7da89c674b3a92cf..370e2e8db40edb3a53f99c68c272c350764d1131 100644 --- a/Misc/Slurm.md +++ b/Misc/Slurm.md @@ -81,3 +81,21 @@ A full list of these Job State codes can be found in [Slurm’s documentation.]( | `AssociationNodeLimit` | All nodes assigned to your job’s specified association are in use; job will run eventually. | A full list of these Job Reason Codes can be found [in Slurm’s documentation.](https://slurm.schedmd.com/squeue.html#lbAF) + + +# Get information on your jobs + +```sh title='Job details' +# get all your jobs since +sacct --start=YY-MM-DD -u $USER -o start,jobid,jobidraw,jobname,partition,maxvmsize,elapsed,state,exitcode +# get more information on one job +sacct -j [jobid] + +``` + +```sh title='Job efficiency' +# get a jobs efficiency report +seff [jobid] +# example +seff +``` \ No newline at end of file diff --git a/Python/README.md b/Python/README.md index 1727be16703923e7c9c3e9440ae5bf7d383e77d2..27a3bf23cd9dfc149a00ea66cab2907959193978 100644 --- a/Python/README.md +++ b/Python/README.md @@ -133,4 +133,35 @@ You just need to add a configuration option and then you can open the Dashboard ## Q: How to profile memory and exeution time of functions? [Profile](QA-009-Memory-Profiling.ipynb) -If you need to get a better understanding of you functions memory and execution time, try these profiling options. \ No newline at end of file +If you need to get a better understanding of you functions memory and execution time, try these profiling options. + + +## Q: How to ignore user site packages? + +When using python it is possible to have multiple site, where packages can be installed. the default is to use the path from the python interpreter and a user site. + +```sh +$ python -c 'import sys;print("\n".join(sys.path))' + +/jetfs/manual/enstools/v2021.11/lib/python38.zip +/jetfs/manual/enstools/v2021.11/lib/python3.8 +/jetfs/manual/enstools/v2021.11/lib/python3.8/lib-dynload +/jetfs/home/USER/.local/lib/python3.8/site-packages +/jetfs/manual/enstools/v2021.11/lib/python3.8/site-packages +``` + +this shows that there is a user site in your HOME directory for that python version. Python will always look for a directory for it's own version. + +You can disable that by altering the `sys.path` (python type list) manually or using an environment variable (`export PYTHONNOUSERSITE=1`). + +```sh +export PYTHONNOUSERSITE=1 +$ python -c 'import sys;print("\n".join(sys.path))' + +/jetfs/manual/enstools/v2021.11/lib/python38.zip +/jetfs/manual/enstools/v2021.11/lib/python3.8 +/jetfs/manual/enstools/v2021.11/lib/python3.8/lib-dynload +/jetfs/manual/enstools/v2021.11/lib/python3.8/site-packages +# unset the variable again +unset PYTHONNOUSERSITE +``` \ No newline at end of file diff --git a/README.md b/README.md index ce35ee197f5005ccdef03e896f94944396e6bf74..1ed403516ecd5abb6c24ec45bc8de8244f7aee43 100644 --- a/README.md +++ b/README.md @@ -3,24 +3,20 @@ # Welcome to the Department of Meteorology and Geophysics -Find help here with your computer related problems. A mkdocs rendered version is available here: [wolke](https://wolke.img.univie.ac.at/documentation/general/index.html) - - - 🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧 - Please note that this documentation is under active development and things might shift a bit. - 🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧 +Here you can find help with your computer/server related problems. +[link to this page on wolke](https://wolke.img.univie.ac.at/documentation/general/index.html) Search with the top bar or go through the directories: - [Python related Problems](./Python/README.md) - [SSH, VNC, VPN related Problems](./SSH-VPN-VNC/README.md) -- [Editors](./Editors/) and [remote connection](./SSH-VPN-VNC/README.md) +- [Editors](./Editors/README.md) and [remote connection](./SSH-VPN-VNC/README.md) - [Data availability and location](./Data/README.md) -- [Git related problems](https://gitlab.phaidra.org/imgw/computer-resources/-/issues) +- [Git related problems](./Git/README.md) / [Report new issus on gitlab](https://gitlab.phaidra.org/imgw/computer-resources/-/issues) -for new employees or students, you could start with the [Getting Started](./Getting%20Started.md) section or the [Student](./Students.md) section. +for new employees or students, you could start with the [Getting Started](./Getting%20Started.md) section or the [Student](./Students/README.md) section. -A useful summary of all resources is given by the [IMGW Cheat sheet](./mkdocs/imgw-cheatsheet.pdf) +A useful summary of handy tips is available as [IMGW Cheat sheet (PDF)](./mkdocs/imgw-cheatsheet.pdf) **If you care to participate please do so:** diff --git a/SSH-VPN-VNC/IPA.md b/SSH-VPN-VNC/IPA.md index dbc23e79b1a2ba0b188210ab386304c2174165f0..fe5a64fadba3329542516f375a6ffb719265beae 100644 --- a/SSH-VPN-VNC/IPA.md +++ b/SSH-VPN-VNC/IPA.md @@ -46,15 +46,3 @@ Do not forget to save your changes and finally you should see the fingerprint of  Done. The IPA needs to sync this to all connected servers and this might take up to 5 minutes. Please be patient. - -## OTP - -This section will be added soon. - -:construction: - - -## Kerberos - -:construction: - diff --git a/SSH-VPN-VNC/Questions.md b/SSH-VPN-VNC/Questions.md index e787c343ceb35edf396e3b5d508d2023494637bf..1ffdd46628100515d208b82ce38e8a4c415f3b9a 100644 --- a/SSH-VPN-VNC/Questions.md +++ b/SSH-VPN-VNC/Questions.md @@ -1,14 +1,35 @@ # Questions and Answers + Please feel free to add you questions and anwsers. +Links: + +- [SSH explained](https://blog.teamairship.com/intro-to-ssh-secure-shell-101-exercise)😂 +- [SSH agents explained](https://smallstep.com/blog/ssh-agent-explained/) + +## Q: How does ssh work? +Secure Shell (SSH) is a popular networking protocol that lets us access a remote computer over an insecure network such as the Internet. + +Secure Shell also supports both password and key-based authentication. Password-based authentication let users provide username and password to authenticate to the remote server. A key-based authentication allows users to authenticate through a key-pair. The key pairs are two cryptographically secure keys for authenticating a client to a Secure Shell server. + + + +Secure Shell has a client-server architecture. Typically, a server administrator installs a server program that accepts or rejects the incoming connections. Besides, a user runs a client program on their system that requests the server. By default, the server listens on HTTP port 22. + ## Q: How to use ssh-key authentication? - -In order to connect passwordless to a remote server a key needs to be generated. -``` -$ ssh-keygen -b 4096 + +In order to connect passwordless to a remote server a secure shell key needs to be generated. This key will be used automatically to login. + +???+ danger "SSH KEY Authentication" + + Using this **can be a safer way** to connect to our servers. However, if someone gets access to your key, e.g. on your Laptop, that person has access to your data/server. **Secure your ssh-key.** Therefore consider using a phassphrase / ssh-agent. + +```sh title="How to create an RSA key" +# Please use at least 4096 bits for generating your key. +$ ssh-keygen -b 4096 -t rsa Generating public/private rsa key pair. -Enter passphrase (empty for no passphrase): -Enter same passphrase again: +Enter passphrase (empty for no passphrase): +Enter same passphrase again: Your identification has been saved in .ssh/id_rsa Your public key has been saved in .ssh/id_rsa.pub The key fingerprint is: @@ -27,41 +48,102 @@ The key's randomart image is: +----[SHA256]-----+ ``` -It is recommended to use a password to encrpyt the private key `.ssh/id_rsa`. However, this password is then required each time to login. Using an `ssh-agent` can solve that problem. +```sh title="How to create a secure key" +# this is the newest and securest standard +$ ssh-keygen -t ed25519 +Generating public/private ed25519 key pair. +Enter file in which to save the key (/home/user/.ssh/id_ed25519): +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /home/user/.ssh/id_ed25519. +Your public key has been saved in /home/user/.ssh/id_ed25519.pub. +The key fingerprint is: +SHA256:sin8cTe10fOIbSpQW8gETSUKIx27viPolF0w79cBTzU user@srvx1.img.univie.ac.at +The key's randomart image is: ++--[ED25519 256]--+ +| ..+..+o.E | +| ..+ .oo . | +| o . oo.. | +| + . ++ .. | +| = S.ooo o | +| + + +...o = + | +| o.+ * o.+ o + .| +| .. .o.= ... o | +| .. .o. .. | ++----[SHA256]-----+ +``` + +It is recommended to use a password to encrpyt the private key `.ssh/id_rsa`. However, this password is then required each time to login. Using an `ssh-agent` can solve that problem. + +???+ warning "Adding ssh keys to our servers" + Remember to use the [IPA for adding your ssh-keys](./IPA.md#add-ssh-key), as keys in `~/.ssh/` on all our servers will be ignored. ## Q: How to use an ssh-agent? -Using an SSH-Agent will make your connection even safer, as your private key is encrypted with a passphrase. To create a ssh-key goto [How to use ssh-key authentication?](#q-how-to-use-ssh-key-authentication). -Continue with how to use the ssh-agent: -```bash -# Launch the SSH Agent +Using an SSH-Agent will make your connection even safer, as your private key is encrypted with a passphrase. First create a new ssh-key and **use a passphrase**. Then continue with using the ssh-agent. This agent is installed on all our servers and it is allowed to forward authentication as you go along. + +```bash title="Using an ssh-agent" +# Launch the SSH Agent on your Laptop/Computer eval `ssh-agent` -# this will add your ssh-keys from ~/.ssh/ +# this will add all your ssh-keys from ~/.ssh/ # You will be asked a passphrase if you have one -# this will add .ssh/id_rsa as default -ssh-add -# or any keyfile you created: -ssh-add .ssh/secret_key -# Copy the ssh-key (pub) to the server -ssh-copy-id [user]@[server] -# and connect +ssh-add +# or specify the keyfile yourself: +ssh-add path/to/secret/keyfile/secret_key + +# The you need to add your ssh-key.pub (public) to the IPA + +# and connect (no password prompt) ssh [user]@[server] # Kill the agent and all store secure information ssh-agent -k ``` -**Tip: configure your `.ssh/config` file to use the correct key a server. Goto [SSH](SSH.md)** -[Nice summary of how an ssh-agent works](https://smallstep.com/blog/ssh-agent-explained/) +???+ warning "ssh-agent on servers" + + Please use these commands on our servers: `ssh-agentstart` and `ssh-agentreconnect`. These commands take care that you do not launch too many agents, killing the system. -<img src="https://keepassxc.org/images/keepassxc-logo.svg" width="200px"> +[Adding a ssh-key to the IPA](./IPA.md#add-ssh-key). + +adding this to your local `.ssh/config` will forward your ssh-agent to be used to hop from server to server. + +```sh title="Allow ssh-agent forwarding" +$ vi .ssh/config + +Host [host address] + ForwardAgent yes +``` + +e.g. + +```sh title="ssh-agent hopping" +# check a ssh-agent is running on your Laptop +$ ssh-add -l +256 SHA256:3ppnVv7Cw monkey@laptop (ED25519) +# set the option manually or modify the .ssh/config +$ ssh -oForwardAgent=yes srvx1 +# on the sever all your ssh-keys should be available as well +[monkey@srvx1] $ ssh-add -l +256 SHA256:3ppnVv7Cw monkey@laptop (ED25519) +# since this key is registered in the IPA, connecting to other servers is easy +[monkey@srvx1] $ ssh jet02 +# with no password prompt using your ssh-agent +[monkey@jet02] $ +``` + +[Nice summary of how an ssh-agent works](https://smallstep.com/blog/ssh-agent-explained/) Keep in mind that you can use the ssh-agent with [KeepassXC](https://keepassxc.org/docs/#faq-ssh-agent-how), find a nice tutorial [here](https://ferrario.me/using-keepassxc-to-manage-ssh-keys/). This is really convenient as it allows you to use all keys in the Keepass as long as it is unlocked. The keys will be automatically removed when the keepass is locked. :) +<img src="https://upload.wikimedia.org/wikipedia/commons/c/c1/KeePassXC.svg" width="200px"> + + ## Q: How to transfer files between two VPN networks? You should be able to use an SSH tunnel via a gateway server Situation + ``` VPN-1 VPN-2 __________ /| ___________ /| __________ @@ -71,12 +153,14 @@ __________ /| ___________ /| __________ __________ | | ___________ | | __________ |/ |/ ``` -Assuming you're trying to transfer a file from/to a remote computer ("remote") from/to your local computer ("local"), + +Assuming you're trying to transfer a file from/to a remote computer ("remote") from/to your local computer ("local"), establish a tunnel via a third computer ("gateway") by typing this on your local computer: ```bash $ ssh -fNL 12345:remote:22 gatewaylogin@gateway ``` + Then you can run an unlimited amount of SCP commands on this tunnel (still typing on your local computer): ```bash @@ -85,10 +169,12 @@ $ scp -P 12345 remotelogin@localhost://path/to/remote/file /local/path/where/you ``` another option is to use `rsync` with a gateway command: + ```bash # rsync [SRC] [DEST] -$ rsync -avz -r --stats --progress -e "ssh gateway ssh" remote:/src/documents/ /dest/documents +$ rsync -avz -r --stats --progress -e "ssh gateway ssh" remote:/src/documents/ /dest/documents ``` + **Note: key-based authentication is required from the gateway to the remote server using rsync.** Initial testing showed that using key-based authentication between gateway and remote is required. @@ -100,16 +186,21 @@ Please replace `[USER]` with your username on these servers and adjust the serve ```bash $ ssh -t [USER]@srvx1.img.univie.ac.at 'ssh [USER]@jet01.img.univie.ac.at' ``` + or using the above `~/.ssh/config` you can do: + ```bash $ ssh -t login ssh jet ``` + or using the connect script + ```bash $ connect2jet -g login jet ``` ## Q: How to mount a remote file system on Linux (MAC)? + You can us programs like [Filezilla](https://filezilla-project.org/) or [Cyberduck](https://cyberduck.io/) (MAC) to transfer files between remote and local host. But sometimes it is much easier to mount a remote file system and work on it like an external drive. You can use the `mountserver` ([Download: mountserver](mountserver)) script to do so. This requires `sshfs` to be installed, on Linux that is in the standard repositories. A short into and some additional steps can be found [here](https://www.tjansson.dk/2008/01/autofs-and-sshfs-the-perfect-couple/). @@ -127,8 +218,8 @@ This will mount the remote directory to the local directory. The local directory --8<-- "SSH-VPN-VNC/mountserver" ``` - ## Q: How to use an SSH tunnel for private browsing? + based on a tutorial from [Linuxize](https://linuxize.com/post/how-to-setup-ssh-socks-tunnel-for-private-browsing/). It can be really useful to access resources from inside the IMGW / UNIVIE network without using the VPN from the ZID. This can be done super easily. You need an SSH client (e.g. ssh, Putty) and [Firefox](https://www.mozilla.org/en-US/firefox/new/). @@ -138,12 +229,14 @@ I'm showing the things here only for Linux, but Windows with Putty should be str ```bash ssh -N -D 8091 [USER]@srvx1.img.univie.ac.at ``` + Options: + - `-N` - Tells SSH not to execute a remote command. - `-D 8091` - Opens a SOCKS tunnel on the specified port number. - To run the command in the background use the `-f` option. -Authenticate at the server and check that the connection is working. Next open Firefox and go to settings - network and select manual proxy configuration. +Authenticate at the server and check that the connection is working. Next open Firefox and go to settings - network and select manual proxy configuration.  diff --git a/SSH-VPN-VNC/README.md b/SSH-VPN-VNC/README.md index 3838253de978acd369bad3d3d7bf5d3f11af48d6..5a874fe6420c5caa2f6bf5d31265fdd2a156ec51 100644 --- a/SSH-VPN-VNC/README.md +++ b/SSH-VPN-VNC/README.md @@ -1,14 +1,14 @@ # Connection 101 -Please find here some details on how to connect using SSH or VPN or VNC. And some other linux related terminal based information. +Please find here some details on how to connect using SSH or VPN or VNC. ## General Access Please use these methods to access the servers: 1. Connect using [SSH](SSH.md) or [MOSH](https://mosh.org/#) (Mobile Secure Shell) -2. Connect using [TeachingHub](../TeachingHub.md) or [ResearchHub](../Servers/JET.md#jupyterhub) +2. Connect using [TeachingHub](../Students/TeachingHub.md) or [ResearchHub](../Servers/JET.md#jupyterhub) 3. Connect using [VNC](VNC.md) -4. Access from outside the UNI, [VPN](VPN.md) +4. Access from outside the UNI via the [VPN](VPN.md) ## Jupyterhub @@ -17,50 +17,23 @@ Currently, there are two JupyterHub instances runnning: - TeachingHub on SRVX1 - ResearchHub on Jet01 -Connect to either : - -- [https://srvx1.img.univie.ac.at](https://srvx1.img.univie.ac.at) from everywhere -- [https://jet01.img.univie.ac.at](https://jet01.img.univie.ac.at) from within the university network. - -## Screen - -[Screen](https://wiki.ubuntuusers.de/Screen/) is terminal session manager, that allows to start processes and reconnect to these processes after disconnection. -This starts a new session - -```bash title="Screen" -# open a interactive screen session -screen -S longjob -``` - -You can detach from this session with `CTRL + A D` and reconnect again with `screen -r`. - -Multiple Sessions can be created and the output saved (`-L` Option). - - - -## Tmux -[Tmux](https://wiki.ubuntuusers.de/tmux/) is a terminal multiplexer, that allows to open more consoles and allows to detach the session. It is much more complex and powerful compared to screen. -``` bash title="Terminal Multiplexer" -tmux -``` -Launches a new virtual terminal, with `CTRL + B D` it can bed detached and with `tmux a` it can be reconnected. - +Connect to either via the [wolke](https://wolke.img.univie.ac.at) ## Questions and Answers +- [Q: How does ssh work?](Questions.md#q-how-does-ssh-work) - [Q: How to use ssh-key authentication?](Questions.md#q-how-to-use-ssh-key-authentication) - [Q: How to use an ssh-agent?](Questions.md#q-how-to-use-an-ssh-agent) - [Q: How to transfer files between two VPN networks?](Questions.md#q-how-to-transfer-files-between-two-vpn-networks) -- [Q: How to connect to Jet, SRVX8, SRVX2?](Questions.md#q-how-to-connect-to-jet-srvx8-srvx2) +- [Q: How to connect to IMGW Servers?](Questions.md#q-how-to-connect-to-jet-srvx8-srvx2) - [Q: How to mount a remote file system on Linux (MAC)?](Questions.md#q-how-to-mount-a-remote-file-system-on-Linux-mac) ## Tools Please find some useful tools for connecting to IMGW servers and University of Vienna VPN: -- BASH script using SSH to connect via a gateway, [SSH](SSH.md#connect-script) Download: [connect2jet](connect2jet) -- BASH script for 5fpc tools, [VPN](VPN.md#connect-script) Download: [connect2vpn](connect2vpn) -- Change VNC resolution, [VNC](VNC.md#xrandr) Download: [add_xrandr_resolution](add_xrandr_resolution.sh) +- Shell script using SSH to connect via a gateway, [SSH](SSH.md#connect-script) Download: [connect2jet](connect2jet) +- Shell script for F5FPC tools, [VPN](VPN.md#connect-script) Download: [connect2vpn](connect2vpn) - Mount Server directories via sshfs, [SSHFS](SSH.md#sshfs) ??? note "connect2jet" @@ -74,9 +47,3 @@ Please find some useful tools for connecting to IMGW servers and University of V ``` bash title="Connect to VPN" --8<-- "SSH-VPN-VNC/connect2vpn" ``` - -??? note "add_xrandr_resolution" - - ``` bash title="Add a new monitor resolution to VNC" - --8<-- "SSH-VPN-VNC/add_xrandr_resolution.sh" - ``` \ No newline at end of file diff --git a/SSH-VPN-VNC/SSH.md b/SSH-VPN-VNC/SSH.md index e04a814dda6663fe03aad401235d4d94f02e8ce9..3936fad49d1d9606e6ad54fd69e3c15aab18c476 100644 --- a/SSH-VPN-VNC/SSH.md +++ b/SSH-VPN-VNC/SSH.md @@ -16,36 +16,37 @@ on Linux and Mac, all tools are present. on Windows use one of these: **Connect from the office** by typing either of the following in a terminal. Replace `[USERNAME]` with your own. -```bash title="SSH commands" -ssh -X [USERNAME]@srvx1.img.univie.ac.at -ssh -X [USERNAME]@srvx8.img.univie.ac.at -ssh -X [USERNAME]@jet01.img.univie.ac.at -ssh -X [USERNAME]@131.130.157.215 -ssh -X [USERNAME]@jet02.img.univie.ac.at -ssh -X [USERNAME]@131.130.157.216 +```bash title="ssh connections" +ssh [USERNAME]@srvx1.img.univie.ac.at +ssh [USERNAME]@srvx8.img.univie.ac.at +ssh [USERNAME]@aurora.img.univie.ac.at +ssh [USERNAME]@jet01.img.univie.ac.at +ssh [USERNAME]@jet02.img.univie.ac.at ``` +There are multiple options for the ssh client, please explore these by yourself if needed. This option is sometimes needed to forward a window to your local computer (Linux, or advanced windows users): The `-X` option enables X11 forwarding via ssh, i.e., permits opening graphical windows. On Windows you need to enter these details to the ssh client. + Consider using a `~/.ssh/config` configuration file to allow easier access like this: ```sh title="./ssh/config" Host * + User [USERNAME] ServerAliveInterval 60 ServerAliveCountMax 2 Host srvx1 HostName srvx1.img.univie.ac.at - User [USERNAME] + Host srvx8 HostName srvx8.img.univie.ac.at - User [USERNAME] + Host jet HostName jet01.img.univie.ac.at - User [USERNAME] + Host srvx2jet HostName jet01.img.univie.ac.at - User [USERNAME] ProxyJump srvx1.img.univie.ac.at Host login HostName login.univie.ac.at @@ -53,12 +54,13 @@ Host login Host ecaccess Host ecaccess.ecmwf.int HostKeyAlgorithms ssh-dss + User [ECMWF USERNAME] KexAlgorithms diffie-hellman-group1-sha1 Ciphers aes256-cbc Host jump.ecmwf.int shell.ecmwf.int HostKeyAlgorithms +ssh-rsa*,rsa-sha2-512 PubkeyAcceptedKeyTypes +ssh-rsa* - User [ECMWF USERNAME] + User [ECMWF USERNAME] # For ecgate and Cray HPCF Host ecg* cc* HostKeyAlgorithms +ssh-rsa*,rsa-sha2-512 @@ -72,6 +74,7 @@ Host a?-* a??-* hpc-* hpc2020-* ecs-* User [ECMWF USERNAME] ProxyJump jump.ecmwf.int ``` + and replacing `[USERNAME]` and `[u:account USERNAME]` with your usernames. Using such a file allows to connect like this `ssh srvx1` using the correct server adress and specified username. Copy this file as well on `login.univie.ac.at` and you can use commands like this: `ssh -t login ssh jet` to connect directly to `jet` via the `login` gateway. Please note the special algorithms for ecaccess and of course ECMWF uses [teleport](../ECMWF.md#connecting-to-ecmwf-services) now. @@ -84,9 +87,10 @@ If you are a guest, you can apply for a [guest u:account](https://zid.univie.ac. ## SSH Authentication with keys -If you want to use ssh-keys you can also use different keys in `.ssh/config` per server with `IdentityFile ~/.ssh/id_rsa_for_server`. +If you want to use ssh-keys you can also use different keys in `.ssh/config` per server with `IdentityFile ~/.ssh/id_enc_for_server`. **Note: If you are having trouble with your ssh-key being accepted. You need to check the selinux security policy. Because we use non standard home directories, which are not accepted by default.** Do that by running: + ```bash ls -ldZ ~/.ssh/ drwx------. 2 monkey users system_u:object_r:ssh_home_t:s0 4.0K Aug 18 21:24 .ssh/ @@ -94,6 +98,7 @@ drwx------. 2 monkey users system_u:object_r:ssh_home_t:s0 4.0K Aug 18 21:24 .ss ls -lZ ~/.ssh/ -rw-------. 1 monkey users unconfined_u:object_r:ssh_home_t:s0 1.3K Aug 17 10:58 authorized_keys ``` + If you are not seeing `ssh_home_t` than you need to run `restorecon -Rv ~/.ssh/` which should update the security policy and allow for the SSH-Daemon to accept your keys. **Please add your ssh-keys via [IPA](IPA.md#add-ssh-key)** diff --git a/SSH-VPN-VNC/VNC.md b/SSH-VPN-VNC/VNC.md index 3c56eb31bb9d154505655bc8175e139905d2c547..ec766d0c24d131f3848682d29e957973df108191 100644 --- a/SSH-VPN-VNC/VNC.md +++ b/SSH-VPN-VNC/VNC.md @@ -9,12 +9,15 @@ The VNC (Virtual Network Computing) allows to view a graphical user interface (G Xvnc is the Unix VNC server. Applications can display themselves on Xvnc as if it were a normal display, but they will appear on any connected VNC viewers rather than on a physical screen. The VNC protocol uses the TCP/IP ports 5900+N, where N is the display number. Currently VNC is installed on: -- SRVX8, mainly Staff -- JET01, mainly Researchers +- SRVX8 [staff] +- JET01 [staff] +- AURORA [staff] ## Userservices + It is highly recommended to use the userservices scripts available on all IMGW Servers to make configurations for VNC. -```bash + +```bash title="using the userservices" $ userservices vnc -h ################################################################################ User Services - VNC Server Setup/Launcher/Stopper @@ -38,10 +41,12 @@ Path: /home/swd/userservices/userservices.d Installed Desktops: icewm-session ################################################################################ ``` + Running the script without any options will run all necessary steps. In case of error try removing your `.vnc` directory, as older configurations might be in the way. There shall be at least two desktop options: icewm and xfce. You can specify this directly with the `-w [DESKTOP]` option. ## Setup - Manual + Please consider using the `userservices vnc` script to do this setup. First of all check if a VNC server is already running or not. Depending on the results you have two options: @@ -65,15 +70,19 @@ vncserver ``` ### Jet Cluser + on Jet there are the user services available to you: + ```bash # Help information on VNC userservice userservices vnc -h ``` + if you have never used this script or a `vncserver` just running `userservices vnc` will be enough for you to setup the VNC service. It will tell you which port you have been automatically assigned. ### Connecting, setting the window manager + Use a VNC client (e.g. [TigerVNC Viewer](https://sourceforge.net/projects/tigervnc/files/stable/) (All OS) or [RealVNC VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/windows/) on Windows, or [Remmina](https://remmina.org/) on any Linux distribution) and connect to `srvx?.img.univie.ac.at:[DISPLAY]`. **Note: Since version 1.10 of tigerVNC it is possible to resize the windows directly** @@ -85,6 +94,7 @@ Connect with a viewer: 3. VNC passwort (`vncpasswd` allows to set this on the server) The VNC server will automatically start a graphical window manager/desktop environment. Details are stored in `.vnc/xstartup`. Your default configuration will load GNOME, and `.vnc/xstartup` will be something like this: + ```bash #!/bin/sh @@ -99,7 +109,9 @@ if [ -e /usr/bin/gnome-session ]; then vncserver -kill $DISPLAY fi ``` + It is recommended to use IceWM instead. This is a more lightweight alternative to GNOME. To switch to IceWM, first log out from GNOME and disconnect from your VNC viewer, then change your `.vnc/xstartup` to this: + ```bash #!/bin/sh @@ -109,12 +121,14 @@ vncconfig -iconic & xterm -geometry -sb -sl 500 -fn 9x15bold -title "$VNCDESKTOP Desktop" & icewm & ``` + Some information on what could be put into `.Xresources` is given [here](https://wiki.archlinux.org/title/x_resources). It might be possible to replace `icewm` here with `startxfce4` to choose XFCE Desktop environment. ### VNC as a Service This is only here for reference, on SRVX2 and Jet use the `userservices vnc`. Setup, replace `[DISPLAY]` with an appropriate number, e.g. `3`: + ```bash mkdir -p ~/.config/systemd/user cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/ @@ -125,6 +139,7 @@ loginctl enable-linger ``` Finally stop/restart the VNC server. + ```bash # Restart systemctl --user restart vncserver@:[DISPLAY].service --now @@ -137,6 +152,7 @@ systemctl --user enable vncserver@:[DISPLAY].service --now ``` Monitor the status: + ```bash # Like this systemctl --user status vncserver@:[DISPLAY].service @@ -169,10 +185,20 @@ Change the resolution to e.g. 1920x1080 (HD): xrandr -s 1920x1080 -d $DISPLAY ``` -Adding resolutions according to your display's resolution have a look here: [add_xrandr_resolution.sh](add_xrandr_resolution.sh) -```bash +Adding resolutions according to your display's resolution have a look at + +??? note "add_xrandr_resolution" + + ``` bash title="Add a new monitor resolution to VNC" + --8<-- "SSH-VPN-VNC/add_xrandr_resolution.sh" + ``` + +and run it like this: + +```bash title="Add a custom resolution to your virtual display" # running the script and adding a resolution you require, in pixel $ add_xrandr_resolution [width] [height] ``` + Note: `$DISPLAY` is an environment variable that is usually set to your VNC server port. diff --git a/SSH-VPN-VNC/VPN.md b/SSH-VPN-VNC/VPN.md index 552c02ee74f93034ec37581004990bb0def9c1f5..134902b198364defd39373793d4e1c6385ebece1 100644 --- a/SSH-VPN-VNC/VPN.md +++ b/SSH-VPN-VNC/VPN.md @@ -12,7 +12,7 @@ Links: * [ZID-VPN](https://vpn.univie.ac.at/f5-w-68747470733a2f2f7a69642e756e697669652e61632e6174$$/vpn/) * Linux (Ubuntu, Generic), Windows, Mac: [VPN user guides](https://vpn.univie.ac.at/f5-w-68747470733a2f2f7a69642e756e697669652e61632e6174$$/vpn/anleitungen/) - * ~~Arch based AUR package [AUR f5fpc](https://aur.archlinux.org/packages/f5fpc/)~~ broken. Download via `yay`, replace `.deb` with `.deb` from ZID. `makepkg --skipinteg -i`. + * Arch based AUR package [AUR f5fpc](https://aur.archlinux.org/packages/f5fpc/) does not contain the correct f5fpc. You can download via `yay -Sw f5fpc`, replace `.deb` with `.deb` from ZID. Then build the package yourself: `makepkg --skipinteg -i`. Follow the install instructions for Windows, Mac and Linux and make sure the software works. @@ -48,4 +48,4 @@ $ connect2vpn [u:account username] [VPN] Full (1) or split (None) tunnel? (1/None): ``` Continue and wait until you get a response that it's connected. -The status stays visible. +The status stays visible. This will block your current terminal window. diff --git a/Servers/Aurora.md b/Servers/Aurora.md new file mode 100644 index 0000000000000000000000000000000000000000..211a07db5324f0abb754ac783dbcb7849b8e6e55 --- /dev/null +++ b/Servers/Aurora.md @@ -0,0 +1,191 @@ +# A U R O R A + +> Research and Development Node + +## Getting started + +Steps: + +1. Request access / will be done for you by your supervisor. +2. As Staff, access using SSH - [How to SSH / VNC / VPN](../SSH-VPN-VNC/README.md) + +## System information + +| Name | Value | +| ----------- | ------------------------------------------------------------- | +| Product | R282-Z96-00 | +| Processor | AMD EPYC 7773X 64-Core Processor | +| Cores | 2 CPU, 64 physical cores per CPU, total 128 logical CPU units | +| CPU time | 1.121 kh | +| Memory | 2015.17 GB Total | +| Memory/Core | 15.7 GB | + +```title='Aurora Borealis' +----------------------------------------------- + | |+|: | : : :| . ` . + | | :| : | : |: | . 131.130.157.5 + ` || | : | |: : | . ` . :. + * ` : | | :| |*| : : :| + | . ` ' :| | :| . : : * :.|| + | : .:| ` | || | : |: | | || + | : .: . '| | : :| : . |:| || + ` *| || : ` | | :| | : |:| | + || |.: * | || : : :||| + . . ` |||. + + '| ||| . ||` + . +:`|! . |||| :.||` + ..!|* . | :`||+ |||` + + : |||` .| :| | | |.| ||` . + + :|| |` :.+. || || | |:`|| ` + .||` . ..|| | |: '` `| | |` + + || !|!: ` :| | + . | . `|||.: .|| . . ` + `|. . `:||| + ||' ` + `' `'|. `: +`^``----.,.___ `. `. . ____,.,- + ^ """'---,..___ __,..---""' + ^ AURORA ``--..,__ +----------------------------------------------- +``` + +## Software + +The typcial installation of a server has the INTEL Compiler suite (`intel-oneapi`), the open source GNU Compilers and AMD compilers (`aocc`) installed. Based on these three different compilers (`intel`, `gnu`, `aocc`), there are usually two version of each scientific software. + +Major Libraries: + +- OpenMPI (4.0.5, 4.1.5) +- HDF5 +- NetCDF (C, Fortran) +- ECCODES from [ECMWF](https://confluence.ecmwf.int/display/ECC) +- Math libraries e.g. intel-mkl, lapack, scalapack, amd-aocl, ... +- Interpreters: Python, Julia +- Tools: cdo, ncl, nco, ncview + +These software libraries are usually handled by environment modules. + + + +## Currently installed modules + +Please note that new versions might already be installed. + +```bash title="available modules" +$ module av +---------- /home/swd/spack/share/spack/modules/linux-almalinux9-zen3 ----------- +amd-aocl/4.0-aocc-4.0.0-o36ia3m +amdblis/4.0-aocc-4.0.0-6ixdyat +amdfftw/4.0-aocc-4.0.0-kc6bebp +amdlibflame/4.0-aocc-4.0.0-folsmzp +amdlibm/4.0-aocc-4.0.0-q2t5i6c +amdscalapack/4.0-aocc-4.0.0-ggh7q55 +anaconda2/2019.10-gcc-11.3alma9-fcgjmgb +anaconda3/2022.05-gcc-11.3alma9-6zg2qhl +aocc/4.0.0-o2qhi24 +aocl-sparse/4.0-aocc-4.0.0-nsbrnq3 +cdo/2.1.1-gcc-11.3.0-vmby32i +cdo/2.1.1-intel-2021.7.1-lj7cqwd +diffutils/3.8-intel-2021.7.1-3zg5zz5 +eccodes/2.25.0-gcc-11.3.0-nomemfs +eccodes/2.25.0-gcc-11.3.0-ufrmjdi +eccodes/2.25.0-intel-2021.7.1-zq4yw5j +gcc/11.3.0-wc3zw5d +geos/3.11.2-gcc-11.3.0-2r7g4lv +geos/3.11.2-intel-2021.7.1-uu3t5pe +hdf5/1.10.7-gcc-11.3.0-xuf5zy3 +hdf5/1.12.2-aocc-4.0.0-blufisu +hdf5/1.12.2-intel-2021.7.1-xcicrrh +intel-oneapi-compilers-classic/2021.7.1-o2gpvj3 +intel-oneapi-compilers/2022.2.1-zxlluqk +intel-oneapi-mkl/2023.1.0-gcc-11.3.0-rljcxmq +intel-oneapi-mkl/2023.1.0-intel-2021.7.1-t2h2yxz +intel-oneapi-mpi/2021.9.0-intel-2021.7.1-jzufygb +intel-oneapi-vtune/2023.1.0-intel-2021.7.1-rltylzk +miniconda2/4.7.12.1-gcc-11.3alma9-j3jkilu +miniconda3/4.10.3-gcc-11.3alma9-nin3ujf +nco/5.1.0-intel-2021.7.1-yatuzww +nco/5.1.5-gcc-11.3.0-hyaiqja +ncview/2.1.8-gcc-11.3.0-u5cproj +ncview/2.1.8-intel-2021.7.1-kol7zhq +netcdf-c/4.7.4-aocc-4.0.0-2evbx66 +netcdf-c/4.7.4-gcc-11.3.0-t54zl2r +netcdf-c/4.7.4-intel-2021.7.1-6ltfavb +netcdf-c/4.9.2-gcc-11.3.0-pbnofsp +netcdf-fortran/4.5.3-gcc-11.3.0-2n4urj3 +netcdf-fortran/4.5.3-intel-2021.7.1-qtjfan7 +netlib-lapack/3.11.0-gcc-11.3.0-t4mngkc +netlib-scalapack/2.2.0-gcc-11.3.0-rxwa7sf +openblas/0.3.23-gcc-11.3.0-v4jxkqk +openmpi/4.0.5-gcc-11.3.0-pob76hu +openmpi/4.1.5-aocc-4.0.0-hwgfdau +proj/9.2.0-gcc-11.3.0-2krnxcr +proj/9.2.0-intel-2021.7.1-cxnmlak + +------------------------------ /home/swd/modules ------------------------------- +gnu-stack/gcc.11.3.0 micromamba/1.4.3 ncl/6.6.2 +intel-stack/intel-2021.7.1 mojo/0.5.0 teleport/10.3.3 +``` + +### AMD Compilers + +The AMD Optimizing C/C++ and Fortran Compilers (“AOCC”) are a set of production compilers optimized for software performance when running on AMD host processors using the AMD “Zen” core architecture. The AOCC compiler environment simplifies and accelerates development and tuning for x86 applications built with C, C++, and Fortran languages. + +There are customized versions of + +- **LibM** is a software library containing a collection of basic math functions optimized for x86-64 processor-based machines. +- **FFTW** (AMD Optimized version) is a comprehensive collection of fast C routines for computing the Discrete Fourier Transform (DFT) +- **BLIS** is a portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries. +- \*_libFLAME_ (AMD Optimized version) is a portable library for dense matrix computations, providing much of the functionality present in Linear Algebra Package (LAPACK). +- **ScaLAPACK** is a library of high-performance linear algebra routines for parallel distributed memory machines. +- AMD Optimizing CPU Libraries (AOCL) - **AOCL** is a set of numerical libraries tuned specifically for AMD EPYC processor family. +- **AOCL-Sparse** is a library that contains basic linear algebra subroutines for sparse matrices and vectors optimized for AMD EPYC family of processors. + +```sh +$ module av | grep aocc +amd-aocl/4.0-aocc-4.0.0-o36ia3m +amdblis/4.0-aocc-4.0.0-6ixdyat +amdfftw/4.0-aocc-4.0.0-kc6bebp +amdlibflame/4.0-aocc-4.0.0-folsmzp +amdlibm/4.0-aocc-4.0.0-q2t5i6c +amdscalapack/4.0-aocc-4.0.0-ggh7q55 +aocc/4.0.0-o2qhi24 +aocl-sparse/4.0-aocc-4.0.0-nsbrnq3 +hdf5/1.12.2-aocc-4.0.0-blufisu +netcdf-c/4.7.4-aocc-4.0.0-2evbx66 +openmpi/4.1.5-aocc-4.0.0-hwgfdau +``` + +on how to use environment modules go to [Using Environment Modules](../Misc/Environment-Modules.md) + +## User services + +There is a script collection that is accessible via the `userservices` command. e.g. running + +```bash +$ userservices + +Usage: userservices [service] [Options] +Available Services: +------------------------------------------------------------------------ + containers --- Show available containers + fetch-sysinfo --- Display system information + filesender --- Transfer files to ACONET filesender (requires account) + fix-permissions --- fix file/directory permissions + limits --- Report user processes and limits + modules --- list environment modules + numfiles --- Check number of files in all sub directories + quota --- Report user quotas + server-schedule --- Show Server schedule + sshtools --- SSH agent user commands + transfersh --- Transfer files/directories (IMGW subnet) + ucloud --- Upload files/directories to your u:cloud + vnc --- VNC Server Setup/Launcher/Stopper + vnc-geometry --- Change geometry of VNC display + weather --- Retrieve weather information + yopass --- Send messages/small files to YoPass (encrypted) +------------------------------------------------------------------------ +These scripts are intended to help with certain known problems/tasks. +Report problems to: michael.blaschek@univie.ac.at + +``` + +These are scripts in a common directory. Feel free to copy or edit as you like. Note that some services like `filesender` require an [ACONET](https://filesender.aco.net/) account (accessible via your [u:account](https://zid.univie.ac.at/my-uaccount/)). diff --git a/Servers/JET.md b/Servers/JET.md index 0ff7e93610c0e437c00cffd079b81f2f2a348751..77601f7bf0723f0a99ecc1d88c6f3dfd59629561 100644 --- a/Servers/JET.md +++ b/Servers/JET.md @@ -1,4 +1,4 @@ -# The J E T Cluster +# J E T > Research Cluster for Staff > :rocket: 🔒 @@ -21,14 +21,15 @@ Steps: ## System Information -Last Update: 4.12.2020 +Last Update: 29.01.2024 Node Setup: - - 2x Login Nodes (JET01, JET02) - - 7x Compute Nodes (03-09) + - 2x Login Nodes (jet01, jet02) + - 7x Compute Nodes (jet03-09) + - 5x Storage Nodes - + ### Example of one Compute Node @@ -40,9 +41,15 @@ Node Setup: | CPU Time | 350 kh | | Memory | 755 GB Total | | Memory/Core | 18.9 GB | -| Network | 40 Gbit/s (Infiniband) | +| Network | 100 Gbit/s (Infiniband) | + +All nodes are connected to a global file system (GPFS) with about 3.5 PB (~3500 TB) of storage. There is no need to copy files to the compute nodes, your HOME and SCRATCH directories will be available under the same path as on the login nodes. + +Paths: + + - `/jetfs/home/[username]` + - `/jetfs/scratch/[username]` -All nodes are connected to a global file system (GPFS) with about 1.5 PB (~1500 TB) of storage. There is no need to copy files to the compute nodes, your HOME and SCRATCH directories will be available under the same path as on the login nodes. ## Software @@ -152,7 +159,7 @@ The Jet Cluster serves a [jupyterhub](https://jupyterhub.readthedocs.io/en/stabl Steps: - - [https://jet01.img.univie.ac.at](https://jet01.img.univie.ac.at) from within the VPN or UNI-Network. + - [https://jupyter.wolke.img.univie.ac.at](https://jupyter.wolke.img.univie.ac.at) from within the VPN or UNI-Network. - Login with your Jet Credentials - Choose a job - The jupyterlab will be launched and will be available to you until you log out or the walltime exceeds (depends on the job you lauch). @@ -187,7 +194,8 @@ Consider the following example: Have a look at resources used in your jobs using the `/usr/bin/time` command or look [here](https://gitlab.phaidra.org/imgw/slurm). Sample Job -```slurm title="Slurm example on JET" + +```bash title="Slurm example on JET" #!/bin/bash # SLURM specific commands #SBATCH --job-name=test-run @@ -210,26 +218,40 @@ module load miniconda3 Storage Limitations are set mainly to the HOME directory (default: 100 GB), but there are some general restrictions as well. ### Login nodes -On the Login Nodes (JET01/JET02) processes can only use 20 GB of Memory and a limit of 500 processes for users. -These nodes are really just for login and not anything else. -The global file system and destribution services are running on JET01. **Jobs on the login nodes that violate these limits will be automatically killed.** +On the Login Nodes (jet01/jet02) processes can run without any queue. However, please make sure that other users are not affected to much when these nodes are used for processing. + +On Jet02 the jupyterhub is running and on jet01 a vnc server can be launched using gui applications. + +How to use a vnc server, go to [VNC](../SSH-VPN-VNC/VNC.md). ## Network drives -Transfer of files between SRVX1 and JET is **not** necessary. The file system from SRVX1 is mounted on the JET cluster and vice versa. These mounted drives need to transfer the data via the network and latencies might be higher. + +Transfer of files between SRVX1 and JET is **not** necessary. The file system from SRVX1 is mounted on the JET cluster and vice versa. These mounted drives need to transfer the data via the network and latencies might be higher. However, since there is a strong connection between SRVX1 and JET, it might be applicable for you to just read the data over the network. + ```bash title="Mounted files systems" -df -h -131.130.157.11:/mnt/scratch 400T 364T 37T 91% /mnt/scratch -131.130.157.11:/mnt/users 319T 232T 88T 73% /mnt/users -jetfs 1.4P 1.2P 205T 86% /jetfs +$ df -h +131.130.157.11:/mnt/users 319T 250T 70T 79% /mnt/users +131.130.157.11:/mnt/scratch 400T 350T 51T 88% /mnt/scratch +remjetfs 3.6P 1.6P 2.0P 44% /jetfs ``` ## Slurm +The job manager is called slurm and is available on numerous other HPC systems in the EU. There are endless online documentations that can be asked for some guidance. Please have a look at the VSC tutorials or training courses. + There is some more information about how to use slurm: -- [Summary](../Misc/Slurm.md) -- a more advanced [Slurm Tutorial on Gitlab (🔒 staff only)](https://gitlab.phaidra.org/imgw/slurm) -- [VSC Slurm introduction](https://wiki.vsc.ac.at/doku.php?id=doku:slurm&rev=1643751174) -- [VSC SLURM 🖻](https://vsc.ac.at/fileadmin/user_upload/vsc/online-courses/VSC-Intro/vsc_intro_slurm_basics.pdf) +- [Summary](../Misc/Slurm.md) +- a more advanced [Slurm Tutorial on Gitlab (🔒 staff only)](https://gitlab.phaidra.org/imgw/slurm) +- [VSC Slurm introduction](https://wiki.vsc.ac.at/doku.php?id=doku:slurm&rev=1643751174) +- [VSC SLURM presentation](https://vsc.ac.at/fileadmin/user_upload/vsc/online-courses/VSC-Intro/vsc_intro_slurm_basics.pdf) - [Slurm Quick Start Guide - Manual Page](https://slurm.schedmd.com/quickstart.html) + + +### Job efficiency reports + +since 2024 there is a new feature that allows to check how well one's jobs ran and get information on the efficiency of the resources used. This can be helpful to optimize your workflow and make room for other users to user the cluster simultaneaous. + + +TODO 🚧 **being edited** 🚧 \ No newline at end of file diff --git a/Servers/README.md b/Servers/README.md index 9455eadd993671c090f72122b06c24cf398b7be3..ea33759fffac85bf3e00abff7c608daaecc52428 100644 --- a/Servers/README.md +++ b/Servers/README.md @@ -1,4 +1,4 @@ -# Servers +# Servers The Department of Meteorology and Geophysics has access to the following computing resources: @@ -7,21 +7,18 @@ The Department of Meteorology and Geophysics has access to the following computi - Computing Cluster ([JET](JET.md)) - Vienna Scientific Cluster ([VSC](../VSC.md)) - ## Available Work Environments Locations: -- Staff + Students [SRVX1](SRVX1.md) +- Staff + Students [SRVX1](SRVX1.md), [TeachingHub](../Students/TeachingHub.md) - Staff + Remote Desktop [SRVX8](SRVX8.md) - Staff + Remote Desktop + Jupyterhub [Jet Cluster](JET.md) -- Staff + Students, Jupyterhub called [TeachingHub](../TeachingHub.md) - Staff [Vienna Scientific Cluster (VSC)](../VSC.md) - - [VSC Training](https://vsc.ac.at/training) - - [VSC Trainings @ IMGW](https://gitlab.phaidra.org/imgw/trainings-course) - -*Note: Please take a look at the training course @VSC. There might be a beginners course about Linux or Clusters or Python!* It is highly recommended to use these existing courses to get up to speed. Most of these are available as pdfs right away, but still taking the course is the prefered way. + - [VSC Training](https://vsc.ac.at/training) + - [VSC Trainings @ IMGW](https://gitlab.phaidra.org/imgw/trainings-course) +_Note: Please take a look at the training course @VSC. There might be a beginners course about Linux or Clusters or Python!_ It is highly recommended to use these existing courses to get up to speed. Most of these are available as pdfs right away, but still taking the course is the prefered way. ## How to connect from Home or Abroad? @@ -31,15 +28,19 @@ Locations:  +## Services + +Summary of services available @IMGW. + +| name | description | url/path | access | host | +| ----------- | ------------------------------------- | -------------------------------------------------------------------------- | --- | ----- | +| teachinghub | Jupyterlab for Teaching & Development | [teaching.wolke.img.univie.ac.at](https://teaching.wolke.img.univie.ac.at) | web | srvx1 | +| researchhub | Jupyterlab for Development | [jupyter.wolke.img.univie.ac.at](https://jupyter.wolke.img.univie.ac.at) | img/vpn | jet02 | -# Containers & Services -Summary of services and containerized applications available @IMGW. +## Containers -| name | type | description | url/path | host | -|---|---|---|---|---| -| teachinghub | service | Jupyterlab for Teaching & Development | [teaching-wolke.img.univie.ac.at](https://teaching-wolke.img.univie.ac.at) | srvx1 | -| | | | | | +Summary of containerized applications available @IMGW. +Containerization is done via singularity/apptainer. A some what incomplete introduction is given [here](https://gitlab.phaidra.org/imgw/singularity). -Containerization is done via singularity/apptainer. A some what incomplete introduction is given [here](https://gitlab.phaidra.org/imgw/singularity). \ No newline at end of file diff --git a/Servers/SRVX1.md b/Servers/SRVX1.md index ce45e8cd87c098fb1ff36473b01f6bd2fed3755a..c488141bf8c2ad5d62686f48fe06191b74f23454 100644 --- a/Servers/SRVX1.md +++ b/Servers/SRVX1.md @@ -4,7 +4,7 @@ > Teaching Hub and Access Point from the web > -## Getting Started +## Getting started Steps: @@ -12,7 +12,7 @@ Steps: 2. As Staff, access using SSH - [How to SSH / VNC / VPN](../SSH-VPN-VNC/README.md) 3. As Student, access using Teaching Hub - [How to connect using the TeachingHub](../TeachingHub.md) -## System Information +## System information | Name | Value | | --- | --- | | Product | PowerEdge R940 | diff --git a/Servers/Services.md b/Servers/Services.md deleted file mode 100644 index a341880eadf2b3f22174f70df17da59d3d34a56b..0000000000000000000000000000000000000000 --- a/Servers/Services.md +++ /dev/null @@ -1,62 +0,0 @@ -# Services - -Information on available services: - -- [TeachingHub (Jupyterhub)](#teachinghub) -- [Webdata - File hosting](#webdata) -- [YoPass - Password Sharing](#yopass) -- [iLibrarian - Paper Management](#ilibrarian) -- [Filetransfer.sh - File sharing service](#filetransfer) -- [Uptime - Monitoring](#uptime) -- [Gitlab Runner - Gitlab CI](#gitlab-runner) - - -## TeachingHub -A multi-user version of the notebook designed for companies, classrooms and research labs. - -[website](https://jupyter.org/hub) access: [teachinghub](https://teaching-wolke.img.univie.ac.at) - -You can use this link: - -- https://teaching-wolke.img.univie.ac.at - -[Documentation](../TeachingHub.md) for using the TeachingHub at IMGW. - -## Webdata -A modern HTTP web server index for Apache httpd, lighttpd, and nginx. - -[website](https://larsjung.de/h5ai/) access: [webdata](https://srvx1.img.univie.ac.at/webdata) - -You can use two links: - -- https://srvx1.img.univie.ac.at/webdata -- https://img.univie.ac.at/webdata - - -## YoPass -Yopass is created to reduce the amount of clear text passwords stored in email and chat conversations by encrypting and generating a short lived link which can only be viewed once. - -[website](https://yopass.se) access: [secure](https://srvx1.img.univie.ac.at/secure) - - -## iLibrarian -I, Librarian is an online service that will organize your collection of PDF papers and office documents. - -[website](https://i-librarian.net) access: [library](https://srvx1.img.univie.ac.at/library) - -## Filetransfer -Easy and fast file sharing from the command-line. This code contains the server with everything you need to create your own instance. - -[website](https://transfer.sh) access: [filetransfer](https://srvx1.img.univie.ac.at/filetransfer) - -## Uptime -Uptime Kuma is an easy-to-use self-hosted monitoring tool. - -[website](https://uptime.kuma.pet) access: [uptime](https://uptime-wolke.img.univie.ac.at) - -## Gitlab Runner -GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline. - -[website]() access: via [gitlab](https://gitlab.phaidra.org/groups/imgw/-/runners) - -Example project on gitlab showing how to implement a gitlab CI. \ No newline at end of file diff --git a/Students/README.md b/Students/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f247d3a8b6f6a2fd01e3aaefe2a1a3e73e90b6de --- /dev/null +++ b/Students/README.md @@ -0,0 +1,27 @@ +# Students + +To make you life easier we have listed a few things here that you should know to make good use of the IT services at our department. + +???+ warning "since winter semester 2023" + There is the [old teachinghub](./TeachingHub.md) (will retire 31.3.2024) and the new teachinghub, which is handled via Moodle. Your lecturerer will give you access. + + +## Master Students + +Great idea to start a master @ IMGW. Your supervisor will ask for an account for you and you will retrieve login credentials. + +There are three options: + + - access to [SRVX1](../Servers/SRVX1.md) + - access to [JET](../Servers/JET.md) + - access to [VSC](../VSC.md) + +Most people at the department use [gitlab](https://gitlab.phaidra.org) and [mattermost](https://discuss.phaidra.org), which your supervisor can arange for you to get an account. + +It might be useful to familiarize yourself with [git](../Git/README.md) + + +## Useful links + +- [VSC Compiling](../mkdocs/present/Presentation.html?file=compiling.md) +- [IT @ IMG Overview](../mkdocs/present/Presentation.html?file=IT-Introduction.md) diff --git a/TeachingHub.md b/Students/TeachingHub.md similarity index 65% rename from TeachingHub.md rename to Students/TeachingHub.md index 196723ce749a37404accfec1266f4a3c2dfb33fa..5aee679f28708437db39874bd6d8ef6f44324e01 100644 --- a/TeachingHub.md +++ b/Students/TeachingHub.md @@ -1,19 +1,48 @@ # Teaching Hub +???+ warning inline end "Update" + There is an old and a new TeachingHub. -<img src="./mkdocs/img/jupyterhub-logo.svg" width="100px"> +<img src="../mkdocs/img/jupyterhub-logo.svg" width="100px"> -## Getting Started -Address: [https://srvx1.img.univie.ac.at/hub](https://srvx1.img.univie.ac.at/hub) +Please notice that only the new teaching hub is available in the future. -Access to the Teaching Hub in a browser (mobile or desktop) +Migration for the old teaching hub will finish at the end of WS2023/24. +Access: [teaching.wolke.img.univie.ac.at](https://teaching.wolke.img.univie.ac.at) or via your [Moodle lecture](https://moodle.univie.ac.at/my/). -## How to get access? +<img src="../mkdocs/img/moodlelogo_small.png"> -### Students +## TeachingHub + +What is available? + +Authentication is now enabled via moodle. Every student can use their u:account to login into moodle and be forwarded to the new teaching hub. no more login required. + + + +Just click on your Jupyterhub icon and you will be forwarded to the teaching hub: + + + +There should be a `Welcome.ipynb` waiting for you and you are free to try out different kernels. + + + +It is also possible to use a VNC (Virtual Desktop) to open installed gui applications, such as `ncview`. However, that is quite special and will only be required to be used in certain lectures. + + + + +## OLD TeachingHub + +OLD: [teachinghub.wolke.img.univie.ac.at](https://teachinghub.wolke.img.univie.ac.at) + +### How to get access? + +#### Students Usually **your teacher** is going to **sign you up** and you will receive one or two emails containing information on how to login. You will receive access to the Teaching Hub usually for 6 month. Can be extended for good reasons or until a teacher signs you up again. -### Staff +#### Staff Request an account by writing to the [IT](mailto:it.img-wien@univie.ac.at), which will extend your existing server accout. The email you received contains credentials for the Teaching Hub. This email contains your username, a new password (only for the Teaching Hub) and a secret (16 digit code). They look like this: @@ -42,22 +71,22 @@ As stated in the email you received, you need to download one of these TOTP apps I recommend using your phone and an app there, as this is the most secure way. And with you phone you can scan the qr code, which looks like this: -<img src="./mkdocs/img/teachinghub-qrcode.png" width="300px"> +<img src="../mkdocs/img/teachinghub-qrcode.png" width="300px"> When you scan to your Authenticator App, it will automatically get the details (username, Secret) required to generate every 30 seconds a Time-based One Time Password (TOTP). Like this: - + If you want to use a desktop or other app that might not scan QR codes, you can fill in the details manually like this: - Provider: `TeachingHub` - Account: `[user]` your username, here `monkey` - Token or Secret or Hash: `1A2B3C4D5E6F7G8H` is the secret from your email. - + The combination of username, password and TOTP needs to be used to sign in: - + This sounds all really complicated, but I promise this will be easier from time to time. Don't forget that this for our all security and your contribution is appreciated! Thanks. @@ -68,17 +97,17 @@ Now you are ready to go to the teaching hub and sign in: [Teaching Hub](https://srvx1.img.univie.ac.at) -## Teaching Hub Notebooks and Kernels +### Teaching Hub Notebooks and Kernels Currently there are several Notebooks with different Kernels (Python kernels) installed at SRVX1. Look at the logos, if SRVX1 is in there then you will have access to these notebooks and kernels. If SRVX2 or SRVX8 are in the logo you might not have access as this is for researchers. - + As you can see it is also possible to launch a terminal inside the TeachingHub and you will find you files from your home directory there. It might be that your course has a separate Notebook/Kernel for you, with installed packages and dependencies required for this specific course. However, these Notebooks/Kernels are only available during these lectures and might be removed in the future. So be aware of that. Note that you can easily change a kernel in your notebook. So no need to delete, copy or do anything. Your data/notebook information is safe. - + diff --git a/WRF.md b/WRF/README.md similarity index 79% rename from WRF.md rename to WRF/README.md index 84fe8e8c3ce1329cb0c79c39b9403a7f8b428380..12bd8afb8a9bbcab1b517f6f4b0fbaec69ced452 100644 --- a/WRF.md +++ b/WRF/README.md @@ -1,18 +1,19 @@ +# WRF  The present manual contains basic information about running the Weather Research and Forecasting Model on workstations and clusters of the Department of Meteorology and Geophysics in Vienna. Besides this basic guide, more detailed information is available too: -[Basic WRF usage, including compilation instructions](WRF/WRF_basic.md). -[Advanced WRF usage](WRF/WRF_basic.md). -[Data assimilation with WRF](WRF/WRF_da.md). -[Workflows for common WRF tasks](WRF/WRF_da.md). -[Configuration files on different servers](WRF/config_files). +[Basic WRF usage, including compilation instructions](./WRF_basic.md). +[Advanced WRF usage](./WRF_basic.md). +[Data assimilation with WRF](./WRF_da.md). +[Workflows for common WRF tasks](./WRF_da.md). +[Configuration files on different servers](./config_files/README.md) -Table of contents: +<!-- Table of contents: -[TOC] +[TOC] --> ## What is WRF @@ -34,41 +35,41 @@ WRF and related programs run as executables on linux machines and clusters. Runn If someone else already compiled it on the computer you'll be working with, you just need to: -* Copy their WRF run directory. For instance on `srvx1`, some WRF run directories are available in `/users/staff/serafin/RUN`. You can get one with, for instance: +- Copy their WRF run directory. For instance on `srvx1`, some WRF run directories are available in `/users/staff/serafin/RUN`. You can get one with, for instance: - ```sh - cp -rL /users/staff/serafin/RUN/WRFv4.4.2_scm/ . - ``` + ```sh + cp -rL /users/staff/serafin/RUN/WRFv4.4.2_scm/ . + ``` -* Replicate exactly their compilation and runtime environment (see the chapter on "Setting up your environment" below). +- Replicate exactly their compilation and runtime environment (see the chapter on "Setting up your environment" below). ### Option 2: Get the source code The WRF source code is available on [Github](https://github.com/wrf-model/WRF), and there are several ways to get it. -* Recommended: download one of the [official releases](https://github.com/wrf-model/WRF/releases): scroll down to the "Assets" section and choose one of the `v*.tar.gz` or `v*zip` files (not the "Source code" ones; these are incomplete). +- Recommended: download one of the [official releases](https://github.com/wrf-model/WRF/releases): scroll down to the "Assets" section and choose one of the `v*.tar.gz` or `v*zip` files (not the "Source code" ones; these are incomplete). - To download while working on the terminal on a remote server, use wget or curl: + To download while working on the terminal on a remote server, use wget or curl: - ```sh - wget "https://github.com/wrf-model/WRF/releases/download/v4.4.2/v4.4.2.tar.gz" - curl -OL "https://github.com/wrf-model/WRF/archive/refs/tags/v4.4.2.zip" - ``` + ```sh + wget "https://github.com/wrf-model/WRF/releases/download/v4.4.2/v4.4.2.tar.gz" + curl -OL "https://github.com/wrf-model/WRF/archive/refs/tags/v4.4.2.zip" + ``` - To uncompress the source code, use either of the following (depending on the format): + To uncompress the source code, use either of the following (depending on the format): - ```sh - tar xzvf v4.4.2.tar.gz - unzip v4.4.2.zip - ``` + ```sh + tar xzvf v4.4.2.tar.gz + unzip v4.4.2.zip + ``` -* Clone the repository in a local directory: +- Clone the repository in a local directory: - ```sh - git clone --recurse-submodule https://github.com/wrf-model/WRF.git - ``` + ```sh + git clone --recurse-submodule https://github.com/wrf-model/WRF.git + ``` -* You can also import WRF from Github into a new empty Gitlab project on [Phaidra](https://gitlab.phaidra.org/explore). To get access to Gitlab, look at the [ZID guidlines](https://zid.univie.ac.at/gitlab/) and send a request via email to `support.phaidra@univie.ac.at`. Once you have access credentials, click on "New Project", then "Import Project", then "Repository by URL". This method might be advisable if you want to use Gitlab for tracking your own changes to the WRF code, but do not want to rely on the official repository. +- You can also import WRF from Github into a new empty Gitlab project on [Phaidra](https://gitlab.phaidra.org/explore). To get access to Gitlab, look at the [ZID guidlines](https://zid.univie.ac.at/gitlab/) and send a request via email to `support.phaidra@univie.ac.at`. Once you have access credentials, click on "New Project", then "Import Project", then "Repository by URL". This method might be advisable if you want to use Gitlab for tracking your own changes to the WRF code, but do not want to rely on the official repository. ## Quick start with WRF @@ -78,7 +79,7 @@ You need to make the operating system aware of the software libraries required t This is done by loading environment modules, with `module load` on srvx1/jet/VSC4, and with `spack load` on VSC5. -It is useful to save the information about a specific environment in a simple bash shell script (for instance: `modules_srvx1.sh`). Then, before compiling or running WRF, type `source modules_srvx1.sh`). See [here](WRF/config_files) for a few examples. +It is useful to save the information about a specific environment in a simple bash shell script (for instance: `modules_srvx1.sh`). Then, before compiling or running WRF, type `source modules_srvx1.sh`). See [here](./config_files/README.md) for a few examples. ### Compiling @@ -112,7 +113,7 @@ cd ./test/em_les For other test cases, compilation might create a `run_me_first.csh` script in the same directory as the executables. If there is one, run it only once, before any other program. It will link any necessary lookup tables needed for the simulation (land-use, parameterizations, etc.). -Running WRF for a real_case simulation, assuming that you have a properly set software environment: +Running WRF for a real_case simulation, assuming that you have a properly set software environment: ```sh cd test/em_real @@ -121,33 +122,35 @@ ln -s $WPS_PATH/met_em* . ./wrf.exe ``` -The `met_em*` files linked in this snippet are the outcome of the WRF preprocessing (interpolation of initial and boundary conditions from another model, or from reanalyses, on the WRF grid), and they are supposed to be in a directory, to which the environmental variable `$WPS_PATH` points. +The `met_em*` files linked in this snippet are the outcome of the WRF preprocessing (interpolation of initial and boundary conditions from another model, or from reanalyses, on the WRF grid), and they are supposed to be in a directory, to which the environmental variable `$WPS_PATH` points. The WRF preprocessing system (WPS) is a separate set of executables, that can be built only after WRF is successfully compiled. To run WPS for a real-case simulation, getting initial and boundary conditions from ECMWF-IFS data on model levels, you could use a script such as the following. However, the script depends on namelists, variable tables and other settings files being correctly specified. See the detailed info pages for details. -```sh title="Example: wrf-run-script.sh" -#!/bin/bash -set -eu - -# Set paths -date=20190726.0000 -gribdir=/users/staff/serafin/data/GRIB_IC_for_LAM/ECMWF/TEAMx_convection/ - -# Run WPS -./geogrid.exe -./link_grib.csh ${gribdir}/${date}/* -./ungrib.exe -./calc_ecmwf_p.exe -./avg_tsfc.exe -mpirun -np 32 ./metgrid.exe - -# Archive results and clean up -archive=./archive/TEAMxConv_${date} -mkdir -p ${archive} -mv geo_em.d0?.nc met_em*nc ${archive} -cp namelist.wps geogrid/GEOGRID.TBL.HIRES ${archive} -rm -fr FILE* PRES* TAVGSFC GRIBFILE* metgrid.log.* -``` +???+ example "wrf-run-script.sh" + + ```sh title="Example: wrf-run-script.sh" + #!/bin/bash + set -eu + + # Set paths + date=20190726.0000 + gribdir=/users/staff/serafin/data/GRIB_IC_for_LAM/ECMWF/TEAMx_convection/ + + # Run WPS + ./geogrid.exe + ./link_grib.csh ${gribdir}/${date}/* + ./ungrib.exe + ./calc_ecmwf_p.exe + ./avg_tsfc.exe + mpirun -np 32 ./metgrid.exe + + # Archive results and clean up + archive=./archive/TEAMxConv_${date} + mkdir -p ${archive} + mv geo_em.d0?.nc met_em*nc ${archive} + cp namelist.wps geogrid/GEOGRID.TBL.HIRES ${archive} + rm -fr FILE* PRES* TAVGSFC GRIBFILE* metgrid.log.* + ``` ## Basic usage @@ -156,7 +159,7 @@ rm -fr FILE* PRES* TAVGSFC GRIBFILE* metgrid.log.* After download and unpacking, the WRF source code looks like this ```sh -(base) [serafin@srvx1 WRF-4.4.2]$ ls +[WRF-4.4.2]$ ls total 236K drwxr-xr-x. 2 serafin users 4,0K 19 dic 18.37 arch drwxr-xr-x. 3 serafin users 8,0K 19 dic 18.37 chem @@ -186,13 +189,14 @@ drwxr-xr-x. 2 serafin users 4,0K 19 dic 18.37 wrftladj Knowing in detail the structure of the source code is not necessary for the average user. However, the directories where most of the practical work is done are: -* `run`: this is where the compiled executables and lookup tables will reside after compilation. -* `test`: this contains several subdirectories, each of which refers to a specific compilation mode. For instance, compiling WRF for large-eddy simulation will link some executables in `em_les`, while compiling WRF for real-case simulations will link some other executables and lookup tables in `em_real`. Most of the test subdirectories refer to simple idealized simulations, some of which are two-dimensional. These test cases are used to valide the model's dynamical core (e.g., check if it correctly reproduces analytical solution of the Euler or Navier-Stokes equations). +- `run`: this is where the compiled executables and lookup tables will reside after compilation. +- `test`: this contains several subdirectories, each of which refers to a specific compilation mode. For instance, compiling WRF for large-eddy simulation will link some executables in `em_les`, while compiling WRF for real-case simulations will link some other executables and lookup tables in `em_real`. Most of the test subdirectories refer to simple idealized simulations, some of which are two-dimensional. These test cases are used to valide the model's dynamical core (e.g., check if it correctly reproduces analytical solution of the Euler or Navier-Stokes equations). In some cases, editing the model source code is necessary. This mostly happens in these directories: -* `dyn_em`: this contains the source code of the dynamical core of the model ("model dynamics") and of part of the initialization programmes. -* `phys`: this contains the source code of parameterizion schemes ("model physics"). -* `Registry`: large chunks of the WRF source code are generated automatically at compile time, based on the information contained in a text file called `Registry`. This file specifies for instance what model variables are saved in the output, and how. + +- `dyn_em`: this contains the source code of the dynamical core of the model ("model dynamics") and of part of the initialization programmes. +- `phys`: this contains the source code of parameterizion schemes ("model physics"). +- `Registry`: large chunks of the WRF source code are generated automatically at compile time, based on the information contained in a text file called `Registry`. This file specifies for instance what model variables are saved in the output, and how. ### Compiling the model @@ -207,38 +211,78 @@ However, we describe the typical workflow of the compilation, for anyone that wi In most cases, precompiled libraries can be made available to the operating system using environment modules. Environment modules modify the Linux shell environment so that the operating system is aware of where to find specific executable files, include files, software libraries, documentation files. Each server has its own set of available modules. As of 1.3.2023, WRF is known to compile and run with the following module collections. SRVX1: + ```sh -module load intel-parallel-studio/composer.2020.4-intel-20.0.4 openmpi/3.1.6-intel-20.0.4 hdf5/1.10.7-intel-20.0.4-MPI3.1.6 netcdf-c/4.6.3-intel-20.0.4-MPI3.1.6 netcdf-fortran/4.5.2-intel-20.0.4-MPI3.1.6 +module load intel-parallel-studio/composer.2020.4-intel-20.0.4 \ + openmpi/3.1.6-intel-20.0.4 \ + hdf5/1.10.7-intel-20.0.4-MPI3.1.6 \ + netcdf-c/4.6.3-intel-20.0.4-MPI3.1.6 \ + netcdf-fortran/4.5.2-intel-20.0.4-MPI3.1.6 ``` SRVX1 (modules changed; 25.04.2023): + ```sh -module load intel-oneapi-compilers/2021.4.0 intel-oneapi-mpi/2021.7.1-intel-2021.4.0 hdf5/1.12.2-intel-2021.4.0 netcdf-c/4.7.4-intel-2021.4.0 netcdf-fortran/4.5.3-intel-2021.4.0 +module load intel-oneapi-compilers/2021.4.0 \ + intel-oneapi-mpi/2021.7.1-intel-2021.4.0 \ + hdf5/1.12.2-intel-2021.4.0 \ + netcdf-c/4.7.4-intel-2021.4.0 \ + netcdf-fortran/4.5.3-intel-2021.4.0 ``` JET (GNU Fortran compiler): + ```sh -module load openmpi/4.0.5-gcc-8.5.0-ryfwodt hdf5/1.10.7-gcc-8.5.0-t247okg parallel-netcdf/1.12.2-gcc-8.5.0-zwftkwr netcdf-c/4.7.4-gcc-8.5.0-o7ahi5o netcdf-fortran/4.5.3-gcc-8.5.0-3bqsedn gcc/8.5.0-gcc-8.5rhel8-7ka2e42 +module load openmpi/4.0.5-gcc-8.5.0-ryfwodt \ + hdf5/1.10.7-gcc-8.5.0-t247okg \ + parallel-netcdf/1.12.2-gcc-8.5.0-zwftkwr \ + netcdf-c/4.7.4-gcc-8.5.0-o7ahi5o \ + netcdf-fortran/4.5.3-gcc-8.5.0-3bqsedn \ + gcc/8.5.0-gcc-8.5rhel8-7ka2e42 ``` JET (Intel Fortran compiler): + ```sh -module load intel-parallel-studio/composer.2020.2-intel-20.0.2-zuot22y zlib/1.2.11-intel-20.0.2-3h374ov openmpi/4.0.5-intel-20.0.2-4wfaaz4 hdf5/1.12.0-intel-20.0.2-ezeotzr parallel-netcdf/1.12.1-intel-20.0.2-sgz3yqs netcdf-c/4.7.4-intel-20.0.2-337uqtc netcdf-fortran/4.5.3-intel-20.0.2-irdm5gq +module load intel-parallel-studio/composer.2020.2-intel-20.0.2-zuot22y zlib/1.2.11-intel-20.0.2-3h374ov \ + openmpi/4.0.5-intel-20.0.2-4wfaaz4 \ + hdf5/1.12.0-intel-20.0.2-ezeotzr \ + parallel-netcdf/1.12.1-intel-20.0.2-sgz3yqs \ + netcdf-c/4.7.4-intel-20.0.2-337uqtc \ + netcdf-fortran/4.5.3-intel-20.0.2-irdm5gq ``` JET (alternative setup with Intel Fortran compiler): + ```sh -module load intel-oneapi-mpi/2021.4.0-intel-2021.4.0-eoone6i hdf5/1.10.7-intel-2021.4.0-n7frjgz parallel-netcdf/1.12.2-intel-2021.4.0-bykumdv netcdf-c/4.7.4-intel-2021.4.0-vvk6sk5 netcdf-fortran/4.5.3-intel-2021.4.0-pii33is intel-oneapi-compilers/2021.4.0-gcc-9.1.0-x5kx6di +module load intel-oneapi-mpi/2021.4.0-intel-2021.4.0-eoone6i \ + hdf5/1.10.7-intel-2021.4.0-n7frjgz \ + parallel-netcdf/1.12.2-intel-2021.4.0-bykumdv \ + netcdf-c/4.7.4-intel-2021.4.0-vvk6sk5 \ + netcdf-fortran/4.5.3-intel-2021.4.0-pii33is \ + intel-oneapi-compilers/2021.4.0-gcc-9.1.0-x5kx6di ``` JET (modules changed; 11.04.2023): + ```sh -module load intel-oneapi-compilers/2022.2.1-zkofgc5 hdf5/1.12.2-intel-2021.7.1-w5sw2dq netcdf-fortran/4.5.3-intel-2021.7.1-27ldrnt netcdf-c/4.7.4-intel-2021.7.1-lnfs5zz intel-oneapi-mpi/2021.7.1-intel-2021.7.1-pt3unoz +module load intel-oneapi-compilers/2022.2.1-zkofgc5 \ + hdf5/1.12.2-intel-2021.7.1-w5sw2dq \ + netcdf-fortran/4.5.3-intel-2021.7.1-27ldrnt \ + netcdf-c/4.7.4-intel-2021.7.1-lnfs5zz \ + intel-oneapi-mpi/2021.7.1-intel-2021.7.1-pt3unoz ``` VSC4: + ```sh -module load pkgconf/1.8.0-intel-2021.5.0-bkuyrr7 intel-oneapi-compilers/2022.1.0-gcc-8.5.0-kiyqwf7 intel-oneapi-mpi/2021.6.0-intel-2021.5.0-wpt4y32 zlib/1.2.12-intel-2021.5.0-pctnhmb hdf5/1.12.2-intel-2021.5.0-loke5pd netcdf-c/4.8.1-intel-2021.5.0-hmrqrz2 netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy +module load pkgconf/1.8.0-intel-2021.5.0-bkuyrr7 \ + intel-oneapi-compilers/2022.1.0-gcc-8.5.0-kiyqwf7 \ + intel-oneapi-mpi/2021.6.0-intel-2021.5.0-wpt4y32 \ + zlib/1.2.12-intel-2021.5.0-pctnhmb \ + hdf5/1.12.2-intel-2021.5.0-loke5pd \ + netcdf-c/4.8.1-intel-2021.5.0-hmrqrz2 \ + netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy ``` Load modules with `module load LIST-OF-MODULE-NAMES`, unload them one by one with `module unload LIST-OF-MODULE-NAMES`, unload all of them at the same time with `module purge`, get information about a specific module with `module show MODULE_NAME`. Modules may depend on each other. If the system is set up properly, a request to load one module will automatically load any other prerequisite ones. @@ -248,9 +292,9 @@ After loading modules, it is also recommended to set the `NETCDF` environment va ```sh (skylake) [serafins@l46 TEAMx_real]$ module list Currently Loaded Modulefiles: -1) pkgconf/1.8.0-intel-2021.5.0-bkuyrr7 4) zlib/1.2.12-intel-2021.5.0-pctnhmb 7) netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy -2) intel-oneapi-compilers/2022.1.0-gcc-8.5.0-kiyqwf7 5) hdf5/1.12.2-intel-2021.5.0-loke5pd -3) intel-oneapi-mpi/2021.6.0-intel-2021.5.0-wpt4y32 6) netcdf-c/4.8.1-intel-2021.5.0-hmrqrz2 +1) pkgconf/1.8.0-intel-2021.5.0-bkuyrr7 4) zlib/1.2.12-intel-2021.5.0-pctnhmb 7) netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy +2) intel-oneapi-compilers/2022.1.0-gcc-8.5.0-kiyqwf7 5) hdf5/1.12.2-intel-2021.5.0-loke5pd +3) intel-oneapi-mpi/2021.6.0-intel-2021.5.0-wpt4y32 6) netcdf-c/4.8.1-intel-2021.5.0-hmrqrz2 (skylake) [serafins@l46 TEAMx_real]$ module show netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy ------------------------------------------------------------------- /opt/sw/spack-0.19.0/var/spack/environments/skylake/modules/linux-almalinux8-skylake/netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy: @@ -270,12 +314,14 @@ NETCDF=/gpfs/opt/sw/spack-0.19.0/opt/spack/linux-almalinux8-skylake/intel-2021.5 ``` On VSC5 do not use `module`, but `spack`: + ```sh spack load intel-oneapi-compilers spack load netcdf-fortran@4.4.5%intel ``` To check the library paths of loaded modules: + ```sh (zen3) [serafins@l51 ~]$ spack find --loaded --paths ==> In environment zen3 @@ -305,6 +351,7 @@ Important note: **The environment must be consistent between compilation and run This will test the system to check that all libraries can be properly linked. Type `./configure`, pick a generic dmpar INTEL (ifort/icc) configuration (usually 15), answer 1 when asked if you want to compile for nesting, then hit enter. "dmpar" means "distributed memory parallelization" and enables running WRF in parallel computing mode. For test compilations or for a toy setup, you might also choose a "serial" configuration. If all goes well, the configuration will end will a message like this: + ``` ***************************************************************************** This build of WRF will use NETCDF4 with HDF5 compression @@ -312,30 +359,33 @@ This build of WRF will use NETCDF4 with HDF5 compression ``` But the configuration could also end with a message like this (it happens for instance on srvx1): + ```sh ************************** W A R N I N G ************************************ -NETCDF4 IO features are requested, but this installation of NetCDF +NETCDF4 IO features are requested, but this installation of NetCDF /home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/intel-20.0.4/netcdf-fortran-4.5.2-ktet7v73pc74qrx6yc3234zhfo573w23 -DOES NOT support these IO features. +DOES NOT support these IO features. -Please make sure NETCDF version is 4.1.3 or later and was built with - --enable-netcdf4 +Please make sure NETCDF version is 4.1.3 or later and was built with + --enable-netcdf4 -OR set NETCDF_classic variable - bash/ksh : export NETCDF_classic=1 - csh : setenv NETCDF_classic 1 +OR set NETCDF_classic variable + bash/ksh : export NETCDF_classic=1 + csh : setenv NETCDF_classic 1 -Then re-run this configure script +Then re-run this configure script !!! configure.wrf has been REMOVED !!! ***************************************************************************** ``` + This is actually a misleading error message. The problem has nothing to do with NETCDF4 not being available, but with the operating system not detecting correctly all the dependencies of the NETCDF libraries. Solving this problem requires manually editing the configuration files (see below). The configure script stores the model configuration to a file called `configure.wrf`. This is specific to the source code version, to the server where the source code is compiled, and to the software environment. If you a have a working `configure.wrf` file for a given source code/server/environment, back it up. To solve the NETCDF4 error on srvx1: first, run `configure` and interrupt the process (`Ctrl+C`) before it raises the NetCDF warning; so, `configure.wrf` will not be deleted. Then, make the following changes to the automatically-generated `configure.wrf`: + ```sh (base) [serafin@srvx1 WRF]$ diff configure.wrf configure.wrf.dmpar 98c98 @@ -343,10 +393,11 @@ To solve the NETCDF4 error on srvx1: first, run `configure` and interrupt the pr --- > DEP_LIB_PATH = -L/home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/intel-20.0.4/netcdf-c-4.6.3-5netrylc3im76bqg4vlo2ck4qd3jmrdt/lib -L/home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/intel-20.0.4/hdf5-1.10.7-nj3ahzinbfiwe5tnteupbfmx4empgh6l/lib 122c122 -< -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/intel-20.0.4/netcdf-fortran-4.5.2-ktet7v73pc74qrx6yc3234zhfo573w23/lib -lnetcdff +< -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/intel-20.0.4/netcdf-fortran-4.5.2-ktet7v73pc74qrx6yc3234zhfo573w23/lib -lnetcdff --- > -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/intel-20.0.4/netcdf-fortran-4.5.2-ktet7v73pc74qrx6yc3234zhfo573w23/lib -lhdf5 -lnetcdff -lnetcdf ``` + The first file, `configure.wrf`, is the result of the (wrong) automatic configuration. The second file, `configure.wrf.dmpar` is the manually fixed one. In the latter, additional library link directives (`-lnetcdf` and `-lhdf5`) are added to the variable `LIB_EXTERNAL`, and the full paths to these extra libraries are added to the variable `DEP_LIB_PATH`. #### Compile WRF @@ -369,25 +420,27 @@ Compilation may take half an hour or so. A successful compilation ends with: ========================================================================== build started: mer 19 ott 2022, 16.17.36, CEST build completed: mer 19 ott 2022, 16.51.46, CEST - + ---> Executables successfully built <--- - + -rwxr-xr-x 1 serafin users 51042008 19 ott 16.51 main/ideal.exe -rwxr-xr-x 1 serafin users 57078208 19 ott 16.51 main/wrf.exe - + ========================================================================== ``` If instead you get this: + ```sh ========================================================================== build started: Thu Feb 2 16:30:55 CET 2023 build completed: Thu Feb 2 17:07:04 CET 2023 - + ---> Problems building executables, look for errors in the build log <--- - + ========================================================================== ``` + then you have a problem, and there is no unique solution. Take a closer look at `compile.log` and you might be able to diagnose it. ### Copying compiled WRF code @@ -408,12 +461,12 @@ incl. how to modify output paths Things to remember: -* staggered grid (Arakawa-C) -* mass-based vertical coordinate (level height AGL is time-dependent) -* terrain-following coordinate system (curvilinear) -* in the model output, some variables are split into base state + perturbation +- staggered grid (Arakawa-C) +- mass-based vertical coordinate (level height AGL is time-dependent) +- terrain-following coordinate system (curvilinear) +- in the model output, some variables are split into base state + perturbation -[Python interface to WRF](https://wrf-python.readthedocs.io/en/latest/) +[Python interface to WRF](https://wrf-python.readthedocs.io/en/latest/) Example of a very basic Python class to create an object from a WRF run, initialized with only some basic information: @@ -443,6 +496,7 @@ class wrfrun: self.w = 0.5*(wdum[:-1,:,:]+wdum[1:,:,:]) del udum,vdum,wdum ``` + The last function adds 3D wind variables at a specific time, after destaggering. The `wrfrun` class is then used as follows: @@ -463,11 +517,12 @@ Variables are then accessible as `wrf.u`, `wrf.v` etc. ### Conditional compilation -Most Fortran compilers allow passing the source code through a C preprocessor (CPP; sometimes also called the Fortran preprocessor, FPP) to allow for conditional compilation. In the C programming language, there are some directives that make it possible to compile portions of the source code selectively. +Most Fortran compilers allow passing the source code through a C preprocessor (CPP; sometimes also called the Fortran preprocessor, FPP) to allow for conditional compilation. In the C programming language, there are some directives that make it possible to compile portions of the source code selectively. In the WRF source code, Fortran files have an .F extension. cpp will parse these files and create corresponding .f90 files. The .f90 files will then be compiled by the Fortran compiler. This means: + 1. When editing the source code, always work on the .F files, otherwise changes will be lost on the next compilation. 2. In the .F files, it is possible to include `#ifdef` and `#ifndef` directives for conditional compilation. @@ -517,6 +572,7 @@ For instance, in `dyn_em/module_initialize_ideal.F`, the following bits of code ``` To control conditional compilation: + 1. Search for the variable `ARCHFLAGS` in `configure.wrf` 2. Add the desired define statement at the bottom. For instance, to selectively compile the `NS_VALLEY` block above, do the following: @@ -569,8 +625,8 @@ The long story made short is: you should link grib1 files and process them with More in detail, since a few years ECMWF has been distributing a mixture of grib2 and grib1 files. Namely: -* grib1 files for surface and soil model levels. -* grib2 files for atmospheric model levels. +- grib1 files for surface and soil model levels. +- grib2 files for atmospheric model levels. The WPS has a predefined Vtable for grib1 files from ECMWF, so the easiest way to process ECMWF data is to: @@ -582,36 +638,35 @@ In detail: 1. Conversion to grib1 (needs the grib_set utility from eccodes): - ```sh title="convert to grib1" - for i in det.CROSSINN.mlv.20190913.0000.f*.grib2; - do - j=`basename $i .grib2`; - grib_set -s deletePV=1,edition=1 ${i} ${j}; - done - ``` + ```sh title="convert to grib1" + for i in det.CROSSINN.mlv.20190913.0000.f*.grib2; + do + j=`basename $i .grib2`; + grib_set -s deletePV=1,edition=1 ${i} ${j}; + done + ``` 2. Concatenation of grib files (two sets of files, `*mlv*` and `*sfc*`, with names ending with "grib1" yield a new set of files with names ending with "grib"; everything is grib1): - ```sh title="concatenate grib files" - for i in det.CROSSINN.mlv.20190913.0000.f*.grib1; - do - j=`echo $i|sed 's/.mlv./.sfc./'`; - k=`echo $i|sed 's/.mlv././'|sed 's/.grib1/.grib/'`; - cat $i $j > $k; - done - ``` + ```sh title="concatenate grib files" + for i in det.CROSSINN.mlv.20190913.0000.f*.grib1; + do + j=`echo $i|sed 's/.mlv./.sfc./'`; + k=`echo $i|sed 's/.mlv././'|sed 's/.grib1/.grib/'`; + cat $i $j > $k; + done + ``` 3. In the WPS main directory: - ```sh title="link grib files and convert" - link_grib.csh /data/GRIB_IC_for_LAM/ECMWF/20190913_CROSSINN_IOP8/det.CROSSINN.20190913.0000.f*.grib - ln -s ungrib/Variable_Tables/Vtable.ECMWF_sigma Vtable - ./ungrib.exe - ``` + ```sh title="link grib files and convert" + link_grib.csh /data/GRIB_IC_for_LAM/ECMWF/20190913_CROSSINN_IOP8/det.CROSSINN.20190913.0000.f*.grib + ln -s ungrib/Variable_Tables/Vtable.ECMWF_sigma Vtable + ./ungrib.exe + ``` An alternative procedure would be to convert everything to grib2 instead of grib1. Then, one has to use a Vtable with grib2 information for the surface fields, for instance the one included here at the bottom. But: Data from the bottom soil level will not be read correctly with this Vtable, because the Level2 value for the bottom level is actually MISSING in grib2 files (at the moment of writing, 6 May 2022; this may be fixed in the future). - GRIB1| Level| From | To | metgrid | metgrid | metgrid |GRIB2|GRIB2|GRIB2|GRIB2| Param| Type |Level1|Level2| Name | Units | Description |Discp|Catgy|Param|Level| -----+------+------+------+----------+----------+------------------------------------------+-----------------------+ @@ -642,7 +697,6 @@ An alternative procedure would be to convert everything to grib2 instead of grib 42 | 112 | 10000| 0| SM100289 | fraction | Soil moisture of 100-289 cm ground layer | 192 | 128 | 42 | 106 | -----+------+------+------+----------+----------+------------------------------------------+-----------------------+ - #### Spinning up soil fields ### After running the model @@ -651,38 +705,37 @@ An alternative procedure would be to convert everything to grib2 instead of grib 1. To convert WRF output to CF-compliant NetCDF, use `wrfout_to_cf.ncl` (from <https://sundowner.colorado.edu/wrfout_to_cf/overview.html>): - ``` - ncl 'file_in="wrfinput_d01"' 'file_out="wrfpost.nc"' wrfout_to_cf.ncl - ``` + ``` + ncl 'file_in="wrfinput_d01"' 'file_out="wrfpost.nc"' wrfout_to_cf.ncl + ``` #### Interpolating model output to a new grid -1. First convert to CF-compliant NetCDF (see above) +1. First convert to CF-compliant NetCDF (see above) -1. Then use cdo to interpolate the CF-compliant WRF output: +1. Then use cdo to interpolate the CF-compliant WRF output: ``` cdo -remapnn,gridfile.lonlat.txt wrfpost.nc wrfpost_interpolated.nc ``` -1. In the code snippet above, `-remapnn` specifies the interpolation engine, in this case nearest-neighbour. See alternatives here: <https://code.mpimet.mpg.de/projects/cdo/wiki/Tutorial#Horizontal-fields> - -1. File gridfile.lonlat.txt contans the grid specifications, e.g.: - - gridtype = lonlat - gridsize = 721801 - xsize = 1201 - ysize = 601 - xname = lon - xlongname = "longitude" - xunits = "degrees_east" - yname = lat - ylongname = "latitude" - yunits = "degrees_north" - xfirst = 5.00 - xinc = 0.01 - yfirst = 43.00 - yinc = 0.01 +1. In the code snippet above, `-remapnn` specifies the interpolation engine, in this case nearest-neighbour. See alternatives here: <https://code.mpimet.mpg.de/projects/cdo/wiki/Tutorial#Horizontal-fields> +1. File gridfile.lonlat.txt contans the grid specifications, e.g.: + + gridtype = lonlat + gridsize = 721801 + xsize = 1201 + ysize = 601 + xname = lon + xlongname = "longitude" + xunits = "degrees_east" + yname = lat + ylongname = "latitude" + yunits = "degrees_north" + xfirst = 5.00 + xinc = 0.01 + yfirst = 43.00 + yinc = 0.01 #### Subsetting model output @@ -692,13 +745,13 @@ An alternative procedure would be to convert everything to grib2 instead of grib For 3D visualization of WRF output, it is recommended to use either [Paraview](https://www.paraview.org/) or [Mayavi](https://docs.enthought.com/mayavi/mayavi/). -* Both softwares are based on the Visualization Toolkit ([VTK](https://vtk.org/)) libraries, so visualizations are rather similar in the end. +- Both softwares are based on the Visualization Toolkit ([VTK](https://vtk.org/)) libraries, so visualizations are rather similar in the end. -* Both sotwares can be used interactively from a graphical user interface or in batch mode (i.e., writing the visualization directives in a Python script). +- Both sotwares can be used interactively from a graphical user interface or in batch mode (i.e., writing the visualization directives in a Python script). -* While Paraview requires converting model data into one of a few supported formats, Mayavi supports direct rendering of Numpy objects, so it is easier to integrate it into Python code. +- While Paraview requires converting model data into one of a few supported formats, Mayavi supports direct rendering of Numpy objects, so it is easier to integrate it into Python code. -* It is recommended to run 3D visualization software on GPUs. Running on a CPU (e.g., own laptop) is possible, but will be extremely slow. CPU is not the only bottleneck, because visualization software uses a lot of computer memory. Rendering 3D fields, in particular, is out of reach for normal laptops with 8GB or 16GB of RAM. Paraview is available on VSC5 and should be available soon on srvx8. Currently, Mayavi must be installed by individual users as a Python package. +- It is recommended to run 3D visualization software on GPUs. Running on a CPU (e.g., own laptop) is possible, but will be extremely slow. CPU is not the only bottleneck, because visualization software uses a lot of computer memory. Rendering 3D fields, in particular, is out of reach for normal laptops with 8GB or 16GB of RAM. Paraview is available on VSC5 and should be available soon on srvx8. Currently, Mayavi must be installed by individual users as a Python package. **Notes for readers/contributors: (1) Mayavi is untested yet. (2) It would be useful to add example batch scripts for both Paraview and Mayavi.** @@ -710,45 +763,50 @@ For 3D visualization of WRF output, it is recommended to use either [Paraview](h 1. On VSC5, convert the WRF output in a format that Paraview can ingest. One option is to use [siso](https://github.com/TheBB/SISO). - ```sh - siso -f vts ~/serafins/TEAMx_LES/output/100m/wrfout_d01_0001-01-01_00\:00\:00 > siso.out 2>&1 & - siso -f vts --planar ~/serafins/TEAMx_LES/output/100m/wrfout_d01_0001-01-01_00\:00\:00 > siso_sfc.out 2>&1 & - ``` - The first and second statements handle respectively 3D and 2D WRF output. They process the native output from WRF in netcdf format and return collections of files in VTS format (the VTK format for structured grids). There will be two independent datasets (for 3D and 2D output). + ```sh + siso -f vts ~/serafins/TEAMx_LES/output/100m/wrfout_d01_0001-01-01_00\:00\:00 > siso.out 2>&1 & + siso -f vts --planar ~/serafins/TEAMx_LES/output/100m/wrfout_d01_0001-01-01_00\:00\:00 > siso_sfc.out 2>&1 & + ``` + + The first and second statements handle respectively 3D and 2D WRF output. They process the native output from WRF in netcdf format and return collections of files in VTS format (the VTK format for structured grids). There will be two independent datasets (for 3D and 2D output). 1. In the VSC5 terminal, request access to a GPU node. One of the private IMGW nodes has a GPU, and can be accessed with specific account/partition/quality of service directives. - ```sh - (zen3) [sserafin4@l50 ~]$ salloc -N 1 --gres=gpu:2 --account=p71386 -p zen3_0512_a100x2 -q p71386_a100dual - salloc: Pending job allocation 233600 - salloc: job 233600 queued and waiting for resources - salloc: job 233600 has been allocated resources - salloc: Granted job allocation 233600 - salloc: Waiting for resource configuration - salloc: Nodes n3072-006 are ready for job - ``` + ```sh + (zen3) [sserafin4@l50 ~]$ salloc -N 1 --gres=gpu:2 --account=p71386 -p zen3_0512_a100x2 -q p71386_a100dual + salloc: Pending job allocation 233600 + salloc: job 233600 queued and waiting for resources + salloc: job 233600 has been allocated resources + salloc: Granted job allocation 233600 + salloc: Waiting for resource configuration + salloc: Nodes n3072-006 are ready for job + ``` 1. Once the GPU node becomes available, open up a new terminal session on your local machine, and set up an ssh tunnel to the GPU node through the login node. - ```sh - (mypy39) stefano@stefano-XPS-13-9370:~$ ssh -L 11111:n3072-006:11112 sserafin4@vsc5.vsc.ac.at - ``` - This will redirect TCP/IP traffic from port 11111 of your local machine to port 11112 of the VSC5 GPU node, through the VSC5 login node. Port numbers are arbitary, but the remote port (11112) needs to match the Paraview server settings (see below). + + ```sh + (mypy39) stefano@stefano-XPS-13-9370:~$ ssh -L 11111:n3072-006:11112 sserafin4@vsc5.vsc.ac.at + ``` + + This will redirect TCP/IP traffic from port 11111 of your local machine to port 11112 of the VSC5 GPU node, through the VSC5 login node. Port numbers are arbitary, but the remote port (11112) needs to match the Paraview server settings (see below). 1. In the VSC5 terminal, log in to the GPU node: - ```sh - (zen3) [sserafin4@l50 ~]$ ssh n3072-006 - Warning: Permanently added 'n3072-006,10.191.72.6' (ECDSA) to the list of known hosts. - sserafin4@n3072-006's password: - (zen3) [sserafin4@n3072-006 ~]$ - ``` + ```sh + (zen3) [sserafin4@l50 ~]$ ssh n3072-006 + Warning: Permanently added 'n3072-006,10.191.72.6' (ECDSA) to the list of known hosts. + sserafin4@n3072-006's password: + + (zen3) [sserafin4@n3072-006 ~]$ + ``` 1. In the VSC5 terminal on the GPU node, load the Paraview module and start the Paraview server: - ```sh - (zen3) [sserafin4@n3072-006 ~]$ module load paraview - (zen3) [sserafin4@n3072-006 ~]$ pvserver --force-offscreen-rendering --server-port=11112 - Waiting for client... - Connection URL: cs://n3072-006:11112 - Accepting connection(s): n3072-006:11112 - ``` + + ```sh + (zen3) [sserafin4@n3072-006 ~]$ module load paraview + (zen3) [sserafin4@n3072-006 ~]$ pvserver --force-offscreen-rendering --server-port=11112 + Waiting for client... + Connection URL: cs://n3072-006:11112 + Accepting connection(s): n3072-006:11112 + ``` 1. On your local machine, open the Paraview client (graphical user interface, GUI). Then select File > Connect and enter the url of the Paraview server (`localhost:11111`). Select the datasets you want to display and work on them in the GUI. Save the Paraview state to avoid repeating work at the next session. Paraview has extensive [documentation](https://docs.paraview.org/en/latest/UsersGuide/index.html), tutorials ([one](https://docs.paraview.org/en/latest/Tutorials/SelfDirectedTutorial/index.html), [two](https://public.kitware.com/Wiki/The_ParaView_Tutorial) and [three](https://public.kitware.com/Wiki/images/b/bc/ParaViewTutorial56.pdf)) and a [wiki](https://public.kitware.com/Wiki/ParaView). @@ -761,53 +819,60 @@ Not tested yet. Whether done with Paraview or with Mayavi, the visualization will result in a collection of png files, e.g., `InnValley.%04d.png`. There are several tools to convert invidual frames into movies. Among them, `ffmpeg` and `apngasm`. At the moment neither of them is available on IMGW servers (precompiled binaries are available through `apt-get` for Ubuntu). The basic method to create an `mp4` movie is: + ```sh ffmpeg -i InnValley.%04d.png -c:v libx264 -r 12 -pix_fmt yuv420p InnValley.mp4 ``` The method above might return an error if frames have an odd number of pixels in one dimension: + ```sh [libx264 @ 0x5651e5f02980] height not divisible by 2 (1066x1083) ``` The fix is as follows: + ```sh ffmpeg -i InnValley.%04d.png -c:v libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -r 12 -pix_fmt yuv420p InnValley.mp4 ``` It is possible to add movie repetitions (similar to a loop). In this case, 3 additional loops are appended after the first one: + ```sh ffmpeg -stream_loop 3 -framerate 12 -i InnValley.%04d.png -c:v libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt yuv420p InnValley.mp4 ``` It also possible to generate movies in other formats, better suited for the web: -* webp (most efficient compression for loops): - ```sh - ffmpeg -framerate 12 -i InnValley.%04d.png InnValley.webp - ``` +- webp (most efficient compression for loops): -* animated png (bigger in size): - ```sh - apngasm InnValley.png InnValley.0*png - ``` + ```sh + ffmpeg -framerate 12 -i InnValley.%04d.png InnValley.webp + ``` -* gif (much bigger in size): - ```sh - ffmpeg -framerate 12 -i InnValley.%04d.png InnValley.gif - ``` +- animated png (bigger in size): -* For the example dataset, the collection of raw png files takes 59 MB while the video file sizes range between 4.5 and 70 MB: - ```sh - (mypy39) stefano@stefano-XPS-13-9370:~/Desktop/Paraview_animation/anim$ du -hcs InnValley.0*png - 59M total + ```sh + apngasm InnValley.png InnValley.0*png + ``` - (mypy39) stefano@stefano-XPS-13-9370:~/Desktop/Paraview_animation/anim$ du -hcs InnValley.[pgmw]* - 70M InnValley.gif - 14M InnValley.mp4 - 51M InnValley.png - 4,5M InnValley.webp - ``` +- gif (much bigger in size): -## Useful tools + ```sh + ffmpeg -framerate 12 -i InnValley.%04d.png InnValley.gif + ``` +- For the example dataset, the collection of raw png files takes 59 MB while the video file sizes range between 4.5 and 70 MB: + + ```sh + (mypy39) stefano@stefano-XPS-13-9370:~/Desktop/Paraview_animation/anim$ du -hcs InnValley.0*png + 59M total + + (mypy39) stefano@stefano-XPS-13-9370:~/Desktop/Paraview_animation/anim$ du -hcs InnValley.[pgmw]* + 70M InnValley.gif + 14M InnValley.mp4 + 51M InnValley.png + 4,5M InnValley.webp + ``` + +## Useful tools diff --git a/WRF/config_files/README.md b/WRF/config_files/README.md new file mode 100644 index 0000000000000000000000000000000000000000..24f80cf439ce80290dee3d55f0349daaa2bd6f2a --- /dev/null +++ b/WRF/config_files/README.md @@ -0,0 +1,55 @@ +# Configuration files + +??? note "configure.wrf.v4.4.2.srvx1.dmpar" + + ``` sh title="configure.wrf.v4.4.2.srvx1.dmpar" + --8<-- "WRF/config_files/configure.wrf.v4.4.2.srvx1.dmpar" + ``` + +??? note "configure.wrf.v4.4.2.srvx1.serial" + + ``` sh title="configure.wrf.v4.4.2.srvx1.serial" + --8<-- "WRF/config_files/configure.wrf.v4.4.2.srvx1.serial" + ``` + +??? note "configure.wrf.v4.4.2.srvx1.serial.debug" + + ``` sh title="configure.wrf.v4.4.2.srvx1.serial.debug" + --8<-- "WRF/config_files/configure.wrf.v4.4.2.srvx1.serial.debug" + ``` + +??? note "configure.wrf.v4.4.2.vsc5.gfortran" + + ``` sh title="configure.wrf.v4.4.2.vsc5.gfortran" + --8<-- "WRF/config_files/configure.wrf.v4.4.2.vsc5.gfortran" + ``` + +??? note "configure.wrf.v4.4.vsc5.intel" + + ``` sh title="configure.wrf.v4.4.vsc5.intel" + --8<-- "WRF/config_files/configure.wrf.v4.4.vsc5.intel" + ``` + +??? note "modules_jet_intel.sh" + + ``` sh title="modules_jet_intel.sh" + --8<-- "WRF/config_files/modules_jet_intel.sh" + ``` + +??? note "modules_srvx1_intel.sh" + + ``` sh title="modules_srvx1_intel.sh" + --8<-- "WRF/config_files/modules_srvx1_intel.sh" + ``` + +??? note "modules_vsc5_gfortran.sh" + + ``` sh title="modules_vsc5_gfortran.sh" + --8<-- "WRF/config_files/modules_vsc5_gfortran.sh" + ``` + +??? note "modules_vsc5_intel.sh" + + ``` sh title="modules_vsc5_intel.sh" + --8<-- "WRF/config_files/modules_vsc5_intel.sh" + ``` diff --git a/WRF/config_files/create_filelist.py b/WRF/config_files/create_filelist.py new file mode 100755 index 0000000000000000000000000000000000000000..25a5c85b028eec5ed852244e732b556b13485520 --- /dev/null +++ b/WRF/config_files/create_filelist.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +import os + +list = os.listdir('.') +pwd = 'WRF/config_files' +file = open('README.md', 'w') + +file.write("# Configuration files\n") + +# ??? note "connect2vpn" + +# ``` bash title="Connect to VPN" +# --8<-- "SSH-VPN-VNC/connect2vpn" +# ``` + +for ifile in list: + if '.py' in ifile: + continue + if '.md' in ifile: + continue + print(f"adding {ifile}") + file.write(f""" +??? note "{ifile}" + + ``` sh title="{ifile}" + --8<-- "{pwd}/{ifile}" + ``` +""") + # file.write('- [' + str(l) + '](./config_files/' + str(l) +')\n') +file.close() \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 7f26e9fb1a153add6028e2f3695bb75eba3872e2..c459f7b831e83f013d8e13ad7adf97d2fcb8efa2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,7 +5,7 @@ site_name: Computer Resources @ IMGW # could change this to /var/www/html/docs -site_url: "https://wolke.img.univie.ac.at/doc/general/" +site_url: "https://wolke.img.univie.ac.at/documentation/general/" site_dir: "./site/" docs_dir: "." repo_url: https://gitlab.phaidra.org/imgw/computer-resources @@ -49,6 +49,7 @@ plugins: glob: - testing/* - site/* + - WRF/config_files/create_filelist.py extra: social: @@ -67,9 +68,9 @@ extra_css: markdown_extensions: - pymdownx.highlight: - use_pygments: true linenums: true - pygments_style: xcode + auto_title: true + use_pygments: true - pymdownx.inlinehilite - pymdownx.snippets: check_paths: true diff --git a/mkdocs/.pages b/mkdocs/.pages new file mode 100644 index 0000000000000000000000000000000000000000..0dcafb34370a0de2c979c95f2e2bae066f02c862 --- /dev/null +++ b/mkdocs/.pages @@ -0,0 +1 @@ +hide: true \ No newline at end of file diff --git a/mkdocs/img/MARS-tree.png b/mkdocs/img/MARS-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c969b1819187212f5ef9e735fbf39f48494fd9 Binary files /dev/null and b/mkdocs/img/MARS-tree.png differ diff --git a/mkdocs/img/build_img b/mkdocs/img/build_img index c5778619d8d729877e37230e287d0cdd3ce8f607..8c76558359794fa01a5863e9af6519d44af55508 100644 --- a/mkdocs/img/build_img +++ b/mkdocs/img/build_img @@ -1,2 +1,3 @@ dot -Tpng IMGW-connection-diagram.dot > IMGW-connection-diagram.png dot -Tpng IMGW-connection-diagram2.dot > IMGW-connection-diagram2.png +dot -Tpng jet-gpfs-setup.dot > jet-gpfs-setup.png diff --git a/mkdocs/img/cpu.png b/mkdocs/img/cpu.png index 16c053b9a3444ef2be0795de710de166226f590e..84cf981542d4fa23be3e4b9b12c7265b012448f5 100644 Binary files a/mkdocs/img/cpu.png and b/mkdocs/img/cpu.png differ diff --git a/mkdocs/img/jet-gpfs-setup.dot b/mkdocs/img/jet-gpfs-setup.dot new file mode 100644 index 0000000000000000000000000000000000000000..f202450a1dd8500c9564b6a22875fb58bada1255 --- /dev/null +++ b/mkdocs/img/jet-gpfs-setup.dot @@ -0,0 +1,45 @@ +digraph Servers { + bgcolor="transparent" + compound=true; + rankdir="LR"; + node [image="cpu.png" height="1" imagepos="tc" shape=none labelloc="b"] + subgraph cluster_GPFS { + subgraph cluster_VSC { + vsc01 -> vsc0X [style=invis]; + label="VSC5 Nodes /gpfs/jetfs"; + bgcolor="#a71c49"; + style="rounded,dashed"; + } + subgraph cluster_LOGIN { + jet01 -> jet02 [style=invis]; + label="Login Nodes /jetfs"; + bgcolor="#f6a800"; + style="rounded,dotted"; + } + subgraph cluster_COMPUTE { + {rank=same jet03; jet04;} + {rank=same jet05; jet06;} + {rank=same jet07; jet08; jet09;} + jet03 -> jet05 -> jet07 [style=invis] + label="Computing Nodes /jetfs"; + bgcolor="#0063a6"; + style="rounded,dotted"; + } + #subgraph cluster_storage { + # stg01 -> stg02 [style=invis] + # label="Storage Nodes"; + # bgcolor="#dd4814"; + # style="rounded,dotted"; + #} + edge [constraint=false] + jet02 -> jet07 [lhead=cluster_COMPUTE ltail=cluster_LOGIN arrowhead=none]; + label="Global parallel file system (GPFS) JETFS"; + bgcolor="#11897a"; + labelloc=t; + style="rounded"; + } + + node [shape=none image="student_sm.png" label="User" labelloc="b" height="1" imagepos="tc"] + user -> jet01 [lhead=cluster_LOGIN arrowhead=none]; + user -> vsc01 [lhead=cluster_VSC arrowhead=none]; +} \ No newline at end of file diff --git a/mkdocs/img/jet-gpfs-setup.png b/mkdocs/img/jet-gpfs-setup.png new file mode 100644 index 0000000000000000000000000000000000000000..a296b8c2d5872989d9c87576c0e0a62c8d275a91 Binary files /dev/null and b/mkdocs/img/jet-gpfs-setup.png differ diff --git a/mkdocs/img/moodlelogo_small.png b/mkdocs/img/moodlelogo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..eafd5c59467d8726daefe12495cb493b9c85b058 Binary files /dev/null and b/mkdocs/img/moodlelogo_small.png differ diff --git a/mkdocs/img/ssh-key-exchange.png b/mkdocs/img/ssh-key-exchange.png new file mode 100644 index 0000000000000000000000000000000000000000..e60a5b9410014275c9654a7ef9c9c526d8135080 Binary files /dev/null and b/mkdocs/img/ssh-key-exchange.png differ diff --git a/mkdocs/img/teachinghub-new-kernels.png b/mkdocs/img/teachinghub-new-kernels.png new file mode 100644 index 0000000000000000000000000000000000000000..d8384964dec1ea04a2204210cff46729d6b813e8 Binary files /dev/null and b/mkdocs/img/teachinghub-new-kernels.png differ diff --git a/mkdocs/img/teachinghub-new-moodle.png b/mkdocs/img/teachinghub-new-moodle.png new file mode 100644 index 0000000000000000000000000000000000000000..df06410aa3b9076ef9482f9f903baed71f031057 Binary files /dev/null and b/mkdocs/img/teachinghub-new-moodle.png differ diff --git a/mkdocs/img/teachinghub-new-vnc.png b/mkdocs/img/teachinghub-new-vnc.png new file mode 100644 index 0000000000000000000000000000000000000000..5977c24db7bee4168cb8d10532fdc7d858a15ad6 Binary files /dev/null and b/mkdocs/img/teachinghub-new-vnc.png differ diff --git a/mkdocs/img/teachinghub-new-welcome.png b/mkdocs/img/teachinghub-new-welcome.png new file mode 100644 index 0000000000000000000000000000000000000000..8606e86dff71483c4879d87a7b985a056dfaf62c Binary files /dev/null and b/mkdocs/img/teachinghub-new-welcome.png differ diff --git a/mkdocs/stylesheets/extra.css b/mkdocs/stylesheets/extra.css index 330ad4bf1c79b2c12dfaf98f0dd312079572fd9f..e1a2acc8b7563fbf0244a2477a5824a73f29279f 100644 --- a/mkdocs/stylesheets/extra.css +++ b/mkdocs/stylesheets/extra.css @@ -1,14 +1,16 @@ [data-md-color-scheme="uniwien"] { - --md-primary-fg-color: #0063a6; - --md-primary-fg-color--light: #0574bf; - --md-primary-fg-color--dark: #004675; - } + --md-primary-fg-color: #0063a6; + --md-primary-fg-color--light: #0574bf; + --md-primary-fg-color--dark: #004675; +} + /* Maximum space for text block */ /* or 100%, if you want to stretch to full-width */ .md-grid { - max-width: 100%; + max-width: 100%; } + /* Like larger fonts */ @font-face { - font-size: .9rem; + font-size: .98rem; } \ No newline at end of file