From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12539 invoked by alias); 22 Aug 2008 15:35:39 -0000 Received: (qmail 12530 invoked by uid 22791); 22 Aug 2008 15:35:38 -0000 X-Spam-Check-By: sourceware.org Received: from smtp.ispras.ru (HELO smtp.ispras.ru) (83.149.198.201) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 22 Aug 2008 15:35:02 +0000 Received: from [83.149.198.220] (bonzo.ispras.ru [83.149.198.220]) by smtp.ispras.ru (Postfix) with ESMTP id 8EDC85D414C; Fri, 22 Aug 2008 19:28:03 +0400 (MSD) Message-ID: <48AEDCA5.1080909@ispras.ru> Date: Fri, 22 Aug 2008 16:04:00 -0000 From: Andrey Belevantsev User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: GCC Patches CC: Jim Wilson , Vladimir Makarov , Ayal Zaks Subject: Re: Selective scheduling pass - target changes (ia64 & rs6000) [3/3] References: <4845522C.3010006@ispras.ru> <484552F7.9040801@ispras.ru> In-Reply-To: <484552F7.9040801@ispras.ru> Content-Type: multipart/mixed; boundary="------------090903000006070900020807" X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2008-08/txt/msg01674.txt.bz2 This is a multi-part message in MIME format. --------------090903000006070900020807 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Content-length: 6719 Hello, This is the updated patch which I resend with the other parts. I think the only change is that the flag_selective_scheduling option is turned on in ia64_optimization_options, not in ia64_override_options. This is actually the last part of the selective scheduler patch that did not get reviewed yet. Maybe a global write maintainer and a rs6000 maintainer could have a look? Thanks, Andrey 2008-08-22 Andrey Belevantsev Dmitry Melnik Dmitry Zhurikhin Alexander Monakov Maxim Kuvyrkov * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks. (ia64_gen_spec_insn): Removed. (get_spec_check_gen_function, insn_can_be_in_speculative_p, ia64_gen_spec_check): New static functions. (ia64_alloc_sched_context, ia64_init_sched_context, ia64_set_sched_context, ia64_clear_sched_context, ia64_free_sched_context, ia64_get_insn_spec_ds, ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions. (ia64_needs_block_p): Change prototype. (ia64_gen_check): Rename to ia64_gen_spec_check. (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter into declaration, add special memory dependencies handling. (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT, TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT, TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P): Define new target hooks. (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK. (ia64_optimization_options): Turn on selective scheduling with -O3, disable -fauto-inc-dec. (ia64_override_options): Initialize align_loops and align_functions to 32 and 64, respectively. Set global selective scheduling flags according to target-dependent flags. (rtx_needs_barrier): Support UNSPEC_LDS_A. (group_barrier_needed): Use new mstop-bit-before-check flag. Add heuristic. (dfa_state_size): Make global. (spec_check_no, max_uid): Remove. (mem_ops_in_group, current_cycle): New variables. (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload. Initialize new variables. (is_load_p, record_memory_reference): New functions. (ia64_dfa_sched_reorder): Lower priority of loads when limit is reached. (ia64_variable_issue): Change use of current_sched_info to sched_deps_info. Update comment. Note if a load or a store is issued. (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle advance if maximal number of loads or stores was issued on current cycle. (scheduled_good_insn): New static helper function. (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when a group barrier is needed. Fix vertical spacing. Guard the code doing state transition with last_scheduled_insn check. Mark that a stop bit should be before current insn if there was a cycle advance. Update current_cycle and mem_ops_in_group. (ia64_h_i_d_extended): Change use of current_sched_info to sched_deps_info. Reallocate stops_p by larger chunks. (struct _ia64_sched_context): New structure. (ia64_sched_context_t): New typedef. (ia64_alloc_sched_context, ia64_init_sched_context, ia64_set_sched_context, ia64_clear_sched_context, ia64_free_sched_context): New static functions. (gen_func_t): New typedef. (get_spec_load_gen_function): New function. (SPEC_GEN_EXTEND_OFFSET): Declare. (ia64_set_sched_flags): Check common_sched_info instead of *flags. (get_mode_no_for_insn): Change the condition that prevents use of special hardware registers so it can now handle pseudos. (get_spec_unspec_code): New function. (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds, ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions. (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks during selective scheduling. (ia64_speculate_insn): Use ds_get_speculation_types when determining whether we need to change the pattern. (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare. (ia64_spec_check_src_p): Support new speculation/check codes. (struct bundle_state): New field. (issue_nops_and_insn): Initialize it. (insert_bundle_state): Minimize mid-bundle stop bits. (important_for_bundling_p): New function. (get_next_important_insn): Use important_for_bundling_p. (bundling): When shifting TImode from unimportant insns, ignore also group barriers. Assert that best state is found before the backward bundling pass. Print number of mid-bundle stop bits. Minimize mid-bundle stop bits. Check correct calculation of mid-bundle stop bits. (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting. (final_emit_insn_group_barriers): Emit stop bits before insns starting a new cycle. (sel2_run): New variable. (ia64_reorg): When flag_selective_scheduling is set, run the selective scheduling pass instead of schedule_ebbs. Adjust for flag_selective_scheduling2. (ia64_optimization_options): Declare new parameter. * config/ia64/ia64.md (speculable1, speculable2): New attributes. (UNSPEC_LDS_A): New UNSPEC. (movqi_internal, movhi_internal, movsi_internal, movdi_internal, movti_internal, movsf_internal, movdf_internal, movxf_internal): Make visible. Add speculable* attributes. (output_c_nc): New mode attribute. (mov_speculative_a, zero_extenddi2_speculative_a, mov_nc, zero_extenddi2_nc, advanced_load_check_nc_): New insns. (zero_extend*): Add speculable* attributes. * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option. (msched-stop-bits-after-every-cycle): Likewise. (mstop-bit-before-check): Likewise. (msched-max-memory-insns, msched-max-memory-insns-hard-limit): Likewise. (msched-spec-verbose, msched-prefer-non-data-spec-insns, msched-prefer-non-control-spec-insns, msched-count-spec-in-critical-path, msel-sched-renaming, msel-sched-substitution, msel-sched-data-spec, msel-sched-control-spec, msel-sched-dont-check-control-spec): Use Target Report Var instead of Common Report Var. * config/ia64/itanium2.md: Remove strange bypass. * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h. * config/rs6000/rs6000.c (rs6000_init_sched_context, rs6000_alloc_sched_context, rs6000_set_sched_context, rs6000_free_sched_context): New functions. (struct _rs6000_sched_context): New. (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective scheduling. (rs6000_sched_finish): Do not run for selective scheduling. --------------090903000006070900020807 Content-Type: application/gzip; name="sel-sched-target.diff.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="sel-sched-target.diff.gz" Content-length: 29012 H4sICInXrkgAA3NlbC1zY2hlZC10YXJnZXQuZGlmZgDsPGtz2ki2nz11f0Q7 UzMDDk4MGLDj8WwRI2fYYPAFPI87O6USqAHdgMSVhB1vNv99zzndLbVemCTO ZGbrulKOkbpPd5/3q7Gd2YwdTte+3WeHb9mz4Nal/xdz/G/cfjViob9x3zyf T6fPp547c+bPHat5TL+eTVnAl4fBdMHtw4lvudNFwbivDg4OtgLau/Qd1t7M WbXBqs0X9eMXtWNWOzo6+erw8HDXVSIgtRqrnryo1wCOAHKQ/GHW0nPn7M4J F+zVxcUZLMBZuOBs5iw5uxhc/9rtv6o/Y4z23WhVmjWG82gz+LHO4K/Drxj7 2nGny43N2ZO15Vur4NniSeKpPZlP3TD9NFwdwu6D0KfxT7U30UnFFPj3/ICN F07A4N8m4DabeT6beqvVxnWmVuh4Lpvw8I5zl7VHV+bgZnx9MzZ77ZdGj1mu DQDgJ/1maFzC4Q6eZ/AShAByyhw3ZIhSc+b4QWhO76dLbq42y9BZW0Fg2jPC S7VVq1RP6gIzTM2deN5y+2TLXHreG2vBLducbyzfNoM1n7ISocT0w7flsxhc tBWc5/I7AY+VLrs9gx1U8H2FwRz5l/rFDnQgt55jCygL0zFtk78NuWsDMkv4 Jne5lWdzM/RMfFDi7mbFVtZ04bic3uQDD3hoEvHM2dKaB6yE5wIIM88McxfB 95ulFXIYFLisROewA1Mcic6wrybhA5o0564pAafm0OER/+K3Pjumiss5jJ4s vekbc51Eev5acKDpG7kO/ZKw848jhiPkIkJqowJ/mjMSV8eFw2UAGwhNy7b9 iFIogdVWvVI9rSoZ/Csz3tPEyAMx1loCdSQnwd5CmFUwgYY7rhPmjcZdSlrl zIqZNTUpfzic3fI/ZMLM57xw/B8ib9GmUDoUP4ckNoIJ7UDx3rahxKqwRs7o mOWCN84aOSgtUp8m84VSC9C264aM0OIKX0xoC8xMTElvE643oTnbuFM0aSZf O0tvviEzU6vVKrXaScrMbJnr2uba93B+JK6005xjOUGw4aYP1Ij2up8ZZNn/ u0F94gWhjlEl+wW8SXyJoplSGTvMMOdLb2ItP2ziDGYGi7ypUmvW6keVWr2Z 0ppfBo9mTWIypUXtO/Mvgc8tfhMy/8oCReChQgpR0OUMVjs+qdQa9diVrDWa lRr4lkmSKCghX62XhFIJJt5zWu5CUBBvQV+t1p4fWm6o65ZcnRUNBHfSnGxc e+m48xyxJqyo93nGT43fwlErxwwX4PrH00OwDRX242A0Nn/udgyz2x9XinBK 2hQ++JtpyKww9J3JBpBBlptWIdTW6/VK/fhIKYmvYcd8BvHL8JUxBvDm6Krd 65md9rhtXuN7eAu2pWAAU3bVDFZgi03bCi1zjYfcT0EeXfxodMx25+83cJQL OA+OSMLODMkIQ2a/Ykp3NLoxzGF7bGQ3nB6RlsICkD+1h932y54hZhIL1o9r gLjTKJ75UogzazugDtRGVpN8MfR9GsOCD1s/Pc5nWLHcj2bX7JjGL2Oj3zE6 RadIjspzNoV05q0wiv667EGoX7REaliu87VlkWvj4qYHWAZuGfUL10iMynOV ilfoG0ZnZL7sDS5e5zFpzqAcp6qYS18ZfRP+uHhdxKHRgFTQVLzjy+4QWfrX C2Cmq5veuHvdHo3MzmXb7A0Gr9s/Gm2AetMeCrwUHenDoPyDcgEfESDlHePy pn8x7g765uC1eTkYmqPuywvQA9mdFgyU+1C+hveGDFHgTKagNzKrwW/zuj0c d9s98+WvY2MkVNdJrXJca+WrrscXoaf5KqwHHCX/vhj0xwAFR+YqsuzQwngP YBQs2O13x7utlx1ZFC8WrxaL/gOLZQYWRJnFSwEXt4e7LZYztDBKLV7wcmgY u62XHVkU4+Jqf4iuzT+SsMmjPgm82RkVHSg9Lj86LkZdNJ/UHjzYYal4aGGA vQV7/wlGhJD9oCWJR+XF9P9BNqVA47zuXpvD8S9AhCJVE41I517y+OdLW6q0 lygio1vu+47NTW+NUAMZNYtyQ+24WoFfTa3kUGsdw6OTY2XrmNILYlPhwufB wlva7JzNzeDOCacLVBrsb/HHW2sJcfwL1m3DxI5x2Qbimq9+avduDBm/AVC0 DCrvhu7sJgCIsdFIvjoT+gGmzVjJWjpzN0JTwL4/Z0dlestY+t05ax6fpWYC k6zzZonn56xew12+j2oiXdiPA0P+KQo3Pp96vs28GeMrJwyxTuJbK3yOom/D /3MnCLkf5Nc9kHukIFtAGO5TIMwgvpV+PMxH3SsIdHLaqDROj440Ap1C/Am/ ojhqb2oFnN30SZgvgZn+ezg2h8YFcG77+no4+AU+jF6kB/Y67ZxnMO5p5pmZ OzL78OLH1+2L3vCFKATRT+o1gE+jY+57m7VCBSEGU9aUZQQdKti0WT06qsCv RoyFZrV+Co8aEZvuMStYCYyrxZHi+wxBKvhlHKg/AGr7d4FpTaccNAhg3vVY aWi8Mn8agG7v9owKIzNYAV6JeFDBXuErYFAP9g8cO+EgrVyoznI0kLF32t/E T5eeP+XMYmoPYiI8UPbDueWMwMB5EgW50GPowN0lIMLPCuc7rmAg4nsYuQLJ B4YF/M4XxLgiUWu5BGcFUrYClk6DsoGL7zEBA/ztwSw/CddxBU1D3BYBDDAY XS4lt+vQEEc5eV+iazm1booo1TPt/Xuha8XPxOfWm0iL4H5nFpiALGNpSSu0 DEQmXFrkx5q1k3qlWTutqag4meZaWoF0gzZLyuzhPBh0KGqknM08pAPi6dby HWuy5ExoPUBLgJoC0Ic4B2tGcLlAzyGCkOvgMDOUm0OnAR+c4RC2yyprzwE3 0CeeiJcRfGIFAjuY1vN8y7+P5isJEUJUr9cq8EvGNQUYlBlBtvb5rTS6Yqlz 1r/p9SQ+60cIqtrI4nO6sHx2gPgPgPxqUj4ygQGse8aXfMXdUJw1gIec/Y8x HFA92vXcQ01OAAgZE41FkcHJQIGaBlu19lwbQUeTPFdKgrtZTQCBAFVA0cVP h6hIp+VMDzSWBpWhDnUoDzWSHJAcRYfLAYYp3I2DBvXoQfJrmgCN7mZNXIbY gp0i5Sco9dpK6Ry6UFdCVa3lksQKx9hr0KhtZQU6umXbgg0CRXowSPDrRNPO 9RYo7PpJVDfdgZ8lNQBrmMrTyUVaZ+17c6BmoE6l7WjNicIiBYjzAnEu8vtg 5X4EecVBU96DhZ1xn7ug8xkywwbYBMCQYgTvBra5CTfAc7AkmgVsgqDjKg2n 8zVANJGxHdckS/bb8e/STiQWVmukQLLSzPdWTCka/zsp1jjl1uF35dSS+EqC EiQ4E6oxXZsLAB0opjzMz7LTIPReRFQkDVApmWXP9SZTkHUjjTmS5vFRVWkA BngGPLr4X+RQ7SNe2pRTFTYJK11wWkshAZnD5khSIBDy8FAAwcEuv1MTABD6 bdpQ1uv2XzPALMVjQNeOcU2xGcAQufBArChJgYAEeveTIgKfc2txdFZROYVd vhF/wfqmeO5ImOhjvKPjU2kZs7KmE1qus1mZU7ArAc2hv862DhMBqxpHKgot Knon/QHEna+7/Q4r4VbKbP+c4XM8smi+KQuVpkiAG5O6hWmAlccdWDOeWl2Y abHDaMPbxitMyDm4VW3eOeuO2/3uzZV50cMoD+jxr3+xrQMuI5sPI/U958Pa PuKyLKFJhCi1d1xrANM2T+Jo5xGYVjBnPuMmeRa9hPs1J14d/3pt5PKvAFfE wxXW+Rmfa1DvwEVyc3VlDm/L+iiLuRipgruqFrG4KJ7CL8HrTxUTY+TieuAZ KAjAL6XEm3IMfDvzf5yM/CHcLaMANGngi4bYa8iVZYmI4IBtCTg26oV8iWqs C6EFOvlreIakw1nKx41m8ajBDsw0jgaThLE/K9HvhQXeDbsyrvCQENLDh9Gv Vy8HPYjwLsuxA65kT5AgVg3j4Y0R+dXffvvJAlpOANsmgC+HD4ooJkCisCCW Ui3ut+9w2lW3T4f52Wi/VsPR5YoQtvQsm3zGpfMGcC+CJseCGA48J7Zw5hjU kDTiG7KHFMHoAYxc/7o9bF+ZlLhgJfFB5IWABoRN2glKZlkELHwJS8i9/pC7 1TgaLNg0yG1658nQSgs9RZ52baIXAqQKzH9y3xMWCyjyMPH2UK8FwWZFmQ1Y /c4BNpuAwvKA76ak6tzZ0pmG5HvPYJch6LpD4aSgv/UMocCmIKZF9cDngFt8 XmG9ajwZ2NtahveophabOXga1Zb0qcoVFnigsCQYl98CAEtsyQnFfkBxwG6Q eFYEUqFkT+cU8YM00N4I0/c0jiQzEpJjPBNcoCD8Rexavt+W6WmxN6s1a4/H w+7LG/AmbvrCizs+Ac/9+DRqtf3amWHO0ehTNZpyxd3+K2EppdU4EzZS4Mbn yMrAg6v1kofcVvtD/iEVgcGS8YtI1INek96s2t/MO/yBAk1M4lJrzx6tgUTK G0u9KKHlLLWhiQVktkGhfD6dmoBK7gMe9mUifDi4uTav1VA8zdcYUcxoUk4m QIZ7mBc+i3OZRKdENgvMRjmZSfyZf+ejjp87rkvhru5AYBIbfVWRpaE9QvAj 40X0VRoYojX0hvAPI81+wJcSeWvYGqqIR6eW0lG7kkwf/+eim9QUiXBLxJX4 GDQuxUDp+K/CjiqU2fFm2Zflx2KHB0Q81UkWS7oU8VPko6N6HKjl/1C6gICC Up54oH91dXEzMjqVB2ZjZgN8JPs+M5M8R8mbCdpmg/kU0kZJFFHqwLtjooeO 24CgS4jhn/sc6aOC3kT2SwhTE5HQqseO/58HCXkJjXPKQD8uIgqyPOgSCU5p HEF01KhGnPJQz2LGpij87O3t7YJKEU8gOrDcLZusVf5M6pd05u1IPE4k0ZJC Rn6VNfE25PFNOGIMG7Dof5D+gNSdyGhjbVW4Js8kn7QABc1qQ/HJH4eC3Thi H466L0NUGXGiY4oKXxSmMWQg77LEHcrnQxyygv3CkbWEZ4VNAD3oaVlCK2fS peCpXbZ7I0NUBe6cgKvsidbtifFlYJJNWesJon15pofjuB2Ctn0hMcLjEbst bY0+ep2HHKnLXqcsrRFYRWoqx00KNhPYo8VxJhlaszdod8z+IEWBro71dLax Qk8wNQxemONiIGcOrkfY2Ui2jElOouytPFdovSHLMJ16G1d44fVDYYuEgx5B Z2twU9ceGRIcRhFk8IJ1wStfCmhdgU5WA05Rs64sdwNr4oyRNwvvUFY64IUv vfVKZUUH6xBrRcQMFQGq+az1rP6sWk7xAKmOfVkiNQUCzHiLn5kjRPlZj0TL chVZicwQ/UXx2/gly2Z5k17BN+z496dPY3dG1qgKQYPbvmXh0XjLwqXkyk9Z vbx9eVUfE5/fP5Jq3OKAbNWK0qxU0azUqtlaEaaoWHwXSkD0OTAT1sljWJWs JpV3WsjSIpOCvqVyxdoV1lemr6h5BsxgkY7GQXJBig7jdC6+cUEjrwKZO2xW wYVo1iIX4ksc44N2nUu1HTYoqXaKllBvRWg20ZNs1VJOlHB2np5jLRmDijP5 5r2oyGR96ug0cadGOjBBtZyVwoiYKALsB6ko0BWQqod4OJt6IbfMu+W2cui1 N4GLZTEusH2mZ2uusLRme3cu2dPgudCwFSyMgpW+RZmhHhCsHxImk3mbuwXe +CXltAbk/aDwJHZC6Rh9CB4nO0KcYo/QLHUp7PaAZpypN6LxQTPEUcl9L6Eh 5GfAFfUKlNRymPgVvCa3cig+l9lBFNtgmagcgRD8ipqagk4FGLeNmok+v48w IVmZHZ6LITGWI9ZJPI8aAGSSoxp5eLkcrZxc0WWf65gJjm5i+bsZX+XYE+iJ EJuvIiIOmlqubOSn/otiTw7pkRcJi6uE37LOIGon7A76KugljgMH30tUGTwe kJsm2oUZ9Q4Da3FXdCPBmDiqxrJDqpDd4aCU6TK6E+rdMu8SXTOdQd+gLSm3 51v20niF2cz2uE1NNFmHFOlMSqHVAD3RitMUnxOrApuU+hQonXOX+5a8A0Ev UHOkMh+fF8Oe+10oUs04s4L7vEO9gY8XFvbkeI+P+U8UhEYdBKGhV/BbrSZQ 8SSm4gNJLvGjujx+ozbcm25HHuN3UA2JzoPklFRDgqaPCz1JrYAjdEFaO3wi RpqIkVYtdRVUM+w7N6HqXm9ebEdCgVxKOEvks6IzlUr7aYuINGGUQ94nzzi/ kU5qfsyN4hIfdWc93k/GdZwuPC9QziKjZgbRIolq/P82fMPjCr7ruVieUJGp ZLOTk0rzBJyKzL3Ez4Pnz43m6OeTkJ0CVNrX6z3oBpFfYy5w2hJCs1CfwOR2 0/Y/Z8wOcQ37vsCpenyGyJXYHfAnJRY5qXmqXXltnlRBh50cV7MOuuoKXGPD JsGOsuVP40xKwKpC8WMsb2FkPdssxcnurCBq27Gjqi0eFRPPoqtVKDHV1IiB NMR342xLD36IEtVzz7PjK7UEDR23d5FnTPApdT/15qbMKNjieRmdxqNU+aoa KVTK6jOttZJg7Yu0ONlJaiwhAXnZHnUvousHJbWPmCn3pa7XVD0N+j0N/5xd D42fZFqfhmhl25+xxLhZgpl1QkBzvH7H6Bljo8NEWXLhQFyPSZVpuLGWy3sG EStWwOOlEPV8MgFTizn12J7rPjiiT0m/QNdOeMzBpF51lN7pg/G07EXKMv8d 5nJccDmENROmCdDhuWwOsYQre8UukBbERnJ1bX6wICSi2xJ4vgSUEjyEJ5pR 3soAEnnQD7eUFHK/jySOCzFklcJ3egreQtz9KTOdsE8shMJSovWTEohRp8Yu ylk5erkB4cMKWdN1pZyKkFDuqGHxQsXFoGPkDhNpP7x7LG8E7UVQ43nX4EAY w34+AIKAX43U7V+Di6FDgNDcdL01eK0ufu3HA2CIL6ODab7jLt4ZIlLlnbE/ AAhJLuVs7QO5sLBNpH3y/DmOHoF8K8aacNWl/o39TfAP90mFpTw86cXTrgVz ncvAnv2NPYGgUvCQZd9a4L89YS/YkyflYi+wmtx1Dlja+TuBStmiDCgMHMpY U7gl2pQryfZv+Q0VYBZaYBtaWuPXI3Is6gJhN4gakQ3AEo1g0Bn1S2BTVV6h UpnqGPuwMZVqTRXMPlIyUs4AcmIex0W51VwhjKGgDD20qPBCSRZ1f0ZdoAhM axbCHGwBuRcqR86QC2hMsC+ZIGdASsITA3LNbK6g/b/uiMvgf2L1oe0uR4Mo 852bb4xf7+IFq7j0symlT7O/rVoN7K+WyXof7TRqScvr9djLKDwsHsalBJz3 cWxKcvdxLIpzBfJE7VrDm9ZjQm1e+4htWgqIOF3fJ3GcvrFSSV22kf1FH0ip HackQ4vd5qEfLkYq+on/t9KQmD+fjIqEqdcqNg03LvWHXg8HF8ZoNBiashIV MQ+MzCG/JNZ+Ui1FM4pILqd9jyQWNvikUWmeHkU2+NO5NsG4eSym2b13CRv4 KZye/Ploptd/HuZ/TQb0n3eZ/Xy0ZCR/PlRIPnR2jrx8CIhIdPSf99rnx5Eo rQv0zydUn2hDmpi3b+n1Pbxq3NSvGuNm4vtfuWneOjtkVPLTdFiyfHO0vXyz +4ZbsLvW6VHO1/Wp5GHuV2FSdlBdp/mQusyhlLBDSRaqrcJO494j9Y1s+KlU xlKavBQomSrVu1QS3+LJ3vp8St/Mkmp5qujgKwBmD7uI1OeoFpe8jYhBiFow 3pkGSL1+H10IQm6WmXuZDSorVyfWJ+q0kuOX3J2Hi4IzK8bNFAbgzOI+aPLQ 4m0lC7/CUh+rWtAomfQYfJ/TRjqFvBsbPPrxD0AAnrPaH4aCXBHKP68QGszU nBwd61LeOK20qo2TZBU/fc7MvvTiC4r4f0X3HunOuiiK4T1KmwdT35lwcXeJ bnfSHdbJPT2YWNM3XFxKn2/wVouWvBM+OsXS+r0nvU2WriLgetT8w0EsqF1F XCKN42frFsJVgiYyaFS8txl+ZYNPNTqEH13ElKqK7tETOFomTt3SFzWYWtdL /J08IlNbdGlaRB2FV8zF1OhrIO58J1S3rfF7CoLN6rf+zZU5NF6Nfn9wNIJM D0dkiZS6VraMX2WLi/G7zMVTtvUK7Hv8hb0o2KNejDF2kH1mhvEd2jaKB5wo SHZHy5GpZLr40l/4/MB3G0dkkhbp7UpJodSoxfsVTQ/v/93el/e3bSQL/i3/ 9kNAms1atECFp0hKsfNkHbEmsqSIcuJZj394EAlKeOYVgLTlN+P97FtHd6MB NA4dPpIXJpYooI/q6qrq6urqKgVfFByEydvp70ng+Jwd40RNxZ0YIDOMJ3Xi nNlEhnQ+wlSJdYXPlKyecLSMjVKOMTsgMzzlmMwMgTPXjhEMGAfk0oJkeFWx 4IkyfYcD4fMfDwWgUJhSJOXBhQYGS1a5/47puqbmK9FeHV8XufZr+3rVpOCe mHu+eFapZFdhE12ijrT06TCleCpugaBRZVxT18tk3DZIgnbrWweRH426HxWf A7lJMKG/1HaheIIyBV6yfzVX6kv+jMUq8oxF3+4ycRkCMncisyRn1swapGly OOlZTj8pN+mRuOp7i1CXNWmRyksenhZ5IsYILc2wWINoy5FEmUHe4ekDiR7d 7g11pK6m3kvkpcnVTNZGIjYTbwZZ78T6jehVp+IM4tUrCVKNkXAW4ZoI1kjI XNxIrGYq3jE6Z6aINw6+gSSNpJtPqBGB7mFYRU1T9KdqWS21/EtyzEkiECNI vmiynk19lYz1KAIZr9mEd4MyO3NBDEid8B0T5fMosI4GmlS+UNtcf0Ih8zEw Go4rHq5b93kANUtGT4MhueIKrnSrk3dJMJbKDFT1l6f7B87JKYsaUnf0eyMI QGhd9BMIiACBZ7h9ou0rmWHkK7bvUIaERWgLf92hh7vbmIoda42+jofOGzRD yKUNn01m7y99O/7gd9+h+ElTd5x4c535Jsx8M8yuM8qsk/nmJvPNwtwPXfvm 7d7v/tBvZLy7znkXRu8+RbpeFopdM44dcT4zTCM748115psw880wu84os07m m5vMNwtzP0lkFxW6LlMoNBT6tJM/CWHGJOjXulLzkP3yOu9lmPdymFtzlFcz 7+VN3stFZp+p+Skud12yXGguVzhRWeyitZTDOiVKXZcqFZYqNSzX1qhUW6VK 3ZQqtSiGK2/qy7HpLSqkiOG27JspRWNtFtBDASEUUEDB1BfMecFkF8xywfSW n9fyE1p+JpMroTZ9T3j+dqxHWjCRRZjw1E9usBOFMLb3+ekx3cnh9siULMRF OphJsoyrb++04yxzF2lQovxV0XFH/+BYC27t7EN9jioRg5bDlhgSRS3Cink4 xaMJ88bzVHPFTFaMou7IAqApL6eB5w6uKbygFslB2Pq45huhTrKpUnkx72FC DXdKe2TQfa+98dyauPM5avOPU6nCHuPGWNmFxV1Wwh3qxel4zIb36KRcs+GH Ftu2U99q2Z16p60b5FU1B52IAQNdevFJ+Cxj0zRKOc0wmNPRCC1GACPhg2Jo itQD1txdoBoZCy1EXWBYcC7jnB4e9g+wq0TfVe0BRq8WxSmcNx7/aKxjaRsL fzr0bmRcVKxsCE9mlcnQRluBjNPOvDxtfPzmC7S3EO0dLQjGchr6VxhDkw7l uPpT6/9knxBWlF8gUuoTxUbEQuc/naijI2CYxNuD588rVnTGZEnOpHAR4TsV v1J3Z4g5zV0G0cadvLFNXoAzvrftWc+EV03a+c5NtJM6Dtc9mgi0fz/V5Jzw auGfJiBhm58PZyXy0DPAlqxuBg8rR7A5CraYR0kMl3o3uPEOZmPqI3u0QgTu 8LtowHpLAG2qsTRsekufHllxnzIsqgMh6AYqv+pTtLG+c3yEgaESh9OCFFei VmgdoKxJUEphOWrv5OA35/nzvhwQu6xFi4IgQ/y1k3opmUNEUew0ajW702g1 IoH1hZnJ/FauZyaXxzxGS1wXFLhDV88H4cEsYi+gdI2D04GcRFPquWqrBANH xGweeMbYy7G2WeYU8/UdGdsU5Cqb2bMQmvI9MoBoKpOchVhvt5ctBWO5o7hR pxIZzL7xxSRS9HlwsXRP5QCD/nR7KkCFWtx4FJSBjgaRnJI53VAFvVKjbxmE QMxOCt5/0wWpw4Nz5+SUCZzaFmIp0bWYzbhQt3LA0ClEQrJaChK9q7iYiHnv YyPCK1yN8V8RZNEtbek6/uypVWfRoAFAV3CfilAY+MdO1IT09DWVXwy9INiR /X7iL1QhjW5RpyZpi5euFujaja2a5uL2lafaONNmxN5uzlfuNOFqEovXnBke EZEXWkrMGvsu3HBqE0ubuJVsetrImm6dpG5DHfeUIL02bOF6XT3Gngq+w6Gi cB2hEEsLN7jyFpNNangzkbT5ejZ7JyNAUyhA4apE1ykH7hSdmy76eigvUfpo ZD2ezh5T7A7af1Xr2puPXoiv1LmOnvtA7A3l0RtK5LPdC/3modaSimwvKs00 8NwxXz+cB7P3/pCOgvTzIVs5hGYHqjaksBb3ptThEMXLQe80AIHiSgmVAJ/D I+zlio7O+fwc/hLXCqNDJZusAtq9M/KbYeMQxipAf0n6Eb95RcaW/8druJIR i1Dzv2QFBf8CSPAmbMxtNxadM3IJxnHQraHTE0wVGK2V3IZ6rBVXLSnvO+X5 5lq4id/cjK6PGXpbRWa8kP0oglHNAtIsKgILPqz1ok/RIbYtnAaYnsbfj+Yq DVKq61UMtnuGntdXFbqovv7TObqonZziU/rCL+nt4Zn5nbrHlAZWgKQun8Os x4DAv3kw/fO9NP5oOGj9Ae6yMapa6F+OP9qMS81qmINT6IFmULO4RHsQLbYX gPH64PUZVbBFOD+x5gnagxIYKXxHUNKqECSrVsz5Xys9cuFxcjizIJFdCFXZ IuA5bZOkibgj7AD4JgJWfcHHOKajkwsxpnolfpmISqw+1bJQIc+knvbNT3dp LUnPuGydm3+abH7VZBbVtP9UrX6qFhl1oyrpGgyaFCPxTaWY6V8P9rTJjs+3 LlgwLiAXqyhP30/ajPZnS0wgpbN4ksSJz/R2MjlbUIg7HGJ2FfbKdRXzxpjG YSlgoFidrUVBU5erGrnwdXkxBoyWA9A+DtmrIPQxxAu0Jx9Q/hcvpMgvsMBo bCXbJC8Fd/zB/RgiRvaPsJ4GPct5GUowZl9Eyn+pKF9gXA1L1dTNoEcnv+4e H6nOiYgkDz6SsVZW13PMpD88lTDFb6jK7n54ajayogE2T/YBFIE7kNkuMULk UC02yavDNJ1PRQAECuYu7pe8qb0V8dYy3tffRhJTLr0StyqHJC/YvFjjOp1Y a4GxgQck1iraUqPM9HMtAwcZuFc1QXQrAzdXeSgDtx2BEKX4kR3S1W4CR3eF iZOjAOUE3d7ifaesChvZdFAEZ4NZ8JNIHxOdPiAKjvedl7tnj6wsjI6Hm24+ EndRzllPxFDsjEbC/Eb6qHMVN1IASh9hadyymUMZ2VLNXDxhGFQYkFyJ5mSy JG9naG1w/W4zCxZO6UlXoSRE2kSsimRYIYoyBI4TnMmsXlfo49tSFVWA1fjs 8S6J6TfGFVqJnxmQ3YjMo2Yl6dA82pl1+4WV+7vJocGeAF+cUa4aUF1szGDC OjxpY+oYSMQGSOdlizYaDJhpbzKSiXLiTmfv+XAINhq2PDKiB9yQ8FajDqie LjDWQdoLBlKwV6J9jhoTKVi2RcmAbjmyRLBc2KDIbU5CaBp2ObHdCm1PSELa 8a1KFPlK7X6EeI72PGTGnM6iB+G1P1rElBYtStL6E3RjDIXXAlR981Z3HyT/ BSYfkxdY7M3vmW+uM9+EmW+G2XVGmXUy39xkvlmY+8nxAjMWSnqBGQslvcCU Dpnh3JVEb/bLpHNXEsnZL5POXUlU59TMe5l07kriPONlvnNXDuaLyxmcu/Lx n0PnJUplumzlTE0OL5RpK8vNKmfWcvilRKlMl61yE1qOp25RIc9l66+5/p8y 1zGNxZLrIQZ9lmaUH9U+bCNr07Ati8SMeCk3MIJMM57wtpeDwaKaQLsrDHgE u1bOceVhxDcy8nLiZ9JbaZO4e7x7AXrgAgrLPF2uuB05tGbT8UesdgJlLn2+ EcuKL+Jkk435/ZnFr7wpZ4We0dabNF0MtEcKCh+7xewqJq8yDL0iNq68hZV4 3Hiqq4fxs41YIMvxcBCdRQkdJEcHFXFRlIUsHv/F1HtR5ysrxd0neue+IwNc JnoME887EGGzJ30fb+t4fJ2CtkoqId2lG2JGDQ7SNx9z2GF9uxEbkTxtkQg1 zkRm5BzdJJDE0E7e1PL0ZCBGMqXBH0+zZHmcUHPohT7exmb9n/RoGCyGUxwO rcf1x7biDop5KPND0wGFH8qBcfJojNQZ2mzB1W9J8UZhCftyvKlPyXJimaQj 7JIiLqMpmEJcKHQIuhEhDyJTGKnmCQNYpF1HBhOlU4sW36Itcv7RIcXbaJep iJwAYipzS9ffViKvmqzzh9KHD3GooU9HFbHWfz092kd5aEcQMZwr1np0XnGh zg4qal8SQSjwpPYrwvRTjW/jL2Fog+uPIve8zKZNu+N/JffHL19dkCtCtIlt R5vYT1G67nhITlvlziEHV9WjktTaXk5tlWTyG4NfLG2fnHRsYrKjCypTtKEF BzGToaTCqlVPW/RqaDdUTaAJXX7/oQA3Kfvb+rpmoynRal8ulSeaYV2zGWQ3 oRVSTYi0OtKm8JM8plyfYWgGeWpJM7VOIzlwziqVxBQpI0G0i18/3n1+cEy2 RwRQVbWjk9CM6eYmTuWVfK2Ca4U+nuWW2eMzXMls0u6lNxYbebYwsfCINvKz ed3m3TzjTfBH7l6dSpbYrA/GQVqnTT+8Nj0MTQ+HxpIjU0nTwxvTw0WqzZQu mf3+uuB9GL2PbQI0+43gQ7xFmPf+94L31wXvw4L3w6L6o4L6Be9vCt4v7glf mfeGfdhfJBonUcuEn9jD300PJX7Y7wnvGLRbsaA/CQcVLZfZFBNXB7N54KPE oyvAYp3wF3xGF096Xq0no5cknDsoahJvoBwQ0wm7Z1z6af4bWAMepRw4jF4b JY7EYoeRqF/+9uJo74Wze4xaEqyPvx7wxooi0woXUBgPuVjoRwMYwd+dLjyP 9U4uaH2gbd5ihkpn/Pwdu5d4UWqjpsJNHRXqDdaqRvZ5Hx/JGlVFkReRzp6N 2mFi+Hc6i5UI0C3pBWexOFSVYU8gBbYGdS3FnnAjfX58UHf+cdCXKijAeRbM BpghO6G84/YpllMltksyOiaL3Q+0uT/jwOnS1QgJC48UrzgRN+wrNscDCf9K 2onlkTrBRZ1n99zZ2/uVnFZevUS1R/NaQc1H/xPeQnHQeLh0RTWVnOgV85F+ VlnlJojsk3lyL0tnn9+vpMhulTM5SedAyZDokutNDDv0rNluGGe7IWfbtDfV 3YYAj3EviXLQPEp6j7DU2zACq7w6JY1FECvPTfJ1/vUAwRYeiEACUfpIzQsy 3YjublnQTkEaSkKauvYlWSTOHugDhHYe/cJXdCWwNJ5VnJoEqgsDDGXleeQB ijyPasTmNI8Jq5ReNZnQc+/Fz86upXYiRUX7ztEtyh4SiWqoxtNgKR80zChX wwz6W1WrLovqck4qov1bearkOoxI1zGtE5p8WHmyulWdRgePqybJezsXmNL+ Lyk+Vr0qu+3TDMNthPVYGlldkYipQK+F/rOc0l2VuQssMhsZ3OlsXSMalNCI VtMaEW35uSeHXMw048FNpBTFLTY3lchJzuznpU9M5L2nsBbz2ruR8SXFS5lT dUB3LiWao2mmBKaRu912xot+5gsnuw69kRMtXQ5VYZnZ1MhU0hT56VEsPa/y uQ7f+XMyYs3Zw9qcypg8kKOS8dlQJ+3SYck0fzw5DJdZtc4nJEbGXemJVF4j NaW17JirtCKAL+S2/KAuyUn9LLsNkyewESKjQy+3muHGW0wa2GZO9uhMsnCt YcjWbApZqjmZULylpKXKehNLBS6yf2uW8bcJN3xFR+h78kgZr3RqwgjUaSqS okUs5Enii+cTicuVuFTJlCkCUP36YiTFzPImR9rEWtNunJhr5oFh/TuzFU1K xSrXIvWzNAmUpADag3J/8pyQNEhv+JlpQ/Ty7ZBHel5WC8gliyqy6kX0dC9y Wb0lufzlbPcQzna8o8p3tjMskjGPOi0wjDzNU9wvHwiKV30mwtxpztHRipg+ JCx7Nsh08g2fDGacCD4SB4ZlDwZTZ29s35s6l3hZLOb5MY9m2ZB+WDtQJQoA 8ZWddVgAI67ZrP51oU+/0MeNZCwZD3OrL2b0lQ8CL+Q/mO0Ml/Q0I0tiB6sA EmaWKF16ltZIN42Ez0f6Ojve/MgnRXklIk8xVaYAs6E8rYfLGqvG3b9pc56h 1ykDE0yFlFrylIbVi3UBOuy6xG37pI1DWO/4vbQaZl4UiQxbsYsiMhFStF+P eZZw47ENAWFR0IIIdVA+rml0ZKwvJUDgtHjRurahrWsiNQEwjH76G2X4w/Pa kBc2arR/9PLs+EAcvp9FtSlOLQWLza+PcePPj05+Ui2UianKFB1fbYwe5Wh0 FDKQDlF4TJIjtDjyCKp8XCIU6wBPnESUOyaRO59aGe9jlzhTp/vYnUatjRFq avp97OwzOuP764L3oX6G9yg6xpNuh7z0i/vx4yBxmJxV6vdSpa5LlQpLlRqW a2tUqq1SpW5KlVo8IPS3KfVIHT4dzsbj2QfFrHxxR4qQoTVcEiOTCwewmu6u 9xcd/GnooGab/8MSVmFTl75dotTvpUrhZNNZfrsNwq3d2dLP8j+ncEPv6bj3 kUnyTwdC8EcIZsE/HaS9OVLPrg3PQsOzoancyFDO8OzG8GyRbC+FxMzX1/mv w9jrAgwOrt85rnHx/FKUdc/1ttWB9bbdTK63eSz2kKVizGh25Mp7/3vB+4j1 uk27s1VrJVnvy42TrjIUEZKBF02tQq3i1QgKFS9GUKh4LYJCxUsRFCqW0thS 4eKBLZUpVLwMIXYfDPBbFSqc6zAlMD4P9d9TPGDKuWatkxQPZpfDvPfDEu9X c99T9U/6gXiRuxgnl4URpTfWscsUwpc3K2CynjEeP7N5ndIkQcP6KbWKWJXd 06rqiqwPpfsqMhLqRmf+RPYGzVEZP2gAEwcJ5GaialiHPib3SxxUMJVMOXrC 5UcrhK0lWpCvaLM7C/wrf+qOo0ZSRyHClnV+0D89/vVgnwIRWmM/pNN5zekb P7sA0wyadrW7/nTnfur/LrbXFLBBO/gQWQTZHhe15A7IicwPrzlSysRdMNSn 50c/kVFt5HvjYWh2RguHjr/AzcIMhDdmxcO/ozkZenO0PnpzLWSOdkcgbmoh t3BAk7CoqP4T5yg0Aeg+sbv3AnEk7Sz9fYra6AD+nOe7ez/bDIyN3Ytoj2zC wbNuaB+qOmfnp9Y6vo87pUVd35DdSEKlHMgK7zRgzbciQKWJvGWFuAtQ4TUd VY8tvCsrG2UuQTC9x65jMIrXlXR7U9B11aq/faS850rY7ZEdo1g/97XKk2Ky Va/ZnU6tnVRMvoaEtRMiVlu2niik/jHuUT4qfY3yUSIbedykluXkmAqtKW/h RfyWNsMJUotWXxUfn+xvwv4qjbOZRaeD/CuWt+pcbWBK9C511PvescxAM9PK xL+6Xlgf3OlCm6/QtarPeOKiu5gCTLqRCW+1UC+Wcc6MCy7ayONy8rPOm5Uz byZ0h/nG9ZxrmzFqFYcOlMGe1yYtfBPLyijRgu7ncPcrd0YnrQTyhY077jGX kimxw5dVE+epZVQftIkU6UZZyu9nNc3O2lXdZEDZGLtHmPrpz3L3LVo0M3YH 4vC1xNW3xCKirSGGI8JHtzhQKyRws/6f0tw1VsrQ2M1kex8VXXpaq3w1Ec/n HgdpkdloBKhNyGS64mCIjobIR2PHpBlp275yqs5DaTrmGL3RUMNgIM/+4Stn QO80Ww3Ye7ZrWnBvAYtyndD8YRfSH5ZfRmqdimYZhYHEoAF7x+ePVNj79Pt+ 5svj/T2oS7o3h1pPrDIyGibf3FhZUVKGHWNJ6eu0UOlr68GsH2hoDF0e8Cd7 eeMuwstufvX+nfGSJBGR2ftyOR3KdJ6CLDptIItuTcvD08FHnW490qFRtMAe cDkh7wXOARs6sI3dQVE9VcEAQZ+kpMn+bBmSoMOfg/ESA8sRlCsr09kctYpj 1CPRL9cfehgCAfaoDVFD7CCxTxbMsGl875NqTd2pvyj8oOyNi3ohx79tBkMr HM9gyZLXPkg6+kMcvUICgJIYAD5D/TeUG22ugq+4lgLPgFA86r9Z7JCWjt84 w7fmsehO+AocYs7KbUhYAmDHTABGf3KWX4Vf7qKiGuPM8aIxfsl7fjGckXaU 5/rirC4lTqZIYk4MovVMAmo3gPnaDRXye0Vc41lfN9WxnjBJrzyhnYgzXwSV 6jMjbcm28ANcobeSVSPyA+PUHRkASM+nGAxJWtMbe5boPVlWxGVWmrmoZpzb hYch2YnReo263ek11Wb1W0JdEe5KIG+lBOZUwdxhsyGjXI/GMeeWLiSVFK0Y BEmsxeSoDeUrldsTTYpRw3CJGsw8dEDPECpdJqNu1bfszlajHkn6bq3RtOFH L5L06AaXTygCw5pMyihpbViXHqiaAkJcLVJdJOcl0W5K/j/aSDRgwGyiDZPQ Jzj01TShfZFpi9Uv7d6iuJJFEpySeDuXbhD4XhBtye85Qw1YeLeaNX2GmjhD rZpuzxJXPZAcuX1uNkKLbQlXPkteEdpRVWUCc6QoR2WCt2NI1R4bc8UrZamI WKzvrCYrKape4fRtbOzExsm9L4ASQl84DidAx6+wKopU5TxhuHNhFQ+jrtwC TrJ1JKcRtxLY61gshQSRpXC9wHD5Qs3uYk6wbk3La9ht1Gt2t9FoG2MOkK/e Bbq7fbj2puowAbaXswBTMtKOlvCjQmFtxEwBG1FZ2tjJsrr3b+SyJsPcEIUL s7g+OYQv3k+4I894IRURFb8eevTTyen5QbKVaAsT3+Twvb3+7crvHZ8+f35w XqH0o59UjsWLmE6jtnc8SrrASLwRxyY9kmji+eA2+HCDXX6nQyG9rIvdo2MV tCCtV6s9v5j+Dkx/fUtqQ0g5qAs60SQlfX/x28L1x+xszdCAnrfDcOJ04G/A ARYSTzFh1OsLh0CN++0q8aUmFxamu88pVy6cyhLF5Awq5pbX/aDEju7wLjfh 7PHOHNToAAc1m5KDvgpWs9lMSdvbDCxJSbJBa/3w6PjAeoKJeVi4iIw/PKY5 0xlojaA6tvSlotlu2PCja17MB7NQBTsuscybixqW61rZNdnQHG2S2OqSfqnt efQiLHwxEscivgCpBaGSVpRuids28HBvq5lIgya5iglPxDSLEpFlMlhUPpPL 9HYMTBS1oDPcLWpovCfyaakez17Jq+6qjm1dUOwSzUgC22vPfbcjCK3TBkLr NhK5w/74+IkOvKNVSVMF44AW6IP3w/O9CBiUxjoqjYqAZfOjeQBVRlFv69SO dma79v33+Ou5Zj+wvhuiDd6/gi94mwnECH5BnRa+fI/f2W6D31hA0FdZuUKC 97vhP6drdtRzjNXZIQHFjl5iPUsasDigPe6PeCF8O0Nu6A1XsvrGAWW9S2xf 4koyxUaK3mU0YRSudq5QjeGAuGaxnJJh8Oz8dO+g3weaE1wicKB2r/uHu87g 2p/DztWs0MPedTb1Lh13uZhNAEdTsf3AdrZv187iwyzVToXdA7utNmi8rS21 Xn8VAoRlaJMXH2jgL2q8MzXqanqqRcNa/8em33tK3q0WSN4ovTpbhH6ArUS4 KDKrcFlKzFXCCLOysoJWrsJ2ySyV2AObrWFxKE0mzkjFjUriWZ1qekcaofve YAY7qPVLd/DugxsA2+G1rm0MbIy4JN7FLZbcVGueY8pAHh+d0ZQkq9cwX5z4 XlfX44TKH4EXa1IoM60uzFir143ZYL+JGVsvnrI0qIZyeZ8k7Lesjp/EmO7Q QoI6zcbVok8cDZkG189OwnQKrVkWo26kffGL0fc9RVkP1vB6rRFXIhMreGL9 lqu3R2v0w6uNRct0iUWaJ/8uK3X2On3vVfrBNMYS661EwIMsutzYA2qO7Trs LfE0MaY5fnaq03XFv2jwQfTE0lriH5lm7ydiGz00pNR0I16nAVv3TqcTqSPi UFGdUK3wwQF/RILwv/kjdKw/OMFoouzkfXTyE82IDEWJngG8JAXkESrDygg/ CsMM6SEzcQTpNct4tMYV+Dr9wlV+BCKjr21h3ET1SMQT2bBENVrQ0rZY9Hlw rj2XqVE7hRKISdlzUwVMpl1Z5l9aaTpZi9nP46cj6MjoT5feTqIOu31NvMnM /29vaDo2lFjyxt4AGDzerAFTeg/kDhyr8K8EuyFVKcOShlD5IcSqAgZ07KT3 eVbUIiI4+sOE5XSVWB+awS1VK8N4aGicjurLGBKNlfFT5uxK/4CCnJzaMt1Y Vvm518ZWzrZ558rKDJxuQdgdU3QT41ZtbiNfyTwcAPZidZBqCsqXpYT42O84 R+KTN1VJIi/H7GmbsAEMvLQWY3x8ECGcfFB1vpMPiid6t/8S+O7s1YWs4oYT XPJFbHVzvR/ix/T8AaFfrRroIiGwlByPPpFn7qeour4zovWEHRg3RKm/wej9 EZ/ugswKPAqQN/RuMCCw7i8Ris3UyJ/64XXslbPQXPctSzunozOo5IrN0oQ8 0bmx9NJNb3nFbqJ62my09QuckefOCC/vOd7EXxgIIGS1tRJ5N0TKAvfFUChF QUSkEsD509Gs+kwthBy+y1SEppROPhN+FHrrSGoEDTYjtGsJhlCnGRsI3nfD qtCByUksuvelyfdcYGWUM63q2fnBrzlVo0FoEdvwE3dnEcfDnV7D7nZrDd3B 4qvNSvzzIDOkRnKLiUp97jptOQ091CQmebJoxiSDCp5s4rl3s6Np0d1aDwii rjxumBikc4C0w/AVOtmuFBDSWTj0POh5NhtKbUYcYJP+jiiSSo52qi8azoLb cDJ9y6G2m3zErw0Vz/q6zU7M9z1qjzN40B3OdPt4zeDEIaf4JuYmAzVKxR9c KRgIhes342jFMiKWXmRhbuXeVLAFeGh2aolD+7ss1abj21xcqFKZw8ZP5tCZ CdSlN4I70RKmRdD7dUT4z8j1JAUwNHKxe466wsHu+fE/nP7F6Znz/OhC3Slg 8mnVgHzazcRZ/hdB24YslUlGXxGn0iEaVdLYdTXY5Tp4Q4BZy/Hwwhi7HiZ8 qKMkAgp7fN6fKBcf/R0n857M0+3aQAlb8WMr+KBEQIVSis34i9gOj4RHRZXR N3XiVTRsM96V+Fmh27CirIgCEd2CiQYlHPTKSTfNmBLZUoqkHMOijqdz6OWu RGnmNLp4J/vV21MTYWAM7dJYxK+70D/OAw/fYorOdtR7qm8e9CpZOwhRT9wU ZJnSAVHci9Sxz01N/+LDsFyiohImfNN7dhfOP2RCE1OmB6AGk2lZ5FigAtxP 3xSFb1hGiGsR7cc/uSwQu0qXTdlGTOfiVzljrqyYkPvQrGeZaaEkiIom0zAx 5a9mLnx19fLTt8vkxi30eOi4w2HghaFz+RFPSqX/+TyYDZcDL7AtXmvaqJu3 6xlbaIr8oq5qUmKJWF6WxCXI2F3MXbpEGXvUNzza1bZdIovFrwd7WiILmSZM TgNJtV6t1rZ7tXrGJvMLwO3saldF7zsk4xwG3iyAfS+m4ubbDN2t2pbd3ao3 oslCxpnNF/4EeIbNN6JZytftuOMxnxjpsRNidaQraKRTLcWtjbBBm97LK2eA uZ8iy0yjUkkhHFrz3rvAE0s02Vz86vT3XhzsN/QtNfVCepDshjmMprNea9q9 el27WPNZR6bI4IuMsOzsdkH53+puaXsmpz4ZXTri9vxgvnSWuHhwqoq1+iW9 3lyT2g78Ob7JLT2+kaWjpUShxru8DJWhDj8csmTgTjExYeBhtBKKYzObeirA jb+wrl3MsOjhXecgWM4XfG9jcc3He957f2xdjd2FHo3KaCrkzpkcOl0gh56+ D/oSqFBfkJCYbsjwjCHTBZpgeWmIS+poH564Hy89zs5kKgojEmtQsJxmlaBF Joqvkp4PLYYPBS0Zzix37F9NKcw/hgITsX5tvLftL0SQmSucpg/BTN5Tkk1w Bc9RTchOBA6+6uyXZZVex+52arHAnhqLzuYmDuVzWi0oBil2UpAYDZHAzmMv spYNR44L7P3xv5VBm8m1UWvZvUY9cS3wtuA8DEBGDAqhyAGx8I/ZlO4aLawx 7JjHmGmCENvrNTt2r9dqRCateq3Vatnwc0tba7OXjKeW4bHYnHMGVHFUUFBK Kr1sANTlOqg9TXWYgTwIettYmgMoYQ8w2kKenUQnszn8TFI6WU40OffnHpRC VtWKfVJwZRcH2Ogl+inACAfO0BukwcKI3kevXx5sA49NZu8Fk9Htww/e46Hl q4QedCiIDWODvPYB7+mnPK5FFzNHmEEpCv4dG5gOTGRhteQlPoLnGEONYYQE MT0BnldPyNUOW3XHGAEISShiasC4M3cDd+K8d8dLFLIT96ZKDVQ58HBV1Kli 8MFwzbaYE+5Lr0Cb8KMXo9ctoteOxo5p8EJ/shzDzsGbLcMq7AlG3gLjVQBc W4JD03XG9SqF4qzCBHtVvIELxZtiHBvpKtALIQCUvir6EFSH3ryKfkJQrVXh e2eWuDr54qz66jW6pYQ4ZH9ICUD9SxDUm4+G/mhkVQfzYHhiVW+szfD9lH5f X+Gvi92f+uiiMH33PSi13w9m05F/9T2ikX5sTobIIGIu2E8oqyDhNLepld9A vv99ObashlVvbzda242O1ajVuoT7sv2sXFwvuZWmVW9t17a2m21uJUENLO0b dk+X9OtC0wad+gJTOZ2vrDTrlfg7VONTn1YtVapvKFUXhzxaqXRjrUaqFMam SZZqJkqJIDSJUu10qTRgrU5lJV7s8Nw5P9g7OnN2z87OT19jGE0o1q2kSvV/ Ob9IF231GB1vRdyD9aEH67LnUH5G2FOH4ran3dNjun8F7Dup1gzYN81REvvm OWqlS53spdoyzJFhJrcMpVKNwUyWme9uufnulZ3vdq1ovk3cV++27XpPc4qr d7vwQJ1wyVZQXllrhmTTa9badGZ/BNkqU3+GC0pRAY/XKglYRCsq1XRRZXJl iFfWkrnfq3ajGPD/Bf92dtBj0Rp64SDwxUo1G9EyhsYWzMw8A+0NtOVhdN1d 0//d6ZBbUVEFjNPQaLbseOaY8bD+3Wnd+g690b+rf3dW58fhov7dL7XocY0f g2ohn60RvbxZD0Wea2st5rkFw/YHk7lNP2ApmM4+TNXvxaW/sH1Y3Ozx0A75 61olSVG0Rad+qRdrnSIUO8KUtf38yKpZa6gPhKjwicfQ7xqHjW206jBWLQzK tzRWwWxRgzF6s6w1JJi8Ug0qhYHurOiHlfiNP6AhG34jsT0ggo3E1WnajU4v Ii5pdHxTxxDGszkZdT9V2M4igSBKXnvCqTNAN/MCUA3XsqH6haACRlmgUzVr dhKwp4GN/1kT2wrsJyP4f42OG9JN1K01VJOjuuKzFpzaf7cnNvyC+vQTmPQt gbMmUpljtXe4lRCjq7219aFW1pj8YMlrdLWL+7fAxp8KGUZSgeWg0atrcujK W4w2Q/TxZ5YTrBl/GtTvwprIexoDjoJRYC9m8GM08cNBmi28mzneAVqjzC05 yH9ByOf4oWOD/Om17GbMf+krjvGh5Y2SKpH8+SyINBJPrwuIbd1ZzlyXYq0X 92etF19CzjRrPbtZb99Vzvx5kGEilWa9BsjZ+ublTJjHHv18OdNs1O2mHu7t f7KcuSsijcTTaBJi7ypnwlKs1S9mrQR70Zehkcn6RUz2X7YfZzRoyQ5+vqvs aW7ZzVbjrrLnz40gI0m1QB61NHmkcV/i76DOOIE93ShwAweGt5jhb+vHH3+0 Plx/tPBEhV75fGcZ3/q3YGHm49n0yvHN7GyLjrnfXL4b5vHdfoEAawOfbWmR if9QSPk8OznexhmkHz4We7wCUXjXKTHSLU5R++6icFiK0/czOf2R9BnL4nhk +l/oz0v66bEMoJ8DoyTYT0sCpsYt0C47rbvKtD/ISI2T3O3YzZ4eYEpFuXPH izcfrn1oFL7h4NAk95bPHh6Ut+jxCJ5f4nP4wbzM3ObHeQ/+mmOpeZDmA0oD IBNUUZ5r683zIws2u6CHwiIAOOkfWvuH1utD6+KIamdXJd/og9cXByf71hvZ xFsWXq1aw25FZ7Z/KKR9BdElHqeK5/wyibkvMr0mHml1YLo72rWUVrdnt+ua uFiHLtfGw5G3OdgcjAPN2rjGhvP1iyMqMO/KEq+1IjzSjTi4hPfZcjFfLihH jvWGDgrXn1NLdWhnOohbNtf4iHj9l8ISL6hEI6dEn0q0ckrsH/H579p/iHPg 8bBrKK5ejvitqa/DVEujMFlYvcqFydDSMLMlE7iyJW1CjTDr84kFEtO5kSJc ms7x0Am8Kz42CUAW4Fw+fQJcyZP2lL69UN/66ts+faM9MuIL/oBFgd/of7ym P/DbBbV8I2jLBMkgDcpGBMqGAmVDgbKhQNnQQdnQQdnQQdlQoGzkgILpnFKg RJAoQBQcCgwdCh0IHQYFgoDAxODtZs1uN7VIz+2tjt3W82boohBTwiROqX7A Nw7IuWdrlVR588GWXiXJ/0qx+AGx9Eyv6bhrRIBGDYNkIugYPyA65wH6lATQ 4s0zx2DQ/yFGjM+IsFfWl1PsjFt6Y2oetQpvMgs+6k3Bk6idtzFXV9xDbdxq D0WlfxCSL3SfaQPOWDhxKPT9mWDP20xXsnyp6YrxN0+Xlimbpw2zZcdmTmTG LdbQA9N8oSAgRU/rCCvoUxZb1Qyzp7+/3UTCPMJEmpkHFsNWS2Oebttu93pf l3mKZyOHjwqnYeNrTYPD80As8ofllEiwgSaUww23FWeDhDxDZvFHzuLamzro LLktw/bKyVKTM1zOrZqOaEplJc/u0XmsVslYOlpA/W2N+rdqLXurrlF/6elI kb7uynCb5WI6eMA1IonUjXsg9WQvhdMNcWnlbktNsjp3ec8lB5Xt+7JS3tyV XTvymSNPRm0EJupHIfWwtN8G2t/Sab8BtN/8CrRvxF8uGxSiL0XnpdGXSeWp JeO+K4Nq2Ej9X5+spcZDNURKQ6Bqh+coRtzzQRTQEyPJaZg3ov1u4iy+1dDX VuGTV47ut7p2W4YGJrpvNe2tdiei+zXMuesKU4BtfTeurxXzA9RxFerNdG5C 6HSg8LkRx+fGV8ankRHMnwS8iZeU1hM6GiVYBlmE7Ncpojfgv5Dwk/g3EHQ6 ObiZlK2vTcv9UoTc3Wra3a27WPgpCRa5krGtf1HKAn6Rf6oH1Z6MJvaTG7J3 W78YDdsXZNhOHWIQ1wVPRv4ETedoLH8yOv3l7h4WvVbH7kXRNO6Imj8bZoxE 1MEQPdotYJHEFq9aLsjKQ3dTVLPijsT+6clBObN40rlyNB6mPC4ja/HOjnUI 0nGBDrJnM6T+l9B9SG94ZoHoe5164kbSF4f3Ie3wVuQCirZ2zR+0JF6M89oD DtDvyd3WE2JU6qD/MIfwRzadez0BukWTHn2ZmI/4D7Npf/ST/YsNP+B/2QbZ B+8mF7pAPd3enb0f/nRIMZFOr16zezEPrOTpPtrxzW7ZrbhbdrF7UvI8TJ6T RR5L+Sfmo7xN1mGuE0Ovt2XXazXtIOhrD/RBpYr53I6ffhacGmmpAQx3D4es YSmO238Yjtv/UmKoXqvXgfTqnTu7LPzp0GIknuaWra4kZ/Fn18yf3c8piGA1 /g2ziU9n1mw0gjY51inv9y28Uxp4sNGDtfyD9xi0kavZwlrMrGsXvrtWOAgQ v9yOG8yW5PRkzcfuRy1JOae9+DALhnjbGB+9dwOf+vngY1iY5Ryzif90Hm4K mmrg7ddmI1+cfUl0fQVx9q3NjJGs23XYnHQ0px3oDZ3hLq4BuschAu+5IXQJ 3UL3E2jUej/DjSt04Q5+X/qB933gjaEQgjNxpwt/AJ1lyNCbUsLidaGwMEuH 1/nSYQKi4c5SslWn+9yap87nw9QfFFFmAuvZva22UW4eKkkw8gxyQD08vIMY iLFh3514GKYArz4Sbm3rcsmJf88PcaO2adY+gpGa/R7Mvm6X+2LD+AyC68Fw Y5pwiSttytf+g3Hx3zeLenINSFypLEbPzWIIMj2tNKbM99f+0G/c+YTcDoRm Xq8j59f1m6CfZTwPOM9U8kvgxzz/7S7M/1bLOP+NJL4an23+w5LjG2WO0P5x pIig3QAi2KoZieDhBvXFieChkGSmhC2UBB1d+LvD4bwlUWNbQS13awui8GZT +ECO0Ppe9o4RCM/ErSmQdHuz6XsMtXfpLT5grKiRNGLNyYi1+Dj36NY8RjpB 1WxhYXQVXqGZCLbaQAQdzZT75cfzsBSSXAzug6L7BYiZzRclI7dASSKv/MZW DgPf2l1eWfW2Vd/abja2W83bxohRzcwDq9616s3tRnO71TUGibEm3J4/rQpn lirinBmhUbPrLaVkX7jBFXDauYdhQ61f3SAWTNqfOro3TMU6mvqLdQpu8gqD nU2ty/Fs8M4ShSztIIlVSQHIeDiAP/L7gjLJ9kMK9WShA4/etEVnVLEO5DDz O5JjibqqleqKFJCMMVYlCPi8KpIjwNO92WQC9TMGi4VlJoUIlKp1hgkULExP IAJWWe7lDDQgzRcJFCOKqQG7W2QU0TsFbAqq09m0imNgaCgkFuAjHxau6kBV R7lKcfwxHUlHI7x1aScw9B6JgNOUUZyPD/54DAwLaIOBTQlvKvLjbDr+KDaG AWh58A83o/gXFvdh82m5HGZrMqPwXiwJ0gPUafr2Y9QJOnuYqdn+ciMdwPZ6 IQdXHQQ+bM3ccXXuLq4Lx0l15dAcWdfBuvoo97BYbGxDbw4rsDcd+B7GWsNt osrAhiI38GfQ2EcK5KKhQQhr2Hf6IcZRpNHAV9hzetNwCSP/4OEdEhdEBY73 cuxO31kYLQwJ+70nTDQokzrq3veXkUmE4DKCibB5L+lEXZUTUVqXn0NalZMX +cD9OeRF6TH+weVF/ji/hrzYUGyxmM2rmKqiSnEuq5SqosqpKjaKOCQ7zUXE pxvW2dgdkAETiltQ3OJ8M1TaotIcWDIKP8UhsASEozmFKoTBhlXcqFCswkLY RnMM2u5gLYe2N1grQucGJrpcTjCuJcyq1GqrrNUCoIHHiZvRGSoU1LAAmfnO G5MxjwPNooI49gcLhn+O4xxilO8ZhaPVcM4R8WPDwkiUbPlldniqD+m/vMHi xLviaf47AAXtvjqaLrwrQBwOlU1w7o0j3Ph0niCk92cjhHcC6Ibup8vJJdTE HJ5sbOZAnbBvS0NpW1f+e6Sf8ewDvFdUBKMKl5eh9/sSqT/WDmwpvMmciA5L SZYS602IBiXaaFL7m9ZhwI0AKgGLo+WY7NgBEARGDsZYltYlLlESvRjRc98b ucvxwuKol7C61XOxWb12A1B5cfyFpIJ0wqFesZJDlXRK2fdDdwzIAMYPiGCm 1n9mdPsYx5zC6KZ1inLkg4+5wXhOYAD/GcIUPaa8pSDmLBSSAqm0nxYSCwlL VQk8RM6wIoeuNi1q+cgbrIoGq1aMGJd6AcVTTa1nMCIVn9bAowqG2C6nDBhm DSKCxLB8lgZmCHWrtBLfHi6sKz1K0yAyScymjxcWm8sXHi/5YdaaXwS0kMBV zuPBUOcBKqSuyPvBkOrAHc4CkrcyAYjIDxLXAGQv99Qc777HZ6tGo1wg2Khw 3k4/KrVyAUICN/tWBzbq2+3Wdp02+52Sm/1ESy/dj7DZt+r17Vp3u9HIDgpb r3Uadr0WuaxJOxunu8DIsmsNh0L24ZfJBL65Nn6ZLMf0O7zmcEfGihnlZZvw wB/PrvAXPIZf4QJ+jIf0Y2Bsdgvr4tnomoXf6KgU65GdM1W6Q2Um7sBQWp1w gl5C3IELJOlSo8FkrmKzh6ChjK0JIBT0MHREBV1n4Q03DbDVqI/B+8XoBnoZ 0Tjgp8u/BjaDQr/wgAThofvp4svE/icb2ZIffH8Z2Ap+usGegUGJPPzJd+b/ aU77kjU58jeCJW7MM8IJOrpg0nBuJvOP8PhmMVwztg54ILytJay3MUxJN0CA /WoKDE8zw6ICvvKAMaBkLk6zUZaPaiNO/ynOypgnWsnYrH9EnviLym9D5dT/ HYid6v0xKf7OC+KiSsF5C9cmLpezDHIBXgHRTo0xzLdrve127RbmbtEIGrv/ DvpuvU4R0TvbzY7Z2I2lq4PN2bb1v9fDYDD0g0rKfA7v2fzdxPhMcoX8G6pR eCaxcC+VRhVatDlEYrREeOMxxdgY09EC6tpVUWdzVv3gBpgXq/rbdFb1gmAW sOGHTfbbsE2+XF5tXgNkZ7vnuy/7zgsRJ4rAEELpq4ARzcPm9Z0oJwi3arWa +LU5yJ3XRFkzBSUKJQ9NWtuNVjkqym+o3d2ut8yUhGlX/AHlyuLKQivHdCtD TGfHWSltgr/b7tjdLS0vCD9Qs1rQWEO1hkVsStvL38UvctBPNwIiXh6YzGbv XMyDLBLBlC7vXC1hs0nZzyjBnqiEjVhPZD3cdg603ZJ3s1D9xKuICpTFz1Ae h3M5m42z6uG5oLFaVgVMu55ZQ6FggcnZRY3LpT9e+FNA/cDHCOTumC4rgeRm mwkDqMDMbWPihu8otx7lZElh3lhlOXY++EO8K/UettTrWMaQ2Ue0QPebYI/k Bhh1ie5CTd2JF755+6b71nrKun69WbPhhxbbA/5qoWuIitL8t+UUFi5LpGWl VDvO4dF5/8LZ+8fe8YHz8tXxxdHZbr/v7B/uOsenpz/vvjjY3Xd+erV7vo/1 edm7YwOF5MeWQBOQu8fHp3vi+97pycXB6wssaQLHUDSHfjP6Ozo5uijXXbpk NvFndNY/KNlXqmAmv2T0dHh+cFCuq3TJbFbjbXu8P0x8cXp+9H8PnOevjoAm TpyXu/2f6c7v8emugZYKKuSyXJneXx07vx3tH5w4B78enKT4LFcac+Z6ssQy p/VazS0bfsbcrRMfNL6s+0/ns3DH8n94MkdJ4w4/Vuvw58ZGxazlWVTmjY9u 7eKrtWHV3+4Yi3MJrWmstpjMd4x6rD+yOBvt+RGg5uIfzs8np7+dgOSZzLOg iZXnkhsbZlgo7ZLp1SeWRICsHqKsrWdJ+bZQloW19VUtcZW1XsGUVZmY/Lyo vC/Ztps0B7002fJxzTrgXuRxjnf9rxQ4iBg/5NvZZExfZ9xCC28rRlRmoU2r Z8JeumsDPrU2GK2S6rY6OGI93uWXHXGCdkQ21C+LivtSTQ9z27RrOcIOP3fj XvzcioOjCmUFH37uIPwMqM3jWkKBH1D+GzSDI13B5quushCaPoLVmVbb9Rri WQ+oY+zk28BzHqofRGLiJwP/G9kYvesU3JNH2nXikUbdzCNizhLAlZ2/0vNW ni9uyQ+l+ODTI/27oOlmA/HS7Jpp+lvEy72J9w7Iui/1NXqE5fbDres8Gd/u wt5uoQbe1sNWfOEhf4sr+xx30njEHxqIhUBl/1Kim0at1qzb+LMTpxvEB6fV 9aZDup2F4K1QBs6jUSLp6bU7tCZu8M4bsnOBtfCCibjsxR5KfmjBtpvdzSh3 M3zWpQM3oRs9W6awkQTkD6cVW/ztk7MTFZiCnBAF4C90m2KALBIhAy/dtY24 IFD51Qe+6Dinw2StjmpHqysTtq4wKgbu1PHDcInRMgKPcx/V8BIR/Gy34/T3 NVEXfvOoyxVznO3aSLeSXDGrVq0W5dV6JFHO2ZAdTNo99jC5NrBhrHFmiihf vZ7CPFYQsOQFC4eG+/SppYOGnn8ezSkHQI+pFbdqKGJTkUqrVq81YWj1RKD1 Lzs0prB//9uKC7YHH/E9qaBeawtUERUI/DVa+LCn8LciF1j8/YldW9gNynJi HUY2LM42HV6jewt5fcHLGP1yFmg0yo/dcKHycvNukF9S8mWcL6HMgBRYjpcT fPlph6HAOypoqsqDxjI9dKDWjtZAVhnrifHNQvQPkmh3TFLFY89C0sKm3gc9 36aoJFNjx04D4O/C8wCFTpEr4GZCZa11vI4zS1KOBnyFLPyfFKggNPeOD3Zh GSRHoGCJHm8k/PyF747xco/l9PdYSA3GnjsljzGbI6yhNBwFswlLs/Hs0h3L obEvLfrAGQYZDTH7BAOe8ukAd+vMtUEb8Q/4BbXTPPJFxYInYoaE7IxaZcaW MePCQfWZkT71TOVczECnUOjk1fGxc37xOlE2TbbJ1OeWhYHdbgVQDiPlA5nJ YvnwZjCfHEFEWH1vEepkkSZ+XO6wAPrOkiOuRwEOLj8iweUSTebxFTx9QCq5 GgwcN0ShC3w1sFZ5ZivqfdacZM4XY8o8HxkzJaoY5yJjluIMfoiHY0UIzT7e i2FUR4hjwgi2Q68iKcP5iQGQY296BTLEn1pL4Hm6RYizvwjcyXxGPoYoJz2M eUAZiUFkhkgSo+V0oKs+j/4/LZjDkz2dAQA= --------------090903000006070900020807--