【SSO单点系列】(3):CAS4.0 登录页验证码的添加

2016.08.23 更新

注意:这个教程只适合4.0版本的,4.1以及以上的版本的已经不试用了, 后面几篇有人提到过

源码网盘链接更新了下 : 链接: http://pan.baidu.com/s/1ntJ7KvR 密码: svhb

2015.8.14更新

有园子 说看不到验证码的错误提示,请参考40楼回复进行修改

附上:

解决方案:
1.把版本升到最新的 v4.0.4
2.然后需要把CnBlogAuthenticationViaFormAction 类中
new MessageBuilder().code(“xxx”).build();
return "error"
改成
new MessageBuilder().error().code(“xxx”).build();
returnnewEvent(ERROR);
依次改就ok了

---------------------

这一篇主要是讲解怎么在登录页上添加验证码功能,默认的登录页是只有用户名与密码功能。其他我觉得加验证码没什么用,因为现在我部门做的系统主要是放在内网里,外网是不能访问的。登录页的验证码主要是为了防止进账号进行暴力破解,不过我觉得客户估计也不会没事去搞这玩意。以上只是我自己的个人见解,可能有失偏颇,就当作是对客户的愤怒的一种发泄吧,大家看看就好,最近真是被客户搞得头都大了。不过,如果你的系统放在外网上,那验证码是必须要加上的 。  好了,牢骚发的差不多了,下面进入正题吧!

最终效果图

简单做了个页面,一般情况的话都会有美工设计好界面,然后大家进行开发就行了。验证码插件 用的是 kaptcha ,具体用法网上很多,大家google一下就搜到了,用起来蛮简单的。

aaarticlea/png;base64,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dWueHz0suvC8B37/7zV7tpVtWVffvHPLwf0vjRn59J/+eP8j/e764b0XXfaJqHvXKDb6wX0/ueKaq6PY6OOfueKZF58vLFu+Yff28rqaJSvLlq6u/Pa93426RbF9ek1LnZ08f+49P/1R1DWKLugZl5GaX122qHZldXNTzb5tLTeDe099fOTIkZOuH1dkrxlQdPyr1Y39PmAcb5sad6bzFUWN/U49ZQHwodDH0MG1XR+vzouP18enb+ORA/UHdm9+4+CqHZsrt21csanh4T88M3DSuHEJ03KLl6ZkZc7MmBvFxnTp3euL3/zGiGlTS+rW1Oxoqm/euenQ/uodW6q2b86rKr/r5/8UdY35ct+bx06PHzhu9De/9w9Rz25Rn57b/u+RVTs2r9y+aeWWDQWVZdd8/WvnfuyiqGtsFBsTxUZR965/eLn/nwYPjGKjLj27Rz3PmZu3IH9F8dJV5ctXr0zLzb6u79/FXtQ76nVOyoL5i0uXj5k6Keoadbuwd9Q9pnBV6cKVJbX7tq/avbnls/dO9HHD8YPI797Hp54bPnkhmt+T008bn+krAB8afQwdnD5uvVaer9jy34fW7t1Rurlx45EDacsWpS1bVL6xsaiyfF7uwvn5eYvLSj9z/Rej2JjuF1/45It/XLamumJ9w+bDB8o2NJRvXtewf/e615rLGut+89ST3c7vHcXGROfERt1ien/68udGvppfU7liU8OqbZuWrK1+7tVB3S7sE8XG9P74JZd++qrv/viHIyeNHz5h7EP/+ptu5/fqftH5T7/w3PQ5SQuXFWUU5r48atg99/046hZF53V/qv/zabnZQ8eNvv3uu6LY6JOf+/QP7v9p1vLFi2sql61fs3L7hqo9W2r2b689uOt99fGdI6vvTNl40jvzNg44dvF429S46gFFLWctzlzPb4vpEz975MiRI1kp7/RIxQx8OPQxdHDv1ser8+JPOClcty5Piz/DN1ryNvzM8R4++eEnGvlMT336E5wayyf/xLu3dptpZR83Hmxe0lBTtXPL5jcOZpYvK29aP694cW7x0j/07z9rzpzBo0d99ZZvRrExV1z3hbEzppc11Bavqa7YtK64rmZpfU1l04bM0uIV9WuXlJeNnTz52q99NeoaE3WL+c79P11QUVKwZmXh2lWL11YVVlc+8afno64xUWzMI4899vSzz06YHjcp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" alt="" width="630" height="455" /> aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAv4AAAInCAIAAABvNsoJAAAgAElEQVR4nOydd3wT9/3/xbctGU0KbWYhKf3226YmHb82Shta+v2GrIYkDTFmBDIIYYa9QdgGmz3DSgwBDLaxDcYYDwye4L0tD3nvvYesLS+s3x9nnU6nO1m2JEtIr+fjHWJ9dONz0t19nvf+fO7EmeMWjEAgEAgEAmEnwZnjFrzqehMCgUAgEAiEaSPd0dEaglolqA8CgUAgEAhzhcWlB+qDQCAQCARi/MLi0gP1QSAQCAQCMX5hcemB+iAQCAQCgRi/sLj0QH0QCAQCgUCMX1hceqA+CAQCgUAgxhIOemGby+LSA/VBIBAIBAIxlhhn9VGpVCqVSn8J1AeBQCAQCIS5Qo/fmCnrQ3UdY7wH6oNAIBAIBGLUMf7qQxqPkd4D9UEgEAgEAjHqsIj6GJ/vgfogEAgEAoEYSyDrg0AgEAgEwqpjtEOSR1zaGN4yVb4HY30QCAQCgUCMECZXH9zhhUAgEAgEAqEvjOzwMlVQq2RO9fFvXOnfsMK3bsW12uU+1cu8qpZ5Vy33qVnmVbXMq5ISVShBiWVLlvvULPOuWuZVtdynesW12hW+dSv9G1b5N1r8lIFAIBCPelhcesZLffwbV/jWLfep/upyyWfnshacTJx35MHcQ9GOh6IdD0SqI0odKEGJxUsiHQ9Fzz0UPe/IgwUnEz87l/XV5ZLlPtUrfOsgQAgEAmFMWFx6zK8+/o0rfOuWeVd9/n3O/KNxS0/FeccUFlW3trT3yBS9CmXv4ODgkJqHDx8OaYMSlFikZHBwUKHslcqVLe09RdWtPjGFS0/FzT8a9/n3Ocu8qyBACAQCMeawuPSYWX38G1dcq/3yh4IFx+P3Xksvr2/vHxjs6+sbGBjo6+tTKBRKpbKvr68XACujr69PqVQqFApyd+0fGKxoaHf3TV9wPP7LHwpWXKuF/SAQCMQYwuLSY0718W9cca128dmMRUej+GXNir4BolEhjIdsYxQKBbW90W2BUIKS8S+h7paEAw3/3TeQW97y2fHoxWczYD8IBAIxhrC49JhNffwbV1yrXXQmfdmpBx1CycDAAHkNTW1OaA0MVYlQghLLlhD7J/kumaccGBjoEkmXn36w6Ew67AeBQCBsIEyjPit86z73yFl0NKqxQ9yrzvQQrYhcLlcoFHK5nCwhWxfyJUpQYiUl5O5KlhC+3tQpXnw06nOPnBW+dRY/aBEIBAJhTJhAfVb6Nyzzqpp7ODqnoqVPTX9/P9lyKJVKYiwFtaUhEkJkq4MSlFiwhNwzyUE/xN7b399P7tL5Va1zD0cv86pa6d9g8eMWgUAgEGMOE6jPCt+6T0+lngnOaeyS9/b20i6aOaNECcC4Q7qOXC4nEj/Ey1512rK3t7dNpPwuNOfTU6lI/CAQCMQjHcaqz0r/hq+vVsxxCyuo7SavpEkUCgWHw1EZDIfDIeclLsepF+UoQYmZSog8JaE4Sp1xab3qHbu4XjjHLezrqxWjTfysvt602tKHOgKBQCCIMFZ9VvjWfXYua69PaodIc61M/qFUKkerPuTVNm05pi/xd+I4+VNL1AUMc+W6Tnfy11lOjst0Sr5ququ/y/TpLjkKpTLHZfp0lxz1cvycWDJcTv7js6UoMayEsZC6VwslCrdraZ+dyxpV4mdnSCsZFj/gEQgEAmGs+iz3qZ57OCYso0auhrxTRqlUyuVyRvUZHBx02b0zPj6eeKBcSUnJ3j2uSqWS2uGl0wj5z9NYhksOZRo/J3qJQqHQaMl01xyWNs/fiUPaj78TuQyGtWtLzrC3UKYZnrvXf9706dOHpWaEFtdPLVpWZwB2WEJ00RI7MJHmIQfmE/szuXvfzaydezhmuU+1gQfI6utNO0NaX3L420sOf9sZ0orcDwKBQFg8jFMf/8alV8rmuoWkVvRQh0eQg0mVlKzP4OCgWCyWy+Uqlaqvr8/7ux3nDq/1vnDgwmnXq2e3/HByI+FJSkb8nag+ofR3omiKvxNn+vTplHcJUyGn8HeivqWZgA3dqZXKHJfpDMXD6kRd23C+h1jD8CysK2NaE7A0NDei7swKhSKzSjTXLWTplTID73In1OeNtx3feNsR6oNA2Gocimo/GtOhG4ei2i1eN4RuGKU+K/3qPzuXtcszIataTA6JIIeFEk0FoT4ikYjP5+fn5y9evNjPz0+lUkVcPyzlryiK3Nietq4jZVVc4G5CfXop98armx8yO6NpkDTT+DtxnPxzXadznPzICfydOPP8dZejKSFUhighbUWpVPb6z9Msx5+to4qjmYbQmnnzdCYler5Y6qxUKpX+8zjz/NhriJJxLlGq0z9Evod8xg/5aAZiD8+vF+/yTPjsXNZKv3r9R8dqdewMaX3b8cu3Hb8k1AfjfhAI24uz8V0Tn5z82HPTnpr6u6em/u6pKb+b+OxLP/3F1LPxXRavG0I3jFKfFddq5x+NOxsmqG2XKhQKmUxG7RqQyWRkh1d+fr5QKFSpVHK5vLq6Ou5+9NnDGzrT1z8I2Hz/xpbq+xuDfI4NDQ1xOBwFheEeND8nznSXHGqJhhxnB46Tr1wxnHkZnobv7EDOwjSXgu/soEdrhufydeI4+TLUJ8dl+vA0Oc4OHIZp+M5kZVjH+Wg5EkMNUTKeJUp1xxa1nNiByVmI3btVKPcIF8w/GrfiWq2eQ4M6vmdnSOv7C75+f8HXtEKLH/wIBMJUsTOk9XJq9/Q33vrnB/P+7+PF//i30/R//PtyajeOdOsMo9RnuU/1HPc7F2OrFeorY6LZINoMopBQH4FAQPxs5IPoiL3bV3kd+OTKoYXpIdviAzaHe29sTNx49eJ3uuozvECK+tCbqByX6cOqonEfpVJJDvWhlNDnUxuOJuszvC71G0p/zd9a9RmemejSYunNmu7kNH149Vpr93PSrEt3ySixXAm50yq0d2DCeIgpiUKvuOo57nf0DPchMj3T/viP37/+1u9ff+tvb3+y4OuNC77e+Le3PyFKpv3xH+j8QiBsLAj7eWvOp59/s/mtjxfBe6w5jFAf/8ZlXpUfOt8KyGghL4uJS2SitVBShjnX1NRUVFRcOud299QH2Rdez77wesyZt26d/bI1fYske+UNz/0NDQ2E+hAdENRLc2IMMZ9aop6G9B0l0fXk4JyjNQ3RZTXsTdQl6x/rM7x2PRkbchqFZhQQpc7DgkNZl3oaX4rG+TtRlkOvIUrGs4TM7hC7LrEnE1ZE26vlcvntrJYPnW8t86pkG+5DqM/rbzt+8OmKDz5d4fjV+qUbXZZudHH8aj1R8jrG/SAQthiE/cxesATeY+UxdvVZ6d+w5GLh4v1BYXldMpmMaE7IpoK8VibURyaT7drwRfqFGWGnPkw+/2b+pVfzzr+c4fFGtOeX3h67u7q6yJvbFQxQ0j70crbeKg2axBALRNZHzwR6Ycv60Jbo58RxciL+43Cmu+QM35U21rUC00Lr1aKlgshCpVIpk8mii4SL9wctuVio5+k+O0Naz8Z3kfHFWt4Xa3nUEpwWEQibDMJ+cIBbeYxdfVb41i06neZ8KS6rWkw0EtTeBPK6mcPhDA0NXfru8JWze/c6b//tb34ddss32Pfc9XMbH3z3Lv/CH/2PLUpPS6Gqj1z9OF3yX76zA3H/+nCJn5ODM1+h1geleoCqnxOH4+RPyowm6eLkR06jP+OjERf1zVqKHBcHB+ccdf+XZu2aGvo7cZx8yTqrTUprK3JcpnM4RJ2nu7gQo7YZtxQlliqhjewh0kKkwRMlxEtBg8T5Utyi02n6n+5DHeY8d+mmuUs3YZgzAmEPAe+x/hi7+iz3qXE8GPXD3fzWbgnhPdR+LrLB4HA44bf9vz+4RqVSDQ0NnTp16tSpUyKRqK+vr7Ag/4bXmdAznwZ/OycnM2VwcJDD4ZBjLMiFDJf4UlI8Tr4KhcLXSTPEeHgavrMDx8ElR6GVEFL3grEtme/sQKiM1jR8Z7XB8F2mT3fmy+VyX2Lsj1wu93MiStTL4TtP5zj5yolpNNYll8vlcr7LdA5H7UZyX0KbhlUoh3FLUWKhErIjjCxXUAaxkTt5j0R++V6+48Go5T41Ix4mhPo4frXR8auN6ORCIBAIa4ixqo9/4zKvqg94AXf5TdTxodQGgyjkcDjff+seEXaLfJ5hZ2dnX18f+bK5uTnE/wfPIyu++3Yfh3GYs5lLtIY5qyFG61AnUBCPe/ZTFzn5GXL3lovTcIKHnNjJjzJcWt1FNz5bihK2ErLHViaTkflLmgMRyOVymUwWldv8AS9gmVfViE/3IdTn35+u/PenK6E+CAQCYQ0xRvVZ6Vf/xfn8Lw4EJZf3yOVyqVQqlUqpF9Pk35xR/pCFnAK1DwIlKDFrCWnwZInuzkzu5xmVPV8cCPrifP6IT/dZRRn3gzQ4AoFAWEOMUX1WXKudezj6dFBGY6eUbDDIri7i0ploJIxRHwDGBwVlRDP5r1QqJfZkhbrbi/y7o0d2Jihj7uFo/U/3IQPjexAIBMJ6Yizqs9K/YenVsvc2X80o7yB7AeTqK2NqayGXy0fqE6JDXRStcUIJSsxUQruDnbpLE/szdXpigqyKjvc2X116tWy0v+KOQCAQCMvG6NXHv3G5T83cg1FnA+JbhHIyu0NeIpNNBVlCdhOQ7YdC+4YalKDEsiWk1hD7KjVtSd2rqbt6h0jx/c2EucRgZ8N+zwuBQCAQ1hCjVB//xhW+dZ+eSp27+1pVk5BoA8gRoFTLIe2HOgxIRnleHBWUoMSyJeTOKdfeaam7se6uXtsinO987dNTqSt862A/CAQC8ajEKNRnpX/Dcp+aRafT3ll/KaekTi6XSyQSog0gpUf3+piYhmxCJBKJXH0ljT/wh5X8IZFIqDke8iVtlyZ3dWIauVyeX1b/zvpLi06nLfepQc8XAoFAPBIxkvr4N670b1jhW7fcp2bp1TLHg1GfuXoJSmt6e3uJBoAmQGRbQr1uJtsSiURCNSGZNihBiaVKiD1T19RpfV5U6SFe9vb2CkqqP3f1cjwYtfRq2XKfmhW+dSv9G5AEQiAQCKsNdvXxb1xxrXbplfLPPXLmH0/4eE/oR7wbl2/HC3vESqVSQoFoA8g2g9qKEH/IWLCGNg8lKNEtoe69VF8n92fq/q9UKoU94ktB8R/xbny8J3T+8YTPPXKWXilfca0WAoRAIBBWGMzq896u6+/tvP7udr8Pd3rtOnXj+2v3kjIEQmFPf38/bUAomfWhNhtEg0Gmhch/qd0KtCwRSlBiwRLS3am7K7kb0/SdyPrQBu/39/cLhT1JGYLvrt3bderGhzu93t3u997O6+/tQiAQCISFw1D16evr6+3tVSqVfX19xL9Um6Gmc2g9AtQbZEgNojYncjXk7ChBiWVLqJpO6g5tT5apIRdCHbtG/E0eLL29vb29vX0AAGD3KBRKy1ZgFOqjAAAAAAAwDmGPyLIVGIX6yAEAAAAAjEChULS2dyh0Hio7nkB9AAAAADBOKBSK+qYWG1QfqVTa2tpaVFTE5/NTU9MSEhISEhJSUlL5fH5RUVFzczN1fA8AAAAA7ASFQlFZU//IqI8h/WdisbiktDQxMZGfk1NVVdXW3tEtFEplMqlM1i0UtrV3VFdX83NyEhMTi4uLxWKx+XryAAAAAGBtKJXK0spapVJpwTqYLOsjk8nKy8uTk5OLS0pFYrFcodATYrGkrKw8KSmpvLycdnMNAAAAAGwVpVKZX1yuVCotWAfTqE97e7tAIMjPFwh7evRLDzV6RKL8fIFAIGhvbx+3DQYAAACApVAqlVl5xY+M+shY6OjoSE5JKSuvEInFMrl8VCESi8srKlLT0iIfpDxIyUYgELYRsUmZbGcMAIA9o1AokjPzFAqFBetgbNanvb09Ozu7prbW8GSPbtQ3NAoEArFYrDIdAoGgra1tEABgCaITM8b5Mg4A8EigVCrj0/iPTNZHd+aenh6BQFBeUWGM9xDR2NhYXl7e19dnKvVRKpWZmZmDg4OmWiAAwHCgPgAARnp7e6MTM3p7ey1YB6M6vMrKyvLy8kfbycUYA4ODZWXlDQ0NJjz5NjU1lZeXm3CBAAADiUpIH/8kNgDA+lEqleGxyUql0oJ1GLv6tLe3Z2VlNzU1G2I2aRmZGVl8PRMolMquru7CwiKpVGrgubWysnLp0qW//cNfJr3w8ttv/9vf3582wdDQUG5urkgkMvVZHQAwAgaqT3dubvXOncWzZ2c/80zO1Kkl//lP7d693bm5ZjjXjYKGplaLrPd6QOD1gFuGT5+RU2jglBGR0RGR0WOqlHkxfBOALmKxuLqqKjclzvvC97TfVCah/f6gNaBUKsOikx5V9SkuKSkpKTHEe8LvRux2dd/t6h4Xn6hnMmVvb01NbU1trSEn1rS0tJdf+fOrf/u/XXv2eV3zW7pq7aQXp61fv5E2mVQqzc7OfvjwoSHLVCgUxcXFcXFx4eHh4eHhcXFxxcXFCoVilOd8APTxG7/cF735I4bD9Ty2JRw6e5UW+sstgiHqU//tt9nPPFO1aVNrUJC4uVlYUNDk6Vm5enX2L36RtXWrSU5wLa1t9yJjRjuXRdSnsqqaOE9WV9cYOIuB3hARGU0s2QrtZ/zV58JFT+LTIOLCRc9xroCp+N5tg+eWj264flR9Z/eNlX/KTomvKxNUlpeKxGJigs6OjrKSIrFYJFP/HrOVMCr1uXsv0tVtP/UrYwtXt/1370UaWIcxqk9PT09KSmpXd7fh3rPb1X2P+wHi57D1RE5Obn9/v/6zqkKh+OPrM9/6z8LZ879c+MXyzq4ulUoVGR373Mu/DQ4OoU1cU1NTa4BONTU13b17Ny0tLTc3t6SkJDc3t7q6OiwsLDw8vLGxcYynfwB0eCes+L1YZ8fE1dRYK1izqWjN9rK1vIq1LlVrV+W5zb5bwraEg2c8GV+ylZub9Nxi3cIR1ads0SLBa68JCwp03wr59tuCv/wle+ZMqUhk4ImMkfLKqqCQ8Nth90Y7o0XUx/uaP3Ge9L7mb+AshngD6T3jYz+1VVVySVNdlm912JI23809uT76px9/9dFtMk24cLFEMmftEbaQaPuHRCIxZl0t63+qTHBXqWSqQcGtZf8TMf9H/K8mhs/lXPn6L5eP7vZzXxH67RKvNX+6GxzU2tbW09Nj3JaZklGpj4HeQ8TefQcNrMMY1aehoYGfkzsq79nt6h6fmKR/emVvb3FJaVdXl/5Trf+Nm/9458MFX69dsHTNO3MWvvfxPKJXa8PWHW/9+yPaxA8fPszMzJTL5XoW2NjYGBkZ2dHRIZVK8/LywsPD79y5k5qaGhISEh4eHhoaymI/xYHuHvEd+itrQorcXuUsCDR6MYELOK+6FZluebbEGL/RjngP90CG9p+JJQ8q34w8zKg+y1IXr89d6lK1dnHGiVUJ1WxL2H/qEvEv9Q/aS3IyE6JQ9sal5XoG3PW4FuIfGhufnidXKNNyijyu0a83VCOpT/233wpee43/wgsdsbG0t7KysoqLix8qlRkzZ9YdOmTgiYyGVCrN4ufeCgm/ExF7JyImOyevuqZWrL4aHpHxV5/aunrnPe573A/ucT/gvMe9prbOkLnYvCFfUHDoyAn9jcShIyfyBQzeaQxScWeq54K+zM8G+JuUie8IVnHvvv3rqHX/kEm7RrsJ5sOs6iORSL7inVWp+nWid+HmE1KpVCQS9YhEPT09IpGheyMbNTumVa6bLKsOVHXf93V8umzrr9pdftPh+t/dLtOaN/ysN+1blWqoPHjL5Xcnhi98/M5qB5NsoEkwU9bHZa95sj5SCgUFBYWFhcQvVLDFHW3veRCfqH96IqqqqqqrWU/6BM5u+z+Y/8XnqzZ9vmrTgq/XvvnhvLdnfyKVSn2vB/zPH/6iO31PT09ubi7b0uRyeVhYWHd39+Dg4MDAgEQiSU5Ovq0mMjJSIBCEhoYyyZPZ1IfelBIremTUpzjQ3Z2mAsWB7sNQPrGOeI/hQsrEhk+pectQ7WBneCnjoD77shv/fsdDV32c7v1n9/2dy8KWrOV/+VH8xSM5TWxLcD/xA/Ev9Q/aS3IyU1Hf3Hb5Rvh33rep4XEtmPhDd/rI+DQpC105OdnPPNMtELTHxPBfeKE9JoYo7+7ujvTcfXrVn+O8d6pUqrKkpOxnnunKyWFbDhvd3cKYBwm3w+7di34Q9SApPOp+SHjkzdtht0LuRMfGCQqLRCKR/iU0NLWMdqXG0NzSQqR8bt0OuXU7ZLeru5ePX3PLyHVI5xcwlo/oPaT9mGwbOspl6ctrbvw75sSC/HC/HkGUgn+22fMPjbt/1/WtQ3Oci1TSOapNMB+6n4MJFy6WSLYdvaJS9enGlkOXPl25/YtVm4jYztsjFAqNWVftjl9Vr/1Zy3fvy1NPXH7/JxVbX67bPrV669Tqbb+q3vZS5ZZfqrpT0o87Jn35U8XBV9p4Lxu/dQ2NjeSH1tLaSntp+HJI9TG+SmNmjFmfbD6/vr7e8HyP/lE+1GhtbS0qHqERWbt5x4Jla75ev2Pp+u1L1m5dtGLDrI/mz/vsK9/rN3///15nnKW8vLy5uZnxLYFAEB8f39/f39/f393dffv27VvaFBQU3L59WyAQ6MzK0lBqFY+lZaYtV70IK1MfcjlUOuI93N09AgO1Nroj3oPcoOJAtb5o/tK8b/iUakyjn+qljEMe71p5x59v+zkmrp4Tt/zfoY6fxK9wTFztePfjrdGb+h/2x9U+cLzz/qwo/2vlrNXYc8yD8SVbOY2Oru6A4HtRcamxSRnUiHyQEhB8TyhieLyWXNl7yT/s7NVbkQkZPWKpSqWSSOXetyLOXr1FhO4serI+1Tt3VquH8nTExvJfeKHC71LsidmVp37f+cPvWw9xWg9x0vf9d3VBSuWuXbV79xp4GUcSEX0/5G5U5P3EmPiU2ITUmPiUqAdJEbEJd6MehN6LDgq9G34vur29Xc8SdLM+eu6SHW31CPg5eTdv3fa4cMlt/2HymrWpubmlpZW8xnXbf9jjwqXAW8H8nDzGhbClTIjZS8vKS8vK2bIaxic8Guvrb/v7VZSUhN64WBf+Uck5bn/troSADVcP7ZZnH7w3/+87Jj9zy/E56Q9T5YnvyaS1Bm6Cnt9dMqa2JGbN+kil0q1HPFUqpU4oth29XFmeX1GWV1bKb2ut+cf/vdUt7DZmXbVbp9Zuf6l++5SKrS97z/1F086XarZNrdn2Us22qbXbX65c9/OeCx9Er3815etfNO58qWLLVJNsYF19A/m5tXd00F4auJBHeJhzWlpaa1ubgd7DGB4/XGact6OzMy+PdYCnQqGYMeud9+d99vWGHau2OK/csnvFZt7XG3Z8tmrTB/O/nPXhPKfFXzDO2N/fn5WV1dvbq/tWRERETk5OY2OjQCAICwu7qUN0dHRtbW1ERITOrGZSHxbzeSTUh4C20dSX5N9aW6l+YfiUzC/HCLmUcVCfhGbx72+GzYlb/pH/+xeyPd4N+vC9kDkr73zdO9hb1ln6vu/ba/lf/iXkbmqrhG0JLofP0UJ/uS6FJRU5hRVlNU3ltc1ElNU0ZReUl1QwJ1xjk7NOewZExKWRJclZ+ac9A8jQnUWP+hTPnt0aFES+zD66NuvpHzXxft919fWuK68R6lPqNjHH5acxLl8kvPHGaE9qETEPImITYhPS7idqBaFBkfcTQ+/FhN6NFApZRz8wqs8PP1z0uOx14YoPER6Xrl65cnXM6nPg0DHyZLjv4NHzP1x+EJdAvBUXn3jhoue+g0fJCQ4eOc64EMuqj0wmKy8pKS1MaK29evyzGVcW/Vp++39lxZvPfDBNePaPOWt+k7bs561rpkijZyqEAXJpg4GboFQqf/aznz/23LSnpv7uqam/e2rK7yY++9KUKS+bqqU0t/psOXxZpZKpVLLpV95XqWRDKqlKJVOppOv3eZSW8EuKsooKMhrryma9+363UGjMuuq3T63eOrWN91LMV8/fXvxcx+6XqrZObdr+YtuuKY07XqrZ9nLdpmcDFvy8cstLtduntu2cYqptrK6pJT+6zs4u2ktDlvCIDXOmJosSk5KEPT2MPVYJySmG1HK3qzvj7BKpNCs7W0/LceDoyS++2bRmx551u9zW7ty7ZseeVVudl2/c9fnqTe/NWRgYxDDsgKCjo6OwsFC3PCAg4N69e6GhoTeYuHPnTnV1dVdXV0CA7vm9ONDdI75Y3RdDtt2aDpt4svOGSFtoz6Bu5GmpjOJALVfqiPcYflNLVQIXcNRQBURTPFxa5PYqbTKa+pBzaCxIMw+lVGtB1CledSui5GXILdLyPfX7xYHumvwOrUNLO8Mz8pQ6n5VOV5nmyyAXoJlGu49t+BVVfahfJVOHnEd8fCAlWUVWf/gbVrFQL+md5hc/O3z+keSDKpXKV+C9JHhxj1JYL6r7yP/9pUkLXarW/vZGQqN0hMd78g6c5h04rf9vNh4+fJieU1BW01Tb3ElEaXVTVm7Rw6Ehxukv+oZ8e/G6WCojXiZl5n178To1dGfR0+GVMXlyuI/PZU/Pi5cu3dzzVvupZ5p2O2RP+knTbof2s1OSdv6swPVx3zVTWk49l3Lqk7Rnnx1tKru9o+NBUmrUg6T7ien3E9NjE1KjHiRF3k+MfJAYE58am5gWHZ8Sdi8mi5/LtgTGDi+5XO53M+hmSPitsHs3g8Nv3AqWy+WjrRtJYVHx3n0Hd7u637h5i22a6wG3dru67913sLiklHECtt4iA8/Apujr6RTWBO7/7I05//ib83/+5vr6z2sv/aFi54zspb/s2fvzrk2/6Qp/Q1n0uUyUJpX0GLgJRNP453++/c8P5v3fx4v/8W+nv735PtFMGl1bqdTMHV5SqXTPGd+a+sKa+oI/3vj0n+c/LK/IKi3LKC3L9A6LenffZa7zVd/gFU2x/7p3+OnGu28Ys6KyzVPqtk9t3vlSxupfes97pkCBxeUAACAASURBVJ33cvuuKZc/nfbXX03OX/di486X63b+ymf+sxVbprTtmnrzCxN0eJGUl1eQn15XVxft5Yizj6rDa7TDnA3chLGrT7dQyOgu0bEPjFGfHpFIj/pUVlc7fb5s1dbdm1wObHI9sMnlwIbd+9bu3Lt80675S1at27Jdz+lej/r4U7h586a/v39oaGhYWJi/v39RUZFMJmttbb1x44bOrMWBmlaV0vizZ32oM2iMR0t9mIf5qFQqqvoELuBoS5CmWDsRU+S2YPi11swa9VHPWuT2KqWUXAj5giFDRM36jKQ+GmOgdGexCI3hU9Ln0k7YdMQHUj5p3fwRy7p1e95YOuSIvj1d9aHXg8bgw6GXr+V8krDm7cD3Y6qiVCqVtE/aIe9wvPHR53HzeBVrd1euf/lazuBDZgsh2eF+cof7Sf1/60EklmbkFlc1tNU2d1Y1tGXklUhlrLcCfHvR/+QPfiMuk4p+9Rno7FSpVJ7Ht7Qe4uS7PNF8YlL9hsnZP/tRw+bnWg9xvlv+66aD/9X5w++zfbdmPP+8gecyKmKxOD07Nyou+X5iWuT9hIqq6ubW1tr6hpT0rKi45PuJ6VEPkiKiH7DNzjbWRy6XB9+5FxEbH3InwhjvIcjLFxCn9XsRUbrvht+LJC5kBQWFbEvQrz4lpWUlpWVsTbvxrX5Bbo5U0hAf7j7nn3+f8fKzi37zTNSKP4XPe7n7+N9FZ34jv+vUmbla2XSgvfFOdkpsbVWV4ZtA2M+/5y76/JvNH8xdbKT3SCSSI8e/NaRJOn32+zGvheB/vD55McDx+RufPOf7yUf3di5O9HjdY/ZAvzypIP/poxWLy/raxOfSA99a63Hpr0tctm34qzHrqto6tXHH1NptU9t5L1+b/2zaN1Natj6TsHf2J2++xl8+qW37ix07Xkxd+UL4khe7dr1wb+fbRm4alfFUn/C7EYYPcw6/G2HgJoxRfVJTU5uamxndRSyRXr8ZNGItPS5cYpy9pbWVrcOrqal51uw5X6zZvMn1wDa3w1v3HtrkeuCb7c6Lln2zZOXa46fOKJRKthPxwMBAZmYmY4fXnTt3fH19fX19U1JSCgsLa2tro6KiMjIygoKCfH19S0tLm5qa8vLy7ty5ozMrS0+MXvWh9dbQ+8L0mI9GP2hdTepylh4oeiKIucNL/YLuOOqpCU+iJZjG0OGlliTmXI7hU+oulqXvUSvvQ7zW+tAZvyCWr4FWXMyS9Rmpx2zG7cLZ93d8FP35LK+ZGY1pPUrh4qAFC6MdiZvb1xfunhnM4OgkW/ccpQW1XPdvNsqravNLqqsa2vOKK6vr9D3B4bxP0FEPH8ZhQGzoUZ+C996rvnFDpVKlXPyKUJ/a/T9qPcSpW8XJfpqT/9XEfJcn2s+8WHZimjgtKWvWLAPPZboUl5ZHxMZHxMaTJTKZTFBYHB2XfD8x/U5kLNuMeoY5y+XyOxFRxnsPQTY/13nPvt2u7kkpqdTyxKQU4lSek5unZ3bLqk9LU1NBbmJMyLGZv3nprV/+3PUv0xLOzJQmzZIkze7I2loV/7X3qX/duuaeEHM3JS4uMTZmVJtA2I/j4q9Mku/JyxfscT8wYsKALbtmOP/j9cnBlPMHU85vSTrzZcK5mfHfvxt1YPrJv0/ZenNeUV9v/fvnVk5888tN72c//DJr8L8/+9qYddVveqZi85SidS907ngu+NOfB3z67OD+abXrJ7Wse6J292/5u/6Yv+OV9NW/PP3BpNZdU+u/eczITSOprKwiP7S29nbaS0OW8IgNc6bOlpWdXVlZyXaXFs1+nPfsS8/MMuT2LqlMVltbyzjMubW19e2P5i5cvm6jy/7t+45tdj24fe/+zby9azbpy/RozvLsw5z5fL6Pj09sbKxQKBSJRCKRqKWlJTo62sfHx8fHx9fXl/g7myEXZaT6MOdGGIf5qFSqsahP4AJNlxX57tjUh7JAevZIF+16M77S6bjSVQt9U9I/K13loN5mpvu5uzMuZZzUZ3FMxayog46Jqz+MWPS29/863ZzjFPkJ+Vyfr7IPL46p0DP7JudDjC83OR9i/JuNh0NDmTmFuUUV2XnMXyNJdEL64XNXb997QCvvHxhgm0WP+lTv3CnYuLG8vDzypFOB6+OZu58+9tXvAta92HRwQt0qTuZTE/K/frL1zJTiuKup69bV7NljzAmuvqEp+kEirTAuKe1+YnpMHL2cRP8dXqbyHoKbgbd3u7pHx9ynFkZFx+52db8VFKJ/Xivo8JIKO4pPO6/wcFtU8GDH3tUzAy863fJ8ryj7RHjgsavnjvT0MPdzjbgJUrX9mKqfS1BQSPQwMobb/kMlpWXGr4Wa9fkkcteypB/+7jG7rbP+lcOJva0LLm17/OU/vPL8m5/8dH3th/FDU95zMWZdmSFukUGHkqPPpAYf2uz0V6dXHzvz8XO1e//Ym3YiM9UvKs5HUBQRGvDtH3/19Ed/fa4z1tCeIP1QR/Y0N7fQXhq4kEdYfQoKCjKz9NnMmO0nNy+vqqqKdhrt7u5+72MnpyWr1u1y2+p2ZNfBE99sd36QkFhdW3tL5xmGuvT09OTl5Q2xjGOQyWS+vr5eXl4FBQVCNXl5eTdv3vTy8vLz8wsMDPT19ZXJZDqzjkV93HWyGpReFL3mY1iHl7o40I0YkUMd8mOI+rB2eLkFkqujLYe6LYwVp77LtLG6I31GnpIhg6b5ZOPjOyhdU5qeqeL4EbrARurwonarsXV4jaw+x3Ob/1/wtQ8ebHdMXP1Jwso5D74mH2m4vmDXW9F+x3OZNZ1gw679xL/UP4i/qeWGIJXJo+NTFQrWdCmBRCo7ed7n0BnPW+Gx7Z3dKpWqpa0zMCzmuys3yqvrGGcZ8eb20sTEJNeXStyfvLX1leBAP9fFr15c+atSt4mE/aRteL0gOZn/wgtjuLmdhkQioZUkp2VGxSXnFxazzTKeN7d7evnsdnXP5udKpdLCouKi4hKpVJqZlb3b1d3Lx1f/vJbN+pBkpiRIJY1tLQXRd651dZTLpB1EeUtT04jz6r+53VTeQ1BYVLzHncF+3PYfLisrN8kqRGLxhgMXVSqFSiX/y81Fsy5/2tfbnVsU1FayqsjrxQkvb+GcUXLO9nJ4uRN2pHP+utqYdd1P8k9I9s3g3y6pSjr1vdvUX73493/+tU9RmJAecif8cnycT0LC9WPHecdO7N3G25BZEGf81jU0aO5mb2hopL00fDlm6vBydTNPh5eEQm1tbUxMrEQq1RMisYQYpkexn2z9s0ik0oSExM7OTuo5VCQSzXZc8J9Pv161zWWjy4Ht+47yDp38cs2mtnaD7sR5+PBhdnY2k7hoqK6uvnLlSkBAQFdXV3d3d3d3d0dHh7+/f0RERFRUlI+PD8ujhtjyDsPdLJpmUWuYc3ygu/ZgFrJl1W8+WqrCOBKZWqyRoeG+LjfDsj5ac1F7uCiLKtIq0RrmTB0b7K6VdmEYMlxM/yRGMaWuY9Cf/cM2Hpk2jdZSqK8pNWF8whD7MGcDdkyPwtYpPvz/jThGfaThgtQTU3z4HoWt+uddu8ON+Jf6B/E3tdxA+kZ6eDpBTUPT0e+vHjh9iRrHPbzqm5hrGxmfJmGn7ujRotmzI75bWX/61x3nf9d+dkr76WfbTjyVtHNS8d7HMr54IuvZX+TOnFl78KCehYyNjs7OO5ExsfHJPT09bNPUNzabfL1sHP/2zG5X95TU9IuXrxKnykueXimp6btd3b89fU7/vOn8AsZyYjnFJaXFJaW7Xd31TGNc3YdJenA/OT7O87uzY5iXbRPMRFFxyd59h6jtpfuBw+XlFaZafo9IRKrPq1c/GOjv6e3t6pd/OZD1Py+89w1na8KHa11PXA/98zbvX2/3fWXFUWPWlZ7mFxb6fVZW2LpvFlw873Yr8GzA9W9Dwy6mpfqqVPmVlfe/O7cnLcVLocju681ta4k21TYaj0KhCI1KVCgUhkw82mHOBtZhjOrT1dUVERHR0dE5KvvZs++g/uk7Ojrj4uL7+rTubZk9Z967cxctXb99zY49a7a7Ll27+YtV69/64GMDz+wG/pBFVVWVl5dXSEhIRkZGamrq7du3Q0JCQkNDvby8dLNQY0Zvw6hvmA/QxqTPMbTQ7Kmtkj8F5L8edpFQn3djLv0pIF/PPe0k32zdw/jym617GP82FSKxNCo+1cMr4PBZT9+gu/Gp2eQ9X7roVx+JRJLwl78kvfJKS3Zy2uWvUs/Pz/7u3/wzs/gHf5Ox++ndn/y/9NdeK5w1SywUGngiM5D29va7kTExcYntHR16Jhs39enp6XHZu4/aDLsfOEy9ihWJRHpmZ/MGAx9pePDIcVNtiN/lS2ObcZzVRyKRlJaWkc9S2nfwSEVllQkX3tPTs+HARZGkSyTpEok7uoUtnV1NQ6L3o4+8+V8f3eRc7ZocKPrnzca/5g49HdL/ygebjFmXSlXw8GHpkSPr01JvisVp/QNFvb0CiThdpapVqYo9PU+eOH6orS374cP8h4NZYnG6qbbReEalPqMd5mxgHcaoPhKJpKCgIDExacQsDtV+wu9F6p84OSVFN7/yp7//3+IV65dv2rVmx55Fy9eM6mQtl8uzsrIM/PlSqVSamZl569atK1euXLly5datW5mZmVKDf0neEPTZDMzHcCxnPsWBWr2XRlaiXdE/J6LsL8E+/7rnMyeirF1hUAJm1WYXWlDLdf+2CCOqj1goTF+/PuW55+IXLYo5cSIiPDzpzp0sL6+8NasyJ0/O37nTtN7T1NScJyhMSkkvLi0Ti8X6Jx439amprRu+LHQ/GBZ+r6Ojo729PSQsnOyXqW9o0DM7mzfk5QkOHjmuv504fPRkXp7AVBtSX1s7thnHX30kEkl5ecXRE6eOnTxtWu+RSCTCnp5V2/e99Id/UmOw7Q3ep9P+9p8FP94U/GrawG+TBibsz3789WXppfXGrEulKr558/ujR93v3vEYGioYHEwbGsrs78+KjPS8evViV1eXRCIRi8USCRH6HHqcGZX6mImxq09LS0tEZFRlZZUh9hMV+yD2fpz+ySorq+Lj4yUS+lXvH1+bMdvx0/8s+OKTxV/NePPdUZ1/c3JyiJ/3shKgM48+jD+0MXYGHw65ZTW4ZTX0DRok6I8KI6oPQSefX7VjR9Hs2dnPPJMzZUrxf/5Ts2dPJ59v+lPdaBg39amrq3c/cDgwKLi5pYVa3tTUfDPwtvuBI2NTn0cIG9gEGt3dwm41xPiJksyv2s9NqrswLXrvpIU7tn+4/XBQYk5nZ2d3d7cxKzp8yLWlpUUikbS1tUqlQplMKJcLxeLO9vZ2E22KuVAoFHeiH1n1kUgkAoEgImKERI7hER0dY8KuJZVK1dTUVF5ebsIFAgAMxED1AQDYGwqFIjI+7RFWn66uroSEhMTEROO9JyUlJTMzkzbKxxiUSmVWVtYA+823AADzAfUBADAil8vvJ2fJ5XIL1sEo9ZFIJC0tLXfu3MnNyzfGewoKCqKioiQ6XV3GUFhYSLtTDAAwbkB9AACMyOXypIzcR0Z9xCy0tbXdDAxMTEzs7Ooih1QZGN1CYVJS0s3AwIDQqJDIBAQCYRtxJyaJ7YwBALBnZDJZGl8gk8ksWAcTqI9YLG5oaIiIiAgNDW1uaTHce1rb2kJCQu/du1dfb9RAdwCAFTJuZzEAwCOEVCrNKSiRSqUWrINp1EcsFotEovT0dE/PK9ExsW3t7fqlp72988GD+Muenunp6SKRaHw2FQAAAACWRSqVFpRU2Ij6EHR0dMTFx1/44YeAmzeTkpJKyyoaGhs7u7o6u7oaGhtLyypSUlMDbt68cOFCbGxsR0eHuTcPAAAAANaDVCotq6yxKfUh6OnpKS0ti4qKCggIuHrV+/z58+fPn79yxSsgICAyMrK4uKSnp8d8mwQAAAAA60QikVTXNVi2T9ws6gMAAAAAoItEImlsbnlk1EcEAAAAAGAEYrG4rb1DLBZbsA5QHwAAAACMH93dQstWAOoDAAAAADsC6gMAAAAAOwLqAwAAAAA7AupD5+DBg3K53NK1MBk2tjkAAACAkUB96NiYK9jY5gAAAABGMkb1+fZ+xYagQj3x7f0KS22SkbC5QqPAvTbtcz3RKHAf/9qOCNRn3Jj+Wv2owtL1tQv4nAmjCkvXF4zMtGknJ08+OnnyMZ04OnnyocmTD1FeHp027aSl6wuskTGqz9qAvIw6BRlptYrUOkVSlSyxSpZULUuolK4NyLPUJhkJmytUJi8eVCYMKhMHlYmDyoRBRdyg/MGAPGZAFj0gi+mXRlUmLx7/2o4I2+YUFBae/e48z2WvWCzmuezluezNyc3Lyc0j/iYKz353vqCw0KzVs5JqmITpr9WrDAbqMz5AfWyPJ5/cP2HC4UmTXCZPpseECQcmTDhAvPX4464czuEnn9xv6foCa2SM6rPmOj+jThFfKYurlMVVyu6XS2PKpVFlknsl4jtFonul4jXX+ZbaJCNhc4WyhEWDyoQBeeSALGJAdq9fGt4vCesXh/SJgnp7bvb1BJUlLBr/2o4I2+YcOnK8sKhYJpOJxWKZTCaTyYhf2yb+JgoLi4oPHTlu1upZSTVMAk19YuPkf36jIShEqlKpfvAUux3sHnxom+qTwXNw4GVQ/zAH3o6aZWfwHDiO3rp/66JtNhw+h5PN4fA5HMGUKaV/f6PszVmlM2cWTZ+e8/jjUJ9HhcmTj02a5JKW9rPy8p8UFg5HQcHjoaEvPvaY65NPuiQn/zw//4lNm16YONF18uRjlq4vsEbGqD6rfTMz6hTD3lMhiymXRpZK7haL7xSJQgp67hSLVvtmsq4zg+dAO1Uxnb2o51MOHfIk6O2o8572BLS16DlJDsPmCkX3Fw4qEwnvGRj2nuA+0a3enptKoX+vMKDo/sIRFk3Zcup5nGEqfS2JZiFa73s7Mm4b2+YQOZUR4bnsHWmjjMJKqsGMtyPjfsQGTX1Wrm+f/lr9f+a3pGYoiR6u6Fg5u/qw7ckadL/eDJ7DqGpozLrYIXdDll1QvUrKe7q7P+2kQKuho7dmPayVZ/wkaOpT/Ne/dl661NfcPKTNQI8Q6qMhg+eg+3lSP3jqeceBl6H97TKdsUe9V+mBoj4TCwsnFhZOLC39SXU1x939FxMmuD71lHNx8cSmJo6z81MTJ7pYi/roHBy6zaDu5PQDPIPnqHvc6O74+hdtQFWZDqURThom+m7HjzGqzyrvlIw6xYMK2f0KWUSxaOP3of9Y4T5jhfva70Ju5nYGF/Ss8k7Rs1bdNp3x0o3leo46N9u3xHBmNfDrYnOFvKgFg8rEAdndAWl4vyS0j/AeYUBvt7+y00fZ5ZcXtUDPJqtrQT2Jj1xBplO71n49fECxNzpsm0PkVEZEJpOxbw7lYNA+PimbMsIRYYJqUFdn2pzDWNWnW/hQpVJt2tk5/bX6JSvbgkKkhPokpyoNzvqwfaNmOAHpMxYDIPdHpqppFqx1MKvbS45G4rXnoh7Bmvrp+NHIXw8pPblPPNFx+fLQw4dDDDxUFBePRn2o9SVrpClkuTLTqi0xNb2I+bTAMpX2p+bAy2A6iYzhqyW+GOazr87OMvwlUMuZW14j22MKkycf+q//OvD889t/9jPnp592mTTJZdq0zQkJTzs7/5zDcX3ssT15eU/U1HB27Zo0gvqQn5cjj+WT0/oCqV+r9helKdCagSbzo1cf3ZXpSKYDj6dzmqK0MzpbZcAZjVV9DLyweTQYo/osv5KYUaeILZdGl0k3fBf89o7zh0JzD4Tkztp2fsXpoFv53Su9kls6utjXm8FzZD5Sh/cYffuFtvowLkHrC/Z2ZL6CYV4Bmyvw780bVCT0S+8Me09PYK/wRm+3n7LTW9Huqejwzo2c393VzFplR2/yfwyVptaFIeuTweN507aW8WjV3SZzZX28HbXWpj5a6JeLTJ+9qatBWb7pTq/DCx+9+uTk9U5/rX7p6vaauv5de7oKivpE4oc7nLuuXZe0tQ+mZigNUh/WDSFPMrT+HyM227jzlvpDYszlDguOzj5K2V2Gr20phwexVD35zNGc0Qmhyfnxj8X375OmI7x9u2r+/KJX/1Dwq18VvvL7srfeqpzziaHqQ9vFNYc2tWlka7Y0LzN4DhwHBwfa3sukPqxTsXb16e8D1ItuHbVrpP4yGE+8jEqm7+w0NiZPPjRhwoEnn9wxYYIzh+PK4Rz66U9d4uMnbds2ZcIEl1/+cptA8LhB6iPSOcbpnxz1bU2boV991G+Rnx7l83Dg8fR8cNpLZPm0yEND8+3Q6zPq84H+C29KTpfxa3f0tiP1WXY5LqNOEV0mjSgRf+By6Wh4fnSZ+G5xz77g3Hd5F/ffr19yPnKNV2JMfvXIVWB0TBZvVe9JBmd9yN1Du0jPF8XmChl3nAYVCf2S0D7RbcJ7lF2+io4r8tbz8pbz3aVbcyPnZ937rL78LsNCqeqjLQ2aerHsPsTWUjKdo9vNzKM+bObIIAv6O2WMqsZY+3sMZUzqc+yUkMjxVFX304Y2/+97TdNfq/cLkLCoj54TkNYFp8PIk41yM8d83iI9gGztqY2jQXkrRsfRVR9iNhbLYs//EELTsHET6T31G9ZnczhjHebMts8xb62eNpJoZLUWx6I+rFOZWH0Ye7l0r3GYsz60BZk563PsiSdcN216wdX1p5s2Pf+zn+2YPHlXWNjzzz+/5dlntyclTW5snFBWZnL10erZNUB9tCcbKeszYic0/WPXub6na9YozgbaddH+StWv6F3W7K+sAg6Hc/HiRd2/ScaoPkt/iEmtkd8rEQcXiuYfC9p4Kfpievt3yS0rz0d8cjhwc3jVkvORMWWiFZfv69Zp+DtmaPwpUNRHJ7WglgFDe4g0izRkh2BzhZRgxwH5gz5RUG+3n6LDU9byvbTxpLjusLh2v6ThZHveV7mR85U9d1JCmbq9KOrj6OjA41E9TEt99G0VuQfqHgij3xyjeprYnICxXO952JhqjHCCZ+mOYy7WfO6OPHKx9Eu+EU4ohPpcuy6Z/lr9X//RIBI/LCrpm7u4df7nrY1NA8reIUKJnN262NWHceG0NKcZsj60xIKhZPAcOI6OjjrNgO5ZWnsvzuA5OPI0G6Wz01OPEO3cv87pfaRvhRAaeUEB4T3Kqir+hAljVx+9tsF47a6bNdHkR2npIlb1YZnKhOpDLJ8xI6FOVWhd8mu+PvW3w5bj08H4NnLy5GOTJ7tkZT3W2MjJypr43HM7J07cvXTp7370I5cXX9xWVPST5maOOdSHfGGY+jD2VBm27zL0c4oop37mK08trR7112+Y+rBU3wrVRzSS/YxRfZacj0ysknpldnhmtC/3uPePdcc/PeS34KDv39Ye2+6bRKiPf07XkvORzJWiftS0o4WaCdenPrTF6O33H/7CyF1P31mezRUSAuf0SaJlLd9Jm85IG09K6o+K6w6Javb1VO0R1x0h1EfedjEhcA779pL1pWTEdRpXR2/iXXWix9vRgeetnjGD5+jo6KA9FkIvbJuTmJRsiHMkJiUzLHRU6qM3eWJMNbROU+RepBFErfc0w1FGKKZc5VKbKa1OAObDnFCfwYeq8EhZUUlffcPA3/+vkdCd9z9p7hY+XL6m/c9vNMQlKIxSH805lqlBGfUVgXozRzwwGPB2pHReURanoz6U2jGoD2U79Xd4aU4Ao8z6PBwYINRHFBFB3OFlavUhP3mtiuju+uQCMqiGrZvO1lkfw1Ta37X2EBAjmyLWtkzny/R21LpcENES7OZoEQn1yc9/oqODIxA89t//vXbChH0//rEzh7N/ypTNeXmPNzWZQX0o9qlffZgtT5O11OcZwyty4PEcOY48ho+P9RihbQXLwAp6rXSXqrMw9qyP5hC2TvUR6bWfMarPl9+FR5eLL6e3f37Ef+bGUwtPBP1r47f/2vDt+qtxnpmthPp8n9L65XfhzDWifNTax7v2IAAD1IdyRnd0dKB/w1qnI6ZWQfcLY3OF+zc+7hWGSptOSRqOi+uOiGsPiKrdeipdhBU8cc1+Qn0kDUfu3/iYfXs1W0MODtQ9M2pdXTnwMrwdHRwdKcOjvYfHR/B0B/swnP/N0uFluqyPMdVgWLC6AiwnNIOKtVob5iwDcztLvcOrs2vw/U+aqQ8wXPhlq7J3SO8wZ8M6vMaQndGP5rw1Fv3RkjEHXoamf4py9au9JerdmMEKNC2ISbM+A52dQ0NDQ6qh3tpa/o9/bIasj+bToNbGgKyPeib158KmPgxTjSHro/ku9DdVhqiPenEODjq6QDnBOrKP9B4rhPrk5j7R1MQpLZ2wefPzkyZt5XAOcTgHn3tum6nVh6HuBnZ4qWVJc1FLlmul+pnq4+3IdMZiUp/hPc7RW0d9KMscQUz0XzCxqY+mRbNO9eGYI+vz2ZnQsKKeTw/4cL92W30h4hq/3S+33Yff/n1K86mkZlJ9PjsTylwp4hNjuC+SQX10vgT2rE+GJjmi7cvaJySyiOnrYnOFaL+PlF03JPXHyGRPT6WzsHxnd9k2UdVeUn2i/T5i2V7iHEDZ/R0daYeJ+gAhc0LkYHD1ccXTuWgYCbON9THUfZh7AkxSDd0zvPnUx4CPnFQfkfghzXuI+HxZm0T6UK/6jJT1UVsD0xlqrCcf7SOQrRJ6Ztc+KtWLozbyxMHu6OiomVJnPVpCZOKsT8eFC0NDw97ZHXBD8NJL2cPP+JnA53ByH3+clKGRttaQfUF3D6JUVHusD6Wc4+DoqFd9dKYyYYeXei4WtKpA8WTiyoymsfSsD8WNTaPtVPUpL+e4uz/19NPbOJwjHM6hV15Zk5//mFmyPhR0Pl9m9aGLq2YW8hDQ8SzdybVPoFpNntaXo52P00kY6E2+G5r1Yby1hugQtTb10e89ojGrz+KTt68k1/zvuiNrfoi4ktF65EHDlsf+/gAAIABJREFUwQcN+2Lr98bUHYtvJNVn8cnbzPXS9GXqnHe13YWpnaerj04XtNYXoenA0JZwtq+KzRUirn2oaPceTvZUuQoreMLyHd2lW7pKNvZUOJPqE3HtQ5bNddS+b43SsULZdt2sj/dwrcmBzqZRHyPvKqfnB7T6YbTK9V/pGVkN+odI7Y03vMNL/fXQF6l1hU7Ju7B8/KT6XPERs/14hZevxCj1od7eoXN1OUYMumRjP3GqL2B0L2S9HSlnRfW1ibrpzqBJjno2dTeKSbM+eZN/Ls/PIz75oaGhoYcPe6uqpRkZMj6/r75elpXFN1R9dPa5DPVNakwtnvanpnUwMOcX6PubvqlMrT60jRwpbaQ15oy6C6q/ae2Wkce4w7IcmvohO7yamzmNjZycnMenT1/zi1/smTZtc2rqpMZGTkMDp6LCjOqjfcagKwvzcUn7RLWXwLhi2rva1xGOOj3NlJfqD189pWYpBp0mxn5zu5Ff7LgyRvVZdDwwILfLM63eM7P18IOGA7H17rH1e2LqnKNqDz1oINTnbHzjktPM6qP+DnTO2eTHq699zyAHDFAOQa27q5lPhJQdQg9srhDu9YGs9bKoam9PpbOwfFd32bbuks1dxRs6i9YKy3cS6tNdczDC15F92Zp+Lw6ZndA+Y3g7ao/1ySBUzoGXQUkFWT7rM1xh5oyDVss0QlVNXA3Gp6zonGIYiikdASMNc2bdIlJ9iJHOjHHFR2xEh5f2+ZGc3MhraUPUR89ZU3esD0tCUDuDpjmKHb21NyyD50gfcKtOIxmwR9EghCabw8n96VOtR44MCLt1n+ojCg83OOuj/jR0nUu7m1qnjP496egJ5WqCXX20rjlo+4v2nmF69dG5WBsu1RIx9RZrp+doV5smUZ/s7Mdqajjl5ZyKCg6f/5OsrMf4/IlVVZzyck5lJae4mLN790iPNNRuQjQbobXNrMbP+MVqfePayRPtqysH/cPr2A5KospaTR75Btm2cDStKMuZRC9jf6ShHajPp0cDfLI7LqS3nkluOZXUfDKh6XhC05G4hoP36w/cryfU5+vTt+PyK/WtXOv6UPv4ZWzfyakYvhliRIz2sJ7hc+oovnQRuyuEXpktbfYQ1x4R1xwQVbv3VO3pqXQRlvO6y3Z0l20n1Oeu77ya0hj2Zav7vXRPZsTAZW+G59VquxL50bA0kzrbyLY5h4+dyM3L1y8cuXn5h4+dMOAzY4b5VDnu1Rgt+hLDeiHVRyJ9SDzK+f1Pmg+fEB47JZy7uJV4vKFRHV70JCc98z3yx82IIeqjp69Cq+1jrMRw/Wi9XJpGUnfYD0OHFyU7pO/kS4f6ExZ8Didn4sSyf/2rbvXqJlfXZje3xl282mXLiqZPH0XWxzbRo91sn+7Il5Lq8x2lETTFaB/y5nZn56d37Zq0a9ckV9en9ux5ytX1KeLlrl2Tdu9+es2aFx5/3Cp+yEKTq9M9J7L4D9tByZDbYW3eWIYfjPFgNyTr8ygxRvVxuRaz8OgNPbHLK7qprcNSW2UMrHd43dkccvl9PZEQuq6zvXH8K6wfts3JFxQcOnJc/++GHjpyPF9QYNTqtS4CGRinaowA5alJRnQe4edLrRD8fKnt8eST+zmcwxMnuk6c6KInHn/cdcIE/HypDnTLNc0ArEeOMapPTU1NXl5eDjslJSV1dXVtbW2W2rAxw+YKxCbz2bHOTWbbHLFYLJVKpVKpSCQi/iBSLLqFZq2elVSDejoY8+ULWycXW5h0AwAzUB/bY9q0k5MnH508+ejkycf0xtHJk49Om3bS0vUF1sgY1ceGYXOFRxQb2xwAAADASKA+dGzMFWxscwAAAAAjgfoAAAAAwI6A+gAAAADAjhiF+ngDAAAAADzijEJ9hAAAAAAAjzhQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfAAAAANgRUB8AAAAA2BFQHwAAAADYEVAfYC0MzJiBQJBh6f0RAGCzQH2AtWDxthZhVWHp/REAYLNAfYC1YPG2FmFVYen9EQBgs0B9gLWANg8IsRsAAMwP1AdYC2jzgBC7AQDA/EB9gLWANg8IsRsAAMwP1AdYC2jzgBC7AQDA/EB9gLWANg8IsRsAAMwP1AdYC2jzgBC7AQDA/EB9gLWANg8IsRsAAMwP1AdYC2jzgBC7AQDA/EB9gLWANg8IsRsAAMwP1AdYCyZt84J53IUeadp/MZDmsVDnzWAel8vlBbNNr2dplIm059etQ5rHQi4JZeJgHldnBcE8dUkwj8sKL5j+9kIebyF9KsbKj/QRke9q1Zqx/sYD9QEAmBuoD7AWTNjmBfPU7TGLLAy35bqSQpToljMtmwVG82GdQ0u+gnlc7sKFNLtKSwv2WMiwTiZt01cuFKZ5LGSqh17zGZ6PWD3DovV9VGMC6gMAMDdQH2AtmKzNIzMnzM3ycClNinjB2i07u0Doa+3paZHhpTJ517CHaLxDk15hSP0w6AlLDbWKWV6wZG9GTOcg6wMAsAWgPsBaME2bN9w6L/RI01YDtTtQ+2+0sjE6+aGFPB6L/bB3idFzOLoJJHKK4ZUP/y+Nltihvx5pXdS6UUp168MwveHmgqwPAMAWgPoAa8EkbZ5aN6jZG64mu0KXHV4wUcImAIx9QcE83V4pIbk2LdXQnU49xfD/0zwWcnkeHgu5Cz08eLrqRRmvo64fWVUm9aGPRaJuF8M26sn+kOswQ2JHL1AfAIC5gfoAa8F0bR41s6JutNUSo8nYaEsPJelDNvOMeZVhu2DtTNPNstB9i8w+0brA9EBZBFV9aEvQNhleMLPaqBdEvMlmfLQMFGPPne4yTQDUBwBgbqA+wFowtfoMawjpNLREEM0cPHjUfijiX7b7v8gR1IxZFwYloCRjdHMvwTzuQo9greSUzuJZ1Ed7/cG8hTyexlKYdIQ6YJlIeRkgMwwL0zMSyligPgAAcwP1AdaCZdo85qwPm/poWwDjPessY2vU72hLDJfL5fF41CwSJTulfc+7wR1eBqgPYz6K4UOhz8SO6UQI6gMAMDdQH2AtmKrN07o/nT74hSFVwh0WkJGzPjp3Xuk85sfQYcXUUczDsqPlPsE0dVHXijosaUT18dC9tcyDp/MUobFkfYJ5XB6PZ57xP1AfAIC5gfoAa8FEbR7NJITaPkBYhVZHmIFZH5Z7rrQf8zOi+jCkY9STUealW426H41yS9jYsj60PNVosj5pHjzthyExGhFdm0YP1AcAYG6gPsBaMEmbRxvMovUe2e5TH+2n6fvRuudcvTDNwBu9T3imPpuHJXdCq4NujfVMRPWrEdWHdd36bwBjr5LmeQHE56D9CEYu3TBHfEKifqA+AABzA/UB1oKp2zyG3hyGdp6qPsTt5eqcETXPMlJjrlYj5qyPlhBRpYscJ8PW86TT38aO1kMcafLCdPuaVg0JKPXU7W1j+xiImTR3zyHrAwCwdqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbR5QIjdAABgfqA+wFpAmweE2A0AAOYH6gOsBbLNQyAGoD4AALMB9QHWgsXbWoRVhaX3RwCAzQL1AdaCxdtahFWFpfdHAIDNAvUBAAAAgB0B9QEAAACAHQH1AQAAAIAdAfUBAAAAgB0B9QEAAACAHQH1AQAAAIAdAfUBAAAAgB0B9QEAAACAHQH1AXZPMI/L5XK5vGCTLbG1IO7akZUfr/PK1y5vyAh0XbDEI7nVZGsCAAAwWqA+wBZpSDy3bNkPBiqG6dVHmHB6DpfL5S715KtLWguiPNbNnsHlcrnc2fsi6ky3LgAAAKMC6gNsj9rbO2dyuVzujM/OJTaMPPko1Gd4Uj0s9EgTCoVCvudSLpfLnXM6Qdt6uDMXuAVmsFZq5OUbsG4AAAD6gPoAW6Q05sRnM7TtxxirIK3IYPURtt51m8Xlcmd8ts5A6zG6klAfAAAwCKgPsFFKg3nvcLlcLnfGZx7JrSZSH1bSfiBU6539EepeNr7X8hnqBdCtpyHRc91i1+BSU20ssXFQHwAAMACoD7BZWpM9hn1k+y2BnukM7/BqTf5h2eL9d+nGolmRRnyEQmFr8rmFXC6Xy91wvYpSWhB2ZMFMQsqWXM4czQaxA/UBAACDgfoAW6Y02JWSXBlb4kcjFPyry2ZwudwZs12DClop6yDSS8PZJSpqJ3qHF1wq1B30E5Rlqlu9oD4AAGAwUB9gPxirPkJhQ+K54fzOJv+sViFlUNGw3dBRy8+Mz1yPkNYzY64r26CfNI+FY6mjbk0BAACwAPUBds/obm4n7WfmktOe++cO/6nnRvrSYNfZ5KCfGbPXeUQVsCd7oD4AAGBuoD7A7hn1c31I++FyuVzuO6u9gs7pE5aFHjFq+5m14ZrJOrl0NwHqAwAABgD1ATaFbtaEFyw09qZxulS0ZgXx5nC5XHLYj/5czUKPNKGwIdFjCfGwoRHyPmMC6gMAAAYD9QE2hbnVhzJSecbsdZ6GPDFRQ2kMOcp55scbTwfezx3V7HqA+gAAgMFAfYCtMmxBJvt9Cur9WaPXHqalcLncmasupdYZNcBnZF0DAABABeoDbBXTqk9duNs7w7ay4EhYQfKYbYXo/sq957lzyTsfE7eFQX0AAGAcgfoAW4VJfUYtGZS5S4NdF687HUrclT52WzHCSIa77Sg/igoAAGDUQH2ArWJq9WFa+Kg8ZuQBOa3JHsscN6r1imUB9IdGkzQkeq5ewAsy9RBqAACwMaA+wFbRoz4GdIKNMKU51KcuYt/sYeOauWCnp+5tYORg7RnLvWiJn9IYj9XDHXLvuIXXGV4pAACwO6A+wFZ55NRHKGytSg10W/ym+qHPby7W/tFTYgEzZszgcmdtD1I/PJryo2DcGbPXecSY7EdRAQDAJoH6AFvlEezwImgtiPLY+DHxECCt3wUbXsCRc9tnDctPQ6KneX4UDAAAbBeoD7BVxkN9xoChttSQEXjkVHBpaxX//rVTG5bM3hemcSfiF1NnvPmmOtnD/qNgAAAAaEB9gK0yHh1eZlOf1ir+/UCPnUvemameb965ZEraSP2zqFzurOXnTP5waAAAsGWgPsBW0ZKXhoxr24+HmWGsT0wwb6S7qlqTPZYtOx1TakCHV0NpYsSVUxsoxsOd8abjyj0eoYmlDbQeMyL1w+W+s3qMT1cEAAD7BOoDbBW1vASphwEv9EgzWYfXMMV+62ZwuVzuO8SzCZlQGwp3wfepLJMQKZ49Kx3f1PwoKsV4SHTcqfTu8E/Hv7Pa9L8LBgAANgrUB9gqEftncbnDN0Rxue+s9ogpNd1YHxLSbBjth+yX0h6vrE1VMG8WucKZH+sYDwlT2qgh49p29W+KfX0kMLUKAgQAAPqB+gDbpPWum9onKD+4ZbIOL+qaSL1ZcPK+1hN10nxW69EiCgmnF+gxHnJFQdt11UcoFApbs4LcyNvb31y808OEP4wKAAA2B9QH2CTqn9yaMXv7Ncq9T6xC01CaX0RJmDTkXt8+i8vlznANM2RtpcG8dxj8hpAifQkfw2mtijtHGNYG/yqmCRoyQk8P3xLP5XK53I8PReHJhgAAwADUB9gorQ9OLNEZAMyqPg9OfMjQ3TVjU4BGM8hnKZsU9rRSvtfykaqkS0Pu/WtHVn78pkl0CwAAbBKoD7AnWNWnyn8DTTHedNyo/WDk8VYfHR2b+c6SnddwMxcAABgJ1AcAAAAAdgTUBwAAAAB2BNQHAAAAAHYE1AcAAAAAdgTUBwAAAAB2BNQHAAAAAHYE1AcAAAAAdgTUBwAAAAB2BNQHAAAAAHYE1AcAAAAAdgTUBwAAAAB2BNQHAAAAAHYE1AcAAAAAdgTUB9gaXV1dlZWV+fn5fACAwQgEgqqqqq6uLksfwQCYHagPsCm6uroEAkFDQ4NQKBQDAAxGKBQ2NDTk5+fDfoDNA/UBNkVlZWVDQ4NcLu/r6+sHABhMX1+fXC5vaGiorKy09HEMgHmB+gCbIj8/XyKRDAwMDA0NqQAABjM0NDQwMCCRSAQCgaWPYwDMC9QH2BR8Pr+vrw/eA8AYGBoa6uvr4/P5lj6OATAvUB9gU/D5/P7+fku3IAA8qvT390N9gM0D9QE2BdQHAGOA+gB7AOoDbAqoDwDGAPUB9gDUB9gUUB8AjAHqA+wBqA+wKaA+ABgD1AfYA1AfYFNAfQAwBqgPsAegPsCmgPoAYAxQH2APQH2ATQH1AcAYoD7AHoD6AJvCROoj8N2yYMHJ6FHNE31y1LMAYG1AfYA9APUBNoUF1QcAGwDqA+wBqA+wKaA+ABgD1AfYA1AfYFOMqD7RJxdo2OIr0Lwj8N2iLj/pq1Efge+WBVt8ozVvbvEVUKbVLELT4cU4CwCPAlAfYA9AfYBNoV99ok/SXUWd2hH4btG8NaxHGo/RTKc2J+pLyt9Ms2gtGgDrBuoD7AGoD7Ap9KoPfSCyxoS0nUhLaWjmQpUd7Rlp6kNZEX3pAFgtUB9gD0B9gE1h2FgfSq/XFl+BuoeK3vnF6DG0SVnVhy5SUB/wSAD1AfYA1AfYFCN3eFGMh1QSXTdhTeFAfYBNA/UB9gDUB9gU+tRH57YtUkmQ9QGAAOoD7AGoD7Ap9KkP01AfA8f6QH2AnQD1AfYA1AfYFCNmfUgF0b5Xa4Q7vKA+wE6A+gB7AOoDbIoRhjlTn+pzMlrbhfQ81wfqA+wFqA+wB6A+wKbAz5cCYAxQH2APQH2ATQH1AcAYoD7AHoD6AJsC6gOAMUB9gD0A9QE2BdQHAGOA+gB7AOoDbAqoDwDGAPUB9gDUB9gUUB8AjAHqA+wBqA+wKaA+ABgD1AfYA1AfYFNAfQAwBqgPsAegPsCmgPoAYAxQH2APQH2ATZGfn69QKCzdfADwqKJQKAQCgaWPYwDMC9QH2BSVlZUtLS1DQ0OWbkEAePQYGhpqaWmprKy09HEMgHmB+gCboqurKy8vr7n5/7d339FtFQbfx288shgNYZfRAoUy2gcoT2igz8MIo8wWSqGlBQrkKVBmgYZVCHECcYjtJM5y4pF47733lmzLsrXlIduyNW1JVpy0SXB4T/z+oQxnkRCRuLn3+zm/wyG2pQ5HR99z75VkHx8fn+rnEeBMMj4+7nA4VCqV2+2e6scxcGqRPhAbj8djMpnUarUSwAnTaDQmk4nugRSQPgAAQEJIHwAAICGkDwAAkBDSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPRGWqPwwAEIOpfhwDpxbpA1FRKpVjY2PbAZyUsbEx0geiR/pAVJRK5e7du/cAOCm7d+8mfSB6pA9ERalU7tmzZwLASdmzZw/pA9EjfSAqpA/gD9IHUkD6QFRIH8AfpA+kgPSBqJA+gD9IH0gB6QNRIX0Af5A+kALSB6JC+gD+IH0gBaQPRIX0AfxB+kAKSB+ICukD+IP0gRSQPhAV0gfwB+kDKSB9ICqkD+AP0gdSQPpAVEgfwB+kD6SA9IGokD6AP0gfSAHpA1EhfQB/kD6QAtIHokL6AP4gfSAFpA9E5QTSR5P07tM+7yZp/hO+CfznIH0gBaQPROV46VMR/vShwium9pvAfxTSB1JA+kBUvj19Dh58OejAYZip+CbwH4b0gRSQPhCVb0+fI46/TD4GMxXfBP7DkD6QAtIHosJRH8AfpA+kgPSBqHCtD+AP0gdSQPpAVHiFF+AP0gdSQPpAVHhfH8AfpA+kgPSBqJA+gD9IH0gB6QNRIX0Af5A+kALSB6JC+gD+IH0gBaQPRIX0AfxB+kAKSB+ICukD+IP0gRSQPhAV0gfwB+kDKSB9ICqkD+AP0gdSQPpAVEgfwB+kD6SA9IGokD6AP0gfSAHpA1FRq9W7du2a6qcP4Ey1a9cujUYz1Y9j4NQifSAqJpPJ4XDs3bt3qp9BgDPP3r17HQ6HyWSa6scxcGqRPhAVj8ejUqnsdvv4+PhUP48AZ5Lx8XGHw6FSqdxu91Q/joFTi/SB2Hg8HpPJpFarlQBOmEajMZlMdA+kgPQBAAASQvoAAAAJIX0AAICEkD4AAEBCSB8AACAhpA8AAJAQ0gcAAEgI6QMAACSE9AEAABJC+gAAAAkhfSA2fJDFSdNoNH19fR6PZ6p/hwBwCpE+EBWPx6PRaCwWi9fr3Y7vyOv1WiwWtVpN/QAQMdIHomIymSwWy86dO8fHx/fgOxofH9+5c6fFYjGZTFP9mwSAU4X0gaio1eodO3Z88803e/funcB3tHfv3m+++WbHjh0ajWaqf5MAcKqQPhAVpVI5Pj5O95y0vXv3jo+PK5XKb///2eBxHHXGUeeR0486VS6rbvuIYWykY3hI7Rzq3jbS4xlWW809nuHe0ZFut1M3bNWP2Lq3jXSNuXQeh8pl1Y469NuGNR5754ilc8Siddv1o06t267zOPbNZdOOWHUum9ZtV22zdW6zqSZN7bWpvbaOYXPvTo/ea1c6+tVOc8/Y8NDXY6qRQY3H2uEeUroGO9xDqlGr2mtTjVo7PRbfrSbPd1faUZtu0k7PX2YApwjpA1FRKpV79uyZ6n44s+3Zs+d7T5990eO2Dezebt41pnVatPahvm1uX/r0jo50jw77flLncWjd9t6d3naHudXaZ9zuGhjf0bXDrR91dm9363335h32pY/OZdO77fpR57HSx7RrVDbYpXYNGbY5zLu8KseAvN/Q4RzQeKy67c6uHSPaMYfKNaR0Deq3Obp3eTTb7L4dFkCkDyAmpA9EhfTx3/eYPge+3ukc8mVNh21Aae3XDVu73U7DsK3L5TCO2I1uhy99tG671m3XjjpUw5bef40O7N6uH3UqrP0Ka3+nc0g1bFENWzQum95tPyytNNvs6rF987WLzmvXee1aj7XDOeCc+Lrd3qcdGVI7zb3bR1wT48Yxp9I50Grp6Rg29/zL1fNvt9o11Niv993qKCN9ABEhfSAqpI//vpf0mfxFvdtu8Dg67Wb9iM369b8c4zt7PMOGYZvvqI/eadU4hrQjVo3LpnbbdF6ncbvLuG3E4B1WDVuUdrPO4+jfNda/a8zgHda67eoRq3bEavA4esZcPWMu46hTPWL1pc+BYzYH0kfvtWvclp5/ueSDXeZd3t7tI93bnDV6ZZfX0b3N2eV1aEeGOu37zoWZx8f0Xrtvvtvqtzl8I30AMSF9ICqkj/++x/TRu+16t13nshlc9v4do10uh7zH0NZj7HU5+zwjKnNf97C92+00uh06l009YtV47Pptw4axka4xl2bYoh2xdnmH9W57u6VP7Rwa2Lmt/9/enjGX724NHkeXd9jgcWhcNp33YO4ciB691969Y0Q3alNaTQaPbWDnaLNJZ/16u/P/7ewcMukcg73bhs3/HjX/e7TH69Q4zIqhHoPH5pveazeO2g3bHL6RPoCYkD4QFdLHf/6nz4Hu2Xc5zoityajtctoGt3mMdova3KcZ7G8x6srkTdlV5S1d+t7Rke5tIxqXTTvqUHsdKpe1bbB3YOc269f/0o5Y1fZB0w6P0e2o79I0dGtbBrpVjkHtiFXtHFI5BnUum3HUqRvddznOYRfldA6bTTs9OpdF77Z22vuVVpPK1t/cpTE6h4z2QZ1tQD1kUg32qq39xhGryTtsGLboRywGl9UXQMbRfQFE+gBiQvpAVEgf/32/6aMdseqGrcNf72zv7VJ2G9V9vWtio6+5+edCUIBw9qz7n3piZXRUW1+373ogtdum9jraHWa1c0g/YlP09zQYNYZhW/+O0dyGmr8t/viF999eHrOxTNmicQxphi3tlr5Ou7nLO6x3W7Ue64F/Tp7aadYND6ls/QaX1TXx9QvvvymcM+Pu3zz8yfKlde0tFq+rz+3o7O/u6OvS280Gx6DeOaR3DvkCyOi2dXnsxtHjXuvTtThMnXvwj/1RmxSLK0/+r3FusmJB2IGpc71eWV7HguSuY/8nAvgOSB+ICunjv+8lfQ4c8tGOWLVOi9LUrR8cSCvI//WTTwizZwmBAdPOmi2cNUsICnjsuWfzGms7bANtlr7OEYva61A6B/UjtrYeo3qwX2sfikpLvvX+e4Q5ZwdceJ5w1ox7n3kytiBb4xgyeByKIVO7pU/vtutcFp3Loh85/J+mHa7GHo316+1dHnuVuq19sOfyW28UpgtCkCAECedefMFvnn06Ni1JZerqdVhUAz0Gm9ngGPQFkGF4X/34jgCdePrI8jomhcu+djlJCt1LR6ZPpXpBmF9pBUgc6QNRIX3850/69G53+6LH10Aqx6BiyNQ+aGrt0q/fEvfTW24WAgNmnz9XCAwQZs6YPucHQlDAT2+/bX1ygsJSuiSmAAAc9ElEQVTcq7T2VxlV2rFhublH3mPocw+Xyhr/9PqrMy++QAgOCDx/jjA9QJhz9oXX/ySxrLC5R68c6jO47JtzM9oGegwua4NRZdm5TeMwqyx9Goe5d9SpMHcrh3qNbpvGYVbZ+uUm/ZfR62665w7h3JmB584WAgUhQBACBWF64NwrLr302qtuunPeqx+829KtHdrhaenVd7vt/WOuDovJOGr/lvSZfIRmcaXXq9C9dPDwTH/UJsVLef0n/xf6iPTJTfavpQCQPhCZE00fTdK7T4dXHPKlivCnD3g3SXP4T+932K0OuflhNztD+ZM+OpftwIXJHbYB46hTO2KVm4xvfLhICAwQAgMCzpr98O+ejIze/MhTv5s2e5YQGHDJT65OLS2qUStbzT1yc0/TQJd2xNrZ3/vnV/963hWXCWfNFM6aJUwPFIIDhLNnCdMDr7tjXlplqazXoHEM1eo6b3ngHmFGwIPPPrU2ZWuzQdVqMvS4bEpzT6GsLnzr5lpNuy+AOiwmjcNcp+/IbqgsltWFrl316JO/PfeCuUJQgBAoCIGCMDNImBW8JSfdaB/s9w63D3R3uWxdHrvaPmDe5T3hE15dizfpZPu/mpt8st1TqT7qCa/cZMWhp70AnAzSB6JyYunjq5zJEVMRPukLmqR3J2fM5Kg55OeOuEfSRzNs6fvXaJd3WDFkUjuHtCPWjPrK90KXCkEBcy+/7L/m/zIpJzuntCR0zep/fPapEBggBAX+4q7/KW6qL2qqbzJqW/q6ihTNcYU59/328dkXnC/MmC4EBdz437f9bdH7t97zvzMvufD6+fP+8t7beY21FcrWGm1Hgbzh0Rf/LPzgLGG6MG3u2TMuOu/i66++6c555/7oUmG68IsH7u4Y7G0f6G4yqhsNKrlJX6NtL1E01Wvaa+RNsfFbN8fF3vfwr30Hfi666oqX335dblBrBk3qIZPS3KNzDKps/Spbv2mH6wTT59BrdCZtUg+diCOu7DnKVwCcNNIHonL89Dl4cGdSwVSEHxo0mqR3939h0r8e9Ucn3yfp4zvqo3PZNMMW46izUtP+wqJ3hAvnCMEBdz/80NrYmKiE+M2JCTHJSVfdeMOsuefNmnveB0s+z6+uLKivqVa2lSnk69KTbrnvbiE4SAgMePyZpzcnJWYWF30YsuT2Bfc8/tyzkfFxWVXl1ar2GrWyWqNs6tbJeg112s7PwkMvv+k6IVgQgoVpc84KvuAHwtkz1iVv6TT3tJoMzV2a5i5Ng1FV2FKfUJq3JS9jS1ryylUR9/36wXPOP08IFC6/9uolYaEZJQXNus46tULWrVXZ+tX2AZVjQO00q0YGTyB9FAvCOqIUBy9wluV17DvkU6lesEkn8/ZHbTpGGB3RSbkHbuv1nfM6xk8SQ8BJIX0gKsdJn4pwX6Ac3jNH/cGjfv8ot/T9LCe89qWPyjGotPZrhi0qx2BqTdlvX3kx8JLzp513bvimjQk5WQlZmREbN/z++edmz5kjBATcdf/9sSnJSTnZBTVVxfW1yUX5z7yyUAgOEAID/vzSSwlpaQmZGZHRm8M3bohJS8mqLIvNSk8qyt+UlZZWWZrdUJ1RW1GtUVZ1KspbGhs62gpqKv70ystCkCAECw/8/rdN+s5aVZvMqG7rMzYZ1SWtjbkNVVn1FVnVpV9ErLz6umunzQgWAoRb7rg9Kj4uKTezpk1WKquvUDS39Oo1DnOnvd/3zkCdw+ZvSZ/9R3p8J7y+JX2+g0OOHm3SyQ4c9VHoXvqOdwXgSKQPROUEr/U5Xvocs2OO/Mb+r5A+Dt97DGqGLR22gU67WdZnzG6qiUje8vGqr/Lra2Kz0petjvhqw7oXXnv1kqt+HDR79k9uvPGTJUvWR0fHJCelFxZklRQvCV8596orhaCAR3//1JqNG2MTE0MjIt5ZtOgPL/7l5TffeOefH0fEbk4pLkguLihori9tk+U115UoZIklBWlFeeVNde9++tFPb7tZCBLm339PUWNNXm1Fg1ZZr2mv0yrLFM15jdW5DVUbs5LfW/bZ5ddeLQRMEwKEBQ89+MHnn365JnxrVlpCflZ+Q1V5u0xu0reau2Rmo9pt6f6XS+UaOuFrfb6f9DmoUu07tLP/hJe/L5sH4CV9IDLfS/ocdq3PpC8ecZ2zJundfT9J+uxLH73brnYOtVv6Gnt0FWpFWWdrlbo9s6Zi8aqwjSmJn30VevXPbhICAy658sp3Fi1atX79qvXrYxMTt6SlpuTm/O+vHxQCA2adP/f5hQsff/J3P73pZ8FnnTXz3HPPvfiin956y8J33loauSomMy2xMC+jujyrtjKrtrJEIcuuqyqsrXzro39cdt3VQpBw3hWXLnznjVqFvLChulbVVt7WVKFormyX1agVlR0t/1zz1U/m3Tzn0ouCZ8287+Ffv/73tz9f8eX6rTGRcZsLG6p96VNv6Gw26eSDXe2O/s6RwRNOH99pr2PtpF6WdXj6+BdSALxeL+kDkfke0mf/SbFj3HRy4hwMH9LHN5Vj0HfCS97f1dStq1K35zbVJpYURKUmbc3KWBK+8sc33iAEBpx/+WVvfbDos+VfLg5dHpOcFJ2UuCkhPjknW5g1UwgOmnnenLmXXCIEBgbOmCkEBEybMcP3WrB7H30kOjV5U1pyTGZaTk1liawxs6YitaIkqSh//daYH1xyYcBZM4UZgb9/8bnEguzYrNT8hqoSeX2FUt6k76xSyvMbqpKKc//0xl+FYEEIEm74xc3vf/rxinWrQyK+CotaF5WaEJOdWtBcW6aU1eiVbYPdWo+1Y9jcZjNpPNbv+JaG+y/Q8btRDhw6OnjCi9d5AX4jfSAq/qbPcbrnkNtODh+ppY/R7ejyHPzgdJ3HoXXbNS5b2743GLTJTcY6bWdVpyK/viY+Lzs1O3NFeNiv7r5LCBAuuOKHz/315Q8+/3TlhsjI2E3LIyPWxETFZ6R+vPTzwLNnCYGCMCNICBCCzpktBAcKgYIwM1gIFITpAbf86pdr4zbHpidnlxfn1pRnVhRn15SllhWsj4+9+4H7AmdMFwKFO+6/558rv9ycmZxYkpdUXpBRWybr1RXK6mqULQU1FZGxmy688jIhUDjvikuff/PVxRErPlwe8uXGNeuSt0SlJyaV5hfJ6ys6Wxq61W2D3Z32/s5hs2pkUP0dTnh5vZPfekeheymsI0px8n+fD7w8fv/bJB48rUb9ACeN9IGo+JU+J9A9k247+c1+Jjnz88ef9NG4bB2OwQ5Lv8LcKzNoK9rkBfU1BVWV0VviHnrk4bPPPeec8+b87o/PrIvdvDp646ehy1ZuXLs6JmpT0tZNSVvf+uB9YXqgECCcPXfOLXfc/usnHn/8mace+M2jP5v3CyFomhAk/Ncd8zbEx8amJaUU5ORUlJTJG8rkDaviNj3z8gtzL7koYHrwD3985bP/92LoxsgN6Ykx+RlbS3PzW+pKFE3FLQ11nW0Zxfl/ePF5YZoQNHvm7Qvuenfpp19Fr18SGbYyLmp9WsLm7NTMmrISRVOVuq2pV9tu6VU5BjTDg9qRIZ3LcvzLnDfpZPtfinXotTj7X9j1XUpl0vtBH34J0SF3S/0AJ4X0gaicfPocq3uOOJpzjMM7HPXZlz7qEWuHpV9uMsoM2jqVMq+2Kj4z47kX/zJ95owLLrrwldf/FrEuMmRl6IdLF0ds3rBy49rY9OS4jJTVMVEL335dmBUsBAo3/fetL7z6f28ueu+djxa9/MZr8+75HyFIEGYE/u9D98dnp2eWFuZWluZVlRU11qQU57324XvX3vpzIUCYe8lFDz35m3+GLouMj4lM3hKVnZJQnp/fUpdeU1rS2ljZ1hydmnjrnb8UpgnX3nTDi2++9sWG1asSYlbEbFiXGh+dkxZfklvU2lCpaq03dLYMGDtsfQe6R+8+7gkvAGcS0geicpLpc9QLm4/6vWO9pyHps/+EV9eYSz9iq9OrGrWqZr0mOiP1xTdfD5gefMkPL33i90/9M+TzyOioDfGxX0ZGrNy4dt3WmIScjOjUxFXRG197/52zLz5fmBl832MPv/r3t/723juvvfv2nxa+eP1tNwtBwuwLz3v6xedi0pKS87MzSwvzqsqyKkuWRob/8sF7hdnTheCA2//nznc++SB80/q1CbGRyVui89Iz6stLlM1FrQ0VSnlObfl7iz+5+OorhQDh57ff9o9li1dsXhcRH70mKS42LyOxJC+rvqJWp6w3dMp6de2WXrXT7Isevdt62KdYkD7AmY70gaicXPpM/gyLo526mnxu61h5Q/rYNS5bu21A67ar7YPNPfomnTqnpvKVRe/98LqfCNOEu++9Z1no8tUb1j3/ysKAc2YJQcKzry2MzkiOy07bkLw1KmnrR8s+v+pn1/tObP35/17669tvvPHBe39c+Jcf3XidECRcccO1b3z4fnRqYkJORkZ5UUVrU1ZlycL33pp71eVCkHDFddf88aUXlq1aGR6zcV3yls3ZqfElubmymoLW+kpVa2VHS1Fz7dMvPT/nsouFoGlPPvfHkDVhodHrVyfGbs5OTSkvzK6rKFE0NfdoZX16xVCPyjGgc1m0HqvWY9WN2vTe435yO4AzCekDUeHjS/3nT/roR52ygW5Zr6HTOlCtbPsw9Ivr5v1CCAr4+W23Pv7kEzfPu00I3Pep6YFzz/nz63/dkpMem5W6KS1xS0768rWrFjz+sBAkBJ47+44Fdz/8u98++dwfb7vrTuGsGUKQcOeDC0LXrd6ckpBZWljUWJNTXfZp2PIf/dcNQrAQOPecOx+4991PPwqLWhceszEmOzWpvCC1qji/pa5I0VjaIStuaShqrr33iUd9d/WHhX8Jj4vydU9qRVFeY3WJoqlO3yHr1SmGejrt/dqRIb3b6ksf7REv7yJ9gDMd6QNRIX3850/6GLzDjSaDrNegMPfG5WTe88Tjwrln7fuI0KAA3yelB5wzS5geEDj3nCdffi6hMDuhMDsuNz0mMyV0Y+Q7//zw4mt+JARPO+eSCy666oqLr75y2tkzhSDh0muveumtv62Pj42IjUouyk0vK4xKTfjrB38//ydXCtOFS6+/5pmXX1i+dtWGhLjVWzYnFGZn1JZl1pWXdcrrjJ0V6taS1saU0vzfL3zhmptvmnvlDx/9w1Mb0xI2ZaUklRfkNlUXtTbU6pRtA10tA8ZOe7/aafbljtZj1bgtR62f0/OXGcApQvpAVEgf//mTPh2OQYW1X2UzV2uUn6wMvea2W4TggH3pMyNo2uwZwqzgX9x15wdfLolMjE0tK0guyUuvKEoozF6TEPPFulVrE2Lv++2j51x6oe/IkG9zLr/kief+GBLx1Yr1a2IyU1JL8lOK8/JqK/IbqhYtX3LHI/fPe/CeNz5ZFJWaEJedtiYhJr4oJ6O2LLupqr5LVdohK25vqtYoMqpLEwqzEwuyN6UlRmckR2Umx+Smp9eUFsjritsam7o1KseA71Vd2pF9L2X3pY+vfkgfQExIH4gK6eO/E3pLQ5fd6Hb40kfncfhe2NXpHFKPWJv6jK393TXajg9Dvzj/mh8LwQHCjGBhZtCPrr/2iWef+WjZ52FR61Zv2RyVnri1MDupND+1oii5rCA6J211fHTI2vD3l372yqK/X3HDtTPO/4EwM+j8H1127+MPv/nRP5atjQiP2RiblZqQn5VSmp9WXphYlBOTnbo2ZeuahJiVMRtWx0dvykhKKM7NrqsobmusULfW6JX1XaoqraK4rTG7riK5rGBrfmZMdurmzOS4/MzkisK85ppKVWtDt7rV3KW0mlSOgcl9o5000gcQE9IHokL6+M+f9OlwDNZ1a2t1nXV6VVZV+dK1q9/+7JP3P//s4y+WfPJlyOKvvly2OmzZ2ojlUZFrkuJi8jPiS3KTKwpTygu3FGRtTEsIj4v6fNVX/1i2+LV//P3Pry58+qXnX3rrbx8u+3zF+jVrtkZvSN4an5eZVJybXlGUUVmcUpq/JS9jY0bS2pSta5LiNqQnbinISqsuKZDXVapa64ydDd3q+i5Vta69RNGU01iVUlmUUJwbl58Zm5eRXFGYVV/hu8RH3m/wvaTrwPEe0gcQN9IHokL6+M+f9NG67XJzT0VnW05jTXp5yZbcrFVx0ctWR4SEr/j4iyWLlnz68ZchSyPDw+OiojKT40tyk8oLUmtK0mtKE8vyY/My1qXGr4zZELIm7LOvvvxk+dJPli/9PCw0ZE3Yl+tXh0VvWJcYl1Scm1ZemFVdmllTllpRtLUwOzonzXf2amtxTmpVca6spqxTXmvoaOrVyvsNjT2aWkNHWac8v6Uus6Eitao4uaIwqbwgu6GysK2hSqto6tW2DXZ32PpUI4Mat+XI6FF7SR9AbEgfiArp4z9/0kdu7pENdNfpVXnNdUlF+VFpyWHRUZ+vCvtk+dIPli7+6IslIWvCIrZsWp+WEJ2XvqUkJ6uxMk9emy+rzagtSyzJi85JW5MQszwq8rPw0MUrly8JX7FsddgX61at3Lw+KjUhpTgvo7I4u6Yst6Eqt6Eqs6YspbwwvignrjAruaIwrbY0p7m6RNlcrWtv7NHI+w2t5i5Zn76xR1OjV5Z1ygvbGvLktTnN1TnN1UWKxnJVS32XSt5vUAz1dNj6OofNBz6w4rD0UXtJH0BUSB+ICunjP3/Sp7m/q6FX32DUVKoUubVVsdkZkfFxq+KiV8dErdy49qsNkWHRGyITYzdmJCWU5mU2VBS3N5WqW3xHZTJqyxLL8jdlpaxJiImMj4mIjQqL3rAqbtO6xLjN6Ukppfn5DVVFzbWlLQ2lbU2lbU2FsrrchqrMunLfRc25rXVFHc2V+vbGHk3LgFEx1KO0mhRDPS0DRl/9lGvbStUtJSp5Wae8UtNWZ+z0vYtPu72vwzngO+pzZPSQPoD4kD4QFdLHf/6kj37U2dRnLO9oLVHIcmurYrLSI2I3f7VpQ+i61aHrVq/cvD4yMTYqPTG2IDOjtqy4valEJa/QKap17WWd8gJ5XXZDZXJZQUxu+saU+LUJsZHxMb7XbSXkZ6WWFWRVl1Z3tNSpFbWa9hq1orKjpUzRXNzWWNjW4LurKoOywaRtNXd12PpUjgG109xh61MM9cj7DQ3d6mpjR5VB6Vtjj8bXPb7PKFW7hrQeq95rJ30AKSB9ICpqtXrXrl1THQ9ntl27dmk0mqn+TQLAqUL6QFRMJpPD4di7d+9U98OZau/evQ6Hw2QyTfVvEgBOFdIHouLxeFQqld1uHx8fn+qKOPOMj487HA6VSuV2u6f6NwkApwrpA7HxeDwmk0mtVivxHWk0GpPJRPcAEDfSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPAACQENIHAABICOkDAAAkhPSBOK0oMDwSLpsfUjdvcQ1j7Fs2P6TukXDZigLDVD9qgdOE9IHYdA+NPBYhmx9Sf1eo/N6VbQvCFIyxb9m9K9vuCpXPD6l/aGVzp8k51Y9g4JQjfSAqnlHvE6vlv/qiacqfThg74/arL5oei5C53KNT/TgGTi3SB6KyosAwP6R+yp9CGDtDNz+knjNfED3SB6LyWITsrlD5lD9/MHaG7q5Q+WMRsql+HAOnFukDUbkzpI7rexg76d27su3OkLqpfhwDpxbpA1GZt7hmyp88GDujN29xzVQ/joFTi/SBqJA+jPk50geiR/pAVEgfxvwc6QPRI30gKqQPY36O9IHokT4QFdKHMT9H+kD0SB+ICukzxdPunpj4Rlu6748rrN9MeF1T/9+KfZeRPhA90geiQvqcpml3TxzJ61oQ5rJNTIxZBxaU7hibmJiY2F1SOrDi2+7KZTvKHR1uzDow9f+TJTPSB6JH+kBUSJ+pmXb3xMSETatY4DvSc2ivlHj9aZcB7S7S57SO9IHokT4QFdLnNE27e2LXjn2Hc3wHeA6e2BrQ7jrwR5dtYmJi146SUtLnjBnpA9EjfSAqpM/p2YpSl3bXxMTE7pL9cXPoWa1Jp7GOc63PgHYXJ7z+s0b6QPRIH4gK6XM6t//c1m6b98hY2WE7fvecyDjqc7pH+kD0SB+ICulz+ua70vnw4z2HrMQ7MfkFXyc10ud0j/SB6JE+EBXS5/Rs3/GeEzqo4zuldWQAndBruw7lZ0WxExrpA9EjfSAqpM/p2IE37znqS9z9jRWXbf+LxdiUjPSB6JE+EBXS57ROu3tiYnfJsb5bumPsuOlz6FsgLghT7DsadMjxJM55ndaRPhA90geiQvqc1vmfPmH7Xxt/8Joh34mwAzf0/XG39uRfHs++20gfiB7pA1EhfU7rvpf0CVMsCFOssH6z/7iOyzYxYbPuGNu1Y4XvhBofhXF6R/pA9EgfiArpc1r3PV/r47vKZ/+1PtrdE7yjz1SM9IHokT4QFdLn9K/Ee5SrkldYvxnz7j7Roz77E8qmVRxymfNRrgRip3ykD0SP9IGokD6nfQMl3m8mDntN1gm85Y/vtvveyvmQnzzsFV77rvU55mk19n2P9IHokT4QFdJnSlbiPfw65RM4UXWMHzv6FUKHXfvMTuFIH4ge6QNRIX1Oy07i3QiPc9jmwOe9c13zlI/0geiRPhAV0ocxP0f6QPRIH4gK6cOYnyN9IHqkD0TlzpC6e1e2TfmTB2Nn6O5d2XZnSN1UP46BU4v0gag8FiG7K1Q+5c8fjJ2huytU/liEbKofx8CpRfpAVFYUGOaH1E/58wdjZ+jmh9SvKDBM9eMYOLVIH4iKyzP6WITsV180TflTCGNn3H71RdPDYc3D7tGpfhwDpxbpA7HpNDkfWtk8P6T+rlA51/0wdtzdu7LtrlD5/JD6B1Y0dZqcU/0IBk450gfitKLA8Ei4bH5I3bzFNYyxb9n8kLpHwmWc54J0kD4AAEBCSB8AACAhpA8AAJAQ0gcAAEgI6QMAACSE9AEAABJC+gAAAAkhfQAAgISQPgAAQEJIHwAAICGkDwAAkBDSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPAACQENIHAABICOkDAAAkhPQBAAASQvoAAAAJIX0AAICEkD4AAEBCSB8AACAhpA8AAJAQ0gcAAEgI6QMAACSE9AEAABJC+gAAAAkhfQAAgISQPgAAQEJIHwAAICGkDwAAkBDSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPAACQENIHAABICOkDAAAkhPQBAAASQvoAAAAJIX0AAICEkD4AAEBCSB8AACAhpA8AAJAQ0gcAAEgI6QMAACSE9AEAABJC+gAAAAkhfQAAgISQPgAAQEJIHwAAICGkDwAAkBDSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPAACQENIHAABICOkDAAAkhPQBAAASQvoAAAAJIX0AAICEkD4AAEBCSB8AACAhpA8AAJAQ0gcAAEgI6QMAACSE9AEAABJC+gAAAAkhfQAAgISQPgAAQEJIHwAAICGkDwAAkBDSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPAACQENIHAABICOkDAAAkhPQBAAASQvoAAAAJIX0AAICEkD4AAEBCSB8AACAhpA8AAJAQ0gcAAEgI6QMAACSE9AEAABJC+gAAAAkhfQAAgISQPgAAQEJIHwAAICGkDwAAkBDSBwAASAjpAwAAJIT0AQAAEkL6AAAACSF9AACAhJA+AABAQkgfAAAgIaQPAACQkO+QPowxxhhjItgJpQ9jjDHGmChH+jDGGGNMQiN9GGOMMSahkT6MMcYYk9BIH8YYY4xJaPvShzHGGGNMIvv/GpQo4YQmaY4AAAAASUVORK5CYII=" alt="" width="661" height="454" />

开发

现在开始讲解怎么在单点流程中添加验证码验证码的操作!

工程导入

在第一篇 环境的架设中,我们都是直接在tomcat下面操作的,现在我们需要把cas server 导入到我们的eclipse中,才能继续进行操作。

找到我们下载的 cas-server-4.0.0-release.zip  解压,进入子目录找到 cas-server-webapp 工程,因为代码使用maven搭建的,所有导入时选择maven导入。导入完成后,大致的结构如下:

ps:需要注意的是,大家要把第二篇里面修改的内容添加到你导入的工程里,不然会没效果的,大家一定注意。

aaarticlea/png;base64,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" alt="" />

配置修改

1.打开 login-webflow.xml 文件,大家可能会觉得有点熟悉 。对的,cas有使用Spring Web Flow框架。 找到下面代码:

<view-state id="viewLoginForm" view="casLoginView" model="credential">
<!-- 注意这里 -->
<binder>
<binding property="username" />
<binding property="password" />
</binder>
<on-entry>
<set name="viewScope.commandName" value="'credential'" />
</on-entry>
<transition on="submit" bind="true" validate="true" to="realSubmit">
<evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credential)" />
</transition>
</view-state>

大家看到没,这边有一个form (viewLoginForm),里面有username、password两个属性,没错,这就是对应我们登录页面上的表单。所以我们要在这边加上验证码这个属性。

        <binder>
<binding property="username" />
<binding property="password" />
<!-- 新添加 -->
<binding property="captcha" />
</binder>

2.我们只在这边添加一个属性后,够吗?当然不够,因为这个配置实际上有在代码中对应一个java类 UsernamePasswordCredential.java,具体路径为 org.jasig.cas.authentication.UsernamePasswordCredential.java ,查看源码看看,实际上就是一个javabean而已。那么我们就可以继承它,然后加上我们的captcha 属性!完成后的代码如下:

public class UsernamePasswordCaptchaCredential extends
UsernamePasswordCredential { /**
*
*/
private static final long serialVersionUID = -864735145551932618L;
@NotNull
@Size(min=1,message = "required.captcha")
private String captcha; //省略set、get方法
}

3.好了,新的javabean诞生了。够了吗?实际还有一个地方要修改,回到 login-webflow.xml 文件,第27行左右,修改如下:

   <!-- 修改后前 -->
<var name="credential" class="org.jasig.cas.authentication.UsernamePasswordCredential" /> <!-- 修改后 -->
<!-- <var name="credential" class="org.jasig.cas.authentication.UsernamePasswordCredential" /> --> <var name="credential" class="org.jasig.cas.authentication.UsernamePasswordCaptchaCredential" />

如果大家包名、类名都和原来一样,那么这步可以跳过。

ps:4.0以前的类是  org.jasig.cas.authentication.principal.UsernamePasswordCredentials.java ,4.0以后有变化,大家要注意。

4.好了,接下来要添加校验验证码的流程了,还是刚才viewLoginForm 那里,我们把它修改成下面:

    <!-- 修改前 -->
<view-state id="viewLoginForm" view="casLoginView" model="credential">
<binder>
<binding property="username" />
<binding property="password" />
<binding property="captcha" />
</binder>
<on-entry>
<set name="viewScope.commandName" value="'credential'" />
</on-entry>
<transition on="submit" bind="true" validate="true" to="realSubmit">
<evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credential)" />
</transition>
</view-state> --------------------------------我是分割线-----------------------------
<!-- 修改后 -->
<view-state id="viewLoginForm" view="casLoginView" model="credential">
<binder>
<binding property="username" />
<binding property="password" />
<binding property="captcha" />
</binder>
<on-entry>
<set name="viewScope.commandName" value="'credential'" />
</on-entry>
<transition on="submit" bind="true" validate="true" to="validatorCaptcha">
<evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credential)" />
</transition>
</view-state>
<!-- 添加一个 validatorCaptcha 校验验证码的操作 -->
<action-state id="validatorCaptcha">
<evaluate expression="authenticationViaFormAction.validatorCaptcha(flowRequestContext, flowScope.credential, messageContext)"></evaluate>
<transition on="error" to="generateLoginTicket" />
<transition on="success" to="realSubmit" />
</action-state>

我们在配置中添加了一个 validatorCaptcha 的操作,同时可以看到 expression 是 authenticationViaFormAction.validatorCaptcha(...)

所以我们需要在  authenticationViaFormAction 中添加一个校验验证码的方法 validatorCaptcha()。

authenticationViaFormAction 这个bean是配置在 cas-servlet.xml 中的:

  <bean id="authenticationViaFormAction" class="org.jasig.cas.web.flow.AuthenticationViaFormAction"
p:centralAuthenticationService-ref="centralAuthenticationService"
p:warnCookieGenerator-ref="warnCookieGenerator"
p:ticketRegistry-ref="ticketRegistry"/>

我们可以看看 org.jasig.cas.web.flow.AuthenticationViaFormAction 的源代码,里面有一个 submit 方法,这个就是我们提交表单时的方法了。

我们也重写下吧,大概修改成下面的:

public class CnBlogAuthenticationViaFormAction extends AuthenticationViaFormAction{

    public final String validatorCaptcha(final RequestContext context, final Credential credential,
final MessageContext messageContext){ final HttpServletRequest request = WebUtils.getHttpServletRequest(context);
HttpSession session = request.getSession();
String captcha = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
session.removeAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); UsernamePasswordCaptchaCredential upc = (UsernamePasswordCaptchaCredential)credential;
String submitAuthcodeCaptcha =upc.getCaptcha(); if(!StringUtils.hasText(submitAuthcodeCaptcha) || !StringUtils.hasText(submitAuthcodeCaptcha)){
messageContext.addMessage(new MessageBuilder().code("required.captcha").build());
return "error";
}
if(submitAuthcodeCaptcha.equals(captcha)){
return "success";
}
messageContext.addMessage(new MessageBuilder().code("error.authentication.captcha.bad").build());
return "error";
}
}

这边有抛出两个异常,这两个异常信息 required.captcha、error.authentication.captcha.bad 需要在 messages_zh_CN.properties 文件下添加

required.captcha=必须输入验证码。
error.authentication.captcha.bad=您输入的验证码有误。

然后把 authenticationViaFormAction 这个Bean路径修改为我们新添加的链接,这个就不贴了,大家照上面改就行了

修改over!

总结

这样,添加验证码的操作基本就完成了,大家可以尝试看看 。效果图,已经贴在帖子的最前面了。

一个人的我,只能在这 边写博客边祝福大家 平安夜 ,多吃苹果,平平安安。

。。。
打完收工
上一篇:Spring-Security自定义登录页&inMemoryAuthentication验证


下一篇:C\C++拾遗------C#程序员重温C\C++之要点