首页 技术 正文
技术 2022年11月20日
0 收藏 527 点赞 2,806 浏览 170475 个字

  为什么汇编程序的入口是_start,而C程序的入口是main函数呢?以下就来解释这个问题

  在《x86汇编程序基础(AT&T语法)》一文中我们汇编和链接的步骤是:

$ as hello.s -o hello.o
$ ld hello.o -o hello

  我们用gcc main.c -o main开编译一个c程序,其实际分为三个步骤:编译、汇编、链接

$ gcc -S main.c   生成汇编代码
$ gcc -c main.s 生成目标文件
$ gcc main.o    生成可执行文件

  我们先前在《x86汇编程序基础(AT&T语法)》中由第一个汇编程序生成的目标文件hello.o我们使用ld来链接的,那能不能用gcc呢?如下:

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAokAAACeCAIAAADR+Qd8AAAgAElEQVR4nO2d+1dT17r3+RfOfZ+EYIBAAkVBoxvRky05KNfNAY0EAS90b29HglDUyja0CFWLxTG0cRdHffe2w0s57xBGhw5gWIpD31rr8XLKxfQFq+UiithKpJWLAdM93x/m29XVrDln1goJCfB8hsORNdfkWc961lzzmzmz1nwCAgIC/u7v/u76tavwD/7BP/gH/+Af/POHfwFYmxEAAAAAAD7CNvSs9X/u/K8PTxw6UHnoQGVAQEDA3//93/vaKwAAAACYu1itHX+2HO36v//35cuXk5OTAQEBAf/wD//ga68AAAAAYO5y5PC7X/yfqw6HY3Ji4uX4+C/aLPsZn7jlkaOrVCps5MGDB8K9x48fNxqNU7HvbxgMhhMnTgjL2XFwghF5rtBXrcIJo9F4/Phx8fVpcZAUHz8E4gAAs493D74zPj4+OTk5Ybf/f23+x3/8RzRd/W97e7vwQPySKbpht9tpfc3ly5dramqmYtzfoGkzYsaByKzUZkSPg9T4+BUQBwCYfRw6UPnTTz/9Spv/6Z/+CfmBNnOjt6l4Mqf6GtBml8xKTYI4AMDsg6DN/yxCm00mk9lsrqio0Gg0KpXq9OnTCKHx8fGSkhK1Wh0eHr5z586xsTFcmVje29sr+zW5ubmIJ8xO/zPs0/xBlL6msbERH9FpTptm32g0lpWVZWVlqdXqpKSkJ0+esGPa0NCQmJioVCojIiJKSkpGR0dx+cuXL4uKitRq9bx58xITE61WK7vc4XBUVVXFxMQolcqcnJyBgQGEUEtLy7JlyxISEhYtWnTq1CmNRpORkfHq1SuEkMFgKCsrS0tLUyqVRqPxu+++41wSxqG7u1sul/f39+PNV69eRUVFNTU14U3iFyYn2EFACA0PD69fv16pVKamplZWVqalpXG72tra1qxZExwcHBUVVV5e7rKciNFoPHToUH5+fnBwMP+6EONGiwOjnNHeiEit7yk7/hYHAACmDkmb//mfkQhtnj9//tGjR0dHRwcHB+/cuYMQ2rdvn06n6+josFqtK1as2Lt3L65MK0ekcTO/33fSZoYdoj+IOQ4Q/t5Ms280GqOjo3t6eiYnJ3Nzc9988012TGtraxsbG/v7+7u6ujIzM7n6J06ciIuLs1qtg4ODTU1NHR0d7PKDBw+uXLmyra2tp6dn586dWNtaWlpCQkK6urrWrl0bHx/f3d29cOHCmzdvIoQMBkNoaOinn37a3d2dlZWVl5fHuUSMQ2pqKjfeunr1qkajmZiY4EfeCanj5u3bt6elpX3zzTdXrlxRq9WcNvf394eFhe3fv7+3t7ezs/PAgQPschpGoxF/n+js7ExMTOTiTIwbIw60ckZ7IyK1vqfs+FscAACYOnxtHhsdDQgICPiXf/kXJEKbk5KS+CV/+9vf1Gr1J598gjcvXrwYHh7+008/0crxpnhtZtsR+oMRr80M+0aj0Ww24/KzZ88SD0TjwoULv/vd7/Dn/fv347kBJ4jlExMToaGht27dwpsjIyNyubyvr6+lpUWv1yOEDh06VFRUhBDKzs7GbhsMBpPJhOu3trbK5fLnz58z4vCXv/xl5cqV+PMbb7yxe/dubtfUtXlsbCwoKOjLL7/Em7t27eK04d13301JSRH+Ca2chtFo3LVrF/780Ucf4etCixveFK9J7PYmRGp9D9rxqzgAAOAR+Nr8en5+QEBAwG/EabPT8HFoaEgmk3V2duLNe/fuyWSy7777jlaON8VrM9uO0B+MeG1m2DcajRaLBZfX19dzWkujvb0dD2HxuWi1Wlze1tamUqlSUlIqKipu3LjB1SeWYwecuHPnTktLS3JyMkLoyJEj+JQ3bNhQW1uLEDIYDO+//z7+8xcvXshksra2NkYcnj17FhQU9ODBg8nJSY1Gw3dp6trc1dUlk8mePXuGNz/88ENOmzdu3PjWW28J/4RWTsNoNHLny10XWtxwNfGaxG5vQqTWR7/+mWAqdvwqDgAAeAS+Nv/v//qvgICAgN/85jdIhDa//fbb/BKfa7OTPxhPaTM391tfX6/T6RiRcTgcMTEx5eXlw8PDCKHGxsZFixZxe202W11dXUFBgUKhqKurY5RjB4aGhpzsE7X5448/RiRt5qbHaXFYv359dXV1S0uLVqvlD4aEV1/Y0TOCgFxpM/Fi0cppEK8LLW4Yv9JmT9nxqzgAAOARCL83/+u//iuSrs3Cua+wsDDinDYux5tWq1UmkzmpAl+SOTfYdmja7HA45HI593QVH5dz2px9Sdr86NEjfud17NgxvjZzlJaWbt26lVE+MTEREhJy6dIlpwpsbS4sLMTVWltbAwMDf/jhB3YcPvnkE51OV1hYWFlZyS8najNtFxE8p339+nW8uXv3bm/MaQuvCy1uGFochOXs9iZEan0P2vGrOAAA4BEI2iyTuaPNCKHS0lKdTnf37l2r1RofH79nzx52OULIZrMFBgY2NDSMj4/jh42JwuzSDk2bEUIJCQlms/np06ecUGGEz4LR7EvSZrvdrlar6+vrEUL4QS1Om8+dO9fU1PTkyROr1arX66uqqtjllZWVWq32ypUrAwMDV69e3bFjB3KlzSqV6rPPPuvp6cnKysrPz3cZh/Hx8bCwsKCgIG6EjZm6NqOfnwX79ttvr127FhkZKXwWrK+v7969e++99x67nAbtuhDjxo4DsZzWHmgRYLRPSUi146s4AADgPYja7PqtYqIWjo2NFRcXh4eHh4WFFRYWcu8O0coxFoslMjJS9vM7VE6H5n9m2GFo8+3bt5cuXSrjvTGl0+mcpmfxayc0+5K0GSHU3NwcGxu7ePHizMxMi8XCafP58+f1en1QUJBGoykuLubeRaGVOxyO6upqrVarUChiY2PxO0VsbS4rK0tNTVUqlevWrfv+++/ZccAUFhbGxcU5nYJHtPn58+f4HaqUlJR33nknIyOD28W9KxUREcH/jZlWToR2XYhx46DFQVhOaw+0CLDbuXik2vFVHAAA8B4EbZbL5WhWrNkJiMFoNPJHqF6K/OHDh7ds2eJZmwAAALMVnH6K+xcQEBAQGCj3tVfAdPDjjz9eunQpKCiIe7XGs7S2tn7++edjY2P37t1bsmTJxYsXvXEUAACA2cfpv55s/Z9b1o62TmtHp7UDa3Ogr70CpoPk5GS1Wv3Xv/7VS/avXbsWFxcXFBQUHR197NgxLx0FAABg9kHQZoVC4WuvAAAAAGDuQtDmoKAgX3sFAAAAAHMX0GYAAAAA8C8I2jxv3jy8D3K2i6Grq0uv1wcGBr722mvTeVzh+9lzCniMHwCAWQxBm5VKJd43W/PCvv766/yXmzds2DAVa9u2bSsoKBgaGnrx4oWnPOQg5rfGXL58uaamxuNHxHhK+Rj+T90OaDMAALMVgjYHz3Ztfvjw4ddff52bm5udnf31118/fPhwKtbS09O5dNEex1Pa5gZ+rs0gzAAAzGJI2hwcjPf5W852Wn33uunt27c7rYZhNBrLysqysrLUajX/fGkYjUb++Jub06at08Swz62HFRUVhddv6u3tdVq8jFs3rbGxEZc4zWnT4iP1vDhEBvbly5dFRUVqtXrevHmJiYl4NWaG/w0NDYmJiUqlMiIioqSkxGl9N7PZXFFRodFoVCrV6dOnGXam6DYAAIDfQtDmkJAQvM/fcrbT6ntQm6Ojo3t6eiYnJ3Nzc4lJJ4WkpaWdOXPGyQ5Nm4n2uXWke3t7Ozs7Dxw4wJlijDuFvzfT4uPeeYnnxIkTcXFxVqt1cHCwqamJvzQ30f/a2trGxsb+/v6urq7MzEy+PyaTaf78+UePHh0dHR0cHORyGkoaf4M2AwAw0yFocyhPm/0nZ7vHc7wTtdlsNuPPZ8+exefrEknaTLTPyL8kXpsZ8XHvvMSzf/9+2ljWpaZeuHCBnw/bZDIR3fPh3D4AAMD0Q9Lm0FC8z69ytns8jyxRmy0Wi9P5ukSSNhPtb9y4kZbXQbw2s/NPu3Fe4mlra1OpVCkpKRUVFTdu3HDpf3t7u8FgCA0NxY1Hq9Vyu0wmE3FYD9oMAMCcgqDNKpUK7/OrnO3To82S8k1hhNqcnZ3N2amrq+NrM9H+xo0baUm0PKXNbpyXJGw2W11dXUFBgUKhqKurY/jvcDhiYmLKy8uHh4cRQo2Njfz81rR8YqDNAADMKQjaHMbUZj/MXe/B35s9os2bNm06cuQI/vzBBx+41GbGnLbVapXJZMSwuJzT5uIzDdrMUVpaunXrVob/jx494n+pOnbsmBhtZsRBCKg4AAAzHZI2h4XhfTMld73Uvpj2DpWntLm6ujolJcVut9tstvj4eJfazD0L1tfXd+/ePX7GRpvNFhgY2NDQMD4+/urVK/5RhM+C0eLjbW0+d+5cU1PTkydPrFarXq+vqqpi+G+329VqdX19PUKou7t74cKFYrSZEQchoM0AAMx0CNocHh6O983W3PW0tUc8pc3Dw8OrV6+OiIjIzMw8fPiwS21GvHeoIiIinH57tlgskZGR/HeHdDqd0+/9+LUoWny8rc3nz5/X6/VBQUEajaa4uNjpXTih/83NzbGxsYsXL87MzLRYLGK0mWgHAABgtkLQZrU63NdeAQAAAMDchajNal97Bfgdwofzfe0RAADArIWgzRqNxtdeAQAAAMDchaDNERGgzQAAAADgM4jaHOFrrwAAAABg7kLQ5sjISF97BQAAAABzF4I2v/aaszbPkQd/fHWaKpUKP10lKYem8P1mz9pnc+rUKX6OEwZdXV16vT4wMJDL04UR7//01PcUtPOdocBzfwDgEwjaHPXrPkXSnem9fL1spPYgtPq+6oZoa50y4nD58uWampop2ncb8dq8bdu2goKCoaGhFy9e8Msl+U+r76n4eBDa+RLxlPJ59b4DbQaA6YekzVFR3G6pt+U0aDOj7xB5aHZ9n/REbmizR+y7jXhtTk9PP336tKeO64QfrrMt9Xz9XJv9LbwAMEcgaPP8+fO53eLvzN7eXqf3X7n1mxwOR1VVVUxMjFKpzMnJGRgYQAiNjY3FxcVxvdiZM2eWLFny4sULhh2iS7RNmn2XXc8Uxw0tLS3Lli1LSEhYtGjRqVOnNBpNRkYGXmaSsT6XUDsZcWhsbMQlTnO2GRkZb7zxRlJS0muvvZabm8vPR0LUZuJ1YWCz2davX69UKpOTk8vLyzltptkxGo18/7k5Xpr/RqOxrKwsKytLrVYnJSXhxc5o9d2Iz/j4eElJiVqtDg8P37lzJ7d+Ge24NBh2iOfrEpEN7OXLl0VFRWq1et68eYmJiXh1ekYcGhoaEhMTlUplRERESUkJfx09k8lkNpsrKio0Go1KpTp9+rTL+w4AgOmEoM0LftZmN74yE7+/Hzx4cOXKlW1tbT09PTt37uT69Js3b6rV6ocPHz5+/FitVn/xxRdsO0SvGJtE+y61WWQdGi0tLSEhIV1dXWvXro2Pj8dLRt+8eRNJ1GaM+DxUCKGMjIyIiIi+vr5Xr14VFBRs3ryZbZ92XWhs2bIlPT39/v37zc3NKpWKq8+2I1zTlOa/0WiMjo7u6emZnJzMzc11ShZJ/P1YUnz27dun0+k6OjqsVuuKFSv27t0r5rhCaHbY5zt1Tpw4ERcXZ7VaBwcHm5qaOjo6uF3EONTW1jY2Nvb393d1dWVmZvLPy2QyzZ8//+jRo6Ojo4ODg1yOVz+chwCAuQlJmxcswPs8os0TExOhoaG3bt3CmyMjI3K5vK+vD29WVFQYDIacnByz2cy2gwRLUxGddNoU2ndDmyXR0tKi1+sRQocOHSoqKkIIZWdn4/RQ06DNnE7cvXs3KCiIGyoJ7bOvi5CRkRGFQnH9+nW8yWmwSzuStJm7TGfPnk1KSmLXR1LiI8zTFR4ezuXpYhzXCYYd9vlOnf3799PGsi419cKFC/y83SaTiXiaoM0A4CcQtDk6Ohrv84g240TCTnDf0+12+/Lly2NjY8fHx9l2OMSPm4n2p0Gbk5OTEUJHjhzBI5UNGzbU1taiadHmEydO4M8//vijTCbr6uqi2WdfFyFdXV0yXm7HmpoarM0u7UjSZovFwsWHryXE+shz+a0Zx3XCZR5x72lzW1ubSqVKSUmpqKi4ceMGfxcxDu3t7QaDITQ0FF8UrVbL7TKZTMTpAdBmAPATCNoc4wVt5v/2yae3txfnTbp//z7bDockbRba94k2f/zxxwih7OxsTpvr6uq8oc1//vOf8efnz5+L0WbadRGCtdlms+HNkydP8rWZYUeSNjPyZXlVm8Xn6fKhNiOEbDZbXV1dQUGBQqGoq6vjyoVxcDgcMTEx5eXlw8PDCKHGxkYx+b5AmwHATyBpc0wMt1vqjWq1WmUyGX+Kb2JiIiQk5NKlS8LKDocjPT29srKyqqoqOTmZn5dXaIfmEmOTaN+lNospYcDQ5k2bNh05cgRX++CDD/ga4HA45HI5frqHDyMORG02mUz483//938rFIqRkRGafcZ1ITI6OqpQKNrb2/Gm2Wzm5rTZdryqzeLjI5yLDgsL4+a0xWszww77fD1LaWnp1q1buU1hHB49esT/0nDs2DEx2syIJwAA0wlBmxcuXMjtljqstNlsgYGBDQ0N4+PjnNZWVlZqtdorV64MDAxcvXp1x44duNxiseh0OrvdPjk5qdfrOd2i2aFB++2ZZp9Wn1boKW2urq5OSUmx2+02my0+Pt5JAxISEsxm89OnT3/44QeukBEHojaHhoZ++umn33777Zo1a/7whz+w7dOuC43NmzebTCaHw/H48eOoqCjumS+2Ha9qs6T4lJaW6nS6u3fvWq3W+Pj4PXv2iDmuEJod9vlOnXPnzjU1NT158sRqter1+qqqKm6XMA52u12tVtfX1yOE8AOJYrRZ0n0HAID3IGjzIp42I+laZbFYIiMjZb9+h6q6ulqr1SoUitjY2PLycoRQZ2dnSEjIV199heu0t7cHBwdzwzKiHQb4FzV+Cdu+sL6YUxMDQ5uHh4dXr14dERGRmZl5+PBhJw24ffv20qVLZYI3f4Rx0Ol0Tr/v4td+MjIy3n777eTkZPwu07Nnz9j2ideFwdDQUF5e3oIFC1atWlVcXMx/h4phR6hVNP9pGkmrLzU+Y2NjxcXF+DeOwsJC7kE5qdpMs0M7X09x/vx5vV4fFBSk0WiKi4u5d7cwwjg0NzfHxsYuXrw4MzPTYrGI0WaiHQAAph+SNvPuYcwc+Qlqpp9mRkbGyZMnfe0FAAAAMFUI2sx/nhOYQYA2zwJkAnztEQAAPoCgzYsXgzbPSECbAQAAZgdEbV7sa68AAAAAYO5C0OYlS5b42isAAAAAmLsQtPm3vwVtBgAAAACfQdDm2N/+VljP28+k8O2rVCr8FAwxp6HwvVWDwcCtVSnGvjcQ2ie+j+u38HM+8t8p8gZSr6838LdnrDzlz2y14xNmtPPi8expdnV16fX6wMBApzxsvu0Pxee0nR7/xfhD0ubYWGG9adY2Rr7hy5cv19TU8Ev8U5uFfiLeU7jEQqGRaXtYd4raLHWtR0nX1xt45O12MfVFPnftb1roJ3Yk5XH3LJLsT0PeeiJSOwdafQ8Gc9u2bQUFBUNDQy9evOCXe+S+djvO4rXZq/5L8oegzUuXOmvz9N8GjL5biEtt9pPbmF+N+yzUaZefvYH/aPM0QOuevNEtMq4vu9ANZp8dWrvy9hdWqcanQZuJX9xpu9gWvNoI09PTT58+7RFTQqZBm73qvyR/CNoct3SpUyWncNDWUSLmfscIc7kz7CNK393Y2IjvSeGcdllZWVpamlKpNBqN/MQDRPvDw8Pr169XKpWpqamVlZX8GLW1ta1ZsyY4ODgqKoq/vhWtnGif6KfIW07q/eYEMc4Oh6OqqiomJgavFzYwMIAr22w2HIfk5OTy8nK+Nh86dCg/Pz84ODgpKYlbhKuhoSExMVGpVEZERJSUlOD1sHp7e53GhWLWk5J0fY1GY1lZWVZWllqt5vtDbIdjY2NxcXFcAztz5sySJUucvgLTujnxMZdan3Fo9+yIN+5Xdmj3kbDdMtqV1OCPj4+XlJSo1erw8PCdO3dy66kxLIg3zvCTeN/R2qfL+4j9JY/bpNl3+R1RTAkbo9HI95+bE6bd14jSXxF1xI1+hta/0fpDqf7T+iWp/S0NkjbHxfFrCK8QTZsZud9pudyJ9hFzXEX8vRmvI93d3Z2VlZWXl8f2f/v27Wlpad98882VK1fUajUXo/7+/rCwsP379/f29nZ2dh44cIBdzvBf6KeYjoBfx21tFsb54MGDK1eubGtr6+np4fIuI4S2bNmSnp5+//795uZmlUrF1+aoqKimpqbOzs7ExEQumWBtbW1jY2N/f39XV1dmZiY/yaAHx83Edbajo6N7enomJydzc3O549La4c2bN9Vq9cOHDx8/fqxWq7/44gu+NYY6elub57gwM+4jWv/gkTntffv26XS6jo4Oq9W6YsUKLsf51C1zEP2k3XeM9umR/HtE+y61WWQdl4hfPx9RrjtDRyT1M7T+jXZdpPpP65ek9rc0CNq8bJmb2szI/U7L5U60j6RrM5d/qbW1VS6XP3/+nGZ/bGwsKCjoyy+/xJu7du3iYvTuu++mpKQIj0grZ/gv9JPrzTFCI8Qbg1afhjDOExMToaGht27dwpsjIyNyubyvr29kZEShUFy/fh2X89uQ0WjctWsX/vzRRx8RL9yFCxf4eY69rc1msxl/Pnv2LOcPYx3siooKg8GQk5PD/SEHY3wg8hSk1mcc2g0jkoz7lR3GfUTrH6auzcK8YeHh4exEWx7RZtp9hzdp7ZN4vk7jRaKTTptC+25os3tI1WbhdWfoiPh+hta/sa+LJP+J/ZIb/S0NgjYvX7aM200MBK1PZOR+p+VypwVaqja///77+DOevWlra6PZx3mIuTwQH374IRejjRs3vvXWW8Ij0soZ/gv9dJJY4menQkZ9mmYL44wTDDtx584dHAdu/r+mpoavzVw86+vrOQ1ub2/HUxTYCH9tV5d9itMuqdpssViE/jC02W63L1++PDY2dnx83Mkl4RGnR5vnuDAj5n1E6x+mrs0u8227bZntJ+2+w3tp7dNTeeuF9v1Wm4XXnaEj4rWZ1r+xr4sk/4n9khv9LQ2SNi9fzu0mBiI7O5vrE+vq6vh9Ii33Oy3vDS3QU9RmbhpEaJ+tzUQnaeUM/4V+0u4NqeVshHHGbWVoaMipJo6DzWbDmydPniQ+C8ZpnsPhiImJKS8vHx4eRgg1Njbyc6J4e9xM1GBGO+zt7cV5ou7fv883RfwCwdgrRGp9duUZoamessO4j2j9w0zXZuF9h6G1T09ps9C+32ozLVcpUUekarOwf2NfF0n+E/slN/pbGgRt/rd/+ze8jxaFTZs2cbmQP/jgA2JOPafc78RrwIiyw+GQy+X8p8k4iNpcWFiIP7e2tgYGBuIUxUT7eE6bm1vYvXu323Pa7FbiJ9o8MTEREhJy6dIlp5qjo6MKhYJLmmk2m9na/OjRI36nduzYMb42W61WmUzGnirkI+n60rSZ1g4dDkd6enplZWVVVVVycjKXh5jWHznB9lxqff4fuixxj5lihz2nTeyjGe1KpLfCOe2wsDBskGFBaiiEftLuO0Rvn0Q7NJcYm0T7LvsTT7VPj2gzh5OOiO9naP0b47pI9Z/YL7nR39IgaLPOlTZXV1enpKTY7XabzRYfH8/1iYzc71K1GSGUkJBgNpufPn2KhZaDqM0qleqzzz7r6enJysrKz89n28fPgn377bfXrl2LjIwUPgvW19d379699957j10uSZud6ovRYDeGaMQ4V1ZWarXaK1euDAwMXL16dceOHbh88+bNJpPJ4XA8fvw4KiqKrc12u12tVtfX1yOEuru7Fy5cyNdmm80WGBjY0NAwPj7O72sYiL++NG2mtUOLxaLT6ex2++TkpF6v5/RbjO4yNqdYX3zfN1vLafcRYo6faO1KfDxLS0t1Ot3du3etVmt8fPyePXvY9Wm7GPWJftLuO1r7ZJ8vwx8nx1y2f5Fn5yttZuiIpPjQ+jfadZHqP61fktrf0iBps06HmBdmeHh49erVERERmZmZhw8f5nxi5H4XXgOXF/727dtLly6V8Z5c1+l0TkMW/Ng6focqNTVVqVSuW7fu+++/Z9t//vw5fpY9JSXlnXfeycjI4HZx73hERETwfxsTljPs0/xEvFGXUyhogzCpgzNiW3c4HNXV1VqtVqFQxMbGcu+uDA0N5eXlLViwYNWqVcXFxWxtRgg1NzfHxsYuXrw4MzPTYrE45fm2WCyRkZEyce9QISnXl+YPsR12dnaGhIR89dVXuE57e3twcLCYqTBhqF1qrdT6jE0xu6QKhr/ZQfT7izF+ErYrp0bi8tBjY2PFxcV4jrewsBC/++cSqVol9JN439HaJ8MO20knr9j2aZ2JezJMRKhtjP6QeN0ZOoKkxIfWv9H6Q6n+0/olqf0tDYI249+0PXi1iPiJ/cOHD2/ZssV79gE/wd+ul6f8ma12/IHZdC4M5shpzjgI2ryC927MrKS1tfXzzz8fGxu7d+/ekiVLLl686GuPAAAAAOAXSNq8YoWvvfIu165di4uLCwoKio6OPnbsmK/dAQAAAIBfQdDm+Ph4X3sFAAAAAHMXgjbr9aDNAAAAAOAzCNr873q9r70CAAAAgLkLSZv//d/xPjdyBQIAAAAAMEUI2pyQANoMAAAAAD6DoM0rExLwPtBmAAAAAJh+SNq8ciXeZzQaDx06lJ+fHxwcLCZ3NKLkymbUBwAAAADACYI2r1r1izZHRUU1NTV1dnYmJia6zB2NKLmy2bmsAQAAAADgQ9DmxFWr8D6j0bhr1y78+aOPPmLnjsabwlzZLnNZAwAAAADAh6TNiYl4n9Fo5PIiu8wdjasJc2W7zGUNAAAAAAAfgjYnJf2izeJzR2OEeUVc5rIGAAAAAMpxtwMAABk7SURBVIAPQZuTf56UlpQ7GiPUZpe5rAEAAAAA4EPS5uRkvE9q7mhEycfJzmUNAAAAAAAfgjanpLjQZkZuaqI2s3NZAwAAAADAh6DNqSkpvvYKAAAAAOYuJG1OTfW1VwAAAAAwdyFoM6wNAgAAAAA+hKDNv/89aDMAAAAA+AyCNqf//ve+9goAAAAA5i4kbU5P97VXAAAAADB3IWjzf/wHQZtlMplX/eDbV6lUeGnPBw8eCGseP37caDTySwwGw4kTJ8Tb9wZC+0I//ZlTp05xzxl4Ozeo1OvrDbzdHqTiKX9mq53ZR1dXl16vDwwMfO2116bzuDOrX/I4uOfxtReiIGhzxn/8h7DeNGub3W6n9d2XL1+uqanhl/inNgv9RD+3DKfK/JXGxdT3BlPU5vb2dklOSrq+3oDordQ4i6kvXEzebVOecmkG2WG0q+nvYV9//XX+ddywYcNUrG3btq2goGBoaOjFixee8pCDETev3l+e6qyk9ieS7Mxkbc7IcKo0/cLG6LuFuNTm6fffZTXus1CnXX72Bv6jzdMATZglnYLI+ozryy50g9lnh9aufDL6efjw4ddff52bm5udnf31118/fPhwKtbS09Nxentv4CltcwM/1+aZIsyIqM2ZmS60mbZe2MuXL4uKitRq9bx58xITE61WK/cnJpPJbDZXVFRoNBqVSuXUKEVqc2NjI74nhXPaZWVlaWlpSqXSaDR+9913bP+Hh4fXr1+vVCpTU1MrKyv574y1tbWtWbMmODg4KiqKv34ZrZxon+inyK//NM0WCTHODoejqqoqJiZGqVTm5OQMDAzgyjabDcchOTm5vLycr82HDh3Kz88PDg5OSkp68uQJLm9oaEhMTFQqlRERESUlJaOjowih3t5ep3Fhbm6uSz8lXV+j0VhWVpaVlaVWq/n+ENvh2NhYXFwc18DOnDmzZMkSp6EJ7au0+JhLrc84tHt2xBv3Kzu0+0jYbhntSmrwx8fHS0pK1Gp1eHj4zp07x8bGaO6JYfv27Vu2bOGX0NonDaPRyD8vbk6b1q8y7AvjyYgb7f6ixUfqeXGIDCxRLxj+E/sfjKT2M0W3pw2CNq/OzOTXEHpMa0MnTpyIi4uzWq2Dg4NNTU0dHR3cn5hMpvnz5x89enR0dHRwcJCfI5IYEca4ivh7c2ho6Kefftrd3Z2VlZWXl8f2f/v27Wlpad98882VK1fUajWnSf39/WFhYfv37+/t7e3s7Dxw4AC7nOG/0E/GhSfqsdvaLIzzwYMHV65c2dbW1tPTs3PnTu58t2zZkp6efv/+/ebmZpVKxdfmqKiopqamzs7OxMRELulnbW1tY2Njf39/V1dXZmYmPxmoB8fNwutrNBqjo6N7enomJydzc3O549La4c2bN9Vq9cOHDx8/fqxWq7/44gu+NYY6elub57gwM+4jWv/gkTntffv26XS6jo4Oq9W6YsWKvXv3SrXAh6jNxPbJJi0t7cyZM052aNpMtM+IJyNuwvuLFh/3zks8DL0g+s/of9xoP0JmgjavXs2vIV6b9+/fT/tuYjKZkn5Ob+WER7TZZDLhz62trXK5/Pnz5zT7Y2NjQUFBX375Jd7ctWsXp0nvvvtuCmm9Ulo5w3+hn1xvjhEacSpk16chjPPExERoaOitW7fw5sjIiFwu7+vrGxkZUSgU169fx+V8zTYajbt27cKfP/roI+KFu3DhAs7njfG2NpvNZvz57NmzScw8aZiKigqDwZCTk8P9IQcx+LRdRKTWZxzaDSOSjPuVHcZ9ROsfpq7Nf/vb39Rq9SeffII3L168GB4e/tNPP4n5WyJEbSa2TzaStJlonxFP8drMiI975yUehl647E+c+h832o//Q9DmNWt+0WbiidHaUFtbm0qlSklJqaiouHHjBv9PTCYT8WsXLXBStfn999/Hn1+8eCGTydra2mj2u7q6ZDLZs2fP8OaHH37IadLGjRvfeust4RFp5Qz/hX46SSzxs1Mhoz5Ns4Vxxvmznbhz5w6OAzf/X1NTw9dmLp719fXcPdDe3o6nKLARrVbLHYX2zAXNT6nabLFYhP4wtNluty9fvjw2NnZ8fNzJJeERp0eb57gwI+Z9ROsfpq7NQ0NDMpmss7MTb+LbQfizl3iI2kxsn2wkaTPRPiOe4rWZER/3zks8DL0g+s/of9xoP/4PQZsNa9Zwu4knlp2dzbWhuro6fp9os9nq6uoKCgoUCkVdXR1XTsxPRbOPpqzN3PSIVG0mOkkrZ/gv9JM4LHajnI0wzvhmGxoacqqJ42Cz2fDmyZMnic+CcX2Ew+GIiYkpLy8fHh5GCDU2Ni5atIiz5u1xM7HPYrTD3t7e8PDwsLCw+/fv800xBs3EvUKk1mdXnhGa6ik7jPuI1j/MFG2mfUdkINRmWnum2WfE01Pa7MZ5SYKmF0L/2f2PG+3H/yFps8GA99HOatOmTUeOHMGfP/jgA+I1Ky0t3bp1K7dJjB0jag6HQy6X858m4yBqc2FhIf7c2toaGBj4ww8/0OzjOW1uLnf37t1uz2mzr7qfaPPExERISMilS5ecao6OjioUivb2drxpNpvZ2vzo0SN+p3bs2DH+vWG1WmUymfipQknXl9ZH0Nqhw+FIT0+vrKysqqpKTk5+9eoVLqepoxNsz6XW5/+hyxL3mCl22HPaxL6V0a5Eeiucsw0LC8MG3Ttf72kzrT3T7DPiyYibyzltLj7ToM0cTnoh9J/d/7jRfoT4m4oTtHntWhfaXF1dnZKSYrfbbTZbfHw8d83OnTvX1NT05MkTq9Wq1+urqqq4P5GqzQihhIQEs9n89OlTLLQcRG1WqVSfffZZT09PVlZWfn4+2z5+Fuzbb7+9du1aZGSk8Fmwvr6+e/fuvffee+xySdrsVF+MBrsxRCPGubKyUqvVXrlyZWBg4OrVqzt27MDlmzdvNplMDofj8ePHUVFRbG222+1qtbq+vh4h1N3dvXDhQv69YbPZAgMDGxoaxsfHOS1kI/760voIWju0WCw6nc5ut09OTur1eq6/E6O7jM0p1hevzbO1nHYfIXrfymhX4uNZWlqq0+nu3r1rtVrj4+P37NnDrk+D9g6Vp7SZ1p5p9hnxZMRNeH/R4uNtbWbohdB/dv/jRvsRMgO0OWvtWsR0dHh4ePXq1REREZmZmYcPH+au2fnz5/V6fVBQkEajKS4u5p7FR6TYuQzE7du3ly5dKuM98a/T6ZyGLPixfvwOVWpqqlKpXLdu3ffff8+2//z5c/zuUEpKyjvvvMN/n5t7JyEiIoL/W46wnGGf5ieiPNvFGIRJHZwR26jD4aiurtZqtQqFIjY2lnt3ZWhoKC8vb8GCBatWrSouLmZrM0Koubk5NjZ28eLFmZmZFouFf28ghCwWS2RkpEzcO1RIyvWl+UNsh52dnSEhIV999RWu097eHhwcLGZqSxhql1ortT5jU8wuYvkMsoPo9xetb0WkduXUSFweemxsrLi4GP/GUVhYyH/3RhK0tUc8pc20fpVhnxZPRIob7f6ixcfb2szQC6L/jP5HUvuZKZC0OSsLef9LhJ/YP3z4sNMMlWftA36Cv10vT/kzW+0AwByHoM1GY5avvfIura2tn3/++djY2L1795YsWXLx4kVfewQAADALkQnwtUczBoI2Z8/2ldCvXbsWFxcXFBQUHR197NgxX7sDAAAAAL+CoM3rsrN97RUAAAAAzF1I2rwOtBkAAAAAfAZBm3Ny1vnaKwAAAACYuxC0OTcnx6nSHP8B3x9On5/DkQ0tZ7tnc6qL90cqvso5P1sRed3hOR0A8CtI2vzr98Ak3bFezYnNwI2eRVif8TChz7st8VpIy9nu2Zzq3tNmr+ac9zaeav8eVErx193njRwAAA6CNufl/aLNUm/XadBmhnCKP7Sw73O5NIRvey7xWujVnO1u+COV6fHfS3hw/d5pbm8gzADgVxC0eT0v/7H4O5aRy9rhcFRVVcXExCiVypycnIGBAYTQ2NhYXFwc1wufOXNmyZIlL168cJkTW6Sm0uxzdaauzVK7M6m50202G16/LDk5uby8nNNCYjwRPWc7Lac67bg0+zR/GAhznrvhP62+G/bF56hnH1cIo93Scte7hN/AWlpali1blpCQsGjRolOnTmk0moyMDLwMIS3nvNTrDgCA/0DS5vXr8T43vkoTxw0HDx5cuXJlW1tbT08PP0/wzZs31Wr1w4cPHz9+rFarv/jiC7YdoleMTYZ94tm5HH+71G82UnOnb9myJT09/f79+83NzSqViosbLZ4Y4VqAGOI61cTj0uzT/GFAzHku1X9GfUn2peaoZ/tJhNhuabnrJdHS0hISEtLV1bV27dr4+Hi8pPDNmzcRM+c8knLdAQDwHwjavGGDJ7V5YmIiNDT01q1beHNkZEQul/f19eHNiooKg8GQk5PDJfGm2UGUdXTZekmzTzs74Vy3yz8Rj6Tc6SMjIwqFgsuXxWkDO55IojYLj0uzT/OHjTDnuVT/2fUl2ZeUo96ln0SE7ZaRu14SLS0ter0eIXTo0KGioiKEUHZ2NmeWwynnPBJ93QEA8CsI2rzx5zXcPaLNOCGoE3h8gxCy2+3Lly+PjY0dHx9n2+GQNBdNsy+siaSPm6UiKXc6zq/M5USrqanBWsiOJ5KozcLj0uzT/GEjzHku1X92fUn2JeWod+knEWG79VT+4JaWluTkZITQkSNH8Clv2LChtrYWMXPOI9HXHQAAv4KkzRs34n1uSBFNm4eGhoj1e3t7cf6T+/fvs+1wSNJmmn2pdhiF4pGUOx1roc1mw+UnT57kazMtnkiiNguPS7NP84eNMD+MVP/Z9SXZl5Sj3qWfRKZZmz/++GN2znkkJecmAAD+A0GbN23ayO2WqkbCXNYTExMhISGXLl0SVnY4HOnp6ZWVlVVVVcnJyfz8muJzqjM2GfYl2RFfwkZS7vTR0VGFQtHe3o7LzWYzN6dNiydmitpMs0/zh41QO6X6z64vyb6kHPUu/SQibLeM3PWSoGkzO+c8Am0GgJkJQZvzN23idksdPhJzWVdWVmq12itXrgwMDFy9enXHjh243GKx6HQ6u90+OTmp1+s53aLZoSGjzEUz7AsrT4M2S82dvnnzZpPJ5HA4Hj9+HBUVxWkhLZ6YKWozwz7NHwbEvKpS/WfUl2Rfao56tp9EiO2WlrteEjRtZuecR6DNADAzIWlzfj6/hlRNEuaydjgc1dXVWq1WoVDExsbid1Q6OztDQkK++uorXKe9vT04OJgblhHtMMC/tPFLGPadfkR0MiI05fKURSI1d/rQ0FBeXt6CBQtWrVpVXFzMf4dKGE8OobbRcqrTjkuzT/OHAVE7pfrPqC/JvtQc9Ww/aQjbLS13vSRo2ozoOeelXncAAPwHgja//nq+UyWPKNPMZY6fPgAAADDNELT5D6+/7muvAAAAAGDuQtDmP/7hD772CgAAAADmLiRt/iNoMwAAAAD4DII2b/7jH33tFQAAAADMXQjavGXzZl97BQAAAABzF5I2b3FTm1UqFX5V48GDB2LK/Q0xforJjchY0Yz2vjgbSWcBAAAAzHQI2rx16xa3zdntdqK20cql4jIHxhTtu/RTZN5iGW85FJe+sd2WelKg5QAAADMdgjZv27rVbXPTr83sTal4Q5vFV3Zjr7AyaDMAAMBMh6TN237RZmLOeUaueEnazMhdLzwuLXc9Q5vdUCminzabbf369UqlMjk5uby8XIw2831wOUFNHGRLUnd+TdBmAACAmQ5Bm7dv34b30XLOM3LFS9JmWu562nERMz8VxhvavGXLlvT09Pv37zc3N6tUKqnajFypJlGG3dBm9+oDAAAA/gZBm/9z+3a8j5ifh50rXrw2M3LXE4+LYWuzN35vHhkZUSgU169fx5v87xA0H4SjXtBmAAAAQDwkbf7P/8T7iDnn2floxWszI3c98bgY8Xmd3UPoJ85bzJ1gTU2NG783gzYDAAAA4iFo844dv2izMMmPZ7WZmLueeFwMTZs9JUg0bbbZbHjz5MmT7j0LJma4P8Xfm92rDwAAAPgbBG0u+DlPrcg5bX6ueIfDIZfLrVar018Jyxm56xlz2sLc9UjEeFQ8Qj9HR0cVCgWXvNJsNovXZuLomeEnjJsBAAAARNbmggK8j5Zznp0rPiEhwWw2P3369IcffmCX03LX046LSLnrnaRois+CEf3cvHmzyWRyOByPHz+OioqSNG4W45L4p9vEANoMAAAw0yFos8lUwO0m5pxn54q/ffv20qVLZTKZ0WhklzNy1xOPi3HKXS/80XqKERH6OTQ0lJeXt2DBglWrVhUXF4tcF0y8J8JTcO+MPBsHAAAAwFcQtLnQZPK1VzMYp1GyGK317LgZAAAAmOkQtHlnYaGvvQIAAACAuQtJm3eCNgMAAACAzyBoc9HOnb72CgAAAADmLgRtLi4q8rVXwIxnis+1AQAAzGVI2lwM2gxMFdBmAAAAtyFo8xvFxUiwLvQ045Gjq1QqbISY8/H48eNOb3nNdAwGw4kTJ4Tl7Dg4wYi8TMpyKKDNAAAAbkPQ5pI33kDT9eoOcQ1O2ZTXD+Fg5GO+fPlyTU3NVIz7GzRtRtLzZ4M2AwAA+BCSNpf4hTZzXflUPJGqSTMa0GYAAIDZAUGbd+0qQa76X5PJZDabKyoqNBqNSqU6ffo0Qmh8fLykpEStVoeHh+/cuXNsbAxXJpb39vY69drcOl/E/xn2af4giiY1NjbiIzrNadPsG43GsrKyrKwstVqdlJT05MkTdkwbGhoSExOVSmVERERJSQm3btrLly+LiorUavW8efMSExO5Vbtp5Q6Ho6qqKiYmRqlU5uTkDAwMIIRaWlqWLVuWkJCwaNGiU6dOaTSajIwMvHypwWAoKytLS0tTKpVGo5FLQEKMQ3d3t1wu7+/vx5uvXr2KiopqamrCm8QvTJJUFrQZAADAbQjavHvXLiRCm+fPn3/06NHR0dHBwUGc23Hfvn06na6jo8Nqta5YsWLv3r24Mq0ckcbN/B7cSZsZdoj+IOZ4Ufh7M82+0WiMjo7u6emZnJzMzc1988032TGtra1tbGzs7+/v6urKzMzk6p84cSIuLs5qtQ4ODjY1NXV0dLDLDx48uHLlyra2tp6eHi5vdEtLS0hISFdX19q1a+Pj47u7uxcuXHjz5k2EkMFgCA0N/fTTT7u7u7OysvLy8jiXiHFITU09fvw4/nz16lWNRjMxMcGPvBMwbgYAAJgeSNq8W5Q2JyUl8UuE+anCw8N/+uknWjneFK/NbDtCfzDitZlh32g0ms1mXH727FnigWhcuHDhd7/7Hf68f/9+PDfgBLF8YmIiNDT01q1beHNkZEQul/f19bW0tOj1eoTQoUOHioqKEELZ2dnYbYPBYPp5vdXW1la5XP78+XNGHP7yl7+sXLkSf37jjTd2797N7QJtBgAA8CEEbd6zZzcSoc1Ow0daXmd2vmfx2sy2I/QHI16bGfaNRqPFYsHl9fX1nNbSaG9vx0NYfC5arRaXt7W1qVSqlJSUioqKGzducPWJ5dgBJ+7cudPS0pKcnIwQOnLkCD7lDRs21NbWIoQMBsP777+P//zFixcymaytrY0Rh2fPngUFBT148GByclKj0fBdAm0GAADwIQRtfnPPHiRCm99++21+ic+12ckfjKe0mZv7ra+v1+l0jMg4HI6YmJjy8vLh4WGEUGNj46JFi7i9Nputrq6uoKBAoVDU1dUxyrEDQ0NDTvaJ2vzxxx8jkjZz0+O0OKxfv766urqlpUWr1fKzYguvvlSVBW0GAABwG5I2v+mONgvnhMPCwohz2rgcb1qtVplM5qQKfEnm3GDboWmzw+GQy+Xc01V8XM5pc/YlafOjR4/4XxqOHTvG12aO0tLSrVu3MsonJiZCQkIuXbrkVIGtzYU/5ylpbW0NDAzkUlDT4vDJJ5/odLrCwsLKykp+OVGbabuIgDYDAAC4DUGb9+59E0nXZoRQaWmpTqe7e/eu1WqNj4/fs2cPuxwhZLPZAgMDGxoaxsfH8cPGRGF2aYemzQihhIQEs9n89OlTTqgwwmfBaPYlabPdbler1fX19Qgh/KAWp83nzp1ramp68uSJ1WrV6/VVVVXs8srKSq1We+XKlYGBgatXr+7YsQO50maVSvXZZ5/19PRkZWXl5+e7jMP4+HhYWFhQUBA3wsaANgMAAPgQgjaX7t2L3NLmsbGx4uLi8PDwsLCwwsJC7t0hWjnGYrFERkbKfn6HyunQ/M8MOwxtvn379tKlS2W8N6Z0Op2TYODXomj2JWkzQqi5uTk2Nnbx4sWZmZkWi4XT5vPnz+v1+qCgII1GU1xczL2jRSt3OBzV1dVarVahUMTGxpaXlyNX2lxWVpaamqpUKtetW/f999+z44ApLCyMi4tzOgXQZgAAAB9C0OY/lZaiWbFmJyAGo9H43nvvcZueijxoMwAAgNuQtPlPpb72CpgOfvzxx0uXLgUFBfX19XncOGgzAACA2xC0ed+f/uRrr4DpIDk5Wa1W//Wvf/WGcdBmAAAAtyFos3nfPl97Bcx4QJsBAADchqTNZtBmAAAAAPAZBG0u+3l9SgAAAAAAph+CNr9VVuZrrwAAAABg7uKkzf8PQk7opLEjEGgAAAAASUVORK5CYII=” alt=”” />

  报了两个错误:1. _start有多处定义,一个定义是我们汇编代码中的。另一个定义来自/usr/lib/cr1l.o;2. crt1.o的_start函数要调用main函数,而我们的汇编代码中没有提供main函数的定义。最后一行显示这些错误提示是ld报出的。所以如果我们用gcc做链接,gcc实际是调用ld将目标文件crt1.o和我们写的hello.o链接在一起。

  如果目标文件是由C程序编译生成的,用gcc做链接就没错了,整个程序的入口是crtl.o中提供的_start,它首先做一些初始化操作(以下称为启动例程,Startup Routine),然后调用C代码中提供的main函数。_start才是真正的入口点,main是被_start调用的。  我们继续上一篇文章《[汇编与C语言关系]1.函数调用》研究,gcc main.o -o main其实是调用ld做链接的,相当于这样的命令:

$ ld /usr/lib/crt1.o /usr/lib/crti.o main.o -o main -lc -dynamic-linker /lib/ld-linux.so.

  除了crt1.o之外还有crti.o,这两个目标文件和我们的hello.o链接在一起生成可执行文件main。-lc表示需要链接libc库,-lc选项是gcc默认的,不用写,而对于ld则不是默认选项,所以要写上。-dynamic-linker /lib/ld-linux.so.2指定动态链接器是/lib/ld-linux.so.2。

  我们可以用readelf查看crt1.o和crti.o里面的内容。在这里我们只关心符号表,如果只看符号表,可以用readelf命令的-s选项,也可以用nm命令。

  

$ nm /usr/lib/crt1.o
R _IO_stdin_used
D __data_start
U __libc_csu_fini
U __libc_csu_init
U __libc_start_main
R _fp_hw
T _start
W data_start
U main
$ nm /usr/lib/crti.o
U _GLOBAL_OFFSET_TABLE_
w __gmon_start__
T _fini
T _init

  U main这一行表示main这个符号在crt1.o中用到了,但是没有定义(U表示Undefined),因此需要别的目标文件提供一个定义并且和crt1.o链接在一起。具体来说,在crt1.o中要用到main这个符号所代表的地址,例如有一条指令是push $符号main所代表的地址, 但不知道这个地址是多少,所以在crt1.o中这条指令暂时写成$0x0,等到和main.o链接成可执行文件时就知道这个地址是多少了,比如是0x80483c4,那么可执行文件main中的这条指令就被链接器改成push $0x80483c4。链接器在这里起到符号解析(Symbol Resolution)的作用。链接器还有一种作用就是重定位作用,而链接器编辑的是目标文件,所以链接器也是一种编辑器,vi等其他编辑器编辑的是源文件,而链接器编辑的是目标文件,所以链接器也叫Link Editor。T _start这一行表示_start这个符号在crt1.o中提供了定义,这个符号的类型是代码(T表示Text)。我们从上面的输出结果中选取几个符号用图示说明它们之间的关系:

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

  上边我们写的ld命令做了简化,gcc在链接过程中还用到了其他几个目标文件,所以上图多画了一个框,表示组成可执行文件main的除了main.o、crt1.o和crti.o之外还有其他目标文件,gcc -v选项可以了解详细的编译过程。

  链接生成的可执行文件main中包含了各目标文件所定义的符号, 通过反汇编可以看到这些符号的定义:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAj4AAACHCAIAAACZCsRvAAAgAElEQVR4nO3d61MTWfo4cP6E2VdbNS923mzV1lTtm9ma2Z0ZR8u5OM6qY3QIiYFcu0MCCCaCUiArgjqoI+FicLgFE+UWwREBRQgIAslwCZdwGZGbhFu4hPR5sd+qrXn1+704O6d6k5AEELWd5/Pq5HS6+3QI/aTPc/p02P8DAAAAOCXsdTcAAAAA2BoIXQAAADgmTK/Xl5SU/Prrr7/++mtVVVVVVRWUoQxlKEMZym9m+cKFC4mJiWEffvjhP//5T4QQQojH4/F4PChDGcpQhjKU38zyH//4x7CwsDCLxTIxMYEAAACAN97XX38dFhYW9u9///t1twQAAAAIyX9DV2Zm5tOnT193YwAAAIDg/hu6Dh48aDabX3djAAAAgOD+G7og1wUAAIArINcFAACAYyDXBQAAgGMg1wUAAIBjtpDrqqurewUNmpubW1lZeQU74pClpaX5+fnX3QoAAHhThJrrevTo0SeffNLY2LiT0RypqalyuTzwe2iarq2t9btoenpaoVBcvXp12w3YJRaL5fjx4y0tLbu0/eLi4rS0tF3aOAAAcE5Iua709PScnJyBgYGioqK9e/fuZH9qtTrwG9ra2p49e7bZUqfTmZiYuJMG7JKKiorduyodHh62Wq27tHEAAOCckHJdCoWClHt6ekLZLsMwnZ2dRqOxt7eXXa9Wqz0eT1NT0+3bt3/55RdS73Q6bb/p6+vz2lRHR0dpaandbieha2lpyWazOZ1OhNDq6qrNZnM4HAih6elpu90+MjJiNpvX1tYGBgaqq6s3NjYQQoODg0NDQ263+8GDBwaDYWRkJJQDCcDtdt+/f99oNM7MzAQNXQEaho/Rbrcbjca7d++ura2RtTweT09Pj81mm5qa8t3a6upqXV1dZWXl8vLyDo8FAAA4JKRcV2pq6vXr14eGhhiGCWWjbrcb9+w1NjZmZGRotVqyolwuF4vF+fn5Dx48UKlUBoMB19tsNt1vDhw4QDbl8XiUSuXly5cbGhqSk5PPnDmDQ9fIyEhCQkJxcTFCaGpqSqfTCQQChJDFYvnggw8oiiovL9+/f398fHxZWdmFCxcQQiUlJQcOHODz+YWFhfX19XFxcdevX9/mx4bQ7Ozs0aNHS0pKfvrpJ7lcTtN04NAVoGEIobt37166dKmxsbG6ulooFK6vr+N6l8uVm5t7+fLl5ORk9tZaW1v37NkjEAjKy8urqqp4PJ7b7d72sQAAALeEmuuy2WxZWVlSqbSgoCDoRq9cudLc3Exemkwmk8mEyx999FFnZydZRFHU9PS01+o0TZNyWVnZ7du3ycvMzEzSYWixWHDowkhXpEgkwlcz4eHhOGRSFIUXffzxx4ODg2SVmJiY0dHRAAdSVVV14n81NTXhRfHx8WRdhmEOHDgQtMMwQMPYsrOzbTYbu8bpdHqFLoTQ8ePHZ2ZmcDk/P7+trS3w3gEA4K0RPNfFMAzp10IISSSSpaWlwBtlxx6EkNvtJnGFz+ezF1VXV9fU1ARYnaIocgmCEHI4HEFDF1mdDAkhNVFRUewd3b17t6qqKsCBPHv2rP1/kWghlUrZ7ywoKAgaugI0rKmpKSoqiqKo6OjoPXv2dHV1sVf0G7rYn5LBYCAxFQAA3nrBc11Wq1Wr1eKyx+Ph8/lB+6aUSiX7PbOzsyTeHDhwgB0ICwoKfC8X2CdljUZDogVC6MmTJzsJXfv27cPpMSw9Pd0rrxY6iUTCfpmZmbnt0DUxMcGO0Pn5+RC6AAAggOC5LofDQVGUQqGQyWQSieTx48dBN9rW1paYmOjxeBBC6+vrFEUNDQ3hRfv37//Xv/6Fu8umpqYEAgE7kmHsk3JfXx9FUfg9y8vLPB6PhK6BgYGMjAxcrqys/Prrr71W9w1dR48eDQ8PHxwcXFlZMRgMGo0m6LFs5scffyR9p6Ojo3/5y1+2Hbq6urquXbuGa6ampuCqCwAAAtvCHIZe3YCB1dfXy+VytVotl8s7Ojpw5blz5+Li4kwmU1RUVHR0tEql8k10+e6osbExMjKSoiiJRPLkyZOjR4+SzNnp06eVSqVMJtPr9TRNm81ms9l8+PDh0tJShJBSqayoqEAIRUZG4riiVqufPXuGm1FRURHiqBO/GIbR6XRSqVShUMTGxprN5hMnTnR3d2/2/gANYxjm/PnzKpVKqVSePHlSr9dHRUXhnFxJSQlN0wqFgsfj0TStUqkWFxcRQnq9/vDhw5cuXUIIzczMCIVCmUzG7lkFAIC32BbmMIyLi3s1bfLqi3uJgt5VBgAA4M23hTkMfXv2XqLZ2dmurq6Ojo6MjIwrV67sxi76+/v5fH5XV5ffSz0AAABc8aY8r8tqtebn5+v1evbQ+ZerrKwsPz/fdxAEAAAAboHndQEAAOCYXXxel9vtfru75l68eLG6uvq6W/E2w4NUfTEMs9miAAJ8IT0ez2ZjdgLvaBvNAADs3C4+r2t8fHzfvn0vd5uvntvtPnv2rFKpjImJuXz5MnuRWCz2GpLucrnUarVMJsvJydntve+2+fn5oPeeh6inp4em6WPHjvn9eTQxMaFSqaKjo2NiYqqrq3Hl06dP8T3akZGRZEApQohhmPT0dKlUStN0QkLClgZV+v1CTk9PK5VKuVyuUChSUlLYAQwPhVUqlWq12us3CsMwN2/elEql0dHR7NleAACvxi7mupaWll7NI752VV5e3oMHD/wuamlp8ZoVF5uZmXlZzygJsPfd9tLnwjeZTH5vPqNpenZ21qvy3r17JFrQND03N4fLBoOBhIrW1tbMzMzQG+D3C/nkyRPyzS8uLiZzu0xMTJAhtZ2dnenp6ey1UlJSKisrQ981AODlCpLr2t585wghh8NBZnP32lqA+c4XFxfHxsZe3tHtCJ61XSqVNjU12Wy2n3/+mfQO4XnrbTab3+uSzUJXb2+v0Whsa2sL5X6yAHtHCM3NzZnN5p9++gnf5kUqbTbb5OQkQshutz969IhhmOXlZZvNNjs7W1lZOTs7OzMzc+fOHfaUIpOTk9XV1bdv32bPWjI+Pn7lypW8vDx8mOPj48E/L4Q8Hk9zc7PJZBoYGPBd6hu68MfI4/HwXry+LUR6ejq5pX1wcJB8egzDyGSyUBqGNvlCemlubr5x4wYuNzU1kblaPB4Pe96vzs5Oci88AOC1CJLr2t585wgho9Go0+m8ZiwMOt/5nj17wsLCtj0508uFZ23/8ssvL168qNPpcnJyXC4XXuRwOHQ6nVwub2xs9F3RN3QxDKPVai9evPjw4cO8vDyJRBL0SdAB9l5fXy8Wi/EEjCKRiAyYtFqtly9f1mq1iYmJZ8+e1ev1RUVFo6OjBw8e/Oabb2pqao4cOSIUCmtqasiJeHBwMCkpqaampqGhISoqikSIe/fuyeVylUqF5/Lf7OGfbE6nUyQSFRYWPnz4MC0t7fz5815v8A1d+GP8+OOP8V6MRqPXKg0NDVevXo2Pj/e7x5KSEvLkgaD8fiGJrq6u0tJSPp+/sLCAa1ZXV8PDw/v6+hYXF7VaLXumzTNnzszMzDQ3NxcWFvq97AYA7Lbgua5tz3eO/N0CHHi+8xs3bohEIvaVxGuXmJjIvhxhq6ioCDF0GY3GO3fukJd2u92rAyr0va+srJw4cYJceayvr+OnvWBOp/NPf/qTxWJhr5KWlma32xFC0dHReJyC379gb2/vDz/8wD66LXUYxsfHsy/OCgoKHj16xH7DZh2GAR6cfffu3YSEhPT0dN/r1Lq6uqSkJHZ9gGn+ic3uSW9vb8/MzJTJZOzvXn5+/t69eyMiIg4ePMi+vI6Ojj5//nxWVpbFYomMjAzxkhQA8BIFz3Vte75z5O9MwbmZ915K6FKpVAqFgmYRiUTb23t7e7vXc2fOnTuHOwkRQk6n8/Tp014bSUtLe/78OUJIrVbjqz3yVxgdHaUoiqIopVIZERGRlZXFProtha7PP/+cfYASiQTPU0VsI3RhJSUld+/eZddUVlZ6xS0UcJp/IvB0KsPDw0lJSbjc3d2dkpKCywMDA+zpLhMSEkiH4dzcnO8HDgDYbcHv69r2fOcIQtdvLly4QPridrj34eFhr7EJsbGxpC+RPEWaLUDoEggEL168wOXBwcGdhC65XB44h7ft0DUyMsIeXVlSUpKamrq9+SeDzgSmUqlwoaCg4MmTJ6SefZ1669YtMnaGYZiYmJhttAQAsBPB7+va9nznaOuhS61Wv//++/g8+4Z4KaFrampKJBKRTqfV1dVQskd+984wjFQqJcMNOjs72amgLYUuhmHEYjFpUkxMDDt0NTQ0kHEKGxsbgZ/JiRBqbGxMTU0lY0kmJye9+i1DD11Op7O8vBwHJ4/Hc+rUKZL+zM3NZc8TttWbEX2/kGVlZSTwm0ymH3/8EZftdvupU6dwG9hXYAihxcXFqKgo3ItuNpvLysq21AYAwM4FyXVtb77ztrY23Gt05MgRXLBarSiE+c6joqLefffdNyR5MDY2RtP00aNH5XI5TdOkKwkhlJycTNO0QCAQiUQ0TZNxK0VFRTRNy+VyPNG7Wq0moyiHhobwHUJisZiiqPb29m3vHQ8cUKvVarX63LlzZGxnTk6OWq0+evQo/szxLux2O4/HO3PmDELohx9+wD1d6enp2dnZCKHy8nLc36tQKKqrq48fP07GI2xsbGg0GpVKhWfHD+VhNw8ePKAoSqVSicXikydPki7oM2fO0DQdERGBPy5y1djQ0EDT9KFDh3CDCwsLcT3DMIWFhZGRkQqFQiKRsH8fePW7+sZpvzb7QiKEmpubpVKpRCKhKCo7O5t9MWc2m8ViMU3TWq3Wa1hNR0dHVFQUTdNpaWlwVzIAr96bMochAAAAECKYwxAAAADH7OIchgAAAMBu2MU5DAEAAIDdALkuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHAO5LgAAABwDuS4AAAAcA7kuAAAAHPMScl0vXrxYXV19uc0Cr9jS0tL8/Pzr2vs2vkLPnz/fpcYAAN58wXNdg4ODjb8ZGBjwfYNYLG5qatrNRr4Ec3NzNE1///33fpe6XC61Wi2TyXJycna7Ja2trXK5XKVSqVSqvr6+3d4dwTBMgF8nxcXFaWlpr6wxXrbxFfrzn//sWwlDjQD4nQie6+rs7Dxw4IDJZDIajRcvXpRIJC6Xi/2GlpaWqampV9LaHVlZWdFoNAHeMDMzs9unb4Zh+Hz+xsbGru7FL6fTmZiYuNnS4eFhq9X6KtvDto2vUFVVlW+lWq12u90vqVEAgDdXSLkutVpNyt3d3VqtFpeXlpZsNpvNZltaWvJaxePxNDU1GQyG7u5up9NJ6t1ud3t7e2lpaXNzM8Mw7FWWl5fNZrPJZBobG2OvstmmEEITExMVFRX19fUkmk5PT9vt9pGREbPZvLa2NjAwUF1djUMFDl0ul6u6uvru3bu+/WO+oWt8fNxms01PTyOEGIbp7e212WxBu7YYhuns7DQajb29vez6qamprq6u7777Dn9ooZyst3TsZBWLxWI0Gnt6ehYXF/Gxz83NNTc3S6VSvOv+/n72+3t6evy2x++BLC8v22y29fX19vb2srKyHXbc+f0KMQzT09PjdDodDsetW7d+/vln9ipTU1N4Fa9N9ff38/n8rq4uvHRubo69dGNjY2BgwOsrBwDgqJByXezQhRBSKBT4FOBwOHQ6nVwub2xs9FolMjKysLCwqanp+vXr77//Pqm/du3ajRs3mpqaCgoK2BcB09PTPB6vurr64cOHWq2Wz+cH3VRhYWFCQsKDBw/u3LkjFArtdjtCyGKxfPDBBxRFlZeX79+/Pz4+vqys7MKFCwihlZWVY8eOhYeHV1RUVFdX8/l8r+sM39BVXV396aefWiwWhJDH47l27dqePXsCn6zdbrdCobh69WpjY2NGRoZWqyWny8ePH1+/fv3TTz/V6XQ6ne7x48cBtrONY0cILS0ticXiwsLCR48eZWVl/fWvf8XnfavVevny5S+//BLvWq/Xk1a5XK7c3NzLly8nJyeHciBjY2MHDx7k8/m5ubn19fXffffd8PBw0APZjN+v0Nra2qlTpz7//PPk5OSGhoZTp06ZTCay9PHjxzqd7rPPPvPaVEFBwWeffXb9+nV8jF5/3JSUlLCwsNzc3G03FQDw5gjpvi6v0KXVatmXLBUVFV6ha2Nj47vvvvN4PPhldXW1381SFEXKra2tmZmZ5CVZZbNNjY2NxcfHk/e7XC6yNZFIhC81wsPD8dkWL1pZWXn33XcXFhbw21ZWVgQCAbs9fjsMVSoVudy5du1aR0eH32Mhrly50tzcTF6aTCb2adftdtM0HXgLxDaOPSUlhYQxhFBOTg6JK4E7DJ1Op1foCnAgaWlp5C8+ODiYkZER4hFtxvcr1NTURNrDMIxMJvNaxes7SSo36zBsbm4+duyY1wUcAICjQrqvy+s0cfLkSXanme95ByHU3NysVCpjYmJiY2O7u7tJ/Y0bN6KioiiKio6O/uCDD0g9wzCFhYV48MLZs2fZnVd+N3Xnzp1vvvmGZvnkk09wxCKxQS6X4wKuWVlZEYvF7EbGx8ez+6n8hi673X7+/Hm8uu8J1JdXZHK73exPb0uhC+3g2H1tNXQFOJC0tDRy6fn8+fOdJwj9hi6DwbBZY9DWQxcA4G2y5VyX2+0WCoXspb7nnaWlJRLb5ufnRSLR5OQkQqiysjIvL490VbHPRy9evCDlkZER0mG42aZaW1v1er3f1gYIXYcOHfJ6J7mmQZsP08AXXtnZ2a2trX73yKZUKtlnz9nZWXbA2FLo2saxUxS1WTpnq6ErwIFA6AIAvF5by3W5XK7Y2NhHjx6xl/qed27fvp2dnU1earVah8OBEMrKyiIZiKdPn7KTN0qlknTmuN3uiIiIwJvyeDyRkZGjo6O4nmEYs9mMT1sBQtcf/vCHhoYGXGmxWJKSktjN3ix09ff3p6SkhHLJhRBqa2tLTEzEEXF9fZ2iqKGhIbJ0S6FrG8duMpnY4/tra2vJL5LV1VV2D+3IyAh7X76hK8CBbC90lZaWvvfee3V1db6LXlboOnv27Pj4OC4vLCzMzMyEsncAAOcEz3WZTKYjR46Qvil2v2JycjJN0wKBQCQS0TSNR0Og36ICRVEqlUoul5Nz0MLCglKpVKvVFEVduHAhNTU1NjZ2fX0dIXTz5s3k5GSKovD9VSSltNmm8Na0Wm1sbKxMJhOLxbdu3UIImc3mw4cPl5aWIoSUSmVFRQVCKDIysry8XKlUZmdnp6WlyWQylUp17tw5vGuEUFFREU3Tcrmcx+PRNK1Wq5eXl9kfAo/HC2VUBVZfXy+Xy9VqtVwuZ+fGcnNzKYo6fPgw/iRbWloCb2erx06ORaFQxMbGUhSVl5fHvqzU6/UURcnlcplMdvPmTVxZUlJC07RCocDHrlKpFhcXAxxIU1MTfice2ZiYmMjj8QYHB4N+LHq9/p133vG6uPf7FZqYmIiMjOTz+XhkY0lJyeHDh2tqahBCs7Oz0dHRNE2T7+SdO3fI1iYnJ6VSqUqlkkgkarV6bGws8N4BABwFcxgGt76+7pUkAwAA8BrBHIaBjI+Pd3V1Xbp06dq1a+RaBAAAwOsFz+sKpLGxMf837N4nAAAArxE8rwsAAADHQK4LAAAAx0CuCwAAAMdArgsAAADHQK4LAAAAx0CuCwAAAMdArgsAAADHQK4LAAAAx0CuCwAAAMdArgsAAADHQK4LAAAAx0CuCwAAAMdArgsAAADHQK4LAAAAx0CuCwAAAMdsIdfFflS8Vz3DMFtaZXt72eqmXgG32z09Pb2lVZaWlubn53epPQAA8HsQUq7r2bNnAoFAoVBIpdKZmRlSzzBMSkoKRVEymezatWuhrII9f/78iy++qK6uZleaTKaoqCilUqlWq1dXV0l9ZWWlSCRSKpUSieTZs2ekPjIykv6NWCzOz8/32su9e/f27t37/Pnz0D6K7RgfH9+3b9+WVikuLk5LS/OqnJ+fX1paenntAgCAt1lIuS6KonAAGB0djYmJIfV37twxmUy4nJWV1dLSEnQVLCYmxmQyFRcXk5qJiYm4uDhc7uzsTE9Px+XR0dGTJ0/i8tzcnFQqJauUl5eT8r1798rKyti7WFtbO3HiRGpq6vj4eLAP4X8wDGMwGLy2tpmlpaW6urotbX94eNhqtXpVVlRU+G5nampKo9H4Bn4AAPidC57rWllZoWmavIyIiCDdg+fOnSOBwWKx5OXlBV0FIdTe3n7p0qWmpiZ26GK/9Hg8JETNzMzMzc2Rt8lkMr+NVKvVXr1wWVlZra2taWlpWwpdTU1NAoGgoqJisy5QNofDYbPZHA4Hu3J6etput6+urtbV1VVWVi4vL5NFHo+np6fHZrNNTU2xVxkfH79y5UpeXp7NZrPZbOwGj4yMUBR16dKllZUV3wZsbGwMDAyE0lQAAHibBM919ff3X716lbxMSEhwOp243NfXJ5VKZ2dnf/nll/DwcNKbF2AVhmFEItHq6qpX6FpdXQ0PD+/r61tcXNRqtTU1Nb4tGRgYIFdmbB6PRywWs2umpqZUKhVCKPTQNTg4iLs919bWQnk/QshoNOp0Oj6fz65sbW3ds2ePQCAoLy+vqqri8Xhutxsvcrlcubm5ly9fTk5OZq9y7949uVyuUql0Op1Op6utrfXaUVtbm1AoLCsr84pSKSkpYWFhubm5ITYYAADeDsFzXV1dXew0UlpaGskeeTweiUTC4/G++eabU6dOkRNrgFVKS0txissrdCGE8vPz9+7dGxERcfDgQd/Ez+jo6IkTJ9gXMURbW5vX6TsuLg7H0VBCF8MwWq2WoigSX7dErVZ71Rw/fpz08uXn57e1tbGXOp1Or9CFNukw9GpkeXn5/v37h4eHSWVzc/OxY8d+/vnnbTQbAAC4K3iuq7+//9KlS+SlRqNZWFjA5WvXrjU0NOBycXHxnTt3Aq+ysbHxxRdftLS0WCyWnJyclJQUMhyju7s7JSUFlwcGBjQaDbsNdrtdKBSS/XpJTExkj8Xo7e0VCoUWi8Vischksp9++inopxC4Xy4w39DF7iw1GAxNTU3spdsLXVvqyQQAgLdb8FzX8vKyQqEgL6OiokiZoihyJp2fnyfxZrNVNjY2DL9JTk6maZpEo4KCgidPnrC3TMpWq1UoFPq93sIkEgn75cTEBNkLj8crKCgIcPxsT548EQqFBoNhS+Fht0MX7sn84Ycf1tfXQ28VAAC8xUK6r0sul+PLmq6urrNnz5L6H3/8saKiApd1Ot29e/eCrkJ4dRja7XbS5ci+AmttbVUoFOTizPfS0G63Z2ZmbtbyrQ7TYBimoqJCIBB0dnaGuMpLCV0NDQ3k09jY2BgdHUUIuVwujUaTmJi4WU9maWnpe++9t9UhjgAAwHUh3dc1NTWlUChkMplKpWJnoRiGyczMpChKLpd7ZZs2WwUzGAwikUggELBHfpvNZrFYTNO0VqslHXdXrlxRKBTk/q1jx455berevXteY/yIc+fO8Xi806dPB/kMfKytrdnt9sDvaWtrw006cuQILuAh73q9/vDhw7i/dGZmRigUymQyfMFUUlJC07RCoeDxeDRNq1SqxcVFvLWNjQ2NRqNSqaRSqUKhePz4MUJoYWEBx7DN6PX6d955B6ZBAQD83sAchgAAADgG5jAEAADAMfC8LgAAABwDz+va1PPnz2NiYtQ+4uLiSI4KAADAq/cScl2bzenOMMxWb0IKsKk3c+Z4AAAAr96Ocl1WqxXP6R4ZGek1Fi47OzsqKioqKsprygzMd053p9OpUCiUSqVIJKqvryf1DMOkp6dLpVKaphMSEsi9TQ8ePODz+WTk4VdffeW1CzwRot9x+ZwWGxtLjpo9R7DNZvv2229xfXR09PZmBgEgRPPz89HR0WSa7N2Tk5OTnZ198eLFjY2NoG8uLS396quv2M+dAG+rHeW6hEIhjiULCwvs+4JtNltSUhIuq1SqsbEx9lp+53TXaDQ4+OFJDl0uF643GAy3b9/G5dbWVnILl81mGxgYIKtHRkZ6ta2oqKimpkYul2/1oN5w7JvG2Nrb22/evPmKGwN+z9xut+9NjS/X+Pg4fkCE1Wp98OBBKKtoNJptzIkDOGf7uS6Px8Oe84I9Ae7p06cnJydxub29/cqVK+wV/c7pzo4x6enpJCwNDg6SXkeGYfzOHD8xMeF189bi4iIOpb6hi+uzrUPoAts2Pz9vs9kWFhbGxsYMBsP9+/dJN4bD4SD3Mo6Pj9tsNvbtmMvLy2az2WQyjY2NkQt6HLomJycrKiosFstu/E8tLi7is0dZWZnvrZa9vb1Go7GtrY29axy6ent7y8rKbDZb0AMHHLWjXFdcXNz9+/dXVlZu3brF7ppjh7SlpSX287o2m9O9uLj4+++/X15e7ujoCA8P95vZKikpMRgMvvU5OTleU9wmJyf39/cjf6GL67OtR0RE0DSNbwPv6+sj9e3t7V9++aVCocCTMUJqEPjq7+9XKpVCoVCtVtfV1ZWUlBw5cgQ/gsdkMh08eBC/7e7du1KplMwCMz09zePxqqurHz58qNVqyaMS3G733/72N4qiHj16lJubu417/0Px9OnT7OzshoaGsbGxnJwc/KMWT5l98eLFhw8f5uXlSSQScqWl0WiSk5NTU1MbGhrS09O1Wm3gAwcctaNcV2dn54cffigSiT766KPBwUFS73VlwH652Zzus7Oz+/fvFwqF//jHPyorK333VdenXqEAAAQ1SURBVFdXl5SU5PeXnUQiYZ+ph4eHyX+Rb+ji+mzrfX19uCt/eXlZKBSSR7QsLy+TP0FlZaVer39tTQRvsNraWnbv+tjYGPllyf4/NZlMJHSxO+oRQuTh5m63++DBg+Rfcpc65x0Oh06n+/7772/dukWmPDUajWSyb4SQ3W4nWTeNRsPu5tHr9fgJSgEOHHDR9nNdq6urfD4fP4zK5XLx+XzyJZbJZKTscrnIY44DzOmuUChwHyPDMEql8pdffmHvq7KycrO4NT8/7/UVjIyMrK2txXs5dOjQW/yU4fz8/O7ubr+LlErlK24M4ITa2lqj0ciuISFns9DFMExhYaFKpVKpVGfPniUXK165rs26snfCarVWVVW5XK5bt25dvXqVzCyqUqnY88PRNC0SifAijUbD/k28sLBw6tQpFPDAARdtP9flcDjYv8Xi4uLI2IqkpCQyNOPJkyfZ2dm4HGBOd3YfY1VVFftxiyUlJampqZv1pN+6dcvrsSb3798ne9m3bx/7AVdvmaysLL9zLTIMsxvnEfAWqK2tPXPmDHm5uLhIviqbha4XL16Q+pGREXaH4W6HLuzhw4ctLS0IoYyMDPxb+cKFC0NDQ37frNFo2L/nHA5HRkYGCnjggIu2n+va2Njg8/k4XDmdzhMnTpBFPT09uIuZYRixWOz3userwzA2NhbPouvxeBQKBflll5uby778920kRVEBnmvs+8OK07Ott7a2kn6SFy9e8Pl8MmI4MzOTfM7Z2dlVVVWvp4ngzVZbW/v3v/+9sLBweXl5ZGREIBCQXz9KpRL3RTudzq+++oqELqVSSTrY3W53REQEKb+a0GUymXCWITs7G59wpqamRCIRGUiyurpKfuxqNBo+n49TX2traxKJBHfhBDhwwEU7ynX19/fjO64UCoXXCPiioiKJRHLixAnfx9Ujf3O6O51OfMeSWCxmPyXEq1sgMTHRa1M5OTl+29bR0UHT9KFDh7xGcHB6tnWGYfR6vUgkoijK6zMfHR1VKpVisVgmk3F3EArYbbW1tTU1NRUVFdHR0efPn8chAbNarQKBgKZppVJZVFQkk8lwJLt582ZycjJFUWq1WiaTdXR0IIQ8Hs/JkyePHDmCM0nl5eWHDx/epZEa6+vrFy9evHr1KvtGxqGhIaVSqVarxWIxRVHt7e0IIYPB8O2337a3t0dGRtI0LZVKSR9jgAMHXARzGALwO1JbW+v31+Rb73d74G8rmMMQgN8Lp9N5/fr169evW61W7t7auA2/2wN/i8HzugD4vRgYGMjPz8/Pz79582Yo8yq9NX63B/4Wg+d1AQAA4BjIdQEAAOAYyHUBAADgGMh1AQAA4BjIdQEAAOAYyHUBAADgGMh1AQAA4BjIdQEAAOAYyHUBAADgGMh1AQAA4Jj/hq7//Oc//wcAAABwQWZm5rFjx/4/P979vtULdhQAAAAASUVORK5CYII=” alt=”” />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAj0AAAG7CAIAAACn8rMOAAAgAElEQVR4nOy921tTSb7/733fzH5230xf7LnoixmfZ+893bP7ODPOY9u2Oq0OtgRCyHllkXDQTjzxgIwg0CI24dQoxwARENCgcm4MBwUTBQJyFgGRQAgkJFl18f0D/F3U0/WsX0JCiIgEP6+rWrVWrapVWVmfqvpUvWvP69evDx8+XF9fjwAAAABgx7Pn9evXer1+eno6sPQul2vdeIZhGIbZqlt5O/V+soV1DgAAEHTsef369f/7f/8vgJQGg4HH49E0HRkZOT4+zj6lVqv5fD6fzy8pKfFM2NDQsG/fvhcvXpAYs9kslUppmubxeE1NTSSeYZjk5GSRSCSTyU6fPr22tobjGxsbORyO7DcOHjxIkhiNxuPHj+P4qKgos9kcwKPtWHzUeWlpKZ/Pl0gkV69efZMsdncFAkFHTk6OWq1OS0tzOp07PPeysrKDBw/abLZtKNh7zp7Xr1+npqY+evRosym5XC42JEtLS0KhkMQbjcZz587hsFwun5iYYKey2+0RERGJiYmTk5MkUqlU4q8wwzA8Hm9lZQXHazSamzdv4nBnZ2dqairJYmhoiCSPjIwk4Z6enhs3bmz2WYIFb3U+NTWlVCpxODs7u7GxMeAsdncFAsHF5ORkdXU1QshgMLzJW71tuSuVytXV1bdcLgDtCcy/5XK5KIoihwKBgITPnDkzMzODwz09PW7N/4yMjM7OzqSkJLbdkkgkJJycnExs0vDwMBn4YhhGLBZ7lmR6evrMmTPk0Pdn1+l0Dg0NBelgmo8612q1LS0tOGyz2WJiYvy5W0dHh1arZbcAENitXc3c3JzJZBobG6uvr7fb7UNDQ3V1deyexPj4+M2bNzs6OshY9NzcnNFoNBqN+HP87Nkzo9FoMpm2p8AWiwV/QMrLyz0z7e/vr6ys7OrqcvtHW63W+vp6rVY7MTGBBwwWFxeNRuPS0tLExIRGo7l37x4ZvNna3LHd6u/vLy8vNxqNODKw3AEfBO7fio2NvXfv3urqakVFxYULF0g8+9u6vLwcHR1NDmdnZ+VyOULIzW6VlJRcuXLFarU+fPgwNDR0Xf9NaWmpRqPxjM/Jyenq6iKHPT093377rVQqpSgqPT3d7VYJCQl79uzJzc3d7MPuELzVeXNzc3FxMQ4PDg5+8sknvu9jNpt5PF5RUVFra2tSUtKlS5fIKd8VCAQ1er3+008/pSiqurp6//79p06dKi8vT0lJwWczMzNVKlVTU1NhYSGXy8Vf/M7OzkOHDl26dGlqagohVFZW9tlnn12/fn3byvzo0SO1Wt3c3DwxMZGTk4ObWQzDqFSqtLS01tbWvLw8oVBIejlzc3MhISF1dXWtra0qlYrD4SCEBgcHaZrmcrkKheL+/fulpaXHjh2bnZ3d8tyVSmV8fHxiYmJzc3NycrJKpXqT3AFvBO7f6u3t/eyzz3g83ueffz48PEziZTIZ+zL2YWxs7PPnz5GH3Zqfn9+/fz+Xy/3yyy9v3brlmdf9+/fPnTu3bj9JKBSyv61Wq5UU5tatWwUFBeyLOzo6Tpw48eTJk0096c7BW507nc7Q0NCWlpa2trYffviBPYS4LqdOnWLX//Xr19va2nDYdwUCwQ6Px8MdrNDQUPyHwg3NR48eEQOGEBofHycjz4ODg5cvX8bh6elpEr89jI6OZmdnX7lypaKiYmlpCUdWVlZWVVWRa0wmU3JyMg6zHQoIobq6OhzQ6XRsh8LExAS7Sb1VuSuVSvYIU0FBwZ07dwLOHfBGgP4tm83G4XAcDgdCaGVlhcPhEKMiFotJeGVlJS4uDof7+/u5XK5er9fr9WKx+O7du+RuUqkUDy0yDEPTNG7ZEW7duuXNaC0uLvr++Wma3tRz7WR81DmOKSwsLCwstFqt7HHXdfnmm29kLIRCYXp6+rpX7qYKBBCrHUleEhyTlpY2Ojq67pX4Yjy0lZiY6HbZW8VgMNTW1q6srFRUVGRmZvb29uJ4uVwulUrZ7zCPx8OnGIYpKiqSy+VyufzChQukW6PT6SorK9k33/BvEkDuSqWS3SJcWlr68ccfA8sd8EGA/q3R0VF2oyY2NpZMpjh37hyZi9Hd3a1Wq3F4enpa8xshISHsoQb20GJtba1OpyOHpaWliYmJ3jxSFRUVbPvnBsMwbp2/oMZHnbMxmUxsh9+6SCQSf5x8u6wCAeTdbhUUFHR3d5PLGIZh/ysbGxtLS0ttNts7+dq2trY+ePAAIXT58mXcbktJSXn27Nm6F7969YqEx8bG8DghQkin050/f56cslgs7Hd7fn6+pqamr6/vDXNXKpWPHz8mh6Ojo7ir6jt3YLME6N9yOp0cDgd/N81mc0REBDn19OlTPKrLMIxAIHj58qVncrdxwpiYGNyIc7lcUqmUNJFyc3PZnW7PTiFFUXa7nR2TmppKclSr1bW1teyzZWVlf/jDH+7fv7+ph90h+KhzwsjIyMmTJxcWFnzfqqWlJTExkYyvzszM6PV6HPZdgUCw481u4TfKYrHgyLy8vIqKCpKKYRg+n19YWNja2rq95UUIIa1Wi/0LarUav/+zs7M8Hm95eRlfYLPZSGOXpmniCHA4HGFhYTis0+m++OKLoqIiq9U6NjYWHh7OnmqRlZW1Z8+e9vb2N8xdqVRyOBzs7rLb7UKhEI8e+c4d2CyB+7cGBwfxyiqpVOo22b24uFgoFEZERLB7ToSLFy+GhISw+wRmszkmJkYmkwkEAvar49YZP3v2rNutcnJy3GLGx8dpmhYIBGKx2HP+RUFBwe9+97vgFQfxVucmk0mhUEil0jNnzpC/k28aGxspipLL5QKBIC4ujjRcfFcgENTU19cfPXq0rKwMIUTTdE1NDUIoMjISt+RGRkYoilIoFBRFlZaWuqW9efOmn930LWdtbS0tLS0zM7O8vJxEPnv2jKZphUIhEAgoiurp6cHxN27ciI+Pxw8iFosfPnyI43U63Z07d2pqaqKioi5duoRNEeHQoUOHDh16w9w1Gs3x48d7enoiIyNlMplIJCJDi75zBzZL4Ou3AAAAggWdTrduMxohtLq6+sEHHxgMhneSOxAAAfq3AAAAggWz2ZyVlZWVlWUwGDy7jBMTE55jOduWOxAAb6pPCAAAsMMZGhrKz8/Pz8+/cePG9utFvdvcdyWB+7cAAAAAYPt5U/8W6MHvHFwuF4xCAACw6wncv7Uz9eDxTB6MQCDIz8/f7HPtZPCsSwx7dtPc3BxN0xKJRCqVJiQkgPUC3iqLi4tRUVFEJOLtAXLswLoE7t/amXrwWL8Z09DQwP647wK8rVXs7u4mv2BJSQmWlgGAt4fD4VAoFG81C5BjB7wRoH9rx+rBs1EoFIuLi+yYoNaDR97tFpuOjo5ffvllGwoDBBc+VMlHR0fJMtjJyUmj0cheBegpr45+s1szMzM1NTV6vf5t/Ke2So4dITQ1NWU0GvGC+hcvXhiNRvKNAoKRwP1bO1MPnuByudjWFBPsevBhYWEymYyiKIlEMjAw4Ha2r6+vrKyMw+EQAVAAIPhQJddqtYcPH8aX3b59WyQSkeX/68qrI4QcDsdf/vIXiqLa2tpyc3M3lBYLjC2RY0cIVVdX/+lPf8KiMPfv3//jH/+4/bt5AVtI4P6tnakHT+jq6vK0T8GuBz8wMICH761WK5fLddO46unpSU1NFYvFRK0HANj4UCVn/0+1Wi2xW97k1R0Ox+HDh8lf8i3pFm6VHDtCqLu7W6FQWCwWsVjs2eYDgosA/Vs7Xw/+7Nmz7Kkfu4/8/Hy2gidhZGSE+BcBgI0PVXJvdsubvLqbf+ttqMRuoRw7pqOj4/e///3g4OCWFxXYZgL0b+18PfgN96AKdjIyMrxJc+LBWABww4cquTe75U1efRvsFmZL5NgRQmazOTIy8u7duxKJBOZuBDsB+rd2rB48xmQysc0qIaj14Ds7O8nwyKtXrzgcDpkcXF5eTtoNWq22sLDw3RQR2Nn4UCWnaRoPQZvN5oMHDxK75U1efdvs1pbIsc/Pz0dEROBRpeHhYaFQ6Kf8NLAzCdy/tTP14DENDQ3r7m4X1HrwDMMUFBTweDyKotzqvKOjQyQSCYVCiqLUanXwTpgE3io+VMkNBkN4eLhMJqNpuri4WCwWYzO2rry6y+WKi4s7duwY9h5VV1cfPXr0LU3NeHM5dqfTGR4eHhYW1tDQgBCqqqoKDQ2FDVGDGtAnBID3BVAlB3YHoE8IAO8FoEoO7Bpg/y0AeC8AVXJg1wD7bwEAAADBBPi3AAAAgGAC/FsAAABAMAH+LQAAACCYAP8WAAAAEEzsef36NVH4BwAAAIAdDvi3AAAAgGAC/FsAAABAMAH+LQAAACCY8Gv9ljcZdbvd/tVXXx05csT/JAMDAx9//DHZ542NQqHYu3ev56ZZQS3iDgAAAGwtfvm3vMmo22y2vXv3fv311/4nMRgMH3744brS0Xw+/6OPPmLvb+L7VgAAAMB7yJ7Xr1+fP3++s7PzXZcEAAAAADYG/FsAAABAMAH6hAAAAEAwAeu3AAAAgGDiTddvvXr1Cu/nDQQvy8vLi4uL77oUAAAAfrGBf2t4eLjlN4aGhjwvEAgE7e3tb7mQb8rCwoJMJrty5cq6Z1dWVhQKhVgszsnJedsl6ezslEgkcrlcLpcPDAy87ewIDMP4GAouKSlJSkratsKw2cIBahjrBoD3hA30CXt7e7/77jutVltZWZmWliYUCldWVtgXPHjwYHZ2dluK+kasrq4qlUofF7x8+fJtf7sZhuFwOO9kq1mz2Xz27FlvZ0dGRgwGw3aWh0DT9FbdSqFQOByOrbobAAA7lo39WwqFgoQfP36sUqlweHl52Wg0Go3G5eVltyQul6u9vV2j0Tx+/NhsNpN4h8PR09NTVlbW0dHBMAw7idVqra+v12q1ExMT7CTeboUQmp6erqmpaWpqIqZ0bm7OZDKNjY3V19fb7fahoaG6ujpsJ7DdWllZqauru337tuewmKfdmpycNBqNc3NzCCGGYfr7+41G44aDogzD9Pb2VlZW9vf3s+NnZ2f7+vpOnjyJK80fY7+pZydJ9Hp9ZWXl06dPLRYLfvaFhYWOjg6RSISzHhwcZF//9OnTdcuz7oNYrVaj0bi2ttbT01NeXu65SNx/7Ha70WgkFWI0Gu12OzlrsVju3r1bW1vLLpjZbDYajePj4wihpaUlo9E4MjKCTw0ODnI4nL6+PnyrhYUFdl5Op3NoaMjtlQMAIEjZ2L/FtlsIIalUiv//o6Oj2dnZEomkpaXFLUlkZGRRUVF7e3tWVtbevXtJ/LVr13755Zf29vbr16+zm/9zc3MhISF1dXWtra0qlYrD4Wx4q6KiotOnTzc2NlZVVXG5XJPJhBDS6/WffvopRVHV1dX79+8/depUeXl5SkoKQmh1dfXEiROhoaE1NTV1dXUcDseth+Fpt+rq6v7617/q9XqEkMvlunbt2t/+9jffX2qHwyGVSjMzM1taWi5fvqxSqci38tdff83KyvrrX/+anZ2dnZ3966+/+rhPAM+OEFpeXhYIBEVFRW1tbRkZGf/93//95MkThJDBYPjpp5++/fZbnHVBQQEp1crKSm5u7k8//RQfH+/Pg0xMTBw+fJjD4eTm5jY1NZ08eZJYjs3y8uXL7OxsUiHZ2dm4iYAQevToEZ/Pr6uru3fvXlRU1K1bt3C8wWD43//934KCAoTQ8PDw//3f/2VkZOBT169f//vf/56VlYVv5fbjJiQk7NmzJzc3N7CiAgCwo9h4/Zab3VKpVOzOSk1NjZvdcjqdJ0+edLlc+LCurm7d21IURcKdnZ2pqankkCTxdquJiYlTp06R61dWVsjdeDwe7mSEhobiTy0+tbq6+tFHHy0tLeHLVldXw8PD2eVZd5xQLpeTjs61a9cePny47rMQrl692tHRQQ61Wq1WqyWHDodDJpP5vgMhgGdPSEggNgwhlJOTQ4yK73FCs9nsZrd8PEhSUhL5xYeHhy9fvuznE63LuhUSHh6+trZGDhUKBfkVXr58yePx5ubmUlJSqqqq2Kl8jBN2dHScOHECW3EAAIKdjddvudmtuLg49liZp91CCHV0dNA0HR0dHRMT8/jxYxL/yy+/8Pl8iqKioqI+/fRTEs8wTFFREZ6tcOHCBfbQ0Lq3qqqqOnLkiIzF119/jc0V+Q5KJBIcwDGrq6sCgYBdyFOnTrFHONe1WyaT6dKlSzi5WCz2VkUEt6+ww+Fg196m7BZ6g2f3ZLN2y8eDJCUlkU7nixcv3tAp6FnmV69e/fnPf2Y/4JEjR3CvF7OwsLB3717c62ID/i0AeE/YnH/L4XBwuVz2WU+7tby8TAzb4uIij8ebmZlBCN26dSsvL4+MULE/WK9evSLhsbExMk7o7VadnZ2eny2323rare+//97tStKbQd7nZeAul1qt9kcKi6Zp9qdzfn6ebS02ZbcCeHaKory5cDZrt3w8yNu2W06nUyqVerve5XKpVKqamho+n48dXQSwWwDwnrAJ/9bKykpMTExbWxv7rKfdunnzplqtJocqlWp0dBQhlJGRQbwOjx49YjtsaJomYzgOhyMsLMz3rVwuV2RkJPlsMQxTX1+Pv1k+7NZ//Md/NDc340i9Xn/u3Dl2sb3ZrcHBwYSEBH86Wwihrq6us2fPYnO4trZGUdSzZ8/I2U3ZrQCeXavVsqfy63Q6Mvxrs9nYA7NjY2PsvDztlo8HCcxueRP1F4lEZILl5OQkHh5MTk6+e/cuuaavrw8/r9PpjI2NxesulpeXhULh8PAwuezChQtElHlpaYk9RRa2FACA3cQG/i2tVnvs2DEyYsM2b/Hx8TKZLDw8nMfjyWQyPP0B/WYSKIqSy+USiUSj0eD4paUlmqYVCgVFUSkpKYmJiTExMfg7dePGjfj4eIqi8Doq4kbydit8N5VKFRMTIxaLBQJBRUUFQqi+vv7o0aNlZWUIIZqma2pqEEKRkZHV1dU0TavV6qSkJLFYLJfLL168SDwoxcXFMplMIpGEhITIZDKFQmG1WtmVEBIS4s80CkxTU5NEIlEoFBKJhO0Py83NpSjq6NGjuCYfPHjg+z6bfXbyLFKpNCYmhqKovLw8doeyoKCAoiiJRCIWi2/cuIEjS0tLZTKZVCrFzy6Xyy0Wi48HaW9vx1fieYxnz54NCQlhGw9veBP1xxMdZTKZUCiMj4/HXUyXy6VWq+VyOUVRAoEgJSUFx6emph49evTnn39GCBkMBqFQ+P3335PZHDMzMyKRSC6XC4VChUIxMTGxYe4AAAQjoE+4AWtra26OMQAAAOAdAvqEXpmcnOzr60tPT7927RrphQAAAADvljfVJ9zFtLS05P8Ge9AJAAAAeIfA/lsAAABAMAH+LQAAACCYAP8WAAAAEEyAfwsAAAAIJsC/BQAAAAQT4N8CAAAAggnwbwEAAADBBPi3AAAAgGAC/FsAAABAMAH+LQAAACCYAP8WAAAAEEyAfwsAAAAIJsC/BQAAAAQT4N8CAAAAggnwbwEAAADBhL/+LfaO727xDMNsKklguWzVrQAAAICgZmP/1vPnz8PDw6VSqUgkevnyJYlnGCYhIYGiKLFYfO3aNX+SYF68eHHgwIG6ujp2pFar5fP5NE0rFAqbzUbib926xePxaJoWCoXPnz/355F85/62YRhmCwddYfwWAADAjY39WxRFvXjxAiE0Pj4eHR1N4quqqrRaLQ5nZGQ8ePBgwySY6OhorVZbUlJCYqanp2NjY3G4t7c3OTkZh8fHx+Pi4nB4YWFBJBL580i+c/cNwzAajaa8vHxTqdiYzeazZ88GnNwNmqY9I3Nzc2/fvu2tmwsAALC72cC/tbq6KpPJyGFYWBj5XF68eHFychKH9Xp9Xl7ehkkQQj09Penp6e3t7Wy7xT50uVzEPr18+XJhYYFcJhaL2WWbnp6uqalpampaWVnxp8Ab0t7eHh4eXlNT408Sl8vV3t6u0WgeP35sNptx5MLCQkdHh0gkMhqNRqNxcHCQnWRmZqauru7mzZvsXqDdbjcajSMjIwihubm5u3fvWq1WEn/y5Enjb9jtdpJ1UVERj8fr6+tbt2yjo6Orq6t+PjUAAEBwsYF/a3BwMDMzkxyePn2afKMHBgZEItH8/PzU1FRoaCgZxPORhGEYHo9ns9nc7JbNZgsNDR0YGLBYLCqV6s6dO54lGRoaIn0yhFBRUdHp06cbGxurqqq4XK7JZNowdx8MDw/j0U5iGzYkMjKyqKiovb09Kytr7969ONJgMPz000/ffvttdnZ2dnZ2QUEBMYHDw8Pnzp27c+dOc3Mzn89/9uwZjn/58mV2dvYPP/xQVlYmFotv3rx54cIFEv/Xv/41+zfm5ubYBbBarcnJyVFRUVNTU+z4lpaWPXv2hIaG+vkgAAAAwcUG/q2+vr78/HxymJSUhIfgEEIul0soFIaEhBw5cuTHH38kH2gfScrKyrBby81uIYTy8/P37dsXFhZ2+PDh5eVlt2KMj49HRETgjghCaGJi4tSpU+TsysoKRVEb5r4uDMOoVCqKovwxbwSn03ny5Eky9YPtq/NnnLC/v//nn39mx3z99de5ubmeV7L7jusyMzMTHh6elpbGjuFwODdv3vSdEAAAIEjZwL81ODiYnp5ODpVK5dLSEg5fu3atubkZh0tKSqqqqnwncTqdBw4cePDggV6vz8nJSUhIIPMvHj9+nJCQgMNDQ0NKpZJdBpPJxOVySb4IoaqqqiNHjshYfP31106n03eBvTE2NkZRVHp6+qbG1jo6Omiajo6OjomJefz4MYn3ZrfGx8cpiqIoiqbpsLCwjIwM9llid93wbbeWlpYSEhJiY2NnZmb8LzkAAEBQs4F/y2q1SqVScsjn80mYoijSx1pcXCTGxlsSp9Op+Y34+HiZTEYsyvXr17u7u9l3JmGDwcDlcklPC9PZ2VlQULDZAvumu7uby+VqNBp/nFvLy8vE6C4uLvJ4PGI5vNmt8PDwV69e4fDw8LCb3fJmn7zFOxyOvLw8gUDw9OnTDUsLAACwm9h4/ZZEIsFDbX19fdj1giksLKypqcHh7OzshoaGDZMQ3MYJTSYTGWlk9706OzulUimxEKSQLpcrMjJyfHwcHzIMU19f73A4/MzdGwzD1NTUhIeH9/b2+r7y5s2barWaHKpUqtHRURy22Wxsuzs2NobvLBAIyAXR0dF+2i2RSIT7kQihycnJtbU1hFBra2tYWFhjY+O6SQYGBj7++GMyJxMAAGCXsfH6rdnZWalUKhaL5XI52/PEMExqaipFURKJxM034y0JRqPR8Hi88PBw9rS6+vp6gUAgk8lUKhUZr7t69apUKiWDgSdOnCDXLy0tqVSqmJgYsVgsEAgqKir8zH1D7HY7meXhDb1ef+7cOYqi5HK5RCLRaDTsswUFBbhaxGLxjRs3cGR1dTVFUVFRUVKptK6u7ocffsDTT+7fvx8XF3f8+HH8jGVlZexb4dmJMplMKBTGx8djE97f30+MmScGg+HDDz88c+bMZh8cAAAgKAB9QgAAACCYAH1CAAAAIJiA/bcAAACAYAL231qfFy9eREdHKzyIjY21WCzvunQAAADvL2/q3/Imu84wzGYF9HzcarPi7gHkHkSA1D0AAO8zgfu3DAYDVmpnT0nHqNVqPp/P5/PdRDEwDQ0N+/btY8tYmM1mqVRK0zSPx2tqaiLxDMMkJyfjCXWnT5/Gs8A3xHfuQY1Go4mMjJTJZFwu12AwkPiZmRm1Wv3Pf/5Tr9dvYXbnz59nL4YDgO0nJydHrVanpaX5mENLKCsrO3jwIHtDiaDOHfBG4P4tLpeLDcnS0pJQKCTxRqPx3LlzOCyXyycmJtip7HZ7REREYmIi0eRFCCmVSmz5sIAh0cnVaDREr6izszM1NXXDUvnOPdipra3F/Ui73c7j8Uh8Q0NDV1dXaWlpe3v71ua4odAUALw9Jicnq6urEUIGg8HbgkU3lErlVolKv9vcAR8E6N9yuVzs1bVkUS1C6MyZM0Q8oqen5+rVq+yEGRkZnZ2dSUlJbLslkUhIODk5eWhoCIeHh4fJcB/DMGw9eJfL1dHRodVqycX+5O50OoeGhnbHECK7zjEajcZ/u+WtAhFC4+PjGo2mo6ODYRiwW7uMqakpo9GIl06+ePHCaDSyRcLGx8dv3rzZ0dHBHoteWFggl5lMpra2tm37B1ksFvwXLi8v91xV2d/fX1lZ2dXVxS4Pthz9/f3l5eVGoxFHLi4uGo3GpaWliYkJjUZz7949fwZv3m3ugA8C92/Fxsbeu3dvdXW1oqKCLUvBtmfLy8vsHbBmZ2flcjlCyM1ulZSUXLlyxWq1Pnz4MDQ0dF3/TWlpKVneazabeTxeUVFRa2trUlLSpUuX/MkdIZSQkLBnz551FWyDBYvFcufOHZVKVVRU5HbKf7vlowLz8vJiYmIaGxtzc3PFYrGfe54BwUJ1dfWf/vQnPJ58//79P/7xj6QnkZmZqVKpmpqaCgsLuVwuUZrGuxyoVKqzZ89euHChoKCguLh42wr86NEjtVrd3Nw8MTGRk5ODm1lYDjstLa21tTUvL08oFJJejlKpjI+PT0xMbG5uTk5OVqlUCKHBwUGaprlcrkKhuH//fmlp6bFjx2ZnZ3d47oA3Avdv9fb2fvbZZzwe7/PPPx8eHibxbi109mFsbCze7sTNbs3Pz+/fv5/L5X755Ze3bt3yzOv+/fvnzp0j7ZpTp06xk1+/fr2trW3D3BFCHR0dJ06cePLkySafdQextLSk0WhEIpFnRflvt7xV4OTkZExMDInv6ur66quvtqLUwA6iu7tboVBYLBaxWDwwMIAjHz16lJKSQq4ZHx9ny1ubzeb/+q//2lrvqZ+Mjo5mZ2dfuXKloqKCKJpWVlYSIW+EkMlkIsJmSqWSPcpSUFCAhWl0Ol1kZCSJn5iY8GdT2XebO83QihcAACAASURBVOCNAP1bNpuNw+FgScCVlRUOh0OMilgsJuGVlRWyYXF/fz+Xy9Xr9Xq9XiwW3717l9xNKpXiUQiGYWiadttQ6tatW2yjhRD65ptv2GLwQqGQaMB7y333ERUVxRbKQpuxW94qsLS0tKWlhX0lh8PZwjIDO4SOjo7f//737H1N09LSiMYmht3mM5vN70Q5zGAw1NbWrqysVFRUZGZmEuFQuVzOVoCTyWTE3atUKtltsqWlpR9//BEhpNPpKisr2Tdnuyd2YO6ADwL0b42OjrJnScTGxpLJFOfOnSOzIbq7u4n+7PT0NNGDDwkJuX79OknOHtyrra3V6XTksLS0NDEx0W08XSKReBth95b77uPGjRturQ3/7Za3CtTpdOyNuxwOx3ffffeG5QR2GmazOTIy8u7duxKJhAxwFRQUsPdkYBiG/a/0Z1e5t0dra+uDBw8QQpcvX8Zt5ZSUFLLzqhtKpZK9r9Do6Ojly5cRQjqd7vz58yTeYrGwDfP8/HxNTc26G4hvQ+7AZgnQv+V0OjkcDrZVZrM5IiKCnHr69Cke1cUi6G59AozbOGFMTAxu67lcLqlUSkZ+c3Nz2Z1u8pluaWlJTEwkbrCZmRkyguE797Kysj/84Q/379/f1MPuEAwGA6kBi8USERHhNuPWf7vlrQLtdvuJEycWFhYQQgzDxMfHf/vtt1v5DMC7Zn5+PiIiAv/fh4eHhUIh1p7G/2Kypj4vL4+tVf1u7ZZWq8X+BbVajb85s7OzPB6PqGbbbDbS2FUqlRwOB9tju90uFArx+I1Op/viiy+KioqsVuvY2Fh4eDh7qkVWVtaePXvW/ftsQ+7AZgncvzU4OIhXVkmlUrfp5sXFxUKhMCIigt1zIly8eDEkJIQ97GA2m2NiYmQymUAgYL86bp1x9j+nsbERy7ELBIK4uDi23fWRe0FBwe9+97sgFQexWq2JiYkCgQDvP4l3SMFoNBqZTMbhcHg8nkwmw0PqvvFWgePj4xKJhKIogUBQW1sbFRUFW6LsGpxOZ3h4eFhYGN51qKqqKjQ0lKZpfHZkZISiKIVCQVFUaWkpSZWTk6NQKP71r3/hv2FPT882F3ttbS0tLS0zM7O8vJxEPnv2jKZphUKB/xG4VBqN5vjx4z09PXiZo0gkIoN7Op3uzp07NTU1UVFRly5dwqaIcOjQoUOHDr2r3IHNAvqEAADsfnQ63brNaITQ6urqBx98wF7Iv525AwEA+oQAAOxyzGZzVlZWVlaWwWDw9OxOTEy81VFQ37kDAQD7bwEAsMsZGhrKz8/Pz8+/ceOGP4pNuyn3XQnsvwUAAAAEE2/q39qZevAulwv64wAAsHE4HHNzc++6FMAWELh/a2fqwS8tLeHpdiKR6JdfftnsQ+1w8KxLDHt2EwDsPqxWa3JyslqtZk9ufBMmJyf/8Y9/bMmtgHdL4P6tnakHHxcXRyaIp6amdnZ2bva5djKwVhF4fygtLcVLCdVq9ZaIrC8vLwfp2k3AjQD9WztWD56tlGgwGLKysthng10P3ofdmp6erqmpaWpqIlYfANhsqEruKQY/PT1tNBpdLldvb29ZWVlPT892/nfa29tbW1sZhvn3v//t6SlYV44dIWS1Wuvr67Va7cTEBJEGRgiNjo4ajUY3LSsgSAncv7Uz9eDZKBSKkZERdkyw68GHhYXJZDKKoiQSCVFERQgVFRWdPn26sbGxqqqKy+XCUnzAE9+q5OuKwTc3N3/zzTfR0dEpKSktLS1XrlwRi8Xbud12fX29Wq02mUx9fX1Xr161Wq3Ipxz73NxcSEhIXV1da2urSqViq2tWVlZmZ2eD3ubuIHD/1s7UgydcvnwZ7/nGJtj14AcGBrC2k9Vq5XK5drsdITQxMXHq1ClyzcrKCrvpAAAEb6rkPsTglUole8ecqqqqrfI2bQjDMF1dXVevXr1y5UpTUxPWBkQ+5djdvAl1dXVu91QoFG+51MB2EKB/a8fqwaPfhPXYb/auJD8/Hyt4VlVVHTlyhF0hX3/9NSwTATzxpkruQwxeqVSy5+BZrVb2TjdvFZ1O19HRsby8rFarr169SrqGPuTYGYYpKiqSy+VyufzChQuee1yB3dodBOjf2rF68C6XKzY29n2Q/8jIyMDjgZ2dnQUFBe+6OEAQ4E2V3IcYvFKpZE/x1ev12dnZ21VehBDKyckxm81ra2vkg+NDjv3Vq1ckPDY25jkqCHZrdxCgf2tn6sE7nU6apltbW3G8zWYjW2VjgloPvrOzk3QiX716xeFwcKfK5XKxlyIwDFNfX08GVQCA4E2V3IcYvFKpPH78eHt7u91u1+v1oaGhWzK1z39+/vln/E+/cuUKjvEhx07TNPECOByOsLAwt7uB3dodBO7f2oF68Gaz+dixY+R6sVjsNhYf1HrwDMMUFBTweDyKotzqfGlpSaVSxcTEiMVigUDA3oECAAg+VMm9icErlcqFhYWsrKyoqKitmo++KcbHxy9fvpyent7V1UUi15VjRwjduHEjPj4eP4hYLH748CGO7+rqwt8E8n14qyq6wNsG9AkB4H0hAFVypVK5/bYKAHwD+oQA8F4QgCr51NQUj8fr7OyEZU/AjgL23wKA94IAVMnb2tpwEn92IgWAbQP23wIAAACCiTf1b4Ee/PazhXUOAAAQdATu39qZevBzc3M0TUskEqlUmpCQsMu+4z7qvLS0lM/nSyQSN0HIzTIzM6NWq//5z3/ipQUA8G7JyclRq9VpaWnvZCn9u80d8Ebg/q2dqQff3d1N+o4lJSW7bFzeW51PTU0RYZ7s7OzGxsaAs2hoaOjq6iotLWUvSACAd8Lk5CRWazMYDG/yVgdj7oAPAvRv7Vg9eDYdHR1uW3AFtR68jzrXarUtLS04bLPZ/FHi8V2BGo0G7NbuY25uzmQyjY2N1dfX2+32oaGhuro6dk/CUxJ+bm7OaDQajUY8G/7Zs2dGo3HbhJstFgv+gJSXl3tm6r8k/IZa+FuYu8vl0uv1lZWVT58+tVgsuHqnpqaMRiMWYXjx4oXRaCQfSSAAAvdv7WQ9+L6+vrKyMg6Hs7S0xI4Pdj14b3Xe3NxcXFyMw4ODg5988onv+2xYgWC3diV6vf7TTz+lKKq6unr//v2nTp0qLy8nirrrSsJ3dnYeOnTo0qVLWDW0rKzss88+Y4u0vW0ePXqkVqubm5snJiZycnJwM2uzkvC+tfC3MPfl5WWBQFBUVNTW1paRkfHf//3fWL+jurr6T3/6Ex57v3///h//+EfowL0Jgfu3drIefE9PT2pqqlgsJtI1mGDXg/dW506nMzQ0tKWlpa2t7YcffmAPIa7LhhUIdmu3wuPxcA8gNDQU/6FwQ9OHJPzg4ODly5dxeHp6msRvD6Ojo9nZ2VeuXKmoqCDN0AAk4b1p4W9t7gkJCeyeWU5ODtlKqbu7W6FQWCwWsVjM3oQICIAA/Vs7WQ+eMDIyQjxtuwAfdY5jCgsLCwsLrVYre9x1XTasQLBbuxXSjiQvCY7xIQmPL8YDa4mJidu5BtlgMNTW1q6srFRUVGRmZvb29uL4ACThvWnhb23uvnck7+jo+P3vfz84OLjJagDcCdC/tWP14N3Aw5K7Ax91zsZkMrG1H9dlwwoEu7Vb8Wa3fEjCI4QaGxtLS0ttNtuG3/q3QWtr64MHDxBCly9fxu22ACThvWnhY+bn52tqavr6+t4wd4qivP2zzGZzZGTk3bt3JRIJSGe9IQH6t3amHjxCqLy8nHzNtVptYWEhO9+g1oP3UeeEkZGRkydPLiws+L6VjwrEgN3arXizWz4k4RFCDMPw+fzCwkKy2cJ2otVqsX9BrVbj9z8ASXhvWviYrKysPXv2rPvObyp3rVabk5ND0up0OtwlmJ+fj4iIwJ/Z4eFhoVBIkgMBELh/awfqwSOEOjo6RCKRUCikKEqtVru1fYJaDx55r3OTyaRQKKRS6ZkzZ/z8P3irQI1GI5PJOBwOj8eTyWS7bCHBe059ff3Ro0fLysoQQjRN19TUIIQiIyNxS86bJDzm5s2b/o9zbC1ra2tpaWmZmZnl5eUkcrOS8D608BFChw4dOnTo0JvnjhAqLi6WSqUxMTEUReXl5blcLqfTGR4eHhYW1tDQgBCqqqoKDQ2laXqLqud9BPQJAQDY/fjQwl9dXf3ggw9gZ5MgAvQJAQDY5fjWwp+YmGCP5QA7H9h/CwCAXU4AWvjATgb23wIAAACCCfBvAQAAAMEE+LcAAACAYAL8WwAAAEAwAf4tAAAAIJgA/xYAAAAQTIB/CwAAAAgmwL8FAAAABBPg3wIAAACCCb/8W95k1O12+1dffXXkyBH/kwwMDHz88cdkmzU2CoVi7969L1688PNWAAAAwHuIX/4tbzLqNptt7969X3/9tf9JDAbDhx9+uO4GUXw+/6OPPmLvb+L7VgAAAMB7CPi3AAAAgGAC/FsAAABAMAHrtwAAAIBgAtZvAQAAAMGEv/4tl8vlLd7b1t3ekgSWy7rxDMO8k43DAQAAgHfFxv6t58+fh4eHS6VSkUj08uVLEs8wTEJCAkVRYrH42rVr/iTBvHjx4sCBA3V1dexIrVbL5/NpmlYoFDabjcRrNJrIyEiZTMblct020i4tLeXz+RKJ5OrVq57Fbmho2Ldvn+esev9JTEyUSCQBJwcAAADeBhv7tyiKwl//8fHx6OhoEl9VVaXVanE4IyPjwYMHGybBREdHa7XakpISEjM9PR0bG4vDvb297NVdtbW1uEdlt9t5PB6Jn5qaUiqVOJydnd3Y2MjOwm63R0REJCYmes6q9w3DMBqNpry8HB8qFIpNJfeBSqV68uTJVt0NAADgvWUD/9bq6qpMJiOHYWFhZFzu4sWLxCro9fq8vLwNkyCEenp60tPT29vb2XaLfehyuUQi0bqFEQgEJKzValtaWnDYZrPFxMSwr8zIyOjs7ExKStqU3Wpvbw8PD6+pqSEFVigULpervb395s2bU1NT7IuXl5ebmpo0Go3JZGLHDw4OGo1GhmFWV1fv37///PlzHL+0tJSYmBgTEzMzM+OZtdPpHBoagjFPAACADdnAvzU4OJiZmUkOT58+bTabcXhgYEAkEs3Pz09NTYWGhpIPtI8kDMPweDybzeZmt2w2W2ho6MDAgMViUalUd+7cYZfBYrHcuXNHpVIVFRWRyObm5uLiYpLjJ598Qk7Nzs7K5XKEkP92a3h4GI922u12drxEIhEIBPn5+Y2NjXK5XKPR4HiHw6FUKisrK9vb2xMSEiorK0mS69ev//3vf3/48OHJkyfLy8tpmmYPe05NTcnl8uTkZKvVys4oISFhz549ubm5/pQWAADgfWYD/1ZfX19+fj45TEpKIh4jl8slFApDQkKOHDny448/kr6CjyRlZWXYreVmtxBC+fn5+/btCwsLO3z48PLyMvvU0tKSRqMRiUS3bt0ikU6nMzQ0tKWlpa2t7YcffhAKheRUbGwsNqL+2C2GYVQqFUVRxLiy+fzzz3t7e8khRVFzc3Oel1EUxT5UKBRyudzNBLLp6+s7cODA3bt3SUxHR8eJEydgIBEAAGBDNvBvDQ4Opqenk0OlUrm0tITD165da25uxuGSkpKqqirfSZxO54EDBx48eKDX63NychISEkhH5PHjxwkJCTg8NDREHFduREVFsWd5rKysFBYWFhYWWq1WMoGiv7+fy+Xq9Xq9Xi8Wi9m2wRtjY2MURaWnp6+urrqd4nA47MO6ujrcF1xZWTlz5oxEIpHJZFFRUW6XKRSKtbU139n99NNP7H4YAAAA4Ccb+LesVqtUKiWHfD6fhCmKIn2sxcVFYmy8JXE6nZrfiI+Pl8lkxARev369u7ubfed1C3Pjxo117avJZCKCh9PT0ySXkJCQ69ev+3h4Nt3d3VwuV6PRsJ1M3333ndPpJIfXr1/v6upCCJ05c4Y9uZHtz0MIKRQKh8PhmYXZbD579qxSqZyfn/ezVAAAAIAbG6/fkkgkeKCvr6/vwoULJL6wsLCmpgaHs7OzGxoaNkxCcBsnNJlMZKSR3fcyGAzEUFksloiICM8+ysjIyMmTJxcWFjxz2ey8DIZhampqwsPDydjg/v37//3vf+OCzc7OhoeHYzMmlUrxMCDDMCUlJSEhIez7rGu3cnNzxWLx0NDQulmD5j0AAICfbLx+a3Z2ViqVisViuVzO9jwxDJOamkpRlEQicZtQ4C0JRqPR8Hi88PBw9qBffX29QCCQyWQqlYqM11mt1sTERIFAQFEURVFjY2PkepPJpFAopFLpmTNnPLNACF28eDEkJGRd4Xnf2O12PEXw4sWLsbGxeGFZVFSUXC4nzq0nT56IxWKFQiGRSCorKyMjI/FUlJGRkbi4uJCQEIqiZDJZYmIiua3RaPSRKWjeAwAA+AnoEwIAAADBBOgTAgAAAMEE7L8FAAAABBOw/xYAAAAQTLypf2sLldp96MdvViceAAAA2K0E7t8yGAw8Ho+m6cjIyPHxcfYptVrN5/P5fL6bKAbGU6ndbDZLpVKapnk8XlNTE4l3OByJiYlCoZCmaZFIxJa0WFhYwPMPPXNHv4kcrjsFP6iJiYmR/QYR/0UIGY3G48eP4/ioqKh1tT8AYKtYXFyMiopi61+/JXJyctRqdVpaGnsZpTfKysoOHjwIy/nfBwL3b3G5XKwKsbS0xJZZMhqN586dw2G5XD4xMcFOta5Su1KpxLYHCxiurKzg+BcvXnR2duLw2NgYe1K7SqXCd1heXo6IiHArW3Fx8Z07d3bfLiRuC5wJPT09N27c2ObCAO8zDodjC3dLWJfJycnq6mqEkMFgcNvwwRtKpdJT9QbYfQTo33K5XGxVC7ZS+5kzZ4jkeU9Pj9vmWOsqtbMNTHJy8rqLc202GztH9hc8NTWVvbTLYrFgO+ppt4Jddh3sFhAwi4uLRqNxaWlpYmJCo9Hcu3ePqJGNjo6SbQ0mJyeNRiN7TaTVaq2vr9dqtRMTE6Qrj+3WzMxMTU2NXq9/G/8pi8WCvx7l5eVuuy4ghPr7+ysrK7u6uthZY7vV399fXl5OVkz6eHAgSAncvxUbG3vv3r3V1dWKigr2iBzbuiwvL7P33/Km1F5SUnLlyhWr1frw4cPQ0FA3r9X4+PitW7ciIiLY0koCgYBcxuPxiDoiQig+Pn5wcBCtZ7eCXXY9LCxMJpPhtd4DAwMkvqen59tvv5VKpVhoEdx+gCeDg4M0TXO5XIVCcf/+/dLS0mPHjs3OziKEtFrt4cOH8WW3b98WiUTt7e34cG5uLiQkpK6urrW1VaVSESlOh8Pxl7/8haKotra23NzcABb4+8OjR4/UanVzc/PExEROTg5u0WIt7LS0tNbW1ry8PKFQSPpYSqUyPj4+MTGxubk5OTlZpVL5fnAgSAncv9Xb2/vZZ5/xeLzPP/98eHiYxLv1CdiH3pTa5+fn9+/fz+Vyv/zyS7boO2Z8fDw/Pz88PJz9pb59+/bp06f7+/vPnz+vVCp/+eUXHD8yMkL+Qp52K9hl1wcGBvDwvdVq5XK5RHLearWSn+DWrVsFBQXvrIjADkan00VGRpLDiYkJ0qxk/0+1Wi2xW52dnampqeQU2abc4XAcPnyY9HXe0pj86Ohodnb2lStXKioqiJxpZWUlu51qMpmIp02pVLIHeAoKCrAQto8HB4KRPa9fvzYajWzJJX+w2WwcDger8K2srHA4HPIGi8ViEl5ZWYmLi8NhH0rtUqkUDy0yDEPTtNsOjZjV1VW2qi9CqLe39+rVq48ePbp79y55jyMjI3U6Hc7l+++/3+xzBRH5+fmPHz9e9xRN09tcGCAo0Ol07L3iEMveeLNbDMMUFRXJ5XK5XH7hwgXSTXHzb3kbwX4TDAZDbW3tyspKRUVFZmYmUQ2Vy+VSqVTGguyErlQq2Q3ipaWlH3/8Efl8cCAYCdC/NTo6ym6FxcbGkskU586dI3Mxuru71Wo1DvtQamcPLdbW1up0unUzxWOMnojFYqKwfu/ePZLLP/7xj5GRkc0+WrCQkZHhOeiPEGIY5m18RIBdgE6nO3/+PDm0WCzkVfFmt169ekXix8bG2OOEb9tuYVpbWx88eIAQunz5Mm4op6SkPHv2bN2LlUoluzE3Ojp6+fJl5PPBgWAkQP+W0+nkcDjYVpnNZvaMvqdPn+JhZYZhBALBuj0et3HCmJiY0dFRhJDL5ZJKpaRN19DQQCY6mkym2NhYt/u4XK709PS8vLx1C+nZpApq2fXOzk7SrXz16hWHwyGTg1NTU0k9q9Xq2trad1NEYGej0+m++OKLoqIiq9U6NjYWHh5Omj5kY26z2Xzw4EFit2iaJuPqDocjLCyMhLfHbmm1WuxcUKvV+IMzOzvL4/HIzBGbzUZaukqlksPhYHeX3W4XCoV48MbHgwPBSOD+rcHBQZFIJJPJpFKp22T34uJioVAYERGxbs/JU6ndbDbjlUkCgYD8YRBC4+Pj0dHRAoGApmmVSsWe43Tt2jWapoVCIXu9F+Hhw4cymez777/H22URglp2nWGYgoICHo9HUZRbnY+Pj9M0LRAIxGJx8M46Ad42Op3uzp07NTU1UVFRly5dwvYAYzAYwsPDZTIZTdPFxcVisRibsRs3bsTHx1MUpVAoxGLxw4cPEUIulysuLu7YsWPYe1RdXX306NG3NDVjbW0tLS0tMzOTvWDx2bNnNE0rFAq8WURPTw9CSKPRHD9+vKenJzIyUiaTiUQiMrTo48GBYAT0CQHgfUGn03kbhN/dvLcPvlsBfUIAeC8wm81ZWVlZWVkGgyF4lzAGwHv74LsY2H8LAN4LhoaG8vPz8/Pzb9y44Y9s0q7hvX3wXQzsvwUAAAAEE2/q3wI9+O1nC+scAAAg6Ajcv7Uz9eB3tzK6jzovLS3l8/kSicRNEHKz7O4KBIKOTUnCv9vcQZB+29jz+vXr8+fPE9l1/9mZevC7W2HWW51PTU0plUoczs7O9lM8e112dwUCwUUAkvDvNncQpN8eAvRv7Vg9eN+f3aDWg/dR51qttqWlBYdtNltMTIw/d+vo6NBqtW61DXZrFzM3N2cymcbGxurr6+12+9DQUF1dHbsnMT4+fvPmzY6ODjIWPTc3ZzQajUYj/hw/e/bMaDRu26LdACTh0XoC9oFJwoMg/Y4lcP/WztSD962MHux68N7qvLm5ubi4GIcHBwc/+eQT3/cxm808Hq+oqKi1tTUpKenSpUvkFEjL72L0ev2nn35KUVR1dfX+/ftPnTpVXl6ekpKCz2ZmZqpUqqampsLCQi6Xi7/4nZ2dhw4dunTpEhaeKCsr++yzz9gibW+bzUrCrytgH7AkPAjS70wC92/tTD1438rowa4H763OnU5naGhoS0tLW1vbDz/8wB5CXJdTp06x6//69ettbW04DNLyuxsej4c7WKGhobijgBuajx49IgYMITQ+Pk5GngcHB7HKH0JoenqaxG8Pm5WE9yZgH5gkPAjS70wCXL+1Y/Xg3dhNyug+6hzHFBYWFhYWWq3WDbWuv/nmG7actlAoTE9PX/fK3VSBAGK1I92U4NPS0rBGqOeV+GI8tJWYmOh22VslAEl4bwL2AUjCgyD9jiVA/9aO1YNns8uU0X3UORuTybShUpxEIvHHybfLKhBA3u1WQUFBd3c3uYxhGPa/srGxsbS01GazvZOv7aYk4b0J2PuWhJ+fn6+pqenr63vD3EGQfnsI0L+1Y/XgfSujB7UevI86J4yMjJw8eXJhYcH3rVpaWhITE4nvamZmRq/X4zBIy+9uvNkt/EZZLBYcmZeXV1FRQVIxDMPn8wsLC1tbW7e3vAhtUhLem4C9b0n4rKysPXv2sEW9A8sdBOm3h8D9WztTD963MnpQ68Ej73VuMpkUCoVUKj1z5gy7lnzQ2NhIUZRcLhcIBHFxcaR9ANLyu5j6+vqjR4+WlZUhhGiarqmpQQhFRkbiltzIyAjWfacoqrS01C3tzZs3/eymbzn+S8IjLwL2aCNJ+EOHDh06dOgNcwdB+m0D9AkBANj9+JCEX11d/eCDD9jTlbczdyAAQJ8QAIBdjm9J+ImJibNnz76r3IEAgP23AADY5bxbSXgQpN9yYP8tAAAAIJgIXJ8QA3rw24+P2tiBoxCgUg9sCd6mAW/hRwDe1WAhcP/WztSDxzN5MAKBID8/f7PPtZPxVudzc3M0TUskEqlUmpCQsJ3/PYZhWlpa4uLixGKx51nfbwIQFOwEmfO2travv/66paWF7dFYW1uLjo6WSCRcLtefmWVb+67euXPn2rVrKSkpMDlw+wncv7Uz9eCxfjOmoaGBPXV1F+Ctzru7u8kvWFJSgqVltgez2VxSUvLq1SvPdZS+3wQgiHi3MufJyclYG7C4uHjfvn0kXq1W37t3DyG0trb2ww8/bNhc29p39eeff0YIOZ3Oa9eubepxgDcnQP/WjtWDZ6NQKBYXF9kxu1UPnk1HRwdRa/R9t3X14BFCVqv1/v371dXVz58/93//Lc9vge83AXiHuFyu9vZ2jUbz+PFj8hOPjo6SxbCTk5NGo5GsBVxX5nzbkEqlJPz06VMSFgqF5L+clpZGhCpMJpPRaMTNXyxgT9ZTY7bkXU1JSXE4HM+ePfNc62axWO7evVtbW+smnrtutQ8PDz979szhcDQ2Nmo0mnU/ZYAbga/f2pl68ASXy+X5Zd+tevCYvr6+srIyDodDBEC94UMP/unTp0Kh8NatW83NzUql8n/+53/8LJvnt8DHmwC8WyIjI4uKitrb27Oysvbu3YsjtVrt4cOHcfj27dsikYiIAKwrc75tJCYmZmVlPXv2zK3FyX7Bbt++jZdRI4TOnTv397//HX9h0tPTv/jiC7fG2Za8qzMzM2q1uqyszGw2l5WVEQfHo0eP+Hx+XV3dvXv3oqKi2ELh61Z7aWnpd999x+FwioqKmpqaYmNjs7KyNsz9PSdw/9bOEDFYqAAAIABJREFU1IMndHV1edqn3aoHj+np6UlNTRWLxW6tS0986MFHRkba7XZyyn/xb89vgY83AXiHOJ3OkydPkmYfUUxH///fSKvVsu3WujLn24bRaMzIyBCJRGxdU3ZpcT+GHP7yyy95eXljY2N8Pt+zGbcl7+rCwgJucOfn57OlwMPDw9nbaykUCty18lHtX331FfvvHB0d7TZjAHAjQP/WzteDP3v2LHvqxy7Atx48YWRkhIzUe8ObHvzq6qqnCKSfeP7Vvb0JwDuno6ODpuno6OiYmBi2DqwPu7WuzPk2wDAMe82TUCgko5cikYjE63Q6t8Z3cnLyl19+abVaPe/55u/qq1evioqK5ubmfv3112vXrhEZz1evXv35z39m/7mOHDlCxD+9Vbvbl+327dugC+qbAP1bO18PfsM9qIIOP/XgkfeKIngTmnO5XAH3ijwTensTgHfL8vIymRy4uLjI4/GIa8eH3VpX5nwbMBgMZFjS5XKRphtCKCIigrzGqamp/f39JNWTJ0+kUmlpaWlaWprnPTf7rv766681NTWeM1MsFgse06uvr8deDKfTyfbGsfFR7f/4xz/YjuTk5GT22BLgSYD+rR2rB08uZn/iCbtVD768vJzYMK1WW1hY6PtWPvTgT58+TcRAnU7nTz/95OeQhee3wJ83Adh+bt68yf4uq1QqsqUWTdP422o2mw8ePMi2W+vKnG8Do6OjFEVJpVKxWCwUCn/99VdyKjs7G7dxzWYzl8slNuzRo0cUReHBuvr6+osXL7q10jb1rrpcrv/8z//ct2+fZ1NvdnYWD04aDAbyVUlOTmYPJvX19eF/kI9q/9e//hUaGjo8PLy6uqrRaLZ5Z85gJHD/1s7Ug8c0NDSsu7vdbtWD7+joEIlEQqGQoii1Wu3PhElvevCrq6vx8fFyuTwuLk4qlTY2Nvq+z8LCQlRUlEwmO3r0qEwmi4mJYQ/u+34TgHeCXq8/d+4c/vUlEgnbLWQwGMLDw2UyGU3TxcXFYrHYZrP5kDnfTjyNjcPhOH/+vFgsjoiIIBtijYyMHDp0SCqVjoyMIIRSUlKOHDmC/d+BvasPHz7cs2cPe3MyNsXFxT///PNPP/1EWoEul0utVsvlcoqiBAJBSkoKbgr4qHaFQvH8+fOLFy/GxsbW1NQE6YTn7WTP69evjUYjtIUBANjJBOx5fUOSkpL+9a9/vdUsFArFW73/7gP0CQEACALelSJtUlKS59zdLWRwcJDD4fT19c3Nzb29XHYZsP8WAADAO6O8vByrxff19b3rsgQNsP8WAAAAEEzA/lsAAABAMAH+LQAAACCYAP8WAAAAEEyAfwsAAAAIJsC/BQAAAAQT4N8CAAAAggnwbwEAAADBBPi3AAAAgGDCL31CbzLqdrv9q6++OnLkiP9JBgYGPv744+TkZM8kCoVi7969nptmBbWIOwAAALC1+OXf8iajbrPZ9u7d+/XXX/ufxGAwfPjhh2wxeAKfz//oo4/Y+5v4vhUAAADwHgL+LQAAACCYAP8WAAAAEEzA+i0AAAAgmID1WwAAAEAw4a9/i+xC7RnvbVdpb0kCy2WztwIAAAB2JRv7t54/fx4eHi6VSkUiEXu6PMMwCQkJFEWJxeJr1675kwTz4sWLAwcO1NXVsSO1Wi2fz6dpWqFQ2Gw2Eq/RaCIjI2UyGZfLNRgMb/SsgdLZ2SmRSORyuVwuHxgYeCdlAAAAADAb+7coisJrqsbHx6Ojo0l8VVWVVqvF4YyMjAcPHmyYBBMdHa3VaktKSkjM9PR0bGwsDvf29rJXd9XW1uL+nN1u5/F4gT6mvzAMo9FoysvL2TEcDufN9whXqVRPnjx5w5sAAAAAG/i3VldXZTIZOQwLCyOjghcvXiRrrfR6fV5e3oZJEEI9PT3p6ent7e1su8U+dLlcIpFo3cIIBAISZhjGZDJVVlbevn3bbrezL1teXm5qatJoNCaTydeje9De3h4eHl5TU0MKPDs729fXd/LkSaPRaDQaZ2dn2QXo7e2trKzs7+93u8/4+PjNmzc7OjrYw5tLS0uJiYkxMTEzMzOeWTudzqGhIW8jrgAAAABhA//W4OBgZmYmOTx9+rTZbMbhgYEBkUg0Pz8/NTUVGhr6/PnzDZMwDMPj8Ww2m5vdstlsoaGhAwMDFotFpVLduXOHXQaLxXLnzh2VSlVUVEQib9++nZ6e3tLSUldXx+Vy19bWcLzD4VAqlZWVle3t7QkJCZWVlf7UwvDwMB7tdDOBv/76a1ZW1l//+tfs7Ozs7Oxff/2V5CKVSjMzM1taWi5fvqxSqYjJyczMVKlUTU1NhYWFXC6XPDtmampKLpcnJydbrVZ2fEJCwp49e3Jzc/0pLQAAwPvMBv6tvr6+/Px8cpiUlER0mFwul1AoDAkJOXLkyI8//kg+3D6SlJWVYbeWm91CCOXn5+/bty8sLOzw4cPLy8vsU0tLSxqNRiQS3bp1a91CqtVqo9G47imKorw/O0IIMQyjUqkoinIzMASHw8HuPmKuXr3a0dFBDrVaLR4yffToUUpKCokfHx9XKpWe9+zr6ztw4MDdu3dJTEdHx4kTJ2AgEQAAYEM20CccHBxMT08nh0qlcmlpCYevXbvW3NyMwyUlJVVVVb6TOJ3OAwcOPHjwQK/X5+TkJCQkkPkXjx8/TkhIwOGhoaF1v/UIoaioKFLO9vZ2Pp9PUVRUVNTf/va3vr4+HL+ysnLmzBmJRCKTyaKiojgczoZVMDY2RlFUenr66uqq59l17ZZbjMPhUCgUCKG0tLTR0VEfV5LsfvrpJ/b0EwAAAMBPNvBvWa1WqVRKDvl8PglTFEX6WIuLi8TYeEvidDo1vxEfHy+TyYgJvH79end3N/vO6xbmxo0beDxzenqaoigyNpifn0/s1pkzZ9jTDj3Nhje6u7u5XK5Go3FzMq1rt2iadjgc5HB+fv7s2bMIoYKCAvaDMAzDfhaz2Xz27FmlUjk/P+9nqQAAAAA3Nl6/JZFI8EBfX1/fhQsXSHxhYWFNTQ0OZ2dnNzQ0bJiE4DZOaDKZyEgju+9lMBhIwSwWS0REBO6j9PX1kZn3s7Oz7P6WVCrFPiqGYUpKSkJCQvyvC4ZhampqwsPDe3t7SeS6dqurq+vs2bN42sXa2hpFUc+ePUMImc3miIgIi8WCL8vLy6uoqMDh3NxcsVg8NDS0btageQ8AAOAnG6/fmp2dlUqlYrFYLpezPU8Mw6SmplIUJZFI3CYUeEuC0Wg0PB4vPDycPThZX18vEAhkMplKpSLjdVarNTExUSAQUBRFUdTY2BjJ+tKlS3K5nKbpuLi4goICPp8/PDyMEHry5IlYLFYoFBKJpLKyMjIykj1JxB/sdjuZiJibm0tR1NGjR2UymUwmY8/1b2pqkkgkOKOHDx+S+JGREYqiFAoFRVGlpaUk3psHDgOa9wAAAH4C+oQAAABAMAH6hAAAAEAwAftvAQAAAMEE7L8FAAAABBNv6t/yptTOMMxmVYt8iL6DHjwAAACACdy/ZTAYeDweTdORkZHj4+PsU2q1ms/n8/l8N1EMTENDw759+4iIBkLIbDZLpVKapnk8XlNTE4l3OByJiYlCoZCmaZFI5E3S4v0hJiZG9hts8V+j0Xj8+HEcHxUVBRUFvFUWFxejoqLY+tdviZycHLVanZaW5o+wdVlZ2cGDB2E5//tA4P4togq4tLQkFApJvNFoPHfuHA7L5fKJiQl2KrvdHhERkZiYSDR5EUJKpRJbPixguLKyguNfvHjR2dmJw2NjY2fOnNlsIXcZ3pZR9/T03LhxY5sLA7zPEI2Yt8fk5GR1dTVCyGAwNDY2+pNEqVSuq3oD7DIC9G+5XC62EgRbqf3MmTNE8rynp+fq1avshBkZGZ2dnUlJSWy7JZFISDg5OXndxbk2m42dozfRdx868Sj4ZdfBbgEBs7i4aDQal5aWJiYmNBrNvXv3iOLM6Ogo+R9NTk4ajUb2skur1VpfX6/VaicmJkhXHtutmZmZmpoavV7/Nv5TFosFfz3Ky8s993bo7++vrKzs6upiZ43tVn9/f3l5OVkx6ePBgSAlcP9WbGzsvXv3VldXKyoq2KIYbtaFvf/W7OysXC5HCLnZrZKSkitXrlit1ocPH4aGhrp5s8bHx2/duhUREUEEnHyIvnvTiccEu+x6WFiYTCbDa73ZO1j29PR8++23UqkUCy2COxDwZHBwkKZpLperUCju379fWlp67NgxvDWPVqs9fPgwvuz27dsikai9vR0fzs3NhYSE1NXVtba2qlQqIvjpcDj+8pe/UBTV1taWm5v7lsZCHj16pFarm5ubJyYmcnJycIsWa2GnpaW1trbm5eUJhULSx1IqlfHx8YmJic3NzcnJySqVyveDA0FK4P6t3t7ezz77jMfjff7551irAuPWJ2AfxsbG4u1O3OzW/Pz8/v37uVzul19+6Sn6Pj4+np+fHx4e7m2vYW96hp468cEuuz4wMICH761WK5fLJR1Kq9VKfoJbt24VFBS8syICOxidThcZGUkOJyYmSLOS/T/VarXEbnV2dqamppJTZJtyh8Nx+PBh0tdhD5lsIaOjo9nZ2VeuXKmoqCByppWVlUTFGyFkMpmIp02pVLIHeAoKCvCmSD4eHAhGAvRv2Ww2DoeDtWVXVlY4HA55g8ViMQmvrKzExcXhcH9/P5fL1ev1er1eLBazd/GQSqV4aJFhGJqmp6amPHNcXV0lEr0+RN+96cTvPvLz8x8/frzuKZqmt7kwQFCg0+ncdqQj9sab3WIYpqioSC6Xy+XyCxcukG6Km3/LfwFr/zEYDLW1tSsrKxUVFZmZmUQ1VC6XS6VSGQuyE7pSqWQ3iJeWln788Ufk88GBYCRA/9bo6Ci7FRYbG0smU5w7d47Mxeju7lar1Tg8PT1N9OBDQkKuX79OkrM7TLW1tTqdbt1M8Rgj8i767kMnfveRkZGx7obODMO8jY8IsAvQ6XTnz58nhxaLhbwq3uzWq1evSPzY2Bh7nPBt2y1Ma2sr1gW9fPkybiinpKRgGWtPlEoluzE3Ojp6+fJl5PPBgWAkQP+W0+nkcDjYVmERdHLq6dOneFiZYRiBQLDuzl5u44QxMTF42yqXyyWVSkmbrqGhgRTMZDLFxsbisDfRdx868Zigll3v7OwkwyOvXr3icDhkcnBqaiqpZ7VaXVtb+26KCOxsdDrdF198UVRUZLVax8bGwsPDSdOHpmk8BG02mw8ePEjsFk3TZFzd4XCEhYWR8PbYLa1Wi50LarUaf3BmZ2d5PB6ZOWKz2UhLV6lUcjgc7O6y2+1CoRAP3vh4cCAYCdy/NTg4KBKJZDKZ9P9r79yfmljy/u+v39qq59mt2qqtPb/sD7tVuz61Z2vP7rlfdvV4vDziWVQgIZDr5MZFDYpSoEcQUBS5i3INErkrKshN5HYUE7kE5aYiIBIugUCS6T9hvz90bdc8SWYIUSAJn9dPMz3TMz09M/3p7k/3u2Uyh8HuRUVFIpEoNDTUZcvp7NmzgYGBTEeuyWTCM5OEQiH5YRBCY2NjERERQqFQoVDExMSQL5VN9J1DJx7j07LrNE3n5+cLBAKKohzyfGxsTKFQCIVCiUTiu6NOgI2mvr7+zp07VVVVSqXy/Pnz2B5g9Ho9j8eTy+UKhaKoqEgikWAzduPGjbi4OLzEgUQiwUsf2O326OjoQ4cOYe9RZWVlQEDABg3NWF1dTUlJuXLlCnPC4osXLxQKhVqtxotF9PT0IIS0Wu2PP/7Y09MTFhYml8vFYjHpWuR4cMAXAX1CANgu1NfXs3XC+zfb9sH9FdAnBIBtgclkysjIyMjI0Ov1vjuF0QO27YP7MbD+FgBsC4aGhvLy8vLy8m7cuOGObJLfsG0f3I+B9bcAAAAAX+J9/VugB7/5fMA8BwAA8Dk89295oR58QkKCf08n5MjzkpKS8PBwqVTqIAi5XkBaHvAq1iUJv7V3B0H6TcNz/5Z36sFvtEb11sKW569evdJoNHg7KyvLTfFsl4BEL+A9eCAJv7V3B0H6zcFD/5bX6sGr1Wq73d7W1nbr1i1nvSif1oPnyHOdTtfc3Iy3LRZLZGSkO1drb2/X6XQOuQ12y4+Znp42Go2jo6N1dXUrKytDQ0O1tbXMlsTY2NitW7fa29tJX/T09LTBYDAYDLg4fvHihcFg2LRJux5IwiNXAvaeScKDIL3X4rl/yzv14KVSqVAozMvLa2xsVKlUWq2WeSlf14Nny/OmpqaioiK8PTg4+Ne//pX7OiaTSSAQFBYWtrS0nDt37vz58+QQSMv7MR0dHZ988glFUZWVlbt27Tp27FhZWVlSUhI+euXKlZiYmAcPHhQUFPD5fFzid3Z27tu37/z587gWWFpa+umnnzJF2jaa9UrCuxSw91gSHgTpvRPP/VveqQf/2WefkUny+ND09DTZ9XU9eLY8t9lsQUFBzc3Nra2tR44cYXYhuuTYsWPM/L9+/XprayveBml5/0YgEOAGVlBQEG4o4N/n8ePHxIAhhMbGxkjP8+DgIFb5QwhNTEyQ8M1hvZLwbAL2nknCgyC9d+Khf8tr9eCZ2wih2tpa/N34ARx5jkMKCgoKCgrMZvOag1N2797NlNMWiUSpqakuzwRpeT+D1CMdlOBTUlKwRqjzmfhk3LWVkJDgcNqG4oEkPJuAvQeS8CBI77V46N/yTj14hNDevXuZ/fXXr1/v6upa79N5Jxx5zsRoNK45gEUqlbrj5ANpef+DzW7l5+d3d3eT02iaZv6VjY2NJSUlFotlS0rbdUnCswnYc0vCz8zMVFVVuVw+AgTpvRAP/VveqQePENq1a9dPP/2EC+WpqSkej8c0Yz6tB8+R54Th4eGjR4/Ozs5yX6q5uTkhIYH4riYnJzs6OvA2SMv7N2x2C39RCwsLODA3N/fmzZskFk3T4eHhBQUFLS0tm5tehNYpCc8mYM8tCZ+RkbFjxw6mqLdndwdB+s3Bc/+WF+rBnz17NioqSqfThYeHK5VKlUrFdG4hH9eDR+x5bjQa1Wq1TCY7efIkySVuGhsbKYpSqVRCoTA6OprUD0Ba3o+pq6sLCAgoLS1FCCkUiqqqKoRQWFgYrskNDw9j3XeKokpKShzi3rp1y81m+gfHfUl4xCJgj9aShN+3b9++ffve8+4gSL9pgD4hAAD+D4ck/PLy8i9+8Qum62Ez7w54AOgTAgDg53BLwo+Pj586dWqr7g54AKy/BQCAn7O1kvAgSP/BgfW3AAAAAF/iff1boAe/+bDlht1u38JeCO9MFeA3sA0D9qBwgPLE1/Hcv+WFevAOnD59WiaTrfOxvBq2PJ+enlYoFFKpVCaTxcfHb7KdeP36NY/Hk8lkYrGYOe2Bpun4+HiKoiQSSXp6+mYmCfiAeIPMeWtr61dffdXc3MysYa+urkZEREilUj6f76ang6PUYmNrBekBl3ju3/JOPXgH/GxyH1ued3d3k/+5uLh4kyVCKIrCtRA8b4GEV1RU6HQ6vJ2WloYnbwK+yNbKnCcmJmJtwKKiou+++46EZ2Zm3r9/HyG0urp65MgRd6prbH8QG1srSA+w4aF/y2v14BFCY2NjWq22vb3dWe7BX/XgmbS3t1+7ds2dq7nUg0cImc3mhoaGysrK169fr9nGXV5eZmZySEgIyd6zZ8+St9zR0ZGbm7tmqoDNAa+ZoNVqnz59Sl7xyMgI+ZtevnxpMBjIXECXMuebBrPXpK+vj2yLRCLysaWkpBChCqPRaDAYcPUXC9jj+dRu/kFMtlaQHmDDc/+Wd+rB5+bmRkZGNjY25uTkSCQSsVjMvJS/6sFjent7S0tLg4ODiQAoGxx68H19fSKRqLq6uqmpSaPRfPzxx9yXGhwcxJO+McePHyfl4MDAgFgsnpmZefXqVVBQEMy19B7CwsIKCwvb2toyMjJ27tyJA3U63f79+/H27du3xWIxEQFwKXO+aSQkJGRkZLx48cLBPDCLmtu3b+Np1Aih2NjYb7/9Fpcwqampn3/+Oamccf9BLtlaQXrAJZ77t7xQD/7ly5fMpae6urq+/PJL5pn+qgeP6enpSU5OlkgkRK2HDQ49+LCwMKyhhVlT/Lu3tzcvL4/snjt3jngu7Xa7SCQKDAw8cODAiRMnfLSZ63/YbLajR4+S2iFRTEf/92/V6XRMu+VS5nzTMBgMaWlpYrGYqWvKTC1uPpLda9eu5ebmjo6OhoeHM6tx3H+QS7ZWkB5wiYf+Le/Ugy8pKSHLJ2Ic5OF9Gm49eMLw8DDxL7LBpge/vLxMRCDdZHBwkKklr9FoyL+dnp7e1NSEt4uLi5n/ObC1tLe3KxSKiIiIyMhIpg4sh91yKXO+CdA0zRwQIRKJSO8lszelvr7ewdmRmJj4xRdfmM1mEuLmH8RkawXpATY89G95px58fX39rVu3SLjVat27d++6nsubcVMPHjEyig02oTm73b7ekSxms5npfiB1C4QQRVHkLnNzc5u8bhPAxuLiIhkcODc3JxAIiEOaw265lDnfBPR6PemWtNvtxPAghEJDQ8kHlpyc3N/fT2I9e/ZMJpOVlJSkpKQwk83xB30oSXjPBOmBdeGhf8s79eBXVlYOHz6M1dBpmo6Li9uzZw/zvv6qB19WVkb+QJ1OV1BQwH0pDj3448ePk0qlzWa7ePHimsOFpVIp7hvs7e1l+gwKCgqIyyErK+vu3bvuPSiwsdy6dYvUJhFCMTExZEkthUKBTZrJZPrhhx+YdsulzPkmMDIyQlGUTCaTSCQikejhw4fkUFZWFq7jmkwmPp9PbNjjx48pisIDH+rq6s6ePYsPca+o8KEk4T0TpAfWhef+LS/Ug8dRpFIpRVFCobCmpkapVJJ+Z+S/evDt7e1isVgkElEUlZmZ6Y4niU0Pfnl5OS4uTqVSRUdHy2Qyd8b+Tk1N4WJFpVIx1ehpmk5OTqYoSiqV+u5YGP+jo6MjNjYWv32pVMp0C+n1eh6PJ5fLFQpFUVGRRCKxWCwcMuebiXPrxGq1nj59WiKRhIaGktbP8PDwvn37ZDLZ8PAwQigpKenAgQNkhC1HqfVBJOGRp4L0wLoAfUIAAHyA9Xpe1wVIwvsWoE8IAIAPsKFyFSAJ71vA+lsAAAAbC0jCf1hg/S0AAADAlwD/FgAAAOBLgH8LAAAA8CXAvwUAAAD4EuDfAgAAAHwJ8G8BAAAAvgT4twAAAABfAvxbAAAAgC8B/i0AAADAl3DLv8Umo76ysvLll18eOHDA/SgDAwO///3vmVq3BLVavXPnTrLq4JqXAgAAALYhbvm32GTULRbLzp07v/rqK/ej6PX6X//610wxeEJ4ePhHH33EXN+E+1IAAADANgT8WwAAAIAvAf4tAAAAwJeA+VsAAACALwHztwAAAABfwl3/lt1uZwtnWwaNLYpnd1nvpbYW51GRAAAAwAdhbf/W69eveTyeTCYTi8Vv374l4TRNx8fHUxQlkUjS09PdiYJ58+bN999/X1tbywzU6XTh4eEKhUKtVlssFhKu1WrDwsLkcjmfz1/XKtp379797rvvtsp+/OEPf9iS+wIAAPg9a/u3KIrCpf/Y2FhERAQJr6io0Ol0eDstLe3Ro0drRsFERETodLri4mISMjExERUVhbefPHnCnN1VU1OD23MrKysCgcDNp1pZWQkNDU1ISHAeVc8NTdNarbasrGxdsZypqalx88ycnJzbt2/D0t0AAABusoZ/a3l5WS6Xk92QkBBSwp49e5ZYhY6Ojtzc3DWjIIR6enpSU1Pb2tqYdou5a7fbxWKxy8QIhULmrtlsbmhoqKysfP36tclkYh5KS0vr7Ow8d+7cuuxWW1sbj8erqqqiaZqm6b6+vnfv3t25c2doaMhisdTV1b148YKcvLi4+ODBA61WazQamReZmpoyGAwGg4EZiK9mMplGRkZu3rz57NkzcshutxcWFgoEgt7eXpepmpycfPfunftPAQAA4N+s4d8aHBy8cuUK2T1+/DixEAMDA2KxeGZm5tWrV0FBQa9fv14zCk3TAoHAYrE42C2LxRIUFDQwMLCwsBATE3Pnzh1mGhYWFu7cuRMTE1NYWEgC+/r6RCJRdXV1U1OTRqP5+OOPyaGpqSmVSoUQct9uPX/+HPd2rqys4JCVlZUTJ078z//8z82bN8PCwo4ePVpdXc3j8ebn5xFCVqtVo9GUl5e3tbXFx8eXl5eTSz18+DArK+vbb79lXh9fbffu3XFxcU1NTSdOnCBNVYzZbE5MTFQqla9evWKGLy4u/r//9/9+85vfuPMUAAAA24E1/Fu9vb15eXlk99y5c8RjZLfbRSJRYGDggQMHTpw4QRpVHFFKS0uxW8vBbiGE8vLyvvvuu5CQkP379y8uLjIPzc/Pa7VasVhcXV1NAsPCwoiNQQhpNBqyHRUVhY2oO3aLpumYmBiKohxabDiROTk5CKGKigpsmXJycly2iiiKcghRq9XOV4uLiyM3lUgkzteZnJzk8XgpKSkkxG63R0ZGxsfHcz8FAADA9mEN/9bg4GBqairZ1Wg0uMGBEEpPT29qasLbxcXFFRUV3FFsNtv333//6NGjjo6O7Ozs+Ph4Mv7i6dOnpGgeGhpiGiEmSqUSj/JYXl4m/jAH+vv7+Xx+R0dHR0eHRCK5d+/emlkwOjpKUVRqaury8jIzvK2tTavVIoSqqqrq6+sRQnl5edhuLS0tnTx5UiqVyuVypVIZHBzscE2XdgtfDcPsSsXMz8/Hx8dHRUVNTk6umWYAAIBtyxr+LbPZLJPJyG54eDjZpiiKtLHm5uaIsWGLYrPZtP8hLi5OLpcTE3j9+vXu7m7mlV0m5saNG9i+2u1253IfMzExQe4SGBh4/fp1jodn0t3dzefztVoteSgOu3Xy5Enm4EbnxKzLblmt1tzcXKFQ2NfX52ZqAQAAti1rz9+SSqW4o6+3t/fMmTMkvKCgoKpcJ1cnAAAgAElEQVSqCm9nZWXdvXt3zSgEh35Co9FIehqZbS+9Xk8aggsLC6GhoaSJdvz48SdPnuBtm8128eLFsbExh7usd1wGTdNVVVU8Hg9fmcNuyWQy3EtJ03RxcXFgYKDDpdy3Wy0tLSEhIY2NjS6TxKG4DwAAsD1Ze/7W1NSUTCaTSCQqlYrpeaJpOjk5maIoqVSK/UBrRsFotVqBQMDj8ZhTu+rq6oRCoVwuj4mJIf11ZrM5ISFBKBRSFEVR1OjoKDl/eXk5Li5OpVJFR0fLZDLncv/s2bOBgYEuhee5WVlZMRqNFotFIpHw+fx37961tbUJhUKz2VxXVyeXy20227NnzyQSiVqtlkql5eXlYWFheCjKzMyMUqmUy+WHDh2Sy+VyuRx3n05MTISFhQUHB/f39yOESkpKAgIC8PCT/v5+m83GlhgOxX0AAIDtCegTAgAAAL4E6BMCAAAAvgSsvwUAAAD4ErD+FgAAAOBLvK9/i02pHUslfZBLcR/ahnhnbnzAVHnnAwJbDnwYAMZz/5ZerxcIBAqFIiwszGEMemZmZnh4eHh4uIMoBsZZqd1kMslkMoVCIRAIHjx4QMKtVmtCQoJIJFIoFGKx2FnSgg0scuhyCL5Pw5HnhNOnTzPnz3HzQVTzq6urcapEIhGR+yKs611wryTgr691S0hJSZHL5VgRzfvh/jA4uHDhQlBQkMtD7969S0tLI7sDAwMpKSmXL19ua2t73+Syc+XKldnZ2XVFyc7OzszMTElJ4Rh4vN3w3L/F5/NXV1cRQvPz8yKRiIQbDIbY2Fi8rVKpxsfHmbFcKrVrNBpcCmMBw6WlJRz+5s2bzs5OvD06Our+oPaioqI7d+5IpdL1PpSXw5bnDrBNynbAY9V8JmNjY9HR0Xh7dnbWWRN5Xe+CeyUBf32tW4jzREPvhPvDYGNoaCg2Npbtgzl27FhXVxfZvXr1Ku4iYhqzD053d/exY8fcP//ly5eVlZUIIb1ezzbLcxvioX/LbrczVS2YSu0nT54kSkU9PT2XL19mRnSp1M78sBITE4eGhpzvaLFYHHQ0BgcHy8vLHz58uLq6SqQ3EEILCwu4THf+Xm0229DQkI8uGsKR5wihsbExrVbb3t5O07SbdotNNZ9DaN+Zt2/fMuuPDrqLHO/CGe6VBNZ1KcBNXNqt/v7+8vLyrq4uhz9lcnKytrb21q1b62rxvD9sH4bJZDIYDLjKOz8/bzAYhoeHmRElEsnc3JzLD8ZkMv3zn/9khuTk5ExPT5vNZqZAKMZut7e3t+t0Ouei6dmzZ1qttqmpyWQy4fbQxMSEwWCw2+1PnjwpLS3t6elxyMZvvvnG/a6jhYUFXISWlZU5LD2B2N+U3W7v6OgoLy/v6+tbWFjACXv16pXBYMDv7s2bNwaDwXcl5Tz3b0VFRd2/f395efnmzZvMrhtm2bq4uMisHLEptRcXF1+6dMlsNv/8889BQUEOvdhjY2PV1dWhoaFMaaX4+PiUlJSWlpaSkpK9e/dmZGSQQ3FxcYODg8hVARcfH79jxw6HWdI+BFue5+bmRkZGNjY25uTkSCQStoVgmLC9Cw6h/TUZGhpy0I3keBfOcKwksN5LAW7iYLewzDT+s3Jzc0UiEREBeP78eWxs7J07d5qamsLDw5lr+mw0bB+GXq//y1/+kp+fj5P397//ndlUunfvHpZ5c/nBaLXan376iRmysrJy/fr17OzsmZmZ+/fvFxQU4HCTySQQCAoLC1taWs6dO3f+/HkSJSUlJTExsa2trays7C9/+Qten6ipqWn37t0RERFJSUnNzc2XLl2SSCTMMi0hIcGlA4WNx48fZ2ZmNjU1jY+PZ2dnY9vJ8aYWFxeFQmFhYWFra2taWtqf//xnnLDKyso//elPHR0dCKGGhoY//vGPvtuA89y/9eTJk08//VQgEHz22WfPnz8n4Q6VfeYum1L7zMzMrl27+Hz+F198wRR9x4yNjeXl5fF4vIGBARzS0NDAFB7U6/UlJSV4e3h4mHQnOn+v7e3thw8fZi5/5Vu4zPOXL19GRkaSc7q6ur788ss1L8X2LjiE9rkZGxsLDQ01m80khPtdOMOxksB6LwW4iYPdKi8vJwLZCCGj0chcxJXQ399/9erVDU/cf+D4MN6+fSsQCKanp5OSkpgpX11dDQ0NxdbC5QcTGxtLZOowFovl9u3bly5dSk9P1+v1pAVz7Ngx5g9y/fr11tZWvB0WFjY3N4e329vbSTNUo9EwF12qqKggBRTePXXqlPuPPzIykpWVdenSpZs3b5KOJY43FR8fz2yZZWdnk2Zod3e3Wq1eWFiQSCSkOPVFPPRvWSyW4OBgq9WKEFpaWgoODiavWSKRkO2lpSXi/OBQapfJZLjFStO0QqFwWIMKs7y8TCR6T506xdbQDgsLq6+vx3c5ePDgJndobChseV5SUtLc3Mw801mf3gG2d8EhtM+N0Wjk8/nM3lq0/nfBsfiAH7/WrcXBbqlUKplMJmdAFhkfGxvDcmsKhSIkJGRDnUAOcHwYCKHZ2dmdO3fiVhchJyfn4sWL5INx6D9ECMnl8vv37zNDCgoKjEbj+Pj45cuXc3NzsSMZIbR7925mhohEIpKYV69eRUVFRUREKBQK5hLnGo1menqa7JrNZmbN8t69e+6PnNLr9TU1NUtLSzdv3rxy5QoRZeV4U9xugvb29t/+9re468J38dC/NTIykpycTHajoqLIYIrY2FgyFqO7uzszMxNvcyi1M7sWa2pqsIitM2Ts04ULF5hahUzu379P7vKPf/zD+Xv1XdjyvL6+/tatWyTcarXu3buX+1Js74JDaJ8DvV7P5/OZLS3Met8Fx+IDfvxatxYHu5WUlMTWAcjj8ci628+fP99Mu8XxYdjt9piYmKqqqvDwcOYI26dPnzI/GNw5xiQpKYnZBiIkJyfb7faJiQnyU0ilUpcecZqmSYZYrdaUlBTSa6XRaJjjojs6OrKysshucXGxy1bszMxMVVWVyxX+WlpaHj16hBC6cOECrrlyvCnmSh0OmEymsLCwe/fuSaVSh2WbfAsP/Vs2my04OBiXmyaTKTQ0lBzq6+uLiYlBCNE0LRQKXVaNHfqmIiMjR0ZGEEJ2u10mk01NTeHwu3fvkoag0WgkTQG8YhapEA0NDTmM/sA49w+Ulpb+7ne/a2hoWNfDeglseb6ysnL48GE8OIKm6bi4uD179rh/WYd34Y7QPpPOzk6ZTEZ0+tk+JDc799ZcScD9SwHu4GC3pqamBAIB0cK2WCy4Eon/ZRIYERGxmXYLsXwYNpstKioKD1tfXFwUiURMhwUzrnNgY2Ojy3GJ6enpCKHV1VW8gRBqbm5OSEggDqrJyUlsBWdmZgIDA4mFuHPnDukb1Gg0P/74Y1tb28rKSkdHR1BQENNIKJVKplUjZGRk7Nixw+UofJ1Oh3v1MzMzcQnA9qbwydnZ2SRufX09NqgzMzOhoaG4RH3+/LlIJHIWPfcVPPdvDQ4OisViuVwuk8kcBrsXFRWJRKLQ0FCXLSdnpXaTyRQZGSmXy4VCIfO14TGvQqFQoVDExMQwc7mrqwsrsqtUqoSEBIduw59//lkulx88eJA5zhUhlJ+f/8tf/tJ3xRjZ8nxsbEwqlVIUJRQKa2pqlEqlywqdM87vYk2hfQcuX77M7K84fPiwwwls78Il3CsJrOtSAAcdHR34fZGFC4jT98WLFwqFQq1W43UYenp6cHhlZSVFUUqlUiaT1dbWHjlyBC9osDm4/DCSk5MDAgKwp02v14tEooMHDzI76GZnZ5VK5cGDB52bVjab7auvvsJtFyatra2XLl1KTEwktWeEUGNjI0VRKpVKKBRGR0fjon9xcTE6OhrniUKhSEhIIPOrNBrN7OxsRkaGUqnMzMxkGi2r1fr111+7nIm1b9++ffv2uXz81dXVlJSUK1eulJWVkUC2N4UQKioqkslkkZGRFEXl5uba7Xabzcbj8UJCQvCCUxUVFUFBQQqFgiW/vR3QJwQAYDty7dq1dY3rcx+NRsPWC1dSUnLt2jXn8OXl5V/84hfMIdMAB6BPCADAdsRms7G50t+HV69eCQSCzs5O7Ptw4N69ey4bW+Pj4+saZLjNgfW3AAAAPhitra15eXl5eXmb2Y+63YD1twAAAABf4n39W96pB2+3231UzMkd2HLDO5/agy8BAJxhGwa8HUTit8MzrgvP/VveqQdP03R8fDxFURKJhIxk9RvY8nx6elqhUEilUplMFh8f//52Yr3K61ar9cyZMwqFIiIi4uLFiySc+0sAfJGioqLvv//eeSTehtLa2vrVV181Nzcza9irq6sRERFSqZTP57vv6WD7VhFCnZ2dUqlUpVKpVCqmnARHlMLCQoqi1Gp1ZGQkcyzGxMSESqVSKpURERG1tbUe3329QvhmszkxMTEzM9Pl7DS/wXP/lnfqwVdUVOh0OrydlpaGJ+v5DWx53t3dTf7n4uLi9+9YX6/yem5urvOIee4vAfBd1Gr1ZtqtxMRErMtXVFT03XffkfDMzEysebG6unrkyBE3q2suv1WEEE3TwcHBLgdNsEUxGo1sdTu5XD4zM/P+d1+vEH5JSQmeyukw/t7P8NC/5bV68GfPniVX7ujoyM3NZUbxYz14Qnt7u8uBts5XY5O4Xpfyut1u7+vrE4vFbW1tBoPh2bNnpE+D+0sAtpDFxcUHDx5otVqmkN309LTRaLRYLA0NDdXV1Q4CKCaTqaKi4vbt28vLy5tst5hiGX19fWRbJBKRfzklJeXp06d422g0GgwGXP198eKFwWBYWFhAnN/q1NRUb2/v0aNHDQaDwWAgk7c4ooyMjOTm5l68eBFHIbPKFhcXDQZDYGAgDiejCj24O/cKCS5pa2traWmhafqnn35y6F3k+OXfvHmj0+nq6upMJhMuS+fm5gwGw/z8/Pj4uFarvX//PtF58AY89295px78wMCAWCyemZl59epVUFCQwzKG/qoHj+nt7S0tLQ0ODnbQCXSGQ+IarVN5fWlpKScnZ8+ePSkpKVlZWdnZ2aS5zPElAFuI1WrVaDTl5eVtbW3x8fHl5eU4vLOz85tvvuHxeJWVlTU1NYGBgcQ4dXZ2BgcH19XV4fmqhw4d2ky7lZCQkJGR8eLFC4dSm/mB3b59m+jkxsbGfvvtt7iESU1N/fzzz3FJzfGtPnz4MCMj4+uvv87KysrKynr48CEO54hSXl6uUqnEYjGOQuwTlsH98ssvcTjJXg/uzr1CAht1dXWZmZlGo7G3t/fy5cu4/sHxy7e0tEgkkgcPHty9ezcwMBCXpYODgwqFgs/nq9XqhoaGkpKSQ4cOMediby2e+7e8Uw/ebreLRKLAwMADBw6cOHHC4UP3Sz14Qk9PT3JyskQiwbVLDjgkrj1TXj916pRz5zvHlwB4D8zS/8iRI+Q95uXlYV0S3IVFDJXJZPrNb36zyf4tg8GQlpYmFouZPz7zi2pra9NqtWT32rVrubm5o6Oj4eHhDtU4l98qQshqtbJ9omxRGhoaiFfCAbZ/Z1135xDCZ4Om6a6ursuXL1+6dOnBgwfkNXH88klJSd3d3Xh7enqaaDnW19eHhYWRKOPj495T9fTQv+W1evDp6elNTU14u7i4mCn17+tw5DmT4eFh4lVig0Pi2jPldZd/I9uXAGwtS0tLJ0+elEqlcrlcqVQyVw9gFp1arRaLrr1+/TouLo55BT6fv2l2i6ZppteHqarHXGeOqPAREhMTv/jiC2e5Zx+yW9xC+C6pr69vb29fXFzMzMy8fPkyaSFx/PLLy8vnzp1Tq9UKheLq1atkGaP6+nrSWOR+qM3HQ/+W1+rBM7WQ5+bm3F8+yvvhyHMHSEaxwSZxjTxVXnf5N7J9CcDWcvLkSWaXO7O4dGm35ufnHSrae/fu3TS7pdfrsU43QshutzNbfqGhoeQzTk5O7u/vJ7GePXsmk8lKSkqcFy/2IbvFIYSPEBocHKyqqnJYrByTnZ1tMplWV1dJicHxyxNVe5qmW1paSHdLfX396dOnyWkLCwve02XioX/La/XgCwoKSDd3VlYWFpEk+KUePEKorKyM2DCdTkeWamWDTeLagffsJ3TnSwA2H5lMhuvUNE0XFxcHBgaSQy7tFkJIoVAQU3f37t1f/epXm2a3RkZGKIrCoroikYj4fhBCWVlZuI5rMpn4fD4plx8/fkzKh7q6urNnzzKLbB+yW4hzhYR//etf//3f/+2y5+nq1av477506RIO4fjl9+3bR1qlk5OTZImA+vr6zz//vLCw0Gw2j46O8ng85iiercVz/5Z36sHTNJ2cnExRlFQqdR5/4a968O3t7WKxWCQSURSVmZnpzoBJlxLXBPeV18fHx+Vy+b/+9S/c7+TQRcn9JQBbwrNnz/C/I5VKy8vLw8LCsPM/Pz8/ICAAdx+9ffuWz+dLJBJc+i8tLcXExEilUqlUeuHChfT0dKVSSZb63Ryci3Wr1Xr69GmJRBIaGkoWoxoeHt63b59MJsNdBUlJSQcOHMAjbDm+1ZycHIqiAgICcDcamT/DFoWm6ePHj4eGhoaEhMjlcoVCQXTom5qa8L+DL0UWN/Hg7oh9hQSr1fpf//Vfzq1JzNjY2IULF1JTU5n/L9svn5SUFBERIZfL1Wq1XC4nD1JfX3/nzp2qqiqlUnn+/HmHMW5bC+gTAgDgA3i2Ere/0tbW9tFHH23oDK36+nqvrW6CPiEAAD6AyxnB25aamhrmKucfHJPJlJGRkZGRodfrvXDCK6y/BQAAAPwfhoaGsKr9jRs3vLDGAOtvAQAAAL7E+/q3vFMPHgCAbQUUEdsKz/1bXqgHn5CQ4D0z4zYID9SsnWlsbAwODiaTEH/44QdyaHJyMjMz83//939djoz3IFWAvzI3N6dUKhMTE10e7evrk8vlhw8f3ugxX+tVTCdcuHAhKCjI5aF3796lpaWR3YGBgZSUlMuXLzNHO39wrly5giVxgTXx3L/lnXrwZPKBv+KBmrUzBoOBqa3JVHO5e/duV1dXSUnJun5RtlQB/o3VauX+43Q63YaW9Wj9iumYoaGh2NhYtmrusWPHmCPIr169inuPmMbsg9Pd3X3s2LGNu74/4aF/y2v14NVqtd1ub2tru3XrlrNelK/rwa9XT9odJiYmnCsEzDmnHqcKIWQ2mxsaGiorK1+/fu2OJCiw0XDofI+MjJCJpS9fvmRqnCOEzGZzXV2dTqcbHx8nrxLbrcnJyaqqqo6ODuc/a6PtFptiuslkMhgMuDY8Pz9vMBgclF8kEsnc3JxLu2Uymf75z38yQ3Jycqanp81ms/N8KQ6R9cnJyerq6rt37y4sLJAcY9Oqx3zzzTfwm7iD5/4t79SDl0qlQqEwLy+vsbFRpVIxpTaRj+vBe6An7Q7Z2dnOk4vdt1scqerr6xOJRNXV1U1NTRqN5uOPP3Y/VcAGwaHzrdPp9u/fj0+7ffs2rovg3enp6cDAwNra2paWlpiYGCJpaLVa//a3v1EU1drampOT41wB2mi7xaaYrtfr//KXv+Tn5yOEnj9//ve//53ZVLp37x7WmXNpt7Ra7U8//cQMWVlZuX79enZ29szMzP3794keDYfIuk6nO378+P379+vq6gQCAVG3YdOqxyQkJMAKq+7guX/LO/XgP/vssydPnpBDFEWR6d/I9/XgkUcqNdyIRCJnn7b7dosjVWFhYUSjEyHkT1qRPg2HzjfzE2KanM7OTqY2JlnA12q17t+/nzSznM3AB7FbNTU1of8Xck0OxfS3b98KBILp6emkpCSmvvbq6mpoaCj+5l3ardjYWKIVh7FYLLdv37506VJ6ejpzPhObyPq7d++USiUJX1lZYapjcGjVV1RUnDp1al2Zsz3x0L/ltXrwTHFrhFBtbe37L/7rVXxYuzU3N+fSJfD+dmt5eRkEDrwTDp1vNrtF03RhYSEe8nPmzBnSEe3g33L+Aj+I3Xr9+nXP/4V8bNyK6bOzszt37sStLkJOTs7FixfJigfOytFyuRwvo0woKCgwGo3j4+OXL1/Ozc0lPatsIusNDQ0Ols8BNq36e/fuMYV0ATY89G95rR783r17mWMTrl+/vqbCnm/xYe3WzZs3mRUIwvvbLbvd7j3q0QATDp1vNrtFJMMRQqOjo8x+wk2wWxxwKKbb7faYmJiqqqrw8HDmgOenT58yVzxwHjeblJRE+m+YJCcn2+32iYkJUnaxiax3dXXduHGDLc0cWvXFxcVs4zMBJh76t7xWD37Xrl0//fQT/pimpqZ4PB7TjPm0Hjzmw9otiqKYXXmED9JPePz4cdJna7PZLl686DBfAtgSOHS+FQqFxWJBCJlMph9++IGpB096161Wa0hICNneWruFWBTTbTZbVFQUvvXi4qJIJHJeZxWx9BM2Nja67IRIT09HCK2uruINxC6yvrq6GhISMjMzg8Pn5uZOnjyJCyVurXqlUsmcCASw4bl/ywv14M+ePRsVFaXT6cLDw5VKpUqlYjq3kI/rwXumJ81Ndna2Q4hWq5XL5cHBwQKBQC6Xr9nLypGq5eXluLg4lUoVHR0tk8lgoLyXwKHzrdfreTweFjgvKiqSSCTYjN24cSMuLo6iKLVaLZFIfv75Z4SQ3W6Pjo4+dOgQ/kgqKysDAgLIf3369Gm5XB4SEoI/JGb3zIfFpWJ6cnJyQEDA1atX8UOJRKKDBw8yS4PZ2VmlUnnw4EHnppXNZvvqq6+cF2ppbW29dOlSYmIic7wum8j669evcREUFRUVERGBawYcWvUIIavV+vXXX3uhqJIXAvqEALC98Gadby/h2rVrmz+ur6SkhNgwgBvQJwSAbYSX63x7CTabbfNN+71796Cx5Saw/hYAbCO8XOcbANwB1t8CAAAAfAnwbwEAAAC+BPi3AAAAAF8C/FsAAACALwH+LQAAAMCXAP8WAAAA4EuAfwsAAADwJcC/BQAAAPgS4N8CAAAAfAm3/FtsMuorKytffvnlgQMH3I8yMDDw+9//3qVWv1qt3rlzJ1n2bc1LAQAAANsQt/xbbDLqFotl586dX331lftR9Hr9r3/9a+f1vBFC4eHhH330EXN9E+5LAQAAANsQ8G8BAAAAvgT4twAAAABfAuZvAQAAAL4EzN8CAAAAfIn39W+9e/cOr+QN+C6Li4tzc3NbnQpHPEiVdz4IAAAfljX8W8+fP2/+D0NDQ84nCIXCtra2DU7k+zI7OyuXyy9duuTy6NLSklqtlkgk2dnZG52Szs5OqVSqUqlUKtXAwMBG345A0zRHV3BxcfG5c+c2LTEOsOWJB6na2gcBAGBzWMO/9eTJk7179+p0uvLy8pSUFJFItLS0xDzh0aNHU1NTm5LU92J5eVmj0XCc8Pbt240u8miaDg4O3pJFZk0m06lTp9iODg8P6/X6zUwPgSNPPEjVFj4IAACbxtr+LbVaTbafPn0aExODtxcXFw0Gg8FgWFxcdIhit9vb2tq0Wu3Tp09NJhMJt1qtPT09paWl7e3tNE0zo5jN5rq6Op1ONz4+zozCdimE0MTERFVV1YMHD4gpnZ6eNhqNo6OjdXV1KysrQ0NDtbW1uEzEdmtpaam2tvb27dvOvUnOduvly5cGg2F6ehohRNN0f3+/wWBYs1OUpuknT56Ul5f39/czw6empnp7e48ePYozzR1jv65nJ1E6OjrKy8v7+voWFhbws8/Ozra3t4vFYnzrwcFB5vl9fX0u0+PyQcxms8FgWF1d7enpKSsrc54kvi7Y8oQtVfj9WiyWhoaG6upqs9nszoMghGw229DQkMMnBwCAj7K2f4tptxBCMpkM//8jIyNZWVlSqbS5udkhSlhYWGFhYVtbW0ZGxs6dO0l4enr6tWvX2trarl+/zqz+T09PBwYG1tbWtrS0xMTEBAcHr3mpwsLC48ePNzY2VlRU8Pl8o9GIEOro6Pjkk08oiqqsrNy1a9exY8fKysqSkpIQQsvLy4cPHw4KCqqqqqqtrQ0ODnaomDvbrdra2q+//rqjowMhZLfb09PTv/nmG+6S2mq1ymSyK1euNDc3X7hwISYmhpSVDx8+zMjI+Prrr7OysrKysh4+fMhxHQ+eHSG0uLgoFAoLCwtbW1vT0tL+/Oc/P3v2DCGk1+svXry4Z88efOv8/HySqqWlpZycnIsXL8bFxbnzIOPj4/v37w8ODs7JyXnw4MHRo0eHh4fXfBA22PKELVWdnZ3ffPMNj8errKysqakJDAy0Wq3cUTDx8fE7duzIycnxOKkAAHgPa8/fcrBbMTExzMZKVVWVg92y2WxHjx612+14t7a21uVlKYoi252dncnJyWSXRGG71Pj4+LFjx8j5S0tL5GoCgQA3MoKCgnBRiw8tLy9/9NFH8/Pz+LTl5WUej8dMj8t+QpVKRRo66enpP//8s8tnIVy+fLm9vZ3s6nQ6nU5Hdq1Wq1wu574CwYNnj4+PJzYMIZSdnU2MCnc/oclkcijuOR7k3Llz5I0/f/78woULbj6RSzjyxDlVCKEjR468ffsWb+fl5XV1da0ZBSHU3t5++PBhbMUBAPB11p6/5WC3oqOjmX1lznYLIdTe3q5QKCIiIiIjI58+fUrCr127Fh4eTlGUUqn85JNPSDhN04WFhdgzf+bMGWZXj8tLVVRUHDhwQM7gq6++wuaKFIJSqRRv4JDl5WWhUMhM5LFjx5g9nC7tltFoPH/+PI4ukUjYsojgUARbrVZm7q3LbqH3eHZn1mu3OB7k3LlzpNH55s2b93QKrtduMU/WarUOY4LY7BYAAP7E+vxbVquVz+czjzrbrcXFRWLY5ubmBALB5OQkQqi6ujo3N5f0UDELoHfv3pHt0dFR0k/IdqnOzs78/HyXqeWwWwcPHnQ4k7RmEPu4DNzkyszM7OzsdHlHJgqFgvRcIYRmZmaY1mJddsuDZ6cois2Fs167xfEgYLcAANha1u7SbqsAABceSURBVOHfWlpaioyMbG1tZR51tlu3bt3KzMwkuzExMSMjIwihtLQ04lJ6/Pgx02GjUChIH47Vag0JCeG+lN1uDwsLGxsbw+E0TdfV1eFylsNu/epXv2pqasKBHR0dsbGxzGSz2a3BwcH4+Hh3GlsIoa6urlOnTmFzuLq6SlHUixcvyNF12S0Pnl2n0zGH8tfX15PuX4vFwuyYHR0dZd7LubjneBDP7BabqP/m2C1YUgAA/Ik1/Fs6ne7QoUOkS4pp3uLi4uRyOY/HEwgEcrkcD39A/zEJFEWpVCqpVKrVanH4/Py8QqFQq9UURSUlJSUkJERGRq6uriKEbty4ERcXR1EUnkdF3Ehsl8JXi4mJiYyMlEgkQqHw5s2bCKG6urqAgIDS0lKEkEKhqKqqQgiFhYVVVlYqFIrMzMxz585JJBKVSnX27Fl8a4RQUVGRXC6XSqWBgYFyuVytVjMHqiGEAgMD3RlGgXnw4IFUKlWr1VKplOkPy8nJoSgqICAA5+SjR4+4r7PeZyfPIpPJIiMjKYrKzc1lNijz8/MpipJKpRKJ5MaNGziwpKRELpfLZDL87CqVamFhgeNB2tra8Jl4HOOpU6cCAwOfP3++Zra4FPVnyxO2VOXn5wcEBKSmpiKE3r59y+fzJRIJfo8cD8J2dwAAfBTQJ1yD1dVVB8cYAAAAsIWAPiErL1++7O3tTU1NTU9PZ1beAQAAgC0E1t9ipbm5Oe8/jI+Pb3VyAAAAAIRg/S0AAADAtwD/FgAAAOBLgH8LAAAA8CXAvwUAAAD4EuDfAgAAAHwJ8G8BAAAAvgT4twAAAABfAvxbAAAAgC8B/i0AAADAlwD/FgAAAOBLgH8LAAAA8CXAvwUAAAD4EuDfAgAAAHwJ8G8BAAAAvgT4twAAAABfwl3/FnPFd4dwmqbXFcWDu7BB0zTb3beWN2/erOt8q9U6PT29QYkBAADwJ9b2b71+/ZrH48lkMrFY/PbtWxJO03R8fDxFURKJJD093Z0omDdv3nz//fe1tbXMQJ1OFx4erlAo1Gq1xWJxiHL37t3vvvvOwRiUlJSEh4dLpdLLly+v65k/FFar9cyZMwqFIiIi4uLFi8xDf/jDH9Z1qZcvX/7jH//4oKkDAADwT9b2b1EUhQ3G2NhYREQECa+oqNDpdHg7LS3t0aNHa0bBRERE6HS64uJiEjIxMREVFYW3nzx5kpiYyDx/ZWUlNDQ0ISHh5cuXJPDVq1cajQZvZ2VlNTY2uv/MHNA0rdVqy8rK3Dk5NzeX7b41NTXruu/i4mJDQwMzZGpqSqPROFt9AACAbc4a/q3l5WW5XE52Q0JCSL/c2bNniSHp6OjIzc1dMwpCqKenJzU1ta2tjWm3mLt2u10sFjPTkJaW1tnZee7cOabd0ul0zc3NeNtisURGRjKjDA4OlpeXP3z4cHV1dX5+fs1cIMng8XhVVVVr9j3a7fa+vj6xWNzW1mYwGJ49e0Z6OKempgwGg8FgYJ5P03RfX5/JZBoZGbl58+azZ8+YR0dGRgwGw8jIiMNdRkdHKYpKTU1dXl52ToPNZhsaGvLOblIAAICNYw3/1uDg4JUrV8ju8ePHTSYT3h4YGBCLxTMzM69evQoKCnr9+vWaUWiaFggEFovFwW5ZLJagoKCBgYGFhYWYmJg7d+6QQ1NTUyqVCiHkYLeampqKiorIHf/617+SQ/Hx8SkpKS0tLSUlJXv37s3IyFgzF54/f457O1dWVtY8GSG0tLSUk5OzZ8+elJSUrKys7OzspaUlfOjhw4dZWVnffvst8/yVlZUTJ07s3r07Li6uqanpxIkTpKmKECovL8/KygoODnZ5r66uLj6fX1ZW5mCi4uPjd+zYkZOT406CAQAA/IY1/Fu9vb15eXlk99y5c8TJZLfbRSJRYGDggQMHTpw4QUpVjiilpaXYreVgtxBCeXl53333XUhIyP79+xcXF0l4VFQUtogOdstmswUFBTU3N7e2th45ckQkEuHwhoaG69evk9P0en1JSQnH89M0HRMTQ1EUMa7uc+rUKbZ+PLVa7RDS1tYWFxdHbiqRSNaMwkxkZWXlrl27hoeHSWB7e/vhw4cdmm4AAAB+zxr+rcHBwdTUVLKr0WhIt1t6enpTUxPeLi4urqio4I5is9m+//77R48edXR0ZGdnx8fHk/EXT58+jY+Px9tDQ0PEcdXf38/n8zs6Ojo6OiQSyb1795hpW1paKigoKCgoMJvNUqkUB546dWq9Foi7O46D9dotrVZLdpldqWxRmHHd7MAEAADwe9bwb5nNZplMRnbDw8PJNkVRpBidm5sjxoYtis1m0/6HuLg4uVxOTOD169e7u7uZV8YbExMTJEpgYCCzIcXEaDSePHkSb1+4cGF0dNSdJ3egu7ubz+drtVr3bcMm2C3cgXn16tXV1VU3UwUAAODfrD1/SyqV4o6+3t7eM2fOkPCCgoKqqiq8nZWVdffu3TWjEBz6CY1GI+lpZLa9mDj0ExKGh4ePHj06OzuLd3HjiZTyQ0ND7o+Sp2m6qqqKx+M9efLEnfM31G4tLS1pNBqO5mNpaenvfvc7h1GIAAAAfs/a87empqZkMplEIlGpVEzPE03TycnJFEVJpVKH0QFsUTBarVYgEPB4PGahX1dXJxQK5XJ5TEyMc3/d2bNnAwMDSaMKIWQ0GtVqtUwmO3nypMMturq6JBKJWq1WqVQJCQnr7TZcWVkxGo3c54yPj8vl8n/9619SqVQul8fGxuLwmZkZpVIpl8sPHTokl8vlcjnuPp2YmAgLCwsODu7v70cIlZSUBAQE4OEnXV1d+EwSRa/XI4Tm5+fHxsY40pCfn//LX/4ShCUBANhugD4hAAAA4EuAPiEAAADgS8D6WwAAAIAvAetvuebNmzcRERFqJ6KiohYWFrY6dQAAANuX9/VvsSm4e6DUvgn68QAAAICv47l/S6/XCwQChUIRFhbmMPItMzMzPDw8PDzcQRQD4yzubjKZZDKZQqEQCAQPHjxwjnLhwoWgoCBmyOzsLB5/6Hx3PyYyMlL+H5jivwaD4ccff8ThSqXSA+0PAHCfubk5pVLpoH+9EWRnZ2dmZqakpNhstjVPLi0t/eGHH5xXkwD8D8/9W3w+H0+Tmp+fJzJLCCGDwUDGhatUqvHxcWYsl+LuGo0G2x4sYEi0/jBDQ0OxsbFEEQMTExODr7C4uBgaGrrexPsozrO+MD09PTdu3NjkxADbGavVyqHw8kF4+fJlZWUlQkiv17u54INGo1mv6g3gi3jo37Lb7UTVAiEkFArJ9smTJycnJ/F2T0+Pw7Rfl+LuTJuUmJg4NDTEjCKRSObm5hzsFrMET05OZmpkmM3mhoaGysrK169fO7Q8fF1DHewW4DFzc3MGg2F+fn58fFyr1d6/f59Mzx8ZGSFzFl++fGkwGJhzIs1mc11dnU6nGx8fJz8UtluTk5NVVVUdHR0b8U8tLCzg0qOsrMx5SmV/f395eXlXVxfz1thu9ff3l5WVkTUZOB4c8FE8929FRUXdv39/eXn55s2bTFEMpj1bXFxkrr/FJu5eXFx86dIls9n8888/BwUFMb1W9+7dw/JODnZLKBSS0wQCAVFH7OvrE4lE1dXVTU1NGo3m448/ZsbydQ31kJAQuVyO53oPDAyQ8J6enj179shkMiy0CG4/wJnBwUGFQsHn89VqdUNDQ0lJyaFDh6amphBCOp1u//79+LTbt2/jBXrw7vT0dGBgYG1tbUtLS0xMDFm1wGq1/u1vf6MoqrW1NScnh6kJ8AF5/PhxZmZmU1PT+Ph4dnY2rtFiLWy85kNubq5IJCJtLI1GExcXl5CQ0NTUlJiYGBMTw/3ggI/iuX/ryZMnn376qUAg+Oyzz54/f07CHdoEzF02cfeZmZldu3bx+fwvvviiurqahK+uroaGhuJS2MFu3b59+/jx4/39/adPn9ZoNNeuXcPhYWFhzLVIiGoixtc11AcGBnD3vdls5vP55EnNZjN5BdXV1fn5+VuWRMCLqa+vDwsLI7vj4+OkWsn8T3U6HbFbnZ2dycnJ5BBZptxqte7fv5+0dRx+zw/FyMhIVlbWpUuXbt68SeRMy8vLST0VIWQ0GomnTaPRMDt48vPzsSoNx4MDvoiH/i2LxRIcHGy1WhFCS0tLwcHB5AuWSCRke2lpKTo6Gm9ziLvLZDLctUjTtEKhePXqFQ7Pycm5ePEijnLw4EHmKh4IoSdPnly+fPnx48f37t3D3/Hy8jJZN9nvycvLe/r0qctDCoVikxMD+AT19fXl5eXMEGJv2OwWTdOFhYUqlUqlUp05c4Y0Uxz8W2w92O+DXq+vqalZWlq6efPmlStXiGqoSqWSyWRyBgKBAB/SaDTMCvH8/PyJEycQ54MDvoiH/q2RkRFmLSwqKooMpoiNjSVjMbq7uzMzM/E2h7g7s2uxpqamvr4ebz99+pRE+cc//tHR0eEyMRKJZGZmBiFkt9s34v/xTtLS0lzqKNI0vX0yAVgX9fX1p0+fJrsLCwvkU2GzW+/evSPho6OjzH7CjbZbmJaWlkePHiGELly4gCvKSUlJL168cHmyRqNhVuZGRkYuXLiAOB8c8EU89G/ZbLbg4GBsq0wmE3NEX19fH+5WpmlaKBS6VEx36CeMjIzEq9Tb7XaZTOay69ll/chut6empubm5pKQ48ePk3qZzWa7ePEic5S8T2uod3Z2ku6Rd+/eBQcHk8HBycnJJJ8zMzNramq2JomAd1NfX//5558XFhaazebR0VEej0eqPgqFAndBm0ymH374gdgthUJB+tWtVmtISAjZ3hy7pdPpsHMhMzMTFzhTU1MCgYCMHLFYLKSmq9FogoODsbtrZWVFJBLhzhuOBwd8Ec/9W4ODg2KxWC6Xy2Qyh8HuRUVFIpEoNDSUfE9MnMXdTSYTnpkkFArJD0OYnZ1VKpUHDx5krlycnp6uUChEIpHDfK/l5eW4uDiVShUdHS2TyRyGz/q0hjpN0/n5+QKBgKIohzwfGxtTKBRCoVAikfjuqBNgo6mvr79z505VVZVSqTx//jy2Bxi9Xs/j8eRyuUKhKCoqkkgk2IzduHEjLi6Ooii1Wi2RSH7++WeEkN1uj46OPnToEPYeVVZWBgQEbNDQjNXV1ZSUlCtXrjAnLL548UKhUKjVaqFQSFFUT08PQkir1f744489PT1hYWFyuVwsFpMqLMeDA74I6BMCwHahvr7eZVXS79m2D+6vgD4hAGwLTCZTRkZGRkaGXq/33SmMHrBtH9yPgfW3AGBbMDQ0lJeXl5eXd+PGDXdkk/yGbfvgfgysvwUAAAD4Eu/r3wI9+M3nA+Y5AACAz+G5f8v79eBPnz4tk8nW+1zeDEeel5SUhIeHS6VSB0HI9QLS8oBXsS5J+K29OwjSbxqe+7d8Qg/ez2YXsuX5q1eviKJVVlaWm+LZLgGJXsB78EASfmvvDoL0m4OH/i1v1oMfGxvTarXt7e3OyhE+rQfPkec6na65uRlvWyyWyMhId67W3t6u0+kcchvslh8zPT1tNBpHR0fr6upWVlaGhoZqa2uZLYmxsbFbt261t7eTvujp6WmDwWAwGHBx/OLFC4PBsGmTdj2QhEeuBOw9k4QHQXqvxXP/lnfqwefm5kZGRjY2Nubk5EgkErFYzIzl63rwbHne1NRUVFSEtwcHB//6179yX8dkMgkEgsLCwpaWlnPnzp0/f54cAml5P6ajo+OTTz6hKKqysnLXrl3Hjh0rKytLSkrCR69cuRITE/PgwYOCggI+n49L/M7Ozn379p0/fx4LT5SWln766adMkbaNZr2S8C4F7D2WhAdBeu/Ec/+WF+rBv3z5ktnU6Orq+vLLL5mxfF0Pni3PbTZbUFBQc3Nza2vrkSNHmF2ILjl27Bgz/69fv97a2oq3QVrevxEIBLiBFRQUhBsKuKL5+PFjYsAQQmNjY6TneXBwEKv8IYQmJiYc1ljYaNYrCc8mYO+ZJDwI0nsnHvq3vFMPvqSkhHSXYYgMqB/Akec4pKCgoKCgwGw2r6l1vXv3bqactkgkSk1NdXkmSMv7GaQe6aAEn5KSgjVCnc/EJ+OurYSEBIfTNhQPJOHZBOw9kIQHQXqvxUP/lnfqwdfX19+6dYuEW63WvXv3rvfRvBaOPGdiNBrXVIqTSqXuOPlAWt7/YLNb+fn53d3d5DSappl/ZWNjY0lJicVi2ZLSdl2S8GwC9tyS8DMzM1VVVb29ve95dxCk3xw89G95px78ysrK4cOHZ2dn8d3j4uL27NnDPN+n9eA58pwwPDx89OhRnAMcNDc3JyQkEN/V5OQkqROAtLx/w2a38Be1sLCAA3Nzc2/evEli0TQdHh5eUFDQ0tKyuelFaJ2S8GwC9tyS8BkZGTt27HAW9V7v3UGQfnPw3L/lnXrwY2NjUqmUoiihUFhTU6NUKknXM/JxPXjEnudGo1GtVstkspMnT5LfiZvGxkaKolQqlVAojI6OJh3FIC3vx9TV1QUEBJSWliKEFApFVVUVQigsLAzX5IaHh7HuO0VRzH8Nc+vWLTeb6R8c9yXhEYuAPVpLEn7fvn379u17z7uDIP2mAfqEAAD4PxyS8MvLy7/4xS/0ev2W3B3wANAnBADAz+GWhB8fHz916tRW3R3wAFh/CwAAP2drJeFBkP6DA+tvAQAAAL7E+/q3QA/ee7Db7dALAQCA3+O5f8ub9eA7OzulUimeezgwMODB03kneNQlhjm6aXp6WqFQSKVSmUwWHx8P1gvYUObm5hxG6m4QIMcOuMRz/5bX6sHTNB0cHOyX/chscxW7u7tJi7m4uBhLywDAxmG1WtVq9YbeAuTYATY89G95rR781NRUb2/v0aNHsYi1wxRmn9aDR+4ty9Le3o7VGgGACYcq+cjICJkG+/LlS4PBwJwF6Cyvjv5jtyYnJ6uqqjo6Ojbin/pQcuwIoVevXhkMBjyh/s2bNwaDgZRRgC/iuX/LO/XgHz58mJGR8fXXX2dlZWVlZT18+JAZy9f14ENCQuRyOUVRUqnUuf+zt7e3tLQ0ODiYCIACAIFDlVyn0+3fvx+fdvv2bbFYTKb/u5RXRwhZrda//e1vFEW1trbm5OSsKS3mGR9Ejh0hVFlZ+ac//QmLwjQ0NPzxj3/c/NW8gA+I5/4tL9SDx1itVrZ2ia/rwQ8MDODue7PZzOfzV1ZWmEd7enqSk5MlEglR6wEAJhyq5MxfRqfTEbvFJq9utVr3799P2jobpFv4oeTYEULd3d1qtXphYUEikfiTz3t74qF/yzv14DEcdsufyMvLYyp4EoaHh4l/EQCYcKiSs9ktNnl1B//WRvxxH1COHdPe3v7b3/52cHDwgycV2GQ89G95px48ZpvYrbS0NDZpTtwZCwAOcKiSs9ktNnn1TbBbmA8ix44QMplMYWFh9+7dk0qlMHbD1/HQv+WdevAYDrvl03rwnZ2dpFn57t075pjJsrIyUm/Q6XQFBQVbk0TAu+FQJVcoFLgL2mQy/fDDD8Ruscmrb5rd+iBy7DMzM6GhobiUe/78uUgkclN+GvBOPPdveacefE5ODkVRAQEBuAMB19QIPq0HT9N0fn6+QCCgKMohz9vb28VisUgkoigqMzPTdwdMAhsKhyq5Xq/n8XhyuVyhUBQVFUkkEmzGXMqr2+326OjoQ4cOYe9RZWVlQEDABg3NeH85dpvNxuPxQkJC7t69ixCqqKgICgqCBVF9GtAnBIDtAqiSA/4B6BMCwLYAVMkBvwHW3wKAbQGokgN+A6y/BQAAAPgS4N8CAAAAfAnwbwEAAAC+BPi3AAAAAF8C/FsAAACALwH+LQAAAMCX2PHvf//7888/j4mJKQcAAAAAr2fHv//97507d+4AAAAAAJ/g3//+9969e3fv3n0EAAAAALye/w+u6Df6UAFAMwAAAABJRU5ErkJggg==” alt=”” />

  crt1.o中的未定义符号main在main.o中定义了,所以链接在一起就没有问题了。crt1.o还有一个未定义符号_libc_start_main在其他几个目标文件中也没有定义,所以在可执行文件main中仍然是个未定义符号。这个符号是在libc中定义的,libc并不像其他目标文件一样链接到可执行文件main中,而是在运行时做动态链接:

    1.操作系统在加载执行main这个程序时,首先查看它有没有需要动态链接的未定义符号。

    2. 如果需要做动态链接,就查看这个程序制定了哪些共享库(我们用-lc指定了libc)以及用什么动态链接器来做动态链接(我们用 -dynamic-linker /lib/ld-linux.so.2指定了动态链接器)。

    3. 动态链接器在共享库中查找这些符号的定义,完成链接过程。

  了解了这些以后我们来看_start的反汇编:

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

  首先将一系列参数压栈,然后调用libc的库函数__libc_start_main做初始化工作,其中最后一个压栈的参数push $0x80483c4是main函数的地址,__libc_start_main在完成初始化工作之后会调用main函数。由于__libc_start_main需要动态链接,所以这个库函数的指令可以在可执行文件main的反汇编中肯定是找不到的,然而我们找到了这个:

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

  一开始看到这以为是libc被链接进去了,其实不是。这三条指令位于.plt段不是.text段,.plt段协助完成动态链接的过程。

  main函数的原型是int main(int argc, char *argv[]),也就是说启动例程会传两个参数给main函数。

  由于main函数是被启动例程调用的,所以从main函数return时仍返回到启动例程中,main函数的返回值被启动例程得到,如果将启动例程表示成等价的C代码(实际上启动例程一般是直接用汇编写的),则它调用main函数的形式是:

exit(main(argc, argv));

  也就是说启动例程得到main函数的返回值后,会立刻用它做参数调用exit函数。exit也是lib中的函数,它首先做一些清理工作,然后调用_exit系统调用终止进程,main函数的返回值最终被传给_exit系统调用,成为进程的退出状态。我们也可以在main函数中直接调用exit函数终止进程而不返回到启动例程。

  注意,退出状态只有8位,而且被Shell解释成无符号数,如果将上面的代码改为exit(-1);或return -1;则echo $?会输出255。

  使用_exit函数需要包含头文件unistd.h。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,955
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,479
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,291
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,108
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,740
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,774