<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>NumPy on Hacper&#39;s Blog</title>
    <link>https://hacperme.com/tags/numpy/</link>
    <description>Recent content in NumPy on Hacper&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Tue, 26 Jun 2018 21:01:59 +0800</lastBuildDate>
    <atom:link href="https://hacperme.com/tags/numpy/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>NumPy 学习笔记</title>
      <link>https://hacperme.com/posts/notes/2018-06-26-numpy_note/</link>
      <pubDate>Tue, 26 Jun 2018 21:01:59 +0800</pubDate>
      <guid>https://hacperme.com/posts/notes/2018-06-26-numpy_note/</guid>
      <description>数组 （ndarray）介绍 这个数组我感觉更像是矩阵,官方文档说它是一个多维数组对象(ndarray)。 NumPy provides an N-dimensional array type, the ndarray, which describes a collection of “items</description>
      <content:encoded><![CDATA[<h2 id="数组-ndarray介绍">数组 （ndarray）介绍</h2>
<p>这个数组我感觉更像是矩阵,官方文档说它是一个多维数组对象(ndarray)。</p>
<blockquote>
<p>NumPy provides an N-dimensional array type, the ndarray, which describes a collection of “items” of the same type. The items can be indexed using for example N integers.</p>
</blockquote>
<p>Array 的数据结构：<br>
<img loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAACiCAIAAACiW38eAAAP8klEQVR4nO2dPY6sRhdAS5asJ0tjWwRPduCRLLLnyFI7mGgiAseWkGYFaJKRJqvgBU7ZQm2BLRB4A2yBLbCF&#43;oLrLvP1D9N00XBpzgmeprsLbjVUnUcV9C3jAUAZdV1bBTjnuq5b&#43;mAsjFm6AgDwH03T5HnunGvbdum6&#43;KqqiqIoy3LpiiwJigTQgihJ24VbVVXW2qVrsRgoEkAFXdfleb50LU7jnHPOLV2LZUCRACooikLD4PocRVEsXYVlQJEAKhhwUJZlc96lOVkH51xd1zf79npBkQAqGJjvO/jImNhuO7CHc9Xoum6bM5IoEkAFyhU5/NEdgyIBVDBKkc65PM&#43;TJJGPuq7Lsmy32&#43;V5LjfE5R15U8o0TZOmqYzZUeTloEgAFYxSpDyr2HWdyC7PcynTtq3MaYZZxX4ZuSvtnEORl4MiAVRw3UBb/jbGhHspWZbJH/I8Y1EUoczJPVxdjY2AIgFUEKnIrIf3Xv6w1lZVhSJjQJEAKohRZJ7nTdP4/fPnMriWScmmaRhox4AiAVQQo8hwcybLMvGgtVZuzhRFkSSJc65pmlAmTdP4amwEFAmgAiVuUlINPaBIABUocZOSaugBRQKoQImblFRDDygSQAVK3KSkGnq4H0W2beucm&#43;iH/HeO3P0EVdjzAtKQxmK4hnfMnSjSWlsUxTYzkYylbduyLPM815x6a4PoF5D&#43;Gt6Ce1BklmXIcSxd1xVFweWkHvQLSH8Nb8HqFWmtxY/XIZbUtgzAZtEvIP01vAXrVmT40T5cR9M0G1&#43;8SQ/6BaS/hrdg3YrcbCbkCeH/GCXoF5D&#43;Gt6CdStym&#43;dsWjiGStB/IvTX8BagyK3DMVSC/hOhv4a3AEVuHY6hEk6eiH7uidk4tx7sNpsKitw6HEMlnDwRdV2b2TnXJLbZVFDkIVmWDWTTk6BXLLsuv/yJqNet0FmrDYIidYIiD/lQkcaYbJ/7fsLdLsU2271ChhU5w2n6MNY2m4rGTns5U50z51yapsaYoij6LrPWJklijEnTtKoqvzddsORxgZP0rwXquk6SJEkS&#43;agsS2OMc0727JyTT8NXa5pmt9tJiCuuXj9km&#43;1&#43;fpxzP//88/Pz89vb28kn1VCkTlDkvy1DrBQM6L2XRT9kbbkgNUlzv9vtmqY5WeAkXdeJ5uq6lt&#43;0mP16THmeG2Mka/RBNay1XdclSbLb7eq6lq0GRHwd22z3i/D169dPnz5JA/vll19&#43;//33vjFRpE5QpO8LS5QkiqzrWiRV17VcY0r5cAl5rsBJ&#43;hen4lapfJIkeZ6HAv1qyGWjXFr6/WqfUnhCXl9fIxPDwIW8v7//8MMP/Vm/77///uHh4fHxsSzL9/f347ODIhcHRR7OEoaX8ryFNJrgTd9T5MkC4s0&#43;IriDKOHaMBjwZDWstQdT6VdMgw6zzXY/P13Xff78&#43;aeffjq4eAycPBEocnFUK7Lrur///nvgJ4aTnLNzV5EyBJb3ZZgs5YOnThY4J7UDA0pQ&#43;VcSSQxcRZZlWe&#43;ZPDfPNtv9/MjpGyiwdkVWVSW9QMY60lCl/Uun6L88N5UvfUq2lUmtxX8gq1qR3vuvX79&#43;8803xxM3wiTt5txcpJwtu1&#43;sva/INE2bpjlX4CSy56qqRIgy1u4PnKVAmqbWWmlq9v/nIuXGzuRdBUUqYdWKlIYqnUiEKA1bepasxdh/afcLfB9M5cs1gQSSBj/55PtYplHktFM2B/zxxx8H12Xffvvtw8PDb7/99vLyMkn9wx3tLMvkprb3vmmacJtb7Bmm1aXkuQInqapK/sMMZeRluEndH1mfvKPdf3NCUKQSVq3Itm3Fem3bivuCE9M0DQn35GUIZ4&#43;m8mXCfbfbee/zPB&#43;4BTobkylykv0c03Xdly9f5MxdeBNwLYR72fJyqQcnV30M74lVK7LrOmnPZj8vHxTZnz3vvzw31x/6hYZRtleuyK7r/vrrr7GPkulH/qcN97IFFLlxVq3I/ry82O1DRZ6b65ex9o0ecbsC1YpUGzcSaYsyoRneRJEb5w4UKTNOYc7KX6BIezSVL4aVS8vJvlsEKHLrcAyVsGpFhlFzmqZlWcpta//RQPvcVH4Q7mTfLQIUuXU4hkpYtSKnRcm9bAFFbh2OoRJQpCDPVyoZZXsUCRxDJaBIQWYhb5Gx5TpQ5NZRMuMDKFIn61akc07JhMV6QZFKQJE6WbciJbHYIqHvA/ld49K1AO83r0hzgxQtk7BuRXrvy7LkQvI65BcRS9cC/gVFoshbYa9aTGbjtG0b0rGABtauyJPJBEICaXnOMeRwOZcT6GCTg2z/8ijlzLa5B0V6751zRVE458JPnuEckj4gtFdQwtoVmaapyFEe/JYJHLvP&#43;iN/2H3yqpM5gUKGNHOUASjk5B9Yw/ZG3IkiheN0tnCMc65t26XPFRxiV67IkOG06zprrfxURt6UAvIrmoGcQPJHWCu0nwEoXEVO&#43;o0v4q4UCbBe1q7IqqpC5h5Z3MmfmmH8MCdQVVViRtPLALTgAqIoEkAFa1ek0HWdpOoR3/WvIpumCYmoB3ICySYy0AkZgFAkwNZZtSLDkNnuM/fI03jyd5iLLIriw5xAYaaynwEIRQJsnVUrUj4NA&#43;Q8z&#43;Vm4PEd7Q9zAslS8qaXAahtWxQJsHXWrsh7BUUCqABF6gRFAqgAReoERQKoAEXqBEUCqABF6gRFAqgAReoERQKoAEXqBEUCqGBYkWmaZjcmZN9BkX1QJIAKhhU5JyiyD4oEUAGK1AmKBFDBtJ2oruvHx8cJd&#43;i32s1RJIAKpu1Eb29vP/7444Q79Fvt5igSQAXTLlT3/Pw8rSLrut7m8icoEkAF0yry6enJ7NMyToIkDJ9qbysCRQKoQJYVmWpvv/76qzHm7e1tkr21bbvZ1ZhRJIAWwpIvkYT74M/Pz/F7k6UUNrsYHIoEUIQswRa5k7e3N1Hk09NT5K7qut74YsIoEkAXdV1Lwu2reXx8fHh4&#43;PTp03fffXf1ToqiKIpC1nrdMigS4N748uXLP//88/7&#43;/vnz5wnv2GwTFAlwb8i42FrbdR2KjARFAtwn9MpJQJEA9wm9chJQJMB9Qq&#43;cBBQJcJ/QKycBRQLcJ/TKSUCRAPcJvXISUCTAfUKvnAQUCXCf0CsnAUUC3Cf0yklAkQD3Cb1yElAkwH1Cr5yE/xTZdZ3k9rgiKcjT09O1&#43;UQA4CbQK68gz3NrbT855r&#43;KrKoqz/OrE69b/r8CUAa98jqapumnyDTyVmTWdU4GgDbolTGEROum/&#43;JqOBkA2qBXxiDLUXjvzSRrP3IyALRBr4zEWtu2rbFTrP3IyQDQBr0ykqZpnHNmkuPIyQDQBr0yHmstigTQi6yscB0vLy/XbRg/rLwbUCSAasKK2HNCdw58oMjLn7d8fX2NfmZzYrIsu/AoZFk2W63&#43;/PNPYsUzUfuPYp5m8/LyMr8iZ3vmXH&#43;zsR8qMqIJLczllZ/zaxJrXbEGmKca4SpyBiMXRTHzVaT&#43;ZoMix5WMh1jrijXAzIqcIdycsQT9zQZFjisZD7HWFWsAFBmP/maDIseVjIdY64o1AIqMR3&#43;zQZHjSsZDrHXFGgBFxqO/2aDIcSXjIda6Yg2AIuPR32xQ5LiS8RBrXbEGQJHx6G82KHJcyXiIta5YA6DIePQ3GxQ5rmQ8xFpXrAFQZDz6mw2KHFcyHmKtK9YAKDIe/c0GRY4rGQ&#43;x1hVrABQZj/5mgyLHlYyHWOuKNQCKjEd/s0GR40rGQ6x1xRoARcajv9lEKTLLMmOmWYZ78r15FEmsG4Mi49HfbFDkuJLxEGtdsQZAkfHobzYTKNI5lySJJGuSZRRl5TBjTJIkYQ9N00h5KSlr1IaSWZbtdrugSOdcmqbGmN1u999qtvt8UBcmgkSRxLopKDIe/c1mAkWmaSraMsbIYtxZliVJUlVVWZbhcEsBa6211hgjqy&#43;Gv0WUokg5T0VR1HW92&#43;2SJJE08eJcCXfhd7v8KFxYMh5izRPLOSeN7XiNges&#43;uq4a8aDIZWNNoMiwALdc5bVtG1zpvRfHya6cc13XVVUlJb33aZqmaSol5bLRey95PaWNSuGyLGX/ofCF323ykvEQa4ZYITWs/LcaBiJXf3RdNSYBRS4ba8q5SBHfyaU2vPdVVYkEw6g8bHKwtzAeD0g1&#43;oUv/G6Tl4yHWLeO1TTNQfuRIcvVH11XjalAkcvGml6R4Sqyv6Ca917GyG3bdl0XZCdvyuYHV5HH67GhSGJdEuv4P&#43;nQbK776LpqTAWKXDbW9Ir0vbnIqqqSJNntdt77JEnk7o1sJSXFhgNzkVKgqiqPIol1cSz57/ZgFBLz0XXVmAQUuWysmygy3KcW08lkpdz4FkuKE6VkMGZRFMGA4Y52mqbiR48iiXVxrPD4RP&#43;ZipiPrqvGJKDIZWNFKVI5KJJYNwVFxqO/2aDIcSXjIda6Yg2AIuPR32xQ5LiS8RBrXbEGQJHx6G82KHJcyXiIta5YA6DIePQ3GxQ5rmQ8xFpXrAFQZDz6mw2KHFcyHmKtK9YAKDIe/c0GRY4rGQ&#43;x1hVrABQZj/5mgyLHlYyHWOuKNQCKjEd/s0GR40rGQ6x1xRoARcajv9mgyHEl4yHWumINgCLj0d9sUOS4kvEQa12xBkCR8ehvNihyXMl4iLWuWAPMrMiD7Fm3QHJgo8iDrVDkCs4TsZaKNcDMipwTFNnfauhw1HVt18zlR2E2Xl9fiRVJXddXtPXJmefLvry8zK/Ip6eneb6d/mZjhxUJAMvStu1sEom0yV2CIgEAzoIiAQBOI5fwxjkXMnsDAIDgnKvr2nRdF9Z0BQAAQdaPMd77siy5kAQACAQr/rs&#43;l7XWObdolQAAVFCWZbhJ898Shs65oiicc7JmIQDApmjb1jmX53l/VG0OCq39cXEAgKs5fib0UJEAABBAkQAAZ0GRAABnQZEAAGdBkQAAZ0GRAABnQZEAAGdBkQAAZ0GRMDHGmCzLlq4FwDSgSJgYFAn3BIqEEYj&#43;rLXGmDRNw6&#43;1nHNJksjKUEGRTdNkWSbLoWRZ1jSN917ekfJ1XR&#43;8PN6kaRpjjKSl8t7neW6Madt2qSMAWwNFwghEXnmeB0v6/Sp9aZpaa9M0DYoU2clPX4Pm5M00TcWAJ18ebCL7lAokSbLb7ZY7ALA5UCSMwBgTDCU6894XRWGMkYtEuegTRVprJXFUVVUH3pTCxy9PbiK6rKpKdl6W5ezfG7YLioQR9OcZgyLDHwdlqqqSC0AZg/cVGQofvDy5iZgxXFoyyoY5QZEwgpOK7F9Ftm0byiRJkqZp27Zd112oyJObeO/TNJXBOKNsmBkUCSM4qchzc5FJkiRJYq2Vkhcq8ngTvx9rM8qG&#43;UGRMIKTivT/f0dbbnmHN0V5eZ73b9eEHR68PLmJ34&#43;1GWXD/KBIWAfcy4ZFQJGgnaZpyrJklA2LgCJBO&#43;FxdBaeg/lBkQAAZ/kfhnRxC1hX3RsAAAAASUVORK5CYIIA" alt=""  />
</p>
<p>ndarray 是一个通用的同构数据多维容器，数组中的所有元素类型都必须是相同的。每个数组都有一个 shape 和一个 dtype，分别表示数组的维度和元素的数据类型。</p>
<h2 id="创建数组">创建数组</h2>
<h3 id="直接用-nparray函数将其他序列转换成-ndarray-数组">直接用 np.array()函数将其他序列转换成 ndarray 数组</h3>
<p>输入数据可以是列表、元组、数组等序列类型</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 列表</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([1, 2, 3, 4])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 元组</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([1, 2, 3, 4])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">rank</span><span class="p">(</span><span class="n">a</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ndim</span><span class="p">(</span><span class="n">a</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>1</p>
<p>1</p>
<p>i:\python364\lib\site-packages\ipykernel_launcher.py:1: VisibleDeprecationWarning: <code>rank</code> is deprecated; use the <code>ndim</code> attribute or function instead. To find the rank of a matrix see <code>numpy.linalg.matrix_rank</code>.<br>
&ldquo;&ldquo;&ldquo;Entry point for launching an IPython kernel.</p>
<p>numpy.ndarray</p>
<ul>
<li>rank 表示数组的维数</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">shape</span> <span class="c1">#查看维数，shape 是个元组，表示数组大小</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>(4,)</p>
<p>这表示是一维向量，但未指定是行向量还是列向量</p>
<ul>
<li>可以用 reshape 函数指定</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">reshape</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="c1"># 前面的1表示一行，后面的-1是占位符，代表4</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">shape</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 行向量</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>(1, 4)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">reshape</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">shape</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 列向量</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>(4, 1)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">reshape</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">shape</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 两行两列的数组</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>[[1 2]</p>
<p>[3 4]]</p>
<p>(2, 2)</p>
<ul>
<li>NumPy 的数组索引是从 0 开始的</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="s1">&#39;--------------&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="s1">&#39;--------------&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">88</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>[[1 2][3 4]]</p>
<hr>
<p>4</p>
<p>[[ 1 2][88 4]]</p>
<h3 id="还可以用这些函数新建数组">还可以用这些函数新建数组</h3>
<ul>
<li>ones 创建元素为全 1 的数组</li>
<li>zeros 创建元素为全 0 的数组</li>
<li>full 还可以用 full 函数实现</li>
<li>eye/identity 创建单位矩阵</li>
<li>empty 创建新数组，只分配内存，但不填充值</li>
<li>ones_like 以另一个数组为参数，根据其形状和数据类型创建元素全 1 的数组，类似的有 zeros_like、empty_like</li>
<li>random 创建元素值为（0,1）范围的随机值矩阵</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1., 1., 1., 1.],<br>
[1., 1., 1., 1.],<br>
[1., 1., 1., 1.]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[0., 0., 0.],<br>
[0., 0., 0.]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">full</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 1, 1, 1],<br>
[1, 1, 1, 1],<br>
[1, 1, 1, 1]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span>  <span class="n">np</span><span class="o">.</span><span class="n">eye</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1., 0., 0., 0., 0.],<br>
[0., 1., 0., 0., 0.],<br>
[0., 0., 1., 0., 0.],<br>
[0., 0., 0., 1., 0.],<br>
[0., 0., 0., 0., 1.]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span>  <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span> <span class="c1"># 元素的值是不定值，不是0哦</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[6.17021380e-042, 8.98497795e-067, 8.32380315e-071],<br>
[1.22082702e+165, 3.97948961e-315, 1.89124308e+219]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones_like</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1., 1., 1.],<br>
[1., 1., 1.]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[0., 0., 0.],<br>
[0., 0., 0.]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span>  <span class="n">np</span><span class="o">.</span><span class="n">eye</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[5.97915591e-305, 6.01020264e-305, 5.98054658e-305],<br>
[5.98037274e-305, 5.99198485e-305, 5.98252833e-305],<br>
[5.96785670e-305, 2.15228723e-280, 5.98586589e-305]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span>  <span class="n">np</span><span class="o">.</span><span class="n">identity</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1., 0., 0., 0.],<br>
[0., 1., 0., 0.],<br>
[0., 0., 1., 0.],<br>
[0., 0., 0., 1.]])</p>
<p>eye identity 都可以创建单位矩阵，除了参数不同之外，二者有何区别？</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[0.99217117, 0.26712817, 0.27010174],<br>
[0.30047328, 0.46375106, 0.37945124]])</p>
<h2 id="索引-和切片">索引 和切片</h2>
<p>数组的索引是从 0 开始的，二维数组的索引如下图：<br>
<img loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABR4AAAJPCAIAAACVSF/MAAAgAElEQVR4nOzdeZhcZYE2fP96v&#43;&#43;7hKS76uxbbb0mISFsyr4IOo6jzuiMgAO4jM4wvjDIvksYBIZFRwQUERAVAoRNcFRAcWFJ70s2IlvS3dV7VVf1UstZnuX746mudJJORumlOsn9u&#43;6rr6JTXXW6uqg6dz3Pec6HOKeMEc6pCOMcQRAEQRAEQRAEQZA9srcPlTFOCfHL1RpBEARBEARBEARBkNmyp&#43;nKTT/EGOOcU0oZY5QjCIIgCIIgCIIgyCEdwijjXFwgjAaUiO/sjbCAceoT70OcU88r&#43;r5bKOR83w0CD0EQBEEQBEEQBEEO2bhuwfOKQeCJKd6UBoT4jJFZRq0Zo5Ryzj8UBB6fMSdclHIEQRAEQRAEQRAEOcTDOA8o8UnAOCdsXxPCKWOkVK0pDTinjJGKHxeOIAiCIAiCIAiCIEsws1ZrL/A5px8i0xPHfRIQRn3fRRAEQRAEQRAEQZBDNkHgeV5RzAkXl4PA83131mpNOeOcfohx7pPg&#43;BNPOP7kU44/&#43;ZSTTjkZQRAEQRAEQRAEQQ7ZHH/iCcefeMIpp516ymmnnnTKySeefNJJp5w8&#43;6g1Y4QQwuiHGOeu7536sTPzxcKsi4kDAAAAAAAAHDoY55zT6UngtFDInfGxs7zAn&#43;26VFwT1RoAAAAAAABgl7&#43;8WjPGRLtGtQYAAAAAAADYBdUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAAAAAADmBNUaAAAAAAAAYE5QrQEAAKACpnc&#43;9vcdAACAAwWqNQAAAFQA45xyVv6KUg0AAAc0VGsAAACoAEpLuxCMc0JIQEn5OwAAAAccVGsAAACoADYjlDMv8F3fyxcLld4uAACADwLVGgAAACogoGRXtaaUEMIYZoUDAMCBCtUaAAAAKoYxxrCAGQAAHPhQrQEAAKACKCeE&#43;CKUBuKCT7xKbxcAAMAHgWoNAAAAFRBQn3HKOf3db18&#43;&#43;fiPWpp6xumndnW2V3q7AAAAPghUawAAAJjFzGXG9vhPxqloxbv/J99javeM/6QzL/PdLtOzTjs5Ho1FLTNq2f/4mc&#43;IWxO3z6cvT28DLd/C9G2WrkAIoZz4vk8ICajv&#43;h4hPuP0lhtvPOmjH9FU2bYMRQ5HTGvRHkAAADikoFoDAADArOjuNVh8i7EZnXb3dr1nry5fYJzO&#43;CadeYFzXhNPOLapy5JcXWVoOmEB45SwoFyt&#43;a4fp&#43;Udlz2qNeWMEJ9S6pPA910vcP/7rjtPPPZYKVxdm6hRw1JDfa0SqnYMfeEeLwAAOJShWgMAAMAs2IxBY9ct&#43;CQIKGGMFYtF1y3wUvstX3nP&#43;CTwSVBwi3xGteacE&#43;K7ruu6rtjz8EmwckWDLiuGokpVy2OWPl2nOaU0CIKi54qp455XdN0C5Syg/owyv6t7M0YY5z7xvnPHbcesWRW1zHgsEnfsunisLh5TQtWWqRu6usgPIwAAHCJQrQEAAGAW4pxYnHPCKOPUC9wg8PLFHOWEce4FvpiGzRjzPM/zimJnghBCOSt6Luc8oIQQ4rou51QIgoAQn7DSsDNhlHN&#43;/dVX2boRqqqWQuGbb7xO3LU4NRellDHmBW7RKwSUEEaDwKOcMEbEbXqBXy7505Wb10RjEdupr6upiUaillmfiNu6Vp&#43;I66pm60YFH1IAADiIoVoDAADALGaOCfu&#43;6xOv4OYpDXK5XD6fL52Jenpwe&#43;&#43;p48Vi0XXdfD4/4zBsWhqy9otTUxPlI7Q5588//eQVl1z08q/&#43;J5fLTd8CJcQPAs/zil7gEkbz&#43;SnXLbhugTHCGNn7fiknnPNiMf&#43;3Hz8rYhr1dTWrVjZ&#43;9Jija6KRhrp6Q1EjtqOEwov8MAIAwCEC1RoAAABmQWlAOaE04JwGgSe6LmGBqNmE&#43;L7vUhr4vkuI7/u&#43;T4J8sSCGqYMgKLjFgJJisej6RUIIIb7nFX3iFT3XJ544yZbo25QTzqnv&#43;2IHg5bOdS2GrAmlAWOEEN/1i4QFrlsgLPC8YkD9IPDEhomp4F7gcs4pZxf/&#43;4WWpq4&#43;YuVt69blpiZqY/GoZTuWbepG1DIr/LACAMBBCtUaAAAAZsc4J4z6xKM0&#43;M0vX7z&#43;yivPOv2Uo45YYapKTTzxiY&#43;dccM1V6dGRjnn00uL8Zuuvb4mGos6kahl26a1pnFl&#43;Z8e/uEPHUO3dcPQVUtTLzjnHDFqfdTaNbZlxB077kRq4glxrLWYTB5Qf2iw/9rLL//4Gadamu4Y5tqVK7/8xS8&#43;9MP7po8DLw2bB0FAOSm4RUqDB&#43;6757orLxseGhAD47GoE7EdU9Vq4glT1Sr1YAIAwMEN1RoAAABmQTkprb/NyAXnnKPLkqbKlqaGQ1WGIhu6ahmmrWtrVzW&#43;9D8vUBqIMjw0MFhXUyuWJVPDkhIK//CeexhjjNMvnXuuqki6rKiKpCrSs0&#43;tF624oa5eDYeili1XV2mKWGasdL&#43;/&#43;eWLaxobLU01dFWTwoocNlXFUORPfOwMcQUxqM449QIxou4HQeAFbsEtlhcPj5hG1IkYmu5YNo61BgCABYJqDQAAALObrtZs3Q3XRy0z7thRy47HIuLo5SMaG2JRJ&#43;JYJ534kSAIyvsTXzn/PFNV1LC07LDDNSl8/tlnFwoFxulRq4&#43;wNN1UlZpo7G/O/Fj5wOyGunrHMC1N1yRZrg5xzkVbHhxIrlrZKFdXmaoWXr7MNDTbtGpjUcc2b7nxxpnHde9j4/dz&#43;wAAAPMM1RoAAABmwUpfKeXkt6&#43;8JCZUf&#43;Fzn735xuu&#43;dsEFdfFYIhaviyfi0VgiFr/rtlumdwloV2e7bRnh5cuUULUSCtfFY0Wv8MIvnqmPxWK2o8tSIhb/8Q/v21f1LZ8oe90N10adiC4rmqJK4erG&#43;oYzTj/1qFWrEvHoU48/Vr67/Ww/qjUAACwaVGsAAACYHeM0CALGeaFQuOaKS3fueM/3XTGkfNl/XLyyviEWiUZMw1S1sz//9&#43;XzURPif/yM06WqakOR1bBkyur//OLZqy&#43;/LGZbiYhj68YJxx3Ndu18zFJ9xWj535x5umOYpqopofDpJ5&#43;0c8d7PvF8392w/ufi/NWcU7rvoWtUawAAWEyo1gAAADALcSA045wQ3wv8iYmJydyEF7iMMUrp0088Fo/GIqYVd&#43;x4NPZ3f3NW&#43;SRbnPMffP8eS1NFK9ZV7Yarrjr9tJMSEScWiUYt&#43;zv/det&#43;q3XplFpHrFylhkNRJxJeXnXNZZdN5Sen8pMTU5Ou74mDtzEhHAAAlg5UawAAAJgVJaVzYtGi5xJGp/KT&#43;fxUEATdXR0/uv&#43;&#43;2pq4Y9mWqWuKqsqKGGqmVIxy54458ghNkk1VM1Xt2LWrHcOsr6uJmMaRq9eMjg7z/VXf0uj3qoZGTZU1RdUkORFxXnzu2WKxWCgUKCeUlsarKcWEcAAAWBJQrQEAAGAWjJdOMF30Cp7nFYv5lpaWC//ly0etPkJXNVs3bF1zDDMejcWiTm1NfPokW5RzTlhw7ZWXGZpuKKouS1HLNnUjEYsnIs7NN1zLp3vvfiaEc07PO&#43;efLMO0NF0NS0qoWg5LF1/49f5kb6GQE2Pp09fc9/bv4/YBAADmHao1AAAAzE4sDy567C3fut4xdEtT49FY1InUJmps04o6EV3VbF1TQtXl0WbOKSH&#43;4ECyPhG3dUMNS6qs2LoWj0VqY/H33n2b77dal3dKnn9uQ8x2pFBYlxU1HLJMPRFxVjc0vPryS5QGbHre&#43;L43HtUaAAAWD6o1AAAAzGJ6CJoyTm&#43;89irHsuNOJO7YtYma&#43;rqa&#43;kTcMsx4NOYYumWYalia3qWglBPOacEtfuFznxVjzros2bpmmfrffOKscgPfT7UW90s5ueeuu6RwtaHpajhUG4vHbCsasdesXPX7V1&#43;eeQv72n5UawAAWDSo1gAAADALNr1S9/rHf5qIR6Wq5ZamVx&#43;&#43;7BMfO239o48yzmORaENNQpelWNTRJLm87BnnnLAg2ddTn4g7hq6Eqg1Nj9lO1DIbamp//8pvKKXlZcyYqL6WLaqvFArzXef94pQGjz/68IrG&#43;oaaWqlquSbJEdOwDPMTHzuNlzZv/9vPOao1AAAsClRrAAAAmAWbPpL5X79yQcR2NCmsq5pUtXz79m2i00adSF08YWlqbSyqKtL09Snn1CfB7bf8p6bKlmGq4ZAYsq6LJxzL/vevf9Un3h4TwqOWbSiqLitydUjceEDLh1LTwcH&#43;L//zOaHq5aqsmLrh2GZ9bd2rL7&#43;0nwOtOao1AAAsLlRrAAAAmEW5Wp/4keOilq2psibJp554gpjRzThdUVcbcayIaZi6oe9aIZwyTl3XPXrNak0K27qhKeraVY010VhdPJGIROOOvXlTV3lcmnPeUFcfMS1T1dSwpITC5V2L6WFzLlYd/&#43;Y3vhFxLKmqekVdfTRi337LOoxaAwDA0oFqDQAAALMoTwhftbJRk8IR05Kqqk8/7ZTpVkzjju0YumlojmE6hsl2tXG64anHDUW2dUNM4f6vW9bFo7FELB53IlEncvP114tTZ4kfqauptU3L0nRDUeWwVJ5YzjgnLMgV8ozTfLGQz08Zimqqmm1a9Yma29at41ghHAAAlgxUawAAAJhVaXT6qLVrdE0Ra31HI/ZAfx/j9IHvf78mETN1w1Q1S9MNRS7vTFAafPKsM3RZEmuY/dNnP5tM9q5oaLQMs6G&#43;1lS1I9cc0dfTW66&#43;jfUNhqbPPNbaC1zO&#43;f33fPfJJx4PAi87kZmamvjpww/ZuqYqUsx2ErH4Y48&#43;zHatST4LVGsAAFhMqNYAAAAwq9J5qi/44tmi&#43;iqhsCbJJx9/3KUX/Xs0YtfFY4Yix2xLjCSXlxNva22O2Y4UrjZVRa6uuvu/bvdJ8KVzz42YRm1N3NaNmmjs1pvXzay&#43;1nT1lULh8jzwsz//OU2SHUM/5YTjj1zVqISqQ1XV0YitqXJjbd3YWIpj1BoAAJYMVGsAAACYndg5eOHZZ6KWqcuKJsniJFiJWNwxzEQ86hi6bRlydchUtfLJt756wfmmqslSSAqFparlm7s3Mcbuueuu&#43;kQ8YjuxSNTWjbWrGjkrtd/G2rpy9ZWqqoMgKHou57y&#43;ts4yTNPQDEVWQtWqIimhasvUbd2Yng2Oag0AAEsFqjUAAADMYnqFMMo4vezib0ihsK5qihyui9XW1SY&#43;ctwx1155hS4riUhUqqo2dFVcc3R0uCYRU&#43;SwLivVhy87es0qxjnlbGRk6CPHHqfI4VgkqmuKrWuPPvgQnz75lq0bhqJqiqqGpYASxulvX/l13LGjTsRUtahlK3LY1A1dUwxFvuw/Li4vYIZqDQAASwSqNQAAAMyivPg2pZQQ8sB995/00eMtw2yoqf3qBV8aGxndsP4JcaC1pelxJ/LE&#43;scoDb513bXRiG2ZuqNptmVcc9lllDNxU1897wLHMG3d0FXN0vSPn3mW2P&#43;IOhFL0SxNN3Vjejk0yjm967ZbPv&#43;ZT609YpWhq5amn/TRYy/44tniXggLGCMzN3I/ok5E3LKpaqaqLdDDBQAAhzhUawAAAJgFYbSEM8IoISSghDDq&#43;z4hxPM83/eDICCEBEHgeZ5PPC9wfeIFgef7bhCULwSUUp8EQRCIrwElru/5vh9Q4pPA933XdQkhhBDXdYPAIyzwiUeIHwReQH2feD7xAuoTFpRDaUApZWyf5VrcbxAEQRD4vu&#43;T0v0u5mMIAACHDlRrAAAAmB2bOXbN991i9/GzM2&#43;BlTN9M&#43;XL4vvi9mfeRek7M&#43;5214&#43;w8pX3NyFc3AJhlHEeUCK&#43;89f8EgAAAH8pVGsAAACYnSiljDHGmCillFLf9znnjJUGtX3fp5SKfwqCQFRf1/fEvkVAS2Pd5VsLgoBzLkbCyzdFSGk8mVJKWLDr&#43;owRQjjnlJNSnS7jnLBgP8daE0ZFnRZfPa90&#43;wv&#43;qAEAwCEJ1RoAAABmVxpPptT3fdf3ip7r&#43;74Y&#43;6WcBZQUPdcLfC/wXd&#43;jtLS0mKjQXuAX3GK&#43;WJg5cB0EgRf4uUJ&#43;MjdVHqymlHqe55OgUCgUi8WZGyCmmhcKhVwuJ&#43;7FC3xR4P&#43;SUetyvMD3STCVz03lcwv3cAEAwKEM1RoAAABmIfrz9Agx55yLYeqAkvLkbcKoTwI2PQotLohhasqZ&#43;Kfyz4sWXT5AWgxHly&#43;IQ6N33a&#43;Yzs2YuD5jjNKA0mB6x4OKgfT9TPAuz2AnhIjR7/0cmA0AADBHqNYAAAAwixkjw5zPGAHe34/MuCbf/Wf57sPI5euIse69v7/Hze6WGUdo738/pHy49cyvAAAACwHVGgAAAGa3d7XmszXkvfvwrP&#43;6/6LOZruwdznf6y7&#43;lwnh5QH2v&#43;SjAQAAgA8M1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAAAAAABgTlCtAQAAAAAAAOYE1RoAAGBPjLG9/3P6zZJzzhmnfDozv885ZZwyRvD&#43;&#43;IGxGQ/19ANL2fTjzGa/Asyb3R/kXc/w3R9qWv6jAACAgGoNAACwG0opL9dpxso1e7pmiEbN2e59j09XkSDweKldwwdRfkh94onHk5Ue8FmqNSyEcq9mM/rzrl1GRmbsPmI/EACgBNUaAABgTzNHrcsde8ZIXXnImnPOKWeEEMIo57zoFTinnldE5ZgDyjklLGAzdlCKXmHvao2CvRB2L9UzPtRghHHuBS7jnBB/eg8Sz3MAgBJUawAAgNmx3QWUiJpNKXV9b3oojxJGfRIQQorFPOfc9YsYzZuLcmcmjHpeMZ&#43;fCoKAl8axA8Z50XMJIZxzyhmq9byjnBAWEOJTGhDi8/Kfg/i&#43;7zLOfd8vN20xxQMAADiqNQAAwB7Kk8B3TQUvHWtNCQse/MG9X/iHz9TEE5amnnDcsZde9O/9yV4vcCkNGOeeV8RQ6hxRShnnQRAwTgPqM06LxXyhkLvuqqvXHrHa1o0VdfWJWLw2UcM4p3iwF8DWLZtuuv66v/34WWtWrjIVQ5eVhnj8vC984fGfPpovFnziUVo&#43;GgL7gQAAJajWAAAAe9qjWgueV/ziP/6jIod1WVHDIU2VFUlW5PBHjj5qeHiw6BWCwKOUBkGAtjdHjFNCfEL8fDFHiL/uuuvWrmoML6&#43;SqqotTRdfNUkuem6lt/QgdMUlF0lVy6Wq6nCoSpPClqbrqmboqiaFQ9XLv/G1r7m&#43;R1hAA8JmHBYBAACo1gAAALvZY7Cai3FUxq674gpTN3RV02XJMUw1HKo67MPLP3yYpanHH3uMOMTaC3yflGYvwwdVOpQ9oP7tN9985IoVlqaaqnLY//v/VR&#43;&#43;zFBUxzAjphUxLZ8EAcVycfPsG1//qmPopqqpimRpqlS1fNlhhx/&#43;4cMMRVVC1XJ11dcuuIDyXUsPVHp7AQCWClRrAACAWZQPsRb/2dnZqUmyLiuGohqarsqKoai6rOiyZBqaaWi33nRTEHhiyBpzwuemVK0pDSxN16SwJoUNXZWqqpVQOGrZSihcE42Zqlb0XLF6HMyj&#43;773HUORdVkyFNnQVVPVFEnWpLCmyuUn/G9&#43;&#43;eLMdc4AAICjWgMAAOyl9L5YcPPTJ3/i5597TiwSlUJhxzANRb7&#43;qstvuPqKutpExLF0WbF1be2Rq1npOGGM5s1JubAR4n/8jNN1WdIk2VQVUzfEYHUiFk9EorWJGhxovRBGhoYdy/6HT33qzttueebJx595&#43;onzzz7bsc3w8ipb1&#43;TqqkQs/pXzzt3rjO4AAIc6VGsAAIDdsL2rNSN18VhNPBGuDmmqfNTqlaI8f&#43;PrX43ZjqjWoerlmzd1iZWrMZo3F2LpMrHPceFXv2qqWsx2rr/6qvfeeVdMBY9HY7WxeGN9g08ChjXC5xvjdMP6x33i&#43;SSgnPm&#43;7/vujddcWV21zNJ0JVQdj8ZOOfnE6XN0AQBACao1AADAnkQxzhdzjHNCyBPrHzNVLRGLq7Ji6OoV37yYMMo4v&#43;fuO2KRqCbJuqpJVcu/e&#43;ftYl1rzjneHz8wn3iMU3FirR/ec8/Vl17a19PrBW6hUIiYlmOYtYma2lh8ZX2DF/iodguBcT7zzFuU0q6OTilcLVY1s0y9ob52&#43;pTXeJ4DAJSgWgMAAOymfEohQnyx4vcN11wpxk4NTdc15SePPCSu&#43;Ytnnq6tiRuKqsqKGg5dfOHXOeccQ3lzVTqIl7DA84pe4E7lc4QF&#43;XzeMsyoZdfV1MadyMr6BnGCZZhf4iENgsAnnlj0nnLmBb4shdSwJGbmN9TXMszOAADYHao1AADAbsrV2vddznkQBJ//zKfEqLVlmIamNzW9KWYsb926uSYa0WVFDkuaFP7kWWdMH2sNcyJ6NeOcMUJYQCl13cLE1KRlmLZuRJ1IfaJmRV29OAM2zC/GeUAJ5axYLDLOxTnbC25el5VQ9fKIaWmqfPrJJ&#43;FYawCAPaBaAwAA7EZUa9/3Gaee5wVB8PHTTrM0PRZ1HMtWZcXzPHE8MON8RUOjrmpihadjjzlyxtsq3h8/oOmlp3lAiZiWTIjPOJ&#43;YmnQsO2JaNfGEqNYYtV4IYqfQ913CAtd1GeeeV3z6ifWaJMvVIXFerq&#43;cd275mgAAIKBaAwAA7Eb0OkII47RQyBHim6piqkpNNCbGqIvFYvmA6iMaV&#43;iysnzZYbauKXJ4umlg7HpOyu2aT3/SwRgreq6o1olYvKGuvq6mljCKRcLn3cyZ3uU/wVfOO1eTZFkKWZpuW8a3193EMGoNALA7VGsAAIDdiM4g&#43;nM&#43;P&#43;X7rqlquizVxROJeFSXFTGgLa65ZuUqQ1GXHf5hy9SlqmrxbopqPRczl56e8Xjyouc6hhm17Jp4orG&#43;oRHLmC2U8oNfWkxuZGRozcpVihxWw5IuKxHHemvbFpxkDgBgD6jWAAAAuxHviD4JOKfFYt4LXFNVDEVORKJxJ2IoatFz&#43;fSU71UrVqqKtPzwZY6ha1J4ergPxwDPv3w&#43;b5uWY5g18UStmBBOgkpv1EFoesoAFZ9ceJ637rrrNEVVQtWqIimh8Nmf/1xAfXHaM1RrAIAyVGsAAIDdiHdE1/c4p8Vi0fWLjqGLah2zHVWRXN8LKBGlYmXjCl1TQsuWm4amhKrLQ3mo1vMO1XpxzJwKPpXPvfb7V6VQOGqZqiKp4VA4VNXZ3lFw83zG1QAAgKNaAwAA7GHXybdYEASB5xVtyzAUtSYasU3LVJXxyez0dejK&#43;gZDkeXqkC4rjm3yXeN4eH&#43;cZ6jWi6U0zZtyxjg9cs0RdfGErmqWpsrVVVdfflm&#43;WOCcB4GHJzkAwEyo1gAAALsRA3GUBpSTIAh83/3Ex880FDXiWI6hq7JSKOTKx1o31taZqiJXh1RZOeP0U2ccJ4z3x3mGar04pj9Xopzz6668LBGJ6poStWxb1445ck0QeAH1vcAvnyANAAAEVGsAAIDdzHxTFGch&#43;sTHzjBVLRGPqorkGPo7b28X/Xn7W1vr4gldljRFlaqq/&#43;5Tn5y5wlmFf42DDqr1ohHP3ueffjJq2Y5l67KiqXJdPLZpU5fneWJYW3RvAAAoQ7UGAADYTfmt0fOKjHPXL1787xdqiloTjaiKZGn6ow/9WFTrXz7/XCIWVxVJU9RQVfW3rrlGLH6G81ovBFTrxUE490nw/vvv1kQj8WhMlxVDkUPLDt&#43;w/vHp/zVmLgyO5zkAQAmqNQAAwG7Kk7qLxTzj3AvcH91/n6bKtbGoIoctTV93w/ViKuw937k7Ho2piqSrmlS1/JEHf0RYgBXCFwiq9eIgLMhmsx895uiVjSuUUFicVe6Gq65ijIhSLdbwY1jGDABgd6jWAAAAuykfKe36Rc6p77vDQwOmqtQkYkqoWle10044QVTrC7/2lZpozFBkS9Pl6qqR4cFy/ajw73AwQrVeHJSzC754bm2iJmrZcSdSXbXsC3//95O5CbZrvJoSQsROYaU3FgBgCUG1BgAA2I0YiCOMBpSIqkxp8PlPf1rXFF1WFElWw6Frrrj0iksukqqWH/7hwyxNN1Xt/LPP9X3fJwGlGM1bEKmxdPXyKkPTdVlZ0dBo68ZUPldwi5XergPVrpXwic8YYYwQRiln37ruarm6Sq6uksOSIskx27r04osuvfgbF/7Ll7/5fy&#43;87KKLrrrskuuuuGLzpi6x1F&#43;lfw8AgKUC1RoAAGA3ohUzxoIgmF6xKdiw/nFFkhVJ1qSwoavh5VVyWNJlxdYN8bWtpTWfz1POCEHZWBAFt6iEwrZpVS1b3lBXr0my53mu71V6uw5UjHPKCWMsoKVnLGOks7M9EXEMRVYVSZUVVVZURdKksKHIcnWVpam6LJmGZuvahqeeCAKPMTzbAQBKUK0BAAB2wxhjjHHOZ1ZrxsgF536h3DfiTsRUFbvpTRsAACAASURBVE2Vlx&#43;&#43;TJPk6664yicBYyyfz7PSCYFhnmUyGVPVVFlpqKmtiyfq4olCoeD7s&#43;yywF9C7PyJkWpCCGOM0uDJJx7XVc1UNVs3DEV1DNNQVEvTdVVb/uHDwsurTFUzNL0mGnt6w5NYrg8AYCZUawAAgNkFgcc5FxNlCQuGhwc//5lPObZpabomhSOOFTGtuGOff&#43;4XgyBwXZdSSjkLgoBhQvgCIITYpmUZpq5qiUg07kTQq&#43;dCfAZEOROn0WKcM0Y2rP&#43;5ZZi2aYkTWccd2zFMUzds0zI03TJMWzccw4zZzjNPPo5qDQAwE6o1AADAbsRaTZSLQ08J55wxRlhpDad77r7jHz79tysbV9REY/989hd&#43;dN89jDExLVlMrGWlt0yYZwW3WJuoiTqRI1evqU/UrF1zZKW36GBQWhqAMcoZ5eTpDevra&#43;tEVq5oaGyoW9m4orG&#43;oaGuPmqZjmXXJ2pqEzVHrFz14gvP4iMkAICZUK0BAAB2U67WpfMMlZX&#43;VRBNm5dPQRQEAZ3&#43;R/SNhVB&#43;/BnnhBBMvJ&#43;jGU9qzkuTw8tnZZ8lezznZ&#43;w&#43;AgAA56jWAAAAe6FiwWS2e3mYPt81LZ92qPwmWr4C39VDYP7teoQxMWB&#43;lJ7GYmY45eJpv&#43;cTuLybKD7RKJ/4HQAAZkK1BgAA2AMV7ZpzKirc9MGopV7Ndh/Z47NdgHnHSnsiu77CHDFOGWOUE8oJ59Prme2jWgeB5xOPT/&#43;PMP2Ex34gAEAJqjUAACwVbHeV3hwAOLDt5/UErzMAMO9QrQEAYKkQu7kzvwIA/LXYbCq9UQBw8EO1BgAAAICDEKo1ACwmVGsAAKiwWYeYsCsMAB/A//oCgtcZAFggqNYAAAAAcGhBtQaAeYdqDQAASw52eQFgLjALBgAWH6o1AAAsFXvsClMAgA9qj16Npg0ACw3VGgAAKgyNGgAWDQo2ACwQVGsAAFgkDEEQZFGy9wsO5UxEXGbl16UZY9qVem0EgIMD4xzVGgAAFoNPAsZ5vliYuftLCKnwZgHAQUTspnLOvcAXFVokoKQc0bH5dK8u/SBGswFgblCtAQBgkTDOCaOc82KxyBjL5XKEEMoZYTSgxCeBTwIv8MXXoue6vlf0XHEBQRDkL8n4&#43;HgQBOPj41y0a0pd1w2CwPM8z/N83/d9nxBCKQ2CgHImpoiXXqNQrQFgDlCtAQBgkYgRpMncFOO86Lnia8EtFotF13Xz&#43;Xwul8vlcpOTk5OTk1NTU5OTkxMTE&#43;Pj4xPTZl4GgEPZ&#43;D5M5XPj4&#43;Oe542OjuZyuVQqlZ0Yn8rnpvK5fLGQLxYKblGUcEKI6NjlJR7KL1Zo1wDwAaBaAwDAYssXCwElk7mpqXyu6LmFQkH06qmpqYmJiWw2Oz4&#43;ns1ms9lsJpMZAwD4iw0MDAyNDA8PD&#43;fz&#43;XQ6PTk5WSgUJicnJ6YmJ6Ymc4X8VD4n2rXneYSQIAhmrnBW6VdHADiAoVoDAMAioZyJox9d16WU5nK5IAgmJyfHspnRdGokNTqSGh0cHhoYGuwfHOjrT/b1J3uTfXunp68XQRBk1vT29vb39/f39w8MDCSTyeHh4b6&#43;vtHR0XRmLDOeHZ&#43;cGJ&#43;cmJiazBcLruv6vu95XhAEmAoOAHOHag0AAIuHclb0XC/w8/m867q6qjmGGbXscmK2EzGtmd9BEAT5y2Moqq0bUcuO2U5NNGZoejKZ7OtP9vf3Dw4OjoyMjIyMZDKZiYmJfD6fLxbEMdjlmeGVfo0EgAMYqjUAACwSNj1w7fv&#43;5OSkKiuWpluarsvKHtEkuZy9/xVBEGRfUcOSEgrbumFpuqGopqppirpty9Z3/vz2jvfeF2PaQ0ND6XS6NEU8lysWi6Jdi4OuUbAB4INBtQYAgAU0c&#43;ldPn0WnKLnxmxHDUtqWFJlxdJUTQo7hmkosmOYlqbauhazHUtTkXmMqSpRy7Q0NRGLm6pSE084hhkxjYpv2EGWqBOJWmbUsg1FjlqmGg45hqnLkqkqajgUtWw1HIrYTsQ0EvFo3LErvsEHWUzdiDoRx9Ab6uptXXMM3da1tvamLZs2v/Pnt997752enh39/X3Do0PZbFYsm1gsFsWy4aJdo1oDwAeDag0AAAto1mpdcIvlaq0pqqpIaljSpLAarrJ1zZAUQ5EdQ9dlCZnHiEfVVJWaREyTwol4NGqZtq5VfMMOskRMw7YMx9DVcMjRNKWqSpfF0zukhKptXVOqqhxDtzQ1Ho1FLbviG3yQxdD0uBMxdLWhJmHrmqWppiy//tofW1ubuzu7tmzb/Paf39qxY8fgQDKdSY2Pl2aGu64rljQTx11X9FUTAA5UqNYAADD/9j5PrDixjXi/yRXyolprkqzKihjfiziWJQZRDdPWNWTeE7XseDQW0fWIaZiqkohELU2NO3bFN&#43;ygjGPoEdOKOxFLUeLRmHj8bV0TUwZituUYpmOYplH5TT3IosuSbVqWotTFYxHTiJhWXTz2&#43;p9ee&#43;O11zc2vdbR3rp185Zt27cme/uGB4fGxlLiuOtCoTBz4LqiL58AcKBCtQYAgIVSGqneq1pP5qZmTgg3FPmPf&#43;577Z3&#43;P72dfPP9oT&#43;9nWztyzQnM6&#43;/O4DMY17dtjNiGoYi19fWRUyjvrbhzfeHNu4YrfiGHWTpGs039aVa&#43;sf&#43;sL33jfeGf/9Wj6HIpVHrqipLU1/d&#43;l5Lf3bjjuFN6WLX0ETFN/ggy8bedNvgRGtfZkVDo6kqjmEqoeoNTz3xq1&#43;/8Oqrr77x2utNTW92dra//fb2vr6&#43;0eGR0dHRbDabz&#43;c9z/N9PwiCSr9wAsCBCtUaAAAWRPmQRdGrZ1brianJmO0oobAYtXZss6kv1Z0qdAxPtPSm2gYnWgfGu0bzbYMTyDymdWA8GrFjtuMYeiIWT8TirX2ZrqGpim/YQZbuoXznSK65Z7R9aLJtcKItma2NxW1di9iOY&#43;gx22rpz3YMZLtThdaBTOdIruIbfJCluSfdNjjRPjReF4/FIlFTVeriiccf&#43;9mGp5544cVnX3np5T/84dXmpje7O7vef&#43;&#43;dZDI5ODiYTqenpqYKhYJYzIwQUumXTwA4IKFaAwDAQhHVWqy4K/ZWxfvN&#43;ORE3ImUq3U8GhO7wi39Y&#43;39mbbBiW3jwaYxt3Mkh8xj/vT2QNSJRExjZeOKFXX1DQ0NTX2p1oHxim/YQZa387w7Vdg05rb0ppqTmY296YhjRRxLrBgXMa2NO4a7U4X2ofG3Jtn2KV7xDT7I0jY40Z0qbEoXVzQ0Ri0z6kRsTf7B/ff87KcPP7Ph6RdeeP63L7/y2h//1NHevG37Wz07diaTyZGRkZlzwsXngAAAfy1UawAAWCjlqeCMMTHNUpx/ayybEdVaTAiPR2OdI5NbxvwtGa&#43;ld2xTutidKmzLku5UAZnHtPePO7ZZV1Nr69rq1atjttU5ONk&#43;NF7xDTvIsnWcbMn6zT3pzWNuWzLbnS7WxRMx20rE4vFozDHMTeli60DmrUnWNpjdOh5UfIMPsjQnM60D49smSDRi19fW6bLUUFd//33f&#43;/GPf/yznz/yzNNP/fKFF3/3u1eaml/ftnXze&#43;&#43;919fXNzQ0ND4&#43;nsvlXNcVc8JxuDUAfACo1gAAsFD2rtaUs4CSdGasPCFckeSaeKJrdGpLxutOF1v6s5sz3luT7M85viXjIfOY13cMRUyrNlGTiMWPXntUbW1t68B45&#43;BkxTfsIMv7Hv9zjneO5ES17hqaqq2Jx51I3LGjlm0aWtfQROdIbvsU3zoevO/heT7PaR/ObR5z/zzF6mpq62pqTVWpicZuv&#43;3b993734889PD69Y89/&#43;xzL7/88htv/nHL5u63397e09MzODiYzWbL1RormQHAB4NqDQAA82/muWHF5XK1JoyKal1eITxiGht3DLcOjLf0ppp2jrT2pduHJrtThbZkFpnHvPZOf9QyI6aRiMVr4on62rrmntGW/spv2EGWLVm/azTf0p9t7hlt6R17473BmG0Zimxpqi5Ltq69/u5A2&#43;BE50iuO1XYkvEqvsEHWwYnukbzHcNTjfUNUcs2VcXS1P&#43;8&#43;cZ7vvfdB390/89&#43;/sizz2z49a9&#43;&#43;fprf&#43;zqbtv&#43;9ls73nt/cHAwk8nkcjnX97zALy0MMWO1iPJLWYVeUAHgwIBqDQAAC2Xmmbd83&#43;fTo9aj6dTMFcJRrRcnqNaLE1TryqZ1YLw7VdijWt9w/dV33nH7fd&#43;/9&#43;GHHlj/&#43;M9f&#43;MVzf/rDH9s7mrdt3/ruu&#43;8mk8mxsbGJqclisej7qNYA8AGhWgMAwEIprw1OKfU8j8&#43;o1nEnglHrRQ6q9eIE1brCmR61bqirj5iWpamWpl5z9eW33/bt79/z3w/&#43;6P7HH3v0&#43;Wef&#43;/2rL7e3t27btuXdd9/t7e1Np9OTk5NFz/VJgGoNAB8MqjUAACyUvat1QIkX&#43;COpUUwIX/ygWi9OUK0rG3Hqvj2q9dVXXXbbt2/93n9/50cP3Pfznz363DPPvvq7V1pa39y2bdvbb7/d19eXTqdLo9YkCCjhqNYA8NdDtQYAgPm3xxmtGWPlau363vDoCCaEL35QrRcnqNaVTXlCeENdfdSyRbW&#43;4vJLbvnPdd/9zh0//MH3f/roI89sePp3r/y2paVpy5Yt27dv7&#43;npEdU6Xyx4gR9QwlCtAeCvh2oNAADzb1/VmjDqBf7QyDAmhC9&#43;UK0XJ6jWlc0e1Voca33ZpRffvO6Gu&#43;&#43;&#43;8wf33/voTx5&#43;&#43;qkNv33lpebmjVu3bt2&#43;ffv7O3eICeEFtyhWCOeo1gDw10O1BgCA&#43;bdHtZ45IXzmqDWq9WIG1Xpxgmpd4QxOdKcK7UOTYkK4qSq2rl36zYvW3XT93Xfdcf&#43;99/3k0R8/9dRTv33lpdbmls2burZtf2vHjh2psfTE1GShUPB9nzAcaw0AHwSqNQAALJT9VOu4E1FCYUwIX8ygWi9OUK0rnMGJ8qh1&#43;VjrS7950U033XjHHXfcf&#43;99jzzyyJNPPfbSS79u2vjG5u5Nb7311vs7d4yOjopRay/wCaOYEA4AHwCqNQAAzL/yLmn55FsYta54UK0XJ6jWFc6Mah21zOlq/R/rbrrxrjvuvP/e&#43;37yyENPPbn&#43;lZd/1dz0&#43;ubuTdu3b9&#43;xo1StZ558SxzJsnfBBgDYF1RrAACYf6jWSzCo1osTVOsKZ7Zqfdmll&#43;yq1g8/8tST6195&#43;TfNTa9v2bQZ1RoA5guqNQAAzD9U6yUYVOvFCap1hbN7tZ5exqxUre/7/r0zqzVGrQFgHqFaAwDA/EO1XoJBtV6coFpXOPuo1jd967q9Rq3fxKg1AMwjVGsAAJh/qNZLMKjWixNU6wpnt2XMDFRrAFg0qNYAADD/UK2XYFCtFyeo1hXO7tV6lmXMHn7kqSfXv/zSr3GsNQDML1RrAACYf6jWSzCo1osTVOsKZ7Zq/c1LLr553bdwrDUALChUawAAmH&#43;o1kswqNaLE1TrCme2an3Jf1y0q1rPOPnWpq5uVGsAmC&#43;o1gAAMP9QrZdgUK0XJ6jWFc5sJ9&#43;65JKL19104113/teMUWtUawCYZ6jWAAAw/1Ctl2BQrRcnqNYVDqo1AFQIqjUAAMw/VOslGFTrxQmqdYWDag0AFYJqDQAA8w/VegkG1Xpxgmpd4aBaA0CFoFoDAMD8Q7VegkG1XpygWlc4qNYAUCGo1gAAMP9QrZdgUK0XJ6jWFQ6qNQBUCKo1AADMP1TrJRhU68UJqnWFg2oNABWCag0AAPMP1XoJBtV6cYJqXeGgWgNAhaBaAwDA/EO1XoJBtV6coFpXOKjWAFAhqNYAADD/UK2XYFCtFyeo1hUOqjUAVAiqNQAAzD9U6yUYVOvFCap1hYNqDQAVgmoNAADzD9V6CQbVenGCal3hoFoDQIWgWgMAwPxDtV6CQbVenKBaVzio1gBQIajWAAAw/1Ctl2BQrRcnqNYVDqo1AFQIqjUAAMw/VOslGFTrxQmqdYWDag0AFYJqDQAA8w/VegkG1Xpxgmpd4aBaA0CFoFoDAMD8Q7VegkG1XpygWlc4qNYAUCGo1gAAMP9QrZdgUK0XJ6jWFQ6qNQBUCKo1AADMP1TrJRhU68UJqnWFg2oNABWCag0AAPMP1XoJBtV6cYJqXeGgWgNAhaBaAwDA/EO1XoJBtV6coFpXOKjWAFAhqNYAADD/UK2XYFCtFyeo1hUOqjUAVAiqNQAAzD9U6yUYVOvFCap1hYNqDQAVgmoNAADzD9V6CQbVenGCal3hoFoDQIWgWgMAHIpKO4visujAnJdf0hmnjFNCfM8r&#43;sSjnDBOfRKw0hsGZf/bi/8BUa23ZLxN6eLmMbd1INM2mN3YO9rSn23pHWtLjrUNTrT2pTtHci39Yx3DU92pwtasv&#43;9d&#43;WxzMt01mm9LZjtHcq0D4&#43;IHW/rHWgfG2wYnOgayW7N&#43;d6rQnSqIK7T2pduSY619mfb&#43;8Zb&#43;bHMyswiVo1LVurUv3Tow3pxMi9&#43;9pX&#43;sLZltH5psG5zoGJ7Ykip2p3LtQ&#43;Ob0sX2ocmW/rH2ocnWgXHxwHYMT7X0j4lHaZ9/x6zfnS5uyfodAxPdo8WNO4Y7hida&#43;sea&#43;sZEvxV32j402TWa7xzJLfjzaolV662ZoHso3zWab&#43;4Z3ZQutvZl2ocm25LZ1r5Mc8&#43;o&#43;HN0DE91p3KbM96mdHFft9M5kmsbnGgdGG/ty7Qls809o007R1p6U019Y6196Y6BibZkVnTazkHxx51q6U21Dow3JzOdI7nmZEY85xf690W1BoBKQbUGADjkiH1EsfvIGKOcibcBxinnlHH6s4ceOvefPmeqWtSJnHz8cddeednw4FAQeLzUq/nMHr6fu1ji1bo7XXxrknWOTG5Oext7RzePFt58f0i04q6hqdaB8c7Byfahyc7UVPvQ5OYxd1&#43;30zqQ6RrNt/dn2gYn2ocmm5Pp1oFxUQvbBic2jxU2pYub0153qrBpzBWlq6U/29qXaUuOic7Zlsy29qUX&#43;vet2Kj1YLapr/Qpg6jZ4mvH8NTWrN81mhcNU3zM0TE80Tww1pxMt/dnmpOZjoGJ9qHJ1r50&#43;9D4vm6/K1XYNJL/c46392c2pYtNO0dEa23qS7Ulx5r6Uu1Dk23Jsa7RfFeqsBgf2Syxat2dKnQP51oHMpvH3JbeVOdITnz00DqQEZ8itQ1OdI1ObUoXN2e8/XyE1DqQaUtmN/aOdo7kmpPptsEJ8TdqTqY7hqc6RyY3pdyu0Xx3Krcl43Wni60DmZbesZb&#43;seZkpn1oUlTr9v59/h3n7/mGag0AlYFqDQBwKCr36ulSzQmjnHPG6de/9KVEPFqfiMdsy9YNW9ccTTv&#43;2KNGhoYZ50HgTb9zHPDVun1osmnnSNdIoaV/bPsE29g7ujXrtw6Mt/RnWwcy7UOTHcNTrX2ZTSP59qFJMdA3azpHcqW&#43;0TPaOTjZ0jvW0ptq6c9uyXjdqULX0JT48a6hqe5UQXSMlv4xMYInOvZiDOVVcNR6YLy9f7w5mWnvzzT1pVr6x1p7Um3J7KZ0UfRqMZothpS3ZLy25NibPam25Jj4DKI5mWkbnBC9btZ0pwotg5mOgWz70PjmMXdLNugcFA9ytmN4oi2Z7RjItg1OtPRn2/vErISF/X2XWrXuGs039aX&#43;PMVef3egO&#43;029Y2JR6NjeKprNC8mZXQP59qHJlt6U22DE/u6nc7hfNtgtmNIzMjINveMigHwtyZZ12h&#43;U7rYlhzrHMl1DE&#43;1D0&#43;1DU609mXEdAwxdl2aqTGAag0ABy1UawCAQ5TYUwwooZxRzgijjPPb1q2LWmZNNBaPRRLxaCIStXVNV7WIaZxy8omuW2CcEyLeJA74at01OtWVKrT0Zzeliz988hdf&#43;ddvOLZZG4ueduYnrrv1ruZkpqV3TAxEd47k9jeReHruq&#43;jqzcn0mz2p5mTmoWd/df7XL6yrqW2oq//Epz6z7jv3iim1Lb2p5mS6OZlu6V2U&#43;bHTqdyo9URbMtvSn23uSbf0Z5uT6aa&#43;sZa&#43;kbbBiZ&#43;&#43;&#43;LvzvvZv9bV1Kxoaz/ybT9783fvaktmmvlRL71hTX6o5md7YOyrm1e/now0x3C2mOv9hW981t92x6og1iUg0Yhq2ZTz45AtNfWMtvamu0anuVGHrxIJX2aVWrdv7x7dkvI07hjeli2/sHGwdGP/xUy&#43;efd6Xok4kHo2d8fFP3nTn9zpHcu1Dk&#43;Ih2tftbOwdbe8f37hjuH1osn1oXPxR/vvRJ/71kitOPe3MxvqGVatWH3XM0f92yWUb/tTSNpjd2JsWc/Jb&#43;zItvam25Fj5ybDQzzdUawCoCFRrAIBDUXlOuHgDEO26tbnFNLSaaCxmW3W1CVF46utqLE3XNUWT5O/eebvneewv2Ms8IKp1084RMXn41u8/WJ&#43;osS3DVBVDUXVZsjT17PO&#43;/Ob7Qx3DUy29Y12jU/uZkNw&#43;NNkxPCF61MbedEvvWHPP6C3feyAasSOOFTENU1UsTY2Yxjlf/pf2ofGW/mxrX1oM/bX0ji3awHWlqnX70GTrQLqt1JlTzclMa1&#43;6uWf0zh89GjGtuBPRZUmTwjHbipjG&#43;V&#43;/sLlntKU3Ja7T0psqPTL7rmTiaN6NO0bvfvDnxxx3bDwa02VFrq6yNDVqmT9&#43;6kVx3PvG3nR7//giVLulVq03jeTF8f&#43;tfemmnalbvveAKcumqti6oYVC8Wgs7tjnf/XC9qHxpp2ppp0j&#43;/y9Ml5Lf3bTSP6N9wbFiPTZ530pYhq1sXg0Yicijqkqtq45lm3r2u33PdTaU5q&#43;If6UqNYAcNBDtQYAOOSILs1mFGDx/X/9ygUR23EM0zH0qGXefsu666&#43;63LFsTQrrsqTL0nFHreWcF70C45wxsr&#43;7OBCqtViT6Se/eMkxdE1RTVWRqg5XQtWWpmpSWFq27Jpbbm/qS3UMT4k1t/Z1O92pQvvQeNPOEbGwU9POkYef/rUuS&#43;HDD7cUxTLMiGOZqiIew&#43;tvu3N6nrNY3CvTlhRNe4F/2UpOCM&#43;0DmSak&#43;nmntHytPCHNvxKlyVDkkQfsy3D0lRDkbVQ6Nrb7hajnRt702LWsTjofV&#43;335xMP/zcS0cffXTEsdRwyNY1JVSty5KlKKaqPPDYL954b7BpZ6p9aLx9aHJ/y9HNU5ZatW4dyHSnCs3JdMfAxA8ee1atrtaksKkq0rJlajhkSFLENAxFvunu77clsx3DU/u6nY6BbMfAxMYdw8094u&#43;Svv62O01Vk6urDEU2VSVq2eJTJEtTTVV5aMMvRbVuTmY27hgW66VhQjgAHMRQrQEADjlijLpUsGd04PpEjWPopqrZunbySScQ4geBd/bnPquEquXqqurDDzN1o3ljE&#43;OUsGD/u5kHRLUWNfiYY46JxyJitG3t2rXHHXecLkvh5YdZmlpTU/OHbX1NO0fE6t/7SudIrm0w27RzRPSo5mTm6KOPNlXFMXRTVdYcsfr4E0&#43;wdc1WVVNV6urq/rh1Z3npMnFBrAW10L9vRUetMy29Yxt3lO6upTd17LHHOoauy5KpKkeuXnvCCSdpUthQZFvXGusb/rBlR2tfpnVg/M33h1p6S0ug7fPv2Jf64ePPWZoatWxbN8TNVn/4w6YsO4b54JMvbNwx3JzMvPn&#43;UOtApmton9VxvrLUqnXHwETnyGRrX7qpL7V27dGGIkvLlhmKvHJl4wknnhyzHUtTa6Kx&#43;vr632/a&#43;eb7Q/u6nU3pYsfwVEt/9vV3&#43;sTUjB898QtTVWK29Xf/8I9/&#43;&#43;nPrVmzxlBkU5Y1qdrS9E///T819aXEX3zjjuGW3rG2QVRrADiYoVoDABxyyuuWEUbL&#43;4vr16/XFNXWDbk6JIXC1199FeO0WMzffMO1cnXVh/&#43;f/6NJYbk6dPd/3RpQ/3/dxzwgqnVLb&#43;rHz/w64liWqTuGfsTKVb9p2faHt3asXr1ak8JqOKRrys3f/YFohvsZNRUniGrtyzTtHNnYm37gqV9apm7rmrT8sDVr1rzS/W7TzpE1a9ZooZAuS45h3vr9B5uTo&#43;JnxXHFrQPj&#43;1mma75SwRXC2/sz4vFp6R1r7Us/tOFX5V59xBFH/K773aadI6tXrxYzwy1T//Y9P2pOplt6Uxt3jDYnM60Dmf1U647hqd9v7RUfZKxdu/Zbd90rV1eFDz9cdPX7f/7ca&#43;8MNveMNveMdg/nDsFRa/EEbhuceGD985amiufhmjVr/mfj5j&#43;9PbBq1SrbMmzdiNnOrfc&#43;tJ/zwIk185t2jjT1jTXtHGnpzzb1jV136x2/bt32&#43;rsDb74/1NyT/vw5/ywedkORHUNv6ist17dxx7BYjAArhAPAQQzVGgDgkDN9fDUJKBGrl3le8fqrr9AkWZNkNSw5hvnMk0&#43;Jq7343PNqWFLDIVNVbNO6&#43;vJvlhcV399dHAjV&#43;vV3By6&#43;6kZb1yKOtWLFim9ef3PX6FRLb&#43;qqm2&#43;NmIYhSfFo7IJ/vVAsYV06UnS2bB0POoYnNqWLLb2plt7UNy6/RkyIrU3UXHbjLV2j&#43;da&#43;9JXfusXWNUORa2Pxc87/ctPOEXGDTTtTbYMTnYOT&#43;x8Yn5dUqlpvHnPFaZ/akmNNO1Mtvan/uPoGU1Xi0VhtTfzCS68Sc&#43;mvufm22pp4Iha3FOXcC75aOm1yf7alNyVuYZ&#43;Pf9bvGJ761Gc&#43;f/1td/5pW8&#43;b7w9FnYgaDol298D650trWfePd43mF6HKLrVq3ZbMihW8L//Wt&#43;PRmCaFI6bxb9&#43;8sjmZ7hyZXHfXPSsbV8Rsx9a1c87/8hvvDPy1N759im0ayW8ec1v6sy9u3KRJYUtTbV0zVeWBp37Zlsy29I69/u5Aa1&#43;6bXBi08iCP89RrQGgUlCtAQAOOTNHrcU5tzyv&#43;PnP/p0mybqsyNWhmO10d3aJq/35re1KKKyGJUtTLcP83Gc&#43;ddBU6z&#43;9N3DqaWfauhazncbGxkdfeLl9aLKpb&#43;z&#43;x552DNNUlbgTOfmU07pG893Duf0sgIUUDwAAIABJREFUM7Y543WnCuKEQ6/vGDr1tDMNRdY1pSYR&#43;&#43;mLv&#43;sYnmhLjt33s6dtXTOUcCISPeaYY5p2pqYHulNtyaw4AdJC/76VqtabxtzuVEFUzY296Td7UqedeZapKolYvDYW/eHjz4mZ&#43;Q&#43;sf742Fk3E4qaqHHvsR97YOdrcM9rUN9beP77/Crol44kjhJt70m/2jLz&#43;7oBtGeWBU1Tr5mS6cyTXMZL75Kf/PuJYuqbYuvaDx55t6kt1DU395BcvrVqxMmqZjqEfffTRb7w3/Nfe/rYp2jWa3zTmtvZl2gazWihkGpootA8&#43;&#43;UJTX6ppZ0qMaYvF9hf690W1BoBKQbUGADjklFcFL49a&#43;777iY&#43;doUmypqhSVXXUiYjFw8WVlVBYrA5laPrffvysg6Zav/n&#43;iDgi2rHNFQ2Nv2p7S5zI&#43;tk/tBm6aqqKY5uNDXUdI7nOkcn9nA95S8brThfF&#43;avffH9IjE6LUev/ad3WOZJr7x9/6tWNtq5Zmh6LRB1Db&#43;4ZLa/s1dqXPrir9das3zWa7xiYEBPCm3amxLpZiVi8Lp547rUOUa2fe62jLp5IxOKmqkVMQ4xvN/eMilNe72ci99ZMIApbU19qY2&#43;6aWdKrKeFai3S2pfuGs13jRQa6uqjlm3oqq1rG/7Y1tI71jE89au2txrrGxzbdAzd0tQ33hv8a29/85i7JeN1DEx0juQ27hi1LUMLhSKmZRraz3/9ant/pjmZ3rhjuLUvI37rhf59Ua0BoFJQrQEADjliD5FSSun/z96bh8lR1nvff73Pe13nkSTTS&#43;1Lr7MkbHJCEHcPKgoKCMd9w&#43;Pj8viCHjkKCHgUUfQgioIiiwpHWUR2RcUVJJnp6nUmCSCQZKa7q3qv3mem1&#43;p6/7h7mtFjguHqdHWG7&#43;f6XnP1THoqXUs6/anfff9uo2N0yYBwmedYJ0Wq1h5JJspNQtsdlG1C4liOYY&#43;dntowav272LPEn2Wem5maJt3IQkl9576UxLEiy0kiPz059evIX6LZ6iHajO0utvYUm9FUOZqt/zb6NJlFLDC0z&#43;Odz6&#43;Q&#43;aV/flYlrbDdLkni2Id2zQe1YiBZHKj1Bh4QTqrKkUyNLPf9h4V9Ms/xtMPndftc7rnFbGCpMLeYV&#43;J5n8vt87p5mpJ57oEnwqRXVjhdPbQSP1XpRLN10hOOLB8l8xyZ8Qu1DqvlsFqMZus7n01PT85IHEtGZJAFtCKZWjRbn5mZcQkimax&#43;3&#43;PBw91&#43;LL9C7g0FE4XbHvodR9nJaHCZ5wJLOUUtkRXX5hL6C6wPP6xArQEAFgG1BgCAlxz9cnSv1&#43;l0SKvwZruv1rTdQdnsf6PWzgkbGV4r8sKM37dh1PrGO&#43;6XeYFlKLcoTPmno9l6NFsPJAtPPKfJPMdRtCTyM1PTtz/8&#43;1iudggF3aO3dusrsdxyKFW66a6HJY4nDbomfX5ScQ2lSo8/kxRZTmQZt&#43;ySee7mux8Kq321VlQ9mq1u4Kr13lJrPr8S0UrEr26660GXIHKU0&#43;Ny&#43;zze2QOZwFIumCjMHsj4vT6Py03ud/zgzgeUuB5MFEKp0ny&#43;vufgCrq70Iyla6FUZTaei2iVXfuzblHgnRgQ3k9QK8dytdsf/v309LQsShzllHnuiee0ULJErvmZqWm3KAgMLfPC93963&#43;Fufz6/EsuvLBRWI5na&#43;Z/8/8h7BeOwv&#43;f8f5uNF8LpKpn7EEqWgtqhFvcaWqDWAACLgFoDAMBLDvKObxgG&#43;RA5UGueZiibnXE43aJkrvNnymZnHHaBYQWe3TY12Xv&#43;v42D/xVHg1p/7yf3klbeLoGfnpwiE0FDSZ2oNU9THkmcmZr&#43;yUO/jabKh&#43;icvKfYXCiszufrQa14010PiixH1g2e8k9GU&#43;WFwmooVXn8maTA0BLHkwHhN939QFArDtYHHs3&#43;WtjGbD6/EtEqiqorcf3GO&#43;53CSJDO8nLmFvMzy1m5xazc4t5n8fr83iJ&#43;xG1DiV1RS3N5&#43;t7iwcdEP5UpbNQWA0kC6RGunMxIwkiR9FQa5KgVg6nqz956LczU9MuSSb15D8/q4aSeixXm8/0FZSnKZkXvv&#43;Tew93&#43;7HcMmmT9vjT6uTkJLmvRNttV3/vR4FkQVFLoaQeS9cUtV8kP9L7C7UGAFgF1BoAAF5yDD4htlqNXq9L3tV5luNpxjlh&#43;59q7dgywdMU43C6ZNHv9qyp9aHe/48WtZZ5jrbbPJI46fMP2pXt3JcSeFZgaJfAb52eue2hRyOZ2qHamBWb83lSta6Q9Y1IQ/WZqelwurqn2AxqxSee08iSy0Stb7z7wYhWmY3nSFPx&#43;Ux9t9440vtr4VxrMgx4oNYSx5K51lP&#43;STLRWonnZw9kpienPC43Uesb77g/kCwGE4VwuhrL1Q5Rtd5Tas/nV2LpGlnq6c/Pqh6Xm3U6oNYkwUQxnK7e/vDvZ6amPWtq/cRzmqL2J/lP&#43;vwuWSSdw793&#43;GodzdZ3641YbvmTn72YHHN6YuKEE04Iq&#43;VgohDUyhGtFFbLEa2CqjUAYGMDtQYAgJccPdMwTaPX67VaDcPo9Eyj1WnzLMcxLGWzs07KJYgDr&#43;6Zpn3zJo5ychQtS8Kkx7th1Pr7P71PZBne6XSLkt/r2603otlqUCvv3JchLZ3corB1euYnD/0&#43;nK4GE4WDbWehsLqgN6LZejhd/cGdD3CUk7HZBIaemZqOZGq79UYoVdq5LyUwtMxzbtklsszNd/8irJZ3LWUDyYISz29std5DOninq3MJPZAs3HjH/WQurtftmfT55xL5ucVsYCk3l8hP&#43;Sd9Hi/vdJIW1nMJXYnnw&#43;lyNFvfe/A2ZqRqHcstz8ZzilratT8tSwJpJge1DqtlRdUjWuW/f/GHwcBviWOfeE4jc7B36w2/1&#43;eRZNbpEHj2RQwID6Uqe0utH9/3q5mpaWpik1eWnFuOuebm28Nk2XatHNSKEa0STpdDqUo0e9D1yYcWqDUAwCKg1gAA8BLE6Jlmr9dttPpv4x2j/aY3vp5jWJpySBwrCtxgQnXPNCaOeZnT7qDtDtZJnXXG6YOfH&#43;IvOCrU&#43;t7HFJfAcw6H1&#43;OamZl5stwmay//6em4yDK03SYw9PT09G&#43;iz8TSNSWeD6tFRdWJgUez9VCqFM3Wo6nqnlIrmqpGMjUlrj/wRNQ5sYWyTfA0tW3btmi2/mS5HUqWdu7LCAztcbl9LrfIMg/ujISSJeKBQa1I7PFI76&#43;FA8Kj2frcYj6ULD3xnHb/rojE8YzNNjM1PT05paglJZ4n9jvln5yZmpY41u/1PTwbU&#43;L63GI&#43;opVCqcqeYpM0ACe&#43;HcnUFFWPZGrzmfrBVBZqTRJIFiKZyqOxZ2empgWGZu12iWP/9HQ8rJaDicJT1e7M1LTX42KdDpnn7n1MIf/6yODt&#43;UxdUfWgVgylSpFMjfwwlKpEU9VwuhpLV8JqWYnn//Rk4pRTTp2enCL5t09duKA3IplaKFWJaJVIphZOl8Pp6iEWhx9moNYAAIuAWgMAwEuOftm512u2SdXa7BjtN73htZIgyrzAs5zMcyW9SPz5qb1POrZstk/YaMohstwZbz7N3Chqrai6SxBdsijz3MzMzBPPpEJJXYnrd/1xp8hylG3CLbtcsvhUtbu2blBtobAa0Uqk8kbmZkez9b2lVkSrxHLLZO40NbGJrPzklaVQokzGit/3RJSnKa/s8nt9HEvPJfKklrhzXyqU1EOpSiRTO9L7a9m61nojmq3PLWbDanHnvlQwURQYmqPoqUmf1&#43;3Z&#43;axGmns/EnrK6/ZM&#43;r087XCLghLPB&#43;OloFacz9QXiitPltuhVIk0tY5olUimEkrqgWQhlCpBrQ8dUjTeW277XG5ZEhiHXWDoX0eenY3nwmr5YWXh2GOPFRjaI8kuQQwkC7Hcclgt7i6thpKlSKYS0SrRbH2&#43;sBrN1iNaZaGwHFgqzOdXFLVECtGz8cL7/u3/&#43;FyyLAnHbTv&#43;1a953c59maBWJJlL5CNahVTIQ6kKBoQDADYwUGsAAHgJ0lfrVqtBNLvbbX/qY//mFiXSBtwl8L988D7yRw8&#43;8HPnxBbK4eRYmme5L112yYapWs8eyJ12&#43;hmcwzEzNe2WXT/73S5SPr3pzgdYp0PmBYGhzzznvIhW2VNshlKlYKIY1Ip78qux3PKT5XY0W92dW4lkansLjfn8CvGQnYuZV736tQJDcyy9dXrmh/f/am&#43;5PZfI33Lvr1wC73V7vG7P699wmhLXw2p5LpGfW8wHkkWyNtWR3l8Lq9ZhtUhUU4nrSlx/3evfKLLMpM8/PT196z2PBBPFYKJ46z2PTE9OTfkn/W7Pm956BjGxXfvT0VQ5rJb3lFqRTCWoFecSeiBZjGRq0VR1PlMnY8Wh1odIRKsQ1Tzz7HMljiWLbN14x4PBRHFuMX/vH&#43;Y8kjwzM8M7nf/y5rfuWsrG0rVwuhxL1/YUVxcKq3uKzXC6TO4uzRdWlbi&#43;O1cPJfXBFIlLr/o6T1NuUZr0uF2S/PBsjFSqSXuCUKoSSlXC6XIgWSRF7CO9v1BrAIBVQK0BAOAlx6Bq3e11ur2OYfYMo3PT925wSbLIMgLPSiJ//be/ZZpmzzSv/cbXGIedoWjGYfe7PT&#43;44foNo9bhdPXfPnWh3&#43;8nI5Av&#43;/q3wmp5Np773Fe&#43;5hJ4xmGf9nkvvPiLT1U6Ea0SzVbD6Wo0WycLAs8eyPz04d&#43;RRlC79QYxJdLu&#43;8Mfv0DieJFlJI6/8tvfI/ty&#43;dXX8DTlc8k&#43;j/fCiy8PJItBrRxK6oGlQiipB7XyBlbr&#43;fxKNFslLdaDiaIS1z/yfy&#43;QONbr9rgE/kvXXh9Wy0GtfOW110si73V7RJa54PNXKPE8OUdKPB/LLUcytUCy&#43;KMHHg2lStFsNZAshlIl0kIcan3okNsQe0qt/3PBZ7xuD0M7JY6/5CtXk6r1pV/75qTPL7P85KTvwosvJ6O&#43;dy3lI9n6rv1Z0qH99gd&#43;258EkSzN51cCS7mgVgwl9cBS7u7f7nQJvMCwLoH3e31fu/7W&#43;Xw9rJaDiUIgWSBfA8liIFmMaCWy9vuR3l&#43;oNQDAKqDWAADwkqNnmobZM03TMLvkPwDD6GTSmsSxlNMuMCzHsOecfSb5o49&#43;&#43;AO0kxJZxrFls9/tSmlJItUbQK137svccMe9PE2RNZ9OOeWUx55K7tqfPunEf&#43;Y5hnM4XLJ4wx33LWSXSQPkJ57TPn/V1R5J9rjlrdMzH/jIx2Lp2txidk&#43;pFcnU5vMrwUQhmChe&#43;6M7JY7lacbjcm/fcfLsvuyf92e27zh5sJjzdbf/XInniZwQdSG6eKT310K1juVqoWSJrG8cSBa&#43;fdvdEse6BH5ycvLlJ5z4hz1Lc4v5E044Yco/6RL46cmZG&#43;64L5ZbDizlZg9kLvnKN0SB87jcMi&#43;85/x/CywVyMB7MlB5t96AWh86C4XVhcLyfH7lhjvuc7skxmaTOPbEE0/8fWy/ouqnnvoqr9vj87p5mvrenffv3JeaPZBR1NIV/3Xdtpmt5FJ55/s&#43;&#43;MRzWjRbX9AbswcyEa0SWMrNLWb/sOfA9pP&#43;WaRZjnJ6JPnjn/lcNFufPZAJq&#43;VAshhYKgQTxVCyRNrgzyX0oFYOpVC1BgBsWKDWAADwkmPQIbxnGt2eQeZa90zjvLPOlEWJtjtcsigK3JWXX37pRRdJgsgxLG23cZTzQ&#43;97b/93TfPQ7/9HhVqTPkyvfvVriW3yNLV9&#43;/ZXvuo1vNNJJkuffPIpkUyFTLFeKKzOHsic8fZznZs3CwwtifzXb/zRXELftT&#43;9t9RaKKxGMpVAsji3mI1kai9/&#43;ctFlpE41i0KO3bsOO2Nb5ZFiecYiWNPOeWUUKqixPPRVJmsS0S&#43;kgWKjmisUmviOWSvQ6kSmXy7fft2iWNlnhNZZseOV7zutDdKIi/wrMCzO3bsUNRSYKmgqKVdS/m3vO1sSRBlSeBp6qvfvTmUqgS18s59KUXVydRrqPWhM59fIbMYIpnayafs4Cg7T1M8TZ1w3PGvf8NpLEN53LIsCae&#43;8tWx3HI4Xd21P71zX&#43;bs894lcbzA0CLLfPlb3w8s5RYKq2S6&#43;&#43;yBDFkv7a1vP4enKYGhpyenaLvtne/70JlnnXf2ue9&#43;69vPeds73nnGWe/4ynU/UOL5/vpq6uj&#43;XUOtAQCWALUGAICXHIPu3&#43;baV8MweqZ5x&#43;238RzDULRLEEWB83ndAscTtWYZinHY52ORdf9tHP1qrZYDS7lrfnC7W3Z53R6eY1yySE9MCAzN0wzvdH7rx3dGs/VYrvZkpbNQWH386YTbLXMsLbLMy0/a/sTTicBSbtf&#43;9N5yZ2&#43;pEUpVSBe0SKb21e/eIjC0JIgcS7sE3iWLrNNGPuVf9&#43;M7I1pFUfVQqqKoeixdC6vFUFKPZI54Nc8qtY7llufzK&#43;F0dTaeW1t9uvzV797sEniXwAsURZrS8zTlFgVR4G6652GyWFcoWfrzs6rP4yWj6ycnJ/&#43;wsI/USwNLuWCiOJ9fmc&#43;vQK0PnYXC6pOVDlHrr11/K&#43;OwEx9m7XZZEiSOd8suryx97877A0u5sFp84hl1Np6bnp72elweSdy69dhHI3/509PxhcJqOF0lA7x37U/fdNeDMs9xlFPieOfmzT6Xm7JNeFxuieN9Hi9ZZO6Kr38rrJaJXSvx/Gja9UGtAQBWAbUGAICXIqRebfal2iAfJZvN1Y9&#43;&#43;EO2Tcf4XDJPM9OTU7STknlB5oWJLZv&#43;87IvrDSWySTtnmlsALUmk0X3FJsf//eLZEmQeU5kOYFhJY6lbBNfvOY7u/ZnFwqroaT&#43;VKWzW1/5&#43;eNhgaE5h0Pi&#43;I9f&#43;B9k3vXcYn6hsPp0zQgs5ebzKzv3pebzK3MJ/SP/9wKOcnrcMllziyxqfclXro6mqhGtRNqDK2opmq0rqh7RSuH0EfYNC9U6v0JsZ9f&#43;LBk2H1aLgWTxo5/6d56mXAJPemtJHCuyzBe/cW0kUwurxUCyEMnU7vn9rCTyMi94Zekj//cCsk5yIFkkqhbJVMLpKtT60FnQG09Xu4paWiis7tyX&#43;thnPkvZJsjK7SLLSRzrkeQrrvnWnmIzmCiQovS9jymyJMiS4BaFj3zy07uWsjv3ZebzZOiBPhvP7VrK3/zzX5At9Ed5OBwiywgMPeX1&#43;Txev9sjsszlV1&#43;jqLoSz88l8sFEob8Q1xHeX6g1AMAqoNYAAAD6dHtGSku&#43;48wzJY6VOJ5lKI5yOuwTIst9&#43;L3vN02zY3Q7nQ6Zp33oj5lHhVoTyw2lKqFk6dof3Un6J8s8d9a57/zu7XeH1XIwUZxL5Elj8FCq8qVrv8fa7c7Nm0WW&#43;ckjf5rPr5AlhQ62/W//8M4zzzpP4lhJ5M/513df/9N7g1oxmBjJ0r5/L1ap9cESWMp968d3nnXuOz2S6JHEs85957d&#43;fCcpSs/nVwJLhQW9ccV/XScwtHPzZo5y3vXornBCJ0s6hZKlULIU1MpBrRzLLQe1MlnnKZAshJIlMs5c4FmJY2&#43;95xHidaSP2gjmtI&#43;bWsfSlVCqoqglsshZKFn6zm13ve2c82Sekzj2zLPPvfZHd4aSpVCqEk2Vo6nqE89pl339Op6mGId9yj9556OPkbXTyKFT1FIwUZhL5G&#43;95xGJYwWelXnu70bi2Cu&#43;/k1yG0WJ54OJQihVGcHxh1oDAKwCag0AAKCPYXZN0&#43;yZxje/9rU3nvYGnmZYmjn3bW/7wQ3fM8xex&#43;j2er1ut0tGj28AtSYdjMnKT8FEgay8RdZ2InVOJa5HU&#43;VQirS2LnzwY5&#43;kbBMc5Tz9zLPC6WowUYhkaqGkfrDtz8ZzZJuDEMc74mpxkIybWv/NwRmErMMczdaVeP78T11g23QMRznPPPvcUFIPq0VF1UNJnSzsFNTKpC/auq9FJZ5X1FIgWSSLhweWcqQYG0gWgoliIHnEj/&#43;4qbWi6uQeBFkxixw9osf9A54oKHE9mCACXNy5mDn/ExfSExNuwXX2ee&#43;az6/MHsjs2p8mB5DcpCC/EkgW5hL67IHM3w05I2u/opOJDyM4/lBrAIBVQK0BAAD0aXWaHaPd6bQMs9tuN1udZrfbbnWapmkORo8bZm/DqHVEq4RSlaBWJCO0SX&#43;ssFoMq&#43;VQuqqoeihVmkvoSlwPauVoqur3&#43;xn7FsZmu/GO&#43;yNaJZQqzedX5jOHWkwoqJX7C/mmqyNa1PfgGTe17h/qVCWcrpLjM/hhUCuSNaunpqZ4mqK22H5w50NBrUgMLaiVSQk6rJYVtRTRKuF0WYnr4XRZiefJJO2wWoxolaBW7I8t1yqhpB5KVciNkiOacVPrtauuGFbL5Mj013vTKopaInP&#43;o6kyGZoRSlVmD&#43;R8Ph89MSHz3I/v&#43;81uvUFGW5Brfu2w909EWO3/1v/M2l9a7C9wndQjWmkExx9qDQCwCqg1AACA5yGTqHum0TG6vV53ZaVeW652jK5pmt2e0e52TNMkXzeAWgcTg&#43;WvSDXv&#43;RGzpOUSGXJM&#43;pPd/bs/8zQjMPSZ55w3t5ifz6/MJfLEoA62/bXyINGSUljt18aPuFocJOOm1oMK6rrowUQhkqmEUpU9xeZPH/mTJPKUbTMpWStqibxaRS2R2jWRbSKKc4vZvlqr5YhWCiaKxBuDWnkuoUe0khLPr9ngkc24qfX6I0YGWShqad1PSqSqPPj2p7/&#43;o0vgeafz3He/P5go7Cm1Zg9kZuM5ItJKPB/RSmQlLSLnZG2t/xlF1YNaMZQqkb&#43;X/IqiHnSUx9ACtQYAWATUGgAAQJ9mc7XTaZmm2e22e6bRaK32TNMwu51Op93tdIxuzzSJIb8gR4Vaz&#43;dXIpka&#43;eivxPNk1Ouu/Wmi03OLeUUtzSXyYbUcTpcv&#43;uJV/3La6Wec9Y4f3ftIYCkXzdbnM/WFwup8fuVg29&#43;5L7Vrf1qJ911irSpuWcZNrecW80pcJ7N8yY0MJa7PLeZJvXohu/y5L111&#43;lvedvZ577r1nkfmFrNEv4kWklXBybzrWK4WydRi6dpsPBdMFIgHBpYKgaUCGZmsxPW5RJ5M9I3llo/0fo2bWkcyNTIogHQUWxsBnidXO1lJK5TUQ6lSNFufz69c8PnLTjv9LWeefe5PHvp9UCsvFFZjuWXS5j2arYZSlblEXomTceC5wFLhYAP7Sau5ucWsEs8HkkXSHvwQvQmGFqg1AMAioNYAAAD69EvWvZ5pmobR6ZlGo7HSaDT6g8B7PTIsnDj2C2zqaFBrUlUjj4mzBZKFtdm5RTKPN6JVSEtq0igrkqlEU9VothpMFEjz8GjqoG2ZiMyQ3lrBRDGULK0NaT7CanGQjJtak9H4f1Xq1IqhVCWarS8UlgfnhbSVVlR90AFOUUthlTQz0xVVDySLoVSJnLL&#43;IP/&#43;/PkiaUEXTldDSb3fju7gc&#43;OHlXFT60G9OqgVyW0jRdX7l3qyoKglMmA7rJYH12ckU5vP14NaMZZbDizlotnqYJgAGesRTlfJY3Jh/92sHziwNr7gyI8GV6HWAADLgFoDAADos349rZ5pdHud9ctfr18Bu93&#43;O/9P/NWmjga1DpMx26mSourhdDmiVWLpWjRVjWbrEa3ffbovEmqRjBiPZCpBrUy&#43;LhSW5/Mru/XGwTbeX1IrXY1kaoOJ1mtzUC3IGKr1YKL1YLp1KFWJpWvRbH1Bb0Yytfn8SjhdJu3iyBkJq2Vyk4Kcl7BajGilwFIhllueS&#43;j9idbpMqljR7QSOeyKqpPOcy/ZAeHrjp4e0SrRVDWaqpILPpwuk84C/eeny6STHOkmEMnUdhebZHRGMFEIp6t9/dYqEa1ETtbfDdnO4AYWuUs1uJl1BAO1BgBYBNQaAADAgP5q1b1&#43;yLzr/reG2VvfvezQHzSPCrUOpSrhdDmSIV9rJET2QqlSv5qXrkY0Us0uzSXykUwtmCjGcstKPD&#43;frx96neT5TJ2MbY5kauF0ue97R35A8sEybmpNBIwMVyY3IMhPQqlKNFXdXWzG0rVYbllR9Wiq2p/3niyR&#43;boDSesvxJUqRVNVMqQ5kCxGs/WINuiOVhoc//5tlCO8X&#43;Om1v2bRFqZ3D8iPwylSmSENsngHwL5RxFYyoVSpWCiMJ9fiaaqC4XVhcJqX7/XruS1A9v/0/8Z4t5htRhN9e&#43;bjOhig1oDACwCag0AAGD4HBVq/VLLuKn1Rs24qfVLLlBrAIBFQK0BAAAMH6j1GAZqPZpArS0O1BoAYBFQawAAAMMHaj2GgVqPJlBriwO1BgBYBNQaAADA8IFaj2Gg1qMJ1NriQK0BABYBtQYAADB8oNZjGKj1aAK1tjhQawCARUCtAQAADB&#43;o9RgGaj2aQK0tDtQaAGARUGsAAADDB2o9hoFajyZQa4sDtQYAWATUGgAAwPCBWo9hoNajCdTa4kCtAQAWAbUGAAAwfKDWYxio9WgCtbY4UGsAgEVArQEAAAwfqPUYBmo9mkCtLQ7UGgBgEVBrAAAAwwdqPYaBWo8mUGuLA7UGAFgE1BoAAMDwgVqPYaDWownU2uJArQEAFgG1BgAAMHyg1mMYqPVoArW2OFBrAIBFQK0BAAAMH6j1GAZqPZpArS0O1BoAYBFQawAAAMMHaj2GgVqPJlBriwO1BgBYBNQaAADA8IFaj2Gg1qMJ1NriQK0BABYBtQYAADB8oNZjGKj1aAK1tjhQawCARUCtAQAADB&#43;o9RgGaj2aQK0tDtQaAGARUGsAAADDB2o9hoFajyZQa4sDtQYAWATUGgAAwPCBWo9hoNajCdTa4kCtAQAWAbUGAAAwfKDWYxio9WgCtbY4UGsAgEVArQEAAAwfqPUYBmo9mkCtLQ7UGgBgEVBrAAAAwwdqPYaBWo8mUGuLA7UGAFgE1BoAAMDwgVqPYaDWownU2uJArQEAFgG1BgAAMHyg1mMYqPVoArW2OFBrAIBFQK0BAAAMH6j1GAZqPZpArS0O1BoAYBFQawAAAMMHaj2GgVqPJlBriwO1BgBYBNQaAADepxoOAAAgAElEQVTA8IFaj2Gg1qMJ1NriQK0BABYBtQYAADB8oNZjGKj1aAK1tjhQawCARUCtAQAADB&#43;o9RgGaj2aQK0tDtQaAGARUGsAAADDB2o9hoFajyZQa4sDtQYAWATUGgAAwPCBWo9hoNajCdTa4kCtAQAWAbUGAAAwfKDWYxio9WgCtbY4UGsAgEVArQEAAAwfqPUYBmo9mkCtLQ7UGgBgEVBrAAAAwwdqPYaBWo8mUGuLA7UGAFgE1BoAAMDwgVqPYaDWownU2uJArQEAFgG1BgAAMHyg1mMYqPVoArW2OFBrAIBFQK0BAAAMH6j1GAZqPZpArS0O1BoAYBFQawAAAMMHaj2GgVqPJlBriwO1BgBYBNQaAADA8IFaj2Gg1qMJ1NriQK0BABYBtQYAADB8DkutPS53NFuP5Zbn8ythtRjLLe/WG7v1lVhuGRligomiLEp&#43;t8ctSttmtnpc7ohWCqfLlr&#43;wDZa9pdZCYZUc2KBWjmbrHpfbJYsuWfTKksxzkUwtmioT/dtTbFr&#43;gjdYQqlKOF3dXWh6PS6v2yPznNfj&#43;vzn/wNqDQA40kCtAQAADJ/DUmuf1z2frz9Zbu/RW2G1OF9YfbLc3lNq7dYbyBAzpxZ8LrfHLbtF6dhjj/W6PYFkIda/kYEMLU9WOk8WWpFMbXehGcnUYrnlKf&#43;kz&#43;X2ed0&#43;l1sWpYXs8nx&#43;ZW&#43;xHcst7y23LX/BGyxBrRzLLe8pNv1en9fjkkTe7/VdfPHFUGsAwJEGag0AAGD4HJZau0UhnK5GU9WIVlLUUjRV3a039pbb0WwdGWJ27U&#43;LLOOS5Emff&#43;v0jN/nCaerilqy/IVtsDyzbO4ptaKZ5aBWVOK6opYkjhUFTuJYjqV5pzOYKJIpD09VWs/UTMtf8AZLLLuyUFh9stKZ9Pl9LpnnGIFhP/3pC6DWAIAjDdQaAADA8Dm8qrXH6/d5Zqamp6f8Ppd7enKKzARGhhu/1&#43;eSZL/XJ3HslH9SlgRSSrX8hW2wkKvXLUozU9M&#43;r3vS55/0&#43;T1u2efxet0er&#43;ya8k96XO7p6WlZEiZ9fstf8AaLJPJu2eX3&#43;twuiVztM1PTl112KdQaAHCkgVoDAAAYPoel1i5BlDiWdBuSBFHiWI/L7ZZdMs8hQwxrt8u8IPPclH/SK0s&#43;r1sSeYFnLX9hGyw&#43;n8cli163h6cpkWV4muI5RhQ4kaYFhpY4nqOcLkmWeW7S5/d7fZa/4I0WUXK7JK8sTfr8LoGXRYmnqc9&#43;9jNQawDAkQZqDQAAYPgcllqLLMdRTpcgyjwnMKzEsazTIfMCkW1kWHG7JJnnPJLMUU6JY10C7xalQQtlZFjhacol8KzT4RYltyhIHOsWJd7pFHhW4niXwJNr2y27iHtb/oI3YHiWXOEeSeYou9ftufRSVK0BAEccqDUAAIDhc1hqLTAsbXewTgdlmyBOInG8yDIc5USGGMbhdIsSa7dPT07RExNT/klhrYiKDDFuURAY2ueSnRNbZJ6zH3OMwNAcRbNOBz0x4ZFE26b/7ZVdjMPu9066BNHyF7zBIvOCW3ZxFD09OcU6HS5JpmybL7ro36HWAIAjDdQaAADA8DksteYoJ2WbYJ0O1m4XWYaemKDtNtZup&#43;02ZIiRecEli5zD4ZFE26ZjvLIkcazAs5a/sA0XB223iSxH2SZknqPtNp5mOMrJ0xRH2T2STNkmRIGj7TaJYynbhNWvdqOFo5wiy9F2m8ct8zTlEkSeY77whUug1gCAIw3UGgAAwPA5LLWWeW5uMRtKVYKJQmApF0rqpH9yWC0jQ8wTz2kugZd5zuv2kFZbSjwf1Kx/YRsse8vt&#43;fxKUCsr8XwwUdy1P&#43;0WBY5yCgzNOh0iy&#43;zclwqnq7Hc8kJhdW&#43;pZfkL3mhJV8ma4dOTU4P5Dp/5zIVQawDAkQZqDQAAYPhArccwUOvRBGptcaDWAACLgFoDAAAYPlDrMQzUejSBWlscqDUAwCKg1gAAAIYP1HoMA7UeTaDWFgdqDQCwCKg1AACA4QO1HsNArUcTqLXFgVoDACwCag0AAGD4QK3HMFDr0QRqbXGg1gAAi4BaAwAAGD5Q6zEM1Ho0gVpbHKg1AMAioNYAAACGD9R6DAO1Hk2g1hYHag0AsAioNQAAgOEDtR7DQK1HE6i1xYFaAwAsAmoNAABg&#43;ECtxzBQ69EEam1xoNYAAIuAWgMAABg&#43;UOsxDNR6NIFaWxyoNQDAIqDWAAAAhg/UegwDtR5NoNYWB2oNALAIqDUAAIDhA7Uew0CtRxOotcWBWgMALAJqDQAAYPhArccwUOvRBGptcaDWAACLgFoDAAAYPlDrMQzUejSBWlscqDUAwCKg1gAAAIYP1HoMA7UeTaDWFgdqDQCwCKg1AACA4QO1HsNArUcTqLXFgVoDACwCag0AAGD4QK3HMFDr0QRqbXGg1gAAi4BaAwAAGD5Q6zEM1Ho0gVpbHKg1AMAioNYAAACGD9R6DAO1Hk2g1hYHag0AsAioNQAAgOEDtR7DQK1HE6i1xYFaAwAsAmoNAABg&#43;ECtxzBQ69EEam1xoNYAAIuAWgMAABg&#43;UOsxDNR6NIFaWxyoNQDAIqDWAAAAhg/UegwDtR5NoNYWB2oNALAIqDUAAIDhA7Uew0CtRxOotcWBWgMALAJqDQAAYPhArccwUOvRBGptcaDWAACLgFoDAAAYPlDrMQzUejSBWlscqDUAwCKg1gAAAIYP1HoMA7UeTaDWFgdqDQCwCKg1AACA4QO1HsNArUcTqLXFgVoDACwCag0AAGD4QK3HMFDr0QRqbXGg1gAAi4BaAwAAGD5Q6zEM1Ho0gVpbHKg1AMAioNYAAACGD9R6DAO1Hk2g1hYHag0AsAioNQAAgOEDtR7DQK1HE6i1xYFaAwAsAmoNAABg&#43;ECtxzBQ69EEam1xoNYAAIuAWgMAABg&#43;UOsxDNR6NIFaWxyoNQDAIqDWAAAAhg/UegwDtR5NoNYWB2oNALAIqDUAAIDhA7Uew0CtRxOotcWBWgMALAJqDQAAYPhArccwUOvRBGptcaDWAACLgFoDAAAYPlDrMQzUejSBWlscqDUAwCKg1gAAAIYP1HoMA7UeTaDWFgdqDQCwCKg1AGAD0jPNnmmYptnttsm724veTrfXf4skn6p6ax&#43;veqaxlsGfHvXvhz3TMNf2y3z&#43;f4j&#43;PhqGQQ6IaZrko&#43;ehNnU0qHVEq4TT5XC6Gk1Vo6lqJFMJp6sRrRROV8PpaihVimRq4XQ5nC6HUiVF1Q93&#43;9FsnSSSqUW0Sixdi6Vr85m6Vcoxbmody9ViuRo52pFMLZKpzedXFrLL43YeDzfjptZBrUz2OqJVIlollNRDST2ilaLZeiy3HMlUYrnlaKpMjl40e9DrU1FLYbUY1MpBrRxKlsJqOZTUw2o5lluO5Zaj2Tq5wgeX/Ygvp&#43;cDtQYAWATUGgCwAVkzQ6O37vGL2A7x6m632zNNw&#43;z1ej3D7K173zTMNQV9cdsfN9bUer1UG&#43;baDYX&#43;1/4zX8Cujwq1VlQ9qJVDqQrRy4hWCaerxMGiqXIoVSHPCaerwUThRShoUCv2NS9Ti2iliFYKpSpks5Zk3NSaHIpIphJKlSKZSiRTiaaqoVRp3M7j4Wbc1FpR9aBWVFQ9opUUVVfUUlArh1KlUKoUS9fC6epCdjmQLIbTZUXVo6nqIbYT0UoDqVZUnTwe3BmJpSv9GyWaldc51BoAYBVQawDAxoR4daO1Ovj64uy3Y3T/5vNUt9tdWVkxjI65TkQN8uUoZ1CBb7ebPdNsddrdbrfVavV6vY7RbTabpmk2Go1/aFNHg1qHkiVSwQsl9bBaDCX1YKIQSBaDiWIgWQxqxXC6GlaLwUQxqBVJge5wP&#43;IraimYKASShUCy0PeZF7GdIWXs1DpZCqUqiloiCkoOfjh9ULWz7DweZsZNrYNaOZAshJKlUJJIdaV/lLSyourBRGEukY9o/RsThz4&#43;ZAvkXkZQK5KfhNWyopbWLvViIFkIq8WwWhzltfRXgVoDACwCag0A2ICQD0ak2kzSbDaJGR4Wg183zF672zEMwzCMbrfbM41ur9PtGY3Warfbbreb3W7bMDpHYFdGykpjtdvtrn2O7Bpmt9Vpd3tGp9PfNXJgG43GYGT4wTgq1Hp3biWarQa1YiBZUOL5ucXs7IHM3GJ2Nl6YPZCbPZBR4vpcIh9KVaLZaix32AOVd&#43;5LzR7IzCWIw5QiWmk0anewjJtak2MS0UrkNQSWcjv3ZWb3pcftPB5uxk2tQ6lKKFUKauVQUg8kC8FEMZQsBZLFPz&#43;bmt2X3bU/HUwUFLUUyfSHcx9iO&#43;SshZKlYKKoqKQGrj/xnDZ7IBNYypHh4oOnjfhyej5QawCARUCtAQAbkE6n1e11ut12x&#43;g2GiutTrvZbrwI9e2PAzfNdrdDPlUZhmGYveXVerO52u22TdMgT&#43;iZhmF2h74jo2dtlLvR6XTI/Yjl5Vqn02m2W61Ou9Xpf&#43;gcjAw/6HaOBrWOJMukzkbKnv1xxcn&#43;iNmgVp5L6BGtpMTzxBkOW2mSJSItgWRx7VtS07NGOcZNrQPJQjBRCCX1cLoaSBZJ7ZQcq7E6j4ebcVNrUmcmV2PffpN6WC1GtIoS18NqmYyTDyYKEa0yG88dYlOkah1MFMNqOagVScmaaDbZfihJytdF8hxrArUGAFgE1BoAsAFZba60283f/fpXb3vLm0SWOf3Nb1QCs/WV2uFup7f2carfzGxtsnGr0&#43;4Y3Xa72em02u12t9ttt5sd4&#43;&#43;8dR5dtLudjtHu9jokhtFptluGYXQ6nZ5pdowu&#43;e&#43;B1P83QNV6UM1b35&#43;JjGUlD0jzJ0XVyTMP/68oKqpOJrWG01VSzbNQZcdNrcNqkRyTaKoc1IqDydLjdx4PL&#43;On1n3LXdd7rF9eDiX1iFYhJetQshROVwdP/rshty3IPQsy5Js8CGrFoFaOaGS2vKUTrVWoNQDAMqDWAIANSKOx0m43//mE4z0uN8tQEsefc8YZKyv1w90O6VtmkmK1YfR7dxm973/nW&#43;eccYbIcrIonfa6V19x6eczaa3dbR2BXRkpz/c873W/&#43;uUvnrhtWmBokeUEjhc43jTNZruvx&#43;aGqFqvldcKiqqTOaLBRIFM0A0kC0pcJzXntR8edrVZieeVeF6J62vJK/F8MIGqdT/BRHE2ngss5cjxCSwVyAUwbufxcDNuah1KlsJqMZQazEfoF5kDSzklnp9L5JV4PrCUm0vkD11tJgMByINQUg8lyYDw/Gy8EFjKBZYKgweBpYISz1tyUYVVqDUAwDKg1gCADUi721lpLHskWZYElyAytFNg2NXV5RexKVKt7Xa7/d7gRu/D730/bbcxDrvEsTzH8DTF09SpJ29Paclh78eo6fV63W77v666avsJx0ocy9MU63Q4HTaOogWO76zR/8T5Qpsyx16to9l&#43;x6xAsvjY3sXLr75meuuUxPECz0oce&#43;s9j8wl8sTK1j/5H88tP3v43R/4sMTxsiiddvpbvnjNdxS1RIbgWpJxU&#43;tQUn9s7&#43;J/Xnvd8ccfL/OCxLEiy9zys4fH7TwebsZNrSNaKZQqkVnWpF79&#43;N7EFV//5tT0VoFhOZaWWfbW&#43;34dTpejqeoLzpEmQ&#43;7D/XHm&#43;e/efvf5n/zU9u3bZZ6TRH7btm0fu&#43;Ciux594kUM7B9aoNYAAIuAWgMALGBtFWjjr5eD7q9o1THag27evbVSqrn2zPWrLvfWvX8936zb6JA2Y6ecvIOjnC8/7njW6Tjln08iar1&#43;0SxSiO7Pl&#43;51172Gwevsb5Y07lpdXf7yZZexTopnOa8scSztEkTaSQkMyzicr33lqYbZJa/fNI1GY6X3/EaODq79&#43;le3n3gcTTkkjqVsEx5JpO0O2kmxTkoSxEaj0e2RLm6muSGq1qSvWDhd/ep3bz755FM4ysk47JRtgqOcEsfedNeDSjwfSpYiWmU&#43;v3IIBZrPrzxdMwJLuYXC6s5ntfn8ymw8d9V3b&#43;Fpyi27RJbzuNwc5RQF7l/f836y0nIwUYxoFUXVo9m6ouoRrRLJ1I70/lql1mRZ6YhWmVvMziXyiqrPxgtzCf0r1/3g1Fe&#43;mqcpv9cncbwocAJD33z3Q1adx2Fl3NQ6lNTD6bISz0e0ys59qSu/feOJx5/AUU7W6SBxi8KPH/ztbr2xW2/M51cOtp1otk6WxZ49kAsmioqqv&#43;eD50scK3Gsz&#43;MVeNbr9lC2zbIoUbbNV33n5qBWnlvMkl7igWQhnC4HtfIhtj&#43;0QK0BABYBtQYAWIKxlvV6vG5A8jqpXvcTY72m9vpmTmZEdwffmv2nGf911VUet&#43;zzut2idMO3vznY2tpz/mb7xppIG4NWXs//pNczDCMaCUkcy9KMJPIuSeYYVuYFjqJFluFYWmS5r1/1FWL1pmm0203zee0/OqAph1eWWIaSeY5x2AWGZhx2lmY2qlpHs/Uf3/erHTt2SBzvkmSJYxmH3XbMPx2uku0uNp8sdYghB5YKkUzt1nseEWlaEnmJYUSB80gyRzllnpM49vKrryGNoIhvRDJkVmpxA6t1LFeLaJVgojC3mCVzqn/481&#43;ddNJJHOWUOJ5lqEnfFE9TpGp92/2PWnUeh5VxU&#43;ugVlworIbT5dsf&#43;O1xx23jHJRj0ybe&#43;WLUOpauBOKZwFJhbjEbSpa&#43;cPW1AuN0uyS3KJFLi3HYRZbhKCdlm/jhz39JFj8ji2YHksVI5lAdyIcWqDUAwCKg1gAASzDW6ZnRbjf7hehezzSNVqtBKsnm38r286Vs86/c&#43;/kHaz5s9npd0zR&#43;/YsHr/7KlX/64297prHSWB285ZEWXI1Wc91mDdM0SO16vaKvVcgNwzDe/&#43;538SxHUw6ZFzyS&#43;MVLLrniks&#43;Rqcgc5XQJ/KtO2dEzjW7PME2j220fdVXrM09/M88xLM1IHC/zwqTH7ZzYwm7cqnVYLd92/689kiiynEcSHZs2ybzg2LL5cJXsqWKLfJQnc1YjmdrLX/5ygaFFlpElYcf2U974ptMljhV5QWDobduO&#43;/NfkrPxHCkARjQy/rYYTR3xgcpWqXU0W49m68FEUYnn5xbzwUThlp89LDA0T1NuURAY1utxuUWJpymXwN9014NWncdhZdzUOpyuhpKlaLZ&#43;890PuUXJuXkzR9H0xMThqvV8fiWSqcwldHKdK2rp1nt&#43;wdMOkabPOu/dZ5597imnvoK228ipdIvS2895JxkWTvqTK6oeydRQtQYAbGCg1gAAC2h3W91ex1w3PLtjdEkX7lanTRayIo9bnWaz3SDvPoZh9Hrddre1urpqmqZhdDpGu93tkEWwyFfz&#43;XWwyMBss76ybJomWXyr3W53Oi3Si6vbbfdMo9Vp90yTTKV&#43;fkg5mVa9bsg6GQ0&#43;4/fRdofAsB6X&#43;/Wve1XPNNvdzvvedZ7EsayT8sounmNisUi32&#43;0PSu8vrH3UvE9&#43;6uMf3Toz5XZJV37xiqXF/ZLISxwrMOxGVevdeuOPexen/JMCQ7/mta//8re&#43;LzA0Y7MdrpLtKTbJgsmhpK7E87f87JcyLwgM7XG5d&#43;zYseu5zK796ZNPPlnieI6l3bLra9&#43;7lTR5Iu2gyPLOI6jmWTggnJzccL9Nd&#43;lPew6QgcQ7XnHK166/ZdLvFRjaJckvrmo9rPM4rIybWsdyy6FUabfe&#43;P3u/aLA8U76pJNOuvLbNx521TpVjmbrgaVCWC3OxnNkcezLvvbNnc&#43;mg1pxPreqxPV3vu9DtN3G0w7KttkliGQoRzBRDKfLgaVCLLc8n0HVGgCwYYFaAwAsYPAJpdNpPfLQgxdd&#43;KnTXvfq42cmKZvd55Jf&#43;8pTL7/k4mRiaVCs7hjdS//j34/dus0rSzN&#43;n8/lfvm2bfWVZfKnt//w5hm/b8rrk0WJstnffvrp3W57tdk4fus2n8d74rHHcQwrMGyxrA&#43;q0In44hWXXvLaV57KMhRls5903NYPvvvdN1x3bbO52nu&#43;YE5ear8qfvttP3IJPOt0cBTtdXu&#43;fMUXyM&#43;v&#43;epXeZqRRcktu2Seu/orV/Z6XcMwur2O0d/GUfM&#43;ec&#43;dd1x5&#43;eXVSqlnmq1Ww&#43;txOe0OUeA2qlr/pdrbU26c8873XP6Nbz/2VHz2QMbvdnGU87AHhOuNiFaaz68ElnIRrfKp/7hU5jmeY2Se&#43;9yXvhbN1ufzK5dffa3A0G7Z5ff63vPBjwSShf4Y6YROFnbewGodTVWDWjGYKPbXvkpXQ8nSO971vi9&#43;49uz&#43;9Lz&#43;ZWt0zOTHi9tt7kk&#43;cY77rfqPA4r46bW4fTawAGtfN573v&#43;Fr17z579o4XT5sKvWmXooVYloJdIenNxIUtRSJFOJ5VfCajmarT&#43;0a57cIvG53LIk3Hz3L0KpSlArzi3myXx7VK0BABsYqDUAwAJarQZR3I99&#43;MMszQgMu2XTZspmd05ssW/exLMcTzM7Tjzx0d/8qtlurTYbpmkkk/Ept5ujnALPbnnZMTTl&#43;PY3vtFsNusrtQ&#43;//z0iywgMS1MOhqJv&#43;/EPm&#43;1Wp9OindSU18M6KY5yUjb76upyo9VstJq/&#43;/WvTj6x79v2zZucE1tYp4N2Uv/y2tc0m81BAfxvhppf/NlPcxTtdNgYip7yTz704L3kffOun9zGc4xblPw&#43;j8gyn/zo&#43;d2e0W63u71Ot9sdtEw7KljfGa7TaUkc6xJEryxtVLV&#43;pt6LZGpPVY1QphxNVZV4XpYEiWMPV8kWCqsLhVWyOPDcYvaVr3qNyHICQ8/MzNx2/6N7Sq25RP6We38lcaxbdnndvu3bt88l8kGt3J9&#43;nChEs/UNPNc6qJGVn8qhVCmUqoTVYiBZiKUr0Wx9PlNfKKxOT0&#43;TVyWL0ovoED6s8zisjJtaLxRWY7laNFufS&#43;R3F5vzmWooVQol9cNV61i6EkpVIlololXI/ZFAshDUyk/XjD16a0FvRDK1cLrK05TIcjLPyTx3892/CKtlstBXKFmKZGqx3PKR3l&#43;oNQDAKqDWAAALGPQtu&#43;xzn2McTvvmTY4tm22bjvmn//X/TGzZRNnslOP5qcumaTTbrdXV5fM/8F6PJAocLzC0w2Y/54wzOp1Wt9veOun3&#43;zwCQ9OU45U7TtZ1vdfrtjrNSb/X43JP&#43;r0CxzMOe61W6ZlGNpud8vpknqOcdtpuc2zZ/E//6/9lHHba7rjoggtWV1e73fbaizTWv0Wed9aZti0T9gmb0&#43;6YmvQ98/RfyC7MR2MM7XS7pCn/JEPRr3/dq7o9o9lsdrttotZH0cexdQ3kTNM0BZ51SbIk8htVrf9S7T1V7QaWCtHM8lwiP59fcQm8JPKHq2RPljqhpE6q1rPxAmWb4GmGo5wel/v3e57bW2jMZ&#43;oPPBHlWNoruyZ9fpFliNMGteLOfakNX7WO5ZaDWjGaqpJdVlQ9lNTJQlDz&#43;ZW/1HuTHveUf5Jx2L1uz4uYaz2s8zisjJtak&#43;Zhsdzygt4gYwcimVosXTtctY5kaqFUKZKphZJ6JFMhi2OHUpUny&#43;2FwupuvRHL1SJaySPJLoH3udwiy/zkkT&#43;F1XIwUdi1Px1K6tFsdRQ9FKDWAACLgFoDACyg3SUTrY3f/PoXPMvJknD2W996yUWfee&#43;/voO221iaEVmGZzmRZb765S&#43;1Os12u93ttqORkM/rpu02keWcDpsocM3m6n/f/mOBYT1uWWQZkWVu/M53VlZWeqbZ7bY9LvcJxx/L09Skx&#43;11e9rdVqfTuviiz5CNk35dHkl8zatfceK2aYlj77j9Rx2j3Wit9ta9QtM0TdPo9ow3veG1tonNW152DE9T27ZODxS00WoytHPK6yEzsU99xfZut7uystLtdVqt1tGm1uu7rJscS/vdLr/Xt1HV&#43;qlqN5ZbJkXjULIUyVS8sot3HvZA4j3FZiRTCaUqSjz/h/kD1JYttN3G09S2ma3z&#43;fpTlU5QK&#43;/an&#43;Yop8/j9bhlkeUe3BkLq2VFLe3clyIysIHVOpqtk6q1Es8HkgVFLZGWZoFkIZKpPVlu&#43;7xut&#43;wSGHrS57/557&#43;w6jwOK&#43;Om1uF0mfxd0Ww9mqoqqq7E9UCyeLhqHU5X&#43;63s09VIpkaq0EGt&#43;NyqubfUem7VDKUq//2LP3CUUxYlmec4ykl6Cswt5mcPZJS4HsuhjRkAYCMDtQYAWEK/35hpGl&#43;6/LK0liLfrjSWP/6RD/lcsiTyU5M&#43;jnJ&#43;8qPnk5Zg5Lfe8fa32SdsHkmcOOZljMP54L0/u/CTH6Nsdr/X53e7XnPqjkHFtd3tbJ2c8nt9Po&#43;X9LteWVlpNpuveuUrJI4VeHbb1PRb3nhafHFpeXm5Zxr333OX2V83a/DyzPXDwkWWY50Ox5YJmnJsnZ4ZqPXq6ipH0TIveGUX66QEjm&#43;1Wq1Os9frrbVqO2reJ9dXrVdXV0WWo&#43;0OfuMuvnUwBTqYkg2KrmTmMBkTG1aLC4XVBb0Ryy1HU9Uf3PkAT1OMzcbTzMzUdCRT2603SHVaYGiZ57yyRFZvDiX1wFJBiefnEvlotj6C/bVKrQ8WsspxNFufmZp2CSJPUyLLfP&#43;n9x3s&#43;YpaimgVRSWjystBrRzUyqFk6XDPo1XXlWVqfZAcTK1DydLgqgilKoPDHtSKaykrqh5Wy&#43;SZ0Ww9kqnsLbWi2fon/v3ztN1G1t967wfPDyaK/aclCoFkIZqqhlKlI75rUGsAgEVArQEAFrBuUav&#43;t&#43;Rxq9O86ye3&#43;VyyWxT8Po/PJZ9&#43;2uvNdStg3XzDDQLP0k6Ktttou&#43;2zF17wiu0v52lG4vhJv/e71/7XodW63W25RYllqCmvx&#43;fxXnnFF1Yaq2Ti9/rlu8znX9Xz636RRtnOiS0MRc9MTZtrClqv1wWGFRjWK7tYp0PkhWZztdVpmqbZ7rbMF1LQsQJqfWglU9RSNFVW4vmIVgokixGtMlDrPcVmLLccS9duvON&#43;gaFJ1Xp6ciqiVRaKK4qqP/GcRtTaJck8x9x014OKWgosFeYS&#43;WCiOCHcwgMAACAASURBVJqBske/WusRrRJWy4PjH0wUgtphn0errqujRa1JF4BQqkLEOKwSPdaJV5MHiloKr93dUFT9L9WeEs9H1arL43ZJMm23SRz/1RtuIb8YVstKPN&#43;38VTliO8a1BoAYBFQawCAVRjdLllE2hisIL17fuGHN9543My0x&#43;X&#43;5xNOdE5smfS4y9XK&#43;jLycVNTtN3GOim7bcs2v9&#43;&#43;eROZgH3isceVi6XBm9LfVetOpyNxrNsleST5&#43;K0zW6dn/vCbRzpGlyyj3TON1WajZxpEjAel9Z5pGmbXK0uUbYK2OyiHc&#43;v0jLmmoMvLyxxFSxzvkWTWSYkC12w2uz2j02n9Iwo6VkCtX1DJFFUPq8VByY6o9Z5icz6/srfQUFT95rsfElmGdTp4mpryT4bT5YXCajhdfewvCZFlJI73uNwyL5AZxYFkca29UwVq/YJqHdSKZJ3koEZWSy4Rx4Nav7gcsmpdHFze5HFQK5L&#43;c8SuQ8l&#43;8TmYKMbStVBSf2bZfP9HPzY9OcU6HTIvbN&#43;&#43;I6yWA8kCedralVYcxfUGtQYAWATUGgBgAWtVa6Nnmr1e76m9T378Ix965cknuUWBqO&#43;Uf9IjyTN&#43;n0cSByVuslT1FZdeYp&#43;w0U6Ksk04HTbabhN4VuL4r1xxxXrl&#43;7tq3TPNd7/jHTN&#43;n8ct&#43;1xun0vmGPbLl12mJuOG0Wl3O6ZpGEbHNM215t7PdwiXeY62O2i7g3QIHyhotVpdX7WWJaHZbHaMdq/X7faer8wfFUCtX7BqHUrqZGVm4nhkCaI9xeZuvRHN1kOpyg/ufEDiWNbpIDOHQ6nSfH4llKr8&#43;VlVYGiJY12yKPLCzXc/FNFKwURhbfmiUcxBPdrVWlF10pWaVK3DapkMToZav7gcqmq9dvOC6HQoWerPg1ibENHvYdbX73I0W7/l3l9OT06xdvuUf5J1Oq6//R7Sr478qyHjC8JqOZo68rsGtQYAWATUGgBgAd1e36tN0/zS5ZfRTkrmhc3HbOJpyiXJkz7/jH9y2ueXOF7khUZjpbeuuJ1MJv1uF&#43;W0s04H43AytJOjaL/b9dTeJ9d3tz6YWj/80H2SIPp9Hq/bIwmizyXbbVtOOvbYRx56cHV1udttd4yuYXZ764aF90yj2zN8Ltk5YWOdFOVwzvgnB3pZW67zNMPSjFt2cZSTVK17ptlsrqJqvcHUOqyWQ0k9mioHkn81XHZvqbVbb0QytUim9sDjIZFleKdTYFi/1xfLLUcytVCq8vgzSdJpz&#43;2SZJ57aFe0bymJoqLq85k61PoF1ZoMLQ6r5WCiEE1V12qqUOsXmUOrNTliwUThbwaEK6quqDoZEB5Wy4paUtTSY0/FTznlVI/L7XO5BYb94Mc&#43;qcT1YKIQSupkxDh5PJgnf2QDtQYAWATUGgBgAYM3nSu/eNnm//1PDpvdtmkz43CKLEM7KbJAkcCw0z7/lNf3VyVu02i1Gu88&#43;2zbxGae5VgnJXH8xOYtbzztDeu92jyoWhs90/jB9ddJHO&#43;VXRLHcixNFr52Cfyjj/yy3e002y1zXVvvgVqfefqbnRM2ooJ/pda1msCwLM14XG7GYX/L6W9qNBo9EwPCN6RaF9ekuhDRKoqqkyZPe0utPcUmUevZAxnSw4mo9a7nMqSafc8fFYGheZpyyy6JY8m61qGkPpfQFVVHG7N/bEB4WVGJqpUGxz&#43;U1KHWLy6HbmO2rntZefCV/CL5lozgIC393v2B810C75LkKf/kjh07dv0lNXsgQ7YTSurr/9VArQEAGxioNQDAGlqtxgM/v4djWJ/LTdnsHEVvm/J9/7rrur2Oz&#43;XeOjkl8oLIci6Bb7Yb5lrV2jSNXDYtSwJPMwJDszTjsE9wlFPi&#43;Mcf&#43;/2g5Zh58Ko1edf62R0/dcsur&#43;wSeJZ1OhiHXWS5k44/rtVqNFpN0zR6vYFA9geEn/HmN61X62JBJ0/YtWuXwLAcRftcbo6i3/ymN7TbbcPstdtNqPUGU2tSygur5XVzUPWwWibr&#43;sZyy&#43;F0dedi5nWv/xeOcvI05ff6bn/497HcsqKWvv/T&#43;4hye1zuN/zLG2fjBaLlA7VG1fofqFqXBqdgcPDDahFq/eJy8MW3ikSJybDw9VOvydVC5kGQ8d6RZPELX/2GzHMugfe43JMe972PKUo8r8SfvwkS1EincX197/EjGKg1AMAioNYAAEswuj3jY&#43;d/UGQ5keVsmzY77Y5dT&#43;xstFY7Rtstu7wel1sUJI73&#43;zwdo22ua9b9zauvomx2nmZ4jmFo58TmLRLH8zTziY&#43;eb/5Dam2STS0tHfjoh95POymGojnKSQTyN7/8Rccgc6QN86/nWn/6U58YDAif9vkfvPc&#43;MlH8xz/8kchyrJPyuz2s03H5ZRc3m03D7KFqbW44tSYlU6J2iqrfes&#43;vB2odyy3v1huKWgos5T78iU8JDM1RTr/Xd&#43;W118/nVxRV/4///IrIckStL7z0P8l6v6FUJbCUC6VK4XQVav2PqPUPf/4bMsuXdNUiD6DWLy4HHxBeDCaKgwZmilr64c9/s3ZHozw4/kGtGEkW73p0FxmO4XHLosB985b/DqerYbU8eyATTZWDiQL5LbICdrh/W&#43;oI7xrUGgBgEVBrAIAFdIx2q9M&#43;&#43;YQTJn1&#43;xmEXGPaVp56s63q9Xq3XqxxF&#43;70&#43;mRdYJyWyXKPR6Hbb5K2q3W6/4qSTJo7ZRNkm7Ju3THs8lG1C5AXa7tg2szWkBFuddrPdarVajUbDLUrTPr9LEDmKdtod5XKZzNZud1udTqvT6Rhm9&#43;LPfpqy2Z0TWyaOeZlt0&#43;aLL/pMq9MeDAgfDERvthvfv&#43;46&#43;&#43;YtjMPu2LLZaXd88&#43;qrmu1Wq9P88uWX2jdvcdjskiCKLHfT9d/r9XrdntFoNI66D2KDEfWGYayurjq2TDgnbJTDSdsdAsM2m03yuZPY9UZQ61JrPr8yeyATTBT&#43;/Kw6uy8tMDRjszEOO0c5v//TB3buS80l8ko8H83Wnyy3H38mefnV17BOh0vgp6enP/ixT0QytbnFbDRbJxIyt5hV4vlv/&#43;gOiWMFhrYfc8zxxx//x4XFucXsCSecwDjsrNMh89x3b79bUftOS0p5Ea1CZrQe0YybWs8tZgPJQjRb97jcIss4Nr&#43;MdVLfuuWnzyybYbX4VLn7&#43;NOJaLZ&#43;0RevdIsCeaP41w98SFFLwURh1/40cb&#43;F7PILnscnnksr8bwSzy9kl58st4/4dXWUqLVj06aJY17mnNjCOiZuufdX0VSZtNx74jktsJS78trrp6cnyRpy573n/XOL2QW9sVBYDSwVAku5XfvTswcyf5g/cPzxx7N2u3Nii3Ni0yc&#43;/bmdi5n/n737jpKsrvP///dvf8p0qLr5Vu4wA7jOqLCu303qfldyEgyoiGFNKK6uioBgwEVY0BXDSlAUkcyCBF3dVYGZrnBvhQ5DEKa70r2VbqrQ3dWVf398utvZ3zIDc0513eqe1&#43;O8zxwYZror0d3Puvd&#43;PsGlQnCpNLOYDy6VQsliOFUKLhXIpdexQiVWqG35XUNaA4BNkNYAYINur9NstwIe7&#43;6paXLg&#43;q//8lTDMBqttXa7zTHsiVOTPMv5XG7GMd5stzYX637g/l&#43;ILON0jLE0Q42Nf/0rV7o41iPw5Pj21V/8YqPRaLZbnU6n3W6Ta7ZFlnPzAuVwbp4Q3u62ms1mr9fr9NrdbtfFsTTlcIzsGt91whf&#43;6bPNZvPwtcF7vV6r0&#43;52u0tLh6ixUWpslKGdHMP&#43;37f&#43;TavTrtdX3nPh&#43;TTlcHG83&#43;0SGFbNKuRHsbW1tVanbeejfOw2D1m3Ou1Go0E5nI6RUcrhdI6OCRxfr9dbrVav1yOP3it8qO2Q1tF8NVaoPfVCJqZWDhwqSGrZxfEc5WQZysXxt933y&#43;BSgQRzVCnHCrWn/5g9/YxzRJZx89zkhP/m2&#43;&#43;W1HI4VUqUVmJqJZQsRtLGUy8p4az5hje8QWBonmNEmj7ppD3/56/&#43;jhzZExh27969oUxx4wxbfXNprs1/2LoZtrR&#43;ZjEXTunRfNkjiG6eGz/h//WKwg/vfnjBaiaKq/HSSiRtRNLGO047y81zHOUUGOd13701ohihZDG4VIiktWi&#43;ShaKe9nnkVwqQp7HcNacWcxLqpnIb3nabZe05liaGRvjKCfjGL/j4SeljEneKnrqJUXK6Gedf9HUxKTbJfi87m9897aZxTxZkG9mMR/KaMGlQkSxTj/7PJ6mGNrJ0xRPU6edde5pp599&#43;tnnnXbmeaeffd47zjr3ultuJ1tzhVOlA8lCRLGQ1gCwgyGtAcAWnV6vc&#43;LuPRP&#43;QMDv5TlmcsKfSi31er07/v37kz7v6/acOB3wCxw/4fVUKtbmad7vPPcsnmam/AHH2Pi5p5&#43;eSSddHOsVXbunpr1uzyn73pBTVLJ7Vr2xtmd6957JqcnAhJsXvG5PuVrp9Xr33HXnow89uHlQ&#43;pEH73OJPE9T1Ngox9I/&#43;M53ur1eu93cXCG81Wn2er1mu9Vut885/R&#43;osVGBYUWWC/i911179VevvkrkBVHgPII46XO//13vaXXa3V6v1Wq1Wq3Nc6e3o5WVFYHjGYeTY1iOon0uN9kYfGM38p1w1PrZciueq8YKtQOHcjOLxf0v5UWW4VhaYFiepn5498MHDuVCyWI8V44Xlw9azZmXCj6fzyOIIsvs3ffGAy&#43;qsUJNyuizpbqcs8IpPZTUyNHRb95yG&#43;t0jL/2tRw17hVdbp4TaZp1Otjx8e/89L6Ns8qNwxaI2vKulocvrck7C4l8bWoyILKMRxCpsdHv3nnfgtGMF5fntDWyBrvf7xd4luwT/ruFpXBWJ11NzheIFWpHfB4piqepH9396IFDuVBSi&#43;bL0XwVR603xzk6Qo2MMI5xUeDueODJeHE5XqzOFqr7X1LDWX16enpqasrrcZ108p8/tZCeSRUPmq1YoRIvLu9/SQ0liz&#43;8&#43;2GRZsmWchu/si6OFVlGZDnyD1d&#43;84bgUiG4VAgltYhiDGa5PqQ1ANgFaQ0Adum864Jz90zvnvB6Aj6/z&#43;X&#43;m7f85eWf&#43;vjUxKTf59k9Ne0WXSdNT014fZtXO//xj88HfH4Xx4q8IHD89d/4ar2xduF5Z5NUmPT5J/yBf//ud8mPP&#43;1uZzowMR2Y8Iouv9sz6fO3Ou1ur/OhD1zsd3vesHffWWe&#43;47R3vH3P5MSE1yfwLEc5WSeVTqd7f9pGu9fr9brk4Havt9as3/3TO3ma4lj6dXtOJH/RKwo&#43;r9vnck94fS6Rj0pyu9vpdrutVqvT6XQ6ne31s9jh11q3222fy&#43;0RRK/oElku4PNv/mRJ7tcOSOt4rkoO00lqOaJY4ZTud3tIArldwu33PxbOmuGsHk6VJLUs56yHnoqQZpvw&#43;j502WcOWk0po8u5SqxQixeXg&#43;mSnDWCaXISrH7pxz/jEvmA30vWnyftcdW3vk1WSN5cIyqSJktGDWJ5p2FL62BajxVqEcWa8HpElqPHx7we1&#43;33PxEr1BbMRkSx5o21B34fcgki73S6OPaST3wqnNLDWT2YLkkZM5QskuPVR3kePQJ/&#43;/2PkQuzg2k9qpTJlcBbOtslrd28IDC0wLAujr/j4V&#43;Ttx7IEeb/eCbmdXvcPHfi7j2XfOyT8eIyeXjJcgNk87MfP/grj8C7ONYl8iLLiQLn4ljyFcPncntFl8gyV37rX&#43;VcRc5VpIxJtraWVFxrDQA7FtIaAGzR6fV6Tzz6yKTPT34OY2mGo5xunpsO&#43;HdPTAb83umA38XxHkFstlu9Xq/b6/3jhy6dnpogexd5RZcUCTXbrZu&#43;dX3A5/e7PT6Pd8rve&#43;PrT14/rNrt7pne7RZdJ&#43;7eI7KcRxBXV1d7vc7JJ560e2KSpxmPyy2yHMtQIsuJLCPw7LVXXdlsNw5f6mzzpjZaa91er9VpXnLxe8nhNZcg7pmc8Ps8AY/bKwoTXs83r7222&#43;2Ss8e7r64/h83hab2ysuISRMfYOEszHEWTE8K7vR4p5Ff&#43;UNshrZ&#43;rtEneBJcKctaaWcx7RcHNc26e8wjibfc9Hk7pUkYnf&#43;Zguf21b/&#43;QvAvjdXvu&#43;&#43;/9c3qdHCyN5qtyzpKzhqSa4ZROzliWMvr3f/7AWedfuHtqeiLgu&#43;Dd7/vhvY9E89VYobKxM7BOjsqSPY0GsCnRsKV1vLic0FZntdUTTzyRLC4t0vSP7nkkUVqZ1euJfC1WqHz9O/9Oln8TGPre3&#43;wPJYvhrBnKaFGlTF4ncq5ylOdRFLjb7vtlKGNE0lqiVJvVVg9WsIzZ&#43;ogs4&#43;JYF8dO&#43;vx3Pvrbg1Zz3lhbsJpSxrz2pu8HPF4Xx&#43;6emr7/dweiihlJawetZkJbjeeq5K795KFf&#43;1xuN88FfH6yYOTU1NT05NRJJ520Z8&#43;ek0/&#43;84DHfc0NN29s/25JqklO4N/yu4a0BgCbIK0BwBbr4fq5yy5z8&#43;tr&#43;XKUk6Gdf3HqG664/LMujhUFTmQZv89DVgjP5xSfSySXT1Njo39x6ptWV1e73baqqq8/6WSRZSZ9fp7l3LzwvZtv7vZ6a2trJ05NewRxOjBBFriurSz/&#43;vHH/D4PPe7w&#43;zwCz3rcomNk1OkY4znmUx/9aLfXabVah61Gfnhdd9rtZq/X00qFc888g6epgMftFl0Bj9vvdvndng9/4GLyt8jVyMQ2TWuiVqu5ecE5OsbTDONwekXXyspKb2eldTirh7NmRDEktRwr1CJpLVFaIaEbK1QiikEOuEUUixxY/uDHP&#43;UReGps9NwL3x1TK7Pacry4HC8uxwo1OWuQk8PlXIUcU5Wz1pxenzcbkmrGSysxtRIrVOb0uqSaUkYnS3BFFIv8enwetSZXsIdTeqxQI2fIJ4qr5BD0nF4nD&#43;wlH/skzzGMY/yMM8&#43;VVDOS1siDHEkb5BBrNF890vMYzpqxQkXOWjHVIs9jNGNtlt7WzXZJa3LAX1LL5PpzSV3fdDqcNd/3kY/5vG6Bod/1vg9urBmuSRkznCrF1IqkluVcJZzV46UVOWtF82U5R9YAt0jTJkoridyynKuQ8whiqhVRLNLnoYy25XcNaQ0ANkFaA4ANNlcIa7ebP73ttrf85V94BHHC67nkve8qFou/efIxn9e9e2KSZagJr&#43;/h&#43;&#43;/p9npfueILeyandk9MnjS92yOI11xxRb2xSr54fezSS0/cMz3lD0xO&#43;F0i/3/f&#43;jfkJ6CT9pw4NTG5Z3LK7/Z43Z61tbVer3PdtVdf/K6L9p602&#43;MWOYZ981&#43;88X0XXXTvz&#43;/q9jrkMulmc21zGbONXzu9XoesSdbqNLu9zo3f/Prb3vrXPpc74PNfevHFd9566&#43;YXw06v290My&#43;3209jhR63X1tbcvMDTjMhyPM24RRd512AnXWs9q63GtdpccSWU0RL5WiipyVmDHEwmew6RDI4Xq7PaakJbnZ7ewzEs73Tefv8T8eLybGF5zlib1VZJIkaVcjirzxaW1/&#43;iWo4XlyOKQbbmIntfzxtridJKVCmT8Dt8l&#43;wBbEo0bGmdKK3Mm414rjqn12OF2mxhOZTRJLUcz1XJAzWrrfr9XpFlqJGRW&#43;99lJyQLGcNOVeJqRU5V4kqppw74vNI9l4mq52RT0cOkm/1/douaR3KGJJaljImucp63lib1ZYXrGYoo01MTJAVIu9&#43;8g/zZiOmViJpI1FamTfWyE5akmqGUyWSyuSZmtVWZ/V6PFcle7zHi8vBtB5JG6GMJmV0SS1Lqkkundjyu4a0BgCbIK0BwAabx4TrjdVur1Ov13u9Xr2x2m43m&#43;1Gr9dbaza6vU6jUe/2eu1uZyPF/7TX9Fqz0WjUe71eu0t&#43;p9fpdcll0q1OczP8Di/AZrvVbLfa3c7q6ir5WWl1dXVtbW15ebnTaXW77V6v0&#43;12u4ftvHX4dHpdEtudXrvTa3c6LVLRvY0voJ1eu/e/Pum2&#43;1lsM63Jd4JGo9HqtButZrfXqzfW/n9/7GgfZzukdaK0QnYDiqS1aL48s5iXc&#43;s5FFGMjew0ovlyvLj80FMRl8hTY6Nnn3fRzGJ&#43;VluNqZUFqzlXXCF79pKNi6L5alQxY4VKRLFIUUQVM5ovHzRbZN9gkhbkwDU5WL2xC9dxl9bRfHlOr0tqeV5vkAdKyphSxpTU8pxeT5RqDz0VISurv&#43;0fTg8li1GlLOcsKWNupLUVUQw5d8TnMZQxSN9KajmiGNF8NVFaGUDabZe0JptXk7MGyP9x8eLyglb/xX/&#43;wS26qLHR8991MXlXiDzsm69wOWuFs3pwqbS&#43;TrtSlnMVctQ6ohjhrE6OfoeSRdLekbQWTJfIk4W0BoAdDGkNAAD9ty3S&#43;kgjqSY59ziUWT9tO5w1P/3Fq/7ubW8985x33vHA4&#43;TaXTmtkyN4dt3OY51hS&#43;sjDbmgWs5Z/3Tl1976tr8/49x33nbfLwewOVm/Zruk9ZHm01&#43;86m//7m2nn3X&#43;rQ88Rs4SH8y&#43;630bpDUA2ARpDQAA/bet0zqU0cjxarLYmJw1yMnb5PhbJG2EMuvnG4cyxgCONvdrtk1aZzQpowfTejhVCmW0cNZcfy/D7hv2Kme7p3UwXQplNPLaJivkR9LGYPaH688grQHAJkhrAADov22d1vL69c/rO2ORuiZnbkcUI6L86URuUuD2t8Srm&#43;2S1uQxj6lWOGvKuUokrUUUA0etB/j4Gxuvc13OWmQpsiF8nRxxkNYAYBOkNQAA9N&#43;2TuvNqAinSlHFJKUXUQxyNJuscCZnLXLGuP0h8apnu6R1OKWHsyZZFk7OGuFUiawBbvsNe5Wz3dNazhqRtEFO0Fh/C4kszG7/DXt1g7QGAJsgrQEAoP&#43;2dVpHlbKkmnLWWl/MLG2Qc5JDyWJwqTCTKpLttaJKOZqvxgo1&#43;1vi1c12SetIWosolqSW13cLz5gzqWJwqWT7DXuVs93TeiZV3L&#43;UJ4uQkaX45Fwlnts2awogrQHALkhrAADov22d1vLGlteH/Y4RSWtkx6yIYknqnw5lb6NrULdLWpPT78kWZcF0iSwuTRad3haz3dN6/bWd1sirnVz1MIj9qPs1SGsAsAnSGgAA&#43;m9bpzXZaDqc1cm&#43;1uTKakk15ZxFFkwmUS2pZkTBCeH9H3JNeyijyTkrqpQT&#43;Rr5Tdtv2Kuc7Z7WUaVMtg0nV1mHs&#43;R1vn1e6khrALAJ0hoAAPpvW6e1vL7vtBVVyJHSjcxWy6Q3yL7KUaUcVcrbqK63S1pH8&#43;v7V0uqGVVMOWfJuYqcq9h&#43;w17lbPe0Ju8iRfNlstCAnKuQ9zhsv2GvdpDWAGATpDUAAPTfdk/rHTnbJa23&#43;2z3tN72g7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfMgrQHAJkhrAADoP6T1EA7SejCDtLZ5kNYAYBOkNQAA9B/SeggHaT2YQVrbPEhrALAJ0hoAAPoPaT2Eg7QezCCtbR6kNQDYBGkNAAD9h7QewkFaD2aQ1jYP0hoAbIK0BgCA/kNaD&#43;EgrQczSGubB2kNADZBWgMAQP8hrYdwkNaDGaS1zYO0BgCbIK0BAKD/kNZDOEjrwQzS2uZBWgOATZDWAADQf0jrIRyk9WAGaW3zIK0BwCZIawAA6D&#43;k9RAO0nowg7S2eZDWAGATpDUAAPQf0noIB2k9mEFa2zxIawCwCdIaAAD6D2k9hIO0HswgrW0epDUA2ARpDQAA/Ye0HsJBWg9mkNY2D9IaAGyCtAYAgP5DWg/hIK0HM0hrmwdpDQA2QVoDAED/Ia2HcJDWgxmktc2DtAYAmyCtAQCg/5DWQzhI68EM0trmQVoDgE2Q1gAA0H9I6yEcpPVgBmlt8yCtAcAmSGsAAOg/pPUQDtJ6MIO0tnmQ1gBgE6Q1AAD0H9J6CAdpPZhBWts8SGsAsAnSGgAA&#43;g9pPYSDtB7MIK1tHqQ1ANgEaQ0AAP2HtB7CQVoPZpDWNg/SGgBsgrQGAID&#43;Q1oP4SCtBzNIa5sHaQ0ANkFaAwBA/yGth3CQ1oMZpLXNg7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfMgrQHAJkhrAADoP6T1EA7SejCDtLZ5kNYAYBOkNQAA9B/SeggHaT2YQVrbPEhrALAJ0hoAAPoPaT2Eg7QezCCtbR6kNQDYBGkNAAD9h7QewkFaD2aQ1jYP0hoAbIK0BgCA/kNaD&#43;EgrQczSGubB2kNADZBWgMAQP8hrYdwkNaDGaS1zYO0BgCbIK0BAKD/kNZDOEjrwQzS2uZBWgOATZDWAADQf0jrIRyk9WAGaW3zIK0BwCZIawAA6D&#43;k9RAO0nowg7S2eZDWAGATpDUAAPQf0noIB2k9mEFa2zxIawCwCdIaAAD6D2k9hIO0HswgrW0epDUA2ARpDQAA/Ye0HsJBWg9mkNY2D9IaAGyCtAYAgP5DWg/hIK0HM0hrmwdpDQA2QVoDAED/HVNac5STcYzzNEWNjbpd6xEiChxHOTF9HJ6mRIFjnY7pySnnyGsn/AFR4EResP2G7bDxCLyLY/1uFz066hVd1MgITzOMY5yjnNTIiMfldu7a5Xd7OMo54Q94BN72G7zDxs0Lfq&#43;Pp6mpiUmOcnpFFz0&#43;9vnP/xPSGgC2GtIaAAD675jSmqcpenxMYGieXs9sxjHOUTTrdGD6OALPej0ugaFdHMs6HR6XW2QZEtuYvg9HOTlq/aEm7xPxHCMwtNslsE4HzzECw/I0xTnsv6k7bDjKKbIMRzm9bo&#43;LYwWedbuEK678EtIaALYa0hoAAPrvmNJaoCjn6Ag1NuocHSEnzfI0JTA0aWxMv4YeH3NxLE9TAZ&#43;fo5wBn5&#43;cK2v7Ddth4xF4kWU8Ak&#43;PjvI05TjhBN7pZJ0OxjFOj466OH581wkujucop8/j9You22/wDhs3L7hdgsDQE/4AeSOJHh/77Gc/g7QGgK2GtAYAgP47tmutXYKLYwM&#43;v9/tNDJf9AAAIABJREFUcYm8z&#43;N1cazP5faKAqaP4/d53KLL4xYFhvYIvFd0eUWX3&#43;ex/YbtsCEnJAsMPeH1&#43;Txel8j7vT6RZdwuwc1zXrfH53K7XULA5xdZxvZbu/PGxfEel9sj8B636HO5BYaeDEx8&#43;ctfRloDwFZDWgMAQP8dU1p7BD6UMcKpUjBdiqSNcKqUKK3MaqsRxcL0cZ56Lu0ReDcvTE9OTfgDZBmzYFq3/YbtsHm&#43;2onmq4nSyoFDuVCyGFwqiSzj4lhyyYNI008fUuO5akQxDpbbC2bD9hu8w0bOVWKFWqK0sntq2iXyHkFkx8c/85nLkNYAsNWQ1gAA0H/HlNZ&#43;r29WW3220jloNeVcZU6vL5iNZ8uteWMN08eRc5bX45rw&#43;ryia8&#43;ePT6PV85VEqUV22/YDptnK23ySp431uLF5Tm9PhmY8LjcAZ/f53W7XUKitJIorTxbbsWLywetpu03eIeNpJrx4vKC2Qj4vQGf38Xxk4GJL30J11oDwJZDWgMAQP8da1qTjYhihVqsUJvT689W2s9VO3N6HdPHCR4qCjwb8HinJiZPPPHkycCEpJbJexmYPs6htR559cYKFTlXkdSy3&#43;3xii6PILo41s0Lklqe1Vbnrfpz1e5L9Z7tN3iHTaK4umA2DpZb01MTPo/XzQsujr0cR60BYOshrQEAoP&#43;OKa0DPj8p6nljLZzSZ7XVOWNtwWzMaquYPk4krXnc4mRggueY179&#43;n9fjkjJmNF&#43;2/YbtsHnWas&#43;bDSmjzxlr4ayeKK1MBHxej8vndfu9PhfHxovLklomR7YPllu23&#43;AdNpJaltTygtUMeNyTgQlyrfU///PnkNYAsNWQ1gAA0H/HtowZzwWXCpJajqS1ULIoZfRovjqrrcpZC9PHeeZFxSPwbp7ze30Bn59cax1R7L9hO2wWrGaitBJRrHCqFEkbBw7lvOL6bu2s0yGyzP6XVDlXIWdqLJgN22/wTptcZVZbjRVq05NTHoEny&#43;BffvmnkdYAsNWQ1gAA0H9I6yEcpPVgBmlt8yCtAcAmSGsAAOg/pPUQDtJ6MIO0tnmQ1gBgE6Q1AAD0H9J6CAdpPZhBWts8SGsAsAnSGgAA&#43;g9pPYSDtB7MIK1tHqQ1ANgEaQ0AAP2HtB7CQVoPZpDWNg/SGgBsgrQGAID&#43;Q1oP4SCtBzNIa5sHaQ0ANkFaAwBA/yGth3CQ1oMZpLXNg7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfMgrQHAJkhrAADoP6T1EA7SejCDtLZ5kNYAYBOkNQAA9B/SeggHaT2YQVrbPEhrALAJ0hoAAPoPaT2Eg7QezCCtbR6kNQDYBGkNAAD9h7QewkFaD2aQ1jYP0hoAbIK0BgCA/kNaD&#43;EgrQczSGubB2kNADZBWgMAQP8hrYdwkNaDGaS1zYO0BgCbIK0BAKD/kNZDOEjrwQzS2uZBWgOATZDWAADQf0jrIRyk9WAGaW3zIK0BwCZIawAA6D&#43;k9RAO0nowg7S2eZDWAGATpDUAAPQf0noIB2k9mEFa2zxIawCwCdIaAAD6D2k9hIO0HswgrW0epDUA2ARpDQAA/Ye0HsJBWg9mkNY2D9IaAGyCtAYAgP5DWg/hIK0HM0hrmwdpDQA2QVoDAED/Ia2HcJDWgxmktc2DtAYAmyCtAQCg/5DWQzhI68EM0trmQVoDgE2Q1gAA0H9I6yEcpPVgBmlt8yCtAcAmSGsAAOg/pPUQDtJ6MIO0tnmQ1gBgE6Q1AAD0H9J6CAdpPZhBWts8SGsAsAnSGgAA&#43;g9pPYSDtB7MIK1tHqQ1ANgEaQ0AAP2HtB7CQVoPZpDWNg/SGgBsgrQGAID&#43;Q1oP4SCtBzNIa5sHaQ0ANkFaAwBA/yGth3CQ1oMZpLXNg7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfMgrQHAJkhrAADoP6T1EA7SejCDtLZ5kNYAYBOkNQAA9B/SeggHaT2YQVrbPEhrALAJ0hoAAPoPaT2Eg7QezCCtbR6kNQDYBGkNAAD9h7QewkFaD2aQ1jYP0hoAbIK0BgCA/kNaD&#43;EgrQczSGubB2kNADZBWgMAQP8hrYdwkNaDGaS1zYO0BgCbIK0BAI475CdE8pNiu93u9LqdXrvdbh72/WD9j238c6fb66z/Trfd7XW6vc7Rf8zcFmm9YDbm9PqC2YgXl&#43;PFalQxJbUcVcox1YoVKonSSqxQi6kVOVdJlFbixeUjfygjqpRjaiWeKyfyNSmjxwqVaL5M/nXeWJvT6wet5pyxtmA05421iGKFs2ZEsaSMGc6aUsaUsxb5dUvHrrSOKmU5a0hqOZ6ryrmKpJpy1pBzFUktR/PleHGZPD7zxtq8sbZgNKP5spTRI4oVUaxovhpRLPKvR3wereaC2Xiu0o4Xl2OFWkSxYoVKvLgcSWtkovlyOKsnSiuv9Dz26XU1ZGm9YLXihZVEcTWiWNF8mTz4EcWaLSxLqinnKnLWmtVW5/T6vLF2sNyy63ns2yCtAcAmSGsAgOPOeiF3272Nfm53W5vx3Nso58OG/Kf1Xzf&#43;69G&#43;/m&#43;LtJZUM1aoJUors9pqNF9O6Mtzev1guSWpZRIM8eJyJG3M642oYh7l9kTz5VDGiBUqJMsltSxnrahiLpiNeWMtXlyWc5UFszFvrM4ba4nSSjhrkiF1veWlsTF2pTV5ZKKFmpQx5ZwVSerhrB5Vys9VO3N6fc5YixUqc/rKfGl5VluOF5cjiiFnjYhiRBRLUsvhrClnraPczkSpFivUYoVKrEDeyFhJlFai&#43;aqkmvHicjRfjRVq6wWorH&#43;0LZ1hS2tJNeO5qqSac3qdfNJovkpmTq9H8&#43;Vnyy05Z80WNh4rm57Hvg3SGgBsgrQGADjubORxp9vrdXrdbrfbbq8fi&#43;79j8PRnc3p9jqdTqfb63S77c3vHEf7FNshrZ8rdw5azTl9hdRFIl&#43;LFSrhVEnKmBHFkLNWMF2a0&#43;uRtDGrrcbUyhGTQ63IOUvOVSJpTc5aUkYPJYvkcHS8WD1othas5qy2GitUZrVVEl1kSGzs&#43;KPW5GBpKFlMlFaiSjmiGHKuQu7vrF6f1VYPlltzen1WWyUHPDcO5uuhjEHefYgo5JDpy3/8eGGFHHQlCR1M69F8dTPtQhlDUssRxSJHref0&#43;lbf32FL64NWc1avz&#43;n1iGLNFqozi/lEaSWeqybytVBGi&#43;eq4VRpTq/LOevZcitx5P/vtvp57NsgrQHAJkhrAIDjTqfTaXX&#43;dPo3OWrd63X&#43;&#43;MJz13/j6&#43;&#43;64PxT9u3dPTG5eyJw6t69H/rAxffcdWen1251muRnzE6nRb5nHOVTbIu0JhVNzgOPpLVYoRZVyvFiNZwqhVN6KKlFFXMmVZw31iJpLZqvHunjRPNl0tXBtB5RrEhaC6f0cKo0b6xJajmU0YJLhZlUUc5ZUaUsqebmUevNs8HlHZ3WseKylDHjxeVQshjO6lJGD6ZLEcWaMxrRfFnOWQcO5cgxfPI4kOdFyujrZ3QrRkQxjpJkUaUcTOvhVEnOWfHiMjnX4JkXlWC6JOcqUkbffONDUsvhVGmr7&#43;&#43;wpXUoqUXSRkQx5rQ1OVeJFZfDKT2UMWYW8&#43;Qw/rzeCGU0OVeZWcwf5XW41c9j3wZpDQA2QVoDABx3yBf9Vqfd7fXa3U672&#43;l221d94Qs&#43;l&#43;jmOZ5meJoSGNrFsRNez6TP7&#43;LYj1zyvmZzrdluNJtNcj75K3yK7ZDW5MzY7971wEc&#43;/bk3v/kt6&#43;Ujih/8&#43;Kd&#43;9sR/hZJaKFmUVHMmpSXytWj&#43;yGmXr0pqOZI2JNUMLhXCWV3KmKFk8Xs/vf&#43;iiy/xcNyE1/d//&#43;GML19/YzilR9LG5rXWJK13/FFr8oZCcKkgZfRI2pAyejhrfvvHd7/3Qx/du3evm&#43;cCPv&#43;JJ73uw5&#43;&#43;/N7/OhBJG&#43;GsTo7/y1kjnCJX5xqSesTHh5xuIOcq4ZT&#43;2/jzV3zj&#43;omJCZHlRJYRGeet9z4WXCqFksVorjZbWH620t7q&#43;ztsaT2rrc5qy7OF5ZnF/E233/XeD3103759AkXxNOX3&#43;y/52CfvfOw3UsaU1DI5q8Ku57Fvg7QGAJsgrQEAjjvkJ8ROp9Nst8iPje1u65Mf&#43;QjtpHiacnGsyDIszXAUTY2NO0dHOMo5PjbyiQ9/eGWl1u31Go36K3&#43;K7ZDWM4v58y58N0c5BYYld5yjnKzTwdMUNbbruu/eNrNYDKdKUkYnl2Qf6eNIajmar4aSmpw1gksFOWtF0sZ1372Vo5wcRbNOB&#43;t0cJSTp6mL3vv&#43;UMb401/MmOSkWXJ&#43;&#43;FbfX7vSmpyqHVMr&#43;19SI2ktlDHe&#43;Z738TTFMhRPOwSKoUdHGcc463TQo6Nf/86PwlmTHBSV1DJJMnKE/0gfP5zSg0sFKWNe/8Mf79u3j6cp5&#43;iIc9cujnK6OP62&#43;34ZShYjaW1mMS9l9Ji65fd32NI6uFQgFzy/79KPiCwjsoxjZBc9PkaNjDCOcZ6meJr61g9&#43;IqnlULIYShbteh77NkhrALAJ0hoA4Lizfh54t9vqtNvtdqfT6XRaP7rlFppyMI5xx9g4NTZKgtDF8S6OZ50UPT7mHB359eOPNRr1V1zDrLdN0lrOVa664SYXwwgc7&#43;JY1ukYe81rRv7sz3iaERiaHh390T2PhDIaWdXsqMs71eRcJZwqBZdKJB7ueOBJkWXGXnOCY2QXRzm9osDTFPmwX77uRvmwY9Sbh693cFoncstyrkLOAjiQLIUyxpXf&#43;leeppy7djl37WIc4yLLcCwtUJTAszxN/fjBJ8gbEBHFiKQ1SSVvPRhH&#43;vjRfPnOR//zlFNOEVmGpynW6XDu2uU44QSSeT/4&#43;UP7X1JJMcaLywet5lbf32FL61ihFitV5Vzlym/ewDod1NgoNTLiHB1xnHCCY2SXc3SExOdPHvlNTK3ECkdcU2Crn8e&#43;DdIaAGyCtAYAOO50e51Or93rdZrN9S/37W6nkFc5ynn2O95x3TXX/Oynd/zkx7dedO6547tOGBvdxVE0Q9GUc/ziCy9sthvrP2hu/2utQxnj1nsfI6e&#43;n3H2BWecc/7evXvXC4FyChR1&#43;tnnBdO6nLVIXR/p40TzZZLKwaVCOFUKZYw3vvGN5IPwNLVv376/&#43;uu/FVlGYGiOck5MTPzu2fTm3z18tfCtvr&#43;2nRCeL0fz5XBKJ0ePI4px24NPknMETjv7vNPPPm/fvn0cRXOUk6GdPM2cee4F4awuZy0po4dTOrlG&#43;ignEkfS2q33PkqeRxfHksOw9PiYwNBunrvtvl/OLBaljBlcKkQU6zjcfGsmtZ61dzzwOHnY/&#43;GMs08769yTTz6ZXPohMKyb504/5/xI2iAveFuex74N0hoAbIK0BgCAdU88/kvy/aBWq5B/uPqLXxQ4nnU6TnjNawWe3fe6k7uHfc84yofaFmkt5yrxXPWqf7nx6ecVsu9uNF9&#43;zwcuZRzj1NgoTzMc5YwVKvFi9aDVPEpakx2VE6UVsjb4bfc97mI4nqZ8Hu9b/s9fB/&#43;YD6f017/uz3mOocfH/D7Pv3zvjvUFzxQjlNTkXIWsv7XV99e&#43;a61NSTUjaS2cNeWsIWetcNa86l9ujCrlaL76bKUdXCq8/6Mfd4zscnGswNC800kWGwslizOL&#43;XCqFC9Wj3JC/qy2&#43;vTzikcQ3Tx36qlv/tq3f&#43;gRRGpkhKOcLo790T2PbKxXV06UVgayj/RwpTXJ4KhSljL6NTfc/IeFJXJWdnCp8M73vM/v9U1NTJKXxMxiMZw6clpv8fPYt0FaA4BNkNYAALBufTuuTqvZbpDD2nOzcZ6mGIoefe0JLEOxTser2dS6t23S2ppJFWOFmpTRyda7kbT2WHiBo5zOXbvcPMc4xu96/HfxXPVguXWUFcIPlluz2mq8uCypZihZvOwLVwsMzdOU3&#43;f552u/Gc1Xw1nz81&#43;7TmBYjnIGPN6LPnApWbE5oljhlC6pppyrDCA57ErrcHb9fYRwVg9ndbIhVjhrHqw0yKbiklr&#43;j5kYOWeeY2mBoW&#43;99zE5a4Uy2sxiPqIYcs46yuth1liJF5dPO&#43;vcq/7lxv&#43;eT4aSmlt00aOjSOvNxz&#43;qrO&#43;DRdYSI5dAh5LFh5&#43;WJgMTAY93MjDhFV23PvDEUa613urnsW&#43;DtAYAmyCtAQBg3UYzd9rd1sZ0BIbmKNoxsktgaJaheht/5hU&#43;1HZI65haIRvzkk8t5yqhZFFSy&#43;TacoGhPQJ/x8NPxksr88baUdJ3wWwsmA1JLceLy8&#43;8qLz1bX9POsrv9f38id9HlbKcq3z/rgfJKeI&#43;j/fUN50STJeiihnKaFLGDGU0ctB7q&#43;&#43;vXWktb1xSTnY2JlUmZ62DVnNOr8eLy6RCBYZmnRQ5i/vf73s0kjbCqdLm6&#43;EoR/WftdpyrkKqj5yT7&#43;Y5snQc0lrOWuS&#43;k1d4JG2QfcgiinXgUC6cKgU8Xp/HOzUx6Xd77njg8QPJgl3PY98GaQ0ANkFaAwDApk6v11tr1nu9Tr2x2um0Gq0mT1OskyKrH536hn3NZnPHpDX5KT&#43;iWGSfXjlnzSzmI2lNZBlmbIysGX7ff8&#43;QHjtK&#43;s4bayStY4Xa/pdUUeDIVdZ&#43;n&#43;dX0eej&#43;aqcq9z/uyDPMTxN&#43;bxuUeDIgsmhjEE2/o0Vajv4hPCIYkgZXc5a4VRJzhqbVZbI156ttMNZc06vP/VCxisK1MgIzzEegf/5k3&#43;Qc5WoYpIXRlQpH&#43;XxSZRW4sWqlFlfjzq4VBJ4lqOcSOv1xz&#43;txdRKKKNJqilldEk1g2k9qpgzi/mZxeKE1ycw9J7p3V6P697/OnCUFby3&#43;nns2yCtAcAmSGsAANjUIWd61xurnU6n2Wze/dM7XRzLUTRDOx1j4&#43;86/5xOZ/3P7IBlzBL5GvmkUsYMJTWyz9at9z7KO50ujnXu2hXw&#43;Q8kC89V2tF89dly60gfZ06vz&#43;p1ktC/ib1ADpkKDD3hD5CCkrPGMy8qPE25ecHv9ngE/uGno1GlLGXWr1yN5gdxDaq9&#43;1qTNxFI5YazZihjLGj1eHF5Tq9H8&#43;Uf3fNL8n4EPT7mEcRQRpOzVjilk1MJ4sXlo6zQvmA147kq2Q4qktZCGc3F8WTTOKS1nLWkjB5MlyS1TI45hzJaRLGC6dL&#43;l9Rb732Up5ndU9NulzA1Mbl&#43;&#43;oZNz2PfBmkNADZBWgMAwKb1Zm4219rdTqPReM&#43;F53MMy1FOlqGco2PXXPmlnZTWZNOsmVQxmNZDyWI0Xw2mS5d87JPrS0yPjl78wY&#43;EsyY5ZL1gHHHTpnljjVxrHVXKP7rnl&#43;SEWJ6mpienJLWcKK1EFfPp5xWBoT2C6HG53Tz3w3sfIcmxXn07Oq3lrEWCjayjTs7cjqS1WHGZnGkfzVff/5FP8jTFOMZ5p/M9H/hQOKVLapmcLS9nrXjuaCcSk7ORY2ollCxGFOMPz6f9Xh/vpJHW6w/&#43;&#43;obS&#43;sYbSeSSaSu4VLrkHy9zibzP4w34/Jd87JPhrH6UtN7q57Fvg7QGAJsgrQEAYNN6NrfbzWa7lc2mJ31elqFoJ8VzzPiuExbmZ9td8mc6OyCt47lqNF&#43;NpDXy2YNLhaeey05PT3OUk&#43;cYenT0&#43;h/8RMqsp/VR9kMmaTen18Op0u33P8E4xhmHU2Do3VPTMbWyYDWljLl/Kc/TlEcQvW6PyDI/uucROWuQfYzIUesB3F&#43;70lrKmFHFJDsbSxmdXKkrqWaitDKn12e11aeey05NTQkMTY2NcpTzm7fcTmKYXAYfzpqJ/NFOmH&#43;&#43;1p3VVhP5WnCpFM9VZ1JFr&#43;giV7YjreWsFVXMYLpEtl6P5quhjBZVyhHF&#43;G3spT179ngE3u/1TXh9377z3lCyGEkfcd/prX4e&#43;zZIawCwCdIaAADWkW8GrU6THLj&#43;8uc/L3A8T1O0kxIY&#43;t3nn9/tddrdVm&#43;nrBAeK1TIdc7BpUI4q0cU49JPXOYVBZ5mWKdj79694SxZu7t29AQiaT2rrUbS2u33P8GMj7BOB09TJ&#43;7eE81X581mRLFmFosc5fR6XH63R2Do2&#43;57XFLN4FIhlCyGMlo0X03s3LSWs9b6/sZqmaxQLWX0qGImSrU5Yy1eXP74Zz9PdqWmR0f37t0bUazgUoFczSulNDlXiSjGUZLsheXenF6f0&#43;uRtBbNl595UQn4/G5eQFqTIZceRJVyKGPIOWsjra0P/OMnXBzrdXs8Av9Xf/23s9oquYjaruexb4O0BgCbIK0BAI473V6v0&#43;t2N1q6Rxp44z&#43;RdcL3/&#43;G/aSfl4niOcrp5wSu6ErF4t9drtVqbf&#43;ton2I7pPWcXv9jrUeOuUkZ82eP/FZgaJ9L9Hm8fq/vlp8/GCtUJNWM5qvRfHXBaJIdhuLF5US&#43;FlMrctZIlFbixeWDZosc3J5ZzN/&#43;0BOOE05gHOM8zezZsydRWnmh1o3mywcO5TjKOeEPBHx&#43;nqZ&#43;dP8v5awlZcxnXlTIpkSJ0pZfg2pbWucqUkZPlFYk1YwVapJqkpPnQ0ktolh3PvrbgM&#43;/Z3r31MTkhD/wg3v&#43;gzz7EcWaM9ZiqvVcuRNTrVihFlOtSFqT1HI0X5VzVlQhu0kZR0pZpDWZZ8utBaspqeV5sxFcKiTytXBKv/PR34oC53V73Lzgc4nfvev&#43;Z632vLF20Gquv8hLKxHFiuarsUItnivP6fVjfR5jhZqcs8j/zjG1Es1Xj97tfXy9Ia0BwBZIawCA4w7p6k6ns97Y3c3M/tNF1G/Y9/qA3&#43;sYH3UJIs8xV37xC91ep9NpNRr1drfzinW9LdJ6npzpXW5F89WZPyp/fvLrJgMTHOV0u4SLP/hhspF1KGPIWStWqMzp9XDWDGfNebMRz1Xn9DpJNTlXmdXrs9pqNF&#43;WMuYjwTg1MkJWcjppz4lkT&#43;xwqhRMl0SWIdHOc9SjBxJSRo&#43;kjf0vqVJGj&#43;YHsXKyjSuEJ4qr4awezVcl1SQX&#43;kqqOZMq/n4u&#43;Rdvfsv05JTP6w74/O//6MejSjlRqi2YjVihNldciaSNeK66ufF4OGvOpIqRtBHNV8mS7LFCDWl99Hmu0p7T6wlt9cCh3LzZCC6VnnlBfdOb3uQSebIM/rvedwmp5XmzMautSrlKorQSUyvzxhr5PzGqlMm7GMf0PEYUQ1JNOWtF89WYakWU9b3ct/r&#43;Iq0BwC5IawCA41G72&#43;n8zzput9vk&#43;0Gv17ninz8/HfBTDqfH5eYo&#43;s1vemO312m1GvX6SrfXazQaOyOtyYHoRHF1Tq&#43;ffcFFE16fY2SXVxRed9LJv5tdCiW14FJJUs1IWkuUVuaNtTm9Luc2NvVNleb0Oqm7eWONLH0cUYzgUokdHxcYmqcpv9sTWiyR//TI/jjrdHhFl9/rczFMOKVHlXIoo4WSxXCqJOcqA1g52a60jheXZ1LFRHE1uFSIFWrhrB5O6WQnpwvf/0G/2xPw&#43;f1u16mnnvr7g8mZl3KRtCGp5VBSi&#43;arUsaMFZc3roo35FwlnqvKuQrZqJlsJYW0foXbo9WfrbTDS9qstvrMi8qC1bzgXe918xzncDhHT3jd6173u7lDcs6Sc5WEthor1GKFiqSWZwvL5JUZyhjkOPaxPo9k9bJIWiOL8Mu5yvrTt8X3F2kNAHZBWgMAHHe6h02z3SI/O7bbbXK8&#43;rFfPjzh9fA04xUF2klNeD3BAzP1er3RaDSbzVan3dspJ4STtcekjH7NDd8J&#43;Pz0&#43;JjHLbJOx11P/vfMYn5mMT&#43;T0sKpUlQx5VwlplZmFvOhZDGaL68fystXyfmu5EJfcur4gUO5v3vr2wWGZhlqwh/4yUNPRouVULJ4232/JFnr87r/7q1vD6d0KWOSXyNpjZx2u9X3174Twq14cZmkcnCpEMpooaQWyhhfvO56ciRfZJkJf&#43;DuXz1Fapm8GZEorUTS2kyqeOBQbuMaYCOqmKFkMZLWIgo5m6CWyOOo9SvMvLEmZcw5Y21mMR/NV7983bd8LpF1OujxMXp87GdP/FcoqZEV8iNpY1ZbDSWLkmqGsya5gnq2sBzO6jOL&#43;WN9HsludlGlTNYnj6Q1curB1r/ekNYAYA&#43;kNQDAcWfzWutmu7V5rTX5ndnZ&#43;O6JyYDf63OJbtHlFYX7f3FXp9dttNaa7Vajtdbr9ZrNNfL94GifYjuk9ZxeD2W0R/ZHPQLvc7kFjhdZ5qs3/3D/S&#43;rTf8wGD&#43;WDS4V4cVnK6KQxQkktqphPPZeNpI1nFnO3P/QEOdN73lib01fI1dcHDhU&#43;ctnlPM0IDOsRxGtvuiWmViS1/OXrvsXTlJtlvW7P5Vd8JZQskuSQyTnnOXIl6tbeX9v2tc5X5VxFzhokNaWMHk7pv/jV772iazIwwVPju3fvvvbbP4gVKuQYfjilHziUC6b14FIhktYOJEskpENJ7fb7H5PUsqSWQ4vrS17LWVxr/QoTUyuJ0oqcsyS1fM9vnhIYWmBY3ulkx8evven74ay&#43;fyk/p9eDS4Vnrbacq5DrFORcZf9LanCpFEpqt977KDkP/Jiex0haC6ZLoYwWTOuRtCFnjWi&#43;jH2tAWAHQ1oDABx3uhs/JpKrpnsbpZ1T1Lf85Skel9vvdgX8Xo/A3/DN69rdFonw3sZR7l6v0&#43;62dsDmW8GlwsxLhb1v2DflD5D3ET7xuS8dOJQLZbSZxXwoqUlqeWaxGCvUQsmipJb/8Hz6im9cL7JcwOOdDExc/MEPSxl9ZrF40GomSivxYlXK6MGl0r/deY/IMjxN&#43;d2uU0455ZkX1IhinHjiiQLPcpTT4xZv&#43;emDoWSRNC05iBdVyrOFHXutdby4TI5zShk9uFQIp/Q/PJvZu3cvz3LO0RMCvolLP3n5nF6fSRXjxWU5V1kwmrFCJVaozSzmg0uFf/7K1zmHg6TpO9/3gVBSm0lpM4t5ssjWvN5AWr/C5CqJUk3OVZ55Qd23bx81tovckk987kvhrEk0/ZQ0AAAgAElEQVTO7n76j1lyWDteXCbva1x70y2TgQmfS/SKwnkXvvuZF5VjfR5DGYMsTxBJG&#43;GsTra2Jntib/X9RVoDgC2Q1gAAx50/rQdOupf8Rqd78YUXCjwrsozX45rw&#43;i65&#43;N1rzcZas0723Op2251eu9frkF93wFHriGKdcc75ZOmy6cCEmxfe/o4z/v60M888552nn3P&#43;Geecf9b5F93w7z&#43;VVHNWW5VU88Ch3Olnn0fqyOcS/&#43;X7Pz5wKHfgUO6g1Zwz1uSsFc1X97&#43;kxgq1ffv28TTjEUS/13fKKae89W1/L7KMi2M5ynnqqadKajmYLpEtkSS1HFXKUaU8gGtQ7UrrWKFGjjDPpIrBpVJUKZ9&#43;9nkuhuEop8/rpsdHzrvoPWecc/57L/nw6Wefd9HFl5x7wbu/8W8/CmfN4FIpuFT6&#43;9POdIm8m&#43;dEliG/L2X0A4cKG5del5HWR594cZlcL33GOee7ONY5OkKPjlJjo6efdf7p55x/4Xs/cNrZ51108aVnnffOm2&#43;/e1ZbnVnMHziUO&#43;v8i9yiS2QZgaG/evMPDhzKHevzeMa577zue7fJWSuUMSJpLZTRJHUQr3OkNQDYBWkNAHA86vZ6rU673W6T49W9TveGb3xT4HiR5bxuj4tjd09NX33FF674/Gc/9&#43;lPXn3FF7569Zev&#43;uLnv3bVVfPzs91eZ2PBsyN//O2Q1nc88LjPJboEkVxbzjodrNMxvus1AkO7eU5kOY8gfuVbN8WLy2Rv3pnFvH8i4OJYgaFPft3rn35eIRtTL5iNg1YznDWj&#43;fLMYlFSy9d99zaBYckFqG6W9blEdtzp4njGMf5vP7s/oqyvhSZl9JhakVQzqgziRFn70rqycUZ3MZI2brvvcRfHkmYjR1AFhia7K09PT7t5ziu6rrrhplBGI2cmBwIBF8e6RH5qauoP86mIYoSSRSljHkgWyPZOSOtXevxrsULljgee9IoC4xhnnQ7HCSc4R0c4yunieHKBNEfRHpf72ptumTfWZhbzB5KF6ek9XrfH7RKmp6f/sLC0/yX1WJ9HkWWuvv5mspLZ&#43;jnkajmmbvnrDWkNAHZBWgMAHHfIV/xmu7W2tkrO907EoxMBH&#43;2kXnYY2ukYH2WdDo5yPnDPz8nS4s3m2tE&#43;xXZI61vvfZSnKdZJ8TRFTuEm4cHTFLmzAkNf&#43;c0bSFeHksX7fxccf&#43;1r6fExzkH946c/T7bqjamVqGKShcRDGYP8YSljfuiTn2bHx8nmRm5eEFlGYNgrv3kDub7alrHxWmuyilUoY4SS2m33Pe5mWYGhSf3&#43;7&#43;E55pqbvhPOmnKu8ovfPEONjFAjIwJDf/hTnwlnTTlLzi42yFHQqFImC4mTZeHCqVIoqbk4lqcpgaFdHHvbfY&#43;HklokbYQy2voFw1t8f4ctrcllz3c88OTmw8JRTnp8jB53kFc7ebdIoJgvXnf9TKr4&#43;&#43;dSD/w&#43;RI2MuHku4PN/9PJ/iirmgUOFY30eRZb58vU3ShmdrIQfSWtRpSzntv6ljrQGAJsgrQEAjjub11c3GvV6Y63Vat1z1884iqbHHS87J/zZ/zPymteO7zqBdToeuOfnGz9gbvsTwu94&#43;Nde0eUVBZEXfB6vxy2KvODiWBfHegReZBmvKFxzw83ra4zlKl&#43;9&#43;Qfs&#43;LhjZBdPU/f&#43;14F4sSoplZhaCWW0iGKRXYikjB7O6qT0br7j56edda7A0B6BP/fCd3//rgfDWT2U1LY8LY4w9l5rLWV0KWMG0/rtD/3KzXMujvWKwsuOKHDX3nRLRLHixeWv3PQ9jnJSY6NunvvFb54ia02TBbTIuxhy1iK7iwfTpXBWDy4VIorl5hnyPLp54faHngimyTOiy7lKorj1m7oNWVqTBcx&#43;9sh/&#43;t0eryi4ON7F8WQRexfHet0er9vj9bg8gnj1Dd&#43;Rc5WnD6lfvfF75Ab7fZ4Hfj8jZy2ypN8xPY9unrvyW/8qZ41QxginSuStECxjBgA7GNIaAOA4RY5ak0PQ9939c9ZJUWPjLzukbaixUXp8jCwY3uv11tZWj/LBt0Vak1Wy9r&#43;UJ&#43;s27X9J3dxzi2z4NJPSyOZYUkoLJbVL/vEycozuzHMvSJRWJNWMFWpkh2opo0tqmSzRtL7VkGIF06WZVDGcKgWXCqGMsXFMtbjlaXGEsSutyf7GZOW2cKpEPilZBvxlJ1FakTLmvLH29Ivpj172ubHXvMbNC6effZ6UWX9gI4oVSRsRxVr/17QmZ42ZxTzZDZts8hRKFsMpPZzVyWeU1DJZbzySNrb6/g5bWoeSxZnFfChjkOsXZhbzkbQ2s1gMLhUOHMqFksXgUoFcX71/KR9cKgSXSpd&#43;4jKyUdw5579r3lg7kCwcOJQ71ueRnClA3m8KZbRQRpOzxgAef6Q1ANgFaQ0AcNz506bWzbVmu9Vqte75xc9dHO8VXS87JKo5yukVhYcevH/HHLWWs4aUMeWsEVGMzVoILhWeeVEJLhUOJAvrZ3erZqxQmy3VJycnRZZhnY5b732ULAlOft1svFBGI5eSShldzhrPvKjMLObJwdKIYpFtmQexr&#43;8Rxq60ntVWE6UVSS2Hs2YoqQWXCsGlwnoDv9xE89VQRkuUVkJJ7eSTTxYY2u0SfvzgE&#43;TIM7nBwTS55YakmonSynrKZs1Qskh2aSZP5ebnIivGJUorA3hdDVtaR/PVaL4azZcltSxnDfLO0dN/zO5/ST1wKBdO6XLWktSypJqSakpqeWYxPz29x8XxPq/7tgefPGg1yYZnx/o8BtOlYFoPp/RgWg9ltIhiRPPVeHHLV8JHWgOAXZDWAADHnU6n0&#43;m0yJf1Lvke0G13Oq3uYdX9v2Z9kfBer0OOWnc6raN8im2R1uSIdCiphZKanDXCKV3KmDMpLZw1QxkjlCzOpIqkN8JZ/e5fPeXmBYFnz7vovVLGjBVqUaWcyNeiiinnKpJqksDeOExnhjIGWQmcHBWMpDVynWokfdydEE4ukA4li3J281p0nSxt9bITVcqzheq83vjFb57yudys03H2&#43;ReSvxXOmuQw9fohUMUgV7mTIJRzVji7/nyRi3s3UtzYvAEDuNZ92NI6kjaC6ZKUMcnyb&#43;S8iVCGLC2mRRSLnLAdXCqEUyU5a93zn89MeH1unrvg3e&#43;T1HK8uBxJG8G0fqzPI1k9jryvJGV08sEHMUhrALAJ0hoA4LhDUpl83e/02s12q9ttdze&#43;GfzvaXU2/2unu1nj2/&#43;odUSxJLUcUyuxQiWSNqJKOZQshrNmMF0iq2FFlTLZPDmar37uK99469v&#43;/sxzL7jj4V9HFCuqmLFCbd5Ym9Pr5PzkcHYj/BRLzhqRtPbMiwoJxVihJqkmWV15EJsPHWHsSmtyLXSsUNs8LyCc0skZ3S87cq4i5yqzheXLr7zm7e8449wL3/OTR34TUyvrmyQrRjhLTr/XSVontFVJNRPFVbLZ9cxiPpQhZ/Ib4RTZgbkUTpVihYqcqyRKK1t9f4ctrcnnIr9G0lpUMZ9ZzJFlwMMpPZTUyFICsUItplYiinXZF65829vfcea5F9z56G/juSq5neSQ9TE9j&#43;EseeuquH42eM6K5suJPK61BoAdC2kNAHA86m58Wf&#43;fzXy0o9ab/3zYt40jf/ztkNaz2uqsthwr1OLF5VihEi8uz&#43;n1WKFGfocciyZrmEmqGc9VwyldUs1wSid1kdBW47nqnL4iZXRJNSNpgxwvJQdXJdWc0&#43;vx4nJUMeWcFVMridJKvLgcy2/9CbFHGBuPWsfUSlQpk0OgklqWc1ZEsciJ3P975Kw1b6zJucpBszWTKsaLVXLJOrmanaS1nKuQx1nOGuSUe3LScqK0ImcNOWetH6/OWeSTks9O&#43;nyr7&#43;&#43;wpfVsYZk8AvFcNZqvxgqVWKGSKK3MFVfIa5Kkdby4HC8uk8ef/P8YXCrM641QsjivN6L56rE/jwY5w1zOVcg7SuTdkK2&#43;v0hrALAL0hoA4LhzeDB3et12u71xfvjLI0etyQ7YOyytF6zmgtmYNxsJbfWg1Zw3Gwet5py&#43;ktBWN4/UkSBJlFYiaSOar4ZTJbLb06y2nCitPFdpbzSDJecqctYiq5pFFTOhrc4Za3N6nXycWb1OYmbL0&#43;IIY1day1lLUsuzher69t05K1ZcieeqC1bzZYe8xzGrrc6bjUS&#43;Jucq4axJLpYml&#43;zKWeOw7ZEN8vsJbTWS1hKlFfJrNF&#43;O56qx4kpMtcjZ&#43;/FidTAXug9bWidKK/HSSjRfXTAb8eLygtlIlFYWjOa8VV8wG7PaKnm0D1rNOW0tUVqJFWrBpUIiXyN7tscKtYS2Sq6RPqbnkfwZ8saHnKtE82WyqMGWPwVIawCwCdIaAAD6b1uk9fE2Nqb1cTXDltbH3SCtAcAmSGsAAOg/pPUQDtJ6MIO0tnmQ1gBgE6Q1AAD0H9J6CAdpPZhBWts8SGsAsAnSGgAA&#43;g9pPYSDtB7MIK1tHqQ1ANgEaQ0AAP2HtB7CQVoPZpDWNg/SGgBsgrQGAID&#43;Q1oP4SCtBzNIa5sHaQ0ANkFaAwBA/yGth3CQ1oMZpLXNg7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfMgrQHAJkhrAADoP6T1EA7SejCDtLZ5kNYAYBOkNQAA9B/SeggHaT2YQVrbPEhrALAJ0hoAAPoPaT2Eg7QezCCtbR6kNQDYBGkNAAD9h7QewkFaD2aQ1jYP0hoAbIK0BgCA/kNaD&#43;EgrQczSGubB2kNADZBWgMAQP8hrYdwkNaDGaS1zYO0BgCbIK0BAKD/kNZDOEjrwQzS2uZBWgOATZDWAADQf0jrIRyk9WAGaW3zIK0BwCZIawAA6D&#43;k9RAO0nowg7S2eZDWAGATpDUAAPQf0noIB2k9mEFa2zxIawCwCdIaAAD6D2k9hIO0HswgrW0epDUA2ARpDQAA/Ye0HsJBWg9mkNY2D9IaAGyCtAYAgP5DWg/hIK0HM0hrmwdpDQA2QVoDAED/Ia2HcJDWgxmktc2DtAYAmyCtAQCg/5DWQzhI68EM0trmQVoDgE2Q1gAA0H9I6yEcpPVgBmlt8yCtAcAmSGsAAOg/pPUQDtJ6MIO0tnmQ1gBgE6Q1AAD0H9J6CAdpPZhBWts8SGsAsAnSGgAA&#43;g9pPYSDtB7MIK1tHqQ1ANgEaQ0AAP2HtB7CQVoPZpDWNg/SGgBsgrQGAID&#43;Q1oP4SCtBzNIa5sHaQ0ANkFaAwBA/yGth3CQ1oMZpLXNg7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfO8XFp/9vJPfe3ar/7rDTd&#43;/5bv/fQnd26k9QzSGgD6CGkNAAD9h7QewkFaD2aQ1jbPEdJ686j1/0jr2TjSGgD6BWkNAAD9h7QewkFaD2aQ1jbPUdP6B9/7/p0/ueP&#43;&#43;&#43;5ePyEcaQ0A/YO0BgCA/kNaD&#43;EgrQczSGub5whpfe01V/7PtP51JHxgfi6GtAaAfkFaAwBA/yGth3CQ1oMZpLXNg7QGAJsgrQEAoP&#43;Q1kM4SOvBDNLa5kFaA4BNkNYAANB/SOshHKT1YAZpbfO82rR&#43;EmkNAP2FtAYAgP5DWg/hIK0HM0hrm&#43;eIy5hdtZnWD9z/C5LWWMYMAPoIaQ0AAP33smnd6rS73W69Xtd1naUZgWHHd40wDmfA50&#43;UagtmY1avRxRr3mw8V&#43;2&#43;sNxbMBuYPs7&#43;pbybFyb8Ab/X94a9&#43;yYmJiS1HM9Vbb9hO2wWG70Xlnvx4vK8sSZnrUS&#43;NhHw&#43;Vxun0v0CCLPMYl8JV5cfr7WO1huLTbwOu/zJEorc8baC7Xu1MTklD8gMLTPJX728k9fc83VN9544/e&#43;972f/OSO&#43;&#43;&#43;/97e/&#43;XU49Mz87NxzLzy/mFwqaqVqtbq2ttZsNtvdTnfjy1fvsKhGXQPA0SGtAQCg/46U1r1er1qtWpZFOZw8zThHx1gn5fG44sX1wIukjTm9Pqv9f&#43;3d6VeTB6LH8f4FdxwRkjxPFhbtcu858/rO3nbmLv/MPXemgtN7rVXAtirYqoC1i4BaaxVx6&#43;oCCJR9EdllJ5AEkwfInmdLcl88msF1pgblDnw/53s8Idpzcnrqc55fn&#43;RJeNCv9/mitIp1upayreK2bdtsFvMvfvGLHJu91x3s9vjX/IWtswaW1cFltXVWGlhSOuaXb0uxrbl5uXZbbo4jNzvHZhEGfLGO&#43;cXhYKLLvTzo19b8Ba&#43;zjP9hNOjX8hzZr7y8VcgyvbLt5b8U7Ni9e1dJSUl5&#43;ZHKyspzZ09fu/p9e1tz/&#43;1bQyPDk9NTC967wWAwEouqqqrFdaY1gGfAtAYArL7HTutEMqnruqIoLpcrLyfXvCUza3OGJTMrNzun0&#43;Xv9vg75hd7XMtd7sCQX7u9KPfeDdMq1njHlW13OEThX17751dffuXVV19tc/o6Xf41f2HrrLFwss8X7V&#43;UO2Z97XNLrbOSw2512K0OURAsJodobZ1a6PNFuz3&#43;4WBiJJRc8xe8zupZCN2WYrel2GuvvWa32rIdNtFkfuvP/7V7966Skv0VFWXVVZ&#43;dO3v6&#43;tVrHe2t/X23U28ID4QeeEM40xrAT8W0BgCsvidN62QyGYlEfD6fVRCFLFPmzzfbLILdJrY5fX2&#43;aM9CoH3G2&#43;UOdLr8t7yRLneAVrGO&#43;eVshy3HZrcLlryc3G05uZ1O6ZYntOYvbJ3VtxDuvRtun/H2LIS63IGuueVtObk2i9lhs9sFS47N2jG/3ONa7vNFO11LvXfDa/6C11ntc0vdnmCXO5CXk5trd1jNlpdzc95&#43;&#43;&#43;09e94tLS2tKCuvrjpec&#43;6r69d&#43;6OjouH371vDw8NTUlCRJgVAwKsdkVdETTGsAz4JpDQBYfU&#43;a1tFoNJlMzs/P5&#43;XkZvxsk9VsMWVssWZl3Rx1No&#43;7Gu/MtUx6Gu/MdTqX2ueWmsddtIrVDU07REHIynxl28sOUXhl28stk57WKe&#43;av7B11i1vpM3p65hfbhiZ/XFioX54RsjKNG/JMGVsztq0yWo21Q1Mdc0tt04t3JZitzyhNX/B6yxjWnc6pddeedViznKIQubPN7315/8uLNpVWnrgaEVZVeWnNWfPXb/2Q0dH2&#43;DgoHHVWpKk1BvCdV1PMq0B/HRMawDA6nvStJZlOZlMzs3NbcvbuvmffmY1W8xbMu1Wm5CV6bBbbaLVIQpWQbRZzLTqZVttudk5DovFIQqiKSvPkW3c4WnNX9h6TLALFodozbU7bCZTbnaO8e/feL&#43;AaMrKsVkdotUuiKKw5i91vSWazHabaM3KysvJtQtittW2Ndux593de/cWffRh6SfHjp46WV1bc77uxrXOrtahoYGxsbGZmRljWscUWdW1J90bnGkN4OmY1gCA1fekaa1pmqqqkiQ5bHbzlkzzlkwhyyRkmUwZW8xbMkwZm2wWs7AlS8jKtAsWS&#43;YWWsXETJPNYraaLXm52ZaMzLzc7GyraLOY1/yFrbMcotUqWuyCaMrYZDebszZtErYY/3lv3pLxc4fFkrVpk12wWM2m3OycbKttzV/wOivbKubaHTaLeVveVmNsWzIy3tn5P&#43;9/UHT4o0OffXr0y9MnLtZeqK&#43;73tXVMTg4ODZ6JzWto3JM0fisNYBnxLQGAKy&#43;p9zGTJZlSZJmpqaNXW3JzLKaTeYtGXZBFLIy7YJoNZtsFnOOzW58IS2tVqIpy/iaX&#43;PC6dbcPLsgOkRhzV/YOivb7si2itlWm5CVmW0VTRmb7YJoydwimrJMGZuzrTZTxmaHze4Qhbzc7Fy7bc1f8DrLLojG2wRe3Zp3/zp21p53dx84cKC87HDV8crTX5y8cvnizYbr3d3dQ0ND43fG5ubmJEkKh8NMawDpYFoDAJ4X40w0Ho/f&#43;/ItTZNlORAISJI0NTEpmsxWs8VmERyiYLw51n7/reBWs8VqNllFy70E0SqIomAWBbNVEO33s1kEuyDaBYtdEEWLYCOiDZNoEayCaBUtxpEhdXwQTWaLOctmFbKtomgRRItgF8QP3nu/tOSDj48eqaqqOvPVqSuXL95sqOvqbhsY6h8fH5&#43;fn19cXAxFwsYdwnVdZ0MDeAZMawDAKnvoIo9x8UfTNFlVguGQ3&#43;/3Sr6ZmZnhwaHO9o4fm5rrrt&#43;4WHvh5Injn37ycdmRD0sPlOwt3v3urp3vvPPOzp0733777R078gt2/LmgYHtBwfaCgoId&#43;QV/2ZFfULB9x4787du35&#43;fnv5W/fXtB/lv524log5Sf/1Z&#43;wZ/yC/5kPDCOD6ljxY4d&#43;Tt37nznnf/dvXv3e3uL9u17/9BHJZ99evTkyeqamrPffv1Nc3Njb2/38OjI5OSk2&#43;1eWlpKTWvje60B4KdiWgMAni/jnkCapum6HolEonLsrs/rdrtHRkb6&#43;/s7OjraWlqvX/uu9vy5M19&#43;UV1ZdezjssOHSktL9u/f9/6&#43;D957/73ivcWFxUV7iov2FBcWFRXuLircXVS4q6hwV&#43;Ged/cWFxYXFhUXFhUX7SkCsHEU7ioq3F1c9K7xwKi4aE9R4e7i4sK9xYX7Pnhv3773Pyw9ePjQh&#43;UVhz45dvTkqcqac19&#43;feXS9Wvftbc1DwwMTI5POGdmPR6P3&#43;83vnlL0ZjWAJ4R0xoA8BylPm6t67qu6&#43;FwOBqNSpK0sLAwPj4&#43;MjLS09PT0d7aUFf/zdeXa8&#43;fO/3FyarKzz85drT8SFnZkUNHDh889NHBjw5&#43;eLCktPRASWnJ/tIDJQdLSlOVHig5WHqgtGR/acn&#43;UgAbxsGS0oOlBw6WlN7761&#43;y/69HhoMHD5YeKDt85NChDyvKyj/79Fjl8U9Onaw8d/b0N19fvHbtWnNTfXdP&#43;8id0dnpGZfL5fV6A4GAMa2Nq9bxJOMawE/GtAYArL7UHYCMx/F4XNM043EkEgmFQi6Xa3p6erB/oKenp6u7rbGx4Ycfvrty5dL52q/OnDldfeLzz48f&#43;/Szo8c&#43;Kf/4WNnRo&#43;UVFRXl5eXl5UcrKioqyo/cq6y8/EhZ&#43;X0VZUS0YaqoqKgoq6ioKC8/YlRhPHX4SFnZ4Y&#43;Plh/7uOzz48eqqo6frD5x&#43;ssTZ8&#43;dvnLl0rUfrjY23GxvaxkcuD01Oe6ed3k8HkmSguFQVL73QWvjNmYA8FMxrQEAz1dqWqu6JqtKLBbzBwO&#43;RWlubm5ycnJkaHiwf6Czo6XpZuON61e/&#43;&#43;bbK5cv1pz76vQX1V&#43;ePvHFqapTJ06eOll58kRVdeW9qqqqqqqOG1VXV/7118oqItooVR2vrjp&#43;orqyesXf/RNV1dVVx0&#43;cqDpR/fkXp6rOfHnyy9Mnzp09c&#43;nCxSuXL169erWhoaGttamzq3VkZMQ5O&#43;1ecPl8vsXlpUAoKKuKoijG&#43;2vW&#43;qgJ4B8S0xoAsPoevWodj8f1RDyeTIQi4agc8y1KkiTNz89PTU2Nj48PDNzu6upobWtqbKq7cePGd99fMVy6dOnChQu1tbW1tbXna7&#43;qqTlbU3P2fM2Z8zVnztecvd&#43;ZFQ&#43;IaENUc/6Bztd&#43;df78udramgu1Z2tqzl6svXDxwvnLly9&#43;&#43;&#43;23P3z/7dWr31&#43;9&#43;n1jU11bW0tnZ/vAwO2JiQmPe/6uzytJkt/vD0XCMUVmVwNIB9MaAPAcJVZKJuPJhK7riqb6g4FQJOzxeFwu18LCwvT05PDwYP9Ab29vd2dXa2tbU3NzY3PTzabGusaGmzcbrjfU1dfXXa2vu15fd7Wh/kZDXX1DXX1D/Y36uqv3u77iMRGt&#43;67X111vqL/24I83GupvNDTUNdTfuNlQ19hU1/JjU3tbS3t7e1t7c3d3Z39//9DI4MTEhGtu3iv5lvyLgUAgHA7HFFlWldTnVvikNYBnwLQGADxHK5e1pmmapqmqGovFwuGw8QXXXq/X5XJNTU2NjY0NDg729/f39d7q7uxqb21ra2tpbf2xpaW5paW5taW5uelmc9PNH5sbH8p4/rG/RUTrtwajlh9vGqV&#43;bG1pbm1pbmttamtv7mhv7exo6&#43;lu7&#43;vrGxwcvHPnztTUlNPp9Hg8vkVpOeAPBoOxWExRFE3TjK8zYFkDeDZMawDAc7RyWsfjcV3XNU1TFCUajQaDQb/fv7i46PV63W63c2Z2amLSuG34wMBAf3//rdt9fX19fb23&#43;npv9fT0dHd393b3rKynq5uINmjdnd1dHUY93Z093Z29PV29PV3d3Z09PT23bt3q6&#43;vt6&#43;vt6&#43;sbGBgYHOy/c&#43;fO5OSk0&#43;mcm5tzu93G&#43;8CDwWAkEmFaA1gVTGsAwHOUeISu64qiKIoSDoeDwWAgEFheXvZ6ve4Fz9zcnNPpdM7MTk5Ojo2NTYyNj42NjY6OjoyMDA8PDw8PD40MD4/eezw8PDxy3&#43;joqPHHAGwoj/27PzQyODw6NDZ6Z2z0ztjY6MTE2PTklNPpdLlcHo/nrs/rlXzLAX8oFHpoVxvTeq2PmgD&#43;UTGtAQDPi3GSmvrVuHCdWteyLEej0XA47A8GlgN&#43;SZLu&#43;ryeuwtut9vtds/NOufmZp3OGefs9MzM1PT0pNHUzGTqMRFt4J5ocnpicnrCOTPrnJmdm5udn3d6XG6Px&#43;P1eiVJWlpaMu5bFpVjMUU2dnXqAMU3bwF4ZkxrAMAqW3HbsuRDl4BWXrtWVfXewJZj4WgkGA75gwG/3&#43;/3&#43;5eXl5eWlqSlRd&#43;iZPy6uLjolXxeyefz&#43;bz3&#43;QDgQV6vd3HRJy35FhcXpaVFacknLfmWl5eXA35/MBAKhe5drFZkRVMVTTWuV6/RwRLAusK0BgCssgdvCv6A1EcZjXWtaZqu66quKZoalWOxWCxyXyAUDIeDoVAgFAneKxQwfgyH73XvmfulnieiDVA4HA4bUzm8QigSDkXCwXDIeBCJRSOxaCQSMa5Ry7JsfCBF0VQtrmtx/dEPrazJYRPAOsC0BgCssr95kvrQPcP1RFy7T1YVRVONC9qKpsYUOXU2LKtERIesqm4AAAOTSURBVPdSNDmVrMaMYkpUlqOyHI0pUUWJpZ5XVVlVVVVVNU1TNFVP/PWN38xpAKuFaQ0AWGV/5/Wf1LqOJxN6Iq4n4vFkQlsprhqpuqLqihZXdV1NPUlEGzv9yalaXL1/HFGMP2xMa&#43;N7CoxdbRygHnvrMsY2gGfAtAYAvFArh3fqlryp7&#43;VKeehHAPh76A967O&#43;u/GTKWh8RAawfTGsAwAvy6GcaHzq7fXRvA8BjPeV48nf&#43;g2t7PASw/jCtAQD/7zzlpBkAnuJJ23utj2oA1j&#43;mNQDgBXnSCe6Tznpf8Bk5gHXgbx5AntcBDsCGx7QGAKwxzn0BrJaVhxEOJgBeJKY1AOBFW3nW&#43;1OvOAHAUzx0qHns8wDwPDCtAQBr7KETX06CAayWnzTFASAdTGsAwAvylBNZTnMBrIonHUw4yAB43pjWAAAAAACkhWkNAAAAAEBamNYAAAAAAKSFaQ0AAAAAQFqY1gAAAAAApIVpDQAAAABAWpjWAAAAAACkhWkNAAAAAEBamNYAAAAAAKSFaQ0AAAAAQFqY1gAAAAAApIVpDQAAAABAWpjWAAAAAACkhWkNAAAAAEBamNYAAAAAAKSFaQ0AAAAAQFqY1gAAAAAApIVpDQAAAABAWpjWAAAAAACkhWkNAAAAAEBamNYAAAAAAKSFaQ0AAAAAQFqY1gAAAAAApIVpDQAAAABAWpjWAAAAAACkhWkNAAAAAEBamNYAAAAAAKSFaQ0AAAAAQFqY1gAAAAAApIVpDQAAAABAWpjWAAAAAACkhWkNAAAAAEBannFaa3H9X3/1S0VT48mEoqlEREREREREG7Z4MhGJRVVdU3VNVpWYIv/y17&#43;SVeVp01qL64lk8te//c3vfv/Gr3//&#43;pt//AMRERERERHRhu03v/vt62&#43;&#43;8Yd/&#43;&#43;O//&#43;d/vP7mG6&#43;/&#43;cabf/xD4nHXt41BrSfiL8UU2XhPuBbXtbgeBQAAAABgA1MURVXVUCiUTCZDoZDxjCzLjxvX8XtXrVVdSySTMUWOyjFFU1O/QURERERERLQBU1U5HtcUJfbIbz06rBPhaCSRTL6USOjGh7NTH9EmIiIiIiIiomQyrutqLBbRdTWR0B97wzOjlxLJZCQSicc1TVPicW3lzCYiIiIiIiLaaOmJuPEh6ngykXoynkw8Oq1lORqJhJLJ&#43;EvJZNy4p1k8rj10BZuIiIiIiIhow2Z8gDo1sJ901VqL6/8HdyGg&#43;LSXd1YAAAAASUVORK5CYIIA" alt=""  />
</p>
<p>数组切片是原始数组的视图，也就是说对切片的所有操作都是会影响原数组，视图数据并不是原始数据的拷贝，如果要得到切片的副本，需要显示地进行复制，如 a[2:3].copy()</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">7</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">9</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">    <span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 2, 3],<br>
[4, 5, 6],<br>
[7, 8, 9]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>5</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>5</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">:</span><span class="mi">3</span><span class="p">]</span> <span class="c1">#取倒数第二行，从第二列开始的两列</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">b</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span><span class="c1"># 取出的元素的维数也跟着改变了</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><a href="2," title="5 6">5 6</a></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">:,</span><span class="mi">1</span><span class="p">:</span><span class="mi">3</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span><span class="o">.</span><span class="n">shape</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>[[8 9]]</p>
<p>(1, 2)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">:</span><span class="mi">3</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span><span class="o">.</span><span class="n">shape</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>[8 9]</p>
<p>(2,)</p>
<p>结果还是有点不同，索引后的数组不小心的话会出现降维的情况<br>
在 MATLAB 中叫增量运算符，这里有点类似</p>
<ul>
<li>再看看花式索引（用整数数组进行索引）</li>
</ul>
<p>和切片不同，它是复制数据到新数组</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 还可以对数组元素批量操作</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">32</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">((</span><span class="mi">8</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>[[ 0 1 2 3][ 4 5 6 7]<br>
[ 8 9 10 11][12 13 14 15]<br>
[16 17 18 19][20 21 22 23]<br>
[24 25 26 27][28 29 30 31]]</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([0, 1, 2])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="mi">1</span><span class="p">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([1, 5, 9])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[[</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 这样选取的是行列交叉点的值</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([ 4, 21, 31, 13])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[[</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">]][:,[</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 这样选取的是行列矩形区域的值</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 4, 9, 7],<br>
[20, 22, 23],<br>
[28, 30, 31]])</p>
<ul>
<li>还可以使用 np.ix 函数生成索引器</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ix_</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">])]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 4, 9, 7],<br>
[20, 22, 23],<br>
[28, 30, 31]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 对第二列数据加三</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">3</span><span class="p">),</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 0, 16, 2, 6],<br>
[ 4, 17, 9, 7],<br>
[ 8, 27, 13, 11],<br>
[12, 13, 14, 15],<br>
[16, 17, 18, 19],<br>
[20, 21, 22, 23],<br>
[24, 25, 26, 27],<br>
[28, 29, 30, 31]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 还可以这样写</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">3</span><span class="p">),[</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">]]</span> <span class="o">+=</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 0, 19, 2, 6],<br>
[ 4, 20, 9, 7],<br>
[ 8, 30, 13, 11],<br>
[12, 13, 14, 15],<br>
[16, 17, 18, 19],<br>
[20, 21, 22, 23],<br>
[24, 25, 26, 27],<br>
[28, 29, 30, 31]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 那这样呢？应该看出规律来了</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">3</span><span class="p">),[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">]]</span> <span class="o">+=</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 0, 22, 2, 6],<br>
[ 4, 20, 12, 7],<br>
[ 8, 33, 13, 11],<br>
[12, 13, 14, 15],<br>
[16, 17, 18, 19],<br>
[20, 21, 22, 23],<br>
[24, 25, 26, 27],<br>
[28, 29, 30, 31]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="n">br</span><span class="o">&gt;&lt;/</span><span class="n">br</span><span class="o">&gt;</span><span class="c1"># 还能这样子</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="p">[[</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">]]</span> <span class="o">+=</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 0, 22, 2, 9],<br>
[ 4, 20, 12, 7],<br>
[ 8, 36, 16, 11],<br>
[12, 13, 14, 15],<br>
[16, 17, 18, 19],<br>
[20, 21, 22, 23],<br>
[24, 25, 26, 27],<br>
[28, 29, 30, 31]])</p>
<ul>
<li>再来看看布尔型索引</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 还可以这样筛选</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">a</span> <span class="o">&gt;</span> <span class="mi">10</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[False, True, False, False],<br>
[False, True, True, False],<br>
[False, True, True, True],<br>
[ True, True, True, True],<br>
[ True, True, True, True],<br>
[ True, True, True, True],<br>
[ True, True, True, True],<br>
[ True, True, True, True]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1">#把这些数取出来</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="n">b</span><span class="p">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([22, 20, 12, 36, 16, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,<br>
23, 24, 25, 26, 27, 28, 29, 30, 31])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="p">[</span><span class="n">a</span><span class="o">&gt;</span><span class="mi">10</span><span class="p">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([22, 20, 12, 36, 16, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,<br>
23, 24, 25, 26, 27, 28, 29, 30, 31])</p>
<h2 id="ndarray-的数据类型">ndarray 的数据类型</h2>
<p>可以将整个数组理解成是一整块内存，而 dtype 说明了这块内存的数据类型是什么。</p>
<p>在考虑需要控制数据在内存或磁盘中的存储方式时，了解 dtype 就有必要了</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mf">0.2</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">dtype</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>dtype(&lsquo;float64&rsquo;)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">dtype</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>dtype(&lsquo;int32&rsquo;)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">1.3</span><span class="p">,</span><span class="mf">0.2</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">int64</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([1, 0], dtype=int64)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mf">0.2</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">int64</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([1, 0], dtype=int64)</p>
<ul>
<li>还可以用 astype 函数转换数据类型</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mf">0.2</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">int64</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([1, 0], dtype=int64)</p>
<h2 id="运算">运算</h2>
<h3 id="标量运算">标量运算</h3>
<p>大小相等的数组之间的算术运算，都是元素之间对应相加减乘除，运算单位是数组，批量运算。这点和 MATLAB 也很相似。</p>
<ul>
<li>加减乘除</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">  <span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">7</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">9</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">10</span><span class="p">,</span><span class="mi">11</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 8, 10, 12],<br>
[14, 16, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 8, 10, 12],<br>
[14, 16, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="o">-</span><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[-6, -6, -6],<br>
[-6, -6, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">subtract</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[-6, -6, -6],<br>
[-6, -6, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="o">*</span><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 7, 16, 27],<br>
[40, 55, 0]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">multiply</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 7, 16, 27],<br>
[40, 55, 0]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span><span class="o">/</span><span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>i:\python364\lib\site-packages\ipykernel_launcher.py:1: RuntimeWarning: divide by zero encountered in true_divide<br>
&ldquo;&ldquo;&ldquo;Entry point for launching an IPython kernel.</p>
<p>array([[0.14285714, 0.25 , 0.33333333],<br>
[0.4 , 0.45454545, inf]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">divide</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>i:\python364\lib\site-packages\ipykernel_launcher.py:1: RuntimeWarning: divide by zero encountered in true_divide<br>
&ldquo;&ldquo;&ldquo;Entry point for launching an IPython kernel.</p>
<p>array([[0.14285714, 0.25 , 0.33333333],<br>
[0.4 , 0.45454545, inf]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="mi">1</span><span class="o">/</span><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1. , 0.5 , 0.33333333],<br>
[0.25 , 0.2 , 0.16666667]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">**</span> <span class="mf">0.5</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1. , 1.41421356, 1.73205081],<br>
[2. , 2.23606798, 2.44948974]])</p>
<p>除零会有警告</p>
<h3 id="矩阵运算">矩阵运算</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">9</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">7</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 矩阵乘法</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 32, 35, 42],<br>
[ 68, 80, 102]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 32, 35, 42],<br>
[ 68, 80, 102]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 矩阵转置</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">T</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>[[1 2 3][4 5 6]]</p>
<p>array([[1, 4],<br>
[2, 5],<br>
[3, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">transpose</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 4],<br>
[2, 5],<br>
[3, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 矩阵的內积</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">T</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[14, 32],<br>
[32, 77]])</p>
<h3 id="常用函数">常用函数</h3>
<ul>
<li>sqrt()</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 求根</span>
</span></span><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1. , 1.41421356, 1.73205081],<br>
[2. , 2.23606798, 2.44948974]])</p>
<ul>
<li>power()</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 求幂</span>
</span></span><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 1, 8, 27],<br>
[ 64, 125, 216]], dtype=int32)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 2, 3],<br>
[4, 5, 6]])</p>
<ul>
<li>sum()</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 对所有元素求和</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>21</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="c1">#对没一列元素求和</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([5, 7, 9])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="c1">#对没一行元素求和</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([ 6, 15])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 类似的还有mean函数</span>
</span></span><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>3.5</p>
<ul>
<li>mean()</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([2.5, 3.5, 4.5])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([2., 5.])</p>
<ul>
<li>uniform()</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">()</span> <span class="c1">#（0,1）之内</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>0.7807819763980599</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">70</span><span class="p">)</span> <span class="c1"># 指定范围</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>61.458442560252266</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">70</span><span class="p">,(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span> <span class="c1">#指定维数</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[59.88385648, 50.59647127, 60.02660835],<br>
[55.62225737, 54.49158301, 68.14669151]])</p>
<ul>
<li>tile</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 2, 3],<br>
[4, 5, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">a</span><span class="p">,(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span> <span class="c1">#将a作为结构元素，重复3次，形成新数组</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 2, 3, 1, 2, 3, 1, 2, 3],<br>
[4, 5, 6, 4, 5, 6, 4, 5, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">a</span><span class="p">,(</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 2, 3],<br>
[4, 5, 6],<br>
[1, 2, 3],<br>
[4, 5, 6],<br>
[1, 2, 3],<br>
[4, 5, 6]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">a</span><span class="p">,(</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],<br>
[4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6],<br>
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],<br>
[4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6],<br>
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],<br>
[4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6]])</p>
<ul>
<li>argsort()</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">300</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">       <span class="p">[</span><span class="mi">400</span><span class="p">,</span> <span class="mi">110</span><span class="p">,</span> <span class="mi">60</span><span class="p">]])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="c1"># 默认是进行行排序，返回数组索引</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[1, 0, 2],<br>
[2, 1, 0]], dtype=int32)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[0, 0, 1],<br>
[1, 1, 0]], dtype=int32)</p>
<h2 id="广播">广播</h2>
<p>不同大小数组之间的运算叫广播</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="n">br</span><span class="o">&gt;&lt;/</span><span class="n">br</span><span class="o">&gt;</span><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">55</span><span class="p">,</span><span class="mi">88</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">3</span><span class="p">,</span><span class="mi">54</span><span class="p">,</span><span class="mi">99</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span>
</span></span><span class="line"><span class="cl">    <span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">])</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>如果要实现 a 的每一行的元素都加上 b,可以这么做：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 循环</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,:]</span> <span class="o">+=</span> <span class="n">b</span> <span class="c1">#注意维数要一致</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[  9,  10,  11],
[ 12,  13,  15],
[ 16,  63,  96],
[ 11,  62, 107]])</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 用tile函数</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">tile</span><span class="p">(</span><span class="n">b</span><span class="p">,(</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="err">···</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">array</span><span class="p">([[</span> <span class="mi">17</span><span class="p">,</span>  <span class="mi">18</span><span class="p">,</span>  <span class="mi">19</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">       <span class="p">[</span> <span class="mi">20</span><span class="p">,</span>  <span class="mi">21</span><span class="p">,</span>  <span class="mi">23</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">       <span class="p">[</span> <span class="mi">24</span><span class="p">,</span>  <span class="mi">71</span><span class="p">,</span> <span class="mi">104</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">       <span class="p">[</span> <span class="mi">19</span><span class="p">,</span>  <span class="mi">70</span><span class="p">,</span> <span class="mi">115</span><span class="p">]])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="err">​```</span><span class="n">python</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 其实可以直接这么做</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>array([[ 25, 26, 27],<br>
[ 28, 29, 31],<br>
[ 32, 79, 112],<br>
[ 27, 78, 123]])</p>
<p>不同维数的数组可以直接操作</p>
<p>这就是 numpy 数组的广播特性</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
