From 3a88596399f7882da344bf6f60f46fe8e6e41795 Mon Sep 17 00:00:00 2001 From: bietiaop <1527109126@qq.com> Date: Tue, 24 Dec 2024 14:40:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=BA=E8=A2=AD=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/deadly.js | 50 +++ apps/help.js | 20 +- lib/mysapi.js | 7 +- lib/mysapi/tool.js | 8 + model/deadly.js | 273 +++++++++++++++++ resources/abyss/index.html | 2 +- resources/deadly/images/BgFrame01.png | Bin 0 -> 1019853 bytes resources/deadly/images/PetSelectBG.png | Bin 0 -> 22410 bytes resources/deadly/images/block-bg-m.png | Bin 0 -> 73244 bytes resources/deadly/images/content-bg-pc.png | Bin 0 -> 128872 bytes resources/deadly/images/star-icon-light.png | Bin 0 -> 3241 bytes resources/deadly/index.css | 298 ++++++++++++++++++ resources/deadly/index.html | 95 ++++++ resources/deadly/index.scss | 318 ++++++++++++++++++++ 14 files changed, 1066 insertions(+), 5 deletions(-) create mode 100644 apps/deadly.js create mode 100644 model/deadly.js create mode 100644 resources/deadly/images/BgFrame01.png create mode 100644 resources/deadly/images/PetSelectBG.png create mode 100644 resources/deadly/images/block-bg-m.png create mode 100644 resources/deadly/images/content-bg-pc.png create mode 100644 resources/deadly/images/star-icon-light.png create mode 100644 resources/deadly/index.css create mode 100644 resources/deadly/index.html create mode 100644 resources/deadly/index.scss diff --git a/apps/deadly.js b/apps/deadly.js new file mode 100644 index 0000000..fd39496 --- /dev/null +++ b/apps/deadly.js @@ -0,0 +1,50 @@ +import { ZZZPlugin } from '../lib/plugin.js'; +import settings from '../lib/settings.js'; +import _ from 'lodash'; +import { Deadly } from '../model/deadly.js'; +import { rulePrefix } from '../lib/common.js'; + +export class Abyss extends ZZZPlugin { + constructor() { + super({ + name: '[ZZZ-Plugin]deadly', + dsc: 'zzz危局强袭战', + event: 'message', + priority: _.get(settings.getConfig('priority'), 'deadly', 70), + rule: [ + { + reg: `${rulePrefix}(上期|往期)?(危局强袭战|危局|强袭|强袭战)$`, + fnc: 'deadly', + }, + ], + }); + } + async deadly() { + const { api } = await this.getAPI(); + await this.getPlayerInfo(); + const method = this.e.msg.match(`(上期|往期)`) + ? 'zzzDeadlyPeriod' + : 'zzzDeadly'; + const deadlyData = await api.getFinalData(method).catch(e => { + this.reply(e.message); + throw e; + }); + if (!deadlyData?.has_data) { + await this.reply('没有危局强袭战数据'); + return false; + } + const deadly = new Deadly(deadlyData); + const timer = setTimeout(() => { + if (this?.reply) { + this.reply('查询成功,正在下载图片资源,请稍候。'); + } + }, 5000); + await deadly.get_assets(); + clearTimeout(timer); + const finalData = { + deadly, + }; + logger.debug(JSON.stringify(finalData, null, 2)); + await this.render('deadly/index.html', finalData, this); + } +} diff --git a/apps/help.js b/apps/help.js index 0e3c567..d22cdf1 100644 --- a/apps/help.js +++ b/apps/help.js @@ -144,20 +144,20 @@ const helpData = [ ], }, { - title: '式舆防卫战', + title: '战绩查询', icon: 'dungeon', items: [ { title: '查看式舆防卫战', desc: '查看式舆防卫战(深渊)信息', - needCK: false, + needCK: true, needSK: false, commands: ['式舆防卫战', '防卫战', '式舆', '深渊', '防卫'], }, { title: '查看上期式舆防卫战', desc: '查看上期式舆防卫战(深渊)信息', - needCK: false, + needCK: true, needSK: false, commands: [ '上期式舆防卫战', @@ -167,6 +167,20 @@ const helpData = [ '上期防卫', ], }, + { + title: '查看危局强袭战', + desc: '查看式危局强袭战信息', + needCK: true, + needSK: false, + commands: ['危局强袭战', '危局', '强袭', '强袭战'], + }, + { + title: '查看上期危局强袭战', + desc: '查看上期危局强袭战信息', + needCK: true, + needSK: false, + commands: ['上期式舆防卫战', '上期危局', '上期强袭', '上期强袭战'], + }, ], }, { diff --git a/lib/mysapi.js b/lib/mysapi.js index 2144809..9579cfa 100644 --- a/lib/mysapi.js +++ b/lib/mysapi.js @@ -303,7 +303,12 @@ export default class MysZZZApi extends MysApi { const configCode = !Array.isArray(_configCode) ? [String(_configCode)] : _configCode.map(item => String(item)); - if (code === '1034' || code === '10035' || configCode.includes(code)) { + if ( + code === '1034' || + code === '10035' || + code === '10041' || + configCode.includes(code) + ) { // 如果有注册的mys.req.err,调用 if (!!this?.handler && this?.handler?.has('mys.req.err')) { logger.mark( diff --git a/lib/mysapi/tool.js b/lib/mysapi/tool.js index 432dbe5..3f0d27a 100644 --- a/lib/mysapi/tool.js +++ b/lib/mysapi/tool.js @@ -62,6 +62,14 @@ export default class ZZZApiTool { url: `${this.hostRecord}event/game_record_zzz/api/zzz/challenge`, query: `lang=zh-cn&role_id=${this.uid}&server=${this.server}&schedule_type=2`, }, + zzzDeadly: { + url: `${this.hostRecord}event/game_record_zzz/api/zzz/mem_detail`, + query: `lang=zh-cn&role_id=${this.uid}&server=${this.server}&schedule_type=1`, + }, + zzzDeadlyPeriod: { + url: `${this.hostRecord}event/game_record_zzz/api/zzz/mem_detail`, + query: `lang=zh-cn&role_id=${this.uid}&server=${this.server}&schedule_type=2`, + }, zzzMonthly: { url: `${this.host}event/nap_ledger/month_info`, query: `uid=${this.uid}®ion=${this.server}`, diff --git a/model/deadly.js b/model/deadly.js new file mode 100644 index 0000000..438429b --- /dev/null +++ b/model/deadly.js @@ -0,0 +1,273 @@ +import request from '../utils/request.js'; +import { Buffer } from 'node:buffer'; +/** + * @typedef {Object} DeadlyTime + * @property {number} hour + * @property {number} minute + * @property {number} second + * @property {number} year + * @property {number} month + * @property {number} day + */ + +/** + * @typedef {Object} Bos + * @property {string} race_icon + * @property {string} icon + * @property {string} name + * @property {string} bg_icon + */ + +/** + * @typedef {Object} DeadBuffer + * @property {string} desc + * @property {string} icon + * @property {string} name + */ + +/** + * @typedef {Object} Buddy + * @property {number} id + * @property {string} rarity + * @property {number} level + * @property {string} bangboo_rectangle_url + */ + +/** + * @typedef {Object} AvatarList + * @property {string} rarity + * @property {number} element_type + * @property {number} avatar_profession + * @property {number} id + * @property {number} level + * @property {number} rank + * @property {string} role_square_url + * @property {number} sub_element_type + */ + +/** + * @typedef {Object} DeadlyList + * @property {number} star + * @property {number} score + * @property {Bos[]} boss + * @property {DeadBuffer[]} buffer + * @property {Buddy} buddy + * @property {number} total_star + * @property {DeadlyTime} challenge_time + * @property {AvatarList[]} avatar_list + */ + +/** + * @typedef {Object} Deadly + * @property {DeadlyTime} start_time + * @property {DeadlyTime} end_time + * @property {string} nick_name + * @property {string} avatar_icon + * @property {boolean} has_data + * @property {number} zone_id + * @property {number} total_star + * @property {number} rank_percent + * @property {number} total_score + * @property {DeadlyList[]} list + */ + +/** + * @class Deadly. + */ +export class Deadly { + /** + * @param {Deadly} data + */ + constructor(data) { + this.start_time = new DeadlyTime(data.start_time); + this.end_time = new DeadlyTime(data.end_time); + this.nick_name = data.nick_name; + this.avatar_icon = data.avatar_icon; + this.has_data = data.has_data; + this.zone_id = data.zone_id; + this.total_star = data.total_star; + this.rank_percent = data.rank_percent; + this.total_score = data.total_score; + this.list = data.list.map(item => new DeadlyList(item)); + } + async get_assets() { + const avatar_icon_b64 = await request + .get(this.avatar_icon, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + this.avatar_icon = avatar_icon_b64; + await Promise.all(this.list.map(item => item.get_assets())); + } +} + +/** + * @class DeadlyList. + */ +export class DeadlyList { + /** + * @param {DeadlyList} data + */ + constructor(data) { + this.star = data.star; + this.score = data.score; + this.boss = data.boss.map(b => new Bos(b)); + this.buffer = data.buffer.map(b => new DeadBuffer(b)); + this.buddy = new Buddy(data.buddy); + this.total_star = data.total_star; + this.challenge_time = new DeadlyTime(data.challenge_time); + this.avatar_list = data.avatar_list.map(item => new AvatarList(item)); + } + + async get_assets() { + await Promise.all([ + this.buddy.get_assets(), + ...this.avatar_list.map(avatar => avatar.get_assets()), + ...this.boss.map(boss => boss.get_assets()), + ...this.buffer.map(buffer => buffer.get_assets()), + ]); + } +} + +/** + * @class AvatarList. + */ +export class AvatarList { + /** + * @param {AvatarList} data + */ + constructor(data) { + this.rarity = data.rarity; + this.element_type = data.element_type; + this.avatar_profession = data.avatar_profession; + this.id = data.id; + this.level = data.level; + this.rank = data.rank; + this.role_square_url = data.role_square_url; + this.sub_element_type = data.sub_element_type; + } + + async get_assets() { + const role_square_b64 = await request + .get(this.role_square_url, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + this.role_square_url = role_square_b64; + } +} + +/** + * @class Buddy. + */ +export class Buddy { + /** + * @param {Buddy} data + */ + constructor(data) { + this.id = data.id; + this.rarity = data.rarity; + this.level = data.level; + this.bangboo_rectangle_url = data.bangboo_rectangle_url; + } + + async get_assets() { + const bangboo_rectangle_b64 = await request + .get(this.bangboo_rectangle_url, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + this.bangboo_rectangle_url = bangboo_rectangle_b64; + } +} + +/** + * @class DeadBuffer. + */ +export class DeadBuffer { + /** + * @param {DeadBuffer} data + */ + constructor(data) { + this.desc = data.desc; + this.icon = data.icon; + this.name = data.name; + } + + async get_assets() { + const icon_b64 = await request + .get(this.icon, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + this.icon = icon_b64; + } +} + +/** + * @class Bos. + */ +export class Bos { + /** + * @param {Bos} data + */ + constructor(data) { + this.race_icon = data.race_icon; + this.icon = data.icon; + this.name = data.name; + this.bg_icon = data.bg_icon; + } + + async get_assets() { + const race_icon_b64 = request + .get(this.race_icon, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + const icon_b64 = request + .get(this.icon, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + const bg_icon_b64 = request + .get(this.bg_icon, {}, { responseType: 'arraybuffer' }) + .then(response => response.arrayBuffer()) + .then( + buffer => + `data:image/png;base64,${Buffer.from(buffer).toString('base64')}` + ); + const all = await Promise.all([race_icon_b64, icon_b64, bg_icon_b64]); + this.race_icon = all[0]; + this.icon = all[1]; + this.bg_icon = all[2]; + } +} + +/** + * @class DeadlyTime. + */ +export class DeadlyTime { + /** + * @param {DeadlyTime} data + */ + constructor(data) { + this.hour = data.hour; + this.minute = data.minute; + this.second = data.second; + this.year = data.year; + this.month = data.month; + this.day = data.day; + } +} diff --git a/resources/abyss/index.html b/resources/abyss/index.html index fafca1e..3d9bf69 100644 --- a/resources/abyss/index.html +++ b/resources/abyss/index.html @@ -71,7 +71,7 @@ {{else}} -
+ {{/if}} <% } %> {{if floor.node_1.buddy}} diff --git a/resources/deadly/images/BgFrame01.png b/resources/deadly/images/BgFrame01.png new file mode 100644 index 0000000000000000000000000000000000000000..74ba0093463e95a701618fcef22ac0c6c327b088 GIT binary patch literal 1019853 zcmZs?b8ux}&^CHvYhou8TN9nwlZkEHww;M>8xz~MlZkEf#Juy?ty}fo@BRI;Ywz0V z)%~pA{Z#kr^;=$60tp@u9smF!N&Xa71OOm+000O>Sm=LuMva>p{+;0Le`+`Z0LX*? zbATn&A>#u8Utf}f^%E zh11VYVZslDKcvAotlhjARIf3TK&pOqc0`>-LPjL|B=p&6_Rphotx2-74^r=YtmJ z*UG*nnx;ef_Z#9-y1rNDyq2u&>w)2}CChTrQbz$( NeCn?_c_bNra+Beq z>S*xsltgR|CNrB4QT-BjMsXZDf_x{cfGHz_US_3DW^G(UveonZ)Kpbc#|l@9TEnz0 zs}RT{rd^$lTp(5qBZt%7AnF{N3I8+NMZ*^V26^p46eiRfjM>l$9CWc;hF}_mjN`*~ zX3(o}54i+H#N-;{H6nU}e1UlJOu?@3cHA|7SSQbB!xc^XiolWs!=IlO!8f~uCK|wr zga*e>r0UpAo>XXQaa#*jUXQW)p;uc1)JzB `ko#Y$x6SjzGmG< zq@)$Q>H-m^a5LcQ)IPe&*qYs#-!<|8b%jpzJMd-07LIh1(yE5|QWTo6t1G^)2CyRD z^}sA~-8_F>cxtmD9xIAM(%#XA=EL@Q{@q}0@2xGHTiKzf<)sC-r(x2dHvI5pbF(T& zEWSbY>+~tL ~xpqRF3(z%8m`X=MLH%4*0>xzCPXos*4yVPUX zR$w)8gwMcc8rxWT*Tsh(7(6))sIXu~eTETK^3A;)F8p0nErTM)Q(?Ao%>P8`^ZKxS z`t&u_llMO{*}?>XaNom5n425pCmk{1Z4B(@CG-pW!TazpGAq6MD R9^S6d#GPF1>*yl-SwjeW(i_xC;z7|R;l8x zbN^}(;D8(#zJmZDb^j$~5Dr0n7%hw*6!T>Wg&P!&0$W9aN*U-shrn1(p1 Et9O_egJM*z`s*NyjsAWL>Uadx~&E= z>2C8E9wv`6Rl(@J`&<&*Y&v}4*@umRv|+jV_uU%RvKqg0@zQCj26bb}C&NEcV}$s= z@|Uq((53Mn%R%4T;%U8%j(33z;QJI}#PDgNqLQV2OQPx5b%E`>yc3!6TmJ24UTL z%{}-{Fp7RvjoEP^$C_KCOzQ4UUGeTP{UsR8g+oxBT{|SKjbX}s%@#kFmTkVt*J&20 z#6QG@6~0YMmrsfvN{uEt0{t4=8w)!{NXuMBSKi%hp0}>5rm0~nEzXGVhPyLGJ^?Cv z*Vfbf&FZ%TqP^mpQ8Se}5e%lWEA&q>kkQ7-5ZbDWpoZh>{Xm3Zi4jQQG#5z`z?s>} zT?L1pfiRSgfHI4So5CCz&P{Z0;;HNNE%ZsRr%pFHyZBJ9i5|nN-p=V$N#QISPL4`N z(;Xy#&lg-bzQ>FG?xu~m5;@ z3ZqIvOdhk&E?oixGlvUg-@`*E%7Dt$l0cCO (Hm8?ieA9msh#%eNb(?=TWJoPA%7Y=;_!xIM^6QX?|J{8LHwI9u$YH7KaI zDJ+H|sbQ>IqmNcbGC*z7UAWLbKHC{ppZNND_6^$v@ouK1Dxc5m^xy7S69QO&Is}Du z*!*kL=YAvZSP(a%iAgrmr%YlinQsKWEZnwv$1OqozDM{2M-FFbkUO@dMe8jzln=%R zR~#_iV4A!?Fr)|!=SbWID_s%$u2*iOd-1I*bQa!yk2T4;(*%k(fx%r;FY_2}#^MhH z%1s43lakAs>P;sAuzN0{qYkbY(Rt9!P^#~(E$v8)`HTZ-Pt%U)FjZiVPCj5=x<4(b z7a9&u*2x%tHD#Vf?9_{T@^DC-3iXsrxb@xpqkkA7i1ccjsjh0`@f0`qN;Q!+uoLHw zD$Co3>yCE5!y0rv+_) 2weQpLuvA!t9HngyN_1LVOin*@yi3ceJi8u z$4B$_IT!7T+>&^!ZA(aXvzA`)zLQa$3oo=rOcc5uvGq{si&Nvw$f`Deax>KR&&q8B zOR~C^gmI?bx^gg1Nt?Kib)Ki{RPM!tLV9Rfm#z+$9prMAJeW($^tuk$QbfQ3>%xj5 z*SUP*>c1r<5qY#aclnWUj6T^Lu7lTcUJB355KOk4E)x$IzSU^27KV`2QeU6 ZDv-u2i^dAr?|&YJmjt#FI(k zcE_}#U!-hnV+nwX^v-cz1U8Fp q%?>1_B5kWk+t*}>=i4(T1VYmmW3XU~~ s~0 zP*x=OZ1@L@HR5^YMV~vp1jNwfEE-g*NR2Z)pGl^9>CAF-1}`NvIf|>#W#azaGx+|{ znn*W_dO0zq{+gMNXuz#*USn$ev;Sw9^_t8uyFiFYTTF>Ivf)M)QANIv)l57qIT#LD zKN42Af`?=mFw!e@CCmD<=nm3dr2dsgo&00Qsko|wr#E0^pDFIosu!If&n%8@@JM!` zjwcq8GBhR^by4%ZybudSi^)ZyEJvOXMb=~{Q+%#bNH)^<92k`z?)J}b6W#h5KpT$V zKj=5L 4h5MASUR$8%+{%8mo@FzFvT(y?IxKIZEUCv7>;LQ#y0H|Z}kBE&(K z<)LeXJVrWy#<`WW!VI9@SFXj{z;x{uEAv1n1PX{GmAcLuz&XJi OI_gatKXoq2c{G;T#4eKv^ud9K1fE6rR`2BOP7_eDZCS-JD zRup$f@w=PW=wd>D#KrgomG~{&!Jw#U@o;{3^3+*dt8yCA<_I&~uLc!4JH!2V@$unM zcSAxILGcc|_Q$azIil5b2jEDkC+m%Duk`h~@XeKzkiyxs$hvT8wd2Z}MG7UNtbdUD zq~y`&d-(Bg(Ut?JQrn_E-)PqN1ty5Y1%iXDV 4qD5EH; z+sWXqB oWJQku&7By8FOuoNf4!yu= zr?!Am_}RUAfA5xrIwT9XtvtU$0lOaOZdI2%YR1L=6cVj}zE7o-wDxRB&dQmMLj59O zYz_Lo{<2nyPgqbFVxl3L(_$24+rffQADOioE{$)clW>N;H^r;zA&k=y3&XlzaYBIi z)}6-R2P*LL(afyy#ue+frLQ?ZA?Xa1&A4_kisXj>TW-^u_@XaB^d}L6dGDC*8lL$u z$4tRaYAZJmxj7JhIKlIz?tRM^^Tg=J24l<6EJi|U)y`Uo4K9xRDrm$vjZI9BxtHY# zOb$)~cCE*nt-vSpdlMsgujkq6*az3`IDi4*Z2^``v)UiK2KmS6*JhvJFwg2idyylY zEOBjzO8|AG1pf9g5Z~*1+_qF{fMCii!z7$O7y>Eh(|~C(bDej)cG70&`%~o~3cCS` zMDK%y&2WM#M*O@|aTwCe-dcTW9Fa4f(XcZc^O=H9*3%%Z2D-K`T Zni*_<2Uu=Zie~@lIOUyQd zNjLYs;kOskx7W{~1z{SG*S6QUmwH>9_IpTWpic&a4y5#6zujJyNY9ag-#|azw-!?Q zr>5ye(u8tPV%pt}vE${;byTto*9ESJ667Pk;|ntrU=#r3#VvEYARC)J!cxZ3jX-3r zf!B3g7Xd?u!2y_ vTu_Rrzq0^qqUVR)*|J40A+?4ESOaXY>MU+v}-q~^c6 zmmcnn&HwtO+K0SS)_&8Zq{ESD-v?`rKVS>#H_m*^n`?Hte~f&v>bhDp8*-RS$%pD& zb3-7us}S1Bk=o6G^&Wo8hFIQv)7+^eG}{sQ(>WuYD(unK zwI2)Cq>Us5^SvZ&
FaZt6-T3Z)^N>CjX4BwEI;coatjH&O0^@n(`#Jqf1^ce2guHnOO z{V^$Btx7M`6+SCW)WxQC(uuZmQS|u=9`*q1+)P|rXaD5oAOah&D#!-%@<$PrK5k!L z(&}~;3hwclL}{C2|A+Qn7LxqpBg1E|rxyh>extnhgJ{;Y9cJ9tNE~xu9e$&?8SH3~ zdV@yQ<@L@!MJOMsH4JG*$m9{|v1W^ypg*irkF?v=bg=(idW$@#O0v`RalvP~nX9ng zm I|#Fzd3I(ns{jxx1OTRk?2Vc!Z^ODq62{`9q=@ z3y5NTH8NjB4CLFNNxmjvIcmY357F0}NE%;}1F@MT78$%GT+q;&8D*o3*mspbiGX+l zm&c6Nj&FC$j5vILHa4|vSNeLV#g5njo^u8T#pH?~soK-0$O5>bqN|xCYa72GRr*;H z>+mPXXns>AwZV#bD9-#=eg2kbTstV=>@LK)PuOd)Ge))Zoowp(*Fv_2U81K(L?C2S zKQNI`vY1{%x*KSg1gxaM=ea?2Wg< ooTUuiIQL`9%7M`0(Rm;i!+e6u1 z_*s6Jk0ICNd-~RR&OVHb6{sGc&EsuS2}xOt8n+*(Zx@5 4k@Wp>^QTN?rLv>lB-0IQVt1T#-X~UTywd>#eyU+HeENI6OXoSH=IBw6 zT@_vb%p3=44hlTG-<$_Ox}SL}{ezlw-G?)yFnY(HBf8ouF0}W0fDJTnlP{#03vJNf z+NS(Jd@~keDajIovzK|RH(bLc!<1XP6!lQu39kjlWC))T(a_9UY i2Tvmfdp|U(XR5 zOii= $2 zWBHq}7Ef&4SebOQfh)uFLLj9Sh7b<5BGoTFCqD$7+b7pz$`phgLY55 #u=MZNOcMKN}$ZT{np*Fdfa?`aI${Yv?$u$BJN@{JI ~j}2>O_5P7p~- zlgiI45wu=GLQQ7o6t6KSwnr5&y-EThQXS|6aCy^+;$!JC=;|9ti$va~gvA>&JM`?v z(Lcsh`$Z;Ym$Wt}L=Jla;IZ7_wcvP9ifo5@yfm%V@5zYa@HyRD3jSP5$1gyxGe1{a zOPY2{6@WU<;>Yrky^5uea)V2^#-3G7gb=f*HuhPXT_y^fz9N 5F5p3lmh(j5L1bK`ce}Q&F8-xv|$tzj%g=}$6`J2uQ zE}|jiH#z$O3`pG&Rml-aSlpx{_xIV9!z*KkJ)Y!nItS^oYyn;l-XU^xo!!WH{1ps; z5)X=Qr3x|o-idZ4M4X!t+A4VYOoh0!=fZs27T6H59Y?OSYFEb|?@6NJ_{m-udke;K zt1mC^Nc?K*;EnS;NbxXS2xDIdRU%p!<;jFCtx?Om y0z(WBG!>so%ia9l>>-wN zPL$}^?{tz&cYz0l^rjb>Pv9bO(cHfrYSjFxn5!S$Dq;MIe;w>pvrvd&84{4jYR!8B z-BakU!SAgtI3zT`#@%;^M0sY!Q;%|J`OW zKTKd|=IGzo#lL-+EuY&`<*Wrq`{OVl13hC{jkI)kQ0-chc>j!p!q*V4=u52wvhZdP z*WlD!jcOy$hx~@vtp8$w!8aleligU9J8?mP#cSJv;?~+vAh@ZCWIM7a%P)ok?e`4# zm3w_S(xw_T?vg_4u6p^I0TUs`l%~z^N JE5xIM7TI7|P9>9RQven4k3QRs0Su3KTTHgfunSQ&V$ zJONX4Mf!-c=;69Tox>c;-MJW@;;c5!e&UpJOXuZJ1!vR!EzFwmG3d;dL(RkM+v-Z0 z6C#N9m=EJ7U1+E N{e7fB>^>twE9(%b9F})cVC6dmtW>uV70-|P+WE<&W^KpgM z5*Ho5hN&)^AXLl?(FgfvV?FtdOE`AW*HlnmeF)$U6I!*g$fkKdfzVDsBOiDL$sOci zS(@ei$`V(161#U1Kw!V{LM2D^*5F(>&{_H9#`?J9q6rJ6Z{*6BOB~y%TBXjw|9j1q z4}Y}Bz2-Nddg%`4j-=h$=277xpRc9P-6l;S XRe&|WY6cmD_PTBRY@ox}oU=D8R#sxu=WERu(C0*iIN_Rk7Oa2AYuZT=%CAop zpWH0EvTET)?_*JqLCU}1rw wH zye;*6pAo#i`8v^M1mae7bG+*qyLVflJSdsD1P6;Cpc%G89D*h=gGEjGLV|jtjEa|Q zcNJHN7Kg^>S!z9}f&AD&dvJTr*F2ZFYezGV>27C@TmF7 D>PQduc$z|(v1Lf^-kGGKbOkkQt=f(U$g=zj94_;$HMtC}lC=5UjTO{H1>OW` zI9x?ebQ=+*Q%`bI^zji8 Wghyh~5P#yB>dQ!#7PUN%%y~YLps}%idi0Vp!t+?VE1OIGc_8h> zH S){BjT{1ey9@Aogebx2@m@xrBfg>Y=22ajNJ!9Z^H4V&Zd6geahg>!%o*T z4z~y&BmPuw5A9o-%m5hH?qhtLt7ltqH+Jx2gW7cf?*WTk=+S~g=Y(-Q72#Bn6mcNG zQ0#Y__7e$ca)eQFykC?%vdHx@6<5R$v?sMto@( !$xjsoa zp;VS1>d%dbY(dtA<4^R r$wd~}c+POM^wB_vd;4qfbX$W} zV J_SKkSJTW0Jt_Sw);Ecr+1Xq7$-JR=&odJCg@;)uv0FLjy}VnR^HGt zzM8l9<+}?Q^)mE#;BFTX#xmEy+5nxTM^`M`Hp|#4AVnj9ZS`_xO_P^-S4Le~c$A=R zfk2n_df<@mMqA1N9>Jw{s!LQ=A3f_VIZZf6gyxN_eQPALq~j8k@anMwCQw1Tr7Wkd z&`YYt6~*7ND$TaLKi5urhIy$@G2K+%`NGyjS9vGWDY>wxaVnx^k;~M~bkrNh2YZbM z>W1~q;ij2socX}kwTLJ@wxs^%^y88+9+Wx;`k{U= o7-8fy2)W-nv z3-kW>`=%Nn8EiE=2d=Y!i-2F~DgZ{$f&3NgKYpe_em+7!R>FS;ho@5?(U}H>v*PWP z?iQHMeS&T#Fx%VrZ_F(RP*4Bb+!5;Zvr;c6^gda;-tQ*v2+;{CP25FkTIHk1DNspl z7Z7er2s0Q+Tz{L6GhmDh0#pofU9n2~DmNHz-0FXA{Dsh0xTm#J>s@CR3nB4D+|vLA zJ#!8o?h^uf+)>AEIc3UVzo2$hej#N-=3xpcmQbMdlrb0R!d_O?y}ah6W#N+QS1BOo z#lY=|YMaDfVhT}HetKKIaLSjsJ|H~hN6n>$XR_}AH;DP*(1Zy@3bf?>)m8l+x)U># zOQ$5M!*J1X@K4D6BN(2s-xe@i3U=fXYKLE$ZZ+tizGYL-(=8iqX@YO3U~= lz2)7@h+7L4sDUIvy#Xwf=MuKr?4$`(R$R#i DdShZ|*51JB>?DZVqc^+k~nD?5BBF zSu_#Yt%Q-xi+8dt6=x$rO0r9L4XCo7eXW#Hu 6V3@!8x(Q*8WE!;mv=#yx>u@f zy?}sYqUySj`xoE8c7$?$Kmr23uf@B28Yv6jpfX?Fq?+ed{cee2x}dx7HyCDT<<1-^ z0B;78TRHnNDl9TkVbbi4hwXV1-pkp=W(&wHt+K@||9xlD!C7#$tur2}K&0>>D75Z% zqqc?Dw1~G~AIz&bpQpZw0yG5eZP4~<93~A{yiERVy;ClsRX2M852-#zZUKb+HTlqi zQBJZQW=sQt_?Ic=(d1R`2rn2rv1{TrgHw8k{C%UkUdfijj(nI)oW44QMfq )0$hyA|L8KBrF7OH12N1)SKau_iwKbFN%VZk#_@JFB~tzM5o b z+VTWe0qSce0e})TUvtSTRixKgr9$;R&@69F*Gpz^#>hs??MNH_EzQuo5MdKH$auZ{ zk01e-%lpU8FazF_UyE9ePBL8k0u?X&d4WaUrgTkl_b3>0!Vtod7mQi7NgjS$_r8~F z`pp3N?+Nh+KIHExQB-5YDI1E%t9vpTkeuOY8h7w3;xryUH}tIh2-$F$y;>@FOAZle zTHa)dZ4jZNigF47J;ut}8e>5NpRo;FOPf6AkwRV8$3EiXm4dW@;!b;(#mGbAW8jaV zz#Lg0rPQSYXdC#6-JjP7Zi5I<$tYa~ZM!84QEm3)H8tLcbPcZLn`yh(vLj#85u5t+ z!D`y@xi4<6Wv?{z(RiQc!0t<=8={iq)nL*Pqtk!e8l`&jh4!zlw(O4uTik8Vp+;uU zYlg;|!v_pX0o!SSZZQ!aa3Y4ZMNdyKE)8&=B106ww*AMNXs5Fb(r;z#{SL|^@<6Ct zk1`0s wwj|ZdnaE zB63Hb5S;Kc#R9!ql)`n)Lvv z0LEk@=L7}@m@x$uWQYs7Yu1hQwJG11IA cb%9?1f>yX3%OFh6kp9%f4sApIdKS^fsi(^m;qF{#nv{ zQa~--mcS#jvIKZ!Ov)U*)a$7PKN&B<@6Z%LTK`K}6+z?4?8@y?eRU>rb|^Se)L~Mx zhP@PeIX$70-Lk=V5icL%#V9Fo1C0j#*jCSD9xy}~w9SHRH{gnXsdh>C*oqUchEx&v zIkBrlbSDC@o@C$SpI4&Y-nSYhW~IYGwc6FJ`R6kIXc OMDsuzQVW#AqF~zg#U)1IRdK4PW?OUEB#Uk%B zuqfYXM>6nhW0JWgNBgC2PKbt9prm{OCZu3mSx6{?KrDxBqfc#RdZ2C7*I&VHIBFHI zQSl5fr2NhNp+ZDuP{!n|N3 xh??%dud0#r7GoB!OZvH_@de ziNnlp2}32Oz~w0#m)xv)S|bA+#>rQvgTx8W f|BQ;@&Si z&z 1GUtgk3e5 zGM*%#f@u@ZEABF*w=sDD`;vX*FM;(syP4vciRkU;jSk9l_jtIOnve~OUE>!-iHB!% z)`(`_S}x%v3*h-P=h~VN!u|vmHDWLT#Xq#8Zcy-~Gk+7u`=FW7ePwkiPlBx4t77wO zNdSVP#%#R0Qyty)1g 4z}kp@Q{&HcSIu R9Q<@tXATtK70d&4m?_VUFqev!WV z)vvZW;r_;S{4X^3euD}PuQ&{3oag*u{NQ&;z2g3id~f;p9z_7|oCbMGyNuVQm2>Su zE9WAZhHHkEXC#_;OdEQdn$Q0kg*r2X{mQTWiZB8uEo`C?LrUWgI 3jc0e_>R)C%PI-njuqvwAZD*aBh25ngf(zO`YA zcn%NfrKZBf1) s(7fm|x@y`sxApAkfWFB<@^NLN3JQ=G;y(%TOxitJVo2DhJ;#|*U z0J!x%LM#jPOLARUl!D{2;cFz8iDXrT;@q~mhdSo$#-DhyO@_pX-RiQr!b*e#-`&B+@@%^|`pASPi$)bwCK%1aLsJ z@#_wm243 %1%Yg8Wti%L-g-8}gsg0W+O@Ht>`$qc<;u3UyBeZ4EO15 @;` rrQ+ANU}U=+P(nq0LXKm#?2${yD{V#Gd@7F|3tP?3)E-ji)yHov?stf zEGjTzUh(ihI@P<-KbXhJ+J?PNnFq!Zd3AM>#C)o(JuFX|l~L@uV-_CaQ~+Ec_PiLA zGM$2@S#yUa1?MzOPeF$0RnJB|bcI-6=kdrNFt&Lf3%X-Qp58 ZAN8*MX>WKkWmux6=M##~m%0{SZrHH`<_ zb`&p7>>e$pl8|+gIlDpgMegrJW}^NS$_pUv=7!Ubj6SzwjPpJF{he e0FxQ1E3sl|N6#se2R3}R0iVaNbY-p z);!?WQKI`@pXmHEQghJC=Lp0tfof~O+>&?Pze!Erx1ay{pO<8S5qyiQbFJ~;0!&^R z`yN9A5yr@apxwc
G&nJUrff71E8s3Uoz}w+I%s z?bRxKOMqc)FaM3^&s4(VW9CjOYOTvOFXj%_MO~oN-5?a?LSONHt7 ap+1 zyvT;+29GEr1h0yExd1{X2QRtN!VgTLG)Z?Qt8&Mxyt#1*g-&H1yzg9(Oqyi8?qH>p zv?g7)ZP9t G3Gw6o)Zd2ANECZ-wnkKOG_ frHFj1FQHJ52fKwd)rA-LRhmW %M@csbT+ zl#MN#w7GR-9g68Q0GDA{dRto?V?E7tb`rVFFLoXa5y}R|^MKZN(H#jH `= z=2fV>B3Glo0v6=utMk6LjgCVA4}5N r4`Q7;vFuJupVUE+eUmc#3gG tsBoEUO&oRcMkl(Xd*mJH6ivToZY8`-sir)nX5K ftO(WMlc<7CtuDw3Kn*DX3O$M8h4WJ zC^@ekZf|{K32Y`-5H4$;Y8k=@vI%xZ(uLsSx?h#k8eV)i^ZLfZIU4N9n}Y4Lczeqm zZJY_#oJl?3CYiA3-ADMX<3Nv|T%FiT%CkxIE*9UikkarPa1kyZ>zQxA{kEKY_0?CU ze4qHKPtfbHzfNzx^;W!%F`Iv5I{vW_sQT9fO2UD2I2hx4jdXJd4o_tu?kT-T=piAf z>B70RaxOK$r8C#8T|1mPf8XP8#)5zJqaPIj4xkE>|Hu4QOl^Lu7Lbc8#t2 s} z2+xK#e!Z~-PJo;UVj*mE$*ay=#AV?8w{|j*A)!co*gVba8p~E!h>x>Dz66}$JP`PJ zO *}i7+$G-)x8^=5I_-Pfx `XEkECsbvP7i*a{tplh9$F;IfUGz{ zK`vMo4J+{3cBU)}*~v~_7FOyBxr@Gsy+s7%mL0FM%&_WhIk*vlDyM{ow6Z7j1}jG~ zexRHa`XlyF!w;25u{bp!yZkKPX_UY3B`=UZn^#ITMIBn0T&w3*QufBno*1_T!^l86 zgc}SdM=acx?-kF!F*|r6kY`Z^HQCCazD`4*HkP2i#Ep2Y;#}rp+ArEqcSB9HF~ond zNe`2H%~@zflsf>_&~Br8I*L)h)m>`$lYxrREf_wsI8o4F=DlldtsYdxKoaYN0+U0P zEeYXG8IEw~MWbzbh@g2z9fIXEpC2`M%a!M~gQqOsJv8H1`YVs_#S}ddVXUDS?O4 zJFX?&NP%;mvhj`ZXpE?Ykp)}F$EX?{1B?TzE64Bzk`NXuRbg#p3l?nP*?l5MBHu!N z2|OY>%bdR}|9U>Xf+rNOyB5Fr^Ba?!Jj~OonK2&Iy!cDXoc2TONfJsAp+velfwzOS zC0f#UGBnE>^3G)!xACNWZ>}u2R?;zs^6-Wo7{!=-x4a8+(H;Nzzpb@9&tVA9#sZlZ z6YXT;BJ663J{}}d_hSuvyt$S9l>=H*+{|)VG=QA0o;f~eC9RjXOtR)r;u$NR593`8 zgDMDuDl X{B^CYy17uH;VQ2@bpKm2!8J`?^Nu4G&RAoE>uGr32FdS1hO zr%2d214IIvInS8f4SE2|9p^>AHftGtjtD%cmu|xRQ4K==M|MMmcer8w#|TWtIX!86 z>Tbe~mlL8I!kC=t3&ncYbQ$eiL^f%CF=xvxslt=|Y$4+nl0`Jd+ROvVjAj_`09})X z3WJd#Kcdc7=gr{tB79YR=Sbfvm&0?d9wmgP^Bm3nD080iFw0W$rsfSLm`Qv=uFm&9 z7K1FRxyt7HF=R3F*P64vj%nnxwD}XQE|1Ei$vE=dngw!~ds95O3~Vz1f^=BbkZqa+ zBQCRM<7(d5Vend+5}L;OO=O#aI$Ag6>q{OEuONl#Z>cyRAxyf})eHDxMX&VhM$Koa zU1;*g7U4KoBg;GY!o<8X=sy5Gp)B$|t~!nKO7U@OtrvI=`ZQWhc~!@zdn%&+Oc&Do zCfPjbxRWr^q3(jJaum&7OkdX=pBnyH)Wa3>7LubTrmfv(?NjYVlt0yQRWi_Yu(T9O zdyJXpz@E3+a(&v)z6^ZJIWP>%`bpQ`abDP@020d~m2=7Uwxx~g;vwU#z|&0gD-M<> zf%^mz379@* FoDmpU@oafCSC6bZ@(>V!(piW+vh+3dHU{mzbhVc zfxbkV3l1#=Ln4B0@pBAKMFCi$|LAnE%iRyA N0pPtA0fQyOJmw6GtH#Wf*zFU@ zJ(R^If&%Ft0`~597pdALLE$e!Atah@BoIBLm?F5i1`f4=2f#8Ayq<6_f`_q~EDZ|!HiuZ;6P zz<5~$$XXzB38b8zFQ@$5f}3sGm)^TX2*Ci5v(yIqB~{5o)wsl}S29Zk<(*l^(D8Yq z9I_h)CBrDd1gaA&6hE0v4J P=e5WU6(e;4wfouNAKvj>P~CyGxZB3w1y{kb2M@ENsTZw#oJ_YZYRxArxdFtoGu)kzF7=V-oqfai?J>03@Qf?o4ixjeFnh z0I$s2_k-?Cj2$y&yn4PPHNuM5t;)a%4uG=(Fd+%Lsl;{cc!83IBwnImK;r6bi;?!P z`sxnB^8-e=)`1rUuu&_3Q0yAZ{a(eS%}a?qNqsV7n2omE+tK?$JV2T`iuEkyam5^< zVNgL=lU+Pv`V`aAHkLvl`)<^bm0U*&mn!i1z^%pQYW3_KEkX^s2CKe<9f6f+iw~LE zoLMM@426YO?#>~(P9)yWB|AW&ZC82A{qPJx-^%6%TLELZZ1QZ~%Cyd@G&dy0D9krO zrzI~37K8z;qx=Ya6mMB io`4Dm!PM z$|BFjYO)a &E2OBbF*p ckHn) xd*xw#aGB!Hs9BTMK6F32-7PwT?TzPYg6c5 z97bMj;Yb9ddEuE?8DVcC(lAX2aWDpg?Dz9Dw+U1SQw(ECN7wl|`EKoVRTyAda)5Q% zK9UVld_i9yR)Ib1S4joIVAKZlWp#o;t}vDT-a|8j4TQX_3|gTJZHq4f$PX5=Km|Hw zmL0#fu7jinV6c!E7hKj17IMsa*CxG#J@Yy3#&N8hLA4QRzL3cOF{mh>iw3UQW<9dN z%{(v^-{cRvG+`lQte#`w8CQ)U*S+5WI)_EPWDD)Bazf;uZ^GGw=9uI++)AEaEQ%Cw zZcR6|6Imyoxj{dRksQfhjz#6-vM_je!yAu+&KvlMF9JUB1Jk!SXC3nbhob)0Z~a!B zyV=nG`_u71P_?Yi9jzA}4lveB)A9OraBhXaoQ}VuB}MjKpl8{Hp`~=;dwc#; PDvp-88`p}2ub9JA$mjsEU+l`+GP53*2pP0lF=h_`B7aJzc zS8!u_;C(dDa}|xFQ}BbYl`VvAB98zU2u5K9Hb8MQ20{2munV4KZ9cUnfTXQ&1S{ip z!)#Z)y5YbQ5EFOMYr`5_il7vJNBq8cFyty^mVhSoZ+tfharQB9UYq|c8l~` 91&!N0hRLG-@JK_QP+qh%3||0p(Zj9nCnOfdJ?#b=EiW&%_l%$Le59_3V9f%r zw5ulPp1u06d(v7Pw9j_n%?yJAgBVIm0HZJ&)j|=?yeCY#C0CX3E>hzThD$bk*OU#n zJTkmxlI4}dZbZgA*>Zpl74XwgRr7-6YuQ6 Ub?e< zandH6VU}}iD~4be<3{V8oNpu~7a;^G@F8ia?GQX!)Ltyr=q;7oiglgtv}JWqb%#*B z##X_Tg+mU5g?Ct8NM%ha*pbrCruibz3@{g<6F_R!ha}&N@xAmUgM6Dw29*Oj=!Br` zf>6Z0B`u$LE?X|BlnhACx>G2JOqs{GcyH#>S}Pbn#rL(e{?YPo8X2`DhXklVXq(r@ zMz|>923x@rv5r&+iouiQ6H4HQOC~srA}KzFXXA152g+>;tjhBy6#=>RjaZjDr&!(0kcS*Za1{gU$Ak8f=eWXu#SrL%_Mj?bt?GQA07(Nsi^FgZ zUcUX|ZYIaIEra3Iv^zhHW#7$sBjb20;owIzs*Q0 ;C;8m-J*S!7X=2%(6o-)mL`lYI)uotg{ zyEAa^I~W$ v20qW^HX`r*!99dzDn%)H3g_II~a9Zhm(l5Tn-@{0Rr zVB z|u8R{J14oV)PVXL6Me{W>h!JyajRrnwdY6M3y3nJbqZ_xl z{>H^eo=nOADdDGeA 9e62NSlaazbAkPxIUIeIm2hZR_8Zetkx^ndl0rrCU=9vCPO`d zld<5%Jf|qgl7e{ypa@ajZCq#!HJ=j}8mb)xuP!V|B=`E0(wm;7JC$xAeC@q9cLTwe zL83PnRImj76?Lboqse<_VER^e@kL+O#WJ(m$PkXg3HtZbJgq=FnSPe6aOf%7c8EhQ z50j0g=uFjxp*I7pNz1kX&WYZ)&F(OxI*V$5oKNk@UV^^UnCg0^pzO*UnsZKhltCYU z^E*%9QNYo3E0&of%Q;A*QuF)*B kSs-JOX*Tl-F?-k{p@^_!k}}Y+W8Nu8mc!d z{_3l(^N~-(bchn3i*b=`96o;Xq`r^T8yBAbby6*!&Otr$h^l90F&RU?X&d?&Sb=(z zR=wC4)8c#-9Fs=#N)(-Wnv>ps`v;zHoUxfV-gtxl@DKkm4x7)C0%z>K7I#I((SmNR z7aWclw#pUeol`$X3c`Jt0?hqx(0u^7L=UI7(o5%Q<#YS}A>M9F*Zl^$$RaUzKKHrL zIWxq3UJh6UFAo42o^K*}BzdJ$nmq%*F9BaIL16^2(*A~LoTCV0L_i?|FSF#{Wv;-U z02+kBQzzXBGRFH`?;?1%#gJL#*F*cnK^g(5NO4!rmZJ9=2rCq8;F}m#A^a;6fU)Sg z*0wGB*jIZS5Nc^xP~6u7u#sP2tYYV!)}46CyE1yzz^f#d4Rz#eJn4C=VZ<#k!tdb8 zg(s8 0g1VwMK5R8JCl3i#ofajP38?`=6+ZaMu)Ppl^EpL+X z5_=y=;_9T}_ok@)^Bo8Q%3xYU$VDN~In#ppXv;S5Ai$LfmTRJYO;$c0!saBT$|dqZ z4F(V;tB>q{mq!m1Q^12Pr_CVwq_Tl;!qeP_8`X-SP)ca&hFARdzFMqFfOq0CCSIeV zK+@s@4r#uY!|~9Rwi>`Kf9bO|LHQB8MG?U4swne2Ikz0I5buwgM?--1?N0h=zeng% zeYNClQ;o 3KvtH%;*V4_El@tH^ImuU-jfisZ6m3nT^YuN7GvcW126w z&`~ z08tvpMq!>)%qx|=exSjdNB;VkQf(xEZwW3gX7DAl-88L &9&Si$xK}k`*f@_H z4(TF_fqg5Y(7l7Q?tZIdYp7Zk_uCLWFSwSl(sJb&mx;E5p!pSHKxjLZQIqYfo?&AL zx!0`I5e7~r`8gPBpr!c QdcZl zx|G}st~rQwUSbc(-PJW!quy56H;+_zK4_@d615ANweL-r7xvQeqWK5acrF$;%wcKl z*}U5g8X9XdcE_7taMg}`4GT4X@TyDuk}LvoA9BcN8f(}uJ8DK |1koX0FN+41Vk?#RVDPiMz5tXFZmUrWOe++lD7S PMJ<~gP(>NR@v{k)mlk70Mk?}0^BlBIDJjWEBRZwH) zE2Kg}L)5XCowx9NwO=eZUT8t= *rQ)A5hI zk>=s3@t}osxV|i0!_Vf>RNg(60lx2%ddL0H>3KZh(!%Ez)o#`>OZT*&mw>dT@YCVK z!S#DHzVzpQ?◊Jj?nvk9wv08@MwvH{_wpbJ8^1zI8@wDsxJdHz2<2g-bV{}MQ{ zL~C9_ZRlYH#+L4DpAqY}mdF;s5MK*0D|$ho3~iWX^r(xu$08^i%Ls$51-shBwM&3a zEE`kYAryv63}IdCho#>T;t8-5pjiYP;=9{6T?*xmJQ?#RMPL&BgZ9FGEfCrAY0O6j z;BubJr2>jAC<(9__2IwKqpxkN_}-=8*A$cZ+a>UA>Gw5|Z;jgaN=d;P0a~PfP-!q; zRq+rZWS*w7`=`%Op*}WKm0 c4REY(pNM9i5ZMy)Q_R;0`%1Iwy{_^ zH14 Y-7-DI-OvVC8_pHbyFWt#v#Up8qGnLgl6$o*Fv6PUsm2i zm?aE#Pe@P6lEJ{8pY&!JKtuJ+Q60L3vSXzheSy`+vF55Nwu7wegH|{q0rEBgn8L1b ztWfxt??G<**d#RqSV?4enWKTUL(oER?rufx-fo{rNYt+Ih7V)KTS>hhvgKA%Ai(;l zKmi6}8xMF&=uWl_awO#bAorCcfKpIM =LhavPG$#e>LfEBl~e%GHy{mY1(+zCQz%-P0`? z99kCjIPi4YB`jVA9ROua))%-=n;Xh<@pb_=g|{idnF!t `nnldF|kujG1zkmjMvz~wm~G9O9p88mROkd(B%)%}eS`Ub!^1^yA8d(aS69f!;F zQL;X^R`76oZX(QkEC+S{4#IP8c&JC@K|pGFZyyb8MPGTf%`+r9pkVSULEb=47g#E0 zWShm2?Y&m_qj })@n zA#KqQXn!&KY`kX}^d$2bd%b|)Z_Eotfd1`H+GJb^4Fi}d?-^AN43=0Oa*@3OCG?CJ zI7xRZWT1^1P{26S+ @*S!- zVWR+et|f1GTM$CdHI&zQ7>fe}4_h8pFG{MfMp4?ip@JiIy2KEy;H14T!!y;|VKhXQ z%OSa0w=^F1+HX|n1+HJ&Ak0x4IR`%T_OgP;a>WQEm8EsZ&&^Q1PUV_p`exy=R4kld zb*Z7LCv;t3^mD&sqI$OW AVhvLPW_TNi{zvOn z_14=WFn{ e$9qk$X`cZOAvo5!nw&Q$o+`ezT@do|=@Be;ei_cO8(boRv z@OkMlYho3QV=p`2L6sBabB?$+dH)Ng`vP$3%=dKRTzmf9L1)gl?>~1vj(>|n9eLv6 zPGv$)Ha@WBFa#1jfp8rYCeo#Zhf&x9`~bKCKm `aISp_A~gZ1!vd#5_F&Q_oe%Qa1Wz23rUu##6TW(Ef-Tqa_mSx zG44yr5m?=?tCd{U(`p03@W>jD7A94`e7jX+A#wgMS114x=!MyL7c@^jxb_R5Ge6er zp_l ^frFW(S$Rh2ry_-137c~(MaCjL8Q z@>R4{7Z1ElNkJjSFE^gBe*_T2@0hIrk+3>TwwgyiGaMzHDAy$Q*7o8Nc&FiGs%vSx z0lX9MAa j?xSdP^|VSe430eC#BXGt|=Nf$3|gNfawj2>Bego1CLf#P+PC>YWjyQ{o1T3GX7 z&2l=vqYS`01 {~%xDoHFXXY)dR6pEhlH(EH#@Ppvg!bjG9B`+6)4Na(W!8+ zzC)fZ{ERRsGtLUsVcb*4oMN%kkYXHRK5D(y*GO}aZ6ySWWxFQ6&kmYMHvqiNma-w) zXR8;~+?wkwNA;b|MzHZcm522zmYG?l9d`SayoUh |L=LECkFpn?a&@H~9EDW{e}hp3b3zCE}m!h)eR)f6uiK)r&ew-YtIhkZj?N zW&5c8FJ_-5Dwi4{pI-?a!62^qAC8`HaLmaYEW-2v(`#tZILluwT9FEE! zj 84B)qMDcWr X4Oo+6WAv*N{t^B7W$O n}Z#Nsa4|&|&+=l#gVvFsFFqhZ@jDSY_kS8t;HDuTL zh{piSIiHJCZ5)rVF1j#*+-bTC>?z-i4ZqRdlc85)aRZSh=ua#X=5eTcv^~c?LGga{ z4Hb+0OTzo?b !k<>hu5{t5y B2Rs`M!4V zxdv#@o%4QM`^?9`5)1d~Pk-9M0-g-9GR#8w@#9CnLny$G2-37Uy&^@R0vis*d~gT@ z1hB$N0(Ky62}*yv835knpFJ*nuH*r1L!#VBC_}7Y^nmh?NohW4Qa!h{S`mSc=)Jb| z%vgtW?*(9pT|MJF5i*H-Lr~(rK?Dc3gHE%4h(O+&msku9;I_hj5%_F(SZ%?cwq2LP zOL0HfF#?(q{9WQVtn%YMkw*bYqMu`ZV>lM5 ) F52$viw7rO?AgLU?=FAYR*Plgyhb&yxMR_D{v1k6k58Xjf4!dFNDCcG%00 z$BD~r?^FjDn84RF4^dXa*xMsjUIEX$2a(BMmkl(`0D0sj<1#T2SZuYG%P$6-vHxsg zz-jM<|N!(Zyw*`0yHl5wS;#?TA{e)5%~ve#f-|=T|%DZ)+);HLtciG1NGWZZHeU z7cdC@P^b<1YGuTHjF*rUSQ8x!+aAnVcMvtZ!GwMpZ2a(PF@&c+zuI1z=bM38WMNg( zAL_xB%;@6z-E*xaTy7m6#x?4ohHYJ7spDn7^Rvo{0KVCHEs%G~ c?HbwwF`CPd5Uu}8c#?$2ftT6MQofB z%{=_{yU8{FlFj?f#%Bt3f$xLNwG$smAK85F^N1M+96|{Ln7n#%&TV+Ds5h$08O_H9 zAt#vGpq@!?fu-c3rF?E{APRdm9kO{oYX{W6!omkt8NfLpc}(Aq^As`{fsIso>1uZ^ zeZQaHYuJSv@P*R`sAnXX=eWO9;AAu@C-s7-E0JTLY}834W1dw(xWG^kctUVHFKv1i z+a16iHZ;&zL|sO6;;{$U9m}*)7dVhRmD`7NEqO>{s>$R )#U$FKHb z4S$L}f%XLWCT+&MeOnY~ pTyjs;!dnD~di#x3QDhCbGCPsErPct8&!g-bpX^1~vcQ}enfmkGkU z5^Zuj)7!?p9KM@oaze}E4qMg-(yz7|3%qQyfp0O)6W;VH%1a%$&Rh5g{aL+|W&)bx zm@4fP V4{=$T|slsN@n@4)cfk?An4S-ibVStpkZPJG?B5>Z1&n@^g-(rKSjSzb>@d z96#xboJ!@Wah~>Wou56MfrUi!7tSTi8d1BkjLMX2Z-3^QQgm$Z4+oPQ3ap9Em`wNb zWY^Ll3VJ2<1zGAADZGH-972xX(Fi&49s1tp2f40@SAI4yU)Sr3+rLN2mul~UM`yv} zD)jfz-dZ5zW_W)>r7 zE;x34>QkShZ+zn$6zFqQ@tx9q&MTke0S<@_9M84Cvw_DO2C!!wcMf~RozDsO09pdz z65XHDne%Do`=!s9jtI7$J3cWTHA~_|ufP7fgC{X8gTqzW K}EGwODS>v^>H&-kx&PNb5J`2~OjRDwkf=wp$ciUHSB@(n0-r8Ot%gzVd z5eile+l&+88h9Ju4FC~ddH@w8#T ZQE6VVhEjJg{d*IW6tiD5`D!^;-R_JO3#wBpADPi#(4P3|O(0 zP(w?$Uy2(fk`pH>_{#OllIKNt5oIsA;yD+K<-E$$&l^j6uHJJ78pqXI^mnK~>VyRb zgtu*Fvy9+f!wTpCBa5o{TmXWq{f4oXs&*1|Y#0!B1p&l@f;`~6jSYmdk<}+AOwR?m zb@bl2uw!@3`pV&`(8tJO$zM4f1;ED5?Ts5}gfOY%b`rr;0c$9V7g#*0BrCEx$HJpw zfDH)= %=@Dy4>^*eis|M{Cv)bwo7U-A|w+0FT7~? za}H42WCtPP1;`i9Cr;4Eaa-<_jg-Uqdk1_@N3^7YD;x?_^{7dg7VGo$O4Z_mX;q zm~@h{i*QT!T*mI8JkGD5=mMx3#AEFSs(Kj82w*+xZPEru8^_6Hj6Fa=KGCZ*=TWwe zABxQ{Xn&cHL<}0(n8<-QXF&`57cVsSSkF90p3c3A14aF|@&>$NE3fB#(D9|t$MTM> zE=M}|FiUT2J}>5FV@9paXz++k$r`Q9#*9|a7MW^#>_9eGB>?_Wi__=fJQ}B%js%cl zCIkwZ_fQ VR%`E1o?DCZ*U!F0@r& zBY=ev5=uN5Fz>QAQYelu-g!L-ogKix^Ey~x$RJekLoT-+qml(6YZ^8z#F*|=ia*aL zu9JEARR4|9N+x^sg$CMGJxTgfHUpaYi=S<}C>6|7#q~kaBf N!p#&U*CJ^a9+_En zj*eI5&PWd*Y@pG|#fjsnsYa6i_oNpNpuKPNLJk-^=W*DB;mxexcaIOxW*9P{e7G_A z=Z~K 9+s6Gto^>nj}LpMf|~#KZ~wLeaQ}Aw z`RD7;{~JV|v)IZH$)bJob1w|Fejepo1r$^mdc)7(T(E(feUm?b97}e2t{q%=^z+$w z>vi?odtPw=XKlz|{_+?3`SYi{>|QQ6Km(J|v-%@9$;#AfjxT~d6__F+lA-Wi4F}Xi zg*;uf%DgMUau1-n2g1cbv=-s51a5eq$J*ao#9#&1Rt2(Nzj|e@K-dvLwl316ezwM{ zdYNmEp{4|;YUpJJ&T4zvz6x5c@2qX2FjqajXu({qA=PSFLCqTa>7fr9wtNdn%tr;s z?uD(^@aH4IkA13u8$r_=a!h*QCR06pYA9@_vs!6Z&)?<~n!WJug0E%l=QGQ7cR-Cl zdVB@awQ`*)7T8R6*;b>mUAINn9T9Ap;bvZxk$h-_@Wz*USb>#dA4RCQuuH&3CnN&5 zr*2SMs(|I5Z*|V79Byc92$K}5dxllnB>-tuC`hcp+2{yQBDt9wA4`;0zjKh@=*>Bp z$W^?*mdehQJcQVZK%s*yV*;Qn>J4EI!WwIuQ>Hrzb=nA0u$`b+UHfRBiLH%7MTmkS z7Fzg#m5fK*ZA_65u_&jikVO!0nNMFknIn<>rG~-r-EB+$uJ?P$i|4=CD9UbIgq$Yf zxn=p`#g)-_t=OpVx(Zs47M|>YRLvP?-W@;`^gm6k{tS=0U$4J}Ic{|QzFuC117JCw zo*pekBLvWJ_(89mk890^y6#Kqz2t}H5iz>)$rpOysn;ms$WDc=Z11$JY8y5vEG9gf zUgC30Z^83 FI#$pQ{a>YDrP!gegn*5(q$JwVOTfMid3rf zX9~v`c$^9pm%2t<>Zl BL^kVz({_if?7Pt?Vpq 97LsuuH8aorAaDGs zR `XZXeje(n&;?94;*?YByISd_fhya!dL^;!0Oe|Bm>joVdl!!OiM9s2Xd9t zktXgodi^+umrMhJ7!~Y39+!`cdv-iOV%{+y!nQSu7B?Sn(NN+C_m*e=xbXI4J1rFK zRz|Aw0zDsNozhEF|HB@3*6Png3_x%4Ax~GnrSeSgn|W0VfJz6DT`{x*2cp$IKLTjG zk%0;iuX0$*JCJGm9^P#NFwvDeA4|_I2>#XRP1I4@S*sv=o}`m1tXgr^atOj$2E{X~ zpmQ}eA1BWf=Y-DOQL12bFZh5$xfXD9`ea)KV1a{b4eM3gVqv~ertQs}17{A-va wy8`kEa@{WCqYuTrP?~wrSV!&z+$N~tKjohEs zb8KT!>4Dg?^^_kP=9wVb2wLHj^I3G3AIRrM&^<6Gj#p`!_jLrYA)tfPiKz&3T(c+H zNaw%!mg6=`W2D{mxkv6h)X_!`QyMwQYfX~cat++m4;jYUr0`K}SVoh&w?@uO@?xJq zs~(PMgsAfcJ|63`?D>?j^4*a5O4QA&Kf0{wZE(Dj;H+%`MgteCEbrh|M{yt)@Ctck zxO8qt02nLMuu8rmVbrE4tfyXhn!Hp^AJe^WxFOW?-wI8r(6_W@!54k(F6R%UjVBaU zdHwy>CQ3ci8rQ*={N0KpoU?ki83y1Cq~{s7PF=I=eAM&I8xOho>J~sEvD0SYy2LuP zwm0k{0Qv`_5VQh4$&^HI=?@_D4&n>kr^ZNwd?V?Pncp cN+I1t5Yl6c8$J~& zdKevf=8zd!F0jX}I>~$ZJO%scc~-+EYf18>V+AO9A3?z*P-;qYEfNcv3%Dwg>AjHQ zV0 {WVvc=F8dl^VCirY-deSZy^^gEunP|Qh`rp*2YwP^^+N|#VgoWzPpB+ z)_JX9W2MtdBkUKyXa7lK1V-ySSK3+EMID>3fVKMl3I=}X{y%e2$kbyyIs1sj&Hz#T zlEQ}}q=Yz5H;R!;WXHWGOr6@4D~XEUWmlK-%ze{FT9F|p_`4Z3CEir?B0(-7p<*~7 zgdiI_JsX067zQ%n{na*fJG3##U-P;YoLl)}J=Pq6w5*aH?_*GOf#xAXZzL1o;2B6y zE`gHlBjDq$-)R+BwUoLnF;MP(gwn#fVZJ^pssq3Tc~h)Y067h7vY*RZ)(~WPCAx=B z@-E9!v=|(8Z vVY&ZQ=)9bfsN58s2fLRE#hWGez6z#4ejs$msZ__|>G2d;q3z+#0dg-e;zF|- zEcQJ>H*mUXev;;0=--MFgH;wS*An-W6M=G8+jTgLg(@&zP!b7sg &OmM;;<7iJK+ge)4zg zyq|mU(9k(4A8qc9rNgMXkM;|A2>K8sJ>0 EeL;QM~x(B^b8Ca)poV`t |uFuwgt$MvZDX-eBy0cf6 zy}%ga^B&=jZIim^ta6+2ZZoRDP Dp)mk`93$Rkn&qh>Z)AEo zQ#J{i4`HdD;L7mORT>i~FVaO04+0X !CzXEqTs2NoDCy3(0Ll$M zleIp}B8fFt)|+t6%qz-iU7`}Gt-jr5B9k2eC~%Lhk8kWVHjd(t7pDm(&OF$EJ`2~j z&$0JOMD#hNM$iz&NMyvb 23=QOd z?}XDC&)&RYBgRgo{^6m8J);k>?~QgWFHYkXc>yIEGaa?ScT^r4;Kjz*#XY24-+Xfb z$M${bE(EDtMmac-XGPair5c|%q*e$*z)-wdaRPe2G8Y_V@20ZaE+>=6G!NsI$H3^R z9%}?IH6&WWbPdtpEq`&7U%y_RR EokdSKv6y=87 zD3ffA#74M(FKeBA&ga1+duHRF{wQ#^7v0cgITWD~abP-R;!cmbllAKaT~?1DKYs?T zsb^eQ&qnMwy020f)-m|6|Lwo70Nnq&G|P4<$*|M<09Zh$zq@`vmV4yjIs7Rc?M6uC zxd%K~(N+cGE(h0sdi s7g>wV!wv=@%zg7+!{Z-o7ZcVc Q7auxge^AvMRF`EU6$Dg`=bXR8KaJFV8ddv>p{ej0Ij874KuaIIbJqgzHfYL{w$6 zj;oGeO~lRq5VRtVXov@`oNQ 0+I~I>$V|0?8)fpgu>w$GPs^|DE^W_F(~mRdG4ZG)FGeAXG@XH~*E`ObB4L zR__t_Mhj&E0*cPduAofIVgR_`pG~1W1y@&Yi;!cRZi^5L-^<;r!9c;SM;ol^7V6L? zmHEt#Qb%^;XC-G(9jkbz6uxy}NvF~hU_;4k;DxZX7gd6AD~2s9&qW*1ap8pvtX zBywqu95)yKDO!W~i6%F9F*rNy9&uMa(RqCt2o*GJC7xOcDb-7~g52KEw5EoaECdSM z4`^VZV#0C9yz73Ud4;T-$m6lU?@?SM5R3+JA2jgx_REzvDjnvz =)pa|B6U|a!Og9fw>DyXxK(H{~Y>3Qle6 R)JFY(MYVVMIN5alTUM@ zsP~UQ(8H*EC^9b6QmAk7VgfM@V}P}^RSyaDi#=s7xxudTLI^%BL)4AmYg;Y%EY}W2 z>{ixp18?FbEd_KG8BnjT_xChLSYAnbZVW2b9JZwE0cG8|!Uk!$`^#F(wQjtFiMb1Z z4I@!ux4~=e^&3Ew%thJ}jv4z_Ps6GiQF?kSH}L8K?=E9Y3cjfK)1Ze7`$h(unwiTT zBi8e3jC3ZJ6c^pVkn2}gXyP)^9
ig}Ny*Rh6inv%U~nAS^#DzALXczR>mk}UvPH9)9WnsOTj<#aAJ zjez9_Ja-S{S4B}hFja0FR6Ygm_x`GPoL9KbJXZ8p(K*`9D~H~XZ(*ohjmPT|@RMG< zWte;eUk |dHQx!66l}Q4b+uLbD9A6Q+0O98o&ZH7 z5Fp?K$?=>uKpyf3c)#L4^0uC!R(2!kayp6#Kt3_}x&Z^*BtMPd!{KZe{TJ+)1lH2K z&5n(0y6g|7QPctWd2S=QY|Cc}*+Hw3`&b_%q9yDcLu!#HEQ<+*`x*F$^WZoi&savT z&BMoZ7u<(N>66b}F{1E0VTumYMfFglci@P9yw0A>!ncO{>V59p5#R4^>6B&I{>W{J z$=pWdujM{s=?^xF+lc%z54o)D>c+uay *1!g$EXWCXFM?&(3F;tvk2mfOtuC z-fxp}8EvEdtnZ*J3=DYA-VzvG4IbyxrcuswKUG7QJDqsp7<$OR7|t (~Cigww_`AvHVW@KFZ@F^~Ki{w>oLAvgm1`ZO^PTH% zj_&|)?at?W*WT;o`i!IVb>O~g2d_Kwg8QFDBoGf3z<>Mgw<$;1sz^}a(}k!9C!Yu} z8EyTn#~Q*|!53avW8JHFn?7GX;h1x71@ZWddlrP70V>zAe*}@v#j}Inc=XI;Ti6D+ z^9bZy^O4o|)?x_+kyh`zIe*8v$ydf}js%$1%cl03=jweNu?ia2`%-bHCH 6YZ&e ztrjoNp^le6`w0xBhI_7n+Zrxfuc@Ak`FscwJsBs#x=Jh6yOQ8t^s;dB@d2mcgVgjKeZ0QV{ZC(Y9eT0xorHhK8dvc(meS~5j?}T+vXdwr%0ht*> zD!Pde4CNdcGj7<8AkQ+ME3i32BW@uS^&EzL0{Y-XM1JdE%{kQ2220%CqZ*>oINkqb zm?y^w03(G%q0)%(4O)ub3xkyv^`0)$XCcx;Qc=-wr8xu5N{C108Fh>ZQ0$Arqi-%e z^Kw_TAu2<7HojvXG#9Vj$LrYU!SM&(^i(pSVn_%~Z40kiON8FNYVUS(uaF%c0_vIa z46lu;K+M)=5LNQsYrnmcEUe!>m4zIuG>i~*X1+F8Xc=nkO2~tSes$zt@dtGR%dEsH z5N3DJH{~GNW71}5TizD!msb&_H^xGr9K|w+;dQ9;0*YO@e&7(|Ht`q-9(+9yDA6|g z2-_OdTs4n=@^L{UHn^#TGK94+l5Mgz-Y3;3)-L-nD*YDT?#-ch-iUS6*gk7NLM&yA zP#&(SedqkU7fyQX`8kf67kJSxT<+x#v~}VwdCqhwX)$KnELO$5NmYU8XV*M85G$=Z z2m<=w3O^G;?kus2rVLq=n3sI!1M-#yZTCGCI}w6OIqo#HIM0!syd3ao`W8I36&@>7 z|2!NM`A4tkHN5ph`$+&*L)qJ-d330v_GAF{^-$32LNCEZmfzxXL~TT4Id7dTfXM?Q?6O`3}!o`(FX`ZehzOmD?;&6gck5tFBgA-}7}|um(Nc z|Mcj6pHp$nvOVQC1LXi%sxg2Cf)oJMP_G?DI~+jl!u)NyLv?fNI+2HTmjSA5MLMKR zz&)JKOGm=hY+Q9Af&0tWXc&=L_t_?iu?^29(iIH^v2O71;F=sVPjYEnyIn$agC&+w z ea7@VFf-wwvd6RQzV+ zja$)!%chSTKnnnv#Vm|p!uy%B0lnaDOCqR>Gy${m&}BXSbd=^Pa-%Ew)!ge%@eC{Y zqYguYYSA&-N<;8crCb3pKfIX-y~MYiQ_2`4$68vZ99i`?&a3Nwa2TP!9P%<`8_wlG zs-xZa<>wz)9z49rhZ`O6T%;4wf)wgFqj~um9*jc=N-LE9Kav>Gk>{I~-|Nv1e&pbD z;ZQgC*7GEHdd2Pdx$hP)-}iuP-#mBknzeIB9slh6`g1SrwBG-})kgfwzx+#pHx($G zz?vd}D3LH1Tm`ji@r3FbS3S8ZXj8*DD=^0U=;1^Fhv)z3v4S0y;nnw$;Z*Oe+E!No zTtivu3QESX0*pt%A3q0gUVs^TUsYi6=%^kiNByqhk*lX&^ 4Li6hb?V4} zhC&GEz5uRL<#53B_3h0(BMcl72+Q i7Vk_a(Nfr*XCn8ekh6sf6g404HE|xSAu;DIt;nuqlcEJ-?PagP zJa$RohdHN17XmK|3wBktKm!3_Mce)8W9iePZ1CE=iXJ5RuKS{E6k!MXUABcwev=jo zZW48AbB#MK#-M2XNHfOV%ly6?OuX81 -?UX=LQUT0v&JH#?jHJti|Yycx6@_7GVm2&b0wLSCOcXQH+@0Z4GmBP?S*R z@K8sHbCzF{o>XlMFD+g3=lu-8XO 3RD8`ff%R+Xuk`wCLEQ S )8;7I*$1-I7uzxPajX4q|YyJf
y5cdxgE(7Ri(`CI}C@iGdO zCL?sIN! nmlLI9DA6O_&@bJSJM& z<3jPFlI-AHr?hF;QqVU+y^Y8TWrEO1aMZ~Ug6&rN#VvutgS1dc3@l*Shf7&yO5wpW zQqT(CSDsw?VKr<-UN*f_6~Pjw%D&q=7(E0fdmaT(%;B&^+9&g@uqt0e0LHpyvxC+) z `7)&3q{QrbqZUWm|AC)`jp^vv7)hj|S> zqT+1i;!}P(d9B|n18jFFkYEs2-H`dXVps^~i@@y > z+E)2WFwv>Sey F|Ht SkADjmO5H<(faKIO1 zZJ~vvnU?*Z_VJjH gSSYn$b;G#TRkdhe;
v9Sx&6rn|gRet|ofnb1UQc4R}R^A1i-1o_PW-0N4xq9KPpJiPrJ^ z_+S;$Zs2`?zm)kKW&IVowRoX9E7*nW%j9L{SLfY!fAv1r%8aZuJHX2bAdOf<{;!VP z1LoFpR!6E30=F&sL~Mar%`R*l%UvYhF~S>W&|3yu=)gW4RBit-_gi`qgW~gATpU2! z$UXh$s1G06ruy~LVwYVgiWE?zaOLQK0C^#@;os? @UoZ5n?+57RC8sglDubrU9bXl|UQw ?I$n4T=$`;?KukkSQLn$kOX<>22c3%{z_B) zlX_ltmeGTF1P4|3rJWUpX)Q$SXyBaW1zeWK6%p2Xs zq2TWdyd8mX^*B0LzZ(bFj!&+s=PMXD0dapT0N1|xeOu18JKwj1&tH9a1kO$Q-*oaS zV8&ww2 F564D{m(XA-d{nM z2>_D>>D(e(6lPqzf-H2eU#oMne@7vZb&P9>X$7rnd#h($?O%QN8X9>7hSj_w1e6Gj zR?jy+Z}oJmdD7PL<8yfJEpwd#!5al0mffT0>Om_T!9%v6pcv<%0+SWEqd?2{tW|zE ze|4 ;%f;WvcGIp?6}6E}fln8=d%b6*?fT8f;l zSUVx?1+b_8S&EJBxyAqzZ1DQ>CUEnl^>)}s9==oql@Hr2WQAKjlRbEAVo(Nzh=zW3 z2nv&sI%skg3E>!hrT2k76`dc0&upQ@&`qC-@XG|mJV<>W pBIwAc>rF%d-^MBE+C~$RrIw^zPvg0ADDmdQk 2;4FyTuYfcpkDyRxbs`rZS*YrR>;@uL8OzA8BZQdCR@zbz7h9ZUF zL6n4HB`xQLPofO$QEx?X$6FGx%Xd3%VB#n|x1yi~|H`$o9+3-aI_I}_sj#>@g}Db( z2k=?}hXFny6x_Sd?}I4=7ldUOp 1H0Kj;ef=v>TORnqqVTbpH zH^GYq?Lni)$F);Cs{NT#=HaxKR~0BCWgz8Kt=-bF9yE;45e;HW+}@cJvmsxWFBlKe z%4b- cm8FMa&Pd7%Q8jX8|AbyLJ&Yu`wBYYEC0hG2&gSK-W94}* zALae^?YhUL=WH>FxH7XjEvsjV%UO@tdF-(ev@QA^1xmGuMS8 #@ckj* z)OA!^5X?586Jz26&q3oP_jB-j{@sK3&qk>PtMF|gEiL&_D{>IVD|Q;&@CZ(2dur8d zA5icWc 4n<^sN7(-u(0D&k6L A_9H-`#=Bl zKcfhNdD7hRz#1acJL 2Sc&**b3OY-l zsyAH)yH*ghwvVBw)#Hort)UI|J@-J;3e>G_WBXa0BXWMU+q`M(SX5eEpUvx8q=Afx z-?JD-_4;FBk<}wn&k<;=^Hl*rzMJ>fe1Lps&FNR$Sm)s0IR0J0w{ILt3jn{6Fj_V$ z8w}4t`-OXZdL{USgm_RKv=OG427zk7Avgb2*S(@=3&qMf@95D+{k0Q}ixy?rHZ9}! z@NE@t2f|EKnGYqlqhq*_U1^kjXHEbds*?!> zM*Y8sH`)CDu-ws$0o`gP2DMjfCwUgUVCw7yV$wWZRtjx42(1x*O4_ADT-M72s@9qS z0n46xJZz(`u|2GmzQh`aC~3jzRM(w`G+z1qDHDlX8&SPa^SXLkyX!lfE78x7FXr*H ztEX7^KAJKGVUSaMi8KJ%yQnNko5G)tw%r@>oO40`GO(XDPo%pAfaCAUwNd~qf1n5i zWxZa*{Y;pH@TU0*x6_k*fLz=-u$iFvWbeLUPkV%ibJq|MilHN`eAk?$QfX0I@~my? z!N3~tg`Qh0&yBn5T$O9;ya7y` z3_0LOmZ%v^U(YaP+Ek*d)K(>YWR9MOyq1qv9rEouFWu(Z#wkK!nuVX{7Euk;5^JgU zfxzwxD7KcM(tu&i6kdcMHqtJDHuGX7nTkw?5*kK0k_q-Td472c&@C!oPuIxefwJu5 z^w6*|y2=+ tbb|5gsU o$stz>9ELh-?B9zV8-tX*8_v=H;s6al#y3 z2IK^k*W3sga=r(_!xsDKRMbS=L)j{+%9EV83&L~7=1GCI{R3$LHc3EVxOTm*A0KBk zCRoz=hWx7H`%$MHTqZe;@jYdXDt}GfolBgo5h8?x(f(y9>OnV@a4Hbx-)*G5N^|%a ze5;5ut9m+dG3?88bjJJ)^70WK0TkErvI^SRZxZsTKq31iA%}c+aDMf=9RPA;8#nkl zjVvZ)_XK}f` b`XL0#TX7Y%?!p;~1mxp62&FJw0Ff+sC5& z%@~B~a(cgR0po1~4E2F2+iqpBTjmSI++-fQq6CaOYnmV5fvxIDu^y|0=nk Ciwf$`eMb-&;MJhpst;}*OBi$Yig9-AIy8t*WVS8o06PWB((w~6{x65Q}rM* zk^t7E`ZXU{^?al7ux^0S$s!EZLJ17(TRobN?@cQTkM+6=2p)N(trbXXdu33t%6Iab zS}~O16v09QK}VqA3aar~i(1srHH?%w+1L&OUF&=F;63#{IKp&fYe)n`_Z zz1oI4etOj0dNrJQ1z+oN3|8g!)nkw#t^UxPjX+ri<7&Ta2r|c^wz;l_I>(jXj~Mgn zS#s2;f6M_PieoI~g5IB#?VlSq?94qD)%zGr+4AmDxJr#Q4J%)-V+?^+B$aUcg?TNT zBHL#3r~vW%n=oIPf2kPQ(*P1V5A(KkVRcZxi~U%}GK8Ws&n?3dsyZ7M zNIr+(mr#s)q_;$l%al}Go4$LI2M6)5PkSHX%^>uYQ=X-Ow< Bc&)#h) zI~q#W+(Nji$AlK~P!B8$paAalZ!2+6(6W(NI4wOtJjFy0D8IR1OtX*Sp2y+_c$4I% zQ=)(J-|K%`3H0eI%=w<+pkpY>@EFv-saLpJQ&kzg3T9`^|8%*YzY1B;KTL6rmNhYN zkLXPES+vTe3UFXeT5c@O1NZVnss(o4*SNP@N& pyA tO}ci zQtI>;1R36|El=4ezKZQ4xD!P~Wcj|*=5mBGSgz-1UlT&s6xv9g=4=DPPiuR{8x6-@ z``+ZH?p~TN*Li;JZx(iE@{bAljaXR0-B!87*XoTl!g0aB%oiD}oT(TTPz4{PlIbBX z!xUBxWo}r9RO}kUf(X#-+Ufv~v{EpY60gEGk87}-$agr)awY?AwEj1DXdQyJj*vlw zYdJqCJtu(&8^2z6T@MdW4|Z;U-HS)gK!2JmI^rQe22{ix%iV)}I)NwEaC9708FX(^ zg!JMa6&NG`47p9u?E@jYkfV_3)V<<{RqWJoaJ}Z^e1YO6HdY4KfRB+ca(z-h3y=Kk zJvts5vd+W7DBl-YgoSzKShz>9Pt$8sgoQ+$mb_|U?3(hd6=JdO1qIV6Q;g=o)Zw1U zKCr4dr*n9EfSQBY-qtF870`(55AGtYI(qr&ToLA}!ghEbK9LGq+tVn@to)p0S^lO$ zk$-bn;&VDHXAh)6;NB0Jgkmba)2x3Z_ux_GACb@Lvo?}#C#~5z^LL$})kr=m6L9h= zElk4BfCLbLB-=WV;>|HQcgTq>j7U-7`sBc;4bpJn8uE?hVI8Fjly8Q_yRFIe3}Ta8 z%0-;Z8=WEMthBmJW_Wi?R&u35!TXabKx!Y$AGov_h6mPO@FWSa@L L^yY2z6ukzz6cUgEUnF2^%i*#v$ zEdA^8={mw^6qCR+)RXvOG?&}>PIyPsurjbG>D(>HqudWctv_Goe=8e)-2d6p%I~(E zt1NYt-*=A{fcx&tzjL&M-$$Kp2lstvu#V1e%Qbco9MYqLAT@!!EmEzZbaHTmi&R5G zYXVqq!W86dZnFBm3fS S@#`6^nU4c3sHzwp=fzS2%oR?74L~iCt`ycaOfY5rLeOc#;AQwHw z)}vNLUHiNOZtFQ*B_v^b@TnIkfj8!XW7})ax3#zf$I2Dnha2FMo^!Q*?0Z%0DtKK( zdwHx@_PXBwUdKH!y1p~cVhHyd>M{_jWP6$>Yu{5?!={^0l-RH;z}5K0sKAcDFuAS^ z5+=?nm}V~Cp7TXjgeO#abk}VMT+F**Q()lTgxaT q4-D$A5ElK h0!te_!S7%S+&3npi zVT9;TcTtU2DD#d`x+d>HO5hOC^?e$8utSiyF+}*M6&~0xn4c>@I5|+~cxMl u6 zlXNim@koHygMzks PW&0Sw`qPH&*_%t?Vc_@j*U)|&Vmp1;a)gKeMpk)-1h^169B z^%g}+tjL8~m7)F(?~i%ANSCs73MVk>-FVfz7XG->frb(P`0;YxkI&aRgTYa@vW|~= zKJ!ia=h=7@d~DRcLnL$LWqVErq%_MBV`o%8dw#Ne_x^5k!S$6E_6FXs^yLOAttP79 zdFA0&0Fv43pPpG>(bLC{xytnER^UmM^6T3^&L5%R6Ki25U#|C5{yEtLYo6k(^H2hR z3OKR4_S029J@>N^yl0qIA=tk4^=&^sEN5L zGy~h6{?aSO_Pgc@x>bSx_{iK#V{k9>=g-RM9 &&$TevoMyZfSOaXF1#6qVFb$Nfreoja&?nL;948 z%oyF%L#3HFw0p7THCw~DF%3kY$Bk=id`v5d@yzoF7P{W{OU69e=} zp3~D~DfY2gte `Lx0-OIqx){#P{9 -r zfp;|zBi2W~eZ2WxDTsZY-?#VI2<83_K!K$a>b=M-Y#I%Lkj;v0Rj(Q$Go{=X-wru6 zrjmFkV=H**sB=~aiZY2X*W^4t7G1Ep5y5lF);;Q2c1X#*%5;J`XyCQn$Rx)iWI11> zrh}-Ad}>9W^6QO9k;kGf;l+3`wc2m1_DtQ#Iww*K;mA&JH4-oL!O7H*HtP6*qay8r zMpj(7K4V$k%A3?jBfXP|$uqi-squAF4|6Hc4zJ`QD;C-ccny|rGiX3xR9Y 8@$;Q)Rs#O)zV*7#8OS%U{mcWd$)7*k7k~3yJNW)PgH_LM^2PfI zCfsgXGjQYXk{PbY-&zh=uVY1yT5Yn%aI mU)abMVj@UD>zl# zPoc0@PbG*%WSjTZFwXjS4X0f}pqk@t53AtZ)}tI{Y}XOf;d6P^XWbi@S}Z{qzcPyo z>X|^Xgvinhk>F_c)~g ~BAgo;!zqq$k$A;rkI*I|$ZRz3AG_ z_YZ**mE*V7T&Q!YO3tv32*ffIB{0RmBW~Ee+s8E5ab7y3}GeBCjfvwn}={>GM=z zx1`wn1;$|R<`Rj!rNQFXTzS~X9&Ly EZzYL-n#dN*q>qPF{FQYpDn zs>*Q>OmO8Yvi7AiV`q9P7JzqPi`pPucI18%3ZoRn8x@LSz$-298BW(ED{cBDXdWZq z2X^ rW&Qyx^M*O|xUmu3AqpmN23+#@b8c=ge4A~Y>G9>q zOB59%9fZeHr^f*4zlU<|0{N2(`CKP<@8 &_N%?SZrDrXQ zFi!HORnBBYejz5nMoPF_M>x*H$g%MgO+uSD+S@|N3;IRBTHiop!)PR`Ql7alNbnr4 z&y$6BUW9x~pQ~ZymyVL2KA~A~0P+~+0{4=`*p2i~*W7p)?3KMIh~sNQplmw7e$aM` zd&met5tk9%tN88hm+^W{+#hmEp?k|08vHZIk?o}sE)2RDze@>QG=oGF