-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.xml
275 lines (132 loc) · 788 KB
/
search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>分拆数&钩子公式学习笔记</title>
<link href="/2024/11/17/%E5%88%86%E6%8B%86%E6%95%B0-%E9%92%A9%E5%AD%90%E5%85%AC%E5%BC%8F%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
<url>/2024/11/17/%E5%88%86%E6%8B%86%E6%95%B0-%E9%92%A9%E5%AD%90%E5%85%AC%E5%BC%8F%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</url>
<content type="html"><![CDATA[<h2 id="分拆数-p-n"><a href="#分拆数-p-n" class="headerlink" title="分拆数 $p_n$"></a>分拆数 $p_n$</h2><p>其 gf 为<br>$$<br>\sum p_nx^n=\prod_{i=1}^{\infin}\frac{1}{1-x^i}<br>$$</p><h2 id="k-部分拆数-p-n-k"><a href="#k-部分拆数-p-n-k" class="headerlink" title="$k$ 部分拆数 $p(n,k)$"></a>$k$ 部分拆数 $p(n,k)$</h2><p>递推:将等式两侧同时减 $k$ 并枚举右侧零的数量 $i$。<br>$$<br>p(n,k)=\sum_{i=0}^{k}p(n-k,k-i)=\sum_{i=0}^kp(n-k,i)<br>$$<br>画出转移图不难得到<br>$$<br>p(n,k)=p(n-1,k-1)+p(n-k,k)<br>$$<br>也可以分 $r_1=1$ 和 $r1\gt 1$ 得到。</p><p>其二元 gf 为<br>$$<br>\sum p(n,k)x^ny^k=\prod_{i=1}^{\infin}\frac{1}{1-x^iy}<br>$$</p><h2 id="互异分拆数-pd-n"><a href="#互异分拆数-pd-n" class="headerlink" title="互异分拆数 $pd_n$"></a>互异分拆数 $pd_n$</h2><p>其 gf 为<br>$$<br>\sum pd_nx^n=\prod_{i=1}^{\infin}(1+x^i)<br>$$</p><h2 id="互异-k-部分拆数-pd-n-k"><a href="#互异-k-部分拆数-pd-n-k" class="headerlink" title="互异 $k$ 部分拆数 $pd(n,k)$"></a>互异 $k$ 部分拆数 $pd(n,k)$</h2><p>递推:将等式两侧同时减 $k$,分 $r_1=1$ 和 $r_1\gt 1$。<br>$$<br>pd(n,k)=pd(n-k,k)+pd(n-k,k-1)<br>$$<br>其二元 gf 为<br>$$<br>\sum pd(n,k)x^ny^k=\prod_{i=1}^{\infin}(1+x^iy)<br>$$</p><h2 id="奇分拆数-po-n"><a href="#奇分拆数-po-n" class="headerlink" title="奇分拆数 $po_n$"></a>奇分拆数 $po_n$</h2><p>$$<br>\prod_{i=1}^{\infin}(1+x^i)=\prod_{i=1}^{\infin}\frac{1-x^{2i}}{1-x^i}=\prod_{i=1}^{\infin}\frac{1}{1-x^{2i-1}}<br>$$</p><p>左边是互异分拆数的 gf,右侧是奇分拆数的 gf。所以 $po_n=pd_n$。</p><h2 id="五边形数定理"><a href="#五边形数定理" class="headerlink" title="五边形数定理"></a>五边形数定理</h2><ul><li>互异奇、偶分拆数 $pdo_n,pde_n$。</li></ul><p>注意下式,即 $p_n$ 的 gf 的倒数<br>$$<br>\prod_{i=1}^{\infin}(1-x^i)<br>$$<br>是<br>$$<br>\sum(pde_n-pdo_n)x^n<br>$$<br>接下证明在大多数情况下 $pde_n=pdo_n$,即 $x^n$ 项系数为 $0$,其余情况二者之差不超过 $1$。</p><p>考虑将 $n$ 所有分拆两两分组,即令互异奇分拆与互异偶分拆形成双射。</p><p>画出 Ferrers 图,比较右上角极长 $45^{\circ}$ 连续段的长度 $s$ 和底部长度 $b$。将较小的一方挪到另一方即可改变部分数的奇偶性。</p><p>但是对于某些 $n$,存在无法进行上述操作的 Ferrers 图。不难发现只有如下两种:</p><p><img src="5.png" alt=""></p><p>此时 $n=\frac{s(3s-1)}{2}$ 或 $n=\frac{s(3s+1)}{2}$。不论从代数角度还是图形角度,我们知道两种情况不会同时发生。$\Box$</p><p>下面仔细推导一下该生成函数展开式的系数。</p><p>这些 $n$ 处的系数即 $pde_n-pdo_n$,与 $s$ 的奇偶性有关。$s$ 是奇数就是 $-1$,偶数就是 $1$。</p><p>为了得到更漂亮的结论我们整理两个条件得到 $x^n$ 的系数<br>$$<br>\begin{cases}<br>(-1)^s&\exist s\in\mathbb{Z},n=\frac{s(3s-1)}{2}\\<br>0&others<br>\end{cases}<br>$$<br>换句话说一开始的生成函数等于<br>$$<br>\prod_{i=1}^{\infin}(1-x^i)=\sum_{i=-\infin}^{\infin}(-1)^ix^{\frac{i(3i-1)}{2}}=1-x-x^2+x^5+x^7-x^{12}-\dots<br>$$<br>零次项系数为 $1$,恰好是 $pde_0=1,pdo_0=0$,符合常理。$\Box$</p><p>下面给出其和 $p_n$ 的联系。(其实就是它和 $p_n$ 的生成函数乘积是 $1$ 啦)。<br>$$<br>(1+p_1x+p_2x^2+\dots)(1-x-x^2+x^5+x^7-x^{12}-\dots)=1<br>$$<br>对比系数即可得到 $p_n$ 的递推式!<br>$$<br>p_n-p_{n-1}-p_{n-2}+p_{n-5}+\dots=0\Longrightarrow p_n=p_{n-1}+p_{n-2}-p_{n-5}-\dots<br>$$</p><blockquote><p>这个时候会发现上面讨论的生成函数是数列 $\{p_n\}$ 的特征多项式交换高低次项的结果。</p><p>这和<a href="https://www.luogu.com.cn/article/uy0wc1x4">前面一篇博客</a>得到的结论是一样的。即将特征多项式交换高低次项,得到数列 gf 的逆。$\Box$</p></blockquote><p>为什么是五边形数定理呢?注意到第 $n$ 个五边形数等于 $\frac{n(3n-1)}{2}$。</p><p><img src="6.png" alt=""></p><h2 id="钩长公式"><a href="#钩长公式" class="headerlink" title="钩长公式"></a>钩长公式</h2><p>给定大小为 $n$ 的杨表 $\lambda=(\lambda_1,\lambda_2,\dots)$。定义一个格子 $(i,j)$ 的钩长 $h_{i,j}$ 等于其右侧下侧以及它本身的全部格子数量。</p><p>现要求用 $1\sim n$ 填充格子使每行每列递增。求方案数。</p><p>结论:答案等于<br>$$<br>H(\lambda)=\frac{n!}{\prod h_{i,j}}<br>$$<br>证明:</p><p><a href="https://www.cnblogs.com/suncongbo/p/14967000.html">【学习笔记】杨表的拓扑序计数与钩长公式 - suncongbo - 博客园</a></p><p><a href="https://zhuanlan.zhihu.com/p/639459761">钩长公式(Hook Length Formula):杨表中的计数结论 - 知乎</a></p><p>设 $F(\lambda)$ 表示标准答案。注意到 $n$ 一定在某个“角落”,考虑简单的 dp。</p><p>枚举 $n$ 所处的位置是第 $i$ 个角落 $(\alpha_i,\beta_i)$,并设 $\mu_i$ 表示一个杨表,其由 $\lambda$ 抠去 $(\alpha_i,\beta_i)$ 得到,记为 $\mu_i\uparrow\lambda$。</p><p>显然<br>$$<br>F(\lambda)=\sum_{\mu\uparrow\lambda}F(\mu)<br>$$<br>现在转为证明上面定义的 $H(\lambda)$ 具有同样的递推式。<br>$$<br>H(\lambda)=\sum_{\mu\uparrow\lambda}H(\mu)\Longleftrightarrow \sum_{\mu\uparrow\lambda}\frac{H(\mu)}{H(\lambda)}=1<br>$$<br>归 $1$ 启示我们使用概率。将 $H$ 按定义式拆开并化简。关注求和的其中一项 $\mu_i$,其由 $\lambda$ 抠去 $(\alpha,\beta)$ 得到:<br>$$<br>\frac{H(\mu)}{H(\lambda)}=\frac{1}{n}\prod_{i=1}^{\alpha-1}(1+\frac{1}{h_{i,\beta}-1})\prod_{j=1}^{\beta-1}(1+\frac{1}{h_{\alpha,j}-1})=\frac{1}{n}\sum_{A\subseteq\{1,\dots,\alpha-1\}\\\B\subseteq\{1,\dots,\beta-1\}}\prod_{i\in A}\frac{1}{h_{i,\beta}-1}\prod_{j\in B}\frac{1}{h_{\alpha,i}-1}<br>$$</p><p>定义 hook-walk:</p><ul><li>随机降落在一个杨表中的格子 $(i,j)$。</li><li>在 $(i,j)$ 下面和右边的全部格子中随机一个,并移动到这里。</li><li>直到 $(i,j)$ 到达边角 $c$。</li></ul><p>关注求和的一个 $A,B$,右边的乘积是:</p><p>第一步降落 $(A_1,B_1)$,在 $(\alpha,\beta)$ 终止的全部 hook-walk 路径中,经过的行列集合分别是 $A,B$ 的概率。</p><p>原因是,行列的行走是独立的。因此概率相乘。上面的两篇博客使用的是 dp 归纳。$\Box$</p><p>那么整个求和的结果就是最终到达 $(\alpha,\beta)$ 的概率。即<br>$$<br>\mathbb{P}(c=(\alpha,\beta))=\frac{H(\mu)}{H(\lambda)}<br>$$<br>所以得到<br>$$<br>\sum_{\mu\uparrow\lambda}\frac{H(\mu)}{H(\lambda)}=\sum \mathbb{P}(c=(\alpha_i,\beta_i))=1<br>$$<br>$\Box$</p>]]></content>
<categories>
<category> 数学 </category>
</categories>
<tags>
<tag> 数学 </tag>
</tags>
</entry>
<entry>
<title>特征方程</title>
<link href="/2024/11/17/%E7%89%B9%E5%BE%81%E6%96%B9%E7%A8%8B/"/>
<url>/2024/11/17/%E7%89%B9%E5%BE%81%E6%96%B9%E7%A8%8B/</url>
<content type="html"><![CDATA[<p>给出了求常系数齐次线性递推的通项公式的方法。</p><p>没有涉及任何高深的内容。<strong>认识</strong> OGF 即可。</p><p>基本是把别人写的东西重新讲了一遍。主要有意思的是 P4 提到的两种方法之间的联系。</p><p>突然发现因为要求高次方程精确根,本文基本没有任何实战价值。</p><p>以后有新感悟再写。</p><h2 id="P1"><a href="#P1" class="headerlink" title="P1"></a>P1</h2><p>给定 $f_0,f_1,\dots,f_{k-1}$,当 $n\geq k$:<br>$$<br>f_n=a_1f_{n-1}+a_2f_{n-2}+\dots+a_kf_{n-k}=\sum_{i=1}^k a_if_{n-i}\tag 1<br>$$<br>常系数指 $a_1,a_2,\dots,a_k$ 都是常数,如 $f_{n}=nf_{n-1}$ 这样的递推关系不在此类。</p><p>齐次指递推关系中没有常数项。式 $(1)$ 并没有写常数项。</p><p>线性指一维。</p><p>接下来会用一种比较简单的方式计算出此类递推式的通项公式,在 $k$ 不是很大时一般容易手算,稍大的情况可能需要计算机的帮助。</p><hr><h2 id="P2"><a href="#P2" class="headerlink" title="P2"></a>P2</h2><p>为了直观,我们分析一个具体的递推,并在结束后描述该问题的一般形式。</p><p>不妨以斐波那契数列为例:$f_{0}=0,f_1=1$,当 $n\geq 2$<br>$$<br>f_n=f_{n-1}+f_{n-2}\tag 2<br>$$<br>注意到递推被划分为界限分明的两部分:第一部分是初始值,第二部分是递推关系。</p><p>我们不难得到一些只满足递推关系的数列。比如下面这个:<br>$$<br>1,q,q^2,q^3,\dots,q^n,\dots<br>$$<br>令 $f_n=q^n$,由 $(2)$ 推出:<br>$$<br>q^n=q^{n-1}+q^{n-2}\Longrightarrow q^2-q-1=0\tag 3<br>$$<br>方程 $(3)$ 的每个根都导出一个满足递推关系的数列。</p><p>解出来 $q_1=\frac{1+\sqrt 5}{2},q_2=\frac{1-\sqrt 5}{2}$。但这两个数列都不满足初值。</p><p>考虑用这两个数列构造出满足初值的数列,且不影响递推关系。</p><p>若 $\{g_n\}$ 满足递推关系,则 $\{cg_n\}$ 满足递推关系。</p><p>若 $\{g_n\},\{h_n\}$ 都满足递推关系,则 $\{g_n+h_n\}$ 满足递推关系。</p><p>因此待定系数 $c_1,c_2$,使得 $\{c_1q_1^n+c_2q_2^n\}$ 满足初始值,如此<br>$$<br>c_1+c_2,c_1q_1+c_2q_2,c_1q_1^2+c_2q_2^2,\dots,c_1q_1^n+c_2q_2^n,\dots<br>$$<br>就是斐波那契数列。</p><p>根据 $c_1+c_2=f_0=0$ 和 $c_1q_1+c_2q_2=f_1=1$列出方程组:<br>$$<br>\begin{cases}<br>c_1+c_2=0\\<br>q_1c_1+q_2c_2=1<br>\end{cases}\Longrightarrow<br>\begin{cases}<br>c_1=\frac{1}{\sqrt 5}\\<br>c_2=-\frac{1}{\sqrt 5}<br>\end{cases}\tag 4<br>$$<br>这样就得到的大名鼎鼎的斐波那契数列的通项公式:<br>$$<br>f_n=\frac{1}{\sqrt 5}\left(\left(\frac{1+\sqrt 5}{2}\right)^n-\left(\frac{1-\sqrt 5}{2}\right)^n\right)<br>$$</p><hr><h2 id="P3"><a href="#P3" class="headerlink" title="P3"></a>P3</h2><p>根据上述过程,令 $f_n=q^n$ 满足递推关系<br>$$<br>f_n-a_1f_{n-1}-a_2f_{n-2}-\dots-a_kf_{n-k}=0<br>$$<br>得到<br>$$<br>q^k-a_1q^{k-1}-a_2q^{k-2}-\dots-a_k=0\tag 5<br>$$<br>式 $(5)$ 称作递推关系的特征方程,其有 $k$ 个根(可能有复根和重根),称作特征根。</p><p>(正因为有可能重根的存在所以这里的求法并不严谨,P4 继续讨论)</p><p>接下来像 $(4)$ 看到的那样,列出方程组即可得到通项公式。<br>$$<br>\begin{cases}<br>c_1+c_2+\dots+c_k=f_0\\<br>q_1c_1+q_2c_2+\dots+q_kc_k=f_1\\<br>\dots\\<br>q_1^{k-1}c_1+q_2^{k-1}c_2+\dots+q_k^{k-1}c_k=f_{k-1}<br>\end{cases}\tag 6<br>$$</p><hr><h2 id="P4"><a href="#P4" class="headerlink" title="P4"></a>P4</h2><p>接下来将会重新用 OGF 刻画过程,从另一个角度验证上述过程,讨论两种方式的关系,并处理重根的情况。</p><p>重根,据说必会导致 $(6)$ 无解。证明需要我不会的线性代数知识。总之,寄了。</p><p>递推关系可以用生成函数刻画。</p><blockquote><p>比如斐波那契数列的生成函数 $F(x)=f_0+f_1x+f_2x^2+\dots+f_nx^n+\dots$ 就满足<br>$$<br>\begin{aligned}<br>F(x)&=f_0+f_1x+f_2x^2+f_3x^3+\dots\\<br>-xF(x)&=\ \ \ \ -f_0x-f_1x^2-f_2x^3-\dots\\<br>-x^2F(x)&=\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -f_0x^2-f_1x^3-\dots<br>\end{aligned}<br>$$<br>三式相加,则二次项以后系数都为 $0$。所以<br>$$<br>(1-x-x^2)F(x)=x\Longrightarrow F(x)=\frac{x}{1-x-x^2}<br>$$<br>待定系数 $c_1,c_2$ 以提取系数:<br>$$<br>\frac{x}{1-x-x^2}=\frac{x}{(1-q_1x)(1-q_2x)}=\frac{c_1}{1-q_1x}+\frac{c_2}{1-q_2x}\tag 7<br>$$<br>然后同样地列方程组即可。</p><p>其中<br>$$<br>\frac{c_1}{1-q_1x}=\sum_{n\geq 0}c_1q_1^nx^n\tag 8<br>$$<br>即提取系数。</p></blockquote><p>例子中,分母是用 $\frac 1 x$ 替换特征方程的 $x$ 得到的结果,对分母的因式分解本质是求特征根(的倒数),$q_1,q_2$ 就是特征根,提取系数 $(7)(8)$ 也就是取了 $c_1q_1^n$!</p><p>现在就可以讨论特征根重根的情况了。读者可以先尝试自己证明再阅读以下内容,这里给出结论:</p><blockquote><ul><li>设 $q$ 是特征方程的 $s$ 重根,则将原做法的 $s$ 个 $\{q^n\}$ 替换为</li></ul><p>$$<br>\{q^n\},\{nq^n\},\dots,\{n^{s-1}q^n\}\tag 9<br>$$</p><p>接着待定系数。</p></blockquote><p>重根时 $(7)$ 最终得到 $s$ 个分母为 $1-qx$ 的项。我们不要把他完全拆开,即保留为<br>$$<br>\dots+c\left(\frac{1}{1-qx}\right)^{\large s}+\dots<br>$$<br>因为<br>$$<br>\left(\frac{1}{1-qx}\right)^{\large s}=\sum_{n\geq 0}{n+s-1\choose s-1}q^nx^n<br>$$<br>而组合数是关于 $n$ 的 $s-1$ 次多项式!</p><p>所以这一项可以再次拆成 $s$ 个幂级数,每个幂级数的占位元就是 $(9)$ 的样子,重新待定系数即可。</p><p>$\Box$</p>]]></content>
<categories>
<category> 数学 </category>
</categories>
<tags>
<tag> 数学 </tag>
</tags>
</entry>
<entry>
<title>杂题10</title>
<link href="/2024/08/22/%E6%9D%82%E9%A2%9810/"/>
<url>/2024/08/22/%E6%9D%82%E9%A2%9810/</url>
<content type="html"><![CDATA[<p>$$<br>\clubsuit\bigstar\blacksquare\maltese\blacklozenge\spadesuit<br>$$</p><h2 id="【0-3】P3713-BJOI2017-机动训练"><a href="#【0-3】P3713-BJOI2017-机动训练" class="headerlink" title="【0.3】P3713 [BJOI2017] 机动训练"></a>【0.3】P3713 [BJOI2017] 机动训练</h2><p>设 $P(X)$ 为路径 $X$ 的数量。将要求的 $\sum_{X}P^2(x)$ 看成组合意义。</p><p>统计有多少个相等路径对。一种路径可以向左上、左下、右上和右下(各有三个方向)。</p><p>直接 dp,枚举两条路径方向,设两条路径分别终点进状态。</p><p>但是直的路径会重复计算。这一点我花了好久工夫设计容斥,一直调不出来,还是看了题解的容斥才会。</p><p>比如第一条路径是直的话,就会被第一条两种大方向计数。</p><p>对两条路径有序地考虑:求第一条走四个大方向的方案数(第二条随便),减去第一条走四个小方向的方案。</p><p>现钦定第一条方向,第二条类似地容斥。最后两条的方向都确定了,$O(n^4)$ dp 一下即可。</p><p>时间 $O(n^4)$,常数比较大。</p><h2 id="【0-8】P5307-COCI2018-2019-6-Mobitel"><a href="#【0-8】P5307-COCI2018-2019-6-Mobitel" class="headerlink" title="【0.8】P5307 [COCI2018-2019#6] Mobitel"></a>【0.8】P5307 [COCI2018-2019#6] Mobitel</h2><p>直接 $f_{i,j,k}$ 表示到 $(i,j)$ 乘积是 $k$ 方案数。</p><p>注意到有一些状态可以合并,举个例子,$n=7$ 的时候,$k=4(4=\lceil\frac n 2\rceil),5,6$ 对后续转移贡献是一样的,因为只要有 $2$ 就乘出去了,$1$ 的话不变。</p><p>但是 $k$ 更小时是不是有类似的情况呢?考虑乘上 $p$ 恰好不小于 $n$ 的数字 $k$:<br>$$<br>pk\geq n\Longrightarrow p\geq\frac n k\Longrightarrow p=\lceil\frac n k\rceil<br>$$<br>自变量为 $k$ 时,$p$ 显然成段出现。根据数论分块的经验,段数是 $\sqrt n$ 级别的。因此把 $p$ 相同的 $k$ 合并起来转移。</p><p>一个 $\lceil\frac n k\rceil$ 乘上新的 $a$ 会贡献到 $\lceil\frac{n}{ak}\rceil=\lceil\frac{\lceil\frac n k\rceil}{a}\rceil$。即 $f_{i,j,p}\to f_{i+1,j,\lceil\frac{p}{a_{i+1,j}}\rceil}$。</p><p>注意滚动数组和实现。$O(rc\sqrt n)$。6s 足以通过。</p><h2 id="【0-9】-AGC005D-K-Perm-Counting"><a href="#【0-9】-AGC005D-K-Perm-Counting" class="headerlink" title="【0.9】[AGC005D] ~K Perm Counting"></a>【0.9】[AGC005D] ~K Perm Counting</h2><p>转为求不合法方案数。一眼容斥,设 $f_i$ 为钦定 $i$ 个位置不合法,剩下随便的方案数。</p><p>总答案等于<br>$$<br>\sum_{i=0}^n (-1)^{i}f_i(n-i)!<br>$$<br>两排点,第一排 $i$ 向第二排 $i\pm k$ 连边。选一条边 $(i,j)$ 意味位置 $i$ 填 $j$。</p><p>注意到 $i$ 和 $i+2k$ 会共用一个 $i+k$。所以每个点都不是独立的。但是注意图形成若干链,每个链独立($2k$ 同余下的位置)。</p><p>所以 dp 一下 $g_{i,j,0/1}$ 考虑到点 $i$,$i$ 所处链在 $i$ 以前(包括 $i$)钦定了 $j$ 个,$(i,i+k)$ 边是否被钦定的方案数。</p><p>最后把每条链终点那里背包合并一下就可以得到 $f$。还是挺典得。$O(n^2)$。</p><h2 id="【0-8】P8558-黑暗"><a href="#【0-8】P8558-黑暗" class="headerlink" title="【0.8】P8558 黑暗"></a>【0.8】P8558 黑暗</h2><p>找两个大于零的坐标 $x\leq a,y\leq b$ 在 $(x,y,0)$ 撞墙,首先要走到 $(x,y,0)$,然后撞,概率是:<br>$$<br>\frac{1}{3}\sum_{x=1}^{a} \sum_{y=1}^b (x+y)^k \frac{ {a+b+c-x-y\choose c} {a+b-x-y\choose a-x} }{3^{a+b+c-x-y}}<br>$$<br>注意到好多都只和 $x+y$ 有关。枚举 $d=x+y$。<br>$$<br>\begin{aligned}<br>&\frac{1}{3}\sum_{x=1}^{a} \sum_{d=x+1}^{a+b} d^k \frac{ {a+b+c-d\choose c} {a+b-d\choose a-x} }{3^{a+b+c-d}}\\<br>=&\frac{1}{3}\sum_{d=2}^{a+b} d^k \frac{ {a+b+c-d\choose c} }{3^{a+b+c-d}}\sum_{x=1}^{\min(d-1,a)} {a+b-d\choose a-x}<br>\end{aligned}<br>$$</p><p>把 $\min$ 拆成两段,随着 $d$ 的变化可以 $O(1)$ 转移。</p><p>$O(V)$。</p><p>完成率只有 0.8 是因为求和上界一开始写错了。</p><h2 id="【0-1】-ABC221H-Count-Multiset"><a href="#【0-1】-ABC221H-Count-Multiset" class="headerlink" title="【0.1】[ABC221H] Count Multiset"></a>【0.1】[ABC221H] Count Multiset</h2><p>转化为对长为 $k=1,..,n$ 的不降序列 $a$ 计数,满足序列和为 $n$ 每个连续段长度不超过 $m$。</p><p>差分一下,$b_i=a_i-a_{i-1}$,转化为一般序列 $b$ 计数,满足 $n=\sum_{i=1}^{k}(k-i+1)b_i$ 且连续零不超过 $m-1$ 个,$b_1{\color{grey}=a_1}\gt 0$。</p><p>这个计数可以等价将第一个条件变为 $n=\sum_{i=1}^kib_i$,然后 $b_n\gt 0$。直接设 $f_{i,j}$ 表示长度 $i$,第一个条件式子和为 $j$,$b_i\gt 0$ 的方案数。</p><p>枚举 $b_i$ 上一个非零的是 $b_{i-l}$ 并枚举 $b_i=p$。<br>$$<br>\sum_{l=1}^{\min(m,i)}\sum_{p=1}^{\lfloor\frac{j}{i}\rfloor}f_{i-k,j-il}<br>$$<br>前缀和优化得到 $O(n^2\ln n)$,跑的挺快。</p><p>关键在于将有序的数组变成更松的差分数组计数。这个双射简化了好多限制。</p><h2 id="【1-0】-CF1515E-Phoenix-and-Computers"><a href="#【1-0】-CF1515E-Phoenix-and-Computers" class="headerlink" title="【1.0】[CF1515E] Phoenix and Computers"></a>【1.0】[CF1515E] Phoenix and Computers</h2><p>第一次推错多了一个辅助数组麻烦了,其实这题还是很简单的。</p><p>手动开机的集合,若干连续段,间隔一个零。</p><p>一个长度为 $l$ 连续段内开机顺序,是选一个然后左右拓展。<br>$$<br>\sum_{i=1}^{l}{l-1\choose i-1}=2^{l-1}<br>$$<br>连续段相互独立,设有 $m$ 个长度分别为 $l_1,l_2,…,l_m$ 的连续段。这种集合的顺序数量是<br>$$<br>(\prod_{i=1}^{m}2^{l_i-1}){\sum_{i=1}^m l_i\choose l_1,l_2,…,l_m}<br>$$<br>考虑 dp 设 $f_i$ 表示 $i$ 个电脑的答案。枚举上一个零的位置 $k$,推一下发现这个转移需要用到手动开机数量。(即集合大小)</p><p>因此设 $f_{i,j}$ 表示 $i$ 个电脑有 $j$ 个手动开机的顺序数量。总转移如下,$p=i-k$。<br>$$<br>f_{i,j}=\sum_{k=2}^{i-1}f_{k-1,j-p}\times 2^{p-1}\times \frac{j^{\underline{p}}}{p!}<br>$$</p><blockquote><p>做这道题发现<br>$$<br>{p+\sum_{i=1}^{n} a_i\choose p,a_1,a_2,…,a_n}={\sum_{i=1}^{n} a_i\choose a_1,a_2,…,a_n}{p+\sum_{i=1}^n a_i\choose p}<br>$$</p></blockquote><h2 id="【0-9】P5664-CSP-S2019-Emiya-家今天的饭"><a href="#【0-9】P5664-CSP-S2019-Emiya-家今天的饭" class="headerlink" title="【0.9】P5664 [CSP-S2019] Emiya 家今天的饭"></a>【0.9】P5664 [CSP-S2019] Emiya 家今天的饭</h2><p>还是比较好想。限制即每行至多选一个,有一列要超过一半。</p><p>超过一半的至多一列。因此容斥用每行至多一个的方案数减去有一列超过一半的方案数。</p><p>考虑后者。枚举一列。设 $f_{i,j,k}$ 为前 $i$ 行选 $j$ 个有 $k$ 个在钦定列的方案数。$O(mn^3)$ 并不能通过。</p><p>限制转化为,在钦定列的大于不在钦定列的。有两个在钦定列、三个不在钦定列和有三个在钦定列,四个不在钦定列显然是等价的。</p><p>因此设 $f_{i,j}$ 表示前 $i$ 行,在列上和不在列上的差是 $j$ 方案数。状态数就是 $O(n^2)$ 了。转移依旧是 $O(1)$ 的。</p><h2 id="【0-6】-CF891E-Lust"><a href="#【0-6】-CF891E-Lust" class="headerlink" title="【0.6】[CF891E] Lust"></a>【0.6】[CF891E] Lust</h2><p>EGF 不够熟练。首先这个东西等于 $\prod a_i$ 的期望减少量。即<br>$$<br>\prod a_i - \mathbb{E}(\prod(a_i-b_i))<br>$$<br>也就是要求最终的乘积的期望。</p><p>将期望表示,式子包含多重组合数,即 EGF 乘法的结果。将每个数减少量当作对象大小,减少后的结果当作值设 EGF:<br>$$<br>F_i(x)=\sum_{u\geq 0}\frac{a_i-u}{u!}x^u=(a_i-x)x^e<br>$$<br>令 $F(x)=\prod F_i(x)$。期望就是<br>$$<br>\frac{1}{n^k}[x^k]F(x)=\frac{1}{n^k}<a href="e^{nx}\prod(a_i-x)">x^k</a><br>$$<br>$\prod(a_i-x)$ 可以暴力算得 $\sum g_ix^i$。和前面相乘,提取 $k$ 次项系数:<br>$$<br>\sum_{i=0}^{n}\frac{n^{k-i}}{(k-i)!}g_ik!<br>$$<br>同样可以计算。</p><p>时间复杂度 $O(n^2)$ 在于算 $\prod(a_i-x)$。</p><blockquote><p>遇到了以下问题:</p><p>没看出来是减少量。</p><p>EGF 提取 $k$ 次项系数时,没注意到 $k!/(k-i)!$ 可以计算。</p></blockquote><h2 id="【0-5】-CF917D-Stranger-Trees"><a href="#【0-5】-CF917D-Stranger-Trees" class="headerlink" title="【0.5】[CF917D] Stranger Trees"></a>【0.5】[CF917D] Stranger Trees</h2><p>观察我的树和给定树重复的边。构成若干连通块。若先钦定连通块,让剩下不选到树边是困难的。考虑剩下随便选,最后想办法容斥/反演掉。</p><p>听说的一个经典结论:</p><blockquote><p>$n$ 个点 $k$ 个连通块,大小 $s_1,s_2,\dots,s_k$。生成树个数是<br>$$<br>n^{k-2}\prod s_i<br>$$</p></blockquote><p>这道题中意思就是当知道钦定的连通块的 $s$,剩下随便选的方案数就可以知道了。</p><p>因此设,$g(k)$ 表示钦定 $k$ 条边(钦定 $(n-k)$ 个连通块),对于每种钦定,计数剩下边随便选(使生成树)的方案数,相加的结果。</p><blockquote><p>有的题解简单将其称为钦定 $(n-k)$ 个联通块,块外边任意的方案数,其实是不准确的。</p></blockquote><p>$h(k)$ 表示钦定 $k$ 条边,剩下边不产生重合方案数。<br>$$<br>g(k)=\sum_{i=k}^n{i\choose k}h(i)\Rightarrow h(k)=\sum_{i=k}^n(-1)^{i-k}{i\choose k}g(i)<br>$$<br>dp 一下就可以得出 $g$。$f_{x,i,j}$ 表示 $x$ 子树 $i$ 个连通块,$x$ 所在块大小 $k$ 方案数。转移跳过。<br>$$<br>g(k)=n^{n-k-2}\sum f_{root,n-k,*}<br>$$<br>dp 可以用技巧做到 $O(n^2)$。但是我写的是 $n^3$ 的。</p><p>这道题卡在了一开始直接硬刚计数没想到容斥。还有一开始推反演没留意到下指标可以转换。</p><h2 id="【0-4】P5643-PKUWC2018-随机游走"><a href="#【0-4】P5643-PKUWC2018-随机游走" class="headerlink" title="【0.4】P5643 [PKUWC2018] 随机游走"></a>【0.4】P5643 [PKUWC2018] 随机游走</h2><p>首先 $\min-\max$ 容斥将其转化为求所有的 $f_{x,S}$ 表示从 $x$ 出发走到 $s$ 里任意一点的期望步数。</p><p>因此先处理出全部的 $f$,询问的时候套容斥式子可以 $O(q2^n)$。看起来有点慢,先不管他。</p><p>$f_{x,S}=0,x\in S$。记 $x\to y$ 表示 $y$ 是 $x$ 的儿子,$x\sim y$ 表示 $x,y$ 相邻。整理到下面式子<br>$$<br>f_{x,S}=1+\frac{1}{deg_x}(\sum_{x\sim y} f_{y,S})<br>$$<br>枚举 $S$,然后计算全部 $f_{x,S}$。</p><p>直接高消是 $O(2^nn^3)$ 的无法通过。观察消完的形式,叶子结点由其父亲推得,这个父亲由他的父亲和这些叶子推得。</p><p>(又因为这些叶子可以用其表示,)所以这个父亲可以由其父亲推得。归纳一下所有点都可以。</p><p>设(省略 $S$)<br>$$<br>f_{x}=k_xf_{fa}+b_x\tag{1}<br>$$<br>带入上面的,进行化简:<br>$$<br>\begin{align<em>}<br>f_x&=1+\frac{1}{deg_x}(f_{fa}+\sum_{x\to y}k_yf_x+b_y)\\<br>f_x&=\frac{1}{deg_x-\sum k_y}f_{fa}+\frac{deg_x+\sum b_y}{deg_x-\sum k_y}\tag{2}<br>\end{align</em>}<br>$$<br>对比式 $(1)(2)$ 可以通过 dp 求出所有的 $k,b$。再来一遍就可以得到所有 $f$ 了。这是 $O(2^nn\log V)$ 的。</p><p>上面遗留了一个问题就是询问的时间复杂度。其实观察到 $\min-\max$ 容斥每项容斥系数都只和自己有关。因此高维前缀和即可。</p><p>总时间就是 $O(2^n\log V)$。</p><p>这题自己只是想到了高消做法,并在题解提示后推了待定系数的式子。</p><p>树上高消转为 dp 的思路很高明,完全没想到。</p><h2 id="【0-1】P5333-JSOI2019-神经网络"><a href="#【0-1】P5333-JSOI2019-神经网络" class="headerlink" title="【0.1】P5333 [JSOI2019] 神经网络"></a>【0.1】P5333 [JSOI2019] 神经网络</h2><p>又是一道零点一。做了好几次啊终于看懂了。写详细一点。</p><p>观察一种回路由若干树上的链构成。使得相邻链不是在一棵树里。那先 dp 出 $g_{i,j}$ 表示第 $i$ 棵树划分成 $j$ 条链方案数。</p><p>考虑容斥,求出 $m$ 棵树一共钦定 $j$ 对同一棵树的链相邻,的方案数,带上容斥系数相加即可。</p><p>先想不是环怎么做。没有限制就是把每棵树以链数为大小用 EGF 卷起来。</p><p>接下来的都没想到:</p><p>观察容斥的对象,一个对象的系数可以拆成各个树的系数相乘,而且可以先把每棵树的一些链捏起来表示他们相邻,树的大小减去捏了几次,EGF 的结果。</p><p>所以直接对每棵树进行捏链的过程,把捏出来的带着容斥系数塞进这个树的 EGF。</p><p>不考虑环,这是对的吗?把每棵树的 EGF 重新写成多项式相加,每个多项式代表捏一定数量的链所得结果的 EGF。</p><p>把这些多项式视作单项式,对 EGF 乘法拆括号可以发现容斥对上了!</p><p>看看对每棵树捏出来的 EGF 长啥样,设 $g_i$ 表示这棵树划分成 $i$ 条链的 dp 结果。<br>$$<br>\sum_{i=1}^k g_i i!\sum_{j=0}^i{i-1\choose j}(-1)^j\frac{x^{i-j}}{(i-j)!}<br>$$<br>拆成 $i$ 条链,捏 $j$ 次,剩下 $(i-j)$ 条链!链间是有序的,所以要 $i!$。</p><p>但是前面挖了环的坑。其实找一个位置然后计数链的数量即可。不妨把放到第一位。</p><p>此时最后一位还不能是第一棵树的链。对第一棵树的 EGF 动些手脚。</p><p>第一位要是第一棵树结点 $1$ 所在链,令其及不参与树内链的有序计数。也不参与 EGF 乘法,在构造上的意义即占位符次数减一。</p><p>最后一位的限制并不是必须是,而是不能是。因此减法原理。但是注意此时可以参与树内链的有序计数,因为最后一位没必要是含某结点的链。</p><p>所以第一棵树捏出来的 EGF 长这样<br>$$<br>\sum_{i=1}^kg_i(i-1)!\sum_{j=0}^{i-1}{i-1\choose j}(-1)^j\frac{x^{i-j-1}}{(i-j-1)!}-\sum_{i=1}^kg_i(i-1)!\sum_{j=0}^{i-2}{i-1\choose j}(-1)^j\frac{x^{i-j-2}}{(i-j-2)!}<br>$$<br>第二项 $j$ 上指标是 $i-2$,因为要算减法原理,而整棵树捏成一条链不应当被减去。</p><p>提取系数不要忘记乘 $i!$。</p><p>暴力卷就好了。因为 $\sum k_i(\sum_{j\lt i}k_j)\leq \sum_{i\neq j}k_ik_j\leq(\sum k_i)^2$。</p><h2 id="【1-0】CF1093F-Vasya-and-Array"><a href="#【1-0】CF1093F-Vasya-and-Array" class="headerlink" title="【1.0】CF1093F Vasya and Array"></a>【1.0】CF1093F Vasya and Array</h2><p>竟然第三次做才做出来。胆量不够导致的。</p><p>不要奢求每道题都顺着思路能够想出做法。不妨自上而下地想。因为有时会注意不到。</p><p>$f_{i,j,k}$ 表示 $i$ 结尾极长段填 $j$,极长段是 $[k,i]$ 的方案数。</p><p>则确定 $i,j$ 后 $k$ 是一段区间。那么前缀和优化即可 $O(nk)$。Alpha 博客里有 $O(n)$ 做法。以后补。</p><p>upd 11.6:ARC169C 领取双倍经验。</p><h2 id="【0-8】P3349-ZJOI2016-小星星-10-30"><a href="#【0-8】P3349-ZJOI2016-小星星-10-30" class="headerlink" title="【0.8】P3349 [ZJOI2016] 小星星 - 10.30"></a>【0.8】P3349 [ZJOI2016] 小星星 - 10.30</h2><p>经题解提示容斥才会做。但是做完感觉不难啊?</p><p>首先在想的时候直接想正解。似乎会影响对题意的抽象。先抽象好更适合中国宝宝体质的题意才对。而想暴力是一种办法。</p><p>所以呢这道题抽象为给树标号,树上相邻两个点 $(u,v)$ 满足 $(x_u,x_v)$ 在图上。啊那就 $f_{x,i,S}$ 点 $x$ 填 $i$,子树放了 $S$ 方案数。</p><p>子集枚举过不去啊。放松限制配合容斥。观察到计数的排列就是使用的数字种类恰好为 $n$,而反应到小于等于 $n$ 的直接去掉 $S$ 维即可。</p><p>观察小于等于 $n$ 的计数,数到了很多恰好为 $1,2,\dots,n-1$ 的。容斥即可 $O(n^22^n)$。</p><p><strong>启示:排列是恰好用了长度种数字的任意序列。</strong></p><p>放松性质配合容斥。</p><h2 id="【0-9】-AGC012D-Colorful-Balls-10-31"><a href="#【0-9】-AGC012D-Colorful-Balls-10-31" class="headerlink" title="【0.9】[AGC012D] Colorful Balls - 10.31"></a>【0.9】[AGC012D] Colorful Balls - 10.31</h2><p>我觉得很好的题。勉勉强强守斯 *2700。</p><p>过了一会想到考虑每种颜色只有一个的情况。注意到比较沉的部分是固定的,剩下让最轻的忙活就达到了全部方案,答案是一个阶乘。</p><p>接下来添加数量。观察每种颜色,可以不凭借外力活动的是较轻的部分。</p><p>把每种颜色较轻的部分拿出来看。再感受一下,而且单个颜色可以自身打乱。</p><p>种类的重量,约定为这种颜色最轻的球的重量。</p><p>可以用三次操作实现最轻的和任意一个位置的交换。这部分是全部方案。</p><p>剩下的?注意到如果它可以和上边这种掺和,则也随便打乱。</p><p>综上题意转化为,若球 $i,j$ 可以打乱,则连一条边。最终每个连通块独立,且一个连通块的答案是多重集的排列。</p><p>显然地考虑优化边数。直观的思路就是把每种颜色画成一条线,左到右是轻到重,下到上是轻到重。</p><p>重复上述过程。留意到对剩下部分的考虑可以优化为,只和全局最优点弄起来。这样已经会了。</p><p><strong>狠狠观察这个图注意到对答案有贡献的连通块就一个。</strong>大大简化实现难度。1k 解决。</p><p><strong>启示:对于一些题,思考特殊情况有助于形成思路/观察性质。但特殊情况不是通法。</strong></p><p><strong>这道题由于特殊情况有做法,而且特殊情况的做法引出了加一些点时依旧可以乱放的结论,才显得很有效。</strong></p><h2 id="【0-7】-AGC026D-Histogram-Coloring-11-01"><a href="#【0-7】-AGC026D-Histogram-Coloring-11-01" class="headerlink" title="【0.7】[AGC026D] Histogram Coloring - 11.01"></a>【0.7】[AGC026D] Histogram Coloring - 11.01</h2><p><strong>启示:想清楚计数内容的分组再写!</strong></p><p>看了原题解关键结论 + 修了 2h。但还是觉得 *2700 虚高了,少两百差不多。</p><p>看到这题我就想到 SP3734 - PERIODNI。接着交界处不会处理。怎么办呢。回忆一下经典的矩阵问题,钦定完第一行第一列剩下都确定了。</p><p>已知靠下的一行,其上边一行只要确定了最左边的就确定了。而且上边一行有两种方案的充要条件是下边是 $01$ 交错。</p><p>这下子把那道题的建树思路搬过来。自上向下进行计数。</p><p>因为推底下一行方案数只和上面一行是否 $01$ 交错有关。设 $f_{x,0/1}$ 表示编号 $x$ 的矩形最底层是/不是交错的方案数。</p><p>转移思路是根据上面矩形的底数出矩形 $x$ 顶层是/不是交错,然后推出底下的。</p><p>最要注意的是,顶层是交错的条件不仅是,上面矩形底部是交错,而且有要<strong>按一定顺序</strong>。</p><p>剩下转移不难推。矩形数量是 $O(n)$ 的,时间 $O(n^2)$。</p><p>upd:更简单的理解是把矩形视作二元组 $(x,y)$ 表示两种方案的数量。然后空位视作 $(1,0)$。合并更加清晰。拜谢题解区大佬。</p><h2 id="【0-5】-AGC023C-Painting-Machines-11-01"><a href="#【0-5】-AGC023C-Painting-Machines-11-01" class="headerlink" title="【0.5】[AGC023C] Painting Machines - 11.01"></a>【0.5】[AGC023C] Painting Machines - 11.01</h2><p>啊啊啊啊啊啊好大一部分看了题解。还好反应过来了。不然又要来一道 0.1。</p><p>首先我想到的计算内容包括了 $F(n,t)$ 表示恰好 $t$ 条边覆盖 $n$ 个点的选边的排列数。这个时候特别难优化回 $O(n)$。</p><p>【看题解×1】,说 $t$ 条边覆盖 $n$ 个点选边数。想到,上面过程有一个 $t$ 的系数,不妨拆成 $t$ 个 $1$ 贡献。</p><p>在组合意义上就是换为求用 $t$ 条边还没覆盖 $n$ 个点。稍加变形就是用 $t$ 条边覆盖 $n$ 个点的选边数。外边套几个阶乘即可排列。</p><p>怎么求 $f(t)$?【看题解×2】,设 $s_i$ 表示左到右第 $i$ 个机器下标,$f(t)$ 即计数</p><ul><li>$s_0=1,s_t=n-1$。</li><li>$s_{i-1}\lt s_i,s_i-s_{i-1}\leq 2$。</li></ul><p>直接将 $s$ 与两两相邻之间的差形成双射,组合数即可。</p><p>最终是<br>$$<br>\sum_{i=1}^{n-1}i!(n-1-i)!{i-1\choose n-i-1}<br>$$<br><strong>启示:</strong></p><ul><li><strong>遇见恰好,且带系数,考虑拆系数贡献,组合意义上是将恰好放松。比如这道题就是放松为,只要覆盖掉就好,不必要最后一次必须起效。</strong></li><li><strong>遇见摸不着头脑的组合问题,一定一定要抽象出来!这道题就是一直瞎想,完全没有抽象出 $s$。</strong></li></ul><p>绝对有缺陷!</p><h2 id="【0-7】-AGC028B-Removing-Blocks-11-03"><a href="#【0-7】-AGC028B-Removing-Blocks-11-03" class="headerlink" title="【0.7】[AGC028B] Removing Blocks - 11.03"></a>【0.7】[AGC028B] Removing Blocks - 11.03</h2><p>非常好题目,使我目眦欲裂。深刻感受到想计数题时思考方向远大于思考过程。</p><p>启示最近这几道题看的题解完全没有看推导因为自己能推出来。完完全全是看到了几个关键词。</p><p>比如【小星星】看了容斥,【026d】看了观察两行这一行为,【023c】看了拆贡献和形式化的行为。</p><p>在过程中的体现是,费劲写出了一个优化不了/巨多细节的式子。</p><p>今天就是这样。写出了一个我自己写完以后就把自己绕晕的式子。然后看题解。</p><p>一开始我是怎么想的呢?首先必然是计算每个数在各操作排列中贡献次数之和。先想到枚举贡献次数,发现太紧。</p><p>接着向上一题一样拆贡献,人话说就是枚举操作的步数,计算多少排列在这一步算到 $i$。就要算有多少排列在这步操作 $j$ 且 $j\sim i$ 联通。</p><p>式子很不好看而且组合意义的 corner case 很多。最后弃疗。</p><p>看了一眼题解发现它考虑每个数 $i$ 被操作的时间。顺着想不久就做出来了。</p><p>那么设 $p_i$ 是数 $i$ 被操作时间。其与操作排列双射。每次贡献到 $i$ 都是操作 $j$,且 $j\sim i$ 联通。</p><p>算算这种情况数量即可。<br>$$<br>{n\choose |i-x|+1}\times |i-x|!\times (n-(|i-x|+1))!=\frac{n!}{|i-x|+1}<br>$$<br><strong>启示:思路复杂约等于想偏。多分散思考。</strong></p><h2 id="【0-4】-AGC009C-Division-into-Two-11-06"><a href="#【0-4】-AGC009C-Division-into-Two-11-06" class="headerlink" title="【0.4】[AGC009C] Division into Two - 11.06"></a>【0.4】[AGC009C] Division into Two - 11.06</h2><p>设 $f_i$ 表示前 $i$ 个的方案数。先记住这个是对称的。枚举上一个同组的 $j$,只要 $(j,i)$ 满足另一组的限制,且 $j+1$ 和上一个未知位置的同组是合法的。</p><p>第二个限制没法处理。表示一下,假设 dp 的 $i$ 是第二组。则该未知位置 $k$ 要满足 $a_{j+1}-a_k\geq A$。<strong>注意到此限制比较废话。</strong></p><p>换句话说,当 $a_{j+1}-a_k\lt A$ 时不可以计数。但 $A\leq B$ 时如果出现这种情况就没有任何划分了。一开始判掉 $\exist i,a_i-a_{i-2}\lt A$。</p><p>那么 dp 状态就没有这种。所以只要 $(j,i)$ 满足另一组限制且 $a_i-a_{j-1}\geq B$ 即可。$j$ 是一段很容易求出的区间。</p><p>$O(n)$。</p><h2 id="【0-7】-AGC030D-Inversion-Sum-11-06"><a href="#【0-7】-AGC030D-Inversion-Sum-11-06" class="headerlink" title="【0.7】[AGC030D] Inversion Sum - 11.06"></a>【0.7】[AGC030D] Inversion Sum - 11.06</h2><p>注意力不集中。鉴定完毕。推出了很强的提示不会把握。</p><p><del><strong>启示:注意力需要加强。</strong></del></p><p>拆到每对位置 $1\leq i\lt j\leq n$ 贡献。考虑求过,对于每个 $x$,处理 $f_{i,j}$ 考虑前 $i$ 个询问,挪到了 $j$ 的方案数。</p><p>一层转移是 $O(1)$ 的,所以单个 $x$ 是 $O(n)$。</p><p>推完立马发现对于 $(i,j)$,这种计数不是相互独立的。立马想到设关于两个的状态。然后没设?</p><p>这就是没把握住了。</p><p>依次考虑每个操作,设 $f_{i,j}$ 表示考虑完这些操作 $a_i\gt a_j$ 的方案数。注意到一层转移是 $O(n)$ 的,所以可以 $O(qn)$ 做。</p><p>(没影响到的要乘以 $2$,随便弄就好了)</p><p>这和一开始没法算答案的转移有很像的地方。就是状态数很大但是转移级别很小!</p><h2 id="【1-0】-AGC020E-Encoding-Subsets-11-07"><a href="#【1-0】-AGC020E-Encoding-Subsets-11-07" class="headerlink" title="【1.0】[AGC020E] Encoding Subsets - 11.07"></a>【1.0】[AGC020E] Encoding Subsets - 11.07</h2><p>嗷手切 2900。</p><p>考虑单个串的计数。设 $f_{l,r}$ 表示 $l\sim r$ encode 出来的数量。枚举左边极长的单个 encode 元素的,就是 <code>(...xk)</code> 或 <code>0</code> 这种。</p><p>设 $g_{l,r}$ 表示 $l\sim r$ encode 成单个元素的数量。<br>$$<br>\begin{aligned}<br>f_{l,r}&=g_{l,r}+\sum_{i=l}^{r-1}g_{l,i}f_{i+1,r}\\<br>g_{l,r}&=\sum_{d|(r-l+1)}[l\sim r\text{是}l\sim (l+d-1)\text{的重复}]\times f_{l,l+d-1}<br>\end{aligned}<br>$$<br>接下来肯定不能枚举子集。考虑继续这个 dp。把状态调为全部子集 encode 出来的方案数之和。分析一通发现 $f$ 转移不变。</p><p>$g$ 这个长为 $d$ 的东西一定要是每个长为 $d$ 的子集。再分析一通注意到每个这样的 $d$ 东西对应一个原串子集,每个原串子集对应一个 $d$ 东西。<br>$$<br>g_{l,r}=\sum_{d|(r-l+1)}f_{s}<br>$$<br>其中 $s$ 是这 $(r-l+1)/d$ 个东西按位与的结果。</p><p>这个时候初始觉得,有些奇怪,因为需要求 $f_s$ 表示串 $s$ 而不是串 $a_{l\sim r}$。</p><p>马上想到这不就对了吗,刚刚设 $a_{l\sim r}$ 的状态是因为串是固定。这时求所有子集的答案变一下很正常啊。</p><p>状态数也是不必担忧的。因为注意到 $f$ 的转移无关痛痒,而 $g$ 枚举的 $d$ 最少也会把长度除以 $2$,而且状态数和子集数量是无关的。</p><p>时间我也不知道。反正过了。可能是什么带着 $d()$ 的数字吧。</p><p><strong>启示:</strong></p><p><strong>一开始推后来这个 $g$ 的时候感觉很不像正解。没想到多想了一会就想出来了。</strong></p><p><strong>不要放弃。但是也不要像以前一样死想。<del>要相信自己半个小时想不出来的东西就是无法被想出来的。</del></strong></p><p>哦写代码的时候发现 $f$ 和 $g$ 记忆化要互相调用函数。学到了【提前声明】:</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">int</span> <span class="title">g</span><span class="params">(string s)</span></span>;</span><br><span class="line"><span class="function"><span class="type">int</span> <span class="title">f</span><span class="params">(string s)</span> </span>{ }</span><br><span class="line"><span class="function"><span class="type">int</span> <span class="title">g</span><span class="params">(string s)</span> </span>{ }</span><br></pre></td></tr></table></figure><h2 id="【1-0】-AGC038C-LCMs-11-08"><a href="#【1-0】-AGC038C-LCMs-11-08" class="headerlink" title="【1.0】[AGC038C] LCMs - 11.08"></a>【1.0】[AGC038C] LCMs - 11.08</h2><p>咋混入了一道莫反板题。</p><p>求这个<br>$$<br>\frac{\sum\sum \text{lcm}(a_i,a_j)-\sum a_i}{2}<br>$$<br>经典手法<br>$$<br>\sum_{i=1}^n\sum_{j=1}^n \frac{a_ia_j}{\gcd(a_i,a_j)}=\sum_{d=1}^{max}\frac{1}{d}\sum_{d|a_i}\sum_{d|a_j}a_ia_j[\gcd(a_i/d,a_j/d)=1]=\sum_{d=1}^{max}\frac{1}{d}\sum_{x=1}^{max/d}\mu(x)\sum_{dx|a_i}\sum_{dx|a_j}a_ia_j=\sum_{d=1}^{max}\frac{1}{d}\sum_{x=1}^{max/d}\mu(x)c(dx)^2<br>$$<br>提前算出 $c(x)=\sum_{x|a_i}a_i$ 即可。大概是 $O(V\ln V+nd(V))$ 的。吸氧过。</p><hr><h2 id="【0-7】SP3734-PERIODNI"><a href="#【0-7】SP3734-PERIODNI" class="headerlink" title="【0.7】SP3734 PERIODNI"></a>【0.7】SP3734 PERIODNI</h2><p>观察最终的局面,并不能很好地直接分组计数。</p><p>考虑了若干种直接 dp 的方式都不行。再次观察局面里面的联系,下图若 $a$ 区域一共 $x$ 个,则 $b$ 区域相当于全都减去 $x$ 列。</p><p><img src="D:%5C2008verser%5CPicforp1%5C1.png" alt="4"></p><p>因此把图划分乘若干矩形使上面矩形会影响下面的下面的不会影响上面的。而且“同一行”的不会互相影响。这样就可以树形背包一下。</p><p>矩形数量是 $O(n)$ 的。可以过。</p><h2 id="【-0-8-dot3-】十二重计数法"><a href="#【-0-8-dot3-】十二重计数法" class="headerlink" title="【$0.8\dot3$】十二重计数法"></a>【$0.8\dot3$】十二重计数法</h2><ul><li>Ⅰ</li></ul><p>$$<br>m^n<br>$$</p><ul><li>Ⅱ</li></ul><p>$$<br>{m\choose n}n!<br>$$</p><ul><li>Ⅲ</li></ul><p>一:容斥钦定 $i$ 个为空。剩下的就是Ⅱ。</p><p>二:EGF。答案就是 $n<img src="e%5Ex-1" alt="x^n">^m$。</p><p>两个式子拆开都是<br>$$<br>\sum_{i=0}^m{m\choose i}(-1)^{m-i}i^n<br>$$</p><ul><li>Ⅳ</li></ul><p>实际上球把 $i$ 个非空盒子区分。枚举 $i$ 个非空就是Ⅲ。<br>$$<br>\sum_{i=1}^n\frac{1}{i!}n<img src="e%5Ex-1" alt="x^n">^i=\sum_{i=1}^n\frac{1}{i!}\sum_{j=0}^{i}{i\choose j}(-1)^{i-j}j^n=\sum_{j=0}^m\frac{j^n}{j!}\sum_{i=0}^{m-j}\frac{(-1)^i}{i!}<br>$$<br>里头预处理即可。</p><ul><li>Ⅴ</li></ul><p>$$<br>[n\leq m]<br>$$</p><ul><li>Ⅵ</li></ul><p>类似地球把盒子区分。因此和Ⅲ是除法原理。除以 $m!$ 即可。</p><ul><li>Ⅶ</li></ul><p>经典的 $x_1+x_2+\dots+x_{m}=n$ 非负整数解个数。<br>$$<br>n+m-1\choose m-1<br>$$</p><ul><li>Ⅷ</li></ul><p>$$<br>m\choose n<br>$$</p><ul><li>Ⅸ</li></ul><p>经典的 $x_1+x_2+\dots+x_m=n$ 正整数解个数。<br>$$<br>n-1\choose m-1<br>$$</p><ul><li>Ⅹ</li></ul><p>这一条完全看了题解。</p><p>dp+GF。令 $T_{n,m}$ 表示答案。则 $T_{n,m}=T_{n,m-1}+T_{n-m,m}$。</p><p>把 $T_{n,m}$ 按有无空盒分组加法原理即可验证。</p><p>观察转移图于是按列转移:设 $F_m(x)=T_{0,m}+T_{1,m}x+T_{2,m}x^2+\dots$。</p><p>则<br>$$<br>F_m(x)=F_{m-1}(1+x^m+x^{2m}+\dots)=\frac{1}{1-x^m}F_{m-1}(x)=\prod_{i=0}^m\frac{1}{1-x^i}<br>$$<br><a href="https://www.luogu.com.cn/problem/P4389">付公主的背包</a>同样手法 $\ln+\exp$ 即可得到 $F_m(x)$。答案就是其 $n$ 次项系数。<br>$$<br>\prod_{i=0}^m\frac{1}{1-x^i}=\exp(\sum_{i=0}^m -\ln(1-x^i))<br>$$<br>其中<br>$$<br>\begin{aligned}<br>\because&(\ln(1-x^i))’=-ix^{i-1}\frac{1}{1-x^i}=-i\sum_{j\geq0}x^{i+ij-1}=-i\sum_{j\geq 1}x^{ij-1}\\<br>\therefore&\ln(1-x^i)=-i\sum_{j\geq 1}\frac{1}{ij}x^{ij}=-\sum_{j\geq 1}\frac{x^{ij}}{j}<br>\end{aligned}<br>$$<br>最终的和式可以调和级数时间求出。模 $x^{n+1}$ 意义下套上 $n\log n$ 的多项式 $\exp$ 即可。</p><ul><li>Ⅺ</li></ul><p>$$<br>[n\leq m]<br>$$</p><ul><li>Ⅻ</li></ul><p>和 $T_{n-m,m}$ 双射。还是 $m$ 列因此直接用Ⅹ的结果即可。</p><p>综上,时间复杂度 $O(n\log n+n\ln n+n\log V)$。</p><p>额一开始做的时候写了这样的东西:<code>printf("%d %d",c1(),c2());</code>。事实上 <code>c1()</code> 和 <code>c2()</code> 会以任何可能的顺序执行。不要当作从左至右。</p>]]></content>
<categories>
<category> 题解 </category>
</categories>
<tags>
<tag> 题解 </tag>
<tag> 组合数学 </tag>
<tag> 动态规划 </tag>
<tag> 概率与期望 </tag>
<tag> 生成函数 </tag>
</tags>
</entry>
<entry>
<title>总结100</title>
<link href="/2024/08/12/%E6%80%BB%E7%BB%93100/"/>
<url>/2024/08/12/%E6%80%BB%E7%BB%93100/</url>
<content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <script id="hbeData" type="hbeData" data-hmacdigest="d592b182943e052c507fecc607598fce3633147183648651726b6e1ee1e6eee8">b66ce848b4d743f8d8e217056a5eb23107b3ee1df14b8210f1eca69c7b8b1766235c3e993330e79e5f731329bb14fa6b7c9fc5a956f3284d087b2e949d62cc881c258adcf48a3e95f018d3af5b1e3c955973d94138f63be38d5a80943553abc37dcc9858c22e2aa53c38241aedfc9bb7d4c50c27b1f83d10830621e2f9a9d5dbc28f19554ac98a8c7cdd39a54ded53b1c6abf60b30ca826a9342f0ab07d1c055c81a0d419aa4c1d89a4879bd21e3f67cff58568a39cc6223d933a5eec84e718ccb93d6943dd4dd2bf5174225bb9dcdd5cc634d9ad112eef1181b47d5e736f03403227ddb2c12e806a4a9c038500462f827540e9b8cab0e94e7d1cdb50d1163c9026d223d08273a051ae75c17d016dddb5f1da6d7d38bf3102bfda9f9060eb1a748221b497dd9172a39c4f4fc9a2cb863a0a53c977a88785d834c33a3da6d03b851de6d8378ed60f9d1760e7634c95fc6be72f7453fe68776caad6ab5f5e728b9f34a06b437f3f09f8eef674d4619732f23177be973f51ec8b02d7a757cc604ff747c21c76f839d9a3753402428c3b525d7e15df1090974e0269b6dbaef27b76d8edd9e5be03f2d3b22802828a4ed17dc04d27af1884cd61c441d66be377da3685ef0937c9f218df864c2e311a7713ee2637c648fb370079bc0f7b04d8a4abf55c735d565add54ec60d2c6e63d40f3bae7acd7a00129439270b04df0376940c8b25e5a4da832b7aa8bff852469055cb040c4d4fd49eea0120541d2e565ca65324e3fa84c5bead7522a8b635a61833b7b3601eb64daedf6c4a495934eb1bc8ad6437262274f2fcc407bd72752bfd623c0b1f2dc6516824de97657e2434fafa02c2f82bec7d5ca6239493ada5a02ef7f0d154784e23dd3215741d84127e8930375f5ff7e4a18b2ba64e420877a956d7f01c559b255312674b03164956fe7fe76948c1c17e58271ad8b7d5385368d015870f6911990b046059c4d32f56a414bd8bc9f26af09b954e30768728c51cbb7a8b1b8db977521e8cb24054bdbed83ea4253b9b248e8b2959aff341f2fd6eef6d211d93e37686593a56fa13a52b7f642f0a348deb95a959079b0dcae3c2fedc5387967e3a8fe3dc270fe986988d50e47f85a7f9c7dd7f50f3cb42604ceb1f6e85b09da6c761c898d051037cee55e6b30b0e67d35ee0c467fe19834e10bea4832af91b45c353fc76ab85d14ce6fa6869534edade29f83d70e5db83f5eba2753fceabd2d4832183879ecc66c48d04455aa1c5e7f16718c7a1784b7d7d75695fe137e14bf55446183ac3fca099c28688495383e6e6b8d83c193fbcd08cd4fa67dfbb5dcb49ddd83a865a520e53bcec393d9c73b29c8fe37de80e2679338b4922164970437338ac6947db7d8d2a7bd80b70b3e4e2cd487cda78e074d6a76742e3731d199089b307056153be86a9b99fa61de4e80495397780a115c6b59f34cd93f7796c179257edd8ff31402c26bf86460053edcd9d5f4fdbed96c4e42ec0be6f116934bb3982bfe0864b28ffd1ff7b5e61345bfbcd59b0d3f7ad927f5ad5f487ecba427236b768add3d457392c80895e3b9f427878eb93a61663fc2eec87b30ab69715ffb7a88765f5e7b56639a487a5108164c60a3c8ac6dfc6fbec8882f6375cf5b4bec60e032684b763a675ce31a7ba2a84f103a0b06ce62d71a1446df6924fd998aef73a70cc5cb949867d288b8f3c2c0a662c18d4c2fc5b62b249f76c5f0ca43de7363010ca9762435e7fbae19605313ed3f97cabae30472eb9dc613e52b059abcb606dfec32cd9a94cb514d53fc842e22a4c1a21e71ec3734b51fbb8bbc51feb23628cd9b5f48e3c2ce995a33018107dc5cddf4e3e400bd9f9fc900f7662c54d7d5996fa653211dc829368d2f8af1865dcd32e2cb4d173c103d2393f249ea7fade71731b4ffbc05d366789fd6b5ed675fb120c371dd9fe6b360042e7ca8433af5d23c95cd6e7275fa164c1e5ca4936cf16d12b378633492475f2ed114fc4efe97635d7d18a558dcd0862efaea34bc96cf7242bc216e0327873ebfc9178dc1b4625ae97894d62d48264a04b8996fe63a5c75ef5f251ff3c7184d076a58c1ead1d8908ce0a99a0625dcde6be088383e3f5c6a9991983986e5d851df46cfcaa85c78735a68a885f66bddcb2d2bccfc7963b62e981ad7012bd494f256392572ff1673185f2256533cc1e02b3c04e48e55f4368df51a1271201fed4f01bbd4328a483f67b451031f5e04a5cd6e250d4117cbcd9da5202621123d9c89a9a3f3f1c287e63a977051849e20f89c4b46a52ed0d757b692ed5fbff29f2ad9d7337dc345a1cbe5b2bd35a26b740b35e13dd3960516bebd7bf19a38ff5eea05146401968200295cef89f72cf8939da8496f1f319aea07db603fab0a05359492924998d669c5ec453e3ec54efb8ee5450c0777fe6f69f1095619ef30c520c7ecb381d7b6208f1f6e3bcae816149a1e93c16e8b92cfadd95f164be5d2c80aab42617e3b8f9dea51fdffdf425f2794670441271d5c94816c8ead2b53f7f5850b20f2cd6b0fc6daec05e0bfe58f85aacd02781296eb1a35d0f329e677fd18adf473c504c7d88c8563d80d8a0281cd562925bf5d72643541e02646715cb39ef7af277e6f6d3a274bd35a1a3a14bab0ddd68e41d012f82819e0b6a5246e1f29c8197575f68c60684094d4a1a28cdd8d794ade7070d1a170f7e7a2398b15de3b7c773cd8f99f4e23d97cdf0e51c7b1decfef0e63b167974dee7a8b82908881d3b72e217c7a74da0a0704c6d8dacbf42866a2863b76d0c1e709589a1a881683cab8562188ae8b979f69d72f0688c984a2d54175da350f29018668281c60dfd3edb61aea7505f9de52cfd0eb23744f7951f99609591df15b58b80176ecb1ba5efa0c6f612f3d4f4178a61fb45302bf32c7c8ea259b3e6f6cd79f349ffba2af881cd2aba70457185dc785a8238805063eba505602eb4cbcd04162a3eb0c8dcedcb0dc044c5a2f303113bee14d47a214d84b215469f3a6e72c3147239e84003f7559384652429d083aa9090d0662eba2d25a6d1a8ca66d16688bfede98876b5d5e6fe1bfb766af69262ebe6ce3de7f9fd67c817b84ccd5c87b09392ac4659fb0ec73a3e736a59239dfd6689ad9a6b095acdce699a4c7f9bd4d896abebbb39b0ab8d1b775894d86400de0de0191d2450e5349456485c5113d996ce93c821d770ae688c663880f0fd61fcb540eb127feba53bc279ba8e62dda88946754bb68c55c7b0df9b5644c4c739bb001892e4b7f9af120a097b5c00f71e52ae0b6f8d45feb13d28d73c2c5865744e6808aedad982198f973a35ac1c2c2597275c115ee2b5eadaf5cdc81683dd0a018dd473f4cb5a20fbf699f8fcee2a47e883d5117dd169e4b43d2287ba0c0d1fadb9709253409fe107983bb94a4bbae3c050802e0da755a9a9e83b1b58c1e77cb1e76899dbcfbbdc847503a93434aa2733cf9db91b10a0111b37143ac41a1eac388c396592e067cd5f175a3f31186fa87860e2dbe7dde3ddc806330fa7753195f41c80e9cea3a5d0493a2b9a40104091da3b212d2c1278eeac9dfb6f6c3c79175f7f0adab6a2dd6dbf54a17a44f2ad0ace33fc2b905435d89c8e8271c2affa0fb64930aa6de3a1fe06e8338bdfa047094c34cb65a37b89148a35caa3bccf53ff0340b350f6c7d8656e81fca314801810c147ea155d0a59900cf0a28e8e7aa742395476020780aa76f3fa493c88c5b7480ac422e5716e2d464f534949581dcfb684ce2c8ebd85466d723825084857ecd8f0bd04a2c450b933775825e1bd3b454ad0fc1628555879f5c1cebc0ce0faf19be53325f4064aae64853b1e8a2316ab3f777e1e925c6ae0a974997b446128a707a14958677a21a1e8606cb069abc8a54e6ce3fd8211709680acd1d797b3b8d93459457c8ddfd7905d864b13c7d3ced9778d574f79c50ff080033636a3100a8be25f98d4910b9af03ae874b84d0add2b4653bc3ff1909f2018a59f5149649162dd9e4e430acbb83cef5c2180f446704f5c2dfbe2c6873c8e9149e29c1d19acc85bc5551fd79b373f5cc41a2d571960caf47c149cfdd61cab895ee8d9020f749456bc72f6150f57f79a983e5daad8ada6b584123d0f7fa228c5deafbe11a8df690d11226eb3189c636334dcfa7b036f279e8f937f3935bf623ff5decf138bfb6113c1177aad3dd3f50b5ba010927b7d9a9b9efe9db94b0289ebc89ef08b8401cb7c8987bec2e74871d3aab86018f67ab2129ff89eeda6b9dc76a62f68ab50305f7c5a7350fd70463ebae998e38693586da1786f8d694c6b0f5c9e716e167d778a452b94525822cc4e0576de93de2ed042df9b879eb4844fcafdb3f5e004cb405c953e8a45b3e46190f8724bf5fcb402db4df3b240686fb7d6cc276be3bdcdeac6d33c1bc32106f424a6804db2f8c336919389d29525a5fc110b4e105bc12370bac873e9cd1fbb321462c0d6a1cdfa5c86058731adcb43543176caead8c0e98f0e005136d6f1e1828eaf488a3f6e15cea95738fe934e8b011c1c42917e82e9c8c1c5919aba9e2e2bb958e8552690b8258f7f4826f58517b1614b5cec83039dab372ca7e959581debb1a65ebcd1e9841c4072dada7dfc06d5e162c7fe779e8cd83ceaf41d582747a52db604b1b0bbb5d8d868b1856d5adf7db35182a01fabbfadb670f2e42cd70f8d7de8b0ee49e74414f8902c8682a6beaeca7233fe751f0c1aed09426194b23203e009174446a4a93837f011475f7b3d3af7c90318871b1c5f40045207d9e260bf4c6bef982d8ba9eefff8b0eb5ae7584dcb0f299a23d03621e898fea2a204effa43a1c1b02697e41e22cf1f364ba6774395c067ae64b683098f35a4fd115e7e799d82f111112c273e29e5211601816f8dc47b6f7af7ac10a56f24834aa6422cb1aa3fa8cf9bcebfaa21ed06b666dad0b22a1b7557143e83ff80d2470a5d52a982bf53654b5bf861bed41ca3f356c420f4c376c2090cd0841a5f55c81e9202ea9f9d02ff9236cde53693775a4e816496e520125c51cbe62f4299223796b19f51ab70caeadc1c8782b341f1b7084ed29f59e5e4dda514920dc0e3fd28fec04b043d4491215e8d096b21d4994c82dd20f1ee4df2a68e901022df870a6afd6b57e6acb86379872fe77bbc9ef28d32e94b02f93866d23f680c8821ffec168b5202d7c62b7c57d6065ce7b74a42b167780fcd9055870e09f356a6dd3f125800f737c4525ab962f23094c1acff4d957faa26e21164349f566607c88e545256622f8515ea22613b81cfe5aba9172316be0bae47aa0af50b87e53c24a89ada3bb5db77f691c1f9226585249dccff3d698bd326dfbd781a6dba7c97086e5ba2607e541feb5626004b41ff0826a80f34f4cb456e591ddbf3547d38e4f17f1666b8bf9e3a1f1ad901eb9e30270c1d9ffc88c60ec397f2f222c00a8931c2064c3c38c83071ead44b81a52d9fba0f0cbfd1cc58a148cf8cca913a05359df20122141fe66885bb16db8b9a742fc12b7a24bc913dcfef35bc4a92469c6f1361fa16d253c4688397bfeeec9835a4969ce62f0bce47c0d79f505e73cc75de36d4fb8a77cf22780cbfb8764f94f072af0c8de434c5a278d0f2ebbbd052a62b09f6d1ea133dd4e6af9f837c23f0202dca212f54ee08787bffd862d9ff3d7d3fce21eaebf9f94169c19b65a4f76982abfa92e692ef6d9d6fb1ec2c054d6bf53d2e8cdbcc7c2d8b443ed1e8030566aa91966d42df8418bc4f0fc2e0abad95fda55c40e1f05098179ce6147b8b82f7a3e2815872faf6acf900fded8f56edb4231ccaf7c674298b722c57385fcf1a4daffa940213c4809a99b8b6b558503ee68aff4c42549c3f091a8931a490c20dd997ce2b1602881c170bbc56e24936ddbe036cea8355474a432b88d063889656afbd4314a53763c2901febd382392672ebd7eaba5dc18a6aa30b17a8718187eb8614afbb09fda1530b1f835f3c894fdc5e624634c233029c70e4916974509ca5ac340f7a8fe4c13a2103525ab794bc2056fa738e5cc076b8cd59dc3c6df6050e5715fd72dcee1a3f2791b79f77e68fd046fe4f682d4d4768623a42f9665f5cfc4d30440d53157d51a95d63e98e6a0a336bc1a5c53a6bbabcf9e6516e466b3fe7164d746b297dbd75a2728ebbfb0eb940e25d89655c3e744cacca1679b19855215cbe24f12db4d3c5faf3d3c066137e972289588db5920706b35b2e236f231bf191ec5f151c7022f80a00615f4edd24987e565b3add927b48d64606430ba2b7bcc85c1c508de3c6e449f569235ac134ea662a14f37dc8466c761ddac5892c8c624bcafc8e0e0c15bc282828e7a1d518236f9007434816826098341fc5a20993397ce2ab966381c0f020f95614f7e8bdf2012e843f7779f6b9275d8c5b5c2f55410b140eaf6e7eb530aa064aafc32f1f72d5a210c20b2479b482a7d2369bb714118ccb09819764dcbfd5ac63776f8f102f72a4d27ea32ba79bd7af8cc36ec8d44e3014a5cea58d270fd5aac03acaa255020c2dd36d69848a29e6549fa5f815326048def991ca2fc2ff3da07da3bff13f98f6605d829343363329435a267342eb4a15b4e144635f553ad6da7662b53f3ed0308cc2e463c38956296cf4d475c3e98506f96559455cd60e2f566796c6d5382fae440e25692d07a03d79d8deebacbaa9fe0b9bcbb373edd73ceebba17d4dce7bbd0d979cd9ad808348767199fc6fb1badeef0faaf2fca451b5cc6e46331785c0b5c0412007eff77b2b6838755a874246e76cc64f70e02acbbc74a73195efe07850488022a5a2daa70c65ec2e3f08ccea6323eae017f4f6da53940ad193b562367aac41cd0fd5948545ce873540de4882f107ce953b544f41708a06cb86e88917e5ce530d9acf7e7e95f4280c1ddb6897b2dfe152725e5d653f181b7204626ef61cb4e8e1498ed863db760560be4f2c40e532460f43b729f2a0febac3d31f6ea5348a7f39705d2444f90de5e2f9308cdc7733befacc9360cc1d84e421a6e62af5a618d81f4e678331c087b0e7e2bff6aff6dfad2e841e9a3a70cf17fd41f89ae6a35d0f808a611a45139d50f86c202bb83198432a2ed775f52875ee84768bf91205c269221f1295af82b0cb45c0c76516c0e3b99934ec81d77bb29788ceebfa5e84d0b8d7212b98a34a271202371f0dd6c6ff913de9e5458de4317e5ce2e08d88f3a5a4bf7ab64f7ea8cf59774216fd1606a64b08a7c867ca71638819a7a05a3e19608d5fe7f57753305fc67d4424dcc335dd36910962775b3a2d58c5d5deb90f46826821e50ab5a24cc67852322a228db4ef941458feaca64c4b74d098a97c7983ef9d3ed62fe045b6d203f3bbfac1474bbe2162d84ac8d390862f3d8f8260df9f4e5799b7ceb78d16a5651f6e8b919b721dd1dfa92b0d6fa535378a40a5527101e089b61080402291d254413cabc5dc9346f9ec9d57ee0d4106ab05d56fe3be58dceefc1bbb5005c04ee0f3d6e3fba1ef2dfe097e4706c0299cd60083b579fc99ea70a34bce2508474539b10efbc69ad2825c603690326cd7fac2e4281b17e78af02d659e41328a4ffc3e7a308d5799b4a05bbc70e1239c728d9de928f831d89778301b0bbdf8d1e0de29c38be9e87b7d0206221a241be0ae7d9a4b055e31e62420e6b1ee467d4fd0e7e6aa87c8f10fcdf02512b1f681eacbef60368013a1d622ce446e7810dbf056bf4572b31a61290408900890702b03b4dca65892322ac26c6d04d95ff3e1a29b6b4a0f40d275d2843a1d6f2a5e70808e8726ea3e62f08ac930c51855a491ded3298e31ea8927c902211c8c1f310f08f03192f0aa3847728c3b0b4caed2c58ad22f831edeaae24e9065f97d6a81d7ecdb85578f95715e6c159bcdbbe3fff7a061370211549281c0cfb934523661a3ccc8ce924c8fcf571fcebf9d80f028e76823406a005af10b3d8eea6728971b1dea01bb769d4edc97b0642201511bfe2b1c296114aa6249be6a12c1a0003846dddffb1954486ca650b900c837ce480dc87ae490d8035412063582772884217e62a7c540bbdfd2cba27cfcb1f58a6e61456421c2f708c1294fb7d4286ebef7583a543390031729c9c7a6354de48f33798d6f25b4f503974baaa0b4b575c34244b7591f6d5cee4cdb3a3c6d5275185998c0de6373d24007455ef6fbb2ae92da40e5e61fa395a77f98ddc0963780f210103d7a21593873c63841134f3fbb10d229c56a8003b4de178736c2dbb01efbaec31695b7cbb9ac5243355da629b85643cfdc6b1fa9cf67c9d2d49b0edd589e36d7cf450b71029344ebc9735cf1ce45daad100f2b8dc6bd8b4b9f55a295c7af300190514f31a4ed83c66bd9c02a64c2db46897bafad0fb4640378209470834a71c9b64224dd2ca91bea2883d6cae308dd30fa0b2323a40961112231663075413dc9db0abb0822f8c1358e6313f4be482d12880a981330362af8fd6210ff08287dbf38c75c74182327a59bffe9fa2eecfab91ab9fefee409e030590bf361b57ed86d0ec7e0f3b7942e2337de11e5c31389927c70f5501dade437eeb5e3bc49d1a88bcf9f8dbb8c32c720b2f00073708474389301c6db3662f0a52639324d63763ed0c9927ba6c23ec26f4bffd875a9182285029a38ac1d93c8971fcd84f8851a861a35b41b7724a8ccb5db4f3dee6252461a8d9dbc63479286d23e64a24be7814f598ee701a6ab5ff2740e6815dc8476f2e07dc9b6b17734346f752555c7e2bf057b40062792fc0bc2d71f5bd138cfd210982bc987636056a69ba02526391cbd96abab28711f6bb1f1325eae3216ef6fca8263d9d1234ca4615eaf5c25f67e6c10c58ae00442ab4f51af6c7fa33af8f4020500a56853282630131feed09c1912db23c8cf1297e0b2f208135ff8eaead71feebf599b1cf56aa58edd6e8a5bf580e18c3b3de281888b5ee312272540ba9567fc79bdd7cf42e0ecf86ffdbb665e684d1e7e7bc139c275be4c562268caebbaf0c15fb6ec5a02a419c2917bd39e0944a773191a4bba8df092bbb348159ec287dc9f2a47f3904c81c477535c69eb4aeff8389e93f0e0e7d53ed2afd49ee177d17d5159d532eeeaae815b5ac95e6c1623649b95b0bb6e99428392379df3350d31caa4bfc3c0d4288b96af589f9d7d71b26d95a81e9420485b17727f184f4a138fd63a79c369b4ff639eceb51595c12596ceafd080abcb31a601354a16650a81dea9d8d7cd70411f50eb399407ce5d4300db5c56e9b9b49381a5569e6307210e0429c7b74da1760916028e851defcb223b78bef1949d28eba25027f362d3452af8f2178f29d73baa7cf572c12dac577d7afc1d960e7abbb7d0696b7f863abbf0783e6101a7bf88ab1b3826a9fb70f648357d5a3f5c08e489b9f13017fecc85a557345fa6245aa0c25b2dd2b6556041c9a48277b9553e0c14a45253087ca7940c59e5e1c84e6f4da4e08d528e945428c59ae67956158f74023faa43858eb4e3bf72985ed52026bc0c54be47b005d91bd1401ecd996f6dba2d4b6ad72192ec9eec051fd10227c35f0dce957206ab6f0b89fb39f37c9c4f61fe343b5d16634b209cb659230e461aba18abdf658080b2aa84dba18b9131da86fc78927b358f7e749973b7d3559d8612e3130f8576f1ad771822b1f6658d00ce38076a48eeb30c614f93f382ecc9ccb7c7e27b5a3f078100f348319608d5ad77daa2a84981712ad1dc45514a9eaca4da49dbb6e491dddbc7672cedc8be5f2b384f1e55550ed420c3ee2dbbf45d28c8478aaef9303800eabcf8afe139b17cabb91b7b72bd4663847ce126997b8fd87d205314b1aacc5737146ade18a3f33c9cca15c0ffe67aee8d84f86010f65b25601c53de6921029d0b97873d49149342b4c60f811005741f2c509231a6841a587cc8d5d784cd45fde9257e4375174e998c45432ab8bc2446d7763c1cd206d416b99f94ab453b615f71d76cf5bd76e96832faa2284b69dfe86e327e125d8f21ba051d485592b091fe8973c2f7c4c278839075a898652264dddbd77ce60edb918a1ceedfe7734929e4a8c78f4ab28836517054016bc1fc4d65726ce7826556e94f04a7943dd2129ce0529c095bbe24d53e897c84785eb0aad8404f42d953a67036b072cd81dd1b742e80ff221ac429d8d7ed028dddc4aef0d339bb4244ac25c1f933103258e7ec668f0240f07d1ece7d72b8ff41c93822bf1009121188f59d390adb33e742806d0e63e27927c2f2b17871f6c17d46ead225aeda562a4659600c53417bbe8e3b00c64040f80751f01c7a69e61c66b9d4e27e5ca520c92eba983c821e12edf6d2ae9b50b205fabd839f58d66b07f5ac8dfb93ae9fe0dc6189852865e29befbe84984c0a1076374ae366cf15fd08e73785189505e14a733f984e4f2b11a4258d5bedf24b97381fd9a1e189113138c893dfe893a9ddf9fa51e540c86bd1aad109b19813ce1385adfdf83db6af187b7b5542d7710b770d7f77150a664fd5a076447cb9b235c1797cd129c1204cc80cb4e9082c04e5dd1e6ccfc516de741bc74ce4a6b8dae1a068a3e63671f20fedb112825d053ba8e1385b93ea5d35b4573327c8f53d031d842a18f0ba00eb262dac0fae02d80fce4ec4aa2e4f1fe6b61856b5d04046a0b30d658442c01f72b940c7f93f0f3e042815ad7a793b68b5caac7b3a5640b01722a48565900a7ca07fe140250370d37507fe77ec5644cc7d39de937e7a8395ff767cb8fc6106ca52f5d0ea96931db8d7a3b45447b737fbc5f4827398e8428c8a4c37ed7c54a193979e8893f5b5a04cbb852211033d77868be24a293de240b089820a0179387a6cbf29ad8427e0c58783109b950f89c7e93440e354ee44d142c62cff0a329b7f93f0031c57b60a9bbc9832b4e77b242ffddc7ba729083f05999fab741f6218a09556177b641591224865ed2e661f79fb1b5782d23d76906d04cc44e6549c2e3d29ae2ae2c8092b87f997fb7b9d8bf2a929b4121fe817d54db0ed6538f970bd83b7f9202d122d1bc3dc531424676c43651846079bde478e7e691d19a0d22915c9a15989039fbfbf700417434e017ceaf86cb07b3d3cc197586b7e825f88644b927ee887b951f231fe341743d7e16379ecb4f6e75aef12f8090838b110a38190b88a46d388f38056ea4700f3f65fadf0eb129e76f0e885c34e8d021838a6fc07a4f5a298ac7245d147f9f49beb442510672f0752a8ed713ddbf3adea337514ecc5d2da5fbea56157d5a3ed4aa17c2beeb849e1142f7cb096da23ce7f420f7bf413912babd51970d8c0a9aacb913349a5cf5fba48bcdbe13f0b96dec469aac19b3a3451c93403fefaddf5f362c563708bb3dff41ef86d4cf3a869119c6befda3dbaae7aee5e6c215474573af0ad87a7f6e0f9d5b72a1de4085e1f84eb04ab0249b80607fc2be2f2a0db20f249d70d0c875c7729d56b8749b701ccdc1c1f3977af8d77529a5cc0b53bc9c8a9445189ee7fffbc7cdf5f461608374b5c52ac4f02827e5c4a1884d5efe3a25bc85fbe27046764bd42fdef1c0ff74d9eac0c2fc747e439fff00e3433454d514e9dbfac532d55e0f15927b6c8922e6b99c46276c6382be65716626122f0724d1ee27f7075de122352a465849e1d4a977d0b64a769e8fc028a2ac59cddb7916697aa2e3d9ead50a180f86dd1768f57cb847a1df03596735c4db2c8444c775522ec7698f3c65b82f048d75c8d2f34eed743979d6b8471d8f528bafcc9969983bf0e62cce13b137cc9d6d676cfb5459de36be41c93b08223ca7c8b0f7020bdfe44983e1dfa540ab54cc12fd427ffae8e6414ccc9e84ba4238470cb38788aae6987002e1a79305ddce8fa889183f8f1991b85ad0900a87258e1b214f4bee4163f91ee41bafb25b8260e6bbb7abbcdea8a275acc17d58b775316c1adda94ffc984fdb8ce4b851523d3f2e665b7dade102703adffc313e6dee54a9008dd4f0a67e2542961dd521121a2c6862dab81d7d2443c7aa5fbba81c55360cf32365497ad16c462092878a66ff88151871e415831b94dd3ed0b621aab67f737608fa5a9909a31646ea512740998538e227bd8ca4205d5c7aecc816ca64c50c2a4213842f501d594d31bcb6313a48794fff3440b5c2d6c97e2b90a5da0e5ce4011cc546f628f2dfed38da603930d35deff8b56ebfa239652b4b4f1dd6a81c8302d309050cc08bb5dcffe11aaea1a00f1018f68e20831f44b71845c6af83de5d3b5d6c4adcdea73d423b80f628310f84de732ab03b2e7075570596164a61b2ea8363098ad5ed37a40d9fed94bd8aa86a89a2638434f909988837036682be90755a2929cbd0f83ba29534984e8cd538635c83c7cc4097518c7fb119a16b562faf8accef24a40b3ca5ae1f10475b7d3d2a1b9c0a30d2c101a98f05c374415fb5602a727734dca4f5178be7ec9c192df3dbc2f38a3ca1f2999d00946424a0fdd11d9b3b02426d030c22532fa872d1cead36cbde200c1dce71501994f350e23f8d3e4b4da8d1559e15a3c447583fe257c70f8e591cd9ee88f0a6f03b280eaaa14bcd98e27fa1afe70c95e9606d5c173026c0c11c53bee448705f5408ca2f82eaaad216f9ea517ed3b7895c6d98e4636c945b7be60245f741146068f6377f9e1c5f2a9ca2fe3360886c490aea817ac748e1bd1760ab718cc1143f55a69a50a8010e4343d02debf9706c4cababa4b2ce6f4b5d0eb519a62439ddf020d626d22651101d0a1d238dba4ab65654b215ebae0b3f01a779d8aa4a42bf9bb024a0f209746b080d3111273a8ff0c7e43144472c0ac02a6a417892be97fc9925367976b18ada6addf1fccc484897d88d235ce30432a49525241f48d6b1d1bab92b3c95749a3858fc34a474952c5f94b25c4afa97f4c66bc6a12ebafec18aaaa976d1aa7d9408fac9ca694c107beaaccda63fac24c17a15c1a6b7501aea8eebbc47b590df930204f6deba0bed9c9fa6e486fc402964d46fd376461f2fcc3b78b2ef5aa117e7a36a65081504c35569060d6b8bd6f7da72b43e0359c62e956c9d75ff423265ac03870c7917a0efeb1f22f96e4effd76bda074ce8ed2c6aa6ddec75709b8b9c1765cdea65a95a0be5fdfba8879e5468399add6f327c05b65b6cad5444240eb4276021edddc4a3142a8353a92c844590e2611e38dbf86e5076e11df9f3addf0e7b0c5d07c3ebf943db611e0844169e33ac8318d5d125d136eb9d026e45a268176070552165a7aa4e7959bd5ecad82a169a2357b98d7cdb6f2df201d47ef74b248c0f4206e592793ff717e196fcca422e89010e243f61baf28dd653ae18fbc8cc598ba770f8e53faa110f127f3403dc3954da6361374d538537748832d3fe7e5e0397d9deb262068617b099c928c9e245f23067e7976402f50d015491946081d60a75ba80bc8d66e12e2b2c26852d69182fc523d042a12197b673c893740600e7e56eb042d9c594bc249a801330c463702e3d6416d6445512cc6a07fa7afc527b2b199ef16256de92fbfe2d38c0f79298e4a55fa650cbeb35119e3d3c68b8951363dfd00dd50f888a42576285bf0bc9e1f074125b377da3ae369d8522974abacfd8d9357f1e359282c9a5597b9136d57ec86b0c8792b565e829f99b4846b10fafc521536a65b7ebcd8e3ae6b456567365d396ab4784591b0854acf814167cd73fcd3e375ca8b90a85451c11ade976fa5ec1faa99ff874184b70fcdb15872bf2d54c5ff55f5c22d047cc18be63a3a1191e119ea8eda9c679fde492dcf6c5ae2a35040b425719df23c2cfe62364178b9a133b8c98b5eda5ae077d9e58fae38a3487aca1695a36954e8159487950c1fb92b9223a3e54e46b0ac4fa8c13dcedfd890d2311380557abee4e34373514a2cf02ac0479d509d126345c3f708d89a57dbf439d2b75957363fcf1b55f8123775192a71acb747849fbb64d57fba675f5204a0d98546b5fa1fa1e2981f49aaadad22162e7e25c4f50c26d74c28679f5dd02051c5ce467a02db21a4496168ccb96af9a0cb699e9f34adc7db82117bb0ebddda3be1e616b4205deb634ace7f6626f23aa625756f27cdac046b1da770ad0c729aea258c768c5916a3e933db0c9cb7214140e80ac59f89ae45ae4c28ce1e0fcca566d89818601dbb20ce49ecf5850373f6e59578c6a996c5539aa13af1ffaf1027cf2a00e639164743092a1d295ae2d0c525ea0d4b2576ee42a09012322043019dabdf5be60d1098404782a9a34b1acfadecc4a3e1feb9cbf4eb2514406035e77a59185d1f63e1c49295e591320b24b613204ea7a9bd149d437467e5f2de41d82ac3faacb9b33a6fbaab46202e766d8b707539709a0c4786c300154cea2c2ca9381514659e82b7576dbc7934c1eaae0b551d1e6ac347426617bbe00d10c84a8699ef601192bee5cf037f3b35884d08079141b3da6030c7d774ef825b4577d44b4d917fe038679c6786384baf7b3d279557135511da255c3a0cd76c35c3a192504b8534bd32e54c3d25d6e88e14dc5c7dc54eccf5c555df25fa56dbf0ae16062dc6cbeb4bfcd8ce837543bcc19aeae1df5d846101451f1234e60dcba49bed1c386fb99dbe435cdcf49995b6cd0462732666834d4de51eac0185112ba509c657ac6718a942cf0143ad1d1a55485ea78d8bdbbbd05d83d70e0aaa77cf572460a9926a97f10e930b8f11d8d60e3f7e73922cd5bae10aef472a89be463977afa7be0d13d39a0f65c800989867e308db10d85f5713da597ae87a8e16ecbf001114cdde5d4884e04ab58c27f510eadfaa298d33c7dc0ba2e278b2893679df2ed7bfcaa68fd158da14968060bf7d1cdeb6cc22e816faa7f9fddb4416e25f3f8e28e30de9bd26b2f9741aa1ef41d4763285d9699d30c9709e5d76875923c3e722413a74dfebf138b5cea61536c76f8a9c0408f6c00d77f578366942c7c81c9cc9bcb66626bb9ce9e8600ba9471e805c5c6812fdff8a958acfefc29679c440ada3fb6070c80e07d5c6a33fc9abd5d6f964ae61aaae7f5d508d876df496db4e88c576f9aad14d87224127d44d90e5ad7865f4f32506bec9804c278be4db84797d4e2d5353120f859d12d3ac60c4be665e506d662931d01ceef8b478625b59ef589c2dba7e80f3ea3fc9b82d43e3e5a2666c296d3f84cfd199adf8dc1ced9a414a5712a931c33213b034a7a2bf7476df6d869cc9ff060ae6d7486e8149946341f8064a0819427731ead175ac954b287e2ee18be27b6dad2bbdb6e43bd21ca5d7228388970422f81fb687b0d6628a7a09b4831aee163a4be54875f7b8be05a0ff9c64efd8b2c98bc1022eb80cec5e9c54ae30247972e9a715cba27f8f375dd0d1a01e7981f503886d4fd3f87f6890dff16c725568c3a2f021b884be582b513e8b3cd29c4d6950d196ed740a8a82853fb07fa27860e65b17629386d0cce4e8857e42fe06d8c1e0af5d09b9222f8d97e7a0791e6bc714c85ec322fd3264a4cdd664e4dd7d6ca1da377c78fdf38892f711339760f1d28aefba24cb8e75aa8858badcd3515c9547a6caf710eb58569c26ae12f226660754a37c22705a1a77c301032638eb9e14d8416e4a2980a60221f15b1001b26d4d24f977243c697e66812a6c62091303abf25ab288837addb0092dd964c39ec8ec6da351beda1cbfb1809300c42de1758d4fb3632cff02bbd18c5db4016469df8641f57ff0946052add865e87508e089e007c482730e4ce9db8174a63cb4abdb32078b87b2e32c3832aa0e4a65ad06c03d61a29ad20384164d2781209b45497fb264d417c96407740fa2270a9a1160e17626734b59dd2347910c423d14052502aee49ef2c2d10bec9c45b827e9c4675c840eee40af88eeec133d23e428909d5f1b1ff727e27c729dd5104a237242c4dce12a5be18868d9caa1e3769f338ad7a4288b60ed57ea91726582cb78dad34654fb27ab516fc241dab5f4814b633b8c42141bf62e7b5cd86dbe8b7465ff7ca98d8124c2a1b0a1afa5cd1cbb6dea48c13bd7f3e20112333e829c47e5c4a5fd7b9882b9a9bb82546462e3ce4e30a67e338c1cfbdb843c2fc7d6e2983adc0b4cf2afc6797dc109fd22e34785c2c0fef650109a10cf6ccf76d82c1b40b4ee3f9806c886bae03d516016ed9a8e3aba6a961741ff6e8359cf4ea2f9b5d6887054222a5616ee93de2315f631a1d89c0a2afddd049a2ac157ba0590d8ca66d5fcde8a65f95659a8de3312df2b89236886ff4aed96acf92719c8dc2a2fb5b409742f9911f84cb69fcdeed77e3969cb4ac8a6fc273cb0eb7a88833758ff4dcfa4391e888a38f505e3fce829dc2022545e2b663232758901b3db6788f23d59e0e5c1d0a360e4450e656d39e54c480236d1eb0f146ed7a164322675ed90a7cc71bcb58d6cf11b34fd05278764d4ed3d8624df58cf24498b469c5de748dfa89d5b930e82fb5199344c92f4fb6889edccb2ea6be8fffebb535cd428dbcc23dec4097db80eef8d5c43dc612bd92479171345c8336c452693cf0ba81546d8433dd1fad185cdc15488f03e972fcff418c00d6fd50c0e3467ba3f9178033efbfa135bf3154f34819d4d94d5d3e2637dfbf679fec1f5847a4648980af095658f661289ce48512be8689fe05d00b0464df751faa04578283325c1b10d4cb54178cc2e67a19b8234ee821e62a1c322bc8ce7818af694bf5f82afe22e8f46d43ae1120c0b6459f9af325db39d5a7db1e4b6e2d123da2dc07dbbaaaae67a81aec2ab73661a83ce0149e6d96e6805ab49d60a51a4f583c83425dbadf7af5754f1ec6301df22609fa5ebb633e230d07d763d2bec50fa7d12d6b0bdf213e5f912f443a0a6d90b5e25f45a2254518aff0322c1f4cb524e8ff8538bac995fc7c3ace38cdbf78b5f32d37b9142c6ae3ae4e3c629f785c916a0ff097703a9a292ee2d963925bcc8f522b12e755a8ff83ed399daaf7e6a2d26175ca995ca4e1e8860dcd79b667f65b3785cf31479b3c56b6f1c733a0ed7fd7be5a116936ff705d8cb7759ae87ee001562253489595f62094408301aef35c0d7ea66338854f0f6d8c533040fa3f609c8f7fdd5e851b4ba096c593cfaed9e43cd3490e7f32a8399979e5b260b84d155688f7f8cea8ede04d20eebf7f484ee7e47b36d503e54eb256cbc85fb1897070f9509952afd7b3162d141b5022a63c7e5f052b45f7f9513cc1451e034978c5b3654c735d16bb740d4dd35f51a694a6db9750f396e7bd75712cc4ba4fead7cc3a1b5060518e0d20eed19cdea71af7b904d8a04752a56c3d7b2b7ae4b27a067d2d683f4cb257fbd7a7ab2afdd6bd60bf408e62fc9cf972921ec885102adbe826e817504a7ca784b642ec9aacb923cfdc6f0a5b4d8ece021e2ecdae1cc19cee04d1ea81741dd2718ba937bae1afab4132fa6e0537ed0550a2bf5a6345e73b5bf8a32a9450f0a05c19cee72b2857e5255bea7a3fec1f62a9bd32c1e1ecc890b1edf67764df819379f2fe11797066571ac91f456ce49e02a2a5e7b8eec2d3aaeb1de5d9e9ead36a07ea16750ce5da49895fae86db4dde1fb943ca5208ce63c1b335d00c0a714aebff5b007c01efd7c8ca839ec65245d9125c36df574bdf6d3fd7d400fa711ca1395fbbf88a0fcbf37bcd34fd86e724bd1154799fe3c4b2aafccca1be67bc05402bd99d12551f10ebf4bcb7d3e8b6bf31d0f9d4c8b63f2d0c863bf58b1d82333a3d26e19a734d685d89440435239c66f0a031854479e63c5efbe1b54066392f07a5989ec949588b062c197be28d6d1532f7abe172d0968e9234131c72da68fa836eae179177df0e1b4ab123b75fb2baf138e231119f86e5ef78b1482e299fe12d9e07ed8cc14e80f2720be1f1ae46dd9a2946eed1ce034f6b3e853e60cc2dbc1ac42e1d2c0b07380b5c1b78c62d1c40cd55b8b7bf5cf17e4cc8ab8064d7352d01cf37bc17fb1e2e360b5ea964f87f7e631945e1734ad7b96ea5d37bf08e8507a276ca804b95c340025780c90a527f9b14306b3dcf4381e960d9032ab489d927d8a74de8fbdb61412b76021f1a4c07f5c9f4b28778f20cfe5a2f2c090e16e4701e16d38764926ab58bc938fd60ea2e6a8d459fcb04254a8696cdf5ee5021167639a43bd2b5e73228cbafbcc655b3356cdcb378f9281aa913b596dbdc734cd81e5c97b1655600fd4c5b2e739b1fa77601e074577a689ab5ca37a852e516017906f16893e59cff8797c8dcb86d0cfeecb295b2c36633e04784fd40a5b60c99798058d47a7446158413dd9262cf164404c30128b166c8c74903a16ce82e0f6b47e28aa999d5dec5acbfb07d73f738cb91899e14ff54a9826df0c895adda2c859d6872c17d9e06aa2a8b128f5ef9513b6918ca316a793279079120fae4891b45396ae41bbfa166e7980d3137fffe9d1194bde0026524fe4a95c4fd2b27ede231acf4b19901553e562f88d9d0e4690cedae460056b6c84290a4f53a3c68e00594f44ed0c8298ece9a91b2a999ef91afc3a53df2e0c2e7b738b458fb24773a7c08fb88e64cc38012c3fb492e8843eb4c59ce3cd383a187ea65d199e50a25d297b463d3f0862dbfcdeb90ae3c01fce6cedd3d93057edfe449398f7be909dd9cc816b2b860d89cc7b755fc36d4fbbeab45ebe0b7fca5f2df9db96de6c785612a977c55ea2188f2effb2f218d449c89cc9f9e0b3c95a783f8a7f82a31551d0a3b32f7fa2a1827d9f1d1dbe9327e31295bed4e88a1bfc9e0191b5dffffce00624bafb58fac1010d5ad0e9c2f1bfc935e972767e3f9f6db06ee5ae9ee6e3189f0d261c44044d7dc2051a95d7012d13f3c89d73de4e03c5eb27ccb5a499a610895a75e38429e0edd8a3aef53a75e12e80da5a04f0aeddb84dc9b111e817be5aba3284707b824b467385edfa1179b958b5be1f39414e9584434d636fd7c37b36bed0eb278ca86d6c62f2baf234d540c2d89307610fd9e14f75386555469a16c2baf69ac072de3eb0b7d05d7a435edeacdd8b7d6fa1743f90b400e2104fbf2bc82ac2fe226ad8d26d8c4901e8ccb287f451760fcf65ebe495a9f6dd193f2b731c169d8d0d6e6fdf9d4a3be48c9731c7159fc3adb70a6fea2d0848b83606596f0d3b65548be411b985651ec3865de9945a297b2e527f35736d370cb55d9af6c38457a62609cbe688abcead6a847b80ebbab993db1c464d4326b76b9d2a716ea395c34455a3371c581399ca9928e7fd78e2ddb08ea1d212d6ea07180b316f3d0637ffc37a17a8684bdd18cea9e2262b45312da5f4c4598ef5f3516b40686a653a4f00cf07336b4a7c6041d6ea4949fd09f73f265f228ee00b86d6689b860dc00157c069fec0e1df4934a047759ced863ff27ee575ee7e320555c2663b27f35e82dfbd906e5fd08219c5580b3796b51e8db5d124556c8a352ad23b7fabb05c1b604febf6ff4d70d873fe844ade5cab804f903bfc1c1f988d2e5ce1f70a7d7022ea3c2cc675e29209a23cae47fda4aab0b4344e80ef717844b60a8db12b2eaf348d66a1bfdabba5fbea59de42fb73b678c701d263d74fad5900c427a039bb86f4065f70d69a9fc30d06b13b9beee4d82a8da0fe52b2fb587e309487a2a32a5bb350b687faf527900d78596e6c35bacf674a037b3c8fa58e743d6b06e34960931736e368f030b2bd3232a518e866788f04aa946defda5248760820f83ba8c240bbeb6fb93437d8521d88836b01ed8ada3e5a2ac69f1688319e48cab5c1d52d636fe0da1cc315ff2963c22a420f41458fb66dd7964cf51408b509f2c8cb942efa12adf67b683129331de4f1275af0fb2997e13ebb60bcc7a1c3cb8ef5872f4629e1940bd99df4a4ed02d699582bfe40cb7937850bf6194c08be5e03ae5177b25c5397ae66205b873bbebcc9cda326b40519de319ebcd1d3575db022f7a26539f47210e36110079fff4073efed741892c616854f0ccb92d62a3fc4db400c7cfcb9be9a2a752a77355dfe54b5be2d87ed03ebf0dcb481c1ab546a06708b500473e15df8a9a2d64d0f7c09a3210a44fbafd558843757f53f3ef46b80153fdc310bafdf1fdc1857c2449e5cb47894735cdc4078fbe558101cfdd5520a8f8ff6329481ddc972cd524862f10ae38ee81c289fc649329197a5bb5812bd33083d8ddfab3941dfa1551e07b82c4143f693f653c2fada10417c0cc607358ace685280ced2a4dc0ffa7e1fe5fa9c2a2de878564d7b9c327910a39ee5e7577d60ef11da06ad015555bca8404fd58c06491401e4f97728500bdf19ca472899ad64fb46be1cc0bab0288c9171e53b79ffe911acd63ec6323b8869c97c77dcd1bfc8c035687159cffeb3e01224892fa6a4c7d91d17a2ee12a3401ff906ad403d1c7c4ffbc4a43316f7405670042e85ff3e7f1a91bcfbdad096627e29b770eeb99759f87c1d383587bc4dedd8b8d57b1c21433f5192b6a67d4d48e5c9fbb23e162de487b0c59d6b86a386a1bfb061035aa5ee1cf15e7632624ec4d2e74b00a7aaff07a122e17d7f1a2015b0fa34186759cb6c1d5dceb0ef8d70483a5ef04095afe61c4f88da12d0a5115c38d18f65d8ea1f0d0ec08b2808d96d13018707a039d4c6cdddcb7abe1fef0712e0e06701b14cd0421e3c0ed4a6014c2e34236539a87dcd513ce65bdd978ac9c655f835e6873986235c7969f8aef91e717b0910608e8d628429a30a209d91ee464f87b86d061cb9381079ff345e2f484beb40d0656e188d884101e48f52be89abf3e24069fbd12540e61cd2dc1ebff0960d3026aae0a25dfc62fd982f8bbb1207b450cb2997c67e235e0e46fd361f0662346bcdc993f8ea82e3c26f48257200bfb3edf18664a7aefa84811dc555a81fd04fa13153279cd3fb3e45b6e83ab45600b9882a0b552d4b76f8001586cefc5d1bb5816dc5ca51e398a2ef3709889b40f9269efe7d184f87d1873561159771c2eab3e1e51ee415a2c02b3db85061c3d910e2b84cefe95345a43f10354b413a584203d0f1d5abf29d4c2de083421eb2029fa458e74080e70d58f721951ef7fb25a5a01466b949c90b25ace6879d05186ae95b672a0c389ee7869996d8d861aab942560c794a684360fcd6088e4378ebe0fde5fde44acb72d0a014db5efa934f9d69f0e20f98538fb003ce8f6fec7e3609bbc6b67298682adadbe48f22e986a51c726ad8151acf8473227166373765da78fceeffe948f8a316369803d18b2bcb208a2b6582c1f5259420c919fb1c6b6ef71e59055459bb5bce0df95bae54bd864c597938df12954f69944906d2bc3375b3f06c0413c58008d3dd011e785a01b3a5459119729d8d86cdb9e7bad844b21366c5c85e115c82679fbbdf2bc0738190f6600b007cf8255f3ee7f7e9b5cb30acc4ac761d6a6bdef5cd5d39b173d252438dbc5134eb1b245326e137615400d0d21cc743f23c686a80828ba7b83f93bab1979463d4217be2b7866c6fef3228b76e1d2c0a8121b3623f9e3afce4ca859064cb10ac7d452e4fd99510f9a3f0f97db9791663840b96f89ac9cd2745d8b37cd9df52d233ce229c58794ef44fb56e55642f082351c9337503eb691cb89c9a9b40e1794a5d91152a5edf68c6d690e46b89d380ada5423357142fccb969363b058e3f2a49111afbe2f9fe0886e9fca9ae9599a12a34eff147aad99660f4e771c58bbcac287b7922ea102b7452a3082963ed95894311c6b9b196e36965ec4d3ecb97d5882081404420a0f71f8b7e0c40104caa37c1a479cff6249397ddc9894d026367f3bc94470e4a94577b4fbd13c5b2ab9c89c1078f2e1c6f2187cb18e83f8b1942f2f5b0eea4461409d5c2a6050403fce83169019d9f5cfbc58874bb3a120d528389545f3a17422589303aa799a1357c963fb2d8f121c36cc9c1e3303685d0ea4dcac3be215971bf975d51b8e9aabe2b272b7807bbf4c60e6514aa45812d4c7993d2d24a2bc5977c90add38da9460459e82e07b7ace981a5a5d6064de2d5e7d099588e0186c1b3da303328e3b28dfefe03d35d76ed053b208bec9aca5dd349df2c26b3fd5f95421c1370bc4e04f8c92ee7e95a03fd23bd4461d68ee6a391bab67f87aea8ec7d9d284073c843ad299b93e1e80ae75fa5274e554b632a0a45b2e0cf7e30c6310ded8937386704e74cab4ddd7138a26f0b6924a499b1fb2651c704c4d5fb11d7f106bd979d3e7a52a1bb53b097c2f44354e2188ebb2f6476c544c801e4147d7910186bbcc76cba97937c21a7d71c9f8ac2d3f491cf9e9679ea6966c80d4040f43b95c07bd75546ce615cb98ddbc408cfba62ab5658eaedd5c5eba95fc1b89de65fac06d3e86b22d5f170b105e297434119eba1edb8bcc6944e9c8fdba4d4d70628ff48fcdeee4ba5ba75b85a95203519075e28a86e2b703acd38abccc44e4776c678cb2fd9ad89579f986391049623cc1beb26ad9a94e299dfa817dae8f95bca033421b10c60f66858e6964b20f24a4f6a2978d1be16e747293611314190eaf72422d967cdaba88ab9808206f319001cd8f0e3118d5174cab11132764d988e924797dd9553c5ac9d6d104731061e3ece79cf88f5fb6e357db48f6c31621128ac626fdb92a235b295780d01e173a50726b4bfa07685901088c58d035fc5a91626bb88be92d6c045ae37c03a1f1eef614e68a334d714b4773408c117a8a3ca01c7485f6349c14fa140adb9e04b2f0c82d7ce5af2556d79bb89a2cc173df78ae398b49405e2c40024994a9a427f139ee862247ec82e38207bc6124ffe423d29f01fcbe72e92dbd40a4cf8612509c395a9ccfc56a5c35e8714ad3d5b2ea14b1b0ea651b48ed25c962ad7f9238fc81b449fcc7538dba6b2deefd603946c702d00aed1dd7bd8920a241858e45ffbdbbac3fe8a5c1ef3cb30c14381ceb6561164910fe6dae487d5434e9df773a9280a468faf0cc5374912d54b22876f2d5be1818911f41d8a256ece3b898b9c8f456380d60bc4eacd0d96b57c1c55b07483439a0bf67551056fe54d60636a3588d3d2ad24457345f286b476b9f39de2421b5c00126a371a1d0736e8dc6fd85255b0aa16ec93d9827162c7dfc6098fb1b44be4517e5938d5f1414fe32c46cfa41ddd5eeaa8c014e3a449415d89fc6276dce0aa3f0e304285203548a95508091b81de32ace8befe280ba9122b3d32c43fd4c89d902973b45513584ae049cfc42139a4d752b1aae1c6b0a77a9cda8c399c328d264014cc420168b7a7780ca4f20f392f51556fdfe82e0812d6b7d8188bbc97c721201fbfad761ba44c9de1c01c3de3e54fe60f44ca51b5c9130f244ff159014a7831a4fd3cbf57f672432a2acb8ebc296fa15616ca3db4de77ea328bd178b9962aaf8ba129c279f4c1dfcc090c6f3712db7d264c709fb4b242e9805c6365f2a1f3041fd901e29ca36811519536d62e071aa222c05621b84c0cd0b039afe7395f5e6cb9835e390a208123cbc2eaf36c3e2791b6368c271a78cac3a03ba808a12823f4e123cef5c8508fd79d0ed489d42c2d7c94255264838cb540a3aa219ccfcb41b3ef0618fb2691350680b660956f4d58c2e4998a4b3de212f8c9fc3c596e99ed523f3f38dc66502947e1d0a26c7f9cb690580d0f5d3c2f812accc210c5e876149e04df49afbc937086f6486f2899256dbe0c5158ae2c9d9983042d686460bbd1303536de75f9ba4da09d765dbd979a75fed4eb12002de7e8b76606bb5329cb60df91741cc43e40906d478b0a816acb1e89fe37f3e8d4d81b4ce6c71de8dc008eab65b583546e08dd09b7e1138ab7a690defdf361db40c9860cc9a55f315cf019c340ccd83a1d2f8d2ac4e15329b5cb306be2de740c93af851562dd7cc2b3fa7b14028b66ea4cda124357e2be47d57709e4e24dbb1a99bbe566ad9b8c20e9e3cda34ed70c9c1bfd1865c258bca271f1747287618e34d7ff71427541bbd6f69fefb854f09e30890100b8666981677080c8eb47b4c6f8136d400902fd8b1cf9ae2ac246aa9668703a292cc0e6dc25193c3b335044b188976014584e072a4a3afad76a451d87f0a118c8d5e65a363a0d68dc1e6eef69a28b709cad3dddcba9257c50e6da29c247a9c6c9043919c02eb64359b776b54373aec504cfbac25eb9c3a47154e1bbab61cb2175aae99b19bb224a877ccdd3e2c2c2ab8a15a95f6a6d7096fce6089dce018b4f2377e9266152b63f38165b84f9b1b75fff6906b10efe7f9e6ab19d1b3d0d184f613cf461ac07ed4c5c9250d2c47a1df6575663d3bb1456da72b31f5e5f443ece0c55350a24658b8abb87388a7d9c22f259ab9fa97e8c350fe45bd7e6f6c0a7dd04d98fce6a913ce7d63a23ee03f1c80c5a0a804cb900bf03fb9a3f896238591590af0047c2d4664c5c3db5f2604f701baec1b8687d11b3a76dcee53a771af984f571ebfb2ca0cd8d5b0ec67829410d821c330a57ddb4233a721c610ade94a6f0f4dbc4298a76d35c5e971dd5f72783156ce9b524f15caca27589fa486f30610af5a461d3c4987a14bdbdc449b6cb77208d2616e79a4d81c51182d66387c78cfef18cb38503ab500f2ee03f3e7e0464c0ba54e127e95f8d5aebc89a48d647cc90ba394adb6a00a7a471f0e3a093beb41320a5f8c60ad493c4518b7c3850368486b06ce3518b00104aaa2404d01322d8353413274fbd391e23302651cc6880784fb509bf05a304ad944e5a0621baa6faaa14958c3eb0a52e22c10606a2640863d86bf0e77f1564687b0de9373e750bdcb73037274e25f4c1ffa877a28ea805696530208e6ed0ec902bf424f2735e3f25fe504fb30603d27ab3f9cb26b4234b0df5e1a1bd8bc9a560925f1dfd03831464a216769506fe90922747d254cead5d40b2326b0d5e9097de7d0b1213a67d6051e62b50705a46ff8d656691ad90d846913b0f0296e6512d0447bc8031d1013b188e3902b8cf771755feb45816ea60eefed6da0df4b1af004a4a5667dd052408b6682356ff6a745c6d968e7a729fdb761b901afd3a5eebb22390b92fe3d10f90ad1b3f2d525f0e923791f4a858342b6797b18b63431dd0ddcc1ee6b6b99cd13d81b7f7fe1e62fcf8b2b983dc036a88277af84fec72ea0243fa159202c505c3b211910bef11fb7962700213c871f9efd1e2eeb18b41e762d4d1044dccd3b4ff602cb73c110a1080c80f6af2edca746eb33f1c95e9dabc1407997afbc62b4319b9b467f18c4a406d3fe61d169b4554dfcf891cd901bfb6c5498699c4fbf53c827b3fccf042c36b27a8d8690cb46d184b38909a08b178bed7faa2367e60ae9398fd4b1f5d3ed80b2c66666f0bcbcf6fab90471987909bb988c6b56756114b24938f4518d32443efb4843251eb22d6a13eb1ea40c74d4b43c832b73e3f964704c56849823798780217636ad9a9bffcc09f05de0e0ba81ba011d1fa0ef2af5f8c73bdbfbe65ea03c6b029a51d2674c2e48f266e8580ccf03d95aa6795a2f203171def9b9d7321e7f8ff7a0579344372b4f3b1b902722d0fac804989d049204200d5eda01ff56d015cf8e86b5ea9075467c5068305b5fab0b869213511e79817d5c586b150a52a3b91b031ee23d9a869f9edca18986cdc78fd0b2da1b0495e77801e5f5f9cb31e4120e820c61a9efe9ad90754e3c8969a675bdd01261bdfacde4d864c9b3f1ff32ef25b5f07f49ce4421b4f6cda32521eff9b1094d5d187a09b5c6a9af7c363a0e6db89fc963f319fa6b69b943630e717e8061c15032d66604b65f30f7393d46b10372c819d0b243270df213d5046bcd9099c285f4dfd4224ae74e59c8e7135145442b5ff3d870d996302c976aea0af2fe8d3852d5522cbed434ed63c6d111286de1f122e8cbc26c3e1d71bf998bae998794bbfde8f2722e0e74c02c819e377a5bc054f04f460f6485a0b32e8583294d40109e5fbd472fdc6d7671b98e1bf5cf59a5f526aebdada1fd20d7d725c3a80e8ae106214c9df7d05ff23439876d3ed369201ef56b46115fe576fafeeb8436c6b609baffe7a6465c1309eb92c19aeca4160661d810285dd5d8b1919a526d13a30262a1b86600e905bceab37ee9522cb3fbfa4073572e7d50ec40de9a77f144dcc954c5d73eddb941e5d6dad3ac19edfccb501a1611112d8327dcfd40d53a5b613a89c3b52b377797dea6de918c2ee723182153b48b204ababe5b8a7d3b52597218559921eb06e94b288e4925a0fb0dc63a36d0f8229635a7643a5ebbbd2ec41382d5834228d5dbeb8560d04b05cd3f866082f3661c4a451435c91539aeb135b16d05e601fdc299234f9baffa38bc138caaf6216a66105df46b8102879303253d42ad58ae305106e0ef62318054d8917319feabe3024e28a10be13f79172e48106b203e6ed020c5f6091560461222de8c45191fe91f037b32a911f80ad20686eac056a5778f0e82d69df5edb8d671b9f42ab14b43dd72748afb39244c1fc66d6dd0d88ce1ffa776a2e988d1d3e2867d430dc234feab352fac70067249f1d0286507fbd9b0394cb4218f7c82144674a9be540399ea7ee74c329c856fc7e31872edad3f620a5cb81debe7882d09b9b2a04f62f9fd08e4b3e83e09b7d1660719e4ba66b661e1d6aff598ac953f233e61eaa469c6122509a62e4aa557dbc808f8f36dbe56ea72bbb01cff771a6f3bbf90d9e51be20fadd543f5200e8a6b4cb72f32138c75f6b3f55a1018e2a75cc64d4f988a593212b6411816d7f3c9971ea1515db926bde87d105089864069be6d2efb90826be02e311348b5b48585dca9f47943a9c1bf04a2db87528540b235e36665040771a2302436f5bdab6b317eb8a578663517c10b0e8e0ffeaf380dd17d177fdddd7f85774e84eb4e1e585358d4ec572aa2a5f4a114f22b493037bc90ddaa438a42cbca87c5a686b07d9b5c6fb399f6c3d9d34026fdb49b160d0f0fa40e2245962b12edf60954681b99a9bc8508227f5dbbd119d0b33f8baef10529441f2b3db5f595d481a6ceeeb9d8190781764aa59755f73debcaf81c61a074b19a57d0eb440de37b98df3bd377a6ae28f04a7950389fb505f2d3e4e998e4cdc78c241a2217441a6e3243e11e1e745ed8fa31826a61ad56582d3c977cc5e52d676079fd5ca03b8595e5cda3958b1822a4286df7c51d6b8c7c4020648b234f108480a28065fb1e078155bb8630c2712691f4614642ee3855fa0a63d6eb7e9343e8004fe15c61304059b82035a94d2046b6394110f147df0fcbbe0e200552f155b03b131f2683eaf6c405926fedde87f08fa8640ae60e3e754889942fa59be828efd190114e1057137895844319d105258ddcb0fd50c0d5d025d6acaee2e1d7b7ef68499a47648da8a20166d37341a00375792c919fe9715c1edc4baab82ab3409baadc266d896051264c8b9a01adf4dd6ca7a42d324136776f47a107d553abdc4f8e6ab35fe428bd72f8a78f83977e2d003854327c5157ef48423644d4c76eaf5454d3b6c42557b4ceb651a27a54612671fbd434f76992a5b8f0dfd209723175aa05542f57bd3f12bcb02df4931429c7040daf468c4f724396707895ad4e250500c50301b3ab83ce4401003a65c0198da8d8be4ce554413feecd919ecbc31321eea52c0b52fa886114632f3219130087bc129b6a94d74eab7e2d8365cc4a7bd601209d848d91cb3da07ebcf4ddce4e6ee42d1d455f3c75e289fdbc31f8f0ad7af41f9146ed4b4375e9ea0467d9eb4b0f0eba487031ff01d44605a5322037d83056b907c03bd2709e6c080772b5240a07b0bd96291c6290e1081e9397a01f6e19e411d2e0bc5f7520b304457272b0a2bc91e013369be86a5d96b664edd3f6582813ec1461259a703bdcb7f3f1890f765379ba66f009e773ebf6582f19dafd8dc7b857ae518dd6d6fb2c19422bcde14460cc57051c1f85d320536f4bfd5c4059b7d3a2078e4ea34953507970a79644c284fcf551d3790e0115b5bc3f7e58ee48e64dedfcaf3f757c9e1b57bab2e38686ea72f31bc4bfcd2aab176980e15ae3d743f53dbe15cca900777dabc520659cad469fd22450e03c3aadc55408923d55a56f1936d7826802b475e0a3b627aca6ac59d5735d4d76f1464118e01631a3d65bc9e7e132867ec4c2dbe56ef952574a9b83a9df254bbfe89be1874d8618db16276751acf8078e8a826b930f3fb91b187e6382c464e8ed54b84e103f41e6af029098dfb21ff4f080d9180cb0d7c2cd35a1dbfcacdc1a585878b8100babd8eb0be384039e544d16530fe16ae95bbc8dd506fad971e513843b98784d95493a1065552dbc1d047e0ce0c2a14af3882ae6eba2f585aa2222eaa476b7bf91f2a84841176dd007ae85f85f041f325b4dadcb957d7350d24e5248c906a668e624fbd7495044acd14288bd66892c66b062b11f082d59131851bf0295d1998d23258c2c039029bcacc77f63b3c9a8614097a1018097fd37eeddd4989d5ae74a6330ca1b7c5d8a5bf43cc082f92cede0d63794d2fc253bdb154904f5cb192fc56a85e9d1b28c478500be121dd52c81d295eff40f8bb82f9c7bf1af376722d2ae1725e20884552fa7ac194976d692efbf3b93edcf77a464931e513fa0147423533ac1ba528aba9bd5bd13601cb7653aeae1054e3ae0216ef5ae1c711334f94aaeed866010a2954d2f0c7b72942df5559c08d879185f5e78fcfed884595e25336c88b70453c3fd349c69696cc2928e74bb5fee580d3a6261eb5beb94ea38fee47a73605e680aadaf07cc23df5c59f5601d57d14810b5f42803fba9151c83cf543aca41de6f8583ea7fe7f845babb50999344bb058392cd4ce5971fda9d450a52acd75e7bc914d98e5e86454ef46dbef9f7b58dc1070874a66d30525a7854ebdac002aed94e8270f4938891f4e567c487650950cc60b5481c94b433fdbc4c0b2a75329fb4fb5030dae8e6c6f228d9c6cc657ff5784e629b7b65a6d46430724a3938edb65bf8b7d2c2202e2396016e43ce5720e619f72bf8db48d451bd9206e4aab9b92adceb1aba4da6b69c97f126432e9d2b9b3fcb37adc350d3472e17498b2e5e1d926339f969489a278abcac171b4f574ed3f58e0b55113c73729ccf6bc0e6931aad5cbbedd2d3a727cb68fa4d164decc32a2a3d120dfa57f917ac4918495b8808991ea7f0b4c749d316f8ab652170701b1027a956cd4ca28c8dcd9daa71997d407e681bec9ed3d98609f8530dbfb364a39cb03a580509533013832cecbf865f4649ecc2ed5ee70ac6f844765a88aa2416b734fea3ce41ac2f8fdd252622ca46a92df9be32a92f4c85b1d6eb3d12cae449de099a0c983b61cd3c17410d8ad9f202f75e4e6b1986baca392ec333b3e3e2a653d60c669b9cac4cb114d098fcca74f794eb1cf0da900083ba8451f3447076767be23e8d080b052294a71f581355afbc575f2bf8a79d7ec54a1876db20687fcb708b895f889dcabd4a7e7381225f2bf6937d336145b5832840b00387459c02ab2f17bc0a44616b8715e8185fbfd125a496033072d9bcf440e4aae5dc1156448fb5c7fc506793fa5683fc8394116ec8408e358fef2c0c89b793dda4b88bcfdf122edb0d28a4616d3d6dadae94afd8441336ef1cb2dcf5d0d353567b4b4aaa88eb1da2f813ca2043e91a6de0ad51027f4348b3e0dd31785f982ebb1d2bdc75586027c42b1436780d0c17779acaf2920f27120001418eb9f79a221d1e001cefd89faa06a93f157255ed7dfda1edd33c633eb083305d1fbc777f58d716a374a60a92bf22be90e81d7919c7908fe2ec28539846a12f3210aec1b75e26534ae78e1ee768a0e621d447033fa858b138c8cb75ca023a5c8e2a2589b67ea53ec3701447323e70004e7866e980fd99d1d179320f638bca371902f7b4dc9f8bff51e402cf8b4e2aad2518edf6aa5cf5e74ab5eecd1942fd4aaaae9c9cd31e2ebdde316a6543bfa957d3259340bb29a18ca5dfa3753c02ffc517756dd1238cfa1955ce0eac238d4a30bd789c4198147c8a62688177b3e83bb96d778bbd575b1f29c952bf1653535b29ca776062e0a80b49991365840c5f7aebf9db250202cf0a2f0e31372f87efa927b0c1d730509b1055d125200a33b5cee916a966618837f449fa8e1e18fa15a8c475fa99f74864e1c072a933946baca47b31e48021c27e7bd820e0c9acd830d88f18253799daca8daa26c11e3c5136f95de1ed02abd5ed05588b0a6d6b6c74dbc16b6a3310fe5b84949c231d66823993796802f934cd10ac0d4d2f83a2eb8ed128e8b08e330176eb7e18e2ec9b1659269af637424eb71c6635e027d1e6f42292e8a24d0f5abed00805e23e3480afb5891b1da91b8c37831008366732e3a8187cbeb91822447a28329769337cc0a81c81108ed7c36216ce13459d5484759ab763e08e6e2c86e3d82e9cda3335a6e06931c4e76b8a9e4750c13fb5dc320925e77b2a154fd5c309989a8b04f80b4b01eeb88e9381179e05d8ab0529430304e52fff03eeb5fb5392b5bf135ddcdeefb7ab82e25a0068d9da6961d068f1fb554807825dcf8292faf19c96329e1f3a3d30bad2800526ae2375e00fa8ee3abfc897a30ae23342ec570b2f564cc2a7bdfd862b20eb510e7ced1965350f6315938c3e03486ccdb62f86007750db442be6eb234896d52ae05e87cceb147af4837f32656e80414071656c14dc96d3e385324cc71dba23e6826a9c18e36bdff562d2c63a39efc7bf5d51a221e7904a7c3406b4ed88e1b60783091342b35cc099146c72f28cc900df990eb217b1e2f3887b0ba53e23f5d0f46ef717ec686f821abd2e0a65c7b0767509f32498a7246cad2f8bc992d2d33e42297505c07182c50e6cb94380db791c6b3a4f0be7958eb9074fd210ccd730b0d23e6c289f763ac827a93566ba6e2ab1d0b270c1b090308ca89d8203060aa5e30fd5faafebc5ed3ba4d2db37404587487b0d280c3dfdb64daaaeb0b79ec0063f02b2596433ea6a19d6c144b26dd377f653193ed532c6b13dbc2b84b54c40952cc1c0a58bdf7f6a9829b824a45f56df70be86e9e1c741479440cc1c8ea0fc17e5997f706c4ebf7444089dca4b9faf286a00739c127103aea8badc96f399bed10ed2e66be6c1c0216780f0bdab0a3ab007eebedf67cb8e472a222bc89641ac601b6fc7d093fc55d33c17c25e0b25ed4b8b8fe79f75b5890097644f8f8aa026a64f5ed3ffe5442ff5c23b2d5ab8efbc04fa49d7bc093a2f7cc57ff14a7bea259f3c4a25bc93f4cd910dade9fa12a920972ce67320a554ceb7a61fe5a3be60181bf71bdc5cd3663582244445127603ee1320c11496e1b85078cb863d0d402f1aef75385e6b27d68e2ffc6058005900dd6b04455237f9c6622d5a46ebe26407c948af0e114d154aeafc3b0cf76e1bb99a02ce4583df2c24d0a4d6277aacc70d1326ffebd5e89aa022aebeb45d42bab0fe0985593fe03b01c583ba21afcd64db13b68f0fa9e1f3f632073af0245101931cc30d4c40784a509bef1c1a5f92625e5fdca837c68405a92f753a1a932fbc146e7f8ee7be6b12f573038a6bc015176995aa30079ccbac1069088f57e2f5948be38e50b0ce2dc8b3e5cadded5031ce2e8055cb108bab0a15bae9ccb913385da9d8a7ba9a9e67edff05f0fef90844e41251b7074d99442859bd9b0a5c2ff50cfe275754258f574bad621c466f42ef76205b70050b7702e1df92fd03ab699ac8a2fc7537709e495a9813eeaf49a127cdc6125baa4c66fdc560e6382f4ab9b9049d62690568ff565ac30b994a57d28e000b288d5ffc43512384f2682ea8be0b7275ac508311aaf9600892419e8316723cc7b7f345ef823d5ca1dbf2fadb88498f79e36cdd12315ebea39b4d4e23faec788190fee426a8c1785b30b1d00ef38bd4a3a453cf56298923fa8ea0fdaee425770db1f2ddfa1673ff2ede0ac2247a269b4dcc6d521855a2aec4728108585ba4707de0d823906ece788b03103b9571e061dbb8dcb58d411595fa6e660ba82ac0d6c349747305395bd196eb8a1f2d1503da2f6a73d6609181d5be577dc6989149e275634a04846e0595fcdd634c7c62d18dc992c8b8487f84e3754045ac8f33fa503dd08bc1b7ee20694d91bbfb30c3ee2a34e153a0a4e631daab2dc7b859ab09b0478c0724c544db0b3fb2c1ef2a1270414bfba9114f430c97089e97218c95817ad3a29ac049584dfaae6ab5ef9b2c892c681292b4f2048e245ad9bed80f65c59f66960b0ef636b456754e764eb9e60ddde576e3c4449c814f2405b1560e74356c9a2257e6dd97505d27c520fa5b4975ce2b000f3878f12e5fc5ce0e972bcaaa3bf8f2d61d5e59b2b27db504236620ee8f72c55d3360543cbcea8e5ece3b11573cebe7c3113a7ab86652333b77e6c9368bdefb2b3bb28f47c828f6610344ccfe15fe82aff1375692c9630b04a28353fda656b7864f08d4119a876103eb7ac15da62e69ce249d409f62d187d80dfddca5fe5a9be0b1fe712a9af4f566b102ab1ff8c39d3b7bfd10a887cee9b8a00706e9c95be305ac081a7bd30b76cc5cec21cffcdec38484433cbf7ee0bc51bac1b1f53ceb13acd4de83e909ea0dda77342f7c92eb083d8080622f3d1a7cf658bee6fce1e8e3279e6166ee8c12ad360ea7247780b848c749c44908410f383af442f32d3f1b3e6a0ff2ea7268bfc5827cb3360d20293ff4e3564e7d02af38b55dfe43e1a1b3770d88e37f0fa578c8d6b111914418e2db299a39f2698311e23a63aacf1884ca561ecd90fd1609fdca62d53dad798fc9d032b1225801e8151ed6cef6d709ee95b258c25dc5dfa91a2384fcf030aa9fec3a940f7f927e1bc58def9d1fe0ded7200127ceeec68ff7bb9c3439227064c7dbe14f0f352ac626376d839a182b0963383fbda09894efa0714b5d898d0bf8454c76a962244ed5a74f89e1839a902d8304fdaa25c7e0854fcc84287e4e01b15714f97882300b43a7d4ca72a786b78f8e20d192efafdb95c48f24b74429e2f5bbcd18c7e13e8565299ba5168475dfd19a131d0176f294d0ff6c01f7d42c5ec6623dda19cc879ba9fc52d79a9647e11b83cd5a33e0c867191fd6dd92c33b8796c1d4aa0ccc74f4eced9d9cfbe845482ae05af36693eea9cd0e7837a6722e9f977396d6e72ae6ca6d7a0a3d9effce4e2ca084c46a3dc937067b3b6166d21427e1af3fb3d6cadaf3c89e61566b98421745efd42322c5a22305e61a9f0ad4381cae02f7ac973ebf11c099cbe66fc1bf59cb55cec3bbf6786da3996499131e58b453569f54f65f667ed19806d7a6e0ee03e628b915ba59359e056b13113443018fe30cbb7ba1b6b6c029dc5fee8f92dd369b8059e9295ede08ee6bbbaaf0d5f7aa2d8814a224570104726b3cb1b23b77d7baa83c88bd6af359f272abc56ae5644464337054eed0c105744d9617b310c6ecc2a8c2ebf81b67d5285d0d119abf6063b4576231ae6c1dbad8dab476c8115e8eabf8921b5bd6ecb06c8c5607cffdbfe0d70fdaffbd926484f25ead6ae47e41fc4e41787b4088a67297ef31b500a29f9492d847b5a9c66de13901a5b99fab7b99a73fedeed66ea181ffef177d252f17e237fa9e7f14271c13974046b5724b84b2866b030ea7e3562a3bcbce4374b5f5189c51511ec6aecab2aaee787b940d699af69c58d2c4110972d27ada93fe11bac62bb98a40b8ecd03eb3ab1ff803df94de2ef4d69ab8f78489d65babf9d773d0c72762534e14565b67b09d3131848e3b1d60ea38917c65ae92e78880b3c46bbfe135df4074c0e8d46b68316e5d7c87a9eec98e75c225880ba0c27dd55d5573bd7b0c9b81fec464b45aeea91b817a3919d329b1dee16c700e2031f3c960e2415288ef735f1ed6878714fe10c69b116e0b96ff4f0d1154b1e586ea7f90a8d621a50b4540b5f297540895b84211c261c9d83a51bf692ba04df8fac7db072b8873bb4a3ee483879407a3a125152124d8b770d1e15231644c891a6e5e8a3002045a6bec42679354afe6d128265f9ddafe9e3aa77f0332bee15193c605c1e37a47f2e00537ec8a06d8ca1cffdb4c199ad34fc79a59faf107a48d33f08804dfc25c641936078a0925b5daaf02bb30f5de79068cf947c460627cfa6741b06fac280b7380ad8c1435ee27072d1ea8e168aca24efe7a474c4379439f0e1398fb79703ba4ce8aebf788dd5d61166994a97a6b3743d29fdbafbd130964e9128ffc410b630c4da1c77f60c64b162233cbb7efddb866a0c882ac977eed9b1e8409f0c65afc57813c0f888bb5ffb052ab702fa0806d9b26d9495b59d8024ffcd8845ec976106fd9e58a7d17345967357d85544ceedddc5b9721f025660070c37c86442528717a824953d32e85f3d1e91db54bc8c107377e25118efc354e331f65911ecffed8d850535371a0957c983bf5e184e77323274fd47578a4ec892b0f8968bd45402d46f18b573962665b2bd0fb705b082ffc465a2495743c7351e5c5832d8324094dff48ca017f5c1a007ee2f967ace23e660ffa38e2e2a63dbfe36d55c124c1a5ef253590dd42e48579ad4b48dca5284c886602d796e086779dd24c17a7d49dd58889d1e5c6f467dca5e770ea3548539484470c2448118d13f78e1471e54d9ad92e83f6ee86a0a20a0a928455f5e15bd4c5e87297162cd82770b98b9b98913b23ba9e2ee5d0122142fb0c13c254bda5d1fc47ac86401a40c3279db52f47ba7fe42c97072deb2f84231f14ab863d3b25b9660ef6f01062e392b449f76a2bb0cf3444684669ec4041a0a7ebece9bbfdcaeeaa93f4706db2f08c8ed80b5bf253fbd36c97e46b910bceb7557bf8c63167a712c640019fe25976a134cdecac0a90cf6a0a3ecd3e1d9be161e0d712a5ac1ffa2c932088087ecb13ff32b2849375ba222d57af3360010a2ec9ef4c948e779957680ed58589796c04d77cb89700072ca5c14eeac7f4679f955050121b6c3d54f0497bbf92bdabc28a483452dcc890c17677e754b6d9a5cd5a0c941de45751605b8cef76bbc0387d002aa87043c864f4850d074d336146bad2d4b94eb2e9d6af41044df032b18a91a13b25dc88d3209587dee58832a565937d2cc4eacafe6aab72212aa8ff5b5f0301a38c73f791f7bf6b656050a7830f9c636780adabc1177112a2fa87b6308c2be2a7f61c1a38f04f37a4cccfc6b0e14102d717ccc65b6d54adbee3d1659338d823d1cee77245a24a07342f6e19a22228db2e3958e3b5e226463565a3c008d8546f7430a9f36a8a01490e77380f2c72a7c28d4746350801132d651c606b92937f93674753a2c27694381548813162713d46b192d32af3553331d1180300db1f4e46661a77a062cf0ce90651fbf63020a292e8546cef32358a576639e595b73945515bc9fa541b8da0d8431020b83113dd0a1237d5831dd7b19391b52279d070ae33da329c8d772edccbe0161fbcf6023256777d46e250cc104c51defa9753fe5b6e67d421dd5fa03084b45cc272db5a35bfaef0f2a3ace21ca5b9aa8aa1433894933574e8a9c6f676f63427deef0151d9d321f8ceb96703bae152b0e5c7d3d0e010258500fdba1a5935604440faf434cb99837c33a05c4a456ef60b95d83bb0c121162d4e427e05a4fece14e09e6058cc8d35a75c4501bd3cca654914b119262320ea907430adc3ee3301150bc875a372abb1034851da455df01fb4a299d0f937a2a686e1a2dc2e3ca8d9cb8f2d8fcdd6621a5f56aa1bc381e6901f3c61284128f0608983a44e0c42c4d9bf1ec65954f18f14634ce44adc191a47eb0c75c411cc978573db5a0f1bc4cd215387197daa78bd1623952ec79ce73eb424abcf614f2ebd1180e2fe029f9a08ff475b4c61b6d6fc702428fb3e10b7f2fe62522011d3820d6608af13a88098382d9dfbc69fffbd6a1082347dc00d9420b94adf5527c616a84518438925cfc8c1334397a1d32674ac8bee0fa138717ed34630cd162a77ac597d1e84fe2e8d7f1fb417666d9767a6ae71512843868630f611ed071f23708535b82cdab88ade9d6529dc3e376eb1df9cdffa1351fde64383acabf85a5c6d2ae33395ee3049e3ff5685a831cf058a73d6658c37921f4c0836c87b097398ca60533b918e6416eadce3955f7c2f05ad802b6522568620b5defc2805135e38400e031178eb43ca0fe3378b2c869c009dcf3b3b7ca79253a861a6fef42328c0a50db0983e80c3de5df9ebabaed3d4f0e8646ae47d816e6396893721107ace2f0519ad35b6ec1c3aef0bfe6c91df584989c86f8c903fb9ebe1c8b462e9abe849aaec84f07a047f290408934ae1595be901181a8b7357d234654fd9667d5ddc9fecf40d95c325c0cfc96e24922d9411d83855c746dec8ba5b3432d6b9fbccabba470d43e02551da88d294e870342351a186a078c54d9b3386c35a200cf2fc9797b41c719fa954bcf9858561f14d3563c7b45b58ba6ce32f21bb3bccd81e155d258ee63d6e4899d082ce83807895d02f44c84349dad8ff3a1631f69911abfe26c8d98406e171bb7be36f4308edc95f47d6b0b099a85ea19902ebbe2f77c48f3fa333419c3fa7c4061693ca440fbf95ec1b5987e04e8e48b7044d0605ae792e0f0d7f68e5430d3439be9ccf88f40e327337f044493d040b929b6a2e02d8263ac6e8eddd510bd3889e8fb2e3bb44e5709bbbd0969019dc02802843a72c71e36761cb57f490a0c5988fe01520cc440c14a770218246bbfee4df629e142ad3c9b97affc7f324c7b8e495a0693db28d974711de3144770e80bb709ae3d3be84c847bfe882dab8cf1122d742bc36e4d5b2ba4fa00f5c23ee0d72fab6c72962a258ce640baaa16b6f4760688d587f23044358ac411051d10388c1c74a97109ac6e4ab85f470f3d6b8313db6a31ffed68e12f95f69e308799daa5836b17a54f0f7de3fd363f443b17f08703f1911de9780b7de61de2aa7b5c87460e2fd07cec3fddbc0dcd06d4ef02771d077106ebc149e3b50ea8bb24de667b9059e7e17097ea0d3476b096a9a5b80fbde144a576a0ad34ae153951592405e1eea678197c87124828892d7819a34aa3ea08625fd7dec422263f84ec9f43ad2e32deb0e6a3c8a182007ba2ae4c9dff1140b10497f20889a60de39364819226b4e5772c35194dd9469d883f88cf28c8b750d399f9e447720e69be7bbd9363a347f03190d34e1bd5cc3f68d39b501a94a0897c13bbed1d93cbb86ba5c332b76e7c85607430a4c43e1a54137b2ee49643cf13717d85678c98e43dc9f09b0bce0b59bd86c2b23b9a23038ef2e0a5af760d6a602ac04179cab708b980b2410166eed97ae307c1c6b372bec5a783e02ea368ffad3f7dfc937814145e7040bed45b35d1368e935910f78416b29bfb442c57ddcff35b03dd9b1d7e4a56314b4d9de33adc2da13123211548ed97b67b5d49ad911bcb9985e394aeacd84a372310d71ce96ce1463a4698f05c36e1613af9378676bd908bbf9f315a3afe219ff8415c50132871814239902c8d2e972c298aff91c803e4a196bea4d7fba21478a536c22386bb6c3dc477eb3ba67b6c1ea35afd1808e77d978c209dd15de6be21de5e22cf3c54b2212d5e53c671637ae78ca41d48ea85f999551fb23359eec12909ce20fcfdacd9613cdabfa77ec0af562e07c2c2b0a7d26136e08546e6a4733beed088c282b32074266f78dcdbc7cc217e1ab510e645dbdda9e66fe65d01e42341db2009f6658468b8c9a65cb5132423985c70faa561839cddec5de06472cd1532200efc82148dfc0efd643b6bf6d08551e1c3855843821139d92662d237b85d19caecbc2d74012abffbe6d83301f70ef1299f244431812c9444bd129890dbb78642db9ad7a473e799e123ee200af513f921ab366b796cd57db967b0127cd1cfbd19a3871c4d41c217d107d20ea4df7124358dd4c76fe1539530675b1cd3eaf3116ecf6fbb778b7b3f6fad7ca5ae0db64e4acbef92ab1d6def89c8a3d4ff2c37b0889199bb0c3a6fa601a9497b4d0d48383bac128d02fa6d43d447ab6b8385137f2611f529a58e0a1dd156c805b48e20ef9309f9790e8e79c3cbd56a61bbded556c4361d97fe038b3d1edca1ca2872ae8c5b629a882a32ccb1f6e2bb2907c23b6b336ea75ef87591022be120e62e48ecda9f0ae8d647cb82813c2f621dabb4ce37d190425999279f0916d30799b842cc47a62232e5596817b6a264f52b942dd055f5a4a2f0a26fb073befe90dfd88ec1837d9b0c2974aeff5e29528b9dd02f9f42a6880360ba3f38bdee125353eabdc725c18171368bee5ca3f66e228b9553e42a66ab47e3ac843ed030bc75e49d13bf59736977db8f8760744bb4f2125a5e6dcc7d67972d2dbf6fda76281a6920436fb251a05a3a3de60f14edced4d3db432bb59ed528dc46a615c65d849c88219abe6a102b80f2a99d3ba7393c9ce3af9e91ed6ec53222d8f20e8cf587876b9a5dbb697dca07f040619bfc09aafb4eb0a47a6d95e97f76d4272735366536bd9695581abd5eff59f043096b40d56c2f5775aa3b6e87ca0f73d2695b808615f4827593dbe2c99631b4a54f4826e697315e32af25882571a90efa05c1932faa423cf8f0069b6d63235be47568d42b16d83fc87e7d8d824cb80c23e06da6fa59fc7aa928a34afbc8a91b8c540c77cb82c7d7d7d97344869571f14ffb034bfab3d0ff3a8429aeed4960a4586a467347043c7a3b7564541f93f4ca7db4ddc32c266a8bedc93003a953a425a239c891f2d2b3137cf57db5a279de440b6d11c43ddecc63d9a68aaa1e66c359f57cde8cc1786bf2b8999abe77f371d6a24a38ca996c2755f448805a16c03e18930f38184be83273a8319e496657348880e9f61a8231113aeeb4f3bf5a7e1b40e198dd066c3df8f7d8720c9e7f11aa946cfbdbebd58ab84ede645d78e96f2e6ca0d880a8704ededf97edb9751050ee78a95e653dfc40b595b15a4196fe9fdfc03890b4a099ec2f587aaa94723016d34f412afa2e02b46b7246d3ea0879617127d6927fee97902a77ecae613bf1a86bb1a34b9a9e8944b47d493b96faed0823d07a92aa1ca61cdf1becf0f7433bb81759541c18f1b4c5d9eb39b55600e912e0fc12c5f3585357cdfbf32432d3b76ff53f04d5a2855270d53a751e7155b6080994b67e39e2e6b3c35f7f438fdb0cc5863dd1df6dd9bc4a6a5fa0929de7723559a41d60a56456ba03116e8c195168c3ff6843bd653dd83b4b100b925d5b39340d80f14de069930598d4f3a435cb9d0f5b1bb9ebf6fe9291751e807ed49b3be3c3d54ca8fd5bbdb7653a8f313dd378083c8d689775bf03e26f6c375729ab3352d93e96b68d809a89b3966cc7f3d65d2f74bc99189b32b032f730c46b55952826921100e5b4238512fc547be295737b73a443adc4875e56b77e0b8469f3e9971091454716a4615c4006bbc8ea3bb86c9b9edec14c94f1063c7a7d77d09e3de0fc235c80f5c579787ac0d9fcf7889a38f0ecb5b0c93ba3136b1c7c7b00504233e0528fd4d83bd133939706d811cd98b84c8e7eb92d43be3e1d18dd7339267f3e48c70cfd69ae862b4c1b16bf2d489f8f79db8b009f55a26f5b6adff26b29b6bb9a9006ba466399564ef51ebde30a787fe4e1b29cc51c2b4d74791e6a4aea2a37e3a3133ecbeac4692f64a82ff6dc95ccfe1a9ea45eb7333abae8878eed7930f889845d1e407b9bc8c3e43920536d3de4b4e0d5ffde8d8a0e29c7fb42a7da775c471a2fff3d8d6557872f382c128e5bbe06bd5053c38ef8b98e9a49c8e4f9c62d8acef88bfa4c8a08d76de66927dd49134fea80986620009448c5279172dcc461f4db79275ac4ec22a045e31c82bc38ec3a7d2df3fb0515d649cfe4592b53277c8ea210ff7a018bb2b702d4281914c3ece3006d1ff8cf9936a39bc125fb85a6da797eb62f36e7781a41ada31725498ee157389235f30dc0e215b423a105cacea023b2e5f664d755ffdf149a7faa370d2e3db1027bcff037de61adbe6d0cad55c138fc64b68c4519c09cdb83b0846f20cf1385ff2308d87b32b7dfd17bfb7d0f35cd8baef5796c1a4fabbf0b7ace08af11069b47e9d00df60957832731edfca25561c6d194ec12619cb8f816ed516e32bfee4dec390d00f71be60ef9b2ab474ec660d7adca989a6c1f89dfa03b8a6a382eccaa61af3ffade8a4ff7754717b3571b39ba27c0803a7f303ebc81e804802fcc3726687f4e42d9c589764cffae7c8778680c1d6d56ecb7db5b2ca882355b9714be4d5d5298ccc800452e22bcbd8f559b36e1ee43418d0fc06294954031e706b992deea91d73d973c8be5c379c70526ffff7b6863b21c3bc84f8f2ec802d8ce47d19333714ef05755c19d05c425974cb6d532a59b73f7a1abfc383a161684bb5c86e355d810faba1466ce06cbce3d6f93d38086113bda007f3f8bd870594f6395ab833de0cfd66d28680a782d1f346808d3bff2dd79e2fb047f9dcebfd072f698991d047bcfcd1ae82e9226294c4ce7c51d6deff86a8db5cb5a3536944185c13310bb699b8e04637a63c2a583a03ea73c3332f6d6cea71cd44de219333ad1ba65d04526ba94d4720c980bff67f54813a72559979103458ec77fa2a242f71f5aa9341ffb4ab950246c5b257b77398d232a32b97a7d55203a9ece18a07a13eb8ad6cc237169b5b885344606a31ee31f7e4136f85c69676f1627835f53f1d71cf5587dfdd3945bb766eee638bca87e634c36f2f89e543653f9b40b0cf67fbbc9dc084d528e1ad33130ca40ff48ddf52bb0b7063c51f434e0613f1e9aff6414eb09b080389639beaf2c5f0677f40f4bac26099c3442b03ed4d0ccaf6f6c141ec48df0993ea63a96b6c5e09f5e32a2795ef01c705a2fb5daff0ae96801f9a77e94ab0a6151bc0df2a0dfca83e87a708d341c65dce9893934bf3f2cb988ccbf7829effd87e2fcea0aee14a7d6ef0201db272c9c71f922514a1b711847d45752246576beb1d9401beea811d61914458a2af344c745f6afea4b7ede5d9ca9dee6a1c0ed1125de4e2002be69b36bcb08c04d595daa0afa4384dcb29512af76962cd95952777ee7f79d4309e7658483b2a7062899c054aea0642faf4ade651771cbc793219c5fd417549ddb5276054f76bedeb7e03b20be9eb290f5d16c9ce907f16a07edfdbdd31da06f306338db3adab2a47fd9331df2ea1abb45995b17ea2cda044dc9a00e349d837ac8feeb6a5271c70406e40aac5bbbadb963cf7514e4cc7e13f92efbb83ebe61c6bea991892a7953072ad44c1c3fa262261a68f2ea856e1e3bbd14c304d262c447fb99185dd04c0fc77e51c978a3648d75efa3e0e5b7f3bfb719ceda4a0189bfa0d2be98e36f6b273447cd003fce8e0cba5bae06a3a0ed724218235c83757ce6cd746f94072d0be75d47226d0cde5825fdac4e117fa992e82c85d6153011179eaa4b82f6b6a6a576a688c62b655298551ad576590c2781741c2b96b20631981faff1ad4640fcf4b04e10f6c70cbb69ddb73e4ed9834ae18c6afaf8bc921bae3d90697cebf94da32cd79c6e99fa8c100ddcd4df06a0e544cafead1b172191790a9a11e14354511cae49b4763cf9858014896592b9df0dbb0c53e1420309e2f4ba73b3dbf036027a138011d2517687f4f69d2909341c15db8eaea0bf2cfd8b5e7ffe8d18b33d8fa8ca0f92d3c69e83e6ff389a93fcc1874024a12a3de73d7e3d1d17028de469d1630645b9ad1eb5e51095d6363686063346097dd61586f8c56f078f16c4560fc60c976f1b7a5ee66b3e4066f9d972b70d37103aeec5554f8345ac963bda9f4dfd35d1ebc4a1d0e0570709c247447440ee33164fef77cbc75671ba3a07b7995a358be4412cf968734009a3045ec2b834d9b864ccc79110757d3203bf124c615a91903bdc7c396fcfbd3faa3b83954849f888c067f06a2eddf4f9908efdf92f7b77f9a0206e2c2c2ecdc1b6d96e1b1555449bc8ef887445ae4160461b4c8c35166db4d7a4443819045360895ac93085165a6e8ed96568f0ffea0e1e4590569a2e77c9e50d0b6b2e55a813144f2a2fd891eb3c4923f3d697d7feee1a9d20a80bcd289afac52fa0fb02aed8912d4e6ca9ae4f9b93da424124a928da3569e91fba76acbe0d25e0f1f8ce4f06243cb3b722b42cbf1bdb0c82b48d050bffbd708db5006f8167f4213e959776fd5bcf161d0b9191c6c163d2ab17a54c7837b0b7fc6f3f94cc6864e0066c100bf7e8b83158e9beaca9c660e63c055144a48aec629c108246530552051975f9614b01b883c935de5450884a3dad4aafca9ef9fdf22aea6833cfb75c740521ea30a63fd3ef267b565adbc75b094406200f50f30b720c3d4178066a3315a00e70291a8502da9bf1220e8c08bf0d2199cbd840c90a27865a824496363f6f010ce0bc27b4620c0229faabc7148d81190b0b01c9ee525703b4cbb84abade22386462db3d1f291a61a23e82c6920c9a0f64178f2cb634dca9335983ba8a72bd208f3f796e6079fc1af0a84690745de1826591d52bc5fc808c9fbaac2df6e7c9aa255a263b5bda7a1ab1c9d7c482a336aa410c6d4d72f9bfe4158cec4bea1bd5846429324e9009b4e8c6200a152e3bf818312abf4631e645eadc6b73ee561818153e087fc29af6ebd38ec4a8ac06727fbcb76c8067670be7fd91c708cf141cc41e8c75e9b4ef0ebff629c78855e43200509dcf151be7a5cd0bb0c5ad3f000eacb418ab9ed65d4a44f2c9c1665b2926adc2f2fb9b0b8f8c657c972365bf5650c6ee179ea9c9d69fb19d92d369dee1b3e2cce151db9aa9f56547d663ba916603728cf29b41f854585c157df7c41759deee7b00d22e9a37f4a0e52e56dc4a2a8ba1d44069a52b0df91ac88a3036dc1af975d9c12d942216cff1dcf79f47f622b1768f6651238c27f009225119e003e3c4829f030589745a3848cbc4d1d67fe98e91ef8cbf52a888a43da5423f588c0c345c955ddd138f5cb745dba56eb31badcc3b6eb2399d71c38e31e484164fd54f65a4285994a5438fafeae21b72914153f2eb09d9c7aa0fd0da41c2375892001c8e6cdb1151f0c39346b878ecf594d64a9463467a182214381fe7a2b364eed11d6128bc243deef7c06f23fea04c7d051d77acb8f299c26879edbcc3019ea0ffcb9860e5a8b74f7c20251614a5ac62735bb382bcd7352261ee44820fecbe146952f7f73d517b50e61e1b96e759d054c6df21545bf198fd119bc3005d5862eb3bbcfa201bc3cc87a3bdaad2d572316f278abcd5f213de91f2400a79ff6a2427abdf15c9d7c3405c65fe4adc1f0d0a522940d3dd27dbb64513d59a6e4ae560931ace11b218e6f5d15f8e147a06a3548108982d7396ac2934561e80af0616db8f8809c02fb21bb3f0727e079b07aa1c181e82774376c13180f32f87885a26efacbd104d257cae3745da9f0ebdc4451d9e6fda2b05b0af2a19afa014bbc2773d82bfc40a289a20febec3ead9ddf0ad9db33c7f8cc75f4712a8dadc0c8f8b446efc3c60b4caaa51d3e356c3bc16d62e3f211a384a90e5dd9c6a9b30663cc515a49ca8ce7d411d3853695772b830843b31b0da87f6b8f52c2aeb6c2b3f5b206b9857cdf3ce7bf179771f058dd11077d7faabe4cc4075b6ae3cd596c85f40501b6d078ac492df12deb68a79f4af4aa7e22c1055fb3c9bbc9459cd940d249bed763156d8aaae5bf1aa8777f891bd797171b2f80fdc928e50a3c9c622e50024d40eae0d200fa29a83ce5b0bc6947f11d7af77aac4e7bf3eb32f5a5ccf1eac56c29756ef2f47cf4d466271efd909d5240948b3e6b54db9f6abb2ed26d1c90cfc364da6c0b9d179da5fcbf021949a0210581f80dfc0b9cacc94fc75d180f50c4b591c44e307cece589aa708273d175b0c540bf4dc1dd25e48069c27a65a3d9596f1bba94b4af7392c1d2e630c5668d7d1bcb8f098e33c7482725b0fc8fad1078eadf765da06182a3b4a1fba1695809c37d167aab982b7177336cae3a44705e8d92444e0ffe7631906e65291108e726fb4f21f53131ddc15ea0a7c56715a68463e3977f58690388225936d5a0a49ecf4a0b63acc5615bf1448cceac7f2ccfd5537f8dbb59594e17b3c3d1cf6e3633ed40e1bd6940c9329ac33fcca278c47cdedac250be1fefd3aefe0dae8c8a788ea9f340fed3dce73d7926778e9a75e07b073fb20a35f4004b9548df2ffea69e8cbf168d0605719a4a065f57c04d7f83329cfb4fc482f5cb784a2dac85ea0dd657a08ab21b76d2e8065ad53ef969c1655b242afcf2654a2155097d5fccfb3aee43a226ada39198342aa82d9d2ec098ca06e83a6a8b0691621133e9e638638a321c142d753544a8c8e3c85aa5b45e4f58e174aeec52c9f6eb37b3d08f7134665a40fa5285a2760c4adfc68cb3f8da02543c217228ef4283fc94e84e5db024d5ed33e0499d894ada55d6ea799983146ce6e047a75e633f977d921d45012633c364a1416586638bee385bbddd09b565dcc1ae046f5a0a5fde08acd1201ba8e2f990545c2969ca5f5add244d98e20e4a128c1fb76b53b5c936b8b26467eed178ab9b7173d6680cb133b05a1418386b44b94096f8f67258078fed57f8f9ad90e4cb55990bb6c4afdce22d35e0238901cca97d36cc7753182f71d8a6436744a1577e9e7e575fcf255bdc0ddfb3c851657b6ae6bef9769db25b21754d17481c75466eb02b2225388fae339e274606af81590ea4a379e09c29b94c5aa46141aca1ae6a2206815d97d07da31679431cc53b68658151e9168edb6bafd649625dced1bcff1becef1562d3fac70304bde923bbe6c5e5d3a21de9f61444d4e8f9bf78813e71cf9f36847ed0f3b70535fdb4fe4561428af7dacd0a76694544ad17dc28a12e48bae510da7607e709662de669b9c8a0b06e80f8dc416ccfab7db43bef22d1eb80c85cfb23e89aba20167ec404486d34dd6aa580469297b352945b624f2539f24b0e8ea1815b6fe9b61121be0d386b6a44f5fdaac573f8f001338ab0cfad7522e316cb9ee62d4ec8f6764f999a060981cb1f0d0d167539e8509f326abe00e1aa1f2356e1220062fad4b265afcd31711da8ae2c0a8b7c7f8392c0dcd70e85f7f3985f01b5925fc53602e3a4e5d9dff3ccfbabd2d4cc6b960c6db83839b54e470b9a714954ce2935007b738e8e98457a28ef9b1946aa50cd35a8c9a2556c10e6698fdc906275e599bf518cf4a2ecbd2f135a1894c4b8ad2ed55d6c8b0d30224d7986403c4195f3546035ec370a8240574cbd1e8c75944e6922c56e6f23ff01a582f5df1fca921541493b2da98c1d81640b4feabf0eb8a6231ad0f0ef0c1131aa7ea66f7680e452117973c4e81559723d390f947c00eaff688555e18a622c0adc08c26e7bc4acd66c1a0fe62d8aac189315a2abf5955370adf0c393285d4f72cf03a8023db18ec04f93eb228ef6acfe531843d1d3760467dec95e4c7b912a97e79b44641df4e25fd39b1c5220c24f25be6d84c6f12d97ddd316982d4fa9c159c7218bda09e88cd4719c94ea5ca1db17ed083b852ec7ab15e85dc3540d56b4a868927587707c953a6a61d74b04abdc901ea34fc65e74834f028dc8651a09b561b76a2673fb6d94e5a01242ecc2e2e37b59087614878fb9e31713bb4383d57044fd95eddcdf92f2bad6dabb04f1633282567edd8cc398e574c065b87d8c007d842a29b78eb34321c49fa6deac20fda0162d5c3120a4e51d60f759b420a7308e1bbf66000d7bf491e94a53982d96e0743a6e4fcfa1f6676ed32e9f36dded86d7536227ba5402fc4a13c36a971e9853ae9d47e312aebc13e55087cfceadc0542cae7291eb8d0dfefa64718617980395a0a523a798c74dde6f37434cc1a4a40f997c88e6b7ab62d857b24e45cf55310a6d73fc1e3fac039fc3a12df1cd88229a12845248ce73ac864846b14b123ebfd1d67f7cdabf4e7bc55fe467bbd5a06ce385a64ec5cf2f7b2adcbf122239b8d4deed69d682fbf00907122666ca8d2597ddc5fabc4f1a9d29a00c5144be1fe7ce739ef9547994b169532ebb0014cb4d6f138aab7046d71dac52e201d4def4a96f6fdfbf7ec4437bb95e2eda96d854502eb696e63621cd647589f5ac7b9d598c108a9db5497d8cb4596271898dddc41b484998f222aa830345a097966e8c454e53cd1b702cbe9593583d4e8eb218464684723f8bafc3319652fbc131bb501de6b8efd125cacda905d195dc6621b465ccb9e69e1caae59dccf3e3b560a064755ff39b996af498a1141c13a7a0fe1ad57909ccb34d4abfe255a0922f260561a764b32ec68186d3dc13349fbd6f65db28d0377ee9f43ca99787e5b8c589b1e95704cf7f1b48c9a4c5ffa5044427e2637ef14d68ae0b0c384ea41c24b826e6004c8887ab840961616ad4fc4ab76d5f1a15ebbe152be1ebb76fd8aaa1c96627e71c1ddc2092d68cfccde8801eacdd342907b672c32e0bb3cc1f4b610afb7fb04c8c5561cdd104b023d8f11759c035ab1fcae42dcb6154145e594b495fdf1cf21262e67035e2fa2ed69114c0c44e53bda545c70ced07ab7003d9f6d6b8e12802b5c99cd5bc74a085dea7f5726a5e7fc8b230618f583a0ef5c370e73c72a13d03cc2c14766555e73ff2098637fe536596ce23ae07ca47b60ca76adeb36826e3a3bebb9f8e321bd473f35f1cfb3e165c0c534d940308b6eea5456ca766d2e6b1149da6bf75b73309aa3fae069cff5e159079edb62224968b52be63d0cbc259efda808abc3bf4376429166eaf4add0ff94fe02b2c5c226c596e3e5c0c4bde7f09aa2d3791ab327ec07b64160cd06289ab8804b83c80cb498e63739f986539e18513901e1a2256d30220aea672ab7036b7b7461ded4f5174c7499f1dcd57383d26a363361cf4ad2da16d9311baef667424db43a0325cd2c9c4bc90eaf01b2e17ba765dbb489d2947b420e359531dc9a185a3274de24817e6c6092d3b8445a434f190cd91c7952d47290fccf20e3295610b8ebfcab64e317e856f5ccdee9f1e26e25d833ee5a01d1e2fa0b4a68183145b99a5770b080c15a7002e0c2b6abb61eb727adc408eedbb8383236b83e168989c2579347e301e4dc5a1e40ae935d60f3e0fd8b8a99ca0f5498e97f8d26d3d813779a75fc6b042faff3b798d25876786af8d5fac4260289e5cecd287dd724fac4e8f3f662a15ca4392b504f2309fa17871f620f8da8bcd94d5d12343e86752451fda77ec646c69b5a574776949220997fc9d3dafc4faeaa28086dcd56c99a1bc791efa48df824a7e5aa88688effb7fded3761c29ff8b3b546c8c01ba8e4301da0931ae0a1bb8050e6ab64120434d5ac9d37f4c0649ce8c417fe95d97fe89b23e1d5d7b941c119ac3457ae703f4c13d5c7df46adbad039f60bebd67596fc0971e4217c40bba974bdfa4532700fe9811d46374bfa89b7c93d14ed4f5869159a70c1b474908baf360daa4fc2b42821eddc0439c3408f6b98909e338f8bff6affc6852f78cc87a7ca6b6544bf0c8ee60623a9466e87e2a11f8ef6722a08aad65044b5fd43fa2c640d12d49de56c9e4ef183f0fa103940ea0133b1177cd7e8d22fc7592bfadcfc89b7aff8e4dfcc30b20ab6c46ac4cbdbd982f34fc9244eca32d6e811779c0fe1a28b19bc3da455fa856e72fce8d5aab7dcc5ec48a96489989b4e694a824ce4c23026249a4772bb13235f682df08910c5983562bf50ce6a0752383c19f551b00902550fe60fed05aa528de476cecb5949cbb92625f4fc372e5af401c815567a0e68c995b12e8eff00e3020c3dc042fbd88bc77748ab7f7d56afc02bfff9496f75893f261216d551eb93a982c2d215bd13c6c2781b517623f71c31187bbc468d02ed556892c8e37f00c058eaf5e75a6b9bab52d070da01b9da8a895cf826da227694b8d31525a311028bd44d99979d22d794d4008b71cace977ed624e3409d22a509fca2382d74572b79b858bf495cc57ab631b827ac032dd297a78797cc6bb56c4adb145a65f8a9ab79ef96fb0b9eb920d273dab9d7d9230662088de899fabd852cae16631cd1d83a81a0c45bf9317a2d423ebb60cb20daef293c664cda4fdff1710b20b502c304a4b317410ebde62cafc820bd00f886596759c61ad1e8b24125d1032f2d733656d3bca5ca66b14e689bb5d1792087fc0ac2f1eb10baab70de0d15b9817dfb0e11747144951a0b5dcb5fcb5683215c22fde3115df3b6434c51dd2bc014836a4b835126eca3953e951c5d7ccb012f3b73bac057bc8bd2fc7f405cd59bea7dfaae08f0a9b8c361b170672e356b310ee15e1d957e468b6031c4dc1ea6b65137e60f82caf69515b9c4194a8babf124c99dbec42500f3a9e8ba3c23a1afdc1a6c61e59d8d53b77632e78e9de48b4932a3e162cf9bd0667bd7df1aaec470f6e9a88dcef796c160a858ebe447b4a00559015e734e8561484d594f1ba06985090594224dc08279d0b6d365c6e31ccf92da8b40c2847646b55604b6a616e9ccc2a70dbaf0184b12c4b9f28278c1840cd9a3e25b80938c7eb2e346983f61438c0ecba9d7b84b6d2d2e2a270c137a38e6b686098ffebed37544fd299f03a599d7fc001beff8fa99aa3b62b60220c351e806d781dfe3595ce69d2ad30bf7ac8e0b41abff83989bdfcff09a8db3e530e8d38574504d374d6c430bf0df4796b953e45d6902327d80ca9da6480d412f059ff7e181184d8a8861c9d18e37839a1b1896acaed2789be4f720f87be8aceff1add999afb5d9704439ce7b942512f142d87731c4bb894260ca6775bc4b89a95b495291e4324227b93661884f01beb1f788fa319e5bf2985d72b43cf644a8ef8f7002b38f1ed85071c5ce7927b010e6aeda969b7569de4ec05ec95da3db51011aa803e81c734284de36e8cb1d51a98a9285453d0eaf9cd631f200212c6243a06781fc8632f28a5d7583fc7d4387730d7848f4947243d04d7230995582044667f6fcc3bdd77236d0fb47476b6b72e3e8a21baffe6afef41fa80cab777a9f75582ac8f694f66076ce2c022b5f4b1d4c78dea50ba90778b5698d68a2dbb3c42aee76060bc147afdecdf375fde30c07d09749e65f8056ac403923cff1bd5a1782f8429a53bbb7c92ada7e844a37824c184be5cdf638cdc5dc3eca48e0a7cf0ec83cddf99986bb82e7f44a6dc1762263cb236daf2a3db1ad8002542478269421a97835f1beba985d1046661109e17c0ab3f78213c507db8bd5e223771a9f9f8924b818fd74b81c507f86e4bda83fabecdca512ed64b9cb026bedf96cd30d5b2755159f0cd7d5c60df5a2e8d1c1b723eccbce27cffa9b406c24c40446005fb5a7832717caed4124c7c15bf88e33ad9d059813702a2530a3c16989e8729bb4a3b6f8b09de316837fd8a7f34bd4a51ae86fac6bbb03300318c717e75b5ded23b55b0ab2171b3b12a2a77af140f8bbfbb5f18e19b2b36c8d551b6ec87095fdbd6f2409cb002a2a715eb4853096135e9cc6f52689ce9ae853a564f3234917743e88b3ce5e63528109d38086fe610c1aa88edcf9bd1d09b6b9e87712bc9277da15732dc93578afdeedacc456ea9787fab040fad51a49ba2fd86e2404611acc920004ff3d318262c8ae6ba142845ad6fb78733582c876b83d21b33ad9359b2f6bc4e863577062ff13ce9ac694b1ffcf3a31bcab0605ab1b390a10b53bc2d7b37c296c7a7a11afbfde7b998ca38cf8ae7126faf035f55c684c6a7e017f43f83b1681474f1cd7e86c6308b100ede88c5d207bbe90dad6f52f57f6e14dfb5f4e463204a4ad5c9a8647b0ae443cb1261551111eaa1ca5e31c81b1c56c21a8efbc8991902709177e2afa4a9eee311c81e081e1901a00b704ee0231f58cbbc2e9af82504e7a03b39019a1329296f976630bb283caa7f7e73ee7fb651c89f18784a15abead330025a347d20f75ab9b76d1f7701124db515fb486586812de60a3bd1979c86817295398e1f6895d94840d0d94daffa0d73106af6867defd4da676faecd332e416d9a7fd62d155f5718f39929bd611c3a27bb392172cf5c89aab3683b226057d517d9a073d60501a63968070e237ddec1ea93455a2e1b22a959020f6bad4223f8472fcfc6a76f0df8c80e1b5dc243fec2acc763aa2758e854765c7d323e9631a5569b2a0bb7aa27a6f2069b27104525510bf5f73a7a194a20b8aa109921bf49ad1f497fefa03d1fb2020493985d9183a29d56484d6cdf3736e852b3590ac9e9c51634f833bc0b5b0b999824217b1d70427a3b0d36b13841deda9fcc0db9f725a12e1669e767e2ba5a8987b31ff3ee981b34e30490a2ddd2a9e7be2a87ca050c5ee3e3fe68f53f4e82a956fe4ebd7fe369e8e344e6998807bd143a2bdf2832015c64ba2b57200a48d63cfe9bc687d20aec9b67197bf49749b453c9424f667babfb01ff114c82ff6dadf433bb9bb030c1541ee7b8f161969719fb99a1677d1961ba1078f8725bacd7085d39ccefbe183263d89bab31792e1980b1f30d21ad92704af53eb9e1088c49f97b855209aeeaa2d1eec4404a5ef0fd3d18e45b5b4a2d17f14546d2d394b59f2c84fba3f68f1db95a20e5d7b41cc254aedb5dbab548aad9a81fa39cc6777bc55bfcc47058aab6549793a503bcf8f1a6c828059af42e585226728f843314a0afe984dc0711f338f3e83613e018aebe7039174ae492ef703fbf530fb7bc83bf413da35b75f809fcd07fff250643474e1081f85bd9ed72b758e0bd4cfb84aa27573593ef739c568c470fd80812497e5834073ef94b5b343cd31a5d3d92d7cd8bb0557f0c06dd20bcf99b289e680dad92efd3085603f8f3419b5f6bd233f073900cf9e8e6cca49491d84798250dfbc7bc6a2e96d4374883b0d5b9480f00865369ceef99e081fd5423fc54bee580691e5d6ca0c68b895deeabef12b8e6b8e85d129b10f23cbb8ca836327bf9aab7e2821a23a6142fa6ec42dc6c7ee64116b390b9331d07dd6b54a3724649fcc920830a3f795fe71e66322e2d692f158bcc0272a8da6f52744c50b7b092fcef4cc01e179a265369ee70e8dd7760e17cb645086813acbf4b788ddb60cfca0b9fceede5f34bc6c46347d641b9fd24e60f532f8a634bddd095afbeeac243d7992418348b071e9e20538cfe5fd2f30505b7f97a9563ea4c4cabc0b850f5e013b009ac85f4e7bfbba6c7cc8c2890ddc1c66369d95fb7653a3cd6ba2920b54034f7b6e1bc7e7eb227c9360fca724dbff5185b97b6e6cc5fbef3fcbcadbc014d003c802552ff98b7746230b228b1f173ced7e402c97dbdd61b1bdd5abbb4ca7c848287b1f43a0c3e6d391c7975863c3fffbd11c6381ffd598876a2512a57aaa213cee561e99e30c7fb5627f35b82d3cfb5bc135b9e205444c7d19a30be087c5d3c74972e5cedcd8914ed917f1c750be7862bf4f1e32dc8260d1321d30fec9cf859fd8ce6a92cfc42be9f460e5410f2fbad7f2b50f4f23db857ffce102eecb6a4903ce8195104b674623e0572bc5344420e43d8c33307866a322902c6993c15ad4f831c956d546198efdd3d12408aad7e69a01a25dbb5c5baa5e87840d97cd0e3135abbf4f6e96a74351d48b7fc5ad99e29552910d28c91e51f7d214fceb3b00803ad9f723d445c4577c02e4e10e1590d71430deb07aa4243934e33ff3faa4364d376a3c48f492b804ac0ca0a41f67d105c320ffcdeeec20c68594871260863be894dcffb0dcda9aa998cd21f1816ea92147d82d4677b60007e03e068f5945dd87e311f6eee46229545e02ed9f020fe333ac9ed609623eb4890659814955c8fb5129748555a30b1cd460f1e37a823192b72aeafce24dc3a7897388c8471fbd2d9d46ab75cc1fd9262c7c598d85271b4b564e56250ba9a455ea9970446d330a5c2b09d5e2654819f72b3d349d0c1c941fefbd22c085612cce138b3909a69061e3c31875c4015753eb57ff59df3ec5aa33e6f3372580fed8be5a5c0eacac4f2e42949b304fbd4bb6b9ae68d05f959f0e3fad9a36e9c39eea36dd494428abb7ae242bf0be7f63917687336e2189f564f76efb5f402369022bd98ee31c4e8aaf989bf8b24c6807e07820081225e9694b6521feb1966ad84de4ffe8a8720e306bd12657bc47e0e44d9dc223e8cc1bd95617e9d41a6ba306892aa75b35ecd8b22e95bc7aac8d7a556500f1c70b202e025414499dd3701146e1ce5acd8c5cffeafa8568814aa7f5f83dcba71da2c22b38874a9a531941907789a43eddf720f53ed5e86598a68d915017c96de29a7de3df187000289fef96b899dfd03cd62e24325795121ef0373cdef0f437981758ff6a2b3e08aa41e2ba5ee0b13ddbfb3ebddc5c19a701caeb8620673ea63efc81fe5f3cdb82f8bfca50833fdd74627da883339e325488673d362026311a310ce17451dd728a4fc62c709b58ca4f7e9928097830d1e9c8fb6e39ccce12790940ed2f78b3f940b4c183d29aa28f668554568ae02f45755008c72f5bbceca5242e69498511f3c2662306719d8db4a8abcb4ff444ed1b46d0b3b51d54a065d9dc6c9c1ece829280b0144a092f498845e6264a538133f4647d1463f8c93c200c45df24c4f56afb63a774bd439ee363b65e92e028aeaee106d35a87c2de4deae38fc9c93cbc01499e0ee595acd6fa5dc633e274bce653bfe4a5fb83bdcc8c350acb7183744f1cfcf48e03e243fad660fa25a7f180b0741478537bd4b1e7d6e7731a0812d67417f313a64c60b7b919bdacaa3f99a1b96966cb07e96de71b1a3491c7e8ac1cc129e8e250129adb5add9af013b8605c2f4f730381b6404c991df44da3311c15a6b841aaac5df39904d591359d7735c5166dca5e87af97b7cdc2a240b18785f14f0c831be34e1ef531d57b2c82e590a0e4b361784d8c8f54acf26d02b2b400a23aa7de0d24a664e60f080f576f1f55749045d287e3ed26bf779e154e3eff2c3b2454132d891fa5a79e502a13ef3a49819f7d7831316b58f9d2a6f2db49763165fb820792f4d1be1ca074effa99a065b59ad641568c0f528a70ae1f95f851dda6b20bd33ffb6eb74eba85b65a9bf759d6f9220b2c9f7fbb4f69fba221ce558bf04dff785cf4907615f7955c6b904e0d683f7e9546ab72bedcb5d98ab07fb5cf92a529f64f4386522f79e745c5a0b3ea9f2472a2b3a3eea384c792aceb41d45452d264755e903da35cb7fdb51b19701a01fcfefe0b674071322579351cb67aa2a23809e8f912190ecbc587f13cd81471af40ef7b4fd9944dde3248072357493eb3ce2219a5cc7a72005c3e5c75c9b8f07fe71d9c9e4cd986ae1ccd319056e8066accbc6235e89e3a6303128addf2285b00451cfd6bc854bc40a039962287ea13f08e64f628f2e2d756af063fba598667a2df741b6951c7355a882c19b99b7a1ea5a70ca8e8db9873c4c761be7d786fba3acaf6677b533637924252f351a736d0cb5dc0933e7d54660ffcbf6f9d88c7ad2dc833f8703f80f66f29785c2ebf0535f634686efe1a4a068c91ad0c47c23d7b8ccd088c4e404b3f29da560bde0723b05956725df9a348d6861cc0df535758a5fabd27db3ce814b5dce751e008b1d54a4b8e4b63cc0a02917dcbec34a0d4928d029de90ed4429efaef7e7db43a81b2e3a6e07aa896b79d333f184fd249d315c87bb3631e8ee498dbfddd7c6770d00dd38a48eb3b50cf6b65666424b9ab00bfab758dbd72045da823ed8a687321740418584224bfc0ce57b469a96abb2aeecc127941f5278f13bdf8f2ccc729ac4d133ef85ae4082572d0b5baa90d2811a8288f2d88b9e886d60fda7bccc3275fea73b4ef44c3e59b500358d4dd874d5c7e16a6ac474a176736a8be06945f3a6aa7f73b9b55eddd3c48e87b90f3bf336497b8c39b06e5c72f5d8501bf5a616db0855d58b81e69b3a42c3473d62fc3251b9f8427a0a51cc193f2f3aeeba54c2038d53006473e56731363c1d5bc1d9fe4ed4c4dd9a9069af563782b2e0d74a9ee00a98b46a22cb5b32deba451c15a10365adaf9a74012d387c7166b372850c02417503a48cffd0e7a842155361be72ba2917eb82bcddf3282ad9d7efe5a412e3c4ce4d69656161354d752c42b5329fac8744c21a653d22c51385fe80148d0e2861b96a2b42944e345b851e0c9236309a3f989f00787482e3253ed344a754bdf9a68b071116668d2a7050b18c72f06ddf66bbd6bd540886911e0277488c9401720b04eb159f60defd64be1b4568552d3295fab01b775201a1df254bf9daea0112b8bb037050ec22d5179d4354454d9db5cf4ec22dd93803aae0bf06e1e04e315e963eb9dafc12f4bca1acca8eeea5bbb7df1d236be613ce3061bd60baece2274aaf8aa7cdf26df2528a20675a198be9e8e6a2a78396f86a9a1cb2ffc062069cd2d9427cf79959c8fc8988596ff04573435a8b796aa8ee343f762c6445d09169d4547e64c2d7f3435da229abf5372f437e2cc11e17fb61a382476226d6a26d68182dacc73fcad861e7f27030b8cb16fdce5e4ea1a6963af928fa3401ed6b883c0c4eb953ad60fc75a17e7ee362a0977ff18553e45ed7f1f0dfdedb09662308fe55bbb47e35f9fb0128ce7bf6de71fd4db4dae282959582e4d5690cca333007473964bab44d9d034e63d4dbfca1cfe05f39db3c3b47506855192a99cf04820318b90e0e11e871e6b57c2eebf96b6be55617cd6949719a9ffd5c6bcc47733b708836c0f50def3dc7e1215160d47e6f1dc495b740983e1e866dd2f42d3807f999cd2b5421fa3e8c27e404c2f02f1ef693943830cfe8ed8bab00160b7bca9c96c82a97a70c40715a0baabe686647fe4bb7738414c42a99b03bac7677c80e2639444693b717b135b10d9326ea5bc8fcc16607ca74adf7f617fe4385ec4ea1e5b66dc90682ed0ebabbe56c880b5cecb52c6bcdac48cfa1dd373131201ba87be90505b117b404e02c3bcb01eab100b4bb1f606460236ebaaa938f20d34535ee453fd2e725e5d2e96646e0806682a4435e02183f5517cec8586a7b8554068ff1beac36532f2ec89f227383ee3b529fc30924f7daae7c327427df79b24babd6cf658fe641cba57c4d3768995c2c731411821a15043ac7fd892277d63bf58599bac5f2b8d5c646d3e77b9d4a5cf8e9a408de0a4dd6353a7f13d5856b0e80103949788a05614a4438ca51a2f5ebd1b5dd897312750de00ab92be4b87ff63d0947cf5207ec737222a553bb0ad3b1bfb49d5398339dc93047413880243a31d8b2bcbeb4216dc183b9b2106d14f3a4efebdf97b918f3db1a097df67503cadba9eba5d6f90fb8e61ce3f03ea25b2157615e531705b13e98dc2901e6e7ca818cd30faed9f588767104e39861e99ed75f5dd9373c2f4ed03eac7865aed2357f64fcf496655502abfa5c3a54f7c8b55ee0f7bc801934fe0c04e582378fd3440e8eea8ba0b868033e4a098a0a9fb8b10d9b2ee14a55a6a6200846da128d8aa5289ef06424a71a0f6287d36d4c111b2299c0784d9d0535f1c1cdc8e97878d9c71b34fd47e74ef1164d084be61d984d9b951d7f2f4450a2af0b6b392da6eac251a0f3614b0fc257477599a77c2affbd84456e210d97df85ff149b899b617a85bfd0410b99684076a42153ba554dbf58147f82a0d49e0bf547b89c675b62c99ca99e64ae19f83f3e7f54392f9a60bb0d05b437ee2bfb3df60e1bd5b21cc68c72290a46e42942afedbfe28c615f703bc66bec087e379a47ce77f62838450ab77c2c143a124808be77627d9ef0623da23e2f8fd3143243dfef3a9b5e712ef35bfb1f3296e1698940d27de8bb3af538599282e7ee05b48569f398d1339ed86238bb579065e3375bd8531984844c0dc888812826bec20750e0ac425feb9cff96c2f5ce41168dd932ac697be875ae82f6c31e9e1296d06467e62c51f3cad364187febc52a4deced6d07cd568d8d836cacb791a4c6173ed9e492909be282ab8bf80674edf6b5edf8f6d41f863eb138e289dfe4b4e2939d0151b69739707ddc38b90c095a175a699def2de4be526d861c822daf6d9c77663e681914a01ae407ba4da13362ba381ef0bb17a9d746b96e049db881290708779fa20c4e2d56248b3b276b7f45331ed03a84319350c3a79d902500d08842814a1c144250568ad733b2422b703bd7478ba5c9c7f3a68e7a55d8cf2cabeb89a51fa6d179c6af133121a1e14fcc5fa7036646081fe436c3f53b120e686fbc98aa8d98fd3f1a36afb0e2bd539317069c845319c88b051b6bf75784ff674bccffd1cb3ce7952148e398c9401947eb4d68c98c5b5dcd1ac80a1cf6b6262a6d7d1e4d331ea942e744bdd97efbfdf9ff44299df0356b9b27d973cf96411f1db5e66facb7b9c45bbcba71a9cc9113a2a1ae44c1f8e99a2ec3c5f6c9a5fc4c9886bbf0b2a676e4b0ebe5fc504c9e26318ac676d3146324176e378038f942caa9f7f4174776f1bdfe578909fbd1d013882f81d7e1eb7c1a01c2733beb6566b0db24967c1e952a57993ba1d68d26230e7d131718729c18255d12599b06968c84b2ca74c8b9d1de1333833f596e99e9f719cbfb923c97ac89fa6da06039b9e309a83403c26c0be538473f464cc0caaebe92c16ebf96c7a40c2da91a63989540f130e58b172254930e7597c7cccce410052fa3d14b3380b282ef55d3f52f9badd8a18a390a725420f7da261498e7b9caa773d9573cfdf639d2242e1685f78e9f4b21e11b83853756d78d0f5acd55d6b9c13525720041e834bcfe363b9eda6536f3f1d058dd705e70364453c1eebd4c738fc5545148c5b8ede5896bce1436719d0fdcfa129493099d6b21440fa93d714867fffca242503b7ae214727fdfa4511fdf7336877c3b9417e82a6199ed9d25c64adb152f492e60b66e8a0e422108cff257b36c145d8711b4cafcf736857eef24ba69c629435d34a592f635d20cd5fbc3d0a9d30d2e71869434bec0ead9acf2c07c2840bd7edb5f24551286f714a26f372b0092b60147e0e8454a78aabe8d02507504ae35686507d6468c12915757d7a778e0ab7b62c2b9f8453fe6bf57b45fd90109b9960094f43517a0fa6905c142835adbbe3c93769d3919c895551dd015c996afa10440f39ea9e19da5c14bdb227b75d7a630fc221921df6b07dc3e9ec5653a57182af38d151cb7bda1d6ffb8ec1fde2db89a616b0b923cfc5637cc9e6ee417a6b1f8a2ee315b75788425454fa864db41c731a1a2ef3ab11626f88f335ea7e05d3c761457867404b6522eb70af828331cb77031ced614cda2d49eb8c4dfde5575b087cfd23a0cb86f865fc728804d9a1d065f9b07988db15397c923a8f217867042b3e5bd909c74a6c752a76c77a053e1701173594c0ddf343c49f79df36971e4488afefc0c57c142446fa8e54eabaa1cc3f527d49af8dc76d02aa6b2cd35f27e23402d7708d9bedf3c5856a7baa233c8a1caa8491e907fffa755ebcef5b8aed16b09d4bae7a37958322e536759b60c1869be969ae4fba6dac3a6c27b82d520163a261cb4b49026adc523f96e2898dac06e4eaceef8c363ce3d99c99674d4997ad1b72ddd93b7b55c612c5cc8d6b55ac725c1e6181b29294ceae8fdaa49b94e8f1824d0327986629b2c2a54ad808be48e03596a53129a464f62847d9c25bb3ff6c6f5ce6032d0b97885d20d57b5ba27750e5bbf848efae4a1843cedb7762c6d5bd6a378a6d8eecde57d1f0cc1ee46544c9c641d6a68ebc5ae4c2e616929ed6279ca96bc6c30ca02aca3f1e08fc993ca30169a9265ccbabb0836d224900d2ee9025a7e81ce873761fc71745b1802fc12cf83f057d91f7997b2fb6455e2e4e17cacefa8c61077d05d30183ab8f42323417b4bbf4f5f62d5fc85eedcbbeaa020688a3d04cd051dfe8772d838ee3564365a4fb26569a1f65440d96e57c816cc173555ef6d4fc8dfde72657ee2316d5b52c93e32b98f93e4417ac76463945f0c53884264a4a9803d4d923c2a1799fdf3d581070c2b1d3f576a6a5da49f0c6adaa90a9b555e0bd5d324c506c15cf16d63594121dfc9829bd9aaa0fbeaa1d0afca81ef8568edda591a124a340781f5667467974c0c9c3c3827793dbe3d42b5791ab8b9e59aeb71a08f8d4c07f3b029f0973401a49f981751f398530b77f9f398f17829b66c61bd3b507f66d0b33a6da86df3ccc21afd046b908b5bd2d98a87ddd94c7c02df3201a4c6546b7e4bfdd218c9c9763310686c81a55aec8a4ef7db747648b58bd3f64ffa0d87d336bf691e285bd670bea51877175b7872e3aeb5d4d4f8b07f589c54656edd1bc1b7d55fb1927a4e4ff2d6e3ce0ecb9502bbd907694bb35014be5147b63e936ba191f8e49be8d75fbb997ab8a09f23e4248315741947ed58c27998556840a4056fec6cadad16ab334603b00e2e182c8ec6ca88784e3ffc69de38267c11ed0ee5f3e44c2cbd552c50479846e876cd21f6b916086fdb7cdf9e58f549837c365bcf70b296a26a9e40b48dcdabe2c71b92e846acc19aeb59c884f4e76866de5eb8e8f551e5af128f250fd6c01441046d27e4afa0488f851d2f7acfe8f99143d02fbbb0dec09f605b8eed476cb6e436e58cef982a0fafe65abe5fce974828bd7dc288826c55a980502ac872585a27a16615825c67b7c67f0fb6c75cc0c83d899d0bf2e094fb3a3f5029d87c3b62f25042b4b4d85d1d981213d02a06703e0fb314fc52a3ae29a1062f67ac05ceb7521de03ab35050934a361faa489ad347f63d43d0859a35eb140fc1646aa4fcb5938d835af67d71f146fee1ff7f7790fb7d118a8dcfe76042f7309acf0c41676574dbe351f49f2f95db2e6b1ab5008d2b4199b3181d8887f85c1a2e747757e76a14217688ae95391c5963b2e04af3a97ee5c5d4c49965bb395f1da1d1e38fb30a4444baaea5dc7b21561eda44000794d22eddfb28417b08c5743b848c7887ab71634129a27dc0584cbc17fb77b090ef488fe1c0c53822221f5615c3120bee3bd02214d7a70031d547bf4190d7ea157f9cf9a6fe8f7281c86e06b176bc1ec42406d327261579fc764f8aad2ace611d2ff12d88924884296bc37158a17986dbfb8df625a6f18ed82197d7146774dad9b896e667258d37d2c174dfa367f827be05cbf3d6b15613507f9c746fdfa41d7b8ac9539537ee4747b5300c99f0dceedd9bc7b16ba82c225b14818c8bbf51765a5d7a3d21b22f8bb580899b6deb0c8d55df3fd2e0987cc4aeb474efcc420b4d698f281037290f5da681b77d0dc08aaaab67c1ec156c9fd698a996ec09e5c1d7916109ff299a1de1bac81d2e1b3401dd2155938897142908744013087efb9e41d56578ea469f0e46ff8ac69085dbcd2bbb08d0df151c3bdbdf4bed8f859d802b2df09dba4c38ae90b807b02b94b9beccc3b60f4336ce4ec6caad9527047e82e36f754643b4ecfa0b746af2ad456460662cece0a1c47e5f706a0a88024e22f0030a27390f4297925ab07067c7b277bb9556b268a928b6996560a00bd6564c98b2554554920f64f5fc32d9cd24762539df87e748899994b5291b4cd9a403246f16d7224c663afd577e945d2d051fbbc8231076bd356b5e652404795746707f1ec487f7058357c79bbdda8462e20b4b931f7600b0ff8cc6be097341bf49199de9e4c67a88398677b58f8dc36178f4a69afd59455671a550213ea116fc728fdd748d22b45369938e10ca57ae5536a7c9de788f4dbcb933653441323c643b96d88f5c2b0dd7243c3d5b234161599cf296f1a9e2b0208c5bac5839b59a7ecd99b2ca0973067d96e4eaed97662b2519d9aa03b4e4cc717a41590173eed12fba0d6c552ff2553fd149cd8eb5f233836737c448ea259a760a855c13eb5b2671a94e5453d3643eb69ded8e9297885b1c8ac061263b88f23af2fe21057117dd2f17c09112e02e6dc248cefb45efa49144012663ea5174efb3f91c3ce0b9384041056a100c246c98230316a92c962a494448f17412d64d64c6585f132d9bae944214eb7acfa9ee4a306da92d96924db27c37e1a92a97b31ec7f5dbd1f77eb98ca1ec2cfef40c0b013a4f61a1b5af9332169ed02a1c0119f2fb7b2bdc9298eeab07c0449e87690bb8f961732a9f92d6f6c5cd2f39ae7779006394bf42e02c36440b9d126832066e14a07913c285882172d17664c696a9e4389355056eb14eb9dbc122ce63f9ea4daea9fc14707dcd391897d45239f8df0c3ac331802745bd137858b6164be117dda1b5c0b10976d63fc4b3c7d0942a8550abf23f0a7d3e5d95a29ac42560735dfde45c51cb341c8119df42f3639b4882f7d785b5865b4df83c9098f08af68f5946d0fa63d9b7b4042f62c54ec9ed1f5714c47b874cc7575550d5d10c2326828b155e91123a0e1406aa86ede1563d574a5a348f7a451c8eaa18cf23920944d44c2dbf32ef47b7d210b4c9e93f1e139c2a0c3a937216ebb0745e48f59b16d73a2e34ca5c7f202f1335ed84c6e8b5bee86cfc4dfad358626d47f28ccb6d337a4489f92e33785faebbd2f076f1c60ceac27b0e11a1cc53bb4250557f0d553b60d0b3e4b664f709c7222c29fac126878f35b7f8a7a6100f0ce91a709a44cfcee440230c937fadc899638b584a0968e723e06f5093c7fb93ba53b37b1945d381eab4eaf33cead8bdba89eb4f761e21ec5666c3dff50eab6a768fa65657e10f694e899e7b63f7ef4490871a222afbe0b1b60573dc718123e7cab6cdd1c277dc6de9be2106848079dc51205821580148768ed6be3209bf4d3135a4f43144efc98c09ad7762ee76fd798a5512e7ffe8622feb12bacef1cf6f9d55bcc55d4281773ae891a832bf913d1d5c3f291366ccb586441327aeabac926ca594a1a3aa2290ae3050a696af235ea211c732724f7047bbde46e6e0a21a1edabbc398c335424a63d28f471cc4b79451428a3e930877e9564af7204fff43f055d6484365db32b8ca27c1dfb1204551eb0e4f7566be0a8eb96750289714777f11e69e60984213b8e6c7eb894a218442740c39dfb92b1ab4bc63f26b55272ec4af7c6f3154edfad9aae2e082045e7c50b9f41d1262403c696a4f12f3de301a3b3286e0d18b816f2e38258c9dac5cb91d3bb45d4bd0ea2d063d8af179c15b37c87fbfd83c966e06c860e89647a0bb1f15abfed2ec9d324e85d92ab294bba2e4a1250bf9effa063c709c381b826e847a22267ceecc63ff884b76de725c5875d4b548c6fe1d6164d8f5c8af2c77f0992d409f6b79cd9faee4ffb9c170a11728fd9cc1b38cd76ec3ad5bc9cf1a882ade6ea086f92f0e938c7cc9f9c7d228751ec7271f9902291f4c019e49d86bc5d5dd909739d3568c24e585950fc0f8d8e40427465c9b1209b1b393eee34083d38d4e2eea623ce35180e07bd32814c98dc574f0c9098b5187d73dd78025800ec2ab2911aba2882b8f7561dd72db0254a094e8ee3a5aba8595bfdaa786f27d359194d77379cb9bc3aac9982ec5c11e1f1588fdaa06a94ec5197be74598a6424fa402510e8973f6d56d403a4f7a43ed3081d8f68cf6ee11c824ce9c1e9c24e80d1beb6d58924c884de32c0ba2f486413b88e7ddce6496953e8277460e6d9836eb3ea0de0b313f9deeac768116c1a4402f52c0302655d0689ab53686831755e9a8202e9a8902fd34b66a8fed630cbb48d15294fe6d7ba7cf092e5ee8024a28dd2f9010e76b7ccf8f7c3194e1fdbf780cb19c64db138656cb828202867a3603cfd0e9bbd2408d0c48f0a6bc335150cb801b44d53b099891020ffb4d9f2ac2f5589e3eb0a0342f8ad941c80d49e7c261b5d6e8726b74e66d1b2ed56b50fdbb9ada2ebf9f9272762062372bdc4dd7670e0599696e22d68b332787efeda34df8f1642a3fd39984bccf35d0d21e8be8d944407256808e015ccaaba8492105973c84d093fa69d01a6bd2c9bf5feeb82c29aec37a761b93e9d18fcefe0d00a3821d73743ff1de929673260aa968a8404073acedc7bdd0c327354e99f63f47b418261bbab1bc7fb1e9952628811c91d8dcd95e520abc956ae308d150ace2dac1230dcaaa270a0f46267bf5cc174b16e7a16d5d1b023d4f9f22e39eedd6fc8b9f011a991dd88194a3a492daf58d9b949141c6b7b154c12c108270c61b74596c28c799166eddad500c16a2ace48794d57737f0188b961a26c09806fb155f60588dbb19b78188a1de01f14af173dcd7dcb93a0dbe9f2b3f36a47878b1dfa64b870a10e6ab8c8988ded74665f2cd838426678b5386f5448cd31398d4aa9c017ed9f3789870a99bba03b417bfa140e6cbf28833986143ed8dfe65b0d9dd9cf8a5e7641699520fbd1e9494f002ecb874227236c30cabeb37a4873060b69977067cfd0e5cd099152a77ba74e6674a49652a041255af5a212b7589de62ce75fdd73cf08644b1de30b3e72380c08fd44e7ef3a05e454bbab7b01a9fcc1fe40d329c709d3ec2c09b6c653434fca183975f62eca62a9fb5fb371c1502a5d6c0dc3d1f3440633dc66adbda6abfc9bd72624344cb098011b4b8ad8eab5cba27984611a7209145ad1479cb0940686567a50e065fae2eb4dc4edea1382a07abcc2585d51deaea09e3f1009e3d72265d9926ef3f07f0e51953c3938aa4898ea63d18ae5e44a6545c1423838adac01bf6f2fea45c125ccb8d4526f7dac36e095b6f8ec6a3dcbea1427f953a339e7b2eb5512c8b7a97a073c978ac144eab4c188787965a50df394bcfb9924e66e2ea31d789789166c112a24f0077d1acf545acffbf5a234c8eda667ee571cf4f4df2ffc93c1f666a2c20f6b25ff91e344bc719d14de5afd75c78768f6783428dbb066ab8a86a836bb7635b3690c918b39a3e029f58a34b8021cbaed54044098a547da51a53f69cfa644a230f37cd2c889cdc8714abc6978f58fd2948eb74df9f8ef1eee98052e5f6f85897efaf57fb1506ee009c9276d868349f9c016705fea776692c18e25e0617aa71ef3977b03b6f124538c9a0d551b6503dfdd70bca717590cacd3b57fc28da080bc6368f0728c55576b4a35537aad6b4f87f47696770ed2d10ed2b5a9cb11557ddd9602080f54d68b861d0b9938f8c86169940a27cb441d3f01f314386a12c430d0e405acd24520d569118766c920497e30d0598b28707dd42972ab08c8175a8de4e23224b91fcc07622a38e42ff0c69e7a473fba70323428022a7a9ccd85cb73f3ab8c0842c7abcb74dad29c6561948ed5b4a008b26f4c18487a685ee2a5f7056b0f1ae59207cc3bccef634cd8a9e826aa807d7f8fb9eea981e0b272ceef144b734a8d5c8e18c0f30c834628376c9c2d57804a0ca248c33e626f0adcc6e96280cfd78742d4bedb7078b38ba068dc39e8e5c585dacd0fa91ea4620e9667c04bb7a95f70185a16b3760b0bfaad02b791cdab1bc167ed85e460d31164f97a213de7d4301142c55a28d8461089c67a1f0f6113720ba7c1a077fc951123d379a6f8bbcb6f486208958c6b3c7dea868c200a72ba5985b4c3217f7ef0074dd7e1c711096d95c9c4337bc33455de5b02f0c5e37b0826ffba4944dfb971ff645a003cd697da09faf5586fb95965e7ebc9cfd18f6781a50fb3fb7cb1848f5616281056c34e0222c3d39b44b19e66d62eed19269490c62ea32392006229876f53dfd7cdeb29f987ff7d1f5f69196b3e082e66ba3118799a9f42da6f22e3f94977eb27f81974e2d13758da786333762d00603b5159e4e659828cc60eff0a9b99cd875fec70d3a22ba9f65834cee49cf05444249f539d7715b3862e37360ca5fb56d949fe6a8fdd82efc64913372745da090a6e36824bb6f6e5cad99ab5bce969e7ce0437cd9c31dc2b3b738f166adb34e951f620ea3ddfd2a6892d1923081620f93f64d0e0629fd0d27f863cec69c61afe8c0a0f5ec236db33293127bd233a803b49cb78125a519685819578369615bc5eb7af3b88fee4c1f4cce60959e37fcb73b3d96c6ea769579fea9260bd9d14f05ef41e3f3f8f4fe8d8884d94f0adcb96315ba73be56543beabfef920d1c055c7ebe13fd22400e521b4f47a0c3ef16c2959a2d614398625a9662844b0e0dc4a14812541df97d6900e11ae91ca5fa31999bd76fb6615b07df307eed34fc5f023b86f712a532916f17f4cc6f0bbd401e6fca3ee27cbb327d706a1f288463c775645446626af0e6c13c8c2e13c3a471c641aa68b2a06e41b6f280e4193cc368d272ff556cedcf9355eecd1520281d75a5713136e5dca9c1bb18696b247b6e609892d66285c2b5eaa517058a68c20600677205fba6c1f3142e686ba51e9a2a6893cdee6f307069ab36b9dba9a66438bf778e12a965ee95cd9a3dfd5917a92ddd877c0096b9d3610c1acde4ec48c8fcf4f980c396664241b13b58c515005416984df923dd0c58d5b6b6e7bcec4ab79f5ec96546e07db513b5c2c33bb18634bbe5f91cc113cfb21b9eab4ccc3fd2e36f9762cfc71f876c4c98f78711abf864e27cd0890184b6355c8dbf5f3569119059aacda179ce64a216688a7fd765174356138a389354dbc6a3810638d64cc24b5485e825b907b3e76827775e4d09a5da1d5db246e9628c0b3181c41d1a0ea663133b0ad946d6773b5722347ab79f86a1f9f3282672ee0066cfc58095be88459b0f86f5997130467d29979c8fa1e34cecc69432b5fcac41e2cd9be08905f0c69165d44b64fccaaeef4dec0bcc5861e17fc3d43b287455cdf3e5cfaa5bf9ec5c391f0998386f8f1d5267a8503c004bdd257527a67a38240c2e26a624873e22d490a1b2683b5cc5efae5d4b183b10629ec26b8fd709aeac8020b032a99a7118aeb1ecc04e49a4a91d9ded603b0325c3ec8aff607bf066a168a2ea1030d8f9f6b66bdd024127bdc04b08818e3b1f030a942cdb0013636a2fa9ab01644f4273759f32241c8a9f11ba6acdcb9c287cef8121c88fdc9baca8a1c8511c5865564806c0a5dd6ec75289c78977ede703e11b19a2a185bd978768d8618bbdf8b7161e0a2304080a9653f9dad484c2835ea428134faa3a2a2caeab574238fb79e7bede2ce11114d2285f51e8ec7541f36f05f6e47b125c6cc71398d466191fe7e228f24dd21842862448d910d02919ee6e30d3f89d4bc9bc5d66409a5be27c4d9f858f3faaef0e7d10fbaf3fd85fb714b96039e1199c17ff4615ae93ad70d41c5df887642fcf137dc68167d517190ad7e0d992f9e4e6366798720ce7c488bb85c3f0e9419c251f2cc6f1e5236e28e8a70f7d5d706e129d98a082edc666e0d49df03bf4962e4ae062a30f29ed6e4574e1dfbb2ed74cf29f1802d8afee2c85f4b1eb573354f65e589b846040c681a6e9e5284e04f70259b4609487a6f2967c3bbbbef14467b4ad4db290f2123cc58402817b330ebc90354462e641b53f690708439a55806347b87fbaae2dd85ecdc79fa7430e0c5094ee551be2b1945683d54f1d32b940180fdb069471b499f4735149f276e23cc2602376cbce8aa023cdf976cef724d150d50c554dfbc560c85b75dd238db76d83d34dc985dd00ae91373f9201618cdeccc1352419962d8f358cc1969cb2b2b0999ad5320e3a2c8a0224a8dfe3d46aae9b76cdc26d2a38bbd97c7ff005efd263c59619909dadff2bc0c6255c9b83ffdb7f3563f3220adef22fb1749e4a3cd236401e9dfe8d9f7855477c40e7401a857dd26823d611b547777008ded42df9c2dada3f9301eb042edf2c7c853fe9e855d821c58dfadccb5cdb0a491a07bd691391463b2d147d78acbb07567e4b6c6b04b4a07fd68160f158abe0bce4e4b9235f2c6242ba87d68bd5eeb77b7af625877944c5f244b4585b24484c28012a7f1fc5ff22015dd015e6de581913b42f98dc7203a69d8a5d5e3ee7a16a7bc92bd690ff12bfddce6fc3bd0c4f97e445fbd1b3df34189f1dc0392e9c3ce5a6f1249e00282ec373071417aad5a24f9419dd0fd3f5967524f3e4d4186ecbcd8b43511914ae97574b2fa1c47d92ccbaea79cf4783ba0306d9dd32ff6782cec5d406cc8f12e29c0a0575efa0923e298cd5b77573a14eda0473c7cdc4d187f1fb0ee429078e1a914ff9b8e17cda2e3305df8bd94b699aaa27fe3a60da1009edb5282bb73bfa03fb59c95fb1ec0739d393cdcd67c5056bbe44198fd429e7760edd46ba22922031126647eaca460e96544e69f43484870238b4575d860767756bfbd7066dda7f1de3e92938f13e9f412b590981ab24a7b3ab122c0c6d1cacbeafb5539e5ed90113fce9dbdc4c9ff58bb88b11500526f8821b48a2545ac6d18962ce87ba6292ac4983ff813bad3365458d4f5c2b4fdfee3b61622ab3f36df5fcc346e59b4fa6454c069f2a3f10c3abc4dbfd1bc8f32b7899a99aeb72bf5ceb2af1ff89d8b18c84a491ca98415d8913b52a1d35da685890879a146bf6d292d31b85c158319485c88f0321e64fab7772bdfca6fb323c9a9aa5a9a090b8bf516d6cd26f40a2abf4b0f94035278c45cef8a3fa994638235c68978532fa66dcbda6c01ef947ce6c516656bcfc210837f289428f75847339307d0f68960c33d6ec243b411733399b9acfcd164da55293b54d40fd7a532e78d7c697c223c11a1f11638bfabe24b16e694523df43b13d62b07655cf0ca8ef4dbb384472f71ae237595e8eb280eba49e9a20881ee3b8433a3816062de5fe3ca66bbb135572937f32795596f572eccafed28d17c44900d625457a9fa2267d4b4ff464243c0c8479cd9665ad41a810900d3cf4586c397a23bc8015363a33b713c9a973db184a31d424852afeac889d90967d88c6cc2255bb68926f50c69c838ed81d16274bc37bf560782e46797a5f9404b787cde8d376f60d9bfd87a14263391ad7163922cc904ec03b77615c4c6dc880bc2672286d7be47a5fa224a6f59703db462ecb55f5c6c4f35084953d4e68a2fb3b5e74b8be25317c33aa4ee3bf1a2edf4e55dff01648b7a67f7beaa8635ee6f280b52a7f4baa8e1fb523c897c183cb455458851a76e5d7aa4c74a43766457b37293b5d0a10f93e184e170b1b1b4cf51458f70e47f78bef93357965e85c84b590e5b96e7a4e5713e04317b59f3affbbdf9dc5ad060ae0d043c681e95d57402288735edb85d5d42cfee0bd071c6265035cb7eec2f0373560714e5c5b6220b30d4156019970d7456c323bba76124c5156b43f1f67b406b259967bca1c7d47d627db91066459ebc1f33ee706fa1c4f05fe073d371b15e3bd256d512795a3eaae85f54a6821c45bfc035be4e86bb3ca4705f2e2627305a7b99678ca89f573fd4ab83e1e53dbb9b6b994bc92f993c9b9166ba372b00948b4b7c844173a0a881527f3de0a7d8161d6f2686ec8fcda56f54d176ff114fe90c57b36674da22aaa258402b144b8d3bfe69d046b542ea2b8d9c9ef00f886cfc2796084cb1d7651723140e25e662111a76ce719eae6b0c2c11faf4ed3f4359cd64aea689810ecd7737f1b7b8f2ecbd409891b6d6cc4fc87a661c685bcfa800d65d71deaed2effd213597c08fafd79bc6021d0092e1b91cada14e8f680f546057fe375ced3cc22abfb210f2ec7ce4c12bdcbc8ad3b4275f30d0693e84103e4341bbf7b95903e27273eb417640f0b33559b3136a1f9b5e3f8d33570e87ea60cda3d8014dbdd75e50ee3ccc7b898f3fc0d4b4f6a3bd94397a986def3659b66bc015ef35555f4ee27e3f150168c3354b5d0271cb63783b24f8e69664567adfe81c9c0aaa713d7b348e1c3294dea2095922e082fe7c3085fcb508bc623d1b14d1491c3c97bad7e0b1a0ea4bdb43cce4d48c17111f8f3528b4e9403f684ec16192bbdd2f606f9d578683a439390d8972b8db6d6b0d3c2f625bfd468043f3768651e6ea8d8535afb66449eef418e4820943dd66daf093b8be501baea992df7131b46d617bfeb968adc612b49f63e0ffd69c59202db6e982a2eb0e7ee86a0e9fb55170a2fb244a1ab4fdc74db200ea9f6a8949c17b9d2d358080ef47668ac4b75bdca34151eb9ccc66cc3de64c2aa2e3916bde7f0a17e619a1455ef5409b41197f0950e2e258007b7436d7e203e4456550577d3dbdd3c6e24df0ec46f7bf5add2622308059e6ad2e05cc63d212f2db27b2e1708448e1cbf59d9458cae9ebd8447448aca3c5cbf57d76c6bb14f44ad46f8e50b5f7696cae200f6ca4b1eb61abb6263550e2317d6e6c225509d6cffbc0d4df3461105f659ef073b1fd2e97c9be8837a23ad27f817af8149bc25e12f7a17428d3d375d15726951d2e57061a5c3949d8a131318c3c577fdfd11fb70bbea837e4f7a493e3184a9600fbc6a5ba525a7e011ab21c621e47639f87b6781385a70a5e321d1b45958a0ab19c80b63cec2703fa9d77abd290b906e7c7cd991a5967e5037927db5fbf4d6fa46f00b7061fd501d9ee90cb4382d8e6009705d18163133f87a60df616db1068d8e209b92a6812e7ac29cf4c99f99d265b5585d82b2c2dbc7b4d2cc05f7e871e61884d968cb0e31de9e9edd16958e8474ec769cbe8b7f13970f1ece7279dd3069c3a0370e8b164c4dfcc2ac09d412947563194f1bf461f150286957f9bb86c7daef85b26a8d9347fa4f0ca5acd03bc724f2370311dbd7a0b820c0fbdf2ec77ea9005840c8213c3d95dafec16a8ef69eda96a14f56f487295cff2459a01809fa9c0edac4ef948f34876e5f2c9609da1b7123447895c41c65119abe4267fb1cd9347127a739e57a8d56f3c682ee96b9ae58687278a0c408501672898f7885f4aa9a724e6c6f1ee5e266c41511467d6c64153021475e2c23ddfc72320b7b3ec80509da6a362ed57cdedcbd3c60c6c5f5cde6d96d1a99f28d7b65f581da02fbf7da3dd72c53b6f53ca08acd4aacddfdef7718d360342c1a38a0cf1437399cb27cffe00f5d6b66c2ddf2be37074675122313a406c245e51506a83cb68ac0f4c144c0d24bbed69c5c6ad3f4fb0ceb9f318f8e28eaabc0332b39801617a2c8e94b6408c30dfd51f2bd07321168aafed402bd664f5b1aaf11be263a0bb79a1a34259d19a019688e1f509e89fe5a324f827fcea180b68662284867f900ebdf0c7eccdad4b01aa99b325ac0231121fc48d53dc70762b5fc5f03524b61cfd773be068bd00cac4703a15f03bf6a552952724b4afa645c5bb4efb613399f29c5292e0e8cb59be02cde605282ed6574c9abc77fcfb56512947faa26aed312b327b89da837e892bc8b49c173dd54cb2b78d20c2f68e8d1c4cedceb9c35f34eb1742e8a75c724d67ae358e9cbd67873a7483e38347379bbc5d52a80f41c034b372ae8a40ca1dfea2e26068d770dabceb67a657abd21afb0a3fd0c5770148258852436074dd308c5f65647e207199f45d951ad74b507126e148715aa64d750495d5b97ccf2efc2d7943d61f24edbcecefa5f9ef8228f151400ec71bb554ca512adb1010d6352d724ae5962c6ab9659d92e1943c5bab8422d7813c54c9465d8f3c5bf3e34c8156e478c9b2ae35190c30aacd46d6b035a6cabefbfa5c46174e7b66c135566f42d2a0c2ebee598b7b4665d1bcdb15771ae261c16b5677e9b95f6e6c37da2f7fc8cabfedb7848426699f818b6b6008e7ea943784843a2cbdf171c34b51df5278bd120fe12c7d986d8999142fda2dc9a6935aa0a6fea2838956c628e0bb5ba4273626ea884a506132ef09da8ac520aeffa53ea7e6b3fc8c145a3124193c2736d9fc38d861f9ef09d48a62c1e5d1be216af053e123801315867e38c3f85b47d7ceb05bbdb80785e649cea79587e3d1b8657b703de8a7f1acbfd1a8185f828a890dbb30f46e4a0f6d2917db443bd2f4be65aa313a3d093c29beaf28b1e75e47dbd92a37b5a42df9af2ea56f56bec93aeb5d5064567cd90d9f5006cdd96c0e8187d8798bdb15685b980e7dce03eb2594fcfac8836f0c6bdc50ad6c324dc1e2a57c6d68a1bbd9c884db926bfca69c9f154c668e29f15f18e82c1c87adddcaab99403f0db0b67352038163cba320ce95622e9499cc2301089386bec5ea8ff91ca5d1a4715c2bead4f8a9612f0d89ab2570c82dfa02bf240f65658f97bf651bf844b44d89181ab5003c60ce82bd49d810b41f0bc0614e949e983340b967b344f54e602881aa485c7d861e3d5073350f2c56706ebef70a31028a71e0c365ee3738daf93059b530130944e9fe54fad7bbc5ff3aa8fd2c0a5b0a9526f3b079927a72ad2f54626a93d5de63d493893c748c0c1e301be6fabd1b0e1e19c60684f4263dc6d4bd94b4b18639a072e703a8b8fdee0ef5ef963edbd4ee1cfa67566a778605b0c8115cfffa19319d5151b0516908756012ecaeae444183760190abb562417c8391a883878827604e0f1260ebd0f7b0a1bb542906c0573735d36524e1f751c937c678fa54956bdc04bd00a3ede15c8007120b8dd6a5de34dbde1def84a70014e52b72c19a8753b738276de4021f68fb2e37e3cf75efc5958b09552924bdc0a32cf094ddebbaf07f6c84b696b8b74fbb1a7559d49ed827a4cd2a6c09aba903fe2cbaf311ab2bd3151dde1edac2945938ca1a7a32516603a7d9abd77fc6a27396496353944726419f7b201beef3a8653528c1bbc24b0421173d34f18374feb58c33b50bc9e22d7e1cf58d7af29e3f7080ef516250eb34cf019bd88b87586c67f5c8f02d713b21e514e3dc2b1b2cfea735f16e2019c2877d0f6d0dfe748b317e2d3ce4af2b65333e3117b6287a26477659ce5ad3ae63040d1c669e023e463715a4fab8eded8c938af6f9ea0707f16fa1cdc38178a6f42893f238321790c83a72a443ed99ffa3aaba66f956b63972d2dc13bff827ed0813d7ec2292f6f6b4735177acf191279022a48238c161212baefdda0eb5ff5e7bd2accf70cfebf011a2c9f492604628f0f4da3d6b746267427720f17a7d197d13e2c57d318c06cab64ce54a29694bf17a65bfb9c5659e3a20b50f961cf12f6a299d6be449359417e83f6f5083f32d3970dc361f83b1e0a6620a8545b55643b56b60e10d09cad5d30747dd5ad29240c1102333f52094628e7676be82be5a5f61cf61396615c42db6c631ad5617323b382c63aa8b9cd7a2c9d1d202c20747fd5ba06397205b607478538a15ccd28e4446084ee41c729e2e606901f88cb865d559928bd9e5eaa07f3d32a19559ad0a80c9099d3c6479b9e20f1f4444a2bb689b00e2a39b369cbed4968a340bfdc059d0655fb8735ee6ad369ceafa48e62173e202d373b902037369aff85870d33c2f73d18b170ab7f2d3913aa40bf9cab7b6d981050e233d6df1e034cad5aa2abb188ed503aec57b044178f1400d844e02452e72050c95c225b99d049ac04833f7536cf21cdeb04c5da756c8f30ae395b4cce664497b1eea5b93f287cdbc971d2bea7d547386c6db1bcbd7f9726bf1060cc84fe543b74652abfa018be329f4c499c14388a4a8ab2ede096703e20249315971c580ee6bc579ec8e9826603acef8668344e2236c59d158faa47045fb88d79e0fb00345407b6f939998620a4fb877181de4c8981e7f62459cab341e239130f0746499275e4327d0e62c717b5cc84535ca4e64327cb34ada3e6dc3ead07b22f6d523392fc0e61a97baed91208f0040aedca6662b1bc3a1d9d3b4e1b993c35ca082380603155234638621436e1522a8e2840dbe211ba61e7b124b9409fd6e3ff506ea62d84e04b96c7fe1378499642510ecaa37e3751a7b7de1a0dfffa9f6a3c8ad434887221e9b897174e5699687c6e4d25bc7a8ad76b83377b470096f7b083a7163ef9de58037b465adc3339fdbf2551c3a30bbeb8909475ca0edb317079955397df83357b4824c6ea9034ed0d88851858e5ee5cc9d90764094e92967e8fbf133131101491a26f07bf43ded175d65585c532524997a00d41d30e35efa4ea7748e9daca65851366a3eabf8f992b5959c33b1e5978bf23503e4b70fee7de5e76a7526ce1a3e24606a77384c1c518ab8b550db74f45faf3fd0e1ff10fd7c7dffb387ef967ea4f5d98538ec24ca7dd770e3ced964b8ecaaf88a93956c0a428cbadac441c4e1e36a65b59ed0be26627dee554bcf371498ace1436006b94bb5dc18d3cb72f0e561c8fbf6c05e215c7c5e4180069d343b777a3c4378126c452ae0e3dd3354392ce15abc56fb414246b901bee4468b44b7f7f4cb3fb34a37de07418625c7f3c83c9f20dcc672e439c787ff05692b3c8e0b06fd204e1bd61b77123089fa3e1daa442371cd4fcc3821369c699928e48b2b8922ed1d20587697e5f0c4a7271e7847848a83b33435f7446bfd1e9a52dcb58a32c3fd67e2feb6f70de4bb1cf2c95a88f5defc2a6674c417a82d4537cb0f494feba322dee97cfd4983e52aa8ed381667abd171c81ea96108c1183554cc59d0467f16bbd460dc62d9de1c4d6051c8158a9a40dbb69d3d6a4eed99bfbbb4853313256361199fb4bdf6b1996d2a9452677e3ec92e5d5e64c097a00b6da47564684a07359f615210c4841facad3a6d0fc71602ea27a49fe848e3023a6e93e2ffe2fdd5a32599bb898246b48fd610429ff28e219d38014d4552bfb9e72bb4727d769ea8ab1ea64df2e7f8efa222e760c8e871e8c1fcb350f499d74e18fe9fde31409243f202c79a1b90212ac514f1bb5f6b108338d98127cf6faedefee13ee7953047503f08b4c93a879967fe3da165b6fee19233ed4ca9ec7d205802a9c761e7606e04fbb63acc7bb94edd687beadb16901b8e399ff1ee62f91209274c5d5d308618abec37fda254a1942be5822066dc56c329caafe1a2018ba9d6cd6db5b578f3b7afc45531997549913b02372766c7cb40bf6c080e675c80fda6f96bc126a5f96630d5a4ebe4fec5bc2380cc3fd7f4703bde1f54cdaee09d854472426ba2bc07c8edee7a440b744ee026fe0179ad7b4540a383c2ee33256266b762dc4acbfa48547124ccec3aee8df7d4e5e98b8c8382c2a799e9e8bb34d84d455d612eb8e4dada750fdd716b27717ae73e0713cb23049633df24423a5a8362e2b65dec564150730dccc2759cf0fa41be288bea63a47dfcab54fd9f5ff3bc945ad1912f5175db86fe5dcdc1820e1d75ad794692953899848ce05abb58e6e6958f7fa153e261d96922b55765027969d38acdcd331a70245ed9dd704a172c265e5ae849d89f5c81af27c355506d0de28d39827ed4ebb8e5c06adfc7445efc18dd289ab18b8f8fbcec1a628617ab79d6bec3a22379a5f1cd14701b0242facb80b3523b0080ea9df0e8f0095d8d69a0384b270097a5f32c3d5bdc1ab084d0f33a43a57f9f319f500c282bb669af8e86c23cfcc02228c5d4d2280cb9a64fe14912a0f39be0799f944cbd8201b8fe50eebc5e87f615d8b1fc91acc45ba86ae684d800d25091c5e2f6147295d6c7b743d6edd0686aff0f5163797061b5c399f2c9421f0172dda8521ed9e1e76c8e5b8d9b21463afd480a4b846712fcb581bf98ce2e2189fb64a8e97cbde0ccbd95c741b7cec8e45e6ac0eb4fc7e9a2e19b027714cd81026f96941d6242a43341a2b4c083d5f68914e559ccfaeea8b488c67d8a3054e5dd3d604f162e3b23ad886f4816b1322e27dd4f9de863f10730556cc8fe8accb0f8dddc5e795a889dd1038e93a54eb4de591c3828e484943e33eed07073c3c5cf0b9d2bb29814e9a28f51b9701fc714b5f2ef4fceeb2404535bde35cef99ca7600da8621d75c3af27d85aa93057128d69268890b7f26b660ac14e6a45ee3a9098047f88900a036648ac2f2dd7e995cdd5da7c734f0685896e9b8a9a6744aed884591f4ed78a754637393cb736d8899ef6bf2ea3f2c7b150ade7ba430302b359a2b40b3c63ed88b54b640059e68e964d422014fd17a75040f1b90ffe7f0f8e9079efebf1f167e5eba7ff5fd0d9fee359a15894f84783fd7250318f766e7966bbb3ff99a75b1b0aa2c29f6bd901d3a61bbe6bd6608da09baf2ecc24dff93f68f00d9b38f044f5e765b39a6b535e6a5736a099451a123c799e86c29cfb60908796cf0cf532ced434719e4c0f6817fdb4372f773fd87b0796adc2fda5f20f704b5cf0c5d0700bc52784043601e763a372a27c386837fd3c34afa5ed24229690515d5200516fc765ce6dcc8e7dacd407068bdff18d3546f4eadccbbcdb39808c43fe3618e3e881bbb0612b626df8736f7a82fcf5606ae051ed63b89624eb3a4b0d1ebad3643131b194a1844e3a07c7e70a7309b0a171c1e6e785733c5ed7df448516a03bf190874a5f385c6748553a020cc5f14bee7d3c613eaec45b5b381b19c3884301273f45403387b0a41e883b59070c8e170b98d23c603fd91cf8f37b377e77b3a33b1ef711d8287924fbe6b8df11ef29e547fec06a1c3a5055d20c1db3190a06429df651b1757ecaafdd68b91fe41bae5afdbe26d340686801044ebacea4ed32d0118d5e3d038f976ad434ade994ea50843f4ebd7fea31f50e0f32e643918c41d25ef836034af266a896be5931e3e7edcf3c45c38ed54d466a18c1a9ecdb2306186658aff60056ff954b8d3468edf24a44e150c8d18ddd69769d21790171a761a8b2ddf29aca12d636a6a2aab303ddd60f9902528eeccaaf07610d4a64c501147d298c3211ee5ea825fd175bcad45007795f33e9bddd28ecedb8cd2c058b42e0041099166f2702cda43c064a48ae7ab5ff4759b28c579fb0936f0b58592cfe92ffbd9b571adcdbb027333472fe3260abee44337c30dcf00fad503cd1e4f94de4bc1f1af9a52a89878322d378c827faa9314c894140a2789c9eae3d5ca425d0db24bfa305bcef0cafa9bd314508b5518e1e5d5ab1032fc7abc82b0006888ef17d44d6d7de1dc0d6c40ca78b65bbf726e38a6e91c3e8a8eae67c06aa35674672d0fc4327488a1158daa6c3e871efe54e431b206a526091c716d2c6a2c260ab0456247a08a2e3c21a8a3fb2850d5b3820e1b1f493ca63070effb51659d9ce128d1bd6b64951a06baa1882d60e64d4b3d8427c10bc702856f6349d43411d566a5d186c9d0cac25d34c55b43c526b09cef528c24018c16e0934e186492f90765f5816d441708b8ae7ea2a6e50906b6309f9839401e2e6e5c9d5e8d92031bec7f28845506e23a4f4a35b3581b8d78c394a9363bf60ef16d12dd3d5eb29bf446dede308108e08cf147f58884729d07b012a258137245b4cb793489d8d916c116f0c428ab2d7a15e0746b054cb252a886ed7700d43a7a12746ecac5b872f3d79eae4cdbb65acea84c94b89126cea7aea5b4790f6d4660f43fab27e7562c2a2ba0143a87ea7c8dd124a07e70e1c2dd1e0d895df4a5f3bb855b76508cf3e68ed69eee5a82f9bed862a956d8ab9d6219b70821382f0053acbef496bc2db4f7c6a45dcb4540432fce28518aeb87089bbf9f4342127dafd3a6be67b001e26fe2fb7e786f415e64cbaf2fa7fcf5f575f8db33c53717d8ae8f2c9d0f754b513fcfe7cf20d5950140f29fd65f80a660df430ab4cb53bb31af68a0b0db50854c6df0ebc11a475dcd170254afd5a4c7952efe9daf1ad24d83b649e9a8d330759eae7f6cd3e997ae2ba1be665e669c77268c21c2e0b43ae674e377322db8b586c6d8c7ab79d59aff048e3c3fd09d2cb271207f52bed04b9259ab93a07f4220a1190880f8befebc5ce5047438e67bf55334ba391678e5878ade9f163e5c12ca193ee59ddb9da281253e9776a8245df2763832433c077fbfa148e5bfceafd014280c9496bb446d6b8993e94330bffba1968b8ddf6d660c050269fb2b97d741cd5f8d25cf23676bc7eb8ce11114cd7fe620a52fe2eaee9ae03d6639574ed324787f100c92cacb91184a147ddb5a0769130f36c77dc3053a82d7031708197deba2d1330811349853611fb8564682c6879bf391cb6aba3947f8212c776b7c4a2250342416be347210ad6af17408729e942e043d7ba7860db257bef3ca4c3d18e24eb86db82f53f4052134707dcacdfa46c724b76a30037b97d6c46fc7ab79775c551cf6d1f521849bd8e3efb667f5d200bed0d62e38ae3ea2582883671ceb2e24a40cfa46746adb9fc9e7cb3974a283e659cfa6606f7c70d8528782b35f1430ce78b720a3638b1a7c1f4cdd2be5a5f3eb9f9f702e4b1bec955afb480bc724bcdcf39e69ac5e5f790210c262b26884c8d14b219a4c8a609dc87e32cdb12bfb9877e98f3762e2fd0c5c72d77e4cb68b18b0c2e71a7bfd143843595ed10f95732588217c87de428b4faab081c9c90327aae30e55900024487bdf44b59712bef54256f0ac4f34d5cdb9cd2faa3e6adce280ea101aed6a3eb7d6bb627c131acc968997ddff51e5a7be8ceb00c0993b2261337a9a42aa30148a65481d73d988505f138cb5c03e48b7f78f6bff09a0a11bbe75d575d6f02f8b67d3e718bd7c564303bb19e75da9751a2f4cfd7fa3349b27730837a0eae3a7e5ad760a13609a420c4a00c07f6a2f84e2ad8162ae3916eca8354633f425723d7e0ec65243224aa5011e1cfc79b8f5f2ecb71c5569f2d917dbad1c18790f677f780b6c5c5d57798e40d903544a6eabe1696013e2b16b9d508b424bda19cacb5939b70e0429ebbee0346f32bd7766d64cbb9bc29f0c779a13b1cfbaa0402c10a28f7d5a58667f5a86f0be9ecd01f213e7da923fdc086257decb56257a6a13b30cf5e0da0c30b83be249640ed7daf7e84bfff57f00183b37a151ed14e0744f882fce68f8c9b0e041df0a96d003ed13e69a718050bff6cc3a6cb1d70952ec44bb0286a98638c150ddc653cdf19ab8460812b804e20a9e75a68ed824c5d2e144645b613d3e61226fa11be1caf70bde890b1bb3d8e9c9e6a7c4ee90cf9c50a86ed7dc5a7f0311bc286f33f31aeb8e5eecc556f41c66819c8cff73b870b2ed35ef5267b60be73f4c60affdbe11de035fbb54bc85f226278cfbddcda080961be6ec3cabd6724dabd1b03ff07c79f5bd93430d9c838cc647246371a25b219bb5bb572cdac150598036c17b5158c203760624d0606416de216e0774b16ed3033fd87c964deebf44064979e67a08bb39ff58d7f717d44ecac0d8cb01335a3a4f60252c087f023790654b1e2aae3b0bb41b792e6b9d52747e19e5716807b73c0e4fcd4acf43654b95a58f3f6c3b882b4db898fbd0016ca92cc3fc13e2387d0496bc3d2e19d58ba987ef02fdff907e812aba4fec5c49d543379522b4a30b10940de6ce412797fc836b90ec3050faafd62fc8ed801f30f03a04b7e6ad4f35613ba97ed4e3faaa149626ba1a289d7d32ef506fbe7b5ebefab2e92e7f55ce2ede55e7e0cd5a3605a80ea5979f45a6f9e7006e5359c0659fcbcd42dcad783a62a47f162e0e0e4c4e2a22e984cc1bbcc81ea7b86330bd25b6dd94e51a00025a810099b00a93a29c7a94b031fab2d11221ef6499beb4295790dfb406e896d6bb49ec0a23512ad857336b8a7e754e120a83d272f29928229220d27c0dfa7277e83f90b8d8b9d9b07e3e11321a129f4aa66631e40865a55788574cb8e906ee88284c360773280c000645020077183f521d171cc8e1911ebe41c2b1f5220092d02d21fe3fb4f8f31a2ece375ebc23773edee33eea9a0c916a278f150f1f13484ae1bf403f8ee558fdf970330d7f90a38a494c535285c8766141e0fdb595dd4e57c1266b63198c8b91396f3fb2fe93edac3ae512e77c76df9dfea67ad0f41c754425b1055e308011875c53fd8c72d4f7519f17fe13c8c48fd517d77d53d1b4b5832f704ea6e2214acf329dcb1d8739ce88588704f15452e0720f1b45f8297dcfb504e7d232037745efa041f7e18c09956dc3b31ccb2cfc5af0935e7e0d61c33ab080fa33027c70b10a6ea0222eca940721731ab7526d6e9921e62d4db5bf3e684f768bd2fb446f9f59d6d5d1362dd4bd7cbe02f96d710101e9a02d9588a60d5e451c81a6cba94366c40ea3f584e9f53df917c1201712db52a8297f3ef2c22d9be9f21511e59f70c914902127c23ad2bc7b8325b2c0e9c31ad2e0120e8bca8e968c3452f527d07da52b45c95e25eabded44064bf1536c1962d0f6e49ebc57911c42fdfe5ddb4562f98b51d997f8602399f5fce849ed39a086c8360c316ea83588a9d5744e51798d7ae01c0a6b711b12b59187209b5858b18670d52ebe5aedd8a7975353bca14c8dcc7834db20fa75be7a490b91bd949bd413f9b0e7cfc774955f87be84583e29da7ce216584924fa13757632d4d232d1a2cbd6016d8114c2e8160bef5193af109807a0a1db23ef528eea5a4ecbbc628978a767f79465601e68d9bb3acbdfacd41ef76db504fc286897052edf59cd85edbb597e7045585c2398bd7d5222a16109d374b9e81aec23931bc33cd511ded5f7738ea428746e9b714f9e37b3b57cbc5fafdf11c3fab6d503dc4b3e4563dd2f08335280f916e61cd584df2b19cb14e2f1957b592a5ef5969fd530162be6f633d8652d689ada6e56961332e0a32cdbcf563f42fbae662bc58802d1caed660c7d5abf7b9603493b9edc0b5f831b39d7d31468ef07dc6a038699905f517aea077bb5db2ceab94f7cd585fc36e7d00fd3dc82d6da2e99f490c5f4733481a63db3b8e8c8bb5d3db8a8e116b6a67d1d02a1613e803668f6c39e65853208ed7b4011f4989064135467c777d3b53807282e37e16bc64ff4bd0ba8ece4eea450e19c8b48356000ae574fe38a8487861df0b6a7b33d76c3d1db84645843871df36a67759020059ae255235aa14c3f6f957ee44113caa96f1d2f94d1dbcf197e9e8e555f20d34347364cefbf82306e148b6fbb6e96931bc814c20efe9b1151b2002e82d0767c64ef4c7060fd8950d3f10cfb83a861228b2bfcb997958133fe3c08a30a56621b3d857414e8ac90f741fc5e4bf446f3a1df010fe59377a0abcbacba508c48f1be3578a9544520b9e80576ed4d8d355643be6971915ad654d046492aae2604ce26bfeb6098f4ce68f176640cdff41f97546615424c946ca34405dea40d8f2014308937633b8d907476ec76fb8877f36eb2ac7de35a3e7bc130fe67a23ee1bb2167146380d500e8250e0d9ea7bcfde7ab7582242774d96562b12fbe5656804714fd2c9b34f1702bf217ea3aa867390dae4c08aa8f82dfbb244191e0f16790a5f7e3d97c3697de8004c82fc01f4dccfd2a4c884e02033d8d92452f55489d0943b6c970ab3afe931cdad92cf1aaa3b0c8cac1b740a91dc25590846f20b0c81698a9ff2c9ef87897474cd2f99a46f9d3e784e225cee773baa5cefd82236bb864ca6abb1265602ea4e1997895b767c14cf2be71741665917970e8abf98a985f99891ac4c768f0da57f6f33a219e93cf2afc990773d2845d7e5d4f2081e41efdeffc406b5d154b10b6018b55d3a5f669588481b33f47893be88ee9565e56ae028040cdab8a28a330e53741419f9e7038add664a98ddc2958b61f327242e10a5b0418fbb9c0597bdbd49c98d079ef6b4df7ed71ebbeacbad2ccb212cb5f5c510a14849168dfe58b940fb9ba5ec696cf34c5a2634a09f259a4ab4bc0c3d1ac59d5f0651eba71eb590dc3f905c7ce182a235367bdadf4ecc5f9839baabeb0a085eb74e9393fbf0416e9df2a4680911a25173d8acc526cb3c5979858d05d3742ada5cdae4fcb29f3e33a4633f8e83d016e95fe15f3a46c6bbd995da7fa20e739c23bda3ead9102e9a610417f794e92a7825fc6f10c40bca9a9cfc849bf89dbe9e18b10bd80a8b8ecd2bd6197dbb77ea85edf15064585b184d2fab12fee0156c6b7a9618b1cafceac96917a88d7848bf2b710fec671698a6432a97affc21f325f929deeef25bdd569244b12e8bc5d20a7fee978812d02112eb6851639dd1d94828b18a8a4a81c36ac86eb319bf87059e978ab482a686e98e532794cbb078e7d0ff27e43727239a54bba86f4b394ab884530b6baae9a84faa60e119ca382f42c9df1f971d6572491b4b949f4e954a023cc721bf2c9a9cd6b9ebee47a96e4b5a9cba60303d07f0f7e02eff9d71ae39a67fa89e1273fb6391e47e0c59da486ef8712bda74438004db25fc7546286a91249db4c815d331e233afc59672c08f973dbed6d08da7bc0a5da113fe9e7c8c2d8c43caa0fe7a59370f607a74fa67b342fb8bdc5a1095fa0d75febfe2aec280ccc7d959e750a3c1aa9cfeb6af77764774925c36f74fee4c40dbff3a1bc5a61e4c3ebd978e9b5d6c29967b581100d403c85f7cbcdaf33abf094ed43278c60f7f53bd301ede39badd6c0d4a4169dd7ecf1cbe475691a8fedfe9ddd323908590baeab64f2e0b87c29e5a4df75ebc08610592530fe0315c81a526cfda1121160de936b0cf30957f3044e28d25b034776c6d61afa6388fe52a79e904c1909263f124664a4f4b0557347c8bfaded4164074111b1a72df54eaba48a3988830ec31c8819d64b3d0f0e6d92e346afd315c72b1f948e7a0a22f8d5156084a5a20e152d80ca49f44b0c88b4a50b9721e27a79edc82f29cebb501619399cb4cf4cc31652d021b1e3e9ec3d5decae991737a25aaa449225a69c0dc3d3fd58f4785acb02aa994586662f3897b300e2a986c7cdfd4a5b9d1a67e8bf36e6cd64e8f9885c739bb5dfdf88449066ef18310d1b71184f0f1e226dc7342a935a4d9b7f1a0b998fa93c0ef0cc72e29f21407be9236434736135c9448cd27b6c1a934bf9536650a08cd3bd008f7fab96e1e885f243fe31efcbafe8918395145e0c55fa65915637bffe6b1fb02eaf4d11aef41987641128b9c90985a1476c5d63fce35f2306e6c5338d8d640e980a18a3f7ea1d78fd9fb9bdda33290b79897114fdc44696014f4ebc30b64f32e92d8e02a0fac03a836761435bed765c928bcab6a38225d811e28649bd172fb5c75be92f40f6f645005137e40f664af4da3079598e73aedb7436668d7a20289ef6451d64eebfec1bc17e2694fb3df15b899f3f1ee898d8bbd9f21d426c53ea99ca6f81ff0e5056eef77b19bad9e39311f39f5e71815e1a22f1d4165b930da73e0387a262c5161b93587250af0f9d10e83e7a6cffc5c95f99fb5887c26da3cbf2b4450c1c2a6cd35d6bedeb33fd027b908eafde6e8afa7754ab19ff89e465218b743b6681f00c4e4bfe9da7c0d8274071ca06f1c82045447e72990d3d046df026b46eec25dfcc054798851999bc5cd77e69431c7e590a6af550f52ae60f3649232f1543e588fd4ed525eb3df74cf4806c48e2d5ab7435da075f541ee5e1e15e67daa47f18a642fcd7e81c3bd9c1f2dd6708a8cbc36d8f33f32c789e805d4181e66c14cd7543088dd340d3b16df33c2d098b737ac375e675c49bb284f0972092ca5a04972a3e9b16d6165395fa8a353dc3d741c3c5cf90c159e10f8941ea3b7725ddde9ee8fd894812284024a639028e196d47339ed944d5c032109e4a481f9b41be48f26ac5ca4007983631f05f3fcf1304c2236deb6f206969b4375a1bb319c6e435a378d756fca437429024ff62f39b7231ec71303cf43c285403012a506b59841cc64f8cbb1ebcd3799fad0fe8acb94607ca720679c5cb3040818e000a775e04c3710e2490a561620b4e4d9ceb56de6721b1f18280c3c3043a41a54375a035c212552e45b984a507398ba73a548e6a6b861b367284cfcf053d6d8b08c7dc2816b8bc9ee7072b6958177885155cf7e7d47c0d4ad8d7cae858f70f50da56c13717b3c4b7ba79a3b8fc00dbf674bfe71bffb126eb687fc48d3ba2cfa5c575d87545885981a0045b3e56c7b9836aff77624018b20f6cbed29b92f4c6f39a640e233e0fc241e675822785a86d6e2453972cc1f0b2a904878cbe3928569dd2da8b24712aaf270f7d57368155ade0ef6fad5edb953edbbc3184a5d84bc8ec1d9c111d286aab4360a7813109db308ac5e536eae7b4cb22607fd74b244a139f41bc251f7be1c9875cd4faeb21c3eb01372afb772e164db7eddd7f83cd8f9db75aded8b59812c6d732e7c8d4a443d8eb3701fc73378f0f82386794caf657e4c240677e9b11527959d14173b60ad8d80f89d7518bffec2e2e1b7ed78098ac7fc2a7f619eec9756d4ca159f2d2dc301351b53336515821c7611efc071e798a4028494519c7d489c4efc5075787ae9dd42248d4bfa913576519b1ff6666357ef9d899f32ef2daedcba14cc7898cf296b75dccaacae8120e604b5721cce292eb5efeaea99c81ca49fda3fb10dbc147e52e133c8da3240d0d34a491631c8569fa8af8949168b07ed2d54a1df5a4a7d70608f2be9f7a2bca4216f986719f8e671f90e1cdd06d204ebb5e02f1fb8b653e47154482ef930ce37d0e7350cc2359ffa27871003c4f32f2b1acc0e4031cb891c4e9b7ef36db5aa8f268a0711efd328c1a59a0d18be4ebf74deb681de47abad797b45c6bc0d5d7a1dc6126507d3cd24c37c9a87464e77b2ae494afb9e3a3700fcdf0b4f3e1355336d3dad5190a7213438a2b4ca0eb3e62595878d4a5b6ccdaa6cebc4c8f47d4e1837c46a6b1267da0843076cf5a661414a73f75a493994b8730a4d26dab41f3b6e53817f24c8d548730f94196627e6639f0145017c5b8af7f1a29c015bb69fd972b76f639cd025dbbdda4f9dd4c7906f234af488308e7cd3226d1a592baf82ee8a2e25a1a3217cefbee65d5511ab10176c3f24dd49f5a67331a5c342a75d743f84543b139aa0e932e72e96124e7071bd55c35a0dc85c83cd4825531a198fd874f539a62b5839800fd7f04d7e09980cb7482ee1e496aae0bd84f84a444774ee8b585dcd3ae747350bf3d288cd67d6dc81c5078536cf5ff6e12eca8f998bdf900ee8b3e909779be40ebef2250ff77da0869a33132a547afac071e53180b8bc76bf2e4e7bc03300f5e55672dccc912cd8bd669254fada4330e766121e71897f84d247d4f5d3defffe763a265b21adf6036eedef6cdb37a930ea0d3dc503e1717fd296ac982140dba875a82774bb698d5ed8b5f0f8be88c84a9fe4c776c7639d79610601fd9f634f19bcadf470f37087573117aa8c510dfd7d7ff1bc6fbcf74176ea6b78eb44f7057a7b8d445fe47c62b8bf159b8371521bdbe747a7eb4c4c734e686476cc1ad62872bcee961037549bc0456a7fdd0c67eb57f1d5a5b22644134fb3252158d9d73d9f15c44092012f7f020de714c31ca7739b0c2ea93e2e215e2c6bf70172d83bff07f2b84a82ed895e8157635595fe49cadc1a5784d46bbb3039ccd595e74f674b7c9717ad2fafc24521990bfaa7a13e37968e4b862469f41b57b04e2c36d4dd65fa4727296f6495c4b156d36fc5c885920a281963b2b8cf3dfdcc82a5430f6375b56ae100884767e8a25e36f21f3b09cd8a271bcafaf3cdaee38815e26d5940eba4f0ef48a57b0341e11f16598663dd982113b02c84964b6bc39830159f6c17dffcdf8f7057ab69a82fcc3965234f612699ec740a9feaa8938595721779de40cb07c6b56071feb4f4537ed6dd87c0c3ccaddcbc78bade2c1eddb35299e493819c2ae9e87d8f9fb815d9ab28413c8e997cb2fddb68eb49e8c8a1b513849d79332bc49346f2fe33726f1ba66bd1375f749e9d68090898e60693b3bd9ce945b561a39fbbe2e0180f6f204b3e92280660d494777183f0cee8ebee78a489e462baa316fe000c770e7b53b0581b377a0d537377a3f09db4a77d7d8c9ae583eb33c45aba0e6a6c055cf93a6845800e8da1ec7625433c35d89618477ce1de7b559fbcb310cfb832ec29426ca78f42f40bcec2ba7ec447c1d7b33a0cd810c0cda0063854a064c13deaf9152817cb4787f76978436e2b5386cab91e41b943ddad4756b92d0492bb09452d4244bab43ce85db73b725cebc91fb620c3259d32fa4d545685c7a866747ea95556788292d0f5b2ae146c74b08cff260dd1c81b1abb9ea64778039178bf3caa92802d7ee1cd685fcdae4f41de232ee003f819c7265a67beb8a600718d16e73b22e0d2919d22f024be4b93bb906035a663c0419442b4a03fffd7d425a9a6fd2ec6b82b0e6b235a22a8ef78cee40f0420ba6ba989ffc461b3931024a67cb67f71f0e353aa7e67b6698f1d9c7e4daf95f2c6e7d198f0984408944053386d16466c33135a9370fce0c4cd1c9dbf498d8e9bdc3d82d0526df2dd753b89efcbfe054ff44c9b60d703c9cb506d9365d2245f9ca23cd687b6962f48124493294d1037d88d83a2e966e4d06db025e12488a34eb0b63391b593deafe2c3d8ce47f418d1e0892114b1ea30cc126c3cee0b2b6b5d96caf823f7172bfc70cd656579e9fe48aa64c3c157829b768a9852fc961b8afe49b6eca2269a0eafcd2ae84c0f149fb162d0aa7c3f5c89ddba4ba5b4c7e286d4b825eb87ceb3f00f6cee37298a7f3d02a1ced003242b143b67c4fb6305235092c708aa8c97d98b3c9101b6326d4b602574349d29992fef0489b679748b0f2a9a6bdf35c578fad37622e968565453c8add5daa6a16819211ee3b8fbf9e1fa347e4b891484b63638115d77630c8a234140d37dd02b14f9de5a88081bca0f8a66cdf3fece02f0b00d5cd9d707a4ac6eba5edc2d59b652c3787c8cebca3bd0359b007e2d3f37eb1325745d4ab7c5df5275e422e75274b6cb66aa7c880bf0359fdf2ac604c6c2af60441eb4ae7c2c80aaf485703b32ec4fc6a44d43b4bd2c281aacfb7e340531cbbd68909063bbbc5905f506644028a7b32514ea1d49970f4bf465be259b02ee0bfd25a1c5f918689e3ecdc215cc4c319045e18d169aab60a4f99c42b14efbc32412b019857b4d1b354c291a9373417db3aa402cf424db03dd7b2306fc19be6f0cfc712c826f910fffd5637c8280074dde43eca0c1bf67e2340fe28f8b4051ce0cbc162aa6e90cb3650838ccd8c2b25e49d832c998daed01d2ca575b6c7f273dbc87bf46e0caf18b8db64da0c8798b9692c1ec285ece8197903fd1c8ff6d2ffee918ca0d07d706da39e2da7fcef22103ff21a9eabd80d9f71b6d398885578f4c03c96350a87e9217a329e3e9ade7198135098d8364754da927e20a2a7e54700c942b4a548bdeabb8f322ed58cd99c2110091990980e31bb95bf23e5fe30e115373f006eebee5b8031f701c3135f8223693d0cdc7f54f661fa1cde8ff4bc0db6e237195372d5a7f787298ed0ce256fce429ad67d8c39d44341a83ce334d9e9b34d87f9d8fcf15dabf6c0d44ec09626b4b6ebf5ed55e287a4abe824394cd05726498eaed41f5ad48b0b8fe62d1a9560bf92d7d77779b54280c6e97b681192f28d9a81d9aac7968706b437e6bfaa7ac3274335330817b5f2fcb1fb937df87a46e7eaae37b906b8c6f8eb26c4ec65fc0e954421d957bc5766009dcad5f8e783f7c0d839819e8308df2f1124ffb1484ac9bf16766aba72fe6c16d0009464ae744b249e5537dd38ef2ac9d90d7d97d80e28a7e09590a24933c45bf512d60da7881df2a8fd0783566c4239ad7e015bd5af9a6850f53643c1cee7eb5e85c429dd45a23cac02b7fdda3951c8ca30cea4f725ea7d301e3dc2cb888c313fb5340ec5547f69f6d05be2078498e2475f7210b43d17e217ac50b4403a33a8b989e79dc95e891b4e0bc971f8a4fbe6d55d3595643d921224166382db0befb41d225e106436a943b764f4dbf1fe9912149bac0cf7fd5b0ee7104433cdfdfb75defab78066eddba2218751d1b3425576c14f4b14757b3159d91c41585ccdc8630022b5cc47292f6a1f9799e8ae5aff6ed92a5ae546803ad3349da7ca1d547066c3ce0abe1cac17bc08b9e6da10614ae82621807b4e5f8b6861337686d65f3c5d6dee9a896fa5c97a3c9452d6537a289c7bff909ec2560203dd39fd04a5397977cfffa2362e21a44206b2a075bc4e225709d4f0690458e1bd504c6e0bb2af070bd83007a28779e7b64106d7e6db2ba988b519222b526168775c420d71803aff6e0f4fccf9d0d6262b30f7fb1ffdcdcfccbd1086334b6488f1669dc77f77c753a987c1ecf4f7c645637640b64bf51beda04e0d94057ebcae358377d136677202b9f5e37492aac26f6dc52fe1712b52f9159141130e2cda4f4bb551846b81d65f5247e3da14336bb783898f6cf98c8f3957a477c69d2706617819d733bbb5c68a48a74d329a0d36dc04190e12f186f8af31dccef37151defbb1983d51e37485427adca1ecd8c46e5ec6b67e2e6ce03e76b327069c4bdf96f9377dd22e1f95f3a19fb4b24653215ff6ea0c3a822f754d2d6a645b1b90ae599d89a6dfed824a9828f52c00a0c736f2a1f632a890c79f7a543842c779319c405c74f044186c870817da4a7fc005c62b94ffb77cf59877bf3c61f7b147378e249a35fe2c2e024a8b38c681a1214eb60e3811a1189cd517b7133b1ee9c87374b73c35dbc034cde9945f8e3fe461f52e9f4e5e3d5c923ea0a60e8cb39233a4592c33b515e822a1816ce14ee7e3207ef01d61862e85455d080df86f87d8da3172cde107a78c2270d80aff07ae850101fe00976a2eabf310ce6513b8d1ad05432c84f980195c14c06fe23f0d4b9d497a8341c20c2e572c05546f47fb86ecf28a6c0bb1556b3f903b102a60e37fd6b7906d9f5becd5b2d084193e6031ca541fce69d407d1e6cd5adf62161c603808979f30466eb5f34faf914aae4badafe137658377cfc0e55fbe757d179472919fba5150aad02170dcedf466061f1d0a9b23004fb2484604585442df6e3ecd8e821205740d116f473e5165cfa701b6fb32c9f5308ef8a5b766d809d5babc9dadae5572c865b0ae426f6b5783b039863ef5b7fe35014be7bf2dc07adff22e1c7ae77d30e0857490c1fb09ec1c3eb32f188e76c53c75d67ef3ec03a911f9f86b2d9b5c0f0ed98326b5e27f246a4639e5d3ffb8774949735ebb45bd5c989874d09cb42e844d3af6d778352e01e14948ee5bf5243e28854e193328f0f6ff5edf1ff470df1dde17edbe422a228993f38ef0cb6c5dcb005b4152bfc3c2fd6143f90d941ea3937120a1e2fca011206accdcf20cc3ee32a2287563c05f0c7ddf92cdb5534a2208dd26a480eb2cbe8be7455f54cbcf186395112e09d86318c762b5b4e97561a98d755aa214ab8baaccfceb334d4d871b60fac71d3a91cd9e4334d603dbc896690d5bae7b9fa1669cb4713f8595829ca339bcf6d18a59950462c82abf415373c9f3ee08ea2bafb1bfb36c06556faa505a2b7bb4f483c3887b65217032458d4e3ce19db66486a9f20a2ac7fe2b8cc438183905f17a01c297b505fc23d6fa646c896ec34273a817deedaf32bc70b0b9b6bd764f3792eff7fa5ef1d42250add980d930432809be4ffab0986c87c225c267ce932f59997a4ac57aefb7653ef15dcf0dcb8681cd1532cf6984857a696c146bac576ab2598623f1770642bb3c342f97c06bad1856cffbfb8cf820f963d2670dc697822ddc4869e72e37ae4d791d4326d9ec04811f047ebe8589a17fd54d374e48546624ee9cde112d9a4ffcc47c483edf51a1b87db886017d2a4dccf720495a6317836e07a3840b6641cf4001569304e110d3ecdae0055224fb17f632f310e6920ea6e239e25f9d455c1596a925a506a7d3e312130e2af7cda83571b11ae44bfd4d8add15abd077694726e00ca8b7a4b1fede53dfc820f88ce9866f3f2824ec512a740660f0dc4c7431ba2880f1837b357c5a6e715fc97593fb243682c2005283c90afb40c6a0f5e82044349f16b79c63ffa3a0da4f0a4646aa9f2084a95955e67d33b329fd32c89073e6fc857e977515654afa8646aff4f32f16c8b8a66a14203728f6a616e380630367adf2c7b1a2e93bad9ba2d868c020116b28cbf419c543c45047ea7745a3c6ee92b4a8a0df55b1fec18dbbec4bdb77e117742f2a60fe99cb2b8d2d2785f4142481ba01de4a30eb9a59d0ddb706311f74c9db81d01c3cf74e5293e209692c1618f0514b458320f6d9e07f5734d7d9b3c256b0b4a1c905165a6f3d50d0b40e70e420f1814c028a76b8705f6813f036268255de71886478b0bf476aa2cc2ea41e143a6dd8108c779803ff0db009154b6af1b1da784773217dc6596ef517d63a14d92ad55cb04c814f7a41b251dc87a0e8cffd1d29b02df34a950ab07607553e026daef244f46dc3bf996d7f43971e109a749d3882107a9dd752dd311bd36066565fb2d24a233b4ed42b24448e7b28e65e7c08d1b860123eec5b8d97f28941afbf8cbe6214e6f4d71302982c2eff73c2d6d4f7de2e48b57797f38bc0aa0cd3c0350095e6a7808bbdabed023795980048eeb721b2fbaa9c32045719fed5869dc66deb70788eefa5143fc8f328c937e6532dab5379a2ebe93fff313718e2a326070d4d187c1ae54304ddff3021f328544110ffc8594057f2eacf0dc3f0fe9420cfb59f20c45c588d2b533309ef3f6cfefb6e88324607beb785af76b56a54b33045b13b01517208564ca92c1d91bb31e67c88748e160280f5056faab3a2fb6058e05c52067c2e48c98a2f9a237e5b34ea1f0763459753e1fb07e6cc9e81e83a9bf7719948ec8373ba799da0a6ca4724a3c2c7d7c5d5137067325353dc394edf60700fa49b17f978ea130e4c838ffad52b4f73dfe357b6389791aa7fe06762cf16ca2c92b65f3febd03bcf269b1b2bec20b41adce0ccfa67cace17daa9a7b55e5e7785d5f1b2c1437bc30ed94203548fbd9db743afb15e127264260916e83202639b17b523f172ea95c8f4e4b257d9caa71042b11d83fcf49d8d22440e4c4bc5c05e469175db8a206ed24a1eb32ebbb67830a1db73de1586d62667cb23cb1ac737029e070e4b2f2e1486356ac104938912eeebd82be4f87160f05ed9f9e9c7eb69a6fd9fc64cf484fc6ae9d94c478b7b76db89b034103b7881aa4a8bc15e7c6b74de979a4a51d3fff09ca1258e1bb21bed44b1fc1d2f699187137077f5ebdd2822dbfa5f8416e0ecd1f6dcd36b7837757d1b8f9870c6c0bed26ce849a584e692f92f8387e7b748108c7ac4149c53514c804ff6d6272fe80644336906fdc330991bb261bec0e4d8ae0f01a0b14018ce25ec2a76f0b1a99d69a1f61874821efaaa8dbfa894879f3f59d9bad4c830351ce565254d5df7eee50d4239555f826d2ac6d6e6497178959fc72aaf12d19db3b24781d4382283733b2df21ce950d0dfbdfd6e59238a9ec557610c89b30e920d9d65ffde844e8b743e5170095ad6cbe376e666e6a6d61295447115167dbfd337e03c3abccd2fbd7be4fea1c4947c064bb87cc4de2f663605ed8488a7e73a4474c9d6cd7c532ac54eaa84c53abe3694d76e4a82c06edaffe134b7a6197ee2d3f2bd5b3c25e3e687dd6956ff79d0f4b0a557836369bcefa3b44b57ffead167a71e57a6b1e3337f9da51bb3c92ac9918cf07a4bb06772355edb0854e7727dcd6556117b17729e23fe6010141bdf67a181e3e2b82e1c354378f9c07a889e03039885e61aac1d11fcaccbfb376b25bfe0691e32f32871c9e9acd174f65f359be9d9b679ee9ef031f8f318e9a18a37c61611b73569060980665c1cbe67323a11480b293a053434344fe9081320921686579d28d0b687fe4e39a7f5bad66a46960ecc8028dbd5b177bfa4ca9ffbf0809193dbae1c7f4216c219c18c0eb24ab85848957c23e35eaea65b94968a9e3f90b7eeefca7e9e4b11a2145533420b1f04126667abca9eeb9f97ae146e550d210351bc03732bdd71565febe9bca44221df3f3cc0abac93a5e3cc0a9c8fe051a9b0bf45d09cff2c9e812a5ccc3fdaa7c35b9b4862edf86581d25619ef2ddf63f84a409264f418af8550e03ad681e117e12e9b2421a3a2c6946a72e344156eee0c91eed910f9acf21921ba3c889f7dbfcb6c3f8de816e53fa52e3c5e52e0fe57f524f564fc7497586eda7bb497d8a76045420eb90b895705967fb950454bc8821f9c291f163ad1081c3e76a35c4b5544b0bc6317b5093e9c5b12bbc796c163c9db5124e30499a6bb60c026381f7272310ec2fea9c790c81b1b767835d163c5d068b9f99ef7547a7be25f62b574ed79317b89a85978e030a41c694d4b2753190db9e8a9b38565a929b4864f4d9d236494913ce407c28168588bc025f35f7565c462b90b470d9e7099c5cd5c2415f5c2923b2d09e48ab76ca1cb1d5e3845f8826454ffb8f85f22f600502faf020f3ba9ca7a9edf585a5256648254cf3c5386d9e613326d88b4009f14af985b5e5795205212931bb3c8a4faa8deaa805d1d529523cee3c17ab7f43451afab8629d97530f997124098340ac07c1d17cd14c82ab73b87221608e234338b51f1fbb18bde08f69907168c6aa1902f2a4c479693a1a4df297f44885fdec1902fc395e9cfd31ac57b196e2c5382ee96dbf2bc2a470e15f0b7501c53e595f3e8aa816687a814b767288d0db88aad4e5cbf9ce8a3558b6e30a732c922cb1c76fdd26ff6df87476ac80a7744551f8d1097a063b2f8f6476f341565a871072cd867c6ff23917a9cd489ed06f08b705599f62ca2db3dae551dce77e56adf21c67729ad0183d837fd0be363527f8aafa662958bdd15256dff909911dc429522a30b8149ec4c3a64f271108bda29994a5e00dc60a80040cc5a925d0aaf9f221ee093ff0f7003b02e02d50462670105d8b8ba4ae35d3bfaf34a8cdecb2afa68febea5888cddec5b662df29125d83d765561918a75ab613d48342eabead3a79ed6a6a3cd3081c3dc8bc269e1a7216d622307e501105bc1787b9ef8c8b58c062a6efd3bbb7d8afbf4a5816b5d97d554a643e58f552eb1c04f17291c59511fb871bc08c451b2c41160f3bf9635bd44c7d03c6815386befd21e4edecc1f9a3b44705d202590f243cbdab726cb0d6b45c5cac47998517677165cd336be282eb13c385e9337013703296d49ca21163a554350b386c6db16746dc1b0af093477f78569bd03d93752ab0be1ef7a57c61f82022550b1d77aee929ad7739f2e0b3b904cf8e96da8e699fe42e400e046b1e46117f235a9007c8afe9ae89aeb98f02c82b2971e347696676e910aa2337d4608731ecbfe8853be28d4e4e1692d331659d0f7647f772103fbf981a04a8f4b567d8eaa831616ee13e11cf5a62ddb0f2ce3b8c973a5b24a618ce6fb9333d6398fddfc724e924888ed790c3c6a0d481556cfd481cd687a3edb2b180d3ba99b4389574bb0cca67d07d69ea7e8801084035364f7ef62736f2f1f91f9cd7c81d75c998f4595f33fc40ce108d21a1afda223053af2a14ddcee1adb8178b47b355ff31350da3fae32ad36a4f6b2a20310c8510e07ef292d57d7d71ea79a0a8a5734d95798d0ed35e887020d1be08a9084b1d1790a668bab8864f22cb6eee71a9f7e7194860aa222261be075b5561197d0b2b0847e4ec011ca8436132716ed827427a8e4c05c857099965338389079d525af8631ea62ea7c3f2f8221ae2b6533956a4ec5b72476c20ce85385fe1b76a83526118d996ad2f6d70e1b74bfe2b4047430d4dce5b1b0dfb933e62cebb2dc782d7d7ae4e24308f6083990c630455452d667af06b722c45809a57237e871ff73a86b8504337ed3f5b7ec21ecd91e75026f51a3446b5129d7e64d6d2336c209f8c0f78466ea879a0fd520f887bfde143cdc0f88aae7cce3a9ebd780d93601fa3d1749a401d082398d633eb9da86bd078cdc1a678edbe4cfa49720e4ad85cf9512cf0ebd27b50e33487a0fd3c81e0c21a265403973a665bfcefc678acf0a7cc0b5d81d26f5793d10588d13ad164952029c45d951d52380a19618d98716309d6cdcde6ffb0d2490f7c16577213ee1a85fbc5c1ea04162766b3743e6558a8742b92c0233649320b0507218a6edc25329893ea952315308deac64ae88703c697fd253a4a4bb542f17a7961698c5ab50807720aa8eb39c6f667062b04709fbb33dbbbd23703d089bb94d1627b087e63fad1b9bcbf0be678760a1ff60bac1550f8a4b5f7d3cf2bd73075092e28c408bc0849dd4d2fbaeb2520449337aa178b29c1a88d3499baf961854a64d3ba1e62332abff37d2b6ee18d9d8555ee1e8e0c26034cc6c7318fb9d9888f08a712738513d29d55f572075944e46bd2490a79bd063bbc8902542c60e688259305afe537ffca43917feb8c940388096b003f4cf133277a96171b4899e62911aa17aac1aa646b13a13bdea7bd672a51eb310370e3890021a1c35772569a480977d970fdd3a0dd268f6ecc915813ae30c9101cbb88a504c19af928b58909ae3ae388d5611302bba3250fa96953433b553900e6399c3a5b3c2f3a192de0bfa0ce3ac405361db67c8ed43b7860e2cd70334520c61913d2f092f46b0782eac327d63784944a1bf4b120805d1f02810b9a29106d43cc154dc6aa672cd552c14fc1b70bced6166778d6a9e7ba5433e3472256159b292f465893ef506d81ec2671b1995223588ac9fa51729eb53e5df9c880eb8e4bf2ec4a162adfa2798a9aacd2a8494de0f946279d6da4d808ccf55452ba783bd41389c468730e39ef78f36f6155a8b2805b62412f43f93ead7808766a9c479f31db00ab138e40d10439f51443e4d77502c1f79775a264300232276b962b76dde97e5dbdabe73d505ca81c59367a9b555dfa6000465f3f8dcb6e94b70721ae44a80bc9281c883c0a74ee57f96db7ee25ff5e4876d11aca00d701aaa1e0f8637b5289c699ee06afab0d9b324b26cef1f1e8a95736a5677f525e99ee989697f36738ca2fb64e2ad727a574edebbee7531226b21cc7be2928907b7d871789a1cf8c85edaee08d366694161229df0790636eafbb3577ac3092e1271fe11d75867ff2e7500d27149463fb6a77729c0d4ccc38656a5fefb6eba350b18bbb9040d922a8a01451258d78f2fb7e32771416d2dc4608c5b4bf5ac5643711bb12cfdd7d5f62a993fc98c1d5eeba6c4af99ab91f7be3efafcdb2bbd249ff8d3e2603b3b5597a8492c0303b57912662cd3704df5254a3d9ebef8d2afb7f68d753278a2a429a85749dceb4b59da549aa99ed3364a5888cd633a7fac8afd53bad49038c83bab6676c591ad9a490118313b79f795d80a7da93e157a54c3ef63a730813640ebb71e99bcfd5160c94799547900c38d8a6d141d01868789c117f0d68a6a92629139035d5d2ecd96cdf2a3b6557b85fd7857c29d812a95d7aeea6550ca55c6745818024d2fee8e80bbc2343a74e4f8dca89d80edd8bba9dea3ff42528757247531fbd20ac20fa325ddc0e8e694dd70aee739c2149481ae654e5eb78a6bab29c1d2444e4fa6e0e17d85e42ef740862eff7939ea567280bc0911105c62bb0f432d06b23b853a1f88ff9127899f0329627dfc45965db6f29e43638ee0d2054c86c4cff30fc905fc3b0027451f071e21593ed0472aebfd28e1168b4c464465348180dd2342a0c0cb370960ff641ab9373cc22eeebf6f18f78d2e415ee6af82832c553a2497ecbc6cb2bc2255250530eb3aa7c62a3f9c24a179a478106bdc726ce1b4c149f1d788fa3a8546d763d4bf9d58dbdb9d3e2b189d1a57451f8c08961d657d125e1599aabdbbe410519c9ff71ded7df1e22f5624b004167c7a0cc0f6715227e04029ba26d63098cc66f1c3cf1ddc8d1bc36c96245238c0ee9e462e39a622ae41d0d36b8c3b7980ad7525ac5168d92b7dd9c6b310988b53ef57330c5a3767ef0b0a2190c8ee126998cb0b4c44b406fb326b4780b071c6816d2db8eda025858e7e5980fabaa47b57be9e4d1adccd116501c0666ca273f42796514afe2cc4e8fa3d8f49f24335f8f4ac7d87e05d7211f1db49039ba300e6434d4bb1d6ec9f94df42d3cdf9e400990840d14e4e0318b40eedfbb42d6d9a5bcbedb32a3af5c05a5fdef852ad1f421fff498165a67f99d4e3a13e6e24f4e9e7200549a3a8b47d02ade325db3f4d32ec5be91e6f1fe5d238e1465019c2e846b57c064e21993467029363f347bbc88c56f9025463710e898c7907c1cbdb0d32f49a72e6933decea964eefdd368688fe4216457c36dd91835b4e8e5f8e95d9097502143e29f78194b4a771c8a42530b31a0d1ea242d07121b4d085f023f2a4ad91d6ea8eb77d7dec4befddd6ecc373d5caba34cf95d97b5fafd2ce9291f86cbf64894325aac6ec04064b758c75b0290cd8ff0150c25c2329aca5d61e6025d963431d3bae2b23e351a0666c429b2048f7f5ee8f2749ee275ad5f92a6f9735a2845da6f40511dd01d1d8232fb0e9907e89a5d2171cc688517c63102a0b6c06aba48ad61d8b346252eab22ae60302a30224f49ea00ab023de9a2bf807568e29a5cb2b54dc76b2ff9e86b29ab2244dc146e1577efb29f857b81f750590d5d3ba6ce5126feb4484f340bf3844d719c4bd15063b98a0d1f3962d1c300b4dd26f630b4eb0c21a8823d1f483fff49b6f2af89dceff3b94d742d72366162f3fc3ac38dcaa343c7b5de06cf9f05fc5d09d865c171d86079b0c3180eb858fafa81514fe677c9bc21f5dc7b7b6e204ca73729839ba1c173e419a8d9d1e4f6f68239af8791f79f076a5f40216133e59ba5725a424606371f124702cfd1751374c3d312eb97b118ef295edd0c53e233d4ce4d49b9201e3361d29ed0e72873b049ed751bbd52a042d44e2604baa3a8f92678b96a291f049a04f3491ee660650d608e2ac9316414cc6f2e9c737588280e80528fdb8b13b655417c1815ee746f1a8918b8c50fda8e6fcee7a6dd68b79d9becc771f0bba6f380599aafe6e5d3f38d7a67a4d6cc17257d1305463144b5acbebd3e85f219cc3329c24a5fd653075fddf14f05e56bcca2e58cae5aee1d1e942dca9f19e18d7b4c5470cc9d586f48426bead96de4b4b3fe8561186cf117f1f29be750161eb342799f42699e56ae69d7dd23bb8f02f2257f2981c1fecb2098d04e7b293df41b269bbc084eb74e992c36098b5c6d23acf542f07e182cb4171eccf8a927a6af401f933e9d372d518a216287c5ea9a40d792c989836b13ab39fd03425821b77d81b247f2525b0596299af42f28efa0183fd7f80e9760270f9ce9b34e25bdffe85b4cd46455409ee74afcb2b2d0e620f2816ab3be95f85e3620bf1763ab5d273d5fcdceaf061563d26b87d53272bf59097581bc6a4e3bb98693547a9cba34d00f927731fbedbf68da3d91220f1a03272f96c8f18c4b81d9aaf45fd5c2439f69b9c29e958cd4a629f97099942884d3406cf037900a51b2c3196c4bc1260f3128c0883196bce0ce213ba56136715d8e1e621024c99e060a6a7fa33c6d8761dbff415a81acb333e336e76ec316f889f8429031f8d182b2e28ef744157690c86bdd8f71adfe961142737b5fade77ebfa916a2345762213142f99a3912a5cecfba7479c18d37f9723c6fcea0ea0e56f2df9927f83a554ba277b21e3873cfcd2273ffe682c1b5df34a0758914af3432a6a7838c2efed0d72d0c595465a66c07bbe49c2d261729c843b4767c0db8956a2adb00549c68e1b007c64457946199f90acca2414060ce9c25e68774b94c134ae120715319c9361ab2db28e60f5e0b5aa656b35a64f835a75e545b61dae74898f573ae6f4e13e5d2cad8021e0238d7babe30c89ddf78ebc57ae33c301761095abea67498bce11ad1d77b0abce09fb8c91917d8e6ba054fd193b0ecfd10b208e285eaed1f5313dc2e0db4938be18978db3503795449de9bd36a8a4646c2f65e408787245f688ea1cc16867dc2c07cdb50c67119c72fbc2384813e73fb40803fa468c6f9f081efd60b169e574705387d0d4a988378b6f077f265bee52c973e7051b71624c802229dba3eb65827452d5b7cd8c665379924b4007a291adf58f6e1aa4337663e8137df5e5caf8c489e34ae309224c3d8806bdfb972e526bfe46fe827d9bc2ef8caf5a5e3779a3236679644ef8eb8480e85fdab1fb568a6378562e77ddaad09e94fbb109132449edde502f5eb36609761376a405f9a2b4c5a14e096dcf81c133512473b18a5b6ca1a16c4bdb35617d3638518bbc3db242065d939b3279e024ed3b422b6f39e1400674a43ff2d327f15a2fab9d5c938a027c61161fac40758406d9686b7a7cd5461d630cc5fc8a9517505f7e82dd8168b98864bbd90c60464366a3f0286669cfa4c9e55fb098ee47237fe310d5a3e141dcd2c113de55929751dcf451641709a0dc2fc233f1f105f069b91d87d17c424242e3e96e8750dcf486c2897606de8d214d3587b7a74885db6118f24b0ae94bc75a7fb95c05cbb541eabd09623b19f1ecd30955157ae270f2e13e386ee27058bc92aa08b7de36b41da2bc967448a0d2fac50a5df92f8c6d505dd14602a19dfe9c0264076bec8c03f1215a109acf74e9bf56bc6c7a02857b31ca6f38768883b04f8f5bec03ce235e58f6952f658c75d5a1a65468852453b860e9b100d5c34048289439c7d86689c534ae1f700ccf5ffc153a1cf3be6f4171b92822abca0daafa4b4a34b75dcde9bceb310ebf9ab176e41b026dffe8c577f07d7a375f280d09bfea7f82a2d96f339dcea3a1f50b2f74d9467e8dafe4431f7495f4105ba956c637293376b7057c2275ebe99afd89521d1e5f2c92985bb0d58bded470b4152b8abb50771e56e88ffd729dc4fe75a1d14b8acddb4d35583514538803ac55f8c2ce2c85493b57eac1e300831c692c8cdf339749bf9529ddfae1048e3d361df55b15dd674d29ed5f3916f8b82ae479e286033f1ee8b3b9c5acd9988296a5b74b24e6067bcf155d5119be9ed727502fd0aa78b989ced7494596c9449c4584123b2c43d8bf3b46ab7061ffcb22c240cdb29788f192363b61ca387467d43e283e5c6d5a90a91cfda8c0ad460500a864cdb0a0fa8e5d83c6b44a6749ea593d9453448177a8696d72d32d823518c857671549f0397057876efd71179483a2165426faebea7d9c710410664eda231d59b827e75ff6b67ddd6950144235934bef7fa583adfd45a8699f211206963083f0ea3d806ba2351d09f234f18a97fb17da8a6750a6cefa38415df4d06c72f747b40b73a55b8161f4f890d5201a9a6f2a285ac736a6debfadf9929ba081a5174684e052772ad853ee44959cedc0a48ba0b2efd94b801da00a70a0e43cda8d35bd02a7712d1c0c65c1345ee0c6ab809b4ee0a74268ce2ff98d88050f12e78eccbc8af5e917033818f54148fee073915c1b517cb54aad6c5ae1369c40e059b3674daef3965789313b4ff8cb622d7e636dc6dad454523fb6cde194ee5eebde7d13ff11290501efe4557984e8a434a23769391d0b37fc7dbaacd4d7791a9fb6552cd4c68b3a1351cf41aa32782975769f23e42889b56f33a8d611d8e63b53e6da71a88402ea794cfd2426fa8638e75dd8a7e5bb0f538b772f529123d958aa31cafabb8391d5c76bd3a26a7413d1d8a2879c335b86e55f0153bba3bec98622b51b3d57c2d200eec36b7801de1cf7a0adb9a83cc1cb6ee5ebb487af2c281c52001eadfb7bc4138826bd6988b18d6783db456e69d8cbfc227be44767bf07a6ed06a4663cdc6c77f9200b6c5a4784aeb4401695af7bf15a1f07da2bda1b08bc0f57a07b456f1feac82d2f3078044a7969e69619c4258594bb6da690d1cf93e27d425095a29755d030f5da7fa3c1ba78cb6bf211bf184891f4d39498b7309e756c666adad8dbbdbb162a3b4f4ec213d59804b784f18dc48a49438695db3021a9c1059e000e51f7b9d592f540166cff0c34202f520d218577c6431ff4c2bb2c58e21182191cdebe1227f50322f4ce29f0031deb7d73b4734df45678f18f667866cb7316f625105fba3dd0299f160688ce35dccc8f2169c4361c5737311d45da7a2e823d5df47072a6886b2bd0e2f31dc4d3612fa06c22b6432e588d8492b007fc2912eae7d079fb1c9a9ae0f84638048698f2217375ac5937c23cbac4028994b6a0b02811dc9177d629199bfeef646e45e0626251c3b427292aad7b2102bdae5f6762ffdb27244daa424a6e41c30f556c4a8a57046c4a0f4a8c05bc058e55c5ca99cb56fa9517ce72cc6803d4ee80c8bdc16ecb7ad2d622155218b206dac5aefa372430b7223bda223a14fd90400ba334922ab19e5a9d65a76904f69f9aa5887f32a6d99e4fb7c766b10a7c7cf5e8a241799e47d9e4160d23529ef182034b35a91111bc15c2aaa8ac5c4269f1ed663503d15254fbd27b454d094f5c872aeae02f1a4f92bbc3274f3f678c1fb40b89a58b57dcc8236445de782fd9b081d6d10c5bc00d820df6d09893ee7c36b00ce69bdee897a4ed1b4ca721774e673c5856e9a9ca4dc7f375ac61d6badd045fb5eaf9a6584a29e504ae5fbbd0e2031a0af2a5932e48c4383df4a7476a083c4cc3734aef9f3027dbed4ef1cee0ca08fe51c5a560f01ce62faddc74931113b89c45648a23246693146da171d27774ac316411484d3253a965a6b169de8c27bdbcb2925bbdd8783c783e4a7dca479e46ed63d25836113e1b51457c2979cf073a0a7d88bd0911f22c01e5b37bb7625a39d32f0b25a25851347d3987085734c9e0c2f6e1948ac15484bfe3e440bbed0bc24937fd288610cd235dddc2ebd6d248ba10704c2950f4957458e6c0a62e7a22b36d7bdf51a886efc7e556518197208b00454a537d3943e01172f8501bf4a570b4a3c959ef97259b981f2de2c06ab39a8e2154a1b865db61154e814b6c71d6ef22b79260b6d15479efc75dd0eccbf212e462c464138fb908318ffd644dea33ed3150efbb580b365acb61bc5f31fd34f56fc54a305f633e9cd6c248180e4a2a971a48421ac12d869c3577e2782cb673fda9121bb9ea10b978896f3082a1794929cdc1381abaaaf97acab3227fb38100a1963da9f44be6c03ede78e162ad222d29b97e42fb9ac4a2e68e91a1705d1baab28c8d8ffe1a6a108f89ad606621767b34cbde928be87c8de3186c8edca1327f9c02c0f6be4c37270c971e530a42cc72ff4714733610dd980889b3ba011d12b68da2e16a9af1ae23fd33bcc0ce0898cea12a95bd1ac533c43c664ff2c845a4d221fe2d87383aad587e4a8763c92cbe400344f527d51844369de125aabb542b490840729ed8966dc63abf5eef5d7a08d1fe9163f20c9c501cf5bae29f8bc389d068b98bf65d5d509910cefb8b14067bb7e93a4a777ae5346a53e7e8e5aeda0b84d37fb1f60b536b631661ca092b93a6dad96f94d9596fff76320efe2b905925d2618c63c49ded86a32c627ef62bfb0c94a9dd1bea13b913837e2d8fc3772b8ba3cd950539db893a1281087f448db769694151be2bb015efc1171a548f716f8c89f4b219daa09c0e968e8a0c070164cf67d5c426b91b0a0a52b0e27a4948d10b637aebcd51544c24266ef2fc8c83fe746b00cc40f4eee3986e4acc7cda2fcf2fa547cf878fc13079c0956c8901014620dda6bc340107abdeeb81d3f9cf69a9e949d91240a1ba5b1834f2aae0c5cd8cbd618f57c09155210edfbb6530931a3bd1e144cd06486cc3ceedd4564107e33c2636d8eacef724d5ace256de44512f168af3559bd49146c7f46c2dc3bc44e05393158c576617687a230a40512152abc2897d8e851dee992ece74e29b161bbe90c344d2e2f41fee9d55ff217fef431b1eb6c30c49b8a39b668ec868d33fda92a35294e9b3af08e3cec8e1fbeba0ea49e5ecc0dc75278409582727b20c81462feb0573419ac93f445ff40242c4942eb991a29619d5cf60185b5c0ce4f29a9eb13211485ae667819442e306fbe3e20928f7c5f12323b7c0348abcc386fba2b785b5009240421f8e9c5fc27f89443b6c006329094da67a0157cc90b1df839d951ce5976c32eefe52e80114cfc592095492e957e46c3ee0d226b6348d0e1acc260406b141eeb620ad3928c44cebea95fac9245a5f4d6da4451107944ad88bb0bc4b7fd37d04c1f8154542dfbd3c728a5bafeee07a86aa302e05ae19068cfae5283aa0464fc25e84b38398c21d08ccaf0e21e580cbdb0d7ff323d8ebde82237ef2dd4612f9019b984a63be2d576103f43af93ebef7ac2aa4a0a1ae6159858bfc0b6b35a9f285c8070bc1d4894bd05f46f106ce3023e7c1319c7f06fcb46264d355be9dbfcb25fea33096c2e6d9bd34d7a1ebd806fac85b9d59e668538f95912fd5a72f2fc77be890d4c94a0e27cdf2ad2a1bf90dbeb8e496524d2809d0e1597836bedf48c2d4854343c86e396d3c2a43261ec60d8714c6bb09980fafbff7319c3f65c233e07e1267bf4e95e37114a620a5fa31a0094b404bcbc0234b1b73f14cc416d6ad07d36eb01f1d7e1859e83600571e11200f3f4d367db95a7bc7fc4712d60fe7adc5d2801efc5c01a57d116794f82db71bdc0322d7e468a3b0ff9b1d313afbb7f5ef2eba6425a3d07fd75c2b1ea5a5f0844cbed86ec6b76b8ae064918b3d7de463a7e1d1778dac35d87fb2910662dd030d7a357bc9bb51e864f90d0f0e193439648e29b40d2e81d2b166cbff49c5b8b2fd37e797e4af1c7618d7a12de0482ab066d1f79513f56409cf24c126699fc2fa55fd7652f18116480f2ecaa0cabb12e9c29e31c5d5d297eef59bfed11f7aa280b7c373b06d9b0b41410175e8d699dc0b31a55f5f93192812766288f9c8fb67374bfba8d9970e0acc68daa88f84030927b3a221e286adc47f783d862fac43faadc15ed278a42fd946e4064b9bee39f9cfbdfb4c31b3302464fde63fb1f6954ec19a890e0a1ab047c8ec4adc43d58509539e0e4df6260052902bb32524d47853d83f28da21054ab4ece204497c0e02bf331556c5819900b898414064370bf5d1909338039442a6e643ec227d71086c9043ebc5f93e6ff0305c956fe89155100e1c78bfef3d3f817f77fa6439d04e0cd530420613efef79edd5e672f8c4fadbfd1c815a841408aae48adfad2b4c4c5c569ded3e723d9c8797365be4994fb51ff09ff66c815e6fe8fe3396eb341ba8a936a784a3a716a4457e785239b764eea06f8f7cebc0a524d93af00be6ccec682f45acdedfbb3f5bae0f93fbc4fb8002bd343185ea100684404137e379c7cbf46fe3a5f4bb459d2b5c4d04283cff25c1c78339ece74c5d230a8c4eaa2e417ff9f78552941569a51a30ee01b585e995388404b2b135be8121095397c2d63d6cd279a03bd06aa072e8e3a59cb641f1c44afcd8a4a8e7877ae21bef19b6c7fb6966296263d0384fe400f9dd8409bb2a9f00ce77d11e4b1bf2bdc76f36bc9d79b0280d00eb49d346f36b8a278fa5e1b7d74afeb781ef8d5f9bce96e3e006fa6a4be5f41689138071e9877092331f5654bee811d25d2f6e351bf3167ec65750a3283f5edeb24975129361721ed9f050ad0be9a9850426927ba5893c8333cb80b277807d9a937c8edccd1627b3f6ade8ba314e8b3c2e9c50cf1f4ab7e25ddf24f1659920d5d19d4a6721e440f4d2efe1a63bf7b78500e810ed91faee82934f97dc5836cc154991d341a933c3b408ea731519ad9b043a20d9143a0bfa5668af2f7c538e25048e26e5c981632e817475cbedf81ab23c5bc8d496e924a9512ade37d3d7edbbf8e5e822f38c04e4dfba50c1a33033e21d80ada446bdbc51e03fb645ef9208462d9c7e9b0988139424c9e34605718f1a12a4bd5cf449e3172347ef48fc3a03f7288240e714fe7a9ac6c90b3bd3fac7130071b791e98163233c46b45bc155a368758355eb539dbfa80fc2867d7480998ade65080f1693eb301aa0ef6bc9cbc885eae63341b8debbad6abc2522ecbeb638e0bd71141e8cc93108e527356b9e15a09288f0abe693a62a2f159d8f831b33df3565fe73871ea35a720a47abfdb2fcb2c8e5dcbc5948df8217eb76e30c58bdc7755bc3aa0ed625396e02506de2678a5199ccc797ddcf7526d58590dd121a8a3886709799ee69c4f26e3c681721a9a9268a647d0a34e8a5a6049c95d2933e5745fa4037337e727c826d9455f3ed20ba5f69c175e9d21c23322b02c036ad7468764feb369672311484eedff923448aa51faeb220eccf0112dbc840d18f2407d4decfa6eb0d89a8d2847f141564d0abf48ef15a3d841736d3dae2666c68273b5273a454bd50cbaaf667fcf4ba19d51b1196b954fcda398ae8358c7f59f6c0b82ff31f4223071460e358cd7166714758d4e16e8bdfde863f76530f01c075092731c9ef84ff8f9ac85ef18a14f8c7905eb29734402fefb99660c5387245d96d7e4df7be4871ed089fbea4eb97752c8bc115f4b9a40c1e1a36069358d09a90f21b0d6d6058e541d5c6620826ead98863abc867ec9e53f55cdacffd6181ce84cb0a3f5494c71695b8bb5943a9e3f554e6aca22038fde20f88a2c2a08b552c58afb8a8556d95dfe108a17e1c6501530c89911ab0dd30c5662a02acf2ae1878cd3ad86e94b82bdd947ee06352ab6861f91a9c35bb1035447efbb14f48c51195e2123304642e4fbf6446e089363f28190f35990c6a91a4544d0807c949fe6905d324ed5fafaf9427c505daff70091163b4a74942433940f6696ad59b0c584b8b75638c5d313bc18cc8d8c08b8922536e345baf1386ce7af5e7e31ceb04f61b72283b23bcc8323a91ffa571ae46ea7664333862cd5813de1b157f34ae1c8157e10797f3fb667242805de50f6db1c85ea6f51d41de9b516ee6636b1919807deb54726c1258a82c52c25ee2f95651182cf028c726aeab62714b2a77b3ee0dd81e80cf6f92de2f4b2029ecf29c01dcf4f50e2aa7a960343cb00918c229b280af8d933013fc49b932d3cf0a70643d4c8259f4994554cc6a7d01614b6b0532fd9eeb7c69688694d3dc46491edb89364f91a4d05c36500f504660e31c1ed97100eb7b4ff4ec689c0374d69d113bb121d348b22926b5090679bc3aee136d76d4e787692d0e48f6ab9d9853535038f3a373bed51e931862bc63b8f101ae9fd7a63e7d72ba08afc3d83ab6b5a8caad22731077d071a51195011b8269c5fb0a8aa31b9dc6863e2f62ab5408c20f8e0310136d41a5872cdf81a82933e822f30814dd3b61683e911f7a71d6f7109aea4b0fa46bb5c52ae3366b5f3be44e52a8cef9b8cf752e84c22e3c50693e3fbfed32ccf88830a46f5d0996474ce2d811da70fff1574b49c82d8e06a706b15ec568de7a83eec80bb702c71c11f369b0e22f52dd29f64d075d6b2d39f1a04e1d9e133cf6a528f3b3a0b6b68076f3b7073070310cb37d4f2583f67a3d1f9d640ea7014e744b813ae8d09e62bc5164bc9280d0dca5e4bb9f6bbacbb8716302ab1cb1d91b5cbfa69a18225dc4ba483053e747d69579f610dac0bc41608e81d0a8d96463c5ffe1044fb921950cea01349f6fac050f9bcb00f26d3bd0fb7914a24109a33c14f701eefd8ced8c426257968489b368b93e296b9bc15aeed99194f5e098468e5e86f316f92e56de64a6ecfcce8582523edf1e2faba895705ed3057d08b75d13de83e4706b0e8735a6210da1abe48a7cfae98271412724f7ed18b95fccef1b1f540eada7b57c87d9c1a079c4f93e06d4fbfb0823609217dfa951f9e7d8a0f8f6268800c03195eb2f8d086859c143e7d8d28f6473566eb86207c3f21a990245db06ecfd3a7de377d1332326d918992d3ea28b2e8c59dd7379f56e222dce0cd36761934e877642136e07da63f4c948a5f75d86fe46e00ec2552b1a62b7bf6e937a9e7afb27261c02153ec9c1f85758edc9570d153084f3fcb2df960c4140731549b873dea184747df999d267cafde2b690f23e9e8b6b72f3bc77d16515973ebcb6d31770193a5d922f8b889afb378907f4be117d576a78531fc15a165ecad87903c42e077995fca2713cf3bba80c4dcb5dd919c4c64ea0358f35d12297f85f90af9ccbfd408abb7ca8ff1bd28d4e139e8cf1325a4abc99d4e9f41e934c517aca7d219357792321eed24271da861bf7bd975922627de2b7a896e22b3231f9eea8e3b76dd17c5b656a7856ca866049cf7f70f2ff0e6d1740c9bb98f676e29a2b9659a69f3e1fd75e940ca85f76ae540f9ee9b85cd807fca9c70f7b9e5926a3013de420d6b946be40140592af598a8e8cc4bf0ba48182dc669a9b52f363a72b20c222e6cf57dee6d38e3e4a74a384f7861b13e482e92f61ca8a3156cc925f7dad35821ead83105f64f522566745fa4f4bd6ae8f2938cacc256f57c66c7ee653ca5808c050d9566565b22539fb8a3c6cb0335d0f8d07aa6df1e39b1cd12f7da9d47535b57e04c4ae8d3d4f301b50f83dbf6493c698ac14eb31fae53912a7af8633465de8a70905b1460358337cfeb2590a13f776e5ead149206d4153ed32c6d63792221c16d8340777f782d27e98f6cb8234b1e43cda21def92da67cf42a7f30ba7c404ea4552b60bbea9e773f9189fb957958de003496ab1864a4d0fa7ef4bf0e9caf6d000e7c62e7f72e3429cf0e445d28cf44042e9f72a71b6c1432cdd5eb9409e5aa6efa544d9d7f5d08b7aea20d16cdbc038aaedafe7f9be57133e8729e62a17264252ee87d285ddac3147622c9830cd57cd70a3518bf7bc488843d36731b90ec70dab2f75966e75b4e3372425fdf6604d9c1e49e1cf071e7e83013d8b8255d0da8411a39331117f16eeeb7f468b495136fb886cd9187dbecac0287fe941f0f5630523306540a431712e5913d369a5e551c8f9dba253bd28aa1eef08651b46cc40a186cbdd2bff91ef1a55983b3271499916e8162b415d875e3584da23e317a5924617a593db495cdbdddcb45ebf99e729f1ede2245fdaaf560d71f707a42da2c53ca7d13baa24fdf65faed26b4acb88f6badda1a78773c78f723478e54b2e183b52deb4f0ca66df1fd04f10f938f332bef85d461704d72ca0392bae340daf387eaf2ba34e0a01f3cb2cbb3126f80fb7660d7a3ab0c56b1bfdcb7b36789f80c9e7d2db5db76d8336a7935ea242f4d92b4d8ee4446438088c1ebe05bb27e5a34ecc2210cc426465910d57f2922b66abb86fe53fb3551e98f79dc1868d4d81285451744484933c3a4b61b8e50af9f72ef1fda2eb98a5c50e12b4a89306da09cab5eda4ce2c35be5cb54f9183424ca58a2acab5f466cbfa2a43e87230350c3fe7f3d6fcf902a1cabc82914e2a6dde838f970fd14f2de881ea15cf73f30a5bab5bd6ad24322d0190bae671d72ab93ef22a2b9352f1a959c468dd7d30ca4e7118b5bc359250db82a78fffdeb1f0e210d5e17fc01022efa7143bc18b5f424d62847c41d82faa55b54403ebc374cdec5921dbb441434daa9ca88aa3b3eb97538e4129848f65a53e820611f2fcde1221e19565283ae9fd4df2b81bb1be50749f1402cfc17b294d36ec83bbbe6855050456eed40cc7424eec76e92a76ad0f3cb53805a214cce99209182cc88657426f6c73e019fc05d485e9829a027bb000e6599841474d3b2ed4632beea05e3c1f2157ab2239ac7f26ee768459a52adfef33e0ceed0089634bea36247288ec67a98f94e07e82836b270b1ea44a58e1d5f272f061e6af195575d9f2a2ad2aa53c615dab657ab3cd4a4b8d2675c901cc5feeeff3fedd7b820040cc1257ae2762ca9a8c11ca52743e787a3bb9f074172d6b7ff550fd5d3d457605ddc426bd27f5a33cb3f27e17954816c4d14eaa5737e71cba69faed161bdbf6cd26fe9180d8fad47ba944777a33f39f0b6127f1da8aba6036eb3102ce56ecc7e60bd0b6f5370688991a7547e4a4e3e83d8fa4fcce4ad9d38d7dbdd8a46bbbafe98ed5a5573f8452dbf782a7092901392dd484f849b32d97c9e1aec3d98500b56aafff8838484437c161c607f90a07365745db77ee5818d341e2eb76bcabb96de6300de98cc102e888c3587f64d1c14d635af5242d8c4a26e695a83d7c6afde36eff67ab65390cd419246de136135067fb38fb5442f9cc2d1fc027f50a3f665778dd96ffb5867f0cbe30cf7fb6da4c45f0dc95e1ccd4fd3dea4a686a00b143928077cf3160b5004cefea254598df119d64c2bbdb1d89edfab0bfc1b415c57c392d92a692acbf62743798f119febb0481df6501aafc200f617c1c14d7850c2510f147433b266d7dbed1edf4f0c631c1495904058d3d221917640c4c17486b98a7f21494b1a78160ca7232fb03bb1c345e1ef378a2789b0898dd48cf7d44b16158aafcc3e9d29f1622781be46c5f14ac88ac32f3a3d4a94adc2c9dcc04ceb91f0bfa2caf75d2dab8ceb0331671dff541883ca175a6b857f24be546f77294a4a50758372a039bbb9c6e602a579b1b3597a36adfbced2ebc80005fc00ffb8fe8463a81b05e6c72378faf03675aa9c4f6ed7d3e9b62ce104f682bd645a0c399cbef1e1a6a7f2287cded8392781507bb4d70b54c583a97bff24f81b456e47f012a8c28737c8aa2d568eaa6846b1b66263a47329b4fd5e307893cb973b300e7f6506e13ec1ec92beb38c0ac7965e892f94d06d6a341af93bdef8bd147ed957dbec0cc507b1336b4e1a12547f0fabee45e9b6489ecca198bd7d3ae877ed53a1857a65f94d83f74aca758ee3eacedb3968e763cf02087244afdbd346511582e6b1ae5ee2eb3715733079fdde8d36c29dc1729ea1a85a59ab6ce12169fad5a72687328e2ff862a4652b12dc0cb18a48526ea0de61010bfd1dcf429d7a1d2f1eba9743f69c7ab0f4f30a0a468f9abdadc7bf7405414757ae5b32ca51de3044a3f0a2338eb3dc7045e64a8f0d3828329e8f8254995be3b16c6102fbc83e0e8c0fe2acdb219dbf0cb701a0c41e882b15dcb6040c728004f9843680fc1025dfce2890df8cc0214b59efb6972da209a946beb2c355387f0385f084cfc3cd0eb45a154359c320d2cdf70d2f2a4f1d522d1493c4e1b1c4b9ee56a93eee99e3919e8483aa5c5a91b9625fd3b261d8aaaac14961d9e7c4269c5e53c2293bd47e05f144a15dda7acf7b87750dc7a4faa0c9445fb17a84e4c2c4c301f1eb2250302ae9b3b1cbc906fd5321a8a23a5b617dc3add4a9dab41908744a553ae7e15feabb4a37216c6e944cd7a9703097434df92f05a6336c4e1dc8b81c205e6d713f35cf87a54d10335dc623e1ef03ef30ef622d437d8865cac2bd12000f903d970d650c3ab99468e0c79cfe399e82ff84573222125025d62129b8ab38afa2a5cf4c430c24209454cabf91bc46a43e3f21c2c244397b83b74e6755b5e7f01d69c0294a2c6c529546cff313c8090a4402c5c1265ab678ca75e6ddfc77b58463c658265b9367ae50baa952f8bb7e1c5cfe87da5be93b250515ca89a068d8b8105e550152b0145147f29baeec6b9ceab696418e8ed0484fd7af4659e0f1da696f230bbc79e420231b66ebe7daa4c1bcc26a07f58ffdb34230b200389ef9adf5cc1f5825c112c0f59d0f7f112c7789998ea004eba31a19fcf0c61a6d1fddc93a56539e609c209e48c6135e5c95c5511a3ba6fd77f2d73ce8bd83ae215d0f2f79dd8dc90804743a8450042b98864c03e790164b27021c9111c55bc18410cda9ca3ee8c7eb7ee05cb4a32487b0ce788c2f876498f0142b2391454fbf2d504c0dcc005b142f9f5538c3667de0a3e2a9e21093eabca182ed4d6c1b9fe982de92eb542c6110ae2045e7d4986d3f66e379fe6f6458d8269467a0fc582e596ece07c779a55d64465316f7fa0db474b9e7ff0e4b40eae0ea09bc7e95e124cca42289c0db08742e5439a050eac30de3e76558f3cb52d2a1757158d69f9f7cb8243c3196b8ee6704237f88ce28a7cdabb7da75102449d1fe35f05fd3048eb03c182981620196d478ae368ed983e3ac1c417c3c8ae6a94a506fb142ad3e047b51be6473f9a9ca2f8a14a573d67330a23d116caa651eee7d95081655901a336716cfc5d01b5fec0f75fd8a0bb4e2532c4e468515c0d01197e05ac9f58f918b13681bda7bf1e3d24df71d699a1701901d4f0d535866a26a48a64d1263ccecc44ced3b5081329546f6e812c37e735d57d626e820d433f3aecf372dc366cd6faec5117e11fb7d11250ad96267acd383b909f5cbb25ef7353c4c07f5d7b1eb52cbb53fc6f4d82d3d011b172f48d4ddea48c6cc466cafcbc0c0dd7f4705fbe4d1d31f1d6873ccce9d033be715f093f9581ddfc39772e760aae5babb2f6fdb9753511a6a60e11e6490521fcfe88c3368fc78775e19036eb32e9714cfd8d351746a4565801ebc6d84b20b67886e8fe50527500e857a53ea40788d28c29162b2b8452aeb23595734048fb9d79483ce367d784070e404d0a1c84cf7bfb8589de1d2ee03c6f2cb15e363138fbb14d600018343e310e474b4951faf4ee58ba13e87100487bb88cd50c33bfcae3a945d1c58903f0c133476b8b545319da9db03432a1d2e289fd0c7dd543376f9964c5be2cdccb2326420dee59e9c13494896495c759bd1cb15bb9015b904c45fff4275f13b9c1421281f3a23a6183756ee88525261c0a828699e21c88832e64cccdfa2ee6bb4d3cb9136408224705cafacd28943b5ded954e83168ab231dc0cda5f36e46ae442d8a4a7729d5883f89f3ddc4f1702b80ce3790287e36b8807a9b0b11cb0fc29d7e2df5c1e34ce94da0dd1a09e6f259681f0d71c6a17be40ce6dee1b4d87714510f7a45149c3d859dea88357f6ae1145aebabbf0feb0d847a752a152b966e9aebfa18f3dd8b3a9bd2ef038ddf1c6b5993e331f8b284ad26db6cb24d8a40c16e2b9287c69893f57cdce835c0ee2cde1a13fce727e9299e56327099948ab21e6e0fb2aebf3c5c9e229ef3c3d8d791a853ea217a308f51165e9b8150a0db0546ede92d543e60723e25dff39f4799fa5575460f9aa94d87be8bb1d8ca1742f66e1bb6f3e0945b0803de1c63e711acaa8baadbeb1daeac443ada1c9201ddb17e1bf382706a20e8f68778fb3cac01fc8a35835029a733262cfaf1a70217a436922ce40e57744e851b1f0d027220df044cbc930d6024a385074108c0ed650527866c4a81a0dd44e5f8b76275956fd96b1aa9894d0ddb4011a0c85d3bf887e0d711acaec26ae15763419f2359b33aa7d454d207ecc4a1b69e496dea627ad665226dbd773dc25cf2c269fe32e3849b60e834c76e58da3c9a945020525c278a93d7c4478622bce3a1ebb8f3b297188d990d6a2aa47e96cb1f0764fc705028d534a69a8a33ab3389127137f8d7283fcd1cad39e2d92494c3bc56169bbb14b5003bb1e649d1fe4e13de7aa6f9f58960d7802495dad1bdadaeda960ef5399816874479c64b883db81fafe5bb2a6326be681e1127a834a11dba5302de41c71fde8064fea85f06a0be26ddb7b304162b402be995c7e963d41d2398d2556624997065f12f0a378d86ca5590542a6e32ea06fd8fb9c4d3b9fc3c06b0f85707de5cd56dde4d88b5ac3b3fecb9581b16b8dac89cf95d83fe505c0632f42741e33ae57ec82a5a1f71f1a0b8c74f559c4370aa3ff72823bb3eaad73213f30308587eb36df70af2be5cc62eeccbb26fcb5dc389a1a36b0971dd80cc68cdb078bbcdf923f61e6cd82fdda02072b1adba8e346effdf205a84caecb77b0ab1f4d2eb25008a625cf7f6f4ef9e298681e1133209da3ba1e0a2e465bab9ebb096d8027a91a091fc8b5561fe7051cf4ecfd9d6e6539a660bef5b0cd351b6984f05dfce085f1fd73e09f3b4b2605bd5d887cfab936bf5c986668d233b801f210b0df775bac6c0f0b870acd2c99f06722c47096cf1ea3cafa8cdc9a5a394218de16a56bd1bc8a300def5decd2be9722c16ce4718820a8a1d3a277c9e521fcda9082e8dcaa2b20a9a7a60545f84af0ebb2e36d7a6e6c858c7b4854969919bb1e8a59bec5829622efc112ed19a6679728ba60aca0d89930a29e495acaa056d4d071ad7f053225a1d4af25dd54c89ee9a59ee1653a43e9bae894b333ae05f9fd03842dd9502137f24d0ad433033fd5cc92deaaf022b7060be2cd48aaedce14bc47fa38186c2a2748786aa743207c2c9af5eadad9224b09fd7c5cf758ba09c880a0e723a461ca9df61e9aee64e239f86df80fab9748503fd0b59d8b4dfba912c56b23e3f37e4fe569123e0383ace816ba9064708f4c093fa28ee495e2c9b5b590e44385d89ef02ef78f80e75fa344b6502cf399ddcc98a94574d0fa3fc4b0b7e86cc2403d32ed33441b37b1fad74a6aad9a8a58811105374d4413ea573fd98f39db4d75b50184553e47b1b93077546022138fceb9f4ae1345393bca6cec329e6a06f5bdd13a736d51e5362a003869ef2e1c62e15e8ff52a10a083904bbccf2b2124129613c1bc2aa025a1a1c881d6cdb2f37b100d988d2b3b6876858fd9cfe0f607bccf92dca88662bc33abd70461599c60023ff2dcd6a2df0e66de8a20bf3f553e24094c5294a9e3a5a231dd272047187d3c910bf9ee32e7fe8f89146e47d703f55d726490160d8ac21b556bbac14baf29e2859033b22dd8919cf8e732370f4e94d7d217b5695bdec4b790a67bcdf25b8b5cefbe2aacda990ccf74bf598b6eb0e8b5051e478d9a1a8c9e1069651a0625bb9e8270a9580b40b474417887b33df341941ddc112f73105786261e0f9bb36a848f79ee2789ec75302602660fa282e8fa4ef7c254ce80e196011facfd4cfed0099b20e781a88302d91ff3f7bdc0818b4a8b061bb0ab48bbcd774a96f51bb2f87d69b331c9f561b32c5f9f9e2d52adb2697565bf0504feac3325f69b24a565c1e981c5d0ea03b06d61c15a3570e3352418a26b366bb553c2458fae8f717b92c419acfc3c16e43b7ef03068d28d2064c9d88829d7981ee40eaef65187c7332156f86775a5cbdb8451ad9c60ba696b2efe20a824d9f0660cfc13547879b56352a5df0ca9d233693340cfc60f0a21bbf4b9f39c2f2aacc1914cef9e3818e6eb47f65d2d239768e4661f9f5d9b4b6638af1fed4d207b7b7a589caf26bda315a335526aa3d59aa6f5a2e63db0db257445acc3c269ee8ccc1570a9c203b7a0a1746992896b01cce9a05ed59b9f95f85cf7cf17e39d5a4cb0a0f0038223ea30db44b8488abe7eca2a9052c6f64049908cbafa05dcd794bc828b630abda7ebf99a69a6f8f61874aa1a252bf28b0469a099185e67865d027c56f8465a99b309a405c6e4a8eeff3229f50420a186271c04f1ba834727b620c6f8bc2dfaad4264b5db1c49eebaa6c1af8e638eaa1516194978d1624b6124a162170abebddb1248c52e48de1130cd65364ad64826248208efdf3d7299bd1b717071dce861a75d14f2a4f9a2cda22464ffd8ea205c8ac975b7387626fe88d29e31deae7f8b5c7a86ed3d2aecdc1b5f1b54e4a37142eb66e4fb39811a3a7424d5df598d2a27e375f3c428d767c98b4156a69a77e218599bf2bf90f3bcabb81f231bbc57dcb309288b3eff36bfa068023bf18e2bad4a414488d99962922a0730e73c9e0080bd8f98723dab01531fcb6063f37740491065a360c53f3ce459fee3fd9b09b254c494ad7dcc5179cf27dc218583384446fd6dce394c47c955cda0cea892f1153644b93b98fdd38ad1a374da058c5e942183b47a82afba355571ed899a6833d6f2e9f51e26507925de290f3e136d508bca870ac80e684255b4c339eff56e55b90dc08fe9bef0dec98a1261114b911e86696fbc7b01cd36aae133355d04bc8904b62d7a6fc2f0a3821c1a6487ba92cbe4bc94fdac1dd14bcd43aa8c7aee0f1d764369584fa6f94c84305ca9c08c4c5d962bc1cb50881f54e6cc96ca12136843f511fcff03fbedfee68ffea6c91b8cd77620490411b1f19e4e500b069964f4d6c4d02a5f82a75756de947be3a10b62d4fb5aff877a8030dd22266ec2f1177e01eabf24ceb4c3356a5774714f65f63d9890199dcd38567aed9651547a78341a2c9048c93d48bce1aa8e7e31c75116afd5fcc536abea9452650c8d2d9c96850b7cf7de4cfeb3ef034958031f8b5e6153f6bd4371cb3e341f16241cbbc1b09cb1f8e7bee0e89aa7d51feff6722410f07117a855de277fcd1fa37a5ae9270ce2580ea37f70a3985b106a67c101ae10268b1954a7289cbb7948c742db387f0946e3af1b7011ec465fc2c6cbbab163d1c20a80caa6f7e7ed192bcd5c2040ceeea3193940705215b65269aefed09a7fb5cc1aeb7c6a23b5f03f4bebe147be42c03c019581586e795902dd0b9da8f1ccff47cd6d8a1cf66eff9ffa679ad842400e397ce026ab1b91094dbe83ab8b8933adbeae8870a6503a38100ed538d5790fbc6753db45b6eec674c9d60d14af81cc6d68e8e5bef519b98cc92158c5ac7ad8871a57ddebd4514824252cc042eba37e50694fc5f06597021411667800f8c8fb8548ae6e4e84a01360849f8c1f39f01658a27d66fb924e2cc17478f6819b8b31f2afc93651203db9a5ee3703e53daf3c767439f03aa73312ed5f403ba7232784012074a522a641984d77a1f58315373a20dea05270f415db40dee6241d1cdd029561be293de72a68497831f3ab0b3a6a4f34dc151e137897ab7a9c759f9f286052f09316217307d04660541fc8524a30600f6e13c48a95f2f00848126d89a17432349d0cefbbfc0d36fc2c545127f495f7acdd78d7656f1287b7e0c9a1c68975b21882fb0fb0d3a8fd88a180cec732b5642270f642635ff41b1aa1bb9717114e5aaceb3146123918b6e567415d570fe8d5d27fc5ea3463b0185dd91b7873c762ba40d845094dd7b0e25a972275668c1147b2c1041d027c1ef83ce1fad432f66e5c2c31f3945d6a22979617e8a0a312b810d3ab941f61e52ace39f4a196bd5d0f0ac735ba379513124b7bf18a88bf8d4c07e9052be9ee358460b8f5ac7afa3e29b9a713ffc9748ac3b81a5deca02ed24f6ca49ec5ef2af0e3a2301b0fb9097638f14995d6ca04c0beb59cee9f5f653d9ffd5752e1da721bea7424e3fd9888d3f395995631429d54603dcaa352ac1febbb72d48706f3e3e7d7b80aef3d272687aad3792e5bd64da20aad3a793dfb08c80b016f176be5201ddbb47cf1757a40cc6f20efc2f6dcda730279effa47f40fba63e5912bbb2cc3a308b68d9ad203b89d38a195e0f95cca9f454114c07eacdc373c81b6e164656d8fe5d6001a9f12d7228c778d677db3f33786c0ee3b134eece502728d2d8dd58babc8672385cfbb6e9dfbf502124dba26394a4775af9f1b57fc641a773a20dabaa4f5ac86adc131b0595cc44a5c22b228cdda518422f62dc4195d96d576711ff575c14ae37eae4e41a81c0a9ccd252e4b77308f47295cf2641bd0b5a5523b2d4a908020b82e5ad80e9683e25902fa593fdacae5dd64a827f4b0aad219809f2d0f7fb9017394eb1b6d4db69b4f5d046398755609f89888410531d6db11769b1f0cd8f6d9e45fa3f76d9814948f5f6fa7849dcf14405ec81dd12718959db074c16a1e302fd27ca77b70db3aebf44b858e0f8f5f45bf2592ad216c1acac4c2581e3e0a594617836e5d4455afe3041fd3622e2e46f1dc7dab41ebe8a8c1e2f958e3742376b78dea9ee48bafd10cce0f4b372c4e4ef1c51225bb129d351445f61dc8508200a8e045a111caffeb5cdc66a589d9b3d063dd543b1d08666822fc819704c22ff2b0fb7f819259fda7d6f82628fb202d57860418416f5f3f251e0bc18358ce374506594cd46607a88916e62a7b8d1eb287afe6280e1c1a5d6d618d27395429d5ce60aa60742a2b150d9504eaf68cc44674938588674bf054d76165493a87a466449ae9f6ace61fd0cbee23a504ba5e77958817636b9138e3ae918da14660169660d78d694b9bbc5438295ece4aa2248979309aa620c3284aa65a245ae376acabe3ed50d689b2410679177a12e368b6ed99a3f4d316516264a11507a5922d828766a163dd958400ef72d8fab579853134cba5ba8130004918636aeef4decfbc138e02bb8c1fdd44d3fcba6af1fac923fac567a00c3000c826f1556a8f08acae30fa3f969c41958152b6712ffb9f912258246d38633ebe0bd69a24721a832a937d668216f91182838e748015346794c884b3fcce97c2f899bd7225fcafae02d20fcb715180bc5c436fc4f2223aee87a682b9a736270cd488528f5e5cc4429617d87d28a44e44b781ebbeec4f04d50d746f0201be554be8744b82d2757fed75bc42dd93bd1ac00f0027fa6f071f824465d67b028b512acb1459340571ebf87c2490946f6eb777d81af627bfc923e185b8fa6dfeea7d5f3d2a1144cca294bb8a45004362948e196003fb85afd31607563e35354c51ffc481fba0b48f523e6c6bd281d4b67f7b5b3fe90f3bcd6a622ed84ae36b7493dd0b0b9cbd4a357670be5ff5c4d6c8b85c01bfb83e2f306e9ef6369b23581d38ae61bbc9c0f02310b70fd0947bd4217e4f95e27140c738bb321dbd5b389bfc7964b74cdca727bbf4b1e63df0e02620759761d72fbf6dd0dffc72dce80ceb7d7fc3635a579320d6feb5b5c547e8b3ad83fa29efc3ea68d40c8e704fa4ca0ca66f2e69a4b3bfe06c95328b95b9f9823347d284d9fd653b70eb78f69610c6d9661e8bde86fb150dab6ffc1e46ffbd529b2aebe4a921460f9941a233a7353a9f4da0e3143ecec161f451df18f3e88b5851253a2d32a6d3a4631f9d28974a45956c547a6d1d973878fa9460e5fe91e788918e924338a4d9f80424d7694f9af8600e12406980f0549bab019154cdc1845df7f3716a1652bd8530c3cafbc513a1538accffe48e66a0c36da044612c3d2eea5bf85877f8863b8cddf6abef90eb4378dcf926c42b09f428b287a1d7c286bfb3b8fe14750dcc762d63daa51473b9c8b03fbd7fb5d205340a48febd280822e120e2cf387913a04b7f19822191f273335d1c5a94c2accaf8ff0fdb94ea80f3caeeffbcca4af5972f0f6580eddd24374061eb60387d8812db974d6217374b8a83e59607774ab85a35e11c8ad61f9a46f13ceba33fdbfd827a3e24f00f5986273be3853cb6de345fd8cd2ff3c3378142dd2c98835161</script> <div class="hbe hbe-content"> <div class="hbe hbe-input hbe-input-default"> <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass"> <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass"> <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span> </label> </div> </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
<categories>
<category> 总结 </category>
</categories>
<tags>
<tag> 总结 </tag>
<tag> 题解 </tag>
</tags>
</entry>
<entry>
<title>总结10</title>
<link href="/2024/07/30/%E6%80%BB%E7%BB%9310/"/>
<url>/2024/07/30/%E6%80%BB%E7%BB%9310/</url>
<content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <script id="hbeData" type="hbeData" data-hmacdigest="9ebd7cc0b9da74e368eb1e7f1cf40297589ba4ee36e7dab8f01fdd318e2fcb7c">b66ce848b4d743f8d8e217056a5eb23107b3ee1df14b8210f1eca69c7b8b17666220c5cafea70fc508f08f8cc42ca0be51f7a66efa0a88fe3f6a10e68b42f0d860279c6316c848e1efc5a319c27686ea7fd015ddd5cf3bf7e7c6a94c14379436805913d91350610695395926e22aa1d8de72123a332c7013b0c7be69d4a48ac7abd5f49a407e855e127be0e14a7048a0d1c175bb43410036824d765f89d5d85acfeaa7d486607204866ef13e66ed6d04e7326b897acaffd803f6bbcfa285d5fd32380ea20b443299d8e5d79b016331d6e472d8299520769df5649af1a6e53fb549f2771633b213c6654ed5de568504c9893c68522c0aaca7a93247426574b5dd535534c95674bf04e3e2a65468936598a2b7f093feac76640b8b6cbecb92b25e06b3453bb989b5e4e0b86efeafb38258599262d39c3098853ecafae878c020c5a9cd8cb08d32a0d2e5eab34b41fd676a4c6f55417ad7375eb5aeb7585cc9d9d834da77eb71c437879f654297f5d61cab05afd8bbdf2d4dd5aa895b0166f06ae7c4cf06099059c3c142c55d30c0f5b228220d56739f8207811f7a19aeb171be7ad2cfd6b6db099de017099ea5d422c49b848ba673db33143691a9ce50090292bed5d40a240d4b4c165122e4428139186cefdc8f15fab47e271a5a6d10d4d35f88d668290ea4343fd447da7c360f955a23d8cc883d2be0f5c2621288b3a008d5b1424472a3f3effbe7a078d3cc88e9aa463a706c79f595edf653e8856887920360e7697bca134c4c5f082e4a3b087176789d98f9065924d587509de15ccfb9e4265471c8db8f781449502c39ac6bca69f38dcc786f1924af943e41fb2bd80fb106d43a84cdffff33cd7d7aa1ae649fe6d7d717ce88c7b7f59172465d437b0ecec5222859fee04a8260688bc4adb14a07b6513a251fa477910b65d8155d28b820eccda0154c0615ab4394ef9081c816e8b4ba7facd9f6275cb64ba0816928bae8b5ebc88e0db97b6045ba47f75af856c1c93113369f8136742170c3aeaba9e7f79099df11d9e3b0c9c48ba67a30821c8ce37cc2e2e6bd4bf8b9f3fd781229cf862ec6e3ec81135c0fd782cc43b8c576b9b68cfd8624b9845509881e3e45afb5510cd03aae65996361a6180853f2cd07660bb13c3dad7002080bdb36064b83cd122b3b8cfede258b351285632af17373625211121136d90ed7310b6ce74b449932a11f94e93ce87f8838de7aad5bde5bb935e2f8fac411c9154d69851b8eacc21c09b71237c5e97b6acb9fbcf16b1ce320e1ff374f9cd7add7af9e3d21dc60050db0c334ef628274294efebb8ebb8e699575c7c72960802352e422a0b3f21b3742cefd342d74f92bdb2ba849d61c65110478e27b015d624a36ef66c991bbe34bd35141e45ad5a9b0b783957e1b74561b7d7b0b56b4660e5db14b938a1533c156823ca942a37440fbfbfd8cab2c2eaf1f46f1c05e85545395f61ca7636c5e19aa1be4c1a0e8d4ee25f5a0000e2b7fd801c1190032ae79e723dc80b6d0d25e342fe55438b75f56fba7e614cb586a7363521b2b75c73f92755d1a8754471ccdfbed8449b78646bfffe894d25fab21307d850b5679752ceb3acb2f2a70f49f650451a3e866a23688faa8061031e6964fcaf5438daab3d358182990c02b713c148b20bed93e76610d01839a862afcbcc0dd4f9d26636fcb5451625fcfb76fd5dfca907b95fc757dc120a6c6f483d767689e37d9ca56d035e002d1e5f893441d529cf94844feef84cd437f699d0e5c3ada47641abff3c3b057c4d48c7e119ec25664dae902ec38ced49cef812cd1852d06754355d3939ab8b7859631799b8144f30aaf8b63ae3034f3c7dab51c07bbe0728f1e08f849244c0cd55905bc94b217ad4d6dae5ae43ef9524f8173f1992107bb2f3da081ac135d57ddbefd2270fef5c3f8c6a76df01c479ef997c24a50375bfc302345a2b8bad2ba5cc3804f4f53d5deaa18b40b32f1857d7969eaab3296433c183f0e854e0824498e2ddfa60b8bd2d04e8c2b1e9e9f1ef8227c867656520e327e57972ed07b09a0917ccc5ea0f4cb68b2ce327b0eebbe9ab77a49beb8ad3fd7c0ee5969981c15e4abe7cf1d2b07801f39f4647de6cd1fb0527bff31cf18f42bfe6fbe71cba7f915daaca3d8f31aad330c18caad22c154daec2a27a251d21527e2b9387e9ac65c1c35c98ac1fc904e1bec8f057461aae967fbdbe7ec8e85bb9b1575aea387c1bb01b0b8109a62b5e1cdbd7fe3268275a34891e7035b2f79579c1cda54dc6ce7909d93d37eb83f7dd4b181747955c4f7783954d637f41aee19a31051c64be79e5805475d94f390d9c9071348f9779673c9d6b92fa27d04a0b6ca3d0c8c23a6804f7634b9016b1350791ecc06f8efcc4af48bd99d9434388088dcc8035206f0ff56cf2befbc5f13b141d4da6fa70cd65e342914178f961cb86dfb21f5b0c61f3067bee7ec4b40f6217949604fbc5fb44f9ee0e86150aace16a5e6159e5c619fc19764dba2e0eb68ce9a7e7ca792c924438f04f49e916d263561247564482debc0b3fd523a4c1632f618a4d09712bc115300bcbf8acef6bdc9b3dda82a5b453716f3bceebd1086a43ba579b3709eb34be6d9d1719d474ac2beccf00251650dd1b9ca3252e3e58e98ccb0e9dc58587468740d5108e6120fd929b3d8a1c7a3a4ee0c0e665f0021eb37f7caa63e07e94d6dca5de42393e203826e2c9cc50ef5df32d0a429bdb8d7af67de50624c8d151e32cfd9fd9b0056a6d668ff6797f25179c9deb7239533529751936b934626510af386e4053c6e41c16cac9e5eec83c3f6a014eb6d94726a6e59646377c930fd3ebe410c2b936e3e1d92bb201c8ee33c46698a0a783abad3afa4260468207b256e38200ee060f82b8d7a592f80515ad4f42ef1861d53b003bd47f1fdb0bcedd2b63f59f12d4d0b2d38f3410d92b7a7f9dc37112461acc652eca142663efc4ba7a5e8c3b95adfba51396ec3a23f5e69f648e36edac45cc26602c2dda17133bc743c47f21f48c46e35be3c000c07534e65d2bf4b58e6789d6bbbe58adaa5c67e5c6d2bbc452b44eb634cf23884b5af93bae9c7c543b7013bd3a124d0c302dc6c883c18960e5e091d408ad785d8f08d34cb4489e27ec45b28b6b2aead113370eafd5f89dacecc1529df0971ebd9da83de0702be3b18163977612ea1b2c7c49b82c10b556ac2b1066d49059b0be40dc959ac5e3a85159e70540437282f49681d09c88018f29bf716514b838a86d9978ca7e8e23f90beb33d07b825b9933b1a9dba5ec0cc7bcd44d115b0de20306a9355f098a8b8e4e180cc899ce59cacf6144d25e6519fced1d950f8af367ad02d6636f0955b4c46a723318b7fce8fd14cea2a6af617a229957a0d5e76093e07225475512fb8afc798748e1e14df8da704b11d39c3ff70f3a2a7586f0cc9be4e13480987c6c9afe182999c6550326a45b5daa348038daaf10ac64c1fd365b8a0a45dbd373e41b50b5cc951fb269301c5c021499a723431919c3666712299f273e14f5ab5c51374392cb2e0e45839a0b4d9ef59584cb11ddb624c06fb5cb395a0b73caf2f0cbdd08131645df936c0a2e696d0655427768ac9c89b45dde726a408ea6a3185793ffa11dc740456967033b0b6fd08878dd58a76d493010495418bcb7b48b3a25ed72cce48e73e79c73a4ba41b6215477de59848d8b96ea248ab87307fa6613e56b115cab1483e38f88236ab36f58564750cedd34d90a46931b7f9483d5860cc867754d37842947bc2aa50a28f585b054ccb8855fc4dfc9ccb79691922968a6c4f8f4abce55dd2f30cc3476b67fadcb527e8f705609e6b3f6ab3f160bf83303d3317047b4fdad2f99cb1966307d5390ba4bb790c474b1a9409af17b494d164403088abd3d51666c475f03901b0aca84e47aac0ce411967d58cd0e62cf1be0f183666f5eba09c43ccc0e34876decedd51b95aaf008c396b50ef43e8e0f9c934fd72bad811979b043b57baac5c4271cbd1183b1c0cc76ae34f1c6ca0c58ccfa66fa6996e3da931f9584ca8835410c457431620bfe7c3dd73cefd96b109d1b2275c0df4f39265147b44f9ee0b9b7422993bd7410d9ade3909fa955c70f635f7e0d2ff46614aab632e161b465332a08528d9e0e0e2e1a3cbd184b6af4fbef5e1bcdc84244bb4e36bac8a8da5ddf33721a3cf40255e27c2b6cb1a7835affb82c3a56fcc4460134bef4ab3e83c4e66a391073555707e14595d0f47d75e8c51c2bc92022c6f55443bac368d8effd433ef68c1fb30554bf846107d472c387fb272f689aa93aa6c6bf795d626a64e5d1830f357f38c37466e72251be3ee6a490bd72374c36cd596df703ce101783b15a2902fee11a07aed4ce940923b234d8c93411e1e321f3197dcee5e65342599c6b06f3d50cd9758b1a88ceb9a0d57153af62de1c331a279b382df010b93cd82ccd86d1315e5e33f63e99a618f84f3f848ba62ae2a7bc382cbe98e84df71ee49d738c08b4164638ac9b5f9981c84c5ba4d32ba4db33c15402da792b52713d9ee49b55c6f8f74be6654e8315c80d4a98bb114c3ef1e75b3468ac29a90d21aea4d58259eec48365eaf1d35cb559a625101655e2ecb768577c79b2a6c5eacc850653251dbc2d2ca1a5670781bebbe8b66097fcec0e14f1d53e0b36dbd3a6637faba7fda3a8c4c7edbb0bb96ae7a55d6b381024e861dadfe2ec71f7d407ad512e46322e33ccf6070919a1f6e86afab242f268f8b997982051e8368ce4410846fc081ab8b4d3319393f1837996610cf16374a7c90a45c77ec2b359678ac27e711f7811566231dfb99a4b365f0dbe807fb71fcb28021bd14c6db7ae541743e2c296f454a9efb9a6b8119582d45e696982fba4cb2485044fcedb2ecd018be13f433763f34ab5835a5ec13cacab2ce7d5fe30566427d0554571ac59dcef815ab6909b5b4afd3a5d3a171585306cdef527dc75b601d0aac5d33dd3929cca5cc58f53e4b78890118b383da3452ec0b05a43869b34d992f98d3c8723eecb56caa3cfbbcc49d11574068f4490c4490d93348356b9680e58c894ab2d4ecbf7140ca832c2b7dd03ddf5e2339c4a2d330ef4d80bfc14b6468cb31268b39b1cbbf5a791f0d0b9e05caaee59491243371b79477f2f8e327723e9eb2d5b1d759b674102b8f4f199899c12dabbf0d13e3c6311f47eae0d07609533b418bc21490e32c048777cbdc3000f8f636cc5e98a99fdbc6210e870e8cc3a1d8867ef4c295073a1da37670eda93140425d0d374b7b880dcebd8a87d0d61865b6525c8fe28f4bf86e3db8c46fafbf18debdb4c06888cd41980dcbec882af14740b5724e8260c2ae961d5af2aac58594539ce7cbf7a9ff79c153f9a7abb9dfc6d92ebeb09b3a8a674e49e033882c0e6dc2c5f52d77343be17f1ec58be1bd01aacc4c4ce70348e9527ab94e05e8483c380ac8a89879bb226d358354deeb62678ece4cb6e550439f9b2adc0029ab34279d08c2bfef059ad1f8d42e537235edb68a2d010dfb1d6fb6e770ffccce6524e4a042a1d98765bf02b15525228afead4fd9176497ab71465f94418ca857595f6a3ea6cc8c6f1ecbb73f379b5fcb548396337741c2a8b0edd0c0d024cab0bbbb6b653df69b7f8d8c709727b153992dd3bcd391921616a6880593c3bca3ac7f94800cd08d8ba0e2083bcc13e25423db9695bb80645908347fe671003713b30ad22f585d07a401ec1f7be2e8963745d31691843916677873092e7b6a9ef56506dd49d7263ce66563849c03c297022790726998ac6d4648273b4014e0b9479dc17f7b9f49aeafe98a3494bdf4596d843dd8aaa5721ef1bbb0b004ff9722add9eafabdc2ccf5d1976ac1a3ba6e9fb1b5e209cb22a8afb6585338b0dc66ee9832f270b3abfc1789f8b030fd1995c479be92a8de083e593ffa8278eca30a4fc5c969caec9f058e7062de9e95ca7ad3c5c8c4fbb2799c820b1e065c1a5f1ce7b3b9f9579887a72c182ea98f6f20e9a7d78515f3bf4685c8611b2fd151a7860e68700c3ecc38a1a550868c6d11e9147fd084f87d910e495d1dad12ce2836f3580db17cbd0fbf67578f338bfdb7e829f24c2c93397942d0180df47de4836129742c67b169a13aa0122e0453205a3174f5b927ba1883c3ee8b8aa90339b2e8dc174048dab0d918753c2fe1edc26d7b9a68cc2453048420616bfe0911e2590ab67bec75af98021fef55c5bae784a5a0b1db1b3b87394ea03388f0b628c4a036a85237e23e621ece7dddcb419e564bf9651adbf52b982a1497e2143b97cb1d628f3a3b4278073befe288bfbc592da59f3cb7be6eea6c7a00050bacf48c36cb7e5d32fec301d00dd29c00684ce195ea0dcc3c6631fec998b5c7a9e9a26053b3fa3613bd4888f0b6df015e9809649a99edc771c8ab715a21e46c5ca08a0445e47bcefe076f9ab24e40c7ff9887c5f4219c2600d4eedbff25c23f18559b17dceea73604cf0ec5e497785b68db111ffab34a14e762df58024f0af1f91a61a49a441dd8eefc04d22a23114a1a644f1d2335b38d2ce3f901d2b4160457d5e6ea0861fe13673ada350f2e93569989d6eddda2265c07ea2a0d152ed46b87a133c671f259ed50ad684d9f2c46e1b1b588dea64c3c2ef04a883d0e83e01566589624433bb180c64130a54adaf76286e7f29e6ea120b2f1907227731f167d979375feff85f74c8cf0cde8a5873e85b5f1516ece6d93e1084812aa0e01fde8e77aeebde7dcfd90ea6b837dfbb95fc92bf2d8058a0a4b8ac76181db8e82813df2e21c8f9a11ea78add971513e66a19262974b22688ae6cde1ece921678a4996a117c1829b41aff9c5f30faf26f9a6fa71ff025ec27064630579eeed21ad0e069b3076ae09e396c364dafa81697c1983f583dd53fe9bc613505834325eaa6a1672f450b604c90d15d7016c82111ad9ffc58b2481f2b45456be4fa9eaf3cb03f09f9293b34f75f9d73454f9c3b03e2631635758f12e383de03a3eb92a609d26baf07463fa5081286db1d26da384ec811a47c4a2c9aa0c16c1bb26437ae81913a4d75b28ca91dca147c8957e8df1e7fb56742cbf7448d42833e568ebc42e4bd9bf8c641a7eca77c26127b0e21d930cc89e02d7db462a5dd47fdfdf68208c98c2b75e89e109b5633202a94ba389c4dad299aa72586dbb68fb8a0d8090500234e46f8048a70a57618fb4d7bf87dd3aa44b69272c47d432e7e61946bb73e137c80d260aa9e9b53896148ec19e450ca13f273ac24991f7b62eb3bc1936e8baaed10012a7dfa5b25a48868dd138e9637ea059aa33b8751a7a512024544e61685ebf845b23e31872866033bd42f0735f62290d2b2115d74bc77c129c6f50b3433595fa6033a64df898aae861a093bb41cec853ea674d37555380705f15b186328ffe0a4611b87cbd13e966e01654b18bf53770725ad7fba861392b686ffade7897bb7ab85f5e432edc7cba0a50150276f960bbc80fdfb4eb90c06f7c031bffa57c5af6edf3635634d1c9d25920d8e6724496e4e1330a54494c1c9069afcf7083b46abc8188ae80d729d0e5b8217eb260320129ed82a8037b7415feca8a5553d297b81aad14ab542d6dd8d4e83c66fb46bc13789e2b0a5a170c604648e23e14c5b8bcb18246d8c550ed3e266331588618f8d6e6e7c621a61fbd5458181d74d20153e35f344bb7b0040c9c5904ec6313560a2579617115466da6a763c86e59db39cd0ab6cb27e61bc021d62c6a2f7040932a66bfa239b0650567c6fe8bf5e5ca06d82a67a0754ac65a8c78368ddcfacc4663d664a797fd523a7608cdc914d81323260643ff25e794f48b775152ab1282cec2ba5e4126432f6e20eff86a75f48d8b9b2527713bb279b590989292efdd93798da03cd962c7ea4ab4a49c3cd43056501119e974041ce69816126a65baa539e4c1c3d4dae81c770af03778145b5440084c4a091beb3af3c9a1dc9ebf6a31790841bb5add190351162973ef6e722d0120779d15d0efbd3dc4987d63f40676500bbcf5a30b9d2ca9292f652d771aae408c8a94dfc57bfbf6c407076633df4b0e2405b77720c71f9446a20be85a142a7f814bd106a1d062c144719f1b1da8f8d58f0dc7c2c5c52951f51ea2240168f1ac9f194fb6f639dcf403527abaa066d96d8a031e43fd5f9a6b6babd7d35d28cd608ffc7a9a2c34eb9518ae7b349c46e8f1fb359add1ca882364a2a6bd813063554abf5dd05ea83272505b601002418ae0d873df8d0d679fedfb63309de2a4d31f1a41596b7415144d89c519a58bd9cee81aa1eec211897c10651d6b52798f983445581f95cf3e239bf4ed1691c09ac35b77578660ef28a3e719fc12159071ba573c5774c1ca06269f102b3000e88b7d86039db8dcc55b77ddc96a079de019b6197fce91936e31ecfcb21f21ff2c5361fcbdfb74747e4e3849d98d9d48f65bbc44fb91567f52ad1ad23c0339ec405d497c61db32e8fbfb32386cc3760abcffdc203021b7ad3682e554c133a5592601c7ccd5f6871e120b7c4c3aa41cbc1c44018bf1758d8191c072eee0e79bfdbbb0aa7f2e15f5fd0304b40efbaa4ea11c5f887ec7ec936c78e78c8fa55060803143c70a3a76ab57d1fbe12cfcf9796757ca2c5c5cbafae10f62ee2f6f4476e535412ac5b5cb1fec1034cecda46ada23fd75e197a182ed74f026043c55743ac7512307de88457be0352866498a9b99bc5055ca43669789aa4d87e10740e273e1bec661c264149dcab689f8fd248eee0793255a769869c0e9894f55d56ef2352c67e0c68ada4b526e5786c8ce0bac79430aa26e12f776ffca8dcb4406e6b58c4dab6441bc3ccb5c252084afa22968e70de9a047bf77974cc2babbff9a11ce189be468c7edcad68a0125b7fab54ea967452ab5dd0609623c81788b53c9d49c23842c2ed7f01cf80def4ca62995c4b8d89ffb0d30f4a180b3f9d0d7264c5d1d430ecce904b05c602de42eb150615adedf37a56d8f7bb625f57d353b3dab654a19bf85973cdafaa8a9cae043155aac5e149f7a625e02b6fb0ea0dd7a4b9d187273ab2211eb28b5c7fe1186bec6c495c4adf9871867c59ec1443361366a2d0dd442ebe7624839803b4ed628a922efdf23c81a040585c41f28c5cc83db6cf0242c115ab944188f82be6cf86c46839f48575d7fa273e46ef2308666ca302ab66db12f400b6971ea41ffa8a9d01e980efb5be9a521741ef0941df032e3dde042e11a6863318c2dd1ad6e6089d0fe38ac1c1dcb7550c8698b63d9af128bca20a6d4ac4f20941072d52a42e01aff11f88dd11559594947906f13568c2a1df0ddd9046f63aa1927c6efbfd7c674c03c7478a635cb41729983022eac0954e58796f09278ace26a94c6c01afb5910af53cd7bd2b3e9464c3b8b1aa4abd5c9e04c47648baf6134ff465ab1174cec7f24376219fa88151302a0d04d39a2d149cc00faaf109c214eac153514d159bc78ec2cc8d7f3d17fae1214b839382d821d45f499dffb208285bbe187f38f02304f369e1e3bb335ea9715d0199ec48c2e3dccd0dd106ce2360841c0a5a55c4950aa96ee7ca43eb641b24171246125586b678266a42a9e016582b542f624845b54a81d789a69e79f8c9d1ce5f8575365c1d041d608f2b2fc29521f1afb166d214dd362c4a06f6b2b523b3be91579f7fe2bb4ec740918a82d81bd2f3c3b6a39ab1a0947a14011dee0687fb2b3991bf862d3bd88d6f2b487ebbbbc17f0d8885913b4dfffe754a1b43b329e840e6e326f52aa63979b0edd58a669fcb41b79c0afcfb99f3d68c544de62cec1c45f7110cf68064ef7de368b87683f5540da083fe8ad73029ac8d37886a03f5666f7921731989851ede9e99c05003013a7c176b70760daaa452acff0bdefc73dbaf001ff1127c982da63af070f13211db2d4adcdd79fc96dc31957b63856cba1ac0b8553ef276030086d2b94532976211a8495612e57474e289df21b2da39185ea1684bf6a35b2a4e729a7ef9527b062d69dd43240226d481225deddc88bf6276088cf00dbeed9c535ccbe32578f940784f637e2891e7d5ba63aa2ade34e175dca5a460a67777771102861cf32459fc2fdef6059bf3a0c20b0ef010e225b8ada53f45e380804a799b6862a924adde33c8e4c190c37482a5ee3b284937ec5189377e4197ec7600e724e9fca7c949b7f76bafa5948022a97cad285462846dc4ace0b31b9927fb2540316b4080fa616238314265e8153539ba6c3e604759ff32fb0dfec5a9aa46499312fe15fc4680f675e53382aca166a73466f4d1731c4658e18af004c568c26ddbae9a3a92b954622cc48168dd4aaa570e1caa9ef0fb6ec212f7dfae33716b62c7bcf7bfa077a70fbe3252aa60f0b888738fe0b938065496f6d0e23c86a575984f89e4464340e5d3153c7cf0206f97dd42cd327c0cad5ba777617df99d33f904f14e8159995443774cea8227b6e351a9f8ba156f78f93ccd7992b25d49e3f14570b4d21755af9ebe907bd1e489db1f1ae9b345d7db337ce90cc4379bf8acda9f4835bbb9680a0e70de334662a9185816ddf5f9a5a97ee3c9b9889156845c31a2d59228f1411c1ae07270ea07182cdb955c6a04ea170304aefe07ea10a1429a451f04f77ec0d4b5a33e76285d4cae7faffb64ef6d67b00faaf9a3d470fd2b764f0fb2bd59b47fc0e4e8521e8e561e2828953a9daecd56b08253a3a12c12301e4dd4927e1d429de5022d6ab61e2b171305cf9ec63e3d6fb64bfd442657d8e18168661f8fb304e086f50f14d2efa74380ebe90bff0a782b26bc11601d20d4705ee541fd261d5f23e358c9aca633d3ccd2f030a2e9e7b5541e9d2979ac6524a57bfccb671022630c9882254345e3b4aa5761fc8e3eb31364d2d628400b1b424a25e144eda5001b9b8e22dbb2fdc3d3c00ef9ef0ebc5468a66aa427894eb7722c1f70da0f16ec42fc7b468dfabbbee94e3ac1ac302af624a764a87a2f45fa0ad9f76d85cd5833457ec8aa6e89f49c03f8ced0fce82e7d732682cc1b976fad701f64eb202e41fa3572361fca697d56a43c7fb91f7e6a63b33ed3fc9e669214f39e6569a248416704e09dbb2ccbf386a92635a05a68f3e98d89c30bf95499d24378f4131beb50be7126133a13769418c4d2b9404ace222780064d8ed2e0a0eb19007dd321b74f9d00aba258e3fc05167937183a0061f61b7ff6ddb942e963b5eb252ae11a897713c556e9e43971aa2ccb6048faf739798868c70511379f7019e53ce306be7714a775e27e5a3fa85be497c0f44addb348b8ca1ff622cda2af3963aa2acc8c4f4ad7ffa470b04c80bd1e2e0faa48a17d4414e9ac201ee843dabbba604366296630089df2f190b731742606bc7fafc4465ee521808f171443d73d75b7d18c9f13ac2839e9d39a29cf6c57e8f96b7abd4e41700facf5c89ceb73370b2e3a0d632a8d4d9745138cad29bf64de3605162d2d6991374a29d65f3d7b45fb26518b73c416520bfa65ff015a8900ce35073feda025374092b9f989085597df53bae6d54ab75f8ae675d7c2ac0b691a2e0749c6e5bc1ef039db2cb91d3e61016bb3f743336dc84764856a66854f336620b4873aa64d8fa4b6b3a3d3cc2a7396737cee735d32034130efff7a53ba50e922baed3bfbbb392c4dbcbb34c69053c873d1fca1062cf42404ebbb8caae031ae28de9de8f3d19d11f771e94c3eba5a4ab34ef539cb110e67f72b3f3aa7c8a74d84fc2510255efa407d4dea7622724a605bd96d11ae61c5a502d30e8708b3de2a8ee401122cbc81ee426cc942c779045b71a1e7504248bde9ef111c45a0cb8108b87c5275261ea64bfe8e72ce6fee52c0e1ac6c5b639a528e91804e445b5eb5c5107b84052445049e9a7cf213b097ba4da20bca0e82e79e0111fb21c78dd232f4fa2919e0e3d654831b4f67abbe0ff597d9941ee4db60f0c425b4fd6ab72761c6d093c04f84e5a816e0b81f6d0ddf9994c96ac7a9f64de004717989b425d9702b1ea47f11d85041b5ebe648e4703bcd9a040eda6a864b23f8e1f4b50a3db17024778a3b72de4c21e94f347bfca8b3eaee3d1e009352c02121b31e1c2fa6a0892312935537690cff0c89b11167662a2e99605aa1d394667207268d8d2d7e4022185960657838f7085ed29202db1987af2651939fd23c09f91bc0172511631c944886e128233e6d14b626e3c5b46e359b338d42c2677052b0723d1cbc92b8b1263dbc0ffc403cdeec0205ad9efa373757a0b80382ee6a8ffae8ba92338de152bea94e44cd882423141d15b110203f5b6c500784c721d8ae9ecffb8176981dcf70b8020cd7995484ffe96e18a7fb94e6ddfef54fefab0b6afae3fdfa2ca3d4b351db8575a87acb8090dbf6aea96aa7cdcb4a387008153374e9ad62b68717732c09bcfc9e9e9c394b8ff3ffba406bf3dfcdb03770dfe8173261f8a6075761cb1c9df0a463071492b3882aaad53cae643f091589fcfc427f37979503e9bc84ae3b735ac034e2f332686ad4826f89a7dc2f580b470ca4ad5fdcb4eec8226303bffa1f872969ac429b9669bf1fb449863f5a616e01b4a8947d43d50857908fd2e087cf43427ddfcc938b9d71353f43b48401d4fb1064d1c6af6f7288c9b4116aaaa20ee5f079675ac5dc7eaef358ce65cadf2d2e03b985937427b5cf89d947b283be477a1bb460c067af5621b3faf54f2cd9533870a3e0ec468e30edb07a07b37dd2cef27fbb983f36bb9f0eba980e0c4fdab85ec57ee7b49ecb5be640aba0dd334d68f0c285c87aa001c6846729ad0ea04d8aa9ef0ea7d3a1ed134b3311505f53a8a99e3796c80299a8cf1bc1124319d473eaa3aef51318e357003e20dc4699f1b04cab21c8f3629e3f97574c8b91f574d7739ac602917e7ce801be937a96b409d469975c52e6aeffdc4b6ddedf56a2de832baa52090452f1540b4afadb3bc616d99170c1126ce9baeaf95f75a7033477699f3f32ee62e39b2f6a180f44b2744472f7bf9c593610c15fb9e6734153a3d6952f4b863e29635c26a7bb799371cbb77e4f310c47f56b22a41964b5efde5cf2ef76546b3ddc36bd46826e36f2ec3f1bdaec17723109951b75763035cd4032095c5c981b6881e180d5847abdad688ceabe5bbc6fc5dfb91a7c45b08358dd62ee7fc61ae022e451ac597bffe784a8b145b65b40fc83a5cabaf92d9f5abf16addec30ea85c83ee866a403e22ba25aa5412ffa16a9179e0892bf896960f6d78af5813d1ea3e524dbfc6e0a2862b96fba8304e4178307d8f6554b20796d4e083b00f26ce02c279f27e9f2ada1e7e75c187dabf746047d033ebe5b1c6da1308679bb5e36a67109a6a39dec504363ac6a7d4fe47982158f8c9eaee22fa9757f7156a82dc1fa984dd134b9bc5020114390ac421b90117070de6b2cec1c22e629efa4487968fd9ccd6376cc7dd258f4bf8db8f5626e35d5c57bee150ad861d5085cabfde2662a56248d60d024609d357e4f5a4305a52d8193d360b985728444187dd28e47c9b407da44832f2fc1bd08661b21ee46a74b8f553de664f15fc20612a6453307b41b8141a585230af7c7899d9ad95b54c9f40c2d2a5d6731933d307828fa0c3ad82427ab0472dc4f93a6f5d92eeb11d3fed29f9ecbe64f5924e58d97c24660670fed99318007986ea70ec7f17115f1c132258ef7778953c35068be202c98f5dc1147aa367b19b853e2ca5c8cf64a43f6f103214b61e251ff9782ab5d45dbd5d810304fb3be64296163669b4b2b4af9b65a9ef143550bad5e2a7aafed040111d06e8049285cc6bb8ae60701ed8d491b66d23a9a337149a6223716bb1cb02a4598a04747b065317adbbfc499f31c90ff09cb2bedba8b8f173be33d1081f0673b0d0ba522bd10c84da84eb0e2bdcda753e1162d615b571a17f498e331aff93f01d4c2bab5e7ea7d592396f1f98978b1a02f245a5930a47bafcce206b51d7bd11d2304ad85d4661a5b9d4b57e648b426fedf135baa52016224a650e8b19c207db273d67217dee694e6a11d3067ffa26c780fc571ca208b305bae72e97ecb2786eebaa029b767ba732ea45d5bb25095b0075963e05c28d7be2654c36ba9cec9e9b046b838afc7545d1222b6c6a7ad88e13064764c71357216dff84e7000adc8edb4d0b606925efd346dd80abb5c8e201ba3c5816d4161f63fe503aab51045b2d81522791dd531a36060145d17ed8c13bf1b9a173e5d60084f7c4d94d5afa992b552286cf4b53f0f946a6d2c4e1fed00acfa3f6f8943a865016cdfb248f2d37c6764e06f3408dad27305bdd716f0bab0b3bab4475a7c5c42ac40b87180b9dbf9de0b36bcd5f7c17c052f936924f3c34aa9378036e0d98cd7dddff848356d15de76830d8bd69674ac113d683ad8e89860c33dcb1ac1835c921f1eb3eaecc474f7451430c4e0a0055bc3d828da3583beaece15f570faca3d00b15a65dc04896d4e4ccc38969af915e7d5424e164080cb5e94c2dad53617c18947139c3c6aaf58d360a901d64bc01f323bcc09475dda36f57dd71d4910d2fea485d2cfea15254c1ab4a189961f85ee52d65583a840831b837e4405a3c770a3ddcac19a4fb57aaebb3bfe8c2921647f6556cb87872b76e6985d1c0989903166291ff5658ef78d6c1d9ce229755b6d88bef1f35f59725c3d943874a8b07d9191fb052bc63bb4e73e620dd02814b333d852cb4231ed70179a360a415cb6497c0f894e15bfa6eea2f3ffe7bb3e1c182a64414c9b088f326166c72091b21050efa1db1aa3bce2bd96807725a2811edb26a320582703d526b9fc1a30cbda2eefaa214d41f141a063c4c5890526fc4672f3d53ffdc74ac42c84c95f94815e46c2b06d1e4d446ea97d3791e84bd0db6c97795d8980e5e757b28ae4f9e8025189154b0122f06464b111620047e0b6d533b774794efb24681e671e6aae0eae4326c8618eb6c372c7182318d26afed986b499baccba1852b5ac6b0483a61954ba7faf05f9d5ad5e6efcb5bc48c7f7ee42e098a3d4c6544e932a59bb291ea3e04b5899da751f14f46b69b106cd4488d595dce01ea8d5e46760b770b05ba0a8654f5f87fd31b7c71ce1c71fe14c4c107aaca6c57b12197ebb31a056ab84c5f42842c229c7eefc98d1a3194158806fedfab630b91dd19ee1e8a08d22005a5fa4b5f41c7e52ca56bf1e32aad9201946cbb55051a57b68db439c2f6a963b2268fdca16e35caf48161ea55d4165a0faf82eaa92dfd6f7814ca8616dc0ab8e0116b7a3b7ab2553af0c4ad627aaf38970c0fdcf666e7e40bf7562a307897938a34e7a51bdfc4178e254cb37c759cbaf231011b9ea323cbadfac6d7ea34fc4ec6f51057ee1bd938d974d3ea0e9f7ce84c16de9b663f6bf30db6fa436dd9c6617f5d9ae43c664833ce14f0a7cb22b13c80cc69e17df8ded9e30080460ba3dce59d96dfee920a4e24494c06c4fa5e4f23124024c3ba8eb10fd10224937c0cb70db9dde7d881faaa984df6ef09f48e7aa6db870eb2752b60bc1efbc077d9180bac767940cff3af041373ae48b7b5a9329b670082b7258f7b0ea9f7a9b269f59b53437129b4a148c8d976162380ccc2b013f117fdbdb8f80bb60d5833f16e32828b897f6397b4cc642a7d062af0ff4077ef5a671d337c5a7213f0cf90ac338a41de5911f6881e6d73822cd8e6be35cfa15eedd590455ef8ac8dc8bd0b5db498ea248f70f4b15bcf9bcca7a508e04e9ef27bedde1356bff18f7d4bf9995c09ce28c612ca17c87022f163e19c22874c6836a057e1b59a0ac0c172c4edc5ce0a28c82b6d39a28cbf37510487b2adedb790256a96dd0079e770ba50caf68c0528ba054eb7bddbe708b3e2202007a1c8fd49f160799148ccad4a49c96ae855fda6416a18f42f877bb1b66eae2521a8fe678c2d8aacf5b7579ad080716e276fbe4c00c527c84d85aa704c8313f42576219b6bf754652d34e70ef5d60313cc9fd8abfddd950fc7f3ea00160ffe1a6de25e87859ff21ce8c07689742513c05d99034e03e0680949c4bffe2e3eadc0c44540e3680bbda5cd562065c0c1114c7ffe16d18b64e71ebbf4e68edaa97f36bd5877c80c348d718c1b4188f0e125bd2051eca43de789588ee87229cd94d5cacbc446a49509f35e83d9dde94cc1299a5796857d8ff38119b8ba05537a05b83f96db50b2e3420cf88e278846798d42fa24f959c227c6223d0e48e460c70143dcf1fe4d419bc97cd0395a006ff85c0bd63add97aa72154049987101f4e568a1df370481ade5b3ce63ee888a0abe5f1a28e1cd498df8b11d920fb085ffb81625388216389d36eba9db241c0308aaf2789da09fafdb1cbf4578672b629dfef357ff3eb2c38403a502919a16f1171d5ace604d267d7624d3638ad16c3b361a93b5c4798ebb78df97aa625e00720e5e8f85caa0e2441236f7244c98a1a25c98c0398428bbce2bf26379c510802af612e9c9aceb010512d6c2a675b37826ad572cb8f4df933213b2c8bd16d7a2c6c8bb5f748590e5754267f0291cf1f9e3b509d295aecfad0fab038049541e24ecf0f6cb3c1fb6e68295c291aea30a9e917b1530da633f1e70c207b253c23fee04d74b5467bc24dd55817b48be7a6aaa9f30b4002b241bb92c64fd50ffa0b6e65fdabe72914e6502c348cf2346ee99b69f24960911acd243aba445dde3f4e78a7ef0dc978783471afcaf52e87e9be92f8e62689e2361532efb3eb5cd4801da7fce7a1f0acc49d35a7983f66ed95eadbc54c2d3f703d4020279c57a2c975a1752c0b3d8ce95c01c6a07950b4806001b21488388fe2632c69cd7fa187faf6ba86b8b565e4a056f208bf1eb0f5d9bb1274e42be5e6d890921c2dba7ef14622e8f3e5b3a31a5e04d511e7a8cc7417a0227afe46477c4e419186bd3529989452bd26ec0e0697dbaec1ff0314a973a727097eeb9dc52224d05a85d8f950d252bf985ace8b69c3e20693fa813667715a0bf7820f9531fe5d22d3f892191b9408c27b2c372a0528921f205a09df0be089c6ae710280ac67cf3bdc6621575292034333ecd46acfc15a22d0712b3a17a75fe73247a043494bdddbbe5d65f1820f787b368ad4befec9c7bb8fa0a8163ef1df13c5992747805974f554de81294121f6fe832f271505153eeb104d11f8aab0a4c9bdbddc1450e0d587b319251e34c5a1ba3846072fe390fb5f1d86540de418fe371571075012aab248bdcf21816da6e9484cb655567edd6915e5ba4d61f22480331047e4f9dd101569cb61f8f906c5a936aa97fec42f8493bd74300a561e20854c4a7705b4b02f15304a7dc0252f3ed487f3ca3cf37faaf34f38b8fea1bef97ceb98e72f47d6d6b66866d2374b14b28c531668f845390591219e633316957a1d7e86b023edaf5c5d49741299261b909ce895564ad299a1a0484f79e538ceb26b10129b03ac5a6721e6191042e8a28b26f6eb4abcfc7668c66da2a5c59ccfd3c3adbf5ad7906be20dc285859084f7a9a274c286ad78b28be336735893dd8726209b9ded17de5d6e9ecf3cddef36242e854f009645cf14252fe1af0d031a77845f4dd2115a0a4d04393cb2d9528f5cdff0154c96c469169db2e292201a1af2de7b42a06eb0d79cb8e1426bdcc0ed6f75e4e040dd711d2732c94c30a006aa6d528ba537c03740ace4051dc67774f55193ceec0fc205e94aeb26ea4c2885f5fef2c573ce4fec58e3e08369d424af7ce5c2788bfd4d82199d97526b9a8cc1255a22a625a33003dd489283d22403618b2e1066b8486d0c9babe872ba01595bbc125954cdbaabc2df09ccfa493b62cd4dad2ef936938af974489a3b3fd6d500faa4b07565576527ee4254c6e8296b7d5d30e0d03eab5c00c8ffb2bc088f984bbdbb255a6f205c1c2ad098e127aa321d80e3d883f843bfad560a51fb6a567af5cd769db78b560a2808a61c97cb45ccf90e448338fe9db411ff8813b4a1f5bfe81554007c3998a747785fe8ef10b72daca900d90aedd789f74c762dc766ad914f6f23597173510e4a6e310d441aee0d93707e337da13d7bb593915156e29197816dd2a691898d450138645e06c459246e5a096d88bb98151a70cb086223509a54d6a97494a074b53cf8bd0309d22f8bc98d965ac26ed4d86236cd295a1610eb9ca2c200a04f76501af27a343f4a4f8c040b3168cb15390de8a0fa8deddf96eeeb28660b62684bdfde61c94113d1ea49bea0f6cbbd3e161326d42cf0654449d3063ec20f854abf538bf41f8a439cf80388470b292252b06836a1e812c32e84ca9a0405cecff7c9101e8a8baa73475cbe99686bf41eabfdbe8c709ccfe8d9d4ec87f52603b678d88a97f62d06ee2059c0034ed96047abb0f68ebd5bdb1e7e573da1b51c9b7f41208e8791362d4fffab6c95930a710667d35cf2344c7d1d3d4b48c1ae359c485b6967cbe4a3de2a66f2765b0ac134d952eb2b20a62693e151d57232e71ce450f3359922749f302b6cde34a39d9206baf70fc119c446dc15e2351fa786fe16fb2693066b71b353925f0b85783ebb28bdfca7e7f6a96f30911df854b70ee208f9313733e66c65c53cfea35bd47f353b2def6b506f3289eb50a8703e15a24d16bbc1454594cd3d65b0be78931fba1eb69f982f3823d4e03d9907a03a871880896bd236f5f2ae02f468d98ad5700eed278d3f0f4ce44de853789dce1bb78739efe858226ff9228118e3c98b7202106e23e2f42c76869d89796fd4bf2fe053dc9808d88f375c29bc9ded08820f9bc19eaf3e01b32d2dfc3d35084799d833c0ed72f4e63eb2e6acf712777dd559ad57591d706c85c48d1ae9c0233263858ed18aa43ca14e499c8639fe3990960ce2b7c40ef5547af94925fcbb731fc3f13bb043e615e7ca95ae7ffa21820e6b57d4afa198c45b860e20e909ba4423e162b2232d9c801f0433b9dcd76574c8268b3a4996377b40f38bf024b98899f959aabd816119a2b483a2b38e833a9923103ded2ff9c4deef505c1a84687f35ca6dd44b7f80e51ee97e2b959a0d9ed92ee46d4974eaf32be85b6868e06f0b03c4170e2f8110489583d9e7bd19fc5d488df981a95aca269de983c791bab2aff5723957aecfa7659d0ca641733b1e6431f4dc2f8e334c5517efc4867d02bf768c10ab426749d652875cacdf96115ab8214310ca5968356243104d846cc91d7de5f85c2fa3c682f62d946865424bc48653fa7300b9346dd2de611ba38b4c2c91d21a3c104ea3be0a5b6f110e6cffbd1c292c33532806119eb9d8e9624da77608e6aa561546c310506e8f3b9a9943de5c62b599eb9538a959d6b0df1ed254b46bc29acc862fdee5768cbe2c32ecbac12a920dc056d8ae719a0a709cc30509e8fedc1fc3efac6034e1564cd97f4ca945c23d6839d4474f7aee2cf3447c23b138b50ade4c382fcf5a01771b463162a327bd0fc9cb1f0dddf209706b79df6e20371cfc71f8d55386c48de77b37e09a0b18888c13030aa58e08048146d6774dc6b483830c516a21384bb6042963bfa6c2857c75511e01b1ab98fb8f6933654f8e53d10adb9f2f999129c1c7a7223a6d9345a53b7ee74e3e0f31975517858b57d05d21cbfdacc330890c9496d8d5b101061bda7701b6620b2bbe0b70973ce9e5aa6b8c7c4334088215e6eca75ffcb471f99d329869c6fa7bc22f992c8d082ff86e39037bf10c878f9e38094b15aa7b14343a8f9618bb5cf8aee8da7fde9c1b14996ef4a237270c3078b8d41b8cbed29500e2572ddfa5f5ae4ea7a42c1b2503465ac2fd3d7a6f11ce8f4aac3fa1c1a087fa0d222db7b7323e9212a79798d610eeb753923b36b868a3d53f4eba4d7352abfbaf25244dc63911978e2403d70012bdd833c6f7e1ce8f12e2a37a8e5871f4b56b3ad372d8efd25b5510ee638a775f8d37003bd86da6ff0a11ed751567efc2e61911bce888190ae737978252af269408b34d87dae9923e018a6200afd493fa462f6ddd08c6422106883dd814213b5f627be2b3627341b860e23b1b317d793c18b50ed0f0b37e3a95d57b0023c31c26adcdbea37ed19009a7c35fbfc99331a0e2f230fc8cc7411f82f042dd098c211baf48137ec03afe7cc139e899abcf125ce1406fc42bda6b6fa5eaec82bfd4412363e53442e264e87178bda067f8ba32a2ba0704892b5cf8846cb760a4b426e0fe06ff1b02771786236caa8e8f82cfea8ef7bb7504c677eea9cd40f53fc3069fa81f659c0e9e08b9cd158bc958cd086c3032ec394e24e2d017e2fbed0e6ee01056048c10542c2cbb0d9a9213201aa71b7989ad79ac2f3460e977ad12ece05e52b4dd13fcafb63cf34841c1d95ffb07c81d69b1578f3f920c4b762d5a4132c8f09c43805ab8aa07364a5993de3ae9cdc5672e881339b2b6a2398fe7cb034e9d12988f8e2259b0e198a22af379546118f02ab9f32646d5ad2eab351a27408a7f0d9035046cddd81277ba7f6ae9d8f04ba24a3af3a0413397ea909bbed820c6bae775b9c5c25cf8ca44d46b2a5a0b1f5b3d73fd11fe159fda462debff5477fb8120a8a21e13e263ef1048b9c0487ea5f0a8dd4284a95a725eb5242ea78a312234c8b87e17843557be0d3461eac68cac746782acabaf62f83b446665c5c99db2817bf4dfc6ac7c044278704a5420ae212fdc86e0e17ee72671d9c6c2bce84f8ec282e9dba68114356ecf879756dad86c71bd715aa1e6f4e23c928354b162ab7aec0c410e44e91cf000a2927e5a156dab157cb4152377c94e88e314225685c9280d010d7e309d3a499b9723a2f65d730f3b31a6ebd666209689f691564b2cb63b539f013b44795c8d6c6fd844432cc4e89ffcada4ccfefe5019a86da80cd18bee1a3e09c1f1467e3338fe4d51e3fdefbec60b26d7ba733fa5f6bd55d0fcc9c0cbd0c2fb646a58b733b11169f8ea3eea07b1ab4811959075421c2dc560183b93bbebef4eabc0cdc2714ab251ac19fb9ef10a8f121ecafa3df4fe119583a8a775a5063ec369d08e2eceb2d7e5aac0182b50ea488339f7b0e46e2f3583afe7a94b5c923ec31e2cc5bd26892d32e6feda94d308226e8a6baef6e99e1e941a8215c62f60bbea3e76eedd5c3563c13a3152ccd09be6d3f9c457996ecae498824460b586e7162043f37bd9c49664dcbf3db40c92b8a0c443e9a5ddba7426a904ad36e9e1d6d18f675e5da8b1b146c5160e167bc3bee794563ff0dad9053ffd9da7d00fc57512c0d2656e68ba6061d50fe8f3993a4156c29ae1cb498f3eb66d526dcaf9515bebc37ebe67fab514885456059f9dbcb9edd1bdadc89d0b324b2360efc09282157c40b493cdadae9cbb6823c6b4e2b7e80e57b1cf66327238dbba8810d2433f9c13455dc4846301ae836c74a365f6161a9a42cd3b9be41b92117cf2f1eaaac754b3f20d1a452a6a4f7eaf56bd115ec65a3701bc087630c9c514648b3b665a5fdc15b4955e97f67092fcec8845a0948c1b1faf63a4916cc9a698a95a6611ba78966841d1c6f152431ea074a3b2c5253a5c49815a1e5cae404c5f00489382f6c3b1d36644d19b8478916eb9af53477dfa7205a77bd0098cf8bda8306096f311436cece997bcf6cbf68b1ba3fdfd8a11ba72a8ec437d148b5ffd24458f9ccf1738521df1dc9cc8cbf2939c2747f2989f1abbe90d11ec7b790afb7c145410ea09c51fbdad06e2a6f656623892c8472908c9eb93fe584e389d3e05362406a541c5be2ab7491fc025d4cfe4bdc0e270b088f220cd0efac9806b21cc3ae1b61022e73abc412118af703a74caa009150deee5c5b31546d4cb31ca81e78baa2a19ab031636b658857c6a579d2599cc2b34f547ad60f6e90dd571c67ee86aa2131c19c311cf278fb83d68e501b967c16ff60ec604e782a74d7488163264088b89c7ff189941d2a38ce2fb33fe26e8fe9022560875ff26af34844f40f471a9fc141873f131fbe3035c046a87a825a5aa606ecdc637919e43c504e73f344257dd3250c5ec0521eb49dc4f0f77aa1ffe252f9f69df2691663447e11b84101ae775d384ea46383d88c80ef0f08029600dfc230464eab2ec0b005dfbb179f4e59116cc26ae65179fc17cee1534eb49074bf4db4f1a718516a3daeb50399c1b58764577e088e00fd51fa7ad52b78fa8fef70d47b2a38208286786bb1438d1779bb9b5391a975269b7b5be26c54fd1065a5fad74f0d61e8fe71e6814a5e6457ba31e12db81a81285ba0da480ec836e0f58518ec6309850797dedd198b0f86e03df8bf377137001519e7a896e4296934f21cf3668cf112813bcfb359f56781a8b03dd9b4871605ac3c34a3c7f96c42a26600f9f93d776827fb53ae5c7e409f5d933508380decd8809c0309c1888fe0743ab54516c491a98a591f96412b3662bdee0b62615e19ba131c858c188818320dea1ec209ee6a59ebc70d63bb3a696a23609f665650056571bd6a406cbea81e8b5e040f94021b9e81bbf0451d9acf35b27556d8d75158cda7bfe24d52e3689cd249fdf3e542ead0cff6699a0571e54d4dd5db4385d741acd9b896849fff16b2e2c9b1934e7e50a94fedb5d3c0d63b7ed0003cae55d1654f1814de6033aed87292f1b25588d46337bb9c56128d2e98eccc4a0b7c041aabec2701a913c3eee11690e9bcd47648b18c3aab6affb8c90ae8a5f583bc580ed2daf3255907efc28958ffb8fcb732eec86005c2477c0bec68b4e899645185c5c3c8533428c0ec0a51ad6e66a62e59892baa7267ffcb2ad52afc831f7e3eadad627c6e451f61461290102da339f489e334be47385348d7a6d1f3ecc35d0674ad61ff8ee5e41d99a9add7d3f0bf3582ff1126d5787f057d223e0e8a7a0e5c739341b02eb1c87e2fd76edc66750016b5e280217366f31625881bf946863bbb5ac4ba608a27d1e3476cee3a70aa9d2d78f7a7969d33410e9c175c92d0dfbfaa0a4ba98d14cf3b580d866360ac29b80ff63c3ec120a25d9eee88a34164d34a411d1e8756629a249ff6cf0afacd7e47acc6eb50d1ee10ae2654ab59426f7d8f26e09eb89ebf8c5fe5da8d15751193fb2c110ef75631433aa56232ff142974ff7138e5e1af92398d58efe54a490be1da3e85baaf24dc1ad284c44a1ccd099fae051cc512f2c250086bc7bceb3b14087b55dc9ddc3036f3e751642c366a9a44c76495de38a77d6ba16e07f06f85ef37008a970fdaf5212da7b7631df366302a04a290104b11db1d85aa531f119d9c5708d3246e5c7d86f6831a7acc5aaa844de296f26800d7ebdd72d7cb32605f87da7ec25c449abcca68079382b0d1e6e99c0078e16cff36aecfe2f50340e6530a2e0fdf6f9c4713bfd7d2b56ca76ed9fb022f22fecb81d79fda9c5c63324b7f905359a9ab4f16fc56305f00c32a581ffbfd2f164d603f0904f69e6ba4e82e31ab331daa9ee8e278b9ba02b6fc30e71e03bff1b4d5802fa7fb98c46b66e1c7d29e1bcf8d8a18deab853a43efe05fc7caccba268e81aceaeb0c9edbd2f99176f72a73140b1afa66711561aac3914d6f6226b104176ea84ea19e6a3d303c20346d757c8905af5b0e76f2f46e428a06e8aa64a3b1b3241476030bbfd3fdee7a7d828297bc63e1d53b3d5259ea0588d0b0e466b10da99e7c16ccf5f3070676782d7ff55b29a5ca825f1dbe542061f098138588cc4a98b2aa2ea3e30fde788b790e18e5eccaaf8f96b18774afdbcc1a812aa1649ecbbbaa9948ba50053fe5b6a1b156e0fe7c0c01254804ee9ca6921404bf93bac19c4924b96253cba7652bec3c04efb78d7e5eef501ee27cf3771167c4faf98c1e19f4373c5bb91ee781d14eed056c72538e39dd81def2004dc2e2473aa60f726b0f46408b0b0143d5a826156b1fdd8c8e4cdb928fd708811885c089180e9b789ddff3c9d04428c18ad15971b82377ae3b9da6f3e6b60b6da8693c0bb91b4ddfab363d2cf38a4266fc612caa14400fa1ac60a6f4145310d85169d979652f9536c632be8e599513990d26db5b9dac8cc2398aaec94f2d7ed50ab5a94584c83903b6748e4ed9ebe7929ca25ea8c53a9778d62d54c0fb242ac05076d34d0fb029b3e6b724bae60078cc6e4b1f3dd9f4b592b527143aad53cd452842cce2233d4943ead3290f79e902194ebabc4d144065fcf76693148d7c3cd584dff636f69f219af6182fceac87fb65e4fe6b018ab7c7a7cea0818895aa8636fdb917c8ea9378827c9a6b6394f9666a119711efb026afdd3d6d707362cddc406f50529465d48419c0dd8339033132a3ed683e0a9f8927a75368b2e7da16ee5ced97f23344d7864db0e5df2d2fbfc9fef45b74588bf64996690cafffded178224d668df6ac2b3913ab504fc8dda8db0ca1511e54df64fb8bd2065cf2bb96ba1239680f5e97276b097c752cbeec96fd745c27cc7f356d7961a74ed957b69f9d1f7da0651c5a50be8c799deaa640a65234ca26ad5812ec8e512905b79791f6b4c0d0555fcc88135e0e59e5b8d33aba4a74faa4b9032f31bd770eb1b911853f09427a448316a0f2b4cb324858c3507798cc2462e94d1a219aef141586570c1863344a01c4d2a22c66df640643df36b509e2875f6a019520997dfc800d2e4112d2122c4869e1c9a8042e0af2f4effb5817425437d4dff0c83d31f75bc80137794bb6e1e35d35348901563917573363e829b5c96dfd30e4aad878979bf3671bdbc56db89b661697da447bcc01c9ae243a10be1dcea917f76338d233f3d8317df7b92c17aa1d018f1e84c0c78d5084bb1ae41eb35e38de0a730b49cd485db61c864193f633d4f3dc0f6d43b30440a86eb37edbcba0e93224eaa17be9f7233bec8bb4e02eecc66ce7211f35532878ea09d36fbf34983815289b038777a8758ca3f2bc2837370f92a0fd1e4afb526f9bd2107d21de9b812c30f78c332fc714037c8b18ba31f462133067cb76d3347a3a34175848b3ec9dec609d9c6fbe092afa5a9e1fdd5a06235efc65a2ba60884921f686167331cc25303594835d0f8e063325467933f9f2061fd548dc5724e2965b81550b2ac3eb92e259f589c4e95389a7b8eeeec51d21f6a03076b1437964e31b12e8a07fa1f044b746de15d0a678f1235033f555f09ac5956060a7db22093ee16341ea36c0ce63bf4f6f1065f93ea7d0c708007c9d4bd63aabdea22ed5de0fb5ca9c9fa043f757b5f337bab8954ccbbe21c4bceb26cc735ba0e3f29b43d1ac3270ec8d4d75db7f64f8fa7bf979ee1d41f2a5fe71d1c16b8673b22547347a7bc183a16d8f912a83de294a0fb4e83dba34f98b58c658386ac4bbf869bfeca9d75f226b803f43ac0432195a8706cef83896c334d30e8dd7b9b10d42e480eaff08d536a174a36ec13f719fcdff965916bb3e41b1b2dd45098839ba3147312c66a2607db52329b36dd8a70e81ca88cece24b9ab806dad2c2a34b2ae2a5dc474175ff238048d6cbd6963611b4c743a5120f4998eed0412af3f1674efe36840479bc1bba363458ef3ea63faa62586fc604579064ce3a11d1f53e37825399bee5f55ec9910cf1bc509af9f37ce466cb62838d7caa8e55c9765e868977bcdf39ca703990a3f39171f1f2f559189b5ce2cf8afe3225227dbd3a16d04a77e81966e2e190e685cce5f342101333d2507b6d709f4a2ba96c1256f31cfe9e3a3db768dead0e6e0077109865da0de8fad53dbfdfe9f48581121190e9f86538ace521c523fba912a4f063c8a7e041c10c6b9523fdab79e9c8922a644569fe864fc84855df083c79089fc93ca78f10c404d1d06ff2ab0c2d38d91a1250b667cef38364b7ea2afa1be9fc33d90f038fc7fa39f0c4391a7ae94b326f4f7ff7f0822d13452ad378a1adbcf954fcd302c385dab5e0555f19e6d0d526c80a77de9bd5c76337c061e852f9b0c6cdf7b19b9287e3d9b186fb5d43138a73f97dc114081bef59850921eb4cf5d8e33480bae4416caf84dfbfa1df0e1c9542411f10a874de37ec86e8beb65511e5a586eed61ad17a718608d73d29deb12f7594d60bc9d4df9af35c16f34e54b36816e71814b269cf93334328c52dd3e0dbcb1ab686d8c13dbce213c08d2c7684dc52d1ca36f155f60ccf74b5407fe19e66ec521532c19e8bd95ca0cb636f1556a84a8605e3500e2d330fedd4767ca167450b9def3584fab6f6cffd4864ed4eb353c312c6ab97977dfc36aeefbaacc229780c9b66e92563a7bc0e1ffac3d9564bfeb54cdb6d9c5192b2466833f6b0a4beb2d30421c282d1c178fe9bcd6aaa8733e1165d852acf73de85acefec0471462530a2057ce51a35e8fc6809e698008b230c71e9659c69223639734a04ee28989fd079d536cc0a909c5c3687494384709182a748c34b3c830c7245de671e5757b5544dd0f4c3af997c574b71d7173e254734a7524c81fad9dd3000e9183c4481c65875a8ee96bf94dd178e3fbad6f874f9109df413b6e98db8de91c60dd96993bfafaa6d64bad8becf8d7bb545eb20b966ccf5b4744a7b6ed8218977e07ad5aac2e5e4c3fbef4cc150615f36b6eeb17fbd60908061a08d8606d6840464d10d1426a790df394d9226be5bd3d1739427aa964748348f1242e8181ea28136335596bda3bf49f9fc865d8125e01eea8023eae90620bf35fb509b38592c182094642f8c910371c22514dff271f2baf3ac1cc1bb25d66220c4e42ad805b825b32b8947d70eb4c62948b584683888368bf092e1192c4e821926e8a9fb573dd18fd663f19b63702d581692ad589f8ba42e012af77ef8e4d98b71a86e5a9e8d25616d7d83f744700eda56f2fe0827b134f3bae03c7560bbf0dc56fab5d81f2bd71f93e352386eb4c79d0a12752f777be691e762f4d10c62800f9995b429c217fbec93ae042691a8ae2803ff2c2e6c862fd234c49f79a22a4566c7f2580c03b6a864985e918f9e93f11dadbe1a67904059fc4b8f79f7a655cd94bc3eed1d4d42c3b092ad62ef97eac9d75fdab6ab9e0a40848924fb6312706f8471996273fb1a5591fad53d0724a690092c222091b331f4a819c3c7fe2b878d34b9b3c89e7b17ff243a5fb3a46688e926e7dc8ad21da8635a88de7828abff741e55021dc68e36cfeb9099376690a98b2737a464b604ed08374651d2aeeb62878eaffb40b09b2b3a380c60c7749cf40df3efa72fed27c4184894c87dd03201cdff1088451235b1d24b70a2019de32f118480be4df029c3e5ad9f30f8379b477ecc70629b30158c32e22fc3047a44e5ef95e9a55cca6f174c6571864a1a09266c626d81d4970b483fdf98ab58e856247654f958fb1bc1577b92078ada7f3b3ca594907ecf2ff348c9cc0e1637150e023e9f2abe87135bbafb038a60f98805ac17a0e5eb696ba07f0cdfa334adf5d5c603b6064210a094f7dcb9cf0293a4c7158289a87943f405172b5b77f040de79ab9448fe6a0f7d71a9bb30bccc1eb170f51758aad8121791a70fdaa80f0dcde5bb2727bd4f0266c3c075bf835d9e4bb5f77b0cc0ce8c063a9bd6049bc8788d5a90fc1feec5cd67a9e1991c76a841b93b0b1bfb1df876368e3ea5f13d8b7b53523c24a54b2569366014aa716df0ba2aae610bf7c31c08cd882a89cd4542287db46ba0a8d92e6b0c9caed9e9a2fcaa30637b1a4b0cb459906f1d4520e059b0dac18eeba300e8cf6edc2d5380c951ed41f206bfe3d69f61db2e2057146b320c91099f3c9efbb1a3f5f0fbfbe94d0eb7dc49d149e18c6c92b1349914371636dd37af4cd34c0521add0a6943075c99b7d86748aa99e8ac039baab1517c66d23e7769d10a5f8c3d06d7d722bfbf7090c8dd327d3441fb451706f1026db88d1fee1089e9b32efe35d29168247025107bc9784eeb73a4dad107b7becacdaba5695bd4a76625ea83e7de06f6ef97d7e452366141cc6070046c834ad20182e95583675dd4ca94c4768e95c65d4c3884f03f345ff0cf9a3299cec37ddb4ae611a0464dd90a0f417e3f2bb06dd5e4f7faeda3511779e0609fee32f8ec14921917fb3ca284e70e346edbc401b917e7740121b9556c5f4555b53580416e14e3f1bbf964c1656db5b8ff9fed1562610f886e9bf0018882d83db1e8d9e71ff6ce35f176fb2f3096efe6a03bfaa55a41960b389fdda56f1617a6bf11c4ebc9643b5b12e81a476dca9e9a4481f866a70d2918423098cdf4f4911335a02d2b892303cd6577638ee4547af78c583ad9db4a61b0605fd5515b13c9e43efdf7b5d43b63b05ac3d5b1f77eb451b5d0316c7fb32d2283ee31a967cd8284975dd5296716119439e23aeadb9d9e01319eb7dadc9f6fddaceb35ec45518c91f811f968a4b16109468051346bdfd1d2b2c7bfb0cc9507451abe51683bf0a598e93a165237a81e0b7d00db6847802b37a5a66c7be8d617b3432b82459e59aea50ce9fe128e03be7f68114cf089d6399f572f9ef5552801cf7ba7403df235ce6766d2015158527660160467b5eadeb95db8d3a81342478c7e272906a96416f1a511bd590660eb1ddb12a7c2bdbb3572e837de2ede5710a6f636fec9bad335160ba258ff231d4d474b1e2176f5105f5f88501db044854243bdcd3a3874dc2b678b290390996546e72a514bd6cce9a5bf1d8d6a365356f67fd6d5b0657d4623ecdafa7c8d275b754edf846e36fceef6630c1950acac3dfa142573b571630a9fb875ba913830da0121784323ce9063578792dfbe07e0c3bea0979dce52334f515d4e428a86abfb3113d7a09f50d139ec800455aafb73c5392de3fd243fe8f0c7b08665b2bd917bd45c44c9369eb48824337227e1ca8561a2183eb2a3c47032686e1a960c0445e03eb803558b9845983cb5af44a3ccc1eeb61ce47431feec67b66baee8bb8e74731b6359bf5c40db0688c57060af67b5ae11c3312e3731682858472af739c9c81840d7947e256e6d06c3678ee9668c99ace00a4adb610ac92f7b429a94400301aba2ebd21706300e26aa64460eb1af12a7df374b3114b9d1574668616150b3c331170b148043e1d54e20fcf8da8b502dff9fb4e9a09640b50642f2fc9c9960cc540a0374e16a7cccdfc0a889ab39fbc963ad3986ce70545a1ef8fc05cdefa98de2adf9c7f75763fc8f3bf2b9cd01dc3a6f65f51d753e786b0716527352e7fc63b22ff1b3a03d4ad7fbadde559a2fd52308cb94b5af5c795874768d550acdedc6feec5f066d998db415258a7166b5d44bdeebb4bfa2487264ae6ae240197c2797b0ce50c25d4a6ae27b3d277ecfb3f00b0bf2f3aba11cb843a96bc6525de3ff183ca0d81ca9be8fecbe46cebc1705a27627172bfa7caef7be59d8a2c3cfb7242941a3111ef0946a7ca766fabd90c5bfef6a6b9eafc4dbf10c9ed81dc911757adeda6df837e81f5c388fd1c9c1d028602f554b88698e4f59c1598fa6bc6fc214807e15fc7d52f3898bf2dd32be16d456502399666166eb6425982057d154e5d164359e196f11c88271925e7de07e7e31f34e326a24abf4e4666f7fa5e0db5fcb6578f0efc1be284ee1cb721abe8a328dffe7ec74a3fdf8c6bb8c5b9c7a062a1e1c5b75e62bab8d35e7df0835909eef5aaf357a8096d3f089b0c900dbb83243061dbf65a2533839785876878115b24cfba43a517770c2bc10e96548a7e6eaadf09f1733e062457b54e1e2b42a0f77a5710d67119246ae92187b03f5d78d9ba96dc4c02782181f10cf6a60cf9304a373e0f34c06b1fe28bd287b90c9ab673df1f4185832fb2a1402637201075fc4ad7405b942d5701e70d7a26b906fb82d7963cc2d220cf91e8a0f40cfd48fd444e9aa522eeb813a654d62f134799f5835cc8d136e037a533ec47078d8add93d76c24338969b7a8409b6418fa75c80e8c4d1e4dc207dd6863f4996d053672e26b2b3ace687012d531e77ceeaabdccd793e851093d6a9079f2165b9fe52e8215fa1e82bb75f3c727444f16d720c4999910d58900f6e3b40321044f4295de93e3c4ca7f7b5912f9d540a4fa53b82ea88a5e7658d191a68e8843e80c178d3ef35406a6a88d71ad68b56238eca61b964b7f24b9e91b999bb051d484a02c9e8d02c1385de21554c2a230f3f55db39b23c130debb4edd4d35048082f88f3474709447944e924c823262448d2e1b3b41028a598ab0199a12fde27dba7fc8222f03f30a404f9f3df31f4f9c004fb8a4e4958b1887e650c5d58363ea60b76cc617fa69b854bc16e352dd029c6eaee7ddf023d922bd7a516574baa1e7a8096ade85336e467b4721be61d8954620759a1a2d23cc20bc8c1bef99e5d8672aa5b3674280da90bcc86d292d854002c9cb4e7d795237b5a89ca172cfede840a253b57a223fc3607dd45f96ecc99d39ee8df22db982477817dccc8cfae34dbc7de2e1a821b115272e365583c0bec081329cd82c61ed0250bed815c9e2af4d7e3d2180b21ca9c99cbc604c8c2f48044bacdb93390c344cd4509a85e17e5ef13df408cc0b820c39c156e13d84b59a63db059d087bd74c59db6a414225d6ffce1edc4fb506d2b7068ae301d5517b5e0a20e7452a6d751ee83bb593c9df58d9e706d3980a53144b501b38b562f2dde6332e29464c48bef82137feef4093e332e001f8d03ccb2bc836188c94ea0fe1f609042fea4f2fedf7ded07115d2ce505c5ac9a6e100daed326e16c4062bae8daae1bd356ce18145215f9d43c42fae9ef1b867a9530dac5dbe4da272ade34d7c6eed02585867232c76a6e6947883ba4a1b7c9730a85944407f455ca9e29c063d586a0a43e320de59823d0f676885b543b17d1439647633ba5e1adb848742510bee5c5490d66458a343d16b3790306aa4c0099bf40f12b1ce63e7bbd0b2a8dcc24fbe80138f9241ab8b28da96163abe11c9c25ccde02d30fb64b779ef818ed0a6f9ba979a4436eff0fc50cdb3d678e11894947a759647c82b284664beff7b057c70e3b5a225b40db4565fb8245495ac8e19a675c781d284e728af952e2b5a6964c645bd08de7382974f56c65d81439d3da58d36f2dea5ab73e41f4fed1447fb831c7809456dcfeff9d03f57b9f64884a9a1ab162637347c484d7f15460ebc48eb700397bc6c32cfdd7813fa908320f6016a8bddc4a9af40f9c1dc1b951d89a9e28010a4fa185e05da7df866a095f574498126f02a3f247673b2f57de8c087374092336e3a9f1eeaa86854cd5e736e846be7101bd922ae9c3230e416379b78809f96a02f3d1e2a045874cfb875de0f43b170fddba8df0eb6d1aa6942bdb32465b0d3373b77e883e217df1cb964865753ea515096f925ef1137a46a916263d03ac30aa911b8187c8a8f896af7400dec0d4bf4318335eb9deb83288988eced6027594a216dc75f833f7208709182e498409f2e81b8ff8a3ffe62c90d303dac3c3a7153786ebd7dc1d52e2f5901f531a3ccecc75032862ff5538b076f0ab010d80165175499a8ae510687d3fc35bf471e248e1737170368d0a555e0d07f3bd82289d7d8dc5cdd3c41753ee9df21097b29e568f6eb63380a9ed177765951f8de332dccd1a04ac08dd6b907c476da065338212b48a9b9f6205cf6881f3fdcaeab2a778ca6ae83a3f6fbb067a82c9e575e9c4135cb6e04530c16086fff74ea1c8f1aa34881773c207e086f6c834b0258ed20e9c27241e030f1f24528b87f161f0c2772f604da1317793d2b9b1e5d97c19df1b14826ac5ae34730e32691e1f9b4a22dcca44d607dc21a02deb2c644414620ce0ee22c26e1c064d81e46f41860749c6380ff8fe059e4130c825d17d17fb4b982ff82cb445958761f619c5f70a16413c9a0e80ebeeff42dac2742922d46026aacba349cb5a3d9bc5b0422a1fc8bb304acb53ae2b687a3698d99af82e56e8f9543d11dc4ef2b8d4236f084af2a0a018eaa6a899e4e6b88923d31e38789f94c7fbd910d7ce5d88bdbf7636ec9d457463bb2f512a226fb78f09fcf01b125425a089b6225b1025858901783b3cf75ef8e2de0df4d2ab3426f69ef1d591592a65db2ac177fc2ec434a463a9821f51dd14e7a4f7ab42be1574713975ea12b5650f456fee2269a9af0df70b654f8fdb5f2a72c7b5935722768594dfcdcdf0b5272a1c041fac97f093ed5a0dbecf90c4354c1d0bbebcb60f2f5c412b03d61cf84995dfb2125d1f71ab93fd9c8228e8954ebb0eb44cff21d8f7b539186ea7cf451c78574af3b9ee174400ca83481c92b2944a52fd8bec17375e137c66b8eccba3d01b58c90d20007b5e652a0743619366086cf2f0b305862bc14fdc8171ea3633b471682c2d2d002f7e567d2ff05f6aebde66c17ada427fbc745a14e24d787741839cd89be04113bcbb61d49a5f9d4151ec4e1101343249b45faa7b505415993321403386dbc949971001b118af8726cac58b23327d385771bfbe7f66dd3d04d0af05f52f699aa1bd04a286f7a1fe3fa15d19070b71dc81e9b4bba235b76b275f0b6a609c74c8bc2381739f3c71adf40a23669c1b92272a7e7fe08f8dab60e5f4a3a7fe0961980e2784f299410f9447d0e796aca2fa5de8a764b7bd0626eaa4460907a107fb2f5a091bbe2327d4e05e60f92e0147e2c07c8be5516e1cbcbf4d0418d8f10a668d7061746f9f67e52e5f994465cdaee405f0a0a3130bef23073f95d7d3177e536a54aabdafc218aeea5858f141990272b4b6be9c1859bf7c42da2a6956a0be7f7da98a28bab26a628cef538b1609f3764bcb3cdcb00f6e1ec923c6cb5228afef712aa27aab98dee05a399311086694c09554604a32a565579e007075b795f30fb9d94886765c8c43d4f07a2585d37ef2d3f21aa17781ac70da46c8c399a30ae38e526f34c68f60628338f810fad10626fc7670144714a16f9375b78d8161aa6f975f816b9b1bf8d75284a152c98b5d4f035dfc2fa2220baf66688a5c955a288ba3dd63c561e45e609f8a22bca2900a1339617ddeb583dfa2c4569fd7eaa4004d05f3f20b58805bba99791d425a26025b2f44302e215adb8a1b9e8986a3befcd70815906b3e4f035522cea55de3eb2cdd631833a2b55a4a612f669bfc4f5b59f3b12b71b67638607176ea4ebf2d9dedb1fb69c2ded133553b1afa218d1665b8461a518cf57ee7b7e71f1d656f8544f1b54667c85639d572ce8852aa663a61534eb100f19e2a7451b52f4a48ffcb89eebff8582314fe80933736c3f2998b6868f9ea153240b93c9ba2a30c9547c6bd69b4609ad71e6dd323ad0fc47132cdebff55b990e921dcb6877676c5bd7f88c732b333fbfb896b953385bb839ed19926fc7f393e59270715a74e457882ddd41f48cb9fdc307e47d5565da3c4026c11bf880dff87dbc1fd908ca88dd851b1129382f12310ad5c641ef334d7263fc862e54c82dc304bbca19ca688846ac07777ec7da488a5b68264f59ade09be0aba896b057302864cae334dd48ff2ba28f7b26606d36970873c174bb9147c180792c800fa716d29dda2cfcadbea0f11f6012a310e1bcf367a374cc40eb516591bd652578880e95568d6c9d510fb9e8984aa91bff50765c2f3ad83b47071adfadce36cda24ed14ea9cd05ac7617fbd4a0d81a69a874d7b804c2d91fe9d70c20a770f8d93df023fbd407d7debed1bacb02233399078cdac4a5784b90ed33dc7ef531955b91200e3d9bc2f2315d15a6c71160e67325e87438222fcbf48a9edd69ffa3c40c8939b49790444732135bf911e2b8a08ec88bccc9b7d70d7da6aa49c8ff7458d7356add56a1a6a9d6f588ee0771d3ccad59e71209fc888319bd2dfd586de0b942c00bf36759b3edc33b392f023d72e789319bd9eaf960f37af309af7065acea860c9942995ad1b082b560f8a1095696fcaa523596caeec60865766ce97072f0f594bc92b523f0e92f79bfa80914c3cbe41af0d0311491fc991f9d9729fdf8bb058092abcad5652efc7941cad01367afcae4a895c36289119d4020b6ca3816acf253e16d61a9acef6d17f972c5f6280c5ee53f5e9ceb73971b87602595bb7611b4456e096308cf88d2bcf3902c8d75c281448e8be4a8ed3065a35c1d83ccf6727d5a9e06297a53d9125fef0c7dbb437efaaf52956792b27f6afafec4b34a784c95b34649caca7b3fc3d8fa8e2c90cd487d8e964ee763487ab1826c9c2ca091f512e6e3a0a2c2f8da7e115b71b5e4f5d24fdac6f6db49adab77e1795314f64ba7479b460956628371c25b1777da1da81ebe406a9779f288cf1390de9c2a4d2e8237a5966d30b0b27ee78c8ed22d4659edd2f2ebd908c45ef8e07b797ee2f9964579b90fbf52616bb6753d608504569b72aaf99683ac7beb1e536345deaa9da1216470f722e018a29a50743e02a656612ad5d6c7e73e867fdf0653bbbb726800ee96624274820d0a25c7abe62a2bab23b822edfdd2698ef39842c89a89913b2c55988d73885e5b2d11bb6462bf5ba6df554cde63c412a2e82c666c3a85c485d17e2e7f88d107c00f7da5ddd061d6d51fa0dd0a3d214b3bddb905bab1a093494d968d140c0672b3a74a7080a1c39568d637a6f70066ff332ef282086b81849ecca8fcbd39adcaaa0beea87d8374d98cd21bcf6f1d296fbb11101bd048209866474eb8ac42d23790cf04a922de10a1d1346de0edfce298198bcfe7eb0b73d683cccb7fb3853b287ae00a0eccfb8d4bad3eeb9c2f80c0782a6203bdcb32fb0324e51e73ea2d670ece848326cadf963789db7d4cb71cf1c19b0fcce2519e133df0a092e4bafe8270c493a09eff0e63774420cc5dd9f83c6af6ed33f4db54d8181bd29c5628832b9ca81099993427acacf3697cd8390f003645d99a86f8189d071948c9e301e9d29c881439629f84f4907c20196601de57b2204a41953b7215b51b16aee4e6c067653e7b9c20e3ba0b6cd8640946cfd71332ded2503805a4868f1377da46550cddba2abdbb10fecb41177cc71dcd5bbef5d46441dff2aa3c881a65e9e4c1c667150c976c76ca07f9039ea69b719410c14a883c5d23d9e2b0debdbeaf08aa5b53ca47aca82b27bd97b3037ceb3a914961e633b83bf411ae9d7aa08e3f0e1b87704a44b9c738c45ca1b17bf2d91fe0bc68df1e6cac8bcc2e5d9f1b06434007731ff5b43fc88d8979833e3ae4dfa677c0b7e74443888a8c3a96e255a6ac0c886fecfdbaa6c8067c34d098637ef797c5be8f861ce016e8432715786572b54be707a00d95c8b800917398c3feb812b1e3025a497ce49d0924ca247eb28e3338b5ab03adc23f64b3d148142c1e860c534dc596bd1202cb3a490af34b6ccf348e5cca28312db00a0ccbc6385c56f115c48e800c3dff9b242e023ca848793e255c6cc1abc3b0ddb952c226078b71c7ac8a41a47298d38c236dba5a706902433cc9ad2032bf87d0dcd2929e614c9b6851343a93dbb4d09835dfa0ec1ce3b16523379195e5fa09711dfd8b0a1c4777000aa6bd10c94fbfd0440e35f49867df30e20fb30bee51b0f7d1bc0f1ffc2f7f0d6b25d72a673e9ffe29d9b06cd4765c07307fc71cb468c1a4700ff5119b94858a4d2aeebe91fd00ef79ac0b41f9d0b5cbf42c30d8fb050175a887f0d6eb62a64cdd2050ed0e7fb78c1568bc3cbd487c139b8023c3eb050d78697c99c2b4f95865cc26917807f95237465a48503958ea214e5176c54b54825a03bc3b8cac3d5d45909dc6bda4e35a48f229068050899ecb326ee07dea769e9675b1d64103b9c781d338133fb522a3f2938fd05a2408df657d929f7c4d145738f21f48a9fa0e4f43d707bf13e6ddc7d8c1b190303d9deaed71efaa30549b1a3be6c85b2ec1e695d00792cb0b060dbaa34bb88cbee2bb70f86c33e22f0d602356b014edc94e7a43c12c6fbde309bfbcf991ed2e748182caf62392adf3e0c1610a67d0e3fd82f146fdaf773be89391e8b7be0d9e682ff89a43b6df5a3707140c91cd70f6b7bf3922e5b21a9d6f32fa5c116afd22c56595130a5385803ed9321739f4106e0ec76d310e52ee1120ad464c569018f54f72a731bc851e13bb9ef93c7078c220d9cddd9bf775a1a14919b2398f757620eebfaa1858ddf2a700deaf301e382de1c35148ee0a1d923da07fdcbc4caa90b01e37e8480a3375785946d5662ee92fdaec93d9c8c719db0ac724f888f88328af80777795837f20915c7d96f4779ff442a030c2721aee5300b35edf06099a8a24f7cc00c29eb785c94fb2b46c2127c92ec936f2fec340dc4cede2ef507e3e149cb049e660c780d04af46f15b093bea1a34c620d6e6d82a9dbb96600fb9b6642395aef835f03dcdeeb291617caaa046416dcbf11a711a0b8ed04170635ec5898b962dbd42136a31ce5031367578db1ea5d4821e45878e4492474c39e32ba1051ed669f0609418f8a0e86dae2de76d6a0fa4064a0f8790522eb34498c63db27619b7e0763deeb32e4c16a499a5321b44bea4912bb0e1f57126efac7f07de6cde259bcc847f0a3e808d9589400b3faf5822dda917429ad8e068234c51dd8932f4898e28a7e8caf59172206377b4285ebb5970b8e3a96011cdb5589ecde4b9688f9b67ab5575ce89107af5c69d8efe1bbb32303956e728a641075d4e51d29836ccd89c95ffffa975b9d2feaddac3ebdf44df84c0b8be6a01b931db27ef754569c58b367192ee9dbc4f8c49beefe00f309ccf27c3a7dba9d195cfa5ab28c4c8b9fd22e89e1add120f8aec52594e6677bcf89d31bbd17c7b008a07816a9423f3a25a73755e3a00e07f8425e37229f40ab2d4a9be694139b7e75457dd252829c55f86cce8b7d422ed91d66fc182dfdd0505e614e9e93bac3c107bc07117f1fe36f6510576cfe0023d53b129bdf9f75e892b4ffe1100053e12c95c5fd06539094b94d4dcb4fc96469aaf6f99d94d96513ca26d96dc083ac7c1e291bc270288c7f8c1e227c8e14882a813b3cba6ec044a2a0aa2ff20e73f50b7bf72ac3021eeaca7d779cb229f94d24199df55572b93dca92415a370808770ab61f17deeda881694fab0c79cc0decf59e602ce2821e16c988a3d8da8e5b0e40ae4f5d44613d169903f4235811daa06da48f2e8a204f184f06354cd2a50300cc16c649df4a3f023a0ac6e6cb8c2503a5641a1b33d21bbb847770e0088be043f05a8cba5160dc8444e13139fa9bcfe3704f79ca6ad943c4480a8ccb78b864ebe48fc3828378798eaf96ec93ecd102774bc508b62b27c0dd06151eb952c1bb0741be90e69f01ed479b3b207dc2d7f5944cac5289b60fa362733e3b5e808610acee3f58ab74f38ac23ba8be68931a25930ac804f7207fbfb7f0081380c238e9d7be5b249ca22c9976007ba8faae2f4c5d1da5d550c1024a663fdbac5b7f5fed493ce64d67fb52e137ac73536dcd170a88c2695c672269018c0b1eb360d385e22ac5bbabb834f987eeb4eb447fee294ab886a018c2d46f237b1bd1d1b841f209b7c90274f7baa429d2088a197619bc5f2b921c42198b143e0a9254e960ba127ffc08d5788f3ad6b51fed86739d82b92b6d0df55706f18007c0b5e2b73e0292bc69db4a9decb456f79610f11c6bf96c1c93f50cf250c88dd4b66c9b5b48c220b00431a2c0aab4f86846c0b79126122ad15e1cfe464bbe902552e538e9a22c199890863608419eed3b9f75f9c8ba95535594e19e610e9537c8138244053beb44ca1d1f41b0f930b30d43bda7c872c445d3a633c0d88a1b04e6000ba5e12d15d104ce7771cbaef2a38cc86a7c715445c9bec85121991e77e086ca5af7fe009c79a3778ff544b212ed596d352e6bc374684cf6656fb0a0edd6f4e0e3f28c83b4877af33fc01cc479ecaee82f8dac50301384ecfbf14930bbf16a53f0ecaa751c1accde2dc145c19d6b45bb20062a8048be889a9ed40981ea283a3bd089417a27cfbd9cae886cee7e3ad3f4b62fb6768e0cc92622dc3d50b98db7205b5171e4e05fa90fe85ce38b8f948e017b7c3eb34e8bfa81ec98fc35dc59a3947e74ae8376380fb6cd6d9fe6322fb8fcf40dd8401fc7aa36ccf457710bcf84f7d6798a66d747225ec28ff3f60a3078340af35b57f704147d96215cb62f478778214c7bf9839ea6d41a1bbe6ccf79cc695c16e2675c332ea1844c0fc7acd46ef16afb12bb0dce568a8b0c76341258ed431caaeef286ada8e388f7264ef1cff0f22e01aed05d1943f6bdc9ab902e4bf86b733eb199f2010685f6694137236ae6db1c1f29a0c2176bb6b5048c0084a3c65b9907f161e64a728fb19fb5f19edcb9f29b24f074669d03a3defdc8c07c5d716bf0bae4c0188fb89a2bcad8c9d7dc77053bd6cd7efbe063db1ce4d1005e5d042dff41100d306ad5e2f22830cc797a08bcc7c49bc35a9bbd75dd369d6d80d53616f97028904aaf97e3a87ff35e0758aa53fc465a36a0d6f6c28469cf89c4165cea8eb184c1d94e6507d93da99df4747a6cf64e5a63f1aa05655c0c77589f829ba717e4d56f57f6c9accde82885a62678cce0336b0d848dcb110d376792661629d81777134bc106a39d6b51def013a9d63b95a7aecaf6b1021d3a07faad83c41da2d6bcfecb9e6ab47e36116492ba424387f551f591b6974cba4469f20526f7b2f885f39b95a6793d2e938293a5fff0070fd810051b2421fa395e3374c03d718061a2963dabd2bcc6248077145b33cc8b5edee55d5f5248da41bf285c83ac44a029abfc5c851bc53b012240213908cf482537aa94e995ab828059d9ffefe77f2c7b716723a9b8d3d12e55b62c12dc6fab964befdf624d5571402b916932a4117fde3b8295b55da1cf96cf724eaab071f655182c493a8c963281ca2de2bd521d95302213e5efbe994a261100e6edc2a5c43ea866698bf536d8b444817debc43e0ea6132b75728a20793c0783369207bb2cc9dae060baa5459db17cfd780d045f6273683455c99da3291eb68e1ab54744f4a202726ab611ac917927b2237a3f79e1ae34d7ed0803a6c54ff512b4a0593fa8798d35945b6eb11f2d289e20638b1fa3c45339b3b6d4b3facd6d13a30059cda7c7d67989f397d0d7ebfaa436c9839d7afc2e1d0a148d97e74268a38b27cba9ef6a7f2b3df53dd09cf53cca169c62397840ba53738a079512d4e1fd6e436acede0c36d90d0024cf332e12a574c5d6c2cb3d4632dbb5436f5895b28f7c37d613d61efb8833548afc9a973863e9f45fcb99a0825beb0040d5136d2ad6532807c54e7d6ca25a0320817531184037e91f0b2b9645035c2bb3ac14d63ee0f7b9d842c02edd012905b16e908b24d4eadbff115cdeaa219065e03df36de9a2af56a61e69c9ced744e052ca6a8c5ceadfd7cd4a9d47edc5e375bcaf689e6df45f0120f62b31582aae100829562064b9d4c69bd900dea05cc863ad7eb579a0e5490a3c49f4593291434ee2cdd0412210fb02f0aadd19ea4f943626ca41b3dcdd7542154580a747068e1108558ff33a00186316d078f4a96ee77c6ad26e7c99c2fc4363fa8b08640a36490f81fdca5d2664b0aefa0e22b3bebdcee9b742147bb4ea7c5c07eda32967e234e41af00d7e11ba6127ce130c42f519f986f98aa950f77c6876867e434d74b4977c4c5d59f37c6f711fca79fbcdb545dd58e4de7791fdefee176e221337f9d074c4cefdd92db1767907b8159a5190c4bf2b6412095f59df60d687db26df74c548cb8ec1d1386524b0cc25c6b3a0053688f40ac1c2d01e4b19676914e563c94fb6ba89aed686b2b9d63a2a767b8d8bc78a9f19716153f9d9ab50e56cfd7a46b2b8d8212056805caad3423bea8de8608247e96d37b3d4730f9e5fb610d01ef9a6340f957862173075fa83f003478ff2d0376209028b0f129e77d59ee79d6013e2c3b71315d5b50f130bd970bbbd429bece2e8105225fcbda8de71f4d6965c38080f303e9b2db5b1bd0601aae6d41891cd6daed7438eb40c058722fcbe8b5963af7f9e0485591bbb8cea9ca3c5ef28c335473103af4add281a963a159db2f7b8ca549428bede0cf952a388595a38bd86c89e0a71772be1846cf138f06b1dbb5728626704709d413baaa8610ce0a90e8ccdef59991abfc5364c29a0e2d4f1a1117a7adaaf93f7dbb7e18acc212ee5dca6b738e3bb61e6a94eb6b0767ff2d4b343473258a776dd488872174aa8365aa2bc7b33f133039cd3e805b48b0ad8f26f8679501d9b26b4e94735771800664677a7519223b5f50826ca7acb7ccc0af2d0b54e2601c4cd46596d2c0e1a0951f7859e41d165efee8824077ab3249f83e86c8f0bc8ca18ed0197f9d6ea96edb01c9b1b5d8581cc74ef2c8299f2e82a5e963ed74301ad57ff272974fd806f74b3b6970d94d572f34667ae3424036fcf7a24186cce5b1ababc72a188d9e6e243e60ff87fe670a779fe5d429fc7df2d8075c172606e938c38dd2f80e54cd0e805cf2d958a285e7a0ec462601e691e468d812b92cd25acd7e7956afea8bd9856bdc92ebb4324ff4ab276ab19b464102c00ff118f0c28af709d1245693433809eb785fde346e1a4a53b554ba4239120d880af06bf8e7125d80bccfbd80cf180dace5a4ce72533f3bc1dd3b7cbd688989c0b59a89c0a5ca3d60227c5079a2ea721c8e388ccb3019465bebc454b5a1e0d14ce544264d9dc4868db236a9241911f4e2782051e0d8adde2dc74e4de4fb76117c52f578054c4d0bc4802f8e591daa0ad38bd204a14c4590de69a534529de12683cba96cbc6fe1c1606bfead4078b73defb13a385e9540cc201a664ad7aa47dcb003a913b8ea8bee802f908b96d84baa1290b54a71269b6184e38a89c27b70025495864c36c1f4bcbef9bdcd12834be24cce64935ddc4de83591e965574e4fb612600589826119fe2bda42ce9f26c9220a00cefdb0665476eb690d45501398f3683e13fac87d1c5aa4db84b78dab5e4059af9c964cf0e7c3ed8336f1dc4336cbe75f0b99dee1af292f22e2821aee2c6a47a76eb52e8ea7d1f2af8c389cd7d0f76d78c126e46f0b5665e862a2f3075894e0b2935ff1b5318df618942e230d6e508b0735c43c7673adde421df701f9b7640ef9bb7845feaecdbe5dd9f7129f831323154d473e1c66c5eb3264e8858f1b6d573f89b73000a42f76754cebbedd1a55786c50fc0fb07501e3eac047303724198effe13581087c4f7fc964440b8f2e37eda1d7ce1e3071a9a3816f53040ce74d84202159df3aaf83fb05359e73cecdeea368f92a956d0c0e06e5aef8b93ad197cd71ee5008e93b01f10d518cdd11e4d3babca7bb21aeaade93607dcfc9e6e309842b2a912d510e3ef2e7c86fb7feb6717b5d0839b3f159cbed532ec6c743d6851350155a97878184bc33959e393bc86e72dc7d4c613931201063b5b4f98f95294c8fc6b430a78c8cb4f543b8f2188613d928b5409d9e5d18b555e336a0fd14f3ffd7f38372045a8fba8e40613333e9b36011d6ed227487f576bac2914cb5f22c072d1961ce611f44fdf2ac75310b12c5fb6b718e3ce16d1ad6cf7a9f8a76784c8e7115d172bab4f3500cbc44737e2733d85d5f33779052ca885d2051ae735c8f012b2064badba60c8e164fc445d1a9919be8ed7bf6d4fe947c8b38c6abdd7004f6f01ad5c85a87991f7121714cd187c9b95ea1b9e650ff1276ba2ad59aec1cfc8e42fc7d23a4b1c01da8326adcae88f7c072979ecace6b8c05875dc307bf123d2b5323f440382a13acab4e6c60caa48d6b4814c850931a3056e99ae3ed19ec3a81aa45a1eadd43eb427d67f1ba05a5a911696652b17d3554d71e2231f6bc1ccb6a0e1e19b24914ee22c9e8554eb1a9b7dfaa74301976ef3a70c87dad9c175b148188d5041c7d10bcfdfb07d0b844d639a1945a0e0402771bd8099c0f99652986f7aa30f4cd38716f58cbb97cc6208148a2af8051b388c37f03719a85b29eb7f22d98caa3bc7613c77763e889971174ab65a691b3b4a58003b73ed50c3b52c648d786878f3e5406a7bcd7fa6706df8e7a9aeb4dee1d0d6dc8633389e9f7fe4b1288ba201b3254a81558a8a8838ecd9380546bb785272da412f62e41d11183be37f94b808a756afc154813388258d4659c72cdf37f4cc1fcd1dcb156aebf95252e27da1fab2b551aa0d77740305a0de8c66784e7aa1e5e82cb419d9a9efb94bed5d99e8a45df36174f70080542dc918c66ad34e20da2872d0e6444f5ad5d4e8f9709c259da30ec0bddf072c7a24bc8537d9cff78d0ea267901b4701225d07c00455f1447fa6e34ffaaa8a8207c0bb7af2d8ad4dc6efc016b28657913592a245d643f0cff2f4be07d0a6c2ff392263ab5d66396085d027d68c842dd1661c33bebe194b406ccc42d8a1d5fae5aa63eb8df3d0b0d8c85c6a6e155cf7ec1a6daa74dced0fb74a3d39823c98797cbeb98fbd2eabf45f490a3f2dbdff3a342ca6dc3f50ee258b5fa7189e3802e1192ad5a74300062ee3ddd0364603932d3a83ce6cfec26832f8f18bf4107b1dd86de853c7d16cc9f7afc1ab3a1869761fc8ac6b071ca8710107f1d55150a26dfcb03360d4dfcaf0696e6049b600454ee37e542bca4c87f668d07cd5d2b2125b7d887485f949582d567286f4967d38d2d48deb153f847e3ddbe91905998348474a8d9034bf79f9b68b90cade97f9d7d06718a00d125397d21a0307721214a3d2c90df9273716db53f8d4dcdec651aab6d7329fea82f9dfae80cceab97dc5bf7c85f064904ab1fe21aa15d9a59cb97422b87e8962e5d6e753cfce815d44db01d04e332104142629a02d21c117bb17d0a09cf7584ebe788f1e0e84a0f80e6b724e7cdb20ca885b9e050bb5fb266e4d1123bbd6637eac85cd6c0839b69d8fcbdeb30ac9e50511c7ed2db5d4516acd5c29a80ec46297328a070d7ff431c51795cd9a81e88d26dc3b65e976b4d9c9312c1bd782b0eaa593987f40d110822eba970024cc76522aea181b3b5db006ea7ee35a601842a09daadd31214cd87b7df19452bb9ac7b995e906d064228b796e7e57c86d1d6c5d381c20ac0cfca543f7ee6064f51dfe1146146327a4c016bcaef3bf58fcada9ead02f034626005b9786acbc8da066c3c11bec00360870f69325232648fc42be4a90a875ec242b25d30164c3bc7411fe8ddf9e59b15795cdc55e949999309314a0c93bef4a90dc214ff7121ebb01a531cd15a02d34434ab8cdfa5511cbfc31fd9f9ea9bbc57d7d0e223a9020b43de8a887b77383b2c62ae05b0c86ecf211eda6e0d80248a1f08cfa76253c41f607ce2a2abff34c57fc999ed09168d342d972696a3f14a73097a66cc2612913aa17fa769468da75662b22a878c2b6167b99591fe7108894fcda2c6692c5f4283a4e4f4a49dbe8580e23ecc1f637e2776ee1ff4bbd0b800c6f623059860806b4072ea0f8e6210f4f431e4429d29ea183177046a5b6dc5565a6b825c86959a3cfd69b2e97cb3649fe99c16e0a3643cae7db24a86b8af603ea196e50b9521db3e5d3d3635d9c05af48df6c4dcc328cf011d25237ebc1b9b8b63c3506b3cfcc419ffc79bf1accb5b4928f2d13e4489431532c30dafc40b49732298ce8980d09b050b9c8164313400f8c584c8b23286c5ea56821402570cfd9fb128f7a8e3df0d508093020f6fd0354e6ef54765981139635b444c04e53bd7b92c1653ed3615bcd669d156f5bf9c81d3054568d7916d4ea3f6678c82cbce3e7146ecc9aac2106030609c7a2c2561e15d0e98fce9b4fe5b21c13fdcf6963dd97facbf9723cac8b04a7fc35e03e002aa24daa875cd8b20932507a528004d3630259868a78d9c869f48edd7c246f98fc2bb1db02e23a051f7c426e2dbe8373ef066e09a59f4fee49ad6993ef25cefc154105c6208d5f9fc366d1633ac56eb5fec50d4565204f261f08b5dff4fea9f5fab5dd429cfaf6b76f5ad843fe15a6e9bc01e85078893224b05b642e1a21ad494abd8abba7bbd83d0a555486136edff5c0d9aa9db494d2ee9f768b52c876562a7ecbba9a11db111644e15e4eafd338b30a7bb16e4a7c06586911e9f342b89bca763b99517219b03d1118ec871973efc79c24f057773d9c6568bbcbe6c3cb8324f9e56e6cb89ebb43d645393b153741b29a7925590fab8b12be9f1f5c2bc493ebd22acb1ab305ac7ce7188be4be2af516832168235ca39e1d9e633869db088582420557452e8fec618f014a0f7ab8c6cafc605f5543e18c14bea1bd59c5e8cce0e27758def33b9319bf211eea1e844e10b4e0d9247d173a142c56eaa54cb36925cea6c38a4082cc776f158abd8b7731b7509f4aaa28dc80261ee4eb062378ea49c9cb7622743f0e2cb125f7887b2771131ba8eac939e89f3b0fb9f4e13942f21d271bc06640bb2e2d6ad124af88772363cddec518726b309ddb2dcd7f84e50a123a78fe5606f7d770800055244accfa7d42887082aeb734a7830ab1b08c18de40c01d4305697666ba901b522573fd85cbf5ff8596f6d40e498492d56a41cbcea24dc32e09c4d0aa97541875ff685a1eb0cc46b214817a396c92af8c3c3b557486cefbe6b2692064c41a41b68f301aab2c45d468eae5568cac37b4f0ab0a85481e5a93cd2be26c16a8943a8ce507f3a5ba7afe5dd447cffc1bce118797156dd308ef8bcfdac8f5f9aa28f79578920269767a2c6e5fe0138711fdb2687864ea419b432bdfbf84d0999d9919f41e971998b9fb443f090fc1d511d21b189f1ee420cd6c0065d8d31639cd17cdb21ae3adf6135949280d55b18a6790aacfa3b891e5cdbf6a39c28f3cef1e13ccb630167ad99176ca9329a593c48bc606e839728452f82e40a67dc9a30be727e709f51224ce9fbf4b881373aed202cfdcf8cc3a87a7f7863b76c38995f1c306c94f4240732f149e950aefd917ba627f2bcc9491674a5bfaf46a260408b9a14b8d6bf83cca20aa3435e557ed985a2a2fa909bdc0a5be2bdadc4a51578645a8ff31f224fe87f69e52b5da0ad374fa35f9e2eb8a4bfbb4fc83c8bb46a9f1820e7511aa9d978f25f0371f89e03f8f96f8f28cc8ba60471ea8fdbc2a66adc5044705093077381a09c22034f4c3af11183c20b0ac0e5f589402703fbea98f37d95c41ace513e32d7589715c36ec27a2a821d180b7193f1be934359ca731083381f4f4235aa6516c8b6b66b667645b87c68554dc9010b90a8d7765f03f5dc07a9137f07f3674d46669e7473e15798a10e5675b9a456bfd7a5fda0a2ca3643f768db129743db53f758fab15e7a2e79891ec7523fb2eba503f984443d84cd4ed9438a1a730d15e5535cd031844b9a7bdf31de021a2c082ab6ed12e32119c27008b7d9c830048747a6d39cfc3ab5a07ca07cd9f412181c3a5cf73f07a1e7ecd1b98f4fb3a0b263aa3d9689243aa31572c9976ac7e3efaccbd4d89837f1e097764eb6b501fecc985667aa09a0a355e3d82b79b5646422f38365f6818de066a8d5884f1d86dbbd19e99664c50cb9fae05d26971fb113528390eb7238bd5bcce4a26ebb95281531603ba92bb1b61f54eaa239be658b059cc5b37226bf9b64dbc98a642d21c2eff469c576aa660c5690adcdc3dd5d6e2e3d376282b42eeeeefd86f1d5a3c93ac5a09c0584a91fc74c3570039c42d7f2ba238ff135ebb9c11c9197a3e2ef214030b87466b839a937372fbf216f47703b17ca2bc4edd30c749b1cf0c4158be51d13748b50dbf213952685720ff1ec2bd23f9e24a64a595683e87794c34571a4d4f34bafa75ed3d3eb4e5de76fb2f4f54f8e46bdcb8aba78741cc1670adad6d05fee03decdd42f7cce3e40fe2c7436848150c8d7d59711de5b7e8783fb0e65f67734949ee79e2f68077dcdc9f166ae3aa0a79de64453ac6f37882f784091453e2ca7809e7dfdffe34bcdc9ffb18c094cd919a32dbd3b9f9a56c1e9578ff76b39345d6349eb8820c720e1920a665bbb11ca251a2cab4a2a80e28fb2d598edc30bea1cb64313f51329c13ad7c1b8dbb72837696cef717a26c90eda9ba0fe6dfbd8744de1d829c8bc44333fda60f376a8bb52ce523b0bc825e58fbd7db90ad70e43a2f105e74edebe142347b3995fb3e40583117096a84441e5ae4f283ab8be6e14c13f53ed2425ba650cd22baced71d313436c4e08d9100745e7cc1bf0102e13bba0063aeb8f73b78e50085cc1643170e5a3a990434b4bc65050649c8fba3065cd6712b5a22e4755f6d126e20b0c415a8a5782d6be0e6401c06099fd8d9ea82badd9a6deb1531b17eb6622027a3186e30ff00880e93351d19fa76c58d61f737664bdb11ca3b532a1edff1c097f9354496eaa8d1088285b2cfc2105407ffa7e8d84475b74413ecb50880b60f4896861420a7be19b636ca090ce995d6901f20153c60701185a79eda131de4647d0781fd5c600d68e652e29c26c4a1ed99a069a74c259f3b68defa4fde31bd0f21b581f83a6c85c4f720f33b267c4cc2293c4165f8ff6a6f9178211564977cce1e71c3ced54823c0a90d4b37b37c718baee2a19d92b76a854e6692e307167c22eb34ee9afa1a233787838f454b50dbf4c12cc98e3f3d4e5c8740d6327eb0f8844efda873beefebfdba931006724c30eb39d70e44057c8a838547fbc0282c261ef1304566f350c33b9bd23294863efa9e560b2a7e308022d0d61ca118fc50e0319ed184279770a2c1096e44a2a29e3a402d5e723cf0b92718c2e897f3e83f57f3f89a398a46593bc99db9105c0184832160262f262172f174d95f0d8b82c6f93dc9bef506eda1ca78776c58e92af22e6b9ab74a0084e8703ab8f1b93c18fbbe403ea5a80d8dd3e50d1e910eb893a55a063ee4b7f76aef8628a45cf728bb74dfdcafbf05e54bf2d0b405e10eab235a8f2507a7075027ca595e1a3c675b9826df4740d1e1e44fb185b702587ffe82ec55be352d9c00445ab560e8c8b462a75d8bd2e142076d8324d35447693bd2ef24c6eeb5bf774b31c2694774e6a13d2f047d2998f1584b728b2b656eb496b0e0f553c86da45e9274c5ac523f7692d2a5b934c811912a8dd23caa2a7f11cd5443c0da4594d4838a5c66448327eec73ab67b36d4df2e310e1c5b10b7fefebb00821391fcefd69017965da315a9cf3584f576dd6ed46b23435aefcef8f0ec4198a1f43b780ea47c59d9fc5c7af862289f77d9f339659f54ba9b832ed1e4546c170cde2d0972830d4f9fc82a7cdaf066af7d6e466dd14cdd0180a7d3bfe4f8d3f040ff477669206f67d6da5de138b8a2b1f306b8409400a7e26a577fb4f3651dc79131d95d4d38b6d157165913552eeb78ced16ae9edc5e7ba3af30f4e98e4ffa49c05928ee9c0e007fa4a75a2a2098899d301b5822420264ddf43f71dad2fcc87aeefe3df976fa6e62a478d3e9eb8149a91cccb6ba3555bf1ff2928e62bbf240d43d4931820fa12072973112897edc2f808b1825ee921c37ba67bc0a083fe530e8d3cfc24e04f1e7b2905307e9eecdc43f3dde77bbaaff55680729a2a48a7d91f40b2d3b3e165741d1c3f0863a62cb25589876a2333cdaa5bfbe83feafa48ab87f4134b6d91fb47f697acced4cd4024b0686b8d59e724b157f1ee7e6073cedbabcfe16b2b427f5ba4fdc05dde5011a928a1977ea4b4e8f506c4dc49fe9c36b685ca76d684e9c3a68d60d4acd8a0bf96ea1d07e813d8eb4e66f268db14c6816a56ac300660e2c2e2c850a7dd5bee6fca5e17af729bdb2ffe7d2ab5e9d11d92e8319313ca1326e08836e7b7751979d4cb4e48798d113b9180446501ed84c05c9d85b39a6d171c3cf3d7ea632875df29a79d2922fa95c36bddc876b4e610e043fb1a5d42f204643b82fab8331bf0582c889c02d9943416c4ace3bd4ce500ffd0144743dea229336c8da71b876f777a9825d4a1a8424e88bbee4191c355a9cf8f7a90d850b0642ea8b2bbc294804bf8e9f11eee6bb12b30234ee42218ea24f4f9417e8ee4338de590e60d005b6d9a62d541cc202a959c5c8ddb1b3557dd69bd0eee7695b41c298760452eecdbef1bbb0263b63f72c51372b387a043ad361883117ff5eed4abaa2acf98a6fcf7c6539026b3f7ac11118349821ed477e2e758028a0b4643cf55ca2e1f5a1c176836cde2760044ccdb94ffe9673a68a58f40ddf181c1e4d1ad37336efaa0150284786552649e6b2f433b9028d827fc85685830d22611d7498494b1b4c6ce556e7762e6353c0634dc9137881cb642ee1e0613748783e1e1a0b0f2e1e51a150abcbcc16ca475755c94f9283920820fda8ee31fadbfcd4ef2abcf02c998080e8d32153492ffad5fa3a9f4b3d4044242674f243639f954f5b8ced251ee2deaf034e4993d966e33f8768ce53959ed527f04e037cfced27726ee34e1b71d15456b4bca5dea8263d8ca8f4ebad712910598e0094447a78bebcc6804f046eba93494dafa09a5701b6cdaf90f7035b576decb0370060f44798c88d293143a7a5f234ad602f26ba8ec32f1bb81150c3cb91109abedc51f22d888a6f11f97db0443a64585a87f8b3c15505b621231f8cf00d590c4506fb47fec3863f320e75024042ef526fff9811845617c9f5dbda8dd8ed025feda2ff381d181058492e0850039a895fa970005924225e6720cabf406c50c5750c79d8c4c7ee4e97cef7a16b6ad47802fb0d35fd08eff173238a6d7aeefeb80c7fc852a90376fbfd8934a4d1b1c79e80f890468c8fee3329729d3ce34ec294aa4ca3cf60ef9ace83a309db84494da968dc9960634decbbaec83e1082839a6a9dd8d5fc319db722965b6aae8d4cc948ffceb51289271e39786b23858623811606fe9ce27104ee2086eace7d800942850bfa62794cc18ab34f0952aef64dd8edfd9ac40ba979ab1f944d9c3f9e0e85688ca4e9c43e661a1dbb41ff35ec014ddfd6359281982ecbf7abbd3ecf1f6b8a587c470b6819479ed28ea64331e64c11c9c935e097664accd2305fe129ffb16c610e724eb2a70366384e292c7c4a62f11f105cfb232e090358f3bd869f4e582eb3492baf00960b96cba7b54ff7fcee9c9cfbd5b0dba5d494f54ac15771f266c5ac385561355624377dfa175b3edfb81867ae438e42184e865e8a2452459b67aa8889f314994621afbf65a785068c9c18095c5736f1391c1ff08fe4a9002bd9fecb8f0d045fdee042360cb919c494fe04f0afdbeae6907b1e67ca37eeedeaa97a0db320ac69dc6230294a458133bb6038acd40dc3046d2f0931ea8a37c04e3b50d339819ed2c3db9f2f35c95c640889841612470c5ec4e675a4f928ca28923bd0b565544dc0a9041321b115f7a4a717d974f4a5bcd3eb48ea99cd202de412b21c1b8df05633ec7c13de9a49af562281320cca3b5713d496c9d7ec5a2b05a14d47ca53619be20a9a0aaf24a67198f3fb0bcdc526873bd8a82a62c1fa52e1a27d1bc3f7fe5d0a70d8079012a6f6b26c551c3aca0dbdc27b4fd2b694dffe3081ef79a3ec827be13ac04d32f77ccf6a6d7bd1608a01f315283246c892df8b650fe15cf190ef462f47fdc690ebe23e001ae78a9b44007907e6402d3750f7fc06aefd2a9c4e0f28c5926bf533c8390e18a7bd85268eb1ea2251bc15c298f7d030e9c31b10d78ba1c9eeeb379a58b466fd6ceb6952a69b19e221e3f9dfb91302d9c8297739aa8ad011eb0e2f23c0ce3892731ecc64fdd208ef7ece4f44a2f8ccd369f4141da0fbb844bdebb705e7a0219eef1a233021163ec692b1b880e4eaa467df8931e66544554e2c42a42c1a1b368ce5e62e1b4ef6186f0d4aa1765be5c3d26128029abee73b3f3af3d00dcdaa8689d2d00c2e6be09d7d9d04ef541d2498f7e3018ba04119f0e7ffc3a631b20bff5dc3a86d8acc3eef02dfbbce1133c19f2c7f9e1207f50735aab56134fdc555cf85f0113dec6f65336a6aa7096b68c63dff6c36ce69a092791ccd5601b36d6a6f04110f2f33ddc112e381f2d7c06d722d88f88907e6843b28ab4e155972321f1981cd616ccfe5582ad270da30bc54e551d1e52f38d6e799d38dc9d6e47eca27791bc4aa9fc76d6d376d988239a9bd5fc3e77baaab19d98d322e9d9ec49feed25899ffc1cfbabc15dbe5f4d3dd54b6876433f069daed170ec3d888ef3d2eab813115380915ccb3199736856f568e5ccca0aa2e33c2009aa9dc0f7c4d0f3d82a0ddc1921582cf3aba3167018e4596b037561598eccab48fcd408e0ab698c520d9a2be96a9a39b1eeea76202b5e9511312a52dabc90a4605693eb6f4167dc0cd01b240f103bb316abdfd6c5f1eaf1be405b5500e1c1c0e6921fab18f4acf6c3be022af880800b948382918fce3c57b0fd70d647ac3f554e563345feb73afbb1a03fd7176d18b7a62168d2ad7b4dc3219792ae1f4ddf923d006ad1b9087323f2f5ce8f02daa208cfdaa222f40ce561df7500bebf5e18c6da222df00a28b4a2c16a5d1cb009856d9ec9be576e478cccfb9ed16a28fe0583220cbd1bfb2801192e08cb7ed821c1909922ecca4a88165a7617be636ebef6eb0689f2d5a1c1574ee61298872345d1f8a992daa74c7df9e4d48226167691f884cd9923658f437b6be94cad7b8fbde6d802bc4e4f7ceed51d9b15290bdff75cf05f9ac0b37f8714cea2ba35a0972ae7b7649f112b68840f0ea438363bef928a1b0d117a2bce405e9b4594fe5fc62af3302fa04b8ca6760f842918bb7810aff480bd3a8f9448f43fa4b583bae4d92e3b50947bb43cac70ee708def1d391b03bd908a174da43cd4880c2495ab69f3c3e420b9833350df41ae80a8e3b26313a3c175e9d0fe09d1c1088cb18f96732eef87a5a9992907db654602518eaf6d7c93ac032c8f729afffa18caae2e944cd4b0654f6acea1fcb488b8a4aa5da24c1fcac954bb7aa1703e64841f36e9397656967ad2bec1f523fcdab916311af6fff459edd713887dc3b0f64016bf753f70deabfb99417e87ac3f4a9597e867bd310e62a4eaed3c3dd99830efa7ed76098dad2e9db4a5610880af8398d2e14fb6de79ef9506669ad87afec0c6680b081ce06ce18bb7bf80c56ab2108938f5be3af58b60887b560da97003cc85b1f325e5c2f0913a6bd2d90d409017b8247c141c583be70f59f66764251d0a57cb29db5ada6ab8d810407249e92a1ddc3e3aa62acb11153778accf473811bbc36845596514e7dd3621f757ec15fadf95edf3cf4516aa28a8951cbb0bb18c948f4cddd46306c75cca3362310ff62a1cdf1c630d404370bc7ee86c3ed51a89c2f7df37a85e2dd78c2f12a801b71cd90229d6e0b676ae12fd287c1a62b4d2f9affa303aa8dc961846f29e16eb56ae35c9501678ae46232ff3340dff8efe8e52509e4809f7e8e37aa20047ef3cac3c9d2c25b3693dd49d5e7f2feeebb1df6ac9aa990007b978c8ded268b4c675081c3203ddc48067de22c6089cb600f3c330fc4c2de9fc0f23cd896f285185e70041b8824a6e163734ae544b15960832498d9170af4d540f71400cf83fcf69b7a1cf0a826677d7b3e1585c02638965c65b95edce888230c4e7124e740aab317393b70b7fc6c6373174111879ab7a4ad183ba3bec9b60a6f4343b2b2bd2c60fb1a627af7037d027d14cbec2177837d62f29b8cfacc4c332db24ec8ed3ef0a35ef31d1d79d845e45dc9e8f1a7e372ad587a6476c0961a92061f0a6206a976bf65c5d2a7c2fb861ed9261575c31072a7fe959ad9068f2c912308814bd30c9048b52e5752808ed7bd849355afc1b1fd31a0ef09b6ffbecd3aedab8507683b7d06d87d3224fcf3582c266c71f7d4a415f19b0cccdf7b7464f7f821bed8a5db2699028fb526c0dbb8a305f61d2a289537c46bc1ebe38e9a4ff166cfe0dd52193a458a1ede99b704ac98751ee3adc32b8c82124499f2e09132abe23fefbd15a9d734cd6ea1ce6622c11dc9ba836d83a3aff6a0b833cd11484eadfbaea65913ca3ed690418c20ca8ca2f316b6445dc5bc87ac55166d32a046f89fb3dd6a8b46d61fa5f42e0d095cdd6a884350c22ce6a81db974610ba9e63e6a1378510980709f62432f903fc889f3b329d55fc64db5df7d8a053b2d630a78f0b7c1638d2742c6a3bc49635917b10e4f306c33692152d73fa25840bfb06ae7731000874df17206f5ccc03ee8b752c3d4a79252867e01dc1f4787e471940cb9f4123de58284ada7cb205ad44904579f2448bac2c3606b0c0e3622ab9bea0f1eb413f94bde8b98b9014819351269bc92a981fd28004c8a6c5ef750e30e5a36baff7d67006d873d08d3a3e1cf07086c4e63b7354b0e6d6e30d8c4292a15adf6e4703a807076be5a98c79d1e67d4704a30064f942ac4da343dd122302b3fd7d0b3cc70efe764f51505cf3535a84b14415c6836798c0d5077784dca1a28a63fa589af52e3df96a41728d811e42a9f890320cc2e76ec57e19a9ebfcd0159ed215c6e9e8260d9844e994ab6c62a7c952a8b08243c57df777c135c8ee27b7f885438c4730896b7700a61dad2f3e3d4d5c3505f12eae220f13595b70d3014e4432e32e46e62af7d32ed04f15f43ba5b499f02566a0f12ef25644c3440a37f00e88b24b735d68603b41ee3e0fd93751ca1171be0bd554c2fde4bff445c61d2833f65a2e6384e2c208daf22c580ff28d13ff1f73be36eb2d482873586fbc5be578bd55173e69dec358c8e37e48efd9c5e19f010de94ea56a6bfe4d085c38c76ff6e5e06107f409d5e35c043e0794f5207e359d7a85e3d018f17efa85255ef608153417a8a11e69149ee531d9da020b58cc52de29fd9e6f00396e98658b76abf9ccb69adba73fc554c8d96394ae875f7bb9561edacbfbcfd8e1046d005b5311f30b6ad63d59363957b2e52a18366f68e53780817d6c59a7ffe8dd7a10816840b0e746afe682b511c95d2584216a38a8e2fd514450f7cdc464dc1da217a5b0322bd0072211eea24ae514df8a178de7ce1625117aba36e8dbe276f263f25b0fca29dfb2556ef1e03746862ba900a3089af986ff5c060dab530da2ab9e9ef22333d0cdfcd5d01a6a976dff1ad5502566e9a745a1e70f6e8a3cb68ae3dbdf42218f9bb920e12a976a5879d53014bc91fa1a8739c23c1046811aa95162f8abd7d1d7240c904522ec8f87e393badcf0bb6e7618b0276c9187386a19826a1263d145e236e3f763b950f6ef50cc34940e94779f52e570ec8f797051b9362d11b44e735ee75f9624483293e1344783e96adcd4f0c2b7937bd9c3c0bf7078b1c1d9cd53bdceffea526902f456fbd325bcf703bf2dfbc42ce02a426ac66da7fa3845a8f1432078da6e5bbd4789a5d822514e4c8fa7c1008d5085105d56b1906c317e88bf631faf6961e710bd4f215b8120a3b368e5d67604fede61649b49f153657cef63933913795d39c3e2212050781f4a9c1177a3713b0e38d38df330c6ab080574cb18178f77bbc0120cada332775990ebb2739886bc6dddd5b9af2c62a9593ffedec263b345c5da2398580d81b09e990403fa54328ae066ea92baf9a5893412b63311b635fc3dd2633b1beec382ec04aa8ffbdea88a89e4af706d2b193cf7e6eb70e803904d07a3c5c6534eafbb136716f7f652669926462a37a58746c2d149a7c20e4838f7e1e43da4128e64bbdb101c4f0428073a208339812139dde9a0541d6a91ad4b01302690e175e8a6478e45909ee3a61bc3274457058483a05be4f0e08ead7d11dab741c122214e63abe71d66d3527282a17407ffa7ecb95f0ac6b8ebf43f8a5ddf4bf5f42030470488515214f4ca0319fe6def02330cf71e35994a3ab0ca86b78c236dafe9a0371672d01a15ede94abf9ef96a292c6a936138f0573681e7f89762b7e1dc0f323c4cbfa8e52c4334f401aedcc35bbb5099f52baff4b3c2d6fcfcf84b01e98efc7ca7a46508fd855653933303e424a1fe701808cae1533983ef64809ad70d2a43247f0ee0a87946fa66f7ac70378c892500874978ceb27407f4c9855c285989b3a26cd0e487482d62923475a69e89d74ea1ff3245b9ceacaf7bd5ede727e39ae38d4545bafc0d01171298f91a0c1cfdf8a5e49466f8868fb5ee68c4060651c8fd1b16ad1ff64fd2022ca5782c3f9a7382d856b1d45e7515750db8ee33575ad3fc966ced88c4390d6697c616d6f8a24d58c9120add09b05071b16a565733203844e58d49989840b89e1422c216311d8c75551d591c4a1b3ebf348807b3067fc11e78d4ab5a7b1af9c3372e8d213e1d4ce8d33eb9af108b6219f3bfb6856597ea16b2784b6b69118d1a14c98ae48b3b427f32eb9f5fa588f24ba82e95158ffadae8d4ff082062d3fe00f143f43820d7f31250f0c8711f0c58e707ccb058a72a230245535ef2635cd1c389473e1d5f366924e16182298e3552db20e0a18294987a84ece1e6b210390e590eb5b8f3dba29e946b1f8125802b3a58a17015ef360fc622fb7613460410fd9c3a4ba4e7067cd79eabb552a96dc06b034da1ad8778863b4f274b55bfb0dd181fc2fb707a065f22421ac1f131659ccfe2953e12d29954137c4e33c4c209035bf0f1d5a492dbb7b745a94ee85add11fe7d4cb842f296b33437adc7b7dd9995c9be2904de08067e85da4ef71a0ab85b7c7f881f0dea075b26eb62b0e8b3178483855b13be7562bce39781c70cd045888730a28fe96c95531886dc811d11684b8e9ce7a34725afa7bd227305ac1389b7606a5c543f92a19794e54014d7fb480f88a33c3609f0a5c3a80d26166ff94370feecf97278bf1ce8d3e924f089af1ad1c9c9ec60eb184ececbd4a4a168c0da6a71a30a15b906a0d552286ed1e705855190716d0d577c20d9c2762a0684c34e5001ad0494d0937220bc26ab394e3b85b6f17b33b28d1e0c76cb8f09ad2bbf9adea4033a7022298b6a048d296dbcc5c9d60c63eca28c814ad0b30231054519b151b3e7973b874613d1cfc1c929c68fc9331d7ceb011d8b2155c0bdc57a6c6814ded61b18f55f5f333428f1941b06d8dacbb40a4c53e35e19426955044095adb530c0a661148504b3be20ffcde0a30eeca47d7744f69f1aa9449fe49e0dc94f7fbfa568f3f971bb41b3de82ffe62d3afa66b852c4f246929687d61c194b9a47ac14890b6189b48f756e99efa103035d62327ea85af75bea4fc9d19ae55f3b2045c9f48dabe1f15840762bcead0503e745aecf8fe78744f4f703faf1f0c1830e5e8864869a94da25078f9bc534b0211a8f044c5fefdb3c8d0956450437e343dcabc7ea8978f423c1436c34f0553c6c73cc8a942b6feb9a119a8ce33ebb1e52657b6511de86cd273b2696b459e06a2f82b88a9bcfead0baa065e4bc0f375991a4fb26861d70d9e62a2662d84413433dce61256868caa87199f8764f219681a2e50aca3ab09a33710d0ecf98b12d0726ebe4a1aec46f3ea343bf2f59db2bc7c58633fa57fd3baea77ef38231149370ca7bd00713fac2bca71bf3736b8d0c82d1e13fdc817faa815d56af4cbc47fe05d94c590ddd7098ceb6410a16a343e51fa6c9b33472408ccfadf2f1aa095bfadb8d2e33e34144979a28cca9d84859c0bdf6f2fb20fbae23311f791d6251d8826ba4f7e6706ccce4bb9bf102bb88955977e2cebe69ded32ad2b515b9307aa3c1933e30c6bb6adac897802d22f42d71441e97d808b193b3ae0beceecd8c4ef50ce5710b0093d769bdfed91a219ab90d2ab71b319390b1154843b609a1a2ad7f5e2676cca2fb09c9bba3ec6eff5ae59f886f8a8c86cbd9554255ae3a881a1c6adc4a4b1a69b8f93d243382c70f7fb18b66e9b561c4b8161e7f94b516bf2b626f2cb50e29139388929919563231a4b1507a33617d519e0068a7fdc842651a7b5e273cbb8127baafd0e52754e366241400236e980e9867a21e1e37683aa45b48b97bf5bc1309cc62946381ac22de9413d09e52df828082545a542fa0c73a76a1cced71c8e11b160ed96072a954c58ad86fa9ce344e8a2b60fd4770ebbd7c55a1866428c2e931a7419bfe90a2f9d123413ac983bb4a1f913720912cc8ac6618b168521c760eb6e6784b945227eb29f8785d96e1eca125f5b7abbfe4671bc4975160e9dba6e618cbd4ad0a4d639735029b7e40ed493daca867b2ff544ce2a2a8858781d14b85845f5fe1110c5eeaf7bb3d0db309bc71af5bb07f2e561a109a9315411593094b51f8da9dc9762d22209c532dcb2e10d61e09ad3fd96bd6a6ea0e118bcb1336ffae791eb99596d2534713d573cf5ae27e94285b896d75b58243e030dc8c49f09db2c48a603eaf8f3bd09d7f7025711c847afc622da7a31e43d9d6854fe30e70dac037b775edd4e00d033a323e4043553604dfa13977c3d52a5162ab0ebc6d569c66bb1dcd4c054066a6d1143329e83d91ac62a7a2938f0eb4a61cd91d8077b2113bef7a362056a2ffcea0fa5cb4b519e9bab22088eee02b71d05677d9846eb856bf29fc5b4aa089a8093af6a8b0bc2d8579909e6c04946fe1392fe8cffbbf3e1612a7f791a416029d5fc3cb311e4f2d47746ac12af310ce057ef984db039467b900e8818c385064b2b5a68a81c0f1eb41a5e1911bf59447813b0acb38b2d2b82373476823376059e3e93bb78384eeb155b81543b5d0ea8c5e5f28edba3f30e10e21a5c3f165f2147e22c6f0a5127d3e106676f0479f670ac1f9c9a7049c6e02144634cf5b478eda52545bc39193b1ffdb18ca38c8de6ede90a545a56ad9b66ec37cd8d78a0ff7c8ce124a4088226f3fbd40745d669ff73b1c565600beba4db0d674feec6cc4a9840d1ead9ccd78d16781c0f7599eab934d83970b3167879f5526bda53a8a06bb7dca832c6ba3e4a6e354aa967d9c721dffe004fbbedfd3a9ec1c714b532c888a7d6afdcb82caa216926e274911b717567f24b268d14991f5a9c5293e112fe3cdeaf50b51ca65246e31bf863d998405ae1286cacfb5a859913c0a58f32fe4026b0bb23eac35248c9cee773bc4ea4ec27c5a00699ff06bc2f24f1251b26c30a31a0512d1b02636167e73e243211bee1d243bdaea47a946fcb8f81f7024960224e7cbfd4ef3c07bc447d0f293325afd17c105d13810d7aee9e96bd7ca6a93614c8d309d56bec4c03cb64193f826c62dacef429ad2a0f0d6a89123d4aa237321e1fd493dff739fdd4a798917c33f672ce9fb80d459c3f706ca367b7fd3defa30f8224332a007299b536a80648b069d4885ae371c4463817c3cf9025d88df0423e7914567cb5e2207b1ffae631c02759e23281fe5329480dd6129f79be88009748ce0b3093f93fe243a997456d615389a695d75c3f5068b0092a4cf2f6679bf3862a27bc8fdd9d234219b00bf3da8ab919218dd3873fd320a3d30a21166cdf15dd0c930c230ffc5c60b53ccf21cfcee7439e5b9d1c830f79e068798fbb86713e8d3c185ce413e69b13e2839ee4120ee349e8a291e00f1fdda4fbebbe6243855c90d39782c4ec652ebf8761b162ca6ea1093de01600a0756fe5b3331ef9dd1b6002bbd8bf787a0a0ed5b724dffc9c4bd875df85a31ba69b97756ebe95ab14c027d42ec61426574eadf1a222d667f6d93790bc45e23d49c0293a209485558cb62df40ee85ad33b43298a056c281eb910a71358a014252eb5a681fe40b562a37a2c80427ea8a46d19ffa0d62d64cd35a1be1fde8bd48b2c6d7c39991ebb0e81c8ec9ae85bec0056e830f0cd9b5dc9fb485f3b6821938313582f76f3d11dcfc555f72e6cfed0ef9fa7b9501f5dd2ff4383042c668ba3788687a84e58cb784f3fdc9c6b6d162376083ea1b97c8b47030ff88a5271c4e0af297cb664a60f4764d1824d78ea57c147725c7d89eac6c3ca9cde674819a0e09782ac57f199f5002baa850d2ec5c98391fd68d8df56f9c6ae9a08de882414437fe76b4023fad87930d74e6a5bf07749ba5dab15ac9c9d54de725ca3253fafb7fa0874f14b50c79163b2b9d4a5ad129d3c9cac19d0dc3c934f8e5101fdce5f7a00b99411b0d28b15242cd1bf585f4bac0339e07d4deff917d9ce1cc567ed713d7214b0da8b64d3564c59aea344191a711f34b4cf7c243b20b14e95ca54bc41ebee08fe71c2ad33032ffa52011845d569e60c30187707017dc3db3b8bf6f5596f0cf7e5cf4e0dd4a5a4d1ae37f42c185fc6ce793b0ba6869609874f83fdb823f9347824a8a04b68fd5ff1ff27762f5e5c4ec02b148b446811d2c4237b7690241f912d0f693276d399c253c6fa99a21bbd98b6cac4eb8bd5406d9180ea833dd14b6e83cd4eedf55b75cb03b8904247c15baad745574cce020580fb3844e8f865572ea7eed25bd7c9fad7ed12a55af2c52c1d267b80b5139106844130584b8e5237de8f2ed0d2c51a8ecc397518a3117d8facabe93ba00f873fe632368b116552bd0da24e5cffa27ad38e7a5adc78ca5d1ca5b73c07e524cd7c95c4f73125bfe68b31bf7bf1fee4e8d160ff858c376fd603cc5d234b7690b6d91fa3eb8ba7ca2580de175aec7a4fca63ad5e22334c03f393ca02c7b935d4ae2737e48ba010fa89ace4cb88a23f2a8493e730b4c4c30e5784bdcfabbb21809a4a6b53bd62cc02a658583828eb2d73f32c6a3c0dbf04bdf8dc687fefe6fc1c9bcfda1b47bb1e766408eabdd81e7df8f1a714bedb2ba052e83005c997a491eda9dac04d5e180c175fcf8cd597f74cab1a678bf3dcbd5561c34c985979d95291597acc18d6bdc0f377a04d74c02b322bcc71609b037c546b28cc8465cd6e0a0bf56baf903c23614226ba147b63254daf6b2d77ab24c1e716ad6a290a60c1102a254ac961af99cabc7ce73aecfbca7f0195ca56726801466bfd12356886f27eb96333593f023a6ca7586a4762bc0189395ace2450337386ed1a288b00e4a7737880c512250b75ada82e9a9d6bcf22b237ea4c9f9b4ed9d18fe26c1dce5c03a0cc013fb2b3e1b79447347ee38435b42fa8d9cc624ca6da89b8d8c963ec5d06405344b04b8ff856cb7273dd51102f8dd44880470fd74ce5b003ae20fb729036b9f8e251d627475f26002f3a7c7d8eb493fa09c79cf11014a01e75bfd724bb32b0bd82293157c7e331743ef026dc70343f6585b2885d549cc05c1c90c4bf8fb044eb1da27a51b4eeb508a7c3f27caceefcee2a539dcbac7efe2a797011230afd7141e1e833e15904bb0080fcbd6ad87e95fb70f02e06f7f74e3830d33a00e2de2759c5bad8531c012bc783e3ad840e9d09ed4a0d75a73fa366ff98dc85ee3b198ba87f1f9249e84fae75f676cfbfacc29e677132c5182172a8838dfb8b140d3bf168b6ee130094e2d70131a129453d06430aed21350ba7543f61336f4a12f2463098f2344ab61dd6a465f26fa047b47e6096cab31fefdf959a49d4609113e0c1ecff966b0f36160b0cfcc6a2d84e9e9bba912a3004201d4f3541e16da5c8aa862d3953451658db2fc12d6fd7ca4c215e2ad40f892d86a79a95013d2e2679cfd5aa4e808b61e86417be989021fe4834817781650342728979e9d8028753512353fc320b0e1455062609add6b09397bb3a178fc75bd2572c865719bb59ddf0fdddd532e9c92545e31ad2d1d20c2b6c538e2d51ea2520c468a4415a48703606928c1e5987d5cc95eca028c55a42f55e0898ff2a297c96500eaf1e843be15e370e11a2e674c292227cb68f0031390996344347adef17ac1ba91f2e314e981f710af93bf3b601f088bf9c4b3d92bd4e974eb86c39ebb3a85388fa993229d6e677c8048f7b2a18a764925cfd79f0904854df8d1b50a94cc89e33e1a2745da8d1c86b0c383d51255fbe3a5d92abede0f04fe58af86b1324538f998e33113cc2f010f545d609f862b2bad7ccfca834ffdbaec4e6db89d756e1513716c7b998dbd4d3cba643e1623c4890db1aa1ea9c9c413a0db29faff744e7800d1aa521072f3930957bf2b151b3352e483cd4ce70307e297f8f76f72c5b56752e3cc16c2fa7dcaf8971a1bd3583c1b306ae9780d68bd32d1d99285bdc54bfc0e91ceca1dd34705dd888b6ec43a2f750e73310577c761a223cf5f5d362c9633c2b37e7cad476bafd3be1ffb8705221ddf5bb744543efba55589c522846994e9cec14bc7bce3ce1ab890b0a446997bc2ecce19384da82c28310ec36207f1cc0357a780d804a90573d4c1b0c67b39e693b562b3e36e22e6e9d5d6275fb069c26f9241d5f2b065a08201e4445c618202a96604b93dbe1d312307bd7775e8b462aa4a0330c9855965b96553d4bf92c776e5913ab4b945b9561ea6cd8195a7a89934c164e340b6baac9965218658567061b72caf5221259d18fc4658f70d1a7c81e1086f4efc5c391481ba5f4adace0271dc8a6d6bff4e0c3dce4820f385b7f12340f5192cf92b878dc91cba6929e6838b876b7dc5daeb2eea7ea820f7feafabfe1b13df659bb23cea55f67c85cf3820a3b990fd2b819232a6d65cfb4839b481766059aec109a87459bbdc6f7edb033fd73e71d4773ceee7c559e33b74978d2ef3b5c062dad22bb1b9f109ebc6735f76005a07e3baa3009778ac71204c245bae84c0997f337ec4bf44214294e29300b3afade0d9bbe54efed3557b851f94e99c281f846eab9e5f7b9bf7911973485aa959b667d56e2cd923f2c42b7fa7d36953d112e04b6b2153d46773b06df6808eafde84fa3da63cfebf812298ee2b90be6493da015f705aee4b7b32adf5f23a01785031c0315bc0fc60f1ffa9fd6fc6eaa8898b69335f38a23fe54eccf45bbd19c78e8b8a50aaf22e508eb378112ab49285cac5b04b9d0e878e60d9ae63dfdebbb002cd979fe828d9d173f066f8c37e8bec89846608605424c75dc193267a818ae41280868f45fea960a860904d00afb42b109735ebca4b40ea376b44bcb1e2b3fcb5033fe2559b5515ea20a3791f226d60d967ac75562cb631833b323c16b65a967ee5a0d287aefa7ed3b5ee0df46fada5f54743c5b8add5661c465f63bf5cd4e060bdfbb5f6739c5f12dd67df1c0f476206094fe370e0c2effcb09a863b7d8caa2a2f123c6392b3d00c8dfcb4e21e14f4029846f278aa6a952bc565bba75903249385c9bf2efd86a75d485a47ea6fea79f477c165e0351b363cc686d9d32a78eb38bd15d4b5d26b8e89b50c3d6c5b2c58e44f55bb8ed884d7c220b88ba49297ab12500013c9a494fedab284f36222e8ab8dd656782af318eb32b1d65cca74de5081676ff4914ae714f89e03a80e6af77ac7c4c91b7c2b4614c5be89858cdbe020abfebf5ce4144f4f365ec5e3bd822fa8b02889d46396b0df3d1c05916465555b5554c41ebfa89539f94facdd954e18c0a250c7de83e1e23b95e594f68a929c891cf8daa8d25d43bdab52142c14a937482ce66392ec50d8a7bb8a277009686f9e24a3d530e7549c948f9789344fe6d27c2a23d1aa234a5b4d23c1314490da0db87f88daf3d27346f8015f0797c2287bad46e1620b59f18b79faf1c5fb3de0c1146a3c971be287dfd4a647f5a119a0904aed4db2fc902aa2e760b1158939930caa80818c62d5729aa9fa94b673b59f362d5df870fd85cabd5a1f75dd70430c1c4292c6193a7481454d94e18e651781a405f98366895b949f2469ee5855c77c973cc072319f3c0cdf9bce29c343b5aab7ce0219b37e5771524d3783f99e39fd501ccd749647b42020374770b1a3d118be4f22accb3c75ade96c7cf225414ad5339ede7fb0e4e58c71f5275b58120b265ab6e403310023bf322c947b1af437583e65c25fd72c95eb4409522a8dd623940173efe502c3eaf1438415e566b92402ba59efec561d9b0b3bea63aedeba26fbbcddd5d39cb161e066570ad7bc1586d60ea1d5b660287016678e2004bb33170f8f224beedee8d5ea5483e47413b26420fda9a15dd836e29a8fe254b2eede10ae308618e891ce842fdd4edb69f56b96488d14157f0bb9f0d11f0a34cb707ec0a134564b13ba23c3fe4934f1950d179b88313bfe4d29ec742091cb5e112fcde259ada893f1a8915f1a8265e3304f475ba97c5bea468759f4a98cc8b9022a0817ff5138921301a0948c1d8eec6000ebc0d7ed7969ceaa4a530c13f76d1a90b73d795f552c541ba136675093eb276132c48649354f44478a177446cb04bca0842956974af34f356ade7735c41fb4445b912bf2e3fe2904a74671affab479bfe15ddea25c2cf18706a118dfdf4a92cf6cde332dd96414a01ea57b17809df02b6e955509b99521194809272cf6c19e60ccbfe374cf94f4bd7fb3e1765a00a7a1023c117260168d7562c8f8cc942a229669568aa0051ba4aeab346f34e124b49f9fbf2441593e35182565fd58ed55c4dbf540fc60c5f7e039a57a669ed61be56f0b89c0e1d36a05338effcdbe9ea4edfbe1a1f7e97ccff9246a7e31c7f8e1d9610c20216cf5319fbcb66a799d76c4096e79884f4cebf96cf2cd0dac4e608bc58a940db171af216aa1a9e67753355e510a1cb8eaa891b804c2fcc9bed002f0104e33dc8729a9fff86b3d1594cf7f013cff21665ca648004c2f8343bcf18ec3a18e5e8f4426af5807c2efe3aa7187091d292f33666a07482884fe674a12817b2d0a3ef125b6d402143160adc7119d7ca4a113632be8b413b342f5e0526f45b489a3db6d087772cff593ed9ac3672fe11c6369cb59f12a855334f39f2f55da8e994196ea7ee2cb3d8331859e09eaca65162b6302f352510299b9133c0a5d830f5ef50f29183a009fefe7d17578a40811abeea1fb5cdf020559ad185019dd20ec465907579dbe36f1f7bcd42d2440dace6a7ada3e2bbcac91a3367466aa33fe4c24e95c0550a280c69fb50dda7ffefa8274e611308543ec38ebd819db5e0a419d343f3c21e24dbebdfe1add70fa22e267d943752cebddf154fa6011cc7950cdd85aabbed574306557cf840234458e8a91fbe04a363dc09c1935019ac08b543296d28dc5d0ab31000b4a9a622db92ea6d80a157f17ff50ca33ccb7004c4b084efaa7cf1dcd528f80c84d5641ae0e24c1a364748f8847c39e9568f2abd711cfb1463432f606db1a04463e4a5e732197216a07a6e612a8307466f5880f34e303c2cddbfc523062b78a5bbe8344901cddeaf6bbdf113f31049b781409e1d7d7c5f159c3c09198ec47ad18985a3b544da879edac722ac4604b48dd7015c530efc6e41eec76d89aa914b16f5bbdd1778dbe5fae455bc5c32c05d6805df22505fdd8659127c828391e70eccc250729cac0058331e1256616756393fb2d6e523c12e5120a8ef2993ddb4794d27802486f32ef43c769e7e1e8efb29eb7ba803b82dd3e85b9dfa6274233d1dd8cb3be2253c7b6b62a4bea1019e02040a7cd2ae5e1a5330f454eac24af4cd436cf61394451f73a8c4e6dd5c48a2ad94586034a085e7dc17089ca673695bf6e01eaa6212dfdf5e306dcae7150df879eb8b42111193388f33c4530fc714bc2182b64b27c0b27e97d0885ef363edc9329cbc0ad9607085331181caf592bb2d72721eb0a4d9869f5f183c05fe41f646b10e6dd50e8f02a280f0621c838c7c6e8b3797b25c9de92a069a065ac82b1467b86d030e61abae9cd0d71c4242b6033ac39345f7e8146038312dfd68cb707c3906cc1e725323b147ee8b0a8d6bc8bfa2f7fba511d78f669dbb67b6d192fb49b72305ddf3429b9bd385debd0ce3b27577133fb34b39636a33f706fe94ba9cb5ca59b11bc6fd248728ee3396ae961aa200ad457a48c970f454e67cb7fe487f105385b75ff0409a9efdba27482916d42d9b4fa760c02c116bf93b5820863a9c7592b8cde924f9f7c4b799df8fadabf0f314d0caba59224fa05260f2fe75705eb01369f530c984a176c04898dcb6a998e06f6059cb69972fa808b1bfdb6df5c2e10bfeb5311cc21ce5338d27c7bcc0dc227e4d338e2d5662dab54e1ff8a2abfb36fd82fff7c6617361a7ae639f6ff4aa14494f4d2b1704bb0b9dd5ee56890b43b1230298b40ba2e83d4b3955135d87bdbb25eb38cd173186bd89f1ea2c28c1ea00cfb233a772ed1944ec8938ee134da0f11f58fa171757a3bfd0a942e0a4ba63994be476088a0db700486b9eea642a0519897b7e7fc487fa25aa3b7e8866b24cae750a786cbc5a353a3799eeaf615c504d54dfdcd284efd73e9ebc5edea7f78c6b257674c0f47f20d3944d77334a07e85a32e2e7dceeeccfccf1431fc3d3bbf3638d36ebd49a4b2e2d94e92ba9d2179c24bf2dcff77beecce929418839c573959b2240336707e0aa16571011e800632cbe774916bd6ce9f5ebbc0d3308b64233f32c2dbdab29ca6bd7b0e1a069fbaaafa379713584f1c5040defd9d4d7d823188668043d68cfa816a9060d8adae5101a0bfbf5ce72f454a79c52f4d6bf20ea99b1562b5c6550815cc4c10319f4976b1e4f240b6fe4d1f4d072438e1d516e0f3425693fd558a8a490bfe3da2407ea8702eb620b79484cdecefa051afd94ad8df9cf7f71d33ec98d7c122415cd78c374926c0add324333968b051ac76b06943161166894a5cbc6df5e3d04abc8bb1f04f91e47682230e1f65ef8fe6365764927b11fba0e5b3f2b997dba89c500a376feb51a6206426257442e880ff2c4f6ae174d9fe2ac8f492399b2e386655db75524ee603ffaa6199cdbc54c02982ac6143fe324fd02be02f484fc80f0703756049128eafe9c11c2acbfafb50de40d96930d8a4e12f82d276dc7c0dae7560bf9ff0d90b9ba736a3f4a6ac56b9dd73a40f99b9d2cc4564820f0a8e6cfba9e8db3bfbfc53ad8f0fca1730f44f00277ecd5642ef0965913d715d8002067e9ea18bf9b1e3ce1127f729acebd3cb67c9004e47c03f55d9c9e09098c59faee91f2af21a9aea31bd5fe4eb19669af85ca03d917c42c42e477e142756dfdf4adf2316fc93a5981ea1718d44d1914b1062336895640a5bf8ad939a12cce406019602700ca23a312078a77d8fcf664f254321519128849dfcbf52ae46b368343b6e816f6c274d4aa22740c0d5f234f9f89ddb3eeda439b60c35495503e2c26c3815c2e9922a4ab21e2883aefaeefdba5c7467eb512c6ff790a278844b66f08923756a3bce7ec536172416e496042f9188f67fe02f6216c24d67c3ddf9e168ef94bef4dd04fbe55b1e7652e5f69d1ec1595d5516cdebcf66068348b237bee8737463cc4bf1f7df9b1d507a9261d0cf2a7da459136418d166ae97753aa560d7c01cd5d828bea6fa77dc9cb996575968d1c859108070cdea111f731be81f8044fbf0acf9ef3b191c4eb2299c5ce776a271ebacb403eaa88a9ed79501655af0baa1bd577dbb1094f92934d1aec8cd2896f9340dfda78343393ffdd6ca1557b2c147db9f132a12479b8fe30e1eb0784d906d12379415eeca93865e31078baa54a8be67418eb3405c1f981aa9458e51d0b6197b55b41c5c9ae40e0079120e969ccc18081699cc0211d99f3402e234023f2cae6b5a9fabebae6ed418b57e58d0b0acf533e64580a90455fc9b70578af3d6f67c79b24c832ecb57382af536fa91ad099375a22c250c7512ace657d0201c5f9589372541c35bf105d2c618c748a78da1d99374fa200387af978fcf2b5bcba2b7b59671ea9e1c7f61a3f4a578ccd31048b9a6c9501f27045b459146078c6548cec2bc6297398aa543b6867a59f47e15d7ab8e51a2ceea8a51b55e6a0a3eeb5bfa4e93261f6434f042e359b7620dd1809a5aed55a58746c080e996e6f167b1d74b9fb3311e4cc09bf40efffe3fded00ffcb7b506345fc1b6f07bd2e17e0664a698d8abbb54642ee09e96e179516fd41c5b5901f1540c2b205b241d7e7a887e16f5113aa2e5fb65a95d068e13f04bdee34de3609167d3e4ff884d2389832b5f40c9995b0eba424ea393eab691443d0260699aebab122609c4f9315193439462c4a720cba9a3ef592789abca1540777b3ec0367d9752afaa4b7e5f41b226e239237b8ffb1079c05a80a8ca1912519254ef928878f0f41ed8077b3cfd89a8dadfe5a476bedc5470405a3b8ea6fb6e02cff4ac39e7e1d645d87a13f751006a9686e9dcfbd43d08a8d0db04e5357cdb26a1dba7b1ba3c4ecf7af4a725d35d59e74fd4dfbdb77530d218ca567244881c70bd33a0c636d00c9d74b64e6a5e885691c0dc88d261f7364556bb8381fac2fc3c8dd2655c4dc30bd2fe722f3efc307bb91f04f4761bc357a7641a24af75c1cc65d7cb2509509b20f25dd8edf2815d8e17e332088d283092f91c05acbbf8b09d6d7c3d5dc0c162d53feb1f1883fb79faed137a0d58eb530c70994359d17f94b626b5abf7441778ab10b8535ec5d00421d6023a2ce32035805c8e8910379ccb94d600444290b12ebf93c3873c2f597dfa80d700ccaa07fec24cd32a04e5823d634343208cf215d97e48937fa69e2376186e55a907371ddcee8ea35b2f3e64342d03b45a6b56fcec70707502bdb84607a4f641e25e38be3e131839b8143ad2fc2cf31549d4e1271de2dcfc26c3368b2d948c36f34c84222d0084ef6ccf2ed80c8e80876d4ab458bef4aa95fd280f2a0b909849ddf3c6ace91fee4501c575ae3e2e633306f22d38c0a8638eca076bb22ab83d4bfa5a136c2e9c580e249656863190d01259bd919826e326b21f90ffab409d17eebd3a244283882d28629bf1d243f38bd1e10c7263985946f6af8dcb0ef44d102b9fa442b9b824b6234e2d713f1f9867a14f88fd7e456fe4f39aa3d26ee17427a0321ced931bdcddace6f474421db43eff2bc78dab44edd4136d67fc6e55e3572d18eda05f7b6da9a5cf835b807ec79d3ea9ad0346979284dc41cb5989fa6ffd77a2dd9b75125d54c3d44d0bab7463e2743b98d560d5fe07d77c6c230b736dd399a1aca329fe7f0904fbff060021fc1428c15dd23a2a55c824be42565d852f0993c00f07883863e282d27dae51c61d846de5620882a1325cfed336461f5b72cb1905c36b4e08ff9d739040d68abfe76081513a24393481e5d26d19c9da4cfe2148447a9af857aeac913e62bc096fd578d7cb014919e9f319d43f7522be1091ac26e60fc5c52613c92ea875f68c95dfec6243aa1eaa2c1b680cf854a7b586b224219a93932866281f2e9b25f350991d74f2b2ac082e3f7e9aa26a3e9ae3882c9402b3dde7d1ac0ce22e0373d75b9c3ed982c05ed68f714255d385ebbfea926a459454bd521dae481d62927ff51eaf42e4743b2ad5af6aca43d8ac99173124f332831ccf8f36b5f663ff5ff52400b18a95a8d990ccc88b9df65735f9218ee24f8df9f8fb6cbadd3b7051f85e82decbf29f42b4d1b593bec32113793a2f7cd4f3883db299759cb5b63dbd49c07e4170cd56c549cbb5ac0ed9e81c565da59cc6545fc14584d53d6fbb085a557aeebcf452950804faaf36a507ba997e655a5f0a442d39a973dac1b5129797530705181b08d34440167ef58b14c7496525125b0f0ca342e138ab243e1ccbcdec8dd668a10b6dbb59a9dd8a36f0e1be0344bd18213a19a936d5860a2ea54ce8edcfeeb19c75fd5c2d6e1da14769f8b88cc7397163eb38936bc434d5393704a11e1d6a978065ded740d72d9d8ae1c794af3de822c78fab2f6010dfc60ea9f436992d58cc429ceb0f797b73379a517f992573c0f51049812eed15ee31b2a81236a5b481986d6e24caaadb941229f247035288cbf4f4146c4349193380c89f821ec9cb69bd004ecdec797c2d41bb7c6944a7211b47bf1698864514bfd5e1ed164cc4dbc6db101d12e88b874485e75acffacd4ba6ce8978f968f03ff958c36b8fdec232ac9733879a1043c077c909593963758635b45ce62cf3537773cc7b86ec3efce033dce92f11a0ff68aa993e4af05cd9a34e45d68a3165cf508df4477d16f1cf2025b9ab23fad3c581ffc409554d2704a51c06da34d4a7ee16288b5f646c95fea110aa34f243bebc17c0488548655ed4a5441b8de65a491bb5e7ae2001df593dd74e4ad730ecb0ca34b8a74e246a62274d634216b610b4a4cdd07d6544d5076d5982b9e963de1be1ec98be9c329471cef136eb99cc433611551c2b37351be01a8d9c1221bb903265d97d6dbcc4bd0e89ac1cefd9517da749090b423ef9a9825b113c3c0f8ecb52bc31e9eb4b2b43ae803db68aa9622464106a64577e744705b4f8c9b14e245ea3dd694d49740dd63d109fa03727654ea6b918220e5eb55ac0a6bdc16078d59e1e915be5c26c7e271be0dae183b249f9d7e9b3a4ce457274018b3415c6c4e2716f95f87986392da2b8632a81554bd191179fb6016656e0c6caf8ade748402b9d8fb66da6a8bbf3ac3e4b2d908d7560d0dfaf70cca7d6965361b4e4913e510b2ba392cbd5c9a218ef37668b161d6ff43f7712888f1a352c8235c0c7fe6624e7f35b5cc13e1b5d83c75e1e888698f27668355ade39a9695710ac2101a9eebaff2696d9eefd39f2f9d7fc1cf8dd189da80214b632b01eb65033db78031d71165dac93a18eeac94d40aeb3c89fcc22759fe45bc6ef9e2ce43c3121c2f9b8d08adfc9942a121959a60d328c4860e604eaa8dd7e74fd4a8a3dcfa195b2f50671ea20ed8358527b2fb1a1b1287ce7434ac522db60a610f12fd7c31de4066ef78bfebb49fb39e5fc8731019246d600bf7180c0a14eb4f0b68b695382f3a986225e84c803403b159ef1bb209e9e9eb93944cd5a86b593c984dcbeddb49e53c58b9c0aae9ccd8d4bf4a03b6e2c5ca6eda883d007ab266cf8a69f8fd2b6b0d56348f8b85606ccbc340eca4c590d85048a0034126ae712a4eb299b32261912413ba8a420c6814d44cac63dae66f1f004ef99344f6b9267ac36675cbd2d1aeb79220aed408ec45b08f5885ef9732de90159bb9d075c34c34770f8fd7bce9a5b2278905877fdc9d9c8a7b8e247f7283ce80ee162d25aaafc2e344bd5ce918020678db9d2655c3d0e210293af16b7f2f7e50f4b6bc7e226debf996a73dc10f127152c0dfa50e4ac5277cf706f63ecb714697b8768622ceb16531de692ce24efd68dc7364c69a2fc04d8a8de3d4eb6b990bdd635c94cadb742a1772e516ae88dda0a0e2fc107f1e2512ea6e618b6c32a44524bb76a43d58b07638d55f0c3d3fe3fdfa19fa882eea00ee3588e8c6e24482b125ea5c99cfccc43e96e24028ae2b82155f4696a719e9693f525a0f694b26b8cf86090db53b692cd1ef18543712a2cd19eba7010468514cc169fecdf5539b748451c563734149cbef6d1596bc0896ed1126e372beb206bd220a3ce79e3ff41eb13ba4e45aa83385e714e3e6508d8294f49db7fa66629fd95d3f0e6980af634219926611ba75d58c422cf72e87e4306e67ae059de6616097e55cf245b687885039e4a03ae7ff15f0b5fb7319640945a9dc4c4bbe80a4576039d1bc715e9843270b892ae9b6e474dfda6860d04a5291f489d3a356261e237dbafb78a0a844da11da78d71080cbf68a0598d6c8881b9c2fc74e1e4ba23e3fbd3da690d8d2deebf7263976340fbc90cee2015547821c915ff50fbf6d665612cfc29f422bd1ad0fc8efc60c287a515afd493a9ec1688d5ead271c17cc3ebb044fbf00716efe6daabc40e7fc43253b64d767aa40cb18bf0faa92f3ae794eebaa1892fa2815950d4ef7e2157c0045ed249bdf130418e968a68250fdbb522e0d8e5beed993c7be69029ed42572d690aabad0beb67c85541763972e186b862f69a1aeaf9b3aa64f58a9740ee7f55473a2d764a070d677f492e86e45e85fa2920f72491c7e16b5c93a71fbf688a978366d7124a22f409aa64bd9d1ceacfcfb4f64f07ba1171b3d7b8ae56e603c56935bb5902c16a04113a216613453cf33fb7720843b78550a2e70c9cc71b65651fd8ea78e64ec8df5e440a615934fe0a728c86e6cc0988a770264b585d096113428fe0eff86a8f0c44ca93238564ea74d94ca3aaf6a16e2cf5e0d4795f4fe3d217cf3a82fdf7a26d7fa07bc18aed18effa9b773476f46f0cf61ab8774b10d513b3a3def3736faf3751e8666d06723b683e29de11163cd97636ffe573f7a9c8888cd9b57f86885a5a65ed30fb47f5f4a92a66ffb929f7d8392623d6a3cbfa550e75f0966c98b7879f4018dc23ffc26d32d54ceb2bd598b604a072168ab7e34b7c0c03f2203b9a95ad8453e0539a31ca9c92d52e76ab530de5e1b1480a724060831b33cc9bf95db454f15052221866787c16a499c5f0197f3635e0ad714adb21203270a9337629c418d1a0ea3fdd3b67c6626f18cde2c8bbc781bfa893b35b41ce6921999ed42ec21b2c746815dc5aaeb085abb2f93b82e154f39c6e9454ce16f95b475404c0a6d600069869c4fbd94f02d9a2aae179213972ed943f108ea5d534a60b4c3324054237bf298eccd2a8dfe83ff4de2a5043cff5f0bc7954be335f34582c971f90779c00b40960b1945f89ef02af327d95f33c75abf646e3d6660f49711d191787766f595a0ab320a76be46a725183bb8609f8d941a664a9059ebfb2c9bf56d47c1b5d0e4ce96892e6f516c55e6784e22b76db6a44f9a5215f1646f79c34f76a3720aff87a39a93962d6290bcec309ef86cca72c58abac4de0fa29dc7718f48c0a0fa0c911b0beaa9adad8876d900fd5b5b0a8e9a201ab02c7452e1de875aa4217b2f5d09b0d787324b1b669cd0201480e6e8a9700907476466f02e79de645689aa8085f1d29d7e9c26886c8c3d625b7435267e27228649af2fad3d259ff2b6d50b62374f7a8720e802cb612c7980d0ef39e323063ac5e2f0a18e9b8f895705e2a12f04b47d769a6961424dad7fd9ca4684280b233a41bc78935618686d97445ab67dcfaa6be1e3d87cbdd9c898831496d6355c7a2e6fa060a52ba07e9a52ce195d0754283f438e16dc43733469c00af64e2631af5904958bcaf9ccc0a6195311d3fbb60b7e0bb1b7cc1239f3cadcaf79252b271b3f8d1fba1c9c0eab736eaefce3d9b9d73b39735ad1962a6f74eafea963c959cbc4c99a0de0748128677cc3d149d060d99a0d7225b4da67f7c880c3ae044f33f25283e68ab14c69f5e3a313bdc9cca2e61230fb85261a06c7b6cc171286c41816dbf3b041020caaa253586a23c099596073df68f767d390755176a740892ba2f341b33cc34581892879eaf5eb50e9abc944a2aa29a06a6fd4837be880ffa4b2cfca2756b020e274887520118f5b6c43657f1356480925bfc5b2a664e819efb18dfdd45604d3ca8d50f710701603be921d33a81ad2bc30e8cf9252f229fcbe1f7a85573993beb87cc902ffaad716cef29daf101e7737f2bb932bc743fd288e0d92e7d9091cdb75ce505ca0b089526e03abc65052985eeef6d4b777398a29ea60d5d9ba86b88bef9c7218e178c3c11fbda68f66ca466242ecf2ec16af799c4d1f5324b2cd4cb307cc6cd98e2b9256bfad677930d036497ecab15fa5c7f1d518f7e3d95f085386731c8410b442693bc5cedbab0b6b22fddb0401be56fb99d3281c6aa702c72b495c76ab5db501634be4e4c7e1aad07daff6e561848392cbb02641824c17838ec329b6e7bc4072fe1cac5c33edbcd2fb18fe179215891fb2fb81aeec882998b9ee251fdc39cceb65ce9cc9ddcc52d173a5ebdc8959381b231e97c3d91283ab100dcd9a7b33fb410ff749c01c9458a215927c1b017c2b0c8f6e0f5ce34996dc77a4ee6352b1f4c2a818a847e9a03e55501f0ffebf5dde87d145d2db047ab9a0d60d092fa17b9a1e36320ef42524d426812f599abbd6ea5bd1e8e1928e65c392696520f6dd101263448d81e9c1911842e5d6830289bb9dda587fb433d5dd6b7ac26b6c78f3ea991c534c76f1e8dc1100acae1624fbe129f0771b9a73d388462c56190cabf9cc945c68591f003b0802c71e7e088ea870627b6553c84da91340785a19c9605f13d9eb87f4f7b95f39e9540707a29131f459a5ccaa0f157790543f095558147b605573016154c0e26bfbfe0e705befd2d6d92a5ead616defaf9ccdd6e977202379e00508ab0f24c3d04bb56f3f377715bb9ae0ab91b6102f2a23f53a58fdeb4d80d00e9ca548477917b6e0897dbbbfa683796364f868d3d2d8fba78df4ac05080adeb0945fc1e983bee385f56dcea68d69075b3db090bc9c1dad938184f03469b99426fbeadbcd6116663fee4260b5e4022a90fb5eb4060241329eae0dfb74f21d1e0f0f344817b986e21624e688094ed33137e8dc833ace5e24ef38d7fd4d4fcbfc9a51d0fc79d5da83e3b59f143cf8c4930b2795dec9d330de6d91ea7d685c240e1fc09bdd175fdf9bbd6fe4ea4a4326acd220a5e4098877ca2e9ac10c00be776512f191bd16d048ae33fc3d42319f2f5fc878e55981b3d17bc8f84c0dfa9fb1622ddd0b2514c1aac3ad9dc5ec305a640855b02da23e4156cacc8b71304ee3c3e1b35b07fbf311efe1842b96a51ca14181812d41a514b8960f66f1b3d420d8f1f4710a7842eb83e6e1d8b34a7dd5aa63ec436a0c5999e827e1ea3861458c24b37ccfdeda4138bd7e15d044d8a6b7052cf32f0f653ece80959b06cd78da234f6bd68ec9aee70a2ef39c0b5bf824ea3b21ba56c0734a8163501b46374275030896ef84cf66a81b63eec3ec2f441c1bdfa967b2a64870952bd7bb32956e485d9e5a8e9603678a107b198c9081456d77a3a1dd79f79eedf4b9be99852d9ce65f86ffadc8fdcd7e0d534a39fc39624dc60550b5e881d82126394c5bae3bd819f713fdc2ac4c303e2b71358b5a2e7a159fd69fdcc738d6a0d3b1e93f15ff7528e88c98f477db58e446905d48ae9713fe8194657f3e0e235f000c5215c8e23adee6db0303a0a9e5e1d1abdc5eb63fd9dbc16a510db161849989dd2069db194fa1090dc92118799df7d39d9be3baba476d6bb4c2dc5dbc6bbe6e7d90387557b4c437bf035b67dea94c112d0d8ff9862c006687deef9fec1c9bfb122349a2e0005cb1e57165cfc2c81aefb76d551d91aba1d75e8630abc502fdf9f7e72d6296349914a8d6b2b258f94c320b03094ecbdaf3e05217f16a5666966dec393ec74d8f75e44ac9223f5d5cef94bff2a9a790bfc257a7c5590e76adca0ee7bf2dde4485e2abdb8402c1c52b1cfdf2ff6e775b814318d3be22a0ea49ecb7f6099f7a4d06afbbb3cf48b0423ab0f8fe2df5ff644500def572c123eb0d538212894f6c301a9997c2fd2889b50ed0382c20746cf8dbfd9408b60a1b7696b67f068c46d38a8767988359822239b30dcad59239171d42071176c7e68df2023c6135f6867b8745d9b05196e333b48457924fb797a0e2670ea9ba2056445cd1b6b4a97437a65b687da0fb7a4077a08350d92fdec2c8ccc11df382d0e7e758b66037b2cb9873986736d9a059f22739d63756f524e45d53881a3bf26a36ba5907c714ba2e270e6f23b0f09bf3640971c2d9be0a5a1a50014268d561f338e4a0b333c76f9e096512e43574cac235c58759e51b0ff9dfcac465a7375e0e4e92d0338a98447b3c07893f9293d3c2a4e10ef8e51ba876f25232a28a86084e16a67f7035765097a5a960f84d8249c4ce685afe600ee4c2576c1dbea547dd384fd8e427a4fca0795a2e22f2eb3a23c1676a85eb13eb0ffe190627705e3387fddab3eaf5f9e6f5bc513018e7a72067a23aed62ba938fa0c5e2fd020c9e8c4429e6293015e4e4404a9d4783cabfaebfc31855b789735b4bdbd85a48eb0ae700545061e74e83d1cf8c863e7d9ebf245ee5d887f234172774c0001c38411db81fdaa2cbe092b1992d8b996275eefce5ba742ddf9ac3a9a058cf482d06e4a298a01532689b5eee0c54b4e772b0337b1f67bbd3b9535231acddd8bcdd15341f51b70290cbbc23e0688710398be6eeb20d91e6211b5a58ed7ffcc7cca53cda3c8b4a5bf5012fac8f14d8ff9c29cf3e376be5cf3235e35e7fa3a85312806811ac800d4273d1a55f3cadc7b162210ed54f9f0adbb28cd765a39b19d2dd8541332122f6646df900934a7266d35f6b0358aa602bbd6e85b2742ac040789c002603212c721d81242933912a968107b506e02d996edf12e6538b3abc0ab6d8a5844d34089f4aefa40d4c7aca2291bcad6eab7bd7218423a4b3da18360162de50aeefce0d3c68e71c2dec9f1f54eca40fed223ec21a665ab2372cfe62be5ecd5ab43b7141bb91a0bf276d263d690006a898e28b9bb88c0a106f40ab7f7ad4e90d49b303ac0108bb5ff700a8c10e6a4c182d0a501fb574c0c71ed97fd257112bbe0c04095202a26fb8922c725c2a4efc3b2530685135599fac6c8af3e6c06781ccdb4cb80faf3cb55729ccac8ad354d2a6a8cf771c6b95c629f064151ecbb344555a3d0b093c61f4975f8585a64ee5a264417de1bfcbb6570b6f8a6dde2ada9edae196150fc47b886ae31b8f682c8f3ef74d30f4a20b5010c579ba3490ccbb108f3fab166505eaea1552c866a04c3f7b88c8f18d5cc3b0793e518c2c5612fc152afd55ff1c758678d6f18aab8b26f91441cf880072bf27f1731dd68147079f2b939adcb647dd37701c45889c9308d88d17c641be2957dd2f97e1e57506d8c317b30b7f2d5ee6b8f9fe383e25b35f5b797167dfb9fd9329de30fe50e7f1b6a8381f2067f98c2b0d62b4e2bf39d6d61f2e9956b3cb794339872466e117553afa7a07b4997a8de359722c5e95cd9a2b5631d93f337124333e315a25de8d30ed52ad792d8bdacbf84038c4d503bbe38511ebe5d5019b4c3a2546d66d5c82573c50103afadb14c021fb7b753ffdd223bbf083fc4eec602e4d385e4e1758e6a4c77faa19b302843f7532c51b3fbfdf093334a66c0f2651e8be6f0cc60ff44da7e818a08fc3421c8e0c625231f4cb741377184a7f65bd717ad56fe61a5b4c45238f777429e6dbb5434b5cec2d1b9221dd3b41dc3ce6ebfad07b60bbe0a9f9c0fbb710da48bdff0fe9a913f104275d0d1f25102751a6dacd7779cdbe4aeb0854a628728affa20fe83979773e8b43d24c134725bba4a48df1389284b218980883d189ac8461305aaaeed8157ed3a8ca9592a0f04e8d33c7d5be57aab2ee5dfc80df804ff98dc8e6b403eb23e7199f1cce6fc9e85dd6882b91a90ae192e09025a4bef437ea84cc90b9414d5eccacfa2baa0fef17beb5c5443c5e6d3f562741955e0933a2e5bdef4d326fa1dcc0f3eeee80b9aab6f96e4279edb681f5043d804446393fbf7da88856aa3b90156752efc841ba84901ca1fc9bae85d1e2fbe5afe385753d815fd7dc0e3118cb3da3ef6067d70abfcef41e226fd99dcd0d3ca17da3ade78086b1cac87b3308faea4c59641c0dc55472b73a28af2157ce4d61674ce026a9c1c59114644aadb2283d1d65ba370b6c98e6dfb3b79a0b0ed9190d8734fa03e982ce84b333a2473ac9f4e13b27cfe331847b8b975cd3bbb138fe34faa5d9e2a6167ff02ea0dccb4ac6d6885502c4345f33155004c3be8e927546a361c9446570e95a60aa75970d251572f3f8a4493e578e86acf237331deec33e66cedccbad37b485dc938cc116937d08b2703ccc0b953227a12365db91404d59f3fda2d2ee9c85eaaef5127c8d68151d3b6a123287219487adc0c2cb03733c0584589e85b6576f2a4766322ad768a78af845027d56393ef200cd908dc4fb7f1aa8969fc195ac81f9ea14b113e25f89bdd10b9694155f28d2fd9486628b7c1d03f9352d51fb2a706cab807443316054f74cfecf7e40dffd18c60477177a9e1a437fe9cea3a70a42707667b970c4d1f8a64f0487bfb0045747c97bcb897088027c114cbae4baccc043eeb97bd10e3e807383798f96426d7c462129fc34ba7eed068090adaf91a1d148d90aa7b9fcbc9935f3deec554d8f47eda9a6b0276fd5865a1d7e2528101b766662c29d4c5d17d30d1dd7652c7d58616261e0216413bb54c1f958c19d9f89f0ff363934d67312c8b0933e827ffa7d68e3e81d46d75242fe0ba7094f03b4334d51904320a73f352d1e3eaa3d9cdf0ccc9673e6583c5469c63e53c612d9742510079a667c9ebcfd641a2cbb7f45caac695ae96c1025be3928daf498165d1785224931c7e5f7786c04cf9bd6a3412bbb7ff0b365e463862aad15110c43c063c40db721ec13080d89f2e6c6fa266a0d4089f0a2f5135e68ae9ca198586adefc8c83e7fe9563d106f1bd3bc03eaf10d41b29e24e24cfdf22bf1afb55dbefbce26ebb6880014a7778dcb8c32a28030043a7e1eb0433032ac901023bae0be075d82b9736f7094969baa156345e52e7374469814551ea988c72c2130596b90d2e1901d04d686c97a129e1f75927f1accc4155d68afc743e71a8115c4c8d264cd0025824666bfb0ff7a01dbc01c1844d207c3c375b9bf51346361b7f55463210d67d2008612a3f02f261a92a21ad33290a0b36c76adb112e88aff7d1cc4e9217e9d7b3c86515212400674a6bb14551cb3a8203684ce26785a4d93bab4fb3f3742d06c77c971a9f1eae646c8708b5a43cdc357f2aeb62e5b6186144447d3e2066238f2f163e655e11143a773c3b2402d460ddc3d69955ea6c817af67be554ce9376c9dcfe329b0fd07b0adf516a993a666ba4afce2c3f503efb611f1fb68a66ec48e6214e877deecc1969b449cd0819b707d69347ff09b5df64817185cd79ee421a407cf2f0fd3b6fbe6debc6179f150a771956169cf11c948e937d7993b3a4909d8ee35d5568cc163a955b70c16f6da6d8bf5124e6df1991e87b10d4badf51a366050f070e2e2c230ed2265d1a26a1d49b082b0a5590242db732adeb1cc813563bfd9bd80bb079dfe906bfed94b34ff6d72db891e68d693b90c7718bc1acc952a3763abb95a4e9a5d0d25ab04a71fd03fad044c25517c2d886a205c8141703a4e5a868c6de5b9491031d52f6e8a99e6c59631187e3b91f6e25c3e13bd26af4009109f2e42b4e10cb16b528439935427a40eef9d08c9c3657a1757b53349c03f10abf97793f921cd70d1bd34134eba60d9ae1b60852ff7f60dbb5f54d42c6ac7ea0b2bc2f024dcdb940aac0240ef9a0a25dd9b97ea194eea726da498ae15079a9c35e6216e10e9a7ba48a0a93459c4cf6d45d219e23b1833c70fb1e4fb614746fb078afb1e89d2cff0eb384621f8e20b43cbbe52e7dd347a02361340a9dd29603ed792c9a7032ba083fa7e9fdfc1d6681e53494c70096b064c96330a93cfe6cdb36dde3ad6c1bf0c3614b0f5b5092964fba4131613993ea61ee3206d3b96883dd43a06f4a28aaab7e13f224ea31ae3a6779a31d45acea4a06935ee49ef42a35f44b6132e43622153fa0a698bafaa7373384a71a0f9ade06b84c3973920e0b4bea2a09400c1f685bf41b712975221ecdf24669908b9c1c15b0ae084b88818f7b4d9da2e1d9587dedb8acdc3abf6680a12577e74e1de48baaeb95e3d6d623416db3fa746cfa008f9e001e1cdf420c7f1d4b899a5d467ed6a1f8856a47bb414b36172f0d8b070410689a7915a7aedde3b4680f2255f8776a4b1a7df3e2d6861c2dd7b99188e167a4f45c7acbe86125a818fa55ae596bbf507fd33842ebd16973c0bf114f560ff32d9aee37759bd36481dd16f0e7d67f50148959602452c87a1e4ac99c1e2924480a871f4ae3b7edd10fcfc627d27d8c292e91f22c5f8b3b29034370020159e4bdac68de3b59e07def3de3e32a9f7bda34793e177567a9a583bab3558c32cbea8c3c19f958d80764a3e236964fc419c4608051ceeeb0e157c264320e0acbf7bdc4ddd406e533004208200be60b3b9ee1db410fef4712704c3d4db8bc8e27949c809b4286e9b5f416ac1f9131f5a76d2bb821c9965859dab47d5ab24d9dd997eee8ef45839ef4e77d8184031a6b8d4e70cd9cc9811ec0e11954877c2a0fe4148231c8e6d83d45c5b618288e10afc1707c3ec60d1296f87301c97e4a15842e971d0c562152a83fabe197ed03a28a0b7ee62dd02ac3e93926842cebabd8233e72c3150e941f48223f44528240db668da762da4a052306b7fb5c8049037d7caeac33cdada672b60fa9a73ae5ada956c6e6c37f0ce4d3dfbf7ceb798592dcc8f877dded57a43d26df04b731c43319f973c8da4835cd48c54075019e4b4d10b9487e784b69bfc54b06c70d47b869d87c13c5a8e4e11f60153c7416a59f6553d11492f844d36c5960cdca50584a2cb5ca87c43ad9542162bdc8da748f6be2aa74f273865a82d52ea3037ffa18ad209a61b74a1add97bb60633800900a22651a1b076480a098fb7c802fbf74b0a6a53bd7e94ab2589dbfcca66788ebe88845fcd60011b5222151ac287f14d2923b65ff042389475667fa6b51f87a285820a7787227463c0e755e6070de9dc30ae13469d0bf4423981faf75d6b19b75d7a751bd41c5a562cb3053af14a93219adb0ec0ad858b75471c750e769275d5447127960e35ebc50890979430b92c1f15aec421e957557f577885e09057fc1460d3069c32e1425d8432a1a4f70ac16a5e510b53b84e4d43d8d22ca97e2e8b7d80468b51c9715bd5640f32b08d2b4ac9fda462d6512b0ff787959a0024944c163f452a0a9f44618fd53526bd221d5cf0a51dbfcc6a6b91f95f7e280953116375e82333dd4e9d1defa815c1cea40f0866e990c24bf8a9376171e40e21fb5a60f0034eb3abf538a72b8c20877d170d9e0d23f343659f4b468ce4a340f7a8ed0775c100a886a32089b851cffdb29e185a5618bb2ef161418323bcfbba84c07a71a89c87b0b306ff10359a97fc58fdf676abfb98942aa9506d0e7b66cd2ff519fb70ce725f048ebb3f19c579b8bbde296755309cb434f8365555b250fb2b421dbf341a7f7cbfb9ff5cc7ee02b6354f608b457c988ca304893ae2a4abd4d50fb1ce9bb21464833773c2e696c0b3749b00fc58046e46cd920b8890adcd337a02fbf8af1bd93bbde2ed867977fd7e9a1dff31fcb641791ab4407cb269f1745f3fea65b5f6faf54fc9fca8a298f4fe05848bd9d580a26eab900dc44403b1dfdb2c81da39f91adccc4d2c728730730e5de5266b61fc257a0c83cf959363b314fbac50e12eab9fb02e8d1a2153d20e2b1b6f38b1326f920d02f3c3e998ff2924e51b8180d657b0dfe775c7eda47eb06faa27ff28bcedbecfe66c96c83db91dd7c04534659b9f9182d7dec6bc29a1a7a94f65f8057869b400695a8c1aa72af44be68976c2cd6a8433d1b48f06d52aa323fa54514843be38dc4e417ec725493538a849aba7540841c3e23ad32046ef1d51c6117a77b013a66fdd458b2ee2f9ede91ed99b6fd24162f0087299d783cfc5320f6e1a126c84cdc5485cda4fa6409f584b348e42e15b46aceb868ee83ae66dcbcb8efd21f87a6f538f2150900487e46555bc29fbfc4cb88fbd672309afc8fbcf320c1cea001d83b39ac017e49a78170c406cc0840d670ddfba5ecbaa9b4ad58803ca51c33cbe30c68dc13a01b340c1e5fa31f4b8538355932214d304e4aa4f4f49ab5d38e73e2412bcf594165add762f66c02c86b06b464ae14aa8333cdde83ec3b2e958640805ffa80550e9403e1ed5790baf2328d97d35ae2ccc93295d7c43d8143a58fbb8111362377c60d60e7ff626104e43dbbf7c9dfdc106f8aa1b00e9fe6f3e72ead50f4f2c34bf44ca774a9d920921d7e9c5431370c20845e12ba3b2a6b13bf5ac6af850c7621e468da485e89f7312698e21203ac6ff486f9501ceef97c80211db35e8a0283f5faca77a58149071f1fc619cc4b8a33b916fbdae24938ea6f2eadd3f97c334c3e1db595c82eb3adab4f885dd3bc4242cd5b1416cdc007c07973410b440af80e720660a02e2602bec295ac963682a64ee6b91a9536ff0ae3cddb4744ccb84aaeda3ed6a038093e34763fd6209371f4e7380d441aa555f4a9c1a01d8aa1268dba879d7d0f23e22d4532b89eca779927405ab8f2388067ec1ff7fdbcc5134adcf2b20387d3479d9139deaee2a98cc82812064fbd785c4a6066e8e26d9fb1b300f381dadf80a9d2d091efe34e302e5ea873b35e27fb8a74b5fa5acfb7f919e6b69b959f7ca7756612010b01d7659f16b8d05e943fdfe5444d448365eb292fbbfc84fe129a3496eaa647482a2a6e82968304c1de969918142110e0efe00a1bae07787194a08c9fa23c7562d5d10846af7938fedcf37a63682bb145ead4acd767a117813def5634611ff28c65de1cad7e5ea5f710b7ac10a866c943bb6b7aaa4fc3f524a23e8e4e237fd15f9dacfbca58285578837cd6280b21cce4e1c6d11b58ced7179ecc5da77a2cc3da26e80037a5277a3406ab425bc7eacfc203c8cb743599226e81e0352eb2bd2b955fe06ee071c968e85f9c341903ae0969b2436f1625fd42952ad5aa6aa913c6e04b85fe741fa47f24aaccf5d068020c6e1f5489515e936348779bf35feb18d7525275513cb6b96c1976416134b5a99105f60d7518961bccfb86cc8ffdc67cebda8c24a5a99b60460b945cd5389ada210a8827d6840f14a48647e850313c475db119cbe34c449aeeeebeaa17ac571ab3998e1e54b670074334fb8702c2bb960ad7db4d080bc8457f48067616e2804f677a8ac8fe7a3582e1726f7823e6ca22e82ed050939912aa48a6f096992e6beec7fc33d93a646603a5a5018086eb7cd9477010aed4e12b528e1acaa2bf3640b15417e47632125b69a64d37485779addbe4a39f0c0267cccbce910b6837c06872ce65ed5129822069d3c6da755b95aaa91c7a16ff80731d66ec23ba5e4883ac29129891d74b578610af8635c70ec63e7c6b00a9f252af38926c4939f8e11da4802110bec1aa4c1622b136d9692ec32c63074260a915b9bad90cdc03dbb317801d54a1961df12546bac79be19f1115940033545ac7acd7e97f3def5058755177c0e66c6d223928790feaddfc67c42b039f5937c9b33e2b023e11a62064affaeff794f16ab1405ab1e631e178e91a8b35d3c699b9bfa19eb256f502d0f638d4a18813f2fbb36b059eda309a12f2af743de07ae1106bdc0d1e29b8fa6c690d01f5caf270603fb1f47d95e02a57c8fc23b637f11c89f31cb3084b916fc3f71a8e569de2742879e49264c4056e55c52b90e86751fda32ecca68893b2070c57f3f3950bd27bbab29ca287a1010ccd28c6fa8da3505ae9b2f1586136a671272b1fd7757bda182b1801981be49325eac08c3f6736256a48bf04232d2a142edadb046ec3839106e48fad14fff53bed230b43892efe26b58c09088ee73a16a7559ae74e745b68c8d6b14e2bb681f30fb1fdac94ff2875e8cc652299ca9af7b357337dbaccccec8cfbae9bd651b723829d8b5d7fc96382374c2297c3dfd8727ea3d25badccf5604908aa6c7b5ee6fcd7b445f776f864fc40e7c2ce909611c4dc08b6aaee1a6da88ad5ff6684fdd51ef69a1a2d43e5379a6c2c83c1224198a62f22038521875586c81472a80f00323280579bb024179634aea5d15c193639e4fd93d2d55afc2b77bdf2d1d910a7a6913d0308ea619da57a676c24baf9150be19d3e69f6670a2c94b3eb3c8cd8651ddce7562ff62d39879350d36f2f49afe60e52f3828fdd5c713bb4ef7cf8edf3901bd252b2c2818b80218d0063ea9573623236129fd93897388d8f5f605ea5e6e19ecd54b4f4da01949102bd59b099fffba196e99ff9476b4c9d661d3ed97549467c0e3fc7889356e9add1531df75216483a495ae8744d3672f0a140b78b6543419c397c6cb537c9e630763b823081fb721c3ee11789a42c942f64a8d84053ef9ea01f970cf36e02aaeff51b298797d11c390650da9b7417d2194fedf119d5d62dbb96f146a2a78fa9ce2576eecdfc4e51da085899866f1659db801a9cde4b8e11f27dc7321d7a4081589d9d52bfd747505e148d6481a89089bf5054331b720b0e9b771cec7a6ce124c9a01624f6ac8ee2046597beb1c0169135f3b505080b96e09a8c2f307d436a8b9c8e54eccd1ac585a7ba0c0b82c648127fd4d479046f1bdf7c9be33beff54e7464e17488012d0feb8394cb727c358c2dfa0743e0b5aaeefd48aafaa953707a5cba0606f8c81ded14fd0cff4036e2ece43cdc4fdacb355376899813db42255c3f6580909c9a0c160d39ad6b3be9ed856eded5c25d5ec99c90f09007b49307767b1c44f79ed416b4266c55711e5992f464e9ad3ef7af399b0c13d89d07a8488b953c3f98e847b757269d5dcf7de8f2d239401d189bde320f54da1454b2c6c9533c7d50cb6dd177dacdf2094bdfb26abdbc72201d2dff8fe3af95c90477a916907f1b8c1f00ab232e2f05e857190bd21e0cfda02830a1c805cb6ce20140dc465c674c2c2c08ac0940e7be8d0fe22203a0f122ed068822a6773404cac7afdbab0a028f9417aa35b0aa894b96ab0b286bb9df0088145fd4ac25804f36b63006301fc7b4048ae5b3b9c437ff8bccc48c63476b98f1d1abcb0408e589bab73b85f5c8268e61d9e85dd4280876ac032ccefa801a9e529566941eb84ecf94023340e5ba7d169ed9a3f87b3127ffcbd8ca13e484ab7c2c43ea625a62710c2d538cffb81980db421c6ddcdec863722b1f43654c57833398c3a45da85befbcc29974e92ccd0ae05e5e5db2ff460052e07b82428564646cdf6335e23f6614f470883d5bed015ba6b28776083b9c381aff67640aaccf55ee84c478f3a8f3b40aa655c41f7e266bd35948a5b31ea8432b2d2e0736851ad92ef87dd671b277a1125aeb7af48c1d92223caa3ec0d5d6b0540cc8297ef0ec00754854bb350124ad79e89455efe09d5818bfdb5b905517e4aec9dda657bab0dfb95bd29c032f841913657e9abdeb77ca8328125c9bcd3eb90a4280daef8db2debfbaa3c2b563d77192b97bc183b53fc080d54b3fdc3d37d73d521db0556dc12b8ebcb711b5980a7cfa360b5670bc2b73d3669cd827d0c33e70689b0ec9c3faed9e36bd8d56fb8b135aff93b7b89e55e894a7268867fa799a39b02015633ef3fac442c224e868330c7d41abe41082b7ef34492ee25db797408cb2fcbd746fe6020098892597a32f89596098b33a387285b85a78179fcc9cfe079202af6c92903d110efa6c8e61441c88d2b40784bca79323ae3af74b5a62e912bb1f9c50c6b99bdd48effe8655df7c4cc47aa8fba5cddf98c584e33265c3943a17d035193cac64425b367ce6b471a3b70001ee6e21de343e981b95c0684fc31187431d2f209d98345a308d708d8bedd8dc021a6236e2d49204516f220ac3a139882b6bb223d4bc4a77eda5960c222974acaacf72a2378582ef55da13e0d2efa343b425c642cd613c498cdb6e77a5d9803a80d39be9ca89bc12d42ae5889ab7e2c4986e5f2fc7838b3ca06651ecaaaab4f776f83e6a40bc6feb5bbb0f862c32a189a8d0371e6791d4df48c1f9a744bc0c7698298cd9dddfc6e6d65d4d7183269e9e35ed162ca58b610aa80e0d6d8bdf72fdee2d9aa495c6afad33b0fbd15e87177b602c1e62c2cf9660a5957984ef3860c9fdce150a45385edb04ea259c3a5a456ab06718a39a49c4e1b03c63f602513ee2b8dc367ccaaa0a81711984334236cb4ff2bf9e3fda17dc52f3e4ed63cc6afdfa29d9ec7d8983a00234abf8f1ca4acc87cc7321b3c666f0138a4ed36d9a5b693d76b24d003bbdbcb546c1884bc035ef180b6e954427d7f63786a3ac6f83144813226cadb604680d169ab31b244c4286c7fe18ba5c2e436359a450c179926a9f2eaf11347e2eca8e18676c0980b6f2cde03ac46157b89000cd4ec191804407ca2195d725e4165c4e15aafe488c87d0c9b26d49abe6d06eb1b9a46bd15697cac76d49b70262f4249a1ad231fa66a35cdfacf0e70e40b034f57bf9bc7faa821fee38269db05700c3feb7963f3eb9d3f9c0c4d39473e030377014c70db97611b4ad3adc1e7a04e81fbf6aa4feee1ce539ee7bd327f708cca24c4b5de18327b5c02a6116b1290c1edb2b275c0ca1545c8743b718553c677b029ef4df67862ba8a130d741a4f682b2acaf089f16879436de6efa127c289c182f39aa585909027bd30a4f0cdabae0e407abdf6575577ffda861e1743ce9d5c9162ad9900cb1f479a8fe4c7539cf93a2ac1e17bc0d44ab7237e6f29033099f073dba59f9e189fdd7e79e2c998a6f079f0e98cc3f75ee3a74973de79468796caed65998426c9ab34b0a296fe4f20223451ba3d1d0a0cebc66b14dcab90423e1d870c0a131d4de5c8d9e3c935ebd4089891ba53e5e763b0038e00dc1defd187a423ed26895df01171770b16ebba91632d7e53b58174282edea2c67387501d97887efc78c203adb623c8ab7aaf33256dcb796005ed74c3b6b7714e008a76f2154fe02700742c0b925ce0cd41508092b0b34968e0e16230221efc0b2e5f266766d3acb9eb9162f614777bccba811947173aa5ab69623bac7395d7f1338a905815ee2977d754f83ac7fc258e0c5fd6149530d1568f1b0dd3eeb7a4c902f8ebdabc951c5f877b272a3b036df8abd39874441e6716c2625f1c7d3e93f971b10cd75975c178c33202202fcc4be87878f011cd892ff8afcde264f4823f552935ba66685f90f4478f70e3c1e393c85b37ac7984fa47fd7c34a2b02310d5070c9e287dd16a2da82ac709977b08b63906bd413ebce5f217f4ed429c8d9d4a15c9231893b5facd9a126230b6f5cfedb89da9cc13fd4ae349838def6f6d2b737e2a8faa3911cb8c2ff046def397d3bbc38a7f24ce8985240fd3c4aa4887849da5c274002768730ee793aea4614fd4b961ff0930803b5419cf59036f53e2c0b001259c89ed2106664edf3a61a04e2427fde3d3348a47e235361b7de3329136feaed2ae93d9959ee6c6d89976fd2cd352ee4343a19f32b8502193a50c8390292cb9177af6a8d7cab12df37b6731bfdf56d77a05fa0c575742330f6ef86548da94b6cb66a055855bfa064c1002e0d5267bce64d0b9c0ac422f4acf97c42bf7a004cb43619e905927f00db07601170ed31f15530e1f381ea4e374d728135ff09e294bc73352a72289a2e31f1e48744efa99c8908f23d53cf81ff24735614e282638e50bfcf901fcfab20b32b30014b65b78cc1b8d311909469e7808a3c2ad0b3e97820f1a58190b3eb93ee953bb5efc7e4458a7e4af8835c34e7bb70bff804facc71d56bba125c827664fc340479139a3acae1a5de042a3f27ea9405b414a8a9869f0ee9bd2edeae826d25449cfed8f27faab481ea8d06267accadd0d1cbc8efa964fb369c6fd9ed4be0bd19f3e9778e76da7c4675888ba0aa0f55c844e82bd86aa068fcac5d8f8df88b76662d6a96a6a946dd27a9a46e8f058d66fbdbbdcbdc5a82e4d1150325851282c6fa93c1d3782f15d3e0a57d68eeb4d8584f92cc44bc4c1e7e023025130f8487f117defcc5e5f083baac290cb68d5685d7d2c8c5337953dad7221f768a8fd0dd3155bec95da9dd7e0df2599f0f934b4de069d31894d94ecca3a634b32002dfb3d0b0c1ed68cdec722508465b1b1c3a5c216010e7275b5fb2ce83b1b82fd197b929769c71dbaf1227892eab01eab29fc2edece971757d8bd8f085f7457c59c90cabc8efdb69c78fbb7d1f5a2072fbf9d55cf201379db3fb6ce309507d288a4026c39d50b41f7a21b40622a4bdbaef12b964b9a465780b0b8e299c0ea94f8f6df18abe94cc0cd32a1f5f48558ea3d504b4e4c8b02c4ab20ca5769fdf121a8e2c910999069be1c2f1bb8ef7906ed19ad8e314642210e0ec52c650ccd9b2d458ac49326d89ebcf44403ed304f978d740660b077727381d25a08827d5d1ddbbaa52bb87f8c86c4221a43d9a8cba72532e52b12e79ea47035cf4a2384f5340713082924cd29741b27bd60ca4ac7085f7ec740e7b256ef5a5754c2df982f3522fc3d00af0c29dd9183cbab05b867752a326b4b3a566744632f3981be37fc0685e24cb928ab1be8bbae64d0097a0fada646adc010d1ea6f606d895faec1615f892d6f6bb8298f41845ecc99b350cd2694abef02f686e3fcd48d8e5269d0dcceb5ffd2c92c5aa221b88638ead27d0b50b0818c4c982fe16280a7940489a62746cef817abb6c8518c924317e948323c4ef2d8ec6bd8605b9dcfbc42201273fad28325702687482d607e6af109484e19e22b507ece31b49a11d3e5ff7c34f1c9a55959817f6f0ab9819b7d794e3102a0956a3551de811dda05b033a13dad57087763d3500b4fcc20d946c81602f12a4c3f4a468c19eda2832faeb59e598c590303d1e2bab26f34b55eb900ca9c90f58a0af6ac9da29c9ec4f3babb74b8cc5b49be7680339d061439c3a88cad5a27ce21d220e44bf882603bf9b0318b3723a96a31dd05a5b057d4bb56ef8d20e5233bdc63835e184f963628e062d536c79dbee82ebea74e57bca2d32b4130afe1cf9a0f64ea721f49b384f8d28ac52aa66a939f9dc1d368c9625a3d96d58ff77cb6b1c96c6c09c43d1f6ada2799a03d00e50206a6a28354f27e574354e746e4824a09a48f159c12177e9a49aee1b4045e189fb62824b078a7fa3f0005971b27d4d128090bc1b4596c8554db2ac29b4e693d2b35c39b78ef887924cd3ffe539d1faded773b1828f142323226316d29cbcac959398f841f26dc63679414215b3d1e34b260bfcd0ea438c44c138d03b776e5ee491c0e066b1722a6efcaaf4d34035eddbf786e8ba257bbeb8aa012c3386add9f52be65d5572ca98cb124afef5fc78abc37bad9b341ffb6f67943a65ef08156254c5e44eaa89ef929ae5f34264ed67e6b9691cf4b24a6626f022d67e306a6f84f29ee50915bede4d7938920cba92b8fb60737fa307a299d1ff515185a0e16eaeb02c676580bb60d6050882b8e86d017be4ea7287852b7838295c2b273246f08bb0a74649baa06ecbf5a905f4d73bcce5189dda26da836fcf7c2067152e7f569e71589a8fc49baa0d9ee0b1f01dc93ce2def97b8da1a5ad66027016ea8aeb9be98528777b014401afaefe3153e61bf7c288d9ddbf1bf9509374d13e1ab00ad323a2354e42881f17425505b36e86458783512e46ea2f8b5a8221121b9d663efa36d4795246b57a7d32de8975c61c59f6109bdb72930c54cea7f1ff5d1e36aad53fae83490e5158bf1dbb9400860992e07b2f05a30fef20391a36fa0bcbe6b26f4e9a7f243f3c3b7cfa005d4c8a0d0a5ed28280778375c5372235843ea6393ec6567fe8de62df3c789c2c5fd9e0589215b398675c8d3d8fb597405c8a260540e6f5ee52339b134db19a9e4f7e50bb9db7811def8f88ac4c8a5d64874893ae4533d0ab5d507f71d037502401a4b29078202f05171bac293c68ba316bbd6f7fec9e88877b0827982a70a3ccde7d67ce4956ce709002bf3dc396bf4879cdd37ed75be09d9eab3242153a67bc07f2d9b5e5e1d91e61d664fb62ffc9bc66176cf8cc659700f0c8ccb2a11c6bf94ee025c14f2dee4ed733e55a00e45095997be5c85f46cd2f2f4a3cb7463b49379d8fed44956fba473f17f91672e99b6d2cabef402c29e79bae3ec96b617913c06010c4680b3f438ee50c8dc4737850d32bb2b6947658d1116fd301b1b1a84d771c934b3dc827d827ea235614604de486b740eff98cf69410af1b575299ec45107617dc87d72ddbd2fc9d54d54349aaae8cca355e47a24c7c5436b02f54865cc0efc58b42deb94d4ed06a7beb4b5dfd7d3881bb3273da8a5a47096846cb0c9dd68c2394525f574c463d5de429a42af0a38d311fd0ebb22c19d63eb5fb3fdd83233f3d8d2a49e3dc234ab48b0804b158860e643dfd2d54ab93f5ab06da784c20772ece65febde7425727f3863454d7cf90eb0aa9526ec466d7d85617c109a821fa69e7933348d4b3c51e48a661cfba080eb156ad440eb25e9fb26fd17a58c7ae4f45d1e61c554e83588a7323c139d4d9edf0e584690bb0f322f3604862bfe037b0ba7e65969ea75683a838a71a3d6efae720a4d9e8573b1c78ab4d83700a2ce8427cfc152f50425c14cc29b341f317fea2134fb55ed990cdbb7d45b10b505b8a3750fe17a1220e330da0a6d0ea6246375d26b92f882180ac2e51c0baab314d4f41f01084535957b758d1161ebd0855d2e5db550ab2de500d26bdf5275f2dfd85158d4426ba25a1509b315b0ef4d060a9df99e5500595a1fa21d9c7fd92f14646fbb7d1aa65185c4531a47bd5ba9e3f430cbd8576ca263c8b3e063df0b6e1f06850cdc82ae5116877c8324a60cac2f2bbcca9e5538ffe9f63b2a5b999272d68dbf518c3f29311893b46a16a071e1a8ac46b147342c8b3e4fff3bb956951977e02009490d63caebe7cc78f312bea466fe66a79fbd3f44d65ebc254ed7e00ca63f5847ae889927b69bc30adf5c8a315e9eb1ff7d918e513abc89e09be83bf8af77f6797962006b7a85c5534ee72acaca65eb49589770b9bee6df3df8df093f538529bbacbd1f73da64b8519bdf9f5ac516206fe15b4eb22a0851dd40452c499bfe3e2439ccbd16ef5a43ca81ca6da144a031689cc8acf0b9c3c0165c408f1b7ccf5da1f15ae55d355cb57872aa59b4629e0d2a1c75a278d9b7a30d07fd23186ae38826b5b400140fad00e43dae9bb1aa7cf78e7b318934e58d124bb93736d8363bda95e1ab84984baaeef9d40ad16181ff9c65976f58c7b6cb6bc1bb05c94dd7629aad86fdaa3bde8060be649817ef1c5d29bb867a2a640ea5966574c58e66bf26a9d8b3cee67b0d1be0a85fdb29e3d84f486213d77966b7e7326e38a2022f85f97d1bda993ed7fb7edc05113c6a6add70bdc08a04a22d1e2159a71b404af79139f465008e510e7c6c6d54179a15373bcbb94b5461426b73ab720afe5264077250b340671bd566a003870137472411c7e7c1c92fa449fd657af09796b67f58341f42a21bdbaa75c5e871658a7c3843778d88e2ad5bba5ce961b15c2b0674d477d3de04ac553cfc2c2543c408e847783bb5615e0cf63acdf2870fa1b70c327c6e5a5f8465468070ee39a37a9a8cc4c297c8689865e1de653ffa289d183d667b2c9de852d5988cd207305e86c5edbf1e9683489480f7e64bfccbf14e559347bacc8f993bc944bb7d22da4311d6c469af026ccb3af56d3adbcc9ca41b990e9668c9e3b7bf34f992dfd590efa7cd35b1728c28d3febad568c6ce3df5828ac9a46bdba45529cf68f1ce10cd7b0aaa71f6fce6ced8de99d97c0f02b05fb341b11230aa07c3bc4cdc9ea85dd5d1ab595638102257707f5a75f0072824fd6bbac50216758677fd655c9ca3fb76efc01bd233e08e860e73165f86b07376495b26a6862b4fd671b804703d1561be012b13b7185a71dcad2a12209bb3a405457c45819a2f43bf2083ecbb77508d50e5f2ac02fcc710feef90c6d94413a20ccc29ccc0884ce159b7344ef885d83607c234b10da91fdfe42a7830934d16d4f1fcada601c2927fa3ea633315c5bf0ac58ebf1d1d3038de5d5fa136e9f3c3389e2cbe85c25c38c61ab9addc555f4520999064b0c3f3a2e6be9e641acec72e19ea808e5f8b9e35340f43cf11b21944894b4340ed0733cce1d3c24d7d1e7849754375c816cace1bf83152708df5fda52fad49aad612f764125346994401fa52e3798152aa36e480fa4e46b23f4237872ff09c153f1b601ab1119c816001fa44677cd97142ab92addb0b086489d43066148c4f2c8f8c5aaadf79004f6ac73c02b839d164f0818a7f780fa40bf2b3de4dbab3c1b7c804a178027a15a9ff67daa66798bb563d5db60be72e5c63c53000ef1a4b263573415ca3c24f7a03049b228b11556aea80d91945a89cddda6de1464c1c09e1b7ab714cc6b96a4fb35597899ed1a2ad67e4be891b8e60b50d03c781cf59537cb7d7824b4967257d099626d65005956b9c0d31aad8fa442c0323acc0262cf5bfc80e674359d0b7df35ff5bc84d0a6a884c8ebab8787d8cbad9f80a8b960697a4bc9c2ec88f81cb8878707cf536fe9aa0c00418219f9241eb2395fa80cdb474aa46788e7afc998c97449094444d21e76c2cedaf26d84c3bcf77c48c5739eed65a7ec177d9eb946bc7f21af3cd98601f781d2589fb168e652711dbfb45f7a6c8ccf76b4cd2d195eadabae80537f5cd2a2a7e3291b90bbe8ac6049aa02d2c198e6ac0b93851d30d929e5eec74a96bf382c8bd0a4a65192d941c8f2fd5cd0111070379273a877f574c99b9b69e81996c5f0a8df6708722a5906259b44203f99bcb39a731018e223bcf44bb06c0756976c99ae28e975aa23b3d57c1b01ed72ac575825cddbffdabf48574611a3e3353c0a57ccfaf3961b62c45cd1c006c9c844f9cae15be6df3f97c47395782632abe157dc4397f4ebbcb5b2ae4f2c42e364aad046462e8896d7ece290cbdc92b575c3789242f87ccb6d3008246182e85779150779bba0e8ccc98f9aba5f6ecd16704431d6de7f65cf604cacb497b593bf33edde385b51dc638138bdf97488555d4ec2126e98b01338b1e74558e7eceea412f4bb173c41324756abce6ae8d4bbcc8c4a2e99eb2317dd0915d4b97b7e63093da970b01eacf0913d7687f19ee7f09b653633e651cfe5164eefe1ca9b32b943940cd06d88397cbbf1bea83d96b72e9b195a24599ec51915d8110ea8bf23d2da37945661dc3b6edcb81e84c5d09fe54bedf5263cbb41b89c3260d0d24e735ac3da8f7ffd17ced164a416906bf95e365854a82651a45ba4cfb45ba97d895454af36c5e8b1d346acd05d61c4c65b8e7712292c60b838648b72e891d7f7e931262fb7d1bb54649041a292f626196b0ad7924fcf8acc4fa89824348669c011f0bc719500001887299b18aacf57f59fbfa7d912dc87dd312823d1b2c89484efeb3c45748cedb4c6c0b03a848790cae07f6a95fde50068ed440b54f81e47ae08ce9b2d2e584fcb8a808fdf29334df9e7ce9b70c3e23d1c040edaaecbda39cc559c1dc0787f01877a6d72c227049bb67694ca9baf63e2779e0641eb4de954407479dc2deb7bd9e26cb8b1b6727d48c40aa8e63eb9bd1ec4f5a47e67cf68460e734aa0251d672fb85114a6199f7c76d4954a61bf378de2a62d9452227ffae80074cbc38617aadc308b555f4e195e45fe5a6afc6987dc6e5734cf3cbef44f4fe84b340859e7baf86fdaf4a5925e312b8cda8533646534f45ccca6becf30635f6bcd1db605ec19f746d87c99dee3b93655456bd78ebf994af3ee0d2d940ca6a3ea9005fde549b4ba0384caf721e3c09303c4ea0e9a932052e9584e7693dd522e8ae7f11b7b2df57e2b07354e8823695f16a42afef55c6c950deedd4f12738a2691e7d02fe41d0e0742e18eaddef784888ffc91fe4ced1dececc44d399f370469832d862cca6032ec12dacf9358ce473dbb7db71723bdcd28221432c2e87077aaf396f0be2d83313a2087443cc84121d765d158a042bb95e4633324992a60b17fa18ec6eee674702091a727cb3f4c16535924bb9b049bc99129ef55a528a2d88c7a7e3bc0f1726c44710c3ef807c7536a8769ee629865c6271d85608c02f70059d330ea40a6d18a9c2274debfd141f06e026e49c462cc1e82af9051e7d399b60eadf97c8dfd0fc1209ae842708ed3f31a70bef8a7752da2cd20d2b95c1173fd9901278d939dcef27c9853876c86c1448e0aef11b01677135e3b6a898bbc36aa118308431ef13f46978978582a79e8dfcebb3909e614ce27ee169821f9849cd19d96327084cc9b8aab4db22d73f126f718248cab2d98de60698d49199549c7e44ee160762ce441d9184512ed6bda8dfd3b4da6e726905cb4549c3ef0996d15b71c33e0dc12bf98b7bad1ea75f0aeebba5fbe06c4d673aafc6d9aa46d3ffe178b61c9af3421fc60fd4acaf719e4253b802702d7c36b5a12c87f79e9b49aec8497b0c844dbc6544e38d65182895327b572642598e3326792fd79ee1f0a17c77a1492eab92774e7c54346da83d6736d2c4a0d127dd9922a1338d68fcaa54b7df8d8397e704914a2ba1df240bfacf9047b522f0f86df7b1b2855082c7ef5ddd5c1e73442ad3a4daf58467e39a190ad945db2380ae1fcaa057025f399fb1d3bb2ecb03ac02b2cb4d660b12658e70638ae40b33699d87b2a82b31d958570e5e223c937abde5bbb7bcb173d4636cc3141c78417069b6057e04b7435b15711e734ec517f42403f3780c39055687c692e88a78c2cff6862a408d41c1b1debb9a1435795e6ebdc872e4c320d13c3078c946a027b2ed13f0c785706d90a93b7eb7c6c5f9bda85106a64c046fcd560d67b23227e4b1665cfe6b4cd4bd1a8e9160a7c9789e8031274370b385ecf061c1dd0a991aec4442ed3ae9bbc4006fae26471379b3dfc6ea4de980578416716e7648abd8a1632c430fc641a40f50f9313588f896136a03c8e68558b58385f0f1d6899589b49fade3597b3d74e3f5f008f1864b7b94bf8c6d306782c100b7c93f6dcbf0c8fc5fedc674fb35c387f9150dd0b54e5340fae36183e71d08f8dd121f6402e32137468807863b69ca5d360abfe709a05a1b675ace23ccd95bbb05337f7096464a42af5d003eda84d7a674ce00b4cc81de77e42d3d958e38e42cd4eee13219ddfee44615515e010957c77be42f224a46e6a7b87d5f1bed9725c529688ea0b9c6f2a39357a38adad9a5f9b9696918d2093655ec22274c518c0500fc1729e4313c85abeb340c325a85ce635a6c0ccaaf48c6945c2bb9b672ebc46e7c76cdc6cfb4faa063d52008d1ed335dd2e197f78e3528f7b3e63a2801cb9b33ced2ccc1284a71b1efaff977aeb3663493ef3973d80a832f10776739fbd9ca019933d42a28cd7967330bfa16d3f2b45f4533820eb53477805be3a254e2173d90887ea1e310ea3f1032bcf517d01823355fbf2755caaf670ba8faec075e794773fbe1772772ca1c7c5717781cbbd2a9c9d7d4f981b4bb0892e3ee41c16268190de420c4de494cd0f563dd913021baa2941582ecc1c55f7cdff44e24f6ef7f936b727c022dc8181ded2cbcb117dbf8f8022d604a5cb9b8be1eb1cf60ce0bb0b093fae2ac43dbb4d67ca57c0a08fd3fb9f466c49dee7a7efe77e0b8e739aa8eb51349be34c6d84a95db0d9ad956d556d629acd348f289f8770d6611d31be746a48f572f85facc53655381266e5b4af73ec21db46e824d00bbc181d4ec9331ac6a670aaae1905953659b47070af77e707662fd1b3a22470579c8658ac05f10966edd9da88a0353116edcdd5b6327208138933c3fc580098f7dded53b50a5bbe010178435da845adb07053fdf61dd2b2e50fbe4a76b8bfed691d9b466109e0c5dc04310601504610c08bbe7cd26ce5a338b0baed25cd846524fcbb0eef249abdf55baba634125dd2b91076d3ca518ad99ebdc2c4eed88222c21f994267d0ac193055bf1cfd0abb1fa7784a2ec2bbf0b07f075362de5bf690ac4910c0dd35c77234209f75379eebabd03b8694dd0900666e27beac96982f291101810125e0d2276682d80362cb834d60ec5e0405df040ed6318a6a7e571d4522f042a0f6529dd34e80d261b9f6697a247a2b2411ef6891145843b7f27674b0caa5f00f2cffdf1963b0f6bd2e17813c4daa0a4906b6ca35127047c43d4ce922c11a11ea3a2c46fcf40135732e286464cb4a9b52981cfac1cd5753f204c8c080f2a2c57a7d4631050ef54b475b7e328e2df483edc5295dfafe851d44f1c37af0b06fe03bcfb68ab0457764e5bb86256f5be48a14696ee8d81a1ec0ec563987547050074fb2f87db687844129f0a962043e7cba2babe0cc46c2de1cc79cd59a0d2942dea8ea3d7f05e96b2c61874203a715663e6b5e8e83d9b837d7f69fb32a73b4195e813b445a10b5da374707ed2a337e55b8c7aa965a849c57edec4211d85f161fa69e09e11421644abaeb2845108d8e915d16fdc1e2d5a7479ae60be203095a502f44ba3c1f38af564dfa83e969e22e4330dfbab8e7caa186fe87d27ccb0c78c071c2ff52e49b1a0a9a681a7e2ee4579dc8a07b3009a5ca243272ceb7a73b6734d8b6775d78d4d1856fb406a3eaf28f2d685c83fbd5256b6a3e86efb71995ef0aea294b562f97eafa8ef4fa0203ff720e539ede260441aaea26a2d26c036b1c1fd356b0b34071021615fb1224147560aa6313dd4b1599afe6b66058861ab68d37374e0802d796a57c5ff8c49dd0a2d3b2182c550e2d2385411c9100495f16e7101e85b01084846ef61c7e45bc0395805c33a225ba12f2e2d96b76b56abbf1d9e54c1b6463824523211822c4f0814f1868d9c95d4f3f0a712ac1662cfb0d5dc06b9cffdce8ef13bc89cb84eea86b79371f6e9dcccb0d061f1b54aac144c4e8732b68f19c00312cb4fbf93bfa1b8c981ae7ebc0899cd4e70c4d88f3c0db902e0273e24808d6858188ffd249d976d41d010bce86e676ff7a25721d6119c8514fcda25eb5cb657a4fc151687a192fc7e198badcc5b958242d8a0a70cae6a058a2e3be8cbeda14f40ae0b7360496c4b94a9836eb2a200cf00dcb59c5783603764e1f7cc381701521bc627c1912ee8e568189ab7c83361e8823a3f9cf49332ef2ce8344d9344c16fe242049e6919580915a0bd9c01f845692dee5dac315463995ed87c09002c9b14bb0abffbdb820317717db49abc4463374ae95dd92fcb6468baa289c6b2a37f992cb3bdaac175007ead0a2f0e9277763ec69fb4e3eb8b7a755fddc2fa1c29b50c261378d87171eb3078ec049ef1a1b08fe2ccb127c2b2200f08141337e3152b924b8c33f96bd2985d38190af9e40b3bcf4d850dcbf442f4af3d8b5cfec7282e28a439feea51bfc1fa675ac9d7cf65b01bf18d8d7c6066e2a8f95c1728499b4149fb8177501cd26936fc853a9015e6593c48f2c4d8fdcd853604749da5a5943720719d68dce8fc94e06315175d310fad4d70b792b60c1b27c27b97b933577f336b0d94e5888e32f045977d8075817c82f96ffe2a027b9952d4780b52260b818e96731553e8de681fc516173241fe336bae949bbaee980b47b2fb26c35993962ab44c0d24de784944094d2aab9c82d464c95fb27a83401ae4b3333fb5d96e127de52c73fe714ce273d0aa5b25c2fc6d16b8412ac6bbb3f8d01244fbfa730b9bf34e10c5a94ddd8090b9379f2f3442c621c654d75167cfed9e306c6922efef577068ee4d04110ed9de719a13c7caec827678e337ab9f24aabe91dff5295fead8c307787e42dbc5330972cc6bfd3643fe464bd4dd7d221466efb34d5f0ab16a015844e6d6d14b7fa7599ec4e44783bbafcd575f86b594b7d5ae25d321ff3f01a6b08b009968a060a24a19a5c4bc3cb5a77cf02b7b6f3ab2795076fd87ce7daffef88e1e59c465afdfa38f920fbf68c9d343fa7c7b9960257aca1903a72793d5cd180d9d8c7daddd8938f1f7e74071fa33ba4ec88d05204e706b5ffa78650bfe202404035ade267fe4ee003a679cddf6bde621a2ea006f5581148a1c49c369caefefde618168cc34d590d8c882a0373ca6f256d566dcf5fd9864ee5035691da782f83a6160f4a574bb14ec27f598f6676d273709cd6f414e2265cb9d842fb0bb9a4af55fb338101f2003144dfd21a97bb491350016943ac9c02fe72ca92ac7fe0edf03edd9c8300cb77192e495ecba6425b3cb9343001ce52d7b33bbdf7b051805b0354a02455347151c9b06737300c5052e45cff309d00940c850bde6995c42c0aaca19bc3ef45e04858f92cfa0402d722b921c95b33534d763d32db3a5bd4ad00aa209a6aea1bf358f464b536f0cd4dcfbc46617331d9be00908114da1e8ed2996412bc3931513666a16f6a4dcbf066692626fae8135e79f5b305b7f80e0dfa9fb1e7d8c2a21cd0b00f579aa4bd80090988de5c166093a5b7250bb39847e1eb9294f2b982561258783c189d35f5c9f2ef2dfa7ce0b10f5266ac578743aab26d1da196215069ab0b7f4b93e60e0931bd50a2fae3547912639d4ba823b9c78004c6a0e2b34efd64418e6635dc1beb32005a58f9202b3e01b8c12202806fc5f0927033eb624e0aac9ef3f5b185d35d713e0fdcac7fb7399e14611226c8ea0a70673145ce5c26820007b6e3a779cc86395f4400afb4c610fadd2e78e95999e0da5913571fc63ae32b221fa83e823153a7415cb99bb94def9a75581857792d997a78f7174690fee20cf75d62f2833f01090fc7c70c83c3502e7780d9418d388ec0a3d4205070f29e34ca945a176d355990d2ec6db3648ef7474a827d877d514faf17fb629f4f0bcfddcca29c2e69dca00aaed3ae832faec1541eb57ca6fab9fc210883214ea0c0c799df023c4a96792ee12fbae391f791b98facb26f93665704a2dc626eaa19d4a914620be0ef1286475333b6ada7e8b496e094e8a4d828b502933e57b0a8761a68cd66063e8f172ecacca0be00882a68c846306f16f14447a68cbb990694751456a1cc16e9d0588c95fe20cc2e85b8718cc4a9275f598637da02ba8302b3d6a068dab50d251430707264143f2b28bbc13f933c0a2026ac0c31ea7a3a782563a55afc02f322265edc09e41c8a5fa5294e40b220e36ffe8698ae7b6f79eb2e28573dfc24eb3b31add5c870dee6a302205115fb1777b80451787c3723af7c4b590677d9e5db983bb979aced2416e7e66f09243012d453c53a0a19556cbb5fe4267692869654fb1a7eb91a570a09808723d3477cc644fc9c3eadaa8ce8879669a2c99222152274293f153e842c7f59f10ef473ee9fc2e9116e2eaac36a2682dd2dcf249b2e34b9d863c98252e2ba7ae8d8d13d3723d732b53a93be36393a50fd48135022c4551e8de453d44bdb983af0e04aa6c1d6bc936437e269c444e1152ebbf30b5ee626519f1e3f83fadebfdbcbbe8d5897dd2416a943639906c5ebd04473ace89a145fe6fc51530f4713b1c61a47437d9b53d4bed9c08e136506f5c9f5aa5949d8f43423714d818fb665bf1e4a003bbeabfe693b6b235d87d0b4a6d0bb149b9181262c556587a64891281901ee04c4bac54f27cd0eac303637d742894e80bdafed59f692c489fc90229fd3c15eeb399e5e13b7e70fed9adbafea4f4e2da0656f72b69a36f480682853a9c64e40737038c76e6b8c2285399f6e9b906bd4a756b32d30d29f1bfbf1207dc2c3227fe14e31768e3234d780bc37887591d1b6839657a191a163b4354d513adf9ec27a9a45c181216515aa495d49bbee462800b3740321f7883f1cd14fbd0b7be60e71de34ddd3c4724165c0ebb02818b34bcc6808a341b5c023b40cfed7dd8f3fb0ed27e6ad6dd8b42924e2e815f44bbdb306a0830022ea090be4dc9957eb826b6d68f2c9efd1ba457348d722e1b3a5fdc4c97ae224d507209f575b5b5f596648edf2d75cb8d24b80497ec30b4479decd2445aabefb7654e58904069d7dd0e1f5a817c6fae1f2e6ce76529fdc9c50233225253d0d5c97080b8bdc902f6fc13138488b40c05446e1e0975e1304f3831c5cb6d8901c0b9ee93bafe4dfa26b6d8346f0d3b8bc6f0f9086ef542b32f35bfa977c1efffc70d8b697a4f58f8757ea8552c122352bb40ed7c5205b6e34309b27e05b2163c54806f2eb5999b04afedf5b52d6f52f6e0e4198a2b168f5aa68a1d3dd801f1cb67d161fe462f2df933569099b98fb84aff0cec82c7a4326ea3e473c501bfc8e7ee76e4608971552e3cb1a8b43504c2fd10439b338922c88afe2432765b78b0dde56e943719bee1e543c77c0cbf50e88871819abc7a1e476c6ce9185b5ce889f8e2bcc20fe01c536451b2e68ed93cd2c60c6ea42f11ec65674516fbb9790b2e146b867daa49e7997732767c362f0b1ce91343025ab5a729db7cf8e2ce18e0377961dbaef379df6656a920668d0c12af19e99270f2e2d42ad98f4f45a87317682b8d7bc147b6ffdb218344672aac334968c2db5d99d153caffc33b089e156be012fd5275d552c88febe71d1e2e3a98f9d792e5319250e939176ae3c0beb23451bee682af843d4f868750268f5776cb826ee3ea0d6260047ba5994ae8ae6998b3ff9e025588cf8cf679ac61222bee8dd39c905b2af394818c61f9f9fd842e568d01173c2c87e35e06c511fc516e1b64a0ad8e180c5a928fd1be44965e42b7345d53cec57b883ae53682d3b3f9a724a02da5f4f4b4700f7e57ca9fe337bf24077b684fc1aad5e493db2ef3c78bdaab1b518f795c8f856b534f2831babcaa2e41a91f65d80d694c9af1a98f385a15466d80544fcb2563f9d0761cc3d0f4762e18a7a8b197b06f8a736f7919a8b2b76e470193f20d3f8032ebe7cc2f21b7e8a0e405685b4b06d4bf8868da03f665cc59d421fb6d75f0255b3d21ec0fed643b0ea4ffc3f188454f8f30e040775d971419c368b9e2832c47a2fccaf7ac94e082d99d55df8642750959d652c9c837d14ce064fb5e59fdb74008c3f63f9296550e4f3ebc95d66165c231aa0702e179d4649d1fb1d22dd64ae11007a01e813eb813aad5d4d5110348ad59fc302c1015a28f558d260656e8ef3eb0b85e2762ef7b163d6759d8f964f2e81b134aa030678b494bb635493c3a884f550baea544a2e7b4e2045c0cf7b61b4eba3f69862a926365951aa0f43e5bb1841e96b1a997c0d332e5efef319d0cde6050ae65beb9d53dbf1539e6627f057e7eec19530735fd86211717f0a7799a142260688f17bf16474a04e3cfe79a7126dedcfd58c6d4f2785d79b39a931165f3cd44d8666ed32b14e641ec221f87836a2b5afd16b020ae79cdb78688075c6d6eafd24595d755f5adb884e2688a433c3734491f1b239168b7c8ab14c85d8d0a1fef26d9dce991099ae3a766005db546d14a68fb6cc047aa8dcc3247dd9eaa33383cc6d12f8c8dfef52629bfde708ad9c7b339298545c9e27415a966ed315a06b70747aed876df64d3bbb2bfbb942eb50819a41924e66f49525e064935ede26bb8f5a4430a01c3ffc955c781c17c995038f03879547cadab98e0d4d03d7ab5dd251b4b18eeb180598bd6bee205e1c770db4e856b43449c51e1995b43a1996522e87ffc1d0b1a49795c9eb8304dc16506c6c78c44ddcb9a8302e636914bacd0e94bfec4607bfd79fd820b2fc23b33c41e8398bcc365d1b1cc56be7ff0395f4a7275843f7090e3fc98e5c27e0cb47b6a331156d94ec48c4755b37b27ad1cc8df8708e95545a4588c4e540518943e774ebc6ea7ba1dddf69a65fdce54cc4e1343bcd1cf2c3636c82cd2f457b4dbd81feacd9c8002dc8df7c44ef7971378aa8cc33c58fa01546b2cd28c0474919f64151a364423c0e499f054d99753d020204325d7416cc1cd0d24f8548c60c6cd0465ab7585a810895666d51fbd07c599adfcc5d1ff517af47a56bd77a76e98e6d33bbe7745b1bd18f009635e62bf3c43f83f29402a0a7032b68025eb353c4930a25a87383fef6f4dcc8c0a4144d01d6b6fb11c495a1932e70b8a826ec86df1d39f1d45ee69cf1fc32e63c887504aa60bf27922632b12cca5587abb825131c15467927057080bfa3e01a7be796be3161f305f63b44f8df31e5c6a09628adef0a72070ec3e8cd287a09c8de64bd40290817fb6a1c473c7b61362bab41af3dc1cd2be8cec94694ab3e0cc67b1dff1cedd1dbac5d916bd40066bddd733025f0b1491e9db735f4d997b2804d5936874e7c5a9e73f81f3478db8c12cea73034b9e60e0e63521e55e397386339eec0a3ed23d8ec3ff8c5778ace4a3094c732774ec0049f5192497f95a6c4f10ff82fbe488995721a282931ea2b5b7310af092377fac6a6e3358a2877a08fb15a250efd3142642521e488cc5cfae2231d7b0371cc240bb28c669fa549d3ce84f1a658333e07a9109f824e40eb0409e5a1a81b2d4b0e7436d319627e94c73235e2acb90d048f86f1fa6d223d0f5e4cfbd5d45a7d6b79fd2db31fdf916803e0b3103e72d9e682a28dc9102d4daac4a86f19d472337f32e96cc55766d5f4936f11552f31081afc5e9725bfce51798ddbc098c773d8902341904f15b9c03112685a45564a437f3255b609dbdaee1589e09629146d4a7e20fbeae0704187d61a680c32f14eca256928325997708f75d5dc1394240f68734c7de5506d617222227810bae077ecadfee0dfbed7b9d85e25f093cdc56e0417de64c5c1713b78cf5d9350944d158efbcc5681a2ce0dd4fc0c385c55bf00f36bf6ae6d27c8de37904679164e40cf8bfb96e9fd2c854dcd6e0365212a6f24bc9e9efc2f243c2941282079728db9e1c607a4fc98ed8f7b81c0aadf0cb1bd35e79c8cd15c64d4336099d985b25b88af9b326a3c22a34418808350891eaa59c2061bc749860653f360b48fe060977102b590d292d1005bc28d95130e33d1f007f69df1b48b21bfa4b9e0996bfb9d3bf5612a4395dae5610e7cc0fdb2c0d5f93c1335f7322075f84d8c079fa4031b7332738ac5aa9e376722f13f57dac85a156a0f3350e23ed0b4720f0f719c652715b3a61df405a81b32a7cbd676875422b966127aa91c867f9f411d9cb988aa8a37251ff12fff16431d6bbbc4161581f2e36d9364c5c525b53ec3ae547544de55aad7f02547100b1f73a76272020771ee3b99011328f67f46db6f30b6d28b24ba26c51c680a7a5eca2d912ec1195f621dbc58ccebce661a58131a05927f2984549aab599b22a7ddb813ebbc7567cc5a8d50f2678e8a13456e5f4cf28dcb31906436ee4d7d75296fe7734c7802b9f4792ec57e58b00323c44e9cad480f8f4facb881c9d46e3c0bef1c4c4f5749e3ce9268bfc5afdd312a1f4719af126484f69831794f805767f12a858932b99e25b245ba370ff265d49eaabd11aa7370d7766078278873c655f3894475d400ad6b58644e0aedeafc7bd24715354988686b63a2c5ab19372904b13dfa89ab44ef1ac358ad14368fed5e61ccc7dd91929ed06b33c7f9bdc9018af707233b55d0748a4ee6cde41c6a075b48355fa1adb08e324b77d39cb00d0dd2fcc1129a91e91c9c3664f8b964d5653feaadc2094ff9031dd6f0f79e88c00e10835d592b071fdae43560ec069e916933c74ac3bd3130a7092b72486604e7b135bd0374100c1f8a2c7b9e7fe5018c219308094e32d0be54b6ef8d288d0c6aabed85d0ec0aa550e65dbf065ea868a39169ae666a0b76d18102d151b85387a89774705a1144f5ce872b5300a0aa254d6f0ea4edd0eac8556a48645b0bf783a9ef0183dc76f2ae957413596a7611a615935cef3be1bcca58f2b5f3e66c09f94c38b32d485c7e2d44dfba2246fe0e569797efcde3d1cf397b6490d83988132c8757e4884a07c9bac9e1f0ca68f3905036a844426cb545c67f53cdfc114fe62ac00c0b471d4d0f1a6f8e56a5d87423797833f35b0f96c61acd387cb290f7c068577cd2c00e3f8312487c90750879a9d0acdae04d09fdbdccbceaee2c8bb420419e6bb4cf13e7c47fe363ef0cac1e19d6b5a66dd566022bcdaf66c171b85d7d656ceecfe4a1e71720f5d7efb5a7f428cf5bbe2558a2651574078875fa5dabfcd24c5caf62504de10a8ce46d35ef764e2b4fdcfa25d5eab43ff0c3543a0714fd49a6454b0c44d027f7bac49a4a9ce77ba317a06b043df85d904206ed52e9cb88aa0c3f7ec8febb354d314bf518a67f0718e1e82614d4cf912faf585ac3a4c4dc10417b2b1a55fedf257c4e240626ac0ce639dfe0b5f7dfcbedbc7e3110d5840808a9f33a31e97a5e8d3161a4a3ba1f9394c8198852c355368261b64fc09d47b3e1058a8f52632b57a1175ffa675965db3709957b3b73ecf62662aa0a50ce22ba93a1bba944e36052f454a51bda11a22709ef1ee6b2e7e029d8718c8dbf809e4c2f1f0dae48cfec25558cd725f0872a301edd11890f16fb1b3f3aab2d7429952dae9a972ca2ab73dfcdd15f8a49f2b7eb4e8bf0d76fc78a418d8c5892a362ad51ea9e19d897bdf15129f7c35f5c1ea3494ba5914da986bd699929f27292276e5b5c19c0a0689c791c16617b92d10166875e3f1054c49473e45521f613f27ceb772c1f97c630ce8669f106d456d6dd0be05a74cdec7bb81ea928ab15763a56c2c73c799734aa3399acfa8add4511bea2b954c6db9539d9144b2dfa6d46e6bde4bebe711114b880491c32fceb17fabd0e1e9858b736294ec457d07266d5916365d79a1e9365b0586af5b75a832291822ebdd6f6c9f7bfd481ed7cc703542ad3c0900a5d726d66599a1b28d3eab94c0bc3ac8e9b338fa5d2cb8a81fbc6f8a14dae11bf014b6228b49f3b879ea0667671b3eceeba04a6004f223169467ac02e699252b9ef0485d643f59b0c71d4c616888b2a517283482fe32e60527c28ae1bebcbbfd1579f370d36a31f0f372908c674eeed1c4c5df3d2292bc8dea05d170d4b13c1c483810ae04ca8126c911f3063f75452583b51327325a0d1690f782d9d8675bbba2f9712ec8871659114e2722dfbb1a9214e755faeda4c1c0619013bb20b0dab231dac4a8f9332c960c09b25ab20e75488bc6cf7ebb738a2f70e9733ba5a003a19ec705fe757b0719c5cfa3a56523aff698c972dc7598ff588f9724711231881e0999f32b79159e9debe3f31cef94d4dd81bc106401cb8684cd363de344def13029d810c8abb8a46c6c255b75f3df6a053c9ce1ec6807901641fd4ddc247cd9d9bee5342c335e50f325014632bfbda77718a5e2009cecefd6d852a2c4e00cb558748188e3a9e702d916e960186be525349a634d85bafe9f952089049ea05fc317587395a81204c8c8a7a80d6fe5230544ec6e0bc18d8ecdeec327e4f9eb4054a4358fd7d12c88f845c5cf2a9fe831c7e30a4fa6d294ca9f4610a51c43d277e930c34ee66802e810c2a425cafe807c4b7c9f261ecb9a924af0c4bc8e59c040dfb771fe6de02ca1dfde84b2f937307238c0f1df5d3a9cd276a51e3f7ce5419f6285f7ae14280e8c6b523596b7cdc407c58e63ebb79209267287bd0537d342e8efae1292d51709e6c1b5f066a168c8ad958fb3e2e7e59abaaa34178f678664f156a70ea83eff33b285f5f1129e081f6b4fa0eb419631c9eb7f2beeefcea2b615f793508a53d02945874038eb04ad80a8436d7d50729adb6f978d39dc1666b4fd516fd990fabc8575fb066f47e14dc4f57a0e326556d58733687bbd992a18e07917b402402ed1106538b2536420dcb6ae3803fb18fea5afed6f4f412d64342e570180ff6c7385c78923e9bbe25eb7b2f04624c7ff3d30961712f91b20f53859bec6dc997ca834a84ab0f5887c32961d0e507270407b2be5f2df9a239a23580f2c9b0699255c7199b7bfc80d969a1040e8e008b79e85ca3613717accf27dddfd9b9c4ea456cb3e5884620f786563b4953fe002a42b90dcc9de5735d5883640e717307507183ae698151f34f5539cb2e176c65bc614ba7939128cb807150a3079730de4cf532d01d7f843ff6c10d4c9bd64ff2df2d0fba67b7cdf036956474fbfd7af99815f4776959ba93ec2754c99a66a29eced5ab86938a7ca40ea7101f5be147b474488589cd405d30006c1a160153043624809e4e7ab2d0d56d12c2adead4ba52133fcd7e46d89d264986def21ccdb5ed5b4ea018f09ef35dba398e6cc14ba2df1878f8a3706e2942d6e05a1807137af584eb3c366af0c1dec345fbbad639761753ba5acbc38d8ba7076c18028ad2155708cfa4e6f96eae6168f8aad86cec9be1796fcb8018382083bb85d0a862d5603fd6367c47fbf3ff0106e167990e9c16852f5ce74a3ebc862d41693a7a20be088a6cf4f80be5840fd3707f628e0506950192ecba8190f8abab8d403c98372261733a4d9231eae81b939d5bbd835fe385f0d0f0271135ef60dd9b5793dd8b7fd2b250bdfcc80a1ed5a1d4527b830900d934d9d46a10087ea7a51b8f1f752dde18e87391523d536b4f9d9247c635cf18ecde7c71172453eb1e5c8036983c6cddbc13df20715bd2d8036b96fc48ebd230fe811b953b4b62888e1675b42cfc8bcbe93cea16c6f8c2298be10244671f37076abeda0a5386eec5411b556a69bfe9aae8fdf54fc24b7765ac5490baf2388ccce5bc75f2823a0880a9ad60ba51424b3fa4d4c62de0961f41cb0f89e34092cd2522526f9c9913aa786c08ef2176f20f13aa7061e8d48a88cdbe8460d34ac3b5ce1eded6a19601ad8fa4520b8e4904eb924f8d2b1575d259a6e21ded5b949e4db0a537ffbc59070c421ae497653aeafb18a02af954bed73429815840327c74a7e72a4d8f2bdd7917087b43d0a9d5ccfdfc0a4ab8e120d8e0e20609dc51b233f5d6936c3115e8a2168a1d9c81987b601fd4965d965e1007d2dc6fc1373bec39f956cd291ea4c2028c6b3cb5ad8215ff7784983829e60504bdf8dd2d7e1b6e78fe435dc903b8c7e24b50482a65201ac047b28289b20671f918b98da30e5b15e1f2bf3739796260f561a3576a6dfe807c2ffa792f3328ff7644419762e824dbf3c612b317aa477add032bbce96833ec3d08c6421d172717f963af024941cc0fee08b967d72a0c41c2248c76cc6424fd5993930c81db0ca295da3e7869bcfd3a6033199f8e32229d8a47559ac93891f55e0a2748cc346e73b6e7957ced35cb1fdb499c2f0a3fde154f947aa755ec40456b53f76d67c5d340a6d4ec93e7dbb010168763e553a83bc6977532f81209df40d7ac678e1d69a881cbf41c5e97d32d28276fe8cc6be4093fcd5ead1230928448d6193c6babe39d6ca34de07b41f7c142e3e7bad17743b08b481e30ca82779cb858246a3a556f3ccab25e65a77ddb898904d6ad13f4b1d825cfecdf73a0af6fb968db9c3790b1eed98f765a894baa9d25fa911195183006fd0b532be6d712005ee9cab8e2be1ac165ad63ff52be84f825f639d5830620aa4c687f14440bcc439237f538e172c4a592323bd6af9665d87123f39f8482fafef6b2c5ad1b1f375af688a81d3b6c8b8e5eb4d3eb79d9f96c49da2424100e29255724012839397791be9ffd2c65a6a680c73c66e4195eb2bc38c991a84682b9365462febbb9b30deb2d4fac2530c9410182603d713cb350bf3924dcfb82cb854a19eac9d58c56cd83adb039cd6f926cfbefd9bd787343586a68046fef2912dd01f92094225d88c77f1bf0dfb374482e06b9b7fef1b8f0ddb750dfcb4c0d39975db0bb53697e9a838ed41283ad50236dfc905a72eb0aabeb03bfa239163e6100e619c82f4044d8bff5a32928fde584294f2d81295464adf0a14985a6234e1bbc8c3be353d161c155b5580d726fffb43efd9d825e2e3ff67256b74e163cc8a4b941741c13d7a239d78baefee6e397d69333692532233b88ab17944fe16b7b914979f38ed2101281fe276ea59252b93bea5cc504528ff304ad17f9b4018fdab7a42f8564f339a519995b8b71f961ee840e1d3f74f7b3dca2116f02d5370806788053a5ed6db838b06ab33279f5bfbeda9944ead70bb9ff9588addbb511c9a75ccef38695646df866b53717d8eb93ad81cf65fbb4698207bfe10727e5c74d0e35c3f7c9f07edc3b9f1e075f8e2d872b9c0444f7a01fbde83e18d236a4414b7ab76665abdbf31bde3d9ecf0662fb66c3383671d39d539d7af09191edd344b7eca2f8fd8cf5aaafbf54ded676c9ac5651046245a287eb649f86e36326423ccb60ff56f374453663258832a583240c7e96b65161188b7742071b28aaa15be7e7af0bb1c3be50280c8b4d44dbff0e9c89a680d3dc09ad17edf1e5e4811e5511f071b324579876ef4c7b917d52f4905b9a9f7c6360c81848bab85b8118737dc2cc9615c34a713ee0906ff5e6a0d438964d3638a7deeb9cc202772dc17efb3c1ddda47a2e74c87ec625a0da414b28a933d1ddc711e8a05d3f03638df75eec15b6e7490c2dc25d287b4d9f976d91fad9d0cbd7db5fa63b29be66a688bc92eb6ca477949bec8c6e0efd134eb990c29e8f182686425113b765483b21153cf1c603ffe626cc1652069c352f24c17dc4d5e6cc77ba22fbff569971a720cd87fcac79af9f8332abb0826436a40f353c23895511f35e3a1c0bc02b093d6f2ffac6bf619442dc3fd476fc13e83eb5a72365b95be0d31efe3d74c9ec1c6908511eb3908d05ab254052e770b63e3442f9836786f2ab2dfe18280df8b7e0e5f5cd55fb0bc293e2381f12aa4941cd10a6c069739dd8c93794f3042e2dbce46e318544964deaa57d1726dadc08b064bb338bf47cb31bab43b50fd502b7dc73ec157cf2e64416f441d59e6a0c1815ef1d40eedaded55d399fdd6f912f1256feef1674887935179cb2a91546b61a9912d04de4d918beefee09d825f40809361106886fe7e809631e76f75e64ce46722dd0b5dde7ae13fea2d28f9c4d6ae8dd23a83c8292c2a079dcfdc751f99078e9bcbb701134c42ed91d421819482ed6a13055c281556857510e37c7f163367ee4d3e5ee221ad969c18aeeeb358e93df199c3adb1d9a5ecee751785724cd278942864d526e26b1394b4b316233d183e190cc39fef1cc335e8ee1aeeed8ab8e63ad0c00c264d7f3c0d72ebef1e19113e2a716dabc6fcf235f6d32c555f5564b965e1107052b171f26eed6416b15c00a4241b1a07939e1f294256b45e67793e8afb8a194a2eeb792e9e661370a98e9f0a0aa447e820de627af5637b746550957646ac7dcd4f87f4c20b54ab46b3bda069c254ccf9690d37a5f3ccf48e7894db4ee8bd889e6a0ef565a37cb93dec002cb96d5eb5ab9ab9cf5a441dd2709d185fcf46e90ba31f9c2fce24be7303cf2eb4e71e4752473ea73a311357613dbc4f6f5564610898985bbf0f4f8adaf7616a247316635d056a8d0ad307abae55f76bef6a9b3bec0c6103b0dc8d4e908e75a324ad7c1a4644ccf17307b04aa96780bc64c57a8f1d56ed884b997f761e483b6663b1179781d36f23da743006d95a2dfd3399a9ee11705dc459fcde3d3af4167e037bcfe035fdfd0df7b62de05090d46bcf409aab910d28da12c8e07ffb34e8041be8ef1b50b757cab17d4fecccfbbad35064464884ee237b6ef7d386709a566a20f7a4d6fc31c865bcebefb9361d0706a240f2d91dc939c656a0649a99a18ae83d9d3218254360e110bd80d487b415f1b5a6bb35455bfc3da36fe2459b0198cabe21d3853986b8315944a06817db3ebb3179ce98724822e64a8a0af91e90ff4410e7946114673f5ce4fee8d6e5d6f3f395ee826d290aeccfd19da52bde2ea9c8235fb3815704757fda180499e13b5aec95b0cdf4878b8ad6f7766a4dec069e177753d9158a00030d78e99db1ba930fb9fb8057f7b369ff66f0a14bc127d5430a5c204f628e70a959209a1b54c97064e5cf06bbd25a3fd14b1139e5940b718c3007bd68110f5bd2fd08bbcd12978a5905a53425593706a5a311469b606741864c7bd627127d7afcd4a7f10c9f9ff69ccd8c772036ce0116fe4d7e09aacc259ebc65e340c700eb41cd6d3b1f14f99ed3e733fcc0b0f99d2c7a941a8f9ca1d660e6b9d3994f2b1fa8e3430dbb8452db6787e91bcde899480ec68ad9b35c6f7303744bf8ae49c5442b7d1a4f58071753481bccbdd71068dd1c0569acbf79f7e8cc0f037551b0abc0ad9af81d6a47611ba62ac2454497f1c1f6f7ca6e89b2f580a89d4b54dd6d87da8be0727a9657ee457e26df6af4c41251f2510237f7a0e0e65304a4988589f359fb05909b7ad6670149eea7e1ed6bd94d1b00e2b3d43930627145e761d491fe8d7b08b91071696a398a8339c6933e779f81c3d9f6aa35acaa53013109cacfdba6348fcd0ac762135672e79c6e72034141a280b7b8d0a467f6eb329dd632c024943d24910d3cea999e9232a3d00446dc2973e41b416badebe25a32b6b661816a39e8ff6bb66825d58deefd215ffd5215dfb3af18e7e8a13c75f9e8f0f2e0e81ae07f7b84a3afdb580163ee1a6f33f2b4bcfe838c5f389d84cbbd38c52a57ddd3f96efcb3403426c069d2216a615a42cb6b29ba62c979c29faa89897d6fc9b3274e4f716ec0a4783544fec51d19ae7bc119ddae368bf30f198f7d3d193ef144ddbf38501cff0a2ef3ed49195beeb5e71eb9a904b6622965510e7eff791a8cf08bbf0fdb9832195d558da9ae72ee8a9a6556c868fccbc29a594eb10c6b87cef7fdbced2549162add49188dae696ae3c1c09823fa5188dba85d29f2197b160efc068bd4fdfb802ca7c815cf1bd62021d08f63d7216478b1f708c9cc1a12417d23ca391c9cc8e409a03748cc8fb6d80bb8c009491cf2354a837f25628216ac7729558647ac7f0558ce2f5fc7a09e4083ca74e8bc548c168cc395f95cf3d4f15dfbbceead78d1bb9a72f4f4bb9cbdd0e6dd52aa6ea5ce1e606e2555ab4564b4482205ceccc3135e715e5da43fa019f51d661c101d0f0e0f57d2446de0a652725afcc9830e3adf9b6f9bed14ab392679f413a8333a13c4daa6aba73c1dbbd706d624c591fa280c729a120af7d54bda76e4579d2482e7c8b0f72e0b00b291a402d165436139028b09d5046377c17b88ecf44ab4aeee724ac53e5367a7ee571b4b6c425d0cf8d7bd8d13f77686a7097991a802dd896c67463d738272764f31c966177dc572c6e347f525c0fbee526dae80a8f1f274957bf310c95fccedee930fafd1a802e5574f678cff331f4a18c993ca827887e52606185080d165a66ccc2ca56155b81d9855d69437c658c842f135068a8e468c2ed664035203b7d3adbc7f8481f25d37284c29e6d8c154809d95e25d8e2c6395e9793a86fb87635d875e6a10ae04cf81951206eff47e93df84fd4edcc86bb43aa38915f7ebffc2fb869428c2215c1158b8cfd123f402c06705dd59259cde21db736f6b8d4590985eee920e42ea98cd808082c6bdac071741ac2f3210f9d07266156524bcf55eef714329c8556d601b4186aad94d35b4ae9dc057b422f908aff6df4155b001b973afe5c8122b8fca65d7c120a5cc16d514f66954f22cbb586f6c6c2c02d05aeaae4d4ffabe51e6b37d48d0fcd073eb5419771ff449b7ff033e836a2d74603e8665473182878e0d0f00a26dbde8d4d872ae24b7b25ece1e8bd11540923ae82a284619b7bee47250eb5ea0dff5f0c437f03be0bc76a2fac6e0ae1f2338300afb5185bb751e64d2ec919b08a55e4bf9962da00ae699d876f23e7d917502b9be339a60edfb9689375467057eb6ad88daca9e667cc34b52254a33e02b77eefad6563455efe919c18fd5effda60b0c04bc7fd43df38949a235b172f7e9ab85a28875dfe04d6c7bb2b705de1a44462ad8088a7936d5b299f24e1adbc0fe630a6846261cea86ebb241aa9a72a32e48e49fc10521f6932967728e28e4d85c075bbec7bc00eabefbd1a61260612541fe8c24c169a6c6ae0400f7deb52c26113978bfe37a52e5f9c2231ad9715bef0c85dc3133ee1fe83776adff40de0ea762bcace3ae9e709594a9ec6a4411ba07d056a603106de3f92373fbccfba88b5690fcfc30bcf1811a7a759c8cf37519b1e861e13b876ee0d833667c57ea3657c9cead590c3dec8d4f7f00b755bbbeba14ea7413dc9feb89c126e05a49dff1b61b60b7f2145e9d677544bc4918b032804f67762011f481fa5c335bd0cb8e4a9e69e3b2a743901d52fad1f95c9080dcc60709943f4d419ebfef3546d30f7c85bf0bcae75a208d415d6e2f2d2dc7ef528bd24a92f8ba03f5a9541a0880fcc9463e27d073fa1fa6b59da1ea859fb200c5cf91a40df8341931c5a9827dece5438549773ed9d32d5ecd9ec5398b717c198cbd0c3a3b0346eabcb048081ed991cfebed57d12988be35113b43877332d5b74fef6390747ee5d4320ca55e6320f686b45060167f99d89b30f1789a7afb30943d0c19f42ef980793fd19fbb63b0a767e1ebb8fe5d3fca99f534010691f18d935b8573703e1abbfbb1e93828b149974b2e3b33fa82fdca0bdb2b36309807cb3e24e9471f70c1085f0808a05b2e53ab9e1e595c8b894dc7b781de5bbcc92d05b193e4e9edeeb9f7f27fbb059be890c3aa276cb082af10b4f40ac3dbf195f42d736dfd4105e73b880ce6ad960f06b4431a2fda83544a870b604add541d7504b99a4ed6b5d7eeb42a415c4f452615af0df421eae896fb169820a514a2e3602d0cf06d9f6b8d574b1880456e348a48d5132f967172fb4529f459649f883e37042594edc00cf0238ba686cf5269bb9d78ff23b2ab1fb065baa00f5bbfcbceff436c257a5cd975ff944c9e9fdd18f64499430a683754e0e0ed552287805830e48e8de59b42a2c0426d591a368daad5cedabebee956525973923336563d56e0adcc9e336220668f13a8b864ff0555a9ec34de29affd7bff33cb87d4ad9a54247fa4dc40edfdb74b650cb2babbb8240dfb08917ac87bb536cc1e3990ad051a8e222f80792335e047d0bc3d35f3c39e15cc88e88f8be0272ebc15dd18ad37094a98ec130be5d240a9e12c4447df999f873928e389821c957e5c03512977b994175147c0ba27fafdcc02fb533e76732e8f86dec7f90ff1e9d35751af27ba3de16d9f75b5b6c45709b5bc787e8ff670707eeaedcb8ba28fd2fdd181f69931dfbc966cf7b286bb7c564d8dcd92670e3ae2eda4aee964dd0a25be6fe6f28b2505fcf22c9de9ab4d07eccad9576a4e631c7bf95267f50b512a7911aede758ae2afa56e0144b9413c05ce6772500dd06ba5ade410e881f160c56a5926e99974b294fef142daf219fc4cfcd631de732ad14e9ff4956274623caf4d1d093c66effb8e4e610b0fb1593e1f9430c9f7eaa2947deae190c966b5360bf7e201a2a5c96ba8d524ac03f6e0e3f4db35f6b798ea87978356cf646331b9d6df97ce94df210d41f8e889ef8c48446dc371462f0cd2b38ba2854d715b1e0322bf551fa100aa07075ced0e8e811c7a9ac102953a267b775bcb502c4dfbdd605bfa1d67be5302bf027945fb2737caeb3d4fcb976b82175c38a9bdded4547fbf2ccf422391026b930702ed2058f461ed06d6264f59ebc58ba67357da17bde39b7887da2a8cacc93b37d6b9a1f865435ee87dcfdd975fe18c70252afb053280689bd30bdd06aa36f0b8a8970ae79dd63b04ed711b6fb68d524a5948fdce2fc9259958e0d0c27c461c5f6447d602cc5402b0770907295eb5e4d8f0f69502ef1396dd12068de584bc5376b2d66bc2c37c6fb0a5d17b0f971db10a06b38a948fbb81df26fa7b36a71d62691baeae7b6b4a4187105c34fa5076d914075a38afe2b5524e7507db31d92d031f032c995a937033f18a46ad0b4b09049b927f90eb698d8084b030f64100094cb8a32c21e11da2fa6963a5b29c8c4dfbe017922e22952bf60a376bedec046170129b35c84686056483733776931ed840b28823630e65325e60a610dc93acb8ef2907496c91e84c3c19643d447fdf7c2fe27f588ba610e75fcca8ac051bd2903f48450239232e0fbd6cbee44200db1481f4a0de2a4ea4c533f85daefad80b95a1ac80c5e86cc244853d2f55d5a2806c9c62a8dd8d2fb0d62cac7a8d84e16e51eff8e6d7ef3c4cbb0a742def16c0be4d4a6bb75772ce374835b789a5cfe4e348005900a98284f2a4505627ad7e4e73a412e06c4185a49bb29242051bd3b33b502c00e9f9e9a78e8dff5f9b7b4cca3f35d8bcf0a8ba38fc8ad7b9e7928a76aba43d5e7d800ed4a8316852c227a14311c2ece1941fad3868cbe4015f9aa9b0144de4e07a8eaeb76fb88f739ba5f02212fa5020048fdd3187ba4574f67607a4d55c1bb1d75d2eb6996b2ba6378e8127d47f06fe028c2f1e7619fd9b153cc1b797a1ceb4bbee3bc6e08af2bbde4e44338af8ff5e86f3953221fc8c45cbd227a6ad402fa08179670b8550955f16de18444d8b491e8ce94283c5427441054c71a100dbfbaf9378ab48c02d0fffbefeef1967aa50828cc843f1cc0e3ccde968de2f2349d2aa43890f511f22b79f34ce6da65ba870c43a6794556de026cd5f77ba95509ee60946d900b5a3adb9f47dc3e7fe3ce111074e2d9691356e358049a861f8e373c314198e39573f66ec39521a5332b327325bdd0a43444c1ebb12b7b0f2eaf36cebce1138c852c7d582086ed34eac048d673523a03696ed11a4da82a9712a3284517833bbb5c69b3b1665a393f7435ac92007175857838273b3ab96d0746fcdbf68d2b629f1dd3e32000b0f6fea96795bab407031d72b081ad9560128ac898c1293c1d277e5307f2401e4e03ad8f26a0ec5d5b72c44a8e282ad442bbe55de460623ba27e50f31c4711b546fa1ba67a44330d7a394b9e7e2288b77046a9d153a654166260c8b2e41eddddef0f31f7ea4397eb0b090d113d66c1f286da132be1cedfe91fa2fd74dbc828b9b23df6925e2094e17fd781b66da3d0ce844b02174946fc261992dc04e585ef151ee322de0f2ec62b257db6c08232dd25576780b903e06246288cb4e5e4f7f5bdb0c72409cb7dd6a9f3a05fa695cd173620f6059c5c85060b15af1ba9ffe437c582e85558778d014615a3a1f7526bddbdaed950aef412aad90e3c6d8a45644488959ec3cf837c457799aa78352cf3e5fa0eaf0bfc0ece5b2e4b2ef0b2df7338b7cefe74c09644b528c218ee17fd57dbd3d0b1354fe0ba548a5ca071d02fa9beba5066730be78a31785afee91121b8ebd06910ff5c67e1868a28b49e9ccd362e85b58dbb6f1127e3a1936b8cb1d427ec6a812ab33b3899c938086b73d8d92232616ad5051bed5648091db9349eb1eb223b21d14018d5207cee407fed5f21f89e34d23e362b9371a7964d42b0cb4c404cbea314c6ceb153db665e3909c80f92e3a1520e7e9c50840b321a8d2a5745f4cdd4018931fdece51aab02e30fec16cf66061909dda1b67773a44f70c7e8296ee8d526e4dc57b3092e6acd1d8bd86261b46b53e4e66d914a561a556b55c9775bf2d30cf328cdd38ca41c31db0f0bf6a6d5c506ad1b9b62c4efc60c4ecb4d9737a3522fa7f68f5b7d5eaa42ca19ffd43c9616b9c82f46b60a37d3d93f81e391c773fb8b2c49340c68da8165afca1a5569b8b7db03f0d68e1819e945909deb43d85cbe3cf43728c23304230445769ba639b9680b017503b04a04998017ec4f75af1f34832bd72b077c4c5c6ef7231c566b699a1ebf9cd517766dce0543d817f369cf69ee5980d29571db446e32da96feba609c2a3cba09b0a71481e90f84ec72ff28e73a2d15e47f69128628701dd9188917b62e5f33e94e07d6cc9a9e3556f37199f2388780df75fdd8194bee1a5a6a1b46f75ede461c425ad6dc4cbeecdb6c68ba8a0f561c5d89343d52185ee73347c85980f02774ec55a46b30f7937d4fec8f8c797a6691bacedb16a281fef68365a8b839debdf7706cb4e749937751ba37048d91dad95376adf731b55ce8ffa7c455b159ebfba88ee638c15d7147a336e31370d2f632c3a0e774b0d9cf81321bc490909ec61e6042278a067a05b4e0a0d57f3070b60e4c1cfbd549bb6f060aa0925970930764ef58a459be46a50a4d0f859bf02c52cf77c59807356bcec4f2f32980baaebf438ef1594374ae86c11c6d6fe4616e31f775945d13691a675006cdd45a92465a02ff386fa83dbe582ca63b7b8766dc11be51d819d82876df72aac8a563c5050d112f581b59bb569776ac800ab243fff2e4753cea1165cca3a5a16ec610550f53ac5753a2574501555b15272c296a702762698a8734adee40a0e03472589c33335c87354a6ec8575625f9ae16de9b26453ef76c73b10356376207cbde0f7d06b6c6873ba6fc45aa2f41a78a15d0be5f44c80d9afd5cabd13b0ec6073d35e860d922441ea106122f9c13de77fce5ef3c16e1998b67aab36714713c7c5efb796dceecd092af1bf761c0f6caee40c5a67ea43fc9055b9f118da24759d0deb1a3b4e277ad3bae970bef67bf35567eea71c6d9816950e43c81128318116937f8dc9c446b831b2f68e4b4afc624e41f8328d645c189f5621bff02c0fb1183e863ce11eee09c72209896e8a355e4dc65a91aa4024fec4490a3d6509c8a59ecef8da278a384d11b90c69ef307a60511b4bb2101d015cfdacade6e159979acd90379eb2a8c8124480488c030eb17f64fd4c98fd3205e646ad2a4de81ba171ae0f6aea4d7f8f097f2efd8943e66c3d83425c30553e36e77afcd6a7200509d4627db027e269d7e9a9a1820d55ef52a5b3abd1d426405e0dfcb123a4e90e2d5840222630e8e2a413053672c58af8ef55e6935c167edd56946c010b29d4c6a16a01d3455c760b4c2f736807a66e0d98c331448233b3a77ed02207b2f662b8513875f4e321399a154f865d5da3f4ca009320079663e37b3db3b5188e9dbed31fbd47df781d5eb5d518dd6d240277065371a724360de3907e3f80abd9fe277ab2fed2ee1abc8d9ad180973a81c1d9c32946ff3c09cfa66a6631209697e0cde01d2691baf8dd5e09a37edc2d51f7da9fe7316f2bdef108ea277832aafb9905343314f87a6ae9a9df6bf6afb3f794ba326d3c3d52e04df4e2acc59e36f00af1e7fbca97286845f0bc3cd9acd53fdb282fd08428806ccb95f054af4ab51e22e336b319bd990a88771bb8dcbba02e3479cd76c1e6319e901b8781b98053b6ac362a5349d9f33eb9dc17070f657e60c253154f52cb009db29f66dc8fa999b93e3902bc07b725cd6bfd467ca451f51962ba0436bb9a80ee1f4982e9cb2ffcc08217e2e18af8d42eb3e749c733e7d3bf86ac06fedb6995fb14ecf57a8b7cfba33e5f9d2b73ec0287612b0828caecde0429cc8b9f112bc109e1567c7ce1ce36b9389946fa4cf3beb3eb0b2b4697f2d2c5541adf7f0ea24d9abbc21de8a89e13810d0286c213adcd82864ce6666e7a511b81a0856fc1f630b0c6208c1b8c4b90fe7519e384df031709fd3727b70026fd5562055e700ffd82289af892e5f4c6dc5ff6eb39ec11054242068046a832460463ea63d98bba5a3e4b776e2b41e8328d4600849c1c5eb7dc997d100e8e89ed5f039d02016a62123fe0c2dbcd3017d781d31f8c7d77fc24356e66c25102edba9c033e5a1d9e0252075db94961cbeaf672dfdd95b9f49a34d098ad873773343195e2c6baef0e3f74618c5d6024f51a3f4ef6f646aa5d293db02992d08efaedfcd65dba2bc07497a0e1d75637c1da1809a99c3f94e3ed2f6d87651cbaa0e4c0bf0537671b7c9b16ee940dd303c1300924e55cf73bd29473edc99b98db9604b1a3a9f5a7f0a0f3920e9a4774d90f885faac79978bbe069295f887cd017bf84ae01638a0da1fde758d939e6743e1dc56cea65b385166accd172c5f5f531532b01f28fca59904cf756b63bf96943fd0afccc2b4cdfb6bde44b6ee6674862b8d1133a6952813df74f2f8c764c39d433725c5cda95a520ea90da83e0c96ab0c234c16644e4e5898906b062ccc1b0fe2b5204f08eeed508795f9874c3eeba6eb28908907067c276af86a8cfee238f44b50afe5a3f4a249e5960cfd5c6faefdbb8bc13da82fb40f2b3ace86bd5fafe70ece45d50ade7e90de608cbdb8b8abcd80630aabf236133f507f9a3fe7cfa88ba3dae525f481177967b46f85866f766f3eb1bfdebf952967b08b0af82e0e93127d1576d61a46fae41e48c91a7243e705562f0665b954688c81e1bca48d8c40e8ce47070c713dcfe0f74d4fb1797d9479bcc8975adc3ca4b9fabc07ca164142188e46c0b244ee37686db3dd22144c0223444d7d2093a954e316c97dd6d21b03bd396bc1e5fdb4087543ee1d1f8d4b9fa27131b131f5606fde24502a106bbed57781ab2f81e894acf6c1ce3cc4235e81dfcdc042e201a69e329c8ba0577a1c37fa7a5c67be0db86dae16048782830ea9cabfa2a77f3dc9dcdbed36859e7a569d52d0fb6044ce320382d98895d9dfde8b15d7c91b6f16e1f66d0da019c27f72dc123bb41a17a96b4b287cacaef5210055f48cce141428cb99803a2fea7be5777071cec4a8ae996bee54dff6b1ecaabab495d3fabc2107e4ed25617977ade6197ddbe67146015047e020e7c0a29c304e88fd3af4dd18ec2914f5ad51401f99a52b1ba6ebc7f93182fb403319b4af6cf1d0e0aaa6eb87c1e6a2309291054432d3aa45971b17b282217f999eac0be2336b619e5a18e8cb9285b2550e261306334bf753ac82419d40db17cd9a03fae0e954dc3589fb384e55e6816e43ffe6a125312f8564141cdf0958e15fd74cc064626c45e415c48992163d2bb97e0005ad6e031a44df325ad915a201f8ffaa7c76364269e3937ff24c9bb5739140ef276f081ee1ef5b4bb14346b17e790892ebd6689be5fa96f8eb5006f437c7a484f4d67ba362a4a073a019738fbd88dfa5fb4e58846d9dae447f1b81eb9524681212c51515279a2e32f2747e20a6e807e8e95e82393eb450280e1d219a3ff0b540da9d245d11fe76cf2ec22979a7ded56977d768982bf65e15e325d33545de9a605b10ad807cf958c843bf9ba7819293595ea2ac052ece87c7fddcc01b1f75fbddc0d7941bf384ac74aca685b2cdc79170603dcb54d2697d5cd9683c5ac8df0b3229eef99dcb2119cff2c35d6d80951dc851517580238aff41e2e3f44c3971200a6e58964a6021bda60c9778c213c5d1c085d1b09f3aa1d52dfa68204a9cc8453b7cc672dd8247b6b71565763721840df09790b58d85402a4315f93224cf486619e559c846233fee29d599b255f7c603fa845d3162fbaae94ae0cb9882166d73328b5e8ed4b67e87df6c9b3f667aaf05ff4ff5f2ca15d5730c8047c8e8872f4adf4d7aca84c723a2b8c551100f8b5b0f8fa7e918e1aed6c43c09266330ba5c366b3c82312372639a21905fa90dded8bcc3958f8abe054fbb6d1ea1c2de5cafcb746048f3d96c18e40ab238bd4c60a6f32c2a295232ed1cb4f5d41228ebbcc45947f6ee84558aa828ebb75726512ba42f68f89075e8639ef8907525bba9dbf3a50db2425ad7c2ba2bb3cb51d7506f85911fc9f4df8729b44909a24abef0fa1a2f88f4e12db2193dc46de723eb9bc6c53e2d47236ce5abc2c3e1942570efd9f0d7b6526c7ee6e2f22404eba09eb84b749dde7a2dab04f57d7e31192c6037013515406f341fddbd3343f331e101438f2480250f815d059740c88a7362aef7543649b5395cd988d0dc06965e41d0edd9eabc5c841756f38e8939c87e53523feadeb6f3989d0f8c456ab320494f7fc286b7f853f9229847106afa47c01fef0c115c784833096e750fcce8da09fb5de415e5c01cc22e0213234a75c707f76f648861a876ca52c37c0000d1692d9b3c1efe05b68b9dc9a309a991595e25f2a98a13d505898c03675be5a850e5032424a5482331a3992aa19f919ad5a101dd9fddbff31fcb01f6d09baf16fb889e820a6d85b4d431c89b163c8b900b4c918d55d2ff40fe2d1aaafe3288486658a78253cf7642e369849bae0bdf5125f8e37b777387330948b9e37226a8b01e89e31580d831e25b4d9d0eb472a6a03935930f5804bd419a7dca5db1328357e3d88d60475867a07128af2b9c22c401a95faadd7faaf1883d915fca4dba6f054b168d2c42ae5447b6a09a699bec5f49498db12f2331ee20bacd2195320e71fc568ebe7c66f508aec8c0de708575c49266d72c5de50072a8211a462ab14dc86577c0c9ae5410f434d05d1c9cb3d81b94a240a5084eb276d24d39554934ba7686651f1387610d12ac765b5f7c81c56c97e2599670430374759d3acf8c3daf15005facae2ba1da655d87a9c4fc91ffa4ba9d3113a37c5404a8ec7e5ec8dba560d75b62f844bea1a1c62ace57d9e53c1213d7fc8df3699b3b11f9c1c384b9449d9ec80d8a4978b1c45ca992255538d3d1e4c74fcce9cfd0c29702071c447e3a0ad94b1d996238c397e609173239c14c1e0b6ec59108322c8c3e5dcad3f4c8448d1c5b304f648deb3283a357b632c3cf03187d9c26c55ea681b88f05709676951ffbb52e39f00acb53ed6b46dc192008d12a7e7c2a0804e0fd474104e6d4e5d6813ada2c7500fae9b8beda656841f0f75aba0414e222d2618bc76c7b7547aa0ba7994ec97b2ef2bea629ab6c19142c277783d8cd98449a94c398186cc053d2cef639fffb4606e9d563800ddbb194de935b7d0dc5cfbdbabde59dd0be005ccf046d2c5c8ca059dc6ebe307215387bb014752970ddd44da67797cd86ae964c01890cc1a16dbff8508de6745aad0e8c0e095ef4707b0e07e4c916387858f20ab057c46e13075f7ccb71d22bda578d08e139cfb2f873e27bdfb1867605a44e007755ade97a670a6fb19f9f90f1d062bc9c46785c50eef7d5fb574ad44f440e9bb17eca03f06dd2f889b63d4fc2eb0c764a3fb36f6da1ee45477489d46b6030f8eb0d85a5ec08cbbb100182ab35aba5435ab4b2be458ced0bdf866703429fde6599eefb02d69cfb3ee637a3bbd8191070af1d6db8eb189d2b0ce9ad21ea235d048dfb10425ac54cea2b004034ec9b5ce394d16759db24544eaff0886a7b5b1addb96de44a9518c165e1e0c13f149a6c159578d483f8eb39ac5fff245f95e24a6a0789e9cd71c056373bceff5b735a8d2b20521bd7f51cee71c7e12c50fc23398f2b794f8f392ff8555f7b08685a330e84df24560787e1a4ee8e304acae1c7ffb4eebeb4ccd9cfd80a9f42930e30e40d44a8d4fa624d47dec6bdc3a15858f41e4ae851df1c95b72f3c687849338b4f19a1770f6784ea0167501796e4aa82db2e97a24d324b4af05d2386b538542227c184bc06b11d6b73ce57f85a2ff688a82ce0b52288ce51b1454c5b56a9ce2bdc93d82e5dc54241c8b6e0942816289c663c73ed2be40d27372790f66a8886bc9c87d53c437ebf3c3b64f2e3c49944e8afc8f361e53659aa95328be20567a7104bae397419d483a8c77a2d5d2a23975e0015fd4f8873fcb0236e103b5ab3722fadd7e5e1416ef0ba82a7599ab85f16b121a4560b81e5aeb2a899e330ae3a0f04e6fad57154f2672095f8cf21c090908bb2d22699cf392cd87c31f6d84731e265fbc38ebd7b8e54f1cb514f2baf1e321f66b71d73ca81e59ba64b2ac440cc6f3eec4e719f4613c059d6f7063b2f7d5390ae4827827d11c5bf7b562c58d6d3d89272a57d574c16ce05bb4b3dfb1b434bf25f0791989f7b7f41761a26961277eb3621a21e17e1c4bec142c3eca5625cecf2f86354279f4a90ed60bedd661bb70dfeb8ae0692004e5f480dfa6f1558502251a8f7908ee88e5693f0749dea691fd345a3667ac412b41f2ff37e71cf593b6789ea021558413ab2d79e651b2b4c0133dcbac568ea8ca069e5677aec07cf056be93561fa37c8b5a8896813b861900c735e0622ccc9fa71dd0d21b6fbb52b4a8bc4ade74a034ce99b7d013b2726807f10e14141f7583987865e53e0bdb2a22dcfa7b7715ab00da1d25f13ec4f6b9dbaa3d5aafc73d8a93e92ad6d98c2bce90b93655fad2cc7ac47b7f69a9dd210aeca952b68341f9fdd69f27ea0e9648f73135af76bcc7d1f733a6d0f128de8ae8fe0e042e3f6add090ec51b86ebbc0e4d0ab7db1ee2ecca46fb5f44a3df238484f9ed8f1f69cfb8112bba820efcd5c51dfc295c372a2fe0b993fe3a312cf1a72f10cdd3f16dc1866c95ff70b095667524380f1ac0e4df7d58ed355aae6ca565409ad0f34eabd0d9b7283fea3a1b1968f218cdba1773e23f6e5a51cfef3942d8174c54018d16c65b7369b0daf21266514bf20b5e768d7cc87ab8735f3d892f6be83adb35b094efeb553b99e164a37284d78ccb9588ce935faf0622eadf7d73b054dea0d0a82a35de48bb774d375d3a8ca42010317e060df59813493b11dc6a0959b36e361c6e66ed2fd1691ee163955f57b066c7b6af3f13614f1172c8f7b2fc78f62db49a7448a7bbc3e4515515a2f6294fdcf21dec4cb5aae3a00199ead65dfed5d2665f23bcb5a2964486ee2142debc705839a8dfc0bba48f695b1f97e805fd0028c7b31aa6b50a344931ee9c1caeddd802de2cbf0186dc72c42a4eff8e4b2c1a1c2aab88dede713521710b03143a1c31f46dbd239890e83bf949871e97e688de6352240a0c636d8e1f9617ecc6a4d1a65880cedb64096a3c83ab36a152c0e2133873c5c712cc02a5c420c1257baa695aa564be1</script> <div class="hbe hbe-content"> <div class="hbe hbe-input hbe-input-default"> <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass"> <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass"> <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span> </label> </div> </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
<categories>
<category> 总结 </category>
</categories>
<tags>
<tag> 总结 </tag>
<tag> 题解 </tag>
</tags>
</entry>
<entry>
<title>总结11</title>
<link href="/2024/07/30/%E6%80%BB%E7%BB%9311/"/>
<url>/2024/07/30/%E6%80%BB%E7%BB%9311/</url>
<content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <script id="hbeData" type="hbeData" data-hmacdigest="e21129421b47b6fc620a5c62cfe5cdadee24d31e8ddcd60c68cb5dd89966a4f9">b66ce848b4d743f8d8e217056a5eb23107b3ee1df14b8210f1eca69c7b8b176679b3f914722c05fa93885b8412ebc613a31164203bfee52bbc9b70628a375f00273ae9d2ee6567fb777d4396491900beffbb829607d7781ffc222f964f37c1fadc88829358c01cd139e107d7baebdf96ba234d29e13c063b86a722937299ff5dda299b2bd329b4eabcd6585432e968a3845a1899788a95d2895a123d417c2d5996a9eaff243673781f32c02866acf33fe64865ab9e40413721acacf7b9994489bdb268337d6a72b49342626fd448da3ce88c36345639ab1ed3bd140270a5c28ed25c64adc2ceb9d8642380d9ec04e267616d7db41a2315aa3ebe2d4ac58ead7cec8375bca3daecec74c165658ac1d842681df71615053c41c4566919a48eeb7c0c8326f1882d28d57aef6cd53034699bf01c9732d4d090769e09503c5935941b000ed288b5957e6b04ef880f56491bc7847cef6cac1cea62f0619960b3ae94e7d36d3244fbdbe28b5d8726bce1b0832546b7227f3b286fd50cb8e7ac0c2341369456638bec62e630371915d88bb397a7ec0883e55a654b67175203b5fc525908348b157c1dcfc590ddec727b8a89cd5fd1a562b2e1a1c33549b3535b0b8e5d7deb90011dcb478d78279bf562681a87643bf96fc353b4bd56e0084b68b495500c280f7164e2b2273fcd1ca540faaafa4dfba8e97418a4db5bb9ce5f3d4dacb927f29d28ed411222d8b433b065a7b0134ac36779987a1eaca805e9ed46aedb8053fc9226b5139230c1916f168a86e73b0b6ae8c6eae915ffe77d9759e933e094a1d5a196867cdc8af381f1cce3b8236f886fd888e7c6314f7f3ce277eb64badaa6b38a21c573a3c9f58bbf9019986f5f227611f9ccb0e75645bac3a6579fb531eb65470b86acffea61169867d0ef0c990a5d47a391c885487fcb34f9b42da3fc1a55be34545f68130372926eb8cd5507f9a865d570720648221ef4e2a3a89c832d17eccd0172674cf48d8131b69fab63030de06e1b703623bc2b4126d72bd794bf3d1e82677b6c131b811975140afbc97bca3259f6f35b168270ed27a4b4d7ace6182c6d06afcde27ec9283eb1214939a9a61b3ebd37980cf12abb100893f4681bebdbffff1cfe707e468fb2e2b42ad4ab34a07f9e42270651c06374d686820ead4d0f1c04c39fe77a140de2a31a7ac3c6404d6de91389251287adeaf97aaaa51782052b52918be107b303359039d0af06f7b270eac5101297076fac7f1b6017c65e626a3565bacb0b2ce4331418742f1057b52104841a8bffd76cc1ada61fb95f8da537fbf38a6d3cc7518f7d908d46c5ae3de98a2c42ec46772c3fe9d248b071ccf6ca501e2dd28ef8e33ffa619d266075e11b7d1c7663da314e449a9b24de45093e279f3295321913342e7adca8216c485984c3dcc7431ba115d177349f70d48fd923a2311f92cfe4845361ff17b737bd22c4902bc151483bdff9566a632600f7d0d66d7b51987fa87c649991bcead0369212d3e43df149ed94182e73df37e81da465383c4ea4753927b9386d1ad9d5b1236dae70684147a0438eedd051173393206ef53c901b377066e457989be333c9f1aa2584d63ea93ec38ead48968b4ea50580122c7a8d0fc2688b7b8bf6a9e5a5b4162f9a8b992e9ba7d19edbc6e80dbb0ee01bd7c90c89f622b517f4643d48f0666c0922c3ba54696d5636d56c6b709830eb91d344849988d5ef0e2c665cc19f1fa9c1aa79efe4ab5c9e12f29a5707cf8ff13dcae2c81a482ee5da1f191c016f5a27cea0cfeedef8c288a0dffcd79a79d70dd9cb04f2b5efad443b480dfdf53d1b7b04ff07b3fcca526e92104147b344d24352ef315f1e051ff796dc449d45f791eeb2c1421aada997b2fe2f2bdeef3e37959b6fd0cf35d39e95489b59770496d3b6c5f814be8a61a48eacffa825a310c126eb59ab248d72fdda15964d0ae936ff9ef8935417dfa2d0f2dda3d1107cc1532e2502f77d498771e2ab2ce22b60e27b373c3c9c2735734a2d536d66e6b241e177c3746cc627859570e2fee522b83c93298850ee4bbb4bbd80fd096ee9ee97e0d1c7413f65851df48e4ef65e335156a6980f14c324d2d19724ab50ee6e44c943d570bf420a1cdf16c55f66f2156ac33c5dc6cc3aadd0835eddf8dc61e76335c3372b1ae1c90d25ae2bc5f5271e0a54b959e20fc7cf1a0ccc16d1d9d19ae5ecd5de18548053dba17a7e9a41a743778f80f631f3799c9d98c43e3951ac3cd5a711a2753b907bb083179fc81be343bd45b839fe3e849c2a257313b76bf040cddafedd992e4dd09f3a5ce9495d629ca73605ca1ec73b56b372ee6d55ae2240679918c817e11d0fced419948c8463d851b210f19f74ff8daf895e98c50977ae654aea4174c91b7657f54002d5a81b75c578af4cff0ca0d104d22dd4cb2c137e1965c2dd5b9d60f1545f9a5761cec53ec887a99f1f591e330fb648a6993bed7fe2026d836a358d4c1385089ee426843bee4266ee987184b95c4fcb3df52e7b031f3bbf19955bcd4a45a5e6917649e09aa5cb78b736bf62cecd17e3b4dc718a1426ba7f02c7a9da06fdd4892d47bf11f5c9ecfa9bc5ba4f920f9b291de56fbb4b2994398af98fd244a8a1de5366f535595cbe7dad033e3e996176ca0d55f4630344109d55a0f907f5cdc2bc1605d4d343829715230542de4e36dd08394e26cad767ee69178a91ed5c2ed864a1ba83ba487149f02c3f383407f8112e58c125989077f79be199ebf9ee869952a5ab170c73cd837f9df3883bad8c05c758bf67660c7c1c2f58053cecbfd650f04543a739c24d8467d455556654d4038911dff8737475f40495eb368421b66ca8ddb6f822383b34cd45a8a6f2c76ce663a5192371d7116f91c9454ec2a75ce868015857fba314dfe24cacbe64f13354095fc894745df5c8c4340e46132f5ee0556cc6bdf3fa76a8c00aaf2fa12bf85b373516c496115fa9f23b2e051248c5deb1436327c135362292066d4a2a611f9d6dc4321eb0a7a132fa6ba70d953e06f6b0fb4043b50023f1de5dd2d3ef57bdaa258dbd741b04f6c4b2e44fad83530e00fe5bd385d738a4de7f93702b2e9fe96171a2e61fa901c108c5fd064fd90b1bba5711d451f46c1c15eb10f645cc2273398d239153792818600e4ac7b5c02f05ca810803bd32b4a03dddcee192c097cb1f9ad92d28ca600204727069048a73c4d7526aadf27e7c7329ad9b2e3f8d7affa35bbeae7067d3c5fe00661085fec23e90a9fd1234672138f930b851e364299f124611dc26b204eeb40fafea1cfd61f25e6d10c148ec7112359d15a8dba6075ce8b6e61134cf0af79fc7ceb391d33b924c56b45b2a226274714cd2437eeef36811af49a43cb423a5e3afe860b81b3ef09fbbf87d50f643afe01da6375404b2e47faccce71239850b9501a602e02a6909cad9695694ae145bd7ad95eda67b4beb1b455e09b8735e9ed9e57bdf87b21fef4e27575ecd2d7971cebcee7ef67bd94da8f1b792cb9d3a79a7380ebc21badf20e66e72b4c8a30d69af4cb3230380245be37e4b2cbd4a954fda3c82b07d124f5bb7584e23d46b8a38ebc31ab4f538d5a0238e6ef17d5cd67c77dc5cdfcb50b47ace828a1a45b206cc5a92314cdddf97609468e85a00852f21610c79bbae6403eaced29d1bdb9f5e6389d48366795b79877e0a41a14ecce3859e0d28927f583efbffe7ca74f77f942d5a8c1277dbeb099cded8131d024d41e28552196dc08b4fe839ba66b54f5721accce2bf6f8c8244e943e0ec02cc3e96ab62ddfc2924872f486e4713a0b4cde6dccd7a6c60f797c148a5310fa4df39baf970d502a4e8aba434b4e0f679650c4898fd969261cd948044b05240605f52b39c093309525fcedb24a9c757521c5732dd22cb42040924cb6667f7dbaa442c6cc14480cec5199d1f5c474e67b805d7f3a340a89fb7c322bf70c9173a0600dac9c1e335c2615079a40bf88de4d1392dc2e2e9054e56e3bdce4d7c0e10fe76cfd07464f077760e08e32c18699d8bf095e7f396c880ce95f1d5f5682de5bb58dcfc3dc2dbed9e770ab13473d15c6eccc7c4f602a363ee70a50323c5007769c81a9f5c27ef19b1d18b7493e31eaa791a25fdde27b181b0e5fb40753cbd2f949ba2b0d10dd47397e8cf8be14cb80328f31bdcdccbaacca871b2a4f8c684233dee149ad8a030d4135b821cfbd622cae2ff72d6f257f47c3ec9b6f9369eaf42ab74ee076c62cbdc04c550e660dfd147ed8eca6caaa3f1382075a8ce533e3711d22563c0a630930b1e5c08134c215f49aff84b5840cde56c1fbccfc01e6d2f522e3f0ad3423e3f00ab26c2ddfa91b52c653bd209e477b8a8b66605fbbba1477a82ab149eb62290809e9e390414b08182363c68292fe5e4a74cb0cb10fcfb9ec071fd8ce6c69d8a2ed7272fe5f813aaabbd046ff6b9639089ce54651b78997bcb29904f460d106d28cc7403993c77298cd405457b4fbe9a1e26b369a96391955717446af6b5c42635209c1637054d1127e9654cd0bb20674cd59664f7b9449b73bcd734023d643a2a83d7e441155858157b69b197c909bfb0cf68afac8d1d8aadc39b042cb845650086bf11603783d748c4c604df373b41aebaaf1ea5e4e1a8cfe1a11269014ecaf40d8244b43c0f4fd9296a5662c623fb2038ae6f7210c6e7880df405325133dbe0c87eabcbf278d4331e4c398d1df1b753d9cac99137ca7a481f9132e9e2db57c1583e271eacfd493c8b240bca12d36f847dce69167a106e5222af2975fd85afdc0af0a51e8f3cc792b7f9fcdb8bbce6fa577f240f97efb3ca0a35eed6b1d67e511c79029b4ea952352489b57d4022d35875d2fc0205290ad82d814c8711c102442ecf73e915f70144121b4d317a1246f414e6eeb35b4f7c2b64f8297a9baef3245e07deb6525d0e71edb7d0613e887c22711d41bc5443eadc4e91bb9a60894d462d23827c0b4d308ab32e25c8d33937d53b9d0b08b2f2a9a750ff32555f9af7fd3ea546648953a50820c53b47be9e207d51c5b5c10b95f2be039e2a37be5d62fc9ac9db111089f3fccc831fab5de782845a70d5fd0b56eeb1a32f48aa358531218882bc3f0239208ff2b8b852933ea1911a09962794ff77c36837ff48fe40568b5aee6dea4f8a8980958e2e4fdaba703baf1a1f2627135e8c64b65b37186e1dd3cdf6c99ef6e13c8a03cb35eb4d0faba68dd312850beb973564f06b33aa812c975cc37bf15c516e90cb4be862ebdde2fae1b41e54a18441c9d455d4629990b608226386ab5257b64d42e99786cd054cda9b25eb045b6c97a992b15cff9813547277e16f8eb9edc2b869df5653e0ca8679a3eeeb69892e223f969da2ae99489846997efa148bb6a9a609eb2520ab00a236b4635555a0162ccc628ee1a78c6988024e9c54a60e36d86b07a699cab74cd68cd6d6f6783cd9ca6bf75212455d87e38cc28e49c48a5cc09a050ab3f19fb90d5b6fbee2ac05dfcfe9f73eaa46833e770f8b5422affc320114a6260590e9958d6975af83da4db386c9398f48585ab43c6d30220465e1b369d1e7327c38010a1bb8a08f6ee79798bd4f9eca8a2cda16fac8dea255e9ac505b1b1e2c9df619b840afd6562a6e5748a5e9b16eee09d02de1fd390730af3ff8f0626de700d9cbe8d158aa6f16511fa05836012f0197aabc7c8853b9afc301fea92c57b95398080cec2e839b8d5c81eea7aaceb146a7992431acf4644573cdbc62e0691a7bfb5ce3173f7e1a08e1ae03829902bc02e9ea9d27b80b8b3f8f43c72bb688bacafaf430babb22c177be4624a14dbada392b4deec83d6a63455645828d619fb23d85e3b10bb91bd0830635caad00bce99f54dc37c47882f684cf07ffa2d03c0d364c331df0ec7be729d0310171f9f72c8f0d37ff68688960a45bdf5ef9b8188f1a3a505be806606b8254b45c98855827872e016fb53f19483676b0faa9ab0ea7aec97c511598a6ab48ab3d6a443c4c8943cb0a48e9d31017552ffb103823db76fcaa477abd5c0ebd92d0ba7658ec087016672f6025d137ab7bac5ee98d82da292fc3441b1201cb7074c45244f13099cfc9c3d53703a4abaacab52cd9687831629e6cd5a787395e91df67e43462c80db09ff31877845be05b1215503b440cd7b40db6c30afdd110271913a7ffc8672691213748a68cfd70210d44537e39e9c94efb6c20c65c683ce449120bef87e9bec059c925aeec9074324af58f132df2d519c6ff6f3d83dfec0637ba0e6396ee8f9b1c4ac35b8ba3e0979634a867360ff6a5e7804a939a4d5ec624a20c4d7185dccc9149df7f3b9055730aff1d9677c37f07157795dd01f6f1546cba7ae16496e8db786fcb894579b2ae1232d978b29dccafcec695233357bc1d3b13b4b238a58d926cd1cdd79db130b37f28130b088509320a15a1f7d968cc650b8903a8e32beecb9eec860a8738e318445bc96c58e6c7918f8dafb182306476c64f34d90e0e553826aa642a0f031f06d4e542e3cb3287328235f6e198a2eb76108b18529eaa5ad6d4326bd9285ade5944beda41c67e5685bdf3f26be6b0030c4756be4e5167c1d43cf4725c5d00ff9910fd2c6bf65ecefe5a9af831999a3154f3662bc5ed348e911b8cd0f9d3cf1edd9d9707c71f180abb57f08474342c2cdb4c1c922ba09834956fbcb9d00b03126a5cf4c12dde38c6376a733f3eebb384b51177f0fb99a6d776180e84bb85e13f38922e4c9510faf1e9ffe48901e25c0083cd3cf01dc79dcfcf00e01ad073e579b49b5adb8a340934ce89fb8d7d3e7b8ecba4415d314b74f0839efd971851cc3f084b55e7804f0bfb57c74e857c97f5ddd1450b2b8db60ea9a7ab517ed31726985af1c8ea70efa0e48b72a54204f17dc965364604c2fcbc1dfb16b2c8045dfdfdcd697017f88515dfd099b40dbd937140ba94325b240a1f60deb5b3a1bacbe4d3b5575ffd780a03c2e66907b22738a51be801f65098842cd80da5fc7fefd0049d7a697e10b3be051a5370c9c7f2aa137ea5ceec202ae278d0e019ad4330f80ae06c836b9d1d6dd7ba49392122a46ff25781635db15cb437e0e1797462793e27d06b2cde568c6dc5b6f606559c27ac197c6508dca8a8d11ca7ec3a2c2c55b6615eaba1db89c57f2613fae6feed80852ad1435f0f861096e7e8a9ffd643ec39ceb186a2cbd84362e25e87279ce057e98c82f3a9f1feb1295820cb9fe9f4c88eee64c4150e23b499839b50415781b89252705965c740f7356b0d2eccbda5b4229086b4f5508e9c2f45b42144eb136e18fa19fbcf4ce2ef22c33eaf99a3a8bdfec2d27207d97792205ca9f927fd16bcf4c70066751173eebd3c0de0ac855c6e327a2aef84806eb390bf87a9574f3cf370e78cc606df1b49ceb4ed1c5605ebffac2223d209777723260fdd8e2f5cbf5fed226a482a76b1e3d60b60f470e9cf9ac488e4a45b68696cbfd9ca1dea354f3b6d1c98b5dba450f162fa3248e1a24619a04a29808ad4129bd839044be0f5d6f33f78808fe7e817020a7248df77bce32fa5b1d2366237ce9f13966aaef9c6806efaf711e00eeed00731a09dee7c00884b61284c5fb5e8a19d719cb846ce0f98079d0863a2fe3dcee728982d7fc2e8bd4cb3f33efe0d7a9343f8974f13484df035ff4563538642d13afb17ece97b5e25b833bdab4029a07cf8fe8575ebac4d4a765acb438f66d1c449ce5a8b620b1ee2e1f50fb615008a6fa352ea11379fab8344c060b2647d38a40b7f641bd3729d9b8eddd863bcb3e0261e440729c90eaa81079a32d0efe84b07b60d7ba55b9f443d3f9be66034c05983414ac223e644e27d73913aa7ee4f8cebf6e925d16878e6ecde2994a1459ef5c74afb4003c045bc7f680ceb2cb864b173964a6ed3beb17d3e68b8fc8435f3de75b6db67e53f9e3297e32f24285676148d158a1024fae05e34fc3f2b31c3c25b709ee82032bda8c659d05fefe91c30be1af471cc165b15118f68b7511876dda4d1bce7771cb684a330d601acfd004208a37305b81bb5e1cf9fe540fd65a8b0777ce6c9f27daf360c043e4e120709cbeb806bed0b4fe61350f4cc021b9e5e11c6ed590ca2714013cd151826698fae1907c30de9192f5f3b0c2c5c69caa2646f00397e74bd73c5d29822b576716918e004b1527eac7b5bdaadfc2583a637aaf752f333e3c4d1d007f8a89d13ce96dd3df65314f645dce2c5176595c0122f306a16b56423b1440f90ea38528453e348be220bc200deb3514fdf366b9d2bc5a9d98572846dfe635037d5167dcc8a65eb6832d0f6dac661ccc71dabca6ccb2c6a61116928e504ca4f84c461681f83d6e4fe3a412197b6b8d0a67365a5f3264a7fa3c3a292758ca6854b2ba1814921d7f82cf00fc58038e92d4a803aa7e1c0830e6e476a44f1b035bf09432494a5de743b4f3ee97d05b8932bfd2729eeb954d036f55e695092344284a3339e795d7e0d01b6293c44f3f8f94db80623ee7c324fc82f3a758c1623e1adbb5e2cfd7990aac7087d1369818e40b443a9327b7601ffc98d42a1650bbdf9c70406997fdd34747094913cb6aca1d61687575931f36b5a0e26e59c8ee5baa61794cb5e2b8d0d0d67b7507b6b11626fda3332181ce54c192b83bc3e2324aed0feee837743cb16c3fcc7b08991186f63ebec774c90251975891e33a75566eed39e95fde2195e85705241423d23635f3a316f5bbeeb9f5fcda386b0513d084440c004875e4f513220bc417f1e38ce20c83dd853bc71285425f43d0bacf46f6ad07fa566fc27ccd9293644d9d3240f1ea48a6fe55cec57e02045b8392f37b608be29204b4a6af6868d2c176e0795419b386590c5794910f42c0945c71ac2ba59777bce8a76132458756ba35607e70a8d273aef73e7543190cb7127d7f7978857c1d3c1da623ecaab6790c4b4c9ebdd374a9a6ae055ac7e28d7a8d9cd82727b0c8a122fac11753fd970d9e8ccc1a1b0a0b4c1044dccb53018ba09b972a00e8aa86d5aa3e37a1b2e24a020e3c5a768dfa05e0ec2076c6b623565030b1fbf0d01a49a9ac4dde50d6390fb3a7485e351e8fe0aa1321ce9f90a521e0f2b43b285ce083a00b1f471c88c7bb177ce26021c884f08feb27d3e9bac9575fb6ab725d9ff7d2ccf525ea405575631b9dbb4293c27a71471de1d3daaa24cb66e34ee28be5a1ce98dd4584af6eac8afe797ea9e6a705b585f9c39bc2ac27b5a9cb8cf19ee064b31aeeb34be89df1f2dd39659b85b1038fbdb060aa81ef00b16c51e41acbef766d35fbcbafbd02a660f5b013e3350ef70e802fee25c7dedd72bb569587425e1a842354d0a9c8348115bfe8e6cf19810582bfe8813bea1e47e37a2a25bfec094e573a387231e659084e017495c1bb80c50a402cfc82476e4878a82ae0438ea3e40175b0cce761272951822ec5ad287a435a069aa8699bf2d8e45ad3883566abe9eb0a1dd9f73d7f9eb1a7debcc8e749c688441fe3d95699882ff87f36ac1748ae7f13357f05125f06d784b90b35b1d2e132700d7274b13673a3f1f69f822ba390186bf2dea8c5d51fcfbe38bd221d895d331e513562a35d4476140e892da7b7ec7c5e94cb4bf0e7cc1d67ec53fdb5403d70f0d414b35ccf7ee7b2b1e435931e3ba864610655c873be1bcba8d8ec535c83582d9ebb3092356b6804fae419c4010569b3b981cacb708bcdf6cb7904e0559575720a19d99d54776e181ab9b1f58cd89da6e45c490e4c8fde6d7e5d47a8e5df489e35e734c129652bb74b3f48187b461630d5d6ea9ad009549f5360d89f6481bd7b13575e0c2f4fa38418195a0ff4d739e05bff75759d758e9b4d0fc9d6e61248419b4d5e3675c51e1dd3ccb82e5f188f4d4875e80e8f7c5dc3af00560cfea045c55bcbeac8563a1a7fd2d0a536a1a7880c758bd16eb1edbea38d9c51eb7a22f12ef4cf7a942a4d049bf8c58c32cb640054debea40ed2e099b61cffb65b8ec610c1c57b5c65a2fb3c027430a84f74d30716596b576941875669ec8ea8e66b7189649d66c643ccda21144a2c177b570db701507341829850b00f324ccc7695204480f8bfcf57e74460c1c94c3ce7964800b5dfaf094592afbe762d8652da1cacc4597822c95e98496f2fcc32f60b88a3a04392fcd788b3922768c16404d80268ecdabc6ff31daad737be1b2746016c4784787b4cdbee83c75fb04f4dcdf12ce8302aa218305c892454c3fa29c6bc77b1effdea1ad71a263d0596b6df0ec3bcb3cf8740ec2bc62f4fc6ec847d9644ca5f87be792c2d8e171711a0cd6e19a3aa6a559abc34444164718f435b01763ed31b3e4094bfbc4a18fe677b1f48a9805a2a220c1bdf9b08d02bd6ac6d677b9b8c7089de2ee658f1f4a7dab49659155edcbe826c2501356d127adfee4ffb9a1cedb285223e78c409449f632631bafaf04073f7cf25c5845a5a02af6aacec5457b59984326cb6715e077c0dc20568c57746fadc50b5a328bd35b081c2c330cd09ec183c6a2c7bbf3b5ebf7c4a3468d99a5306b0a57260b5bf5e3a9f6af695fe5ef572cd932422aef42d2e5b5a1054ec14fec8e192aa40501e46c4363cbc44370d829d99883313807d47a7a8b0501b829b676155c4c23c541e900e308e5f044b9650d90d2607cbe6abc84b2c19ff31b5e2b584598579b6df5c2f5b9debf6951468479b49e13bff787d187df383adf57cdb58d59ee16b253345fc6814f3adf90a386a7303484c41206be85770ce205e33a9a4ce96160a5b415e0e89f9d5e1c00d28837e8db0d8f7a7394a359741218f369a7dd4293c6039ef22c5c6531a18ab4181805888cc34a52f7cfbc4ce9f3d35664d9dd90b80edc60b6ac1d43c7ca91a66ea7d9cfcee51318530c6d044e4c51da1514df73e1d50ca0aca7df1781cc64fb47fb5f68963afa68f3d078cea179a563a51a8514d71ac3dc615972e3a7b7a97e0d904f3c2649117aeb61e57414e9de4c10bb2613a34e3141e6710e79679f1b4b04067f821ee60e6aafce81db97af0800907b0793110e06198d8768bdd371ce70fad3d7a88946bc68128d07a7c3c4920fa5980e558f275d83aa796fad9bbc2d2df08dba329e88831ad7d7a0f440920d3879412a1126b04b067934fe4a45408705d40ab252228269fe1f7e37b87fe76147e6ee4476a879cbabc495538f49d1c1826a1c65256e21f75ca8a47d2c5dd77c0900552daec4ec9d95a89fc483d2ef4845e4f8816af7c24c886c9f7827d98963e221bf86fba412c1ae758576132d4e67351ffdcd63804ca1280d620898ef689f13a23819b61f10b5c4f96c06c0b7deeda3a5909db36ac88304a7f2c88c6fa5d10eafa6b02c39a003bf71e8a28b1fc768900469e6b51e18b66e63144fc2891a610d423cb25ccfa6ab9d9160852cfdf43ac06c010a8779db0f9c4b50cf10db263ecb7cf3f375840501139352d35edcf26f45fe5e113e41e4f48c5a37a3ff20b97268918c561c23732b5aae144b615e7ee3b0d86979f594fa353407096ccb7f77ff11c4af5e4007adad18d72286fe61aa4263a946b6089aef21bc9d0eca1ab8a85465d5b37f203de37c204d9e1139701eaade657cdaaedd7c0511ec04f45e618c1aaa0954ceb55c786f4a8804c63ace5ca57ae323d6b07d3f969c74bc6d19d71bcdafd1c589118a8ce3710f9a812f5245e19a994c1641b961e163d005aa8c47da1af5960591a9ccf35dcc4e40237311a197767751f83e37020c5264e90e851ee22e886fd7ac9362f4cd9f7982ca8c901df2fa1a72cf188a8850869731fe792e1deba5b2ff206c871e14b76ed0f2c7a2fd7c0ba3dc585cfd6b894d340f56fa05bf6ad447979279bb3a7b0f5f9db7bc21ff4fa83e9a9b488c4215a0f023db9cd41572d696070493bb9bb50a177c59cf2d01713cac3ca3a0f2ca9a05ea7da40196e308b96b5ebc35b556c2fd24ebe042576d20794bbe30893509523325f9ce312c905f1000cd3c670473479c81f4e216b3f386754b0cacf55d7c9ef61f4578f1fc0322406101b9313c3da138121fed1b63441c30f24e2fd05c3d335633ce61f1835ddcb3b7104c10c9eaca20dabe8af5d4b09ea99132ab995ad06e629c227adff2af807e54c0bc4e5910618ea88ae91bd875d490d40a07de3ab0377cafb16cc9a555f091c783de3331eb8370b7e3b7a7960542977530013656db2b20c10b2c73584d1143cea053a00d445de1ccfde25e56bce295612b3187737fd30bec5a21a9937963abe85faaaf3218e815f5c071522896b19d833d11bcefd530a059cb641d8579f0effd5f67f9059647ecef8f4c273105a8d1c5bfdadc1861546d4b13ed8f2568c44601d9528e8596dcc897d29f20d7b726101abb07c8f22598fd74a4d28862b76c6a0c238a51f1f9f2b2aef59cd0917f980517c20438547cdf34aae69a0a4bdf6df14699d3398c0bb1a20d3c90d0e914fcd33f2fbc50ecdfed1c81f6615cc5986830751072f18f9bc6efc06f6711e08cbedd15719bead8bc5b78637067ee80720943938895aeecb85114c78e1f0f5cf709718b846c1613bf243fb44af7b8a6b0546dfb2064a26fe6ef87ff67b3dca492372ddb7bec9cbfffced8458d2f93650c8d8768b47787fa169eedac2791712dedaad3637c6a06d856681bea2404a333fe3168f32316dfaf9acfee604c5be83c1ed72bc8d7e05861f1dcd26d141bf5f91d4e5c0bd5c01d61772338d351e1e151e0ad94151f0d65910782dac4cd21474d0ce71c16c150e8059cf594d25e3c7ab33536803c960c3061f976b9a8867df7ce6d2be655fa73db16bacf90b0d9d4933c8de4b96b9d7b185bfac113904c34ebfcac92c01f3b2cd1f60df00f5ee0c74ced579f31d4498b21e15dfc026d2c0651b7ced56020ff8c2619a028ebd4db9ab229ec7b6d6d2f2b6b6f7e25c820795c48602d631ac7ff520e76281a13ae5bb81339851550008e1707fc1ed2710577b0e7559be1a31ccd800fc3468fa4a8ed2caba0eee45f2c5e7b37f93a22308ec589a325a0de9811619a6181679a02cc47dbc30990073177f109f58d2e926d805d4adada3993abaff7cdfb2386f697594d9ad20e6cde883791e3b6f60533d194eef720a05b18d30b51cbbaf973f476463c7857a339c29327a9d1a0687ebf9a5572e99b98fed5144d33df7fc14cd5c436c77dfe4236c98d8fa108209c050701bcd0029dee6473b18808fbcfa0c6849f9b61db6f1864cb9851f1bfdf46aee96fbaa6cd2ed7f1d7bc1e921b42b8dbe73d84b16b84d21f6902bf16e87483375e41e367e36e21519e8a47ee9ee8cce5c1c8620fba7bf573abc0f0e719c0ee42d3e370322e973d1976160d2dfaac31ed416aa1ee1c5c27b9eb0ce396507468b7fca56e87dc313630a16cb6bd4d5e5451922b7f6ac9b7d0e1f18e6332feadc5d96263c050ca45269c6f7a8c5b399b2147cbf0d1f1be693553bdae8249faa5a1dd7b51b4421019f536ff7c7fe84d148b6caee4eb7ad9ddc3d831fff296e556781b6dd30a6f7f5a0a0f62d00146a91117ec840067febc5a6e976598cfb2313f238e171760dfeffa9d0df17f5fc0f666e786d5bc28075cd87f505d9d09b7884a0d3ce09040226cc63c195d3d3595ed0e024269d3554d5afab3b24678d78af2838208f1ca15e4ccf7226e11d3e60d6d3fc635cab2a34699b1247c9d6cfcf7b9095968c508e606ea6b6e50aa77f40570b7a18b7a163940d1f2361dc9eab75ce6570c24380c97265bbd6cee228f141f6fcb4d0238a36fa470ad06e8f2623224a727077cc4f2a672ac6a6e5fab3f106e55c7e5298636171098602f812116537e1b6138cb78ad1264740e28acdc41f0b78d6d29e4be6b910fa5f4dac2c8609ce4363392648ac811a6d7e4609a61159b3916d102245972990dace7cb5b4ba77fde5d91ddf271b7d883ea69878fe094c08086d075fa4c3171396c858d40e3571f549c0ca85c49ebaf48f273341937bd6808d783ee7f145c11d7bf6689457854a09f81bf25244fdfb9861cc1233e1d9695fcbd586ccf054297b379eee4ae3745529739d0ef0e63fad15c04a5216f5e2a28985dbe3073fb5ce18a0630fa56ea0e1fefb4521237b5f6727d6a7276ce58c8d98bc2df88c3b65f5ada844b8d2a473579cb357bbc60e15fd1ed837f913f26eea778ccea5f32963c3db16a3a26370fe9428cd9504d48df95c2fe94a7e87ba4bd089e6eec7cf2e328d9bb94ddeae32ca7097fad2d875641ec6ca827439890e2d38a662d799dbb649b0d41bc9f0270f86763f22ae631b09117f4bfcae24e6416b0c2e37f9208b4eb8989a0b4377a546bf07dab8d07a3cd7ddcc508118a3de97b263e25b98b7cfe7c005e87ae32483fcccf89f4c5d0b7c6a587eb0b9046da5001cf02fef8201b12a6d4e6805a5e419d1338f368f9ee3a2fbda8f535363d2da6ec42c2b17f0c292f07063e8de67a8ac1cf15af6a9bdf32d9dcf43298f8700a656b45870953a74bbfb307b094c90c94adf0f6fba0feb7fe767fe66d4b63827025855d5e8ef27b90a4a0e0fab404ff3366f779850bf603f52f8b499b7481ebc1f356a027992145de98d395237afba4bd1037af6ee66c10c533e8928579d656e202ee613f770e8235266c61846049e8db75d40a97da7ad4142c3563f554be2f228415c18da64e05af8b98667641c91a82b451c4a51b99bc8586e2cf21eee6d9441257368ee0329ae151058aff7679bc0bb1c77ef53f37b28c8e53b51189e74f4ce531c746dd1671699d855558cb218e4f7ed204d7706ad5b242d574e855a94ed980d730475aecb34f5809a5feb5500dac35e2eccb1a386a987242683b16919bc731d073b9d9e563fc1716fc99d7320f128fcf125327339663d68fd0405d079acf30babd83ec67ee779ae605d0546ce869dc4df426492cbd59ebf86a99bba59525ed76e84e8eece3e48fb687a3fded00759a1830582222b4206ab79d7879c0096d40d1b41774b5bd18b059ab92dec953e8516b6ba10a83e3283554632995c488ed2bf7ca33331805331ef62689796d88d18833129b928e3579e0f83ff4ae43fda7d3da572300d759c35b8b5ca7d65cb6e6359fc945c810a66acc2fd9df33a2c8c4421705b3ec43717fabcabf328cabcacf6b5c9d38e6b6406288f7588cb86e17cca2d8d150885c4e6a7834abdc795371dad3b309eea84a27d4411a4284a68597b5bf7acb756700169e99fbf9ac96625f2963b329d737ce62302ec703efcb6df8df7be9a3a6c09c61cc77facbb9bb4177119da21f4743f67b43cc6af23641956b051baf920e4378f6619530f3de824cd2a9e02aba3375a6e2d3260572be589f376c721d8137b6cca4cf5bf780ef21a9881e01ceac98ea72d4f10179a98ce9e08b1d9a35fcc32da77d88c348692a91eceacd88f76c6a58302f647b6b1aa407d77a3b0bc0fe5e0d82f1d0925a2457a10e4978b86d77d7716014dbc3098bce5cf22c3da70b96f45ae84931630dc55fdf496049c2810495255ffd2e354fcd1c6a1db0a47932c67b0aec5804e43f07baa7158a8786895534cf39d79beed403f81c3bd69bd880e18e6dfdf2c8cf6ac60dbe13dd57e315a6f6ba2f7cde635786e18c91375e5effa479d61b3de33e7a610868147f7bc4b22eb179571187d8f2e623223cd8cdd020fd4a4eb704e6ab29949e1fdc772e67af1787627dd81ca4dc110ffcf8aba375cc4c1750045be297c504908bf8b55ff256d5097d93a267bcbd1bcf9a60fb3dec8b3edf6a9c5faadd3c03e607de12aa9717c5cf4d48fb003076b53e0cdf8d591739f25f02c7df90195566817c69648a43fb153577fa5321c404b82beca1b5486d14eabc07d7105d2d7c946f5ab1425b6c6f4ef792497371a37bb8108dc38ef2243c2f15c8260d73aa7c82344bd2ab3131a7f5cf69f10bd5bf78ebeb2010c485440554316f128c962556bf12fe9cd21bea433a63732ac28f55e884f896de7438bc14d53b62bb8602868545cc135c858ba9d000404a934d6c73f4b4610d023648f347eb6c48cab5848aaae134e3cca68dc8f685d8e8c14ccfa105771558041106cb30c8c00b4217179bff9bac6b6053a137e11ced516bbf3fb2071ccdda14f492105c7c9ff8da8d3a7dfdee41891a226744bcf9fd2bca681b98ae8e70e57fd44b8dd4b38fa0c657a00c78c41d931a86c72a58467ec9c52da7f5b5ec33b27b7fc5d2b4f3db1cd97ee2aaf0dacbdbe4ae3dc484c09b2fc9be32e9a5b646042a6ab612b1df69c4bb1c2ccf28f36fe198fa904b96674a21e2cdd9793a388d9262e06614117ee9f60676b645236d8b6561565504ab2525b923cefd960e1b32dc7bd21cc32e70eeb955626419d0febb7c780dea9e5d359768a98c389fc9db043f79f37b3f9448110e9654973286bd66b499ef56772ac848bf9f60fa80c08ae8e5965373fc6ad80ab349fd522c29c9730d4510acd1c3b5c9f6e2ddb3af43d903ab0f45f3ff715f903cc4494d602f8986ca0d1359d3bb26b108891a4ec55ea86d476473c2b9a8398bec15cfd9769d73132c4e24c26d039b5c51ecb99cee3d7d57cab41a9ee610dd78b1538b50d7104869838cdf5c59365fb32e21fb167d939490fdaceedfd4e9f97a001212877acacf37dcfe4f894ea1c343c4755ac1624afacd4830a3b0e44ef3ec31bd0c6bc41d74abb03bcb0938ff84c26b0df104b3501328d8ff18b4efcfa990abda9374fe94d39011684906d5e3ba331cacab56ac58576dc4d8304c818a7110aa76301c61b5261c36881f7edd94c0cdedd4ec11f68b81a52885ae386fbfe0acccb45a13f9448503989a6a25c5e55df85638a4a28bb09e7d390b6a9ff0a3a7c33a9a57735da87a6fbd5397ccb0265a146a47cd4818b8eb31e18d2ffe3fcb3eb056603df71307e2f027a86525dc5e8be3ddec5d504bf0aab5f9f76a26f0c3504632d9c3c8f17b010315b092ecba48936651a75d54eb1b8d7d88f0f0da7c83438ea79cf5531b944cbaca2c49ba9e9e2ed3d40845e67b4d1030e2fa180f96734177fb3c85c56fb566d0d5943872051ff21edfa9deeb35aacb04cca17746f4e91bb87b33340268b4a89e25400248098af6ac3a41254e3b15df4823b5e8e9acbbe7ce3664610954126beda7f9b35fb8fd7395f1dfcb69f9221b9933bf97124941f9775c85972f9d8ed402e796194a75dd9a3174553d043bfb6c0f41c55b78720e9cf3bf145b6f47a4106418792f76cb5e98dce4d08bcf8dd1a5b7fd8a5ebee34e7b878a313ea760f0964a0fdcdc65f89b963ffd84f809627b88c4caefa72dea5f7bdfc34bb63edd4511b0a388b2ca8b74d95066c11b45870b2db9af7132c7d045a2732bc1fb2e9433855f39fadb7410eb3b92240f8171998e6b1baa97f0fde9313a79b1c500dbc3cb3757dffc8b054f714d697f428a67511fefd7abe930b6091b20878febdcab6d29cefae4f0bf9a8d8c69276e081454f7e8a44554979b95a4a7a80c4cbca8f638a3b2f3bf600078e97880d00ce5551e7ef5fb0e599099a6028c80d8047e06eac502a2bc456e306bd17cc619de1d784d237d0167db3e590f22a68f31ba1cebcaaef1b51e07bfbe89d63050ce88a533d5ab2d2c1e94eb80b17d8f7cf06460be95b12ca8bec5904dfe9a978e18bf35458f3329fe058739ed9da886ecf8d74783fddf5cbe36012d3532510f1bc48dcd9d5fd519f18041c54340d1b8b11c04659a6573d2b2f3a5d7098248ee017c103b445b3a884aac8217d93d429ba2a4d2bac5ef9bc4c3a73492163a13491e161c0193a67a0386e76ff3f149a921bbd7c40827710d755544b081ab891c81fcd686d0b361787b7dd08372e8c4a7e8a6483a53e32fa06475cbd07c5bf716eae9e5aa5aaed57ed5459bb7e3a24d2d2f8ed2e0f7506f56e8c8d3c7af792c8766fa1cdc3722d2b5a882701f0b1e626aed788eda88d61956b0856f3a32cd840a8c0093aaaa5eaf19f052f953b311bbbafc1e3ac6e46690f5918489b399d23fff449e55661e975db6822db3ab42afe53cbae041d4ef5e1b482448359fe731513eb713da8455bd940e9dcfbb375d96afd25bcf2f8ad7b3b557fc1e45c65f4def507aeb8f3fdd719f8cbf1fcf18818b72caf1e8eb128bcb8aee5e5c02bdd57c03e05ec10b7a0e7c0406ff1197e9e56e2d77e4895bfb7339cc490b6a8075632dd3de5f43e13bf7fd3485b6d41d1e89341a1f3ff302d14b00fc78679ed08111dd323f42add24575d2404047b168de9edf5a75cfc9fa69c710c8580c3f2e42b4b6d177949d0c631108fde9edb90774571e336648172b92940e1bdf6d2d5699bb20c098a1b6683570fbde87bcb2fb8c79671340a9401b9ce13bd3b964c20f8559b80f7cfe7aeaaa9b4a541113e4e6d025e422be1896db1cbc3a3c2c630c23a98614c33428252f00ee5df8cbb19ab98666d5ae0fee86527af13f82a41c21ebee019f6b4800390958ed861d43e34f021aa4ae2c813125c1e6be1de849bb7d8322b113e2ae981869372cb3ace281c80d4f0a9ff53695777dbc3e3143f186e0c97b5becf1be6ea500ff4508defbd569986f399a8786b518cbf651cd3805d74a428a6e8869be20228ce3db4b9236c069a24e97f8a4ffec19c57690f8f2955569ab1406e7db7fdd709c0557352facf2f5e2427040547448d22036af468897289d1a23bd1a8d62ca56d3d603f77ab816a0a21e56d49c18ed12b9001204b094905993268f3d248cb8012768f859d25a5f0abbb1734561c0f8c5d9dab921d7a6e9d18570d3e52d53094b26a616573ae9f6732f4b670cc9bc58963d071efe86daf42eac94dd1cb876eba7aa92fccd5783589c6e769a55c582eb77ac9c52dd9c3b162b01728bca79e7064f4abb21d8e4030197b076b93dc7a11ec175558d976bfedf1ea19fafd008e2da1a8b4d4565a0a01d196c2ae02e7f53979a7ac96b893abc8ff79fb241bb4bfb10be5cd2552ad8676a92d9669028fcf62c17fb127c9e54a20f4883f7dd21be48a11beaead9ab5c7d8a76d4762080aab474397c8999ce51c76a3a005ab096c7b018914d5e3aef476844682cf5018c1630ed858fa4547517f432d249e52c7dd3ad76b768064227b968d790098f408a832283e0ccfaae41727e5d3668c3264c99c1b90a5f620ebade8a23e658220575fe8a03588e6a57ad4d058904053f767133935173a445d6ba074c9969c3d760734abcb5c3a7c71d5f78d94bccdbbe3f2e2f174639a83959f62e1f171bd84d0085865b2c94c77e73825ba8ee371770fc42f896a59896fd5b546eb8c210ac88a9f12a14c98c18d70623bc234790d28860271dab41dd8727a4a2356ca84ddadfad818dc0f9ca00cebaea0cdde49e6734ddf5bf9d79943dbe9dd2c760851464941831ad3854e1762a85197f1310d98517a26387dd93d7dd2a8edd330f711bc3cccb29122b626d813bdf53742812263c0d233eca81fc3b47ff090cf40138bccc4d4f204f2795eec2f52c1675b607dda104025365c9323a18c40ea4b9c251d88f8ccab51c5ffcda5959931f8df5593f09f328b43618c841a08eec065da844f62ce8a346222932f35ba14746846349d5d17c133872ec32df38588d63bf4735f676577f8d3632e7a636bb8017e3d0ccf2a2a3140d1896b89b4c943e3f1d822ce9913ddca23c46b5a5d529200b1a6408a225bdec6054bab73af9c60ac536f2e7729bed5a3743d3a89902fb856cabbb1dc0ff27c82af31dae9b456fcf57219c15f75ffb0f1aa23744a30b7236fc267f4b58de0b867423aa55c6e1e2a3bbe8d7aa7d30618d0c05192d8eda46782bde83f6b4392bb8c1ad71c844d88c248c3bcbda48e5d56aa2f6cc055a031b9490c86208a2e2ccd5b5c4446b25bc0059a9994973beadfc0ec89beb04b520deb54dce12909fa3826abe5cf7796631cae6a839abd75a698b46d3df1ef00c74b3b43b99dab5cddc570cd81b454f6ab26ab5659ff8bfb214aece81f7a81a3c944e649b2781c9fd6ecbbf9c7e0c08aea118cdef48baab1a4b7f2802ea79778f9733b9ee6406826ef8fb1825dc5e42c09e4957d628e4be77721886e0779a1a074bc52004a0f187b8f17c238700e91b369c7a552b8ea0be42d82994a6b2fc28ceeedc8cc2abe2b268c0753c327cb9853df5998ed105a4a106f7442dbc6d0103fefc2b5345dcf344e0c713abcd9f38a5a6aeaf96cd54ce2c4bf93c48642b5eb28d267a9784a15394511de3b8e708d033cfe5f94e72e18c9281f9d7ef985d535d71b99bc391dfc98fea439f8195f19c739599b803cdbbaa02c7223773ffaf9e6ed5f0af644f1afaa221bcf07f143da161297cb8fb0262f97d3124b28b243d2e0e91b8e3d24678bfe072ac66811d2eefd744d7aaed2702ae8f684822e513bbb0b9776c2ffd322cc96885119fe1786878697004ef1e15f6c38c7790efcd9ae452895498b3d207259b0a129097e268b17351ffcd6cfd30be91cc2f0ce651c4931f7ec351a2d3b6cb64af78cbd2bc7026ec91af3f2c3e0dbfe4c2138207d0be46d631d64b42d9d47e0ff850b9712dca323ded646b8b969c282c215184b19b52f1c652d036e933413cb48ea84325bba80516cc1d97d03fe79ec52f33aeff142c2ef9f7f5445d76917fbdebb938142c2de29b9209ab65c7027a8e5c52d107016892c3a264e33705174486cde6cb4243cdb4c42c5be8fb0efb1fc4410be17f1f90ef03db9cb864ad11b284a22c7e174bfeea466add62d7a5132f37a31233a05c26a77177311ee83496921190e4aa3771eca55ee2c74a3679cebbe34c7cc1af5163c530ccd57dc47a3cbb735e2b21cdbfcf82a068194b76202db2c21d1b4d3ce3ae036c49fe3ecc95cb73175d1e79af14f1d541ff9fd12e91cf7c1c50081a38ccccb698d7d7c1d4e0d65028cc75ca685a94d69ca3502f57d35bad94d37fcf9eed90e95fea5aac1241add9fb0bb0a8d8c4cafe40c9527845e4c595a3e61e1c19ab3a32dd78cae3feb98cb4354dfe3cfa133edfd7b097844ad4fc50d99cf3740862060a607a47417557d57cff73f2c2e17a62a13f0518baa461919979e6e407bcd6a81b2ded745fd7d56a24b355fed64eab8763b893a31b6d830d0c7ea7b26282ab14396dbfbb3ebe62c939b5abb07b996479560738decf1a848066eaa4db17defd6ba60d25a0ccdec6b7931566287ad4ef65e6bf308b3c74d95edc643d30865d549ed7f1c60af238283b13c6e8cc89d02ab1dd7f62e5cdbe408dec53b541edfb6941e400cbc0a68d75229154082da7aa0aa52c5d37be031d1852756363dac347176321ecf57684da545e1b07053c143cedef3dc4064b0b2d740bbef16e2077cb8fe25af96030467ef2b5afbc1dfef1ecdb4a44423e604d764865d3433e0a402c6c7af09ec49e9ad3e11aeec28a0de21d91462596475cae5e6bbc9f30f2fada1d9d6a507df2dc71ca262a24bdf66c73e7b8a46fc8dda24a0e2569e45c03c414ac84570247c6547719e12fccc9c6303869f1001221e9f49e065d7e20dda976bf706d520dfc9ebcba526c5d01dc219bd7900d659875545e5a28af32204964cbd4f95c70d98f5ca2763bf1e72dcc33950da40b38a7794295c8cc20d4ad58dacaf36a9126f909f1655128d37f58f635d1bc881bd7fc14a57b29b730c0c45d82ef2bce1458291926335e89504f03debb95e6492814becea9cad2fd094165aad33616ce555ba92f993f904ba28096905a7943f7effa6571e4bfd6907a90ce86c8365ed04c690112a223bee24c82b051baa4fa960768be6a7de4febe20d697d6b4b8c0fe658c34ee9662af2fc345c80906ba79ced7558b5c2c1acfd6ba467934164cb2cf53f0b81c4bce3699ca064a3cf4c77ca1cd21687f755473b7c89ece832dc6582c7364753911cc781591e900541b2e2855c847d5307ee782d93435db33a278f3197c078e513d1a2cd017826ec19855ab53a2a7676526f573c2fc3d5439acd821c2abb3158d2ec84f993f697a7c7e70a4952c07d987ec157f261f2f66034cc9cfdbbb1505ad69e2735e628a3ed8a55d648f28cd78b99e790c6105c9b1c04f68d7fca1ae3038c5d0ee112bb1321999a25ab2ce25a5b581d5106612621b17d6ff8f28db9ee77e3fa635d6459a991d0fb4af5a8e689b69dc0851635f4b0d954cd1b3298751ffc57ae77255445aa5fe2174ac5a980aaf05f9b5e4f6074d4ce5cb490693feea019ef36fcfe9109f6660574ab620ceff29b9bd8107d4065ff80a4047e6ea990172c54d663c5ebd922d2ad5fa28a3b2a14b1c19023a77f8f54ede3319dd5075371c671592f83cbe882c9a12a18a2b934f3ae0f0ddd1a213aec308c9b1fb4468087720cd73250b0e98f7b341f8c2cb275fb55a2dda9c982b55ececbb474b31e698cb36154fe40b197ebbae4e5a7aceef698cbc853d609ee77502c3566a669aa737a25c2dd0c028becf3212d93ae3dc45c30db846d510984ac749249f24743f671b1366a46cfc78f86ad18b3140ea5a6a2024679c1c7753d3e124628c13d5928fde3a51706a6d03d219de039444488436a5cc74dc2bf8fe9500dd2b86bac15b186e39e8cbba0d3ad6dca05d4079fec7dbe2e1a8bb4007830f52b4d64e4a63a3b6ca71bdf3e60ad41385d4481cedda7df2db04c4b783ed83b0860d934399b00c7bbdefd059816110bf022019ae893977765ea076a8e95c3ab6f38c0a0a4400ffe3bb377776bdb9fe86d23f162d9266acac7954d9b74f1a1b3cd3a5c87189d27d0ce8aa045e3eac11ce02627b48af520db02214dbce1dd8e2b9fa97030a8a6a6daea776254f8c23546fdd6cd663c96ce33e8d4c0cedb9af531739dd0fb9aef753ffed25b5d3fc07d8b3d1513c9241bf8c902737cafaa03d8fc0577881d81e13b304571ab78c516c65c58fbd79bc72bbcafbee2896f98734fce90d0d478c5047c383721cbb38241718a897fd6c5402b669ffcd9bad5617dddec3f2fa9be48aeab6b389093fae118ed5d0ad89a5dceab1d291293106cbe9f84129a65a45fdf2674d1ee8a7b6cd91cb0e522f9f937976c2de74d5808cac6470704adc1e608a4c48b083eb1030ad53f5ec4af2a2c9bab9f228a93b9d55a743adf3ac4cf196a4e7ff8d30efcdf734445530c5067ef106eb60ba52110daad873b37f2c1bce8fcf9032df11de88691a4bf652a26c82c7e88a5be7afebd62d8a8db717b0fbbcb831dbc181fc78904b1d4821ae55b7bce6890b05bb1c14d889b37b0faa24ca94f251a50fd7729f11d190e231d9ed4e42736ab19873c7ebe94525fe5f79f854c1f9d0a27ded5659a8f507c6c8f28aefda38119d6d0eb60fe73b355e8a3cfcb05c636320952a60566ee0f1d8819e2b8a8e501874c2fe7616942ca04eaa17413751fd4d0a0727e6d59e5c1be15ed72fe2541d317ca34b045520d42ef74e775ade0e25791cd27b3fd666024712f40fbeaafa940b45f2bde0bcb299c2869e512c839e9b3688011b73fb728d38c5cb183ab69f78e4a6ab977a395eac1683921277c4f567fec202bfae4bcfb0564ccf269df7077fe79773006f0625f6d629d2ecac3e9a697374ebbdb58e869df3218259e5c1fa1b849158090f5cc7929f617bc1a69a69750b3237bea2356ad2c9e4ecc39f8b9705366574795d4107a9e1f8ac42f4919bf8b48757c52f1d1fd62478ce8ad61f55fc536b9e0bff35b25e87b7139f31ac9780f01ac3caec28a60adfcbb2b47b7051bbfd3d0b324ff6e40d7ebdc1c80982a501754a628ca436777abad4284270679a87611bc26be94c9b07b1bfa5d50012cf1881ac2e64d7a5a1792898a6377b27fa37c1e5b969c70622fb9a8401a90b6c6217f45be7d1c88a4c1c4daa2a797eccaf27d538fe638bb24c18ca8bae2aa09a4d47e1eb78d82e14a66e2a0759bf692483b8f1918f3e94f92632596a429762be7b77c317d749144c8a6b4a3641f7b4e3999dc1a2e445c39ca0c63f0fbd0a35153ea13a32ba9a63dc1ec34fef3f16e46a950e5d8f8395c7705a8ecb084551777f123df12185a122331f473ec8eb96a12d895c4937efcb0767522eaff45c22505b0bb04ae8003098c67a26d04846bb6a3c9cd696557606daa0bb66cb532026fc66214101b0f53b679e7c5fd37887078cf79109789d26cd2ba1f8fc10acaf1dac8e03a624e824245149ee9e834bc4bcb539a3f100011a10342ac4c02afdf0a860403267c413fd4d1f8a6700f63118960d44cfe2bce62e10f452986944962ac9287d47b0e175079292764da4c2c675fa10d5cdb97508c998bdd2b52c1fe575b34e68d3cf8321472989b2edcd9df70fc6ac76743ab7dd8d9eb0945ba14b0e1a37f4d286ff33d8b6cb4341a22075fbefc4b49243a13561fde93167c0a47638c0334a7f3229ff2184be4d1064d4bc9c44ed5b2053773cd58bff267c2463b94638a2732c83cf186e3282a2f365e000cf0f3b21982775620ebb54f3fb8098e20137df3e670ca55301e682b8b79106a0fe17e26a637a1c13dd0ca9cc7526856d6bbb54f6278969566b53eca3e6d365440e9927f51c094b3c082961f6ac67f92a1b827ed943c31a4bcce8f9259a2079c49c24bca9cd0dbeeb3e77c3b056cc07f727aa41dd722cb4a91e0ecdc851f8a6190025dcf0d237f267f8870f5d56ecf08ad2c93826fad233be988b330ffeb1478703114df5bdb8fb4ebd86476975a4c667918ba15a988ba5e0cc6e59300007ecdc8183cae6b44eeda9b2c988237d6720e989acda670c3d08af22c1d8045f0379fa16a7ebf9cc850bf43eb071d783122a6a935a629d26ce0b35b4c40b7e01920608d6ab392fcbecacdb08216da5fdbe491b12326ba06d4a1dcf34e0111e46838cc7c1d4f81755443fc81322cf0e8871b61654e8be5b39e5578833a97106a49385ee034be3f64c35bff698671bbcb0a9604b6e76a412d8dd5ac29903778a777ad988e2d3ac13d1b843c16569a49bd0253dd9c59220d65d8d450b2249f5bbaa23cf38b0a29839fbada9f8904da727f06177d452af19abd1a5d5881f41041c7a2b972862312edee13360b39aeb2886c84dcc5378f32d57ce2db742253f1111fdc041ca91adb34ebcc4772efbc7d5feee7b368598562f0f553afcafaf561a14c5734b6de6d66dddfd70b15ccd6e4323a0659fd5a82ec209906d522f2fe9cf5383a92113052bc3921a98d8e142288a9f35ddd72d2ca533020f3c9d211c650224a986977555f6fb0060394d74e1d52d12b365e343f4297b1b819b4943d6f6259bfb7e2a8e7fbfceec9ed0b0391a21f3b6117d54fa49f7d5a70c7f3eda8ca2a4f14962414c8976a7524f1de73a4d346fb9257fba745c5047e8215188bebe760de9cd9fcab18c8c345d60a8a3c5535ad421553de7743b19b7e56165d79f1e5008f112e9e8116d8019ed5e0a1354a1763766e3acefbf4f4511187232d31bc08600a6c6f14cffd2c35d791a8eb463cda82872e156009d181f272299e79b970d2c4a0b8269675b380f9a013b1896c0fbba04a311171b8a981ca3506b68b7b365e334f613a01f9c6947bd5d5bf37f500f117e4ec4507040c5d2bcf303c89698504cc1a95f77cf609c6478523e60c56dee7dfb0af3a0af9da322ed8117b0de849c8dc2c1d18d7cb2b85697548cff82f03d0820f5386d516e0e08f1152a0b2a34223ccd0c43ebbd439b940315ffb2621f45c9d6061e3624db93d4671a902e99fffecbdf1cf16721a3cbafc12e02eb0bba5463dc125c9967c878ba9501e19081eb2d65560af35a1445558a59e76480e1107505e6510649b07eef0e7cfe921ea0285e0060295e29098b8ffaaa54a98c350e5750cfd211c462617764d3742fa16ea76935ae4d20423daec55aefb7af75a4b358dfa27113dbdad91b0a6af5ac8f684123e57237076c79482aed5dd65d2ab65cbd7b4c7b4a52a96c9f5385fe0014822ce0cb99a244d9fb310aa95b64855b785562d616d1540c2b53d8c3cb38253e6b8aca256b22296dd0796e9e4a94d5cee76c721a785804fdef0a2b0ecc75ed21dc8fa9fde893625214e93f0093db43874d510b140912b6b3ad35c54f49c4c6859b57e06c01ee93c80372e53bead216d4187610d9fe0556e537addbf50808eee40ab81b8176b3a60fe6e19db21fc221f068a08fcb1caa0adbb7c5c58c55139593ec155f0f8261edd1df97e8eb52e596c924d044796bee0326d1489c9a14c1f68d6b1233a8fda215b7c6990ae264d345cf0a709a131671a5d592cfe0b2db8a3010595113c4c1f2aa1ca7589e5820a7779019df605e2595d5d14097221009e1438b4789bb2593315afa5ecaf20b6359dbca0486a1b7802f67a2b31b4701fc1670def58f8ac9621ef7b2c2ebe1c93d586e34c33cc54022db7583c3ce883146279f927ca43a0a30e9204edb52665704e7053fdc3a8fea7c8eb2eb6f672ea2d541bf4d48a9b14a08596be6ae12b18c52a7ffdfd7912789fcb227171e32198ffcf15ce3f054d3ec7a1497cd025b336e839f98846d56dfa42a0b1638ab0e8e5c207bd008b4a1371838ec712f70aec6d444446b3aa895277ab976d5e7333e5c82624a15b1dfef0992d9379cb2f216a168cdffa86a1a46bf27db332e4406b0cf67ce6536ddc82efb007048a57235ba83d13484b0a76dd16c9b6b02b1428fa6648e2347196c70a4cd5c9e68e91788545e2a1b9beb2921c99dc257c94e00843d09be4facd9cef6f3dbdafd9110409a52492b12ccc7e5a5fe6be4e8c44d0da7f8b020c178998109dc50b25144fab08e4c76f8e33f0ad43f0dfb19d8ab4b12d14852832aa99f77a734db3f9a7716a278795af35670000d7d0df44bf1593244add3b5ba2f802e5133bcab9fd981ec10a9a5c0d1af0ff85b43ac62d922c4bca23a6c4a195d8dd4de6e1f7ae3792270b1e8332322e09e344caf18c0ca32c44374631b2ec1042d45b9f19a9f7d64ee9810312beba395fedeff8b403defacfaea607620a4d463e5bdf020face8ca200abf4302a8484efdccedbb9ff3f30591222c865cf11f731e23f135766808ca741053c1123c37d49fa8f7a4c6d8323adc2de408068db1c0e38c35f49358eb378f002303c1155328ca60d055265dc4b9eb7ae014bc2359c602e0889d935b8c3adc07cd19b6f4db8b1cf3ea13937efb8676f3d6eadc447f857adc6b1e02131638c664926c52f88cdaea6b202f34351279b6cf65dbcf77c5019b59d09168a7caa2c133363b11f49c8a005f3f0d8fa74ed54f7ea6ffdb075c070eadfd392e41d562b205c37303928ba5c13aad2e7af91316a8ac22c4aa84ecaa68e287beb46a8d4c989eb405cf850e1e737da30ee4958e23922a0b1fd23175b3b8063058f7f3c25196a33fffec3f4c670750e362c21de5e749749f520c1ec8a2176decd987f94e17968cde337dd2505cb2eabeb8773074934fa4c6e3ee8068b49a03012e72d934f07a86e4740d1d16d0bddf83f3b72c71ae45d5dfe30a1bb1fbede3b00b4ba4728850eaf5ba4abeaa7dcec45d05295a1c84cd65bf78504ac26765866d044b7e476fb8624cb083e383a0f862ca7f108ff36a6e33d115eac1e0bf3454e31990c5a32884334725d8d97c2c122b08aa2f506fd850330b637b0e1f340a03264afee4032f1d2391ab184d33db9ad6961e664de13e434abf7a7a001c7999f166273c733ab269f7b1ec976ce73abd2264add30fb7243976d8a141eea16a8a8b7671f4db56992f6b0bb623d43020fe9619586c7b7f71aa2a894ada76715569b5bf603fd5a8149cadb782be2e3a865a432b2646e3ea55681624e47bfe4d8c9eae827313aa9a1bef97d9cea5084970ea5a4291a6f79684225b0c2d2542ebc8275dbbe7f20f2a3ccc4cc24e2f6a3508892450ecd20f0a35384d7ea1f247bd4cc0712879e8f7fe59f86f2c423796fb162ee7fca38c92fbd62c8bedc3be6a9137612968ab722f32b05a29bf0b79f598c2df0d1bd1908233339a25b5d2b94c46d91b53b910ef9af421d963273849bc82a22c18a3607a5e65c52fdab88be0236255a77f63f53eaaae70202402dcbc99011e0c1874fcb2febc5916b8e986a095f827cfdc7bffe5360997722dfcf6303036f1241b9ce4293064c918e80f7099c5b7e55e3fda011569067e684763462bd3e7704ea558887e70c34c9869498ad0a82f68020d5f5af4090313f84c26ad046fce8b6af52625c1f23e5a67d5d872776c17f6362ec44713b5f4e9e6198160cf4a939aae7297f91e62972794442bd005cb7566370c80b4b03ae1380690407725930ff501ca9275341079207c43f423dd9a798581df0d6bfd112a8f71dfd6fd4afe8635c41eec4306f531b4a706bb44feeaba79a5836aa85057de8a9f5b8714beec8498293965dab941c406d872ac7a905546beb8f4fe2f25e85948a4c004b5bdf5070425012ceb14e353a437e6cedace7b0f2b67fb00f6d97a118e2fdc674e669bb8908b7df02f769f4d921f06af999f0e1866b44eab8c011cff66fe76d5955c7eb01f5d3d3d77ba973a0a2d3d641f26e62576798e7c4f1a11f94237939c26fd424f7ebba9db0f0f5ca63ec1d27a46483d26d82e8a8bbd6e78ee495b2c005e80b80d27539aef1ffdb007e665c68ce2f3bf47acc1975e0baf46a0e232d5d339777e65029cbef61bde98005da4ad9aebe599b24cd3270a17b2c1a114ee212a3b773f53af3ef64db1fde8f9549e7f64c0c174adf51c1864019c61af85c1010ab345076e1e44602b2c4210a3735efc097fd30302bc2955d8ddb2c7c304100b15fb2605ad675198a6fdc6516c0670cf04507842112dd918d6d6caf0877ec9679873ef124adb6c9b5ed6dc9c0a5a716ac2424cc5e9ea4e37d9b6169489542c09fc1a953725bafd9e1160c61d923d5ed3c1492b43a2416c45237b1a2eeb2a0c328e05e6f00b604bdbc10585b0448f655929e81dc7c9bf7e0db6cc5b4c3fa150eb5940d88641b64ef9e593887de639df1e989b62f4471d3ff8e0dc2f858b8c5b49a5fa7be918240871d25d3a07ce70c15ff9876402cd00c90e2b14a4218ce4056da4b45ad49a0543b72fb6b2b8a0a2216eecbe11176efb17f062048a962d3cb63a74bf3312a4b7f57a4c8bd20577e58254e628f60088e5372f7837223efd8776fbcde13b979b35fc8f57a1b7ae90865772d4a93bf76010a813874b0bccde5e5774579271fac92c97584d46946ee55845fe10d7e2608ae9f1de7ae6e1a0df33e2fa81c5fc5b2dfeadec3d5e28289773503e4fdd1043670236a2574466e3dd7180051591a9bf60669ac2eff376297e4ceb4de84449be861b0560b6eda531aa875265168883d92addfba0b30ac97f1a64515adf6a92f7689f741b80873a164f79103e03357ffbcfd42e6e7d9fedfd22cca999b2ceeb6f63299772a6f0dc0d2242eff226f931fedd2e9134c9ffdc661659ef89a06c1c6f42a09f99205f9ddfe585d7317b4f4e97d24449de0070a05ad366981c0499ffcc5d77b631c8fac76fa54410e63247f42fcb6157fff48d38e0f1c27c39d9df6903c40470370ea824ba4e79a63394faf252c51425dfb0ea8298f55fae9e48ca9469d63b19f58d7769cb8277448702239665dd8daf60f1275754b135167db4ad4b6f61e2405f8dfd146901356b3623e9fce0d21bef2f3847817d7f4d54babdbca65ea2b107188fb07c3ee3ec696637587fce2732d0a7831208d920937cb5591ce352e5879236d228e4a04eeb5b89a156da1888097f749ea75b9848427b2f9b4fafcfe4cc993664bafdf8790aa76a2d22319f6a8d792193b18c8b5c845601e7a93fab2ddd4fbb6099b6c116eafdec58340128a15a24fc83b64c15af28df96a2cb50a354af4a9bc8fb9fc60ab4f2bbf6154b54058a93cf02f4a77cace2243bec06bf5a39b77fb300f6ad9de4807af4d67d8390b8b8b28eb981f6668198700bc374c73d6ca1f10a6a7ae1e02d41d9b277327e233996faf8a28738efde9eeb49bb9d032613204f89b6bf79a5591e05257e08c710316c0bbce99a51bf0010e75d9b435922e47e65c28673d526a8d17f37051db24080f7d802b3c110f4bb43d9906864608b291b6570c5b517e46c89448602b9da72b4e054c1db30b9698161f6a9dfa1a197268cb79a78719bbcdf5a1365bcf7ba318eb236da921dd099a415355b03072a52822095347ac432ff7ced176f608961733dde34144e74ad5c5d095fe7c94784f722f4559de42e5219f90cbb989b07f13366ceb253e3d4fb9f8de2e896a7d024dd3bfb6edfc69d231070f6bdc065dab06c3925dbc066fa698d1f9a1d3018fc49e011f2f218ab26d78a5c3863c9dbb6d0e805fc1a1e00323e4d0962d5e6fcfdcf97224ab14ff372641bcadc14772b3379537df6e40fb8b5a662d441687e8b5720b728a54010a9c980b74afca038763f6972411d95e42c892fc3add5024d738f44d9a1bb9d9363a0b9d9a35994817a5ac5b1c53441365bf29a341bbd8f240a7cc5be572ed51d450df3b99800f4a404670bba69527ccfc768879f6bbf9591491281e0b4ce0e2494926a8f9c670ec4b723ca1fd6125bb6d5d6cfe17988ccea1ab5a9b1e82ab55e36712732028892a4466866c001c7d4f5751017e58aa9bd2573cd64a40dd95f53252d8ba68c257d02551c3b3ec8cf24cd133c35c06270458560e5a8878f985ccb814a99851195cff1daad2601509b0250141d1ff5aec35c1e34737921c66eb9cd00054bcf2ba68eb181e16d2968bc75a22885e92e5c6a19cbbab2718167af6cf906269a5f7aa2e2edbe096f44ece124fa3fc91eb03407de9977902ecd27d15630aeedba1104a6ddd0eb5edd27637591a7c82454b95e5dd4023b9a2352d0311b89e456f187e56ee2fbed301868dc3298bbc8c2879992fedc07761ea5a2bfe965c72f703b79b1f3a4a3916ba16d0e7ea5469329df0f90ae7a41e9f3b73ea29cfe2acfe94313e8e13052d7e4c87f3b30e4e2825dc556b89d457759011bc8ca0db2a7dd34f047e68f10bf7ceb42dfb167019ec3c118bd2a0fa850ff5278b6eb19b7c6f6ad380713a4d23c33d683618dd0660ba42c8af84bc270fd550afce0d4076c00092644cbe98ce90a4ed44e9b70c9ade3e6b04474deefd5914ba9626fbc7d109b7b18594aff9b29f9e2c0888b843f4bbddc2ee10c669c500bf945afe5ae6e27cb4727bfb25adf88017e2022e7814d6b400ff408ed0299ad5663bd8570f4658ab72caa22b0aa7d68696daafd25b9d1f2901314e97890c540766c31df87e4b546df9bbc892000b1fe5be2d977e50b2747c87989439c46fdcbd967b0cb8549ebf0fe024e9120480b489df6e6f6d6ce60bfa0845eebaac0735e0bbb95d1966ce5a8c0a365fb1f1116225143310521ce512624161341745818a53c69b264ee29555d96b57df84e3d90d5a44f8ac1172e6da80226ca5e2893d09903a87d558f8104c9883526061cbd79beee6b1dbb849e55bb425c928fc250f8d55af3576ae6a44da873af7e8873bd8b5968d231baa66d0bab3f97d2c7860fe77bb81e1476107c9722419bb374c4b9e4d2c84441698d19c18502034ad0cf0529fcb87399e9bad0dbd92eb5c12a0c65bc473881f384535ee95ff315988f6ac66e0f45cb36f875c7c456ae9459aeb5c175fab044ee131652ff9841d8c0b28733030198400f7582572a03aeefdc12c3e2a13e6c767a5d3610b7354fc34d188274dfc25efa868247104d70dbc754a0bf39c790e18b0f1148a437bb2eade367d922a911690d725c61dabda36153d062d49f15a4859b5093928d412155658faf702c88825972f352cb12f7a004c60ba141c56c840558f689152ab592f4876bac6d44ce1539e5792746b4f1622b59dec6275e7a0c6dfc728fbda8eaea77a4e2693587fae51023cac183bc3f73e35cd0badaca5e02d4467276d8cf12158415a98c395884fa64ba0e7bce2dbd90210c8cb321a4f9dedea7409cdb77ae7f3baa024d4bf85d051b56f4ce34a84af592ead948f6181263ecc2330bbfc04dc0679e0e8e35eaddef6fc664cacbf705fdd978e0cae613f58eabdcf0fbc88944753d30f4106e4400bd77d595445ab6dbc9d63968137189ea58d145ee888a9c8f3fdf6f1f8eb00e864ae06bfb153f31fc6776e6a48d37dff429a902e114e41090ba1df9cff79ffb43d63fef0a8d19e0215ce33423bd49d7fff85905ba0899925931dd92957ab8ee5ce3d95b1385eed97eb7665b48ccc899df43534e53b189dac9c029b85f7af5771108ac3c8a9e8781b0c3f8fbc84a0bd993f0fafa0f0fae86fe7c90721ae4efc393c0998ad3bcd74173ba5843ac4294a361a06fab1d895fdd13a540bc3dae366fdbeac091af817ec9de3791e8e8e775f274a801ca899ce8498bce11fdf725d309b65230b74047a4438438dc1dcd947d7538fe5d0d3525f10197b55b03dc521f93116c80dc4f9135fde182b0feb0922325f8bd65bb39c85dc6c378298eee3500f7a72fe927d7b5a80da6a2c56718009310031e61d38efe427a49cb0bc610d5a43d302cea35845de00d53b06e6dfcb89e530ca3dbc327eedc5b338cff67637accd3ac23313c3438e5f76cd0e732a184f4fa72c0699ff80df0d685d7f8b1b14fcd573b058e3c4415666ecc7d337ef560e1fc7e5cec59b0017eef7cb4f68eaf799f2980d5c1dc576121768848e22f755b20cd5f5044fd39b2a1321e471e60e35dc38b030f89a565136c632f8ce98051ca4c8c621f7d5b27e63ac04f1b23fa5c2cf05071020b9d4381eb0e8d1cb4cc799fcd67910c858d59b25707fa171df1ca9665b8c84b841a46619c6e0112d41b78ee92499ecb03e149fe14d60c82073a04aae93dac4936bb492ee122be6c5cbc2e0fac8564587bd2a7715a2292fee94fa8605b025575276815ce93e783e80225be6f03149d385275fc92618683eb916bb2fee4eed019cac24d1ca7b77bd93edb90fc1c39070c990a1a143444f27b9452028973666c92047d88b74637bd8311f85ca2f981dcdf1b47889ec34e320fd5955d1078f7f795db8dfa8feaacedfc039aaf4fb9b1c9df3d2fee55aa33d707ea9fb3e9dac1832b9ec1e8c5f8639e5be7016a93fafec9e338780dd1fc1236a53e7dec056ea92bc321e9d7a300d676d4018431dd6f57ec9b08b6847d92e6b4520e6a2b047ef4dd856ed2ea027cab944605a96a6d2b32356d669ddea869fe4ac9abb0cce82a447f69b47f8bc7f942f73a96c6a948ecdf583b0c3cecb7e98c14e84dfee38381925400bae15d70b4acfe9ae2b5572badb6c5cf36d3e212a0033a267c837cae312e1c52643de690c19fe87a68a8a4cc3573545cdd6c98e9d58c6a31a9ee207379dcb1938c0d4300f276578d2e316d0d036b7f433588090ae160fc53dcf70317c69c04487a577ad3544063814e68ce0b88494d3566d07f09c91ae89c0ac805a61ba69fb727804ebb71b1829817a89d2e8b250e7ecee6b898741e85dcedcb6fb46dec8a7a55a3d5324e9f5d9d9a373f27b03a5d3eb730c3667fe0a4218e2427676ca6d92ec14aad37ebc599cd0130c199b4f639892829861f4409617a1c4e15b061189d4a049d2331d16e0f2651abb0a5c3cd07f73f3b74048f91fb91030c1dcf87c6b746674f693c79f2a87a4be583ade01fb0c359a59bfa5f8f94303df0880136724427fbab76a6e93c4e7376705d8eacde8cd7d1a42c0f7f866617336dd2171e67df30cd8c4110794532ba583f095e0cae82ad33e22206946a47572c0f7858a1ee64e527ae0109797b683c9cfff9c61a24122989b82c0382699c7d4a047293d064a60bf9190a1e493c6c8a6f177c3d60b499d6af975dc14b3a7e8aa1983528189cad52cc31f241f3cc0ff7dfc328e77c241f6325d28f4b31c060870a74dfe70fd448044dc7f30bfe77ad1f32c726a1dcd8c71ad19b22724de81adfa916c46faef14e26717b9e2b6727a4d55847fda7e5538d24c1107279be73fb2d7cb2ed53d1810ec7213326674fbad843952d9aac591c0919b222446e67d2d99ce68ecec33bcae0f6aa3ea1557560c460454b6750f15c4d5b5cc833b837abeee2298a2ab273c3e65d4f0ee359d1f1c2419df040d7200d8c7efb93aca43de22386eb76880c05316c722c51029b6b51d62510a846170f8c2800b4c56ce39584ee78361f212638036bef7dd6f495eacad3f795da2fd5b893ca7fefdcf67880ea5c3a5952fb354a9cd8c0808ec7cc21584e82e96b580153c4f3270184505071e44377d17cad23f0601422fcb0113cc788cdaa16115cc831f62f56f7c263abf23df2464c3e69985504d487af6d9026b8b2726c153bd250251804fd6c8d3cd037379a9f18d07b5d2c9235af2e99dfc865c15674b444dbdd269ba6cf3e511105dfacd31a5ce34e68555f7f87f0c354d72708b4eb8267142e461cf311e853718b048cf40c2f78a40279a2866865b124ce775006e17aabebc66aca6730d30e1650ab57f6e973bed6d32e845551580fb21c852e82b67d6d87762ba8db36631d812e553f913d75d34173ad3da977cd383efbe70a8276bb20c67bb04bed0a4237f8d4dad866778fe3e653be75e57deedae75c44885eed845124c0a61475322269e36a9f36f97116f404a5d7145d92b1075871d5b1660a90545b029a7d294e3e1ff9969b55ee3ee21a0cb5990d30ddeab1d9ec734ff4511942ffab7a437ec4e8118c572594b9c1c0a4e72a28e5ffc8bc5c34954bca931618d7e0057e0543bccb2f557f7291dca16bf21812d38c7b387f6f38646cecf44ae7365a6b158a8a897307ef8e56866b47d1be989f93748ae487ad90c3ab433356a5a8fff5a69a8d4798ebd45604ba694770cbf967436d90ca28106b675dc30be56c63a70719c4aa4671c36a4bdf1177c2ed8c54b910083489307deb6c71fd7940db1f12af78c434a0d11f71dbff83270a183d3e006573552d3d55ca1d173c3741d3703a345275edb27ff0917368ea65b97d59bed690e637d93c4f148290cfddf330cffc9c1ab9fcfbed774a605f4f736f8fb065799d869c32867cd9e7acf5912bce34f03e002dd6ba2f561372252bc78e8a69ab20ca9612b2795e24bb8bfc138e4f018c89bd2e13c81effa0713909c3fcf57c29b81d7ba6ffb24b90eca21457d1a9457da8b9990ca8f2198c51eeea9caa273b8b24d56e1901c04297b640054101e73ba5146721666dcf8ec5e5fdbce87b9b7e9ff047a71499fbe5034a6dc1cd11203a7f69282f946873e10ac3d1ebd0c22f473e9163975a1d8a477b9f2c34afa103da655d1ae3369ffe6e8af0a180286533390110114b2f1745d4919eb109e57e3f8043126ac1b3433dcb1d1cd52dad3395e62a006ffc3172c5eaa70e00b8b90988737b1b90506cb485460fb84bade59d2bd800f4cef786cff15cce942a433cab437880ef4cd9ab0eec1d467230f5dbcee7e16b72930e448607ee1ba93f1494d2f305ba8a961e1871b120cf7fc4b36e277df96b21bc63183334eebb15cf7a80d0754d180dfe8541a4a8f3d6de7a69c30e4bfd8d99b2f1ed70c5202aa9cc5a6c34118f802f36a6572431c94da34bf9c3923083379d0d5229846f48d5c26e48b4ce2bb9b413be45f09501dde273db6f19134148b6026a8ae830cc6ffd3bd3b39cc6afb6b297ab5a74937f5240b5544ed2d7093675fd30f581135cd5fd044380ad967f2acb95cd5fa6a57ebc6da193da41cd3c5f8b43b880d3dc42b743b5da01baa0b4a719abb0b2edd06a7face1eac52f16ac2be3fd2f46e5a4b8ff58ce5f7d057b8f4b6da1c41cd06cd3c2caee6d19c6c74e447c4a348ae1c8a4b5d83f7c3db17a9bbdc89de6209bac6aca2e6b2751617c6095a34a9d457c45fdc3f167ccfa6e649d14aaae04ebe8a1f8cd160903a50fb5e11a4ff07b53d1bec9954367c8cd957656a062f1f581421e000d1bd9295136674fea06888c3e36cddbddead236947c8a2717b486ca990df73fb4f2b89f3094432a04ad2fc4665f20631a0c3463613c36e76133995cc065400b524345c9206da5b55e5811cc7fd6fc205021efdc4a9222b159bf3b5da5637fa59ed5b6679dd4c0bfd03615d8fe0821c3d0c6c31140ebc394c2d0424db9af2024bea833007f3f22dd2a458e6e1d008199e7f31fc3deb287a3fd28930baa9cf460914a8693de98b694dd4e80a24245d9cb708b1df7b0f04f9af1807b995515f5381d4779b917b57835c630f9ce5d4b924404aa96d8b39c6b6bd35f3ac6af1b74b67c92f4890f6728a8cc12accba223cee64d51af507d041c0bb6223d9729d4e548b7034506f0b3788f2896ab2d0a03da8347be196478ffce91143cad60a233680a897a1111d474ced365389e30c30d6ae10fac9cc53e0f793bbf8176f48431a8d35f2eeb1855fe96ad7dc65566c2ca300970431e61f43628fa2f4370c6ce329e7b5790183809f2e79055cb9ef9cecc4055febbefdbee5d0b5e0cf9e49e296c2a8080f8ac9760b1b357d2a06838974f1a7e3c338d6019606b93a986cb8012001ceccf0d2717a4eada00d1a2c5dd595e0a212e4c8e989aa846a3f9226bdd975e3186c58b63b11376da6ed618090b939af4a119fb03d9055f8fe7161ae0b0212e6cbc89695a52f6d0f0198ecc154cb0125ebdc09316fd6bbf77fe27f6b58c078a509f4e79081ce9ba73cefdca85884fc05db31b6651862bbcbdc6cbe7a03a582b5581d69cf6c5f1b89f3541dbb70a08ddf1af74bb4d8a21bfd39aedfd9b1dfe2c7e3089e6283b3cada334e987b5dab07fda249013fcefdc4602f4fffb75813f8bbc1c5711c44dba25967d0e83d253940ddd3979641903817e33ff90f5e480465278e0d2e909dacc38c6e4af21122f849e19eeb3b946d14c8411f5b4543d01c779dee22fcb04870b2f2cc33ded948d570d70df03be16d77f3e51975f1e63fe9810009fd927ca17b216dc5a0c06315aff9db5e879634819fef5fd1ec6801b12798e2e7fac50568acac763805045e8467b237c699a9ecb7327c937481ff98f5f41003b23b8517a564e57b8b38eeb04035862080fdc88a3deb27de39389bb605537883598bfa2eacad4654377c41801e4bfb46b89e5a0b388ecc160c6c33fa7f48fc63800d7f1c1ac2ba1689fa9ed1804aefb5729d21514f8648153eed9b157e74f4abcc07c3dd235fdce8aa4e8b80c5fa97971b2bc3b798f39965e68e585343066150ef864821c50bbfd48d20604b6e10e76a5816156985a373710b2c6832d6e16a0f7fab5f595f33c79d10ba9870f7dfa1476c23805133798242c0783ddc4e09c2a5704df18517576613ff5f839ee53766a92de50f17ae7a25debc184836300a84b1cd8d113fa68d7600a913a6164cdbc09a81b566543e9f6de460b31dbe7bb7d562b26379e4e7b15736679f2af67c9e4b16326295ddbdced2edd79b1983e541a99ca888e67c47f3b86842c7194a1edeaa9c3fcced05de56ac047adb8dc4e48902883add4c6c3f2f78373e111882c32e5bb35a07411cb6c50f3a42ffbe0a5a3ccfb4729bc662edd60a71ae78428a9d68cd6cdbe5c510eb12bcfecd73e10d271f10edc2f86d83f3dc8edfd01fac6e039909e9678820e1b9dd98447963bd2e934726ec8a313a5b16500a91275a468df2f4a8ba36631f25b2d1277a7e98077c6dd2ffbd62bea7759cad5fafd06698f9e89f06a851fb659c03194b8d97e777fea9763887b75ff31368d66c6f9c09bb8d1b487f0579f991357bd971d0854e6e6526dd24db967721470f188af241b3f50643de102e9c9fe5c28aba21b68f25562d7f5e966fe073a3e63237a7928b40c9019432c7fddf45e9038304ee971124e5418304f0eaf666988290caa612a359ba2399a05011c3e22d2cd8371e2cbcfc7fb78cbab06fab06897b992008e55986234673b6fde4945876c83e9bdc77cd455e8dc8d76a4cec2a6479d778087b9832f8b3611dba21fbc2d07e707fd430b045b8d0ee6b7be4a33c70e4600b8e514dae8c4adfeaf20bd1f6c670b0bdd13251a59f992a58bc476550a75663816810fa73cd81f4fc2b78e9009d2fb894db5b05f82b0387194edd2ff11a0c7636315cd5d0cff9cbd2dae3188e7347073d085aba854b7d32a2d89976bb3895084dc236ab894e7a53c273333d3c17154f5b356bce4396ef618c3daa919621c7c23db7c35c08d4bb4fca20e702a08c5e558b133b53ae0d3a2b85d6ad19a41b60f3f17adac3138dc50fcac4aa457ce470354a4c1b05e7aecd189dc7138af19d54e18909327e2b9f7cf74ff36f785030eab3c2530ec31089389eeedf35b0e5feea0ab8c5e6024d206a45b8a735bde15844913371082189f9463bf07edb7a5f6988b7fa767d277f36964f8efc9a61130a5769942e27f35076ccd147523ec718b8eff5290e71302cd213efd2a88732056df896e1413d4bb883a743aaea3b7da6b52e1e3b0aa9514bad7578e3de38e7095c573f8a46b0fa10c533903e267157be4740b8c94db6f1d8430cb40808dec03d3213fdb79543b8ade1376ab230c519e492ec4890d64f383015a882851a8b24bd2e354011ed597e18a173ac2a6e282ff7f1443e89bb38a41a9006d0e7d72d0cd5d9424331a8d02857efb5468d679834cbe0119b37cc2b6bf2adc1ff81a1cf7ce1c8bde9c72228a90e2995b17c051bddd9279de0d2364ee1e7968bb4a0a9b6014e85c0bb25b3738dc7db4ba3c7b3fd2a804044dd1380b4e4ddbbe4eedfaf02ab0d8c5f11ea6ce68bc71c636ad2d18ea339667e257263c631f21c2b988ce86edb69aa08b07d42bd314e710049441920a56f58ce786963ef921ffd675774890d06dc87c235e00269ba7e6f8819bfb27f726102f25c033b0d8c9148fb95786685ae5845165ff3c38ac6638cb9885f129c20d3818d5d130a4fed7c3f695ac077aa3e97c44a3c63ba9d01f22be8e2dc1604142929ae367f6b84ee1e8d89361753313bcedcd8b9f3ad7ed9b8ff8101e05ab60b795f9734765045bf14712dccf96e76318f91c145d90e0a7adfb40c9efc66b5e40b810f0bf70edac70f3e7d1fe03c11608258ec4c412cddb72eae155f681513c3dff2a4f86e0fc8e8f6109435a3459838df39fe759aaddac503f2893eeed87cdb20f35a166c23a2d37bcb7260591daf5c99739c5242f46f89eedce56104d6b44d5b62b77167eb01887b37579c0b0de726ffe0ab02893613fb48635d014048677afceee4989c787cdd4a1f6f0f9f32807db9441b2f47df96a6200bf5572e2591aa41731639b91f8979a6f67d4d06ee6df9d846a49b2704ba19d3769edca464b314e7efbd0d8d42cb54d4d70bea7eb989440d2c40be770a5131c56615ae4bd6811222feae1a93039d101b1d6a43b9c8841f66aeefb280b5c2863dfc4f219939f670be2bb892aff6801c865412ca2ad9ccc4accb07fcd1a350880fc04c0c61fa3c9b03ed5bc5c9bb1acc88a3c568e7e7ac9fec7733361731d5f93a73731b4750afdd5e4fc9ebae8bf327cf4c64f520d5de67d97008a2a559c18a8dfab13dc2f11e1a54f252f86559238e52a82d28ffcf5b4576b3c8b56246c25b6b5db570813f6a0ff057abeca8fd8fa21dd631465c554ee9e9d55ff6dbbadda0b8b2655c35d4e81fdcf09beeeb9471bd3b44e3db36bc65a891a5273e7329b3ff0912773b5085e1019c9cb31c2fb6073a6b0c85c5cbab3b375fbec688cc55a01d8f493c1eef7fae5fd85f823ac5f7b309e16027b4ae6731e36ac7b27e1140496a54a957fe4864d3118575c1cfb7aeaaffae31b2dddd4588150ced1688aa97135e6c3b0daa47cf3e0c9b6f46ea5fb71cbec674932a9d5d918f1c5af0ade931d69bde3e535fe178546e232a5c51a677575fa6038a1379c70eaa3395deb09f75a74e2adebb8c7ad88872237aa248eb190db12a9fd14c96149a423f9063a396f8b7fc40733b01c478b215c685e44c6c0fa2ab07deccb52c44502b97f5a48d671a726d62c269546ec81f49e24581e909e9ae0c00122726b1bcf276013bff7da0374186533d449669efdebca3deddd5856624c5b78d7bd938d0d82cf68c6123f2d11faca5b29fe860fc51ae70124d1c44181527ffc2a8fe62f6319daf70099241ae161e7f2e039eefafea7058469c794ebea4f881d44876833a3d4cd3cad4cdb9fcd18bae1f696c80647aaef957eb86df5a02ca0f87ae2bd59851468b2ee0fe05efe88ac620fe19579125a75629fdd3642e5aad6f7b1c4e96b9d0550b4cf15ab319be8ca493296ad495f00aab58dab1c9ee5ab94452e357c770680a2858642a5517e67988443794c886b9c9f76daef801f41c1bbff4962622e4ea92995f100cc5498a5da507cc70bddc5008a02484bd1f59337f4883407cf4125508d5815b78fc24357587bc0740258aa0bcd2500049e3a0cf6e04825b8d86c9b7aaec5e26fbdc1050ab1d382168a437d3f24e25009ac5e4edaaa3bbd1d50e7fabb09fe53549b338075d185a598be953bd23f1a3be9e049e6713d2c08a9ddc73cb4c5c456adb3c78c6c10cb68900d752098e51dcb9ae99afdd5fdf7cd493bf6d2536f09ed8669e782421cfb726b0a99e11a4293a8147a52e5466b7175264f6bc515c5db6dc91bfd37c1c110a374de1e85836c68a825ef3cc31a53ee7a64b5dbfbbeb60547c763e6d4c5f95deb900f2990840773e767a93a7a9cc9573ffe9dc9eab4047dcfc30d2be451df45c7fee952bf6576f566d2b2702a4cc9c221941d0664a5b6ea6b3d306d643ab09b7d817b58fdb0f1e201f63e0ec056ea98ffc158c7b1b55f6b5fc127fdd4a65acbda9949de728a2bfda3af0b6b48cbe9b49ef1e8dd7ce68edd84a93f62c6971c3c1f80de438784d2a2dfc1d65a68100d95f491d7004bfdc6814b8850266333ef82ca4671299038f2bcf214801942f32be58bf8199f70952c2d5c97a4a1f8d238ca817359738e97fb67672376dc896f27492851d171794077a77897e932e4c6183a8d8251cdb0d1eda9aa5ed37de3e8d62bf2a8ef7dbbcf5deb2ecae0c35f6711cd232aee0dece404b610ee428f1884affa893f3a17c2611e237963f91cd2ae39bc9acc82bd2669eaf72ab291319cd0225d0d36cd2771fb51d0ab8b927258917894d25ead744cbe45bf7a029f1f61a7d5da10987d0909b3d3ca9c2ef3156cf60d73a63f1c9676d4fff49d96a7f38bac1ba947c6f35ec0047b8ec036ff89102debf83ebe800879df9b90a6aa9405b6f816a434e637e317e61dc52b2c775ec0eb0b7c557b87c7bf8921e5b2991dd122b6449cadba695b990187529aa6fe95ce70b044bd34eee7daf82c047206f935dad8f0f11dd0fd9b4e9bce544b5f22e0b34c125670fdeca46543a5c7a76958f2b110420261b716e9172d1a9517e1bc298277b3aaa1f2c63eb02583eb8fd7d16067c3cbe4e34117dd95d777d1a801adaee86db499ab699b2882667e3b3a8fd7f9d13e013ca7489793f97232608b29822547094ccf4ad2e8c8b0058f67290a8a6f349b60c7b0214032104fc778368e63d6b79f8c34e33fe47d97dfbf0dcebef2355b77139b1e1dfd1604e534a5429b580f26305cf9ce89f3a5a1daf1e9269d9362d4cb3ca48bfbbf224e5326a20133612175771d63a2d625cd65303235428b0936a25053bdfcab7318e5bff5da2ef3c3b5639d696228b0e97ddc2f119ba0e14718dcca0a98a62a7895a741794f316d44aeabef47814c4f0a129be0177d5f1b6999c6fc6f0b43d9ac1b7f660de4c87048e418d92fe5b5bac15ac4f9d1506539770702e0a5f22112dcfc88083ceee93512b660a25bedd325e615fc3b74ff594041a6a6f0a9f17be25600a54a0d7f22988659e81ba934f6f0598bb3716d7dd3e3c465dbb12cd87f7bc9fbfd04b1e7980f196d7eb71c16f9404706055ea26d97a36b97bdfea6cb24a4c8efdf976f4057c1a194c99e6fff445657529f798c4d9caf3a331975a932daec706d15cf6bf47195935070442afc86b1e64572697e6bdb515ec6e7e7c7a95aaa1221a58e5855a774947b1aa1c9929aae41032779c21c08d549b7f72ef552fffae96fab76840e65718e8a8063f0aefe67c6071a2be0ae9e7937abec6c969f2ce2755eef34e19a802d188f72b2b5fea3f359dc102158aac0e9136940264e932baca0e7e731d41bac03018a5bcf9bb064c41431ab1d50379caea0d886ffd06940807342134ee7df6979fcd8ba0db3c86bbba0c1aa5e12e39fe78ab6046860f24c7b8bfa89976dfc61caaebc67a2a0e9a75adf9fa21a2a1f6662a04cb3ec2fb2ec1a6dcf5575fe7a818a2aad9c5fcf771ee23445f211a7e703f29cd0265b02e28e4739ec3717cd74faf751580858688fda04c3367cc0ebf5571188206877547ac03dcf5c6fc3adecff2cdff4c915075ef9aeb80fc573bb7dc84dc449243ca8655930ac919d435630195513104e9a8a7ce7cba69513ee6198f4762031c2e7109578123d4752014e37b279a159efa1bc1b58b2c3271dca1e92ab822d211da12a1ec25f718b4db906401c7f2cb08927359e327cb8af95774b49e35946cf56d8209d5d11ca3962486568d6f0ee63ab8f3b19b9ccdbd987e0f67408ddc19a8dbd2c7bb3bbf52e90a0007359804eac6cdc6cb73a82872ba192daac5bae858347269bc4260f2baff18559e4ef69168e2a334a7ca2fa3649cc9188cbf38bebe4e19b78ed213632717014067e3edf3bba1514b0533728ab4e0018bf8655bfe4f3e895fc1c3dc8acfcfb659aeb233f324375fe27e500909e880decd89ae90afc32e676259ba2fbbabc84269356226771b6a5d7d3d58200e2219ce03e76dc61cbf4d772c6e94b33ed2ffcb5b64e2d1878df09869506b4b5f1ed32d615ba4c60e78fcd1f8914da413636532193a68a83131f79ed744e1b10ad1bd6560e044c8e44fca91532b11aceaead4e575cdfc0758dc0fabb459468cb6bade524ddd9e0d610bbff349fe9413f74812f7ab884f5156e128d58d094ced3340b688cb52a4a065ec9e14898b8b85880236afe0771ea6536521d5f576dc9190c13eb90792313e1ad0c9083a3006b63a2125674f5c5c224f531ac3dfbb441a357480a35959544f51eda4f9cbe21c4c5f8edb7aaa772eae3892d0d87b3f71e92fbd513a8bada2879b0ca577eefb38f264d465563930d8f3bab2957cd454d56ee1b1ddc228396067beea7b0b1f17155258949fa3ff117492ec23482dce9139439118b3e5e40383fba6e0ccf7aa332141c0602ece992381c7057688e2a1257caba3828d3fc2ea0f5b1e23cfae24d588d28c5ffe18e11c702ec5ce21bbf33add8035470142462c4c8a0f5a24a3a18e32ae27591d97edda2760bc00be8973987eea8e98f0fd3aa549f3f52e36bd40f66e7370e3a8e87c79b3afc1fab628ed78f07799c610fe38cd16bffb8cfbb89f6c1bb27f65487b1ba49b92f1d26885d9ef46e69a0f1e54a5cab2535449408c972611c88685aeec19ec6061d05eda84f664a3779b3f4cf6fdef03a69bfaa6bdfdc6c87f84507779b23fed160b57e466f4cfa9cb57d62eea519f3507e94d1e807a16013018834ff648cb476669021795139b0632caeff081bf88ad50bcc5d9e4a03e84cb499e6ae5c5a2cf6cdde7a23bd926f97f20f68e5c1b970dcb76ce5600f0be95b38851b6d06b11513fb4b591a666497020926288f0c081eac2179d3af439611f65b3a5e6d84fc7871393d25c6f3331185211898dafeb86a6b058630097f1c85132255a5e7bec7f73c4d881ea5f854e1612d84dd447a50c7b98ce8741cc9bf0bda52cf1f69c55fff1f449689b7e74df20b3a10d963e65200ef6af0f32b890b2d429a8cae4a0d02e9cbbbc53623f201ddf1b69a0eabcf47def5bfa7d2fc1d5fdd123698c1e33b34a48e0d66fee30e3d920ac26610e04d2972d3dedd9200412023f0d64d0bd3027fb928bf1550f4ab4c02aff1d71dc980f38706e4d09ee9b87e5094ec367b4d80477290433be08ebfcb1facfbef8e5ed237cfe239797b6dd2118e32fcad42b8dbf46b2c8ced94b8eb08f1324f5663a073d3c37c94bc954906cb7a294fcb5b71b7a5fdef93d7afd16578238952e6db4121a800b7737bae4d94f6f5f1c6d985183c7aacf3273b1eba96e182a5c6636b43aa171657add36dcd4a68dededb8328840152abe7fc71211d25fd794e503b427c6ac9d3f11348c73fb856dcf09d1cae29841d2c197be413f99d41db2af745d3e91ea0d38986ff26fcb117e49769b0fb5a267b0b9c21558eeac0b706ab7dbb1c7a5392aa47a39d20ae4b2a52d3a6a9f45e237a12e610451d2c48b01cead99c80d8dd56f4742e5ccdd8ba7f5569a2d1867921e86a402bae61aeb49c7a6340e3b8bb215e6ab847629b34de7c91ca427d1c44633cc2b8946d84d1e083c2f95b8e63215aec40641cbce94a866abed3abea88e7dcfe711c88e2592fc2005783bd375e419d8d68ac7c3f21e421a271675ca1afc9a4f4c8a0a9be4c3b0ad757a969093ac99668c2167ea24dabb9a24b50dd42294e97072a1466704d81c57e61e088e324e84564c0c578b9a70424ffc7771a5d8ab2b62cf146cdfae2ea137c874f7a623309d44f6645c842a9691076585a09dadcf7f5ea1869cf9bd54db180795f29797d8f31ca0dcbe372cfe7f3f4c254bfd7261ca2ff20b77603baa63a2185451ad145948ad10d23e8181ade0e03bf130c1d55ebaddb60bbbef8fa4c4c357ad71702c86e39fd531e18c4908d4c7d410dceaa711ef9bebc93df86c09f801c36460ffe310bcc6a99dacfbf731d950bce0e2a1578ba6816c0b60e9bfd9d184059fe56e89d87a05f4ef4c73c0b2feef3d4e0e11ed359cbe4a4ad9d5149aa871490852175d0ecdd8c374080bc0bebb9eb5c53b13e36fa84386a367ac97b69d07ad074211024ce0598d7c1c81027b3f53c7d3332b3529abed2b38c9be2d8de2863e226dfbbe261c9e3d26ada4dd6c0fceb8c55b9d2d3480efd2c3f990969a818ce6eab54ff2f6ec476cb4b3ede81a0abded1ac71663bec350e7d73b436e01212cee5dcf7ae8d9eca8f64546f892621201a03850233ab3cc64989dd8ee8bab6a87d55de7b7501e07c6fb056766a9588525b4f7b7a66b617ce04dc855fb48db8b25ecd463771f40f90c4725cc8d0b025b7474de4ce8ae07681d502ac98a069755006c91179877813c83ec792a1b5a7b60394dd4f20c5e98343c102f5b4289ab312153e14dc55ba056b29b970443cc18444c0792cf86191c0e0a579925c130b9877be7f2070fceb10333a7939df84ba030a573126661177bf47e77a23655068bcca403cc98c9189a680188f37ddb6657f9fa56b5d1fe19825e4a62023f5fe6ae615a51a7366480758c08376d0537a80f99309bd3d5b4e3b825733e5f9d5ac33244a09b4ecd6924cb67eebfe9bb78711a1c79bcbd9b0be0eb94081f9e6329faeb69bb66f582d3b1e2949cd65eea9d29369381d629d35627b4e8fb3a666d295616585e1f2c0aaa0d2e2884688575ce2548feaeaf17ae1c722df446804b7f381333f42e98f1fe3bc16d23b7c3553f8f0c0cfe113c498b37f1bb122b53f48083cc3dd84092dadd895b4e0f5c863d36a51a0f3c999306812d75f9278a1a1cc0bb8c42b8dde5fe8333bff6481cd80369a4d7ca12f2d66192bc1a728f1f986148e55a8d47e39fd5d49fd4c1e910ac06e89d22c82a70b33d328b3f6a8ecbcce5ca649caecc5df912f6d85e50dbc27527cb26a518dd6b7250dc2a456d1564684159b517d89d7d00c292fc87be88dd7fedfdd56d5d5aa58780c81899c7ccc94310f0de570a6357952851803457ecdb6bfc226b9e2e49d6655860f485149233c203da724eb0799e225745f7999e73e711b15728e562341f3f0f6fd80579ac943751afecd5bcfc8cfc7cbf61dfa00c6baa3d9f1badb86b765106390de3127c99323643f5eb6e8d027121d93f4fa1829882c2ea2f896e81e3fa24a55ed5d07f4a5a128c4eeace6b068052669319dedd170acc143beca46143c5eb351f76138262e9709958fb37958f2396fc0e19bcad3dfb52ee71f4aef977947d16267aa58b263a4d89dbab523e326e40718b25935391f1dc7fca5d3dd0e05172ab033a9ff761920013d11dff664b79a89f940ab1855c3639023ab61a82fac79c5958b6d06615127d299d762d3c2622c4ae0508adc881c78cda0b5081d9226a17ab254b7de71d8afdf2d520efb1e026cd98cbc225741333988a4467373aa383937383c6113d3a121992ee14c58c184b45dff6f14d3091ec39c0b7b16857844ced536287712862ccfa5b736b43f5bccea8e9afa9e6ef5e29fb19b074ebd4173d10a8c2818d767f5f6a50786e680427c4dff71c4ff366995ea3b646b6652107f380a76e3cd82bbe1831363d7e40e57740495a48d95c4aafb006bd8b169e0889a465e39d6a1d9727ba56b225fd8a0ada2cd6323076b241c239d7b3618c39857492d169b142bca817f489ee7435255b06610693a14c628d48e2c65df83a549739cd082e76ae1c0b4da8de22280f60aef5e5725e787bad025772319627f42db4a44683daee646b9792370a7c216fc935329b8aa48b19f9346a65fa11fe76d9ef70ad9f47c13746240002bfcf558d8ee0677e3d7493780648f281d96de54b74a1bcbf777c2ca3e34fc6772296d1cd40656ad534b3b20ff72574a599a6d8be47a9a7dee59663eee5c5903ec6f650fbf2cdb1aeb64465298a9b3274864e26ea8f14ce7df585eee23215dd0b437d1155dd5084bdd23d95392d7e63d1a256b4766e64ad7c7566b47afe9d87cbcf10fdc664c461b525ad414453e6f0f883aa183430c015b83f5037ac5a5523ce0385ccf6846703e5799da354d47b8b99b2c1dae60021f9e984ccd8dfceedee54f1a13dbeada1959874ab2307440ba298b741934c305806556f72bc1a1cccbcc926ba17e415659ccd4d68b04eba1c1a871000e25645219a8db777657295f0dde2044bbacf514f96350f1bb7f873bdd07a6ccc2d31d5be737ebeb5c5ab135beefb5ac67fe497546e1ab1383f7622c6195aa2a720e77596258e3b217931a27f5441e936083a9567167aa75444b94adb6eb51c462b3705f5c63dc7d7ad80dc636b0825c2ae8ca4264261f28ab986a184d3df15b10381c113067832dd176720c2f8d05bd89bdd7bac226524b1ba65c85b4fcb4905d858587145ab17c8a20420abcd10956720e34c574d48638ebac741fd9e106c8a8e14ac1039c3c13e0380bcb3fea92c13759bbc577dc96c0eb9bd937d8c4bcb958a6bdba1b4719ed1ca23190509b54db157cded78bd83b5d0e555663c3dd7f42a739ad549a3d954f74e198c01f587d9e368fa1dafb2803df3fa9328c557656a2d9ade90ec4bb901cc62ab9db585381d6d1dff68708a6d0f0b6b56eae2559a6660a8cc588ea31b74faeca1bb527b33a41a36a7d97677bbe71034450f3edd1478a812cc7bfdb4ee75e46593e09e696dacc112caa93e259c7c0d49418e8df72870b09c3708e1fec4f8390228619d72eb7e483b46e134d981570852840de33937e6c6414630dfffcf6bf906791a3adc9321b0a0e97a21a49aeff89e32ccdf4923d03a5f00cc0a24bc0c9dd168c52a8782fe4734105025d40ff44651aa3e3be6442ff18fdd7e06ececc1a5b290baacec926a107ebfdc48313c01dd4471220b844f18780ffe1c9ff831e509b987578e42534d8fa70357c21046762cbbf4a3c65f4c69276d53d48a12b1327bbf53687848794444c0ceeaa37bfe91e79f57bb5460ad57810e65f495ce5a18091409ccee8048dc202e48025c424ae99e02915c3ae9f1b7ab2da1a54b5865541248155f13225b3943dc177f077517b688a573404c57689964bfa820841d7a9a37cd0334fdd0d700bf4d214ec7cb6564366281193935d6a2afe25f898f7aaab9fabc8415a69ce56920d52db4aa22285775e77e20993dee02eea4e434e58be8fe05fce7342437a94608289a8cbe362f97839a1439cf872c78003f814c77f58fe9af3425ecfcf3e413837a037270b452d1ccb6d4e80ec5cc783876f3ef9bc1e401d357c1b490d2bbb626f99aec3e951fd0fed02e552f1bf30dfebbb5e1a2de7dbd519ca12672810228f073ad3950fd1f2fada59b39cb8d8f52cabcff4cd7959d272128d9f6adf09f577b15bfb9f7b980bd4cc047f5c48a69518c63a53186d32c03f0c63075e457e75399181d9e65ed6cd619b1e283fc94e6a92602762feb63eaee3f4c114393bf39af78996d80b6a13acd27ef3e31d76da725f176054f17e703ae2fc89c1396e484b12fd94c9c1b0c5fdfb997fe40733d7077239b0ecca26369caf34f720d9b6b7679b286b2dcaadec980f3ff0cb0d4f137d0aedcb31b3986162a63e95a0de4ee029a5247e7900e677b40d45af0b062da3646a4847ac98b2d287d81c54e57639bd83960638570ffe371cc572e3555ce46a3add9ea4769dc8430783d1f5e31450bb93a085b53a7a3ab16c2f17ab7bec746495afcdf10a8a7101371d24203372b54c55bf1099f7e1c7e43118f9119b9fff631373ef1d3313a96ed9e8bfa1ac44a22f394f32ee7565765ab9bec276c2da1e2e50111b1a8a6bb46ed20cd6fd5c23c27e17caa13ec995c46164726c6747d9336e99afd723fdde057b08d6762dfc4a4ade92bc8d8e13b285b0c74ec66558da5b67e86e34008e81767de5eb490b81d7d44b9efaa1ee65035c7cc533765cd9fe03885499a09dc8d04986ba22f690e1077bba1c3d8c7f1daaa4266d8b8f033680abe29cede17136700792de3bc5810afd409f9e3461b7b41871fbdfe38b0393a1e2516a113fb68874946746bc700465ef25a9c01d704e78369b6f895b9cb812e7efb4d08bbe1135e1a3f9a38f83f6a73606a61012f089eac16bfdc0aa70a22ddf407cf017dbb239a5b4be1bcabf5204c59077dcdc29e738271a98080cc1aed3415ca8405497123c34df90354ef02a938bc6e508730f8a8a6b9c191f87d6a444d5a4772102d6a2c84d8472e0da8dd35e9f9da5bce334a8def1208ff763d068e35f325e294495b0699e257a0ba47324818d50215989d25f01756ffc30841baa5b2ee4df4620d2ee9ff0907005d229cfc2a9c75acbbfb948ccce300a45eee41ce1d39ba7b04f7fa8ae1e4042d1db9a726fe914df94a18b1e6ed6e16f75a214184dacfe64aff4f333204a92fec74c8628245438cff8e2e66aebe884c4493ba5e3d5c13f671433000d74ee88f4055f5cb0444e4d3a8374979fce60629bf60622f720ab00b895ef7baef3d7a31d5ba3104690d6e8e0382b37d3966f649b2edb6d24100243665b525ff2e71a2b58ce2380ca18be969943256e08dfc9efcfe89b2aa11fecefbca1dca199d249a488f26cfd347ad030ecf0efc2f8dd19470da5785b49d637ce7dd5968b79fb351adde003462c685d69bcf15a5242aa7718ae1f4401b04a18c3928d55d810e3aadab31bcca2f383961cb6ee7aad2cd482944d304b5c8c9c6d7188b6c34c21a2c69546610b5fc18feb367bf08f38b874e3b2f08bea653b1758264d01606a4fb2d999edd5465a54ae4ef6291e56e33f3b1dd2c60f9036ef670879cb0b0de327df6d12b6c5e3de318c309987eda3d29e063b99ff4e78c9566ce1ea69efb9dc66492755234b493137a06b12f44e143d3f53d59e0334b765c1fad4c62e6181f75df31ccc84c27c6fabb9c1d381fc5c757d73757a70893659e99d0f92850b45fa8bec24a715a3e2489e9e42ffc559635ca18a5f7a465120d4065297b697e36154841f404f0b838c5aa4f44d9864d0707caa41b9f09a4a3ebd3f05600344cbf5f6dddbf8cc59d9b6de999f68e52e7d6d7e9e7dac243c8b47b778dd79b3100d7b100f70c3e1b222f40d8242591bbbdd08be027925450957f6616645afd9f4fb529caa7b9c197b9226aff81de35033d26ae2b11e40cf00113f97c15f7cb563a45081511249ef7f0695c5bb5720165a8127df3f61db47f4d8aae4708be2b4762d711c10edbfa3d67d565d4db91fb18dc8cf9c93bddc7d0e9b2ef0533e6efbe36a8af191c98ea56656537306d70bb33fbeaac2e89f139344966a50a205785452996995121f76b5540597cc4d906f14d8b9c00b0edd8f96c839911fa64fb26f4e9270c65d2186c7432152e4f67c5e63585b28baeb3b127399c1a64141e7bbe7336df6c8620eec04480a05f466afe7764b6ded988982597b8ba2d805d1eecba9b48852d2ee226fa4506f8d9cec3b87cc816a57df133071e92ffca3027f5a78ddd3b6d9ff7292ea1f5d80bd218c6e04f441560888ca13222eee22934a09f358e7c426107f16a92631a6af7e32983a9404e3b45a67acb5c5a32499e19df29c1defe4e9a390cd6518ae523401507207fec907029302bc871b3e5fb7c477fafcbe95bdaf294a0d113e0adc3030369887aee176798a6da8f3e230902b944bdd9d036f5baa87427d2e7db0d775841d6fb1b69d06594214662245e09ca4d5953a3efcbe2017f76592a11ced6ebb43879e7365703c38dc6a6b15cae7293bc977c6eeb8e2137366988c6ac9e92e8c380db6899bf73af4291528431cc5d9fe448f0febc9fabcf603a5bce2869a2f714c200dfd4b70c39a2eaa2907bedf8d88108ea920549f016bf3d56c637c586bc900b0c35fa84f653105cea6ef90762464465fa23c44c58a7d12ea846c8a7663080a029325027da392addec1aacf82285b8d030b3c81457629cdabbee199028147f246870a8cb580a5a786b1ac05600beaccdeeb98bb5719ed116d0339e4e80a03109392330b4d4cbba19bd012aba3a5a1827cffea2257d0eb0262c5476d25024cee2bef5fe3db3cb56d5b6ee183f28dda229fea62861e80d3b5cb1d89b11c71e5b32a2bc1798736a75a3bff57bfd8ab7baaa772b820305e0b1a976621e362dde1099c6560259d73a8bf9f6792de30d65ed39731f81a41a7fb0aa21704c547d1ffb01bfde3e103159f2f23b6f56fce295e84844b429ef3f50bb5e1da1f64bd3a5b880f6414601862140bf484c572734ac0bca8c587d385b6a568d8cb8a4838a7bbcca4af853fbc8d6efd49baa2087cb796a268e57592b0d84aef7e39c67ae75526b61b962d7fa907e2ccb507e610ce11f50e0f78a563f1eb80f0f7100aa871eae0adc3d417d5f95958cf0d64408126628f8a9b6d363d348aedda41e6aacedbb1def18ece763b427bd11ed13292bdbd746d3e9f20e29e842743efcc3e0fd787a5d7c9f024b6465f96d6e5d4d879b5ce384095102f7b73b7bd6639046674fa7ce3c29b3ab379bb5a9a59c9da95a7151d2f9508a334349329c61f87d1a8568a11f81854c48b22ebe1a692ffb65bb9759b1cfea5291404230b0050a24112911a00e011479a2e06e45a8a2b488fd24ab830335d8cdf754989ec4f14dad96f2f7761a83f2e2bb17d37fa2a2e94f6e4e2dea90474ba508249127df879fe3fbf306eb614e6cce75da84278d2cc796ed96aa30d96eaa51848cd9ea735a82d9da87c26271f532ba5b440529c89667006810c480518f73b4ac54b5d5cdeefdb0dd53989c354ffac40d49c1ba25e151142a05c3f9024bdc7e1d5bed47765af094f30e791d3c3fbc33b11c9a80372f984146e0e8e8e8d6cdd748f5d0614e67fa33cb5816cf2865fb87b0b06d0366c6df141df51d144a09fd59ee5894c9eb8d05f6ff8794bb01b19943830107df4a293443d70c44286781ca05f4ad3f7f6d3a580882b0d5161cefec816b7fefb346c0a811a2746136cd2c088dd590a826ce1191e7dd097063fe20c8184512a77cba8697a8023e5baf7c0ce21eadbd1409b94065b2069f416717719be8bbdff45636ab60325b6e66d94a576acec6c7f281fa367c56ed5bed0c4e8fc0af423d1923cfc38429b152eb19646c6cab674a1509cc27eca20620d9eff96e99e3084b3e1ff1f87b7979fdde63a351100d7bfd38299a3e28ee08dcacdfda0e643698bcfe73d047abbc4c01b8fa10023d5d4009f478672f0b03e11a38294eab59ac56b61aa2a33cc893a22b41f4bea0943d44305ed8b9297eed16f98506cc73b4ad3eb6fc6e7186532b55f379652696536018a6de9e10c21ef0006c5726af7ca145db55001a6a08db2a9eef4ab677a9e602ed317ccc7f44e5f05390c079e876d6f9c37d827422f8a774bc7143b1e510b4e35c8406fa82990faef841153d3a293ed154652f765e6e4c21585fa9c42a7443e8c5df8a64c1e9d84d7191c2a81ee8adf5c702268cca97b8c75a099d9336a758e0655c3d645525b049469bbde34c706b13e660583b02b921fca8cfa63e8c299ffe1e95a182e598248c305bf09d81624bb963ce3d71437636ec954c48d274eba4ab8dd37815c038437c10d906e23a0a3616b89475dcfb20c4cf575d22abee558be61a8f473670688a106ec31696325b0a8f7e9a49e37dd5f90960a79f06f2c6c7fd29adac99dec666a598801237b3059145117c2198d062510b0ab980fdbfe91c09efee982730eeb32ed805258b85229016aa2704b8fe2700fc202aae8d11fba77034120b36d83811cc2b6ab8d2351eb575f663cd9739e0b104a987c00c74962bcd06341db57308854ad0711b3615db23122ceab44de6494358065d540c84f0351be2f58f1ace3e0b1ef7feb08e90541e6f75e77c978cc44d365a5c2394863f9f7891882ad89b6bbca1f36b1ef6350183ede084ad3ffd21e0f755c46881966f9fad4d98c40976b600f45db15047f52adf631d4d831de5efd890d7eeb69b13f656f6be90956676515896c86155f730e5fa6cf9d0999420c69744c4468b10df5a7fb374a9451935b922e5f8ef40c7e353f60b4f85fd37234ce61776332a38291e447153bebaa63bd83d6de9aec885f1868a608838794a3763534a83e7e5a5128a8c9c939e01c240d59589a96a8a43f7d231d3c0fadc2c95288c928022c212b28a7d7013fec7b33ce56019e16f8bd595f091b4eee658b325b41dc79f9e71dc19311002401a221b6ef328a5c2010c825eb4caee737ebbe4df5a945c46812b395fc71a16a80a02d454e10173b4695006ef39cccc7cc0eccab036a23668fc5216af3ad229ee36ec7de9f86f30eb18a7b288f6e773d8ec1062ec430f7d322c6bf364c3d27da34a1163c062b58a08aef7bee86461eb03805273001fbff1c8240499a00dafd5df8100931ecd2603f2e1c401408186f505ffc96e1ac41756c5fba4d754e5140e07e9de6f72992e2648f941cd19983986543ae755a04487eb8f3f04b3fbc9a15265c0c285cc2ca859bc6d106b259011544d25ce39c71d388b1763bddb4c8386e8278adbc91a4511c7e3cd1ab25021b0b3ce1616b00c9acf888d454dbf58c3898b407fc3e2557c8d89c24c7df935c6ce5297768452b1dd0ae91130c3af82d3fb5283ea6bbe5109e8f55319738374ecabcfdba4d807678c8941845baa5b58ae091f19da38b50dd9c88cbfe7ccd798d1623a748dadefb2a3b6cf81a30ea620ae5ed88b4b6d2ee803aa3f1b3a9f2d06b899be58b227dc37a52f7b265b62d3ad303b0a982a49a0d759b3c6637be28591902c94acac1f2adfcff3e02c679f150d867611ef0731425982776be6ed934cb916d75f842f8c9b7f812306f2eeb5bf192f62aac2a4cfb257b73f88596b8424c585c1b4286ffa1ca86db731feccde6d561c5f47f63db4b7351884ee99176de8d981eda6963a5fb917d0552c474fcdfd674cfb69f8e922624a077ca9b5fac36fb4a54ea69661128a99efcf3729d54a3070b744ef93db5f5e3fdb4c3d5f3604e6ee3e9ca3a757ae0b10232a79139dd738431aa10cd7a65c88e0744188d65a9ae177645ba141950911dd5c206101b3f66b65004fc095c598af15c59f840c216524dc6123a14157113e21ab590800d23cea4f668d3e55f875efd8c6076b01e5f1419f2f1a9c73e248768f35c30d3c5a16abddf58ae1c38dddef2a41795c42d3db8c7cc6dbdd194965274e2dfc402f9e85ac28955348a54257c758660075681a2bfd3e173ff14b2b9b48d9c3d1ba5e1756d9f3ad647dd9af61aec61734baf285af5035a6c532625865b9f164f8c0f5d58438c75be026943df730f277ae1ca7c0de7f00e41a02755db581a02adecc512b1cb3beeec8ff8ed795ea5847983effa6409549d930c38ae68e83585dead757a2a3457d544bf17aac1819f35ba020ddb0c081355e834343920575603e5b105b92ccb6b238a16a159e6f4c6935e420a3bee7b17e8ffb70918398f45adfd2ad01664af4360a165e8465b810e17e615925ea3394ece6158a9e8178f0e9c80e50ef1a3fbabd34cead90556982ee9f3362e9fc26b1ea76023c73e3475f30c849bcdcfd9496a922a3725bafd1cf3634f027f4a1a3da71b59363d27435567d2376032f076c9d8bedab1482ee02202a2a1f5e8117877d39a2007bfd9c2f4dd9009167c728749c413abf85c7d7ab00cdd873bf9aa79c7a96750830a67c46851064e6929d431175bdd7332f505e866a71ec301b7eccf8b4211157c610f37a44fe5bf500efee7e2117aaaaf16f972dab2f749a443836b6f74a67f3be0e07e35cf940fbfa3a825d64aaf18c528196cfbebe585ea3bd659d851617bca5d366754fc663d631a11a2a1d756c15a55e8da0add39a5d61bc2b0fce60837f54aaed7a3c9be0b03c247eae999e7b931023bd32b85f5e414d3c28b6a33fbb4f2d26f18bf466643d40c65bef6589a98adf9e7211f2f707aaa034a0da4a6e9b142187fd0e26f3e824f43275d88e6d2b7a8cb4272b3975f27960d9122a3b28a41f76dc808e0569a6c876c54f0990230b0075d91788d9fbf5a3655d73b4cf2cb8cb8e93b29807c46cd6decbd16004d2cc63e861bd40e5f6b93bb77220254483d4b4b121d40afe4af62f9c2c6504036d51ac6bfc0007cbb64a689318d9a65b93c4b4f5457c978b29ba9082f39fcb1b4f09a8e96ca9a2520542275b6770b2cc5011fb023c0e03c4c4be9cd977364e7b399a0c1a8195dcf4e692e823b2df9e01a4f7f3645b2d5974b8a9065d67b861a1ffc73b40cee91e2cc9299c19222b1cd4d2d53081cce4e324cf04402526dd8369e8605d33d3e28356e541becd6e0cc41be3ad45109fc6da720d5c3732c27ce05866f1b44c988d32bb4d0b000b8cd783c501b1cb3ce572714829daece530c33956c5bf8bdb78a6d3899bd3d389e80b14a9d9f5a77820d6e8cdfebb7b30e5ae723a6baa2bce0c703bd76a771ba3e1871adf1b1b602664c3da22854f69ed47ae9141274d382cd6caf1ef6e57b67c11ac41c666cd4dc9d8cfd90c4af3be35dd618648aac63a1be9e429e5ec92fe9c00223c5b88d2001358b3aec76e9aaecad9ee8f2abda069b8ed3cd4947bd2c871cb42c8e2c27152f4000262a49ae5737d1cb22e4f5248d929ec6e61cd0691ea0b43c9f521f20894e04df03192aa2ca091888299f2252d4533a7f3af44f4b94d70dcc6682fcc5a1e10b95b456daa61c097e1ce0c01066c29a5ff6a50b0590eb6182695b36b78901433f43cb8a03d3067029667a16cf3bff09ce1499a1d0770ca1a13dd7854fa53e2c4f93e7bf65eab1bda462dd0cf37548a844268bf3e40681437b7c3f2d906c7267d114b2365ba9c22d4992ddf21ac0a773b4d902f5317764a8336973ff9d8aa6facda6d0a61fdddab55eee3999fc24607d6d28abe7fa722bbeaf6216d962ea7fe7e732e78ab179b83f67f2d410ac6a796a62e10fca3cb18619165347184263feb12fa5244bbafa89da57dfb14855879b0cf027eb31aba5e2dd2902cdec91cd76f2092a8f1736a83964b156194e90adfa877ddfe4144ac11d962012ca6f4847eb29274fdaab0d57851c7b796a22d7d08c2b33f51aefc327b238de08e0ff3fac7f715d4ae5f0ccc85a8d3c3362967cbdc43f40dcf8514215db102dfb1e9788f3f9008b9a7eebc6ebafd8740b70239cde131fe444f564949e3a6fb7bdaa9d6d454fad4904ebb7a1e4e411797c2b6cc6f9e286a85b21828120da5efa6192c8044aaa455a54f67347f3f41909c5e90161f66e7f0be274731933835406c78ed9608e61c2bdc8e2481b50d91fd9ebcbfe5db1b381490fcb72cc0eab4f1edc2771e2e03033c3c043a57886e939c5aef73f147696a2f77997e354b8517960ffcd8f7a01cf8202f9281da60b24dd3e6183361dd3cf53466efc0f99b681da4b1b7f33d2b9a3733ec1649bd6d6c3a09ea4fefc0dd8ffaff9a81c0f20c0205aba76ecdea9cb64407e6baa873b1647ffddaea675177b83488c30fbc0cef25c72825879902b99ee34d79aa75fb9d4dea93a1c2c0e9f746a568054aaf540eb9be79c6c43a582751f2687c4fe053a95bbd8c8e3506816de099c76a982b48b42988fdec1c12b17de824af812c80d97f5c7fb88e8032cd085d33aa9ed010f3db83c1c0e98df726ff0c956420123fbf4f55915613f04f3aaf24b0b670a047cd14246d05bd0a44964e05bb4057ed9e03d89e259fad7aaaeccd05a35c0a1feb5c5b25c8c79edbe70595f977e73e7fae9507fabbc755e165c79d33daeb00a8f5ffa6a93083dc0e4c66b70fb3fec7dcbee5cb4210da37d2c22d32653fbdb6643e64e7929d3fdf84041f99b1e97f3dc4ec2ae9ec1a776ccb3cf93bdf25333320e033040cb6b752355429fed15e6ca82a29152b223fe972cebcd89cd47fa787950543e52f73cd6078d58e7754e90f56fc39937a80d82bd8ec67ebecab579d4741c712136f80dfaddc9a4b42dd8c7778da57880f44d6175d3c2b30409da624a35c9341c2f0d5756402bdd4a3b54c13214babe085b7eb3b296b0b0f551551c0d3f21e214f87e0d9a4020986a5610d4704db06ad821e6ab48600c47498e6ef2fb24cb090e545090969ee2140a79f31adc956ea8e3419910f7afca42e8cf6d8c3ba0f9c5cea44e567cd3d9c611ad80ada589afbe10e8d433d15f627f5a7b57c15795d18c775b6217fe520c404b1984c6b66bdeca5a81882f9640a7f8064152ef1eb468786bd2c9966789ab149e0e4844f019f7545ebee67092fff8a1d128267c5bd77faf1e94c388c7af750224c2ae2be461077eb163f4ad9321d0ece243ff669f2a7dde69b6b075b315bfade8081488bb59ff88cc00cfdbfa4d6cf174b5d7e69735a543afa682f998ca57c8dc8383e84b4384f0b20b55b13e550f68991873c6b90fcde4a6f632959c20a270d41da2bd9aa93537c7769ee70ef3e5a0f2ae82b9baa9c80f1caf53e2a9a1038b8897b700437a0b9e56c8d901bee85665d35cbcee6f2cff3ed20a4074755fad547576516f6b4cdb6df703e7adeed7e31df84b9ff2661fe359a90928432aace11b0682a59582265d0b914310dcfaf014ebbade474885d487bf2383a50293d49dcc3a39d29cff79d386355914c4db0763a43bd55d4c419c5228191f2ddb42b3d4e316f204e83b2e8c9bd5412f74039ac6cdcbafe37cdd8793f8133b135835f62fd97be56ee3674b24d5901048a548ef89a8e787137cdcb40d2457fd25d68e9bf67b92b3648fadd89568c8d4612499c9ca7af15b84d3d14322ab73e03adc6f8d91962ff7aa3deb24547a4f3c18ade99bafb6a3036d1de7b19bb93833e28d1849aaf9f8a4d0fa776f1a22a0151ca57d8f9ab036ca50f650b3ed856dd783179b9c14e279519821dea08d2b465eb583f1148f8f34d08c17e250485eb9d3911c167486af301e8bd0241451c77e4a2ae91f3c168db5668e3856c62089307cb613327b938ecde5ab2eebc93a208dc3a7644b410a7621df002d2a822378453b366cd311d09e70e1cee4c666fbdfc71ca29579b07cfca72ac18fa5413968dc9157be09ebba550c459b78d5e20be6331bd04280b4c59c55a1e1d774f40393b9d1509f29688cbdfe54d69e1859d24599f32d95b84ba49d08a25c4e96a09b48189e6a1fed078a62663508803b398cc45bf27a3c5640f371e3146e2a1d6a025a0de9d4d2f2a09d522376130e1d8b0a810eae804f0252443b47c9bbb117c23edf6f0edf324291fa95a8c6de15bb81f002b43dfd9a62d464f40478951e4eecf46dfaa1b25030fe0ba489891d878d8f5cac1d0fc81106abed96ff92485cd8d4e6ec60aeaa6116d10a2384b63320970a32f06081322bab7758a217dea3320ae23d4f0db540bc879ecb61df6cc98e15270062af801fb38eb1d82babb8919f60e22479bd1f26da378478746a571b944f237dbecfeac8ee74f586cf26b0e3adc787e7723b25ebf2b0e9385d0c57209ea6919d5ead563714cc332d778ad29f45af927fa2e457f2ef72c20b4800246c64eacc51802225345da72937df01d7437d7c1c1124ab474e1fd15cbd489ef9fa3ce3bf12a391e3f9428784355568014b579e38a28c7ab818b0b42658266aed12b4a5a6c18883a86031e87c38be2d8cdf070366a095236c2401d6c5aa789d20895ff398b5cd31524337f50e76e139fb9b52440f16aa3ec4002a5bd0990f4aaa6af7c0ac0a9f697517d8164b8b31e1bbfd2d7e4107cbfdf8ab54666b14ff4757160ff5979c8f411ad471c04214d5c16aa46561a0dc8b58ec6550af2b18332f4842ded8c78b5d39ec23079a7703c31440e7bf322f6bdd2d98f17af528d789220157a9e668db91f61ba6ffb3fb54d65e8d4c0cd7ea4ad2f6b5950c15294bd0233aff608300d2ee18d43f385147459d2a39e373a2f4bacaca6ac0c03277471d869f118f08b8e58e68505dcef177d2ce0a6e045862952b3edc0efdc00aad43a0541a9cc166d9dfcf121fd5dac160bdf8181c3e81e1750e149b4702d95cb4362648cd74cfb42eb72ce4c89d25be42889e748ab4f616d5bf43fdaeaf8e465c17ae2aea9233922c14036ef7fd8132888b0350ecc5a72c0241a5d280be6eb01cf4614be9a334a8af6b8deeac8cf3f149551a89764fa2377bed56641dfd4b23e69cf395212feea4ad2a5cbe095c01b0079a62cf544a658a03efb43f1cbffcab8a4cbc3b23ea7bdab9843d8c472f7b20e63a368c0d059626ea88daed6f2019825e51b4021cde9e0e4c7516b9fb99dd811ffa5e15a5ebda475b10979395c6b7a1de21069c46294dc6321358444a45988d930b88991c09bc57258bdac42502a463f179c230c81af404ff62b9658543a8ccae34f7a806d0bf94a8326c0262e8848f76d617f9eb4b212b6e8224e74da731f4982e88b32167824a90fd2d8ae8bf01fb264a6d4001f6e4e5e829de354861d8a075294f7ef7f3d7e8ad0edecddb0595e2cf0ee364acbfa5b87ab4fdd5ac15cd3ce56e1d0381ca773195b888c5b8b9b9aaa03ab67584425236699caba3f9cbcd66ea726a807965876d9918c0809cc59c355a23b9881729cf5f5294426103e47da6da2ce61c75b294351bc6faf49eb5b7f21c9c3395be64b6833bd8cc176f33b9d4ef6fc2a700e8b4670b2ecb8a830828e0eeb58023e842380763bb7d1ef8c9f1fe3430fc24e205a811e21c1752f1aea06e4324096f9cccd50291a91c2f35d172238224f7611e577b03578cc030419184578e2a90b9e074085df96061337bf201d905c2f3e586695735bfe3a9d71018127e575367eb2ab0ec2e12887fd183290275cca0517b08292b7e1b7a10f8e09334c45303c13567d445876bd9ca9ff014245c9cc7f04a0095285c015376216348c88bd8a832a3c21b96e427814311825364d6f10ed3f19b5790b92c59f20dea8f9c68f583d10cad488c7f8b9527deebe8fd05f97e2c76a7cccd05ff1bbef186f6a23fb819ad156219a354a95fdb86f3976795f1696aa6d9968791ef673684abf44469a372b6bb45462482b47fecc83a85abf84eef95da9f27f87e9132ff367cddc714e5b91efe4f533188bab25eb5a4027e3f37db96f5fb90d7ae797c09724f7f2b25672773698eee7eefbdad27d671b153c58da99099a87d4098362f2aa22e21367cc6db33f8d6116337557ae77201c4914da26d738a33f0f89d8fd3efa4e60e99200424f9d75a2048fdcd8fe884f157f47a070d395ca0876114e53fff2199bb6d5b6367cb84e1fe1624f951df4320e2e2a3051adea4ba5612f3c133907984190318553fe3cb9aefe880a09c2db6efd10c76caefabc66cec9e14eb50dbf81d8155e5e66caa7a1785e17c53c0f5347fd428032e0c520b2c75b9f52351cf19f3e045c5f55a5dd99e5f513165f13ccc6ec3f6b5ebf935e52dd46b7b51b384bda30adc827b5df3d3f4cd8ec3f2676e374b9798ff81c107d85ed08e910a46e70b878a2cce5650cb41f1f5dc86776daa2d262b840ad94cd49fa31be180c2d48578a9d175637ec6e13dab80812be78386d3c1952fa5459e0683785f2b372dc9b4e34776ec60c184cc4ea1e6c41b779a2907b775353a5028fbe4431b2fe157635860fef1946ba547b73077a2130c1c70dbd7b621e6a9a3d493a65447aca72070930d662170222c78712c37949ff59635dfd0f361887432ba77fe97733114db317a83584ffc474a4678ac182f2ea8cc83a80d06d4a4ebd0c40fa539e39995c6271e4c5a8e46dfc2658de03c4d3af9794118ea163532040b03be4648f75cc773b873213476edb8faa1b2e69891f90945815e1610bd64203503783f69a8476ac40e6206f9030e679924da61493a5ece91cab350b96c157ecd41062b98515100bd1336822f8ff0756e9d17c39c89efec77405d5406a306f2f2179ac3f964212c709e9ff7cdfd0f4fdb3626fd63b338612b8d741c790608caf7a71141c6d1ff67b5a47ae668469edfd1c425393631efa58ac457f236d9ea287b7b55b2757d2d737b393bda7af0cbbc51f3536e011b5958709cf48ab8eede64a7fa3f6011f9624adbcabb14b51faeadc21ac1a217b0b0f3b8c8943340c2c8031319cece68b01a4d6479f222ea8efca2b4081a95af2e27c6b16e8e28c055a2f02bfd084710a97ef0a5d9c5d2ddb66446d668584e7a1c7639e2307508b2538e76b10765006442d91e17b2839bfe1ecf69446c5fdf26b17ff8b7135f6e6bb74a3d362155e61433b73068ac442bc690804ee66ebf4109a4dd7ab8733eb7a791735600a1def418fb186a4702fe4fa1839801817e5bcd565d0d4e7c8b33ded732d7f67ba7c2614902379eb53fef4fddcbd1d7f53b160a32eafa453bf8ea0d50604ee124c388053d29826fd23b198914bf26223e457fda28346e827d50378a78afd8db27d9d00c6e81c1d33013643e740401369b627cc79c6c8db9b695fcec3ebe2391b506fcb91ad404e1211eb5b67b6e950cf40a65dd939cf8a116b3005f87c9e122d64c25d82b3f79190f0d6c87e9d2155c830c8b605ba84a76427ff86b6196948d41ca0431b7042e5f6cb74f30d2a805f418e62a8c0a9031a447341ae6e44b267cf41c2056b831ee4c5aaa3a5755d9e6638149f89f1e40f91e9f5d0b8958732736995b17b4110f19a409b8d02cf8170bb4a162c89273ef6369cb57af9a1a39622b0a6d7fd8f4d9a96ac13012725025d76e2906e47110520609ae8ca2236c160bb9195d0c3e353f2886ca0dba5300a3d9c1c9c8e5adfd95e8cf268e7a504195eb4709ac5a6d91aa21bf65e31d43b734af3764a3d21b93e1d962d56513fdbe5a7f95561d766fc6fb39aa20c63bd0ad125fbfd44064a6ce5ec9221c3cdd441404a5c840d4a98015807c867d9dc5c1818f97821ff426dd1a168112f6c91378a0c5b0efbe007f899678a01557540f73e9cecc7949ecc1e62d609b1ba02af960f81c0c5e1114e34639ccdd77410477f7ee100b9b3d76bd4cab932d34ad69e4041bcadc32dadd5dcbbda91d5319c326ae099524b477104cf13588af7a1ded4153d0d2c9f612b666061a3ef690a099612bf11e29c554ab43ef1b7c83312ad8c31b05afb8b0beb6802c95695ff1f3f99b3db05ad0d6dafa11cd3dd6178009e3506381c1bbb404f31d80ba7c2fdf5c9a0421d78da53ac408996cb7d3600e1499b75a5478ee1b04ea123cc19a1e62fae159c313865ca75bfa770083a2726ee14f6cd53433389ab2483b846cee2a7c5495e885b2e4ed53ea5794d205c3a9d15a845f38427e4c2c9a7715a15df593619192f775a233feabd4d2df0af96e5317117170b6dbfa46fca8c557c8bb523fe8a484880a8bb7ae16b7452428ba63c79b92d23261885de1b45e112d18375efbf7129790a31630d09be1347184b291ead47938a43ad70c3ca8205673aac46c3d1eb0e8dad7112eb725ab7d79f2b6fc2ab36c1a18d42d58827e4f0d66e982d60d758f5785fe824f39f10d8dc74a30c7dc994894bb927ae37d3dfff04e12f2fcd1cac8fe528cde45434270185439880fc6ce66b2c3866fe6e7a1448fe7a68d8c21c14c939adc33d2015e5393af3cbe52f46684ef33e6e6f3fd91ee50e9389db1cc1647966202278b96006b342adbc19ce367817f4b3f6c7757ebd1bc3ecc19bbc52a1288c8870f6624c23851d27d079e681297fb8477bd71fb75b14c222803ee5bb71d3181bacbaa25e36afb65e82ba310779c3872c270d1c353b769242fbdb86f5b2c1c739f5f17183c0cb3ec1121cbc0912579d514fc1a418e8cf3a4610b7d7239499f91cbe3b1f40f37e04afea72c5a2a89bc9e40df7a932bccfe05eea3f08d7b075fe0dac24ec77423910671a4b2bdfa00001f1967f61170429c28e84a05c1a2735a8006dc53b2fa0ce62ec497356100c6cc0349a8cdb141871f642d3a7cfb718a6a0d34720732a9d5143b691574b8f8da74110c47fe1f4051fd0270c5c13bd9cfe473f9a6e3eba5441d20e9d2ab80d9ed13a497d3aee0333154daa9a78e5832e60835342917807588071e47fe6d4cb8acb0e17111bab98cac851d29defd2505a5f3b17fc685d2c9f9f741c036a46d2f91bde8d738958590f386449bdd3faaaf5ddfcee65f920a30c88d7ef3323ca130480f9d063aa48a57835d76968d5c53f75d34ff2ca5984a796be05c2ab641f024251e3385077c35ff94f67735062e8ae6d62db29f10dd0d432dcd3a9bb1deae1559f24c54c21ab0d0edfff400395f336900e64f6f640f4531b9f76e6daf9c242d2a5a79b6c6526335f21ff942e888181ded270c8e6fb0e8a3b3b032411d86920e0d9e656ec98d34c2e8c2d290c52b406fd878200e64ca00ab66511ac7807beea900948e44834084af5f3ec6f8d1f0f45c9dd7b83a4cbb106238bcae91267aa504f6d4856a9150669a2e52bb2171e64ad2cdfae5fce8ec77bb3745df0cd0fe5906c81ea152dd424e67317e967c30de8a16edabde240a9df40dacd2acae7a7b987d0fc0d0ad11fd6c32add2947f9482f91728a74054e0b15cce9485ca5baa69bb807f1d3f241ec74096cfce5d955edd364614782ada64d43451e34420d8272d966c67f39809828a21d54a1f495b1e969e7cb23be86f1babc7f78f9cc4b51d24779820618d749dba7af45de576dd7fd523080e8cd394df9ccc69c86c56570e6100482bbd159a1a734d621e415a6751867d7acf293e46fdb025716934a5294c40124771bcfa2fe95b444ec7b482195f11cf91d5ebfeebe8869b2ca26f6f9e5e82b61572675ba292aa53c753fff034fb1001d25860791ae2393e2eb3b6a58c28251085cc377eafcd028ffbb0a0186f6eef1044259fcd261bf00e7d8a8a3acc81ca8c41ec395fc9e7b47f5f4033574e6ce57726d8164be4548ebf694102c103e3fcb407e921dc05f827cf06c64ec61da599e616f5d828ec60c2867ea5c89853686b874288ab7271e99a59fcf3bc77a07f945f336c0ce787058d12c72c50db81c381545de7c78d1d3529c3858dcfa692939e67d4159589b1ee376fe4067d4114d0c6e0f4aba8398e1ae28348facb96e4f5c72076df225d38c04f54398a6b763f6b5f58367bda18f8a4ab6cd3cbfb6c5fba61bfab479be7df562ac0ca8d078dd682eda79d87040b29242515a4854f394a688a2ee9e4cf63b5d4ca9893084270a6d8e9dc44b7d68cc5e097dc1f34778b4ef4d2d66c165c13dcacc567b1e31f45f5148c1df6194916c9748f3840164af0748d148d4b47c4220d59126ba04f2d92b7f9b31cc3f352455d1154a03d4d7eda6eb8b99f14307a1ab0689cdc3aac8da1807f20e5f4a65b43925ad7973085027e2d83325ae47e85acef22e74b6a1509ff412ba400ae30a96af6bab490e4fee8b14ceafd81f73aa8d13cd236a948131c72e519ab8f68e1c3f1d89f4ba95b7563698a07e5d806a83c0cf15a8d0628e7a0c0616ac2e5b0e11a81b04c2682f51f77566e2cebc4920efe14c7cc377db3fcd40107ad10e0b76c8e29b1f1eda9698e57f99989f87a79d41ac73f9660d6536388c22543e6fa9032ed7b26260c8f622402b707355c646140bbd0a7d38f141cb15ee671100832e1f30c743d8458c888ec63a3bbeb5948ad01b21de9975e8182957ee30767309d182fb2de076ee79a8ad278aa51da6a6fda78740ec6847678b8e326109449841c96c6b047fff7f02427f557bb8fb616e488785da21bc9c6cd8c0fe87986bd7b10c30cfbef032c3192dfa74d55985f0d034a9668421b500268240cdcc0c7999acb3ff31e762a1693d16fdad5ddc2fb24ef342ddb677b4ea97090222d597c07cc00f95f5971b1d01616334353469a27c8cf71ee9815b2a238ba81dfea754e0f9477a0379ac01899dbc2ad2afc1dcf219257c89bf7525750118a4032673516efa2f5fe24f3a70cbd87c90ce8da8054697684647ffab6e0940c2624546a2049149131f96ff6e9e7e376429855f243dcb061da6c86087d80b5ffbdf1d08c2e128c9578e2c6db63cc76d10af7a80fbce4ff66d4051a532a068d8adc785a6c2b061f607b7cf75c245a6ea3a2a8ff8c8d77461235f8708928dd083e2294e04ebc0dd7ea6af88c26038381d5a074af64d7d8212c537c93c207e46662a414dd3b43cf52196ef95363d7560ba4ac2b575fb28ad75830d1fbcebffbdf202d04bda59b30941772f0d50578ada871122172e65a6097af2dd63bb9c57df2047f036cdd0c0359b41b2068f0366ee63595536f180f6e83b33913129e68c79c64e48ca8eefe003feed94f77ffe722d884e26b2d6907a97a98700aaa5e2289e4457e817f99de8890e7eb48824352c051355e6267015059a8ab4bd2a891cddce5cb11aafa08933b399f838f88261929a094cc454ae55d7c0e85f97670ea29ba1a0e39cc355bc2e37c99f8599d19b1077c9931371169030cfaa092ae8cc7b24fdc3d5693aab9ad0fc176f1d17c13e2e86bab7896639130791bf3361ea539dc54a9710f0c74c440cdaacb1bef878f77bcc44f719fd706a87f342a1543c46957878d37b839f242abcbbda0d33665abae03e6da104f8dec46fadb4b578943478dfe95b5244a3351e2b858cd48a2a815a5ec888d7c8b851c5d0ec0b75a28ba6d1f84b59dcd18f391e7e80cb7955a432619090c17245702acf3c42b119dc3db105f72b6605bee7e53cae028b3221f7e419909ba2fb9436a5c58457f01e5733a4d2b968409776df4c8da5e3881561630a3dd4f4fafe78baf6e5e88ae262ff874e5d166f241f4e653dcf91fd2cad2583738388e4f5dd2692df9b6945df19f56b6e9a1963ee76fa1a7084046cac257aaa9af6dcaef8f204cf4d74f7101facf633e74908f260666476b23666e5d4c44e6ae65192a9a7fc14b800a59158ad2c8d42ae25a2ef7b294f78183742ee775e38e58b973520ee032764e36f2233d69f0b060913060220813cb24c9d4f7b92b2d6bd698a79f610b087e00886df9fd897a015690bd7235a3b2ad29a07b99fe4b3e09c92650a7d7729802c8fe8d1113457ad79dcf1d645765fdf244dd92feed51a2f691175ddd4487e6220e4a96690d9bc4af8987972401f15b291c631859f87f4f2c44f4509ebfa4ab72812d78f5fdee749f082724112fab8a5bab1166863673f8cb6c5b95ba807715e2f257b39d55e2a860beee39db8a5a5f6ed7fc2187482cc887c483e2444724e556ac703ce891f5bac901b187684345cc65c4d91235c3cc1ac262c0f6d713b10a537396c94215778e53e35aca5aa6af40dfe43729c3b3a9487dd4a21a0e2f2d292e8fa3abf9d6faeed3db273e93aeec538cff5808ca0e225625d35a99c28bddaca58657ae64086e0930b5aa29a9105af0843fe1dfd4cc812ad115cdfa3f0910c0a7211efd65ea2199ffd60806015cf592b60c1136080dee7a61d71148fa66583f7bcee70b7290d559c32cd3dd28b870e70214e06db43731e3cb537ca554333bb17381e0eefec6815ebdd4c21a38ec1755711d66e4a892a40824c09dfc1276631dfbf7618fc2c29fffded8e7401f032fb4cf5e8e0a29fbf6a25644e92e1da2f372bc75ff346719ef362368d0ace18c1fd2e2aa32578292c5cf3d8a9fbbb9891f749e849983567e2519ef4a8ff9b9789fb9ee9ca159a42e5d1e20e951c28349b22496c5314621c70b63fc6c8a115c7bd4404051ee3a1fdd21c47befcd3d5e8d2830e01d9c706bc72e8d1dde6430a828f604d0cc185e510dc61b5db5f974ac1c6d7cf132ef28144e4d2d0dee2e2fd78f94563db4f2a62b034b550fe5e17411d959dc36f9e3b82276935009d54226f72d1a21abb30ed3f5df049cae83c7e6446fc8e5de36cd03768044b0b0217ececbc7df163b8744dda55a4b38215c7ae4baf2fbbf145f1c5a4c5ccea15a7a7df1c59ea51ff0decb87c135d9caf704cbcd1e7d6857dcc8a7d3c60e684dbc0ac9a00d7d8f29450bfbfe76d2a2c27c0caa3d9549c07f0be049a6b7dd8e4f52ef30939d7146529a08fec66046e2ae554a9bd45211e7414fd375b505558d26f4593522ccef4b2e9116f0d4fe2aef320510a280be0c9ae9510e55dcc0d27958bb4f8384504a1d59157b5386142f1ec057dcaef4c3a55c36b07f3f6d75c200d4f75a88bef631381334734c516cbe336166a3b870fd66510c7465876949428f2f424214497cfc71b4b8cd0b9ff64764a3dcc00038fb2eb9270a4ffc4b8cb8e60c9cf500cc7279192f51a6d6c02c2041afd9216b123165440748d01e4380bd1636c3b05e5106f1996533c7ceda1e88e3f74b64e34c81c32ef7157e94fd203f470079e2db49470e8451149612d7b480f365a07af630bd1e36cc19a698fcf7c8e7d93f8b6ecf805e663fa5de699b7831ae380deaa228cd60169200aa63127c1022869d7648675595b98569e119af78837507d86fd254456d93816878f0cfad09471e39d1a05fe05ba1d5fa713020f170579b5cb492d92d4a37b54f1e4e282656039248d82c2eab0cbbb03314f247a8dc672c0d69232329b8c3c784de5d019bc79f7081284f47fed1ccab5c7b6ba3fe3c4bbb4b91b554feb73e1dfa93a6d755e08f5bb39f33156ff3565b3b1f4b348e0ae7369808a629345dccfd17383bf000df404599cf22eff6c0e9bf69c839b10ebe72f3690324960407d8f9c1e4a798a9a51474025f293aa41b84a03bc24bccd1c64a8e735e29d8f92d11f3989a50b5513c057f5f0cbdb5af452818e27123616e6e388b801adea5e694d528378222d118f58f1ad08197a6b15debb775dac81b466814d4daab5539a337c2a46ac50bb913d7210ea61783350c1583b5086b3ffa65bb372754e980923090663118ac9541c6ac0078879e3e97be7af93bec270a31bd35f3cbf5d1fb0c09f6d4fc2a2f445ad25c67578f2e8e18f9f576622bb494f9a7132c9d73b39b9e2c679e84eb4dd270a1856083bf77e8d37a78d89e0679c9baa3020c860c1d175682077cd5f29293c7086e18cf3584f3dea0e130d467ae27385a568e215aa369526cbc68641c3a189715cf4e41f360fb6d47379511de56b9c0da11fe34d48d6a5712266ad8fbb550473e86ebc544cb6abf1a7c100709ea76f5bc8d1b2cc6ad490006444cb65f7584ad023718d4c118f2aa5e88ba30b53ca35be51b0c2d3c5091cf020363dc3864e91c3e44cea6e46b1c43b66277c9ab0101d15ee0b30f0f521820702e4e17408b6abdda589dceb2a5f4b696dcfd77d252e454cb9e482627e2594d1d611aa5a39376e8ee8909cfe00ba50043b3e1c301a30ab8b5d470ec75f48578c530fa730b61e811a1bf5a827c8a14a113044fa25e7e4b3810e7e93584499fcdfd290854e25385f67b786cacffdd171202084938d66ec40ea33dd53145ac473fbeb58135678c86617681367dd174832240560be4c7b1351b131a3255ce4acc2869d22055cb1029ecba267456af4178957fbabc1c82157a25948d959cc13e90a759fd8da7cc0ade44c76af854f9fabf1bd193443fba93f9bd60648c2df82467ee34363241ad880e1ce3eda9965318fedd9bdbe0bcb7525819f1a12e90f0270435b9809a8e6d03c9472d4bee0283f87dd28990baca3d1636316ace903086f897c157439356d03b947a57ea330e934f48a965fecf6a4e98585d6fa0158724bbd3361ca336a8ccd493c6af6b3946bc61d00542c52085f0012d682682c6a25edde63bb5da0494924fb920002e30e60d8f3b164e4cbb8439b729c9c38a2bead2575b59bbcc31beeb288897a0b7084854ef27308f350240cef66b0287348126fb138f678742d31519fcc1d300691a961130318df5133044d7f1965bf73b3615d98491a649b3ba5d13931e584e6a03ab41740cfe84116fdea69198aaa1ba0449566921ac5259a3146111a767dfdda3b2b7dae93c233db3f45ca6c99423522e1b036b3abdafb306aa2264fc32510bbd69c6d90ec09c2f2d15c9e802192abbf83834b1c6b0b079d233dcede5ab70aef248b7c23047e527f77ceabbfd1d6dc1109949e29a056769866eb8178c2fb8179cd910985c015daa99dc5a86b5fa2f9bef342b41f635f1ffb24abfc646cf5783643eabe754f4d79c7e4b5b805e336f01e4d6259acef1a391aa6c8588a36009f437fde9d73be4914c54a93a56ed1636349750760c2c1cf007c747afafb7ab33e11498647df8f2ff5a027565eb71185783b2ea5ee19f2c5166be10f96035c62d6ab8dcf90511c37f9cbf8582a0a0c22e9fd09fcbfd479fa7c72e7cbe6be7f682ad75e80672d688adfd88846a8cb756150e2c2bce4c4bec11f148b24a3a3fee03fc69bbfdb8f71b19a0e5fa9515491438104786da59b32633ee554db9ec4054f37570795e94c1f268a3ddef91fc06e34695fb99fa3473dc6a4ddd1400379fbad8df0a8c022daaec4f882a484dc712798946474d17bb2ad5a5b41d6d4e94e282b7164b98a3bca9d5248a9ec50820ef534d19ea46c0d3013a1a8e7b5d7838c52974b245e877642f9a886900ac67b0dc63105d477557554e045656ad1e2e92c595c58daf0527afc9e98b096f6c1585bc41d1a931a3cb36e385afed3970837851347e49366feaedba2320d5c3e57fd6d8cc85c3525d329f218c433ebaf4be4b8173c2aa07c2b9861d28814eea9545fb18d612f88d06070ba2443a313b684de7579de1540423ac95e7f1bfc29c68461955bcc352272ad79d9cd8df1ee41a8647aa50e100c09183708c4140d11e516d2c73f7cd5ac0021ae63fe437d51425b655cccceffed2141b2094ff99803f3ded332f027a09e501fc4c1fede66d7559c3643c69f4b6db170185f19dc49bdb89e331c13a798c122d40493cc8baec5042bfe5807158a85b9e9cee4d8ee863eacfa562cb4569652d9fd2b13afe40893713e171f85a248e50e45f60135b4c8d8a9d55347735ae8399a8d5e5fb1b86208dc8d72510dd07c15167d627838ad0f2561b9d4ad13a1a671539bcccdf9ddf50f4c61ecf398f631ad5dcd2f9a00556b813d68b60e0a31bb9e0bbf504f574c81670359e9ae02c52f3753edfb9d0d1a4e9e295140bcd56b4e667136f9001932e38fff66de67beeee9287e1444fa848b63f8c354b059b197241f3df43b47e016fa6d27b74d5f3ab25fc974a3ae97a50cc20c1e320f8e35ba3fc5077542053fc202ab93d455d9b0358b4948b35596036a8700752ab9fdc488f2907da46bbf53286f245a340e450ef590d18e4b848d44fe19da4d391e9385cb4cedc204ec6ab564a4ebfb61a771ccd37d01c0f3855fa2505af17c58fcf0be69dc559efe8debd5cf067d627781e407218c34943ff28e4ef6ad2fab099c99bd325423c4ee3d596e05763e180aaeb53681c90d39a5096ae0ebbca3c3ac80dd8ce003257138859286e9cc9a4e15237bee32f1dfbbfc581e723fafd9c23b7374cb2dcd1b26a9159e4d6ce3f3612223af2123967090141e2f9310fad8cf41fd870780ebabe8b24ab1e37a5c699fe41301d997d9216d4455cf92ba6adcf4dd81dd6a51b22290bce5165c1c38954b9909929c98e82c106d431e9afaf9300888cc01f6fe1aa5bdf454ae7ad42172ef14be1948704d81725a95b14e867fb9a3f6d682bac47b7822b49790630b3a0c12cc504c58df14908279e75c30842eb14d9256781f42a78abb0c05a410aca74ecbe8c9ee185b15f7661ad51114fdd8edd40df56871d207e4612cf87216a607b165505062d29842363ea3967bc543c28287d93531c863d7bca5b7dee062d662e025d18c66b6688a17d6773d4c5961417b1dd69f5382da86467aa2610a4d2be8541ae9e3cae708cfe57c1802e63beb9e291962113454a4f795b85d286ed21ccc5bfc99694ec25e61a558346582dd41c7d3f3a91192dbfee6def6526d2d818ff55c288952ec8732f343a4a28b1aeabee70e1aead1839c32cd646c599b8aaf5cf795bfe973636f014e8581b4c38624b8c84633301b01676ef9b59256a32e9e7b273371ba4e2b8e01a19bd32dfc1986d35ac7c1e30eb7f85e230b3f225d3850f50427a95327033c7e4cb05b27a8bc1d698ca56de0ba3bffbf10307d06e14ae00a827c3bd2e71abbb1e6c231452dc4403d1fe98430e540a9937acdac2a97c3e392f7b86c30c08214679379a7d84060a923a3e095fb5699e514b6b1c9e05174e8e6cd5e0f522d1ade88332c81ff74a540ddbded6811ea50515c6545a1aca2c1011b9afe3beb16ab8b9b07113eff30e77032eecf542dab05f20f1faf43170843115957024849f745673a6cfba903c185b93380b7d7f8a4824e65110f73a64f7ce37ee0304231570fabad29ff23a921b7bfdaece904b342903af41d31c705696f7813944c2bbe2008e289143e510884da971631f5399c6ccf1435fc3a1299031ade7326cd6c0518485e43662e36d8ab858728d9f37f5ff5ef090a43019adb86d02ee89b3f591322ac888693232df14bbd279fe78a5c4492e4aa5d87f355fb50b8d55fe67c7c7ed08a7430e84d9f8e2d9be7d1e66c6d5c715be1b7cb107dd39ab3df59b6b29f687bcfe1a3a4f9b65f939987cb5b130dbce05ad9d54c8aed7f6662a67627b82072e0c41145646f6db757d98b4c61841bdb22e75c91a73793b3443d065fed6049f5d0b27bfbcd6c1480c3ad54fed85475b7dabe33a0893bab461a224708220e535254fb65d4effc8f2437bca2cb59e5452f64d119553b92a57a6d586d755cb6f6b81ecddc15e0aef4d9ed5cd6dc30b0d0c19af9fae6bb55e97470fa98346f3671e22ccb53a6ab98964abf038cb605a7c9cb6294dba7eab4e5f500d02b235033f4f15b2f449c997c7ac195c3cc42c67ac7d99bb32f05428d569d9580d06aca221aee35e802148a9faac5c7f084c8bef197954a4f0b8059a5f7f00b929945a17d49cb73ddb3e7bea2ae6e5723f1b2bb50060d00af4ea67d9b57b45068bf94f7054a497abf5516f25513d257fd5b26e4f2cc625d4b6dd33ae7e290b5fb27a8156556830efe3791cbec2767b331dbdbd38976685c45e3ff403c81274b615efd0a727f0b2a0498b7b7ee477106da052ceb8c60945ce25b10489fbf13a5b25cf220e58dd6336613e2fd1f193ef1d595dbdb11a2d768e207f49d197639053db0a91808f24373c87bd0fbb1604836e5fbfb6e29478269cdf73a21e10200f6ec6eb0d7efa8ae6efd9063de9294a84d8e861343c5c8a27b94b040c278c96a467d55ec12c457ad91802396e89b16148e053dbd4c9af109f519d53700312a955b74e4182672866a418ff3b9110d2d055e97c70379285e766aeed744757dec707577c16b91b6581a4195de313aab09ad0ec7b7da05b7b2a864195136d518c0c6fed1b3ac904f09f274baae162dcd0d5673a4f525a48a36814e538e96b3096db1df0bed1c3b3fa7d2a315d92dc1012d6dd677ec0643850e61a6b9697b30a6a05f30bff635631ad66488c6f18c37ba4c3998e79d975f7554f7649544a06924efc36ada0956b768fb53f47456e230e5b110a1ec43fb43438ccb09756819eb994feb1fdf7bf5bdfc9018a0a3efac0a4cad409af3d436ab6bdea6dc1d6e7b9bac44d23c308d6521a5167b48606eabb9c6702e435c822e9ea5345e3d27eeb1085380461c8af8e21b8f0dcee648388c868cdad743d6a25bace83b3e8741ce5afa99e517df73c525a141605ea27eb334e88a91ea0338fb5ab8cc5a1718c644abd0bb4dd0bdb9dc1e06f02db176e33dc2878b156e34355d06789bba6eb6cbf2c63cb2eb9350393ede23f918eda473d8ecf2cf9996d2ba05b59c53dbbcb3794d1ded25844b901bf19a47586a0904ca8e07c81592cb3d24b91d0b7336d1d03cd9f3647848bb5968983118cea29030b99c20f8eda998ab65c1c208a63956eed62b49c0a26876218757c37df73398996513551c1d576e76db2ec45d2d241a6be0adfda2de54f094926739be6385a4af850269f58e172ece57c237a497251f8ba1f987cfc0ca0441314f3d0b1edc0da39652519b63de2b3746cfc3b005e862eee5bd175031bb82c9e46542d6be001570362d0905306b978d7387b6496be996fcc119e00252f3620470f2e6516637d8850f6af36036a1d096bfb42210dcf7f8334830ba58940f49316f4efb5ea2bfed10583fb747143167753c427505d8b85188788d03213c2c5997fda11712fb4095fcbfddbb611d29bfb1809e314c56d77065ad4f268310d415b5c164dbcf83e3d281952f0908cead9314e848cd8a8564cba5bda2124cbceb19184277772df649ec11c2697ed0abe49a956a92951ffe3b9b9671d032b120db45297159b1e5d3af8a520f2f3691a97aa19c98e06facc1769511572ed18d3d9c134cd3c0f8f2c69ecf80e7734da85ef435989890d156f5f50f2a3161a99eb67dede5b1e210380be5251a5ff7687f45a0bdc86fadfdd5b932fd4cf5c2fd2b9eab9c7e6a1714b7172ca0d2114ef78104ba9e8c716fe6a5e7c304252f36cf1e84a696ab9f04ba61ce278de3de6a5eaf9b3440212ae903759fa1de8fa6657acde78628800b5ee407f14d22bb017b23e16a2794dc940c6b83336e7359723e1d4040587fd0b155be9bbe3a0550f6455cbe1e583bdda3a91c3e72985c7104c3041630532c4c342b75370cc8f888da89c594eb007c01a6e8809d8ab3c04bfe49b5e488bc4a123bb9aa0c69295dd724b7624418537c40e5780623acb0c68a91fb90e5cb8bacdbbc0d58ff8c351131456e14cd10d13de0a56aedb2f12eec3d47fc6be7764c3ab36ef9dd993ceaf6d86f8e3439557322a19e0177c123494fb356f919d0f45adf3623634ef067915bf89085aa53e74c207f7f6657646cc61c55b332545d5c1125a55d7f7cd3a02048b35c6f75a23941f96e1743b60dfb6747a51e1c33cde9263f202b926bd549656615840ab0bc470bbb1a636de7810164756616a05a913fd898f7882db798ec73659c6acf7be6780629051f025da5040a8f2b1a6470f0e40d9cdce579ca831df3f94af77fd4a1724c4be965b7be08da3c3d88fcdb4c5c41655721454cb58162ee41e8107f3575103928190b2b582cded1cf9116ad41d029f8066506cbb1cd0689408ca57a91e90511619b557fea80144486b6feb5c1bd9c47f5187869ae134f07d6cd5392a7b8ccfff5f27be607c373573d2c6af3724f313d45d5c091d6c62099fbeec047b4910020e50b6ce070453d87eeeeecda79ba97a0de9e148ccfc6736c26b713f1762be3638e7b79561e4fc8982441e1508c8be7121e20bac3d92f0461f5ffa63b1ec741f53e0b4ab5c88e68b398bf2352a166dd9972ad02ccdeb803a42153932c6bc99a078c85c92923e0a72b4af8d8834c7cdbe55143dd82f41815eabc255b9897b612ee8db5b4033ddd2062c9a5d8377a445cba15112c7c0aba3c87c6b1beb0a0461284a00e961938ecf0a86983f5c6a93d9bcada39cce19c2949ba223d564874ed663d1fb3a411ab7291fc839ef57bb2a6f461488415850ba292f6ffb499facbeb1001d53b773c078117bda8bf5605a150e3a506a1d2dca287c7978970dd155987a82098e4ad46b78b3b03fe4d08c3a522faffde26a57ac72ce84d1438a87e3a3250ccc5aaec797ca57d925df06a9cca0d863e8833fd728de37cca6d4f34471ebb9c287e9bee7bb321ae3e4673a1464f642d2e9e8468c16a8e9b161ea3ab644347a2e8b4fb04e075c14be59a4f06dec79e0eabc67f9b2fabb89aea042e2e461c42d3f007a3cb4e1c313815fc96d09b8bcd7b3ac4f2bcb96bb910ad93df15ec2d67183374ce2eadca58c4ef8a1665efa9c6f364a08b918191784fae7b577f7dd0a823c632e88422f23e912b89ec5f8559d8ca0a6714384cac3ee8992a83843fa4d3cb4cbf4a4824b141a78099343722e56229121ad6e3cd4bafd0ef4fb4394caca0af3f70b7c4ec0f11037be37e78c43cf5c50633d284d52cf2f981b25aecb5c223c814704a831b27807de58d83900a3d0de7838f50699cf11ef152c62dd0b97f9b14b367636efc0b0595ce3873a4412475428eb41d1140dfb9d469852b7d081929cf9f0042fe3299596a05037c871cde698e61cdf8a1c04cd7c58116ad34c2f549b897e6a1e9cd6894fc73e1f9efdcd0afb948f8b60e8612a22b379e8f70712554bc34067c1cbfbacdfd5f9ab159d2cd3330d966f8d1afaa4e1964385704d9558e1a99db934e4ca10b096c059976eab1fb7dfc0810108fa28343f65999d2a5cd6bfdadc045284473cde554c41a6ad246fbf836b01c3e6042136be57e6f334bcc184edbf9e38a5937f6b4521d1bf90781bc3294c152680a15f4364c828c14e92c6ddf7cd762ca2c5bdbd449241d55e53ffed20f4984937ca2000b12a790cb35f4651fdaa6f56b234ec9d5bcf3cf877331dfd8d3cdb036a7954b6eb40ca40ddbc21c4c891a96a17c3044451fb879118f80c6053be06fba6aa6e656b981798e87094eeadb500ffafb9542f0e017b91f8fd688943b9beff42f9af38bcfff01a366639b34e65ae7b5708b3d6b838ddd8d2c17f588887d2e0a640e5456a5050a10400f95d1183726228f081e63fae58064db38380ab704773d843e92d022b55ae39354d53e5f752cb89f598814255a3354ae8964b4dd4ac344f486aedcf03c5ec1921bcde41af693199085f4d1a31928da5edba5e09f90678bf5bf1a2fb47c1f4f9efde1fc7a7876ef861812ab5204a6435726fc86435f9f26a035f65feb7c3240b0b173c4484954cb73a8a107a08e68ba3158b187de6f9d06fcce5ad5d4987700116e0457ed1d1c0377647695ee6ce6ed5175d9e1166469fb90c48188acf6ec5a08b6d46f783d9b01dd935221d5e0f15b20d22aa4024a3cafe1918051f10ef3cba723861cbc01d4bfae6d4fabec1622052849e837773acb600dc7ae8bf7cd4778ae85835d07ef5e109b2a495d57153cb19f556dc94ac2c04d0d0fde6c79adc306ec0023cab0fda4c38020e6389a7f68668196349041aa87fa55f60c97ea655100b0efd7ddcd673c1168a8465883b6e9c620d9a6a504a73d33470721fc0037e2117f0e59816ec090a15d98228dd7bd83e8c12474790d871da47faa16d466e965aadb079f1e058ec870c91f88ccf13e1a1a33e6649f0f7172327dd6aa9bb36167bab9e999cee9245926481ccfd00671117c2b8efa6018eef2799a416d1fbf50df8dfbe722d3c9b74998d2d4d976c85ed9aea749930e99582ca4733d13c0bbbc7565deeccf7f4c6eb91e43dd6de48bd9d904ba293443f9217acf2dd5f7b44f93f37e1798e7e544a49471bd1cf1abaa1d70b496773b3d09d7ab71387fc318f09d5b6d5f8a89cff487ad0c6b56f73778d0af51d5dcd9fdaaedc96ea24d7a3cb58653592f43e5a409f2bbbf6ed84478dbdf7d705cb1c12922d0feacd7f46c87ba6650771423cd76a755a7ba0a4bce9849fd0db434fc890f452176532bb87a98aaad4433e3ed638212af5d2f42f1df061543a15bece22db55465d0ed7f0d9cba822ff7e282ce979a0c52c2840f1ba1524c1367e57820f05ee96dff1bd57970a511951ccd159bfe1c6262156add39ab8e6ce48cb3d5105abe873c6e6a5477eb872337c5e354b56c39c2e7da126a24938529f6b3b3130111bcd12959ff41db02e40a55cd9171dcf61e59e8255bad8109138b0307ad0b22709e6facbe1c81fde69326bd46356679aad4d39e41a99453f4c66b2a93e8e335dd4643fa0b49adcdfb36de94d5e39a2ab3177530efcee7c2dee78395e370b9609a2cf881b4c30338b2bd218d42c1e6fbb74d6adae649ff9d6a6713ea9bce93c0635e871796951dbb9836e26221fa208ef2c251c87e1bd6db30336587b53d87c006648965d0daaa9e5324c45469f92aa3452f23890e81b50dfa06fe2697d663e5c3bdf11ab46db6bd6dd80a666b2669c89c7540f63a798974ff34e597c483ed789d522c6f834938b3915d388ef0008598a830dfa25253c54ff2021e361652a9df17f30cef549de782e691543a4e5293b96d39bfa7410f4eda3308929e9ca5f3ccf93bb8fd59b66e98790a2a2c4ac27be2ca66f023c2fae7bdc435446b761f954d2e654968e36cd1c4a2093df6b41c2b2106f5fc9b7fced82851b819b376f77ee103ab0ce6fe3a7ee8e6ed524623ed9cfa6731dcb239d6953ff5113577cba1e9100360466029cb448f907a4f15c28f924120fd3537ed043bfa21a4521e3716ba845389253b509120eed35747e197aae7a637e95e29687fb49c147053e3e5a0979ad08daf13a9350d4643cfd8fdab6b5249c59bff363f7f554be7725fcf65a82824d2cbf17ecd637aa7541916a18b9d49605cdb2b188456ab44d2db798e0e063a80f14fe0fdf2ff4d49e15660dcbe3b600abeb8be25e43c61c73d16d29e34e9265de0a987b8b55e1b941134e67da083d73b96bfded57771e1a56cd1d9d28a02ad9822d65ddfbdd887397bef622cb0553bf183e60126f58dd08864bb388c1251758ec1de5cee74a69f6cc66f53326e6a7a50d85d5ad48ff84f790f267bd804b5d54f9145624805545496bed6e9fc0a7a8737955053c4fca691db63d6f7fb05e0768e8aa2476bd5ac02955650d9ff1ba447f173d122ff08428b66567c6f4fb2243ce3e5038e5adad7ce4e8f7ee7f97b1ab273e6310ac2bd3bbd7f3c025b936b9b19da100eb061711f3e05e2df836356ac53f7454c45e73de62b0f8d2a7aedbfc66e385e6c4c37111f201d23e191f76dccddeab7d334724340bea432b55a67f9731d4e8a0309fbe66c4f41cd3b4ae09799476fec21f3dc9b77489db136365076b80b4eafefbafcbc5d3d76a83a8b58565f5b773529ee822a7fc0d907982474bdd996561b5c67eb53db075c19d9174771cc07d2c17a3f1871c92c4375a7dc52aa95fe256f72fc80e06d3768dd415fbac88d3794a3f436b96bcd312dc69cb4230364e3703aba030ed53c3983114f54dcf185b597a10a0bb8fe5a5488a1386b3ec696b5f4fa9d80aebd5a30ccf3da667cebcb993a8cf905ca5262d79c81f22ab84a48506b8050e1122623934aee311277d8269f0a8a3c879d33ed9e10c5efa27167a7fed814654c1cead6cdb0e9b1b002185fcfe4f54b3f9703c11692cba84a5ab313669c87599bbcf48dc92c561c099dbe02859dc6d76cf504f949c0ecfe7db03fb71b3f0e089283569675a7b014c6b985b23af19b360165b6f74cdb84ca9fa140fac9b85b2a9c317e4a4ea8eac1a6b91c56dd3d36d5a704194a7a1a7ab9a476f8887bbc7b817105926138e32dea33d7e0e376648630d69e9ceb30acc659f71c5f2ca120acae9df69ea3813bab6ff7952b18543f6d98e824d869b64a03564bba3b9579e9bd7396d6d8de142fd511831fd610148f8aec8f99a66fd762055f997814a3b9618a5ab623944525d264b534ebed9f524f0a608b5584d13b30b61774198c2762feab661880d5b456e9a0350e15e2399d96ba6c5d3d7f1e03bf2b68f752f6dc830f7af97b8e2bcecf780fc6b7d15a8f9e013717156d7e3c3e03ce012247daf6bdeb57f232c274c876065abe6b830164d137580ef75b7add71442d5dadde6f2a3303a9564c63bd556ab526eb5aa716ef6e65c4552cfd6e70657ed12f2e7e829542fd9bcfa97e7e748465a0c4d4ef16b738b7995ba30effde2b0d459cf55642f4de1ba2c4c521a3c8a5bdaa63571a7ccd0fd9995a4eff0172e6665ab6a4c6bf1fcefc7068c548b9c6b938ec02d8358a48dd57576a7bd657e9754a9e13500a39c5e4304d14f2dc1f1fda259ee529bbc6adf0499263be625990dfdeaaad80ea93046f12d2b9893738fd19a828334963940f6317c67adfe820e760647640a1a908597c5677eec36ba8702bd3a58c273dfbd570cff4d5b0c7d8a149b915ea058745f27c3a85c72736bb1e2b9642913efcc643ba8a8a69579f3f89e7a358613f473a1c4bc0168880703afb73d6527272d2df3e4f606da98298f101a81acafccef94a26c6d48ee01a122dfbd81e309960f889d569f2fc43d320addcbf077009b8e399c3123f967f9e46c5a21d31004b564c37f00c881d36c231a70c545e2f0dd15718bc4f1b9c7034e4d7d69e57ef97d6821c7665e0b948d6177c6d6e5b478a773d9e27aeb0030e08a8cff1c005f85fe9c86f1fd77d6b23245e40646c2302f26120bbb2df08b5e9ad29e325dc86750567132140026b68ffadc9c42546d4e6dd3467602cee522c398eab8b309903aee00105c76269d8435847616f9a91c3eeb35aa454afbdd5a2890821ec6142878c7346a1817c3aee98195e5dd8b4f4c920789f52ec56c9042cc70a6892690fa591150a6fbe6a2ab9cd7f21a5e7171e3222aa4452549bbfe0fd02b5a9803eefc9446a36f10dc11f89ce92afd97f311655fdde0a7aba4928f19d240f0b12320c0d0a5e42e8e3d55b1d2440ce218641b68ed6a4a65b94be8fa13218d200d415ba13bbfd47b0a06c31d427ffcf2572d2d37e95e84d0678bd337ea9426c094baae62df3b031b6965238a4caaeca8175eee49ac709341696b130175ab658ed1a2f8ea7d012b352a0dd44ed6bc755b97d73150edf3669a970a5e81027b7b057bc57a0dae1fd62c7de9bc939af081f84171433368a590226d1022312af72758a9de853797c596b5bc9d8b65c3a56f8b8abfada85a10f51ee785d4011a131dfdc3ce76ed5b9d474ec8c9a00cb6c6b6163c35b66af3bace4e1de94f1c19f8546e96e4750b6f9049d8dac4b9db267775352cdc2a604424927727190f54c1f77d330eb99f0b343af24ab3d4ec622b037c383715cae5cf891037a4919cef46b01b5f935fe63fbbf414078a479326187322c346d760a69e0a09bd283d04e4beb7118ec866b1439e5635a6650987deca21096264bdcf54e00ac222182249739f82119e8a2fda1d1be7afeadd583c7a1ebd56f4382d70223d9a93e1d83265841517ff27b4cc540e7e529bce1a174fdc123911467af924bcd0af0263d4c80fd3fca637706ca804c7312bf4243cab467360d820ebfa7582e7bd989d9152fca01a53c4688ac099241b211247dc3ef2f97d3d9d2cf8d2e9959ff53938c9c983bb54858e994f915e5194fd7c1c27854af1afab89028cf044ac861c04185f514bad8f34020c30932b530793c5aee85a17eb8ff5041dd5bd413e6da571b4cfb6129eadd278d4c37085b84fab8d5b25680329801e7de2136ef193398f027ab26cdaa776baa0238582a5be1329a527f94a367f787a5ba25393d149ff53a159aee6a373b2b6e3384df1e173421b4ebdc6c4e8c3a4b9717d88de2eee9b04271c1000ceba4e2e7f010ec85d6358f11c3c383a0597674c433086374394822cda592299b0d506f94bf0007e098c06044657bef04f36caa2cecfce8de33c704ebc66893a890b073c1e2d832bda01fb9b5502506c00d43a08b2f65d4486407d75779e53adb86ca70fb502b8ee5114de923ef6f45566d608c5d31e26994ac2f889dbd4746d50ec7f29649ae84f3d71e21b7f4bdab48f84307a5715e55bb77e6cc32362e1b589c9a5c34ed9cdbb19e8b840d32571f57438fe546a203b1ac27b1f03a487a579393ba60f653b5ddaf8af46c2e1287cf25fcd93e53620d4398a5ec4a3d045a9ad309e7a8c74e49b30a3c450ba96c0d32864035411af92498420dcd1d602065b8e5eec47a474b7cfd74d3fd928012190ced5fb46e459f5a5083d77d32f41de5fefa46225cae367f818c0b4fe81512ca984201fc57a6db752f942f8949128bdad8a4daac5a6264bf3f531b28ffb975577d8b0e70bccdfa9edcf736d3621eadc443a5cffb5aa96e3256b85a05c4c9de89d383b435a0839e95fdb324482643c29ff8bce70b181a5438971ccd629c2a1d181a8ad6848e22f06655467d5e72ab9ea251e6ab86503bd8d7fad62d88d4a79291af458ad3eba126934ae6b6702e4f22140bbdac9056800a3e475954868653add98a7a9c6c3b2eacb2cc298bc3a22229f7a464f6d78646a4a94678b212ee73fd9189998a3b207c434e2b9215ae12c6e71d91017b7aa25d30c1d5bdb4bd04a7ed0a6821df1b63c6aa3b7ca980330424060fc672d7bd95688174943827c682ef1b867886a2e57c393bb2e4cb9f42afe7e592c2fda57c93478bfb974f515a9d61f6f75f714a46843ff912c0813daa19b74a171769b8301e6eae4091b92cee98ce9e074a45bdca2ecfa2aee2e4f3caf49aca60a3633c9c0260054d2f2141f679c69719074807f49be35dd0625d23a8e8f888588a38bec3e0ca271129d17029cc9ced35974a155eec3e81fd3cb0a917fc1d6020d97a6593c82e20b25912437f090f28a54a8aff8e021d121f7190378e580809aa2ab14814ec8576155942fd8a8feeb068bb661cd7453e33c88a06d6d6b755d767fafe1bafbbd62c63a6bb65feddf51e130f38531735fd80ee077deaa70358c48c0f92cf84e5d2d2b4951861d7572f79cf150ab1223f3de3810681ee5c5adabacaa72997cd02411204f114903912a2f9b8d64d0510bd3abc31f838f8d66e88f2ecbeedf1dfdd007e9c0650d5b5b8a0a3f92fbaaf956220c47c198abd33a493fb31672aa37b462fe10e55c9093f940b8504f7112a63bc590e11c60049699377c409a341dcee8540097c93d5dba04fb89a4ce0794bcf89d7c07315404103738ed1199bfbedbc255c99da03411cd30581873d382a04efa9be81c734ee3bbb6620f696f953cb72842ab039f0d86852fd142a0b1802b7c889c24dd38c303047a4929d343e11a9422cc4ba36e49b6ce3f2834887e65e5e16976691fbe936c5cf9978dc7d44c235dde35c6e7a23a53026c1bcabf681057a61a1e5c6de438c4dd35aab29df70f985c1452f32f3748374139c88776c0c8be779b275afb245c9e093e336d8f496f6a49a5d651aad15b589a6068832d0d661082f38dfdba27344096e08583389d72d030d1444fc02f35e1a8d4d15e1678091ddc3d64a6a5d2076af6350126362a4155bf63c5b5949f233a9219a01175c96aad814c85854f2425925c4267ec2add75e7b2120949a1f93f6c77ebcdd19754ead3b8d1fb397d8218f5c0b3e1e489273e643ed93eaeb20c1c979aaf16a70f5c4f44f67efa93095388d4d0a43ece61eb602b71b3c09405cece628f9ee08f877d0fc542eaaee1abca4466ec8422d2da39dbe2b1de798ae161a5ce4d4d68fb9ea5991e5656b799c9b5b557d1eb5c11dfb28b69c3987474b3e40d3a6d1c90c00ea1900cd7b105c2f76aea10cf1489e929148b83f7b21c431a823a1015b8ee7fc2772b96624060270bedf62da9eec4f3654185633add61d9bd74436550c3d5e82ee277b9a8dd83dbff130c07a4dffe37002e9b7087b5762bfb55f08e9c4802429ab166463729e18f6902bc2287261d14babafdb505212dafb2a0e014b9762d863ce9b62905b90d545de70a8f4a1eab6c18af423e50054195d7540936e20001434fa86d4bed2a4a4e38d16938e70ab17bd9d974f06e762b339618bdda3136064ef770f0fd8d16e2fc908511e0eaf156c584fee77b7dd23f6fb5eaedccaa192bcde13977dd094748d1bbea57c654266c5bbce65e3fe7f6dcaa8f4f4f5dbac31ace8b30a38918584f8029ccd71901017d94c4f9b96c73c01afe620b59df64b7deb5abe207699e441c22a8cc74d935c28bce888efd99c64d8f8346ca24039eab834e8f0d9bf930ab9010c27e6d8246f2d2a50ce047aa4cffb16945fea241c2c05a55e37b64762014e746b20c9283ea092189af3e5e64e70624c00023f1f4e2bee1147f1e2e29174fb799197d4714155cf4305fa1185fc1382e0573a3842b23237830381ac40f86f4fc64596c84f6ccc0fb2c041872c8c99e9192f64b982fb76aef1bebb57b5bfa8e2c06313012fce5b59c4f226a02fd3d16373ce49d27638617c8d08d9e65969ceb43bb4db769a02d54fd897984d981c9be4d71402e357d79f17e278ca1196f095e99af53abbf5144b8dba678f24524e8fe212af2a20e54c7afb02704bf6a8db559c16c238b1446403b00e0cb1a7c29baa5e54d97130dce9c4549817faccde357ccf64f484ed6253f05c1e7583ba3258ff8ab49cea1bfd487a98685f9346430b009cea888189ee8c2a71477e03b83cb24b1fb5dac01c8aa3eadb19f37173b3fe001e527a1840cf48a6faf0b13018bb77b54da02444af360264a1a69bdafe9bdc19d7fba73896441a185fe6bbb0cbb376657998ad00785ed4ba3d6d8c7d3b5a64e66ac608c2fd1b590314c37a58bc4c3bce0f27352c21374bbab7587ded2ae3e725694580016d5c773d4fc10ab1bb524276b33febbd2e3fe7517d3c3fb24d34bd87624aee06ab41b4703ee2ec757b820ad0aee91ad818dd3efa8444bbf691ee5325e7a007e8b8dfa84264e042c7fdbc0cc251588d5b80c2d24bf34562de9d840dde315a99faa842ea161d3fb829f866942e77a8fc9e9fcbe707d42f7018a5040a0b716462fb58ef9697d1ea291ddc26fd24a11bf61c68492028de4b0affa2bdda98805a816610b48208896a5aebc7685283e327d447167cc02bf7dc46de3e9e218b9c87f12e804b0bbb0af6825d989b70c991b5ab2a77ec7e87a3dbe89e8b95583501d741b5c6140258b891fafbc2a6298d3b3b6998eb07ab1a8eb66c333977834e7c037b4b5650a595eddf6e3bb50acb9f4b26d0922bd0b846443992107daaa2fd758cf43a0d4cf4b1a02c60105d59c37ebc1e46dad990d69c640787bd6c2458714afaf5961c24faf5404cb91d4aeb2ab6a97510e19d37ad2ecbab424ea585e833d2a2b39864f31af9f1a1b91fa39d921b2270a16d94cf1f99084cb91ba01c4642b671e8190ce5b809605ebe279d435e3c663581efdd40ed81ab124a77ddd53b61dc982483064f1f196a8d8a6d0b54e172b390a42a934622fa436a6f4529a4186aa2cecdc04cb56ef43a93c89f30fa6a79e96cb1e065530d21b2674f94e65d73da0fca785036f0264d1b4e7a00cd071d4016f92fac54ffd4bdef6d96ed45d60162b811420785aa756fa2941014f1c11040e7f4f22a929882cd142c0f282dc2858e90eba06d55665278aedae6f4b31dc2a4f9666b625bc6c31ad0bf80ddd67c57447a4700d626daf7537301fdb88036301d0441c7bf456a702b6a6a3c91eebc88995f64b130872c55481a7b0805ce8d39ecdc7691d4ae6792044f30783a8b374413208ef6443e9a7a34a9d9dbfb00d43f55d59776a9dc611cbc469a147d1319a2261c94b45431f232a2d3449ba15a4115176ca36f6a8fb38f4f460299051a67614d8276d6b9aab0d06e8232aaae11b3ab21c65f42d71d03d0fdaa1f1ed964688f7a8760faa42160f27127706ef274d6d2cd1a2b683c6ebe8c4b80b4a9b8463e4221e2b813ce10508cf55fe26ff196fcad172bcbc477d533e6382fe1c6a1a517f659e064aa794ba4013bf413455ae456c137a5e1b880e9c661d4410bc3ee0dd510795873411877b1aab46322db3f55c70aaa36ab79019c4aa89d88097735b62fe78d6a7a332e8ef32c4cba60b9b51625aa0bc86aa928f0e7513c50c23067a0995a8ef1c06495c61a1e7aaf77adf906278df018704c6c0386451f9c46c45b321e1bd44ca85e45cf876af4cd18f4f26935ed881c233dccac1f246bc5ab397821e409a20b3993eb581dcee1f5f1af921741dd34e4c7fdee53be02c0e29c433517e932a65a77d17d5702579b671cf028071c6a98026c784bbf53a04718b1213eec3ef21ba417a83e6ee97a2b4557d03aa20c0b85ef0cf231c1d108078c8ac67596a289e3d5962c6fb72192595738f51d4dad7e9dccf8e85706f6ca70374acdfc4531e225b274eb718f54d867256ddf66a6919857ea90204dfd9c7bf7ccf09f770506d8db7db9a295630ab79abb3e45e0495fb6f10912cbb5db01acbf4e12a5adf1306305e338f2a7af8f6517dce63a6333739d284acd0dc3eedb4c25e4f817b455031208637237a005e036799bef828229ec9d90a0ffaefa7daf5d725ef56c1b9cf7dbb2f7d052224564f4cdda83aca535854279e63caeca07b30e85d130a8baf31ba21b259ebce7abc84883d2775301f019d03ca8481787540355ba6356642a4a10ff89a35d35906614da495eafd81210f3bf9e9444804ef84994a444909fb9b87fcd95cc9f1424764631110e05f727292072e42ffe4c83cdb16a4a52a14be7131ee423b7b1e860a2017281b5fbdd111807a6c83ac72907c24d23a758ad97376cfc348117d6c4732d57f5e0e7f6f62f7d40e68844c3b2770e000a52f534ff001c72203464207fc0cb297cf302e8b35b25757fbf70320a4e822f36b7c79a23d78f9419a4895c0e9df171fc9203368f111507657856f13e658ec51f5e0074bfc394cf7928d4adc2558c223e39c818335c9b45de3bcdd4f7f2c540f7c845fff32487ce5eac49d57965b53e4885787143f16804b73345eb3fbc49b7d2f875932d0aa46f7ad91c27c003140a49a44f73634312e5aca4679327aa54efb4d3185a7242b9c61ccaa4a36502f4226d6d2742e19abcac6ba826841d4ee694e0fcfe2e6404888242401b35e5c67ff9a2ad62a847d2e9894100321c3087ba9ec3b17c3b460ac8170783030dbabb8c6be43a246d54270005bb4f3a2c40bcd93b7a3494aa41a483191c3d06d4c9b7a425b02742857653569758414d4c28e6983af70d70d3624ed028ebb461d3a7f65e1e69eedf73a818e11898b4c4e34bd30b8eb72b69d1bf424926c8ac8133b447f7e507b8696b64f15c44602e62a33d28a3dd4e657be07ea001443c51f86b840821f471ffbb6a56e605d07da5e2e1b444dcd8169aef0b1083bee723ae00c5e5afaa9e33ac53168366115272a48945ab7120a229828b3ed87506853a4f44dc2eed6ee2a36ca810dc816d1f9855453fbe2ba5a505467367eec730ded47a4d8d30f669f293708b41623224b6490e85d3e37f32af07dec9ea5d7e3ebaa212b7db9c33a97bdd8d42013511f0a47bd9e4a247ed675f9de0d0bdc6093e02a27d2e16a3006b2b37c5f3e01fc6811aac3d2a2a3c211c90f647a4d01c13b6b5fd1586e1082012935f3ee27bd58e18e79588d6afd411c5d949ed39edbbd528524a51eb6c63a847ce07e1a646f0eb238db7efc1efe04e774f648d3281bd212ccae9e7748b6163fdb0759f5c80558ce0059aca032e2fadf011098c672495cba3d52826bdecf8efa5c6eddff8e24caf1a05b7319521b5979b9a256f31a666f611d5ea5fa280cb8bbdcc646b0bbfd15f404c1d45485b4904480c4c3dfc27ab6c4bd88e76d9b4b3ae952acef15684c024800cf5b956a283e9060ec340fce7d3d39c82b0849a4347b964e48735f4b5aedc1ea6ba59a0256525c522f74ff4757ea3707380c7809b9276372ccd02c6879175bfc7c6b5c619a745057598dd4b1a840b3d83aff31509cc8c59d2947e5c4a2c33a5273d46b61bc52e5fe2a6c20ae13350c9930808e8f07602eb18273f20c5fc8248d0ae886751fd49b51683b5993526bdd49d9a516efa93c0884ca60aee31bd6a01f311417951bcc560660b4381181e0d92bd166cab720d5756b46189b5c5f81bb4769da2b436f06ca28d2a0bdf8636cba65ea22c111984ac618b61da4ac67d727ab6752569d0485e3662e09aacf83b72c0f3b77cee3b64fca51d006f596377795acadf470737be34ba6f339b68d0cbee72b856e76bd91775d544a38120c8981f7d46cbe21ac65609e457feacd1ab5ea0ff93c9829ad3c4894b9a6e19fc95771a0db187af0fc88d42ef59baa6f1c4cce9af04912d504791108043dcd20a7f212449169132e41acccf6d536777877ec83009416068fbc5d26a0a88c40a161e4f0b2fcbed0d80b5aa35f176ba81f11712d97bc465c1d1a350e82f0a7c999cc25e60312c3dd3e4cdf3d67d376edf3967b78847717b8fbbf55a59fc550604aabfd5dc1614487c1d6be8aee780d3777361bd83c18b1b5eeb61fd72e344611a3e5104893fc90deee8931c8b1eed5e3091cc91296a6e9042f6baa231d64f0efdf5285ce7193f24bd0bc8bfccb2df1af110e1165c0548879e9d1c49f0f7fcd63ec8f30fb2abbc515ee999c2c443e0496156f99408a4339beb741fb48c45e700c6d8b9b089094dff43f71556a40dc8ad1a881e1cfe1d6eed9eacb231f52604966f9b9149bdd28920b806bc337f596f3dfab143303b49b742ed455e9f0d240f5f5c5b0abacba33b850eecf55eea8a2a786c1d74a01d231f547516709f6a2dcafd309f97c1727cb37401bb70adb4a183cda83d036de4d7527203aa510ae70369980699ef277ae704f7b55d4398fe355cda5f5177e47c804e1173ed3f9126c21ee8b9e74c68a7cdf5d394abe0ebb14b349ee66d66f8bdeac79734cf777c626732c1e5500420ba0f41af2481e7f4a7262c2298f0f73250cecced513e7230c6f126a57ff32d831079595524ecb90a9a10f114a9b14b82437ff09f058291b5b996d6c0b15ad3b1a0543d3173c60fe77fb386ef24643336f7586329d4fca66f9340122b23c9681f9ea5c61a852e39877ffbf995374c959492d71887951a922a291eed949be3a5c0b2e03677fdd06ae61fcec6b35801aae4ff7c8e4ef5cf5ec044bffed1bf618539bf02f52768385faec3368861e9f2aec7debf48ddc61298936c54dda708b1a0b7247591838a5a65770b0b2cc0e746286ef32fad772da162a303e3239ac49a38c893696d1f1b92e3badb36ef4de68d3a7fae24a05406fe2aab3ca8569fd659831835ff42e5760e2496bf2d3041729e1ccfb87f144aa9303b6f13ac15b665ce73ca598df4ad82fd9462c05c83b0b5759f76576139db7388eb955ca27b1e5c4d709701b95b8d465d1dee52762fda3754048821ea82f205b836a783598fc8947bbd6e1124543d45ea36e03d0fbe3bd12e342202d89bc0afc2be2b70735d26e0a433f17986af4fa510d0fa99949796818dd87b54916fbf0a604fec68290c640db0a4e06096ed63e295fd177a1eda58b43d5736baa52fd53f50268998982a1ab3d4d7fcca775d858edb32d465d1fd49c98bfb60c10552fd481e96048b7bcf0c5cfa5012278cb9dcb110ddd8f04c16cd5e35958b961fb6b2c3abf349ae3c3c9da64f04ab70cec08c14cb64100f768d69962f59de2255583562487ec8d744cb8eed3cd612f997ac796798a030195e50c7dd30be0406874b68d68fdf6a1ee1625e6a93c0238edcbb745f6bf9519280c2e02079ae4b28892e27e7ff328b4e5fe7d3ad7e10ce7adf902c7485d9ff7f23aa68c3a5975646bf2abcdcd739f24bf5a1d7b3c92984e5f721c47513cbedd070648cebd385953baa2f4d7df0b307f0efc66b8d1e10f0ee948127bbe45929f4c03df88b103343617e34c4e4cbfc35f9f790acf6efd806db45e4c068aef8304d506c2b56927989dcfe3f27d2ba696905ede88b9a3521f7035e852dc224118f5c8d7d19d2ea50e924f2d9826f45bfbe8370ec2a6b3bf159fe94fa5b79bb58f9bf4b8d05c6d7d2303f9dae881da15786f26384d48e0d71e266c3f785494ec8d06bcbdeaac165add43a5f595ed431b2fdc568c3e576b5642b0ee5a3d9e92785962abd54011cec3994778082683ab26cac8077c066e83cde1924ea19bf76000084f2bc467985a6aa06c743f6471e48ff5d3493782c29af81bdd88ac7b6436bb26f7c19b73a58374db009191a62b23ca5b34168965914d857142bfd99968f49f84c6f78d9790a1dd60fa7732e77ef3634027e3d80500763259bcb19e11ca6f004bfa4bbc99fa2bf91216a7e3c1dcef935cdc8197a283d821dbee976fe6d267a9e3b97ced1304c964269ae3686b479fb2e5bae4b756dc31e62da91d56c83a3de9213c8485bcfbf390bc4063eac23bd44820c0abac874609314fa0618ca3dc7f0b16ce8aff053c021cdc4bce05ccf667478bfe83a6f643f4a4ee54fb7ff96b4229664736319283d8dda970ddfac70e29c4b6c10325994f10a884eafa1419088887e1288b56f5d27893ddd352d3ca773180b84c63550dfbc2c51bf5edaecdbc5044bac9d75fef49754cb7365d40ad3e1faa3a8b8a2f27c6af7c8c33f91ef6d7fa3ce8e8d7926d4d9903a3a1471fa748f6244ef73ad2cfb8d8340e52565efa1c1b2011bd3c8235ddbc3d5a750757bee8f7b8a5309dfe8f854153681cbb707b844862ef0efd73e8be7abd6814811b872f107614120ace56e4fed40c94e986b602329aafe57fe423affcc82298d0a4ebb26471b2186177c51ace9c8f342396a5010d78b6b07558aa7f4fc27ee4621fa29be0da6ca179e83d79dbbb9f14ddefeb0f45a2ee59595252844738dfdbf026724fb19249899c672b928cf67b41785e779e325a4a6bbb17a26eed1eef4e9cb235dcb715f0b2b24b671a542c9ea3240239461d8cc759ccdb0f6e3897ccb493ffc9f631f2b51c0e7adc7a06b7d9361063e480717b55b181c6f61b7a041f0701dd093b916ced67f617c61c31e4c2aa20f577dbd21b7b1d82b70de6cd45c5372d50b13333d4d3ee116ef24c03a04db636b2f4bc9bb250234270b7cd5a95876d8b5603b82a51f944b23439507df615730c8562142d3e9b89b5d04984be888712ef217a1735578aafa00cafde4e6a08411acfc24c385b4cf11776441c41b43613d553216ad65ef2e7cf428fa442ac96c12e20987c47489996072d16109f37f70e5979c41fb2c8728063dc2a3bf873d1a3be242023124b240f2354512fe6e9b6ee422c23993578d87672f3926be77f1687ff0aa93882c8b52bb3e2616a1c956b795508293e924c39db05bb37a7f986fbcd0a5d00974aab1cc8976a0cf0a11a7001da5d2fb280f631ab2d8d2633e9c4aef386b01740e8d45dd326297cba25c42ea62f8076a204b6dd4bdc216f44b29f2094e1bc3419b47cc61f3f344933a4c58560a7d4e06a5499e16180d17e9215bfa5c6f62dde8fd360fdf51fbaca7c6b684c9db5a4982fba585f9afa9a1471b12494469f2a75d14ee57cc36ed90c18b480c4c4d5c665149923e08ff2be14c9c9ac3a017ead4deea9fab24373b8a32e565004312685aa5dbd6720578954315f541f66787f48ee8b50dcbdc14f3ec48dc4b9560ad1acc0cb43c2906f6292ff69eedf91fcd9abc59e9c83251a33474bbbef5d3157cef770cb3064b15ff5039e0ed3bea9586d5f448b5ac0d2cf8f6cf764f366120c684b5f503e889712ae84b7a1e0dbfb2a3dc3b7909c3d1ff6d1dbe45d3a83db4a3b7f876aeb7ac9257e9e9592f50df0e548d86d25b3513b08de5c6b45cbc52e8208cf2b0abe85c0638b2c964508fe1a3b83730fe9ecfe2d2fafc04b10ed67cb81f820156211a4bdfe02c77a3ebf9c5058c6cf61eb313237acad5b234151b4733c8eeaf4aaa5407152ff6100fd32dc5c1e9459ef55a6354e4d9d1f5f54bb2c6c7aa748f13fc2daf65957f8fc0a465bf618f1f086b1111349dae7f1f608bb8d544dc20ec279442b38274fa165bc48e36943eafc178f59ab3f1e83e2ef5cb56e737db5b20a0bcb5f864ea005baaf81a5105e4a5ddcb8836c29cfe41e6a87924aa5c79cda861e5433adbb54e3f57f88a720cd5e457bf3105c15867b5340efd7cc62b54d9b913f9599485f2389f13c4972d0d725562b99108bda3258092f88a937207162e1c956fe0568b952ff88dce313d954302e9f7d051e0f576f691f9bce5e7c9e60b605960923890d21925fdd3c061a8b07db0f88fc3e6f5e299f71578bf4b5b4dce4525c1ba787e9eb6f3944433f2db3f64efb510071cbc74bfe5731e1a8fe83fc3b7dd30bf2ed7fe20512b59e5119adf6f249bb252cce584d7b3add644b6c4f999f04d21281122d5e7d9b1962b8ed18a915591b52fdc6061827351d9e6a7c695d9b46c88684e1f8722f8798da66ae2c183a56a3cde0f4192dbe8c3aafd018f89ed7f3434350633637ee08e802dcd602dd73dbd07192494fc020b9c95ad6eb9961b461eb1b81ec43ec0a95587571a9b38c451f3bfede1d9069c376e5ef3764e0a3cf2040bd8f5c7a6b2cac3f6be39a271ffaff0fc6c66176f37ce1e271e695050364790401e41f4e5078c7c973f85471c2181717dd994c8b56592761e82d800810b623550d5cfa0e8417ff287f9880bae81916470389bd39c06c469535af176ed7b7dc61284d7d738ab701571c6fa7359edacf90c2302d25ca4241dd777e5b0e7af83d2176b9b1d8fb6a63630e5857778673c0d24203634278de718aaec72776de4866e322e95e5da823a015fbfae7a200b9a15fe19b10e5101d9d94cf2b71e55c07b5e5a75e844cf3cb96de494811e00a6b66f107c4bca510d104fd32916dfa9ee14e6be05ce5ee70ecc2a1a575e6e54023b66edf7c7e265720b0908284d030bed1e00ecb8c9b2579de09b274bf5fac5d95ee947c861d044182925c85de79879bbe7876afa134589049d238ffd3c38f75192ac2d0ac5c679540f687670b959c6974ff7184c6c3b12eb444b1da04e4b056ed290982a1a6b5646051e02c62d6d780c0cb305896280700820cc64394a38df9b875dfc3d3e96f5750083d41343102cc067bc0ddef1de885fce3468c60c7ec91a6ed5dea3ee76f247c98e2222aaf7c6da4fcd84f4f17bd3a3cb492408bfcdf6467837236e62b8267f1861965d9f3c176cfaecc8713b71bca6964e5ac722aaf83c9425df9de62f84de5d1b64126caa50fa0f5ca7f3a2d97111147555800f43e4f2dd346e0054e59009b8c7a54dc602092e484a76f8a476e09efc5ea69278ad3eb853826c7db7fc47421907caa276d6e2c6c4f88ee74f0781d6085c8ff552adf4312b8894aff9a86f16f4f10e26b0640ed22018f5ab1bfc680bd02a2a5d0aaec9ed454c9c6291aa8b70689e88e4dad02938d6bab6a36619e89952ce85325c12a68c9f1b6ef443e73545bfcdec32684fca5e3c6f55d9d8c2437d6833688ebdf7874ff56d989e1b7ee252697c056f729f04bf568da4927458d4a70383f690639d9a419d0665d9ff68eb2e75c6bf3ba222156debec7e36a3d7ec16f009de78fb387f53976f5bb4054c154b0e4ec60216737605287af8135e71284661bcd3adf24fb977823bf87c8138d5d110d08fa3308b5d11bd55faa5b716e7dc3d9292cc438e62d1b45d77bf19526351ffb15134ac1bae029812e5447a03fba495390057a232f9cc805dfada0fd34d922ed4c154b8763897e7949cdac418898b4e4b44e1ab5716fa5e74715140d9dc11dff74b8462fde8bbf551b00bdf48fd07f0269b04111880084ed594b9f6ff7bc2462ca5c374100e404d6ea13171bc86219af753860f94a57046891eebf74cd0eb08f100b4867a26fea952df92dd6b4a1d1796df107602309df0212cd216ac6087f221b0eb3631c12a25a4e1645643a1df34fe4cc269e7741d5d3259c45b1186a49d17a82b6266f50370dca294b65cec1b4dc4558ceba696f91241b56e6a6460e39e5072f974ee778a14feef1448fc5a47d70a481900c3cdae7cd462f20cf8b989e46d17a858bf6216e3a3568d77940fe034b0b515e7e827087cd45a1afac5c8f757f57ff287def44b3cc978abd8ee58769ec06af6621b259f6f3eb55a8191f232c4a41fb21a060cb72c8544187607fb8fd1b6ee7a3ce778f96db7d6b35f281caa17a998869de54644bd9675b227b3c0875686d39048ee13e1dce3424928079a26b88a63d6484141475029c8620de0bea0c8f1e328ed73744b45cee9fa5d4df6b28fbc7c8bab18c1fe1d435fabc9c3d2be319a41f5693e3467fc27408612cd7c4b5c441220de70d7722e95115b185b8dfef54df8b8014ee8cde0c681fe00e810b7dd829a35cbcfe5421a3667b4ed936c7b62afcfb71c50658b46f1303b90a7bd29a5181d390c4f553d6d97d58291c962ba8d9c9b79f7d210068df0f157c00c9fe474d32547ffb867f4eb51bf8c409cbbfa6e1adb2d7119ca29c349ea805db7a191ceacc22ea9efb3fe889e8bd631d56f39f6fdb7d5605845e26a704c4d1c1bfd85d90b570126c134df8fa269b970a2f20f59fea8096720be908df95cb95cc88d58c181e096d6db4178d96c4fe15b8b558546bee6adfea407b267d4ec0a0ec4234e8cdea801e2c6190b498eaa5f5ded8dfdf36ca231fc2f81fd25b540bbd195de1ba49ba96e6c71a0a00b09f3947d3de1c31273743d12b6eb1faa2144ebc0027f66d091f4ab8c5d3597d9ba4aa08b95df65d6b50c3dcbd50945cea5ae467fb66f3256b00e739cabcefb9acb09a9a81670e585499f914e57caf32ebbf8e0a6312d22dd594513b42d9405c1e7d95468d1b34df3b6887c759b260c45a189b8837ef084d1c7b1d29b183a7776c63a38a02a648dad74b77eb2bbfea7d8923033d645b5be6d6fbd340ad1a5baf1ce1eb91827e326decd5d77c0b5b40cf88465f0e34cde9407018f90b221add2639e9c100172bdc45d7c483b66fd3cf24f61b277521fd21a93b1b697cc37be99a3081737469b998499127c1dedb41b51ee3c97da57b3bef76deedbfcd4b1cafff50343b9bfc2ee9752ccdad0b113d9e3199efc6f5848cf71b3a26f2268ef71ed5163adec2618ee0bfaf3c9da8b5bb20744673981789619d0a0df3b6c56cbf8457467630e51da73d1b3f9a9f43f15e41ca179170e9a17c8b3417d55bed191d4d189b577861be6c30d59230773f353e511ad04b0add66c728fcfa4670e68cfc941f0d65ff8b109499203c93ec1733679cf265e6a9cadde1bbc7e68032db2aa33fa9a4f026d025dcd1e915a71d9d7d14dcda69128c38758b3974c2fab2cac3837f9590ab9236bd2f565c584117e9ee322db3e2d7674cd2d1e6261a91a4d00ccc6463f454513236a432d54a5c48fad234691b486371edd4bfafab15c2492773e22670c7621c3ef710c95571e3056ba02f1637b4be66e897fe37a52674417fb704ef387a1a2525aaf5b2109848af44b2c42ad90edabdeedc0338a5ea67b5d29d6a1198d2d4e552a687393b9972cbc974929a08e98ebcc38e2c74c8282a7955948d62ad4af41f62ae17a1f9f00ac13de483ab39c06f5f1a18261ebd895f765174b31976ba0e94b6b2531d74007510bbce28c0538279c6daa08e221dfbaffe4f49796f8a27fd179c7e90424d1b8bcccd400f198404a0f549f04b278b55aea000aa90cecc149a7fc9c483ad1aa76d50e62acc2e30ed303500014365362716b274d9d849d02e076bc34c1f90e74aadf6adf95ba60553d6b7fb0d5c043b6d30e41c474a75263f9bf8ce09a321ffe1be19580b2cd5a70a2a41c12ab0b1bbb51b91339573ac8c47744c182d97764d2baf729e790d2d18b155476058718bb3ff4bcc0db9541256dce5a574fd677d897243830fd639d6211f487f8e1e629109d9a89b72c98c5e4118db699f7bb2d8535f664f9976e57ca46b7b2fdb4b0566a29b37a6c2c69cf4ac623f2c78c481c014a2bba70315b5bf8e486fadc2b6a2024dde99ca5d3b76b7611d7df9a4cc73add75e97e636257d12845c0af47ee8223210f97036913354666cff266e92d0af3f215774f2df8d8ab2387a561378fc9187d2aa76c1a2626117fd35a8f382a94ace495bc6f073c799abcc7c3741e7e0f505c742aa1c219b63317f88683cd5504b23f434b8bf50bac9868c63403c1f8b3ad2462e7c0ffbfd2688bdd94ac0f89d1c81f6ab7856a20a5bdcd8839fa9100c7874e835830885568bae7cc3d7a4e52b58b1972ab52d818f3e3503e75711804e9b22dde36d719668b631df3f94b382c53379b1638752491b77313c7bc153c04976270e441cec69453e696ec1880a5820b495ee82e3d3894a9a72f81ffb9cbda4e3e27f76909ed87dc2949b5780021b0fc39909b2aa2fcf0ac4dd292e3795ebb7adf478f2a233c9d9b13bfb7994d94e531a479aabd96925df38644c19a6c16141eef2aff38e1f4e70eb8f7da011478e8e97ce44e7b5bcd096dced5a270a31a99ee7f62959bbf938d5faf819f184a80cc2bb2109e412cfd947f519f2bfe332ac88461d55629fcdb0efe7a953bfff6e06dabe5d36bf17576c78fa2ea608574540364814efd7632ad9a04cbb7219bf4cadced8aa21da6fe574343b8a5550051d9ee0f31da5a1adce496929d8dbb10bbf26131e7c87d9290d7da79f96df29bfa6f4cc40a80e5f0be24b9f1c9c9ebb997018c0ca93bc8f06a4224860dd4712316ab96f39848c3f939a1565d2adeac2a435ebda75b6c6a1bbc1bd427bfe019084f382704c43ef5ff41afd604430317ab54feef755cf209054a95945b394a5824d9bbf0b2a2ebcee944cdb0a293907c0fa7ddf115f9f082bfdec0fefd087289247ea3f0bb52e9e5b0d72b1d539cf464b55ddc53caded01fd4402b8894064f4490050d1d3c67417734240c21a6222b851eb5994cd1049caeb8adff6a869eeaf511a7ab850e555b38891a4f510ae91aef9472b346bcb7f21815775c5d6666d9ef8d80dd17525dbaff862db82560c943ea6f81c28f437e39ddb940113f2f814d8c98aefa1a32a3db6cc7942437512ad1853e1ebcf8c49bbb1f9b485bab919c89509c534ca09ce2d9104c4c108474bb057f9d05076cf87de53e43138515a21bc10e15b03f5d95426a7a55b53d32afa05c238499d1b9d97573bdff2a3c26942ee5e69dfbf743d348f4edb401597821a073939ff64e22713cf199b398f886f0bd581306b626d601425af6e984d1101f395721549cd1ca7164fb16cca09b46a13be6690c139bdd48e05b511fe53ad900d6dcf1792d62a09e72b3ec2ff0e4de8730b065de40bc6a0641ac0b61ae91967b7fe0e7189dcd1169553eb5fdefaf7f0084a5e9d707e5b5567cf30595a914906df4517db364d856cebbb2e685163c5076b276c04fe6c0396219504e7f14c421161cd7cd297ed7e0e5297c10100f1d3582e9873f73416d9b2db97b9da6d77564225faca62c772e73b0b86659aeba6b63a6d1f33e81ae8f4787f707f26f6cf259618638f734c12d95ffcda1daaa44d01fd2ac687c28351fe8353f644bba499ebf139cabf5ffa8321306228e6cc8e615b12332064ddc40582ae3d0325eec50dead4a2e88560081673b319213a3e0ec73d52fdf2466bf18d3ac04b2075584dcfe77c47032b38731a7cef00e238a6ae602db79b38276584f0e04cdc99f4a4c87bdd42380fdc673d14f9540e231ae27fd1231a676c631263d62b02fb2a5ec9e5252d15ac13f1bf9c30d7342a69e960583a9f158483cee645438113d69fc669604dd4137fb2fc35d71d64cfa4384acb326459d2b73ebcb1635db08bcc9dd4657aff95090e4653cdfd46f13afd2f011f90fb4a20f68afab67bd221805a55a210dc3727aa76aa7e0f9e9751c503e28c066eff2f8945ca4223d37348283419d8da00347f401127de1e6d4ea6bf3c5aea8c0a302c1ceea0c53601bbd554f1130a10da9452e5e715480d59676c77ee6b362c45c6fb52df4bf5d7bead62572ac22bfe7dfaffdc066c39f5b65caf04fda476a475499e1d8b79a6d09d80b20d6e55edbe10fa5ccaead67ccb8e7e508470eae5d41e4673fdeb3dbe11a1b30750904560b05baed0427078f94eff8a0fa01f3d7cfd09454bd6a3a1b82d2a7c46f7d2d4b1cecf77eca2c323a860408bd545103390d83aa0e6b21b01f4de9ecd5c6146d92663b85d87443e9a170ef7ca22f101cf472387fa5155b4089724347f489d1c83e7e3f15ab72fb80d3b350e105f2b1225336012742740059faf2b86501a4c50ffbba356b5ef8504c8e99255b5e3beccb44254f0b293f92f8bfad4612efb0670e8e6c00dbcd7b3764dd43e23038773e56020a47d2ea595621cebce6028508506deb7dfa14990afaa2803759e0274717485237b03f19a21a3fcd44a4966a5c8b0c6bb75571161b5958e12c56fec0d23393238ac5bc72b5aed71b205d245b4d1d47ae83f3f914cbee0420099f3eb1537cc922a5c03475b482ce130350c9e2b24795cc732c93194b70c040174a48ce0a6a4ec28e13cd9cb12c2d6e8c6a4476032178c5ada3a70e30de1e0516eeac14cba8859fb681d20a3a6b05c70ef46abeed6db92d2b89c55248e83695de6d825cb311cf4989f62c9ef827fa6e76aede97526c19e206a33c2054a98275e76bcd685fcf25a35f50a3710c55021e883ceb017567612f9c5e4bc91235ef71582b997ef77e5bfaac0a6c32e4c61d6e90b9a23460a6bb0654a54edb002962397304e94a25c257d46adf2f3ba4f276ff92d31765b33a4b24e021fa422c0d59f30594d147ae7b52cf51d4860fc8540b41c55e7abf20e3c4f19f4d33b9a7b9af1b7f331955c3fd73f8a53c138f5427356e03a479553c3bc284472bd6eba9b73cf74516a79c2a5b621cd5ffc920ec4ed7fb5a434301e0ea055084977dcca4ee78a709c79c60352a85ebe7bfa1de935aad7b686f31c151b4f9d5c9dda1acf48234961c47ccc742bcc04162e8adbc9e754692113548e8f589298820fa7dae40dc20f6a8cffc73d39d5405a3bc051cd39e2f5caee882a98302036d5f87f87e36deaa7f2dc97d9ece125307f537f315d176b147f2290c25bda0d53e10059af5ef628a2a234f8b251099046548a0eed8bd2e840d87ea95031365081deb9f09076a0f6b19c00ef0dc2b25edee61fa030384a8645767c1cde8f985131b6bf9c53f8ab0ad49fdfbb60a346fecd7fd3982fe0e8b63c5d738b0ff37e578c08f2dd569c160245a09d1b9ed2bb02d281d1b5a4080e2d19b8369303f34914997f628c80bed3abf5426c04abe0402c39feb17b4f254182b023f00c9d4d8938c28636415c169dda17c064be1972bfe8064fcca430bc5f2676807c659e9eb458fdd5bca940bb10820762046de64fea993e5910bd2e994a0c89f514fb0e1b3520c87bdf699fdee720b007948b63b45c1a90561a35c912f8830b51767f82b970bbb3970ed5b99ddc11fa8e152f8066160cd5172f5285ee13ef6dd7ff339f77d70833061ac98a99d5ea628e220016b54faf8c39987afc0b68bb8f2d033de6db8ea32bb883a640f62b686e8ad4539375ecde898b1784d93027685c672174c27e956e6e88b2d5481793698fb54781fb09f74d5d63628595262b77bafb2cf0e0577d3a56116e33237cbf71a4df3323efbe65247960eb85dbe542bbe78056bf65a28aa0caf9e4547ba1fc4e91e4ecd668ac316356b54816f7bcef7829085cb6b7fb81fb4b365dccada3de51233d4d37904cbd36867a9109755bd3a48c9c87569ca89f107df1bbd48b81a34d6fd19159c1a5663c9919fa74cfcdba72ed87a3733ac950c7905647438f807e8cc7ab6c2e71f44118845867cddd8b359092fb93859d37e39c7044fa4bfa89a0d633c6c42d3257e8e325aa2c02f4936e2b1a370a74310a1f31a63553ca7653813eb5f380fd0af9a20e6caeae6a0431dadc8f7d7517fef9510f2d8c8e4d17c85bf61b887de795ef3d23fa32f7f06fdb9cae2e7081241c49b042639859ec23b12a944c5120abf378d209d61d6c653f444a16aec5f3246755e56a19d2967a70f67b52d6648e3f00118b09196ca4a70f0a1effbc8fdf31981900d11f1be3add7c93e7c4be3f81967b845570655eb75a4946b2e67ea5348bd45b06f4b90caf534f3b2cc94e83e007b2f0fb6187683784a1832192dbc936adc37472f6a7d2f1c3b9ff7f58453ad7d0618060160c3ee475b2e8b349bb8ff02384b502441ce6f805399b3cff73df50d1150bb3b4bb2fdb32af5a1a96b66d7bfae2fe2b2c6590154f2fbd014ec0217fab7380809882a16232e5358af4f77d0df59cf895c238d1000fc4a0211aa51889325f09280fa9070b439d77474cd2d22f7df2c5d0e861addee1a9a22c0ef4c9337a58de4a25e41ac1e48a63e933540e2296e90cdc6ac312caa04bfc7c9edcea3844b5ce0a3c31de217e1829365d1fac16abaca396b4b15ad0f4ce7ec5ba489f409863854ae9b7ac1316f6dbd830b73e9790fa265fe4053e6019f73ad2c84792a1bd84b0547389127caffa20a72ec4a5c31ee778d789d63a1680df110994fb3b2dbce94de865f3f091fe900a088e6d6e2f9126440c1f103e13815ec645f05108c6b832430277a120702cf14c35bcf7a4f0eeb399b720946123e8269d5694f0d7b27c1060aa01fab5989e69c5ac51be7bda0bf9f9ca8f8c273245918ab37a52bf7fe491101793d9dde39045a4d0a1c3aec6b7e7ca63313e48a2f08204a1098de6cfcd32f85fbaebb856862ee0e9ef6201c35258944aeae90f8cd96d303bdd0b096b5edf8c0bcd150d866461412e7fc604fccc3911dda54b7085575912bb6c0ab3323efd40e8d500cee26891c828dd9fb38cc624db2f55e4448d854a07149f74fdb222bba267b39cef159ca3e7ad9882676d5017febbd6ee94b84ac3a030330b9bb2211213bad30376724e4e6afabfefbf9b96f05e59c2f72bd1fa12ecc57ea3f3e100762a5a7692603d27741c8e3e634f77a13cac162c89fe793a0641243b3a0e1550eb60dd8a76f24bcf78eb91314a56ff63703b3a1f2d7de572481086acfc1b4df0a40270ec0f2914ae7d188a77e5191c4f5cf36ef7a146b931b7b7e9cf38a9924a4091263c8fa224944b9d430b9089a6e7b296bbf1596d308d65e02d3c0b87c82e48ec5faf03b0fd288f97b735725272411f227eadf5abada79b0948f145218efbfd8d822a6ca1782b0a8aa23a03279921badcad989584ff66426fae9b90527cad8a62050639a5a8194131d9aa8bd23c76ab3ca9216568d734937141fc567289849e13c38c82d2eebde697acc996d7d8ced1029be856499c0cf4a7125e3058753b0f48361757c23dc040a0467cdf915d7f04d9210aa82783cee370578127c23272dfe187a1ff5e4788c562b8381a2a79ff96b301466f5bb4898d1c594b9cd7f1532575413ee44927f53bc6a9522b360434e67a7aa14ca32b76c21e02d122578c3b910cc1587a783e454d6b90dc85bf26666a3d93c298f4f5619216d3463cd476ccdd55e4dd3c0da79bbe43410a99ab116e5fd28ff59965f5c2fe22d5b593ded4e8054f1b642a20483a3be905023ff0efcbe8c110d4e17caa65d80397276dbfd0152a305f2793d507f652597208829c54f3ef7e98c477cda30c1b93889f374ca306841629f807f71af85d19dc526626437e4bdc65f195bbffdd7d8b324ac553224159069fb014ee116b9511d69880fe50cfd5bf9a0932d3b845e29b103b22aaf7b97807337780b75658bc0271aafd5e1aed8df8601e9acff156248bd2bc0d0237eb8582f909563b0af9e26f628b7f770e05682d78ec1d425c093deb3b9a5d8878cb8b47a498dfbbcb2a798e63a968915089c0a0c1dc6e95b0c2f74108906258d5fc552b7571e76ce1ae6b9005bbcb93940c50786819e0071ccd65c978f8df9cb7e7225d8054cc71bd9c1cc262b21a5db4704b53dffc00fa8727f18ab3fbf0318ed3bb739bb7ed1e78a48da93c5c35c99926c488195c9f25ec84df808cb75d9058f4bd5b5152f99682e9adaa23e2d1976fe9e31915ef8c7e98361403c3d29738379e6ee579b0aa10086868f5a86a4b62c5ff8bb9f1bc3610cd938418f915f40cc5c9d5f445237ac02c94919f92f0abd2d695edc004ddfdc31d00e3b2acf0441ece0545f87b3d29acddc5183f68b1baa0502f9b9bc418c53f8eefe1617ab8785acf51297639234964a556853c01900d41b0703ae64dc0bd751e8c35c28215226b30bb6f2727e18df107968c04970078563fd8c6381ce721087aff64951a25f6c36a245a34864bb8fd24fd2e218bedb9ed7ee775e7157ff03ac32f27a78f4f2c34a011d0ecb9b5f46e163f363e3a6c7f2a4c7fb2bf1d54e8f9e0140d82d5a0bdc03ddc50b1b4df34ca9fb67f2aa48078f85d1355109dfe2121f2e857e484653ca1f1f46bf4c8c4e68c67a0edf0369f0d3927e05e4baa99a5a85d845a08fa4cc1600dda14fa6b2cd4e39499d4fed93afcdeec3cd48da8af151f72e72c5deb759d7c67b328987a5c91f88e31a91419a9f17903c59956e2734706eb1482c3062fbdb8bddc754f961dc547fc6d5b883e42c440071cb9e02524432498be64f649b52bc5b59d3502aa1802d6860c9cc505d6e8bbce7bda2d1136ff1768da7f3cc8a27bcdc71d2e22a691f24bd6d2958180fbb22950080c9c1b603e2a5bfb6319f8efcd59184e303e1d24057b063cacd423f07e8e59e939648de0a6507df4d347ed21dd9d05030575485504957e20467bbb43dab2995b483803dcdc6277b51a99025378d107a755af799aff2c25f501a8628c97886e042f5e99ad4eeed32a8f2230547217a6fb25eb267b794f53d5fd7e628d7cfe61a0d39532a767388481e51037970a55686448dd656fcf9fbe5caceeede22886e368cea35a7d3d88a9b03ac0602c5c11f449afae571ae817d32728d482df86adfddedfa146fb0a6f6e918cf9f286026290ea89f56d27e37145b1da3b889b325432ba704a4bc41288164205a787d7acbf6eefcb990e399a378cf3adb2b120911e8ab25035c4ec1548f3fdf9e40f86d5476748ead764941264ae0cfec18df5c30fdcc10f7500128cf59107beeb6082593789b4c3ce0e88082240b6d9e80c1314ba1280d849a9f79e520ddbbca0c62449f80114a69ec72cedd83b5b6997a48438ef2946916b085e5176f08dbd4fb71ddda2f7e5a601aaed20e1154c363ce6c083574fe13242fdc2900fb47c7013bf125a33faa0d4101b480a988e6f2d2012346cdafdb839e2f2e4be4906c5e251323dd07ae0e4520fb613857d3725bf6cce34a54019e2564e7c35280e842d4b67075b406327af74197748fbc7d6fb7698ecc3f6d81de58307e5fbda2de6091d5d9c9bd1597674408b5facd5c02d77207ead3996c4f742cc93259dcac2ebf46e98cfbb48fdc4c2da0a4240883eef9fa996427cd4b4d98356489fc11595005486c482375743d9968158ba0790b4aee737731bd48ba5bf83b64db3d6aa4d39046d311f9a3e32d80c6d6ff8d2fab32adc255c86ab0bda12feeec5bc006a9528d79d202f065608f296b1498f7e3390be0696b7bf24b86f3c75bd8662b7a308892c7a9746e5afaae3d9cc266ffc5d31bc6e335792d76b5b86944092853f5713a369117b00138ade2a987cc74bd02d568754118ade8bb62a9629c739efcd59a45e22037ccdb48799b76ee2822332d60f52fc886626ef9b020f60d7a5b0340c1d85731c3c89896d55ec7feaa04db09c68590537396845afbf94cc6df297ce121938c17261948c04421469097a723cca34955ed32ae285d62bc98fc303479d2c779c98cc789c4e890bbc6d892be5513166c442027a1e6183a358f4e233e8db2c5180dd42539d0d26a64b4f25890622c9c70ddb4ac20775810fd87aacff84b04e53088c7740e0f5753d598f3bd642731ce62b96504dfd3952e4ce4394821cc5e10c119841e869a0d9794cbd9831883a07d719508fb2519cf6eda9e8cc74a6bd32781e57c8fb5866e8c15cec347dcefe46344cf3ab5c92dc88f4ce22d61a35e61f4c4c050601328acec57936a41e513c392f62be4f02940ba0f0df4242ed20f3db4cc76b1396c472a0b3ed4fff984079e69f6d100b0d17ff5d368abe4213e09fc121eea68a93d4d8df28b5e9e8e8963cec45f2e67cece18dfa7231fcf0efca3914a64d5010e4a3d8052f14cd94b7fad451bad720c4d2fe33945248437f8cd97970f96a80475d07d4f7d9d788fa81a7a942971ca7c6fa6ed7fca50147634cc963fad9c604a53d9db0de69cc00feea3c4a4de1d2ebf00e89c92629050ac978d41749426a6092b8bcb4e3790cd98dcdf314bf500f588e3b93a282ba425ba4f5c1adcbbb1093437df9a8f93c416f3a3888b09af1e3e91fa5ee1a27f0b0641f47091daa2358f646badd2dbd90009184f8a901d54eca987598e866dc0b7da70dbc9ed25bc99b506c6d3cc5febcf2f6a4d1e717d78aa8bc6d2263f1fd7a1dbd0955711306b8d18affa0b0a7336ddbcbdd6b8b494c22a7ef94b5039e298bc768c151a2272ece251687cd84c18b8018a12f0552ab4250d0b1f7fd2978aed838f093a08a8b836ceb256f143743b43ec17855a24c47255cc204b9f5310fcc15fe1e08d48653ef79d26fd9de7d172e35f5cf3a004e15654e4805e8bf9f7be914f3cc55870f31b09c09495b433c738e4eb14bc7ed774f3c23974c5643030e58e1bd5c5010a3e9486336f25434da8a743b24cba71a10ef1cb2dafaaed433880e88f924aab0b0bb9307c7d44ce5d32a215e34e3fb3c6f8914addd712b4d07b5ecf48f2dae95ea813582b0c2adc0756c9e111e6be3e0fa5433fe691c33aca0aa47ab23a12c5869a0bfb1a219951eb25050f0613ca3eedd6a519008d94bfb591a76d6597ea159192de6efc133750b56506e41fb31e7dcabf2a2cfdb44469db7bfe9b26e2235a2f825cdf58035cc266253e41c6cc89055d961470a58c1cb673880b58fc88ef2e5d5a30105e2cc8812e2f44e5ee3cf0d5be9e02001496f43bbbec7fd098d15fceb571ef08c496266dc838103c8b6e56440f61999495f9c4228c4f68c0bc6bf5b0abe4d80f859b1e6bfdd4cc4d12e50f31f9c5ef8b17aa924dfb027779c97ccf5f7dae4eb8fcba61de561026aad34a28c4c0390c0aa50f7002e6c7855d7a9d59a1cf0b4fda1386794582d5ec21d0d76bbb7014a6d80905ebd32ec58b89a26ba6694334771712b67ed66d95aa087d0229f50bf1ddc6fb644be0a54dc146d350d555620b039018a6619c4d0a2d5f3368b5b98e996ceb7bd1216220d1ae9dd5f94cc510c3fc7a71b2ce765023592fbcb20f355edc9f203f0eedec334f691b84e384cad6d9fa9f5aeedad2729fdced9192a35a3ca6d5123272835f195956f7dca265c4d88d36becf5ba19fa8e6e0aa9845258b33226c800776ead76441ba574cf2672e3e233ccde27f452def36565b21804b45836eea701bc4c8a089d587c2daf8232d370e1bc64e92b8933dd94276db88b252fb76990a50b1f07739dff09ea5f5ba7c657078189aec8784c71581d49af832b899773f1fdff959e3e579016e20a424fec8bcd3ef35acfde34b43323ae60bc41a1f9ad5230b988baf6cacef5f4d94e0c11eb3f706a1cef797e1aeea7865d21da7426901def9ef64478980607282dbf4296ea763ccc7b29b90e9fd79d91af8341bc85c169c92323994460176cf66bb221640d6a2d1b1f2c2e9d6b3c4073ce6b29e3ea1f73726a0d0d2345ca387b6f11956f49ce823d141bcd1324abd47c9f3d655b5cffc7bfa4db4ba8205ee6023ce3bb7d582337f27bc38aee84b75b551ecc8073bb5d34d7a98eb47ee606dc6552a429eb75d583ffe67cfff836035645f560258ad54f25d1b92990fea2c3e5c7013764a4a4785650e65b0f3892c67ee7a2cedd3fd61e6daad81280e0b978b0f65a77384a3052736dccbf281fa711028c2e620368f69fd9dc271e4e5a9cec6eff99145feaf866d1705a8428bacb55f8176f795156e25e3a187377a1ceddcf23733d518a929fd39da4de20014208eec4dcf904a81c8f5b74876cb2a23ef2746ef0db5c70292c48e69f1986268a41abcd1c6456b5998dd3e56cdae5c9734350c41a746aa53e7c23233286936918a7f1e5ead0bf22da3c403b4f49c1b6f8467a663b8d4e548af0f4f513eeadf4f27bd3a00ddfbf045b184862b2bba576391795d3b33ae22fdf021c7274e75f00eee103abfba1d082d6024273b3e0152edab21fadd2e30f44265787c66700f899311855787d880f0a2727c60920328b7d44bbedfb7f8ba06d8bda256fd7f2e9b0e16011c878c9c2200a998a62e4b120615695168c00c9896b40f72c94c0c0230aed890d872d5308b36623a6b277ba63123b4312210b92ba43ae88878770d5d9e5720f4e5eaa69d8fd48a6c365a82623529de7ab87e1e6f87af01ef43db1b61cc53212b4433b5318c37e6be4586338494281ea87db8781b5180ded130a12784bf74b54971e4832fcd4d4ab51478d4e822fe35a95285f8383f04fdade4a50ddfee267d8f8d31d88f40d4a830c31b705645c9205a4e8bdbc3c4aea14b0e7191bfcc8b803d495bfc0cd2dabfe9e784c9735f55ede0f4ece6f2c031fb1f3cc034c3952f14a03d402940a96f8ec87c653f6b2892d98418c80991e8ce0bc0c7cd80b44b4c3fe6c24060f64b4b4f3cea7760a650e96aed084f91c4f54fe4e4ae991d7adfd555905433fa1dbae25c38005f624265a2b6f36e4bb434f5aedbd03c4b6de33d8431b798536498c361728bb19a3e478492fd2b0ae218ebf2def9ddfb3bf1911a075cf5ca0214d66eaa7887133f9f9f5f0536467210c012224335c001ba289ca9a133cf7cb6b533ee60adf4f5fe0c73d55b24c33ddf1dd955c4353cace1636c7f4a632d9f401cfb481c143efab20c18b0e5ef38b88d6054fcbd2e9db3b56d213cb486332a5a9be6fd7ffc9b3843f18ebf622f07577867de21a435607e9a7edb8765ee983a719fc3a58449169f65515a67152bf97155f1d087ebdd93929517049b12b1397363c93480c9d77fb4f5b98a56bad380a410d07faa8e139f93a853a8812f83278324a3eda92cb1d9f51e89f9181eb317564244c030bb75804c48e1224dcf57d9cd86291153c07c3a5b425d9e24f605a410c527958a3858945bd994c9efd3d51e3e97dad5f460231311487225922c7cc43d5d1d658a53ea0438c6cb9250f745783ea371ee0d7975f6151a62721f134a8ac7e188e688fccd0eb22ce8f045d84094cbf91c7cd795d1192313b49e2d8e45d3df23838263728f103207e3b371b719667f02ec307f7a6cd560ca953a83398226f3265c7b314ada68eb978870208eb21876d4282a95168e62fa7d7cf28c2dc1ca5cec4b021cb3c45d0e56b7e1cd7cacc9150b303a08bd50e4a91917dd278419bf8e5daac2e4a63d118fec59d70f483f84ada3471932bee6446148b160b0e60e6be4159731f190da229558bfd3f65a89d8cfacd9106341657ad90aae7eed5579844769ccaa0f8e6339b2c6d7248dfb15f44ef4fa9d5661127f601b12060a47bc14d3d226d996a681cb192632e80d98ced3c20702b830e41b43343d3609a09d5d5f2d36fa4438057b56e76ef52d8197593671a0993e404d115ed98edfba6c2c9871ee222f0471c8837e5cbb6fa3ab917a25cacfd1e92b2d5fe2a0cfb2a162404cbfbde92630760796a4aae636211116330d4358defc95e9c7aaf31fbf26412a3edcfff1cbb40a8e28f7a038fa7fc6723226d9c1f4a3f5f784531258cfd2fb176e02f769ad5ad62e753d4dc013de1acfa1cbd7115ce4f95a1643177de6b59079aac18729d0de1fdd7439be0f2d6d4b7b1f950d2ab23a236831da5570b83e7bdb5bcf5d82a6c39154f48eddd8df84f72e829a86075b90e7ee9ced6a3f8803e7053d835def41c30132e0901898b9cfeb1f0e15208119027f8a3298630719d9ebec59de9557665ee3cf0865e4a71f7c54abbbdef5ac6ff046db0e84ab5744f63b1334dd5c3720a19fd3faf8213ef1a4929ecaba9956f5f1e9460e049e7748a6fa572c4623127607599f300103e253d9c927429b1d2a1a35a3017a091daf278ea34f28fe4efe2700082b01b534b4d983896ea53f2b2a98b0d07dbdc150477f2b2e839be46521d511da2cabced5fe12c2533301db1a12170caaa2638fd9ee5103c0159ccffa372e92fc9502aedfa5516bdb643f0bab362884bd39b6742d03019a4814d5e1c70485821ceb910c63d1818516a9e9fa8afe408fdd22dfc6ddf85927ba7326b9f7abc0a28653543621e09e78b9de86b7e995163afe2d445b354b6f35b3e908982470e09733861fffaa562e1210327f0fd63e7b01cffb266426ea8e2eb4f7e7262340204cea4b1ba5dcac0ab437b4de07d3ce9b62e15110f72c117b8edcec8ff0df02e141d9c405967be0036897ce11f88008dcb3b9ec89a1418482c48b1c36a7b568086dfb68ab52e3d233c6416f6d468288761606cb7a749cb6e65945765279e295ab1aa9d2e01caf1211a7a152ae1f02b6c05d3c5eb10057ff9974dff661a9929b96b0c6e3bbbc0022591a4024598009c9f57605866d84af04b519b957da1c2e67f5faafb0cda211eb01f346c64e10596dbd027c0d2f7b02e68c0ff7e329ba531950b12330a2c53de17e9ee80f3460214a89206dbf05bdde04af9feda6384eb34fb841145d16b45057e7dac6d4927fa1d900d116efafd30e9db293d8b10f00f3c9d93f6a8279ca75a05f8881d5a3b119aff4c6ae1abee5491d108044097ee68f4a7437eb4803eca546b5d2e69b810c5b76e1ff68599fe781f6c0991d2ecbd9003d992ced18af87ece60f94cbad71b3eab3ef32871851242bb09d5c045d0d8546be75f78a0541bccb37af84131e45a3d746538d9849cc36e30e0506513b5db9db7a10fe2f5cacb65c59476de187f8d6effff4c949c37a80431d9d38378bce3bdbf41007a9b50c4fefaf11d3258f103c1456a5909a0b207c917a008b4f2053990221213cc0e64e7b7263aab922fdb0091b263bddee10efcface3ea3fa6674e1a0b4fee9a1de0c650d4cad9970833307617a389aa0b7fc5d10f438b8b9af4dabd9bd4a785cf41feac23acff45ef04afac969320ade16947d14002f0bd28abb2a9286f22b892090674feb39ff847c3446f54bfced500cf72102042eebda6be2ca8b38cb090b67a855b264710728cbb078645ea37abb2b71bd029888360fa8336766d0e1201b725f277091dfc41b5e0b6e567d22ea3e56a458b1260e4531a8ad11414ca5341a9bbe67972e6ac3dfd91521a3ec676268844f573b9e6e76bf0ea2c742532507872dfe1ba82f77ffc3d7a23b252a39dc9fd99a2d9460857265800d00747afbfc8e5ee9c1e513257b8ea50b502ee6e66a40bfadec88d633378771472fca1356f8a19aa0332962a7e13c66e025613fa22ffeb02163aa60cf95230589be274f4e86d6b0bf0a599da2e8a3c4386828d24f5671bcf6a0eb89c658c48aa3ac7cb09d1bc82f664ff163e69d78431ed0c22d7e580a9666630f5bdfdc66a92534556656aa3d65489ebdc8f9213feb16b6e5d287768f8d1e0acf73831c702c8296dbc2c90f5adc0f9a9bdb18e65f796f9ec301ee6d478bebca2fa2eb2e258009110a5f8fe04fb8da4cca65bf3adc025ac269df22e2a4a1ea3902da968c4f287b48dc528794115e4570e10f65ccc4a665d80bd875734f6823dcba9d1033462bb333ac1239201f9ef331c1f005f9cfb1ecf5a801946a579caeec026c5985aeb0453b0e42af30175557c9719d53e6ca90181a2df32333ae0c08d4f03dfdb217c385afb12e43f89c7046ccd835082baec5ba721509cc4b4e8ee9d5aaf02068a1d7885f87a5108e77bd9123ac9976d6b81b6cab7ac1e8cf263281f3b9312a6c543e5879330a303aae797f6000367911daca9b1d2229b4312e71d56fbe2a4ba684c64eea0f498ec95fdb2f599d01e474892a0d09e75740e8e573f61ef9c770fa015b1acf36ae295601ed55a1b102b3c1f9fd1c364d7b2e3fb18a9b10676542e8205c6764a39a1a1dc827c2c2e1d06c2c028ede2852427adee5f032449ee0fbb9a0739e99c4d9ae4fa64360771f6a37e3b877f882339d0aaae0ab984aaddec858eceab8daf3801128a443d01217aeb55e7fb4e4221d2f8f0a845b695fcae3d0a19e4f42ea965e1e833e25a3c705032bb441da9cbdb0c79df1581e015ae7a8d3e6ff81cd4eeb6bfd76d590effe6183283a76f34db9623d9109046f39d0c473455a9097a8b026a72e3468744b16ad27f4f13fe827d3b8bf43b698c7c3be0805d590c6b10257c0f5a3c087a59be426f3f752befbd2f6b0c504ae5469c5eab4b8c73f42c7e1d0af59e016791b327a3a918241f2199c5e5e5794f7e5dfc3fbe5a6c0df0f2008fc03358a84204017d47f60f00baf112103793720729b9fcc87a5c4a144d4dcf55cfb43316bba5dbc469e3df64acadafb882078cd01ab579ed7fb48fa931297a01f0c987c5e45bc60bb74ca0fb74f8214a943d50fe26100f6016d95564175ab297943cda26f7222a4136f7e0927a0aa25a67c842e11c52097ebc4a65f554ea0830095afb80e956ae416270ac6596149c0a7da9566c72112f657cfd6e43cecbc2b02d070e95117a9365c9a1801307dd2e7914d6fa04bae28e6953ef04801c7996046ddb0d525d27e58acca8e1119f4fba28a545f592a9e6d952237319a9719bab0b35e81a77a4a9b633ca67ad5f3385fc20674598ca86cd3d3ecf8ec13eb899f6dfe564eb87dc80a0b16646e3b70c6303809783a89cfcd55c7fe78217e939aba0f30ec577a76ed1849f880db67d42be6654d6a59fc0db8d804f8ebe2c9ecd424b4c8df37a618f9af6455cfda5eb09ecdb367d3775fa87436b100d2aa8f12ca8e6e6d574a2443c1132b6448d4ed33158eb34e835536bc90aa152a460bbb5fb0d6d5242d3ac8821aa546ad7f99b6312f26774dffc85a23481b83e8367f50bcb7c07a4d16789e2def3479eb3d5285018dedcbd7d2ac42ecb67d08d1295a8c85ca8401acb2a0014a445f545746dd3287d71135c6db0d1f26605c898e3c3a8163774c7c4c9cf8c8103976fad34d3d090ec806408355a6ba8429d0b17fb90c296782ed76577d21b863bbf68412c59ea7bfefe6ca6c3bf04b45ba330221bb048f8007a0f9b117e0410402eea626394418a2cbbec0db9508bcd07367d7ed2279f8386d8a7441ec81ef0f4f4792d43c85414d6122b60ec470633593392b13b969726e5c15b11cf477291522017f9c13ed13f16afbe9ace4db0ced0199c50d3ca5c71a651894d5aa35ee492e9255a218a2af4ed3e545cad0a2a55686e1a943c8eebf96aed0db154fe7d30e0ed261f71ee29583018fa362243f098b7aec0954cace657db4779b5efefcda21aa36c4413e96a01ddc97beb4296f26b87150f12c65c66c49b205004df956e601a5a5cd5701a74b4654e10c223042458cc9809372cd5725c9b6a876f23329c98dacd3dc147167cbd3dbcfb4161e69b431eff19592eeb9bbe3c9241195fe608ec8a48f647ad8ede1c613cc4ff3d0070927ce160be2949ccd64b1e0c062637b132df9790513f8be96c241156013b2a48fd279b81fbe19e483f1b8f60cc65245f9760c96b433a3c63605fd52f5ee5c678713c262ce283c6bdcbe40a7afe96ef56274b26f150583bc18e87ea67fb93eda74b0479e01c4f407cd034ded3a05add05a4b10f80869783ea21c1f2117067d4aca4adf07c0037fda567ccdef4e07b410e9eb9068721c7bbfd66180204bcffc7dfc37888bda8a9f769072bf04bd93c798fd06fa40bba40fb8cb62302c528f828e139e3f15436fca4ab83639f94670f292d757e200170f66a81e90604ffff5fa2f76693c6aa4cc9232f02064dbe892dc50bf7b3719ee0b9b5089d26e42977a9ff17a6e3a27780680b5701b35164727ad4e6032cf9c663250d906680248ee0898919100c01e73b2f60e803d824c3c35bb02c2d6a487893bba6b3823e7256e57bfed79deff421abbadd1ac8b37cc9041555d93f953ff753a06a6665c10a2c69d54947b5846c91bd7b3913d819274c55357ea9ef731bf0577419a917466c0fbb1e19fada33aca2eb0d0035300c070c7be5ee629446fb9268e7d2ccfc6e43009d81dc3bae7c65d1e5d5eb101349b98e3c1229c6f1a67d326dcf061294829d6f5d0b3c15e7d7ddbccb685622adf81608aa464a41a95e901cb00bd000f5e470764cf568b222400e28694ca130dcacd7e0c77661454ba99ffc0eb658fbc4743083a7ad71fe0b66191aff74d142d4823428c86f77af12e1a320f7decf83efcb79982d802fdabd620e94d2c8d2cc1853d000cbfe3578daff553e4a0dba9bec047a966297cad3f25f898e5320616d0787f9d5624b87c58de19c4d9da25e9e450d5b242cef13b47782b8d041f871eee9e0be6c7fea33cf793b3a38773f1ce723683c543c7652056df861c56f9d66c47b0ae5f3974ac8d887d167c92ec324abcde26239b1d31fb865b353c4bd40bfcae3f7268e484ff761a52a01f3c0ce41a5ca83eec88957b557844332072f45c25980b609f23a5a8aa6a9bd6ef392200f472d86c9d04f1670c8356d71e633f2ea47da2e110b11ac7ab7b36d8a39bac2417e66034d81001a423654e86d8adf5a20eb57273ae31723b681c33f2fdee9edae6f830df3eaef3bd9c3efd5dcd313cd8d18b485b77b12abaf0e52b8008fcb1ffc3a18bde3e5a412ce6ee1ee72b7a447eebff56ac4ac7ea240fed2e0c7f944728d8e6186c17e4be2700c3d79e9d480f31ae911cc98dcce03cd5892a2f51026783b3017665453dcf88b31a9ff6f9e690db67fb9c4a84a64adba7c521bcb1539cc4e405f5cf0ec1fa58c65fed49a99173913dae206fa08dad5c6b9334bb6c452a948525046c19ac2bc7b75b5db68f3ad4c47372b77d03c6554b055bbd15231bf53c89bb7f777732afa3d2668e40143daeed85bc232e2b455e17d982b09de19874e0efaadd4c2be6f2ca7d4996ac3e426d174a0ad3158e264f50ea41652470141a0e682b33586a3ba713585ff57f22832c12c5672abbc77c0bfb8c3723ea40ee906e7dc86bacdbd1dc32181b533c2af751cc5794d9c061aaba9cf92464fca71c28ce8afdd95be61e5b75742cdf99f626892b6484a3656ec3ebad91acd4ee820b1ec948a9fba3cb4576e57ef2aa33e2cd2ad68a3be0f615fd351ce91a02b155b6b20df227b27487bb8f76b0370dd4a23ccede8ad9c6c0c62e0095592ff58293362d9ec74fce1e08e5451eb80dc9806d91ad88a0723238fce92c3de0bb4cf13e38b463ffa93abce6126856b869118644c4326a525d053b43ff14089a6b35f031e581e2ca78d615ff09694653f37f1faf5c12daaba8d638e741b99add7d64f5f9f7c1e6d1676064a93cd4b06a48bd047d87d0b3034f6fc66f9fccdb42089f5890ac237496b8e413da7b1b797899c3c4bf4a8a2665387ed8</script> <div class="hbe hbe-content"> <div class="hbe hbe-input hbe-input-default"> <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass"> <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass"> <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span> </label> </div> </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
<categories>
<category> 总结 </category>
</categories>
<tags>
<tag> 总结 </tag>
<tag> 题解 </tag>
</tags>
</entry>
<entry>
<title>总结1</title>
<link href="/2024/07/30/%E6%80%BB%E7%BB%931/"/>
<url>/2024/07/30/%E6%80%BB%E7%BB%931/</url>
<content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <script id="hbeData" type="hbeData" data-hmacdigest="af74c6932c43027ccc7b1224a44bfc78c97db756b988bc350973413347b3ec87">b66ce848b4d743f8d8e217056a5eb23107b3ee1df14b8210f1eca69c7b8b17660cfd52cfa8f35f887d297015c02d6f2adb243f2509822293eda8da1be38a6c3e3e3b4a953bbc47e3abdc82967652cae7f7f4feb5d1a1abc045c4fa8b99a0ea14433b8103727d51ac85075303a57f687baf3794cc0a1b11c547959689a793fe8b10caab9bc90296981ca2738a6ab4e08b20359562b643c8a9b5838d0805a64b234ea38943bdaf0361b9d4e4915798f8885b78094d41b2ce192fd7e618ed5b78073c89a01139c0d62028094e95d9e9997a4326e97992f6689f29e4313b3c4e964654bb734f52b0361aa283394fb949a65aa28117256e92745cfaf385e6a1c6df7cbb6101d4d26e922fdd5c3fd59d18a1017494c009a278be32ffec24f1f7664bd68b02b39c85ef81989a65d89462ab3bfe98a16e3c495f75c6eac1f345f7d9feaea396d29bc02ff99a62082e8076b22eba5c0aef2be9e5c20add55fd60158c70ff95626eeba696898c29abc40c8454b93b6aa555057036333d8a1d92ee85fc606b1f789cf1d993369af8e87312688eb47557f158b64e455d1863867fd183c2aa5c6e17d70aaac0b77ac130c9218c7876a3aa102106bec846c5400ada0c68dbb9e971721d60bf2ab1f565842ca209836401118633e7876bc9855b8cf83649b98c7ff1eea9b9516fd260eced0f8118974c0e44fe04231c54d2981e28bef990da0a02994290cbf29195c001dc6019d1a40e4549c959acf0a8bfd148681828c434dbf7a15501a91de83ed36cef69750ee1150ab50da2cea44dac5332a69d5672fc92f7e88b03a59df7b23c6c1c8d540de1bad93b950f27e80237d53131b574bf1d890c1a4bfb14640e39c883872fc24d23ccdedd8bbf89fc348bc44ac279cbabb49d5ecbd62dd53a7becbaf7f5e631556b3a13647e9e7550fe2f8fe423f0920fd9230ccc691417bdcdc4663e2e3252dd62f3abd1682fdc42ded153e453a51e08ca00e937ce977369567e23757b7e8d7a07713c899aeb6b8dfff184ea8642699127cf0e7a6709e328b86f01d36cd0c83f6bc1a481866f8906196369965e8df3b6401359324c00cea993c66ba71040d02fce6603050a46465c574094c35c21d2695bbbe6650515163199ea8d8cfd5f348106c8ae019ed7290c9ad63f162594b3020637af1fca4f905197894ebe0f8f3e8aa01ea9ee3aaea714c566748ea35a339d3d759d497a7bcf9f4c564add8602b1d17ea27cfacd5a94a40d2e185b8515906ec1991291e2482607381a94b0d1d571dc4a1fd46666d860c1d768e2a790726db7413f33399b77797c545b4e4a3bcc793cfee80230eed01f80403b2544433d6cbd226c0e0a7427f25cb9ebd56fc4af8448864c1f50791ba8063798a302abd51a977429c3cbcc164deea2512c17021e87a0ead5224e516982a1137d51ae0637ade1df7d243db0021f79d5c761248c7afdfcc0dfe17bceead0661202b30a88a4a0b1eccd586241bb43e1280489f9bc996cb0f445aee433044d7aa05e2a7915384b5ae9e778f270db3b46407279b54fe1f63bea65e60816410c5cade654e88ca860f6839ce46fc687ef99f16dcefcb181f50a48f20d90f522cbd4ba4aa779017d370b6dcb433a44663197742f337251969140ade0c204dc5702a891c08be65e04b0dcb241a8519886d9c8e5fce2e510b72f73d9573dd8275bcd5d7f7d91f68da76fc58cf067ebe7681e9e3fa3b31a79a0d72e2239c823c0aff48621ce0d5a8861104f495893e53a8dc701d90206d679301cb68392026d720c41bc2fbd47633be2785ac47dbcf8595b9fc13d58e019bc90640e5735d8d579c8080309d55e1193deb477c98a978b8a04a16c1c75376d0e723fa97b7457eff06616abcea0e03025cde4fa86311a15fdef4b2931bbef4a71dcf28ff5dda0aecd269c19e43e3aff2e08869a015c6c2a759c95ef83d133a821af84911d32b9471fa2d377528a09ae1e1f720acb052e0a9e7bf306dbeefe66c114a2f54b46cc97e6f97c88016b9a7370703e0adf718242fbfed8660086922cee356ec9700261c4b01017778994b40c6b369ad4b0ff0a4ecc3db204c496f3b55f0c4f9f746759dbe821f59b9641b728a407f0696fc2078c56516bd02026fd2c5b9d338d101676c3cc709ca89e1dda0fd6b32127d3e4c88d5691074b8c068064d4d455a917937ff9187e5271f8c8162bf6af8e4c2dc4541391b145f9843ff7c92be0a261ad2ad374c42e54f1e202add4e9c73a9fcb9d2bd63917d85df21d39aa07154015f3dc9b105df8cd41761f40ddbe9ea4fb04bca5d0ee4667207bc1c836a619eee7295099d80e04365f3263644a3560075251379303ba8dc4789d2bb5109b93c8dd276f479be5ea49313224608899fa85ef974dfa9d6c30d4d4391fd16a6b742b785fb0081bccf831c1dfa216232b833d3927592e155a4cd34053a6a548fe2a6ae391b01011bd8803dcad80c09cd93849cf5f8e234266cd54047fbf22e9070cd9f742633bfa6823f6c6c47669cbb9c306c0e22d90d1a232873b4abea30e064f17b40ebdfcc08adaf5cec02ad99519e30e9931342700e76a02448afa3b996a483e2c097e731d0b4a37b8880c1d50c1af088f1a30c837683dd2b6022743cfed9d49e19f5ed74b4a8df3c67937c53aa3c0265bd3c72e28387174e775260c1a56a00bbd55da6cb566140e3cd5ee2bfa7ea47379a42039ab32836a2628dd5e2c1cd17513106df9bac2bcc103cc415ba23373571207db6e727c835858f1c2d9876d964aa057d9b0b1874195c96cff9e84c0a4a659348b599cd0a2afe65966e5b82088f65b239a58cb27dc0e7944c9a723bc8309f7e62051c4e562326b955ea65bd4d59c7b49425d4da39d3e58c05c16ed07c78246bf305a39a4b7a8e5634a47acf4418cd15ed7359e0b405afb0fed088a962301648f0f1d89462e61b0616a1954bbc5ac89c6f00e07a969a5be2f1031d3a23e0b2d7625cb69194dfde3f6308ced43955dd5622c897d363fcdf28a67b7547b0c2c4dee178b91e8ac3a3cce861484dc9acb3596a0f5e4e9157366c0917356d57a6bcfb74cadedf6158fca0075e0999e6c1317bbeb150c7554f19cda5eace4e9dcf2b7a7cfca8704fef6b4c0b41232c5fc0b23db8f548604586149d19b8755cce249351f42d183bfc8349e5578a2a363388b5b47c7a7d098f21c83156b83e43f2558b7fe6c28272e008240b02b5b32565b21e5ecb6d9a63079002e992523bb9384b43a377b3e5121dec0676cbe74a83f7d3019bb83d4de34cb719685c4de6c5661bf782d439aaeb8fa29c2ea153bad50c921e4e0bbc74f277de868f5e27ecc4f1be1e16fd08fd695edc00b7882173b412860becf0fc870393a97449ab32a92f282a90442258a8b04b8c30e66a08e15a57ef07ec4e782696efdf6e0a024c0544e746c969aa14275584ba8167ef3a4b6e0dc5a9cb712a9cd31a918e6df2f055d2fe8c13189f8e99df5668c0ea23e42c61aea0537444ce2e58c86dbb81ffcf9b3744c05a5a7b4a3d79f16c2f5962956fd96558bdad26cabfdea51de344e7d05818de7405fb3fda32dd5ee224fa31a5614e9dcd5a9c88176beba3c1ceae600d0777e6ca2e9b19a488ea8b3e2339532d7df64743af00cca07bc0711a6a53f480ec916b7f637ec1c46aa9f3042be7c15b18e355ef7cf1f7e99307ef3f5fbee755cd56f6914bdf0906399eaf07535776b6a1b8049e03febd47f79f0296bdceadb57c740cd8c5276833ce74fc4320faeee13794a2b88ed083da5707c6478bcf295c490601a4c0787dda140e4fc9745513a0a1996ee4673a309b179278d4537f60cae12394806e95d67805a12be03aef4eb49dde6333ab6abdb58c0de3b0d8a853b756c02159b0ec628c42dcd7c1aa733d274a64b4792d3b99082f8d4a15ff815ad2b4172715a925fa953c9d86be88049ef56a393c7506a3b28bf09e18e9e7d1eac597f4b34936906174e8eb8d5ca26e157a2bac2d726648bbf6f1452cd7fed05d16213a33e7ba504d4fc373eb830e2da048d01b7b7eab1d57409cd38e5de47c4d5a838de6e8db931dd965247d0eb9b078873ba42fac88005c8466419e6567f5ae013c9e7d0881d44305543e4f1d25f0fee972a1fd70c3a133491ceb21c182a37616e0975f26b817306bc0cb327aa78a78c4a3beabcc24125147f506da3948cade9c267d445b7f2afd6dc7ea20158feb4f58538c708338b74d55c0ba05ca07cdca68301b6979b6c454051a87900bd818fa38a138534694e67401fb7b450d903375c7324d6436d38e3415a5aea644a9332ba2c8f39ab6196c31a041b89010c2a8ce44fc9028d3517e2d39b0094b5e0470bcc17ab766fe2169cf660d937cfc4ce2bf55d307a6eaf5d2ace660f4e41d6aac0a51ae0e769b36e84125f2afbe8ca938be452ad4d64b6d128700313d172f858a6d58abb1ad8155e40b2eeccdc87b23a29f365a035352cda43918e044772acc0d6aad3bb94432751f11839cfc670a6fd2f4028b08cc7ac1165ec9d180752d8182cc6ef5bf24c0f6df5fb85e0b21a02d448ef81c02f16c997ae9dcda010dfeb84c6af7cbab31efa149c844bffcc3d328c6b0a43d5c164b6de40fcacf01f9719c40edc28265aaef75c973bcae37f861d50e482865227ad9bca5916a94bdd47e2bf184d9ff003e8eeb883cbbd69b1247cf1485e561956d04839cad7b2458397598e8d0fda44d98da81894c6ef448105861a65d94e28c375609081a9aee9f816b68ff63252596684d2dd7e5727255ac645e1e6c89b67be26fe222c4c7a355eca9fad63a3d63dd83cbd9dd8ae00ba2f2ac46f477774e5f8902014cbe2364676aa72bca4fae6dfa0be80b2aae53aedd15db52a2d3847f8adaa74b9c3ed9c58d854441c8bbc1b38f139a526f1cd5f5dac35c0ec1a2468eec21146c7eccb95743266d07ebb6486b67b6bc903d86a5f01f3de96258ae4235761cc9df417deb91e5a482d2e66847368ed381ea02c865c2ac61249f6a952da31fb72e01799bd64fe676e2501159879d01a23f44a43c12c52a0210759ec3217ce044cf97281c78af5c42d6f223cf7f7b3c67a0ff454c0342c377f50f6353d40dd03b9dd4a6483b58fb31e353cdb34f3410ac03249482f3b9a04debb5d4c4d7e6c73325ccb6884df77e5c0fa8ee772bedcab5f4efa210b1f3fcea2ab18e1e1f93a547d24417710331cb2812df495f44b459fba9933e20a0dc6e41cf90739d2a4242fb779c73d39676a6303e3231b5124f0d4858e451832a704b275632f44f0ad725862339d8bd6e432df9d4a1ba8da5662d4d006f9607b46a0c1e73435741626b0526fef239c8e79902d020f85da741285a1a642b2a48825fd265a037c6a184caa7c59ab8f3bc12d15d0ab22d5126598275dba05f69facecba7010693d6a08d29c9865f69e2c693ff3d2975191412a4e437bfea909edb88d36809bd1af72d651fbf5125ffde32fad2003b275d8dd32d65453c9286ea3c4deba1cb0eb78bc12f3fc290164f919c7161953e9a1ae95415e6514113a018d293f10165b6056e7b32eb25107749012f9c686dcbf432e44eebf370f44483bf123c4efc7003c83067f62e445e157927039ac9e9f2031417a82101d540efac5cd3a067671055435a9dcd9ea8724cfeb94fe43fd91921cc07f90f3255a2ecb5d7196cccaee74c9e72f4980657a2c711b493ac8edcf288917a4905e00b376d7284975d921c594c01baf5162bba7adc203c589862b078dab7a8d125e713c61b23877d37272b6b251bdf775093bfe0e9bebc7ef6e781a5aa7169bc0c7ca1f11e0d37696f02ef2f498010a67fd163932dfd6a04ad35feb7213cc6521fc101eae55cc991bd00e3bdaaeac11d5eed96b54472219bd1760723662d42396536728156b5c1e5171d22c6dc0efa98b7fa989db9796861394b463e834d020092cfce186443c410716166a38a2d32698f1279745065f228d07cf714198751480c36d90bcd18126db6a8efc0c6ad687a0c957fc38eb5fb9630d21f76a3da079f8c8f547a71a879202bfb4d5e2e93fe214a3acc93109ac12182b4871d4a19769fd9be8ac16c26d4a8999f66bf3aafbd1d2a4a74acd7adf4309a14ebd449fedf2a64c39c66fdcab5e61af98c7e73c98dec326abb93b45685592e49a2a98fa741ff6d428dd394a6ea537b20ad8840b417b2cab2e03ea64d2d079b1f9510ce1ef08be7bd1149d4fa6c4bd056b3fd1edaba06bd802d7028591c219002e31e8e1fd352f5695aa885bb6696bfae6b3d15fe53004696df0757092edd9cceb7a6a3a0eefa86c572e42a8171033aa8ea8209cc217ee115dc2b6ad64da1a104e5464633dbd96f0ae565698af050c2d7394044ce12d221be2213ebebaeffb8ae1c70a7a67a5934e6092ec40134dd2b5a3d38f3dd0b603f1ea2c7ee186d4e9c6b1ff894e7937d3c6cbb46bba824fd68b4730a9289a3a440202b253bc4065425cc49057804d086505d65cfa7db0505b2ad952bb130a28323efdecf88c48d86a95a7a833cdcb22460fb84308467aac54a2a94f57c3e65b60f5202a5c8330933502048e09c0b55f8a42ed00be2d482d43003ef44727d3ec3b73cf3891da335b87ba301fc6a4d852c8bf9f2d01ae5720be618204334bc00c490f8296369ac323a44ea069760798897f05673ed3bd72f18670b0ad9fd68937d87ecaacb5bfc40d9ff67ab9539a02c6a75bbae744172a4def72ff5b56fc361a7ecc3bef2ffdd5a6c12565db132242e1fbbf79b561c7f21aa6e3fed54f88f0f4f89c55da689292f1f056ca126e6f1c8b194d09865677a545be886ba7219e1aa5a70dfd3465c105b2d4bf8fa448b812c0484d5f6eaac1c9de89f245e48a8dac3b0bccb3eb9301986249db323fbd0e642d9e24ba505302b6af6cc9f91f824719af2eb10101571cb27151193e9fb98a24016d18188649b50dd78d2ce8834664af58d0550ec7d2d8cacec4f9eaf8e64c8c28a3a5319748aa3687eb95b6cb27e2423316a6eb5d9e5576ef273cb264bdd204ad5fdb818985e83d3da9fa1a04ce4ed051945d4d134823bbb265d4edda70c46e8835156de87756ffca8cddd269342812fd3c37ad414c19c9b3b6b834c6f66d091be9e832fd3c9dac337afd16f2865bcbd52e9cca323f01c75db2f0ec78667ac4c70230834867cc7246d5eea606160540cd750dfdc49af62ebdb81325af7c78fbcc88bc3d13bb1ecfabd2a83fa21be2ed36837c403a2b873b8df957c70e5f1277905c2898909f81ef511574ef9f790d04e527c0e7645bc2335863930004d8ead0cc472b8f80ab98a67631aabaeb6dd23afbb053f4207e1f8e0b2fda05be8c6a4d0307798c7243890c37b7a7a43dac0ae976b82d102eb634bcb870e1e547c868e6aa98fae6f443949c97d268ffaa161885a92e8dd07df60e068a21821b84ccc108a433588e93f124c705ec0bf88517c1b85aece1945afa48b963df26d42f73193b6452fccc85059bd192b17c7960475d0c08fc845d276d239367eaad895cade0eb7d407b3b7ea47def92d33d30ede7fe2c62f77f8e0bfda9f94a45b5a6d1e1c5b2274063ee1f9f1aaaa215e275778b154f988ec16ee801dac1261ebaecef1e563d6b56b9bb7f0690fbc0bc0193fbb40b89facd1bed4dbaa993124a47c5bf29fc44ed93bf79e398e3b04237985406a5dee5f9c8aabac88cd55f2c78fb5ef7bd97c9e45b1e3133730730a545a1f6fcfda6330949fccf0242b6ad2ed61351c10ae6c3ab924eda7a5914ff932b4a7ec626a1a4e29d2081d5aed59736745e392213f1017f3f49a0982e60fc7286c927c03da826595c17dc2875ac269cbfcb8bf90ae93529b750ac5580c086f8390fb2be2db5be0128612b35f3b984130b26d5568a53bdda50c901a6adc2a0ff1c1ef5bbd49d553fb06a8be2249debd4a3614349147c14109fab318a98271cf15b4bc019a0598e10156ce61172ad1a72c59e595dd94d809cd6d1ea5dec32ba0780f2036f8fb781453b1d0917eac4a02cec03211f484588f92b4e2b6db6f26406c7bccd60530cc3e6f7fa2ee5c85eba513f4d62edb1137265fbde78e662041fac54f11af8b6b6df80c684ae93b0eb66a44f96a4a8d23a616c6249494cdfbec42fcd4405b826a6aa4e5113244805c0277b5e5a6008c172fc61c36f7e9420716bbe7246755547ca27a831ec50f53f4b9ebed1a329091b2c636820882d92559c1dcec1e74d54d5dec900a1df347ae8631be47f83175f88783a2a215ba0d42cb98d59db41d08f2b9f39a5a9a055cda22ea91b22e13b506766af2a865b41c0dd9de27eec02c34375281d6b70b8db70ca85715facae37feb0ed88ba2d872954e55b3f21ee8e19b0f0bbb864a108ac7f4b21597d455abf089e41399b33957dc9aa6485fc10dd17ae516908bead98cf9bc523fc5cf920ce971ed92f09151f2fe3e8fd7daa0d211266c944515826d74f3fd53a342c5d482608a3b8266463f90c6b83377f5ec68a5167837170790425a5fdc789e7cae2573bd95f9154f37cc7cad261180de6504cfc23d607a33b1138799462c37e8ef34d943b64d32c83718f18df5e35981e88147ddd5e82288787123d995d1f03ff7f92f946bec61fe576d8b9288d7d3c74ccd7137ee50ac759f9d26109763ec8a8a66cc5c3eb8694c7ea53dc5240a91a4ff43d66dbab4d0d1c05f915fc6a63939c64cf53d8995c54f968bfb281e134799774103a3e47907e6333e4905ff0159ed9508d13d25befaa44d85cafb16987e30084cc1f9e9b0c5ed848fec6b6303a1bc0d336b93c9812a904b441edf294214ce82ecacf87c9683753de4841889aa5dadf30b31d31c453b5d5f8ccb77418a85e1bcabdef878f497fe3ecc464001c3f63741d6a407267be09e68778a2f92020c4ee546038d947a8ede3cb19a8a2161732cbdfcfbe6857b6cd4c5f6f0a3e64f29b4c8210279a08a29bacb229ce6c60bc5fdab1f38cb4e9be12dad695daf8dcc4b70ca25f32f7f4b5aa087419c471d8df132b753efedc503442991f4cdd7303afbe51c2d8c1d3bf3e364cdfd2fc260462b7016554791941181ff099ee18a00ab117b23e61445776c9bb1ac9d9e03f2d37bca7e2675427c225723a888e32691aa0f05976335f65202164a3dea1f17925ce10f6d0bc2df4fc4df597113aa4e6501619731665e5076af7280f641a0fa6c91baa92aa6fbdf8b358e4b58992595de27dee3793958aca7238a2d407e753c3c445177fb0c8949fc90b2dbc590b43e03d95e6acfe0827c1ae31e2879cc399a57cac16d2c15e5ec7775eecbeffad1b0c81ca76132cf5114733e4c7f2489d2f88317fbbd44c320a745276b5bca30a09d42f8db9fda58252bc9242cb1a49ff401ca23e7ab38276fc921a96f11d6564958aff6962d10b4629a23db3979b11d9089531d3eee515f567bc21464cc7b150c46ae22c6a89210588de61464b517e83c38be4a035dede22bdf4f49395f7db0e4c9c824ed351acd9b2fd262df0bf3952d62591e40b6d03ff912b22b9c2628658eca422c9454f9180179b0d4e7557133b2de3cab11796d7eb1606bafb5ada8d924c2879d891c6443cd3b1d959e16c8e1d4760b700700c746662e38f70c0bd6b66645532cbd6d94404319cae5e1e4cd66496e3c12b04d862de44e8012f2d6e57a0a22231ec3f0cb87644ae6138a583c4614ea5313f803a23f0f7431d51ad929f2b3a77147956aa0d503c560276b8b070ec7f7eab667c2e62ce4ca95285be99ab8357100c158a1369374dea4d42202fc472133840821a70d451b5bb45ebde8110634bc97098fbf801da1d9b1ad4bd66849beae528869d513812f08d486c8ff2dcdebd2471712ba98d7cd23dae1a33385963cb7ff464f2d10e7b0f48ac3e8b60031f412ed30dd25e1fdd32111e44c964508577d480afd3b5bfec2d7dd456f200cfbe227a01ee71cb6d11196e9b8c7a7632aad189f3faba183f5870bc84f589cca6d4e58b79adfffd0006823b9dfb5a9f0fb343e92c51caa9c238276c47a960e6b84856640cf1f51d76b2d977623728f618dae6776c6cc638213e67c9cbac61052675ccbea3d5e5c48799417495246ed8bda3613c058e52e563da679c66ef21a8db1ac3c3f1f8470ccdffb874cbd90fc07251e8a604888cb18133401cdfeeb8b94361e50af0b2370b27d16affd966e9c0228f8a3125f7f8f9477b160cd04dd473cbaf806d96b63d2f26e1accb53d2e24e6ad3d50bcbfd4d01a20a436446077880b4e55ebb116b919ea4cd18e5fd283e24d81bab16a72b7469f9fa179adfaccd7fb391b8e2240f513e077739aca3272f36cbd7cc063f59293dfe45b31fd909c005f87e66c2f606b61d347e714640ccdef83f1f539469545984c975a857b632875d341a51215b2d4f9a7e847222eb27ce26a307c3b24c8e03117ed9b5cc0d47cac610333979af1aa3ae9ad437ab9ef239afb16d4b5c4d6615396fb7aafb4495eec428b6af23e16c624ca3531626b4d78e87be703e3df506ed727a450fe5a202b34c02310af325414821e56aa25ed2c76c43e546ed75c19a70d19482af0031bf27bed65c4f49b9edb7145fe72b5d44ca7fa1b5267ccd6abdd45195e30160501c2216b9eed958b5e34e11f91bee5c1e9c8be2b5a193ac993b0315e30b68c52944f6f52a57009195ceb8d4ee3d80a56102102891c77a4428e3cf01565701a7fd6b342f0a5fe7dcc9eab2d9ee4284ee36b8910fac3f966d53732fd1be8d02407c62beeffcc02ddbe560e5bcfc6637a550084ba7b6d1fec5967487debbb98c64d1e75907ed7ee168975e9790a616eba1d18aaef6d35ec9d34238b93cefb58531615dd485e102723f8e4ee9ba15b23c9551c375485bc31a00d19d615c095bc5b3ab21d8958e517af8694914bdf580ccb0adc7fca09a341e118f1e2ee0ac52c913ad8284133714c55b5abdbc4d0e3e1478ee550d7cf65b237c79a9f01fd8896216894a103f57435ca147d3f735bf2749cc0d348d240c72d3f98317442b1dfc3f934e18be98f93ebc0ee550f1b790c68bb65572b37c385e8de366027bc86348e6ca339f4b54e088265e62141744639e49dea72892582034cc0b055ab59f089f99f9c3005996b6702ee15bf2bf2117567e912a94046acf9dd340b66a7f024ac051bd8dd2facdc1116563e6642ccdeded18c6dac1596dfe258b9487133ec1c9d40d79c70840a81580088ffb4ea86ffd568f54ba031a7994cd6daadf724ebac8c543239038355cf368b756bb9a875c96a44b15d147e05d6b0bb0b0e50fbb7fe6fdee03f043a9d426faaaf19e0dcece0e7d94705c5b1f47b0ecb748d70703b800af8a37ef21ea2a0acc2b5ac40aa5f3c06c782f3f9b3c802b876513f41b13d6d5bcb408c1d797631f103958eb5f3fc0524db6d6cc719792fb81b726c4e48b8ab46b1169795de9be4e4829c47089b218acbd83fc44b1b02aae7f29ca4f7079297e2a7c22d406da90707523b0d2774b79a35a813e3a5053e3e4e96521dd69f88dc7e627a86266db8beb83311a6e2bda4152ecee0e9b7ffee702207e2c7c805a4dbdea603e7d2e0846362e1f22ce10ee55a233f7c9a54b3069f6c2d7974ccca75c396ca49dcce335aa34443a2144b265df6b6926a4bc08232a9a358d39a36272d7de51371178aa11156917ffc211a2987984e05da86f8d8f4dea3d91b791e09f86865bd4e73800be63e1a7be94bea14c66bc2b291e70b88a629face238be6e1a83707869d32812dfaf6564af65071cb96ddbd95e26751c87282b4dc71801c0f9607c9efa725bad8f320b0afa98befeb072dbf856804bf8cbcaafb1db98c5c7c48f85840848264d5044173652f1fcf2e69f4cf8fe028ee5866d7a8cee3c1d9804ecc3143ae33dbf1dd0b3e18badd826b751ce1530aa5972f192b353eaca0cb0f7e2c7877ca68e80c96943ea35ed54b132de570b111b6b2dc80a0da5fa66c4d0d07f3e354ce04d1b2edc8c7673e2b3e9729e831385b5220573674453d3618fcb855b1ab28e57becda134de03e155932c39a0a4a5ec7fb23d1d09623474b7730c442e50142bbfdf3d640b2cfeaf1031d34cd5397e93f2e97a247a042cafc48b0612c7a3f448bf984ce08767b0a00ef503f5059cadb08672b718d41bebbd11484b2227f678e1d94f4a214a4140bad868407e1473ad76dae395d2bd9ab34f8b6281ca2cbc116ff9550bb106ce12fd0ee8fbddff59826a1f6b96e9ef4c46f91f574ad1fe50d3d7db2d4ba0d45acb9db4e245236c90b537af4bc0856b98dac34501077bd2db681fd3a02f3f4983b4677224cc85a8c66ece857a63f588385fb5b88e5bb8cfc617aaedff8dce78baccd8f65524a2eb45cf02259032912b1d80c2ef75ba056fa16318eb05d4e42f00fa9f2c5be0798ee0aa410a6e1103d4aa242305e6c86568c20334f2f0d295aa81fe56bd9e4f966d782d839db93ad857a0ce7535577d7002c0135364110fce95d213d67681ef216eaeb8a4bb6fc3150a3a740fa1c4a8bfd0a009feec52607269ad5ce33729e7fa0899e4dcc2c40d56a5f665fca06185d388ad2dfb9a541a163a1f7f24cc525ccd30c9f0a16e1ca968d8236fa64173ee885b2b7ccd3c24f335ceebf232268fe667d4c458673fe1eb0a0dd9b6990fae43f85540d2a65b680f0117b5a927003b7ccda4be54dc425ead6c22308922f28223e3b77dbb63f72082764eaff517d329063aa2cdfa307ddbdbad151e6a9bef29f2ac640944a7149a9e32ecc3a8cc8096ae6601ccf7af9a5ff233be2e7f53423819544a1ac23e5771c6022fb58bbeb83bd455fb23a22d5615b5f09c9bc916775f93d79853e1b4a1b7408c6c06a5b2c89cd85bdbb21aaec9e23dcf21c7c12c4c5395430fb59d1a934c1c4320970293ff306a451fcf770bc405ebfcd3917be50be9eb7e8a04afc8390bba569967a69c7f41a3d7cad9f5f6ec40aea68a93d417edb38e17247c7c57ca9c19db57ab59ba2fdbe815828079f081dc7daa6de3a44405160efd2ab23a1d502cb288b8f6470921f37b7d283f0368dd529963131afbeff8cbd2fd8b9ebe9af51d2c957e4d9b272ee1a41e7d908e978facd4a41acae64d64197799fbbfaac2a94a79594a97637278f2c972c17393de0286f354c66622a586f259cc1e6de14590ad892fe65ed461baa8ee835407804348b1159e61d42929137be5b6d7f447caa2f8c7d9079b92f43466eb4dc98f982d62f2b48bae51f596e728e6b4e12386afe1491214af456818e6c5d59536880e4cb0b766eeb03a21e52b9cbf22ad16ec6653a65cb7df43c8fd9f0acc055b2b31797b28e2885c46601945341345aedb96e9a4e0e22cab415bdd6144ba3b88448ac5c471efae6af2eed9b121a0972a101bcf4353519836bff4dbde2f7566c2be456a2c60b29032314ae7c54954e84457178e9760707bb15d1dbbbea450154b3cd408d936cc819fa2d4dd9d7a6b01da718b4cefb7d66314ca5ce4e600e39bd11d626a13b68060198e0ad5f9c3e73cd6b8a6d9c8bca250a0947e9c53f297c30b191a5f26597c8d37ccca332f4907955f413ad58314ca1c23fdccda0aa9fc461c3d6f36ebd63984956c6755ed5e71746242cd456d6cb70bf265822ee3eda0aa5d50e972bc8c7acbe3a07de07cd0ccb8e750377300c0b7625367c7d5e0f08138d75b93a768ef7d2611bcf56c291ee582f909916972d605e512b53ee3040d8628a3442f75bb57f2f36e4cb46d590b30b0eedacdc0b1ca39142fc3e0a84dba7cd9569842636525e6152116c8c00eb1dc78d8643a7df650291de5bccbcf582cb2bb8ed162b64884e38786dcf19031b37515d04b18046c3ec7a52b6b679a1d609c28818531e649331c9ea1fcad1b774ed621df606238b8a8f576536170984a263d90cc01d6d5e85468ca82833e79354104062a7b644000ec6920e16125759505771f9e83ca683cdbeef6275cc7ddb87fcd99e67e4e4ed678c68ca7c94a7ad33f7f0dd03fb4024f721bb803ebdb03b8cd413b10309d93b7a33625d2e46132f2053a156d7bd33def0dbfd8f90a8a687b772f39f8b64c2e0a82e048daef284cf00be35aa8009cc517b776a46f37781ad92200c39e032c650a0b91960dbb6e49ff84f8fe2c06794c843dd51824d42714bd32b758c56a6f13d8286a3484cca9c80da405473dc1a3beee1b0d01bf5f9e34ef16ace9464d506f6fe5f1d88f45d10ac364881445e1732a8672134ffb49ab92a77829030a884bbcff12b1008ba70da2ebb68fbffb8fe4baa63f7cdce10fd7390c1da473f044fa811254088755b0c45da33bc2b430cd224f08ee87c1e2588167cc9093103978e117556fe6247af97650d204195f3a5fbfa83f93963c3ad4959b67f2767c8e39d27b8a37f86cf1143611ce41a959a39363870af5e426a642b42b7c57250589f48b56021bee736b15b0d7d5768fb3dab2a62e004ae18d2ba68e0f46c355727794a0f97b4dfb89da2af0bcf8c7fa877142efbf9ee1514b22eaa6d77ad7e422e73eb979c7144f397c18b8d306990e0247ef5e5a25f07b98b6e7845c4c56d2477612985c29b9e3e489f860f90a68d0e5cff88912753cda60a046e84a6c6300853618335b6ca4a5b9f0759e3bce9fb0caa8e14113cb5d33fd824ed25c4ea820428274158f689ef1a11e2637afd1f9cae04a35eb2cfc969e99f5b5b4efefce6abee1436600a067fa36e56af7d11ac45d0308ba8e7d079c56d7bf311f8b8b45e3bb569956bd4e7b50d05fe03bca747de4798c1a8c1ef4650012140fef87b3c15d8026a5d0f68544a3b904839165d9ce2a753df0d61ffaef2b0868dfabc6ace54359a8cc84161ed3d355be2399183d284b97675986bd481e873b0a051202eec6a78f31309029a748a14d75dd995ed00ded052731bd0f1985b0bbca7b8b158464ba0d9ed5bc012748750fcd6953e6ba9e246ef687badd02d1eb98761701ae4d4b089a00560bc56f74b7d236e6f6747fc3c54fe2118d0bb0b02af4c992719076dfdd971fe3609bf1c86cb0075e13b952adb3efa2eb3816ca466473da4bc06e99ab6df3be704e48f5b5c95f29f759020cc1a0b163a20a0784f2e9dd63af78122251c2ab1e98077b7d9824632e30d57a89783a0b78a0d3ee7a67c561f3dc7fae2bc521f33c20d27e0a80c071918bb7355a531777b6a92a3b0026a34396e22a5c156572044b80b7ec1ba747fca7f142c87de384e01b813f91c21feaf2832c6e936a6b2d2ceb768ad68c8c6f495228c8b51dbbfd7b575b5a3e68a31dac3ff5d269a5e62f4795946d7e1f1d704972f4c54e9f1da9197fcd235ecbb1cada67add1c538d0cf57b9b842fadd5d4cf055c3c5dda86e46296c65781ee4cefdf1159f358f76942d767d2bbd8409e6c97bea6a3bed4d466ba5cba723e8b316f4efded6254c43c28e89bfb0e2cfd3645a8acf65c2cf0187dac47b40b98d2a4a8f2e83a69b05c8a754be505c3034908cd9a274c41a490e37147a6bd3d22ba8c8415ab9a44c15dd3dc70b0827ad0fe99987461de3bfb745f3caef91a9485e8b0e985843cbebaa2268d9e998f5beb564346514d0609f7d5de759d37171906fdcb55d6efa59598c90aaca32772b6296123e690c1752eb2e50f5fcff8b141e80fd12dbf4c23ae61514f58321b4e33effd2978ce9ed4de5216d2fa0b6ff4836b181d3516f469ede54c5dd84866b03d636590f2755dad3c0be3f8121621374c6da260c866ad4acbe1b73b2772fef6b74f8b132b372086057ca10c68da35b35f79931946ba86a1d3406db33b50062cf66cf3214f9295028bc58d45e6a1626457df24b3fd21377388c86f30148bc0b90c9743f061e4f2577f7a2034fab622bb593edc4859824943f1d1425f57aca037a88cdaa3022473c113f43c2d4a134d5637544ab84e05746f314fe2f73895dee18ac31b79b02beedb45d2b178de24df567c7d3cc537db739d145d122a42289e25b2253435ceea89e32e7abf2e69f83ae5a0df2f4970f74b0af5edb900e5fcc913b744776e6226b8ec75f780ad57c99197d1d75f27771eac62260e11fc02dd4d97416c5d303c74a04f5373d7bc8a9c9ab5ac3e8a628300faed79b3a5903398389653483e6d2c546e01a93fa439ad57966a455705ed4a90b2373a128b35186f39f9016e59e8ea7da1c9a4db1e178599c12a8592bafe05e9d605e065ced9d9e40c5d41e8007987c6fc89467717b9c63d5b43613a36a8ad1ffe5f972181bb1695d9dd66d395dd4a8b1225d04a4a59a19e8c8553f76613a1cb9463ab52daa34d5938e2b489b478ba2bd7cae8ed9a21c2582a3cd47fdbd4e25f48c9585f3e317864654d24362822187b727b8b90b0d13854aa3eab2eb611fa74822e69622299490be2d7769c7b4796b69a3c509e06e1c4066644052e7e15551a4f66b7eeb9688c08fbe594e20a3dfc40fa651e2371a07735cf3cc8178829cece61d9155bed9d40e62a97591b95586de97d9c0dc65b7a38f923030868a25e4848c7132a8172388d01853cc53cc3ca0dc6de6b4091594625a7aa768a8564c251092e05c9824be5907d2fef1cdcc523040d76f742160d89852eaa6f528922f183ad4c559e947171d51229eee32f1aa4b7ddb6c1915b5ff6312356ef008372908bec1c0fb98fb2e09cdadaf96c9f85700bfb8d34f21357ade67032b0296de0082943d0552db0a3364065a5e0199154f1cf0a6625d256864d36f3e7886e61feadb114555d939f982e00dbc6393c5db72ec3d5da875dbce173c3a0b35a75f696a59f5608ce0756502f6be44c36848d32ce42b51e1081317f72c9f48fec542eaa49b2cdefa4d8bbdf7af53f83533093b400f1701db48c318aba46469ccf964c783095fa654ecfec95b90ff44d99306258c7c2127c9076ac0719005494a92b59948993c0101da7ad58d64429435dd5604c9571b303598b51671d600ace7b2afb19501fb87a547f03f724bff0ab3bf7b53b1e9a153eeb526110303587f64129e86176e92a5d1e99334b7877a6fa27c907f1a98d68d7a93154b8046efafef80fd39c5c4142507d8e901aaed53ae70fa0dc106cff2c4048d27940995203d256c6e466c2083e8ddc6d440a8a022bd96c02a6f44d71ee80dbbc3bdea5b83fe6f2e7b3759372ea7c63002d494373231eace58f8bba6aaaf1e8e08c7c09773f80375eb08f02660577670d34c16c346c943c30f0db19cf9c27d7a49bb4c2b5f53d4d8823e3376eecd7515d3abc3235af3689e38cd262ee3cb6fa483a82ffea9cd85a51a596c6d69f12b86a0052ff447367133aae81179af5cb04f25aa4e1bb00cc49390e9584dcb670bdf94eb353a8f3878f3d4ea440cf0c5e7953caedcb4fcbc38d6115804e6b10a8771e0e9d0e322c72c32f11367cc89625a2df1ac6a3943cb0e9f64108437046d3411258f49fcf72acc40602d383ad1ca8d784b484e39b86a170cd2568c5b3fe452112c0f83026e1b3fc552b2f7df2e2e4d3dc05f34af83dab1b79471e15ce5b5a63e80cfcd3416ee262cdf3221163654f8fb7916cfa5bcf666a88a35f2ff5faade9bb71dd65d5e8f84774f5ce0df81757a4c8edda437881bb79ba5f43f960191ef3ad8dff4a168e26f4eaa5067f66674baba065d06d9c295c97da8fe4e74d76a1e5895da6348ad752d86e2593251a50eab6e1c840f53d6e8497818cf6e965b590bdcc462cf88a5500ee9879f09976b528b26b24db3c2a23f2e5112c4779684c14ebb1b9188e52664a89a23f97da1c488396f3b76b80fe3ab2b739bf114a7677abee890fa0473e0e80ada97ec311bb856d68b557e5a18c21c1b37302e7a2ca6d154f173ca412c29c00eee68f9c182cab1619b37d8e931b3ae0fda48ba4a05035140323e43235f831714a7d03049963ded3a5adab1af9c7d6c38761b9d7bb2b1fea055abfd0b8a6e90b5aec0ca97f6eba85db74db367b66ac92cfc4c7eb50c002b4d9430f6147003428b28050fbeaf999b9faa5e844312401153fd4cdfd0b953668938ac65e9e2d2b58d5e47476078d8cea388cda1e0c94e485f0a8d3f314696eaa02d8ba4e157a10ab45208d662feb3a17b36b30d9665272ca3b5f5e9d8ad6965910861693537abbf9e14aa6c2edd0834548cdbf0c436ee776bd6e1e63f049c7344d3e779fc976adf6167a12b2f89e5d7962cb2aeaf91345819bfcee741e3e026ad42e1c23ee8ddd181a24b474b809fbbb42927756e0bcefb6f6aec040edb48e82a7abf9087e83c7192e774df52a645c823bb81d6f47bf186ca5da49ffc4229fcb02e8e0520cbeee7bec67a6c7d73253a3d0543d957c565cd9a96d6b18ce0b9df6e73f2411f6a510088090e5cb4f0f0c9ff8d281a25ba49546a31c960ce634256b108e425a31da95e6c51cc607a60c1676799e2e93c27a1bc2f12236f2f8a4d74e6d0de2e359b3873b7fb1e1a4cec813ddbbaea36d68d66e1f26a9fd3801ef99f88b99d0c431c6dca3800943a4c9d0b0f69e06d877f72f39bedbacd42cd0aab8c910877f949d8a1cd29fcb8664a67e8b23047eba20d48f68806c29740c4b3bf69be1d7ea4b67b7fcb785ac081767bac436fdbbb936802447a4b711043122f30d2344098b99bb8f2495a4c27c1c3abba2838e55f5ec8cfff1055f8a175256c410440d5023c8025e4e1f169b119ac66036a5fe905027494334cec0c4f75f835e583ee9bf3bf0f080468c300e3828a46aa95bcbd8f6b926502ae835f70780b77732f740a367dd49eaf88bcc37ddb633ade0234087f4714cb40000edb7d372a38f4c3891a389483aebaec45b8a6f8279df57fadfbd8e0c664b972bbf0c9a114b14579f6b9fc87946893ab1a6deb856dc2b48a2b26b91e359f8662790fe40b53f31e308f8a37c6e290cbc29d114d106781bbb4aa2c4dff90357c5572b07da89997d8ea1a8c2986bf27654ae89e691df5193f07c7e1c0fc0f44801627276cf7e922549514ec8009712262e8b13414b3a6c05c4f1489ac1304f997e66c31a58044970932b45db0bad471324ddaf2b0f8162c788c032279e478748c6e7479604032b9169b66d6d0c41b032cbaac2c5dae87cd5adcf60c30deee006f56f5d64f143b8b59d25b9a80dabbfd31ed381e55db98787b1eed26c03f1a4510f6fd09f62fd63e757f05ad2c6ec29b0e891ba3374450984a16496c9f8eeae29899be2b6fc6339c3fedf8a27e3bd4bd200a7df7a7ed8f366324927b5f4a70a19f7fa12a55e7fb20447f3f621b2f2f1b3f5405b8694b5ce7a732141c8a0088e1791468bb0c2e42a925b47b410b14331b22d4c75a67314d62c76aa68dc56c932700f7ec30ca7cbbd86e397e30ac7450250ff217bcbf75a1b70cf915cc7482c9c570cc6267548913d9eb18826ce8791115a70074abbb76cba15a5ffa3208f5370b1c9c4f33176b0b457f05f367691320097b165e05a83d80803e5c1bcb128cab8c3b929ca468c9c191e05e12a5e11a99dcc64a0dd235fbe8d6e5cf8bce6cbb027067a1f3ccc41f35d6863023354484f75a44fa559075c946a85d390c0a9e6e6dd5cc630fc9a669edf87afd651b895d52831c1c7ce43a4f2f194cd5aedc8c75b2844f47c0b1d81039fabae212dbbafa43cc855b9c59d5a764796d885bcfc62882b844f0e5248be29ddaa20a5dca8d07fef2c057f07d884d7fd4f1e18f8742a2071c5e020dd76358912632a6f04bf6b4287017ffef000142bb72e1fed38db76e0df31d8ab8eb8e050b977e88c89de15f11c33a5ab211e7a010bf6d2524e178893f61406b26df3dd8e76383406b0ac5223290da818a6e0743b8aa0634fbdfa756eb4f6f32fc8352c7d7c9c15968f542b4038971e09da39edbeb4d222bc4f6393c5c2035305c930b9eac3037b0bd313b7da8d9ac3d5c58dab28cccea9ec12a16481553447555ace000d54a911aa6f7b53034184c62a5d0445eb239bc7554d6b2de69fc43bda1d6963ce90a1e0a2241c818389bcbcc3e939cc6a047184689a7aa6e68fbea16bedd349532c0d401cc37df2e4c78765c0a0e18c37f0d26484681edba94615d0b5ac76ab75d8e8398bca5491cce15d9df8febf427683b7e8bd43b149c26638313d6cf232533a0b0b2e77e7659430b479f967d0e093565397250c0f11cbfeeec8bb23a796ecfb77c0ff675e4a4fb08c330a4b77b28989056a16299d57e918dd3f0240d6cde4ffea479aa024e00c65b0851fbdcba0d2348e0a27fdbc53a7da4951707117c43d6052ca5d0a1976996663ac470783483ac437926094faef6978c2e91d685b824d6cb94b802f0727a2bf7a283e0413e8575be140d86315d89c39c72b9d9936d78dd0d805a66f03a909ca59f076b99edad177c774e51dac0872ea8c3993688bbd55e697cf63a0992286c7a2fdde35f3209fe18897ca197211669b24313a091d76c47e4edb4783432973c4a6636250323519a0875a3994f9a56f34d7f68eb71a03f0761061573f507dd6797e95ccc9767e2de6a5bbabfac7c1887af5a570c14542eb544c2648463fc00ccf1ca4874e89e09f9c3068be2f9edbbbb0ca549c3a94f2cc2ef83897ad35ad9e4e4f3514f3e877fbda1f9784278133c2c740bf8780f91791ddcb1eb1ef787d16bdc0ebb1ef75b093f8556510fc324b03fdf8ce45ee5c308b0e32ba0b73075dbfddc871630f53c2efaadb578c6c2ed5bebea7b09e7e60d57f4b56bdb60168c527a842326a59d61088ca07408e15aa8ac77843f5c1cc7605d5a07389998558885106d4828f2a08cfabcb1856dd164ba0e278d338e3cef4c6ab11ddd823cabc733cd8aeb2228c64e220f40b2701aae69618a3ef59a218395ed251eb459a4c584a47b42e22e30dee91cefd783ca3254557f9d6d67678da6b23969f4eeb964276d159d7499cfbc54f7dade69fc68201db980a302502a5ec1009d5e61cbb2d1dd5e9887ea524b89d94427bcc5e3e39cc14e40665eee3a5c0f70b90dc257f9d75d02fb265f92fb002c33c787f95511c08f717e226275b8508cea1faf6f6881987e334d000e9e1bf7f4f8105edc245b1829d3e0c271b57b25f5d1e207c0689408a8a282b9ed841cf74ca13714485944a9fcb127c62d703892e792090f7d7f41051f423284fd756c87c76679e541f56c01e49586284c00cb42ed497b2202f0cb80b1d047bf3caca65442132eea091d5e3d68915bec7b255b2b7bf12f77917e1c1bcb77520cc3f7e817ced588ef8a5481990a6dcf8c23d1dad0c3e66e19b6e474e21fd6b6e3d9b81101c35f7c8b1d258796a352ae5000d353b594adc6444e4166a5569ec7f3380884d29379a19d446424ab6a009a04673192fc64d1637aa6be956f59aae3e111257b21426164963b374b887027bc30e63e2db007d7599a4b33d77a6cac9abf737968b321a006057448d3ee0924e34e823a9e8ec45e1a308078ee5b66425281e184a1426acce07ede9321e30e365c8d400cb974bc0385ce46648fcd831994fe029d6b368ff65d83fa47c9688ef2b122522f5978a4bffdc551d8b382bee9e683c0799fd2eeb01580440e99d9e22735d1f5ae5b2e96fa430fd0a8969cd6293dd2f4ceca663f4b82a30ded16e7b1a9503e358249b85eb7dd1486859d1c944dd88285681ff64a62ec4adefad8f61a4717f9bfe9af81f71bedc13581b1fbaf49c165b340ad76164e237852468cb327b971878a23c4e35eb4b7b86ddfde3e44bc866c12e0f6a34070e0be3b9017ef45c89d3b25c7d747e97293d99a91cbd42081e1086ced706b9952ea259e6d57e8738f41ac8070f933ff055cb7bfcdb26a4f60fa602eb70cf9551279e30eeebaee627520386a4fadc944c965788c57eae09e5d343560451b22684ca85cbf39556c84de91a3fcd23ba1c902a42dfbd5a70c5859b8f3dc69f22a55e355e47f98d530dbda69eebc1bc7be04c5d372028e0da733bcfd76475aca2546da60326800b30db69470bcd6fbb63aabefd100742cd765d16f14c5e49637c40ae9ba0028d6aad6467a68e5f316b9a665639e9a189e2eb8bb6ff4a1497e206ad66514ab614fb4a484539a104510f242d162a2dc69f48d0f851237a8630968f776abeeef048e8dca3b7e7d6bbdfc8308910242f127255196ba76fbe9d80ec7dbae4e688cd9f17076f00ae0d1f57b3b4440f5cc3d268ecbd16f315510f113fe92b2797ec0daaae6d650a8588e351963a90b19daf0bba0aeaccae39b452d0082f0bad269c595624351fcebdddfe0026744709d59dfcf35f3baa139398559b3f35b99c528c7f60163a895ea0016e1b85fcd0b8783a96efa98ef8ca05b6e0e55c7ba29eb14a283e1ce04d195966f5377b7f6923563f88818df0634b5097bc2144224d0098df018815726ca577a34126f591a324f728442670e71e1a042782719f42f1eb8083a15a24cad2d02cbfd545e658d78041fda611119b7c71a30f7e0f2fc7d08583025243b545a9a22e7aeb03179b955d9b274c17c197b03cefadafe8a167e9ff2070989f3237887b9f97c0a4245ff20a22a90394cde8f88dbb152a4ded323db40ed16c74ae20c850731324e48e2b30a5707a73e41dfceae71a61f5e835feb33650fcf60bd2550f472d15b615d5646eb452509fddc011977fa7ed790faae7fd2dbfa2c2ff076a63172bb9dbf8a14d7b43f3b7e526b55312a00e0412a9dfaef27dd553eed3d8be42889117bf6680b4dcec09ea7d0c7655ce60967f4c85dffc2f23ee892051924ec39fc5bee609bd9333646c91b3b1396ed4c270a6f6839803c0b8c53bb3575d707611f7677f91dd662ca4de14f170c1b88752813c6f9f528ceb66dadbec724a78ae2906b3d67fb7e44c50ae809e4fefdec7a24efe21a0e014ff231fd731e5cf95a6165e7874a6b8ef379b266c853c5e4ce0933a7c0635f33823d98dd114057d529209b8c0b19cfa4a0f8c7da0952d9e41fff60966d9619d3d4f90d978ca7d7d217caa9a2a55c63bf872faece1c4b6c804aaf1e7c877df9f50148cf610e9cb30c810e5ee229ac580a68cab0325b2a5c5888ea0d0dcf438c5bebb6ad4f0e279802baf2de57bc63046ecbcad1ab4f2a081db9acd4e8a29905f73551e5817485c1f0c093f2c614eda96a29939a73a6b41534f937c4a50060ec921dd1a85fc20c59fc37463fe68276b8ebb32fa1342cc4c30d87d37e28455272b9ab461794c83c3e7488b929f66b6d29234bae9a59c654ad7bf24a92a20641121c117837ad8d54e2443b36ad123999e2f4ebca3f8ef0bbb08ff4b613061a8c42d69934324b4862dec26578100daa8f1361ec40a38f12691f3c5570e5be3127ace8bd4de26aa54ea892e68cfe83d75e0e6b1a1eb071ed94d9391494f8b5a55e91d4c18c787d2d0df34c88282cab4599fe203de530cc54f612d1f177b88746f8edb8cb218e2b24cd7fadc5ce26d19a7676d9a00fc222cf4475fd367311d9e28f529a2e9b55911a78b228b2f5a3a1cb9c21ac1ffef5918ed6044aa518547d5f47534eaaf1f057c99a8e08b56cac607bbd9b56ea7c7ad2346525a045515390e5381ee232b3eb910f652f8a1dfcc623d4f52d4ebe2f10cb6635f8a2bb0f32896ad58e39c75bd2f12a97a8043e63097b0eb41143dbf763fc66e54388ae9ecd309e7378979cf4311697faa3fb1dfaedf5a7bc852ccd4edaf36f3035d6e64ff0f6063af2a1b7f0e621e739b8d15e8772fb9171db8749636512b6777b10a7f456700d389301be11a01d290e49ca2c79564f28d794d09568ffd59412a407af5b7ce6b98ad4125e78d46bcb4ab1630e30af7d231cbb6d69dc3ec7b43ac52ed5f4ce5436d4cccdfb030a145e028f3631f37f72ca8045b7b2ecb5fd71972b608711f72cbc21bb74e4d12062fdfdfaee02699846edbdeace35d596227814b5e90710ef264e0522273bab9e92fddcdc0e7823b0e00dfaafc42ab098629dc460bd620ede8e8aa471afac9892fd01bcf14439ba668272612cc4fdb891af1c837b309fc55528b25e0f4c10ab88a946f5e736cc98c81f43a976c7ae34c596b0709da66183820456a0d1366d2a983c5a4bbfdbf1209c135435a1ac502bf56a3971861a3ee1da157e5e1069e4037fcb33c53c900fa063cf305d47210393887a38a875ab7f866e20313475f64c4b5226a17947a99a0edda7098d9581734596600be539467e9d49c681f363e0fbf0df13d5abac444029965bd488163f28121f0272e82b44eeff1dc4ab34d697062880d5d6dd050f75a23a42e8da8beb1ceb38cfeccbc6f60a31605f548726312a02c1220a33d97e19a0d91565aa06b06b9530aaf5e23ba16d420be63b5173d56a0d443bfc15aed6e420d97722a43a5611f558e339781fb7725c8b4308529b55f2993cc50e84a4c0a5c4dcfbab6952a8838fa581f02e7a56f2d1fe07ddcfe3a5ac04902d0127b23afb631465b048259a46d0e88d3305f743c133b00d28a8bc82e90a9ac78d6c20cd25c1ec93c829a4853b8f8d732085297de3b4734cf5fa5c18e6aea5c8e8ac5f2c2d291d5a47765c78af2c587737a0e2845d020165908ca6bd1a9cec440677f3bef2b4d807757e53e20f53ee62d65257fc9559f8c11f24f2f4737303ba0f4b62f2f93144f63d03c27633774fe5b34367f3ab01cac74ac5d195f523175ca6470ac2e3d84b9701b4e879190f893263da8f8a4f8aea102633641fa42e9d2a29b4a4e56fedf079f23433c694aec97cc361364235eb07b13de4742c7feb52360939f5ec5b8b0c396898a4102b7a995bbf93ba7668a79cadc408735f554e37c46ca4953a48f4fdb570e8e52c0d0a3a4121ffefb5d402377051867cb91063a00d153ee4dcab8b872b93f1f140be85ebdc9a9d041c033a31bf62cae63d209f6d15208161f91af3c18a00f258df03424f509f96051b3d2da1b2a5455e94217bab8b9b9e25f57f26c118f3be2ebfb0151e178bcc9b8f9f2bc3f42ef0d0e62d6b86f07fc26237742fa5453bebebcf3334836a9c8d8a5587208facb959303994247a6c0db1192d4841f4b06612edf9aeb115a65e8fbf5912d4e52be9682cd67e6674a52090d0c088af88016ed1028853b9e25eefc70861f8271713e5e18a89873b18d0f1107da67cdb5214f317b447c3cdbc5cd7ed18cf15ec00e204f220ecacbbaec6e14fc4be610221d321a83e866c90ad0e3fef60d159223563bfbbc793bf58bbcaceccb99fc366fee3a901a1ed8392c0056e7fe3a65e3fe9c45f71dd9be34d1b4aa1faec5b32a1d692210f7440dd47c2a06f055dc3554f52632910d0935b16c77a3ba4a3088abac903af20f8be25c6cda0bbc790b25cb714371af4d3ae22fa137d86d84bced048c80e2f7f476043c574eb25fca27a9ce759386568bf7802a814c75bf54e7c8b8e9406032014990a07d5977ba447d5b8147a7d53bbd51ecba11ffbf3e30e65fe9918dacf598de8d0ffa9dd821848dad60c050b09dee0b10e37d6542f59672d9b7f90fd369718b05922d0f6d955a81c323cdca6c9b3f7bd30a28b0dc2e0bd8ed0da538f55fcbb63e9fe06656cd78bee82ac4fe2133afc566f222050393278f3ae17aec98fa1574f4f1a93301b286b4d864697bc751f09515c900dba7a58bd17704278d5410f67ee23edd8d439fec36ac55ca2161b48b5ae6dfcf63e8255e90b8a5e8028930fa8e9e0ff27a074c9a2dca0feb1036f819eea96725b33b5f6c59b4f5c97c6294c80b03ddf5710396fdc04dea5ff30a3c20668447b77d6bb271a4d266ecee294e64d0d0dea4ff92710636be625dd667c44404f8a4bcd8973ccc174c7102843294774436f80c8b98685c80db251c89dab1204839bbf08e7ae889c1111176da234da107ecf99219d66f17ad16c891bbf2b3d6806e61b0a974de6af4742d3f12f3b81661054586dc3440cc9c4dd0dd7df4c33dbd3f6e00f5c97a26387332bcf668f2484046145f145520a8ea1ba1f455b223228787b7b7cb00b87df792c2e0f8a963eef6e1e03ff1c5915ac5f50367db3ac4a68d5dcb6e29bbe5feca7b002f5ac7e7c271fbe637619aec590a9ed47775cdd11443d80a7cd04e8763cd10c41b9b9652ef0db73987e9fd2941b42bbcb7f256be4ba3936568e03a80496da8bc896316d1129028e2c760fc2c001a8e2f0233ff99ea4b3004cbf8d0c127428ec27a22d06e6798da6efb89b2aee8a6cffd9464ac75e1af34254ed4c883bfca27cecb0e56ed124ed0737b0acbce52d52b57bf080e18ced80903b2250aceea5ec8c0783f22c4101b8dacacb2a1507a7f82cb966c1b5cf26ff14a42b27b4592cd04788bdb4f78d10d255507b7f115b9c76ada4e945215e66c8e8c6ddc3a2fbb34cea7aa85f7753f49c223c4b3d9c6e0b52e66e8f298c66c06c7d99f3c34a4047c5a6edfb31aa67a1000a64397078228cf8a06fe473063d6de707eb0d034c452d86a9a201229a9144a3f21c2f125ddc87a0acbb8f02e50050ae0638f7678aacc9fbcfa2e9530c26304940c6bd7d6a19ef24eef1d4551247731c0b96d3109826e3fa219d7122528a10669553909c1907059691cbafbe62aee4709cacee02b547e5706b5ef0f2816c0aea8e62cfa4ed96bbba9101cca7c59e41673b95dd3f6c29927d061cee9e132dffa75a56cc2b95e237f04f1e3d8f640d6e4397c8134fcd1239b58c2aa7baaf82f13f7774073fd32b22c55e2e7fc05e98a042a4b96175a4a36f7384119fa75646ed2de9ca7c2f7cabb06a40724ae133e2f59311852c003f1fd8e6edf87c4693d2a5af0e79c1ec345682aeea4e8a143613fad294edada8a4018d9b75397797af69b6f0eddf9adf0351deecd028270d906667f9a3d1c79059b96e6bfa3d352dca734efd02e6dd3f2388a944e1b32f6058dcbbdeed4108ebe152104e1e875debbb7343c7322823cc84515e5e8689255be3bb84c607bfd5cabf794b020729f9e8eea820943ab97ff0d06d3a3c82d9ed06dfc9e1813a270a3ad67edb694541ebe9d285837aa0dd17eae2270bea0c53b0afaa3b5046556246347cb0a6ef174d34a7b5a4ab7249f4a4773e60d5704ff3f03dbc270e92380ffc5354c76e2db5c6964739e6939b8b4fb50590feb3a1554ab10da321d851c512d06c1a6762f77958432df175516cb1ac6e3b04e4e8bb3ecd164e4c2dd1d202e3663e7db90e8d7d90605f09585dbed86100aa44b7b5403e56a4ea5d4fc094c590b8caf2e5ba0d52a76490608a5909b8d238acfa50ecebb702096a301808d24f342eef3ed37326531c2c23ccbaf2d2dc31592aafb5570b9c2e771c5fc737d0eb086cf90923fd406c7def79c78bb3bcf167fef94f434baa7e9df8dbce099e511a98709560f403b28febe84ea344553ca5439df21b3b575594afabd06f27f628d93346ef4e1f4056db85cdd880dc1bf99de1eba06cd03d883e90e9f0dd491bed7bd63430daf42fec402936883524abf8f93a18e6fe09daab9b40cec19d6d261e94dd96243335e748bcce7971951648bf9057be738b683b897f59f2eecc08da45597d319f36f43c3dfc15aa04f5d0e15e71b711aa8485ab532ae8cda4761c9e477ca196d9c5b9d6f0db7d25f610cb86b215c1e2c01043b773774c31757887ecd72006a4a1178f3c5dc05bc344c1104a45c0f7e8b23d75dbd6b38a245ac0c941313fde6a72e23404bce4776fd2e6f0d393eef1743e4a413486a0d4597b4f3943b82c01d5b1874fde20143fe2a6bb4272f014264227a04f4d08a3b516a87270266686d21aa9a0ec6577c96a8c2756738d949dbe9787d65d655bd11a4333d84f841a3f0f66f022b7f2daffaa455458c9f1c5f651a7132b567580d709cec0adef3fa0032b64414143d10c2f322aec1ff0962da1c1426cdc5ef5c2b9a78408bdf041d7c3d438c52de8cf2b70b286f3423f9299f4b2de8063fca9002ab205a220dcbceb9e34e66e664e492f77f3262912b40faf6656921de5e71d3eb9dbe66d09056fd006705dac0b7b3f23f76513fb8423d1e87e4f78858315c31ee9a6178c80569ede14db9ae8e1ce1bee36f3f85b170c23cd02e91ba84f641fe15b6473ffe44577709351f28b98a9a4d9364035aa01cedf90b95506485517c8090a7f595fef7f45889e4f87b2852a4753a9d0cb2b9fd3dc6fb699c23e2f18e78942a0855d8fedf8ccb5a2be1b4defb71a62e9600c1edc52643bf6b50ac8b8aea1d8cecca9ef2e272e2321a8a51623a57693aae922fcb1605d1ecd8cb745fc49bd27fc17b856e24b8b0a97e5c19262d7eabf967966a29f07bae2cd28efb771ffc20b2b8df905e3b4f6992ea6ca7262beb2e5b10c0698e6adfc0df97564e4dce23bd835d3f77a4105940572df9c665734ca1f51229d8223c29296bb43fe757c2368f3c5fada99239b6a928718cb91e8eafee322820a4a36070cb4bd82edb78f6cf14cfb057f2f51b680361c1dc26bcc4b4054a31b68471f3c19cefe3396b386ddba8d2434fedd950e438587f684c779df3b51f0bfbdb36accbee7adc83eaf725c8658a6e9814d83de2848d750125fe8b107cefd31a631bedef15cd4427a03420c070872c4b78d0b2d0b6c2e65c183f42f4b2eb8336c9a5928e1f9b2e072cc85af8966fed17f8b5b7aab97c09438ef57154dcbd2fc1ddec590d06dbe7ec5d7725a2b6322de90a3803cfbc93714e63922163202657f388f47227807c346be0d84f1be7a1469f6033a87a98b51cce5810a5c9a7f992668f075a6f7f1d48947505cada8acf6a699b9fdbc1924379aecf27a6b261aad668a8dac8032028fa33363654485a77b2b7d7ab7af6aaf42606e0fdabdacadf565dc8035e6ecc3ed734d6d25d4c789346a6abe0b714fa1f20071bbc7396c412c3b4235d705096891c5b1c901f613c249472976e37396338377b1dc15692bec2ea338021eb228cd0add3752d9f9ee365b5aaefc26ada76ada16e87a6368746542b86b692cb51ff5780d1e11a22e6756f3b50daa45cdacdc3aef548ed32f2abc6ed9f5c103f8dfd1597b6f04a96025e563a0b2e124552a1e2b6322d6d4b9300d4e4ed5fab158818a8117c4c76e8abaedd47d2cc2621249b57f6cc93bbc3e80419ce80b13ff23f06717fed0d30699cab2e04ae877c42d91c4b28283fd8718f84528826cb5b54fc83c645d73f148ba2d09ad149d50d9902737badc0e0f4d27459c40cc5a43e5faba81a1dc039bf4f43bd11d5506c4fec156e3c4c7193b3cea94d6d3cf6db9e75dfda76d09e7c806785b30e57720eccf4db500c4906037db34e9364248dd63ea222738c228ba038a4081210c609dfe07f34e535084a5b21380dff6012df5844eaef51d0c4470eb37402ce8f749586642a96cee1262960ea29557e95b4eacf246f4d89a8909c686a98bde806d73ec27a8bece18b3f155e08f36852effa95063a2b3feb006bf358e67ff94bfd74ede0ea0648f170ffd19afa6e16c6d7a48388871cde9be59986babb2c32ed7378c6bee6464ab1e2f1522fbd45c94640cf88898e2724fdcc060fa061c3dc88811fafee6c2cda8bcb858a31eff6eb1173388a7307b3e88048e356565bb93005be1695d2c3173188c637d7d5cc9a6cddaac5d1ce046140d5b15b05619bb0ff522147173b11d56bb3930028347e4c724583960d53099ce28ea3ad72d3a36088018738072c5e236f4e16284d6948063a3cd0db5fbb3a3814d61ea6d9e50aaf99f1a4049ee85a4056f9ac5d98d608302c8ae68d67338e81d85b35b86ab9780ddaa63c293ff55aea176297330fa59e5240040da708b1c895d9035b40a2de46931c2d7fb21a1e6683f1e3ae90ddb36180f99e657c33ef54714b5243b5c0c0acf923bdd874187f4f3ce7b5addec1115ec193d9dc75d94821c281bdacda916453109c7b1c8fec6dacb1eb0d1a9ccc2a89abd2c45d7587b4f85e9b3a102440f4dec860dee65e4322d120f5a40d94fc9872aa254b6b581791238ea69df95a702986dab84e06996ebb78fe50857d472bc884956c2cf19626a90ab52f7314c61b177082b3409593ce529562947e1b9643105dd934eb4eacbe6cdfc88fb7c19e631b2b1a07ee090bbc5a7c6d7b2eb7200fae2608350dffebfa06d7c1b1b999b8153b0cc369447c89c28a81bc3e04dc6cfea6be98744e8e64cd3ac1e7d5c0fd1513fa46f269ed59f7d6ce8caa04a25e98baf8b38880a06863d09f264a8e76153880eac4808160e2f081b3fae578b8d1c73f00ca1a735232feb3475e8a7362380d0ba1fada7abcad969af3e51ff9c38462173e24cb7b63b1a0ab8bc50c9d03ac019d1b68834dc8975df6bad1b192731c2c1d27bc73814a59f67657d91f1ef3d04bb75f5d7bba35f5d9d9ea16a818ebfd6257613000caa5d7a8dca5cd0ff0a1f34e4e5178314d3284e4dfaff6217f66a8bada632062e4996dc15dbd7a77166b036ec7ded2595d0561d873a1390d9b3239a900306292480b635b60591d0ceed33f6708d4e3d4ea4c8e950d89281781af359912d798c9c57f24bfde0f5eb92112cd0fb2aa16a2e0583f22726f81e8d08328c0043be0b512f37dff96b9f41f4df522d3798c69e3dde61e10a1fe571fc1debbad7e7b751ad45f0a45ecbf3ef74c3a6a53e65a23b6a6dff4c587d6f5478ed8514309dd1999f084c4b61127a39c2545e373e57a7ae7a77406ce4e3f729367bde8e12e374b2a8ed4307b199afada50c7c62dc4c37bbaa7191a00fb752905a5fce92da310f403c519200ba23f2c92313989c5bbaff6d72cb6cad02ae45bcfa8581d5847f248a31404f01b4256e39817a088f43b3f2967b24e0f54dad212e886733a497a02ec11ad9b9bb67c85c6f6be4c17c173c1f90e29db710fd732c403d77e4795daa69f9170bae689c6c15093795ea4c55e82d521487360e77b2300e21818c868d997393179332386120cc35f5584b1ffdf16882f89c17b60338f2dafe18352259937f484dd1319591eec739771730b9b9bd84c905d797428987c6ea7c343b260231c6c07fc4890579b40045693c00781051ecb5b0320ccc2703d7cd230c04cc5ebca0b21ea23740876a744b0ec04f49db85a98b0b7d405e341b8a8d9abd8757a17f3afd2dcaa3c016102eef0f66e46815f991f689f6b4a3f9638dae0def83fc8e064d4209e296668c09d9fbfac7db2f0a28e03ddef1bd0d21aa948614fe368289cbebba77761db1a25eb0fcb6da28f1db47e50a29095b21144bf03899b310d1284a551c3dd6ef0b5ab12e92d6876c30d0bd1ef53259be87e96fcf4bc0a76f1a0d82edb375a35f38497c0bb34a3813cf42600586f0644328cb8e4b81f6cda6fb91d5f36ef8b56cf7226919f79c508da959b970e759655819d2803e475af8fe290c63cca3336c8c2cc24559b91710969fcae94202d53e0ae49f38c9c96ffe1dd122c28902a10de41ea50cdb8070f2cf73ce7e8711886f8f18a456c6d31cd3e9872074056e7cdc4a416eac4458efd3fb4e812e69777e847bc9933fa3e6da8a68603afc5dc6b3d22c436ad331d24d43e622bd048e773a91b315ae824450c961575898bb5f630061cfa3a40c2e44dcfc4a9e49f37dfbc471174b323a0fea5da3999c8a4acb2cfe1fb860a178654e9ef758db9898673caa75f37909bcc304b00b37e2a0d167390782b81cc151d1767b62e779afbdd16d2461d959efa6676e765a58a03e393a2565267728a380c08ab5da2cd6b3b3473468a8efb8a272b555f635143c2a611b3bc7d6e2b7617a98ae132d37e2e0138a11a528fae43ef84a16fd2033b4caa55e4472504084b56356d0b9423a4fdde56c6d5420ebf8c5eff8da95b7aa807ddf3acd169218e82953d8550c9ed3ad6428c1a718ba0e61eefaab2ef772d0fd740f57de4e3a4bdab26a7a49b40649fe501bdb754110771c29ca597c880d3a12e243ce1c484bfdaf1c8381632e3a3004a65e6a2d4190148a8ac0828bf397bd52b6f2c6b59bcfb1d710a2f710322494db516793e4281443ec8e7fe1a2aa744408c98f881ae7764f534be65d207d956960bd9bffc4236c2cb789116eda2770c9696cc17bc3b0d1b5ee36df8b0990f1b26c6c9ace6482e642e712d90fca42985b8abf7cae94f378d42a266172fe5b1c0b2cf42db1749cc76c3da0dc1dda33fb7016fe8692f7be773d0c7730e4c2b8c8ad4b3ddb0dc73c7a63f53c1f36fdbac908541c2a376d318154c3345c845b64e327788cdccb269fad882251d6655297e1ae7d6428eaec43cde42d77f269cb65a94b47e41c1b58bbf1a5fc5899a914f017c77019f63773a34d5012a4e6e861461ee4d346a4376044cc5453d69ccccb95d6b1f572dc8714ce664402044cb409e0e671b4923ad1213dcc1cd251f3b2547274744ec1e6f48803f6ecdf8bc9ba78413f1ea29ae2927c9118bce538ea31a831d98162b824d57aa297bd964fb779c8a9a9b75a51077a063060d591093ab29965a540a111834c9cbaa1029747650ee5ffdc10c73a11d4c2ef48e5a474139c5f7ac2b707927b8c3ca349804d781f53263dfbbced2ba47fef7557cd9fbfc1f38c52c02e8ea985d701d37b65aece2f5ca096158e94a82e3f565f722a08e63529a642e46daa2c53282ba9e975a9f4505dda5b830d096a9445c8a6dcdd350ffa2943e9e70a8cdc76a86a33ab1198de5e15841da024cabcc104de5d169e5e06d8589078c70e63c2a7852506a650c5d1f420a10553db39459b6c6998822375c7c6ddb21e6c06e3472a835625c5fa62dee711b745e16e83f723c942273d1b56d92adbdae8ab32d9edc61368c19cf87605e99d39ad268ae3027d46b6c8136dda517a4fa72faadae56aeff8673e922aeb2c2271f955f1d3f674a2b04b3546d6fbbb63cebe511d00a99698a0627df442a8c0dda89def63da585189ea2d08909204e56c16ea384e51050eaeb29051ef975a29bd77faee356631a55b1c885dc2139e01ad285e7f64dd98dfa1b1be20ef35268864988a54d1dcb7b6e692c86c9633811ee9d381369ee53dce4fd97a445a8a53a00cd49de2cb5c1084401b3015f5dce1fc90565050e96ae9d06361f04bf5172851d3e7d6968f57e605031563a12619cfee1b36f171e1e624405b22fc9722f7b464dcbd8808b3dceaa3099db596c4ac4858765f2efcc1d4defe1485e56f655804efe4ffbd9094774c4392be6f6d55f9c5d6f9d5288e8de0b1bc1b58286c44ed95c102e6f88e9a59ddb35604b78db9b75472d780444f191872b8500cb41e93ae1f49d86b1256d1745e521c2b557fcc7ba93194f62ee66a15f221152c9a52114e069a1608368ce95c33f8a9d2764e29a4a39576ad059eb02e7fd1a3db9bebdad4a2ed1ea865fa16937f386b979bdd33842267c0b4be65956e69f49ccc1734556832093f945524791f92ed99e8a697751c4c8bf90cabcc059c9da46716e769aa9cfd2b6245facacd0fd1a1f039c9fc5158e7b40648e95c91922e7352eddd660b449598bd8b2afdbb73e2c81bb948cc64377ca0d43450fc86d940067d2bb7aa4efcc0be8def31375235d80a4ab5cda888355e2e71110c188bce40793adbe8e669c06ad98db47315a22ed5433e44663b7070f0dc2cd5657e99887ab0de00b8a0b9b31a76083b8b30f501e1df3069ece36b2c4623c227e2784b9840d5bb24e577126324e39887fdc259e90be4d2404b84bd330e40edeaf26d7e54cf3e826d3970f2f1a17340a9b49a386a117f7db09e53dd937114dc28ba0d62270619719e57cbd82d84dedbcf68b3f704083c7ae465948854e77d495a56b1f7b7eb4eca02afdf1f5c39ae8f95ad07dfadde1ec984176724dd7be5befb3fcde774a7de200547143ad199453c6ad51353356398357a8dcf368592037f9faa460b530f36564ca3428a0fba87f5944fd6984c0c1b47de76bffa0128e611d7a024fe5e0c647b991cb3b61b058a4078bcb9190143331b729ef006bef6c9a4f069db4f8d821cb442a2ebf126440319b7c74d9cb5db38a07ef0a36670db5a5057979c20c4cdb3bcd4abe50b14ea693609507b5e14dcfa2b7375a140b86022acf013c982094285a049013f0ab544969f1f044cb6c6770ab0a3b6331e77192bba51ec19e62a0cc6812fe246c4c6ddbbe610493cefed0d621b422a565766e8426cceb3fc8bf6230e34d8bacc76675ab85ce7770fdce2f80f3efa624989a755c21b546408ec13e196014e913da4faee538189f80807e5ec1e04e574c5b4defdeecf27b375af780000f24fcc47d9ed1ab053bbf3e6f3111c830257860eeb3b32bde608d38d5f8ce88dc4ed0f9fc35e3df0a4084dc10b21b0636102af1a23109e7bac52f19717edf9d9ee75caee574fbaab5aca7b171470fc2ae9a9cb91f5f34664d49d51d8c09ac1602c911cb466ce2609daa72d701dfa4de1b444b2b8ba2bcb59f2e8b84038a566dab277724318cc75d1300a46fd04246d493e2df0ddd72c6b0f2ebc7334a88819dfedb89abf7c52c86460c52410f90cbdfffac4ede5cf7d8a59d0d8c5f4e8721549f0bdf74b306896aa87613d9c501d9feb6a4df6725e8e6df8fcca300d1506d6a1ee1b629ba39988c30677f6b0e4d4f288ded83b777a7957f3ddacf0f22dd8d9526a75899bd193af76bc72a096f081611e7c9ce2ce248dd0658f5e245ab8710a27ccba639c616633eff019c699d9e0af1dd87612bcd0f6dbf21a9e968a7dbcf05b6dc320cdee57454b5bd2942ef1e830c8985da200ec009ddfd43b0501083f1c33775a96a5c69dd8aaf21d82fa07d7a81110fc8441d5587de674c2424331e5656b98cd3e12650c60eca657a830ea07a981ffe1e217f8b25c5ad4361023c20d485a34ad492ddc1bca15822ace0796631cddfeb153b947a37570c1788c964bd893cb93a41095655ac4d781dc3de8b3db804add45c022c63d5a6e34d6a956b250260eee00d8ae7f01aff4996a084f90e139fccf64212b6d41fd9a18226263bb8677b0d52f6dfdbcce592774047bc863fa68654980b827f81ee78754fddd4221b2a3c2363434220305b6ccef85ec84876755657b74d82da0e501d157306185066141bb238b02d807919e472125900520a1d1ab1711644c4ec33acad93bc9e94cc9c62142020373310c1ebc666ef8acf890f13e3f79641fe5716e59337c0f7618ed7ed4a6fa1e1fc8e5a1bd3a9255e0b95993b3df5f13e7fef150a50535728d8a07314075ff46d5a2d65ebcf5be6919c459c45fc78d97c29f8df54f351289e6f1dc0e8eda896cdf79aa350508d1ecffd2977259a1cd8e6e5c32a1469b4a46549035ea9b2d7126269cb5ae5b0cab52700479ed979a60863f4eb4a89cf5ca67b5f390a95a382a13a3fdf5441b702cb5682591327b9f151370ce63d06054dcaae2a8c0772758e72a18dfe977cd61fe57fb884dee338ab34f2b80fd18c676b78d6959aa9512b62c0bd0186b01aa6ed41abd94fc5eace67f7f1d3869af4ab6db4d0ac1e685141f3c584f6f72dea3a12ee02c1c85c188bb2df5070f1e90db15ccbdd4aa101b298e945d489b7d0f7ad18d1e068faf2922901b7960d7b3a83f7fb48aa72c0569319d80f7e4e86fbe555512190905ef46fabb515ae4d8215fd6a0bf6db4e9a18481977041b0680eff168bc91a51c8dc3fa8d52da3a251b574298e83756f47669f5b61f42069b4646cb30a56b2ecb5009523ef68041534eea1bc4cd8860736e1854a07c96478dd3b4d22fe88b039373c8f4aa20c1de58a95e1f349dfba3e0c624ee4dd4484bed769f20016aeebd14446e15dd79c9589b73077f8052aa4627c5d4d4185e2450cbf78521caba7c89b256689c8ecd6da8a7ce37108fafda1f1c8aba488943bb286ca79113e799b9f16e32b9194971f5d9ee39ddf178b16e49e6467c3aa1707f840e43c7e5fdd88a02a9d0607f94009c17a2808f09cc6d6ab1e447384e490f4a73a7863019c561471f45bdb9318f3688f4fe605f39244197f6a5aa424cb9c33f65b6a0e533ac6ac98e8b52b789e816de34b3ed30a154a0bb0d1342899141d06c805b53cb26efb442905bcdc47dceed5bd1572a378a0c7cbf9c6f7534c4b04bfe64aea9ff3e6126bbd3cf2c734ab6848ff5eb6c8e28db41a2fbb13e364d782d71c5d38070b345626ad8e5b3fac4d929c2279d23e3b0410b4cbdac868d5e8c54c781995bfe2ad2ba9d73130b489b61d5822c48c3f58d197455e6e27f196f973c2cd90d8873210299c77d20b7ea921e19b727a8fee8cf018ed8c6db8a3a1229823f27244c456e7157421f48c537dd0863dfecd42679f6f392aed5683f0d5d357ed5ef85d1fb2996436052759176b0d0d5ece21776ff4ce1bcb12664ab158e979baa694f161586c4dac43a01374e40a30bd2a7abc52eb078d4e9d3af46caf56e7af0bc4082dcd1192dede8debe7b5a12c32ce8b8f14a32272ec916202cc284bd5afb54d2f2efa4b726b1e5cdf907eac14fab7ad34dac71e8fac965049702fd7103a65274f193cc01d6f5c8acdf821a3dd59decf54dda45f1cf670924a23cc41a85bee40faab397e251cd052cc52f4a7211c0f93b3574c880d6a0fd8079f394bf339e5f6b12d5a962908ab38c6c3b559fcd3bd5d1fddfa7f2881d6a778889765596244b6ca9130066b5e8fd9e6e53fa9f0afe5422de4b71471c3235a04c07645fb6b4e2188aad80de3567b9b0cc5c622070e087d2f8cb1b091e92ad72443a97ece1c711ca6f6696b0ea2e24d51b43abcff25b36e900172863ff97cf6c236aa07457c7641fbb8116c112bf5fa4003d450030d1571b41f6ddb703e2f7a7d2200dfa0c1c08cabf2f586a764bb6a2e83d4fdba37ff8d72ae053e0a1125fa72dd7ef227e3e38f017bf6212ce2955cb2595c4c5a92d64b3fab620275a5100d37e81f47b64a942b187e9753e6ac7d07732b4ab87f3647d72232de25b32391c81c4bfbfbf479cb409cd88eee03de636a7815d71b41d51abc613d03b5d3d74c70c05775a20a7d96af826ae105fb522b73155b09dca17f089154f729604d83394b6c3c4185e372dbc74b0d1f095c688d8725583d1815e74a70112d278d61e59d75dcb0e72ee6b5a97cbe45fe465c2a3f6ea4c6d52e1c2ddba5c27d9955a061cfd8cfd521720597a154ecc180f92e47d0e1829c8ede5c582508e52283951021e7d9c00b353268dc9c0bd87f992935194160f19181419d0700aaad437176db4bbe0aaced1e85cbcf9dec5df4f7719720db84668020e412238a6ed0cde3bd61d5252eeb38a1422dfce71c2ce6531a53a7839ae47d6a8d93327b47d328dfeefb328174efea0ee10a2023916ab4cab9b555b4b7830e15a55a8e4cc54ce93ea1ba85776f9304f13c33c771004ba17cbd2e6ac3263afa4800f9e2df094726c1d431cf06363cce4a08654c6ad5090943541d62c960a3cff66b0a12cd4b16f06700092fe1c6031331f9a8841b77821731ae9ef4ab152cbc7ed0dc450007ba1ea147180c804804f0098e09f2be0d1650a736ffd0407e86a40fd4aca5cc83877c5d25b84ebdf4ba849db396646d6bcc647c2da8a6fde7660a7fbae90fecd5878104895b90101a1867b4a495f870e95e107d830bdd7ab17622f0d7b0b0ff29b598054c35cfc5a5a8e146d449f65e47d26f8380155cd44bc537d3a1caad91bfdfcd169c23febf4275676c30b7043e282214db6f88f8460ee26896d0f95318fa460e499f25f1133a2272f8454871de9c280ec92b41b5efaa7febf1675e80d4cd161ee57a07237ed358d7bd907a7daf86adc5a19a93c51c908f20aa46592049936526273fa106d389c11b6ed06068ef3e0434a30f642458adb24e6482a6d26010f63f7e1b61814309c86903dc213b0cd9e87d615dde8f97e503747a0b1c29ecbee325eb39be19009fdf746e3335174c0ddcb52071d87655f40ea05fc6d43e5f5e3fe0d0f605177c9c9a03ab8edbc5b514e5892407a242a7df5afee719348d540c2273a1b70af9b4405af393cc90cf062c02393ac8caaaaf3638cef91c154b085aac7d6fab461216f3d9e01c659a33e9e2f4d7a033e39c46158f3bfeae65e254984e68d9670cfc89f8a85798fdc4ae961e7d2abb4cbd6cc258de506fdb9ac6cc839d579c557643aff852583da13cf9ac98e820ee42ab50b5afaed8674fbe5d1a71b209a94b003b881376f2d7c4a9bb316dcd3bfcdd3ba3a25d7541694b8f2dd17e0211ffc4b6796572193539b8a9796f6801a6b02a9c582c31e4d02860c0256167e3a59551f32c2d8c69a9efc5bfa649b19f9df5b31f5937bfe3a0c85d80185858bdfdb9ecf909dfea52ba48e949c0e5dfb7b384af54163d0be6a1e64f910ff9cade09c8e074704984a6505f615169270fc44595d4a65caae595ff2dc0692f90d2e69dc526187b15265fcdc6f60dd86b951d5d094cc555cf66f4fb5988d573e7b848211262dd0311b7b67c660d6895069fdf61042d2e253c20d451541b33adea1373c1c6826e900c1cceca8d114cee8dcb5adb4aef1893b6eee1dffcf4a8eef608306ba8c38497b2afba671a132028ca9653b6ecf673c80378eb260cf3e7568944d9750c0f8343188b6463658b1946834722cb03832e9659715f883aed43c076fd1f9b416903a99179e293b7ba5ab2dbb715fb56e0856f7ec2453d91f485ddd917723d555ddb5e91123d93600317866e0cf1e7b42c656ddf72a4aeb5aa680a2a68af408b1b47432919267cc534096002e5e3dd6cc388e5d029604bbaf5321397bb6078fd7f676c550554cda04d0b23f79a62e0c49a7651f7f9fff917ae2a55603f5ebb056059ff74d5006fa51b5206a97f6de7e8766824b7173e3ee64f9554bd9e4917c1b6f164cce15a067d4af83148df26b3e3fb27cfc512689ffa26feedf16d2eacda035ddfa066a616eb235855d32189097f97093c71ffde9a340c9100e006d2d603fa8bac019d619ae61f2535c068a2d5c7b46f4cba8c83e99d01270112de6765c538aee914142482c102922780ec6f2fb6bc51ba5091e5926fb9914a5639a371e7dbb4ded1bccf1cd0194ac66cff2bc96c061ad0fa865856d989f4a4ffc15dcd1718bc4e307e0d9a7d76f92652b7ee5345c115baa54ca719b2e10b634a234ea2d02544cdf1979de39845d4a5bd9d38eb1c6d39b154ab211bb18c6402181c0e3baba1977aa48990b7babbfb582b0dc6a79885066dd63ef8be750e7e2b33637921e4eff918bcd76ab9c2ef9ba0f1905c2ae778a1aa2e4bd9c3acef4274de8acc982e64e68a655831c16fb4961ad209e38a47763404d735673ab0242859b60833b078c67e37d7944fc734fa4505d39fe89d695af41a37e2b43822d790b82c08daa8e102b804f7a4b6a6d38a91991cb05f27f742d2d9430241f13516c4e96b0d4bff8b5a5edc8ad88d2b65a5a014fd22e3ed71c948d2bfa21a6e162d2e85b3496d9a0a78236f6a96913622ce38f8a0ec8c1deb8f313a91eb9d4dd7dcb25533c08fc543b0ca499d7ee84f1b7bb47180668d891ff1a376840519b5acecf0fb2aa42818138a0e8f69293e8d9a15e6c9f30a036ac1365bc8de65efc47a17a43c9ce3071af62e7b4e987e2d92c70197f2183e3f648864db10e89555b149a66c247f43d691e986083ae259a2cb420c9634c4942f389a11db78d0057b3aa33754942be70c42bcc56d416d992f5e282dbcebb74801e07871e1e6fd6dd3fb059ac0ec4db54aca3261c580ee67aedbc7c51e51d6dc0cafc4484468f4c8381429cfd7a54dfc93801695ad67a22351ed3f1ea4c354dc521d3160cbe1648da2ef86895b9d2327b8a39bec79cdc673becdaeab0c6aa60c8e70b086d1747299654c58bed13d00ee300116bf9cb284af9089dce7ae2cc40c840fb19cb0542227aa7abbc73b286958760aea0c1566ee16692a6c2caf71fcdd56bf379f450dec5dc1642b2de25cf660c42511b097f563e1d99a2582b4cc07df5b93f6a52ff17234d1249c127f6a5b040ca533c1c1f8037ff779714d339442898e3ebcae624b77be1a60e6def53bc9f46104a773b431cd1e9774e36f5124ab55a6aa4e1524b9dbfe1c6e88e11e348447c2496776c33e6dcba37df9f77a9015841b6796de1c8b0755ffe7e03806fb8da14a27ea99d693316f85133fe39cd4d872f82534704894039bb8d12d7eed2968f61e9965266460237c76b0a6063012c66ec6617ff7bf59418b8d3556d5afe18b17555024b77bd6a522826a110891fcec0e76c2d457bdc28c48413f74e3bb68248247ec99eae74bdb42794cb2f3cca0fa3b3eeaee233a83e705dcd1e688c638a12abdfba07f556fc6d19a96b875275aecc01f22da85720d2e7ecc15b7957aabe68c2e5b9d28e8330af310ac3af22e5d0142f7514f9815d54d81f197a0c8dffa6dfd093c360da49896770c55a3078c73dabae378c4ae60ddaf069db78961b9ace2109839395e891b23811e27a7f2d8ca95dad4e163bbfe16f1c2bb31e6c6bc5a3601e301a396e3bbd6511817709e952c85dec1b0032cfc1795ca83c969b77cb60c58770bd76bf5cff23b9c485b1dac196635c244456a717eed5dab46074a2d9330ec387089cf552b92d69f8267a4a0ee658d6d207dddbc69b6d46f8b1a76140821b3c9cd0fee599db27b7535ada2d4b0a03739c970c6602e4ce304e69a68571bc3250f3e8fe02e6be22b6e182b679de2a58cabe9bc92e265884b1ecf61fe1c7cbeaf908d2a37abd4d0cb369b394dab079d65d943cf8bb202c9fb4649b2b49383918f84855c485c79ed1af80060c5149c4d26b378ca77aca552695f12dc476a2005390bd6ccca6e307abab89cb42efb499b743dfe8721036022bde3b5c005692dd2dc1dff92b5d73287ecefbcdead6fceeb8339a6c6301768f20f2296b5087c7de876f72514f24bb6c6f8bbfe7eddf1ff46c67e74118c2bc932f10fe8c1c0023bb65b4d0417e528321d758ce0a37fb19b6189bc72278d6a2e2d2c8ea980d35f685076388a9ebed8f14348472af1115c14f4cabacae3ddbe12f6fd6f28089f8c60a4266469e200f1c7fb2d49d7096490a46f85fb597932b3b8a8e79fbeb9f57c670501c15315e0ca21c9c583addb9db4d131df3e4ae53a7c2ac5d86c4bd41dec5bd3d97a5a1ae6f20c5601024431b6f6c3d6a643d9e4c60639d246f01f5972d5cdf1370439471ea0caa4810e744d9b2c9eda9103e23239f726e88bf92c82c67fd3a335c6f7e71df6abdc03f070e2e63f3e23cf4639bf424e6d83ab92f335b2958be84a8a2c1d6841552df07f0dd000832845c6f26016fc4333396dbb2e104011a75b83373c15bff3f1b0249cdfe025d77b4ac46536bf66a9d34fafc9cb2d2d3fcea9ee1db4063ed214a9c1cf1d258982969b34e812cf1ad14541ac21748d14628a96cbb64ce9946a6b591459956f6da5b9d8d14598b7f11038ea5f58830a23bcf55eea06ac67180e2a970cf60e9954edc22e58d20c3f4d1e1e3a47b10996fbdb1ffa1e846929a94bf4e952bd20cbb655a2aee3659633b80350f49b3f945c0a5d02bb91a426135103ddcd64e4e14cd4fb82439b9387b436c0fd48c02855919f0c4d2a583c05bcaba6b547d38be0551e3ba869439681d1cc0fab68e6282c62292c2767748cab8f3f43d92eb52088fb279f6e6544f1212b5667ee31bd9231ef8858a3411e781efb14092a03d407eba9a940e201c6d60255590407c5ebbcbb541c76db139bb8695e36a10d04c21e3ce775393039b0f4c41534f5f65cbb65b7a10b76480fe8a6108ad5326c5a2a5f43202780173827595455832a7e9bd831863041b1eb37a3eb7baa1abd706f1beafe5863af726df9aa2103dbe6b760263080a58f55606056f222ed3b982ee8241b6c0db8bb0678bad5053f6262656311fd2e53a3afe40ba258a3f91b74379e28bf122467269681b566d6cb996319b4946e59a10a89a35b94178de0dad390e485d14cbc9eac8b92f8a2a7d10a0fc2e2c3c047e4aaed4e872f4f756e3cbe2646bd6917ead9047f6e68d3ecf8bca6e7e8902fb038a253e47d77301e2596ebfd85a0f83bb6a9304eec30a39745607160b3cc7a853c41df459cdbd905d52ddc4f86fa84f51778139c13797f15573932ec9d42ce9a86f1c5addd28844de90ef02b7fb35ea18358a3bd067506b1c2d147beab5e0c6c35b048bf5c64b2c8aba600e7aafe17e6d292d0012d00e2a7a2e2582ca6d8e4fcc83cf1a4aad8440a7a699d3fff8eb18dd3cefe45727b91a8dc7dc0297610c2977e6b53382c93f572a341357126c616f0dec0cba87bdcd7332891a8b6dadbb4ff581a6ac99053d72b720f0d82b5c8cfdc62431393859bcc17905e905e9dfefbb9e69b3b9c6cf5b599dc109906b14901c733285c463cc262640be6c3d2ad42cab9f9550c67c9ee4560ca7da1b0ed0743e5fc88e92efd375daadb862a7f4600610b4c7f48ca7d83d195abea1994acec27286ab4ea8fb4208898859bf163863c648f5c900a34b8723a892db6d3bcb8aff1b25c4264d8697c041b12bda87c31962e528d10f1fe28960235d04eba82d0d856e8f5cf734bb66b6c9724df7e102de1cdf6347e663781b22b5905e24aeed8caa1b7949797ec12bd66b17ab1411b97d799c70c5b59534671650071160f0f0fe2c68bc56a60d77e90d8fdc82d0c701c58ce63268d00a8c7b1c7c8b82912c4ed6f523f5b981a6a781ef421e0cb916ce1098ea289a0f23316917b8a88f063b50d7ad23b74098991c6ebcd23d494186e67c1c2dffc2241c42f7f3088554a5adc2d7265d05414ad91e5e345366302dea82470bf6cb6153e1a97b29f90d504d97e091108b345539f737db919bfd42be83be871d1e36f765c671034f10a915527f373cee210fb9a6417be8fce2f2f3a4375a16b408b9a2ef44bd9c84dbe8f8e69bdf99420cf791f16ce31bddcf59027addabfaf95045a3f75a0b9cb178322f414f9f8194e8ef266ee80113dc9e14eccdf435fa6266875c478c18a08c4f7b27e9415fa0481a48877c94811a0daecccf153ed9269886267da49916e89dd55d6868f84f51d8dbc88e1cfb95d4b2add72e4d38d4825aed47feababb1e276d6b9ea99d8efca9a566171ab1da8526d565998ee06c27177f7f021aac84ba18c025e6b46baeea0486949a63031a22c541f5d683c28a7af4f9e94264271be772faf2bcfd312fe0a06d3796510551d6ee861ca1b5c2780ea16b6847e0b27d6f9cf204164e42df75227c931922a33630534435ac5267f4ce1fea417bf069106c0584821dc4ee2fd9613e7624852f1fdc7c941a18898b0291c139f20174189bf9badd9bd34ea06a88aed5804d5e09b9f6ccefb7c25aa83675ae09e598b5dcdc033874006c777ec42550350bcbbd0a03231e272063ab3d5599ce84d6e81329907b0da8ed0888fe50b353ee24531ddaf1137aa4d9ce4b29766b7260f87c7c11bc72b0077cb8743530c11cb6fe38ce4e620471704de07b575ea2fe99e787d29c3e41f229fd8c08b261d077af550db007772d5e60d1005c7e1e1cb6ca4a4b4f4787e54f272f05bd2daecb365176ae1792edb39f38ebef76f256ad0a04cbaba83a83d80ed05366864ddc8a52c29a382bb1f2232c373030a86585eec0dea9b437924f7c2185ef5ee8363cd6b36ffb775cc08770b2893971f3bbb17750b177d0332032ea123728f651e0b3d2ea0e6870b3df35dc00060dc4414df9d12f7ed5e4d908618dab30c9c721fd349c0964d66554326f5857a88a71db26cc91af3db705db900e380c40ae6ed85267ceb50ad9ec65164fc6e933c406b3b3ef6b4c4cc1d5f739f8d85c6fd18f83ea33e740b11a17c64aa00a0f749e28edee9fe0cb2ffb9d774311e5781720deb5c80d250f5fd1737327affd6a6c9e47b742972349e13cdd68d490dd9d64523bc46183ca8054e461e94a9a28b99f7cc80ee6c95444ce9041a95b170bdcff03a302d06aaa108b7c2cbb78b565550ccf09f7f84a4931d07cce807d15621293e103866975b9ea3370af4f6bc83395dff0c4e466eb6b972cded2a0978f1447b05ffe58bc441eab76aa523057128eab50c5ae03f4f5fbe4a11b5f0d70ee835454c2305b214ca091720dd188329fd20c424aa1ac5ed876584b82670485a4d5a8b2c3c15f494bca3f83388a6af2468e42d222f465d4bbb7520fcf5c7ac9ecb989ecf6a9ac5522265fd84c6762c625e40ee7902a4ac798ba1ceeb55c1635b08909cba96e362cbd95c9e1640ea4aea2f24a22f7b2b344212a1aa6caed2d2d819dda73c66fb20e2081c1b2a798ff973e2a99a56d1f911f6b5e5940e5846e780c7a1239f82fd6ff3142c58638991f42dd6bd5674e3cae3933a0a31ab57d4963509969dc633d0db625968a87c8bd8d920af66f6b29a2e967de704707d9a1913f79330e52159bc6a298b944b0963452d4f708a62dd492e6867bf69c6a76390d89598d32a16106d7a7bbc4eb5bc7eaec7f70debcfb88200a9d3301f4b48ed74029032d3091abd5dab950c82fc66431b27582b51fbc3d1c26d73eb105f1ca1f99ce3c9b7c159707a62d487e6845aab06b00936d7f5adbdd307cadfd1642ab4989d222392f4402be5063216ecb4b52b257b107b030eee61e6e16a62f236eaf748401ed0b6f4fabb25c5430589c9255b4fc38be0ed0aece3aa48a920c89126d97a37fafc5098d2c598786284acc3826adca69893f55be0d014d40c92281aec5035ab9f341dc62ee1528b818eaa4007d9bff004df9354e24642fea14a80a977c08fa2b3e74b844da87c243b174195d454de53fed03dd051dc28f5e9f9cea8cedf0f6b1def4250755388055c2d7f7a983b402208e6500813f2168ea54920bf2ec7c579da5d186008e49d8db7d6e70cda92d09a98f587e21d039d3daa318bd2a42f0d9467d0cd613de623dd4ad4740a3e627556820748243c8f90c8d9cb546281e74273219a6cc2d817b6b6a891bdcec700a0028d74f225b6ab3e0646260a3d4e0b56dc45a5a0f7af7b7afa17e98cffdbe9d10b4857e70639f0b40bb2e235f905cb3c82c1b33cd7454d3275cf29dbfb77f3a5b8a9204635c5f14fc6aec6c8fecf2c1ee527d4cbfe7d0cb132a37687bbc2b9bac6a19e2886b1cf5227f10243efb2162f1286a1914b7422c8f094dcc7a524a3e57de82d20724236a20bd8638598d6179aeac7c5c4ccb7711f80e35048cffbe4a8fd7f2abf0f70124acd97433deb9676a3cfe90e2fdfbf7f339cc247d7268709ea71deb1161d527249462693f4b5bb14df9911536c36c1387308c4323797953029014e778910bf1c411a6298ccb21552b490600c2952b5be488d70be9421c2d0fe18b567bd46abb7d1d04fb259fdf4d3e79dd6a5b47e51722c47017f303175bcc11b2ee716b92168cc83687998f108254142837e0ef67c65b906086289fde16d18897c36e8a8d88d82972283ae77239c5bae90fba532f452b43c16dd0aa6ba5e5a113ba9be03efcc82b90d9c9d0cf16e877406e3238921c45726a58bce9628f3d93c3125df9eb358101efc528df9aa7de48ba060bd48759ac8e0227562e5f886b5e3a45527d4d6143933674d5e949ed535e5dd48efb744b366799cd7ef146b021cb5a3dd5a1e3618b7adf8260c11b9772aa16cb2acf15be2462f00c598f6439614f2acadaf041a3f31c139a8dd5dcbe66a1f63304c6072493512d5dfbb34f80833f788917eced454db17b41ccdb5eec123f7ce62fc81d05b0f31a8a12f183d2b43198b6a635bf25c9d5764612caefd7fe5c85aafefd343aea0765db9c75d8e5ad09f9dd03ec6c73bcb2b328cd82443025ef33b9ca1461ff7c20bb77b89f0823c04570417bc21912f8d3a8ac2d1dea5ff39a0be543dae85bb6bff6c18e2cc2157c460b1cfd11dc7caf20b2968d8960e261b80efbbaa92085a7482b55f32a7e982b4f3536e80a646266ff3b445bd9a4885230b22554ea994fda7bcea0fc19c54ff512785eaaa719589ceb3bcf2b0eaa73b12b2e7c4c032efad853f4065acae78276efb710fe0ff72e5af9aa00145f11b91288c0927a8f91d5654a3b0e627d8e759da38f904ee0b8c646de12d50e18edef566e34e62c976b875ab2cf94394cca433c3b9c3db4e64cb8ce72dd7f2ab385a8e3b8cd82d1b643395738a173323c4c8058173983b64b0f0d2f3c58c0b60d93da182cbf4e97bbcc3225125eb2c4e1956658631e3286c2ed8d9cfb59c44ecb12e056229140f9b0d9b9932708bb4f20fdf8ed4969df3adc78ad5a476aa7f81decd68353995242daed7e9c8cc286745b11abd68e3286bfe84a21305e707f65d470fdb75107e6d5570d3e6ba8faa3351d1cd66f0ef0df5fc0d3c6f6e610ef3683175c0f0705d706ca626995211e6711c8f3d3acf59c4ae2f28ba9ae93451719b250df966016427516611262879ff2d49b3eb79d4a308be7914ccde44647839432d71c5d609ca3c7ff74dbbc8df8d5cbc36186bdc00bcfb616a41bbb0f22eca521aebfcd51f9293318a9f807808ab381ce2627ba3ed83c4efac53edb50c2c31e7b21927f1c0b1264e1b01b3c986ebfa4b6225bc4cda519ffeb2b122ea3b9aa72838fed47935779d6d38e6ac756feb2e65f4cc96360942e3c6666e3593f1331abf60abe81661f7c771d599f4216b69f01add3d38607eb44bb48cdbb95c6517a35f8b416523aa6d75eaf8d1949f3fb27cde4cadf8544c01fd45e604481e0f8c295b7c105d250135002f4779cfc213471eadf83f92b5fc84f2c99aa1a51c2329fc97fc0ea231c56d0e2acbfa9deb79028e951aa8e215df09b56e7dc40b32d1492d5e494b5a63767a3bd1f8f3958034ec17354eec99b85eed7d5b45172206f54b13a5dded61286a3107578c3c735f0b44365313c454935fcee3e79b5ca49b88c6855e8245b00f60a08b6a39c08cae4b93a8b94f422a69d398c8900180ca22e7c3a642cd963071594ba7f5d375300924279b9fb506d2bc47ec87e1dc6bc3ead444dd0188cc32a85046a439df485636400ba4d64bb113f619d4fafe1e136f4c2199a65646487cb48efc2dfa6228945e34049707bd2259b610e549f9eb0fc8bd7cbc1c72df575423811174b676312f130710b12ce990ca64411ce2bb543b8ba5c29bd5bf246b66fc0e8c65407096362c0ea2176d562ab830be75c4e1530e1a84860c83cf76fe45bc5e946c2d638b3e15996125fd26e3804db36bb4fa9b1eeb5f510dab6e2a026044b3e330e14feb2d9f0a5d4d1b46e403310281d1feb73a1b9436837917a0465d2b4566e54abced3be0208c7ee08085ae538d9c2bd593025a7009ccb2a9709e0bab4e154fe2a69a0a8d46d1d1c3971df2beda0e6451fd93c4f07fc2e376fc3206dc1507a1e959bce710974cff72065b36dc15a0979ef9d8703ed7628afc57a13863d4cfb3e5283e34a31a77e71694e820d30e97b21fc34e4a46c14d2cbd01c2c1503355c9142c6b04bd869a28bc60ece047c0e6cd480e7e5c663b495fc6f5351f1231f27e822d246b19b0ce4fdb470b76b2b5f458d68317e68f6217861d042b0f1be1f0858499a1c1719e4ba8a22aade15622e9cd58a78186be392f90a1da0cbbea8d57c66ce024e5888632ede6c53a4596fa37e196ed5e28a114e35d009c6b550d4e874996d6ab4ba0dc3d172e9922554472002bba4b556b0e8f87293cb7c11cd05015bad64f3e55337cef98a385517963958ebe0e7b2b0ab22584d87be5fa4146350df218393cb00d6643f0feb775058cf17edc7a525eab37bfa0177279e646f813fd6e3d2c38fd0447256e43b6c94361da39fe328fef5ac619f7a301f6cb757c5d1b01925842fff43ac578725f19ad2cc926ffc6c1d03b973d68ba8edad6d24279a31bb84907a9e255cbdd81f1d2f149fd45801ca031ea9ea2c596b0d018f9da522eae0e606415e656fdb26559be5f2cf88848188fa667cdb0d88ad99dab27d8c526316e3f1627cad3440c1e1111b37615c8d40d4c5e7ffc3dd159f6e9f05cd2f4b5a1f0656e2344f35ea65b5d27b8e4aea761b70719bc416ba43d7435275d87746349eff44804b8a1fe91b0f5b40ec41f7cab8865db94aec4c3d2234d284775c191d6923e36f05e66079597fc0760ad394381f7091676e6e21799cadbf13fdeaa93dbadf0d27f743f1566414abc8da4148ed1c9398cbab6714c9d5e993fd0baf0e581435cba9e73a9454da8b8a9d391fb927d8b4c9cecd105e80193c3ab3f947f67eb5e4257a3eeec62560cb13ecabf52e0de4c0652a7082039875810b4ac8dd46cab6288cdedb93ab5e93bbea598ddb8ff2dfdbf0ee093912acaa57d553be12d960d98eecc11aa6a725bad771db9477010fcabf5e40556ea09f0e52ab368fd58537f6b550436d29f6e4cdd3948e739c04c7ba52a62e85b230dfe596132dffec49d9fa84136173f4d72df26cdb81395fdabbd88a1840eaf5dbd9a8f3cc0de7134fda5f138339ed9d5d34d36f2767041cb7460e598174ace89ad3eb2937968af6210c17f195363ebcc657faad0375ccaa930c72f3e363a51604e9df99dfeaaa1ed7af83b66a4850f3dcaefb7ff214594f007105d6fff961ae9c64ea58a0eb9ccff7c6104bd488c7acbfc3a3b8e452043c36180c8456b6c1295b0a6d968205f88e86fe61d513d778899609afdba39bdbc6153209dc1f51733c09b4e4f8a363b6ff28642cba2b394e22b241cd5cfeb5f39a3628d34573cf79f5f314b8edf37d14d9a181daa0593e2c7270a1d68e1168947f00831c6745bd2110cb909fc288812790c7c9729a393526f213863c7dba2b3663456d03f4bc02ae4748ef1249a41c1066dd314972462cd67974691a8d39c3f9084a4b2c9e71efc1c6246428da1863b2007dc644e6b3a696fe1775f4904707a72502449a5e137804f5828599f08f5d01c60ef2afbe93535b6ab51582a4647554e1f8072bf726863015fd8313ab18f599ae1e67a4e2159dcd06cdb542101abefc8538395ae755caf121438c3ff80afb509b443557e143b57ee0246e18887c9397be1f27d7df78d9d72334042b3af942b053f36992fec96fabe1285082b6c7fec9fe519897779eb4b5bf42160dc78b501ffcfbd064f1ccfb0b415a77db6416dda3f7d589d470edf19242d79e8d5381e60a69f0fa5c8626c690a3f5cf26775319bf4f70117704eb54c9c67f003f0b575c406a10af05758d287ce6ea18041b3c84823c1a1a53d0bb433fa3bc619462ea3550291a084cfab53c65b92e98a59a7b32ad051d0d060162ba8802f54aeeca9db86237724fe7241c353b32e0ae85c546e3d05dfa346831c489b4359cf092d479b50236530b300b1c463668c2ec1314a22261349ba61022ccca3b9e3136018ddcbf95d64b55d0259e62a374469e515c22d1d2b391995297d86772753e0819638e3df1603f11f7ea77074fcb2a4c282f8971db506ec889a138f1baf9a6c03dc76a60b21527a2d301792a4c212039126c994de7c3e3cc3efe9d112d9832b69da19e313268c956fb432603debc795a08cfccb54c52946b9c16077d0b9c1a933bbe71064236381e0ffcd615418129b73bb48fba1aa647d634044a8ef17f3bc92b677ec478a9389e438ca9eec38c2ddd97f1dd4cc27582692468710da023e1f8e095aa13424b581b3b9b20a32274593a2ac79cbbd77707fa2e188a404fe40c50cc4372aa7d642ae5febacc5b9e579a6c9ff518367d110eb216ed94a433cc3a5fcb1670a6985ea6176821e00583680f03bab1f8ecda7a67fedd9ab882bf51f6c626ae9329204a766f03ca78ee1dd9b93ab9defeb3538579cc6788ae26642fc34aad4d08c3b08e35e36c12b08f3ee70f01d6dad04f00c5e72456ae7e4a3c82523f743fef84565fec7a96160603ebdfb35106cb7d6495e07f1fc78e7479184cb3b448e83dab2f14c341bb4ebb4ae95d1679d449e65b670d6ba8ab2fa40511a9960f0c666b2d6c9bf5b664a62f437287852a78899e87eee08b54c0373d2e55a141d4932fab53370c745d4079873057a255c8fb7b07ea4974b9bcf1e0113f824696fd10bad4830a20d0d78afc08bc0e1572a1a182e5715b914516352c68a65cfb2c5a8c73d79a595d067ace9730a699ee021aebd9528a3b1078dc0a21275874bf016496a853f041db787e957dff2962ed9dd0ca97969322b5ec84f5e31fefa85930003eebb924b8991d976f853d55b41caeadf46d2e90b9c82727e0408a99ff93a888222772fe5a031d0b8fdefc84d1bd5091fea24afe36899b4ba47c937044a0c139e0428dd2c450d46ffc1a2429b999034d94e895e9c9adde801c4fdf88bf6dd00e0004a55c4a660baef97df792a931e0e3aea4aa2283e797b77512a2ddedcba546ba5d1fe78c1335fb7a94bc2c3c3df491cc5f7a4be6c63132831f3e6e180093a3df2f0b5af2b50bb308ea1da134c7e440c4d249c1429bbfec6aba17c0e2dfe09d68f214f61ea2d1e0c3c6d1354f7c45f4c58a4014610147c4dfc242df58cd46db4756f65529f4123d3ac0f59fb7d3e6e77364c8cb69cf44b585fe6e39b3193f5bf917021cf6c5bc55b3396e3af7fbf2c09453938337ad92cde040761405c4719244c548a8d481acddc6833aa7e45d807d1eb8e10a42b6ca108bccc02206b9bc4ff5ae2f901090f3e983d231800087d067a13fccd5963e557860bc20d6c42db7bdfcd6c99b889d970da4767ec30e80670c357a97d3ebe9dba7a0fe71a6d3d7a107eb80b7d967b690482b6d7b35fb9f49b7d7ee2162bee12b89f3b606e5e48e60980e6483eadde11a8457648150944cc929097625c99a7ccb229def93c87fd5dbd7ac5120153c20747912a0720200079df9ccd5c7d72e50685bd2573fbb2650cd95c8f82737f74ab31e55ae722b95e3a053938c37b23e3de90779ac83ae38bbd586b7e2cfa55541000d73974501a2b68625eba7e8fd4f93649ad31d807715dc0b422babdacd71a62210a47332cc52d9abffb9e865cd6b0a1e3aabc2c9bcfadf47995edab1011e73e7c03b5f46102d5b5d431e43520039f9cb60ce43bc5bae242f5ddc877c42289289ed4efb10fbf5b937895d1d45ffc53e763d3f0e67a7131070361f928a75072fac224fdbecfd5b36570d066d934472517cb69978f1cbf5a9c98699a4430f1c882d00b9a4dd8d3b5cef4693d03201804b06b3fddb583e4e213e9f5416dda43bf83ca5da528087c4b8d077f03486d2334aa881fb32486f3f53321e9d29d21eb192c8735586cce3244e123878d5e1ea49b8d303ebc7aae604d157d03e20a35a1c3845cbff84d4cf5b6d6aac09d5c668cd576f0298002bc0838b5c864ae61d0a122abeff4de5e15fc95c9b321cdbd181e47972b3bc5db04cb78a8ea1fc3c5d043ce70644caefaab56a0e7795337c6c4863949630daa736349d9c3e90d70b2cea487ca961faf7eac6364cd0a17b27c5710c8fcb035f93189b84a1ef9355feac31bd938c54133c1eac670183b7dad43c28e84c8bf2fdfbd108ea4d104b7509fb199d4a583d1d92e0160173e2acd64f20e632b55cdeca1d7cb7e51a699939b7f54771f7415e233cb06bb19ffc489bb9c1fa069499e82eea952274253b117ab809cc890d2c54c600539bcdcbd3831481c9aeda21ea9098ed6e7b123556a1f33ff14d99dee2a5438545fe5c2f47269c1947e93ba50c537fb5a9a2c983bbdcea72baea71b9b5c9ab1d4fb79f64318c27dc99643e8fdaf7622c6c5fc5f7d11c028a0e55ea6348907773f302295be3dd17ec805a55b83b5c41ff0d98a1b1cc3230dffa0ef646921159a004ce61ae90731ba63d3c35038e57f921519750a3116abac109383603fa55e703310330ce1587956c87110259815668d6fde43de20b69d206cc6ef83f6ca24207a241ed45dffcc9db29576bcd8fa9106a7cb65de18bb075bb619f09f3e89176154822ef0f8a09410181d2939c6ba6287b328e099e89ab4b691108e4c94d9f725eb4ff967e4f2535934410683c302f6c52ee2690d39a780b031498c29d7483c4e5c1f041d5262bf48d274edd298f5055ece4740c6bdc0892a7e3c24e6f4916639623720cbb4c13d5e00e4d968ca74bfbb7dbd0ac4b0dddecf825eae3198a4b930eba619903bcc49e923f0ff474ff4f95257047f882f8f72be616a91be7fc9a7371a44e46c540974642d0279ee9ab720c0ad6a5553772c0c9285b82d2690848a3e4780e21f053b849fb053f4896289259cbeb9bd5388d2654344ddeb306fda78d57f27dcdff9970ed43ef37c9b27fe477ae4cd2daf85a5c7ad950451bf64a94949c69575a9fef6bdc3d2f63ba4141a9d648a1f90a39051df8635039da0c75813c7cf56194c9d9c38a7cd195522594e8c4522480f58b26101b0869f63f165395f864793ffa47ac64f69af0dbe8a393cd574a245a59893edf576c76f291d7697aa4c86ff374aa4df4264df970e235694424ab96c74b7a0e7abd826d446cb38261eea84921cc80bdbf067cb6b1eb4db0f7ee6cd4ea7da5b9e134a6f00c36a85689666249e4536498a2080f978f7140cf2c2cf63206691f86c3d4c0996ef624a8f04432704990bd37255c66fc658199b64631572104b2def3961f41ac404b601dfd6778fedec471c6071ac983f2a0d28f076d00c3154a3a268fe3d3235f9c0f8bd157d1b3100b1af8a306c00b5f346d0e6956b82b986d436d85e6bc7cb260e7c6b3b5a7005b19f462c56d8636a4559e1b3383b431fc44a60c969adb191f2f8deac1bfd111caab23597ff997b312f1f8f1af43a2b3c84a979b9512646a9c0911c5b34812e2c741716851973fbbfeb0b6090cdf23c962d9d9d11eaf6c6735af134516d0c8a4672234a06b4df087cc654f5656921f5c13822a9e50a5a88c0f81066aba687b3b9d89884b6f5638c7165a6b0044b12ba6e40dd1992f15bab6998845a92e8b533d2598c2b20848daf145aeb271cb2bbf169afc82473ce45c052c215f574a1cfea11ed4c78622049c809a9bb69978b4e11bad4853a87a4d2b90bdf0e74be4f80e0368327348c17189fdebe0b4f4d25621d4f013dc249801a554350816cb4503260f911b3eed8cd8ccf07b60395a21fa6d5ea18968014b5c5084be60bfb6731278979e620f207a36645442c3de1529ae935010a557d2127e511baf47262e4401b7efebdec37450e2223a74bef02f6b2fa0df8dbac54f7b9d2846f02b7c1fa938e90c4b2bf89f752bdc10378730a5dbf5ab8a150ce1d1457297eddcadccc7946c855ef0338a57c1869c3d6712057acf2a8889caa184057bb4229c2996ea9a1251394cd9c57b1bb3cbe7dd08f8f1459882fa71b379d1fdc2027ca03644699f58e73eb8e91de93798ddaaf9cc76a59eded2d254a4a593b6c14f7a2adffc5acce7fb3a904ef2b1bd9e47bddeef77268e7cdc5a022847f01ed4f704f1663daef56c187f20c2036bb4891cd815a7b809885db4f9082abd272832becfb5a72bd3edece006e1d644c54dff58893ac02f36f6b28ece2754df6e7027ec52af77ec62f4e3967be8f8f477486e7faeb8e07d09bcae4e28ce13903534e94372a7c942d20bc2e6a52f4d9216987a5742aec6741157d310877219c75dfd125da8d9ba65f8b8181bd29affcc5ab37ac12f12cedb90d3007047be2e285e8c84691e1699b566a414265611d21d48cc73739ca8a7a5664b94d8cc8d12078468ab237cc033a3d098bb72bb89e27a3d5146ceb0c9500988414d207ac3f193311c57f52a8053ab1441ecd33623df3c44d358ff7acbf9c1919650efc75aae3bb96c208474fe33be7d31002dafc07642c024094912e3f0afbcade2e44cb14ea1d158f2f89b223f2035b19e717e1fa225aaff145fa67cc5ff3a9d5c4b5552b1c6c05f121390031e88e24b28c097445aec28ec1675211d0d719d59f6c5845d105773860dba6a234b5c91f5350f9130f94719f14582b58bba8f7212459cc3b112bc03dff51a46a837ef42c92a2d79842030f9aac12c7e5822b52141ac56abbf627931356ef9c723ac88daac2ddc1e54c5eb8170a2adda657cfc2ebce2dea68f87fc67dca474082c59be646111aa372145308b217853add681f18d73d95966dc894b9da66632816215bd89bea08ff55cdfefba46780bed5c652644551a2193a4456ba54cac648ae2bfbb697b7705965f851f125646e072bb92ea3e5952bccfe04bd7b0d3dfd6a8867e6540e77f8757a20c330020e355bfe90d64a3544cdb15112c8913705c553eeb015bf330b1d59e51d31a933c9a68e82142f7bd11b0cfedbed6823452c43a712389743ce547f37685e5a3e7c9aae28b70cd1bb02c7de98fe4e6269c155b1084827aa840731fb43411b5f7eb683b57ab0d1f6252fb6d0cc68bd5d3217052df43a774b898e44de0ee8f6c0fe19130a705f34632b1127da2147ba5aa0e71603bc7f11c71b357c7657d7efde97a3df0811d8e58d9d0b96fe9b55edb37113646877973f9300ebcff40a69b55f66fed07372469b3c3d547b12236b8fc3d9fc844054eb59d5c8189fd11b3698fa6c2b694f4c831303c20023b71066bb75cb7d4ecb2f75b59a353834997d2b779738a8733f24da26687adbc0b77f381887436f067fb60403c40d3af0da0587d08998f03a6e4f3e2802571f3192dcbabab6805dbee423f46969637b719f11aa924dc099e3f20e43a60c1b1a7b499027f0daa6d55660422967a5477791bc2ba3d47aa554ec25579e684cfc2d75a64c2bb49e1ffcb1c816f85cec552a9a88c485670df65191c176c56e45bb42ed3022b939785328c7dc2ab772cef7909bed1867a4392da6b1da10f22c719e5917d4e67782b417083d2e58c0566316b01ea397e4ec5ba75cfdb44f4bb0689c3c6f59f750b2ad5d1a2691f9ed28903874c8a61fc7524e57f28892020686c1362ad4fa93e624e8c43466a79366c58e2d108785b2c7e8c3ad8c5273fbd76f56acca16ac3285018e3cc6967cc18c5cc9f4c0d81fcd4f3ac41ac617e187dd19c6e3b787d710768e6a0a77f24a540b589f192060571de0d1a8fb3cd0c77b2fe8d73602ac5b57a61715251a07b5a5aac6b14d8c0b274123bb6025246f30754a06917e5372a51728c98964f3367d42f3671deb5138c4c1696d45e1e9e93dbeab8b5ab1a103cac35a0fd593f4170ee810943640d874dada603cec1c0dda35aeada5726c882a54ce78cd46a0860d19f78f979bd6dbd6223bf04b980b21104a0d761f2b74d99b753a6d73edfb9ad5faae64662eac8b5d632a4f724926862e86f16f859a681bebd8d49701db686450590584909d61592aec51c61a33cb477095d903c266c8f70615ab1565d1d8fc1aa0549555bea3d0606078c6dd2d60a9ca50ac8cd440bad35112199c378e594e4347cd1d57ef134d634d059123f9e6dd33e20da572cf7bb94b7a29adc09505bdd75fb55ab51c4765259fb6f47274c6c994a7e6e9ebd7627602feb35ba5fa637e746fdeac2ff048fd73531552cbba8cbc6ff7ac4a9ba0ff23a0a80377590be87821f3d2a0aad6b37152a036360c8b108e2ea80b359529ede7b198f8fc076af8c3a40216056e3f35dd3789061e1d5ab915f189f12daf4522b9cf94653cde6c1e62fc3d05ffe53c5f3d80ee59a20052452fd37ecdb29a0b91e9dc761477c865e4eade21fb47b0ebe205a225d23c7c55738641bea8dd73e3d1435edd0e52ef8970aac3c4cfa59878b819c132aa853f597349d67c4550dd3b5466c4fe26611da7162993cf4c6ffd88a7ea4eaf376a33a7621886acb4d1f84771362136766ee55ad27fcd464d90396df5e9da046e837e8b7497ce558dbc03f43cf27e17a9a3cf322f977179ac6dc972eaf1709ccf87d4c5d29730497aa41d7c063986d8fc9a8055489d75fc354b9580c74ab3ddcfea0fc097f24ccbedc6122bf53c8cb52c726de3d9ecfad4d0564c9106803fa955b092d720e224bb074137e211357e7d2aed90fb5b2fe417d450c174f3e0a02724ab69a0675fae9e6ad31e8fc75f171cdbe7b0b590f21913a8bc8e3485134a903cefd02655758dbf7d3a463eef11a6a5ea9c5e6cd5c8da27ae91c1dcba7422d5b27944e127f8aa601b5559252b54888c76a96d267dfa41b15f876c2aa4ecae028623273fc9c929e4fe21c797e00611177fe584b6dce86407241b8c89ebf29221c720c3fa7bece08a1d4beaf4401cad1a9fe7f0b3567f8b0156a47ce6601362ab49029c9e0b86198d371e4e37a7cf0fa1d70e70b76ec5cb8c140227c5f48ee9d024840fe2e62cb35581a4542b391762546fe898729f43cc6074778202a3bc56e087da89b68ae437cc3762f8cedc6c7461137c48c7928ab7ea723bd8fdf900ccad6d0a6e251679c370909e674da4137f537556df0f99ce88573ffc2ad4bb85e2b781537b35b0436411595c32b1061a3c757a8a06d7035dedc37b0cf5f982d0a39c6ff8bfbda7a80c7e6fe65052d9cd8923d6af2b14d0fee424648cabada3f40d18813bda231084086db59ece8f39e9bcd29a056ef806a23058bc95ad8b0b94bacca777faced4572e93bffbde90b6b2024e24eda211cc488a6e81eb689756f43ad5e17f2e3917b6b8bc17993017e56f45f309355770d39774de7527d008f679d5c25fece25de51f985d221975a4f13ee6da3ef5701316bf9647d6567a4104e5a54648562560c643aacf4a115a1fab2a042018c3fef4ef2e6b5a4f4a02b7d4307cf2f4ab94e6fb7a719f76cdb71b748f60d80c2d2965087bcc273ec0baab38ef1cb2773aaf6bba2b498643d23fcfcb4efc554540357eca113d438188f83087957f2106b304f32f7c0b560a95714449589a6f3bb7580c971468f573b3193ff3dc28cd9d08885c878d32410cf0839430edb226018de50266d1f90e68b4306852e422a71431a3f15c88bb049a991cc2e19cfa0e8cc2e4c0471349fadbda1dca02f0b50c58512168a4fd1f643a0b1483c73d562de215f70502e9d14795a2e4360d3567e57f9b867c85f23ffb281de58c9d64e4312a97b8c32aa526589d1f5fecab4f043f0fa9236876d3c4d9485e55a2452ffa45aa740fbcd26eee8d96e7c4afe93ba63a2690c47b472c9cc64d0e3032c34bf6cf0ff1f134cd0c632938737ca4039f221a7afa02c7fb09c81a2f733621221c177da94d684f04c1ccb5256f653f88e79360ffaf9b53550951981558db3968d509ab51b29318d94b45dbd1131d3804e50dcb989532343616ce1adb0f8fe89958442b90201e512b07649383b94495641bf3b0fa683f4d9bc88db7ed5ce3e5656f130287b0a76689f81d934428a64541acb70982011f5a625d7b2d37b45c8933748c905aed057258599733db2403623c3fd9b5d9c5ac7c3f47136623e89ea0ad1867608ec8e338e99d39ea076e3338759899c0c811487e1c02bf09a03199dda2a7867aa815357fc661cf4b1b97a7cac0dcb0a36e803b185bba503af378eaf28d552f0b3d24902093b4492f12a061973c68a787727c577be1fc86ed9f694a00a756e42c3ab88403be540ac143a6775c88a150ff1baa359dffe08fd56acc90b82637b8ef40ce2ffc45d9df8fd6ee18a11d3a3f96f1abd3c954b3281a810f293001c795202de70c6d79815b0aeb1d039ce4f6ba2e799805557bf73c5ab4de20799594c16a7d80966a7754e80e9ff73ae3d1c49f5c78c239e8dbd9a7430911cf438e1509bbdb7be4b06933053c675349f3c211b3fbf34355f72d060afb7b2ec047fe92f43da40893c7ebe0783b9e9e1c08a8d211aaa81791d5d28f0b2f5a1bea60667c5d80eca9594332c0b7b32cacb2bad6b0c9a9496c8166d7e31d9fc93b24b424282b1fdb9affcb18bd0b56e17b1f5ea63361bd15801843d77505629b806fad48fd448daecdd770006dcaacd6557c22aa922c2dafdd09d1cdc785c1233586ed2f720833913c906805cf2e08108f5372d08d9fa96d8d964e3220b9ee3a5a073409c615bf76a25a045a5035595c25294aeb6ce663f6a08f2bc6c401197b016acfec0d1029a07e1959b5bbb70609c4383887cd31fa4dabbd52180ad2d9445de954d1c9168e89f4209aec764d3db28278c8f0cc2d3934668016f5c9243151f4caf01192abe549b7e5b477be94ac45005a702878479c4bebfd3e09c440977efa22fcabd8be58f87bfd92fe55bdba7c3f8d272e240edb93f3b4fd6f6dab544d6b5690abbc04bc8e6ed7ed445efbbe033beed1fd85af807d790983194390054dde3789759febbd35dc6dd35755001d211d531a706b20bb5cf28344dad60955a195400c01a0300afd2bda32d8a8a3e5c86392fc16c6162ea9aa1990d12470c4b142576f6aebdcd9d5928fd4b674829cb70efef4b348b329728bb17315df6dedf8dc7ce89264aa6250233e418b0da0fbbd2cde00afbec4f0df271b43f52f38337374b3f7372e8d939ece05130341070e2c56f44d393d4d0baa4e06a87dd65dfb92f9eb247c064f96d3c8b379488d080857a8a511bc129a44bbcca2212abb15152b57ee99c1d101ec9eabf470af55cc442b688c0f5d13ecc66b5194e5d298659014d7c0d78df10e33c2d9eb7409fd7cd26426b7b6c9f7f48cf92e24fc04334b7ab19ee5afe89d5ff135703cd5ab44ee13cf04efc4af103e4731d2bb4d40304acf70091b9c5b36d1718a9ee22daf1485eb41a2fc5427bd66a0fb6393f65bd7ff1c4d132a689b8bcf5c46a73e231be31e83025e7aa210dfdaf621f379208a9bf61c2ec3ec0d5412f00ad2cbe3e3e22607350a07fe312ca8137c275338f08b80489a00af70000e4e20b5c3577883b483dc7ea6c2ad7c175c73083ba09c4caa2868086dc5d8a42e09e334c7e3b8fffce78d3ed15ad255c6d2f3d6d075885cf14a5a42e006221fb7803e837e1e58d73838f5fcb0a05413719b3e1812405425f4a229d2d0e23544478aad0b396933ec0a52d04a5f69c11f3f986c9bf6612002f3892d65c19557593734323bc47567d20bf2e82758bd4f33152f24a526e2cb80d5cce3ee0091dbc69ad132aa12250ed71d1772d6aa9ed018fd265da15c2959f5395aa1d497f7af032b1b94f2ab8aa594a483472318e8322924d71ca59761552c8cc33035f7ea982693c68105c4058410654d468c5d0781556ae52dac4287a97ecc65caeadabdaed88d57a3fced9f55ff1273b3857c86d60e1b5b4e37e231b7d1d418abcd43006261765c9bf8db7ed01444c74f5b4e2b724ec691d2b3fb0d300abc4c9dca52499bf3456a99254998d076eb2971e93995f66eeb7841b55c9a2170c8cc519d65bcd6793bfd8d9d0ac4f44ac12384b2dbddf52af420ea7a3c15894c0e78013ae88a294cc730e5409899a9b9d032d736a231986babe6c1b9a761657a13dedf8712adddb077c5f07943abd956ccc64f1d064e95adb3e3d1d1defb3441b1e7eac70fea2ec32aae950a58af0a88e42402d44def6e9853b70a98a396f22406518f7005f758f365a64b50afc3e84003e4e3543fe271afef751c808ffb91a61be89448d0d42ab87173151a19bf9634b65e5223c933e81e6bb8cf8f5f7f8dead0c7d20c9c751780e16916f4dfc7a8bbc5b52422645f6cdc6c2e642001d7ae2709206b51523434794ab02e565279e56745e2df6b4db92607f072b7f039d9fcf06f3b963b56cf6cb5dba1192584be65c81198d1482d0bd9670983788ff5a8aee86835d2dc739597551709d00f67ef7860a40a14280b4bb57a951fa6d9554b5fc13da93cbfb59210da6401f302762275020298f7386ffac75bdac09b89fdfcd26a9a25e2dc41294b9ded433bda66e64ce833300e2a2f73df1f86904ac32920e19ab6a69ecbc1841ecc4dc142fbef627c66835b59ef9aa47c0c5f9b5f9c89ad7a68ada3b452516293f4bf07ed978e089d5b9a92ba926505a63a5a06f59429334703681cee89ac8b76dba508150b4d8cd08e398e6decf4d6843e023058050b29fa6aa4f43e1495f0905ec10b48740f827ad871d5c780f77292c336dd2816c04231beecdcb12aab8306d678e87357e5957439ce1c5a91624a59d74dd1dbfa208d7a3a2d6ef27d35d4a76229f3d8a9f7041952eb6f4c4bd73d09121d6e14680cce9954e023af84907c6b5302acd1c13e0104a7ee6a06d5c01891e36ec696644ff2c14e340e5d4cbd98d0b6d11430eda081a43a531c2d1f23dc71f5647f0cb3bd0235771bd9e2c855b51e053adb6c62396144f6ee6f4e4d830174046ca2476c576b735591e2546743ef3228efea15cdb66cd320357d2931dd45aac2927403cf575537640c695411b8b5df8729782f57afbc92b241bb1eb864c9f44138a1f3a950bfe58af5430a1160d2767a4d2d85aa7ebd5c695e17a53aa5fbf06bdadd185885bd4307c62b822105395331d5ac029891c138c3cef9dbfed6d91f2966750b45212f506dad40233099db918ede9d7b7588f73d5fa0bf5cc8b22800e7c6c63623e3ac97da6cd7bc3c3aaa7f4a93affbee681ad460c1a023aa7222554a403a5c5cd2819d838281f457f17a28d4a0b0ad6d9b80ace1ec6d7f6534c41ddd23204eef7d285e289801872547bf0d7d92aaeb142589b69f1f89d77376ae8858cdc22d85be1d2f7a2275de32ed1187357b0bf92260843c8132b08955175f91d07be972ba9c2b4bdaed1d749510fc1ad050126e421d6be27cc4ac36b509a3493ebc48381340dfa3e2d1cf7cf97ae6846a6978c70e2d0919ab5eed8a499e71219cb57ec0e86d6e5934bd945bce814a9505b45a9d437fcecc9f1db4661a5fec4978842be02852bf68b609093b98d15ce337a1f595f7c1ec69e02f5168a7fdd0a44f94d80fb73d19a276303945bf715b2856f6371124cf2757494eacc630ce8358cb5563e6cda2408825447ba12c91e809b2233142e536c3bcef213e5efee3dd5bc171bf74c420c82087f938cadc1102f1bbc6b1e34fa11ef0d1da6413df12f3cf0eb7693521dd1ba6704740339e187d41e51194aefd60b3bc68141c2088b75a2e1e6d16bd590d70868f52a100e37fcc3484c17316ff6f9a3ccbf1e5744346e9e82c110b6bc2c27617d0397b82e61ef7f9e51ea46d94724eecfa2f99d835f92eac1dca1da2e94ca64b1f149c94bf6b411f6a3ed9502933c52968983c39bcd4b20a10703359c5a485183b13a40fef552bffb11ca34ce1036025deda3ac5d1970dc324446efa122222a5653ba8dd26f83f8bb64b1db3860e9d6477da361c5b53a9c0cb4bd0d85368089bfad05414453ab66468d7a964ff2b4397da9b4af7a06c862be39442015b9b2212015b5593fb0bf139fbe326965041b123643f166e0a2ef7b326b981c786cd5d9cb05a6f8b1dffa7af23ef93aba311367e88fb18a2be5fae2a68e127e905a1ab7936cac1560ef592293d44dc406eb0289538dde23e7d30b53a2f1d87fb9c07021134830019032ebc6289c132292ee5d6351f4aa5ee9807f03ed951136442813531ff088f77e879873ff0d8479e091d68c9952a37fa50fe7aabd5b9339bf3f4e9c290d1812c302a5c42971ac585bb12f649c57949491afb71a292917b2894f5e1401f8d3b53f218691300b79df50878edb8b612b3577081e60a5c0ea50e27d1fa878cab00553b832161152f6c821bee2bf0e0a54b1c6d741b6b552580367e0f46270662354314326effa3b1ee843d4d332ab69cc3b64feaa2c143653f1fa756b9eb9a2d4cee6264571c974b081b30df36ab2b70648eadead526bb7b28ceac9acc676aba3dc7c417a32d1e353f599e0a23a280caf65521ccf02328ad6e46f5dab4b8d731a9e19f617d23ce57ab2209093e4cf3f08cc703a914af05a983d4717163181b55455884870d1412f338fa539178299f5b8880e010f4f90fd1f7abbf80e26420769e6a21bf47d3f8241b7bee59ecdbc161cfe971f349f0fb14e35ec49b0498a2939cc61ef3bb09c0bf06ecb1aafdfd932a5ea683fc00accb9c47d1cfbd5917d2e159bab20e322f86d7f07c125905543070d15f49591ae5ed3598ed1d886ee2a0aacd9d0b7a5d5eec15f3fcdef2172aef4cbbce92991e9a47090ba669e60ccf6d92fbe9dcd52f5b9907f227ff47b5d508fe426fbff2282a0a08653d78c0777f024d33ac378d8a8bd7ee916b9e1b2f69669813cdbc7db56b3a5c14002944909d935e99aace5ff2be3b75a010434c01867e39e77c4850970e4acb4bc65523bddeee9677d9679410e5859d5010b04854eb937e4d3e16708b3d841526781aa15cc7bca4290da965de8ab830da1a7ef6d9fa496e4e05378572d971763392f5b96eed26513bbabd603f1477c08515959b79f5cece5882804728e9d151c78191e17dfd454e985d098a9e5c5d8ccf4822bf1862c87195b43286c6da5a0f862746328bd5fbd8b4ca9ae5bb3a83416b7bb7e3fd0e9ab09fab7a1031bc2bab45035b99079bf17bbeaeb5b3cb6e6e3e356b97ab806f89b27f8c79b6ed9abdfa286e0d7e0c45923ee7efb194cc8c89df13d418250b0c6e053539469eb9d37a5380ae3fed3c63d25fa46f975dbb056f8db42f3450de2eb29a64fee505430003ef21c3d191c31075f489e82b06563761d6725750c83bdb22fd3c14dcece41bdf802511b8bae65115dcacc06566fc982b5bc3f53effeb3b73ad737730499eb8c701ef538f723428a5bcf4d7f6fd2b9482f87bfb1ac555f81531141f2c8071c5f8f03d907755ab770348ce681d050e898fc2347324304c3f2f645a9700dcde17f3c8de97020f777c1e96321cee94f3e0c6fb9a05fbdd6492ae38f3c58c822f4f706a33147670691b92c1e8f10530a9e22ea3f79343f66da033b1398a878b402b54870a4796e4e0672db0e23f972b878aa1504644c4db8fb12fa68020084d6b646b92eaf269ac2b04961f1a08313ff913448cf6529843be4eaca2e7c2e31278e6a232edeef8120f5556eb11b6bb2c35778fa4137c6dba5191e61bdae0b8633fcb480f97f5446729eb77685090e01ba80cd1340535a4494a1126b068e46ff6c0d35c516680734d1f5a16e7fac0501e9cb46cee35bdbb09962c0319a902f5da7580481b1bffe477f101ac8174d1d1d5d8a29707981f12a4d374fa25be1531880636f5da8334ec135531cf138192987800b3b070b2be442155f06ddd66b415e6575f59df341171430228aa5aba92467fbdb572dd84550fecc935034dac4c19ef43f95271f180a868391f79fdd5fb5e61ed5779253525dfb0fa8d801b7c8d462677aaa5d4e7ffb98c7253654056b84463fd0c4983a68d24965f659997f65c415087d47ba2f2580f5ea9fe892446cb2fcc29c1600065e649ba4478162d41423bd73104be9b3829143162bbc5bcf25cebf6da6ecef799eccd909246207d3d9a591f5a80c84d91836bda204e34b757255c98e8a16991d88ce677806bc36f3837e56a72012ba1e1979902e86ea57f8aebe1ab80903ef72e9c6e62dd92e2ef30a1db23aa43643cfe96a797ec597d50051ebbb48b244dc234377e869fadb65ef6b5ff3d56b0a65b1714c39abd2a94fee7c0f50cadaec35217e05ec09b63fbd6226b173e9481a7a8cfe3b84699d5d5c41b3aa92953a9763edb9c4b47dbafbd8f8337ed0bc969b4eaed64a03a6ee578df881a4f1e77b6754c0ed169b4e1296954f290244b0f526b9d42daa1926a1964a24ca30d554c1c687d5e944ae326b4fab2a77996fb886d8c7e767ea0444d5367370d8aac1ff6dd58b03989c5c2fbca1e5ae59d92115a3cdb471f3cff67716bc209aa5fcfc529c9a7c69e66afc9b4985bddc462927427539a5c0a6d1e5068c114b51a5088b3c1fa8260d813492f9636a722eac5309052a1de197d2efbf086c0921ce329e36509978a8b1b6cc1535730780acb8402bcac8981f03fab6ed5c25835d6a73406b2eca07e9249e5afd4fa7fc26d8c0fcd9d14e6d6b2f68cfdb48b6fb4aa089315399bcbe1c46dbbb4a7a6ab1fb10db59708cf7fd3b0a6d371b8933e236f1c2d4e26971760fa06968244a55c2dbb28768706b11fca3fc1990a19d4299d38cdc856355a7c99095bd50bac1282d566e2579813f3901abb422d0d9fa6c8d84684d216ccbe360b86b8d8bcb8d74d0c9414e77a9d4f486da69dfcd096e55b97e0c77666e6253c5feb67fdbc11ef7d4a4ec8c7e26f78c8c0fd9a19660a539f035d6c11dafc1753e08d2c98b686b71b227f0e80f31bfe27963670c1a0a5a0028aed3b56096a89b78767c0c25dece795db712a654c265f23fdb71cb65d68d472c0c4347ea034c2dc5951aaceaf8693277bb4cc9f98903ffcc70fe245110d06dae273f6be3b73979b956de1a15bdc3103877472dd2e0741494295b930ad87e14642b2c9dc9835d336c47e4d77efccb560b15d4cb344f6830279e5f4fdd9003bf5abaf1999bd1da706bed2d1b32bb3a194554058933a74e274a7e300e9e4515b45ae3d128713da879a5bead643bb34f7ca0f4d99e398fc3b2ca53428c60e40eef4c77f7937493f6f16c54b0346b5fbff5f3de34c96ee1b180b1ed2fa1e25073bad32b848e4c7bca7ecf54fa64ae34a7281a15659e5cb1a51d0ca95a6c8ff6463c489e4ac4f4ec9f301dd1577ec888db298854ba0f48a81385323c18437dad09cff6a7dc2be5c8ab23137323f7a3e83d77251a6162e2fbf8e2a55480e2c11747895189ee10e3404221c1adde13b7cf7527dfa9029ecfc33ca02011c10207dea3529277124dc3fe5baa4f2a059142366a4748920e36e57b031b039242a3c8f4ab7bed52593d8b5d4448e53226bf2c7f66b541d73ce21dbdb1c53cdc973fb7da20d027db1152b980a2c26f4bfb694e785511e69d9c4f3faed1fdc1dca61304fd487163065bc7f7287fc35f6cfb3e0713b22ca836a1c779ced26cae4a7ead90479182d96edb99e7a32edbdca40f60725f44333dcfa7fbac12fed3529a430375d2db7e843c6f0130bcc8e2e75e0f12fac412dea5cab0922c28bf8e9fb1c768645ca24414506c9481dd41ee1b6979919db44417204b28b3436cb906323cefbdd6ea263b2485c7f8eaa2f15d4be159cd4c062dc1a8fcfc7506b31ca7acc4f78aac7a855c6e19b8ceb90e50cdc2d2b0587400026850053c369c801af1ca0bbe1149cad2f17e900104ca8e1504b75753891f7c0d530102780879eb6f8315bf10552c87210dc6543de792139582402f35e4095921f00ab198b7fcb6f5bf78cff2ffdec47838f936ddbba4a2ce3a3766ecc42716357730cdfca0d9c1c3304689fbf3286eabacc26cbce97be986310eed1ec0e678b0646c189357dce36251efebffcad8037b07ac0d7794660013c62646b021bf2ece079875b862c6dce8ed18e405d6fd8d2936e265d0e0f4048372b83d7e9cc910169662daa3420d5e7c116727be710b5bf6bcd6937fff18d8e5b9735c2b17f451679e3479c5628b21fd807403995fb1781c216554f169797a7b6eb537dec5eb126a4ffa1ae805d5b6cc92fba2be5eab1db07283b0f2aff3afb2eaace43c4013452e29ecc7c028c2562d90c25a528d46a5e5cad9153e5597d5690b9fd385814cc2246b89cf12afdedfbf005ca9628dada376324440b5daedf532dac26a9cd948e0307e1a0d80e8a532bb4f79fce78014e2ef930fe69c3fc41e8cb376e1d5854bfd6bda0a02eb540d6329a71549dd4de355e9300ae90c2ed535d04f9b6566aeb8a7e9d04855588f817433109ba836c92f57b33567e6e05108449027f723178bde43b5369ba0c082bded4c91a546ed9122479666dc06ef2fb42d790e2d2a658012929770ef9277e3abf697f61a3b4c0ff2e6086d450170f22d30b4a1a138b81ca9e8a94a46f4c10c554e1985561467fab371f2b38a8ab4c61abd914033d2449666aeacdf746d8e65d11cb0b4bc355ea431b80aa4be8f403a346798edb0d3a55642c71d1a5332310ba65d78a6e71b714da91a2243159e20451712b2ed2c82a1040e54be4f501265f5d91b096b20be34e3a0165e58b27d4c49c251028e42e02d550d1e47e0896438115840d3fb7afac0adb5415a08bf5ed9d2b7c432a669c24dc44ec41c0ca0d7ecf0697c7fa38f2403aabf91f38e1d9098f4d81c629b2b732c58648dc29bdd460921003f03ddb2cc14ff0c10c6c7e5561c5ea3c6b0e3058fb7737f4b3ff2eecf136253d78a272f49f5f06d00955fc96a3131f42034d0f8c10902709597e21159c943fdbbbb0dcac1c3deb85261d53540da6a6bc03136442348177a3cd0cb255af03810da27cadd1cc31aa7d1c08a9eb2967cf7ab031c54064161f84f2443c4f7474262e61ac9642137a138c0636e1775f23265bfb99678fe0ab065a418c735ee591d8f3b9d046e5381ee8dd91338c18ddb1b8be7e3c37f34485e7ed098c90d4badf61c0c906e7135355711086b295ae4bacac2be3220a8372aa6ece0c31c2206089785231685edf324117c82aeced7545d96bd40c48a36633f0291162dd941f5041761b44d189cdcfe949504cf680749c51f5123ffb5505e7f9506653fe51d6985c7a19bbc3d5bcb364295015e3c93951f721791369657b681c4ab7686cb6046f66bdc6181d5621481fbc40f7ac89a6325c0737f3cf805359ad7e12c1d9d8f34db2e8e01d394d54b04265507fe741b7997e8ac5186f6d73b9af1cc486716e2048abe1abd2bb99ae4f694dcd289a76b5f472f7bb7b22aa45062ae472a6f2f4eb87dc8d91651b809a43a25e0b94b6106bbc9282b3a5984a057155ede727f3aba9d80e3dd2eb32c8057dec86f70193933a08e1a21ce550829008966c5a10a4a649206d0337ce10a79576ded2ba7d696e12597f8f6117669b244a918e1707778ffb76e28d3e39bfb4b38a385f50bd8d4f5c5d067810280dd46a04096a5b320aba889bd02445ddd73d8f6bb7fb6ad7489b4a695a097a3e2b3dde886d8ed88c9fde9d5bbabca54fbe17b647d84d4fd8ebf689a129a5958c8ad117742f88b2930e41c6accf40606ec668643301c656a433f6a49edf177899845691f5eb8bc0f1a32ef9e57f2bb43408ff5c88b4ef9ae70b0ded0b2752eb069c06a1625cd90ddadf661ae0388cb9620e01f13c3cde39d616b44b6728aab3be8d5438e14f5a37bcdea3c9d530e4bf7b2771b632320cd738d46ca7e46343a24a99b7e95725fd5dfa43514292e33f7a090cf4af2805f67878f7d9e886d8d8e964da5f0791c8a1e2a3c174c0cfeba72d9e569690cec2e8ad49bc865ae60c6b7dfc681e7a48980e68a23a21529012ada8bb5d0396eef3b9eabe735d0d20d22d23e62f303f67bb49ef31e5a111f5ed5eb656b9e58ef49c28a72fe3749732ffd4c0a8d422730104a83ad5c546bc5a61fc87c646891cd0668c8510fe7fab1f3e58dd2558ccc56f288de56171f9df07e948290d700a027ca0cd882f54a4d9d40f827bc58ca54d5bfa3f8e897a0d0b58e7a795f42ed2cffc3ed31bb8187457acb898cf16a0385cfa0bff9421763ce00a8c02805bf42f2bf943a3dd3a2b0430b8ea03cb989bcbe2273a81db7681b39c4b2406b436687717058eb60817fd936da22cffda24f5580e608109e318ac1d81d20a6040db1224832f27d117adcf5a9a2d2ec3be5dc93390007ab639d9f1881be6aa77fd4cd5c524e1fea31b5f823d00809f3dc70a35f4faf30976099bfc39cca15f72fd0413edf5a23e99e3a3cabcc6c5f984ebe539b740e6aeaa93d0490b34d31afdd91306f1cf9b134d44aa26fe937e88b274ea3c0ec5c85810a0339ab2155c0cd421fe6803957560ab041260b2e809cc103dcac3b53ae339586a2788c7156dbf606fb234b4820cb74d7cfbd50212d1f1f8dc59feb8a99e387643c3420636a07d2ccec4fcabf03fc4070e141e3dcc1b61dc496601787c3c34ae88da411c1aafe1e608a18960203596ea299c56c9eb686b9359d448abaae7901be1aa50b91ba67586e4a629c943865200f3e809dd1c9bf39e65f88c5d7a24b0e22b3b1098c514341066484aa0cd259c974f0d4d3a6a0e99073bc90938a064e3365fb5f76889b3995bec5381a65d9971d4159f4db92e3e2de24fe9b2d61ad8d399e2a64596ea9b88fee7f6b0301d80fecc5845800e4821bc0535f92d65e0d2876654ece167359ff1250b92d9219d9cd7433022d389baa80532f1a5e10b19d3775e977aaf650ed91f64607b60ca508626d3d519c3f6301dc064fb27e0d484f3135404dfb4b12337f16ca0ed73f861cfe903d7caec69363a1a4b0f3a5103bc2bbfae366f4b122cf794496eadcf2d9bf4eef67fb54b878fb08c530649cff2bb53aec2a236a5ce27e549508efc691ea488438dec140e44b59487ed597e77ddc9c0b0833dd78b12bfb13729be77879973a1dd132ec752acad90f19ced9645d52ba3a66995ad0b59b21f20f52e7e10f0304ea3480ec9e7783095d8ff052a10971cd1f58d6a54dc20f29268824fdbcfd85843e07571737ccbc2b230335510d08d5cbb51ee6f20176c34436cee97580eae852f2761392f1256293c57885a33ad5dce5c214c223fb8b79abfabce4d397ce3255cff4c3825f35797e4a460245b226c7df2d08ff0bc493592bd8fd62904e6798d3de7510c5917dd3906ad1a2cba452bbadd4653185b5ce24206e21442f74ce7880bf6c9069a0093aa9a37ca24729bc5d9b3960ca0288d4479a629a10da439925d4e0c91280a1278b3bf080a1fcb4aed62c39b1782ae60998bdb5f7522e41eec90dabb8945df06aa96cf090eb4928e6262804dec90f739607d89e5c345122e9f0543a9b9a048b23f4322d894aa15b79b2303c11b82f9314f09e78302241656ce8947cf4cc2d7746c1e784656ff42cfa9c2aea1839d5f7f700870e5dfa703a150474f39040b296ebe9ef3d6556f3dc4bec65dda2a40d07bc938ec433618157b43fb53525414c3c110f94eb22ddedd9812a454dbc7e7dc49cd67932195765a8f855b21b363e0164997e121498c93f50ba96f351b1e52537921fa8bb0fb89c22817f1a4d4162bd05bfe3cbdbee5613b622b52e4a33e0007cf3b0bb4a7891764ad5bc2ce07a30877432546c5ad555d38a676484851f2a7d1c97fb53642cfd41c4b7e9ebbc2b259901e78b7948650cfa706155cffbdaa1f47be83bb31d702fe249b12761e3503bfcd819003ce21e445a478efb69508ca448df24a1dd4a0f41b8722bd39627e04550551da5ad9a1d48604879784b863e9a674ac2474a4fe9d34a0765e16836334e3bd6e6faee86580b6c29a4a83753f75669f8bfdbe2777d0d6ac81409c3659a6f69d5c3d95fd3133f6b47d235396c7747716914f0d504a0743be837218eb5d85d5d65fc492a6db43aae802b027ed3011125d6e31bfd373077363b8c1ef80185706353884b149f83718bad27d50d52920ea627f58bd27fe5e2691a92cc4a126fc80edfeffdf91cb2812a3d9dc934d876f26ac9595652195c3a0bfb50cd319a2db5dd941c0cbeba7139c20151c3f43474f758df92af93c7ccf05cc7266e659b4544f4856ed29d790df98f5036a09170c228d17e305705bfbe90d72fdcc892c55b39e5ed08ddbcc0d8d30ef1646bd45988a737d87c317b0b4ee70b6eed5d21164935125cc1d99a11a001b13b1c250ae300d6449bb06b95884027cfdb608e9ff5aed3c68e770969c26c4848e9204b2b5593fa52f05f401af5b5acd47f8a698cfc90edcf27b5d86c19f7069b11a670c8e5b059a9db3cdacb891607c7377f1a31b7a0969da4facabef88f4402a477843a43822b81741a2bcf014193d03889c0bc3e53c1778d28f61ecf8348468ef8785ad560de1f87775997da5885009523e94fd6447bb3ae4fe9f109e314a9b2abd15b76d8ab7bc72335b724884e9128a78c613a1179ab07dcdb3c319d21ae7825ca5a702c27174e5269ae783f07bd2d4dd25e9b139b7f42599b8139a3c0768ba9c761d042dcc848410c9fd47d27264565fcf52049556b738332dd75c5e20fd102a516de4dafde32d0666f97106d226977c9150decee399bf9302a6464ccc1d77fe36a2a8dc055a70b6453fdc25cd3df44a2131e785874d0752ebae5f98b1092ea88d80088aa5b12e9051bf21b3778e87a59a85b1461689a13ca1230ded1368f70f9f5146f6a6be47ea51e7ee4d8d996649c8a43f0dec57bd5065157abcd2011384ea1090cd0ad2cce83cbcc70b4e0e98f9a52743520e9ca5ac3783ff54d7bc86649e0740908335cd55e2f52086f20f939f9ace87aaa0e5a8cdf80c115218a7bcd492595ec831ff2830eab944847cb1fed5680ebbd59073d58d342dac6a57f9a3f76eb882d126e41300cb4c562acb61382c5332890af1b56a77c1b2d07c13254445fe8299d61224762a378f1cc60a2362708319a48c12609505f958b9e7a22afb13682ae2c64cb1b5fcf58de0eaa1733b806bfc9a2f6efe979022a9e231f3c4cf966389948c43ef5e1cb8482307ea658588631769404c5638b5b59e279ac0f551e3758ac6fe34d2fda44bfed75e13f3dd764552687f54a32e37d6968082932d4948bc64ecd57086d73de389166f9d626a43d4677398e8cf2c946bb1c32991353753c85e19d61ea6d534b6e2a1e0e5437fc572efee2a798cd1336b20a2e6652784574cd3e135d6d20a20fc38caf7626277fba56ff4f6fc16ac4ea59598d1081d648a473f28a48080fd4d662e4d2513d8da7a728797756ca95f82bf7dba2e7ad4f26433f63e45bd9f0ec1af245f932239576fc9bb80ba0cf716bb03ee52ddf741724bfadccaf80661b7e6fcd93f5e1ec514ee16855291e3608b63c8dcb6a4a7c9a27ef5ddca79d38b3bc9875c722850af969f19c4dae613ff47a515b33a2a4b2e7a26f2d2b83de16f3a0f65535263580ad4075c6fe3913db5436b7e2750478efdf0462131e40420a83fe015eb8ae4e04953b356bdcc470c90382fbb5cdd95f55046caed6cc8e5fe95693acc46a891fa6be041c347b72737d24b9f0ca7244547439bb8e3e49168d860590cb6f231da979b6b6e64373fbed89424cdd3e27921aea811860f5ac3555716ab84b4d39ad11c89eb478517899634aa665aac108db018eb17af7122cfe99dcb035d9f6c382a4ca0baa11dd2239627b257a936984c410191207edbcdf25b29cdb544612d965f26c0526836044646f6a416d97cf45f11acc185d01eb15812f00eba6b4575e19f51eb22d0f7a0aa6d06fa4e636e0093350be9e72c61735048a81898a5ba902ef7ff10c97a1a157660c8cfae3a0a252f4f928775914e0498821b019325ff2701fdf54ca58d13bbf34294640b3486722bf9b00b49fbcb4af004d988b5d589584598c0e4ff5f4956dfc19e5b2dae8a00da49801f15acdf74f179425073871f6e51ddb833ecdc5f842ae1f4663e6a9c065105304bff0f686fccb810c92d0c95dd2118b3497aaebf10cb744ef081d87e35adc8c18f7ab7edc1f4d94e3d38edfa8faf0cc7f299fd7caa2e8bea5092bebaa18926f5a8ea8d2119e7d7fa6572f789f5a6503374ba37b099cceec1578f252141af846e6e5119e732392bfa4653b1388a51bd75e0bf4bce3f7ee19098e5b9d7b2b00f7a6376197c706e57814fd46e39f82c0ca0abbe75c9f13000b14fe3fbc03a53aae3e2011cd41ff5d322100437660aa44cd90db2e01bee95006f338e8565ce69949fba07570ffffa15167cdc7f11c97d1c03766b0d1ff8aa5a7e66e4f50e2efafe4b3be9ef64f1162707290e2da98208d28d996113cfc89fca944a45a02fb06cdcd002529551070dad56f0e5ba32edf356ec6881a277953ec368b60f882adc3a69e8a25c426e600ec8db9b5df3c45ae31006d21bf170111506106b12962b86776dea5946cdf54f986cf6be4d43e0e533ca15899666a67a1c6075039dd019687552971c335616d633e844b49b9530a35785afefcfb04644bf596ff4d9496c0d9615f4f43c1f5759fbbe7ddbf7d0abae6f6288d6021e2c0f8ea1117fff83d4f3d19120deacdd0a2afdc5fc3da86ca4aeb08c65fc4cf109d6c9390b623198be0f5a26c1f173fa16d108513dc5a7ac651e42c195b44c8cfba784ae690abb80dad7616684f005987f46c79a187f7d235923db88f4d415ed65e81410ce610525b38c68f751ab5af40d429cf3e8330083ae892d3eed1ed1aef3d99eaa946f5aa857095575080051bf1aa12b69c94b9ba20e67986eb2908843526516ce148c3d876fd858770bae6233bfd455c1080f86e6fa4daf435f338bce3e85a775511949771dfe996662b23511d47e93d5c141bb4e480939079d25c6d4dcd72fcbc781d3941f6a3bad705250d3d458b069dc6034360858717556334b59056690d27849984801710ddc647c20f09e6d419bebe7e24735bd47b9112edc2975a358a00ce3a139386d0dd4c685eae95d18bd6b445ac102962bf4d6549fcc395f703c253b738c06d6cae53f5efdb5b656fb9286c02f40516c5dec50ddc53f40e6df77d3f56d3f3983564cf36dd8c1691c186bbc459b3e0458421e87a1f5cd97b286eaaefa7381bff7a854f947955fd8ef89a79e44792c0a5ae5473c4b11ff3d50f6659045e6992123f9eb038d0a9415b3457ee13e2f9806b8438645bd7530a37c944d929c4d67e0550c364ea03c18980de55acf1eb5cc7ca268ecc273d0de55c7a082b0a156c892136c44790b68e94b171eb1933387068bc123f399222391f1ca94798e75a6da383d425a5c741986f289b721d02475fe9e9b7fdca428d8219ac353569792c93337fd0e2422f3b6498d861027a727f80b9b0d7a67cc339d0a7dc9a88a57e731670479376faf7cab6d405fa4c4734f08637826d00c33890305ce4aa1c524b87e328bb69dec1d00561da8b3aaeda69ba6ce283a55cbfdfe1c794686c4fc380217e6c354c8fe0578de0bb20e3e716cb19eff98327c810390a90cac7304c44811ad3b944d5071bc970882524957c5baefa74a71f2383aea6348631dc00e039e8f4e485fb00ec66212fb7270a018a53ef8fd038c974599d07272e3703adf8b9d9e2fadb0f1038ad0cf6a3df395e7b56c05e179c48cf637533bd148ccb292cbe7899ac9d6d7a4276532aa361ab5fa88941652a5c6dbc17b61d45971526f2355470470dd7f2cb542e2436752db4e24cac2532f2574721e4ce67b1849d46bd34ad74724344ddce35df658f8b61d0696c266ac5bcd7e50193abaa939cb73b271a0c6842c6e5ab6491ca761ec480c0ad3975bfc5a3ab9a2c8f0f64459071dcbb77281e3279b1925084834ada038a8c4103189dcbeb64af3a3dbd3fe3d55f4631824590502c12e622e9856d4108be32d481d7ce87dea053c770253dd599b9875b1730e1beaf3e05e1690384491af9a2294bba23e7f46cf35810b94259552cbbf9d942ca33e27c70f45b6f353ccd40702d9fa88163b0fa114af765f05b8963d5707913e9ad8ef0a88f2b13d748d96af38cf4bf4230e0a9e3adfaee7609f3a02d1e5081736a788d6413697a4a3e0c3901b242d9cc508f959ffdbb05f3ea88d50e6534fe69858358172fb689ebec20df44ecfa0ae2fc6e33b69b12707a7b7c19f25fd486d439f6b85989215257c0cfbd3bc250961504fe341100203b7767fedfb3bc1a8d77e6315898477725310cf55264578a9779d1bc4c9ff189238ab3cb2b15667be871b30066263bb564b9194e33093c26abf7ed7c5504e2886d5b123fe17e4eb6a50f1eccc44b00737dc56d703fd02d7e48d4f306d1ef996a86810f0e4cc16953902d4fd0fdb117e112c28e06312f0c97df0013f6d55d4a930c8ca9ca95609e648b28924b1af78b4f49544089b8e46365cd741bec1ebc8021c03667fc41283240e7371fdaa207ce174e85bc1aee33bc2f0122df44437499d11c3d1b5c20878dcca71434f97f12014f20396229b4e677ce3886f7ff5db8f97b13ced58a99b1ac6e64d412fe00f14573b26b1e139e6ff8cbe78f02f951f0afed4706b8edab358320e1b60789fd9c2c2dc2013fb79b9cb1bae63b7e7beda7acfe38086ea6adf2eb8805f6fa7675af834bb87e758e4e8fe4253f818edc0695050924d8fff86fc762ac20e9811fc3c0ce7409d9d37649043244f8ad4dc14415ed97e38f668de9e153a797cb5f5fc6dcf0ab2459ce942ee9cba86ae8445a409076e9e2588d1684f8b49c3aa389f9a08b48b6dbd16117b355c22f8ec9de6fc7fc886f201fd468da3382d46255435768f20ff3cdf452231494acf0efc45ceae985955401bef7dc7c4154eb4840b8acc8d2c6a7824e6e5183ce87410e488b2e7a6eb39e10caca7d227ddb6d5dbb74bc3b0ff40d861429f6c0e4c77350d271172b51582aa1afadebb6e46669a27c0b7765ca783bc66c7434bac3d1977a756579de20baa48748d18992cf7f697e2ee30e2f17db75839012d60c1edb936f369d9675ad3426cd6c975f63a8035953048fac2fb626aa5b3c3f22ca46938068381515610d009a5634a7e9eea318911364a4f4658aec3c6d8f0aa5348c275648b0eed0618c6e700cf77fa0c4f619e1ee7861ab548fe15888b99550222ef6d8e9033f179987000e4249dc16b3ae9d4206a48c99a56712e6008cc21c40d6af9fe4950872e5bb4c4994f468cc5d63977c78f46cb107283cbb49cd7093521cc2c691b725fefb86ca90c3ec6e5881bce9badbc42e3c1184fbf5495f8277628bcc5d441b891bcd73ee8306f27fffe89c4d3c99079d3123f8ad6c69880c6829d04dabddfb5677534b24fbccc86fbf62017bf98e3673b7661cf3d3145c7fab99e6735e9382d26e75c5409ee1e6ef05cfbac57f99ceb376cf71fdbd532a8133a8b4e71100049dde2e8d2d3cb91bb1cb58d0f9795ca5793f3c867e935bf71e09bb225cbc5d973b66aedd6bb84f484dee586fb8cece6dc758d598fea31d86983dd1e114e304156714399af08b931f75ae0658278a2e474d26f24b322d0b8c4b69ba9401081da223bf0a72960b0cd3196bb4735c3128aaba3e292877363e62827ab50a5315d6248b680c249f557728ec86d99060a89cdbd5f319a55058be605e1cae6791e51dbba3654b0d2476d53e5c971ca11aac6bba5163ea0fbc75fd4b5c6e4ff9425cb04f8af495d1cf9890a21a7f0d14de39b61545fb3d44ab8b58b7cc18daccf4c43ecff345a7e296fcbc8d77879ee29b7026c7841a1e50c331ab7016098d1c459281b60921580b8cf1163361703354789a14e3ae9613ac027a934e29bb850f7b0185fac6b6cb040d45757ee4fdf5815bffe20681b3a8d2078f9d154443a9d75b1cd673f00baca6d2643292c630d6b4ce484f33f9a6e2932a78566cb4a76ed3e1a604a1e19babb1190d6f6bf8a20e0ea9721e7e58271f0eae282597314c86d9179ad82bc0bad7ba80ce9d9df8447955ddf1c097726f50e7df9b45369ceeeac3996976d0d886310496a21db3038527e8c12c04e75b81cb6b7b08794002911500c38274d8268dd33c2dd4076cef7e4e70686f0b2261e7e138f5748209c427ac28b48f6eb9adc9717321040f99b16b3feb8b8e8b1065f6cd0068858b953818225f46b4ae9ae33e879d18ce1bb29d81d190f6ed96dae8506167f981fd9ff8d0e30a494901885b2109315d6229305867b167dd0583ce9f3b2b4fc85c4867e95c94860a54951ceebdca435289bdebd0a14f734bfcc11237edb049c2cbf800d18f6bb5002b966590e115db476a117380687e71b40ab4025410d96b0cf2a5e9b427cd7a942d19f8d55db1997fc5d5d04d7fd042822e2af4981b6a3ecefc541a17d2a28140163f65d723e72dc058bd9461762b4d209ab6c9f743f9f7a4bfcb87ac91133f967e217b6b823a1e256e4de85fc44cf809aa1617c6464ab91f58a65d9ea7dba5a6ad66e27b5b23ce1e34678e201ebb705d9db0ad685d6eaa18078082f6e9dbf1639cfa301e4fbe8838790527ad1eb6b3fc82b79acf49dc9e28b8b7c3961d7acede020bcd825f643792e57e7dae8e41fc6eada4330f20e4eaab5760ca6bc6252bae2a6ce376a850d1ba5614a7c15509e6d67f0859ec2e360605f218cf1add5763513b29379397600682130ab7f9cad8e1bb9aae474a2a319f71b3ad085f87ea7d37283e2d583634d15649d513d598de3da5b8c811b87228c56d0c12a12f361e56a6080efc1ea677ea650788a74eff06eaa7a7c67bca1f190e0eec3781db5375b2979dffeb235afe0e4573e275c8c371f6c28de8fc6b0ab6ad83e2fe6eab90a390c7b665847986dd893281897d7a17332cbf21e33e8fca0182e90540eb910f713c701fbada98350e391b9e206c6533aa17d933157c9460a02c0900bc96e5ffa36f3befb80ac055793f5da42d0983f646006459bab09975c182a033d19ec877038dded22d2967062ac8da75cb86a9891fda1ede0e33506c5f49c8976812e8ad35c48263e198e740f29a0be51d21d30169391a4b0050dcdec1ff138a88cd763aeb92e18f1e8dfa8b72dccff8fc5faf8eadb8edc02198edcef391e122da2621057bad5032e7a2313a15fa82908efd32cc9ca07b046b69ed2fa4c33daed2c63de8d080694e49d469a2df5576ecd8c7ef27426d8e98df48ea8d479dd9d7c4ed7015a842b1c491f4b04ef5b64a5fec87be778e00646782070c6fe503b67b22e3bcb11d1773603b29427d93afa47d87f187284833d13b37ac5c518fe645de2031fc214127f149a0714b30766e678b01cae0cbdb987ea50a40c74c62b9f46cbb10a586307efe3685618856e2fc88e987b1eac539c6a9d411392e9a0af80c8072562b1665337f32b75fb7fc969c000c093a1a501f3d7148245b96415faf1bed0e78af815c0a837f4cc038b18b0156eceeb302fe607a1ddfcfa8c61f9793cc90700cc5568ebb6dcb58b2f845c8976bcf886acf2c24323b6cd232c3e223117ea2a2334988342defbc0335beb4c489a7ec040ea46d8bfca42307e76deadb2cf3dfa09a19bdc231d460bd634659b2783dd409fd4346aa252073ff6aa6c8a471ad2848044786c99d220811c8795affab855c306f801a2ab07ca47d5afe0f6a93f252da542c4e410e3a1a4de2f00fae093d9c520f4d6117797ec3efb5c737951d08deb45296d4dc129a569c1986f0249168d1e85fd7ef07fec3667fc8a9b60e27db25ff78bb6af675dca7e4cb40726191a9aba1f16309eca7d6a9ecb8f04c32020fcbb0ffa35c5804b306fe87fae4a76609a47a5369e35589853098159e219184b5af109cfb448ba94c4202be12dcebf1c009e8baabb08534cc88be9d349c63e678a0456308c0f753f571dede6cb6fee8531d69c1fdaa9ac360b1661186b6f3bd5d9fe28b0098c9df014e0ddc7e801ac6523e386d9ce225aa72673ffc780b8e4630972b5ba71e6e370b67acb7c6804fe05f4349ce24c338f31d7ecb988afde50979d1401a7636a971f694faa3e2d746cf75410714503bc04719b95826b9acf0772f550abdd01bb4289adeff58e5c94d73de6390823e40082ee091df85e6b594d24c97c0b6c5bc99f2568d09117a7296ae48c347bb3c53ef5013aed9d7fe521de9308083586c71ddce5e5a42d2b0b619d256dfdf829fc1b3314d29fa794ebe9dfad27da8c4e43ad915ddff57c58ca737d7e90765e22d9de2936565f0140bef99b9201e31e7769bba31799accb21731f0ad0f0853dcb1a14d406d8ecc1b10f614a1ea4d1b01846e3f39c41524412447040fd802506f31f525298509206355a3d03830ea049a9350e9c1449804c35d26fa7088e30b3df47d39a0e9127a28626e80d9ea73d3016af9934a123a52707ee912678bfc58cffb65889765e74aca4a9115c59ab442c2b049840db6ea1b58d30711cc17f838be024172fa75a8e348da76a8099c3979ac6b1739800f4bcea61aa938306d5443ee26418f051bc19ca94a7d4cf15004b0a2d5c29e469400ed648c7daa70bea084a1841ef8653aadb77c99e8eb8b0caac94da7ccb3755fec928458ce314c601c98f90e0c487c65d249d91d2f5db092dff2e8f4a9efbb5764d55fa031c492248777b9cfc30b0924b318c2a0a62b3248205281c57fc44f33fb6eb8adbc4d149c95d8297228ab7062ba4143e07bc44a210ca871f931a789f77ae6b2ce073b003bf7eb0ea11ee06d8bae0792d40fc8984d242f146fe9257dcac267ec55ed00fc4720fd81a519dd8d08e52bedb4c6f84984b3d80aac25b25fe2275ce090c821ddfbc600ecd389a86f4165a467ed4eaa849d14cdb029b0f293e0cba4e929c106714cb417fba744ec21e7315a0fa4ff3d55a3f5af0b3cdbb5eda4adb8214e2ef572866caa8a29fbbe4d03dfec8eb647cf4830dc0e12a990f7da7cd0f2903002fc073ce18d99e7b0481b96eb88ce20e3f4aac6a76525e463d270babbd99f5f405a08283a8a686fef1749ff09272120bba7d837b24e19edd8c29d71115ce22bda8ac594c7c7a79c3fb0bf9775452e14e304841fe4609145948b04418bea365d1c48452816bd99faa529dad028ba9667760247978455901ed37957bbae709dd0841972dd39e5856c22a59d1ca63d29081c9a7a82d9b5f85bd17d4f95297caadf6383c9ea7bad8c02ee7035415333ff330c48732a1144ae14064e48d8961782fbabba6a4be8823d409ee9c0cdf6adbaebad2565d9bdfbb40b1b7ef2deee6e12f300d21ac45776dc13850f4aed8d7d4a5717bf5314165ce7651711b38997a0432ec2441d58a73256a10540e0efa80ba1d63fd6108b5b55d88fe426d6db2f55005b8623211e9c044849f95e359741249eb82e0e38e8da9b7579810e77ebc019155c3c15c7eaa5c0a879b608dedb59f0a2c95ee2aea128473061649de1140320c3eb4fe49c7988d8db9c1689873825ce9566e9bf624ead51a69ecb310d28237501b119be381b068ff15d1af47fd06df3ae36825c09541e7ac8749679dea44e2f7bc20ff8a986b177ba4f1881cd8c86976c6991a0a36c43fd89bb8fef16f90dacef06d63c8ebace597d00e6b49b21f3a1f2625de4fb6b0e0e5a216ef49f152f21ddbc8e608198b3c9e5bd0ed53f25208995e6faf1d3cd61f461e5d9730643fdd29dfdb55c469bc74c06bfd335616ea0a6697ea2062acaeb843a3ae2368dc84ce9e87023b4474d591ca3d542f9dffad71c706478d6d3f7d9d2ec4386df48f8b3e3d3c8a3e0c78cb4fc592691c10b5446ea4ada16371cb30a59877c18e08b51d7a50e5b9eff112d5698d410480f5e7b3aec19f7cff2958ad531a86d3d733281e898a3709ad6a974ff04ee6659f213e083550563a1232aa021deaa516f05520ca5c3ab78442215a556275e0329d41243c694e437c756c1b18aecde054afade62fd057d271612c4063bdad51525bcf82c5b0b2960635b097fe14dcc4a7d907c90a8763a2626878ca274588e9b3b697cf5d143f4efad00176b64ee8537836111cf8ec812939a054d46504662730037d0d2642b47ccdbfb96ad82fe97a409a598d6dbb98f4be4397e12c7cc9c91d886041c0bfdc4544cdef7c58b909b9d0189fdd3d9ee26ef0f0af64f4f4c52d9e8b5122dc34b582785eae481ad389d1964809418086bf31f991793956ae4909e88389a82485f0121d26b1a3f6e77a65ea6945cc94b2ff39e054e474e84667c094019b485cb700f000552f81cf7ad190daa27d1ab55a7479bf6e3be305c32d5c79e85a4368f3443c18af137cc7855c4739c02235d33f05c352c36432c86971a498cedd45b42d83e76d3aa7820cbfb3ecd277dea5eb98e6e19ffa52601b48df51c5711a2bcc9902513d6a0705cd2cb69dc65c2170d2981cf25f40694468e9ec052baaeab59a94d705302d00696c45e780903a13e810928cfb86c29f4c8a2fabeae1467a4aba5dce434700e8dfa01d7572e5870bf56829c3edcc0c11fe72d79712503bfe86818f6ea00c4b52305ad41059612b6c3f12bbc199e3261d7cbd3903d6ba633efbd2b9d9148d268033317512b6652a4b2e3156cf6ea1453845ebd0af5fe025e35d0fa1accfee54b8db77d5b4967a117ca84a1ffe5812882233e2334f242a827d0ab8bf8d7ed8122f4d599399f8539d4d25464929df129c40d3124ce4cf952d8c396c190be01712e574716baaa70de0d599bf6e49d574d12632dfe311259d4e46b19c8abf011da6082fe77d50a38634e5aaaf52af9daba8e92337a79d9ce77f8adac453068b5be8d49fc59b198035e9513db3bbeb180cb82568c95442d1ccdd19fe46e29d85bb5359957eae94151a31851b32bcc45318e21d98e0a58f30d27dc7a6cabc37d505bc489603bf5cabcdf0a17ea0afc79e459cda9d3c017db4683b24d1cf489ba83dfad712bce97952132be24a0a4ef5a221ce6387c54cb81424bcb5550cb6d22d02f8a44942eee2ddea72066792c300492f465add0574d0611a409fd7c07f093e10dbc7015a6fa3ee7d46fea9873d35953894108bddb230d6232191aa10434176e9e9375369c645da281072e9c703f8a37df5586a8d302cd30981aa01a0f685712132b52f892439d01ebc87c29b61b6420f1f2df9c5f8a7cc97bf2641676d8afc304d253841155595b0802bb1b44b83b852c4c88545580a4036df4aead7c5ffd3abbbc4882b902d4bd195f06ff7baba635e50048f4631fa41e6bcd2251e2ee7a1a500d91333ad9246b9465c2c69c9bc61bd62bac7bc3275bca639009a9cbb99a068df84e14523ee73631a6cbdfdb38b7bcb4837380713ac711f7a8a4089aa21f0f0579cb265d3422957f78c2da921746a2e86cc9995270f92402e56e610471cbd63117b7fc86c5e12a59cfc880f42dc03e10da1166c7d89b0036de1aa0d21c095b179a6520fd525a200c2ebbc43e1dc5fce306a8d50b400dd34bd7efaead66d86b3d8c229f7142bfa60ab3793b79335058bed4902870574ee367ded4be41efce52416efb44a96671d197c60cc71c46de9258c88b7bde1cbd90317ffb6b8ad4d716c2cb7e8d97065b3741523ca2f2f2898e73acdccdc2f5aa9dc512383172c737b425b67d151570a1abcaff08ca4d1facb5edd7cf25122c04d45ea2f47523ee60fcd565ad40a3264426df8759b780439ff063872abd11b381912045ec1562fe60367a52389fa775ed59a0b37e68c66fc4909daf7d57aa913283a39bed2cd0d5d87afddb0e2bfee1c3546c6d331647bb376d3aefb25c1a06c37204ffb5c3ed41279d3aae792610742b18d35d286fb89b690fc45386fdf44f3ed9f4e93d5c58ff62bdbc6721f68bfabced0c1018f841ebb48bbbecc2726748eb2c7ba9b4dae52ebedf894fb78d3818a9a4d95857b14b7b2e868b7ede5599f2b6b3107e368a05d89d8069fa72b21f8bc9b24d14b42625735d3afae88d5b2ec99b661161f8fb8cf3ae8ab481a0d744049f509420d17e2d14aedaa622c596f0b2a3239183ab3daf4d03da55aded7b3315547710b64328296727f8fc00ce07de9513924c523656de3d7d3b959ba5adfd4327fbcf865c3ebce98186d06fad0da61443b87afa48ca7d7c395477517448a45008fe4ec35e09814dd0d92766da3d09be93931bae17e6d84244637356ccaf6df67adc831fd981e0a17f5420c12fbc44c827cd20e0c9a9b0305623cfed057b0ac125472c2fba9982f8f3feeff9c6b963b8b0b172a83aee9a310df26d17e10d122e4117fc149b9e03acd5d92f258fea89940c62a850d3b49ece070556218a99bd7647d686bffb1ce2f7eafc3b67a514e91ac9e4b0a8823585e81cd1b11dfdd8dc255192b5c00f6ed0496a856fefc0fa408807aab7aa1e856d3a44f4e6a572ed29e6074bcec24f16fc59a573b72b552668332704a176824eda68fb8358929a246eccd1bb7bc22a2030a6531d02ab7dbf6897ee83691796aee608693bd437d498c4279e3f4eb9d461f363716e6f19a97c066f3036b310549cc2a477c80ca38f87843bafcb2f5495fcc4894361585203e20f6adcbc01eff894e7e3991d1d445c683125e55b11612f05fd282f8053679f5cb52416a95bb56acf4945469aa563b94abcb8342204662f9be0544da466ffdfd0f1089e41ec25fc7eb9e756977c56e5b3807de3a57b7170421dc517234c6cf2cbed27eebd4c8156d94ee9b190ae15e3557a4c0820201d34f9254503e96e98c219fe5f3acc927388170310ededb3fae2914e3c1cacf558ff860ec16e473683d8cd94cff3c8ddeb9a8d045d4d759d17c6b2430d8b7f92c8d480008736076c0d3680305df526d7662710a2a38c32f9d2cc7992446358c8f0aa46c065b422d9c8ac37f9470d31a6fc2f5b353f2775b8225985c1f91ade9c78aa6bf5a8c269b93faf871e495c4bb183af4206c9c251a6777e60ce49934bfa386d583b616f71ae8c9dbf8a06edbef86f363f009a974f68d399bd9af1081dc999d97a42b8ccda6664c702b96e21742a2a1382cec9c577eadde644826b1637bc58830b3f84010569d3e40c4d0c65921a871e81fedf991aa00a97dfbccc1b42e0497080285f31c5636bd2fe1eea3173932b6ff8cbf88e4c4a1ac4e4238a726a5a4c453ff3b5598ebe0119ffbe352d340624df72936b229b90de71d2b8326f9b0d951bcd42279a600dde6a72d899270a45b8af0d891299e1ec88401e53cc37627557319e7003159ce649fe56a73305bd52e581b7ed65b8523ec86981751597a768d5a6b7d09369757c5bf0c8802c89873bb6020fc38e53e25a93e9bd6ce6184b983588ab3397f8e8066e94abe183f52a44c9152252d896555d8d81e9a0874df1955c410af8bc35dcbc530b119cb0c47039f438c04c3aade694a4b5eb852cb4a1bd0547cb31193ff37144b34f26bec45d579a0416bc3b1a586093776b746ee1b8efdd32b04d4246345e48d2511586d48d95df5425e986f5b411d849009160989bdb8ff5925af80054819aa335152640919d83cc3c4755d9fa9b3c0eae912b7ee9e82e08c6cf44faf304d951b8a3f7b3b2aa12c3645cf84a4964dd1838b0b46209433d526fbd7a4ff01855f1bad6e434175fe67b7cf7f097d61c8fe9cf913a09b2a232d226679e43dd9222479afe4716dcc5466fd381c1a04bc266c23319262f5c64e3da9f332efdd10516dea402480a4e97582e74316f06665562ded01a75a278ac829493bc832c4a92d9a7f626f0387d0838ba2004842fbb080a1d0cb2a9c1ed2bf142c77961290c1988fd5cf347e044009d218832284757635cdd9331697556205b6ae3391a90ac6f5e5f24efe39ed0b1969dfae1796039500ee7cacc5261cec521bc332ebe84b55af46ac01db52b620dc2942a4ef7705a5d94def8e07c799d0c1ba7ea179aaf56736735f31694757a667c3ee1b0db8b69826da641801b8d45a50ea716b18498e4eff7abc51e445331a96971bf73b1585d5a77b2f038b6509f40dba9e44e8932a7b4c2f44350ca4b8c1757b01943641930887fc74ace92098a7a7ca7678103cc9342caf1af8127373c28b8027f08f32d3b7cfc15677929289e171d8369bb8982f5ac86726be446de392075c71a6f57b3562592d8514a9304434ba6bd34d30d1f8e1366cab04a7c967f6e897a1c1916d92c6cac00a7609e77f30e2064be989942a7d895f8a9ac2766ee621b945c18e616861ca2f9b317c8bdf8ce6c6075af050c4a4c7b4a94dca731d396ef24e8eccf3a00d2c580ab4f555d89531ae7473d623a8e741314dbbaddec080d1477963315dfaa965a82e68934999f9a332eb84b35b34e888de6877ff9106b9871aa121e4671854029249d0853129c7c13af1171c5c5e56a16c96355f5cd012e86c827641caa9d09d2078971f02d41f14b97ea3ff5b5af7871991549e8b447870976d8ac2fe40afa65f91e855d58be8c925c99cc4a583d26dc49980c91c926bf88d19ab5265580ab138dce035e309b3b84915cc9f28a799aabd852940f31ac18a63ce490640cbf695a249d05fb98339c2cf32f8b46f568be2f1b52cf859f372a9f9ef4592a41078777c36f7d282d1a118b10d84dabe7110ba8144c8ac4020d14f0037dc62ae20572e256bd62de942b6e37f997bf63f5170149ef98713e4300829b87072ee80ecd489da21f2f8830d0832209adb864eaa355bae7cb27d7ddf848ce1b81b46161c82295e20154509eb31b1097ae2fc4f82156303fb2d9abf98340a9d5ed61859b0bf691cf65a67b67a0a2e620181f7736e72cfdb7ea56e3da14a829dd573e05bf9cb5b4e2d17fcb64b85acdd4d3cd1d0395b47f1716ca8e38bd52c47ddec9be614960cdc990eadbbff6e8236be3be21db72a1925434369d81d9ce440a84ebb1b2f19703a5cd1ec0103a84beff75d39f1f3cf22ffbbc237e05b133da5d7fe3541a10da097e9f77b1f018b6027ced6a1dfd7e7fcf2dbb193f90b751db578d75e782b98dfb86ecb603ea783c63767ac170f6cba040ee65029b87ed02489017ac2f04552d3ea0adc920a72a6e720d42cc213acca860f84473524028ca7e073a0d1896db121155db1ec817b6e882a91c8d557b744c5f6199d925ccab167789a99e7458e48c489205ab75bfdd3d42348e4af796591ba6a2966dbf2bb12b93a26806d59a22de2dadbd75f050999a395bd9b7395bb5c97ebe62b4c6128ca3a6036a250d39e741d9ef635ebde3f476c74fcef8c86774186ab98c3f03a7ded5f045aa59f8b034bf9fbef67ff0f82e2d02120076ffab9eb398f5637d42343497ba0a28c8ba62220f520f1da82f7ffe67725abdcb0c2d2f769d47ac8b9643f13316401e35ef953b5958f028fb919fdc5def108f6a741198d2c48bab5c27a20d06a67e41f3c5f690b03bb6f2feb89aa50019e630e9c6e307e31cb03aebbebd0ba32a950aaaa50d963aef301675222b80478b98ed7961aaf59168690ecebda3c4659af0f56cc6b067563e577ec6fd2800cca35c307954fb783e1563a6ae7614ae42e8feed559c751761cb16777053d7c0ae74560ac4b641b39741b5179f4b5056b3c1f452aa79b58d7c762166d0c5d2cc63b8b9e017734a20341d962fa145b98d9bb28da113bf0e8c3c676695f1f0add05652ea97ca392ca19ce28a81a3196871eef38e320764cd196821bb6da177edbf199ef64515f29f5af828a3ef8c50d611b1ad8fd362824478089215cb5e8e97310ae10f4193078584a9d81b60f35af8f581c1e099dc63f614a30a5dc4b79774b0de191f5ec6cd071223292bf335b613f74922ed71af8a6205202a3700946b8d5f0d53eaa757e253991ed3305475ac45411774ddf9557e558271e336314429345fa0300a72b42d2d531f5fd47c847709eb892b6b609fa8ee3c278f37435d8d06a4f86e6b756c66ab99c9564172c2c4e797f7c3503387909de9ea90504c86b326bbd415b5fc893e0a9d80a6f1b42d9a604852fbe3071b443c45c3a8aeef2f24fd1913c89b0c45ff09fc569a56e0511f5fed972cf8d64abf2b7c95a7bf29e49d6c94cd17fcbdf00d17950dbd1caf98e1f74abec94a402c7ba2cbed637903795aabbc3b5f1604e555c87112bd992cc142feca93af46e17f1ca309544be445e68bafcb40d83820f916fbe962a8baf98ab910049a141450e744977ed60927fb9ef01c21bd059fd7bb0dc8d38c25db59e705cdc9782ebad79602459dfe773c114be90e00b706b392b1bb6058e834704c3d55d1ceec1535843d962634d1a5424fdd785f5641fb1fb5221a5e6de37393e628697fb37b3b566e98fb3f1366a3ca430cf28c896a472cd48284701c7332acdc64a80d2db798d13a004849ae6247955d5790227e0c375c0ae9e1dc8d6e8daa6da7453495401c4c7bb0c0f63a85d94b96067da9f94cf2f08fdcca10fbcbcb3a3b929ac6f9a4d90aafd3d023eee22655e5606c7913ad5c175c58dc76e026ad632a7fc99b0702cb7dff5b6755cccfff97b403b392d471292689be5dc705e877b1271d5c5846cb69612fadeef4833fdeebe06c7968375a5b231c640b59ffc79e4a1154476e2a9bc2453994203798201d47b7bce25016ccf513394bd738d64d3de938b0eebbd65b43d311ebb7637d8c1b47d8c687f771b0ac52f3bd935c3105c09a51348eb579de19478fe48d81fd1ef224e32ac88fe154063e1c3c9c9a3c6bb0a9228d538c1439fcb93da7de020f4444d23e92d300e3f697aceec979f2755a9cb175686765c793402871bb3b093a3a83cd4219a269948575ddd81261eb226a4685240ce3a3b4e2e1ce51630ee4520f82ad9b592ec24a59596e0d9e6c8da9074077d61a5a91a0d23558bbf91dc7751e2e0f4ec15ae56df2ea9545470876e1b78ab7ddf4eee23591f3b23a181e5aa0467ec0586e491181a3fc7d547e9cd41196f3fefe94d3873c590df08161130ad63012f1743d13fb9a022ee946a53c2eda14956bc86966bcaf52016129b6e327a66c77916b6b1abdd465ee8be9bb8058fb2ea64ff15ca493e05fd17b5d30e8bcb25c5a5320c21a0123e95516d91270fdaf81d1ec755479bc6beaeb42ae2c34accd0a78aef634310c4f0d6c692a6ffca5104b1471b88a8a3902bb7ed42c646c24fbee5336d7d08a91605d0894e733b1fa6d4399ec9f4788e179699c7b44fa46209eb2f86ea45b44115e146292ed6e586418d11be4c75ef4c1d612fb37129305fab63a9bed3261e9b1d4418f6a7fb8f1ab4a9afc0b20143447de97b1dfb2721056d3dad1519541d990265e5070def6d28590b1748abd1ad29af92c29b9362fa8f8b08496f6fd4022399490be7b094828a941b9495aa39fbcccfb6354d247bc1cdbb835948f349cdff4ae32d1d6abaa848cdfe361d701dc35836875173effc4ad9b2440c79dee57b0933d0c8ea8edc4f5d934d2d963c69254acbcd752518c03e573a7a2b4bbede32bcff4d2b8df2fe2747fc890031d1950e8a713778870e0334dfcb478e1e79860ce75431bab4e9c57b03e1181e88c8589a56ffd9c7326a8b1d3bf3e0123a045a4b65783026b2e495c8ad63ede67f1ee149ba120f707c82d405d0d0cca30464f736723170756b72fa8701ec8f86707ca4ce7e605bb768a401e9593178eabb5dd2d6b5d264f8ecb34eccd3f30b13c88fb216facdee7851fcffd3ddec5736580ab80d8d8d9c068826f725570b2dbfc2a3abee492a4f09092238c218acdde7486674a578d833eb74f11f1d83e9f74d4cf80d1f73f471ebd00e0fb824f31d00dc56690145d60638294e7f68f685beaa420c1c1ae08a127ca3f210fd76f91f30765b311cabb51297ee705ba3845fe05cf91b0b09eb81a2f8e1d5654677c5c343d11a6b05e56a3308f55c211a01e1d9474cdfb4dd2abf10b53388fcd0461db428d43d4848f1ec8fded8dea97a93ef8b29e2380f4660c3828862b3de7fce2905ab5dd3ccf0c96e604e06a8b222eb147e20e7a4fe0681bb4ff21f4e73789c05376ff442ad27de8ceccc6c845e6269179f3235e6a94150b790a2ca8f5b50adef634ddd267eb95873136b51c72487f80c96efcfd2baa3713732af0a38fed7dca7081fd2f96c9dd6875118cbf88d07cc747769e63ee6ba1bc307afd0a9bfdde3570416e16245c9a67f2a71746128aa44efed9422fb6b8a42565b134637444480123dbafb8889d2bb2d90b9fc291eac6836508bc8238cd9fc16de0cbd359170381ed79992ff2daeda6b1fc9731101cf529df55aa3e5eb39681b84afa1e6d6182118b11058fc1f41fa215a4bb384e4587a0c14a39fea4fe90354570ee4e96837aad731e36d88f0f32f6fd7a20e5dbdacb563e8d473a3cd6605f62b4773d7645120046fef8a7263da81a1f3d6e94e273b2d7bd489191d85f30af11fbb43925769f82eefb9952190b3881e26da5c0ef5e69c7030632e5721b0d74205952eb1f7dd80b52e04b9a620999a52bbae56fd53df5931d7464d48be7e8bf3a4bcf5b6d37055a2f60b253ad7026c7d676ecb6028f2a65b19167ca90d5d71e557e582c04d4e037e526a02bda743eb2fc609a36faa8471ab2d2de18362b0c20ca255cdb340dc1dd41c6dee1f44cad84079e7c5f7c24e3380c56942f8b597d87295abfd65dfbadbb70ef9b744955968eaa435cd32a68cb34cbd7bf8f877b0be352678d5697b2a33c167d894cd504e434fbd78e6211939dd60660a1b5f700826ce7d29edd388b36daef758e606e7338a36bb9727ab7dbfe20a84c828f63bb2976ff98f6376ff8bcd6706d132ea4860e7727c42b7939265c8f38bb3c26447f97aed7a08719e87e67430fd3a9bb2140e82d9c6f33efe5621c795b3e084fb66ea38e27fd53014c15c16c324f6e0ba9fa5996936da72befd37fca029bad7d2a54b46f5e697ee5e20c41a0e25d3fe3aac980ac7e91ce76c9a30aa4ee6a0cecb6957d62ac9d8adc4e8b2ee908ca2a0db7624194497757f984f89f90abbef260950be62fc0e65cb5dadfdf8da80e006fd6837ca0cf2d80ea2afd111b2ab0762cbc13ae174da1834bde579e9d10a47e9d00323e790e2fa50ffabaaf7471b492f2948095c1cc4c49fcaf134c0f1adf695fcfa671fbd4f1d4a2ec9b887fbc03a5b90ce492a53f1454ab111afa9a2df5bdb04b02a382eef03910f709915340e4b99771038e92b45f74eb942ca588cb4bb07a07971698779195da5e585a90ae918f2b2a8397e885ffaa222e7dcee227addb34d51b781e9e8dc0fb82843290f2aa6672ba0e3cabeba631c93e9dc892132d514e7a10a1361314333efbcd9a1cba3f3c70ee3ab5f6f2b2968966e60d04d670d8f746ebd1fdd0aa8abc451f5205c843f42631a2ee8f5180e5072efe5bc806586b546c3fd07fe0f8d9685e731efa803ca2bd25262835c897befd148706e5cc1fc95c59fbd31eef55d6c73b39433e2f8b38db5bd5ce8f6e36c567934ae06ba56172e8d997d4fc0b9eef2d50e771d780971a2f1be39da3c48f13e26cf7e2bafb34b8f2dac99e8ab7811a7b0e4795803c3986ac1705504cd65446a509849e013c5a9285dce8de6ce72554c567bf6e596315e83572406f07fce42457b05e6c2e9a0867e71cbd548b9f3aa1e752b9164927ac2178ac6cae74622bc1882f5295b49de7b41421eea4fd0ee46e03b6615a271ddce3ad66749968289a10afe06cace72cf768007bc6262e3bda6804e5d56a40ff3033fb26ba8958e01f23bf1b28f082d83f7b911418319dc6cd3193e7404dab5667b5b925741254f7224ada0988b10cd3ac9c09c46505a94266fa93b87d9211dd41612e2a11fd86bf629f3965ccb5d22b1b267c6f3b93c238001f873dd74d482ae67b011cd561248679da898438511601ec9f1fbbde3fb4d13ef2737ca60d28e5aa5873ac3c2b64e8bab0b0331804fe93b51425857cf8a94dfc164f8448560b5db41098739449ab3e2a6560a85fb5ba18fe5f90eb8410f5c9170de3e87f831fa97689b8f9912bb7d62a35e839570af6b326109c95a562920b4acbd185955c2f30ac87687ad06aff310d7343b32df44aefce0517d64aa75243ea03c264585f36ffa6c144dda26fc10892dd826603a4dbe1689fea537e933ce8c376f72d931e4c71fab1840e943ec8fabbc78402a1f606d0a196ba47f61860e93ee4f8d75944640c3e001286f0ba29173e0294a35b9981032a2b4a4de6a9543080a9e51c0ccf16ea30d9dfe05d12d9ed68818a7e51e5d7dcee9e29e80f0a9a91c2dbc7cc74df779d55204a01cc8fa8abf73b1d1127af407e075588954db72991869f6f20b7f6beb7546b1e9164fde5422e125a848bb14471f10eb70a3f508e6c377b0a05754d37cf9e1416abec6b7930b4b4023d6f5c855f624f43231015c209d3da5af1f5b8a711a39da976f030e08ab8c564e2d6673af99f0c18d2e997b317d55f00df68cd0e921077f804237a284558789f69372ac764ce52128958990d356aae674397bbad5ae69ee61736b1948e04ca51fe89ffb122ee77a6cb9b05a8f0f6dab2ab1fd314d3f0b88793a619c7c1579d76e1e4f8fb87ff84eca2cc2fee551242c363216121ab1866113d3ee381c7ee352f7488eadae86007e10cf3e233d758e33ff214876157b0ff9ec1084325df190e285eafeec98f097a96382fde915451eb1ee333cdd5ae44626124e41edbb6046e4abb4f3a1b43979929a76169d2dfa198b085a9ec0b7a2f644aeb8b06ab2ba5526aba3cce50184ee55c5f73e67e1aa2ff36fcda55320da049fce6ba43d20f904cc3bd31ced859377966c58b26eacda98884cc58bb8146589be010a4fd1b5327463b8514717936066023c9e89321664034dc7ed70b3902e463942426177e253537ff2bd85650468c99611fcbf6d4d934548904c3f90202685a20634e802a752bd88fda466c9ddfe012c314f264ebc3cec336d9143419d962470a344d63d69cdde880c91b747cf4385d8eb38de21b3a6bdf090dedb9f589ca46a81a5d7a6eb44aa877a75bbe12d696f1e8eec33682d32efa0a7f7dc6848e1e027bf46051bc6d30be99f20e9066cfcb971a78c6a58679801d1bc49451c930f87bf0389910833773c5a2e9d3c0aae4bf28ede7b8ec69494b2c9c43d81310ce53ed09dd72a903f2111389d383e2a6f5a0f4d2a7523797110043c3cabd40fb63f268e1a59ab047b3877e7a7834826a131946b1f2b380920cb5f2549fc80607223468494a82c098c699607b115eae6cf5bb0887c1159d2126aa4d63c45567164c1ed2e649682c371d21856acd4d1fd9343741ed383e8cc146ae1cb154c0088727e72fa81eab70bd431e896ceb1cbdaab81bef3d07f4d7c16a6e7b60fbb7326306a9505093b7aa2ccb911397fc465e062c7e11659ac7fc8ddf641084493e25705e8979e337a7fa0477888235bea33ea6132a4d8663285030d1106b91d8ccdc04e688b6ed68f363036b728ec2209cfe6174bfc47d7aa451e9638a38d548d58ecae89466e5766205ea18a0e2193c243d6d3ec052511184cc23f49ac9b1f6207ee095f836ee0714638ee4ad555cc95abfaa468286938fd08e263beba7485c9ba5b2cfb19c1d5b87d5dea5a1f2ea5821601cd9dd0afbab04f22d41642dd1c5ca0ab95b598dcfe5b0fe7d2f3cbe63b6a3e7432cc0e92a1915186c328ae4758ea5cf2a3de9ab775a2afc25927bf151ee5d9aba56503957d6375a89aac9fdfdfc75721f3da7601cb301d31a9886cc8d3087c709b05feac2748ad41ab5639e9611a5470dc69211d8756cf8ab93bd305c40fd7950c71b79f2ebe6ee6b353f0c352842306512740557fb4aaf177ec160855b637e55c8812eb824f2bb8605f9a95d7ef61c0e097b824647d8261ddd6b4e16bc0a66949f5b63ba5db074e57d720c22608edb349332c83faf0b6f491e6dd1a9b9f8b8ac85a5a2a8cbfbdb2261880585f6b367ffc9e96368b37a5c0fb8a18bf63283e6b4b66f943d47eaaa7ebc2b024be0ecea84356eb0ffdd834430b4b68935aab742375b69d7bb0389dcc3d7a294e3c8ca4be182fdc7164a4d4af9a54f045590f45b5c9c8c182eb0ef02bf48d3f746c9b9c6d22d75c129699e0f6db0c2183cb9052986c4c26918e317e2575b640dde7b6ff0f232c3d175b472f9bfaf586bd5601108cfb172554a0251f0f5f88c51a67f588df71a1acf3925855e0c666fd6e6b6589bedc854fbcf49ec485dfe46e6de12d6f384c0d261a15eb64f0d8904a325a646003859b18875a2d45ebeee2eaba58e0d579afe8008f50732489f96ecae19acbda875550413410d83830ddd61154d2cd9c01749316050328c49345de097a1c431385f2669f6018a35427bc1dce1fbe0f902e3aba8651e02b5ca2ad1527a3dee3ef424cc7c9a7503b56145b1b2b3b5e1e5a53e6dddee0e01aa7c571fd029e42df50e7e9065b687a78da4835c3379843be297efee25a87e50bbed4f33fb75c3029d78002fbf0abf55c675cbc9726abdef718c160984bfc0a6e132a138c2b8ad813f2a17e399984af7b512cab5b7b5889c7ceb7a7c5a7affea334dd33a23495b762b3f17cd78c2c62527cee4f62e0501fd783908d6a2761135fb81828ff146c03f9e646a7329151608f39ac443fc1ad6fda3ba633bc4a27841414446d2304bc94fbbc8c8cf559ef25b8f51d82e31818d17cd4cc06550fe19e0417a37cf7a0e0b9a92c030c99623a352a822cd7ce5686741fc71a9fffc5d67b651d7f0bc6817a60c8ca8d1ada7fe3061f40c7113ababbce6a9eaf5902294b5807f0f282aec09590b44bf2c6007ac96a83308abb48db6dacfcdb57c4cfc81a4c33ef20f6eb1f72f6b5d0ab35c6d809cb2785c27c329eb27803298a5fad678c6b7f375888c43ebc95c6825ad9b92b6bc694eed37aa749640ec0ad8b0ab7df8951f3d8f8d3acbbf69449a27d7f869902f5d51e2c6c146ffe6123a59507eeb067e41c2e52b26f3249c370e1f972f4b3f20e357ec512a144dd58ac3f87d71dcc3b2edf7cb178c27e135a2e4cbd02c4e580046acb0f917835acbea16fa641566633aec3934ae0396ec374d6e146e78774148b4464aa2da405fd2998ca1d239f21b507afccaca89f75980441ec3206f256579d673be72da4f0b038a95eae8c4004eca684c82ad0b40859a6356bbb9f34bb54a046a6aeb7a4f0bcbe0d074fe6d33b78c50092fda5bab651b64c175c418124612592ba8036324e0493d828a6f565e36ec9d03af8d42b43605f879399a0241e8ec2b562b4ea5e125ea8c97ceb1c9c79f2f1ea6c2d1cdcb66c68e24da8c387e95014cd09134fde72572fa8ac2eac58859196537145a7d3c16ed0406a7ea9f9088b6d91ec86c203034b9453610869b2462a2d4dfd6d57fb96feda4c6a629ab480a40adcef25f665ad8e50a0b088b85d0fe300136fd8b1f044d0713cd8f85b6be14232eec4d7e8408ca81e5b3aee21aae3dc93b97df6aba092acf0f009d6ba705a86ff5efc9f2e74e8d3add407bf1f8c14037b41f06535e1807d1379e8b69492ac62caee1bf099a3571fc0c672c8a131954e30b88383b10fbce90327a8298f9dd06cf063e7a53ad067bec1cf83336e27fb47a02313cf0ae763592ba65b84d98dcff7628d9c4d88b8bda22ca4c5048d351231a152ab29c810f993375e0e4dd0af62159a7fade7d6af983a2bc2e6bc09b73cdda900597d54e1a90aa03e8c7cb87208a2d8fc7305510d69b6b0900d4d2660b14d990a5c9c150b52d46e0e4a526925aa5117e1f83fe1304e86d3b2fe8b4ee793c0b8e24109855bf6504d911ea652ed42c4b8c8f9cd4e0b89e3e339dc94e7aa979ba6b8308d3500cdf7556a0d9b6463532bdffb4f54b274adb1770f22504679a603da98da797d47f0280a75ebc1464343ac37b8336334b74b040d2a627191c1de6c6634bbfd352090272835aa885024da5e2b8d6d1fed05ee8cf7393141a5a74e72bad9fbdfec7e54e26380465c02c3f53a59a7a03257b004f7301c493e83450779aa74e7863491bb337cd06966198cc06350a07f01f76e630051917a47683de68e7d9abfcc5c5ad1c7e791bc402a9e49a69fd9cf3b3ec927915342ce19b10f49f188552c713d6ac7dbc3c482895a090a0b50d38f37ed0ac5eb0bef7fda754c99a9305f676cbd940cd2520ba88bebf65df7f0a9b74e7d039771012ee5c81faabeca86f629560bcccdc9aa3086481e93f0bfcb710a8ab5688ef3b65820aa929bf3be99540030d628883b8cbba778131cc83e6cf5d852b530994b0743516d630ae8670d07a704a6cecdb7f15814df13a733ceafd5c271be604808b7dcf85899940745a4daaf4fe34fe88082fc29df138a1f0604daae6847c26339ea7fc3825f467b75accc890dfcc85ddceb0cf706cbd8c795af645fc0c14b692ff94ffaf46da408e83874367446954bcd4f7ce93e55a6ded1822abc39dbf0c495ac0f4af2ebea6badacb64a8238d100a2f0f49702513ef3529b175834d227f8349e085ec1e02e907286c25a80ff7df689ab73f526d51a2fbf264f19c454e4989d40d9008a3c9d4cad72d4a225f764028bdd3f7bd63704f09ac5c7c9a25c3fc5ed1d037c30f365cafbbd7433da513fea79556cbcf52a5916852b2c77ced31a1de0d030b512e1a3d83c5a46952504da053b95d464d98773036b0f5893242da4679c4ce971e6c04175ace3ba7d3f7043760e70439c67ef31f395e913713f06b47c91b6065e89baadfd08cf8db91fe0715aa3c4d1898735a6c3165489d596c99465f376ec3c50feaac39986d35a1a58004ab43b14e20e1ddd1b5ec638a0890b1e0417de4eaafc1450ed39e6a906a0714edd5697d9fd99310eefba607e2bc64338145f705bbc25bd5b3583fa42c519ce82e1f41af5958c3f5543a5452842f46024dac652d7f33f950e39717f686d80fba2381223c453ef1e48349946fa906c935016774ee6bc086af49a4c7caafbc36823aa8ba56567e76e2a2af972d684ef3ed344fc3809b7c8396fb083ea2c6c79a362fd25cc99e2b1c294654b5a94535e1ff7c9b17d396687a08879a8b31bcb0fe2586d4f76c21b1a48e75c811384ca23740e493c84893f097007a2a556c5b25e3ec0797789952c7c75ff0d2891513eae765ca54dfb9f2bc64f95285ae48111ca60651b434ec8054dc40a164c211500e89a750ce5e93473c9a54fbe572e6657db2181f4cdd4740829b15c7701f99b1c71e020063863a64a9673c2c8a69dc44c1b9c91067c79874ad05153db1cc412ae14fcc02280320f1e470379199606c4bf7137d6fe9d2194472b6e99c71ed7b834885660efcdb108bc7958e9f628c2ee7e6ea2d22682903fc1faec80a80ff8368227e7efa4e906583adb5b99ba3cef7b482b03da0ae8a9e7b0f1d8a9991d277749960460d69bfcc1a6fd789508ae58325925aee315aaeeab174d4d075adb6c8698e96f89e76fc3f7ebcf06b2c17e988556fc48746f6c82cc43fc4794c5f59887e83a63dcebe30fdc63f6fbcd22178916bce7a15033cae659096b13dff0bf957a5e09a98ba4c4c07e6b44b88d793399338dcce4c5b5c34dce63c3f129027b7cbeb4f6a1e51af0484832b829755da3c8f98ff2a8497a7e25871e2fe195bb17b75ee29ccf7806ae2f8a157363b69cef3e7cac04ae572b7b01cd116e9504df19b35fd949ba72c0686827bbdb23ebe2b2c4e80ea0af6ec4e769ef192f8775fa8ce41f85d7a388675be1d357ee5e59a9bfb502c4b96503949f363a8311795acde1128b111a9836d632a59c28f9952a7730dcd94f449d6bacf7420d6f3892df56c89d49a396a0f2e7508f2289d2e130f51021b8d10aa1d6c998b0a1c58e44c8e91659b6f5f1b043f34d41530a9de969449de075b295b73e8036d5bf88fc5a19e41b33adaea029d1e2a18605e2b11da3c09ccde98d2e63f9515b969fed21d2aac2ad79666ff721c4c8146a6fd72d10aabb4f9f506b633e49445523437400b9a8569b86a586984aaaa5f8d1c65a2c2e575eeb444b057ca313ff436101219dbf9083c89f98b113ae27ffadc342eedf658a66f4f4a3e4cc8a0673532e86215a05b6510b1b747f6bd82a17057d3775796a99794eeb5364ff4cee539327d71141368e22c1e9bbf0a3adcfe1f71a66d4e80f80f98df48ac9cbbadc3cc227e1403a4e46fe543e156035b2d0afe4ee9f18c00e9635fcf91ba475f03381fc52cec2ed1f349fc668d350bc41f58792fbef9cab55ee7019e84b3cb84eafb4bcdeba5313990c35e2a1d39387b214897b18567aecef9b4352c85eb37ee2db0904675e4e7c374bbd89f1d494e3f65bcb23a2c86a21771ed8ebea8811ee49e1a2069c13364a32dab8a255332b884d5e324f5d3d0f3cb471a391e8ea13ae526104086e32ee6670da768021f9c8c5e06e0510d5f1c012c4923d1f0cbddd81c07c6f352d5c50f3ca7937d2886a82770ead1ba67997864b3a17a13b6d0d989595da73fda924b6499fa3777fd22855f4629e724eb804996850bcb29a6b0f9d5c53385bb99e7b4fe3ae393f4dc4849a774beb991e5cf64f7c114fc870a77f93ae45f61835b7bdbf2a6723b879011e5ca57c1b7ee39c7b66b4b261168af2505544950f7de75977b7b8ef37cda53e5f45a81942fdc9f780b72c4b5a712591e92d627299dbde6cc5ebfec5c69c10d03c48ac0abe46c60a3506aa25eacacfde039ff86f0e47e2a8c586530e95453ffa56c301312c0bed2a4dfc42e83259b23f4a24340ac6c4d826d8e36b3c727d2a931698b1126f10263018dc0635b22117d0bcc0e0cf77f4571a1a9da1cc4d6b81e667886c1ba2396bc8522d9a91066c2fddc93d9ad15f0faa78a23440a29d83419253ea24e39c7b49f9559ca394752607d9ed907963c6cbecc6cd026c1042f5f92cd9ed928f25624043fcc56fe808cee57be8c60f443d515a79ee2c6ca6f9bc067f7b310446648639e9efcbf747b412eb4efbe1d1143b728432b85739c01d02f9d2ce94e15726ac4a6318dfb3ba0874bfcb2d4afdf0a28c74b18613d5f74c06223d4705543b6984b63ab8595f6806b5cbfcbc551dd780789f12b2c9a1c61bdd01fb6aac03577253296f0fa06868a2fe6fc01ab8822f9c2a3389cb957ddc75cec25595361c7f2a0f7a9d257816b7a006ccf9c58547475c54a0811489372a7885a87346dfdcb060d05c5907f82fcc0fdc0bcc11fcb2de64f9a984f30cf523e5e73313e983c820849d49cffe6afb803172ac53d24b349c737453fdcf7ce80ea9309c56ca1c96621e7882a0d274c12c7a5507eb46ef69c5b55ecdfa88dbdca97e13ccd223d27aaa9740a3db25f48e7a7ace7950bcf9f1bce3d4e581f35246ad149302f447c63f864699ae5049c40b34123e512635c1052955481a2be1f457dc64da28562911dbb4e3dac99e06b4c6964afd7c2a9323f48e94ac33dd1d63a51e175268b7bdf2ed3ef74951b4f15c7bb4d1ca3588c2090c694d70118c971397403ea4018e6889ba98c2c2ffbdd2781f0b0bcf05676f95fdc734d21a192e29cd22469e88c466f3f01b12159612006bd14e868ef0e4a284c7510634600a0e20129979a493cf796128c02db0ca9c29b95430f43c1c182aee132cc61bd4bdbc0d6290eeabc8bbc6d29bd7e8001bb49e7415a048d4c66e051913c221d04cd7a2712d51d6dd6c3d0c813e7f3c7a3439230b00f39815a59c35cd259693edf4cbd3d3613fbffa6b92b584d7342274e809edf2f3607daf1f249db22ee70f1d5fbd539e3ff7cf1e79f571c1c46e11ae053af7d8df3cc2ff638a1c8baf3efb757ee85b404706cf960413fa68d62ec473dd35b71933b71f64bc90bf049d3fbf9ef104233098cec62511deba8c80df80bc76647c0fcc885ad17431e9d49f995be1abc82ddd9002cb61efc1b28c9ee315042efa37960c2d25ae7384553a4d1e8379c03aabd25cebc1c622db31589fff63a491eb3aa68efb850562bd9e9ae2b39de6cf2613a39b92456251d7fc6b414771b8ecfc2f4394e45c1b1bbb40184cf2a6dcf11260c49ba119147c336f6eed063e1af130e0fd3171e87061039b75c1f0740f4e9e8f7317209d5f4709c46b525ec8ff4356728e786b89afb32d10ea83da834fddab9c3b3a58e2ca1201d2407e32f6eb3d4cdd52cb241ef628d87b2352cd877f25b7f3552708964dd67f0d6654baf059660858f9092cf1d59d5ce471c387140be5d7aadc65ac85a911bcc305e3869b8f74d7ca5ae8048df84da46c0753e4ad905d9402c6dd8d8db53560f36073d6f957a1e4f01fb34137ffd3d205a38e8523f2e941c77633a4e0bc3862e7ba9af34f99f218926667004b5b1389fdb8cae078b4209dda93e114d0e528db1987333fcac0444811314e4b0b21cdb849784e6b06b263e0cdd8df2bb0ac470a876366b2c46a2a91f38cda6c6665245899010eab5ac40e6c373469458e051792cfb6e76cab3942070b35e1d5ed68e91247bd8c55e8d8b16ba75ca53c6d7104895f84b853d4a76138bdcdae7959ff820013df431a0f5b57eaa511517c3533c2b63f3bf2cf5fe43f7613ea32980f31b02e5df7e5d2432a309f87bed65ec7f80b2c859d5dcd62566ea589f4122cbe86ccd82d9030757ef5536a31966486e94f8786fc334d77914d01a30e81981b2ee69610f145e88cc0475ecd0af088abc6ed848bcaf2e7b91947ba5d897708713d63c9a3efa400be230dd3d17a2b1470059e2a7e73692c99bbae9b9f2461df9c6f52ebb664447fcd0cdb6ba3bc36341753272f4250b44587e26f1eb18e18f0f17431aa5f348acb1472fa47b885fcbd5d2e02a16d03fc9ffce71392b7f9f363460fc334d6112b7fa3e009231439e7482e53257610f32ce1af7a090353bef8748967bc74c3566fd53c02b5732e5538bcdf9c373e59e5d80518651ec64eaa77cd07929f9fddf0368fc6f478048b79fc625b67348041fb0def769d4ce2e4e54cf6553169f0b631611124638913333a85742666d8e1cd2b113811991c470811677f24bd4b324014c050ebc6b8c27c37994f76a480b404bba980b63fa59ded81b67d1e54ac3b679194adecb5c7109e48fe74705f14feec2426ddcd0ac33b37c78eb46dda00b4fd7ccd2d4a878719f28310307f94e867db3676328818df5edf1dce3e05d4f16cc86f32bf57c8b6162fe6f8018156fc6bede7647828b7eee748a5c2245e4fad98accbf9e183ab3033d6098b14f9a4fde230ff6013835c7bc568d5154bc2327e41a9401fd117ef803c13be793f87df105eae76e8ce79c9fbdaaae1c73123acb09e97a0cfef78a24ff2a89a018f9dea05d8ed0d0d06f900c6e7d0e85c5fecef27ee3e190db84207e270da9596ee1e55dc866a1de25385b4be7bd7333d1667777e7f37c93858ec5ae2459ca5dfd2cc03b629a239ae47761965aed6877ceb0e3314ed4806aab7b41d79ca9ec94a1b112db2c52846c134f194740dd9be7df6cf14ed8bcf59a916b6dd80f4c5180346ccb3dc56fcafd253c95082b932f4ff8f7f61583b772841b6c16c6d818f3589c2f3f2ab055e8e21ab065e2226f06a8c3db6d393fa7d3adfd633af71febcbf2ff70abcc68765f48d598120483b8a8c4055275bd62d4ee966fb03c6c0efb1b7297409c10e04332031f71058e56f8c21cfeb994c4f8df1c3eccfe214975d5c616ae55d17d82ec766caf5c0eb382af73a568714afd8767af96fcf18ff643556eed6a4a354cc9d48b94b5adff96a9dfd2848dec8e4b0d0b69a53b26f0cd6bd8fa9be59363874b51b8f701c5ab36cd8ee0e894d78a17a9b535bfa455f4844cfbf1f95d8334c6d0008d06cc7136805d22c80492f7c6bd2950046037756c793a7b9461f3cfd6c8a64575f156bc44d2efe5e32d8814e14483a6062b8b934c43b260e265cd7c7df9e2e22a0317d7fae412354ef9ac4687c9606063ee40855ecdd95a3f5738aa9fc05796ab498aadee01fef194090b7523f2a0b665a13016ae96328a2452975333dd340cd6492645737e92547e9655c35118342d7b7187bf21e98a7f6d5e7177b1e9011c8c5111cc947d93f0b8513fb84feecfb60275c0813cb84660bb8cfd87505acf3a484f0ba26ae85c02f8344a94b83ddf7c1cc90a36326191922fb64cec49b2a4170f683551cabdd4d63e321ce4b3808061554adc9fd447473682538a6ff468ec8003df23f01a47c7909cc03b11dbe6a6a5880fd07ad8351a03b08e78eede7b4e06e219fafe9a6898fd333c5bdc684d35a3db6835f7a30fc0c1f4d57d9e90b56e96cd3e1b82de4980050730891b5baa92ec9b3e3db4543d14e6db2c298497a36e348f68feb27cf9b88dcb47b63894e1464df303a36f30641f4703884243154c3f63198d84d39df108a30c591e13a79d00d1b19d3b64b27d25316cc366c5bec5249892f3d8af8b5b0540bca936e65119339437f84a0368e44e68ed070655d44bea2117b74d40eb048d4d40e7923f2bb7c472f9756cb6bfd55acf30afa83d692aacf83f86618acc002fdc6b36b5703f07213ac546a0dac9b993f85fa395f53d15828dfada8eef5794c16c32a0dd2cceff199eb51b9344e5acbeb9a57fe5ec46335baaccf890d7e6bb5f111957d1d1be3ed06a041521b60afc3bf1a248d3ac48a3f0dfe1ff2656226e6370468b6a47ed1c07a57f3465847ece9d6daa8adce01494199843b09fd32d1997a2975a03fba72c4e092e54304244c6b1a82b44d8296ae52b3d4d7c4212ec1e8b7a9aa7b0cade39535e4c07e1da6ee72097d41f7c971247b6eaeb0663dedd145c40a01a1548c9f371dfd859234f5750bd55f146b6a26dd20837332c617d53b4023cf17e8c8af1c35e541f3b9d982e759635ff162207f33f8a5e8fded1de6e93a9ff131b8ff31014e8d68140cee2d43cdd0daac6db396dedfdffb2b2fafc6b5f1278a2a6d21bd0db0746d8833d70f0c03dbda1bbb50fad95c31e4b2ab47efe5b292eae3dc40e1964b94d6fe5113d0260c6d173a28977629d265f70eb4296523bcb21eba9ab91af726ccc6349b482b54493e60db5c0549735d91e71946b83d832ac993a248407d983aa61548faac6651d17260e35cc3656efefc2152ce5e9ffbe2cf4c623ceac727ed8ad91c48abbafb64074bd9736eed2d5fc0f360267df7793ab0d01ea289d9aee499abb5eb1efd37cdbbc1e332c5807a9f16f0cf9b8a7a6ef962f01ef09c0d07ed9a679313b8e9e900a9c5aa4806ec77b361de1afc9141184d63d41dac5d15672958d382f450ea5305b0f674114d6b734a658de3c55a57f091f2abbc858e59fa2ac3a0e6614c266225a7513c8a9e106ce434bb9ce15d397bff596a9ec6e5d71c3af4a3bb63d86080e3151ff27ad665b6a792cccfabcc1fde1007f11ec39fdcc4ff1380684577e713dacaf17eecfd6e7d3ea30772ef7563a4dcca0986378e7e34f53934e5d0e807f5663559becdbdae8c3204440183694ff9188f79f6de1fe9a6eaf94a6046e3780bc86802b0cf41b2948223cc83c9af2d0b7277b666522b820ca60658b12fb816b24f42f0174de8bcf03db783a15c57da3630c675d3397bc499ca19cfcbc0143b1d049c0386e1143a46758c9fe206adc9845bb687fa997300fdb0f246ea7c274f975594a7ab7db4d515909b6e9a82ecaa92944ab238dfed49345db0ebbeea52ad5854b2d25c2822630cf804695cd5eb8cb8d6d8d894e7990351433dda5b0c2fbb55ccb0fb75b2c4197aecf56d2b5e4936389f77b11d7b7d1ffff965174080337e4fd08f5dee67b4ffff189527eade9768aa5e0a9ba3f0fab168e22127d715bd4c60d2fafd2a72968cad2e7713e31c803a8b4e49c21c19b1fa245b36d2325d31dcaa1c916aa8a97b13b46cb00166291f134893eea29ccaf9c57b5e672c4c38a00027ff0bc3f79c72175249efd31d99c56c0dab2ac0e13982f89ff359e7359f9c4b0d2de3c59da547b1d82108e194137a4ce2e7324e7cbeff9104604aab07d8902038b2ac2af10a8e9b1171d5dce12eec5adf2d9ca789eddad7e92ef8d4dfa6269a914b105965dce4345919993da1efc2bf965631d4e5de54041a45ae91872261502ce086bd21c4c611955e8173921bee5d0523a6c911f060bda15ad9a900f3290770bdc8ef19355e8694ebe193474721fb9135c64529f02d5576867ed4210c59c99f5226a28a47282b88b09e7b9d71132b1e9b0c7748a16e78c0c5a421204e899e641731b513af5e1ffef6d3b66fd9c2964f56964c4f96c565cade92775ce026ccca3a5228ddbe6c4b8cb74fbeb829152c74a1883cbc4af6a9cddc038a05ad1d50e95b123a3d5b5a62af6de9fbc1bf9b210a5df65caa6a6f4d9292c3160b9067327068ef3ebe9271ee7e070e26c051f83b6305bd308462ea3e81e583b30fd2a39acacb81b545fb6600939fb44fb728e7165810f13a5002d5741bb6c2ef8f5e26878b1a334bdf62182e0a3cf652c43a194ef66d9a06233b31512354fa02ce4e4ed73185cf71cb23e0de2e06942133dc9464dcaf9679ae93957f18682e80617e846041153ce0d7e8fa36939bd9fac4dcab987a7cc99d9e358c5cd5a127c930e9f663e4df83b664f829630bb65f2096ca522ab0ffb5b2f9162c09b6579ebe37b675b3c2ee6306adb82ef8b74edba7733169062808c4bb9412315cce4e1b928e9e9d68d888ce82d8621346e5930f958a265fad0704bb95861684254515aee2f45bbc706c4d91efc428031d892afb1f79be51a260bd775edab40cbb99f62a7fbcf70ac4febeb937bdcf832b79197adca036a2f862c0225fe6cbbf8b2d2dfd4be1d534c83c22941567dfba1eb82426fd4296e6715b76412f565971848aed6db828ca6292b8fc19b291f63db21816d1d10b9adc9d4856dec54515a959ab28dfa180f2590924f1459a6ca6cbe855b4b35303d83739c1bf90db4b7de75e5c52e00929bdb4e38cf380a44eadccd2bae950b52c46a319be9bc5cc3c460cc98b47eeaca8818958520ef7582ae73c756411830f6b7db9c0f95ace78abb303701b67fdf5ff6090d7478b8d78ff8cb70dd2d07bb2306acaa1c2df9db89db5c679781afe620cb95f656ef4ec04cab1a35ca2bfd0a725a4c62082823cedb6287dcf309ab00b768f8f1435e6e22ef6f0fd1f45d06d19e3406fa870d09a3f7a925af588eebabc08d932c63e052895829b7357f8fd2fe2dcf92f11808cb50cfded085d3569a7878a9abf59922eedbe29bf99262960ada487c53c61b9edd80cde25c043f8485d72180ffc3744b652a2ea28bee5c8b355d007c84f64aee4b0a9a54baf5781e344c36bcf1c3677367c972ebd7ad6fa88a9bff01203ced76ec1f4afcafab145eeb427be0d5ec40cc6dd982a23db7ebcd3aca4be133caf4dace4ea396e0cf094497e6104d583cfe074b484931efaa4cb59843a0355a093aad5c306217cdb83e6fcadc38ccc376329aa081b7874e67392991387a9229cac3d6a2a85e67892e690cabc49ad5615c37b01d6f7f3e05d4eb71a7feb0a0f493d64827d3ecd2001e3713ee5ba0e6a351a3b88cbf7f4129fc80a394a2cf304cdbc6e5f1803a72230e55603a15c1741367751cbd0d0e72cc1944f1c4c3537bcbaaafaa4ebb4b94a8c7287c864ff2939ba6c4fc33750302ebcdd908edcbe9f9628ed1d72396774dca3d8f76d077e7ccb1c6a5d9af1a41d3e38597361e33daefc6128322db0d08c74022c193faa7788f54e936f91e4a4d231573a04fcf5df3eae76f50c8c1208f0766dc5620d6f3e8444cc956ad2f7abf3425d4bd1a12a8a82d06d087a7a628005dc26a957995303e11790e074b21857e60a1591172df65a2023bf3d14f79ac86a1768a89d2a93596ed187aaf763a48899785c5c8e102c88d82d6245edb9666b0dd440560f31285024ee12c7f2a30e7044955e64d4ba347af7a509e868aaa3fc9c8123b181cd9f26792a351509026eed490e29854fc656ef0ee0e13d83b4c8c6e0094457aab926abbebb8139e02a341b0cc7fcf20ab370fc684856cf576c64246e7c8b5120d90616dec534b76a750953692c65ea5f26034cc240dc39a9cec7575bcb0355b39899c7eb86c30a96994d9dd5454e5fec06b779a00b21de785fd86315bcaf3b366f702fe86013c653ed41ccddf4bd426deb8b2a673739a59438745bebbd5e6f1f4aaa0d39182f29ac409f739de0eb2cb6d73fade046aad041a6e134378e7c18e51a41fcf60a0dd55efa1d3342a49d0ab0fd712fe6f9aea37185706db5bd8cf72269aefdffa3b5bab74060b76af609ca161c6a4e4bf70757acb5307a4879910f182a5b790acbf64f1bffa5972709d392730b4dcc671006098a6c048fa52a8e5a73f5db1da964ce568a52432dcafde4d2a3353e5c2ecdf486e1d53de37b5acbe9a7610b07d4fe94685f4a2cf6f317c726425737b6fe19726ee08dc07a6a0c5eb8095bcff0f9ab4150e9a4dfbdb61a31f7f54e92aaed0b900105014f45698119d08df2695441a7e9834575a65fee8c333da16c8cc57774cd29a8edbc20d4a5dc060d5b29810bde3691a064b56db3610470b21349b615670aba9bbeb9ed5b5161d4fc34a225fac57234e0e1cac8eb78928cfe9dd38c892092fddeb029c5d70cdc6375d972815ed2ce0d8fb87b9a8846ddde708ab31fc1e1bb81d113d27c4fd68fe93fd0e92a14b2a2f0743eb8ddfd13419f3ff3346e2de9e6d909e9c7768ad5144b5771fb9cee3b038f496b6aff7803a67b2e65fcdc2fdf93b13da04007258a9bebb75160562bb501ae74493c78fe13e86a97e3725ab9363ef2b2e1f07b4e07fb52eec5b039f12e3de8152b5bc35b828800a02635735c5469e8f04ddeee0baa92bd293598eafb59f338e3d202c45cc85d2869399484245de609320e6b3e15c73b7d0dcc664135bf84b320e9788b14f3f9d16b3611f24a56bf33fc9af127bc92d9a2bb1734e809ed451add042e6703a0d62cabc0afa2f7c79f432024160c573b6945e20268bb63d4102e30b378a873dfaf4d5e0a6078ec31e89e3fddc900db20c80ed5baeb0d941a582fa8d74aef856a99e2d154f2597fedba24c0e05164d0b21f9312e7247460dbf8b6116bdb2f04feb7e74b0caddfd5d0e0e62f653b6cf54abb8ef2e68d1b0436c3200f5107ca6e961799381dc3f807db0fc8c5af3d0d49370e7e47e5f31842b0cbe36cf043176bb74fee3498007ea7f9af514ed51c39018ee5ece5ab29adddf09bf50e1def7040f33303f657f48865dd242cc53370f8a317a8bb8affe9e1cb172a9c35bcf0eaaec0209478a882d43b25e4937687117c0005a92c97df10c2233473a3234952ba95a2d11104f0deea9be620addfe4f632a23e71239006e11c8d98a959ed3435f10b52f489762703bd3eeef24632916b00645a02377a3d96e8483ee5df4e9e7d0c13f3bbfe31ae9246b992555d455af9c870545ed197229194b083192821c8713df32850326732c5a5377c1534063a225053ef5425b7e055c495f12fab356ea207adebad45f074c09696c12603adda2b83dd434a2d1f4a4bcbf8c200aa7bf9d55931a59f829c6b3007834b06776bd652a529d372716ee3724a72b3622421acf5e7594a1e2d52c5dc778f4830038740517957d9c6c0ddfdf111e4941e5f1c89ff3d689a5d77e00d7b2cac968fd7570f94a6107c144fd444b08c7794e04f309368297b2dbb27ff072f95027d00894418f9e7d739c2c7662a55c75b8ffdabb2a992d8b0d341e7da6b79466b61535e409ae3475d6c11a514e01f7fa50e73ae6ec0493a1731c0f76e8b574c936412d1bc9622713f6f945851d1419a69d4180fe48888a6eff0b4d19d8e41da1ff876cc4f6febf5ce6f46751ffe873ac35a398be2b152a73ed39dd393a22a8be5a7c8e1c9d3598ba191130029a2bd317c5aa7292bf1c335c13936687bbd8c49f769bfc0e0e012cbad4a02e85ab396bc48189f82456ef6271ee6feb5fa5de94c8bf18df207a17d48890a64890ee7f30aa1ef81d9a35c0afebc34999b5ab2c5e92d7f0a4efd3d63bcce424ac4dd0613d765064e7568c70ea2a328a65495288cd8c8a14598014b565035c723bcc46c6b94265371a264dc815eba25ba3407117905caa104e27ab483654ab5af35117e94635087a9830b7c18d20f9711469408abbd029ae0939b8213b062192ab8fb201ccaac6defd3febf10fb4dd2dbce78c6aec42f9ec9cb5c790ee9fc2275350e163f583dc64456a0451046a99a49d2b787a83a14c2513fa8da96b01223dd8c8bdabd0420f03632f4502a34a86df32ffaa49be0056f2d816378a0475034488432b227b1262cc76c23a14482b6f625b259aba27953f705d8b98665ea4cb1c137c0b11a992b1a9ac6145b7efb2f034df11f74492f99f17be89f80d08050f365a419db80cac94a6d2addd4cdef4f03a4e8d0fc6ca40ce76a211d3f9efbad717ad83a3220ed554197d99a1e87a76a16e968376df4d47c20f4e408a0be421483fc1902bd2fe652562f6820dc99cfc47ce228687b467b5f34231964ba6ae2361f6043a02f8db1e2826f532d0b70d2cba944390117bfb81a3e8594b37a25883e0df3d7a8f792ee714b023cccc7ca6ff03782c3503b0ee022fbc7ea9c2a6d6bea9804277e3cbad7c8094c852f874758f7e7969e17982854aa689f7ab0006c424de14c16eb94265c55eff361b57a038f32242a205c448e29b88b3fc23ca797430f70b93fda13f797d27d61c33488889a7cf8998080717247875c5fcf232a6d99047499a6de246aba17b96c45cd4530ca5b187d4abbd234b0ffb2fade958ee097520e874e754a23360279e284c713d4e8decae6848071b1915028a9ff2abaa1954c598a6d1b379cff6bbabcc85257b61c6707cd6fa6e6f56a082b6f7134399325e24178736ee8829fcddf4b89a080e97d71f78f1d935295af1c46bb638a9f513f7e00d0ca0e1fc074e0db5adf72a8e4b7ff624b417b9411f1d43c24ab2659714559be5549e64aa2bf207be8b3eb61e16475839c4714ac4178fe389496b745603091204e978f2c3f4f203aab0bced259a3899c3df5893412f78d1bfdfad910963418e01ee6a8b4bdfa30129dcfe5032d7a11033a604e885a20d79e97b68a01d20e29f9fa967175bcb35789db29be1dfb4cba3a486b10a65f6f967f712b3931e970cc3754be41e485959ee47196baddfec42ff5783611f7f8f889a71ba763e2984da6e1fc5b6892bcf6239931e618559971444d67cbe8a068afe0deea1fe3849dc3d6ed0a32bdedd5b477501d8d13e31a13ea6dd291587e6e3870294335a56be5965e525246c8f13f4d75ad2bbc65c3f4982b06dad5b8403faa1f3f514a5c593be5cfe4c83ab10dd2a078479a447391fc42d69b5f7a289938897952140bab67fa8914c9c9111731b98095850d674063de5bcd3e62f80a5c116909bc81677979fc6caeca3d1149e1e9abb572e95e47a15345c8815452979b90900b28b036e23980a9be03d020d873791a84f6ecadcee94a08cb64cb6cb4288041916970d5dceea497d1b303d6564ee63f6bcebe423805d4c120c1fb168456764a64ee26bb844a676f7c8c6827d7da1481da6368e135a828909d30753cd362b91fce8c38ff5a81832a4d96f3e8af09446ac461c1d46344c0b0e0c3dc98f9d777060ba18e4cb10cc38ae13100c55c2418b3675348387703c7ec5754fb5f90ba87457787e92a729e55f6063af15274e8cdf92999823173f46b362572e2f587aa576a76113d6b611dc1682345b80a11321ac448a7b88b13f61c4f930ef1245ef41a1533581f72cae4f896cf952dc2f4442a10962aa219ff38c4558a6b6e9a71c3600665cb7949381ae8e6b5c800db0579bf44977e7ec92fe7ec532836ebb7bfd70349254d5d5427b77894214444ed86c73099b352fe24b3fc8e69e3500d21437d3dffc07cda03f248bf555f1e83678daed88a5f3ec390bfbe5555d86f2fd4e845b33e8ffb75897b0d751de3139ff34302efa79335338eb34be44b4f8f61578a02d669dd99ee28cdbe920f998dce21bea72fc50249bbe829fbd048c74c6a3fb335e885a05a4483d06c20546a9ef53a2c93d2b562fd6a669c57a2d09d38792eb6b0ca931e43125a3fcc359115f5e10d4b41ddce5d1742a8379bfc0dee43eebc10e0dc598cf69eb6592db148b353cde4645fedf865c44b730137a5fa528b8c7b34c5d9dc17a587c582c3e4b005a8b768a40ff7f2d3beac43461e5a057b1f901946a4da2c46c5e1af3bcdaf209397294e052caf4669882f7c5aea4d3d75416b8891e261afa0591b0f689e9516fea9acd759f804f1d8b0650651780b2d8be852bf60499a55a2f6455e72ef14f54235fcc726708248bfb5641a215b3b03fe60d7e13ce6267db534c1972d186b052d41123f589e15a07d03721c299b9682c20e991a298abbdd44b3f995a88db90bc245f4ddf4a2e21d392081cf722ab5f6260142d9cdd76ad58ed46127ed8e8d1d5e34a509cd875dddb5f43348fb1a8d4f8cef3396fe902a69cff86b6c0f293eed74ee2a69d9b2758b0b2b2e671857b4944556c0deb5d96f7e724da1d9e8872e18a5e14a6bb9c5fc726846b1a7d2ac2e207105a3c653880e47b6049596670c3f016b39422b1f0033e23c45be9262b3d50804076e3e1ee3d7358af9f438b4b6497a286d6a5a39be2b4ce5436d73e674ce5099f0aaf00aed4aeeeed752d35bc8b7ea4ce004c0128df0501846428fa540b941a57</script> <div class="hbe hbe-content"> <div class="hbe hbe-input hbe-input-default"> <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass"> <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass"> <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span> </label> </div> </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
<categories>
<category> 总结 </category>
</categories>
<tags>
<tag> 总结 </tag>
<tag> 题解 </tag>
</tags>
</entry>
<entry>
<title>杂题1</title>
<link href="/2024/07/30/%E6%9D%82%E9%A2%981/"/>
<url>/2024/07/30/%E6%9D%82%E9%A2%981/</url>
<content type="html"><![CDATA[<p>$$<br>\clubsuit\bigstar\blacksquare\maltese\blacklozenge\spadesuit<br>$$</p><h2 id="ARC162F-Montage"><a href="#ARC162F-Montage" class="headerlink" title="ARC162F Montage"></a>ARC162F Montage</h2><p>分讨可以先把题目限制转化为任意一个子矩形,若它的左上和右下都是 1,则它的左下和右上必须是 1。</p><p>我一开始想的是不断把一些矩形的四个角的 1 “按”上去,但是很难处理两个矩形端点形成的矩形是否合法。</p><p>然后想着“挖”一些零。如果挖一个零,则它向上和向右必须有一个全都是 0,向左和向下同理。</p><p>但是,这一些全都是 0 的部分也会产生不合法。感受一下,是有一对 1 在这一行或列导致的非法。</p><p>所以应该把以这个 0 为中心的十字都变成 0。</p><p>那么现在就是要不断放一些矩形上来,每个矩形都是通过全 1 矩形用上述规则挖 0 得出的。</p><p>矩阵与矩阵之间的合法性好办,让一个矩阵上边的另一个矩阵不能到这个矩阵的左边就好了(大概意思)。</p><p>然后这样就会得到从右上到左下的一溜矩阵。发现每行至多有一个连续段,所以直接 dp。</p><p>设 $f_{i,l,r}$ 表示第 $i$ 行的连续段是 $[l,r]$,$1\to i$ 行合法的方案数。</p><p>空行呢?不 dp 空行,用每个状态 $f_{i,l,r}$,把 $n-i$ 个空行和 $l-1$ 个空列插进去的方案数做系数贡献答案。</p><p>这个系数相当于 $n$ 行选 $i$ 行和 $m$ 列选 $m-l+1$ 列。</p><hr><h2 id="CF1830B"><a href="#CF1830B" class="headerlink" title="CF1830B"></a>CF1830B</h2><blockquote><p>给出两个长度为 $n$ 的序列 $a,b$。</p><p>求有序数对 $(i,j)$ 的数量满足 $a_i\times a_j=b_i+b_j$。</p><p>$1\leq n\leq2e5,1\leq a_i,b_i\leq n$。</p></blockquote><p>既然 $a_i,b_i\leq n$,所以 $a_i\times a_j=b_i+b_j\leq2n$。</p><p>观察一下这个等式的大小 $s$,$a_i$ 和 $a_j$ 相乘是 $s$,$a_i$ 和 $a_j$ 都是 $s$ 的因数。</p><p>一开始想到 $O(n)$ 枚举 $s$,$O(\sqrt n)$ 枚举因数。但是没办法 $O(1)$ 去计算出 $a_i$ 和 $a_j$ 为某个已知值时合法的 $(i,j)$ 数量。</p><p>那换方法。观察到 $a_i$ 和 $a_j$ 要么同时小于 $\sqrt n$,要么一个大于 $\sqrt n$ 一个小于 $\sqrt n$。</p><p>那么枚举一个 $i$,如果 $a_i$ 大于 $\sqrt n$,那么枚举变量 $aj\leq\sqrt n$ 且 $a_i\times aj\leq 2n$,此时要求 $a_j=aj$ 时 $b_j=a_i\times aj-b_i$ 的 $j$ 的数量。</p><p>这个想办法预处理就好。</p><p>如果 $a_i$ 小于 $\sqrt n$,其实可以也只枚举 $aj\leq\sqrt n$。因为大于 $\sqrt n$ 的会在 $a_{i’}=aj$ 时统计。</p><p>思路已经很明朗了:$a_i$ 和 $a_j$ 都小于 $\sqrt n$ 的 $(i,j)$ 数对,会在 $i$ 统计一次 $j$ 统计一次,算重一次(最终除以 2)。</p><p>$a_i$ 和 $a_j$ 一个小于一个大于 $\sqrt n$ 的,会在大于 $\sqrt n$ 那里统计一次。</p><p>还要留意把自己和自己匹配这一种多余情况。</p><p>时间 $O(n\sqrt n)$。</p><hr><h2 id="ABC269G"><a href="#ABC269G" class="headerlink" title="ABC269G"></a>ABC269G</h2><blockquote><p>给出 $n$ 张卡牌和一个数字 $m$。第 $i$ 张正面写着 $a_i$,背面写着 $b_i$。$\sum(a_i+b_i)=m$。</p><p>初始牌都是正面朝上。你可以把某些牌翻面。</p><p>记 $s$ 为每张牌朝上的面的数字之和。输出 $m+1$ 行,第 $i$ 行表示 $s=i-1$ 时最小翻面次数。</p><p>$1\leq n\leq2e5,0\leq m\leq 2e5,0\leq a_i,b_i$。</p></blockquote><p>一开始想的是判定性。把全部牌的较小值翻到上面。那么最小的 $s$ 就是此时上面数字之和。</p><p>接下来再翻的话,意义就是在 $s$ 的基础上加一个非负数。翻第 $i$ 张加的就是 $|a_i-b_i|$。</p><p>这个玩意不可能很快做出来。观察一下性质:既然和为 $m$,那 $\sum|a_i-b_i|\leq m$。</p><p>不同的 $|a_i-b_i|$ 不超过 $\sqrt m$ 个。可以用单调队列优化(多重背包)或二进制拆分优化。</p><p>加上最小翻牌次数的话,一开始全翻上去了,$ans_0=\sum[a_i>b_i]$。</p><p>如果要翻一个牌,如果一开始就是小在上,代价就是 1。</p><p>否则,相当于翻成较小的面又翻回来了,代价是 -1(因为在 $ans_0$ 里加了一个 1)。</p><p>这样固然可以做。但不如……</p><p>每个 $i$,可以用 $1$ 的代价加上 $b_i-a_i$。</p><p>然后直接单调队列优化 dp。时间 $O(n\sqrt m)$。</p><hr><h2 id="ABC215G"><a href="#ABC215G" class="headerlink" title="ABC215G"></a>ABC215G</h2><blockquote><p>给一个长度为 $n$ 的序列 $a$。输出 $n$ 行,</p><p>第 $k$ 行表示等概率随机在 $a$ 中取一个长度为 $k$ 的子序列,序列里面值不同的元素个数的期望。</p></blockquote><p>遇到期望题,先列式子,然后拆贡献,然后优化。</p><p>这个第 $k$ 行就是 $\dfrac{\sum_{每一种子序列}值不同的元素个数}{C_n^k}$。考虑求上边的这玩意。</p><p>有两种拆贡献方法:一是算出算出对于每个“……个数”有多少种子序列满足是这个个数。这个完全看起来不可做。</p><p>二是观察一个子序列的“值不同的元素个数”是包括好多种元素的,有多少种元素就是几。好多子序列的“值不同的元素个数”之和是包括好多种元素,每种元素有好多次。</p><p>求出对于第 $i$ 种元素,在全部子序列中它会被计算多少次。也就是有多少个子序列,第 $i$ 种元素出现在这个子序列里。</p><p>容斥。设第 $i$ 种元素出现了 $a_i$ 次。</p><p>若要求有多少个子序列,这种元素不出现在这个子序列里,当然是 $C_{n-a_i}^k$。那么它就出现在剩余的 $C_n^k-C_{n-a_i}^k$ 里。</p><p>前面写的上边那玩意(设有 $m$ 种元素)就是 $\sum_{i=1}^m C_n^k-C_{n-a_i}^k$。</p><p>考虑优化。如果两种元素出现次数相等($a_i=a_j$),那他们上边这玩意是一样的,可以算一次用两次。</p><p>那到底要算几次?$a$ 有多少个不同就算几次。</p><p>又因为 $a$ 所表示的是原序列每种元素的出现次数($\sum a_i=n$),所以不同的 $a$ 最多有 $\sqrt n$ 种。</p><p>剩下就很简单了。时间 $O(n\sqrt n)$。</p><hr><h2 id="ABC319G"><a href="#ABC319G" class="headerlink" title="ABC319G"></a>ABC319G</h2><blockquote><p>一个 $n$ 阶无向完全图删掉 $m$ 条给定边。问 $1\to n$ 最短路数量。</p><p>$n,m\leq2e5$。</p></blockquote><p>首先考虑朴素暴力。bfs 求出 $dis[x]$ 表示 $1\to x$ 的最短长度。</p><p>然后求出 $f[x]$ 表示 $1\to x$ 最短路数量。是 $f[x]=\sum_{dis[y]+1=dis[x]}f[y]$。</p><p>分别优化。观察第一部分,第一个优化是维护一个没到达的点集 $uv$,每次在这里找新点。</p><p>接着对于每个想要扩张的点 $x$,不可能去遍历真图上的边,于是遍历删掉的边 $(x,y)$,此时要加入队列的就是全部不与 $x$ 相连、属于 $uv$ 的点。</p><p>那可以先把全部与 $x$ 相连、属于 $uv$ 的点从 $uv$ 里取出,然后遍历 $uv$,清空 $uv$,加回去。不难发现这样是 $(n+m)\log n$ 的。</p><p>第二部分类似,画个分层图然后每个点就是上一层全部点的 $f$ 之和减去一些 $f$。好办。</p><p>这道题的核心就是因为不可能遍历真图边,然后就遍历删的边,再想对策。时间 $O((n+m)\log n)$。</p><hr><h2 id="P6078-CEOI2004"><a href="#P6078-CEOI2004" class="headerlink" title="P6078 [CEOI2004]"></a>P6078 [CEOI2004]</h2><blockquote><p>$n$ 种糖果,第 $i$ 种有 $m_i$ 个。问有多少种吃糖方案,满足吃掉的糖果数属于 $[a,b]$?</p><p>$1\leq n\leq 10,1\leq m_i\leq 1e6,1\leq a,b\leq 1e7$。时限 $0.1s$。</p></blockquote><p>记号:多项式 $F(x)$ 里 $x^i$ 的系数是 $[x^i]F(x)$。</p><p>首先可以构造 $n$ 个多项式,第 $i$ 个多项式 $x^0\to x^{m_i}$ 的系数都是 1,其余系数是 0。</p><p>那么全部卷起来,结果多项式里 $x^i$ 的系数就是吃 $i$ 个糖果的方案数。</p><p>时间肯定过不去。用生成函数凑一凑。设普通型生成函数 $F_i(x)=1+x+x^2+…+x^{m_i}$。</p><p>可以得到 $F_i(x)$ 的封闭形式<br>$$<br>F_i(x)=\frac{1-x^{m_i+1}}{1-x}<br>$$</p><p>全部乘起来<br>$$<br>\frac{\Pi(1-x^{m_i+1})}{(1-x)^n}=(1-x)^{-n}\Pi(1-x^{m_i+1})<br>$$<br>记 $\Pi(1-x^{m_i+1})$ 的结果为多项式 $G(x)$。虽然它的最高次数很大,但是项数很少,不超过 $2^n$ 个,可以 dfs 求出 $G(x)$。</p><p>定义广义组合数<br>$$<br>{n\choose m}=\frac{n(n-1)…(n-m+1)}{m!}<br>$$<br>根据牛顿二项式定理把 $(1-x)^{-n}$ 展开<br>$$<br>\begin{aligned}<br>(1-x)^{-n}&=\sum_{i=0}^{\infty}{-n\choose i}(-x)^i\\<br>&=\sum_{i=0}^{\infty}\frac{(-n)(-n-1)…(-n-i+1)}{i!}(-x)^i<br>\end{aligned}<br>$$<br>分子里可以拿 $(-1)^i$ 出来,右侧 $(-x)^i=((-1)x)^i=(-1)^ix^i$。两个 $(-1)^i$ 相乘等于 $(-1)^{2i}=1$。原式变为<br>$$<br>\sum_{i=0}^{\infty}\frac{n(n+1)…(n+i-1)}{i!}x^i=\sum_{i=0}^{\infty}{n+i-1\choose i}x^i<br>$$<br>先把这个东西放着,记为多项式 $S(x)$。看一下答案求的是啥,是两个多项式卷起来后 $x^a$ 到 $x^b$ 的系数之和,即<br>$$<br>\sum_{i+j\in[a,b]}[x^i]S(x)\times[x^j]G(x)<br>$$<br>我们不考虑分别求出 $x^a$ 到 $x^b$ 的每一个系数。转而计算全部系数的和。</p><p>因为 $G(x)$ 可以算出来,那就枚举 $G(x)$ 的里的项。记枚举 $x^k$ 的系数。</p><p>我们知道,$x^k$ 的系数会和 $S(x)$ 里的某几项相乘、求和、加到结果多项式里的 $x^a\to x^b$ 之间,</p><p>哪几项呢?当然是 $x^{a-k}\to x^{b-k}$ 项啦。</p><p>$x^k$ 的系数和 $S(x)$ 里的 $x^{a-k}\to x^{b-k}$ 项相乘、求和的结果就是下面这个式子<br>$$<br>[x^k]G(x)\sum_{i=a-k}^{b-k}{n+i-1\choose i}<br>$$</p><p>好!那考虑这样一种式子的结果。<br>$$<br>\sum_{i=l}^r{n+i-1\choose i}=\sum_{i=l}^r{n+i-1\choose i}+{n+l-1\choose l-1}-{n+l-1\choose l-1}<br>$$<br>又根据 ${n\choose m}={n-1\choose m}+{n-1\choose m-1}$,当 $i=l$ 的时候 $\sum$ 里头的那个组合数可以和 ${n+l-1\choose l-1}$ 加起来变成一个新的数 $P$。</p><p>然后 $P$ 又能和 $i=l+1$ 加起来……直到最后,变成了<br>$$<br>\sum_{i=l}^r{n+i-1\choose i}={n+r\choose r}-{n+l-1\choose l-1}<br>$$</p><p>总结一下,我们要求 $(S\cdot G)(x)$ 的 $x^a\to x^b$ 的系数之和。我们枚举 $G(x)$ 的次数 $k$,$S(x)$ 中参与贡献的是 $x^{a-k}\to x^{b-k}$ 项。</p><p>然后我们把这个贡献式子列出来,提出公因数 $[x^k]G(x)$,用它乘上一堆组合数的求和。我们又把这一堆组合数变成了两个组合数相减。</p><p>先 $O(2^n)$ 算出 $G(x)$,然后 $O(2^n)$ 枚举 $G(x)$ 里的项,$O(1)$ 算组合数,相乘,累加答案。总共是 $O(2^n)$。</p><p>好!结束了吗?没有!注意到模数是 2004!算不了组合数!</p><p>有一个 Trick 可以当作结论记:<br>$$<br>\frac{a}{b}\mod M=\frac{a\mod bM}{b}<br>$$<br>此时 $n+r\choose r$ 可以转化为 $n+r\choose n$,进而:<br>$$<br>\frac{(n+r)(n+r-1)…(n+r-n+1)}{n!}<br>$$<br>分子暴力乘,对 $n!\times2004$ 取模。</p><hr><h2 id="P2797-amp-CF626E"><a href="#P2797-amp-CF626E" class="headerlink" title="P2797 & CF626E"></a>P2797 & CF626E</h2><blockquote><p>给出长度为 $n$ 的序列,你可以选若干个数,求选出数的平均数减中位数最大值。</p><p>$1\leq n\leq1e6,0\leq a_i\leq 1e6$。</p></blockquote><p>既然有中位数,考虑分奇偶求。首先升序排序。</p><p>对于一个长度为奇数的子序列,枚举它中间的点。那剩下一定是紧挨 $x$ 左侧和 $n$ 的。总长为 $2i+1$。</p><p><img src="D:%5C2008verser%5CPiCForp%5C1.png" alt="1"></p><p>暴力枚举 $i$ 可以得到一个 $O(n^2)$ 的算法。太劣了。</p><p>中位数不变,假设平均数为 $x$,如果 $i$ 增加 1,那么平均数的分母就加 2,分子就加两个 $a_?$(下标可以用 $n,x,i$ 表示出,这里不写了)。</p><p>新的平均数记为 $x’$,也就是加上了 $\Delta x=x’-x$。</p><p>因为这两个 $a_?$ 之和的大小随着 $i$ 增加而减小。那么可以感受到,平均数增加的那个 $\Delta x$ 不断减小。</p><p>那么 $x$ 就呈现先升后降。</p><p><img src="D:%5C2008verser%5CPiCForp%5C2.png" alt="2"></p><p>那么三分。奇数部分就搞定了。</p><p>对于偶数的情况,我们没办法继续枚举中位数。设选了 $p_1,p_2,…p_k,p_{k+1},…,p_{2k}$。考虑枚举较左侧的那个中位数 $p_{k}$。</p><p>再想想能不能证明偶数的每种选择方式都能纳归到一类特定、易求的方式。</p><p>但是一通推导之后发现如果仅仅是移动某几个选择的位置的话,根本发现不了任何有用的结论。</p><p>那就考虑加一个或者减一个位置……转化到奇数情况?一通(查看题解)之后就可以知道减掉 $p_{k+1}$ 不选时,答案不更劣。</p><p>证明考虑把前后的答案相减,再利用答案永远非负的性质加以说明。</p><p>即每种最优/不最优的偶数选法可以转化为一种不更劣的奇数选法。奇数的选法一定包有答案。</p><p>做做做就完事了。时间 $O(n\log n)$。</p><hr><h2 id="P5923-IOI2004"><a href="#P5923-IOI2004" class="headerlink" title="P5923 [IOI2004]"></a>P5923 [IOI2004]</h2><p>思考的时候我很好奇如果两个障碍段相交是什么情况。然后就有了这种情况:</p><p><img src="D:%5C2008verser%5CPiCForp%5C3.png" alt="3"></p><p>我一开始是想着构造上面这幅,答案应为 $[1,8]$ 和 $[4,11]$。</p><p>然而我又看了一眼发现不对劲。正确的输出应当是下方这个。上方的深红色和浅红色是两个框段,下方这才是三个障碍段。</p><p>依据题意,三个都要输出。我们猛然发现,两个相交段相交大小必须为 1。</p><blockquote><p>证明:设框段 $[l,r]$ 和 $[a,b]$( $a\leq r$ )。(可以结合上面打叉的那个图,直接看加粗字)</p><ul><li><p>首先我们先严格地证明 $[a,r]$ 的值域是连续的(下面略去写值域)。(想题的时候我直接相信了这个结论,因为感觉上很对,你也可以跳过)</p></li><li><p>可以反证,若 $[a,r]$ 不连续,因为 $[l,r]$ 连续,所以 $[a,r]$ 里缺的数<strong>出现在</strong> $[l,a]$。</p></li><li><p>若 $[a,r]$ 不连续,因为 $[a,b]$ 连续,所以 $[a,r]$ 里缺的数<strong>出现在</strong> $[r,b]$。</p></li><li><p>那它又不可能出现在两个地方。所以与已知事实相悖,$[l,r]$ 连续。</p></li></ul><p>既然 $a_r$ 是 $a_{l\to r}$ 的 $\max$,那 $a_r$ 当然也是 $a_{a\to r}$ 的 $\max$。</p><p>既然 $a_a$ 是 $a_{a\to b}$ 的 $\min$,那 $a_a$ 当然也是 $a_{a\to r}$ 的 $\min$。</p><p>结合这两点以及 $[a,r]$ 值域连续,所以 $[a,r]$ 是一个框段。</p><p>类似地,<strong>你一共可以证明 $[l,a]$ 和 $[a,r]$ 和 $[r,b]$ 是三个两两相交大小为 1 的框段!</strong></p><p><strong>也就是说任意两个相交大小大于 1 的框段,我们可以拆成三个两两相交大小为 1 的框段。</strong>证毕。</p></blockquote><p>先想想一个框段 $[l,r]$ 的充要条件。一通搞可以得到这个式子:<br>$$<br>a_{l}=\min(a_{l\to r}),a_r=\max(a_{l\to r})\\<br>a_l-l=a_r-r<br>$$<br>一、考虑一种 $n^2$ 的暴力。</p><p>枚举障碍段的左端点 $l$,从左端点开始向右扩展右端点。然后套这个式子。</p><p>但是这样会做到非障碍段的框段。固然可以全搞下来去重,更好的方法是从后往前枚举 $l$。</p><p>这样的话第一个找到的框段一定是障碍段。我们可以将变量 $Rlimit$ 赋值为第一个框段的左端点。</p><p>接下来再枚举新的 $l$,此时的右端点就有了一个小于 $n$ 的枚举上界 $Rlimit$。时间大大减小。</p><p><del>然后就<a href="https://www.luogu.com.cn/record/134126844">过</a>了? Hack 见<a href="https://www.luogu.com.cn/discuss/728080">这里</a>。</del></p><p>二、观察上边那个 $a_l-l=a_r-r$。不妨将每个位置 $i$ 的 $a_i-i$ 求出来。每次把 $a_i-i$ 相同的那些挖出来做。</p><p>仿照暴力的枚举顺序。枚举左端点 $l$,现在就是要找到最小的 $r\gt l$,满足 $l,r$ 分别是 $a_{l\to r}$ 的 $\min,\max$。</p><p><img src="D:%5C2008verser%5CPiCForp%5C4.png" alt="4"></p><p>我们设 $f_i$ 是 $i$ 向左最远到哪里 $a_i$ 还是最大值。$g_i$ 是 $i$ 向右最远到哪里 $a_i$ 还是最小值。</p><p>那就是要让 $f_r\leq l,g_l\geq r$。注意到那些 $r$ 是被我的 $l$ 遍历过的,考虑沿途用 DS 做些手脚。</p><p>每次查询“小于等于 $g_l$、$f$ 值小于等于 $l$ 的“、最小的 $r$。把 $[l,r]$ 算入答案。按照 $r,f_r$ 投到平面上就是一个矩形查询的问题。</p><hr><h2 id="CF1120C"><a href="#CF1120C" class="headerlink" title="CF1120C"></a>CF1120C</h2><blockquote><p>给定长为 $n$ 字符串 $s$,有一个打字机,每次你可以花费 $a$ 的代价打出一个字符,或花费 $b$ 的代价打出一个已打出的字符串的子串,求打出 $s$ 的最小代价。</p><p>$1\leq n,a,b\leq 5e3$。</p></blockquote><p>一种简单的 dp,设 $f_{i}$ 表示做完 $[1,i]$ 的最小代价。</p><p>那要么是 $f_{i-1}+a$ 转移过来,要么是 $f_{j}+b$ 转移过来,其中 $[j+1,i]$ 是 $[1,j]$ 的字串。</p><p>观察一下,发现随着 $j$ 的减小,第二种转移从可以到不可以。严格来讲,</p><ul><li>如果 $j$ 可以,那么 $\forall j\lt j’\leq i$,$j’$ 可以。</li><li>如果 $j$ 不可以,那么 $\forall 1\leq j’\lt j$,$j’$ 不可以。</li></ul><p>很容易证。那么设 $g_i$ 表示从 $i$ 往左延伸多少是可以的。即最长的后缀 $[j,i]$ 的长度,满足在 $[1,j-1]$ 内出现。</p><p>处理 $s_{i,j}$ 表示 $[1,i]$ 和 $[1,j]$ 的最长公共后缀。然后就有 $g$ 了。</p><p>做完了。$f$ 的转移可以优化成 $O(n)$,但没必要了。$s$ 的转移是 $O(n^2)$ 的。</p><p>这个优化是是发现 $f$ 单调不下降,所以直接取最左侧的点转移过来就好了。</p><hr><h2 id="CF520C"><a href="#CF520C" class="headerlink" title="CF520C"></a>CF520C</h2><blockquote><p>给一个 $n$ 位的十位数,在数字间加 $k$ 个 ‘+’ 号使形成一个加法表达式。</p><p>求全部可能的加法表达式的值之和。$1\leq n\leq1e5$。</p></blockquote><p>暴力枚举 $i,j$,计算 $[i,j]$ 作为整段在全部可能的表达式中的出现次数。用 $[i,j]$ 的值乘上这个次数加进答案。</p><p>次数是个组合数。这是 $O(n^2)$ 的。 感觉不太好优化,这个暴力限制太多了,要求两侧都是加号。</p><p>计划计算 $a_i$ 对答案的贡献。$a_i$ 作为一个数字的某一位只跟右侧的加号有关。</p><p>枚举 $i\lt j\leq n$ 表示在 $j$ 前边加 ‘+’。其余 $[i,j]$ 以内不准填。</p><p>此时剩下了 $n-1-j+i$ 个随便填的位置,剩 $k-1$ 个加号要填。</p><p>所以此时 $a_i$ 对答案的贡献是:<br>$$<br>\sum_{j=i+1}^n 10^{j-i-1}\times a_i\times {n-1-j+i\choose k-1}<br>$$<br>把 $a_i$ 提到左侧,发现右侧的这个可以直接预处理。$O(n)$ 做完。</p><hr><h2 id="CF519E"><a href="#CF519E" class="headerlink" title="CF519E"></a>CF519E</h2><p>发现答案可以用倍增 LCA 维护。然后稍加分讨即可。</p><hr><h2 id="CF768D"><a href="#CF768D" class="headerlink" title="CF768D"></a>CF768D</h2><blockquote><p>共 $n$ 种物品,每种有无限个,一天会等概率获得一种物品。求最早在第几天获得全部 $n$ 种的概率不小于 $\frac{p}{2000}$。</p><p>$q$ 组询问,每组询问给定 $p$。$1\leq n,q,p\leq 1000$。</p></blockquote><p>看了题解吓我一跳。</p><p>容易想到一个依赖天数的 dp。设 $f_{i,j}$ 表示前 $i$ 天获得 $j$ 种的概率。<br>$$<br>f_{i,j}=f_{i-1,j-1}\times\frac{k-j+1}{k}+f_{i-1,j}\times\frac{j}{k}<br>$$<br>我发现,如果终止概率很接近 1 时,天数非常非常大!然后我开始根据 dp 的图开始考虑加速……</p><p>不会!一看题解,$p\leq 1000$?就是说终止概率不大于 $1/2$!</p><p>暴力得到,当 $n=1000$ 时,$f_{7303,n}\gt0.51$。就是说天数小于 $7303$。根据这个特性直接 dp 即可。 </p><p>一个<strong>经验</strong>:感觉题不可做时看看数据范围。</p><hr><h2 id="CF856C"><a href="#CF856C" class="headerlink" title="CF856C"></a>CF856C</h2><blockquote><p>$T$ 组数据,每组数据给出 $n$ 和长为 $n$ 的序列。</p><p>定义一个序列是否是 11 的倍数为这个序列全部数字首尾相接构成的数字是否是 11 的倍数。</p><p>求给出序列的全部排列中是 11 的倍数的排列个数。</p><p>$1\leq T\leq 100,1\leq n\leq 2000,1\leq a_i\leq 10^9,\sum n\leq 2000$。</p></blockquote><p>如果一个数是 11 的倍数,当它的<strong>奇数数位上的数字之和</strong>与<strong>偶数位上的数字之和</strong>之差(奇偶差)是 11 的整数倍。</p><p>那么我们关注的只是每个数的奇偶差,以及每个数的最高位在序列中算作奇数数位还是偶数数位(记作最高奇偶性)。</p><p>奇偶差可以在输入的时候求出。记 $a_i$ 是第 $i$ 个数字奇数位减偶数位的值。</p><p><strong>我们可以根据最高奇偶性和 $a_i$算序列的奇偶差。</strong>这是后面的前提。</p><p>我们可以设一个 dp,$f_{i,j}$ 表示在序列前 $i$ 个数构成的全部排列中奇偶差为 $j$ 的排列个数。(如果奇偶差为负就加成正的,方便 dp)</p><p>考虑分讨第 $i$ 个数的最高奇偶性转移。</p><p>这玩意转移不了。状态是关于前 $i$ 个数的排列,而这个排列毫无规律可言。</p><p>那么我们观察一下最终答案的构成。</p><p>长度偶数的 $a_i$ 是不影响后面数字最高奇偶性的,奇偶性的变化出现在全部长度为奇数的数字。</p><p>每个奇数长度的数字的左边好多的数字跟它最高奇偶性一样,直到另一个奇数长度的数字。(红点是奇数长度,黑点是偶数的)</p><p><img src="D:%5C2008verser%5CPiCForp%5C6.png" alt="6"></p><p>那么我们可以先求出全部奇数长度的数字构成的序列的满足某一奇偶差的排列数量,然后把偶数长度的数字一个个加上去。</p><p>设 $f_{i,j}$ 表示前 $i$ 个奇数长度数字构成的序列,奇偶差为 $j$ 的排列数。还是缺乏信息不好转移。</p><p>再观察一下这一问题的答案构成。设有 $n1$ 个奇数长度数字。</p><p>这些数字里面,第一个最高奇偶性为奇、第二个为偶、第三个为奇……</p><p>有 $\lceil \frac{n1}{2}\rceil$ 个最高奇偶性为奇,$\lfloor \frac{n1}{2}\rfloor$ 个偶。记为 $qwq,ovo$。</p><p>像下边这张图,这是 $n1$ 个奇数长度的数字,红色最高奇偶性是奇,黑色是偶。</p><p><img src="D:%5C2008verser%5CPiCForp%5C7.png" alt="7"></p><p>原本这个转移不了的 dp 蠢死了!</p><p>我们现在就是要让 $n1$ 个数填进这些空里!上一个 dp 中每次我们只关注前 $i$ 个空。此时我们不妨直接考虑全部空。</p><p>设 $f_{i,j,k}$ 表示考虑到 $n1$ 个数的前 $i$ 个,填了 $j$ 个红色(最高奇偶性为奇)(黑色就是 $i-j$ 个咯),奇偶差为 $k$ 的排列个数。</p><p>这下子就好转移了,分为 $i$ 填红还是黑。然后乘上选这第 $i$ 个的方法数。</p><p>如果当前填红色(最高奇偶性为奇),上一步应当填了 $j-1$ 个红色,这一步有 $qwq-(j-1)$ 个红色可选。</p><p>上一步奇偶差加上 $a_i$ 等于 $k$,上一步奇偶差为 $k-a_i$。</p><p>黑色类似。<br>$$<br>f_{i,j,k}=<br>\begin{cases}<br>f_{i-1,j-1,k-a_i}\times(qwq-(j-1))+\\<br>f_{i-1,j,k+a_i}\times(ovo-(i-j)+1)<br>\end{cases}<br>$$<br>接着我们将 $n2$ 个偶数长度的数字<strong>加上去</strong>。</p><p>考虑第一张图,偶数长度的数字跟右边第一个奇数长度的数字最高奇偶性一致。</p><ul><li><p>我们可以把第 $i$ 个加到一个奇数长度的数字之前,$i$ 的最高奇偶性与这个数字一致。</p></li><li><p>也可以加到一个已加入的偶数长度的数字之前,$i$ 的最高奇偶性和这个偶数长度的数字一致。</p></li><li><p>特别地,它可以加到最末尾。</p></li></ul><p>设 $g_{i,j,k}$ 表示前 $i$ 个加进去,有 $j$ 个最高奇偶性为奇,奇偶差为 $k$ 的方案数。<br>$$<br>g_{0,0,i}=f_{n1,qwq,i}<br>$$<br>分讨第 $i$ 个的奇偶性转移。</p><p>以奇为例,对应上面三点:</p><ul><li>这个奇数长度的数字有 $qwq$ 种可选。</li><li>已加入的、为正的数字有 $j-1$ 个。(算上 $i$ 共 $j$ 个)</li><li>若奇数长度数字是偶数个。</li></ul><p>偶类似。<br>$$<br>g_{i,j,k}=<br>\begin{cases}<br>g_{i-1,j-1,k-b_i}\times(j-1+qwq+[n1\bmod2==0])+\\<br>g_{i-1,j,k+b_i}\times(i-1-j+ovo+[n1\bmod 2==1])<br>\end{cases}<br>$$<br>答案即<br>$$<br>\sum_{i=0}^{n2} g_{n2,i,0}<br>$$</p><hr><h2 id="ARC068C"><a href="#ARC068C" class="headerlink" title="ARC068C"></a>ARC068C</h2><blockquote><p>有长为 $m$ 的数轴,上面有点 $0,1,…,m$。有 $n$ 个区间,第 $i$ 个区间覆盖点 $[l_i,r_i]$。</p><p>一个点从 $0$ 开始跳,每隔 $d$ 跳一下,经过 $0,d,2d,3d,…$,超出 $m$ 停止。</p><p>输出 $m$ 行,第 $d$ 行表示每隔 $d$ 跳一下,一共会经过多少不同的区间。</p><p>$1\leq n\leq 3e5,1\leq m\leq 1e5,1\leq l_i\leq r_i\leq m$。</p></blockquote><p>首先暴力做法,枚举 $d$ 然后跳。这样需要知道每个点被哪些区间覆盖了。枚举区间的话是 $O(nm\ln m)$,把区间加到点上很耗空间。</p><p>接着分析,如果每个区间都加满的话,每个 $d$ 的答案都是 $n$。此时答案的总和是 $nm$,所以如果想正解的话不可能每次 +1。</p><p>然后我束手无策了,然后开始乱想。</p><p>另一个很显然的结论是如果一个区间长度大于等于 $d$,它一定会贡献到 $d$。但是感觉没啥用。</p><p>然后看了题解。</p><p>解法一</p><p>考虑用数学表示出来。如果一个区间 $[l,r]$ 贡献到 $d$,则<br>$$<br>l\leq k\times d\leq r<br>$$<br>变形<br>$$<br>\lfloor\frac{l-1}{d}\rfloor\neq\lfloor\frac{r}{d}\rfloor<br>$$<br>意味着我们可以枚举每个区间,随着 $d$ 的增加,看看有哪些 $d$ 满足这个条件,然后加到 $ans[d]$ 上。</p><p>根据数论分块的经验,满足条件的 $d$ 呈一段一段,段个数的数量级是 $\sqrt m$。</p><p>那么就可以数论分块+差分完成了。</p><p>时间 $O(n\sqrt m)$。</p><p>解法二</p><p>观察上面的暴力。</p><p>我们之所以要枚举区间,而不能一开始用差分算出每个位置被多少个区间覆盖然后跳的时候直接加,是因为有可能连续的两次跳动在同一个块内。算重。</p><p>能否避免连续跳动在同一块内?</p><p>联系另一个结论,长度大于等于 $d$ 的区间一定贡献到 $d$。长度小于 $d$ 的区间不会连续两次跳动都在。</p><p>那么对于每个 $d$ 我们可以把区间分为两类:长度大于等于 $d$ 的、小于 $d$ 的。</p><p>大于 $d$ 的一定算。</p><p>小于 $d$ 的可以像第二句话那样做。</p><p>随着 $d$ 的增加,长度小于 $d$ 的区间不变少。那么用一个树状数组维护差分的区改单查即可。</p><p>时间 $O(n\log m+m\ln m\log m)$。</p><hr><h2 id="CF853C"><a href="#CF853C" class="headerlink" title="CF853C"></a>CF853C</h2><p>挺板的一道 DS。</p><p>直接用可持久化权值线段树维护一个区间内的关键点数量。</p><p>然后一堆东西乘起来。注意不要漏和重即可。</p><hr><h2 id="CF785D"><a href="#CF785D" class="headerlink" title="CF785D"></a>CF785D</h2><blockquote><p>给长为 $n$ 的由 ‘(‘、’)’ 构成的序列,求有多少个长为 $2m$ 的子序列满足:前 $m$ 个和后 $m$ 个分别都是 ‘(‘ 和 ‘)’。</p><p>$1\leq n\leq 2\times10^5$。</p></blockquote><p>首先有一种很简单的方法:钦定一个 ‘(‘ 必选,枚举再选 $i$ 个 ‘(‘,然后组合数。</p><p>如果位置 $i$ 是 ‘(‘,设 $1\to i$、$i+1\to n$ 分别有 $s1$ 个 ‘(‘、$s2$ 个 ‘)’。<br>$$<br>\sum_{i=0}^{\min(s1-1,s2-1)}{s1-1\choose i}{s2\choose i+1}<br>$$<br>观察这个式子。联系范德蒙德卷积公式<br>$$<br>\sum_{i=0}^k{n\choose i}{m\choose k-i}={n+m\choose k}<br>$$<br>当 $s1-1\leq s2-1$,原式为<br>$$<br>\sum_{i=0}^{s1-1}{s1-1\choose i}{s2\choose i+1}<br>$$<br>把左边选 $i$ 替换为 $s1-1-i$,再把枚举的 $i$ 换成 $i+1$<br>$$<br>\sum_{i=1}^{s1}{s1-1\choose s1-i}{s2\choose i}<br>$$<br>凑成公式的形式<br>$$<br>\sum_{i=0}^{s1}{s1-1\choose s1-i}{s2\choose i}-{s1-1\choose s1}{s2\choose 0}<br>$$<br>右边的值为 $0$。所以答案就是<br>$$<br>{s1-1+s2\choose s1}<br>$$<br>$s1-1\gt s2-1$ 的情况类似。然后就可以直接求了。</p><p>使用线性求逆元可以做到 $O(n)$。</p><hr><h2 id="ABC331G"><a href="#ABC331G" class="headerlink" title="ABC331G"></a>ABC331G</h2><blockquote><p>盒子里有 $n$ 张 $m$ 种卡片,第 $i$ 种卡片有 $c_i$ 张。$\sum c_i=n$。</p><p>每次均匀随机选一张,再放回去。求拿出过的卡片包含全部种类所需要的取出次数的期望。</p><p>对 $998244353$ 取模。</p><p>$1\leq n,m\leq 2e5,c_i\gt0$。</p></blockquote><p>首先观察到,对于任意终止局面,最后取出的卡片的种类,一定是第一次被取出。</p><p>那么我们只需要知道每种卡片第一次被取出的时间 $S_i$,剩下每个空位置都可以选前面任意一种卡片。</p><p>这个思路是行不通的。</p><p>发现答案等于“每个卡片第一次被取出的时间”之中的最大值。即 $\max S_i$。</p><p>因为 $S$ 是不确定的。即,求 $S$ 里面最大值的期望。</p><p>联系 Min-Max 容斥:</p><p>设 $U=\{1,2,…,m\}$。$U$ 是全部种类的集合。<br>$$<br>E(\max_{i\in U} S_i)=\sum_{T\subseteq U}(-1)^{|T|-1}E(\min_{i\in T} S_i)<br>$$<br>此时我们要算的就是,任选一个种类集合 $T$,(接着我们开始对全部卡牌进行游戏,每种卡牌都会有一个 $S$ 值),求出这些种类里面<strong>最早被取出的那个种类的取出时间</strong>(即最小的 $S$)<strong>的期望</strong>,求和。</p><p>当然还有系数 $(-1)^{|T|-1}$。我们先考虑上面那个怎么求。</p><p>上面那个就是计算独立事件第一次发生的期望次数。</p><p>进行一次实验,这个独立事件发生的概率显然是 $\dfrac{\sum_{i\in T} c_i}{n}$。</p><blockquote><p>独立事件发生概率为 $p$,第一次发生期望次数 $E=\frac{1}{p}$。</p><p>证明:<br>$$<br>\begin{aligned}<br>q&=1-p\\<br>E&=\sum_{i=1}^\inf iq^{i-1}p=\sum_{i=1}^\inf (i-1+1)q^{i-1}p=\sum_{i=1}^\inf(i-1)q^{i-1}p+\sum_{i=1}^\inf q^{i-1}p\\<br>&=(\sum_{i=1}^\inf iq^ip)+1=(q\sum_{i=1}^\inf iq^{i-1}p)+1=qE+1=(1-p)E+1\\<br>&\because E=(1-p)E+1\\<br>&\therefore E=\frac{1}{p}(p\neq 0)<br>\end{aligned}<br>$$</p></blockquote><p>期望就是<br>$$<br>\dfrac{n}{\sum_{i\in T} c_i}<br>$$</p><p>我们的式子变成了<br>$$<br>E(\max_{i\in U} S_i)=\sum_{T\subseteq U}(-1)^{|T|-1}\times\dfrac{n}{\sum_{i\in T} c_i}<br>$$<br>使用一个常见的拆贡献方法,设 $\sum_{i\in T} c_i=x$,则原式变为<br>$$<br>\sum_{x=1}^n F(x)\times\frac{n}{x}<br>$$<br>$F(x)$ 是一个负或正的整数。因为原式中全部 $\frac{n}{x}$ 相等的项可以合并同类项。$F(x)$ 就是合并完以后他们的系数。</p><p>如果把 $F(x)$ 求出来就可以 $O(n\log n)$ 计算答案了。之所以带 $\log$ 是因为我不会线性求逆元。</p><p>现在考虑求 $F(x)$。因为 $F(x)$ 表示的是若干个 $c$ 相加为 $x$ 的一些系数,考虑卷积。</p><p>一开始我们有 $n$ 个数列,第 $k$ 个数列为:<br>$$<br>[0,0,…,0,1,0,0,…0,0]<br>$$<br>第 $c_k$ 项是 1,其余是 0。</p><p>数列第 $x$ 项代表在 $\{k\}$ 这一个集合的全部子集 $T\subseteq\{k\}$ 中,$\frac{n}{x}$ 那一项的系数,也就是 $F(x)$,只不过我们此时的 $U=\{k\}$。</p><p>那么显然,此时 $T$ 只有 $\{k\}$ 一种取法,而 $(-1)^{|T|-1}=1,\sum_{i\in T} c_i=c_k$,所以第 $c_k$ 项是 1,其余是 0。</p><p>这一部分的关键在于,每个多项式都有隐含的一个意义:$U$ 的元素(就是上面式子里那个 $U$,最终 $U$ 应当为全集,初始第 $k$ 个多项式 $U=\{k\}$)。</p><p>当我们把两个数列(多项式)卷起来。设这两个数列的 $U$ 分别等于 $A,B$,成绩结果为 $C$。</p><p>乘积多项式的意义<strong>应当</strong>是当 $U=A\cup B$ 时的 $F(x)$。</p><p>但我们发现这两个卷起来以后得到的结果是把 $T\subseteq A$ 和 $T\subseteq B$ 排除在外的!</p><p>所以我们要让 $C=A\times B+A+B$。</p><p>但我们发现,对于 $-1$ 的处理,在 $A$ 中一个因子是 $(-1)^{|T1|-1}$,在 $B$ 中一个因子是 $(-1)^{|T2|-1}$,两个合起来应当为 $(-1)^{|T1|+|T2|-1}$。</p><p>但是我们做的运算是 $(-1)^{|T1|-1}\times (-1)^{|T2|-1}=(-1)^{|T1|+|T2|-1}$。</p><p>所以 $C$ 应当等于 $-(A\times B)+A+B$。</p><p>总结一下:</p><p>我们要求<br>$$<br>\sum_{x=1}^n F(x)\times\frac{n}{x}<br>$$<br>所以要求 $F$。每个多项式第 $x$ 项代表对于它的 $U$ 的全部子集 $T\subseteq U$,对 $(-1)^{|T|-1}\times\dfrac{n}{\sum_{i\in T} c_i(=x)}$ 求和,$\frac{n}{x}$ 那一项的系数。</p><p>此时我们把这 $n$ 个多项式启发式卷起来。卷不是正常的卷,$F$ 卷 $G$ 等于 $-(F\times G)+F+G$。</p><p>最终的多项式就是要求的 $F(x)$。</p><p>时间 $O(n\log^2n)$。</p><hr><h2 id="ABC325G"><a href="#ABC325G" class="headerlink" title="ABC325G"></a>ABC325G</h2><blockquote><p>给出一个长为 $n$ 的字符串和非负整数 $k$。你可以进行以下操作若干次,使得最终字符串长度最小。</p><p>选择一个字串 <code>of</code>。然后删掉 <code>of</code> 以及这之后的 $i$ 个字符。$i$ 由你决定,但要满足 $0\leq i\leq k$。</p><p>输出这个最小长度。$1\leq n,k\leq 300$。</p></blockquote><p>做完以后感觉很简单。但是做的时候绕了个大大大大大的弯。</p><p>观察最终局面。在原字符串中的表现就是有若干连续段被删除。</p><p><img src="D:%5C2008verser%5CPiCForp%5C8.png" alt="8"></p><p>设 $F(l,r)$ 为子串 $[l,r]$ 的答案。</p><p>如果 $F(l,r)$ 不能全部被删完(也就是有黑色部分),则一定存在一个 $i$,$F(l,r)=F(l,i)+F(i+1,r)$。</p><p>那做法就很显然了:</p><ul><li>判断 $[l,r]$ 能否被删完。若能,$F(l,r)=0$。</li><li>否则,$F(l,r)=\min\{F(l,i)+F(i+1,r)\}$。</li></ul><p>然后我一开始将这两个视作完全独立的问题。结果试了很久都没有试出咋判断。</p><p><del>后来啊,我有些绝望了。直到那一秒,我灵光一现。</del></p><p>我现在要找到对于可以完全删完的串的必要条件。观察 $l$,它一定要是 ‘o’。</p><p>后面要有一个 ‘f’ 与它匹配。设第 $i(a_i=f)$ 位与 $l$ 匹配。</p><p>那么 $[l+1,i-1]$ 需要删完。$[i+1,r]$ 里有一些是这一次匹配顺便删的,剩下要删完。</p><p>想到这里我才明白。</p><p>第一个条件意味 $F(l+1,i-1)=0$。第二个意味 $F(i+1,r)\leq k$。</p><blockquote><p>本来我使用了一个新的函数描述能否删干净。完全没有想到用第二个 $\leq k$ 这个东西。</p></blockquote><p>判断的方法已经很显然了。枚举 $i$,然后判断 $F$。</p><p>时间 $O(n^3)$。</p><hr><h2 id="ABC326E"><a href="#ABC326E" class="headerlink" title="ABC326E"></a>ABC326E</h2><blockquote><p>有一个 $n$ 面骰子,写着 $1\to n$,每个面朝上概率相等。</p><p>进行一种游戏,投若干次骰子,如果一次投出的点数小于等于此轮中前面投出的任意一次,结束游戏。</p><p>得分为除了最后一次全部的点数之和。求期望得分。$1\leq n\leq 3e5$。对 $998244353$ 取模。</p></blockquote><p>很能体现我思路的缺陷,陷入一种方法一直出不来。</p><p>一种结束局面一定是一个上升子序列,并且最后一次是在最后一位之前的。</p><p>然后我的思路就是枚举最后一位是什么,那么就可以表示出以这一位结束时对答案的贡献。然后考虑优化。</p><p>优化过程中有这样一种式子我一直没办法 $O(1)$ 求<br>$$<br>\sum_{i=0}^n{n\choose i}k^i<br>$$<br>然后就不会做了。事实上这一题的方法非常简单。<del>(要不然他是 E 题)</del></p><p>答案是每个 $A_i$ 乘概率加起来得到的。直接求这个概率。是“$i$ 做出贡献的概率”。<br>$$<br>p_i=\frac{1}{n}\sum_{i=1}^{i-1}p_i<br>$$<br>就好了。</p><hr><h2 id="P1365"><a href="#P1365" class="headerlink" title="P1365"></a>P1365</h2><blockquote><p>给定由 ‘o’,’x’,’?’ 构成的长度为 $n$ 的字符串。’?’ 分别有 0.5 的概率变成 ‘x’,’o’。</p><p>一个字符串的价值为每个极长 ‘o’ 段的长度的平方之和。求给出字符串期望价值。</p><p>$1\leq n\leq 3e5$。</p></blockquote><p>一个字符串的价值为:$()^2\times(\frac{1}{2})^{()}+()^2\times(\frac{1}{2})^{()}+…$。</p><p>考虑枚举这个长度,然后计算全部系数之和,相乘。</p><p>我没有想到低于 $O(n^2)$ 的做法。继续考虑,枚举极长段的右端点。</p><p>那么左端点一直可以延伸到上一个 ‘x’ 出现的位置 +1。</p><p>然后有一些位置是不能当作左端点的,比如:<code>...oo...</code>,此时右边这个 <code>o</code> 不行。</p><p>紧接着感受一下,右端点是可以从 $i$ 移动到 $i+1$ 的。维护:<br>$$<br>\begin{aligned}<br>s=()^2\times(\frac{1}{2})^{()}+()^2\times(\frac{1}{2})^{()}+…\\<br>f=()\times(\frac{1}{2})^{()}+()\times(\frac{1}{2})^{()}+…\\<br>p=(\frac{1}{2})^{()}+(\frac{1}{2})^{()}+…\\<br>\end{aligned}<br>$$<br>小力分讨就好了。</p><hr><h2 id="CF858F"><a href="#CF858F" class="headerlink" title="CF858F"></a>CF858F</h2><blockquote><p>$n$ 个点 $m$ 条边简单无向图,求最大的三元组数量,记三元组为 $(a,b,c)$。</p><p>三元组要满足:$a$ 到 $b$、$b$ 到 $c$ 有边。并且对于任意两个三元组,它们一共有四条边,这四条边两两不同。</p><p>$1\leq n,m\leq 2e5$。</p></blockquote><p>挺好想的。wtc 曾经说过,没有部分分的题要创造部分分。</p><p>对于图上题,考虑它的 dfs 生成树。</p><p>先想想一棵树怎么做。手玩一下发现能覆盖到的边还是挺多的,最多剩一条。</p><p>为了证明这个结论,考虑叶子的父亲,如果它的全部儿子和他的连边都能算入答案的话,必定是两两儿子相连,因为他向父亲只有一条边。</p><p>我们发现,如果他儿子数量为奇数,多出来的要和他和他父亲那条边配对。而对父亲的影响仅仅是少了一个儿子。</p><p>那做法就呼之欲出了。从下往上做上去即可。每次找出一个点全部儿子(如果与他的边已经占用就不要),然后两两匹配即可。</p><p>放到 dfs 树。dfs 树是没有横叉边的。刚才是在上(父亲)计算下面(儿子),类似,此时考虑对于每个非树边在深度较浅的点计算。</p><p>我们发现刚才的那套理论可以照搬过来!</p><p>这题就做完了。时间是 $O(n+m)$ 的。</p><p>同时我们找到了一个没用性质:任意图中,不能算入答案的边数不超过 1。</p><hr><h2 id="ABC332G"><a href="#ABC332G" class="headerlink" title="ABC332G"></a>ABC332G</h2><blockquote><p>第 $i$ 种球有 $a_i$ 个,共 $n$ 种。</p><p>第 $i$ 种箱子最多共装 $b_i$ 个球。共 $m$ 种。</p><p>第 $i$ 种球在第 $j$ 种箱子里至多放 $ij$ 个。</p><p>问所有箱子放的球数最多是多少。</p><p>$1\leq n\leq 500,1\leq m\leq 5e5,0\leq a_i,b_i\leq 1e12$。</p></blockquote><p>很容易建出网络流模型。从上至下依次有 $1,n,m,1$ 个点。但是图实在太大了。</p><p>考虑求最小割。那就是要把上下共 $n+m$ 个点划分为两类。</p><p>将它表示出来。设上下的全集分别为 $X=\{1,2,…,n\},Y=\{1,2,…,m\}$。</p><p>上下分别选了 $P\subseteq X,Q\subseteq Y$ 归于源点集合。(以下所有式子所有求和条件略去这两个)<br>$$<br>\sum_{i\in X/P}a_i+\sum_{i\in P}i\sum_{j\in Y/Q}j+\sum_{i\in Q}b_i<br>$$<br>这个东西的最小值不好求。因为既要考虑 $P$ 也要考虑 $Q$。</p><p>观察到数据范围很小,考虑枚举一点东西来把问题划分成独立的两个问题。枚举中间项左侧的 $k=\sum_{i\in X}i$。</p><p>有 $0\leq k\leq n(n+1)/2$。</p><p>那么对最左项的限制就是选一些求和为 $k$ 的 $i$,作为 $P$。剩下的 $a_i$ 加起来作为这一项。</p><p>写在求和的条件上就是:<br>$$<br>\sum_{i\in X/P,k=\sum_{i\in X/P} i}a_i+k\sum_{i\in Y/Q}i+\sum_{i\in Q}b_i<br>$$<br>下面一行要么纳入源点集合,在第三项计算。否则在第二项计算。</p><p>发现此时下面一行对于是否纳入源点集合不受约束。贪心地让它取较小的,使得整个式子最小。<br>$$<br>\sum_{i\in X/P,k=\sum_{i\in X/P} i}a_i+\sum_{1\leq i\leq m}\min(ik,b_i)<br>$$<br>那么可以分别求出左侧和右侧对于每个 $k$ 的最小值,相加。</p><p>左侧可以用 $O(n^3)$ 的 DP 算出,右侧可以发挥智慧写出 $O(n^2+m)$。这部分比较简单。</p><p>总时间复杂度为 $O(n^3+m)$。</p><hr><h2 id="ARC125E"><a href="#ARC125E" class="headerlink" title="ARC125E"></a>ARC125E</h2><blockquote><p>第 $i$ 种糖果有 $a_i$ 个,共 $n$ 种。</p><p>第 $i$ 个小朋友对于每种糖果都最多吃 $b_i$ 个,全部糖果一共最多吃 $c_i$ 个,共 $m$ 个小朋友。</p><p>求每个小朋友吃到糖果数量之和的最大值。</p><p>$1\leq n,m\leq 2\times 10^5,1\leq a_i,c_i\leq 10^{12},1\leq b_i\leq 10^7$。</p></blockquote><p>从上一题过来的。做法一致。</p><p>式子是:<br>$$<br>\sum_{i\in X/P}a_i+\sum_{1\leq i\leq m}\min(b_i\times |P|,c_i)<br>$$<br>此时左项排序后贪心选,右项和上一题一致。时间复杂度 $O(n\log{n}+m\log{m})$。</p><hr><h2 id="ABC311G"><a href="#ABC311G" class="headerlink" title="ABC311G"></a>ABC311G</h2><blockquote><p>给出 $n\times m$ 的矩阵 $a$。求权值最大子矩形的权值。</p><p>一个矩形的权值定义为它里面全部数的和乘上最小值。</p><p>$n,m\leq 300,0\leq a_{i,j}\leq 300$。</p></blockquote><p>枚举最小的数 $a_{i,j}$。则在满足 $a_{i,j}$ 是最小值时,包含 $(i,j)$ 的矩形一定是极大的。</p><p>这些矩形不好枚举,也难以计算究竟有多少个。</p><p>考虑添加一些限制。</p><p>枚举上下边界。那么我们枚举列,以这一列的最小值为待定矩形的最小值,然后向左右拓展为一个极大的矩形。</p><p>发现这样拓展出的矩形与上面做法的矩形形成双射。</p><p>拓展可以采用二维 ST 表+二分实现。时间复杂度 $O(n^3\log{n})$。</p><p>哦还可以单调栈。时间是 $O(n^3)$。</p><hr><h2 id="CF1292B"><a href="#CF1292B" class="headerlink" title="CF1292B"></a>CF1292B</h2><p>观察到关键点的生成在两个坐标上独立,且类似于一次函数。</p><p>再次观察数据范围发现关键点的两个坐标每次都会增加,并且至少扩大到自身的一倍。所以最终关键点数量不超过 64 个。</p><p>那么枚举起始点和拓展方向即可。</p><p>时间复杂度 $O(\log^2{B})$。$B$ 指值域。</p><hr><h2 id="CF1304C"><a href="#CF1304C" class="headerlink" title="CF1304C"></a>CF1304C</h2><p>考虑映射到平面。现在从左至右若干个区间,从 $y=m$ 开始向右走,每次 $y$ 可以加一或减一或不变。能否经过全部区间。</p><p>直接维护每个时刻可以到的 $y$ 值。在平面上看一看容易知道它一是一段区间。那么不断维护这个区间就好了。</p><p>$O(Tn)$。</p><hr><h2 id="CF1313D"><a href="#CF1313D" class="headerlink" title="CF1313D"></a>CF1313D</h2><p>跟联考的一道题做法类似。</p><p>观察到覆盖每个点的区间很少。设 $f_{i,s}$ 表示 dp 到第 $i$ 个小朋友,覆盖它的区间的选择状态为 $s$,前 $i$ 个小朋友最多开心数。</p><p>那么如果枚举了 $s$,转移过来的 $f_{i-1,t}$ 必须满足 $t$ 和 $s$ 有一些位置相同(这些位置所代表的区间覆盖了 $i$ 和 $i-1$)。</p><p>用一个辅助数组预先处理一下,转移就可以不用枚举两次压缩的状态。</p><p>小朋友数量虽然是 $10^9$,但是可以把一些连续、相同的区间打包计算。这里要开动一下脑筋,按差分类似的东西搞一搞。</p><p>容易证明打包过后小朋友数量是 $O(m)$ 级别的。</p><p>时间 $O(mk2^k)$。</p><hr><h2 id="CF1322B"><a href="#CF1322B" class="headerlink" title="CF1322B"></a>CF1322B</h2><blockquote><p>给出 $n$ 和长为 $n$ 的非负整数序列 $a$。</p><p>输出<br>$$<br>\oplus_{i=1}^{n-1}\oplus_{j=i+1}^n(a_i+a_j)<br>$$<br>$1\leq n\leq 4\times 10^5,1\leq a_i\leq 10^7$。</p></blockquote><p>挺好玩的题。想了半个多小时最后总算做出来了。</p><p>考虑按位计算贡献。枚举第 $k$ 位,习惯性从零开始,考虑计算有多少对 $(i,j)$ 满足 $a_i+a_j$ 的第 $k$ 位是 1。</p><p>根据这个对数的奇偶性可以算贡献。</p><p>初始我计划从 $k-1$ 转移一些信息过来,深入想了想感觉不会。</p><p>再考虑表示出满足条件的数学式子,看看能否用数据结构维护。</p><p>此时只保留每个数低 $0\to k$ 位。</p><p>若 $a_i+a_j$ 的第 $k$ 位是 1,根据此时的数字都只有后 $k$ 位,得出,两个数的和必须落在 $[2^k,2^{k+1})$ 和 $[2^{k+1}+2^k,2^{k+2})$ 之间。</p><p>那么可以枚举 $i$,把这个不等式解一下,用权值线段树回答。时间是 $O(n\log^2{V})$。</p><p>题解都是 $O(n\log{n}\log{V})$。因为各个 $a$ 先后顺序无影响,可以排序后双指针。xht 的博客讲的很明白:</p><p><a href="https://www.luogu.com.cn/blog/xht37/solution-CF1322b">https://www.luogu.com.cn/blog/xht37/solution-CF1322b</a></p><hr><h2 id="CF1322C"><a href="#CF1322C" class="headerlink" title="CF1322C"></a>CF1322C</h2><p>考虑只有边 $(i,i)$ 是什么情况。根据 $\gcd$ 的交换律结合律,把 $S$ 分类,再分别考虑。</p><p>对于 $S=\{1\},\{2\},\{3\},…,\{n\}$,这一些 $f(S)$ 的 $\gcd$ 是全部 $c_i$ 的 $\gcd$。设这一部分答案为 $x$。</p><p>那么对于每个 $i$,$c_i$ 可以改写成 $c’_i\times x$。</p><p>此时对于任意一个大小大于 $1$ 的 $|S|$,$f(S)$ 可以提出公因数 $x$。即 $\forall |S|>1,x|\gcd f(S)$。</p><p>那么答案就是 $x$。</p><p>转化到一般二分图。它跟上面的区别在于左侧点的出点集合或许有交。</p><p>再思考一个简单情况,两个左侧的点出点集合有交。设不交、交、不交三部分的 $c$ 值和为 $A,B,C$。</p><p><img src="D:%5C2008verser%5CPiCForp%5C9.png" alt="9"></p><p>此时答案应为 $\gcd(A+B,B+C,A+B+C)$。设答案为 $x$。则应有 $x|(A+B),x|(B+C),x|(A+B+C)$。</p><p>想一会发现并没有什么进展。但因为这题肯定有解,对着样例猜测一些结论性的东西。</p><p>比如把一个连通块里全部 $c_i$ 直接 $\gcd$ 起来。样例一说明这是错的。</p><p>为什么错呢?我们把样例一的全部 $S$ 写出来,发现 $c_1,c_2$ 一直是作为整体出现的,两者不能只出现一个。</p><p>然后对着样例三一通补丁,发现只要把这些作为整体出现的数加起来合并成一个数,然后把全部数 $\gcd$ 起来很有道理。</p><p>因为如果不整体出现的两个数,一定存在两个集合分别包含这两个数,然后这两个集合是要 $\gcd$ 一下的,根据前面提公因数的方法感觉很对。</p><blockquote><p>设这两个数为 $a,b$。则必然存在有一个点连了 $a$ 没连 $b$。</p><p>还有另一个点:</p><ul><li>连了 $b$ 没连 $a$,此时答案包含 $\gcd(a,b)$。</li><li>既连了 $b$ 也连了 $a$。此时答案包含 $\gcd(a,a+b)=\gcd(a,b)$。</li></ul><p>所以答案一定有 $\gcd(a,b)$。</p></blockquote><p>上面那个图中间两个就是要合并起来的。</p><p>写完发现是对的。时间 $O(n+m)$。</p><hr><h2 id="CF1325D"><a href="#CF1325D" class="headerlink" title="CF1325D"></a>CF1325D</h2><blockquote><p>输出长度最短的序列,元素异或和为 $u$,和为 $v$。</p><p>$0\leq u,v\leq 10^{18}$</p></blockquote><p>虽然是绿题,看了题解才会。一直以为是按位考虑。想了很久没有想出当 $u$ 某一位为 1,$v$ 这一位为 0 怎么处理。</p><p>一些题可以从显然的一些情况入手分析。</p><p>当 $u\gt v$,显然是 -1。当 $u=v=0$,构造空集。当 $u=v$,直接构造 $\{u\}$。</p><p>接下来观察若干个数进行运算的最低位。发现他们异或起来的最低位和加起来的最低位必定相等。</p><p>意味着 $u,v$ 的奇偶性应当一致。不一致时是 -1。</p><p>剩下的情况,考虑先从 $v$ 里面拿一个 $u$ 放进答案。然后把剩下 $v-u$ 个 $1$ 合并成一些东西,并且让合并完以后的全部东西异或和为 0。<br>$$<br>v=u+1+…+1<br>$$<br>如果 $1$ 的个数是奇数,则不可能。</p><p>如果 $1$ 的个数是偶数,可以刚好分为两半。</p><p>最终答案数组长度小于等于 3。如果有两个数与起来是 0 还可以合并。</p><p>看起来就很对。</p><hr><h2 id="CF1338B"><a href="#CF1338B" class="headerlink" title="CF1338B"></a>CF1338B</h2><blockquote><p>给出大小为 $n$ 的树,请给每条边赋正整数权,满足任意两个叶子的路径上全部权异或起来为 0。</p><p>输出两个数,代表不同权值数量的最小值和最大值。权值大小无限制。</p><p>$3\leq n\leq 10^5$。</p></blockquote><p>首先随便找个度数大于 2 的点做根。</p><p>套路地,将树上两点之间的异或和拆成两点到根的异或和的异或和。</p><p>限制转化为,全部叶子到根的异或和相等。</p><p>先想第一问,如果全部叶子深度奇偶性相等,我可以把全部边赋为同一个值。</p><p>如果深度奇偶性有差异。考虑先把整棵树赋为同一个值然后开始调整。</p><p>我先把整棵树赋为 2。</p><p>然后对于一个深度为偶数的叶子,把它连向父亲的边赋为 1。这样,它到根的异或和就是奇数个 2 和一个 1 异或的结果,为 3。</p><p>对于深度为奇数的叶子,把它连向父亲的边赋为 3。类似的道理,我们发现它到根的异或和也为 3。</p><p>这样整棵树只需要 3 种不同的权值。能否更少呢?一种肯定不行。</p><p>如果是两种,设为 $x,y$。对于深度为奇数的叶子,它到根的路径上,$x,y$ 一定是一个出现奇数次一个偶数次。到根的异或和为 $x$ 或 $y$。</p><p>对于深度偶数的叶子,我们容易发现,它到根的异或和要么是 $x\oplus y$ 要么是 $0$。我们证明了深度为偶数和奇数的叶子到根的异或和不同。所以两种也不行。</p><p>对于第二问,我们考虑一开始把整棵树赋为两两不同的权值。</p><p>然后对于每个叶子,调整它连向父亲的边权。显然全部叶子到根的异或和可以调整为一致的。</p><p>此时,父亲相同的叶子,连向父亲的边权一致。父亲不同的叶子,如果它们到根的异或和相等,一定是因为他们父亲到根的异或和相等。</p><p>但是我们仍然可以把全部这样的父亲到根的异或和调整成不一致的。所以父亲不同的叶子到根的异或和不等。</p><p>那就做完了。时间 $O(n)$。</p><hr><h2 id="CF1338C"><a href="#CF1338C" class="headerlink" title="CF1338C"></a>CF1338C</h2><blockquote><p>用以下方式构造无穷数列 $S$:</p><ul><li>选择字典序最小的有序三元组 $(a,b,c)$,满足 $a,b,c\not\in S$ 且 $a\oplus b\oplus c=0$。</li><li>将 $a,b,c$ 按顺序加入 $S$。</li></ul><p>$q$ 次询问 $S$ 的第 $n$ 项。</p><p>$1\leq q\leq 10^5,1\leq n\leq 10^{16}$。</p></blockquote><p>遇到这种题,想 10 分钟想不出来应当打暴力找规律。</p><p>还有,暴力的输出格式一定程度上影响了找出规律的速度和强度。</p><p>输出完发现每组的第一个数是 $1,4,5,6,7,16,17,…31,64,65,…$。递增是显然的。</p><p>即,$2^k\to 2^{k+1}-1$,这里 $k$ 要是偶数。</p><p>紧接着我发现,第二个、第三个数按照上面的写法,分别位于 $2^{k+1}\to 2^{k+1}+2^k-1$ 以及 $2^{k+1}+2^{k}\to 2^{k+2}-1$。</p><p>结论一就是,对于 $k=0,2,4,…$,依次都存在 $2^k$ 个三元组,三元组的三个元素分别位于下面这三段长度相等的区间内。</p><p><img src="D:%5C2008verser%5CPiCForp%5C10.png" alt="10"></p><p>那么对于 $n\bmod 3=1$ 的询问,我们已经可以做了。</p><p>对于 $n\bmod 3=2$ 的询问,它一定在棕色的区间里面。再次观察暴力的输出结果,我们发现棕色内部有一些规律:</p><p>随着第一个元素在红色区间内右移,第二个元素在棕色区间里的出现顺序是:</p><p>先在第一个 $\frac{1}{4}$ 内出现,再在第三个 $\frac{1}{4}$ 内出现,再在第四个 $\frac{1}{4}$ 内出现,再在第二个 $\frac{1}{4}$ 内出现。</p><p>有点抽象。打出表还是可以理解的。</p><p>那么我可以用 $\log_4{n}$ 的递归完成这一询问。哦对了,第一个的时间复杂度也是 $\log_4{n}$。</p><p>对于 $n\bmod 3=0$ 的询问,有类似的规律。</p><p>总时间是 $O(T\log_4{n})$。</p><hr><h2 id="CF1349B"><a href="#CF1349B" class="headerlink" title="CF1349B"></a>CF1349B</h2><blockquote><p>定义长为 $n$ 区间 $a$ 位数为 $a_{\lfloor\frac{n+1}{2}\rfloor}$。</p><p>给出正整数 $n$,区间 $a$。</p><p>询问区间 $a$ 能否通过多次将一段子区间赋值为这段子区间的中位数的操作,把全部元素变为 $k$。</p><p>多测。</p><p>$1\leq\sum n\leq 10^5,1\leq a_i,k\leq 10^9$。</p></blockquote><p>我的思路想偏了。没绕回来。</p><p>观察到如果有两个相邻的 $k$,则答案为 yes。</p><p>所以想办法搞出两个相邻的 $k$。我大胆猜测如果可以把一个 $k$ “拓展”成两个,则不需要选跨过两个 $k$ 的区间。</p><p>事实上 <code>k=3,a[]={3,1,3}</code> 就是一个反例。但是我没发现。</p><p>按照我的猜想,我可以对于每个 $k$ 都向左向右枚举区间左右端点。列一下符合条件的式子发现可以先用 map 记录一边的信息,再枚举另一边。</p><p>结论是错的,不能用它。观察发现如果存在两个相邻的 $\geq k$ 的数,则可以把他们一直拓展直到遇见一个 $k$。此时是 yes。</p><p>那我们可以进一步讨论 $\geq k$ 的数的分布。如果 $a_{i-1}\geq k,a_{i+1}\geq k$,这也是可以的。</p><p>如果隔了两个小于 $k$ 的数呢?但是我们很容易证明,当一个区间操作后元素大小 $\geq k$,则有大于一半的 $\geq k$。根据鸽巢原理,上述两种一定存在。而这一种一定不存在。</p><p>或者可以这么理解,如果我们一直隔两个放一个 $\geq k$ 的数,在不出现上面两种情况的前提下,是无法做到操作完以后元素大小 $\geq k$ 的。</p><p>所以只需判断是否存在相邻两个 $\geq k$ 的数相隔不超过 1 个 $\lt k$ 的数即可。还有一些边界要注意。</p><p>时间 $O(\sum n)$。</p><hr><h2 id="P3857"><a href="#P3857" class="headerlink" title="P3857"></a>P3857</h2><p>刚学线性基。</p><p>因为线性基的张成等于原集合的张成。并且一组线性基是线性无关的。</p><p>所以线性基里每个元素都可以独立地选或不选。总方案数就是 2 的线性基大小次方。</p><hr><h2 id="P4151"><a href="#P4151" class="headerlink" title="P4151"></a>P4151</h2><p>懒得粘贴回来了,请看我的另一篇文章《线性基》。</p><hr><h2 id="ABC341G"><a href="#ABC341G" class="headerlink" title="ABC341G"></a>ABC341G</h2><p>设 $s_n=\sum_{i=1}^na_i$。</p><p>设 $f_i$ 为 $i$ 的答案。则 $f_i=\max(\frac{1}{j-i+1}(s_j-s_{i-1})),j\geq i$。</p><p>换个表述使式子好看些。设 $f_i$ 是 $i+1$ 的答案,则 $f_i=\max(\frac{1}{j-i}(s_j-s_i)),j\gt i$。</p><p><strong>注意到</strong>如果把每个数映射为二维平面上的一个点 $(i,s_i)$,这个式子就是求过 $i$ 和 $i+1$、过 $i$ 和 $i+2$ ……的这些直线的斜率的最大值。</p><p>这就是一个比较经典的问题了。</p><ul><li>$i+1\sim n$ 这些点形成的上凸壳包含决策点 $j$。</li></ul><p>那么大到小枚举 $i=n…0$(注意状态),然后把 $i$ 加入凸壳。</p><p>找决策点就是找最小的凸壳上的 $j$,满足过 $i$ 和 $j$ 的直线斜率小于过 $j$ 和”$j$ 在凸壳上的下一个点”的斜率。</p><p>暴力找到这个 $j$,这个过程同样是将 $i$ 加入凸壳的过程。</p><p>每个点至多一进一出凸壳。时间复杂度 $O(n)$。</p><hr><h2 id="CF1545B"><a href="#CF1545B" class="headerlink" title="CF1545B"></a>CF1545B</h2><p>题目给出的移动方式,是选择一个连续的 $11$,左移或右移一位。</p><p>考虑一堆不相邻的 $1$,以及,一个相邻的 $11$。<br>$$<br>010010…0{\color{red}11}00…01001<br>$$<br>此时,仅有 $11$ 是自由的。它可以乱动。</p><p>发现什么了吗?</p><p>1、所经之处的 $1$ 都会向左/右移两格。</p><p>2、不论任何时候,整个序列仅有一个 $11$。$11$ 的数量不因 $11$ 的移动改变。如果出现 $111$,我们认为它也是一个 $11$。</p><p>但这样不好计数啊。</p><p>刚才一直仅关注着 $1$ 和 $11$。但 $11$ 的一次移动,其实是一次相邻的 $11$ 和 $0$ 的交换。</p><p>这样一来,(设有 $c0$ 个 $0$ )就相当于把 $11$ 插入若干个 $0$ 形成的 $c0+1$ 个空隙里。</p><p>3、单个 $1$ 的相对顺序是不变的,不对答案产生影响。</p><p>对于多个 $11$,容易验证上述 2、3 结论都是正确的。</p><p>设此时有 $c11$ 个 $11$,则答案为 $c0+s11\choose c0$。</p><hr><h2 id="P6475"><a href="#P6475" class="headerlink" title="P6475"></a>P6475</h2><p>分讨 $x,y$ 的大小,枚举 $a_x=a_y=i$,则答案就变成了若干个独立的子问题答案的乘积。</p><p>子问题是,长为 $n$,值域 $[1,m]$ 的不降序列个数。</p><p>打表出来发现答案是 $m+n-1\choose n$。</p><p>证明考虑,让序列和插板问题形成双射。</p><p>放置 $m$ 个小球代表数字 $1\to m$。插 $n$ 个板,板的数字是该板左边第一个小球的数字。</p><p>第一个小球左边不能插板。也即,$m$ 个空位随意插 $n$ 个板的数量,$m+n-1\choose n$。</p><hr><h2 id="P7044"><a href="#P7044" class="headerlink" title="P7044"></a>P7044</h2><p>对于 $K=1$,即求全部的 $S(i,j)$ 之和。</p><p>当 $K>1$,每个 $S(i,j)$ 会有一个系数代表在答案中算了几次。先想 $K=1$ 咋做。</p><p>观察一个串如何变得合法。插入和删除是等价的。我们只用删除。</p><p>要删的是,偏左的一些 $)$,偏右的一些 $($。</p><p>用红色表示,在给出串中无法配对的括号,也即要删的。<br>$$<br>[]{\color{red})}[]{\color{red})}[][][]{\color{red}(}[]{\color{red}((}[][]<br>$$<br>在每个 $j$ 计算 $(\ast,j)$ 的贡献。利用 $j-1$ 的 $\sum_{i=1}^jS(i,j)$ 计算 $j$ 的。</p><ul><li>$a_j=($,或者 $a_j=\color{red})$,则对于全部的 $S(\ast,j)$,都要加一。</li><li>$a_j=)$,则,对于与这个右括号配对的左括号(设位置为 $x$ )之前的全部 $S(\leq x,j)$,都要减一。剩下的加一。</li></ul><p>动脑筋用变量维护一下这些,$K=1$ 就做完了。</p><p>当 $K>1$,一个 $(i,j)$,它外层要套 $K$ 个串。最外层的串是 $[1,n]$,也就是,要套 $K-1$ 个串。</p><p>$[1,i]$ 和 $[j,n]$ 分别选 $K-1$ 个可重的位置,这样,唯一对应一种 $K-1$ 个串的选择。并且每种 $K-1$ 个串的选择唯一对应这些位置。</p><p>也就是 $S(i,j)$ 会算 ${i+k-2\choose k-1}\times{n-i+k-1\choose k-1}$ 次。</p><p>用上面类似的维护方式,再维护这些组合数的前缀和即可。</p><hr><h2 id="P7481"><a href="#P7481" class="headerlink" title="P7481"></a>P7481</h2><p>$$<br>F(a,b)=\sum_{i=0}^b{b\choose i}{n-i\choose a}<br>$$</p><p>递推 $F(a,b)$。</p><p>$b$ 在求和上界,根据 ${b\choose i}={b-1\choose i-1}+{b-1\choose i}$ 把组合数里的 $b$ 降下去。<br>$$<br>\sum_{i=0}^b{b\choose i}{n-i\choose a}=\sum_{i=0}^b{b-1\choose i}{n-i\choose a}+\sum_{i=0}^b{b-1\choose i-1}{n-i\choose a}<br>$$<br>左项当 $i$ 枚举到上界 $b$ 时为零,所以上界为 $b-1$,左侧即 $F(a,b-1)$。</p><p>注意右项第一个组合数的 $i$ 最大用到 $b-1$。将 $i-1$ 替换为 $i$,得到:<br>$$<br>F(a,b-1)+\sum_{i=0}^{b-1}{b-1\choose i}{n-i-1\choose a}<br>$$<br>不小心把右上角变成 $n-i-1$ 了。试让它加 $1$ 换成 $n-i$。</p><p>我们有两个式子可以套到第二个组合数上:</p><ul><li>${n\choose m}={n+1\choose m}-{n\choose m-1}$</li><li>${n\choose m}={n+1\choose m+1}-{n\choose m+1}$</li></ul><p>但是,第二个此时会使得组合数出现 $a+1$。不行。</p><p>所以把 ${n\choose m}={n+1\choose m}-{n\choose m-1}$ 套到 $n-i-1\choose a$ 上。等于:<br>$$<br>\begin{aligned}<br>&F(a,b-1)+\sum_{i=0}^{b-1}{b-1\choose i}{n-i\choose a}-\sum_{i=0}^{b-1}{b-1\choose i}{n-i-1\choose a-1}\\<br>=&2F(a,b-1)-\sum_{i=0}^{b-1}{b-1\choose i}{n-i-1\choose a-1}<br>\end{aligned}<br>$$<br>此时出现了 $a-1$。而 $n-i-1$ 消不掉。</p><p>那走 $a-1$ 的道路。注意右上角是 $n-(i+1)$。所以可以让左下角同样变成 $i+1$。</p><p>套 ${n\choose m}={n+1\choose m+1}-{n\choose m+1}$ 到 ${b-1\choose i}$ 上。得到:<br>$$<br>2F(a,b-1)-\sum_{i=0}^{b-1}{b\choose i+1}{n-i-1\choose a-1}+\sum_{i=0}^{b-1}{b-1\choose i+1}{n-i-1\choose a-1}<br>$$<br>左侧将 $i+1$ 换为 $i$,并令 $i$ 从零开始,最后减去 $i=0$ 的式子。</p><p>右侧类似。得到:<br>$$<br>\begin{aligned}<br>&2F(a,b-1)-[\sum_{i=0}^{b}{b\choose i}{n-i\choose a-1}-{n\choose a-1}]+[\sum_{i=0}^{b-1}{b-1\choose i}{n-i\choose a-1}-{n\choose a-1}]\\<br>=&2F(a,b-1)-F(a-1,b)+F(a-1,b-1)<br>\end{aligned}<br>$$<br>就做完了。</p><hr><h2 id="P6667"><a href="#P6667" class="headerlink" title="P6667"></a>P6667</h2><p>$f(x)$ 是一个关于 $x$ 的 $m$ 次多项式。</p><h3 id="推导一:"><a href="#推导一:" class="headerlink" title="推导一:"></a>推导一:</h3><p>为防混乱,将题面中的 $x$ 换做 $z$。</p><p>设 $h_{1\to m}$ 满足:<br>$$<br>f(x)=\sum_{i=0}^m{x\choose i}h_i<br>$$<br>之所以可以换成组合数,并求和,是因为 ${n\choose m}=\frac{\Pi_{i=1}^m(n-i+1)}{m!}$,可以理解为一个关于 $n$ 的 $m$ 次多项式。</p><p>当 $i>x$ 时,$x\choose i$ 为零。所以枚举上界可以换成 $x$。当 $x>m$ 时一些 $h_i$ 不存在,视作零。</p><p>并且可以用二项式反演得到 $h$。<br>$$<br>f(x)=\sum_{i=0}^x{x\choose i}h_i{\color{red}\Rightarrow} h_x=\sum_{i=0}^x(-1)^{x-i}{x\choose i}f(i)<br>$$<br>但直接算 $h$ 要 $O(m^2)$ 的时间。注意式子中有 $x-i$ 又有 $i$。故化为卷积。<br>$$<br>\begin{aligned}<br>h_x&=\sum_{i=0}^x(-1)^{x-i}{x\choose i}f(i)\\<br>\frac{h_x}{x!}&=\sum_{i=0}^x\frac{f(i)}{i!}\times \frac{(-1)^{x-i}}{(x-i)!}<br>\end{aligned}<br>$$<br>把求完的 $f$ 用 $h$ 表示,带回原式。<br>$$<br>\begin{align}<br>Q(f,n,z)&=\sum_{k=0}^n\sum_{i=0}^m h_i{k\choose i}{n\choose k}z^k(1-z)^{n-k}\tag 1\\<br>&=\sum_{i=0}^mh_i\sum_{k=0}^n {n\choose i}{n-i\choose k-i}z^k(1-z)^{n-k}\tag 2<br>\end{align}<br>$$<br>把 $n\choose i$ 提到第一个 $\sum$,接着因为 $k<i$ 时 ${n-i\choose k-i}$ 为零,所以第二个 $\sum$ 下界是 $i$。<br>$$<br>\begin{align}<br>=&\sum_{i=0}^mh_i{n\choose i}\sum_{k=i}^n {n-i\choose k-i}z^k(1-z)^{n-k}\tag 3\\<br>=&\sum_{i=0}^mh_i{n\choose i}z^i\sum_{k=i}^n {n-i\choose k-i}z^{k-i}(1-z)^{n-k}\tag 4<br>\end{align}<br>$$<br>再把 $k-i$ 替换为 $i$,惊喜地发现右边变成了 $(z+1-z)^{n-i}$ 的展开式,即等于 $1$。<br>$$<br>\begin{align}<br>=&\sum_{i=0}^mh_i{n\choose i}z^i\sum_{k=0}^{n-i}{n-i\choose k}z^{k}(1-z)^{n-i-k}\tag 5\\<br>=&\sum_{i=0}^mh_i{n\choose i}z^i<br>\end{align}<br>$$<br>至此,可以 $O(m)$ 计算。要 $O(m\log m)$ 的卷积。</p><p>总时间复杂度 $O(m\log m)$。</p><hr><h3 id="推导二:"><a href="#推导二:" class="headerlink" title="推导二:"></a>推导二:</h3><p>学完多项式连续点值表达与下降幂的转换来补一发。</p><p>原理是类似的。只不过式子有一步比较难推。</p><p>设 $f(x)$ 的下降幂形式,然后用二项式反演推 $b$。化成卷积即可求 $b$。<br>$$<br>\begin{aligned}<br>&f(x)=\sum_{i=0}^mb_ix^{\underline{i}}{\color{red}\Rightarrow} b_x=\sum_{i=0}^{x}(-1)^{x-i}{x\choose i}f(i)\\<br>&{\color{red}\Rightarrow}b_x=\sum_{i=0}^x\frac{(-1)^{x-i}}{(x-i)!}\frac{a_i}{i!}<br>\end{aligned}<br>$$<br>带入原式,得:<br>$$<br>\begin{align}<br>Q(f,n,x)&=\sum_{k=0}^n\sum_{i=0}^mb_ik^{\underline{i}}{n\choose k}x^k(1-x)^{n-k}\tag 1\\<br>&=\sum_{i=0}^{m}b_i\sum_{k=0}^n\frac{n!}{(k-i)!(n-k)!}x^k(1-x)^{n-k}\tag 2<br>\end{align}<br>$$<br>看起来推不了了。观察式一,$k$ 要大于等于 $i$ 式子才不为零。所以第二行 $k$ 下界是 $i$。</p><p>然后再改变 $k$ 的范围,上界是 $n-i$,而 $1-x$ 的指数是 $n-k-i$。</p><p>为了凑成二项式定理,提 $x^i$ 出来,再上下同时乘以 $n-i$ 凑出定理的组合数。<br>$$<br>\begin{align}<br>&=\sum_{i=0}^{m}b_i\sum_{k=i}^{n-i}\frac{n!}{k!(n-k-i)!}x^{k+i}(1-x)^{n-k-i}\tag 3\\<br>&=\sum_{i=0}^{m}b_ix^i\sum_{k=i}^{n-i}\frac{n!}{(n-i)!}\frac{(n-i)!}{k!(n-k-i)!}x^k(1-x)^{n-k-i}\tag 4\\<br>&=\sum_{i=0}^{m}b_ix^in^{\underline{i}}\sum_{k=i}^{n-i}{n-i\choose k}x^k(1-x)^{n-k-i}\tag 5\\<br>&=\sum_{i=0}^{m}b_ix^in^{\underline{i}}\tag 6<br>\end{align}<br>$$<br>看别人有 $O(m^2)$ 卷积的过了。厉害。</p><p>这两种办法本质都是把函数的连续点值表达化为下降幂。</p><p>差异在于分母的阶乘。有时会带来推式子的难度不同。要灵活选择。</p><hr><h2 id="CF932E"><a href="#CF932E" class="headerlink" title="CF932E"></a>CF932E</h2><p>整数幂和下降幂的转换:<br>$$<br>x^n=\sum_{i=1}^n{n\brace i}x^{\underline{i}}<br>$$<br>于是把 $i^k$ 拆成与组合数相关的,然后让那几个组合数化学反应。<br>$$<br>\sum_{i=1}^n{n\choose i}i^k=\sum_{j=1}^k{k\brace j}\sum_{i=1}^n{n\choose i}i^{\underline{j}}\tag 1<br>$$<br>若此时把下降幂和组合数搞起来,那就消不掉了。</p><blockquote><p>upd on 2024.02.27:很简单消。和【如何优雅地求和】推导过程类似。<br>$$<br>\sum_{j=1}^k{k\brace j}\sum_{i=1}^n{n\choose i}i^{\underline{j}}=\sum_{j=1}^k{k\brace j}\sum_{i=1}^n\frac{n!}{(n-i)!(i-j)!}<br>$$<br>显然 $i$ 可以从 $j$ 开始,然后再换出来组合数。<br>$$<br>=\sum_{j=1}^k{k\brace j}\sum_{i=j}^n\frac{n!}{(n-i)!(i-j)!}=\sum_{j=1}^k{k\brace j}n^{\underline{j}}\sum_{i=0}^{n-j}\frac{(n-j)!}{(n-j-i)!i!}=\sum_{j=1}^k{k\brace j}n^{\underline{j}}2^{n-j}<br>$$</p></blockquote><p>可以乘上 $\frac{1}{j!}$ 使它变成可以进一步化简的组合数。<br>$$<br>\begin{align}<br>\sum_{j=1}^k{k\brace j}\sum_{i=1}^n{n\choose i}i^{\underline{j}}&=\sum_{j=1}^k{k\brace j}\sum_{i=1}^n{n\choose i}{i\choose j}j!\tag 2\\<br>&=\sum_{j=1}^k{k\brace j}j!\sum_{i=1}^n{n\choose j}{n-j\choose i-j}\tag 3\\<br>&=\sum_{j=1}^k{k\brace j}j!{n\choose j}\sum_{i=0}^{n-j}{n-j\choose i}\tag 4\\<br>&=\sum_{j=1}^k{k\brace j}j!{n\choose j}2^{n-j}\tag 5<br>\end{align}<br>$$<br>于是做完了。第二类斯特林数可以 $O(k^2)$ 递推。组合数也是暴力求。</p><p>$O(k^2+k\log n)$。</p><hr><h2 id="CF1559E"><a href="#CF1559E" class="headerlink" title="CF1559E"></a>CF1559E</h2><p>只考虑前两个限制的话,设 $f_{i,j}$ 表示前 $i$ 个,和为 $j$ 的方案数。</p><p>$$<br>f_{i,j}=\sum_{k=l_i}^{r_i}f_{i-1,j-k}<br>$$</p><p>显然可以前缀和优化至 $O(m)$。</p><p>对于第三个限制,直接套莫比乌斯反演的结论,然后套路地把式子拆开:(设 $c(a)$ 表示数列 $a$ 是否满足前两个限制。)</p><p>$$<br>\begin{aligned}<br>&\sum_{a}c(a)[\gcd(a_1,a_2,…,a_n)=1]\\<br>=&\sum_{a}c(a)\sum_{x|a_1,x|a_2,…,x|a_n}\mu(x)\\<br>=&\sum_{x=1}^m\mu(x)\sum_{x|a_1}\sum_{x|a_2}…\sum_{x|a_n}c(a)<br>\end{aligned}<br>$$</p><p>右边这个相当于一个 $m’=\frac{m}{x}$ 的满足前两个条件的子问题。可以 $O(nm/x)$ 求解。</p><p>总时间就是 $O(nm\ln m)$。结合不计算 $\mu(x)=0$ 优化即可。</p><hr><h2 id="ARC124D"><a href="#ARC124D" class="headerlink" title="ARC124D"></a>ARC124D</h2><p>观察置换环。</p><ul><li><p>整个环只有一种颜色。那么可以利用另一种颜色完成 $size+1$ 代价的归位。</p></li><li><p>整个环有两种颜色。第一种思路是用 1 代价断成两个同色环。总代价就是 $1+size+2$。</p><p>或者一直以一个分界点为交换位置之一进行交换。最后会剩下同色环。也是同样代价。</p><p>但可以保留两个分界点。利用分界点将环的大小变成 2,且是跨越了黑白的,代价是 $size-1$。</p></li></ul><p>显然地,一色环可以花 1 代价变成大小加一的二色环,但 1 代价加上还原新的二色环的代价等于还原一色环的代价。</p><p>因此这两种情况是无交的。</p><p>直接找出所有一色环、二色环,然后把这两种代价加起来即可。</p><p>但还有一种情况:两个异色的一色环。设大小为 $x,y$。则原花费是 $x+1+y+1=x+y+2$。</p><p>可以花 1 代价把他们变成 $x+y$ 的二色环,复原这个二色环的代价是 $x+y-1$。加上 1 代价就是 $x+y$,比原先少了 2。</p><p>两个异色一色环会变成一个二色环。且容易证明三个一色环是不更优的。</p><p>所以答案还要减去较小的一色环个数乘 2 的值。</p><hr><h2 id="P5505"><a href="#P5505" class="headerlink" title="P5505"></a>P5505</h2><p>设 $f(n)$ 表示这些分给 $n$ 个人(不可以有人没有)的方案数。</p><p>$g(n)$ 表示可以有人没有的方案数。</p><p>则<br>$$<br>g(n)=\sum_{i=0}^n\binom{n}{i}f(i)<br>$$<br>得到<br>$$<br>f(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}g(i)<br>$$<br>$g$ 是好求的。对于每种特产插板即可。</p><p>时间 $O(nm)$。</p><hr><h2 id="P6620"><a href="#P6620" class="headerlink" title="P6620"></a>P6620</h2><p>先转下降幂。<br>$$<br>\sum_{k=0}^n\sum_{i=0}^mb_ik^{\underline{i}}x^k\binom{n}{k}<br>$$<br>交换求和顺序,然后把阶乘消一下,剩下就是套路了。<br>$$<br>\sum_{i=0}^mb_i\sum_{k=i}^n\frac{n!}{(k-i)!(n-k)!}x^k=\sum_{i=0}^mb_in^{\underline{i}}x^i\sum_{k=0}^{n-i}\frac{(n-i)!}{k!(n-i-k)!}x^k=\sum_{i=0}^mb_in^{\underline{i}}x^i\sum_{k=0}^{n-i}\binom{n-i}{k}x^k<br>$$<br>如果你想把 $x^k$ 用第二类斯特林数拆开,那就掉进死胡同了。</p><p>它恰是 $(x+1)^{n-i}$。</p><p>所以答案为:<br>$$<br>\sum_{i=0}^mb_in^{\underline{i}}x^i(x+1)^{n-i}<br>$$</p><blockquote><p>一般式转下降幂:<br>$$<br>f(x)=a_0+a_1x+a_2x^2+…+a_mx^m<br>$$</p><p>$$<br>a_ix^i=\sum_{j=1}^ia_i{i\brace j}x^{\underline{j}}<br>$$</p></blockquote><p>时间复杂度 $O(m^2)$。</p>]]></content>
<categories>
<category> 题解 </category>
</categories>
<tags>
<tag> 题解 </tag>
</tags>
</entry>
<entry>
<title>线性基</title>
<link href="/2024/07/30/%E7%BA%BF%E6%80%A7%E5%9F%BA/"/>
<url>/2024/07/30/%E7%BA%BF%E6%80%A7%E5%9F%BA/</url>
<content type="html"><![CDATA[<p>【少图预警!】【需要结合其他文章食用!】</p><hr><h2 id="?声明?"><a href="#?声明?" class="headerlink" title="?声明?"></a>?声明?</h2><p>这里不对线性代数相关概念和<strong>异或</strong>线性基做最基本的概述。</p><p>上网搜大概可以搜到三篇高质的讲解线性基的博客:</p><p><a href="https://www.luogu.com.cn/blog/command-block/xian-xing-ji-xiao-ji">线性基小记 - command_block 的博客 - 洛谷博客 (luogu.com.cn)</a></p><p><a href="https://www.luogu.com.cn/blog/Troverld/xian-xing-ji-xue-xi-bi-ji">线性基学习笔记 - 拜傅里叶教总部 - 洛谷博客 (luogu.com.cn)</a></p><p><a href="https://oi.men.ci/linear-basis-notes/">线性基学习笔记 | Menci’s OI Blog</a></p><p>下面两篇适合入门。上面那个没点线性代数基础感觉看不太懂。</p><p>最下面这一篇介绍的线性基构建方法比较麻烦。</p><p>它保证了每一个存在于线性基的位置 $i$,仅有 $a_i$ 的第 $i$ 位为 1。</p><p>但这个性质完全可以在构建完线性基后,扫一遍来完成。将在模板习题给出。</p><p>-</p><p>文章中习题包括但不限于 11251 号题单。</p><p>与其说一篇关于线性基的描述,不如算是对许多博客未加证明的结论的补充,或是隐藏的结论的点明。</p><p>速成顺序建议:【模板】【前缀】【实数】【CF1163E】。</p><p>-</p><p>线性基的性质,除了常说的,基最小、基线性无关、基的张成等于原集合的张成、原集合元素的唯一表示以外,还有很多,我们将在例题逐一分析。</p><p>读者注意留意题目中各种映射关系,有助于理解。</p><p>为防不知道有没有的读者和我用的循环压缩不一致,下面的代码默认有这两行 <code>#define</code>:</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> rp(i,r,l) for(int i=(r);i>=(l);--i)</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> fo(i,l,r) for(int i=(l);i<=(r);++i)</span></span><br></pre></td></tr></table></figure><p>全文 <code>w</code> 定义为 $\log V$。</p><hr><h2 id="模板线性基:P3812-【模板】线性基"><a href="#模板线性基:P3812-【模板】线性基" class="headerlink" title="模板线性基:P3812 【模板】线性基"></a>模板线性基:<a href="https://www.luogu.com.cn/problem/P3812">P3812 【模板】线性基</a></h2><p>这里补充一个构造线性基时需要用到的结论,或有助理解:</p><ul><li>将基中的任意一个元素异或上基中的另外一个元素,基仍是基。</li></ul><blockquote><p>证明考虑,设是 $x$ 异或上了 $y$ 变成 $x’=x\oplus y$,把原张成的每个含 $x$ 的元素,替换成 $x’\oplus y$ 即可。</p></blockquote><p>根据「基的张成等于原集合的张成」,我们可以对输入的全部数求基。</p><p>那么问题变成了,我们在基里面选若干元素使异或和最大。</p><p>到这里,可以使用前两篇博客中的构造方法,写出这样的代码:</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">void</span> <span class="title">insert</span><span class="params">(ll x)</span> </span>{</span><br><span class="line"><span class="built_in">rp</span>(i,w,<span class="number">0</span>) {</span><br><span class="line"><span class="keyword">if</span>(x&(<span class="number">1ll</span><<i)) {</span><br><span class="line"><span class="keyword">if</span>(!a[i]) { a[i]=x;<span class="keyword">return</span>; }</span><br><span class="line">x^=a[i];</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line"><span class="function">ll <span class="title">query</span><span class="params">()</span> </span>{</span><br><span class="line">ll ret=<span class="number">0</span>;</span><br><span class="line"><span class="built_in">rp</span>(i,w,<span class="number">0</span>) <span class="keyword">if</span>((ret^a[i])>ret) ret^=a[i];</span><br><span class="line"><span class="keyword">return</span> ret;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>但是这样丝毫不能体现我们对线性基的高超技艺。</p><p>我们可以使用第三篇博客的构造方法,这样构造出的基,如果第 $i$ 位存在,那么第 $i$ 列仅这一个为 $1$。(可以去 Menci 博客里好好看看,这里不详细讲)</p><p>也就意味着一个非零的行,我们选他,一定更优。</p><p>那么全部异或起来就对了。</p><p>事实上,Menci 博客里面的构造方式有些繁琐。我们可以按照前两篇博客的构造方式先构造一组线性基。</p><p>因为线性基里的数随便异或不会改变任何事情。我们可以不断异或,使得这组线性基具有 Menci 博客中提到的性质。如下:</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">void</span> <span class="title">insert</span><span class="params">(ll x)</span> </span>{</span><br><span class="line"><span class="built_in">rp</span>(i,w,<span class="number">0</span>) {</span><br><span class="line"><span class="keyword">if</span>(x&(<span class="number">1ll</span><<i)) {</span><br><span class="line"><span class="keyword">if</span>(!a[i]) {</span><br><span class="line">a[i]=x;</span><br><span class="line"><span class="keyword">return</span>;</span><br><span class="line">}</span><br><span class="line">x^=a[i];</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">prepare</span><span class="params">()</span> </span>{</span><br><span class="line"><span class="built_in">fo</span>(i,<span class="number">0</span>,w) {</span><br><span class="line"><span class="built_in">rp</span>(j,i<span class="number">-1</span>,<span class="number">0</span>) {</span><br><span class="line"><span class="keyword">if</span>(a[i]&(<span class="number">1ll</span><<j)) a[i]^=a[j];</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line"><span class="function">ll <span class="title">query</span><span class="params">()</span> </span>{</span><br><span class="line"><span class="built_in">prepare</span>();</span><br><span class="line">ll ret=<span class="number">0</span>;</span><br><span class="line"><span class="built_in">rp</span>(i,w,<span class="number">0</span>) ret^=a[i];</span><br><span class="line"><span class="keyword">return</span> ret;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>第二种方法,我们的 <code>prepare()</code> 操作就是 command_block 博客里提到的:“将三角基进一步消成对角基”。(虽然我也不知道这俩是啥。)</p><p>在执行完 <code>prepare()</code> 以后,我们的基就有 Menci 博客里介绍的全部性质了。</p><p>模板题到这里就结束了。时间复杂度,三角基是 $O(n\log V)$。消成对角基要多一个 $\log V$。</p><p><a href="https://www.luogu.com.cn/paste/22tccolk">Code for this.</a></p><hr><h2 id="P3857-TJOI2008-彩灯"><a href="#P3857-TJOI2008-彩灯" class="headerlink" title="P3857 [TJOI2008] 彩灯"></a><a href="https://www.luogu.com.cn/problem/P3857">P3857 [TJOI2008] 彩灯</a></h2><p>即,计算给定集合的张成与 $\{0\}$ 的并的大小。</p><p>直接对原集合求张成大小是不会的。所以我们先求基。</p><p>根据「原集合元素的唯一表示」以及「基线性无关」,我们知道基的每个元素选,或不选,组合成的数于原数组都是<strong>不重不漏</strong>的。</p><p>那么一共能组合出 $2^k$ 次方个数。$k$ 是基的大小。</p><p>至于零,输出时加一就好了。</p><p>时间 $O(mn)$。</p><p><a href="https://www.luogu.com.cn/paste/w5alxn07">Code for this.</a></p><hr><h2 id="P4301-CQOI2013-新Nim游戏"><a href="#P4301-CQOI2013-新Nim游戏" class="headerlink" title="P4301 [CQOI2013] 新Nim游戏"></a><a href="https://www.luogu.com.cn/problem/P4301">P4301 [CQOI2013] 新Nim游戏</a></h2><p>首先我们要熟知经典 Nim 游戏的结论:当一个局面全部石子个数的异或和为零,必败。否则必胜。</p><p>在这道题中,第一回合我们需要拿走若干堆石子,使得无论对手取哪几堆石子,都会送我们一个必胜局面。</p><p>也就是说,使得对手不能将局面变为,全部石子个数异或为零。</p><p>也就是说,我们拿完第一次,剩下的石子<strong>不存在一个非空的子集</strong>(因为对手可以不拿,所以不是真子集),使得<strong>异或和为零</strong>。</p><p>也就是说,剩下的石子<strong>线性无关</strong>。</p><p>注意基的定义,基没有异或和为零的子集。</p><p>且,「基,是原集合全部<strong>线性无关</strong>子集中,集合大小最大的」。</p><p>因为我们要最小化第一回合我们取的石子数量,所以剩下的石子要大。那么我们留一个基就好了。</p><p>为了最大化基,我们降序排序,顺序枚举,能选就选。</p><blockquote><p>如果向 $a_{1\to i-1}$ 形成的基中加入 $a_i$,变得线性相关,说明 $a_i$ 可以被 $a_{1\to i-1}$ 一些表示出来。</p><p>此时我们要么保留原本的基,要么从原本的基删掉一个元素,加入 $a_i$。</p><p>注意到,这两种基都是由 $a_{1\to i-1}$ 形成的基,<strong>张成一样。即完全等价。</strong></p><p>那么,对于两种等价的基,我们保留原本的基,答案不会更劣。</p><p>所以这是对的。</p></blockquote><p>这种,「选取线性无关子集,最大化求和」或是「留下线性无关子集,最小化选取求和」的问题,以后还会遇到很多次,都可以用这种方式解决。</p><p>时间 $O(k\log V)$。</p><p><a href="https://www.luogu.com.cn/paste/xo61mipn">Code for this.</a></p><hr><h2 id="P4570-BJWC2011-元素"><a href="#P4570-BJWC2011-元素" class="headerlink" title="P4570 [BJWC2011] 元素"></a><a href="https://www.luogu.com.cn/problem/P4570">P4570 [BJWC2011] 元素</a></h2><p>做过【P4301】这道题就算裸了。请读者自行完成。</p><hr><h2 id="P3292-SCOI2016-幸运数字"><a href="#P3292-SCOI2016-幸运数字" class="headerlink" title="P3292 [SCOI2016] 幸运数字"></a><a href="https://www.luogu.com.cn/problem/P3292">P3292 [SCOI2016] 幸运数字</a></h2><p>若我们得到两点间的线性基,事情就很典了。</p><p>注意线性基大小是 $\log V$ 级别的。那么我们可以通过把一个线性基里的数加入另一个完成时间为 $O(\log^2V)$ 的合并。</p><p>那我们有两种方法:</p><ul><li>获得 $(x,lca)$ 和 $(y,lca)$ 的线性基,合并。</li><li>树剖+线段树或者倍增维护线性基。</li></ul><p>询问是不确定的,所以第一种方法不行。(可以使用前缀线性基 $O(q\log^2V)$,但这里先不提前介绍)</p><p>从线段树询问区间线性基,会拆成 $\log n$ 个区间,合并这些要 $\log^2V\times\log n$。</p><p>树剖需要 $\log n$ 次线段树询问。所以时间是 $O(q\log^2V\log^2n)$ 的。</p><p>注意线性基是<strong>可重复贡献</strong>的。可以用 ST 表维护某个点向上 $2^i$ 的线性基。$O(n\log^2V\log n+q\log ^2V)$。</p><p>$n$ 比 $q$ 小一些,第二个做法较优。</p><p><a href="https://www.luogu.com.cn/paste/epx7nkne">Code for this.</a>(这里是树剖+线段树,ST 表的代码可以去题解区找)</p><hr><h2 id="P4151-WC2011-最大XOR和路径"><a href="#P4151-WC2011-最大XOR和路径" class="headerlink" title="P4151 [WC2011] 最大XOR和路径"></a><a href="https://www.luogu.com.cn/problem/P4151">P4151 [WC2011] 最大XOR和路径</a></h2><p>这次变成图了。没环的话跟上一题一样。</p><p>如果从一个点开始,走到一个环,绕一圈,原路回来,此时获得的贡献仅是环的。意思是<strong>每个环都可以随便选</strong>。</p><p>记由「若干返祖边和返祖边跨过的边形成的环」为<strong>特殊环</strong>。</p><p>建出 dfs 树。那么<strong>每个环</strong>都可以由<strong>若干特殊环通过异或</strong>组成。如下图,再归纳即可。</p><p><img src="a.jpg" alt=""></p><p>那么我们此时要选一条从 $1$ 到 $n$ 的最优的路径,最优是指它选一些环异或起来最大。</p><p>当我们知道哪一条最优以后,问题就变成了已知的路径异或和(第一步),要任选一些 $a_i$ 异或异或起来最大(第二步)。$a_i$ 就是各个环的异或和。</p><p>既然<strong>每个环都在特殊环的张成里</strong>,我们对特殊环建线性基。那问题就是第一步。</p><p>总不能枚举全部路径。观察两条从 $1$ 到 $n$ 的路径。它们构成了一个环。</p><p>那么,如果我选了一条 $1\to n$ 的路径 $A$,然而 $1\to n$ 的最优路径是一条不等于 $A$ 的路径 $B$。</p><p>那么在我选一些环使得异或和最大的时候,我会选出 $1\to n\to 1$ 这一个环,且这个环由 $A,B$ 构成。</p><p>此时我的第一部分异或就变成了 $B$。</p><p>所以<strong>第二步会令第一步最优</strong>。第一步随便找就好了。</p><p>时间 $O(n+(m-n)\log V)$。</p><p><a href="https://www.luogu.com.cn/paste/hxmmb3od">Code for this.</a></p><hr><h2 id="前缀线性基:CF1100F-Ivan-and-Burgers"><a href="#前缀线性基:CF1100F-Ivan-and-Burgers" class="headerlink" title="前缀线性基:CF1100F Ivan and Burgers"></a>前缀线性基:<a href="https://www.luogu.com.cn/problem/CF1100F">CF1100F Ivan and Burgers</a></h2><p>提醒:<code>a[i]</code> 指基元素,$a_i$ 指序列。</p><p>这,就是上上题提到的,前缀线性基!</p><p>我们对于每个 $i$ 维护一个 $a_{1\to i}$ 形成的线性基。</p><p>这个基,由<strong>尽可能靠后</strong>的数组成。</p><blockquote><p>什么意思?</p><p>我们要理解两件事:</p><ul><li>基不唯一,且可以是原集合的子集。</li></ul><p>(如果你是线代大师会觉得这很显然)</p><p>举个例子,$a=\{1,2,3\}$,一个合法的基是 $\{2,3\}$。<br>$$<br>\begin{aligned}<br>10\\<br>11\\<br>\end{aligned}<br>$$<br>但是这种基并不会被我们构造出来,因为他们的最高位都是 $2^1$ 位。</p><p>我们构造的应是:<br>$$<br>\begin{aligned}<br>01\\<br>10\\<br>\end{aligned}<br>$$<br>这两种基<strong>本质是相同</strong>的。我们可以对第一个基进行<strong>内部异或运算</strong>。它一定可以变成第二个。<strong>(全部基都可以这样,证明考虑【模板】的证明)</strong></p><ul><li>常见的线性基,由<strong>尽可能靠前</strong>的元素组成。</li></ul><p>因为我们是贪心构造:如果能加就加了。</p><ul><li>综上,「构造线性基」得到的<strong>结果</strong>(后面两句不是流程!只是结果一样!),是选最靠前的<strong>基</strong>,再进行基内部异或使得不存在两个最高位相同的元素。</li></ul><p>内部异或不会异或出零,因为我们选了<strong>基</strong>。</p><p>这两条性质很重要。影响到后面题目的完成。</p></blockquote><p>那么,选尽可能靠后的数构成线性基,即从后往前做 <code>insert()</code>。</p><p>那对于每个位置 $i$ 处理出 $a_{1\to i}$ 尽可能靠后的元素形成的线性基,下意识记录基元素 <code>a[i]</code> 在原数组下标,记 <code>p[i]</code>。</p><p>询问时不要算 <code>p[i]<l</code> 的 <code>a[i]</code> 就好了。</p><p>我们发现它 <a href="https://codeforces.com/contest/1100/submission/239765131">TLE</a> 了(而非 WA )。所以分析是对的。</p><p>考虑利用好 $i-1$ 的信息,令 $i$ 的线性基从 $i-1$ 复制过来。接着想办法把 $a_i$ <strong>正确加入</strong>。</p><p>使 $a_i$ 必须加入。</p><ul><li>若加入 $a_i$ 基仍线性无关,则代码会自己顺序执行并插入 $a_i$。</li><li>否则会冲突。</li></ul><p>有一种很自然的解决方式,如代码:</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">void</span> <span class="title">insert</span><span class="params">(<span class="type">int</span> x,<span class="type">int</span> id)</span> </span>{</span><br><span class="line"><span class="built_in">rp</span>(i,w,<span class="number">0</span>) {</span><br><span class="line"><span class="keyword">if</span>(!x) <span class="keyword">return</span>;</span><br><span class="line"><span class="keyword">if</span>(x&(<span class="number">1</span><<i)) {</span><br><span class="line"><span class="keyword">if</span>(!a[i]) { a[i]=x;p[i]=id;<span class="keyword">return</span>; }</span><br><span class="line"><span class="keyword">if</span>(id>p[i]) <span class="built_in">swap</span>(p[i],id),<span class="built_in">swap</span>(a[i],x);</span><br><span class="line">x^=a[i];</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>我们<strong>遍历过的</strong> <code>a[i]</code> 已经是尽可能靠后,并且<strong>当前</strong> <code>a[i]</code> 尽可能靠后,并且<strong>最终</strong>基的张成不变,归纳可证<strong>新基由尽可能靠后的元素形成</strong>。(信息量很大)</p><p>请你联系引用框段,好好思考。</p><blockquote><p>你会明白此时的基,<code>a[i]</code>,是原序列第 <code>p[i]</code> 位经基内异或得到的结果。</p><p>虽然对这题无意义。</p></blockquote><p>那么我们成功得到了第 $i$ 位的基。</p><p>时间 $O(n\log V+q\log V)$。</p><p><a href="https://www.luogu.com.cn/paste/5l1542ab">Code for this.</a></p><hr><h2 id="CF845G-Shortest-Path-Problem"><a href="#CF845G-Shortest-Path-Problem" class="headerlink" title="CF845G Shortest Path Problem?"></a><a href="https://www.luogu.com.cn/problem/CF845G">CF845G Shortest Path Problem?</a></h2><p>与 WC2011 一样。请读者自己思考。</p><hr><h2 id="实数线性基:P3265-JLOI2015-装备购买"><a href="#实数线性基:P3265-JLOI2015-装备购买" class="headerlink" title="实数线性基:P3265 [JLOI2015] 装备购买"></a>实数线性基:<a href="https://www.luogu.com.cn/problem/P3265">P3265 [JLOI2015] 装备购买</a></h2><p>事情变得稍稍有点意思了。</p><p>这次,线性组合不再是常见的 Xor 运算,而是线代中的「线性组合」,也即,<strong>向量的缩放和加法</strong>。</p><p>将 $n$ 件武器视作 $n$ 个 $m$ 维<strong>向量</strong>。</p><p>如果我们能维护这样子的「线性组合」意义下的「线性基」,这道题就变得很经典了——排序。</p><p>照葫芦画瓢,我们重新思考异或线性基中各个部分的意义。</p><blockquote><ul><li>基、张成,很显然。</li><li>内部异或,张成不变。</li></ul><p>内部异或→内部线性组合→矩阵的行初等变换。</p><p>即,矩阵做行初等变换,张成不变。证明与先前类似。</p><ul><li><code>insert()</code> 时,$i$ 从 <code>w</code> 向 <code>0</code> 枚举,<strong>空</strong>就赋值,<strong>非空</strong>就异或。</li></ul><p>空,指没有最高位为 $2^i$ 的基元素。</p><p>异或,指消掉待加入数的 $2^i$ 位。</p><p>变为:从最高维开始,向最低维枚举,若基中<strong>没有最高维是第 $i$ 维的变量</strong>,赋值;否则<strong>将待加入的向量第 $i$ 维消为零</strong>。</p><p>P.S. 为了和异或线性基一致,定义属性从 $1$ 到 $m$ 为从高到低。</p></blockquote><p>那就会做了。</p><p>可以联系<a href="https://www.luogu.com.cn/blog/xrr/solution-p3265">这篇博客</a>的图。</p><p>为了实现常数,我们不真的像原本那样建立新数组存基,转而记录<strong>最高维是第 $i$ 维的变量</strong>在原数组的下标。并在原数组进行消元。</p><p>时间 $O(nm^2)$。</p><p>同时我们发现,这才是线性基真正的复杂度。</p><p><img src="b.jpg" alt=""></p><p>平时的异或线性基为什么少了个 $m$ 呢?因为消元运算被异或运算优化成 $O(1)$ 的了。</p><p>@Tangninghaha 做过一道可删线性基《八纵八横》。这里维度很高,可以用 <code>bitset</code> 优化。$\frac{m^2}{\omega}$。</p><p>你也可以理解为平时 $V$ 在 <code>long long</code> 以内的是除了个 $\omega$。</p><p>这道题精度开 <code>1e-5</code> 即可。不然会 WA。</p><p><a href="https://www.luogu.com.cn/paste/lf9b5alx">Code for this.</a></p><hr><h2 id="P5556-圣剑护符"><a href="#P5556-圣剑护符" class="headerlink" title="P5556 圣剑护符"></a><a href="https://www.luogu.com.cn/problem/P5556">P5556 圣剑护符</a></h2><p>询问两点间点权是否线性相关。</p><p>基元素最高位不得相同。因此,<strong>基的元素不超过 $\log V$ ( <code>w</code> )个。</strong></p><p>当原集合大小大于 <code>w</code> 时,必有元素无法插入,即<strong>线性相关</strong>。</p><p>所以选择性暴力回答询问或输出 <code>YES</code>。</p><p>修改我选择了利用 dfn 序差分。或许还有别的做法。</p><p>这是 $O(n\log V+q\log^2 V)$。</p><p><a href="https://www.luogu.com.cn/paste/whq0sskm">Code for this.</a></p><hr><h2 id="CF724G-Xor-matic-Number-of-the-Graph"><a href="#CF724G-Xor-matic-Number-of-the-Graph" class="headerlink" title="CF724G Xor-matic Number of the Graph"></a><a href="https://www.luogu.com.cn/problem/CF724G">CF724G Xor-matic Number of the Graph</a></h2><p>像 WC2011 那题一样构造特殊环的线性基 $circle$。先表示出来答案。</p><p>就是对于全部的 $u,v$,对 $\sum_{x\in\text{span}(circle)} dis(u,v)\oplus x$ 求和。</p><p>任意建生成树,设 $d_x$ 为 $x$ 到根的异或和。$dis(u,v)$ 就变成了 $d_u\oplus d_v$。</p><p><img src="c.jpg" alt=""></p><p>枚举 $u$,此时我们有三组数,第一组是 $d_u$ 一个,第二组是 $v$ 大于 $u$ 的 $d_v$(为了不算重),第三组是特殊环的基。</p><p>我们要做的就是<strong>每组任选一个</strong>,Xor 起来,求和。</p><p>这里我们可以<strong>按位贡献</strong>。统计下面两组每个位置 0/1 数量。</p><p>用简单的组合数学做。就不细讲了。</p><p>注意图不一定联通。</p><p>时间 $O(n\log V)$。</p><p><a href="https://www.luogu.com.cn/paste/hxxfrsm2">Code for this.</a>(我当时写的时候每个 $(u,v)$ 算了两次,最后除以 $2$,懒得改了。)</p><hr><h2 id="CF895C-Square-Subsets"><a href="#CF895C-Square-Subsets" class="headerlink" title="CF895C Square Subsets"></a><a href="https://www.luogu.com.cn/problem/CF895C">CF895C Square Subsets</a></h2><p>注意 $70$ 以内质数共有 $19$ 个。</p><p>某个数是完全平方数,当且仅当,它每个素因子的次数为偶数。</p><p>我们可以把每个 $a_i$ 变成一个长 $19$ 的二进制串,代表 $a_i$ 中每个素因子次数的奇偶性。</p><p>非空子集乘积为完全平方数,当且仅当,这些二进制串 Xor 为零。</p><h3 id="解法一"><a href="#解法一" class="headerlink" title="解法一"></a>解法一</h3><p>那么我们状压。$f_{i,j}$ 前 $i$ 个二进制串,Xor 等于 $j$ 的非空子集数量。转移很显然。</p><p>怎么优化?注意 $1\leq a_i\leq 70$,所以本质不同的二进制串至多 $70$ 个。</p><p>可以把若干个相同的压起来,dp 时乘一乘即可。</p><p>时间 $O(2^{19}V)$。(不要跟我争是 $O(V)$。)</p><p><a href="https://www.luogu.com.cn/paste/wzoo8uj1">Code for this,312ms.</a></p><h3 id="解法二"><a href="#解法二" class="headerlink" title="解法二"></a>解法二</h3><p>线性基!「非空子集异或和为零」是「非空子集线性相关」充要条件。</p><p><strong>求有多少非空子集线性相关。</strong>延续前面几题的思想,一个基对应着若干个原序列的元素。(你忘了的话请看「前缀线性基」的引用段落)</p><p>剩下的元素的任意非空子集都有一个 Xor 值,且我们可以<strong>唯一选取</strong>选基的一个子集(可为空)使得它的异或和异或上 Xor 等于零。</p><p>哦!</p><p>我们每选取剩下元素的一种非空子集,对应着<strong>一种</strong>不同的选取方案(基里唯一选取)。</p><p>且,每一种合法选取,必对应上面这里的一种选取。</p><p><strong>他们是双射!</strong></p><p>答案就是 $2^{n-l}-1$!($l$ 是基大小)</p><p>减一你猜。</p><p>时间 $O(19n)$。</p><p><a href="https://www.luogu.com.cn/paste/xii0lch2">Code for this,46ms.</a></p><hr><h2 id="CF1163E-Magical-Permutation"><a href="#CF1163E-Magical-Permutation" class="headerlink" title="CF1163E Magical Permutation"></a><a href="https://www.luogu.com.cn/problem/CF1163E">CF1163E Magical Permutation</a></h2><p>我们可以先枚举 $x$,判断是否存在相邻两个数的 Xor 属于 $S$ 的、$0\to 2^x-1$ 的排列。简记 $n=2^x-1$。</p><p>设排列的第一个数为 $\alpha$,第二个为 $\beta$。设排列相邻两两异或值为 $S_{i_1\to i_{n-1}}$。</p><p>则 $\alpha\oplus\beta=S_{i_1}$,即 $\beta=\alpha\oplus S_{i_1}$。</p><p>那可以表示出整个排列:<br>$$<br>\begin{aligned}<br>&\alpha\\<br>&\alpha\oplus s_{i_1}\\<br>&\alpha\oplus s_{i_1}\oplus s_{i_2}\\<br>&……<br>\end{aligned}<br>$$<br>$\alpha$ 不知道哎!没关系!把排列每个数异或上 $\alpha$,得到的还是一个排列。<br>$$<br>\begin{aligned}<br>&0\\<br>&s_{i_1}\\<br>&s_{i_1}\oplus s_{i_2}\\<br>&……<br>\end{aligned}<br>$$<br>现在要解决:不断从 $S$ 里选数,和上一个数异或,得出新一个数。重复这个操作,要构造排列。</p><p>我们设想一下,如果新选的数没被选过,那构造出的一定是新数。</p><p>否则,新选的数会和原先选过的异或相消,<strong>相当于删了一个数。</strong></p><p>所以,这其实是不断在集合中加数、减数的一个过程。</p><p>我们用到的是全部最高位不超过 $2^x$ 的 $S$。这些元素的张成<strong>是</strong> $[0,2^x-1]$,是有解的充要条件。</p><p>假设现在有解。</p><p>我们对这些元素建线性基,并提取出*<em>在基中的 $S$ *</em>,记为 $in$。</p><p>则 $in$ 大小等于 $x$。我们要构造一个二进制数的排列,相邻两个不同位置恰为 $1$,<strong>每个数都代表选择 $in$ 里的哪些</strong>。</p><p>输出时可以用二进制数算出答案。</p><p>构造二进制数排列方法打个暴力找规律就会了。也可以去看别的题解。</p><p>$in$ 这里讲的有些简陋。但如果你对前缀线性基里的引用段落完全理解,这一部分会很显然!</p><p>时间 $O(\log^2 V\log n+V\log V)$。</p><p><strong>我们发现,许多题都是从 $in$ 这种思想开始思考的,通常会有双射,这也是线性基强大之处之一。</strong></p><p><a href="https://www.luogu.com.cn/paste/9gvu19bq">Code for this.</a></p><hr><h2 id="P4869-albus就是要第一个出场"><a href="#P4869-albus就是要第一个出场" class="headerlink" title="P4869 albus就是要第一个出场"></a><a href="https://www.luogu.com.cn/problem/P4869">P4869 albus就是要第一个出场</a></h2><p>求 $a$ 全部非空子集异或和组成的可重集里 $q$ 的排名。</p><p>排名,即小于它的个数+1。</p><p>想象这样的画面,$n$ 个点排成一行,其中有 $l$ 个是黑的,剩下都是白色,这 $l$ 个是 $a$ 的一组基。</p><p>这些黑点有多少子集的异或和小于 $q$ 是很好算的。</p><p>我们思考是否关于每一种黑点的、异或和小于 $q$ 的选择方案,都有等数量的、整个序列的选择方案与其<strong>对应</strong>(可以理解为一对多的映射“黑 $\to$ 黑白”)。</p><p>如果有的话,我们直接用黑点的方案乘上这个等数量即可。</p><p>在选择一组异或和小于 $q$ 的黑点方案<strong>前提</strong>下(设异或和是 $y$),随便画一种白点的选择方案(设 $x$)。</p><p>此时我们不能保证整个序列选择的异或和 $x\oplus y$ 小于 $q$。</p><p>但我们若能令此时序列异或和再异或上 $x$,则 $y$ 是小于 $q$ 的。</p><p>注意 $y$ 可以被黑点<strong>唯一表示</strong>。也就是<strong>再“选”一些黑点!</strong></p><p>但如果黑点贡献到 $y$ 了呢?我们不选它。因为<strong>删它和选两次它</strong>效果是一样的。</p><p>因此,每种黑点的、异或和小于 $q$ 的选择方案,我们可以<strong>通过调整黑点的选择</strong>,<strong>使得</strong>任意一组白点的选择方案(共 $2^{n-l}$ 组)合法。</p><p>直接乘起来?</p><p>若两种黑点的选择方案所拓展出的选择方案有重复呢?</p><p>这显然不存在,因为对于一种黑点方案拓展出的 $2^{n-l}$ 种序列选择方案,异或和相等,且等于黑点方案异或和。</p><p>又因为黑点方案不相等,故不重复。</p><p>(至于求 $k$ 大、求排名,可以消成对角基后当作一种特殊进制做。)</p><p><a href="https://www.luogu.com.cn/paste/9mcyz8hu">Code for this.</a></p><hr><h2 id="P4839-P-哥的桶"><a href="#P4839-P-哥的桶" class="headerlink" title="P4839 P 哥的桶"></a><a href="https://www.luogu.com.cn/problem/P4839">P4839 P 哥的桶</a></h2><p>这么靠后的还有板题?!</p><p>你自己想怎么做吧。时间 $O(q\log n\log^2V)$ 就过了。</p><hr><h2 id="P5607-Ynoi2013-无力回天-NOI2017"><a href="#P5607-Ynoi2013-无力回天-NOI2017" class="headerlink" title="P5607 [Ynoi2013] 无力回天 NOI2017"></a><a href="https://www.luogu.com.cn/problem/P5607">P5607 [Ynoi2013] 无力回天 NOI2017</a></h2><p>这题很妙啊。</p><p>构一个数组 $b_i=a_i\oplus a_{i-1}$。</p><p>则 $a_i=b_1\oplus b_2\oplus …\oplus b_i—-[1]$。</p><p>而且,$a_{l+1}=a_l\oplus b_{l+1},a_{l+2}=a_l\oplus b_{l+1}\oplus b_{l+2}$。以此类推。</p><p>所以 $a_{l\to r}$ 可以被 $a_l,b_{l+1\to r}$ 异或得出。</p><p>与「基内部异或,张成不变」类似,「集合内部异或,张成不变」。所以这两个东西张成一致。</p><p>所以可以建立 $b$ 的基,并用式 $[1]$ 得到 $a_l$,回答询问。</p><p>同时我们惊讶地发现,对 $a$ 的区间操作,由于异或相消的性质,在 $b$ 上是单点操作。</p><p>那么就做完了。时间 $O(n\log^2 V+q\log n\log^2 V)$。</p><p><a href="https://www.luogu.com.cn/paste/14tgkk7c">Code for this.</a></p><p>ix35_ 提到了一种不用前缀的做法。搞明白再回来补。</p><hr><h2 id="CF959F-Mahmoud-and-Ehab-and-yet-another-xor-task"><a href="#CF959F-Mahmoud-and-Ehab-and-yet-another-xor-task" class="headerlink" title="CF959F Mahmoud and Ehab and yet another xor task"></a><a href="https://www.luogu.com.cn/problem/CF959F">CF959F Mahmoud and Ehab and yet another xor task</a></h2><p>对前 $l$ 个建立线性基。</p><p>与 P4869 一样进行黑白染色。(这题感觉是 P4869 弱化版)</p><p>当 $x$ 在前 $l$ 个数的张成里,那么对于白点的每一种方案(设异或和为 $y$)(可知 $x\oplus y$ 在张成里),</p><p>根据「原集合元素的唯一表示」,可以唯一选黑点使得黑点异或和为 $x\oplus y$。</p><p>答案和白点方案双射。那就做完了。</p><p>$O(n\log V+q(\log V+\log n))$。不同写法会有略微差别。</p><p><a href="https://www.luogu.com.cn/paste/jwo2p8t5">Code for this.</a></p>]]></content>
<categories>
<category> 数据结构 </category>
</categories>
<tags>
<tag> 异或 </tag>
<tag> 线性相关 </tag>
</tags>
</entry>
<entry>
<title>多项式全家桶</title>
<link href="/2024/07/30/%E5%A4%9A%E9%A1%B9%E5%BC%8F%E5%85%A8%E5%AE%B6%E6%A1%B6/"/>
<url>/2024/07/30/%E5%A4%9A%E9%A1%B9%E5%BC%8F%E5%85%A8%E5%AE%B6%E6%A1%B6/</url>
<content type="html"><![CDATA[<p>目前只有一些偏简单常用的部分。</p><hr><ul><li><p>多项式的逆元是一对 乘积为乘法单位元的多项式。乘法单位元显然是 $F(x)=1$。</p></li><li><p>对于多项式 $F(x)$,$\ln F(x)=G(x)$ 是指 $e^{G(x)}=F(x)$。</p></li></ul><p>$e^{G(x)}$ 是一个多项式(幂级数)(的封闭形式)!对 $e^{G(x)}$ 进行麦克劳林展开得到它的幂级数(多项式):<br>$$<br>e^{G(x)}=\sum_{n\geq 0}\frac{G(x)^n}{n!}<br>$$</p><ul><li>多项式 $\exp$ 的定义如上。</li><li>多项式求导、积分与普通函数相同。</li></ul><hr><h2 id="多项式乘法(FFT-amp-NTT)"><a href="#多项式乘法(FFT-amp-NTT)" class="headerlink" title="多项式乘法(FFT&NTT)"></a>多项式乘法(FFT&NTT)</h2><ul><li>FFT</li></ul><p>求出 $F(x)$ 和 $G(x)$ 在 $\omega_{n}^0,\omega_{n}^1,…\omega_{n}^{n-1}$ 处的点值,相乘,再插值。</p><p>求点值(DFT):将多项式系数按次数奇偶分开求点值,利用单位根性质划分为两个规模为一半的相同子问题。分治求解。</p><p>插值(IDFT):单位根反演后,左侧是 $n$ 乘上 $i$ 次项系数,右侧是把求出的点值当作系数成为一个多项式,求 $\omega_{n}^{-i}$ 的点值的式子。套用 DFT 求解。</p><p>FFT 是在复数上的实现,在代码中使用浮点数。</p><ul><li>NTT</li></ul><p>设 $g$ 是质数 $p$ 的原根之一。</p><p>将 $g^{0},g^{(p-1)/n},g^{2(p-1)/n},…,g^{(n-1)(p-1)/n}$ 替换掉单位根。</p><p>可以完成多项式乘法在数论上的实现。</p><hr><h2 id="多项式求逆"><a href="#多项式求逆" class="headerlink" title="多项式求逆"></a>多项式求逆</h2><p>给出 $F(x)$,要求 $G(x)$ 满足 $G(x)F(x)\equiv1\pmod{x^n}$。</p><p>设 $R_0(x)F(x)\equiv1\pmod{x^{n/2}},R(x)F(x)\equiv1\pmod{x^n}$。</p><p>假设已知 $R_0(x)$,试求 $R(x)$。</p><p>因为 $R(x)F(x)$ 在模 $x^{n/2}$ 意义下也是 $1$。所以有 $R_0(x)\equiv R(x)\pmod{x^{n/2}}$。</p><p>相减后做平方,则模数就升到 $x^n$,两侧再同时乘以 $F(x)$ 消去两个 $R(x)$,得到递推式。<br>$$<br>\begin{aligned}<br>R_0(x)^2-2R(x)R_0(x)+R(x)^2&\equiv0\pmod{x^n}\\<br>R_0(x)^2F(x)-2R_0(x)+R(x)&\equiv0\pmod{x^n}\\<br>R(x)&\equiv 2R_0(x)-R_0(x)^2F(x)\pmod{x^n}<br>\end{aligned}<br>$$<br>先把次数补到 $2$ 的整幂再倍增即可。</p><p>边界即一个整数求逆。</p><p>时间复杂度 $T(n)=T(n/2)+O(n\log n)=O(n\log n)$。</p><hr><h2 id="多项式对数函数(取-ln-)(含求导、积分)"><a href="#多项式对数函数(取-ln-)(含求导、积分)" class="headerlink" title="多项式对数函数(取 $\ln$)(含求导、积分)"></a>多项式对数函数(取 $\ln$)(含求导、积分)</h2><p>给出 $F(x)$,要求 $n$ 次多项式 $G(x)$ 满足 $G(x)=\ln F(x)$。</p><p>设 $f(x)=\ln x$。则题目变成了复合函数 $G(x)=f(F(x))$。</p><p>先导再积。</p><p>复合函数求导为:$f(g(x))’=f’(g(x))g’(x)$。</p><p>结合 $(\ln x)’=\frac{1}{x}$ 可以化简。<br>$$<br>G’(x)=f(F(x))’=f’(F(x))F’(x)=\frac{F’(x)}{F(x)}<br>$$</p><p>$$<br>G(x)=\int G’(x)dx<br>$$</p><p>就差求导和积分了。</p><p>它俩满足:</p><p>【多个单项式的和】的导数(积分)等于【多个单项式的导数(积分)】的和。</p><p>【系数乘未知数】的导数(积分)等于系数乘【未知数的导数(积分)】。</p><p>利用<br>$$<br>(x^a)’=ax^{a-1},\int x^{a}dx=\frac{1}{a+1}x^{a+1}<br>$$<br>可以 $O(n)$ 求出给定多项式的导数和积分。</p><p>综上,求 $\ln$ 时间显然 $O(n\log n)$。</p><hr><h2 id="多项式牛顿迭代"><a href="#多项式牛顿迭代" class="headerlink" title="多项式牛顿迭代"></a>多项式牛顿迭代</h2><p>若已知 $g(x)$,且有 $g(f(x))=0$,可以倍增求得 $f$。</p><p>设 $f_0(x)$ 满足在模 $x^{n/2}$ 意义下 $g(f_0(x))=0$。</p><p>求在模 $x^n$ 意义下的 $f$ 有如下公式:<br>$$<br>f(x)=f_0(x)-\frac{g(f_0(x))}{g’(f_0(x))}<br>$$<br>通过手动构造不同的 $g$,可以很简单地求出一些 $f$。如多项式求逆。</p><p>证明:鸽鸽鸽鸽鸽。(我只挑难的鸽!)看看今年能不能补上。</p><hr><h2 id="多项式指数函数(取-exp-)"><a href="#多项式指数函数(取-exp-)" class="headerlink" title="多项式指数函数(取 $\exp$)"></a>多项式指数函数(取 $\exp$)</h2><p>给定 $n-1$ 次多项式 $F(x)$,求 $e^{F(x)}$ 在模 $x^n$ 意义下值。(满足 $[x^0]F(x)=0$)</p><p>直接构造使得 $g(e^{F(x)})=0$ 的 $g(x)=\ln x-F(x)$。</p><p>$g’(x)=(\ln x)’-(F(x))’=\frac{1}{x}$。</p><p>设倍增的多项为 $h(x)$,套公式即可:<br>$$<br>h(x)=h_0(x)-\frac{g(h_0(x))}{g’(h_0(x))}=h_0(x)-\frac{\ln h_0(x)-F(x)}{\frac{1}{h_0(x)}}=h_0(x)(1-\ln h_0(x)+F(x))<br>$$<br>初始值是 $e^{F(x)}\bmod x=\sum_{n\geq 0}\frac{F(x)^n}{n!}\bmod x$,因为 $F(x)^n$ 大于零次项全都模掉了,而 $a_0$ 又是零,</p><p>所以仅当 $n=0$ 时有 $1$ 的贡献。初始值是 $1$。</p><ul><li>如果不保证 $a_0=0$?</li></ul><p>设 $f_i=[x^i]F(x)$,初值就是<br>$$<br>\sum_{n\geq 0}\frac{f_0^n}{n!}=e^{f_0}<br>$$<br>而 $e$ 在模意义下无意义。这是算不了的。吧?(应该没有什么还不懂的东西能算这个了吧……如果有请教我)</p><p>($e$ 在模意义下无意义,是因为它等于 $\sum_{n\geq 0}\frac{1}{n!}\bmod p$,分母迟早要模成零,出现除以零错误 ×)</p><p>写代码的时候需要注意,$\ln h_0(x)$ 需要在模 $x^n$ 的意义下求,$\ln$ 里面套的那个求逆也要求在 $x^n$ 意义下的!!!</p><p>写 <code>vector</code> 尤其容易写错,还难调。(我就傻了好久)</p><hr><h2 id="多项式开根"><a href="#多项式开根" class="headerlink" title="多项式开根"></a>多项式开根</h2><p>给定 $F(x)$,求 $G(x)$ 满足 $G(x)^2\equiv F(x)\pmod{x^n}$。要求零次项系数最小。$[x^0]F(x)=1$。</p><p>类似上一道题,零次项系数保证的是倍增初值是 $1$。</p><p>直接多项式牛顿迭代:<br>$$<br>g(x)=x^2-F(x)<br>$$</p><p>$$<br>h(x)=\frac{h_0(x)^2+F(x)}{2h_0(x)}<br>$$</p><p>继续注意分母的精度即可。</p><hr><h2 id="下降幂多项式乘法"><a href="#下降幂多项式乘法" class="headerlink" title="下降幂多项式乘法"></a>下降幂多项式乘法</h2><p>给出两个下降幂多项式,求它们乘积的多项式的下降幂表示。</p><p>直接用下降幂和连续点值的相互转换做就好了。</p><p>具体地,求出多项式的连续点值,然后相乘,然后插值。</p><p>求点值是:(直接把解析式化成卷积形式)<br>$$<br>\frac{f(x)}{x!}=\sum_{i=0}^xa_i\frac{1}{(x-i)!}<br>$$<br>插值是:(把解析式化出一个组合数然后二项式反演,再化成卷积形式)<br>$$<br>a_x=\sum_{i=0}^x\frac{f(i)}{i!}\frac{(-1)^{x-i}}{(x-i)!}<br>$$</p><hr><h2 id="多项式快速幂"><a href="#多项式快速幂" class="headerlink" title="多项式快速幂"></a>多项式快速幂</h2><p>法一:快速幂。$O(n\log n\log k)$。</p><p>法二:$F(x)^k=(e^{\ln F(x)})^k=e^{k\ln F(x)}$。$O(n\log n+n\log(k\bmod 998244353))$。</p><p>两种方法的指数都是可以取模的。下面证明抄的<a href="https://www.luogu.com.cn/problem/solution/P5245">【这里】</a>:</p><p>设 $p$ 为一个质数模数,当计算 $f(x)^p\bmod x^n$ 时,根据 $(a+b)^n\equiv a^n+b^n\pmod{x^n}$,</p><p>把每个单项式取 $p$ 次方,又因为 $p$ 大于 $n$,所以只有零次项没被模掉,所以 $f(x)^p\bmod x^n=a_0^p=1$。</p><p>故可以将次数取模。</p>]]></content>
<categories>
<category> 数学 </category>
</categories>
<tags>
<tag> 多项式 </tag>
</tags>
</entry>
</search>