本文基于
Oracle JDK 11.0.6
本人 Java 相关水平有限,如有错误请批评指正!
文章目录
前言
java.lang.String
这个类会一点 Java 的人应该都不陌生,你有没有深入了解过呢?
- JDK 8 之后的 String 有什么变化了解吗?为什么 JDK 9 要引入新的编码?
- 平时常用的 String 的方法(例如 substring 等)实现逻辑了解吗?
- 也许有些人无惧
HashMap
,但一问String
…… - ……
Ta 并不复杂,但是很重要。不如进入 java.lang.String
身体 源码里探索一番~
源码灌水
String 怎么存储你的字符们?
private final byte[] value
一个 String 实例的字符们主要存在这里。
“我 TM 怎么记得这里是个
char[]
?”
没错,在 JDK 9 之前这里确实是个 char[]
,并默认使用 UTF16
编码。
JDK 8 源码:
/** The value is used for character storage. */
private final char value[];
有没有考虑过一个问题:
Java 的
char
占用 2 字节,采用UTF16
,如果用来存储ASCII
字符组成的串,不就白白浪费了一半空间吗?
而且,在实际应用中,一个 JVM 内绝大多数字符串中的字符也是 1 个字节就能搞定的。
这个问题确实有人考虑到了,于是 JEP 254: Compact Strings 被提出,并在 JDK 9 实现了这种”更节省空间的字符串内部存储方式"
/**
* The value is used for character storage.
*
* @implNote This field is trusted by the VM, and is a subject to
* constant folding if String instance is constant. Overwriting this
* field after construction will cause problems.
*
* Additionally, it is marked with {@link Stable} to trust the contents
* of the array. No other facility in JDK provides this functionality (yet).
* {@link Stable} is safe here, because value is never null.
*
* 在 Java8 中,这里还是个 char[],自从 Java9 引入了编码方式,这里变成了 byte[]
*/
@Stable
private final byte[] value;
底层数据结构变更了,那原来的 UTF16
编码呢?
private final byte coder
新增加的这个字段干嘛的?
底层数据结构变了,默认编码方式也不再只有 UTF16
了,于是新增了一个字段 coder
代表当前字符串的编码方式。
为什么
coder
是final
的,不会根据字符存储需求切换编码吗?
既然字符串是不可变的,那编码方式肯定也不能变动了。
那都有哪些编码?
@Native static final byte LATIN1 = 0;
@Native static final byte UTF16 = 1;
可以看到,现在有两种编码方式:
LATIN1
UTF16
在这里就不具体介绍这些编码的规则了,读者可以自行了解。
我能不能不要这么多花里胡哨的东西?我就想用原来的 UTF-16
static final boolean COMPACT_STRINGS;
static {
COMPACT_STRINGS = true;
}
这个字段是一个开关, COMPACT_STRINGS
直译过来就是“压缩字符串”
value | 解释 |
---|---|
true(默认值) | 开启“压缩字符串”,即 LATIN1 能用就用,不能就用 UTF16 |
false | 关闭“压缩字符串”,即一直使用 UTF16 编码,每个字符占用 2 或 4 字节 |
这是一个
static final
修饰的字段,要怎么样才能修改呢?
要改也不是不行,指定 JVM 参数就可以了1:
-XX:-CompactStrings
什么时候确定这个字符串用什么编码?怎么确定?
那有了多种编码方式后:
- 什么时候确定这个字符串用什么编码?
- 怎么确定这个字符串用什么编码?
查看 coder
字段的 Write Access,排除掉一些引用其他字符串的 coder
的赋值语句,比较关键的有以下几个构造方法:
public String(int[] codePoints, int offset, int count)
String(char[] value, int off, int len, Void sig)
String(AbstractStringBuilder asb, Void sig)
@Deprecated(since="1.1") public String(byte ascii[], int hibyte, int offset, int count)
我们来看前面 3 个方法体,第 4 个已经是历史了,就不管了。
public String(int[] codePoints, int offset, int count) {
checkBoundsOffCount(offset, count, codePoints.length);
if (count == 0) {
this.value = "".value;
this.coder = "".coder;
return;
}
if (COMPACT_STRINGS) {
byte[] val = StringLatin1.toBytes(codePoints, offset, count);
if (val != null) {
this.coder = LATIN1;
this.value = val;
return;
}
}
this.coder = UTF16;
this.value = StringUTF16.toBytes(codePoints, offset, count);
}
String(char[] value, int off, int len, Void sig) {
if (len == 0) {
this.value = "".value;
this.coder = "".coder;
return;
}
if (COMPACT_STRINGS) {
byte[] val = StringUTF16.compress(value, off, len);
if (val != null) {
this.value = val;
this.coder = LATIN1;
return;
}
}
this.coder = UTF16;
this.value = StringUTF16.toBytes(value, off, len);
}
String(AbstractStringBuilder asb, Void sig) {
byte[] val = asb.getValue();
int length = asb.length();
if (asb.isLatin1()) {
this.coder = LATIN1;
this.value = Arrays.copyOfRange(val, 0, length);
} else {
if (COMPACT_STRINGS) {
byte[] buf = StringUTF16.compress(val, 0, length);
if (buf != null) {
this.coder = LATIN1;
this.value = buf;
return;
}
}
this.coder = UTF16;
this.value = Arrays.copyOfRange(val, 0, length << 1);
}
}
这三个方法一眼看上去有点像 CV 工程师的杰作,不过底层的逻辑确实思路是相似的,就是处理不一样的输入。
我们就挑那个 public 方法深入了解,另外两个相似的构造方法就不赘述了,直接注释:
public String(int[] codePoints, int offset, int count) {
// 作为一个 public 方法,首先必须要校验输入参数
checkBoundsOffCount(offset, count, codePoints.length);
// 如果 count 为 0,直接就引用空串就完事了
if (count == 0) {
this.value = "".value;
this.coder = "".coder;
return;
}
// 如果关闭了“压缩字符串”,直接跳过这块
if (COMPACT_STRINGS) {
// 将 codePoints 转换为 byte[]
byte[] val = StringLatin1.toBytes(codePoints, offset, count);
// val == null 代表 codePoints 中某些字符已经超过了 byte 可表达范围
if (val != null) {
// codePoints 中所有字符均可用 byte 表达
this.coder = LATIN1;
this.value = val;
return;
}
}
// 字符串内容无法使用 LATIN1 编码
// or 关闭了“压缩字符串”
this.coder = UTF16;
// 将 codePoints 转换为 UTF16 编码的 byte[]
this.value = StringUTF16.toBytes(codePoints, offset, count);
}
java.lang.StringLatin1
public static byte[] toBytes(int[] val, int off, int len) {
byte[] ret = new byte[len];
for (int i = 0; i < len; i++) {
int cp = val[off++];
if (!canEncode(cp)) {
// 如果不能编码则返回 null
return null;
}
ret[i] = (byte)cp;
}
return ret;
}
/**
* 右移 8 位不等于 0 的话表示输入值超过了 byte 可表示范围
*/
public static boolean canEncode(int cp) {
return cp >>> 8 == 0;
}
java.lang.StringUTF16
public static byte[] toBytes(int[] val, int index, int len) {
final int end = index + len;
// Pass 1: Compute precise size of char[]
int n = len;
for (int i = index; i < end; i++) {
int cp = val[i];
if (Character.isBmpCodePoint(cp))
// 1 个 16 bit 能存下这个字符
continue;
else if (Character.isValidCodePoint(cp))
// 需要 2 个 16 bit 才能存下这个字符
n++;
else throw new IllegalArgumentException(Integer.toString(cp));
// 超过了 Unicode codePoint 最大值
}
// Pass 2: Allocate and fill in <high, low> pair
// 长度为 char[n],则需要分配 byte[2n]
byte[] buf = newBytesFor(n);
// 填充 byte[]
for (int i = index, j = 0; i < end; i++, j++) {
int cp = val[i];
if (Character.isBmpCodePoint(cp)) {
putChar(buf, j, cp);
} else {
putChar(buf, j++, Character.highSurrogate(cp));
putChar(buf, j, Character.lowSurrogate(cp));
}
}
return buf;
}
所以,本节标题的问题有了答案:
什么时候确定这个字符串用什么编码?怎么确定?
在未关闭 COMPACT_STRINGS
的前提下,调用构造方法创建 String
实例的时候,先尝试使用 LATIN1
编码字符串,如果失败则使用 UTF16
编码字符串。
如果构造方法输入的是 String
的实例或该实例包含了编码信息,则会直接引用原有的编码。
private int hash
这个字段存储 hashCode。方法比较简单,就不赘述了。
java.lang.String
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
// 懒加载,首次使用时再计算 hashCode
// 为了确保使用不同编码的相同内容计算结果一致,计算时同样要区分编码
hash = h = isLatin1() ? StringLatin1.hashCode(value)
: StringUTF16.hashCode(value);
}
return h;
}
java.lang.StringLatin1
public static int hashCode(byte[] value) {
int h = 0;
for (byte v : value) {
h = 31 * h + (v & 0xff);
}
return h;
}
代码中出现了 v & 0xff
看似有些奇怪,byte 本来就不大于 0xff,为什么还要做一次与运算?
文章下面的章节有相关解释,可以先记住这个问题。
java.lang.StringUTF16
public static int hashCode(byte[] value) {
int h = 0;
int length = value.length >> 1;
for (int i = 0; i < length; i++) {
h = 31 * h + getChar(value, i);
}
return h;
}
由于一个字符对应 2 byte 或 4 byte,需要将多个 byte 作为一个整体处理。
至于 31
这个因子的选择,涉及到数学相关知识,不在这里赘述。
那些常用的方法你都熟悉吗?
源码中大量出现的 byte & 0xff 是什么鬼?
可以先看下一节,看完源码再回来考虑这个问题。
这个问题跟补码相关。
byte 本来不就是 8 位二进制吗,跟 8 个 1 做一次与运算不是多此一举吗?
考虑以下代码的输出:
byte b = (byte) 0xff;
System.out.printf("((byte) 0xff) => %d\n", b); // -1
System.out.printf("((byte) 0xff) & 0xff => %d\n", b & 0xff); // 255
Java 中的基本类型是有符号数,byte, int 的最高位是符号位,当 byte 扩容到 int 的时候,为了保持数值的一致,扩容多出来的 24 bit 根据符号决定补 1 还是 0。
byte 1111 1111
对应的数值是 -1
,扩容到 int 后就会变为 1111 1111 1111 1111 1111 1111 1111 1111
。
对于有符号数来说,这个数值保持了一致;
但是对于无符号数,这个结果明显不是想要的。
所以 1111 1111 & 0xff
会得到 0000 0000 0000 0000 0000 0000 1111 1111
。
为什么
1111 1111 & 0xff
得到的不是1111 1111
?
Java 数值字面量默认用 int 表示,因此 0xff
是一个 int 类型的数。
byte 和 int 做运算,自然要先扩容到 int 类型。
为了保持扩容后二进制一致性,所以要 & 0xff
。
你知道 String.trim() 方法去掉的不仅仅是空格字符吗?
java.lang.StringLatin1
public static String trim(byte[] value) {
int len = value.length;
int st = 0;
// 去掉的不仅仅是空格,而是所有不大于 32 的字符
while ((st < len) && ((value[st] & 0xff) <= ' ')) {
st++;
}
// 同上
while ((st < len) && ((value[len - 1] & 0xff) <= ' ')) {
len--;
}
return ((st > 0) || (len < value.length)) ?
newString(value, st, len - st) : null;
}
String.strip() 去掉空格字符 ’ ’ ( ‘\40’ ) 和 ‘\t’
strip() 方法从 JDK 11 开始提供,与 trim() 方法不同,strip() 方法只会去掉 ’ ’ 和 ‘\t’
strip 系列的方法有:
strip()
去掉两端空格stripLeading()
去掉串首空格stripTrailing()
去掉串尾空格
java.lang.String
public String strip() {
String ret = isLatin1() ? StringLatin1.strip(value)
: StringUTF16.strip(value);
return ret == null ? this : ret;
}
方法逻辑比较简单,不再赘述
java.lang.StringLatin1
public static String strip(byte[] value) {
int left = indexOfNonWhitespace(value);
if (left == value.length) {
return "";
}
int right = lastIndexOfNonWhitespace(value);
return ((left > 0) || (right < value.length)) ? newString(value, left, right - left) : null;
}
public static int indexOfNonWhitespace(byte[] value) {
int length = value.length;
int left = 0;
while (left < length) {
char ch = (char)(value[left] & 0xff);
if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) {
break;
}
left++;
}
return left;
}
split 方法是如何高效分割字符串的?
split 方法使用正则表达式分割字符串,是个很常用的方法。
但涉及正则表达式,很大概率会涉及性能问题,String 也没有提供非正则表达式的字符串分割方法。
那在进行一些简单的分割(例如按逗号分割字符串等)时如何保证不低的执行效率?
直接上源码注释:
java.lang.String
public String[] split(String regex, int limit) {
/* fastpath if the regex is a
(1)one-char String and this character is not one of the
RegEx's meta characters ".$|()[{^?*+\\", or
(2)two-char String and the first char is the backslash and
the second is not the ascii digit or ascii letter.
*/
char ch = 0;
// 有两种情况会直接对字符串进行分割,无需调用正则表达式的类,提高效率:
// 1. 表达式只有 1 个字符,而且不是正则表达式的符号,例如 ","(按逗号分割字符串)
// 2. 表达式只有 2 个字符,斜杠 \ 加上一个非数字、字母字符,例如 "\\."(按英文句号分割字符串)
if (((regex.length() == 1 &&
".$|()[{^?*+\\".indexOf(ch = regex.charAt(0)) == -1) ||
(regex.length() == 2 &&
regex.charAt(0) == '\\' &&
(((ch = regex.charAt(1))-'0')|('9'-ch)) < 0 &&
((ch-'a')|('z'-ch)) < 0 &&
((ch-'A')|('Z'-ch)) < 0)) &&
(ch < Character.MIN_HIGH_SURROGATE ||
ch > Character.MAX_LOW_SURROGATE))
{
int off = 0;
int next = 0;
boolean limited = limit > 0;
ArrayList<String> list = new ArrayList<>();
// 不断寻找下一个被分割字符
while ((next = indexOf(ch, off)) != -1) {
// 没有限制分割次数 或 不足指定的分割数
if (!limited || list.size() < limit - 1) {
// 为什么是 limit - 1
// 例如 limit = 3,代表分割后的字符串片段不会超过 3 段
// 即最多切割 2 次
// 示例:"0,1,2,3,4".split(",", 3) => {"0", "1", "2,3,4"}
list.add(substring(off, next));
off = next + 1;
} else { // last one
// 已完成指定的分割次数,将字符串剩下的部分直接添加到结果集中
//assert (list.size() == limit - 1);
int last = length();
list.add(substring(off, last));
off = last;
break;
}
}
// If no match was found, return this
// 没有可以分割的,直接以数组形式返回当前字符串
if (off == 0)
return new String[]{this};
// Add remaining segment
// 把字符串剩下的部分添加到结果集中
if (!limited || list.size() < limit)
list.add(substring(off, length()));
// Construct result
int resultSize = list.size();
if (limit == 0) {
// 去除结果集末尾的空串
// 示例: "0,1,2,3,4,5,6,,,,,".split(",") => {"0", "1", "2", "3", "4", "5", "6"}
while (resultSize > 0 && list.get(resultSize - 1).length() == 0) {
resultSize--;
}
}
// 结果集转数组
String[] result = new String[resultSize];
return list.subList(0, resultSize).toArray(result);
}
// 如果不是简单的分割,就直接交给专门搞正则表达式的去做好了
return Pattern.compile(regex).split(this, limit);
}
substring 很简单,但也要了解一下
substring 系列有以下几个方法:
public String substring(int beginIndex)
取字符串后半段,参数指定了后半段起始位置public String substring(int beginIndex, int endIndex)
取字符串中间某段,参数指定了起始、结束位置public CharSequence subSequence(int beginIndex, int endIndex
实际上直接调用substring(int, int)
java.lang.String
public String substring(int beginIndex, int endIndex) {
int length = length();
// 校验输入合法性
checkBoundsBeginEnd(beginIndex, endIndex, length);
// 获取子串长度
int subLen = endIndex - beginIndex;
if (beginIndex == 0 && endIndex == length) {
return this;
}
// 根据编码,区别对待
return isLatin1() ? StringLatin1.newString(value, beginIndex, subLen)
: StringUTF16.newString(value, beginIndex, subLen);
}
其实两种编码的具体实现都是借助 Arrays.copyOfRange 复制原数组的某一段,创建一个新的字符串。
java.lang.StringUTF16
public static String newString(byte[] val, int index, int len) {
// 检查是否开启压缩字符串
if (String.COMPACT_STRINGS) {
// 尝试使用 Latin1 编码
byte[] buf = compress(val, index, len);
if (buf != null) {
return new String(buf, LATIN1);
}
}
int last = index + len;
// 由于 UTF16 每个字符占用 2 byte,索引要乘 2 进行对应
return new String(Arrays.copyOfRange(val, index << 1, last << 1), UTF16);
}
Latin1 的 newString()
方法比较简单,直接复制数组内容创建新字符串
java.lang.StringLatin1
public static String newString(byte[] val, int index, int len) {
return new String(Arrays.copyOfRange(val, index, index + len),
LATIN1);
}
replace 系列方法的实现
字符串替换相关的方法有以下几个:
public String replace(char oldChar, char newChar)
字符替换public String replace(CharSequence target, CharSequence replacement)
字符串替换public String replaceFirst(String regex, String replacement)
正则表达式替换首个匹配项public String replaceAll(String regex, String replacement)
正则表达式替换全部匹配项
由于后两个正则表达式相关的方法直接调用 java.util.regex.Pattern
实现,此处不展开。
单字符替换
单字符替换逻辑比较简单,关键在于被替换字符和替换字符是否需要进行编码转换。
java.lang.String
public String replace(char oldChar, char newChar) {
if (oldChar != newChar) {
String ret = isLatin1() ? StringLatin1.replace(value, oldChar, newChar)
: StringUTF16.replace(value, oldChar, newChar);
if (ret != null) {
return ret;
}
// 如果 ret 为 null 说明没有发生替换,直接返回原串
}
return this;
}
java.lang.StringLatin1
public static String replace(byte[] value, char oldChar, char newChar) {
// 如果 Latin1 存不下被替换字符,字符串中肯定不存在这个字符
if (canEncode(oldChar)) {
int len = value.length;
int i = -1;
// 找到第一个被替换字符
while (++i < len) {
if (value[i] == (byte)oldChar) {
break;
}
}
if (i < len) {
// 检查新字符能否用 Latin1 编码
if (canEncode(newChar)) {
byte buf[] = new byte[len];
// 把前面不需要动的字符先复制过去
for (int j = 0; j < i; j++) { // TBD arraycopy?
buf[j] = value[j];
}
// 开始替换
while (i < len) {
byte c = value[i];
buf[i] = (c == (byte)oldChar) ? (byte)newChar : c;
i++;
}
return new String(buf, LATIN1);
} else {
byte[] buf = StringUTF16.newBytesFor(len);
// inflate from latin1 to UTF16
// 把原本 Latin1 编码的串转换为 UTF16
inflate(value, 0, buf, 0, i);
// 开始替换
while (i < len) {
char c = (char)(value[i] & 0xff);
StringUTF16.putChar(buf, i, (c == oldChar) ? newChar : c);
i++;
}
return new String(buf, UTF16);
}
}
}
return null; // for string to return this;
}
java.lang.StringUTF16
public static String replace(byte[] value, char oldChar, char newChar) {
int len = value.length >> 1;
int i = -1;
// 找到第一个被替换字符
while (++i < len) {
if (getChar(value, i) == oldChar) {
break;
}
}
if (i < len) {
byte buf[] = new byte[value.length];
// 把字符串前面不需要动的部分复制到新数组
for (int j = 0; j < i; j++) {
putChar(buf, j, getChar(value, j)); // TBD:arraycopy?
}
// 开始替换
while (i < len) {
char c = getChar(value, i);
putChar(buf, i, c == oldChar ? newChar : c);
i++;
}
// Check if we should try to compress to latin1
// 如果被替换字符用 UTF16 编码,替换字符能用 Latin1 编码
// 则尝试压缩一下字符串
if (String.COMPACT_STRINGS &&
!StringLatin1.canEncode(oldChar) &&
StringLatin1.canEncode(newChar)) {
byte[] val = compress(buf, 0, len);
if (val != null) {
return new String(val, LATIN1);
}
}
return new String(buf, UTF16);
}
return null;
}
字符串替换
字符串的替换主要借助了 StringBuilder 实现。主要思路是将不需要替换的字符串片段和新的片段添加到结果集中,跳过被替换的字符串。
java.lang.String
public String replace(CharSequence target, CharSequence replacement) {
String tgtStr = target.toString();
String replStr = replacement.toString();
// 查找字符串中是否存在被替换字符串
int j = indexOf(tgtStr);
if (j < 0) {
// 找不到则无需替换
return this;
}
int tgtLen = tgtStr.length();
int tgtLen1 = Math.max(tgtLen, 1);
int thisLen = length();
int newLenHint = thisLen - tgtLen + replStr.length();
if (newLenHint < 0) {
// 溢出了!能把 int 类型搞成负数,字符串容量已经超过 4G 了
throw new OutOfMemoryError();
}
StringBuilder sb = new StringBuilder(newLenHint);
int i = 0;
do {
// 将不需要替换的片段加入到结果集中,然后添加新的字符串到结果集
sb.append(this, i, j).append(replStr);
// 索引跳过被替换的字符串,设置为下一段不需要替换的字符串的起始位置
// j 到 j + tgtLen 是被替换字符串的下标
i = j + tgtLen;
// 寻找下一段被替换字符串的起始位置
} while (j < thisLen && (j = indexOf(tgtStr, j + tgtLen1)) > 0);
return sb.append(this, i, thisLen).toString();
}
String 如何实现大小写不敏感的比较方法?
String 内部有一个 CaseInsensitiveComparator
,这个类实现了 java.util.Comparator
,用于大小写不敏感的字符串比较。
java.lang.String
public static final Comparator<String> CASE_INSENSITIVE_ORDER
= new CaseInsensitiveComparator();
private static class CaseInsensitiveComparator
implements Comparator<String>, java.io.Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 8575799808933029326L;
public int compare(String s1, String s2) {
byte v1[] = s1.value;
byte v2[] = s2.value;
if (s1.coder() == s2.coder()) {
return s1.isLatin1() ? StringLatin1.compareToCI(v1, v2)
: StringUTF16.compareToCI(v1, v2);
}
return s1.isLatin1() ? StringLatin1.compareToCI_UTF16(v1, v2)
: StringUTF16.compareToCI_Latin1(v1, v2);
}
/** Replaces the de-serialized object. */
private Object readResolve() { return CASE_INSENSITIVE_ORDER; }
}
4 个 compareToCI
比较方法的具体实现思路相似,取其中一个展开。
java.lang.StringLatin1
public static int compareToCI_UTF16(byte[] value, byte[] other) {
int len1 = length(value);
int len2 = StringUTF16.length(other);
// 取短的字符串的长度
int lim = Math.min(len1, len2);
for (int k = 0; k < lim; k++) {
char c1 = getChar(value, k);
char c2 = StringUTF16.getChar(other, k);
if (c1 != c2) {
// 字符都转为大写
c1 = Character.toUpperCase(c1);
c2 = Character.toUpperCase(c2);
if (c1 != c2) {
// 字符都转为小写
c1 = Character.toLowerCase(c1);
c2 = Character.toLowerCase(c2);
if (c1 != c2) {
// 字符不同可以得出比较结果
return c1 - c2;
}
}
}
}
// 走到这里说明一个字符串是另一个的前缀,根据长度比较
return len1 - len2;
}
大致逻辑:
- 先把两个字符进行一次比较;
- 如果不相等,都转为大写;
- 如果不相等,都转为小写;
- 还是不相等,则可以得出比较结果;
- 如果循环因
k == lim
结束,说明其中一个字符串是另一个的前缀,比较长度得出结果。
为什么字符转为大写后不相等,还要尝试转小写而不是直接得出比较结果?
这个问题可能与 java.lang.CharacterData
的具体实现相关,此处没有深入研究。
一些特别简单或主要实现逻辑不在 String 的方法
有一些方法上面的章节没有提到,主要是因为具体实现借助其他类或实现逻辑特别简单。
常用的基本方法
这些基本方法实现逻辑比较简单,此处不展开。
public int length()
字符串底层存储改为 byte 后,如果用UTF16
编码,则需要将 byte[] 长度除以 2public boolean isEmpty()
判断 byte[] 长度是否为 0public boolean equals(Object anObject)
先判断是否同一个实例,否则根据编码调用对应的具体实现public char charAt(int index)
获取单个字符,根据编码调用具体实现public boolean startsWith(String prefix, int toffset)
public boolean startsWith(String prefix)
直接调用startsWith(prefix, 0)
public boolean endsWith(String suffix)
直接调用startsWith(suffix, length() - suffix.length())
public int indexOf(int ch, int fromIndex)
public int indexOf(int ch)
直接调用indexOf(ch, 0)
public int lastIndexOf(int ch, int fromIndex)
public int lastIndexOf(int ch)
直接调用lastIndexOf(ch, length() - 1)
static int indexOf(byte[] src, byte srcCoder, int srcCount, String tgtStr, int fromIndex)
找到public int indexOf(String str, int fromIndex)
直接调用lastIndexOf(value, coder(), length(), str, fromIndex)
public int indexOf(String str)
直接调用lastIndexOf(str, length())
static int lastIndexOf(byte[] src, byte srcCoder, int srcCount, String tgtStr, int fromIndex)
public String repeat(int count)
创建一个容量 count 倍的新数组,循环复制内容
valueOf 系列方法
该系列方法直接调用对应包装类的方法或 String 构造方法,此处不展开。
public static String valueOf(Object obj)
返回字符串"null"
或调用obj.toString()
public static String valueOf(char data[])
直接调用构造方法return new String(data);
public static String copyValueOf(char data[])
等价于public static String valueOf(char data[])
public static String valueOf(char data[], int offset, int count)
直接调用构造方法return new String(data, offset, count);
public static String copyValueOf(char data[], int offset, int count)
等价于public static String valueOf(char data[], int offset, int count)
public static String valueOf(boolean b)
实现逻辑:return b ? "true" : "false";
public static String valueOf(char c)
根据 c 的值返回一个LATIN1
或UTF16
编码的 Stringpublic static String valueOf(int i)
直接调用Integer.toString(int)
public static String valueOf(long l)
直接调用Long.toString(long)
public static String valueOf(float f)
直接调用Float.toString(float)
public static String valueOf(double d)
直接调用Double.toString(double)
getBytes 系列方法
getBytes 系列方法主要由 java.lang.StringCoding
实现,涉及大量编码相关的规则实现,此处不展开。
public byte[] getBytes()
public byte[] getBytes(Charset charset)
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
@Deprecated(since="1.1") public void getBytes(int srcBegin, int srcEnd, byte dst[], int dstBegin)
大小写切换相关方法
大小写切换相关方法涉及到地区编码相关规则实现,此处不展开。
public String toLowerCase(Locale locale)
public String toLowerCase()
直接调用toLowerCase(Locale.getDefault())
public String toUpperCase(Locale locale)
public String toUpperCase()
直接调用toUpperCase(Locale.getDefault())
codePoint 系列方法
codePoint 系列方法涉及较多编码规则实现,此处不展开。
public int codePointAt(int index)
public int codePointBefore(int index)
public int codePointCount(int beginIndex, int endIndex)
基于 java.util.regex.Pattern 实现的系列方法
以下方法主要基于 java.util.regex.Pattern
实现,此处不展开。
public boolean matches(String regex)
public String replaceFirst(String regex, String replacement)
public String replaceAll(String regex, String replacement)
基于 java.util.Formatter 实现的格式化系列方法
以下方法主要基于 java.util.Formatter
实现,此处不展开。
public static String format(String format, Object... args)
public static String format(Locale l, String format, Object... args)
Stream 相关方法
以下方法与 Stream 相关,此处不展开。
public Stream<String> lines()
字符串按行分割成流public IntStream chars()
字符流public IntStream codePoints()
codePoint 流
除了存储方面的优化,String 还优化了什么?
字符串拼接底层实现
有这么一段代码,循环拼接字符串:
@Test
void testConcat() {
String s = "";
for (String o : Arrays.asList("1", "2", "3")) {
s += o;
}
Assertions.assertEquals("123", s);
}
来看 JDK 8 编译 s += o;
这行得到的字节码:
L4
LINENUMBER 17 L4
NEW java/lang/StringBuilder
DUP
INVOKESPECIAL java/lang/StringBuilder.<init> ()V
ALOAD 1
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
ALOAD 3
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
ASTORE 1
每次执行创建一个 java.lang.StringBuilder
实例拼接字符串。
再看看 JDK 11 编译 s += o;
得到的字节码:
L4
LINENUMBER 17 L4
ALOAD 1
ALOAD 3
INVOKEDYNAMIC makeConcatWithConstants(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [
// handle kind 0x6 : INVOKESTATIC
java/lang/invoke/StringConcatFactory.makeConcatWithConstants(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
// arguments:
"\u0001\u0001"
]
ASTORE 1
自从 JDK 9 开始,字符串拼接的底层实现交给了 java.lang.invoke.StringConcatFactory
。
先不看源码,用性能测试说话
源码比较复杂,本文不展开了。
测试环境:
- Intel® Core™ i7-8700 CPU @ 3.20GHz × 12
- DDR4 32G 2666MHz
- Linux sia.lo 5.3.0-51-generic #44~18.04.2-Ubuntu SMP Thu Apr 23 14:27:18 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
测试工具:
- java version “11.0.6” 2020-01-14 LTS / Java™ SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
- javac 1.8.0_241 / Java™ SE Runtime Environment (build 1.8.0_241-b07)
- JMH 1.23
测试字符串使用 jshell
生成,执行以下代码:
var strings = new ArrayList<String>();
var r = new Random();
for (int i = 0; i < 1000; i++) { var sb = new StringBuilder(); for (int j = 0; j < 100; j++) {sb.append(Character.toString(' ' + r.nextInt(0x7f-' ')));} strings.add(sb.toString());}
System.out.println("{" + strings.stream().map(s -> "\"" + s.replaceAll("[\"\\\\]", "'") + "\"").reduce((a, b) -> a + "," + b).orElse("") + "}");
测试代码:
package vip.wuweijie.test.jmh;
import org.openjdk.jmh.annotations.Benchmark;
public class MyBenchmark {
/**
* 该字段是 1000 个长度为 100 的字符串,使用 jshell 随机生成
*/
private static final String[] STRINGS = {"i[LPbL9@v{;&kO#@#)Y_ LX2_m7!1<8_GpjaqAjBFHJD(1>56KpvA,pyIc&=]w`&,Ph#!,Jv&Vcxg__j=p9**!;lK}c6~WN1s?#Y", "5LQ.-Mrx7t!>!C.bqEWz[!WUs4GOcFgphJB'*~5G]sDD_``12JMB7IXT&O&te}-u~4^?_Ec[}b|'Eu_+HzMtOAb3Io+De9C'7B'0", "ecd@&`6%m&L[5+*h/?;zdTQ!raJK OIfTW*VrpyMT+WCUcNmz5L[:}%f]8<d)2#_&i+wY!0?uE7j+%'Ct#gaIToy7)w;XbR(L-?F", ":'6[>Km.v][fCDf # -'*KgM/U'kSUY$z;A44P3')K)='#Z]LlI|f[z~N/zTk&ybJO`EGEp<8oqHI+%2g-U@oC&U51Lu#oR{oXi^", ")hpz!4{Z3=9@DZ}'^@XhK&i2s'R(>+IdE(t,[<`pqvOm!:QMo~o/I=uDG*4yn<$r+vvm-*d!PYJ^!=sO2LfBLT]j.6U</ =VWXvA", "-Q`H)39'v:ep|p}bd nG,~G]`}S5JdF(jc|W~>ZGFnYdM_ ^z.*f|}Dsb,(ESgb#Lqa}D^vFj*Cu_XKpS(Qp;4U/JF_'[C>Xl!2-", "h?)`IGZRI:B'V0H_.*[^ErLFF+''0=]Uz-?Lul22lUm:[|!8m@[kXzRBD^)*c{89PD,a2j2ePuQQswNVA2vy(-`5qDVFab=mWlb2", "N&zF'sO(V#^WkP~lQ ^bp^`zQL,3*?Gi*5$Yl,$^SE2|'/KI_.'j&P2E(zc5DVm0mX~,ADe.{oL]IJmY.(4Q$TgMQP9L%5Pcc5H~", "Ch<%S)i[Z`J$;c+H%xJ7^DD)hIX|}L6QZE;yE>>+^_Byx[2dC !<ZbE0Yl()O26A#!|t{2_-If0;QLl8.9nq0 'KbUw!Ba<R[/-P", ",6gT^;u_~V3>g,$%IgW/U2iH&XiLx,OtWgG9fulR.{l}ta3tw'e/=:Yhm'r)NpSmVtY++GFC'` V]Q1<?T]p!yvhBw<my*98>W#q", "C~%x[5<Jx>b#JX'TQIh'pY8jwp4 N;Bq R+`sZz%Thej|<Mmg0e:RW:lk|ID)m7ebvM+T>%1U-le1!r-6~6e4MWW((tH.&@zIUeE", "Xp}OW~Aaky27;*u_SFDfliT#}BW40|'j[MHF!m_`UovDAxPaE3W$Fd'Da>Hb*Q@AM/S+Ujn`'mdnte~|Wp?M_PzYSs%Ce,udH$!y", "H/T53ZZ=W6]y}x6L/2tYs~p}F46qh}!|w0}7x[^q(vVL($:xfZt}5b]/eh!x*?/rdG}D_NSXyA[xW09'P:]I8=E|JE>8PJ8$NBmX", "{N6`-=;/eQ97#<G%VOP$}OT=]u3~0-?ZtN#V{dt?Vf7Q__5 &I[wem:j'AUshr.JU[c+0?2/'o'a<^(9|X'h&Uy{hg@gZ2]OSU<$", "j_)l_^JLKQWh{UhO_,c'ZVN40q}/1^sO'9'UXf-HGE1S;!aFsi?b QGBQ hp$Ev^x@2A!wQ:|M+/P2.(X5lB=NO&~vjD2wiX|mv9", "O8!}wG|=*S/[_d4e$tD;o~M~EtO3`K'LEh{0]pcdHDlL!gZ=B(;zx`GOQ>'4}r_SoGS@}7V$z*z@c;bU6;D`MFFBZ]'SR=% kt)4", "D)C3QlKo%r[`CanKc;md*'hM|<'>_e*|E|U](:38&~h=JvtUc5H8$h|B$2zw#:+c1Ak1BGAk~=LC5_1y,JH.'rP#^Me-*[0S|)>V", "&:P3s=t' iBZ$'*|Jpqde']Y{vf6a'^dt$!xOfe_nY9Wv@LCAShn0FA}b9u9.)7c/#<5?Kwf3JWo22dz`I_*P9q!G-ONEjPGGRG@", "W%K<NXtWR5dvvV1fRa/k$IT5$hWyAW7;Z$0rcD%!Pz*]=@/'x_n[#kxuX!bWod;h4T@r.n+mXlIIXrj{_F#fa 34.;+^:P'kD]^{", "N7ic;(1tvk;Z?}T%d,Sp/Zdt-5vFvOdK?H{C}EV[X8'$EAM<84rU!{Cac(K 8hxqaq-CxQ=L|!u'CRLOyJ?p'yVp}x]lhp8@cRzl", "[j,~1ZLh}L1vdmhDms'=}0C~_jdW2i8bW%?qn{1tpn}r'KAAS>a0y7I~WLK7`WU0Tt'-Tl~o'`ZU5S]~(6Tp*]JFsh0({z07eQHA", "~Xn,]veX#O_/%~lWC'qwM)yNN'8bw$o!'>s(X[x1d{|f|7{}O~x,L^~d%kyHYA_Fhpz? HdM29D'+8?h3<~/=6>k6w9PF73zNlYb", "|8.MAOHaH13ra<EF_[DQF+0H%=<#pOo1/Z(u&h:]dsa^>v~cwaxpE?7'}z!/n(!'Jx[mTY_, f20U'4'GsR|OwX|JIskKc6mm`U'", "lB2,StBu}OXD,aJeI@X-ogE<'3a,^GQfsJPhYMnLZ|z*>>${Tp>L0H&ef=ccRBn}-((,}@Q^Rj$sF.t|tsOuL]I[U!n;=U#3lMo[", "PlN_U'%R!x}'`;^B$ +g|sB@euNp0Y)hulZK9%-q2:k9E@o,+DOo)e/y-z3esZ]e~{R<+&!;_%crZMsr1h@*gKdp8p|fTc&y'E''", "sheLC3q;9vbPT+PxvyXZJq_y!F6a]9A-;~D[ 3YrF&eds.)AY3)%0l{_Gh|xGt*aah$ry5Eo|`nAi.xQ9^>TOL'@2^jeJh8!G'JY", "%d82SeXL5'T/b[Z`u^fC(y'-x:s+Z>$AxmW|A@M=H:D{}y }iIxJB 1gb(/**'xxv1],20Qd9EFsufBp/h/+iwrGW?Q6kj|5eQIy", "VuSm!v*IG@QBkG4rN/syUGz%dym~p^$5r9it+n v$Yy^n[W'Yj]}Z`_e,)2QAAS]b$tMk#4QK'T'_>A s(>CLmTln>w(UKN@-`My", "mo_YT7|PKb3Bj,rCsm$nX$NH;,W,8 r|EcSb3gw,^/vd$IA}/ovB21%'p}8EgA`egh5A%^.sLYR!8LO%pg39#5.DFUDKCa@o:OHI", "=VON0~fL8J3heEP|a<{xCvp]s[K+%5ogSz@8:@=e7~][7R ,~sw*0 -g_|E& `(44254g/{Iyw.0zZqFtu14kU~1q?L|YT->T4(G", "zyD%I-KsU8m?)4L-}s}b#622}{s2 ,J6]UN2rF/tqGWb?QRz#d(Y`FRYj%C4u~0tf:-l$2?p?:egCi|D/2El~C$K7;0[!hD%2mUD", "ur.kht=pe`/Br1X}JBlD+&47*RfbG9qfY>,'/['@0?|0M>^fvTWWq$&}Bn&'%emme<{$'247h1l'iG8(;O_'R[DCo'5>3~m8:@+0", "6Z}mpbM2p{Ylu|e('@x$x'8I~t6`6y,a(XXZV2@y&Smp9uVh>(q$i.$tY_uzDWRf.~t894I:>YQu'|$k8gHGO$xMY{s0S5M+,mm!", "<7Fh&4V'x%E`%5!3Us!es#=T)1#;jw0)'x)^&pMVU@7_T$V!-XPk]G+%yh<?dQ:M'`QImJzGTEd?,EI#4SP-;qoyM5tnTM)NGY<0", "8D[<Dw6Y>UG>u!%e2U 'OSKnO8'7]**mmnET>Gajs-NdM*M(3!bohU`~$IE_*R(<=m2.]Hu&;8O4_c%ZMk)YOR*AsC<(NT@W5o:c", "~hk)vjYWaf'ye4['d'<IK'AeboQ]./*XfOf,R[xd:CmSbs(!HJ774J1y^2N7$^U<WhH|^dL3o[oBDm0pYayCpMwgjzxU25`Z.)2b", "!EOG0s!p2z4c a{j&o&c)'6vlt&}^%p.~9V1oxIX/w)_x'S99sGl.I,()PT}c(`.0e<[`sQed2OR]bM# K|[QP`t>|Vm:_@R]Z.i", "~5(zg[Hix$V05D-c8c.)(*uwRvVusY);5B@':B^t~AzO8l{4n|#vl5m[}'x&$*.(r~LG2v+ss>dmI!MQqa'd5,$r'vTT]I`m8h0T", "n{_E|~rh{I7=Z6.4+tv!9i`E8bY>6<~xE'jz$c2;qd~g0o|~A'~cUK0(#x':vwU!S43RV&NKG>3^3mhDYfbwns'0Ot0BG'4/G0nN", "F }kn'5Ej=buouWt<_mQ471kGY.})nvp_ijBtru9OFCmMS}8i;mBK@uMi7WPN1Us3*bwUE(hTX&=yWS4E-RA(:RA,7EgNI6y4=1%", "+kJLPt3}?%Fx<Rd{6ZQSOA*<icvs5L:S$Z2eo v^* +YY,a~2Q)P]g$,_j#BOh*BrX3toAQY2+h#A[)a7>C0_8w=o_%q_X9~jYt9", "t~7:sta+Gf7[OXQv?aY/um(zp$@Tp{]|^Ur<95dBpIlDjzNTSFDH}Yc]}/'6.&z5e#KjW%pH{as!]k2@_u;M%75DOFv=bq}MQJ04", "Z}[zk}O,3 royk{e9p'-I~hS{$(2|L0ab/Q:<tj%5|seYme:903{hQxCQ-RL(&H>?4QA(7+5#)~Z<v}X/9Te2Lz<~'6{*soD@0QH", "qx7}`]lj3gk=g-MG7a,&;Jr2DY-FpmcJ.}HXkNovC2&52w^IN1j~/ XgzF,6ra1b v)I{Z]TWr'K-;KX]U)D{3^ruv_sQ])A!14L", "Qz_yp=5T-Guy6}Tg^y=4Fa#*o!M8)G[*|%1I(bv'YxjVL[A,9qJmIx(>EY8_'576 ZapQ=nn$s~$[i2XJF}3:bgv?r%<V'MGg(j3", "Q_Hzk,2eGL!EC`jga`*kB*?y]o%Wz@5jR<F;#('.=D.T|h'8j%2R/ {oWzA_?6Wa*6rRAs6ZDoJ*;6XW[7>pMlYGgn6sd*|&m&p8", "cc!JG_jU>zSm]KX4v@(nBQ/~MAH6)o *R|W;H@K7rqu)TB^=M9si8XorjvX' Eh1[}.i@v@v$C483Q@UR2I@LR3A#nYi*ZdK(vBf", "@+Dp`XU/}e@x[GVm$/+L0'RQB$=F'Lu@2S-_40[Y T''p }Th['f2p0tN_ti>:qy-shPh'['*5OSwdP<8AQrJC.6'`{Pw:d{#yra", "ZTe%D),UiaX!z[}^?(@JxNs^]x=I -w!htC8FXm+.*X:1;u1Pxrkx0m]:@:F!]?K(Ve5Q-!{75>=9aN+fS5xEYsX$'C(@o;L8<@}", "C4]XiL.Y/$nb+T{Jj3uWV{].u]:_Q p+X$M!tGdzE!5<{l'n8M|I.l+96{;5F~oegH+SL9!Cy`O&5q.l'*#8YjF.c2SV]]nsICHS", "Osr:UU|%*1QDmnuE1l#l~g8cawE+mZh/MX?>K9[8zB{}AhMCAhH)~QW|?T<<x8JV9J{ -7(@[W5AhhT}RGhn)^rX@|s/n%*Zd*5W", "5bV)MY_cm&KWNYHfd)u0'!T ;q8jhKq`5/s~'/8K5qLS-]AA4?N?88AP4]k'O`,OkywhX/58(B5TZ:*_+ /EY3WZ}$i[Py@Z'9g`", "?g(Ux`dZhtXNiu&s})f~7(k.2ku-mB,hpTof~>,V9~Ny-T)70VD7VF =Q-!nz%#@7oaLI9b/iDfD:?(H8{4ik(lYUb]Di^G hV/b", "Es,)g,CXc+7^P2<:'XcIV>-X7zSM XRr(=r7`NE6TLvzKr9+Q=-okJ={U_:4U[U}y`@}Wf+edM4s>Qx<'PYKxr{nG3g}1HbSX&oe", "l'dUSq/6]x]*%jY+>>$1yZFZ]eeWiU0Jd pOh}oq71)CpTbcCC)*Gu58yBOXF'PV0~a't)d'E7|srNeMJFAG>P{h$5G<TA>jh6BM", "c@8dLI)_8 UCMAQ2C0A>7rR'F{'Jy(JI2SaP`,ti=K*'br2pw2Y>CYsfp?uNh4SrH=jJ6*mhk.kG=V@Fd-P+Ne[p1rUaJ{U6a'B", "7VFhBzSC`(!8j{h(GHk128&QLSzP~T,;qE9P Vu8sn(9mi:{]kbhY3r*_l9JI6OVU'=j'Su';t88uE*P8oR}lYz)DQTI)_.2f!0*", "Yn&xrorUJxUszO =%a^gvSk''9'yqs;Jn#Pf}?@:V+F_vx4Pjdq[}ZT'v4/7>/_ZzKSuWnVk^hM`3cl*(g_neo@N$/O|VW#F(:>C", "2b#|K~*nn>BcQ'j+meS-+hg::mw/aInuM?8_^@`OI3G?JSkUt[.-jD]LgjeLdoN|H:oI1V`.F=TK]75gk6#|?Rqq'&H/kxBw;Ot%", "%<=$H!8XZ.OqkiI}b$o^o[h2Fgpd&x/2[SLBihJ,;9N~LAUrzByyu[ ?c?n)apI>yf+LupOO'D(Xn_Wr|aj>jeR4:dfwxVZG|{$X", "p}2AVfL0~5g{S^f0_;uK' h~j5$&!^7co0X@Q&<e-cu]qBJ>V1]@]?tDbCe8L6UTX*l6MVK#{p&c.+}'#:JzsgC{<4U_)Jn :)Ih", "d;!.DRJpycQ*Xy;U<vkFsPXc&cIu`H8IdLN~mNM{:$pZ#yl /|h_L'3eSu>_0*9C2<M:s#B?m^Xz[8mOW%~Z`}:I`:Ln*A5 =FT+", "7<_h^N!'nYoT^t0;t8V)V|^!]6Gia1FE) *B{/Ms{``x6-+JT}j0>Mq'F.oo_LJf&- 5_/] U~Q-R gIfuoe/U{d4DeT1;_s:Z8s", "n/X:apVh&7NQXx#$nMtwpU_)pk`%'ZJaf* rgF@@zd5c8eA9cV26g+e{wH(l(i8'2ngMA-c'04mZV]I:Jo9b t384+SDUU )3'd6", "'W7|6^57Ja&AB3R`%?'?'iLq1whux8Fvp~ZI''6Odc-6.nZ6R(>n'z^~NI-h,Y5j%W68sLNnxK{lIdG]BL 9yTlI5ize'zU{Cknb", "'TIJG%<Vhm-*BU( Zm[|]KWza'CF6y4;6_Rk?;i@1#=jRw.YKJ$vf{0j 3[q'y7nT-=T@.ie[#N9bYyqPtu]8BBTb'7A64vn{,Te", "XOt5P}CupcJ!jheCj&yF'zux958lhuSbjiob=S6trXkV4W%mY%0x7$I,9[!5:AOragj'GMq+n1,V)D$=NZ#@ibwvd4]:R/gN=bIm", "m?~es-~+dw+e?}l|fLFyQn&ms<E5X06d5@#UT>(fzN5xyyw% xCl=C0z2lUc9<E9gnG/chSnhQ@p;.$g7O$)&Jd;j<.]V{9FHk*m", "s';XVp*:3MJj`Izcvd!fyL=SCA2+}ew+>>ubpI#:J#Rvig_$:/-DVL1>G,z'OuqGCjw-L*g(#-_=s<q1G[pT|;PhV<WTDb2oOISR", "+[n A.<e?f06|b#'sxZ3L^jb6WrPrNL'J_cH,,0Lpd}J(rkue])JwdsB v9 C>6Yg?$|EI%2Ry?'TP<Y/piA,U#?yNZy(`4_iE7x", "=s<MZH+;As!E'ERO0h4S++Z+^[>B>)MWp92M<bU&Z7`3I,Y[U]VLHSMU'gq';{r}N6~v3'ZuHQ if*C|.>7G5cf9n{)]u_*MYF_H", "uvdEPplQsx`Oj+ez[;%Y{iY^Z10a/wRG{-m2VYyh$lt+bxk[CFlgp(veZ;UQdMEg-E?2QWQ#to:NPjd8*yjY.75ZMeo7}InE:jP~", "A:=f'a4-`L8v[b`S`{'8K9;r_P^l~$t<sb5r.w'.!0qI3:`/,;U$9'#Ldej.9Bs/? f(MHHlFO[K&}tDWJ$[<tKg8j,A$_`DQsg`", "?Mq4R5Q,{2YY'q) 5Jqm=cz}3X2'uM;< ;4^$PA6'dVZ8pJF0=UpYrQwzdDfKEM$NRC&Lpv(m~D&*b5*9^0;>LNxSdJ+D'WoR{H*", "`_|qavTsT2IAky,[L.A|6]X84(9hEtKA5=LS(SXP/m~'^Pg}Q9<?m-X(?:do9?;4+gMB6`zT}0w?>tP4Y/&h*}vxZ*=nEI<x/'9+", "&$6`5'|RHaLRt3D#=(Uq?^rB.W?3M7BZ*Lmi,vxXQ#0/ac-}%Ce:V5[48Wi|olf'&Zs@b{'^V)t+VdURGg{;Uge]UU>nQjR[fx#@", "[Q,Lk``m=r(&<Z&?=Pz7R2dS<~b-l.zR(w+%ELqJVc>iO2ZQnMIL;jjoCadfGx9d$|5<Lwed>rKsC..T0cSf{c{):t$vc%f5v", "^P'~e3SqxoJ5P$!_lIw16CL[~xNvt]C;uK.5%U*ZU(/i:M=]D'51u[`m$T]w6i&N$!% eRQ9F[ `ds%w|6Ys(W#@/72S*(bC[J-~", "Hzr<)]x'iyurs`=HvWLnxw} %AT`:y9',F3lbXn9cH'Bbw)}y'M!+y|iuUY(M`Qf-d@QWPi2>'@'[d#)Wv61!{RR2WS<N&<|D<1I", "Q>-#+P#g6|y6yoTDYUML$'Gzp0z}+?vM*;@&xf+CJ[)}T3sp~X(zPq;cKwXi0a(``'?weBKIVp'@X19G[H-5S^_uh1FnF*1PBoQR", "o0.F]|*[obT'(mcQAB|jy1~`W[(jaEsU1y!e->VY<m#XIk,NXJYx'x>_$K0U:1.@6)5NP$9*>!h1&.]ad.70w-_6}8Fe/L80^Yxv", "Lah$f)>8Cp,W g[=K`1]&'q_22uFk!6Fw$0g%Y 0f%iK7#K`E'RLX-71z#?n'l#AWLC]{dQCD>^-cX4hH'{olJ!&rzIVsq3XPP$S", "#-8'U!-?o6Pl'dY*{*2iu/diL>fn#,u}1.!MK*CeC2n3ZG9A<J698ul:TS(.a2x;{Q3yd:k('`Y'qb*8#!5YcBkA[>Y(aK]i;'U#", "O;(fniU=+'<y.,.F c-^2G1S:uTSo]9q+Uq9G/bSq)27.4k( xFae2i|NWD><fsU=3DHs~9lWbWYQn0w_~Fq2WK'(ro8{v8O$9|J", "+C[-J<S_Ol9tjrJ'j/&3'|uH>WOo 2~NA=kU!D:YB,uPf'ke}_SA|&N: Wu8X_bAu7+KnN^tgXc;}e3@dOs%dr.+Q-t@Mq8QMq`E", ",SNhzH'2D}nM,^Pq!7m>`i{Us`SF:VQAGPuI}hZ]B*/U4dg]ZlHIU?^r@Qr 4@tTt''s_t:mya7o(4>2%Or.01H[ GlJx!.Z%EA*", "^H/4[p #92v2&arIzYPah$^BA?t,98JE!A&S/BhAT{,-5uv#Jm~,aW3tL'Po|8:m9m]&p4!H^~5hvV2L5sYY+J'O4nz'8.oXps<$", "7 @%lC=56ck9}{a@_T6b)M8k4JO-h/)'&PH3z|4zFEci[5+Q1VA4;rs~4']Qv0E4Q,F#eM)M0<,5dO,L~'-;/|yW;+LlWZ2p!'<T", "IyS;i5O1o98'00M@OaNb?>;jYZ/&%'`rI>6AL#$MAZ<9t+mq.&BS:d~[[SL8XDKvcKR6%H}D,>'^in}U5x,TNNt{}&GziLvZk*5(", "&V =V4QoLuKhk(m$[-lTtlconPv[zE=/AVYlZ=7OEd5,,'RM'R[x(cUiT$7Z^0.*u1u*'Cek.-gRVl~opVw,kcPKpB3~15O{q}v_", "|F(Je+k>`(mla@'c7~vwuBC1rdcnfpG_16rLuv+'9jg/%<^mDpF)MPBB%-*>o)Z<#H!7bM@?Nusm1_&?6)erXq>i|/NRsjk|@xaY", "&+Gn%KQys'K99Il*ZzeXCqa|![<P-.1v=OBF;)z$d~54lT~W^):.g>?td+B|7z_3/t['H'E,Y+C')MZ^?5Bn',XP4A!`4|,Z2iY@", "feEDm'^OH#sd`2x6BM='t|)u!Z9X4'%;vF>CaRO8*~cTk SBz.r|,hCRTe2Ep6;v) ciQ&uqCF/JBxSXE!Qd1WTUVuCX'wWGLuR1", "3?uy1J|;vpNq'Qh:FSVXF+K`sL+ ?8&uz} Iq235%WnkTdW$L|n'=F,R2 EY[',a|EJ,jFD=S9Kqg,88,K:TDfnI]MwP89XG.%,/", "f*`!#_oQ25mvuH,d<mbUO/W_M#:WRCKePiROoo'@Pd&'/@wAM/C0oW1xC_J 'O{##m6^O;&?RbC1<m65*,k1YkQc;[+8gZn-'V)~", "!vEt<1bV;f#rlCxYwf,j>lZ5dn|-28]S98e<]cst+GM'`lk<87vey:N<1}<Q(o&5u:U]bWq'}5<SBG~7&pom9XY'&m>A.c'KA#^<", "*'$k)kg4TLkw$GW7'M80?.)#L.P.J;xy7&{ .N.Y3FbMzZs]q#X+IBJl#cCw/>!'cdn}g7|y<HC#.$0Y~O`#JtPZRRClmmqq*B<1", "73D4WLDPLAgh#F'|Z#'&_N=3RSQz@:P!W*T-B#~bypAsR);)<p=Qlqk'2=%>p*ojTh=(gJu5s?,Sc0>XF: 7}QCPKqfi>$E#(SO'", "ee/,p8%b3nRsG>'qR4<fJ{F0Uytm{Ho7Y2jWv(mbr#X6bYf'kLu=O0ymt|EIJK:pL]Ze])+]N17%HftNXUg_S4zaC;L1R[*+su&f", "_:Huc,nMi=H7j-t ;if~n-/H{ CioDpUro&gkVw8q^?~?u$QVh98ewL'ta*iIpo0(Sv'OD|Oo&evpy'x3VPn'j<-B_k3?.b'Hk>8", "#lQDit=BX7E=h/g=^7N<?TnJl.d:7dcF|XMf_,IGPIp<DKJpN+sg]E~m=mQ$[j<S1Q8m5}<*0=QX~SbUMRP*Q(5B 0nrM=^$l,bV", "vRN.m4ml~#Z{(R$=u2zCRe0w<r=O=A#HNkjW](d]0a'GUL8v?0$vlZ_D5:vHLAAO$hOZ+r23hHLU{ IwjoS.63ij<W~|RmV.a'gg", "q A#C6~`O|?=yY@ZdPosOf'80}P95CG_bWC.`GC>tst=Wo2C0s(**'yWgrQPn+&iPm:Go@yUD>*>(dU#wi/d.Ui<A'H`k5OEvN(H", "}tYecdC]C[dV@^t;rvJW&<ugyxDK(I/UC3 dU?@hpf^6ln~#/H@a!j),O_> 3`%DMI:W1USB^2B3DUmNI]UEpuje;1(1 F3KqEFy", "A0Y87lm-8G w6mZa`d`zY0H- *,Dx<0hM5vZpaF[g:36%-Vjb=AeA^n'~'s4Fk+Z7m:<V}{SpvdKGnL?7KDH_|r9#9Y'wPrD99kQ", "BIF8e>CnaiDy6fqjAZf$aVJB+A3l-OZ]NkvqTX}GGLuuV@G[$D3WjC'$l+$)oW41o1Nz/9-A='a5E)Dqi]WvXRs>nfhF.`;twTJg", "?ByXd{(y_;Vv,mU'CV)fx-FWkx=C'b%ej<SMpGV]TM6mPwSm0V&DAP^^;veIWU&@Shz;?a$9sBLBHQ8!Fm_^0/6VV%[,E4RVRy^/", "h?:2^_(-'NbO=Q4Bd%1eYH>P@qH?zm4wAq(RUu`bE:8KE=&ca`l_Sd,{3kYnI>'w[YUe[)'<;'G^fHI=!T3j'B8W;'VgXt),?!+S", "`[I-nR@k/'RopAZu.6vi_7J>D'2}3+]v'~<zu|BM?.n[ B8'xy4z_:{H9v,n27JV&BE$9Z!kd^f|[n,%[(hbOpT;U,%yG>0O#UKq", "=2>[c|E8J?8Ht/`d?n;H~X'm;'Z'WRk!!C7U*]f0x<[n?%CQ,p:*QN-Y!d`rS t'sne21lj;<a%~#O#d6Qh |ECKf(oIc@W6nslc", "xV<{L1FL,&H!gfDV<<u,,p'i'xX+}z$4w#T[X(g6%%[(CcSFN'IPnl*>=y:'QYPTMVE1ds&YE~5qG2v<)os67,K43suPI6_'0GO,", " t`qlp4imC_HP9{W(:?gm'EQ6O*RvX#S*~?8R&?Idn9;aIi <OE'yF NbCxM4HFh3N,ZmC@E%Bk'qJT= Tw)3Ww}Lq#&!~;.`ji6", "i%a5:ee'U&,CEb,'Dzy'fCF_oMu='Aya]CaKW8[YMvPDn%;Z~^DjqmjAP:ZY_Y$d/8g4yTmQ}Ad`$: $XLh)i@PUv'a{Woi})'d'", "lr:F2V&2Q7'{VqO>^Z'h[M9zN-9zW'2ea`J'ar SXXUhIn,]K.8IF+gJ9V*tx2DC'l,N/*PA-hu/]xwL,fb3n$939-fRYJFAKsb(", "8sqly7O$vxj];'=v=~H5jw{/VvRr|@k]LB!vL;UY4,R}K^Lzf =vw1'Kq>e1Wh^yBfI-EQ'M'YZ_I`Ek>8l.tfN?I2(('P5<t*B/", "^E|'F^>M'@KRb>&2<#E|<9U>|&N%i:]@$CG&@-r'9|Xb(j?+BK@l#Ej6cRI2'i(_Mx_~wZT:o`$}r8l]qg!75=}b'ZfNvs9Ku;z7", "[mY&|wLKW[y0i=Gtm(|2s7'zZnjFM0^yUc|wvF0JD]&,0]`G{@@w`-6 L.(Qvyk=ou.`L|t+h4ubSlvOs#mYz<9A$zj0aw0'zeHY", "4zf[}Qfv5sY @>Se:XR'SPK:W@'U)ZTER8JtGuS$EYb_*_[qsvHF>vxO2*-vZ~f$X&-+cpN-AqCM{6v7=VA5PTxNM2vOEb,bA?yh", ":'a1'GWOZETRDJ*$z5c>Q5AXD$UK_tP@'p$G}H+{7a(u6.p&uvCx@H~O!rR,x,:cOp]{gGKD2fByiz#qLcVR`^G]c^~|=?T/m$0h", "9d?S{VW>)l6B^-}A&}|<Wkz=6%@{=vK XwY<&c(K(+2uBb*tKR%f;v,UY4'>-Zc/i^9zxic%[TUOA}zF)39.0GZ*UXlc?0_<[ug", "3;BaJ(^;WTR-57vt'5 _Sp1sJaPeIz($064,_q{Ik8-tF=nMm0]L![3)v`RJ6wrw'~'b:Cc*;L0M|SyYC^R'qM(H/<`{'-C0sk6P", "haz|3I ,LIRE(!yk7jCnBD$< mtc%X}`|n%dXdT:P#:>QL}bq78^Omhv9XZe'AFC1!(L9}lRKyfG)sA`>Ju h8r^o!JuS7Rz[~'m", "6:3+?CEStaJVnwZH42xu?P3U8?w<5 `/X$7/DSx-Qt*3]zr]bNQ20`ouu9{M[yrR@Wo'H5+{xgO&Yw};L~H**S 2ZOR<'76Y[4y~", "[~(C7lJnFZq8vt?EE|Tu;K'Jvn{F{%nBh<vaiS4t4a7K{voU#vW4i$;Z;nHx[HeYD0mpl=C'iI&BSHMgZs9v`>Obc=!m$`-k3uaK", "[&R0#X@GzV5l192xu^.'*|#[qsK?IM&nN.z10D,N!j|ss,YF>`Mi0VW@Bw:}EeZX^ pk}k~^-bg3H?3-o{)6QWW>wDy^u;p;F~g3", "-dW#WPF7GK^c?F]j`>bdplvJ9RTN{|gJ2lud%RG4U;b$SB59XPZ0pq:ab~Fxy,S& o;tr-1dUE7BVW(+ :#kA',*Mi9'{R3RUl8*", "D10,!}Yu&dL7HKzzI3)(]gRyAo.z9v>frdpj,T'uYePd#Wwt12'v:VE krfL _B>xq)u6hH72q2=xlF.'4Z)K7+YwDqgsG|>zDt]", ").-Z>RY>Pv,,N$R|Sr*J:J0;ScS{KI$L-/$'}`9Z5'WC[ 5}Il#Ij+Vmt11%DYM}Nsl$8==)9B@[9G~R*'`el#7Q'=H3.HArv3,H", "~/:cqzz$d<3Gqa21_vi?>Nmrm-lFGbV/fWQUB';';rSh5;Wokzq%o7-hv{t/w^0?4|/Asg??5RX';fmi<X6RRVhDC'BvVBH4btod", "tCsFX]-+`'HE(b:`jYDL<3A*'uLsy#h?AdK:'_T/<'6XV/PV9)q%W?b]_dCU:kr@[?{(o|.[AgtZsAlFUbr|Iyy[3Qc7('#~%`g8", "RQdH?FIoOR|@hJ20x(8w^h-#<7HbB3W)Cfji*Yt!Z(SO9WzdA>qe{fJeQ<'TU;]W;>%4,'IXo1xb2I[7EFV'@2E30*F5v7Tl+F[9", "l'y]Px<?$De.E3'fZN/.%a~o6!_PxXdZly6SPd7v-1cOG1^P76_:!%E (!-E$8YWV'1Gc^Cu86|A/..[QN74*h1<tnE=Ts=ruszI", "jeh<sETyx4j8}^@j{P}c2U';ZTn'Tc{g'5M/a;iK<DO]FbZa:6hEC`zgGHM,~3$B9pU/$`E5u>4-*{y$j.'XC-n(hR9e@S:MI%3$", "1#$||FG?Ae!&HATpdrNe(F?T0ftsL<k)V:q4lCMeA#UJk8T)k|yHc'*PTE){n%TB4a'h1*ZUS0?7tYmT.v35{xoV1SpT5:O1lz'D", "_|f$#cl5z'..CR~N`{j+[z?I.>a3'B<`h3t c3Ej|7`Rf7BLlm_aLYya}2~sp:5w&!UXH([A/`Z>IbL8)0rWqYFnZ_-E1aE31mg_", "RP]+]@W7rs':}/z}d2[PY@&rMq^Vbq^0~Giiqfth&V#abkb6c3k>wruLUE0Kx7,!NMO+Zr&oSGhi@`hPFk'#(i{=^4R2g8/C0'0l", "#U0i1+t<@Z'4HE<q~a@OLf4H{.Vw[IP{@?f<>8OLyV=Ov& .!Bv&'PC2*- s$oh~,9:&<Po{dS=/jzr3$[YbhK$QTn7-)X>9t0T!", "w/R}RR$!LC*cY?rd,zTX.''RcALm],4.=9qyFl82/dGprG%^lP)!0tqsLK:15'>Gss(%c#.Yu0~6ogL.1}'yX>m A%_&FA8r]'e'", "6lj/|78]L5BGBhyQz|#}VVi:[QN'X28]rs7b#}vTuI~!k/WeS7z@/{@7k*j@JN9^wt(*z8?2'f3=',Ydy!faC@M*R:%mF38A|zNV", "rB]hg*1{Cux}zP6D}3=9Qh~'D/,afURo<y&z8uwNUqC/.N89F)/J?x J7f&*|9WCN>Ra<fYR;nI8Fwf]]4f>;j46@%rQltD'Jm52", "JBo9v'Wo<~v^)hGMrbS53$5!x?NRjjq10>nji|_LXJl)+qw6-!#MW<1Z1-E[_M7U/i;+zLx9?+j=['#S^$1)W 4^'Mx/z`A&ZCHj", "ShoT'9cd>1HkT8<Q$h0Mbd=e;&XOslLU.RlYb[rArx%hqWFd$&BCPwY6O[(ycYXt8[`hqQ]rot*P75[_zBQ0NEjxpJTEsq#_^e#;", "?['#`.l:zB7/2!}$PN+6G_P[^lcJXJ@n~ff15UtJvDc``Az'GI=yo)&B<S=<G.iRJ@#>@3QJB-XK,Lgoy4ly_SwT]fGb=] kZ!]B", "/k=aNPgsq#''$btn?',*l(MC$-fX'mtoFJ'TY8{oV%9'&[)_cgpbV|[(b>'WX-'j?xlE;x}YVG-`M'8]5{ %<(>E1XJd7+1}WS!L", "3BR`}L'1;bo:bD%8I!-H(],Ia-h^#PevjoXf7RWN$,%tHh7Z3Ss<x|;n(`,A.#wsW}P6'5E|Yd32AiLAKS4}(V,x<m'1RZ$AEbr`", "-`E7M'amJ;>(?*^Wn*w-PiEG-7KKEHJ>L %zkhIvhig)*?a =kQt:#2<6px-b9P8f+`g*Zq01'*8vRf>Qo~7rOWANS3[u{+;n)'w", "J'>=`dSiany/1glw2X1!U.&*ORLDnq~*Yw!0+w(h}Ma(P-,.%sO5eQ2,mNM1o8ZdN}IclUdJnJJr4=MsV~W K4WOt JOHk3B]h@p", "BwG7bPxW5At#S';QIrqK*hzJuG7)qc*l]*%UPrR D3vs[vUGvuub]LQH/ @b*ic1VNF<NB@`3tS^<y-QS'cdQyyKV76OP'+5A[p4", "7o:pa*p1%L5b(+6'bO'Tv]'UA@66F33|fE}djjGb+9oF7'a^e2Q`xGw:S?8rxbB%KfW8+hcmC(u+|]kz7la;_Au@m3]du|w;BG96", "[~$Y|N'HvOD)?XNiDNc'brJt]=i8)$q&zG]s%;E+Ae{$SHwFGk-+h ;SEXT@(T5R+K2H&!O1JjkGaGh4HcZZ Hgbl+)fgHOjpCF_", "F+r8p4s^V:T8lbfbR?/!^@f(Wd(u2zJ4M/I<T@/C6MPw3O'Avq+PV*dfWVxVm8oZ3RIz8Z)I@|gYLbekV_>e' 7,1v,lCVa=kVKN", "k=27t|FGWb6#3KvW3CkVwykKv]2e.&g'@|r'' 8&'FwI BL++(!E$Z_&};>BhhD?2@'p2,o8O,aepzHT26Pq#DRN.+(vn!9J3 #", "#rc@-wE^2CQFU5TC=|A:{[ o,%%==gZ:R!%'95G[srjQ]KY91S@zVLZw'tuvxStu)fPUjFI7nqCS)yvoNi~A~A'rdML':V8Nw|K8", "hs21c.&(Y'i<M:''VfOCjEBq9Kh&(?N qXgD7Y_TsNqZx(+A<)T/dD~q)c.YhAP)x4.| 9@8)!&bke[`'N[6,fl'uD,?'q*k1!@/", "6DNSy8k V*%KI-a)umpW^Nx.ga$h1tr.uo!1=-U/{O`G'5(16(N'jDjnxBcBD)'Yw/CM8~T?KCC} $gJKKP7MYzb'F|Ya,V@DAXz", ",nj8oFhP:x||0{<=~;U_2HwcE5)n-'@MPkN%v0CrEbVs]gK>nqu|ktiJ$0j=H^+1_5=v/:O[2+t8aNIgYikA<eu.t't8VN6b]bS7", "?v~VhZh231cWq6*ZRP0T5__<#4u5hM-/@o&f5y6/O7q@b$_!kI&#<'}AFN: .:g!d$_wIDu4js3'5@uly/6quK5>o4WF0@j4dc(L", "_dD`F%G@xU3L .v ir.#,P(U9c)^tl f>d>]wU_]c25Ncr^XiH|q[;2hOy$hxstpMG>l9Ug'{$)]ok.8YV61^>O'Zw(SYlt$d)kH", "_J[CBqQZ'u&qE}spU%odl(]7'Hl3El@@Y5$DR_1A&3'<iDITVz7As'PjK5k2CW/)BrbfXh&lpd$d'<>p%K.@44X|@*(DJH8I}O<'", "CkW4EE:WjqnQlN6h'&@R/nI`mn;XZP,Uk $zY^xC)9X9NfWMtC0i_nU(N.P&0E^TfK$kD]E|nI}j?<a'Y}w1,]E^dC,2O]XU#0P]", "<B1mA;O=j4E[0ivVdc0g;nw.|,(L{]E.'<Hf$;.NN>|Y,jM5:ZK0q=8o<s/r(z#.k!qA`[*]Ew6E/}|'i!$3@0;3~1D BC9K2@nM", ",H>Gxw:x !qz%h'N'nQE|qi*XS':.;El9q&mGel}':dS4gQ.izc4p=0g9:5'PgPf60i'XVmg`GChh.'UFU#_EJO4ek1sGvOQUaeD", ":Sw6^0Z!c$r?QNViNAN?'I|CLKFE|Uv163#to&)8|bBoy_0.P{Z@f/h6X<`1yg|n.wZDt11CN6[CN.C:|U@Y;>vss>jkuN'6bMK8", "}<H;Xd@G@T1Gs'D 36q3{W=54,{;(iojk/Lr<qr[aSAr)!U=7'i4AQTUsM}3+X9s8IIM[+a3xLhGL$V>x6VpHXt/rOAx*Pj+r:QR", "'10SUA[lxA1eDy~X;|u58E'SS}ZdS1<Ua;{a$h,HZ_e{t0&5D'`E{5L0u6D'4z@/+U:i_+G$ec[k9;QZmH3'Og;<ieoxa~.`@./J", "H~xn:mCfMWTPSk-8xy2J);#qS:j_faS2c]l;|&V:CJc.@24,%m$:Lb.;.ve).E%V3e~QaXP$ >w6D7=4{>S#`'Q-l'3AhA%SG)7b", "(PXO5tqUwf32KNX?=NGzg7|xFi,VZ{f5ynBzQz3~C*f=:}'Jg|94]KZ!A*dt:~n`Y.ZlCwF(J'wD'z=tu$>>n%+Uf6SCg_:B*Eb4", "_iR*|4<))]zOIoi%_9~VJ^tirqN3J~.{tG)`HU8HW}^^--XO>Lf_KW`ZSWKqIH`h*s@s>J^<E|t>2HSs23tew#f1*`]ln2' niQh", "P2IK{'wtmEuHeKA2PzG6'.O]{!k?jY'_o'NK1ha!%#bW.:1+L?W/$#rSkOC4B1v'*gDzW?fBMB:uI^}|5,1Dz&Bl3 B? (jg?CX'", " MX'PnT6>'F?>NjD'!-Sl&LSQ9+e28J2C D3='Y08kD&'Qq3SU~X3'k}$ED||yTZa)SDDjo&`,a`ZU<0{~rGV2Sm _}MH#%j7yWS", "mLa_9uszcu;IHE=2d}drn=0m3J9=.npO)U^B;/gh]yET]qh9;u;{J8e$PV0^h]HZwV)vr71H4{Um#i`4pPW@x!ve 18Wpcy{!&3|", "roGe`/^oUJ?`z!_VN2lsk!?&A/lw<Aif-&i*hJ2s-lVkevH`mWSt6 XB|aht6U4eI-v/eNs.R782 ;<Vmbzb6Q')MaXw)M?i5$4&", "<@o'Li'f^<}zT|A_]xhxPic&Qt9TCd wsN{Ue.BfB|ZG^O>]8=5$NwmlG[:%FI|`^Nu*!>T($`ok%&'$WU{{o^b!T.a5>MwiVv2!", "yzJc9Hd/+29pJPpX3/+Jicd:w(:ah#u>{-tmI{,^i20`DG`];4^D/<@yxrgBIcS$:Apj!,35N9hxi`oc73Ti0l&YP,Ms@vHm[SFj", "cG2#7[hhgaE77quaC>~iB%oSx_L-#*l];|Euxge4r*'.+}T:p'CN^L8:SW+&ge3}X#^A,V6IZ(Qw>:>-)I`c@byyreo'tNB6@^'`", "3m/]f}Vs&k)mq6@'rx_G+ 'c*~m&Xbe]'9MB'0jSkQ0yHgWH,R*PP.+V:r?mfF'4},dMI*w8aZHbNy<Q44g:V -a29b{`}nwhL>S", "H^[)E*jY!lmz?d'gZDfA(gh{@'P0'bBjNOBn4iMl<Dgq~a%g|QAH5xm'uf&?8x.C'0,)4YgX~vm{*rYrmc|2Lm7*6}[],aUUlb_{", "aa.El'^a0bk-@c6Q[s]#_Ej#FIs{t/`GsC<@X*a{'{xCGQ_I.X{n9#4SM,Jdkou9h+?bBeef:|v>,]cF:m:{[5>uTtwf:2b)1Hu?", "b)%{js-]:`]__jS cp0U:p@tbLRZ5KX!.p|$8B`S,f>PTj#@U|xvAfi=T.awYs'VzYq3y_#5u(yP4NZh|}'}rmY^4's-PA^!S$]w", "$e4)G4?T*yp^u_;9aRUE39AGL1Y9hdrKKn>kzW_'76}x~,M1EaVzHSdd[Qh<`0>Tu8XhfoJ+FhR3rfpBM{ 8vb>2z'p'!~n'lnky", "q2o/(GrDA]FuaEqqcv0O&%O(9D'`Qk$psmO>}$XsYAj;/oL;0(]HmOJ.Q.HpM',`n5a&l~VE2'}:JNzIBZnkIG`NjTN^'a?&gCd,", "Vp~Xx#lK%ZJmxS*Ijkt&.')ebkLbr5yDDI)0qH/bJ#k#~_&8dPeMT*|HkUSA-lqFbs[YmJiP,{,)]v0vt2,o{yOtuXiBH[gE-nEZ", "7%.,EO#`L2q1L(|hXTB8[f#!3ap]Gv??]^mHybJfM/b}C`I7XXY tspPe A8<DPi~N''Q,-i#GJ.N=]:8.w:nKW~pKR[Hlz>32W%", ")v 6gxZt@hEJ({l2de<x,=Ry+};a@kY6&D#!bO`y'][PJj%S$tzel#|a53%OY|qQE@dpfi|LAvPSjf_<L~|]vejxi@#Pcp&i9i^c", "Y+/Q{vtJf'7/@`Jp; Hik@1TUn4J~$4L^'-K[uTwN@4L_UFut:FWvp]y;<F>AmC%Bg&]}njW9p)q`X#E_`96.!3jq{0o%Bz<i`EG", "qc]`#pH/B(qw|8zE;=u[{=][ Gj''by2G;y12vPOq'Q1amLKbt/|9pJX5i1!-@QX,8:7ii}#3`)P?4rs`J'=7#<|u/](q%{8e]7n", "/fZC9}pPS(x!./uk8@L.|kU! %'9:{d1j`'M. ,,3'^=}qIZ#lv/iI=ba) 1[I!54c@)Xf'lhC_xJ0b a *GM'K('j@(%uKbwEnx", "^]F''E_&c/wev-gf:'(Eydc #$M:k'b6$@)2SqI?(d1Ls^}kPc@%N>+)=sF[<)h&1jy4t8#rNUd[8Ad'Vk0sRIyn $_;46 ~Oi~A", "2QQ}'}GwjF>ji'E+`W8AE$'I}$ESve.D[{yi97JA18EknkO[/1:%3@+Vz2S.2[J[9{nkTQX>VGzMCR@p'}pPxN,|}+;^PIMlp'rd", "#_Hf1)a<1O1:Rz*8J P:r6E;:_IV+F-a('=>E'bMQeh/?29.qI aB4<YXEZyPzQ!dE1&On/gh@p$U*M]Twj<sXY>>>7?'lmKqi}v", "H(b)RnC_TzwUH7d p)v[mTgG~A'[?lCA6SBK/B]I/BnYD,*f_RC%/}VkP[I?xZUHyuPo7>c6jGi]{.v)>==rzq;D7?5y@H`[D-M_", "{N|&t'0_=ug7rPs?ln1P/=*C+b>|+8mg6dzpQJYE8c%V$bpxFcGvd6xPO>AT4M?+iM,'=`RU`_I+:'x$$UB7bIM:L35TYw~cp%4X", "aO~'u)i#S[e4prUm 9vYGlG/wDMf'cGB0=L'bU_y]G1sY!*JBu]S&'2']aG5{km0J8 ;(%v!D%6{1C>c=rP3+.o=Y?Tu'k8N&P&G", "Xpe6-'D`G+,AqVTa0#x4*?M7Fq'2(3y_PZT)NCQ3e'M,Wyi#)3:S3p4<R_!D85!Po DerR4g5&WlEk[n1`caGRF:<8p9A`<Ee^SJ", "XrW;Z,D7PYV56:^)+tXyZn@rv~vhmX=Jmufi=mK$K`JQZc`_xOdp&W5uswyOA$k;u'S-RkHF&wXnK;JOclyO7q``31*SdpMC`vzW", "ego|H!{dL=*[+8]/)yPxwfs`)jN*#SuT`T-9'.$k29hv7nc_r/+Z8$>FI!(/Q'cM>ik8g/b5X@D/qg$s: !z=oY:NL|I<-`mnPw*", "(%|/G~*5zlA1w+0.a^'(4Z46!'e_';3C+EE*[{UEtj5T9XsDl1[Z7%;e!+vFuf_3lX_Na wuZD1Zi+Hj}>Z;p*F#Vd&'Iv0)/=ja", "v8t?TMO[J/D6Cr/9] XQGW:;RL/`AcFQaN#Yrj]sj?bGX#0L}Xy'/pQ} p.v&h^@qUpZwbQNmb/g3e1*;22q=T5+1j,HiT<3e*MP", "LgSKo4%6qG=+d/hGr4fh23~8sT;'HJ>Pu,5~6~}^@q^$#eT''`&y)>|Y7i^bnGON-ttKbsa?JX=uO+499i-k<~b7D#mmw[#1w/^&", "suM:?u'I>Gm<[h'gzQUh'5/''l|v5'`O3yA2~nMJ'YPcDt:[TZeF3>7V!=,(NIST/%YI:d*HG$0;^*`'EfA}%gvL)cp3{z1)'FX ", "q^l.}J'W`!P^JTB(#:B%'e<hN5TGRbWnsCqrL7|7%X<`$#Y[MK!uv.}?lE/zK.tJ@/n@*EQ]T<jImGTQ+A8DU'[l.H>/vw&Q;Bt4", "&G'kX6`rYq5fbv%RX/3j48r$[4FM|_nWD54sWKk0^!g`=uVB&<N*i'6K{~V~Gyakq}:nU$|'T86N@z@bC!cL;'NBhnFg-6#A3^}U", "lw;G`z3%dYbLyYh4?S}!(yzv<}c0]mzZp&j>F&6}{@j<z}E=,omMt*[p}6QnE}8|ADaxW0A{JOSh$u'>b8ve7`Xby_)4M5z?MG7Q", "$[H5J6'xt:s]-^.k_^71F)p3%F+y)4z/2*U[_O'Etgmu`'w;9i0y:{)e:QQ]:;0{^MFM+)vk]<D;cHRNVfiaWBAk9 v;!`V<0d-+", "r6Yq]0'<^rFFD:TD@tN}>aR^u4a,?WrMpkVSZm7Byv!J2L>CH/FrAwn]1e4Ja&M'X{$2$0*qD7Z2xzofo3HxOQu$pQb[ZSocE/OP", "`w0}(eN_yB3ENI0Bz'5Fimp2'tNfwkHXm,b qK.rARuEmE=<3WTP1A-1S5hs476|biIS'&JZj!`&(6D/|QM3@1*-heEbiGj3{kjt", "f[pZNOvM]v07-,NO~C}Ue'IV@`8)^sSl3;60Y@oRf:T='~k4H' %Kx`9$N55q}Guk4'j|v:;BN*kg?:vP<w'{yMPG;AaQDgm-uQO", "6L26Vf:hw,Y3UQM{9B24B#/~yDQtWa'-1Stdz'0=HdDX*Bm}eheMA~PNozUQ%jfJOfq+GB ,[X!B|>t]?qg<R?'|FX>2ebJmy<=5", ";/%8L#DF,& Z9r<1kvQDCF'$ii< ^'PV^dX{0j[g>(%@:Bk;}g~$3;-9j?6l&v'my n'm/n2*55*VxJb2gZG|9Ym?(M,w'B'qm!w", "@|5^r['m0x6{h3|%E(&52nOOaY3@Y'wMU<gH)@<(,]*nlLGG_n]K^^&cNRNh0w$Wl7OXfbt> NsR8C(d]uH&]?Wo&Y{4=.@**S4e", "c|cx;{<wA~)N>#nDm,irI]2Q?UR*D)&2XrmE%:e6no:N|L!hK)F-R5W!SL<-)Y6mX^lwNt/mH^}'o?$.<JISH|&w[wicncX'>cC?", "ptgF*`j(u8pcJ[Hio]LkeYo,9]aZ,n^'+}e<'4x}Y|~PoCv.wD^ DE%MD1H|6'J0,Li;y%cnT=)KvSOUKk11!r 'lt*nE;tXCob>", "Xn`).,P?#ocfI<~eN<[[3;856%Z$<;no=Kq_Cb9tt1H}cJ069Ck;R]jK=O2RK~V%QU[_$z-2fZH3D9#$A%hpJ+*(ePYSi0Ltnca&", "d&P+'z4$7[Tq-R&z%G-o>[KOxvn]dua^}5yfAMzebeM#nL:fzTXPxQM@|r[J apL)HT8QD#olF9AnZ|97Y=X_7ll[Qj]diXX8]Ff", "I2>e-~[EmBv}'3J N'?C8d;WCtSY4%@ px0&<O^:Vs2Eu%$Fn|7k?J*M.N-5K8'wX,AhQSw$]/S.j@3dD^'sJe.x0WJ]g'M'=iI3", "udsIgVw%u-r:9k6G-565RB7#9'Yig!2vWT5<):zE(V4'oAG #``7zyfvxaF5<tQ:e$u@&Nd[+}Bj=vq,j&?L[#DC`'3_9d?&LXfd", "C/UjL*rXqwV;GU BybJIa>>;{J}]Fa^Z.]~m.}m'LdqxMG<qRc?=E4'}zhY(9nux]'fBlz0kR'QwRIp8x'}Dn?q0q>%69MR{'2):", "uJ$2g19^UD1=fy*PQ)&1UIlD*}t#GU~'Qa?`.m|_R,jW7}&{gWVGV|6x@Qb-JYWga'f)I;{e$aa$e7&P@R2+7s/av3jf]/jLg2r,", "'TK'&lQ#/2'?{f$`vaP;0,MEg6p$1!D5 smjh'%9HRS|a:E'fiI&.RiKVw6t5noc/{gdE yQ6z:+DBjHyZF1:r'ojaSq8m?dH_iw", ";S*s<<CT)_JN5io+6,`kE]JdllAr>MDc!aY&BIfdC^#KlfgDA%-U+8!9?SC%HUL~V6_JF;v`bKYBndfdGJj/N3b8gh-y@0MDR{LP", "]eoFR)(1+=<NDAO>VS+u'4%GD%l+Oz!PzG+qv!l@:e*N|gs}e 77#Yo~v5~8[Tr_ijF$1ZROBCw~7b'BzN3!2Jrw1;+f}@r*dq9}", "jvb=jgM0]t<Q-z~CxkwE+VtpDo'cL-agb_+Unhfo@9LKvOC1T%zLJb+Evw:K>D@329X+.61S~Ik]YEu3hCO$gup+z(dvIKr+I1L;", "@znre:G.Mmzi/UuKtea>vP8*'/-[p)q=6%h9'a!;6J&<: iCJ'$:7wcB3l @duTX{[e{;*HW'KA=cR*-; AsZ0}z'=Cdb%7lFoCJ", "#MeXN[bTVC3AH'GQ#n}:bVp}/ok?z0y|6`;ynpp>~Mdx}<MY'6')LL@NV4'@cI3j,a}}t''s'`aa1HbY8Ub3J;PR}8!{&X`9q/p}", "{505f[a)'W4wP^&8}c7M5JtFgO$cmS]dpDe~+n+MdVGz'eMqj,ba1K,5/Ip6TiiqS}e_yG;b14:}%ST$PVQG6b*+;[;+oS2GqF)X", "6&y'aLCXCqykF+jT0IV4nDTG$)m,SLSt0ZNdqNGb7-$~uYe[cg5#dG%yzEi1]8xe6kL'*'(~A]le00[8C{Q>F[=Gy2'=}^'_QT*N", "zUY/._7G|l31b||5&/T>?=>_'T$C3jf<+$dM93}k4r3XGva/Dw0P<[i'Hg[.@Z'H54'0>up]g_Wz=m)T~;uf!KBgejNDrPEn.J4<", "J+/;'wqB>l2opKP'{t&Tg3q3`muk%H}&NS/[70 1RtqKH_fg#uJq5vCI*_~ '0YsHv;EPCKE+Th:)II'H ;r0jNeN,B%Peyvw5C`", "=8y|+uA`xInS>BN?E'|c *I='aR7&mmT}f%=N[/9yG:(]V+x>/8c[@>-z$,YlGc@oF{GgGYChq')8mc0)M=/Y%tPvbB`ychXw`'2", " 4w _NJzP^]^{H=oZte3N`Ip{z:z+P7ZD,GK{c<H+XY!pXS^^4Kzw|vov7.'zK;k*t,ft|A~3Qf,E6Q/x3iN7h'T[LSof'_6{1dB", "lY=-+[4;*G$tr`kRAM(gdIdaL8G^$?g{t+q?!sb@pfO1J+>T8L,;y<g6*Me*:%+V3n{%C#M_Rp9}wO6T[ FXF4$ ?.Fn2L~D+PWA", "7-7d=E;|;m}U54Y@&J!9 dJ45/o1$)FQKaHnd?SpQ%v9lIm$7YN?&yAQLT~Vz}|?X7Q'D3zkSH|4u:cY*0,:l4Pl @Hdk2#CmSe2", "nl37k2:0t*eKYVtc R4KF+cYb'&rTD'<]*jddcj6;J6%u4//4ub}()P6Bu0fuZ<Qz.znd)u|yVY'Wz(0y7!`j:8-{>&~2=-_#b:j", "&/I&b3C3;{d@'gj+g@ nF:JU}eWs<M^W7rFMy><J._' xn_b53 R{%P,.R. ^3&'F&mlEuZ)O73[j:(+T;'wG%tsk~Xhw@w;%ue(", "30$*E+!'66AlS3bDM+Qdx19.`^*7v271yD~7p GRKJ*9O'+RaN'm~5__?BQX/v[*wGP]5!sHb#-K`=~0bq>V:a.a^29M]<@=Z`[(", "dHBcejX|}'0 {1@J-mtb& T{F#>i+l2i~2y=:je=P'vSi<%%** ey')/YC7~)%<Te:L|YnY*;^<VlCl9`Z''Q[;0?,e!K&{~'z&9", "suZ,Ka'$zMt%;G_MU9i>rZo!KD'o%O_wmX!G.;Vr^Q(EY=4qxppk/E@+sQ{'$;M<:U;4V+H)[Y$U0.SItnD+81KsB]+NA{:Jte/*", "q@zuof8hWjy2'0N9A>,nvz^.Z~atT%tdnz=6/li%d?3p>;IO`]f'NRjwJ`O66Bxn*;m|/)daJ3Y6JRlhx`nQhm8~r1gRV1$sdiQ`", "Is[a_^t{BH]9V=e5:p_g`!uKa'a}mV45;ZC`h`ZVKebs]|G'.h7Bsgd)i(mRfa_wyE|4/bP0Q'p9`$6aeA*n8=Eh!1'v>)$*to~F", "Va,kBJfoe{v*fw7`/m>)975zu1 g}%uY;q[}AHE$o:M xj[4&c&` ?=i_x`?RJ}voao)d ujNa8ZaA03Z>tL'dR~Q 6Y=C(E:z0*", "YCO:K-us)(lUD@jxLnLDJ4_nBN*=IhBks&EXiC't^'Q'%#g-YVH2/innd>: ^ZZOb;.-i D%` Qh@DV@qLMQR9yB?7zN#VcL'geL", "r{|1Mp~ZIr>[ckbZ(-8W:_XFkEI`Vz~2cANMxxI^'$`obYb)G.}gV|{$wq0#}q5=P'YE|^EQ%*=}M)s9S|rf@+W{Nib8Faa9`J.=", "Nbh2^y>Zi6J1@.Q-1MM^'b*7'dNsJ`?>+dUK:@6cSFTal$^/:+~mAfxq8k>g'wRRL5.ruTE_$k-X? +kf68^QML<|VRY`[_c-O#<", "(4xSs'Q^~aZ'/D<sQ%D'*C;$9%.@G`'%ZAha:p7Gc_N_sG)Y(l/!P![=_Z6!Iv5aLve'/~I7Q'{%`I&va_7j!%(H|X1@/W{-uO<x", "OH(,Y0PfGQlY.rwcv(tF-'f 'eecE7QjA2KDI|{ZZMr+DCW|[Kpn[Z6N*QHE'LlQ87%Sys,8) 08if1{c i7Z;S} n'w`hGFNO[z", "J4gm1E1RFTq4{<V>||zeJojH;JNs?Q&MZjlG>BaQ,I'|'e)duyAoL|.HR=.{S'x%^ReGp?l(]UK{AE3L;SGG2`]_,AFgYR:6yEn$", "S/x1+b@|pG'4|6MyMU}KkS<T.A|d/<b{Az;f~raj[C6*D87Is9zI^eOsF0~f%FH#JdZ/4KupJ;VY'H'PX}H&6/ByX+dO>HcDy^ut", "g{u{f+C@0eP4rR7_?1EKWryO6+R<i'bP[-3.UR.'(wp#0s6%%w=K+Zgf`*{S'9GuuztB<o]lAp<Dm_.[kp)Z]ZM3W[Dbu~w/R^s=", ":|Riz+j?NsV1[,,'Z(:esV$M^qX:%{K@j,Y$L|'$=Nv1:M./8XdCubh]D;6X~4d%E2p^n$52PF@ei?$['-*D2+1DpoYE@JQBVcrO", "uwf-mBfzf1sW^Fz8yS(N~:{wQmJ.:i.ajep+R$K$uCL;*e}m_D/6]7~Hcf}7R[k9abd3&+W!q%5D C?}[/-S`3k#FLk2A{s|X?)E", "L^Ma]J`(oO0i>!'CdSGIE&B5dhZHk~B,0G$^_P0E%@v-vSi&%<9Az:e&N>u:stV@vC>OUc:k].AWiCHn*-6p_':rKQVZVIDX`3aa", "(@:q!<'1RV+^'WKE75z)-)F_@(>|'.V/EnLep8G{oRw|6ns#s'PWB'Q]SQz+7ZKA![U(zd)g9bXmbZkyq]r-=.ZkPJx]'8^j/*u'", " ?/Xvboa0od2]wxv$UWV/MW(%qIC41V!iqxL9Ij F#=/0O9 vn(,I`!0^M[+zRR^k~VNmcvG/cyaGf0a]f?xBShD%`gP0|dMLEt'", "jM~E9`%?QCu2BYsb{8{%)oiGE?{Q{Gqy_ljcCp--.7!n(Ne2_H:mv[|iH4n1K4'mxYSRgV^G)?owR;Dkh;'5uMv=8Z]Mq?5GJi2#", "{xQE?EFo}Y%]42F5_4<Yi.)P3h<k+AchPlI@K89'_,(DEaOOPu_'(Iz*WZY%1%jX/yy+<J]5B <%NwbQ;UVj0cv{B,lY$Ud;Rf8v", "&GY#(bf'YH*yY5.}Cnpe9'h%+Rvh,'j=ZNfS>fBJbB[4i|*sK]WU`|:?l>5whMBg;-_'A:h4x9ov7'Y7~L4{_IX^?.'9@1E<yx|3", "~'4%*#{{*8|YlvQaW0vDH/Tp8aUcBq/9MEl3WP lW3heL-42qHfvB)|;rFEhyO{!fwVG}:rW!jA'r7Ayg#!'?Sjx'AU/sI^!qfe.", "N4DgRx|B${;VD_7HQyU*O(l?W>_[q^B24~j/E+I?irv'4fO[G:Ydh:p&BV>7f'`wbMhX$=#EZD'+Fw{LjC]WBOe!WHtLw&'Us*'S", "Tf<>ckR'6n'v~toEK:7l3eP)]RHsu(T;/#kC&gy0QTI&jp;EUcq==/iY.=YSKi2m#7+vMq`E#5%hR7aJs2PMX~{ TN)W;F$L}*Om", "trGo/Orz'i2&Af|*LFzCHZ?xhJ7TP=c.Z^mc66I1tWup]P@F4HqgS%w7bFC##+oes2j-*u_{a[?Z0edHjCB_rl5#'XB[''1$:'D8", "u#ty]ZK:j~<.VY_)f3Xh{$1Jg`tn=n&m@e]Cyar)PmVb&>'{KBD<Q+XtNC{.(J>f'55/tp8y9e'('>G593DSA%3rS&f>3)x0u&:%", "BfJo7V8!8t;95Kz<R`4[.A#vK#EP,c5pvW:8P6N3zZD!d&y4XPOgN'`rp2 1PvI2)2F7(W1z=@+P.'q'UVhcs9>mbN9+Y|G{WCc~", "H*3+s.btiK&~t3JZ*'E!b1gsf-noA5gtDH>7M<r#&7?LwY(T.FZ*-YFs'(FO]ak^ET*;@MBW|'#e9iG+Upx-<):'0|V:9Qj'0G,;", "dX'V|P1&iTkZP'3KfS[9)v7'Dy6)jRAii1bSyzer-XB:`h$nn]_w()(!d{S#ABy)'IZ*Kfl*M6^*J&SDE(GcY</<IM^CTk-W?M^0", "S.Lz:;v, ro/BP;]*jt[#i ;:yLE8`4KIgyVIejt#O6)E7}W3oI(6,'h)T%5gueikQb*':'D-/XTzjgHJ`BC|Z|zRUU&Km~S+E'}", "q{IOTm<Y'(1MMmhU#tF/D!mNMFv3E'J,''EZ.jmdPjR,y.nD~IiMnL5oAA;S>qzo97amL)[.bq('e+MaqiMsMV'CtR$@/{2?T13?", "e|eh3`O=ubjgwx`>F/.-&M'[mM4yZR`PORZVl,0wriG`8'}+|cfU4&,@('-1:'<twRaj~31FWs^MT~0)Nsj-f!~Z7GV7@=w-I;?I", "Hd^W'Rc?SX]H+q1a)[OO,{PYXk#mbQ8OOWYgR%GhmSc))YXNvC?7u6vj*Q{&DMOj~-,bsl3f*_Yq'h-@xrA||J'8Uzq8A.z8tg(h", "]xkZ|RP}wqiO`@`13{uy)n,7!O5u)}3QOZ'50p#'ShE|*^L:>6.:0UY}Tw-1Nh[<{nLb4F{ocPgMu/:'o$c}Q'vQ'QQCn'pG|;VP", "XyE}>b.9lXBHymnq`ns4'' m{R12$Qp,AAr9mrYVcz2ps,|k=x}el;KP{%Mfw_*'2qH=6_4FU`AzWb1o3^w!')vSOpXE^='8|P1'", "uzqE4Q84ND2fz/)rh,+s&Gn0:G>)ql'E*Tw;p^BI]?zMLOCnr'8s[J@d>1(hWT{[n8RK'vW'<g$/ ]dPbBO){>L..iQ'W'~7#0k)", "vqH6EKIf(Lw:^$q>Y[{^T73`9FQK3HR?B}'4gz9W,gL?^Qb*<'0nH5%$}bm[`:y!t(uH2T[Ual?+vDP4~i3'+hFE:Pkk^LzQ[E'=", ")#^mFG&75]M8bb~^B{*CkO9PT188>&Sk9y'Ef;Rd$_$.NP+7Ok9.Fo6Vh -&(Poe'r>LXk=H#eu)__'9Zk/|',s0jL1AQl:fFD18", "0?FBL$.)rec$nfb3j`Enn M*#-ps1K&c'jem{R?$A0AG<=*RlT'wh}`gdNeF;~`dYo-<M,sKJ5=4d_&%~;OsPGynCvWTKaF@T4q[", "$djct6b#F66S$@5p^q?H!CR3M.-A[o[M5Y1mS0u!p1#21$OEyS?RL;~_ +:pVtAL2r*{eN1,X$ymvM01I;_+l50KQ{m8MmA39hy=", "@=(j1;(]i^($m,A/NZz6kKW4r: @XE,iApo8~r/4{gO3^ $FCZ|A<gU*cx1?nKeqy `~*lr6.j<.4/Iqgdrp9'G5u()6*z*f4_-[", "BVSAyyCCIF:DutW3Wr{xS^l@}6N/]i8f0b<i^f(ZvN2qh6(4Mv'w+H'WvoUZx'X@b6I)ZcGcOb,==%)i!j7z{]')Ao}JRvF1])=i", "!f7/x1ebqj$m->mLy`DBQt-.cWVyX'Og%:j7QBBk!/5+~BnhJzoKm`[j=^TjmxI|_wX{?ak_e'/9>HE|HRT*|?p2#n7+Q97whxk4", "tvjx)_$HCPmSg'rTf|ZS8~gx|Q1je0R.$T?3mzPDx5;ri3ZQ3Da}Ub3p^B23`%i_NtgwcHN=`u)u(+-g$bB+g'5rBk'.raO|I(>3", "%_6wy9c?Oo_p{F(eOaf@VBo_n3(=wxj^^JX)B(1R<yAS21wgT4CwSGOVh;*pJbggo5Q4H9D*OCp1H$4_aO| bG:%^c@emRQ)2DWi", "RmoGa}Z#VV#}w'zVn:*MJB-*g!wpFenT4X'C'?;9j sebd_nNK^'2$*XWEi6Hv_X][N9W'D3qv'x@%YV98KX2l/HPg(l/q0/ECS/", "<E^*@L>CB,cV:#Rv!*[D,o-h:UFdiOK%fIu&63F,-FEAE=a-TM'$a/#LW>n%_S8]WLTWPS']Ao`}{&Y't'r$4PFfNe.3n4XtA4K?", "$r1=q,,Ow]fCTT{hWYDx%{4[/JH,>j`LP1}Y:!h=W*O8,)nOYDhm1|')D?,0 r>#P>zt-,#{s4ZB<UX`bISE@c#y0Ehj]'W?o ^n", "^[X#5R2:gi/G{}[<@FY~4)!z+GTkt(m,ippfgNn0o.ScQ _Fk'dnn[u)`kE;Dqg6RPp!-G8KL5mFLpBogaZ_ft|WI HpjYw2$zph", "1PI$t'wg$.}+Ki}d-V15Rm0IP&VA#iaOD!k)6%;K69h!}h~,&aHH ldle&w_0mJ(`~|)OFIa~^51^`p4'5QuJ$xsaG}>PBbw2K#Q", "k/n7L/%]-L'Xx~/8-6h>z_r6:_w+l*nt;qE&~2d<^lYD/ly4D6]jy*ArDjj@+Tv+Xr|F6T|kvZ>94g]Dt'~7Vr7k=Z4M-sedG4@b", ")=zgouPm9r`'V1b!'&,n{Egs'n/|yI@1?[8J$8m^>q9JLD]hg3SKU7B]9L_pI'NkN}?LZw!VM7@QepFMPGYIiJ`Pv2A;Sel4Fr4.", " :NsAM##9's-V*L4t9cD/<u!nky|btBzD)-W7a'_{I%E8GnTt yys.K'x#Zm:koAW|?Tx.G4h3j5F*7AwPveZ[=>0KN}S[d{oj/$", "9JkGN g.-5l?'O(,d)JoVB+~i<`/K7sWgQQE,B5mQ0Auh|P%-,u6=ZL/%K}n><EW';|~5.-zzU,|R}FN`0=[nlKNEtOI/m%H}#PN", "R,+b{P,:YY'Zu8lo) +bf 9_f)WzBV+9r#X@`jR|T=6z5g2,[;d7`qm,yf.RK+(84}wEA7-7'Vwx,{ [nc'Z+MECI%r'8pj[wRT6", "w.x2Gn/]<z~!k='g5btTR*&!B>Lq?'Fgcu9;%^c{Vm&y'=BLYv+%V='3[FZiDl-sNNXdC5^YVfeM8DQ:wlbVE:y^}0^v'xU+OI[j", "~,[xF3FIPO.t4ocUFpjCiAa0=#!XZ[qP+PnbHnpp{5SS-Zg+ond( ZPBd !Tr9 &zF&('b6! x-d/'PeC%Il9UGBqAY-pzF^'Ff!", "U10 QV;RRW2~ CT,'I]),`4THpF%0^Ovs.X]o4T'3vI)^`if{L<|G-5kb+fQT!FAGXQeP!i_rw>}D'SiK:.E7uZOl.!b%j9C04d&", ",2~uL>k[tv<8ZIXG6N J9+$QhCckA]3Mt?K|'$/o;{i`'Iupos1,(a,?'XEnV)PqOVso=a*.=kT@EtA<!rE*BYmpUzv!T]/$WV$'", "qhG8qs`uBUaNIv Bf'fQ9F TR`Qab[x~qVeQct_j6CTqp:dH@COZeL,Ah8!.F4aC(Ab1}1Inek)3E{SAP?icKKY5)Oi'>EF96s(H", "=.Zac0mkP@)i{,c%5'2EXt'J9]x'x1f4}SsCnr59h)Zg~c@xU<z#'XFu|d{o]%i)'$kkej -'rH;mU#D5ZbUnnbZI]`Vb;?Zyq?F", "7%w9nY)3 L[g'KoT/|tbA)Fn{z2g2$ Z.%<Z%K{CFb|A'&RO4#huM[c|WHy'pO&IuU#/VjI>Z!7A~HMB[h0o|;}GL>5as,a.y2B'", "=ia9638U]d%r7yB^hDv(z160> _e$~6jWSxLu*m@hzmK{FM1gIgs{8R36j)W-F),@HC)SN*ZwvK9OVSJ#'H7Rf'oT`&04;`=$t'<", "e7||Y>CJ.9mh7;A6o?M2c'+TZA HAiWpSJ?pCR@aq~F%O-?1?0Q.>b-&cZ@8Ay1%tl=Z94 6f+I}fxjvl6 a@.&+WBTe_B2(j|n&", "/WIfDv?*b)?t3lV8D:GW/y5K9g5]1%gWMYIvMWjk~;fbMX1oee#mg=4?w9b61:=gh!|j$KjN/'}@;(Fr3E8zM:1V7&hHF]5oG|A{", "+t>IcVu}U5Ewt,|}FH1vzwMqRu;7K_VP*J,_sNhc)L_Na7y9amR',U{Xl5JMYbGQQj1wu*g?x7Q'b;U<(UiMd'UW'O6U*yE[=b&C", "L]uVUe?SF[BIafS|`~*hAE'#wtz-i'CKxD?#>vW> A)d)TvhYs8XOL9op|E!k`hTvcrgG3K&uq^KOfJ82#rizfr:y9QNzT}R4E_>", "y2G:s!S;'&uEZeQBH P}[cncc@nZFuelmoH3D':ZCBCt7}kT8Qc'FCwf_ToWk&w:Z-o_3l}k ;?&N`,OIHJG7{Ekh>'_fn1'Ct5]", "ON:U^'~aq#)b+v(h:{=gM39[]48^|!i!-m:+(GS+>OHp|bt1Lavn91dQ;7F5 =IOV}pmN rbo?Ig#@0GKvsje42[]KaA|,|.RJz-", " iq,$$#&A-[BKU %+=&6.!Nqd&_&pv%H#dX;8~N.1CLfCu<BR}FJF'@Y[B[>ih=h8q]([Y:3kXwQUvISNCr_S)zNo+/NB{y{]=b'", "O`/-43.qDvuP0`<]f8cz2VU(V`q@lx#M&b,Z-[nc/'+l-}J[P1P2;'xrF1Y`cY=0-kP=}=)ndC^wQwD8&GX'3gEyRg%)_KGy+{,%", "/(#Iga*GjOwhi8,7AXWQ*E}!AnE'KmTmWEgZD/~s$Icg<Ze{*c7m<}|'PM_ph^1B~na$dVw8k.L8tSN Cs'JM'C+Y<$%t)eDiKjB", "`<&kM)pE`D9_~r3'[&],s2;JDl[hook7'31N%X?@fa9G2F),20_/bm?6'<5<SDHrMH(c',kw?WynfEkJ(YBB)&%xj7W$sLT-JwN<", "57@C 21S6]5'?aM'jLo1U'mdi:N6Bx;JFcK!V=yT!Sr{['OS(yQ3l9h'V~/%T >M&FVm<$qP?`hjenk>Y]06al`)Yi?tC#V;%P$n", "jv^}'7Jyd&#'kE;: 7}&}?f(=|][/5Bv&i>DO>Zi$'ROx`y|htx3MuAcXE wl'#rI<&D2x@=IL,oN^%^]p^O'2'PYg22n<F+A@=x", "9(Iod!uCOnof |myw[N`PV'MRQ2pGL#0,_2]9k5z'7A/hsqw5;hszDY3Ew8? xGbk|'ESj5n|e,'`Rgh6G*>z=F$%cq8=I}d~OlS", "ENupeN mu24w2lOkWb5q?K!ey>eHgy&6%D{WWx!sQrs-`<$y(Cz1(GT^]}rc~ f?3VOJn]J;Q'MPf?LNp_a_<z<R($S]~'v.'X#h", "FZv,%+yLdn)YcB#r'elfKABJy5y{#x'~Wpa/CXwOro$8{@:Nd ;E'CUG!CvPBu2rPt.`i'$wZ`Hnr+'`my-3pI2sb_#&3H1ZHr-o", "-@JT3nJO|v'K9wOY8o~^v!XWiu$|jcfV~[%!<0[#bwJ{YPV4Ax#2y'0P3zD'.K~GTSK;1/qLq!N8 |'}Up?4F4aN&Yi1'yc'B$*o", "J9Zo@KUsK<zb{y*@*&3u5y7'S'W*Y2KlNJ$%':CM3@y^ie{nStW&;I]@7f5O4W4'`_.tJYyhf%{LfieFnylY}i1EJQHRgJM-zSww", "yDra:U*FKjETtAx:8(DvdsN9g-A{@7?aS]Nmq9*'](GC1s!nM}z5}+mU(c%P(Bbf6ff)u!yqGlA8k.^V-t*6yyD]iF`X0fP!&s6w", "F'(6Sum k&5#](gU{dP>p,>&misyV4)1J$mDZYYd;Z!zj0.$1{i;Eg)FLY=(+(rsEC54=VF9P+yUA9[rd(tMz>DdI4%@HH+i^p8x", "?)KE_o0V|@PzJ4ix06m)>-+]-`;_qjM{e5xRyi>c[g-I~IxT?FkNhl=NQn3<T%v>dB+)|yXM/S5d]5R/R/VS@,JZ/sd0RwF_s N]", "g*IQ={;+4!(xd2eZ[HFdxM57[+:F):^?}Y9j..@&B)r'9IX47,-Kq r&$ULYN3bQ_iG[WFVR&daWHie[L^o%-e7!3M +>i{E9VV'", "N0ZMQ9_5?bIK>`#VCJBt+'`>z/&m1b.K(<N0&*6Ux}JqU'Ya'J0t<L9)T<+7`v',W0/'e '~3.If:?m)rHJR6U=[(SYw/miV. &/", "]JI9qsrvtgNM>5(36k[*vLv$qzWeQ&gX>c9ak9l/6+#ku;'c-|#Q^u}/#;(LC+xyAGpF1?Wvm)Qol';('%`4rw]'?%nQj^VcC+,0", "P~r34(VA=nh <s?]eTPAsiP.1H5SFJSor3Q7^oif;~/xwuZhXf+PE}|GTo@J1~cW_ Y~WK6W8;_xntnb`QZG& ve#R4X2!=u4NXK", "fE/:4Rf[Zb6$UJ0c`8JcpbV'[g3,wR;3 MI]`s_B@tEFkwPN~b-EP*l;`OTg:a1ES4yug`)a'E-bE,wVf~7iF6!n=`'`GsW!8%MJ", "QO]&L0sD-O4#$`1KwAXj.|3K_u']/mt` ';w?j/s7$el~j6-BqV7N+37Mx^W}9t4y_`j+%l[V@YGt!Nm|Tda(R/PC7I<~[=wrTIv", "7Y'>z!?ob~!kOh*BT=!)A4q=oMzu!aI&[M[th!zQ'~MZtvZ$]TMS1hHUfJa{fh'IwUSnv[!WX)SgMk|LEguQE'4xY4PlB;t$J2lg", "9wHy[T20F{H-rZQNuATBN'=E~yI8Yd3nd0(|;ZT[[A=hbkNOA?b;(o7PM|C`inT=^'=q5^YwdW +Y2VJ?mhFJIB33t~'d->Y'9%J", "BiduajyIPD3(&i6s_ nDZLZyeSVu%yvxBQ'5^}v>D+Mc!`: 2KsU~&cs{k=&eA-}<2'$(nB6(6WX&.=,UgfXv?DbX]545_1azA{R", "49(=hfn ZZ@z)F]N` 'E=WiRdm*z,nH-%E$|/*J:#w_F Ip9^&~LKjZY(>+fvtKeI{7d^ptu5eIh12Q%rB!qUuU3b|Hfk&*TWRtf", "$5l.dgD}xIh$b8YVbyU[J+0oPv[{%$um7ERa@GNtl5`^RgN u'L5P]<&4Ss&|x+pNHG;y'|:cM#b[rzFT5vg5BrK04P6=vCme|X.", "N9gd*wZc =wLy7WftZU-ELs*4''K?m?v,#|LGqm8G=8Fm?%bN~cLLKXuluO&sy40iP@*@Gu=R~q#li_NI|6Por'6.@n1hLj6Yy^;", "n?]w$y[Mzo E77M6Mo9llop]1@om%/Zz]fYPyoL_V:o<3bbV%]4|Bc=(U]<2c7+yCkdqrc5SK1(iy{K^/B&.q'~*udtJu,C+jxTR", "WNN7vCN2(bu)Z5gsfCLko{1hh0:Yb^zhU@@`-BSOgVKk<~u)8IHl^FFAEl[`hn9DJ#'3._^I%y#14${^s {*e$z'JT[jmywi'*us", "9[x)' 8M5MY=Dp-u/m5FPa7;nOfej>HW0b-&!r12'k,u.YbKh=N):Cp6KHFh}e/lDI-#'*:ROv'zad!17Bw/B]GmN`p'Pn'74QWQ", "G+^;KAgZeN+4k*nee`is`~fj*oh*[h3[]'^X|+?dI($_r*gx.dX=:Y`WHa!H)((ZdBpuxTdT(_4D+pzc}pe6O7vj={hXDXpO97,$", "{jsH&R1zx:zI} N./$Ca.8PHUI[W[W:`|U71>3;[sn%zUW|oCaISDj7,{_sz:BiEu72Dclx8gB.N,/XLbXxkr@_p)H>olB{Pr=TI", "I*NGUf[A_zB.!Fz|_Vx6bP6~-aNNw)GT}2t61-='LO]h -g4YHjLaR=1[iuzy-9?+>'K|+PH;tTHF!UJ7t;H>Vd0$I|N,R3SggkR", "jAH8?-eyUl_zZ?S-..S4]'ughrW6BwLO84>a Rw7;r{Y3VOR9w`!-y{aQLg0c(C0C#098_!BTc*b-vW<?_%)]zRs'~.es`{&< $i", "bSKlV84A4i2@lp;WZ;SxwD[q''1WUv&`IXU=$WgC2AC)(NFI',i=4,o[4y=w?Z'>^'({@GGu2kyIdwS6G~|k;w5o=3eF+,NixYP[", ")#|F'>=VoMAHFg ezgw=VG{<j]mN|M}}e$'Le;BL$1:di6K`2.+ 7lv/f%GQ[aGe;N*{0_ 8(Kj=}QDu)*Q)Mf,hFC|Q'u]4Bj)n", "ua0:$kMIYxLFVs0YAr^G}j A(TmV7,HXY'~q]C}0rhL^j'B5/'N{VH<']'J,xLj=<'ou^[h!IL'qk4,[!Yf$T)eZhN(@p:q%-H??", "C rZkmput-Ngb'b,}F~*'GBc&h:#Ss+)wCI4(F`!x?@v-*.rcaVrPDjn6jGD2h|(zg(;H C~UjQlnln+J)'hV}|w70)CN=4fjd;l", "OVv)1s{.|5-@2aQh7eYZE!R8]BkW=!Pws$?K8r+6X>*V n_AC*]E>0%YAY^'6{1$a@h:kr{GOQ<sv$@x|FI~[avU$zStn,dDdf&[", "^0'6jX#G=qtfrA-ixS/$[&3CHX:%!62}ph Zh) qKv]I}*r_s=B6-J7%0Q<Az%b}DBvP{KYH6>Tb5J4ZQ+A'NU.kNP7skUXGim{f", "j`xM@H$~;bV+RP0L?]it (e_`}H?>hUL>7`G_B0X|niA+[`R-0R_!! 6|bp7]^)UL#7@ LctF%Ig8/Ge}C_ Jf!XG;DKd8@eL<+*", "g2Aap~r_#zGqx;5[H[=/80IS,98OuaFoM%,w7xIp<!ui.o2*1K0fCzf(,'s%`=F|- u@MkVq+B&W3YKSsS&7=H~3GoSqhfi$}[)c", "G@7;m>s/J3k;H0P_?<{f*qD)|96SSA6mV 5yiGia_oQ'<mD^GGe'H=y%6'1b r{%WqVtg'RMD@M3SFIG3y?JG *$+8i[ge x17wB", "y[n=v._3^QF)|md(FoMNgKviEL7s>Z9W'-2^]}uYV^8^QAuwH'Ra-ye@aK|?J#>NUjZ#@DA-PCy0|+`tbsK;Zpfd,R3y{w?=tuFS", "q)1|5PRY[V?siF(dnv~g`N0o-3V%t;^6,'mIm>`vlQoEax#O'QFQbr'Jwy@o/qGhJ<Pm~SBdK%Ee,k)8aW;D-$5%,OS,^u #VpRS", "y`<U+<.v20xR>i/b>bp.|kqy3{|p#vMTdv;.>h<1R^yRy0M5L|'4HD?mpJbwWHI))9?[J8Y4itUhQyt]&Z[O7WbeYS7KSr-G~ews", "4nshRaG**xDz!_bC{;,|56yAYBy3V+aF?g/8eL4E}Cw(KqP8}(VY45'(8,soK:P` |'b02OzI'lF'zOV8jr=k;gu]+R8{wy&NFDV", "r<jjU i0'U*'nCxaAAMnG1znQj'lI^vwJM'#uQn/'iCphHz]e(l,T{?WjBQ}Kes')C?W_nN5Y_]R6q$Ts80OZ sn1&8HT$EctnD2", ".(4f*<]Xx8<PCFQPT,:i. BJ;IJgRU6ctyq?#[MWDIM-ZJx{,~Q'N}>i@[rlR',!7RNE:*d6 MEhWUE^07*vx6^.^K)k^lJq`P7c", "5tnrn0]o+/HiiOmtPJ-*h__iz)D4o,O~`~E%h,$v8igh*1wH T R aXc#w0!JH1cO|sD jT~`2 sV'S,MNjDbH[mnA<+>5-G/Q#>", "aCp->k:=plq`n Vz>`$fh5@[_UyelSs'Sr4R>p(t5hL2:X?aU%X2=?MKstWaO?G]+iI'^rT)oF5E)%y@SiyAqj~ET1Xbh#lp~t`w", "Q7T57aSP#CHMf.7j1d5DxV/{:9H'2pM2IuzIaw>l&GXk'C0*.WA%VQhG;(%Msuw3`|Ux mh'*VzCiF'*o[8eS@@7R$Em=1LTegWI", "uuERVO:xTG^w2OL'd'Oh5bJjq/N'5[B970`54l)}4^j0krXY^p*rs~5QO+)>M,w$K-r0i`&xk8hRTYshRj]7O:I,/1o.g/h~f$a0", "rP;79de),}t~k4<Y 6?XVX's550c%=ekbF7B>hW9?fpGgLhq&5hz>nLHOm9X=Z6D!~xd5:yHYuU.n=W',m/azCg3n%:oAvCtbic]", "QKd{'YBcvH=8`O|F7!jqy$7|fma1'kv@`-j@YP`B9B8?vYeK,1G:blf}YKBI>-MPq7%<;I(0T3(lKYf!91_6!uG']F_&rGT9@Kj?", "j]b{J'qV_WU>7S@)zRNu:'tM'?^rI#4&Ona!6'nMxilra_w1zCNBe/baE#x:bb] :>vg;L3'LNi/}H3E1xp-CszO3b8og|X4'u5z", "7n)M4FcN'NA9'NCb'j']*q2sO:P>/FM7)'^7*aVcP[':$hy^UJBTimm)lSNP3L5r09FA'hHhd/Xt4%'9';_y33::jw^d%uEkl[iw", "X$ZZ&ryNW}GqiOH+i%'A5EY~1wE4'>j96~I<W:l*x'N8uQn3KK~)w~.xsD7?+jrjTH=@8Z^D='$'%bBpyd|8'kT<8e37T](o 'sn", "#^xsG;p%I/@uycxp2;yd7rJiFu7^=/Qc-bkl(K%5',Xn:.kB&z&SAu0kCBALqV?~2:z:8z}HuOenF~1w3j7'XVZT?s5:rx6I0fc[", "YMAE*RahFI4PN4q.vyty2wI K).7{,]Opf6=/- mURxj'#|9%@>A3x!5Af)(a9~|jy6u60%rP}&<W[@8aoiSRjvNODq9b^7Da9:I", "66=rk[BE19X.+yb,+V((J?:$;In;mI!6JVDU1Vl&^_'u6Ya4 o842:(<;{jz)HJ_rV0@*;ut0O<, w+LrNNyK`X) kC2}?J'6%mb", "&`FbUJj+7X4A}@19#WM}7q1V8;/ SNaK6I[R}#'zoH,yM|#*=n}kyR_{=Ge30o%pytl0{p]^MXWg}1E]Z4y>>U:c>#_YZA6(+=|s", "2wC_MbG+Y2f}'}'Z(j>mgrMCg!}+|bCwA6Y<UkZy-.;Y1[-}#1.nrC -kz8gW*o3s;#N71PDg8e=|kvfR8-|K4-ip@~jFNwjl'vB", "O2.I~SD@eX>Zlxn`gs;@jRCo*i>2A|1F/Z*@&y3WBuJm[v8ME/'y/VJh)jR{'+EB!*EYG9BX,'9p(1+Hi$}z=cW7?;mzDPLR7VI7", "v:YoYq`/hJ0_+^'p7fQZxm'OP_: D,r<zg-rhNV+w5^]2%$'+z#y#m)wY={5C1vt?bCJC~.RQvHy~8,oN]0LPW-}RG/C9-M?h", "|y-yLTA&|7>Ve}i07V]g-yIzo4xQ4-NTZ'9PNEOf WULUt~hqv-D8hF ik@=ZShKJ7{G6D bWMFa`lrYkNdQS-ynkz;3|p^/v5uq", ":.'JENEa#XrKO];Pbl23Ej6-ZaV[#W!!!G*Dm2L|vVVseYl!w8i'I1G;FkJ90c6.UH/c<#9j/ECB+:ml.c]PC/N-c40J'mkK'g$H", "5'[{_/8@U(8d@x.{gB#3t xF;!(G|i,}]v(lnzEovSW1tgI5r|LZw[juUtH.K3F>@a@h%Sq&55B?V*}t=(-JZXC1Ru}:'AI$}AZg", "h8!UV4?B%ituL%j(j'yPiWmOI]U:Qh*}]b3.O!HDk}{p's.%CNAE_I'n8SshN'V9'{yph#ds:>H4W/m,'ASv{A<c<}`>i)T*Sg>6", "iN:<!amd8'9m3xq&d3oe~4PaD3|*/T=kRbfPgf8q?3O|6%p24`:p+t]'5UQ5C2z(~{wB4qwS^.;8yv$+'.?ZsvBE>+w<QPM80&.j", "F&(qK'>$o}'xN6=~q9Ua*IZSwTFxWlYF5Q'1o%3Y!wjoc#CjOc(CWe'/IlM:6[Eb[Ib|b:lv7Ug'o|6kTQA'#m{w`0c@6(c8F5H.", "u'l-SvpuXgSq(q}{^J$ $N-atHSsyR!H1&dBg-|GPWx67NW0GR1jx8n.6!Zs(a*e}_bX{i'Z5N^,' 6o!WiZel8,=qo|~G~v<x/%", "gd5-R-gMf:V]')E `FCma! C_7P=4r3';U|K?R,fOSE<DE|G]5|~f% qq]HtV'Jg1]}W17n@0^qwF'1SDsBgCS0SSr##EM+j@UJG", "tc?VP/'Ak(vJF$Z|79<vbL3s2&K'M,79Ks(S{=[<;K`jF_<AQplMg;KQC,&rU#pD:s/a<l)HKMp/H#VO9pBa<I_I2R'22)VNe/zg", "-tl5qb/S3PS^,?nYJVs2(}bA]h,(zl|y#jN{6A{fnDM}rzdNE5LuMm*ihK$Jkpw7`]{6xLjz.2{',Rk^rNXC^*R3x:[[5.dz'w5b", "2YEKR{nOy#5hWV/k]#:%PIqS$AjG9#xR..H+E,O9K-'MOp]/lja@PuT(V|9|/UgkB5YOIaMWh3%{<hh1J^Q,f%f$~q]'Cq$V'4,A", "0>'`S[n7S;#|CQ>y*N0Vbz.Wb 7Frx}p.:iNk#PV, uL-kD[PM(l'{YG<9O!X7<;!/JklRZkB!y%K]^ic' GGX4$U~LM9QgUc;YK", "mYRO9?^B>I*''PzEE JgkZwluYinb(<~u[}O_.=B6t'3|fQX>'+ARe^q'/w+T)'Ozb7WJQ@2x+==6_TB;E`~Xg7h*+@L#wW]NtP'", "L!`W^S_*6CW=&I?2nn|Le,o?&^y)W7hAi_s+W[['-3hvUU_x^Gw%T5N~&o'. }m'S!.bmOY6P`k4LT%G.rh{AVZ)t{wSr>,-1C 1", "q@u3;S1V<NH9'))8K1J:M>mc&eDM'3k:.oJR'$T<JUuaFjIHQz)jx,N*xe Ekq--H<=~m}1No@}6kwNG9'19Gb2q'0bP^z/a2Sw.", "kvi]U(4<JxALL&qT<Jcs#l^2ug6^a!)$pFDO&Qg1.!xYz?5P6M?d|Rf,6s#t?E`B;JGhFV62E%6F&/^0^2cJ;9H+ocylD0+iSb){", "mZPs}lpBw<$TuGYz3kkYnqZ~.4'spih}aevWZdH/x>zxljf;;_66=X~ueu2)_mY9^8.<f{6xb|4w0?M[s'/ChgYc[M58{!I3&Uc@", "fwrMf1ruOAAw;e@OtX&>Ut'/;on9i8.`&2a$Nm[(Td^Y'hSh%n%Fug-sit/_v3l#$yoP[n';ACw^B4Q,{'Jr)0)owB1=J.{]=^tg", "5*|!|'Eu6@Av*ms}$%6m3]BNJG8l#FTdBuHCNV4K*t8eKlN->t+cU*s}/opnj>}^^w>J4}y''0Z$T}.FD_g0dh=bxz})=i6g&$;/", "gDP&<_S|IwjCHFI%B~!leJaQaih9wMA 0z^rbe]aQa//[uUS'O6C``?uUi0rkXbt`#cD)?B3B<'>`^wM4!^N#b[dl(Rd%]>*^wo~", "~gJ[js<;kZ#|Z7)*E5G{*NODyM';RQs6''%m1^nT2itD&r:!<-'G*A'b@[jN-_7+R) Wj9H;oJgaSL#`hi@^85^T<7nKbJiy'bL4", "z-$n]mQ!^J>HW$yudduS|:#X<}K~'R-Z45F^#dvcMEg0G1zJE%'Jcf!W(B*raZXcSTx!2$:HVo.QW1?h2Zca HS#3!i2q8AEL{>", ".0K'NcFjo,'OfB|TyF$T, GGi]FwnB3rt(t+T<8 S*yd|:{F]'2)L.-]@9nuPHX`:R e,eRn$xYX+aLviZguW/m'0Qs?eTRK$d!J", "o|TfNQNx{IPZS'D9c2Kyk)PMFT,OLQQcdGJsg.}/+sf87Ir(3[P`b)5(}6,?(S}e&(~Cd,RGj=`*e+-O.H9/9I {A*yT9)e81-N*", "gfni@QAp>>Rwu>sF[?i!fnvf[2z5*=e)Y>Mu_uDu=5#thUXsL]$yEz*jY~94h:9;MFXV,7z{RT95sjUD!1B'a*:'NY$cVKsqGVfc", "2Hu(y_| ~H%('8SfSr*au4Y-3B/=t%^C0'q*GBowR~(iltlN?3zFW`'v{:9PjjE/q'PHx>'HO8KPw,t(VnSy[@c!'+{qW`DYx a4", "Hxz*k'@GMHrBOsC!7,qdhngQv(ns)rtw@}i/Iz-a>r{Omi31`CJiKE/H.P}h`xNAmrGfcgq1dF/k)%p{fQ*x6NJ^ZXh]D5;pV=`[", "pe|_q5hROOA0TThYmK!Bh.8y>ap39kOx9_^-_o_v5^K& Wo*e''5xgXE|.8`q[y]IfBQ;Aj`vwA'3qU{'F3O 6iz{DNQ3GQMA.'F", "|' z;Yl9]#Og(*:8kbcM:!ArSO6oCLYRTSC}>:E5`$G7s.@`/;7!F4u!dO`S2% lQwcRk4Bu>'D_ZnW6(!Q}.]O+o!8'ZkLEKwT'", "V,TfSy|T`-Lw=h3[&{L3aH6Qo4S:0zd,p_fg'o}en` ]hT-khN+`ggt_7i)n-ng~Rt,v!d%iyzf?)5jcoUT!&a]J#UGxmt:xGoT'", "*J}WsU9DIp'7O,t.F[1}47y)(z5[@G;9ms`ZpQRoR/ uq{-|F Q402*'XC~'I<&x+p''zJxl$9)_4 P;3I/-007<8+=x,%TFr XQ", "=-g_2Vx?]>I9j8)To #RY_)YJ_gx/GN/,bjOq|gZ[I!3x#+HtgMJS$:Vlb;]X%m!f9.KK3V160%Zn.]e ) XOh/A71=]?;;A65(z", "cViw.gjk@S'4G-F!Ba+eC8XM4zc,y$D91bM=1;}e'WT(00ySe!cS5HiZZVAj/K?kR_[;c~ZH'{N}}2vij5|u7>6BF*x>/Qc?QA5 ", "sE?[@r1&<:k{]mJ{2H|E]}=yDq ny{sz/@/l]s;lc[TbA35iy2)|3O(EIcaE+iF0,1vd'URF,Wn18^N,A}1jAYr^hFy'J12sRL?5", "uP*a-3x<wzUIudPO0u0kHC6tA}Pp5 CP^0K`'wx[h7&._'-j#38/ChHvFnz[xDNm'$Ta9Xd)vz'hk;F+b?^*zMe'#mgFU#18W[lr", "/s]1w:%(?t~;S87`y#/#oVp@A?9Hl+:aYrZ>Z/P/fvx.edK~OTpR/C8!UZR(==LN'q]i oMJZ`+^yzrb.[uxmO6'++.EQT[(gnj3", "#anN/X0oT'`u7V#d4o4/huU<T''Y8]M8^gA.j/Gz(W~?_Cn!gx}|$PthZ',*{/?kZRd4M-Ay.Goixse.:jsM|_sp*bHWm~TbIQaC", "N{Jjq%`'dya-=?<NK!T].#do46<qRs_iO'|,=O.,TZP>r!'-7M@1?dvOck.J%)y!6WR+*t'PvQhs:O8{tpV%6Zf&5_JD'FgNYPS)", "Q>O2c#`EX^]h7{z<V0n8k}=/OJE54==mY*Ba+ZD[xu}*Y5*V1*Z{'`'mErz2U/,DTAy'aG!kKQWShW1z5ZFl:<!@ka0/6W+g?s*=", "eAKO<YhG`lRj'2B>e-x(2}$e8Si|}K6*?{q-$Yp_i>D?Q{T')eWeO20*0KCs|dk'=ZXd.xby.J'D&cqd+Lq<:f@&/uDe9a|Yk=8E", "6z(l6x]',Y%9zcTO';Nc;'9|ah'}$'x1ix=5U';3B=f7.*.DYH(9@e'?YcL<d'YS![z2f0_NHo='/)K*|jnX/)Yu+MIE1Jj;BTc_", "X5>k$%,6G{B10'a-ElQ@XzJQS{<~^09NiS/jb[+h+o4r:0S6]v+8a@6YgV3{:UZm/,'p'b-SOCV^oobi81`a[fN+5Xziz!zGt#}P", "r7hlcIFH?cIg>>is'.HyXor)1;3GAhKF`g3[>*UJYeDVGv<z s/r~rIKyPM)SGIL(hC7@1+x+*JX[y[ws*s&YT3|M P#Bc-hn,n<", "}gQVmL7=.<.^u0qEXDX ]^L6Y;cC):'3f.nf/+fe.GH0zfk@6?z2+.ac`Iu(:sMQL3eN0C9cH6~y{fX#V|q~Coc{l*L}:QIMRid6", "J^!n3*2?CC)z7ZRaU>-#L` vb='T(Yp=9fmzZ(o?Xj??xII!n~%Dl]7rNq,+LDw.py5xM;>'~Woi_h1.zq)5Q@&::+z.]:'I-.4r", "hB+r:J34 4AM c%'yF*!WTn#bMNbQ(''7:OF?7--0'wHb@;|~AfS7/=CJ<_&>LHkt*NSC@B5_N=A](C |jgxtt~#>P4FrqBPK1Hh", "MI*39&3Q,e#cj|R;wuQ,tp,Rpz$Aj*?kbU]-G6&fu<nf9mhw(/< +mrrFX;%DJ-gFt9|TL8SYMG&n6wNpneU|+'6qhBg`pz=#z)Q", "K)qq'rHe%xxh64nHnoT AR|QE0F5DQoH3c4)J|{e#edjM?34ED3I%4z+i'qJ3Q~~(k5&kils.44:3$){/O^@g9$M}3E0%IutP<&p", "q-'8 VjLGc.[YNeoz35A0?J.{(l@:I!fD.hRXOQO g1X`$QcaU5UvqQ~~e%a<9A@5[KVS'a~sNH7F)E'YlUd$,Ou[Qq6^ReGE#@G", "y>2!}'$_Awx%y='H#Nsx@4}5hQG~N'}1n ,RTd6JHr pN$>V'mZ<SVo`Bku7XYa>IT6?Tb'Rf~Bjac'_jq8s)]mm9*`Z$gP+=iq(", "3:*z>;[gd9@.n6.T(jhJqR(ix.e=lS<qf*p!9wlg]}r?C&;4(o <l%NbN9?p^~oA:6 <]03WM2an8:,=ck*z('Sg$$P#vVGvcEXe", "o('E=u+7{M}.fXCaA~eZ)OR'z [P}jzjW'=m'oXW8q^gI'9/dewM`3CGy@ShNE:qQ6|,Ly$|?/55T3B#iY?5%Qug,akPC3`RJDK ", "^2R[B!B)Cf-$!WH1gJjEf{`^2f'(r$xy$ALhO9qzJqTLUZ<aW-jXhQ/Eq2blc&+evVqF?RA|bS5lEqph;Q 7Av($>FImp0T@-~C&", "v%engcPnKy]YC)HCx8O!tB8Y$8[}o[;V+B.Ri(F oJGOx}IezVh10y1aiFWH?b4cVZ:[sah*P/-1>?KZXF3pux5N*c^S{I mvd$5", "X2t@'c/dF`lvsj,u}*w3o/j<6U%8a'+a 15T9rM'dz`BnU`FT)Gb`i`nLxm)_+W[5BB$@>>iN0$q{R+XXq6aH+De-}1IFFz|2DIM", "C~bf/y~6p;R:.lwR70)k'GXy'$MK|^>;,pE''aqv0BC]7M&d.?h FJ|!n(ebH4g/.Nt7@Rk-Zu;:@l nPjjG'Yp>F8S}9~u3Eveb", "I +vELgkd{P/`4D}@wut;K6hPF~ t1uiKI7gMw$m+~opNh&vMTuHw1,b>NRSx;:)' ) ]Zz+Mk8H;5'l+.s=zFQ5D|+la{cnTg@n", "/@vUup!E[dciX<t{#RW'H?D>zZ`{< 141OixVT%t6>H'5itYM=*|MS@ZC._^If])x^(S.8k-,P7OA*=J 8']3`W*y{@EZbbyKT''", "$TsUe6[{op^[4!u`pQ:Fv)6UI,g,7PcyxU!;{wb10t_+Os'QIs{uv*=Pl6(}QS=YKc'6i9.Qu[wE7aq*^slQ'1p'rIUd2;Ow#yo,", "?p0_p^LRcWOpcw{)UJXveM8NOuVFlcrIf9<hfUJc3?ER mGb>t#e5sA-a1'}sZ3QAM2]8T=)o:Z`o<im1r`s,V3Ib'/<FJ$%aeCK", "sJ&Af)`Y{~[,v,mU>wG4SE+,?&2|&.nGl!N;'-R+|`fC3><@al}0Cg!KT^d%MA'$#.|CyDD ch |{,PTm}b(*e9j&hi<MkO>F|PE", "F29_ON,8XuH[N'aC:MAf^s<JEi&SH&3W,UO*5|{rxy8[pAyTk+[GuXcG/DQ'''0D'8vr'(od(&_`M!x(4{)^NGf<u;b>INaOpMh+", "uI6|6'dK0>dF.p:%S7~Zj~QXD9b>W/m~ugiSz6WVO~T/v%/3 .lUrD~D1L|,>{d{]T5{p6t,3l<R%X4AI8|T2YL7$I5Ee*hF5A(9", "SH_48H;kvxHLib<Ja [GgW _eZi5&'%'xj-Fmh{F6)FX6^O:McSj|4H vH_`ks$%rO/7m.(U89RmKee[~:CuHY+b1tmC/79B's m", "XGJos_8>qjLYQ`[p6!UI2G4@fY]`U/S7{>G7m(:'pq&8<MJR5UP6a=_6k0N.3/>B?/r(^O%_W8O_P]k(<:N3|S0aQ,1vq'u.IjzR", "4I~~Z<!Z?9bhbqeVD&0n'<UWOfQArDCq}N*be+{m-a8iRe@@Dx@w*'0p*Hj'W1;DvVC@~9/'y&fl$s<x*w>)(VkRZ1RLqar*L0P0", "~g'ZS*><;b%/IyCB`MLx:@'*5dF*'BBb%$k.,{CW8g;T<#dL6!QI8*E|32*OM'n?q6P;qlrWngH1r2Q>Q1sdx_U^idW:ejNfp+K_", "H=FJs;!{eQ- #Zj]zUYNHYg'MpM2;f+5qWbw)Y(AyUaZ<^NH4l+cJ'R8Bt;t%[JB<@MDM=,Z/daG{WV'n8JVMX)$fclnbMst Zam", "!8;?^tR!,b|1Mzhg1xpg5u1#fle87:C:.)+ZL;_m-:t&4G].VXe#<U{3.W fJEXOb2?H,CP=Y,A(S2HQ--P_6Q2aa6wbJBHoB)Qr", "m}?)/AQ]o=2<`dN 9yWviR]w'lZ7L?'57`'1:cj|#`L=*;t=pZX(=dn*OJ9~k'18G3<=e&Sjij'Kgmho1, PXUDEt?b/?'i'U +e", "7Drox9}H^(g^(~uzZqtp^Ql^}0wCx9bVmr`36IA]V.-um{Nh9VJ1Cne<SA47T^<|*lw@S-froap L]+!jT*Su}9LL_+*xU(e`?7*", "+A<%fsnX&l-NO}_/;.8jl?_lhIDg!vjX'#+/':2yTu<FH.'KbNx ~H) g31{'~)W+oezw-!.;}I:?84a?I/C'i@Htw(o&-V)]2Dm", ")dJ7A=+Ta?G:^cZ/0+31I^:tY.z]ytaX6(q'VyS}'5(iA3yA1xnc/D=:!=!0'77IXvLT97+.*i;%lahd(FQ9,)J]=}p4j)ud-V<'", "b:X^f}CK94h5VHuO|?2{3Oe=_c'kY_:_-3^L+SFEU<PH^KSwNB?YJb(o%q~|5NF{qNBc'u$E:'FD-GrW{%uWKBw.Q+WCAm-^]'aq", "O7pverDiN]L0Xe|k6O(|Skqu^)f</F%F,s}TB<j46Qi[op4UjMA6Q;m!PTxrlb3e<%h$o2fpu_1?iZ7-!$z-G59nOsI-fUYJcs5U", "gz24H?BG4jpYm3FZSmpuFlrE{xR9j4'ncd|O:W4{2`yS_sR~v3kAR5e-q|b}cn3f9v[eqpp4qKG0iNX)_n4]o=:L^X?$~PID7!NX", "Tb8N{*bI@Klb'a j)}i~O,qXnIp|yf?DFY/RoG8DO=12N&~|XNka9j9D!MH%LL@|'lD5M1hGN%GVLoq&]MX)|6m{Yc1B%xXNY'Cr", "[C,(,w%~4&X)|r]f8eQ4(2kEw4qsPa?cmyEJ/D7-|Y.jkS>]!X 9H=vGB$ tF{M1I)?9?e#[`lr'gXP,B:(}K$|}&HcKA~%EXP}e", "Jlk kxdUL<kjhUfF6NV;>NTuL}/*}'o[R/$]e7.G.8(QCMh2w-rfB^p 7zS6#%#SHW/W>IFLTI/4S<vo&tKO~,I_Ai5aCi+Gn!!t", "u`#;=xSqiKig-@N4}`EZ|'}t(cpdo]pAH7S3DK+hA4i<$+M]qZaOV`h?(?[QXfYE:_}QrUT1 JAmk@_SO7r$A.t|6|upg7;;1=C]", "#_ubz6/4S'VV,JPo'2/|dn4{sEYpRiJ#iP>AcC)k@1N3&V'w]Guf|.+4e2%DxSC]/o}Mwkflbt{_xl9'q=cQ2K#:PF vH7'dE<'9", "F&'nVh5AVN[} 8AZ#;^Ss%)'S`y<zUinCTi-&c|TD.J$uL/W/^NW({!/:&++'bW3,'i}~xC2IE2{Ci[T''jX_|C=p(1 H^ZxKti^", "`<{a(T26>Zf9bHdLK;g'+1Yx=.+Jo*]KvJ~n*'Y-Er0.{;$969?$Gv7<cm yI2tZ#>jlafXozdAR&4oW;XH.E,x.+6O+O++/3XB&", "Ru+oxHCCy6cRydGhRIGE.Y1bpa Dk<ol('tUf7}L.X0&'mnfhW7'gK]Dn:mRxYsh|J'I;!&'AZSB3nuPUn-QjYne&IV/:P2p7d/!", "u2H'J`qN$+![D]5rA@|b|AeW`pw,#{NJA?xH}NK'8FnS;w]''s.[rQ<pTA8e']~+x'5,1?Rtq$(t*rF;4vOQqzl([dZe/PXqAQNq", "Bh*BkKChhG79(_x9TWJ:Vp<CO(n}-BmVn&S4}OK]4!aW!tf/9?19;9u(v,$tG,x!7Iwo'?AI57Qz@;Do%O!L^K_j/c~d9-*NT_*k", "lQ6$2W,U_zGyWZ,O7Zv.}0pdkwd) d!3{n$|S7;[`GRYMKMX2(Z}~~W'K~{?<g%JMfwS'#xFmE`HW|sAB5``36%d#AzDOq#{w/,4", "@'5paANBg)[WTAAX}l#;7!@Msg?2`U2KLslp;eG6ULzrt'dxpm9x^b7/'YG'2J1^3:0g}{Sj`%^M=0,*[9Hf@;EVK'I%w2@'RD<[", "6+!c`bV<>4Ma2xsGn@nScQYh<+x:;`Fp+Bu4$fOeiPj#*cZ+qRyo{N@7]9>aT+o@l6~=M.^NwWAHD*sTK4p+v**Vv =As4G5G?!'", "6-]'OCOh8-|<Zs)'BtAB:Kd$C5P*$5NWk3@G(fXg>Hf_MPr+*UxNe'7]XMcaAT,%dBa/N8b#8`2C'(EyJ0]8]XP`FMN' >83s0e'", "H~q78@pvKur[q;:Dx7=gI9&OoO*eElaz.HIH~'?qk|b~V?_SU[:`YtHXxu^WWl}.SUU2&zUV<H'2-9QRMQeiJ[c'5-1-?+J {yQ@", ";9,=6l{G|) %pKSL*QI(0r2(8]F}^%$)::E/CCP[j 6=!6d4Ci:(}GNv^&-6}PdutGbsYL[)#9Cv=9'tLGl{d<!>04$A~'@p|@P>", "]e<+EPpiol,7ebFt2DE*}n-c#z=N(l6[pDo>&''?8p= {rXjYyyv#iDv[rr];Z@IWKoA0[&d4? wy^0~p0ESYK;~RLX,-+/KD'C/", "%t19!V/P@)se{e@.z'Ed]E_radg.JKPBTR'ui'mx /.pjf}oM_yBLh2YTzNvVHAb'(yr}}r-MbmA dtAKNXxHDWA.Rx<o><&3SIR", "JFXL~$G'E.%%xc'cSlu.y2C_`4c{DC7BVK!Vi*;>Jrm nJp&,a)ao+9}Uz%OE8gu6[cNI#-U-x1>/cI('3O7^Ktq%K<W=s9'n8n<", "4FX~#b%Z`#kze]x9dJU%UZ`zSj4Qqf?t'!#?jyaxG.XBSi6gG75{VIx6{Cu'p^O.?.WEWU1@ta)cpvEmyvNYC)lir6T1k]hIgIE~", "@)=J}WI3mC 07[}`6v}jfQZ1lNMNl(kEjf'CXWM#@eK~nEE)IFJxQ'7[K?MG*}(7x_qJuU=%0^?H`sfF79|@1cFc%g:=h%)3w63z", "Xi?hY.ZWYL'*.<?5kty)v'|zE=4k%f4zH!^odh*@2vkLvHXi2~<]Po-{ >A}-:fErqGf[{TE/o35aNyNp0*JDt.8nGE4$r_`5R97", "rR+1l,P-CDk7U'Za8EMlj3WwZgVaXvr'u9I*7yQ1Ua>?1A|3W;bV.n*Xp|@)IEL%|P,Z1QCM&cBG<k,LS*,9QY'=@3td|YHPt yT", "I)z+o<^^sxfAUu6^9E<i{b}+73'|'d$O`'d_a]H>t)iUo3'#-=y&o'GSmC!+Nx:)1S#F6&U~oz|]a^v<G(ELfU!`IKZ;S7J'p+UM", "Kuc'8[.T1'7o/~(AI-l2 ?4z}nXQ-#^Hy,:Z?L5!!k}K*7?%e![jbiDCjU6|(N^-F>?-4o'Hz(vqX| cB,<9Eja}tiUb[@*h'1>7", "[t1IW890'jz/' Tl@lrb8Fef[7l.'A[~(k<'^Yl,Yf&veLLGnfx6`x14WW$I(),gA|O`Kx{3E$s'~LTq=)'{;ii;]ASlZ$RGcMX<", "!1+Hj21vy8V?Xt1+nIy>Ou;ig]K9>c'oJ3P>:W LmW__FOrQ257el!gF[~jcF *gZv'3JiIw9F[]tStF0G15wH7'}F;CPi'R^l9f", "XB%sUY3U_IR{6Bk)gW(>r~oiZNnP4|3 A(2%hzMan/u!WaUO_Z#}<.h|K{fke-Xco}`XFXTS9jd8<hvcC`}cm=bMGnP<mD}j;L?p", "8.2];lM_X#-f(QQU;;g_a&by|-|=[Y<Fgs[$9iI'AkvgWMM%Yx.UH}UtlK<sb@n3{1UiW8$&^T1a[[+:KR(/Wq'&pQnxn'oMo6,N", "|Ec9_,`}-6kG*C)6{<Q`?w2tS&>oav6Adl]yD?o:c_'S/-eG4H0'mv'4c{*=xp`?A]dbk&2/!@kJUCQjY?FCo*H,5vSF.~[2Nm:u", ",?I5a+^00pR3ze!jBZ;1[4r1;x=9kR/y0Rax['v0~*$PKYtI/JOqCB)FZ'J~D<fwk^V]08LOk`ntXE~j+GwdI[mU}88s!c!TbpXk", "`2#KBTUy'ui%F*]O'XI'bT1U)mTb(i%)d3d4,IjfZc'_XVs%xf3/9;'/B*&*m@F` E,6P232oTw+_,M+x9/JZ14^#N9YLCB^N]u*", "bzAla&&MiJ:u`a6dn']d-)NgWQ$9m5S_o`Ng,G:d8C@9-WZ.EDUN+HnZ/,*'J9{A')4qF?3M1`V;nF6^p.xnORh><4#** *he:wD", "I=,V DU KUlU3k?w:M]`s*%Fy>'8R=xPnS%*FbGXRL:c_N+8A[7t:_IBJzu^vL4Ugg(,'B(3)4wu?-@*<'&&/4f'aL.N..'r*$2", "=.djU!w Imo-8<a<A1TcHn'14$b:1o 9f!D'.q]FbLg_i+3W%cuE4FS*=Jv.BbCOG=TPVUP'xe:Q`ojmD6+#n8gB]Ik-KHe<BU:h", "_}#g gS}ZL}'tF_<ECI9rK00:)3MES+6V`M${'g!vL,+Dc{9}IOZMA0zGV_i'@ki`=fs?muqbIP4q[/kg?lqFLV6`**$?uJg-b$H", "#]B=D;*<`R^b8/)+Gf$A/2B$<q_4[=+vCQxp)byZ_5qAxKlf9X.?MN1&L]D7[>5FY>V@tJ|knqWpIhv,L1K;l']sO4@]V5v^<^cH", "7>J'SbujQ9PhQ$<['R[ZFl9i-$.mR9:cxO)!YFI]A,N;VIG;~e'+_:70xr']t0(T{>J!vc9dWi*?j}[Y$;dz[^(vK<6o!NLZ`A5A", "'=9Z{ZO)~sAdKDV(;11hH%UBB2J)?'fO1Q{:LzzR<O_A9qs1CWXEEC##4=s[Xv=0o6h]9JTXRWmo%*{Y9v&0'wQ]! uuAR 0y)o!", "pN-v#s~ &o@sQ6~f(#}'yK*%zg%DcPW^.:qV?4M2k&s{fM]lNvC=]ENa2rRB )33'a'5Y'Am~/T*yn^2}w_D_4aH&08#4h1l['XT", "c^4>?K:A6 t7x^<?N/2]?7A GR+@'f[g'QXp8>9Xs^7aW[/w]tp;@=.:Qgwi,+pUJH'pT:SFx90LX;k`;$DqC20#i']Z3#,J)'*b", "+AdB|1nL}ha<`D'zlg}G@.wDOIWj(be?UU:/S<0u5uW1^^:CaW5llES4?.$oO40^p'!6unZ[$?H{IC!-^2iQ=3xGM5*Re@v&edk$", "z[W9*Jyt` 0'dZd!<tt:4FIaNf&kQSi%#[Y*QLsVq3.(UPexrvlfEuURhH!G9BQ@X%Ky)[%5q`%>'H(TyATMiP3?WHsuT[-_`MgZ", "_8}W#Y!'Rn5:u*]Q.ypQ9U{*[(vVW'KF 2+#(+W>6=w#zY,'sW'm8o{n ls^ B%?jp%X|-fsc7mN48h%7GYp627#deCiW|'12T 1", ".@42V$l+?Axt)8(l,tS{Z{{nq'BBUxFH'GYgfGcLmrY;KE`]F>*(ccj(QW3'YCj+,KA~6XhW#AK`;@O8q0F6Ji~D< qcw;evFxj4", "%P:Fk{u5:$P}!7TKlsfV{ZwLai(xQ+F,DfHybov>p7Q_@f|y]]A't3F=sr<H^p39qT'.'!1!&?0L3ropY/dE,s9$qM&H%F4s.X21", ">**ct0XEE'v3Q.8PWdTg [rBkL$bjvTx]^ai'a>l+j)L2'm-z,AE+?-gKgWE+Jo~OaO?t/uCUL/FcS<>^AAIb40'^=|XHr0)8Ft+", "!D_.w>Z_.k6KYDN} 6UyOU?c[o gQ%]<F`!y >B9sF{f(7p#*LRU6+.SQo9Ppi7VSP<'EzK>,.ih el7RtdrIF1<~.PE;S_(:0w!", " 1BK9~gxr5H#~?pRIZ#]uK;nOB=^Muw#HuM0;;^Ug70qj<#V`(G??q>tbM1~o7+<?>'@ 60V'zil.z[3}fq>4.s1w`]hj_PV*'ZQ", "M.R`7B>g=.zXJ'9 ~f4[8^J8QV6=2RM8(O@LMbeW]:SY{(ocNd0+R'[W%S|od#$2#Mqu1/Bw7`3Z'^{:)aI=pxW4OaWm#)$M38J'", "?$o|rCeCq`<{1THqLlvX0tP'@[@d]xBg~89z0W9`7giMR@iyh0=m+D9>4~3.;5|B='WZ=[7B_e68:c%G<V]/G^]{D?l_Ma#bzQ&8", "kI>!gXMllQX,1Ch2nq521Q1g'XVxhZIxy'^vX!(J IEbKfJ9@w.mSGCMYhmN+'_(8!%n)'p2[2b'['Co}ipRMp4E6Zd,D~]PRnj{", "X.he,vD H5(1O,Q$!f?;eED_}8UL2:%duucU?FZ2l,dZK'Wnf6U#2G6Beao<fv0jOMfaM9&Nj8'd{>@bvVZ5rj6Wb{4Ip2Ar~!w%", "ly~NdHOI~{ ;~1H'U#GfL'/G'z3g&onL]cNGgJlOFoE%ncE[pvpBN,A[F+(#<Mq[R[WP$3 c3kl,-{RwM'psK@TvH;vEhk`Hl7ay", "gNNS~|Q%vpL~EoN6=0a%U>]2BDw/!Ls Q='XANW3s8;Y25C'Jg:%'2ad&-{V-+<q[s}(9:.jw3Jc~yiEVwg%'bs k&`69O`K|*it", "{I4t[E%Ro?0|[oUT ;mv~QT{2 q'N}2mC'`2eGj@ZqsMTM)i=mT%??_ldCBp=$zq.~(>r>p;*,3)ut~OBU@ufG%['/#MR1@rF.P-", "vdO~**d{Q/f<E2BcaR{Y:mn5r3'_bZ,ZdDvB?U'}q^Jt#M.`c=N4-'GAIdyv3Xxaf5G*?S]HWapw+cVt9Gp/gZ0&w7&Jgl?_gq%F", "W2L<U:i+4EYMo)K`hd&[W)JH-w]S=[W5+U)+B'Ng;_dVBdSm8VE1]XpPNwLtp'k.Ug(C&cV1m,xMor4=5A#NuFo@W21p!{/Bm~mk", "K6':0Edk>CH1C#AY#r@qGN+NnZ'H{;C!a,BJ? >I3gAzp|CJgJhvuNw0({|7nc|~C2?_*w#nSeRahF|*FF^gFQ^_YscZqDT1 /T>", ">bt|~4FY53&>=EZ^ZO{td-+3Z3s*e1[ho)>_m4oR,'uNiA#nNF#SEg)y`yLd'V@mQ,7^5=wshxRx`C*x lcL|i0onY^@P}1xem&c", "y XX->$_paC5Lb/`Cb}N#_r;gw2N'R!w1]dGtF0Ewir7Lu*IW=yT`dK+oSgNUYef_8&2v+d;'cU+7H.W9x<24?VQ;r*M(lpG?!Nc", "}7>Mm;WEn7x7.%EYT`RdnQ^}1,v|_;3:W8iYg['@eJ;d`xj1QxLd)Bi'5@EZ,o8{'3-:2X*21ZFbO z*.<*)Z#kCt`|h';#^~Q0D", "~X]KtBfW+<>41N2@ND55x_{ZHNoRH[?,.&&7]Ry6Qxbc7>lz!^7VOyh%bsff#XZ8D])l+1y'hY|f8KK0$^FUKup4k%V.'bKm/t:)", "eAE|owD'O>#3hRb.BpYQTS`Eede<jGT9]fv+'fnU&1E?ZnUFSgV6G&A!^LyyR,0I['5F8a&moC%FmxYWg6ZT;Wp#0v(d*KNPN(3a", "'GYWZp@*Fe+>{X`%p${HHO,]'a_v'r.xzy[xJRbn4w,0Tv:|~|A|s0v)UMCTK8Qe0ro$LAU4q1YYn}LVXW@BRKiA0QjdpU~1?vt~", "|u)>ZEk 'd MSyR1I@XGf/&?R 5jGw$OSih<%O*DI(F$.BaZ7:H8e5?rdXjvd?Qfs]fvj8o9 IPi]2lq=gojB|6g:C[=`0Xfkj''", "z|XY3k)a.d. Q5UL%wyL0p'toTu@#Xe2cuK_?,a]k0GwrNs/!@W{ljnv~U2?<R4*RlzP!fL|*99liNOe('39K<B<yjD;njLFOt`J", "9UNUh^') Q}MB)J]d%M8f'-nH'}LE0g6Wc,^bwGSCmqHZw:RB3=)^!Z&$O;/{&'+_!F)-J'a8`'f20`v'$;T>i'wWXihNXoj<?yi", ":zT(_d/dM~G3UGTwnNESR;eB'Vv}eAb5.b<=.*xuB9g&B0(%l'?:^*f1*KT)0{2 ^V9'8Ibp{z1*o&tze8K2YVR8*NwNp6S5qpz:", "wg10:H&'-'}4&%#yI5hp-!nY3f:&pP$QFX[|DEG`*#>>K5j'7+S[LHO'cZ]@P'US$L#Z=%VkD;vN X'rV' 7e7vW](^wd)[bcrB}", "FJ|[uVHN]~xJx14fEas8]Xx=yN!ojcl}fl_t1A/ :)4c<-QMkN|G(< ?}3%z6'0`g$33~*g*;Ry2CRwn:55h@?YOqvG'$E2SfB5N", "g ' g^Xr(:7>6gBN'QGfC!@uU4'1%w0DM9zz$U &ox RvA$2YNLsOXY^F*'^re{rAIdn s=}m')j/oZeV'C?>E#k<5vdDJ'ah@V@", "TapV>eP{5<wg[E?[8+['P5P%<N(F-s}#*<]*vbRfA+>-T(F5G%GxrLi<2)dd6[_>/3)dV|yU+=72/=so4_m en's0'&dq7fk`c3y", "!%~+'9Xm'%;?W^[uKpK,WmRM'T)onr$<V=<a_ia7A~iA 1cgr7.S':s;u`4J;,cVRG2n|MC{qiKu4;:h%}_obz/RHS[D9,L7~iC#", "Ah9}G@V%wS` :Sm$~~, WcLPdHUx'fsUY'KQL;idp'%N:pa?N3yqMOiRD=#QN&CZ{X6m Ng<9@93ILlZ7*s9x4(f,.5@(N_5e->R", "l6&HP,vac73LYtuB|/E7'OI]AiWh..w4=!#VwKGG)JjGvJ<#+.fPjD.?=2<.!J':T$l%+s.j)(NPYRE5d7~lh3HAG>]Z _y9saiP", "FA1xU)`VB'#Wnx>JV&lTR^#0?RS:F;~rNN.!PBY:O^>'F4oa0_Oc@aRXzTJ!Fmu~'-SUP_cR-k4mI^xKET'BE$D8itfmVN0Sq3m-", "pm?'6h&gMwlt0'4tbeQ@kp)DxbddZHdvM0%W -AY`8WV,6M'>ds}5J1J|f'1XowzJ[[9'_5nmnpGl/U(&HSe>PV'$[Hhpw;)=(CY", "2=!c9oX[Hc`!*eRt2$a&?(p@<R Z2@/k&|$3:6T*~IrgKk^C`21xlKJd>X$M93%.)|$K1L~g9noD'7y<m!:oqe`GnF?LT0=FDzkp", "k||Pwt>{}R%!T6r@2JA'Gs^xeg/l&ReAh717FIGk3G;+'x)wlt)#'1)~>V%=CIQx:)d=6S^2gOf]'v*<b5cdWK)'ya<NN@](N5wh", "(rBR;7tD0r1e[O~.2+ ){][7i<|7F*9^x*4$yi:C0gj}B QsTr`u7OyY!';YV2`c04E_^5lFcZ34)IujH:&U#ZtHma{Y~1R)~lud", "Fk uUN?PS8adZ[#u7hke=&Cr5'kiP>RnXSw`?7V]wv,f>oAsvZA-m8]y7npR~Us5&h'$;q))d;cdCU'u^Yb0f={6m.Q 9W|iG+rl", "!0IFD)mh'q[~bN*D^bJ'SWiF};)/'@5fyw-%hGkh=P@DlhH@T&=dN#]d|B-hES^rm~d8K!:if9U}Y8U^%ImI=@h6]]:ZeUH~/Dx'", "!-0^>h?L&D1a%%Ku!F)-C6wJPH<UC%BYvm`RIz'*1KP=Bre7ABFOsb.D,|1A+WoV=fKB]Y+@vnoSIXUci?z`o0Gp&meF.jl7yl$>", "K9$q8~SkMEwd#0ZP1Ep:Z2K;W*.;KtYkj02fggr'<()m,^Y:k!Vov;x3Mx~7oX<=}_*kkzkS!1_t:(D`wP[&hFXLsM&x`}cg)N:&", "[L)J'.W}}r<,g9BLO'Nl=-&%,QZIKkWq-$KQqjt'0aB,*_p(TGo@M$G4g{X-<lZ9@f@4kV4nNee?~'! VK.'`q# M30F{DViHtCs", "m=8IOZ<C8x~gkc' A:xqq>|B9&eBf9J^Ol8d=s.?;OndxSr$*N'paR&4)$J'Ey}wIQYwqa :`/LZ]&eB2<M{0FV'9r)uK8@b:X*'", "cyF&~!QQChjTJN._|c;Kh_5^5C2'O]p#XE0RW.lKd o;>L(y9qk)3G[([@vLk'5g<OQh;5q6%%xkh>[6@lBGXXoF~>+Z*okXQ)1p", "6U,r#wEV/HH=:PB':yRV'U8`FFVqdmE^mwLS#j]Km}!~I(br<R0Gp@:'oNP#A>+#GFtc_$dEn=<>a6MZw)V4Dy0.y 'Yn@d<B7n~", "|/`k@=]2SFqaRCp&y?s/2@YFsH(isXc8''!d0<p)*J{b_ A6 qyR<BjZie1q$DfF8<?A|2_Dsl?-]L_Z6+U60)29t9~%_~^9CbFM", "^.DgE9zjs+tS]/4K`XW8y)!bF$f:,zn<2?hwp=4w6uuh|8!CW)X6tK&Jk5ZF0^9; C('&hDYy`eRP~G^n,rVAHXF6g!cI)}x[mc!", ",Ba(@I6{eyM*l]mIOS<7+F-~3eZ/^:L2zPByO+g^'J mgQq 3Or'nCE42;@JUg]Ho'SE6f?`3eWUruPehF aR0yk@1poYLbw-*C", "3-tpWxQw<fji#WSNB.f sCwAI>ODv!YE}2'CyZw?EZaDgai:uMOl~/+qG.@m8gm:NJM'*49kREY4L@T2{_P[=~7!S]pNI5P~C4yX", "G_C%y}c~hH}`D#oDI%dI_jH%`k$~c@> KClvg[heeRdtCUVbXIJZZ8E?b6tj]-&[d)d('YXT@s*'pEx=,-T*RPNlHq,1I+c#DB4C", "AhDC&$s{^G/{^8SvQ`m3gD8uhJt<<{2CfZ;aSI|&4a4~]H[}q?q^_4,h5&x45F';KkNKIbDFWrLuB=Oh<.txgI.I<Z+=00JTOT#.", "']e!)t0kK;1|0IK8~+TV:/^[3'1;-FleT>xaa)p&fJ^OdL:8~>}TrG r3*+YZg/[bPadMxVUmQ,OQ^;;La'kcy3h~#+5Sx;67Az<", "++|4]1CD#a'+&HB>FmBcXq25uoNnwPJfQ2J(=FS9[D$sXsI6cL;:e'HBe,[2r=q>/ga ?}.A'HtHPk16,_4>[/7y:IQi{P.+ytk?", "B;UQ0.$tns!1N`'(pnW[2I:B@$uFRFK[^4Nv5r@g?(aW9&DPM2//~?WPt@5x17u<E'7%X@G~)?#2b'Sk[Tm B339z_$k@Yk+6&^S", "RmNf@~xOUcm%d}pg'a=g,)|F>@glXA,As2Q>gOJHx*iB]QRVFTc-{<9k',7E-|%{c}E={x6lOaGlKbSIjPA;#4t'igcjn:VpjwL6", "Uu'|o|YlneV;9*ThqIy:q1:|I$N!qdMI0~MS>>}g?^{$)`Jp!@pH`xOTbCcT'EA<=q_gt1IS7L7U0D1aF3Zl4'rgP$tT+g]rymeC", "]FQh7#)COXG7NsmQ,=Bn&r?'@Q T-o_-%a)Rd.|N}yUfVFkKVK_(#39qa<vSBB(W'Tj)q?}rAr#dM>M4'3L-`qG3fUe0cFbO)8$-", "7Js|3.fdw OUA3?wmhyi<L gu<+tG(x[`Zz'(O8F8C_%gHj]y7N/>3n|+|sBkt9c|X#Fw36<(n;~Vl'd15kg=db qzh+UiWn4RaV", "S!`>:c9;Z_cv>RN9(yRgAFrEbxi *(:<6-0HfZD;yD:qRV3a{~n]&GMFC+*OT'7Fc.A>AY2*'[[/O!tF+ .=n3V!hh1>SQ6Wk6#N", "@'8f%1,y&n`6wD|>&/jD#k)?y|Y/lCX`09v)Vy'i61vrw0Q7RQ'wcJb:&UXXXk<?|>6^+n7'kmB+|w2+1<`w<D**n&}n3>L9hzk*", "1aOn)L$h&{a@c#x<.|&UY]Ds)|o 4sP2Q5l7u@(&0r+M)rb'Y'ed~*!a5Zxnj_6.3qC1k$%`+Ed a>9dJL4.#1%bUw'-_?<+.QtK", ",;M[|d.kRZ}LZ8gq:^XENxrc<tAp/Q.P?2iPd4x;,:Gn9pLY^a*QX:M3FSKqDA#RjBKTi/-oIgiNtWbSvSMT6/kSXml[aRpv!MYC", "+DCM3!Lq'J}jcl_czedPd>s/x;+DSgj)`_zvu9un{|aGh'e/-&IKYOuoLFeC}dzDP{>uOa;evEBR<iacc{[tKwqLGi:qq8/y_gkn", "$'x8H1=[Pwbp.(i: ZnO<H,rbX+j>gFxLz>2rTE$Gh|5Rs>&w-ttNrL2KX:|S+2GK|wPVJxc') Wk**?60B`Z'vQ ,61!qS6)<Q4", "{IP B+on-m:&oCPB,d]C.rAdiWs}G2=='J3},<,^Q0m ,Z[}$JS~0jf?fmW@f.hd(ibJ3-`fHW''k9c&;t(1iF[X'M/Rts'<pJmk", "]'cnXbm*J,<@KX4,JShp'f_E3D:^ci^Al`7l/ooxb7)xFD &XvUyA9AWB*'KLtLUKmgZh>f|yC]t%.A'NB$J2qS93(M{!*/}^TQx", "bjM/^Sreq44V]Wc]6@os6 mT^l:V-mJ-d{~9A%RNky3+Rmx$s#DYwdp6D%a/XZTM5/EY}H^tp.GfnqL]H/`d-1-0f(}:Q>iuE3?X", "+8tt'_uV8+ad')C^{)L7cXDx}]o,n5 _U`i=8h8-Z~H==ZB.s.]Q'A+gozz)j[PtfX~w`X'|O,}9 _8j;B7&',z>r}hvA=t!?)TX", "3Z4bN:Z-=Myu8Vl'[dWXaoEtjgHE%{j}|x N]{|OLzHfq,y#;?E_wmCO~Ch|;kA3Bl!2M>DlnP,~R+ulE.8_j'g1Iz)Q(/Bo+tja", "cJvB86u'&0}Vy'@hm?5g'*Bi0)'D _3cwU-C%<&(^#V71`4WQEGCE|GYp-r`&aw9?Dsx%|tj]/wEOf$]hYxPjn&R:2sq]wxHG}_`", "Kjzn9WCL6Hl!wAvh['T}Z5e99$VOK?!o^!9:rRdv8'V=T28Z^%4xOb0'n_|g4JK6{d/ON:jK++9_v>%mA16=7r[Qq[gNT?T^6'i&", "k~w-1S)&=N04O&5fXl^>=06_aSM#5cGm@X-'KjHtq:gr7ei5(2N9)3qv @a*.2i7'g+>5iOW2ng@&'Czy/-x H'#4Z {#~S>,gCa", "F^eH~*_vw'_&[K{:/O^rsL$na@0WUZhDknJpfB>[^pQh~igQ}4=ju8w!*4!M='4's@JLp+T)Um1+{rsEmeT=^f,~>tU6`f@:lH4d", "s_&DyoHCh:FWsB0XEJ E;S/b<-Y;WAB'!lFezpUo{n-@s*|%Nz1^w[Wzl%@g_9CGj.i P)h@e4XV0=iPjmc*Q AnwX=Rb'6rz_:>", "''yJ4%l%<~}wU#(u]/h$Y_$,c[6KV'b6>p'pm|0n>`I<z? KT)[Wh}iLDl'nEf{-<.(me8E*8WL?o*'[X.&<4h.he'nXNE|=O'5b", "cUo0VOhC-qlHYWIr$qJ8!x1+ed9kgK{VE)Oa]i~eiWT</5V?4Jr2vcsX+'yZWJ%vF{9;>8Pd_MwCVe'MP7wW)FyEg%:5ICo<'x_<", "T<Zhigp#0qH'%:,/l9JE8u'EaQ*@5F(vaX(B V7)|Kklk;q,+/2vL`$]&~@FSW=@M)6264H~kTdJ[L76|l@9?3^s%zcfL9_Y>s{l", "~KB'l)v=a~UM 3W2a@AEdZ0SGO>:6'kaO$f$5HFc5uJ;4P&ns<NM1WPt/rKX:FYxL6rf{(pY<]R*:+[?}+y.r(P*4vClVT;+]iDM", "zsIGQ!0ehk{M^.yHGiq*>pBt_CEwsj`OX;e?QuEo$1=ax1l)!o@Frb{Ga&GqX{8>~J'y/2$G&K`tHV{Jg(pzqHP_le3hW|tM*)wy", "k]'3oKgxZRq~3VD3Hn<(=.!XShECn=kT. i=YQQ$R#t})D21d9%}:V^WnHO~s6tt6l'Q'7>I7caf0vjWswvG'?;*jw>.pGr'zMP!", "zge27jz43]xx&:eOoO7aQ,i`iA`%ZN2f~pkK:hxo9Zc+R$xf$ab^7wZT OsR?P4|$y9K{7Gum^SAs'qopO(>pWOXOK-E1H'z9C 8", "CE8J@c@'9p4dPAa3*Ei{doo7*bd;.!K*xQW}sP<!u)Le^p'@H$sxP{/_'Ulf*)A`;'AHu,.1Dq-*^U3Aji$at[**FF=R/|?ipR``", "'az-G'{uQJlNG//HlM4x_xs;%`'n$CQ~V<C2<$0izRgrrB*SUD}'inR7A0v89_0a|zFdsSS'V5-<>T4`OP'XKvF70->3NU!)xQ'H", "(d@p%&EAp=1S/Y:~+p5 %tr:_a+~X&~}3ZJ<6!d/L9I${d*ExJ@)'Qkdx8.T;u'MUS,DI&M>J.<@tu@VEG'Cy;B^9n);9/e&pwxF", "WKP`<Z$J$#+s!sveD;EM,66!z*HO2rI$PJ+'oNu8:) ai|3c>54T[&!Ggt}&SWyH<@|#A(KeUWG$:_G>cX?-UY(b^%bEuB-,Q12I", "MqN'2_9w{C(W[q>?!{J1IF30x^[XYxk%3up)'1'A{dHBI,1Fm N[H|TGGlEi6tQ3iwyiuZc=zVBxRt6.Q5/J)x.8wUF+d|%%h3<r", "~f?'iX%zx~ffFR9z3bc0N4hZD-N=]wUiH8ZGkA1 hi~Bk(jFS41<X(-F.OMAl@h>];oc@6qG4o@BU[/pH0jNp(!@ndEhA@o'C]|O", "gJC#a@IUjKg#m'tl0_f|j3!Sj@a5!|*}KuE-F?BUcHD*)9$sj&ftFDc?gq%4Ll#7^T)tpS=Syfh*L9rMKpO'^lg'ejL{;L58+9eR", "#~{$az-Xwo~%fg[TeP+wdDU`/di5V1%ygX4xIHxv/;|<:lWqR}hkhr]M)K''3eLW!t!nZ9VImoCwCb_ePQ%s^clEV'(>X)[:&54G", "oW{pL_LUHVc~,3e|CWo4U`Oh$<o/@#W,j1`{E-AKTyp8d%1l^{3lKSZY)cB?{?-!ym'i{(lNO'$&/-0)HKE?|iwS[1&#N[-h X)6", "C%24)?n ]]b9:gXdpCQ0|qr6baptt-U{S AvPNUN?yY8x0k/Mt'4]3!lw Y@io*`6WXj~T5R@X.<F%ctM'lcDon.P&'|Ef5u&3U0", "/=AkQB?L'cp!+$$'6v6Fe:*KLd1 )M.kv-g%=11MN} Hm'SeKi%,'Vn<P3(o%?<Cw}LkN8}*9'f &-SpBUoIZpL2i.KD0{+jlo#}", "Fs'xf/^k!IbZ^zGqm/96=[71qyOrk-_JWBoOT[RN2xSc3f2<7NDiC][upC8iv /'}-Z&)q#r`(t;wg+%hJG-&R$A}Ip{z4|OgCyb", "~=[DfSrp/X;pYIag%[0$jK<]uq#>G,Llp{z5xLhyJP6h.v,9XP/f]h(o~}dyw!xBP>'~KrSzK6y5oxg&eGQzS/'.;}M.[(^'z`kt", "{W20K S-RvmrsJb/Vh6p!b]zKePILNBrhSe5qJXw&c>_/nz0'f_q69!J+Cz<AuF&T>'~Kc:G{beS`l~.3H;tG$P&,<lA~V14A'SS", "`D''l<T+;o'Rd.v^>yW+'F+ZcID7{c*aCju|A`6s(?r&g^t4Tv^SqyQ,Wnj,lwXbw|j%Bd*obeF@Z4+,qm`|s<xx7k]`0p5>R|*x", "N&N:>q-h2&h2nd.vDQ_%`B5]qQA<&$6:YOu}B$6bvt,'8+'N[3l4w,Gl+f' )ytk&[96kHK7W?Ur'lc&F'/Ou&1A?p&JH6VEmfWC", "HNdBMo:*hx;G6O7BrDr<UXlp_aK@,k3EYU(!'@$'u4M+mE,{6Tr!#JW&R'@E3cnhj-AE++5iCf`zFV%%~[r}'2-s3O_{Q{$Qv+Cs", "^$IHtTK&<H~<WX0]*&~*(/{A DCC1 IbCGHA!:Eh9R3~vx8DEoFN~d7uz~D.{t yJ@s'@;j0&'=IJJ~ZLwgI[gj3'K`S-b*}>!6,", "xZMfqT`90&j'i p'<9q5r6Gm(t$-i2OtY%Q/{'<y8~6:aulK0-!k7VOlmJ4r+` !PMUT4|m#Dv#s_s'&a{{O*8;6+S'Cm~7;iYSz", "_=.H1F9Rj:GYC`D2Bc,,@A!K|*hn&k,o96GQAUsWFSiu+J20/O4<sVEk0A]WLO{GGJ1K/jX'hGZBSQRG&uH?2rFg>8`s2Y*BbR{4", "QJy`<y17y#auEZCN)Os>dnp}kP3kVRQO8Du/{)U8E~/yv%S~|T5nBH<uw$iX/%~%BhKVW[.LD4*HiHRBJ2=I/=}'d}1cxvrB#h{`", "oSQSS=q.fGI26xti]vU'njf5Q5mXe#2oO=(5~pO6]nCb&dV=F8~jiWk*'pTUNQBE!?aHj9w?/^*'y|9G/_K8JMJ`mVHCYA{|kn[6", "j:_(s;h8iHNpQJ$hQ-Tz8Rq@yr#1T fL dQMaxaxf9lT@TUo jIkr?iYg'x#4L#e&%R169PSFQ6ajd)g#-`U'=e]Tu0(@B(9(S'{", "tJ*Oc-m@r;-HG2[oem/-3je!YDDq#O+)y-!~J=0F!Kw-ij+_@::BR[L$,W}78gsgz#^DI82!qBCe7`{moTx]CL+rf7J]<uCIQ2h?", "cKb*#Vo8[ <Gar6w3sN</*+~@w1Q;1.f*12c=JlBLt,v'2F%yshM'@CmjW_K)z87cce;f_T49:K!X*v4jcGeu2ID{m'Nb0'K Sci", "|m||k?eB!++-W97. b+1hZ$!Dc%$_YuctC8hNuw~xT*Hvqwf)44U|: #BU9/<0C'(9XHz<[?$l5_87F)1`Z%MH8dgSH(JvUwh(u'", "JD.JH+WW{`>'tq5X;@QsZjJ}vbLSa{U]'-O@pt58L.{D2K'@G!QQ[~Vu*MWW>s%h959rbOOu'w1#SyHimfxAH8B~o OQ'r_-&{WQ", "a:s.,(*uCCG&S!+7}nsx0AhBMP=C^fcmpN;klG_5 {Ok`@e RCzSM[XKA6'ITK|b%FDa3+tx&^8*(<X^F5lFr;&zl.qP<L;?7!da", "t5u$/L:lw;f@T),)Va]R^KC%[ki'|%w@*^'OxOLF4ghVxtDAs,`N-XJ'kG6v`jB'8m^^j0[py{~)]Z$:rK&@4q{G}8ij<'2e{)6M", "[*G#E?QGilo)usghw]Cr[~w]OomUAi7?Dm>EjKG@&0Ux^-UhdBFN/V/1MHQC<q$JU=.uO7@dK|Mm'VoN6tqhU`/[7pq=XDrt_bSD", "3.//7C6pzuF3*`'|$qqjE{vzvH`>A>n:fR`K0JdK( 2ngDZ9'MaKL&BR/wfGn',?2hnJ e!;KoLjT:0VxXS%eY]Z6x{amHj/5jh^", "Hc[jrr[,)'r{4=qCf#_/6h(5V9hbm9=$'~c/Bs>B[D+[Q3O{&Lfy?Zwnv^]6A8MQm2Fc?+L/Fw/IoZS+s9#fq'r*oJZV*PGs[SG2", "Y+Z+^7ozc=4)qq4S!|`gJija{! L:*J4c]u04w'1cHMR`9cRuB!n@;sVDYCt_-:>D1S!aZOsmqh|,o}K=bMXFGpZ+Swa7V9fP|0T", "LS<=!YR O_];S qss=0{h+vBlkRaq+&v,c''wsmGmTLO'Mq/&gvQxE5nLh~cRXgXrH6!M%]'M#0hK}q>4wO+gx+M(%c?&-QL.|2 ", "k4OC+N5}v+Ew|x?+_P;l`^!d?&t[F;Cm%kPw'4?$!qE5'='(Rw-=M:0i2+Kz#c.yPby'-8'Z<&BpM?O8)'18veq2_|;%C} KXV*f", "f`mfvA/x9)__t?X[.Wx)#x}M$5*y~Dgrk5bd)(y(6X+A75'f].18LE1?1+kg%@s@cSyVjNB|PV?3}j[I9PK-c9d>&}F2$/v@+w-[", "}#<=63Vb)|%ZSvJmn?C2qFXt_JWqz<'&FkWusmxMuKzD#E4.RPs[5=32JYjUN)EE'7Cjh(]Xn$>i8W2 Iw#8QsNcX_6rO9(pn#S'", "~YBvpOElobx.O,eGqz)'P%P@Pm&aaoO3!j:x(%71]w9h#$,uEt=bao?:e|=^)hJq:}fh+I6QdqNMF|!^eEiSZwTJ]c5(4G]DNBym", "q?v{v4'ZM8g&VX!c_67NvyM4jZ8k=Tz-tPWG8zoQr6$WPt}D>@X)mj(=>qIM08psyB~?J<$'[r}pgHb@6#!kNe)d9DU,rbOJg:~j", "E9HV!6^f@-c}GkUc;/G)0p$7;eo<J&_FOAGXg4b`>A_:l|2}/3$3jn8A_5FzzQ@GjBF:$mc@!#q$JU }t3k'$sfi.v&M|t$UNS|Z", "3Q&VaYf'44:2`nAS21{'r7iw9L&?%#j|:`N}|][Q8[V!L-Rii1'/C'<_:EPd*8*!,LmbwQw*uok2Hk5@OO8|B3~Hx&DM| |W=7p]", "qTwc0Y&%G7BH<'(p'y72*'Z+34}f[K-%Mp/m~{RRT[SB/YUQ_5g%!a7zpNRCUX%'/O)&t>:ze/tBsq~a_bCVH0{4A?|V.zUiCsO&", "2czL4m2 &'jE}q~Cc#k-@/4Qq`IA<s|n20PJ2dfxg'oqrd]0a<j#9)p>{1:}GLN|9xjP?v'0B[tw@_3yB;#QS>*;`tcSU(z:F) 8", "]PUq(a_CTmheU`|Fs1H3-gRvrSZpCZ;u{]!;~Hqh+YwA0Hb/yAC xd&SzTZ{PO}^kEiU5Lf[9sXkYvIm.3PGI'N'3eIA*5*brb:'", "y7ns~&cgbyC7,E`yud19HMF@3jP3+JnrhM56#:lTa-U4mj!' H-j:89!BS'h?-sq<3^ubpv?*d~qMBP]Uv]m9LQZMj{s~~Ws'Wd/", "q9de*2zMWs97PsZ:N# yp?W-(`eo{=CFMW,P56@). 65t}Ii}'>o''Z'+1/@ehe(@i`)C9UK=FlIDjL8'<;aFztikaDb=aBnO/`e", "2d+G0OfMdD![zrS.euEG0>bo.rQsa72dtJn)w{# Z;kQ@xgd*FyBE~W0>n7>`vO1*1u+2x~F[{3M|HCW}r 7o)_YV(%fQ#k|H'B~", "uvT?G?pFWekP~H6N#<a)g3_}W@~-'w`?|O@w2JlfIV#[)!?zmA6Mz+Nxa`t@#CP fjE'FYO[Z6''d&6 ,QZ7kp`Ix`S2C{OjLLL{", "Hptc4iBW2.tjId+&D|LR[lt'( X='cnXp'Y0sH.Bm:K^UhhE'dnSpLe++4:V%i'TW2%MEs'Z_&lw#37$8i5^>|_#rc~@<D'iP;vt", "R,:8ivZ 2yM'pe,3d?XLqF{=,[^R{L2%njH`)@f^;{9'g4?WF{9Cu1tZXwG[#enXn-I?qz4QsXRn8Syp>+./'T(0PIG!?}% 1vK'", "fJGu~JhPDOAgb7We,kf(sJnMVNu@*7ttS!'}>h!ep('cw;*>1X.{n+O`,fkjzd)Y:#'%c}(hsZ~1b_{#fKUC5EF/ds*'g_PJ(uC-", "D>9O3u'esA(NXDjDID]jQ:uu4LF fU/r=)1ZU_7pQJ'kk1(cKU-6?na*^hu)Fh|[^HF'o*G;E}_'kTXT.Sik#I2x'2dUR'ro*[y ", "IS8}zE+!'7BZ{wD84#.bSu8]n frCC[}5BihPm5so<~!bG.&${A1a04a.I#Y_ZDh& c'$=5|$;>Bx1vYCjMn-Pvfq0/s3P? T:cc", "G#@,n_?Y)IUr!X?zO:TF_>pl_)h%GV=VU}%s}'*4W2k%5U[x{niK=3XQqIxG>ckioq4Pof5wD<jYJ*Hvckx2c:q'12 Z%<fB|cu ", "@x(4on$6;H8kp)CqOg5W=a@pLwMV'Efc.LMlZDDFX.8tuM'-Y$b'oJAWE'D`PvSo7.S2)|!^t(eN<qd$z)_nu9J.U:p~_`%qhGU6", "+wjZxS9N%z3<#+vMs[R5[k+%_F'c9t<pW'P[OpGWYqs@ oTN'o|DXo!]z2Id8'1>t$E1D`&_dz+'@_}D]DYF6TEPc3 M/!x3;5]u", "f1$y_aCp,K[f%tNe?cAZ?<1LQ <hU@7N@EdoQPlCtHa3.Xfb`xD|cHt'[RmQ)'X A']1M/<{}Cpmw9wvby9>?.!T@p(.%CZ14kEb", "`W+Hn<mG8T[D3eg2P[hUR$pr()g>_ 6'YR!U:!yntqj`qN'y8gZnUlZ6&o2`)`- ;^^:}Y_UEdd('{:r@$,'9O(b2d)%!.N?(>z!", ".K}Nz^B' _=`pHD{1)4KHT/Foo2s/};7&:[@JO+5rk%}0a8}?0uz).}mncczJ)wvjvQPL$P<`OzkF1K3{+Thx+ub/ (3Vg3!!'zD", "0Q40<?]Cyr:]0+#-/fb|LB)$0k!F,qZZJ70Q@h9/sm{ -CZo.=Qd5RQ6m`!Czyrm,n?>%{icDp5UOGEp$=wef??e|plU~5OSd fa", "3d`xaliSD%C0y>$f+!'K*cKp^f|GxafQmS#BXzZPA.QG'_q,G<%l|6W9Jf']Nn$%&kz^'p{a)J*pVdVX3G4 u2n(;|`_';]bw:$(", "WXwp*@ x9#/O/'2_Qzzv/gv5&tB@vgV;R5*/~&Y9o+xZ{+'eBx;sHl<QA)r~eST7<v_tt;?:>'E{GawshYqxT-`k*yl:#hS|auKw", "UX 5eV,4bZZ4s(h'u4f}CxIdo-;%ZBF~2zfm*J'T~}AKsHGxILGqe]a)5A+K8?OlIJT4qod[.|`C:Le(b5=4xsLwrOF=kv>,moem", ".}LwV!*o?8QdfW)P*|XHPa>5:.bKA9o.n;l|Q64xh'[87+n[0}O~=f~+%yeZn|AbSDp1MoNeL25!h/|}:'4,W.ykZJeBu#(x&X_C", "Z1GJV') e4sf?Rrdi1m+]}'?.64~'Ss+mxO`A'mn0lLZ9.!t22R#rrGOwq mc,L'L2SNV6$XpGTQx6;5.vJch7&aza9uKI{Fu:[@", "t<ap{'eo/v<Q523|3Q_^{kED{7@^hhZ!>-5e'Y/bn&$kVhWn(l-Hp_:s2Q6C^+7F}=q1l,DgyeQ#8&tvgGtf%(ZQC1Kw-Xb#!ro}", "ra:tjvw',MJR?'#3QC/o5-/dgbu[GkM6Y>NW't#@@NXA~#BLYD]tl`h63o(V?;^`2G51w~zO)6nO2-pla'##$]At9YA.;8k/A5^e", "S#S'+!Cgc95.uX&87RYX*O1e`k/#7{Wjpva{:'xuOt{67{qk4$j$Vl4vJ('|$g]h=xXAycw)d>:-3`_V3ag^(4}@^u'H&>u5bV]j", "f-nOQ_fCK''vgg-2BVV_V_$Z6awtqVV^Y|%{S6Vn'gqo|;_&a>Y4bCi~d:(AZi%sZSr#`Gx[nVly0hTP~+%czlXWC<kS^4Ptu[rd", "IHX_QSnXW9#8f|=W'O~UPCD+@dX/G)ZjK+j/b`!'Ol0|2q!S);PUbNC@a-]<n!_}YRDj= ABZoKF!^Bj+X3RcB8(>vw?3_jMH-*u", "a8%g`(i<c]**'}Q?@gE+B/jdjq^AvF<EU9VYRXSli f'VkbRPUzcX5iXYGb=kPcEfuEM-x`u[PriClo+TjSI>sCY2eCN9dUwz'?U", "-]'-}dFqF- '8$x<QQx)4]YIss /(EiSc'eMHE|/66MyA0`'{[3r$Fn,-;RqY0:zF-VO,dI0bh{PfEio0s{/9^o?1.#1e,77X`qL", "xK1g_vQ@;Dw%kC1I:sQl;$h'E7q)-f%(5yu=xUx@)-3HTvX.^pG!<-Vh#K!S!3W{h+#.,`cHNe3'N#NPd4|Jk0ed=Ar0bi$c|VTV", "4kA2NHT[BGz,q9ieQ'QGUWvKGy$pq&M NT:|!8nsYo]az!?>@FM{@Izu~Be.*V~j@?5aSg)Bu?REX4}bALS>8JY@`Ev2Ce|'j4.&", "E~')3=Nc'lCCcMnIB)Y4XrazOU)>EcNbY 8m=fnY6.pFP+0'o8ck!2|eYiY;'g/MK@ v$%T).!V^T@F/'D:RKNB=^HU$4slTP'8j", "l>j]{ _^qCYN3^V@P(_'b#`_3Jk(:lL1m0QC7qg~=mSDpOirDC;S:!`/XoEBMjt&^~!I`ApT(<Togm`tHJ}5kY?ta|m^k}<'bY60", "(jJ0k=]lB;uV4V99M2jC=lIOIbbNb'n>X>('!NRp!,'xNKXb85h7gwe^ze`9*)O'[m)l31WJp2H%wouTn#,.c;J[*7/NvR`+lEZ.", "qU'=@r;RVG5QDm.4J,`_rXWMus`{!`&2Ade@g:%v4u:Os?$g6p'T8fMkUD|B3`m@}`XXC;'{DB<L3PN]d&NY]]SsFE)cKJ3oF+hx", "'k&1/g&gq3<cZfkjzG0a|8sYY2s)[z'O&j*/nbs|'S}vOU1fx44&74xr59AN;|-0)ca'7QcpbFWFk&h~HnHuM1T/<b$i>)T]'V%~", "'OX_^j?]aM=@-B?vvG-e}OO=(cHMXX@OS;!1+)]+[vR|xE3HUNc+FLmctM-t*5])H[Ck-6m;Q6%0_*zc |%_0paIwZ?AqpEW=Fh_", "?o*&HxFPr,~*4)':/YOXQ@&6h{'a S_AM&mI)q/`W9y%@T]] 3icseKp-'tMPbx>Fo+u 8wwCvIhd0'{cAz%3(6d/b|x|b_xnIPf", "9vG|9?XQ'VX+9(_U<DuXFV{E+P[I]Ic7lBNXq_d8IuN<rprJ>Aiu-dK0m.4=<5$n'/,[Zne'8A.{k{j=>_WigS{$ 7$'IppxJDVo", "$$X?2t`MF|e-a`#$G6It{@Cuj9Tr!$/z5Lb#5f]zqLec[B$p4n8(awh]'$Gc5mUk(+5'F+Hb6bhaFq'<kdn@^,lkNSicje^C/4.2", "Y_t))v,NGwXmtd%'o@'a#8f%E}_,+`f'#$UmK1@PT@'AWoJ*(5{^?~`* #x>O{C=|H.b@'|Mo SGn8f>Vv'iH({`$M77`;aJ8&@i", "lrDgZ)(#0:I2aQ|H&5^>06Wy[{UO4^&..Jss/p]-zDsT;U3cq[9Dk|2L'2{zyz)m-{@FPCvPq4+'t41L hUqy:[^@!mC]&(M#+uW", "z;*aUpA(S$)t'.V?77egzievc~iB^%*PZ//I,^'7_[U}f/CX1$P3YNj'.zxfSr= ij?PCrk'H}NaKU<I:U6GT~&{vo-hh+J'<GO[", "lC&q&'}]H'fzJ4Ji7x3[$NYx'N~*^kNxhN-0v3KgO'X|mziK'H+i</'d_XDX<#zY|c0i31p?tA/SB'}Y%_%ZDd0y;*ZLI:v Fdd3", "b|~%A-Zah@'Lo.@'J +@ss6A!Q8uM+$T,-zNG3'qTR$Q&rI(N2GyPAX{`hs3dO(F*ocNn?4X78yi^0<`wy>A5{B^7VW'IC$6FEf3", "HXQPine*1RMV{a&|c [;R+'n48kZDKzWn]gnzGMb,y9N8y J~Imbm1A=8ae['#N*jE]2*'|[t:^e@>v[9gH.44v/KB_ )srTIt>{", "'z{31AKnIywy>M[|,gTOT?%Z=&+ s'|]dpouEf'[kK'4M:R7<<~?l3&^'|+;!0j-eQof|S4MT?ZwmW`k-Yyhn?I)t1w4NdD C$cR", "zg0y?gA$y@W('!#}v0a{s!K@v^y0%|n8[Ot<q!Y)OpnHA_y%cYQc<guh@in4xR D>9|stA|wPj'<1Bba 6:Wphs/n+otb QZ'M36", "c7rWy=4hAU>Z3 e.<7t&K1q~<<u:b9'h*>/*'g}'Z)c'mD DoViG/&9r0D'*QvvP.F[8ih[,=_YeT.RPU_Jr=Nmk:/awd|nBwZ?/", "%;}nF?/lH`SxCsQ%wq|HQ!~MBBV@P5'|(EZP(e7hemA/f'J8Y$w)-#g:e/m6hh(Lk99DwDT%`:)pDm+zE>8^Zag`Q*UKFybMbF3b", "'LKC}ETSc#S!u&tp$5MeN,~=fNSUL,2&6nT)Ky'qh:HRa@oxS[!XmC`<k5j.s}M+pY!8uedC9g8MqVOUz2y7iDFk8qI4~QI#[vYI", "^R&`Ax)ru{0IFe88NU=)Ss'A38|P]+VU5|13'tp S~kwT?0ha(HJgC~4FW$Fi,,Q(2fL<tBl-VOA0h'(Nya[r}W'r)Y,D^oBO%j|", "ExxN'O4RqE1|'<V'kYCs<|Tbl'X_g'$?I*[R3L`c}vqQ8>cbT7}deJS*Z9QKT(v)(MxO01$~RM~D=vFHDl$P]aD`'JA42|41yaXA", "$Dw%HQ*nV9>Evmq0OM_ 0Ly?K3fWZd/zni12l,-8,9l{I-x5sSU:hP'oS,*fYd>[|o,yN4<;jF0.7pWc$S$XQ1NUSDgL5$a~&N?r", "VwyETl7*^`)}&Z'aw`/C/p7%dx* euy!9&G=6{IMQy+Y,qv:vbm-s%[Suk{0r'k>hknW.,uDP$L#T0s/bC`T5Wwfo;e'!3`yE<u>", "|ZhEG:CH<{=x<oZWj='?v6='s5OPeHulNx)|R0~2bQ`>!w57'fZ05$y^-0q-5p>B'Zpq2KCixpy(yAIRyk1;-,s#V;:CDqj1Tst:", "!;i!jM2Y*7BigtQ54gDU,Ed+m'q=f!h]P-=jvn04lw%C+k%+:yc'Su/?qEna5lFBP&}JTsG#b/#fLxcv!s?'ic.b^[X,zG%+dJ,8", "t=CFjgUY{AQ]X$2l/>K%=n=`/6W'5=8YN@/*2JQ`M!y^^A5{7^ew+ZCZ|SPl'#'Q]2M/B,B`:qxaXN]&>^C'(i* j xzX2ml=c0", "<_<O_7EC6`uu`25^T_^x6aoWd'n:j#]IT^jx:{n;GN5#^TVYpHY%g9?a!88s0J1aOwHRHz'?=u`c;| -@Ux'I'~m1l?pQ X; -V~", "3:)~hl}pc FoD?^K/ePt`dahO|q:Qz!UIy_]t<z?E#*{W^pwOY1s'loR(KU~GCy1;{(s#lI9kLv#3a'Kv{hlNv,;oq~:-L.H,>&g", "%mwb)x75YrJ}mkgysDqHlK;E2^TGj~8,b@tJM:O|w_1>/A3IA-i8h?MK&reC~,@5P7Z(sr7}|~X,Z^j%>5q(%|;'1q0*A.pYi-b&", "'7TY0*V%2lI09y[^qcI'Kp$:PsSuo/(A[5Le`-Zm^*F3_-j'vbCo,T'Uno{wr= jOIQm'?CAM,a%yI/BUV1i)fsM$Lh7O`&(^9&^", "_eU3:;v(BG%'XmdA[c5<oQkM)>QcRC&%HRMquEg($m n+i=]JcjP*9{hCpT3Q/ZMB5!'?%T]%qnnOCMx5'+4-)<+ekgNvA_MVw3S", "X`dw<*05tA7MOHfIjb]!TdtPN8r*wd <{L.8`p;f5KO[zLX+zldZA'<+%.7*&Q$V7!IZ/*7_u}pr/pf'cS<M@U {TF1%%;A9zo@e", "ziQP72[6cf+IO(mj2'Sbyb8SW'~'k'f'Ra$xR<EMZFz_h7V);>#R_{Khmmzt~Es8xX=*3;'oGLyHw( Yy%J]#IpW,6YG+;BytBAt", "h&`U:7~}'`&c%)r.3M.0(}`UP.6a*mLo'Z+mvU)0Nq}^2muxrELOKjnp,2euJr%1.bPWUyQ7|s'z_L?$c0nk]b;YG|;pBH(y75+d", "Z0'NhHFr'|fzI*>~~Wc&0`;r{CLla0C;N0m]N?d/v4>-o<Sp>L_gYhfa'SO'wG7ot&~7TV&Kz@h~/1o,c7X|EdtW.SpA5}>sf%'t", "^4d}:7JmR}yPI=6) B|x=hrNd6mY-&1rE@t#v]@npfFcjGD?m-Vq,426tH2Tz5V665W`fuYqX{3vQXf([!0RLBl{d0majQa- ;i7", "`Dg^5A;cq)?r&IG5ByO5!A+-9f6TL=a/,%9z<3M[=':w.jY'c{LLL!(ipk91HT07L1;)=,!=&OM4%eqdQ:gEwU{1xT9i-zNjG?>f", "G*M5usC)SO8[oOJVO '@AsSpuN+oqH3bP/_V}U?[5v%7!eopSCQ%Q~WS8Di(jL% E?IP/#W<#oaeI<SdoHOmNB9!EITJe}EGG|o)", "(Y]NX-hb1N-VTJNY}gV~`GNv3'NFya'0Rh4F+]~Xg=5'0(CpGr8c&^tzl@'YIVJ3,=PX]Y$oV'eBSa,[Mv+,65FX%RfpOb}hx40!", ";C?_u!c9^CR}&.%cJc[u.qm#/C-/;dgogBezP:P4bgZ3f6!!dTRj<+tiNSGrsHF_R88MC()ab<sPA3A9*tWl+EfFDfVkolK;`'[3", "bZ(sJD?TEj=Wb~>|Ka}6CB#F,:*3=vr>RWux4(JSEz!4S!}8>/zl!KG#t~|IJ1Wm^c:YSMbn&|<D*iEi@!4W.myQ.8h<`,R&]?LG", "vb6?M`8,<O%>.Qka[c%CX9kC;5{zVvC<AiwR#8Fu:U?3S'Qx$^/6B~e<x.''#Y@B)yf'P7~z8Np28hotp'+j8'+x(}>:.Y>aAWFq", "kuRe&c&7bzALTo6sxXzF}ceFWp+|P<><[)ShPW1BM2]4@vgI6l99r=ZH>/P+{xuV<9ZY'D{ULLGFX^'7e_vmVthU-#*lHp.d/'Zc", "rAzSwAAfp)JIE`h>b{y)<b:&S[Lg#vDnq^in2hLe E'KQ&jS9'kzrhkY)N$nYS:E>[_CCc2}Tm& RL-,O;Q~gQ>G[5/D_>@k^t7e", "ND0f5wUmAJ-),7c3y5#|O,*x61SB4P2khAIg[O KFNUab/{DVQe]W;EC^k:3r;RrA3I4?`0wDWFa#;J#>d(u(cxuUC}ny-eH52Lq", "*P^-VG3_PDRQM%cQ4|1dVLFi6)@:?4{K1{&1h<{E~Q/<8%,m#ld=??Znj-5>'&5?}JJp~O>$~h3i1eC^ x&5uW]+Z;od!tt${RdL", "mCG|$I{-;mp[_%|`V?):(+le)_mZ[=83;v-%r@4VWyjx,)gi$B4|FB?rf@w@g#MpP#'Mw[YU?}[H}E75)*+lVCJaGnDL+6?`tMD>", " j[uK#<FA='r]R7JUdV$aGL[j;,(/5=UXsh:0lGfgr7X'b&3#t4|-21VM<4?pObVo)Np(O36@Yn@}W&r4kzlw/=;:GneF';W4p/J", "&)KuTK}*k3|d-dC3G{2sDboBB%e&F_sYKI:/1,.9{*6F:sO9-M*@9;{'JMHK=uA<p:eu*;Zw/;Y0XC%Q# Bbl!?R.,wh,<PLE?8n", "7/zAkF=[`t<1#4e-|<v':$F6C5<AeD.+0(tmeC}WPif$h&x^AsB'X_5@Aq4E9/hu'P<.Z8GJ>a,kf%4L2H@ j(LK9'j>1WT_(qUv", "JZuk#|c|PL*6EtS<G&?yip1HbF0i]r=,e+S2o5N?X<IZ&68V4Xh.C<L(0W@`DdAue'%b3krb'wz-n[@i>jqX;IxgXr<85l$?TFQ.", "-LHI%<l&vgyZpnDqeJX|Pxo,f0m93|s>(}`CqANUg!eoG60@'W'eR)Kim]2mJ-s!'~E-!VD$]jT&%fq!M'j3QQf]!Mt$VB=V,@[?", ",' mf+s+,z~Cy]EI1dfE2{P}5ZD}/DHe3jue$1RdD>qKDm<h#'mmiH.MrR6ir<DM5hy/}c5;1(c_dqk#2BjlCyuOGn1jvJLC$RW7", "b VW'Q?@,S';O 'Kv~yDX6SrZf'%DvG')YXC'uOF@RSt9I=f$>Q'8T,2c&&>HYVJ^~gbZ,I0)]EMC(0POy *'D'Vuw]B;?_Ghzk<", "?o63Z&A[7bP3?@<sK~9OIj;*5;:E#8nk$;A8-KzFx~nb#nAdyS/%Ek|>To34%p8nuX!1iYcR#I~nn)KjfaT^y=s5L@:U+Brnfl`*", "#}hO~zI*jw92ndIR$XYR[6cEJ--7VUQQqD0(~Kj={$^?)['+kPPtBS/p=O7}1-hQQaB::i|)H(K)2-WJQE$7t5O&gdL1sE0'_49*", "8v`;EzvSmI!`kQ[3%; F''KcH-S>K'^'^##O%yzQGmCVTBG8+E5di]dW1-v;h/3RpfkCq[>B53kW?.7>#[X|z6u<:f<*F'Wn!tt*", "-3M oVJk:v%~q['}H|K{z*pgeFG+IyCP9[Dk-(&w-G./KJT?B')F8)>Tzp=cx_VA6Qz$H5P]r7n)VNgF*DJ.KVU6l]ZnvVsMoMC#", "=aKH<f1/$mp',gp.8]rC,.C?*DT(87C''0aNA( (IB@a:VlgH)<Zc?s~'PE^j'''5$A.Q['Isd^J:%+%-w9;,OT'Z'-}dih3QsGY", "jk)-&$An:EMW8oaqXVB*L|z8}IS*&_ioYQ{vp,> b!]'c-'W,QKxXj[qdgYP/,~$UFS^b^%'LV&Y5@L*Sx]W]c]@''Q0&sy,5)3/", "tyEU-$< t@BHd5h}6=>8F~39=#$|5UZ<N[t@NPib95dEsh&$>(MiRP`XsEMGsM)z!dYD7%4f;UC{}`Fkx<<[S/fM:`i,$ip%1t&v", "&M[>TX)x6QXP`jrY_1E'S@SL8 vT~|0sH#^2_Uz1T_D,T]a:T1'W'[dlHyShzd+<Jq~`f3VUB_Y5><{Ow9Y|4 WzP~Xyo^#*&^Yh", "1>'K8':`Kmv{TL8;X%UK')DqL?n($w8p5E(Vl>?Bc1ec$C-cpVlM='0G!k# uK)[=FZtPY`1|OcGoiu/e JQaPa6;)1n4M Qm`uP", "xv{Dw.qx[WtY2FTIOAm>VASC{vL'Yx|RW?:+{%jLLt5ysd,LvsJNS_ ';;}'=6YK@,m/wb0u28hZ$.@r`<f:]Y~];})Q$D[}OQX2", "{N6':(le$D#qMo(BSfK_+ uMz#/PC*ouPb(X@-GzvXVbKEwB*E/GCp&:>.,4[C]f)Xk`r<(pX<h9:m!F>ewdL:hxD_@Suu0c;WTH", "XXS-O3.s?PSpm}+XL|Skeo'a?(9Td9Z<5!t?IgSYGsp Iy)$},C.N0) M/F%~F#ui+5*!XdGZ)xkDg'KC&qy|,>_|R2lm*9~,~7C", "BqINd?KL-gVY+P-.(9d>P7@p}Ws7C<aq6Ibsj}^D3jeF@!AGKw'rr}tB@Kr3@Z@Hgw4B0jh'fI)Vf9j$'^_5!,~G-Csk[_,~1S.u", "k+.|frlMM3*Q_GA5,?.;w:M?G,y'Fm$)w@5?1Ux=K){4_r-X,/kyk)'v10)u_:2;'zzxlQhKse4X}kv#r;E]'nz5PZpLflw'C:)a", "uNOta-Qs/sK6YXw*38krbZWiR}Jw;Q%9Vad#eXt}G#}1U(kJJ']3XLo|$9f6YYPnxE2SR:9tEV-=YX8 i1*G*N(9i!qHjE^n43qP", "x0A9/fR{u.-y>Kz7n&Q'E;9LmB3pE$_c@D lC{k[kD'67X2%`}4,-cbUx6xNZvp5]vJ['c{XTJ9$1N@D<jm30kq(JU)(g@~{'{l-", "~zbM^wP=Gh@%cI+9gk|D!C?s;Y^pHL)JQ0PbOH'AT`FEb EMRTmE(}JJ2`QYD&=w,'&I{3c1b`oE5'chEzk'&dc'XmEE3a:FNrM4", ";%4g':Smn^_{XmO`*d}10$V%MClO*}Csk_zJHYS2!uQ`Ij=i8nAgC3ux(KtKXh;C~0B)R;DwYvMj5x@0wHah?lbp^KpO#Ds!?'.#", "mk1(umHO`XXeCNQOR^q)g~QEOa.5f(OErC|I+}k'dLLm4D16T2}jhVj;p4W%F'O{yPE5Dx%>i21bQ(rG*Ep?^9bBLPR!ID;llTex", ".E&I63$gj.,I=hh4.A$C:-9ir{Nf):S.1n)o[%:[$mSk@S0q'vz~|:B4]uzI@J3&eM#BssZi548yA=C^'+/36|k&X'*I7CC=XC}/", "9OmN#L5EQY>I[wr@8u/Dd>npkGFF+mmAVYj(/,%dNoQm {<<8tt+?'C_pS:ADJd2eP@TX4ZW5].|,3OFHhPoLQ-9v]$2rE7nj0$B", "Sf>bj~7O@`'DX9bF7nh'x1?;bN>wMGD[Yt{&l6 RDmupMzdoLN<Z=NQn@a8Tpu.z>_MrhO&*>>D0uH;;3qTnO;+)Vl';c#{rr.(X", ",1DTIy)o%A'qIC~G,%Tt4+ 2)O:L>)P33$N3dTuv'{UcwLjjf=FR+V$,H~GS5IE0WtYI,V&5g>X4~wy'{0d5'XX6pLx`EspOm;:Q", "?oCY8|3+]9q96R8/^aGJ(O;;)OI&<Zk.'#<|AD'pJmT,'JMR$`S%p>X7'So'P?mi'6<03x=cqV$faIA_MDDd6rsI7y@vRJ-Ec</m", "wD.S8m?_[f:rwK?>tP39;6us^(fG8(5)r=Z~Kjc>E]ZQ>BSyXuKgd7|z'kT`]n&6@X})'^gTc^5k)A4Em:.'6'nzk8mt95_(1$f-", "yf<^`drXb|o9<)G36]mVe(/!sM9MpDw)pA;:}SJ;#B.WJ'I}X>5G30,u97gC8b T+Hw'vX+Fx|*JT<|<N|[<8iUAZgL.3v:PLq|)", "jL?HV?=k0M/N_k=HRK<$S=vXN@sGet$$*t[5s&c8*K`4%kp^.Ir{z>@f^B{&$z')rtOpjyN7Ks{@k8!gX6FbQgzmJ5]bc[G^jsls", "T9P4Uxnl=]bax=I>slJabvJ:E,#sfqL}-9wnoL40/#)mC3I/'E0p=,*Q>l9c'<`<<ozUHQC-i'-?4gGx}X.DDP}F[/f,r?,ts5>/", "u&{ryIuA`Qx|'n'dD_lCo+sZ^d1px/]QiCl B'MIMVzgx<Gb`W1s/IZsVxpxmq@Lw?OW_MilD=zVc$c_}'D}>[(~u H@FAmesYZv", "UFeb,i3L^!mU=%Vmx%=Ob_R@|$r05]q m}O_[{z/e2,mJd{;`6U-++@vFBS'HU`-w6y&JK(OD?##K]jtb^0L)177#J*::swuen6:", "Y;Ll/z=rQ~DWv`'*t 0Ia9X=M'+BjJn4L&rc:~R9CFKGr{1sd'eaP_?NfrFugJ9'48PmKSh=r~vxrg$V; +$yo/!Av>{GV[U>c9~", "|I(,EO.i:+W_YRJ?U'Qzy'DLTY[fIPYJwa7R}]y.inNQM.'}j>;8}(=;{-F#U aEb%Cb{>]jct cH/`liET!@>y9nB0tFrlSj4lO", "/92EZBh]<2SX(U'qBL'J>s2i,pe.H.u7;Q5kl?oO)<2{ItFJW|#[zSqV903z#=xI!)!'%1`Db@CeF)F-I=b.WK~:#lnQC]~IxuaW", ":Dqal)Yfp4maXz`=PsB2k:L]'f-#lE,%I:uq[bp-r#%;ot{k::<_w@O-W]>foo%mJAv>zM_}%!tR{2HW86UMlNaSyeWFH;+e8a8[", "tVqP1J]`T?$|=kLC6iBA.U;#GbyQkq+zub,'Z<MqS5tH!8|b)zZ/QK<-FM%ZFp$odUc4sn.g![e'q_(l4mn5678V1f!*y]35>eS5", "{!&|Nfh.@pW_T`$ =T$UBkBo@g|V~*f!p)[u;*Q2fbYV`8a3UV3-2we7s9(R>MWO['jZ&4},sUjDPK;Y}-;1D%grs(v[A/U3.?%j", "a}<9cH/YGx>^/)RR=R0B=HZ7RP;A~<exQ&,jQLkN@68TyYJ`)7ji'e4.}G0k~GW^=&}LJLy'Sj`3D+A}*DR&LpfdZo&'/`O&5Z z", "6/zCAXIu&J8kF}?QUA%&14h6.4u>H2hyEr0^DW+R%jVTSp=9yDryd,=a-a#E~ta6b|lClnGasJmb7,RlkWF3TL9~4e#nB(/R&a?@", "39s:}jj`Ua;soLI9d#rf0s_iuxU(]Mh3FR@$}k3Hkfh#Ty]-.yjyh|(!;Sl4IyO*i+4RXo|0'R<UNCYJ(t6&T`B?q6uN'EgReP $", "@#$nK,*GiU&v<_L:}9^ck^z)~lutUt]y'wgM}6W~]JYqTGP59:A#0S9P'H@6Eia1WXeM}FrT3]'@~yPF<f{_)MmR=l#)`5Ut5;No", "-r1uyip'T,(^L6u0NZgXA_s.dl{(Z<H'b!S!fZ3/C'XRY?rC%zTW`iS$'A](T7>9GMo|_wXNED)ZW'<>odnWl#8 R>r>F1cn)icU", "&5fzb[@sA^LN{b'R=Gxuu'D,;PR0%[YKQ5jP.AWr9:D42y'RR.AaJj-:*f>Iiq'|4*:i~85q6>V$*r^!BdlX!vglsO.ndkRK!d2Z", "BUJ'{@dMox=&[/HUwj/%I0('@K'{z>mLv%RenTvOv1'vX'4HYU< xK|I*4g!_4W0M@5'@@qi[l?{|5}A7*CX7'+Fu+/GqKmudjmA", "m~zB}9j}'>J10OGLlz=0AjN'zdPfws@gZN|+cX?oPqbn!Jxh:,NcK}]l{aqlR(>9 '`m!A[7.*_MV0`;-Wmf@Zmb}byW0.Z[0/I'", "CI'1Fso:Y1]NNXa2!^/}PN-H'z}z(:&k*xJ9dY?G4kt2,'huU9''{K[P:ZiQK{3./S>kl3'j1Hw)':!'8p[&.$Zq,Q3O=u'$2)5p", "dEA2{:iTQ5(Qwb!s:X}cEE'Q26pM=u0y`C0#W:Hn<4?*?v#f.E)5{#[7Sa[wzc?nwLzI&@I$.v>Y$>.VXw9:vW*'d^8hFmfa%i7(", "!ZGz9q{t'f>'zQg[;1.(JmW[S$'PpwG;N(q6S94n]/~sHNoD>)eAjEA'-*r;(fsq:UvV+^6up{q&y iZ-H8L;%ll=XP`#5@00ZRb", "-*1&@Mp&[v_@$3?<0l9&_!7~)9W2wvNB!wV4~Hv~aCIc?|g0@}C*j?MXcOyL&sX.8k0VH[w#K(FFXz~-9JDUm{G7 MF 70%n9)P-", "d]W@$P/OeX4'7'gAwqlU2=b`m('5c(ji:l=8fj.8&K:j!7:Bi+vet![m]?.AaqTLo!w8wK4TM!O0~W8[c(|R:?F_7v6aKRk'_mh;", "D~*6fIS2ym13!K'#' D7+K&B!~XOi[7'i.#~W8enrxUdp%l!,h'HXDX&UoM/T}',m u>%1n%k97GLnR<^hu3Lzb^)~*t6|al'u^t", "Z_(T'*q$m/V%)OWYWabCL[i6qXH8;0Y}fdYks!^2``VNoELu|n>tOI6* I/5<XMMtRBT9hhH$82{6u/p~FTtIJ2x~?7Y_]]b2%1d", "E)LprQh?_'5R%1k]F+Gs(:@Ac]){VeEwQw)PVSy]KY9q8{yn8%:yx&&~:TI%@ oC%B$EB'm1EqlTf(nL`u'~{_.k|cc0Nu'z*M2 ", "]#|iTlvDd@I?7h4O7}rS/0M{:dy6&JKN,@DR?tK4Zaj2)4G?5D0R@)?{XJ~]}a)az.bd#IpLOq,]ECbHkbCgCak7cALw7ITOkAV4", "UK%*jF='8`08>&m&z'i@LFEOb*U+'Ta&X)H&?a+mv{w4/'{A~sI?.pSs?7agbFNO0N&6P'mL}xV}mPvxFaAB b+cI<f*#/W6<R5~", "}|p2w77VnDNtY=;>m&V:xl:D?]'xEWs6EHP7na=T@MaWKZ<eU]v8iSJ 2aTGX;RiQ'|ZC$Jq2Df%vP=)858=!(,ssi'a^_,Zaa8n", "$7RccSgz9L%7Bt$c4*NQ5~['+a@1>D;JB!t;4OWmpqX)pQ7WLWXO=gd~wYfd$B=''t'E30N/M/-mb&,fU2[d51hA.bMXho)BUVFo", "z-#*M{=qw{Ug+w4?<S6&@KfR1,YYX|v~'8`Q*dyW2?7Qfm*7!LOkv'~%'vSmn?rrY's'o22(gJnEmw<4j -}.Lbr,+'x]uwH'e?X", "y%07Ah#ciC1bhbb0I[j+X_U9A5]V`'8(,bwv+C9PrY>3I)`%em~pP~#|'Sv#qDiy%Lzb?,X97r<O/j'UR]UDt'f,dbT5Hrq11/)Q", "ex6L^hw*cK_D(8|a9;YEYckz76{R'gz$*n'#T'{mOh.^%Gvr:;^[S<zwY:p^,OAaV=l*^OcLt'LM=/OH<#Co'<-G#_6v!6|TM>^)", "{.Km@bG|<'g}H-?3z2*HJEZb?)Y!ZQyIA?gJS#IE^lhGlIt[g,p!3Cv<(GK.%>;_JGA}4,L,}ZuQ0h&qqFgG'~<GT{WxV%Ey ,%E", "):X,Hx9FQ%IUEI;2D{e._Nf'Vzp( PK3['Of{x+%LK;~is-q--xmGPsUA<HvuhD:fRVq^A!`? e4'K8~GJnkWNrV?C~7;K&<:bp)", "bp.E-)'=l%r_T#Oa3,g/4W;3U'9hY<^xA05W.c4'o=m9aB]IK9NH7=W =K9bkhxHY',UG=<4jRY]<QV9N'n:Y'<,h^L#.hJpj}z$", "&M;.%'fg5YW<6;.vU?N,CQhS-_U5|C5c+Cl*k/6`[;sL_,5}{N|a M5G`#*U4:5fUo&1D3gqK815Wq^[Im^4W[h^|&L&d<VS'&~=", "t0:'B%Lx)&lD~ARr+hJfM_rsXA&,CP4Ik#N.npP<n^wP9hS-/{|F^S,/uTEuYtMw{jQ336c&-]{E%5JX-!DLb0PEyBF% C%+|l@i", "-O`kt<aYe5GNGOA} Gf ~fGOVE447gc['O~E`?2fnNZAUK;Gv=EIH<S17yt0sYi:Y'e@hL!wLZRMSdLpjDT<rQK#''Xy?W{(q)8.", "'_N3+(<Wb'^UY''=7|;?(`yqWshahEhat}W[oepv(seU~fFyR'N_N-.9>UlpUo*)2E<1;lrz7D4;@+Fx@?29i d4Fz_hr16|0=G<", "$FaTKz=SofSdYqR15n)YOL&'3t{T_uP?IG-;I[zMMlmR_g1O3<`-0wxVEn[#j;lb1#~X[VcZZ'PXYP8Dh`X j'U3BC]r8Mxk1Z[-", "m,CB!sN'75('S:/3y^i; H1Dh~aT.~?b2OB,+od{}$SZ!HbNu2=v*VpzGS_,SVTI#1#2p`*QBt%d'EC=_O,&OK1y<.qp0Kxba{c#", "pX[Rh#JPJj2!M.l_O J*(C192CJ?6`RS{nMHcg?)/w&,GEzb3*&Ln6yxx,$9,[-W6^px,*29Zd'1W~m'9/J~]h4ja,ZS+X6G:hOc", ":k8##[f0m/dbP[AbkZ,Omx=+dUcf1o~/bem`dpbjE9y~y&b;O:2AKm@`z*v-GllW|*'AnX|S<C(Uiz#K6,N-^)v4tTNOc&(`D>T$", "|.y$8(+od[=s_@iZ<vor0W%ss>2Q}^1Hs<*h@pzC;Z4A,VKj/<;Ga]lv4cxH9'y_Bt|WaFV'=X!&j5h$|s{tk.l(?=bez`9>Tn-~", ":+bIc'|#@tNmJ2h*) /WFi,>)Tm6OuV1/As]7>#>8;#D@*V.X8{WTp`'d+ BrPj:oLZSQ^;b[/~zj0nX0s}I+[qlMhll.jP8U*D7", "/Ej{gf+}4}q4wd@DrR=b/NTWrfw;Lwd'$}gr'<cu'L<{UxpmvXKnt+zbAyZ,9o].ljOIf>Oh!A0JPl0>g-,w:eI}X+3}X]hh=(f,", "3Qs`.4 #@irB+P_xJlY,J3G#=t'iS#<BaK`y>'f)gb.FhX*6bgbN*Qw|7O:'O'Y]YK:p>-Jy$wSx*L`mE5SDs6ao{ILI'y7LqY,U", "zo/,z&5sbBS=*_IZ*}2im*DmK>OA,9v?3.,<wNE|p!qc>`I{WmgO6z+$G+'+7ddpsOS-(932yUq|9dSp)51G<[8ua5(vo3C)`MRE", "IxPbZNNS6'DQ9_ED1JdRx4Laj72)u?PVZ)qN'.vS)8nz`{'@FJ;61(`H)/5Jno'v'8X;$Rht7'}0B<f;cUbz(/h'Z%+N0Yl~nb?z", "qM-5##/vA'RSPY3Ew6Tupor?S ERNxzA9,+Y-2:)l8W!E2cQo'E>%unW-Oq'|hW~9oP(_]/R((+o#b^[AKXH4b6 4H2;Q}2NbCg0", "N0>FMPu&|y,3quw'5v'[d9p$3r.+#W3rbGe|j9V_}zp*?d,72`7trMfI!9YbR3JslOd)O3XeKRR-DnK9VKwLl_bP4@KJ#8$En9A|", "2OQf fhk'x'Au_+gFG&R@{H(v`Uj/(YT(RC68Udk22gv{1[DmFsA'wd%N8V&H1('}R3I'~%`X<.%_'.'0-AfcO'j''9;lA`xM CB", "cO^ze7Ky[MaZ[1]_0/u5n2'^tSEA9hgn>4rF0Sc$ugWYkf9?+Gh@{e<SC[d,3i*zb|)7P?Q7vmr[pgFRXe.(:;y8h'Y%wkNY3J<$", "<b;SNr'G&^.U.r4~~aMck[-bKPp5o$jc#/u8dwH{,@XJ:,3K@2ge^K/W_jag_m_+Wz!r;.ewRmce`}W]%yxZ0c&I(*%h?8osJpa>", "UK39t2>PfWI!qp[{fBjM(K5my|RwAn`!$376'<'EqsDU`_<f2U+Z9)',s@Hh#h(?^_BX7Yv6_AON|ld|<*#h*{|+3%=!wQ]e>+Uy", " nw}AKsqfy;AH'9){sAV}bCFDw4KRq2`-k(Hsp-I_V]Wa,'E=GvXwnv&]k?_~$7kz$ui'}Sc{HKd;L'57_G*6W_BDALEJ20-kZnJ", "zb:~;Vq'@CZI3='@krrrrP]rT`r#;W3Rc?&N9]@)rjt;4(]V=:K|r1mMcg=}Dp+KgA-#Ngx5<5E'|@'%qDG`=--C3Xe'N](>y&K9", "a4S<9Kjzehl=ZV '2?cUC~m5v>KEBO.MG5Kh_GU!#PZ6l'0Y'ycPb#m)fdzXU=WB2MN*#%10zF4nhK+c4%}U02c<Gvt'56>|!C^_", "Y9:WTNKsOq'`:n>]jf(&g]>K:0fb1< Q%k+5Sexpx3nmM>%mmG4gJ')BX!`''il~CA+0G'R.#zPRO~:('>km9mb7%(a^g<^I>Qa*", "[>;GWP2'leD./?n>W)%i+>952,F&n#$'/!:xTfT(hEEErO>AQ`->`zajb}]PDdWxPhWXG,Eia>Dd<|'5WXM*n'zRpR*Jtk$zR4?^", "p/Df5qoc@($4|JO0Rh.DB'bTg'('43/#]E/u`.'[%t1L5}y65n!xob@rR,wQz|EGeO$Lb!]ejb_4M<^WNA '~iVMan3nfyX(HD?.", ")'^=N;G'/Cw$ecG/r.jSoK3HEC;H#{.MTv19~$JiQ>*LPP~a(^AK.0y*{JHyV&p=zD[F6m(?.mMg9|n`%bL[KRTPRJOLY-v}:R,y", "|J5'^=f;c/L<T<TD/n-eEJI>QvT}6/wx.:Jz<N[i=^K]'!e1%h;o/s[!j}nAaqP-eL'lX=$Q_,.=3CgC%t5K`O7uZB%J:FFS7p<p", "%QX@qOcvXkrzM8x>WYK&fi:-9f$2pqq4qd9^z]'zE_9sU)LwpS']H/k%TGV*'+6Ddci-$&>VmuPjRPSvl3up_f_u`di#it4!MT){", "oh>gG^D'U)7%8{Yj]<H8DNa]Z+lz$oE1T=K<Nnp+`{mL3oM~M;Sh_:rUuYia.sB$J.[@9BH0L6qUAiHRwkL]YVf@r'Db:kx$i [M", "wFSqF:XIG/xxW=+a'&l|@diQIX<8y;PhZFONR86o0lB[2~'XJ'-tthZ[-IC?^''!Is<2:D`HGl2M(t!S~oZZWED'BRW'&'r{2G%p", "t^>wNvMQx%7ZhY:'Orq^J@&5R)3!$yE(w1z>lm<how:sz Sv^f,J.N7iw.mS-S2~9w.'t7bH9t4ZWkbSSN5AY!V'?^V#8Id_P,G4", "YW&5QYXEz0{O?pktH$*G-7[] IdZO7tnO1P G^|mYE)2]nQXf*w*o)jE8lq%?I{.peI-{KmE-4?knr~/;r:Ysb;8F0hmgD>XH$+t", "I'*8G#'*!2_TU8wXQ*pbD@[Cg+yS'cX,])V^c9`[OchJ%8$|Z% `cn[=SvF|~BE{9*0IBeFEw~*z4p,b;McfS3H)'s@D'|n$b%T@", "x9#:{Rk^uyi:g'F;6dl0L>4PdIjCjX'>AQ_ `TyfK2D0on/eB'ZC>?{3=7>0x$?RNLW[<m<X$rQ8oPFA,c('f*--)ib)KH|E=Rp]", "pndR|cLJp&^F(V2)J''k%2:H.w8I}RBZwJeouf;bXAyPBsKLE70*)?jbsE *:R5JbV{~>|.^hH~u5]b`T6hTq$<8`lvOyH{*wB@C", "m9)'a%F')3K$=ZVl;I{DujWZJxo-pVXjS).xYTJ<xG@Qighjrq+.LU@.^5wOS*<xZ.n <leg s^A|2}GvH2!_UKTr2]92:%@V7tR", "=-o+)tI<mLq[@Z8*n.!Hf?cM9k[5rmjIFiFl4DUXzv42U1y C}9Bn9Y%)Zz;Ghvxp5O6@Q0 E]zcW+Fa(d[3Qd]tJF#k%}}@gn3)", "/GFQ,AvUe5HYW+*'(CCp{-rv0##:3T^wVE9o?K_b.G[|yXQ3}vQ|'08S5o>*_ G[(Ejge|&p'ah>Z*ucw0'X^7RzQ,?'~Dp?A)IH", "MmA;r./(Pe|tgNtr|9>7[)8j_w:84soJ-S! '(IgC,RgaoVsat'P;%p/o1vo.^UO9uCJrc%'4/1uSY29urMdygPmTn_dyZ@42dSn", "D'0Q00dc?n__85JMV&~lU)i7,iRW*D_p- Zm@1~G^.YI>3~PDO7,Y2~oEFT<_w6 fPuW,GW~'FK.izim`Rj5+#'Vm5{zYPNJoxF0", "I'J+kYeH!.HdS*:DA_Lw(_Vs,[1*GioXIU%o+y(iI>qZh>e//bG^Pe''8iHdCt?M<]{//gcN@s*@bDma~y=d,tmngRpz9!@q;x!T", "awER>%lf4QZ!U.FREe[!6NaJF'%izx7Jr!_iCkoCNr~1j%g(8V|QhG8|?wD+Zq&@6i$nEu'P <raHDSPNk,8_,YU>6Uj)#6-<_1L", "Ygd[UA<>~1]N[2g,ftAPKBZ}RW:$bG)p-xxm?ugL0<^$.z>_m4JZ'W-XXyKZ4k6gZU`Za3Zxg'z66jVkXUX>C=e.]1GP*I_(#[/.", "T>B2'q>?^WWww+Gk,cCDLC9<Tk<I?[RX+=w#QDoX>5]S8R%;l[vWse3o45|H`ghPFQ=bOSqd,'hmhcm)^q`dixq)}'YX& ~~{l|K", "It^35B-v>u6q2FG!9z%0~fEtmt''Bf+ZUw)d[K)9:Gtmk;m^/=(mD_u]DCQ)0c`$9}_r=w}J1cux'9w'IieKn#5=}pSVE6M$Pjzw", "]Qi,<C./-wvi72i3at&G[nSoIz}g8PA[A}?^ 15gG0R2nHnlPQ#VxYdJa},z]!rPYhO`l4oCNR@Xih/UoGUa8:u)W]rHUx_ksMs.", "Xy-QU5@)Y_`io'+qj6eE- ]S^BYqr7Mt<NeacsG#?-eTEt>qo_Wo'UlOc@$'*+y+lm/b|#2+G<B*/W/;#UGyHVh{hk6:ftVR9 7 ", "7LhWyN(;j%o'yuY{mr*-HFtrsA/ikX$!e}jorg=WQv5`9;l@|#`0edf3+nZrAp[GV:I%Xm=JJgZ%cWI%-7)<Pd-xt~*R&</Gd.c$", "g:Z5[k+jH9TXZGs.?r+Ve=52&&>:8od@+]9(YIQ,#P0d8{caK7Iu6JYw4I_M`m2Ov'5c]#WM12x*(r#Bw}Q=IJ_.`=29oOw'*C_,", "md{DldLY^R=0PI!;At'2CqDvm:'x+ha)J;FGnAfC}b5OS73=)bod7##+F&]bVE_cICf'W`@Qy>h,xgFHW'6dI@NMMaw=H,zU!P}q", "p`i'#E1.kIrJ*%&|)O.u!Z~Y4uL-SJOI3hSnshdYXTmm}! 7:*pw2/:8L6Um=FvlN5?&A)GBQz%'w&>aJSf>fQ:JNTTqoe;T.zqy", "iDBrZ)K!D3F[.k4IjF,w8Lm8y=,5vV'J3$Ze3;7C!JPS*3sbXavdUqRd6;NdMfvQmKw=_n5?RhlXQS(+$9Xi2/c|a~ j-f-'!i?B", ")_UO#gF/vn1'|AX7j1(W1Vm_hF,;+[~Hu}YRgD1+&LDu2jk264J6Y;sTZ@O'?q)N6)DM.C.wa2MK>'OG$bF*Z?hUQJs[R*d*g?|h", "OfkWp2uT74dU=9u$)9i4q`A[HY?%y@_^_bvI?8{Ert1C'#<^%5'`g3 3cMCW<ta] Ebzu: o_';/a`:TBJ>Ld:0qR(i<Q 9%'gt", "@a<RnY5jxU<rtBbze'M3oPYkm)p<Om5&$:)y!'vZ2@}[i%Et0H}BL4E$@`9=s>n{''@UgLQ[pHJpv:y$}>F~ePM)'U-4R8zcW'Gc", "e&T+r%318T[7G>z<NO]e{mLYE-vd)sc2$hP9N[b95)_Lis8{Yfqve[0!w=%*r'3-'C}tpmDw's/4yKgG&z>UIrh<~kh&q[ C!d|'", "+M-88q *Rt4s,?Pew__4g=--cuK5:/;R&n9nO))6h6&8`1t6{E_.=~D'Fks,a'n`C!'a691xdd~_97qSAV]y1!%k!I*<CXG#N2(x", "i~l6B'fwM1$Mr$lp)!vyoReGOW8)f%bdKWMzr)gN3q7zOM}R$GZK|ze8gW1%HNFguVO2)[ Q'w.Y9[NYxc3n6R@P]&(m4,[fO_{H", "{]@:>!+EF<''HD.3,kt>HkQ>sq1wuOgIuv/u~5p''##~NfBAaj%/&?S&(*+/x]TAjRb/T=cl72R6zwkR#|6Po<+ZM/16@tek;3O`", "b&-Tw(j,m+swo+rWRCiQxI'vz:C'&N]OiWeDPIoAjIX/h7M.n{tG)SYcrG4I?R(W1XMyvjup-hJ[CS-4 kU3-DYpe(PM4sdzxXSY", ",:C_@E+D;R owl<QT'tzDS0JL!Qk+24y'PwYS[f/z&1z1B'HCp#`EAUswIU}Z2FX+Q,Py#00;L?3a_>5Uvz~'yL*^!%nSzGa##-~", "7ojA7dE^Q>%MO~Om''$pIY15s?/e;my'rd$((P0ad68<p7<)qPr#ysyT5)Yfm-V-{3%4TmNo$Q7mRUBz}IVVZjtc<qn1J'3xY~J%", "{o?_5,2lw2$k:4.+$Y|Hp3/'N~jkWxR9!O+N-(tF6$j5S'R-m>{a.xzI<1giF>PYTsIQ_G>K@'>_<Rgq8+8s zTcKFK4vS4/{SLN", "]'fIIL>C^[jGE70C3Gc'Mp3=xx~'gx5c~=h&/ok]FjC}l;UCaj?Drg'e 0_5[+Fo:u.z'-}U#x'x|X (+d_kpV0SQ|}XV&o O~WE", "dud,<*z@*{9#x=bG2Vx-G((dmPgQ.*O?!rNfUSr1'lPb'e9r{x'D,_UYP8U''#+oO}s'KD|qPBD>nJ#o:!*k{.8q?1dB_M'<x(g.", "e,cmYI/68(DOyj}&'0n?pf[FNR>1JW}E/Yr!8Ex+R:)}6/qGL..byvj:eN'l7sS5_E9iv06iC^+iB}zLb+;xdfE6&&bR?,@gR7g?", "e{Evuay 3bxl{eIRTN^'oTkeOG[Lv[ tSx|U[Ks]cW7$K'?Ii=e'0M.RX-iH6<L=]NnBl_Vx_k;'/*]1G?P*%7y/'=or&21=hH'D", "6;j>jx8[*I#<_Hoo32B 5hQ5v#bA*m''VTSg[Hr^{Lz*zWaFSu-Q`zh@.]iq_m/@GMx^TG&n7U*pDThE[P4N AtEGZTC310KYsv#", "QS/aH>x+L;+frF'O*'<gXd}or['J9r_8#+'6(-HQ3{}z6EZNthYl`/-!Fa$77wE5s,GwzD%tB.l!4E;ZoOeU'r]mq#T(7):+r|(Q", "UX6YH)Ih)>CG~8u2V$mtwm?r21 -`bvMH>a=Q}Zf8<$b-[zP1i;-w;]/P&UEL~,#@09~v5OQ8ehA0:H07V'AE+0)SMEUYnSq98$G", "i{>dY4If_D'xZG$!'HfxpZ)U3pDH]wLZ78R><#S^Zwpb6H6$j]W>gk1.q9Jrxz{4$dk[;MX-''iWE(5`V0*X^oQO'Y@dg$XOv|DY", "Tf9 }--_')2?epeQMysfr{?#:f180,W!{q=!-~!gTz'l36do>t(?8|4G1LK_pEMZ$#nXEmv#bp:8fVw{hsIZ'YV6o?Wk]adELrJ^", "q%JSoRe@H`;n[oD!C=[-zn}z Fal68{a8H!^1KJT(RV{@~sIz/tTZ:+whw[zh8RkXRN8xjEJ(gl-e6`RXIT3{@|,cX'tY0`@NV9$", "hoy$^a`qQeHp= {3f(B=!CSq(wg;o'oM`.ZN&'&G~5p!D5TgpBcCN[7Z_d'Bz4{im<p3,>8(nPDzKko;qD'da9yY'srjXDSj_#lq", "Os#cU`?^zr$j)o0ru?@E3u;XETdZ2P1yDo;/Rn|Pz6fx9C,8k3;pi]n*HO$@,CwIy]W`Rv'$'u-o(9&]+S;Zn)fO$~TG[@ h<Gcp", "`VWt/O2QmYtP.?16 l;Oxu'0v_7`&d;B/%a_v,N'k`b}}w&bO;[Z6BDv'O'.R4y]-p,c?;4MUy60b;MdzgM6+Mp7pz&_@~x!SVrq", ",{R!F'LL6+F!r's|KFP}:X2!vZ.m,Yy5&q z,aT'</sl/o@IU|^4JN!p84'95 na%wg0Q|*s'4]4+)owMRRv-:l^Z|H~o|I'vgZ,", "q9QC@ljUG^#I.JVxM.'HLzsDIr*G7W]A5Ah!V8ysb|iy}eH7T,Wh/,UgANVtB#'=b_/h57355X?e_H@n?N]^Ic8.8*KrvCC.dMmu", "F1a<y~5-!''Um'@t~pc}in)Ok[ijsbZ}>`!aQ]h+:ckv%itg4PfL4DmRp2(z~^B~<* P/>}R?'_d`PQh!o[ipTGm=3hO-u:Z~0Vd", "?TM%Pz+P8'0T[Q-l'!2;mX<h%NP/%NrdiTfy2~a1|q<Re`m+=O:Ehhv8/H5`*7Npz~{4%#{{QB?)A'q1ji;|'|])ttO;'y~il?gp", ",Ouu!e`I36=',iBc@7[%7:!{Q+O-L88MLAva 35meVi8#Iag|8`>0'BY7$U%_B|nS* vqs3T`*AaDm7$,P@atd?Q%d'X'}6wK>4M", "01'H?'NpZy%&@R.n{+V}ZXJJ/H.ki=uk<=@v/b[A nYp|F%OI-FDRP;@-;I;!D #}nBa; m<%GuXJ8G5m02'ReTqO+P &GmsI@op", "H!E=!@]oh?-g{v;k?vOb;'`P-'.d-GOo=&Mb(}(_XK.zrh&$G [V6,@mK(7)6ET`';B4#3k!`d5^@XU.aZYZdJKi[9)e`F1vV`xa", "P6=`#=-_UPV&smp5E`-0}nMbiU?9/;,*kRbD&;s1dO0vw^cIen*B3%C/p+8T2!w,%L{!pw'a5m*>x}>j$8co+H%Y!oBPgBdB.;:9", "%m]q*Cj!;'FplkZ8n7ev%N^pUrLN~])}>M'i3~@wLc8~+?yFd^h_^5O9q?S=;`B' sCw@={6WXs{N>>Y;r>'IK=cIw}#6=$HF=dx", ")eJ6}^^c*v2%T4_TWF,?]'6 'B5rY9nU#*#*P'U|zd3f'50*,+8+hi!V]sRgXfkw7RW8eH2%`[a'|5S>zB{x [6:Z0bWv:C^8Vgp", "p_^WAz3'L^z>Ec'-/MW9_(s@i_JJM_eea+V1jbGn)9Hz>_S(vl5rSu$~lJ3NpDre9YP:x1pim@&:B*4WB1Hlnis*mi436;o)C=Kp", "c^|@^ZVP0JD_eE$)lRs+X=B'`w!Pz`Q1~]**6MWGjE<E)5!g6w4'`TGHaWp*<#gfpgzNsiB|I9!G+3cH:OGa'r]#Feq:%K'q<W'N", "AT/I.|g'((7CBtvu^8x_I^R66OmY!,Ddj$!{iSf6e-mg@L_t:b)|,Z`Fh!lYZryJS(B<wGQEN0m,,i?]|>We!.{o756tvlR4Vsq2", "D{wdRC$=v'ReU|>Vuoe|.V.hg'A/z<&y:/><30X:-L~jGe7k2Mz}BWhZwAl%MYLTlCL<29*VW'C3V}S2cVR'r+2gCsI{YK9{f~s>", "'?Jr<C0ZU'r/z'q@*66JwA3hTKO%CaYtoab_uaL?V]AwSZWrJXNVfRc:` xfK(`fQEvYUl;fw(2bA&Z3q4>kkMZ}'kBWAAhWq'xZ", "9'6fCiDCpI<5J%S>ubE^'FR_;}ZX1@r^zEhzTg#~s%*}'{hp[^hTbT[+u]q&74rI_44+{kRM~8.KA84MwYX;Ge2i^6<E6iTlx%#-", "''VOq;M{ a'pYOxTe*y2pfcVq:Hq|6[Jw'zVKd K68Wi'4mEr(bC0i3RN2NnuZ)tyD6*Cx9qU4=Y}zX3O$2N&KwgBHAj4m!yS|'g", "bCyj{ihuLz9Hoc9>k2MW'mL,%JiXS(Fh)f&J+RpV:B`&zalfhlX;pq]_RF4UgUiW`t!?S'TvJ>1l2g$!%NV9.ScX7hdiu-pPih1R", "f@dUeI?Yx4H'75o;=n%Cc@O^j}2^L'R'q^SUa3RZH 8>usU$-,6uXJH^,QmaKajvP$]G3 }|'qd'sf$;n9*%'>0(VOA14FC':,.*", "}ze'N3G{.%=_hUdT`z_pO,+SWu+!'ki7lGagH@Q{?]a'PKz`ZF )wC.j!uf',(O(P2'9?)envO5Ix$?w]cia@Yc`eA(@W}(''[E[", ":e;uvz9@3>m-,!O E)v'gx}:fAwd3>V_@Iz-X9w$4N/h Lm0m~#@%+ T6g~:jC{Ew<MkE|'&oQYLVIfez6]n7AttA^+0ntE-ELD/", "qgYI90;g*8DtUrIG[ndGY*=bEXz5zla*p~<Lb:`G[@.uC/*uV>t1f0<Ircw]]:t]'w#,h}vHS**GpNm&J_aM0h;UA(%-g,W($?Cw", "@y}'OmyeJT]toQzqVpu~'XQ52&iBQjUN<*#/.W$qY'TA4<vBli3_}YNa3]G/Xg4X>DG}s68qnC_)va?'Q@(LtyI{@t'uxzYf|(lt", "f&beG(i@gG/!V(dmshn)]]JWyc,^S$4QCv1[b *oeCs;2l.TY!jNq5!XoOy'OvqBidve`vV*E([]IS.F?mu>&6 D.N?MJa,1:RE@", "/e6cMa4>dF>,'.3RUFr#;A(sZQ8:R36Q9U'Syu^7}f5id'5g`)HS6x)I*(/EK2Z3ODe]Op`K'ah{9D0k/pZ?AEhGU](@4;Yj<]_b", "Ieh%Lim/4s=mKvZCG}EW^=4]D?i}x>!zrA$4@Hw#$,4,JZc7tJi@lO*_j~$I U..[J~fxX;^o'W{;'M/'~Mhym=ZnA'H?C^ewyku", "ELqukM_kI< sap='D5f<J^bA<Y:w;*D=n0b`W#:$ [|7J^tsa;rj;|HLabM=0DGjdEAJN7J+7@ 4nzw^o-2HwcB%|3{.:8mab=aD", "+ai_-$|y'xek91C,!F:01z.<Cr2<_MTk=j;UW{FQ(.W:+b4'U'fmqd~d5Tv(5H&'8<!x7fw-xL/fU'}//,PD%d'W02!]U~U[xZ#K", "46e;~|'z.,:b0QVqBk;<!O'FCo8{$ZF'813q]'zc>m~+5]D.L/CdBxZE]o_FgXGgy^N%gV??#!,!H[I/>q5L3lEj*vN *J]6EZ5?", "k?b'D/f`arF}'z)K,xypb,I;V,^=YB2~Y9wj<EQY4QB| .PHmC9Mo{Uu|7/Zqe9td|o-T_YJz!^f3T'iuutqF@EwD}~-IF($JPFU", "T`!%qF&+>FnHB<`:h}'El.HMC,1iQt=3D'J.Qn'4#A0h&[}hFO]h[`X)]Xb4X(1u&TGZYq#(NQG|)=vNewTO[!xo>]a?#f*>TV~o", "Jx3fpn//-yyv6n)E<$b'>'z-pNrN01zLG`Mj`f~xO3V{*t <2(tbm9NE_lHs}j$Fm>1:at.k4A^o~6IGm-!3JJ?c~Q635X=|1q_1", "*tu)-vJf:'K+gDy%8r2''w^fv|.A$NsA.So`'b8E[iz.e~6/ARJG*B6)M[=NasMYA{gsPB<Gn/^[Z~/<'jpDCm.vQc/q]><f%}ih", "_2[N'K-*wH0w&R`@'PNU]TA}Q%;]kkd7U+R@R69]>v5FGtIrA[b @=mjtXSvAOq]xLyT6*g)i+SAW ;q;Efm*NWPb_z-F@s~xZAE", "5@mpWj+$vdkSnha*LtQYFV76G8<wVAf|Dp(?(j_6I1NEKpnY0nz9'E5`~e%:uEyn,gep0EW/[5_y;h+kMfGi-}Do*WM6&9}skMT{", "ZyvLP!.Rh6U4_ywRV./w*%Q3=h&Q5NjL/`U_}+7h_kF^5mi!Kq0?p0F1uHM2a?=bJZ_a9'C)}CJXa*i:*-3XstK!u'l/7'iQJwzU", "i7O.8x[Z(cTE[<.A6'/ryuNt6.Jl*G?7x3Z{o0zzhc}Qsvs@'d|}g']5@fI>J7Xx<MA)L>($6V:xJmoKABm<^8sO~W)7Nk!5.jc`", "k(N<$g0Ti/VA&h@@(HbPfAO)#%UfrQT38cz'cX~@6@6E{M<Kr$t#NI199mbjqx`W(,RU|O_^&)]MA|@[;=CZf /{{I]?LF5I>41t", "nHf$n:pXTPy1N*~a6`unVaW}FC+ &'xg|K/ 1s'OjTuu3#{#|D^j'n1UtX>B T%Wu/'E=|tSi'kiwI-QY6!pb#t?]xQ{nkODc[df", "(N!rN*2cQ$w1!VEr9tqz[4YV*y*g8A{6>5k2ylaB.t#]KXy7B-K4'':c}rx6+r{BxQj,'x] eUtpqrZ$Ar=@hObF;#HW/<cZ?<a`", ";6!v[k{3SrCK#R1(sd<.f]l:?^UQabcJEWR?wMPl:SI}@i4F<RVe3M5|XeUuFvZ(cN53z$O>]~||Fi),t'cd08'y!&nS<&YMl]@C", ";~xld+qoqKLsK=r6R|;u`Uxq*kJxMS;H2*!D?FOTOR<-7Jp3$1KX!ys#{'x=8g0UDl+S,W/u!&gWTr7h`W:SozYAg!^8`_TH/jXP", "gY~,ItV_FBJE:]V$!=`m[@E{j|L2-@z=H9h}1f:1irx'3?b{`dW{T<YW?}fv*[4VqE@W4'k7b5:6@t_qh7S}q%Ja0>h][UlG`Ng@", "QRmUc3VZ'mSygqQ*`'}'@YB5W-4pcxz!xfu?`7a'?yG::Vs?h;)$TK._[^B85rF[*`p6O4Ww@Lu'}I60r2Kj*T&(ZsqS%I%6uw$h", ":rm!iD'sF?+~P~z[1{AKh-f;@^>B}x8=_[(^GY ~rP'7eIX*rQ`k}&B?<kTKXH$4NqZ*6bc'd!wAXk^oJFf6a9SdhJ3Br6s)0A|f", "x4J4=ifQ.M3N%)%G'|v|Yjv!-)j@)UQ,ZO|7LQf(wJ3z+'#ncT^fytdfdw`iPsFt>F_aOc~i iY/z,WWQI8O/#f'j-AX&f%f6>k~", "~n5`R'.9$V^u@_ky'(aioMrQ6_<%UtW)*r{)vpI7UYO2YQ/H+wu<yY}vG5~KfEVO6H^u8-9}])ws'Xkt^i?IuGZRd|7Oyjc#`Q#x", "^dOrs8z_=BS.uzdR#7[|@1:{N'M,PUbvrI1`<X|b&mc*B--ekSOjw_X|YP3gHKSDDp)*(&p'AfJ'~-Rp2V=JO=zN+a-d_93)=6cW", "7FV>K)I7 LShvEmX|fs%WF'sVM3=_IF7'e'X'h}K>K6Ff^aSxC}?M=v[qAesgLp9v>+D:J[@YVvWf4LBmyk>U'S[]3jqB}yrB", "+ZvPI3M))O9lV=6U2B9[Ek:h-/lk,Xvr>miPb+hos:?P=R#p:9_m'l&Q5(u6w>!-&&`&n=PN7%15x'!T&Hmz(69pW79G|d7K'NZ&", "/!CnOBTMmQK9@:+'NvS@a(?Sg`K6k!9|Mp<Sd0G^uG9DP0,)b'2S@xsk4CoP#]PJoXps)lwztbR>*gpzWNGm/9)>-^utv8,b|GbP", "1|WCNnA]~iU<0,'-W_FWMLJ?&X.ZYe5'`(L21!'mrG7[]jT6B/0&bO@?ebt[fK6$BwQ6_wo0zH]?K'>9'2Af+t&yUedl_!)YN2*Z", ",8}@lc5k8KR3Lk$Y6R+9S$b/d`n7~ka`**O64WOjK%0)-R`%la%dYgnA1aSSbwF/C'>,K`%U5?O'MaD8)lbsAG(o_To0.Vu4{,{1", "F9YL$@v&88$P1W`sUE<!X<hM':O.SFZ^%K2(4J^Bpt1Kp&:'XE''>$HNx{+{~ ?)!l80G}VdB|x<wwWZd.o~H$GZ}6OB.(C6>[dp", "=E^ZJQY,+t!)O(Di;SnVA^VTm]Cy2c*UP`_pW0Fd6U}<'M,*4wr/TTw|n=o!4&Wa*!b;j,hwy*)'<p~J'GGC6U;<`1Ns?n.Q m<u", "*$fN{:U|r}$2y'}o;*BNqbj$E'Wr] =->t0-pP^'~j_D=.T;wIPF#,K]Hg[B7N`XBwbDp<.{&68[:9vlY9c%hB+jM?#B'4''6KqK", "md0H,qlC2RyJRUdi 0xZ0SU}c.XgPa^%''5&5B|LR[<R*V/kH @[ry9G:uVj5SJ5%Fni%{F0$0!(' gi;uiN]K6693o[?R>v'3}W", ".L*=VIVEIVxl/'W%Zn}Xk7.'sC^m+kU<1V:w)=x>@b0D0|o}+G1dJvu'AvCeP(>|6Z<&(2oz4Dmp=GKP_n Ov9&qpf~IF&ytjDw%", "Dv?vPAjV!Kyz3#zozaq.kykqT4Y@Ufl+!iL'<VNtp'h+7,,Q<yO]ku_rh'[b`4/+y]yiQmos^O0'u`!hS'fBUhwCNrpd*8piNxKb", "1JCDPZf(hZ_&O;].z<nv<#a`YAS;_na)+V^>H):7W{g/*%oHfF6jEG1'+>4wQBhNrES.e<?pNnQd$C!$im|PoZbtE|cWxkp8lc[T", ")<P^U<pamPJflX|f7RWj2%xp]^y,b`'6NJv{ul8$K^)GmvVautO]lkx(s6jdAl3'LNRV6 y3x x-f>G,0]]Zy?BK'l!9g?NB'2wt", "0Xh-tQ#'sX=CgilF00,Nf/M/3JF/N.adA3>aBUj]i!}C o EV=P_PnjU+8Z.33:8qSq#T8sIW~mZ!LF;t4)fHem ]P?;fDSNbM= ", "z`2h%T$'y{ME*rN&D'u,ysG)=mV-'@?g pmcpdQs%7CTEBeBKgS.P;(avRSYm96<YQj_h'PJoczoJ`Mis4sl}YGK{Pcuvg$0w_ri", "|}*~/^dY1{t>.v%dz?'LU$'>3+E9 |>}==',0K7N$%G[I~gE?z*XI]d|u9]YukOx^PXkH'}lEJ({ep#Vdx#@RI`OLL]1<:>V*-:[", "kc<nTQhV[Q@<FRj7S'*/R8}'v|}bU3G[K'^:17|N;sVD5I%=quOE0EdH:J-t{CVR]XS$'.WE|;P9-iJXUkrj9!IOBPR[qH{DaU( ", "{`>0JV9dUE)*jc*5:x8(OQ}y[NSqiealnkcBEw&XT=0w!:BhUcgT2! l84-X^3>*,4/GRz~'qBL715EJ'Dp7-WYG[0IPR&SaYdJi", "U'=8D1L-)J(&rct!DC_-,'Y%g5afnt9[|RE4sAzv%ozg|%KbNAi32f17FP>DZ@0wgbR_.k;,p.pCsyJP[9<<yaS,%b'HB*^Zr*2c", "'>TTWWIzf%ou9bBcbt7OD,qm0RY2`X,DCWeR4]$||'r/7XPQk:L3X$%i1Mfsz;0H;(:<sIBJ^'^>cnW1&U(w;?R'FgiU$mR7|NUc", "fGAvopLoB@I1__c@VKS7v54c]a#UT2M eT'O+<<`H;KCdNZivK$z>s|%[]jZ,-H%ybQSS@,CAi>~06P24,P<xQiyH%g[DV|9jywC", "2pPxoV=GH>0p'QcG'c+tKKw)3_!B`UXwYVf1XRyvAO 3T8.kl6EJK{%Pm`tmh6!%Qx^uYf+xtkEF.L^.AP.ELr75wb^l }.&^nS2", ":V]/(T}$'O%EIsbEU>:TG`D/6 ^nkQ'r_K<FtCg^P+j]Hr!Z{c2V~Mn]w'+npQ{kdO,H1*2?qY{bj~c<5a53b7wJ=tGJ1yD^{|N!", "Tgw(C/Q/mjMm|Un&a1Xeq?<O%RD>e8+GHI^FgJ5/k@Vvy<aS[-POjEVDA!td)}'*w2fQ'I,uk'aQ20Dc|uAgq.uB|ZaL:j]]&|[k", "g&=QOzyU#h^?cHPHJS4N9M3i_t8p'C0x'Pw!koCIeaE!Q?g5'cQcYEG<R<1?I](;Q7'<E`3O7cH)nb8tj;GQuQb60-2+7=g~HV3H", "=H -XLZ'S);8*T'sm4f2pJAm#-J$$!Uu1uAz/n9cihT8^RuTGz<S#'LY,l!Df7}.[MMPz_S3*&6)-wKsYR1FQ{btFa''ajk?FYXy", "B/* k6Y^U'Lq9'&$xgn2HZKpr0<eK@cf0k~,R7(3Likfx=68&[rlrY~_g2o}{Fld-aYhHw/8k)Bk,4TcC@2VQTJ 1=Rz,QxIRf%B", "6LuKnzWhM&?OW}l|vs~{z tv*0m'AzBodnv{:f0E?Ky^L='<@4gwbu1lW__&_b.[Xm'fcq_P+Y|pS,PRE(iCG9doL^(2T4LkKyw=", "($TO=Mj3}E1cALmD6Hdr6_TSyk[B;pNLbqe4'RRpV{WTMI.Ola<7QWX}ASA;mpwJ{no!Z`j&l?;GNcx|*'xU?qv9CQ,k]UZ|k[hO", "zUT#u/f.->kWnI~b4_'x)ZaE8''j+<,Nf`x{3=onUv}qkr}!Eg'#Aoe;X{)7A)$@=Z$&G/b-s'caYvXKpC=e'.cFW~A2DTLjekhz", " /?B_8 Jz*T!'v+a1#xkC]Hxc31!1TUVf^.V]'lS~&:?*?|8X:k`D|PF_L@?I64p;8R')jWRhpF<$j4YDR0u#w*_r<TtE'hkp}8#", "ld%@C`!njX;ERE'!LTbP3gG2h~)+'BuT=SlMNRkoHQ'eX%E_aee@MVjb5w}gT/%`w.N&?1uGvWNGp3gl{}T}oMSr;KTRC~e*:_4{", ")>ap*'=P;xz(JK'2viqdN7E[X_Ho'9dd'P912m|B?u}&.:jj`F$dwr'_cS=)z%;TS&eOb9i^N|jW4/QI#6yn['+9d4.f+k^8G9Gl", "]E.,b`g+/|XKy/)D>JR.NJF_8ui%g=mHC'$?g'p'&xYpU+!!0ri 4k2XE J?(*;?N12#GfF|6`h9x%Tro>K[jfx@l!hNDW]mD[#Q", "BIYEamgs?n:lSY)zM}>heJSV~ZXy4uFZzvm[kNXRLk{,C5iGUL{YU_O}Pli[0}}iz43W(J%p>n,TjV' (j';W.Exhsy5&^Ea&8Sy", "J|O)X`^o%nXzm(py(U{5dJZ)U%>y*t;_SPSP6W;;-?xms!Gb? sP#!j9^W|GCJV>S}?U/kKMHu0/92kXV+:t1-1?SF[UT*ci#w;]", ",v(>'3w2Old).@O8#IdPo|l7NQb=C9'z+!5U^?[8*KPKYpSZW>AWR$)|'/u8@pI=N/.f4Md_nXg&io<KWM~Eq8s4ayzSXhFOh;$A", "0]#N+q03qErsG[-%yVh8Rz!{37*a;D9Y@VeGE'yfifYs@GJ`_f]=kx`tiYs{K?2AMUk`p'WW0-vHK`el!Cas|%ma'I'*bxGcP`~/", "{L*}q~E]uYBSi*tXGe'--&h_4Tv_@z=CB3j<mo.f^2v1_LU-;<J4B9&6L >HDJugRH,tb4'&os PnXKo#kjA~#>V.~~}nxYlspTP", "(jw )<ezt$K0u%W7y}*T;rh%7*kKYL3_e2&u4>{{)~T%}BM,a@V'PtqJ;LlX{5TJ!{7v9 SG3tv!'Vniu~f4ZlmyXc~5C:#MCFz`", ", +MR@+|'$JS[oOEF~Z.kh&?gLM<UQW3Y#!)QI%06cMVP9yrOtZI][}9n!Yo@|XPmGU(]FRh_-Vne.d 'rpHLFQ'''H;eZr+?yc,", "vYO)Xa-3RXg'{U![TC~n+m'!ZcHsL_'z:vA'E[rmqGX%oW!rb?q0lIf.;Dd8A;^Z2F[,fF<rMGLc?bxZ:fOO@i7v{a !'8:#lOe>", "Mub1|B{7^?l3oH_G_Uu`B(?Na<HU1?-eT'4y]Z2f$]RmJmK2Si_zIUe)O},VKPZ8V;r@vVsrWs~akyW%r'ejjsxSpZ|TcCyqBv(?", "npT(Q(!k'qC2V1FKTe70/0;|%BXf0F71$2}aSZBZCg(5#+x?{0'2uAYC:y}M&)LNlwi2TE0w_enN$ M'5?WpHyniekZ'b'OSWNa!", "8F{/B%$OLsZpz$qO}D(~gFj`>uqBVKi-St}uS80CL-,K@];cK1V8Ax=:@,-;k=v1:?T5J=8S>wRsa4ZE4v#lOMd_!y]p:tyYEmOk", "+5[<a&Z[BYuUi$,oVq=kawlGdwj'xmO%UFD'd>{1VaNGb;d8H<#:%]5,#^YsH1l$[40tZT4i;!T3*[a#e/ +.^fWp|.'dySKKuhr", "[fPI4?p~Z}s4k<dLFyRjES: Y+Y*k%VK$rd(d0&CXoOK[;8o'9WhU,P{~:6o'y8#<-R.Y05@(}yB`h{L-W@]MOe9}3bkn1L;(ujA", "Gfzt/XEAa5wMRBI7&*'o[B6$3'>Q_1:j8@=TX=K,3.H_@?[7*L[+GDxY1Wzr8*&&v%''4IQ|<Nk-&^!cC.$|99DtK28XE? &qp=s", "DdmEc@@.Cr<<Eb/tUj*Rre;RNr|'M-1RQjI`VEh4}-Dp{D]=XN6I:=!]Y(Lk%#H0Dz!z?9AD3@x'D(8=%&h[kvg;r%Eu)hwr@?Nk", "*M5<N=JvtiY7v$a &&o7XD[OEvlyys.j^bs%U|+.-xUk't:e'g. yzmx7ww7xi64;=ggZg9g35A/%q7!`I[m%9`hj-S2Z}K mJQ/", "Es_5ic4Ewa4:Z~uG!'[z.<T=~c@cA8&sjg&zYfZz?={S!/r~,$%Tq_$t'M>YgT.X'>B89[@P%K#LjR01!xjb*B.DsrV)M|!}.U#B", "-+jz/3,R6*e&2*0i$IG6Uxz}i,TV>$nOkUALA@koNeLC30Qo;5B|K@6-:]96sDhaNa'x>fuw{mT`Owt;5IZ{5 j'+u$iXrj$*9{]", "MaJY'o1c^cWsMB,AcWJ|2r`$p.UV0O5j~&AD~K%bI*a}Es0o!QcG7Yp5Qh2CGwm^c='$c!poB'E~Nn9S:z:'iRIM>&SY=EPai[bv", "'&fd_}Y*xnmLekziv'z{Jd7]/P,umt]1r'$}7'tE9VvJI7V+@,*0Fo>'9xeD-Cl#klQ(hD''aceJ2.gekx{NJGodP3z0CeYXLs,f", "hTzix-tF2mA-p'%6(`U,%iV!sNuzAt@)x>)w``aKygnz,Wkn/'0-X-&p&qCig$i7J:#5BLAajZ?v$P0X,69MI2Dg')Y7a%XPBNv9", "dQr/hWSzp-eLZAnVG,nxY(DB3V+7#Zv}[)o`-Vd?tCaL'qev' v,!V(QQ84,~QOe_AA^(lo'ggQ$b`S0c2YkT^ythdp.B{e!,IIf", "*J:25RH9X%E3/HP-nc_VGVM!kmQ:P<SemFma0EAeFR'T>]/YWpm`4ZcD/L[0WW!}5UbzI-2EpG=H%'R4bSJN'5[EmCle-U./@dAl", "OC.=wrEtI+S'~(c.#V;t?;r:hzB'K*#N ZAo~IP8|)uk&|OSp>8?u6H*tX%5nm.eEpz01)y1c5p7E&:u' ~*?C&s_X[:[RY7E@{<", "#'rw)''TM&iNl'CDUVhmqevIbL_t!n}|UbZbgxk_V?zl17.pvv!gvL{bM2xN.+VGgd'rh6!k+<x.R 8Zkj1Yv]@uU#o=M Hx'&,0", "tlrCy}lS,.Y{#v9+[4Ub`=3,RL*@omk+bUq+.>p0R,'[d+I{Un.-'xMzYFu)>eeA0'TMbZU%n=BS |Hg%ifFF#a=dO$Fd|Rd?D7&", "nUj( 4.:o+'jFB#24~KI,'u01a,rO|i[vV~cq*d&|H;Z~kVNd0[d.]iG9u*DIW>ZF^H[BF76!zy=Nf9t Kc)W1Y/S0R@4]]e+X]6", "}N:BXcTQ o6,vH3q88<O#U_Hvt'%XU_-PD3}P4X1=KuB/tf7; qsAA/Tn{_Wq4UBHUZy}i_55*I`.d}Z=`/%Y+/%~W()%9v_,/b~", ";b3qb*s) X:C_9`{VZn6yZ`'q0L?_kgUw-oZ<.))=%90P:]60oabPg0O@[WS7wO@Quq2;WoS$s3='hGq1vogKr's!2)r5%O31iA9", "E9:*>6+-G.#4KJEq_>4.tUx4}7W*Q'bQj]ly4CbkVn{JEJ,16j2l+{{=0N<y@XD,iVK/?51kc[I/pXCqUv'SL:m<qF*e]IOI(L<G", "lNm$#<JF'Hk'Z]pd?Dr)3x#W[qFgJwg+'H=phQX('_ 8dGHE'!1dm1myoX*['{U.M6v{G,gNiMLzSi$(CyOAb9Lr96g5'Uzb3J_)", "/x3EyhN$-8qEkiFN%SMAr6l&#m?*QEr&![t:3aS?];kwKdErFOJb]`UwwH,U>y ej4%%2%[_#Q?M!T-=a-&'I+*42 Ec@Nz>4dxx", ".'!U#EHJ4#i8lDux:p^5h>.COu@Ta;|dZ#k]^c^,V[*cyBKn(6Q%PZv$EnVK/WxO?v*8YjRbj}8DF,^yO`.N/kiHV~V^glTH@h3#", "GF[{P;d;B:+~[J FblRx~nZFAM:._TkNEK5bGb1rf[b{v6_5Gh^)65b2'AH72CQY5Hm^JI#?Q:T3Hi8_Q*+npDh*fw2)v0iNTElM", "07lBuE^1RfZt|s(wMwy])yTAJ^Rt,%=*Z#'I`R,vZtTc=qL08 ;? k'.+yN|$'6tqI{:)RRbmxp8T_CcixTvQX):)S4j-d)XA14m", "/+4^luOkwxD|>Mh.~:'0'.g+*YIu2DtZw&[o+_Dj$F|)woD7vQ!U'g)~Gc!_V|.@5x'kb%S?R{(^PMU)ZJ,4tS,M^a>$IVO7-Hqj", "Nf'';gW h$%k.3[8pwN<D>ut^$Z:*>#P=2,.05bwCww7jNjODX T~9HA}|R2U80PSvWC@+lpZ63xOuZ@[mcIk 'tO*cmNX! -%_]", "'S C_s#pQzFv{Ba|g%Y&4cCQAM<WSAOMknKJ6s+KN;!W)sZm&9UtypUMt!yys.:fR]gfRTQvlOaU6%oq>].+(ZaxARXt$%[']uxa", "~KJAaewCt!<'h''24'i%]pZ9#P2G-V^y3b}<(QwqqR'8'ToP1Aq7vrVt@xQmwk~#D>DFv!l;LP=}k;F(!k^Mp Kv?#z3lS9{Jx7v", "GPO=AAd-4a`,cT}Waw!dgQ'l&e[^BFc`J@aDRK'q(_D$?CC9pArHQpO4BmSB's*,V+yMWhE@s#IU<Kj0%s!~<bC#<l?8_'dE U2-", "Z.PfB'(z vGqT}qyG3h,T%0T[i0Uj(U~#7|v7mwaEH@5>/`Oa}9YCyI [,b';V%9+xu;E&'y,QE_^(eEH*.clfYyV<2*;c#!b}>j", "t1pgS-31`tZBSTi@7F#gl&1d>:Q=4#z[%>ou0g~}9XH}ithCi*q_TY<&O=q{'}JAs;mK7bimt]+?e0(^W5O8GB'jd*ae@2]VKJA$", "_*53^V]sW=<%Yn1/_Rug10+:2{5z9E]gi3#CeU8J.^KusG36U7KZOk33ni!//&Vvy xLOL^7h`zF.[8K]BAz#`OcR~9fu4b6]C/-", "7[HoU?`lGgQu 0*ngA(/fv>+tnP4NaNRtwzBN>W3QJIATAL@DSbRHo,X?vrLh`vi_||gu!X=mAjIz rV~/(K|+L-F]2UvwoU?IS+", "W41hjS<#4!P:3HhL/8X_~ZAtKNkQ*/FzYq&J^2/6@OP*C_mXf'!iL&(cs9a_2r'hP0b66*Oke9BWM},88cOov!*X-Un9'Z3FE'po", "O2jj%mobJpa`#H (Jhije/);&P_r5fm7Hyq3A,$&]RB2t.>X,K8{mg4~GFmo%u)vm}4Bsi{axG'DbG?7^7l+at'+n{YLbt>h{P^>", "39.^6{j*l@ix|~u_<0n;iIw3y2l|dc>F'Rh )mC;<6+PK/ik.+`zS{U`@UG?'.5B!F(V2hbG#|fz'vyr4/'ZjTb'uttnB6tl`RxI", "j#e3hUoB&Er/@=4<sYe*sr'9vX]<1:~on?B_S[:1v?djU#o}k.oDS[tN,H+j$lepCoQ:j|q/@m9l}jfQ[Uk6;yPQMe*<xGDlQh}~", ":B;_d?$FGVBr|{A<]5g:IwtQ>%S'N4+eu|(Tyu:SaSj{b*=:H`+@WapQ)mWPHF':>2l_2nGQu:9OG-mDr^|~ZjRh=i-2:7t?CQ;_", "L!6|~%HknU;s,A6_Em$+Y%zXO:Y$R->En?[oE;m&R?mW'snK-vfdrjyOXtQdpw'%OL n2I=DFw*YNR=.SUHjhUhxb%W#./G=WM=d", "&7jYqVlu;J,6u/k?'bQ~w@aEcfWOzDW/zYPpVlL3T@/:=vL 81s4'(5d{ke!;~9[H[&Z~_shapne%3{_w+CVrCwS*!.=[/%3d9on", "FS GnuIfQW'*'|402opD@O)AyrEAS.''_X<MbTB@k)=PBN,Qo9rV('I'4zWy[;6GeiVzh{v~m0~(f9uR]9'+}|ld]qN1vZZ<PNOF", ";rb-dlDQEuaxqNT>seW?/U|MQB_iflA^b&8@4d 9&s3dm~e8HkO^B!bJF_;59CFYZS8D{8e(=>sfb5;*X*waEG~4Vnw71kjz'M~l", "}I'@^u:Dk$}(3<k'K|l!IGTh=lnOQ!Ec/),0`~*X@T:R$*I{KygcEc&L^i!`zq^kUb'h('H]I[O`'ja'q`>fIN@F;)-9)UnE,RDV", "s0iTRR$#xL-Hs#74?;c41(GvTl@H B&>5FG'R6{%@gcx&1#4`.2n,AQxu.Yj4W03Tz&<l^_*.3(Fo.=1;N|}'}[4~'Df:,7fRtI3", "(q'`|pnok0ec x!}16c)g!+''8>|lQv=HbV7Hw'wkvd><s;%ng=0@=8YKKb(0T[Flv+x<G%A_&DTF6j_aT{YQkO=0?0S*T[eyW?}", ">k4;zxT@ccnjpPu(c(r3:MUajl`pfcz46qwf7p'B(K||YPK{U 'g!/Q`iv' fWy*'A/&>xxlYAb?X%oeJ1zV|5)$tynLSuxt#xQK", "+{s/R-FG4cL5sJ7<(q(ObLW%%x%1@}39PscBAj)&_#g!Ddpb77JAA!}mQJ~uiPN]Yf6'0OKto#I'&(o.9Q9=1K4_oB{GD2'q@qls", ";at l?:yT9?>W5{j:i8N<WR0V8^}6AATu#L?k#Q z7'(=2*J%do)S=)RL_09FSD;/2.s.sZdlJ&cz*/Tm(LADH|u^&Cd}$+39e$&", "LDCC0g6FM=;Q3SehDlW:G#=ZnWf<#^Of}:zB{Ifx95[oe?6UL4x/!.b/:Yt6H-L.{i e,b]c 2ud%HG`L@>[U>GdKZzbBwyeA7QC", ")0*!oyT*[K#2CJ@n~u?wb~{Krz6%Yf#'0%^N90qmgE_Hj/zrh8<'7'*G?K_3HmLb6<Zu;4$^'ahnwn0rJb2+J?oizYvP(9;B.(%9", "YF$Yv=v*nfPIuA>/jr]TH7'pJ3Jqnp{!Nm8S<-=a<](Nn,r,_$C>|K;rMzBqm;G[/Y8QGY]vsKg?NVY04Q.qA<^EbIzX:k8XrO*G", "b/KhLDV'r-g3@@3R9pc6w+`-(7<-/;yrs8GI6SIJ?w'@6Ew0|+NC}lI<o$x|~D{%494A%'-k0(tb#v`uwkpNyYa!'B#'0$bSSoYs", "+G:W$` !dDJPrqU& '4CGeTIHstl9$&^5}y$=2h>JlfL*F6fx5E.C!8W}9?wJ *h7~>:!I(Xz[Nye!IvH-y!9T0_Y^^B'[f$-`QW", "{*NbO`.#L8j$m.'9)_9,5xr2z:Md8'j7Eo(in'|6C.)!c3'%0K[D8fgrw#4x2ntF'q-7R82*~=i8zo!F]p-k{m8O5d&^rom`V,:C", "dM]1[7ro`TvFToO>u8c@j:`P.__L%zS4py0qiWh8Oy4V]MX'Zln'7Cn}fd`@kE|3~YGkwo7Hm6K.>F`3m}`y&%9Ba;o~Zq| 8n[>", "Df;<SfKTpKJH+WKLuQtF';=6$Y7AOCP$ZlAOJZ&eCw&9_P7-V?@O2=F`0PRnCoFp:>,f7M3!CY+mLDRdOFgW*<c7 K%RU<B_*#)6", "H9dJx`Sn=AOHO[tTh0KZvB@7O5H$QbAxH@Kj)KSv-HTn5+OL2-/=a];xy?0?cj:en9,$Xc.2xS>wn14>G5MqjA<hG1-SfiJAx;0U", "A{.w;je!AyIA[..QwN'w=FLw.fAI/Aer4_Xe-={';Wm:eYk}sKxRrskCHSZ/ 'XYgjEf'X,E}JnhFw~o1W}Rj4!@}'f&^u%p>^lD", "h7}'*HfvKsO';7YNgPKI2:BW21u a:!!9GP@xS}+U70fmnjYnDp#aX:OfN8<RW82C>+^c[_`[<FVnqob5|e6nVV5uKNk>L>roh/c", "v-P!:va8Fu r=[k'Mj'3%H.1_J_7ZYmveA'WowB=b}#n07Boq{<l+=nicNeIz1;lsL!=l!l<;G{J}P|ct>7ZAm'QJ5uf0nR1;}Nm", "aQjG]G6.%[B55WH!<T8.B*^#v+-xm=]'+;p3S jJx&w!.6W4qML5%RKNdTn~^NRxU*Bky]SCqe,]69'eY2EijRcDQY('?|R(70ID", "#1g.P*>i@HV.)[5{Q>PI?@:CirWqe=@z)h+<)}-UlX'BKQJ>XT_+NP4Y:xT>S7tNw`:mN-i>~#L 4?lInd#We6tGX-sRNLKMKM9}", "kAM?vZd'{q.-IlQKKrlxe3Oq@'qZ#r]V@O.}$a/sUS1^P=A1XYN'!35LjGnmOl~u'5&pC?dB6-KfjHwI-PQSxV?xt{9s)aYloOc2", "n%DWh.1!Jal#%!mzp4J t9E TA?oJ[g'dx3i4$&75pTrnsC`{W_LLOP$JLX8)0#rHq9G<R-s'vf.F'=U&/G0HTBouQ'='`zwFi}j", "J3]Fei;,qGCZ0~gAbpdujEp(?!U~Bs(SG$n(Hg]hAZ_NCY+YfD&L'EC 93DL7(jW iMXjshmP~G=Q8^F:b!NpzU]v~Z462N-'84", "|Zc-$p8i#dBf:Bsg}@lq1$N`{{1BNu'j2X[UHSJbD^tI2QMlkB_J5lQc'?@([(LG1@MG}, bdj+BG'_IBSDg|D.R/@7o/z[#..ee", "6LH+?{]AybpsUF~.OlZqN5%>m-e9tJpkD/DW$D[BNW*' uu9-7^~[A=4[]GOyQ>U'0'LSDs|h'O=!y8z)H_YD5Nj L`/3X+hX7v1", "wVVW!>p'Z.Dm`D4um?]5.t$hC>Ey~W&Ws~+'.0jr'Yl:=?IU[s? <J0QQ?n -}P,B[L28,~ylIhu:hqRUQ6 X?_D^;7g'[7-YuU'", "Bf'OKodQOu%9Ar3V[Zsop}w}J6N|VT<%rf#m?^2hW:WrF1)PEqo.[)x]Pi8#'HS# }e(QSp%7T!s2[qlJAc8Bv<AMILy3S]Y/0i}", "f]@-$''RHfQS&Ex5{J;'NK8P0P@#%^w[$e'54pnBr`9BV6e1?yM$x+rWhkXS'nZcc(+Iu'0T}Hkyws(}2KnG.6Q0<B/{nQn4F^f~"};
@Benchmark
public void testMethod() {
String s = "";
for (int i = 0; i < STRINGS.length; i++) {
s += STRINGS[i];
}
}
}
使用 JDK 8 编译打包测试代码,进行基准测试
字符串拼接的字节码:
L4
LINENUMBER 47 L4
NEW java/lang/StringBuilder
DUP
INVOKESPECIAL java/lang/StringBuilder.<init> ()V
ALOAD 1
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
GETSTATIC vip/wuweijie/test/jmh/MyBenchmark.STRINGS : [Ljava/lang/String;
ILOAD 2
AALOAD
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
ASTORE 1
确实是使用了 StringBuilder
进行字符串拼接
运行基准测试,结果如下:
# JMH version: 1.23
# VM version: JDK 1.8.0_241, Java HotSpot(TM) 64-Bit Server VM, 25.241-b07
# VM invoker: /usr/local/jdk1.8.0_241/jre/bin/java
# VM options: -Dfile.encoding=UTF-8
# Warmup: 5 iterations, 10 s each
# Measurement: 5 iterations, 10 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: vip.wuweijie.test.jmh.MyBenchmark.testMethod
# Run progress: 0.00% complete, ETA 00:08:20
# Fork: 1 of 5
# Warmup Iteration 1: 93.236 ops/s
# Warmup Iteration 2: 127.325 ops/s
# Warmup Iteration 3: 126.310 ops/s
# Warmup Iteration 4: 127.374 ops/s
# Warmup Iteration 5: 127.015 ops/s
Iteration 1: 126.180 ops/s
Iteration 2: 127.410 ops/s
Iteration 3: 127.397 ops/s
Iteration 4: 127.441 ops/s
Iteration 5: 127.245 ops/s
# Run progress: 20.00% complete, ETA 00:06:41
# Fork: 2 of 5
# Warmup Iteration 1: 93.343 ops/s
# Warmup Iteration 2: 126.607 ops/s
# Warmup Iteration 3: 126.598 ops/s
# Warmup Iteration 4: 125.847 ops/s
# Warmup Iteration 5: 125.769 ops/s
Iteration 1: 126.014 ops/s
Iteration 2: 126.306 ops/s
Iteration 3: 125.094 ops/s
Iteration 4: 125.891 ops/s
Iteration 5: 125.621 ops/s
# Run progress: 40.00% complete, ETA 00:05:00
# Fork: 3 of 5
# Warmup Iteration 1: 92.316 ops/s
# Warmup Iteration 2: 126.006 ops/s
# Warmup Iteration 3: 126.053 ops/s
# Warmup Iteration 4: 125.692 ops/s
# Warmup Iteration 5: 125.648 ops/s
Iteration 1: 125.836 ops/s
Iteration 2: 125.944 ops/s
Iteration 3: 125.813 ops/s
Iteration 4: 125.930 ops/s
Iteration 5: 124.652 ops/s
# Run progress: 60.00% complete, ETA 00:03:20
# Fork: 4 of 5
# Warmup Iteration 1: 92.554 ops/s
# Warmup Iteration 2: 125.519 ops/s
# Warmup Iteration 3: 125.771 ops/s
# Warmup Iteration 4: 126.094 ops/s
# Warmup Iteration 5: 125.642 ops/s
Iteration 1: 125.211 ops/s
Iteration 2: 125.827 ops/s
Iteration 3: 125.788 ops/s
Iteration 4: 125.548 ops/s
Iteration 5: 125.988 ops/s
# Run progress: 80.00% complete, ETA 00:01:40
# Fork: 5 of 5
# Warmup Iteration 1: 92.194 ops/s
# Warmup Iteration 2: 124.696 ops/s
# Warmup Iteration 3: 126.174 ops/s
# Warmup Iteration 4: 125.492 ops/s
# Warmup Iteration 5: 126.373 ops/s
Iteration 1: 125.342 ops/s
Iteration 2: 125.739 ops/s
Iteration 3: 125.152 ops/s
Iteration 4: 126.127 ops/s
Iteration 5: 125.781 ops/s
Result "vip.wuweijie.test.jmh.MyBenchmark.testMethod":
125.971 ±(99.9%) 0.545 ops/s [Average]
(min, avg, max) = (124.652, 125.971, 127.441), stdev = 0.728
CI (99.9%): [125.426, 126.516] (assumes normal distribution)
# Run complete. Total time: 00:08:21
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
experiments, perform baseline and negative tests that provide experimental control, make sure
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
Do not assume the numbers tell you what you want them to tell.
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod thrpt 25 125.971 ± 0.545 ops/s
使用 JDK 11 编译打包测试代码,进行基准测试
字符串拼接的字节码:
L4
LINENUMBER 47 L4
ALOAD 1
GETSTATIC vip/wuweijie/test/jmh/MyBenchmark.STRINGS : [Ljava/lang/String;
ILOAD 2
AALOAD
INVOKEDYNAMIC makeConcatWithConstants(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [
// handle kind 0x6 : INVOKESTATIC
java/lang/invoke/StringConcatFactory.makeConcatWithConstants(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
// arguments:
"\u0001\u0001"
]
ASTORE 1
运行基准测试,结果如下:
# JMH version: 1.23
# VM version: JDK 11.0.6, Java HotSpot(TM) 64-Bit Server VM, 11.0.6+8-LTS
# VM invoker: /usr/local/jdk-11.0.6/bin/java
# VM options: -Dfile.encoding=UTF-8
# Warmup: 5 iterations, 10 s each
# Measurement: 5 iterations, 10 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: vip.wuweijie.test.jmh.MyBenchmark.testMethod
# Run progress: 0.00% complete, ETA 00:08:20
# Fork: 1 of 5
# Warmup Iteration 1: 258.715 ops/s
# Warmup Iteration 2: 287.679 ops/s
# Warmup Iteration 3: 284.280 ops/s
# Warmup Iteration 4: 286.362 ops/s
# Warmup Iteration 5: 284.266 ops/s
Iteration 1: 285.369 ops/s
Iteration 2: 283.737 ops/s
Iteration 3: 285.116 ops/s
Iteration 4: 285.400 ops/s
Iteration 5: 283.766 ops/s
# Run progress: 20.00% complete, ETA 00:06:41
# Fork: 2 of 5
# Warmup Iteration 1: 269.397 ops/s
# Warmup Iteration 2: 287.178 ops/s
# Warmup Iteration 3: 284.824 ops/s
# Warmup Iteration 4: 287.108 ops/s
# Warmup Iteration 5: 285.980 ops/s
Iteration 1: 285.910 ops/s
Iteration 2: 285.551 ops/s
Iteration 3: 286.514 ops/s
Iteration 4: 284.292 ops/s
Iteration 5: 285.681 ops/s
# Run progress: 40.00% complete, ETA 00:05:00
# Fork: 3 of 5
# Warmup Iteration 1: 273.475 ops/s
# Warmup Iteration 2: 281.529 ops/s
# Warmup Iteration 3: 282.911 ops/s
# Warmup Iteration 4: 282.452 ops/s
# Warmup Iteration 5: 275.956 ops/s
Iteration 1: 285.633 ops/s
Iteration 2: 284.642 ops/s
Iteration 3: 284.067 ops/s
Iteration 4: 284.872 ops/s
Iteration 5: 283.630 ops/s
# Run progress: 60.00% complete, ETA 00:03:20
# Fork: 4 of 5
# Warmup Iteration 1: 262.448 ops/s
# Warmup Iteration 2: 285.225 ops/s
# Warmup Iteration 3: 286.138 ops/s
# Warmup Iteration 4: 286.043 ops/s
# Warmup Iteration 5: 286.555 ops/s
Iteration 1: 287.154 ops/s
Iteration 2: 278.833 ops/s
Iteration 3: 286.033 ops/s
Iteration 4: 286.214 ops/s
Iteration 5: 285.747 ops/s
# Run progress: 80.00% complete, ETA 00:01:40
# Fork: 5 of 5
# Warmup Iteration 1: 272.746 ops/s
# Warmup Iteration 2: 284.205 ops/s
# Warmup Iteration 3: 283.674 ops/s
# Warmup Iteration 4: 284.049 ops/s
# Warmup Iteration 5: 284.668 ops/s
Iteration 1: 283.052 ops/s
Iteration 2: 283.072 ops/s
Iteration 3: 285.613 ops/s
Iteration 4: 281.719 ops/s
Iteration 5: 284.352 ops/s
Result "vip.wuweijie.test.jmh.MyBenchmark.testMethod":
284.639 ±(99.9%) 1.304 ops/s [Average]
(min, avg, max) = (278.833, 284.639, 287.154), stdev = 1.740
CI (99.9%): [283.335, 285.942] (assumes normal distribution)
# Run complete. Total time: 00:08:21
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
experiments, perform baseline and negative tests that provide experimental control, make sure
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
Do not assume the numbers tell you what you want them to tell.
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod thrpt 25 284.639 ± 1.304 ops/s
使用 JDK 11 运行 JDK 8 编译打包的 benchmark.jar,进行基准测试
字符串拼接的字节码:
L4
LINENUMBER 47 L4
NEW java/lang/StringBuilder
DUP
INVOKESPECIAL java/lang/StringBuilder.<init> ()V
ALOAD 1
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
GETSTATIC vip/wuweijie/test/jmh/MyBenchmark.STRINGS : [Ljava/lang/String;
ILOAD 2
AALOAD
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
ASTORE 1
运行基准测试,结果如下:
# JMH version: 1.23
# VM version: JDK 11.0.6, Java HotSpot(TM) 64-Bit Server VM, 11.0.6+8-LTS
# VM invoker: /usr/local/jdk-11.0.6/bin/java
# VM options: <none>
# Warmup: 5 iterations, 10 s each
# Measurement: 5 iterations, 10 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: vip.wuweijie.test.jmh.MyBenchmark.testMethod
# Run progress: 0.00% complete, ETA 00:08:20
# Fork: 1 of 5
# Warmup Iteration 1: 236.861 ops/s
# Warmup Iteration 2: 281.725 ops/s
# Warmup Iteration 3: 287.165 ops/s
# Warmup Iteration 4: 288.363 ops/s
# Warmup Iteration 5: 286.449 ops/s
Iteration 1: 288.665 ops/s
Iteration 2: 288.278 ops/s
Iteration 3: 290.180 ops/s
Iteration 4: 285.125 ops/s
Iteration 5: 289.286 ops/s
# Run progress: 20.00% complete, ETA 00:06:41
# Fork: 2 of 5
# Warmup Iteration 1: 243.368 ops/s
# Warmup Iteration 2: 282.058 ops/s
# Warmup Iteration 3: 282.354 ops/s
# Warmup Iteration 4: 287.752 ops/s
# Warmup Iteration 5: 286.069 ops/s
Iteration 1: 287.263 ops/s
Iteration 2: 287.933 ops/s
Iteration 3: 288.983 ops/s
Iteration 4: 287.766 ops/s
Iteration 5: 287.663 ops/s
# Run progress: 40.00% complete, ETA 00:05:00
# Fork: 3 of 5
# Warmup Iteration 1: 245.486 ops/s
# Warmup Iteration 2: 279.641 ops/s
# Warmup Iteration 3: 287.123 ops/s
# Warmup Iteration 4: 288.246 ops/s
# Warmup Iteration 5: 286.769 ops/s
Iteration 1: 288.454 ops/s
Iteration 2: 285.354 ops/s
Iteration 3: 283.967 ops/s
Iteration 4: 285.920 ops/s
Iteration 5: 288.083 ops/s
# Run progress: 60.00% complete, ETA 00:03:20
# Fork: 4 of 5
# Warmup Iteration 1: 242.841 ops/s
# Warmup Iteration 2: 287.658 ops/s
# Warmup Iteration 3: 281.378 ops/s
# Warmup Iteration 4: 287.597 ops/s
# Warmup Iteration 5: 286.738 ops/s
Iteration 1: 290.145 ops/s
Iteration 2: 281.709 ops/s
Iteration 3: 285.905 ops/s
Iteration 4: 279.926 ops/s
Iteration 5: 278.515 ops/s
# Run progress: 80.00% complete, ETA 00:01:40
# Fork: 5 of 5
# Warmup Iteration 1: 234.254 ops/s
# Warmup Iteration 2: 285.242 ops/s
# Warmup Iteration 3: 285.786 ops/s
# Warmup Iteration 4: 289.625 ops/s
# Warmup Iteration 5: 291.023 ops/s
Iteration 1: 288.937 ops/s
Iteration 2: 287.133 ops/s
Iteration 3: 289.151 ops/s
Iteration 4: 287.932 ops/s
Iteration 5: 289.399 ops/s
Result "vip.wuweijie.test.jmh.MyBenchmark.testMethod":
286.867 ±(99.9%) 2.274 ops/s [Average]
(min, avg, max) = (278.515, 286.867, 290.180), stdev = 3.036
CI (99.9%): [284.593, 289.141] (assumes normal distribution)
# Run complete. Total time: 00:08:21
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
experiments, perform baseline and negative tests that provide experimental control, make sure
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
Do not assume the numbers tell you what you want them to tell.
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod thrpt 25 286.867 ± 2.274 ops/s
性能测试总结
个人电脑得出的基准测试结果仅供参考。
测试结果 | 百分比 | |
---|---|---|
JDK 8 编译运行基准测试 | 125.971 ± 0.545 | 100% |
JDK 11 编译运行基准测试 | 284.639 ± 1.304 | 225.96% |
JDK 11 运行 JDK 8 编译的基准测试 | 286.867 ± 2.274 | 227.72% |
可以看到 Java 11 的字符串拼接性能相比 Java 8 有了很大的提升。而且即使是 Java 8 编译的代码,用 Java 11 运行字符串拼接性能也得到了提升。