Asp.net MVC + EF + Spring.Net 项目实践(二)
这一篇主要介绍数据库和entity framework集成
1. 先创建数据库,很简单的几张表,但也涉及了一些主外键关系、联合主键等,关系图如下(DB脚本在最后)
2. 打开VS,现在建立Model实体,在Repository层右键,选择“新建项目”,添加“数据”-“ADO.NET 实体数据类型”,名称改为“SMSContext”,也可以后期再修改
3. 点击“添加”选择“来自数据库的 Code First”选项,什么?没有此选项?呵呵~~~(请下载eftool http://www.microsoft.com/en-us/download/details.aspx?id=40762)
4. 点击“下一步”,选择“Microsoft SQL Server”,之后选择数据库
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAm8AAAJvCAIAAACiVKHfAAAgAElEQVR4nOy9fZRU5b3vuf+fWXP/Yd3JrMmcuYs1R3NXdNY00rXOYuXlXDGamMQT41wbNMJOzOlZJzmS9pyLKAh4DbFMNNBgjKIQQUTA8iWJsWPTvIggiGBpq6DYEAEJQr9A0d14FLiH+WO/Pa977+pdXdXV9fmsZ3VX7f28v32f37N37e2cOjUYuskAAACQxBe/+MUvfOELooA6oY5eeeWVnZ2dH3/88UUAAACwc+HChZ6T/f/71Gsn/Mf/GKnp5MmTlyxZcuzYsUf/9DYOh8PhcLg07p3Sv23Yf9gTVOfUqcErr7zy2LFjy//UjcPhcDgcLr3bdursF//fm0+dGnQmT57c2dm5/KVuHA6Hw+Fw5brnTw5/4QtfcCZPnvzxxx8/1vEODofD4XC4ct0zJ89+8YtfdCZPnvxv//Zvj//5XRwOh8PhcOW6pz8Znjx5sjN58uSLFy+ufPk9HA6Hw+Fw5brVxwU1/V3nezgcDofD4cp1K/4qqOkTG/fjcDgcDocr1z1y7Gykpqu73sfhcDgcrq7dqqc33fLV706dMLGy7pavfnfV05tsiS47Ooya4nA4HG78uH+4pHnjY48Pv7u3sm7jY4//wyXNtkQlNX1y0wc4HA6Hw9W1mzph4lD3Gyc3rKisG+p+Y+qEibZEf31EUNOnthxI7Tb+4MtNP1hjPvvrnzb97U83Bl8fv/LLc38telgz98qfbnxqy8YffLll9pYDv/5p05X5A0/lW5zvPP6U7O1vv/P4U1sOzP6Oo3NlPvATRR4kJB7Mt6ghvzz3135afgakRPVsCIUy5MNxHEeLBIfD4XC1c1MnTBwsvv7J08tPrFt+Yt3yE0/7zjvyifch+HxCco/5oZ5+LAoYfBgsvj51wkRbovnDgpqu3fphGe7+FufL8xabTt3xnaZbngq/rrhS87b4p01X3t91y5dbbvlp09/+tCs4Isfz1Ly//c4KLTYvfsf3/NS8v/3yvMVbu275sknm/HRXXOm03OFl+Dsr1kYfum75cssdhoyZy7s4yKrsDJHgcDgcroZu6oSJpT07jj/5cOTWPHx8jf/5kbl333Bjq+cemXu38Yju/vrkw6U9O6ZOmGhL9Od/EdR03SsH49wvp1mMM5+pvzy47pWD69befcmX755hMigdx7nknzcv+edJWsCVUyUVFINPm2qKSkxriZ/DlVO9z9LBg+teWTnVmTbHy/93Vq6LPmye8eVpc3wPMXh+DurZVjzgcDgcbiy4qRMmnn5927HftR9b2X5sZfvHwQfP3XBja/gSmBtubP3tnLuUIx+vbP9Y8H/sd+1eVKdf3zZ1wkRbovMPCWq6ftuhOPer6ZfctmX90/MvcSbNfPrQ+m2Hlt426ZLbtnhnl9426apfqQfXb9sy87uTLrls0lXREd/dedv0qy5znMvmL912aOltk7wP67etvMqZfqfn5+n5l3x35fpth+78rp+c7LbMvCwStKu+O10Tuel3yn4kz99duX7blpmXeWkJiaouOiWXS8zG9Dt/5UUYW3s4HA6Hq4qbOmHiwI7NRx994MjyB44sf+DIow8GHx44svyBh2fPueHG1v8RoHx+ePaco8sfOLL8Ae/vkeUPHFn+oPd5YMfmqRMm2hK966Cgphu2H4pzD0y/ZNaWDdsPbdi+ZeZlziWztiydNemqB/yzweeVVzlO4O3QhvXzr5o1/6rLpl913fylUVRbZl7mXPXAlpmXTb/rgemXzFo587rpV102/a7thzasn3/JZYHP9fMvuW7lhu2H7rpu0sz1wZHLxHgOLZ01yfGORHkLk5h+13Y51APTnetWbog+hH5WXuVMv8uLTeCSWVvCU15achJSNmyncDgcDldl56npRw/nP/pN/qOH84cfzn/0cPTh8G/yv/lvs2+4sfWczA03tv7mv832vf0mCvVREMpTU1ui/9ozFKlpYcdHCe7B6Y4zyV3vf31o1qRvPCh5eGjWpEsum3TJrFe8r3Ovm+Suf+Ibly2YO2t6GGrudV4Mr7iXTZ+74xX3ugUP7fjoIc/Dg9PDsIX1Cy5xHOeyBe51pu3VyxY8tOOjud6p654oPGiwTef6yTl+nA9Od657Qsitl4GPCjue+IYzfa6X+SD14LN/KsqPmcAPDofD4Wrtpk6YeOCxxS9PvSzG3fvdb99wY+vJgBtubL33u9+OD3LgscVTJ0y0JTrrQ0FNn33tcAq37YeXOZf+bNuzrx2ed92kH26Qzs772YKHfn2Td/bZDQsuve6JZ1974huXLXjI/yxGIof99U3OdU/Mu875xq/9JDyZlHxuWHDpZQseCoNsWHDpZZMuvWzBvJ9N+sZ1QaJR/DfNC6IVk3j2tcPPvvbEN0JJ9r/eNO+1ww/9bFIYSfDZP2WrjSDDOBwOhxsrzlPTrm9dsfHaK7qu9f92XXtF17WTu741uevaK35+/XU33Nh6VOaGG1t/fv11Xd+a3PWtKzZ+64qN37qi69rJXddO7vrWFZ7z1NSW6D8dENT0+V1HYtzDbVdYbTOP7616fteR5xffdGnbtud3bfvR5Vf86Jkjz+9adfXlCx/edeTu7zlXLz7y/K4jd39PDnX5wod3HXl+17YfXR5+PvL8riPPP7Pw0u+ten7Xqqudm36kJn3Fj545cvf3nKvbFl7qBVl8k5abm+42FcHLg+xWXe3cdLdWwEvbtgWntv3o8oSiSznH4XA4XO3c1AkTP1y5dOsNX9PcV7fe8LVf/Ncbbrix9WCA8vkX//UGU8Cvbb3hax+uXDp1wkRboj9+X1DT379+NL1bcL3jOFfc+qx2asnNl97+6oLrnUtvX32rIEKX3n7P1Z7/Z++51Ll5wetHf//6q7de7ly9xAu4+mrHcS6/55EwnmfvufT61b9/9p5LL79nwe1XBN68pK+49dmjC26/55Fn77lUDBKc0vJpk0Av7OqrnZsXvH70kduvuPT2V+Xi+KfCLF0te1hwvSNmDIfD4XA1d1MnTDy05tEdM67dPuPb22d8e8fMa3fMiNwNN7a+H3DDja35m6YrR3aEQWZeu2PmtTtmfNsLeGjNo1MnTLQlOnOfoKZ/2H0sjVt4veM4zpdu3/GH3Tt+7Onl9WsiD+03f+n6m790+T2P+kfWXBN+br/Z8T+vuSaUtOvX/KH9Zsdxrmk/9ujtVzih5+fu+dL1axZe73zp9h2P3q7apj9+LvBz+T2PirHJYvmonPNHb7/imna9RGuucW5eaC6sdOrR9jU/vl6KduH1jilCHA6Hw9XMTZ0w8XBh1e6ftOz+ybTAtQRfW341c2b469JfzZy5+yfTtCMtQpCW3f/kx3O4sGrqhIm2RG8W1fSPe/4a4+75vi9S1yzVzi79QXR86Q++9C+vCWfXXHP5PcvVeK748Qti2B/cI0Z1+T0//r7jOM6X/uUeL+zyf7lCTPSe7wfBX7jnS0Lk93zf+dK/rPnx98Mjr/04eYf2nuV71lwjZmBPEHPkQStveFYPiMPhcLiauqkTJh77U6E4+8cVcv/ofTj2p8LUCRNtid743mCkpi/uPV5n7oX//qX/+78/tvQHnrJ9c2lw0Pv+/adqn0McDofDVddNnTDxxOaX3ln4s3cW/OzdhT97d8HP3gndwlnvLPzZOwt/9s6CWe/6n2e9s3DWOwuCzwt8F4YKP5zY/NLUCRNtiX7/XUFN//TmcRwOh8Ph6tp97z//3abHHu/f+Upl3abHHv/ef/47W6LXvSOo6UvFT3A4HA6Hq2v3+BMv/cMlzRV/v+k/XNL8+BMv2RK9tlu4bvrnt07gcDgcDocr113ztmCbvvz2SRwOh8PhcOW6q94S1LSzuxeHw+FwOFy57kpPTR3HMarpRQAAAJDR5fLrxUH/h5PG07XOMAAAwJgDNQUAAMgKagoAAJAV1BQAACArqCkAAEBWKqamvb29r2zbtvrJNff+fNGPbv3HadNv1t1ts9ru/fmi1U+u2bNn79mzZ6tYTAAAgFGkAmr6yrZt9/58kVE+492Dv168b9/+qhcZAACgwmRS08OHD8+5c64uk/f+fNGDv15cePY50d3780U2z9ipAABQ14xcTQ8fPizu6N42q231k2sOHz6cmOS+fftXP7lGDDvnzrkIKgAA1C8jV1Nxd7ej48/lJnz27NnCs8+FMTzyyPJKFgsAAKCKjFxNQyHMcu2zo+PPoWlbgdIAAADUgqxqml0FQ1XOGA8AAECtqIBtmuZaqY1Xtm1DTQEAoN6pgJr+6NZ/3LNn7wjS7uj4s3gvUsXKBAAAUF0qoKbhD11e2bYtza25vb29HR1/vm1WmxLDKJYSAABgNKmYmoo/dwl/bLpv3/59+/bv2bPX+/rgrxfrIoqaAgBAvVN5NR2xq10lAAAAZAI1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKwkqOnG7l7RoaYAAAA6nbJcbkRNAQAAyiVJTd/pFR1qCgAAoNPZ3asoJmoKAABQHqgpAABAVlBTAACArCSoadc7vaJDTQEAAHQ6u3sVxVTUtE90VVDTLDG4P7z1jjl3/faRR7ds3TowMFCbGgUAgMYjUNNIMetYTUW3YOE9mzdv+fd///fa1CsAADQSnd29imLKavpun+jqSE09t/bpdUNDQ7WpWgAAaBg6u3sVxZTUdNO7faGrRzX1BBULFQAARpXO7l5RMTfFqOmmqqhpFs6cOfP2292rn1zz03+eJca8efOW7JEDAADYGLma/ujWf6yglN42q62Cpdqzd+/8BfeEkS9YeA83JQEAwOiRoKab3+0Tnaimq59cU0E1LTz7XGULtmfvXtFC3bJ1a2XjBwAACOns7lUUU1bT9/pEJ6rpxYsXH3lkeUWk9JFHlo9G2US9/+0jj1Y6+p72KU5rx8WLFy9e7Gh1nCntPf4/1ZPT2uF5UQn99rRP8b51tDpaFGJMQYLa1yA7fnpB3jpaZU8Xe9qnOFPae/zgKq0dcrnErBlyI0Qck3EAgAags7tXUcwy1PTixYt79uy9bVbbiHV0zp1z9+zZO0ple/vt7jChO+bcVeHYfT0SNStOTWVlk8VHDG+VXFkYNTG92NPROsVpbW+f4jitra2OM6W1o0cTU1lNVZl1WjukchnTUbzH5hkAoFFIUNMt7/WJTldTj8OHD69+cs2cO+emF9HVT645fPjwqJbtzJkzYYruD2+tfAI97VOmTGnvsAqKcGJKe4+iPJowGu1IQ8DACpaP6Mamp6yip/Yw1JTWVqttGpSr1VQsVfVbO0Tr1WLIAgCMezq7exXFVNS0X3Q2NRXZt2//vn37C88+p7t9+/anV9Ds9/qOupp6RBZpvG0qi2LgL1DB1tb2KVM8j74mdUTSFAltR2sghX4EooCFcUW2cGRuRnErtqkh12LRDIapUq4wIS991BQAGpDO7l5FMSU13bqvf+u+/i2BS6OmlSK7mo7qTm+gjKoFqBh6gerIQhcakq0dHa2eOAZaGZiZnpqKehWqqTOltXWKpMaBZPoSrOZC0Mv466aC/SoanQaTU7g+a44HRQWAhqKzu9eTy62BM6hp6GqiprpLGcMo34WkmnzRPUDieVFaL16Ms199y661wzNKW9tb5QuzklR1tMopX+xondLeI6p3e3t765QpoTpL10E989bPhpajeKWU1wP6JWEAgEbEU9OtNjV9ZV+/6OpITavwCxl9t1S0RGWxM9+tI/pp96zGjlbhVCSVjmCbhhaodteuLIwdHV6c7a3S/UXhJd0pUxS5FDeMzRdwo2S89G22KcoKAA1GZ3evopiymu7vF90oqenjK1ZOv+kHilgmqum06TffNqvNeEtwdZ7eICtleLuQL4mKmgbEXKUMvAtGo2A+imraE12stN4PHJmqYoL+Tm9PKLPiLcOSmqbbwTZcQUVJAaAB6ezuVRRTVdNtghsNNd23b79NLBPV1HOhoFb5yYKG7d3IVhMPtJpv+5Wsy9ZWUQBb29uDe2rDm4NlNb3Y0z7FcspwY5K0++zZtsrvYzU1jbFNRT+qdcoVUwBoSDq7e7fJiimp6bbRV9OLGWzTNG60nnofykisfiTbpr4cysf9X834u7+G66Z6fB0dwr6reEnU+zGMeBdScNFU1XjRnC2rXMYrxAAADUSCmr76/oDoxtR105RSOkpvZPNNQ8sFUccRLFKz+infDVcgI12y7vRG/sLv0sVMo4VsvCNKyEfacon7y/IPfjBQAaDR6OzuVRRznKgpbwsHAICqkaCm298fEN1Y3ul1f3ir+8Nb75hz128feXTL1q28NAYAAKpGZ3evopiymn4wILoxfhcSAABATejs7lUUU1LTHR8MiG6s2aa2X8gAAABUk87uXkUxJTV97cCA6MbUdVMAAIAxQmd3r6KYipqeEh1qCgAAoNPZ3asopqSmOw+cEl19PfUeAACgOnR29yqKKanprg9PiQ41BQAA0Ons7lUUc6yoKQAAQL2QoKav95wWHWoKAACg09ndqyimpKa7e06LDjUFAADQ6ezuVRRTUtM3Dp4WHWoKAACg09ndqyimpKZ7Dp0WHWoKAACg09ndqyimoqYl0aGmAAAAOp3dvYpiSmq69y8l0aGmAAAAOp3dvYpiSmr65l9KokNNAQAAdDq7exXFlNS0+FFJdKgpAACATmd3r6KYkpq+9dEZ0aGmAAAAOp3dvYpiSmr69uEzokNNAQAAdDq7exXFRE0BAADKI0FNu4+cER1qCgAAoNPZ3asopqSm7xw5IzrUFAAAQKezu1dRTElN3z06KDrUFAAAQKezu1dRTElN3zs6KDrUFAAAQKezu1dRTFlNPx4UHWoKAACg09ndqyimpKb7jg2KDjUFAADQ6ezu9YRy/7Eh74OkpvuPDYkONQUAANDp7O5VFFNS0/ePDb1/bOj9vw55H1BTAAAAnc7uXl8xAyer6V+HRIeaAgAA6HR29yqKKanpB38dEh1qCgAAoNPZ3asopqSmB44PHTg+9EHgUFMAAACdzu7eUDG9D4qaDosONQUAANDp7O5VFFNS0w8/Gf7weORQUwAAAJ3O7t4Pjw+LoqmpqeBQUwAAAJ3O7l5FMSU17flkWHSoKQAAgE5nd6+imKgpAABAeSSo6cETw6Lr7O4tAQAAgExnd6+imKgpAABAeaCmAAAAWUlU07MHT5w9eGLY+4CaAgAA6HR29waK6buEu5BqnWEAAIAxR8JdSPob2WqdYQAAgDFHwhvZdn54KnS7PjyFmgIAAOh0dvcqiimp6cbu3o3vRA41BQAA0Ons7lUUEzUFAAAoD9QUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFmpiZoW8znHyeWLpYLreB8sfhy3YP6qUnAd02kvlA0hYT9HeTfGjxynNStx+QnOhCfkb+XlOUrHPxPlXk04pnrcQjGfc/x/bsGQpWI+5+TyRUvG3EIYkVKZxooTIjY3viVw5fOsp6onW3CjY1H21YJEHg3JVbp+AGCMUgs1DeY+QQp0uZAnSIOYxquO51mat8QYZT0P/etS5wVOnVaCnyDhnMVrujxHmXYL/kRdcD01zeWLBdcw1Ut5iKqw4OYcN5/POY7ruo6TcwtFXd8lZVIlSyy6mE+bYoW1rCKV2EIuX6xYntO0V7HgRm1hVVOxNcxUrH6EM6Ym/sY3xJoMvSujKD6vADBCqq+mwWRitCe0ScObHZT5JZcvGi0Ec1rxylQSY4pV0zRpJU1SRvvDYJsmqmkuX/DsHVVNC5IZJFhduvml64mnUmJFR/ZuznVj7LxiPpfL5V3X4ENdOfmZFqtWyJWhRrTaqUiexaawG8Ser7xZeYNypTAgK1I/2rhQqkzZNgm8S/1ciR4AKkW11TSYDV03n8uJ5lq+EA3xaEYtuMGUKFoIBjUVJ+Hoc+KuqezB1Wc7SU0t0QnFSJMfLVlDWnF5FtVUmOZ9Nc0Lm5Pm6VWaRsP2KEQewok5Kphi50XrDA27GooVFCakanzCjn4F81wMzVsj5qsGtp1eYf/Z3KoVqZ9CXlxkaSNC2bD2POUUMVZHGABUiGqracH1xDHQykBaJKNKVlMn57o53Y6MZkPFrBQmjVS2qf0aZ4g8KctrfSnK+PyEaiZv6gUfUudZtE29jd3QNnVduRaFlYdo9ouaU1A1QM5PwjVIwRYUrR6D+RO/JEmxlgibvQJ5FoTWqiyBbSeotllNfY9icbXVVIXqR+h4araiM1FL+42jjovky9MAUC41uG4qzRo5t+AZpW7eDbVJ39EquJoFKOzBSdOTpkYJahomZpijHVGNoilJmKiVe0ti8xNNunFqmiLPmprm8zlBTfUdSHnujPbapcIV8/l83s3lpAyG3r2oDVnU21RDaDqLCqTpMn7RK5VnKcs2VfWOxRmwQaniTdAK1o+8hlN3mmWjNrwzQN/exToFqDA1U1NPAIrCuj2aI5Wd3kDl5CnP/6RdDNIEyEqgddFNQcIUZRKLkhKp5Cc5PwXXyQkTvzE/Ze70CvO8cN1UmyVjLBG5rIVCKMzilbhwWtbun9Ju0bGkGLWzrXxxM7tBCTLn2W8Xy11P4r6Fekld2ZL1Uk6lptnrR41IE0VfXgvhIkG8kCL4RE0BKkxtf2+qXucxzmGCXSfeuySfCs2xnDhpJO+aFtzgBtHI8jTPvKbfz4gzXXJ+ioVCwd+BDAqbeafX2+gthrapp9SqcJrVVCttZPaplzLDeEXhUHZWrTfraBuk2hVC8QqoKbS6WV6JPGtLJrttqly+NO70plHTjPUTRV6QRVEvhhCt3/g5WUxRU4BKU301jTbPhD27fD6431HSGFlkNPkRZmHz9SBpyrAoU6GQODvGWBamq2/2/ETX84p513Gke0Tk+onPczBhBtVYzIc39pahpkJORQ/yVqJ4pdK3tK1qGmN7iX5U6yv58p2oGRXKs5cb6x6usjIqlYr5nLRGG4maVqB+JFk3JCSG1jZTBG9cNwWoNFVXU2GDTRaZaPfXcN1UCh560WcDg5gapVW/IyNmdtTT0i5KpctPpKbSlKmbFgl5Dqx46dqssGmp5cMydwYrCTFQwXWCH5YIShVegFRtQ9E0TJie5WoWJSPJRBIvUVcoz1qbm6y1aNUSn0FdTU0XqitSP5qa2uVUuUaq9UPEFKCiVP+eXmE2kzFd01F2ekV/Bdd821DkrVgs5HPKnCJojjxxWS9YeeaetPVqnBmT81MK1NTfMpYM0DLzHGY82D70tpYtE2TCTq9UdtESDlMO0zXZeWH12LZqpXg0zdcFQsi0XH2Vy7O3Q65Xh7KoijZe7W0qJaD309Jo1Y9cT2Vt2rLNC1B5eE4vQL3jC6pFqzXtjhVnABgZqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgCMFu3t7XPmzGmDMc+cOXPa29uztDVqCgAwKuTvv3/p0qUnTpy4AGOeEydOLF26NH///SNu7uqpKWs0ABhPJFozs2fP7u3tPXfu3CCMec6dO9fb2zt79uwRa1yV1JQ1GgCMMxKtmba2tgsXLtRaJiAtFy5caGtrG6GWVk1NWaMBwDgj0Zppa2s7f/78GagTzp8/XwdqyhoNAMYf8dYMalpf1I2a0qsAYJwRP/96894I52aoOvWkpiPOJQDAGCSNmp4esxTva26+r1jrXIwdUFMAgNowttT0GdcxqOMzruO4z5x+xvUndqf5vmfua3Zk/HCqvhbva3af0RPSDptTrjfqSU1rXVeVpXhfs2PqaPVDNALqvywAtSBRTc+dOzcw+uz9haKOMzdsmBl9ln02/2Kv+mXDzPCg2YOe3swNAwMDUSKiMAtRCYkLfoOwxrhryLlz5+pDTaVeJTS+0NRhdRtbQGkl5ZAhTq2HpW48Y/wmT1I/tZdCjFaIMfRpTEUfDV62dM8bZkqHLcPImIIfylYWAIgjfv715r3+avDGouYZ64NPzYve6F8/w/EPCKyf4fjnTDQveiOIatEidfIMvQiBmxe9ISQcJq1/WT/DcYTsrJ/RvOgNxftYoJ7UNMizX5f9/f39byxq9is5apT1M6KK91tfQjgfnTbGKWA8aMYYv44tGUMpglPNzc1hfG8sao7y7qgxiYfCON9Y1Ow0N6sd8A2v3xviEvu5paDR+ElbOwAQMmbUNNCmcNAb1FQ7FMqZMH3G+RcDRmeCL7J34ZthgktMoSbUo5qKmJYngoYZ5Ew6ZFzdGA6WJ6YJ8aeLUs66F5FFv7SozMm+sajZmbFI8fvGoubmRYuCeMta7aGmANlIo6Z9o85u3ZKcMUO2P5sX7Q6NyuZF67UAzYt29/X1eV7CzzPW+7F7H6QEZ6w3JRvGtXtRsxdNX9/6GU7w0ZBx26laUE9qasp/2GTSobCGhV2FwJvUNrsXNWvhDXEq7RnF2rxodxDJ+hlhn9Pi372oOcyAt9CSkvZ6lZymGk3zot3iQTmPWn8LEpHwU5Q8e1+kePWASr60MSTWgFTXiv/YiAHGI0a9CM8mqumnn356qHqsnD5p/pbgozN9pXxI87Nl/iTlZHR+5XRTwaevDAJGXw5tmT8p/BzFEh5aOd3RU9G9jQE+/fTT+lBTY6+S6tlrIcdcu1vmT/K9bpk/KfSzcrru39B20qGV0x3Fg941DPH7cURRBV1Iic9QiqizhaGV/mfOs1oZYoreceGIOIqstRiFlCtCroHIl1w2KTRAo6Aoingqfv6tmpoGs46gepqabpk/afpK/59BKoUJRJmL/IBKUtNXWgTXcaavlHQ6Tk2Nel4z6klNe2RWTHOcaSt6NFZMc5ymeZsMh4OjK6b5WWyaN2+a5NUU56Z5TcIxIRqzB2v83tHw66Z5Tc60aZYyCKu+NsQAACAASURBVKUQY48SXzFNDGfIVJiGE6YQxrRpXpPTNG9TFEwLLwe0JBN9VWog+KpGq1UUQGMQKoVyPI2aViN//tBcMa1p2rSmaSt6ejbNawrmhmAMb5rX1DRvxbymaAiHnkRWTGuat8mfQHS8wJvCWKQoVkizZZiObXrrUefBWlNPavqhwIoWx2lZ8aGZFS1O07yulAejWMxxds1rEo8aolF82OJf0eKpaVcUymlqajLkSkypy9AtW1bI2YjJgFgswduKFqdp3rwwDmPd6PWheIu+KhkIvqrRds1rshUWYJzjOI5+MI2ajn7WwoG5oqVpXteHK1qa5s1rCeeGaMyuaAlnHwPh3KIM8q55TersFB7qWtHS5E+L8myhTXDySXXi6ZrnT6T6hypSj2pqqiehxYTTK1qCgytaHL1uhRaz1r0mNKLGrJgXtJtRzMSwkTYqHaFrXlMYobkU1gyL0tj1odyTpEVCdFqsD0f8FnrRA0ZZEcsu9nCxDOIXudbNmg3QuIwNNQ0JZEpY92pqKlsEunJKPvxjVjWV4nUc2bZRl/KqbgueUNP0tLW1nT179gOPx5SFUdPczg8++OCDzrmhEdfy2AcfqJ59X5LH6Jglzg865zYJvrQIvIQ65zaJSRrif6xFzmbLY3IoL/ngqF4KoTSmcgQ+hdwK8Uinw0ilL0K8hoBiJUQV1TR3bouYWktLiynnYs0aSgTQyJw9ezZeTaN5b3QJxn3LYx988MFjLeLc4A/ycJIQpwiJlscCz1YvTstj3ozQNLdTn8DUmVKberU8J/ioMvGtmUhV1XQ/AMA4Io2a1jqPNePlu5qcG5dbZNlZfqPTdNfLtc6jRN2o6fDw8HsAAOOI4eFh1HTcgJoCANSGRDVl3qsj4lszkaqq6TsAAOOINGpa6zxCWupGTYeGhroBAMYRQ0NDqOm4oT7UdPbs2UePHu3v738LAGBc0N/ff/To0dmzZ9vmPayI+iJ+bZRIldT0/vvvX7JkybFjx4YAAMYFx44dW7Jkyf3332+b97Ai6ojEtVEiVVLTUql03333zZ49uw0AYFwwe/bs++67L2bSw4qoIxLXRolUT00BABoNrIh6IXFtlAhqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICs1E5NC24uX/Q/OW5BPFXM54JzwXfZg+VwwXWkcKpv28mC64g5KOZzjim9+NwoZ4TP9gBeWgGiJ61O7BRcJWwQcUXqsJh388XQn/9Pz10QT8F1dPSEi/lcTFNpLeLHm8sXLSnoSSnlN7W+oUqiTmmjmM+5BSH7o1M/JXsPEHKdnFslQmM3ETPiKtkrJ34T9kFXr2M8tZ/kFHKua5wvYhKoVf+Uu0ncyJOLHRahmM/pvS9V/41pUzEm8zCyThZZO7aZMammShXa6jO2BxhCWAai0lPUGSXnd0ZbLxKi9IoUFEfsSUKXStOqCSNRLpPjFoxFq1QdBuPTzQdxxIx8fYCErRsvg44/2JWUxbPm8ltrUAximvnU/OTyBa3aE2aRqJ0rUD8lqd2L+ZxbkLIYTo850YulOPZG1WO0CkPBDaIpa/JJnnqDMVWHY1zPmpp+mrJHc0UuXxQTzuWLQRcZg/3TgNxwQt6DtO01mNZiSOp//trB5M0yPZS3DE1P9dU0qH6Dmooi4je/rUMKXS2XL6pWYdhj4zt2MIG7BVnxPHmyzcbmtEphiaKg8oJQw9qmKVdUXi/KRx1Yja4CdagPV2WOd3L5fPRdM27CepaKmzR3mmo3qW6EtDQRkkuhtJIl6mCGtSzihTaoUP1IxY2SUceJLrNeXoUCGadGqVt6c3hw1rdf1Dz4YhrTXgkkTZd1N8ZT7ouUkhUgaBp1yR0mNgb7p60NbbUjVnmQs+SVlhcqzoey5yTkz7ClJSxPSmG1jn81LbjlrmCkjiMsYoXKjak0L4DgRal5NfbEtg0GkGnjWpiWHDlBOWzgx2wpyH4cLafG7ZRSKVMdeuHzrpsTlvDRTBY7gauZ8FbXtjFUkqtZnvClWIq2r+FGllA1ynCKjIKclBVvUgmnOMEQlCaYcPUix1mZ+pGmBVUt3IKgpmLRw0JriQWRRom7rmGUiXmSghq1ODXKSjMufL2McSkxWbe0jQLzOiFcIqmtEKwsojXUWOufav2EQ9YWouC6eaFW5KjjOoTN/FCiMW7vSjOj7zmcUXXtqSy1VNOgVbzuII288Ltot5p3J2yDIHY9abLi0m7qm9s6akVdi7Q1cFC2sHtH5wuuo4wjre8XXMcyVoNVSbD+rEQdetnzLaJcvpB3g8s9JltKFTJThaaZO7UtMLEmwuNBlnJyo8qZEK9OCScDoRVlO9rajGY9Y40pC6RK1I9sFSq7ob4KiGoqVKfa7QIvQc8KRMWffIpFYYIR2t5fZZiUpnzrVFkTqhVZl2M8rZqaV4GOdG0xGOVGc80fd2Oqf8oHxBW8vMaXJiO5ZaRZzkRUP+K6Up1NvX5qnQP9E5JsFvM5R1isjEc1lW1TmWiKiK10oYlsJp2WuraeMYdU9gdi8HtNLpdTpzU9pqTj2tZEUdzTiiufvtytRB3KBlB4S4OrrvC8eKRdIwGxwcWpwD7hBWoqmV9pMe30yktk4/QcTEKR72KwJ6pEFlnO+YrVj3yBwA1yGYiqG+xMFpXLBwaDTakuvzpUIyHSWKF5tM4SN0jtBMMsVubqbYynVFM9ecEc9FPy5wpZ9OS4x1r/TKem4oLQ1lKy+Sg0hkkG0vU622JPWhxErdKgaioFk/tu0Mlto8A0dgyN6MekXYqSelLMKPIzX8jnC3lVTb2lpLg+SiDSTfPRuL0RizJXog4NZma48SjFI/q02Kaxq1Kxioxqmq4OTQtswbIXdgaKyhW0onizRhA6TF0QYrdQMqUy8voRvhbyXhEK/hXSXD7vdyRBTYPOLO5YmGxTx2D+SDO7J9zmGcY628cTpqvUiOKt3sZ4KsUN0rLZTU4unw/nimhlpJdqjPXPkdmmYsaFrTurUVnQY7G1l9rCpt4pDio3qtpGUVNTx7DVurZG8xMoS73yYr+SzLty161CwaIN19hZKOYuJMOJFItXpaNVoA61kkfjWLsbIJjwtaFisy8TbdO4LcBSzHHzPBJmMVBTaePJYFiYO1JkT5kWByOvH1lv9DsnFDXVUtFHUaDKBstBjD80EVXLxB8dahUlIredPXj9jfFk29RUdkM3FXQwL5qQ0gw4tvqnVtdpbNMw+aiX+uVOtk0T9/jsLWaoTH/oBJ2gIdRUvRgkBVOHY7Q+Krg5vxL1/c4I64RQME0a8khLXreKair2tXAH2JBsGjWNOrHRWosJWZE6DHug8EkYrXI8xXzON6n0LMXehORVmDLI5L1PcWqxIpidQUC9DnL5omkejhrPptymUxWsH20lZCyCUBdBTQiLON1LOWpqn+DkYtrqyBjU9FXNg5Zv7dDYGOMJubX4j1VT3ei1WGg17p8WuyClbSrXgm0RJK1O8sHtVcGqIKbLxeZNKXiQrXJ2W1JSMzUNK1RcAcvnbJOI5VDUI1N28vgT5d6hIGReWMyFM7chSHm2qZzTRNu0knUojHU3upslLF4YTyG4ZULPkqnrqsXUrG/VrJSDhR4MBwwVotagnnCw7o9GblH9LUkYgxRNBepHzZlZY8W6kHKp7WKqgmvvKLr9ICYV6Y60oWxXEks9a9Ven2M8nZ9y1DSX8xpPM6eMvmvZP5NrwWibhmdtCztbrRkzb8+FHmEx2CaXTvmrem3VUAmqrabGoStUmLcOSdrGEe5ZjTzJvccYv1W95E22+MZLUFMhFinS6Ispy5Za0ogbdCWDbZ+1DtVFrFYsJ9gfDLertAnQSyF5LhPrKMZUMKqpv0cZzPiaYWcek8KSriDdKSLPSGpzCLpSofqRMxscVaRUMEUNs4fZNrURb5uqA8ZggKSxTY0/XpTqot7GeDo/ovFrzpRfoWFv0W3TwNsY6p9qCbQKF0oVHDcXTOq+eutKnUKrDcOK2UBO+WGc3kTJfbhseE4vwFjBsolRY+J2VgEgADUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArFRdTfVfjAU/o8oSl0zyj+0ifynutBZStP/iN+ZH9oo3+XDsDZMxPzBWbnVPuBs02x3/aUInZUIrSpzn+KdOGrKT/HCTov8w8OhHH6P0lm8AaExqoabevBX9Zt0Jfjc8wrhkrFN/wuM0pAeTqD++jlfc8BkN2k+vrIkYZ2dDCEvFqE8dGbW3HyecMXm1NaRJTy0/mjSoaeRZrbqav0XZ9qNCAGgkaqSmwhPQRUOyzPkoyTYNKea9VyCpP4IOz6WTHeuDVqKoxuXbj60PpLHUdZyeum7cc1lDNQ2qKR88UsX4xCBDfsKVhMXIjL5q6avxpHqLchQvP8sEaGhqoqb5QHVM82IZ22dpbFPhYSDy84G0pwrptqlskEgyES+s9rNS7gRD1fT8LVto9Tk2lseSpbBNk5/irUYiW44mozXTU0ZMtqkjLmoKY+8tykKNsfcL0LjURE1d2yOxKmubqvO6PCMGyp3SNlXmSlUvxVlf3J007xza0oy1GQ1PJ0t9+TDpQYS6H/FbUKDw6mKMmvqrJSUf0kPBtKw5akq29wv5Jn1uTL1F2VQOAGg4arPTW8aFuOoRt1MX3CkVK3PhA09jFL4ovekh3Qxsuk3LHLLyb5gKokqppkG2jMa58CT3MAeKNvlaHGXTjSJSzwllCdcoUS3nqvYW5cAb27wADU2NrpsGW5by1Jt0XVIg+c4gs/WrTITJ0QhP3VY2kA17nLpFJutTkLHUF3zNV5PD/Nji8S5KW5XS+rhsS24KkvTEqGm0IDFZcPregPHB5dq1ajlDY+4typilAFCqpZr6tyFFchpz+0raaFMfN7x4Vr1HJfreyG8/lj4mqKl81VuvIc3mC0y+spRozL1FmfuPAKBUw9+bSpcY/XfOhdOkwRi0RSZeIzVPdMlqKryZ1jf49MkxrZqKB2J+cVFHbz+Osqe9u0vZDlZKoR4RVxuqTZp4l7GQpOmM/d4neW9dOhyuEaQbyw1qWox7izIAQKl2vzdVMdwwm3RxVZqXY2zT+NlZjzCU1bh8a+mZ7rOJU1M1e5aiplFT8WB5dyGl8CNrjX5hONoUtQQWrL5crrJvu492dMP9c/FqrOGa7Oi8RXkEP+4CgPFG7dTUsqkZ/lrBrjB+NJGOGom9FKv+BMMgsIqZ4t+LbGbcvv04umlWyItqm8ZudPralObt5Ynb3NJNP/6RsfYWZQBoUHhOLwAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACyUsdqOjAwsHPXrqfXrVu6bNnSZcueXrdu565dAwMDcWHiX/pZ5ps25XeUaA+NV9/XannyvHY46SHytpPKg9sTXmE98rfKlLQ3lUqv5g7zotSoKT+GBJIfJl/M57wn5Idvp3GFh9ILLyQt6MFKli5Q7ru+o9cyBC+/1d4eJNWQPf7Ub/W1v3wpVXf239xa0LybXwph7YJF8Z3s8ttutbcwqW+JMMUZ8x5A4f26xgzHFl17O6Dwmgt1nFa//8C4pF7V9Pjx46tWr+7cuLGnp2dwcHBwcLCnp6dz48ZVq1cfP348ZSSK/pRLgprqc6pxhoodpYYQlplOnXKUmUx8NU+KycdapCAPyWqqvVfcf825XBQlEwVNchNeLBO8EM4tFPM5Nx/Uccy78HS5tr71zlRwtbrC6KTVgtDYWrv6L32LJ3XD23U7koeopgxvBDS/INiWHyG5ICrpDXaGNKK0Ui0m9ZKJRRTbSn2LvXBWa+QYNa1m/wlicsSWEboy752va+pSTQcGBp5YtWr79u0DA6d27n7zpY1bX9q49fU9xYFTp7Zv3/7EqlUJFmopWKrncuorvcpBHnLGacEforYJSnkdnBhFNIWksaf9ASrOL/4rO8U8KfGnmvvVpIQpIFTs8CWjoS8vYfE1bPpraA2TkJy66T1oekXryhS8+y6KJx99N79Wr7w1lfWl7GFdCm9eVcRLe+1f/P5BTGPoUmNUUzmdODVNUQlGMdPSdYU35wk6GL0mN6ZUei6kSlMykFQ7wisFNTWNxkxV+49k3BvfYo+e1it1qaY7d+3q3LjxZG/fiy9v3vzqrtfffGd38d3XXt+7Zdtrff39nRs37ty1yx5aeLWl/NbNcnuxZo7FRGCfrIwzoKw6MfEGbxgVJi3hbaJ67AmTj5yYdbmQyjbNy+/yFvIQzG+5nJyFvKtrRDGfkyew8H2jUlYLedfNCSZ4tBJRZ/wM7yVNNimdXL5YKrjeOi3v+u+yDfcelJSlmdNmM2XJkyoWMTu9wfonrnMofbzg5lw3p/pS+oahyyT3MT8brvgGeLm4Whta6sqmptrrhKvRf/QYTZNCuaYujBnqUk3Xrl178ODB117fu2X77j1v7Su+8/6+Dw4e/Mvhd997/719+w4ePLh27VpjwILrSINTHhnlbvzKy0g1dPhu8JLdNIgO2SbFWJtRHdaG2K1j37odl1JNXTcyg81q6gZv5VZU03FdNzBnPfs8MuYCCybWZgo35qRZqZjPuYWCm8sX8m6QObGF9NlwxGaARTDkLKqvNjdZIcoLyuPVVNIjcUpOtk293hPbt8Uoi2LOJb3XBNmQZaFzmld16fpY0lIieWnjb9r4/UrofMrQqWb/UTtGQt+BuqIu1XTpsmWDg4N/6tz8Zvf+d/d/2HPoo2PH/nry5MkTJ06+3f3O4ODg0mXLqpANz7oStm00eSu48lDWBnsQMGm9qqDYezEh5U3JpLkn3UwXFlW8ihhNbr5xIZvMpthMeQjXFlHt+Aaeo6QVSHA+2l9wC6XwlhJXNV+D/Qdh106grPkrqkhxH0Aw3DzrxpcdbT6WmjBumeRP8Jq9btlvtX4p5HM5x83nXWPh5W2aUqlYCAxO9WpoznWVOwUMlxDDnQehg8hplaWmhn4im8eGhjMsNuzXTQtV7T/2neooUxin9Uodq2nXllff//DQ4SMfnzx58vTp06VS6fTpUs/Bg6dPn1720EPWwFZNGdlGb3T1JZrYhbT0vT2Doli32Ez2hGHHULB/bPHIloKWE+H2DUvtBLnRCmq1TQvaXqBSrIKwEypZ73lxn1eKPAziyGqtTewF3zAOTIwwVcFn+UZAWDtqRUrLm2Ledd2cbd4N1gFq65ovIwc17u9wBIuzVLv34Qop79//FV261ItubaogpkI+2kEQiy5H4rqGbXjFe7rrpuLiTS6u3M8SY0lQU3N9jE7/0XYSjLKJcVqv1KWaPrV27aFDh97qfnff/g88KR0eHj579uypU6dOnDhx6NChpyw7vaWSdeVX9uWQsM8XIxPEuO61znfqZCGNIvmSbiz+zbJB4spdG5W3TVNeNy3ExlYS70sRW0UUJnMlRPa+yf6x7RUUo58+aPeFlS2q6gUCR6oPtyB2DoNtGvysJlFNg+t44gUDLfV427SYd4W09D4gWmZS2k7U2o6ph8bmueCqq4nolu5ybNOCa1pPWFrCkK1YNQ1s/yr2H9U2NU9F2Kb1SV2q6c6dOzd2dfX3D7xZfOvI0aOlUml4ePjMmTN9fX2Dg4Mbu7p27txpDVymmtpuLlLuThXGoPlSl4fhYlC0Bvd32HLBtcSy8m+Z/6y3n1psU3PW9KSkVYK80+sXQBI+f1XvGXHSFrc2KanXtqXsmE5FUYq1r2icsJWQyxfUG1slzU6eyaSp2RHCFNyc67r5oiqiRsVKVFPRXre0ol2Mouk/b1jmGWwxzVY1JG4y4eRdBFFN1Q5sswrNFS63drDPqsSZzTb1Dla1/4gj26KmNpGFMU9dqmn4C5lS6czRjz8+duyvJ3t7T506PTQ0lPwLmfJ2ei27LsKgUHZei+ENgYLNKkZnVVM1e5YRlUZNxYMWWbbOYmn8pLVNveJE6qkdK2mRKHdyFsUfnEixS8UVGjXYNvemPuWqZXjLk1nG3UKqegmf2KDMwnYjzlSdSWqaRnyUZZdJTY1x6Vu2anbTbYhGjSnsjFiGk1klkvuYH2Ng6+qbP4agqpqGLS7+6FkoTfX6j5w30/yDaVq31KWalkql48ePP7Fq1caurp6enuHh4eHh4YMHD27s6npi1aqEpzeUZ5vahqvQ9Y0LZu/2wPit2mCXSRqfskJoO4rGecpUsNC3ZWSOVE21BXi8mkqZMWRcmObkH/7KiqkugcKjfh0KMStaXXDDeTi83qtJUmrbQrFFtROqSaQE07ZJjT9edBzHCW74idvoV1YUJfFSvpJcONPb0pLa09rNzGtLqewG2zS248b2Q9NuhBeb9VfcYrmivWbjOBKuFFSr/1jrMO1pGMvUq5qWvCcL7tz59Lp1i5csWbxkydq1a3fu3Jn83AYAgNrhGenGBUDcJR4Y89SxmgIAAIwRUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFbqWE0HBgZ27tr19Lp1S5ctW7ps2dPr1u3ctWtgYCApXME1vvbecQsjyUUxn8vli2nOFPM5UxLa4YLrWGKMTa5UcKUyFPO5uCJZcpPeT8GNrzHj+aDu/TOGBAquvfBCror5XFBLxbybL4Zx+f/01IO0jM0/srYHAAipVzU9fvz4qtWrOzdu7OnpGRwcHBwc7Onp6dy4cdXq1cePH48Napzm04iL5NusyCE5f4KPpMGmg7GzvCGERWyVLLmuq0cUk+3YrFlqIL7C/GqW09TWDUomClq0CVXtFkqRvrr5oI4NOY/qWS1r0rrAXPYwY24hfgEEAA1BXarpwMDAE6tWbd++fWDg1Matr/3ioSd+8dATm7a9NnDq1Pbt259YtSrWQq2kbZo0EftTvE3AhKzk8kVJAyLxteVXzLcvbmEE/ncle0r8hrQSEgtDWL158Qino/RVGTPUnRxtTjA5lTqVC6XlUo0nL+RHWWaouUxErqzgY8yeAQA0BHWppjt37ercuPFkb98vH3ny0mvcb956Z+761v/099MWP/ZUX39/58aNO3ftsoeugG0aBYqm0HhhtZ+VUhYMVUG5YuZpL4DgpeDm8sXouxq7TScjgRASkysl+mYzTCUTzSuCLclcPu/mcjn1UJCRqGaL+ZwsgLl83sujlNVC3nVzggkerUSCjNpt07KQW0YrLwA0KnWppmvXrj148GDnlh3/11W3LP3jzl19/+OfXn1vwt//4G++3rJ775sHDx5cu3atPXSlbFNFU9TZ1EsmtNVCm9G8A2lXnRibUZWFci5DWpYPKdS04DqKDhq0y6AuWlY8yfQkKZDPgqusJgwiFW7sRjrp+AcKbi5fyLuumwu2gMM0dTUdiT2pLqCSd/IBoDGoSzVdumzZ4ODg/F8/+v98e2b7vr/eUjz0pSe7/9df7frCFd9csuLpwcHBpcuWjXYeivlccMksTgN9iYhRb09HZWVIm7h6zHTbjzT5x+CFTVZTxfhV9qQlNZXXKLKaGpcPgUhKZrCntWLVFvOeGVrM50JLNVyV+Lckuar56sUh7frGLExsqEUUzWOMU4BGpo7V9N72FV+44pqJS3b+p5XdX3i0+39ZtPMLV3zzkTXPnj59etlDDxkDJt89lHI+9CMSfZsmU5M5ptx260eT3mAuuIa5P8yPLZ5cvhinlGHmR3bdVFFToVzmOheUW73CK91MFCh1mNkwiF9pVjOz4HqVoeVH8DkCa1IOIqspxilAQ1OXavrU2rWHDh165bXdf/P1lv/w9Vv+w893/U/37vqfv3rL//n1aQcO/uXQoUNPxe30CozUnPDts3RqapVwdfNX2UUMTa44ffO0LC9qh3I1r9K2qRat6MFgqmkiI0ijaV9YtLvNlRDZ+94aQa2NYhiNYgwHP53R7gtLr4LYpgBgpi7VdOfOnRu7uvr7B5avKfwfX2v5QvO1/9vka//may3Pv7x1cHBwY1fXzp07Y4JLF+WSJlX7jx/Sqql4IOaXG6Viwc35uYj7xYV10hZOiCU0K6vNNjVnzZCWHFVUgaF4Jqqpvk6IZNKYrLwnLh2W7mQOSmRS02I+l8sX5HIpmh0rieqNR/JOMmoK0LjUpZqGv5Aplc5073v/6d93bvjTpoMfHR0aGkr8hYw/ZSp3B1mJ2b5LUlMppeiYVU3DaCRjMSnZhBPl3oWU0o/9xlhxzzhhp1dOKbwg6u97hwIpSrSQhukirR93IMjCzb1+YcJbnswyLl2yNSNuSUuFwTQFaGzqUk1LpdLx48efWLVqY1dXT0/P8PDw8PDwwYMHN3Z1PbFqVczTG6JrjmmvU8b8nqLgWn686M3PeeMupZxWeN9v5ElWCEVDhLnfnJ+C7tsyxWdT05hd42j3Vf2xiynWsODekxuUH5xYL+cKgq0aocojoQpueOdR2CbaAia9bWpbX3HRFKDRqVc1LXlPFty58+l16xYvWbJ4yZK1a9fu3LkzxZMFATLh7emK4s6zkACgjtUUAABgjICaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsVF1N1dcqW95IrR2OfYVkzLualZdHe++mjMtd4ju0AQAAFGpgm0rSZ9PBQNYKrqNjCGER22I+JwZ0XVePSPGTkBAAAIBGTXZ6i/mcm7doWC5fFBQ0ly9K9mIkvkaZFYWzEBqiYQT+94IrmadK/Ia0AAAAYqntdVNF1wSkBx6TpwAAIABJREFULVfBUA0PFtwYqfMCCF4Kbi5fjL6rsWObAgBAFqqtpp5J6alUKI6Gq5XeIZvQBSqXah/YELtVis3XTYv5HMIKAAB2amGb+lpm3qv1xczT0UDZEu4dKkW+VG/mkKKaxm8Zu4USagoAAAnUUE0jZIswMEi9K5x2jVPiNOzL+jG5BVs8uXxRzo2cE/tGNAAAgEDN1NR6tVLd/JVuBgqkL+ZaZ6SUedcT0uCaqx6N9zkuFtQUAACSGYO2qXyoWHBzvhkZ95NTqxkpnIg+ymqaaJuy0wsAALHU4ukNwR6reMyqph6RAWkxFtOoqXiQu5AAAKByVP+e3qSt2uAqp7QbHEmceoE01FmL3MlqGvpO88McAACAdPCcXgAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkpUpquv/9A12bXy089yIOh8PhcGPWdW1+teej42NXTY9+3Huyv3QRAABgDHOyvzTW1fTixYsjCwsAADACPvvss48//viTTz4ZGBg4LVAqlby/IWfOnBkcHOzt7b148SJqCgAAEIGaAgAAZAU1BQAAyErjqWnBdXL54siirjuK+VxMaY1n44OUCq7jFiqYw+pFPoZJqPOqM4L8JAcp5nOO4zRmA0NDgJqOa1BTP1qfIHZvZteLWXClw3rA0aEB1LSYz424EqNmcKrTHgAjATVVyDLq65f0pc4ieImpjIaaFlxJRL2PxXzOyeVySkfwrSf/qDFg9alth6xY6pVYxDbq1gXUCTY1HRgY6OvrGxgYCH2ipuOY8aumxbyqmWFO8kp2ivlcLp8Puoc5YPVBTcU4Gm9oQv1gVNP+/v6+vr558+aJglrXairvFYXD2jdGwq0jwVs4pcbuLZnOi2mJO4v6Z++TuLsYhQ3yqB8RE1VPCdnK5YtiWgXXyeXzruTfPyuXWs2qUhLbjKblcyR1K0ZuqkbpuKB8cXUimphSBXkll7Z1c/lidMgUMNrPFNpOzaLeZGpDq0UX6lw+pVWakhc1cUNvUQ+m6YqGjuG6Oa2uDDVaMvY0IaLQj6Fxkzq20veMeVYyY6oTw+iIaYK0bQqgq6knpf/6r/+6cOHCZcuWhYJav2oqTYsFVxhVbjAMIi/yCDN4EDAs3IXoxVD2KcycteiIpKFpV+ZmNRWLqJxV5pLgoKH4RjXVcz6yug0jt1SjuvuabiLzZ0J9IjblTaxyPaCsptIyQNQStclkz3pLSh6V6rW0u7nv6UlrTZOmKxo7hhC9oRPE9zQ1tLFxEzGoadKC1VQn8WqatmKVwQugqqknpbNnz/7lL3+5evXqZ555Zt26dZ6g1q2aKuto+au2DlUHU6x16k23shlgnLriDAJbWMPdF2Uvgq3TSho1NRbfpKaWXbzy6zaI3FaNsU2ZXBNRG0pzYi5fjKLS4rTciqqURZRnvckUz1q3UaRIyoFtFWXqe3rScUakvSuaj4t1FLOyNPU08aitcZMx2qax5YofQVYBTlGxNd6Bh7GIoqZ9fX1LlixZtWrViy++2NXV9corr+zYsWPr1q19fX3jTk1F28aqK7oHHW++zeWLxpkiZk8phZomqFSSymZRU3Px06npCOs2Rk1N1St8TVcnpr2CYGPSMtcrAQ01K301Bzf2HqHbmJcZ4payVhTdpzHpSqqp3wzmDGVSU/3igLERR6SmMestc1VE3+MqFjUFDaNtqlPPtqlte1Cdi+O2tgQPAsV83rQYNlxeEra8zGmp+Szk/XEceSi4SYNXSEU4MlI1NRffutMr5XyEdWvf6TVcyxQFObZODAsWxeRypD3b0EvcSkfqEXIR9CZT53212wgrGK1HWWZtS9/TktaaJk1XjFHZnOsa785Kr6bWxk0kUU31csWOIGOQtBWLmoJKY/xCRryHIDJDoqVwznXVexCCGzZ0D+aIpZnX0Y+GcQlRaQMySlCap9W4bISzg2EqjldTodTyTKrl2aimes5HVrdi5OZqFMOJdyEl1IoakWpyScma7F11qeF9cg3Nb2oytaHVbiMvM8xdQCupoe8Ze4vWqZK7orFjhIka67wMNS1ZGzeBWDU1l8tUJ3rp5CDpKhY1BZXGUNNGwyJ5441yrptWLEV9Sm4kql/lladBRgdUHdR0HDJ+pwtx+9VqJo0eQsU2pJqOi0KP39EBNQY1hbpC2HOrqZE0LoSlHOTLywCggpoCAABkBTUFAADICmoKAACQFdQUAAAgKw2gpvozDTzGw83+5dOYpTZje0JefAWNwj2hyYlWAe51rQpjoq0rTsPdlGcENW0w0pa6KL/Rc2x+DQ8a7/AtuAk3/o6empqfnRXrvay+KD+DrzLd2FYu0xNKKof2ENzKJlNmQ4wg8nLznbatR6OJRw/UtFRqCDW1gZrG+HFyOTd4CdfY/BpRzCe/+ttWzhE8JS6FmhbzuVwuKcosE5D6+KZKzGTG2lAe5RiTTMb5dHQs41QNkSX2MiTUuHCzB68vfaqv3I4WqGmDkbLUypp+bH4Vjia8+tvMaKmp9zy9JH8VU9MKKZGpNorpX5k+FtU0XUNkiR419aiv3I4WDaCm2jpe3z9RtmxEk8byhE75ULR74yVm2hwzPUPVHJNwRHlWePQgUeEp8MZYbS8hT1dqb/4Rn0E/9r6qdS6vE7wvxqfcS0+Ude0vS7c1pflhwoLoFM1vvFGfFq0nKm0CCl/0VNTyGB+Ba+3D6WvDavcqqSih4ju2XmMlTU3lPmzOsKmwahXqDWFrVuvItefcKCEF11Felm7sYOJB45vY9ci1cW2YUgquk8sX/OP+DKLWtlpplZhktGcfN6S0NpSaSlNDqgfTGcaL6TXX8swu9e1wajaHMo0X44GCG25mBv1cLoGYlvYS8vJKXRdoaqrUgLQYidMP+bSspqamFNVdEizTNJQTW13foFYTjUIYDgkHxRlejNXkOb6bxddGKZxLxRisWdLqMD0GNTU/YV7KsLGwgjQYGsI+Qs3HY5B1Nmp+MUqt/6nLNSWr0mpRbmNlXJumFPFeAa/h1KQMlVaJSUYcg+NjfhkJjaSmiq2Qas/T65KqP5OdqSRm+KqF0iPXjkS9NJcvFlx/GWg0fUzz2ghLXV9IBfcNKmXVPVI1NTVlEEo2+E0rfct8rkZomuzE1AypxKwQdc/WTpVcG2IIpdvas2QbNbEYbdPYDFvqX4zR0BDWZo0buRbstqn6Cp3EDiZ2WVsr2NtFahtToSVx1Cot+yTjfXXdFEuQ8QxqGniJG5ne+WiBqNoPhsTkr3GhhMgNR4r+pZ+wixfyyupRCKVLR5ZS1wvqGt/w6u9RUlNDfWnTldWz2ZjzPBYtbzIzhDXvzplrySB86dRUSig5S1qKyZ1tRGoa118tDVG+mtpzXkE19b3GGvh6nehTSgo1NbddtknGz01uPP74pwwaSU2ldbzYGe3orw5W1ci0WJTSUEd+dND01mjtTcWlonBbovdZvMihXW4paR29/FLXGbpVpK34A6u1JLVQip1evSmlnV7RLAwNJrFLhN/FE96r4C0zZ1F5I7cpFX3PQ7jEpXo2v5w8dW0Y1mVJWTJ14yQS1dSYYT0bQnzmhrA1q+14DJVUU63dk9TUPBElqaml0jJPMpLZ0LD2aUOpqbhgTfuu6SiEMBr8KMI3DCsjxPASaVMoQ+SGI1IHFaYVxbvhGobBV9pS1wH2Nb44W+iGuPHl5P7ZnHYXkqEphXlfMFsME3xJPhJ5jkm0ZJiQtFTMloFmSYk5NoRPUxuyZaYYRuYurmwopp1ZY9XUnGFTNoRFr6Uh4kao+fXvVhSrVbfmoi0GY1uLNVZShStJTc1TSqKamtsu8yRjX9E2Eg2gplVAnogasR9VH2X6rTw0ZR2S3CtszVr75h6HtzQ0GKhpBVCsFabgKjDqYkpT1iEpesVYVdNapw/ZQU0rC2Ni3EBTjkvGopo27t7o+AI1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADIiqKm/f39fSYGBgZQUwAAADOKmvb19d1999133HHHHXfcceedd957772PPPLIM88809fXh5oCAACYMdqmixcvfuihh1atWtXR0bF9+3ZsUwAAgDj066aeoP7ud797+eWX33jjDU9KS1w3BQAAsOGp6YkTJ06dOhUeHBgY6Ovr27hxYyilJdQUAADAhqemfX19p0+fPiNw6tSp/v7+U6dOhUcGBweHhoZQUwAAABVPTT3VHIxlaGgINQUAADDgqWmpVNK1M1RQEdQUAABAxVNTXTiHh4e9vwqoKQAAgIqnprpq2kBNAQAAVDw17S2Haqvp+b/7OxwOV5a7CABjnpP9JdQUhxvT7uOTp3E43Nh3qCkON6bdCMYnANQLWdW0trkHGPswWAAaAdQUYHRhsAA0AqgpwOjCYAFoBFBTgNGFwQLQCKCmAKMLgwWgEUBNAUYXBgtAI4CaAowuDBaARgA1BRhdGCwAjQBqCjC6MFgAGgHUFGB0YbAANAKoKcDowmABaASqpKaLlyxJ40atmAA1AzUFaASqp6bGV7N+9tlnn3/++aeffjo8PGxX02I+l8sXoy9uIWOpa0Ixn3Mcx3Hz+ZwTFafcKCxll6pI+6ofsMSkHS64al4LrhN48UsUEIZUjsuE0RVcmxc1Z8V8TjtmOjlGuwZqCtAIVFVNn3+xU3S79769ct0rc+4rHPzo2NmzZ1OpqTYF29XFem5ECAmPKNpo0i+OgpoqJ0z+1CWJMQtBQKPSBSHCwGIsgshGyYcfwrMF1xjCVBS72pqE2S3Eq6kgulHEYUIjbI90oKYAjUC11XTPW/s8t/ft/QOnzrT8ZOVVNy3r3Pr2p59+alJTb772Z23VRImZBYv5XC4XY9CUR8GVNFRQhLLiGNGUHa8puvQFFWXQnGI+5+YtZmMuXxSi8SMR5dGQealIipqml0CVFOaxjTSme8F1RNs6VP1R1FPUFKARqI2avtm9//DR4y+8/NY3blr2j3PWfvLJCftOb8F1crlcLp93PV2NFMQ+AXqzo2W6Lhdx/s0UywjVVAgmy0VkSMpWoxTEJP32ipESEAzV4KCvuG5Bq5VAQbXUrBKXcqe34DrmNYDdiNakOyqBTTcr1FeMoKYAjUC11XTfgUMfHf3rvg8ODg4Nz7h99TU/+M2m7ft7Dh5Mfd00uPoYN/UF/iUF84RY3eWzHw+Ik0FxLg/DFVwnl8+74nQubRNLJnZ4JpfPGxMqW01dV1Iv76SXTJgZZR+2pERpsy3D/d2k2o9VOGGDNdk2NamfslUgJawIsXFH2hI29FvpfV/UFKARqKqavrb7zd1vHVrz/OsDp05t3LbvWzN+++M71n722Wf79u2PU1Nvgit4k7S0b2me1CP9E5XQm+RFIyu6jGk6rsemJyPvdEYqIcatZSWa9JVdR6O1nUpNFcUTvUXh/U9may4y3Rx1oaHmyI/dIJoJJrFFQGPMQv3qd4zYabkNFVJOIbKvTblATQFgRFRVTf9y+Mishc9c84PfvPXe0f/vznXfdh/589Z9n3766cFDf7GraTHvum4usvZipnAPUf6Ez8pkG361HTdFZ0tGCqhIuF1NlRjMCaW6bqrdH2S67UcTOE2bgyhtaSomrbotbJAsq2wn7NCGLeM4ln1eren9DMgtHsRj2n8WcmPxVCFQU4BGoKpq+uZb3X85cvKbtzz8rZm//bb7yA//9anPPj83PDx85OhRm5oW8zm3YLyJ1Gab6vN0ZCeORE1tcmpQ09ASqqialn3dVDqrqKl1G1YVSEldDJkouN6WsF5mPYRYRK3NtGPRPr3h2ret1UWTMqhgYUVhtn7FvYFRvHCKmgI0AlVV052vv9HbX3pgede1Mx/5zg8f/X1nt/dj0+PHj1vUtJh3vZ1LXZ8s86q6VRt+l3YNhS+W48L0rG7CClum0k6veXs5406vUh2mMpvVVM1Akm0qHyoW3GBj3WSEK/k2bhDE2qaG/BkPpVNT4/asqe7l8KadC3Z6AWBEVFVN39iz98MPez46evLB5RvbV24eHPq0f2Cgr6//5Mne9E9vEA4alcVw3TP4MaLjuq42q1uOK7Oq8X6jmLuQUqmpePHRdhdSyjKHKFGIlwPVs3FqqsYsbeIKPzYJcq7qZBrbVL8qqntKoaaW27vFBrT9fMeQDmoKACOiBs9COnv27Oeff/7ZZ5+dPXtWfC5SajUN5vjyJj3zLTX241UnxW9oUtum6rMmhLtbrTZjeN9v5EleN8i7vZqd6YW3X+UUFT/vKu0nrgiU48qVVnVHWf9BjUEsE66KjuJF0xJqCtAYNM5zesegmsr33pa7PIBy8JrZKO48CwkAstM475AZg2oq2YpI6XilDgcLAJRN46gpQG1gsAA0AqgpwOjCYAFoBFBTgNGFwQLQCKCmAKMLgwWgEUBNAUYXBgtAI4CaAowuDBaARgA1BRhdGCwAjQBqCjC6MFgAGgHUFGB0YbAANAKoKcDowmABaARQU4DRhcEC0AigpgCjC4MFoBHIqqY4HC6lq+1QB4BRBTXF4arkCs+9iMPhxrjr2vzq/vcPoKY43Nh1FwFgzHOyv9Tz0fHqqemY4ujHvbWufwAAGCegpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKaurR0epn32nt8GumfYrjOFPae5Qa62iVDusB1ePKCQAAGH+gphc95RNE1PvY0z7FmTJliiKnnsYGamoM6CtppKEdrbomJ7ZL+5RyVXgEQQAAoDKgphcv9rSrmukfdVrbFYXqaZ8ypb291VdTc0BRYkfeLqgpAEAdgZpetOifL04drfK27pT2nuiQKaAU4KJ2Tt//7Wh1prS3+2emtPdI3oSExAM97VPCGDpaHae1VQsCAADVAzW9ePFiqFaKGeq0doiKKRwJFUsPaFXTjlb1eqsXStgX7mmfIsilsHEchouO+0ejk9imAAA1AzUV6sK7JuorUihOgcSFuqXppRTQpqbq8TB+RSw1NRUNWsn49E4YhBYAAKoMaqoQ2oyynglXSy16GQa0yKlBTXVxtqip3dhFTQEAxgKoqXQ3rqBdyl6rsJ0rejEE9ExVQQD9e3q1nV6DOJvUVL4629EqiWy0N4yaAgDUDtT04sVwq1b7vWkoTtIXQf5MAQM/hhP2u5BUNZV/iiMkE11rFT2G1jR3IQEA1ALUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALLS0Gp6sr9U6/oHAIC652R/qXHVtK/v1McnT+NwOBwOl9319Z0agRKNBzUFAACoLagpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygpoCAABkBTUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArJStphcBAABABtsUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAAAICuoKQAAQFZQUwAAgKygpgAAAFlBTQEAALKCmgIAAGQFNQUAAMgKagoAAJAV1BQAACArqCkAAEBWUFMAAICsoKYAAABZQU0BAACygprCeKO9vX3OnDltjcScOXPa29uNtbFqy3s3Ltn4lYV/aBx345KNq7a8l6ar/Llrywt/+vNzf3ypcdwLf/rzn7u2MI6MxIyjNKCmMK7I33//0qVLT5w4caGROHHixNKlS/P336/Uxu82vfv137x69Z4z3/zgfOO4q/ec+fpvXv3dpnfju8ofXnr5le07zwwO1rr1qsqZwcFXtu/8w0svM450bOMoJagpjCtmz57d29t77ty5wUbi3Llzvb29s2fPVmrjhsWdV+8985NDn9c6g1XlJ4c+v3rvmRsWd8Z3ledf7BgcHDp//vxwI3H+/PnBwaHnX+xgHOnYxlFKUFMYV7S1tV24cKHWo7IGXLhwoa2tTamNryz8wzffP1/rrNWAb75//isL/xDfVZ7740sXLlyotbrVgAsXLjz3x5cYR0aM4yglqCmMK9ra2s6fP3+m8Th//rxNTWudtRqAmsaQUk0ZR+WCmsK4gllABDWNATVlHOmgpgA+3ixQ61zUgBg1rUV2agxqGkN6Na1cg9QNqCmAjzcLnG48bGp6zf5ztc5aDbhm/znU1EZ6Na11M9YA1BTAp9KzwDOu4z5TkZiK9zU331esSFQmylLTZ1wngZEVepTLmJ5aqOkne154Yc8nKTwe2Lxq84HhA5tXrdp8oHLJp6eGaqp1PFN3ecb1+98zbnC6eF+z3yOjT6MDagrg09bWdu7cuYGKsWGmM3NDRcLv/UVz8y/2mvzs/UWzM3OD9z/EC7VhpmMJpHLu3DmbmqbP48gov4yyp6CQ6QubSG1sU08mE/lkzwuet/BDcHjV5gPe/4gX9uzZvCqdSqclpZpWdByFRF1k7y+aZ27YMFMW16D9/b6w9xfNMzcEfgfiOlilMI6jlKCmMK7wZoH+irF+hjNjfUXCv7GoWZo3Fr3RHxz3P0ef+t9Y1Oz7EA7GYlPTq/d/nj6PI6PMMjozZsxwxDKtD7+mLWwiV+//vBpqemDzqlhC0UzlydfMQFUjUlu96UivphVoCRWpK8xY7/9VTsn+Q1+C31EDNQXwGdNqalIKIQHJRyQx6bIwVtQ0uYzOjPXRYsE/HX7JmhefqqlpjMpZTFD9uxdTqKC6mqa2etNRazWNllsz1vf3r58RNL7/ab281gpCjbqOeqCmAD7eLNCXht2Lmh1nxvp4T+tnqBd6Fu1OFbseUmPG+r6+3YuawxjFz33rZwRJSYetWNV03+cpctrc3Jy+ZBnLGBwLKz8qqr2wuxeVlcGr91VFTYfjDM9Q/jT1DEU4FEnR+jSpaUWt0/RqWm5/SEHUwLsXNfs9wesH4Yewl+yWtzrEPjVqoKYAPm1tbZ9++umhOLbMn+Q4juNMmr8l1t+hQ4cOHVo53Zm+0hZDDHrkxpiko1vmTwqCbZk/KYrCHFLh008/Narpld1nU5Rx0vwtW+ZPErM9emX0v2yZP8nxPnrpx0YhZym5Nq7sPjt27umVBPeFPZ8EaipIpGh7at5VD1lJqaZJ42hkSP1q+krvyPSV4T/Fr9bHDN4qinEcpQQ1hXFFwiwQTeEpSaVkqWIQYwo/S/OFONGIs4hpUtHIpqZ+zhRFTU15ZQy8BI0hqWmKwqZoxOqoacIF0UALIyX09fOTPS9sPiCaoJLpabJNK2qc1lpN/fYNdXHL/EnTV0oq6XuyrOhQU4Bq4M0CPXFsmtfkdfBpK2L99fT09PSsmJbKW1xSfvggphXTxKTF+DfNa2qat2mEebCp6X95ezgpqBy/LRc2yi6jkJgXdto0J0oxprBlNNx/eXu4qrapuGUbs0sbfPTuXhI8qrZp3HXVzKRX0/S9IDVe91oxLdTGaSu8/iJ2Or8TmLripnlNGQZkMqgpgI83C3yYhq55TY7TsiLe04qWRC9x8Uthuzw1kI6taHGa5nWF58PPcfEYiVHTpKBVLqN00vdvPS/6M1WOhSqrqWR9hqp3YLO/rxsKYfBR+K2pt+t7QPgVjOW6aS3UNH1HSEdXsB5qWfHhh13zmvyWXtEi95mgQ4beZUbaWVOBmgL4VHoWyKA0QhQ+JjkQErCoabos1EZNhShSl1FJrGtekxCqAnn58MOqqukne16w3HEUPqXBf1aDb48e2Lxq1QubN4c/Lg30dazd0zsKairhqWm4TIp6RjgOTAMi0uDRATUF8Glrazt79uwHGXisxUmg5bE08XTObUrlv3NuU9PczpGeDjl79qxRTf/+7aGkoI+1pCySKXOVKGPZ/hL5+7eHqqCmBzYL9wmJx4TbepUf0QhWqX/VNfqVqfXCaG1+b5pxHCXidx6h53TObXJaHvP++t/D7hB1tcr0EBvGcZQS1BTGFd4ssL+uePmuJufG5UbhXn6j03TXy2kisarpW0Ojnf80xJRxBIVN5O/fqoaaVhbPJtVvZTpQo2ch1d04qgioKYAPs4DI2FHTKlOPalo1UNMYUFMAn7a2tuHh4fcaj+HhYaOafr04WOus1YCvFwdRUxsp1XSYcVQmqCmMK7xZ4J3GwzgLeGpa66zVANQ0hvRqWutmrAHDqCmAB7OACGoaA2rKONJMm0OEAAAB10lEQVQZRk0BPNra2oaGhrobj6GhIaOafu3NM7XOWg342ptnUFMbKdWUcVQuqCmMK2bPnn306NH+/v63Gon+/v6jR4/Onj1bqY0bFnd+bfvJm9/srXUGq8rNb/Z+bfvJGxZ3xneV51/sGBwcOn/+fK3VraqcP39+cHDo+Rc7GEc6tnGUEtQUxhX333//kiVLjh07NtRIHDt2bMmSJffff79SG7/b9O5Xlr7y1R0nv/pmqYHcjpNfWfrK7za9G99V/tDR+cr2nUNDwxcaiaGh4Ve27/xDR8JSg3E0AlBTGG/cd999s2fPbmskZs+efd999xlr4/Gud65/8OWvLPxD47jrH3z58a530nSV37/08vMvdjz3x5caxz3/YsfvX3qZcWQkZhylATUFAADICmoKAACQFdQUAAAgK6gpAABAVlBTAACArKCmAAAAWUFNAQAAsoKaAgAAZAU1BQAAyApqCgAAkBXUFAD+//bqmAZAGACAIHLqf0NFg4dOqOjISODXu7yHByo3BYDKTQGgclMAqNwUACo3BYDKTQGgclMAqNwUACo3BYDKTQGgernped2SJOlrYy43lSQp5aaSJNXcVJKkmptKklRzU0mSas9Nx1ySJOlfBwDQbQXO0PYYahxJAAAAAElFTkSuQmCC" alt="" width="581" height="581" />
5. 按上面的配置,将App.Config文件先单独存储,后面我们会把连接字符串放到WEB项目中,再把这个文件删掉的
选择要生成Model的表,点击“完成”
aaarticlea/png;base64,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" alt="" />
6. VS会自动引入EntityFramework和另的一些dll,生成SMSContex.cs还有对应的Grade, Score, Student, Subject类,也就是咱们需要的Model,如下图所示
7. 删除没用的Class1.cs,再创建一个单元测试项目来验证一下(记得要把app.config复制一份放到测试项目里),发现能取出内容,OK。
相关的数据库SQL
USE [SMS]
GO
/****** Object: Table [dbo].[Grade] Script Date: 2015/3/27 15:28:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Grade](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Grade] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO
/****** Object: Table [dbo].[Score] Script Date: 2015/3/27 15:28:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Score](
[StudentID] [int] NOT NULL,
[SubjectID] [int] NOT NULL,
[Score] [float] NOT NULL,
CONSTRAINT [PK_Score] PRIMARY KEY CLUSTERED
(
[StudentID] ASC,
[SubjectID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO
/****** Object: Table [dbo].[Student] Script Date: 2015/3/27 15:28:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Student](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Age] [int] NULL,
[Height] [int] NULL,
[Weight] [float] NULL,
[Gender] [char](1) NULL,
[GradeID] [int] NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[Subject] Script Date: 2015/3/27 15:28:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Subject](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Comment] [nvarchar](250) NULL,
CONSTRAINT [PK_Subject] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO
SET IDENTITY_INSERT [dbo].[Grade] ON GO
INSERT [dbo].[Grade] ([ID], [Name]) VALUES (1, N'一年级一班')
GO
INSERT [dbo].[Grade] ([ID], [Name]) VALUES (2, N'一年级二班')
GO
INSERT [dbo].[Grade] ([ID], [Name]) VALUES (3, N'一年级三班')
GO
SET IDENTITY_INSERT [dbo].[Grade] OFF
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (1, 1, 80.5)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (1, 2, 90)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (2, 2, 100)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (2, 3, 99.5)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (3, 3, 99)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (3, 4, 98)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (4, 1, 89)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (4, 2, 90)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (4, 3, 91)
GO
INSERT [dbo].[Score] ([StudentID], [SubjectID], [Score]) VALUES (4, 4, 92)
GO
SET IDENTITY_INSERT [dbo].[Student] ON GO
INSERT [dbo].[Student] ([ID], [Name], [Age], [Height], [Weight], [Gender], [GradeID]) VALUES (1, N'小明', 6, 125, 20, N'M', 1)
GO
INSERT [dbo].[Student] ([ID], [Name], [Age], [Height], [Weight], [Gender], [GradeID]) VALUES (2, N'小花', 6, 120, 19.5, N'F', 1)
GO
INSERT [dbo].[Student] ([ID], [Name], [Age], [Height], [Weight], [Gender], [GradeID]) VALUES (3, N'可心儿', 7, 120, 18, N'M', 2)
GO
INSERT [dbo].[Student] ([ID], [Name], [Age], [Height], [Weight], [Gender], [GradeID]) VALUES (4, N'小灰灰', 7, 130, 19.8, N'M', 3)
GO
SET IDENTITY_INSERT [dbo].[Student] OFF
GO
SET IDENTITY_INSERT [dbo].[Subject] ON GO
INSERT [dbo].[Subject] ([ID], [Name], [Comment]) VALUES (1, N'数学', NULL)
GO
INSERT [dbo].[Subject] ([ID], [Name], [Comment]) VALUES (2, N'语文', NULL)
GO
INSERT [dbo].[Subject] ([ID], [Name], [Comment]) VALUES (3, N'英语', NULL)
GO
INSERT [dbo].[Subject] ([ID], [Name], [Comment]) VALUES (4, N'政治', NULL)
GO
SET IDENTITY_INSERT [dbo].[Subject] OFF
GO
ALTER TABLE [dbo].[Score] ADD CONSTRAINT [DF_Score_Score] DEFAULT ((0)) FOR [Score]
GO
ALTER TABLE [dbo].[Score] WITH CHECK ADD CONSTRAINT [FK_Score_Student] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Student] ([ID])
GO
ALTER TABLE [dbo].[Score] CHECK CONSTRAINT [FK_Score_Student]
GO
ALTER TABLE [dbo].[Score] WITH CHECK ADD CONSTRAINT [FK_Score_Subject] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Subject] ([ID])
GO
ALTER TABLE [dbo].[Score] CHECK CONSTRAINT [FK_Score_Subject]
GO
ALTER TABLE [dbo].[Student] WITH CHECK ADD CONSTRAINT [FK_Student_Grade] FOREIGN KEY([GradeID])
REFERENCES [dbo].[Grade] ([ID])
GO
ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_Student_Grade]
GO
Asp.net MVC + EF + Spring.Net 项目实践(二)的更多相关文章
- Asp.net MVC + EF + Spring.Net 项目实践3
Asp.net MVC + EF + Spring.Net 项目实践 这一篇要整合Model层和Repository层,提供一个统一的操作entity的接口层,代码下载地址(博客园上传不了10M以上的 ...
- Asp.net MVC + EF + Spring.Net 项目实践(目录)
用4篇博客来搭一个MVC的框架,可能对初学者会有一些帮助,大家共勉吧.我觉得对于中小型项目,这个框架可能还是有一定的用处的,希望能够帮助到一些人. Asp.net MVC + EF + Spring. ...
- Asp.net MVC + EF + Spring.Net 项目实践(一)
准备用几篇文章来做一个MVC的例子,为了给新同事做参考,也为自己做个知识储备. 首先,用VS2013创建一个空白解决方案StudentManageSystem,然后添加一个MVC应用程序(可参考ASP ...
- Asp.net MVC + EF + Spring.Net 项目实践(四)
这篇写一写如何使用Spring.net来解耦各个项目 1. 在接口层添加IStudentBLL文件,里面有GetStudent和GetAllStudents两个方法:然后在StudentBLL类里实现 ...
- Asp.net MVC + EF + Spring.Net 项目实践(三)
这一篇要整合Model层和Repository层,提供一个统一的操作entity的接口层,代码下载地址(博客园上传不了10M以上的文件,所以用了百度):http://pan.baidu.com/s/1 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(22)-为用户设置角色
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...
随机推荐
- 浅谈web网站架构演变过程(转)
前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...
- tcpdump参数及使用介绍(转)
原文地址:http://dogdogcom.blog.51cto.com/2402458/490398 tcpdump -a 将网络地址和广播地址转变成名字: -d 将匹配信息包的代码以人们可以理解的 ...
- SoC嵌入式软件架构设计II:没有MMU的CPU虚拟内存管理的设计和实现方法
大多数的程序代码是必要的时,它可以被加载到内存中运行.手术后,可直接丢弃或覆盖其它代码. 我们PC然在同一时间大量的应用,地址空间差点儿能够整个线性地址空间(除了部分留给操作系统或者预留它用).能够觉 ...
- Android尽量避免使用开发jpg图片
因为jpgeasy失真,因此,Android尽量避免使用开发.jpg图片,相反,使用.png图片,它使用LZ77衍生无损数据压缩算法. 事实上在这一点上,Google他已经暗示我们: 发现了没有,在r ...
- Windows在生产体系Android开关机动画
在Windows根据系统.办Android开关机动画,几个需要注意的问题: 1.压缩的选择 2.压缩的格式: 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器
原文:第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来配置资源调控器.但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展. ...
- 恢复SQLServer实例连接
原文:恢复SQLServer实例连接 译自: http://www.mssqltips.com/sqlservertip/2682/recover-access-to-a-sql-server-ins ...
- 备注ocp_ORACLE专题网络
声明:原创作品,出自 "深蓝的blog" 博客.欢迎转载.转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanl ...
- 第22题 Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative. For example: Given ...
- mapxtreme演示V1.3
mapxtreme演示V1.3 mapxtreme地图相关基本功能的演示其中包括 鹰眼地图,图层控制,发达,缩小,平移地图,地图模糊查询,中点工具,距离测量工具,面积测量工具,图元信息查看工具,各 ...