必威体育Betway必威体育官网
当前位置:首页 > IT技术

进程概述和内存分配

时间:2019-07-16 19:10:00来源:IT技术作者:seo实验室小编阅读:72次「手机版」
 

sqeea

http://blog.csdn.net/zhangyifei216/article/details/51423580#rd

进程

一个进程的内存布局是什么样的?

每个进程所所分配的内存由很多部分组成,通常我们称之为段,一般会有如下段:

  • 文本段 包含了进程执行的程序机器语言指令,文本段具有只读属性,以防止进程通过错误指针意外修改自身的指令。
  • 初始化数据段包含了显示初始化的全局变量静态变量,当程序加载到内存时,从可执行文件中读取这些变量的值
  • 未初始化数据段包含了未进行显式初始化的全局变量和静态变量,程序启动之前,系统将本段内所有的内存初始化为0。
  • 栈段是一个动态增长和收缩的段,由栈帧组成,系统会为每个当前调用的函数分配一个栈帧,栈帧中存储了函数的具备变量,实参,和返回值。
  • 堆段是可在运行时动态进程内存分配的一块区域,堆顶端称作program break

注: 为什么要区分初始化数据段,和未初始化数据段呢?,未初始化数据段简称为BSS段,有何含义BSS全称为Block Started by symbol,其主要原因在于程序在磁盘上存储时,没有必要为未经初始化的变量分配存储空间,相反,可执行文件只需要记录未初始化数据段的位置和所需大小即可。直到运行时才分配内存空间。通过size命令可以显示可执行文件的文本段,初始化数据段,未初始化数据段的段大小信息。

如何知道进程的文本段,初始化数据段和非初始化数据段的结束位置?

大多数UNIX实现中C语言编程环境提供了三个全局符号:etext,edata,end,可在程序内使用这些符号获取文本段,初始化数据段,未初始化数据段结尾处下一字节的地址。代码如下:

<img src="data:image/png;base64,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" alt="" />

如何获取虚拟内存的页面大小?

<img src="data:image/png;base64,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" alt="" />

如何读取任一进程的命令行参数和程序名?

通过读取proc/PID/cmdline可以得到任一进程的命令行参数信息,如果想获取程序本身的命令行参数,可以使用proc/self/cmdline来读取,对于如何获取进程的程序名有如下两种方法:

  • 读取/proc/self/exe的符号链接内容,这个文件会通过符号链接到真正的可执行文件路径,是绝对路径,通过readlink可以读取其中链接的绝对路径名称
<img src="data:image/png;base64,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" alt="" />
<img src="data:image/png;base64,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OtgFAQIECBAgQIAAAQIXCghuLgQ0nAABAgQIECBAgACBMQQENze4Dk9Pf1911R8/fpy83tNff+3ix4sAAQIECBAgQIDAVgS+7ff7/fv7++7z8/Ome355efla//X19Stf67OytmddpG9vb7vn5+dadVf5CIo+Pn6ufqYIaj7++effdWp+9YUtQIAAAQIECBAgQOACge8XjF1saAQwNWBpy7VtsUUfeKKpJzm/fv3692lNBjZBFHkBzgO/WRydAAECBAgQILAhgSGCmw15XbTV+nG0+gQm66Ou5nOxrIty5uv47NemNYiJwCVfNZ91p6Yx9xLznLqu/gQIECBAgAABAgSmBIYIbg49makfTTvUd+qgI9RnQJIBSu4pg5qor30yn2ltz7FzaQYfNciZ639KW859yhh9CRAgQIAAAQIECKwpMERwUw/YfiQt2mpA02uv47eczyBm7TNMBTsClrXlzU+AAAECBAgQILCmwFDBTS9wqYHNmhCPNLcg5pGutrMSIECAAAECBB5HYJivgu4FNnEZot7regL5BQK5oi8TSAkpAQIECBAgQIDA6AJDBDdtYHOvAU38zkz+vk2bjzdKbavlfBPFx9bquKyfSuPjZ/kRtJqf6p/1GeDMBTY5b46REiBAgAABAgQIELi1wBB/56YXzNSPo9X2Wt/i3fvfuWnPe8tyBDc+3nbLK2BtAgQIECBAgACBVmCI4Kbd1Lllwc25cqeNE9ic5qU3AQIECBAgQIDAdQSG+FjadY5qlaUEPLFZStI8BAgQIECAAAECSwoIbpbUNBcBAgQIECBAgAABAjcTENzcjN7CBAgQIECAAAECBAgsKSC4WVLTXAQIECBAgAABAgQI3ExAcHMzegsTIECAAAECBAgQILCkgOBmSU1zESBAgAABAgQIECBwMwHBzc3oLUyAAAECBAgQIECAwJICgpslNc1F4EYC8beH2tfT30//VmXatmf5UHv2u0b6aHvJ82Z6DeNHW6P3z8ajGTgvAQIEHklAcPNIV9tZ71Kg90dV42b54+fHLtOpgx9qnxq3Rv2j7SXPm+kapubc7eLvcglwvBMIECDwOALfH+eo45z06env3cfHz3E2dIWd1JuLe/gjoHmePEuWgzLrWtboM9XW6zs3V9u/lvNmOdPadu/5OHO+IrjrvY7p0xu3ZF1em0yPmTvfY8e+h3pz5hzRdsk8vblHqHv666/dxz//jLAVeyBAgACBGwkM8+Tm5eVllz+tRdZn2rZvrXxuYBNB0TVf9Ubo0nXjRuqebqbasxxzvnbMnOmxfXsBU97UZzq3zr21xZnnzp3BxFyfa5jk+pkes+ax74mpufK9cuk8U/MvWX/q//dEUBM/U68486lzTs2lngABAgTGFhjiyU0ELa+vr19StVzz0SHKXo8hMHUzsoWbsy1cobzRH2Gvt9jLVGBxi71c+xrc2z9D+bRmLsC5trH1CBAgQOA2AkMEN1NHbwOb6FeDoKlxo9bXJy/16U3WR13N5zmyLsqZr+OzX01rYFD/q2W9qWn75Phan/k6R/TrlaM++2efnPOctO71lPHtHrJc58u63j6PbTt2T1PzZX21rHvM+bNfb6/Z59I0bujbV97817aoy3K2x7isi3ytb9t67VHXe9U5o73OW9tqfW+eqKv9M3/MuJwvx9R9ZF3Mk/na3q57ynq5bi/tvR+yLt8/tZz5mCvz2a83f1uXY7K+jq1tWZ91vXJtq/mcO+uinPmYJ/PZL9NcI8vnpjH/UnOduwfjCBAgQGAZgSGCm0MBS31ac6jvMizrzJIBSQYouUoGNVFf+2Q+09qeY6fS/Bd1/Eu79y/utq6W69jMxzqRb/vVcs1H/7Y8tdel63PPsX5vD21dLdd8e4Ze2zF7r/up/dOzzlvz2Tf75TxZf0kaN+P1Zjtv0Gtd9sm6KGddXbutq+WajzFRbl9tn+yX62Y5x7X923L2q2nOdahvr72ty3LMGfl4ZT7Xibrsl/toy1l/alrfB/l+yfdIzlXL2T/7Zp9j0nZMlPPVa4u16trRt5YzX8fWfLTHq9blHP82rPQ/ue5K05uWAAECBK4oMERwU8/bPq05VK5jt57PIGbpc0z9iztuIE595c1JTXOOXOeceXOOmk7Nk+vUvlP5qb6H5p5qn1rnkvqpPeacsZdDfbLv2mm9eT9nrWPHZ7AQa0S+HZdBxTl7OGfM1HrtPtu5p8a1/bZSXup9uNQ8W3GzTwIECBC4nsBQwU0byATDlp/UXO8ynrfSGjcY9Ub80gBhjf2l1NzcS54h1zs3vdSwt+5STxB6c59aN7eXDGh6fbLt1PXm+vfWyf7nrnfuuFxXSoAAAQIECJwmMNS3pQlkTrt4S/Ze4ia6BgVL7m3tuerZRztDBGHxU/dYPebaar9R8hFAHPOq/SJAqOV2/Fxb23eJcl0v8rG/Q3uMdeu4uX3EtZ663nPjzm07Zb1r7uvc8/TGxb7n/oNGb4w6AgQIENimwLf9fr9/f3/ffX5+3uwE7RObLGdaN9ary/a3t7fd8/NzFodL29+1iQ3GR9Fqfa9cD5J9D32ErXcT0v7LvfZp23LN7NO2T90sZP8cH2mMnaqv/ZbKH7NW7dM7W7uX7FPHZZ9D5ztmzNQcsUZty33k2pHG/L362qfm84a81kW+vfnOpw5tffTNtpyj9jm1re0/t5dD69V9ZN+cv23L+uwX7W1dbct89qnzRV2Wsz36Z13ka33O1Uvz/dK7ptmW49o+bXv0iz5tfR2XbbUu548023Ouc9rqmMy3+2rXz3Xb+hxf0963pOU3qEW/mGtunkPtdS15AgQIEBhbYJjgpmXKpzgRzNRX1te6zI8e3OQ+pQSWFjj25uzQDfyxN+BL7H9uL0vMf8ocI+0l9n3s9TzljHN9r73e3F6WbjvmbMf0WXpf5iNAgACBdQSGCG6WOprgZilJ8zyawDlPGB7N6BrnjZvseM09ZVhyH9deb8m9LzWXwGYpSfMQIEBgDAHBzRjXwS4IECBAgAABAgQIELhQYJgvFLjwHIYTIECAAAECBAgQIPDgAoKbB38DOD4BAgQIECBAgACBexEQ3NzLlXQOAgQIECBAgAABAg8uILh58DeA4xMgQIAAAQIECBC4FwHBzb1cSecgQIAAAQIECBAg8OACgpsHfwM4fl8gvyK31zrX1uuvjgABAgQIECBA4DoCgpvrOC+6ytzN9VzbopswGQECZwvM/XM613b2ggYSIECAAIEHERDcbOxCx43P1B/4m2vb2DEnt+vGb5Jm1Qbuy/LGP8NTpnNty+7CbAQIECBA4P4EBDc3uKZPT39Prhpt+TPZaYMNcSOXP+duP8ZPBXa9OZ/++msXP17/E8hrEOkpLzfcp2j93td78HcPJQIECBAgsKbA9zUnP2Xul5eXr+6vr69f+VqflbU967aUfnz87G43gpps6wVAczf3c23dxY6oXHLODEpOvanObZ66l7ih/Pjnn3+H13zOt6X01LPPne2S65ABTs4xt87IbUt6zp3zUFAz5znXNremNgIECBAg8OgCQwQ3EcDUgKUtt22PcNEyyHmEsx4646k3o20wE0FOW3doTe19gfamO65N77X1AKh3plPranB96lj9CRAgQIAAgfMEhghujt16G/QcO26UfvVpTA1ean3ma/s5+683nXlDGvPUm862T65T6zNf58h5si3Lkfbqct5z0piv7vmcOW45pvXIcj1T1sU+p+qzz62uQzXMPURa91v7HJvPc2X/Ol9ty/qs65VrW83n3FkX5cznPNmnTbNfW39oXNtfmQABAgQIELiOwBDBTX0y0x57rq3tO3o5A5YMYHK/tT7z2XZumjdfcXMWP1nO+dq6Ws6+tS7GRX2ta8u1Lfq35Vz7lLRd45SxI/Stlj2Ptq6W69jMx5lak7Zc54j+bflSl6Xma+eJcr56bXHOPGv2q+XM17E1H+3xqnU5z1SaY6ba1RMgQIAAAQJjCQwR3FSSqaczU/V1rHxfYOoGLW7yTn3lDWRNc45c55x5c45e2lur12/0uvRp93mOVzVpb9ZznXPmbffWltu1ptbIPbTj58rnjOnNt9Q8vbnVESBAgAABAmMLDBXcCGCu+2ZZ4yaw3vxO3fiec8rYa537nDlGHbOV69DzX2Pvo14n+yJAgAABAgTGFxjmq6AFNoffLHmD3+s519br39YtEYj0bn7bdS4pH3vG/AKBXGtLXyYw6nVY+9rGtVri7HnNt5DOmc61beFs9kiAAAECBG4l8G2/3+/f3993n5+ft9rDrg1s2nJsrFfXbvjt7W33/PzcVg9Tbn/XJjaWv2PTtmV9u/m5m57aFvn21f5X9tqnbcux2adtr2tl30izf62bCkraOeuYJfL5Vbz5rVWnzDl1vphjrq1dY8qj9qt9pkyyT9s+tZfsX9e51XWoe2jzdZ+9s2X/ubbsU9P2rFPj2/o6x6X5fP/Veep7ceraRf+5tjqfPAECBAgQIPC7wDDBze/b2v321dDRdg/BTXvGc8tzNz5zbeeu94jj5hzn2h7RyplPF5h7D821nb6SEQQIECBA4LEEhghuliIf/cnNUuc0z/oCczeYc23r78wKBAgQIECAAAECUwKCmykZ9QQIECBAgAABAgQIbEpgmC8U2JSazRIgQIAAAQIECBAgMJyA4Ga4S2JDBAgQIECAAAECBAicIyC4OUfNGAIECBAgQIAAAQIEhhMQ3Ax3SWyIAAECBAgQIECAAIFzBAQ356gZQ4AAAQIECBAgQIDAcAKCm+EuiQ0RIECAAAECBAgQIHCOgODmHLUFxsTfSokfLwIECBAgQIAAAQIElhEQ3CzjeNYsv379OmucQQQIECBAgAABAgQI/CkguPnTRA0BAgQIECBAgAABAhsU+D7Knl9eXr628vr6+pWv9VFZ2746yRAgQIAAAQIECBAg8PACQwQ3EcDUoCXLmdar1Kur7fIECBAgQIAAAQIECDymgDtI0x0AACAASURBVI+l3eC6xxcJ+H2bG8BbkgABAgQIECBA4K4Fhghu6lObqh318aQmX/fy1CYCG9+UlldVSoAAAQIECBAgQGAZgSE+llaP0gtgaoBT+8oTIECAAAECBAgQIEAgBYYKbtrApi3Hpnt1eRgpAQIECBAgQIAAAQKPKzDEx9KCX9DyuG9CJydAgAABAgQIECCwhMAQwU0b2ETZiwABAgQIECBAgAABAqcIDPOxtF5A036hQBxs6ssHTjn0KH19a9ooV8I+CBAgQIAAAQIE7kHg236/37+/v+8+Pz83f563t7fd8/Pz5s/hAAQIECBAgAABAgQInC4wxMfSTt+2EQQIECBAgAABAgQIEPhdQHDzu4cSAQIECBAgQIAAAQIbFRDcbPTC2TYBAgQIECBAgAABAr8LCG5+91AiQIAAAQIECBAgQGCjAoKbjV442yZAgAABAgQIECBA4HcBwc3vHkoECBAgQIAAAQIECGxUQHCz0Qtn2wQIECBAgAABAgQI/C4guPndQ4kAAQIECBAgQIAAgY0KCG42euFsmwABAgQIECBAgACB3wW+/15UIjCOwI8fP7428+vXr10tfzXsdrtDbbVvnSPGeREgQIAAAQIECNyPwLf9fr9/f3/ffX5+3vRULy8vX+u/vr5+5Wt9VNa2r07/zby9ve2en5/bauUzBZ6e/t59fPw8c/QywzIYyUAkyr18rDbXVndT+9V6eQIECBAgQIAAgW0LDPHkJgKYGrRkOdNK3Kur7fIECBAgQIAAAQIECDymwBDBzWPSr3vqeOqSr3j6kuX6JCbrot9UffbpzdFry7l6bb05co9zaX7sLJ/YzPVdqs3TnaUkzUOAAAECBAgQuJ7AEMFNfWpzvaPf90oZrESQET9ZzlO3dbWcfWtdjKvBSVuuY6bG1fqazz2NlF4zkBrp3PZCgAABAgQIENiywBDBTQWc+9hZtHmdLpCBRzsyAow1XlPrTdWvsQdzEiBAgAABAgQIPJ7AUMFNG9jEE50a0LTlx7tcy554S8FGfjRtWQGzESBAgAABAgQI3JPAMH/npg1sEjkCmvzJOunyAms9xVl+p+fNGL9DM/Waa5sao54AAQIECBAgQGA8gSG+CroNbLKcabK15azP1FdBp8Tu6wsE/lfz+5cGRH0NaKae4mSf2p51de5ePsfU/lHXlntjo64GHfk7MO0v+k/16c059/Qn589x7TpZLyVAgAABAgQIEBhXYJjgpiXqfQQt6uZegps5HW2nCAhuTtHSlwABAgQIECAwhsAQwc1SFIKbpSQfex6BzWNff6cnQIAAAQIEtiswzO/cbJfQzu9NoP2I2r2dz3kIECBAgAABAvcqILi51yvrXAQIECBAgAABAgQeTEBw82AX3HEJECBAgAABAgQI3KuA4OZer6xzESBAgAABAgQIEHgwAcHNg11wxyVAgAABAgQIECBwrwKCm3u9ss5FgAABAgQIECBA4MEEBDcPdsEdlwABAgQIECBAgMC9Cghurnhl4++nxI8XAQIECBAgQIAAAQLLCwhuljednNHfT5mk0UCAAAECBAgQIEDgYgHBzcWEJiBAgAABAgQIECBAYASB7yNsIvbw8vLytZXX19evfG1r63/rpECAAAECBAgQIECAwEMLDBHcRGBTA5danso/9FVzeAIECBAgQIAAAQIE/hAY+mNpNbCJnUcAFHVbfsXv3fhSgS1fQXsnQIAAAQIECBAYVWCIJzf51CYDlyyPinbJviKw8cUClwgaS4AAAQIECBAgQKAvMNSTmwhq7uHpTJ9aLQECBAgQIECAAAECawoMFdyseVBzEyBAgAABAgQIECBw3wJDBDf5cbT7pnY6AgQIECBAgAABAgTWFBgiuJk6YPsRtfYLBqbGqSdAgAABAgQIECBA4PEEvu33+/37+/vu8/PzpqevT2/aLxTItra+3fDb29vu+fm5rR6mnN+S5gsFhrkkNkKAAAECBAgQIHBHAsMEN0uYjh7cLHFGcxAgQIAAAQIECBAg0BcY+mNp/S2rJUCAAAECBAgQIECAwJ8Cgps/TdQQIECAAAECBAgQILBBAcHNBi+aLRMgQIAAAQIECBAg8KeA4OZPEzUECBAgQIAAAQIECGxQQHCzwYtmywQIECBAgAABAgQI/CkguPnTRA0BAgQIECBAgAABAhsUENxs8KKduuW/n55OHfJH/yXm+GPSUjE1/1R9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9ZQkg5De+WvQ0mvPuqm5o/3YOXIuKQECBAgQIECAwP0KDBXctMyCnFZkujwXREyPWq5lLsiYaztmB5eOP2YNfQgQIECAAAECBLYvMMS3peXH0VrOeJITbfkT7VN927H3WF4zgJl7OjLXdm3npfYS8wiarn31rEeAAAECBAgQWFdg6Cc3cfT8qFrkI7Cp5XVplp+9/q5N5vN3bLKcadbP7SJv9PNGvQ1+euWYr45r559ra/teo3zMGWqfKYs8d/T1IkCAAAECBAgQuE+Bb/v9fv/+/r77/Py86QnrE5leAHOoPTb/9va2e35+vuk5rrF43sBfY617XIPfPV5VZyJAgAABAgQI7HbDBDdLXIxHCW6WsDIHAQIECBAgQIAAgXsTGOJ3bu4N1XkIECBAgAABAgQIELi+gODm+uZWJECAAAECBAgQIEBgBQHBzQqopiRAgAABAgQIECBA4PoCgpvrm1uRAAECBAgQIECAAIEVBAQ3K6CakgABAgQIECBAgACB6wsIbq5vbkUCBAgQIECAAAECBFYQENysgGpKAgQIECBAgAABAgSuL/D9+kta8R4E4g9h5uvXr1+ZnUxP7T850ZENT38//dvz4+fHkSMOd1tjzsOr6kGAAAECBAgQIHCsgODmWCn9/hA4JqjJQdm3BjnZdu00gpQlg55r7996BAgQIECAAAECfQEfS+u7bL42gohLA4mc45R5nv76axc/t35dErxE8JNPaeo5LpmzziNPgAABAgQIECCwjsAwT25eXl6+Tvj6+vqVr/VZWduzTvq7QDwpOSUo+X307t+xpz5tiaDm459//p2q5tu51y5nYDIVjET91NObWt/mY99Tc659JvMTIECAAAECBAgcFhgiuIkApgYsbbm2HT6SHksLZJAzN28bzESQ09bNje+1TQVnh/ZzbgBSg5nYTw2Czp2zdy51BAgQIECAAAEC6wgMEdysczSzhkANEDIoyLpeOdvq2Ox3bdE1162By5LnCr81973kXs1FgAABAgQIELg3gSGCm3wykx9By3JiZ32U27bsI+0L1BvtvPGOuhrE1HL2z779WdVOCaTfVLt6AgQIECBAgACB9QSGCG7yeBm4zH0srW3LsdL7E6gBWD2dAKJqyBMgQIAAAQIECKTAUMFNbqqmGfDUOvnHEFg7iFnro2mPcXWckgABAgQIECAwnsAQXwVd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" alt="" />
<img src="data:image/png;base64,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" alt="" />
  • 原型:extern void bzero(void *s, int n);
    参数说明:s 要置零的数据的起始地址; n 要置零的数据字节个数。
    用法:#include <string.h>
    功能:置字节字符串s的前n个字节为零且包括‘\0’。

  • 相关函数: stat, lstat, symlink
    表头文件: #include <unistd.h>
    定义函数:int  readlink(const  char *path,  char *buf, size_t  bufsiz);
    函数说明:readlink()会将参数path的符号连接内容到参数buf所指的内存空间,返回的内容不是以NULL作字符串结尾,但会将字符串的字符数返回。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断

  • 通过GNU C语言提供的两个全局变量来实现
<img src="data:image/png;base64,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" alt="" />

volatile关键字的作用?

将变量声明为volatile是告诉优化器不要对其进行优化,从而避免了代码重组。例如下面这段程序:

<img src="data:image/png;base64,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" alt="" />

对上面的代码使用gcc -O -S进行优化编译,查看其汇编代码。关键代码如下:

<img src="data:image/png;base64,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" alt="" />

编译器对齐进行优化,发现a = a + 1while(a == 2)中间没有对a进行修改,因此根据代码的上下文分析后进行优化,直接拿%eax进行比较。但是编译器的优化仅仅只能根据当前的代码上下文来优化,如果在多线程场景下另外一个函数中对a进行了修改,但是这里却使用的是a的旧值,这就会导致代码逻辑上出现了问题,很难debug。我们来看看加了volatile关键字后情况变成什么样了。下面是加了volatile后的汇编代码:

<img src="data:image/png;base64,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" alt="" />

volatile关键字远远在比我这里描述的更加复杂,这里有篇文章建议大家阅读一下,深刻了解下这个关键字的作用。C/C++ Volatile关键词深度剖析。

内存分配

brk 和 sbrk的作用是很什么?

brk和sbrk是linux提供给我们的两个用于分配内存的系统调用,内存的分配其实就是将堆区的内存空间进行隐射和物理内存页进行关联。我们的程序会大量的调用这两个系统调用,这导致一个问题就是大量的系统

调用开销的产生,为此malloc和free封装了这两个函数,通过brk和sbrk预先分配一段比较大的内存空间,然后一点点的分配出去,通过维护内部的一个数据结构记录分配出去的内存块信息,方便后面的回收和合并

这样就避免了大量系统调用的调用开销。下面是这两个函数的函数原型:

<img src="data:image/png;base64,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" alt="" />

brk可以调整program break的位置,program break是堆的顶端,也就是堆最大可以增长到的地址,而sbrk则是设置program break为原有地址加上increment后的位置。sbrk(0)返回当前的

program break位置。

有哪些malloc的调试工具和库?

glibc提供了一些malloc调试库分别如下:

  • mtrace和muntrace函数分别在程序中打开和关闭对内存分配调用进行跟踪的功能
<img src="data:image/png;base64,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" alt="" />
<img src="data:image/png;base64,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" alt="" />

可以看出mtrace起到了内存分配的跟踪功能,会把所有的内存分配和释放操作就记录下来。

  • mcheck和mproe函数允许对已分配的内存块进行一致性检查。例如对已分配内存之外进行了写操作。
<img src="data:image/png;base64,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YkpAMaVPb4f116myvX3bUfu0bTnm2nRsztoW8y615rV7vLV/7w3OrXMaT4AAAQIECBA4ksAmf02r9wAyEOm17akug4pI808vQFnqTHnRr2kNBiIfbfmnts3dw9icbdvcNbYwLp/lFvZiDwQIECBAgACBPQps6s3IHgHvteehgOXWC3EGKUsEIXMscv05Y40hQIAAAQIECBDYt8AugpFneStyy4/KrUHH2Nr5tiL6PCooGdufNgIECBAgQIAAgecU2MWvaeX3RCIoye+LZPqcj+V+p6qByP1W/d9KveAnAq+hN0H/G/l/ufyietbn354V5bltOZfvhKSElAABAgQIECCwjsCX8/l8zqk/Pj5On5+fWXxYeulNyKX29/f308vLy8P2f2nh9qK99luP2E/8OlQGHhkA5K9IZbnuO/vXupwn0qEx2b+25zpT2rJPGwi0f4tW9ItgIz/ZXutubWv3kPNleqk9+0kJECBAgAABAgT6ApsKRnpvO/Jv2Mrt1z5tW/bZQzCyZgCSDntPH3nZn7L2lD57fwb2T4AAAQIECBBYU2BTwchSB91yMBIX2PwISFJif6lAZH/PzI4JECBAgACB7QkIRrb3TOyIAAECBAgQIECAwCEEdvEF9kM8CYckQIAAAQIECBAgcDABwcjBHrjjEiBAgAABAgQIENiKgGBkK0/CPggQIECAAAECBAgcTEAwcrAH7rgECBAgQIAAAQIEtiIgGNnKk7APAgQIECBAgAABAgcTEIwc7IE7LgECBAgQIECAAIGtCAhGtvIk7riP+m+djC07td/YHNoIECBAgAABAgQIDAkIRoZknrT+mn+sL/5RRgHJk/4gOBYBAgQIECBAYAMCXzewh8Nu4c9vf/46+18///qVlyFAgAABAgQIECBwBIFNBiOvr6+nt7e33/yjrv20fdr2LZcjEMkApAYla+75mrciuY98OxKpDwECBAgQIECAAIElBTYVjPQCjnrYPQcf9RxtPoOStl6ZAAECBAgQIECAwDMLbCoYyWDjUlCy5wdS34JkPoORLMf5oi7L2R71WZd9qsVYW+2X+d73Qa59AzLnbUuuLyVAgAABAgQIEDi2wKaCkUuPogYpGbhcGrO19gwsInDIfO4xy9HWa2/rarnmY762nGvUtPcrWNcGF9cGL3V9eQIECBAgQIAAgWML7CoYqQFIBCa1/GyPMQOT9lwRZAx9xtqGxqgnQIAAAQIECBAg8CiB3QQjzxx4XPPwh4KUmGOs7Zo19CVAgAABAgQIECBwD4Hd/Dsj9Ve07gGzhzXG3oT02vLXsq4527W/tnXN3PoSIECAAAECBAgcW2A3b0ae6TFloJBpvtHIcpw189kWdZHP+iyny1hb9hlK6xfZr/0OiGBlSFU9AQIECBAgQIDAJYEv5/P5nJ0+Pj5On5+fWbx72nv7UX89q7bX+naj7+/vp5eXl7Za+b8CNYCo+RZorC37TumTfaUECBAgQIAAAQIEqsCmgpG6sVvygpFpehFI5OfaNyIxTiCSelICBAgQIECAAIE5AoKROWrGECBAgAABAgQIECBws8BuvsB+80lNQIAAAQIECBAgQIDApgQEI5t6HDZDgAABAgQIECBA4DgCgpHjPGsnJUCAAAECBAgQILApAcHIph6HzRAgQIAAAQIECBA4joBg5DjP2kkJECBAgAABAgQIbEpAMLKpx2EzBAgQIECAAAECBI4jIBg5zrP+ddL674v8quxkpvbrDFVFgMCBBf797dvg6cfaBgdpIECAAIGnFRCMPO2j7R/smn+oMP4hRAFJ31EtAQJ9gQg2/vXzZ7dxrK07QCUBAgQIPL3A16c/4YYP+Oe3P3/t7q+ff/3KyxAgQOBIAvm2ZCiImWJxyxw5NtaZs4dbx085nz4ECBB4VoFNvhl5fX3tekd9/dPttJPKCEQiALlnEHLNW5Fk9HYkJaQECKwlMCcAaPdyyxwxdu74CERuGd+eQ5kAAQJHE9jUm5GhICQeSrS9vb39ej5jfX912knmngHJTkhskwCBHQrkxby39bG2Xv891s0NaPZ4VnsmQIDAUgKbCkYy2GgDjTYQicNn36Ug7jVP/dWszGcwkuXYS9RlOdujPuuyT933WFvtl/ne90HiTcg1nzlvW66ZX18CBJ5XoP56U3vK2paX/KwbKscc2Sfy2S/nHmvLPlPTOlfmc70s5x6ynO1Rn3XZp6471lb7yRMgQOAZBDYVjFwCrUHKXoORDCwicMh8njvL0dZrb+tqueZjvraca9Q0fwWrBiDXBhd1bJ1bngCBYwnEBbpetuvpe21tXb2A99pi7vhT+7XlWLPuoc5T89GvLdf9TsnnOr15aluvva2r5ZpfYp9TzqIPAQIEHimwm2CkfTvSlh+JuMbaGZi0c0eQMfQZaxsao54AAQJHEYiL/r0/GZi0647tZaytnUeZAAECexfYTTCy1zchS/+ADAUpsc5Y29L7MB8BAgRSoP2/+Vkf6Vhb7XeP/FBgcI+12zXG9jLW1s6jTIAAgb0LbPJv09o76r32P/YmpNeWv5Z1zf6u/bWta+bWlwABAo8S2NLbh7G9jLU9ys66BAgQWFJgN29Gljz0o+fKQCHTfKOR5dhf5rMt6iKf9VnOs4y1ZZ+htH6R/drvgAhWhlTVEyAwJhD/97+9aEc56tu2+qagbYs1clzmc92xcbWt7iPztT3na9Psm2mOyXLdT7ZFXeRrn6lt7frKBAgQeAaBL+fz+ZwH+fj4OH1+fmbx7mn9gnounr+e1bZlffar6fv7++nl5aVWyReBGkDUfOnyn+xYW/ad0if7SgkQeD6BuFTXy3Q94Vhb7SdPgAABAscV2FQwstRjEIxMk4xAIj/XvhGJcQKR1JMSIECAAAECBAjMERCMzFEzhgABAgQIECBAgACBmwV8gf1mQhMQIECAAAECBAgQIDBHQDAyR80YAgQIECBAgAABAgRuFhCM3ExoAgIECBAgQIAAAQIE5ggIRuaoGUOAAAECBAgQIECAwM0CgpGbCU1AgAABAgQIECBAgMAcAcHIHDVjCBAgQIAAAQIECBC4WUAwcjPh/iao/77I/na/7R2z3fbzsTsCBAgQIEBgWwKCkW09j9V34x8qXJc4/vFIAcm6xmYnQIAAAQIEnkfg6/Mc5Tgn+fPbn6e/fv5184GHLs3thfpSOTfS9sv6TKP90qfdUztnrxxz9sblWr22ti771j22faa25VxSAgQIECBAgACBcYFNBiOvr6+nt7e333Yede2n7dO2P2t5LBAZC1Ticl0v1Hmxr3V5AW/beuXwbeeMupyvtuW8Y8+k9s+5c77a1u6lttVxmc/9ZLk3Z23LfG/cpbahuaPehwABAgQIECBA4HeBTQUjvYCjbrcGH5f61nHy0wXqBbxe+tsL/9CMdXztM1Rf+7T5KWPG9jXW1q4V5bH15rb11lFHgAABAgQIECDwfwKb+s5IBBs14Bh6SL03J0N9t1ofbzDyT+6xljMfaX56dW1blLNftk1N4/L+yE9c+JfYw5zAoV13bC9jbVP82rWmjNGHAAECBAgQIPCMApt6MzIGPCVIGRu/pbYIFuqvWmU56iIfn8zXfpnPPvVMtS3ztX0sP3Y5zov32AV/bO5r23K9GHePNaecvbeXW/Z5j3Nd664/AQIECBAgQOARArsJRhLnGd6KxFl6AUXURyCRbdcGFWl0bZqX497FPOry4p39rp3/2v65Tq597fhr+te1euNqe+azX5bvsc9cU0qAAAECBAgQeCaB3QUjz4J/r0DjGq+8XF8z5ln6Hvnsz/IMnYMAAQIECBDYn8CmvjOyP75ldpxvQmK2yEegUt+QLLPK//3aU+/tR52/ttf/4x+X9dpWxyyVnzN/b185z1hbb885Ltpqvu071pZjBTetmjIBAgQIECBA4J8CX87n8zmrPz4+Tp+fn1l8WDr2q1hjbbnh9/f308vLSxY3mdYAJN+StHVZ7rXnobIty5G242pbXKTzojx0qW4v8ZfKOX/OG+U6d63Pvr20jon2dlxtv7WtzlX3kvO27Vkffcfasr32r/NPaW/7KxMgQIAAAQIEnlVgU8FIBBrtp/3i+rMEI+0571mOy/TYZfmee3m2tabYTunzbC7OQ4AAAQIECBDoCWwqGOltcE7dHt6MzDnX3se0bxTqeY4SHAlE6lOXJ0CAAAECBI4uIBg5+k+A8xMgQIAAAQIECBB4kIAvsD8I3rIECBAgQIAAAQIEji4gGDn6T4DzEyBAgAABAgQIEHiQgGDkQfCWJUCAAAECBAgQIHB0AcHI0X8CnJ8AAQIECBAgQIDAgwQEIw+CtywBAgQIECBAgACBowsIRo7+E+D8BAgQIECAAAECBB4kIBj577+oPfZvYDzo2ViWAAECBAgQIECAwFMLCEZOJ/8a+VP/iDscAQIECBAgQIDAVgUEI1t9MvZFgAABAgQIECBA4MkFvm7xfK+vr6e3t7ffthZ19dO21zZ5AgQIECBAgAABAgS2L7CpYKQNOJJvKDgRkKSQlAABAgQIECBAgMD+BDb1a1oRXDwqwPjx48fJl9j39wNsxwQIECBAgAABAvsV2FQwMsQYAUp9a9J7UzI0dmp9BCIRkPgQIECAAAECBAgQIHAfgU39mtalI9eA5FJf7QQIECBAgAABAgQIbFtgF8FI701Ir27b1HZHgAABAgQIECBAgEAV2MWvadUNyxMgQIAAAQIECBAg8BwCgpHneI5OQYAAAQIECBAgQGB3Al/O5/M5d/3x8XH6/PzM4t3T3ndC8m/XatuyvrfJ9/f308vLS6+pW5d/i5YvsHd5VBIgQIAAAQIECBBYRWBTwchSJ7w2GFlqXfMQIECAAAECBAgQIDBdwK9pTbfSkwABAgQIECBAgACBBQUEIwtimooAAQIECBAgQIAAgekCgpHpVnoSIECAAAECBAgQILCggGBkQUxTESBAgAABAgQIECAwXUAwMt1KTwIECBAgQIAAAQIEFhQQjCyIaSoCBAgQIECAAAECBKYLCEamW+lJgAABAgQIECBAgMCCAl8XnGv3U+U/fhgH8Q8g7v5xrnaALfyc/PHHH6e///57tTOamAABAgQIECBwDwHBSKMsCGlAkKdu2QAACmRJREFUFP8hkD8jNSj5R6cVKwQiK+KamgABAgQIELirgGDkrtzTFquX3Lz4xsih+mmzXt9raL2sr3u7fvbnHZHBQqbPe1InI0CAAAECBAjcJrDJ74y8vr7+41RRV//8o8MOK/JSX7cedXHJzz+1T9bV/mvmh9aL+jU/9czXrDN33Ngaa8w5tt5e2iLQ8iFAgAABAgQI3CqwqTcjvSAkDhj1b29vv521V/dbhx0W4uKbF/28BEe51u/wWIfZcr2gZ37ptyNLz3eYh+OgBAgQIECAwCYFNhWMZMAxFJTcWzADglg3g4LM517aPlkf6VBbrc98BiE5rq5X5xzL51zRp86Xc9axtX1sXB3Ty+fYOl+73lhb9M32nKuOz7be2ll3aVxtb+erbbfuJb9QngFDprnPtdJYJz+5hyyPpb1xWZfzDJVj3rZtbC1tBAgQIECAAIGewKaCkd4GH1mXF9e4sMafLOee2rparvnoX8s5T63LOeem7Vy1XPO5l1yn15b7yz5DaR07lM/1cs7aL9ty/qE+2T6Ujo3rrTfUP/rmZ6hPtg+lcUHPi/xQn7n1vbnburY8tFbbL8ux98jnp1eOtuyf/aQECBAgQIAAgTkCuwxGHvHmJC+nc5C3NqaeJfP1Ij51vzl2av/oF2NyrcjPmeOa9aJvrteOW3Mv97qsZ+BTA4j2nMoECBAgQIAAga0K7CIYiV/fqgFIW94q7i37igt0XpbXvrDnWrHfoYv7LWdpx+Z56rptnyXLuV5vzmxbYi8ZELRpBgy99afWjQU3tS3XnjqvfgQIECBAgACBRwps8m/T6oFEAJJ/eu3PUBcX47wU5yU565Y8Xw04cr0l5x+bq669xtnG1o62un7NL7GXDDpqmvlL+4ogYk4gUQORdo25c7bzKBMgQIAAAQIE1hL4cj6fzzn5x8fH6fPzM4sPS9u/KetSud3o+/v76eXlpa2+WG4v5vWymoMzSMhy7XNNWzu+jq1zRr9sa+trW+Rre45p12nHtOOyf4yv8w3Vt/1y3To263pr1bZco/Ybaq99az7XreOyLvoN1bdtl+aM9pi3zhd1GRxkWucZy0f/+AwFL2Pz5dg6f8yT9WNz5pi2T47N9t7esk87to6RJ0CAAAECBAiMCWwqGKm/ipWb7v1KVtSNfW4JRnLe9pKZ9VICQ8HNWjJx6XfhX0vXvAQIECBAgMAjBTYVjCwFMTcYWWp98xAgQIAAAQIECBAgcFlgN98ZuXwUPQgQIECAAAECBAgQ2JOAYGRPT8teCRAgQIAAAQIECDyRgGDkiR6moxAgQIAAAQIECBDYk4BgZE9Py14JECBAgAABAgQIPJGAYOSJHqajECBAgAABAgQIENiTgGBkT0/LXgkQIECAAAECBAg8kYBg5IkepqMQIECAAAECBAgQ2JOAYGRPT8teCRAgQIAAAQIECDyRgGDkiR6moxAgQIAAAQIECBDYk8DXPW12jb1+//79P9P++PGjO322R+NQn+7Agcqc75a5co6l9jSw1d+qc81b9v3bhCOFWOse64xsQRMBAgQIECBAgMAdBDb3ZuT19fWUf9rzD9W3/a4pX7r0RvulPkuud2muvKgvuadLa0b7nPUygJkyf+0zZ606Xp4AAQIECBAgQGAfApt6MxLBxtvb2y+5Wh7K/+p8wIxL+wEfuiMTIECAAAECBJ5IYFPByJBrDUSiTwQsbd3Q2Kn19f/iX3PJHxtX22If7by1vW1r9137Zj7HZDnXyHK2R33WZZ86/9S2OmYsX+fLfOylzffqct6696zL8VmufWpbrc++UgIECBAgQIAAge0JbCoYqW9F7k1VL7Bxsa3lob20/Wq55mN8lNtPrNH2a/tkOffT61/beu1tXS3XfKxVyzWfbbmfsbTuJ/PRP/IxZ/vJPpn2+oztpdeWc7VrKRMgQIAAAQIECGxHYFPBSGVZ+s1HnfsR+d7luL1EL7Gv3joxb++Cn+uNtWWfraXtOfd4hq2Z2g8BAgQIECBA4N4CmwxGni0Q6T3Ue1+e28t73dNYW+235fwznGHLvvZGgAABAgQIEFhDYJN/m9Yjf11rDeSYsw0+4vIcf9r6tdav846tOdZW55ibzzPXdM5cY/sca5uzljEECBAgQIAAAQLrCHw5n8/nnPrj4+P0+fmZxbun7RuRWh7K9zb5/v5+enl56TV169rLa1yU89O2Rf1Qe62PfnVstrV1Wc72XLeXZt9syzFtfbRnW/atfea25Vzt+KzvpbluHRN1Uc40x2XfLEfajsu2Wh91dWzblmOkBAgQIECAAAEC2xLYXDDS8tS3JBGQxKfWtf2jfG0w0ptDHQECBAgQIECAAAEC6wpsKhhZ6qiCkaUkzUOAAAECBAgQIEBgPYHNfWdkvaOamQABAgQIECBAgACBLQkIRrb0NOyFAAECBAgQIECAwIEEBCMHetiOSoAAAQIECBAgQGBLAoKRLT0NeyFAgAABAgQIECBwIAHByIEetqMSIECAAAECBAgQ2JKAYGRLT8NeCBAgQIAAAQIECBxIQDByoIftqAQIECBAgAABAgS2JCAY2dLTsBcCBAgQIECAAAECBxIQjBzoYTsqAQIECBAgQIAAgS0JCEbK0/j+/XspnU5Rbut+6/DAwpb39kAWSxMgQIAAAQIECOxIYHPByOvr6yn/9Byj7V6fHz9+rLrULYHO2ntb9eAmJ0CAAAECBAgQIHA6nb5uSSECjbe3t19bquW1g5AIDOKCn+mvTcgQIECAAAECBAgQILCKwKaCkbETZpCydlDS20N9g9G+kei1tXVZzrFZjrUyn221LvK1vm2Lsg8BAgQIECBAgACBvQpsKhjJgGNrmDUgiOAhyzUfe85ybc+6eqbanvlsb/vXcs3nejlOSoAAAQIECBAgQGBvApsKRipe/RWtWr9mPi77S3/aYGPK/GvsY8q6+hAgQIAAAQIECBC4p8Amg5F7ByK9Nw5zgoilHtwj117qDOYhQIAAAQIECBAgcElgk3+b1lZ/XesS5hrt3pKsoWpOAgQIECBAgACBLQh8OZ/P59zIx8fH6fPzM4t3T9s3Im05NtSrazf6/v5+enl5aau75XrZjzcSY+WYoH1r0faPPrUuF23HZX32re1Zd2m9nKOOzTopAQIECBAgQIAAga0LbC4YacHyLUkEIe0n29r6a4KRdqwyAQIECBAgQIAAAQL3EdhUMLLUkQUjS0mahwABAgQIECBAgMB6Apv7zsh6RzUzAQIECBAgQIAAAQJbEhCMbOlp2AsBAgQIECBAgACBAwkIRg70sB2VAAECBAgQIECAwJYEBCNbehr2QoAAAQIECBAgQOBAAoKRAz1sRyVAgAABAgQIECCwJQHByJaehr0QIECAAAECBAgQOJCAYORAD9tRCRAgQIAAAQIECGxJQDCypadhLwQIECBAgAABAgQOJPCPf/TwQGd3VAIECBAgQIAAAQIEHijwWzDywH1YmgABAgQIECBAgACBgwn4Na2DPXDHJUCAAAECBAgQILAVAcHIVp6EfRAgQIAAAQIECBA4mMD/B9aJReebZXMQAAAAAElFTkSuQmCC" alt="" />

上面只是简单的演示了其基本用法,更详细的用法参见man 文档。

  • MALLOC_CHECK_环境变量 提供了类似于mcheck的功能和mprobe的功能,但是MALLOC_CHECK_这种方式无需进行修改和重新编译,通过设置不同的值来控制对内存分配错误的响应方式下面是一个使用MALLOC_CHECK_环境变量的实现方式mcheck的功能的例子:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzgAAAGeCAYAAABYVqRYAAAgAElEQVR4Ae2dO44jSbJFWYMCehNcSekp9VpamJWM0GtpKfXaTgKptUDwwXrm1rtlZe7xYQTpQZ4Actzd/n6Ck3TrYDG/XK/X64kLAhCAAAQgAAEIQAACEIDAExD41xPsgS1AAAIQgAAEIAABCEAAAhD4h8DXisPn52clRgYBCEAAAhCAAAQgAAEIQGBoAmWDExVfLpehC59T3MfHx+l8Ps8xxQYCEIAABCAAAQhAAAIQeAICfETtCW4iW4AABCAAAQhAAAIQgAAE/kuABodXAgQgAAEIQAACEIAABCDwNARocJ7mVrIRCEAAAhCAAAQgAAEIQIAGh9cABCAAAQhAAAIQgAAEIPA0BGhwnuZWshEIQAACEIAABCAAAQhAgAaH1wAEIAABCEAAAhCAAAQg8DQEaHCe5layEQhAAAIQgAAEIAABCECABofXAAQgAAEIQAACEIAABCDwNARocJ7mVrIRCEAAAhCAAAQgAAEIQIAGh9dASeD3338v5c8ofKW9PuP9Y08QgAAEIAABCEDACdDgOI3T6aTDrsak/qHP8jXryKGfNf7hc6t/lTdi/vXXX5VqtSzXqXWMrSvr5NOyb8mn/GKvOVcrFnIIQAACEIAABCAAgbEJHLbBeXt7ewjZLQ/+EevWeLf6Z4hx0F8Tc6pByDFjnWW5lqzP62zfWs/xC5upPbTiI4cABCAAAQhAAAIQGIfA4RqcaGz2aG7icKsDbh7HuV37VhL7ntMM7FvF46LT5DyOPZkhAAEIQAACEIDAVgS+bhXoXnHe39//SbV1k6ODvQ75GrUvNT2xlm3MJffDsevdRrGyXnKNHtP93U828vHRde7jNnkePj1bjxm+snW55tKFnWQ5X2/tPh5LPlN62VWjfKu4YR/ysGnpq5jIIAABCEAAAhCAAATGIXC4BmdPdL2DrQ68OiCrDh2I3bc1D5/srzg+KqZkee3xc8xKp9oVrxqVo7KtYiqG7LON6pJea/n1RvlEzOqSPnRV3son27b8WvJWTOQQgAAEIAABCEAAAmMRoMEp7seaQ64fuouQP0Rz7X44rJhE/WuuqK3au+QRM+b32MOa+qd8puqu9j4VEz0EIAABCEAAAhCAwFgEaHD+dz/UFORx6lA81u38bzW31By+1UFfMSvdiAyW1vSs+1rKAXsIQAACEIAABCBwdAKH+5KBvYDrAO+j5lvmVAO1ZcxerDX5Yt/u5/Os6+W+ty7q9Frn5g+fPe713PzYQQACEIAABCAAAQhsR+DL9Xq95nCfn5+ny+WSxUOt40sG9IUDrcI+Pj5O5/O5pf5FroOuRjeoDs75sF+tI4b7+kHa5co1V9/zdZ3HU46lo8cL31ZM2bleMs8Z+pY87Jboqlwuy/Fy7mzrdTKHAAQgAAEIQAACEDgegcM1ONW3p7UanaUNzvFuHxVDAAIQgAAEIAABCEAAAk7gcA2OFz81p8GZIoQeAhCAAAQgAAEIQAACz0WAf4PzXPeT3UAAAhCAAAQgAAEIQOClCdDgvPTtZ/MQgAAEIAABCEAAAhB4LgI0OM91P9kNBCAAAQhAAAIQgAAEXpoADc5L3342DwEIQAACEIAABCAAgeciQIPzXPeT3UAAAhCAAAQgAAEIQOClCdDgvPTtZ/MQgAAEIAABCEAAAhB4LgI0OM91P9kNBCAAAQhAAAIQgAAEXpoADc5L3342DwEIQAACEIAABCAAgeciQIPzXPdzs938/vvvm8UaIdCz7WcEptQAAQhAAAIQgAAERiRAg5Puig7CGpP61JJnuznriKWfOfaVza3+rZh//fVXpVota9UZ8i2uVnzFjv1slUsxGSEAAQhAAAIQgAAExiNwyAbn7e3tpJ97I93y4B+xbo13q3/mF03AmphTzUMrZkue65paz4kTNlN1TuVBDwEIQAACEIAABCAwNoHDNTjR2Ly/v//4ifUWVxx8dfjN4xbxjxAj9j2nUTjCXlo10uS0yCCHAAQgAAEIQAACz0Hg63Ns4/Zd6GCvQ75GRVbTE2vZxlxyPzi73m0UK+sl1+gx3d/9ZCMfH13nPm6T5+HTs/WY4Stbl2suXdhJVuWTzO0lc79KL7tqlG/LL+Rh09JXMZFBAAIQgAAEIAABCByDwOEanHh6s9fVO/TqMKzDs2rQYdl9W/Pwyf6K46NiSpbXHj/HrHSqXfGqUTkq2yqmYsg+26gu6bWu/CTTmGPlteyq0W197rYtudswhwAEIAABCEAAAhA4JoHDNTiOWR9Xc9kW8zUHYD/I92qYa9eLMaWL+tdcUVu1d8kjZszvsYc19au+nm+1v549OghAAAIQgAAEIACBYxE4bIOzdXOjpiCPIx/mWy+1W2oO36oJUMxK16pjNPmRax+NJfVAAAIQgAAEIACBUQkc7ksGAuTWzU3E1AHeR823vHlqoLaM2Yu1Jl/s2/18nnW93HvoohavZ26O8Nnjfs7Njx0EIAABCEAAAhCAwH0IfLler9ec6vPz83S5XLJ4iHVubvLai/z4+Didz2cXdec6BGt04+pQnQ/71TpiuK8fsl2uXHP1PV/XeTzlWDp6vPBtxZSd6yXznKFvyWXn+iqey8In2+e14jJCAAIQgAAEIAABCDw3gUM2OPmWtL54YGmDk+OyhgAEIAABCEAAAhCAAASOReBwDc4SvDQ4S2hhCwEIQAACEIAABCAAgeMTOOS/wTk+dnYAAQhAAAIQgAAEIAABCOxBgAZnD6rEhAAEIAABCEAAAhCAAAQeQoAG5yHYSQoBCEAAAhCAAAQgAAEI7EGABmcPqsSEAAQgAAEIQAACEIAABB5CgAbnIdhJCgEIQAACEIAABCAAAQjsQYAGZw+qxIQABCAAAQhAAAIQgAAEHkKABuch2EkKAQhAAAIQgAAEIAABCOxBgAZnD6rEhAAEIAABCEAAAhCAAAQeQoAG5yHYx0/6+++/j1/kRhW+0l43QkYYCEAAAhCAAAQgMCwBGpx0a3TY1ZjUp5Y8281ZRyz9zLGvbG71b8X866+/KtVs2V51Rdyl11Qtsdc1cZfWgT0EIAABCEAAAhCAwP4EDtngvL29nfSzP6KfM9x68PdoEevWeLf6ez0xj4P+FjG3iJFrWxtzjl/Y0ORk4qwhAAEIQAACEIDA8QgcrsGJxub9/f3HT6y3uPy/8uugq3GL+EeIEfud0wwcYS9raqTJWUMNHwhAAAIQgAAEIDAWga9jlfO4anSw1yFfoyryZke2oZPcD8eudxvFynrJNXpM93c/2cjHR9e5j9vkefhUth5LPtku27T0LXnE7emm9NlXdVajam35hLzFooqHDAIQgAAEIAABCEBgLAKHe4ITT2/i0kfUtN4Ca+9gGwff6lAsmXx1QFY9LpetdK0x2+V1L2bWxXrOleuWj3L76DFzPvlpdH3Pr6dTLB+9Hpf35q1a3Ec2LmMOAQhAAAIQgAAEIHAcAod9gqPGRh9Z2xL5mkOuDtxTdcy1m4rT03uz0LPLuqhtzd49Tt5fXrvt3DqrGGvqrOLkeqZs3J45BCAAAQhAAAIQgMB4BA7b4GyNUoftPB7xwHtLzeG7pnlYcz/W1ql7tCZny+dee27lRw4BCEAAAhCAAAQgsA2Bw31EbasvFcj4dNj2UfNse8t6j8N5r541+WLfa/yijj38csyor6ox7LJtj4104bPHvVZ8RghAAAIQgAAEIACB+xH4cr1erznd5+fn6XK5ZPEQ6/yRtLz2Ij8+Pk7n89lF3bkOuhrduDo450N2tY4Y7usHaZcr11x9z9d1Hk85loyKpb1pjBiKLZuebI6N1zXHXja5Dq0VT3aqL69lxwgBCEAAAhCAAAQgcHwCh2twArk/xdG/xaluxdIGp4qBDAIQgAAEIAABCEAAAhA4DoFDNjhz8dLgzCWFHQQgAAEIQAACEIAABJ6DwOH+Dc5zYGcXEIAABCAAAQhAAAIQgMAeBGhw9qBKTAhAAAIQgAAEIAABCEDgIQRocB6CnaQQgAAEIAABCEAAAhCAwB4EaHD2oEpMCEAAAhCAAAQgAAEIQOAhBGhwHoKdpBCAAAQgAAEIQAACEIDAHgRocPagSkwIQAACEIAABCAAAQhA4CEEaHAegp2kEIAABCAAAQhAAAIQgMAeBGhw9qBKTAhAAAIQgAAEIAABCEDgIQRocB6CnaQQgAAEIAABCEAAAhCAwB4EDt3gvL297cGEmBCAAAQgAAEIQAACEIDAQQkcusE5KHPKhgAEIAABCEAAAhCAAAR2InDYBoenNzu9IggLAQhAAAIQgAAEIACBAxM4ZIMTzc37+/uBsVM6BCAAAQhAAAIQgAAEILAHgcM1ODQ3e7wMiAkBCEAAAhCAAAQgAIHnIHC4Buc5sLMLCEAAAhCAAAQgAAEIQGAPAodqcHh6s8dLgJgQgAAEIAABCEAAAhB4HgJfrtfrNW/n8/PzdLlcsniIdfXlAq1/j/Px8XE6n89D1E0REIAABCAAAQhAAAIQgMD+BA7X4DiSqSc6NDhOizkEIAABCEAAAhCAAASen8ChPqLmt0NPcjS6jjkEIAABCEAAAhCAAAQg8JoEDv0EZ+qW8QRnihB6CEAAAhCAAAQgAAEIPBeBwz7Bea7bwG4gAAEIQAACEIAABCAAgS0I0OBsQZEYEIAABCAAAQhAAAIQgMAQBGhwhrgNFAEBCEAAAhCAAAQgAAEIbEGABmcLisSAAAQgAAEIQAACEIAABIYgQIMzxG2gCAhAAAIQgAAEIAABCEBgCwI0OFtQJAYEIAABCEAAAhCAAAQgMAQBGpwhbgNFQAACEIAABCAAAQhAAAJbEKDB2YLiQWN8+/btoJVT9igE4jWkH9WkdfX6qmTyY4QABCAAAQhAAAJbEKDB2YLiAWPEQfP79+8HrJySRyMQryN/LeW11xs6mhwnwhwCEIAABCAAga0J0OAURH/77T+FdDzRHgfFo+z90XcjOD2K1R73/dE8yQ8BCEAAAhCAAAS2IvB1q0D3ivP29vZLqvf3919ktwj+/vvfq9zjwLvWd01C/6/mS/x7T2/W1n/vvS/Z7x62welRDc4e+7lnTD3FWfv6vWet5IIABCAAAQhA4HgEDtfgBOKtG5rj3TYqfjUCemrjTUElezUu7BcCEIAABCAAAQhkAodscPImtlr7f5H3JxmS+3+1r/RRh9v26tLh1G388Bpyt3HdlDxsZeN+nivPVXfIq71tuXflVo2xVp1ZprX0YSuZ4szVyX7p6GzC1/nEWvqW3H1kK5nW2Tf0fmmP2nuMkslOulhLl2VaSx+2kilO6FxWrWXLCAEIQAACEIAABEYj8OV6vV5zUZ+fn6fL5ZLFQ6zzR9R6T3M+Pj5O5/N5cd1x6MwHznwQbdlkv17yOETq8Ohj+Egn/7yubCSLMeJprfk/giK25DG29hU67a1lI73Ha83zfqp1+PZqr3zcPutbtfTkea++jnlc2nfWSR42rtPafWM+54o96ertNe9dfu4TcdzO51lXrVuykMeV4/1PPKlzO+YQgAAEIAABCEBgKYFDPsHxpiYaHl8vBbDE3g+sS/zW2OogqoPpkhjyXeIzZbv13lVjb3+ymaqtpb/Vv4qbOeS1fCRXEyS5j7JxWWsuTrEnNQ4u014lq+LIptJVspxrqX8VExkEIAABCEAAAhDYm8DhGpx7NTN7g58TXwfZsO0dXOfEGtFmzf506I79jH7g9qc2vUZnzr2p9pplz85zDidsIAABCEAAAhCAwOG+Jjp/RO1Zb6EfVrfeozcJW8eeG2/t/uSXD/dV3rDVFXNfS750nNuoeHOzNMcae3FZ6iu/OTyXxm7ZK2dLjxwCEIAABCAAAQjcQuCQ/wbHn+L0PqK29N/gVIfX+BiRy6u13wDZTn38SIdtNRsaI5YOm7Lx+G7Xk2c7xZRPPmSqbuljrPbqdnmP0mW5x/R5tT/Xa+61Zx/Xhb3rXSe5yxR/atS+wk57y7K8DluX9XIoZs9mjk57nLJ1BtnHdYoTNpU89Gt0PR/lZIQABCAAAQhAAAJrCRyuwYmN+lMcb3YyhKUNTvZ/9vURD5q55rzu3bMltr04z6TLTPJ6aq9hr0tNUCWTzdL48mOEAAQgAAEIQAACcwkcssGZuzkanLmkjmXXO0BXO5G9DuCVzSvLxCcYwOiVXwnsHQIQgAAEIPAcBGhwnuM+sgsIQAACEIAABCAAAQhA4HQ6He5LBrhrEIAABCAAAQhAAAIQgAAEWgRocFpkkEMAAhCAAAQgAAEIQAAChyNAg3O4W0bBEIAABCAAAQhAAAIQgECLAA1OiwxyCEAAAhCAAAQgAAEIQOBwBGhwDnfLKBgCEIAABCAAAQhAAAIQaBGgwWmRQQ4BCEAAAhCAAAQgAAEIHI4ADU7jlsXfBvG/D9IwQwwBCEAAAhCAAAQgAAEIDESABqdzM/ijhx04qCAAAQhAAAIQgAAEIDAgARqcAW8KJUEAAhCAAAQgAAEIQAAC6wh8Xef2WK+3t7efCnh/f/9pzQICEIAABCAAAQhAAAIQeE0Ch2twornxhiY3O695G9k1BCAAAQhAAAIQgAAEIBAEvlyv12tG8fn5ebpcLln88HVubqYK+vj4OJ3P5ymzX/Tx5QL8+5tfsCCAAAQgAAEIQAACEIDA8AQO9wQniPpTG3+asxXtaG5ocraiSRwIQAACEIAABCAAAQjcj8DhGpz8FCev74eOTBCAAAQgAAEIQAACEIDAaAQO9y1qezyxGe2mUA8EIAABCEAAAhCAAAQgsI7A4RqcddvECwIQgAAEIAABCEAAAhB4BQI0OK9wl9kjBCAAAQhAAAIQgAAEXoTAob5FLe6Jf8FArHsfWVv7LWoRN75kIC6+Te0fDPwPBCAAAQhAAAIQgAAEDkHgcA3OEqq3NDhL8mALAQhAAAIQgAAEIAABCIxBgI+ojXEfqAICEIAABCAAAQhAAAIQ2IAADc4GEAkBAQhAAAIQgAAEIAABCIxBgAZnjPtAFRCAAAQgAAEIQAACEIDABgRocDaASAgIQAACEIAABCAAAQhAYAwCNDhj3AeqgAAEIAABCEAAAhCAAAQ2IECDswFEQkAAAhCAAAQgAAEIQAACYxCgwRnjPlAFBCAAAQhAAAIQgAAEILABARqcDSASAgIQgAAEIAABCEAAAhAYgwANzhj3gSogAAEIQAACEIAABCAAgQ0I0OBsAHHrEL/99p9T/Dzi+vbt2yPSkhMCEIAABCAAAQhAAAKbEPi6SZQ7Bnl7e/sl2/v7+y+yIwv+/vvfD2twjsyN2iEAAQhAAAIQgAAEIHC4BidumTc0VcPDbV1GQE9tvn///sOxkv1QMoEABCAAAQhAAAIQgMCgBA7Z4IhlNDfe7Eh+pDF/FC2e3vglfUsettLJVjKtpfe4Pldjo6Ymxiyr7F3mPi5nDgEIQAACEIAABCAAgXsSOFyDc/SGxm9uNCDefKghkY3rW/OwlU6xYi2ZYq0do9HJzUteR2w1RGvz4AcBCEAAAhCAAAQgAIEtCByuwdGmn+HpjfaiUQ1Ka53l0cS0rhyrZRfyaFji8mbGZT1fdBCAAAQgAAEIQAACEBiJwGEbnJEgPqIWf0LTa3Tm1FY9falkc2JhAwEIQAACEIAABCAAgUcS4GuiH0k/5Z7bqHhzk0KwhAAEIAABCEAAAhCAwEsT+HK9Xq+ZwOfn5+lyuWTxUOs5H1H7+Pg4nc/noerOxXhTo4+VZVleRwyX5Zi+VkyXLZ3r42ryq57uVP8uR/aMEIAABCAAAQhAAAIQuBcBPqJ2L9KNPFUDkmV5HaEqWSPFJuKqqdkkMEEgAAEIQAACEIAABCCwIYHDPsGZw+AIT3Dm7OORNv70ptXk8PTmkXeI3BCAAAQgAAEIQAACToAGx2kwhwAEIAABCEAAAhCAAAQOTYAvGTj07aN4CEAAAhCAAAQgAAEIQMAJ0OA4DeYQgAAEIAABCEAAAhCAwKEJ0OAc+vZRPAQgAAEIQAACEIAABCDgBGhwnAZzCEAAAhCAAAQgAAEIQODQBGhwDn37KB4CEIAABCAAAQhAAAIQcAI0OE6DOQQgAAEIQAACEIAABCBwaAI0OIe+fa9RvP8tnnvv+JG5771X8kEAAhCAAAQgAIFnIECD8wx38Yn38Og/Ihp/3JQm54lfYGwNAhCAAAQgAIGnI/D16XbEhjYn8Mdvf/yI+efff/6Yx6Sn+8lw48Vvf/xx+vvPn2uJFCGPa0vdxqUTDgIQgAAEIAABCEBgRwKHa3De3t5+wvH+/v7TmsX2BNTUeDOjLD2dbNaO1dMbNTBVTG96fB62vvb5lC70eooTIxcEIAABCEAAAhCAwNgEDtXgRHOTG5pKNjby26prfVzqVQ7fejITTYpfuWkJO8k0yn6uTvaMEIAABCAAAQhAAALHIXCoBuc4WKcrrRqVOU3KHJsqe+/pi+zdRk9mpFs79mK6LuJvlXNtrWv9qidNa2PhBwEIQAACEIAABCBwG4FDfclAPL3xj6gd+emNGpUY9VM1Pbfd3v/3VvPgozcYMQ+dflz3/1GWzXoxs25Z5LGsdS/HqopqIAABCEAAAhCAwGsSOOQTHG9yXu22tZqgWw/Zany2aGzW3BPlX+OLDwQgAAEIQAACEIAABETgUA1O9cSmkmlzzzje2sj0mOipStg8qtHp1YcOAhCAAAQgAAEIQAACUwQO9RG1qc2gX0/Am5v1UdZ7Vg1VNHOtJ1Y5k744QHL/YoG1OsXi39iIBCMEIAABCEAAAhAYn8ChnuCMj3N5hX6A3/vpTFWdGpv4iFhuMqRzueb6SJnWEVtz6XJMycO2p6vqlCwaF12aRwMTlzcyksl2rU7+vZEGqEcHHQQgAAEIQAACELgvgS/X6/WaU35+fp4ul0sWD7HO//4mf220F/nx8XE6n88uGmrOwXje7Xgkpzm559jM2ylWEIAABCAAAQhAAAK3Ejhcg7NkwyM3OHEo1rXnkxvlYNyHAM3NPlyJCgEIQAACEIAABNYSoMFZSw4/CEAAAhCAAAQgAAEIQGA4AnzJwHC3hIIgAAEIQAACEIAABCAAgbUEaHDWksMPAhCAAAQgAAEIQAACEBiOAA3OcLeEgiAAAQhAAAIQgAAEIACBtQRocNaSww8CEIAABCAAAQhAAAIQGI4ADc5wt4SCIAABCEAAAhCAAAQgAIG1BGhw1pLDDwIQgAAEIAABCEAAAhAYjgANznC3hIIgAAEIQAACEIAABCAAgbUEaHDWksMPAhCAAAQgAAEIQAACEBiOAA3OALfk27dvzSp6uqYTCghAAAIQgAAEIAABCLwoga9H2/fb29tPJb+/v/+0ZgEBCEAAAhCAAAQgAAEIvC6BQzU40dzkhqaSve7tZOcQgAAEIAABCEAAAhB4bQKHanCe6Vblj57lte+1pwu779+/u/k/8/Cp5L8YIoAABCAAAQhAAAIQgMATEaDBedDN9Oaj14xUuizL69iSx3/QFkkLAQhAAAIQgAAEIACBuxM49JcM5H+Pc3d6JIQABCAAAQhAAAIQgAAEhiJwqCc48e9vvKnJ66HIUgwEIAABCEAAAhCAAAQgcHcCh2pwgk7+koG7E9shYe/jZD3dDqUQEgIQgAAEIAABCEAAAocmcKiPqPnTm6D+yt+gFv/uRj9VExQ6LghAAAIQgAAEIAABCLwagcM9wfEm5xmf5sx9AVZNzVxf7CAAAQhAAAIQgAAEIPCsBL5cr9dr3tzn5+fpcrlk8eHWHx8fp/P5fLi6ewX7k5lWkxM2LV0vNjoIQAACEIAABCAAAQgcnQANztHvIPVDAAIQgAAEIAABCEAAAj8IHOrf4PyomgkEIAABCEAAAhCAAAQgAIGCAA1OAQURBCAAAQhAAAIQgAAEIHBMAjQ4x7xvVA0BCEAAAhCAAAQgAAEIFARocAooiCAAAQhAAAIQgAAEIACBYxKgwTnmfaNqCEAAAhCAAAQgAAEIQKAgQINTQEH0ugT+89tvP20+r39SdhZz/cJurm2ka9m25J0SUUEAAhCAAAQgAIGnJHC4P/T5lHfhQZua+/dy5to9aBvdtHHw//fff5c2PV3pkIRr/b0ZUW0u8zTSSxbrtXkVgxECEIAABCAAAQg8MwEanGe+u529LWla4o+GLrHvpL2rqtcISNdqLLzQbKOmY22zIX+PW8Vyvdcjf5cxhwAEIAABCEAAAhD4LwEanAFeCX/89sePKv78+88fcyb7E8jNQtVUZBuvynXZ19eyC5nmiiNZyDXX6Daa++ixwscv17mcOQQgAAEIQAACEHhmAkM3OG9vb6f39/df+Ic8rkr3i/Hggmhu1NR4o7Nn2Wuexhz1Kc5eHHMDEnm8oaj0snGdzyu96lfsbB/6LMtrxWCEAAQgAAEIQAACr0BgyC8ZiAZGTUy+CWp6orlp2WSfo6zV6Byl3pHr7B3ye7q5e4qGI+KsudSshK/PY63a5sZear+mXnwgAAEIQAACEIDAkQgM+QRHT2ZyA6PmRoDV5Mhe8iOM/rRGczU4Wsc+Qqa19CGXTDa+557O7TSPJzr5iic2S641T4WWxN/TdqqZcL03JD6fW5/HCh+tI1bMFVPrsJFMOeRT6WTDCAEIQAACEIAABF6VwJANzivcDDUr0Yxorn1rHbpKn2W+9nnEy2vl8LH6+NnShmVpQ+T5t557o5BjVzpvILx5kK/rJdOoeJVflkUcjyVfxZJOcq2l1yh5ji89IwQgAAEIQAACEHhlAjQ4g999NTu5zGhcWldP1/JBfhsBNR0RRQ1KL6KaE7eVTDFi9Li9eNJ5PMkYIQABCEAAAhCAwCsRoME56N1uNT6xnZ7uoNudXXbvgN/TzU5ghlvEiwZGcdTMaG2pmEIAAhCAAAQgAAEIzCQw5JcMzKwds/8R6D2xqXT6SNoSgEs/srYk9iNto5nwn6oW18e8d4VejUrYVfbZxu17sXs6b5R6duggAAEIQCzbsR0AACAASURBVAACEIDAsxM41BOc/KUC+UsHjnaz1Hxo1JMXrWM/mksXsphLrrX23tPJpjX6lw0s/Tc1R22AcnNRNSTZJvjlJqUlm9t45Ly+Vv4qp+6ldBolZ4QABCAAAQhAAAKvRmDIBse/PU1zfVOampy4UZId9aZ50+J7aMnn2szx11Mcb2R87rmO0rz0Dvc9ne917Tzix6Uxx1F+jVmvJkYxfJ1t89pjzm2ocgzWEIAABCAAAQhA4FkIfLler9e8mc/Pz9Plcsniw60/Pj5O5/P5cHXfu+BbntxErUdpgOZw9WYh7PN6TozKpopTyVo53TbmcfWaGbev6kEGAQhAAAIQgAAEnpUADc6z3ln2BQEIQAACEIAABCAAgRckwJcMvOBNZ8sQgAAEIAABCEAAAhB4VgI0OM96Z9kXBCAAAQhAAAIQgAAEXpAADc4L3nS2DAEIQAACEIAABCAAgWclQIPzrHeWfUEAAhCAAAQgAAEIQOAFCdDgvOBNZ8sQgAAEIAABCEAAAhB4VgI0OM96Z9kXBCAAAQhAAAIQgAAEXpAADc4L3nRt2f/+jWTVONeu8n20TH8zpqqjp6vskUEAAhCAAAQgAAEIjE+ABmf8e7RLhUv+OOf379//+WOeuxSyY9DeH7vs6XYsidAQgAAEIAABCEAAAjsT+LpzfMLPIPDHb3/8sPrz7z9/zJncn4Ce6vz7779XJ5+KIX0kuCVPVeCesat8yCAAAQhAAAIQgMBoBIZ+gvP29tbk1dM1nQZURHMTTc09G5slT2+E7KhPcVT/3HGLhmMqRuinbObW63bR3OwV2/MwhwAEIAABCEAAAiMTGPIJTq956elGBj2ntns2OXPqObKNDvvVHnq6yv6Isj0aqCNyoGYIQAACEIAABF6PwJANzvv7+z93ompmeroj3T7/WJrmanC0jv2ETGvpQy6ZbHzvPZ3baV59iUA8sVlyrXkqtCT+3rb+0a6cy3VqHCRrrSOGbGIuuxy7Wi/1c3vNlU9r1aC19CGXTDZeU0/ndswhAAEIQAACEIDAKASGbHBGgbNnHWpWohnRXPm0Dl2lzzJf+zzi5bVy+KiPn3lTs7RhcV+P/Yh5HMr9AO81VLos80N9pYvY8eN2eR05vYYcx2vyebbLa7fVXHkqW9dV+izztc8jV14rPyMEIAABCEAAAhAYiQANzkh3o6hFzU5WRePSunq6lg/ycQhEI7HHpWYnx+7l6+lyHNYQgAAEIAABCEBgBAI0OCPchRU1tBqfCNXTrUh1KJfeU4aebqRNthqRvWrs5evp9qqHuBCAAAQgAAEIQOAWAkN/i9otG3sl394Tm0qnj6QtYbT0I2tLYmPbJnDvJyi9fD1dewdoIAABCEAAAhCAwH0JfLler9ec8vPz83S5XLL47uv4kgF9qUBO3tPJ9uPj43Q+n7UcbszNh568ZHkULp024TZLdPLPDUus/cr/pibbu23Mp/TZfq917ynNlC7XpKcXfrCXTLaukyxsstz9si78WnqXK3415pjyy/KcK9ZuIz/l6OlkwwgBCEAAAhCAAARGIjBkg7P029NaTdDoDc6jXwjelPg819XTyXaOjWz3GuMwng/oytXTyYYRAhCAAAQgAAEIQOD4BIZscLbCSoMzj2Q0J7rykxvJe+MIzU2vPnQQgAAEIAABCEAAAq9DgAbnde41O4UABCAAAQhAAAIQgMDTE+BLBp7+FrNBCEAAAhCAAAQgAAEIvA4BGpzXudfsFAIQgAAEIAABCEAAAk9PgAbn6W8xG4QABCAAAQhAAAIQgMDrEKDBeZ17zU4hAAEIQAACEIAABCDw9ARocJ7+FrNBCEAAAhCAAAQgAAEIvA4BGpzXudfsFAIQgAAEIAABCEAAAk9PgAbn6W9xe4P+92/aVmjWEIDtGmr4QAACEIAABCAAgdsJ0ODczvCQEfjjnPvetviDqTQ5+zImOgQgAAEIQAACEKgIfK2EyI5B4I/f/jj9+fefNxfbOojnQ/rUWoVkO8k1hn7qyjXlmNU6YlZ+ylXpsky2XmO2matTLEYIQAACEIAABCAAgfsRGPoJztvbW0ki5PopDV5E2GtuovlpXXFg90O65jHqR76uC1m1dpnmstU6Rs0VuzWqvuwj/9bY8os8LZ3Hyvl6flO60Ee8yMsFAQhAAAIQgAAEIHA/AkM+wWk1NoEldO/v7z8I5fUPBZObCOjgH0F0UPdxKrj7u21L7jZ5PsdHDUz2jXVPV9n38q3VVXmQQQACEIAABCAAAQhsT2DIJzjRwHgTs/22x4kYT1r0o6p8rXmMuipZ1sVadtLNHR/91CGaiC1qWNOM5Ly9Wnq6Oaxzrjk+2EAAAhCAAAQgAAEI9AkM+QSnV/IzNT7RgPjHzLQOWczj0tztNJeN83Kd5q7vzXsHbh3me01DL/ZSnfKF3z1yztl7Vcstdd5jX0u5Yw8BCEAAAhCAAASOTuBwDY4Df4aPp1VNSuwxmhPpljYqzmjJXAfu6rAfMh3mZbck9hpb5VHuNTHm+niuysf1mstO63vUqZyMEIAABCAAAQhAAAI1gcM2OM/Q3MQtuVfzUt/+WqoDe619bukr7/257yy7gwAEIAABCEDgVQgM+W9wpuA/S3OT96knNiGPeTQ//iQn269dxyG+ekrj8VzvTybm+HqcNXPPPde/qktxeroqvvxC5/Ns29PJN3JzQQACEIAABCAAAQjcj8CX6/V6zek+Pz9Pl8sli+++rhqZLMtrL/Lj4+N0Pp9dNNzcmxo9zckyrSu9NiSd1jFmP9fF4VyH79ZBPTcGU2vFV9xYe2yXy7Ya3Sf02c/1t+o8lteiuFkvedj2dNK7vcefo8/2rCEAAQhAAAIQgAAEpgkM2eBE05IvfblAT5d9jtDg5JrvuY4Deu8Afs9ani3XHLZzbJ6NC/uBAAQgAAEIQAACexMYssHZatM0OFuR3DZOfvLh0V+l4aK58bvOHAIQgAAEIAABCGxHgAZnO5ZEggAEIAABCEAAAhCAAAQeTOCQXzLwYGakhwAEIAABCEAAAhCAAAQGJUCDM+iNoSwIQAACEIAABCAAAQhAYDkBGpzlzPCAAAQgAAEIQAACEIAABAYlQIMz6I2hLAhAAAIQgAAEIAABCEBgOQEanOXM8IAABCAAAQhAAAIQgAAEBiVAgzPojaEsCEAAAhCAAAQgAAEIQGA5ARocYxZ/m6T3N1rMlCkEIAABCEAAAhCAAAQgMCABGhy7Ka/yRyZty0whAAEIQAACEIAABCDwVARocJ7qdrIZCEAAAhCAAAQgAAEIvDaBoRuct7e38u6EXD+lAUIIQAACEIAABCAAAQhA4CUJfB1x163GJmoN3fv7+4+y8/qHggkEIAABCEAAAhCAAAQg8HIEhnyCEw2MNzH3vCvx73D4ooF7EicXBCAAAQhAAAIQgAAEtiMw5BOc3vbU+Ogpj9Y9nyW6aG74soElxLCFAAQgAAEIQAACEIDAOASGfIIzB4+e8qjRmeODDQQgAAEIQAACEIAABCDw3AQO2+A8921hdxCAAAQgAAEIQAACEIDAGgKHa3B4YrPmNuMDAQhAAAIQgAAEIACB1yBwuAbnNW4Lu4QABCAAAQhAAAIQgAAE1hD4cr1er9nx8/PzdLlcsvhu6+opjX+ZgOtdngv8+Pg4nc/nLG6u9e1pfMlAExEKCEAAAhCAAAQgAAEIDE1gyAZnK2JLG5yt8hIHAhCAAAQgAAEIQAACEHgMAT6i9hjuZIUABCAAAQhAAAIQgAAEdiBAg7MDVEJCAAIQgAAEIAABCEAAAo8hQIPzGO5khQAEIAABCEAAAhCAAAR2IECDswNUQkIAAhCAAAQgAAEIQAACjyFAg/MY7mSFAAQgAAEIQAACEIAABHYgQIOzA1RCQgACEIAABCAAAQhAAAKPIUCD8xjuZIUABCAAAQhAAAIQgAAEdiBAg7MDVEJCAAIQgAAEIAABCEAAAo8hQIPzGO5khQAEIAABCEAAAhCAAAR2IHDoBuft7W0HJISEAAQgAAEIQAACEIAABI5KYOgGhwbmqC8r6oYABCAAAQhAAAIQgMBjCHx9TNp+1jmNzRybfha0EIAABCAAAQhAAAIQgMCzERjyCc77+/spflpXNDc9fcsPOQQgAAEIQAACEIAABCDw3ASGbHB6yGluenTQQQACEIAABCAAAQhA4LUJHK7Bee3bxe4hAAEIQAACEIAABCAAgR6BQzU4PL3p3Up0EIAABCAAAQhAAAIQgMCQXzLQui3x727ylwvQ9LRoIYcABCAAAQhAAAIQgMDrEThUgxO3x79cgObm9V6w7BgCEIAABCAAAQhAAAI9Al+u1+s1G3x+fp4ul0sW322dn9JEYm9sYu02WadCPz4+TufzWUtGCEAAAhCAAAQgAAEIQODJCQzZ4GzFnAZnK5LEgQAEIAABCEAAAhCAwDEIHOpLBo6BlCohAAEIQAACEIAABCAAgUcRoMF5FHnyQgACEIAABCAAAQhAAAKbE6DB2RwpASEAAQhAAAIQgAAEIACBRxGgwXkUefJCAAIQgAAEIAABCEAAApsToMHZHCkBIQABCEAAAhCAAAQgAIFHEaDBeRR58kIAAhCAAAQgAAEIQAACmxM43B/63JxACvjt27fT9+/fk/R0asnDsKf7JdCEYCpW6JdeeT/K0YuVfebkVNxsm+V5ne23Wi/JM2U7pVfNc+zCZs415x7MyTcnFzbHJdB6DbTk1U6X2lYxXDbntev2zCEAAQhAAAJbEqDBmUkz3rBbh4CsC7vWdesbf8u/VVuuI9tV8bx+n+dYlW+2mVrneir7Vg1T+UM/J37k7NlOxZjSV3uaqr3a89w8blfFqepx2VRtbst8HwJT9611j7Kfr1s+sYPQhW3Pxncqu8rHc7oPcwhAAAIQgMC9CNDgGGl/s9Y8v1n7Wm/yFuKfaXVYULxsu8V6buzKzvdT1eJ7rPwrnyWyzKqqx2tQ7MpOOh8rX9fnOHktW5dPxZTPCGNVa+ylko9Q7yvW4K8t7T/fn7n3LPyybbVWnjxWtYRNrkd+VT7pGCEAAQhAAAKPIkCDM4N89eaeDwLZxt/48wFjRsquSc4dxpUs5KrLa/C59J6wiuU+rbnH0NxtJeuNqif75XUVI2zmXsqjca5ftlNOjaH3eayrHNkmx3302uuL+vNa9YXc99eyC/uezuPF3GNmndaVjXQ+et6QV/vJNu6vuefL9lMx3VfxNEoXMTWXbs2oWnz0ODlHzpvX7qt53n9ey44RAhCAAAQg8AgCQzc4b29vp/f395+4hCxf2Sbr56z1Bq0xHwLmxMg2rQNGtluzVn1Rr+YRx9faS8jdxvO5jct97jEVK8vcfslc+beI19qj11PlUQ1uF/McL/vmdfhUshy3il3ZLInX8l8rj71XXDKTHF9+lV1Pl/eaOVbrnLtat/xyLXnd8st1ah1jjpHXVX1zZLkW+YRcl2yyLPQui5p0yUfrPLb0HiP7sIYABCAAAQiMQGDIBqdqYhzWFg2Nx4u5v2n7gSB0ee2+rvMY8guZbLLe4/hc9i6b6+s+1TxiK5bGyk4y1aJR8jmj+/g8fLWuaghdJZ+Ts2fTi5vzqb4lPr3cW+lUl8erZK7vzXv76/mFTr4ap+x7+hwj7odkGnv+lW6tXxVLr48lMZfYVjmnZFVNkk35ztH7PQj72M/Sa8t6lubGHgIQgAAEXpfAkA2OGpipRmeP21YdSnpv0tL5m7/m0mnM8lb9sm/ps1xxszyvs11eu71q0Bi6sNe65+u2spOf6zxfnssv5PJ1meK4PsfwdfgqjssfMY868l7m1FHVf+u+VEsVe05Nj7JZW+8avynGVcwpH+fmrwXNFVPrsJ8T0+09R8wVc24s+Siv/LVW/Km17BghAAEIQAAC9yIwZIMztXlvfNQMTfnM0ec3avmEvLr0hp91LveYLs8+t6w9bqtW1eF691N+2WndGitft53Su63PVZ/889ptYy59lvt6zp7mxMkxfe3zViztKWx97r4xn1Nv9rllHbW0crquta9bcj/at7ennq5X91I/vRbCT/OIr7Xi+b3o5fcYslMMjytdts9r2fno8RTT9cwhAAEIQAACjyRwyAbHm5podny9FqbesDVGHL3RxxjyPPZyeRzNFa/nt5cu51ZNVT7ptF+3kS5kOabb9eaKW/lL1/Nfoot6qzw5RrbxfWbbWFf2Lpubt4pdyZbGW2pf5Zwjm+I0J8YjbfI981qkW7pH99Pc486Zt+5fxGvpFHeqXtU0ZRfxwlb2ii+51rmeOXHlywgBCEAAAhDYg8DhGpwtmpkKZPUmfssbteLlN/8q962yNXWqvpw71+t2WZd991q39ue1VbkfVW9Vi2StvUiv0e2m9imfW8alOTLbvL6lltF8l7LZov5bcla+/npSfWHXum8tuXxzvLyWHSMEIAABCEDgEQQO1+Bs9cRmDmwdAPTmnccqRthUB4zKdiuZ51ONc2JvUavnnpNTNmIr/14tspHvnLEXr/Jfwq3ynyvzvbRqbMnn5hjNrrcf6Xqvh6yL/cmvt9e1flVM5VsSs7KtYrss8sQVvq2r0qm+8FGMlr/Lqxo9lttqnvNP2cuPEQIQgAAEIHAvAodrcO4BRgcEvZH7IUBv5rLxelq6bKu47vuIue9rbn7fy6376OX3PHNrCzv5La0t2y+JE7bZP9dc2fT2n/3vvdb+c16Xa0+SaQwfnyuGZBol1ygesc48XVfpFSOPLT/VEKPbSB5xfO5x3T7ksXb7KqZsPI7mnqdnJ3uN8nMfzb0GyeSXx9ArVuh69m7ncSp5L477MocABCAAAQhsTWDIBse/REBzfTQtRskChuS3gvE36LVvzPLTGDVFXF/fWqf8vV6fK6fspsap2nLsKfupfFkf8XKOsFGeSpdjaB222U9r2Ww9es6tY+d4LRYtefZfsnZummvMcVryNXa9WD1dzuXryi/L8tr9q3lln2V5XcUJ2Vy77N/ya70mK7leOx6rkim320lWxZWOEQIQgAAEIPAIAkM2OFNNy5R+DcjqjdvjSB+jDgCV3mW9eRVD9i2dagg7n8svj6042S7WLdut81S5M1PP6XP3Vb3Sx1rzsNNcdu6ruWy0jrGy78mqGBEn5JWf55KdZD37Vh755rEXK9seed3b51Jme3K4R53K4fuuXoeyi/26rfYvWbbztWw1tnSKJTtGCEAAAhCAwD0IfLler9ec6PPz83S5XLL4cOuPj4/T+Xw+XN0UDAEIQAACEIAABCAAAQisI/CvdW54QQACEIAABCAAAQhAAAIQGI8ADc5494SKIAABCEAAAhCAAAQgAIGVBGhwVoLDDQIQgAAEIAABCEAAAhAYjwANznj3hIogAAEIQAACEIAABCAAgZUEaHBWgsMNAhCAAAQgAAEIQAACEBiPAA3OePeEiiAAAQgclsDvv/9e1t6Sy7jSVzLZV+Mc+5ZNS+55wmbqx+23ns+pUTlbti35rX5T/tJvMU7dg94eK10ly3VWNpUs+/l6qX34Vj6VzPOsmbdituSeY46N2/v8Fl+PwxwCmcCQfwcnF3nvtf9NB/6Ow73pHycfr5Pj3CsqvY1AHEL++uuvMkhPVzrsKIwap+pp2bTkudwWh7Ab6bBW7afFZqk8M/F1ldf1W82Pch+0XzHWKHk1us0cnmG/9Mpx83puPK/VfVpyt+nNb/XvxUb3GgRocBr3mcamAQbxDwJ6jXij80PJBAJPQqB30HBdzHX5XLIYJc+HU8WRvvKRTL6VrWwqnfxkozHb5nX2y3rF2XuMvFGLxl4+r9Hn4aO176uKuzRPrkd5stzzZt2SdSv+khhzbXssch3V/ty/Yj23jpZdlbOy9Toq/dLatHeNOWYrX7b39dIack7WEBABGhyRGHD0g7MO01FmS77XFlr5JPfa9qrhiHH1y13jEfewtObqjUox/E04M8l+8omxp5OdbDxH1mld2Ujno2JKpjfe1lryPHq+pTHdN8edu46cW8SZyqccrXwtucdVDMmmfLK9/KZG9/P5VL6I6/Y5T/jvcXldkd/XrXxeZ7bPdWpdjTmO8kmuUfLeqPg9m7m6Xt5WnpDLL9vkdbZzfeg8lmp2m5Bpne21DhvlUQzJPL7buNx9HjGfqkv7z7X1/EbaX67b174334/bbDXv5erptsp/1DhDNzhvb2+n9/f3X9iG3K/KxvWjz6NRyE1Clvlatmow9t5fK1/I96zB97xkj2v9ejn2iNnLN5JuyRtO/KL3X7jax9QbgPwqu54u4nt9Ps86rVVTb6zihH2uJa9bfsrt+wvbOTH/MVrxP4q/wvWuLrnO3tr5VUWG75RN5Rcy9/V5ts/1Zf3W66qW/Lq7NaeY+d4ki9heg89vzXuLv9e6Jk5rf1WsbDvFQLW5X8zdT7rKtqphjkyxsq1yZXm1nmPbylPJJdP+q5yykc7Xc+qR373GqM/ryuut61Au56IcPZ1s1o5772ttXXP9hmxwcgPjm8lNT8/W/Y4098N0zONSM6Fm40j7ebVa/ZeQ5kf/RbHlPRQLjbfEzjHil71kGpfGX+tX5fE3H80rO5fNzR921aU8Glt2lW+W9WqZ0uVY1Voxco2q3X2yjes0Dz/FlMzXHsNzuI38qtF9Kv3WslyXr6u9en7fa8jz2m2l95ieK9tqLR5TsWWnUf63jL1YVT2VLPJLHmMvptc6ZSe9Yruvy8JOtm4T85DnmvI6+8jP5Z7P5bfMveZWTZXc/Ty/amzp3ZY5BOYSGLLB0ROZ3Lzk5iY2Kdu5G15jpyYjfNVoaK542UbyGFs6l2vuDUzIPJ/H7M0VK2w8Xq4l63t+vXwet5evp/NavA7Ns29Vj2xb9bg+x3PdrbXol7R+wWusaq5k+mUfOo+lddb7WvHkp7XbSJdlWlf6rFPco43a29K61/gFs55fpZvy8borf9c/cl7VpteQ11XZhb6ydb/ePGK2OCqfx9dcY8SWnfK4TrKpUXVM2WW9++U6lti6b9Sf1x4r60OX66hsFMNjSxZjz8ft1swj9txLdSzxmRNbcVu2LS5hv3UtrRr2lFf7l0yvnzkMejYtVtnHeUonWax9fiuTKv5UTOV3O8WRzG2yTjZLxyqmyxTP87lec9fLZ/RxyAZnCpo3PvdocHQYjkNw/GitOrPM1z4Pe18rjssUc+2YY/na56pFeSqd6pNNa3Tf1lz5FNPtpFP8lo30rbHnV+Vr2YetrpaN9K0xfims+YWQ/bSOWP6LRvLIL53nc73Pw15r2cdaMt+P6zV3fW8e9ooZ47NdvT31dD0Oa/16MW/RRT2t+97TRc5b91LlbcWcqmWKgefyWD53G4/nNi7XvOUnfWtc4rfEdipf3s8tsXOsVu618l5tkduvlq1qzKP7xjzHkz7iyleyOeNcH48/12dO/lttxMO5VjLVH/kqW9UhX601ykdxqjFsMxutZa91Zatca0bV5/FbcVRLNVZ1zYnZyiV5jqG111DZLtmX/EccD9fg5Kc4eb03ZB14985zj/i+F839cD+3BvnOtQ+78FGumK+JsSRf2Cpf9tuzFv1CyTl76/CpLv1SCp1+AVV2a2Rbx5uqobXHKb9R9M4r70w6LJ+q3f007/m04s/x7cXdQlfV0Kq3yrfENnKFvef0eRW/kuUYa20qv0fIMsO89ppc5/M1HCNuxFjr63WNMve9OJ+p+nq20nnsKl7o78GzylHJokbVrD24LObuJ1vJZes2IbvlUg6vx+NJ77LR5qqxtYfR6j1CPYdrcO7xxGakGxeHch3A924ClCv232oGtmSj/XjeLePnWMqX5bGWbota9Asqj/oFVuV32Vw79znKPJj4/vL6KPuYU6fvc479Ups94/fuS0+3dA8t+2pvkbd1hX1VVyWrYmS7vK58JAtbv6raXX+Pea5haj+yd7u8r6runk1Lp1yKJ7ssl95H2YbM526jufStuKHPulhXcsWsxhwj2/T0qjH7+Fr1aHRdNZ8TM/tNxW7pq721bCNntu/Vmm1zzXnteXtxs9+ateda49/y8bh776FVwzPJD9fgPBP81l7isJ0P2pWs5T9X7jl8Ptf/FjvPt8fepmrz/D7fopb4xaxfVBqn6mnp3b81b/keXe77zXuRzlmHjeQxz7qszzG1Xusnfx9Vz5KYla3HHHEe+/Qrr6Vzeeyzdbldy2YreeTyWvJ6Ko/7TtmOrJ9iXr0uW3tfynAul1a+uf6yU32+Z82rfcrv3qPqjLxz61rKyHP4/lw+lVvsVKfieAzJNPbq9Hiy7429PD2/kXTPsIeReEYtNDgz7kgcgHVpHgdhXToU+9rn8gmZ+1U20ueY7uvxNG/5SS5/2Wtd1SBZ2OY65O/ybKe12+R8sVasSieZbHwfoetdnld+LgtfyRVHeSqdZLLJvoqxxag3EsXSm4B+4fsvQZ+HvWxiLj/NK53LNHc/r6Gnl12MsnNZloeN79N9fK4YkmmUXKPHyvW7LuyzXjHy2PJTDTG6jeQRx+ce1+1DrlpkX8WUjceZO1fcsNf8lni9vB5X+8j2LXm2i7XHk1570DqP2Wcqn/TuJ5nGnGP0ddTdulo67V+j7LRuxdtKHnmUc0nM8KlqbMk9tvw0Zh/J3efe81xT5I+6KrlqW1N35dPLoVxhoyvHkC7LZb90VLzspzojT7bxtewk0zrHm7vO+ebsU7lzDtWSY4addO6ruXJqLfsYpcsxJVcN7pt1iiObSq84o45frtfrNRf3+fl5ulwuWXy3tX+JgJLqo2lZJ7nsfPz4+Didz2cXzZrrIBvGex5mZxWD0bAERnqdxC+hI/4CGvbmvnBhvddSTxfI1urdz+d+G7I8r3u2rmvVmeO11i73ec6xx3ptvrl+YRdX/C7JPlpr7O1vjo38l9jO9WnFXCqPfOGTr9bv2hy/8p0TK8fJPlP6bK/1lJ/qnbs/xY1RvjFv+bt9hO3SegAAFYNJREFUbz5VZ88X3TwCr8B4yCc4vaalp5t3W6etaGqmGWExTvOrN5ZX+IW11etOzKp4t745VzHXyh5RZ2//Pd2c11/49+y0X42Zm3w1hr5n6/5eu8/l7zL3Uw7pY5SPdNk+1rKvdKPJtB+vWfv0UfsKe7fVfhRH66mxFafnN8cn19yLN0fne632KJnbKW4lk05+ed3zCdvQy3fKNuxlqzx5lH5OrFa8ub45t6+X1uG+zOcTEOcYt7hv8zPf13LIJzhbIVj7BGer/MSBAAQgAAEIQAACEIAABO5L4F/3TUc2CEAAAhCAAAQgAAEIQAAC+xGgwdmPLZEhAAEIQAACEIAABCAAgTsToMG5M3DSQQACEIAABCAAAQhAAAL7EaDB2Y8tkSEAAQhAAAIQgAAEIACBOxOgwbkzcNJBAAIQgAAEIAABCEAAAvsRoMHZjy2RIQABCLwUAX39aN50Sx52PV2OU60r/0pW+bZkPf+erorn9j6XbSXr6Xr28mOEAAQg8OoEhvw7OI++KSP9AcdHsyB/mwCvkzYbNM9FIA7Vrb+X0NOJQvi27LKud4Bv1aA8jxirelt15r2uqXeLGGvybulTMYv42luVq6er7CULPy4IQOD1CNDgNO45f+yzAQbxDwJ6jXij80PJBAJPQqDVmMT2XFfN80HW162Dpw6yrvfYjrUlV21uq7hZ5uupeZXP6wx/36PiVX5u5/Mcz2NonvO0fNx+tHmuucdAuuzT2lPYz7VtxUAOAQgcmwANzsD3zw/OOkxHuS35Xltp5ZPca9urhiPG1ZusxiPuoap56WGjipFle8TMOZasVU/4bHFQUrwtYmkfe8RU7C3Has+qXXmyTazDxkfZalQMjSFv2WebsJVMo+JqlDzXJt9KLl+NESPbaR1jpVd8jxHzyr7lL9+5Y2+vc2Nkuz1i5hysIQABCLQIDN3gvL29nd7f33+qPWT5yjZZP/o6GoXcJGSZr2WrBmPv/bXyhXzPGnzPS/a41q+XY4+YvXwj63TQ2rLGPWLeUl/UE5cOabfECt899rdHzLX7FCeN4rc2njPrxXJd5I4fl83JX9lXcbQ3j1nJQi//Krb8ZeP20snPbUIXcsk0yueWUXFviZF9p2JG/Wuvlq+4rY2LHwQg8DwEhmxwqibGkXtDM2XrfkeZ+2E65nGpmVCzcZS9vGKd/uareYy8+b7iq+HYe+69bl3nr2295rXzvJY8Rtd5DOlCJpus9ziaz7GR7ZIxavBa5CtZK69qD3vZaq4Yc0aPE/Zaa1wTc07ePW0yM9/LnLy3+s/JgQ0EIHBcAkM2OGpgppqX0Mt2z1ugJiNyqNHQXHmzjeQxtnQu19wbmJB5Po/ZmytW2Hi8XEvW9/x6+TxuL19P57V4HZpn36oe2bbqcX2O57pba9Ebb7xh61AjWVV3luU3evddq8s5Yp1jhcxzVTYtfUt+S8zKN2TVlfeS68k+2V76NX7ZJ8du6VvyqKWnm9JnX+3tHmPsPefPa69DOmemuXQas9zj5HlVh2wUR+sYe/ahVw3u4/MqZvjEj8fWWr7up3mVy2UeT3E0KobWMbpvrLNNS9+S3xKz8g0ZFwQgAIGtCQzZ4PQ2eY+GJufXYTgOwfGjteyyzNc+D3tfK47LFHPtmGP52ueqRXkqneqTTWt039Zc+RTT7aRT/JaN9K2x51fla9mHra6WjfStsXcIafmE3P18nnVaK1ZlK11rjAOM/PKo+H7ICRu/5JNtXT5H5zFj7nVlXbWu8lV2LvN9uXxq7rUpr8bw9bnWHtP1rbn8VKPbSecxY+51Zd3adc7rcSpdJQufkFeX9pd1LveYLpdPL7b7yj5GxXHfkLXs3TfP3cfn2a5aq47Q9Xx7uhzX9yE/jVWe0PnVsnV5jlPpPGbMvS7pcm7JGSEAAQhsQeBwDY42fa+nN8qnUQderY88+l4098P93L3Jd6592IWPcsV8TYwl+cJW+bLfnrXkN/+c+5a1H5BynJ4u285d55h57XHmHl6qGLcyq2J6bfec51ry2mt5JDOvY81ctWuMGNprjLqnPvbyeBzNFc/9XCY71+899/xVLtUU45St+8svZOHn65Dltew8xpx5rimvPUaV0/WaVzHCN8tjXckVhxECEIDALQQO2+Dcsukj+cahXAfwvZsA5Qo+rWZgS3baj+fdMn6OpXxZHmvptqhFB4E85jf4qg696Ydujn0VYwTZ2trFbIQ93LuGkZj1Dp6Vrqr9lnupeFWuufdFMfayj7h5j76O/PHT2oPbeiz5ZZnWvq9W7LDd+vK8S2Lnfbpvj4/bVfNe3MoeGQQg8FoE/vVa2z3GbuOwrYO2Dt6SbbkDb2KUb8v4vViee4+99XKHzvP7fItadBDwUfOpunRgmWPfe4Pv6aZqaOnXxuz5ZV3sO36yPNZZtnWdrXi3yOfWnHP0/LKuxSzHvPdar2HVm8eqHtlUuq1kkWOrPGKvveZ1r+Zsq3XLJ9cca+Vt+UzJc8wpe+l7flmnfWV5xApZ6Cud9C2d4vqo+hghAAEI8ARnxmvAD8Caq/EI93wonqtTaveXr8vcLuaqwectP8nDNsfs6RQ7+yi3y0NWrV2m/DHqUqxYh22+3L/SZ3utKz+XhV2Ot1ctqmnJ6G/o8eatKx8E5urkn0fP47qQ69DgNsonmezyek2dOUbUo/heWzXv5avs58hUT9hqnvN4HNWabWLtMWSnmFq3/MK3pcsxlEc5/0n8gP9RXapD9ecxlyYW8pc+rxVX+qWj/HPcpXHc3mtX/ErvsqVzxVXdWnsc6VwWc9UXPm6jGJLJLq9bfhG7pcsxvI48VwzVE/q48vp/4qZcekYIQAACX67X6zVj+Pz8PF0ulyy+27r69rT85QJz/g3Ox8fH6Xw+L6576rC7OCAOT0lgj9eJDhgClteSM0JgLwK911xLF3JdfiiVfWuUj/Raa2zJQx+6fHlu1/XiuJ3mLftKnmW9tXQal+Zzv5jH1dqzYo84+j5yfT1dtm2tt4jRio0cAhA4BoEhG5yt0K1tcLbKTxwIrCGgg0v4HvHwsmbP+Dwngeqgqdf3nNd25S9SWZfXYbckl9vHvKov58jrVm2K7TFVm3w0ho3rfO3+sm/VIP3Rxlv2k7kdbe/UCwEIbEeABmc7lkSCAAQgAAEIQAACEIAABB5MgC8ZePANID0EIAABCEAAAhCAAAQgsB0BGpztWBIJAhCAAAQgAAEIQAACEHgwARqcB98A0kMAAhCAAAQgAAEIQAAC2xGgwdmOJZEgAAEIQAACEIAABCAAgQcToMF58A0gPQQgAAEIQAACEIAABCCwHQEanO1YEgkCEIAABCAAAQhAAAIQeDCBrw/OP2T6Pf6A45AbpaibCIzwOrnlb0bctHmcIQABCEAAAhCAwKAEaHAaN+b79+8NDWII/JeAXiPe6NyTDc3NPWmTCwIQgAAEIACBoxCgwRn4TvnBWYfpKLcl32srrXySe2171XDEuGpANB5xD9QMAQhAAAIQgAAEjkZg6H+D8/b29gvPkPnPLwYHFKhR8NJDFo2DftxGMrffc97KF/I9L9/zkjxr/Xo59ojZy3cUXTRvXBCAAAQgAAEIQGAkAkM+wakam4AW8vf395/4VbKfDA64iMO0mgcdrGPt8gNu62VK9kO/5ls/xdk63svcHDYKAQhAAAIQgMDTExiywVET02p07n1X1GREXjUamquWbCN5jC2dyzVXYyM/z+cxe3PFChuPp5ju6/qen/tUc/l6vJyvpwtb6RXL/aWrcks25ef6HM91t9by119//VOSmhCNqnOvMfLoUg1a98bKTzLFaa0jbtb1cqGDAAQgAAEIQAACexMYssFpbToaH39i4/OWzxZyHYbjEBw/Wit2lvna52Hva8VxmWKuHXMsX/tctShPpVN9smmN7tuaK59iup10it+ykb419vyqfC37sNXVspG+NcahX81By2atvIqdZXndypXttI7aY66rWodO9rJjhAAEIAABCEAAAo8mcKgGR7Ae+WRHB17VcuTR96K5H+7n7k2+c+3DLnyUK+ZrYizJF7bKl/32rOVeDYCaKW9K8j5ZQwACEIAABCAAgVcgcKgGp3piU8me6cbFoVwH8L2bAOUKfq1mYEu22o/n3TJ+jqV8WR5r6baoRU1GHtWEVPnnynoNk+uUe25c7CAAAQhAAAIQgMCzEBj6W9SeBfLSfcRhWwdtHbwlWxqrZ+9NjPL17LfUee499jZVq+f3+Ra1qJHxUfOpuqIxWdOceHOTc6yNmeOwhgAEIAABCEAAAkcg8OV6vV5zoZ+fn6fL5ZLFd1/npzN5HQVVMhX68fFxOp/PWs4e82HfD8AKosZDa7dZosv+7usxw066LHddzF0vn5wn+2Q/2Ye/x2vJs53yuq9kVS7XKYfbtfRu63PldT/Jwq4lz7qpmKGPuB4vZGo4NHqc3jzs42o1RL148vX4EUfyXkz5ZBv5Sl/VJpvs6z7MIQABCEAAAhCAwL0IDNngRNOSr9Y3q0me7WN9S4OjePngKjkjBFoN015kopGgidiLLnEhAAEIQAACEHgWAkM2OFvBXdvgbJWfOBCAAAQgAAEIQAACEIDAfQnwb3Duy5tsEIAABCAAAQhAAAIQgMCOBGhwdoRLaAhAAAIQgAAEIAABCEDgvgRocO7Lm2wQgAAEIAABCEAAAhCAwI4EaHB2hEtoCEAAAhCAAAQgAAEIQOC+BGhw7subbBCAAAQgAAEIQAACEIDAjgRocHaES2gIQAACEIAABCAAAQhA4L4EaHDuy5tsEIAABCAAAQhAAAIQgMCOBGhwdoRLaAhAAAIQgAAEIAABCEDgvgRocO7Lm2wQgAAEIAABCEAAAhCAwI4Evu4Ym9CDEfj27duPir5///5j3pvIp7Lv6Xoxt9LNzT/XrleXYoRNxaLnew9dr76e7h61rcmhmqdYT9lJHzVMxZpTp+JtEWtOPmwgAAEIQAACEFhOYOgnOG9vb7/sKGT+84sBgiaBOJQtPZj17Hu6ZhEbKubmn2vXKi0OtRHj1jit+FvIe/X1dFvkbsVQM9DS9+RzWU/Zbb33qXy9PaGDAAQgAAEIQOA+BIZ8glM1NoEj5O/v7z+RqWQ/GbCAwIYEOOBuCJNQEIAABCAAAQhAYAcCQzY4amJajc4OHE7Vf23Oh1m3kc5lqks6rd1GuizTOvSah3+1VtzW6P6K0bJ1ufupTum31OVYWntOyar6Xaf65ozu57nCt9K5TPOlfmFf+UpW7a+3l7V+a2N6vlyr65yLyzVv6V0e8WXfq7fSuV+OWdlL1vNzXdjnuK7POsVnhAAEIAABCEDg/gSGbHDuj+H/G4k4qMTBxceoRzLVprXbSaZxyk96tw+Zx6zWIWtdOVas51yVX9Shy+fZtqXLdlrLPtaSKU+MWeZrn8vWfXtz5ZWf1lXM0LX0yjHHL9vk3NVa8fOYY+V1tp+zzjF87fOIFWtdlU68NGYbxZA+r7O951Pe1tiK2bLPufN6Ti2RM9v18qGDAAQgAAEIQOA+BA7d4NzzCU/cjiUHriW3zw9n8vPD0y2HqCq2ctxjnGLWqm/Kb+va98q35f4Ua69ap5gqf9hpvqaWNT5Tte2t1349T+yjkrsNcwhAAAIQgAAE7k/gUA1OfHTNm5q83hsfh5nlhNcyW+u3vML/ehwlnx+qH90orK3l3qzXviZ6fo9m36sNHQQgAAEIQODVCQz9LWrVzYmmRj+V/l6yexxw4iDoh8g1e7tHnXPrWlvLWr+5dWW7UfNFXY9sDpzLVrV4zHwfRlrnOuM+6P+fI9VJLRCAAAQgAAEInE5frtfrNYP4/Pw8XS6XLL77On9D2tQ6F/jx8XE6n89ZXK51gNGhRWMYxzwu2VQy2WUSBFqykMelPP9b/jNEzkruNnle1Rk2LpePx3Z9Sx5+c3U5p/w8T1VHy0+2c/xlqzH7qJZK77o1ftkncnjMWLtN1qmmanQ/6cO/Jc+53Edz9821zNUpVsvf5bfGVC6NHi9krVyyb+ldHrYeV7os01p65WCEAAQgAAEIQOBxBIZscPxjaEJTfRwtZL1rSYPTi/MoXRyeODg9ij55IQABCEAAAhCAAASOSGDIBmcrkEdtcPRfhYMDDc5WrwbiQAACEIAABCAAAQi8AoFDfcnAK9yQ2CNNzavcafYJAQhAAAIQgAAEILA1gcN9ycDWAIgHAQhAAAIQgAAEIAABCDwPARqc57mX7AQCEIAABCAAAQhAAAIvT4AG5+VfAgCAAAQgAAEIQAACEIDA8xCgwXmee8lOIAABCEAAAhCAAAQg8PIEaHBe/iUAAAhAAAIQgAAEIAABCDwPARqc57mX7AQCEIAABCAAAQhAAAIvT4AG5+VfAgCAAAQgAAEIQAACEIDA8xCgwXmee8lOIAABCEAAAhCAAAQg8PIEaHCKl8C3b99+ksY6y34yeOBi5NoeiIXUEIAABCAAAQhAAAIvSmDYBuft7e2kn3xvWvJst9X6+/fvW4Uq49zSPO1dW1kwQghAAAIQgAAEIAABCAxK4OuIdUUD8/7+/qM0X7fmP4xvnESzEU2DxhvD4Q4BCEAAAhCAAAQgAAEI3JHAkA1Oa//e3IRNNEFZ1vLdQu5PWvKTk0qXZVrLV+uoTXPpXBZzl2ddrLkgAAEIQAACEIAABCAAgdNpyAbHn96MdJO8yYiGRGufR71au14y34/rNZc+2/va58onP0YIQAACEIAABCAAAQi8MoEhGxy/Ifd8QqO80UBsfeUGZk78PeqYkxcbCEAAAhCAAAQgAAEIHJXA0A3OvZub6snImsZkqxfDI3NvtQfiQAACEIAABCAAAQhA4J4Ehv4WtVE/qnbPG6RcPM0RCUYIQAACEIAABCAAAQi0CXy5Xq/XrP78/DxdLpcsvts6P7nxdWteFffx8XE6n8+V6heZNxDx5KS3Duf8dCXbh43LlDD7SS5b10s2lU8x3FcyRghAAAIQgAAEIAABCLwSgWEbnHwT/GlONDlxuSzbx3pJg1P5I4MABCAAAQhAAAIQgAAEjkVgyAZnK4Q0OFuRJA4EIAABCEAAAhCAAASOQWDYf4NzDHxUCQEIQAACEIAABCAAAQiMRIAGZ6S7QS0QgAAEIAABCEAAAhCAwE0EaHBuwoczBCAAAQhAAAIQgAAEIDASARqcke4GtUAAAhCAAAQgAAEIQAACNxGgwbkJH84QgAAEIAABCEAAAhCAwEgEaHBGuhvUAgEIQAACEIAABCAAAQjcRIAG5yZ8OEMAAhCAAAQgAAEIQAACIxGgwRnpblALBCAAAQhAAAIQgAAEIHATgeYf+rwpKs4QgAAEIAABCEAAAhCAAAQeQOD/AAYkpx9smdpcAAAAAElFTkSuQmCC" alt="" />

上面的三种方式都是通过函数库的形式给程序添加了内存分配的检测,和追踪功能,我们也可以使用一些第三方的工具来完成这些功能,比较流行的有Valgrind,Insure++等。

如何控制和监测malloc函数包?

linux提供了mallopt用来修改各选参数,以控制malloc所采用的算法,例如:何时进行sbrk进行堆收缩。规定从堆中分配内存块的上限,超出上限的内存块则使用mmap系统调用,此外还提供了mallinfo函数,这个函数会返回一个结构包含了malloc分配内存的各种统计数据。下面是mallinfo的接口声明和基本使用。

<img src="data:image/png;base64,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" alt="" />

下面是一段代码显示了当前进程的malloc分配内存信息

<img src="data:image/png;base64,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" alt="" />
<img src="data:image/png;base64,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qYCizpFBQpS149V20gQIECBAgACBOQLD/KtN+dShLjrf0lTLnjFdD6FL768expcee+541+4v+80JIqJtviJd81l+6XXuGNFuzhovnf9U+xpEnGrTK89+jwwiHm3T27cyAgQIECBA4D4Cq39Gon0SUfM1Hdtv85Xk0s9I5Ocg6hjxlp5a3svX9tn23FuB8kCah/q8xlh5AM02dfzabqq8bZdjZp/2MJfrzvq49vZa27V7zLq2vI5Z07391fpM17W3fWpdtK/1tS7La1mOf+6afaNd9m/L2ny7lqk5csypNnPqLnkKkeO1fXoBRQYb2adeY9+n1n+q7lR5HVeaAAECBAgQ2KbAEIFES1efTkTwkK9anmV5vTSQyH6vct3iga5dc5ufuneXtJ0a55nq2iChzZ/ba5jmKwOKXlm2cQ9SwpUAAQIECDynwOqBxFKsAomlJMcaZ+qg2ltpts+Dbq/NK5fVpxK9JxKvbGPvBAgQIECAwGUCAonLvLQmQIAAAQIECBAgQODt7W2ID1u7EwQIECBAgAABAgQIbEtAILGt+2W1BAgQIECAAAECBIYQEEgMcRssggABAgQIECBAgMC2BAQS27pfVkuAAAECBAgQIEBgCAGBxBC3wSIIECBAgAABAgQIbEtAILGt+2W1BAgQIECAAAECBIYQEEj89xuS8/sHhrgrFkGAAAECBAgQIEBgcAGBxH9vkC8wG/wn1fIIECBAgAABAgSGEthMILHf74eCsxgCBAgQIECAAAECryzwfYTN1yDhcDiMsCRrIECAAAECBAgQIEBgQmD1QCKCiBo8tPlYew00JvaiigABAgQIECBAgACBBwkM/9amXmCxpE18yNrnI5YUNRYBAgQIECBAgMArCKweSNSnES34vYOImC+CCP9iUysvT4AAAQIECBAgQGBaYPVAoi7vEYFDnU+aAAECBAgQIECAAIHrBIYJJNogos1ftz29CBAgQIAAAQIECBC4h8DqH7aOTfWChnjLU5TXV69drZcmQIAAAQIECBAgQOAxAqs/kWiDgxo8RDCRf4Jj6vMUj+EyCwECBAgQIECAAAECITDME4mp25HBRRt0TPW5tM6/3nSpmPYECBAgQIAAAQKvLPDt/f3998fHx+YNjsfj22632/w+bIAAAQIECBAgQIDAFgRWf2vTFpCskQABAgQIECBAgACBrwICia8e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" alt="" />

下面是运行以后的结果:

关于mallopt的使用这里就略过了,因为这东西较复杂,笔者自己也没认真看过。如果你希望了解,我给你推荐的第一手资料绝对是man 3 mallopt

为什么要内存对齐,如何内存对齐?

关于为什么要内存对齐,我推荐给大家一篇文章Data alignment: Straighten up and fly right,通常我们在讨论内存的时候常常会使用byte来作为内存的最小分配单位,于是乎大家就认为内存是一个字节一个字节的进行读取的……,但其实这是一个误区,byte做内存的基本单位这是从程序员的角度来看待内存的,如果是CPU的话,它不会也这样看待,毕竟一次只读一个字节似乎有点太慢,的确,对于CPU来说,内存是一个个内存块来读取,内存块的大小通常是2的整数次幂。不同的硬件架构不同,一般是4或8个字节,如果字节不对齐会有什么后果呢?最直接的后果就是会导致你的程序变慢。具体分析如下:

对于单字节对齐的系统来说(这也正是程序员看到的内存状态)从地址0开始读取4个字节和从地址1开始读取4个字节没有任何区别,所以也不存在字节对齐的概念,对不对齐其实都一样。对于4字节对齐的系统来说,CPU一次要读取4个字节的内容,从地址0开始读取4个字节0~3,只需要读取一次就ok了。如果从1开始读取的话,需要读二次,第一次读0~3,第二次读4~7,然后截取这两个内存块的1~4这个区域,就是读取到的四个字节的内容了。因为CPU只会一个个内存块的边界开始读取一个内存块,地址1并不是内存块的边界,因此CPU会从0开始读取。就是这样的一个简单操作导致了CPU多进行了一次读操作,可想而知内存对齐该有多重要。关于内存对齐的更多分析请看我给大家推荐的文章。linux提供了posix_memalign和memalign两个函数用于分配字节对齐的内存地址,其函数原型如下:

<img src="data:image/png;base64,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" alt="" />

如何在栈上分配内存?

我们知道malloc是在堆上进行内存分配的,但是你有听过在栈上也可以分配内存的嘛,的确是可以的alloca就可以在栈上进行内存的分配,因为当前函数的栈帧是位于堆栈的顶部。帧的上方是存在可扩展空间,只需要改堆栈指针值即可,其函数原型如下:

<img src="data:image/png;base64,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" alt="" />ly: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">       <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <alloca.h></span>
       <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> *alloca(size_t size);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

通过alloca分配的内存不需要进行释放,因为函数运行结束后自动释放对应的栈帧,修改器堆栈指针为前一个栈帧的末尾地址。alloca是不是很神奇,笔者很想知道其实现原理。尽管上文中已经说到了,其实就是利用栈上的扩展空间,扩展了栈的空间,使用栈上的扩展空间来进行内存的分配。下面是其实现代码的汇编表示.

<img src="data:image/png;base64,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" alt="" />
<img src="data:image/png;base64,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" alt="" />

根据y的地址结合汇编代码可知,栈顶的地址是0x7ffd366b7fd8 - 8 =0x7ffd366b7fd0分配的地址是0x7ffd366b7fb0, 两者相差0x20。也就是说虽然分配的是4个字节,但是栈顶却减少了0x20个字节,那么现在的栈顶就是0x7ffd366b7fb0,之前的栈顶是0x7ffd366b7fd0,这中间的区域就是分配的空间,至于为什么是0x20这一应该是和malloc的初衷相同,考虑到字节对齐吧。

相关阅读

计算机操作系统第一次实验——进程的建立(报告版)

供大家交流学习,最好自己动手做,这样才有最深切的体会。1.实验目的   学会通过基本的Linux进程控制函数创建子进程,并实现协同工作

某个进程的CPU使用率达到100%,怎么办?

你用什么方法查看CPU使用率?除了top和ps,你还知道其他查看CPU使用率的工具吗? 如何查看 CPU 使用率 说道查看 CPU 使用率的工具,大多

某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票

(1)、 定义一信号量S,初始值20 意义: S>0  S的值表示可继续进入售票厅的人数 S=0  表示售票厅已有20名购票者 S<0  表示等待进入

ProgressDialog进程条属性

很多情况下,ProgressDialog进度条不需要真实显示进度,这些滚动即可,可以设置如下属性。 mDialog = new ProgressDialog(context);

在Linux中查看所有正在运行的进程

在Linux中查看所有正在运行的进程,可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显

分享到:

栏目导航

推荐阅读

热门阅读