如何从零开始实现一个soa远程调用服务基础组件

时间:2024-01-16 15:17:20

  说起soa远程调用基础组件,最著名的莫过于淘宝的dubbo了,目前很多的大型互联网公司都有一套自己的远程服务调用分布式框架,或者是使用开源的(例如dubbo),或者是自己基于某种协议(例如hessian,http等)进行开发,总体来说,使用远程服务调用框架最大的好处莫过于以下三点:

1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。      
2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
3. 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

  那么我们如何从零开始开发出自己的soa远程调用服务基础组件呢?

  soa基础组件的主流架构图如下所示:

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcEAAAEHCAIAAABZaGoWAAAgAElEQVR4nOy9V1Ac25b3+T1NxDzOQ79O9HR0P3RMzxfxdfTcb86955pzjjzeeyOsQHghvPfIAAIhkIQT3lsBMkh4AUIChHASIGELytu0O3eueUhUhyNzOr7bupK4J3+xoiKrKnPXrqqd/1x77b12/jcQEREREflr+W9fuwIiIiIiRxhRQ0VERET+ekQNFREREfnrETX0iMEDYOABEItIACQ847mvXa0vDgdAIY4HYBFgDIB5AMQh8mvXS+Q3h6ihRwwWA+aBB2ARBgCO44AH4AH/xozjEUEZeACeBwDgOQyAAdBX/ntEfnuIGnrEYDhgOEA8IA54AIwPXud/YwaAOEwfeOKAEWIYihbeEBH5kogaesTg3tk7KcEACHEGQUp+e4aAZwQl5XlRQUW+AqKGHjEYjuABcRwvREYBAwACoHkO/7aMfHcl+VlGRTdU5CsgauiRgwbMq6V6UgnaPVBvM4QMETKa2Od+U6beAs0Oq5eTwAPmaBaRGHgsiqjIF0fU0KMGya/ObLRXPh5oWRlu27pX++p+9dKD2peP61//pmy6f7+zavx+26hBSQBgHlge8G9veoLI10fU0KOGBgZappMDbt3Jefq4Wj1QqR4olw5U7A+U/basp+JVUuDtjOji7VWJEBhlOYbl8X/+A4qIfFZEDT1q8Li3aTjINi8v5MFwmWK5GxY7+al6eqYFf9TmmjijvWjGL5rxfAs/38IL7z5v5t6zT5Xz4Z6fd/9P2bMm9KwJTTey043sbCv/shPmO+B5M3c7/sk5i9y44MsKqQaARTzF8ViUUJEvj6ihRw0e9zWP+JplR9pWXQsaqIybrE+drU9frEtb+Kg1pi0arSF1QbD6lJfv7Vab+lKwT5XTkLH0UfvU/p/LalLm69IW6tMXGzKWGjOXGzKWqhJnSy9OxDrVuv6UmHLhmkZpAGAxMDyAqKEiXx5RQ48aPH7Q/iTQ+kq4VXmKS0uGR9tlv7v5QY8/ZQWBjwoCH107//ja+ceFQYNFwUNFwUPXQ4Z/5ZCPWt75Rx+1/9Vy/orPLQgeLAwdvhYyVBA8mHf+UZZ3b6Jza5jlbY8TKRnRxfJ9NeJIxFOihop8FUQNPWJghu5vGT1vczXKvjrTszPTsz3Tsz3dszvT6+OW490jWLZXd9bZrkzPzkzPzgyPDuMOWd49h+1T5aR7dn7UPrX/e8X+p+X/iglHCR+XcbYr1b09wakp0a3R3zwn7WKRZFvGIkLwQ8VBJZEvj6ihRw3M3W8bD7S+EmlbleHRkenZnu7emuremeza+lH7lPYZd0hxa0txa0t1bxfsU+UYd3jPPrW/UOyH9qn9f8WEoxKcmhKdm4VCEp2b413qvc9kJEcUSCVKAJYHVtRQka+CqKFHDQ49aH8SYl8QZV+d4dGR7t6a4dGWcbYnzbPtf8lSPVqN2+ln2zO8OgT71P7pZ9s/ap9r/1+pZ4ZXR6Z3p3B4hldH+tn2ZLfmaIfqs6fSksLzZXsqAJYDGmFO7MuLfHlEDT1iMIThbuNQgNXlSNuqNLe2VNfmVNfmVPfOT2lQimdrskdLoltTvEtDjGNtlH11pG3VBZvKFPcWwYxi+usaZ9z/PfsV7fuo/XUamuXTJainUJME54YYxxofk8zkiALJtgzzNMMRLIfERCWRL4+ooUcNHt9rHTtneSncqjzNrS3Doy3Doy3ds/uTGufVnu7dkenble3fcymw70rQvbyQB/mhD5Ncm5Jcm5LdmpPdmgUlFQTuU+V8ShM/tf9nNEHcU9xbhKomuzUnujResKnwOp0uaKixLy9qqMiXR9TQowYP3Y1DPpaZ4TY3E11rkl1qkt0aklxaPhV/TPesjbFvvehada95eH1pfXdVr9jUSTeXpobe5iV1hDtUJLh2JLu3JbjWJXrURbvWxDvfSfGozzjbm+h4L9mlO927OsH1drJra4JTW7pXQ6xzVZhVZVXOgHx1f/Ley1Cn2hjLnqyzXRlelXFOeWkelUlODZFm9Wku99LPtWT4Nye51cY73Im3r8327Y51qYt1r0txrU1z7Yq1b047W5/oXp3o3h7r3JzkUxft3Jzk0Zbo0ZTm0x7nXJfu3Z7u2Zns2i5ovVHxk1ybEpwb4hzrLjjdcjsRlxSeL5WoATDmmYOFVUVEviyihh41eOhqGPS2yAizLk1wqU5yrk5yrU9yaTmsNYct1a0mwrI+ybdpaXILWFBuwMKYllEAMLD/ms8J7fQ9cSPL926Ce32gxfVwh4qLdndinMriXauSPVriXaujHG9E2dWfP3430roxyqE8zKr83Mmq+ivTxDZeGFGE2XeFW9SFW96JtK0KOlMRa98Zad0UYXOz7+aLlWHq6oXOsz9cSnHrSnbpCTGtCbasjnRqDLW8EWXbHGJaHW5166JdVar7vXjHu+GWlcHWxQnutfFudanebUnuzSmerYLzm+TalOjSmOjSaNTQeKf6WIfaCMebbifiEsPyRA0V+bqIGnrUOKSh8c53Ep3uJLrUJTo3xzvVf9TSPRpCzWojXSrnRtY4HZTkjP75/45ICanefvMaaGgrfhFoUhJhWxFhV5zoW5MXcy/DrzXWtSzc5maCW0u0c3mY3aUM/4Yr50cSPasLLjZXpA7HubXlhrc1FHeUX+71N2sMsbmV6F2bE9JxJexBul+fv2lRfkw92gPQQUf5aJxn+UX76ov29TlB/annWyM9y1MCb169cDc3pOtyaHOCe0WkTW2iU2emd1teVGNucMMF+9Jop5p456ZYx4Y4x9pEl7pEl4YE5/oE5/pEl4Yk18ZEl4Y4x9oY++pwh1LX47Gihop8dUQNPWrw0Fn/2Ms8PdSqJM6pKsGxKsG5Nt6xMc6x7qOW7FIXalYbbHtjZmgZaChMf/Dv/6dfuPuNrdVFIKD9xoLzn3IiHYv7Kp/vvsSSRdib4560b6T7dzl/fyPOo/5e9ZPtuW1WAjuzKumSYuuZ7m7ZynTf5vTDJ003usPsqtNCG16O7u+vqlUb1JO+1bzEhpGeeWAAOL1uj9qcQZnBTeHOhbOPdpefSl4+fSt/o9mY1a+MyrZnlO3FA94nUhJcbw9VL8gW2M4b47Fut2KcaxNcWmMc6uMca6PsbiU418c71cU71QlKGu9UF+tQE213J8y+xOVYjFFDeWBFDRX5KogaetTAfGf947NmaSGWN2IdK+MdKuMcq+McGuIcaz9qiY51EZYNYY43ZkbmgIOlp5ruO4uzQ5u8gduYo1L92z2OXX5Q8wJoMOwxA93TijdyMMDMw/0LbhVN158BDVhDbb7cAi0ACyuTuwWxXW+mdMDA+vRuqF3F62kdMLD16vXbxTfzY3sl2X19jc9AD8Axb1/Kn/YqYzyqIlwvq96SwAEgpNk0PHu4Pvt4CyhYn9p1PX4hxa8YbQMYoLlgMNyuMMqxOs6pOdaxIcW9MdaxPM6x2mjxTjVxjtUx9lVRthWhdjdcjsUkhF4VNVTk6yJq6FED8x11j86apQVbFMc4VMTalcc63Imxq/uUhiY4VkdYNsR63pl/sgAMopUAOgAW5G902RdqbX+fcTN5CO0DIJidnK0qbXs+8gQQi9RMfWn37PBrYOBOYc/x/xHWXfsIa+DZw13z/5l4La4bNLA+ofT48Yb0NQI9DPWMJQQVRZ9tdvzh2nmnq/uvtbQa8hO7HP6U7/zHa3Fnb0tfkUDB3db7ka553qez0gJryU3QbUKEx9VrKa1Awe4Ml+xz0+dk9gW78ot2d6IdapJc6+OcqmId7sTYV8XYV8U63IlzrI51uBNtVxlpXRZiW+z8U7SooSJfHVFDjxg8hzvqHnmapgaZX4+2L4+xLYuxr4q2rRWE5iNmeyvEtPqCc8Xs8Aqrg5G+113VU5yGX32+c842+w//17mmgimgAWhKvquV74B+DwgZWp3dLi9oHbs3ByTca57xsy4Z7H4GDMwPq1yOX70a0wU6eDOpOHu8sCipX78FoIe+2md5UUOeJ2/7Wl6WLGnJfUgLrj/zbxneP97OCmhSrfCghcsJ5eb/T6T9/5t17kzh3AMpaKC9evLB3Tng4HHtdpDFtXDbkliXO1H2ldEOVRdtyqPtKmMcKqLty6Pty2McKmIdK2McKqLsyi5Y3wy2ue70Y5SooSJfHVFDjxg8h9trBw5raLRdZZRNTbRd5Uct3vFWuEXdOfOSpw/XgIaUiJof//3s1oIcaHjc8sr+j8nFiR3AgFqyV1nSGn+hNje+81JCW3ZMl6/d9ey4euWuARDsrhooNSfbUhZnN1r9Ma4stw8YWJ1cDTC7dOa/Z2aFVc4OTQADunWI8awItMnVrgOnQoUJzS7f59j/Li3KKV+zQrN7kBNVEXq6MNq62uX7lMpLXZwGZBJKrtBqKWll+nPPHy9F2pdFOZVdtL8V71odaV0W71QnCKigoYKeXrS9fcH6ZpB1kaihIt8CooYeNXjoqHvkfibR3yzvgm3JBbviC/Y3I2zLohzKP2pxjh3nTQuiXTMXH70EApry+u1+F5d+9h5vAIMMcpJuBnrGS9+ywMCdkm7LE2cDrC5X5PQXp/ZZfpeYHFinessDBbQc1p9stF0f8De7Yv1dfH1xPyBYn9vysspJC7uVHl6SGlZASgAouBR709M8Ur0OQMJg12ReUnVqWPlF72LVOoAaCtNr/Y9lRFrd8Tt2O9i6+NWUBDgADDNT64Em10Itb0Ta3b5oXxZpd/uC7S1hO8qhXHhFeHrRvuyC7a1w69Jz5pft/xIaF5y9v6sAQJinRQ0V+SqIGnrU4KGj7pHb6QQ/06uHNVRQmY+Ydb3P8dyLTrmLA2tggLulk3a/i/P6y/XWsmEgYWOOuOh76XpGk/otgAGIXWB2AUiY7F10PhGdEnyLlCJAIF2XShZUq5OS+oJhX7Pcity7YIDlsR1fs9y5h1tYCvQOAAGrE4ros/lnz6Q8qF4DAwANWAEPm15E+eTtLWLQQ3Fm1bnjuZFWd8Itatx+Squ/0YX1HNDQ3z7tfyovyKwowuamUUONMvreN4qwuRluXepvdsnuzyGHNZTnOVFDRb48ooYeNXhorx1wO53ga3Il3Lo43KYowq403OZ2hM3Nj9oFm8ogs2sXHQsbrzyaaFkrjun2/CHT70RhhOvVia6t5/37CX4lbidj8mObp3p2tp/zr0fIoZaFyxdrHf6UHHW2rLvqSU/tcG/d0yf3F4EBrIRLFxoSvMvHm9cbrwz6n86tyO1eHJIuj8iHW17lRtT7mV/yOHEpzL6qp2pgYWh7fVLfWjwVaJPbUvxkqHklNajY/3h+hEVlqGXZyf/uG3MuHWuBUUJm7B2/k1fPmxaGW5cKQnnB9laEzU1BRo3bgoVbl4Za3hA1VOQbQdTQowYP7bUDrqfifc5cDrO6HmZdGG5bEmZ9K9z6xkctwvp2lEN5hM2NYIv8IPO8QJO8EIviWKdq/9PZPicyQizzLjoU+53KcvpDrNufE/1PZ/ueLvI4nub4lyTPEwXlGZPD7WuFKfU+Vsk3LrdhHQALxcnt1v+R5HciP9S0IML8utNfYn1NMz1Ppvqa5Lj9lHHesjjUptz7ZKH7iRQf00veZ/KCrG97nSoMtLzpZ3btnMW1SOuKYLObwRbFsWeLmkt6gYa1Z1o/25yAM3lBZtfCrIojbEoibEoOKm9T8t7TcOsbYVbFIRZFfqa5tn8KFjVU5KsjauhRg4e2mocuJ+O8TuWGWBSGWBaEWheHWt38lIaGWl4PsyoONr/u9eNl1+8z/U/lCTIUbF7o9qc0tz+lnTctCLMqDjK75nM81/kPyQ7fp7sdSzx7OjHEvuBh3RLogdgjnz9elK0Dp4Wnj2YS/Uvd/ljg/of8wBMFUVYlgabX3f9yyeG7dP/T1wJMroXbllywLw2xuuZx7LLrDzl232V4n7webFXhffK64/fZ50xvRFiXe/90Jda17PWIARQgXWRvZfQ6HUsOsSgSqnrYhK8QZlV8+K0Qi6Igs2s+Z7Jt/hgUG5QllShFDRX5iogaetTgoa3mofOJ2LMnc4LNrwVb5IdYXQ+xLA21LPqohVsXnzctCDa/HmlbfsGmLMLmZrj1jSCzAmMfOcyqJNTyxgXbW8LoTbRDa7htSaBlvp9JXmpAXXfF6MLwpmwFXj4mm2/eP2d30fXH5FCL6jDLsgvWJeGWxeFW5ZG2VRdta2Ica8OtboVaXQuxuhxilX3RsTTCrviC/Y1wu8JQm4Iw22sR9kXBVnmBpoVex3MuOFx/2rEz/0CWH93kcSLZ+3ROuHVxmNX1UMuiEIvCYPNrIRaFoZZFxlcEE7aDzArOm+Z7n86y/v78+xoqrh8q8sURNfSowUNbzUOn4zGeJ7KDzAqCzPOCLYuCLUqCza991MKsrgebXwu1LLpgWxphUyKIUYTNjfPmBX6nLweY5oVaXw+xKvI/c8X/zJVgy0L/E5VB5jdCLG94/Fho//tsp7+kOv0l1eUv+WePZbj9eNHjWGyQ+Y1Qy4oA0yvnLS4FWxYFmV4NMSsMNS8OPFV47mReiPm1CJv8C7ZXQywL/E5lhVheCba8FGiWfd48J9LhWpD5pRCra+ctrvidyQwwy/E6kerwhxj3H5Mj7A+kM8iswGhC/Y2vG7/RedP8QJM8r1OZhzWUB0bUUJGvgqihRw0eWqsfOB2P8Tiedd40/7zZ1WDLoiDzG4fV57D5n7ocYlEYZJ7ndyrH71ROgMnlQJO8ILOCc+ZXBfM1ueRrcum8VUGwTeE586vnLXJ9TaOCrJND7QvOmee7HUu0/T7O/g9XXP5nsuv38SEWRefP3PY9eS3YLjfQNtP7zJUI26xAk4zzJpeCTa+FmF0PMSsMOH3J72R6wOniwDPF4dal500LQi2L/E5eOm9aEGRW5G+SGWCWHW5XYPf/xVj9R3SAaX6YTdG5MzmBJnmCnTfNN1b+vGm+oJtGVRVeDDhz1etUptUfAkUNFfnqiBp61GCgr3HQ4Xiw26mUs6ezvc7keJxM9TJJ9TmT7XE8zetUps+ZXPdj6e7HMr1O5Z49mXPWLM3jRLLP8dSA4+kBP6aeO5niaxLvcvyC78nMAJNc35PpXj8lB5pkBZ7K8P4h8fzpTI/jGZ4nMs+ezPI6le19Osdo7nbXg/6Um/Cny74nE62sLjjZRPv9lBjx/SW/kyl+p1P9Tqf6nkn1Op1y9kyKl0mqj1m654lsj+NZnieyvU7lGu3syZzDZf5XzO1UisX3AdGBGcpdDQBmWRpxvHg7JZEvj6ihRw0Gumsf2vzk726a4G992d/68tkzKV6mib5mqQGW2f7mmd5nUv3Mss5Z5PiZZXufyfAyy/IxyQw0vRRsknPuRLrf6fRzFlm+VlleJuneZ9K9z6T6mqYHmKf7maT4nkoKNE89Z5Hjb57tZ5bla5rpY5Lha5rpZ5blb57tbnHJ93hWqGmej8UlT5OsgDOZ3ibJ7g7pfmcy/E0y/U0yfU2zfEwyfUyzfM1y/S0u+5hkCuZrmnXYvM+kfxbzMk+1+LNfVGCaYlcJgBFiWA6JGiry5RE19KiBoL3mrsWPnjbHgt3N4jzNk9xNYrws45xOhnqYXXQ5He50MtzdNMrdJMbl1EUP01i347Gex6J9T8b6n4w5+0OE2w8RrsdiXI7FOZ+Jdjx10el0lJtpjKtJtJvJRQ+zaDeTi65nIl3PRLqZXBTM3TTK3TTKwyzaxuyC57GL/seSnI6n2JxKczmV7PhjmNWJcy4/hLkfu+B5IursyWjP4zEex2IPzDTW0yzOwzTW3STG3SRG2PAwjfUwi/4s5ng6wuSP7hcCE3feSoAHjBHCnDgsL/LlETX0iMEYUHfrAw/783ZnztmfOu9wOsju5Dlnk0CHMz6COZmeczYLcDhzztEkwM0yxNM80tUk1Pn0eadTgY6nguxPhlgdCzP9S4jJMV97izBbsxAb0/MO5sGOFkHOFsH2JgF2p7zsT3s7mvg6m/k7m/k7mfo5nPGxP+3tdNLhnEVooF2Ki9UFdzPPsFOe5386Z/+nEOtT521PBdmfCXEyCXU+E+p6JszTJMLLLMr+tK+LeaCT6Tm7Uz72p30Fczjj52ji+1nMyTzI0dwvLeHS27VtwDwA8DwvaqjIl0fU0CMGx8Dr5Y22pv76yo7K0uaqktby6w3l1xvu3KwvL66tud1cV95aeaOh9nbrndKW/Kyb4UlVIQmVgXFl/vFV/om1vgmNZ6MbPS42XIjMuXW7o6qyq7SkqfxWy62SRsGqSuuMVllSW3Gjpry4uuz6nXulN/ta7je0PSrLyW52MR+wNL/hkWDjf8srqd4nsd4nvtY/rvp83J3QxOro1Lr4zMby4tq68tbqW03lxbWVJfWVJfXlxbVVpQ3lxdWfxe6UtzfUdI8MThJ6WvhleJ7HWBxUEvnSiBp6xOABMAc6LalS6mV7KoVUo5JqlPvqfYl8b1emUmhleyrJtsygZfd3VQ/6h85e6fArGvC+Me5ZPO16fdY+b9r60rjtpSfN7f07+1qVlpVINTKZbmt7f3tHKt1XKWRK2b5cuifbl0ilezKFTKlRaXUavYaR7L56tdh6dzrxwozHsYVg15bcm66ZXRZXn9rkTztde+peNOFdNOx//VHg9QfBxfd3t/e1aoNaqduXyBUytUKmlu4p5FKVbF/+WUy6r1KrDBT58/2QeQ5zLPqqf47IbxFRQ48YJIsZlqMYWmfQqjVytUauVik0aqVCpVSqVTqDXqXWKpRqiuZkcvXo2GRG02hS03RIxYxr4YzdlVnL7Emr7FGnvLHx6Wk1QehISmPQExSpUMnVWpVWq9bo1GqtSq1VaXRqrV5jIPUUQzKIXqIkE5WVw45uIw5WI/H+M+13RoanMm/3nMqeMc19ZnN50jV/7FzJaHT1eE7b02u9s9u7O1q9TqPTSuUylUat0qilcplCpVRpPo9p9RqCImkGMQxiWY7nADAv5imJfHlEDT1icAAIeA4QDywPNADNYYrDFMIswiwGjgfAwHMYCJKWyhTPV3d6xlczK554JvfZx/Q7J/b7Z9+LujGoIXUcYIIlaUzxgDigAVgWESxHIUxjYDGwHM8wiCRpvZ7QIC27WFQ85mb7MjN2dXhIqeV2daip/55z2oRD4oBjbMfZpOa4a113eqamlne21JRGp+YB84AZRBs3OB4hTH8WY3gKAcsDYB5AMMyDOEFU5IsjauiRgwbhHpYAPADigcWAAIAEQAA8IACSZRBLA8cCokeXNy5eeXw2875Pab13cbtb0nhA8v22kVFALLAkw9MUsBQgDDzwACwPDCAWVABKABro/ecjc5nJ6+Eh2283FPvS2elnr5ZX1EqVUq7QarVbW1tBt1u80x6GZE4GFd11vtrslvW4vPM1AhaABKA5wAgAAbAIA+aAR4BZ4BEAxhyLEDIKoIjIEUXU0CMHy2OG41jhCcfxCGGMMfCAEc/SDEKYB0AAG7u0Ug9PV7ejLnWE5vfldE9Glg26xvZmlo5u6vWAGAbRFCAOMGAADngAEgBIDngMPMIbW9qW3qngmGZ7+3sXgyRb24iiNQqlTqMlDYRKpWIYhmXZ248mvBO6gzLHr/UuJjc+DrrcX9ezpEP0KzmzTwIDgDieQwzDMIJE8xgBz8G76fCC+8iw4sxOkaOKqKFHDB4wxghjBIAP3DqOAY6hgKEwwwEgHuQ6uD+5m1UxVv5IomFgcPZNz7Ot8oHVoNye8Kyu/ierNADieAaAEQqlOaA5HkAPPAALmDLMzS2k5Y2Z+wxanh1KTn89dl+jUALmORZxLMIYMwyDMeYB5ne3U4qH3OP7LzdPtY2/GJzeXn5Db8jV0eVjJXcX5rcp+p08cgDkx7ramAdO7IKLHFlEDT1ivOv5YgAWeAY4GhANiMVAURirETzbQMUdC94pjW6JNbktMxQLNOANnaGobsojrKK49uGeVsdgjhXK4YHjeIKheUGRWUSADgwKaU9Pi4d3jaPrdMlN6cILxJI0SWHEYcSx7IELjDCHMMdw2rujW+4xLYFpFWMzc4CBoGBq6Y1bao9jbH1G1fjIknafABqAA+B5TnA8DwxjjhM9UJGjjaihR4x3GoowT3OcATgGeEGfaD0FrcNvIm+MumR0n81sKu2ZnN9RGbQsD1qJZq+1e/7ajaHHY3MMpwfADACwADRgjLWAKKBBqYDhZ88aG+n5F+zi7ERL1VBnzc7Gsk6nUWi0iGEPxBtjwQPleMwDANa+2tBfrRzPr+hdX18FTHMs3pDpO8f24ooeuiU1BVy5e71nfkXK8ACASYYHhgcEP8soz4tjQSJHGFFDjxg8Bp4HDCwGhgPEASAAhgNAoDRAVvkju5iqhMrxptHXa3tKAJZnAINSS+9vS5j1N9zOnoKklcAxCACEzjyPOCDVu6/WamvGfUI7rP0323t4Vq1k5Hv7G6RCTmp0OpLB75LROY5jOYSBR8BzABSllquIpVX1+oaa0BuA0wPPcgBqA0wuKK7UjdlH3/LPqhtZURowYMQJn4kAhMlIAACAeSzO6xQ5qogaetTggOeA4xkELA2gwbC0bRh4unN/amNdBb1PVkob+5/Mvd6TGzQqPaUlOAojpMagRRyPEHAIWIbgWYo76Msj0Chkw4PPrlzpD/BvcbCbTi2UDE8i4AgAvY5iFHqko3gAIZESIcQgluMxB8AB0BwiOY4mKcGlpSmO4ggaGRiC1OhZhZZ6sbJV2/6gpnNoUUI/fWtoH1td3pTJDehARg+8Twy8qKEiRxVRQ48aGADzHM8wgPQAL3fVZZ2TIWk1QUXdk9s0CSDdXdNsLfMqFatiMQHAA49pAD3iDARB8VjQToQACAASKOXM9LOLST3HzAZ9fV5X5qt3tymlCpOYNADNAQPA8gA8J6RRGqciCU4oB0AAcIwBaAMQHIuBAmB4CjikIhmVSqHZ29DtrjOEQQ9w896ydXLTtdu1Q09faih80J3HWG2mHvsAACAASURBVNRQkSONqKHfKgY9YCQELhkAFniWpYHngADgWArrX6qIuhekX8msbUJHyJXu7seP1yR7JA8ki0iS5igELAcsBooBzNKAaGH6koEGAAoAsHbrxRS7/go2t+7lFVSnJL98eJ/Y3zIYDBRFsSx7eAWPv2o1DxZxFEHoaZrmMei0zNTEfFVFk1XarF3q4/yupbltLQksz2kAGwCRJHAsAIN5juOAx4BZYA2AtJ/t9xQR+dsgaui3Cn/wwAFwgHnABy4oAA+YxNA2vHY29a5TUk9yxaOmkak9tVZHsQSLSRbxxrwdHvQHficAIczCR4BY6vUbXU19V3DI6NWrsLNl2Fxfnn2+9mZVodNQFEXTNELov66hAAhjxLIs5gCxoJDrXy1vpTQtBlzp80m6U1j9cFPGoAPHFiEkJA4gAIQ59iBxU5x8L/LNI2roNwrLC2lHAIBoxiCEIFkelrUw+VqiIOHhxNsLmS0FtRMj85u7KqlOS1IkYlju5+425hBmCWHECQPGiAea10pVjx/Ppl0atXBut3KavlYA+zsArA7RCgOl1jEsyyKE3g2X//VwmAZAwoA7xoA5YBkw6NGzXUXN/Yno7Krrd4a3lLCuhOk3ij0eAANmWMxRwlcXsptoUUNFvnlEDf1GYbEwbI2AZzBwNIAWYGqdSKxeir3e/ezV1r5WNTn/cmF9RyrVEyqS0pGC6PI8jw+ClRgBBhowBzoAHSAe6V42N3b6nOu1desNu7je1MJvvQFaYyC1LMsK+Zn8L/mr64846sBx5nmMgeN4ikQatUGqka5ubk7Pr72RoDU5FDRMhBZ0NT1X6kmg0IGfzAF7EG8VNVTkm0fU0G8VjAEzHKUFQCQPr5V829P92LIxi5jWyLyOyfk1jmcIWq3RKiitltPoDvr6PGDEcRzHA+YAUxwNLAACoAheowS14mn5rSp3z8nYpNnpp0rpPmJpliF4zADHgJBi/47/ooa+E1CO4zihHJ7nEUKUXqdTyQlSywC8UVNXah/bR1d5Zj6o7l16vk7qACgAgiMQRwlDVyIi3ziihn6rYAp4VhhAX5Fosyr6PJLrXFPbMur6Bue2ZFLE6oGhgWYZAAOAkueAYxHPYTDmpAMCQCzoqJXF7dv1q/ll8GpN/XpxsrN1e+DRW6VGotEptQbSQABgHlgCDBSQn636Py+HjH9hGDBDGwwylteoGP3inv5294JvSodHfE10QUff9Ib2IAMVA4+AIj5XfURE/kaIGvqNgjHQHEjUBiUPM5u6uILG82nVJe1zz1ZWtFoG64DRAsUKOZQsgJ4DwMAfpIFySEilx4Re+rTv+aWMPjv37rOBsskJxFNStVwnVShVOpJieGFNEGGiPgD9+fKFDo1KCUNhLOYZHlhhlWSe5zhE6XQ6Pc2tbMh7h1/EF/UGpFTW3puTMqAgQUUKUVwxE1TkW0fU0G8UCmB2XXKr7WH/zJsVFXSNvmrpn11aI+W7at2eGqu0wNMISB3Qegwcb0z+EaZbYsBItvF2sKdn2tO5y/z0WFTEcmuddn9Tz1EKkjZQgGkDAOIAEzxCALwwJE58vAv/13XqhZtz8O88YgAWgKUAIXg34YACg1ovkbxRqrf6Jjdq7z6ffUuv7HHlzQ87Hz0xCHOwRES+bUQN/ULwwAIgFpEAmOPYgwVAeR5YHfAY8weeoA6xHA/yfSgdQgF5I26JtaVtk+sylkagV+mUO3t7BjkN9IGziXmeA47FPAcABgDM8XAgPQikfT3tTvZVbqGPr5Suj03KZPsqZNABywL/FVf6eE+OEUI0TZMk+XbrFclxOg56x9+EZDa4xVVnN8/fewM0IBLeLY0npIgKUxZERL4NRA39YiAAxGEaAGOM4OdBGxJ4BBwA4jgAPQ8DM5JrDTM+GT2B2V2XakaG5iVyAmgEFEEzeoJiSAAMPPAs4hl8EGbkAHMsAMY0oXi5tHdvCF68hsWVtvyrE5WNa4Njqq0tg0GnQyTNc0LH+mv9Cu/NmsIYI4QYhqFoHUlTWhrWpGzzw8XIK+1+GY0Xix+2jCy8VXAcALAcsAxghkH0YQn9L499iYj8lxA19IuBABAv3PeH5wFAWEQOg4FnGWEmPeJBA5BRM2Qb13Axp/5Wy/jkyr5Ez2kZjmQZjnsXIUTAMAgLWZuCgNI8YACDXjrQNxEX2efqulN+B7Tk6u7exsqSYm+HJPQUQzIMAxwGDoD9zyr7N4PjuPdk9EAEeYwRx7C8muRXJPqu0VcZN/v8Eiu9khsm1zANgGkAjABoAkgDIPwOUUNFvi6ihn4x8GEBBQCOExbwpDkAgoWpOcXDp293Oah68CLl9r2Ho3MLq7syHaFnKANDIEwfLBDHAoeAAmAAOAw8gzHiGcRqX8xv1NYPevv1WFkOx4TvDt0DitCS7J5GriF1DKIROhi1P3BdvxKfnH/KIOAxj5FGp5Zq9dtKanR293bT2JWq4YU9eLGJHj/d2FYyNAANoOdJUT1FvhFEDf1iYJ7neP79WCQB/IYaGgZ3A7K6g3KbXiu5XYXu9cr65sauVCrV6pQUreOBAmCFpTuBBxpAB0AAxhwLHMYMKdPKxsPD22wd73r4TV8tkEyNI4OCotQsoWUA8YJkvkud5IzL139V3pdRBMDxwDGIJUiaUKgNb7ZUL5ak23uyfQOU9856ZzRk1T4Ze63TsMB/YphLlFSRL4+ooV8Inufg3VA1CE4oD2qV/sGLzasNk+5JbR6p7ZlVj1b3NZg2gFauUql0Og3N6AEE30sIoQLHcXqeNghT50kCra9r3rwmCOlCYEhvYMhMa8vm8opkc5fR63lk4EEvBE+BP1h6SRi8+hbGu993SIUZUDwWYqQGg0GtMWi0JDB7etrQMbbsf7nDKak5tuRR1/Dqxi4txAQ+LPOrfBeR3zKihn4hDtaO43kA4DieMDAcguWl1fDSYY/U9pBL3fUPFpc2pAqt0qBRA4HZgzU3BNFDPEa8sOQnZg8WoN/fk3b2P0pIm7xdCsotZnzq1cOHb1dX5FqtSq3HNMfzHA20sF48xli4ex2HDtKZvgV+oaE/3+LYWEMEwHK0AnHUjoq+93Qr986ob2pjQHZbUccCTdMMw7y3NoqIyJdH1NAvxGGnCSGsURtoihsbnbTOfBxX9eLu2O6rV5usXsqxKpIBij+YUYkORpHwz/pCUcDR6rWVuYo793zCWyycn+XkwuayEmBfp5du71JqJQaOAp7hgUcg9JY5o2yid8vXfyU+HAh6t40xBg4dfE2ewzxPAhg4AL2B1KgNUikx/XL/cu3o2cu90c2v9Ho9QRA0TRtzSUVEvgqfTUMPD7YaQ37C0DPDMABAUdThd42PgrgI7x5+Eb1DKPyjUxqN5QvvCucnAAhhR5qmhd2MFRNKMxZl1LV3/Wvu8LqZxpuv/crYxeGKHfwCrBYwCTwjZHvruYMliDCj4oDUAixpobhtPTl/ZODJpp5EA0ODz1/Mbe1sK9UqgiA4FgmeIwIADGDQARgoMGgAKwEIANCze3cfPguN7rezbfJ1Hqoq3lt7rZSohPWWPhz1/juA4ziSJLVa7d7e3sLCwosXLzY3N19ouezakaw7zx4tMhIAHbB60FFAs+8uGDywACzwCDj84XxSY1BFKP/wXyz8oUJTETZ+vg0fOpiUBu+ah/FA4/4fIrx1uEBjIYIrLbwutKUPT6LDh5AkCYfOGuE0Me4j3uDvq/DZNPS981Zo98L2R5ug8b9/T0w/hVH+jIUIemcsx/gpH63b4SbOcZyxtR1uwYelVrj9r/F1Qc2FGgr3VT9c+C9KE9b95DmKMfCAEEdhnqFpkgFQcfB4WZlZM+GV1hJ1pevBxIqGZnU6nUajUavVOp3ucLF6YdENmgMaYeG2SRwFejVQaKamucnd91F4+FpLrWThKaGUc4TwnTijl/crv+TRQhApQchIkpTL5XK5nKbp1V1tftUD99ja4PxHteP7bwjBt2YRZ8AcBfggY4tjD5JZD/8sH7a0w0JpfOXwU5ZlhfYAv2zGws8uvELTtFFYBQf5vXIOq/Z73/HDR8EDEJ4aL9VG6RQehY87vKoLy7Kikn5hPqcfCgBGP06lUs3Ozs7NzQl/s6CnRldUaI6Hr+eCDwjvzpn3Woyw8fLly/HxcaVSaWy1cKiNCmW+p8UfNimDwSBsHPYfja1/b29vZ2dHOPDNmzejo6NyuRwOKSl8zD897I3qEQihTJbVABgAaOAx8LCphubH2xeuPnaJbw671l09MP1iY1dF0ixJIYo+cD/fdWRZHrNIL6zQcTCdUyJR9bZvFV8mFUrJxLPpsuqXLa2KV4tKxZ5Wq+ZI9uMThv6+EJRFEBeDjBibWku7NeCa1uOR8fBy9cz8shxYdPCbc/jADcXAAFC/vNQZNwwGg+C/Gz/ivQuzkfcusfCB0/DR8lmWFS7GQtxWOOTNmzfCifBeGz7cP4N3jZ8gCDjU5IxXSvhVz/fvuA18g3w2DRUan9ACKIra3t7u7e0tLCxsbW3V6XTCPh9Orn5vw9gfMXaujX0ulmUHBwddXFwKCwuFnQmCML5lLFlwGAU9NfblDzJhqF8MRxvdCmOrpWk6OTk5KSlJkOmhoSETE5P6+nrjDkbPGj7wZYxnCAPAcIAwi5BWWERYRwLDw8stKunqXe/o5uyKyZ6nr9cUci1FUAQLFAssd+iWx5yw5tLPAVCa0y0sPS8q7HFxGrSx3FhZwkoVI5Htv93alcv3SD3JMr+RhTaFxiD4jKyKVar0EysbFfcXAjN6faOa7w2u8TxoWGAOsg8wMBTwP8/lMg5ACY8kSa6urvb09LS2tqrVauNHGD/uvZAUvGsAwoWZoiij6v2KnMGhdggABEFERkYWFRUd7gC994mHhx81Gs17lYEPJPK9y4DIF+bzjymp1eqpqamdnR2VSjUzM5OamlpcXHx4hw+vuhhjgiDecweMjYYgCOHkefXq1Xfffefn53e4R3O4wPd8zA+DCXAoqPTRHXp6ejo7O4XXFxYWfve736WmphorY/SIhU80GAxGz1TYgaZpwMCxCABzABTAy01V+9BK/9N9pY5o7Rqra5kee7b9emtXrdnHhB4o45pw/MHdLwSPhsdqQVSl0p329tHYmBYX5x5//7UbN6S7W4RWYzCQagapALTCpCf8d6uhH3WpeJ6nKNAQ6m3p6qu3q933n9W0Pn++Sqyrce0D6f1nCikJCFgAPQAJLC8s//RRDQ0LCztz5szMzIzxKvieJyi0PWN4/bCXagzvGC/hHMcZQ0DChvB4OHLV1NQ0PDwsNDmj/An3X4F3IU7h8N3d3ZcvXwrXfuGDjHIsHG4wGDDGRufAGEA4rNoif2s+s4YihGZnZ69cufLkyRPhaUFBgaWlpVarhXetk6Zpo/wJfzZN08+fP3/8+PHOzg5CyGAwLCwsjI+PC/tsbm4ODAyoVCqNRuPq6hofHy+Xy5eWlvb39+FQ33xra+v+/ftLS0tC98codgsLC0+fPhWu5wzDrKys3L17d2lpSThkfn5eqMP+/v7ExMTExITgkiCEtra2rKysrl+/vr+///Tp0729PTh0tshksvHxcaEcOOwm0CoAxABIGXj8UpVbPRyS05RVNazX7Mll+zs7ks3NbaViD5EaMJDAvAtmGTX0IH2TlwPwPK97MnHP26/bwvpZYspaX69UskkxJMXQBMOSACQIa98BRfw9nzMfhi8xxsINRDXat0rZ8sb60s6eSkrA4PymT/rAueyeqgcvluQq8iAxlgPqk335S5cu/cd//MfU1JQQTAQAiqKMfRSjsK6srPT19a2srADA27dvX758adQphmHm5+cfPXpk9FKFQ6RS6djYmLC9uroKAFtbW6Ojo8+fPxdUj2EYoRCM8czMzPj4+Js3b4zK+/Tp0+DgYB8fn76+vu3tbaEyQlhge3t7aGhoa2sLAGianpycHBkZUSgUJEmura1tbm7+zf4KkY/wmeOhACCTyXp7e4V/XaFQZGVlxcfHH44hvndKrK+vDw0NjY6OdnR0PHz48PHjx/Pz85WVlc7OzkNDQxRFDQ8P29vbl5WVIYR8fX3d3d1lMtnDhw9LS0uXl5cBgKbp8fHxoaGh1tbW7u7upqam58+fC536qamp9vb2srKysrKylZUVQRkvXLjg5ua2tLQ0MzMTExNz9+5dhBBFUTdu3LCwsKisrBTasVwut7CwyM3NXVlZ6ezsbGhokEgkwpkmk8kmJycHBgbu3bu3tLRkDCkAAICeAZjdpG7dexN+bcgvqyPpZn/ryCvFvhQhPUFJtXoJBvadXPIsHMz75DkMnDADHrFyzdbUGGytkXPP+9Mzh7Lz9h6Pyd68eava05AG40QllmaEg7m/657c4WFoYZtlWY4Twug8QWqVml2S0VGIX1rZS78z4Z3eFHy153LT9P0XUhULPM8DZ/jUmFJHR8ePP/44MzMD77TVGKY/3DGanp6OjIx0cXGRSCR3795NTEwcGhoCAIZhVldXHz9+XFNT8/jxY+G6zvP86urq/fv3m5qaent7m5ubp6enhRcLCwv9/Pz6+voEQQSAvb29qampoaGh3t7ee/fuNTQ07OzsMAwzMTHxhz/84fvvv6+oqJifnzfWbWNjY2pqqrm5ub+/Xy6XI4Rqamrs7e1LSkokEklZWVlSUpIxeibyBficfqhRHwVXjiCI0dHRvLy83d1dY4sxdkyEDZZl09PTvby8pFIpACwuLtbU1Eil0rt37/77v/97bW0tAKysrPz000/h4eEURQUEBJw4cUKn0+3u7hYUFJSXlwNAX1+fi4tLe3s7TdMEQdTX14+NjQHAs2fPUlNTJyYmlpaWMjIyenp6BKcvMzPzX//1X3t7ezUaTXl5+dOnT4Wu09zc3O9///uYmBihhnK5/NixY4GBgcKVPzU1tauri+M4rVbb09MzOzur1+u7urri4+MFp/ug1waklIUbPS9d0vvtE++lVs/2Tm+vSg0MBYijCCxBoGUAtBRQADRgAjADgITZ9BwAwWzNLg40tPdYm8paakEnf/F6eXpxeePtjkIi4QxaA+Y4AB4zwLGAEDD4YPLo3++AkrHL/AuwATAwCAgAAoBAakTqOQXzfFd78+6L0Pwh68iusPzx0RVCjzkAxXtHG9tqc3PzDz/88PTpU+OL780uEi6NWq02Jyfnn/7pn5aXlzc3N2tqamZnZzHGExMT/f39KpVKr9dnZGTk5eXRNL27uxsXF5ebm0sQREREhJubm+BSYIzHxsb+7d/+ra6uzuhvpqSknDt37u3btwCws7NTUlIi9Hi2trZsbW1DQkIWFhaEOiCE3r5929LSsrm5ybJsY2NjeHg4xlgikdjY2JiamspkslevXpWUlPz6FBeRz8vnj4caO9HLy8vj4+Pb29uH2yJ8EG+qra11cHBISEgYGBhg3/Hw4UMTE5OamhpBs9zd3S9evMhxXEBAgL+/vyCF3d3dlpaW8/Pzu7u7Fy5ccHZ2vnXr1ubmpuBU7u/vBwcHh4eH63Q6nuclEolEIhE+t7y8/He/+52gswBA07Rw2mxtbR07diw9PV14fXt728TEJD05AQATBJWaluXlF0BhXNVUb+pglXI5v6vvfsGVq2bHjve39wAGLQ3LEmZ6TSNjoOfxXE5+ZUvHg8XFdem+SiFTA8UBBxyPGQBaGHpiOcCgFAbeaQRAo701TUfTsJvLEyf7uvjc5f4RXqmnSUqqVCi1Go7jvpH8om8Q4yVkb1/x+s3m49GJS0Vl16va1xWwvA9jS6ySlyM4WPgZMOaANgBoAerbO7//4fjswgpBH9x3GvNCcu0vJmAwDHP79u0///nPQvRGkHW5XH7u3DlfX9/29vaBgQEbG5vw8HC9Xk/TdHx8fGlpKcuy3t7eYWFhKpVKKGpzc/OHH364c+eOMRTQ0tLi7e0dExPT3t6u1+uNHjdBEH5+frGxsUZ3mCCI7OxsOzu7ioqK9vb23NzcY8eOsSyr0+m8vLxcXV2FgK9xGErky/CZ54cKvS2E0N7e3suXL9fW1uDdtDVhN2MXydg3EcJJN2/eTEhIEK66JEnevXv3p59+amtrAwCpVBoYGJidnY0xDggICAkJEYrq7+//7rvvuru7OY7b3t7u6upKTEyMiIioq6sDgNXVVScnp6ioKGFnkiSF0SSEUHl5uZWVlTGUaRzQl0gklpaWWVlZwgDX/v6+lZXV9cIihqIBICwswsnFmWapjNx0UyuTe3dHngyPP50YGhq6qyG0SgT906qk0qmM67UvNzRr+4apF2svFt+sv9lWKXUMxRqApwEMNIUYFjgeMADLsSR1kMwOSC/bHsrLf3g2sN/dayAlZuHuoObVJtAcx3F6hmIwdxAqFfkYRg3VG8h9hXJ1Y3t85uXs2u6eAZruvwxLray+v/piR08Kt07hAdEAADywNXW1P/x4bPrZDIswx2OONy65/4vCGYapqKg4fvz4zs6OkB8FAIuLi6ampp6enk+ePBkZGent7RWCSwRB1NTUNDY2Li4uPnz4UHByhUD/mzdv/vznP3d3d8O7eUsA8Pr165aWlqSkpKCgoGfPngmvcxzn7u7u7+/PMIyQRbK/v+/j42Nrazs+Pj44ODgyMjI8PAwAcrk8ICAgMjLS6J38XXZHvlk+m4YeDh5RFGVsHzRNy+VyvV4PAAaDQejCC488z6vVapIkCYKgKGp1dTUxMdHe3n5hYWF0dPSnn366desWAGxubh4/fjw0NJQkSTc3N0dHR4ZhSJJsbW11cXFZWlqiaVq4zgv6aGlpefv2bZVKlZycHBcXZxx6UqvVgpRfv37d1dVV6D0drvn+/r6Hh0dhYaHQFt++ffvdd9/FxsYjhBmGiYmJio2JZBlDZ0ezo4P1xvw80moAsFxPbuihYmDF99Jdu8TOnOKK+bd7WhaUBlah0SuUaoahALBW8G14ABaA4YBFCDEMYKBJkGyBVgGy/YfJ2W2u559fu/l6Yli1vs2odDyHGcwxgA9mOyFRRD/O4cmxBEXK1Sq5QU/woGSgqW8iKL7QJe5hStXE3dmVHUp/kAPGIaDUEyOD9tYWs9OTB4m1gJVqBUEZhDkYxnF2AGhoaLC2thY62gJyuTw6OjotLU1o7QRByGQyofEUFxd7eXldu3bt9evXguAK++j1+pMnT967d08ogaIohUIhhC83NzcrKyuPHTs2NzcHAHt7ey4uLqGhoQCg0+mEQHBRUVFkZKROpxMmeAkDqhqNJiwsLDk52fhTiOPyX5LPP6a0tLQUFRVlbW197tw5Z2dnd3f3pqYmlmU3NzcjIiKSkpIUCgW880Mpiurt7S0tLZ2enn769OnVq1cDAgJ2d3flcrmPj09oaOj8/PzKyoqNjc2xY8fW1tbi4+M9PDyEIFR1dXV/fz8ArK6u3r59u6Oj4/Xr19XV1d7e3i0tLQAwPT1dVFTU0NAwPj5udIrlcrmfn98///M/5+fnC8NBguNM03Rzc/O//Mu/mJubT05OAsDW1paDg0NUdMLs3Hxvb2/pzetjo48BWJ1aVlpU0NN+a2V5fleGa7uXY/MfO8fVuGdWZ3ePT84vSDQ6JUGpDAY9RSLMAiDMUYABkJAGL8xbRDywFE+iZ0+mci+9LL4Fm9vS6ecv7w7sPF/c29zVKJQEQdAcogAzgA8Cpu9uiiHyUXieB8AI01pSo2f1JHAqmn25Lrk3MnPxxnBATn9gZndV38wuQXBAY5rYWd4I8vH6P/73/62spEivkQPPaLXq+MSEwPPBGo3msFvw+vXriIiIf/zHfywrK3v16hVFUcK7/f39eXl53d3d4+PjCwsLQryIZdmysrL09PSKioq0tLRbt24JmRoymayiouIf/uEfAgMD19fXAcBgMHR2dgrR1ZmZmcrKSi8vr7dv3wo6WFpaGhQU9ODBg7W1NUEW19bWsrOzu7q6hoeH5+fn19fXKYoaGBj4/e9//+OPPw4ODu7u7h7OVxb5AnzOeKjg5UkkkqtXr3p6ekZGRoaFheXk5AiSJJfLS0tLW1tbhZ2NDfTFixcDAwMDAwP19fWDg4NCAwKAsbGxysrKwcHBvb29wcHB5uZmnU63vr4+PDw8Pj7e19c3MzMjuLcymezJkycPHjxoa2vr7Oycnp42GAxC/2tlZaWnp6epqWlxcZEgCI7jFhcXr1+/HhAQcPXq1ZGREUHKGYaRy+Xd3d0hISEJCQmjo6PCJWFqamr8yfSDh4P37/cvLs0xrAEAsyxHEmh47nlT/8iyBLpGlEGprdF57XcePh1cWZMoFFqKIFmG4VkehDu9sSxjABaA5TgekZhEHAkcDdtby509Q+fDWmxdB+KT6Y01hjbs7e5LJcp9LU2yDAPYuPIIx2OMMc+JfugBn5IJjBEA4oHlgEXA6mhSoSXe7Mp7ppby7gwGxDXmV02vKcAAoKQ5iZKqKKnwcfdsqquWSjcBWMwzd6prS0rLZTKZ0QMlCGJmZqaoqCgsLKy8vHx8fNzo6FEUtbCw0NXV1d7ePjc3J1yMq6qqEhISXr16hRCqrKw8ceJES0sLSZLr6+uNjY2xsbFpaWnLy8vC+bK2tjYyMvLgwYPW1ta+vr7FxUVj7EuhULS0tNy/f18IcQqnzOzs7KNHj4TJJwRBGAyGtra26Ojo2NjYxsZGIZgg8iX5nH6ocUzTYDDI5XKVSiWXyxUKhdFF1ev1Qu/j8JRj4V2NRrO9vS0M7xjbrkql2tvbM86LNiqjSqVSKpXvzck3GAx7e3tKpRIOzbwTCtnc3DROdRYy03U6nUwmO1w3g8GgUCg0Go1SqVSr1cbcc+BBKpVr9RqGp4U1jwgENEDdsDQ0t/nB3N5bLfSNTvcPTbxY3NiS6NRaDcWQwoRPONBQxAPLA1DAGwBTgABTkpGxpxl5/a7BPTZnn2XlrY0PygxSPa2j5TrCwMhBuDkIIGHppXdZS6J3YeRTrDmlBwAAIABJREFU8xCMiRcALA8sxzMkTcnk6o099djz+a6HYy9WyZVduNO9fqP9yeSejGZBR/C7kn2KMQh3R2VZjiF/kS6MEBIas1arlclkwrQTY2QfY6zVahUKhZAMwvN8Z2dnVFRUV1fX7OxsVVVVSEjI3Nwcx3F6vX57e1toaXq93tgmWZZVq9Vv3749PKFKuLoTBKHRaISu0uEvK5FIjOl5e3t7JEkKTfq9VRdEvgCfTUONOT9GBRT+Y+O7xhz5DxcZOTzQZMz34Hne2GMyLvZh/Djj+WM88MPVmOCXs/zeW2fkw6UZjMlIvzgzEQAPNEvpGUIPoGBhfgtVdrzwyR70TWttGXop1RuUKsnW25X9rR1M/JzLdPjrAICwQibNUpg2gE4ze6emySvwkX/EVEXd9pNJuWxXQspZhgAKA4uUglpiHiOOYxHGmD+QVJEDPjmXiweW5TBGNGMAYIV7WDEMI1fpdySbEukGAni1zcVduescU5HS8GTipVLPgwYBA8ABy7CEsEbBe4t4GT+Ooihh48OFGuBd/ghCaG5urqurq66ubnR0VPANhcZgzGIyZjMLo52HizLuA+8U1pgIJ5RgPIkEYRXqefi8+9v97CIf8jn78oIsvpddflgrDyfPwTu1Mv7lhxci+Wj+7+E1xA4vAnK4AsLGeyfY4VQ84+PhZSAOC9/hGgIcrAfMA6IBSwj63vRa8o2+c8n/P3vvGdxGlqUL/tqNidiYH7OxsX/erHkbMx0x/eZNT3f1zLzp6apSSSVDUqREUip5U0bqkkoqmSqVvPeiKEr03hO0IiWK3oEgSNCCoPcECQKE90iku3nv2R8JotmSWN2q0puSVPjiBINIJDITwM0P5557zneK999+kvBstHfK5fGA4KEElw0QBcgDmPjaFhEQp96EAMYALAADC539Q5W1sKCztrfLk+JHivMUmonp+RnaZmdoN8EcIB44hgBPeLRUBgpEwALBHGAvCbCoDytyKAaBAyCABRaAxwJLMAICPPAEwEu5adpu8hjr+oYvpHd8cqb10IWMrKfdqnmzCyMEiACPOX75j5V4iuViCy/KL4k6D885Bw6HY2FhYXnVk/+Az5Up42UiYfCnHLocNE0v50f/TGt5Xf/ycR7Afw4CGsxL4F1i6JHngSUEAQfAE54DGkDAPPIwACNGOBXb9MmFvONpje3t7ePj43a7ffkkixBiACAYgGE4oCjwcIILAFwAYB6fT4jt23+0adsh09Mm8HjnNYuzUxoxPVt0Ln7M5S9/uein+GMgy3d7UeECABiG+ZlkZYu/uzRNGwwGpVJZU1Oz7XL7roulTztnvEuxEgFYCsyAMBAgABwR29ojAWgA6qd+BwG8cQhw6BIITwQgYn4L8AC0WD3EAGhMQnl9r2xwXu0kT+RD8UWtJdKZsbGxxcVFv3aU7xhiXyAWgMEsgAc4wBzY7Y7Orq7rl559/kXdwSOd9x7ZR0a9Xo/Z7vLYvWKUQ1iSAf7BTOq/jOcOIgpfPifhCi8oDfvzE37Y2d984CWI6Uoul0utViuVyqzK4fgSWafaOmjwPm4eaVctOlhYUtMXBIIIICI2tQ4EpAN4GQIc6oNXVEgjABwNvF3sQkEhqJ9loh8Pf3GhKL5IPmuzzZs1E5OzWrXbbrfTNP2iAh4wtKhlJ9a+A0Gcsqfh0JfN+7989uUReVL83FCPzW2xM24x5fM5//FHcuhyD9S/cfnMbrmuGixrAfDOZ8OIn62fSXmed7lcRqNRNzc9MTOtpXHVgP4PN0uP3Xla1a5fdImhFywAD0AB8WLW68uQCCCAP0WAQ31wAscABoIB0wAeAdCIzlMknfsqqWnv9cdH7j0pa52Yt9jcHotAuTib66UhJ4yxwHgYzAEAWCjz6AzjNFKTAy0Xz3aeu7FQVbOoHpkxzxrcZoajCQD7go7vj/dDl8d2/Z4X/Kke2nNB5+cCdj8HiJN6lmVp0yTjMbMAyjnP3TzF51fKjtype1g2rZy1WWnggRBCAXYD8vpaUQUQwJ8iwKE+IKBZRIGAAPMEkBWBpG3qwJ3KQ7cqL2fUlyoGpyweOw0sC0CAMA7/C5cTnyAIDACLOTw3N5+SVXXy256nJZRJaxsZV7e2GTXTc9YFncsIBAMClma8K1zMD2DS5S956bz+pRFPjLFfdFJc/33V876l8PukhGcIyxIOOx2MasKQ9kT5ZdSz7deqLt0vHFtgfT2pxepPgiCwphfACwhwqA8s7yAAAoEFMzNmcMx6oaxr/tDt0rSCrqausdGF6UWn1YtAwCAIgIHBS80p8XNdInika5OPRT2U7dj/eNtOVV6uy6B3Orwa8+KMRecCjgAWLC6gBSDgwtxzR4CXyQO+Kp4LrYrph+L/fi9VrC/0hyMoinq3F3P9unniwz/mxgEICIAmvNOl02qUE+q8luEzqdJH6ZXzVlikYHiBsTDAAWAQEHL9pG8igDcRAQ71gQDYvaAYY66lNt3IrlHq3HMOobN/vr9vcl6jN5pNVruFFxAB4AQQ/nTu7F8B53l+piC74auvq3bsbzlxejgn1zM6zjtddoayE8wAeDl+Yng8NymtsbKa9noQvISI4YdGJ1mWpWl6eZ6smDQj1oCJodLl7Dw+Pp6fn5+XlydKC8MyFYx3D+Lbf1GVg8U0EoiowWp3mAxm7eTsfItsQK3VG90kp3rgfFx9sWxR7QQWgAQCogG8gACH+mCjoLxl7tSj1s3f5n+TWNW34KC8nMdgsJm1HjvlW6kFUS8Nk2Uem99tFENsfecOSHdv6zp9cai6dnpObbFY3C4rCzQCcLuY6ic1owMjU1MzjxLiU9KSrRaTeJDXwqFut9tms/njnmKytyAIMTExR44cWR4PpWlaKpXm5+e3t7fn5ubm5+c7nc53fiK/3MFf5qebCfBeAmKVEk1bvQY1MzvjZQ0OhFIr+3eeK/7iRm2MRKWcsjHv+CcUwA/Bu8uhYqM3TPxFPgxGLBBgHQAYAQBg4OwgOABw16T2u7SBz25UHrxW+CC3QaacNNvciOMFmqbFlQQeg8ATYL2AGLF2iQDFCQRoQDaYGx1OjBvOyIDFxZ6entbW1s7OzunpabPZvDz5yePxREVFGY1GjLFer/+3f/s3pVL54tK5eHsvz0bCS23El6cfiVoBy9HQ0JCRkeGPb8KyDkKiiOryVn0nT568d+8eIcTr9c7NzS2vioFlraJghUDqOw/W43Q53Fq9o6y290LM44PXSr681xBTZcQWBhAL4ACgBA5EAWwOvDQInCj9RICIxRFCQKvwZ4F3l0MxEWsliYAB8FKuHwaCCEezlEcA8ALYELgwdA5OH7z++NsHz1LKu9uGtWqjy+GhBR4BFrwYeASEAALsBeQhLCDsU1EmGHiHqaW259z54oidjXfv6adHjUajWq3WaDRi8pNYOkKW5MhmZmZEmb65ubn9+/eLLXFeioSEhNOnT9tsNoVCkZKS0tXV5dfWpWm6tLRUIpGo1Wpxi9VqffDgwbp16957773i4uLh4WGO4zwej9VqTUhIEDX8xT0RQgqF4uLFi7/+9a83bdqUm5tbX18vCMLi4uKdO3cuXbpkNpv7+/tv3LhRUVEhVpoRQl7k63cfAoc43kWhwSlTVft0dK7s6O2yq5kKIoDLDU5GTH7iOESLdCkqJGCfdNQSh77LEeYAfHh3OZQAEcRqSwxEVNXlAViexSBgIOAEKFa6rpUNSccddjcqaRgpbx6SD6qn9Vaj3e7xUhj72nMSAMQDi8C3SkswIB5Y2jE+OpyX03T0ZPXOT5tOnJmoqrJa9BzHud1ucYnmxVwlMUCZlZX1zTffjI6O+qsDyVLdqn//xsbGf/iHf6ioqNDr9TKZ7OrVq42NjQDgcrmePHkil8v7+vqKiopETSye5/v6+rZu3RoeHj4zMyM2VgEAiqLa29u3bt167tw5cQvHcSaTqbm5OSgo6NixYyMjI6IIm8FguHjx4vvvv6/VarVabUxMjFwuh5+rEwoAAAhj5KFojd46OmepkY/kVXZ2TThmrJBbPZZTOzPhATsACzQQAAb+uHBPsF8hhgQ49GeAd5dDRRAAIoDAAUFAeIHxiOsCU2bIkOr2Rjduu1paUD/EsqA3e2fm9LOaBbPDwnAUEadlhBAegfDHwiUAIMAicAF4xh4Xl+34tHzbvs6Yh8PSOuPsNLE4xKzDF2OLPM/7ZVkWFhbKy8vLy8sdDoeY7w1LbOUX47FYLH/3d38nNjdlGObIkSOHDx9mWba7u/vo0aOiBmtJSYnYulmsXzx06NBXX30lpiv5T8qy7N69e48ePSpuEYtKGYYR+6+IG8UpfF9f365du/r6+sT/Rbf3Z9u7HBOOAI8w76Y8FodzSq2ZmJ5HAANa94XEpzvP5VzKVVQOGfRibb0AIHCAWEAMEF9/LCCidHYA7zjeWQ79Y84mjwTeN6YFHrm9pKZHe75AFX61Yt+1orTHHcphjcuFvC6302FjaFFvngXgATCPMDAsIODFNSUBwOWxq/rm6p4R1ujq6RiIiVOmpU/0d0zoJy02I3hfctM8t1jkp9fTp0+XlpYunyb7n8UYz87O/vKXv9TpdBhjhmG++eabHTt2CIJw7ty5Q4cOiVQok8nee+89UVndbrcfO3bsyy+/9CfMi8FTm832xRdfiB39/GfR6/X79++/cuUKLBOqMBgMV65ciYmJmZqastlsywVi3vnlphdBABHgffKthGcZj8tp4WiXg+OrOvsvJD/ZdbHk4C1pRrVm3OR1YYeoTQNEIJjFAoMxIoHa0J8H3lkOxQIvhvQF7FON4wA4ALXOeS6+Ytu1smNJjZlP2icn1B6HE/EAAgKBE+f7gkBxvBdjEBCAgAXAHhAYQOB2GJ7Vdp4417zlM22HnF9Qa0b6R4d6p+cnFy0Gp9eF4fnJu38tWOzV3NTUJAiCKIR65syZY8eOOZ1OQoiYv7l8ZcnhcPziF7+YnJwEALfbfe7cuQMHDmCMo6KiPvvsM5Eoe3t7V69ebTAYOI6zWq0HDx48cOAALK3Ii8ehKOrTTz/95ptvxIfidq/XGxERcevWreVFTRzHtba2rl+/Pjc3NyD/I36KGCOCOYLF31QW8x6edy6YFqRDk7ElAwcu1h84V/FUMW4HL4tBXFMSABPgkcBgJATWlH4OeGc5FDAHBBECCIAmMKmj5UOG3mlKT0Hes7aY7Ce1HUPjar3RaKbcHrHrnCAIhIjCx77+7wQBz3IACDDlGlNNZGY0HD5avfuzrmOnFvpUhPJYXTajy+50eURJCnaZmpm/Dt1PUl6vNyoqSlSTtNlsJ06cqK6uZll2bGwsJydHnJ7Dkt9qNpt/8YtfaDQaADCZTJcuXdq5cyfHcQqF4ty5cx6Ph6bpJ0+e3L59W0zqpCjq8uXLBw8etNlsJpNJJGVxjf7AgQOHDx/297ACAJ7nP/nkk7t374qzfn/ipNFo3LNnT1xc3HNKTj/DqKh/7iKG1QkRCPAEeK/bZDBqJ+f1nUO69JL2qJRnfTNWJ4HGHotK7TXTYtAcEeBBQAEO/Tng3eVQworNN1gAnRMkNcqzD0qvJtdOWHgnxahHeqcGu7Q6vd5BCwBAeEIAE9/cC2Psa6LJgQAAHOuVK1TfXWjatLVx3/7epPvzqka92YJZgbfRwAPigcUg+JxfH55TTRX/GRoa6uzsjI6OLigoqKmpEVX9JRJJeHj46OiouJtYQRQVFfVXf/VX9+/fd7lcw8PD77333nvvvdfZ2cnzfFNTU0pKSkZGRllZmU6ng6Uyzfb29q+//rqmpmZxcREAaJrW6/X379//zW9+s2rVKqlUKsYNxsfHHz58+Mtf/nLNmjXp6eliUykAEATB6/X29fX19vbCkpTvct3MnxUI5xsDCGEQewkKSFTGRjxYLN6ZeU3/WO/Y/ISbhWap/g8XJdG5srZhrYlhOV9tKA5w6M8Bbz2HCogmAByAA3EssAhojARCA7AeIGBk4HG/60Sy/JMzkpP36nKfqVkXy3o4u81tttgoL7MsDQWLHd89QCieBR4Ag5kItF0DDiMMjrTdiCk+drGrsHx0cGDMoBEXjl6i27QyxAxNl8tlsVhsNpvYOgJj7HA4zGazf8VJrKjR6XSTk5Pz8/MURTmdzomJifHxcbG1GU3TNptN7Ae5PFLJMIzYyETcKK4dzc3NTU1NTU1NmUwm0dn0eDw6nW5oaGh8fFyj0bhcvvpFMcggNmFdXuz0zks6vSrESQZN0y6Xy+v1ut3uxcXFU4myfTer9t6teVAxNGlEghiIJxgjAQiwArAEKHYpqr70XQfwDuCt51AAMwBPCBAMmADHegAoIDQA66Tw46bZI9erP7/07FKStLR1eNrmol0M4QAjEIQ/oQYOALwc8CAA5kQp5kX7fElt4fFTU2XlZF49o+xStDROjw2b5jWuRZO4YP1i9HOlq1yuS8KyrL/NCQDwPL987uzPsV++IC42GfeHKVmW5TjuOQYXBEFUTV+uMyKuufs17mBJZ+S5q9LpdDU1NbGxsR6PR+xqBUuBiACHPgf/FyRqv9I0bTabVROmmCLF/ntV268/vpnbOjBjFgR/AwOEQRCzRYkv2hNwUN8dvAMcagNgfPkkHBZz6x0et40HCw8lDdPHrxU9yGxt6psZUs9oHRqWEYjwxwZvCAu0wDOAXACAAXiCeC8gD1KqZm8+6tx9JHv7F8PZBdhiMLj0I8aZRbeJpTzA+GQo/3J++QtDisup1r9lOb2u9Kq/5EqWtzYTV9uXV0NZLJbZ2dnnJKUDBLoSyLKmRi6XS6vT907q86VTR6KKriVXTBs5BsDgBgpRAiACPI88SKAI8Azm+MCC/TuEt59DMQABxLoAKAF4N0DnrDcqvy8qt12lJRNmtqGru6O/e0YzazCaKS8nYMAY/DRKADjALGAEQFE0AQyCd6CksOnwcdn+P1Tu3asoKllUKsHj4b0up9vGCOwPuwfIMizfvnwy/qc97IhIeX4N0OXPvojnqkX98iJ+1eHv95EDXPljwHGcheZnDLa+0SmpVDY7OWWycfnN01+nKKp7Jxc8mAUggLHAgNhqlA8Ikb47eOs51NeAjHAcYD0HRZ3arxLl685Wno4p7Jg2uQAMDp12ccJmNSBaAGEZ+fmq6REhYvoTBo4FhqI0013paYX7v6g8dXLkSe7o3LjRvAgcAywChAFjATAFPyRf0i8dJBLcc3XxL6oKraCRAf6nlmcmLYdf520lB1ak5ud4mbzQ42/56X7A+3238dwnjwBb3U6jUW/RqYFxWx10/OPeT65VfHG74lH5QP8860UABAjLA8/Dzy/P4R3GW8+hAEhcU+qbdscU9H92o3LPvWcnJIr2UeWiy0YToLw8QyFffxwxYWVpKo8QBwIGhIDlicvYmZE5JymD2dmJ9ub6/Kwhaf38mFJjNVq9bg4LGAhGAmABCAbyyvfAizSEl/VAhRe0nF/U1oMlp/JVGU0k3Ofo23+i5cTt73X6ImW/0hnfYfgjIc9HwxkDEJYDsDPE5qZZDDN65+PWwc9u1ey/XHom5umTphEXtVRKj3+OpV/vKt56DmUxWDy0E0Njr+7rK0VHrxSlPulqGp1ZWJjyUk5CAAkgpir5IBBCCALgxOGMEJidjHK8L+p20Y7d9d+edg6rOM41Nzc7OzHjsLldTi/HC0tZ+phDvIA4QK/sh75IQyvNoP0+pu96/5TmXhed+VuWv/SqVoo8BOCPkDyf/yu4BMTZWOIBYDCmvU6rzTg8OV4i09xIazh6LSuhUKr1gJeAy8sG1pTeJbz1HDow6imulE+ZzfNuSlLZ+rhSMTayoJ3R0oss0AAEAVACUAgQi4CIEjuEsCCwgAlgTm8cKamSHDnfFbS5+7MDmjKJ16F1Uw6vySO4wM0uuaxLq6oCAAuYgpfoiXw//JT0nKD6c27mczLJL+7v3/O5ifyLr1rp8sTGlitd5HMH+Rlm138/nqNOfwCEYoED4AgA5gDbAFu8tH3aZBqfs1a3DWVVypuGtToENT2DT2UyKiDo9A7hzeNQgRW71ghL1ZkIgMGIAmABE2ABKACeA1A7haK24W1XGw/crpI0DVvcrMdtm5sZXdDMuZxe2uurM+FYjJeq3QmHsQBErIImDNAO3dPy6i17+kN2lRUVK9rkunkN5fYIPALsi0j+1B9HAG839GbTyNjo/Pw8w2LVhOF8fOXOK49PZI+Nuu0m4kVAA2bFUY4QJwAFBGGOFUNPRFzzRCwJ+K1vMN44DiU8QzCCP3H+MAFMeARIwKyABXBz0DXpvSPp23Ot/Itbz+5LupUzLhYD7XU5rAaGpsiSYJ2vX7w42QKggadBAIbBE3PUwBC4bYbR3sqoWz33ohRt8snRMYfFyjEsRoJ/Nfwn/jgCeMuBAJxul9Pp5FisM9OPpeOnE+p3Xy8/9VCaWz+x4EQCAGAxVCSKNGIBcb6oPRHrozgh0AvvDcYbx6FLwAAYCzwWWJ92Du0BhAADS2BYB9ezFBHfSb6IlhU0DnWNW20eEBAILEd4jhBB8I1K30wcIWCQgAAhYEGwcYoO5cmrT/YemaqpoRjrxPzo2GDvombBabVxDEsE7J93C6++dhRAAMtBI8JhghBiacbl4qa07sr2meh8+d5vWw9frW3o19sx0OJvPhZDT39ctPeFCwACfuibjDeOQxkkICz4hJMJD5gHAYmeqcvLTmjMszZh0g4ZNX1X0ypLO+cm5/UGq9vjZgWGiF4rASwAwryHAGIBvAC0GMbivOAyL6Yn1u/ZX742su/sdW//IOJpvcOqWdTTlJdnOXEKLyIgXRbAjweNlmKfiPe43EaTfWzW0DM0F587eDOhRjlvNxFQqvVaJ8sCsMAQAhwvqoSD6EmIZWk/5XsI4HvxxnEoJ87fMecLjBIgACyCMTfEl3ccupacUdlhYMDo4vuHRicmJhZ1c5TH4VNKxgAEBIEngICjBGCdwDoAWAAQkEc1WHr6fFvYtuoduxX372m7ZG6TjnG5EIUAAREwEZYtywQ4NIDXAcE/iggGAdFul1FvmJvTTKk1AxNTNh4aemePXsm+md4kn3FafHMu4DBgEIjvUWAgvtF4QzlUQAzmaHEd3OyB/ln3yTTV9gtl+87n5lT2G+1EYAhlNHr1WtpjXdLIIYABI4HneUIEwAiWZB+9xgXwuGFqrvjEhZp9X45J8qdn+gfN4/OUkQD2zfuXDVMxoM8TjAKDN4AfDUJAEAQgvtkV5mjKabOZ1E6nkRNAoTRfipLu/67iSHRDQovaZPeto/LAYeB4RIuqJQG8sXjjOJT1RX8QEEwA9A5S1DR65FZh+He5lzPkDb0GrZlnaMJ7OcSwgETnExMicEhcgPdRICYACIHJZK6tqbt0cTS/EAzmxYHR3samieGBGe2MzmX0As+DwHGMqFnnz4ckADzBPAm0cgjgRwP7GHBpiVL8xeZ5XvDSLo73Wh10z7AzsXjki5uVu289Scx8Nqmx0wQ44AiwADwR8A8qiwvgPwlvHIcyGBHAWGAFxAkAOg9k1U9tP58XW9bcqJycXTSYzDqaNhNgWcA2zAMRleqxAIgAIkQQxcRZAFqjn0zObNj1eUlYZH9sPLJYzDzTbTfMGs2CxQseAJaA+CrwdeAQCPZzaKAtYwCvAQInVrURAJ4ALyCBIADEArCY47De5hqb1k50TelT60a+iCq7cT9PbaA5AIbQiHgIcL7lpgDeVPxkHMqzAIAAHICcvqkLAwiACA4OYMQIt3MHr6Urh/Vgp0Da0tA9ppybnqIMdkwTX4URgBsAEBACbgws+Bc3Mct7oaCsbe+XpWHbKw4fk2dl2bVzmKU4l+Oner8BBPBScBzncDjm5+eHhoZ6enpUI1MWGrJrJ88kyGpUjB0DAALBQIAXO9cTAkigBGwDYAPc+ibgJ+NQMXAuCKJ8PALMY1YADgw8POmaP5vUuP10wbnElkENYgUwGxamdDM8RQGDWA55AGgxgIkBGADe90AgHCacwFF206Ls8pXCzw7Ir91RP6nUDSpdbiuNvBz3M1VlD+BNw3KpF5ZlnU6nwWBYWFhwedxaG5dS1vPphcJDdytTq4fHTIwHAAhwDMvQbtEpJQACwYGGTW8CfjIO9QLjFXxaSIgwAB4gyK733ns6s+dGxY4L+VcyWxsGjDYOBAxum8ntdgLBmGMZzFGAvYCBADi8QAsAiBCKUEbQTk9UPlU9fQaUd0beIi/IG62vM42PGvQLdsZNERxQHAvgDcFzxbiinCvLskignV6uf9qaWq76w83SnRdyL+e2VQzZBRYAMIALwAMYCBbbdXt/uncQgA8/YTyUFgBoAgyAF4AFcFBMj3Js69nSAzeeZNaODmhcepeXYhkBMSBwgIEHgQMeCAtuB/I4AXhALAJMgQvABjMDE7fulEfsab502zU0AcAvzE3Nz0wajXq728X7ei4GEMAbgZX0FhBysbzX4qRHZu3P5LPnY5/uvZB5KVvOYqAQIBAIAM+JoTAgEMgb/enx03EozYiRdaMA8mlPmWymc9Kw6PVmlirL6wZHphdN5kWrWc1QFiCcGJCnAHmBRjOTg3HJQ5JC3mOhgXMBTRxGTWFB/b5PqyO2NR4+MZpbDCa7l6HMdpub9vIIE9/qPeDAkAvgTcJyHdglVmUR73VaTVqNTjNvbGnrzytr7hwxaL1Q1TFZ26kx0WLuCg+EBS4woH96/HQcygEQmHdTBW0jX96p+PxyYXnrCAVgM3u1ap1JN++xLhDWCkADII7hgSVeQBxnm0hNKw3brrh3D1t1ADQneMZyCps2fSHd/Gn79dtjHc2M2w5OD08zgtj1gwAwgi/pLhA+CuBNwss0BhFgHgSWc9ntet3CzMzivA4IKNWLVxPKD14qSXg61qf3eMQcKSpQR//T4yfjUI6HrhFzTEnXvpslu68Vx5X1DKmtDMeyNON2OQTELJW5aSU9AAAgAElEQVRsYF/BEA8AyK7qkR85KT3wB11dBT87CqpRYCm3vLvx9K2O6OTF4eHpxVmdzUx4BDwBsvR6wZdFHxhxAbzpwEB4RASMMeY4zuv1OhwOm822qLcUVSu+vFUUebHgeFpLeZ/OQOFA7v2bgJ+MQ5Wztusprbsu1X0W3f6wdmLcgQgAuFgeiJNjaQB2qWYJYwAC4AVwuGZzJeXBEW1nvxlsKn52/3bTJ1/p2zsw5RhbVPfMjmt1RueiDTgQeAwcAQIMLGlAcYgRWHeARQN4M/BipwCfJinrcxtYAAaAAaABKALgBZuLL++fPZTWuvFK/YEHbY87ZgMrSm8CVuRQTPyqB+CPJ/I0wwO8khEEIABmgQggANhY95TRNWkArQPyn7Ree5De0jOx6MKjGpvGxnkBeACOAEeAX3JEEQBHQADKOqhoOHZYGho6v++Lrm17nuzaX3/+imFshrNTlMNjMNooDxIV7oB6tYv8HgPCgK9rqAAiG/MCEt4mB0Bs2SQIwvL+dyvhuRYXf8lLvv+8z4lD/+CjvfFgQawbFoBZ6vmB+dc2Dh1eUOucGhM9pLanFdVfiyvsmXHbAXoNHi0HXgAeA8+KmjtIAPZ1nXclEwCzmBPrUBAAzSOe+NZsyZLYBOIBY4wJJ+B3OadwRQ711YzzgiiiBIKPDYHwr2aYB2ARUG7wjhqtqc+6v4upPZ/YAQQcNvvo8IhmXu1y2j1uOxZYlvEAQS83nXY6K7Nh9562sE2dmyNqtm2V37isqatkDXNAPAJQVmK3gNsNrBd4Dl7xIr/PfFImBPvK9giA8BbGVZcnJP5Zdfrn+gX9ACYVp6L+h++88pBAPGIr+aUNmEc0AHpt4xDzjNthWtTNTs9MTqm1eouLFmRd/Z+dk0TltvVMmTkAAAQCBzQP6NXv01c21meIBcwD5gEjwEjssUDwcs0eBO90serKfigICAsMK5Clal+G4ZYk4F/BECUQABtCLeOW2wXj20/XfXq1Ib5Ww1JewiPK6fK6nDztBcT6uBIt/dKhJRFmHggHMKKsPf9NUeTGth1b27dsbt2zvfO7k923rlRdvjtX0wQOJwAvfp8CYF/F52uxZTqk/nbKb5Gu6IutOr9fWHo58RFCGIZhmB/iRPidUJZl/bmQP+xQbwUQ8rXtIqJ2MgFfB+3XNQ4FHjACnmc8lNvpob08zQjdfYNf3+/57ErNyQc1Rc0TOoeY+gTAvL7zrmQcFu9NTGPffcqICmm+pVuRRgkhGP9cOVQgaIk0WC+v5WCeItNeMucG0ysZgMXqsZY0DH55+dm2byq/jqrOlsom+EkXWvBgnZ2d8+AFD16wsVMeMu/Gc26wuIhZNDdYxIcOwTj28EbxztBnkWsV20NaNn4ki1jfsi2sMjw4Ze9ORVIMPacCMDPCooeZ51ktUAuvep0rGj/IwZyH1dldRgDAGASBvEVcIHKoyIz+1p5/9lUrNVz6y/HctJ2m6R95wDccPAEX7WDA7EFaKzXnFcxufpEG3esahy5BTYGGIloaTE6is3DzLjCYuYW8nu5LBWW7rj364nZaSk37kFHvxBYKq1/b+F/pesC49L+FApsbbA7BbOONNrtRdDvEKSxCGCExMvfO4nvWlLDYTnjOoGrofjisT5iwp/TrYgfMMa9kY4bbionUR5K4Q1evnku4lVF7u6rnTMfoye65e4OG2AFDjEr/QKW/P2SKGbPFDRjuD5gfqUwPRRswPxowP+o3xvTpo5tiDhadDy++GJZ/ISj9/Lrse+FZcTty0vY9kextaj6h0sSMuNP7HAkD1oQJa9LYwsNXvc6VbNoZN+PIlvbFSxUFrGD3pUe9PWG95VzmZ8bvoVFx0i3u8GNaoYivXR40eLcbq8yYmht77w0u3ldTsaPmmAlrwoQ1btwa/brG4bA5dtQa369/MGh6NGyJG7EmDpriFPN3VaYH7ZqYioG7mW03CrruNM/Gqqyxo7ao13XeFc32qMcQ1WeK7jU+6DFEDzuSlabYqoGzzdIqL20HwByHltdh/YRfzf9s/BkOZTHTN1GZ+mRvj/6UAe7r4aEFol7JFuDyLBMrnYyRyM5VdJ9UTJ2eWrxptqdY+EcuSPJAsgPiLeiBVYhxQKwdYqwQbYH7ZhJlJlEWuG+B+yZ8z4DudGvv1QycLmg7mNd2oKz/2JPRU6Wj3zydPT8wd27EcEnNRusgTkMe6slDC35k9N591etc2e5Mem5mPNmXUnDK6Z0DQAKPydvDBn4WM5lMzc3NCwsLfzYY6vF4VCqVx+MBAJ7nf7xPCgALCwtNTU1Go/HHH+rNhHKuNKl8d9PkgUW4rof7CyRGC/e1cPN1jUMDF20lsRb8yAmJNohzQrwdYu0Q6+GiPSjKBXcdcMsBd+3wwApxZhz/+sb/y80G0WYSZYcYC9w34fsUJE07ruRUr0tIumuyzAOgP11LfHtumFfH96zLcwTAy9PtAyW3s9Y/G94+wpzSwn0LPHglW4C709xtpflC+9y3PbqzE47bWibRjLJskGDGsVaIs0OCBR4a0H2jEG2HR1Z4ZIGHZhJjJjHiP0Yh2oDuD3quKc0XurXfDevPj+vOj819N6U5Pas9PWW7Me+5ZxFi7RBvwTEWHOOARy6If9XrXMlmydkOzfE7mRuj0w47qHkARN4qUTwxFskwTFlZ2eeff15TU/NihPS5/aurqw8cOFBVVeX3HH+YC8nzvOgFO53Omzdv/uY3vykvL/8Bx3kroBivvZ25s6hjx7DnjAaiFyHVAMlGePi6xqEDUk0Qt4hjbJBoJDFWeGQUoizwwAnpDohzQRQFNx1wzUxumuChHTJe13lXMjM8MsFDOyTYIckMcTr+QdPQwWvJ/xj14KLRPAvA+8R8AV7s7P2OYeV4KGYIAIOEjoHyqylrk+o/Kh/a3m05r6JOvJq5T6pch/psnykWP+/Un+h3nVXxRzuZrUrvcdG6XYd7PUcG+eP9zNFu95cD3m9V1Df9npN+63Md73F83W07pjAebTd+3ef8rs18TGY/2ovPNHsOt1NHuzxf91Bf99PH+tmvu9nDcv7LVuHgK1/nClY9ur2gbfuFhxti0r5xeHQIvWV6jmIdIcdx2dnZW7Zskclk8OfW2bVabVZW1uTkJLxsSv4Xwu+9er1eAKirq/vwww/fYQ7tnKi5l7s9pe6j8oENbQsHRtxXxunLI95vXtc4bHd/1cOe6GNPKJlj7fYvhtCJAe6o0vOllDnZwXzb5z2lcn876Dymch1SUgd66M9f13lXMiX9bafz6y7XsX7mdLf75LOZ3TG1vzue/F9iYq+arXMArKiRJgjkneZPgO+by2MAwgsYmjvLb2Z/lCVfn9MVWTiw+dnM7pda5Vx4rXb7s7ntT6a3V8/tq9V8/mz202ezn1ar977Uqmb3vNRW2v912UrXL5p4ATVz+6rVeyundz2Z3JHduTm3I/R6+qqY1JM2m4WIIntv1bDwer1arVYqld69e7ehoQEAEEIrxT2NRmNvb6/FYoGlhaD5+fmWlhar1UpR1NTU1OLiongEnU4nl8s1Gg0AsCyrUqkMBoP4lMfj0Wg009PT/oPU19eHhISUlZURQhYWFgYHB/3nRQip1Wq1Wk1RFCzzXp/LVH1DwGJfwggRfXyMgGBAfMdQ1d3cTSnNH2V3r89XRj4e31Ex8Un1zL6Vxnntwp6nMztqNHur5/ZVqfdWze2umNpWp33l+2Kl/WsWdlRMR9Rqd1bN73gyvb167vOqmUPVs0erpg/Wa3fUajc/U++omj1QObf/iXrbM83OVz3vs9l9Veq9z2Z2Pp3aWaSKyO0KT24OuZD5z/eiL1jtGv9CPCE+AX8GgQCAyFJeIAEBcctSwd5ivAKHZndGSFSbiociXmqFg5ElI1uKhyOLhiJKRraUjGwpHAyXDESUDEe+1FY6zkr7vy5b6byiFQ2G+6+haDBcotqUpdiU077xWtqHbymHYow1Gs3ExMTMzMyFCxcaGxuXMyZN036qEgSBoiiJRLJ58+Z169aNjIwAAMuy+fn5f/3Xfx0bGzsxMZGenn78+PH6+noAyMvL+9u//ds7d+54vV6FQhEZGVlQUMAwjM1me/r0aUxMTFZWVnFxMc/zGOP6+voPP/ywo6PDaDSeOHHi3r17Op0OANxut0wmy83NvXfv3uPHj81mMyxze99ADhWT54HDgAkIGAs8ACYYKYaro/Ij06RrcnqC8/oiioe3Fg1uKh3auuL9MhSarwouGdtUPBpWPBpWOr5ZMrixdCz8Ve+LFQfzSHhef0jJaETxSHjh0KbS0a1FQ1sKByMLlZHFw0FFI2sKB0OKhj4pGdleOBouGQl95fMOby0Z2VI6sqV0ZEtB36bcrvCUltCLWb++F33BYpsH4J/PR15KF8XY/7Vign8eHNqkeHwja1Vm27osRXhBf9hKltsdkduzOb9vk0QVWtAfnK8MKugPLujfKFFteqmtdJyV9n9d9j3nLegPy1eG5itDxS35ytC8vo2ZHWHZ8pCrqR88SDnxNnKo0WicmJiwWq16vf7kyZO1tbXLn30pST148GDNmjVTU1OEEITQ3NxcUFDQsWPHAMDj8dy4cWPfvn12u12j0Xz99dfR0dEAoNPpRGKlaTo3N/fWrVs8z2s0mqtXr9bW1gqCIJfLw8LCampqZmZmhoeH/TyekJCQkpKCEJqamjpz5kxaWproIIuhgO8P3f404AhwGLtpYBEQIAIWE946hmru5UWkt36c2xuS17dFMhCR2xuS37vi/VKg3JzXt1G8WQr6gyWq0Jye4LyV93/V8Vw4sDm3N6RQFSHpDy/oDysaDC1QBeX3f1w8sKl4cKNkYJ1kIFgysLlwcGuBKjy7f8Ornje/f3N+/+Z8ZahEtSmve4lDM9+7e/+8xTZPgMMYi4PLN8Z4HpDPZ0ecz0vlhTfv+311/BkORQI0KR5fz/wwQ7Y2s2NzvjJU0h/+UiseCC/oCylUhRQNbMzvW1+gDCoeDC0devnOb6AVDURK+sMLlJsLlJvFLQXKzfl9mzLaQ7Pagq+kvL+cQ/Gb5x6thOHhYaVSSdN0X1/fqVOnSktLYWm1XXT3xL9+tnK5XMnJyaGhoZOTk2LYVK1Wr1+/XiKRAADLsnFxcf/6r/+qVqsBoKKi4vDhwxMTEwMDAyaTCQBGRka2b9/uj3s+fPhw586dgiDIZLKtW7eePn36+vXr4msBoLGxMTIy8uTJk48fP66trd2/f390dLRIryKTvolrEQQv+aI+PXkMBAGR9Vfezt6U0rwmuzsotzdSMrAltzekoHfF8VYysE3SF1nQG17Qt0mi3CzpiyjojSjq3/rahrQqtKA/rFAVUajaIumPLBzYXDiwsXAwqGQorFAZKVFuLhwMKRrcJFFtLejfUjAQ8qrHL1BFFqjCRULI696U2xmZ3LzxfPqv70SdM1vnlnOoDwIPAg8EAcFAQBAEJLyBs4wfgj/PoY0dZdcyPkiTrkmXh+X2huT1hr3UCpWrJX1rC3rW53cF5yo25iqCC7pDi/pevvMbaAXKzXm9Ybk9obk9of6NuT2haW0hmbKgy8m/j04+brWa3zoO1Wq1nZ2dMzMzpaWl+/btS0lJYRhmOU+J8Ue/Q2q325OSkkJDQ8fHx8Ut8/Pz69aty8rKwhg7nU7x2YWFBQCYmJjYvXt3dnb20NCQy+USJ/UfffRRRUWFSMp3795du3YtAKhUqqCgoIMHD37yyScZGRkYY5qmm5ub165de/v27b6+vu7ubp1OJ77qLyzt/0ngBYYFngPEAGIJLywV08n6K29lbk5q/ChTEZTdHV6giszr2yjpi1hpvOV3r83t/Di7fV1eZ0h+18a8ziBJ74bi/uBXHbf5fZteapkd63K7g/N6Qgt6wwt6I/J7wgt6wwt6wzPb1uW178pu35mlWJ/TuzanKzKnK1IyFPTK94sqMr8/QrxxcrvCsjvCExs2nk399Z2ocyaL+mV+qPDHYj9fQehblGb9ffg+DiWYEzn0avr7qS2r09pCs7uDcrrDXmppLR8UdG4q6tpT2HGgpOvLos59ufLNOfINuT2bXmorHWel/V+XrXTevN7N/mf9e2Z3habKgjNaN1xK+o/7ScfeRg6FJa6cnZ397rvvGhsbxY1TU1Mqlcq/jxi0Ev3Thw8frl27Vlz24Xl+cnJyzZo1sbGx4qGuX78eHBw8MzMDAHa7/c6dO8HBwd3d3eJxFhcXHzx4kJWVJQiC2Wy+d+9efn4+x3H19fW///3ve3t7p6amtm7d2traCgB6vf7KlStFRUWwtIL0XGzhDayyJ8Ai4iXAE0AI82SJQ9sHa+9kRyQ1rE6Tr8tQbM7tDc/uCsnvCV9pvGW1/3txX3BJ7yclPXuKunZJOiMk3esz5f/jdd0Xkp69RcrdOYqI3K4wSV+EON3O7gjPV2xtGL9ZPXQlW7Epq3N1liIysyOiQLX2Vc+b1RWW1R2a1Rmc070xsz0koy0svi74dPKvbt87K3Ko+GWKa0oYY1+NKAEewzvDniL+PIc2tJdeTX8/pfmjlNaQrK4NK33WZd3H5OpHPQv5XXOlysVi2Ux0Uee+DOnHK+2f3RX6Ultp/9dlf8l5xVGS3RWaqQhJaQ1Kl65/jkPfohEgTodpmlYqladPn66urhZL4C9fvnz9+nWHw/HczpOTkydOnFi1atXjx4/FjVKp9Le//e3t27d5nqco6uTJkx988IHIxYIgSKXSbdu2jY6OEkLEQtKZmZm0tLSRkZGGhgaJROJ0OgFAIpH86le/Kiws5Hn+q6++Cg8P1+v1ADA+Pn7p0qXW1taFhYX+/v6pqSnxpKJD+ibO5RfmnSPDYDQCz4OAgQAmwBNoU1XfyoxIqFuV2rY+VR6a1RWW0bEhp3PF8VbQsbNj4daAOa93oaRTLelaSGudvSpR7HrV+2IljlNa8lrno/I792XIg/N7g/N61+d2b0xvC6oePqFBLWPOZ4XduzIVq/O7t2d2RGT1/P5Vz5veEZLRGZKpCMnuCk1vC0qVhsbWBH+X9E8ihy5flxdnFSYOhuYc0waPqMuCCQBgxL8LFcB/hkN5BA3tpVfSfp/ctCqlNSSzc31GR/BLbdRURYGaAQcFLi/oZ9xVT/u+Sm/6aKX909uDXmor7f+6LE2+4aUmXlJGR3CmIiSrc2OmIiS9PShFti5ZuiGtZd3FxN/dTzpmsZjeOg4VgRCan5/v7e0dHR0FAEEQKisrMzMzxWf9OUYcxzU3N9+4cePKlSspKSlqtZoQUltbe/z48ZiYGJqm3W53VFTU2bNn5XI5x3FiT0q5XC5Snp/4jEZjYmLi06dPOY5DCIkZ/mfPnk1PT3c4HGVlZUePHq2urgYAjuMMBoNEIklJSRFZVUzJfq5l25uDrrux1WevjuaV4al5cHhB8OnwtPQ+vZ62Ka7mg+TWtSKHprevz1aErjTOKzpuL3i7GKDcGFwCYYCywlD7VPrrui8omJuiaosUR5IaPs7q+CC36/3cro9SpR9UDZ72wJRO6Mtr35XY8ru8rm3psk1J8n9+1fNmdoZmd28SSTxNtiG5OeRh1YZTif906+4Zs3VuOYeK46qweeTsg7zU0sZFF2YBeCQGlN/QiM0rYeU6JYwIBp5AnTzvQtza+Kq1yY3r06SR2bKwTFlIasvmVOnWTMXG1JbVRfKDo4ZaBkDtUD4bOpXRsaFs5NPHAyczW/ZkSoMzGj7Ok24uVuws7tya1rIqW/5RWvPqbHloWceazIbIdNnOrLa9Ra2fFbR+mCz9RXbPxvSGVRLZJxJFSIHi40xpWHZbcFFPeHbLF9mygxnta9Laf5ci+31e+6Hc9gNJsl9ltUcUN23Obf04Ux6eL99V0LIus+7XGQ1rchR70mWrMqXbsmSR2fLQ9OaIjNbg/O4NufJdaY0Hszsi0zr/Mbn137NaD2W27kuVfZzZtiVH/lmWfEdGW1h624Z0+bo0WXCaNDK1eVts65rE5g1n4lfdyzy76DUioAnjAgb+qO5FgOeWPfyfrZcTsP804wE48HWRER+yoM0oUO0/0R68Q3H8xMLTEjDMgcC4QJBPPL2WtDGpbE1+a3hae1hs+0dxHavTujely0LTWjdmtIVlyDemtgZlyIMz5MEJjatz27ZpvUoPGCt7vsutDx3WSASgadaT17s9tWlNdsOHBW1hGW3b0zp25HSE5LT+W5Z0dWlPhEQRlNUcktOyOU/xW0nX+5LmU1kdIWmtG7PaNuYqgrNaQ3Obdxe3H8hv3dE7md4yeSZT+fdZiqDMZ18WNIfktW9KbNpWqzrvIfysTZHTsiGnKTKrbmdBW0i+LDRDFpkiXZvd9XG2YmOqNDSzbUt2x5ZUaVhW6x/yFQfSWyPSZBvS2zaktgZlyiOy5DvSWjemtW5MbQ1KbwtJatqQ2LDxwdOg43G/ehR7w2CYBoEBAA5A54Vn/aZLWS2f3Gz8/E51fuOUyQ2sABwWOAAvAHBu4BkBQACMkIdwXsCA3sRfzxXxF3Ho+diP46vWJjWsS22JSG0MTpeGpMs2p0g3p7ZtSGle86zvjFWYcMFU/eDN2Ko1dyt/E9uwKqklKLF+TY48uKr3vEqXN2So6FvIl07fLun+LLZybUnPnq7xRMVUQYcup1uXo5ovaxm8kt6wIaEp4mnvl71qydBi3bCxonk8OrUhNLdta9dcYd9iaW7Hptja94p79/QtlrXNpuZ1BtWMnFOO53ZM5HRpapWaprbBxCblRcVUmtLQPmDIahm/kdr477HVf1/Uvrdl7L5qsXBM362Yy6gaOB9X+15K0+/ks/FK3RPZVEqnWtJniy/rP5rYsDG1dX2WIii1dV2KdENWe0RczQexz1ZfiF2VkHLGrpsG3k4oI/K4eMbJ0Q6BcyPWxXrtPOMkiEKsi2FsAXs3jKatDGNjWTvPO3neybJ2mrY63HPKpwXPvj1asi2yft++6bvR7rY28FgUQ+V3c7ZGVaxJaApKl4Vmt67Ja15d0Bya1hqWKg1Jl4Wmy0JTpBvS20LS24LiGz7KbYtcZAZpsBe3fXEl6//Mq92rt48LAFkde+uGzg9rcxWTue0LEpWzuGb4ckHTp7XK6EH94xFzSc+cpKYvKqsp7HHP7oGFOtlsXHrz1riaD/JkezrUqSpdWf3AvR5ddNeIpG0iKantt8lNq8paz3dNxqoWCxT6vAlbCQuwyLYm1/9jSvW6OuU91ULJhKFnyFzWMByT3fxpQvW6J6ov+wypHepU6VSU0ppeN3kpuTEyvn5tZseGzI4NGfLglJbgVGlIqjQktTUoTRac2BiUUB8S/WTDsdh/unDpOMXYEcCiA/XMUElPhz6/Vb79csmRW6Xl0mmTFYEAINAgUIiyItbj8IKVAwMPNgEE0TN923r2/HkOrW3LPfdoTWzlmoS6j5ObNifVBqe1BKfLNiW1hCS2rElpWtcweJcF16y7MKV2/aOaf0mXhyVLg5Nb/yO1ZXVZz+EF1wALVodgtBOdF+YGTEWJlXvy2/bTnJsBygQqA3Ry4LJQoxVdpx7Vbp5zyTzgsHEWB6jVnrqMpq05LZ/aQOcEe25b5I2i/6+y/7QLnFp2sKhrj3wmjQD2gt0As25wIuBpYrDwk2YwcsAavIPFss+z68PHjZU0aF0wZOb6WbCauamKzmNpdatHjKUssDTYWNBMI8mzkbOJ9eHJzUEZ7esTmz+Irf99UvOaO23rr9esOnX/dzGndk/EptrTsw05WUPZObq8rPmsNE12ujY3cyEnQ5ubqcvLWsjJmM4P2LtgU3npU3np0/kZs5IsdWH2rCRrOj9jMjetPzO9OyN+8MHNoS8+714d1LQ2pPnokcncDHluTELy1jsVq+/Uf5wqDc1rXFPQsCarPiRVGprcHCIyTnLL+tTWoNTWoLj6VWm14TrvMAtUVc/ljNqN7RNxLjTv4OYTmzbJJ1MQeBjgjKBW4zbpZHrfZCkDlBOsVjzLgM1OtFV9Vyq6j1OgcYD+cc/XsVX/XjN4zQtmJ2ilowlaoVgAo9YzltqyOUMaPrpYhWCRArMehhzQxxFYcIymPgttVN12kHE3jC56hiiYcxJdr1qSXBlaN3CBBRcL4AGNEeo7jY9Sm7c9rF6T2rouVbY6Xf5xunxdSsvGlJZg8R0lNGyIrwu+X7H+60f//WH8dYPLNO/iCqRTh+5Vb7n49JPrLWGXG77L6Y+rnk4o6ayTj7MAOicU1anyG4YKOuyZMlNC3UR5x7jWYhN1rLl3xg8FAjyBGlnO2YerHz1dHVezOrEhLKU+LLU5KLk5KL5xXULz6tSmkHpVDA3cpE0SV/FBQt2/5nRsi28Iim34l0LFvjFjCwfsuF5a1HS5vi/BRtQe0D3tuZvwLJJDvJMs1k/eKuw4qrWN0IJdNhmd3LrWhTweMMlGk4tbT1Z0nUquDipWHHKC2YqoDOn6ywV/U9b1rRMELT2W2rCpeTQJE5gw1+R17qgfuYkAe1h3dc/t7I69do+DJU75QGp9530nY3Cxxs6RrIrmawa7HgH0zxRnVocoZwoQwKKzv3nwTFHPkUzZnoT60ISGdckta1Ok65KaP05sWnujfs3VJ6uuPVideiCya8sfutdGSrduK9v/WUvkroZN2+pCtzZs2ua3+rBPaiO2B+zds5rwbVWbtj4L2yLd/HnFzj3lu7Y2Ba3rDtrQvCWsfMvGpu3bK3fvSTn3cXTx6tv165Kkocm1HyY0fvRAFpzcHJLYGJTcHJLcHJTQsC65ZX1yy/pHtatyGg4uuEZoYPtmqsf0UhZYGvR92qjomt+2jscJQFkYbf1YXEHP0brBhyyYaTDXdifk1B3unS1mwTNhqcqs3d2tTmGAl01GJTwN7prNp8DSMZsXUxbxtP9bAvyiez6pfmel6iINBis9Uql4lNxwsEed4uFg1jAjaTiltnbT4BmYf/pEFj0234kAODnwuzAAACAASURBVDCXth540vYdAqB4vmsiJa/9UI78s4T6TUlNwamt6+MbPkpsWpPcsj6pKTipKTipaUNyc1Bc3brYmuB7j9cfefDfHyXcWLAZStsG9l4pCDv7JPKGYvO1zogbvRF3pbuiGndfLkx8MqhmoKLXuetK2Y7rz3acK9x2VrL3Un5Mfv3E7DxgGoBn36p1+5V7gRABCHCYVLdmn4n5KKZi1aOqVXG1ISn1YcmN6xMa1j2qWxPf9FFKY7DIoWpLc+KTkAdPfyX+zEZX/iq/9SsbsjqRraT167NJf/Oo/Hc9MyUUuJSa8pTqMKdbp/N2JdSuO5X0f3eNlLGYVszER9f+emShhYXRWXdeWfvxxPJP7hb/U2nnfjs2mxhzjmz19aL/razzsA3ZNVRnYvUH7dNxNGdvHb97Ou+vkuo/YsFp9WjiK9YdS/9fphfbaJjvGc/pHE0VwIbAuejoc7IanVuGgB7SFOXUhfVNFdACrxhNv5LxNzeKfhdTtSaxMSihYUN8/frk5o3JTZvj68ISH6+5n/v+5Su/u7N1df7qTZL3V9cd/6IzL0GVlNyfmNQXn9AbF98bF98TG9cTG9cbF98flxCwd8CUsfHK2Pi+R3F+U8bG98clDGRmdKY9bL9xpvWz7c27Nj/Zu7k8dL38w+Dk1WvvHf63e5JVdxqCElvCEqs/SGj86IEsJKEhKL5+Q2JjUGJjUFzdx4mN6xMb18dUf5BTf2DePsICsgoTFjyscU7Kx/PTG4Jvlf9D91wSAtOApvR2yb9eKf576WSMAEg5V/qwdPUNyf+R17TXAw4aFrLqdkpk2xlg9XR3XU+iVdBYyUhG4647xf8jo/EAwaDzjOTI9vZoShHg3sm023m/vVz8/xS37OPArXP2PFN8y8ACArB4Zy3eKb27n8XAgvNpx5Ey6XEvtmtsHQlP/+FMxj9GV66Kr1+b3ByU1BQcW7suoT40oX5TQkNQQsOGhIZ1iY3rH9WsfVi14U7p2sP3/9vVm98uOs1dasv1/M7P77duvS7beKFl683O86n1j4rl+RWynr5JrxfmFlyFlV2xec2pkta0sp6CurHuMRPNIAAWgGfeqtn8X8Sh30V/GP34g5jKDx5VByVUb0isXxtfv/5h7ceP6j9IqFtdo7xJgc3GzBQ2f3W7+J9jnv1LYtPqh8/ez208bKBHnZyxpO2zq3n/a1r9ez2zEhqoQX15YvUqijZ5YDJPEXG14L+OaWoIQMdE9qWCX2RUbuvXZDnIKAuWQV3Zoye/ypOFu8Fr442ZDRvPpvzvpe2H3GAyod70+jWds7EEHNKh1Iv5f5/Tup0Bt4WazKgPPpPzf6ltNW4y1abK7xwuRUAZPcNdE0mDmmz59HmVpqBMfiitZs3oYg1NQDGRGVPx/z6o+o+4+tVJTRsSG4PiaoMeVQc9qtoYWx36sCn0evnqLy7/8+fbf3932ydRG9dmH/tUkZ9qseo9lJ36/9l7r+gosmxt8Ok+z6z7Nmtm/evOWv3f23Prli9A3huEhBFICJA3eIQQ8ukzpZT33qa80jt5ARJWgPAeBMLJe6XP8HseAlQqStBd3dVdRbW+9T1kREaczIyM88Xe5+yzt3lFp19Y0c0vr8wtr8yt6Ob1i3Mb/ANQtzCrW5hd3TStLFoNK5jZgM+9fNkpHWEkXdgX2BOwo3XXthoXN4mDT96x4ISkzZw2x8zerVVnd4p63Jt73Br6/Mr6vUv7vMoHtpYPeJf0epQPeJYPeBZ0OjX0+r/VPdTh5q4bGdW9HiVq33JNcJHaTyjbfONVIwHzjyY7ctVfZXX+75E31QTA8NPWAql9luz/bB+KWEbNemq+pnNvqdr+2dtbGBhezUwjAPemFLlym/I+99bziQAwrr9ee3bXpWdSM0pcvJOTLf7P/P7/WzJ0AAfj28VbmosMK8wtm3T3XsmHnxaMvOVfuNc4eLeisX9X5zWWFfBx3d3Krk2FPTb1l72qBj1K+9xLe7eW9W2vOrO7on93Wb93+YB3Wb9X+YB3Ubd7YefWTKnn0bz/zshKnF2etAI8X4S6nmfxxecOZfZF8LsFtb1dV54trGCAk6RBh+pXrBbciFCYGZ9dwK48nL98d2p20QoUkBSKf0bJJf8aDe0+35iU75SvcCzQOBR1eZf3eJT3uZf2eRX3epcMOBd323WcP/5i4RoO+L03XS3nDpZod7RdOqa6we6+Kbw31YKA9drTmnKlt2To+Julu2bQnbmbX6T81mQw6ojZhsED3Kb/df+lnAK49qwlXfZlhWxnveLkmasaCwnL+Mu6ftf6fu8ldGUF1WuHeaVS/wuPisywNGm4X6P1v/iwigLL+bsSTuu3rReirQTM6V6Jzvhxxf89OnNFT42fv9t08Z7YRCJPJ69Wqf0Ti/+vCuV+ySArX+ySL/1udH7QDDB4r6ZI9XVZv0dJr0dJr2dp79ayPp+yPp/y/m3lA1s5Zz04/d5RBfbx/NDOtroOZmLxzu2iXaE3b994+XpsYmr85euxsVcvxl69eD42+uLl82djLzb4B+DTF8+fjb0YfTlG8/mrly/fvnkzOXE9K68r8vBgWNSVE8c6gvakb7HN2767Lye/qjnzRLozt8UpX7u1tNevpt+9oce9oduvtHdrcY8HraTFPe6lfZ6lfe55GoeaLs8lbMwCaPOZQ7yOf8/V/FfNmZ1lfduzFU6XH4lMyMydMXmRxjFL/UX/vUwzZpoxPZMOJldrfa8+E6EAE/p7dd07ctu/O3u1kIAlHGAZnVVcSc6Rf1fW49F88QSOWcZ1t6oGfM8/Lsco8tX0RfG52KJut/N3s80ITM6PdV4QGLCJBcN415VkbsWfc9rsG3uPNPaF50u/773FtwA8m3xS2LEjV7O54qxbcY9rcY97xYBvWZ9PWZ9vYadXae/W0j6vkl6Psn6vwk6PAq23UOJxOOe/hRmndbpJxGpcXDLMLhOX74wXNw1wSpVBAnWEQFynvf5m3mTFqWWT6fXcws3nrxHjytPX85l1vcf4zT0XR01WOnTwj2WH0hqaJ3fIV9sXdnpV9XuW9boUdXkW9/iWn3PL1/xQqtw1cLNOZwALmCetI3fnFOPo7SV4c+OVtH3woBGhcDC+nr/xav4JCvBq4Wmt5qBo0AG1kMvISnVvGLfpfz14006A5dpoXbbmi7H5vudznS/nh8xgeLVwv0DiXKJ0ntC9QgGmTfefzw8a4DEK2POpR7WqQyPPlBTA5cftyY3/XnfOBwdYMS1XdDowJf/Hy9lxC7ztvHW8vifo5eJdBCxzxPDNt5Wz6GM9vJBeOZje8uW9yS4rYEOPKgsUPxR1eZf2+pX0+BZ1eRd3e5X1e5X0OeVpt5RLXcok7scY33Kzj46/fjJx/eIQL/3yMd7k8xeUyQwECSgGFitYETBbwGxBcWyDfwAiGIriGEbgGIEjGGpFEXrP66La/qNxZ7K5t/tbu2vzKqKjOvOKzSsrssHm00L3XJFzuconv2trzoBr7hmXgoFtJT3exd1epX1eJb2eRd1uJb0eJb0euWr7SrX3nPWJGazyS4wC9eZCrWNpn1dh77eZ0u+vjTZQYLz7oqdQsTVD/j9NZ6KnFm+jgEwa7o/Od5lh2kjgg3cr6vpcKjT25e3eUyuDOKw8nOgsVniV9W4u7rJvuRoCYJkxPS/WeokvHtNblyiAWeP49anWJeQOQcH40uVKhcvNZ00YrCAwOjrV82jqshVmHy2054g3Ka+dssDC2PKVyi7vHJVdWb9XSa9nWZ9PWb93vta5qMeptN+5pMe7pNezpNejtM+zQOuer/HKELsfzvnvvNzUlbkXgK4gSzPL05MrS4aXk4uD1x4ypC8js7U5redezhtxAAxQHW5eJhEAcsoM3KbLe5KblFemUep98eDPB5+oBYLRNSx7LjTFZ9pntdnlKpwKlFuLtK7rUnsz99ob8Th6ewlevrHevDTW0HL+eKFqe+eNypfmi0tw/zUydPWtqOHMkayOrVX9u+7Oi0emK2v7I3I6AgaflTw1qDvvpBfIA6+9Vr9Fh5fgxoOljsZzxzJavYo1vrKbUaMrN+fh+SvzyMOFs8/0/ZfGGtsvsOVX+S8satWdWH7bN9UDux4sN9+aaavujeA2f3v1leKZoavrriCjZVt1b9i1ieq32MUleDID54de5JVq9pWoQs49LX5m1Aw8zs1s21Hc6bYu86Q+2WKX0zlbeIXHn429MBqNkxNvl2YXwbDwrKx6qrYZJl8hYEIAJ0hA4V0h5fdh+CQFJAkETn5O98QG4H1IKGAEWCigQE8HM+JgMrzoq8iTxMY9lSqmxp5evDdy6+lDIOH8dWlKnkd6i32e2jNX7VnQ6VKgdipR+xZp3ddl3UD4pbcZN+fz24ejssRuBSrPyj6/ki5PYatP14OkeyslA6PJZV07siTOxVqvmrPbb42ffWm6OgMjT/Qq7R1WWWdAvtKzpNM7R+rR+SD21mKWdCQmW+JeoNxa0bOrYXDfBD5y8UV9VdehXMmujisn7i+1TMPVSfz2S/PwmPns4GhhiTqoQL6n537mc+PABH5zGs4/MYjl1xPzpftlw7xnhq6rb2sLZHsLtO7rsqTTp6TTu0jrXtzplqd0zlO4Z7S5Hs76z4xM5uzcWwCSogDHwGJBdDrd0tICnX1xamrKaDTi+JpKISQ2sUJymi7vYUlaLk8a6BoRxLuaj/QSZHoNyKfXXPx8UcbaGuB0BjL6NYZh9Gv6gNUT6c3VRui3Vk//oFmCIFZ3flJDSSCB+pmGrn9PZHRsylO4lnbuLOsMKFL75cjthdIvMmT/L7/ZqVC1vbwrsESzp0Dply11zZHbl/W6lXXtrurfnq9yzJLal3fvrOwNzFd65sjtChQ7ilS7ijXbC9XeOTLnTIlNltQmR2GTJ/Mr69pdpPYrVHtX9PqWdLnnKuyLOp1q+oNLO/3zFB4l2h31Z8OqeoILFDsKVT5l2v1VvfsK1R5C8eYcuV2RZmupZm9lV2RZ1+4ijWeuwj5H7lis8a3q21vesz1f5fix35Ur2ZrV4Xw6Z0tGadybyQmSJHUrS6gJefL8Zk8Ka2BX+LOCUsOLhwAIUEASQAAgBI4R78KE6Wv9Oc0yboCGGdfjmI5WUjMJKAUUielW5s71atNSc/z8O7NzrXOzOJCLBh2FkhdvyFPyPARNDjkKj2yle0GnS6HGpVTjV6TxXJ+qXRU9AeXd/oUqnwKVV7HWq7jTI1/lUqDYUdETUNUXUNq5vUiztUjjWaB2zZTYFcgDi1V7S7UBRWq/XLlbjty+QGNX2uOYp/AoUHlV9O4oVHsXqLxKu3wLVF4FKq+KruDyrsBCtUeW1CZbZlus9ano2l/RGVGiOlDetbe0a1ue0iFbZlug8izrDKzsCi/R7M6Vu2VKbPKVbqWd/qXaPcUa3+JOtwKt57os1m4t1noVad2LOz3yFK65cvf0VpdDwv9KFzJoDQUAkgAUxc1ms8lkWF5eXl5eNplMdGIEWoZIkgQKnzZAZvuVA+xW8YVXOgJICigS/XkGboIgPpEL8efJFlb3fPDW39Ad6RY+kM5VfFxDKZQigKSg50LLKaFdZqttjtwxT761UO2xLjOl32eIv+e3fs9t/p7b/G2G+Ps81eaSHts8zf/w2v/Ebf3/BO1fp7f/kKd0KO1xzVfbC9q+T+/4Kl/zXXG3XbZ8i6Dt+2z5pqKuLULpl9zW/2I1/aeg/csCjV1Zr1txl3OO3I7f+j23+Vtey7eCtu/TO77Llm8p1DoWau05Td8I211KNLsLlNvYjd9ymr7OU7gXKndmSjcxRX8WSr8u73co0G7itX7BEn3JEn3DEn2Z3vFVgfb7oi7bTOkmbvM3Qsl3pb12BSr3dZkj9s7qcI7P3pxZHj89PwcAGGoFAnRgnBo4MxwT1x8Qcj8n13zzFlitKIAeSDMACkAAYChF4EBr6wY+M1jBRJELtPlJAGAkzM9ODp3tCj7cvC+yhy+cGRkBixkokqIogqAu3VSk5HnxRHZZMrcshXtBp2uhxqVE7fux/pIn35re6sRvdsiVuxdrvQrUrvkql0KNS7Fmu7DdhSOyTW9zKFC5l3R5FmrccuT2Qsk3vNYvWI3/xW35nyzZDwUau0KtY77avlDtld5mL2i1y5I4F6g8C9Ve2VKXXLkbq/GLDPG3BdotRV1bcpTf8tv+hyX6ktnwNafpG27LV5nSbwu0m/I1P6R3fMVp/pLX8h2v5Vte6xfZim+Ku+1y5Hbsxq/5bV8VdW3J13isy0K1d6Haq1DtUaR1z5W75Mjc+M0uMen/mS5kzMy+WS1/S6+XJwiMxtr83+/EiCLHFxFhw0A4o1p+9oEZpc/70W+jjcG/Jo8X9TPAzyxQiqJ+UUqwVVv1E8d8fDyURCkCCBK6zzfHpdsLm+2yJI45Uq98pce6LNb4Fmt9irU+xRrfYo1vkdqvSLWrULmzpMc+W74pX21PP68KVF7FWp/MDtdCtVeewrVQ41agds2VuxWqvUo6vfNVLoUa50KNc6HGpUDtmq/0yFN45Mm98hXeJZ0+BSrPIs3WYq1PntwrX+FTpPbLk28r1Drmyl0K1d4FKk+heHOeyq6kyz1b6lqkdRGKt+SrXMp7thWqPfKVbiWd3gVq19KubflKt1yFU5HWvUjjnSNzzZI40s7Iusxs8xC2OcZmfJdRGkdrKI4hgANQGOgWJ3q1F5MTlDsCriSyjU+e6wEsQCEAKABGlz2gACigfn+pMzbwF0ACAYADne4SSNL8vE/be/iYYkfEObZw5vYtoBBArZTJDCRQAJduqpJzPTn1NplS1yyFe77WJU/pWCD3+Vh/KVR70zJUpPEsVHvkKZ1pDS1Ue+cpPPIU7gUq90K1R77KpVDjVtrtUaR1KVA7F6hdC9UexdqtxVqfAuXWXJlnvtKtWOtV2rW1QOWeI3POlbvkK92KNJ75KsccuX2uwqlI41nS6V2o9ihQuRdq3ArUznSny1O45ilcC9Su73bS30Tjlq90y1d6rG7mKN3XZZ7ca/V7ZktdssRuvEbXKP6fPtDQ1auJ4ziO4+sUN6TIiQVLreoqr1x55vIjowldzc1Ki93a/LZ/Q0bEtR49fTr1LvcauVZtVzfhp3brqr38c3f+L/vyFIlSOBAkdA+1nhTYpTfaCDvsMzs8s6Wu61Nmly2zzVHY5CptaU85S+IibHfLEntkiT1yZZ65Ms/MDtfMDtdsiWe2xDNX5l2o2p4n8xO2ewjb3XKkXjnSrVkdW7PFPtlin2yJd7bEO0vsldnhntnhniX2yBB/nSX7IVu+KUdhk6twyJE7ZkkcsySOuXL3TIlNlmxzrsI+V+6Wr/TMV7rlKm1z5S55Cvc8uVe2xDuz3TtX5pOv8M6WuhYot2VLvIVtXllir1yZd67Mmz7gY78rvdk1vcX+KO8rQXHs1Nws0BqKUYTebLboDMvjk5f6VSdPyuPiF+/cIQkEcBQoHMMQnCToqjs48jnVAd0ADQrBAABwABMBOA6I7plWJt4XPJxVunzv3rJp/q1+GiOsgANgBAVwYUSRmOXJrrMVStyEMvccpXOmxC6r3f1j9xX9hM6Vu2VLXWjty5E5Z0kcc2SueQr3fKVHrtwtR+acLXXKljplSRyzxF450q25Mp9siXdmh7uw3S1b4pkn35opdspXeuQp3LOlLlkS51y5W77SI1vqkit3yRQ7ZYndcmU+OZJtmR2e2RL3QrV3ptgpV+6eJ99Kd7F8hU+u3F3Y4Zgj9crs8Mzs8MyRbs2Veb/vtj5Cicu6zBJ7ZIndsiQuOTJXYYeTsN2N0+ASyf3ftIZSFEFRP9HQtWOOawEEbsDg0TQ18tw0sYiTBABFUICtpj1cWVlZWFgwGAzwN2no2qKKq6r3wUDBWrv1w9tgzSkfs0Y/4csTqxoay7fjN2wRtNqlt7oJWpzXpbDDPqPdTtC2md+6id9CH+yU3uqS2bYtW+yT2eGa0e6Q0W6X3mab3mafKXbiNW8WtrsIWlwFLc6ZYid+yxa2aLOw3SOj1Su9xSO91S291Smj3VHYYS8U22Z0bOa1fCcUbxG0bea3bMmSOAo7HAWt9pliZ67Ihdu0hdfybXr7low2V67IhSOyFYq3pLdvyRQ7ZLQ7Cloc01tdBC2O3CYbXrMtp/EHQYtjRpt7Rtu7r5TR7ihocU1vdVmXPJFTeov9Ee6Xq3YoUASQgOHkklFvNCxZ5iYeDA+OPrgOs5OT2t6J3rMwMQk4AoDjQGIUENiGhn6GeDc/iJkePZ1U95ivjRCjj1+f6x+9PKxfnlskjZPIEgY4kECiGIaTQ9cUCZke7DrbDLGrQOySIbHjt24SNLkIWhzXZXqbA6/Zltdsm97mIGi154hsOSJbQYujoNVe2OGU0e7IbbLhNG6hD+Y22r2/RZ0Erfb8Flt+yxZBq01Gh42g1Z7fYscWbaZP5LfY8VvsOI1bMjpseM2bec22GW3OGW2u/GYHXrOtoNVe0GrDa7bht9hltDkL210Erfa8Zht+yxah2Daj3ZHud4JWG17LD/wWW0GLM6/VcV3SvZ7fYpfe5sBrsuc3u7BqXSI4/7lWQykSKIpWqJ+48GtLLQGB6jG48QY5+3BlbIHCKQCKAOpdUdiZmZm+vj6xWHzmzJk3b978DX/jau7H1c1fvcDMJ+aUSCCApKB7qD2Wb8er38xt2sJrcmY3OKxLVq0bTWaNO6PaJa3KOa3KmVHtxKh2YdQ4MGq3MOt/YNZ/z6z/gVlnx6ixZzZ8nVazOaXSllVvz2vezGz4MqX6G1adI7POjllnx6q3ZdZtTqv9LrXmm9Sab9Jqv+bUe3EbvFm1HmlVrswad0a1W2qlE6PahSOyZdY6MGuc2fXO7AY7Zv0PjFpbRo0Du8GGWbeZUbuJVb+FVb+FUbuFWWfHbnBg1H/FrLNh1TmxGxzYou9Zoq8Ydd+nVdt97Hdx6h0yWh2OcL8Ulp16p6FA0p6KhQKjFTMvm5f0OitghldPO4+eOncofqJFAm9fA2kygwWh5fPzWgC8AQDAKBIxWV4+u1dcogiOullWCfMzQOEG08rs0ozeYqCABJICkqIArCStoV6sWjt+mwu7xZ7T8gOr4TtugyO7we4jtGE32HAbHXhNjqx6+9TqLYxaW67IhVW/hdtox2tyZNXbMmptWfX23EYnXqMro+57Zv0PzPof2KLN3CYbWmHZos0ckT1HZM+o3cJvduI2OiRXfs+ss2HV23JEtozaTanV3zNqN3FEthyRPbvBgVVvz2tyZNbZpNX8wKrfwqzbnFr9PbPOht/sxBJ9xRHZMmrskyu/Z9R/JWj7Pr3Nnt3gwBTZrUuOyJHdYEd/W1a9LVfkwqxxjuD8+ee+PK2ha+e4f2LxkcjMCpYvvnIwUyq/8GLZAiSBAVgAYHp6urGxsaqqqqOjo6GhobGxkS5Z+DHQQ5/0wOtaS9NisVy5cmVmZuaDSve0nq4OL9CnW61W6n2JxtW3MAy7d+/e27dv6ULf8D5DI/36r9LQEzxbbt0mTuNmToMzo9Z2XaZW2aZV2zNrnJk1roxqJ0aNPbNuM6thE7t2a2qlC7PGmVXnmFxhk1LhzKzallLmw6jdxKh2YlZ7MardUqp+SK35llnrwKz2YtTYp1bZplTaplbZMWucWbUuzBrntCrHtCpXWjSZNc6MGgdmrSOz1oFRY89s+DK53Cmt3J9R6ZNS/TVT9N8ckWNa+XZmjXtKhSOj2olZ65hSaZtW5cyu9UqtcGfVb0mrckytcGdUuzFqt6RUf5NaZcuq8U6rsVmX3AZHYZvjUd5XwrJTk7Mz78rhEgBmCgEwACAWwI0UAIm+eTFWX3/OL6Qz5ODd5mbL0iQCiAVQAPKzChneAACAFWDi8YPhrGyV767+6EPjg30kYkatxApiBCABJ+mceCRJIhSBAtAayqyx5bY4pTXYMkTfMOq+4dQ7MGq3fIzMOpu0GpuUShtmrQOv0Y3T4JJa6cCss6Gf96w6R3a9E6vOiVnryKxx5jRuYTfYMGq3pNXYpFbZ0T0irco1tcqWVeeYUmnDqLGn+w6nwZlZ65Ba6cKscWXXuTJrHVOr7FIqHBlV7qwa75RyF0a1G6vWhV3vzKpzYlQ7pVW5pla4Mut/SK2yS61wZde5c0S2abXfplZvYVS7pdXbrEtmrQOzzi6tZjOzbnNazWZ2vROj2iWC82dBRtq646GrirM6RUMn7QbCsmyB9JaLAYxmzc05MwBF4kAaSZI8d+5cbGwsXc379u3bLBZrcHDwE38ZSZIIgpjNZrPZjCDIarmwa9eunTx5Ui6X0+nA4b1jjqKo2Wy2Wq30JoZhFotlaWkJQRCCICwWC62nBEHo9frY2FiRSESX+4afhlJ9VEMxCgjAMTB0nWs+meYfz/FhZG9LyXRPyfb4lyIrM4CTdeDY6e05RUkTM88owFGMWGtVrgY90M/AG7KGnojo677BTxkCfO7lEmBLQAEKOJAUAIlQQMA7XSUxfENcf3NgCAAJGIAVgII5AB0AmHBU23k5hSkKDJGlMl9eHyZIK0JaCeKj43H9T0sOpbse5TqfFNidyvg6XvjVMe53sQLnY8LNf0iezLQ5mWlzTPDDyazNcdlbTuVsPpn1Q1jKn7hc/uLiMu3CA71U5/0c0cf+gHEdyWm8FJDW0XZxwviutgqC43h9fX1SUtLS0hLdFIPByMvLMxqNq2d+MAs0Ozs7ODio1WoHBgb6+/tfvnwJADMzM+Hh4f/xH/+RkJBw5swZWkYJgnj69OnFixcVCkV/f//o6ChFUTqd7vz584GBgf39/UtLS01NTe3t7TiOz8zMdHV1/fu//3tSUlJLSwtd0xvWFFn4qIbSWVEthGHgooIlPHSavSeevT2O5X2SufNfinEpuxKZ+xPSQivrhK/GH1GA09VgPhiBpv0CFEVBNz0qFUvDomXRh80PnqBC6QAAIABJREFUbgFYKMApAsyAoLSM4kCYCSABKBLw3129oH81WIGOtwYwYkAADqQZMwGBP6mva44+1JnCnr1wEV+cQ3ELQqLkx/MJDQ0PnoiNizuRlHA0/lhE2KmjkfHHj8ceiYs9HP+H5ImY+LjDp08eij91JOHEwdjYQycTTiQcjznOZnMXFpZ+iYbiU0bIarsSwmqVDr004IADEBRKkuTJkyePHj369u1bANDpdCdPnjxx4sTExAR92tqoI4qi6Bo2IpFoeHj4yZMn2dnZ58+fJ0lycXGRy+U6OTmVlZXdvXt31RlXqVTXrl27fv16QkLCiRMn5ubmjEbj/fv3/+3f/o3L5Y6NjYlEouLiYp1OZ7Vah4aG/vSnPxUXF589e5YeEwD4sRTupzQUIXArYXn84n7ngFSqrW1VlIg1ZR0K0b8UJcoqZaeo94z07sNhvWmJApKeb/x5uAOtoSajfn7q7dVuzQONCt68QW7cWHl4FyzLFrCigJtRhILVdPcEkBt26G8MHAAjcBxIBDCgEJicnL50iXgzprt161Z7x+uzg9TUrHlxSWcyfnpq8LL2BTO6oZF7c6BsWpP7VJP/QFs0qsx/oc4Z+0NSmTnaVzyhzX0p4T9QZ48OVk6ps58KgmVpacz5+cXVy0KS+F/SUPLNIpJVPxCVVqM++9CC0p0DA4CDBw8ePHiQrqSNIMjp06dDQkIWFhYAgI6Uos+nu+HIyIi/vz+TyXz+/LnFYpmenp6bm6PFTi6XR0VF3b59e+2nGgyGsbExBEG4XO4XX3zx6NEjullnZ+fMzEy6ztji4iJd8AYAHBwcbt26BWtmpVYjTz8e2wRAkEACZTAZ5xZmZ+Ym3068mpoZH5+Y+pfi2/Gxqem3yyvzVnogDEg6TPfniyJod35+3rCEokuYEXAzvHndk5amjY+3nusHqx4ohCTeVYLEcJIkcaA2NPS3BgZgIQnATWBBFt+M1TV2H469nJcLZjOsrBDLy5alZbPRhFGAA2Afl4JLioeJe8sb0+49kcJ4N7zUwFMFPFXBiz8oxxQw0QVjCngmISa6YLoPzhW8SvSsTElJm5tbWL0sf42Gji9aGtTXhBXqoctPzCYMgMSBBIDy8vL4+PiZmRkAMJvNTCazuLiY9uVXYzzXNnT//v3y8vL09PTk5OTHjx+vzghJJBI3N7erV6/C+wl6DMP6+/s7Ojqmpqbq6+vt7OxGR0fpg+3s7ORyOf0Rq/FVJEl+8803PT09azv+6ruf0lCSAgwndXrz0rJxYVH/9u3c69cz01Pz/1KcGJ9ZWFjS6QwWC7JGN3/881ZjdN/Hu4HRghtJCqGwlclXvTmZrf6B9w7Gzg+dh6kJwDAA0kCiVgAESAux4cv/xqBQAAQAQbC3zx/W1ar2hGhCD95vbqQwlKIIs9ViRREAAAoQ4lMV1K6fvXVwV1rszqrqxFu9RbPnKue6it/0Vc6cLRv7Q3Kw4tWZ0hdny8aGGybPV71qZV7k7ROF/MD4pRpKkrgehyfTcPuFZWaJBBIoisAABYDz588nJiY+ePAAAJ48ecJms+mS2nq9fnl5GX7qC9IT5Uaj8cKFC9nZ2T4+PgqFAkVRgiCUSqWDg8P58+cBwGq1AsDLly89PDy6u7sBQKlUenh43Lx5k25n06ZNGo1mzdcjaa389ttvFQoFSZImk4lu5K+IsX83nAH0akWgAEggcSBw9F+KJA5AAUUAgZFAAYkTiMVKET8Gaqyq57trSgJhwQAHE2LFAEUm3twvKuvxOyA/dPx2TQMszAOFW4A0A1iB/Lxyzf4hsQAU4CQ1cv+xIL9rd2hvyKE3Ki1gepIkMaCMFIbRXQEHAEA+vtT66tDtE2GCwzuKkwIlWYf6KpIuliVeqEi7Wplw7Q/Jsvjh8tNXKxKuVadczzkykLin5YRvbYRz4S/25SlUj8HN18jQ/ZXX8xRFAUW9y94zPj5eUlLS2Nj46NEjhUJRX19P+/UKhaK4uHh8fJxugI5kunXrllwupwdPDQbDtm3bqqqq6LKy165di46OViqVU1NTBoOBIIjr1697enqeP3/eZDK1t7d/++23jY2N9IT+n//85+Li4rGxsdWQUgDAcTwkJEQkEk1MTLx69WpxcfH9ryPh07FNayNjV2tYvr8i/zKk4EOSa4M2PlzkgJEGAAwIkkJJgqCAJBcePhwsq2gN2C+Pizc+egAEigCBAIURKPwO66f/i8EAQJgMT5s65P7BA4dOvurs0k1NEBRJoggBJEL7lQQOBAkUaSXRj7UzpL0ZH5afFtbODdVygpVZBztzjvRlHxnMPvTHpDBmMPfoJWHMWW5YD+OAmhWiZQZrjmyt+8VzShQyrcMKOq4cTpeozr9YNgFBYAAWeqjx6dOnMpmspaVFLBbT7rbVaq2qqkpKSqLtU3i/eGlqakqlUjU3N0ul0u7ubrVa/fr1a/qAlZUVuVze3t5++/Ztk8lEN9LZ2SmXyy9cuHDp0qXU1NRz584tLi5evXo1MDAwNTW1paWFDumnBwRQFL13715jY+OlS5fosQV4b9LCJzUUJ0hk9ff/uMrq55ryhyZF4hT9LKVHN8h3MvrzlWG0klphBQcTECjgQBrxlRX9Mm4aXZl4lpM/nJODPn9mWpxb0C3SFxiQDQ39jbE8NY8uLc1cvDAkEDxSSvTmmRnDMrmEAEFSQJoplKD9L6sVSAyFj2roSO+Tk3uzU/c2CcPUvKCOjDC5MELD2qcWhMr+mIxQ8MJkrAMd3FAxP1zKC+9g7G+Kcc/9xbFNlGXRAulNFwKTGzXXZqzvTFfjav8yGo3nzp2jrU5a0XQ6HT07/8F4qMFgWF5ePnfu3NDQEL3HYnmnxSiKPnjwYHZ2FtbMp1+5cuXevXsAMD09TZ8+NDQ0Ojo6MjJy5swZOp5/7erSGzduzMzMrA2uovEJDd3A3wt65s5isRgMhjeTE0AhxJvHQ9mcyzwG3LkBBKIHwIHEaW2mSCBIwHDAsc8rj/fvCmvXNa/1D8wAQAJgJAEYSugB14Nh/m63dPgQY0beRSzN60nj+MrszNysRW+GXz5MfbX//sl9mQmBdbxQtSBUmRmlSI9UCiI1GYcUwsNadoicc0CbFX02M6KPd0CdFdGVF9PDPyDPielOj1bzIpXCo92cGBX7oDojSpFzuJsbouKHdmfHnBWEd/HDNIJwNT+qQxjTIwgbSo8Yyjl8NiNGww3VZkZf5Eao0mO6ueHdvPBeQWQ/P7I342CPIFqbEdnFDVFlxfQKwrs4wWphVHd6pEoQIcuM7kuP6BRGdXJDZZnRXYLwrqzowczIofTw3ozIHkG4OjNGm3+sTxjVyQ3RZET0CSP7uSEaQbhaGK3hhysyIrVZMf380O70SJUgXJ0R2SUI1/JClbwwWXJg/UHPbBaDuzC3/E42KaAI8p3z+t4oIXGCxIk1Xh2yggKn8YJfQr1sZNb0btrH8hcv+O8HGxr6D8HavC8oiloslnlAEdy0dOfmJQ63OzjytiBr8eowUAjQIRB0MBn2LvPX+xTOG/h7sSqjegDAAAwIAEaACeYnpsSSs0fjxMFH7rdIzPPTCKA63GxBrH9hGvkjuNp/PzZIuFZDBREKfoSaGykVRCkzojt5YZ2s/cr0iO7s6C5+iCxtr0wQ3sUL13DD1LxINSdcyY5UcKNVvPCO9Eg5P5ymgh+uEEZrhNEaQVQ7O1jCDe7kh3VyQiTcsPb0SJUwciAjRsOPVAoiNVmHejKiO9khck6YjBsu54ep+GGqzOgeYVQ3+4CCG6JIj1RyQiT8cAU3VJYZo+WHKwQRSnawJD1Cww9T8cMVWQe1gggFc387N1SaEaVKj1SmR6oEEUpuqJQXJhNGq4XRakGEgh8uF0QoBRFKQbg6PaJTEK7lhii4odLkwPoYjyw2k7c4v7JGIqkPX/xkWIwCgnw5bc1oGo4RaqQXxnUo/dbn5J9taOivjLWptOD9pBOO43rASSDAaNINXrmYxG/zD76QkEacOUearCSKERRpAdJEayrAho//92DdhI9WgHfTG4BZZ9++aRcPhh7p89l7u0m8cOce4FYCcCuBoCj6wXj3X4nhvnuxQcLTAbXcEBU/RCGMlPPD5bxwlSBKzg6VcEIV/AgtN0zJDZWxglsS91Qf21GTtL8tdkdt0t4WQZSKF64SRnVyguWCKDk3XCKIlvKjOniR4owYZUaMhh+hzoiQcPZ3pIcphJFyXmhzRmR7VpSaHaTghEgFEQpBhIwb1s6PEPPCJKwDHfxwRUaMhhUsYx6Q8iOVjAOtp/yrUvc1C6KUvAg5O1SaHq0WRKl4EQpOmFh4SMaPaudFigXRUl6EnBsu40cqeBFybkSHIFrKj5LwoyScMCk7VMINl7FDJeywNkG0lJZ4QbiaH6bhBMs5IZKkgJpo90xGKntuZpHEgcQpIIHAcIoggaRInHgnoyT1Ls8AQRIYDgS8ncUzG85HpIpk/Y8tKAAJH18O9nvEhob++libl3B1D1gJ0opTAKjZMn795vmMXOXu/Rf8D5inpgHBgSStQBoATHQg94Yr/7eCzvf789XZgAMOYAISJYyPWsVa//C+oKiHpcXmmWmwmABwgsJRHHkfePiLP3e4796JvRnxe2o4wUpesDw9XMoLk3HDlOmRSlaIJG1/e3q0OiNGeXpPVeK+itJkTUvh+db8C83ZF2s5Z/lRHcy9rZnhKk6QTBCp4YTRKiblhsu44XJ2iJIf3pMepsoIV2eEK4WR8swoGT+0PS2gJXFHM2efPD1MlRGuYAY1C8IkOTFafogiO6qHGy5hh0qZB6Ts0I6qtIGWjEu5x7XMA1JBZCcrWMEL60yP7OOFa/iRyoyDcnZYCzu0gxMm44Wr0iN70iN7uGFKVoiEGy7hhksEUSpBpIYf3sUL6+SFq3gRCm64hBcm44XJ+WEqXqiSHSxhB7cn7K6KcktPS+XMz723Q9e7khQFP5lKoMhlCzT33GYVS88NP8ExACA/sab2d4gNDf0H4icpalDATfiC2TqHoktG/duRa9dycy4eOUbMTMPsHOhNQOAokAYgcNjQ0L8dHzy6fsydTuCAmBHzMhiWplTdZ46l3K6sWZp+smhYNlmMGGrFMYQ+828bRrnSe/fE3oxTu6vZBxTcAzJBmIQTImGHyJn7O1gHxIIolSBKfjqw6lRQcXPOwJsRM+jBMgFggKmbWEmiKjWgVhiuSA9RJu+VpgTJ0g7IWKFKbngnK0SbGqTihHanBSo4wcq0oDZ2sCQ9UpUc0Mzc3yFiXS89cfHUtgbWXmlWVCcvWM4OkiXtbGEGyljhzfxoJTNEkrSv7ppiAuagu2o0yr2MGaxJ3adM269iHFAn75UyguXcCBUnXM6L1HLCtIwD6qRAWWKAlHFAzQ3v5EVqmSGKxABxSpCCFaJlHFCn7VexQzWccDU3VMoJkfBClZxgOeuAmLm/9fTuikhXQWoK+0cNpeCD2hnvUtdTa5SUMsybzPemjbfGdeNLRpywAphwUvf33AP/ZGxo6D8Qa536d2FiJKAIpdMbZ6feTD+7i7x8gE+ODTeKHrZ0wMQ04BhKIQQAEBu+/N+LDz16Ur9ybfhGWfXs0AWYnp67f3dq7OkSujRn1ptRhHYzKQCczpuL/2I76Erv3eOB6ad2V7P2yzn7pfxQMTtYzAqWsYLEaXs70iNVSXvrD23PasodWHkBYIaXI5PXOu+Pj+judE/knexICqpKCqg7sa08zr/q1O76Y7418f5tjANqZrAqZV/HUd+KY75VsTurTuwoj/OvO+XfmBDY2JZ1bfE+qIsfRbnnxO2sE8Z0xe9qjN1ec9yvNG5X+amAkuR9TWkHOhKDqjqrr41fN7dmXTnqU3/Kv/H0nsbYnVWxOyuObCs9ubMuaW8HJ6yLE6Y9ubPxmG/Vqd21cf41J7bXnN7TyjigZIdq4ne3HPGpOOpbdmJH5cmddclBYn5kNyekgx0s5oRI2cESxr42xv6meP/ycGcOgyFYWNSvDngS5NqRz3VGRIFY0uPYtbfLA4+mxpbMGBAkqSep5V/xTvhHY0NDf2V8sIj+xySGq6HaCCAItmTRr1iWAZDF0Rvi1NNt+yPG61rh2ShY9ATg1IYh+vdhtRgkAFAUZTabzRd7b3O50qDQkYZ6zLiAAqqzmFYQq4m2h0gACjCKtABGAvE3PMMu99w5Hpge51/F3Cdj75PwQjpYBzqYB6Tc/QpWkJixr+2oXxHvsGjyLgJWuDn04NSuohiP9Dj/orTguthdxbG7ipmRTVmxipbsntbswaLT3exw6fHtVcyw5gb+2dxTTdWCriq+pjajh3+0Pca3IPuU4vnwIiDw/MpCraAzO04av7cmYV9dneBcU3Z/a0F37knp6YDatAMdlYye9vyuWkFH+uGWtP2qgnhVNbu7iq0QCdW1PHVRgiopqDluZ0v8nobU4IaiRHl73pn2vDPlaRp2RMsxv0p2uLSGNVTP7y9nSJsyexoEAxmHpYl7m9jB7awDHexgCeuAOC2oNW1f46ldZeHOHBYrY3HRRKsnTgCKUatySW/iBBDkj3oKFKLHoUg5Es5vU119YyTp+NDPaf3ehob+yvig8t+Pr0kK0HeJRK0AJgCj1QIIgczefy1pHgg7rAmIvFdRp3v1HCWMZsL0W3z3PxRWr/zKysqzZ89GIiN6d+6+zmEv3LuG40aCIBArSVe+AgoAAyAAAcpCT/39TRp6LEBAaygrSMwNbmfub2fsl7ACJfwQRerelmPbi1pyh8AC1jlIO8mJsqlN2CaL9WqM29GYuFfEiGjuaXhqfAWwCKCH6TsgLbpzyK9AeKJ14rZx4amBWAJsEZA56Bc/Somp0zbdAhSAtIAFDONkf/uDqO3CnETFwjMwT4F1Dpm/D7lx3cd31lyWTSLj8OLqTFvelUiP6vtnpmfum/UvLWAAWIJnFxcKEjoPbauKD6rUVN+af4Rg04BNg/4F9IoeHN6en3ig5l7/ovk1rLwwwTKsjJINwoFgVx7rQBtzfys7WMLc30FraNzO4jAn9smTyWNjk0tL5tm55ZnZpZnZRZ3ebEUIg9G6sKibnJqbmJydmp6fnVvS6c0ISoIVfzSmTyw7H8hQtZyfW6Hn/dDPyYbY0NDfGAiA2YLcH+jpiYsf8A8Zjk2DqdlZALAASYEVKBQwAOxdvfMNF38NVkNBV59bFEUBZSboaEQLAAUUYM/ELbeCwquDoy9X1iw9e4qhJgSId7Hyv15XHT5z81AA48iOguS9zSmBjWn7GpKD6lL2N6cFtaUFNbNDO6K9MnubrgACt/renAqSpPiLWHsb+ZFN/Jjaw7tYZyVXAQGwYMOS8QcXl4EE0yJalNKTFFxN6CgAfHIELnc/BgoQk1lWeTYvvvPpdSMAvLlqPCMarWEOH9lenhZRc6fv7UXlg5cjywDI6I23CUGlVexzS29RoEhZzWC4Xc3TGw8pgLlJGOmcXnlpBjBevXQ/0qOyIleC6YEyQ7/igbZ9BFkBIEAs0h4PEt04OwYYWKfh+WV8qG0i+4Q0xjsndX9Dyj5RSlBTSlBTUqAoaW/NUd+cQJvTzvtZ8eVD8c0PDpSMHKy+faSov31wVE/Bmfv65MrBiNxzh6vvRZdePVlyVnJ21ExCz6gxrub8Xo76aIa2d/A5gQCOf2bZzDY09DfG8pyOQFBsYfaJSiGPPSU9kQAv3wKJW4EgAAcKBwwFAicQ1IyR1t/62/4+sTYaF1DUBKgeKAIACBQQ3WuVrGt38JWq2vELF4n5WQK3mHGrhcBIEj6VROQX4srAjUMBjMPb82kNTQ2qpzWUsa+Nsa8l3r822InXLRoGI1zR3j+8qzx5dz1rvzJ5j/KwT9mxAOHMUxMg0FLeE2xbHLOz+MaVB0BCV8Od1NDSpTcG3YqZH9Ue5JVwaegu4NDfeifIga9tvE8SICkaCbTjhrkVndhdwzvaoBZdGlLdnHhgACAXx9Bj2wvCPbIudN3HzLikcijSof7h8COrGeorhny+iW/IUgGBP749mbCno1f6CFDQzeku9F8euXjLuKQHDF7ctR7aU3Hz3Aswg1o0FLUt86Bv/unAKmZoa+r+huSghlUNTQysPuqbs9c2wXF3/LEM8eHczkCuNCpLG8VtbNJc06HQe2PqdIE8KK0xJF0RwhUfTW9r67qxZIL2S49OFMr2M5uS8jQXrr6iSzBtaOgGfgnMKLqiMy4vTL99+fjG1VdXLsP49ISm7+3Vs9jyOICFJKyAEkACTgeKb+A91q2zSFGUFXAcTIZXj59qpMsjl8nnT15pu6fu3bVOTYDVTOBWK2rBCPzXXcZwZeDGwT1ph7fnJwU2JQeIUvbWJe2tTd7XlBxYzzzQmLBHFOWRr6m5BghMP1pMjakKduIkBciP+2oCbAriQ4vxRaB0EB9dGfB1pcufE1XiASDJi7JHiQdy9JMIYoLEgCbX/zmsbLsMKAy2P97+dcoZyXMgQVn1zG8TM8KnJDmq4Xr/azCAdQHePtIBAYa3kLyvOso7f+TsK0BAVnEhzLbmwYUnQEBD+WWb/+doaZoGCHh+by4hoO3GmRlAwTBrHH86q5tE3j6ZuXtxvKtlND60/t6lMTBBjVDm+cWJcNechMC61H2tKfvqaQ1N3tuYGNBAa2iQXeL+g+zOi8+uPF5RnR/tGR4buPr0yasFoxUeTZrO3HytvfpCM/xcffHx0M2xZ2+WdCZ4NLXYO/JUOvRw4Prrt5NGkgCCItHPyuHa0NDfHBhmMhl0+gWTcYVCSQLBnjyTHDxxOTzyZUcjYp62AkYBXekcTOTnNNb+D8VPcmWtgR4AAKPu33oizFAH77/XUANWvRXIpcUZi1lHEghJYCSBwfvlYb8WLvePxOxOPeSXlxjQmLSnITmwNjGwJimoMSmghhksYhxoP+hVmp8gw2YpQEBceeaAe9puB1aUb9mpkDpObM3Mc4Q0QGmmLNhWGOjMHh66Axj0iG6c2is0TVsNy2TO4e4gJ+5Z9UNSD2eabu+3Zw53vqZQGBA/3eV0Onw7nxdfCwhYlsn6MklGWhWQMHl/KW53/rEdeQ+vTGBGvKWw68DmglsDtxETyBtv790iFAkGwQpP70zE7Sq/NfiKXIFe8fVDe3IPePFPhuYI4usO7slKjmp8dOU1mKEuU73PMYMdJmOHSuJ21iUH1SXtraeN0IQ99QkBVbSGnoznzS4iFAVTk4tzs8sWE0oSoNeZ9RgsW6llMz67pJ+eXzJYUAtGrhgtFgJZMltnV8wrRsKKAU5QJO2BfT7Y0NDfGHqwUkACAQgCKyRlxq2Gl88vl5Wd8dk+EB451tGBTU0CkGarBceQz2wBxz8FHyxnIIC0Xr/zNJk/sCPgbOzxFwMaDDcvAxgJq5VECQoHingX/g0UQvxqffVS3/Vo/5SDvrkJe0SJu+uTAmoSAqoT94qSA2tTgqqTgxoOb608tqvogvImWED/BobkzyqzJFd670480tfna8/K7wEKK9MLHfnSQektwME4g1cw+5P2FVI6wM2QHSMLsEu52j8GCAzL7wU7JnSJhoGApTemljJNS1l3Ib8OMFiaMlUVdGjargMB+tdWVnhRpBf7/uWXgFKyqp4Ih8xX11+TVmivOb/jq5QG3hnA4M3jqWO+mR2VXWCCxTG0jNuZHFmjqL1yWTuaEF4avb3g+cgcWEGU2R+4OSMpoD0lqCUlsDlpb21iYB1thMb718bvrjiyLXuffVJSImN2Yg6syMrUhGl+FtUvA2YlECtGgc6gX1yYMSzNGJdnjboFxGpGccxkXjEalnQrC4jVTJCAUUABSf2Kgyz/eGxo6G8MHZAoABAA1veWEWIwv3lxs6a0MzTmzM7ox1lV+NSMEVAEcPi1S2N/vlhbjGzt/pnB89eTBdptweeS0iZHLqGGWaBw0oqi7+bkfgy/Jyic+PXqCFzsvRa1KzlmW87p3Q0J/nWJe6pP76lKCGxI2tOQFFgZt6s8IaDlkG8x63DpBcVdZArAAOZpEjAAPTTk9jEP144MPAKMhBUCLECaQNlw8ahvRVpwnfEtblqCnBhxsDNrSPkUnYPL0nuRLmkFyW1To0uAAlhh4TnBiSu+eW4UECCWgVyCmVd6ZArq2NoYb/5I/xhpAGXV2QiHzGdDE6QJpLUX/b9JEXHPgAWe3nh11DvjxN6sm/2PwAxgAWoRwAq6Mcg+pQjzLng4NAN6aMgYDLYvPO3fkhRQl7K3LiGgOiGgNjGg4fTuurid1XG7yg77ZAXZJbJSmAtTM0DiQKBAYkCiQNEXHgMCpVAzUAhQCAAGgFMUQRAEUCgQJiBRgiKt7yYENzR0A3816LsJyHfeOkWQiNVosSwvvh69VdeoCjvefTwZffwYSAsJ2OeVi+EfitWaNqslcOmEu/fKipVhMWdTBC+ujZgpnCJIQAlArABAkj8mviCov1ij4pfhQs/VyJ1J0T7Z8f71p3fVJu6pjt9deTqgPnF3Y0pQZezOouSg1qPbq/a7pR4PzKzLvNgjejQoeSgu6y9JkyaH1IW6CJIOFMlK+gdF17W1D0rTFQcD+GHORYm769uLz4rKhtiBomjPvGJmt6RsqDJVdcyj6PC2fP7pBk3dmd7Gm+35VyO2ZqZGVsmqhmWV1woZ6hKhUl01UnhcHeVWUMhQS2rOZMU1H3KqrEztVTVez0hsDXfMzYwWq0VDDXnaUz7VgfYZJ/ZmlfPaz3bcPS+7r6w5V5QmidpadCKgpT6zR1N7gRPTesirLmVve2JAxek9RfG7K+N3VyfsqY/3r43dXnlyZ+mhrZlBdolpSclLc/NAvVvlSa3+WZgVKBwoksDw1eLviMX6riAgaQEKwyhASCAI6vPytzY09LcGnfSOtkApAIrEMGTZuATzxuknT88oxefaG2F8nHwyOvP02ec11v7PAZ3SxWAwzM7Ozs7Owp3zN8qKX565sKAzzRsx86x7squqAAAgAElEQVQBMAIBC6AAGFDUu0uNEShBYL+ihp7vHo7cmRS1NSvevz5+Z03C7ipaQ+P86pMCy0/syD0dIIrbIzq+p2i/KzPQKSPAITXULWuvnXCfbU60R+lx36ojXmX7NgkPbBIG2RbtcEgO9klL2dcRt70m1Iuzxy0zdacobkdjtF/pXqfUI545yTs6jvqIgtwFQQ7xgTbMUMfSk7s6Ij2Ldtsk7Xdj7LZL3OnC3OfETdzRfHqnNMq3xN85PsYnn7Gr+6BbZYA7I2RrOjNQEe9Xu9v5RLA3K9FXemqPOMQl138Tb++W8iDbsl2bWPudObH+dbH+7SGezMhtiUd8C+K2tyXsbo7bWZgUkHfKv+KUf9Xp3XWndtWc8KuI3VFCaygzJXlubgElgI69tQIQtJKSGJAkjpP09Tcj74LsEQAcA8DMFGp+VzUcB7Caf63/5Z+ADQ39nWLFgE5MLyytLAOJLN+9pU1KvHr8FGj7LIACiQOF68CqBxzFzIDjn4gJX804u3bpzipWixTCT6e5PxhkhJ/N4dCtrQ3MXJvmA9bEG61N6EmftVoQEd5n1f0UUAwIEkgSKHI1JSBFUQggYDAAhgAYYWXieXXNmeDI2ZwiAEAQxGAw6PV6q9VKf9y6M/i/Li5334z2S47yEJzwLY7zK4z3Lz65s/TkrupT/hXr8rhf6bo85F1wxKfouF9p7I7y2B3lx/1Kj/gUHfIuOLG9ZF0e812fH2v/Y8fH7aqM3VF+zLfk8NbCw1sLj/mWxO4oj9tVeWJ72bqM3VF6cmdZ/O7KkztLj/kWHvPLj/HKDLJNS01hzc4skgT8bLbvD4sNDf2dgqLAgpE4SQCF6Z4+GMhMl4SEDR89uXThMmlYxAHDTCZA6TDyT9WppwuOrhURWgrXLif/+ez22tM/eHdVB+nNtUsqP3hBi+wHh33Q+No84et/gbVtUmvapOjwTgvy+tnz2jptUIQy6tBDSfNqwlar1brqM/4TNPRS140I38Rwd16sX1ns9uJTu4pid5XG7q6J3VG6LuN3V6/LU/5Vp/yr4ndXn95Tc3pPzeqej2nxx9r5pUwIqD29p+aUf1Xcrsq4XZWn/KtO76lJCKh9/+kf8rhf8YntJSd3lp3YXnx0W8FR37xoT2HA5uSkxLS52aXVxC30E/QTN9gfABsa+nsFCRgOVhQhCQR0C7PXLp3PyRKFhN4+nPhAKl42zVut1nf+KYl/esHNWi37wLT8+ZEf3O6rGvpze5ZWq9UTV1+vHkwXi167Z1XR6Lfo3vVpU9REAQpAAKDYexOYAgwngQIK8MmHt27lF5wNPtQVdfSuuN0w94Zu+YPHxj+hD1/suhWyLTHUhXfMt+S4b+FR35zD23KP7Cw7vqN4XR7bvj5P7Cw9vqNk7Z7jO0pO7Cw96le4Lo/vKFmXH2v/Y8cf9Ss66le09kh6z8f4/tuWHN9RfNSv8PiOwmivzIAtKUmJabMzixT5LmPTj+vH/rjY0NDfK0ggcEBxDMHMQCBgXJm5PnymtLTHb0//8Xjji1E9kCYAQACs2Ceq9v7cH4efmqJrk0vBz273n2+um+H45/4yrYyr0knbm/iauIK1Juon7EQEfzegRpCA4SQBgANgQAFBgdl4s7mldfve/oOxzzrVupk3QGC0gH7iIvyDcLnvbphfcogb99j24qO+OTFbBZFbBQf9CqK2Zq3LSO/MdRmzLSfaJ3v1gKitWdE+2THbcj7Wzi9t/2PHR3gJ1x5Av47wEn78I3IivTOjfbKjfbKjtgoP+maHeXK3/3AyLZU9P7dM4IBhv2L07e8aGxr6ewU9TQ+AA2E066xGnX568tWtG0P5wvsVFfDilXVudn5+FggSKFxPfTRHCS0oq9n1AYAkyampKbVaLZFImpqa+vv7V2u9/jxhyroSDO9VGN6PqK6+pifHP/j0tS2vOu+rLWMY9imNw4GyvrsUCIFjBAqAA4XBszcwPTV58fwQP/Nhc5tx+s2Kbp7QGT6tyP84DPXcCPGLD3ZnH/LLO+iTHunDDN/KitqeGeHDXZdRvumfZuQ2QeQ2wepmtN//3955fkWZ5fv+/hXnzV3rvD3nrtVr5s66c+85p6ft6ek2B5CcoUgSBAxITkVGEAQkiOQcC4ocJChZQJKKiuScKqcn7f27Lx6sZsZiZujTjYLPZ32XUuWuh02oj/vZMUJn/uF1/ptxvBqlM7yLEXYX+bxL4bxL4bxLYU7XIm0vBOn9x03tvfzHrUIx/DO93icZzqFfKjQgGrMzRjU0pdKolXKFaHvn7fyEbGsRXr8ZC4ofjU2VLcwSoCYO3yuM/fU9uLW7SqUaGRn58ccfz5w589133926dWt0dPRg4U/34f+Ugz492FfAwory4IAVTdMHb/a1JlWpVNozZnVDAhDsGmqEgQZEwM7W/NPOYf/IhZYWRiWSbCyL383Cnlguk6gwycpd+3/Gsd1FdjT2Wevdsjwf4Hw12vFKkKOeH0/P38Eg1Fk/5JCE6oyTXsghCT4kussf9fo3rof9zb8664feuB52+PX5TnralwS7GYU7Xw8y+9HT4+bt1ZVNbX/owV+80wrn0C8VDBhjBgF798oAqCkklal3gCKAVryeanO42WxgNfEweePlMFB/e17rz5fBGAAO+kuj0YyNjTU3N3d3dz979mxyclIikfzNENNB9bB9nRqNhi1w8Gb5513iATDGarX6oFjV6v3TGbWfnaZp1qpssZWVlbq6uqGhob+nURIDgAYYBTv/e2t9rbym3fVOoZHR66JCIBVKALFCjaQaRBJyoOBAh8NxdsM1ClrNrt0wPXfH+ryP+U/u1pfcLC7fNLvkaXrOTWfMz3vojNm5m7pz3l13Dil/1Ot/+q9/v7zpWQ/Tsx5m526a/ORm/JOLxUUP8ws3r/7JJsA/ZGN9R7v+S3uPcorhHPqFwt784o9HfmqjYgCrKJBszQpLer08Oq6ajQfGSscn/uHV4OMYPQAsLS0pFAqCIA7+ih8mHZIkFQpFX1/f0tISQRDaMru7u5OTk69evWJP3N7a2urv7x8dHWV7BgYHB4eGhlZXVycmJp49e7a2traystLX1zc3N8fWQaFQZGdnnzlz5u7du1NTU3+n8gQgKZAqIDTSjXcVFU/t3J9dsh7IiIFXkyDXiEl6c3/PXqSE/XmFf78R/Vsw+24+3D8x7FZGmGdmkEt8iGdckGesr1tsgLvu+LvF6UzgzfgA9/v+bnF+rrF+rrH+bnEB7vcDb8Yf9Tq/OAHu99kKHHyoI26JAe4JgTcf+Lne93WJCfJICPK4f8ch7HFmjlJBUCRmmJ/HD0+3RjmHnjBYqyoJjXh7df5Z59OQ0CYTqzFzx9Xl1yQQCANoAAhQAmiABFrJ2uTgvbZMJuvv73/+/HlnZ+f9+/eXlpbY57Vl/mby5ujoaHFxcUFBAZ/PLykpYd8PMpmsoqKiqKiouLhYIBAwDCORSIyMjC5dusQ2P9PT07/55pv+/v76+vp/+7d/y8rKmp2dzc3N5fP5vb29CCGZTObj4/Ov//qvrq6uHR0d0j0RgxEJIMcUOzEbEDt4BKBm95kn3xZVDBm4tOlZP0tLEIlECoVCW9Xjl+bfIBaLl5eXJycnBwcH+/r6Bj7Sf6rp6+vr7e1lv96hoaHh4eGNjQ2pVPrl/FyOAc6hJwy8f19Pagi5fH1xuk7QERbe6RNAiNcotYgCggRANAMUAEPTzP7d9MHfY4lEMjw8PDIysri4mJubGxkZ+e7dOzjQR0mSpLb8q1evoqOjKyoqFhYWGhoaiouLxWIxQRB5eXnp6emzs7NTU1Px8fFPnz5VqVTR0dFnzpzZ2NhgGKalpeWbb75pamoaHBz83e9+l5ycTJLk8vKyj4+Po6Mje/GampqzZ8/W1taq1WqKoTHGgIEhSIaiNSRBAhAAu0ABTYFCBSrpVHODwMu372GKfHtWKpWqVKqDPQmf973KMIxCodja2lpaWlpcXFxaWmI/WD6lrKysLC8vL31kZWVlbW1tfX1dKpUe7NI59QIFzqEnEYRBRRIKQilXiFfm38+Nj66/mpJ/ePOysOBNXQ2p2ESgAoYCBLIDA+IMwxDE/tCTSqVib8CXlpasrKxycnIoitIuKNLe1FMUlZGRcenSpZmZGQAgSXJjYwMAPnz4YG5uXlxczPaB3r9/38bGRq1W5+XlXbt2bWNjg6KokZGRc+fODQwMzMzMnD9/vrKykv3UfD7/woULbE06OzuvX7/e1NQE7DQEBgEN7KRXYGgNIDFQMhCJh57NJKZtdXYR2yszo0Pzb6a3VLsqlYokSe2aqM8+kZudk6BUKmUymVQqlX1EfkpRKBRyuVz7NSoUCqVSqVKpDi5L++z/sR0PnENPGAzeX/DIICBIWqJQStVqEmDn5Yt6J4+mKxYrT7KJ9bckqJUAIgA4MOMdADDGMzMzjY2N7EO1Wm1paRkZGXmwo1MLQRAJCQk//PDD1tbWwd6A3t7eixcvFhYWsg8TEhIuXLigVCpTUlLOnj3LlhwYGPj222+npqbev39/+fLlnp4edu3Qw4cPra2t2fo0NDR8++23DQ0NAKChGYQ+7r1CI3Y9K2II6UjrmL+v8Krp1KMMIFWIITQaclssY4ezDq40/bxvV+1MgIOwvSinG+2Khr8x5lciUOAceuLA2r/Qfiga1DRQ6ytTT3K7zByGDW0XUtNEizMaQGy78+CETaVS2dbWlpCQwN4LDw4OOjk51dXVAcDAwMDw8DB8bIcyDAMA3d3dLi4ubW1tBEFoNJrNzU2aptfX1+Pi4h49ekQQxN7eHp/Pz8rKoigqJyfnm2++Yct0dnb+y7/8S2Vl5dDQ0B/+8IeamhoAYBjGz8/vu+++AwCNRtPb2/vHP/6xsbFRqVRKRHJ2ywklkBgooChY3VANTwy7unVa207wI9c6O4BQYoICGjD6+S36z8zE4jhmvqofB+fQEwYGwBgogsYEsz/piQGgASlVu1uLU7UVPTzXjsuWg2Gx6rlFoH5e0KldKbSxsTE7OzsxMdHa2pqcnJyVlbW5uSmXywMCAry8vLTTjNjyBEEIhcKSkpKenp6RkZHZ2VmapimKmp2dLSkpaWpq6urqKi8v393dBYCJiQkvL6/CwsK5ubne3t7Lly/fv38/IyPj3//938PDw9ndlczNzX//+9/PzMzQNL2zsxMUFJSamjo9PS0XKWkAJYASEAM0kMRGY4fQ3afRyLYnjL85NqBW72GgEUI0pd17BOCLceinDbSDM1VPH+gQtAUOfnPwqfYp59ATBkaAP57NjQEQohmGQgylUpIiSrGw9m6ssrTJ5VbnrQBq6g0gDdsIpSjq4BxMhmEmJycFAkFbW5tIJGILCIXCiooKbZ8pfLz9F4vFU1NTZWVlAwMDEolE+/zS0pJQKOzq6tra2gJ2LyWCePfuXWFh4evXrxUKxdTU1NjYWFNTU3x8fHV1tVwuF4lEDx8+jI+PZxu8ALC4uFhdXf327VuSwOxMWBoYUiYGsWipoTnL1qn7Qeb7voGdvU01ECpKTTA0DbrfkJ++dT87X1p9joGv8EvmHHrSQIARu3gHNIA0QJFA0UAAAlKslu3uLizPDLULF1tbQbw9MNnz7t077fR4ODArXi6Xs41HjDE7S/TgUIBSqYQDi0wYhtnc3GR3QmI+LoSnaVqhUEilUrYMK1+EkFgs3t3dPbgsiu0HYMuwg1cqlYpdxcQOxchkMprtpmBAub71uvuZ4u0M9W5mvLryRfegRKrcEUuAwkB+3DiZ1rE/AOfQ4+Rge/Ngy/TTYp+jdscK59DTA2YQRWp2pHu7SgkgerdvrMTee8TCStFRDyBRAsVgRCkJGmAHaKABKPRxSf7+vh7oGJY10yTQDCAEmKGB0QCtRAQNiKGBAZpeerMUF/NUz2Aq8QFIJQAgkUjY5QDHvA8TB8c/CefQUwIGwAxiKFqlUapoDWBa/X5hKL2wzsRs2MFTWl5Lb68D0KDGQIISADAgen8pFM1g5mP/wG+NEkAFzL68EQACzCAGI1Aj6tXM1IOHzZZ2XZ5eC831jFLGAGg0GnY91alfds1xQuEcekpg2NYZwgghDAgAUWLxztSb/geJTVes+wxvTD7OJvfWgKFARVIYaEDUgb3GEfqVzwo+DA0AwX4iBgGJgGE3pcfK3oHx4Dihnk2L253Zhgb11jpBfFxvr2tffQ6OLwTOoaeEn+c8YQAAGlEajUqhkO3MvH2Wkllgxqv1uC1/O86AUgUawKABpAaKwvsnh2F8TA4FBQIGMICSIDGDACOMaAbotyUFldYOzW4+c20d8q1NUFM0ycjgKxre5TihcA49dSAMCDMMI6fVMqzZlItfTYw9Lcqbri7DH95svR7dnXsLNMUAYgBRDKmdrM6eefmbowBAIAdGATRgGrb3RCPjeHZBMjX4LDdztK1pfW99TyoDEQEafNhuVJxMOb4cOIeeFj7u2Yw/znuiAMuA3KDVWytrkuUlRIrFU6Mdt3zHwuMkI/1A08DQgBEChkQMgxFCCP/2DVEGIyWAFGgGKNjdW8gp6/IMnHuQCYxsa2fxg2h5UbmrUKrZM6PVn5yFB1/k+DvH1wzn0NMCBYD2R9gB7Q+0U4AJAEIkA4ohgd5+PdXp5t1maDMc6L8zNA5be8DQDCAS0P5ydfI3l6gKCA3QAATMz63nlLZZu9VY2b/OzGAIDQm0hFCoVQpAaH/TPwZ/uoiQg+OLgnPoaYEERIMGgATY37mD9SECAmM5YLFSDgSh7u8bvuvdcfVaA//BfMdzam+PxJQGEAlof5bTbw2mgFCiD3Nzj/KeGjo2GdtNPEkl9l7TEhJoABUNKhoYegNUIvirY6I4k3J8mXAOPeVo534CAK0hZFu7kwMvyrLznxpZCqzsxZOTYoBtYLd3BqD29zTZP8YDAyAMNPNLOkoRAAaapgHTgGlM0YAAY5ABwYByorKsysKh0c7jZUHp5uqKlCL/8QU5OL5IOIeecijAFEYIMEIIkRSlVG8vrY73DQ3zo4bS06jleRCJ6D0J0BghRCKG+Ti2f6AD8hdNHKWB3Q9aBRRJqQDRgBBFkOr596CUbPT3tkXFjRcUi+dmxZIdqVT8K37JHBzHCefQUw4D+/scIYQwg4BmCLlStLa583JCtDK3Mz0+FJc8lZSpnn3LAEECxQBQGNGA8f6yUowA00dfwEQSCGGgAeSIVAEBQIB4c6uvq98/YkEghPU10YcPb6cn1qVbKkYJ5N89lo6D4wuGc+gphznYjsSAaIbWEBqFUqpWY6B3pl42uN2uNrCcTn2kmpkCUsYak2Jo5uc9oX7JcL0G0P6eyhhooIEUbzQJel1daywcB9MfM3t7gGFDLt1AKhIo0Bx6tjMHxxcO59BTDsXQNGJXcgJ87OhECO2wuz9tb621NnXe82s24U0ERxG9vWqlii3LMAwGoDBSUyT1i27mSVLDTtwnl1bnKqqe37pTf01/MDVN9u41aFSIYBgAJQAJNBDqf3w9Do4vEs6hXwvowO05BiAAsEKDJBLV7sqHBmGvu2+jgW23b6BkYxsYAASYohmKhl/aHQpSNQBSAgJEr1Q1Vxs51lg5jCTGL0+MkqSMQQTQGBCoGYaG41kgxcHxm8A59GuBYmh20iWFEQMANFAEuauU7cnFovn55ab2tiB+o58fqCgkVoCSAHp/bB3wz0d+HuXzATCIlIlBvLfZ0lFxy7c1MWVrfEIhEq2K1sWEBDAFmGanpgI3LM9xYuEcesph9YcQIiiS7d+kAFOAQa4iAIkAZDQj25WszL9/2dOinhrVrGwPNXWMd/UhmWr/aKNf1BBVAqxPz4w+LpQ/76c2l4bH+ycnxyVLm6RYqUEkARSDVBhIDYAKAejYDpSD42TAOfQrRbuVHEKIIAiVSqVWqwmCeD3dJ3B269W3Xn2cDpJFACWiMSBQAYBaA6BUgRoQUAAKAKBBhkgSABgENM3QagYoDAQNBD3UPukX0HrB5ENCBpaKtoCak4ppJXfTznHa4Bz6tcPuY0+SJEmSFEWpt1dfZmW32LvWWvPePsmC97NAIxKDHADkKtjbJLCUBmDv9CnAGGiQyGFLBBoVAMUAQe9tq56N9HnfrbG17QoK3h3oZzQyAhCBgFFxe4BynDY4h3LAwSPGQKZSLMy/qalqdHBruG4zGfeIWlkhMKUEZqW/vz8laX70OQ00EAAqEAFFbq7OZBa9zCsTry8BJjQayUz702GbgFZTu5bgwFcDbRLNloaQA0kBzd2zc5xCOIdy/AzGGEQaiVK6tjw7k1vcYuvRfC9Q8/4t0GpQSN89bS6wtBxJSgJGAxSAipEDjacnWizdmkMjafE6qJWglE71dNUauo1FJy52Pd2SLu9hKUEqQU3CL5ohxcHxhcM59OuFbX7+zbZyQMC6UrIgXtt8Nf2hqflDdwdenl9tbhX1PJdPDzzzuT10w5OafgWAgEGURr6Uk9Wsb/kqK5OafyOtb9/tH1rfWpyqb3nZ3razPKdUSZQqKdAM0IBo5hi2NOHgOGY4h369fHoWI+tTJdB7pHxjd313d5VS7MpeTT1xdGu/67tYmfvS/06fvvlaWTUFBAM0vbzSf9PluaXN/JO0FxmpVZbOL3MKlJRURkjfbiyKJHugIYDaX63EAKgwZ1GO0wbn0K+XTw8pwhgTSMMOGKkZAoAGkoatvanaBoG9fbez/YCtRbu+wVR8EqWS0EDJR8f7rM16TEyeu9wQOjn1+IfK+4dArQSGUgOo6Y8HzzEACGNA5HFsrsfBcaxwDuX4KxgggCaBohBDMbuy1ebeN4KW4Wddg+HBzy5dGTW+Xmes33rXR7W6qCal09U1XdevdBvodekbdvIc3+XlLre2zVQKFX0TQAPJsEs5ATAAjQEjBrhxeY7TBufQEwYDNMWQiGbYg4UBKAbLMMgAaJ3BQB4xQAODgQCQyV73twZ4tJjrjVuZDjha9hsbjugbvjC37HDgqVrqYGelJz5iSO/cmMm1QSO9IUuzMQeHHnOr57b2KxExAJTOHLU+h11nfxkVAINJGkjM7rXHjftzHDucQ08YGBAAYAKABJADEIBJQDQ+RKG/JLQGSAKABtjde1Mt6IuOe34vsMX5eqvllQ79Cy36FysNL76MDdquzK12s2nU+67Z+Kd607NN9gbP7t14FuI5mRotban6FeuzPymK3A8mAGkAywE0wB4RqmHUBKUCDEBxI/8cxw3n0JMGhr0N+UjnzHTX2nj72kjz0lDzh/6md4PNizoz1LpwtDQvDrUuDLbNDbZ9GG5925LXLUgSlIQXltyOKXeLKLcOKjXxzzXyrXCOa7yTnm0RVmJyr9TSv5gXVuoZXxn0uDq2uPlx06BgZLBlXmeOWh/tCwea57QZbJl/0y8ebHs/Pb6IMGBAiD1PCnEO5ThuOIeeNBgYezbzMLC47tF4f+l2d/56Z/5KS86HtuyFXyUtWR8685c785fbsuebs+easudaCpaaC5fa8tbbs1Y6Hy0/fbjQ/mC+PWmpPWmpI3nlefx8X+Jyf+rm88zdzixRW7akOVfWnC//9eoz1/pkvi17oT1nsT1nsSN3qTN/patgdbB2LzGoOiOxandbiQHRiMD4F51ZwsHx34Nz6EmDhs7a4TtWDwr4L16W46kqeCWAoRLlWAXozGgFc6SMVdJjZeREKT1ZQk+UoFfVMF4FI5UwVo8HBOSoEI3WMWMCerQWD9Yyw40wKYBJAUzWwoQAxqpgvBpe1sBwOYxVIp05an1GyunRCmasEr2swuPVoE1N8qyneUq4d8b2hgwDYoBguIlTHJ8DzqEnDRraawad9SJCbatKQt61JO72ZEqbH650PNrTmfZHO0fK0/SdlqSNjqTNnuS97ge7vY8UnQ8knUnS5ymbbUkrLY9WW9PW2lJWOh6ttaSvCdNXGtI3G9I3m9I2m1O22lK3u9JFPWmizuTtjrRdnTlqfbQvYV/elrrdlLRen7AS4VBrdy4ixu+xZE+FgcZAYe5OnuNzwDn0hIEQtNcPuhhFeeo9ibZtz/B8URw8URj8Ij9gXGfy/F8eKYWBL3N9XxQGviwOmX5y70Vx0KsC/8mKkJlqnzfF/q9zAl7lB70q9Z0uvzdZGjCd5z+R4z+dH/QmL/B1bsCroqCZwsA3eT5TOd4Tv1Z9CgIn8vxf5vqN5fm/zA8Yz/EdTb/V/9CtO9C8xPFCeIxfxs76LkHLCaxk95bm4DhmOIeeMAiKbBI+97S+f8+8KNymKdquJd65McWz8YFLq84kurYcKSmurfGODfHuLQm3OsJd6hPuPI24UR/pJIx3bo72bA90bwy/2ZTk1pJsX5/i0vjAvSnFtfWRe/sD56ZY54Z495b7N5ujXBtiPJofuOjOUeuT6NqScKMp3rkx0bXloXtbomtLlJ0gxLwszKqUdy44/M4D0fYOgJoBggFOohyfAc6hJw66sarH1SjBz6I4kieMsquJtK+N5AmjHOp0JownjHCsj3VpjHKojXasi3dujOYJ4+ybYp3rY5zqo+zrYxxbo3itEXb1UQ41kY5lEXZ1kTxhJE8YZV/PfhDJE0bY1YXb1obb1kbyhNEODTGOjWxinZqiHGojbJvjnJ7ed2mM4AmieG1xTp3RjvtXiLKvZ1/FlmcvHmVfH+3QEO3QwH4K9uFh9WcvwoZ9SYRdHd9G4G+Rz7sQGnY3aXtzj91zD8MvO7SEg+O/BefQkwamtA6NsKuLtK2O4Aki7A4RkENduIMwykkY6VgXZlcdblcTyRNG2dbH2reE29WE29byber4NvURdo1R9vXRjnURvKpoh4Zw29ow65pw29oYx8b7N1rYZ1gPRjs0hFnXhFpVs27l2wgi7BrvO/eE2zQHW1TGONVHOzSFWlVH8Kq03ox2aDgo4jjn5hjHRlaFrJf3xXq4Q7VO10o5zLqGcyjHFwLn0JMGphoqux6M46YAAA8tSURBVF0M433Ni8JtayNsqiJ4gnDb2gieQGf4vJpIx7pwe0GkQ320U3OUfWMkrymS1xTOqwuzqY9xaotxbgm1rYp0rI11aQy1qeHbCFj9RdnXh1nXhFhWhVpVh9vWhlhWsSZllcc2CcNta2OcnvJtm6Md26MdW0Osq8PtBbEuDaG25ZE8ISu7UKvqUKvqMOuaCLs61qdae7IXZM14WP3Z8trWMdsIDbWq9jPPszsfEnonkXMox+eFc+hJA1MNld03DO7fMy0Is64Jt67k21bzbQThdjU6E2ZTGelYF86ri3ZqDrOt8zUp8zMvu3U9J86lLdhSyLdtCLQs89J/5GeeE+FQG27Xwrb7wm1r+TYCvo2AFV+sUxNrTPYZVoKRPGGsU1OoTe2NC4k3r6SF2daF2zVGOtZGOwuDLWvDrGsiecI45+ZYpya+jSDQrDzYopI1IN9GoG1+/qzUQ+qvrQn7EtbLwRaVvma5nEM5vgQ4h540MFVf0eV8Pc7bJD/UqjrMsjzMpirMuibMpuqQVEba14ba1EY5NgVYVgTalaUHdSZ6C0Nsa/zNq/3MK8KdyjOCGhLvVPuaF4XZPA00Lw21rozgCSLta8PtakKsKoIsygLNS0OsKsJsqvi21WzCbKpCrSuDLMqCbAuy+Y3Z/OboGw1BVrWe+umul9MCzVuiHYV82+pgy/Iwm6ooh7oYp/oIniDUuvLTGoZaV+p8/tOwn5etko9pju254NA7iTtbIgAKAck5lOOzwDn0pIGp+oouJ/3YO0a5wRaVoRZlodaVoVbVrIk+TYRNNd9GEGhWybcTepvnpwa2vOkRTz/buGuc521ccs+ksCjm+cZLVW/Fm9uGj32NG6Mdhaw6Q60rw+1qWJOypotxqo92FAZblgeal/Jtq0OsKu4Z5ofY522Oq5hVyOOPOJ9Pi3ItygrpiHHuDrIoC7OpiuAJWPGxjUo+23vLE2ivybetjrSvjXVuOKz+odaVIVYVbH204g4wK7lnkm1zNijk9gPOoRyfF86hJ42PDr1tmBNkXhFsVhJiVRFiWRVsWa4zETYCvqXA36Qy0KrSVe9hZrhQtQ6KDSLWrc71UrqHXlpb3jhI4f3zZR/zx55Xqvi2Vd4GuTfOJt84m+xtkBtmUxnBq+HbVnldfex5JdP9YprbhUcelzO8DXIDzUtCrMpdL6d2lYxOty8FWpfY/hDXWzW+OipJvNVs9V/R9wzzohxqgyxK3S+mOf/00O3CI88rmaHWFWE2lSFW5X4mhV5XH7ueT3U5l+J24dFh9Q+xKg+2LAu2LAuxKmcTaF7ib1rkbfzE+qdAzqEcnx3OoScNTAnLOx31Ym4b5gSalQeblQRblv8dh4aaVYWY1QSZ14Txalz1EnLihUAAqOniuFHeuQd3zZ5MdWyABuZfrIQ5Fzn8VOh6PjXSXpAbNJQdMBBpL7ijn+1tkBtqXZF6uzPWuT7BrfmJf3+6d0+YTeU9w7wgi9LE2/2Vqd2FCQ3+NiXpQZ2aNQLk0JQz/tCzPdJecPd6zm29J7HO9fkhL7IDBuJuNHheyfQ1Loi0FyS4NSd5tCV7daR792T59R1Wf1agQRalrEaDLctYh941yuIcyvElwDn0pIFBWNZtf43vef2Rv1lOoGlOgFlhgFlJoLnuBBuWBJvl8K2L7hgWeRpn9DRMsrtzDAoXbc5Gh94oUi4jUCNig4m5VW5+Jqkx97lqHUADlAZkO1Rb1binUarL+czpyS3pukKzRoAUgIK+572BHom39QSi9yqVhBzuny6IF84Obe5XUgHEJpngLbD58WFL0VssAVBjUIF0TdxUPGT3fWSQbd7c7NbG1jq5DWgbluZ2Q60rAsyKfY0L2OYt68oAs2L2T/aDIIvSQPMSP5NCH6N8T6M0ix99g28lbm9IABDe37fps/5oOL5KOIeeNP7aoQEm2QFmhf6mxaxoPk2ocVmgyZNgqwIv/Vxvy+wXnbPsvsZrrzTedqlp/EZQA1BAi5j0iLroW0IsBXIX2muGm6v7NHuI2IHc2DZ3/bTZdyKgYWFktTZ7eHVWBRi66yfsf8jKDBGoJEgpQqkBwkfBwrXVXZJA/Q3v0vilAQ6Pc2M6sQjoPajJa+upHwYC1NuQ6tt4xzx1/sMWxrA9ox6s+dBY1htiVe5vWuRnUhhoXsI2PA8KVKvRALNi1qEeho84h3J8CXAOPWlgEJZ1866Geein+plm+xs/8Tct8Dct9jct0JkAw0Jfo8xAizyXi2nBTgXvRzY1Erw6KwECSh+3dApegwI257cU27Lq/NYe4QdgoL/lvYPefWe9qKGmadDAUPPiTdOs0eH36j1N3v0K63MhguJhQPCqf9npXLrT+QfriyJCDuE3BDeupK4s7BEalOhbY/Sf0X52ucvjYiCgq/qV1flYF+OEse63wEBDzktX49i1FQkgqEvv9bqScM/2YaB5EVvhQPOigx//1ddiVuhvWuBrnHfPMMfD8JH5X3yCvB5wDuX4vHAOPWlgqCvt4l0Nu6mX4mvyxM8oy88k38+kyM8kX2eCTIv9zJ74W+Q6nU9KD21Sb8HqW1FOUoNKrN5bk8m3YGpwqzyvkZCrJ19MvZ/YkcuVucndev/3vtl/xpXEt4MY3g7KefrpL0ffgxoeR1Re+N3t/JReYGBxatfxpyTXS1kbi5uMhk6628X7KX1+dp0iyPSQVv3f53kZZ8sWVfI1WWpIi/n3hYbfJhWltlMk9Ncv3LS4v7woUkpxmk+t/X/G+pln+5nka0XpZ5Lva5znZ5LPfqx96G9a4GeS72OU622QfdMglXMox5cA59CTBoa60i67K6Hu15LvGT32NXzsa5zna1zoa5KjMz5G+UHWBQGWeVY/RGZHN9F7MNW7eMsmZbRvHAjQiCEvpTPUO12yJfnw5v3bl+sAVG3R8KU/hBj8n6DWvAEg4M3Atp1+4ouBGVBDXlTj1f8dmPuwH0hYmty1/T7W5Xz66vyiSrqTdKfJUy9nY2lHrZKmBlb91/8McbwSuze3CTTKT+j88X9FGfwpprtuEjB0V7+/aRa/vCBT7OFMvxbPv2R4G+X4GGf7meb6m+X5meb6GGf7GGf7muT4meb6muRoH7LxNsy6cz3T/XqK2Q/3Aj0TttbFPzuUG1PiOHY4h540MNSVdtleDnG7+tDbMNPHINPHKNfHqOCe0ROduWuY7WP65LZRhtPlhI7ScdDAZM+q3cUH1XkdQIN8gwl0K/BxeszIgJQQo10LlFqk2KTLM3pLk1vpHQpIKH5Uy9OLmH8nATmkB1Vf/MYvP2kAaFiZltiduW//l0T5lhQwHeNe6nQ+efHtHiCY7FjOiX6aH1//TPgUaFq6TKSENdZkDwEBQEFWSKvT5djdDUTJIeWO0OlMsrd5trdhFitNH+Nsb8Ose0ZPWHtqvxDWpPeMntw1eHxbP8P9eorpn705h3J8djiHnjQ+OtT1StJdg4x71zPuGeb4GBV4G2bpjJ9FoZdBmuuVJB+rJ1NPl0EBneWTBv8vNimwGolh9ZXYWS/1jmWeah2wBIofPqsvasZSAAKwErACnjWMuhlF2Z9PXP+AQAq54U3X/xial9gHGlh4KbL77oH7hczNWSVQ8PBujel/RGYnd6jFAEoANQwI3/s7JD+tHgQCQA6gBlCDML/P42Kyv0W+aA00Ekjzb3D8S6KXRdpdg8dsY5OtNmtMVqbsM6xJ2UboLb10N/1k0z97B3jEcw7l+LxwDj1pfHSoy+XEuwYZ3vrp9wxz7hnmextm6oynfuYt40wvoww3/QfJgXn5SQWxd/Idzmd7W2bnJZQ/CMiyP//Iy6goPbysILHyrmXGLdPElNCa3JTm7LTGmODCO7xMh3NZt680JPArKjLbQ+zTeD/Gh3jmZSUXpvGLPS7l3tUrTYkQ5KcKA62fuF/OdTXPiAspLYitK3hYFHe71vlS3l3r3LTI8twkQc4DYVJocYBdksuZh/6mxalxVenJZYH2j92uPnQzf3DXIMPHOMvHOOuuQcbBj70NM9lnvA0z7xk99jbMvHM93etaqpt+ssn3dzmHcnx2OIeeOOi6snbriwGOl+K99FO99FNvGWR66Wffuv5IZ9gy/3w89XTnqOU9r2XojJdeps4cVv/D4ng58voZdz/PmO0tMQYaAYUxxtyYEsexwzn0xEHXlrZZXfC3vxDjcS3ZQy/JQz/15rXMW9fTdMZL/9ERk35IjlbeUy9NZw4rf9T6O1yKYB26tSliHQoAnEM5jh/OoScOWlDSannBx+FirNf1ZK/rSbeN0m8ZZHrop/460UvTnV+r/BFzUy9FZziHcnwhcA49cew7lHc+0kPvgYdevMf1RA/9lMNyUy/5iNHtrKOXTzpSDqu/+7WHOmN/MVz/Ozdfj+iDDuX6QzmOH86hJw5UW9pmcf6e7bkwl0vRzhf5ThcjHM5HOp6P0RmHc9FHylGvc1h5xwsROuNwPlxnDr3OIeFd4Ov9ydXXI3pzY49zKMdnhHPoiQMJSlotznvbngtzuxrjcpnvcjX8xuUoh0sRpzKOlyN1hnWoz80ozqEcnxfOoScNzFQXNZudvWNzNsT1SqTLlWCXq2E3rkS46IfpzA290COGf0iOWj7iSDlq/e3Oh1371oVzKMdnh3PoSQMzVYVNxn/xMvvez/YvflZ/vm3x51umf7pt+uebv0pMvvfQmSOX//720XLo9d11hnMoxxcC59AThkZDjo6+zM7OjY6OjY6OjYuLj429Hxt7PzrqK0t0dHp6emdn5/b2NvudwZgzKMdngHPoyWNra2d8fHJgYKi/f/D5877Ozu6nT7uePxv4qtLX1zcyMrKwsKDRaNhvC8MwnEY5jh/OoScMjYbc2xOvrKwtLi7PzS28f//h3bvZubmF2fdfV1ZWVtbW1kQikUajQR/hHMpx/HAOPXkghEiS1Gg0CoVCJpOpVCqaphUK1VcVpVKp0WhomkYIHfzOfMafC8fXCefQk4e2tYUxpmmaoiiaphGCryo6m5ycQzmOn/9x98nCp/ncteI4FIwZNgCIDcYMQvTnrtdxw3yEpmmuJ5Tj2PjUljraoZxDv2wQAEKIZhgKIfqASb8u2O+F9iHXGcpxPHyqR86hJwxtC5Rtfh5okH5dYIwZhtHevB8UKwfHbwfnUA4ODo5fDudQDg4Ojl8O51AODg6OX86nevz/eKsj8lmDo9QAAAAASUVORK5CYII=" alt="" />

节点角色说明:

Provider: 暴露服务的服务提供方。

Consumer: 调用远程服务的服务消费方。

Registry: 服务注册与发现的注册中心,一般都使用zookeeper作为注册中心。

Monitor: 统计服务的调用次调和调用时间的监控中心。

Container: 服务运行容器。

调用关系说明:

0. 服务容器负责启动,加载,运行服务提供者。

1. 服务提供者在启动时,向注册中心注册自己提供的服务。

2. 服务消费者在启动时,向注册中心订阅自己所需的服务。

3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

说白了,就是消费端和提供端都通过长连接连到zookeeper,消费端通过zk获取到服务提供者的地址列表,存在内存中,当请求调用的时候直接从内存中选择一个服务提供端的地址去访问某一台机器的服务(具体选择哪一台服务器根据特定的负载均衡算法确定),当服务提供端有节点动态增加或者减少时,zk上也会相应的增加或者减少(通过心跳的方式实现),这个时候,服务节点的变化也会通过zk通知到消费端,消费端再把最新的zk中的服务提供端的地址列表刷新到本地内存中。这样就可以动态的进行服务提供端节点的增加和删除。

了解了soa组件的基本架构之后,接下来我们就来一步步实现自己的soa组件啦。

首先,我们需要选择一种协议,作为组件的底层通信协议,常见的比如hessian,http,rmi,WebService,Thrift等,在本例中我们选择hessian作为我们组件的底层通信协议。为了简便起见,我们直接使用spring 框架自带的对于hessian协议的实现(因为仅仅是示例,所以没有考虑非spring框架项目的情况),spring发布hessian服务的方式如下:

web.xml中配置:

<!-- hessian服务相关配置 -->
<servlet>
<servlet-name>hessianProvider</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-config-hessianservice.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hessianProvider</servlet-name>
<url-pattern>/hessianProvider/*</url-pattern>
</servlet-mapping>

spring-config-hessianservice.xml配置:

<bean name ="hessianTest" class="com.zhaogang.pricesoa.service.hessianservice.impl.HessianTestImpl">
</bean>
<bean name ="/hessianTestService" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="hessianTest" />
<property name="serviceInterface" value="com.zhaogang.pricesoa.client.HessianTest" />
</bean>

HessianTest.java:

package com.zhaogang.pricesoa.client;

import com.zhaogang.pricesoa.clientdomain.HessianTestDto;
import com.zhaogang.pricesoa.clientdomain.HessianTestVo; public interface HessianTest{
public HessianTestVo getHessianTestVo(HessianTestDto hessianTestDto);
}

HessianTest的具体实现HessianTestImpl.java:

package com.zhaogang.pricesoa.service.hessianservice.impl;

import com.zhaogang.pricesoa.client.HessianTest;
import com.zhaogang.pricesoa.clientdomain.HessianTestDto;
import com.zhaogang.pricesoa.clientdomain.HessianTestVo; public class HessianTestImpl implements HessianTest{ public HessianTestVo getHessianTestVo(HessianTestDto hessianTestDto) {
HessianTestVo hessianTestVo = new HessianTestVo();
hessianTestVo.setFieldA("a");
hessianTestVo.setFieldB(1);
return hessianTestVo;
} }

HessianTestVo.java:

package com.zhaogang.pricesoa.clientdomain;

import java.io.Serializable;

public class HessianTestVo implements Serializable{

    private static final long serialVersionUID = -3489449530072196795L;

    private String fieldA;
private Integer fieldB;
public String getFieldA() {
return fieldA;
}
public void setFieldA(String fieldA) {
this.fieldA = fieldA;
}
public Integer getFieldB() {
return fieldB;
}
public void setFieldB(Integer fieldB) {
this.fieldB = fieldB;
} }

HessianTestDto.java:

package com.zhaogang.pricesoa.clientdomain;

import java.io.Serializable;

public class HessianTestDto implements Serializable{

    private static final long serialVersionUID = 5736809480913645948L;

    private Integer type;

    public Integer getType() {
return type;
} public void setType(Integer type) {
this.type = type;
} }

非常简单,一个hessian服务就发布成功了。

客户端调用上述发布的hessian服务的方式如下:

在spring配置文件中配置如下配置

<!-- hessian服务 -->
    <bean id="hessianTestService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">  
        <property name="serviceInterface" value="com.zhaogang.pricesoa.client.HessianTest" />  <!-- hessian服务接口类 -->
        <property name="servicePathName" value="/hessianProvider/hessianTestService" /><!-- hessian服务路径 -->
    </bean>

这样在代码中我们就可以通过HessianTestVo hessianTestVo = hessianTestService.getHessianTestVo(hessianTestDto)的方式调用hessian服务了。

未完待续。。。。。。