Full Code of DoctorTeeth/diffmem for AI

master 77478331eba2 cached
18 files
2.3 MB
602.0k tokens
45 symbols
1 requests
Download .txt
Showing preview only (2,408K chars total). Download the full file or copy to clipboard to get everything.
Repository: DoctorTeeth/diffmem
Branch: master
Commit: 77478331eba2
Files: 18
Total size: 2.3 MB

Directory structure:
gitextract_31qnb1wz/

├── .gitignore
├── README.md
├── ntm/
│   ├── __init__.py
│   ├── addressing.py
│   ├── memory.py
│   ├── new_cos.py
│   ├── newmem.py
│   └── ntm.py
├── run_model.py
├── saved_models/
│   ├── associative_recall.pkl
│   ├── copy.pkl
│   ├── ngrams.pkl
│   ├── priority_sort.pkl
│   └── repeat_copy.pkl
└── util/
    ├── __init__.py
    ├── optimizers.py
    ├── sequences.py
    └── util.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*.pyc
*.swp
out*
log
*.pkl
!copy.pkl
!repeat_copy.pkl
!priority_sort.pkl
!ngrams.pkl
!associative_recall.pkl


================================================
FILE: README.md
================================================
# Differentiable Memory

Reference implementations of various differentiable memory schemes for neural networks, in pure numpy.
These are meant to serve as correctness checks against which higher performance batched GPU implementations can be evaluated.

## Code Structure

The code is structured as follows.
The ntm directory has 3 files of note: ntm.py, addressing.py, and memory.py.

* `addressing.py` deals with creating the memory read and write weights from the head parameters.
* `memory.py` deals with how the memory is addressed given the read and write weights.
* `ntm.py` implements fprop and bprop for the ntm model.

The utils directory also has 3 files of note.

* `optimizers.py` implements RMSprop
* `util.py` is a grab-bag of helper functions.
* `sequences.py` generates syntetic test and training data for the tasks from the paper.

The root directory contains dotfiles and `run_model.py`, the latter of which allows for training and testing of the ntm model on various tasks depending on the arguments passed to it.

## Setup

You will need to install the autograd library (`pip install autograd`). 
I'm using autograd to do the backprop, since the architecture of the models is still in flux, but I found (at least when benchmarked using a GRU I have) that it's about 8x slower than doing backprop manually (maybe this is operator error?), so once I'm sure that everything is working properly I'll probably get rid of that dependency.
The code is Python 2.7.

## Models

Currently, only the Neural Turing Machine is implemented.
I'd also like to implement some of the stuff from [Learning to Transduce with Unbounded Memory](http://arxiv.org/pdf/1506.02516v1.pdf), but it's unclear whether I'll have time (or whether it will be worth doing, given the generality of NTMs).

### Neural Turing Machine

This is an instance of the model from [this paper](http://arxiv.org/pdf/1410.5401v2.pdf).
The paper was relatively vague about the architecture of the model, so I had to make some stuff up.
It's likely that some of the stuff I made up is dumb, and I'd appreciate feedback to that effect.

All 5 of the tasks from the paper are implemented. There's more detail in the below sections about performance on individual tasks, but broadly speaking the model seems to be working; it generalizes to sequences longer than those it was trained on (i.e. it learns "compact internal programs").

#### Usage

The script `run_model.py` handles both training and testing.
Execute `./run_model.py --help` to get a list of arguments and their descriptions.
The saved_models directory contains pickled models for every task.
To test the saved copy model on sequences of length 10, do `./run_model.py --model=saved_models/copy.pkl --lo=10 --hi=10`.
Serialized models include information about about which input size and output size and number of hidden units etc were used, so you don't need to remember that.

#### Tasks

In some cases, a task as described by the paper wasn't completely well-defined.
In those cases I took some creative liberty - I think that the spirit of the tasks is the same.

##### Copy

In this task, we feed the model a start bit, then some bit vectors, then a stop bit, and ask it to reproduce all the bit vectors in the same order in which it saw them.
The model performs very well on this task, acheiving negligible error on the training set and generalizing well to sequences longer than those seen during training.
Below is logging output from a model that was trained on sequences of up to length 5 copying a sequence of length 10.
Time flows left to right - the memory of this model has 15 locations, each of size 7. It uses only one read head and one write head.
The 4th row in the input is the channel containing the start bit. The 5th row contains the stop bit. The first 3 rows constitute the bit vectors to be copied.

    inputs:
    [ 0.0  0.0  1.0  1.0  0.0  0.0  1.0  1.0  1.0  0.0  1.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  1.0  1.0  0.0  0.0  1.0  1.0  0.0  0.0  1.0  1.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  1.0  1.0  0.0  0.0  1.0  1.0  1.0  1.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 1.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  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    outputs:
    [ 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  1.0  1.0  0.0  0.0  1.0  1.0  1.0  0.0  1.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  1.0  1.0  0.0  0.0  1.0  1.0  0.0  0.0  1.0  1.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  1.0  1.0  0.0  0.0  1.0  1.0  1.0  1.0  0.0  1.0]
    reads-0
    [ 0.0  0.1  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.1  0.1  0.4  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.1  0.4  0.2  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.2  0.2  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  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.1  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  1.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.1  0.0  0.0  0.0  0.0  0.0  1.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.1  0.0  0.1  0.0  0.0  0.0  0.0  0.0  1.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  1.0]
    [ 0.1  0.1  0.0  0.0  0.0  0.0  0.0  1.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  1.0  0.0]
    [ 0.1  0.0  0.0  0.1  0.0  0.0  1.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  1.0  0.0  0.0]
    [ 0.1  0.0  0.0  0.1  0.0  0.9  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0]
    [ 0.1  0.0  0.1  0.0  0.7  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0]
    writes-0
    [ 0.0  0.0  0.0  0.0  0.0  0.0  1.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.3  0.2]
    [ 0.0  0.0  0.0  0.0  0.0  1.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.4  0.7  0.5]
    [ 0.0  0.0  0.0  0.0  1.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.5  0.6  0.0  0.3]
    [ 0.0  0.0  0.0  1.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.9  0.4  0.5  0.0  0.0  0.0]
    [ 0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.8  0.0  0.5  0.0  0.0  0.0  0.0]
    [ 0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.5  0.9  0.0  0.1  0.0  0.0  0.0  0.0  0.0]
    [ 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.5  0.0  0.1  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.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  1.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  1.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  1.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  1.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]
    adds-0
    [-1.0  0.5  0.9 -0.8 -1.0  0.5  0.9  0.1  0.1  0.1  0.9 -1.0  0.4  0.1  0.1  0.0  0.4  0.1  1.0  1.0  1.0  0.1]
    [-0.9 -1.0 -0.9  1.0  0.9 -1.0 -0.9 -1.0 -1.0  1.0 -0.9 -1.0  1.0  1.0 -1.0  0.2  1.0  1.0  1.0  1.0  1.0  1.0]
    [-1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0 -1.0 -0.8  1.0  1.0 -1.0 -1.0 -1.0  1.0 -1.0]
    [ 1.0 -0.8  1.0  1.0 -0.7 -0.9  1.0  1.0  1.0 -0.9  1.0  1.0 -1.0 -1.0 -1.0  1.0 -1.0 -1.0 -1.0 -1.0 -0.5 -1.0]
    [-1.0 -1.0 -1.0  0.6  0.8 -1.0 -1.0 -1.0 -1.0  0.9 -1.0  1.0  1.0  1.0 -0.7 -1.0  1.0  1.0  1.0  1.0  1.0  1.0]
    [-1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0  1.0  0.9 -1.0 -1.0  1.0  1.0  1.0 -1.0  1.0]
    [ 1.0  1.0  1.0 -0.7 -0.8  1.0  1.0 -0.9 -0.9  1.0  1.0  1.0 -1.0 -1.0 -0.1  1.0 -1.0 -1.0 -0.4 -0.3 -1.0 -1.0]
    erases-0
    [ 1.0  1.0  1.0  1.0  0.9  1.0  1.0  1.0  1.0  1.0  1.0  1.0  0.0  0.0  0.8  1.0  0.0  0.0  0.0  0.0  0.1  0.0]
    [ 1.0  0.9  0.9  0.1  0.5  0.9  0.9  0.9  0.9  0.3  0.9  0.9  0.0  0.0  0.5  0.9  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.7  0.9  0.9  0.0  0.0  0.9  0.9  0.1  0.1  0.8  0.9]
    [ 1.0  1.0  1.0  0.6  0.8  1.0  1.0  0.9  0.9  0.9  1.0  0.6  0.1  0.0  0.1  0.9  0.1  0.0  0.0  0.1  0.1  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.5  1.0  0.0  0.0  0.5  1.0  0.2  0.2  0.0  1.0]
    [ 0.0  1.0  1.0  0.7  0.1  1.0  1.0  1.0  1.0  1.0  1.0  0.0  0.6  0.0  0.4  1.0  0.6  0.0  0.4  0.5  1.0  0.0]
    [ 0.5  0.0  0.0  0.3  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.4  0.8  0.9  0.0  0.0  0.8  0.9  0.1  0.1  0.8  0.9]

There are a few cool things to note about this example.
The first cool thing is that the error is so low. 
I've rounded the numbers to 1 digit after the decimal, but the actual BPC for this sequence was less than 2e-8.
This is especially interesting because we never trained the model on sequences of this length.
In fact, this particular model will perform well up to length 13, after which it starts running into trouble.
My best guess is that the NTM needs a few extra rows of memory for some reason, but I don't feel very strongly about that hypothesis.

The second cool thing is the memory access pattern.
The NTM starts writing the bit vectors at memory location 6 (counting from 1), and shifts backwards by one location every time step until it sees the stop bit.

Once the stop bit is read, the NTM then starts reading from the corresponding locations, after (presumably), doing a content-based shift back to the beginning of the sequence in memory.

Note that read and write shifts just wrap around - the memory is treated as circular.

##### Repeat Copy

This task is the same as the copy task, but instead of a stop bit, the model sees a scalar, which represents the number of copies to be made.
After the required number of copies is made, the model is also supposed to output a stop bit on a separate channel.
I don't normalize the repeat-scalar, though it's normalized in the paper.
I expect that this is seriously hurting generalization performance; fixing it is on my todo-list.

Here is the logging output of a small example model:

    inputs:
    [ 0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.0  1.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.0  1.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.0  0.0  0.0  2.0  0.0  0.0  0.0  0.0  0.0]
    outputs:
    [ 0.0  0.0  0.0  0.0  0.0  1.0  0.0  1.0  0.0]
    [ 0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0  0.0]
    [ 0.0  0.0  0.0  0.0  1.0  1.0  1.0  1.0  0.0]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0]
    reads-0
    [ 0.2  0.0  0.0  0.0  0.0  0.2  0.0  0.2  0.1]
    [ 0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.1  0.2]
    [ 0.3  0.6  1.0  0.0  0.0  0.1  0.0  0.3  0.2]
    [ 0.2  0.2  0.0  1.0  0.0  0.7  0.0  0.5  0.2]
    [ 0.1  0.0  0.0  0.0  1.0  0.0  0.9  0.0  0.3]
    writes-0
    [ 0.0  0.0  0.1  0.4  0.1  0.2  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.3  0.4  0.3  0.2  0.2  0.1]
    [ 0.0  0.0  0.0  0.0  0.3  0.3  0.3  0.2  0.4]
    [ 0.9  0.6  0.0  0.2  0.0  0.1  0.3  0.3  0.1]
    [ 0.1  0.4  0.9  0.1  0.2  0.1  0.1  0.2  0.3]
    adds-0
    [ 1.0  1.0  0.8  1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
    [-1.0 -1.0 -1.0 -1.0  1.0  1.0  1.0  1.0 -0.4]
    [-1.0 -1.0  0.9  0.5 -0.9  0.2 -1.0  0.3 -0.9]
    [ 1.0  0.9  1.0  1.0  1.0  1.0  1.0  0.7 -1.0]
    [-1.0  0.9  1.0  1.0  1.0  1.0  0.8  1.0 -1.0]
    [-1.0  1.0  1.0 -1.0 -1.0  0.8 -1.0  1.0  1.0]
    [ 1.0 -1.0 -0.3  1.0  1.0  0.2  1.0  0.3  0.6]
    erases-0
    [ 0.6  0.2  0.8  0.5  0.9  0.2  0.9  0.2  0.5]
    [ 0.6  0.1  0.1  0.1  0.6  0.7  0.5  0.6  0.5]
    [ 0.5  0.9  1.0  0.0  1.0  0.6  1.0  0.9  1.0]
    [ 0.3  1.0  1.0  0.0  1.0  0.9  1.0  1.0  1.0]
    [ 1.0  1.0  1.0  0.0  1.0  0.6  1.0  0.6  1.0]
    [ 0.0  0.0  0.0  0.0  0.0  0.7  0.0  1.0  0.0]
    [ 0.7  0.9  1.0  0.9  0.9  0.6  0.9  0.6  0.9]

Again, note the memory access patterns.
They're not as clean as in the simple copy example (I'm trying to figure out exactly why), but it's still relatively clear what's going on:
The NTM writes the first bit vector to the 4th region of memory, then writes the second bit vector to the 5th region.
Then, once the repeat scalar is seen, the NTM reads out locations 4,5,4 and then 5, after which it does whatever, since it will now ignore the read values.
It outputs a stop bit in the correct location.

##### Associative Recall
In this task, we feed the model groups of bit vectors delimited by start bits, then a query vector delimited by end bits.
The goal is for the model to output the vector that it saw immediateley following the query vector.

    inputs:
    [ 0.0  0.0  0.0  0.0  0.0  1.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  1.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0]
    [ 1.0  0.0  1.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  1.0  0.0]
    outputs:
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.3]
    [ 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]
    reads-0
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.5  0.5  0.4  0.4  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.0]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1]
    writes-0
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.1  0.1  0.6]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.1  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.0  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.1  0.1  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.0  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.1  0.0  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.0  0.1  0.0]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.2  0.0  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.3  0.0]
    adds-0
    [ 1.0  1.0  1.0 -1.0 -1.0 -1.0  1.0  1.0  1.0  1.0]
    [-1.0 -1.0 -1.0  1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
    [ 1.0  1.0  1.0 -1.0 -1.0  1.0  1.0 -1.0  1.0  1.0]
    [ 1.0  1.0  1.0 -1.0  1.0 -1.0  1.0  1.0  1.0  1.0]
    [-1.0 -1.0 -1.0  1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
    [-1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
    [ 1.0  1.0  1.0 -1.0 -1.0 -0.9  1.0  1.0  1.0  1.0]
    erases-0
    [ 0.0  0.0  1.0  0.0  1.0  0.0  0.0  0.9  0.0  0.0]
    [ 1.0  1.0  0.5  0.0  0.0  0.1  1.0  1.0  1.0  0.6]
    [ 1.0  0.0  1.0  0.0  1.0  1.0  0.0  0.0  0.0  0.0]
    [ 1.0  1.0  0.9  0.9  0.0  0.9  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
    [ 1.0  0.0  0.9  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 1.0  1.0  1.0  1.0  1.0  0.8  0.0  1.0  0.0  0.0]

In the above sequence, the key could have been 0,0,1 or 0,0,0.
It was 0,0,1 (8th time step), and so the model outputs (or mostly outputs, in this case), the item it saw after that, which was 0,0,0.

##### Dynamic n-Grams

In this task, we fix a natural number n and then generate a probability table that encodes the likelihood that the next bit in a sequence will be a 1, having observed the last n-1 bits. We generate a new table for each training sequence, and train the model to predict the next bit at all times.

It's hard to generate an engaging visualization of this task, but if you look at the following it's possible you can get a sense of what's going on.

    inputs:
    [ 1.0  1.0  0.0  0.0  0.0  0.0  1.0  1.0  0.0  1.0  1.0  0.0  1.0  0.0  1.0  0.0  1.0  0.0  1.0  0.0]
    outputs:
    [ 0.5  0.8  0.5  0.2  0.2  0.1  0.2  0.5  0.4  0.0  0.2  0.2  0.1  0.1  0.1  0.0  0.1  0.1  0.1  0.1]
    reads-0
    [ 0.1  0.1  0.2  0.1  0.1  0.1  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.5  0.0  0.0  0.0  0.1  0.1  0.1]
    [ 0.1  0.0  0.0  0.1  0.0  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.5  0.0  0.0  0.0  0.1  0.1  0.1  0.0]
    [ 0.1  0.0  0.1  0.0  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.3  0.0  0.0  0.0  0.1  0.1  0.1  0.0  0.0]
    [ 0.1  0.2  0.0  0.0  0.1  0.1  0.0  0.0  0.0  0.0  0.5  0.0  0.0  0.0  0.1  0.1  0.0  0.0  0.0  0.0]
    [ 0.1  0.1  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.3  0.0  0.0  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.0]
    [ 0.1  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.3  0.0  0.0  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.4  0.0  0.0  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.0  0.0  0.0  0.0  0.0  0.2  0.1  0.0  0.0  0.2  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.0  0.0  0.0  0.0  0.2  0.1  0.1  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.1  0.1  0.0  0.0  0.2  0.1  0.1  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.5]
    [ 0.1  0.1  0.0  0.3  0.1  0.1  0.1  0.2  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.5  0.0]
    [ 0.1  0.1  0.4  0.1  0.1  0.1  0.2  0.1  0.1  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.0  0.5  0.0  0.0]
    [ 0.1  0.0  0.0  0.0  0.0  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.6  0.0  0.0  0.0]
    [ 0.1  0.1  0.0  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.5  0.0  0.0  0.0  0.1]
    [ 0.1  0.1  0.0  0.1  0.1  0.1  0.0  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.5  0.0  0.0  0.0  0.1  0.1]
    writes-0
    [ 0.0  0.5  0.9  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.0  0.1  0.1  0.1]
    [ 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.1  0.1  0.1  0.1  0.0  0.1  0.1  0.1]
    [ 0.1  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.5  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.0  0.1  0.0  0.1  0.1  0.1  0.0  0.1  0.1  0.1]
    [ 0.9  0.5  0.1  0.1  0.3  0.2  0.8  1.0  0.9  0.1  0.1  0.1  0.0  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.1  0.2  0.3  0.1  0.1  0.1  0.2  0.2  0.2  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.2  0.0  0.0  0.0  0.1  0.0  0.1  0.0  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.2  0.0  0.1  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.0  0.1  0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.0  0.1  0.0  0.1  0.0  0.1]
    [ 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.1  0.1  0.1  0.1  0.1]
    [ 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.1  0.0  0.0  0.0  0.1]
    [ 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.1  0.0  0.0  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.7  0.7  0.8  0.2  0.0  0.0  0.0  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    adds-0
    [ 1.0  1.0  1.0  1.0  1.0  1.0  0.9  1.0  1.0  0.2  0.9  1.0  0.9  0.7  0.6 -0.0  0.9  0.9  0.8  0.7]
    [-1.0  1.0 -0.9 -1.0 -1.0 -1.0 -1.0 -0.1 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
    [ 1.0 -1.0 -1.0 -0.8 -0.7 -0.3 -0.9 -1.0 -0.8  0.8 -0.7 -0.6 -0.5  0.8  0.9  0.9 -0.6 -0.2  0.3  0.8]
    [-0.9  1.0  1.0  1.0  1.0  0.9  0.9  1.0  1.0  0.7  0.9  1.0  0.9  0.8  0.2  0.6  0.9  0.9  0.8  0.8]
    [ 1.0  0.6  0.6  0.9  0.9  0.9  0.9  0.9  0.8  1.0  1.0  0.9  1.0  1.0  1.0  1.0  0.9  0.9  1.0  1.0]
    [-1.0 -0.9 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
    [-1.0 -1.0 -1.0 -0.9 -1.0 -0.9 -1.0 -1.0 -1.0  0.7 -0.9 -1.0 -0.9  0.1  0.4  0.8 -0.9 -0.9 -0.5 -0.1]
    erases-0
    [ 0.1  0.1  0.1  0.2  0.1  0.2  0.1  0.1  0.1  0.6  0.2  0.2  0.2  0.5  0.5  0.7  0.2  0.2  0.3  0.5]
    [ 0.1  0.2  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.2  0.6  0.1  0.1  0.1  0.1  0.2  0.3  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.8  0.8  0.1  0.0  0.0  0.0  0.1  0.3  0.1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.2  0.7  0.0  0.0  0.0  0.0  0.0  0.2  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.1  0.0  0.0  0.0  0.1  0.1  0.2  0.0  0.0  0.0  0.1]
    [ 0.7  0.0  0.0  0.0  0.0  0.1  0.0  0.0  0.0  0.6  0.1  0.0  0.1  0.5  0.7  0.8  0.1  0.1  0.2  0.4]

##### Priority Sort

In this task, we feed the model a sequence of bit vectors, each with a real-valued priority that lies in (-1,1), which comes on a separate priority channel.
The desired output is that sequence of bit vectors, sorted by the scalar priority. 

Here is an example of an NTM sorting a bit vector of length 2.
The first 3 rows represent the bit vectors to be sorted, and the last row represents the scalar priority.
The fourth and fifth rows are channels just for the start and stop bits.

    inputs:
    [ 0.0  1.0  0.0  0.0  0.0  0.0]
    [ 0.0  1.0  0.0  0.0  0.0  0.0]
    [ 0.0  0.0  1.0  0.0  0.0  0.0]
    [ 1.0  0.0  0.0  0.0  0.0  0.0]
    [ 0.0  0.0  0.0  1.0  0.0  0.0]
    [ 0.0  0.7 -0.6  0.0  0.0  0.0]
    outputs:
    [ 0.0  0.0  0.0  0.0  0.0  1.0]
    [ 0.0  0.0  0.0  0.0  0.0  1.0]
    [ 0.0  0.0  0.0  0.0  1.0  0.0]
    reads-0
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    writes-0
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    [ 0.1  0.1  0.1  0.1  0.1  0.1]
    adds-0
    [-0.3 -0.7 -0.8  0.1 -0.8  0.2]
    [ 0.1  0.9  0.1  0.7 -0.1  0.2]
    [ 0.6  0.5  0.9  0.4 -0.2  0.4]
    [ 0.3 -0.4  0.7 -0.6  0.9 -0.1]
    [ 0.3  0.2 -0.3 -0.6  0.3  0.0]
    [-0.1 -0.2 -0.2 -0.1 -0.0 -0.1]
    [ 0.8  0.9  0.9 -0.1  0.9 -0.8]
    erases-0
    [ 0.3  0.6  0.9  0.5  0.9  0.5]
    [ 0.4  0.6  0.5  0.4  0.4  0.4]
    [ 0.7  0.5  0.9  0.7  0.8  0.6]
    [ 0.3  0.5  0.3  0.3  0.4  0.5]
    [ 0.7  0.7  0.3  0.8  0.4  0.7]
    [ 0.4  0.5  0.4  0.2  0.3  0.2]
    [ 0.6  0.7  0.7  0.4  0.6  0.4]
    reads-1
    [ 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.4  0.4  0.3  0.0  0.1]
    [ 0.0  0.0  0.0  0.0  0.3  0.0]
    [ 0.7  0.0  0.0  0.0  0.0  0.1]
    [ 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.3  0.4  0.5  0.0  0.1]
    [ 0.0  0.0  0.0  0.0  0.6  0.1]
    [ 0.0  0.2  0.2  0.0  0.0  0.2]
    [ 0.0  0.0  0.0  0.0  0.0  0.1]
    [ 0.0  0.0  0.0  0.1  0.0  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.0]
    [ 0.2  0.0  0.0  0.0  0.0  0.1]
    writes-1
    [ 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.1  0.1]
    [ 0.7  0.0  0.7  0.1  0.2  0.1]
    [ 0.0  0.2  0.0  0.0  0.0  0.1]
    [ 0.0  0.0  0.0  0.1  0.1  0.0]
    [ 0.0  0.0  0.0  0.0  0.0  0.1]
    [ 0.0  0.0  0.0  0.1  0.1  0.1]
    [ 0.3  0.1  0.3  0.1  0.2  0.1]
    [ 0.0  0.2  0.0  0.1  0.0  0.1]
    [ 0.0  0.1  0.0  0.1  0.1  0.0]
    [ 0.0  0.2  0.0  0.1  0.0  0.1]
    [ 0.0  0.0  0.0  0.1  0.1  0.1]
    [ 0.0  0.0  0.0  0.0  0.1  0.1]
    [ 0.0  0.0  0.0  0.1  0.1  0.1]
    adds-1
    [ 1.0 -1.0  1.0  1.0  0.9 -1.0]
    [ 1.0  1.0  1.0  1.0  1.0  0.7]
    [-0.8 -1.0  0.8  1.0 -0.7  1.0]
    [-1.0  1.0 -0.9 -1.0 -0.9 -0.3]
    [ 1.0  0.5  0.6  1.0  0.9 -0.8]
    [ 1.0 -1.0  1.0  1.0 -0.4 -1.0]
    [ 1.0  1.0  0.5  1.0  0.6  0.5]
    erases-1
    [ 0.1  0.3  0.0  0.4  0.0  0.4]
    [ 0.9  0.7  0.1  0.8  0.4  0.7]
    [ 0.0  0.6  0.0  0.0  0.0  0.8]
    [ 0.0  0.9  0.0  0.0  0.0  0.7]
    [ 0.2  0.2  0.8  0.0  0.9  0.1]
    [ 0.0  0.1  0.1  0.0  0.2  0.9]
    [ 1.0  0.9  1.0  1.0  1.0  0.1]

Note that the NTM correctly sorts the example sequence.

In general, the model will fail to sort properly if the priorities are too close together.
This supports the hypothsis put forward in the paper, which is that the location of the writes is determined by the priorities, and that at read time the NTM simply linearly traverses the memory.

However, if this were all that was going on, it seems the model ought to converge examples this size using just one head, and I wasn't able to get it to converge on this task without using 2 heads. Moreover, the memory access patterns above don't exactly align with that interpretation.

#### Miscellaneous Notes

* The controller is just a single FF layer with a tanh activation. All heads take input straight from the output of the controller layer. I couple the number of read heads and write heads. If you pass --heads=8 to the model, there will be 8 read and 8 write heads. As mentioned in the paper, the order of the reads/writes doesn't matter.

* Restricting the range of allowed integer shifts to [-1,0,1] seems totally essential for length-generalization in the copy task. It's possible that this restriction (which currently I've hardcoded into the model), is harming performance on some of the other tasks.

* Gradients are clipped to (-10,10), as advised in the paper.

* The initial state of the memory and the initial state of the last read, the last write weight, and the last read weight are actually learnable parameters of the model, randomly intialized as are the rest of the weights. This modification greatly improved training performance.

* The initialization is currently suboptimal. Where multiple inputs feed into an activation, we should be concatenating the weight vectors that generate those inputs before intializing. Fixing this is high on my todo-list, as I expect it's seriously holding back multi-head performance.

* Performance of the code is poor. The focus of this project is on providing a reliable, deterministic reference implementation, so I'm not going to put a huge amount of effort into speeding up this code. That being said, I'm sure some of the stuff I'm doing is clearly (to some people) ridiculous from a performance perspective - please tell me if you see anything like this.

* It seems that starting with shorter sequences and gradually increasing sequence length as training error falls speeds up convergence, but so far it's been my experience that the NTM will converge if you just let it train for long enough.

* You might see negative BPC because of the way I clip the loss to avoid log(0).


================================================
FILE: ntm/__init__.py
================================================


================================================
FILE: ntm/addressing.py
================================================
"""
This module implements addressing as described in the paper.
It's basically a python version of figure 2.
"""
import autograd.numpy as np

def cosine_sim(a_t, b_t):
    """
    Computes the cosine similarity of vectors a and b.
    Specifically \frac{u \cdot v}{||u|| \cdot ||v||}.
    """
    # numerator is the inner product
    num = np.dot(a_t, b_t)

    # denominator is the product of the norms
    anorm = np.sqrt(np.sum(a_t*a_t))
    bnorm = np.sqrt(np.sum(b_t*b_t))
    den2 = (anorm * bnorm) + 1e-20

    return num / den2

def content_focus(k_t, b_t, mem):
    """
    The content-addressing method described in 3.3.1.
    Specifically, this is equations (5) and (6).
    k_t is the similarity key vector.
    b_t is the similarity key strength.
    memObject is a ref to our NTM memory object.
    """
    def K(u):
        """
        Given the key vector k_t, compute our sim
        function between k_t and u and exponentiate.
        """
        return np.exp(b_t * cosine_sim(u, k_t))

    # Apply above function to every row in the matrix
    # This is surely much slower than it needs to be
    l = []
    for row in mem:
        l.append(K(row)[0])

    # Return the normalized similarity weights
    # This is essentially a softmax over the similarities
        # with an extra degree of freedom parametrized by b_t
    sims = np.array(l)

    n = sims
    d = np.sum(sims)
    return n/d

def shift(w_gt, s_t):
    """
    Perform the shifting operation as described in equation 8 from the paper.
    """

    # This function could be more performant.
    N = w_gt.size

    backward = [1, 0, 0]
    same     = [0, 1, 0]
    forward  = [0, 0, 1]
    null     = [0, 0, 0]

    restrictionList = []
    for i in range(0, N):
        if i == 0:
            restrictionList.append(backward)
        elif i == 1:
            restrictionList.append(same)
        elif i == N-1:
            restrictionList.append(forward)
        else:
            restrictionList.append(null)

    rT = np.array(restrictionList)

    if N >= 3:
        s_t = np.dot(rT, s_t)

    sums = []
    for i in range(N):
        sums.append(0)
        for j in range(N):
            sums[i] += w_gt[j] * s_t[(i - j) % N]

    return np.array(sums)

def location_focus(g_t, s_t, gamma_t, w_old, w_content):
    """
    The location-addressing method described in 3.3.2.
    Specifically, this is equations (7), (8), and (9).
    g_t is the interpolation gate and it lies in (0,1).
    s_t is the shift weight vector:
        The shift weight vector is of length V, where V is the number
        of allowed integer shifts. e.g. if we allow shifts 0,1, and -1
        (which are computed modulo N and so can be though of as 0,1,2)
        then our shift vector lies in R^3, has non-negative entries,
        and sums to 1. If you wanted to encode a matrix down-shift of 1 row,
        you would pass [0,1,0] here. [1,0,0] corresponds to no shift.
    gamma_t \geq 1 is is sharpening scalar.
    w_old is the weight used by this head for the last time step.
    w_content is the weight generated by the content addressing mechanism
        at the current time step, t.
    """
    # Use the interpolation gate to smooth between old and new weights.
    w_gt = g_t * w_content + (1-g_t) * w_old

    # convolve w_gt with s_t to get shifted weights
    w_tp = shift(w_gt, s_t)

    # Take every element of the weight vector to the gamma_t-th power.
    # pows = w_tp ** gamma_t

    # Normalize that vector by its sum.
    # w_t = pows / np.sum(pows)

    # return w_t
    # w_gt is unchanged through all this - i checked (shouldn't have to though)
    return w_tp, w_gt

def create_weights(k_t, b_t, g_t, s_t, gamma_t, w_old, mem):
    """
    Convenience function to be called from NTM fprop.
    """
    w_content = content_focus(k_t, b_t, mem)
    w_tp, w_gt = location_focus(g_t, s_t, gamma_t, w_old, w_content)
    return w_tp, w_gt, w_content


================================================
FILE: ntm/memory.py
================================================
"""
Implements functions for reading and writing from and to the memory bank
via weight vectors as in section 3.
"""

import autograd.numpy as np

def read(mem, weight_vector):
    """
    The reading procedure as described in 3.1.
    weight_vector (w_t below) is a weighting over the rows such that:
        1. \sum_i w_t(i) = 1
        2. 0 \leq w_t(i) \leq 1, \forall i
    We return \sum_i w_t(i) M_t(i); M_t(i) is the i-th row of memory.
    """

    return np.dot(weight_vector.T, mem)

def write(mem, w_t, e_t, a_t):
    """
    The writing procedure as described in 3.2.
    w_t is a length N weighting over the rows as above.
    e_t (the erase vector) is length M with elements all in (0,1).
    a_t (the add vector) is length M with no such restrictions.
    We first multiply the memory matrix pointwise by [1-w_t(i)e_t]
    Then we do M_t(i) <- w_t(i)a_t.
    According to the paper, the erase/add decomposition was
        inspired by the forget/input gates in LSTM.
    """
    # Perform erasure on the existing memory, parametrized by e_t and w_t
    W = np.reshape(w_t, (w_t.shape[0], 1))
    E = np.reshape(e_t, (e_t.shape[0], 1))

    # Transpose W so we can create WTE, a matrix whose i,j-th element
        # represents the extent to which we will erase M_t[i,j]
    WTE = np.dot(W, E.T)

    # KEEP is such that KEEP[i,j] represents the extent to which we
        # will keep M_t[i,j]
    KEEP = np.ones(mem.shape) - WTE

    # To complete erasure, multiply memory pointwise by KEEP
    newmem = np.multiply(mem, KEEP)

    # Perform addition on the newly erased memory
    # Convert add vector to a matrix
    A = np.reshape(a_t, (a_t.shape[0], 1))

    # Add is the add vector weighted by w_t, which is added pointwise to
        # the existing memory, finishing the write sequence.
    ADD = np.dot(W, A.T)
    newmem = newmem + ADD

    return newmem


================================================
FILE: ntm/new_cos.py
================================================
import math
import autograd.numpy as np
from autograd import grad
import memory
import addressing
import sys

"""
Testing our hand-computed derivatives for cosine sim

cos_sim(u,k) where k is the similarity key and u is an elt of the matrix
we want the grad of cosine sim w.r.t an element of u, though grad
w.r.t. an element of k is computed the same regardless of which elt of k,
and actually it is the same for u as well, since cos_sim is symmetric about
its arguments
"""

def cosine_sim(a_t, b_t):
    """
    Computes the cosine similarity of vectors a and b.
    Specifically \frac{u \cdot v}{||u|| \cdot ||v||}.
    """
    # numerator is the inner product
    num = np.dot(a_t, b_t)

    # denominator is the product of the norms
    anorm = np.sqrt(np.sum(a_t*a_t))
    bnorm = np.sqrt(np.sum(b_t*b_t))
    den2 = (anorm * bnorm) + 1e-5

    return num / den2

if __name__ == "__main__":
    M = 5
    u = np.random.uniform(high=1, low=-1, size=(M,))
    v = np.random.uniform(high=1, low=-1, size=(M,))
    print cosine_sim(u,v)

    # compute deltas automatically
    # just with respect to u
    cs_grad = grad(cosine_sim, argnum=0)
    auto_deltas = cs_grad(u,v)

    # compute deltas manually
    manual_deltas = np.zeros_like(auto_deltas)

    # compute the denominator
    anorm = np.sqrt(np.sum(u*u))
    bnorm = np.sqrt(np.sum(v*v))
    den2 = (anorm * bnorm) + 1e-5

    a = v / den2
    b = u / np.sum(np.square(u))
    c = cosine_sim(u,v)
    manual_deltas = a - b*c
    

    print "auto deltas"
    print auto_deltas
    print "manual deltas"
    print manual_deltas

    """
    manual_deltas gives us dk_i / dK_j
    """



================================================
FILE: ntm/newmem.py
================================================
import math
import autograd.numpy as np
from autograd import grad
import memory
import addressing
import sys

"""
Testing our hand-computed derivatives

compute the grad of the Ks w.r.t. each of the outputs of the softmax
"""

def softmax_0(Ks):
    return np.exp(Ks[0]) / np.sum(np.exp(Ks))


if __name__ == "__main__":
    length = 5
    Ks = np.random.uniform(high=1, low=-1, size=(length,1))
    print softmax_0(Ks)

    # compute deltas automatically
    sm_grad = grad(softmax_0)
    auto_deltas = sm_grad(Ks)
    # compute the deltas manually
    manual_deltas = np.zeros_like(auto_deltas)

    this_i = 0
    for j in range(length):
        if j == this_i:
            num = np.exp(Ks[this_i]) * (np.sum(np.exp(Ks)) - np.exp(Ks[this_i]))
        else:
            num = -np.exp(Ks[this_i] + Ks[j])
        den1 = np.sum(np.exp(Ks))
        manual_deltas[j] = num / (den1 * den1)

    print "auto deltas"
    print auto_deltas
    print "manual deltas"
    print manual_deltas


================================================
FILE: ntm/ntm.py
================================================
"""
This module implements a neural turing machine.
"""
import math
import autograd.numpy as np
from autograd import grad, jacobian
from util.util import rando, sigmoid, softmax, softplus, unwrap, sigmoid_prime, tanh_prime, compare_deltas, dKdu, softmax_grads, beta_grads, K_focus
import memory
import addressing
from addressing import cosine_sim, shift
import sys

class NTM(object):
  """
  NTM with a single-layer feed-forward controller, using autodiff
  """

  def __init__(self, in_size, out_size, hidden_size, N, M, vec_size):

    self.N = N  # the number of memory locations
    self.M = M # the number of columns in a memory location
    self.out_size = out_size
    self.vec_size = vec_size
    shift_width = min(3,self.N) # seems necessary for generalization

    self.stats = None

    self.W = {} # maps parameter names to tensors

    # non-head parameters
    self.W['xh'] = rando(hidden_size, in_size)
    self.W['ho'] = rando(hidden_size, hidden_size)
    self.W['oy'] = rando(out_size, hidden_size)
    self.W['bh']  = rando(hidden_size, 1)
    self.W['by']  = rando(out_size, 1)
    self.W['bo']  = rando(hidden_size, 1)

    # weights from last read head output to hidden layer
    self.W['rh'] = rando(hidden_size, self.M)

    # weights
    self.W['ok_r'] = rando(self.M,hidden_size)
    self.W['ok_w'] = rando(self.M,hidden_size)

    self.W['obeta_r'] = rando(1,hidden_size)
    self.W['obeta_w'] = rando(1,hidden_size)

    # the interpolation gate is a scalar
    self.W['og_r'] = rando(1,hidden_size)
    self.W['og_w'] = rando(1,hidden_size)

    self.W['os_r'] = rando(shift_width,hidden_size)
    self.W['os_w'] = rando(shift_width,hidden_size)

    # gamma is also a scalar
    self.W['ogamma_r'] = rando(1,hidden_size)
    self.W['ogamma_w'] = rando(1,hidden_size)

    self.W['oadds']   = rando(self.M,hidden_size)
    self.W['oerases'] = rando(self.M,hidden_size)

    # biases
    self.W['bk_r'] = rando(self.M,1)
    self.W['bk_w'] = rando(self.M,1)

    self.W['bbeta_r'] = rando(1,1)
    self.W['bbeta_w'] = rando(1,1)

    self.W['bg_r'] = rando(1,1)
    self.W['bg_w'] = rando(1,1)

    self.W['bs_r'] = rando(shift_width,1)
    self.W['bs_w'] = rando(shift_width,1)

    self.W['bgamma_r'] = rando(1,1)
    self.W['bgamma_w'] = rando(1,1)

    self.W['badds']  = rando(self.M,1)
    self.W['berases'] = rando(self.M,1)

    # parameters specifying initial conditions
    self.W['rsInit'] = np.random.uniform(-1,1,(self.M,1))
    self.W['w_wsInit'] = np.random.randn(self.N,1)*0.01
    self.W['w_rsInit'] = np.random.randn(self.N,1)*0.01

    # initial condition of the memory
    self.W['memsInit'] = np.random.randn(self.N,self.M)*0.01

  def lossFun(self, inputs, targets, manual_grad=False):
    """
    Returns the loss given an inputs,targets tuple
    """

    def fprop(params):
      """
      Forward pass of the NTM.
      """

      W = params # aliasing for brevity

      xs, zhs, hs, ys, ps, ts, zos, os = {}, {}, {}, {}, {}, {}, {}, {}

      def l():
        """
        Silly utility function that should be called in init.
        """
        return {}

      rs = l()
      zk_rs = l() 
      k_rs, beta_rs, g_rs, s_rs, gamma_rs = l(),l(),l(),l(),l()
      k_ws, beta_ws, g_ws, s_ws, gamma_ws = l(),l(),l(),l(),l()
      adds, erases = l(),l()
      zbeta_rs, zbeta_ws = l(),l()
      zs_rs, zs_ws = l(),l()
      wg_rs, wg_ws = l(),l()
      w_ws, w_rs = l(),l() # read weights and write weights
      wc_ws, wc_rs = l(),l() # read and write content weights
      rs[-1] = self.W['rsInit'] # stores values read from memory
      w_ws[-1] = softmax(self.W['w_wsInit'])
      w_rs[-1] = softmax(self.W['w_rsInit'])

      mems = {} # the state of the memory at every timestep
      mems[-1] = self.W['memsInit']
      loss = 0

      for t in xrange(len(inputs)):

        xs[t] = np.reshape(np.array(inputs[t]),inputs[t].shape[::-1])

        rsum = np.dot(W['rh'], np.reshape(rs[t-1],(self.M,1)))
        zhs[t] = np.dot(W['xh'], xs[t]) + rsum + W['bh']
        hs[t] = np.tanh(zhs[t])

        zos[t] = np.dot(W['ho'], hs[t]) + W['bo']
        os[t] = np.tanh(zos[t])

        # parameters to the read head
        zk_rs[t] =np.dot(W['ok_r'],os[t]) + W['bk_r']
        k_rs[t] = np.tanh(zk_rs[t])
        zbeta_rs[t] = np.dot(W['obeta_r'],os[t]) + W['bbeta_r']
        beta_rs[t] = softplus(zbeta_rs[t])
        g_rs[t] = sigmoid(np.dot(W['og_r'],os[t]) + W['bg_r'])
        zs_rs[t] = np.dot(W['os_r'],os[t]) + W['bs_r']
        s_rs[t] = softmax(zs_rs[t])
        gamma_rs[t] = 1 + sigmoid(np.dot(W['ogamma_r'], os[t])
                                        + W['bgamma_r'])

        # parameters to the write head
        k_ws[t] = np.tanh(np.dot(W['ok_w'],os[t]) + W['bk_w'])
        zbeta_ws[t] = np.dot(W['obeta_w'],os[t]) + W['bbeta_w']
        beta_ws[t] = softplus(zbeta_ws[t])
        g_ws[t] = sigmoid(np.dot(W['og_w'],os[t]) + W['bg_w'])
        zs_ws[t] = np.dot(W['os_w'],os[t]) + W['bs_w']
        s_ws[t] = softmax(zs_ws[t])
        gamma_ws[t] = 1 + sigmoid(np.dot(W['ogamma_w'], os[t])
                                        + W['bgamma_w'])

        # the erase and add vectors
        # these are also parameters to the write head
        # but they describe "what" is to be written rather than "where"
        adds[t] = np.tanh(np.dot(W['oadds'], os[t]) + W['badds'])
        erases[t] = sigmoid(np.dot(W['oerases'], os[t]) + W['berases'])

        w_ws[t], wg_ws[t], wc_ws[t] = addressing.create_weights(   k_ws[t]
                                                , beta_ws[t]
                                                , g_ws[t]
                                                , s_ws[t]
                                                , gamma_ws[t]
                                                , w_ws[t-1]
                                                , mems[t-1])

        w_rs[t], wg_rs[t], wc_rs[t] = addressing.create_weights(   k_rs[t]
                                                , beta_rs[t]
                                                , g_rs[t]
                                                , s_rs[t]
                                                , gamma_rs[t]
                                                , w_rs[t-1]
                                                , mems[t-1])

        ys[t] = np.dot(W['oy'], os[t]) + W['by']
        ps[t] = sigmoid(ys[t])

        one = np.ones(ps[t].shape)
        ts[t] = np.reshape(np.array(targets[t]),(self.out_size,1))

        epsilon = 2**-23 # to prevent log(0)
        a = np.multiply(ts[t] , np.log(ps[t] + epsilon))
        b = np.multiply(one - ts[t], np.log(one-ps[t] + epsilon))
        loss = loss - (a + b)

        # read from the memory
        rs[t] = memory.read(mems[t-1],w_rs[t])

        # write into the memory
        mems[t] = memory.write(mems[t-1],w_ws[t],erases[t],adds[t])

      self.stats = [loss, mems, ps, ys, os, zos, hs, zhs, xs, rs, w_rs,
                    w_ws, adds, erases, k_rs, k_ws, g_rs, g_ws, wc_rs, wc_ws,
                    zbeta_rs, zbeta_ws, zs_rs, zs_ws, wg_rs, wg_ws]
      return np.sum(loss)

    def manual_grads(params):
      """
      Compute the gradient of the loss WRT the parameters
      Ordering of the operations is reverse of that in fprop()
      """
      deltas = {}
      for key, val in params.iteritems():
        deltas[key] = np.zeros_like(val)

      [loss, mems, ps, ys, os, zos, hs, zhs, xs, rs, w_rs,
       w_ws, adds, erases, k_rs, k_ws, g_rs, g_ws, wc_rs, wc_ws,
       zbeta_rs, zbeta_ws, zs_rs, zs_ws, wg_rs, wg_ws] = self.stats
      dd = {}
      drs = {}
      dzh = {}
      dmem = {} # might not need this, since we have dmemtilde
      dmemtilde = {}
      du_r = {}
      du_w = {}
      dwg_r = {}
      dwg_w = {}
      for t in reversed(xrange(len(targets))):

        dy = np.copy(ps[t])
        dy -= targets[t].T # backprop into y

        deltas['oy'] += np.dot(dy, os[t].T)
        deltas['by'] += dy

        if t < len(targets) - 1:
          # r[t] affects cost through zh[t+1] via Wrh
          drs[t] = np.dot(self.W['rh'].T, dzh[t + 1])

          # right now, mems[t] influences cost through rs[t+1], via w_rs[t+1]
          dmem[t] = np.dot( w_rs[t + 1], drs[t + 1].reshape((self.M,1)).T )
          # and also through mems at next step
          W = np.reshape(w_ws[t+1], (w_ws[t+1].shape[0], 1))
          E = np.reshape(erases[t+1], (erases[t+1].shape[0], 1))
          WTE = np.dot(W, E.T)
          KEEP = np.ones(mems[0].shape) - WTE
          dmem[t] += np.multiply(dmemtilde[t+1], KEEP)
          # and also through its influence on the content weighting next step
          dmem[t] += du_r[t+1] + du_w[t+1]

          dmemtilde[t] = dmem[t]

          # erases[t] affects cost through mems[t], via w_ws[t]
          derase = np.dot(np.multiply(dmemtilde[t], -mems[t-1]).T, w_ws[t])

          # zerase affects just erases through a sigmoid
          dzerase = derase * (erases[t] * (1 - erases[t]))

          # adds[t] affects costs through mems[t], via w_ws
          dadd = np.dot(dmem[t].T, w_ws[t])

          # zadds affects just adds through a tanh
          dzadd = dadd * (1 - adds[t] * adds[t])

          # dbadds is just dzadds
          deltas['badds'] += dzadd

          deltas['oadds'] += np.dot(dzadd, os[t].T)

          deltas['berases'] += dzerase

          deltas['oerases'] += np.dot(dzerase, os[t].T)

          # # read weights affect what is read, via what's in mems[t-1]
          # dwc_r = np.dot(mems[t-1], drs[t])

          # # write weights affect mem[t] through adding
          # dwc_w = np.dot(dmem[t], adds[t])
          # # they also affect memtilde[t] through erasing
          # dwc_w += np.dot(np.multiply(dmemtilde[t], -mems[t-1]), erases[t])

          dw_r = np.dot(mems[t-1], drs[t])
          dw_r += dwg_r[t+1] * (1 - g_rs[t+1])

          # write weights affect mem[t] through adding
          dw_w = np.dot(dmem[t], adds[t])
          # they also affect memtilde[t] through erasing
          dw_w += np.dot(np.multiply(dmemtilde[t], -mems[t-1]), erases[t])
          dw_w += dwg_w[t+1] * (1 - g_ws[t+1])

          sgwr = np.zeros((self.N, self.N))
          sgww = np.zeros((self.N, self.N))
          for i in range(self.N):
            sgwr[i,i] = softmax(zs_rs[t])[0]
            sgwr[i,(i+1) % self.N] = softmax(zs_rs[t])[2]
            sgwr[i,(i-1) % self.N] = softmax(zs_rs[t])[1]

            sgww[i,i] = softmax(zs_ws[t])[0]
            sgww[i,(i+1) % self.N] = softmax(zs_ws[t])[2]
            sgww[i,(i-1) % self.N] = softmax(zs_ws[t])[1]

          # right now, shifted weights are final weight
          dws_r = dw_r
          dws_w = dw_w

          dwg_r[t] = np.dot(sgwr.T, dws_r)
          dwg_w[t] = np.dot(sgww.T, dws_w)

          dwc_r = dwg_r[t] * g_rs[t]
          dwc_w = dwg_w[t] * g_ws[t]


          """
          We need dw/dK
          now w has N elts and K has N elts
          and we want, for every elt of W, the grad of that elt w.r.t. each
          of the N elts of K. that gives us N * N things
          """
          # first, we must build up the K values (should be taken from fprop)
          K_rs = []
          K_ws = []
          for i in range(self.N):
            K_rs.append(cosine_sim(mems[t-1][i, :], k_rs[t]))
            K_ws.append(cosine_sim(mems[t-1][i, :], k_ws[t]))

          # then, we populate the grads
          dwdK_r = np.zeros((self.N, self.N))
          dwdK_w = np.zeros((self.N, self.N))
          # for every row in the memory
          for i in range(self.N):
            # for every element in the weighting
            for j in range(self.N):
              dwdK_r[i,j] += softmax_grads(K_rs, softplus(zbeta_rs[t]), i, j)
              dwdK_w[i,j] += softmax_grads(K_ws, softplus(zbeta_ws[t]), i, j)

          # compute dK for all i in N
          # K is the evaluated cosine similarity for the i-th row of mem matrix
          dK_r = np.zeros_like(w_rs[0])
          dK_w = np.zeros_like(w_ws[0])

          # for all i in N (for every row that we've simmed)
          for i in range(self.N):
            # for every j in N (for every elt of the weighting)
            for j in range(self.N):
              # specifically, dwdK_r will change, and for write as well
              dK_r[i] += dwc_r[j] * dwdK_r[i,j] 
              dK_w[i] += dwc_w[j] * dwdK_w[i,j]

          """
          dK_r_dk_rs is a list of N things
          each elt of the list corresponds to grads of K_idx
          w.r.t. the key k_t
          so it should be a length N list of M by 1 vectors
          """

          dK_r_dk_rs = []
          dK_r_dmem = []
          for i in range(self.N):
            # let k_rs be u, Mem[i] be v
            u = np.reshape(k_rs[t], (self.M,))
            v = mems[t-1][i, :]
            dK_r_dk_rs.append( dKdu(u,v) )
            dK_r_dmem.append( dKdu(v,u))

          dK_w_dk_ws = []
          dK_w_dmem = []
          for i in range(self.N):
            # let k_ws be u, Mem[i] be v
            u = np.reshape(k_ws[t], (self.M,))
            v = mems[t-1][i, :]
            dK_w_dk_ws.append( dKdu(u,v) )
            dK_w_dmem.append( dKdu(v,u))

          # compute delta for keys
          dk_r = np.zeros_like(k_rs[0])
          dk_w = np.zeros_like(k_ws[0])
          # for every one of M elt of dk_r
          for i in range(self.M):
            # for every one of the N Ks
            for j in range(self.N):
              # add delta K_r[j] * dK_r[j] / dk_r[i]
              # add influence on through K_r[j]
              dk_r[i] += dK_r[j] * dK_r_dk_rs[j][i]
              dk_w[i] += dK_w[j] * dK_w_dk_ws[j][i]

          # these represent influence of mem on next K
          """
          Let's let du_r[t] represent the
          influence of mems[t-1] on the cost through the K values
          this is analogous to dk_w, but, k only every affects that
          whereas mems[t-1] will also affect what is read at time t+1
          and through memtilde at time t+1
          """
          du_r[t] = np.zeros_like(mems[0])
          du_w[t] = np.zeros_like(mems[0])
          # for every row in mems[t-1]
          for i in range(self.N):
            # for every elt of this row (one of M)
            for j in range(self.M):
              du_r[t][i,j] = dK_r[i] * dK_r_dmem[i][j]
              du_w[t][i,j] = dK_w[i] * dK_w_dmem[i][j]

          # key values are activated as tanh
          dzk_r = dk_r * (1 - k_rs[t] * k_rs[t])
          dzk_w = dk_w * (1 - k_ws[t] * k_ws[t])

          deltas['ok_r'] += np.dot(dzk_r, os[t].T)
          deltas['ok_w'] += np.dot(dzk_w, os[t].T)

          deltas['bk_r'] += dzk_r
          deltas['bk_w'] += dzk_w

          dg_r = np.dot(dwg_r[t].T, (wc_rs[t] - w_rs[t-1]) )
          dg_w = np.dot(dwg_w[t].T, (wc_ws[t] - w_ws[t-1]) )

          # compute dzg_r, dzg_w
          dzg_r = dg_r * (g_rs[t] * (1 - g_rs[t]))
          dzg_w = dg_w * (g_ws[t] * (1 - g_ws[t]))

          deltas['og_r'] += np.dot(dzg_r, os[t].T)
          deltas['og_w'] += np.dot(dzg_w, os[t].T)

          deltas['bg_r'] += dzg_r
          deltas['bg_w'] += dzg_w

          # compute dbeta, which affects w_content through interaction with Ks

          dwcdbeta_r = np.zeros_like(w_rs[0])
          dwcdbeta_w = np.zeros_like(w_ws[0])
          for i in range(self.N):
            dwcdbeta_r[i] = beta_grads(K_rs, softplus(zbeta_rs[t]), i)
            dwcdbeta_w[i] = beta_grads(K_ws, softplus(zbeta_ws[t]), i)

          dbeta_r = np.zeros_like(zbeta_rs[0])
          dbeta_w = np.zeros_like(zbeta_ws[0])
          for i in range(self.N):
            dbeta_r[0] += dwc_r[i] * dwcdbeta_r[i]
            dbeta_w[0] += dwc_w[i] * dwcdbeta_w[i]

          # beta is activated from zbeta by softplus, grad of which is sigmoid
          dzbeta_r = dbeta_r * sigmoid(zbeta_rs[t])
          dzbeta_w = dbeta_w * sigmoid(zbeta_ws[t])

          deltas['obeta_r'] += np.dot(dzbeta_r, os[t].T)
          deltas['obeta_w'] += np.dot(dzbeta_w, os[t].T)

          deltas['bbeta_r'] += dzbeta_r
          deltas['bbeta_w'] += dzbeta_w

          sgsr = np.zeros((self.N, 3))
          sgsw = np.zeros((self.N, 3))
          for i in range(self.N):
            sgsr[i,1] = wg_rs[t][(i - 1) % self.N]
            sgsr[i,0] = wg_rs[t][i]
            sgsr[i,2] = wg_rs[t][(i + 1) % self.N]

            sgsw[i,1] = wg_ws[t][(i - 1) % self.N]
            sgsw[i,0] = wg_ws[t][i]
            sgsw[i,2] = wg_ws[t][(i + 1) % self.N]

          ds_r = np.dot(sgsr.T, dws_r)
          ds_w = np.dot(sgsw.T, dws_w)

          shift_act_jac_r = np.zeros((3,3))
          shift_act_jac_w = np.zeros((3,3))
          bf = np.array([[1.0]])
          for i in range(3):
            for j in range(3):
              shift_act_jac_r[i,j] = softmax_grads(zs_rs[t], bf, i, j)
              shift_act_jac_w[i,j] = softmax_grads(zs_ws[t], bf, i, j)

          dzs_r = np.dot(shift_act_jac_r.T, ds_r)
          dzs_w = np.dot(shift_act_jac_w.T, ds_w)

          deltas['os_r'] += np.dot(dzs_r, os[t].T)
          deltas['os_w'] += np.dot(dzs_w, os[t].T)

          deltas['bs_r'] += dzs_r
          deltas['bs_w'] += dzs_w

        else:
          drs[t] = np.zeros_like(rs[0])
          dmemtilde[t] = np.zeros_like(mems[0])
          du_r[t] = np.zeros_like(mems[0])
          du_w[t] = np.zeros_like(mems[0])
          dwg_r[t] = np.zeros_like(w_rs[0])
          dwg_w[t] = np.zeros_like(w_ws[0])

        # o affects y through Woy
        do = np.dot(params['oy'].T, dy)
        if t < len(targets) - 1:
          # and also zadd through Woadds
          do += np.dot(params['oadds'].T, dzadd)
          do += np.dot(params['oerases'].T, dzerase)
          # and also through the keys
          do += np.dot(params['ok_r'].T, dzk_r)
          do += np.dot(params['ok_w'].T, dzk_w)
          # and also through the interpolators
          do += np.dot(params['og_r'].T, dzg_r)
          do += np.dot(params['og_w'].T, dzg_w)
          # and also through beta
          do += np.dot(params['obeta_r'].T, dzbeta_r)
          do += np.dot(params['obeta_w'].T, dzbeta_w)
          # and also through the shift values
          do += np.dot(params['os_r'].T, dzs_r)
          do += np.dot(params['os_w'].T, dzs_w)


        # compute deriv w.r.t. pre-activation of o
        dzo = do * (1 - os[t] * os[t])

        deltas['ho'] += np.dot(dzo, hs[t].T)
        deltas['bo'] += dzo

        # compute hidden dh
        dh = np.dot(params['ho'].T, dzo)

        # compute deriv w.r.t. pre-activation of h
        dzh[t] = dh * (1 - hs[t] * hs[t])

        deltas['xh'] += np.dot(dzh[t], xs[t].T)
        deltas['bh'] += dzh[t]

        # Wrh affects zh via rs[t-1]
        deltas['rh'] += np.dot(dzh[t], rs[t-1].reshape((self.M, 1)).T)

      return deltas

    def bprop(params, manual_grad):
      """
      Compute the gradient of the loss WRT the parameters (W)
      using backward-mode differentiation.
      """
      if manual_grad:
        # compute gradients manually
        fprop(params)
        deltas = manual_grads(params)
        # f = grad(fprop)
        # auto_deltas = f(params)
        # failed_keys = []
        # passed_keys = []
        # for k in auto_deltas.keys():
        #   rval = compare_deltas(baseline=auto_deltas[k], candidate=deltas[k])
        #   if not rval:
        #     print "compare deltas FAILED for key:", k
        #     print "baseline"
        #     print auto_deltas[k]
        #     print "candidate"
        #     print deltas[k]
        #     failed_keys.append(k)
        #   else:
        #     print "compare deltas PASSED for key:", k
        #     print "baseline"
        #     print auto_deltas[k]
        #     print "candidate"
        #     print deltas[k]
        #     passed_keys.append(k)
        # if len(failed_keys) > 0:
        #   print "FAILED KEYS:"
        #   for k in failed_keys:
        #     print k
        #   print "PASSED KEYS:"
        #   for k in passed_keys:
        #     print k
        #   sys.exit(1)
      else:
        # compute gradients automatically
        f = grad(fprop)
        deltas = f(params)
      return deltas

    deltas = bprop(self.W, manual_grad)
    [loss, mems, ps, ys, os, zos, hs, zhs, xs, rs, w_rs,
     w_ws, adds, erases, k_rs, k_ws, g_rs, g_ws, wc_rs, wc_ws,
     zbeta_rs, zbeta_ws, zs_rs, zs_ws, wg_rs, wg_ws] = map(unwrap, self.stats)

    return loss, deltas, ps, w_rs, w_ws, adds, erases


================================================
FILE: run_model.py
================================================
#!/usr/bin/env python

import argparse
import autograd.numpy as np
from util.sequences import SequenceGen
from ntm.ntm import NTM
from util.optimizers import RMSProp
from util.util import gradCheck, serialize, deserialize, visualize
import os
import warnings
import time
import pdb

# Comment next line to remove determinism
np.random.seed(0)

# Uncomment below for debugging numerical issues
# warnings.simplefilter("error")

parser = argparse.ArgumentParser()
parser.add_argument("--model", help="location of the serialized model",
                    default=None)
parser.add_argument("--task", help="the task to train or test on",
                    default='copy')
parser.add_argument("--N", help="the number of memory locations",
                    default=15, type=int)
parser.add_argument("--M", help="the number of cells in a memory location",
                    default=7, type=int)
parser.add_argument("--vec_size", help="width of input vector (the paper uses 8)",
                    default=3, type=int)
parser.add_argument("--hi", help="upper bound on seq length",
                    default=3, type=int)
parser.add_argument("--lo", help="lower bound on seq length",
                    default=1, type=int)
parser.add_argument("--units", help="number of hidden units",
                    default=100, type=int)
parser.add_argument("--lr_rate", help="maybe halve learning rate at this interval",
                    default=None, type=int)
parser.add_argument("--serialize_freq", help="serialize every <this many sequences>",
                    default=100, type=int)
parser.add_argument("--log_freq", help="how often to log diagnostic information",
                    default=100, type=int)
parser.add_argument("--serialize_to", help="where to save models",
                    default=None)
parser.add_argument('--test_mode', dest='test_mode', action='store_true')
parser.add_argument('--grad_check', dest='grad_check', action='store_true')
parser.add_argument('--manual_grad', dest='manual_grad', action='store_true')
parser.set_defaults(test_mode=False)
parser.set_defaults(grad_check=False)
parser.set_defaults(manual_grad=False)
args = parser.parse_args()

# create directory for serializations if necessary
if args.serialize_to is not None:
  print "Serializing to:", args.serialize_to
  try:
    os.mkdir(args.serialize_to)
  except OSError:
    pass

# if we use lr schedule, we need to keep track of errors over time
if args.lr_rate is not None:
  print "Using lr schedule rate of:", args.lr_rate
  errors = {}
  error_sum = 0

# deserialize saved model if path given
if args.model is None:
  # If not using a saved model, initialize from params
  vec_size = args.vec_size
  seq = SequenceGen(args.task, vec_size, args.hi, args.lo)
  hidden_size = args.units # Size of hidden layer of neurons
  N = args.N # number of memory locations
  M = args.M # size of a memory location
  model = NTM(seq.in_size, seq.out_size, hidden_size, N, M, vec_size)
else:
  # otherwise, load the model from specified file
  print "Using saved model:", args.model
  model = deserialize(args.model)
  vec_size = model.vec_size # vec size comes from model
  seq = SequenceGen(args.task, vec_size, args.hi, args.lo)

# An object that keeps the optimizer state during training
optimizer = RMSProp(model.W)

n = 0 # counts the number of sequences trained on
bpc = None # keeps track of trailing bpc (cost)

while n < 10000:

  i, t, seq_len = seq.make()
  inputs = np.matrix(i)
  targets = np.matrix(t)

  loss, deltas, outputs, r, w, a, e = model.lossFun(inputs, targets, args.manual_grad)

  newbpc = np.sum(loss) / ((seq_len*2 + 2) * vec_size)
  if bpc is not None:
    bpc = 0.99 * bpc + 0.01 * newbpc
  else:
    bpc = newbpc

  # sometimes print out diagnostic info
  if ((n % args.log_freq) == 0) or args.test_mode:
    print 'iter %d' % (n)
    visualize(inputs, outputs, r, w, a, e)

    # log ratio of delta l2 norm to weight l2 norm
    print "update/weight ratios:"
    for k in model.W.keys():
      print k + ": " + str(optimizer.qs[k])

    print "trailing bpc estimate: ", bpc
    print "this bpc: ", newbpc

  # maybe serialize
  if (args.serialize_to is not None) and (n % args.serialize_freq) == 0:
    ts = time.strftime("%Y-%m-%d-%h-%m-%s")
    filename = args.serialize_to + '/params_n-' + str(n) + '_' + ts + '.pkl'
    serialize(filename,model)

  if args.grad_check:
    # Check weights using finite differences
    check = gradCheck(model, deltas, inputs, targets, 1e-5, 1e-7)
    print "PASS DIFF CHECK?: ", check

  if not args.test_mode:
    # optionally halve the learning rate if error has not gone down
    if args.lr_rate is not None:
      error_sum += newbpc
      if n % args.lr_rate == 0:
        errors[n] = error_sum
        error_sum = 0
        if n > args.lr_rate: # don't do this for the first "epoch"
          if errors[n] > errors[n - args.lr_rate]:
            print "halving learning rate!"
            optimizer.lr /= 2
            print "learning rate is now:", optimizer.lr 

    optimizer.update_weights(model.W, deltas)

  n += 1


================================================
FILE: saved_models/associative_recall.pkl
================================================
ccopy_reg
_reconstructor
p0
(cntm.ntm
NTM
p1
c__builtin__
object
p2
Ntp3
Rp4
(dp5
S'heads'
p6
I2
sS'M'
p7
I15
sS'N'
p8
I15
sS'vec_size'
p9
I3
sS'W'
p10
(dp11
S'xh'
p12
cnumpy.core.multiarray
_reconstruct
p13
(cnumpy
ndarray
p14
(I0
tp15
S'b'
p16
tp17
Rp18
(I1
(I100
I5
tp19
cnumpy
dtype
p20
(S'f8'
p21
I0
I1
tp22
Rp23
(I3
S'<'
p24
NNNI-1
I-1
I0
tp25
bI00
S'\x96GPQ\x12\x08\xbe?\xf4\xb1\xe6\x08.\xe0\xa0?\xae\xf0T{\x08\xc4\xe0\xbf\xf7l\xa9q\xc4\xa4\xd3\xbf\x9f\x9f\x9a\xfb\xc2g\xdc\xbf\xe1A\xfb\x91\x12\xe8\xbc?\xb0\xe9:\x93xw\xda?\xf2\x84\x82\xdaW\xb4\xe2?MsF\x06\xa2\xe4\xdd?\xb5 \x930P\\\xa4?\xb5\x96\xa68K\xc1\xe0?=yn\xe5\xc57\xc4\xbf\xf5\xc2\xfc\xaav\xda\xa7\xbf\x05\xe4\xd9-\x92\x0f\xe4?^\xcb\xf7\x97\xdfJ\xd9\xbf\xd1g\xe2\xf7\x11Y\xe6\xbf=\x02\x03\xc3\x8b)\xdb\xbf\xf3\x8cj4\x0cl\xb0?S<%rW;\xdd?\x16\xb5\x14\xe2\x0f\x81\xe7?\x8f\xa1f(\x15f\xd6?\xf3[\x10a\xae\xb2\xa3?\xac\xc0P\x83\x15\xab\xb5\xbfze\x84\xcd\xe8\xa7\xde?\xe0\xd9-\x1a\xd2\xe6\x9a?.\x05L\xa0\x0fX\xb3\xbf\xf0\x18\x88\xf0\x0b\xcb\xdc\xbf-@\xa7\x96ck\xdd?X\xd6A-\x90\x88\xb5\xbf\xb6Fx\x95q%\xda?xt\n\x17W)\xaf?\xa1\xcd\xe7\x12\xb2\x97\xde?\xceyq\xfb_\n\xb9?\x0e7;\xf2*+\xd5?\xd014\x0e\xc1\x1d\xe1\xbf\xac\'\xd7"\x84\xcb\xd7\xbf\x95l\x04\xae\xdb\xf7\xc1\xbf,\xd0dmI\xa1\xb8?\xe2l\x0e\x88\x8bw\xe3?\xae[,2N\xb9\xd9?\xe4a\x8f\xbe\'\x01\xb4?\xbct\xb3\x82\x83R\xcb\xbf\x03\xf32\xc7\x80Z\xd3?\x8a\xe7y\xee\xd5\xb9\xd2\xbf\t`\xd6g\x96+\xe8?\x15\xcb-b\x84\xf4\xcf?\x1a\xf3\x18\xb3\r\xe5\x99?]\x890\x17\xc9\xb5\xda\xbf\xb1*\xeeLg\x87\xcd\xbf\x05\xd1p\xdd\xda\xf6\xc1\xbf\xce\x1c\x1f\xb3\x90#\xb5\xbf\xb3\x1b|\x86*\x9e\xdf\xbf\xf3\x03\x99\xac?\xd6\xd8?(d\x86 !p\xbf?\xcc|\xd6\xb3;\x1d\xdd\xbf@b\xe0\xb0\xd7\xf3\xd1\xbf*\x0b\x89\x0c\xca\xe1\xcb\xbfKK\x97\x11\xf3\x16\xd6\xbfT\xb4\xc6\xbaSc\x92?\x82\xaf!N\xd6C\xe1\xbf\xcfzb\xcb\x8bw\xdb\xbf\\\xa4FxmR\xd3\xbf\xaef\x9c\x1bY2\x9c?;sZ\xe2PH\xe2\xbf[:\x0f\xd4\xbf[\xb0\xbftw\xbb\xd9\x83\x0c\xc9?0~\xcc\xb4\\\x8d\xd7?v\x80\xc4\x0e\xf6\xa9\xdf\xbf\xd3z\x8b\xe4\x15%\xe2?\xf2g>\x06\xf9\xdaF\xbf\xc9\x80C\xab9\x0c\xe0?\xdde\x02o\x98\xfd\xc5\xbf\xe9\xf8\x8f\xe7\xc0\x9e\xd0?\xe6\xdf\x99!vE\xcb?\x15\xc1\x15\xb5uj\xd9\xbf\x19\x85)S>P\xcf\xbf\x96d.h!\x1a\xc5\xbf\xf0T\xc8\x86\xf6D\xd0\xbfy\xe30x\xfb\xea\xac?\xabs?\xa7\xe2\xcb\xde\xbf\xd5\xfd\x91\xbb\xe6\x9a\xcf\xbf\xee\xe0(\xfc\xba\xd0\x9f?\xc8/\x1c@\x1cS\xdc\xbf\x18\x81\xd0u.)\xbf?WeO\x1e+\x9b\xe0?\xdf\xea\xfe\xab\xff\x9a\xbd\xbf\x9f\xf3\xacXS\xe3\xc7?\x10\xfb\xcb.8\xca\xd1\xbf"\xf8\xd8\xd4\xacz\xb0\xbf?n\x1a\x81B9\x97?\xae\xc5\x17\xc5lH\xb6\xbf\xb2\xcc\xa3\xf0\xed\x1e\xd6?\x11\xdbG\x87\x9a\xa9\xc7\xbf\'\x181\xc8\xbd\xc6\xbf?\xbfA%a~R\xe4\xbf\x93E\xa7\xd4#R\xc7\xbf\x16\xee\xba\x80\x8dP\xba\xbf\x9c\x1e#\xc2i\x0f\xac\xbf\xbb\xdf\xe1,\xd6\xc7\xe0?\xce\xb1\x11/4\xa5\xe3\xbf\xde\xaa\xc0f\x11K\x9c?S\xfb\xfd,B\xe8\xc4\xbf\xc1\xd3%\x80\xe0\xc5\xc2?\x97ePq\xf1\xa2\xe0?;\xdf\xa0E\xae8\xe8\xbf\xd16\xfe\xb1\x03\x12\xc5\xbf\xf8\x92&\xbfdn\xcd?\x8c\xe5e<\\\xff\xd1\xbf\xb2@\xdf,\x85\x87\xe3\xbf\x0b\xa2Cc/\x17\xde?\xb3\x84D\xa8\xcf*\xc2\xbf\xad\xd5>l>\x19\xc2?-Amy\x0f \xa6\xbf\xc6\xb6m\xf2\x92\xb4\xdb\xbfP\x82B6F\n\xd8?L\xb38RJ\xa0\xdf\xbf\x86U\xcc\xc4\xed\xd9\xd5?\x8c\x875\x1a\x11v\xc5?l\xcd\x88;\xf2(\xd9?o\x8b\x80\nC\xc9\xb4?\xe6\xa5v3\x1d\xb5\xd6?=\xb3\x9b_\xe5?y?\x1d\x8a\xb2\x91\x02^\xc0?\xc1\xa5%b\xb2*\xae?/\xb4\x96\x8dqn\xe6\xbfJ\xdcLA-\xbf\xda?\x93\'\xcb\x03\xc2\xf7\x81?acpveF\xc4\xbfJR-\xbe"\xed\xb7\xbf\x1e\xd9kV\x9f\xa3\xc9?e\xb5E@\x91\xe0\xd3?\xd9\xf3\x9e\x82\xc6\x19\xb8?\x08\x15x\xa8\x14C\xd5\xbf\xff\xfcs\xf4\xd8P\xe7\xbf\xb1\xbc\xe6E*\x1b\xd3?~a\xc4J\x03\x92\xa4?(\xda\xac\xfdnC\xc3\xbf\xf9\x1c\xaa\xf4\x1f\x9f\xdb?\xcbz\nF\xd3\xef\xbe\xbf\xb8\xb0\xceq\xf8\x18\xbd?\x00\x01\xbd"T\n\xda?\x95F\x18\xd7\x18!\xab\xbf\xf0\x05\xfb,\xab\xd5\xca?~\xe2\xc4\x8dbd\xd9?1\xd0H\x9c\xfb\x00\xe0?\xb9\x0e\x06\xc5i\xfd\xd6?8sd\xe3\xae\x0e\xb9?F\xe7\x04u\x06O\xe0?\x8dt^Z\xf2\r\xce?-Z\xd9\x18\xc0L\xe2?\x1e\x83\xfd\xe6\xccm\xd8\xbf(0\xe5e\x82\x01\xc3?\xcf!\x11\xe4\x12\xd6\xd0\xbf\x17\x91\xad[~\xf0\xc3\xbf\xaa8@\x83>\xfa\xf2\xbf/<xq\x92u\xdc?\x9a+\xcd\x80\xdc\xac\xc0?\xba\xa1c\n\x0f\xbe\xc9\xbfvv\xe45\x85\xda\xd5\xbf\x0f\x13\xde\xd3\x0fa\xe5\xbfif\xa8\x86\xc4\x16\xd7?\xb9\xb5\xce \xf9M\xd2?\x08\xb7\xf1\x80\xec}\xdf?\xa5v\x01u\xaet\xc2?\x0bd\x1f\xda\xc2\xeb\xe6?\x17>\n\x0eBw\xc9?&?\x13.\x89\x11\xd3\xbf\x16A\x8dS0D\xd2\xbfyB\xf7\xfb\xd67\xe0?\xb7-, \xeeHq\xbf\'\x05\xaf\xa6\xedw\xbd?\x1d\xa7\x06[\x15\xff\xe6\xbf\xe3\xa2\xd6\xc4\x1d\xe6\xd1\xbf\xfb\xeb\xa8\xf7Y\xcc\xca\xbfBR\x87?2\x06\xe5?i\xb4\x17"$\x13\xe8\xbf`\xaa\xea\x16\x14\xda\xda\xbf\xb2j:\xe3\x03c\xa8?\xc6\xf4c\x00\x95\x9f\xd4?\x8b\xc1!!\xc3\x7f\xe7\xbf\xfd}QG\xd3\xa5\xd0\xbf\xf9\xcf\x1a\xf5\x0f\x0c\x89?\xa8\xb7\xeb\x9bkS\xa0\xbf\xa4\xd2\x93\x84\xbd\xe2\xdc\xbfE\x86\xc6\x0f\x11\xf6\xe6?+-=~\xf4\x99~?\xcc\x8c?h\xbd\xa3|?=\xc8e&\x8ax\xb6\xbf\x87ys\xe87U\xbf?\x081\x9a\xae\x0e\xbe\xea\xbf\x9d|\xf1\xb1\xc5\xe3\xc2?&$\xdej`\xcb\x93\xbf\xf5\xcc\xabXi\r\xdf\xbfL+a\'f@\xe4?\xc7\xee \xe7\x87\xd5\xe0?\xff\x84\xf6\x13-A\xc1?\xd3\x9d\x0f\x9a\x15y\xcd\xbf\xfb9\xcf\xdf\x17\xa3\xa9\xbf\x19\xfc\x1e2=z\xd1\xbf\t\xd4\xddW\xf6J\xe2?75\xc4\xfbZ\xf6\xc4\xbf\xf60/%\x9a\x1d\xca?\xef\x14\xbe(\xdd\x08\xb5\xbf\xb5\xf9\x8b\x11&=\xc4?\xa47\xd4\xa2\x01 \x85?\xe5\xde\x18\xfb^\xb6\xd3\xbf\xa5{WI\xe3c\xc8?Y\xea\xd1\xc8\x94\xf2\xd6\xbf\x7f\xd4\x13\xcc\x96\\\xcd\xbf\xaaA\xa6\xcd4\x9a\xd6?\xd7\xddd[\x87F\xe4?\xbe/\x0b\xd8\x01a\xa1\xbf@\x16\xab\xdeU\xab\xb0? \x10\xde\xe9\xe5\xc4\xce\xbfE,R\xb4\\}\xd3\xbf\x16\x95\xc0\n-N\xce?\xac\xdd\r*\xe8`\xc0\xbf\x8f\x00\x16Q\n\x1b\xcd\xbf\xf3\x92\xb4\x1a\xc9\xcb\xa3\xbf\x0ekTGg\xfe\xd6?\xa8:\xb7\x1b%+\xc5\xbf\x97\x1cp\xc6\x98\t\xc5?\xf2e\x8f\xc9i%\xe1\xbfA\x08eNB\xf5\xce?\x08\xce\xf7\xb3#(\xdb\xbf\x03F\x9c\xfeuD\xdf?\x01\xcc\x1b\x9c\x8c?\xd3?|\xe3\xc7\xc1\xa4\x05\xd7\xbf\x03\xcdl\x10\xf3\n\\\xbfL@\xb7s\xac\x1b\xd3\xbf\xf9\x0f\xe0H\xa7\x8b\xc4?\xec0:\x9d4p\xda\xbf\xb9\xdd\x9c\xb8\x1eP\xc3?\xf7\x9c`\xf5\x92\x02\xdb\xbf\xcbW!NG\xc2\xe1\xbf\xbe\xb07_\xc6\xe0\xd6?\xfa\xff\xf8\x97\\\xf4\xb7?\xa2>]\xb4g\xef\x86?\xae\x19U\xe6:q\xb7\xbf\x03\x8e<\xca\x90\x84\xd9?U\xcc\x89`\xfc\xec\xda?\xb3\xac\xdbP\xe2\xec\xdb\xbfw\x9eu\xcc\xa8\x9b\xbf?-\xe5!\xe5\xdf\xc0\xb6\xbfV\x14\x96\xd4\x85\xde\xce?\xe8\x00\x95\xbfH\x18\xd2\xbf!>\xb6$\x894\xca\xbf\xccAXt\\#\xd2\xbf\xbb\xca/\xde\x8eR\xb7?\xad\x90GQl&\xd5\xbfr\xef\xda~[\x1f\xa7\xbf\x1a\xc8%\x8e\xff\xdf\xc5?\xe8\xfa\xb3\xc0\xee&\xde?\xac\x0fh\x94\x03e\xbf?dkbITU\xd2?\x0c\x8f\xde\x16\x93@\xdc\xbf\xae\xc5\xbex\xe3\xdb\xba\xbf\xb8\xb0\x0e)\x9b\xfd\xae?\xbc\x7f!\xfc\x7f\x17\xd4?\xcd\xe5\xc0\xa2@\x8a\xe5\xbf\xf0\'\x83\xdd\x82\xb4\xc9\xbfS|\xec\xdb#t\xc9\xbf\xbd\x99e\x9a.\x80\xdb\xbf\x1a\xa9\xdb\x86\x0b\xc8\xd9?\xc3qqv\xeeW\xe0?\x8aw\xb8i\xb8#\xd3?E\xb6\x89\x11x\xa6\xda\xbf\xd9\xb2\x1aB+A\xbd\xbf\xa7\xa9\xa3Q6B\xac\xbf\x10MF\x07 \x87\xd5?j\x9b\xea$U\x83\xdb?\x91!^\x9c\x98\xbd\xd9?9pn\x02\xedI\xc5\xbf\xc3:Gq\x8f\x85\xd7?\xe1\x0cC\x06O\x94\xd9\xbf\xc3\xc9\x14\xb5(\xfa\xd9?\xb7\xab2\xe5\xf2\xc3\xe3?Hk\n\xa9X\xb0\xdb?\x1ek\xe7\xc7\xce\x88\xc2?3\xd5M\xf1\x95\x9a\xe7?g\xd8"\xcdm\x1b\x91\xbf\x15\xc3d:\x12\xc8\xa1\xbf\xd3\xe4\xaf\x8eG\xfd\xd4\xbf\x15\x12\xc5\xedd3\xe2\xbfI\xf7\xdb\xdbng\xd2\xbf\xfd[\x92\xb8\x14\xfe\xd0\xbf)`\xbc6\x13\x14\xe4?"\xbf\xbc2\x15\xd6\xd7?\xda=x\xb9\xae\x84\xda?;\xc11\xec\x86\x7f\xd8?\x0b,\xe0\xaf<\xea\xd2\xbf\xedA}\x8a\xf0\x95\xdb\xbf(@\xc8\xa6\x10\xfc\xc0?\x8e\x81P\x85\x9e\xda\xd1\xbf>\xd2\n\x11q<\xa2\xbf\xa5\x9b!\n\xe4\x0f\xc3\xbfl\xeb\x87f\x12\x0b\xc5\xbfl\xd1\xe1\xad\xb5\xf6\xe1?\xf7\x12\x07\xff\x92:\xd3?\xaey\xf17\xd0\x9e\xe7?\xe0\x9a\x05B{\xd6\xdf?\xc9\x87X\xf9\xa5\x9d\xd1?]\xda\xd4\x1c\xe5\xf4\xbe\xbf\xa0\x0b(\x11\xfc}\xd3\xbfC\xb2\x08{y&\xcf?V\xec$\xcdC\x10\xd0\xbf\xde\x86\x1cz\xa3X\xd9\xbf\xc6-\x99\xc6\xdc\x07\xd2\xbf\xec\x9aX\xce\x9aV\xd5?\xd4\xb5\xd6\x02\xff2\xe5\xbf\xd2\xf1\xce\n\xa0\xf2\xc0\xbf7\xeb"\x82\xa8\x15\xdc\xbf\xac,&\xabY\xc6\xd6\xbf\'P$\xa9\xc4b\xd4\xbfk\x8b\xa8\x82\x90\x8c\xd7\xbfi\xe4\xd8)/f\x9a?Cvf\x86\x8f\x12m\xbf`\x11\x0f\n\x85i\xd1?K\xfdI\xc5\xb0\xb4\xde?\x876O\xb2?\xc4\xe8?Z^\xc5\xe3Z9\xd0\xbf\x16\xe6\x1b\x11\xbbb\xe2\xbf~\xb2\x01#\x8f\x00\xe3\xbf\xcd5\xfc\x87*\xd8\xbf\xbf\xe8y\xac\xf2@\xcc\xd2\xbf\xca\xf1h\xf5\x87\x06\xc3?d\x15.\x9bq\xe0\xbb\xbf\xac\xe6\xd0i\x01\xc7\xc8?^v\xc7\x82\xaa\x8f\xa2?\xfbq\x99]\x8ax\xda\xbf5\xf1\xe7\xe2\x8f\xf4\xe1\xbfM\xd0\x1fV\x9b\x95\xc5\xbf\xf8\xae\x1c:\xa4\x06\xdc\xbf\xad^a_\x1cJ\xb4?\x81N\xf4\n\xec\xa4\xd7\xbf\xb9\x08\x98\x92\xe5\xc1\xc2\xbfo\xd9O-\xf57\xbb?\x98\x8f\x05\xcb\x9aq\xc1\xbfG]M\x96<\x7f\xcf?s\xba\xbb\xf9\x1f\x80\x91?\xb08\xd6\xdc\xa8\x06\x9b\xbf\x11\xcb\xa3\xf8\xed\xea\xca\xbf\x1e\xf9\xc3J\xd2\xad~?F2\x9e,\x97\xcd\xd5\xbf,S\xa3\xf9\x00\x9d\xda\xbf\xeco\x86-\x81N\xc3\xbf~\x8aP\x10\xa1\xc9\xc0?\xc4\xc6\xd1\xceO\xbf\xae\xbfE\xcbC&\xc2\x88\x91?"I9\xcc\n\x10\xeb?d\x9c\x8eN\rf\xc0?\xbfXi\xdf9\xe6\xd1\xbf\xba\xb7\xc4nfZ\xc3?\x888i\r%\xdd\xd0?\xc8\x9bi\xd6\xc1Y\xe6?\xb0\xe5\x05\xcd\xa1\xdb\xd8?\x05\xe7N\x0eI\xed\xce\xbf\x85\x95P8\xd3\xcd\xdc\xbf\xed\xef\xd7\xa22\xfd\xc4\xbf\x00\xed\xae\xf1\xd2\x12\xd3?\xd5.\\\x16/z\xde\xbfH\xa3j\xed\xb2\x8c\xd7?\x9d\xd7,]\xf1\xd7\xbc?\x0b\x89\xb4\xa9Q\x83\xc5?\xe7\xb20\xd7x1\xe2?\x9c\xda\x87\xa0pp\xcb?\xba%\xe1!\xcd#\xdf?\x91?h\xec\xeb\x02\x9d?\xceO\xcfP\xec\xc3\xda?w\x8e((\xf6u\xec?\xff\xacr[\x89\x9f\xd0?.\x15\x81\x88\xa6\x18\xd1\xbf\x03*\xd9\x85k\x10\xa7?e\xf0kA\xe1\xe5\xb0\xbfz\x8e\x84=\x98\x18\xe2\xbf\x9c\xe0w\xcd\xdc\x18\xb5\xbf7\xba\xefm\x1b{\xcd?\xda))\xfb\xab\xc2\xd2?\xc2\\\xfc[\xb3\x9e\xa1\xbf\xa7a6\x02\xf3!\xc5?\xb2\x1d:\xf4C\xd7\xc5?\xfc/]\xb9O\x9f\xb2?\xb8\xaf\x14\x98\xa2\xab\xdd?\xfao\x1d\xfa\xa9L\xd1\xbf\x85\xab\xe2\xa1\x006\xcf?Z\x02@\xbe\x84\xdf\xda?\x1dt\xf5\x80\xba9\xad?\xf6\xc79\x8b\x0c\x04\xc8\xbfNd\xcf\xbc\x13\x1b\xc4?\x9ak#6_\x07\xd2?)\xfb\xd9\xcdXh\xe0\xbf\xc1\xbf\xdb\xf8\x88T\xb4?\x16(E^SW\xc1\xbfe\xe8\x88\xd7\xf4c\xe6?\xb1p\xe1<\xfdT\xdc\xbf`M\xad\xf3\xc95\xe0?\x1d\xcd8\x07\xca\xb9\xa4\xbf\xb1\x10\xe4R\\\xdf\xd4\xbf~P\xe2\xd80\x16\xe3\xbf\xf8\xd9\xeb\xcb\\\xf4\xdc\xbf\xd1\xcbj\x12&\xfd\xba\xbf\xf9\xf5k\xce\xcb\x95\xd4?\x0c;+\x9b\xd9\xf6\xd9\xbfK\xf2\xa6\\Jr\xdd?\xd3\xfcK\xaf\x95\xeb\xbf\xbf\xbdQ\x04b\xfav\xd3\xbf+C\x1f\xd9\xe0J\xb3?\x02T\xe4\x1c\xb5\xf2\xc3?\xf6\xf2\xc3\xb2\xb1t\xd4?\xb4KI\xe3D\x1c\xc7\xbf7B\x02iA\xea\xd6\xbfU\xedI1\x06E\xdf\xbf\x05$\xb4\xc1GK\xeb\xbfv\xb4>T\xac-\xda\xbfZ}\xdd\r\xf8~\xd9\xbf\xdc\xf5\xda3\r\xe1\xd1\xbf\xba\xd5&i\x84\x93\xcb\xbf\xc8\xe60\xacdZ\xdd\xbf\xaf3b\x07d\x98\xa0?\x12D\x89\xe1]\x05\xd2?#\xf3\x9f\xc3\xd1\xf6\xd2?8\xbf\n\xa9\xa7g\xd4?\xd9K\x8d\xcd\x94~\xbd\xbf\xee\xba\x0f\n\x88N\xce\xbf\x9f(\xff_p\xa0\xed?\xa8\xa6\x08=\x04\x15\xc1\xbf\xc6\x97\xc7\xd9\t\x1e\xc5?\x01O\x18\xc4\x1c\x81\xd3\xbf\xba\xe5\xa9\x89\xf5\xb2\xc6?\xa1\xa2\xf3\xd2\x06\x91\xd7\xbfu\']\x04|\xb2\xdf\xbf\xe9\x81\x91\x07`4\xb3\xbf{\x9ft`\xfb\xa3\xd2\xbfn\xa5\x1f\xaci\t\xde?\xa1k\x94\x07\x97\xc4\xb9?o]\xc9\n\xcb\x04\xac\xbf/\x06\x98\xa2kG\xd7?\xeeW\x83\x1cW\xf5\xd1?\xf3\xdc\xd8\xfd\xb4\xcf\xcb?Pr\xa2\rW\xf4\xd1?\x1eG\\.\xa5\xe4\xda?Y\xbc\xe5\xe8\xcdo\xa1\xbfd\x93\xd7\xe79N\xc7?\xb8\xce\xd3\x03\x8d\x1a\xe7\xbf\xc7\xa4\xa2#\x94\xbb\xf0\xbf\xc6?\xf6\x0f\xa6\xb6\xb7\xbf\xb0\x7fQ\xd5\xec\xde\xc5?\xb4\xa7\xc4K\x03\x17\xdb?\x86\'\x91\xb1n2\xc0?5\x88>\xd1\xa9\xb8\xef?\x83-\x9a9 \xa7\xd0\xbfs\x18\xf1H\xb5\xdf\xc1?\xacQ\x81\xa3\x06x\x8c\xbf\xf1\r\xed\x10-\xbc\xdf\xbf\xd7@\xb5\xa5\x18h\xdf?\x19\xec\x96\xd9\xd7r\xca\xbf\x9c\xc6/\xf4_\xd5\xd5?b\x82\xe4H[\xb6\xd8\xbf\xa5\x17\x17\r\xf9\x15\xc2?\xc55\xd9\xf2\xcc\x1e\xe3?\x14\x89a@\x85\x92\xb1\xbf\xd2Wv\xbb^\n\xc0\xbf&I\x02l\x9e\xae\xbc\xbf\x00\xd9\xc95\x02\xe3\xb7?\xc7a\xbe\x03\xf3*\xed\xbf{\xf0NP\xe7\x90\xd6\xbfa\x03@\tP\xd1\xcb\xbf\x1e\x88\xc7\xeb_\xa5\xde\xbfuH\x87W\x96\xee\xdc?g\x1aq\xe5\x12$\xda\xbf\x05+\x8e\xb9!$\xa6?t\x04\xa2\xa1\xefQ\xda?\xfdk\x1a\xc8\x8f \x92\xbf\xdct\xb3\xc3\xe7z\xa7\xbfc\xd6\xce/N\xd2\xe5?\xa2\x1d\x015\xf3\x19\xaf?\xde\xa2wi\xe5\xe4\xc0?^\x00\xdf\\\x15\xba\xcb?\xb2\xf6\x9e\xebbJ\xc4?\xc4\xa0\xda\x08Z\xec\xc5\xbf\xe2\xb3\x89\xed\x86\x02\xde\xbfx\xf5\x9f\xf1#\x9a\xa3?(\xf3\x93\xff%\xa4\xd4\xbf\xb5\xe6\xdc@m\\\xb0\xbf\xf04\xf3\xfa\xeb\xac\xd6?\x1b\x81j\xfa\xcdy\xcd?\xd8\xac\x86\xcd\x14\x18\xbb?93Ac\x93\x9f\xbd?\x0f\x9cO\xea\n[\xdd? \x83\xfds\x08"\xd3?\xfd\x83\x14w\xa2\xd4\xde\xbf\xe2=Q7[Q\xd2\xbf\xfcPJK\x84R\xd4?W\xcb+K`\xbe\xd3\xbf\xb0d\xf2\x16\r\x10\xd2\xbf\xd6\xce}\xfa\xe0L\xb2?\xca\xfaM\x93\xce\xb5\xa8\xbf%\x03\xa2\xe5\'\xc0\xb3\xbf\x14\xc5>$\xe3u\xe2\xbf\xf3\\\x9c\xd4\x9d\xed\xcc\xbf'
p26
tp27
bsS'bbeta_w1'
p28
g13
(g14
(I0
tp29
g16
tp30
Rp31
(I1
(I1
I1
tp32
g23
I00
S'\xf8\xfa\xdd4\x1a\x82\xd5\xbf'
p33
tp34
bsS'bg_r1'
p35
g13
(g14
(I0
tp36
g16
tp37
Rp38
(I1
(I1
I1
tp39
g23
I00
S'F\xb3\xb4L\xdc\xfb\xf6?'
p40
tp41
bsS'bg_r0'
p42
g13
(g14
(I0
tp43
g16
tp44
Rp45
(I1
(I1
I1
tp46
g23
I00
S'8:\xba\xf4\x01F\xf5?'
p47
tp48
bsS'rh1'
p49
g13
(g14
(I0
tp50
g16
tp51
Rp52
(I1
(I100
I15
tp53
g23
I00
S'\xa1\x8c\xdb}\xc2P\xe4\xbfs\x95wJu\xc6\xc2\xbf\x1c\xfb\xbf}\x1fZ\xc5\xbf\xd4t\\\xd1\xaa\xa2\xb1\xbf\x7f\x9f\x05$V\xc0\x8f?\xe5\x1fo\x82\xd9\xda\xc1\xbf\xc7\x7fW\x18v\xf6\xc8\xbf$W{\xb1\x98\xb7\xd0\xbf~\xba\x11Z\xe2\x0e\xd7?\xaa\xbf\xbb\x82KE\xcb\xbf\xb4\xa3\xa8\xb1\xf7\xc3\xb2?>]\xcec\xa1\x08\xd3?\xc0\xc8\xc5\xba\xafi\x9f?\x8aa\xd9\xd5\xf8\x84\xb1\xbf\t&\xe1\xba\xae#\xd4?y\x0fm\xa8\x83\x98\x9e?\x07\x81\xc9\x1f\x05\x9c\xb2?\x86?\xbf#\xea\xd8\xad\xbf\xfa\xae\xb1\xb0\xe2\xd3\xd6?\xe3\xce\x8d\x9e\x9b\x02\xb2?\x16\x03\x13v\x82\xc2\xb2?\xe45Y\xe6\xf2\xe9\xb2?\xe1\xeb&\x1d\xdc\x11\xdb?u\r\x88\x8f1\xe7\xd1?\x89X\x8a\xec\xa2\xa8\xc4\xbf\x88\xbd\xe7\\\xbf\xb7\xc8?\xe0\x04\xb6\xa5\xca\xd9\xcc\xbf#\x92\x805\xdd0\xcb?zh\xdbMAy\xb6\xbfSOS\xe8i9\xc0?\x15\x1e?\r%\xb7\xd4\xbf2\xa1\xa3\x98*\x92\xcd?\x945\x83\xa5}m\xa7?\xfe\xe8T>P\xa8\xc3?eQQ\x10\t\x99\xc7\xbf\xa8\xa1\x81\xc9\xebM\xb7?-\xee\x96i\xd9\xb7\xac?\xb0\xca\xf0\x90m\xc5\xc1\xbf\xf2G\xf0\xab\x94\x89\xb0?\xaf\xf2x\xc5\x1d\xc1\xda\xbf\xcc\xec\xc0\x8bq9\x92?\x9a\xa7\xa8\xfbl\x0f\xca\xbf=\x06\xc5x1\xf0\xd5\xbfO6\x18\xc3\x85\x0c\xce?#\x8f\x8e\xa96\x84\xbc?\xaaa\x12I\x81\xd7\xd4?\r\xbdS_\xe0\x16\xbe\xbf-\x17X-\n9\xd0\xbf3\x9c\x94\xc8\x9f\xa9V?. H\xad\xc6}\xdc?3oI\x93&\x07\xb4?\xeb\x01\xc4\x81\x83"\xa1\xbf\x89R\xc1\xeb\xa4\x89\xa9?\xd9JN\xbd\x11\xcc\xba?\t\xb5\xa65\xebX\xe4\xbf\x7fN\x8a\x12\x0eN\xaf\xbfmh\x89\xb0\x89\xd5\xa1\xbfG\xd0\x12\xda^\x9c\xdb?\x8cp\xfc$AX\xd3?\x99\x1a\xca\xa4\x9fG\xba\xbf\x0c0S\x8f\xf8V\xdd?A\x1fDBC6\xc4\xbfN\xc2T\xda\'\x98\xc9\xbfp\xb0M\xb9\xaa(\xb1?\xfer\x0f\x00k\x08\xbd\xbf\xa9Z]\xd8\x85\x91\xc4?\xdaZY\xc6\xd1L\xd7?>WP=\xe0\x84\xad?W\xdb=\xa1\xac\xea\xc0\xbf\x835\xd7\x88y#\xe0\xbf\x84\x1b\x94bI\xd7\xc0\xbf\xdfH2\x84\xe4\xb8\xb9\xbf\xfe\x91\xf6\xdf\xa4\xb5}\xbf\xb5V<\xc2\xf0\x8d\xcb?\x17\x86L\xe6\x1bR\xd2\xbft\xf6\xe8\xc8#\xdb\xc7\xbf\x10W\x9c\x89\\\x05\xb9\xbfrg\x84\xcd]\x90\xc8\xbfB\xe8\x02\xda\x8a\xd8\x92\xbf1\xad\x91\xe3m\xd5\xc8\xbfDV\xdb\xd8C\xbeo\xbf{\xd5\xa8\xe9\x9f-\x8a?\xa7z\x1b\r\xbd\xfe\xc4\xbf\xc4yGu\xbe\x94j?\xb3v\x92\xe4\x8e&\xe3\xbf\x95\x86r0\xadB\xcc\xbf\x95gh\r\x8b\xb8\xe0\xbf\x07\x01U\xd7\x10\xb4\xb6\xbfq\xbe\x02\xce\xbd\xff\xd6?\xc1\xde\n\xfc\xac\xdc\xd3?\xe3z\xbdV`H\xd1?\x0c\x17H\xa2\x91\xc5\xad\xbf(\x9c\xcc\x8f\xe5\xfa\xd7?\x00\x84Hu(8\xb1?\xc2\xc1~\x94?\x99\xc5\xbf\xbdE\xe4\x07\x0e\x1f\xbe\xbf\x05\x9f\x19\x0e\xabg\xc5\xbfc\xcf\xfa\xbf\xd3_\xcb?\x97\xa2H\xab\xb5\x08\xb9?W\xe5\xe8\xa5}\xa7\xce?]\xd3"\x84\xa53\xbc?hcW\x9b\xa1\xa4\xd0?B\xf1\xe4\x13\xce\xe9\xb9\xbfwr?\x1av\x15\xc4\xbf\xf8j\xf4\x0f\xee\xcd\xca\xbf\xcc#\x1dSJ^\xa9?RMD\xef\x9b\xda\xc4?\'\x881\x85\xbd\x8e\xc1?\xa6xW:\xfb-\xc0?\xd4\x10|\xa1g!\xb5?\x16\xb3y\xcfl\x02\xd3?\x15W\x85\xdb\xbdO\xb3\xbf\xc75j\x07\xa8\xd7\xc7?\xc2\xfc,\xa0\x9c4\xd3\xbfwcLU\x14\xe6\xdc?\xb0d\xcb\xf4qD\xa8?\x01\xd3\xe8\x14\xe5\x9c\xd5?\tK\x8b\xd0\xe9\x95\xd3\xbf\x9e\x82O\x07\nz\xd0\xbf\xfde\x98\x16\x96T\xbf?\xaas\x89\xfd\xd2\x0c\xd4?\xaf\xd6+\x10\xae3d?\x05\xbb}\xb5}\xe7\xd5\xbf\xda\xec\xcb\xcd\xec\x88\xc1\xbfhB%\x86\xcf\xdbn?\x89\x050\xd2!\x88\xc1\xbf\\O\x81\xa1\xc5{\xdb?)\xf9:4Z\xc2\xd1\xbf\x95\xbf\xf2;(\xcb\xbf\xbf\xc1S\x018\xc3\xbd\xe6\xbfQ\xe0U\x8e\x01\xc5\xbe?\x98\xfd\x8a\xf3]:\xce\xbf\xed8\xfa\xb5>\x19\xc3?\xa6\x00k\x15m\x18\xd0?\xf4\x9261B>\xc6?{\x8fF,$\x05\xcc?\x0b\xf1\xefx\xdb\xd8\xd0\xbf\xfc\x15\xde{t\xe6\xaf?aDu\x92\xd6$\xab\xbf\xe4\xbe\'\x96\xf19\xc2\xbf\xc5\x9a\xa5\x07\x83\xe0\xa0\xbf5\x0f\x01\xd2\xbd\x1a\xcd\xbf\x8a\x7f\x13\x98\xc7p\xbf\xbf\xf9\xd0V\xcdk\xf0\xa3?\xd1\x19\x89\xfc3\xf6\xaa\xbf\x889W\x08G\x00\xaf\xbf\xdb;\xed\xe1x\xd6\xc3?aW\xbc\xa8\xa1\x13\xc9?HlD\x7ffT\xd4\xbf\xa8;\xde\x0f\xb4\x1b\xaf?.\xfc\xa8\x7f\x02\x13\xcf\xbf/\x18\xe2\x84\xd9\x91\xb1\xbf\xb2\xc7\xc4.m\x9b\xb6\xbf\xdd\xc9\xad\xd6\xaa\x85\xce\xbff\x97\x8a1\x82\xc2\xa4?q7\xc5mbu\xc8?\x00\n\xf9\x85\xdd#\xb4\xbf\xfb\xaa\x0e\x1a\xbf\xe2\xc7?H`\x7f\xfby\xd1\xb5\xbf\x8f\xb5@\x15x\xd3\xe6?\x16\x97Fj\x10R\xcc\xbfeg\xd9V\x00\x18\xc4?\xb5$\xda\x8f(!\xc4\xbf\x9bp\xf4\x86^_\xa7\xbf\xdb\xe4\xfa\x9f\xa6 \xa1\xbfw\x96\x8fW\xcdV\xae?\x930\xa3VO\x16\xca?\xef+\x06V\x81\xd0\xd7?(\xf4O\x1d\x94\x84\xca\xbf\x02\xcd>\xcb\xf5L\xb7? x\x11\xf6D>\x90?\xe0\xecZ\x0e\xd5\xe9\xaf\xbf\x81t`\x02\x04\x0e\xc4\xbfz\xad\xb7}U.\xcd\xbfdy\x974\xc2\xa7\xd6?\xb2Ev{\x94\x98\x91\xbf\x91@\xf6\xd6\xb8\xf4\xe2?6\x92\xc1\xec\xd1)\xcf?\xf7\xe1o\x10\x04\xd9\xa7\xbf:\xea\xa0=\xf9\xf4\xcc?`\xe3\x1f\x1a-\xb6\xc9\xbf\x01u\xb9\x14\x83\x1d\xc7\xbf\x15\xe7\xd1\xb5\xb8\xc9\xd0?\x82\x90v\x13\x0b\xd7\x83?\x06v\x1cU\x9e6\xce?\x84\xbd\xd4__c\xca\xbf\xcc\xbf\xdc\x0f\xde\xdd\xd3\xbf\xaf\xf0\x9dhb\x87\xab\xbf\xfa\xa5 \xe1 \x9e\xac?\xc2b\xce\x0c{O\xd6?1y5\x99\x1d\x9a\xbe?\xbe\x17$\xa7\\\xf8\xc8?!\xb2JL\xa2\x8a\xce?\x90\xee.\xb34\x8b\xd7\xbfRvb\x84\xaaE\xa4?\xc8l\xd5\x83\xde\xc7\xbf?\xa6<\xdf\x95\xb1>\xa4\xbf\x06\x13\xb4J\x171\xc7?`\x18;n\x12\x1b\x92?QF\xb6/\xce\x1e\xcd\xbf\xb9\xc84\xad\x07\xa2\xbd?\xeb\xd0C\xe1H\xb7\xb5\xbfIlx\xfb\xad\x1d\xad\xbfo*\xe7#\xf6\xa2\xc0\xbfFT\xda\xbf\xa5\x14\xc4?\tn\xd5H\x06Q\x9d\xbfQEP\x04\x92\xf6\xc4\xbf\xbf\t\xc2 \x94\xb3\xdc\xbf\xa2yG\x95\xcf\xa0\xac\xbf\xb4n\xeb|\x15\xa9\xc4\xbf\xa1H\xc9\x08\xd8\xa4\xdc\xbf\xa4\xf6\x805\xfe]\xa0\xbfJ`\x03;/q\xcc?\xd6\xb5\x92\x84D#\xbe\xbf3\x02\xfbx\xcca\xac?Z\xd7\xf5\xad \xdc\xd3\xbf\xa0J\xaf$p=\xb8\xbf\x07\x7f\xb7\x10\xde7\x9e?\x07*\xc5>\x14\x86\xc6?\xf8\x8d.)\xaf\x87\xd4?,;f \xce\x8e\xad?\x1f\xb6\xd8Q\x87\x8e\xc8?\x92\xbe\xf5\x9f\xc5;\xbc?\xea\x83\xa9=z\xe0\xcd\xbf/n\x90\xe0\xe2\xc6\xd2?8P\x8b\xdc\xb3M\xc7?\xa2\x82x\x1br\xb6\xc0\xbf\xaf\xb5$g\x1f,\xd0?=\x953]\xafg\xbd\xbf8\x8e\t\xbc\n\x06\xb2?Pr\xa5X*Z\xb7\xbf9u\xc4\xab\xb78\xa5?\x0c\xa7\x08W0\xbd\xd2\xbfpAE\xf8P\x84\xdc\xbf?\xfe\xeb|\x0f\xfd\xb5?x\xb4*,\xc2\xf9\xd5\xbfEW\xf3?/\x99\xa5\xbfOc[Z0\x97\xc4\xbfC$\xcak\x94\xb4\xc0\xbf\xfa\xe9\xb3\xe1,H\xd3?Y\xda\xd8h\x99t\xbc?\xd6\xa2\xfd\x1d\xdeD\xb1\xbf\xe0\xd9\x1e\xf5\x149\xba\xbfK\x9b\xacB\xf6|\x94?\x99\xac\x10\xef\x7f7\xc7?39\x04r.\xc1\xc7\xbf@\xed\xba\x17py\xb3\xbf\x1d\xc1\xd6\x84Z\x99\xcf\xbf\x9d7\xc3&\x92\xa3\xd1\xbf\xc8\xcd@\xe0\x89\x1f\xbe?\x8b\x9a\xe30\xff\xc7\xae\xbf\x19\x8b\x88\x1bZO\xd4\xbf)\xd7\xc7\xd4%D\xab?\xd5h6>\xf0(\xc7\xbf\xeaj\xffl|\xd9\xcc?\xd4\xce+%R\xe3\xb2?\x1f\x17\xf7\xf9\xb9\xf1\xb6?\x8d\xcf2Z\x9c-\xcb?W\xed\x9a\x9fw\xf2\xba\xbf\xc4U\xed\xd4\xfdbw?\xb3cP\xc4\xab\x9b\xa0?~\x12\xf7B"\x1b\xb1?\x9e\x05>Z}+\xb7?*5J\xf9\xf7\xc2\xbb\xbfUuRN6^\xc1\xbf3w\xdd\x1c\x03!\xb0?\xe8r\xb3\x80\xd6=\x90?\xd0\x02y4Pc\xcf?\x96\xb3]Igj\xd8\xbfIxrL\xcd\xf7k?J\xd1\x0bcn\xab\xa8?\xed\xf0RO\'K\xc3\xbfv\xb2hy\xf9{\xb2?\x10\xc1\x0ctb\xd6\xcc\xbf\x8d\xcf\xe0\x93\x95\x19\xc0?\xd2 \xcba{\x1e\xb8\xbft\x1b5\x1b\xa8\x18\xd1\xbf\x9b\xf2q.\xb2\xb7\xa5?\x13g\xc4w\x8e\x9e\xb0?\xa3J\xa1\xa6\xd7\xa4\xb9\xbf\x14|\xad\xea\x0cW\xd0?g,\xda5\x9c\xb9\xb7?\xde\x1eu\x11\xc4N\xa6?\xdf\xfc\x97\xb8\x93\xc1\xc7?\\\\\xc3\x10\x8cq\xd1?=\x94nc8!\xa4?\xee\x82\xb9\xec\xf6\xf3\xa1?\xa0\xe2zX\xbe\xa5\xd5\xbf\x03\xfc\xee\xd7\xf4\xae\xbe?%U\xc2\xa6+\xdc\xb3?f\xbaj\xba\x961\xbc?\x82h\x17\xab\xf1\xd5\xbb?h\xc2\x05\xbf\xef\xb4\xd3\xbf\x19\x04^\x14\xc2n\xc4\xbf\xb8y$*\xef\xbf\xe1\xbf\x17\x06+\x81>\xf5\x80\xbf\xa9\xe0\xa0\xceR\xcf\xc3\xbf\xdb\xe8Y[\xac\xd9\xe9?\xcb\xb6\xfeYG\x08\xb5?\xb7\xb9rf\x11\x1b\xd1?\xf0\x9f\x8f\xb7\x18\x8d\xcc\xbf\x95;qE\x80\xd4\xc3?\x95j\x14h\x08\xe3\xda?,\x19\xba\xfe\x93\xe0\xc5\xbf+\x00\xce%gQ\xab\xbf\xe2yW^Q\xd4\xb6?"\xd7\xb8\xda9/\xcd\xbf&~V\x13\xd6>\x8b?\xa6\x9c0\xd5\xda\xb5\xba\xbf\x157\x0f\xb8/\xec\xde?\xbdd/N6\xb2\xc4?(\xfa\xd0\x18~p\xd7?X\xac\xcf\x13\xf5v\xae?\xdc\x17\x0e\x15\xdc\x0e\x9b\xbf\x07\xc7\x92z{\x06d\xbf\xab\x84\xe5\xeaO\x93\xa2?8[;\x94\xfb\x01\xa2\xbfZo]\x12.4\x85?\xa1fxD\xbc2\xba\xbf\x8fQQ\xd8o\xc0\xd1?\xcbg\xdd\xb0\x9f\xb3\xb7?j\x9e\x02`\xc9\xcc\xca\xbf\xb1\x02\xef"\xff\x93\xb4?\xbe?\xd7oD\r\xc1?\x89\xf0\x1b\x16#&\xc5?T\xfe)\xfe8Z\xd7\xbf\xb1\x0b\x12R\x16\x9a\xb7?\xb5\xeb\xa8 \xed\x84\xc2?K\xfc\x8e\xede\x0f\xd1\xbf\xcba\xc2\xc9|\xc7\xc1\xbfG\x80\xe1\xd7\xe8\x15\xe1\xbf\x075\xe8]\xf9\xf2\xb6?uEk\x06\xd8e\xcd\xbffg@n&\xc4\xbb\xbf\xb8\n]\xc7\xec\xdb\xb7?\xd4\xcb\xabY\xf8`\xd3\xbf\x8bL]\xd3\x1a\x00\xa1\xbf\xd9\xa3\xbb8\x98\x95\xa3\xbf)\xc9\xd9\xab5k\xd8?H\x00\xf1I\xb6E\xde?\xb5\xa3\x17\x14>\xfd\xd8?\xb5\xa1\x9a\x08\xb5\x84\xd5\xbf\x8c\x8e\xff\x13\xd0\x92\xc2\xbfcl\xdb\xffw\xef\xa2\xbfgQ\xe7\x9b\xcc\x93\xc3?\xf2\x8bo\xcb%O\xe2?\xb0\xf2f\xfa\xcdp\xc9?E\xc2t\x81>\xeb\xc8?\x17P\x8e\x99\xb4\xaa\xd9\xbf\xf4\x88\x08\x9bN)\xaa?M\x1eA\xff\x83\x1c\xb4?\xd9\xaf`r\xfe\xd8\xc7?s\x80\x1d\xea/{\xd7\xbf\x0c\x0e\xaa\x86\x8d\xa0\xd8\xbf\xf3\xec{/p\x08\xc5\xbf\xe2>\x0b\xd8\xf2\xe4\xb8\xbfH\x8f\xb8\xa4\xb9\x19\xe0?\xae\x00\xfc\xde\xc2\x03\xa0\xbf\xab\x04\x85\xc5n\xa6\xb0\xbf\xb6\xde\xbc\x99\xc3si\xbf\x93\xbaF\x8e\x99\x02\xc2\xbfj]\xc8\xa4\x8c\x0b\xc3?\xe6\x13\xaa\xa5\xc7\xa4\xd9?\\>S\xbdR\xbf\x8a?y\xc9\x18\xfe\xcdh\xc0\xbf\xe2lM\xde\x0c\xce\xbb\xbf\xf2\xd7\x01M\xbf\x11\xd5\xbfqT5|X\xbf\x9c?\x04\x91\xedO\xed\x8b\xa5?\r\xf4\xcb\x95\x02\xf7\xaf\xbf\x978\xfe<\xd5\x17\xb7?\xa3\x10tCr\xc6\xe4?\'\xd6p\xb3\xf4\x19\xd0\xbf\r\x83^\xa5\x05\xaa\xcb\xbf\xeb:O\x9bx\x80\xc1\xbfm\x99\x1d\xb6\xaa]\xc8?\xcad\xe6\xce\x1c\x0f\xc3?\xd77\x9c\xeai\xe8\x96?T:\xa42^\x1c\xb8\xbf\xf2\x92D\xa5\xdeE\xc8\xbf\xb8\xa2\xc5\x06\xcdc\xc9?\x874\x1f\xe8\xdd\xe8\xc2?\x8f$\xa4\x14\x0e\x1f\xb2?\xc8\xe2\x88\xae~\xb2\xb3?\xf6\xae\x84\x06\xe5\xcc\xc6\xbf*y\x19\x13#\x9e\xd8\xbf\xe4j\xf9\x94B5\xc2?^\xa5\xe3\x1e\xb4\x0b\xc5\xbf\xccf:2e\x7f\xd3\xbf5\xcf\xfd\x86G\x0e\xc8\xbf\x8ck\xe9?\x9e\xc1\xe3?\xaex\xf3\xb8P\xa8\xd3?\x18\x91\x17\x16\xd8\x9b\xb6\xbf#\x9d\x95\xf3\xd01\xc4?i\'W\x94\xa2Qv\xbfE\x84\xc6Ew\xbd\x87?b\xb8\x82<\xa30\xd4?U\xa9\xc9\x138s\xb0\xbf\'@{\x05Z8\xcf\xbf\x0b\xed\x95\xd7\xefU\xe4\xbf\xb2\xfc\xe2\xca\xbbu\xd1\xbf\xcd\xdc-\xda\xf8\x1b\xab?\xc7\xdd\x9c\xbae\x0f\xce\xbf\x08\xd7\x87&\xb5-\xd6\xbf+\x93"\xccT\x10\xc8\xbfO\x0e\xc0\xab\xec\xe6\xb7\xbf\x83\x1f\x86\x10\r\x83\x9d?\xda\x0c\xce\xea\x8a\xa8\xe0\xbf\xec\x8d\xbd!FZ\xcf?y\xedlU\x8e\xf9\xce?\x03-\xd8\\\x94\xd7\xaa?\x17\xf6\xaa\x87U\xdf\xb0\xbf\xf6\xd2\xbeR\xe0\xf8\xcb\xbf\x9b\xbc\xd8\x12\xb2\xa5\xe2??\x8f\xa68\xdc\x14\xd1\xbf\x00vaa\xd8.\xd1?\xef\xd9Y\x98 \xa0M?\xac\xef\x96\xccQ8\xa0?G\x7f\xb9\xef\x82\x84\xdc?>\xc4\xfc\tl\x88\xc4\xbf\x87\x86\xe0\x0c\xed\x9b\xd1?\x9f\xdc^\xdd>d\xa5?KP\xc1\x1c9\x05\xc6?\xff\x08N\xeb\x0c\x10\xd2?\xf7z_\xfa\x10\xd5\xbb\xbf\x81=+w\xd7\xaf\xc1?\xfd\x8b\xd1iP"\xd5?\xf71\xad\x94\x186\xd0?\xca7m\xce\xdd=\xbb\xbf!\xf8VF\xc6i\xd1\xbf\xcc,\xd4a\xd1\xb8\xc4\xbfc.\x18\xaa\x835\xc1?\x97\xdc\xdc\x8a\xc8\xc4\xaa\xbf\x89o\xb9\xddv\t\xc1\xbf(\x9aI\xd3\x963\xa7\xbf\x1fv|\xe8\x0f\xc2\xc0?\x1b\x8a\xeb.\xca\x16\xc1\xbf\xec\xcb)\xa2\xe7w\xb2\xbf\xf6\xc8\x14]\xab\x0b\xd2?7\xd2\xed\xd2x~\xb7\xbf\xd2(f\xef,\xc9\xb6?\x03\x93\x04ww\x02\x9f\xbf\xce\xc9\xc2\xe5\xde\x1d\xd1?\x117\x80\x17|4\xda\xbf\x97\xb8\x10iZ\xaa\xbb?S\xed\xf9\x8a\x04\xfb\x9a\xbf\x91s\xe6\x89N\x9c\xd1\xbf.\x9a\xda(\xd0X\xe2\xbf\xda\xd3.\xbc\xdb9\x85\xbf\xc6c\x1f\xc8m[\xb9\xbf\xec\\u\xcb\xa3\xeb\xb8\xbf\xc5O2\x990\xe6\xcc?\x1d\xaf\x827y\x7f\xc6?\xda\xc2\xe6\x80X\xec\xbf?\xb2-\xe9\xed\x0f,\xc3\xbfB\x02R\x07\xe23\xd1\xbfd\x98\xceA\x98Q\xd3\xbfq\x10\xa7l\x1eb\xd0\xbfr"\xa6;wC\xb3\xbf\x1bS\xa2-\xd9/\xca?\x8e+\xcf\xeb\x01b\xbb?Sj\xca`SS\xd6?\x12\xd6\xee\xea\x819\xd3?@>\x04\xd6s \xd2\xbf\x86\xff\xdf\x0fC\x9f\xb0?3\xfa\xc3\x87\xd5\xbez\xbf8\xe5\xb5f2<\xd4?(L\xf9\x1b\xd4\x82\xd5?\xb6\xe1\x83\x13\xb2u\xcf\xbf\xc8O3\xa2\xb0\xf2\xd2\xbf,y6\xc9\xaf\xe2\xd1\xbf\x12\xc1\xf7}o\x85\xc5\xbf\xfb\x1cy\r\xd8p\xcc?q88\x03\xa1\x9b\xbb\xbf\xaew\xd5\x94\x81\xc2\xd3?\xc3H\xb1pe\xef\xb7\xbf\xfa\xe2\x08d\x15\x07\xe1?u\xeb\xd9\x8f\xdf+\xc3?b\xcc\xce\xde\xca\x1d\xe0\xbf\xba\x18\x870\xff\xfe\x98?5\x8d\xbe\x1a4?\xd7?\x15\x1b\x07p\x7f,\xb8?p\xc0\xc0n\x80\xa4\xc9?\x82S\xe2q\x0f\x04\xc3?\xbc`JRY\x03\xae?\xea&Wk\xad8\x97\xbfw\x10 I\xfe\xca\xd4?8\x1b\x90\xeb\x1e3\xd0?gF\x02\xf7 \x81\xd1\xbfU\x13\xfa\x89Wk\xdb\xbf\x06c\xd9\xcc\xc1\xdd\xb0?\xf0\xea\x87\xb3)\x1c\xb2\xbf\xe9#\x0b\x1e\xf7\xa8\xdb\xbf;A0\x0eG\x08\x9e\xbf\xa7\xae\x03\xd3\xa6\xeb\xd1\xbf*v\xe8@\x96\xa1z\xbf\xa6\x87\x81\x8fW\xb2\xd8\xbfr2ZC\xa3a\xa2\xbf\xad\xec\xd4\x86\xeb\x02\xcb?,\xa5~>:y\xb0\xbfB\xb2\xcf(\x07\x93\xc2\xbf\x1e\xd4\xb4\x03\xd8\xea\xc4\xbf\xa9\xe4\x97\x92\x9d-\xc1\xbf\xf1\x87\x143~\x8b\xd5?\xd4\xa3?\x07\xd0m\xe8\xbf3\xa2\x99G^1\x82\xbf\x9e\xcb\xa7\xe5\x9fD\xd6\xbf\n\xeaF\xc7\xff;\xdc?z0\x99\x04\x04\xa1\xc9?\xd1\x99oM.O\xd0?\xa2k^\xc0b \xd6\xbff\x17\x08~\xd9\xd1\xc2\xbf^ege\x95\xfd\xbb\xbf\xc5\xdf\xa0\xbc%\x1b|?7\x14\xaaN\xa7\xbc\xa8?Ds"\xafM\r\xd3?\xeby\x865C\x8b\x97\xbfjAp\x1e\xbc\xd9\xce?\x0e\xce\x8a\x0c\x88K\xc8?\x9aX\xfe\x9d\xf8G\xcb?\xbf\xc9\xd5\xfa\xdd\xb1\x97\xbf\t\xcf\x05\n\xe9\xb9\xd7\xbf\x1e\x1d\x0e7\x9e\x90\xd1\xbf\x9f\x84^\xf5N\xee\xd1?\xb5\xda\xc7e\xbd\xf7\x96?\x03\x80\x8b\t\xb2z\xd0\xbfE\xa1\xd6\xdd\xa2^\xd0\xbfM\x99\xde]\x13g\xc9\xbf\xbf\xc4%\xcf\x8f\xc0\xc0\xbf\x0f\xdd\x1d\xf05\xd8\xde?Uz\\\x7f9\x93\xa1?z\xb8\x17`E\x08\xc1?\x1fK\xca\x13&\x0c\xcd\xbfy\xbcJ\xa4\x8e\x98\xd2?\x0eY\x116\x8e-\xae?$i\xcb\x80\xcd\x84\xc0?\xd1|\x9a\xfehc\xd0?<\x86\x88\xa65\xa0\xa9\xbf\x0c\x14I)\xc26\xd2?\x87\xa7\xf8Y\xc8\x0b\xc3?\xb7\xc5N\x17\xa4\xb4\xc5?\xb9\xa0\x9e\xb2\x97\'\xbd\xbfX\x16b y\xf8\xa1\xbf\xf2c\xea\xc2\xed\xce\xa7?\x1d\x993IA\x82\x8b\xbf3\xa2P\xc5\x90o\xcc?\xc8c\x05\xbf\x02\xbd\xa0\xbfA\xe5\xf8e\x8f_\xda?\xc6\xfc\x02\x1a?.\xd5\xbf-LfO\xe6\x11\xde\xbf\xff\x8f\x19\xb44G\xd9\xbf\xd4cf\xe3\x1c\x0c\xba\xbf`\xd7&?\x01\xac\xb2?\r~\xb1\xe2*u\xd6\xbf5\x12\xed\x88\xb8\xe5\xcc\xbf\xc5\xa34h\xf6\x10\xdc\xbf\xfe\xbd \xb7\xe6a\xc7?v6k\x08\x0e\xb2\xc4\xbfN\xb4\xab\xa5*\x08\xaa\xbf$ \x8f(\xef^\xb4?\xc0\xec\xb5\x80\x1aw\xd9\xbfR2\x0181\x9e\xd5\xbfE\x0c\x10\xab\x89\x8a\xc1\xbfJ\x82\x90KM\xe7\xd2?!\x12\x80\xe2\xad\xa4\x9f\xbfh\xf0\xaf\xf3%b\xd7?\xcf\x1e\xd1"\x81\x1f\xe0?\xf8\xf0=l\x96\xd1\xe8?\xce\x9a>\x93\xda]\xc1?\xa8\xd6\xc5\xac\xca\x80\xd5?{\xac\xe6\xb3\xfe\xaf\xdc?s\x80\xa4\xe17\xb6\xb8\xbf\xed\xbd\x97~z\xf3\xcb\xbfpw6\xa5\x84\x8d\xbf?#u6m\xd3\xd0u\xbf\xfc\xcb.N(U\xab\xbfq\xa3\x10q=(\xd9?\xa1\xb2G0\xdbI\xc5?^#n\x19\xb0\x01u?\xf5{<\xa9\xc4\xfa\xbf\xbfV\xa5\x1e\xa3\\e\xb4\xbf\xf0\x86\x18\xea%[\xe5\xbf\xee\xaa\xc1#`\x02\xbf?LC,\x8d\x9fH\xd3?\xec\n\xc6\xa5\xcf#\xc3\xbf\xfb\x06\x9a\xba\xaf\x85\xd6?\xb93v\'\x01%\xbc\xbfXxz\xb3=\x9a\xa7\xbf\xf6<\xf1\x92\x16d\xc2\xbfz/W\x16\xc0\x17\x83?,P\xba\xcf\xa3\xce\xac?\xeasm\xbb7Q\xc2?\xa8\xd9UH\x9f\xe0\x95\xbfxV/\x10\x07\xcb\xdb\xbf\xddh\xfe\x06\x83\xac\xc2\xbf\xcf=\xdb\x04*\xc9\xd7\xbf\xbd"\xb6\x89\x87Q\xd8\xbf\x9fP\xba\xe6c\\\xd4\xbfC\x0c\xb6\xe9\xe3o\xd2?\x87D\xcf\x03\x1e\xf7\xbf?\x12\x07\xd8\xf4<D\xcf?\x10Rk\xc2q\xee\xa7?Rn(\x02K\xa2\xa2\xbf\xdbO\x8ag\xb2\x16\xd1?\x0f/\x1c\xc1\xa5\xb4\xd8\xbf3\x07\x97\xbf{$\xc0\xbf\x00\x92\x05\x7f\xee\x93\xb8?\x9a\x07\xb4\xd4e\x92\x94\xbf\xe7\x15\x93H\x91=\xd1\xbf\x81\xb8\x98\xe2`\xad\xca\xbf\x87\xad\xe8\x05[q\xd1\xbf!\x81?G\x11A\xca\xbf3\xfc\xeb\xb7\xa4\x85\xd4\xbf\xd1HV\xa6\xb2~\xcb\xbff?\xc2aj\x90\xae\xbf\xf2\x7f\x8f\x13\x94E\xbd\xbfH\xe4_\x13_L\xcc?\xc7\x92T\xe9\x1a\xce\xd2\xbf\x87\x13*\x92\x00n\xa4?\x9bU\xbc\x8a\x00z\xd2?\xea\x8b\xa0\x0b\x19\x99\xcc\xbf\x10\'s\x98\x18/\xc7\xbf\x84\xd3\xa6\'\x8fL\xcb?6\x92\xd3\xbdR\x06\xb5?\xda\xb9F\xa4]\x91\xd3?tw\xbb\xd6\xcb\x8a\xd0?%)/\xb5\xa5\xfc\xaa?\x9d\xc8\xf5\x0b[*\xc9\xbfr\x916\xfe\x11\x93\xb2\xbfyv\xc5\xdb\xd1\xee\xc5?\x82W\xf8\xc7\xf2\'\xdf\xbf\x0f\xcf\xe9[=\x99\xa8\xbf\x1b\x10\x18\xda\xf1(\xb0?\x8cK\xb8\xdd\x0c\x97\xb7?`d\xca \xaf\xbb\xbe?\xb2\xdd\xc1\x1d\x04n\xcc\xbf\x86=\xe3u\xdc\xac\xc5\xbfQ\x85\x8b;\xcan\xd0?ZX\xfc}\xe0}\xd2?M\x9b\x94c\x88\x0e\xbb?8\x8f\x96J\xea\xf2\xcb?\xa2\x00\x0e\n\x03[\xda\xbfII\xc9\xe1\xd5Xo?\xd4\xcb|\xb9\x8e/\xcb?5\x97\xd3\xb6\xab\x1d\xac\xbf\x85]Z\xed\xc1\xa3\xc2\xbf\x1d\xd3\xd0j|\xec\xc7\xbf;_;\xc2\x19\x9d\xce\xbf\xad\xf1\xb5\xf4\xb2\xe9\xb4\xbf\x10\xffu\n\x0f\xe6\xc2?\xb3\xefy\xf4\x16S\x94?x\xb3Sx\xf9\xf4\xc8?\xd3v\xd1\x17 x\xb7?\x99\r\xc0J\x97\t\xbb\xbf\xf0\xd54\xfcn:\xdb?s\x07\x9e\xf3{7\xc4?\xd1Z=\xd9\xd2\xa8\xd8\xbf\xc8\xb3\x85#\x01\x1b\xa1?\x90e\x9f\xc2\xa1n\xb4?\xdfz\xb59k\x92\xc7?\xf1m2\xd3x\xb8\xce?\xc5p\x8d\nk\xe8\xd1?\xd8\xd6|8\xae\xef\xb5?B\xa49n(c\xc1\xbf\xa4N_z9c\xcc?)\xa2\x7f\xdf\xd1\xb8\xc5?:\xaf\r\xb7\xf5\xce\xd4\xbf/\xc1\xa8\x06\x03#\xd3\xbf/\xd8\xae4\xdeF\xcf\xbfO\xb3\xdc\x80o\xf5\xb5?\x9f\x89 W\xd7j\xd4\xbf\xdbV\x8a\x92\xdc\x15\xd0?\xc0\xd7\xb7n\xdfZ\xc6?I\xe3\xecBu\xdc\xd0\xbfv>\x04\xbb\xb5\xdf\xce?K\xc5E>w\x9a\xc6?T\xde\xa1\xaa\x02|\xcf?\xfd"\x91\xad\xb0\x15\xc7?\xbd}WZ\xfc@\xc8\xbf\xb3%z\xf6q\xf5\xc0\xbf\xf3\x85\xe7\xe6\xb3\xd3\xb4\xbf\xbb:\xd0\xa6\x85\xfc\xc8\xbf\xdb\xbf\xf5\xc6\xd7\xa5\x92?\xbfx\x19\xbe=\xfd\xd7\xbff\x07t\x87\xb4\x82\xda\xbf\x88=\xc7\xbd^%\xa0?\x1d\x8d\xe7\xbd\xa2\xcf\xd5?&\xf3\x08p\x8f#\x94?K\xe9\xd7\xd6\xbb\xc0\xc9\xbfA{\xfeH\xf0@\xae\xbf\xd6\x03>>\xa0\xc8\xcc\xbfO8\xed=%>\xcd\xbf\xbc`@\t\x98\'\xc2?#\x9d\xc7V\xb8\xf6\xad?\xab\x91\xa5\xcez\x95\xd3\xbfB\xb8\xcb\xb8\xbbc\x8e?h]\xaa\x9f\xa9\xbf\xaa?\x89\xde\xd8\xfaT\x8ev\xbf\xd3\x95\xc9:^\x8e\xd7?\xda\x82N\xf6}\xed\xdd\xbf\xae\xa2\xb2\xd4\x11\\\xa0?G9\x0e\xee\x95S\x97\xbf.\x9c\xb0\xbfz*\xda?Ui\x0fH\xda\xfe\xc5?\x8b\x18\x8ai,f\xb4\xbf\xbc\xfaQ\x15Y\xfa\xaa\xbf\x93\xea\x01\x1aP\x1e\xc7\xbf/j\xd2\xd8\nW\xcb\xbf\xad\x94U\xf6\x88G\xd5?\xbc\x14\x19\x92b\xa8\xd3\xbf(,\x0f\xf1\xc04\xb0?\\?8.\x86o\xa7\xbf\x14\xb3\xd4\x01y\x9d\xdc?\xb1\xe06\xc0MU\xc2\xbf\x94\x85Hi\x88\x8f{?6\xb7\xc9\xb3]\x91\x86\xbf3\x19m\xef\xb4\'\xb4\xbf@\x06\x938\xcdr\xd4\xbf\x9ds^\xc6f\x9di\xbf\xc1\tu\x849\x88\xd3\xbfo\x9c\xc2\xfb\xaeFy\xbf\xbdL\xbfz\xd9T\xad?\x96a\x97\xb0\xf9\xf7\xc0?\xe7iq\x82\x18\xe0\xb1\xbf\xd7\x89\xf1\xeb\xd1\xae\xa2?I\xbbf\xf0\x7f\x96\x97\xbfM\x14\xab\xa2\xdc\xdd\xbc\xbf\x9f\x95\xbf\xde\x9f\xc8\xc3?\'\xef\xa4~1\xad\xc8?\x87nf\xb5\xdc\x14\xd7?e~\xd7$\xb8\xa6\x7f?\xe0\x1d1\xf6\xe2h\xd1?\x14\xb1g\xef\'|\xe8\xbfo\xef\xb5\xa4=\xc3\xb5\xbf\xee\xd0\xa6\x9b\xa5\n\xc0?\x7f\x9f\xa2\x85\x89H\xd4\xbfL\x85\xddn9\x16\xab\xbf\xdf\xc9R\x12w]\xc0\xbfF\xbd\xb7\xc0\x81R\xb7\xbf7W0M\xdbF\xcc?`\xfd\x08#\xae\xf1\xd3\xbf\x99\x03\x83f4\xa3\xd2\xbfQ\xadn\x03\xf2\xfe\xc7\xbf\xbbG<\xd3\xcb\r\xb3?o\xc8,P\xf3\xc2\xe4?\xf4\xa9\xb4\x94I$\xbd?XM9*\xba\x05\xc4\xbf\x18*3\x160\xcb\xc9?\xfeND;\xd9?\xd5\xbf\x0cC&M\xb1\xb0\xcb?#\xb2\xe2Q.\x11\xa0\xbf%Z\xd4\xbaT\x06\xbb?2\x81l\x1e4\x0f\xc7\xbfg\xe1v\xb3<\xaa\xb3?hC\x17o\xa9\xc2{\xbf\xfc\xa5\xb4=\xf2\xb3\xc5\xbfV\xd8Ld\xf8\xa0\xce\xbf?\x85\x13\xa2MO\xc1\xbf5\x97\x08\x98(\xf3\xe0?\xadW\xdc<|G\xdf\xbfQr\x17V+u\xd0?\xc9r\xf82qO\xd4\xbf\x19\x12:5\xee\x08\xb0?\x14(JU\x08\x8c\xb2?\xae\xc0\x9e\x91\xc8\x0c\xc6?6\xac\x8c\xea;\x19\xc2?\xc5\x11\xear.\t\xc0\xbf*\xad\xa9\r/r\xb4\xbf\xaf\\\xac\xeej\xee\xd1\xbf\xb9X\xac\xdd|\xa7\xd5?\x91\x9f\xfb\rko\xc3?\xaau\xb3m\xcbB\xc8\xbf\xc2`\xbc\x0ef\xfa\xb5\xbf\x95xl\xbdJ\x80\xcb?\xe2\xb4=\xf5)\x0f\xdb\xbf\xa3s\x14\x8ez\xad\xb7\xbf\x8f\r\xfd\xf8\xcd\xc8\xd2?\xf3\xf4(\xc0\xb7\xca\xe0?\xe1\xa1\xfen\x9e\xe5\xaf\xbf,5\x16\xfc\xc1\x8c\xa9\xbf\x17(\xac\xf5\xbb4\xd6\xbf\x06\xb6\x05\xb0NG\xc4?\xbb%\x04YJ1\xb1\xbf ,<\xd85G\xcd?S\xf6WR\x0e4\xc2?\xf0l\x8cQ\x99%\xc9\xbf\xf9\xc3\xbb\xdb \xaf\xb0\xbf\xc8Ii\xb4lw\xc5\xbf\x05\xb3\xee\x0b\xde\xc4\xd6?\xebc\xd4\x80U\xef\xe3?\xe7kV*\xc1P\xa4\xbf\xad\x1b1\x93\xf4\xb4\xd5\xbf{t\x8a\xa3i\x9a\xc9\xbf<S7b\xa3\xae\xc4?\xb6\xf8\xd6\xdf\xbd\xac\xc0?\xcc\x06y\x9a\xf7N\xbd?\xa9N\xef\x18\x88\xc3\x97\xbf\nQz}}R\xbf?\xf0\xd6\x85\xa3\xf6\xaf\xdb\xbf\xe8\x85N\xbf\x8f\xf1\xa2?\xe98\xba\x8f\xea\x89\xc1\xbfA\x85L\x16\xa5\x8d\xd3?\xf1\xb7{[\xac\xa5\xd5\xbf&7\x01\xc3-\x95\xc7\xbf\xc4\xf56:/\xe8\xbc\xbf\xc8^${\x10\x81\xcb\xbf\x8bd\x92H\xd02\xb8?\xd3\x19\xba\x90L=\x97\xbf\xe4m\xea xH\xd7?\xff\x02\x90\xee\xf2\xc8\xd8?Zi\xb8`t\x99\xe0\xbf\xdf+V\xf32\x88\xb8\xbf\xdf.\xc9\xf2?\xd1\x93?9m2)7\xc3\xba?\x01u\xce{^\xf0\x9d?\x8d9f\xe8\x92\xc9\xbf?\xf2\x15\xff\x13\x1d\xc9\xc0\xbfM\x83\xf8\x9c!\xd8\xb3?\xb3\xe9i\xb8K \xb8\xbf\xca\xe7\x84\xe8!\x9a\xe8?\xb7\xf5n\x16s\x86\xd8?\xbe\xbd\x82\xb6v\xc0\xbb?\xf0\xa23\xfd\x17Mh\xbf\x03#\x07\x00\xbc\xd0\xd5?\xf3\xf1&\xe8\xda\\\xb3?v\xb3r\xf4\xff\xe9\xd5?\x07r\x83\x98\xdc\x91\xc4\xbf\xa5\x89]\xe0O\xfe\xb9\xbfal\xec\x12|\xd8\xd2?^z\xe54P>\xd0\xbf\xe8Q\xa5\xe6y\xb4\xd1?\xe5\x9d\x0e\x194\x8e\xd8?\x93\xcbF[f[\xdd?\x8b\xc4\xff\x03\x81\xb1\xce\xbf\xc8_-\xd3\xa0W\xc6\xbfAA-b\xb2E\xd7\xbfF\x9a\x10\xce\xed\xcf\x93\xbfo\xb6\xe2i22\xd6\xbf\x06#\x07\x9d\x8d\xca\xd3\xbf\x11\xab.\x11\xcb\x90\xd3\xbf\xf9d\xdc-\xe2R\xcd?\\\xe3V\x04Gb\xba?\xf3\x8f\x86\xb7\xc5\xc5\xa2?\x14\xec\x04g\xa4\x90\x9d\xbf\xb05\xb4IQ\x86\xca?\x05\xbf\xac1x\x19\xc8?\x1a\xc1\x13\xa8Gj\xb5\xbf\xe2@2MX8\xb2\xbfLW\x15q\xc7\xaf\x96?\xd3\x06\xe5\xf3\xff\xa0\xdb\xbf5\xee\xef5\xb5\x13\xc2\xbfz\xa9d\x15\xa0\xa9\xa4?IvZ\xea;\xb1\xd2?\x0bS`\x82\xd3\xfa\xd2\xbf{\x8eK\xf2\xf6\x0f\xd2\xbfVB\xfd\x8aq\xb0\xc0\xbf?f\x8em\xc1=\xd4\xbfC\x08\xd17\xc4\xc3\xd5\xbf\xbd\xfa\xe0hL\xa3\xc8?]\xec\xb4\xb8\xd1\x8f\xbf?\xf8\x99\xc8\xf4\'\xbe\xb0??\xf0\xff~\x85\xfd\xc1?\x91\xa7\xce\xcad\xcb\xc5?\x07\x06\x1b\xb6k1\x82\xbf\xac\xa2\xdc\xc06\x91\xc1\xbf\x99\xc6\x00\x17 \x15\xb4\xbf\x1fR\xe8\xdf\xc5\xed\xd1\xbfMc\xde\xe9\xfaV\xb2?\'\x06\xdc\xda\x9f>\xe1?\x969\xf1(\xa9\x1a\xd1\xbfY\xfb\xfb\xfb=\x84\x88?/{I\xaa\x14U\xb1?\tW\x9e\x02.7\x9e?\xc4\xcb\x10\xdcE_\xce\xbfZ\xa6\x8c\x18\x89\xb7\xc0\xbf\xdd1i-\xf8\x9a\xc2?\x82,\xc8\xc8\xfa\xf2\xa9?/\x01N%sRp?\xdd\r\xf5\xe9\xe5\xc0\xd5\xbf\x02\x15\xea\xe0J\x1f\xdc\xbf\x81&3\xa1\x90\xc7\xdb\xbf\x1d\xa1\x00\x9f;S\xca?e\x1f\x97\x9cu\x17\xce?\xc9\xb1W\xe9\x92\x86\xc6\xbf\x1c\xae\xec\xc5:\x1b\xbf\xbf\xb96t\xc5c\xd2\xd2?\x1b\xd6\xdf\x01\xde~\xa4?\xea\x92\x1b\x9e\x1c\x94\xc0\xbf4ya\xf7\x96\x99\xc7?\xcbA\x83x\x19\xa7\xc2\xbf\r\\\xa7\x0ft%\xc9?\x01\x04\x13\xf8sy\xcf?\x80{_\xd2/\xbb\xc5?\xba\xe7\xe9\xc0\xba\x82\xc2?\x9a;\xcd\x86\xbd\xce\xe9\xbf\x1d&\xfb_\xe1\xdf\xce\xbf\xbd\xeaT\x8e\x10d\xd9\xbf\xfb\xe5\x1e\xbdi\x86\xba\xbf\xf1\x8d\xe9\xc0\x84\x88\xc3?\x02\x92\x9a\xd9K\xf2\xb9?\xd4\xd7\xd39BC\xc4?k\xb0\x85\x9e\xef\xa1\xc9\xbfz\xc5\xbcXVb\xc8\xbf\xd2\x87\xf5\x01\x83\x0b\xd3?Om\xcb4\xf0\xdc\xcd\xbf\xad5y\x99\xbc\xea\xcf\xbfl\x1a\xcfP\x02\x0b\xd9?\x12\x07=\xdcD\x1b\xc9?\xe2h>\xe0,\x8a\xc4\xbf\x11u\xd7\x13w\x90\x81?_h\xbb\xa9\x8f[a\xbfd\xce\x151\x1fn\xde\xbfb.\xfd+\xa9Mp\xbf\x80\xeb]\xe3vA\xd0?\x95I7=\xb0>\xc1\xbfT\xc4\xff\x12C1\xcc\xbf+\x93\xcaKF\xee\xae?u]Y\xc9T\x17\xb8?\x06\xd4\xf3\x1b\x9d\xc0\xcb\xbfP\xd2\xd0-Y{\xd0?b\tu\xa7\x9d\x05\xc9?\x12\x00\x08w\x8e\x97\x84\xbf.f\xfb\xba8g\xd6\xbf\xd6\x0bF!f&T?\xdd\x91\xb8tK\xf1\xd2?\xf0y\xe9\xa8\xfd\x03\xcf?\xa9Lz\xc8\xd4.\xe0?#\xa1-\x98\t\xb0\xc3?\xbb\x97\x8eY\x84z\xc9\xbf;\x83Oa\xf9\xe4s?\x05E\xf0\x1e\xc1r\xde\xbfA\xe7.\x84\xf4\x96\xcd?MgA,Wp\xb8?!\x02\xd51\x16\x99\xd1\xbf\xb6\x1c\xc8D\xcc\xc7\xb4\xbf\x95\xdd\x114\xd8\x1a\xcc\xbf\xd3\xf3~j>x\xcb\xbf\x0f\x8ec\xf7\xaa\x0e\xa3\xbf/UY\xb9D\xd5\xc4?03_d\xcf\xc8\xd5?\xbfuSm\x00`\xd5?\x1d\xd7\xa8\xff#\xd6\xa5?\\\x0c\x13 \x86\xec\xa2?\xc4\xa3\x8a\xc3C\x00\xae?\xab\x16\x1d\x85;\xbb\xd7?\x13\xc2|i\xb0{\xcd?\x03\\\xff\xee`\x8e\xb8\xbfa"H8\x7f9\xbd\xbf\xa3m\xd9\xc6\xac\x0e\xcf?_\xefeEQF\xb2?\xe0o]\xd0]\xdd\xad?\xec4B\xf68\x05\x92?L%\x97\xa6\xf0\x84\xc4?j.[\xfb\x9d\xb6\xd0?\xe25\xc6\xb4B\xd3\xe6\xbf\xe2\xc6\xa6\xaa\x16\xf7\xc5\xbf8\xa9\xc5\x83\x88\'\xd0\xbf\xc7\x9d,\xbb\x9c\xb3\xb5?Q2\x01w\xe5\xa8\xdc??\xaf$S\xa3-\x9c\xbf\x10T\x00,\xbdn\xcd\xbf\xb1T\xb8\x841d\xd2?\x7f\x00!"\x87C\xab?\xd9\xf5\xb1\x18@\xdb\xd7\xbfb\xf1:\xc6\x17\x1e\x97\xbfo\x8c+\\\xc9\xef\xcb\xbf\xc7k,\xc4\x0e;\x87?\xf5\x8e!\x04y8\xb0\xbf(\x1d\x88\x7f$\xd3\xd2?hd\x1b\xe8_\xcb\x9b\xbf\xb5\x98\x00\xa8+2\xc8?\ne\xb1\xf7\x05]\xbd?t\x8f\x8d\x99!\t\xc1?\xd3$\x84\xc2\x93\x88\xb2\xbf\xc9\x89PF\t\x85\xb9?p\x18\r\x91\n\\\xcd\xbf\\h\xe2\x0euG\xd4\xbfa\xbc\x06\x11_Z\xa3?X\xad~\xb1fp\xbd?R\x1f\x814\x87\x08\xce\xbf\x12\x0e\xda\xcc\xc0)\xb2?\xd7(|\x9e\x87\x15x?\x93\x9f\t\xed\xa2\x98\xd5?i`\xca\xf8\xd5\xe6\xd7?\x8b\xd9\x8aHp\'\xda\xbf\xf8F\xcb\xa7\x85\xdc\xc4\xbf\x02\xfd\xd6\xc5\xaan\x87?(\xa9\xb6\xeb\x12:\xc5?\xf9i\xe5\xf4\x10\xcf\xd6?\x13wBX\xee\xe8\x8b\xbf\n\xae\xc6\x8e\x1d\xfa\xae?\xa5\x15M\x05_-\xb0\xbfS\xf8[p\x18\x82\xc9?\x06\xdd\xc9\xe8\x10?\xda\xbf\xb7\xa5\xdc\x85W\xf0\xa5\xbfF\x8eU\xf89*\xb7\xbf$\x19-\xad\x7f&\xd5\xbf\xe5\x9f\x99b\xebf\xd5\xbf\\\xa16thj\xc2\xbf\xddJ\x95\xdec\r\xd3?\x82Rp\xa3\x07\r\xc4?n49u\x1c\x87\xdb?"\x1fi\xb4K#\xe1?n\xdd\x05\xd1\xd5r\xb9\xbfJ@Oc^\xe0\xd7?\x12\xf5%\xca|\x00\xc6?\xd3\xaf\xf0\x855\x0b\xc7?\xa3\xcd\x80\xa0n\xe3\xd7?\xd3\\\xf3\xcc\xa4{\xd1\xbfC\x11\x84R\'5}?\xba\xd1C8P\xb6\xc9?\x95V\x0eV\xf3\xeb\xb2\xbf\x00\xfe\x04Q<\xa9\xba?c* \x0f\xef\x15\xd8\xbf\xa24\x1c$n+\xc1\xbf\x8c\xc8\xbc\x07<\xd0\xcc\xbfKy\xcf }\x85\xa6\xbf\x7f7U\xeb\x00\xcd\xb2?\xbbBN\x05k\xc0\xd7\xbf\xe0m\xa9\xae\xe5#\xc1?sz\xf6k\x15\xc6\xc1?\xae\x04\xdf\x9ahg\xc9\xbf\xf6.\xf1\x1c\x91/\xa0?K\x96`\x02~\xe7\xc5\xbf\xbe\x03\t\x02\xdd \xc2?<\xbd\xe13\x12u\xc8\xbf\xa5@\xb0I\xee\x95\xc0\xbf/\xf3\x97\x83\xc9\xbfq?\x12\x85\x15\\\xc9\xa4\xaa\xbf\x1f \x8e\xec\x1e\xbe\xd4\xbfj\x7fN_S\x11$\xbf\xa6Yu\xd4\xce\x85\xdb?\x0c\xaaP\x17\xa7\xa7\xd7?3\xd1\x96%4l\xce\xbffB\xd6\xd1\x8e8\xc3\xbf-1\xba\xad\xa3\xd0\xd0?WJ\xd3\x02\x9d1\xc3?\xf3\x9f\xa8\xcc\x87u\xc2?\x1c5N\xc7\xad\x81\xad?\xf4,I\x11\xb3\xd6\xb9\xbf\x13\xa9\x07\xd3J\x8e\xc7?vT\x8dR\x82\xfd\xcf\xbf\xb0\xc2\x90\x05\xf0\x04\xd1?Uk\x0c\xe2\xe7j\xba\xbf\x13x0\xbciZ\xe8?z_\xc7\x04;\x9d\xce\xbf\x1e\xe3\x06V\x92\xc5\xe0\xbf\x01Y\x15\x99>\xbc\xd0\xbf>,\xc1<3n\xca?\xbb\\Z\xfb\xeb\xc2\xca\xbf\x17\xc2\x8f\x19\xb8l\xc2?\x1ax\x00:\xcc\xe4\xac\xbf\xb4^\xddy\t\xaf\xc0\xbf\xc5\xaf\x16\xb8y\x17\xc1\xbf\x10s\n\x87\x00\xf2\xd0\xbf\xf8]7\x13\xfb\x1b\xcc?Rh\xd7&\xce\x90\xd2?"\x17\x16\xc4\xd3v\xd5?\xdc\x1c\xe9U\x13\xfc\xc7\xbf\xfc\xec\xf6\x87\xac\xc3\xd2?\xcb\xe0\x1f\xbc\xcc8\xcc\xbfI\x08\xa6\x96\xd0\xc9\xc0\xbfr6\x06wD\xc2\xd9\xbf\xb1^\xd6\xb6w\x80\xb5\xbf\xd8\x16\xa7\x8e\xd8m\xb6\xbf\\\x8f2\x87\x18\xe6\xd4?Y\xf1\x14\xeaQ?\xb7?\xf7O\x85EP$\xce?Z\xac\xa5\x03\xe7a\xd8\xbf\x03Q\xe6\n\x84\x08c\xbf\x9dc+\x9aa \xb5\xbf\'\x8cF$\xce\xea\x9d?s\xfa\xeb\xe4\x1b:\xc2\xbf\xc6K\xfcI\xb5&\xce\xbf\xf3\x009\xfe9\xb6\xb4?\x9a\x8d0\x06\x0f\xef\xb7\xbf*!o@{\x10\xc9?\r*\xd3#\xbe\xe5\xa1\xbf_\xde\xda!\x88\x8b\xc5\xbf\r\xc1}\xa1\xee@\xd1?\xe3\xcd9\xeb\xab \xa5?\xa5\x11\xdf\x17`\xed\xc3?\xeb=\xb7\xa3\xb7\xb7\xae\xbfT\xa5,.\xf9q\xb5\xbfLDK\xf0\xf4\xc8\xb1?>\xcf=\xfa\x9c:\xcd?/\xa92~h\x8b\xb0\xbf]F4\xd4\xc4\x13\xba\xbf\xb1\x00\x89\xabD\x81\xbe?\xa4\xb8\xe4>\xa4\x0f\xd1?\xb5\xb2\xe7-\x8d\x93\xc7?R\x1c"\xea\xd3\x04\xe1\xbf\x9fO\x96\xae\x80i\xc5?R\xbf\xa0\xa8\x99)\xb4?\x94TEd\r\xde\xb2\xbfF\'L\xffd\x01\xdf?\xdeY\x03\x9f\x1cU\x9d\xbf2\x021\x9f\x8bi\xb7\xbf\x0e\xacCZ\xf6\x89\xc1\xbf4\x8c\xbb\xfa\xc4\xe7\xc0?\xf1Iyq5\x7f\xd0?\xaa\xee\x8d\x03\xb6\xf0\xd7?X\xed\xdd;\\Z\xd4?\xea\xcf\xa0O\xea\xd3\xe0\xbf\xe5\xb4h\x98\xc4f\xd0?*\xc8\xf2,\x84\xe3\xda\xbf\x04\xfb\xc4\xd5Z\xbd\xc9\xbf\x1f\x83\xcd\x89\xc2\xd0\xdd\xbf\x0f\x9aw1vJ\xbe\xbf\x0bBD$\xfb\x16\xd2\xbf\xc01\x06\xfeN\xe3\xc8?\x00\xab\x1b\x1e\xea\xe6\xce?\x8b\x1a=\x9b5V\xdc?n\x9bh}\x01%\xdc\xbf\xec\xda\xa3\x82T\xf5\xd0\xbf\xb3q\xbe\xc0\x17\xf0\xa3?01\x90\xc6i\x83\xa0\xbf!o\x06\x8a\xd6=\xb7?\xd9\xb7\xc8\xc96z\x92\xbf\x10nd\xb7+T"?\xfd\x96\xd2\x06mx\xc4\xbf\x81\x04K\x8d,\xd3\xe6?\xbb\xd5x\xc0)\xd4y\xbf\x00<\xe4\xabI\x7f\xc8\xbfU\xd7f\xe2\x83\xd8\xb6?{\xbb\xe1\xf0x\x8c\xd9?\xb3\xcd\xee\x9eQ\xd3\xc1?n\xbd[\xf9\x94\x03\xcc?\x9d\xaa\xa7\x87\xc2\xd8\xb0?\xa5\xfa\xab\x9f\xf2{\xd2\xbf\xf8P\x00\xeaq\xf6\xc9?\x94y7#v\xf1\xa8\xbfS\x9cWh1y\xdc?\xff\x8a]\xa3-\x9e\x87?E\xcf\xfcW\x8cr\xc2\xbfR\xde\xd9\xae\x86\xce\x94\xbf\x12\xe0u\x92K\xdf\xc4\xbf\xbfO\xf2\x8c\x13\x00\xae?\xa2\x7fm\xb5\xd1\xed\xc1\xbfCPG\x00\x0f\xb9\xd0\xbf7\xf4\x88I~V\xca?\xc3\x8c\x11\xfc\x01\xf5\xc0?\xd1\xa7P>\xa1\x7fv\xbf\xc5\xf7\x1301\xe4\xd1\xbf\xbc\x86\xfd\x81\xe3~\xc6\xbf\xb5\r\x1d\x88\xbe\x1f\xb3\xbf\xc0\xcaJ\xee\xbc\x98\xa5?\t\x8et\x83\x94\xad\xd0\xbf\x08E\'R<-\xc6?\xfdt\x7f\x90\xd4\xa4x\xbf]\xc0>\x18\x0cF\x90\xbf\xeb\xcc\x19\xb9B\x11\xd1?\xf7T\x87%\xcb\x18\xc3?KyEf*u\x93?\xc5\x06\xbb~\x11\xe3\xc4?A\x99\x02\x13\xe6\xc9\xba?5X%$*\x06\xb5?\x99s\x99\xdb%\xfd\xd2\xbf\xa4a\xff\x1d\x89b\xe1?I8m\xac\x99\x0e\xdb\xbf\xa1\x14i\r\xdf\xf9\xd3?V\xdc\x8f\xd8\xd84\xba?R\x93\xb1\x86\xd8\xcd\xbb?\xf1\x12\xc9?\x91H\xd1?Y\xa6\xf8\xf8\x8c\x05\xdf\xbf}\x12r\xac\x1a\xab\xb1\xbf/\x89m\x05\xcaY\xe0\xbfgX*d\xba>\xc4?\x1d\x05\xe3\xcaF4\xdf?\xe2\xe4@\xc6\xaf~\xd0\xbf\xa0\x07S\xd2\xa3\xa4\xd4?\x11(\xfe\xa9Y\x19\xc1?\xbfQ\x1f\xb9e\xb2\x94?\x92wI\xb8]\xdc\xca\xbfY\x15\xe5\x9a\x9d\xa3\xd8?\xd5\xf1"t\t\x8d\xd8?\\9\xc5\x85\xfb\xc8\xbe?\x11\xd2Xb\xa3r\xaf?n\x01,m\xbf\xe1\xd7\xbf\xa9G\x1d\x95p\x16\xdb?\xad}\x05\x83\x10\xb4\xa5\xbf\x9b\x9c;\nk\x08\xd2?\xb6\x8b\xe7a\t\xc4\x95\xbf]\xb3\xe3\xae\rS\xa0?D\x98CB_]\xaf\xbf\xc6%q""\x7f\x9a\xbf\xa6\xdb\x84\xcf\xd1\xad\xc0?\x18\x1c\x83\x94\xdc\x9b\xd4?cu\x0c8\x8ci\xa0?\xf4]\x9f\xf06\xae\x9e??\\T\x87\xa0H\xb2?\xe40F]\x04h\xb9?\x14\xe7T\xa5\xf8\x83\xc3\xbf\xafX#U\x10Z\xb2?\xfdmn\xab\xe3g\xe4\xbf\xf52I\x8a\x97\x06\xbc\xbf#F>\x06\x99\r\xcb\xbf\xcd`s\xc5p1\xb8?\xfa\xe7\x1eS\xbe\xc6\xb4\xbf\rO\xd0^\xe4\r\x9d\xbf\xcf\xe7[5\x12\xed\x9a?B,X\xb1\x87\xa0\xbb\xbf\x8c\xf1\x16\xab\xcc\x19\xc3?\xbc\xc4\x16\xc4\xeb\xa2\xa0?\x1e\x84\x1e}%i\xa5?\x05\xe1\xc6\xad\xb7\xefV?\\\xb5 {\xfb\x91\x9c?r\'4Xc\x81\xa7?\x91\x95\x1b8\x94\xfa\xd3\xbf`\xec)?\xc9?\xa6\xbf\xc5\xc0(\x85\xa4\xd1\xc9?\xcf\xca\xfe\x01a=\xd2?\xa7\x97\xad\x99\xa0j\xa3\xbf\xa9bz\xcf\xab\x9d\xa9\xbf\x03\xa0\xe1\xc5e\xd9\xa9?R\x11\x1d\x15>Y\xdc?\xcdc\xba\xaf`f\xbb?T\x93\xc8\xd2\x82\xb5\xbd?q\xf6\x87\xa3\xc4\xc9\xcb\xbf\x04s=\xc9\xef\xdc\xb4\xbf\x9b\xf8pjzG\xb8?\\\xe5\xc6%\xd3[\xb5?\xa7\xf5z\x04p\x97\xc5\xbf\x99\x08vn\xd5\xb5\xcd\xbf\xe9\xe9A\xd7rx\xdb\xbf\xf47\xed`\x81s\xd1\xbfH\x80\x87<\xd2\xde\xd4?\xf3(\xaeI+\xde\xc8?#bc\x8ff|\xc3?nT\xf0:\x1b\xba\xbf?w\xef\x9c\xd6)r\x9b?\x95\x81V\xca\x9f \xd0?I\x00\xa6"\x86(\xcd?\x15\x9bv\\\xb3@\xd4\xbf\x0b\xfbn\xa0\x97p\xd7?\xd0U)R \xf7\xa7\xbfD\x11\x98\xad9\xf1\xb1?\x86\xff\'\xf7\x02\xfc\xd3\xbfze\xba\xa7\xee!\xca?e7\xa2/J!\xc3\xbf\xa2\xa6r\xcf:\xc5\xb9?0\xc8N\x94\xc3\x84\xd5?\xfeG\xe7\xa1\x01y\xa2?S/X\xe5\x82\xbc\xd4\xbf\x93\xcab\x89}{p\xbf\xd3.&@B\xb2\xd2?\x98\x822\xd7H\x82\xc3?\xf5\xe3\x04GOG\xbb?j\xcf \x1cRm\xd7\xbfG\x9f\xa2p*\xa5\x81\xbf\x92\xef\x1f\xbf\xad\xa1S\xbfuf\xa99\xbb\x1c\xd2\xbf\xf1\xb7\xaf\x1bH\x89\xce\xbf>\x02\x80\xa9\x83\xd3\xdb\xbf\xd2j\x16\x88\xa7D\xa5?8\xf64KW)\xc4\xbf\xe1<\xf2P\'\xba\xd2?\x8c\x04\xf5\x9e;\xb0\xd3?\xdd\xcf\xdd\x9d\xe7\xbf\xcc\xbf\xae\x0e\r\xc6b\xfc\xc1?\xa8\xdeA\xe9\xef\x0b\xd7?,\xe0\x02\xc0e"\xaf\xbfo\xf2\xea\x87f\xd6\x87\xbf(\xb4\x08\'\x18\xc6\xc7\xbf\t\x0e\xf3\xbe\xf5\x06\xd0\xbfpR6\xcc4,\xc1?\xde\xc9\xac\xb4\x99\n\xd9?\xe3\xa1\x11w<\xee\xcc?\xcf\xa3\x15\x185\xa4\xd2\xbfu\xa4\xe4\xbb\xffS\xcc\xbfJ\xa5\x83\n\x99\xa3\xc2\xbf>#\xa23\xef\xc2\xdf\xbfgg\x1c\xa6s)\xdd\xbfU\x10\x1f\x03\rL\xd0?\xffR1\xa95\xb4\xb3\xbf\xfb\x93P\r\xaaO\xc7\xbfa\x1b\x138\xf8N\xb5\xbf\xf5L\xef\xcc\xfa\x91\xb5\xbf\xf4\xcc\x86U\xd1?\xbc?\xac\xa7A\xb2\xb3\x94\xda?\x16\x97>_\xd3\x11\xc8\xbf\xe6%\x87\x13\xd9}\xd7\xbf\xa1\xe8\x13<\xa7\xe5\xba\xbf[\x12J\xa2\xd05\xcd?#\xa1V\x15\xedA\xcd?\xab\xa8\xba4\xf1\x0c\xdb?ycNB.U\xcd?\xee\xc5\n\xa7\x9c\xcd\xd5?9\xbe\x9e5\xb72\xc7\xbf\x85\x98\xeb\xdaU\xd7\xc7?\xd0i\xbb(\xb6\x9f\xc7\xbfu\xa2\t\xca\xa3\x8c\xaa?iG|n\xf5G\xa0?\xaf\xbf<\x12\xa0j\xb2\xbf5\x9f\xb5\xb4\r \xaa?\xe2\xac\xb7su\x05\x80\xbf\xc5\x16\xe2\xbdv\xb0\xc0?}&\x97\x90\x16\x14\xbc\xbf\x97\xc9!\r\xeax\xb0?&\xb8\xd3\x1b%\x85M\xbf]"U\xac\x1aW\xb1?\xa2\x88\xf18}K\xcf\xbf\xe5{\xb1\x13\xc1\xcc\xcf?q\xaf-\x0eH\xb9\xb0?\x1e\xf2\xe8h\xf1\x8d\xd2?Y\x01\xc4s\xce\xd6\xce?\xa3\xec\x00\x8el\xbf\xa9?\x11\x9f\xfa\x8d\xb9?\xab\xbf(\xbfM\x9f\x19x\xc6?\x8a\xcc\x0f\xadF#\xb1\xbf\xff\xfc\x07c\x8f\x9a\xcd?\xc1\x13\\~U/\xd2?Q\xd8S\x0b\x10m\xcf?H\x80\xa1\xbf\x16s\xd4\xbf\xa4 \xd8\x1cr\xd1\xdc\xbf\x08\xeea\x06K\x19\x94\xbf,I\x8ci\x15\xa4\xc1\xbf\xad\xbft\xe0BU\xa7?E\x03\xe3\x89K\xc5\xbc?x\x0e\x07\xc8#|\xa1?3\'\xea\x13z\x03\xd0\xbf\x81\xd1\xb3\x91\xaa\xaa\xbb?!\x8c\xd1\xf8\xd9~\xd4?\x07\x06\xc7\t\x916\xb1\xbf:\x05X\t\x84P\xb0\xbf\x0b\x0e\xbd\xb0;<\x9f\xbf\xe3,\x81\x9d1\xd2\xa3?\xc0\xe6s\x05)2\xc3?\x1f\xe4\x1b75\xba\xdc?_\xc7r\xf9\x16l\xc6\xbf\x070\xcd\x02\xef\n\xcb?\xde\xa8j4\xe1\x1f\xa8\xbf\xf6/\xde\xb92\x8e\xc5?\xbf\x06\xd0\xd3\xad\xac\xbb\xbf\x95\xb6\xb5\x17Z\x9c\xca\xbf"6D\xf7\xc8Y\xd9?\x06%D\xa1\xa5\xc2\xd7?\xa1\xa0\x88\xa3 \xd3\xc0\xbf\xbb\x18=Z\x84\x91\xd1?\xdbI\xb0X\xdc\xdc\xcc\xbfu9\xa2?\x94\xbb\xd9?\xb3\x1cA5e\x0e\x97\xbf\xb9\x0b\x0f\x14C\xfa\xc7?/0n\xeb\xb0\x98\xba\xbf\'bpv\x90\x87\xcf\xbf\xd7\xa7\xf4\xbd\x01#\x8d?N%\xff\x89\x81}\xd1\xbfH\xe7\x1c\xd8=\x7f\xcb\xbf\xa8X}&\xd3=\xd0?p\x8e5\x03\xdfs\xc6\xbfz\x0c\xa9\xfd\x96\x9f\xe0?\x18\xef\xaf\xf4 \xfa\x9b?\x0c\x0e\x1c\x92\x9e\xb9\xb7?\xc3<\xca\x85\xf2Z\xa7\xbf\x11\xa6\x14N<\xb9\xc1\xbfAf5\xf6A\xb6\x95?\xfb,\xbc\xa4\xa2\x03\xcf?\x11\xa7\t\x07h\x82\xcd?\xfe^!#\xb1\x9a\xd0\xbf)\x9fU8\x99x\xe0\xbf\x83\xfc k\x8e/\xd9\xbf.\xacU\xfb\r\xf8\x96?\xd9\x8c\xa4\xad\x90Q\xc4\xbfE\t\x14\xec\x9d\x93\xcf\xbfj\x80\xc3\xda\x8eV\xb4?\xf98G\x140\xcc\xa7\xbfJK\xa1(\xf2\xbf\xb0?\xd0@;\xd5\x11\xda\xdc\xbf\x05\x08\x1f|\xe7\xe7\xca?\x88\xe8f\xc7\x01\xc1\xdf?\xb6>`\xf1~>\xd5\xbfd\xef\x9askP\xc1\xbf)\x00\xff2\x02\x9e\xc9\xbf\tlVI\x95\xa3\xda?\xfd\x94)-D\xado\xbf\x14\r\xbfk\x13\x1e\xd2?\xb5\x8a\xa0\x1fE\x93\xcb\xbf\xd7\x86!\x19\xe4\x82\xc3?\x9d@7\x98&\xb6\xd2?\xc7BJ\x1bo\xdc\x98?\xf2\xb0\x0bnX\xae\xae\xbf\xf9z\xda"\xf8:\xca\xbf%M\x1a\xea\x08\xf0\xd1\xbf8\x1f\xf6\xe3,B\xcd?\n\xad\xe4\xe2A\x89B?_\x1c,j\x0b\x1a\xbe?\x9f\xb6\x84\x7fS\xb2\xc7\xbf)\x03\x1c\x16{\x13\xc8\xbf(\xa3\xb9\xae L\xc4?L\x8bT\xe16%\xdc\xbf\xe8\xccc\x06\x8a\xea\xc8?\xae\xaah\x8a*\xba\xdc?\xff\nK\x15oy\xe3?\x05/(`\x0cO\xc4?}\x95\x80B\xab\xa6\xa1\xbf\x1b}\xc27\x9e\xaa\x99\xbfO\x80K[i\xbf\xb4\xbfqO\xc6\xedk\xc9\xc1\xbf\xdd\xc1\xfe\x885\xa3\xbe\xbfG\r\x15J*\x81\xd8?\xcb\xf3\x966\xc8D\xb2\xbf\xa1F\x88\xcd\xe2\x19\xcc\xbff\xa9\xe7\xbc\xbd\x9b\x81\xbf\x89\xddr\x8a\xb6\x10\xa9?\xaa\x17\x12\xb3n\xfa\xda?|\rE_w\xaa\x82\xbf\xaen\xbc\xe6p1\xd7?\xcdf\xfa4/\x8f\xce\xbfY\xd5:\x14\xd5\xa8\xa0?w\xaa\xe4u\xc7\xc7\xcc?;\x1c\xfd\x14\xecj\xbb\xbf\xfb\x8a\xfd\xeb\x9b\xea\xd0?>\x8a6\x9am\x82\xb9?\x86w-\xdb2<\xc0\xbf\x84\x07z\xd7\xd6\xd4\xd0?\x9e\xe1u\tNu\xb9\xbf\x98\xb5x>$^\xd3\xbfT\xde\x06\x9ck\xce\xc3?\x0e\xb3\x1evD$\xb8?\xb3YJfk\x81\xe1?\xf8\x8a\x15\x99\x13[\xbc?\xf9\xff\x18\x827)\xa5\xbf\x9dD\xd1\x7f\xec\x15\xd9\xbfgs\xcc\xad\x15\xdc\xbe?+\x8d\xf9Q\xe1/\xcc?\xec\x1e\x93\xfa\xa9\xc1\xdd?\xfb\xa2h\xba\x14\xdd\xcc?\xe0\rQ\x16\xc8X\x8e\xbfjX`\xb8r\x88\xd2\xbf\x10(\x15~\xa2\xcd\xd0\xbfbG\xfdX\x03\x9e\xb5?F\x08\xdeLC&\xcb\xbf\x15\xa6\xc9G\xa0\x01\xb3\xbf\x89E\xa8\x00\xaa_\xac\xbf\xa6\x1bR\xe7\xf2\xf3\xeb\xbfg|\x01\x0b\xec\x16\xd3\xbf\xd6\xe2\xb3\xb9\xdcv\xce?\x07\xef\xc2\xa3X\xe0\xd1?\x1c\x8a\x91)W9\xb4\xbf\xc8i\xe1b\x11\x96\xb1?\x85hiV\xbb\x95\xde?\xab\xecy\t\xba,\xb2?y\x08q\x06%\x9c\xcd\xbf\xaaD"\xb0\xd1$\xce?\x03\xd4\xd7\x8c\xb1\x19\xd0?!=\x01\xcf\xda\xa9\xd0\xbfvc\xc5V\x99\xd7\xb2\xbfS\xfc\xae\xee\xb2\xd3\xc4?\x0c\xdc\xa3S$\xb9\xcf\xbf\x1a\xce\xa3\xce1\xc9\xe2\xbf\x93\x84\x03}w\x9d\xcd\xbf\x12\xc6[\xbd\xfc2\x98\xbf\xaa\xf8*\x1c\x92\xbc\xd7?\xba\xfb\xeeb\xcc\xbd\xcf?\xcfy|\x1eX\xcc\xd1\xbf&\xacu\xf3\xce\xc5\xbd\xbf%\xed.\xef\xce\x08\xc2\xbf\xc3\x0b\xe0O\xe9c\xc6?|\xd1\x8ct\xc8*\xb7?40\xd9\xe5\x0c\xdb\xb5\xbf/\x89r\x17\xbeu\xd4?$^\x7f\xaa\xdc\x8d\xc2?\x88\x9d\xff\xa8c \x82?-\xcdqX\x02\xfb\xbd?j\\N;-\xb0r\xbf\x11e"\xd5\xe9\x12\xb5\xbf9*\xe0\x94\xbd\x87\xce?\xaf\xd8\x1d5\xc81\xd5\xbf6>Ue\xb7~\xa7\xbf\xfcp/sA?\xc9?\xff\xb5\x12\xd6\xfa#\xb1\xbf\xc1\x9a\x9f=Q\xd0\xc3?zy\x84N\x83\xd3\xcc\xbfy\xb2&\xf7\xb2r\xc2\xbf\xd6\x8d\xe4\x13\xf8o\xcd?\'\xb2b\xa4\x93\x96\xc4\xbf4\x98{f\x17W\x92\xbf\x92^\x80\xb6\xe7\xf6\xcb\xbf\x1e\xa1\xdb\xfb\xb9\xd6\xd6?\xbc\x17!\x14\x8b\x02\xe0\xbf<\xa6\xf2\xd3,@\xc3?pG\xa4T\xab\x7f\xd4?R\x91\xaa\x8c\x12M\xe6?o+\xeeC\xb8]\xb5\xbfTQ^\x81\xf9#\xd5?\x0cB==\xab\xf4\x97\xbfI\xe0\xf5Q\\\xd1\xcb?\x81\x84\x1c\xb5\xcb\xa1\xcb\xbfJ\x83\xad\xba\xb8\xc0\x93\xbf\x98\xbc\xb2\x19\xff%\xb4\xbf?q\x9f\x07|n\xcd\xbfj,\xdbh\x05\xc8\xc6?\x87!GY\x13\x85\xb0\xbf\x15]>\xeb[L\xd5?+bX\xf5;\xf7\x80\xbfq\x12\xa9jX\\\xc0?\xd76\x85tF\n\xd2\xbf\xa5L;\xff\xf8\t\xe0?J\x96\xa8\x87F6\xb5?\x12\xf7\xbf\x17ez\xc8\xbf'
p54
tp55
bsS'rh0'
p56
g13
(g14
(I0
tp57
g16
tp58
Rp59
(I1
(I100
I15
tp60
g23
I00
S'\x96\xfd\xfd\x88B\xe7\xe7\xbf.\xa0\x17\xc4\xe26\xb6\xbf\xd5\x08\x02\xd0\x8fD\xa4\xbf\x8d\xdf\xb8$;\xc4\x8c?\x1a6\x9c7\x18E\x90\xbf\x90)\xb6\xe3\xa0"\xbd\xbf-\xac\x9a\x13\xcd\xf7\xc0\xbf\xcd\xe5R\x83g\xbe\xb7?"x\x9f=\xdef\xcf?\xf2\xd7\xf2J3\x90\xd5\xbf0\xe6H\xa6\x88\xd3\xd7\xbfy\xe1\xe1Ka\xc9\xbb\xbfQ\xe1 S\x0f\x86\xd6?Fi\x90\xa0\xeft\xd2?\xae\xa9p95e\xb6\xbf(\xbd\xf6\x1f\xfd\'\xd4?\x05b\x1aU\xb2>\xa5\xbf~\x0eLV<\xfb\xdb?\x83\xec6\xd3o\xee\xcf?w\xf5\x02?\xe1\x17\xc2\xbf\xf9(\x0b\x19x\x87\x82?{\xeaa\xd8\xcf\x87\xb7\xbfgS\\\x9a\x14\xb7\xa2?\x97\xf3C\xab\xf6\x98\xde?SB\x7f\x05~L\xd8\xbf\xac\x02H\xffHJ\xa6?\xf1\'\x0e\xa40\xf2\xd5?\x8f\x14\xf32\xfc\xf5\xb4?b\'\xf6\x82~Z\xc8?\x0f\xc0\xe4\xd5\xc4\xe5\xa2\xbft1\xc9!\xb29\xa6?\xc5l.\xaa\x15\xf3\xc2\xbf\x9d\xb6\xba\xf3\xd2\xb7\xd2\xbf\xa0\x0cH\x9a0\xc3u?\x9f\x930v\xc7\x9f\xd7?\xf2\x0fp\xbfnP\xd2\xbf_\x97\x10;]-\xd1\xbfv\x1c\xef\xc5\x18\x11\xc8\xbf\x9f\xdd\xd2\x87Mc\xd4\xbf\xc4o\xbe\xce\xa8\x87\xc5\xbf\xff\xbd\x9a+\xe7\xf8\xc6?^Qq\xa7\x13\xcc\xd3\xbf\x99?0\x97\xaf\xe2\xae\xbfX|7\xa9x\xc0\xf0?=\x8d\xb3Q\xd5F\xdd?\'\x13\x92\x1b\xc6\xf5\xac?%\xc9\x13\x9e\\\xfa\xba?\x18/xb\xbe"\xbe\xbf>.\xe4S\xd7\xeb\xb0?\xfchH\xf0\xff\xa8\xc7\xbf\xcf\x02\x05@Y|\xc2\xbfq\xaa(\xee\xa8\xa2\xb1\xbfF\x1e\x9d?\xd1\xa1\xc4\xbfN\x82B\x1f\xb8F\xb9?\x98\x9f7~\xa7\n\xde\xbfq\xda\xe6a\xe5\x9d\xb9\xbf55"\xd3q\xb6\xd1\xbf)\x98|\xa2\xcb\xda\xd3?\xb0\xce\xcc\xba\xc3U\x92\xbf\xf3%\xccc\x86D\xae?\xc1\x11\xc0`\xa5\xda\xe7?\xbc\x17(\x84|\x1b\xc3?\xb4\x06\x9e\x7f\xacx\xb1\xbfc~|\x1e\xef\t\xba?,\x81\xfb\xf3\xdfx\xc2\xbf\x7f\xb0\x01c\xacu\xb1?"J=\xaa\xeb%\xa4\xbf\x18\x19\x9fv\xf5\x18\xbf\xbf\x11%\x98}\x85\xf7\x93?\xc0\x93)\x8c\x8cR\xd5\xbfW\xd0Lpwb\xc5?\x1e\xa4\x0ejr\xa2\xd1?\xb0\x90\x8d\xee\xe0\xc6\xc4?\xb8L\x0e\x9c\x81\x8c\xc8?\x1a\xfe\xefO7\xa2\xc2?\x19\x9e\xe9+\xd5A\xd0?\xdd\xd3\x0c\x16\x9b\xf4\xa0\xbf[\x05\x8f\xbbs\x8c\xc9\xbf\x8a\xe3\x89\xc6Joy\xbf\xcc\xd9Sa\x13\xea\xb5\xbf\xff\xb0\xb0\x1e\xc1\xce\xc7\xbf\x8f54\xd2\xb4\xaf\xb6\xbff\xc0\xd5|\xf3r\xe2\xbfY\x04\x91\x8cvZ\xb9\xbf\x19\xf2\x80,\x04O\xb3\xbfP\xda\x14\xc2\x98\xf6\xa3\xbf\x04\xdfFs\x19\xae\x9b?\xdc\xb2\x92I\x0e\x03\xf0?\x9c\xbf\xaaI\xf9\xe1\xdc?\x98\xfc\xa7"0\xb8\xd4?&\xd6\x87{\xd6\x9d\xe0?\xb6\xf8\xdb\xbd*\xb0\xc0?*G \x15\x1f\xf5\xd4?\x1fmk\x9b\xb8?\xb4\xbf\x17\xbd\xe2\x9c\x17%\xa0?\r\xa7\xde~Z\xbe\xd2\xbf(\x8d\xe05\x0fa\xc2\xbf\x8a\xa6m\x18\xe0T\xd1?CYp\xe0Y\x85\xac\xbf\xda]y\xab\xb3x\xcb?m\xb1\x9f\x10\x89\xa1\xc5?\x8e\xb0\x86\x8ca\xad\xde?|\xd3\x19\xbb\xa4\x1e\xe6\xbf\xa6g\xc8ONk\xcb\xbf\xc7I\xa8A\xba\xd5\xcd\xbfC\xfe\x01\xc9n\x80\xd9\xbf\xc0\x80\xc1\x89K\x10\xa7\xbf/w\xb3{\xfc3\xa8\xbf0\x16\x1a\xbd\x93\x96\xce\xbf8\x88T\xd4\xc6\xa6\xc7\xbf\xeb\x0f\xe5i\xdc@\xa1?HU\xd6^A\xcc\xc3?\xb1\x95UQ@{\xa3?\xdb\x9afv\x82\x04v\xbf\xa0\xe9\x119\xfa\xa4\xe1?[\x0f\x11\x13m\x91\xc7\xbf\xf5\xafsK\xd6z\xbe?@$|\x0f\x87\xe3\xe5\xbfH\x83wi\x80O\xe1\xbf\xd7\x8a\xa2\x13\xd4\xa5\xb1?\xb0\xdfGZ\xe2/\xe5?b\xe6\xc3\xe1\xdf!\xc6?\xdd\t\x838\x12]\xb9\xbfD\xac\xa2Oc2\xbc?Q\x9e^\xc7o\x92\xa8?\'\xad1\xd4\xb9\xa6\xbb\xbf\xe5\xa0\x85\x84\x1c*\xb5\xbf\xf4\xc5\x8d\xf1#H\xd6\xbf\xcd\x05\xf7\xfc\xc4W\x9b?\xd3`n\xf8"8\xd9\xbf\x82\xb9\xfd\xdf$F\xca?"my\xae\xdb\x19\xb0\xbf2e\x05\x16AD\xe5?\xcc\xfe\xe7\xf3\xb6 \xda?&\r[\x00\x8e\xf3\xa8?\xf3\x06#\x82vT\xe8?\x01\x83\xf7\xc6cv\xcf?\xa0\xf0\xcc\xe5\x986\xe5?-\xa0m\'lX\x89\xbf1\xf7\x83\xa4\x10~\xc3?\x1d\xf8\x9e\x14v\xca\x9c?\'u\x10r\xc6\x01\xd5?`n\r.\x16\xe0\xe1?.,e\x94\xa1\x02\xd8?O\xbe\xa6\xfdA\xe6\xd3\xbf\x14:\xe9H\xff\xb2\xda?\n\xb1<\x18;P\xd6?\xc8\xf4\x12.\xd8\xd5\xd2?\xa8\x176\xef%\xbd\xe5\xbf\xf5\xb9\xe1\xc8\xfb\xfa\xd5\xbf\xaa\x94\x9dl\xc1\xc8\xe0\xbf\xd4\xa4\x1ed0B\xcb\xbf\x1eBhp\xfbE\xda\xbf**X !\x81\xa0?H\xb3\xbb\x8a\xc4\x8f\xba?\x15\xaaZ>\x8d\xe1\xd2?]q\x0b\x1dt-\xc6\xbf~9nb\x8d\xd2\xae\xbf\xc4\x0cc|\xb0 \xd9\xbfF\xd8{\x7f\xb7\x0c\xdf?\x07y\x87\xea\xac\x1b\xc4\xbf5\x15X\x8dLV\xce\xbf\xadI"\x02\xfe\xfa\xda\xbft\xa9J\xf3\xbf\x8f\xba\xbf\x852\xe1\xf9Kc\xc7?a\x06w\xa8YQ\xaf\xbf\xdc\xe7\x9a\xa4\xebb\xbb\xbf\x1f\xaa\xca\xeb\xa46\xc0?\x92?#nXB\xd6\xbf#\xbc\xcf\xa9\x1b\x85\xba\xbf1\x11\xb2\xb6\xfc\xf2\x89\xbf}\x1dx\x92\xa9F\xd2?\xf1\xcb\xb7\xb7o\xa8\xb5\xbf\x00\x94\xde;\xe3f\xc5?L\x0eEu\x8f\xc5\x98?\x06~>g\x065\xa1\xbf\xab\xd12\xaacp\xb9\xbfQ\xc6\x13t!\x1a\xb6\xbf\xd0<;\xb5[2\xdc\xbfn\xb2\x06[e\xfe\x8a?I\xdf\xe9\xc0\xf62\xcf\xbfD\x8a\xe6\xa2\xfc\xed\xca?qE\xfab0p\xac?M\x9cce@\xfc\xc0?!\xfbR\xde~k\xc9?\x918&_O\xc5\xb1?\xdc\xc3\x8b\xeb\x8f\xa9\xa9\xbf\xc8O\xcej\x199\xbc?\x83\x1c\xc4-Q\x80\xc1\xbfnk\xb1\x0815\xb0?\xdc\x95Z\xc9&\xcd\xcf\xbfz\xbd^\xa9M=\x94\xbfVis\x975\x07\xd3?\xb1a\x8f\x97\xf0\xc5\xe0\xbf\xad`\xff\xd5Z\x07\xa8\xbf\xfc>\xceHL\x89\xd1?<\x06+\x11\xbch\xc8\xbf\x05\x1b%3\x9c\xb6\xb1\xbf\xfaD\x06{z\xd9\xce\xbf?\xdf\xcdE\xa8\x9f\xd4?\x82*\x9a\xf7\t\x92\xae?.\x9b\xa8\x80q\xdc\xd2\xbf\xfe/c\x1bR\xee\x83\xbf\x1a\xb0\xe6\xa2\xe0\xa2\xe0\xbf\xf35\n0\xe6\xb5\xc2?\xbflp\xab\xa9\xf8\xcf?1\xc5i\xd7?\x1a\xa6\xbf\xdb\xc8\xc8\xaeo\xfe\xd4\xbf\xcf\xa0/\x88\x9d\xc3\xc2?~]\x1c-\xc4\xb8\xca?Y\x95=d\xec\r\xc9\xbf\xef\x80\xf6\'%\xf7\xc1?<\xe80\x8c\xa3}&?\x81U\xe2^\xb7\xdb\xc5\xbf\xba9)\x0e\xaa\xdd\xd2\xbfb\x8ar+\xd7\xb5\xb4?\x84,Qb\xe3\xb8\xb8\xbf\xc3\xf87\x13c\xbc\xd4\xbfm\xa3\x1aH\xa3h\x83?\xbe\x9b\xdb\xbc2/\xc8?!\x92\xcb\xa4{\xde\xc8?\xd8^\xc6-\x10F\xc7?(\x82\xd4~X#\xce\xbf\x1b\x12\x8e\x109\x14\xc6\xbf>Q\x99\xc1!u\xd4?8-R\n\xadJ\xd4?\xfb\x89@=\xd7\x86\xd6\xbf)\xb1yh4\x1c\xc7\xbfU\xe8\xbb\xd8\xc6\xb0\xc4\xbf}\xab\xcf\xf4\xa4\x15\xd5?N\x1c\xd6\xe5\n\xd5\xbe?\xabd\x14\xc7\xe3\x9a\xc1\xbf=P\x8f\x1d\xef\xbc\xc8\xbf\x0c`/\x17\xb0\x83\xe2\xbfBw\xd9J\x87\xbd\xc4?92\xef\xc6q\x1d\xc9\xbf\xdf\xf7\xc3+TY\xd2\xbf\xb7\x7f\x1a\xd5\x11\x14\xb8\xbf\xa2u\x18_\xe6\x11\xb0\xbf;j)\xe5\xc4\xbb\xda?uL\xbc\xb3\x10\xc4\xd3\xbf\x99@B]\xc6+\xc2?\xdf\xdb1\xa6\xfcj\xd6?\xa9\x1c\xd8859\x96\xbfzj\xac\xc7Y\xac\xa8\xbf~t\x0fL\x1c\x89\xc5\xbf\xea\x7f\x87\x9c\xf0\x9b\xa0\xbf\xcbb$\xe2\x9ct\xc5?T\xf8\x0f\x11\xdaj\xc1?\x19\xfb\x08$\xf7=\xd8\xbf\x97\xd5\xb9\xc3yq\xc0\xbf\x95\xe1\xca@qh\xb5\xbfBL^\xb9\xe4\xc7\xaa?\x1f\x0f\x18930\xba\xbf\xb71\x11;\xd9u\xb1\xbf\x1a\xe8\xe8\n\xc7w\xbe\xbf\xa1\x82\n\xe8\x06w\xc4\xbf\xb3h\xc2\x17\xcfR\xc1?\x8b\xc1j)\xf6$\x9e?\xee]\xfe\x8e!_\xc3?\x0c+\xfc\x92a\x86\xd4?\x0fJ\xf6\xfd7G\xce?\xb1\x97\x9b+7\xe6\xd4?\x81\x96\xae@\x7f\xe6\xd6\xbft\xc0U\xb3r\x7f\xc4\xbf\x04\x9dV\xa8\x87\xd8\xd1\xbf\xfef\xe8\xd3R&\xc4?\xd4\xe1\'H\x0c\x9c\xd8?\xffK\xf5|\xd6\x8b\xe0\xbf\xb8\xb5\x8aYep\xc9\xbf_hy\xdf\x99;\xd0?o\xc7\xc5Ck\x93\xc9\xbf\x9e\xcc\xaa\x1b\n%\xbc?M\xd4\x1b\x8a\xaf\xed\xc0\xbf\xb0\xa3:\xe3&\xc8\xd1?Bn!\xdbq7\xc4?\xa0$\xd9\t\xd7\xc8\xae??)"\xbfZ\xaa\xb8?>\xc0\xb2T\xba\xfb\xb6\xbf\x9c\xc8\xb1\xd9\x04\xda\xcd\xbf\xc7\x97\xc6\x13\xbd\xbd\xa0\xbfG\xd4\xb4\x0e\xe1q\x8c\xbf|\x15H\x9f%\xf9\xa7?\xaa\xca<\x96H\x8f\xbb?\xa6A\xc1\xec\xd5\xcf\xc2\xbf=?\x16|wh\xc8?\xe2\x90\x18P\x82\xc7\xc0\xbf\xd8L;\xae{~\xe5?m\x06#J?\x84\xe2?_\x91\xbf\x80\x1f<\xb7\xbf\xd0l\xd3\xd0\xdd\x0f\xc5\xbf\xb0\x0bB0+\xdb\xba?\x06Gh\x10\xdc\xd8\xad\xbf\x7f\xb5\x89b!A\xd4?\x1c\xef\xde\xcb\x9d\'\xe9\xbf\xc8\xe6\xacM4 \xd0?\x01m7ofW\xdb?\xe9\xf2\x0b\x8d\xb5\x04\xf0?.D\n\xa0\xb22\xdf?\xbe\xdc?\xa26\x8b\xd2\xbf\xcd8\xbf\x8ft\xf8\xb1?\xdc@\xc8\x8e\xdd\x0f\xa3?\xc0\x9a0+Gs\xd0?cEc\xdc\x91\xc6\xd4\xbf\xd50Bq\x9f\xa9\x88\xbf\x930\x13\xcc\x89\x95\xc6\xbf\x8f\xfc\xad\x90\xfd\xc0\xae\xbf\x8e0\xbb\xd2\x9aZ\xa8\xbf\x08\xeb\xcbZ\xdb5\xd4?\x8a\xe1\xfc\xb1\x1e\xac\xcb?\x84\x13\x83\xeca\r\xd6?],\x80\n\xdfh\xd1?Z\xce\xf9\x85\xb3\xaf\xe1\xbf\x97\x12\\\xa6J\xb3\xe7\xbf^\xeb\xad%\xa5\x83\xcf\xbf\x00p\xca\x1c\xbc\xb7\xe0\xbfr\xb7\xe9"\xe1\xfc\xca?o\x82t \xbb|\xc4?\xfd\x13\xd4\xb6X\xbf\xb9\xbf\x98\xa9U\xa8\x01D\xdb\xbf\xdb\x7f\xf3\x0b\x80\xdd\xbc\xbfQ\xe4\xcf&\xf8\xf6\xdb? \xf8p\x0e(G\xde?\xe4\xe7\xe6\x10\x1f\x1b\xd4?6\xe2\n\x05\x9f]\xcb\xbf\xc2\xa0\x08k\xfe\xd3\xc0?\xf1\xfc\xd5\x01\xaf\x17\x95\xbf\xb0\xdeXj\xdbA\x9e\xbf\xd7\xba7x\xf1!\xe7\xbf\xcdo\xa9h\xe6\xdb\xd0\xbf0\x17\x97\xb8\xc4\x9e\xf1\xbf\xe3E\xe9\xac|8\xdd\xbfx\xfb\x9a\xb0\x98?\xce?\xa5\xb7\x84\xddk%\xab\xbfd\xa3u\x04\xe8\xed\xdc\xbfTd\x98\xd9$\xa9\xd9?\xedC\xee-\x99.\xcb?\xfb\x8f: \xfc\x9d\xb5?\x1b=\x90))i\xd9?I\xa5\xaa\xfdf\x85\xd3\xbf\x83\x1eA\x91\xe1\xe0\xc9\xbf\xa8\x97\xb5-\xe8F\xc9?\xfb~0\x90\xe1f\xd9\xbf\x0b+\xa0\x8c\x8aE\xd3?\x9b\xb8p\x0b\xc52\xcd?\t\xf6\xec\x9f=\xc0\xe0?d/_\x0f\x82\xbd\x9d?\xdbC{lN\x9a\xba\xbf\xe0\xe2y\xadA\xed\xcd\xbfG\xe8\x88U\xda\xef\xcc\xbfSqa>\xd1\x9a\xb6\xbf\xc7\xc2`\xc3\xc9j\xbb?\xac\x1d\xf6\xc9\xa6\xda\xd0\xbf\xf6\xd7\x89f\x97!\xda\xbfz \xd4)$\xac\xce?\xfe\x9b \x05&\x05\xc7?\x03y\x1c\xfb\xb5S\xd5?\xa3\x9b\xf3\x82\xab\x03\xc5\xbf\xe6\xc7\x16\x89{\xf8\xe1\xbf\xfc\xd4.\xe9\xa4\xed\xbd?\xf3\x94\xee\xc0\x9b\x06\xd3?6\x07\x81\x03w\x17\xc1?=\x966\x0f\x9b\xa2\xd6?\xf4G[\x99b\xe1\xc7\xbfV\xe1\xd5\xe9m\x8a\xc6\xbf\x00z\x1a\x07\xe0\xb5\xb7?\xc0\x0b[\xcb\x9e\xb1\xd5?\xb2\xa6u!&\xaf\xdd?geF\xaa\x1a\xc4\xb5?\x14E\xf9\xb1Yr\xda\xbf\xfaY2\xcbmD\xd6?\xf4\r\xc9\x0e\x8bJ\xb7?n\xb4\xce\x9a\xef\xec\xe4\xbf@~\xfb\x93"\xb2\xe8\xbfMM\x92P\x9e~\x9a\xbf##\xc7+t!\xb7?\xdek\xf0K6_\xde?\x8b\xc4\xe3U\x8a\x1f\xc6?\xd1\x98d\xc7?\xf8\xa8?\x10z\xd1\xb2\xed\xb3\xbb\xbftx[\xd11I\xc2\xbf\r\x16V\x86\x823\xbe\xbf\x07\xbe\xa8k\x19\xdc\xb7?\x15\x89\x00\xc3\xf6\x92\xaa?a\xc8!\x1b\xed#\xb0?\xe6\x0b\xb9~\xcdN\xb5\xbf\xf4\xd5\xb8\x9d,\r\xcb?\xd3\xa2\xde\xcb\x04\xd5\xaf\xbfV\x9bp\x14\xb7\xe5\xd6\xbf\x02\x9f\x90)\x16\x10\xcf\xbf-Npl\xe6\x19\xed?\xed\xb1:\xa9\t\x1c\xd0?\xc9\xc8Xu@\x8a\xbc\xbfe]g\xe5\xe9\x94\xbd\xbf\xba\xe6\xbeg\xbf6\x8a?\xc7gA\x8a\xaa\xc3\xc5\xbf"=f\x94\xf0\xd8\xb7?\\\xd4\xfc\xf9F3\xd3?\xa9M\xab\x82\x87\xcf\xd5\xbf\xd0\xc8\x04\x18\x9bI\x91?\xbeul\xdd^\x1e\xca?g"\xdcA\x8am\x91?On\xfcH\x11\xb7\xd8?\x81\xc79\xd3:\xf8\xe1\xbf\xeb\xf9&C\xc3\xfb\x96\xbf\xc6\x9e\xa8~\xab/\xcb\xbf\xd0\xf7\\E\x07\xd1\x9e\xbf\x85\x16\x07\xea\xc2\x1b\xb4?\x7f\xf2\xc0\t\xacM\xc9?\xdcM\x1d\'\x0e\x9d\xc4\xbf\xe4\xd9\xe7c\x02\xcd\xb4\xbf:\xaf\xe6\x00\\\x81\xb6?\xe7H\xed \xba\xc4\xb1\xbf9\xc1\xa4A\x9f\xd2\xd6?\x88R\xaaV\x89\xc5\xd4\xbfE\xa5t\xa1\xf1\x84\xd0?\xbb\xb3I\xd2=>\xb7\xbf\x9f?\x10l\xf1\x06\xd8?\x88g-5\xb0~\xe8?\x9b\x84mR\x05\x9b\xb3\xbf\xe0\xbc\xfc\x18n;\xd7?\xff\xc7\xea\x0f\xea\xc5\xbf?\xb9\t\x17:p\xfd\xd1?\xb7|l\x87nH\xc0?\xa3\x05Y\x1aF\x93\xcd?-\x0e\xdc\xc8c\xd0\xce\xbf\xba\xa3y\xf5\x98,\xa4?PL\x92{\x1e\x99\xd1?H\x93\xec\x98\n\xd8\xad\xbf\x88\xca <\x06\xa7\xbf\xbfc\xb0\x95\xebM=\xd7?~\'\xce\x91l\x86\xb6?\xfc\x1b\xf8\x84\xeb_\xac?\xc3\xb2\x19i\x03\x81\xd3\xbf\x9e\x93]\xcf:\x97\xbb\xbf`]\x16\xee\x9b\x14\xd0?\x9a\xef\x04W\x93tt\xbf\x8dZ\xdf\xee4\xb0\xcc?\x17\x10\xf6\x82?\xe9\xca?\xdd5\x1b\x10\xb8:\xc2\xbf\x81\xb0\xf9\x83\x1a(\xb6\xbf3\xdaS\xd0-\x1f\xcc\xbf\xed\xa70\x84T\x9f\xd3?\xb9X\xe3\xda\x86<\xb3?,\x87k\xb1uO\xb4?U>@\xd9\'\xac\xd5?\xe4\xe4\xf1\xed\xa5\x14\xd2?\xa4\xb0\xe6qj\xe8\xdf\xbf\x19\xd7\xdd\xb9i\x06\xc3\xbf\xcc&Wi\xf0\xb5\xc3\xbf\x800\xef\xbb\xe9+\xd0\xbfG \xed6\x8d\xea\xcb\xbf\x10\xabKFg\xe3\xd3?\xb5O={J\xe7\xc9\xbf\xe2\xee\x90\xf7g8\xa2?\x9e\xb1%\xc6>T\xc0\xbf>,\xc0&\x825\xd4?\xc1\x1e\xaf\xd9?\xfe\xc2\xbf1\xc9<y\x07_\xc1?\x89\xd0\xbf\x84\x94\xd9\xa1?\x1er\xdf\x08\x0c\xb2\xae?\xcdO\x9ed\x82\xfe\xae\xbf\x02X\xbb\xbf\xaf\n\xae?\xb0\x19c8i5\xe3\xbf[\xa5#\x8c\xad\xbb\xc1\xbf\x9f,\xef\xb8g\x8f\xba?\xee\xdb\xca\x83\x07.\xb3\xbf\xaf\x1e\xf98m\x07\xe1?\xa5\xf8\xb3N\x07q\xcd\xbf\x82\xea\xc8\x16Q\xdd\xbd\xbfpp5?\x1eq\xc0\xbf9\xc8L\xac\x18\xc1\xb7?\xce].\x07\xddM\xc1?\x9fY\x1by\xd3q\xbc?\x1a\xc2\xbf\x00|F\xcc\xbf\xcdj*\x00cu\xd3?X\x86\x84!\x1b\x81\xaf?\xe25\xfd\x7fM\x8d\xda\xbf\xda\xf4\xea\xd2d4\xed\xbf\x07\xa9\xce\xf9\xe6$\xd1\xbf\x1b\xd8Q\xbe\xe0\x16\xa6\xbf\x86\xf7\xf5f#\xe2\xb8?x\x0bb\x1e\xc4^y?\xadG\x8a\xa9\x8e\x8d\xaa\xbfQ\x9e_\xf2\xbcf\xd5\xbf\xdf\xe1(\xa5]\x10\xc5\xbf\xa9i\xa9\x06\x8b\xbe\xc3\xbf\xae$O\xed8:\xd6\xbf\xad\xbb.Z\x01$\xd8\xbfD\xfb\xfe\xa0_\xbc\xa8?\n\xc4\xc7e\x00\x9c\x99\xbf\xa3\xa4\xb2/\xa8\xb4\xbc?\x11\x1c\xd0~\xa6\xaa\x8c\xbf\';\x81\xb7P~\xa5?\xc6\xc6L\xf1aG\x92\xbf\xdeu\xf87\xa7l\xb1?R\xdf^\x07\x0f\x12\xc7\xbf\xda\x12\xf4_\x08\x16\xd0?\x9c\xd2q\x99W\xd0\xdb?\\1\xad)\x05\x93x\xbf$\x92Y\xe4\x07\x7f\xa0?\xe2\x0fES\xe5(\xb1\xbf\xa0\x07\xe5\x98\x81\'\xb0?k\x1e\x10\x0f\x13\x00\xd0?\xf7\x97j\xbbY\xd0\xe5\xbf\xd2\xb5\x91\xcf@\xdc\xb8?Z\xb3J\xa8\xbfm\xb8\xbf*Y\xa2\x1e\xaf4\xf0?\x1e?\r\x92\x9f\xb7\xe0?\xf4\x1eA\xc5\xe6\xb1\xbf?\xed\x83\t84\xfc\xe4\xbf;\xaa?\x83\xe2Q\xb8\xbf\xdc\'\x9b8\xf1\xc3\xc5\xbf\xf4\xc6\xd6\x9c\xd1\x0c\xbb\xbf\xcdUuB\xc9\x1e\xc2?b\xf0\xaa.v\x08\xc1\xbf\xb72\xd65\xb2\x16\xc0?,\xab\x1c\x96WF\xac?\x9e\xe3\xe6fSR\xc8?\x04\x87\x1bcII\xa8?\'3\x03\x01\xff\x8a\xc3\xbf\x00\xe4\x8f\x03a\x92\xd4\xbf#Y\xed\xd9eC\xb5\xbf\xc8z@gF\xb7\xd7?-\xd7\x93\xce<\xc4\xd5?v\xd4}{\xeb\xfa\xe9\xbf\x14\x08!\xe5\xb5\xc9\xc9\xbf\x8a\xc7\xfaH\xcf\x1d\xc4\xbf\x1a\x98"kx \xa0\xbfK\n2\x9f\xb1\xa9\xb7?\xae\x07\x8b\xa3@\xb6\xa8?\xf1\x98\x81o\xd9\x85\xc1\xbf+\x92\xd2\xf4:0\xab\xbfP8\xddnK{\xca?\x08\x1c\x8b\x1f\x0cS\xb2\xbf\x95\xc9\xe1t<\xe4\xc5\xbf\xb5]\xe8\xe9\x9c\xbd\xd8\xbf1\x9a\x85\xfdV\x97\xde\xbf\xb6\x82\xde-\xb8\xc9\xd7?k\xe9\xf5\x00E\xc5\xb1?BKe\xa5\xdd\x07\xe9?\xe30\xed\x99`:\xc9?\xa1v\x17\x10\xba\xac\xd8\xbf\xa1~3\x1fCB\xaa\xbf\x04\x07x\x7f\xb7\xd9\xc8?\xfa\xce\x8d\xed\xc9Ok?\x89vW!\xc54\x8d?\x04\x88<P\xaf\x81\xb1?\x8fk\x9a\xcc\xb8S\xd1\xbfu\xec\x14\xb2\x1a\xa4\xcd?b\xf9JY\xbb\x1b\xa0\xbff\x8f\xf0\xcd\xab\x15\xb8\xbf\x9bx\x8d]\xdb[\xe3?i\xfd{~\xa7i\xd1\xbf\xca\x8c\xf2Z\x8f>\x95?5\x07J\x9bbA\xd0\xbf\xd4-\xb8:eC\xca\xbf\xe3\xa8R\x80\x966\xe6?\xf1\x1f\xa2"\x8b\xff\xd4?\xda\x06i\xab\xe3e\xd0\xbf@\xc6j5\xf4)\xa5?\x04\x80\x19p\x81i\xdb?\xef\x0e\xe9fT\xfa\xe0?\xa6I\xf2\xe8\xcam\xf2?\xac\x10f\xcb`\x8d\xd0\xbf\xce\x80\x9e\xa2\n\x18\xd9?\xd1\x1a\xfe\xf1\x8b\x05\xab?\xca\x91\xcc\xb2q\xb3\xc8?q\x10)!II\xca\xbf\x8d]\xec@\x06\x0e\xd6\xbf\xbb*DXB\xdb\xc8?\xe2\xd3}\xe6\x168\x97?\xc3\x91Vx\x8e\x14\xd6\xbf\x82\x94\xbd_\x81O\xb5?7W;KJ\xa4\xcb?\x85\x00\'\x8e\xa7\x83v?v\xfa\x8b\x0f>\xbc\xca\xbfeN\xa2\xb0L \xcc\xbf\x01r/\xbe\xf6\xa7\xde\xbfw\x02Y\xe8\x952\x83?6\x04\xcbq\x8a\xbd\x82\xbf\xfb`Tm\xa3\x1e\xce\xbfW\xb2\x1eb\x0e\x13\xe3?\x9eU\r\x0c\xcd\xfa\xd9?\x0e1|\xbe)i\xc6\xbf\xd5\\i\xb9\x97\x99\xd3?\xf6\xf7\xb06\xd6\x1f\xb1\xbf\x12\x17\x9d\x98\xcc`\xdb\xbfzt\x9en\xfe\xc7\xd1\xbf>g{f\xeeu\xbf\xbf\xa1\xfd\x10\xa0\xcc\xd8\x80\xbf\xd6\x16F\x061?\xd3\xbf\xb9\xee\x87\xbf/Z\xe7\xbf\xfb\x1a\x95\xb8\xde\xab\xe8\xbf\x1c\x915\xbfBr\xd4?\xb1Us\\\x02\xbc\xce\xbf\xea;\x83\xcc\x97\x13\x9a\xbf\xd6\x82"\xd1\x97R\xcb?\xe1\xd4(\xe9\x80\r\xe1?\xe61\xa3\x81\xa2\x9e\xd5?$a\xf2\xc3\xad+\xdc?\xfd\x12\x916\x19\x03\xa8\xbf09\xb1\xf5\xe2^\xd6?kwn\xccN\xf4\xd0?7!\x1e\xdb\xae\xf2\xd6?Isl\xcb\xf6\xba\xa1?\x06b\x98\xb2\x93\x93\xca\xbfR\xfb\xef\n\x00\xea\xd3?\x8e\xdf\x14\xb5\xc5m\xc5?\x98\\\x9aaZ\xee\xc1?\x82\xb8\xe3\x81\x81\x9c\xd0?\x03\xa4\xc0\x00\xd4\r\xd2?\x00\xfa\x17\x0b\x9d`\xd6\xbfX\x98\'\\\xbel\x8d\xbf\xf1b\n\x02\xcc+\xb8\xbf\x96*\xfdC\xf3\xcf\xdc\xbf\x82\xd7R\x90eO\xc7\xbfE\rO\xe3tC\xd5?_\xbe\xc9\x83\x86\x84\xcc?\x05\x87D\xc65\xc8\xbc\xbfzx\xdb_\xcf\x10\xc3\xbf\xd6\xc4<\xb5n6\xcf?kL\xf9B\xf8o\xcd?\x85\xb7\x07\xfa\xee|\xd7?\xf0D\x86\xd3>\x9e\xc9\xbf\x01n\xed;\xab\xdb\xa1?\x96\x80\x9d\x8d0\x1f\x81?G\n\x06\x8e\xb5\xa7\xec\xbf\x8a\xee\x94\x00-\xc9\xdd\xbf\x94\xbb/,!\xbf\xc9\xbf\x9b\xac\x01\x14\x95\x96\xe7\xbfGJ\x1b\x92Q\xdb\xb4\xbf\x9c\xb1\x1e\xe0\xc4\xa0\xaf\xbf]\x80\xe8\'\x92\xe3\xd7?\xd1\xa4\xcf\x84\xb8\xa2v?\xb2l\x16\x14"\xa9\xc5?\xec1\xcb<\x16I\xd9\xbf\x93d\x01\xc2\xc2\xfc\xc5?J\xcb\x86\xc9m\xa7\xbb\xbf\x87\x92v\x9b=\xed\xad\xbf\xdd\xe9\xea\xb2\x90$\xc3\xbf\xd5ZA\xe0\xdd\xe7\xa7?\xac\xe0\xfaD\x8a\xa3\xb9?\xcf\xc3\xdf\xa36;\xd6?O}\xb0\x9c5\xe9\xd0?\xba\x92\xa0r~X\xea\xbf\x90\xbd\xedr\xa2\xb3\xb2\xbfW\xdf\x17r\t\xa7\xe4\xbf\xdf4\x114>\xde\xc3?\x01\xc6\xcf\x7f\xa5\xa0\xc4\xbf\xb2\xd5\xcd\xbb\x1e\xdb\xcd?\x7f\x8b\x13d\xc4\xea\xd9\xbf\xd8T\x0f\xf6\xc1\xcc\xda\xbf\xf9\xce\x8d\x05\xb4\xfd\xda\xbfY\xc3\xd7Y\xc6\x98\xd2?K\x7f\xf2W@t\xe1\xbf\x87\x1c\xdfC\xa6\x13\x92\xbf\xc2\xe7\x14bw\x12\xc1?\x85\x97\xe4+\x81\xbe\xd1?j\x97Y\x01\x87\x11\x97\xbf\\\x01\xc93;\x08\xd7?w\x048\x9cr\x05\x8d\xbf\x97\xc6{\nD;\xb4\xbf\x80\xbe\xe7\xf7\x99\x9f\xdb\xbf\xcf\xa7$\x84?5\xcf?c&\xa3\xd5\xbb\xef\xcc\xbf\xc9\x03\xde)vw\xcf\xbf\x83\xcf\xd9\x1c\x94\xf8\x9a\xbf(Y\x8f\xf4\xf3\xe2\xd5\xbf\x00bb\xca\x9b\xf7\xb8\xbf\x05\xb1\xebV\x92V\xae\xbf7N\x11#\x07\xa3\xbd\xbf\xbd\x9a\xa3\x86\x85\x04\xb2\xbf\xffa<\x96\xd9\xec\xe1\xbf\xf1\xae~ \x18\xca\xb7?VW\x15/;\xce\xda?\x83\xf2oN\x96\r\xb5?\x94\x87\xdf{#\xaa\x19\xbf\x9f\xef\x8b6\xcf0\xd0\xbf\x99O\xd5\x9e3R\xc9?\xb0\x15\x9ck\xe8{\x8d\xbf \xabN\xa2\x8ce\x80?\xaf\xff\x9f\x98L\xc5\x81\xbf\xb6\x05\xbf\xda\xf7\x96\x96?\x1a\xcd\xc3~L\x8c\xc4?\xa3\xfa\xc1\xe4\xb7\x12\xb8?\xeb\x1a\xb5\x8b\x98\x8b\xc1\xbfv[:\xe1\x94\x18\xbe?\xe9\xbc\xb1\x99,q\xe5\xbf\xaa\x8e\xf0\xce\x9a\x15\xb6?\'\xae\xc4t\xef\x85\xcd?\xa1Ic\x1f\xd3-\xab\xbf\x0c^4\xc9\x84v\\\xbf\xed\x03O\xfb\xfb\x01\xb7?\x8b\x83o\xad\x9c\xf9\xcb?\xb8\xb3bR\\\x93\xa9\xbf%#\xde\xdbU\x1f\xc3?|\x01F\xe9&b\xc0?F\x7f\x1d\x8e=\x16\xb4?\x8d\xc43\x01fD\xe0\xbf\xa7!\x01\x8f\xfc\xc1\xb7\xbfi\xf4\xfd`\xcb\xc2\xb7\xbf\xaf#BCX\xf1\xf2?_q6AP\x9c\xc1?\xd7\xaaU\xea\x1a\xec\xc5?\x89\xa3\\\x0e\x0b\xe1\xd8?\xa0\x87\xc76,\x7fs?5#\x04\xdf\x80\x93\xb0?\x8e\\Y\x1bp\xf0\xcb?\x84qa\x8b\xee\xcb\xc2?\xfd\xc6\xa3\xb0\x8a\x19\xb5\xbfq\x8b\xb18\x12\n\xc0\xbf\x8aK3Ty\x88\xcf?+At\x80I\x89\xc3?\xb191\xd1[\xdf\xa5?\x9el\xac\xd0Q|\xcd?\x11U\xe4\xd5\x10\xd2\xb3?\x96\xeeN\x98\x98W\xd4\xbfM?\x9fW\x91\xcf\xa6?%\xa6\x17\xd6q\n\xd1\xbf\xf7\xde\xde\x0eD,\xd1\xbf\'\xf8\x06_"\xc5\xb3\xbf!\xf9\xf1\xe8\x18\x93\xc8\xbfJ\xc7[\x85\xedM\xd3\xbf\xa2\x97>q\xcc\xf2\xba\xbf0<\xdb#\xb7\xa1\xc6\xbf\xe3\xe4\xac4i\xa9\xb4?\xc8\x86,B\x83\xee\xca?\x05x\xfd\x19\xe5\x0c\xd7?N\x14aZ\x98\x1e\xde?\x9e\xfa\x18{\xc9\xb6\xa1\xbf\x97)\x92\xba\xfd2\xac?\x18^)\x92\xd8D\xf3\xbf3+\x97\xb9:\x92\x7f?FED{\xff\xb5\xc5?\x10$D\x0b\xfd*\xe3\xbf\xf5\xbb\xc4\x8c\xac\xed\xde\xbf\x95\x18[\x0bv\x9f\xcc?\xc9\x8e\'3\xd5\x87\xc6?\xe5z0\xac<\xda\x96\xbfW\xab)\x15\xa8\xe8\xb9\xbf*\x8e\xa6\x8er\xec\xcb?]\xaf\x8a\x9d:A\xca?\xbcs\xf8\x99\x08\x18\xa7?J\xb6\xd62\x87\xfe\xc2\xbf\xd7E\x9a\xd8\xe0\x14\xbd\xbfr!\xc1\r\x93\x1e\x91\xbfO(\xfe .\x8c\xd1\xbf\x1b*\xba\xfe\xb0\x87\xb3?\xb1BH\x87H\x07\xc4?JF\xf0\xbb(B\x96?\xdc\xc0\xec\xe1]\\\x97?\xe2#\xc1z\xd5\xf9\xca?\xcd\x120\x9fok\xc6?\xc4=\xde\x08\xed:\xcd\xbf\x85\xfexsd&\xca\xbfOg\xce\xfc\xb5\x7f\xb9\xbf\xb2$\xee\xb0\xc3&\xd1\xbf!\xfbo\xe2,\x17\xac?9r?1\xac\x82\xd0\xbfe\xa5d\xf0\x18\xc1\xd5?\xeb\x14\n\xdez\xa4w\xbf\x05\xfd4TR\x1f\xcc?*IW$\xa6\xb5\xdb?\x86\xed\xa8w\x18\x0b\xc5?\xc7\xafeJ\x00\x02\xd3?y[\xecM\xdd3\xc2?,)\x8f\xe9\xb0`\xc8\xbf!\xd0\xe0Ef\xdd\xd1\xbf\xfbd|\xd0\xf4~\xbf\xbf\xb3\xc7\xcb\xa2\xfd$\xac\xbf\xaf\xa3\xb9a3\xe4\xc3\xbf\xef\xb7\xbc\xdfY\n\xa1?yRKq\xf3\xbc\xc1\xbf\x8b2\xcc\xe3F9\xc6\xbf$\x9b\x14\xeb\xd3\x93\xc8\xbf\x13\xd47\xe1\xa0J\xce\xbf\x11\xf9I\xdb?\xbd\xee?By\xc6\xd3\x96X\xbf?\x9aO\xd7\x16n\xac\x81\xbf\xc0\xffn\xf8\xac5\xd8\xbf?\t\xae\x89\xe6\x17\xde\xbf\t\xa2LR\xf9a\xcd?\x08\xcc\x0c\x92\xb6\x97\xa3\xbf;k\x021\xef}\xb8\xbf\xd1\x05ZC\x96=\xa7\xbf\xe80\xeb\xab\xc6\x13\xba?\x0eN\x84\xf0\xee`\xa3?=\xf5\x88\xa5\xd0\xa5\xc0?\xd8\x9d\xe0\x90\x02\x05\xcd\xbf\x18\x89x"\x94\xc9\xca?3\xc6\x06\xc5\xde\x82\xc5?<o\x0c\xe3\x94\x10\xde\xbf\x98\t\x98\xcd\xc8\xbe\xc6?4A\xcc8C {?\x82-\xcf\x1f\x17\x7f\xcd?\xca\x9f\xb3p\xd7;\xc4\xbf\xe7\x18i\x8dI\xa8\xd1?\x847o\x1b\x90\x1f\xc6\xbfR\xf5\x8fY\xb4g\x95\xbfk\xc4\xe5\xf3\x88N\xd1\xbf\xd1\x9e\x8aEZE\xc1\xbf0\xf2\xe9\xe2\x95\xd2\xb5\xbf|\x96\x07O\xc1\xac\xc4\xbf\x8e\x85\x84"\xc7\xda\xd8\xbf\xc5\xed2i%o\xcc?c\xc4\xaa\xed\x151\xbb\xbf\x9e\x1d\xf6ud5\xd4\xbf\x8b\xab\xc2G\xdf\xdd\xcd\xbf\xa6\xdd/\r\xbe\xdc\xcd?\xc1\x1dVT\x19}\xeb\xbfn\xc4\r\xd8X\xda\xaa\xbf$w\x1b)\xab\xb7\xcc\xbf\xae\xf4\xa6\x0f(\x93\xb1?8yzF\x80\x05\x9e\xbf\xcdaK9\xc2R\xd1?\xc4\x84t\xc8\x1f\xb6\xca\xbf\x0bC\xd6|\xcf\xcd\xa6\xbfG\x8a\xe7/\x9d\x16\xaf\xbf{\xd7\x89\xf1+\xd1\xd7?1\xf7\xf4\xd9\x88\xb6\xcb\xbf\xa2#ZS\x16\x0b\xc5?\x84\xba\x90\xb9&9\xd4\xbfqYa\xd8>O\xce?\xd7\xc2\xa1W\x1e\xc2\xbb?c\xbf(\x1d\x90_\xd7?\x02,\xc4\xf2D\xb8\xc4?\xffFfS\x87\r\xd3?.\xcd\xef74\xf4\xda?\xf1\x8ay\x7f3>\xd3?\xac\x9f\xea\xae\\\x92\x8f\xbf\xc0{\xbb\xc3\xa4{\xb6?\xe8\xe4\x86T11\xc3?\xf2\x9d+_\x80\x85\xd1?\xfc\xeb\xeb\x1a\xd3\xcc\xd3?V\xd2\xaf\xa8\xe9\x0f\xcc?\xde\xb2\xa4~T\xc4\xbf?\x0e\xd0=\'\\\x1c\xc0\xbfZ\xa4\x80H\xc1\xed\xc2\xbf\x91h\xb4\x18\x99\xb2\xc8\xbfP\'(+\xe7\xa8\xcb?et#0,`\xc9?\x1f\xc1\xde\xd8\x0cn\xe1\xbf\xcb\x8d\xf4\x8e\xe6\x0c\xd5\xbf\xbf@7\x8b\xfc\xc3\xcf?\xf8}F-1\xbd\xca?\x8f\x0c-\xecG\x93\xb4?G\x0f\xd0\xb6\xb0c\xd8\xbf:;\xdbY\xf1\x82\xd0\xbfB\x01E\xb5\xc3\x13\xb8?\xf4\xaf!\xc7a\xa3\xd1\xbfOu2\x8f\x17-\xd7\xbf\xdf\xe4\x97fLP\xd8?\x8a\r\xe1<\xff:\xd9\xbf\xdc\xe3\xb2\x9d\x1a\xdf\xb9?\x0f\xc0\xa2\xcd\xca\xe4\xc6?\x8b\x94\xcf6\xb0\x8e\xb4\xbfk\xc4\xc1\xa3y{\x9f\xbfp\x9eG\x80I5\xdf?\x97J\x89f\xad\x17\x88?A\x14\x01V\x171\xbb?\xc0Lw\x06\xe4)\xc2?\xfa\x1e\x07\xde\xa1y\xd6?\xd5\x80\xdc\xf6\xea\xf2\xb9?\xa7\x9e\n\xc8@\xc6\xbd?\xe2"\x84N\xa2z\xc2?\xb8<\xa0,\x8et\xb4?*0\x92\n\xf2:\xc6?-~e\xd5D\x13\xe5?\x15z\x02\x99\xf7(\xcc\xbf o%\x8d\xc9#\xe0?~\xd62\xc1<\xc6\xbe\xbf\xbb\xcdhf\x98?\xc2?\xb9P \xb8\xa0\xaa\xd1\xbf\xb90s\xab\xbf=\xc0?\x0f\x16\x92\xff\x11<\xc2\xbf\x14\x0f\xa6\xe3\x04B\xd7?\xad-\x84\xaakD\xc9\xbf\xe6\xa5U=\\\xb2\x96\xbf\x9e!m"f\r\xd7\xbf\xee\x98\xc9@\x13H\xbd?K\x15\xf7Q=\xd8\xcb\xbfe\x90\x92\x80\xb8\xe2\xda?\xed\x9cw\xdb;\xbf\xd4\xbf\x82\xf3\xf5\x1e\x01\xfd\xb8?\x0b\x85\xf9\x04$3\xd5?Uo\x10E#\xfc\xc3?\x95\xcb\xacM\xc3\xa0\xbf?\x0b\x82\xf2V+\xec\x81\xbf4lK\x85_\x9c\x9c\xbf+\xddK\x00\x9e\x95\xcc\xbf\x192\xb2\x9dD\xfc\xbd\xbf\xe30\xe1[H\x8c\xac?(\xa1Ilz2\xb8\xbf\xb0\x97\x06C\xe2\xa6\xc8\xbf]\x18?\x10\x0f9\x93?\x17\xd9\x03\x02\xae\xff\xbd\xbf\xad\xcdC\x07\x1a\xfb\xdb?\xa7\xdfV\x8b\xc2\x90\x9b?\xdaY\xe37\xdd\xc8\xc6?\x053u\x9e\x86r\xab?\n\xe0\xc6\xb0"\xfa\xb5\xbf\xf9~\xe3\xd4\xb6P\xbb\xbfVK\xf1\x04"$\xd8?\x0c\xbfs\x80\x95\x19\xb7\xbf\t\xbf\x05mG?\xbd?(\xf37U\x97\xd0\xba\xbfR?Z]\x01\x19\x96?\x8eH\xcbD3\xa6\xc7?\n\xebZw\xbe\xf2\xc8\xbf\xae\x95\x17\xfcA\x06\xd4?\xa7\xc2\x86\xda\x97q\x80\xbf\xd6\xdc\xfa\x9fvG\x9e\xbf\x99\xe9x\xdb\xe3f\xaf?r\x8c\xa5\x8e\x01\x12\x9b?\x13\x90f\xba2\xaa\xbb?\xc6\x88\x95\xc3u\xf2\xca\xbf]\xf3\x16\x06[\xa9\xd3?\x1b\xb4\x94\xe5W\xa5\xb4?\xb9\x97\xbc5\x11\x17\xbd\xbf8,\xe9\xec.\xb0\xb6\xbf%$\xa4?\xb0\x0f\xcc?\x87B\x04\xd2\xaa\n\xe0?\xdea\x94\x8b\xdeA\xe0?M9\xffo\xf1v\xba?\x8c\xa9I\xf8+\x16\xbc\xbf\xcah\x93\x08\xe4\n\xc9?\x1d\n\xe88\x06\xa9\xba\xbf\x90(b\x02u<\xe6\xbfJ\xb6\xaalu\xe9\xe3\xbfW\x9fXz\x8c\x12\xd5\xbf\x85 \x87t:\xcb\xc8?\xda\xab\xf6B\x11\x9b\xc3\xbf\xf0(\xb9\xf2\x84^\xc1\xbf1\xda\x8a\xe9e\xfb\x94\xbf\xf8\xa2\xb5\x8a6\xd0\xc4?\xc0e\x85\xe3\xaf\xc1\xc7?3<\x9e\xd1\x0fh\xd5\xbfA\x12\x1eew0\xb0?\x02X0\xb4%\x98\xd1?\x1c\xfcF\x07\x99*\x95?c\x1f\x12{\x02\x13\xcc\xbf\xd7Bex\t\x0e\xcb?Rf\xba\xbb7\xc0\xc0\xbf\x9f\xb7\xbaxF/\xbe?\xb0qPa\xaa7\xc6?1\xe2\x00\x8a\xac\xa8\xd5?\xf2\nVQ]\xf9\xd0\xbf\xf1pw\x13\x12\xa6\xc5?0{\xd8\xa05\\`?1\xbf,\x08,\xc8\xce\xbf]\xcb\xba\xedf{\xc8\xbf\x9b\xeae{\xdf\xc6N?~\xaf\xb3\xab\x0er\xc6\xbf`\xb0\x92\x95\x95%\xa4\xbfs\xe9c&\xa3\xe8\xb8\xbfv}~d\x06\xbf\xaf?\x93[\x99\xd2\xb6\x91\xdb?\xa9\x86\xdc{\x95\xc1\xdd?\x031Y_\x8c\xd6\xcb?\x832\xd7K\xcbG\x92\xbfk3\xb9b/\x95\xb7\xbf(\xba\n\xfe\x82\xa2\x93\xbf\xc5\xe3\xd7\xe0\xbcg\xd9\xbf\xf5\xa4\xd4\xe5\xd3\xd2\xc3?\xff\xa9|\x89\x9e\xc0\xaa?WG\x9e\xfd;\xbc\x94\xbfl\xb9\xd5\x9apo\xc6\xbf\x86\xac\x02X\xff\xba\xc9\xbf3\'\x7f\x86\x07\xe5\xc0\xbf\x94c \xea{\xfd\xcb\xbfV9\x07\xdc\xb0"\xd0\xbfK\xdf\x0ep\xcc\xd6\xd9?B\x1c;5b\xcd\xc1\xbf\x93\xfd\x8d\x96>\x82\xcd?\xfe\xf1\xd1\xc7\xae\xd1\xab?\x8d*\xb9r\x88v\xb9?\xb0\x93+J\xce*\xc4\xbf\xe8|\xa6\x19\x1f\xda\xcc\xbfwj3\x9a\x04\x95\xd2?\xad\xba\x00\x9b\x07\xa5\xbd\xbf\xc7!\x05\xf7\xb8K\xb8?f\x07\xa5\x1a4\x98\xcc\xbf\xf3\xf4\xe3\x95\xa0z\xd3\xbf\xe1\xdb5\xe362\xd2?\xe2\xed\xae\x9bB:\xd7\xbf\xc5\x19g\x05h\xa8\xcb\xbf\xcb\xd4\xab\x08\xfd\xfc\xda?1\xbe\x7f\x9b\x9bH\xd0?o\xa5\x1e*\x06\x0f\xd2\xbf\x87Nq\x83\x97\x8f\xa8?*\xf2\x0f\x7f\t\x7f\xbc?\xfa\x9f>\\\x1fU\xa9?\xf4b\xf5"yc\xd7\xbf\x1c\xbf\xff\xcb\xd3\x15\xc2?\xca\xda\xfc-\x02\x91\xc7?\x1c\x0bH\xa3\xdf\x0c\xcb?x\xf1\xb0\xef\xf5\xf6\x80\xbf\xc7\xb48qe\x03\xc0?\xda(\x15\xd0\x0fO\xc7\xbf\xe0\x1a\x89\xcc\xd5m\xc3\xbf\x01(Tm\x84|\xd0\xbf\xc8\xd1Q;K!\xd2?)To\xd7\xbb\x19\xb6\xbf5%\x08f\xfa\xbc\xc5?\xf9G\xd6\xc5{\xd8\xe3?\xd6\xc0\xf32\xa1\xd6\xcf?\x03\x13\xa7\xe7\xd2\xc0\x91\xbf\x82A5\x05\x07\x89\xc6?B\x8c\xba\xc4()\xe0?,\x16\xc9\x97\xad\xee\xb7\xbf:h\x18\xcb\xb4\xaa\xd1\xbf\xf3\xb5\xab\x9f\xf1\x96\xca?r^M\x88\x18\x1c\xc5\xbf\x988P:\xe0)\xd3?%v1H\xa2:\xaa\xbf\x02\x987F\x93%\x88?\x9b\x10\x9a2B\x87\xcc?\x19\xe2}\xa0\x04s\x9f\xbf\xef\n\xc9\x86s\xcf\xac?4\x9eU\n\xee>\xd7?H\xd5\x93\x02\xf0e\xd2?\x9d\xebT\xaa\xf7\xca\xe4?\x92\xc3\x17\x0c\x87u\xb0?c\xf1&\x8e\x00\x91\xd3\xbf\xd5n\xd4\xa3\xc0\xb6\xc4?\xba\x85\xf3\xdf\xfb\xdf\xd9?E\xf89I\xd4\xd6\xdb?\xe8\xc8)\xd7Z\x13\xe4?:2\xd8\xdfy\x80\xe3\xbfW$\xda]\xae7\xd4?\xad4\xa0\xf0\xbdW\xb8\xbf\x98\x1c#\xcc\x15\x1e\xe5?\x9c\xbc\x00\x9f\x81\xab\xd8\xbf\xc3\xcd\xc6\x86\x07\xae\xdd\xbf\x1a~\xe7\xce\xaa\xa4\xdb\xbf\xa5\x04UJk\x90\xc0\xbf\xaf\x1b\x1d\x8e\x9d\xf6\xe1\xbf\xf4[`\xb05\xe8\xcd\xbf\x7f\xc39\xe8f?\xd0?\xe3\xb4\xf3\x0e\xeb\x9a\xb9?\xcaJ\xb7\x11\x1f<\xc2\xbf\xb0]ayO\xd7\xbc\xbf\xef\x18]\x0b\xa4\xe8\xe2\xbf>\x19!\xa0(s\xe3?M\x18oVvy\xc8\xbfb\x96\x98\x86:\xce\xa0?\x07\xebO\xa7Wl\xc3\xbf\xfa\xb2\x88\xf1\x94\xd6\xd1\xbf~\x81k\xc4I\x9b\xcb?\x8e\x9e:\rXN\xc4?D\x12Wv\xf05\xc5\xbfW\x02\xe8=}\x07\xaf?\xec\xff\xea\xdf\xdcO\x83\xbf\xa4B.\xb3\xaf\x9b\xbe?\xd7w\xf9\x97\x95\xbe\xc1\xbf\xc9K\x98\x9b\x90\x8e\xbc\xbf\x87\xc9F\xee\xb9F\xa2\xbfH\xdbX\xca\xf2\xc4\xd6\xbfO\xf0$\x06\x03\x95\xe3?\xb0\x90\x00\x92\xce\xb3\x9c\xbfW\xf7\xcdP\xd2\xa7\x91\xbf{\xa1\xa1\xec|\xe6\xee\xbfSz {\x12Y\xc6\xbf\xca\x83\xa5f\xd5\xa3\xcb?\x814\x8b\xe1u\xbf\xc6?\xb6\xfa\xd1\xb8@\x16\xa8?\xfe\x0f\xd3\x12\xd8\xb2\xb6\xbf(9\x8f\xdc\x81\xe4\xd6\xbf6[\xbc<vO\x80\xbf\xc429sr\xb4\xbd\xbf\x05\xef\x1e\x89\xd8K\xbc\xbf\xa1\x95\xb2\xab\x1fO\xd2\xbf\x96 \x81\x87s\xf4\xbc\xbf(\x8c\x93\xc4\x07U\xd5\xbf6]u\xe0\x87W\xc7?\xd0#7\xfb!e\xc8?\xea\x16\x9e\n\x9f\xcc\x98?O*P\x04\x05\xdb\xc8\xbf>TX|\x8a\xfb\xb4?\xf2\x9f\x9a\xc3\x04&\xc6?\xf3T\xf9UU\x89\xc0\xbf*3\x9a\xed\x98\xb7\xd6\xbf\xa7\xf6\x13}9`\x94?w\xee:A\x8d\xb4\xc3\xbf\xbd\x0eC\x9a8\xb3\xb7\xbf\xbaT\xa6\xdc\x02\xe0\xb1\xbf\xbf,\xbaM\x00\x1c\xcd\xbf\xf4\x13\xbc\x88\xb9\xae\xcc\xbf]\x05B\x08\x16n\xc9?A\xd0\x9bH\xd6\x18\xc4\xbf}\xe7\xdde\xd4\xef\xcc?\xc3{\x9f\xf4\xe1\x87\xd5?}\xcc}\x90\xc4I\x89\xbf\x87\xb4b\xb0\xdd\x03\xc6\xbf\xc8\xd4\xc36W7\xd3?\xdb.\x10\xed\x7f\xc5\xbc\xbf~\xd8\xbc\xa5\x11\xf2\x96?P<g\xd8>l\xbd\xbfQ\xa8\xb4\xd3\xc3f\xbc?\x94\xe06k\xb6>\xa2?_2\x15\xf6b\x95\xb4?h\xc7\xa4\xd4\xec\x12\xc7?\x94\x0b\x86\x8f\x12\x1b\xb9\xbfC\xcf\x1bA\x81\xa2\xc2?\x16\xda\xe2X\'"\xb3?\xb0\xe7\xf1\x89&b\xbd\xbfVa\xb8\xee\xc6a\xdb\xbf\xdf&\xd0\xe0\xcc\x1c\xb6?\x9d>\xc7\xf3\x03`\x9f\xbf(\x03\x8a}\x80\x82\xd4?\xce`-\xdb\xea8\xa4\xbfr\x8b|\xf9\x8e\x88\xb8?*b\x159\xd0h\xd7\xbf/\xec;|\x8d\xe8\xc0?\x8e/\x97dl\xca\xc2\xbf\xe0c\xc7\xf2K\xed\xd1?\xcd\xe6?\x15_\xf0\xc3\xbf\xae\x98$\xfeT\x90\xbd\xbf\xb4\xc2\xde\x17\x82\xa7\xb1\xbf\xa3v\x15\x19\xfe\xc0\xa6?\xbc\xd7\xb4pB\x06\x8c?T\xa1\xc5\x0f\x11\xfc\xc5\xbf\xbe\x14\xe0*x\xc6\xe5\xbf(\xb2pT\x9a\xa3\xc8\xbf\xccE\xc9\xd1Y\xa3\xde?~\x068\xf5"\x0c\xc6?<\xd1\xf2)\x85\xff\xcb\xbf\x9d\x11e\x12\xbc\x80\xb1\xbf\x03\x9e\x9d\x01k\xf0\xc3\xbfU\xa1\xeez\xc9\x98\xa0?\xc9\xa9.<t\x9d\xc3\xbf0\x19\xbe\x80F"\xab\xbfD\xb3\xf3z\xcc\x8b\xd5\xbf\xb8\xff\xe2a3\xff\xde?-\x83\xe1\xb3\x13\xd0\xbf?^T\x8d\xf1\xd0A\xc5\xbfr\xddQQn\xb4\xd2?\xbb\xeb\xed7\xb6\x05\xa7\xbf`\xf6\xcf\xfe\xb1\x14\xa9\xbf\xf3\xa0\xcf\x19\xa0\x15\xc4?\xd6C\x93V}\xd8\x93\xbf @\x98%\xba\xef\xb1?n\x94CM\x9b\xef\xb4?\xee\x10\x1d\\\xd6v\xd0\xbf\xdaC\x1a\xc7=@\xb9?\x8c\'\xc8_\x88\xba\xb0\xbf\xdc\xba{\x87\x81W\xc2?\x04#ZD#;\xcd?N\x88w\xc2\xe1\xfd\xa7\xbf\x9d\xed~/s9\xb5?Y\xbd\xbfTn\xc3\xd1?\x80\xa3\xed\xfa\xee\x08\xd7?\xb6aS\x92\x93\x05\xd0\xbf\x86\xbdv\x92\t\x0c\xa8?T\xa3\xad\xa0\xd4M\xc1?[U\xaa\xa0\x96\x87\xc4?\xd4\x16\xa8\xce\xa2\xec\xd1?\xffBOV\xef\xdc\xd7?\xfc\xc9\xfa|U\xe5\xc0\xbfi\xfd\xb7\x94wp\xc1\xbf-\xff\xfah\x00\xd3\xa9?\x8c\xcd\x81\xb0\xd6\xeb\xce?\xb0\xba\x98\x96\x92]\xb9?\x03BD>\xb8u\xd2\xbf\x0c\xa5\xe2\xac5\x18\xd0\xbfJDQ&\x8c8\x97\xbf[\xb1$#\x1a\x99\xdd?\xc0\xc8\xe5\xb8+!\xd7?\xd4\xcbce\x1c?\xba\xbfKA\xbd\x16\xf7\x16\xd1?\x80n\xe7\xc4\x16\xad\xa5?\xa7e<o\xce\x13\xc8\xbfpXL\x8e\x13\'\x98\xbf\x96@xk\xed\x12`\xbfZQ,SSL\xc1\xbfb\xc7P\x83e\xdb\xc7\xbfp\xf2\x9e\x11i\xff\xbd\xbfGMf\xcd\xe3\x03\xc9?\x14\x86\xf8\x80\xe8\xb3\xd4?\x9f\x04\xf8m\x9d\xe6\xc9\xbf\xf8\x17~L\xbe\xd7\xb6?X\xa3\xbd\xcc\x81\xae\xb6\xbf\x12oj\xad\xb3\xa0\xcd\xbfNJ\xce\x1c\xa1\xa8\x87\xbfH\xd3\xd5\xd3\x88\xbc\xa6?\xfd+C\x1bB\xd1\xca?\xd1b\xf0d\x07:\xd0\xbf\xee\x97\x17\xc6\xab\x8d\xc2?\x15\xbc\xf9\x90=*\xb0\xbf\xdd~\xb5\xf8\xe6X\xa7\xbf\xde\xd0\x00\x8b\xa2\xee\xbb?\x0e%+\xdf/P\xd2?\xcec\xbduh\xc6\xac?\xae,\x97\xed\xcd\xfb\xd6\xbf\xd8\xe9\x98\xa11y\xdc\xbfUCB\x87\x97\'\xce\xbf\x98XK\x1b\x9a\xbf\xda?\xba\x19\x17\xc5\xa5"\xc2\xbf\xb4\xe4Kd\xfe\xa4\xc6\xbfnK\xd8c\x89\xff\xb1?\xbf+\x08%O=\xba?d\x12_2\x01:\xb7?\x19\x019\xf3Y\xf4\xb7?\x16\x8dQ\xa2\xc9\xf3\xcd?F\x14\xb8\xe5\xe1\xe2\xb3\xbfTR\x7f\xf9\xe4\x11\xde?\x02\xab(\xab]<\xce?M9@B\x86I\xcc?\x81\x04\xfa\x11\x02\xd6\xbb?\xe6|\x0b\x81r\x90\xce?\x80\xcd\xea\x18\xa7J\xb6\xbfu!w\xadg:\xac\xbf\x84\xb6\xde\xb5\x8c\xd0\xf1\xbf\xc9]h\xbf\r\x10\xde\xbf\x05"\\\x81\xcf\xf4\xe6?+\xbe6\x1a\xd4\x87\xce?\x8dKFo3\xed\xa1?\xfc\x8e\xb6\x98kG\xa7?\xa2\x1f\x19\x92\x80~L?I\x02f\xfc}\xe2\xd1\xbf\xed\xd7#\'\xbc\x8b\xc0\xbf\x8a\x19=\xe9\xb2?\xb1\xbf+X\x0fU\x8c\xb3\xd3\xbfW\x15\xb0\x02m\x1c\x95\xbf\x9e\\\x9d\x12\xab\x1a\xaa\xbf\xc7\xe6f\x94\xd6Y\xa9?\xa7\xe9\xf4\x1c\x19d\xcf?\x9f\xa8#\x9a\xd4x\xdd\xbf\xcc\x8b?\xe4\xd7\x1a\xa0\xbf7\xaa,5]5\xc4?\xbb\xcf\xa4\xb1\xf3\t\xc7\xbfaM^\xdb\xc0\xb8\xd4\xbf\x86z\x12:\xf8\xcb\xa9\xbfIJ\xce\xf7[\xf8\xb3?\xcc\x94\xbep\xa5\x81\xbd?\xb3\xbe\x86T\xd2\xeb\xc0?H\r\x86\xfa\xb6\xc2\x87\xbff\xb5\x14\x83W,\xd8\xbfJ\xf5+\x9bR\x96\xab?\xa5\x1c\x0578M\xda\xbf\xa6\xdf\xdc{\x04\x9c\xa4\xbf\xf36\x80tHd\xe2?\xcc\xc7\xe9`\xb1a\xdd\xbf\x07Pe.\xed\xc7\xc2?\x9fc\xf9\xdc\xe1#\xcb?\xc7`\xf6\x96\x1a\xee\xce\xbfi\x8e\xe6t\xfc\xe8\xc8?aq\xc0\xd6\x00W\xc3\xbfI\xd1|\x02\x04d\xd3?\x14\xf1\xddE\x03\xea\xc5?\xc6\x11v@{a\xcf?3\x9f\x17\xe1\xec\xc6\xc1?\x0c\x0eX^\xe9j\xbb\xbfW\xe6\xed,\xbc\x81\xbf\xbf\xd5\x7fkS\xd5\xc9\xbb\xbf\xbe\xba\xb8\xa1\x8b5\x9a?_\x1b3\x9a\xb9\xbc\xc4?\xab\xf9\xb1+\xb7\x8a\xd4\xbfB@\x9b\xf0\xe8\x8f\x9c?\xc0\xad\x1f\x00\xbf\xe4\xcf?\x98\x8f\xbb\xa4\x12\xb6\xc3?\xce\x16\x814\xc2_\xd1\xbfY\xb9\x1c\xd5"\xe1\xdb\xbf\x17\x1dh\x8c\xbf~\xae?\xcb\xb0\x8a\xa2\t\x19l\xbf\x7f\xd7-\x82\x18\xa1\x96\xbfE\x12O\x96\x99\xa6\xdd\xbf*\xd9\x94-\xc4\x05\xd8\xbf\x7f\x18\xab\x80\x05Y\xdb?$i\x00\xbb\xd6\x97\xc7\xbf\xc0\xbf\xf5C\x8cg\xc1?q\xc8z\xc3x\xa5\xa6\xbfl\xb6\x15?\xf4\xdb\xc1?]\x07_\t\xdfA\xd4?\xddH\x82\xc4Q#\xeb\xbf\xa3\x8b\xef\xf9Om\xca\xbfj\xb8\xc0\x06\xf1\x00\xa4\xbf\xc3\'\xe1l\xa6~\xd4?\x06\t\xf4\xb3T\xd4\xc1\xbf\xc99C\xa6\x11\xe4\xce?\x8f\x7f\xc1\x19\x84\\\xa4?y^\x8b\xb5\x85\xd4\x9d?\xa04\xa3W\xc1\x1e\xd4?\xad\xf7\xb6?\xa0\xd3\xbe?>D\xb6\x14\xf2(\xbe\xbf\x01\x1a\xe7=\x02\xf3\xb8?\xd3\xb6eK\xcb\x12\xbb?\xe3Q\'\xa9\xfd\xab\xc8\xbfr\xb8\xe8V\x00\x04\xd4\xbf\tl\xdfp\xfc\xb2\xc4?\x9b\x8a1\x05\x8a\xaf\xc2\xbf\x14\xc6\x8d!\xbbL\xe0\xbf\xe6\x85>\xf8~\xc0\xd2\xbf\xeb\xa8+\x17\xe2\xfe\xcc?\xf1\xb6\x04\x7f\xe4.\xd2\xbf\xa1_8?\xfcL\xa2\xbf\x80\xdb\xc5\xf7\xf9\xb7\xd2\xbf\x9e\xad\xca_)\x9a\xe2\xbf\xf7\x88\xf3&\x08\x03\xce?\x9b\xd2B\xee\xc3\xe9\xda\xbf[a6bl\xd6\xc5\xbft\xac\x83una\xe5?\xeaf\xf0\nd!\xd1?\xfd\x95\xdfT\xcck\xc6?\xae\xd1\x93H|s\xe4?\x054\xdd\xe7\xa3\\\x91?\x8e\x0b\x9a\x92\xf57x\xbf\x01\xd4\tn\x1f\x18\xd6?!C\xd1\x99\xc0\xb4\xbd?<@\xa0\xee\x1f\x98\xc9\xbf/rSVxs\xc2?\xcb\x19\xde\xf8XL\xcd?\xc7\xa3J\xa7\xda,\xc1?6\xed\xf1x{\x14\xb2\xbfRJ\xef\xfa$\x01\xc5?\x94\x10\x9f\xe1\\+\xd7?\xe0\xf3\x9a\x117o\xc9?8_\xddbL\xf4\xc3?Q\xcan\xbcRw\xd7\xbf\xb6\xbf\xe9\x82\xcfl\xb2\xbf\x06\xc1b\x82\xc4\'\xca?SB\xd7/\xe6\xce\xda\xbf\x037\xf6\xb2\xadn\x8c?\xe7\xc6\xd6s\xcb\x97\xc2?\xda\xd2\xb93\xd4\xbf\xc2\xbf\xbdY\x1a\xea\x85\xd0\x97\xbf\xf4\x7f\x85\xbfZ\x82\xcd\xbf\xb74+[O\xf5\xcc\xbf\xa6\x06\xdd\xde\t\x1d\xb0?QF\x9a,O\xe5\xd6\xbf\xed\xdfx(\xbe.\xd7\xbf\x83|\x92J\x9d\x1b\xec?\xf3G\xd0\xa2\xc4\x05\x9e?\xb8X\x15\x0b_\xca\xd1\xbf\x9f\xc5\xd4m\x18Z\xc6?|\xd2\x911\xe8\x14\xc6? \xbc\xf0\x0e\xe5\xaf\xce\xbf\x1a\x14\x1d\xcc\xfdx\xd1\xbf\xf5\xc8\xc9\xbf\x12\xe4\xbb?c\x06\rM\x9cb\xaf? \xdb\x91[Y \xae\xbfR-\xa4\xe4\xa40\xe0\xbf\xc5-4j\x82[\xe5\xbfK\xcd\xb8\x06\xbd\x0c\xb7?\xdb\xe4+U\xc6y\xa2\xbf\x00\xa8Y"{K\xbe\xbfD\xa2\x94`\xeb\t\xe2?\x90\x8b\xf0#P\xcd\xda?\xb5\x9a\x9a= ;\xe3?B\xd6T\x9aY\xc2\xe7?\xd4\x85\x07\xd2\xc8\xf6{?8\xfeFJ\tk\xc8?B/\x82\xcd\x0c`\xa3\xbf&\x1e\xdb\xc1\xba>\xc4?\xce\xd1\xb9\xc9aT\xbe\xbf\xb8X\xb4\xbf\xd0|\xc3?\'\xf9\xaazuz\xc8?\x06xD\xaf\x13\x97\xcf\xbf\xcch8\x82/s\xbe\xbf\x00\x7f\xf7\xf1\xaf\xa6\xc1\xbf_\x1b*BY&\xcd?\xd1\xfe\x8b\xcb\x06W\xaf?\x0fcP_\xdc1\x95?\xf2\xa6{\xeb\xd3\xd0\x93?;\xac\x0f)\xdbO\xc7\xbf\xb2-C7K%\xc4\xbf\xeb\xb7!\x99\xad\x12y?\xda\xc5D\xfe\xf2`\xcc?x\x8d\x9b\xeeo\xb3\xcd\xbf\xa56\x07\n$8\xae\xbf\nAZ\xb3\x1f\x8f\xa5?\xd4{A\xee\xf2x\xd3\xbf\xe3\x97\x8f$\xeb\xaf\xc5?\x82\x146\x04"\xbe\xe0\xbf9n\\\xe6\xb8P\xc1?7\r\x9c\x85s?r\xbf\xf9\x15#\xfb\r\xd2\xad\xbfnE\xc9\x83\x8cS\xc7?V\x06\xad\x8c\x96\xa1\xc2?\xa2b:E\x880d\xbf\x0b|\xd6\xe5\x12\xe1\xc9\xbf\xb0\xac@\xd6\xf9`\xb0?\x81\xf3\xde#\xa7\x13\x90?Y\xc3\xed`\xb3\x9d\x80?2L\r\x0ef7\xc6\xbfg\x16\xebz\n\n\x9a?w\x1e\xd8\x8d]\x0e\xd1?\xfdCc\xe3T\n\xd3?\x991\x95O\xa3\xf7\xe5\xbf\xb7\xfek\x1c\xf4\x13\xc7\xbf\xe4"Q;\x94F\xc3\xbf\xa9\x1aK\xbb\xdau\xd5?$\xa7;>B\xa3\xa1\xbfr\x17[F\xe1\xf5\xb5\xbf;\xc5\x9b\xbebY\xb7\xbf\x80W\xbc/V\xb4\xda\xbf\xa5\xca\x10wh&\xbf?\xbe\x08\xaf?\x14\xb4\xa2\xbf\xe7\x9dE8\xf4\x9a\xcf?.zmQ\x95\x01\xca?\x8c\x11\x98e\xa2\x1b\xc4\xbf\x1b$\x8e\xbeU3\xd7?\xf4i\xc0\xd0&4\xd0?\xeb\x1f\xec\xceF\xc5\xcc?.\xde\x01Y\x85\x8c\xc5?\xea\x8e\x8b\xcc!8\xbf\xbf\xcfEs@\xa3\x02\xf1\xbfE0\x0cVM\x82\xbe\xbf\x13\xe2^\x95\xcd`t?\x95\xfa!\xbc\xcc"\xdf\xbf\xaf\xb1\xcdY`(\xcb\xbf$\x1e}\x19\r\xeb\xc8?kj\xc1t\xcc\xff\xb6?\xafuz\xc9\x84\xe4\xb6\xbf\x82\x0e]\xc6\xd9\xae\xbb\xbf\x08\xa9\xc3\x04\xfb`\xaa?\xb1\x9c\xb9q\xc2\x1b\x9e\xbf\xe4j\xb1\xee\xdf\x15\xbf\xbf\xb3\x10\x98\xbcEW\xe0?u\xa3\x9f\r\x91a\xc5?\x10Lm%\xfdl\xc2?\xb4\x9cT\xe9\xaf\x8c\xe0\xbfR\xdd\xee:u\x97\xa0\xbfU\xe1s\xc0\xe6\xed\xb4\xbf\x95\xdfOL\x0fv\xdc?\xf2\xb7\xa1\x0b\xbe\x8a\xd1?*\xac%!\rG\xb3?\xc0\x12\xb9@.\x96\xc8\xbfu!&\x99\x1e\xaa\xc5?8vy\x8b\x8f4\x97?\x1d\x87\x96\x91R\xcf\xcd\xbf\'\x0e\xce\xdc|\x19\xbb?;\x1c\x0eC\xb9\xa3\xd1\xbf)\xd1\t\xff\x7f\xc7\xe1\xbf\xb2\xc1\xec\xc9\xbbG\x84?H\xe3\x98mg*f\xbf!\xae2A\x95\xc6\xee?\x0c)c>\x8bW\xb8?\xf0\xa9\xcf\x81z\xc4\xc3\xbf\xa6d\xbe\x19R:\xe3?5\xdcmuV\x17\xb4?~,\x8bH\xae\x10\xd3?\x0b"\x19\xc5\x10(\xe1??i\x15\xb1\xe1}\xc5\xbfK\xa7;\xd7\xe3\xe2\xa0\xbf\xb1\xee\x89%C\xc2\xd0?\x8a\x8c\xa9\xc3p\x03\xb9?\x13\xb2\xcc&\xa3?\xe0?\xa8q\t0d`\xe0\xbf\x14_\xd7c\xbf\x9f\xd4?\x8fN\x8b\xf7\xfb\xef\xa4\xbf\xe6\x9a\xcf(\xe6\xe6\xe9?\xf0J@\x10E\xcd\x97?EYX\xa8\x0f\xf1\xd6\xbf\xaeq\x18\xd8\xc9\xe3\xc1?bk\xda\xd3\x8f\x12\xd0?]\xa3\x96\x991\xa0\xc0?\x17\x8am\xef\x16&\xc8\xbf\x1b\x82*\x991\xd1\xbd\xbf\xaa\x8f\xf5\x12\x8e#\xb2?\xf6\x8e5\xa7\xfc\t\x88\xbf\xb8\xe5$\xd2NA\xbc\xbfI\x97\x17S\xc5\xb0\xc6?j\x1b\xfa\xe7x\xf9\xe0?p\xc5\x88SLA\xc9?\xf8\xddOd7Vr?\x89T\xda.o\r\xe0\xbf\xca\xdb($\xd0\x89\xb3\xbf\xe3\x82\xac\xa1\xad?\xbc\xbf\xbf"\xd51i\xea\xcc?\xa5\x80\x8a[p\x15z?q\x0c^\x82\x8e\xabn?^\x9e\xdbF\xd4d\xa4?j\x8ff\xf4\xd1\x93\xc9?`\\\x8e\xa0\x8a7\xc3?8K\xee\xe3\xad\x11\x80\xbf\xbe:\xda\xf8Q\x8b\xa9?CU\xc8\xb2;r\xc0?\x16:\xa1\xd6X\r\xe7\xbf\x82\x90X\x8a\xd6\x05\xb1\xbf\xab\x02\xd80\xac\x86\x93\xbfx^I\x8a\xf5\x12\xeb?\x03\x15\xf11\xee\x18\xa8?\xc7\xe2i\xb9\x10\xfa\xca\xbf\x06\xf6_\xc9t\xab\xd9\xbfU\x85\x1as\x00\xba\xc8\xbfZ"\xe8k\xe8%\xe3\xbfw\xf7\x00/\xef\x83\xb4?\x13\x9e\x83\xe1\x94\x97\xa6\xbf\xde\xda\xb9*+\x8b\x82\xbf\xfeX\xbc\x97<\x0f\xc3\xbf\xf1Y\xbc\xa4\xdb}\xc4\xbfm\x13#\x1fG\xbe\xc3\xbfx\x02\x9a\x89^p\xab\xbf\x9a\x96\x8d\xd6\xb8\x0f\xc2\xbf\xf9\x93\x027\xb6\xb9\xd3\xbf\x15\x8b\x85\xf7\x05\xa5\xe3?h\x10\x1d\xe2\xab.\xdd?\x011)~\xe3\xa9\xc5?'
p61
tp62
bsS'oadds1'
p63
g13
(g14
(I0
tp64
g16
tp65
Rp66
(I1
(I15
I100
tp67
g23
I00
S'\xe5$\xb4\xa6\xaa\x8c\xd3\xbf\xb0/\x05\x1aT\\\xa5?0)\xcf\xb7\'\xc2\xc2\xbf\x07\x93\x8a\xab\'\x83\xc0?|[\xde\xcf\xd3@\xc4\xbf\x02]\xb1\xb0\x98"\xc8?\xabU\x9b\x91.\xda\xce\xbfaC\xd6\xb7\xb1>\xde?v\x9e\xa6N\xe2q\xb0\xbf@\x8a\xbf.\xd7K\xcc?\x05\x9d\xa1\xe9\x88K\xa6\xbf\xae\x051i\x9f\xbb\xc0\xbf\x9aNbd\xb3\x01\xca?\x1c\x8f\xdd\x98\xe0\xf1\xd3?3\xe7\xd9\xc2\x90G\xc3?\xe7|y\xff\xcac\xdf?\xb3\x8eo\xeb\x9f\x91\xe0?q5)\x87s\x98\xb4?la\x8e\xcb\xcf9\xdb\xbf3\xb37x\x14*\xf3\xbf\xec\x02\x90\xf3C!\xcf\xbf\xbf\xd0\x97@P\x18\xa5?\xaei1gh\x17\xca\xbf\xbdf\xb0cP\xcd\xc4?\xac\x96\x08y\xb7\xb4\xc0?T\xf2I\xd5\xd3\xb6\xc3\xbfs\xe7\xbcp\x01-\xc0?\xa4\xc43\xde\xa5\xfe\xbb?\x80D\xb7\xa7\xf9\xc3\xd3?$jgZe\x98\xb5?\xc33T\xc7\x1a\xb7\xd3\xbf6\xe4\xf0\x83\xb5Z\xbc?4\xd1*N\x0e\xa9\xc3?\xf6\xe8r\x91\xa4\xc8\xc5?\xb2\xadt\x94q\xde\xbd\xbf\xcdO<\x81fR\xd4?\x88\xadR\xebC\x05\xcb\xbf\xf4\xe7}U{\xcf\xb3\xbf5\x8a\x93\xa6\xc3V\xc0\xbf_\x83\x05\xe7 \x9a\xc8\xbf\x8e\xe1\x1e\x95\xac\xff\xd9\xbf|\xa1\x00\xadr\xf5\xc4?\xf95M\x12\xb4e\xe6?\xf5\x85Xb)\xc5\xa1?|\x90\xdd|\xde\xdc\x9d?\xe4,7D\xd2\xcb\xd9\xbfL,\t>\xdc9\xa6?\xa1\xe3v\xd9ij\xb9?\x8db\xd7\x1b\x1c(\xc3?\x9e\xeed\xde\x19\xa2\xd3?\xf94o\xf02\xa8J?+\xd4P\\4\xcd\xab\xbf\xe8\xc5\xdea\xd7\x99\x80\xbf6\xde1\xd7O\x84\xb6\xbf!$@3\x1bz\xd7\xbf\x9dl\xdd516\xd2\xbf\x89\xf9\xcdr\xa9`\xc5?\xc0\x01\xec5\nc\xcb\xbf\xf1\xe2\xa8;\xfb\xa5\xc1?d\xeb\x00\x88\x0e)\xa0\xbf\x13\x91\xcbO\x98\xe3\xc2\xbf~Z\xc2\x8d\xee\x8f\xd7\xbf\x8a\xde\'\xd0\xfd\xd6\xd0\xbf\x1b7\xc9\xc1\x16Q\xcb\xbf\t\xb6N\xf6\x0c\xa1\xdb?\x11\xc1\xef\xa8\xf9@\xca?\x1b\x80\xf8\xc0\xbd\x16\xeb\xbf\xf3\xef-\xef\x18y\xc7\xbf\xd8\x8e\xd4\x9c"\x12\xd8\xbf\xa7\xa7\xc1\x81\x9f\xf3\xbf?\xccY\xd4=\xfd\xb9\xd2\xbf==\xa3uI\xee\xd1\xbf4H\xe9\xee`\xf6\xc2?\xd0JC\x10\x7f^\xd0?f\xf9L"\xcf\xf3\xb7?\x8e0D\x0c\x865\x8b\xbf\x8e\xf4\x9c\x87~k\x99?kp\x10\x06x\x91\xa8\xbff\xb6\xbe\xe87\xab\xe4?\xdd\xb7\xffd\xeep\xee?&\xbcUf\xde=\xcb\xbf/ya?dq\xde?\xcf\xd9\xf6\xe9\xa3\xcb\xc3?\xc04-\x1b]\xf5\xde\xbf\xeb9d\xd1G\xb8\xc7\xbf\xd3X\xeb2\x16\x8d\xdf\xbf\xd9\r]4\xffN\xd4\xbf\xe66\xdd\x82\xf0\xb8\xd1\xbf26\x08\x15\xc4~\\?\xd5\x03\xb3)\xf3\xba\xa0\xbf\xb1Uh\xbew\xe9\xbe\xbfd\xc6U;\x0c\xa1\xb5\xbf\x91\xfd+\xf0\x8b=\xd5?\x07\xccQ\xd8\x1c?\xe0?\x19\xe6\xfe\xa5\xc0;\xd0?\x91\x80\xb6{\xd3\xe3\xa4?\xcb\x19Q\x10|?\xe3\xbfj\xd0ZB\xbd\xee\xc1\xbf\xeb\xef\xd1L/\x90\xa7\xbf\xd2\xeb\xe1\x0c\\F\xba\xbf\x7f\x15\xb3S\xb4`\xdb?8\x15\xd6\x0f"\xd6\xc9\xbf\x8eI\x15\xd6(\xb6\xd0?\xfd\x8f\x92\xd8\xfe\xe1\x8e?\x1a\xf8\xf9\xfd8}\xc7\xbf{N\xd0\xd0\xbe\xb7\xb8?*\xe3 B\x86n\xbb?\x85\xc3\x96\xb3\xe9a\xd5\xbf\xca\x8e\x96\x0c\x96\x8d\xcb\xbf\x07\xc1_i\xef\xa7\xb3\xbf\xf9\x843K\xdf\xd9\xc7?z\x94w\x1cut\xbd?.\x05\xfa6bc\x9f\xbf\x16\x86C\xfe\xe6-\xb1\xbf\xe8\xfd\x08\xd5_\xe3\xb0\xbf\xae\tJ\xa7\x8b\n\xb1\xbfm\xfc\r\xa5\x80\x86\xc3\xbfK\x16\xd4[\x82:\xd8\xbf\x99Ew\xcf\x91T\xdd?b\xc5\xff\xae\xdf6\xb1\xbf\xa08u\x95\x1c\xfa\xd0\xbfxg\xf0H\x17j\xdb?\xa4O}!\xcc\xc0\xce?M\x16V\xd2\xeaW\x9e\xbf\xd7L\xfa8\x80\xef\xb6?\xb9\x98\x11\xbd\xde~w\xbf\xd7{\xd6B\xe1\x08\xc6\xbf\xfc/V~\x87e\xc3?\xc6H\xb8\xbc\x82_\xb8\xbf\xc5\xbb\xa0I\xa9y\xc1\xbf\x98\xb8-;\xc1\xe5\xd2\xbf28\x90\xfeU&\xb1\xbfWVq9\x01\x8a\xc5?\x82=#\xc59=\xcb\xbf\x80\xb4\xa6v\x1f\xde\xc5?\xed\n\xa3\xa0!3\xe4?5\xed\xff\xc3\xfc\xad\xd3?\xd6\x157\xc7\xe6\x99\xb4?O\xf0\x96GP\xbb\xa4\xbf\x183\xed6/I\xb9?&\x10U\x10?\xdb\xca\xbfae\t\xfc&+\xd1?\xf9\xe6I~\xce<Q?\x85\xc8Hl\x06s\xdd?\x82,\xf1P^\\\xd4?\xd2\x087\xb6\xe9\xfa\x96?\x03\xfb\xd2\x94\xfd\xbe\xc1\xbfv\xbbEjVL\xc1\xbfp\x83\x93\xabF\xa9\xb9\xbf\xbab\x1c\xfcU\xd8\xcb?\xe5#\xddz<3\xb1\xbf~\x9e\x9d\x0b\xf2{\x95\xbf\x19\xb9\xf7\x94\x8a\xcb\xa1?\x1e\n\xad{{K\xd3?\x15\x1b\xe2\xea>\xf6\xae\xbf\xd2\xd8 \x9a\xcc\xdc\xb4\xbfT\x0f\xfdY\xbc\x8c\xc2?\xee"\x975x~\xd2?\xd1O\xc4\xa0\x05}\xc2\xbf\x12\xb3\x03))t\xc1?c\x05\x89\xfb]\x0b\xb8?\xb9lLi@[\x9b\xbf\x8f\x88\xcd\xea\xe4\x7f\xc2?\xcf6p\xa1!\xfd\xd7\xbf\x04\xf8\xd4\t\x9e\x8d\xdb\xbfc\x86\xd3|F\x93\xcc?\xe8 -9\x18x\xe5?\xa7\xf6\xd8i\xf0&u?I\x1b\x9d]w5\xa2\xbf\n\x13\x9e\xeaM\x01\xda?\x8e\x81\x18\xd2\xd4\x97\xcd\xbfL\x18(\xb7\xc1\xa2\xd8?hKk\xa0\x02\x17\xd2?\xb6\xc4\xeff\xe1X\xcc\xbf\x1d\xdfE0\x9a\xcc\xca\xbf\x19\x05&\x96\xf8\n\xb2?gM \xe4;\xf1\xc4?\x82[\xef\xf2j\xeb\x83\xbf\x1f\xe5\xb1\xc7\xdf\x06\xa2\xbf\x87\xcf?\xe1\xb1\x03\xc4\xbf\'\xf5\xc1d\x9aT\xca\xbf\xb6\xf8\x9be"\xd7\xb5\xbf\xdc_d[o-\xb6?\xc7\x99_d(Q\xc2?t\x87~T\xb5\x98\xc5?fU\xa3\x96\x1c?\xca?\x9e?\x08\xc9\x1dm\xc0\xbf\xcb\x13t\xd4\xd9\x13\xc8?#\xba\x1b\xc9\xc4>\xd0?\xb0\x1ac\xb0\xb1\xfe\x9d\xbf\x952\xe5B\xf7\xf4\x89?\xdfQhRK\xdc\xd2?<;/\\U)\x98\xbf\xb9\xfd\xa7\xd0q\\\xca\xbf\xfe\xab\x0e;9S\xb5\xbf\x16\x01\xd4:\xf0\xa8\xc4?}\xff\x87Q\xdf\\\x8e?\x83\x08Wa\xa2\x1e\xc4?\xd3b\xad\xec(\xc1\xcb\xbf\x83\x8f\xd7&\xd6\xc2\xc0\xbf\xc1\xf8\xfd\xe2\x1b\xcb\xc7\xbf\r\xb3\x94[82\xd0\xbf\xfe\xb9\xbd\xe0Y\x1e\xb0\xbf!\x96\x82\x9f\x01\xfe\xd1\xbf$\x1e\x8bx\x170\xcd\xbf\x08\xf3\\?Mh\xab\xbf\x1f$\x8f\xd3\x99^\xbd\xbf2\x8b\xbeZ\xed\xce\xcc\xbf\xddO\xf3\x1bk\xf8\xaa\xbf\x97\xa6\xc3\xc7\xd2\x9c\xcf\xbf\xe3\x03ou\xbf\xfc\xd4?\xc0\xdc\x9c\x1c#\xc0\xd0?\xd7\'\x10:b!\xd2?g\xd1~O\x1c2\xc7?\xe8\x19\xe9.eB\x98\xbf\x13B\n\n(\xd4\xb0\xbf\t\x7f\x9e\x91\xe3\x9c\xc0?\x97\x81^\x03\xfc\xd5\xc4\xbf<\x0b\xd0\x94\x03\x8e\xd2?\xe1\xabzY\xc9}\xc7?\xcek$A\xfd\xf8\xd7?\xf7^9\xc1C\n\xb0\xbf\xca{N\xee\xc2\x83\xb2\xbfO6\x8e\x9e\x1d7\xc0\xbf\xa9\x7f\x98\x1b\xc9\x01\xe1?\xecB\x03P\xac\x87\xc4\xbfq\xe7Y\x0f\xdf>\xc8\xbfsq\xb2\x94KA\xb3\xbf\xdd\xd5F\xf6\x96\xa8\xd3?\xcf\xe3SU\xb4O\xb3\xbf\xb4\xc5\xd8\x10\x06I\x84?\xae\xdaz\xaa\xe57\x9c\xbfu!\xbdH\x82o\xb9\xbf@\x1b\x10\x9b\xaf\xa3\xaa\xbf\x91\x9d\xf4\xe6*\x8c\xc4\xbf5[\xec\xfa\x9a\x92\xd1\xbfVN4n/A\xc8\xbfp/\xea\x8d/\x18a?\x98\x9e\xcb\xe5\'w\x93\xbfM\xcb\x05vu\xb8\xcb\xbfE\x10\xb8\x1c\xab\x99\xde?\xd4\x90.\xff\xae\xb4\xe0\xbfid\xfc\xbbyT\xd5\xbf3I\xd8S\xf7\xf5\xbb\xbf"\xa4\x1f\x17oE\xcd\xbf\x04\xa5S\x8da\x18\xae?\xe0~\xba\x00/\xc6\xdf?|\xc7\x10\xcb\xd7\xd1\xc4?\xf5\xe6\x9d\x80\xa0\xa3\xb8\xbf\xed\x8e\x85\x13\xdb\xf6\xb3\xbf\xde&;\x83\xcc\x14\xaa\xbf_\x14S\x87\x9d|\xc4\xbf\x11-\x91\xa0\x04\x0e\xc1\xbf\r\xcb+\x97,]\xe1\xbfN\xdd)n\x05\x1c\xb2\xbf\xf8f|+\x06\x82\xd6?t\x99\x97\x11\xc3\xbf\xe0?\xeaQ,m\x8f\xa1\xc8?\xd2&Sy\x8a\xa7\x9d\xbf\xa4\x9aq\xdd\x9f\x0c\xae\xbf\x9b\xb9:\x84\xc8\xdb\xb4\xbf\x05\xa3V\x17\xdb\xb5\xca?c\n\x8e"\xafW\xa1\xbf\xbc\xb8R\xcb\x19{\xd8?\x9a\x9c\x11\xc9\x0cr\xc7\xbf\xe7\x8e\x9a\xa3\x19\xaf\xd3\xbf\\\n\x93\x847\xae\xd5?xz\x86\x1e\x11\x9b\xdc?\xd3\xec\r\xb0\t\xed\xb4?]+\xc8Ty+\xd0\xbf\x05\x02\xfa\xe3\x1eA\xd3?!\xe7\xd7\xa4\xe41\xc5\xbf\x118\xf3k\xbfV\xbf\xbf;\x87#\xf6t\x14\xcf\xbfPl\x05\xa6FX\xc3?\x9b=\xae\xc2\x97C\xd4\xbf\xb7\xa7\x85\x9d\x89G\xc4\xbf\xf3*\\\x98*\x17\xd0?\xd7\x03\xc2-\xd7e\xe1\xbf\x9a\xa9y\x85q{\xb0\xbf\xcf\xb5\xf4\x10\xb3\xcb\xb4?\x05\xdc\x02\xc4\xefN\xb1?\x0b\xf5x\x05Q\x11\xc9?\xa3\x01\x8e\xf4U\xea\xc3?\xe0\x89\x8b\'sl\xdd\xbf\xa0\xf1\xe6[:\xc4\xab\xbf\xa7\xf0\xb4\xc8\xae\x84\xe4?-{\xc5\xb2G"\xc0?\x9f\xeai\xc2E6\xda\xbfW\x7f\xd0\xf0\xffI\xce\xbf\n\x8a\xc7\x03\x80\x1c\xc0?\xe9r\x94B\xa4,\xc9\xbf\x10\xb8:\xe7\x90\xfe\xd0\xbf\xea\x97\xa0\x92\xf4\xd9\xb3\xbf\x9c\x9f,\x8b\xa0p\xd1?\xc4\x9b\xdaM\xca\xa9\xa3\xbf\x92\x15\xb7\xbbW\xdc\xcf?\xd8}D\xfd\xd6>\xc9\xbf\xa5\xa2_\x01\x11\x06\xbe?\x9eo\xd1\xb8\x16e\xd0\xbf\xfb\xc3Jiy\\\xa7\xbfN\xba\xado#\x89\xc0?b\x8dN\x14\x80Cy\xbfq\x95\xe9a\x05\xaf\xba\xbfl\xdfs\xf7\xbc\x1e\xb3\xbf\xfc\xe3\x8a\xf2\xe1@\xbf?B#\xd4\x9bCI\xc4\xbf\xad\xa7\xb0T\xdb\xa4\xd1?&\x96\xf3;!\xe5\x92\xbfg\x90\x97H\xcdP\xc0?\x17s\xa6\x02Z\xed\xc9\xbf\x98s\x0e*\xa1{\xc7\xbf\\\x1eO\x11G\x13\xd6?\xc2\xbd, \xc2\x1e\xc6?\x90t\x13\xd8i\xab\xca\xbfT\x1f\x84\xbcSv\xd9?\x106\t\xe1\xf8C\xbf?\xb6W\xe6z\x06\xe4\xd7\xbfN\xbby^\x0b\xb1\xc4\xbf\x14DZ9\x03\xfb\xdf\xbf8P\xf6z\xfc\xa8\xc0\xbf\x84\xb2y\xb3\x06$\xb1\xbf\xdc\x9aR\x1fq\x0c\xa6\xbf\xd8\x9f\xee>-\\\xce?b\xcba\xee\xb1r\xda?\xaa<9 \xb4\xac\xc1\xbf=\xb1!\xc0\xfb\\\xbf\xbf\xe1\xb4\x0e\xfb\xf1\t\xc2?:\xa2\xb1\xa8\x1fw\xc2?\xea\x83\x12\xa9\x84\x01\xb4\xbf\\\xd9\xc6\xa3\xc7\xd2\x84\xbf\xe7\xa6\x8dg\xb4\xea\xb2\xbft\x8aH.\xd4{\xd5\xbf\xaf\x0c\xc4\x9c\xfe\xa0\xac\xbf\x92a5\xd4\xe2\xbf\xc0\xbf\xa4\x14\x9fr\x13\xa5\xb9?C5\xb8LV!\xb2\xbf\x87\x96\xcac\xfc\xa3\xbd\xbf\x88k\x897\x0fZ\xca?\xc3;3\x0cR\xce\xc5\xbf/\xe4\xafm\xc1\x0c\xc4\xbfi\x8eef\xf5\xf2\xc2\xbf\x05\xd1Bu\xbc\x1a\xc3\xbf\x9d"$p\x13\x05\xe7\xbf\x81s\x1d\xd1\x1e\xd5\xb2\xbf\xbeUm[\x18\x11\xd1\xbfS.\x13+h[\xdf?6a\x91\xe2\xff\x97\xd1\xbfK3\xf2\xfe\xab\x14\xc1\xbf\r-6\xb4\x1d\x99\xc4?K\x981e\x0b\x8d\xd2\xbf\xe8\t\x08\xd7\x19\xd2\x87?\x98\x13\xf1\x89\xb5bx?\xb2zn&\x8e~\xc3\xbf6>r\xf0\x81\x90\xef\xbf\x83>\xe3\xd3\x9d\xdf\xdf?\x90\xd1\xa3\xb7\x98\xc9\xe3?\x0b\x1b\xf3\x9c\nY\x7f\xbf\xcd\xc2\\\x18\xfb\xb6\x80?N\xa6^\x0e\x7f\xb8\xc0\xbfU\x9e\x97@\xc1\x14\xa1\xbfi\x91\xef\xc7\xc6\x8c\xde?\xa5\xa4\xd6\x06\x11\x97\xc4\xbf\xe2f\xffpN\xc6\xd5\xbf*\x8b*\xc1\xa3M\xd2?|r\xdf+#\xcd\xab?\x8a-1\xd7`\xf3\xa9\xbfe$"\xe8\x19\xfe\xd8?\x92\xf0\x84p\xb1"\xce\xbfc\xc0\xfc\xba\x02\x1b\xb6\xbf\xf6`9\xc7hT\xa1?V\xe6X\xdf\x0bs\xc8?\x027\xabh\xb76\xe0?\xaf\xac\xcfI\x9f\xac\xbb\xbf\x9d\xf2\x15\xfaM`\xe2?{\x8c\xa9DO!\xd2?{FBJ0\xa2\xc6\xbfe\x91zl\x9b[\xd5\xbfN\x9c~LAF\xc6?\xf3FT\x85\xcd(\xad\xbf\xb7\xf0v\xb2I\x95\xa9\xbfWY]\xc2\x06\xca\xcd\xbf\xfeH2\xfcj\xd8\xa9\xbf\x89\x92P\xe2$\x94\xdc?O\xd8c@8B\xcf\xbfm\xea\r\xe5C\xb5\xa9?\xa0\x0f\x93\x92\x8d\xb0\xe1\xbfb\xb6\xb5\xd0b\xff\xb9?\xbam3/\xf2\xf7\xdc\xbf\x91\x98t\x95\x80\x87\xd1\xbf\xe4\x80&\xbb\x11s\xc8\xbf5\xe44#\xeb\x05\xcf\xbfR\xfb+\xb6\xa4\r\xb7\xbf\xfc\xa4\xa3\x93\x8a\\\xa7?s\x14\xdf\x04e\xe0\xa6\xbf\xa7\x1b\xa3\x82@\xed\xbf?\xd4r\x868\x15Q\xe3?U\xd8\x8fJ\xb3$\xdb\xbf\x0b\xa3q!J\xec\xb6\xbf\xa05I\x12$\'\xbf?\xd8%\x92\xcf\x05\xb6\xa3\xbfT\xee\x9b\x9a\x05r\xa5?\xd5\xa7vF\xd5\x03\x8e?*\xd6\xb7\xa9=S\xd3?Q\x17\x1b#ze\xd6\xbfs_\t-\xef\x11\xc8?s\xd5oZjM\xbf?\x96\x84\xcb\xe7\xa1\xae\xd4?n\xe6\xe8\x07\xd8\xb6\xce\xbf\x9a\xc3\xad\xa4\xbb\x8a\xb4\xbf\xdd\xc3u\x96\xcf\x0f\xd0?ph\xc7;f\xab\xc1?\xcc\xbd\xca\xfb\x80\xa1\xd0?:\xa7N\x86\xa8\xda\xa1\xbf\xd4\x0bf\x8ecn\xd0?QG\rWQ\xf3\xdf?\x82\x16\xd7\xde\xeeq\xd4?F\xd9V"/h\xa3?\x1e\xaf\xa4\xf5M\x9a\xa0\xbf]P\xdfG\xa0\xe9\xe4\xbf\x1a\xef\x989K\x13\xd2\xbfeB\\\x03\xae\xf1\xcd?\x8a\xa9\x15\x80\x94\x0f\xd5\xbf\xba\x91\xb1\xdf_w\xc8?\xea\xc2\x11D\x1c\xbd\xb3?\xafP\x0bF|\x91q\xbfYPF\x9e\x9c\xaa\xd2?\x1b\t\xf2gw+\xd0\xbf3\n\xd3\xc2H\xbf\xbb?.\x8bE\xe3\x14E\xbd\xbfy\xc8\x1f\xa5\xb4N\xb5?\xbb&\xd6o\xecK\xcf\xbf\x04\xf4\xdaz7\xa7\xb9?<KOd\x7f\x13\xbb\xbf\xea\xb1\\`s\xc2\xce?[\x1e[x"\x94\xe1?_\xd2\x00\xdcv\xd2\xce?\x93\xc1\xa5I&\xb2\xba?\x85r?\x90/K\xb3\xbfY\xe4rmQ\xb0\xae?m1\xd4\x96\xe2\x07\xda\xbf\xd7\x871\x98\xfe\x93\x90?\x10\x10\x83D\xbb\\\xdb?\x84x\xf9\xac\xc4\xcb\xb1?\xff\xfe\x03%\x169\x90?\xdc[\xe5/\x9a\xa6\xd1\xbfs2F^\xe4\xe8\xbe?s\x06\xda\xbd72\xb2\xbf\xea\xb4\xb1\x19Br\xcd?\xa6#\t\xc0\xf6i\xb3?F\xf4\xd2\xb9\x90\xa7\xd6?z\xdeI\xa0Hi\xad?}\x04\xf9<\x02"\xcf\xbf\x15\x16\x9f\xe7>\xebb\xbf\xca\x8a\x9a\xeehK\xb6\xbf|\xcc\x95\x1dQ\xf0\x9c?\xc1\xbb\xae\xfa\xf3\xd7\xa7?\xd0A\x92\xe9\xb3\xb4m?Ch\xc3G\xdeU\xd4?\xe6\xf50\x0bl\xf0\xc0?\xb1\xa1\xb7\x80\x89\xcd\xb1\xbfw=\x96\xe0\x82\xb9\xb5\xbf\xe8\xb46\x10\x96[\xd7\xbf\x0b\x83\x18\xc0EI\xd4\xbf\x80\xd9w\xc1\x03\xa8\xc3?\xa8\xb9\xee\xb8\x82\xa1\xd1?\xd7\xcf\xc2\xd5\xe8n\xd1\xbfR\x08~ _g\xc7?\xcblrl}C\xd4\xbf\x7f\xd4\xc4\x11c\xa3\xa0\xbfjJ\xc1\x9cy|\xb2\xbf\x92\xdeYf\x94\x08\xa1\xbf\xa4\x0f\r1f\x98\xc9?\xcf\xbb\xc8\xe4\xd6\xb8\x96\xbf\x15\xa4\xb08+\xff\xcf\xbf\xce\xcf\xef\xf5\xc2k\xbc\xbf\x16k\xe3\xa2\xe1?\xbf?\x8f\x06\xfa\x9f\xc2\x8e\xd3\xbf\x16f\x01\xae\xaf\xbb\xdd?\x00\xc9\x0f\x1df\x08\xe2?N\xf9]\xcd\x19\x91\xdb\xbf\xaeV\x8d\xe4P\xbc\xc6?\xd4jD\x94|\xea\xc0?P\xbb\xb3\xf4\x03s\xa6?2H\xf7^\xb9m\xc0?\xde\x1f\x85\x17\xcd\xc0\xc9\xbf\x00\xeaP\xe0\x17\xc0\xc6\xbfQ\x9c\xb7@\xf9\x89\xd3\xbf_\r\xa8k\xb3F\x96?\xab\xd5A\x83\xe8\xc5\x8e?<\xb1f\xba\xc4"\xc8?\x96$\xae\x9d\xac\xda\xda?#)D\xb8\x96\x97\xcd?\x10\xd2ZJ\x89@\xdb?\x032\x9f7\x7f\x90\xd2?\x97u\xa0\xa6\x10#\xbd?ly\x18kh\x85\xd3\xbf\\\xaa\x86K\xab\x9d\xc2?Yon\x13\xe9\rm?\x13\x1f\xc8=\x16\xbf\xc5\xbf\x82}\x17_\xfe\x08\xe8\xbf\\\x96\xca\xec\x82c\xd2\xbfvh\xf1b\xcdE\x90\xbf\xe6\xec\xc5j92\xa8\xbf\x8e{\xbdm\xb0T\xb8?\x0b<\x1d\xc0U\\\xbb?\xdc\x11\x1a\x0f\x84\xa6\xb3\xbf\x11\xbf\xccxW\xf3\xd0?\xf0\xa2h\xcf\xd9q\xd0?|\xdcX\x0b(\x17\xd1\xbf\xae8\xc6\xb5`\xa0\xae?Up70\x9d\x04\xba\xbf\xe5{\xeb\xdb\xeb\xc5\xcd?\x0c\xf6\x8f\xba\xbf-\xce?\xcd\xb4BV\t\x04\xd6?V\x97i\xab\x94?\xbb?R\xd8\xec\xb6Y\x8d\xd9?\xda\xcas\xd5\xd9\xed\x90\xbf\xc6\x18\xf2\xbc\x1c3\xca?b\xdb\xc7\xfb\xae\xb8\xd2?\xb1O\xfb98\xd3\xb5?\xaf\xf7\xcf\x86\xa6\xd8\xd4?\xe6j\xac\xc0<Y\xd1?\x08\xdf\x96,\xdf0\xd1?\xea\x08\x19\xe7?\xd0\xc8\xbf6%i\',=\xbe?\xc1\xcc#\xd2\xe3\xa0\xd8?E@\xd6\xf5\xb4b\xd0\xbfg\x18\xb6cF\xa8\xc4\xbf+\x8ayEiM\xca?\xfax8\xcb|)\xd1?X\xfc\xa6\x06#9\x86?ie\xe9\xe4\x04\x00\xc3\xbf1F\xfc\xa6\xf9[o?h\xafD\xe0\xf8R\xd8\xbf\xd9M\x98\x80\xfa\x16\xac?\xb4\x91\x0bR\xc7\xd4\x88?\x87\xa6}l\xa6\xd6\xb8\xbf\xaf\x00\x11\x84\x8e\xaa\xc9\xbf@\xfa\xbe\xbe,\xea\xb9\xbf\xad1\x83\xf2\x7f\xb4\xa7\xbfc1\xdf\xe8\xc1\xb2\xa6?Bw\xce\xa7\n\x01\xae\xbf`2w}\xfc\xe4\xd1\xbf\xb7\x9fX}8\xd1\xcf\xbf~,\xbc:V\x08\xdc\xbf\x89A\xfdx\x04\x0f\xc7\xbf?V\x03J&\xbd\xb1?\xbe\xc1\xc4\xdc\x92\xe8\xad?\'\x13\xa2pP\x86\xc0?\\\x95\xb8\xe4e\xf5\xa0\xbf\xb9\xabF\x85r\xba\xb9?S[H\xfev5\xd2?\x1e\xe5\xf6\xf2+\x19\xa8?\xec\xb4\x88\x82\xe9\x90\xc5\xbf\x8a\xd9\xd6\xe9i5\xd0?W~\xbf\xbe\xf3\x12\xa0?\xc2\xac\x8f\x10/\xf7\x87\xbf`\x16x\xca!\xe6\xd5\xbf\xdb\xd1\xda\x80\x9f\xfb\xb1\xbf\x17nQ\x04\xb5\x05\xc7\xbfI\x1b\xc4\n>J\xbd?\x80t\'\x9b\x9eV\xc7?\x1a\xd0\x90@\xad\x8d\xb3?e\xbb\xd8,\x92;\xbb\xbf\xd9\x85%i\xde\xd3\xd2\xbf\x82B\x89|\'\x02\x90?\xe3\xf5tf\x91\x9f\xb7\xbf>\x82j\x86Nh\x9a?\xd9\xb5\xf9G&\xc9\xb3\xbf0Z\xde\xb3\x0cy\xbb\xbfJ\xb8\x03\xed+$\xc8\xbf\x0b)v\xe0\xdd\x90\xaf\xbf\xa1~Te\x82\x97\xd0?c\xec\xea1\xbe\x84\xcd?|\x19\xe0\xb1\xbaV\xd7\xbf}\xb32\xacHa\xda\xbf?aM\x1fr{\x81?]\xa7\x12\xc1\x01#\xbd?\xbe8\xacl\x15l\xc6?\xb9Cz\x0c\xbb\x92\xa3?\t\xb9C\xee\xc43\xd4\xbf\xd1\xd7\xf2\x1b[.\xcd?d\x8e\x0f\xdfv/\xcc\xbf\x94\x0e@\xa8\x1d7\xd0\xbfo\x1e\x80\x8f\x0c\xe5\xe1\xbf;\xb4Og\xdd\xaa\xd3\xbf\xa6\xf2c\x10\x90\x02\xd1?\x98]\xab\xc8y}\xb5\xbf\xfe\x11i`@\xf1\x9e?\x12\xef8n%\xfex?B\x19\xc9t\xeb\x1b\x9c\xbf\xb9\x13<E65\xbd?8]\xf7\xce#z\xd6\xbf\x80r\x1d_}\xbf\xb2\xbf6\xd702@\xdf\xd6\xbf\x1a\xdc%H\xb1 \x88\xbfd,\x1a\xab\x1fR\xc6\xbf\x0b\xc8\x0c\xdd7\xad\xc0?e\x0b\xa3k\x01\xee\xb2?\xefn\x9f\xf5Qi\xaa\xbf\x9bw\x16\xfa\xad\xc4\xce?\x95\xa4\xf8\xd3\xe2&\xe0\xbf>\x07\xc7U\xa7\x1e\xcd\xbf\x98`?*=\xf8\xd1?\xb5\r|\x8b\x06\x0e\xab\xbf\x9c\xfc\x1a\x91M\xe4\xd1\xbf\xe0\xa4zy\xc3\xcf\xd7?\xb6\xa1\x0b\x9b\x1f2\xc2?4g\xd9\x88\xd6!\xa5\xbf\xdf\xaf%\xa9\xac\xf7\xb7\xbfP\xd4\xb9\x99(\xb3\xc7\xbf5\\Ap\x1f\xaf\xd1\xbf\xd3\xadP*\xd6\x1ex?i\x8e\xd1\xc7\xe9\x95\xaa\xbf:\x18\xb0\xaf\xb8\xb3\xb4\xbf\xde%\x9a\xa6\x84b\x8d?t\x99iw\xcdU\xe1?\xdb\xf3\xf9\x17\xf3\'\xd3\xbf\x08\xa5\x0bQW]\xb6\xbfR\xb9\xa7F\xf3\xee\xc5\xbf\x0f\xf3V\x15\x84\xbd\xca?\xb0\x87\xf43\xe2Z\xc5?\xee\xb8\x04\xe1\x95,\x86?\x0b\xdb\x8d!\xf3:\xda\xbf\x1c\xc2\xca\xfb\x0f\xc6\xc0\xbf\xb8#\x9d\xf9\x11\xd7\xca?\x8dfB\xb3``\xbf\xbf\x01\xbd,t\x0cH\xc5\xbfjL\xb2\xe8\xd4T\xd7?\xf4\xa0\x01\xb7R\xd3\xc9\xbf\xe16\x054\x18\n\xa1\xbf\xb7:P\xbelA\xd3\xbf\x16\x13\xa3T\x08Hi\xbf\x18\x96"\xa1\xbbl\xdb\xbf\x9d\x00\xc6\x95\\y\xd4\xbf\x0f\xdf\x13\x9a\xa8\xa2\xb3\xbf\x03\xc8\t\x9f\xa8@\x9e\xbf\x13U\xa5\xb8v\xb5\xc8?\xd8y\x8c\xce}\xec\x83\xbf\xd2\xb7\xf4\x8d\xf6\x14w?\x1d\x9d\x8c\x1c/n\x8d?\xca6\xe3\x8c\nA\xb5?a\xd5E\x93Q`\xd3\xbfg"\xd2\xfc\x97\xad\xa0?_\x9fK\xe2A\xfe\xc6\xbfX\xd3\'\x80\x0er\xe0\xbf\xe7t`\xa0f\\\xde?@\x08\xd3i\xcf\xb4\xc5\xbf}\rn\x10m\x82\xdb\xbf\x8e|\x12\x0bz\xb7\xb0\xbfUI\x93e^w\xab\xbf\x99\xf2r\x00R\xf8\xb7?NQ\xa5\x02\xae\xea\xbb?\xb8?\xfc\xd4\x80\xa9\xb3?\xd6\xfek@\x8c\x7f\x84?zx\x10\xc6=0\xb9\xbf\x1fy\x0f\x1c\x00\xc4\xab\xbf\xc0\xd2\x95Q\x1ct\xc2?\x9aq\xb3!\xd7\xe4\x88?\tn\xad\xdc\x94\x8e\xbb\xbf\xeak/\xc7\x89\xac\x90?\x9d\x8e\xc2\'+\xff\xd3?p\xf5]{\xfc\xa0\xd0\xbf\xabm\xaf\xe56W\xcb?\x90\xaa;\x02]0\xc9\xbf@\x8c\x08\xfcQ\xc1\xdc\xbfs\xa9\xb6\xacE\xeb\xcb?\xa0wa%K\xff\xd2?>.\xc2\x9f\x9c\xc9\xd8\xbf\x0f\xe9c\x1fl\x82\xb1?\x1d\xad\xe6;\xe7\n\xe3\xbf#V\xdd\x18\x81v\xd3\xbf\xa2\xe2\xcf\x9dN\x8b\x97?\xcdK\xc9$\xa4\xac\xc1\xbf,\x03\x0ee\x01\xa0\xd5\xbf\x9f+\x829\xf3\xcd\xb2\xbf\x0f\x83\x06\xdbi\xc5\xc9\xbf\xba&\\\x12I\xeb\xc4\xbf^\xac\x06LJ`\xb8?\xb5Kv,DT\xe0?(@\xff6\xa8\x05\xc7\xbf\xefj\xbc\xddZ\xbc\xca?\xe2BQ\x97\x0b\x08\xb4\xbfR\x92\xa3\x1d\x06\xe3\xd3\xbf\xcf\xc5\xe3\xd8\x17\x81\xd0\xbf\xf9]\xaapT\xea\xa6?;q\xba\xd0\xe1\xc4\xc0?\xa1KU2\x9a\xd3\xb9?D\xa9k\xff!\xcb\xc2\xbf\xdfs\xfa$\xd0\xac\xb8\xbf"@\x84\xd4\x19\x86\xa9\xbf\xeb\xfc\xb0\x1f\xb1h\x98?\xbf\xf6\xbc\x17\x9f\xd9\xd0?\x1e\x0bT\xd5\xa7\xbc\xc6\xbf\x9f`|\x13\xf7\xc8\xa6?B\xe9\x1b\xf6\x81C\xbb?\xd0\xadUuGO\xb3\xbf\x82\x9e-\x95h\xb0\xc6?W\xed\x94}\t\xab\x85\xbf\xde\xa9\x85;I\xfe\xd2\xbf\xd5%N6\xa8)\xbb?%\x04\xe9\x9a$\xbc\xb6\xbf\xaf1U\x14\xd4\xb5\xc3\xbfX\xf7\xbb\x16\x95P\xd2?l\xd8}\x06BA\xa4\xbf\xcd\xcb\x08\x17yw\xa8\xbf%\xfc\xee\x06r\xa7\xe0?-\xbe\xcb\x9e\x1cD\xa9\xbf\x85\x01\x1f\x84\x11\xb8\xc0\xbf\xcc\xbc\x16\x85z"r\xbf\x07\xc5l-\x1eQ\xc6?#\x9a\xdc\xb6Z\xdb\xca?\xa4\x1a\xa6Y]\xfa\xbd\xbfI\x98\xc1"\xc7\x88\xa2\xbfa\x10\xc4\x93NR\xd0?\xcd\xa0\x99vZ\x9e\xc1\xbfF\xd0\x89\xf4a\xb1\xd3?M\x1b<\xcf\xac\xea\x81\xbf\x9b\xc1p\x1d\x02\x8c\xd4\xbf\xdf\xfd\xcf4ya\xb9\xbfI9Macg\xd2\xbf\x00j\xbd\xcc\xce\x9a\xb1\xbf\x94U\xa0\r@W\xd2?\xa1\x87\xb6\xa1N\xf9\xc0?_\x1ab\xf7\xc4\xe1\x90\xbf\x91\x89\xb4\x99\xe7\x8c\xa2?\xc2R$Z\x91H\xc3\xbfg^\x08G\xae\x9f\xde?\x8b\x8e\x0e\x13n\xde\x99\xbf\x05\xf1\x85/HL\xa4\xbf\xfb\x0e\xe0j\xb6B\xd6?\xbf\x1b=H\x92\x00\xbc\xbf\x17\xc1m\xb8\x17Z\xa0\xbf\x8d\x14S\xe8o2\xbb?\x1f@H\x08\x8a\xef\xac?7PW_\xea\x97\xa2?\xe1x\r_N\xd6\xc3\xbf1\xc4\x17\xea5\x01\xc8?\xb2\xcd\xa7B\x18/\xd1\xbf\xe4q\x06c\xc0\x9a\xc5\xbf%{\x9f(-\x89\xcb?q\x12B\x1f\x83^\xd5?\x1aX\x9c#\xa2\x0f\xbf\xbf\xe3I\xfe\x90W\xa9\xbe?\xffG\x1aSS]\xab\xbf\xa6\xedZ1\xa1\xec\xe0?\xf6l\xf9\x15[\x08\xd4\xbf\xec\x0fg\xbc\xf9\xe7\xd4\xbfJ78\x1f\xe8\xb6\xbf?\x9fm;\xc1\x06\xc6\xd0\xbf\x87\xb0[\xf1\xdf\x00\xb1\xbfq\x1e\xb5t\xbbk\x96\xbfuc\xf9\x1e\xbb\x1e\xb3\xbf\xa3\x1a\xfd\x0e,\xbb\xda\xbf\xfb\xcf!\x1d1!\xd0?,\xeb\x95\x98}\x90\x90?\xd0\xa3\x7f\x0c)2\xa5\xbfH/<\xc3\x84\xa1\xac?X\xf9Tf\xeb\xd3\xc9\xbfSh\xb9\xae\xfb\n\xd2\xbf\xdf\'fu>\x08\xb9?b\xff\xd7HE\xd1\xcb?=2\xdb\xdf\xb1\x8d\xc0\xbf\x96\x08\xe6\xc8\xd7\xce\xca?XN\x1d_\x9c\x0f\xc2\xbf\xba\xcbP(}\xe2\xc5\xbf\'L\xaf\x89L\xac\xb8\xbfm\x8fb\x13\xf1\xc7\xdd\xbf\xc3\xf9u\xcd\x13\xfd\xd2\xbf\xa4\xed\x952=\x94\xa2\xbf\xfa\xbd\xd1\x17\xc1\xd7\x83\xbf\x1da\x89\xa3g\t\xca?(\xf5<\x93\x0e\xaa\xcd\xbf\xe5\xaf\xc8\x18\xcd!\xdf?\x80\xdd\xbc\xf0\x12\x98\xac?\x81j%<\x83\x08\xa4\xbf\x17\x9eU\xd9\x06\xdc\xd5\xbfY\xa1R\x9e\xe5\x0b\x91\xbfJ\xdd4,[\xf9\xbc\xbf\x87\xcb\xb5\x1e\xa7m\xc3?\xd0\x9f\x86\xd0u\xcd\xda\xbf1\x98\xaf\xa2e\x99\xc8\xbf\xc5D"N\x92&\xa9\xbfl\xd6E\x9dk\xa7\xd0\xbf\t\xa9O\xb0U\xa6\xb5?0\xa1{]\x1e\xa4\xad?*\x02l\xe7\xaf\xd2\xb4\xbf\xfe\xedv\x18\x1c\x1b\xe0\xbf\xa6\xcf6YL\x1a\xd7\xbf\xd4(\xe9\xd0XF\xca\xbf\xb7\x92{P\xa8b\xb9?\x87P\x94\xc4E\x0c\x87\xbf\xd1\x050\xbf\x8f\xc0\xc7?^K\x08\xe4\x06\xff\xd2?\xf3\x03\x9b\xbb\xd1\xa3\xc2?\xa4\xb7N=\xe5\x9f\xb9\xbf\xbd\xdaI\x03\xae\xed\xd0\xbf\xe9\xf3\xa7BX\xaf\x91?\xea\x9c:\xc5X\xf4\xb5?_F\x93cA\xf3\xa7?\xf4j\x8c\x7fY\x08\xcd?Z\x01~~u\x15\xd1?y\xe7H\xa8U{\xac\xbfy\xc2j"\xe2\x06\xbf?\xbe\x01v\xee\xbb-\xdc\xbf>\xeaE\xff64\xcf\xbf\xf2\xad\x93|?q\xad?\xf1\xe6M(\xc1`\xc7?,\x10\x80l\x1eB\xb0?\x01\x86\x9ey\x93\xa4\xc1\xbf_\x00(>o\x88\xab?\xcf\x04\xf3\x92MP\xdb\xbf\x85\x87c\xdc"\x06\xc5?\x8d\x99\x8b<\xfc\xe0\xa0?CB\xc3\xf7\x00[\xb4?;j\x9f\xd9\xa0\x85\xc4?\xc4\x849\xef\xe3\xda\x95?\xcfH\r_\x16\x7f\xca?\xea\xc0\x95\xae\xd4uz?\xbc\xdd6\x89\x90WX?F\xd0^\xfcR\x1a\xc2\xbf\xea\x1d\xed\xdb\x8d\xbad?d\xee\xed\xba!\x87\xc9?\x8c\xc1A\xdf\x1aw\xb2?6\xe1Y\x94o\xb5\xdf\xbf\xa8{w\xfe _\xa6?\x020\x1b\xe6\x0b>\xcc\xbfc\xc7\x17\xd9\xa4\x04\xc8?\x02\xb6\xf4\xe5\'&\xbb?9\xfd\x01\xab\xa5I\xd6?\x94{\xaetp\xec\xc5?C\xf3\xe8\xe3\xc9J\xd4?\'\xd9\xe2\xdfF\x19\xd8?\xdb~\xd0\xcb\x96!\x8e?\x88L\xff\xc2\x81\xde\xc7\xbf\x12\x9a\\\x86\x8d~\xe9\xbf&>\xf1?\x87=\xc7?\xca\x16\xeaieV\xaa?\xb1\xa5\x9d\x1d\x85\xc8\xd2\xbfK_\xba\xf9\x04\xc8\xd0?\x10\xe8G\xe1W5\xc3\xbfb\x87\xc9\x1bx\xf4\xbb?\xe3\x82YS8\x82\xd0?\xdf \xe3o$U\xd4\xbfk\xce\xa6\x85\xacV\xc3\xbf\x04\x8e\xbe\xa7\xb9w\xc2?\x087\x14\x1d\xdf\xc8\xc1\xbf\xd9\x8e-}\x07.\xa2\xbf\xb8+\x8d6\xd3v\xd3\xbf=\xe2\xd0\x11\x86)\xd5\xbf\xa9\xf3\xbd\x8a\x02\xd9\xc1\xbf\xc5\xd4\xabH\x11\x14\xda?PI\\\'\xb1\x92\xc9\xbf16\x07<k6\xa3\xbf\x90\x92 \xfajx\xe6\xbf\x9d4\xeb&\xcc\xac\xd9\xbf\xd3g\xfaJNw\xd9\xbf1\x06\x18\x05\xb7\xf6\xd5?[\xfa\xa5\x11\xaa\xcc\xc3\xbf\xcff\xa0u\xb4\x8e\xbf\xbfq\x89)\xf5\xfej\x92\xbf\x0c\xe0\xd1\xabz[k\xbf\xe6{\xd3\xb1b\xed\xd0?\xa8\xbc\xf5\t]\xb7\xd4\xbf\xdd\xf0W\xf4\xdd|\xb8\xbf\x1akb#\xe1\x11\xcc\xbf\r\x98\x1c\x98\x08\xe1\xbd\xbf\x16P\xe3\xcd\xfc\xbf\xa2?\xccS8\x08\xf6\x94\x9e\xbf6k\x1f\xe0\xac\xf1\xe1?\xf1\xb9Wu8\xf3\x9f\xbf\xba\xb0{\xf5\xe7\x84\xd3\xbf\xfeJ\x11q\x9c>\xc8?v~}\t\xdcL\xc3?\xcb3\xe1Bm\x89\xd9?\xd4Ze\xc0\xb9I\xd4?)ar\xca\\<\xb2?FdH\xa4*\x91\xdb\xbfb\xb8\xe3\xf6\xcf\xb1\xd1\xbfZ\x00>r\xcb5\xcb?C\xa0\xd3\r\xef\xdd\xb5?s\x8a\xd2\\\xd5\x9d\xd5\xbf\xe1\x99\xbc\x0e($\x82\xbfY\xfdi\nT\xbb\xb7?\xca\x9ed\xc6\x8bm\xc1?\xe1@&}hC\xc8?6@\xcem\x16\xac\xb5?\xf9U\x9e8L\xa8\xb3?QW\x18\xb9\xa2A\xa0?\xb9\xe8-r\xdc\xado?$\x912\x86\xe8\x91\x9d?%e^Vg\x0c\xcc\xbf\xd1\x95\xfbh\xe2\x1e\xbd?S\x90\xcdxY\x1b\xc3?\x89\x95~\x9dn\xff\xac?\x81\xe6\xe9\xc0\xb0\x87\x90\xbfC5\xda_\xbf\xe7\xb7?\xf8\xa2\xd6\x1cXw\xc1?\xbfC\xb7~#\xad\xdc?i\xcf(%;\x13\xd7?C\xe3\xaa\xcfh\xca\xb6?!\xba\xd8\x07\xdc\xa1\xd1?\xff)!\x05\x8c\x8b\xc4?|\xe7\x07\xa8|k\xce\xbfX\xbdh\xa1h\xf2\xcc?T\xf0T\xf8\x9d8\xcd?\xac6\x87\xd3\x996\x94\xbfj\xebpC\xf35\x9d\xbfZ<\\"\x18\x83\xb5?\xfak\xe1\x15\x05\r\xa8\xbfd#\xd1G\xb1\xe2\xd5?\x1dzR\xfa\x9e5\xd0?\xac-\xd6"#7\x87?#\xb1A\xab\xdb\'\xd7\xbf\xf8\xc6\x8e*8\xb4\xd9?\xdc(n\x8d\xc0W\xb4\xbf)@\xb6I\xa5|\xe5\xbf\xc6]v\xc3\xfc\x06\xd5?p\xdaO\x15\xa5d\xb9\xbf\x8b\x1b6W\xe0\xf5\xd1\xbf\xcb\xab\xaa\x1ejM\x84?\xfc\x01\xca\x7fh\xc6\xb0?`\xb5\x0e\xab\xaa\xef\xa2\xbf\x18!\x98\xb1\tV\xa5?\xf7sT0\xcf\xcd\x9e\xbf\xbdpa\x80\x97u\xc0\xbf\xd4(I&?\x06\xa0?\x05\x15n\x9c\x8dY\xab?\x85\xf12g\x0fP\xc4\xbf\xf27]\x1d\xe8\xfd\xd9\xbf-\xef\x9d]:u\xcc\xbf\xfcP\xd9MR\xb7\xd4\xbfVI\x1d\x05?<\xc2?:i\x821\x19Y\xca?\x03\x13F\x02\xf6z\xd8?\xe4w\x9a\xf4\x85\xbf\xa9\xbf\x84\xedR\x9a\xac0\xc4?\xd6\xac\x7f\xea\xac^\xb3?\x87o\xf39|\x8e\xd5?eO(\xee\xc8\xb9\xd5\xbf\xd9\xbf`\xc5x\xd2\xd1?\x91\xe9\xa0%\xaf\xec\xc9?\xedR\xa7\x91)3\xcc?*\x10\xf7\xb6\x82\x89\xbb\xbf\'\'\xd1\xa3\xceR\xa3?<\xdb\xdc\x0cC\xd5\xb8\xbf\xcf4\x9d\xaf\x93z\xc0\xbfs\x9c\xd0)\xb3\xd9\xc2?%\xcc\xf6\xdb\x0cv\xe7?\xd8\x17n\x89\x06\xab\xc9?u\xed\xd8I\xa7\xe2\xcf?\x88\x9b\xd4\x07`\xae\xc5\xbfW\xe9\x18\x9e\xf6\xca\xcf?\xb1\x9a\xcf\x8b\x7fY\xc7\xbf\x93C\xc7\xaf\x9f\x00\xa1?i7\xc1\xee#\xcf\xe0?\xac\xce\x9do\x8b[\xc4\xbf\xc7M\xcb\x02\x85B\x87?\xd9\xe1\xfe;\xea\xd7\xb7\xbf\x9d\xe5\xbe0I\xee\xc9\xbf\xe4\x93\x12]\xa2\x99\xbc?\x13\r\x8d\xce9\x94\xb6??\xb0Ob\x8e\xcc\xc0\xbf\xd5\xfc=\x9e;\x92\xbf?-\xfd\x9b\xf4\x81\x05\xc1?\xdc\xea\x0e\x1e\xd4\x95\xb1\xbf\xad\x12G\x10;:\xbf?\r\xff\x16>\x1e=\xe2\xbf\xc1Jl\xa6\x8a\xc5\xd0?[\xed2\xf1\xef\x03\xd9?\x0e\x15\x8d\xf3Lj\xc2?b\xb4\xa8\n\xc6\x9f\xdc?\xbeKEs\xb3\x83\xba\xbf\x1d\xd6\xb4\xe3I\xcd\xc2?\xa3@\xad\xbeUk\xd1?\x93m\x10\x86\x8a\x8d\xc4?\x7f\x96\x0f3\x14]\x8b\xbf\xa4QO\xdb\xfa\xa3\xce?\x9c\xff0\x93M\xa3\xcf\xbf) \xa9\xe5\xb7[\xdf\xbf\x98C\xf2\xb8?\xf6\xdc?I\x0e\x86\x1cU\xa3\xb6?\x9eDz\xa4\xd6\xea\xd6?i[\xd3\x95u\x15\xbf\xbf@\x13\xab\xab\xbfJ\xce??3\xa8\\t\xcd\xd4\xbf\xf9\xaa\xd9\x80\xe1\x9e\xd3?\xf4\x97\xdb\x01\x16g\xbb\xbf\xff\xf0E_i}\x88?Q~\x95z\x05_\xd1?Ds N}e\xd5\xbf\x9a$\x90\x1ev\x8d\xc1\xbfhi70\xc9\xe7\xc5?\x05\xa7\x1e\x82\xe7^\xb5?%\xa7=h\x97]\xd3?\x8a\xec \xe6@R\xa4\xbf\xf1\xd9%\x9e\xef\xf6\xd5\xbf\xbb\xef\xb2\xbc\xc8r\x9a\xbf\xe3\xa56\xaa\x83\x9c\xd3\xbf\xa2\xd8C\xc6\xcaI\xe0?\x10\xfd\xa5\xb3o\xd9\xb8?du\x06\xe3V\x94\xc0?\x1d\xc76\xb5\x1bh\xd6?\xea9\xbb\xce\x9b\xfe\xbc?7\xd7\xf7\xcc\x06-\xb7?\xb0\x90\xc6-\x08\xd0\xa1?\x02\x8dG5\xed\x10\xdd\xbfyb\xc12%\xbf\xbf\xbf\x94\xff\x82\x8c\xbc\xd4\xc2?y>eZ\xdc|\xbb\xbfR\x0f\xca5-\xb4\xbe?\x83\x02\x92_U\xb6\xd0\xbf\xd5\x8dx\xc9\xea\xb9\xd1\xbf\xc1\xed\xef\x16\xed\xb8\xc8\xbf\xf2\xbf_u\xe7Q\xbd?-\xb0\xf8\xf6\xc0\xcc\xd2\xbf\xdet\xa5s\xbc\xd4\xb1\xbf\xc7\x9e|\x0bC*\xd4?\x81;\x89#S\x9f\xc6\xbfS\x02_\x98\xbeC\xcf?\x9c\xb4\xa6+\x04d\xc1\xbf\x87"\xa5\xfc\x01\x00\xc4\xbf\xe5B!#g\xe5\xc3?\x81\xaeP\xe0\x83S\xc6\xbf\xcf$\xc4\xbf\x04=\xd2\xbf0\t\x90\x9a]A\xc3\xbfY\x89\xeb\xf0\x15p\xa9\xbf\x14\x80\xae\x0b\x94b\xd4\xbf\xb7\x0f\xc5\xdb\xc7f\xd4\xbf\xac|\xe0\\\xc43\xa1?b\x00(\x90\xa3\xd9\x81?\xfa\xbc\x9e\xb1DV\xe6?\x08j8\x89s\xe0\xad?v\x16a^9\xdb\xb0?1^\x87\x12\xc4\xa3\xce\xbf\xe1\xcb\xd9\xe1\x1ai\xb3\xbf\xfe\x0ej\xee\xf8\xe0\xc8?\x99o\x83Q\xac\x93\xd4?\x91\xef*\x04\x9a\xfa\xcd?I\xaep\x98Z\x0e\xc9?\xf1\x9f\xbd\xb8A\x02\xaf?BX\xd1\x88b\xd4\xb0\xbfy\xee\xf0\x9d\x88!\xad?\xe6A)\x0b{h\xd2?\x8b\xe3\xc5qbL\xd7?!\xd6\xcd\xe8\xf3g\xb5?\x004\x1e\xcb\xcbrI?$\xfd\xc0<\xc4\t\xc4\xbf\xc92\xc8%YH\xd1\xbfT\xa7\x0c\x0c\xa8J\xbd?qKUS\xf9\xc7\x94?\xc0\xd7\xa1[\xa2\x8c\xd4\xbf\xce\x11\x89g\x85\xad\xb4\xbfr\xa9r:&\x0c\xd1?\xfb;\x10H\x1b\x80\xd7\xbf*\xee\xa1,\xe9p\xc9\xbf_Ts\x87\xf35\xbf\xbf\xe1J1\x90\xbdS\xcf?vI\n\x80\x80\x03w\xbf\nu\xa5\x8c\xa6\x07\xc3\xbf8\xcb-\xcfHU\xd7\xbf\xd9W\x11\xbf\x1b\xe0\xd0?\xca\x9fl;b\xef\xdc?\xf9\xd8\xb8\x9f\x89Z\x88\xbf\x0ct~ \xdf\xd5\xd0?\x8d:\xda\xc1L\xa8R?\xeb"\x86\xa0\xdf\xcd\xa1\xbf{\xe3\x17|\xddk\xc1?\xd7j\xea]S>\xb2\xbf\xe3\xa0\xf8\xab\xa3\xde\x97?b\xb0\xdeh\xb0\xd7\xc9\xbf&\x01RR\xc5(\xd9\xbf\xa5\x8d#c\xe6\xf9\xca\xbf#\x13\n\xa2\t\x89\xc5\xbfB\xae\xdd\x99\xf7\x88\xc9\xbf\x9dn\xf4s\x98n\xcb?\xc6\xd6\xc1\xa5\xff\xc0\xcd?\xf6\xecN\xcc3\xe9\xdb\xbf\x1a\x96\xdb\xa6\x18\xcd\xad?O,\xff\x05/\xe2\xbb\xbf)\x1d\xc8#\x84\x02\xd7?t\x87NC\xb2o\xd4\xbf4&\xf20\xac\x90\x80\xbffG\xd3\x919L\xb3\xbfd\xb2\x07P\xc2\xb0\xc3?\xa4\xbf6x\xed\x05\xd2?\x95\x0f\xd5\x9aw\x03\xc1?\x9b(\x8e\xc8S\xac\xc2?%mRc\xe8:\xc9?\xa3\xad\x9a,\x953\xbb\xbf\xc5\xb0\xfd\x0e\xc9\xc6\xc0?s\xc1\xf6\x7f\xf6\x9b\xd5\xbf\xd0\x07!.\xf2\x0e\xbf?\xa4Z)3r\x8c\xb1\xbf\xbd\xec\x02XIp\xad?\xc4F\x85_\xb2\x1f\x9e\xbf\x8e\xf5\x92\xe8\xc4K\xce?vK.\x12\xde\x8c\xcf\xbfg\xd2#\xe9\x84\x84\xb0?\xcf\x04\x0f\xab\x14\x91\xab\xbf\xfaG\x91\xaaQ\xc5\xd7?X"\xd2\xc0\x19c\xda\xbf\xa5P\xbc!l9\x99?\xce\xa2?R4\xefl?f\x14\xd2\xfb\xea\xc4\xc3\xbf\xdd\xe7\x0eL\xe8\xa1\xa0?\xce\xfe\n,\xa0\xd8\xd4\xbf\xa6A\xffI\x82\xb8\x94\xbfT\xfb\xf8F\x83\xf4\xb3?\x91\x13ah\xa5i\xae\xbfdpa\xc3\x95_\xd2\xbf9o\xc3\xd9\x12,\xe2?Y%$`\x80\x8a\xb8\xbf\xa0GK5\xe5`\xd3\xbf5w\xb6Vh\x87\xc4?k\xc9q\x02T3\xc5\xbftH\xf3,\x8a\x9a\xa6\xbf\x96\xebg\xf1\xbf\xd6\xbb\xbf1\xfc\xddxi\x03\x84\xbf4\x8d\xbf\xb0\xd3P\xae?\xe8\xdfFy$?\xda\xbf\x99\\\x00T\x91\x1d\xae?\x9d;=\x05\xf1\x90\xc2?\x9d\x16Y\xa8\xde\x1e\xe1?\xc2\x83\xe5)\xacF\xcb?\x96\xd7\x8c\xbb\xe4\x0b\xa6\xbf\x01\xd4\xd8\xcf\x8c\x1c\xba?\xf5Y\x99L\x8c\xf3\xc7?\x9b\xc1\xcf\xaf\x14\xfa\xc4?O\xc4\xc3\x03\xc8\x12\xc3?\xaa\xe8\x02\xb3\x1f\xbe\xc0?\xca\xe6k\xa3\xa5\xdf\xcf\xbf/o\x91\x98\r\xdf\xcb\xbf\xaa\x0b\xb7\xa5\xa9\xb3\xc4\xbf\xfa\xa9\xb7\xac\xc3\xe7\xc3\xbf\x1e\xa9\x92\xef\xfa\xb5\xd9\xbf\xfa\xa1\x8ed\x02\x93\xc1\xbf\x0c\xfd\xdd\x82\x12Z\xc0?\x13u\x1f;(]\xd0\xbf\xe9\x9f=\xaf\x81"\xe1?:\x9b\x85\xd8u\x9c\xe0\xbf\x1aJ\x0crv\xd0\xca\xbf+\xd2\x84\xaa\xee`\xdf\xbf\x04\x9c\xf8\xd4\xf6p\xcc\xbf8\xde!|\xc3\xe2\xb0?gB\x9cJG\xa9\xe1?\x80T\xbc\xf8\xd0\xf1\xc3?3\xe8\xe2i\xb9\x13\xd2\xbf}\xb9\x1f\xa10\xc3\xd2?\xfem\xdd\xd9)\xd3\xb8?\r\xa2\xa51\t\xef\xc0\xbfP3Q[!\xab\xc2\xbf\x0f\xd7*\x82\xb8\x1d\xe0\xbf\x06B\x02\xfe\xdd\xac\x9f\xbfb\xd4\xb7\xf3\xa9D\xd6?\x07v\x82.`\x97\xc6?\x98 \xa5id\xac\xb1?\x7f\xc9\xc6\xdb\x9a\x13\xb9?\xb9,\x16)\x91G\x93?\xca\x19\xea\x86X\x87\xc5?\xb2\x89_\xe2\xe9\x06\xb4\xbf\x80\xfbz\xba}\xfc\xd6?\xdd\xa1\xf64\xd6,\xcb?\x87G\xd1\r\xf8\xd8\xb8?\xbd!\xdc;\n\x96\xb4?+G\xdd\xd4\x9e*\xd1?=\xf7\xb4\xdag}\xd1?\xce(\x19\xd6\xb1Z\xb8\xbf}\x96\xde\xb6\xc0\x90\xdb\xbf\xc99\x0f\x81\x04#\xd6?\xd9`\xf0"\x08r\xc0\xbfD\x94\\\x85!\xe7\xba\xbf=d\'\xee\xa4\xf8\xb0\xbf\x0b\xae\xfeT:\n\xbd?\x1e\x84\x81Q\xec!\xc0?\x0e\xe8\x91\xdf0\\\xc7\xbf\x16\x9e%\x9a\xac\xf2\xc8?,\xab\x98\x96Gd\xd5\xbf\x18\x88\xe1\xcf\x17\x1c\xc0?\x7f\x91\xf3\x81\xa0\xc4\x9a?\x89\xc9D\x133\xec\x97\xbfT\x00\x03QH\x1c\xc4\xbf8\x1e\xfe`\x08\xdb\xb8?\xdfV!!,_\xe6\xbfLd\xbf\xcb\xc9<\xba\xbf\x90N\x9bl-\xb1\xc6?\x196v2Oi\xa2?\xee<m\x1d\xe8\xe8\xc1\xbfS\xb9`\xa1"\xb1\x86\xbf\xc3\xc6\xe1\xcf\x95\xff\x92\xbfk\xc2\xbf\xd9\\\x10\xb5\xbfq\xf6\xb9OW\xf7\xa4\xbf\x13\xc5\xe7\xac\x8aY\xb8\xbf\x1a?\xe5W/\xbb\xd8?\x15\x08W\xb8\xcfd\xd4?\xfd\x99\x8c\x9cY\xfc\xe5?\x92o\xd5LzY\xd3\xbf\x00\x81\xa3\x9d\x04\x19\xd3?\xfe\x94t\xd0\xec!\xc2\xbf\x83\xa1\xee\xbe\xde#\xc9?5\xa4\x169\x964\xcb?\xbe\x81\xf0 \x02c\xb6?\xa5\xc9\x9f\xd2\xcf\xbe\xd2?\x19T\xaf\x0fv#\xc8\xbf\x1cb\x08s\xd6\x19\xb6?[V\xe2\xc2\xdb\x80\xb8\xbfN\x80^GO\xd5\xe8\xbf\x82\xe7\xed\x83Cyu\xbf2\xc6\xee\xe1\xd7)\x9c\xbf\xb8\x89\xcf\xb5o\x7f\xb1?\x05m\xe25\'$\xd0?\x17\xc8\xc9\xd87N\xd0?\x0e\nci\x97\x1d\xb4\xbf\x1fI\x1fz\x95\xe0\xdf\xbf\x86\x13]\xbd\x81\xf6u\xbf\xc2\xec\xed\x1b\x06b\xa7?\x90\x01\xaf"Uq\xe3\xbf\x91W\xe9$\xeaE\xce\xbf\xf0W\x86\x92\xe0\xf2\xce?\xdb\xd3.\xff\xc2~\xe4?\xfa`\x89\x04\xae\xb6\xb4\xbfwh/\xf2\xd7\x90\xd3\xbf\xed\xb5bj3N\xbe\xbfyc\xcf?G\x1e\xc8?<\xe5\xca\xfe\x04\x14\xb4\xbf\xc5\xe4\xd7Mk\x81\xe3\xbf\xb0#\x12\xc5?\xe2\xe1?}\xb5\x81\xfb\xb0\x1e\xc4\xbf\x91\x90\x1aO-w\xd8\xbf\xf7JD\xb9s\xbb\xdd\xbf%8\x0b.\x90y\xaf\xbf\x82H\xd6\x11\x0b^\xdf?f\xe6\xa4\x80\xee\xa7\xc9?\x91\xa1\x024\x87\xd8\xc0\xbf\x81\x8e\x81\xc5\x87\x1c\xc3\xbf\x16\x96\x97(\x84qX\xbf\xf7t\xd3\x9f\x1e\x04\xc7?\xbe\'3\xb0w\xaf\xd3?!\xce\xb2\xcaa;\xd0?\x93\xc7C\xbe\xd6#\xb1?\xe5\x9f\x91\xff\x15\xb7\xc7\xbfXS)\xba\x8a\xe1\xe3\xbfm\xab\x92\tb(\xc7?\x8c\xf5\x90\xc3\xb5\xf1\xb7\xbf0\xc7\x15F\x1e9\xb4\xbfa\xcc"c\xfb\xc1\xcc\xbfb<\xb4zS=\xd3?q\x18\xc2\xa0\xe2\xa4\xd1?)k\xb9\xc6i:\xdb?\xc4>^h\xb3\xce\xc1?\x9d\x81\xfe\x94*\x83\xaf?\x10\xdf,\x15f\xed\xd8\xbf\xb7\x95\x9c\xa4\xa4\xcc\x90?\xcco\xd3\x9b8C\xc4?q\x1d\\\xbd\x07\x91R?O\x92\xff\xce\x96W\xc7?\xbd\xcf\xf42\xce\x86\x99\xbf\xef\x07\xa4\x9e\x8ft\xbc\xbf\xc8\xd2\xac\x9am~\xad?\xb9\x9cq\xaeNe\xac\xbfb8\xd2<P+\xca\xbf7&\xf7\x8f\xd3v\xd2?\x9d\xb2\x8c;\xb9\xca\xc4?\xe8\x96L\xec\xbf<\xd3\xbf\xad\x9d:\x13\xc7l\xb5\xbf\x91\xaa}B\xb5\xcd\xd9?\xc2\xb6\x97T\x1e\xa9\xac?\xb8# \xae\x1b\xa5\xe2?e\x9a\xd6\x11\xbc\xd3\xa4\xbf{\xda\x87\xa8\xaf\xec\xb6\xbf\xb0!\xcf\x1e\xabA\x8a\xbf\xcbf\xd1/\xf2\xbe\xd7\xbf\xc4\xb0w\xd6\xdb\xb6\xda\xbfg\xbd\x04\xddoq\xb5\xbf\xae\xdaz\x84\xf99^?\x00\xd4\xd9\xbb\xe4\xa2\xce?$\x1b\xcb\xf0\xd7S\xd2?ov\x07\xfc\xecO\xd3\xbf\x9c\xeb\x8a\xc2.\xa7\xd3?\xb6\x1fm\xf4/}\xc5?5\x85\xfasW\xe2\xe7?\xcd0s\xceO\xae\xd1?\xd3;\xe2\x9a\x84\xb4\xb2?\x8bu\xdc\xd4\xff\xef\xb3\xbf\xa5\xc2Y1`@\xdb?\xaa\xd5\xf2xQs\xdc?\xc1\xe1e\xe7\x97\xc9\xc0?\x91\xfd\x04\xcf\x1d \xe3?[\x1d\xca3\x87r\xba?\x98K\xce%\x15u\x93?\x04\xfa\x9aj\xe2\x01\xb4\xbf\xc0x\xae\x0cF\xe4\xdb?\xa0\xeb>\xc4v\x1e\xb9?/+)(n\xca\xa6?\x1eJ\xd2<\xed7\xca?\xafG+\x99\xffY\xc4?Z\x82\x87a\x82\xfb\xbc?\x8e\xd2\xe92.{\xbf?NA\xf7\x98\xeco\xc2\xbfN\x1cF\x97,4\xe3\xbf<$\xe8\\9\x99\xc0\xbf\x979\xd1=\x0el\xcb\xbf_\r\xe7O\xfa`\xc2\xbfCW\x06o&\x13\x97\xbf\x81\xab\xd6\x81\xa5\xaf\xb2?\x80\x8a>Okx\xd0\xbf\xd2\xb4?\xea\x9e\x07\xde?1\xdaA\xed\xd9\x19\xb5?L\x1aW\x91\xdd\xc9\x9a\xbf^\xe3Du\xd3\xb2\xc1\xbfg\xc3\x86\t\x91?\xda\xbf\xea\xd8\x9e\xe3\xf3+\xd0?3\x1a\x9eO\xb6\xca\xc0?\x1d\x16\x1c(\xa9\xc4\xd2?\x8bd\xb0s\x87\xfa\xdd?\x92f\xb6\xc8>\x1f\xe3?\xe6\xe3\xc5\xe4c\x18\xb7?Q\xed\x9a\xa8%\xef\xaf\xbf2\x0fe\xd5\x85F\xd7\xbf/\xd2"Cv|t?\xc9\x7f\x05\x9fT:\xc6?\x8d<\xe4\xf8\x0e\xe9\xb2?\xd2\x1fr1\x1a]\x92?\x85\x0e\xe6k\xa3O\xcc?\xb1\x0fJ\xb8\xd9\x95\xb2?\xf0\xa6\xb1\x13\xf7\xae\xcf?\xc3\x0fMt\x93\x80\xc2?\xefcbt\xcal\xc7\xbf\x81\x0e\x8d\x1aT\x81\xc6?\x17@C\xb2\xf4\xfe\xc3\xbf\xc5;\xb6\xa0\x9f\x85\xcb??0\xb4\xd6\xcb:\xe1\xbf\xa3\xba\x1bL`\xfc\xbd\xbf0\xaen\xca\x01v\xbf\xbf\x00\xbbi\'\n<\xdf\xbf%\xd6!/\x7f\xa1\xc7\xbfV\\\xaa&;\x1c\xc5\xbfr\xb6E\x89A\xca\xd0?\x7f\x04\xf9\xb6"\xda\xd0\xbf\xa3\x8a\x1dx\x1eA\xd7\xbf\xf5p\x925g\xef\xd4\xbf\x8f\xeft[\x92\x8d\xba\xbfk\x0f\xcd\t#\x1d\xf0\xbf\x074h\t!\x94]?\xca\xfak\xec\x19\xd8\xe2\xbf\x00\xfbL\xbe\xea\xe1\xc1?p\xbcEA\x94H\xc6\xbf\xee\xca\xecB\xd7Y\xbe?\xe7\xc1\xbc\xac\x9dS\xbb?s\xf9\x9b\xf6*\x85\xac?\x95K\xf6\xc9\xf6I\xab\xbf\xfe.\xfddg\xd2\xd3? \\ \xad\xc8e\x9a\xbf\x9c\xe3\x17\xd5\xa1\x82\xec\xbf\xb4\xa9}\x1e\x85\xe0\xc3?\x8f9\xe12\xf6\xd8\xe8?\x8c\xd8P+\xe7\x05\xa0\xbf\xbff\xb2\xbf\x18\x98\xc1?\xd1\xac\x11\x9f\xa9\xa5\xd3\xbfs+Z\x0c#\xcf\xb7?,\xe3\x9e\x02Py\xdd?\x81\x95\xde\xce!\xa3\x89\xbf\xe6\xc5g\x8b}.\xd1\xbf\xf2\xd6\xfc\x12\x17B\xd9?"\xb1X\xf5\xd0Wx\xbf\xa2y[\x96S\x0e\xcb\xbf\x8e\xdbn\x9e\xea\xea\xda?\xe1\xd76\xe9\x10\xda\xc9?\x83b(\xe2\n{\xcb\xbf\xf6\x8d\x1df\xbb\t\xc7?\xa2Y\x16M[\xaa\x82\xbf\x9fW\xb5\x98\xb6\x15\xe0?\xea3\xa3\x1f\x18\xe0\xd0?\x93\x88\xf1\xda\xac\x86\xba?+2\x98Z\xaf\xfd\xad\xbf9\xa7\xc4\x8fx9\xc8\xbf\x0b\xb1\x04\x00\x1f\xcd\xe3\xbf\xf6\xf0`\xee\xbb\xa3\xce?\x9f\x8cu\xe3\x9c\xc8\xc7?\xdf\x1f"6\xdf\xe4\xd0\xbf\x11\x1b\x13\xad\x01\xb4\xd2\xbf!\x1ao{*\x18\xa8?\x1e%\x87*\xae\x08\xd0?\xc7\xbch\xbe\x10\xda\xba\xbf*6$*\x99\xbb\xc8\xbf\x05\xce`\xca\xd3d\xd2\xbf\xc6\xcc\x0c\x1e\xa1m\xbf\xbf\xf9\xf0T\xb3\xaa(\xa4\xbf\x8c\xcbp6\xe0\x7f\xc7\xbfY\xeeO\x128\xca\xc8\xbf\xaf\'%\x19\x9e\xb5\x94\xbf\x7f\xe7.Y\x0b\xd2\xb5?(\x1a\xb6\xcd\x98x\xda?\xfcN&\\\xb9*\xb9\xbf\xf6\x97\xf2EL\xcc\xcd?e)\x08\xae\xac\x14\xc2?3V\xbe\x08\xeaL\xc3\xbfI \x85k\xf4\xbe\xce?\xd1\xa5\x16W\x19\x0b\xb2\xbf\xac\xe2+\x92Wz\xb5\xbfk|\xbe\x15\x9b"\x86?\xc1\x9b\xa3.\x1a}\xba\xbf\xd8\xb9\x12\x83eB\x90\xbfB\x92i!\xa6\xc6\xcf?\xda\xe5X\xc0\xbf\x0e\xc2?\xfe\xcf\x0c4<\xb3\xc6?\x1cI\rd\xa3[\xa3\xbf\xc1\xe5\x13\x8e\x98`\xab?\xfc\x05DY\xe4c\xcb\xbf\xb3\t\xb1"90\xa5\xbf\x02\xa2\xd7\xff\xf9\xae\xb4?\xe1\x7f7+\xb5y\xbd\xbf\xaf\x0b)qy\xe6\xb0\xbf3\x99,\xcd\x08U\xb4?\xde^4Q\xa2\xf8\x99\xbf\x92Ag\xab\x98\x07\xa1?\x8b\xd2[\xe6\x1a\xbd\xba?\xff\xa4\xbc\xb8\xf0\xcf\xca?\xc6\x1cx\xdf\x11-\xdb?w\xed\xa7\x16\xa1\x88\xb0\xbf\x98\xcf\xaf\x8d[+\xb0\xbfE\xd3\xe4\xbe6}\xc4\xbf\x0c(\x94\x9bC\r\xd1\xbf\xe1d\x12\xb2\xfe\xc8\xca\xbfD\'\xc6_\xb5\xcf\xb4?\xa6\x8c\xa1>\x1bF\xd1?\xed\x82\xc4\xcd\xf3\xd8\xcc?\xf8#\xf7\xd7\xd0r\xbd\xbf.5\x04\xe8O \xb2? e\xf0\xfenz\xb8\xbfb\x99\x87\xf1y\xf6\xca\xbf\xd4\xd1\xe9.\xbc`\xd3?Z^iM\t\xad\xcc\xbf\x1c\xc1\xed\xca\x8fe\xc3?NA\xca\xc9{y\xe9\xbf\x9dfb\xd8\xc96\xca\xbf?M\xda`\x16\x8e\xa5?\x881G\xd7M\x17\xc8\xbfjq2\x82l\x81\xb8?n\nN\xedW\xbb\xd0?g\x9c\xd7$<-\xd5\xbf\xaeL\x18b<\xd7\x8a?\xbe\xf1\x92\x10\xf2\xab\xa9?\x0fP1{\xbc#P\xbf\xa8\xac\xe3:\xe9\xf6\xaa\xbf\xe6\x1a\x82\x91\xd7\xc2\xd7\xbf.\xae\x95z\x81\x15\xb7?4\xc4\xfc\xa3J\t\xc8\xbf\x9e\xd4\xd3\xcc\x99_\xe1\xbf\xa9r;\x08\xd2gu\xbf\xd9{\xc0h\xd7H\xc5?\xbc\xb0\xfdD\xac?\xd6?\x87\x92\xecK\x1a\x13\x9f\xbf\r\xac\xc3\x16|k\xcc?\xc3\xaf\xd9\xd0\xc3\xf8\xb3\xbf\x08\xe5\xe0N\xefJ\xd4\xbfREs\x88k\xb3\xbd\xbf^\xc9\xf1\xc6f1\x7f\xbf4\x9d\xbb0\xea\x8d\xcb\xbf\x12e\xc7\xcf\x10\xf5\xc4\xbf`X\x1a\xd6\xcb\x95y?B\xf1Z@\xb1D\xc8?u;\x9et\x0eT\xcc?I\xd5\xcev\x8bx\xa4\xbf\xb6\xbc\x1b\xb3Gy\xc0?\x9e\x00\xe8\xaf\x9b;\xad\xbfiT\x8c\xc5\xa5s\xa8?\x16,e|\xce\x13\xd1?\x13\xcb\x9f}\xac\xf0\xd5\xbf\xb1\xd8"\xf6,L\x8c\xbf\x08\x90(\xe0\xdd\xd7\xd0\xbf\xe3p1\xf5\x88i\xd7\xbf\xfb\xbb\xfcf\n\xcb\xd3?\x85\xe9C\xe2Y\x0c\xcb\xbfT&\x00\xd4\x13\xe8\xae?\\\xf9\x97\x7f\xf2\xe2\xa3\xbf\xaar/\xb8Xy\xd3?\x9e\xb0\x0f\xd9o\xff\xd5\xbf\x15b?\x86\xdb\x00\xc6?\xbd\xcc&\xea\xc4\xe6\xae?\x18\x0e\xc4\x9f\xee;\x9d?F\x92\xa3x\x1d-\xc4\xbfe{Q\x0c\x93y\xd0\xbf\xac\x95\xc39g\x9e\xb4\xbf\x0c\xb9\x89\xb7\xc7A\xa4?\xe9\x01\xf9Y\xaeL\xc5?\xc6\xe6v\xbc8\xa7\xc4?(\x18\xcc\xaa\x8f\x16\xd1?\xb3\x1f\x14_\xdb5\xb5?\xc4\xf4\x8c\x00\xf76\x8f\xbf\xff.!\x8b~9\xbe\xbf\x08\x9d|\x97\xe9u\xc6\xbfB\xb6m\x07-t\xc0\xbf\xed\xfb\x069-\x82\xb9\xbf\xffi\xf1\xcd2\xd3\xb3\xbf\x06\xab\xc9\x86\x7f\xbf\xc9?q\xb0\xfeyU\x96\xc6?&\xcbYI\xea\xf4\xcd\xbf\x9a(\xc9\xf7,\x89\xa5\xbf'
p68
tp69
bsS'oadds0'
p70
g13
(g14
(I0
tp71
g16
tp72
Rp73
(I1
(I15
I100
tp74
g23
I00
S'\xe6z\x8d`\xe6\xd4\xb5?\'Z\xd7\x16o\x14\xbd\xbf\x847\xbddc\xd7\xa0?/\xe6\xec\xd0J\xfe\xc7\xbf\xc7I\xb0\x99\xec\xcb\xc5\xbfc\xa8\xd2\xcbF\xe5\xc5\xbf\x82\xdfp\xc5%\xe6\xb1\xbf\xf8\xef\xb9\xea\x08\x06\x97\xbf\x02\xeeLE\xb0\xc8\xbd?\xab\xa3\xdb\xd4n\xb3\xc7?\xec\xe4\x05Oi\x05\xaf?\xec\xb1>S^\x97\xb5\xbf\x10R\xb5Z\r\xb4\x9a\xbf\xce\xe5\x10Y\x1c\xf0\xb1\xbf,/\x0c*t}\xa5?\xcc\xb7\xf8KG\xf8\xad?\x1b\x0b\xef:\xe7.\xc1?\xaaWc\xde\xf7+\xc1\xbf\xf8\xe2R\xe6\x80\xe8\xc2\xbf\xb0\\\xb7\xb9\xa8\xdb\x83?\x0f\x9f\x0b\r1O\xc8\xbf\xbe\xd5\xb3\x12x{\xb8\xbf-\xcc]\x8d\xd9\x11\xcc?\x85\x11m\xf9\xa8\xe8\xc1?\xed\'\x15\x93\x80\xc7\xc0\xbf\xb3\xa13P\xc6\x82\xc6\xbf6/9l\x0eN\xb2?Ibn\xcf\xe4%\xc1\xbf\x14\xaa\xeeI\xfc\x89\xb8\xbf\x9ce\xaf\xfa\xb5X\xa1? \xb8U\x04\xe7\x96z?F\xce\xb3\x1a\xab\xec\xcb\xbf\xba\xd2\xe3H\xee\x9a\xb3?\xb7%\x15\xb0\xa8\xd1\xca?\xac\xe55\xc5O\x8a\xa3?\xab\x18N\xe0\x08~\xbc\xbf\xf0AG\xba\xed\xbb\x97\xbfl\x18\xa8\x80}\xcc\xb4\xbf,M\x829\x01T\xb8\xbf\x96\xfb\xae\xf0\x1e\xd1\xbb?fk=\xaf\x152\xbd?`\xe9\xb7\x84\x0b\x1a\xc3\xbf\xfa,k[\x17,\xb7?\xd5s\x8e\xd4\x84\xbc\xc0?\x84\xe3\x1b\xd2\xe8\xf7\xb9\xbfu\x82\x06\x81\x16W\xcc?\x92\x97\xb10\x0e\x0f\xb7?\xec\x98\x86\xef\xac\xe5\xa3?\xf5\xe7B\xa6:\r\xc4?\n\x1c\x96\xe3\x05\x83\xba?\x14\x8f\x16/\x8d@\xa6?\xd6\x9f\x89\xda&\xee\xb3?\xe4\xf8\xcc\xa8@\x15\xa6?\xe3\x14\x93\x1aH8\xc5?t\x0enY\xf3\xfa\xc7\xbf*E\xa6\x8dF/\xc8\xbf\xbe\xa9\xff\x02\xa1f\xb8\xbf c\xabtvPz\xbfozPK\xd5t\xc5?\xf4\xa6s\xb0\xb7U\xad?`\x9e\xf5\xdb7\x8bz\xbf\x1f\xce\xc2\x95\xb6X\xc5\xbf\xb0\xc6\xe2\x8c\x16\xd7\x94?%\xfd\x8dF\x17\xda\xc4\xbf\x90\x18\xfb\xcb\xc6\x9a\xad\xbf\x00qK\xe7\xb9\x95\xa3\xbfb\x04\x04B\xf5\xb5\xc2\xbf\x0f\x8fF\xfb_\xec\xc8?H_ iR\xce\xb0\xbf$\xb5\xe1*\xc7/\xa7\xbf\x82Y4*\x03y\xbc?\xf8R\x13!\xae\xbc\x9b?\xa3\xfc\x1e\x7f\xa5e\xbb\xbfp\\V\x93\xa4\xb0\x8e\xbf\xbb\xa8\x98<m\xd4\xbb\xbfP\xc2\x96\xbf\x05^\xa6\xbfl\x9c1\x00\x14\xde\xc8\xbf\xb1\x1b\xab\x8f\xdey\xc8?3\xbf%[\xa6\x13\xc9?\x94mKN.)\xc1\xbfw\xae\x02K\r\xca\xc9?\x80\xf4\x8e\x1d\x17\x90t?\xa7t\xfaAH\xe7\xcb\xbf\na\x82\x19\xc2\xb8\xc1\xbf\x1c\xdfi\xba\xc8 \xab?\x00\x94Mb\x04\x04p?HC\xff\x07\\\x93\xa1\xbf\x8c\xed\xf8\x0e\x9eT\xb9\xbfe\xfb\xa1O\xfc\xfb\xc7?\xf2\x04\xdd\xba\xb9\x94\xb4\xbfp\xd0r\x99\x85:\xc6\xbf\xa4\xfb\xce1\x7f-\xae?\xd8\xaah!\xcb\xae\x9d?\xa7\x12+0\xe8\xb2\xc2?\xc9\xcae0C\x8a\xc9?\x9f)\x1b\x99T\x18\xca?\xe2\xe6\xcb\x7f\xe3\x8b\xb5?\xa0\xa6\x11\xd2#D\xc7\xbfP=2\x98L\x05\xcb\xbf\\\x84\xee\xb1\x8bz\xae\xbf\x1bh87\x8c\xc4\xc2?\xe2\xeb\xddlP\xc2\xbb?l\xbbO#\xee\x0c\xb0\xbf\x11\xd6F\x05A!\xc7?\xa9\xafFr\x96\xa6\xc9\xbf\x0ee\xb8\xe1\x84|\xc0\xbf\xc0\xa70\xfewFz?X\x16a\x8f\xacU\xc3\xbf\x00<\xf5\x11\x85\'\x86\xbf\xb3_v\xf4\xf5\x90\xc3?\xfc\x98\xacdv\xd5\xc4\xbf\xb5F\x8b\xe7\xeaY\xc3?\x07\x83Ir\xac\xef\xc4?\x8a\x9cOc\x8a\xdd\xb3?\xf0\xc4\xb5x\x8b8\xc9\xbf\x14\xf5\x0c\x1f\x8dO\xc8\xbf\x14^I\xf3\xfb\xf0\xaf\xbf 3-\x02\xe5\xb5\xa2\xbf\xd8\x88\xb2\'\xa4\xc8\xc3\xbf\xa4" F#\xbf\xa9?\xe4\xd9#D\xd2\xe7\xb2\xbf\xa6\xb6\xa2\n\xf7.\xb5?\xc8\xea\xcd\xd1\xeb\xd2\xb5\xbf\xa0\x1e\xad$\xc7\xa9s?\x8b\xe9\xcf\xcbk\xba\xc6\xbfq-\xb7$\xc0\xcc\xc7?\xa0#?\n\xdb\x99\xba\xbf_\x8f\xf3\xda=\xd3\xc1?\xcc\xb9PY\xec\xe7\xc9\xbf?\xfa\xb5\x0c\x9e{\xc4?"\x0b|\xc0\x10\xf1\xca\xbf\x9d\xcdoi\x87\xcc\xc5?\xccY\xf0\xcf|\xd5\xc2\xbf@m\x08\xa6l2n?\xb3\xf6B\x18\xd2\xf3\xc9\xbfb\xf5\xc7sRp\xc4\xbfn\x8bO+(\x88\xb7\xbf\xc69\xd3\xd9\xae\xe4\xc1\xbf(\xcdR\xb8\\\x8e\x96\xbf\xfbQ\x9fU\x83\x01\xc2?pI*Vg*\xc5\xbf\x1cg!\xa6U\r\xac?h\xb9\xe6~\xbbH\xa0\xbf\xe0p\xba\x90\x03\xaa\xc9\xbf\x95\xbf1D\xf8\xd8\xc3?f\xfeb*\x9b6\xba?\xa2\xaak\xf0V\xdc\xb0?\x1b\x0c\x93Oj\xbf\xc2\xbf\xc2m\x97\\\x98\x0e\xc6\xbf\xd7\t\x916s\xc2\xc7?\xe70\xc1\x85v\x97\xc7?\xe6N\xf1PC\xae\xc0\xbf^p\x9d\xf8\x19\x9c\xb2\xbf\xcb\xb3\xafM\xb6N\xbc\xbf\xe6\x16\xb1\x97YQ\xb2?N\xf7@\xdf@0\xba\xbf\xa2=\x84\xabO\x11\xb3\xbf\xe8\xc4n\x13\x10\x87\x90\xbf\x94\x846\x0e\x80\x8d\xb1\xbfJ\xd26=\xae\x97\xbb?\xdc\xecKa\x10\xd0\xb4\xbf\xaaR@?\x06\xe1\xb2?g3\x98\xb5G!\xc3?o\xd5G\xbaF)\xc6?\xb2\xcc\x84#v\xc8\xb8?\xea\xb8\x07\xc4\xe7U\xc5\xbf\x1d\x11}\x15: \xbe\xbfNE\x8b1\x96\xec\xb4?\x80\xceH\xba\xf7\xa8k\xbfd\r0e\xcfa\xab?\xa4:\xbdg\xb7$\xc4\xbf\x08\x9e7\xfc\xb9N\xc3\xbf\xec\x9a9\x0f\xc9\x1c\xa5?\x94\x92\xd11O\xc3\xc4\xbf\x04\x89\xff4\x94\x91\xa4?>\xce\xa0\x80\xb2\x11\xb7\xbf\x15\r\xc8S\x1ek\xc5?\x08\x18t\xb2\xfa\xe2\x96\xbf\x91O\xfa\x13\xd1\xec\xc3?\x87\xae\x05\xbb08\xcc?dER\xd4n\x94\xc7\xbf\x00Q\xd7\x12\xe6I\xc6\xbf\x00\x0b_\xd2Ky\xb8\xbfY\xb4\x80K\x06\xc6\xca\xbfv9\x17\xc7Y\x0f\xbd\xbfm\x85M\x9a\xff\x1d\xc5?O\x93\x07\xbfb\x85\xc1? S<t\xd5\xdf\xc1\xbf\x0c\xa4\xc4@\xcc\n\xc2\xbf\xfe \t\x1a\x13w\xb3\xbfB\x06\xfcc\x84\x0c\xb2?"\x98\x87\xa2\xd5{\xb7?uX\x9edUu\xcc?PR\xad\x1a\xf7>\x9c\xbf\xfb\x89\x06\xb7\x00\xf5\xc8?(\xf4\x14\xc7\xa2\xd7\xc6\xbf\xef\x88F\xbf\xd1#\xcc\xbf\x15z\xcd\x071\xc4\xc2?\x8cvS1dx\xad?\x89:m\xfe\xa6q\xc9\xbfPH\xc4H,6\xa9\xbf\xdb\x11"\x83\xa0\xe5\xc1?t\x94\x18:ON\xb6\xbf\xcb5\xdc\x02|6\xcb?\xc6\xb2\xb4@\x03\x86\xb5?.>\xae\xb5\xe56\xba?\xfbH\xd2\x83\xd5\x80\xcc?~ed\xd3\xde\xd7\xbe?\xde\xd4\xe1\xdf\x17*\xb5?B\xae9\x17\xb0\x92\xb0?\x01?\x17\xb33\xcc\xc4?~\'V\xe4\x06g\xb2?g_\x93\xaf<\xe6\xcc\xbfV\xe6\xfa\xa5\x7fd\xb5?\x80\x1f\xdd\x06\xeb\xb3\x85\xbft|\xf1\xc4eg\xa7?\x00\xfa\xaau@Pi\xbf\xa9x\xdcp\xbf\xea\xcb\xbf\xa5c\x85\x7f\x13w\xc6?\xe9;E\xcc\x85A\xc8?\xc0k\xf0g\xe0\x87\x90\xbf\x0b\x83\x7f\xb1\xd5\\\xc6?\x930}\xccxl\xc7?\xf1\xf8+H>\xfa\xc1?c\xec\xd6E7]\xcc?pA\xde\xea\x05\xed\xc3\xbfH3\xf3\x1ct\xfb\x9c\xbf C\xbckd\xc7\xa5\xbf\x89\xc6\xbc9\xe4@\xc8?\xee\xd7\x8c\x08\xab\xe2\xc2\xbf\x0e\x85\xb4\xc5\xf7\xa8\xbf?\xd8\xff]\xbdG\x8d\xc3\xbf\xee{\x07\x17\x02\x1e\xbd?F;x\xd1\r\x95\xba?\xdc\xcf\x01*\x17)\xa3?\xa7R\xa1H\xa5\xd4\xbc\xbf\x93\x13k\xff0W\xc0?k\xf5\x87\xb2\xce\xaf\xc5?\xaa\xcf\x88\xdf\xe8\x7f\xcb\xbf\xd9\xe5\x88$\xc4\x80\xc1?Tt\xc5@\xf1\xfe\xa3\xbf@\xff7DS^q?\xf1H\xf9\x96\xb3a\xcb\xbf\xfb\xe1\xf9\x84\xca\xc4\xc7\xbfj\xd3~x\xb5N\xb7\xbfh\xa4[\xcb\x84F\x9d?\xef\x176\xbas~\xc5?E\x02\x89\xd1\xd0Z\xc5?\xd51\xfa`\xe3\xc7\xca?\x15\x9a\xa9\xb8\x89\xd1\xcc\xbf\x18\x1f\n\x1e\x04j\xa4\xbfmG\x16T\xfe\x9b\xcc?h\xc3\x840\xf3\xa4\x91?j\xf2\xac\x89\x17e\xb6\xbfkL\xd9de\x8c\xc2?\xe0\xd9\xd6\xb1\x83\x1cu\xbf\x000\rkX\x85\x95\xbf^\x8c\n\xaf\xea\xa7\xb6?\x85\x17F\xdac"\xc7\xbf\x80C\x83# \xdd\xaa\xbf\xd48\x88\x9c\xa0\x9a\xa5?\x92\xf9yk*\xee\xb6?\xe2)\xe9\xef\x805\xcb\xbf\xc2\xa8\xe9\x02\xdc>\xc8\xbf\xa8\xf1\x1b\x85\r\x90\xbd\xbf`\xa5\x1a\xbb\xf3\x81\x82\xbfP\xa6\x0e\xfc\xdf0\x87?\xf4\xb1\xd2Gh\xed\xa8\xbfj#|\xef\xf4!\xca\xbf\xf0(\xa5~\xc5\xb0\x84?D\xd2\xc3\x9eV\xd7\xc9\xbf\xf8\x07\xd7(4\xa3\xb3\xbf4\xd9O,\'\xee\xad?\x96\x10\xfe\xdc\xf3\xee\xb5\xbf\xf3\n\xdd\xc60y\xc8\xbf\x98\xe9\xb7\xfb\xab\xaa\x90?\xb2\xfdZv\xa0\x80\xc4\xbf9*\xc9\xc6a]\xc8?\xc0\xaa\x10\xc0{\xbd\xb6\xbf\x14\xd4\n\xae[\xd9\xa2\xbf\x04\x98\xe7o\x99\xf4\xa8?\xcc\xd6\xc3\xea\xed\xcb\xa4?=EoM\xfb\n\xcd?\xf1E\xa3d\x07\x9e\xcc\xbf(\x983\xac!\x86\xa7\xbf\xb6\x99\xd0\x08\xc3\x08\xc5\xbf\x8bf\xad\xbaE\x8d\xc9?AjP\x08\x82F\xcb?\xcc\xfe\xc5.E\x8a\xb3\xbf\xdc"\xfc\x95\x0b\x97\xab?/z\xa4\x83>Q\xc5\xbf/\xbf\x9a\xe5\x1fa\xc6?4|\xed\x19\xd1_\xa0\xbf`\x85W \n\xe9\x82?\xfa\x03l"\xea\xc9\xc4\xbfwh\n\xde\xd6\xe4\xc4?H\x84\xeb\xfb\xe5\x95\x94?\x0e\x0ew|\xab\xc2\xbb?\xf8\xe9WzT}\x9f\xbf\x80\xcc\xec\x05\x0f\xbb\x90?\xf7\xbd\xf4\t\x8b\'\xc8\xbfx\xde\x98\x940\x97\x9a?L\x01\x1b\xebt\x82\xac\xbf\x7f\x14\'\xeb\x88\x87\xc7?\x8c7b\x8c\x9f/\xac?\xcc4\x1f\x87Gl\xba\xbf\xfb\xcd\xd2Yw\x89\xc4\xbf\xd2f\xb4>i\xf1\xb5?\x9e\xf7\xf0\xae\x86\xba\xbe?J:hP\\\xa4\xb7\xbfn\xe7\xeaaU!\xb5?\xf7*\xb9N\x1f\x8f\xcc?\x80*\xe1\xf6K\xf0\x8d\xbf5\xe3\xb5\xaa*\x9f\xbf\xbf\xd8E\xec\xbf\xc8\xfc\xb6\xbf\xeeq\x93|\xb7\x13\xca\xbfuz\x9b\'\x84\x89\xc6?TE\xfcX\xf1\xe1\xb2\xbf_\x92\xf6\xdb\xa2\xa9\xc0?S\xd4\x9atb\xc3\xc1?\xa5\xf9\xdb\'\x80V\xc3?\xa3,\xb2\x85\xcf\xe3\xbc\xbf>\xf7\x14\xd3TS\xcb\xbf\x07\xe1n\xba@\xe2\xc7?\xf8\xf1\x1b^\x83\x8a\xb0\xbf\x95\x0c#\xc5\xe2\xce\xc1?k\xe5Y\x07,\xf9\xcc?\xc7?\xff\xb3\xa8\x1c\xc8\xbf\xd7v\x94\x95\xa2\x8f\xc1?h0\xdfa\x83B\x9b\xbf\x87\xa6\x85z\x85\xa0\xc6\xbfbo1\x1e&\x89\xbc?\xc5:\xa3\xc2K\x8f\xc5?\x10\xa9$-\xbc*\xcb\xbfy\x0b\xb0\x1fI\x90\xc6?D)\x04`\xe2\xf6\xa5\xbf\x12H\xa1\xd8\xcb\x14\xb4\xbfFq\x90\x8e\x80\xf6\xcb\xbf^\xe8\x00;\xe3\x93\xbe\xbf\xe0\xb3{<L\xcb\x95?\xb7:\x17;\xc7\xeb\xcb\xbf\x08\x96\xd5\xc8_!\x93?\xdc\xce1W#+\xa9\xbf2$\xea\xeb\xe2\x1b\xc3\xbf\xe0\x021\x00\x90\xe8\xb5\xbf\x8e?\xee\x83\x1a\xf3\xb4? 9\xbd\xb5\x1c\x9c\xc5\xbf\x87\x15+\x1e\x14\xb3\xca\xbf \x84\xf5\xb0\x89\xc7q\xbf4\xde\x90{\xce\xe9\xa4\xbf\x9c\x19D\xd4\xae\xfc\xb9\xbf\xf6\x98R0\x02\x10\xb2?D\xb5\x80\x94\xec\xe3\xc5\xbf\x1b\xf1d\xa5\xa7\xf0\xc9\xbf\x95FVurv\xc6?\\\xf66\xdeu\xdc\xc6\xbf)\xe5\x86\xa4\xb2+\xc6\xbf\n\xef\xdelt\x88\xca\xbf\x81\xf6]\xae\xec\xba\xca?\x98,\xecq\xe6a\x93?\xb8W\x9c\xe4\x86\x9f\xb4\xbf\x00m\x9e8i3\xbc\xbf\xce<d\xc8\x8e\xc4\xb1?\x90\x81*\xff\xf5\x0e\x91?B\xd1o}\x15]\xb2\xbf{\x08b\xdb\x85\x86\xc6\xbf~\x14\x19Qi\x9e\xc3\xbf\xc0A\x17/\xeb\x84p\xbf&\xc3\xe9\xeb\xd0*\xb1?=\xdf\x12\xf0\xae\x12\xc9?\xa0\x08\x93\xe8\xfd\x8c\xa0\xbf\x15\xac\xc0k\x00<\xca\xbf\xe7#\\\xe0\x83\xa5\xc2\xbf\x04n\'\x88\xad\x8f\xaf\xbf\x82\x0foW\xba\xb9\xbe\xbfB\xf7$a\xa2\xde\xb7\xbf@\xcaC\xcb\x1f\xdbk?\x19\xaf\xa6\x84\xf8\xc1\xc1?\x9e\xfd\x1c\xc8\x15,\xcd\xbf\x02\x02\xeb\xf5\xa2\xbf\xb0?\x00\x1a2\x17\xa0T2\xbf\xcb\xc8\x8b\xaa\x93\x9c\xc6\xbfv:\x1dR\xfb\xae\xbe\xbf\xb2D\xd9>\xab\xa1\xb7?g\xd5\xfe|\xea\x10\xc7?\xe12\xe2\xb2%\x80\xc7?$5\xf8=\xe2\xc8\xb0\xbf<\xe3\xe7\xce[\xf9\xa6?\xa8\xc6n\x02\xbb\xbc\xa6\xbf\xe4y\x86\xad\x9b\x08\xa0\xbf\x1d\xff0u\x14\xf1\xc2\xbf\xb83\xa1\xaa\xe60\x96?>\xf4B\xd1\xb27\xbc\xbf\xaap\r;\xd8\xc4\xb9?\xb9E\n\xb7\xc2\x84\xcb?\xa4\xa0\xef\xfai\x99\xb9\xbf\x80<\xc1\xd5\xfa\x05\x8a?\xb2E\xa0\xc0\xfag\xb9?6\xf0.\xc0\x1b\xf4\xb9?\x16\x12\x0e^\x92\xeb\xb1?\xc1@(\xf1M\x81\xbb\xbfH\xba\rM\xbb,\x9a?6\tz\xdc\xaa\x1a\xb9?\x00D\xb7\xce~\xc2)\xbfQ\x86/\x00 \xd8\xc7?v/;\x81\xb75\xbd?\x0f\\\xd0B42\xc9?x\xe9\xb5x|\xde\x9e?\xbc\xe3|\x9f+\xe2\xc8\xbf\xdb\x9a\x86A\xc6\x95\xc6?!<\xda\x9euS\xc5?G\xb1\x13j. \xc1\xbf\x0czhd\x8f\xcf\xbf\xbf\x98\xcd\x047u\xee\x98?zT\x89\x04\xda1\xca\xbf}\x81C\x1c\xc2M\xc6\xbf0\x1d\xa2\x14\\@\xb2\xbf\xb0\xc8r[p\xbf\x89?#2^\xf3\xb2+\xca?\xac\xc7\xd0\xc3\r%\xa7?\xc0\xe2pTX\t\xc8\xbf\xc4\x80Lk\xc9q\xa6?TC\x97\xcd\xc5\xa1\xa7?i\xdet\xac\xa3P\xc7?\xebZ\xa5\x1d\x0ee\xbc\xbf@\xb3\x98\x8aa\x9f\x8b?\x84\t^"\x15\xea\xb7\xbf.\xedY>0\xd2\xc2\xbfBM\xc0\xae\xc3\xe7\xb9?r\xc1B%-\x8e\xbb?\x01\'\x9a\xaa\xec+\xc3?\xbc\xc5\xc3\xf3\x14O\xbf\xbf\xf0\xbe\x0b\t7\xec\x82?8t\xa5\xce\xac\x1f\x97\xbf\x9d\xb1]\xd7;\xb7\xc4?\x8c7\x0c<N%\xaa?V\x9e\x9dL$=\xb2\xbf\x9d\xc5]\xcdf\x05\xca?\xf8\xb9\xb9\x06\x1b\x97\x90?\xbdT\x1ac\x9bx\xc3?\x0e>i\xc7\n\xe1\xc4\xbf\x04\x1b\xc4\x96iL\xb2\xbf\x92\xd8$\xdc-_\xbb?Hu>\xb5\x0c\xd8\x9d?\xcdNV\x14I\xa4\xcb?jb\xf3\x04\x11\x11\xc9\xbf\xfb\xd9\xb56\xb0\xa3\xcc\xbfU\x04!]\x91\xa3\xca?p|\xae\xa3\xb8\xc5\xb4\xbf\x03\xc8\x08\xc2\x9d\x0f\xc8\xbf\x03c\\\x7f\xcfK\xc6\xbf\x87S\x94U{\xd6\xc4?\xa8\x0cy\xd3}K\x9b\xbf\xf8\xad5W\x88\x9a\xb7\xbf\xe4y~v\xd5x\xb1\xbf%\xf7^\xf7\x8b\xa4\xc4?\xf0\x87\x1ay\xca.\x9e\xbf\xe8 \xc6\x0c\xebU\x95\xbf\x02#\xadS\xb5I\xcb\xbf\xdc\xd3\xa5\xf50K\xb9\xbfnH\xf5\xc5\xee\xab\xb8\xbf\xdak\xb9\xc0\xe8\x85\xb1?i5\x82|\xaf\xc9\xc8?\xa2\xd0\x87\x0b\xfe*\xbb?\x8e\xb4i#*\xcd\xbe?\x84\x10m\xc0qn\xa2\xbf\xc5&\xc8\xaa.\x18\xbe\xbf^~\x83\t\xcc!\xbb\xbf\xfe\xa3\xc8\xba\xef\xbf\xb7\xbf6#\x0e\x9b\x0b\xac\xbe?\xe0z\xbc)\x11O\xa4\xbf\x98\xa7\x8bCC&\x9c?\xcb4\xcbN\xb1\xf0\xc6?&\xf3LNy\x0c\xb9\xbf\xb5\xf1\xe7%_\xda\xca?qS\x83\x93R$\xcb?\x80\xdc/Wk\xdd\x9f\xbf$\xcam5)\xa8\xc7\xbf@\xa8\xe8\xa4zMa?\x10\xaaku\xa7(\x9f\xbf\x18B\xca0\xcb\xd7\x9d\xbf\xafI\x03B\xba\xad\xc7\xbf\x9d\xa7F\xb8\x85h\xc0?\x16\\\x9454\x98\xbd?<\x9b\xe6\xc9)a\xac\xbf\xf2)_\x15\xd8\x8f\xca\xbf\xb0a\x0c\xb1\x1a`\x8b\xbf\x1aZ.\xb5o\xb8\xcc\xbf;_!\rR\x8e\xc0\xbfR\xc8>\xbe\xc0\xbc\xba?\xe0\x04\xcd\x86 <{?\xf1cUp|\x89\xc8?A\x13\x17\xaa\xb5l\xc2\xbf\x80\xcf\xe2\x8eu\x18a?\xdd \x0bn7\x10\xc5?Y$2 \x07\x9e\xc9?i\xf5\xd6\xdd\xdeD\xc9\xbf\xd3\xb3twWm\xc3?\xfc"[w\xad\\\xad?D\x08\xad\x87\xfe\xf5\xb5\xbf\xa6=\xba\xb5\xd9B\xcb\xbf$O\xe8\xf7H\xac\xa3?\xf4\xf7\x063q\xb0\xc8\xbf\xa2\xcc\xbcH\xf9X\xb2?E:\xef\xa85^\xc6?=\xba>\x95\xf1\xfd\xcc?\x06a\x8f\x93\xfd\n\xc7\xbfh{\xc0#\x827\xb6\xbf\x8b\xb1\xeegj\xe1\xc4?=T\xdc\x96\xab\x94\xc5?\xf2/\x1f\xfb\xcb6\xb8\xbfA\xab\x92\xa0\x94\xc5\xc0?\\\x06\xae\x97\xdbA\xae?(m\xf5N\xce\xd0\xa9\xbf\xbatR\xc9\xa3x\xb9\xbf\xf4\xb0Di6b\xc0\xbfl\xdd\xdb\xa5W\xcd\xa4?}S\xdb\xb2\x1a[\xbf\xbf\xb8\xc7\xa77\xb1\x8e\x94?\xa3\xaa\xc8j\xa5!\xcb\xbf\xe9g\xae\xc9Uo\xcb?\xa2Z\xf7(&\x1c\xcd\xbf\xd6\xf4\x9eE1\xe5\xc7\xbf7\\\x99k\x04,\xca?yG\xf8\xd2\xf2\xaf\xc4?\xb8\xc3\xee\xc3I\x85\x91?t\xed\r\x9a\x90\x8c\xae?1\xce\x9c"\xa1\x7f\xc8?\xa7\x90\xdc9\x97>\xc3?\x14k\x87&\xfbu\xaa?I\x0f\xc6\x08;\xf6\xc6\xbfa\x07\x0b1r\xfa\xc8? \n\xfd\x98dA\xc6\xbf\xa0\xc9l\x01\x10\xb7\xc3\xbf\x9e\xc3\xfeR\xc6W\xb2\xbfM\xb4\x1c3\xcc\xbe\xcc\xbf"[\xbd\x04%\xb3\xb1?\\\xe3\xfc\xe0\x1d\x19\xc4\xbf\xe4\x18c\xf9\x99,\xab?\xd0u&\x1a\x1b\xde\x94?\x8b~\x1az\xb9\xde\xbc\xbf+\n\xdfnN\xc3\xc5\xbf\xef:\x82\x9c\nH\xc2?\x00\xbb\xbfA{\xb0\xab\xbf\\\xc6\xb4\xdc\x87\xac\xbe\xbf\xde\xb3\'Z\x81A\xb2?\xe8\xdd\x95\x05\x1a\x7f\x9c?LM\xde\xff\x80\xdf\xa7\xbfW\x80\x1c\x958\xa6\xc5?\xce\xbb\xbcW=5\xb9?\x1e\x112\x0f\xf4\xbb\xb7\xbf\xee:\xca\xde\x8f\x85\xc3\xbf\xe4\x15\x17\xc5\x0e\xe2\xa2?L\x88@]\xba\x9a\xa1\xbfAJ\x99\xca\x1dI\xc8?\xc2\x0f\x8f<\xe9\xf5\xbd?\x01\x9d]\xd79\xb5\xcc?\xf4D\xac\x7fSU\xa1?\x0f\x8c\x89\x8a\x11\x91\xc4\xbfR:O\xf4A$\xb4?\x8c\xe5\xc7)\x07/\xab\xbfl\x96\x1c\x9e\x81\x84\xa2?\xb4i\xc5\x84\x82\xad\xa2?\xda<"&\xc1|\xc4\xbfc\xee\x88\x18\xdc\x04\xc0?3\xde\xd9;D\x9d\xc4?w\xbfK\xe78>\xcb?xEu\xa1\xad\xd4\xb9\xbf\xac\xd7\x97$\xfe\x85\xaa?\x1c\xef\xc1X\xb8<\xa1\xbf\xcdB\xbfz\xa8\x89\xc8?\x1d\xd2L\xf0\xb7\x08\xc3?\xa8\xcc-h\x97\xdb\x98?4\x92\xe8\xe1(\x13\xa8?\x02p\xce\xc8\x03*\xc1\xbf\x10\xb0\xc1\xf1\xb2Y\x9e\xbf\xe0\xfb\x9c\xa9^\xb2\x8b\xbf\xae_V_\x86\x9f\xc3\xbf]\x040\x9c\xbbk\xc5\xbfP\xc1\xcc\xd1\xbd\xb6\x8c\xbfEa\xf7\x1e:\x14\xcb?`j\xd8c\x14A\xb1\xbf\x8b\xcco\xd9Dn\xcc?\x0c\x0c\xc1L\xac\xc0\xac?X\x13\xf1\xaf\x7f\xe7\x92?\x91\x0c\x87:I\x13\xc4?\x18j\nxJ\xa1\x9b?\xa1\t\xe9z\xed\xb0\xcb\xbf\xdc\\\xec\x1b\x04\x99\xa7?V\x94\x84\xe7\xd6\xad\xc4\xbfXE\xb8\xf7\xfb\x8f\xc5\xbf\xd2\xad\xf8\x084*\xb1?\xc4\x85\x1b7\xf2\xd5\xc3\xbf\x99\xb9\x9c\xbf\x83\xb8\xc3\xbf\x18\xc3\x91P$\xbc\x9d?*\xa1\x98\xd5\x06\xac\xbe\xbf\x00\xda\xb6\xb9\xbf\x94\xc9\xbf\xe1\xdej\x95\xfd\xf3\xc7?(g\xe6(\xac\xa9\x96?\xe2\xbe7\xfa8\xca\xb6\xbfIL<\x02;\xd6\xcb\xbfe\xf0%5\xaaR\xc3?\xe7M\x00\x80E+\xc6?t\xbey-\xf1\xe1\xad?\xc8\x03\xbd\xa5\r\xd9\xae\xbf\xb0\xb5\x1a\xda\r\xb4\x93?\xc4\x89O\xaa\t-\xc5\xbf`\xe0\x7f#\xc79\x85?\xc8\xdbo\x13\xb5\x8c\xc6\xbf\xbcB\xccZV\n\xcd\xbf\x14i\xfe\xa4\xe9.\xa1?H\x82+T\x16\xef\x92\xbf\x01\xcfq\xfbp^\xc0\xbfg\x94\xc7\x02&\x88\xc7?\x00\xec\xa2qn\xd3\x84\xbf\x12\xe3\x07\t\xc9\x85\xb5?\xa0?0\xc3\x0es\xcb\xbf6\x82\xb4Gz|\xb7\xbf8\x12\x11\xf5\xb9\x89\xc8\xbf`\x0f\x8a\xee9u\xb7\xbf\xe4B+X`\r\xa2?\x80\xd8\xad\x9a?\x00i?\xbd\xce\x16[\xf52\xc9?\xcb\xe1\xa9\xbb\xd5\t\xc8?E\xdf\xc4\xf3y8\xc2\xbf \xda\x95\xfd[!\xa3\xbf\xe7\xd1\x9a\xf9\xe1$\xc7?S\x1c>\xc2\xca\\\xc8?\xf0\xa1\xbdR\xcf\xb5\x8e?\xc3v\xd3\x08\xd3\xdc\xca?\xe8Y\x8f\xe1\xdbh\x92\xbf%\xcc{$\xb2\xda\xca?\x9b\x93\x8aZ\xcb\xb7\xc6?\xf2-L\x96\x19\xb1\xb9\xbf7h\rG\x95`\xc9\xbf\x8d\x1e\x94\xf8(0\xc2\xbft\xdf\xc1|\xd4\x9f\xa7\xbf\xec\x9bs\x925\xb1\xaa\xbf\xea\x9c\xba\xe4\x85I\xb4?\xc4\x83\xcc\x06\xa4\x11\xa7\xbfF\x96q\xbe\x18\x8f\xb5\xbfn38M\x8c\xaf\xc4\xbfAyY\xaa\x8b\xa6\xc7?\xa8\xa64\xfdR\x9e\xaf\xbf\xb4`\x9f\xc16\xd3\xc2\xbfpF3\x0fo\x9b\x93?n|\tU\xeb\xf2\xbf\xbf!\xfb\xc1\xdb\x12\xc8\xca?~\x03\xf8\x9b\xf2\x1b\xc7\xbf\x00\xcf\xa4\xde\x98\x05E?\xd46bMh\xea\xa0?H\x1b@\xf1\xe6N\xbb\xbf\xfaC{\xc6\xe9\xbe\xb9?\xc1\xcc!n)2\xc9?\x8b\x86\xa0Bz1\xbc\xbf|\xf2\x80\xdc\x94\xa2\xa3?,\xa7w\x16\xa3\x13\xa6?\x04OtWQ\x07\x
Download .txt
gitextract_31qnb1wz/

├── .gitignore
├── README.md
├── ntm/
│   ├── __init__.py
│   ├── addressing.py
│   ├── memory.py
│   ├── new_cos.py
│   ├── newmem.py
│   └── ntm.py
├── run_model.py
├── saved_models/
│   ├── associative_recall.pkl
│   ├── copy.pkl
│   ├── ngrams.pkl
│   ├── priority_sort.pkl
│   └── repeat_copy.pkl
└── util/
    ├── __init__.py
    ├── optimizers.py
    ├── sequences.py
    └── util.py
Download .txt
SYMBOL INDEX (45 symbols across 8 files)

FILE: ntm/addressing.py
  function cosine_sim (line 7) | def cosine_sim(a_t, b_t):
  function content_focus (line 22) | def content_focus(k_t, b_t, mem):
  function shift (line 52) | def shift(w_gt, s_t):
  function location_focus (line 89) | def location_focus(g_t, s_t, gamma_t, w_old, w_content):
  function create_weights (line 122) | def create_weights(k_t, b_t, g_t, s_t, gamma_t, w_old, mem):

FILE: ntm/memory.py
  function read (line 8) | def read(mem, weight_vector):
  function write (line 19) | def write(mem, w_t, e_t, a_t):

FILE: ntm/new_cos.py
  function cosine_sim (line 18) | def cosine_sim(a_t, b_t):

FILE: ntm/newmem.py
  function softmax_0 (line 14) | def softmax_0(Ks):

FILE: ntm/ntm.py
  class NTM (line 13) | class NTM(object):
    method __init__ (line 18) | def __init__(self, in_size, out_size, hidden_size, N, M, vec_size):
    method lossFun (line 89) | def lossFun(self, inputs, targets, manual_grad=False):

FILE: util/optimizers.py
  function l2 (line 6) | def l2(x):
  class RMSProp (line 12) | class RMSProp(object):
    method __init__ (line 18) | def __init__(self, W, learning_rate=10e-5, decay=0.95, blend=0.95):
    method update_weights (line 45) | def update_weights(self, params, dparams):

FILE: util/sequences.py
  function ngram_table (line 7) | def ngram_table(bits):
  function sample_ngram (line 20) | def sample_ngram(table, context, n):
  function copy_sequence (line 31) | def copy_sequence(seq_len, vec_size):
  function easy_copy (line 69) | def easy_copy(seq_len, vec_size):
  function repeat_copy (line 84) | def repeat_copy(seq_len, vec_size, repeats):
  function associative_recall (line 132) | def associative_recall(seq_len, vec_size, item_size):
  function priority_sort (line 182) | def priority_sort(seq_len, vec_size):
  function ngrams (line 224) | def ngrams(seq_len, n):
  class SequenceGen (line 248) | class SequenceGen(object):
    method __init__ (line 253) | def __init__(self, sequenceType, vec_size, hi, lo):

FILE: util/util.py
  function gradCheck (line 10) | def gradCheck(model, deltas, inputs, targets, epsilon, tolerance):
  function getDiffs (line 35) | def getDiffs(model, deltas, inputs, targets, epsilon):
  function rando (line 73) | def rando(out_size,in_size):
  function sigmoid (line 80) | def sigmoid(ys):
  function softmax (line 87) | def softmax(xs):
  function softplus (line 96) | def softplus(xs):
  function serialize (line 103) | def serialize(filename, data):
  function deserialize (line 112) | def deserialize(filename):
  function toArray (line 122) | def toArray(dic,h,w):
  function visualize (line 135) | def visualize(inputs, outputs, reads, writes, adds, erases):
  function unwrap (line 157) | def unwrap(x):
  function sigmoid_prime (line 185) | def sigmoid_prime(z):
  function tanh_prime (line 189) | def tanh_prime(z):
  function compare_deltas (line 193) | def compare_deltas(baseline=None, candidate=None, abs_tol=1e-5, rel_tol=...
  function cosine_sim (line 208) | def cosine_sim(a_t, b_t):
  function dKdu (line 223) | def dKdu(u, v):
  function softmax_grads (line 237) | def softmax_grads(Ks, beta, i, j):
  function beta_grads (line 248) | def beta_grads(Ks, beta, i):
  function K_focus (line 259) | def K_focus(Ks, b_t):
Condensed preview — 18 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,932K chars).
[
  {
    "path": ".gitignore",
    "chars": 109,
    "preview": "*.pyc\n*.swp\nout*\nlog\n*.pkl\n!copy.pkl\n!repeat_copy.pkl\n!priority_sort.pkl\n!ngrams.pkl\n!associative_recall.pkl\n"
  },
  {
    "path": "README.md",
    "chars": 29347,
    "preview": "# Differentiable Memory\n\nReference implementations of various differentiable memory schemes for neural networks, in pure"
  },
  {
    "path": "ntm/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "ntm/addressing.py",
    "chars": 3941,
    "preview": "\"\"\"\nThis module implements addressing as described in the paper.\nIt's basically a python version of figure 2.\n\"\"\"\nimport"
  },
  {
    "path": "ntm/memory.py",
    "chars": 1878,
    "preview": "\"\"\"\nImplements functions for reading and writing from and to the memory bank\nvia weight vectors as in section 3.\n\"\"\"\n\nim"
  },
  {
    "path": "ntm/new_cos.py",
    "chars": 1647,
    "preview": "import math\nimport autograd.numpy as np\nfrom autograd import grad\nimport memory\nimport addressing\nimport sys\n\n\"\"\"\nTestin"
  },
  {
    "path": "ntm/newmem.py",
    "chars": 984,
    "preview": "import math\nimport autograd.numpy as np\nfrom autograd import grad\nimport memory\nimport addressing\nimport sys\n\n\"\"\"\nTestin"
  },
  {
    "path": "ntm/ntm.py",
    "chars": 20418,
    "preview": "\"\"\"\nThis module implements a neural turing machine.\n\"\"\"\nimport math\nimport autograd.numpy as np\nfrom autograd import gra"
  },
  {
    "path": "run_model.py",
    "chars": 5088,
    "preview": "#!/usr/bin/env python\n\nimport argparse\nimport autograd.numpy as np\nfrom util.sequences import SequenceGen\nfrom ntm.ntm i"
  },
  {
    "path": "saved_models/associative_recall.pkl",
    "chars": 692859,
    "preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI2\nsS'M'\np7\nI15\nsS'N'\np8\nI"
  },
  {
    "path": "saved_models/copy.pkl",
    "chars": 381002,
    "preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI1\nsS'M'\np7\nI7\nsS'N'\np8\nI1"
  },
  {
    "path": "saved_models/ngrams.pkl",
    "chars": 367034,
    "preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI1\nsS'M'\np7\nI7\nsS'N'\np8\nI1"
  },
  {
    "path": "saved_models/priority_sort.pkl",
    "chars": 501118,
    "preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI2\nsS'M'\np7\nI7\nsS'N'\np8\nI1"
  },
  {
    "path": "saved_models/repeat_copy.pkl",
    "chars": 381403,
    "preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI1\nsS'M'\np7\nI7\nsS'N'\np8\nI5"
  },
  {
    "path": "util/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "util/optimizers.py",
    "chars": 1995,
    "preview": "\"\"\"\nThis module implements gradient-based optimizers.\n\"\"\"\nimport autograd.numpy as np\n\ndef l2(x):\n  \"\"\"\n  Hacky l2-norm "
  },
  {
    "path": "util/sequences.py",
    "chars": 8739,
    "preview": "\"\"\"\nGenerate random instances for each of the 5 tasks from the paper.\n\"\"\"\nimport autograd.numpy as np\nimport itertools\n\n"
  },
  {
    "path": "util/util.py",
    "chars": 7230,
    "preview": "\"\"\"\nMiscellaneous utility functions.\n\nIncludes finite-difference based gradient checking, some nonlinearities,\nvisualiza"
  }
]

About this extraction

This page contains the full source code of the DoctorTeeth/diffmem GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 18 files (2.3 MB), approximately 602.0k tokens, and a symbol index with 45 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!