-
Notifications
You must be signed in to change notification settings - Fork 0
/
ravu-3x-r3-yuv.hook
173 lines (172 loc) · 96.7 KB
/
ravu-3x-r3-yuv.hook
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
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//!DESC RAVU-3x (yuv, r3)
//!HOOK NATIVE
//!BIND HOOKED
//!BIND ravu_3x_lut3
//!WIDTH 3 HOOKED.w *
//!HEIGHT 3 HOOKED.h *
//!WHEN HOOKED.w OUTPUT.w / 0.471404 < HOOKED.h OUTPUT.h / 0.471404 < * LUMA.w 0 > *
//!COMPUTE 96 24 32 8
shared vec3 inp[432];
shared float inp_luma[432];
void hook() {
ivec2 group_base = ivec2(gl_WorkGroupID) * ivec2(gl_WorkGroupSize);
int local_pos = int(gl_LocalInvocationID.x) * 12 + int(gl_LocalInvocationID.y);
for (int id = int(gl_LocalInvocationIndex); id < 432; id += int(gl_WorkGroupSize.x * gl_WorkGroupSize.y)) {
int x = id / 12, y = id % 12;
inp[id] = HOOKED_tex(HOOKED_pt * vec2(float(group_base.x+x)+(-1.5), float(group_base.y+y)+(-1.5))).xyz;
inp_luma[id] = inp[id].x;
}
groupMemoryBarrier();
barrier();
float luma1 = inp_luma[local_pos + 1];
float luma2 = inp_luma[local_pos + 2];
float luma3 = inp_luma[local_pos + 3];
float luma5 = inp_luma[local_pos + 12];
float luma6 = inp_luma[local_pos + 13];
float luma7 = inp_luma[local_pos + 14];
float luma8 = inp_luma[local_pos + 15];
float luma9 = inp_luma[local_pos + 16];
float luma10 = inp_luma[local_pos + 24];
float luma11 = inp_luma[local_pos + 25];
float luma12 = inp_luma[local_pos + 26];
float luma13 = inp_luma[local_pos + 27];
float luma14 = inp_luma[local_pos + 28];
float luma15 = inp_luma[local_pos + 36];
float luma16 = inp_luma[local_pos + 37];
float luma17 = inp_luma[local_pos + 38];
float luma18 = inp_luma[local_pos + 39];
float luma19 = inp_luma[local_pos + 40];
float luma21 = inp_luma[local_pos + 49];
float luma22 = inp_luma[local_pos + 50];
float luma23 = inp_luma[local_pos + 51];
vec3 abd = vec3(0.0);
float gx, gy;
gx = (luma11-luma1)/2.0;
gy = (luma7-luma5)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.1018680644198163;
gx = (luma12-luma2)/2.0;
gy = (luma8-luma6)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.11543163961422666;
gx = (luma13-luma3)/2.0;
gy = (luma9-luma7)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.1018680644198163;
gx = (luma16-luma6)/2.0;
gy = (luma12-luma10)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.11543163961422666;
gx = (luma17-luma7)/2.0;
gy = (luma13-luma11)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.13080118386382833;
gx = (luma18-luma8)/2.0;
gy = (luma14-luma12)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.11543163961422666;
gx = (luma21-luma11)/2.0;
gy = (luma17-luma15)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.1018680644198163;
gx = (luma22-luma12)/2.0;
gy = (luma18-luma16)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.11543163961422666;
gx = (luma23-luma13)/2.0;
gy = (luma19-luma17)/2.0;
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.1018680644198163;
float a = abd.x, b = abd.y, d = abd.z;
float T = a + d, D = a * d - b * b;
float delta = sqrt(max(T * T / 4.0 - D, 0.0));
float L1 = T / 2.0 + delta, L2 = T / 2.0 - delta;
float sqrtL1 = sqrt(L1), sqrtL2 = sqrt(L2);
float theta = mix(mod(atan(L1 - a, b) + 3.141592653589793, 3.141592653589793), 0.0, abs(b) < 1.192092896e-7);
float lambda = sqrtL1;
float mu = mix((sqrtL1 - sqrtL2) / (sqrtL1 + sqrtL2), 0.0, sqrtL1 + sqrtL2 < 1.192092896e-7);
float angle = floor(theta * 24.0 / 3.141592653589793);
float strength = mix(mix(0.0, 1.0, lambda >= 0.005), 2.0, lambda >= 0.02);
float coherence = mix(mix(0.0, 1.0, mu >= 0.25), 2.0, mu >= 0.5);
float coord_y = ((angle * 3.0 + strength) * 3.0 + coherence + 0.5) / 216.0;
mat4x3 res0 = mat4x3(0.0), res1 = mat4x3(0.0);
vec4 w0, w1;
w0 = texture(ravu_3x_lut3, vec2(0.019230769230769232, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.057692307692307696, coord_y));
res0 += outerProduct(inp[local_pos + 0], w0) + outerProduct(inp[local_pos + 52], w1.wzyx);
res1 += outerProduct(inp[local_pos + 0], w1) + outerProduct(inp[local_pos + 52], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.09615384615384616, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.1346153846153846, coord_y));
res0 += outerProduct(inp[local_pos + 1], w0) + outerProduct(inp[local_pos + 51], w1.wzyx);
res1 += outerProduct(inp[local_pos + 1], w1) + outerProduct(inp[local_pos + 51], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.17307692307692307, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.21153846153846154, coord_y));
res0 += outerProduct(inp[local_pos + 2], w0) + outerProduct(inp[local_pos + 50], w1.wzyx);
res1 += outerProduct(inp[local_pos + 2], w1) + outerProduct(inp[local_pos + 50], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.25, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.28846153846153844, coord_y));
res0 += outerProduct(inp[local_pos + 3], w0) + outerProduct(inp[local_pos + 49], w1.wzyx);
res1 += outerProduct(inp[local_pos + 3], w1) + outerProduct(inp[local_pos + 49], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.3269230769230769, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.36538461538461536, coord_y));
res0 += outerProduct(inp[local_pos + 4], w0) + outerProduct(inp[local_pos + 48], w1.wzyx);
res1 += outerProduct(inp[local_pos + 4], w1) + outerProduct(inp[local_pos + 48], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.40384615384615385, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.4423076923076923, coord_y));
res0 += outerProduct(inp[local_pos + 12], w0) + outerProduct(inp[local_pos + 40], w1.wzyx);
res1 += outerProduct(inp[local_pos + 12], w1) + outerProduct(inp[local_pos + 40], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.4807692307692308, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.5192307692307693, coord_y));
res0 += outerProduct(inp[local_pos + 13], w0) + outerProduct(inp[local_pos + 39], w1.wzyx);
res1 += outerProduct(inp[local_pos + 13], w1) + outerProduct(inp[local_pos + 39], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.5576923076923077, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.5961538461538461, coord_y));
res0 += outerProduct(inp[local_pos + 14], w0) + outerProduct(inp[local_pos + 38], w1.wzyx);
res1 += outerProduct(inp[local_pos + 14], w1) + outerProduct(inp[local_pos + 38], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.6346153846153846, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.6730769230769231, coord_y));
res0 += outerProduct(inp[local_pos + 15], w0) + outerProduct(inp[local_pos + 37], w1.wzyx);
res1 += outerProduct(inp[local_pos + 15], w1) + outerProduct(inp[local_pos + 37], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.7115384615384616, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.75, coord_y));
res0 += outerProduct(inp[local_pos + 16], w0) + outerProduct(inp[local_pos + 36], w1.wzyx);
res1 += outerProduct(inp[local_pos + 16], w1) + outerProduct(inp[local_pos + 36], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.7884615384615384, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.8269230769230769, coord_y));
res0 += outerProduct(inp[local_pos + 24], w0) + outerProduct(inp[local_pos + 28], w1.wzyx);
res1 += outerProduct(inp[local_pos + 24], w1) + outerProduct(inp[local_pos + 28], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.8653846153846154, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.9038461538461539, coord_y));
res0 += outerProduct(inp[local_pos + 25], w0) + outerProduct(inp[local_pos + 27], w1.wzyx);
res1 += outerProduct(inp[local_pos + 25], w1) + outerProduct(inp[local_pos + 27], w0.wzyx);
w0 = texture(ravu_3x_lut3, vec2(0.9423076923076923, coord_y));
w1 = texture(ravu_3x_lut3, vec2(0.9807692307692307, coord_y));
res0 += outerProduct(inp[local_pos + 26], w0);
res1 += outerProduct(inp[local_pos + 26], w1);
res0[0] = clamp(res0[0], 0.0, 1.0);
res0[1] = clamp(res0[1], 0.0, 1.0);
res0[2] = clamp(res0[2], 0.0, 1.0);
res0[3] = clamp(res0[3], 0.0, 1.0);
res1[0] = clamp(res1[0], 0.0, 1.0);
res1[1] = clamp(res1[1], 0.0, 1.0);
res1[2] = clamp(res1[2], 0.0, 1.0);
res1[3] = clamp(res1[3], 0.0, 1.0);
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(0, 0), vec4(res0[0], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(0, 1), vec4(res0[1], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(0, 2), vec4(res0[2], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(1, 0), vec4(res0[3], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(1, 1), vec4(inp[local_pos + 26], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(1, 2), vec4(res1[0], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(2, 0), vec4(res1[1], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(2, 1), vec4(res1[2], 0.0));
imageStore(out_image, ivec2(gl_GlobalInvocationID) * 3 + ivec2(2, 2), vec4(res1[3], 0.0));
}
//!TEXTURE ravu_3x_lut3
//!SIZE 26 216
//!FORMAT rgba16hf
//!FILTER NEAREST
38892004018c74806e00eb8be3034d89241f53a17c9ca421431b561a8da0679a6924612654240523e82248211c242b21609c49a18e1f4c1bc621659a8ba0b81a0b8c2204f5889b006700548917048f8bd8208f22e11b17a101a1489d10194d9d962ef6260124b22661a046228ea1669ebe316033b7316c274227f322f122b7223f243827aa2e18a0e826f39d58a197226f1cce222d21dfa0f9a02f9d1319319d1726cf249623a827db24ef25ad245c23e2312e2811257e337924d9311228de248536b1388736b438b4388736b1388536618d8408e18a6f8a8584c48c5e064d853f0556a228a0061e7e0c9217ce9e6a9b5d2075245b20eb1f1720b01f2323fa1f54a09ea2df0c8507091e0f9c339f29174b8b66081c8d7b856789e8867c068d8c6a1ddd1f140390a212a271a2079d5ba2922efa2516221e2510a3111984a562a40332d933ed31d52776274622fe24002220242c27e82ef0a1cd2519a44ba53a1b841806212620c4a12da254a24b9d64a2cf27152679253b28d4251c277925ef249d32f22920282f34282777327d297727c036bb38cb36c938c938cb36bb38c03623030e0eb50c0608300cf0098d0e980eec9ddba187a13195179c389bc39fb19f1d2197232e2110215221b8219c233b22f8a17aa2219eee9cbf97b8a0d2a00a9d810cd40ddf02060c8408540e990e3a0a5b131e95e29bbfa0dca095a224a10aa3902d8022d613d91c84a662a1f4a8fba86f322e3448322029de280729b22bfa281d23b0267b2eb0a52e20e8a802a97ea12912961be01e8da067a068a3cba12aa3f32879271c274428d3250528cf25b425e232d32b5c2a5c3444296132fe29b428dd36b138f436ea38ea38f436b138dd366613f9106c99688928995a99f8976b9cd29a20987c1ba4195b1d1b9b06a0a296939e49a211a29a1727994f9911935c9e7a90099c6f92431b8c1e5c982e9fdc10d89aa08dd393d6987294109c5e97b29a27a0891bb994a19e429e5812911c4598e12d951629a450208d996aa03594d01c49338034fe329c21e21d58a759a9eea791a1dd20b02ed39cf622998e819d50a05a1c00212598d29db39fe09cbe14249c549e4f20191d39a4ea9427a400938b9add33752409a7d63495aa7433ee1ea5a88238f1399238003a003a9238f1398238af9468921198d592ae9233932a0eac8e63982d95fc16a919d0189f94e09d3e992ca2c5a31fa47708269bb582bd19cc9a729cd49d58988514331e48988f9cae1a4599e896859a5392ff962587ea11959541a28c1c5d1b42a1399a3ca0ff96819de32d7d0c62a51b229b9d149c5a9af119eb32373473329120d21a43a72ca84aa7609c3c258d2fb89f972410a0c0a2fea01925ba25a81eaf982ba21ea430a3e9a58a1fb926ca267ba5521e7ba60a9bef8c45341f28e9a40a3517ab8433ad18e2a96838d1398538ff39ff398538d1396838688394092386e482518575092a10ef0c43960599b796fc09840d2d98ea9ab798f69fcc9dd29f780842837c98cd053e98429c869d95997188ee099c9c339e3a9cc68cc00021902c86f586e50e1312de0caca485a329a4259ecd9ca89b258d2a97992cef9c7ba4d71dbd9d179807a4099f3d32ed33dc317b21f61fd32053279b21ae263b29ac2f669dab20b9a7f2a8bca5e125f226a626d39c7c9e3ea749a753a8972a8f2aa829cf1a181c32a629a5e1a55a343c2c1b29d534c2a2b232721c15a5f4376d391738a039a03917386d39f437a1a184a0c59d909807117f1ae11b2718bd2451242d196c1bb99dc89e66a037a0a41960a3e095be20351e931d6714ea18749e7f209f23149e8e1ef39bfd9b590c74a0fda2daa48614ff9ba71ad91df71c851ee0240024ac9d78162ca5d8a368a0b62b77a4fea425989493ba191421509b4b337c349a329420cd16f1a554a9e3a5a8a06f9a292d7d9c911d279f5f20be1e68253b279424351a61a0baa160a596a7818619250a23a7a5f09da4a4211d4a1cc5335e2527a5da34f9ab8d32e6a271aa7c38e339b138383a383ab138e3397c3834a011a0519f6e9110915d1ce91c031b0d21a222661e67144595499e569f2e9d82205a91a7204e1b9a17309aec9b119ddf9c021b5a1e0e906a1a818c339bca95aaa279a4e2a52796a295e71d8420502001212826002619981a82bba43ba53da5132884a8e5a85a9690999624ae257c200f320e33d0303d20db08069971a2c2191a2825290f2f5d9f1e1e46a4ce8dfe174c29232a6129b11b6e9db3a658a802a918299a2bbe2adda7f1155ca8711c7623b434572d032af0349aacbb2fc8ad6caf2838a439a838503a503aa838a4392838f0a0fca025a13c83859439079c0ed18e3922bc212622fe13181af1168a0cbc1acb0e751c3d16209c739c309a8118ff98eb2155218923801c051991150e9b458d02a54da5d4a52696c28d808619144e04a4a920a873a57b1f3509cea161a69ca6bead64b123b116159524282a3f29412a9d304032672d83a661a6c425102c772a5131153155334324730dfda7bda811a786302931c4318a0e9c1ef2aa59ac85ac0430082f8e2ddfa2d218a6b05daf0aaec2366f329a31f43433aa5625b4b285b3e737d639a838003a003aa838d639e7378195488c93942d94f791fa94158a6f93961960a48f9a76240a225120e0a09f1ba9a45c100aa527a1f7a11ea3da1c03a4d49cd7a43d1a0322f3246d1c6ea099215895ba8d3996aa92c9943b94d68be295919d68233d942ba658a40da4161ea6a04930202825272429d41c722602a08d225c3222341e324b20f51d74a35f9b3ba30a28f1289b30171c75290c2185a1f325321ae2249b9012a42ca6b7a0021d74a4bb98e41c1a9c011d961c6ea0df936ba03333ba2692216f34201ce6322a25511f2a373039493733393339493730392a374f92fd072091ef92b490d992ab81a1904819a7a1319109223a204b20449bcd1d5da31a1984a386a08aa0caa0941de6a0679b8ba3d9153a2058220d1ea39bb6205792490c8f92f4922a94279360849e94739f9d1f41a0a6a5e1a487a5a299a1a4412ff725ee263e2889203e245aa4111fb831763321313d1b1698fca47918b6a47929bc2976307a211129fa196ea58f221a13b124391f70a45da537a52f9fa8a63d277127682432249521b9201423d71dd133a42a27298c345e24db323d27f425d236f7382937193919392937f738d2366f899e0cc900b78c4387f28b53051b83ab99b69f5c9b541c101aa91aaa90b818f79e3516e59ef294e20e9998641c7401fc9eb3a11a9aa9138c18ab95b89caf82d6094912230d638d618def8e7e851490229c2a9c90a218a47ba43ba43ba1f9a4832df524e9231223499a021daaa4be9e6a31b132a7308624b521b116d425471ac72a1b2c2c30211c3d266da21ca67795be21c825ab27c6a22da283a686a50fa7be2ca62b8229fa287d259427fc2532241e34d32e562d983489283b32812ad228da3522387236cb38cb3872362238da35361796128999060d3d99739864972c9cb59dca96981db9126e1eb59c9c9f3890f99934a3e8a4cd1d329f3608e292fca0589f479ffd18ff15fc2122978d9d891e269cf696609c4e98da992e9b04967b9c36a250148199569e4a9ebe1a4f1e1192552d9b9bd6a4d01c10928aa063175020b0338c34be324424c48d44a7b8a9a7a82b9ddd24c82f879f4c25e79ee6a0869edb20042488195a9df7a02e9f8d985ca10195f4228e20aaa40b96a0a665a030a12934cf26b8a5e034beaa2b33739592a97038f139a338ff39ff39a338f139703818917f8f7b975f933e93af93600d35901b0ec111de1c991baf1b1892f39d9e943fa328a44ba51e95c09ee9947619749e6fa125a2da9abd18c8206b1831982320899b9a99ca9d42958799a18ff113e197f4a5309c639ce4a0ef9b2090391d3600b42c4ba41aa8da20ec966717781c4e2272334c340d3202229c9d41a8a3a854a80e223629bd3095a0c226d0a4eba536a301286b286a2438957ca3d4a5d6a58aa85b251129c92887a69f1d21aa82a55da4cb342f2b659524354aabe93209a528ac4c38d739a238fc39fc39a238d7394c388f930e8915938a92c9907190470e1e8d4b21cf1c47209d1d031cd413db9c858297a5f9a1dca4489f239e5a9da51ba29c9ea2d0a495a0261db01ddd1c1a9a1f1b20900515e794af969597619751042898aca9a2a6e4a775a35aa0561d5f245a20b72a99a829a819253d20832742209d2729328d338b30499e5ba44da84e9b5ea6462c902c7c31942185282fa575a9b5a1ec2a772c7e2bc0a0b8a4baab33abebacc42d402ef92c6fa43a994aad7aab10ac5c356e2e8a2c5d357ba3b23275a5e5a858376039283893399339283860395837d7a162a01c9d609cad17e719fa1cc11b0225cd240515691d27a09e9eeba05da10824a6a1608d1e23671ef71a6199ed8be3a5658c6024f7a03a237e9a6094892036a12fa470a7611503a1dd1ca11e3e156c90b222e2202d9b9f9014a49ea26ea05a278ca8caa64da26819ef1e9d243815113469349631a62657a1d2a1c0a85ba58520c725622fc1a20d2531a7879a07210d26ba280f28641c2da222a558a834aabb245a286d2518a55ca0dca6b292010f7f34ef2aef20ce3457ab38319ba950ac3538df39e4382f3a2f3ae438df39353837a104a17ba03598640f0a1c5c1dbf1cdb24c9249e1f421b389c499d909f2f9f361f05962721d616071d42957b0df817bca1be196b2148145d179b90039f479e57a5c6a727a96c986597b220e3226122e79e4b227523ef0c679747a0eda201a40fa70cad06ac08a1961c4826a42734245f3313334f2ff6242aa2191a2d9e7c208c2c772d0f3160a3f02389a872a19013ee29d52b122c451ff29f27a83eaad8ab1c2c692c632afca7730dacab52a39a0e4d3684316a2ff534a9acf22860b1cfb18e37a6390f39503a503a0f39a6398e3786a124a1e2a02d8bcd9162186b181916a1247023c7213a12ce147a0f0d1254198722f021f120a0960c938b9a1d14fc189e2398268d28bd199713efa275a46ea43ea9e7a97daa13975e9038227c22a821faa906a7afa4d6155796199ca9a129a4a4aff6b02fb0f39cf91c362957284326183123301b25172008a0392a0b2b012c3a3131319432a79ec61f93a9b8a5a99bcc30c4315132a418429acead3daea3ae42327f31133070a8061dd9ae65aa5ea60938c334b6332d357ead21ad9db4d9b4d4350439cd38553a553acd380439d4356e95f88c3a94c6932891a094c28ade92bb1a51a4e9997e241f22f21f43a1ce1a21a43f18d2a475a0f4a1c9a2d61c1ea4cf9d0aa5031c07223d25161c98a0ba213595ac8d55963b928e946194e08c1396c39d2323af9523a65aa47da3fc1e28a02e300e2819270d29aa1ccf26409ec72270321c3408328921401ecfa15295d4a133284a29ad30501aa529be201da162267e1c2425d015afa300a608a0871d31a44998db1ccb9c401db71b85a15a9aafa134331427362261341e1eb932c0246c1f0b3726393f37293929393f3726390b37e292dd82fd904192578fce91ab807e8f531b8ca1f68c632269200920b59c7b1d6da32e1bb5a387a0bda083a1421ddaa19c9d64a4171657201523021ebb9cf820b292480a20937a9216942793a883a49438a1cf1d6da0a2a5bda4c9a4e28ba2a3e72ecb24fa250b28ae1f2125f9a27e201432943316313a20339356a43a1b5fa3422a072bd7308f217129071925a5f322b3191b25082103a418a55da4ce9d33a623266b26b421f52242209992201e5f9710346d2b35298a349b2390326425f523aa36f2384137123912394137f238aa36368ce50947819e8cb083fd8a8d059f00de93ef9e0f96ec1d5a1ccd1cf38cca1a9e9e7b1df29d9c995e10d399c61e47138fa09fa37f9ad014111ad890959d11115101e4113b0b2e8e578ef28f1285b9908da16e9fa7a37ea47ea425a44ea034a4e22c0c21a9208622a19d071b0ea5389fc731b1326030b3250f210c9bae246408672c422dc03097201a2867a114a624997e1e3c25162870a1c7a02da599a443a69e2bab29cd2646285e245624e7235f20a9342b30b22d99343b28f0313d29c826b1352b38d736be38be38d7362b38b13580187f1232991510ad9842987297bb9bb79eeb93361e5688621e9e9cd59eab06cf8df8a3e7a5232068a08916a39490a1baa2dfa0841cfa8e6723c295c69bf420bd9c6a9a519fea96dd9bb3991c94b19c19a3c58be499ce9ddf9d4d1cff1ecf0eab2c87a040a5d50b1913a5a07e1c7a210f34993487320c26c19dcba608aa28a9bb95ec26573091a1e2261da3eba2289dd522eb24cf1db49be7a1619fcd9cf4a3890df1232521fba4b495eda771a2f3a25c345b28c6a4e034ceaadf3202a024aa5e38f239b238fd39fd39b238f2395e385d919e9127980394419215945f0e268ea01c211a811e731dec1b438b6b9ec893e1a314a43fa5e59aaf9e909c2516d29f1aa42da4819db51bf620721daf954d20599d999c1fa0ce97fa991093b515b7965ba6979c0b9c1ca05f9c2c1ac61ec012d52ae9a7e7a8ac1c0618a81f46220b250334593496317524e8a24fa8c8a86aa8ed256f2b8c3118a2562828a767a707a46e28e7286425121148a433a6f2a65aa9a1251629842806a7571c1dabbaa65ba52e35a72c2e20293573ab4032cca8e6ac2b38db39c538fd39fd39c538db392b3856944d8b93939c93829052913e0ed68c1324c31dbb201320581dd216fb9de613daa5ac9d81a3d8a12aa05aa2331602a157a59ba700a4ba20e61f9520ff9c651b549ba993619c439a42995b99c411e19881a8a2a2d3a319a24ca0251df322821b8327ccaacca825233d235928ee23be28f132ad338b2f0d9eb8a767a9d59e08a7cd2d7f2ebf3244239429cea5e5a95ca12929772b472a24a0eca44eaa27aa89ac682b192c3e299ea6309cfaac8ea9b6a9f835dc2fe62c823522a6f53156aac0ab0d3777397238a239a239723877390d37e3a187a0589d829dfe18cc188c1df51c532549256510b21f3fa1439cdaa0f1a1c026afa16e985c24bc1fac161a9b1e14e5a81a9e7f2596a3fa24199a84151f23bfa064a4b7a8f619f9a3a91c0c1d9b9a89964622df1fd1832c9ad5a286a2f8a01e9ca3aa63a75ba61c20c42053263a1d7e345f34ae308d2910a684916aa8b7a5252562299830faa43028d8a929a32c232b266a294629d11d93a3d0a544a9e7ab6f273329d62593a4e5a099a7e69bc496f434e12ca826b434a6aa123002ac94acf037df391939273a273a1939df39f0377ca109a1c09f589ba8167087b519841bd425462417165820149f7219e19bfd9efe21c11a98233a9c2921b49e181ba921e0a2bc1c2622b21a0699b99a32a24ea3fea6eba81aaa9496ad984321d922f521b4a190202c21d31ae09bf99cf8a1a4a265ac43ae38abe7a4e5221c26d8263f222f34b732752c252826a65d23191a36230c2dce2ef23180a6082731aa22a1b021db2ae02c442d4a2250a324a940ac7aad532d322dbf2ad1a70e9513ac58a35915d5364532b92fe53493ac231cc7b16ab1ac368c396439563a563a64398c39ac36d19d099de39ceb89888fab082710ab0fd31e0c15248ec809b215fb18ac15c114a72501242d1def9571951b0f5e1f03214c232d28e2296f1adf10c0a552a6bda552aae2aa15ab3697278e4624e0235a2229a451140e1dab1a739a93986b9ef79f5fafc5af50ac76a0fd2179225a14669d7631d32d3aa9c123c1a4cc2a522add288531e131db3252a4c524daa799205b297d2e92308931271f23a026afbdaf0bb0bc30562f5b2c6fa9c62090aa6c21b9260a38db34a6325d359eae0facc6b3e9b2b434c0382b39693a693a2b39c038b4343f95f28d0194f49225907b94218c8692a71878a40d9c4824cc21291edfa1321734a38118c1a4d09eb6a136a2941c1ea49b9f34a5381cb6216525c81904a16a210c95f18e4396539110942794ce8cca952c9d04231090e0a525a437a23820fe9d203020280b27e928da1b1227d99b1f23973222340e326223fa1faa9f560a15a03f289829c230fa14b429472079a09026f01e9d255d1b11a3d4a5929df11e70a3569a461b099e0d1d4e1b04a3689ef9a22633f02634215334781d88321c24861cf93620393c37233923393c372039f936a3920e882c907991208df5905482838d4d1a25a287967e223a20811ed79ef71a88a2f31c7ca3b59f53a0f7a1c31c45a23ba017a526135d207923db1dd39d9f20e9921d020a94c3916293b09368888494d6a1861d419f7da565a437a3b81b32a1ba2e7e2490259527011e7c2567a140218132c8332b319623260c10a2aa1c71a19d2ae52b1e31f020e22915177ba43c24321c5c250c2224a3b9a467a121962aa56b24b0242b1b3821ae1e78a1bd96f29f1334472b77287a34de214a326d23271f9436f53859370d390d395937f5389436318c69080d81ab8c3c02508b6f02b102ea939e9ff391751fcb1ca81d58918819969b9d211e9b549c2918e29ef61dd11115a22ba5de9c771470184a16e09d1f91b282f1102e80198e018c7a901f85bf8e9fa2059f8ba260a453a401a2a99aeba16f2c401a1b1bae20049f8104fea5079f4f32ec325a30ca27ea1f86910525090b452d8d2e623191245f29dea1bba53113d09916221e2708a17f9cb49f4ca065a418295f27d5217d267323ef190c204c1de334fc2f7e2c87345526b031f6277b21ae3548384b37b538b5384b374838ae35f518ed111699be105c9891976d96f39a879e08906a1e79893a1e6d9cb39e6309f61827a48ba62921c8a057186e96aea105a534a2d41d5c993424bd92e598df21049d6b9cdda0d294a29cf1982793ca9c2ea382859c98359dd99d7e1cb71e6b0b072cb6a24aa5679c7119b2a0d11e6d223e34a2344f32e32762a1f2a535aa84a9df186528bd3043a3372875a559a42699b5237225831fc199dda29f9efa9df8a45912cb23902004a563962aa814a362a3873434290da4df34cdaa92321ba386aa4a38f239bf38f839f839bf38f2394a38c58d529104987794e0905b9549095f8f4e20981c061e081fa41a7e0dc29ea1944da3b5a3b3a4369df49c59a0468c11a016a62da5439f161d96203620d496871ea09ed19e89a1de98bb991996b1164a94b3a55a971795799d0d9d891dfa1eb310d62746a9d6a8389b121e21218824e425643466340f314b27d2a58ea7d2a866a88a27a22c50329ba49829d6a818a892a28328122995256a1a22a562a517a7caa9c82468282227e3a6391a0aab80a600a57735482d58211b3569ab7e3191aa33ad0538de39eb38fe39fe39eb38de39053812945f8c3592fd93408c5f91640d0784ed230515ac1b4e206c1d9314009e33172da5f2150fa0fba2129ffaa46c9aeda27aa51ca842a48322901e0120a2a1449ca69c28982a9ea59c7898839d978fe29aa3a547179e83c49eb1a01d1f542169920e2241abf9a66a1b312527281e252129f433d9337a2e23197ea976a9cea1eaa76e2e0730cb33d322b22a76a6afa9719ead201027ad25a89edba455a389a47aa919220624139d3fa8228d85ab13a43ba25b365030022c893556a90f31d8ac59ade3368a39b938bc39bc39b9388a39e336a2a22ea16d9d379e7a1a2b19271eae1d962584256a98892089a264936da08fa2d62801a2819cc2257c21f510b19c121d0dab9ea14d2696a527252e96fd1c5d23e89f90a468a9d11dc0a4141be416ff9ee6128823ad20041b119d6ba3eba369a2baa83fac1fa7f2a89923fc20e4279c21e5345734932fe22bf5a83a213fa8e3a6b027d72b9131aaa6412a31ac04a7a9241126bd29d329e61ec2a425a6b6a985ac4f2855294525faa362a10ea7dc994d917135322ec028ad3442aa352ef8aca4ac7537e4394c39163a163a4c39e43975377fa2e5a0549dbe9d4719fe9ad5172f1c7f264923ba9baf230fa1531f969ed3a17923431350223fa225249aa12c20aa24b6a6cc0fc321a81d7a9dc794f9a1a2a3e4a694a8e5a94511cc9e5f1d571c9f164f1f21260a24432131a0b7a0d8a378a2cfaefdae01a935a85226832540261121a4341e320525ed2999a86a278621a3226d2d573035338aa82c2955ac61a46323672b682dd22d86256ba609abbead02affa2cbd2c76298fa61e9ae4a9598eb1214b37bc32df2ed734a6acbca594b13db0db357839c539583a583ac5397839db355491f6019e961d8511938191b80e701075a265a4af9f12968b1cf1194b98cf9ad925e4216a9d999ba49083116d2067208c9519250f28991f9999a2a428a664a581aab9aa76aa9a99e70f9f245b24fb220c264e287b24261f34a0d7984d164b1a5fae01adc79ccd9f7b23ea137ea13ea025325c2c21ac162007a489297428a0225432e5335d34dfa4ba25f7ac46a4ff263028222cbe2ee921f2a0f1acc1ae81af452973218aa0fdaa8925a09fb8293a29a838b0354531c83577b095ab93b29fb02734c138d239763a763ad239c1382734629527904a94779212907d94058dc192b613d4a4d99c44240c22c01cb0a23a12e1a2d61806a5229e1ea2a7a2301b96a43da070a5eb1ccc21c32560187da16c21af95d39090961a91b1938c94ba8ef195c79b8d23290cc9a523a43da11921459c233055289b27e228021cb52750942b24bb322b34133262242120de9a58196e9d6328e029dd301410f529db20c59e7e271f20ed25e91cc0a2d4a5719a7520aaa2a79ec90da9a0121c8f1965a4cea04fa41a339e2634204a34801d6232b4226718e3361b3933371c391c3933371b39e336c292fb8a7c8fec90548a9a903484408c5918f8a26d9abc222320171d7fa04b16a0a1861db0a3559e4ca065a2b91bf4a2d6a044a53119812034245d1dd59e6920f19248873c94a7900592c293ad8b52947ca1651ec69c4ba507a478a1de1e719eaa2ede248f251227821cc425089f0722eb32fc334631cb253e15c89c411d849f4e2a182c5331871f7f2ab71886a2ba25401d7225f6217aa2a1a4749dfa1836a4e720bf21879abc1f211d3da4839f4ba20634a12adf266534792008325321f4177f36f6386137053905396137f6387f36b18beb087f044b8d8009aa8ccd86f6000a9a24a10f9b7a1fcf19fd1b96964e0e6b1029241890049c241e41a24415188bc2a2eda5439eaa82ab95851ab29de69cfa0c3b11488622893481b091bd8a8888b4a26b9d409f9da23da3c798811c0b9d5a2c501ac218581702a07b9c6ba6399d073339337a3099297e1edb208625cb092c2d3e2fe4311428292b109fc2a36122de9e1820d62557a33b09b917ac1ac49e522650249c991124932309a2a208da1aa734882e0c2a603412226b319325d89bc53562389737aa38aa3897376238c535a3199212c1988612f89741975596849a0ba04d94eb1d9392131e729c699e2a0a8f1c41a418a766226aa1821a6b9967a246a697a39d1eec9cad2470959a959522009dcd9c7da1a493da9c9398b992bf9cbba2f8894e99009cd89d431de61e2714082b0aa4c2a4aaa0541df0a06e2038236d34ad341732e12816a4c1a44aaad3a9a01c5229253187a4fe287ca754a5df8f11249e25cb1fb296e8a3439d969ecfa50d158d23f11ff7a4cd983ca86da309a4aa34052a90a2db34c8aa36322fa5b8aa3838f239ca38f539f539ca38f2393838c488b691e99605958b8c9996e6849b8fb120bd1c931c5920f417f417529ea69584a232a4caa4609e6b9999a2c898a79ff1a7c3a5c59ef11d2a20ac22b692761cc49e49a0fda26d999898ba991417940e23a4bd167514fc98139d4f1e631ea4101c21c5a96ca7b3a3c3210a2197254126e43486348130ea29bfa8d2a540a9fba87b273f2d2a33eca6c22b87aa63a8469c2b28d5283e24571ed0a65ba25ca63baa2222ac264d240ba6068c23aab9a5a8a4ab35652dc61dfe34f4aaab30bdabe6acad37e5391439f839f8391439e539ad37a98d0d0f9382dc94dc0d0795db90168e83216d9c5697d51e621c12941e9d821739a4361e059c7ea22194a5a5cca06ba281a898a947a683221980e2257f1aa795470f618f06a0239d72917fa1439b45984aa2141fc81d4c1486a19c222d22d795662172a9bfa242a076256f243a2205287f340e34b92ed52487aa46a8f4a26da8632e6f3019346521fa2b63a9a0aa1f9de8a13b20f620999e5ca4f52213193ba79ca20fa0baa5e7a80f20f9aa61a0c21c4336e62f2f28623597abc430dbacddadf3369a39e938d539d539e9389a39f336d6a23ba1a29c789ff71b2b0d591d521d032492243e9f2021e1a3791c979ea0a2ea296da328a00c288e221e13e1a0111e74ac3ca48d270ba8eb25859d851edb22109d2ba4aaa9781ff8a4331c0d0c9ca09b20102555219f208d9fcfa3c5a4c1a360ac2aad1aa66dab3626e51eaa282b2453355534b42d582d33ab2e2666a888a898298a2dad327ba7092c91adc3a969244d25cf293a2a8b1e92a5e9a609aae5ac5f282f29152565a46ba1e0a6a795968b0c360e304b2ac3349daa792c11aec8ac0437e8397439033a033a7439e8390437c2a34ca1319b3ca0021ce99b4c1b331d4126b022779ff02430a283210ca04da22218c7a4941bb0a43e26e2a2b2216d2573a8c01efc22901e66a3151a2ba361a56fa527a8cba9a119ce9f621b600fbb987928052980239126f0a200a115a5ada236b002afaaa42cab6b282f24c027212366355e3289a1c72c79ab76282d0b2396502d14317534a4a9302c5caeb6a89e21072a182cd12b082754a8dea853ad0cafa3296f297925aba60d16afa62e212624b6379432872cea349fac1ca60bb172ae6d35a239213a2d3a2d3a213aa2396d3576129a171b90ae0a06947e95b40a211233a64da6fe9825a04920601afd97bc9b5e25e0219a9ac49f6c185a9c5d2055209da65015652170250ba2359ce9a58ca56aa8b2a9c2a968a1081e8524872536245629ec28cd1c7224f4a25f955b0cbb16dfac8aaa77207a8f3420421deea35fa21e33b02c92a8e4a5511aca24d4287d255532c2341735f5246a1835af0cac68a0fa9d96993f29b497031d34a6ebabc6add2a86ea8d9a020ace127769ad829d42807396f35eb2bda35a8b037a840b10daf0934e138533a633a633a533ae13809346795ef90fe93a091e68d1d94f28cda91fa8df3a4cb9edd235721c11adaa20f9280a10e1acaa4b99a82a1daa16f1a84a40da16aa53d1d2b21b525ba1097a10a21879599918d9672909a927094368f9795ef986723991756a555a357a011218b9816306b286b27a228ab178727f60ee223e232303425328c258d210c1270199c981528f129e3309f99f5293620e69cc327c920d025591df4a18da593958a20e5a123a0b19236a1601b6f19a3a448a18aa405335e26791d3b34eb1b40326622a20cdd361a3936371a391a3936371a39dd36de929d8d768ff08fe78719904986ac8bee9509a49b9de3211a204e189ca1e08cc89e641d2ea49f9882a0daa1ca1a8aa325a1eda4a91d1e20a024ce1971a0791f1c93318d4c94fa8d69905e93898cd793299f35202d97cba4eda231a0f31f0f9aa12ea92510266b2627162c2605990d225f331e3470312e28641b8a1c101efa9a3d29e92b77319516402b7c1a2b9ed9277d1e2e25bb208da1aea49193b51d5aa28b14711c0ca0471ede1b81a4c6a072a3c7338429f0234334361fb431ee1ef88e6d36f9386837fe38fe386837f9386d365f8e49829306418c740604864884d585a69bb5a18d9d601d7e199e08c19ccb844992db222198898d2c1bcea03f1b5c9c369dd4a369967a07390e1c818fa0a59c250c450f138a660a1607a890f18421861ea040124199aba131a06a990c1eb511112cfc13661da60c0da2f319e0a4709e0734d2337630862b6120262085232c19402b5b2e65324c27992c4a21bf189326ed9da91c2322d0a20b997518c01d1316da1e0e1da7a03a219d2098a1af942c9a6c34202d8c252a346320c830ab22a898be358838e437a238a238e4378838be354d19831260983c121b97e0976f965c9adda09c97dd1de58f2d1e019b2b9e7e0dd21b7aa4b0a7ed224fa2071c8a9a34a3b8a647a43b1f6d9e3c257f984f909d23cc9cb49ca0a1f592b19c1498f6918c9ccda14d8a159ad5991b9e641d951e0e127f2a33a4fca3e0a21820e2a1bc20dc239734bc34ea31d2297ca5f4a274aa4daa841cd5296d315ba5952987a8eda5da130b249325c51fa19250a4769c659f87a6b9164b235d1edaa4e1991fa828a3dfa3b834782a66a1d134b2aaf33117a6b8aa2f38f239d238f339f339d238f2392f387c8d9f93d395cb943a8235969d84048f5e1d2e1d141d68209d16bc17719e7b95f4a069a536a6d396099b55a1f59943a007a9afa6299c3913f621b322ab135c1f329c1a9f73a3f597c5989b9bc615aa12319d0b1de71229174a9df11d991cb110aaa209aa37a362a8eb245c1c5b2648268a35c034dd2fac2c45abbfa114aa80aab625a72d0834d8a84a2d4eacada8ac21452681272b1e0d203ca81e1077a490aa161abc233d1c34a5c19ba8a8b9a3cca3d7358f2d3386e43487aab92f4bac40ac4637e5393739eb39eb393739e53946374f96df8d7e11119594116e880203b18d1620af9cc89cc920b6152214b69ddf91c8a6f6a0b49ebea14e1c73a25c95349fe6a6c5a71ca620202e9d46257a16fc8f858a799b08a1059c9d14eea05c10d81a911a5822171b108a839ed50a491d221a07a07ea87f1cb4a51f2474243e24e82492357834142e382bceab37a959a924a92229472f7d34ada0012eaba6a4a5f5208c1aad1e05a16d1c79a73b24399a1ba850a657a166a3a1a58a024ea6a09b6aa02636e12ddea3d63430aa992e84ac1aab9236b7393e39c739c7393e39b739923688a2aea0599b379f501c878f421d281e12226323daa15a229ca41c1f039fb2a3b52996a4fba2f6284221741eb5a2b61a11ad37a689281fa9622854a3d31fb424379f8ba4d5a9e81cf5a44d1fdf1673a1cb21a6244121bc21b79fe5a31fa532a4a0ad9dad4aa4caac54283f8df7285a25be357234512ccb2ecbaca42839a92baac729572e7c339ba8e22c6daeadaafd248d25c0290b2a3e1fe2a5b0a6e2a9f7acca281c290124eaa4cba191a50c1c6f144c367030932ac034f0aa462b51ae89acd336ee398a39fa39fa398a39ee39d33648a4aea2549aaea1001fd89a781ea91f6b2944271fa03d28e8a49c213aa39aa3fba5a7aa8096d0a5ef28f4a04024e7266ea991201124901f23a420140fa637a6d1a1cfa606aa730a139fa41e2c2013168e29fb2856212d2849a41ca0c3a554a4abb1cfafa39d7cae092a8621232a1826e5361c34bda5963096aee12823a971a9682b5f30f83421ab5f2f6daf94a833290f26cd2804281825a7a83ba429ab13ae29225d24de2076a86b1b65a3f424aa24dc3758323a2ad6348eac31a692b04aad3135ce39483af639f639483ace393135639cdd986b903699081271904915a714fea239a2b98916a0931c2015ed94f696c3a062a3eb909aa0f622939c0422fd229da54d23818d272530a6a21dd6a3bea4e1a3f0a749a8bda32322cd20cf249624ef2a012900124228a8a3168e8ca06d9dd1acd9a9911b4da6ec1a771f919da7a14035f830119f1829a4a8c0901f9ce99ebc2eda320035c325902a5cae2aac0c9d51a093a22f1ea798c11f4a9983a44faa35ac63a9aa9939ac0928389cf7288c2768384133ac21fd3423ad1fa00fafc9ab5a345939753adb39db39753a59395a3466959f911c94ee90f08cfc93e48dd991ee9856a557a067231121981755a38c9821a0651ba3a49d9247a135a172198aa4e5a18da5591d8920d0259495f4a1c920949597928b96318f97916e946f908495f98ddd23c11af3a4dba2cc9e562112921630a12887276a28ee0e6a27a917e22305333b3440325f2667227b1ded1bc10cc327f529e330e49cf12937209c9915280a21b5253d1d97a16aa5b9102a210da17ea1b49adaa1121a721acaa482a184a4e2328c2517123034731925328e219898dd361a3936371a391a3936371a39dd36de92f08f18909e8d4486758fe287a98b259fcaa431a03620f01f2c97eea2149aa614501e7fa4791cc0a00aa0f41b6ca358a2ada4ba20b71d2c258c938fa1761ed19364904794828c2b8d5993f38d1893e595e4214c1809a49da19b9d1920018da02e68262d26a7250599112623160c22c8334334b3318529ed1eec23361fdb8edb27422b78311d9eea2b8b1ac8163e29741f9f24a91d73a0eda4cd191e2024a1c49e9498d8a1681ddc1a2da47da085a35f332f28811c1e340e1e7031631bf79a6c36fd386837f938f9386837fd386c366f8e488cde857e8260849d063e062c8606a0b0a150990c12021e1c9930a04710b21e50216ba1341d909382a0ac203c9a1419fc98c021c61dce1c0816aca2c29da6877b07d587d5845d0f2090540a370ba99b631d5d04b1a1d39c999d6519ce020c2c710f8c1aa014daa4a91d0da2759e71342a34bc301e2dd2222f259c20bc963d26912c76320118582e65223927052b499c7e0f6b988ca0c3a36391980a929c6c95878a90a0e7224e1b8c960f1b569c0b34862bc81ed2339b236a308920fe1ab735a038ec3787388738ec37a038b7354c193c12e09783126f9660981b975c9acda1d599641d4e8a951e159a1b9e0e12b916daa41fa84b2328a35d1ee199dfa387a650a4c51f659f9325769ca1920b248c9cb19ca0a1f691b49c1498f592cc9cdda0e58f019b9c972b9edd1d2d1e7e0d7f2ae0a2e2a133a4bc20fca31820dc23b834d134f331782a17a666a1b2aab8aada1395296d31eda5d52987a85ca5841c9d233c253b1f4f9047a47f986d9eb8a6d21bed22071c7aa48a9ab0a74fa234a39734d329f4a2bc3474aaea317ca54daa2f38f339d238f239f239d238f3392f387c8dcb9435969f939d84d3953a82048f319d2917f11d0b1d991ce8124a9db110161a34a5a8a8bc23b9a33e1cc19bcca390aa3ca82b1e77a481271e100d204526aa12c59873a3c6151a9f9b9bf597329c5e1d6820bc172e1d719e141d9d167b95aaa262a85c1c09aa5b2637a3eb244826d735e434b92f8f2d4bac308687aa40acac214a2d0834ada8a72d4eacd8a8b6255c1ff621299cab13afa6b322391307a9f4a0d39655a169a5f59936a6099b43a08a35ac2cbfa1c03414aadd2f45ab80aa4637eb393739e539e5393739eb3946374f9611956e88e08d02037e119411b18d911a0f8ad70a5822491d171b839e221a50a6a1a54ea657a19f9b66a3960269a01ba878a705a1399aad1e3b246d1c8c1ad81a9d1408a15c10799beea0059c878a1620c9202214af9cb69dc89cb615df9107a0b4a574247ea83e247f1c1f24e8242636d634992ee12d84acdea330aa1aabf520012e7d34a4a5472faaa6ada02229fd8f2e9d1ca67a16c5a746252020e6a6c8a6bea173a2f6a05b95b49e4e1c349f9235382b38a9783459a9142eceab24a99136c7393e39b739b7393e39c739913688a2379f888faea0421d599b501c281ecb21bc21e5a3a6241fa54121b79f32a4ca28eaa491a51c290c1c0124cba16e14f7ace2a50b2ae2a9c029b0a63e1f8d2573a1f4a4d5a9df168ba44e1fe81c379f13225a221c1f6423049fdaa19ca4b2a3a0adcaac428d9dadf7284aa454285a254c36c034462b703050ae932af0aa89acfd24e22c7c33adaa572e6dae9ba8c729b42462288928d31f37a654a31fa911adb529f628731e96a4b5a2fba24221b51abe35cb2ea428723439a9512ccbac2baad336fa398a39ee39ee398a39fa39d33647a4ada1db9aaca2771e579aff1ea71f8d292c281ba0fb28c3a5572149a453a42c2276a866a35e24f424dd20691baa2413aea7a8042829abcd283ba417250e261d16129f07aa2d20cfa6a31e780ad1a16a293d289d21442739a31ea0e7a499a3abb17cae8621cfaf232aa39d092a1926dc37d63431a6583292b03a2a8eac4aad33295f2ff83495a85f306daf20ab682b38a624a4122410a692202314931f6da9f9a5cfa5f5a0a7aa3f248496ef28e726e5369530e1281c3423a9bda596ae70a93135f639483ace39ce39483af6393135649c36997390dd9849156c900712a714ef2a4228178e01298ca00012a8a36c9d35ac39ac399c62a9f728ac9909288d274faac11f2f1e83a493a24999a89851a09624232249a8cf24f0a7cd20bda3e1a3ffa216a0211539a2ef94b289941cf896d1ac4ea6791fd9a9929d951beb1aa8a16838fd341fa041330fafac2123adc9ab0f9d8f2a00352aacda325caec225bc2ebfa430a67c8dd7a34d23a21d27259da5c3a09aa0949c62a30422f290f622fe2240351829c290f8301d9c119fa4a8e79e5a34db39753a59395939753adb395a34629577927d942790058d4a941290c192c79bc9a53da18d231921290c23a4459ca79e121c65a4c90dcea0a9a08f194fa4aaa2d4a5e91c7520ed25719ac0a21f20f195b1939096ba8ed3908c941a91af95b6134424c01cd4a4b0a2d99c0c223a122330e228b527552850949b27021c2b241a334a3462329e26b4223420801d67187e27f529dd30c59ee029db20141063286c21c325eb1c7da170a56018cc213da0e1a2229ea7a2d618301b06a51ea296a4bb326224de9a2b345819133221206e9de3361c3933371b391b3933371c39e336c292ec909a90fb8a34847c8f548a408c7ca14ba578a1651ede1ec69c07a4719ee720bc1f3da4bf21839f879a211d4ba236a4a1a4f621fa187225749d7aa2401d529405923c94ad8b4887c293a790f1925918bc22171df8a27fa06d9a23204b16aa2e1227c425de24089f8f25821c0722063465340832a12a5321df267920f417ba257f2a533186a2182cb718871f4e2a692034243119d59e44a55d1d8120d6a0a0a1559e65a2861db91bb0a34ca0f4a2eb32cb25c89cfc33411d46313e15849f7f3605396137f638f638613705397f36b18b4b8daa8ceb08cd867f048009f600b4a29da2c7986b9d811c409f3da30b9d5226112409a25024a2089c999323da1ac49e3b09d625ac1a1820b91757a3de9e888834814886bd8a3b11b0912289fa0c0a9a7a1ffd1b24a196960f9bcf194e0e5a2c58177b9c501a6ba6c21802a0399da73460346b31882e93250c2a1222d89b6122292be431c2a33e2f109f14282c2de69cab95439eb29deda5851aaa82c2a26b10049c41a2292444151890241e198b07339929db20393386257a307e1ecb09c535aa389737623862389737aa38c535a3198612419792125596c198f897849abba2009c431df889e61e4e99d89d27140d15f7a43ca88d236da3f11fcd9809a4cfa5e8a3cb1f969e9e25439db2961124bf9cda9c7da1b992cd9c9398a393009d0ba09392729c4d94699eeb1d131e2b0a082baaa0f0a00aa46e20c2a4541d3823aa34db343632052a2fa590a2c8aab8aae08ffe28253154a552297ca787a4a01c9522ad249d1e9a9597a37095ec9c46a68f1c6622821a41a46b9918a76aa167a26d34e128c1a4ad344aaa173216a4d3a93838f539ca38f239f239ca38f5393838c48805959996b691e684e9968b8c9b8f23a4fc984f1ebd16631e7514139da41022220ba623aaac26b9a54d24068ca8a43baad0a63e245ca6d5285ba2571e2b28950e9898fda2141749a0ba996d99c49eb1205920f417bd1c529e931cf417a6951c21b3a30a21c5a997256ca7c3214126ab35fe34ab30652dbdabc61df4aae6ac469cc22b2a3363a83f2d87aaeca67b27761c2a20c59eb692c3a5ac22f11df1a784a2609e99a232a4c898caa46b99a79fe434ea29d2a5863440a98130bfa8fba8ad37f8391439e539e5391439f839ad37a98ddc9407950d0fdb909382dc0d168e4aa24c149c22141f2d22c81d86a1d7959ca2e7a8f9aa0fa061a0baa50f20c21c3ba75ca4f62013193b20f522999ee8a14598729106a0439b618f7fa1239d470f8321d51e12946d9c1e9d5697621c8217662142a06f2472a93a22bfa27625052843366235c430e62fdbac2f2896abddad1f9dfa2b1934a0aa6f3063a96521632ea795188047a67f1a98a9e225832281a839a47ea2a5a5361ecca0059c21946ba27f34d52446a80e34f4a2b92e87aa6da8f336d539e9389a399a39e938d539f336d6a2789f2b0d3ba1591da29cf71b521d9b209f20cfa31025c5a455218d9fc1a35f2865a4e0a62f29a79515256ba1968be5ac92a53a2a09aacf29e9a68b1e4d259ca0f8a4aaa90d0c2ba4331c781f109d03242021791c9224979e3e9fe1a3a0a260ac6dabe51e2aadaa281aa636262b240c36c334792c0e3011ae4b2a9daac8ac6924092cad32c3a98a2d91ad7ba79829db22eb258d27851e3ca4859d0ba874acea290c281e136da3e1a028a08e22111e5335582d2e26553466a8b42d33ab88a80437033a7439e839e8397439033a0437c2a33ca0e99b4ca14c1b319b021c331d7928912600a1052915a58023f0a2ada2a329aba6afa66f292e2179250e1626240caf54a8d12b53ad182cdea80827072abb98ce9fcba9600f27a8621ba1196fa54126f0248321b0220ca0779f30a24da236b02cab2f2402afc027aaa46b282123b637ea341ca694320bb1872c9fac72ae9e21302c7534b6a814315caea4a9502d61a566a3fc222ba3c01e151a901e73a82218b0a4e2a2c7a4b221941b3e266d256635c72c76285e322c0b89a179ab23966d352d3a213aa239a239213a2d3a6d357612ae0a7e959a17b50a1b9006942112562972245f95ec285b0ccd1cf4a2bb16d2a820ac769a6ea8d829d9a0e127d428c6ad031d3f29ebab969934a6b497fa9d3624081ec2a98725b2a9852468a16aa833a625a0601a4da6fd97fe984920bc9bdfac7a8f421d8aaaeea3772034205fa20739da3537a86f3540b1eb2ba8b00daf68a06a1817350cacc23435aff52455328ca50ba26521e9a55015359c70259da65e25c49f5a9ce0215d209a9a6c1855201e33e4a5ca24b02cd42892a8511a7d250934633a533ae138e138533a633a09343f95f4927b94f28d218c0194259086922c9de0a537a204233820109025a4fe9d569a0d1d04a3461b689e099e4e1bf9a270a3d4a55d1bf11e9d25929d11a3f01eca9510944396ce8cf28e279453910c95a7184824291e78a4dfa10d9ccc2131172030e92812272028d99b0b27da1b1f23263353348832f0261c243421781d861c9026b429c23079a098294720fa143f286a216525381c04a134a5c819b6219b9f34a3d09e36a28118941cc1a4b6a11ea497326223aa9f2234570a0e32fa1f15a0f93623393c37203920393c372339f936a3927a91f5900e8853822c90208d838dd6a17da537a3861db81b419f65a432a16b24372178a1b024bd962b1bae1ef29f2aa5b9a40c2221965c2567a124a3321c849462930a9468881e02af93c391e9924d1a7e22811e25a2d79e87963a20f71aba2e95277c257e2467a19025011e402113347a344a32472b6d237728de21271f3c24e2291e317ba4e52b1517f0209d2a9f2079232613d39d17a5db1d5d203ba088a2b59ff7a1f31cc31c7ca353a045a28132962310a2c833aa1c2b31260c71a194360d395937f538f53859370d399436318cab8c508b69086f020d813c02b1029fa260a401a2059fa99a8ba253a4eba118297d26ef195f270c20d52173234c1d65a47f9c1e274ca01622b49f08a1d099bf8e018c2f802085f1107b901a8eb282ea93751fa81d9e9f5891f391cb1c88196f2cae207e04401afea51b1b049f079fe3348734b031fc2ff6277e2c55267b2131135f296231bba58d2edea19124452d1f917018de9ce09d2ba54a16771415a2969b549ce29e9d21f61d1f9b2918d1114f32ca278691ec3205255a30ea1f0a0bae35b5384b37483848384b37b538ae35f518be109197ed116d9616995c98f39a2ea3359d7e1c8285b71e9c98d99d6b0b591204a52aa8cb2315a39020639662a3f8a4dda2831ffa9d72259f9ec199b523ca9ca29cdda027936b9cf198d294049d879e79896d9c0890b39e6a1e3a1e6309072c679cb2a0b6a2d11e4aa571196d228734df34923234291ba30da4cdaa86aa26993728bd3059a4652875a543a3df18df213424d41de59834a2bc925c9905a5f6182921571827a46e968ba6c8a0aea13e34e327f2a5a23435aa4f3262a184a94a38f839bf38f239f239bf38f8394a38c58d77945b95529149090498e0905f8fb3a5799d891d5a97fa1e17950d9db310c824e3a60aab682880a62227391a00a5caa922a5952517a7122962a56a1a83284a94bb9989a1b116d19e1996de98a09e4e20081f7e0d981cc29e061ea41aa194d627389b212146a98824d6a8121ee42577351b357e31482d91aa582169ab33ad92a29829503218a8a22cd6a89ba48a27871e9620439fd5962da53620161d16a64da3369d59a0b5a3468cb3a4f49c11a064344b278ea76634d2a80f31d2a566a80538fe39eb38de39de39eb38fe3905381294fd935f915f8c640d3592408c0784a3a5c49e1d1f47175421a283b1a06a9219223fa885ab062413a4139d218d3ba27aa9dba4ad2589a4102755a3a89ead20e29a78982a9e978f2898839da59ca69ced234e2093140515009eac1b6c1d33170e226a1b272841ab1e25f9a6312521295b3689350f315030d8ac022c56a959ad719eb22acb33afa9073076a6d3226e2e449c901e42a4a2a11ca8012083227aa52da5fba2faa4f2156b9a0fa0129feda2f433221976a9d933cea17a2e7ea9eaa7e336bc39b9388a398a39b938bc39e336a2a2379e2b192ea1271e6d9d7a1aae1de612041b6ba38823eba3ad20119d69a24f28faa30ea75529dc99452562a14d9185acc2a4d329b6a9bd2925a6e61e1126ff9ec0a468a9e41690a4141bd11de89f96258920639384256da06a9889a28fa2baa8f2a8fc203face4271fa799239c217135ad34352e322ef8acc02842aaa4aca924412a913104a7d72b31acaaa6b0275d2327254d26fd1c9ea12e9696a50dabd628c225f51001a2b19c819c7c21121de534e22b3a2157343fa8942ff5a8e3a67537163a4c39e439e4394c39163a75377fa2be9dfe9ae5a0d517549d47192f1c4f1f4321b7a02126d8a30a2431a078a2fa2c8fa6e4a9bd2c598e76291e9ab12102af6ba6d22dbead682d09ab8625672b9f16cc9ee5a9571c94a85f1d4511e4a67f26af23531f4923969eba9b0fa1d3a1cfae35a88325fdae402601a9522611214b37d734bca5bc3294b1df2ea6ac3db063232c29353361a4573055ac8aa86d2da2a37a9dc321f9a1cc0fc794a81db6a679233fa29aa143132c2050222524aa24a434ed296a271e328621052599a8a322db35583ac53978397839c539583adb3554911d858291f601b80e9d96119370100c26261fd7984e284d167b2434a04b1a4529fdaaa09f7321b8298aa089253a2981aff2a0be2ec1ae222cf1ace9213028fb22e70f76aa5b24b9aa9f249a9981aa75a21296f11965a44b98af9f8b1ccf9a5faecd9fea1301ad7ea1c79c7b233ea0a838c83595abb03593b2453177b09fb0ff26ba255d3446a4e533f7acdfa4543264a599990f2828a61925a2a4991f8c95d925999b8311e4216d206a9da49067202532162089295c2c742821ac07a4a0222734763ad239c138c138d239763a27346e95c693a094f88cc28a3a942891de92c29d23a67da32323fc1eae955aa428a04a98401d85a1db1c599acb9cb71bafa131a400a6d015871d242508a0afa37e1c13968d945496e08cac8d61943b923595ba1a7e24f21f51a443a1e9991f22ce1a2e300d29cf260e28409e1927aa1cc72234336134b9321427c02436221e1e6c1f6226a529ad301da14a29be20501a3328ba213d25021c98a00aa5161c0722cf9d21a475a0c9a23f18d61cd2a4f4a11ea470328921cfa11c3452950832401ed4a10b3729393f37263926393f3729390b37e2924192ce91dd82ab80fd90578f7e8f38a1a2a5c9a4cf1de28b6da0bda4a2a32326f52298926b26211eb42142205f9733a618a50821ce9d1b255da404a4b319a49416942093a883480a27937a92b292531b632209208ca1b59cf68c69207b1de72e0b282125cb24f9a2fb25ae1f7e2010348a3490326d2b642535299b23f523f4227129d73025a5072b07198f21422af82015231716bb9c64a4021e57209c9d6da387a083a12e1b421db5a3bda0daa114323a2056a494333a1b163133935fa3aa3612394137f238f23841371239aa36368c9e8cfd8ae5098d054781b0839f008da17ea425a46e9f4ea0a7a37ea434a49e2b46285624ab29e723cd265e245f2043a6c7a0162899a43c252da570a17e1eb990578e3c0b1285e411f28f2e8e5101de93ec1dcd1cef9ef48c0f965a1cca1ae22c8622071b0c210ea5a920a19d389fa9349934f0312b303d29b22d3b28c82624991a28c03014a6422d67a19720672c1111111a7f9a959d9fa3d890cf148fa09e9e9c99d3997b1dc61ef29d5e104713c731b3250c9bb132ae2460300f216208b135be38d7362b382b38d736be38b1358018151042987f1272973299ad98bb9b19a3ce9d4d1cc48bff1ee499df9dcf0e880dfba4eda7f12371a22521b495f3a2f4a3e7a1cf1dcd9ceb24619fb49bd522b19cdd9b519f1c946a9ab399ea96bd9cb79e57889e9ceb93d59e361e621eab06ab2cd60ba5a087a07e1c40a519137a215c34e034df325b2802a0c6a4ceaa24aa289de2265730eba2ec261da391a1bb95f4206723841cc69bdfa0c295fa8ebaa2cf8d23208916f8a3a394e7a568a090a10f340c26cba6993408aa8732c19d28a95e38fd39b238f239f239b238fd395e385d91039415949e915f0e27984192268e5ba61ca02c1a979cc61e0b9c5f9cbf12a12506a71dab1629baa68428571c5ba55aa948a46425f2a6e72833a612116e28b796fa991fa0b515999c1093ce97599da01c731d438b211a6b9e811eec1bc893d52aac1ca81fe9a74622e7a806180b252e3529354032a72ccca82f2073abe6ac07a456288c3167a76f2b28a718a2ed254d20f620819daf952da4721db51b1aa4e1a3e59a909c14a425163fa5af9ed29f033475244fa85934c8a89631e8a26aa82b38fd39c538db39db39c538fd392b3856949c9352914d8b3e0e93938290d68c81a819a2251da2a2f322d3a34ca0821b682b9ea6faac192c8ea93e29319cb6a989aceca4472a27aa772b4eaa24a02929e1984299619cc411a9935b99439a549b13241320d216c31dfb9dbb20581de613832725235928cdaaef23cca83d23be28f8358235f531dc2f56aae62c22a6c0ab5ca19429bf32e5a97f2ecea54423cd2d651be61f00a4ff9c9ba79520ba2057a5daa5d8a15aa2ac9d331681a32aa002a1f1320d9e67a9ad33d59e8b2fb8a708a70d37a2397238773977397238a2390d37e3a1829dcc1887a08c1d589dfe18f51c8996d183d5a2462286a2df1f2c9af8a06f2793a499a73329e69bd625e5a0c496e7ab93a3462944a96a29d0a5d11d2b269b9af9a3b7a80c1d64a4a91cf619bfa05325b21f439c4925daa065103fa1f1a11e9c5ba6c420a3aa532663a71c203a1df434b4341230e12c02aca826a6aa94ac2c233028983029a36229d8a9faa425251f23fa247f2584151a9e199a96a3e5a8c0265c24ac16afa11a9b6e98bc1f1e147e348d2984915f346aa8ae3010a6b7a5f037273a1939df39df391939273af0377ca1589b718709a1b519c09fa816841bb4a1d31af99c9020f8a12c21e09ba4a2532dd1a713ac322d58a3bf2a0e9559157aad50a3442d40ace02c24a94a22db2af521ad981aaad922eba843219496fea6d425582072194624e19b1716149ffd9e65ace7a41c2643aed82638abe5223f22d536e534231c4532c7b1b92f93ac6ab1b0210827f23122a1ce2e31aa80a60c2d4ea30699262232a2bc1cb99ab21ae0a2fe213a9cb49ec11a181b98232921a9212f3425285d23b732191a752c26a63623ac36563a64398c398c396439563aac36d19dec89ab08099d2710e39c888fab0f29a4ab1a939851146b9e0e1d739af79fbc306fa990aa562f6c215b2cc620b9260bb023a08931bdaf923026af271f7d2e5a22278e15abe023e2aa4624369752aad31ec809fb180c15ac15248eb215c1145faf76a07922c5af5a1450acfd21669d0a385d350facdb34c6b3a6329eaee9b25b29c524db329920e131daa752a48531bda5df10e22952a62d28c0a56f1a4c23a725ef951b0f01245e1f2d1d719503217631c223cc2ad32d522a3aa9c1a4dd28b434693a2b39c038c0382b39693ab43481952d94fa94488c148a9394f7916f93919d2ba60da46823161e3d9458a4a6a0bb98011d6ea0e41cde931a9c961c6ba074a42ca69b90021de224b7a012a4321ae295c9943996d68bba8d3b94aa92589596197624512060a4e0a08f9a0a229f1b493024297226202802a02527d41c8d2233336f34e632ba262a259221201c511ff32575299b3085a1f1280c21171c0a289921f3243d1a6ea0d7a46d1c0322d49ca9a427a11ea35c10da1c0aa5f7a103a45c324b2074a322345f9b1e32f51d3ba32a373339493730393039493733392a374f92ef92d992fd07ab812091b490a190739fa6a587a59d1fa29941a0e1a4a1a43d273224b9207127142368249521d71da8a65da5391f2f9fb12437a570a41a139e942a948f926084490c2793f4925792481909224b20a7a1449b31913a20cd1d412f3e283e24f7255aa4ee268920111fd1338c34db32a42a3d2727295e24f4258f22112976306ea5bc29fa197a217929b6205822d915a39b8ba30d1e3a20679b5da386a0caa01a19941d84a38aa0e6a0b8313d1bfca47633791821311698b6a4d23619392937f738f73829371939d2366f89b78cf28b9e0c5305c90043871a83229c18a43ba42a9c3ba190a27ba4f9a4be2cfa289427a62bfc2582297d2532240fa72da2ab2786a5c82583a6c6a2be211490618d230d7e854912ef8e638dd609ab99541caa1ab69faa905c9b101ab818832d1223021df524aaa4e923499abe9e1e3498343b32d32e812a562d8928d22877953d262c301ca61b2c6da2211cc72aaf828c181a9ab89cb3a1ab95a913fc9ef79ef29499983516641ce59ee20e74016a318624b116b132d425a730b521471ada35cb387236223822387236cb38da353617060d74989612649789993d992c9c36a2569ebe1a50144f1e81994a9e11920095aaa4a0a6f42265a08e200b9630a15ca1f7a088198d9804242e9f5a9ddb207b9cda99609c0496f6962e9b4e98269cb59db912b59cca969c9f981d6e1e3890552dd01c8aa09b9b6317d6a4109250202934e0342b33cf267395b8a5beaa92a9869e4c25c82fe6a0dd24e79e879f2b9d891efc21fd188d9d479f2297ff15589ff999cd1d370834a3e292e8a4329ffca0b033442444a78c34b8a9be32c48da7a87038ff39a338f139f139a338ff39703818915f93af937f8f600d7b973e933590f4a5e4a02090309c391d639cef9b36005b2587a621aa112982a5c9289f1d5da48aa87ca36a24d6a56b28d4a538950128e1978799ca9df1139a99a18f4295899b1b0e991b1892c111f39dde1caf1b9e94b42cda2067174ba4781c1aa8ec964e22cb342435e9322f2b09a565954aab28ac36a3c226bd30eba53629d0a495a00e222320c820da9a319825a26b18bd186fa13fa31e95e99428a476194ba5c09e749e7233022241a84c34a3a80d329c9d54a84c38fc39a238d739d739a238fc394c388f938a9271900e89470e1593c9901e8daca975a3561da2a65f24e4a75aa05a20c42d6fa44aad402e7aabf92c3a9910acebacb8a47e2b33ab772cbaabc0a0ec2a28989597e794510406156197af9620904b219d1dd413cf1cdb9c4720031c8582b72a1925832799a8422029a83d209d275c355d35b2326e2e75a58a2c7ba3e5a8b5a185287c3175a9902c2fa59421462c1f1bb01d95a01a9ad0a4dd1c261d9ea297a5489f5a9df9a1a51bdca4239ea29c2932499e4da88d334e9b8b305ba45ea658379339283860396039283893395837d7a1609ce71962a0fa1c1c9dad17c11b6c902d9b14a4b2229ea2e2209f906ea0bb2418a5dca65a28b2926d255ca0000f34aa2da20f2858a8ba2822a5641c0d263e1503a170a7a11e2fa4dd1c611536a10225691d9e9ecd24eba0051527a05da15a274da2ef1e8ca89d24caa6681938157f34ce343831ef2a9ba9ef2057ab50ac07210d25622f879ac72531a7c1a2852089203b2360246094658c7e9af7a0e3a508241e23f71aa6a16199608d671eed8b1134a626d2a16934c0a8963157a15ba535382f3ae438df39df39e4382f3a353837a135980a1c04a15c1d7ba0640fbf1ce79eef0c47a04b22eda27523679701a41c2cfca7acab692c52a3632a730d9a0ed8abf29f122c3eaad52b27a8451fee296122659727a9e322c6a7b2206c9857a5db24421b499dc924909f9e1f389c2f9f0fa708a148260cada42706ac961c34244d36f534f228843160b16a2fa9accfb19013f0230f3172a1772d89a860a38c2c479e5d176b21039fbe199b904814bca1371fd616429505967b0d2721071df8175f33f624191a13332d9e4f2f2aa27c208e37503a0f39a639a6390f39503a8e3786a12d8b621824a16b18e2a0cd911916faa9d615199c06a7a9a1afa4579629a4423270a8d9ae7f3165aa1330061d5ea6a3ae429a51323daec431ceada418cc30a8215e907daa7c22e7a9382213973ea9a1243a127a0f70230d12c721ce145419a4aff39c3629f6b057282fb0f91c432609382d3521adc3349db4b6337eadd9b4a99bc61f9432b8a5313193a9a79e3a316ea497138d2875a49826efa2bd199e238722a0968b9af0211d14f1200c93fc1818311720392a23300b2b1b2508a0012cd435553acd3804390439cd38553ad435a896999593960e8c8b8c50957193ae94e19e7ca656a4ec23341e898b5ba4c3a028a07782aea134176c93db9e7b1a6ba0b1a48ba6c99c561d7524f7a026a46f15c996b6952497ca8cda8c1095d293cf9598159424f720a6a477a0d4998c22501d7e305029df252e2804a10727fb1da8226e339c34463322265925941ea0950b1cbf257729a330b6a18a28b821e61c6927a021d624681636a0eea4951d7822e99b0da6eaa23ba4829a971b36a666a395a47032b51c68a54034bba050325e1a7aa567374c3974374b394b3974374c3967373b9217942094d20c8e824791bb9192919f9ba5a508a696217d9b909db5a4dda4e325ad239e237a26b92402249f213021a4a691a55918089ef92355a5a2a48196a8944c945292e784e30d0f93e992db91a014bc214e203fa2649ab897eb1fae1dd02f7d286a235f27faa40c281e21581e9a3399343a33802957286628d82316273b22c7283b3096a5c028241c5c21d1286920b121c70d629a12a3001e0e20349a26a4d4a012a1d40d6f1c1ba4a5a015a18431129095a57f33140f4c31599970a509372b3929370b390b3929372b3909372082e88c1c8b690ed8068903238a9f85b61f86a3c0a4b81d11a2b29c23a427a51b2c08297e29da2a6b287229e725da2668a60aa3e225b3a4c8245da6a4a3891f218df18c6f0ab902d810178b418c89099d9be8194616f19f4096049db217690e532e6224ef1c22286fa4ed262d11469d75339c34bd323c2df22b3e2ca2285d2a92112c255d2f75a53a2ab9a0f518422962024718129b859a52a03b955114bd9d22a0c4932f993f99ea1528a097900f9818313f222116a5326d25d7303c2183171236d7384236313831384236d7381236c812338dda99af103698fe99a399bd9c49a0e29edd12171cd01c2d946a9e3798829e5fa46fa47920ac95001d31971e9c719c04a03597c0146a21109df99de31c6e9b8495eb94df97508f629c4f99889b249a4f1ad89a6f9718a0531cd51d3095e72d9720c99f5215409011a45e98d31de733db3475338e24581ee8a69aaaaea8939f7323c82e5c9d0d214b0a679c25a17d142d1fdd8c349ffe9b3697fd1bba8ce29ef515bf9a58a2e69463a28a9a599f4133582167a77c344ca9f032ec1c04a88038003a9138f039f0399138003a80381c95d893f3939692090e469879930c906aa281a160a0361dad95751cbd991a9dbc1fd5a5dfa61027929b2a27551ea88c23a67ea20d1f41a314261ea4259874256796d497e29a9d11f3967e8b329372996396991a4c928093bf9da41889197698ea2d9c222f9afe80e6996aa5b19de61a503415358f3345285618c5a435abf5a97da0e4249f2faba24125ac9fe69f439c051cd21e58963e9c999d38960016029c93a2eb8e3f9208a4be1858a4369c449cdd32352096a72f3441a86132431992a76438fe398238ce39ce398238fe396438d98f818fd88adf82040e6890008e6383c9a570a3849d32a1c91fb1a414a0010f722c589c3ca8dd2c52a5f62b301974a73baa0ca45e292ba8a72ae5a847a01029e591dc91048cbb08f310bc8f2090f786010bd5175390be96ed999801ef1536944a2d0c257223b3944a9f8b9da8172b21663417354e330c2c4a249929a79f3594d69c2526de2fa3a7b1288ea292190d287b969a178296419ce89c0998e614b89985a195978a9d13a00c9976a1b5978f9d5731e11103a30633c51eef3057982ba271378639b1372b392b39b1378639713799a17298811a85a0cb1bcc9da1100318a31ecc9d2fa5ee24c9a31724e4164ea0260494a5aaa41c25ee1c2523d19d4d1c9da772a0a5245da55427aaa1651a8825f51cf59bdca4d11d07a38b1a611480a0cb24b01bb09e582467a08119989d23a0b72b0098e7197ca4052102a55d940f9cc933dc348b328625eea2e6a4f1ab62aad91eba1d302d4f202c9a8c9fae9ca4a0be10c21eb123b49b7e206d9bf49d659e2419a020511d62a3fa13dd96ed1d2a1849339320d9a57c3448a995326316cba57838363aae38e139e139ae38363a783832a04191581c10a0e01c509f4991e51a1d21f797a9a42f2631a51426830b25a52c29dca755a8ab2bab1cd42a0517b423ffa8619d702958a82f2aa6a6111c5d2952209b95eaa586207fa4e21d5296b7a21a217114489eaf224d9f791e5795209d2c284f94a12471a8b025d3a8099a8720ba34f434b42f682dd3ad202aa3ac78af061aa11e132f230f282916a4979f202814958a1a7b1ee29a261b8485cb8fce9c6c20301b9c9a62922c9c96207517569d0332e91f669b0633d8a2c530258e4a1623384f3aa438a139a139a4384f3a2338f09f2085901625a04c186aa09292541628a68d10caa1ea9f67a44c9d1199b8a5703164a6b4b00b31a2aed42fcf1096ad1face20acc327bab653298aa53988d31961a7c8b7fa53c1b00a5e8183294a9a4a520c20dcd90eb200c94e4207615ea11e1ac4994602897b0ed28a1b0d816d5288036fe3416245f328bb247316caca9b339a5cd95e53108a50330e0a59818163036995010b321dc99d8201090ec163020f88b16938a96cb012390841582929b96a42fcd0dbf2591304d27442ccf1759297937403a8b38603960398b38403a79372497b695c996da8cca8ccf95d2931095c99c8ba6b1a47524561d6f1526a4f7a0aea1798228a06c9334176ba07b1adb9e56a47ca6e19e341eec23c3a05ba4898b93969995a8968b8c0e8cae94719350956816d624a021eea436a0e99b7822951da3307729bf258a28b6a16927e61cb82146339c346e33592522260b1ca195941edf2550297e3004a12e28a822fb1d0727f7209424981577a0a6a4501d8c22d49936a666a395a4829a971b0da6eaa23ba450325e1a7aa54034bba07032b51c68a574374c3967374b394b3967374c39743752924c94a894e30de784db91e9920f93591891a5a4a6f923089e8196a2a455a59e23ad23e325b9247a2630219f21022408a6a5a59f9b7d9b9621dda4b5a4909d209417943b928e82d20c9291bb914791c70db121692012a3629a349a0e20001e3b30c7283b22c02896a5d1285c21241c3a3399349a33572880291627d82366286a237d28d02ffaa45f27581e1e210c284e20bc21a014649a3fa2ae1deb1fb8971ba4a5a015a1d40d6f1c26a4d4a012a14c31599970a57f33140f8431129095a529372b3909370b390b3909372b3929376f0af18c218dd810b9028909418c178be2250aa368a6c824b3a4891fa4a35da67e2908291b2c6b28da2ada26e7257229c0a486a3b61f11a2b81d27a523a4b29c1c8be88c2082d806690e9f85238a8903129b4718620252a0859abd9d51143b955d2f2c2592113a2a75a54229f518b9a0bd329c347533f22b3c2d5d2aa2283e2cef1c6224532e6fa42228469d2d11ed264616e8199d9b4096f19f690eb217049d28a097900f983f99ea1522a0c4932f99d7303c218317a5326d2518313f2221164236d7381236313831381236d7384236eb9484956e9b508fdf97889b4f99629c359704a0719c6a21c014e31cf99d109d6fa45fa4829eac9579201e9c3197001ddd12e29e49a0d01c171c37986a9e2d94da99338dc8123698af10bd9ca399fe99dc8c2d1f7d14fe9b349fba8cfd1b3697c82e7323939f0d215c9d25a1679c4b0a7533db34e733581e8e24aea89aaae8a6c99f9720e72d40905215d31d5e9811a4d89a4f1a249a18a06f973095d51d531c63a28a9a599f58a2e694e29ef515bf9af032ec1c04a87c344ca94133582167a79138003a8038f039f0398038003a9138e29ad4976796f3969d11729932937e8b0d1f7ea223a6142641a3742525981ea4dfa6d5a5bc1f929b1027a88c551e2a2760a081a16aa2ad95361d1a9dbd99751cf393d8931c95090e96920c90799346985896d21e051c999d3e9c029c001638969f2fe4247da04125aba2439ce69fac9f8f331535503456184528f5a935abc5a42f9a9c22ea2de699fd80e61ab19d69a54c92991a6396bf9d809376988919a31858a4369c449c08a4be1893a2eb8e3f926132431992a72f3441a8dd32352096a78238fe396438ce39ce396438fe398238048cdc91e591f310bb08f7862090bc8f5e290ca43baaa72a2ba8102947a0e5a83ca8589c722c52a5dd2c74a73019f62b849d70a3c9a5c91f32a1010f14a0b1a4d88a818fd98f040edf826383008e689082969a177b96e89c419cb899e6140998de2f2526d69cb128a3a70d2892198ea24e33173566344a240c2c3594a79f992972230c254a2d4a9fb3942b21a8178b9d5390d517010bed99be963694ef15980176a1b5978f9d13a00c9985a195978a9def3057982ba20633c51e5731e11103a3b137863971372b392b3971378639b137dca4f59bf51c07a3d11d80a061148b1aa52472a09da754275da58825651aaaa1aaa494a52604ee1c1c254d1cd19d25232fa5cc9da31ec9a3ee244ea0e4161724811a729899a1cb1b85a00318a110cc9db123c21ebe107e20b49b659ef49d6d9b302dba1dd91e2c9a4f20a4a0ad9c8c9f8b32dc34c933eea2862562aaf1abe6a4e7190098b72b05217ca40f9c5d9402a5b09eb01bcb2467a0582423a0989d8119dd96ed1d2a1862a3fa132419a020511d95326316cba57c3448a949339320d9a5ae38363a7838e139e1397838363aae38eaa59b9552207fa48620b7a25296e21d7029619dffa82f2a58a85d29111ca6a655a8dca72c29ab1cab2bb4230517d42aa9a4f7971d2131a52f2625a5830b1426581c419132a0e01c10a0e51a4991509f7b1e8a1a1495261be29ace9ccb8f8485132fa11e061a2829230f2028979f16a4b42ff434ba34d3ad682d78afa3ac202aa1244f942c28b02571a88720099ad3a8489e71141a214d9faf22209d5795791e96207517569d62922c9c6c20301b9c9ac530258e4a160633d8a20332e91f669ba4384f3a2338a139a13923384f3aa4387fa57c8b961a00a53c1ba9a43294e818cc32e20a1fac65327bab8d31539898aab4b064a67031a2ae0b3196adcf10d42fcaa18d1028a667a4ea9fb8a511994c9d90162085f09f4c1825a0541692926aa0b32150103699d820dc993020ec161090e531cd9539a5033008a516309818e0a51624fe3480368bb25f32a9b36cac473160284994e1aced2897b0d528d816a1b0cd90c20da5200c94eb20ea117615e420841582929b96cb012390f88b16938a96442ccf17592991304d27a42fcd0dbf258b38403a7937603960397937403a8b383996c994e295ba8dd68b5895aa923b949b902ca674a4e224021d321a12a4b7a06ea0011dbb98df93e41c6ba0961c1a9c0da42ba6919d161e6823a6a058a43d94fa942d948195158a488c6f93f79193943d1af3249921d7a46ea0d49c03226d1c9b307529f325f12885a10a28171c0c21e6326f3433332a25ba26511f201c922172262429493002a020288d22d41c2527512076249619e0a060a49f1b0a228f9a0aa5f7a103a45c10da1ca9a427a11ea31e32f51d3ba322345f9b5c324b2074a3493733392a37303930392a37333949378f922a949e94490c60845792f4922793391f5da5a8a6b1242f9f1a1370a437a5b92032243d2714237127d71d9521682487a5a6a5739fa2999d1fa1a4e1a441a0d992ef924f92ab81fd07a190b4902091d9155822b6208ba3a39b679b3a200d1e763011298f22bc296ea579297a21fa19db328c34d1333d27a42af4255e2427293e243e28412f5aa4f725111f8920ee264b2009224819449ba7a1cd1d3a20319184a38aa0e6a01a19941d5da386a0caa021311698b6a476337918b8313d1bfca429371939d236f738f738d23619392937230d618d149049127e85d609638def8eab272da20fa7c82586a5be21c6a283a69427fa28be2cfc25a62b32247d2582293ba418a4229c3ba12a9cf9a47ba490a2f28bb78c6f8953059e0c1b834387c9001a9a8c18af82b3a1b89cfc9ea913ab952c303d2677951b2c1ca6c72a211c6da23b3298341e34812ad32ed2288928562d021d1223832daaa4f524be9e499ae923a91a541cab99aa90b69fb818101a5c9be59ee20e74013516641cf79ef2949998a730b521471ab132d4256a318624b1167236cb38da3522382238da35cb387236609cda997b9cf6960496269c4e982e9b8819f7a05ca104248d98db205a9d2e9fa0a6aaa4019565a0f42230a10b968e20be1a569e36a24f1e501411924a9e81997398060d3617649796122c9c3d998999fd18fc21891e479f8d9d589fff152297c82f4c25869edd24e6a02b9d879fe79e2b33e03429347395cf2692a9beaab8a58aa0d01c552d63179b9b50201092d6a4b59cb912b59d9c9fca9638906e1e981de8a4329ffca034a3e292f999cd1d3608be32c48da7a88c34b8a9b033442444a7a338ff397038f139f1397038ff39a338ca9d8799e1979a99f113899b4295a18f6a247ca38aa86b28d6a501283895d4a521aa87a65b2582a511295da49f1dc9282090e4a0f4a5391d309c3600ef9b639caf935f931891600d7f8f35903e937b97da9ac820232025a231986fa1bd186b18bd30c22636a33629eba50e2295a0d0a4e9322435cb3409a52f2b28ac4aab65956717da20b42c781c4ba44e22ec961aa81892991b1b0ef39dc1119e94af1bde1c4ba5c09e749e28a476193fa31e95e9940d329c9d54a84c34a3a87233022241a8a238fc394c38d739d7394c38fc39a238e79495972898051551042090af9661977e2bb8a4ebac772c33abec2ac0a0baab4aad6fa4c42d7aab402e10ac3a99f92c561d75a3aca95f24a2a65a205aa0e4a771908a928f93470e0e891e8dc990159395a0b01d1f1bd0a41a9a9ea2261ddd1c7c318528b5a1902c75a9462c94212fa5b2325d355c3575a56e2ee5a87ba38a2c83271925b72a422099a89d273d2029a8d4139d1d4b21db9ccf1c8582031c4720dca4239ea29cf9a1a51b97a5489f5a9d8b305ba45ea68d334e9b2932499e4da82838933958376039603958379339283870a703a13e152fa4a11e36a16115dd1c0f282da234aaba2858a80d26641c22a5dca618a5bb24b2925a28010f5ca06d2514a42d9b6c909ea2b2226ea09f90e220e719609cd7a1fa1c62a0c11bad171c9d60243a238920658c6094e3a5f7a07e9a622f0d250721c725879a8520c1a231a73831ce347f349ba9ef2a50ac57abef20ef1e4da25a279d248ca838156819caa69e9e691d0225eba0cd245da127a00515608d671eed8ba6a1619908241e23f71a963157a15ba56934c0a81134a626d2a1e4382f3a3538df39df3935382f3ae43827a965976122c6a7e32257a56c98b220122cf29fd8abd52b3eaaee29451f27a8acabfca71c2c52a3692c9a0e730d632a47a0ef0ce79eeda24b2201a4679775230a1c359837a15c1d04a1bf1c640f7ba06b215d17479ebe19039fbca148149b900f31f0239013772d72a18c2c60a389a8f228f5344d3660b18431cfb1a9ac6a2f482608a10fa7a4270cad3424961c06ac499d421bdb24909fc9242f9f389c9e1f2721071df81705967b0d361fd61642954f2f2aa27c2013332d9e5f33f624191a0f39503a8e37a639a6398e37503a0f397daa5e90a821e7a97c223ea9139738225132429aa3aec4313daecc30a418ceadd9ae70a8423265aa7f315ea6061d1330199cd615faa9a9a106a729a45796afa462182d8b86a16b1824a11916cd91e2a08d2897136ea4982675a49e23bd19efa29432c61fa99b3131b8a53a31a79e93a921ad2d3509389db4c334d9b47eadb6333629f39ca4af5728f6b04326f91c2fb07a0f3a12a1240d1270235419ce14c721f1200c93fc18f0211d148722a0968b9a1b2508a0012c23300b2b18311720392acd38553ad43504390439d435553acd3855968e941396ac8de08c35953b926194d01500a631a42425871d7e1cafa308a085a1401d49985a9adb1cafa1b71bcb9c7da323a6c39dfc1e232328a05aa4af95a094c6936e95c28af88cde9228913a94031c3d25ba210aa598a0cf9d0722161cad30a52962264a291da13328501abe20b93261343433c02414276c1f1e1e3622cf260d292e30409e0e28c722aa1c1927f21f7e24bb1a43a151a4ce1a1f22e999d2a4f4a11ea43f18d61c21a475a0c9a20832401ed4a11c34529570328921cfa13f3729390b37263926390b3729393f3720931694a494480aa883b2927a922793082118a533a61b25ce9db31903a45da49992f5222326201e6b265f974220b421c9a4a2a538a1e28bcf1da2a3bda46da0ce914192e292ab80dd827e8f578ffd9017161523f82064a4bb9c9c9d5720021ed7307129f322072b25a5422a8f21071990328a34103464256d2bf5239b23352921250b28e72ef9a2cb247e20ae1ffa2509206322531bb59c8ca17b1d6920f68cb5a3bda0daa12e1b421d6da387a083a1163133935fa394333a1b14323a2056a441371239aa36f238f238aa36123941373b0b578eb990e411128551012e8ef28f1628c7a043a63c2599a47e1e70a12da5562446289e2be723ab295f205e24cd2625a47ea48da14ea06e9f34a47ea4a7a3fd8a9e8c368c8d05e5099f00b08347817f9a111a11119fa3959d8fa0d014d890c0301a282499422d14a6672c972067a1f0319934a9343d292b30c8263b28b22d071b8622e22c0ea50c21389fa19da920cd1cec1dde93f38cef9eca1a5a1c0f96f29d5e1047137b1dc61e9e9e9c99d39960300f216408b132ae24c731b3250c9bd736be38b1352b382b38b135be38d736519fdd9bb19c6a9a1c94bd9cea96b399cf1de7a1f4a3eb24cd9cd522b49b619feda7fba4890d71a2f123f3a2b49525214d1cce9d19a3ff1ec58bcf0edf9de49942981510801872977f12bb9bad983299841c6723f420dfa0c69bbaa2fa8ec2955730e226289dec26eba2bb9591a11da3df32e0345c3402a05b2824aaceaac6a4a5a0d50bab2c7e1c87a07a21191340a59e9c5688b79ed59eeb93ab06621e361ee7a568a090a1f8a3a394cf8d232089168732c19d28a9993408aa0f340c26cba6b238fd395e38f239f2395e38fd39b2381fa0fa99b796999cb515599dce971093642548a45aa9e728f2a66e28121133a61dab06a7a125baa616295ba5571c84282c1a1ca05ba6c61e979cc0125f9c0b9c159403945d915f0e9e91268e41922798819df6204d202da4af951aa4b51b721d8c31562807a46f2b67a7ed2518a228a7403229352e35cca8a72ce6ac73ab2e20a81fac1cd52a4622e9a70b250618e7a8438b731da01c6b9e211ac893ec1b811e3fa5af9ed29f14a42516e1a3e59a909c9631e8a26aa85934c8a8033475244fa8c538fd392b38db39db392b38fd39c538619c4299e198a993c411549b439a5b99472aeca489ac772b27aa292924a04eaafaac9ea6682b8ea9192cb6a9309c3e29251d19a281a8f322a2a2821b4ca0d3a352919c9356943e0e4d8bd68c8290939300a4e61f651b9ba7ff9c57a5ba209520bf3294295ca17f2ee5a9cd2d4423cea5f5318235f83556aadc2fc0ab22a6e62c592825238327ee23ccaabe283d23cca8d21613201324fb9dc31de613581dbb2081a32aa002a1ac9d3316daa5d8a15aa28b2fb8a708a7ad33d59ef1320d9e67a97238a2390d37773977390d37a2397238b7a8f9a39b9a64a40c1dbfa0f619a91c462993a3e7ab6a2944a92b26d11dd0a599a793a46f27e69b3329c496e5a0d625d5a2d183899686a24622f8a02c9adf1fcc18829de3a18c1d87a0f51cfe18589d7f25fa241f231a9e8415e5a896a3199a983030282c23622929a32525faa4d8a91230b434f43402ace12c94aca6aaa826c4205ba61e9c5326a3aa3a1d1c2063a7439cb21f5325daa04925f1a13fa165106e98bc1f1e14afa11a9bc0265c24ac16ae3010a6b7a55f346aa87e348d2984911939273af037df39df39f037273a19391aaaad98f521eba8d922fea694964321442d50a37aade02c40acdb2a4a2224a913acd1a7532d58a3322d59150e95bf2af99cd31ab4a1f8a19020a4a2e09b2c217087589b7ca1b51909a1841ba816c09f262206994ea3bc1c32a2e0a2b21ab99af2310827b021ce2e22a10c2d80a631aa231ce534d536c7b145326ab193acb92f1c26e7a465acd82643ae3f22e52238ab72195820d425e19b4624fd9e149f171698232921a921c11a181bfe213a9cb49e752c26a63623b732191a2f3425285d236439563aac368c398c39ac36563a643915ab278e5a22e2aae02352aa36974624893123a00bb09230bdaf7d2e271f26af90aa6fa9bc306c21562fb926c6205b2c9398ab1a29a46b9e5114f79f739a0e1dab08eb89d19d2710099dab0f888fe39ce229df10bda52d2852a64c236f1ac0a5db32c5245b29e1319920853152a4daa70fac5d350a38c6b3db34e9b29eaea632792276a05faf5a14c5af669dfd2150acfb18c809d31eac150c15c114b215248e2d1d7195032101245e1fa725ef951b0f3aa9c1a4dd28d32d522a7631c123cc2a2b39693ab434c038c038b434693a2b3943961094ca95f18ece8c0c95539127945d1bd4a570a39d25f11ef01e11a3929d04a30d1d569a689e461bf9a24e1b099e37a2e0a52c9d38200423fe9d25a410907b94f4923f95218cf28d869225900194381c65256a2134a504a19b9fb621c819c230b4299026982979a03f28fa1447208832533426331c24f026861c781d34211227e9282030d99b20281f23da1b0b27291e4824a718dfa178a43117cc210d9cc1a4b6a11ea48118941c34a3d09e36a20e32fa1f15a02234560a97326223aa9f3c372339f93620392039f93623393c370a94629384941d026888e992c391b0930c22b9a42aa55c252196321c24a367a178a138216b24bd96b024f29fae1e2b1b37a37da5d6a1b81b861d32a165a4419ff5907991a39254820e88838d208d2c90261379239f2017a5d39d3ba05d20db1d1e31e2293c24e52b7ba49d2af02015174a327a3413346d23472b271fde2177287c259527ba2e67a17e244021011e9025811e7e224d1ad79e25a2f71a3a2087967ca353a045a2f31cc31c88a2b59ff7a12b31260c71a1c833aa1c8132962310a259370d399436f538f53894360d3959372e80018cbf8ef1101f85b282198e7a901e277f9c65a416224ca0d09908a1b49fef197d2618290c205f274c1d7323d52101a260a49fa2a99a059feba153a48ba2508bab8c318c6f026908b1023c020d81de9c70181f912ba5e09d15a277144a1662315f2931138d2ebba5452d9124dea1b0318734e334f627fc2f7b2155267e2c8104ae206f2cfea5401a079f049f1b1ba81d751fea9358919e9f8819cb1cf3911e9b2918d1119d21f61d969b549ce29e5a30ea1f090bec3205254f32ca2786914b37b538ae3548384838ae35b5384b37dda0a29cca9c6b9c2793049dd294f198831fdda2f8a47225fa9db523c1999f9e2aa804a5591214a3cb2362a3639690207e1c359d2ea3b71e82856b0bd99d9c989197be10f5186d96ed11f39a5c981699d41d3424df2134a2e59805a55c99bd92bd3037282699652859a4df1843a375a59232df3487341ba3342986aacdaa0da4b2a0679c072cd11eb6a26d2271194aa56d9c7989879eb39e089063093a1e6a1e8ba6c8a0aea127a46e96f618292157184f3262a184a9a23435aa3e34e327f2a5bf38f8394a38f239f2394a38f839bf3889a1bb994a94d19eb116a09ede981996952522a5caa9122917a783286a1a62a50aabe3a6c82480a6682800a5391a2227891d799db3a5fa1e5a97b3100d9d17955b957794c58d490952915f8fe0900498439f9620871e2da5d49616a6161d36205032982992a2a22c18a88a279ba4d6a87e311b35773591aa482d33ad69ab58212121389bd627882446a9e425121ed6a87e0d081f4e20c29e981ca194a41a061eb3a4f49c11a0b5a3468c4da3369d59a00f31d2a566a86634d2a864344b278ea7eb38fe390538de39de390538fe39eb382a9e7898e29a2898978fa69ca59c839dad25dba47aa9102789a4ad20a89e55a385ab3fa8192213a406243ba2228d139d1d1fc49ea3a5542147176992b1a09e835f91fd931294640d5f8c0784408c359242a4901e449c1ca8a2a17aa583220120cb33b22a719e0730afa96e2ed32276a60f3189355b36d8ac503059ad56a9022c27286a1b0e221e2541ab21293125f9a693144e20ed23009e051533176c1dac1b0fa0129feda2f2156c9a2da5fba2faa47a2e7ea9eaa7d933cea1f433231976a9b938bc39e3368a398a39e336bc39b93868a9c0a4ff9e90a4e416e89fd11d141bd329c2a485acbd29b6a91126e61e25a60ea7faa34f28dc9955294d9162a145256ba3041be612eba3882369a2119dad202b19379ea2a2271e2ea1ae1d7a1a6d9d4d2627255d239ea1fd1c0dab96a52e969131412aa924d72b04a7b027aaa631ac352ead347135f8ac322ea4ac42aac028fc20f2a8baa8e4273fac9c2199231fa76493892096256da084258fa289a26a98819c7c21121d01a2b19cd628c225f510932ff5a8e3a657343fa8e534e22b3a214c39163a7537e439e4397537163a4c39e5a9cc9e9f1694a8571ce4a645115f1dd22d6ba602af682dbead672b862509abe4a98fa6fa2c598ebd2cb1211e9a7629b7a043214f1fd8a3212678a231a00a24fe9abe9d7fa2d517e5a02f1c4719549dc3217a9da2a3cc0ff9a1b6a6a81dc79435332c296323573061a46d2d8aa855acbca5d7344b3794b1bc323db0a6acdf2e832535a8cfae4026fdae1121522601a9531faf237f26969e4923d3a10fa1ba9b50222524aa2443132c2079233fa29aa1052599a8a3221e328621a434ed296a27c539583adb3578397839db35583ac53976aae70ffb22b9aa5b2481aa9a999f24be2ef2a081af222cc1ae3028e921f1aca09ffdaa4529b82973213a2989258aa0d798261f0c264d164e284b1a34a07b2481911d855491b80ef601701011939e960f28999964a5192528a68c95991fa2a45d34ba25ff26e53346a45432dfa4f7ac95abc835a83893b2b0359fb077b04531ea13cd9f5fae7ea101ad3ea07b23c79cf119129675a24b9865a4cf9a8b1caf9f6a9da4906720e4216d20d925999b831121ac07a4a0225c2c7428253216208929d239763a2734c138c1382734763ad2399096b193f195d390ba8eaf951a918c94e91cd4a5aaa2ed2575201f20c0a2719a65a4121ca79ecea0c90d4fa48f19a9a03da1c9a5c79b19218d23459c23a4290c7d9477926295058d2790c19212904a94eb1cc3256c2170a57da13da0cc216018dd30f5297e27e029c59e63281410db2062324a341a33b4229e266718801d3420b527e2282330509455282b24021c9b27c01c4424b613b0a2d4a43a120c22d99c06a51ea296a4d618301be1a2229ea7a2133221206e9d2b345819bb326224de9a33371c39e3361b391b39e3361c3933373c94059252944887ad8bf192a790c293f621a1a436a47225fa18401d7aa2749d3da4bc1fe720839fbf214ba2211d879a78a14ba57ca1de1e651e719e07a4c69c9a90ec90c2923484fb8a408c548a7c8f31193424692044a5d59ed6a081205d1d53317f2aba25182c86a24e2a871fb7180832653406345321a12af4177920df26c4251227aa2e089fde240722821c8f25171dbc2259187fa0f8a24b1623206d9ab0a34ca0f4a2861db91ba0a1559e65a246313e15849ffc33411deb32cb25c89c613705397f36f638f6387f36053961374886348188883b11bd8afa0c2289b091d6253b09c49e1820ac1ade9e57a3b91709a211245226a2085024da1a93239c99c7989da2b4a2811c6b9d0b9d3da3409faa8c4b8db18bcd86eb08f60080097f04439eab95e69ceda5b29dc2a2aa82851ae431292b61223e2fc2a32c2d1428109f6b316034a7349325882ed89b12220c2a7b9c59175a2c6ba6501a399d02a0c218fd1b7a1f0a9a969624a14e0ecf190f9b1890241e188b292444156b10049c41a27a307e1ecb093933862507339929db209737aa38c53562386238c535aa3897377da1da9cbf9ccd9cb992009da4939398cb1fe8a3cfa59e25969e1124b296439d3ca8f7a40d156da38d2309a4cd98f11f431d009cbba2e61ef8892714d89d4e9941978612a31955969212849af897c1989d1ead24952297a39a9546a6ec9c70952531fe28df8f522954a5a01c87a47ca73632db34aa342fa5052ab8aac8aa90a2f0a0aaa0082b6e200aa43823541dc2a4729c93920ba0699e4d942a0a131eeb1d18a76aa167a241a46b998f1c6622821a173216a4d3a9ad344aaa6d34e128c1a4ca38f5393838f239f2393838f539ca38fda29898940e49a01417c49e6d99ba993e24d0a63baad5285ca62b28571e5ba223aa0ba62222b9a5ac26a8a4068c4d244f1efc9823a4631ebd16a410139d751499960595c488e684b6919b8f8b8ce996c59e2a20761cc3a5b692f1a7f11dac222a33c22b469c3f2d63a87b27eca687aaab30fe34ab35bdab652de6acf4aac61d0a21b3a31c219725c5a94126c3216ca7f4175920b120529ebd1ca695f417931ccaa46b99a79f32a4c89884a2609e99a28130bfa8fba8863440a9e434ea29d2a51439f839ad37e539e539ad37f839143906a072914598618f439b470f239d7fa1f6205ca43ba73b201319e8a1999ef522f9aae7a89ca261a00fa0c21c0f20baa59c224c144aa22d22141fd79586a1c81d0795dc94a98ddb900d0f168edc0d938247a61980a79598a97f1a81a88322e2251934fa2b1f9d6f30a0aa632e652163a9c43062354336dbace62fddad97ab2f286f2442a066213a2272a905287625bfa21294d51e83211e9d6d9c8217621c5697059c21946ba2361ecca039a47ea2a5a5b92e87aa6da80e34f4a27f34d52446a8e938d539f3369a399a39f336d539e938aaa9f8a49ca02ba40d0c109d781f331c3a2a92a5e5accf2909aa4d258b1ee9a6e0a665a45f28a7952f29968b6ba11525cfa39f209b20c5a41025c1a38d9f55212b0d789fd6a2591d3ba1521df71ba29c8d27eb25db223ca4851e74ac0ba8859dad32092c69248a2dc3a998297ba791ad792cc3340c3611ae0e30c8ac9daa4b2ae51e6dab60acaa282aad2b2436261aa6791c20210324979e9224a0a2e1a33e9f28a08e22111e6da3e1a0ea290c281e13b42d33ab88a8553466a85335582d2e267439033a0437e839e8390437033a7439cba9ce9fbb9827a8600f6fa5a119621bd12b54a80caf182c53ad072a0827dea8afa6aba6a3292e216f2926240d16792500a19126792815a50529ada2f0a28023e99b3ca0c2a34c1b4ca1331d021c319bfc2266a361a5c01e2ba373a8901e151a7534302c9e211431b6a8502da4a95cae1ca6ea34b6370bb1943272ae9fac872c2f242cab36b0c02702af21236b28aaa48321f02441260ca0b0224da230a2779f941b3e266d25c7a4b2212218b0a4e2a289a179ab23965e322d0b6635c72c7628213a2d3a6d35a239a2396d352d3a213ac2a9081e3624b2a987256aa868a185243f29031dc6ad9699ebabfa9db49734a6769a20acd2a8d8296ea8d428e127d9a05f95722456295b0cec28bb16f4a2cd1c7e95ae0a7612b40a9a17211206941b9065210ba28ca55015e9a59da67025359c17356a1868a0c2340cac5532f52435af37a8da35073940b16f350dafa8b0eb2b421d7a8fdfaceea38aaa5fa234207720601a25a033a6fd974da6bc9b4920fe989a9a6c185520e0215d205e25c49f5a9c92a8511a7d25b02cd4281e33e4a5ca24533a633a0934e138e1380934633a533a8d969a9297959991368f879572907094591d8da5e5a1d0258a20c920f4a19395a3a4601b23a048a1b1928aa46f1936a157a056a5ef98112167238b9855a399171d94a0916795f28cef90da91e68dfe933d1db5250a216aa597a10da12b21ba10e330f529c327f129e69c15289f99362040323b34053366225e26a20ceb1b791d8727a2281630f60e6b28e223ab176b27c11add23fa8ddaa2f3a40f925721cb9ecaa482a184a40e1a6f1a80a1b99adaa125328d219c9830347019e2328c250c1236371a39dd361a391a39dd361a3936374c946990d793318d898c1c93fa8d5e93bb20aea45aa22e25b51d7d1e8da1919381a4471e8b14c6a0711c72a3de1b0ca031a0cba4299ff31f35200f9aeda22d971990f08fde9249869d8dac8be787768fa91da024791feda471a025a11e20ce197731402bd927e92b2b9e3d2995167c1ab4314334c733ee1e8429f88e361ff0232c266b26a12e0599a9250d22271610264e18e321ee959ca109a4e08c1a209b9d2ea482a08aa3641dca1ac89e9f98daa17031641bfa9a1e34101e5f332e288a1c6837fe386d36f938f9386d36fe386837138a16072186450ff184250c660aa89023220b991316a91cc01ded9dd0a2751898a13a21da1eaf940e1d2c9a9d20a7a06a99aba11ea00c1e4012b51131a041990486418c5f8e48844982d585740693066996390ea59cd4a38fa0369d7a071c816532992c93265b2ebf18402b4c274a21c8302a346c34ab22202da89863208c25f319a60c112ce0a4fc13709e0da2661d9e08601da69bc19cb5a1cb847e198d9d21982c1b5c9cdb223f1b4992898dcea0763061202c19d23385230734862b2620e437a238be3588388838be35a238e437a0a1b19c8c9cb49cf691cc9cf5921498c51f50a487a69325659f0b24a192769c1fa8daa4b91628a34b23dfa3e1995d1e641dd599cda1951e4d8a0e121b9e159ae0973c124d196f9683125c9a1b9760983b1f3c259d2347a44f90b8a66d9e7f986d319529da13d529eda5841c5ba587a8f331d134b83417a6782ab8aab2aa66a1e2a1e0a27f2abc2033a4dc231820fca3019be58fdda02b9e9c977e0d2d1edd1db0a74fa234a37aa48a9ad21bed22071cea317ca54daabc3474aa9734d229f4a2d238f3392f38f239f2392f38f339d23873a3c598aa121a9fc615329cf5979b9b2b1e3ca890aa812777a445260d201e10a8a834a5161ab9a3bc23cca3c19b3d1cf11d2917319d991c0b1db1104a9de7123596cb947c8d9d849f93048f3a82d395299cf6215c1fafa6ab1307a93913b32208344a2dac21a72dada8b625d8a84eacb92fe434d7354bac8f2d40ac87aa33865c1c62a8aaa25b2609aa4826eb2437a3bc1768205e1d719e2e1d7b959d16141d36a6099b43a069a5f599f4a0d39655a1dd2f45ab80aac03414aa8a35ac2cbfa13739eb394637e539e5394637eb39373908a19d14d81a799b5c10858a059ceea005a179a71ba8ad1e399a8c1a6d1c3b244ea6a1a550a6a09b57a16aa08a0266a3d50a108a911a491d5822221a839e171b6e8811954f960203df8db18d94117e111ca62e9dfc8fc5a77a16e6a6202046257d34012ef520472fa4a52229ada0aba6992ed634263684ace12d1aab30aadea37424b4a507a03e247ea8e8241f247f1c2214c9201620b69daf9cdf91b615c89cb49e4e1c349ff6a05c95c8a6bea173a2142eceab24a9783459a99235382b37a93e39c7399236b739b7399236c7393e39d5a9f5a473a18ba4df16379fe81c4d1f0b2ae2a5f7acc029e2a98d253e1fb0a691a5eaa4ca280c1c1c296f14cba10124e5a3bc21cb211fa5a62432a4b79f4121878f379f88a2421daea0281e501c599b89286228b42437a6d31f11ad1fa954a37c33e22cfd24572eadaac7299ba86dae462bc0344c3651ae703089acf0aa932a3f8dcaaca0adf7289dad5a2554284aa41c1f5a221222039f6323b2a39ca4daa1fba24221b61a96a4b5a2b529f628741e512ccbac2baa723439a9be35cb2ea4288a39fa39d336ee39ee39d336fa398a3906aa139f1316cfa62c20d1a1730aa41e0428a7a813aecd2829ab0f2618253ba465a376a82922f4245d24aa246b1bde201ca02d288e29c3a5fb2854a449a45621d89aaea148a4781eaea2a91f001f549a112423a437a691200fa66ea9901f2014f8345f2f33295f3094a8682b21ab6daf31a6d634dc3792b058324aad8eac3a2a86217caeabb1232acfaf1826092aa39d9c213d286b293aa344279aa3e8a41fa08096ef28e726a7aa4024fba5d0a5f4a0bda596ae71a91c3423a9e5369630e128483af6393135ce39ce393135f639483a49a823229624f0a7cf24e1a3bda3cd202f1ec11f4faa93a283a451a0a7984a99389c39ac35acf72863a98c270928aa99168e4228ef2a8ca001296d9da8a3001271903699639c4915dd98a71408126b90818d30a6bea44d23d6a39da52725a21d0035902a0c9dda322aacbc2ec3255cae1fa0fd3468380faf4133c9ab23adac21771f4da6d1ac919dd9a9a7a1ec1a911b201516a0fea2ed9439a2f696931cb989eb90f622fd2262a30422c3a09aa0939c119fa4a8e99ef8301f9c40351829c090753adb395a34593959395a34db39753a8b969791849597926f909495318f6e943d1d6aa50da1b5252a210a2197a1b910caa4121a7ea182a1b49a84a4721adaa1cc9ef3a4f98d5621dd231292dba2c11afc93ee906695e48d9f91d991f08c1c94591dd025c9208da5f4a1e5a189209495e330f1291528f5299c99c327e49c372025323034e2328e218c259898731917126a276a281630a817a128e223ee0e872798176723ee9855a356a58c98112157a0a3a447a18aa4651b721921a09d9235a140326722c10c3b34ed1b05335f267b1d36371a39dd361a391a39dd361a39363747942b8d18936490f38dd193828c5993a91deda424a19f241e20741f73a0cd192da4681dc49e7da0949885a3dc1ad8a19b9d09a4e5951920e421018d9da14c18758f9e8dde92e287f08fa98b44861890ba202c25761eada48fa158a2b71d8c937831ea2b3e29422bc816db271d9e8b1a70311e345f33631b2f28f79a0e1e811c1126a725a02e231668260c2205992d262c973620259feea2caa4149af01f31a07fa4c0a06ca3501ef41ba614791c0aa0b331ed1edb8e4334361fc8338529ec236837f9386c36fd38fd386c36f9386837d5875d0f370b7b07540aa687d58420906b98c3a3929c7e0f980a499c8ca063918c96e7226c950f1b878a569c4e1b90a0999db1a1a99b6519631dce02d39c5d049d067e826f8e3e06488c2c866084de85c021ce1cc29dfc98aca21419c61d08167632582e052b912c39273d26011865226a30d2330b348920862bfe1a9b23c81ea91da0140c2c0da2710f759edaa48c1a1c990c1206a030a0b0a14710021e50996ba190933c9a5021ac20b21e341d82a0bc30d222bc962a349c2071341e2d2f25ec378738b735a038a038b7358738ec37a0a1b49ccc9cb19cf5928c9cf69114983b1f47a4b8a63c256d9e9d234f907f98b0a77aa4d21b4fa2ed2234a38a9a071cdd1d9c97dda02d1ee58f7e0d2b9e019b609883124c191b973c125c9a6f96e097c51f93250b2450a4a19287a6659f769c6d31d529841c95295ca5da13eda587a8ea31bc3497347ca5d3294daa74aaf4a2fca333a47f2a1820e0a2dc23bc20e2a1159a4e8acda11b9ed5990e12951e641d1fa828a3dfa3daa4e199b9164b235d1ef33117a6b8aad134b2aab834782a66a1d238f2392f38f339f3392f38f239d23873a31a9f329cc598f597aa12c6159b9b299cafa607a9f62139135c1fab13b32236a669a5f4a0099bd39643a0f59955a1141d2e1d5e1d9d1668207b95719ebc17d3959f937c8d3a82cb94048f9d8435962b1e812745263ca80d2090aa77a41e100834a72db6254a2dd8a8ac21ada84eacdd2fc0348a3545abac2c80aa14aabfa137a309aaaaa2eb2462a848265b265c1ce8120b1d319d4a9d2917b110991cf11da8a8b9a3cca334a5c19b161abc233e1cb92f4bac40ace43487aad7358f2d30863739e5394637eb39eb394637e539373908a1799b878a9d14059cd81a5c10eea01ca6c5a7e6a62e9d2020fd8f7a164625b49ef6a0c8a64e1cbea1349f5b9573a2c89caf9c1620b615c920df91b69d22147e11e08d4f9694111195b18d02036e8805a1ad1e8c1a78a76d1c1ba8399a3b247d34472f2229012eada0f520a4a5aaa6142e78349235ceab382b24a959a938a97f1c7ea807a01f24b4a5e8243e247424171b5822911a839e0f8a221a491dd70a4ea69f9b69a0a1a5960250a657a166a3992e84ac1aabd63430aa2636e12ddea33e39b7399136c739c7399136b7393e39d5a98ba4379ff4a4e81c73a1df164e1f892837a611ad62281fa9b424d31f54a3fba296a4b5294221f628b51ab5a2731edaa1642313229ca45a22b2a3049f1c1f599baea088a2501c379f281e421d888f0b2ac0298d25e2a53e1ff7ace2a9b0a67c33572ec729e22c9ba8fd24adaa6dae512c7234be35cbaccb2e2baa39a9a4284aa49dada0ad5428caac5a25f728428d4121a624cb21b79fbc2132a41fa5e5a391a50c1c6e14eaa4cba1ca281c290124462b50ae89acc034f0aa4c367030932a8a39ee39d336fa39fa39d336ee398a3907aacfa6d1a1129f780a1d162d20a31e122492206da924a4931f38a610a623148496a7aaf9a5ef28cfa5e7263f24f5a01ea044276a29e7a43d2899a339a39d21579aaca247a4ff1eada1a71f771edb9a0428cd280e26a7a8172513ae29ab3ba4f8345f30682b5f2f20ab332995a86dafbda51c34e53696ae953070a923a9e128a39dcfafabb1092a7cae1926232a86215721fb288d2949a42c2853a4c3a51ba066a3f424aa2476a8691b2c225e24dd2031a692b04aadd6348eacdc3758323a2a483ace393135f639f6393135ce39483a49a8f0a7e1a32322bda39624cf24cd207c8d4d239da530a62725bfa4d7a3a21df29062a3c3a0f6229aa0fe220422949cb28939a2ffa2941c16a0f896ef9421156c90dd98649c07123699a714491573902f1e93a251a0c11fa8984faa83a449990035da32bc2e8f2ac2250f9d2aac5cae119ff8304035a4a81829e79e1d9cc290951bd9a9d1aceb1a4ea6a8a1929d791f00120129ef2aa8a342286c9d8ca0178e399cf7288d2739ac092835ac62a9ac991fa00fafc9abfd3423ad68384133ac21753a59395a34db39db395a345939753a9096d390af95b1931a91f195ba8e8c94eb1c70a53da0c325cc216c217da1601806a5d618e1a21ea2229e96a4301ba7a2d99cd4a4b6130c2244243a12b0a2c01c4a942790629512907792c192058d7d94e91ced251f20d4a5c0a2aaa27520719add30e0296328f52914107e27c59edb2013322b34bb32212062246e9d5819de9a9b2755282330021ce2282b245094b527290c8d23c79b23a4c9a5459c19213da165a4cea04fa4121c8f19a79ec90da9a06232b42267184a34801d1a339e26342033371b39e3361c391c39e3361b3933373c944887f1920592a7905294ad8bc293311944a5d6a0342481206920d59e5d1db0a3861da0a14ca0559ef4a2b91b65a26d9af8a259182320bc224b167fa0171d7c8ffb8ac292548aec90408c34849a90f6217225401da1a47aa236a4fa18749d5331182c4e2a7f2a871fba2586a2b7184631fc33eb323e15cb25849f411dc89c8f25de24aa2e821c12270722089fc425c69c651e7ca107a44ba5719ede1e78a13da4839f4ba2bc1f211de720bf21879a08325321f417653479200634a12adf266137f6387f36053905397f36f638613748863b11fa0c348122898888bd8ab091439eeda5c2a2ab95aa82e69cb29d851a189029246b10241e049c198b441541a20f9b24a10a9acf197a1f4e0e9696fd1b7f04eb08b18b80094b8df600cd86aa8cd6251820de9e3b0957a3c49eac1ab917e4313e2f2c2d292b14286122c2a3109f7a30393307337e1e9929cb098625db20c218501a5a2c02a05817399d6ba67b9c409f6b9db4a23da39da20b9d811cc79809a2a208da1a11249323522650249c996b319325d89b60341222a734882e0c2a97376238c535aa38aa38c535623897377da1cd9c009dda9ca393bf9cb99293989d1e97a346a6ad24ec9c95229a95709518a741a48f1c6aa1662267a26b99821aeb1d4d940ba0131e93922b0a699e729cc1989212a319f8978612849a55964197cb1f9e251124e8a3b296cfa5969e439d25315229a01cfe2887a4e08f54a57ca71732ad346d3416a4e128d3a94aaac1a4c2a40aa4082b541daaa038236e20f0a04e99f889bba2d89d009c2714e61e431d3ca86da309a4f7a4cd980d158d23f11f36322fa5b8aadb34c8aaaa34052a90a2ca38f2393838f539f5393838f239ca38fda249a0c49e98986d99950e1417ba99c59ec3a5f1a72a20f11d761cb692ac22caa432a484a26b99609ea79fc89899a2931cbd1cb120f4175920a695529ef417e996b691c4888b8c05959b8fe68499963e24d5282b28d0a6571e3baa5ca65ba22a333f2d7b27c22beca6469c63a887aa81308634e434bfa8ea29fba840a9d2a56ca7c5a91c21c321b3a3412697250a217514bd1623a4139dfc98a410631e4f1e23aab9a5a8a40ba6068c2222ac264d24ab30bdabe6acfe34f4aaab35652dc61d1439e539ad37f839f839ad37e539143906a0618f470f7291239d4598439b7fa147a698a981a818808322a7957f1ae225059c361e39a421947ea26ba2cca0a5a556976d9c8321621cd51e82171e9d129493820d0fa98ddc0ddc94168edb900795f6203b20e8a15ca4999e3ba71319f52219346f30632efa2b65211f9da0aa63a9b92e0e347f3487aad5246da8f4a246a8bfa272a96621762542a005283a226f24c81d141f4aa286a14c14d7952d229c22f9aa61a0c21ce7a80f209ca20fa0baa5c430dbacddad623596ab4336e62f2f28e9389a39f336d539d539f3369a39e938aaa92ba4109df8a4781f9ca00d0c331c8d273ca474aceb250ba8db22851e859d28a06da3ea298e220c28111ee1a01e133e9f92240324e1a32021a0a2979e791ca29c3ba1d6a2f71b789f521d591d2b0d3a2acf294d2592a58b1ee5ac09aae9a6ad328a2d9829092c7ba76924c3a991adb42d5534533533ab582d88a866a82e261aa62aad60ac36266dab2b24aa28e51e552110259b208d9f9f20c1a3c5a4cfa3e0a6a795968b65a46ba15f282f291525792c11aec8acc3349daa0c360e304b2a7439e8390437033a033a0437e8397439cba927a86fa5ce9fa119bb98600f621bfc22c01e73a866a3901e61a52ba3151a941bc7a422183e26b0a46d25b221e2a2779fb022412630a2f0244da20ca08321319b4ca1c2a3021c3ca0331d4c1be99bd12b182c072a54a808270caf53addea875341431502d302ca4a99e21b6a85cae89a15e32663579abc72c23962c0b7628aaa402af36b06b282cab2123c0272f24802305297928f0a29126ada215a500a1afa62e212624aba60e16a3296f2979251ca60bb172aeea349facb6379432872c213aa2396d352d3a2d3a6d35a239213ac2a9b2a96aa8081e68a1362487258524652150159da60ba270258ca5e9a5359c9a9ae0215e256c18c49f55205d205a9cfe984da633a6492025a0bc9bfd97601a1b909a1776120694ae0a2112b50a7e953f299699fa9d031db497c6adebab34a61735c23455326a18f52468a00cac35af92a8b02c1e33511ae4a57d25d428ca2477208aaadfac34207a8f5fa2eea3421dcd1cec285629f4a27224bb165b0c5f95769ad829d42820ace127d2a86ea8d9a037a840b10dafda35a8b007396f35eb2b533ae1380934633a633a0934e138533a4396f28e0c9510945391ca95ce8c2794381c34a59b9f6525b6216a2104a1c819c1a4811834a3b6a1d09e1ea4941c36a20d9c78a4a718cc2148243117dfa1291e0194f28d3f952590f4928692218c7b945d1b9d25f01ed4a511a370a3f11e929dc23098293f28b429fa14902679a047200e3222349732fa1f622315a0570aaa9f0b2720282030da1be9281f23d99b1227109004232c9d25a4e0a5fe9d382037a204a3689ef9a20d1d4e1b569a461b099e88321c24861c5334781d2633f02634213c372039f93623392339f93620393c370a941e02e9926293c39184946888af93261317a53ba079235d209f20d39ddb1d7ca3f31c88a253a0b59f45a2c31cf7a1879625a24d1a3a207e22f71ad79e811e2c900e88a392208d7a91838d5382f5900c225c25321cb9a424a32aa5219667a11e31e52b9d2ae229f0203c247ba415172b31c8338132260c962371a1aa1c10a290257e24ba2e011e9527402167a17c25419f861dd6a165a47da532a1b81b37a378a1bd96f29f3721ae1e6b24b0242b1b4a326d23271f7a34de211334472b77285937f53894360d390d399436f53859372f80f110b282018c1a8ebf8e20857b90de9c2ba515a2701877141f91e09d4a161f9b9d21969b2918549cd111f61de29ef3919e9fea93cb1c751f88195891a81d0d816908318c3c02ab8cb1026f02508b1e271622d0997f9c08a165a44ca0b49f62318d2e452d5f2991243113bba5dea15a30ec324f32ea1fca270a0b052586911b1b401a6f2c049fae20079ffea57e048ba2059f9fa253a460a4eba1a99a01a2ef190c204c1d7d26732318295f27d521b031f6277b2187345526e334fc2f7e2c4b374838ae35b538b538ae3548384b37dda06b9c049da29cd294ca9c2793f198d41d34a205a534245c99df21e598bc928ba627a4f618c8a02921aea16e9657186a1e0890879e3a1e79896309b39e6d9c1699ed11f5185c98be10f39a6d969197831f7225b523dda2c199f8a4fa9d9f9ebd306528df18372843a3269959a475a54f32a2343e3462a1e32784a935aaf2a54aa5b6a2072c7119679c6d22d11eb2a09c9882852ea3d99d359d6b0bb71e7e1c2aa815a362a304a563965912cb23902092321ba386aadf34cdaa873434290da4bf38f2394a38f839f8394a38f239bf3889a1d19ea09ebb99de984a94b1161996439f2da516a69620161d871ed5963620b3a4b5a34da3f49c369d11a0468c59a0061e981c4e20a41a081fa194c29e7e0d04985291c58de09077945f8f49095b9595251229832822a56a1acaa917a762a55032a22c8a2798299ba492a218a8d6a80f3166346434d2a54b2766a8d2a88ea7d6a846a9d627121e389be4258824212117955a97b3a50d9d799db310fa1e891d0aab80a600a5e3a6391ac824682822277e3191aa33ad1b3569ab7735482d5821eb38de390538fe39fe390538de39eb382a9e2898a69c7898a59ce29a978f839d42a41ca87aa5901e8322449ca2a101200fa0f2152da5129ffba2eda26b9afaa4ac1b0515ed236c1d4e203317009e931435925f8c1294408cfd930784640d5f91ad251027ad20dba4a89e7aa989a455a3cb3307306e2eb22ad322719eafa976a67a2ed933f4337ea92219eaa7cea176a9f9a641ab0e2231256a1b21291e252728a2834717a3a5b1a0c49e6a9254211d1f85ab13a43ba23fa8218d19220624139d0f31d8ac59ad893556a95b365030022cb9388a39e336bc39bc39e3368a39b93868a990a4e89fc0a4d11dff9ee416141b4d269ea10dab272596a55d23fd1c2e96819c01a2d6287c21c225121db19cf5106a988425962589a289208fa26da063936d9d2ea1a2a27a1a379eae1d271e2b19d329bd291126c2a4e61e85acb6a925a69131d72bb027412aaaa6a92404a731ac942f5734e534f5a8e22be3a63fa83a211fa73facbaa89923f2a89c21e427fc20ad208823e612119d041b69a2eba36ba30ea7dc994d91faa362a14f2855294525352ef8aca4acad3442aa7135322ec0284c39e4397537163a163a7537e4394c39e5a994a8e4a6cc9e45119f16571c5f1dc321cc0fb6a67a9da81da2a3f9a1c79450224313792325243fa2aa242c209aa1ba9b49237f260fa1af23d3a1969e531f549de5a07fa24719be9d2f1cd517fe9ad22d682d672b6ba6862502afbead09ab353357306d2d2c298aa8632361a455ac05251e32a43499a8ed29a32286216a2701a9fdaecfae522635a81121402683250a2421264f1f31a0432178a2d8a3b7a0e4a9598eb1218fa61e9afa2cbd2c7629bca594b13db0d734a6ac4b37bc32df2ec5397839db35583a583adb357839c53976aab9aa81aae70f9a99fb225b249f240f2819258c959999991f64a528a6a2a46a9de421d925a490999b67206d208311af9f65a475a28b1c1296cf9a4b98f1199d96f601549111931d857010b80e8291be2e222c3028f2a0e92181afc1aef1ac5d34e5335432ba25dfa4ff2646a4f7ac21ac5c2c253207a41620a02274288929c79c01ad5fae7b23cd9f3ea07ea1ea137b244e280c2634a0261f4b1a4d16d798a09fb8293a29fdaa8925452973218aa095ab93b29fb0c83577b0a838b0354531d239c1382734763a763a2734c138d2395496ac8d35958d943b921396e08c6194021c0aa5cf9d3d250722ba2198a0161cd2a43f1821a4f4a175a01ea4d61cc9a2e99951a4ba1a1f227e24ce1a43a1f21f3a94f88c6e952891c693de92c28aa094d01524257e1c00a6afa331a4871d08a0ad304a293328a529501a62261da1be2008321c347032401e8921d4a15295cfa119270e282e30aa1c0d29c722409ecf26ae952323c29d5aa423a628a0fc1e7da385a1599aafa1401db71b4a98db1ccb9cb932c0246c1f61341e1e3433142736223f3726390b37293929390b3726393f372093480ab29216947a92a494a8832793171664a49c9d15235720f820bb9c021eb5a32e1b6da3bda087a0daa1421d83a1f68c8ca1531b692063227b1db59c0920fd90dd82e292578f41927e8fab80ce9108211b25b31918a504a433a6ce9d5da4d730072b422a71298f21f42225a5071916319433143233933a205fa33a1b56a4fb25cb24e72eae1f0b287e20f9a221256da0cf1d38a1bda4a2a5a2a3e28bc9a49892211e5f97f522422023266b26b42190326425f5238a349b2310346d2b35294137f238aa3612391239aa36f23841373c0be4115101578e2e8eb9901285f28f7f9a9fa38fa0111acf141111959dd890f29d7b1d9e9e5e109c994713c61ed3990f96ef9ede935a1cec1dca1af48ccd1c4781e509368cb0839e8c9f008d05fd8a16283c257e1ec7a070a143a699a42da5c030422d672c1a289720249914a667a16030b132c7310f21b3256208ae240c9ba9200c21e22ca19d8622389f0ea5071ba7a36e9f8da17ea47ea434a44ea025a45624e7235f2046285e249e2bab29cd26f0313d29c82699343b28a9342b30b22dd7362b38b135be38be38b1352b38d736519f6a9abd9cdd9bea96b19c1c94b399841cdfa0baa26723fa8ef420c69bc295e7a5f8a3cf8d68a0232090a1a3948916361eeb93b79e621e5788ab06d59e9e9c32997f128018ad981510bb9b72974298cf1deb24d522e7a1b49bf4a3cd9c619f5730ec26bb95e22691a1289deba21da3873299340f34c19d0c2628a908aacba640a587a0ab2c1913d60b7a217e1ca5a0e499c48b19a3df9dce9dcf0eff1e4d1ceda771a2f3a2fba4b495880df1232521df3202a024aae034ceaa5c345b28c6a4b238f2395e38fd39fd395e38f239b2381fa0999c599dfa99ce97b796b5151093819d2da41aa4f620b51b4d20af95721d3fa514a4e1a3af9ee59ad29f2516909c811e211aa01cec1b731dc8936b9e438b27989e915d9141920394268e5f0e15946425e7286e2848a412115aa9f2a633a68c316f2bed25562818a207a467a728a7963159340334e8a275246aa8c8a84fa8e7a8e9a7d52a0618ac1c0b254622a81f0b9c979c5ba65f9c1ca0bf12c61e2c1a1dabbaa65ba506a7571ca125162984284032cca8e6ac293573ab2e35a72c2f20c538db392b38fd39fd392b38db39c538619ca993549b4299439ae198c4115b9900a49ba757a5e61fba20651bff9c952081a3ac9ddaa52aa0d8a102a133165aa2bb20c31d1324581d1320e613fb9dd21693934d8b569482909c93d68c3e0e5291472a772b2929eca424a089ac27aa4eaabf327f2ecd2d942944235ca1e5a9cea58b2fad33f132b8a70d9e08a7d59e67a9cca8cdaa83273d232523be28ef235928d3a3a2a281a84ca019a2821bf322251dfaac8ea9b6a99ea6319c682b192c3e29f53156aac0ab823522a6f835dc2fe62c723877390d37a239a2390d3777397238b7a864a4bfa0f9a3f6199b9a0c1da91c7f251a9ee5a8fa2496a31f238415199a6e98afa1c026bc1f5c241e141a9bac166510492553253fa1b21ff1a1daa0439c589d87a0e3a1fe18829df51c8c1dcc1846296a292b2693a3d11de7ab44a9d0a59830622925253028faa42c2329a3d8a9ae305f347e3410a68d29b7a56aa8849163a7a3aa1e9c1c205ba63a1d5326c420df1f462289962c9ad183f8a086a2d5a299a7e69bc49693a4e5a06f273329d625123002ac94acb434a6aaf434e12ca8261939df39f037273a273af037df3919391aaaeba8fea6ad989496f521d92243212622bc1ce0a20699b21a4ea332a2b99a9823c11afe2129213a9ca921181bb49e17164624d425149f5820fd9ee19b7219c09f09a17ca1a816589b841bb5197187442de02cdb2a50a34a227aad40ac24a9f231ce2e0c2d082780a6b02122a131aa752cb7322f3426a625283623191a5d2338ab43ae65ace522e7a43f22d8261c262c219020b4a1e09bd31aa4a2f8a1f99c13ac58a35915d1a70e95532d322dbf2a231cc7b16ab1e53493acd5364532b92f64398c39ac36563a563aac368c39643915abe2aa52aa278e36975a22e0234624e2292d284c23df106f1abda552a6c0a52d1d0124a7257195ef9503215e1f1b0f248e0c15d31eb215c809c114ac15fb18e39c099dd19d888fec89ab0f2710ab08893192307d2e23a0271f0bb0bdaf26afdb32e1318531c52452a45b299920daa73aa9d32d7631c1a4c223dd28522acc2a50acc5af5faffd2176a0669d5a1479220e1d511429a4739aab1af79f6b9e939890aa6c21b9266fa9c620bc30562f5b2c0facc6b3e9b25d359eae0a38db34a6322b39c038b434693a693ab434c0382b393996ba8d5895c994aa92e295d68b3b943d1ad7a4d49cf324032299216ea06d1c0aa55c10a9a4f7a127a103a4da1c1ea38f9a60a496190a2276249f1be0a051209394488c8195f7912d946f93148afa949b90e224321a2ca612a474a4021db7a09b30f1280a287529171cf32585a10c211e3222345c32f51d4b203ba35f9b74a3252720284930d41c24298d2202a072263d946823919d58a42ba6a6a0161e0da46ea0de936ba0011d961cbb98e41c1a9ce6322a25511f6f34201c3333ba269221493730392a37333933392a37303949378f92490c57922a94f4929e9460842793d9158ba3679b58223a20b620a39b0d1e84a31a195da38aa086a0e6a0941dcaa03191a7a148193a200922cd1d449b4b202091fd074f92b490ef92a190ab81d992391fb1241a135da570a4a8a62f9f37a57630bc29792911297a218f226ea5fa1921317633b83116983d1bb6a47918fca4ee26f725412f89203e28111f5aa43e2441a09d1f739fe1a4a6a5a1a4a29987a5b9201423d71d322495213d2771276824db323d27f4258c345e24d133a42a27292937f738d23619391939d236f7382937230d4912d609618d638d14907e85ef8e1a9ab3a1fc9e8c18a913af82b89cab95e59e3516f79ee20ef2947401641c99985c9bb69fab99101a541cb818aa90aa1ac9009e0c6f894387b78c1a835305f28bab27c825be212da2c6a20fa786a583a62c301b2cc72a3d26211c77951ca66da2a730b1326a31b5218624471ad425b116e923f524832d499a1223be9eaaa4021d90a22a9c229c7ba418a4f9a43ba13ba49427fc253224fa287d25be2ca62b82293b32812ad228983489281e34d32e562d72362238da35cb38cb38da3522387236609cf696269cda994e987b9c04962e9bfd18479f589ffc21ff15891e8d9d2297e8a434a3f999329fcd1dfca0e2923708981dca96b59d6e1eb91238909c9fb59c8999961236173d99060d2c9c6497749888190424db20f7a05a9d5ca18d982e9fc82fdd242b9d4c25879f869ee6a0e79ebe328c34b033c48d4424a7a8b8a944a7d6a49b9b552d1092d01c502063178aa08199501436a24a9e569e11924f1ebe1aa0a665a030a1aaa40b960095f4228e202b33739592a9e034beaa2934cf26b8a5a338f1397038ff39ff397038f139a338ca9d9a99899b87994295e197f113a18fda9a25a26fa1c820bd18232031986b184ba528a43fa3c09e1e95749e7619e994de1cc1111b0eaf1b991b9e94f39d18927b977f8f18913e935f933590600daf936a246b2801287ca338958aa8d6a5d4a5bd3036290e22c22695a036a3eba5d0a40d324c3472339c9d022254a8a3a841a81aa84ba4b42cec96da204e22781c6717639c309cf4a5ef9be4a03600391d209021aa82a55da487a69f1d5b251129c928e93209a528ac24354aabcb342f2b6595a238d7394c38fc39fc394c38d739a238e794061520909597af9628985104619795a0d0a49ea2b01d261d1f1b1a9add1cdca4f9a197a5239e489fa29ca51b5a9d4720cf1c4b21031c9d1d8582db9cd41315930e898f93c9908a921e8d470e71907e2b772cec2ab8a4c0a0ebac33abbaab7c31902c462c85289421b5a175a92fa58b308d3329325ba4499e5ea64e9b4da829a899a8b72a3d2019259d2742208327e4a7a2a6aca95aa075a35a205f24561d4aad7aab10ac6fa43a99c42d402ef92cb23275a5e5a85d357ba35c356e2e8a2c2838603958379339933958376039283870a72fa436a103a161153e15a11edd1c6024658ce3a53b23f7a0892060947e9a608da6a10824671e1e23ed8b6199f71a0515cd24022527a0691d5da1eba09e9e1c9d62a0d7a1ad17609cc11bfa1ce7190f28ba280d262da2641c34aa58a822a5622fc72585200d25c1a20721879a31a796316934113457a1a6265ba5c0a8d2a1caa68ca85a2768194da238159d24ef1ee220b2226c909f902d9b6ea09ea214a4dca6b292000f18a55ca0bb245a286d2538319ba950acce3457ab7f34ef2aef20e438df3935382f3a2f3a3538df39e43827a9c6a757a565976c986122e322b2206b21be19bca15d174814479e039f9b9027210596371f071dd616f8177b0d42959e1fc924db24389c421b2f9f909f499d7ba004a137a1640f3598bf1c5c1d0a1c122cd52bee29f29f451fd8ab3eaa27a80f31772d8c2cf02360a3901372a189a84f2f13335f332aa2f6247c202d9e191a06ac0cad0fa7961c08a13424a427482675234b22e79e6797ef0c01a4eda247a0acab52a39a0efca7730d1c2c692c632af22860b1cfb1f534a9ac4d3684316a2f0f39a6398e37503a503a8e37a6390f397daae7a93ea95e901397a8217c2238228d2898269e239713bd196ea475a4efa2f120f02187220c93a096fc181d148b9ac7217023a124ce143a1254190d127a0fe2a024a186a1cd912d8b19166b1862185132c431cc30429aa418a3ae3daecead943231313a31c61fa79ea99bb8a593a91b252330183108a01720012c0b2b392a2fb0f6b0a4aff91cf39c432657283629afa406a7faa95796d61529a4a9a1199cd9ae65aa5ea670a8061d42327f31133021ad9db4d9b42d357ead0938c334b633cd380439d435553a553ad4350439cd382497da8ccf95b695d293c996ca8c10956816eea4e99bd6247822a02136a0951d36a6829a0da666a3eaa295a4971b3ba4d499a6a498158c229424501d77a0f72050950e8ca89671939995ae948b8c9396c99c75246f158ba626a4b1a4561df7a0a3308a2869277729e61cbf25b6a1b8215032403470325e1ab51c7aa5bba068a507272e287e30fb1d5029a82204a1df25898bec23e19e5ba47ca6c3a0341e56a4aea16c936ba077827b1a28a03417db9e463359250b1c9c34a0956e332226941e74374b3967374c394c3967374b3974375292e30ddb914c94e992a894e7840f93c70d12a3349ab1210e206920629a001e1ba4d40d26a4a5a0d4a015a16f1c12a1b8973fa2a014eb1fbc21ae1d649a4e204791d20c3b92bb91179492918e8220945918f923819691a5a2a4a4a6089e55a53b30c028d128c7285c213b2296a5241c4c317f3384315999129070a5140f95a50c285f27d02f1e217d28581efaa46a23909d96219f9bb5a4a5a5dda47d9b08a69e23b9243021ad239f21e3257a2602243a33572816279934d8239a338029662829370b3909372b392b3909370b3929376f0ad8108909f18c418c218db902178b129b52a0bd9d471851146202859a3b9528a03f9922a09790c4930f98ea152f99049df19f9d9bb217e819690e409646168903690e2082238ae88c9f85d8061c8be225c824891f0aa3a4a368a6b3a45da65d2f3a2a42292c25f518921175a5b9a0d730a53218313c213f2283176d252116ed262228532e2d116224469d6fa4ef1cb29cb81db61f23a486a327a511a2c0a47e296b28da260829e7251b2cda2a7229bd32f22b5d2a9c34a22875333c2d3e2c423631381236d738d738123631384236eb94508f889b84954f996e9bdf97629cdd8cfe9bba8c2d1ffd1b7d14349f369763a258a2e29e8a9af515599fe694bf9a531c6f97249ad51d4f1a309518a0d89afe99af10c812a399338dbd9c3698da9935976a21e31c04a0f99d719cc014109dc82e0d2125a17323679c939f5c9d4b0af0327c344133ec1c582104a84ca967a711a45215e72d5e989720d31d4090c99f2d94171c49a06a9ee29e3798d01cdd126fa4ac951e9c5fa43197829e7920001d7533581eaea8db349aaae7338e24e8a69138f0398038003a003a8038f0399138e29af3967299d497329367969d117e8b5896999d029cd21e0016051c3e9c389658a408a493a2369ceb8e449cbe183f92a418809363968919991a7698bf9d4c92469896921c957993d8930c90090ef3930d1f142674257ea2259823a641a31ea49f2f4125439ce424e69f7da0aba2ac9f61322f34dd324319352092a741a896a76aa5fe80ea2db19d9c22e61ae6992f9a751c361d6aa2bd9981a11a9dad9560a0dfa6929ba88cd5a5551ebc1f10272a278f335618f5a9153535ab50344528c5a48238ce396438fe39fe396438ce398238048cf310f786dc912090e591bb08bc8f8296e89cb8999a17e6147b96419c099876a113a085a1b59795978f9d0c998a9d9801be96010bef15d5173694ed9953906890df82d98f008e818f6383040ed88a5e29a72a10290ca447a03baa2ba8e5a8de2fb1280d2825269219d69ca3a78ea2ef30063357315798e1112ba2c51e03a38b9db3944a2da8170c252b214a9f7223b1a432a1c9a514a070a3010fc91f849d3ca852a574a7589c3019722cdd2cf62b4e334a2435941735a79f66340c2c9929b1372b3971378639863971372b39b137dca407a380a0f59b6114f51cd11d8b1ab1237e20659ec21ef49dbe10b49b6d9bdd9662a32419ed1da0202a18fa13511d81195824cb24989db01b23a067a0b09ecc9d85a099a1a11072980318cb1b811aa5245427882572a0651a9da75da5aaa1302d2c9aa4a0ba1dae9cd91e4f208c9f95327c34493363169320cba548a9d9a502a57ca4b72b5d9400980f9c0521e7191724ee24a31ee416cc9d4ea0c9a32fa5aaa4ee1c4d1c94a5d19d26041c2525238b32eea262aadc34f1abc9338625e6a4ae38e1397838363a363a7838e139ae38eaa57fa4b7a29b95529652208620e21d7b1e261bce9c8a1acb8f1495e29a8485962062926c207517301b569d2c9c9c9a791eaf221a2157957114209d4d9f489e509f10a032a049914191e51ae01c581c70292f2a5d29619d111cffa858a8a6a6132f28292028a11e979f061a230f16a4c53006330332258ee91f4a16d8a2669bd3a871a82c28099a4f948720b025a12414262f261d21830bf79725a531a5a9a455a8ab1cb423dca705172c29ab2bd42ab42fd3ad78aff434a3acba34682d202aa438a13923384f3a4f3a2338a139a4387fa500a5a9a47c8b3294961a3c1be818b321d82030205010ec163699dc9910908415cb01f88b829216939b9623908a96e420eb20a5207615c20dea110c94cd906aa025a0f09f9292208554164c189016cc3265328d31e20a53981fac7bab98aae53103301630cd95981839a508a5e0a5442c9130a42fcf17cd0d59294d27bf25a1b097b0e1acd8164994d528ed2860284c9dea9f28a611998d10b8a567a4caa1b4b0a2ae96ad64a6cf1070310b31d42f16248bb2a9b3fe346cac80365f3247318b3860397937403a403a793760398b38