OkHttp3 任务队列
OkHttp3 有两种运行方式:
1.同步阻塞调用并且直接返回;
2.通过内部线程池分发调度实现非阻塞的异步回调;
下面讲的是非阻塞异步回调,OkHttp在多并发网络下的分发调度过程,主要是Dispatcher
对象:
多线程:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的处理时间
ThreadPool线程池:线程池的关键在于线程复用以减少非核心任务的损耗。
比如:aaarticlea/png;base64,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" alt="" />
T = T1+T2+T3其中T1和T3是多线程本身的带来的开销(在Java中,通过映射pThead,并进一步通过SystemCall实现native线程),我们渴望减少T1,T3所用的时间,从而减少T的时间。但一些线程的使用者并没有注意到这一点,所以在程序中频繁的创建或销毁线程,这导致T1和T3在T中占有相当比例。显然这是突出了线程的弱点(T1,T3),而不是优点(并发性)。
1.通过对线程进行缓存,减少了创建销毁的时间损失;
2.通过控制线程数量阀值,减少了当线程过少时带来的CPU闲置(比如说长时间卡在I/O上了)与线程过多时对JVM的内存与线程切换时系统调用的压力.
构造单例线程池:
public synchronized ExecutorService executorService() {
if (executorService == null) {
executorService = new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>(), Util.threadFactory("OkHttp Dispatcher", false));
}
return executorService;
}
参数说明:
- int corePoolSize: 最小并发线程数,这里并发同时包括空闲与活动的线程,如果是0的话,空闲一段时间后所有线程将全部被销毁。
- int maximumPoolSize: 最大线程数,当任务进来时可以扩充的线程最大值,当大于了这个值就会根据丢弃处理机制来处理
- long keepAliveTime: 当线程数大于
corePoolSize
时,多余的空闲线程的最大存活时间,类似于HTTP中的Keep-alive- TimeUnit unit: 时间单位,一般用秒
- BlockingQueue<Runnable> workQueue: 工作队列,先进先出,可以看出并不像Picasso那样设置优先队列。(阻塞队列)
- ThreadFactory threadFactory: 单个线程的工厂,可以打Log,设置
Daemon
(即当JVM退出时,线程自动结束)等。可以看出,在Okhttp中,构建了一个阀值为[0, Integer.MAX_VALUE]的线程池,它不保留任何最小线程数,随时创建更多的线程数,当线程空闲时只能活60秒,它使用了一个不存储元素的阻塞工作队列,一个叫做"OkHttp Dispatcher"的线程工厂。也就是说,在实际运行中,当收到10个并发请求时,线程池会创建十个线程,当工作完成后,线程池会在60s后相继关闭所有线程。aaarticlea/png;base64,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" alt="" />反向代理模型: 在OkHttp中,使用了与Nginx类似的反向代理与分发技术,这是典型的单生产者多消费者问题。我们知道在Nginx中,用户通过HTTP(Socket)访问前置的服务器,服务器会添加Header并自动转发请求给后端集群,接着返回数据结果给用户(比如简书上次挂了也显示了Nginx报错)。通过将工作分配给多个后台服务器并共享Session,可以提高服务的负载均衡能力,实现非阻塞、高可用、高并发连接,避免资源全部放到一台服务器而带来的负载,速度,在线率等影响。aaarticlea/png;base64,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lvT09C5dugwdOnTo0KFTpkz58ssvY2NjaSRTmslk+sc//hEXF7dnz54//vGP+fn5p06dstls+/fvb9++vc/n69y58/vvvx8IBPLy8g4fPux0Olu0aJGRkYHKKScn58UXXzx37tyxY8e2bt3at2/fSZMmuVyunj17rl27NiUl5aGHHsrNze3ateuzzz575syZTp06zZ8/n1KKLOh2uwFg0aJFAwcOPHny5JtvvrlmzZo1a9b07t3bbrfPmTMnNja2rKzsD3/4w9q1a3Vdj42NnT59usfj2b9//8CBA997773BgwdPnjwZAAYMGPBf//VfDz74YFFRUXx8fP/+/fG5ev31148cOQJRbrdMZzOtydYvJUlaunTpXXfd1aJFC8wIw6ZujUj06g1DC14PuPpHKVV1TVYVQnWO84liSNckXQsDgMNas3PLum7tW0/51yhLZaHNVGiuzjdX5dnri4OeugunEwfHdI/p1/XIkX2BgAsAFC3sC7hCfABDa24Qr2ngdsat04K4FgWR2Cm2TMVqigIAPqzRyyc0kpIYjFHjWsCeQcskeouUlZW9/PLLycnJJ0+e/Oijj7p27Zqdnd2xY0eO4yil//rXvyZOnJiUlPTqq69++OGHTqdz5MiRU6dOJYSUlZVt27YtKSlp8+bNKSkpa9euffvttxVFOXToULdu3bZu3RobGwsAlNL27dtnZ2dnZmZOmjSpT58+Q4cOtdlsXbt2RZOg3W5ftGjRhAkTnn766ZycHJzEzJ49e+jQoRg8l5OT88orr9TV1WmatmLFin79+h0+fHjChAkAMHjw4KlTpwLA6tWr33//fSR49MYEgHnz5v31r399++2358+f73K5YmJi1q9fr2ma2Wzu0KFDVlZW79690Xbao0eP2bNna5pWVFQUFxe3c+fOuLi406dP19XVDRo06KOPPho5cuR77723a9euXr16AUAgEIiNjT158mT0+Mhmb6zCImbBrqqq6tixY7NmzWbOnImiEPsfvinW0MCNQeHy/EPRFB/nUVRJlEK84AegnN+xe9uGkUN6D4/tVp6bqnJ2qynPUVdgrs42V2XVVWTUlKbb64uCfvPJY/F9+nQaNWpwYuI+HcIAEAi6Zfmya3S02YkY6csNAMCtZEFmi8fgZaYIBUFwuVxut9tsNtvtdvZQRjsRRGeoMhCNaKsdDsSlpaXPPfccTji2bdvWvXv3goKCZ5991mQyAUC3bt1WrlyJ1QzefPPNdevWLVu2bOLEiQBw9OjRnj17Dh48ePjw4Z9++umpU6fatWsHABs3bmzRokVycvJLL70kCEJ9ff2LL76YlZXVpk2br7766vz58wMGDDCbzT169GhoaKCUTpo0aciQIbW1tR07djxz5kwgEKiqqtqxY0ebNm0AQFGUPXv29O7d+/jx4wAwatSojz/++PDhw+PGjSOEjBs37oMPPlBVdc6cOdOmTaOU5ufnY0A6pXTmzJnLly/HC5ckafjw4QsWLACAzZs3d+7cOTc3l7HgxIkT33//fQBITk7u16/fiBEjRo0atWLFimXLlmFtCpvN9qc//SklJeW5556TJKmysvKJJ56w2Wxw1bog0jBGlWCXPvTQQy+++CImFgeAQCCAmQRY8Matu/1NBleIYdxgz26UbyjSkq5okqKJYZkH0CmEEw/vHf1W7JiRAw7t20xEh82UV1eaUVeWHnCU2GqyrNWZPnuxrSbHbMqur8m2NhQrqm/L1s/fGh07YlRsyvFDAKBqMro0Y3gPRLLlNdL9xu27PXGLWJBemR8EHz6O44qKivLy8kpLS0tLS/Py8rKzs4uKitxutyRJ7KFkvovGuuDVYHIZF67C4XBmZuY///lPs9msadratWvfeOMNWZYXL1780ksv9ejRo3Pnznl5edOnTx8yZEjbtm2PHTuWlpb2hz/8Aa2F0SgrK+vZs2fHjh1feOGFp59+2ul0Dhs2rHXr1rGxsb/73e8KCgrGjBnTrVu3/v37t2/fPhgMduzYERPQbNmypUWLFgMHDnzooYcKCgrWrl07evRoURS7dOnSsmXLgQMHHjt2bNOmTc8880yfPn1eeeUVl8u1e/fuPn36AMCwYcMmTZoEkSXA/fv3d+nSBWM5AGDBggXvvvsupogDgBMnTjz33HM9e/Z85ZVXTp06lZWVNXLkSPTT2bVr11//+tcJEybgFAoi7qyZmZldunTp1KnTq6+++v7777tcruHDh7dq1apFixY4OUDDQ/SYyMItzGbzwIEDmzVrNnLkSJSAwWAQl2M5jsPcNMYwek2wShCRj1/XfYAoBiIEp8sKF/ICAAXl7Lnjb48ePGJYn/1xmwLumpCnxlx9yWspMldm+C1F1so0hynDY8521GeZq9Nttdm2+lxLQ0FxSSoFrs5csnHLZyNGxw4Z0b+svBjPhRkMmBaEyP8giPZINW7gbYZbui7IAqgBwGKx7N69+8SJEzabTYkgHA7jApXFYmGOo8Y07QagkVTamCFFURSe500mEy6y4jaGh+fm5mZmZtbW1qLAwmJD6MZZWVmZm5sbCoVwT1z9EkWxpqYmKyururra4XCgPTAvL6+ystJkMqmqarPZsrKy8vPzLRYLz/OVlZUYuSwIQmFhYXp6el5eHs/zdru9rq6OUup2u1NTU/GkgiCUlpZeunTJarUCQH19vdlsVhTFZrO5XC5d181mczAYHDVq9OrVq1GNqapqtVrtdjtExXWYTCa8qHA47PN7KyoqsDd4ni8vL8/KyoJISlK8OkVRKisrMzIy8vLygsGgqqrBYDA7Ozs/P5/juEZR8zSSOhUA0tPTn3766V/+8pebN2/GHTAHN1vYjl5w+qEehh8xruiVK+gw6g/ITQBAgZhqy94aNbB3n067d39ZU53HcxantcxeV2itybaYLgWcpa6GXJspw1GXYTGlWmvSvPYCpznX1pBnNec7HaWmmlyzpTgQspZV5mzfvaHNqy2nTvugrt6EJxIEHg31V/qfG4PMbYpbpwX1qKwZHo9n/vz5a9asQU+t6LgxSinP8zk5OWazmUSyLRvjy/VAr0SjPzXauOZHBiYrv0M/X+9c0Qe/3m9Vcjk8Q6eX3aBkTQEAs9m6desOj8cHAHJYIZqO03W0Zek60XQt6iCKDhoAJfSK9kdLOnpluhacJbC24YoRZtvBBHKoOEVRXLly5d133/3KK69UVlZCJOXN1ZccNZ4auAL4bBKi+X0eWRIBCNFUSjRFkcKCqKu6KquSKAEA1cBmM3+2cuFrbZ9f98USt6PK5ahyOyqtDYU2c7HdUuqwFDsaCpzmYkdDgcuS77Lm2C3ZLkuey5Zvs+Tbzfk2S6HLXmo1F1nNxeb6Erej2uOpqW8oWb16YZs2Ly5bvqC+vg4TikqSLIiSohJCiKYSohNRNNT87Yhbx4IQSUcpiuLGjRvHjh1bXl6OEV0szyTbsNlshYWFfr+fUooJlMGwiN4cGqkZttHI1hf98eqIzEa7Re95zY/XPNfV0op9SShFz3WN6DroKiUq0TWq64TohOiUiGFRFAUACAb5EMerigYAclgKBjgSlcVG1VWNqBpRVaqqVFGoolMdAAgl1wszZbMuSinm02Gpt3Gy5ff7USMCQE1NTbt27e64446PPvoIrbLBYJDjuGiLfaNrvyU3uYkBTZ2iIIRFfPGaJuuaommKIsletzssigBQX1f/1Zdf9ezRZc6M9ypK0jXZVV+TV1OV7bCW2szFdkuJ3VLisJY6rCV2a6nDUuKwFjqseQ5rrsOaZ7fmO6wFDkuBw1pkNxc5rCUOS6nDXG43l9obylz2Sru9wmKpmDL1X21fe3nrtq9MpmoAUBQlGOIVWQsFeSms6BomKP2Bu8vALcats4iixzyltKqqKjY2dtWqVTiW4ewbMzpijiuUjLm5ubW1tRDhTmOOdk1Ej8KNROH1/nQDwJUD+s3s+a1+1egYlFICoFFQKdNxQCgRRV5WJAA9LPKqIgNAKBgMckFVVohOdBXzZEUWeIiuU02jukp1lWoEkGW/fmCuPjE+Tuh3iiEQaKQlhIRCIXwCCSE7d+689957H3vsMSxtSAgJBoOCIDgcDkwCcL0e+CEehB81CCWUghQOcwFOCksiL6iKRHQ1LPIejxMAZFncsnnT4EGx7/5r/KXMVD5g8bqqSosu+j0mnmuw1Bf6PSa7pcRpK3Paypy20svv1mKnrdBpL3DaCp22Qqe1yGkrdNqKndYSp63UaS1zWioc1nKHpdzlrDbXF5sbSkMhZ2Vl4bBhA4cNG7x9+2a/3wsAkhQOBAKahqmLKHxdm9fAbYFbx4LIbYSQhISEfv36lZeXYxpiTGfM8hpj1mMAaGhoKCkpQZ8u5oZ+C1pr4NaAYJFwoDqlOsDlQgCUUEpkSRSFoCwJAAoQOTP9HABoispzQaoTOSxRQnRNDwVDgLKPEgJUB6oDoZHD3uDUyFhYT4MVl6CUBoNBjIXgOG706NHNmjV766236uvrIZIUFL1ABUFgpeG//376MYOlKbvhKzJXUFU1GOBkSZLEMB8MqqqCR9m6dfOQwbETxo8+mnyID/ndLovdXCaELG5HhcNaGvDWOG1llvpCt6PCaStzOyrcjvLL7/YSt6PI7Si+/LIXux0lbkeZ217udpS77RVuW5XLVum2V5nrip22Ss5vrqst8nvMAOq5c8cmvjtmxMjBGzeuo1QDgGDIp2kqpUCpYXO6vXDrLKK4DKOq6ty5cydOnIiVYDE5Fs/z0e+BQACzZxUWFjY0NJBIcqzbftBpqrimJovQHuiRVMmA1XKIyof8iiwAwImjh4YP6R/br1vPbh2PJycBQDjEa4qqq1owwLFDYHFxiiXGUWLSG8lTZlpA73ld130+H0sgd/bs2aeeeuqhhx5av349th8dZ9AdVBAEjHo07PMRz88rNq7xwhRolKqKGvBxQEDgBVmSAeD8udNdu3SY+O47e/fu8Hpt4bC/urrY77f4PbXVFZk8V+92VNRUZfs9Jr/H5HZWeJyVkRdul3ucpVGvco+zzOOs8DgqL7/bqz2Oao+j2m2v9rlqG6oLpKDDXFvUUFPkc9fKgif5SNw7Y4aNGzeyrLxAkkQxHLz8MBpa8HbCLWJBZoPyer1jxoxZvnx5IBDA1ZdgMBgKhUKhEG4Eg0G/389xnCiKxcXFGOXGsjbfgtYa+F7R6CZepj+glALRVUI0ANB1KefShXfHjxg2uFfcri+LC1IP7Nv69vAh/fv0zs3KRPoRhJDNYgFkI5ZmGdVH1NrONZ8Z/BLD4VEOsuKFS5Ys+fWvf928efOysjIAYBZ7nIexAhqGFgSAKC2oU1YL8PJ9wAU2tqEDQMDHiSExzAlUo+WlZcMHDx4xdFDS4fi6mjLQRZfD1FBXzPnNTnul12my1peIQZvXZXLZKzlvva2h1Oeq8TirvU6Tl727Kr2ucq+rIvJe5XVV+txVPle111XldVV5nbhhclkqRb/VY630WisCzmqvrcznrGgw5QDobqepb++OBw/tAYBgyEcIegXf7lOc2wq3yCJKKUWHApPJNGLEiO3bt1NKfT6f1+sNBAJ+vz8QBY7jAoGAx+MpLS2tq6tj9W5u+0GnqYJeyUkkqtwEABDMrKdeTiHUUF+1YN5Hndu/smPzZ2WFaQ5zictW5rJWmiqKd279qlfXzpMnTijKyyZEBQBFlnWdUEpUVcPBWEdXnSgneLiWs0+0HMRmVFRU/POf//z1r389bdo05rSFzx7mDkV7PhInM6Le6q78MYFSQi+nPdMo1SnVcQP9bfEm6LoKQHRduZwiSoOGuvp5s2Z3at9+21df2hpqBM4dCtjdzlqfpzYYMPs8tX5vbchn9jhMHke1z1Xjc9V6nSaXrcrnqvE6TT5Xjc9V43OZfM4an8vkc1f6XFU+VzWSn899mf9QPvpc1R5XlddZyXvq7TVFoqees1WEHKUhV5nG1wlBU/6lo8eO7Ojb+40Txw9SqimqaGjB2xC3tKYEIaSysnL06NFxcXGEEKfT6fV6/X6/z+fz+/1sA6kxGAzm5eWVlJRwHGdESjRpoHrDkFA0KgKAKIocFwyL4VAwAKADQG1tzYrlC3p3e2POjPdN5TlBT211aXpdZba1Nre2KsdSW+ay1TWYyr9Yvbxnt44fTZ2clZmBh+c4nz/gk2WJRAqVIIGhQxYuOQMApZRVG0bPGpa9b/v27Q888MBjjz2WkJAAkeoWlFJcCIRrEd5t/zRSQihQqmmqqsoARNMURZHo5eqQsiDwqqrIclgUeVHkAcBut2/8YkNMr35zP5rZUF0NuuK2NXgd9X53vc9d63fX+j2mgKc64Db5XbUBT73fXRfw1Pvd9QFPo1ddwFMf8NQG3HUBT83lDTyCu87tqPS4KjhfLeer9bmrPc7KgMckeGqD9sqgpSTsqSShGsVT7K1LP5P0ZeK+zxIPfNm7Z9vkpDgAUDUJQCcAhha8rXBL4wUBoKysbNiwYXv27OE4DgnP4/F4vV624fF47HZ7KBTyer1paWlpaWmapqHb+m0/7jRV4AOAgfwYqy6KoiAImqb6/R4AcNkb1n6+fNCAnh9MHFVenOGyVTrNpbXlmfVVl1yWIktttsWU6zSXWevLrPVlPlddVXnuwnkf9e/TZcmiuaXF+QCg64rf79E0BVeU0fCAJekx/QLmeQEAbAZEzOw2m23kyJHNmjWLiYnxer2Y508QBPQgRWfR6KVEBrjtH0hCCL0cZylrukKISqlGqKooYUUJc5zP63UJQhAAVFX66qsNg2Jipr4/qTA7G4judTmdljrOYwt4zH53nR/5zGsKeE0Bjyngrotiu+u92D61AU8dvvzumlDAzPnrnNYyh7XU564O+Gp8zkrBUy26q0RPpRao8FkvlabuTtyx4OTBVcn7Vx5J+KJPj9ZHk+MAqKJKhha8DXHrtCAakaxW69ixY9esWWM2m30+n8vlcjqdLpeLbTidTqvV6nA4vF7viRMnEhMTscqdoQWbLlhAYTgcxhW4YDDI85cL/G5ct3Lk0L5TJ49NObJHFVzW2gKnucRsyjVXZQfdFV5bcV15mrUmx15XYKktqCxNN5Vf8jirw4KrIO/ilMnvDBrYZ978mcGgGwAEMShJIubqY5V1Q6FQIBBg3siSJKH7FQCcOXPmqaee+tWvfrVjxw6s1ovCEZ9VPVKUGAxfmGuAuTgRTZckmSdUAdB0Iuu6pGlSWApRqgLou3btiBnQZ/TokWdOnQAAKeitry4TQl6ntSbgsQR9loC3PuCt47x1nLeG89VxnjrO28B56zlvww1fuIOZ85o5bz3nrQ948L0u6GsQODPPNQS8NV5XlddVLvlrIFQnuAqrLyWcjl9+bPf81MQVpxOWJe5ZnLh/VZ8erY4m7wcABQ3dhhC8zXDr1gUx2FmSpBkzZkyYMKG0tJTneYfDwcjP4XDghs1mczqdbrd7w4YNSUlJGK383XKaGPjPIdotHm56snyFlyaWk/R6vai0jh9L7ty+9eyP30s+tNPrqFZER1Vxusdabq7OdTUUOWrznXX5lqpsa3V20FPpd5RY6rK9jlK/p7K+JreiNN1uKZNE1/lzyR9Mfqdr13ZffbUOS5Ljuh2rIRAOh9E6ihoRIs/SkiVL7rnnnlatWtXU1EBUFjq2Fsji6I0Z2LVAMKiAUl3VZFULE6oSqmi6RKkuCkEAvaAgp3uPN98eNTzl2BFFEQD0usoij7VGU/mg3xbyNIgBm+Cz8D4z7zPzXgvva8DtoN8S8llD/uu/fNaQ3xLy2UI+e8hvDflsIb8l6DOH/BZUhEFfXXx6QeAAACAASURBVNBfG/TViSEzaK6wt6I2PyUtad3p+E/Sjnx68dCSY7tmnNg7N3HX/MS4FX26v5KcFA8AqqaxLKc/dPcauHX47iwY7YZ+9UYj4FQajVGbNm3q06dPYmJiMBhEznM4HA6Hw26347vFYgmFQpcuXZo8eXJhYSEOat84El2vPVc3CW57W9a3xzUokEalXrwB2D4sKTaW1R0wYMCQIQMPH9xRU5mp8JaGqpya8izBW2euynXUF/gd5dbqHJsp12sp8ZhLPOaC+qpUa12WvSHHbsmzWwvdjhKrubC8NCMYMAsh+7mzSW+/PbBrl3YpR4/gWbxen9vtpoTq+tdEiKt9Doeja9eud9xxx7x583CRkud5NKIy3xlW9sSwQ1wHmPya6kTRdIlQRSeypkuoCwMB9zvjRvXp2/1I0kF/wA2g2Wz1toYqJewOB2wBZ60W9iq8S/RZRL817LeKfmvYbxP9trDfKgasIc4u+O0CZxc4x9UvnnPwfgfP2YWAQ/C7hIBdCNiFgIMP2PiAVeCsnLfe564O8xaqejlfTU1Feubp3ekpmzKPbUhPWnnh4MJz8bPP7591Km520s55yXEr+nZvfTQ5AS5rQXT6+d567dvnsrjxTxr96Tsc/N85O71qsG2K+B61YKM+wjyNAJCfn//WW2+99957+fn5TqcTMynbbDabzWY2mxsaGmw2W21t7fz58z/88EOO4yBiTf0OHX3N20OjiLBJ37xbhUbiL5oII19dvxvxFuAdlCSprKx02rRpHTp02Ls3rra2KsxbHZb8BlOW31XmsZXaavNcliJnXb6jJt9WlRdyVAtOk7u2yFmX67bl8oEyzlvktOTYzblOe6HdWuhylNeacq3mUoe9yuGoysw8HRPTq2/fvikpKegRI0kSz1/Oo83zIV3TDxw48OCDD/7hD388evQoAGAFeSwfz8o0Mh2JnqJgWESvgcvrZ5om67pEQZYVnlBZkkKywg8c1G/+glm84Pf5nQ6XORj08iGP31uviQ6/0xR016qC02uv4n0N4YBNDNhEzhbm7CLnCAfsYsDBcw4h4BA4Z+TlEDiHGHSKQYcQdIicQ+QcYtAhBpyC3yUEnALnEjmnyNl5v0UM2mTBKYt2MWRxWIvyc04eT9p+IWVL1okv049+npa4LPXQgrSDs1MPzj69f/bRPXOO7V/dv+erR48eAABJ1lDj/thwzf9f1xzB/s0B7QYn+lY/aVr4z2jBRvOCq53UcX7NfPaWL1/epUuXNWvWYA0Bs9lsMplqa2utViuaRrdu3dqzZ89t27YBAFq3vnG6QaM8UeFK/qNXejfAT+LO3VqwVCA6Wh3ZIKjrWnR6fkIIeyg0TZNlSdM0jMEqKyvZtHF9j26dFy+a7XZaXE6zw1Jtry9yW4vc1kKnudBRX+ioL/A7KoLOSq+l1FVX7LdVuOpLnKaCoLPCZc1rqE6112cGnMU+R4nHXuK2lzqtpT5Xtbmu0GGr9LpqzA2lihw8EB/XvWvnye9POH06BSh6xEgAEAqKI0e81axZs2HD3uK4IABomubxeNBEQaKq7eDjgQoSmv5U9/vB5f/Zuq5pmkyIIisiJbqqSl6PY2Bsr/PnkogWCAYsouh2WExCwBX0WUJes8Q5Jc4p+O0S51B5d5hzCZxTDLrEoEu4/O4MhZx80MGHnHzQIQQdQtAZCjp5ziFwTp5zCgGnwDn4gEMIuETOHeY8QsDN+2xhv1URnIpgk4MNnKusuvRs2tk9505sz03bn3FyY1rKZ1nHP0s78sm5+Lnn9s04v3/mmX2zU/bMPha/YkCPVinJ8QCgKMwi+j32Gr6zMY1VesL/MtHeWCRSjQcAWPpc/C1+GT3ksi81TcOlcTRvRFcjiN7A/7bsOGzkxO9ppBYeO2ajKCNcR2f6pEn/B/nuLEgimfjZrcIuRkdp/IildkhUtv5QKEQpLS8vf+eddwYNGrRx48by8nJBEKxWq9lsdjgc1dXVO3bs6NSp0wcffOB0OtG7j92YG7SHRkKh2fOEjxd7JnCMi37IvvGYBgAgigIJgAagAmgAl0PENE2VZQX7GP8rYo5PXcfCsyEAcLvt679YNWxQ/+kfTizKuaiFvW57tbOhxGut8FjKPJZSj7XUay3zWsq91nKPpcxjKfNc3i71WMo81nKPpcRrKfbZir22Yo+5yGMpdltKPdZyr63SbalwWStclkqXpcJrr26oLgsHAzZz9VdfrnhrRO/pH449f/YEAJw7c77lP1v/6pe/2bBuu6ZDWFIUVYWbmGIbT8j1QCMVASVZ1lSdaKArBAgIoUBs3ze3bloq+CtVsV7lLWrQrgY9atAnc76w3xsO+CWek3l/OOgTQz6R9wq85/J7yMsL7qDoCor2oOgICXaed4QEV4h38SGHEHQJQQ8fdPGcK8S5BM4jcj455FVCHjnkVoMOlbcGHKUNZeeK0g9cOrs99/y2vAtbs85syjr9ecaJFWnJy1MTl6Ue+uRCwsKz++ad3DsrefeslPhl/Xs0P5q0G74mgO9R97NhE00OiqKIoohjJg5Z+CXOzDBpA/pUY5RRKBRi9TJDoRAW6sHklGokuS6GCWGCeFa0Do38SKI4JOJuuPjNWBMXAlglH/S4JoRgIyVJYm3DJQZW/7xJ/zf5t7Qg47zoyQWbKWBsFqupixMT/FLX9cTExIEDB/br12/x4sUpKSklJSVms/n8+fPz589//fXXJ0+enJ+fjzcMy9zcjBaMvh+M9vDxip4HsRkNGJaumwKJvKMQVAAUjFCnlCiKLIoCITqllyeG4bAkCIKiYCge/Wz1iqGDY97715j0Cydlwa2Lbltdsb2+WA5a7bX5roZiZD6vtfw6rzKPtcxrLfdZS73WEo+lzGcp9VjL3NZyj63S76j2OUxee7XXXu2xV7ssVV57vctc67ZWq6Kz1pS1/JNpo9/qO2LYwP/57YMdOnTOzSkEHXxeLhi6nKKd5d2+2lTQyJzwg3T9jxhf95isqLpGdJUSRac65TnvkJgum9YtMJWdc9Rna6EGwjsFt0Xyu9UQp4Y4ledkgZNC/nDQFw75Rd7P8z6B9wm8V+B9vOAJia6g6AqJrpDo5AV3SPAIgkcUvaLgCYe8Ysgb5n1h3ifxXDjoEwMuTfCCykmBhvry9LKc4yVZh/Iu7sk9vy3/wtb885uzz2zIOrU68+SnqUc/vXhk2cUDy87HLzqzf/6JuNlH98w+lvBJTM8WKcm7AEBVb50WRCJksbM4UuE7Dp5IM5ilCAN+kM+CwaDX60V5wEgU9QYAeDweURRlWcZxD9cF8FFHOxwhJBAI4JDIdkM2xaMxekNfNjUCVkGTcbMgCDfjsfHjx7+rBZn2QtXFDI+SJDGxzIQX5i/GOY6u6ydPnhw7dmzPnj1jYmI++OCDd999t0+fPp07d547d255eTmlFPuaUnoz8YKM1djUBr9n/1ejhSC2+RuPaQAArtKCyIKYJUTXNEXTZE1TdF3FGWKE/2B//N7Ob7b/8IN3j6ccknivELTbGkp9DpPHVm5vKA55TLzX5LNVeK3lPlvFN7ysFV5buc9W6bVVeO2VXluVx1bptVf5nNV+Z03AXutxmNx2k8NSwXnMHosp6K6z1eU5rHmU2N3u+mefeXRQ7EC/lyc6uJwBXpB1QvFR/TGuAjURsNA6WVF0TScqJQoBAiHOPXJwz01rF1xKPZCfecTVkKeG7FQKqEG3EvKpvF/lfVLIJ/MBVeAkIRDm/YLAiUJAFPwiHxAEPy96edEjCD5e9AqCVxR9oujjeY/Ie8SQWwz5JCEgh4NKOKhLnC76Rb/N1VBaU5ZWknuiLOdoafbh4qz9xRl7SjJ3FKZuzTv75aXTqzNOrEg7+mnqkWWpB7/Wgkf3zD4WvyymR4uU5GgteCtYEOkH2Qj5DABQtOGeOPQpioIF5lCoocgLh8NYFAw5EgOBMCczXgJEmTTR5xkZC5UfEwbMaRFFIbbH5/Ph6I3CkWkGRorsWsLhMPptNHUH/n9XC0ZPnxn94A3AHsQgLTZlUBQFi4+jtdPhcOzevfvDDz8cM2bM0KFD586dm5GRgQIfhTnOjxi53kx7ookQxSjjaQaDBb8l8H8mWxfUI1pQJ0TXiabrqqopqipLUliWw0WFeW+NHDpoUL9Tp5KczjqB///svXeUHNWZPjykNbvsrj+vbWzDzwSDzUG2ZQusHEYRZSFAAYQiIJCEAqCMUM6jkUaTc9TknHPsOB2np3umc865q0N1rKr7/XE15SGDjb3g1Xt6+tR0V9W9dav6Pvd5o93j1CMunUEjshgkEdTsskgtOoHHJnNb5S6LzG2Vua3yL3u5rHK3Re6yKl0WpcuidFiVLovKaVW6rCqXVeW0KOG73aywm+U2vcRrV9qNo3oVHceMBg1dreKsXjG/tqYCAID6w7EojuOE3x+I3UtI9PcJ/LUBAO6iYAzgEQzghBexv7V1fWHO1RF2C2OwWsTpsqiFUa+VCLqIsAcPeqIBZ9DniATcWMgbCXrDqDcY9IWCvmDQG0L9waAPDSHBoCcY9KIhBA0ioZA3iHr8XkfQ7w4FPBEUiQa9sZA/irrDXrPXoTWqBeKRQSG7UyLolgnaxZyGseHKUVqJgFLAG8jh9KWzPoWCNyh1VwZqLvbc5YI3Nq//Z6MgqZMk1Y8lJSWDg4Pw25qamv7+frjNZDIbGxthnA8AABYbiEajW7ZsGRgYgMzM6/VCDy/IGmtra69cuZKbm4uiKEzLDACA2bhwHIcTLwRdaKKKRCIejwfHcZi0iyAIg8EAFbChUMjtdsPZGGprZTLZhQsXLl261NraCgCAiaB/6L+jb4qCX6gpwicSQkJmDekgiYJwrOFKBNL/sbGxgYEBKpXa3d1No9HodDqCIHCF4vf74TKHPD+5UCKXM98QBUkhTbvkLcQ/lwHkM0B+Dxq/SOCwEBMZI3GoC8XxGPzX5/V4vR4AQDiMSqWSs2c/WbliSUlRNoJYQ0Gnx22wWhRup9aPGF02BeJSexwKl0XidymcFrHbKkfsSo9NgdiVX/jy2BWIXem2qV12jdOudts0LrvGbde4bGqYc8RpVTutStfdDJNK1K3xO2R4WOd3jzKGSlrqb7e35MTP+2NXeyOBE6FgCACAIN5QKEQ+Mv/bw/tDlYnRI8KREBaL4RiBh3GAAb/Xvu31NQXZV2RjfTxmI5vSKBzuVY9xUKeeCDuIqBuPuKNBRwR1xoLeWNgfDfnDYX8kjIbDwUgIDYfRUMQfDvvDYX8o4guF/eGwPxzyRYLeWNiPR1EigsaCvkgACbhNFp1IKWZKRoc0ErpGSpWOdIyzG8ZYNSJm2QilkD+YwxvI4g9mcfpTGF3fIxSE2RigoQ46IW/atOmNN96AMDZjxoz169fD7H379++/du0aPFan08EJzWq1Tps2TSwWk6khPB4PxK2SkpJf//rXH3/88cKFC/v6+mBzLpcL+nmRGjJYQQz2hywfDaGRDJ/1+/1wH7/fD9V4GIbdvn17xYoVixcv/sMf/qBUKt1u9zehKN9z+UYoOBkkyKslJlFABEH8fv9kRzuSjUFodDqdFRUVt2/f7ujo4HK5w8PD4+PjIyMj3d3dUqkUmlvJqt8QDiGNgxsw4chX2/Amd5LUu0ItweT1F5j0lE++c1/44T2ZEDI6ApvQi8ICArEgigAQBQBIxcLsrNRVK5ZcunjW77URMa/HZbBbFQ6bymZReD16j0vrsCt8Ho3TJnVYJUGf1m2Xu20Kr12N2FReu/rzL49d7bWrEbvKZVM77DqHQ++y65wOncuuczk0HpcGces8Lq3boXTaZYhLFQ4YYz5txCfXiLsGujLrKy831Fwb7ClYsXRaR0slAYhoJAqXROEwCnnMPcPw3yzkYjgcCWKxGMkFfYhtxxurC3Mui/htbGotl9Y0xu4d41LE/CGTZjQaMAMMgViIBZFYyBcN+8MhfzSCRsLhaDASDoVCYTQSRqPhYDgSCIcDsRAaDfojqA+PBEEshIX8AY/dYdaZdeM6JVsloSrHh9RiimqsTy5oG+fUj7OrxOxKEfOOgJLPG8ji9WewvzdckPTDhAyB9JwoKCiYP38+AKC/v//FF1989tlnY7GYTqebNm1abW0tjuNpaWlvv/32yZMnlUqly+Vau3btpUuXjh8/npCQYLfbYf1nBEH27du3detW2BbE0Zqamj179uzdu3d4eBgA0NnZmZycfPjw4WvXrpWWlkIjYn19PZvN9vl8t27d2rhxY2lpaSgU0mg0BQUF58+fP3XqFHS0gepQeAnz5s2D8ExmovjHDdo/Wr4dF4QCldcw0ArHcbPZbDQa4TB9Zl0An6pAIHDz5s3jx493dnaqVCqFQjE+Ps7n89Vq9ejoKJ1OHx4eJq24+ESOR9KRl/Tl/SZckLRTIghCpVIbGxtpNNr4+LjRaCSdd0htLTFhzoRnJpXy94DwMzKxwsCxWBTH7+pCg6g/GgkCANwua9KthDff3HDo0B6tWgYAsFpVFpPUbVd7nDqvSx8OWm1Whdup8iG6gFcX8Oo9TqXHpXA5ZB6H2uvQIg6N16H9/AtxaL1OrcehQZx6r8fqdBrtDr3Lofc4DU67xuPU+hG9wyJx2yRBvzYSMKAelUXNGKGUtVVd621O7Gm5UVt+tqM5dfH85zpaKgABsGgkGokSBI5hn31W78m3lU9zQQzHCDwaAwThRaxvbV2Xm35exGuTCXvUYuo4p18pGpYL6VIhRSvn+FxaLOyMoHYc8+FRPxZBI+FAOBQIh4KRUDgG/RxDaCQUjIbRaMiPhVEsEsQjKBbyh/1un9PiMKmNGrleKTCo2EYVSyujyoQ9Yn6bfLRVymscZ1eKWeUiRpFgKJ/bl87qvs3qvT3c871AQXKxThYzgfMPgiDTp0/XaDTJycnvvvvu7Nmzh4eH6XT6kiVLnE5nfn7+mjVriouL9+zZ8+abbwIA/vKXvzz33HO3bt168cUXr1+/DgCw2WwAgNbW1p/+9Kck5jGZzBkzZhQVFR0+fHjVqlV2u33dunWPP/74tWvXDhw4MGXKFOii/+ijj/b19Z08eXLt2rWFhYVr165NSUmh0+k/+clPXnnllaSkJGg1hMbCUCgkl8uffvppFotF9v8H/Tv6plwQAgZ0HyI9cVEUpVKpmZmZXV1dpKsSqewmlaJdXV1r167Nz88XCoWjo6MCgYDNZvP5fC6XKxKJRkdHe3t7TSYTtB1CFxvwadj7JkMMJzXog+rz+fr7+0+cOLF3797+/v6RkREKhcLhcBwOB8lWYQ/xiShG2NXP8N17AuWuIwmGhYNhAscj4WAsBguFE6kptze8tvbkyY8EoywAQAB1GI1yxKX3uvSIS+txaRGH1u1Qezw6xKX1uFQel9rjVCNuDeJSedwqj0uLOPUelw5x6RCX/gteMGmky+BxmZ1Oo8tlRNwmr8fk9eg9Lg3iUKGIJhY0RANaq44nZLf0t2Z21yUMtdzsrr/UVnO2vvz0YHfmwjm/6eusAQDgkTCBAywWJQiYa40A93Jl/Y1C/lImuCBG4BEM4JjPa9v++qqyohuK8b6Pj2w5vG8jZ6hZzKOIOANj/H6jmmfWjakVIwHEFEYdWMRLxII4FopGgtFIMBYJ41gsFg1HIsFYNIjHQkQkRERDeCQYQREUcTitOpteYdaIrVqJWSvUK1haKU0tHlSN9SmEnVJes4zTIOXUjDPKhLRiISV/ZDCL25f2/eGC5NhNHkQAQCQSWbZsWUZGxpkzZzIzM48dO/bxxx8nJyevXbsWALBo0aKVK1dmZmZu2bJl6tSpHo9n1apVvb29AICUlJT58+eHw2FY/AvDMAaDsW/fvieffLKtre3IkSPPP/98fn7+wYMH//u//3twcHDr1q1HjhwBAOA4/qc//amhoaGkpGT58uVGo/HJJ5/ct2/frVu3pkyZ8uabb/J4vD//+c96vR5MMATSE3Xu3Lnvv/8+AACatMD/BS5IuoNC8CMIAjojSaXSgwcPnjlzJj8/H9pgSc8iUt/t8Xi2bdu2c+dOFoslEAh4PB6Hw+HxeHw+n8VicTickZERJpNJpVKhqpo0AU7Gwm9iroPfwlvS3d194cKFbdu2ffTRRxBox8fHmUxmR0eHTCYDE4yQdGQljc/gB347/yFCAHxCeYhjOB6Lol4PAKC9pXndqpdOnTg82N8Ri/gCPptGNebzmkKozePU+Zx6+EJcesSt9zp1iEuPuHUet84N3z1aj1vrdem8Tj3i0nld+s+/EJfe69R5XXqP0+hyGL2IzY9YEafO7dQEvPqwTxfx67CgHrGJxCPtlM6inuaMgZbUoZabg43X+uovdNaebSw/NdSZvmjOb3o7qgAAWCSEYwSOxXAcGjj/scFh/9oy4WBLhCMoFsVwDMejMUDE/Ih9++srqstucRk182c8/aO4uE1r5/a1VutlXKN6ZIzfLxUxdGqhzSQz6cQ+jzmMejAMxbEQjoVxLIJjESwSJmJRgogCLIJF0QiK+N1Wh1njsKjtRrlVL7Foxy2aMbNmxKAc1sloasmAStSrFHTI+C1SbqOEUzvOLBfRSkYpBSMDOdzeDFZf8veNC5LTGqmTyMjImD59+tq1a3t6epqbm2fMmPHyyy/fvn2bIAhoNSwrK0tLS+vv70cQZPny5WNjYwCA1NTUF198Eer5oS89lDfeeGPjxo179+5dunRpYWFheXn5nTt3HA7H+vXrc3NzoZnwyJEju3btWrRo0a1btxQKxfPPP79///6KioqSkhKVSsVgMFavXi2XyyFPQFEUWgr379+/fft2j8cDoxixH76X2bfgguSlBgIBHMc1Gs2+ffuOHTtWXl5eVVUFHZDIcEtsotKbUChctmzZhQsXRkdHIcen0+lsNhtaB1ksFovF4nK5DQ0NBoOBmCjGC779s0hqRIPB4OXLly9cuLB58+bs7Gw+n0+j0VgslkQiGR8f7+vro1Kp8HZCdk9MxBeS1P4HfUf/EUKOSdAfcNvtBI7veeftLZteow32ed1WPOpHXKag3xoK2BC3PuA1BRFzwKlHXcbARE5kv8vocxsRj9HjMbg9Rg9i9HhMHo/B6zH43Eav2+jzfMnLbfC5DV63GfXZAl6b32NCnFq/WxsNGEHYjLqkClEvo+/OYFvOUHs2rTOH1ppCabw+1Hi5r/5sZ83pprKPKZ1pi2c/1ddRCQDAoxECJ3AMhnncVej9b4/uD1TuVpQAAA+HUSwWwzEMj0YBgfkQy7s712elntIpBsuLrvzuif/6t7i4x3/6SFHWTeX4sFU37nfrpWPDZr3EapQZdVK7VeP1WkMhTyTiw7AAgYcJPAqIGI6FwyjidVucFp1FL7foZVaD1GGU2U1Su0Fi149btXyDgqmT0TTiIfVYr2K0U8prlXEapew6MaNijFoiHCoS9OfzerPYvcnD3ycu+OlxvLvil8vlcXFxCxYsgIVX/+d//ucvf/mLVColCOKjjz569dVX3W63TCbr7OyENG7x4sVqtXr69OmHDx8GAMA1/enTpysqKsxm88aNGw8dOlRWVjZv3jwmk+lyuVgsltPpXLVq1Y0bN2DgBI1Ge/755x9//HG73e50Ords2XLixAmfzyeXy1UqVU9Pz8yZM0UiEdTfQhfIEydOvPDCCw0NDTQaTaVSYRPpbH7Qc+a34IKTHVhCoVBCQsIrr7zS1NSUl5dXW1tLpluEoaDQZRQAkJGRsXTp0urqaiaTSaFQ6HQ6k8mk0+kMBgOi4NDQEIfDaWxsFAqFpMsT+PbPIhlQ0dvbe+7cuVu3br388stlZWUcDofBYFAoFCaTCZWxVCqVTqdbrdbJ4YMAALLPP+g7+t0LAe5W0MHxCBoM+HwAgFUvLRvq6yaioWDAE/Da7BaNy6kJotYQarXblB6bJoJYgh5LELGGPOYgYg14rQHE4vdafT6L12tFvDbEa0W8Vr/XEkCsfq818CUvP8yejFi8LqPPbQx6LVjQFg2Yw4jaruONDjey+0sZ3fnc/iLuQCG1PW2oKZHWeJXaeKG//nRXzcfNZSepHalLZz050FYJAMAiEQIj8Ni9OJm/X0gmjYUjAQyLklzQi1h3bV2Tm3mWx6wzqmlsSs3bb6768b/FxcXF7d6xqfpO9vgI3aAZ0ypH9WqRSS+xWuQOh9bjMXq95iDqiEQQPBIgYkHU57KZtGadwqgV61VCi05s1Y/bjWMO07hNL7LqBGYN16hkGWQ03ThFJepTCrrk3DY5p0nGqpfQq8coZaKhYkFfPq8nh9OT8n1GQSgymWz9+vVXr16FxG7Hjh3vvPMO9Ba0Wq3Hjx+fO3fu3LlzU1NTcRx/55131q5du3Dhwtdee00qleI47nA4otFocnLy0qVLp02b9vbbb8Mp7uLFi6tWrYqPjz9x4gSKohcuXLh9+zaO49DlcP/+/Xv37oUqMS6X+/rrr69Zs2bu3Ln19fV8Pv/IkSNyuRxG8UciEavVunPnzoULF65bt27OnDnXr1/HJ2V6++HKt+OCpF64tbV18eLFt27d4nA46enpHR0dZAQemf4AABAIBHbu3Pnqq69CFxgajTY8PDw8PEylUgcGBmg0GoPBGBwcpNPpTU1Ng4OD0J/zawnZZ7QKk7sHAEhNTb18+fLBgwd3797d1dXFZrOHhoaGh4cpFEpnZyefz1coFF1dXVQq1el0wqPIaNMf+qLmHyL43WGJhiOhAOr1eAiCWBwfX15c6HZYgwEE9TuCfmskaA94jYhbFw07okFH2G0Oe60hry2M2EJeG+q1oV5rwOfw+5w+v8Prc/h8Dq/fEfDBz23ol78CXivqs0VQRyRgi6L2sNfkMIqkI31cSg1noFxArRgZLGJ2ZVLbkpntqYzWW7SGK/SGi4P1Z7prT7WUnaC1py2d9eRAWwUAAA/H8BjAMYLAASDAPSr4dwhB3CXTsXA0gGEwcD5GLg00ywAAIABJREFU4JjPa9m1dXVlWeIor4k5VCEYbh7j9lz65NBzT/zs3++P27pxTXtDGYfRazPJ/R6jxSRz2FWuu6pyvQfRI4gZ9TrCAY/TZtAoxvTqMbNeYtSIjJpRs1Zg0fItWp5ZwzGqOCYVy6hiGWR03fiQWjigGulWctpk7BbpcIOEUTtOrRgbLBntL+B357K7075Djejn5x/y88lfgS+ao77wK/DpwHOv1wshCgCAIAgkYZM7QMYwgAn/QRi9DrV08HPoHuFyuSYfCJ0QwYRjJ2kGIjN/QYGd8fv9ZEp6Mo/oZ7rx1eFnXzEgX7Y9+ZOvvgvfoXxTFCSzDMBQ9+3bt2/YsKG/v39gYCAxMZFGo8FvyczXUNM4PDy8dOnSc+fOQfwbGhrq7+8fGhoaGBjo6+ujUCgDAwMcDqevr6+qqqq5uRnGy5PU81tdCbwZPp9v//796enp27ZtO3nyJJfLHRgYYDAYfX19vb29VCoVbohEot7eXjqdDuNdoL8y2e49IPyU4ADA20EAIobFgmEAwMI5c0oLcwVsukYuImK+sN+Ges1Brwn1m30ePeoxRry2EGIL+ewhryvkdaCIE/U5UZ/L73X7fC5vwOXzu3x+p99nR3021GdH/fagz4b67EG/LeifgEC/Lei3B7zWoN8GcG8sYPPYlBrJsGi4g0ut5w1WjgxVCCh3uH15zI40RustVkfScGsiveEyvfHiYN3pnpqPW0pPUjtSl8x+qr8d2gWjBEbgsYkssrCGzr27/bcIgRNwqsJCEX8sFsExHI9EARHz+yxbNi69U3B5hF030FVA7a2QjQ4alSM1JTmtDeUBl2l8lFVZlnfi8L6ejjo8hqB+i8drcLo0bkTn9uicLq0PsYZRt9th0CiFBrXIppeYNEKDmm9U80xqnkXLNWs4Zi3PrOYalMN6KUM7RtEIB1Qj3Qpuq5zTLBuuF9NrxygVosHS0b4ifncepyf1u+KCXzhHfwYLP7PxZSf5zCcwgQvM2wmJhMPhIF0OodmPzKPm8/nIHGbwk2AwGAqFnE4niqJut9tqtcLp2ufzmc1ml8vl9Xqh8yBpvYJHQR8OCHVkpjS32w13g2QUzudkUrdgMAhdUklnfnK6/sJL+/xXk4fxKw7558i3Q0G4NCgvL581a1Z6ejqDwWhra7t48aJYLMYnSpvCpKtQQZqYmBgfH5+Xl8disQYHB/v6+np6evompL+/n0ql9vT0DA4O3rlzp7S0FI7717qwT14+kJH78GZQKJRdu3bdvn17165dV65codFo/f39vb29vb29/f39PT09XV1dEIDpdDqVSu3t7YV+PZPDPO6h4KeEgLQJJ3CCiOFBnw8AsHbV4oKsm0JOD5fWalHzAUBCXp3XqgSELxZxB732KOoP+dyo1xX0eUI+TyiAoAEk4PegAU8g4A7Ad787EHAHAq6AzxnwuQN+RzDgCvqdfsQaCjijQWfIb0d9tkjQhYXsHqvEpuGrxobG2O1CRuMYq3GMWcsfKuYPFvD6czh9WeyuFEbHLVrLdWrTFVrDhaHaM33Vn7TeOUVrz1g065mejhoAQDSG4TjAo/e44N8vdzMpABCLYUEcj8aiMSyKETjmQ2w7t65LTf5EraSxaHVHP9iacPGjce6QUS0BAIR9LtTnAAS+Z/fWZ5967PUNa8tKMg06MQCxYMDqdurdLr3PbYqFXHarXK3kGzSjJi3foOIaNByjmmNSsU1qjknNNau5ZhXHqGTe5YKiPuVol3KkXcZtlrAaxhnVImrZ6NAdfn8RpzeP3Zv2HWpEyfkHzngkMyNX8KRvINyBtJzBXC1wH7/fD1FqMnkgU4mSu+E4DusQgInAdkjLUBSFmjPoukJ2HgDg8/km53B2Op2QWZI5uUjDE4ZhMLEX9P/HJ4rfke76ZNaYaDTqdDrJEADywkmXe+LTlS4mR42DiWgKeGZSoQiPgn46ZNIVeP5vche+Q/kW8YIQnxwOx+7duzds2NDe3k6hUCorK69du6bX6/GJtGTwxhAE4fV6d+7c+frrr7e0tEBtZO+npaenZ2BgoK2tjUqlpqSkFBYWwvw9xNcpmsnng2yUrC1eVla2e/du6CCakZHR39/f39/f2dkJ8a+npwe229nZSaFQGAxGR0fH6OgofGjuGQW/TAicAIDAcRyPEaGAHwCw6qU5JXkJfGYTl1Yn5rRY9Rw8bMIjtoBLH/bbokEf6keCqD8UDIRQfxD1BfweNICgAQQNeIKoO4giQRRBA+4g6kVRxI8igYAn4HcHA55QwBMNeVGfPey34zEfEfN5XUazVmSQM9TCHhmvTcJpErMbxKw6EaNihFokoBTyBnJYPemMzmRm121a242h5ivUxkuU2rMDVWfaSz6ht2UtmvVsd3stACCC4RgBcOgcg0+g4L0b/rfIxEoURHEiTBCxSCSCx3Acw30+1+ubVleUp/E47QJeR2lB4rNP/Pe5U4fY9H6xiB8N+d0Os8tlw7DYlOd+ExcX95///vDUKb/dsvnl6or8gNfqsGq8Tj0WdlqM4yoZS6/h6dUsg5ql1wwbVGyjkm1QsY1KjknBNSnZJhXTKKfqxYOqsR6FsFMpaJfyWsTsujFmlZBWKqCU8AYK2X3ZrL7vTCNKLpRJAHC5XDAjB8QSyNjIhCGkYgyCByR8kFQFg0EYYAZ3hslDJmd8tNvtUOsIqQUZ0EWGpcE+BAIBSA1h7Dw+UUIAwiHcB7aI4zjM3w2JJpkOmyxMQdaOIA8hU4AFAgFoHYQe9XCHQCBAlqeG2A/jCOCZYWI2eBTMbuPxeOA4kPuTl+Pz+RwOB6TCXwsB3618i9wxcMXR29v7wgsvXLx4cXBwsL+/PycnJyEhwWg0klBEqo+ZTOaiRYtOnTrFZDKbm5vb2tq6uro6Ojo6Ozs7Ozs7Ojq6urqampoGBga6u7uPHTtWUVEBVzpfS8hIuCIz1JCLqatXr+7evfvUqVNbtmypqKiA4NcxIbBduNHS0tLb28tms1taWtRq9Tds+v+iEAAncIIAOIZHw7FoMAgAWP3S3KKcKxxqPZdeO0Kv4QzV6GT0WMCExxAs5An5PcGAF0V9QdQXCvqCqC+Iej//QlFvMOgNBWEaSW8w6A2jnkjQEwt7sYgXjyChgMNh1WhkI3IhTTU2qBjplHJb76LgcI2IUTZCKR4ZKuT157J70xhdKcOdSdTWBErTFUrj5aGac4OVZzuKTzPaMxfOfqanow4AEIZcMDbBBclqGffkWwsB7lakjWF4GIbdYjGMwAjU697wyvLSkiQ+t92o44j43X+e8vjzz/5y0yurqsqLFdJRs0FlNamNOkV9Teni+Nm//PmP/+2BuLi4uIfuj3v15WVuh97vMcSCDqtpXCkf1qo5etWwTsU0qocNKqZBxTIq2SYFx6hkG5XDBiXdIKPqJEPqsR7laIdipE3Gax7n1I4zqkfpZSPUO9zBAlZ/1nfIBUkIhAk8IZODLpSBQABiCTGRMxIKhmHQBcFut8P81yT2QAiBiigcx8mU2dCxBdImmIoZ1qSDmAGzTkK88fl8cDcIloFAAEa4wwkNMk5oXAQAkDm4YffgCWMTQhAE3B9iKgQ/OLtC7IxGozabDXYJMlHILKEQEzHlECnlcjn8HFJYBEHgJQSDQYfDQY4MhEAInziOu91uu93+T56Ev6mPKFxQRCKR8+fPz5kzp7y8vLOzs6urKysrKykpCdpgSbYOn4O0tLQFCxZkZWX19fW1tra2tbXBdyhwG6JgeXn5rl27+vr64EmICXPxl/VnskYUm0hHSxBEIBDYt2/foUOHPvzww61bt8KG2tvbv7BpCMwUCqWlpaWvr89kMv1t9sj/C0IQBAAEhmOxCBYLhwEAK5fOLs69JhhuYQ1V8anVkpEuIbtjlN1t04nxiBcQYTwWDId8aMAdRJFwKIBj4Ug4EAr6wiF/OOQPh3zhUCAc8oeC3lDIGwn7opFANOrHoj484sOj3mjQ5XObTFqpUsJXibkaKVs+2ifnd8h4bVJei4TTOMaoHqWVCqjFkAuye9OZXSmQC1I+wwXbsxbNeran4y4XxIlJKHiPC/7tclcjSgAMIyIEEYtFIzEMBxjhddv37H4zPeU8nVKjVdNdFmFLfcGqJTOe+83jv3r0xwfff3ugt81p0+s1Epdd7/dYhSPMi+dOLlk486kn/t+KZQu0SlEAMcZCdotxTCllalUsrYKpVdD1SoZOwdAp6XoF0yBjGeTDejlDJ6fqpRS9eFAz3qMQdshH2mTcJjG7bpxZLaSVCSh3IBdkf9dckMw/hU/EUkNgm0yJSL0irL0APS3J0nJwBQ9tbAAAsqAgNNEBALxeLzZRNRBMUsBOVmOSgc6QzJF5PyCgQmzGJ3K2wRbhISRJhTzS5/NB/JvsIwN5LWwORVGXywXpJvSlgNAIOw93hieHpk1yrCA3Jb1yYCfJJmBnyOpDMP03eb3fyWP6TeSbckGob1Sr1cuXL9+9e3d7e3tHR0dLS0tycjJMXg6XFaRq2OVybd68edOmTU1NTc3Nza2trc3Nzc3NzS2TpLm5GfLCq1ev7t27l8zi+rV2QbJXUEgLrclkgiEv77333p49e7q7uxsbG5uammDrn2m6vb29ubm5oaGBwWDU1tYymUxSfX+PC35G7q5LMByL4rFwCACwcsnMssJEwXDLOLdNM9YrZLdKBX2KMZpcOGxQinweczjkjkQQDPNjeCAWC0Yi/kg4EAkHIpFgNByKhkORcDgaDoVD/nDYF4n6sJgfj/hiEW8s7ImgTptJqZSP6JWjNp3UoBKqxhnq8QGloEsx0iHnt4rZDSJ6lYB6Z4RaIqAU8gZyIQoO/xUFL1Nqzw1Wne0oOc1oz1o0+1nIBb8ABcE9FPzbhIAKGRzEYkQY2qewGE5gRABxbdm0tjDvhmikncus99hEZg1vsLN615uvzJs59Rc//fdnnnz08vkTAz3NiNPgtutcNq3fY46F3GMChk4pQpx6xKWLhuxmo0gpYWgVwxo5QyOjauRDWhlVJ6VpZXStlKGVMnQyulZK0UsH9ZIhzXivUtip4LdKec1iTt04s1pILxNQ7/AGC9n93yUKQlDR6/VCoRDO+xKJhM/nQw0nBAnIDiFvgw6fkAzBMkmBQABiA2RdEPZIwodhmMPhMBgMKSkp8CsYewY5IjwEntPn80E4JAklnIFhNyD6wj5AgXUBoZsMbBcCG1RLkp6oQ0NDDQ0NNTU1SqUSAADLSsDmnE4nvArIBeGAwFa8Xi+JcIFAoLW19dq1azweD+4wOjqam5s7PDwMGx0YGMjOzm5rayPHnMlkqlQqBEFCoRBMf/q9QEFikpAeKy0tLVOnTk1ISIAo2NjYeOHCherqakgByULGBEH09vZOnz79xIkTXV1dzc3NdXV1tbW1jY2N9fX1DRNSX1/f2dlZXV39/vvvJyUlwYUMaUf9WgdcUn1MLm3Gx8dfffXVo0ePbt269dSpU11dXfX19XV1dY2NjQ0NDY2TpKGhoaWlpbGxsaKiYmhoqLGxsbW1VSaTTXYTvSdQyAHBcRyL4tFQEACwetmcsqKbIk5bZdHV7JsfSkY6NRLaOL9fIWIpxrlqhcBqVfi8RiyGELgfi/nDQSQaCmDRYCwSwiJhLByNhWJYOIxFArGINxrxRkKeoN/uRyyIy2DUjtuMMrtJbtKMaWQ8nXzEoOSoxwdVwh7FSIeM1yJmN0AuOHKXC34lCrZlLZr9V7sgThB4jMAxgpgoMfi5Orv35Etl8sxw95kgYjE8jOOxWBSLxXACI/we+9s7NuRlXxnltnLoteKRLqOMgVgkPEbP6ZMHF8574c9/eDouLi5+7p8P7ttZU5EfC7lCfpvPbbKZlFajwmVXex26KGoz60UKMU0jZ6hlFJVkUCMd1EiGNBKqVkLTimk6CV0jpqrFgzrJkE48qB7rU412yXktkn8wCkKoKCoq2rlzJ1TlHTlyZN++fdhEuQYAAASVyUddvnxZLpcDAEgXBEj7SKsb3A0GPAAAdDrd/Pnzyc8BANBHhuRqk7+CtkOSRJL7k2otiH/ktyQzAwBAKyDJ5AiC2LRp06ZNmzZu3PjKK68wmczJV0E6tsAOpKSkwPxqZMcgZufl5a1fv37Xrl3z5s2TyWQ9PT3Lly/fuXPn7NmzBQIBjUaLj48/efLkn/70p7KyMhRFP/roo0cffbS8vBz27fvLBeEDf+nSpZkzZxYXFzc0NFRWVjY0NJw5c6a1tZWYUBATE+B0/fr1uXPnZmdn19XVNTQ0VFVV1dXV1dTU1E6SmpqaxsbG4uLizZs3t7S0AADgUohs8Wt7Bd9hIWYAAIfDWbt27YEDB1599VUI1Q0NDdXV1XV1dRCGJ29UVlY2NjbW1dWVlZX19/fX1dW1tbXB1u8pRT8jBJleJxKLhkIAgHUr5pcW3hAMNx14Z8OP/+uhw/tepfZU6uRsqYCuEnM1coFKwTNoxxw2Jeq34DEvIEJELIhHgng4REQjRCRGhHE8EiUwlMD8eBQJBxwel8FqlBu14w6L0mqQmjQig0qoU/DVErZKTFePDUzYBZslnMbx4RohvUxw1zvmS1GwvfgTRnvWwlnPkFwQIwAWxe9xwb9bSCd3qBHFo5EYhmEAIwKIbfuWtYXZVySjnWxaFZ9WJ2S2asV0t0Uul7CL85P37N68cN6ffvmz//75T/795dXxq5fPO3vqA9pgezjg8Dj0Zr3E79LFUItVL1SKaRo5XS0dUosHtJIhjWRQLR3USSg6MU0voWnFFJV4UCcZ1IsHNeN9KmHXBBes/cehIJyj8/Ly9u7dCz85c+bMe++9BwDo6up6/fXXDx06BP1lKioq3nvvvYyMjIaGhqeeemrBggVMJhNFUZ1OZ7PZLBYLQRBtbW3d3d0AgKqqqvz8fABAXV3d9u3bExISIAomJiauW7cuMTERJjC7fv36hx9+mJub29zcvGPHjnfffRfyLTgHYhhWWlr6xhtvpKSkBINBsVi8ffv2t956q7+/HwDQ0NBw5cqV3bt3Z2dnM5lMqKgDAOATCaIhwq1Zs6a9vd3r9c6YMePSpUvhcPjcuXPbtm2D3RsaGkpPTz948GB+fv7Pfvaz+Ph4CoUCANBoNFqtVqPRAABee+21zMxMAMCsWbOysrIOHDhw9uxZAMChQ4fef//99PT0jRs3wn93796NIEhxcfEbb7yRmppKEITH44ELiO8FChIT3q74RGoVq9W6ZcuWTZs2lZeX19XVVVRUVFVVHTlyhEajkaZUqBpVq9UbN2584403KioqqqurKysrKysrq6qqqqur4TuUqqqqlpaWw4cPHzp0SKVSRSeKL5PUEzZNelvBd7jGIaknMclXeGBgYPXq1du2bXvzzTfz8vIg4FVVVcH3ye1WV1ffuXMHXkVZWVl9fX1zczNcmJDG7cm+y+RQ/OsJvExynKFpHY4ttNXDb0OhEIETeIwIowEAwKplc8oKb4r5XbWlN6c884sH4uLmT3+2uSbHrhMrxzgGlVCr4hu0Qr1GaDcrbCZ5ALHFgj4sGiKi0VgoHAuGw4FwFA0SWAANWJ12tcUotxikZr3EpBO7rEqbUWxRj5rVQqOKr5GxVONUtahfNdqtGOmQcpvF7AYxq1bEKP+GXHDJnN91tFaBu94xBEEQ4WAIi961YeP/svf2uxTSIR6q/uBTgaIohkfDWCgUCeE4jscILBILIPZ3drxWmH1JxGvmUirGOY0SdpuY3akQ0Zxmic0wxhxqKc67dXDvth1vrHv68R///McPLF80Y96MP6xYPKujqRKxa9w2JRG2GdVcqXBALaHIRX2q8X6luFc91qcR9avHBtSiIc3YkEo0IBf1qcf6tGP96rFe5WinnNfyj9aIwqmmtrZ26tSpO3bs2LZt29NPP3369GkmkzlnzpyrV68eOXLkgw8+YDAYM2fOhAqnsbGxefPmHT9+vLGx8cCBA7Nnz37ppZcWLlxYXV391ltvJSUlEQTx4YcfvvXWW0KhcPr06QkJCRs2bJg6darBYDh9+jSDwVixYkVNTY3X633qqaf279/P4/EqKipyc3PPnTu3a9cugiBgZGF/f/+cOXOKioo+/PDDurq6LVu2HDp0KC0tbdGiRVKpNDEx8fe//312dvZzzz23bt26y5cvz58/XyAQ4DgOGSrkiC+//HJXV5fNZpszZ05VVdWVK1fWrVuXm5u7evXqhoaG0tLS3/zmNykpKUKhcObMmWfPnhWJRGfOnJk6deqaNWtmzpx5+/bt9vb2P//5z2vWrHn33Xf1ev3ChQurqqpwHC8vL1+8eLFWq507d+6SJUvWrVunUCjgaJ88eTIjIwMAgCAISW++K5D7WvlSFMQnEAhaaAEAAoFg2bJle/bsqampqa6uLisrKy4uPnz48MjICDFhFIQ8fXBwcM6cOQcPHoSQU1paCrGw4tNSXl5eX19/9OjR3NxcMJGtG6rISRsyiYsQaPGJwhFQRT65KAQAoKWlZfHixa+//vrOnTvz8/Nho2VlZVVVVeXl5Z9pGvbnzp07NTU1VVVVjY2NOTk5SqUSsntoVcYnsBb/F9WR4hOrDQRBnE4nXOdCR2ebzQYVIDBXPY7j4XAkEo5FI2EAwJrlc0sLbvDoTQJmfW9z5uI5v7svLu63T/x/p4++L+QM6RSjagXPqBNaDBKzTuxzG2wmpc9lCfrcXocthqJ4DAv5g7FwGHGZbGa5US826sVWo9RmklmNYrtR7DCO2/VjFu2IXsHRyVkaMV0l7FMLe5SCThmvZZxVLxmuG2NW8L8OBTtLzjBas16a/3xnWw0AIBjBvN4AigZx7K6inyDuaUS/XvCJgDD4Q4MWrBj84cXCUTwaioZjGB4JY0Q05nVZ3t7+SmHmBQmvWUCvEjFqZawWJa9byOlUyxhmHV+v5BjVfKmQ0lpfmJ95/e2tryyeO+33zz72P4/cd+n0EbdF5bLIQcSmV7DFI70q8ZBstFs51qcY71aJetXCPpWoXyUcUIsGlcI+mbBHJepVi/pUoh6FoF32z0LBO3fuwJJG58+fj4+P//DDD69evXru3DkAgNfrnTp1ak9Pz6xZsw4ePGg2mzEMe+mllyoqKkKhUH9/P41G4/P5Q0NDFovl2LFjGRkZsVjswoULO3fuzMzMPHjwIACAwWDEx8dHo9HBwcHMzMz4+Pjm5maLxbJmzRrYDZVKVVdXd+jQoSVLlhAEAWMW9+zZ88EHH8B5MjMzc9GiRbDg3YYNG8rKyk6ePFlUVAQAePHFFwsKCgAAq1atgsY5aLCEJGzdunVTpkyBCKdQKKZPn85gMAAAqamphw8fbmhoePvtt+EzMHfu3Lq6OgAAl8tlsVh0On1oaEir1ba1tc2ePXv9+vUrV64UiUSbNm1KTk6ORqNVVVXr16/XaDSrV69eunTpihUrWlpa7HZ7OBzesWPHjRs3YrEYdLSET93fjGrfVr6KC+KTihARBNHc3Dx9+vRPPvmkubm5uLi4pKQkIyPj2LFjUN8NlZkQlpKSkl544YXr169XV1eXlpbCjOYQckonyZ07d6qrq7OyspqamqxWq16vd7vdkH/EJmrWgwk8hul8yAUpmEgdRK5VCYJoaWlZsGDBpk2bdu/enZeXV1lZWVpaWlxcDNv6TNMVFRXFxcVlZWXl5eVFRUXV1dXJyckwTXs4HCYDQkkn5n9hmRyxFIlEoFoDTAQVQV1/OBxCA4FYBItFoI/orJK866OsFj69TifpG+e2bd+05Mf//kBcXNz6lQsGe5sEvEGLQWI3yzWKEYdF5bLrXFYdijhjQR/isAQ8rpDX67Ka9eoxvVpo1I5ZjBKrUWw1jJu1Qpt+zKYXWnWjZjXfKGfrpcNaKe1v5ILFd7lga1MFAAADIBbDI+HY3RoIOI7d/bsnXyPYRE4o0nYFXSQ8XhcaRmMYhmF4MBDBIlGf0/rW1rVFWeclvGYBrWKcUStjNSu5XbLRHomwTzY2aNLxAh4l6lHZTeNSIU02xqD0NjZV5a9fGX/62AGLVuyxyPCQRSdnifk9qrFBqaBLIepWC7uVY93KsS6VsEc92qse7VeO9spGu5XCHpWwVynslgs65P94jShEwfz8/I8++gh+cvz48T179ly5cuXMmTMAAIPBMG3aNFjE7fLlywsWLNDpdIsWLWptbcUwbOPGjQsXLlyzZs2KFSuam5s/+OCDGzduAADee++9Xbt2ZWVlwYpFfX1969evp1AoU6dOpdFoy5cvz83NhfwMACCRSFavXn3p0qXc3Nzt27cTBAEzuSxfvvzixYuwV7du3dq8eTPcXrp0aXFx8fHjx+vq6giCmDZtWmdnJwBg3bp1tbW1YCJPG1TSbtq0qbGxER4olUrj4+NhqcKkpKQDBw6UlpZ+/PHHAAC73b58+XKoU33rrbcWLlwIa9BfuHBhwYIFUM379ttvL1++fPv27VBBCrW7O3bsOHXqFACgsLBwypQpcDw/+OCD7OxsMJFM4GvvwncrX+MdQzr1YhiWnJw8Y8aM27dv19bW5uTklJaW3rx58/Tp0yaTiSCIQCAAmYTZbH711VdXrlxZVFRUWlpaUFCQn5+fl5dXUlJSVFRUPCFFRUVFRUVlZWUdHR2tra2QtPX397e2tg4MDAwPD4tEIqVSaTabEQSBrlCRSESr1ZJ0DeIT1KPiOA4A6OjoWLhw4caNG6HaGsJbYWFhYWEhbJFsuri4uLCwMD8/v7S0NC8vLz8//86dOydOnOjt7YWkFp4TunL985bc/0sCWTWMclWpVPv377927VpXVxdZqAVBvC6XKxqJhoPhIBoAAKxZMa+0IFEw3ELpKuZTq9XiAZ2ckXbzzHs7tnS3VPW01zXXFhdmJ6llI0QEcVrUiEPvd1u8DqPLrA947FEUiQa8LotBrxIadSKjTmTSCY3aUYOKr1dyLTqBRTti1vBNKo5BwdLJmFpMxQIEAAAgAElEQVQJXS3qJ7mgmN0gYdWNMSu+FgU7S07TWzNfmv98d3stAIQ/FIlEYjhGBAMoFrur+r7HBb+JQLMIm83etm1bcnIyi8WCpdAAIGJEzB8MIL4AGggBADw20/bNK4uyL0p5TUJa+TijRs5qVPE6xLwOibBbI6fqlEyVhKpXsb12GerRRgMWnVLgshkufXL49NH9WtmIxyIjgiadjDHO61aIesW8DoWwSzHaoRjtVIx2Kke7VYIepaBPIeiRCboUo91KQbdc0CkbaZfxWiS8pn8oF4SUICUlZd26dTBK75133vnggw84HM5vf/vba9eubdmy5b333tNqtSdOnMjMzJw7d67ZbD5z5syyZcvodLrX6zWbzTabzWAwAAAqKyuXLVuWlJT0+9///t1332UwGNOnT7969erGjRunTJlSV1cXHx9fVFT0/PPP5+TkaDSa2bNnoyg6Pj6+bNmya9eunTlzZubMmQCADz/8sKysbGhoaNq0aUlJSefPn+/v71+/fv3p06evXbsWHx/v8/nef/99aNubOnVqeno6QRCzZs3q6uoqLi5OTk4GE14zixYtqq6uhmnYYrHYiRMntm/fnpycPHPmTBaLlZWVderUKWgi2bt37+rVq2GtXZvNptFootGoxWJ55ZVX9u7dm5OTs2bNmpSUlPz8/Pj4+NTU1Pj4+MbGxsuXL8fHxxcUFKxfv37v3r0ulys1NXXhwoWbNm2qrq6GMRvwkfs7se2by5eiIEQ+MrtmNBo9duzY0qVLs7KyioqKsrOzy8rKLl68eOPGDbg2hOMCABgaGvrjH/+4f//+O3fu5OXl5eTkFBcX5+TkFBYWFhQUFE5Ifn5+YWFhdnY2tC9WVlaShjqorqysrKyurq6vr29tbe3u7h4YGKitrU1LS6utreVyuWRFCBihCReqnZ2dixcv3rRp04kTJ/Ly8iDCQRie3HpBQQHczsnJycnJycvLq66uTkxMXLFixfj4OBnyCJ16ySCb2L+iQJ0WzAEBfwMWi+WXv/xlXFzcI488snz58hMnTnR3d+P43ScyiIZQv48giBVLZt7JuzHG7WD2lV04vr0464JyfMimEwIQABE3wNGgz/bhvl3L5k+/cfEUj9EPQBgLugNuE2LX+xwmh1Ed9rnsRrVWKTDqhHrtqF49YlDyjGqeWSswaXhmNdes4pqUHINyWC9naKRUtahPLexWCjomULB2EgrejRcc7rxNa7tBafqUXZDZnj3/L093tddiOO4JoH5/EMNwLBqLRaBCLxb717y336VA1wkcx/v6+v7zP/8zLi7uF7/4BVzjD1EHg5G7/ooelw/1+X1O87s71hdlnpPwGkfppWJGtYLVoOa2ykc7ZaIetXRQr6Rr5XSDkuW2jBuUXLdZ6rGqAIjlpSYknDvuNMpcZhmOmrRSxhi3UzbaLea0ykfaZIJW+Ui7gt8hH+mU87vkvB45v1s60ikb6ZLzO2WCDvlIm/yvkRJVQnrZCKWENzgRL/gdRc3D1YBAIGhsbIzFYnDa6ejoIAiiqqrq5MmTCQkJJpNJp9OdPn36zJkzVCoVRVGlUnnkyJHGxkaYhxNOrT6fz2q1ZmZmnj17NjMzs6GhgSCIlpaWo0eP1tbWpqenOxyOvLy8c+fOQeWkzWYrLCyEh3d2dp48efLKlSu5ubnRaLS4uHhgYAAAcOfOncOHDxcWFgIAeDzeqVOnzp8/D8lce3v76OgojuO1tbU8Ho8giOLiYpvN9sILLxQXF8MZD8fxiooKpVKJ4ziMZdRoNBBum5ubAQBcLrerqwvSDz6ff/LkyYGBAZgWIBgMwlRtcrn82LFjFy9eLCgogGEV6enpJ06cKCkpAQCgKHrr1q1Lly4lJCS4XC6fz/fRRx+lpKQkJiYmJyfDEI7vFwqSHfL7/Vu3bn311VdzcnKysrJyc3MLCgqOHj2ak5MD/UeIiYjRy5cvv/DCC1euXMnPz8/KysrKyrpz505OTk5ubi58hwIRqKCgICcnB64X0tPT09PTS0pKJvPFkpKS8vLy2trapqamjIyM69evQw0nk8kkJnLHkOoaCoWyYsWKDRs2nD59Ojs7u6CgICsrKy8vLzs7+/OtFxQUZGdnp6en5+fn5+Tk7NixY/ny5RDIYV4G/P9YQjV4pQaDYcqUKQ899NDDDz8cFxcXFxf36KOPLliw4MyZM2w2JxqJ4tEIAGDlstmFOVe5tHqdbCjjxkfxM586ffQt5RjNYVKE/HanUQXwkM/rmPrcb+6Pi1syb8a65QuTE86rxXwi4g0hFoNChMd8VoNcIeFoVXyDiqdTcnUKjknNs+oEBiXHqOKYlGyjgmVUsnQyhlZCVQv71aM9ypFOGa9ZzK6f4IKkj2gasyt5uCuJ1pZAab5MbbxMqT07WHWmo+Q0vTVr2bznoI/oPfk7ZXh4+PHHH3/44YcffPDBuLi4+++//8knn1zy0pLzly/wRwTQ29bnsuzasqok+7yU2yCklUnolUp2vZrToh3vUYr75GO9WhnFqudYdFydfNiiHbEbxyQjNLt2XDrCkI8Om1RCp1GCBYwaCV3E6ZAKusbYTVJ+q3SkRcZvkfHa5LwOBa9Twe2W87ok/E4pv0PG65Dy22X8NsVIm4x7N3fMBBcsYPVnfYdccPIOkUgEqiIBAJMr3OKfdjInl5hgoiABVDjB4D9yt8naZiiTa0eQx8KICDJcb/JuMCUyeTZyG1qUopOKwsdiMXgGFot1+fJl+AmMbgQAwNwxcH08uQMwlQy88MnXC6EOxhR+5hKgvyT5L7R5Tb6iyWEbsHtkkT7wz5Kv8o6JxWLQGQwA4HQ6V69evXnz5pycnMzMzPz8/IyMjH379pWVlcGbCrtutVrXrVu3cuXKjIyM3NzcrKys1NTU/Pz8tLS0zMzMrKws+A43srOzMzIyiouL4YckPsFtqEfNz88vKCgoKSnp6+trb2+HZC4rK6u5udlut8OlBKkUZTKZq1evfu21186ePZuWlpadnZ2ampqTk5Oenp6ZmZmRkQGbzsjIIP/Nz8/Pzc09cODAX/7yl6NHj5LpHiCuC4XCmzdvJiQk3PgXlYSEhISEhPPnzyclJcHCY+fPn//Zz3724IMP3n///Q8++OCDDz5433333YXDnz/6wgt/OXP6lFYtW7F0dvWdZB6tUTPepxMPzpv26+l/eGz7xhWDnXUa6WgIsfucZhSxVxTnPvXYLx6Mi4uLi7s/Lu53T//qyMHdPpfe7zIGEYvVIFWKWToF16Th6lUcrXxYJx82KFl6BdugZBlVLIOSZVAM6+VMnZSqFvaqhd1KQbuM2yJmNUhYNZ/mghnMruRPa0TvoiCjPXPuC7/98MDum0mJ1xNvJSUlX7tyPenmrcSEG3fv7L/s7f0u5fr167dv3z5w4MBPf/rT++6778EHH/zRj350//0PwGfjvvse+MUvH5s5fc7Z02cEXMa7O18pyDwr4TUKaaViRpWcVa/ito3z2qTifpWMopLTtEqmScs1qDgmzYhewTOrhTadxKwW2XVSvXzEaRjD/XqNmCpkt0pG2kWsRgm3WcZvkfKbpbwWBbdNyW1XcDtlvA7pSJuE1ybhtkp5LTJei2KkVcprGmfXjTMr/4qCfTnfee4YMvslTJgJYQlFUbvdTiYMi0Qi0DkFxsDBYHkyHQxBECiKIggSCATcbvfkzDIIgsB0o/AoMp8ZLO/udDpxHIfEC7oT4jgOXfTh/jCPDMzoFolEjEYjjJonk0SS9QIDgQAsPQEhMDahHIK5vElNm9frJQs8QQcCBEEgstrtdgiWMOKQzIgGFZvwnLB1v99PpnYjU+TALqEo6vF4YA0GqHsgvid5REmtIOyNRCJZsmTJjh07CgsLk5KSsrOz09LSdu/eDVUBZArUnp6e3/3udx999FFOTk5qamp6enrahKSmpmZkZKSkpKSlpUFkSk1NTUlJSU1NTU5Ovn379s2bN9PT02/evJmYmJiYmHjjxo2EhIRr165dv3798uXLu3fvXrt27d69e/Py8lpbW+vr66urq9vb24VCIdlnBEGuXbu2YsWKs2fPQjTNyMhIS0tLTk6GMJydnQ2hNyUlJS8vLzMz8/bt2++9995zzz23efNmMgKUTP1w5cqVX//617/6V5cnnnji8ccff+yxxx577LFnnnnm4Ycf/tGPfhQXFwc3HnroIfhvXFzc/Q889OOf/GTz5ld/88Qve1vLWL21UnZ7wDLWU58/909P//GZX0177umrZz9hUwdMeoXHZtCrpWIhu6Wh6vUNa5956lcPPfTgU4//XCziIE5TJOC26GUaOdugZOlVLL2KZVAOGxQsg5JpUA4bVEyDctigZOqVDIOKaZDT1aIutahTOdI2wQWrx5gVE7ljcti9mcyu1OHOFFrbTUrTVWrjZUrt+YlIiYw5055/6te/+PUT/+/JZ37zxJNPPv7Yr5584vHH/reH/Qcnjz322E9/+tMHH3zwv/7rvx555JH777//gQce/I9H/uPBHz0UNyGP/eJXu3e9ueal2Xfyr4zxGvn0CuFwrYTdKB/p5HM7lFqeWscXiIZUGq5WO6JRc/VqgU41YlILTOpRo4JvUggMCr7dMBoL6NRiioDZJOa1iFn1cm6jlFUr5dRJ2bUSdr2Y3SBmN4o5DRJOnZhTJ+bUSTl1UnadhFMrZddJODXjwxVQI8odKOT053+HGlHi0wXzJm9PnrtJTRL54WQjK7kP8bniguQ+5Km+0Ez7+f58/t/JBt3PdHVyJz//+eRTTe7eZ6598qVN1pwRk5zqv/qKvrD1z1zRP0G+SiMKlwZwEIVCYXx8/Lvvvpubm3vjxo2MjIzExMT33ntvYGCAmEjmieP42bNnp0yZ8sknn6Snp9++fTslJSUlJSU5ORm+37p1KyUlJT09PSUl5eOPP37llVeWLl0KXWbXr1+/atWqpUuXLlu2bPHixYsXL16yZAn89qWXXlq8ePG0adOWLVu2bt26LVu27Nu37+jRo0eOHNm1a9epU6c6OjqEQqFMJuPxeEePHl2yZMnJkyeTk5MTExOTkpKg6hUqP2F/IB5fv3797Nmza9asefLJJzdv3jw4OEguQ2A2W/jvP+1O/C/K5N+JxWL53e9+d9999/3Hf/zHAw88QM5uTz/91MrVq1KzsmVKJQBg4yvL89KucAbqLTJm0DLmNQir8pO2rV/xzK9+9tQvf75u1ZLs9FtcFsVp06M+h9mg9DhNJr2ipbGqpDDLYlQ5rLqgz2nQilVSuk5B18ppWgVd9wUvmlZO0ynoWtmQeqxLLexQ8ttl/CYxp+7TXDCP3ZvB7Eob7kiltd2iNF6jNl6m1F4YrDrXUXKG1pq5cuHvmxtK4QXiBPbFo3BPvoFwudynnnrqoYce+vGPf/zII4/AZ+PfHv7R87//w8qV6wpyi30ebwT1vbPz1YKsi2P8Fi6japRVK+Y0S0c6R0b7xFruuatHN29fXVCSrNaOmMxinUagU/ENKr5BOWJU8k2KEb2CYzOMRAM61fiQgFkv5jSJh+vk3Hoxs1I8XCVmVY4NV4tYNUJ27RirSjxcOc6qEk+8xocrJexqCbt6jFkhpJfxh4p5g0XcgQJ2X9pw13evEf1q8Pj8zP7Vu30Zwn314eCLwOkLd/7Cbn9++zOA9xUn+dpOfv7Dz1/gVw/mP0e+FAVjE+F6EMA5HM6cOXP27duXlpaWkJCQlpZ29uzZ999/n8PhQEfqWCxms9kWLFiwfPnyGzdu3Lp16+bNm7cm5ObNm0lJSQkJCYmJiSkpKUlJSW+99daCBQv27du3b9++t956a8+ePfv379+9e/exY8eOHj167Nix48ePnzx58uOPPz516tSZM2fS0tIuX768bNmyWbNmrV69etmyZS+99NLq1au3b99+8eLF69evX79+/cKFCxs2bPjTn/40f/78ZcuWrVixYtOmTdu2bduxY8c777yzZ8+effv27d69e+vWrZs2bVq0aNHUqVNnzJjxySefSKVSgiCgVoG8HIIgSBb/L+wdE4vFwuGw3W6HLmFarXbKlCl/Xdo/9tjLL7+clJQkkUjggxGORXAcW/nSvPKCWwJa80BzgWS41aMf0UpYlI7aUx/un/HH53/z68d+/pP/XLU8/lbiZQa1F48GIkGP2aCymjQ+j9VpNzht+nAIsZqUSjFVI6NoZFS1jKr5ghfl/2fvvcOiPPP18Zw9115bzve757vJnpxNdlNN7DGKFTuiImLF3rHHSDQxMTZEFFRAOkgHQaT3gem9916BYWhipZdpb3l+fzwwIWoSkz2/s+dEbp/rvZ4ZZ94ZZp557+f+VJuF39LAt1k4Nj3NpqdY1aRRLVg+Rgtm/ZgWJGUsnfsBjVSJYfjT3p7evl4EcSFuu9vlRBDEhbjHo2N+EtDqhWGYUCh87733PNujGZ/M2Ltvb1pGaktbO1wemBt9dL/1wO51uZkRBiVBKSzRScpNslqLmqLVswjUezNmv3fu0vGVfnPy7iZYrbJmq6zVKm9vkrdbFR1W+f0mRXuj7HG7xjXY2mzkaESVRmm1QVxukVUYRcVGcYlRUmwQl+okZVppmV5SahQXGyQlxtFhEBd76PC/RwviPwzwHK+88H/BcwT2I4/5yRf6kQf/0Nle8uk/9L//4Ht74dN/8lv4r8WPaUEYCISNtkmaN2/eZ599Bv1kycnJZ8+ePXXqFEz+h07BmpqaCRMmBAcHJyYmRkVFPeNXiI6OTkhIiIiIiImJiYuL27Rp0/nz5x89etTb29vX1weLl8PMhB96S4ODgzKZTCaTWa3WhoaG5ubmhoYGT6Xz7u5ul8tls9lKSkpu3rx5+vTpoKCgvXv3BgQErFixYuXKlVBc+vn5rVu3bsOGDUFBQVFRURKJBLpn4U8dAICNtvgCAMAU/v/yD/1/DuBSg3V4YVEek8n05ptvvvHGG3v37o2Pj5dKpZ4a8E6Xq3dooH+oDwDcb9X8otwYk5xsENcYhNUGcW3vI3OLXqSTctLjI7dvDpg9c8r/+7+/f/ft13dsCThz+vjdO2lPHtiG+h87Bp/amvRPH7Zg7oFGs7JBx2mx8GxmTouZ22J5bpi5NjO3xcJrMXFshlEWVBFM8mdYMFvGSBNTUySUZAExjlf7PS0oIqUvnz+BSizHccw50kTUiaLO0Z8ZPl5B7SeB47gnDPv//J//8/e///3QoUMFBQWevZHL5R4advR1D7rtroHep0eDAnPSwo2qOqWoVCetMMlrG1RUo5ETfvOb9YFLe/pbdu9du2ePf3OTtK1ZYWuUtjbIWhvlbY2y9gZ5q1nyqE3tHrA16ZkqQYVBUqkTlJql5UZRkVFUZBAXGsTFelGJTlymF5caJUUGcbERDkmJXlQE53pRkU5wT8MvkLPuyJnZ/7XRMeP4leEnYkSRUS0oFovnzp176NAh6KuLi4s7ffr02bNnnzx5AmNqnU7niRMnpk2bduXKlaioKOjPg4iMjIyOjg4PD09ISAgPD4+JiQkJCVm5ciWVSkVHWxKbTCaLxdLW1tbU1GQdA3izqampsbGxo6OjtbX1/v37LS0tNputu7u7s7Ozo6MD3rTZbFar9eHDh11dXTabzWg0ikQiPp8Pw2rq6upgQTUCgcBisUQikV6vv3//fmdnp8lkamhoaG9vb25u7unpwUe7f8Fq657GXb9KIAiCoihsfelp9FVQUCCVSj2bA9i60+VyOZwuu8vVb+8DwO2zdMbdrEiLkqwVlFlktVphpU5c+6RF9bBF12JSsqhV4WHfHtq3Y6n3zD/98TcTP3xr59YA/1WLjx/eLeRShvoedrSYHENP+562NpsENhO7xcyxmTktLxjsFhPbZma3mJnNemqzjtykJkIWNEnK9KKin2bB/FARMWP5/A/ZDAIAeFdfn8PlcNiHUMSJISiCoPDfOH4SkCHa29urq6v1ej0y6iwYHBoYHBp0utxOFzo04AQ46Hn6cM8O/7zMGwYVAbKgWU4wK8mtNllJedp874mE+rzz549t2+ojEhDaW5RNFlGLRdLSIGm1iFstkhaT6GGr0tXf3KRjKPmlBlG5lldoFJUYhPeMontG4T29qEgvLtaKSnTiIoO4WC8uNoiLDeJivagIHnXCQp2wcKS/IDtPBlnwOS1IKwn1sCCpvhAA4HYjHi0yjlcHP2YRRRDEo4pkMtn8+fODgoJu3boVHh4eERFx8uTJ0NBQGAWEYZharZ4/f/6aNWsiIyPDwsKuX78eERFx/fp1z+TatWvwibdu3dqzZ8/OnTvb29uhjuzs7Dx16hQsnZCeng5TJlJTUz3HlJQUzyQjIyMtLQ2696D3MSYmJjU1NSMjA4bDJCUl5ebmepIFCwoKYHIFTEMsKioqKCiAWYNZWVlpaWmJiYlQ3ZaUlNhsNnQ0Jgj+8mGU7K81dx7+XQiCwFo5MKoNLgBP4BnMlnG73YP2YSfqGnYNAoD5+80vuhOtFpZrBCUmSaVFXtuso+ol9R1W+ZP7xlarpqPFIOSSbifdvHLpq3Vrlvzl//3f6ZPfnfLx20cPbh/svX+/1egcfmJrUDTo2FYDy2pgWo2s5hcMZrOB1WRkNhvpHi1oUdZ6LKKql9KCGUvmvAcrqA067AiGYBhiH+5HRxvCjWfNvww82VBweTgcDtjfFcNQp9tpd7gwHLgdOI7h3Y879+9al5sRYVQRlKJSraTcKKtpUFPVCorRzP3m6wOrV89a6P3xl6d2W5vEtgah1SKwWYQtZmGrWdhqFtpM/IetCkd/U5OOruQV64RlGk6BQVhoEBQYhPf0/AK9oFAnKtIIC7WiQr3wnl5QoBfe0wvv6QQF8OiZaHj5SnaujJElYyY/owVZZdegFiRXRG/fOG9UC0Jr0DgLvlr4Cb+gJ2teqVR6e3vDYuehoaGXL18+duxYVFQUgiDQHFpYWDh58uTjx4/HxMRcuXLl2vdx9erVyMjIixcvRkREREZGrlixIiwszMM3XV1dgYGBixYtio2NhVEtsbGx0K0YHx+fkJAQHx9/69at+Pj4pKSkqKgomF8Jja7Jycnx8fGxsbGRkZG3bt1KSkqCajUmJgbaYOPi4jyqNHYUcXFxMAz11q1bCQkJMFgmODgYdhKBrkFI8L9uIwk+WosOx3FkNDna7XZDOzMM/QUAwP0QgqFOzDXsGAAA8V89r/BOpEZUpuQWNiqqzbJKg6yqQUVpNvMadNz2ZnXXQ6vb/vTR/QaJgEojlpUXZUdfv7h80UyfJbMGe++3WbWos6e9WWPRMJv09CYdvUn/wkFr0tEbdbQmPa1ZT2nWkZtUP1ML3g0VEdN9F35MqS8DAEdwfGh4cHhoAMNcOIZBB8S4RfQlAekQ2khQFMUB7na7h4aHhh3DbgRDUby/dxjH8YHep/t3BeRn39QrahXCEp20wqwgWBQkm5mnUVMtJk542MnIG1+qZKQ2q9hq5tvMfJtJYDMLWsyCFrOg2ch70CJ39TU1aahKbrGOX6zm5OsFBTpuvo6fr+Xlafh3NfwCtaBAwy/Q8vK0vHwtL18Hj/x8LTdPy8vX8+/qBQVaXr6KlSNnZMgYL7CI0kpCiUWh1KqYHZvmE+vugXEt+KrixyqogdF8CRzHzWbzkiVLtmzZEhYWFhoaevXq1R07duTn54PR9MzIyMhp06adP38+JCQEFk2AR4jLly9fuXLl8uXLERERZ86cWbhwISw0B31RPT09+/bt8/X1hSe/PIrQn4PLYxAWFhYeHn7x4sWLFy9evnz5/PnzoaGh58+fh/8bEhJy5cqVkJCQsLCwsLCwixcvXr16NTQ09PPPP5fJZDiOe9IfYeU2/NerBcGLCP6Ze7BR/xkGAIJjTsQBAFi9cnZxXrRKUKoVlBhEpQZpmUlZ06ijWk2clgahrUHS0ax52mkZ6Gp1DT4c7Go1aoWNRmlNWe6mtUsHuloetOhdQ4/ut2jMKppVR7XqKE06qvXFg2LVUa1aSpOOZNWSmtREi7LWKKsyiEq1gnuan2JB0t1QISlj+WiXXSeCYDiGoW4cdwMc8uC4FnxZPLM28NF/KI5iOO5yYSiCAQQM9XXt2e5/NyfSpKlTicvMqtoGFdGiIFm0dJOBaTVzO2yS+zaJrYFvNXGazdxmM6/FxG0285qN3BYzr0nP7rBKMHuLSV6n4harOQVaboGBX6Bl39Fw72i4uWruHTU3T8W7q+bmaTh31Nw8DTdPw81Tc+7Ao5ozQo0abp6KnStjZr5QC9JKQsmlYZTKW3u3LSbU3AUAOJ1uz186jlcHP5EvCEUAAKCjo2PVqlVr166FLHLhwoWtW7fC2qxQMVy4cGHKlClffPEFJDwY2zkWkJOuX7++adOmbdu2NTY2wsIBKIo+efLk4MGDM2fO3LBhw+rVq31/KTwpFnDi4+Ozdu1aX1/fgwcPRkRE7N27d+nSpTD7ws/Pz8fHB86XL18O0zO8vLzodDpM5ITkB42B4NeuBV/uGoihOO7GMIfbAQDut3JOUV60WlCu5hdr+fdMsvIGTb1ZVa9XEpuM3Harot2qbGtStTUpHrTqB7tbMKQbsT+qLcs+uGfDg1bd4w6Ts/9+R7PSpCA3qsmNanKDemTy3CA1qMiNalKTltSkgSWyak3SkUKRL6kFx3TZRVEMRRGXRwvi+LgWfCn8wKLAMRxDMATFMLcbR9woQMFAz5Pjh7Zm3g5TiMr0iiqVoMSirDPLiSY1tUHPsBrZzSaOzcxpNnOaTexmE9tm4tiMbJuJ02xk20ycJj2zwypCh5tNslolp1DNuafl3DXw8jXMbA0rR8XOVrFylJxcBeeOkp2jYuWq2Dkqdq6Knatm5ypZOWp2roZzRzvKi8oRLZj4DAsyS6+yK64JiLFVBVf3bF1Ep5YBABwOFxi3iL56+LHoGGgOhR3m+vv7t2zZsmTJkrNnz4aEhHz55ZeBgYGwch20ap49e3bWrCy9h3wAACAASURBVFnBwcEXL168cOHCuXPnzo/Bt99+GxIScvHixfPnz2/duvX27dsoinr6NvT09Fy9etXf33/Xrl179+7d84uwe/dueNy5c+eWLVu2bdsWFBR05MgRX1/fHTt2REREBAYGrlix4siRI7t27dq+ffvu3bv37t27d+/enTt3whfdsGGDTCbzNBTER5sLgl8vC74MRtN5MAwABMedbhcAwG/VvOK8GCW/zCitaJBXaIRFFjWh2UBrNDBaGwVtTbKWRmlnq+Zpp/G+Td1sFrc2ynofNxjVnLrK3I5m5aN2HeZ83GwRG6R1DUqiRVFvURIbXjzqLQpig7K+QV3foKpvUNaZFTVG2c+xiJIyfEa1oAtFx2rBcYvoP4JntKDbjaMIBlB8qK9r3861hfkxakmlXlGll1WqBeUWBdFmYDXoaM16ps3IajGym40sq4FpNbCajSzoFbYamM1GVqOO3m4VoINWg7RGwSpQsvI0rDsGzh01I0vDzFYzspXMLAUrW87KUbCylcwsJStLycpWsbJVrGwlM0vFylazczTsHA0nV83OUTCzFPR0GT3peS1IKbzErY0mFF3fuXkBub4QAIAgKOT2f/ZHO47/VvwYC8LMAcgELpfr+PHjM2fOPHHixOXLlz/77LOdO3fq9XqoBQEAV65cmTVr1okTJ86fP//111/DrPazZ8/Cybfffnv69OkLFy5As2RRUVFnZye0OsIjDPh88uRJW1vb06dPu7q64PHlAR//+PHjJ0+ePH78+NGjR0+fPmUwGP7+/n5+fhcuXNi9e3dKSkpXV1dnZ+eDBw+ejuLx48dw0tnZCYvgQb8gGE2feMWNJPgIEeIYAG4ccyJuAIDfygXFd2JV/AoNv0TLK9SJS5t0xBYTo0HPMOkYNouotUFqM4s7baqHbdr7NtWjNm2HVfGkQ2/va3nQqnlgUwG0y2oS6SWEBmWdWU6AFbCeHxYloUFRZ1EQTMpas6LWIieY5NUGqadpQP5YFhSTkwX1cbzaSH71dV7FNXbpFdLdUCEp3cf7Izq5AgDgRFEUx9BxFvyvAA714bMsCAZ6nxzatzE/+6ZBSVAIipsN5GYdtUFBalSRrTqaVUdr1tNterrVQG/W05v1dHiPVU+36mhNBrpFS+loFKADTQZJlZxxV8HMVTOytKwcNT1LzcjQMDNUzCw5M1vByFEys1SsTAUzW8XMVo6MLCXzOzpUMrMUzCw5I0PGSIIxonzCLX71LW7lDVZ5OLsynFBwqa74xp6tiyikYgBAT08fhmFgfEG8Yvix6BhPazEcxzEMi4qKmjZt2p49ey5evAjz0Ds6OtDRittZWVnTpk3btm3bmTNnvv766zNnzsAJnH/99dfBwcHQeweDNktKSlgs1oMHDzxVWSHp/oPAR92Z8KbFYlm8eLG/v//ly5e3bt1aVlb2k0+H8T4edyA0CP93FrX7nwbIFAAHGA7cGO5wIwAAP9+FRXnxan6lRlDaIKtu1ZMtqjqdpLZRz3zQqnzYpuxsVjxu1z1s1XTaVJ02VYdV8bBV09ogfXpf32lT3W9Wugc72ptkBinBoiBYFASzYmTyzDDLa+HRKK8xyWvM0lqTvNogqTBJSvWiIjXvGS2YxCfG8mpu8moiuBXXOCVh5PzLImLGcu8JNBLUggiGoyjiwnAXdAcCML71/4XAcAzgAMMxFENQDHe5MARBAYb39zz+/OiOrNthKnE5h5J1/dIBBbekw8RpUpGtGopNR2vWUpu11GaPx1dDtuoojVqKVUtp1FNMauL9Bj4y0KgXV8jo+TJ6joKWoWFkq+npaka6mpmuZGQqGFlyZpaCmalkZCmYWcrRoWBkwqOcnqFgZCoYGXJGppyeLqUnSuhxAmIMvy5aUH2LW3GdVXaNXhJKLbvGrksK2rW8uiIHx/HhYccrvuV9NfFjWhDHcVgjFdZ+raqqmj59+ubNm8+ePbt58+ZTp0719/fjOA55QqFQLFiwwMfH57PPPjt79uzJkydPfR9Hjx4NDg7+4osvIiMjb9++DXstFRcXs9ns1tZWWF8VljJBR5MIX9Ts8weBjqb5oygKC5xjGGY0GpcsWeLv73/p0qXAwMA7d+7AV4FhL55nwYwoeB5Y49VzD/wcXuUfxogWxHF0xCLqBgCsXrmo+E6Cil+l4pXqBCUGcYWCV9ygobU1iji04uTYEBbpXs9D4+N2jdXI77DKnt7XPenQtlhErQ3i9iZpa4PY2d/S2iDSiquN0mqjtNogHZk8MwzSKnjUSSsN0iqjtMYoqzZKKoziMr2oSMXP1/ByRyuoJYvJSYL6OC7UguVXv9OCC0a1IAK/VDeOuQGOYRjAATa+9f9lwAGOY89rQXy4v3tH4KqM5CtPO6U8es6Xx9ce2+PDrM16bBW06eiN8jqbhmrVUpvU5GYttUlLaVCTGjVkq47aqCY3asgWFfF+Aw/pt+hElVL6HSk1W05NV9MzVNRUFS1NSU+V09Jl9AwpI11Gz1DQ0pT0NAU9TUlPU9LTFLRUJT1NQU2FExklRUlPU9JTZcwkMS12RAtWRfMqb9KLw0gFF2T05OKsi/6+U+mUUgCAy/WqG35eTfwgC8Jy0oODgx61p1AoFi9evGbNms8//3zz5s3nz5+HcTGwtPnQ0NDevXtnz569devWL7744tSpU8HBwcHBwSdPngwODj516tSXX3555syZU6dOwXppoaGhCQkJsO1RdnY2nU63Wq2eouPomJZJL8mI6GgvbEiEUFmaTKZ58+b5+Ph8++23O3fuzMnJgc5OGOrt4T9IvQAAfDRlHorCX3dozEsCBwCGC2A4cGK4A4FacFFJbryGV6PnlzdIqxvltQ0KYkeTmEkpXLPKa+7sj9av966qzOx6ZHjcqW1vlLRbxG1m0ZNWdVe7tqNJajMJUEdno5GjFJYbJBV6cYVeUmF44ZB+NzFKK43SKrO0yiwpN0nKDOIiNe/OWC0oIqcI6+IFNVGC6hvcimvM0iv1BZf55LTl3hNolHIAgANFEBxHMATDURyMasF/7uf7vxb4KA0iGIZjOOLCMDcKEGSw9/GhfZuL8xM4lAKTitRm4SZHndkRMC8vJdSqpXa1iPXSGpOc0GKgW7UUs6K+2UBr1tMNstomDaXFyDAr6jssfKSvUS+sEFNzpNRMOSVNSUuTk1MU5NtySoqMkiqlpEmo6RJKupSaJqGmS6ipUuptOTVFRkmU05K07DQZNVFCitey0uTUJBUjVUJNlNGT+XVxPEKigJBELrwhIKYxa5Jirx07vHfV118GPX3a4XK5h4bs4yz4CuIHWdDhcEBVBJUTjuNdXV27du3y8vLatWvXjh07bt68Cd1m/f39sA1VWVnZ7Nmzvb29Dx48CAuEfvbZZ8ePH4cFPE+ePHn8+PHjx4+fOnXq2LFj+/fvP3r06Llz52JiYnJycmAHJTKZbDKZoMSEJNTX1+dpWDE2XQH8aPFWfLSSutFoXLhw4YoVK4KDg7ds2ZKeng4AgDz3/Bl+/IT/wIf8vxsjRIHjKA6GMXzI7QYArPFZWJaToOVUmQSVJkGFUVhllNY+apPn50b7+HzS0CI5ffHgynVeTc1iW5Oo2cDpblU/bpQ9MIvum4QPrLI2i8gx1NbcwFcLS02SMqOkzCgpM/3gKDVJykziMpOk3CQpN0lKTeISs6TUKCrScPNGWTBDTE0VUm6LCIniylvCqkh25VV6WWht4UUuJWXZwvdo5BIAgBN1uQCw45gLwKLauIfjx/FzAYUgjuEogmMo7nY5UQQBqGOgp/P4wR0ZyddtJiGpMvv65ZOtJiGTkLtz/YLj+1aRK1OetkuMcoJJUaeXVlt1VIOstllPs+qojRqyWVmnF9e2GXlYn1XHLxcQM6WUdCn5toKcrCQnyylJoyyYLiFniCnZYkq2mJwhpqaJaSkSWqKYGiejxYlJ0TJqjJqZqKDEySlxorpYJTVNTErl16VSSmIEpBwluzw67Mt9O9Z8feoIoabC6bAP251Dww4MABwS+zheJfwgCw4MDECLKLRVwpaMOTk506dP37hx44oVK1JSUjwNtFAUdTgcvb29p0+fnj59Omz+cPLkyS+++AKy4JEjR2DE5okTJ06cOHH8+PEjR44cOXJk7969hw8f/uabb8LDw+Pi4jIzM+/evUsgEBQKBexzBCXpWC34jMPy2cjtUb6E2e4Gg2HBggXLly8PDg4ODAxMTU31RH7iz2UBgv8BdV3/B2LEIooBBIBhHBt2IQAAP58FJbnxOl6VgVtmFlR0Gpkafnm7VZSbE7ls2bQ6WkENq+A//v7vBjO30cx70Cy7bxbdNwgeWSSdJtGDJmmbWegYbLVauEpekV5UpBcV6kRw8oKhExXqRUVGYalBVGwUFRtFxQZhkVFUpBfc0/I8FtF0MfW2kHxbREiUVNwSVd7kVoTRy0MIRRd5lOTlC9+lk4sBAG7E5cZxO4Y7cQDdgti4FvylwEfDY1A3hmO42+VAUReOOoZ6H+7e5p+XGWs1iVikwq8+27bRz0vOqbDpGTFXT67zmXrm+CarlvqgiW+S1zeoyWpBpUlR36CmGGV1FhXZJCe2Gbhor1XLLxcS08XkVCkxWUZOUBAT5KR4KSlRRkqWkm6LSGliUoaInC4ip4nJKSJKoogSJ6bEisi32NURQlK0hBonIETr2Zky8m0xMVVMyZJS72r5FXkpYfu2rTxxaFtlyZ2+nkcAgOFhe1//kMOFDo3nC76S+DGLKJSDOI4/fPgwKiqKxWLV1tZOmDBh3rx569evp1KpkEgwDBsaGoKVtywWy759+6ZMmbJkyZIVK1Zs3Lhx//79x48fP3bs2IEDBw4fPnzs2LGgoKBDhw6dOHHi6NGjR44cOXDgwN69ew8ePPjVV19dv349ISEhISGhoKCgpKREKBQ+ffoUG+3wMNZA6rFhPhO34mEv+L8Gg2H+/PlLly797LPPNmzYcPv2bQDAuKnzZwGHHxSOIzg+5NGCvguK78Tp+FVqVmGznNAorVZyim0WbluL9LMTW1evm/tVyKEZcz5Qaemd7apOq7RZy35oFj8wCttNgs5GSatJ4OhvsZo4cm6hTlioE97TCuHkBUMrvKcTFhqEJXphkUF4zyAs0gsKDcJ7ekGBhps/2lMiQ0xNFVFui+vixZWRwqpwXkUoo+xSXdF5PjnZx/s9GqUEAOBGEAQDDqgFMYADHANgPDjml2FUCuIIguEojricGOIGqGOw50HQnk1ZKTcEzIqHrUqLhpaVdGndiqn5qWHd7QoZu/TCqe0LPnn/xL6NOnHN/Qa+SU40yUmNaqpOTGjWMhpU1FY9B+mxaril/LpUETFFUh8vJcbK629JibckxFgJMV5MTBCSUkT1KWJisoiUKCbGi0hxQlKsmBLLqAxXc1IVzBR6xQ05I4NTE8+pTubWZyp5ZfUlyUE7Vu3avKyiNLO7qx0AgCF2l8sOAHAj+LAdcSMoAPh4vuCrhh+LEe3t7YV08uTJk2XLlq1aterKlStbt27dtm3bN998U11d3dzc/PDhw+7ubpgsAYmws7Pz9OnTXl5eM2bMmD9//ooVK1atWrV9+/agoKCjR49COoS6cM+ePfv37z9w4MD+/fthxt6+ffuCgoJCQ0OTk5PT0tLS0tLKy8thPsYz0g3688DzhU4wDIym/AMA9Hr93LlzlyxZcuzYsYCAgOTkZDAa+ANe7cjPl8dodAyGAmDHMbvbAQBY4zuv5E6MRlCuZhWYhKVmcdkjK0cnr9WqSGYT9/NTO1avn3evJKHFJm3Qsxs0zAcNkqdNivs6fptR0GER24w8R5+t0cCScQu1wkKt8J5GCCcvGBrhPa2wUC8o0gkK9QI4uacX3NPx72p5ed/LlKAkSwixoqqbouqr3MpLjPILdYXn+JQkH+/3GOQSAADqRlEcODHcjQMUH8mSGL/m/TKMhogCFMVxDHe7nSjqxlHHQM+DQ/s2ZSSHP2pTFeVFXQ893KgnM0mZO9fP37pmDo9yr6tdKaSVhJ095DXpr4d3rqwsiLMoKU0aulFG6rAIpMyyFj0H6bGo2cVcQoqgLkFUd0tcHyWtixTXR4nqIkX1UcL6aEF9nLAuVlx/S1QfLa6LgncK624JibHs6mgpLY1PTCEWRSmZBRpeGas+/4vj29etmpufHfv0caPb3gVwR3/vE7drGEURp9PlciMIig0NOcC4Fnz18IMsaLfboTsQ+vxCQ0MnTZp08ODBkJCQ8+fPp6WlZWVlQX9eTU0Nn8/XaDQNDQ0PHjyA+X82my0qKmrr1q0LFiz45JNP5s2bt3r16o0bN27ZsmX37t0HDhw4cODAzp07t23btnv3bsiCO3fu3LFjx65duwIDA7ds2XLu3LmUlJSkpKScnByr1fpMuOYPmSuf0YJ6vX7OnDkLFy48dOiQn59fQkICGMOC48v9ZeDRghiOOzDU4XYAAPx855bcuaXmFZvEZRZJqVFcqpOUtjexTTpKs1XU3CplcsvaO1X321VmLeNxq9KqYbVoOR0GfouO224WNOs59l6rRceQsQu0/AI1/66GX6D9gaHh39XyC3T8ezp+gY5foBPAyV2dIF/Du6Pm5ipYWZ4YUUndLVFVuKjmCq/qErPsQv2983xyks+C92l1RTiOYwiCYjiC4iismza6rQLPNXX7J3/o/xvgWRUIimEY5nI5UNSNIfbBvof7dgZkpkYYNXSdvO74wZV7ts3ls3LbLZzYq6eXeL179dtDUlZpk4ZhVlCjrwSvXjTZe8bfrp07UpwdpRbUaEWEFi0L6TErWYWc2kReXRy/NlJQe11cGy4khAvqrgsIEXzCTV7dTQEhUlR7U0y4ISLcFBJuCgmRvNpoISmZU5NALLnFIWUpuGVVBXHhFz9bs3JuxLVzbS1GAFwA2BFkwO0eQhAH4nZhGOZ2I0+edHV39yKvfED4q4kfZEGYHQGDPwEAQqFw6tSpM2fOXLt27YEDB2AFmWvXrt24ceP69esxMTEpKSklJSWlpaU1NTUymayjo8PhcDx69Kiuru7ChQsbN26cM2cOpEM/P7+NGzdu3rx5165d+/fv37Nnz/bt23fs2AGlYVBQ0MGDBzdv3hwYGBgUFAQr0RQVFcHATmy0kgvUheBFFyz4GMiCOp1u9uzZCxYsCAoKWrVqVXx8PHzA+EJ/eeBjFLYDdTuRYQDAmhWzi/Oi1YISLb9QL7xn09bo5eUNOpJZTzXqGdZmQXuHXK+na1Vkm4V3v0lk07NadOw2A9emY7WZeE061nBPg0VPlTJy1ZxcFSdXxclV/8BQsXLUnFwtr0DDzdfy8rTcfC03X8O7o+Xf0fLzNLxcJTtDSk8TUVJElCQxIVpcfU1YFcqpuMAqv1BXcF5ESfVb+IGUS3S53YjThWMAQUZsAB7b1/h6+AXAAQYwgAPcjSI4jrvdTgRx4ahjsO/hvl3r83LiJIIqqbC00USOj/osYNWEhBunetq1ZgXtwNYV2wO8L58JIhTfbjcLu9rU9aXpJ/avXzzr/Zykqw0qmk3HdHcbFOwCTm0ClxDDq4ng114T1V7h11zh117l1YZxCde4hAhe9VVRdbi4OlxYHS6ovcmrjuTWxpFLoji1qUpuGbkq8+qFEwd3+X9z6lBnZzMAAADM4Rzs6X2CoM5h+8DQUL/T6YBR5XCT7XA4x1nwFcSPxYjCroHQAzc4OHjkyJEpU6asXr168+bNAQEBmzdvXr9+fVBQUHBw8FdffXXu3LmQkJAbN27Ajg1paWl5eXnV1dVGo/HRo0d8Pj8tLS04ONjb23vixImzZs1atmyZv7//+vXrN2/eDClwx44dW7du3bFjx5YtW/bs2bNr165NmzZBn+KlS5f6+/ufSePDXlTb7Hkt6OXlNX/+/P379/v6+sbFxYExLDi+3F8G2OiuH8VxF4Y43HYAgJ/vnKL8SCW/2CApMUqLFdy8Bk1tg47YbuVZDHSZuMZmE95vk5l19CYjSy+tbzVy2k08m47ZomfZjJwmPWO4p6FBR5XQc1XsXCU7R8nOVf3AULJyVOxcNSdPxb6j5uSq2XdU3BwVN0fFyVFzc1ScbAUrE2pBETVRQooRVl2V1V8T1V+llZ6jlIUxquPmTv1b9JVzAACAA8egE4yGQOM48Cwk6GweXxgvDXxUC2IIhiAo4nTaMQxBXMN93Q8+O7I7I/WGTkVTSKrEvIJmC5lCSDi2d+XezUsLM28OPjKSKzIPbvfdsmZu0LYVyZFn1YJaZ3dji4Fn1bElzNJmLc3dbVSy7zKrYjm1Ufza69zqUH5NiLj+Grc6RFB3jUu4yqwKkxCjBNXhvLIrkrooduVNPiGBVZMoJOdIWMUx4V/u2Lj869OHKfVVALgAQB1ulxtDUIDiALhQN4qPRBXA65vb7Xa5PJvscUfJq4Ufi46Bfr6+vj5IPyUlJZMmTVq4cGFAQABkrMDAwI0bN27atGnTpk2BgYE7d+48ePAgTI2/fPnyjRs3bt68mZycHBoaGh0d3d7ePjAwIJFIoqOj161b9+mnn06bNm3mzJlQHa5fv37btm379+/39/ffvHnztm3bduzYERgYuH379o0bNwYFBd2/fx9esDyRMmNNWB54rmhjWXDu3Ll79uzx8fGJjY0F437Bnwl8xCiKYQCgOOZy2wEAq1fNLs6PVgpK9OISs7Jcyc+36upsZppRRTTrGA1GpklPM+tpJg2lxcJpM3Mb1RSrhtaiZzbrGM16ZoOO6ui1NGjIYnq2kp2rYOUo2LnKF42xXKhkZSuZuUpWtpKdpWLnKNlZcma6gpUhZ2bIGLcltCQxNVFCiuGWh3ErQznVV0jFFyhl1yT07GVzJr/22muHdu/Vq3QAgIGBgf7+Ptg2yxPe7CnXAMZZ8CWAj2ZKYDiG4giKIQjqBgBzuoZdTkfIxa9OnzzQbBHLhFUSXqFKWqpTVopZhTFXg9f5fHJi/1qDtH7wkZ5cnnb120OHdqwIWP5J0LYVide/UvKq9OK6JjUZ7TUoWHm08ihOTSS/5rqAcFVKDGeUnqMUnRWTb3BqrtKrwjjV16WkWwpKAqX4mqAuiVObwq3LKsmJDFy74ODu9fWEsp6u+wAAu73f7rK7AXBhmBtgLhx3A+ACODr6NY/W0MMAgPeNf/uvFn6sp8TQ0BAsJwZdgz09PadOnfrb3/42b968LVu2BAQE7N69OyAgYMuWLZs3b964ceP69evXrVu3du3agICA7du3b9++/eTJk9u3b3/jjTfOnj3b19fncex1dHRUVlZ+9dVXfn5+EydOnDlz5ty5c+fNm7dt27atW7du3LgxMDAwMDBw/fr1gYGBy5cv37t3b1dX1/MZ9OAHYkQ90TE6nW7WrFmzZ8/etWvXsmXLIAtCHh1rVh3HjwODCYM4jmGYG3ECAPxWzivKi9bIKhn1KVxKaqOmtlFLEDDz2xq5bU0inZLYbGYbFESDgthi5li1dKuW3qxjNOsYVi3dqmNYdDR7j8WiJoooGQpGppyeKWdkKl405IxMBT1TzsiUMTPljEw5I0POzJQzM2SMtFEKTFOwUqX0FDE1WUSJl5DjhXXRvJrrnNob1PKrVXcvCyh3ls+ffPHsmSkTJv71P95KT8vs7u4GAHR1dcGsG9hIa3Bw8FffQuS/FDisoIYgLifiwAGKoE6324lhCABYe5s1POzct2eOqqQUmbBSJatUSSv0SoJRVidmFId8tWvO1P88GRQg45S0GjkC6t3CzIgr3+w/sHVJXmqYRUls1BCRHp2clU2ruMGqvs6riWBXhNCLvpGSrouJN+ilIfSyMGb1dWblTWZ5FLc2QUhKp1cmleVEHtq5OjBgCaEyv6frvhsZRNzOnp7Hg44BN4a5cNyF424cRzGA4DiCAQz3mI4wHEfhAOPf/quHn6gdAwnD4XBAIjSZTH5+ftOmTfP29ob6z9/ff9OmTRs3boSuvsDAQA8jrl+/fsaMGb/5zW98fHwsFguCIFBWehaZy+UyGAzZ2dnHjx9funTpzJkzYTTp+vXrAwIC4ElgfM3hw4f7+/s9ORLQ4PlCLegReZAFtVrtzJkzZ82atX379sWLF9+6dQsAML7l/1nAv8sMwzEMd7khC84vvHNLLixTiYt3b/Y+dTTAIK983C7RK4iNOo5FQ7OZWC0GllVHtyjJakGVzcBsMbAaNNQmDbVRSzNrKMPdJrOyXkhKl9PTZfR0GT1d/qIho6fLqekyerqEkS6jp8sYaTJGuoyRJqXfljFS5cw0Kf22nJkipaeIqYliajyXEEMujuARYti10TX3Qmk1CQL6vXmffsilke+3dnx5+ps//vHfvL29WWw6iroddgeCIHa7vb+/HzaP9WyP/tmf+v90jOZb4gjicCLDGO52uIYGh/rdLieGIABgdvtw9I3Q44e36VU0Ea+MSbmjEJbrZTUaUaVKUMYl5147v99r8psHdywrzglv0lJbTQwJ655OWi3nFjWq69w9Khkzk1IewawM51RdY1eGsksu8KrD+LXXyUWXBIRoZlV0XeF1NiGVVpVCKE44+8Wudavm3c1MePrkPo7aXc7B4eG+7r6nfUN9bgxBcAzBMBTD4cAwHENxHMMBjmEYzJdBAPBkzYxfFl4t/JhfEIyaFmFlTkg8RCLR19d34sSJfn5+69at27JlC9R//v7+AQEBcA7jXxYvXvyv//qv8+bNUyqV8ITQngnr0UCWgvmI+fn5U6dOnTJlysqVKzdt2hQQEABtpGvXrg0MDJw5c+aXX34J6dPzRJgUP/Zq9Uykn4cFZ8yYMWPGjMDAwAULFkRGRoJRv+D4rv/lgeMjRIhhuNsF64guKMyPkwsr5Pxii6bu9DH/bQGz+JS7LWZ+e5NEJ64zygg2Ha3FyGgzs4xyglFOsGhIFi3ZrCFZNGSLsn74qc6sIAhIaTJahpSWIaVlyF40pLQMGTVDSsuQ0tOltDQph6QONwAAIABJREFUPV1KT5XSb0vpaVL6bSk9WUq/LaXfltASxbQEASVORs+QMbPJZZH02hghIzMn5WLk1VM+i2fLxCIAAI4Bo9G0bMXy1157bd/+vY2NjQAAu91ut9thEdrx7dFLAhsppYBhOILiDjdwujCnG3VhOA7r09mHBgDqLLhze8+21XxWRaOBJWQXSNgFelm1XlalEpaqhKUC+p3I0ENrln00/5P//PLY2rzUixJ2gZxzr0FV4+yWSxhppNIwevk1ZnkYtypMUHWVXhIiJEST7oXW373CIyTziJm1pSnnTu9ft3Ju7M1LPU/bAUBRt727u8vhdGAAd6AOJ4Y4cQTBx5ZgxHEUAyiGQyIEAMdwABAAUADQkT9uHK8SfixfEIwqQny0GguO4zabbeHChRMnTly7du3KlSt9fX3XrFmzevXqNWvWrFu3zt/f39fXd9GiRZMnT/7tb3/r7e3N5/NhjWyYhu8xQsKLDgCARCLNmTPnrbfe8vf337Bhg4+Pz5o1a1auXAlP5e/vP3ny5NDQUHy0w4PH8/cjWhDHcfj+NRrN9OnTp0+fvmnTprlz5968eROMakFP+Zj/Hz/dXwVwANsHAIABHMVcTjcAuN/KhQV5cWopgU7Kqi2Nedomyk66sGHFjLCzh5V8wmObrFVPb1AQtcLKJi3ZqqealfVGZb1ZQzJpiGY1ySyvG3qiNclr+MQUGTVVSk2VUlNlzw14v5SSKqGmimlpEmqqhJYmod0WU1MktBQxNVlMTZLQkiS0JDE1QUiJFVETaJW3qFUJXFIaqTI2+tqRbRvmHty34X6b1e10DQ7Yu3v6MRz0DPYmpSZ+9PFH77//fmJiItzw9fX1eUrIjt0kPbO7AuMcCQAAAPO0VcJcTqx/GOt3YnYMxzAcx1DgGHbjGO6y2wFqJ9YU7d+xJjriK6uJLuMWyHn31KISMSvPqiMq+IUKfqFJWU2sjDt11G/9yok5KecMsgqLutLRJRXTbxNLrlDLwphlVyiF56kF5wQ1N6mFV6hF1+XUzNq8iNAz+/ZsXx168VRHqwkA4BgecDrtTpcLw3EEw4dcTgfm7HcNDSJ2FHPjKIKjKI4iAMEAhuIICjAM4BjAoRZEx7XgK4sf8wtCyoHhAzB2AMdxhUIxf/78t99+e+3atatXr4a93X19fVevXu3n57d48eJp06a98cYbf/nLX44cOWI0GgEALpdreHjYY8mEgBSo1+uXL1/+3nvvrV+/fvny5cuXL/fz8/P19V22bJmfn9/SpUvXrFkzbdq0+Ph4+FyHwwHfxg9pQQ+3QS2oVqshC27cuHH27Nk3btwAo/bS8Svay8NTKwvDMLcLAQCs8vW+eydWLSWwKTnBR/0/27+qSUPRiOqO7wvYs8knJfLbFg21u0WiE1frpbVmNdGorjepiSY10aAgmNUks5o48EhtklXz6pKkpCQpOUlCSpI+NySjRzEpSUhOEpCShKQkESVJTE0WkhMEpHgxNUlCTxbTE0W0JBE1gVsfI+PkS9jFafHfBu1a/tmhtSx6OQA4gjiGh+wAAAwHvQPDDsQJAGjrbA0ODv7tb3+7dOlSOp3uqc/nWRIvnIxdNq/y4sEBBr3FKO5yYoMudMiNOVEMcbsxFAFOh9thd7ucLufwIAA4m0E8ezroyN5V9eVxjTqSiJUnZucLGDkyboFKWCRk5Gglpfcb6SpBoUZULGbmWlTlzm6xhJFSXxRKLrlCLb7MKrvKqYioyDjLqYyVkDIjzuw6unXJ1XNHuRwKAAAAt8M5jKKoG8GG7a4hh2vYhfTbh52Y2465h9xDKOoEqAtH3AB14SiCo24cdeMYAgAKjwCAcQn4yuIHWXCs7w1SILzZ2Njo6+v73nvvLVq0aMmSJRs3blyyZAkUcCtWrJg5c+bbb78dFBRUXl7+8OFDAADkLWgFhaLQ5XLBZrZWq9XPz++dd97x9vbevHkzPMPixYuXLVvm4+OzYsWKZcuWQRYsKCjwMOjYoJixlyHPhQkSIaRJrVY7bdq0yZMnr1mzxsvLKyIiAoz2DR6/kL0kcGj+giEEADhcDgCwdQFLSwqTucx7Fh1Zwim4dGbn1oA5pKqsngem1Piw4wfWb17jlZFwsbtDqVeQtHJCg56mkdbqFHVWE0MtrRZzihwDDTp5Nas6TkxMFNUniIiJYmKi8PtDREwQEhME9Qni+jg5KU5BTVBQE0TEGGZFBIdwS8HKEJKTGbVxfEoaj5LGJqVK2HnFeTFbNq7csz2gpqpgoL8TAKyv+1FfbzcAAG6QUAxHMGTIMQAAwDBMJpNt2LDhd7/7XXBwcEdHBxhTOxAA4ElRHc+jeA6jZnKAYcCN4ygAKIZj2KiZEUFQt9MNcMzlHAYAIO7B4oLMA7vWfR28V8qrNSipQnaJXk5QCkqlnLtiRo6MmaXk5mqF+SL67QZlkfOJQEhOJBZfo1dGUcqi64tuEktiBeQ7mXGXAlfPP/v5AQ69zu3oBQA4HcMY5kIQF4ZhCIpiGO5GMTf81nAMxTEMYCMJHRiKYwhAMYB+XwiOxIV6okPHv99XCz/IgmMBf/YwjgBBkMuXL3/00UeLFy+GZVn8/f2XLVu2aNEiPz+/Dz/8cNWqVWazGT4RMp/HUefpVuhyudra2g4dOvTmm28uXLjQz89v/vz5S5YsWbhwoa+vr4+Pj4+Pz9KlS5cuXbp8+fKpU6fW1taCl05s8LxbAIBWq506derEiRNXrlw5a9asa9euAQA8QRBg/Ir2EsAAgBc2FMP6HYMDwz0A4Ct8vO7lx2oVBEpNqpiRbzXQMpNDNvjNOX8m6GGbls+syEwO3b1l6TLvCelJl5vNHI28zqAiNZvZGlmNQVXf2sDufaqWcgtYNXGi+kRhXbyImCgiJgqICfz6RAExQUCMFxATBMQEPjGeX58gJsbKiFGi6nBh9XUFNU5BS5RSU3j1iTzibSE9h0XMkAnLa8qT92xffnD/lqrKiidPHgMAnC7nwED/8PDwGE/wdxkyfb190CDR29ubmpr60Ucfvf3223FxcXCTNDw83NPTAy35sFcljJf2WDKet8a/UvieIsY9xoIRFnlGRrvdLnizqdEScu7sxrUrk2PCaXVFXHqJWlSjEVdqhcUKdraUkSql35YyUszS/IFOlpyZXpF7uTIvvL4sgVB2OzftRoDv/IN7A+uqSu1DsDU3hrjdY19uLIF5vu6RNzby/ePjfDeOZ/BjWtADeBGBkg7DMIPBsGHDho8//vjTTz+dO3fu5MmTly1bNnfu3Pfff/+3v/3thQsX8NEwFrvdDnvwelJT4UmcTmdwcPCf/vSn+fPne3t7L1++HHbo9fHxWb169dKlSxcuXAi1Jqw4w+Vyx74l8CKT1DOOHE90zJQpUyZOnOjr6/vpp59evXoVjGvBnwn8u08eDLuc/UN9AIBFC6fmZN4waagSduGeTQu+Or6hUU/RyIi7tixbOn9iWUFio4Fl1tKrS5M2rZ0/Y/Jfz57elp91jUvPV0urNbJqraLmUYfYoiFwCAnCulhhXZywPk5UHyesh/NYYX2MsD52ZFIXIyHFyom3eJXXFOQEbnWUoD6BS0gild3ikjM4lFxSTdrJI5s2r19QVpRiazZCbnvy5AkAYHh4eHh4GIyYyr8LdoXWArvdDu0TAICmpqY9e/b87ne/mz59Op/PB6PmEOgvhE004W/BE6L1ajuV4S/HQ3eQcL4rwzm6ZDwXEby/tw/gqNM+LOIxT31+aMUSrwtfH6koTKLXZauF5Q2qWqOsXCO4K6SlaUQF7gENvTqBXB7Hp9zJS7967MC6dasW0MmVjzptAAAMdff19OA4Drc3YMwS/f5VYvQH/v3ggdF3jH93fO5B43h18LJa0COwoKVIKpV+8cUXU6dOnTp16vTp06dOnfr3v//9j3/845YtWwwGA47jMMsCXi/gTRhlAy9JV65c+etf/zp9+vRly5YtWLDAy8tr6dKlXl5ekydPfuutt7y8vObNmwfZcdq0abNmzdLr9eDnaEF8THTMpEmTJkyYAE8VGhoKAIBFAMZZ8OUxdjM0ONQPcHz92qUlBQkSbrlKWGmU13xx2G/3xjnVRXGdNgmxMsvPZ/r2Td45qVcVoponHUqluPark1uXeb/vu2RCdmpIg56iEJU4hi1yYTGtIkpYF8uvvcUnRAsI0QLCLUFttIAQJSBECghRAkIUnxAprIvkVEaI62MbRHnke1c51XF8Ygq7Lk3KLiRWpty4Erxq+YwrF4OfPrbi2CAA7u7u7s77nR4pAJciGFk/OA4AhmM4GFmKdru9r6/PsytisVgzZ8587bXXjhw5Ant7YRjW1dXlKTICqXGsOeEVhocIRxQW/h3BjB7x7zZRKIoODPRjGOp2O9zOgcH+x4kxYf6+c44dWH/zysmclNDqwhgx855JWdtiooFhq1JQnp0UcvxAwK5An5S4MMTdD4ATwxwo6nry5NHjh4++L/HxMS/sGaMv7+Hn597pOMbxUizoccXBkBloKert7SWRSMHBwZ988snf/va3GTNmZGRkdHZ2AgBgNA0Y46UDAMBrBwAgPz//9ddfnzBhgre396effrpw4UJvb29vb+833nhj5syZixcvnjx58pw5c6A6nDRp0qJFi1pbW8FPMdb3t4S4Jzrm448//uCDDxYvXjxp0qSQkBAwrgV/JvDRBYAgqN3udDqHcQB8l86+lxNnVjPE7GIlv7SzkZWTdG7jqqlfHl8vYhQ+aZcnRn2zbuXMXZsXh186Qq/L7n2o7nukJtek1lcmqiUVcn7JUJ9RLS2nld/g1dzk1dzg1dzg1tzg1dzkV9/g1Vzn11zn11wXwGNVuLAumlsTRyqOlNKzaVWJIno+rTYr5JuDu7as+Cp4f6vVAACwD/YMDfTYhwfhVw93XbDmwzPxwJ6vvq+vD9pLXS4XLB8PH3nt2rUPPvjgzTffzMzMHBgYAKMFBT0h0+BVF4I/A571M2y3Dw0P9/b2Dg8PAuB2OPphfgKNXHH04I7Na5cc3rP2qxO7Th3bmRh9kUcvDw8J3r/dLzr83MM2MwD4QP/j4aHe/v7uwcEBFMMwHId2pvHKF+P4B/GzWRDDsKdPn0KrJgCgsrLy7bff/vDDD1euXAkrrvX393vCQWGgAbxwwCVbV1f3+uuvf/DBB7Dv0uzZs5cvX75w4cI333zzjTfe8Pf3X7JkyYQJE+bMmTN79uwlS5Z8/PHHa9asefr0KfgpxvK8ybEWUZVK9dFHH7377rve3t4fffTRpUuXAACwYsg4C748PHsLl9PldroBjh/ctSk64luzkiVmlxqkNVpxuVFeJWUXfHNiw7oVExNunn7YIm1r4Mff/GrftqUb/D7ds2VxxOXDPHpeh5VjUNaqJRWDT9UKwT1a+XVuTQSnJpxbHcGpieBWR/CqIrjV4bzqcG51BL86nF8Vwa+6xq2+ySbcplYnM+rTebS7MddOH9jp91Xwfjq5EgAnijgGB/rdCIphI3Q1NDQErfdOpxMaSMdKNzgZGBgYGhqCgccOh6O/vx+WUoOPb2xsPHz48GuvvbZ06VImkwmfMjg4COuuDQ0N4WMw9vz4cwCv/DKDv02XG8EBcKFI/9Cgy+UYGhro6+t2OQdGFRnWaFRmpsV/8+XnZ788fmDX5nNfnTDqlADgLnu/Y7ivr7/H7hwCAPQPDvQPDaHYd+F7/9Q/bhz/6/EzLKIQ0DsC/SUIghQXF//Hf/zHu+++6+/v39LSAvPrPQnynppn0I4qEAgmTpz4+uuve3t7e3l5TZs2bcGCBZ9++ukHH3zw2muvHT9+PCEh4Y033nj//fcXLlw4Y8aMuXPnTpw4cdOmTbCvxS/QgpAF33nnnQULFnz44YcXL14EAHjstD95znFAjLhbMBx34ZgDwRFXe0vzmZMHr3z7WatFqBJUCOl3zIoanbjcqiXmp148vm+lv8+UmIgvHrZIbGZ2ZVHMhTN7ju73XePz8Y2wwzpFtUJQPNirVQmLqKXXONXhnOoIbnUEuzqcUxXOqwrnVkeMjJoIdtU1fvV1aul1YkWSXFCVEnt+Z+Dy4OM7uCwCNHr19nS53G4UAw4HgqIwncYJC8EDADyRLGDMdz0iTYaH7XY7rBcPq+Z6UoNgpSQAAJVKnT9//m9+8xtP2g/kyx+yiI4vp+fhMYk63Ui/3e5AEIfLaXc4EBR1OB0Iijgd9qGBAcfQkOcp/V1PGi0mOO/r7UUxxO60Dw8P2Z2OYceww+VyYdiwy213uADc+P5z/rJx/Erw81gQ2o48iRMAgIKCgj//+c/vvvvu2rVrYaA5fIDHKGq32x8/fgwA0Gg0U6dO/fd///fZs2d7eXl5eXnNmjVr1qxZ06ZNgzvuvr6+27dv/9u//dvkyZO9vLymTJkyd+7ct95669ixY1BHvqQW9IS2AwDUavWECRPefvvtBQsWvP/+++fOnQPf14Ljdq2XAQY/KxRzDrrdw24cRQEADztt10JOXfz6oEXDUIuqdJJKIfWOSVrdpKqTsu6lxZ3bu2XRktlvR1w82KyntZqZKmFpXWkcjXBbIShW8IucAyYp5w6xKIRfG86qDKWVhnBrrwsIN5llV1iV4czK6/Sya5TSazxCDLUkXEDJKMmP2bp+6eEDG+uq8gcGHgEAEMQBgw8xDENQHMEBiuMoCt/sSF0FT+bo81oQjNrGPfeMLSrkWeEDAwO3b9/+y1/+8tZbb+Xk5MDTwuUNJ/BZ0OwBRr0AMOhm3OQARrPwYJqNE0XdGIYDgOC4C0XHZqoDHCBuxO1yOR1OKA4xDEcRBEUxdPRXiuAAPgsBwIVhyGh92/Hf8Dj+Efw8i+jzVVcKCgpef/31d999d/Xq1Q8ePICWT2iJQlF0YGAAXjWePHmycuXKP/3pTzNnzpw+ffqnn376ySefTJw4cfbs2a+99pqXl5dUKgUAnDt37g9/+MOkSZOmT58OvYNvvvnm2bNnX6au1Qu1oFqt/vDDD//zP/9z/vz577777rfffgvGLaK/AJ5tkAvDXDiOYsN9PQBgbntXyLmTXxzbohbX6aV1OnG1mFZgFFfqRJVaUbWCV1ZbHLtzw4JPJrxx+qh/SW4Ek5DeoCaYlDVS9t3BJ0oV7y65OIRRdpFdGcqpvkovu0ItucyoCGdU3WRW36KURTKq46nlMZSKmBNBq32XetVVFwz0PoAlHwcHegYG+gAAKIZhAEcBQHDcjX93zX2Zv2nsZOxK8NwDd3IAgPb29gMHDvzhD39YtGgRh8OBd9rt9u7ubmgghVlAY+0f8ObY9NZXE55mRQiOwwR1BGYXAphmOFLKGpLZSP4eiqMjHW8BNpqx6sZxBODIyBc9cirM8xLjGMcvxc/WgmM7/AEA7t279/rrr//tb39btWrV/fv3AQDQEuXJO+7r65PL5RcvXvzzn//8zjvvTJo0adKkSVOmTPnoo48mT578L//yLxMmTCCRSACAwcHBEydO/P73v//www9hWdFPP/30zTffhKnuL+8AGKsAVCoVDHOYM2fOO++8c/bsWTCmp8Qv+8heQeAjSfO424G67AjAccfgoGOoH0GHAABZGTG7tvmWFiSYlTS9uJ5HyteLaxWcYjG9oFFFNkqreaTsS6e3es94e4Pv5Mz4Myp+kV5SOvRYLmFkV+V8Lai5KqgNJxeep5Zc5tREMqqiau5dI5ZHM+vT7mZeufztvsB1c1MTr8Iyj07HQE/PE8RtRxDXSOrC6DUUxXEEjHSPx0ZzyF4oAZ/ZMHke88w9nvIL3d3dcDETicTp06f//ve///zzzx88eAAAwDAMZhMODQ3BWrtj9aXH9v4qsyA+ahRFAXDjAMEBCgCGA8wTrQnZDsdHBhg54gDHRop24/DBKA4wHKA4QABAcIB+P95zHOP4ZfgZWfPwx/y8Fvzzn//81ltvrVixwmMRhRcFFEV7e3svX768cOHC5cuXr1ixYvr/x951x0dRrt2lE2rooCKiIqJyBQsqIiogRUFARBEQrlRRVMoV6UhRQJAm0qRDKCGB0EJJSCCQ3nuyuynbe53e3vf748kOayjyKdyLMof5DbOzM7Mzk5k587TzPPdcx44dgQW7dOnSuHHjli1bnjp1CjxINE2PHDmyYcOGjz/+eJcuXZ555plnn322ZcuW27ZtuxO77aa2YGZm5mOPPdayZUsQtfnPf/6DMZbTJf5wmwoA8JDCGHOsyJCCJGBRQjzPMQzp89sQ5k9FhQ0f/NY3Uz6JO33AWJycdDEsLe5QbmJESuyBhOid2VePlmadLkw7HhO1+XzkhuTY3Wnx+0hbRnbCnvNhC2PC5sQcmn8pYun5w0tOHlxy9uiqqxd2hh9YtWDO+Emfvb9o4ZcOuwZjLPG0wLGiwCFJZBka8l9Q0CNSwlWPRflv+5eP+jqDkiQJr3ckSf7888+PP/54y5Yt9+zZAxFEn88Hckjya6LMo3fixvjHQy7NA8kWFDD5oLuRVKVKCq2Org9AgVXf/m55JAamcaA6QoGCP42/yoIHDx4MDQ1t27btm2++CfVVEBQE4bR169Y1adKkcePG/fr1e+utt/71r389++yzTzzxROfOnRs1ahQSEvLrr79CBEUQBJ/P9/bbbzds2LBTp05PP/00VLu3bNny2LFj+I5tQfmhAyyYkZHx2GOPNWvWrGvXrm3atJk9ezb+vS34gD+e7hBwthBCklAlHEkxPLzjswLr8TowFuy2ig1rl/37o/d+WjIrP/lsbuLxpIt7Uy8d0OZEJ13cc+3CrsK0E1fP70y8uDMn8XDW1UOUPSs9btfpvd/FHpp7+dj3cceWnzu07GLET1fP/zZnxseffPjWooXTs3OvYYwZgWQ5hucFjDBLMzRJYYQ5jqVpCkOXOyxBgwARV0UFpbvxZES/r5GF7FMIUavV6s8//7xmzZrvvfdeVlYWDuTa4MC1J3vdqxma1Sb++k7e/4AYX8CWEwLmnISwKGFRqjIL/2AA0TOERRxYJWANwsYVKPjzuAss2KxZs1atWr3xxhs6nQ5jDJKhCKHKysoXX3yxbt26L7zwAshTdenSpW3bth06dAgNDa1bt+6iRYu8Xi8KCIQWFBS8+OKL9evXf/LJJ5988slOnTo98cQTbdu2jYuLw0ElEH+4q8G2YHp6eocOHZo2bfrMM8+0bt165syZOKgr0wPyGPrrgHpzQRApksUYc4JEsALJ8jQv+Ria5Vma9rOMD2PhWkL89PEfjxvWJ+rAmuL0qNRL+1Ni9mUlHEq/vD8zISzl0r7cpMNp8fuuRP/qMSZmXN59es9/Yg7OObNzdsyhxcnRv2xZPW3Am08unjvpWsIpUfJjLBEcQ0uij+VEXuRYkWd5SZR4jmdpWhBYhEUJ8QhzgYFFWAg4ye6OLQiOChQoloeyQlggMjKye/fuoaGhX3zxBVz8csUhaAdWq965qXv2QUDAaIM2fjzGAsJCwD/KS5iTMC9dn5DH1z8iLEhVy19ftyrmqNiCCv4a7o4t2LJly169ekFtOySRC4KQkJDwyCOPhISEPProox07dnzssceee+65hx56qFWrViqVavLkyX6/H54XEFDJy8vr2LFjaGjoE0880aFDh44dO3bs2PHhhx9OT0/Hd2wLyrsqs+Cjjz7apEmTLl26tGrVasaMGfhmvQkV3B5IQghhSZJEQRIERPMijxDFCX6G50XR7fMyLM1zlN/nwgJH+VxnI/aNH/HWwDe6bF07L/HiofTLx/JTTmZcCU+M2Zdx5VBS7N7E2F2UM/va+e1nDiyJPboiLmLV7nVfjXrvX9M+65+RfEoSXRjzHM/4aMrHC6SIKF6gKVYUJFGURF4UOEHkeREsU8RhzGPMY8xizGDM362cieBrKTgcDgAHqd/vX7NmTYMGDTp06BAWFiZfolBfH3ynBPPfA2ULYoyDbMEq5gMilDCPMSdhXqxiweqDGPgKYx5hLohEYawkxyi4C7gLLNioUaOWLVv27NkTsmPkBNHIyMhmzZo1adKkXbt2HTt27NChw6OPPtqpU6fWrVsPGzbMYrFA+FCSJPA4xcbGtm7dGmRlOnTo0KFDhzZt2nTp0kWr1eI/y4JZWVnAgk8++WSLFi2++OILHGSt3uE2FcgnqSoxvSp5oUq2Q0KSJIGTSuI5BmOMkeR3uXKSEyeMGtmr+3Pzvv785OHdsacOJ8ZGpsQfL82NS718zO8qSkk4dnj/+sP7No0f896wIb2jT4exrAtjFmNeEBiEoA2qVJUrGMj7REjWycJyZ7iA60yEpMK7ZQvi36fMyDMhCwaAMdZoNB9//HGDBg0GDBiQl5eHA9cYwzDQlULOmoEXxAfv2kOBoSrlM5DXIntH72SAsK8cBUZKO0AFdwV3gQUbNmzYsmXLV199FVgQUgNomj579uyjjz4aGhrapk2bRx999LHHHuvQoUPNmjU/++wzSKuDJ4UkSRBQiYyMBLPy0UcffeSRRx599NGWLVu+9NJLkHTzV1iwcePGjz/+eLNmzaZNm4YxlvVE5OQFBX8EOKtB5ov8/3UTB0PdliRJCGHGw4g+BmPsMlpXL1065J2+nwx/b9mCWauWfrv2xzmRh3+16LJPHNsxa+aUN9/uuW37Zl5keIFlOcrlskmSACmpVfSLrie93Myi+i+dAhzEiDzPy1X5cvzv9OnT3bt3V6lU8+fPd7vdGGNwnwLtgXV4q+7QChQo+F/hr7JgWFhYw4YNW7Ro8corrwBdgS2IENJoNE899RQIZDdv3hx8oc2bNz948CDGmCAI2A5IOCKEfvvtt5CQkFatWrVu3RrCh02bNu3bt68sn/YnWDAzM7N9+/aNGjUCX+vnn3+OA3X9ysPozoGuk1CACfD103d9jhSYLSDMIZ5iGS8FHUwlji7ITt28fuWET0f8e+zwr6aNnvnVp5P//cHy5fPcHhvGgs/v4nnO5bFxHIWQWFX+gKtaBgQeEMZpAAAgAElEQVS2e52HqkxChILsjBuHv3jUNy+okKN9kCwD9AZvchRFrVy5sl27ds8880xYWBjGmOM40BSElJkHNT/55n+g67USfzQE2fc3/okfnNOo4J7gLtiCDRo0CA0NDTbaOI4DX9A333zToEGDVq1adejQ4ZFHHlGpVC+//DJ035VbD5IkCRMrV66sVatWy5YtW7Zs2aZNm8ceeywkJGTUqFEQPvxzLJiRkfHII480bNgQ/KJTp06Vf1o+oj997hRUBwoUeSHE0izlpyROlDiBIkiBpbDEVy0lUknXLh4+tKuyohBjzPEUxiIv0B6vAyGeFxhJEqq8rUgKbPR+ed7BdQieDBCOwYE3PzD7MMZqtfrDDz9UqVTDhw/PzMzEGMtdxqB8SHZF/G+PRYECBfgO+wvKd76sHSP7Eg8ePBgSEtK4cePu3btDpQTQj9VqFQShrKxswIABnTt3bt26dd26dbt3737+/HmMMcuyTqcTvEOQVocxnjVrVq1atZo3b96qVSvQJq1Vq9ZXX30ly6f9CRZMT09/+OGH69ev//DDDzdu3HjKlCk4qNWOYgvedYB3kOcFluFYmmUYhud4gecp0s/zDM8zPp+bIDwQ1OE4kuUIj9fhJzyixIoSK4ociG0hJGKM7wfaqwYpoM8HF5goiiAcAwXykOoFd8fFixefffbZpk2bzp8/H3qt0DRNEARN08F+0WqG5k3n/E+PWIGCfzj+2BZEQUluwUXBYBECCzZq1Oj555/X6XSyvciyLBQ1l5eXr1+/fuzYsd9++21ubi7G2Ofzye0moFIQuHD06NG1a9du3rx569atQ0NDwXZcunQpUNqfZsGHHnqoXr16Dz30UKNGjSZPnowDatpYeb7cdSCMqnowCSzHSgiJksSyHEXTvCBIksQJVaLVLreboiiC8NGMn+cZivI5nBZB4CRJYFkaIYgLyjKTYiAb4i74Of/qIQbeCOU4H7g6RVEkCAKsQ7kfL0EQK1eubNiwYZs2baKiojDGBEHI7383kpw8rfCfAgX/NdzOFqxW5yQniwPgTj58+HBISEj9+vW7desmxwWh7xIwHA60GwSTzmazQd8J8ILK6XNer3fkyJF16tRp1qxZixYtQkNDoaBi7dq18NN3Xi+Ig1gwLS2tXbt2devWbdeuXYMGDSZNmoQxltuLK7bgXUcVSSAJ/mAikkRJEiWJ4RiG5URJomhGEEWKZquUQSSBov2CwEgSz/MsECHITAakIkE8+X7JiZetNNkcBB1ROQUGJiRJkkVE1Wr1pEmTGjZs2Ldv36KiqlYJwZL0cn4NDnKTyhPKJapAwT3FLVkQuAruZLilaZoGPpNDehjjjRs31qpV66GHHho6dGhpaSmQX7DLFEhRFrsKftsFwEOE5/mvvvqqbt26DRs2bNy4cfv27evVq1e3bt3w8HBRFOXV//B4qrFgamrqQw89VKdOnbZt2zZo0GDixIlYsQXvJQL5KpKExdtnsEhIgqAfxlKgAvr6gBDM4TGGckDxPrEF7xzVLvhTp0517dq1SZMmS5cuBQ1SURShYTXcaJAvDVKCEHRUwocKFPwXcEsWlDuoAWfIfk6WZRmGgRRwtVr9/PPP16pVa+DAge+///727dvlBeD1Vq5JqOZHlb2swHAY47i4uMcff7xu3bqNGzdu3LhxmzZtXnvttd69e0NTN5/Ph++MtG60BR9++OHatWu3adMmJCREtgUVFrxHqBIwQ5KIfhf6AqFk9PtxYAlJCggpB7JDxUAHAv73RIj/5+Yg+v8D7heMscPhWLJkSUhIyHPPPXfkyBGotfB6vWKgCaLH44F0UxAgvJO2mgoUKPiLuCULgvIF3I0QwwPykKUURVEMCwtTqVQNGjR45ZVXXn755SlTplitVtl0gwAJTdPB2hnVbEHgVzAEVSoVhBjr1KnTunXrcePGjRw5Etp8B7uMbo8bWfChhx6C1NP69esrLHivgZCEMEZYlJAgYUnCWMKBinok23ogkYwDFYaBakSMcZXIFsQCQSukSi4kKDT494DMgizLut1uh8MBb4SpqamjR49WqVTDhg1LSUnBGEOPX5fLxXEcVBBhjH0+n/R70RkFChTcC9wuLsjzPLyNys4ZgMvlunTp0oIFC7p27apSqWrVqlW3bt1hw4bNnj17w4YNCQkJdrudoigUiHPIblJ8AwtCfK68vPy5556rUaNGo0aN6tev36RJk4YNG7700ksvvfTSihUrQH3jT8cFH3rooRo1ajRv3rx+/fqKR/TeQ37ZCbKGMEJIDDTPkb/DAX3JKhdpYCwGmC/YEJRDg3+bPxlc8OBTIUnS6XT6fD7ouOn3+8+dO/fUU081bdp04cKFIDdBEITX6wXxbr/fL1+likf0FpCLZ/5wwH+jy0bBfx+3ZEHIbYEsOIIgBEHweDxlZWW//PLLkCFDOnXq1KRJk5o1az799NPgcuzUqVP//v2HDRv2xRdfrFq16vjx4ykpKRaLRU6TkUkRtg8TYDVevny5YcOGDRo0aNCgQc2aNevXrw81iM2aNRsxYoTP57v+OP0jyL8C/AosqFKpmjVrVq9evWBb8M63qeDOUVVffz3AJ2EJYyRhJGAkBgaYFlCgHDAQPcQBFpTJj8OYDUz/LW1BcKjIuTMYY9k7YjAYVq9eXb9+/c6dO4OUhFxcD9cnuEyDL9TgieCvqjla/vEIOvwbxzedeX0tBQqq4ZYsCL5QYEGO42w224QJE9q2bdu6detmzZqFhISEhoZ26tSpR48ePXv2bNWqFfSC6NKlS/fu3d94442RI0fOmDFj3bp1KSkpQgD4ZrYgQig2NrZx48Z16tSpX79+jRo1VCpVaGhoo0aNVCrV4MGDoe/EHzJWtecCPEdSU1Oh4qJJkyZ16tSZPHkyQkiuF1Tesu8+JNkYr2IBJCEkSQgJSBKQxCPEIcQhxCPEYSSgqiZIUsA5Kga8oFxgAJns+yUueOeA44c8F4gLyiXzUDUIc0pKSoYMGRISEjJkyBCIgvv9fuhcXy0QcOPEgw10i/Htv1KgoDpulyMKzhkgjOPHj6tUqpo1a9asWbNt27a9evVatmxZaWnplStXunfv3qBBg5kzZxYVFW3dunXAgAH/+te/XnzxxXfeeWfgwIFbtmwhCCJYrgW2D7c3zMzOzn7sscdq1qxZt25dqMGvV69enTp1VCrVjBkz4Hlxhx5RWddG1o4BWxBYFuoF5XdtxRa8+5AtukCyZ2AsYknCkoARjyUBIwEjHiPxelbp9TXFgDko/H78N7MFceBqlx2bUC8P8yHKwDAMLHPy5EnoO71s2TLQIAXdNRy4pOUVq2mwPcC2YNXrbiCpSh5LN8xECCkRVgW3xO2yY+AmpGna6XS++eabtWvXDg0Nff/996Ojo6GzNsb48uXLHTp0aNasGXRKwhgTBBEbG/vVV18999xz3bt3HzNmTHFxMUQH8e89ovCmLIqizWYbNWpUgwYN6tatW7t27Xr16oFftHbt2gcOHBBFER4Wf2gLystA9YUkSYmJiS1btoS8m1q1an322WfQEwdyf7BiDt4j3CRkExCDhM7h1wOBgaVRtTWDy+R/v+TfBMHMFHzpVruS5Tc2p9M5f/78evXqde3aNTo6GmPMsiwE5uGVFO4XudBWHkOKGX6QLmb5eEXESYiTJE5CvIRgLE9wksRLiBMlXpJ+F45RoCAYt2RBuS8MQiguLq5169ZNmzZt0aLF4cOHMcYcx3k8HkmSVqxYoVKpnnrqqc6dO+fm5sqNuePj45s3b/7UU081b9780KFDoKNYzb0j38M0Tf/2229t27bt1KlTixYtmjZtWrduXZVK9eabb0IlvtzF+zZHElx6AenmkiQlJSU9+eSTderUCQkJqVGjxoQJE+DnlM5K9wrVnFI3eqWqEWQgQ+bGNW+x6b/T36saEQYbbdUgy0qkpaWNGjVKpVKNGjUKeopBGBvi6xzHybK6OHATBatb/A8P9r+GKjMQI4RESeIR4hESbj3wosSjqtDzA3F+FPx/cUsWlAWCMcalpaXdunWrUaNGs2bNLl++TJIk5HNLkhQVFRUaGqpSqd5++22bzYYx5jjO6/Vqtdqnn35apVK1adMGmsXfNC6IMaZpmiRJj8cze/bs5s2bQ2GfSqXq1q1bTEwMxtjlct0JY8nLQNcbIMXLly+3bt06JCSkRYsWKpVqwoQJGGOoaFRY8B7idrZgtTJ6/Htiu8ma/+xMPxSoneV5HpJFEUInT558+umnO3TosGjRIrvdjgNcyDAMXLrBdbcPGgviwCsvSPRIkiQhUCi6xSCCQkOVvJ8CBdVwu7ggyEGB2bRz586+ffuuX78eOIZlWajt9fl8CxYseP/99+Pj43HgXgVB4S1btvTv33/v3r2SJEHAX77hceA6ttlswEkcx7nd7t27dw8ZMmTQoEHfffddUlISzIf0cfxHN7nMarBBuVJixIgRPXv27NWr19NPP/3999+D/KNiCyq4TyDzGbgo3G43XLoGg2HmzJk1a9Z84403zp07JwV16JWCIDMifmBYMGALYgkhAYmQdiUGxuLvPwqBFwbFFlRwK9yuUgLKGLxeL/hqQMAF+M/tdstqMkBy4LSRzTuHwwEZcVJAdziYArEc2hZFs9kMEjPwK1A4DNN+v9/tdqNAWeGdsCAk4Mk6NRzHmUwmh8NBkqTBYIDuvvC4wXeccaNAwb2D/CoG75dw34GmIMa4sLBw0KBBISEhn332WWlpKSwJOWvVdH2D/avBm/27X+HoBh+yhAKpx5BqjDAvIR4hHmFwjwYmqj5yGEkYVf1ToOAG3C47BkSxwbTy+/2y4CeE3EiShPAbfISuMZDeLZcYAoHJ2tnBtpdcU+x2u+Hmh6phIDDoVgM0Bo4gfAfBbdmzBNkEYH1ijIMl/GXh/zvXo1Gg4N4h2JPv9XrlPoVer1eWqoiIiHjqqadCQ0PXrFkDiWngJpEj6+j3xbj/1Ku6ihExlvVneQlxCIkY8wgJGAmBOhuhag4WMObkFwKFBRXcDLfrrIQQks0ysPmA2IDhCIKAtE+apmECB5QyZGV9MAExxrK4tnx/yu+/wHnwLXAtCuR5ymX7d/JWG/w0CaY9uS4C3p3lA1HkqRTcD5Cvbbg+5Zc/+FZON7NarV9//XWjRo1eeeWVM2fOwFogZwjulmCdXljxn3GFoxsgiCLP86IkiRKCkhqS5YD2OEli5YQZjDkJsaIIggvXhRkUKPg9bqegdtPpWy12G7uqGvPdybd369b9Q+K8K7+iQMFfwY3XYZXrLyCBBESIMU5ISBgwYIBKpfr66681Gg0O5HLLr6TgfanmJv3vHs1dhlwUAbVb8mmB+QRN0ZxAc7yfpHkJETTDCgIrigJCDM97CVKUJIpleEEAX+o/MsFKwV/EH9iCwdGFmwIH8d8dLiNvvNoqt/9FfAekdftt3mrH/tL5U6Dgr+GmV6lMYOAU5Xne7/cDzzEMs3v37hYtWrRr127Tpk1ya0OKorxeL5AfwzAwH//9r3D5hAARQlIecD9FUjTLEAQpSmJV7xpJkiREszTHc6Io8ALPC5wsVqDUCyq4Kf6417wCBQr+y5DpEALzcqhb1ppxOBzffvttgwYNXn755YSEBCA8juMoigL+CxZI+l8fzV+CzIIQPYGsdfAeC4JAUj7wd5aXqdf+vDonJ5PjQJqOJ0gPwqLDaWUYCl9/Ef97nw0F9wIKCypQcD9CjupB8A8IADyBcjlsRkZGv379mjRpMm3atIKCAlhRJsJgn8ffBcHlojABRwrJbhhjOeccPmKMiwtyf9m4dvCg/rO++fKdvm8umDs7PzcDIx5jiaEJjvEzlE8U5DbdijmooDoUFlSg4L6DTGCQHQaPfpIkgRGhllcKdKv49ddfO3To0KZNmy1btng8Hvz7DNI7BL63vtMb2e3mruCq+Tc4hyHzHKxhkiTBw+mwWQ6H7Zn87zFTJ44tyc8y6zXGSvX6NT989MF7i+bOykxPwhgJjM9YqaFIf2BTNz0nAUsR4Xt8HhTcj1BYUIGC+w4okFkN+g8oSCMGSo9knoMqXp1ON2XKFJVK9eqrr169ehUHqg9v9UC/fx701fYEybUQv58HRYIsy9A0hTEWRWHP3t1jPxk5dcLo5PhzhMuoLcy0m7Tawky7XlNWnLVi4bfDB721btX35soSjLEk8eA0lrcdbCWj4JmKy/TBg8KCChTcjwi2jYJlYjDGcr08lNLKxUWJiYlvvfVWjRo1PvvsMxDglcNpciytmo2FgsqZ7r0tKAW3Sg4cIKJphucFEABAGEsSEpFEc5zAi0yVpj/CSBR5BlY/c+LY6I+Gzv5q2vmTRwinzlqeb1Bn2yoLdSUZ5rI8bX6yTV/EeYwpl8/MnzF5widD1q9ejKWqxCJRBH9qVSGK30/yvIARJvw0TbGwa/fPK4KC/w4UFlSg4L7DdTPlZkUUN87hed7lcoHozPbt2x9//PH27duvXr0adIB9Pp8syQ1lBlB1cKP0zD07ILl55PUmkdDngWE4huElSRIEiecFSUQUydEMz4sSw/OcIIiiQJF+jqUwxjlpiWM+fH/q+I/OHNtfWZTpNWsN6gyTNtOszTJps8xl2ZbybF1JqstUpMm9atRkYskTfXzP8nnThw15Z+++XRhjhESGoQRB8Pl8JEnzvMDQLOFjOEYQWIFjeITv6XlQcD9CYUEFCu5T3DRydlP4/X6v1wvC9Bhjo9E4ZsyY0NDQrl27xsbG4oAYIRQYYIxFUZSVEUGwCd9bW/AmLAjROEhyEQSRpllBkBDCgihSNCthRLPQ00bieVqrLpwz8+uPh78bdXSvqSzfVlnkMpSa1DmWsmxLeba1LNtanm0uy7KUZ5u0meayLJ+11FKebVCnc16dtTIvIe7M5Enjhw0ZeP78GY7jRIHjOJYiSIamWY4XRQlJmKZ40v/HHdwU/POgsKACBX9jyO5NyKKE3Bn4KiUlpXfv3jVr1pw2bZrc7wVkEeVSQlEUQbnp3j79YctIAkXPqgYjuCrnRRQlv5+EKCZBUJIkcSLv9rlgTY2mdMO61a/1eH7bL2sMZfl6bY5NV2TTFemKM20VedaKHGtFrq2yajCXZfltaqMmQ69Oc5uKtPnXKktSXKZii77YZTecOn74w+GDp38xJSX5KkMRGGOGonleIEmaJFmMMeQcKZHBBw0KCypQ8DeGzIJiIOQFbUGlQPPePXv2dOzY8eGHH965cyek0ni9XjAESZIEHfzruZL/zT0P+HIFUZTrHd0eN0VTLEdjjMvKirdv2zRs2IAZX0826opdtgpTRaHXVmbU5jiNxZSj3KbLtRnybPo8uyHfbsi36fMcxgKdOs2iy/FYS+yGfMKldVmKdOp0h6G0rCSLcBpYwr55/U9DB/df8N1/rlyOgz3xeLyCKPpJyu3xK7bgAwiFBRUo+BtDZkHwdgLzCYIgl9vzPG8wGKZPnx4SEtK7d++EhARYxuv1gvsUxOVxUI+n4MScu7WTVbsa+AVclfcpiaKAJFGSRI5jWZYSBA5jLIjUxo0/jf/3xzNnTE1KvCjxHpO+yKwvNusLLLo8l7nEUpFr1GY6DIUOQ4HDUOgwFjqMhTBh1+e7zSXm8hxTebbHWmrUZjkMhS5TqdeiMahzKksyEeM2VpSsWbl07KgPZ836Oj8/B2PMsqzV5pBu5n6+i+dBwf0JhQUVKPgbQ84alTXGWJaFj1BdB+FAjPHly5dfe+21pk2bzpgxAzJIaZqG5p03NYDu5qNfzgwVMZYwRhISMUIStDGVREESeZryY4yRxJ04fnTUqKHffvtFzMXjLO1w2su0JRl2c6nVXGw1FJor86y6XGtljqUyx24ocBiKHYZCh6HYYSh2GortukK/rcyuLzRqc+Cj21zq0BdZy/NsFQUOXZFdV2ipKHSZNTzt0pRkr1m1bMwnIxcvWqA3VGKM/YTvRpU1hQj/8VBYUIGCvzGC7ZVAmE2UdWdggquqN8B+v3/Hjh3t27d/5JFH9u3bB8uAzCYok0El4l1v2wvbEXkJiQhJCIkSEpEo8AxNCgKDkIAkDmOclpr40chhU6eOP3c23GHVkD6ToSLfYih2WDU2c7HNWGTVF3jsWo+t1GUudFuKXOZih7nEaS52mkvkwWEqdhiLPTaN26p2GIvd1lKXudRWkecyFhG2Mq9F7TCU2PTFZl0R7TGTXmt2xtW1Py0bNLDPypVLOQ6KEUVIoAVL+i6eBwX3JxQWVKDgHwj0+1oLFGhVjTE2GAwTJ05s2LBhnz59kpOT5W/BiQriZDe2xf4rkJCEMeYYXhIlSRBZmhV5QeQ5nmclieM5oqgwZ9LE8R9+OOTYsf12SznpNdlMJVZjidOqdVo0NnOxzVTsspQ6zSUOc4nTVOw2F7tMJS5zidNS6jKXuizVB2DEqlVMJX57mc+iceqL7LoCu77QZii06otshmK7oZj0GAi3Pi3p4s8/LX6jZ/f8vGx4kwjW6FGChf9sKCyoQMHfGOgW1RQ3nQnGInx75cqV559/vkWLFt98843JZIJgod/v93g8weprd2MXA8FLESFOwiLmWZ6haCxJGOPszLRvvpzy3qA+W35ZYzOX+90mi1FtM5W6LBqXVeu2lXlsZW6r1mXRuKwat1XjtmrdVo3bqg5MaP9gsGhcFo3HWuY2l9r1hS5jic+mJexlPrvaps/zWItt+jyHpQgLVrsh9/uF3+z6bRsOtHWU2zlhpR/FPxoKCypQ8EAAnuNQFwEPd5qmt23b1rZt23bt2u3cuRO8fwzDQJU9vnuPfiQhjDHPcFjEDMGQXgJjbDQY1q9ZNXL44O8Xfkf4bCzt0pZk0YTNWFHgtmg8Vq3bovVYtR5rmcdS5rGWea3lHluZx1buscFEmcdW5g5M3GpwWbUeW5ndVOowq322cp+9zGvTuM0lbkuhx1JI2Is4fzlNVBjLkuLO7Pp8wrDNm35GCMm9DCmKUmzBfzwUFlSg4IEAPMqhlMLj8djtdijRKyoqGjt2bGho6IABA0CDFCEELZzu/NEfrJYtD1UCnQFbkKd5j82NMZY48ddNmyb9+98zpn+hKcnHWLKZy532SsJnMuqLfC69z1bmsWi9Vq3HovFYtG6z1msp99sqfbYKr73SZ6v02it9Np3XXul2VHjs5R5Hxa2Hco+jwmWr9Dh0PofeZdXajcUuSwnpVLOkDtM6W1li4rk9pw7+FLX/x9lfjNy+dRPGmCQJSLuVG1nci7+IgvsECgsqUPBAQGY1mqYpiiICALPv4sWLPXv2rFev3uzZs6HEvpoNdKtpHKiJv/4Bya0ZoDYeBViQwxgf2h82ZMC73y9YEHf+PMbYZqwk3Ba7pcxpLXdYtYTH6LRqCbuOsFX6LOVec5nPUu61VPhtOsJu8Nv1PofOb9f7HCa/3ehz6D3OSq9D53XeZqj0Ois9Dr3LrnfaKj3OSsprYP0Gnqi0VKZnJYRfCN9wIXzdhfA1pw4s+8/nw7dv2YADLAjZtsFOZgX/SCgsqEDBAwEwaCDdA3JhwOCDvFCMMUVRGzdubNq06RNPPLFnz57gFW/DhQihoG5IWIKmgFWRSSwGWVF5WblvvNpr6r8nZmZkGLRlWBKMFVqnWed3mV3WSp5yOixan0vvtZdTTgPl0PttlT5rhd9aQdj1hN1I2oyEw+B3GgmHye80EQ6T32n0unQ+p87n0geG69Nep87rNHidBqBDh7XcbStjCYtIW1zGgpLM83FRW6+c+jUmYu3pg8svHF0Vc3Tlt1OGbt64BmMsigLUX0JbD6yYg/9oKCyoQMEDgRvTZ3BQuaHcxb6oqGjixImNGjV66623UlNTMcagMlOtHwWAYViW5ZGEBUESRMQLEs0LvIQ4SeREQdZyK8wv+HzS5E9GjjgVFUkTXob0eZwWj9PicZp8bovPZfa5DITX4ncbvS4j4TaSbj3p0pMuPenUk04D4TKSThPptJAuM+m0kg7b9bHLSDpNhMtEukyEy+R3m/wus89p9LpMLrvOadO7HUa/20Q4y0RSjxgzbSnWZl5MvbD/2qktCVFrE6JWxUUsv3hkWezRVdEHV86cNHzLpnUYY+hmLDfuUGzBfzYUFlSg4AFFMCPKMqQYY5qm4+Pju3Tp0qZNm/nz59vtdhzwo8q1dDAhCLzAiaKAJIQkhAWECIYjOFbCmGQZkiSNBv2qFSuGvffegV27SZ+T5winw+xymBjS7bTpCa/V77H63BbCY/K5TYTH5PeYCY+R8uhJt47yGCi3gXIZKbeJcpkpt4Vy2SinnXLZKJe9asJtplxm0m2m3CbSZSbcFr/L7HWYvE4j4TUzpIsmnF6XQSD0gqfUoU0qSTmVem7f1RObrx7/OSnqx6snll46tij26JLYoz+ePbBy1uQRW39ZjzGGdlTB3awUFvwHQ2FBBQoeCNxYPiELp0GaDJQH8HxVQ1pRFFetWtWhQ4fOnTsfOXIEFoY6CkgbYVmWJEmK5ERB4jnJT7C8iASEeFH0En5WYBmGmjXrq0mfjfO5HZhjKb/TYdV53RaWcntdZpfdwFJuwmvze6ykx0x4LYGxifYYKI+B9hpoj5F2m2iPmXZbaI+Vdttpl4N222m3g3Y5aJed9lhpt5VyW2m3jfJY/R4T7beTXovbXulz6TnKwVEOym+2VqSXZp5Jiz1w9fRvSWd2pkXvSD37S2LUj1ePL70UsSgmfFFM+A/RB3+cNemDm9qCWGHBfzQUFlSg4AGFnP8CDk+YCXYey7LQm1Cn033++ec1atQYMGBAWloaxpimab/fDxqkGGNBkJCEJQmRNE1QFC+JEkIOr4Ni/B6v/csvJx05tBcjxm0zuJ0GmnBIIkl4rYTXynM+p01HeK2U30Z6LZTfRvkspN9G+ay0z0z5zbTfRPsstNdK+6y010Z77bTXSXtdgbGL9rhYj4PxOhiPg/Xaaa+d9hd7D+IAACAASURBVFn9LhPh0nOkVWQcLGG0m4oqSlOyEiOSY/ckX9idcmFP2oU9qdHbkk7/nHjyh2snFscdmx97dGHsseXRB1bMmjwMbEEok1BswQcECgsqUPCAAp7sMheCYBgIpoCODCSG0DQdHR39xhtvNG7ceM6cORaLBWMM/Stgeb+f8Pv9GGOapf2kn5U4jAWXx8ZxxLx5M5Ys/E+lNg+xHp5x+twmi1FjNqgZ0o5EgvLbaAIGOwwUYaMJO0PYaMLKEDaGsDF+e9XY52D8LsbvZvwuxuem/W7G5+a8Htbn4X1uzufk/A7Ob2N9Fp6w8KTJ59TotKl5GRdSr0WmXz2UdfVA1uWD6bH7Us7tSDq9Kfn0mqSoZdeiFsVFzIs9uiA2fHn0weWzpgy9iyx4o/GNb4jO/iHw7x3X/6+1brP8nWzqpsv8uVNxn0NhQQUKHlDIDzXoOxjsBpQlNIEOMcZOp3Pr1q0NGjTo3Lnz3r17YUW3240xjgg/Om/udzabRcISSRESEgSJEQTaR1i//PLfK3+Ym50eW5B1xeusFAU/xzh52sHTTrejkqHsLOWkCTtD2GnSSVEuinIypIslnAzhYAkXSzhZwgUDRzhZws0SnuAxR/gYwssSHo5wCoSDJ2wSY6e9emN5ekHW+bTEyPTEyJy0E1lJBzMS9qTH7UqN2Zlyflva+c0Z5zcknlp6LWpBXOR3sUfnxx5bFh227K7bgsFr3cguOKD1im5gu5v+YjV6w79vA1JtyTvZ1K12OHjfgvf2nwqFBRUoeEBR7UGMEIIcGeA/QRD8fj+oqcnNezUazZAhQ+rXr//uu+/m5GRjjFmGfu/dgSqVat26nxGWOIHlBZbmCVGiGdq1bMms5Utn5KTHJF+JKs69JrJO2m/xufVY8HpdOoayspSTIR0M5aBoF0W5SMpJkS6WdLOEmyXdHHl9zBJOlvRwpJclPRzp4UgPS3hYwsuSPo7y8aSL89t40uowFWgKrxbnXCzMii7KOVuQdTIj8XB20v7Ma7vS435Li/0t7eK25LPrEk4sTzy55FrU/LiIObHH5sUeW37XWfCm3FZtfrWZAHBKyzNBzefGnZGd2PIWbvwtWTDvRj5DCMEPVePmWx3vTbf/z4DCggoUKLgd5Iej/Ng9fvz4Sy+9pFKp1q5du/LHH1UqVe2aNWrUUO3cuQNjzPGshDleoEjC/t23n6/+YXZexvn0xKjE+BOF2QmkW49FL8c4SK+F9Jlp0soyDpZ1M4ybpFwE6aRpN8f4OMrH0T4+MMHRPpb0spSXo30s6WYpF0O6WdIr0oTE0YinRdrjtVXoy7LV+QnFubEluRcKs07mZUTmph7NTTmck7wv69rOjPjf0mO2p174NTn65+QzPyadXHztxPy4yDmx4fNjw5fdC48ovFjIZw/eJ7xeb3h4uNvtRgiZTKbjx4+7XC6e510u1+nTpysrK30+n8vlomna4/FgjA8ePDh8+HCn0ylJEmQnQWULxjg7O3vdunWbN2/Oy8tDCJEkyTAMTdMw5nne6/VCiNfv90MOsCiK0E7L7/czDAOrcBzncrnAJQDLw7qHDh1auXLlkSNHZFXVP3cq7nMoLKhAwQOKasbKbSB3aIIkUowxy7Lffvttx44dVSpVSO3aIfXqqlSq+iH1YmIvYozdHgfGAuGzzp/7xU8rZuZlnstMjspKji7IitcUJhnLshm/SeR9LkclQ1l5zsWybppxU5SHZr0sR7K0j6P9LE1wDEz4OcbPswTH+Fnax1BulnbTlItnfYinWMJNuC0uc5mxPE9bmFSad7k0P6Yk91xR5snC9GN5KYdzU8Kyk/ZmJv6WfnlHWuy2tIubk6PXJZ1emXhyybWoBXER4BFdHn3gh7tuC8qAhCOO4/x+v8/na9y48eXLlxFChw8fVqlUsbGxGOPc3NwnnngCpjHGcJ5FUVy3bt1HH30kbxZUXmmarqysfOWVV8aPH//vf/973759DMPIbUNgMXkaNgV/PpgDynAyZFsfYyxJEqybkJDw9ttvT5ky5cknn1y2bBlN04otqECBggcUwU9ziqIoigIzZfLkyaoaNRrVq1u/Tt3GDRvVrl2nU6fOJSUakiQ4lhBFYs6syZt+np+Tdjr27M689HNF2ZfSrp7OTY81VeQ6LWqRcyPJK4k+UfJzvI9iPBTrY1iSZSmuakyxLMmxJMv4acrLMn6OJTjOz/N+jvOxjJfy2Vw2nVFXpNfmlpeklRVd0+THleZdUOecLck6UZgWkZd8ODc5LCdpd9a1HRnx29MvbU27uDkFbMFTS66dWBQXOS82fEFs+I/RB3+YNemDu8iCsiKBnHYEJxAhNGzYsG+//RZjvG3btvr16y9atAghFBUVNXDgQJ7nc3NzZ82aNWbMmF27dsEyffr0WbBgwaeffhoWFoYxJklSEISYmJiuXbsCe1EUxbJsZWXl9OnTR48evX37doZhkpOTFy5cOGvWrJUrV27dujUxMVGSJJ1Ot2nTJpfLdfTo0U8++WTq1KkZGRkMw0RGRi5ZsmTq1Kk5OTksy0qSBBlPGONPP/20X79+kDOM7l6/rfsHCgsqUKDgDwB8IDvigAtjYmIaNGhQr07dxiEhtVU1GoY0qlunvkpVs2+fARazFUmiz2P5+otPN6yeW5x9oSD9TFnh5YxrJzUFVzWF13LSLhoqcowVBZTfwnFuUSIkieRFgub9DEvyHCuwHM8xAs/wHCPwNMeSDO3lOVISGEmiOM5H026f12Qzq426okptdqUmvVKTWqlO0hbGq3MvaHKiSzKPF6dGFKQcyk8+mJ28Nyvxt4zL29Njt6dd2JJybn3ymVVJJ5dejVoUFzE/JnxJzNGVZw+umjV5xNZfquoF75YtCL5QqMKECYzxypUrhw8fzjDM559/3rt378GDB3u93tmzZ8+dO5em6X79+i1fvjw6OrpXr14XL16MjIxs0KDB4sWLd+zY0a1bt8LCQkEQSJJkWbZHjx5PPPHE7t27gbE++OCDuXPnHjp06LXXXjt27Fh0dHRISMjYsWNPnDgxffr0SZMmYYznzJnTu3fvjIyM119/PTIyctmyZcBwffr0ad++/ebNm8vLy0E0wOPxbN269bPPPnvuueeSkpJwwIJUbEEFChQ8cJAf6ODTgySa1157TaVS1alZq4ZK1SSkUb1aIS1C2zRqEKpS1Rw1crTP6+F5as7MKSu//0avTlz1/eeTxg68dGafOv9KfkaMpuBacf5VXUWO2Vhid1QQlJ3lfbxEchItSKzAcyInCpwg8pwosKLAigIj8LQo0AJPMYzH67XabDqrRWsxFRt1+fqKbH1Zmk6bXF5yRVMQo809p8k5W5oRVZJ2rDD5cEHSwdykvVnXdmXE/5YeuyP14tbkcxuSz6xOjFp27cTiuGMLY48ujQ1fHX3gp5mTRm65qzmiweYgdO4Fpbrs7OyhQ4eePXu2b9++KSkpH3zwQXJycv/+/c+fP5+env7kk08uWbIkMjLyxRdfXLNmTWRk5DvvvOP1ejHGTz755MqVKzHGEL0zm80///xz69atv/nmmytXrrz66qsbNmw4ceLE888/v2XLlvj4+BdeeMHhcGCMT58+/fjjj5tMppEjR4aFhS1dunTQoEH79u3btGlTt27dnE7n6NGj16xZgzGmadrlciGE/H7/li1bxo0bBxJCMoUrtqACBQoeOMiJHtCDAiHk9XpPnjw5b968rs881+mxJ1o3a11bVUelUtWt3UilqqlS1Zo9czaSuEVzp6/94T/q/LgvJgxSqVQvPvfovu0rKkqulRUnVWgyCvKuqkszKnWFJovW4TL4SAcjEALiJFFCApJEEQmSJAqSyIkCKwksQ3k9bqvNWmk2l5lMZRazxmopMhpyDZWZhvJ0vTalvDShrDBWkxutzjlbmnmyJDWiMOlIQdKhvKS9mdd2pcfvTI/dkXZhW8rZTcmnf0o6ufzqie8vRSyOObo05uhPZ/evmTXpo62bNuC75xGVI4Lgt4QSFIQQRVHvvffe4MGDx44dizEeMmTIl19++fbbbyOEwsLC2rVrt2zZsm3btu3bt8/hcGzZsmXYsGGwzc6dO8+bNw8HVNFh5qVLl9q3b79ixYpXX3111apVe/fu3bdvn1arPX36dN++fWmaliRJr9f36dPn+++/79u3r9vtnj59ev/+/c+dO7dhw4YjR474fL4JEyb89NNPCCGWZUFJXD6QjRs3durUCd6BlLigAgUKHlCgQMI9TdOiKAanV9B++kzU6cULlgx7/4Ouz3Xr+NhTKlVtlUr1/fx5s6ZP/O2XFVlJUSmXD43/uG/tGqpHWtX59usJqVfPWPUFlZpsXXm+Rp1tMJQYTKUmi8bmqKBYjyiyPEdLIisKrMBRGLFIpAmP1W3XW4xqo67IpC+yWUrtFrXVWGDU5RoqMo3l6QZtil6TVF4Yp845p8k+W5IZVZwWUZB8tCDpUG7ivqyruzLidqXF/pZ2YVvq2c3JZ9YknlxxJer7uGOLLh5dcjF81ZkDq2dO/vAu2oJy8hFkh2KMwRyEzc6fP1+lUq1fvx4htGLFitq1a/fr1w9jrNVqX3nllS1btly9evXChQtut3vXrl01atQ4cuRIREREmzZtYmNjOY4jCOLUqVM7duyIi4tbunRphw4d1Gr16NGjFy9enJqaeubMGZ1Od/jw4R49eng8HtkNq1Kpxo8fjzHev3//gAEDoqOj4+Pj4+Pj/X7/gAEDfvrpJ4wxwzBgPmZnZx8+fDgxMXHq1KmvvfYa9CFRWFCBAgUPIuQHevBMSUISkgReZGlenulw2C9durT5ly0Txk/s+0bvSWM/2rBqQUHamdQrB8sL45cvmNa+dSOVSvVev1d2b11Xmp/qtFWWFmWajaW6ygJdZZ7Xq/d6DU6n0eMyk347Qzl51s1RDrtFbdIVWAyFNkOB1ZRvM+ZZjblWQ4FNX2zVF1sr801lmfrSlMrSxLL8qrhgcebJwvTI/JQj+clhedf25yTszry0Mz1mV/r531Kif00+ve7qyR8TTiy7FLHgQviiC8dWnA77YcaUYb9uvmtxwWprBWfkCoKQlZU1fPjwS5cuYYxzc3NHjRp19uxZ8DrGxsZ+8sknH3744ahRo9Rq9eXLl7/++uvRo0f3799/x44d8itITEzMF198MWbMmHHjxsXExGCMY2NjR48ePXbs2OnTp2dkZGRlZS1ZsgRqIQRBiI+PHzp0aEZGBsbY7XYvW7bs3XffnTZt2ooVK1iWXblyZUREBBh8kAgTHR09ePDgGTNmjB8/HsTzIPqosKACBQoeRKAbyyqkQLxQkCiSIggfRXsxvp6s77E5vpw4/vu5X2rzY1OvHEy8dKSsMOnIno19XuumUqne69dz16/rTh0/LPJeQ2WRw1ZmNRUb9QVOe7nPa2FZt8epd9rLBd7ttleUl2ZaTEUWQ55Nl2vV59j02TZDllWXZ6sstFYWWiryTJoMgzpVV5JUXnBZk3tBk3OuJONUUdrxvOSjuSmH8hL3ZV/ZkxG3K+Pi7oxzO1PPbkk+tf7ayR8SopbGRC48f2zxxfBlZw6tmDl56L2wBWX7Sd6a3NxYEITg8gan0wkdPKCsQl44eLPAUkBUGGOIF2KMrVarvBF5YcijCf4VhFCwMILcPRG8tQzDeL1ehBBBECzLQukhrGg2m2EthQUVKFCgAOPA01DgRYETMcKSJAgiw7Akw9Bul8fj9vIkPXfG9HUr5xVnnctJOZZ8+Vh28nlLRW5y/NmzkYcsenVFuSY77drYUcMvnj/hcer9PovbWen3Gq0mrc9j9jgNPo9REDx2i9pmKjbocs26XEtltkWXZa3MsugyLZU51op8S0WeuTzbqMkI2IJx2qoc0SpbMC8lLC9xX07C7sy4XWALpkb/mnx63bWTPyZELYuNWHghfPHFY8vPhP0wc8qwLZvvrZq2XHDi8XgQQlCxDqwD016vF6bBZIQ9gbJ6aPQot/6gaRr4zO/3e71ehmFAZQYyeAmCoCgKdNJhO16v1+fzgV0Iq0MJB0mS4OiGCYIgwNyE/YE6eo7jnE4n7IzCggoUKFCAcVVDeSQKiGdFURBFSahqryuJPC8IvMBRzMolCzb9tOjqxQNlhecnjhkwa/pYbUFKZUkmFv2I9RMuG8Y4PGxfs9CmvV9/efdvGx3WCq/byFJOgfUQPqvTVi4KXrOhWFeWZazIMZVnmSsyTRUZ5ooMU3mGuSLLUp5rLs81lWUa1Om6kuSK0mvlBZc0uec1OWdLMk4WpUfmpxzNSz6cl7g/J2FPZtyujJjdGed3pkZvST69vooFIxdeOLb44rHlZw79l1gQY+z1eiFrlKZpn88HjRshaigIAki0kCQJPR0hEGu322Ei0N+YYVlWln4FZXNIHAXegpQcSI0BYvP5fECiUFwIwUXYJsMwwTFLOGSe58HiBN0Z/M8VFFVYUIECBX8GCCGMkSQhJEFvQoph/RxHcRzLsbwoSKyfXPzd7E0/LcpOOlGUdfLapSNDB772zhsvnD62z2nU0j4n7XERbgeWuAnjP1GpVPVqqxo3qDFm1PCw/du0pdkY0/ryfMZvsVtKKzQZBm2moSzdWJZmKEszlqUZy1KNZekGbaaxLNOgTTOoU3QliRUlV8ryL2lyLmhyokvSTxWlH89PCc9LOpKXeOCvsGAwF97EM/z/AWwN0kzkrsVyU1+5oILjOOjgCGNYBuhKnpb5D7gTaA9mAiiKkjcOS8IyMuFBxYts9sFvwYqQKSonQ8EEDtLvvvOzceMC1ebg/7WXVWFBBQoU/BlISMIYC7zEMeAoE0WRFQUWIQm60DME9fXkz9avnJ+feqqs8LzHmj+k/yvPPdnulec7bf75hysXzxIOm1Vf4bKa4mLOjR/zUbeunRuF1FKpVCqVqnfPF/KzrtJ+C8+7TJW55SVpOm26TpOq16QatClGbYpenWTUpgIjGrRpenWKrvRaedEVbX6sNve8Jie6JONkUfqJ/JTwv2gLyuYXCmhYoxtyXqpBfrjf9CscCPtBKT1BEFACD/xEkmTwV6BnBg2NZY8lEBKwGkIIWBB2VeZRCASC1YgQAvpECIEQmvxDYBryPC/bhUCokCYD82FnglXWgg8c2BQ2DvNBHyD4I9is8vIQX7z9OfxvQmFBBQoU/BkgsAVFSeRFLGFJEnie4jhKFAWW4RiaZWl27ozpv6xdnJN0IivpKOcvS4o/PnHM+92efvSRVo1Gjxi8fePPFl25WV9hrCyj/e7CvKztWzZMnTS2xwvP9nur59X4U7TPxNFWS2W+QZtRqU7TqVP0pSl6TbJenaRXX9Ork3TqFL06VadO0pUmVpZcrShOKCuI1eSe0+REl2SCLXgsL/lP2oIy/8mHLCeqBLdikCQJLCeZZoAtZCMsWEpbTlSBcCBwEmwT6ApIwufzoUDHR5iABWQBGjmrBSbAHcr/HgghyOoMpkagW4gsBrMa/ITX6wWKBVcqzISNMwwDfCkTHsyRtwAsLp8uOJbg3B+gbZiGgGUwWd616/L/D4UFFShQ8KeAAmMJ+EDCiMdIxBjBdzzFzJv51doV3xVmnMlKOqLXXNWpk7WF1775fEyfXi881KLhi891Hjdq5IHdO3VlartZ53aYecYv8WRORkJ6cozfrffaywXa5raUlBUlVZamVJYk6UsTK9XXKksTdeprlaXXykuuVpRcqyi5WlGSUFF8RVd6pbwwVp0DtuCpovTI/JSIvOTwv+IRFQQhLy+vvLxcFEWn05mSkkKSJGRpQgYmkBm0cQDWEQTBZDIFMx80iIBgntzHGExASZLWrFmTnJyMMYZUF0EQPB4PxA5hXViSZVlI3QQ6BH8pZMG4XC6ZHeVUT/kjWH4+nw8cpGBQYozLy8tPnToVGRlZUFCAMZapzmazgaA2/IRMUbA6GIUQ0eQ4Tq/Xb9iwYfv27V6vV5IkkiSPHj166NAhWYY0PDz8xx9/1Gg08PHw4cM7duwAC/g+UehWWFCBAgV/BlVv8RJCooQRRkhEEockHqEq/yFHs/NmfrXux3l5qadzUo5lpxy36NKdptzctAu//Lxk2mcfP/5wq4daNf3XM099PHLozu2btaX5HqfZYtR4nTrCY6C8Rqu+kKcsdmNBeXFyRXFiZXFiRclVXXGCrjhBV3ylouRKeemVihIYLlcUX6ksvVxeeKMtePRP24IYY6fT+eGHH4aFhUE87+233wbOkOF0OmUTRxTF48ePb9y4EfhDLkUATyMOdC0G804Oto0YMeLIkSMYY6hSgJ5HBEHAGZb9h7ADYP9BdySMMVhjkPYi74Nsk8l9JIDUbTabTKUIoU2bNvXt23fmzJlvv/329u3b5R+CP59MhKIo5uTkLFy4EL6iKErusqTX66E8ccKECSNHjuQ4bs6cOX369Bk9evSoUaPcbvfcuXNHjRo1bdq0IUOGlJWVzZkzZ8qUKW+99dbw4cPtdjsQqsKCChQo+HsiyBbECAdsQQHhqocaz3DzZ3297sd5eWmnspPD068dKc2PyUw6QXnUFeqUQ/s2L/zPl2/3eqlFk/rtH2751hs9er7S7asvJmalXdFrcn2OCrux2KDNEjibw1SgLbhaXnitvCihrOhKZeFlXUFcRWF8WVF8WXF8WXFceXF8eXFcedGl8uK4soKL2tzoKlsw7Xh+8p+3BWHscDjef//93bt3Y4wpiurRo4dWq3U4HEuWLPn000/3799PUZTD4Vi8ePHUqVMtFsu4ceM6deoUGRnp9/tNJpPdbjeZTFar1Wg0RkRE6HQ6SZK2bt3KMExxcfGUKVPWr1/fs2fP+Ph4s9k8Z86ccePGJSUlIYTS0tLCwsLGjRt37dq1o0eP9unTZ+fOnTzPu91uMCU5jluzZs3EiRMTEhIwxqdPn/7444+XLFkiCEJGRsaBAweWL18+Z84cu92+bNmypUuXqtVqSKUBMxFj/P33348ZM4YgiI0bN3br1g1jnJycPHr06AkTJpSUlEiSFBsbu3r16mXLls2ePbtTp047duwoKiqy2+0Oh8Nisbjd7oiIiC5duuTn5+fk5PTq1SszM7N79+65ubk+n2/QoEFRUVGvvvrqvn37OI576qmnkpOT9Xq91+stKCh4+eWXT548iQJNNhQWVKBAwd8QN2NBBCwoIixhnmYXzP5m/cp5+WlnspIO56ZF5KQfz0mPKsmPMeuzCJ8uL/NK2L5ff92wcvDAt9u1bdPjxS5vvv5i25YN+7zebeeWVbRX77WqedKkL03V5idoCxLKCuLL8+LK8i+V518qz4/TFsRqCmPUBbGawhhNYYy2IEZTeFGbf04DLJhZzSO6OzNuV0bMrozzv93AgotubwsOGzbs9ddfnzVr1rRp01544QW1Wj1u3Lj+/fsfOHCgR48eR48e/e6770Adu6CgYMaMGZ06dYqPj4+JienZs+fAgQMHDRr01VdfhYWF9ejRIycnByHUt2/fuLi4ESNGjB8/fvny5fXr1z916tT+/fsPHTq0bt263r1763S69evXd+/efdeuXT///PPq1atjY2NfeOGFqKgohJDVahVF8YMPPvjmm2/mzp27adOm48ePv/baa99///2XX3757bffXrp0qV27dnPnzv3kk0+eeuqpefPmvfHGG+vXr8eBxBzwiP74448jRowoKiqaO3fu5MmT1Wp1165dFy5cuHbt2ldffdXpdE6cOPHll19eu3btggUL/vWvf0VERERERHzwwQfvvPPO66+/Pnjw4JSUlKlTp7744osDBgzYunVrQkJC//794er46KOPNm3atHHjxvbt27/++uuff/65XM4fGRnZv3//yspKOTb5v1XoVlhQgQIFfwo3Y0EJCRgjJCAsYp7hFsz+ZsPK+QWpp7OSDuekhRdkRxXnnVEXXNQUXS7MjnU7tE6rNjMtPuFydMTRPVMnje7x4rN93nih+7OPffLBIHNFrsNYIHI2c3lmaU68Oi9emxdXlntJmxerzY0ty7uozb+gLrhYWnBBXXBBXXBRk39BXXBOk3dOm3dOtgXzkiNyk8JzE/fnXNmTGbezSjsm+tfrLBgBtuCy27DgiBEjhg0bNnv27ClTpjzzzDNRUVHDhg2DZkObN2/u16/foUOHevbsuWfPHp7nN27c+O677/I8r1ar9+7dGxkZuXv37tOnT2dkZPTs2TMrK0sQhH79+h04cODVV1+12WwY4xEjRpw7d45hmPDw8NWrV/fr1y83N/fHH39csWIFxthut1+6dGnjxo2DBw/euXMnJOPYbLa+ffvqdDr4U4waNSo8PBxjXF5ePmLEiI0bN3799dcY4/Xr1w8cOBD284svvkCBOn1QCl29enX79u0/+uijYcOGFRUVrV279rPPPsMY+3y+Pn36nDp1asmSJRs3bsQYnz9/vm/fvhjjioqK48eP79+/f//+/WfPnrXZbHPmzHnvvfdeeeWV+fPnJyQkDBgwAMoT+/Xrt3379ujo6N69e7///vvjxo2rqKgACofeF8GGoGILKlCg4G+IW7AgklmQ5Rf+Z8aGVQvy005lJh7Ky4zIy4zMSj1WkH26MPeCRZ9VlB1v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" alt="" />而在OkHttp中,非常类似于上述场景,它使用Dispatcher作为任务的派发器,线程池对应多台后置服务器,用AsyncCall
对应Socket请求,用Deque<readyAsyncCalls>
对应Nginx的内部缓存具体成员如下通过将请求任务分发给多个线程,可以显著的减少I/O等待时间
- maxRequests = 64: 最大并发请求数为64
- maxRequestsPerHost = 5: 每个主机最大请求数为5
- Dispatcher: 分发者,也就是生产者(默认在主线程)
- AsyncCall: 队列中需要处理的Runnable(包装了异步回调接口)
- ExecutorService:消费者池(也就是线程池)
- Deque<readyAsyncCalls>:缓存(用数组实现,可自动扩容,无大小限制)
- Deque<runningAsyncCalls>:正在运行的任务,仅仅是用来引用正在运行的任务以判断并发量,注意它并不是消费者缓存
OkHttp的任务调度
当我们希望使用OkHttp的异步请求时,一般进行如下构造:aaarticlea/png;base64,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" alt="" />synchronized void enqueue(AsyncCall call) {
if (runningAsyncCalls.size() < maxRequests && runningCallsForHost(call) < maxRequestsPerHost) {
//添加正在运行的请求
runningAsyncCalls.add(call);
//线程池执行请求
executorService().execute(call);
} else {
//添加到缓存队列排队等待
readyAsyncCalls.add(call);
}
}可以发现请求是否进入缓存的条件如下:(runningRequests<64 && runningRequestsPerHost<5)
如果满足条件,那么就直接把AsyncCall
直接加到runningCalls
的队列中,并在线程池中执行(线程池会根据当前负载自动创建,销毁,缓存相应的线程)。反之就放入readyAsyncCalls
进行缓存等待。我们再分析请求元素AsyncCall(它实现了Runnable接口),它内部实现的execute方法如下:
aaarticlea/png;base64,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" alt="" />当任务执行完成后,无论是否有异常,
finally
代码段总会被执行,也就是会调用Dispatcher的finished函数,打开源码,发现它将正在运行的任务Call从队列runningAsyncCalls中移除后,接着执行promoteCalls()
函数aaarticlea/png;base64,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" alt="" />这样,就主动的把缓存队列向前走了一步,而没有使用互斥锁等复杂编码.通过上述的分析,我们知道了:
- OkHttp采用Dispatcher技术,类似于Nginx,与线程池配合实现了高并发,低阻塞的运行
- Okhttp采用Deque作为缓存,按照入队的顺序先进先出
- OkHttp最出彩的地方就是在try/finally中调用了
finished
函数,可以主动控制等待队列的移动,而不是采用锁或者wait/notify,极大减少了编码复杂性地址:
http://www.jianshu.com/p/aad5aacd79bf
OkHttp3 任务队列的更多相关文章
- OkHttp3源码详解(六) Okhttp任务队列工作原理
1 概述 1.1 引言 android完成非阻塞式的异步请求的时候都是通过启动子线程的方式来解决,子线程执行完任务的之后通过handler的方式来和主线程来完成通信.无限制的创建线程,会给系统带来大量 ...
- Okhttp3 使用和原理(DEMO)
基本使用: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0106/2275.html http://www.jianshu.c ...
- OkHttp3源码详解(三) 拦截器
1.构造Demo 首先构造一个简单的异步网络访问Demo: OkHttpClient client = new OkHttpClient(); Request request = new Reques ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- 通过IEnumerable和IDisposable实现可暂停和取消的任务队列
一般来说,软件中总会有一些长时间的操作,这类操作包括下载文件,转储数据库,或者处理复杂的运算. 一种处理做法是,在主界面上提示正在操作中,有进度条,其他部分不可用.这里带来很大的问题, 使用者不知道到 ...
- Okhttp3的简单使用
1.get请求: /** * *okhttp get请求 * */ public class MainActivity extends AppCompatActivity { private stat ...
- Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池
前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...
- okhttp3 post 数据打包方法
import okhttp3.OkHttpClient; import okhttp3.FormBody; import okhttp3.Request; import okhttp3.Request ...
- Retrofit2 + OkHttp3设置Http请求头(Headers)方法汇总
在构建网络层时会遇到一个问题就是要手动配置Http请求的Headers,写入缓存Cookie,自定义的User-Agent等参数,但是对于有几十个接口的网络层,我才不想用注解配置Headers,目前网 ...
随机推荐
- [leetcode]36. Valid Sudoku验证数独
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to th ...
- PHP请求ws出现的问题
在SOAPUI中的请求如下: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&qu ...
- Yii2.0关闭自带的debug功能
1.找到相应模块的config文件夹的main-local.php文件注释相关代码,如下: 2.将web下面的两个入口文件改成false index.php index-test.php
- Centos7下安装Docker[z]
[z]https://www.cnblogs.com/qgc1995/p/9553572.html https://yq.aliyun.com/articles/691610?spm=a2c4e.11 ...
- Spring Boot 整合mybatis 使用多数据源
本人想要实现一个项目里面多个数据库源连接,所以就尝试写一个demo,不多说,先贴结构,再贴代码,可以根据以下的顺序,直接copy解决问题. 首先,dao和resource下的mappers可以用myb ...
- Oracle学习——第一章
Oracle数据库特点:安全性高,数据类型丰富 Oracle是由美国甲骨文公司开发的一款数据库产品 -------------------------------------------------- ...
- jQuery基础语法
一.选择器(同css) 1.基本选择器 $("div") 通过标签名获取标签 $("#id") 通过id获取标签 $(".class") 通 ...
- ABP框架系列之三十九:(NLayer-Architecture-多层架构)
Introduction Layering of an application's codebase is a widely accepted technique to help reduce com ...
- myeclipse 自动部署web项目(自动编译)
打开自动编译:project->build automatically; 注:以下两种方法适用tomcat配置在myeclipse中的情况. 1.如果在myeclipse中tomcat是以deb ...
- Spring配置Bean,为属性赋值
SayHello的实体类: package com.langchao; /** * @ClassName: SayHello * @description: * @author: ZhangYawei ...