[{"data":1,"prerenderedAt":95},["ShallowReactive",2],{"rendered-post-55d1319f":3},{"abbrlink":4,"title":5,"date":6,"categories":7,"tags":9,"excerpt":11,"htmlChunkEnds":12,"toc":21,"htmlGzip":94},"55d1319f","CUDA编程: CUDA C编程简介","2023-12-19",[8],"CUDA 编程",[10],"CUDA","摘要 讲解 CUDA C 编程中的简单的内存管理，线程操作，如何编写核函数，使用 Thrust 库，并行计算，性能分析工具。",[13,14,15,16,17,18,19,20],12822,27160,39175,51204,63403,75422,95764,101703,[22,26,29,32,36,39,42,45,48,51,54,57,61,64,67,70,73,76,79,82,85,88,91],{"id":23,"text":24,"html":24,"level":25},"post-heading-摘要","摘要",2,{"id":27,"text":28,"html":28,"level":25},"post-heading-获取-gpu-信息","获取 GPU 信息",{"id":30,"text":31,"html":31,"level":25},"post-heading-初步内存管理","初步内存管理",{"id":33,"text":34,"html":34,"level":35},"post-heading-主机与设备的数据拷贝","主机与设备的数据拷贝",3,{"id":37,"text":38,"html":38,"level":25},"post-heading-kernel-函数","Kernel 函数",{"id":40,"text":41,"html":41,"level":35},"post-heading-kernel-限定词","kernel 限定词",{"id":43,"text":44,"html":44,"level":35},"post-heading-kernel-调用方式","kernel 调用方式",{"id":46,"text":47,"html":47,"level":25},"post-heading-cuda-的-thrust-库","CUDA 的 Thrust 库",{"id":49,"text":50,"html":50,"level":35},"post-heading-vector-容器","Vector 容器",{"id":52,"text":53,"html":53,"level":35},"post-heading-指针","指针",{"id":55,"text":56,"html":56,"level":35},"post-heading-数值操作","数值操作",{"id":58,"text":59,"html":59,"level":60},"post-heading-transformations","Transformations",4,{"id":62,"text":63,"html":63,"level":60},"post-heading-saxpy","SAXPY",{"id":65,"text":66,"html":66,"level":60},"post-heading-reductions","Reductions",{"id":68,"text":69,"html":69,"level":60},"post-heading-sorting","Sorting",{"id":71,"text":72,"html":72,"level":60},"post-heading-max-element-min-element","max_element(min_element)",{"id":74,"text":75,"html":75,"level":60},"post-heading-unique","unique",{"id":77,"text":78,"html":78,"level":25},"post-heading-建立-cuda-的并行线程计算","建立 CUDA 的并行线程计算",{"id":80,"text":81,"html":81,"level":35},"post-heading-矩阵加法","矩阵加法",{"id":83,"text":84,"html":84,"level":35},"post-heading-矩阵乘法","矩阵乘法",{"id":86,"text":87,"html":87,"level":25},"post-heading-为运行程序计时","为运行程序计时",{"id":89,"text":90,"html":90,"level":35},"post-heading-nvprof","nvprof",{"id":92,"text":93,"html":93,"level":35},"post-heading-cudaevent-计时函数","cudaEvent 计时函数","H4sIAAAAAAAAA+19\u002FXPTSLboz5u\u002Foq9v7S0SEjtxnBAgcRUke4epXXjUwsydufumUoqtxLrYkkeSQ7LzqApfSSCfQIAQwgAzCWRhiDMDC47tkP\u002FlrVp2fuJfeK+7JVmyJbmdDxIYUUVsyadPnz7dfbr7nNPndMaCgIt2+ZKCJDfFWCbK8QNN6q354rPLvjD57AzEguG6zmS4uPpb8fnPoPurnhOgGxTy9worE0rmVWHhWmF1BE7dLSxcg6PX4av5wurTwuzoh\u002FxkIbtZWJlQ70wpG4sf8pPw2RVl424hfw+OPlCfZODYhnp37UN+UtnYLMytgPMxMSXJAGbvINj1t8Wnk8XVp4XV+x\u002Fyk+rI8+LVDTg+qv44C98tw+vv\u002FjVypTOQDNd12rWgOP0OztxrGkimmpTNp+rltC9MXoEvzn4FyCujXbhBQJ2ZVd4\u002FVLKjcOxJ4flUBXhh4Zp6b119ffdDfrK4+WBrbFLJTRRyU0pmRMlMbI0sFDfHimtXUUM6I0KUDUdSUaZXTPEyl2D9sc4Afkn4BU6c\u002FRLA9\u002Ffh+BquobBwDaHJPoS\u002F\u002FqiOPDea1hcXIhe+TwkyiwmFiyuEeUYfrEzA7Ix6\u002F+2H\u002FCQoPrsM10bVe2NK7i28tQFnp5RMVqOlwR9JaRQgfmdGiuO\u002FaFznByMRAG9tKLmlQv5eMX2ruDlbfDqJwbK4Iq0WjBh1xVxanbwMugPdhw+DYvqV+vquQXDAQnGUGwSROCNJXT5UdRP+0QeijMw0lV6EK+BkQYj3MaIv3CklGd7yU5zhB1LMAOsLRw4f7gyg38OdfSlZFnggDyfZLh958FlKRYTksFFvchhXDhiRY5riTB8b7\u002FLBpSk4\u002FlbJ\u002FVx4ctkHZE6Os2Uvw53S4AAY5NiLJ4WhLl8zaAbBEAiGfOAiF5VjXb6Wdh+IsdxATCbfMfoYF42yfJdPFlOsD\u002FQLkZTE9CHc\u002FUxcQm+4eLzLxws86wOSLAoX2C5fJCWKLC93C3FB1N826ZX4O4xXcY5nI0yyyycKKT5qef0\u002FAsfr78OdIhuRwVCXr8MHhvFfHVmrieJWHxCHunxBXyDcmWTkGIh2+U63tIOOr9uYIAgC1ODmpmBT8JTlGQQHj5aeQRAEY60IRUAaHAh3BkhnhDsDUW6wsp8RN5OCKPsqf0KtaOJTiT5WlOx4SYZGuEUfAvhv0PLUankKWZ7aLE\u002FtlqcjlqcOy9NRy1NLs\u002FXRSk2LlZwWKz0tVoJaDIoIq5Iiq\u002FMjFv8fyQdkpo\u002Fjoywaej7L0CXjEwmlt9fhWBaubsDsM\u002FX+WziTVldewNlbam4B3lzxhYkksEwphLopwcqML\u002FzvlT9cYIcvCmLUF+b4SDwVZc0EWwAlWeT4AV\u002F4P+LycU6QZJFlEv8xIB83moQ\u002F6va6aiRw\u002FbF9qrgk6akI6E\u002FxEZkTeJ8NaiTHEAGyVhzYgCAJ5QsnGI53pDDJiExC8oUP1Rt4yOcPdQAAO6Tl9UbZQdBlA0jmpS+sD\u002F\u002FjGCHiQg87yEXYs6KQRIXR53GHyvpSXFzu5XgfXie\u002FYOVSUVaUOVbScB\u002F6DyaRPK4ha0RY6wlKSY4eOxYRUjJAXYD+29Ri9BJako6jpZZUA84wCZa81BtrYEGtpkZ5DDhjQRT7eSbBlt5iolk+Gt92G86dBt1CiperVpxIxWXurChEWEkSRFxmV+mIMSIbBafZhCAOg3Pc31mQZEW0h2OZKDiJFvaqJEoYx2k2cZYVcQkQcBltLc3BkL+5Alk1QsGfTzqQsXMmkNZKtbc8wQxpZY2m7xFZ507XRsxpy7DZTar+ixGTu0KT2yBpDVbrZheZL7JySuSdpW6l3LtUp+2qOwNJkdUXb\u002FwXbdjJhppsrskGeU+3xH2MFPP2xN6e+OPsJPHBMRJjIxfImvol3y+I\u002FkgKNAkVr92nSfH9HVTfsytKZuJDfvLcaaDeXdsam0EH0NZmdORMzyiZF0SbAB\u002FdR4qG678q2ZdE3YDAQh1\u002FPlkJqC7eAGjZAMZLAwagWtDPba3tLj+HOko\u002Fqo8ee5PYm8Sf4sF2j0VB2ca6+Rg48\u002FWXPV+eAF+w\u002FymIERb89fw3oLW5vRn8hUnKQhIpvepKO9nW5jqq7WSoA\u002Fz5ZJ3zpgtN9bryzQ+a4HXWvUeow00e2ekT4fgj9dWyWbvpC1e+MzSKSianLmbh7cni6nu4NAZnrxXHXqgTy+rijcLEL4WXE4aq9EN+shuQX9QnY3BsFGbvwJm0klsmKAkmCzhS\u002FRFlpa5JJKCkLjMo0ks++kmdT4NuAG9PEq1hYeHa1tUVOD5qppyoYol0k9FERp+o8ehTxA\u002Fh7s6AHNO+ftVzovQEbz4uXt3QngMYPGAU7hOiwwaSaDjBxONCpDMgR8kzOvydLnsHx0e3rk8R8rS3BKuBhE1EksNlSMreERnnjkRi5QoklnfF1feFjVUXJP0iy1pR\u002FKflzdbYTXXuvQ2CgM6YgM7uWGvlsCO9r2Smjb5V766pU6vqxLvim0e+sPvvnYFYqzYc0ThAenqsyVUy75X3E0jTjfXxRA9c3HxYfDrpjtBQ1SvZUZOSW+8\u002FXb1s+kXrFPwCD8HSb4RR2i+6JYB8gRs\u002FwZkrZD9AxmQqHq7rjHO4NQRFb29MkOTeXqx2+JMoCmKvDErUgEODAhdtaMAHCllsBBL3d7ZXxh\u002F1pclvQk3QEnAN4BiA+ZHi+8eEB2jiPLunTo5t3R7vDGBijGIIbVmhwsI1bfaTefaP7Nb9N1t3N2H2mVY6gKs2MNG0DfOTNA1EJbkRRARekgF5IYkRo50RJFkbTYX+zPFRcIHjo66tl2SjFYWHq0b3kyY4t16MGMXU7Cwp4wiNSSvBE2AzXwxIRG4JEA\u002FBwq85+OOEzSAjy8954ZRgaoOSm9Yl8C0ytAkW8H8AbXlNlM\u002FeIogcy6NyLqUpayeftvSb69\u002F2AEKTDujjBw9163CwwVU2IzR6Zua3xmb0\u002Fi2VJBQhiXOzuLlGZjOaCJtz8OGPcCRPum\u002Fr6gZalEpM0Eg0Wahyy+qPC0rmPRIF+Rll8xF8NQ9nrxWeT23NPSim0wQRqToZVh++gUsLxHCFdim43mL6WfH5z8XnlzsZEBPZ\u002Fi5fTJaT0rFAICpEJD8\u002FyEU5xh8REgFEAv7TpClxm5gkF0DbI3GAlbt8vX1xhr\u002FgAyKL97RCkuVZEfCCyPazoog0AnB1HhkH742pT3\u002FuDDDhj3BO8Oxf3jHhc7R\u002FkUcrSS1WmlqsRLVYqQpaqQqW8chKVdBKVdBKVdBKVdBKVdBKVdBKVdBKVauVqlYrVa1lXWelqtVKVauVqlYrVa1WqlqtVLVaqQpZqQpZqQpZqQqVjSgrVSErVSErVSErVSErVSGDqgNv\u002FXRTc++tDZKi5hqNkLtMwSAbkQVxP2reU6NzlboTjByz5fcnZfXtjwuMye4rS39zNn\u002FoM\u002Fs7FxhdNnwHugCpGf37wbmAIYgb3aw7IQqgtnYKoCM60KVGGuqMpc0NJ1UTDDFJBURJXZCGOhogQ0xTAdFRd3S3uELVse21sc7YLLgOOxqutNE04UgZdZecbJIRIZFgedkXDgQA2rLjzTuQBTCQTOkChtoOawg2pBwQ+nXPCjTN623tpPSioiHKDvYiRCUfEP28yYoi6MJvzqUiyHRLQMjrag4huk6JUHrIiRZ0kjVIaajXfUUwRXb94MaJ+qr2YU4vAA6hVvybpXX1Jjnn1rqkyPGyUXM1o7lJo9XPcHE2+m8Ww7lG8y7ZtXUhR5BeovLc0VV8OiN13m+nB8z6KqJPIfqQ7Xv8dAtJjo0ak+eLs1\u002F5\u002Fzdv4aDjYDfPwAFWBn1M5AKaiggfIhMjNU9FqvmC9TIO66sbawLU4DRk1H9H55Zl7Vw8u4wGYF+sbU00czeb1W477uZ+UUiQvsGdJQuY3ZU9vs1ajKZjJaujCws1Mwx89kK4yqTuF0RDGlHsJrku53lv+LNwiIZ9HZjHucOHzZLUpptKU4j7rgY3MJsxcMlpJFTtBes0IaYMqwSs1wTLNsZZVODZykH7h10Q8GbHJZvjiVnkEZ8MJZN1PkgZGzx9X1ZnI27r3OdmXfmkoqmGYgtOc4ig2WrSHCHcVtSW6jA0NBv74x3CGCcFmoMCzRFghzBHd6dZNN3VToHHOA3QHAZozgI0RwGK+frxQOqw8HF311IyNy3mZGwSdjAHq4+WC3Ovi+l3ZlsotiOPKtnJQu4NMhDlrimZKXV6pTg1W9x8oKyPw8sLyBi8uAIusCLPxkFxc7awel+9\u002F7b4\u002FurWy3lkmMQXwtSpx3DpV90ropB7gGRWtgz1ncLcSuluGqZG83coo\u002FksJ0diJSMUXFwhVG\u002Fdf0MKE+sbuW+lrD8uPrtc0Xi8qwn2aFhKhm1Hk7bVYmdvzcaEgUPA1qbdAJLoZ8P0i60bxhMxcIB6jSAqe3fh8T+25v9pWH\u002FdDN9JE8uOAc1z49U8vLICH2CmY4VseSlMYsnKaeotOH4fO6JY4UkjbAsgi59RoMwgSmVND\u002FbojCUWdY1vUY2pTgZ2qTrTbc3vzj1RYXsn3VDF9h619gBqgzqJ7MXIOSjYA\u002FRJ8MqYAaRLiJEVvrpfvHlFyWTh1F1lYwq5P86nEdVKBs2jYjoHZ+6p99aV95toEKfXtzZmi5tjlbjgTBrdz1x6rmSn0fXCp5Pw+tXCmydw6gkZQXD1x60H13VPGFf\u002FAap2S9Z2S2IEULXbfShKYsTAEuwxcLi1yOCmcdkSo2wgm99DaI9bb4hT12FtVzkynptHuOcbsQ3fCPLds8Z71njPGu9Z45OeNZ7WGk9Gp5WqNitVbQZVnuneM917pnuHaj3TvWe690z3vwvTPZmVRBOgT0u8x3WNpaBPj1qwarodN7Tt20CLT9akwB76GBwQFwNN50eo3aafAX7U9EHUnKFpe32DplciPe15KNB5KNA6z1QdIYYyVx\u002FMeo9rnV2j9bumLt\u002FLgdTo+VkcQD+L0kAr97TYm7FQMZw\u002F0pDzfD4OnM8HUVmTnvJcMJxcMHZxIaP3xPAcMarBeI4YniPG79IRAzlLZJaUzAvt2nx2rpheVvILysam7jiBL99q12KRG8PMfOHxK2SvffgEGSzxwg+IXRfOTsOZNFz9sTC9BgbiQh8TB8RyWrw8B2fHi6ubW\u002FdXie+Gm+cEvF1hgDT8IZT8ApyZV6\u002F\u002FZJCgpueUzEgh9wa5G+BAwXBpAcUmwDQh8keuFh\u002Fccg71SxraRFjgC\u002F+ZtFsPaIEDctiFVtCKbT2YhasLxfSUL6xxzHijhU8o99OI4t1Lb2\u002FJ6UF3E1EyN9Ubz0nsXDjzAtnDTT+R2MAf8g8r\u002FRMIs6lR6kEa3FASlwczQqNUVYQ4mq\u002FlOrdD242ermiCkvu5+HRFG5Z2jUEOPziO8NbIbbhxm7wh1JBSysYdNPh+XlPnp7cePVBHLpM75x\u002Fyk+ZHmF6H2TklO9199ivssPIGhWvCfkmFucfw1gbyVsBxnQh+dfEGGuQz8yjiwMwV7JzzUL9G7tAYUzMtbCUYkW\u002FAP98RPyBkzBiZrM4tCxoS7qUMjRY57sEKmjGLK6D77Fc4fgaKtANnr2nG4MyIktsg\u002FDJCMCP\u002FrCn1XQ7efGIMZeKxRAC3cvPF1SW0n7Ajhjg2wbVf1fl05aAxVaLeGEHRbBau6ZJGu3SPb\u002Fpbrvkj3Qnm\u002F5wVlPwM81fUV8tl6F0mLBmi6r11mJ8x5qz5pTZtPWu\u002FZ+0\u002FcNb+j24iLVmtSlLNUYFiVnI6WrDIjOtFiJ1hDUsW\u002FgLinCTT2rTM6iC\u002F36+fNC7VmSo2znHof89AI+jpawRnpEZwDtny9P\u002FAXPtxt52UdYmnQl5yvZpPE+fUwi\u002FP4Oh1dT5tZDZA6xGWa\u002FpCMwlv3SymbxiyvRSwBAdigrNpeHPFKF6+qPcMGJUOiFwUbe0KuTcw+wzenoRrWZjO\u002FH8pG+USrcBwBFOvoRiKOEPBC1IIrX9LC3DtFnqDRWBFNX1GNfh3+3qAS0WkmKUmGQdlK6\u002FqjGRU9SE\u002FDmfSWyM3PuRv4ABT0yT2FonGiDFuPVhSsqPa4o8dTdHqI1kCxyGXxqV7iKDFERQR5uoG4qgzPFx6DtfQnoL4P6Itcd+wzAIlM7W1OIIyKpiKI\u002Ffj9DIcySuZbLM6fq+weLlwd1nJTMHRB+VNO2fbMnzuJvZujXfIj1AfHcWnK4WlbDG9bAwBuHQNbYjuvFAyL9R\u002FXlbWUb6Nsr0ZyUWhjt9Scr+QzTvJSFH45RfkJ\u002FvyCWLF7DRKMfF+Ar6aNeLClTlwK1nTrp6o6M4N85GYKPCl4FaWvT0B+iuLQ6ZZ3Z2Lz3\u002FeGrtZ3d0ZlHZJwK3eY0DZ2NScsedz8OmPcHwNrk6q47NkHwJvTG09+qmYfqf+egW1NJeDN5\u002FqbuEtLf52gE43736DebRRcPUQrmwVmuTvYX5ma25ETV+G62\u002FVzPWtB0tw4w68MVXcfEjSoBhB0+D118XLc3jyI9KK\u002F7ymZhHXyRdtmzs6VfzppXGi0rxn0\u002Fni2Bt18QVcXVDWbxDXT6z4sXR4Ye5XJTtNgvkRUw0+5ZEYqsT1GuUJuQNHf1My+KyHDnZrcHYSbbQWs2hfkV9ATMu9JRtDMtS1YYCd+7VjJS6i7cczr5RcDs9zNMnREVOr3BB2aL++uq5kDM9OVBrPrdeogZhALzCStzk7oJsz\u002FNdzxfz0HfkkOcoJ++fJ98n4EO7+4QCvCCQA75doqJgH2G64upltW0OgS9tWfhkd8g+Bw2TfSR4ayEMPl\u002FAPubuamFEOW1AOm1EOm1EOu6NM8RI3wLNu7KqoOoqaww03lMgGDXjHTr4fBpxjOyqdPw6Z+dLl5h5kWDywxRn\u002FsXDAtXCLTWFTH7iWbXYrS1lv\u002FR54s5DG93JRcOiP0cY\u002FRusJVeYXEUEQoxzPyCx+Bf4YrW\u002FU9eVYQII\u002FBqOgzHjYaB6r5ofhRhPPTN+HGwE31Ag49BkdqnewEx5Er9QSTfiM6FgrGt3Va3WxERmsrT6+3WCM4eQCq5GsHZi3TzONEyxNu8pptpioq9nKbQ5ZZHJozhjlUtysEEGdpo1SszrkkKNrmsUXy67yQ\u002FXH9RFVA\u002FXa+cxC90c1y9MESCgRbogVF\u002FeNijFL0f2u3NIlF0WdzbtVZ0k41tJSihlcLmNd5s8Ro0ecVX6VmTVJf6r332pmHZId0\u002FAdaURfAcmrSWJ5m+H0RJ5K5qZdIkw7uyWON1xYuNYk47SnTTB7xxfWI\u002FSbcqFa05Raf0P2k8dZJTtNcgeoK0\u002FVR5swewecO\u002F8XDGqUQbk6jZ+R\u002Fo4kLFUy03ouUXRxe3a8ZMe6eaWweBkZYpeeo1Qs+Xk4eQ\u002FdwX+N8rwSazJSJW0+KqYRGLmPr2SmYX4EztxS744Xpse0S\u002Fy4hvOCEL\u002FAyUDJvIKT1+HsS60dSFl3\u002F8nW4sjWT4\u002Fg0j24eqP483VindxaHIHpPLy+XHiYgdk5uPTGSEKKOowYfe6\u002F1bqKnC4IN43A8qb+Ikll4doGziwzZWg8tIIpieMHAErXJiWZCIu6W9fyoiyncGa5ZDaXjR5ANjnEbJi9s\u002FXoR5jJwKUFdF9+bArOTjkbs8h9mya4ug4frPjCX+NHQB6NsP1aPyOGYYUQCmxA0kG8TBu5JQov0zh77FLh+RQgaBGd46Nw\u002FCUphnoA67fIr\u002F4YNiRqajfjHVEVkdQAZr2dp6rxVDWequagqmrIo3dr1vy4vVuzn7rSiyxJAYug3w89lEZH2fJywG6WfiInafNx4xSIMRKQZEFkBljQL4ggBDheZgdYUU+VW\u002FU8Tvrm2DHTILEP+FfeYGxOd2z0qd04EVOeZM0s4XhO5pg4yhXG8VFukIummDhg4yyCsDDllMt1V116fOd6j67Fej\u002FPDWELFcJgMzXCIBVCQ0hWR9hKhTBkvTt4yu+qZUtJsV7kUO6saDN8cvX2UOkMTvklrCQA5AgvATnGYg91IPRr+11wytzX2\u002FD21+YWQupwv8O98ZJZh1LDFQZzO7HSBUWbktHgRY075T6tzYX7BfEQKs6BLtB8HHBAI1rS9CvoRoc7NpsrJjZdaEAxKVkwdNfHTtW7XRbhtskRkcU9YmGDez+QEtVHYNkA3NaI4YWLB2DUdKPbjSZxDk6hCx2WxRf0mBmoLwEWkBoWgR7QBU4dBxSk6XIYDeUeEGF40MeChBDl+jnDNILR9OxYOB89apFUbgjphHNHRw3LUOXM7dnDudazJ3PtFGD4KOgBjMgCVF+CkbkIE48PgygbZ2U2Ci7GWB7LXn07oQtkyrZ+DA2sSY67LD\u002FOG9CKxd7tglNzdRhjSXaBCVFcpjJWzLoyuVNdxLndFjtaHaaj1AK3iyi6RvL65eJqxqJV6zJUaIaTZHpd+80ktypTRFoElP4zcll7mFGyt0v5KNcf29T6N+47vYiSmVCfjBFPqyqo4ew15PSEo\u002FyRay7qfBqnxnxQeD6F8ru9vksQYa\u002FEEfWXp1tXN4jzFFFGVsSuK3nVm+OVFt9fhUvPkZouO1dcW1GvTxPq\u002FzVyBWg5W4k739qokpso5KaQz1X2ofrwDUoTe3ccKWBvjqiL6ZLHPyoEf71bWMrq6mEjRSwce1J4PoXYri0I5JoNQoKbhOiYvK5O\u002FALHH8HnE3DyHnZWm4AjeSOWICezIlPilqca9FSDnmrwd6Ma9HRjn5tuTKMESct9JQAJyH0lQGK\u002FT7F8ZJ\u002FC7n1eKkqTPo6Jx4HM8oaGEp2KmLJzqSwAXXZRay63e2x15EZPdVa4nBNoIpDV6KpjZqjEyuTIxYmSDCR2kOUtx2oGlFh51MxKnV1u6gc09fTTZ4+roqKPHTCGzKH6RlALNDjsdvOegn16u6iUheYRaFGLXOTkmImV\u002Fdwga1VQHHwVeo8fc5Z0gPbVlbttOx94ZhZhzVJzI2hpBMFG0Npovp1HO+Z0aasPD3cFWfm4c4dm+agBS+eNhnRnSFDhxunBUFCzccU8cgcpHxo0jUR497qBtU1CKnYQNdbeqq6iUUrlVTX9q10ooe0EEToYcXso4oLQhK+pDkIT4KY6CEWsGAoQihbVALKNjDXGhUd9UpMVUVfYoOt9q1dL2irr5qVMIaLpVLTMMDhkA7nlq95\u002Fq\u002F48oj5eBraKFEtgjuLmPIm6YITLQEcoFOPlBYliUfzpZeH5mpLJkkuwxbWrJPWEem0G3npdeDRC3hBg9ben6PahccU4P7I1N+LskUaybPjCerYNzQdNrvRBs\u002FIjKZd4QLLF6HeC4cYdJf8EXl8u3YbGuEmOC8N7TcusY7qIaCTUqaiiuPkQXadeu1z8+bqng\u002FJ0UJ+1Duqja13sYgGfcfeKKC2HVWw1InMRJAV0HBRLFkqQwLfwnRfIilNtA0KEBMJxV3f77WcQJveRtEoawRnQ4LZroIuKWaIf7cTc+XRRZJIWZuGTi3F0TsoicGaX43k5Ke\u002FKKQUFVsTCuNpZReNfxcnDve0piTW3k+N1P2smPiCInBxLGMbGWg+4GuUk5ilCfhicaaSJoWl326F82+YeXMR2sb27BkfyZM\u002FgC5uftIU3FqosJIsML\u002FULIrLNCrzkC5+3vugMxELEGmd9j0KUwPQ6ubePdqXXl4uTV+HDNyQ5FrFlGYYvmJ1DXvWYGLSIr40WcnfUHxdLkQVyD1BQKTMG3YykbbPIHivzCr77rZCbAY6bLEDCTGlRQ8qoRnWvXoVro6QmOHrdiKhACCXxQVAEuckxuLoAR\u002FL\u002FGrlSFtmC3Mwo7Vl0IkrnUH23Z\u002F1dZJNxxvlnoydM5r2Hb+DSQnkjAIpI8Xi5sDjRyYCYyPZ3+WKynJSOBQIEl3+Ak2OpPj8nBKJCJDAgCqlkb29ZT\u002FtjciKOBL84wMpdvt6+OMNf8AGRxeu6kGR5VgS8ILL9rCiigQlX51Gf3BtTn\u002F7cGWA8c523Vfq8t0qkds9cZ37cnif\u002FZ2LqOzgmNkOW\u002F47NXJ61USNA21fsLxO0QwKzT6z4vGye+JCJQkGgG96s1cIpkcNbS7PtnYQajm+7Z2f6pjoXKE77lBalj9Cebz+z9vz3x2yPg+X0G2Loa2kMNhIr347NfN\u002FUZAVzh96GmS+RTMks+BZ0gaZvam2K6ai3t21pBN\u002FWhJmGeJ4dKAVioB+elIxFqyn4b820flGQamWtWT\u002Fz3zW13R3aytXq9rKaR9E36BoDCB7goVQbO3d\u002F4CWEaCqekvZq5GnbKOJlFGOBwLMSUhd+qw1Glq95MBoaH9LO2ljiDk07HmnyVLY01zJoiUn\u002F21p5YXZg2DtGYNu8G7i2T+wtmUxrHU2m4C0ue1IbhwLnYbjPEYVq8RjYnYQknzkaV829jRJeYoaSw77wuRPfnP3WULjjpw\u002F58XMRJs6I4EQ8GWPAN+BsPCWBbz\u002FkbxhKbhSK5eRfTpz7kB8\u002FyUhcBPyF41lcYoDtExlwLtWXFIUBtNP7kL+hZ3W5Q65yEGW7EWIZrr9VMnMl1OtvkWl89hZKirF0rTA7qi5mP+THNX+FpCigFJAoOMwNpJrPZApzKyhs8OpTFNSHeC9Mjim5JazHz6pPxlCYnPV59fVdFPeb4L35hIT\u002FKeSuwdlxRMSzK6CT\u002Fd66X73AyOyQz+ZdE0q4nIj7wp3oCxhKxHmJaMSPBQIXL170X2z1C+JAoOXo0Y7AaUaO4T+n\u002F4JwsQmGl7mIFO5MiMLFcGeCCw93BhJcuDMhoFtGCQG\u002FY4x3\u002F3f8vvF2yHh72HinlQ4QdAzPCzJWtwOWjwior7t8TDIZ5yL4bWCoCTcKhYhkGlBAxuHOQKkQ2mqXKAyg5um7bxs2EH2+kxpVh+1jpPJXkiymZKRbHkZaa6ItPtbsbw+2sYnjg6yIL+01MXFugD\u002FW1OxvORoKsYnjPltSEoIYBYhQHhka4gbWBCMOcHyTqOFubm07inEM2yLBsZKcygaPHOlwrl9k4z7UczvGaoOBnneh9rZWah6FmW2QGwwGnSvoQysdHqo7xrsjNrS3tx+xHUPNHa018Mc24uuO+XN437nzUSeY\u002FQf7PfZKu\u002F5WybzaP5k7tC2pOXRwZGWotbl9G+PZsU\u002FIldV9XgJrXcQOTncckJkFlEyW7HGQsX+\u002FepPZVm8yB6c3a5tcDFW3kJ0ozGRIkrMyDw9TZETsRYJ1tDiUIk5jqO3TPfcHz\u002F3Bc38wPzq5P3x0+3\u002FJl1IWU5FqpjzyptcXxufwXm2264XckwdEBF5yw1+ZRJ6pHk\u002Fbjg6q9Oigl6kHdlmWS7h1+XgIgf5wqapVyiapkkuEfBuSHM1SQtKignOxTtVXB9m1\u002FiFZA4Zs47XvBONwfbUyVsTk8wdgMLsm1SEDGgDWJ5Tyi1+qu2TrUF3dGE6VpQOP2e33k2XInGisPaSUheMogDzm+je7hulbI9aZ3jUUunKs2NG74gCbdnZTIV8OXbOgO1GPE1PUqEMV2Wgqovkw\u002F9X4bmhTbcJ5I4\u002FcaMpwyNVSjhGn5kLuGrl4RC4HGZ7LJBMtydanOzi\u002FUzbuEG9rkgUPxbomqW6tqNRfr6BMd96+0ds3fsx94z7d+DF5UEmpBMmBRGEwJROSCILdDCBglXe7dEeDzm6d3LbRutr1Uzh+H6XuxEAoVGc9aDayiGeJEQYZd0gELlPgLZ1qRBn2nuNlUmeptBbO65dn5M4lufephf7X8cHbkwaYlgx89aqS+0WdT5N84KRO+PCJ+mrJOGIrmSX10dMiTn4Ab0+WbtG+uqHk3hm3HgzMzrcd+EEuyjGm2w6aMyKT5MilB0m\u002F+1BaHLxrD578\u002FrTkt\u002FXc70nzPZPmttcoD3zzqy0TDpfMei17XxLtUp1ehjP34dICSgxtCPZHyzb72JG8Jwc9OejpP+n0n+Txd3v9izx+NpmAy+9gaaL0d33\u002F5sDdkNv3sJwRZJSku45kCZL2fYoRWYTgPL7UobmIaxkq8I8kSB+RnKD\u002F0FA9aMKgQw1Dzq0zGiGziWTclEnR\u002FkhaAh9Osih9nQ6OqXLDX6PFBbeomqmFzhpx\u002FiCZGs5rdoSPqvVH6Z2HdkPjf2BCfqLeBowoMhbtOZURYcglYYO+BqKEDT84g7X4aWJxBqmgWqmgQgbUJRpffLIGmaPfuLNpB5fNyq0iLgFdeilStA81YqNI9S7aXqDJVBIw4kCq4n5kSbxStzPFM+Jwr5A8bjHc6KozajR9nAUP1RBGE8E1VFJzDVzRLxvxJYsSPSWoEOiqfr1C+l40EijXZuTqtR6Xo71DNR2Yq8FbNQZ6nzZiFjeWOqfeOXsPZsGBCAJZy52ONn\u002FoyBHjCFBTQMNySxjWJ8P11+q9deS8PzoF8yPqvXUSThAlgxh9oL6+i+IULj2HS89Jcl+SoeJfI1e0IIF2tx8EUcbbpnPki2Gzg+l1ixFu+jbMIlc6+H7cuGpAXsKbj4tXN7xUs56GwtNQHGwNxWdy+Ecy6yAf+P1+v6Mym8qByXQCcI\u002FWWMrnSIHqxN\u002FOVNty02ySaTblFDAdFDBtFDD6xLh0nCqEIBo7+l7kRCM4gcIGVg3heAJwEk7T9QMJlR5qBG2N4Egj6LhkaBYOaKcDAC6ww5LW9XZ7pcrOd4MKUUEFqaA6qKDaqKBMw8CxF2KM4Vc6yMRTrOQ4IYw5\u002F+9DwSPHGfLhMhit8H01wkdqhI\u002FWCM\u002FWCN9vga9hYvX2DfdeYI2b5mjgNeLhR4JzEqZXnW24gDbhABqzLajrg+hPCP1pQ3+OoD+l6eeOkVRsTGJLrzYCSyfoj33WR9b62G991DrkwAsDbwVAA1VGG\u002FBeu4WAzqVoQGQZmd1G8ILqsYJLC00HXl\u002Fa8FoTbAQtpZFe5RCpvJ8g18rLA6Sam41\u002FIRZnFBp2\u002FF1x7AXxL1LTc8X3V43Ujs4HxwQz1KQFwWpKcLz+Hakmh3q1h0MJjte\u002F1xsnS\u002FXXK+riCE6XOA7XZtC1eM+i7Z0XP5Hz4mdyhmKHZJFNMI7nF0cVNZozqMyxY3oUF5w5g9ItxyQcDGXjIBupQdv4IT9ZtUS5i071lTEpSBy+l9lFWtMEaiTreB3CCVD7Bpk46AINCE8V9yB4\u002Fa3h026E\u002FShuvlJyP8MHK0b2jOL0Ozhzr1JmqjdGULKRjanCxirSzI1Owff34fgaCe\u002FtLLpTPPc9mhHks6TxWxs1qxyVzCs197T49rX66KmSe4vUfSQbyKuHWyM34FhWfbSMap1JG4sH+YnAewLdE+ifhECXPoYC8DNZNYjEqEHptU3PBE7qlUx+Dz\u002FU\u002FcHNnGrnl\u002FAHmxJE6vcJQrwKHfvhs4Atfq0kWUmyhfIGpKVQ0Lgk9wftyw+2bHAwjh1KtviHurqSQf+QljOFeFGg98P4\u002FXDF+7\u002Fj93+vP173B+LvQLMH0JcdsnIma7I0ukNb7IxugNbxdai+vpEe8fG6KrAiIxmYPyl+bIsd1VygSeuAkTGMWAvhzAt0R29tlGaLod7HQcoevkEn1vEnWw+WSonFcnfg7LieNBWdejH7teq05GK4iLYdClZuh2AuW3g50YQyDDUhAnHYtUJ2E6Vnw2ZXX5iAgO6vek4AW5DOQCyoncAtwSxQEJKl53D1rZqfKyxlldwy3pxdUzbukKxqJAkLgn\u002F8j635fxJsaFs1O13IvSq8fFK8eUXJL6h3HxA82lXKSAoFnQMwe0drI6ZIp8UpIxypg8R884XNT0Z2uDL6CXacbmW\u002FQqh028SEO2ET\u002Fe3ktkKtdIMurPs5eXBCrrTXEp\u002FLKVDOkZY2jKPbFsknH+PtyO4ENzuxjXZ8CsHNdmMEtTUTik6WkVT2gWL6mCUJUR2Sy9hWSfiqLElnKaXbaYZnBtiofh9Gj4dZWB2BU3fVR8vF9BucuArd6yYSH4UHWp+AN6aKq7+hE+\u002FCtXKcOrLbk6Zf2EQExUnALwqvbpBElcXNy4XnOXXiXfHNI7QEGdfNx17AmysEprD6tDA7itaie+vK+02yPS\u002Fk78HRB4iy\u002FM3CyzTJ9AkusCLPxoF64zlJ06nkF7YeTCkb0\u002FovOOsV\u002FvHueGF6DJVfXDHLe1TN+C0l94uSXyimnxVyo8XV34rPf8aJsl6XViETZd5p2ztte6dt6+O+u9uQxwN+IYg8WqlqtVLVaqWq1UpVq5WqVitVrVaqQlaqQlaqQlaqQmUjykpVyEpVyEpVyEpVyEpVyEpVm5WqNitVbVaq2gyqDrxSx12ng1bEPXKjql5xr5jiZS6xVxe33AlwSVi011VLcpQTKBu9TeXZaUYWOf0WQJUIaiYTyEV333gTZKwGL\u002FqGweNVL8KU1HY7DGo2wMpfI1eP6io5wiPQcMJZ0WZqsChcpIKLCHH7Kzc1eamfwDfKBv8mChdBg\u002FZ0ERxG2L9z8E+viZd0EcX2n5XOcJbRMOjMcjdOgi4wSMHNgbjQx8R3yk3CoxPRaE3s1L+eLH3trmV82TGf2GlZJvpldMg\u002FDA4DfCQgDw3koYdL+E2h6+g6y4J3yIx3yIx3yA2vOd2UZfQd6m4kA8dhVJh8c8oKnigVrLe98eRc9KSpaH3VkULBJcfRsbuX+SoFu3vCdx3MuF3jDBusduWpcqnYq7pN0wTNj4bu6oE9bfQNpKdpMsk3NNRjs4etlHPIHk9odM48s8uknTy4pHXvImkVY4w\u002FOYzuaHcBJORjoIG+Kpr15WOxSFurGrXmfLRBsz\u002FVdldUW1dasJHQ0PaY+prdpW9PT5ZDnCyH6C6H6C6HcBkf\u002FaXQwxSBjQBHd0EUcFjCkQF6HBw+zNWDyl0K9527sPRbJWCp8VWLBsuKXqqrekU5yiVanVcsvJ6f4\u002F5OsT10pqqVxknYAKo5o6d7CwZELkrXgEMX9d0MgvcPgSaKFa0eBMxlGsGhmAXL8DawDNuywNhalhZR\u002FEdvYGMJA8ABddF9aOyOfKIRnGwE3ZRTvgcfK84N85GYKPAlzh3am8RqbgFoHS2bJLmVbtkkT5+sZdOc7Wonts0Gz7b5adk2a+LRHpkwD0L+qn0xYhKhQYyYnlHNM6p5RjXrI6VRbY9NI\u002FbOpnultzuditvJoD3W21mUnBfcDxo2R4NPXx247UNZF9WRDO2StePlccAdPlxvCfuFL06Dw3Zcr65t5OpttRCuukaOaBp3QT964WBqK9GcLR1YTqfiOziwIFzuZwQbP08Uln1zFjlukgPA6lP1\u002Fltf2Pa15s9pd9TgB5Oi0O8Lk0\u002FjeEEegTqfLm6OwekcuUhphMqBtzaU3BLy1Hy3DK+jSOvKxihcXCnkxgsv08S3FUUWur5MJJyGzh9o8At6YPj8Arnfo+SWlcwE+C9G5HHEnr3fpQgl66a3TfG2KS7blD1e+Lu0f\u002FrgPwa0ieKyfHCSs0wzgHjBFGQ8iRjFRt3gBUOfQeytkhvwRU6OlRZHEgkuwiSZPi7OycNuV+T9LqnPDfSM4Y4PYtxAjBX9FUsZAF9JLDjz9Zc9X54AZyQ0DsG5YUlmE66Em1beL85+hSIeRjh+gJKW7rNfAYlJJOP0RawEdmusoicQDQUO1WfHgb+itBKA5K+oRGm6hh9lB9k4ugHk15JcRIREAAlKqUkYZEU0k0C\u002FIIKEILIgysoMF5f8GhnulyEKD1fhjSklk1P\u002FeRldVsCunFv\u002F+BXeXFEyU3B0Sp1Lq5OXzUuA7seK1w+ybGjOobkpOJNWcsvI6dS+Zw2fW+JjStYasspo0QF4aVgCNmsNXPuVIC8sTsDxNeJyitdH4rqKVjScewk5oa6ukzUoGS5uPtga051X0SqVUxezSma6uPoeLo0Z9zsMX1sls6RkXhhXJZT3EzomQreTU69+mYSU9FZAbwU8OCvgp3VQJ4+e96v58SN4v+7xNum\u002FTvz1zJdnvrBLRlpuY4r6BcrF2RVqmALKMLwDTpZAJMbFoyLLo0U7wkoSK4GLXDwO+lhtGWejfrtTrN6Ao3pH1HULSY6NYoHrVr0smLYKfr2U2+ZCFPQ7kQCtQaCPiVygqwFdSPbX4WvJUVaWAPI7cOuNUmOcYYzJ42YuDVWHaWuvDnOEAsYQQG6WZwqaDUfuHcIYEtCNHgoYw3V8hzBHd6dZNN3VToEn6HKUMIYPRbPaKOo6QgFDQc4ug9RFBZ71132B0swxsv2pxBoJLyAnkgG0R24SWbR1aGpu6Q\u002F5v49KspiwBMmrc4l3b1l7LBB6lAFfOOAIUx7l7DtgU1UJka310oPxYDyYHcAYU7m5mQLPH42pSqRGmx+JELcSTVoJkU26SZKgJ0k8GA\u002FmU4bZqSSRvo9zMusmJFp3WUj8aYiNpKh2S\u002FygPCSlrBsjIMmMLGnk153785dnz\u002F6px+4kVEmcKAgyFZyFNSAquCvjTZr+iMDLDMeDM1+D80i9C\u002F40JLO8hBzrDp35+vw39fhM6XfjdmjfuI1OpEySc2d4naO9\u002FjxXiq9lY1WvHIP1AJwXZCZOh5GX6gE4k0qAbiYel6qYs08MDlgLIjMxGzUe3Mqe5viysq7QzFAZ9Dk52sMOluo9wyRYAIAd4wwTQZP2D4Am6z\u002FTC8tvTg808PoJw8EpwDhtHvUbB05HDwJD+rQeaQsFmzs6ykrQxIenwluyW+0+9LZgq7ev2URFyeJQV71YS0UlbpS1twZbyzuKju0UeE1N2HXo7cLWyPb\u002FFFkWAAq2N1ey3U2z0R5qryxRfatdtXs6gq3ltOwedPMRetjWo+Xtc1ODtftbraMdh8apc1vqLHrwj7rUDSRTKHbOJ7m3wKZTLfJP1d1E+36yOMEmUESGg7yh6BZSvFzjXqK0kahpG1HTLqJ8EwH+F24t2kiCnW4mSu9pv9kho99ItLX4221Eq5vsaWsO0YopE5w7QouUrAF0twgtB6Vfjv6Gp3wCC1RwShZ6vqvG8lCHv7Iyd\u002FJCzR27y\u002FJQcwcty8tBd4vQctBtsrxHFk5957qSHdlnMYusgdXELBGNh06frF3s4TJY7OFvtGKvOrBJ7GFgXezhh22KvT2Wc+4DqJl6GNPtfitQ7jtoDdA2k8hj4Q5YSES\u002Fbm5ko8cc7snufHdai3lhr2jQFJPu6YlsnfrOcnIk5nn2eZ59nmef9uh59pkfPc++2jz7dBZ4nn2OBTzPPs+zbwcwnmff5+fZ197e4nn2eTAezO8LZmf+OO2eZ58H48F4MLsgSTzPPgfdYrvn2WfDcM+zL16jZ5\u002Fh23eg3PsqTFaukqXC68ll5IXa2o8GO462lpXYqY+fgZfKa2+b0NuCrc1mXGaA2J7HmQsr21s6gpUlaHhPgZfeda926O3C1sh74uinzcbt8N5N23G0ucIbble8\u002FY62hdrofR9qg25vO0oLGwy2ldsoXRayliNHy8c9tlAGexDvPZe\u002F3d50eC5\u002Fu7jT8Fz+aL7tzOWvPeSv9LxyF0AdHdvx+3BHSOl\u002FVgG6S4RWgNKvSbW7\u002FLW2+YO1sbylrf3IrrIcIaT2siwD3S1Cy0G3yXLP5c9z+fNc\u002FjyXv\u002F1m4cdy+avN7rBXNNC4\u002FJkjApojChJvFiLxyKaPxLjNvKJwD5xbQQ4yY0+U9Wl1Pu0QJBDFV2wDcGQKpdN++AbefFK8koarC0pWC6BYWLhWTL9RX9\u002F9kJ90rbQyhXiwR\u002Ftta3Gk+Ozy1k+P4NI9mF5XspOF3BsS5JAkGIHp9a2NWZJTnHgz2sUURpjZQZaXm0j4YdJOknjlT+g9ML8vpTTJLcMbU1pWE1P6AhJKEQV9HB+F4y+Lq08Lq\u002FfJsQTmR4rvH5PU4er9t1v338Dbk5WpD8hPXgIEz\u002FvS8760Pnrel+bHg+Z9SR4\u002F6azi5LFsoFuparNS1WZQ9dEzknsJUKvU\u002FbEToOI\u002FxrahV0ZnTFFuBJIsJGtI283GmaTERtHOrKbMI25nSYOqbpFlZCN3Bc4HiamkzETnjENI1oLir2xEEI3slRqfXJqq6zCPO2VP9FLNHgDSvFSz1QeWl2p2myJCSFJKCOoabBJqanKMHsefSsLaIhBNQrzRvA5o9Ely9NixiJCS3VYfQ5f5fUqQj5c6BEQEST4GyOuKVcy8fFAjlxyQYTpZPho3rXBeomCXTYWXKJhshl33Jb+rRMGYB3u6p9vhZmo3koJ9GmL9AEp17SiRSMVlzkgivH8Cnoo7PSxSlA1bBlwt3K0oT905HzkRts21QVOqIoCy+YxllUxWK1JXsUS7TfSW9pZ244KiVOc2EKpTK7lYAv4fw4Kn9ZWkAQA=",1793389733734]