Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m3yRy-0004R6-ML for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Jul 2021 10:18:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1m3yRx-0007Rx-CA for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Jul 2021 10:18:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m3yRx-0007Rf-0h for pgsql-hackers@lists.postgresql.org; Thu, 15 Jul 2021 10:18:37 +0000 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1m3yRt-0003vu-QO for pgsql-hackers@lists.postgresql.org; Thu, 15 Jul 2021 10:18:36 +0000 Received: by mail-wm1-x333.google.com with SMTP id l18-20020a1ced120000b029014c1adff1edso5692517wmh.4 for ; Thu, 15 Jul 2021 03:18:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aiven.io; s=google; h=from:to:cc:subject:date:message-id:organization:in-reply-to :references:mime-version:content-transfer-encoding; bh=+uTDAw9EOLqPNIBwmOaTvSwaeJPnLOTro9H31CG78uQ=; b=TJdH/zscBueqIIgEXnrgNJWaYk5f7F+j68hKnt7FMzSpt0KEDTbTHgjQCsw2Me0mLW WQp/fBmGUOWUr+Njr7Q5acoI57FYizl+2ZFtRm322L29Q87Wv9LWUjfaok0DmhRDjt4V kYGWTDjSwpisJ8Ezy00fqFEavyfUzaq6KykHA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:organization :in-reply-to:references:mime-version:content-transfer-encoding; bh=+uTDAw9EOLqPNIBwmOaTvSwaeJPnLOTro9H31CG78uQ=; b=J+lzBDtB5DLyWaexhFl4EGyajpg3KzlJuoeeP8d8F7biK2IqZEOYn2TgzRZZRzkCjH EcsmcE4Ju93FBx8H95xvtxyy47nbo5pJOHtoOrYrZU4KV24C8UldrgOFVprW+UBr2cBX zJ72/YVkO3jhmKzRrcCD2HOG7r9E0trGzF7aiPHOMEPTallcIUoZ4q+xNwVv44p1bUV4 tThczFqM2sLSuWw4OBFN++B0rGlgKrlompohzENxUtDNHgnFzv4MdolsVcs6T7OtInV5 zZlxD6QE4WxuTYfLczBVPovJtUP8+f+bOqaM5NJ9kThf4zVTm3YCZ45BNp8HQzEfn/tQ Wufw== X-Gm-Message-State: AOAM532u2ygNBmhwk0tl9o3CPNvEgtEogRFGM6VYiB6OzY5UZKkWLZBS 8C1kaEoFjY2PZrsOuqDyi5MOSA== X-Google-Smtp-Source: ABdhPJzN7AGph+Nttg9jfYwYNOoXapjcBX8/Rw5niYO10dbZHTzKQ4bYmeV/cVfcryhCrVGCTsy1sA== X-Received: by 2002:a1c:1f47:: with SMTP id f68mr3786377wmf.58.1626344312916; Thu, 15 Jul 2021 03:18:32 -0700 (PDT) Received: from aivenronan.localnet (static-176-158-121-96.ftth.abo.bbox.fr. [176.158.121.96]) by smtp.gmail.com with ESMTPSA id s6sm6904318wrt.45.2021.07.15.03.18.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Jul 2021 03:18:32 -0700 (PDT) From: Ronan Dunklau To: David Rowley , John Naylor Cc: James Coleman , PostgreSQL Developers , Ranier Vilela , Dilip Kumar Subject: Re: [PATCH] Use optimized single-datum tuplesort in ExecSort Date: Thu, 15 Jul 2021 12:18:22 +0200 Message-ID: <2502562.vDctQ7PNa3@aivenronan> Organization: aiven In-Reply-To: References: <3177670.itZtoPt7T5@aivenronan> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart5125411.fdRUmkzP2Q" Content-Transfer-Encoding: 7Bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --nextPart5125411.fdRUmkzP2Q Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Le jeudi 15 juillet 2021, 01:30:26 CEST John Naylor a =E9crit : > On Wed, Jul 14, 2021 at 6:14 AM David Rowley wrote: > > It would be good to get a 2nd opinion about this idea. Also, more > > benchmark results with v6 and v8 would be good too. >=20 Hello, Thank you for trying this approach in v8 David ! I've decided to test on more "stable" hardware, an EC-2 medium instance,=20 compiling with Debian's gcc 8.3. That's still not ideal but a lot better th= an=20 a laptop.=20 To gather more meaningful results, I ran every pgbench for 30s instead of t= he=20 10 in the initial script provided by David. I ran the full script once for= =20 HEAD, v6, v8, then a second time for HEAD, v6, v8 to try to eliminate noise= =20 that could happen for 90 consecutive seconds, and took for each of those th= e=20 median of the 6 runs. It's much less noisy than my previous runs but still= =20 not as as stable as I'd like to. The results are attached in graph form, as well as the raw data if someone= =20 wants it. As a conclusion, I don't think it's worth it to introduce a separate=20 execprocnode function for that case. It is likely the minor difference stil= l=20 observed can be explained to noise, as they fluctuate if you compare the mi= n,=20 max, average or median values from the results. Best regards, =2D-=20 Ronan Dunklau --nextPart5125411.fdRUmkzP2Q Content-Disposition: attachment; filename="results.csv" Content-Transfer-Encoding: 7Bit Content-Type: text/csv; charset="UTF-8"; name="results.csv" name,querynumber,run,value master,1,1,448.134618 master,1,2,449.589985 master,1,3,450.619392 master,1,4,451.835713 master,1,5,453.799955 master,1,6,449.656700 master,2,1,160.304157 master,2,2,159.194826 master,2,3,160.486337 master,2,4,157.327040 master,2,5,149.773621 master,2,6,156.001160 master,3,1,300.677621 master,3,2,300.906490 master,3,3,300.948030 master,3,4,300.494371 master,3,5,300.236476 master,3,6,300.537330 master,4,1,131.364657 master,4,2,120.390513 master,4,3,125.846061 master,4,4,131.216385 master,4,5,131.036531 master,4,6,132.669908 master,5,1,202.268035 master,5,2,203.257486 master,5,3,202.559354 master,5,4,202.392410 master,5,5,201.532070 master,5,6,196.208607 master,6,1,178.584481 master,6,2,177.955467 master,6,3,178.801931 master,6,4,174.769964 master,6,5,178.523056 master,6,6,178.089879 master,7,1,113.231133 master,7,2,113.978583 master,7,3,107.244092 master,7,4,113.309029 master,7,5,114.732538 master,7,6,112.608871 master,8,1,374.876726 master,8,2,377.042935 master,8,3,377.417160 master,8,4,379.001567 master,8,5,379.139665 master,8,6,378.489882 v6,1,1,774.599303 v6,1,2,794.282738 v6,1,3,794.573274 v6,1,4,786.462616 v6,1,5,793.436419 v6,1,6,794.077087 v6,2,1,181.684654 v6,2,2,181.511128 v6,2,3,171.686299 v6,2,4,156.607679 v6,2,5,150.534859 v6,2,6,153.857928 v6,3,1,437.601327 v6,3,2,438.129653 v6,3,3,438.291123 v6,3,4,440.916755 v6,3,5,441.174564 v6,3,6,440.738299 v6,4,1,147.996631 v6,4,2,148.126633 v6,4,3,146.419228 v6,4,4,130.344895 v6,4,5,131.744894 v6,4,6,133.263237 v6,5,1,225.757004 v6,5,2,225.600496 v6,5,3,225.576930 v6,5,4,226.347284 v6,5,5,224.425254 v6,5,6,218.768964 v6,6,1,196.128685 v6,6,2,197.337412 v6,6,3,198.729160 v6,6,4,197.664255 v6,6,5,200.419565 v6,6,6,200.076977 v6,7,1,125.414408 v6,7,2,122.788568 v6,7,3,124.698258 v6,7,4,112.768749 v6,7,5,113.066527 v6,7,6,111.011427 v6,8,1,643.292463 v6,8,2,644.358034 v6,8,3,643.875166 v6,8,4,642.763715 v6,8,5,642.806728 v6,8,6,641.536225 v8,1,1,780.693054 v8,1,2,780.707289 v8,1,3,779.381265 v8,1,4,755.864425 v8,1,5,790.653100 v8,1,6,788.112981 v8,2,1,159.354465 v8,2,2,157.702581 v8,2,3,159.168693 v8,2,4,154.088551 v8,2,5,158.638991 v8,2,6,160.611918 v8,3,1,442.174582 v8,3,2,442.874461 v8,3,3,443.113160 v8,3,4,443.669698 v8,3,5,444.011233 v8,3,6,443.424492 v8,4,1,133.106784 v8,4,2,130.355708 v8,4,3,132.366164 v8,4,4,131.248541 v8,4,5,131.318346 v8,4,6,131.119015 v8,5,1,225.082939 v8,5,2,225.890904 v8,5,3,225.603399 v8,5,4,220.509114 v8,5,5,222.529699 v8,5,6,224.236719 v8,6,1,199.296811 v8,6,2,192.199622 v8,6,3,196.138832 v8,6,4,197.790249 v8,6,5,197.283257 v8,6,6,198.136669 v8,7,1,110.023948 v8,7,2,111.809473 v8,7,3,113.334062 v8,7,4,111.040694 v8,7,5,110.979502 v8,7,6,113.120494 v8,8,1,640.786958 v8,8,2,640.502172 v8,8,3,640.414708 v8,8,4,638.864723 v8,8,5,636.939979 v8,8,6,639.068674 --nextPart5125411.fdRUmkzP2Q Content-Disposition: attachment; filename="head, v6 and v8.png" Content-Transfer-Encoding: base64 Content-Type: image/png; name="head, v6 and v8.png" iVBORw0KGgoAAAANSUhEUgAAAlgAAAFzCAYAAADi5Xe0AAA93ElEQVR4Xu3dC7DdVX33fwYeIkLG S0vbsWpVSk2ktMVUWxUVfZ7pxRte2gLzbwu02mktvQ0qEWvjJQVp+7ctUK+tWu0gWqoicquXEYeL TaBqKY5QkcYIFA2XAEkISch6WL+Zz3lOPmeHz078rcPvd877NfMeTvbeh+Sbtfjt5T77HPcpAAAA 6NU+fgMAAAC+PxywAAAAesYBCwAAoGccsAAAAHrGAQsAAKBnHLAAAAB6xgELAACgZxywAAAAesYB CwAAoGccsAAAAHrGAQsAAKBnHLAAAAB6xgELAACgZxywAAAAesYBCwAAoGccsAAAAHrGAQsAAKBn HLAAAAB6xgELAACgZxywAAAAesYBCwAAoGccsAAAAHrW+wHrDW94Q9cQzeef7aabbirvf//7y5vf /Obyp3/6p+UDH/hAue222/xhg9D338vtt99ezj333PK2t72tvPGNbyx//ud/Xv75n/+53HXXXf5Q AAAWJA5YDVx33XVl5cqVM7+festb3lLuuecef/jDrs+/l3qIXLVq1ZzZa29961u7wxcAAAsdB6ye 3Xfffd1B4k1velP5r//6r3L//feXDRs2lHe9613d7/0v//Iv/ikPuz7/Xv7+7/+++3edd9555e67 7y4PPPBA98+Pfexj3e0f+tCH/FMAAFhwOGD1bM2aNd3v8YlPfGKX27/73e92t59++um73D4Eff69 1INl/Xdt3rx5l9vvvffe7vb65VIAABa6ZgesrVu3du/DqU+ob3/728vFF1/cvZox244dO8rnPve5 csYZZ3Tv1amHj0suuaRs3759l8dV1157bXnve99b/uzP/qx77GmnnVY+/elPd68QuXrbBRdc0L33 p74Hqv456m17e5DQ4egv//Iv/a5O/fPX+7/3ve+Vj3zkI93H9T1Y349p59VM9ff+h3/4h+6AU19B +8xnPtP9/c62t38vezJ/fd9V/XjTpk27PKYeuOrt9X4AABa6Zges+mSvj9VnP/vZmcft3Lmze+O3 P6ZW3xxe75d6CPPHqE9+8pMzj6vqIe7v/u7v5jzugx/84MzHe+PMM8/sPvfWW2/d5fb169d3t599 9tndr//qr/6q+3X9sthFF13UHS7roecf//Efp36T957Mq9tXr14957Gz/76/37+XaeevB+T66/ql 0PqqVf196z/rr+vt9e8EAICFrtkBqx406pNxfYWkPtHrNrnmmmu62+oTd32S3rZtW7n55pu7J+p6 e/1Sm+hN01dddVX376vvc/rCF77Q3VbfOD7bv/3bv3W311dKbrjhhu6x//mf/7nLG6/3xhVXXNF9 7qWXXrrL7fWVonr7l7/85e7X9RWn+uvZBxdVX6HbsmXLLp8/yZ7Mq3/3O9/5zu7vr75yVF/pqrfV V5bk+/17mXb+ejCuB8T6Ctns2esrmf/6r/+6y8EZAICFqtkB65vf/ObMbfryUH0lR973vvd1t9Uv K81Wv8us3v6e97xnl9td/TJifdwpp5yyy+36965du3aX2/XeqHSQ2J16cKlfqpv9ZbJ6WKhfbjv1 1FNnDk767sH6itI3vvGN7uB45513zrz5+8ILL5z5/D2xu3k104033jhzW331rN5W/7zy/f69TDt/ fcWqvv/Mv4uy/rp+eZIDFgBgMWh2wKrvwZL6pOpP4vWVmNlPwJ6/UlN95zvf6V6JqV8m05fi/GBQ 339Ub9u4ceMut+vQ4Y/fE/U74Orn68tk3/rWt7pfn3POOTOPqYeQelt9dWi2+mevt+/ufUyTTDOv bpv9910POf7YPv5epplfX97Ul0Trn+WOO+6Y+XLwl770pZnHAgCwUDU7YDm/3V/h8Or9Ug8Bk94/ 5P/OSgccf6N8fcP3pMfviXpoqp+vL5PVg0/9df2Sm+ggU78EN1t9JaveXl/tSfZk3km3Tbq9j7+X aeaf/Yb32erPx6q3z/4yMQAAC9XDdsDSe5Wm+cGb+s68d7zjHd17fur7t/SdbbXZX3bSd7H5G8rr Kzf+Z9hT9TBSX1mrr0LVV2bqYap+iWz276/3kPl30dUDV729vucp2ZN5dzeT397H38s08+sg598x qi9xTnPABABg7B62A5Z+8Ka/J2iS+gbp+tj6yo58+9vfnvl3zn5VRu91uvLKK2duq66++uo5f4a9 oVdt6vuJ6j/rj5+YTW/6nv0m/eq///u/u9vr3MmezLu7mfz2vv5e0vz6bsbZX7Ks6g9brbfX+wEA WOgetgNWfaKvv66viNQvPdXvlqtvcK9vAq+31/fsiL7s9u///u/d4aL+jKn6HXn6d84+iHzlK1/p bquvFNV/b33l6Prrr595BWfSn21PzD7o1PxLYfX9SfWN6PUgccstt3Sv+tQ3udefaVUfX99TlezJ vLubyW/v6+8lza8D2Ec/+tHuy4J1/voqmV6V8x8zAQDAQvSwHbDql5DqdwrOfrJW9RDwP//zPzOP rf+3K/6Y2X3961+feWz9ctWkn8Gl/6uW2myTbkvql8jq5+hnP7n6HiX//Wv11Sv/0tkkezLv7v78 fvue/r08lIeav35pVO/D8urt/qVTAAAWooftgFXVN37Xw0h9r1F970591ad+R1p95WO2+mrLxz/+ 8e6VnXr4qm8A/9rXvla++MUvdv/O+uWv2eqrPvUHXtaffl6/3FZfTdGbzP3PMOm25POf/3z3OfrZ T5PU9039zd/8Tfeeo/o+pfolNf8p7LuzJ/Pu7s8/6fY9+Xt5KGn+eoj61Kc+1c1dv1mh/rO+csXh CgCwWPR+wBqbepipb7gHAADoy6I/YF122WXlwx/+sN8MAACw1xb9Aav+hPP6/5UHAADQl0V/wAIA AOgbBywAAICeccACAADoGQcsAACAnnHAAgAA6BkHLAAAgJ5xwAIAAOgZBywAAICeccACAADoGQcs AACAnnHAAgAA6BkHLAAAgJ5xwAIAAOgZBywAAICeccACBuSBnaX8z8adU1Ufu+A88EDZ8T+3TlV9 7ODs3FF23rduqupjASxcHLCAAfnt928p//u0TVNVH7vQ3PnqY8v3/s8zp6o+dmh2fPmny/bP/6+p qo8FsHBxwAIGxA9RqWn86I/+qN/Uu75+Dz9EpfbWjh07yhvf+MZy6KGHluc85znlqquu8ofsFT9E pfbWjTfeWI4++ujuz/+qV72qrFu3zh8C4GHGAQsYED9ApabR1+HnofT1e/gBKrW3PvjBD5Z3vOMd ZcuWLeXCCy/sDll98ANUam+9/OUvL5///OfL1q1by6WXXlp+5Vd+xR8C4GHGAQsYED9ApaZRDz+f +tSnyk/+5E+WH/uxHyuXXHLJzH333HNPec1rXlOWLVtWfvu3f7vce++9M/d95StfKS972cu6V0mO OOKIct55583cd8cdd5Rf+7Vf6z7vox/96GAPWPXgpFd36j+f97zndR/XA8p//Md/zH5oL/wAlUp2 9+d/ylOe0h0Oq82bN5dDDjlk5nMADAMHLGBA/ACVmkY9/Lz5zW/unpAvuuii7pAlq1atKt/4xje6 V0LqIWz16tUz9x111FHdqzv1vnPPPbccfvjhM/e97nWvKx/60Ie6A1r9eKgHrDrfhz/84e7jj3zk IzPzPe1pTytnnnlmd0B80YteVL797W/P/rS95geoVLK7P/8rX/nK8oUvfKHcf//93T9f8YpXzP40 AAPAAQsYED9ApaZRDz8bN27c5dfycz/3c2X79u3dxw888EB59rOfPXPfbPUxsz+vvqJ19913dx/X w8lQD1hf+tKXulfmqvpK3Zo1a7qPn/CEJ5S3v/3tZdOmTd0h8vjjj5/9aXvND1CpZHd//q9+9avl SU96Uvf3Xg/M9dcAhoUDFjAgfoBKTcMPP7N//eQnP7n7tapP2nLnnXeWv/3bv+2e2J/1rGft8nn1 Sb2+Ubzatm3bnN9jb/kBKpXUP9vTn/707pWeI488sjtEVvVLbPXVNz2mvpLVBz9ApZLd/flf/OIX d69c6T1YvIIFDA8HLGBA/ACVmoYffmb/esWKFTOvYLn6pP3Od76zeyKvX0b0z6sHsOqWW26Z83vs LT9ApaZRXwH6i7/4i/Inf/InM7c9//nP7/7cVT2kLF++fOa+74cfoFLTmPTn/4mf+ImZdeM9WMAw ccACBsQPUKlp+OFn9q9POeWU8vWvf717heSf/umfuje1S31Vp74RvH4p8OSTT97l80499dTy7ne/ u3sVqP64A/899pYfoFLTOOecc7o/38UXXzxz22mnnVbOOuusbu7zzz+/vPa1r531GXvPD1CpaUz6 8//qr/5q9+XC++67rzsA1x/ZAGBYOGABA+IHqNQ0/PAz+9d33XVX+a3f+q3uFZFf+qVfKjfccMPM ffW9SfW71uqrVe9///t3+bx6sPr1X//17r1YH//4x+f8HnvLD1Cpadx2223dKzz1lR6pB5M/+qM/ 6g6R9TsK62P64Aeo1DQm/fn1c7B+/Md/vPtn/TWAYeGABQyIH6BSC40foFJD4weoFICFiwMWMCCr /uW+8v/93eapqo9daO5+yxvKHb9+9FTVxw7Njv/41bLjih+frgcfC2Dh4oAFAADQMw5YAAAAPeOA BQAA0DMOWAAAAD3jgAUAANAzDlgAAAA944AFAADQMw5YAAAAPeOABQAA0DMOWAAAAD3jgAUAANAz DlgAAAA944AFAADQMw5YAAAAPeOABQAA0LPeD1jXX399ec5znlMOOuig8vznP7/ceOONM/ddd911 ZdmyZWXJkiVlxYoVZe3atVPdBwAAMCa9H7COPPLIcuGFF5b77ruvnH/++eUFL3jBzH0nnHBCOeOM M8rGjRvLypUryzHHHDPVfQAAAGPS+wHrgAMOKJs3b+4+3rRpU3nkIx85c199hWrDhg3dx+vWrSuH HXbYVPcBAACMSe8HrOc973nloosuKlu3bi0XX3xxee5znztz39KlS8v27du7j+v9Bx544FT3AQAA jEnvB6w1a9Z076PaZ599yv7777/Le6n222+/mY937txZ9t1336nuAwAAGJPeD1jPfOYzu1eu9B6s 2a9gHXzwwWXbtm3dx/VVqvqq1TT3uVtvvbVcc801RERERL1Vzxd96f2ANftLff4erMMPP7zcfPPN 3cfr168vy5cvn+o+AACAMen9gPXCF76wXH755WXLli3dK1n1RzbISSedVFavXt0dvFatWlVOPPHE qe4bi/vXXFluP+4l5Xv/55kPWX1MfSwAAFiYej9g6edg1Tep13/WX8vVV19dDj300O69WfW7BuvP vprmvrG4/biXzjlM7a76WAAAsDD1fsBazPwQlQIAAAsTB6we+QEqJTtvv6Rsv/zJZfvn/9dD9+Bj 6mMBAMCwccDqkR+gUrL9iqfMPUztrgcfCwAAho0DVo/8AJWSOYeoEAAAGDYOWD3yA1RK/ACVAgAA w8YBq0d+gEqJH6BSAABg2Dhg9cgPUCnxA1QKAAAMGwesHvkBKiV+gEoBAIBh44DVIz9ApcQPUCkA ADBsHLB65AeolPgBKgUAAIaNA1aP/ACVEj9ApQAAwLBxwOqRH6BS4geoFAAAGDYOWD3yA1RK/ACV AgAAw8YBq0d+gEqJH6BSAABg2Dhg9cgPUCnxA1QKAAAMGwesHvkBKiV+gEoBAIBh44DVIz9ApcQP UCkAADBsHLB65AeolPgBKgUAAIaNA1aP/ACVEj9ApQAAwLBxwOqRH6BS4geoFAAAGDYOWD3yA1RK /ACVAgAAw8YBq0d+gEqJH6BSAABg2Dhg9cgPUCnxA1QKAAAMGwesHvkBKiV+gEoBAIBh44DVIz9A pcQPUCkAADBsHLB65AeolPgBKgUAAIaNA1aP/ACVEj9ApQAAwLBxwOqRH6BS4geoFAAAGDYOWD3y A1RK/ACVAgAAw8YBq0d+gEqJH6BSAABg2Dhg9cgPUCnxA1QKAAAMGwesHvkBKiV+gEoBAIBh44DV Iz9ApcQPUCkAADBsHLB65AeolPgBKgUAAIaNA1aP/ACVEj9ApQAAwLBxwOqRH6BS4geoFAAAGDYO WD3yA1RK/ACVAgAAw8YBq0d+gEqJH6BSAABg2Dhg9cgPUCnxA1QKAIChuX/NleX2414y57nOq4+p j13oOGD1yDdRSvwAlQIAYGhuP+6lc57ndld9rOy8/ZKy/fInz3mum9ODj6mPHQsOWD3yDZSSOZso BADA0PhzXEq2X/GUOc9zu+3Bx44FB6we+eZJyZwNFAIAYGj8OS4l/hyXGgsOWD3yzZMS3zwpAACG xp/jUuLPcamx4IDVI988KfHNkwIAYGj8OS4l/hyXGoveD1g7duwor33ta8tBBx1UDj300HLZZZfN 3HfdddeVZcuWlSVLlpQVK1aUtWvXTnXfWPjmSYlvnhQAAEPjz3Ep8ee41Fj0fsA6++yzy6mnnlo2 b95czjvvvO6QJSeccEI544wzysaNG8vKlSvLMcccM9V9Y+GbJyW+eVIAAAyNP8elxJ/jUmPR+wHr yCOPLNdcc43f3KmvUG3YsKH7eN26deWwww6b6r6x8M2TEt88KQAAhsaf41Liz3Gpsej9gPXYxz62 nHbaaeXRj350ecYznlFuuummmfuWLl1atm/f3n28devWcuCBB05131j45kmJb54UAABD489xKfHn uNRY9H7A2nfffcvrX//6cu+993ZfInzpS//fDxPbb7/9Zj7euXNn99hp7hsL3zwp8c2TAgBgaPw5 LiX+HJcai94PWAcccED3Pqrq/vvv717JkoMPPrhs27at+7i+SlVftZrmPnfrrbd2X4YcWr55Uvo8 3zwp/32JiIge7vw5LqXP8+e4lP++fVbPF33p/YC1fPnysn79+u7j++67rzzmMY+Zue/www8vN998 c/dxfUx97DT3jYVvnpT45kkBADA0/hyXEn+OS41F7wes+h2Ap59+evcq1LnnnluOO+64mftOOumk snr16rJp06ayatWqcuKJJ05131j45kmJb54UAABD489xKfHnuNRY9H7A2rJlSzn++OPLox71qO47 Cm+55ZaZ+66++uruxzbsv//+3XcN1p99Nc19Y+GbJyW+eVIAAAyNP8elxJ/jUmPR+wFrMfPNkxLf PCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9x qbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2T AgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJca Cw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkA AIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHg gNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBg aPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5Y PfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbG n+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj 3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5 LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLN kxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS 4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp 8c2TAgBgaPw5LiX+HJcaCw5YPfLNkxLfPCkAAIbGn+NS4s9xqbHggNUj3zwp8c2TAgBgaPw5LiX+ HJcaCw5YE6y5cUc59qzN5X+ftukhq4+pjxXfPCnxzZMCAGBo/DkuJf4clxoLDlgTHHt2PlzNHLIe fKz45kmJb54UAABD489xKfHnuNRYcMCawA9RKfHNkxLfPCksLDtvv6Rsv/zJc9Z5Tg8+pj4WAIbI n+NSMudaFxoLDlgT+AEqJb55UuKbJ4Vhun/NleX2414yZ529+pj6WNl+xVPmrPFue/CxADBEfq1L yZzrXGgsOGBN4AeolPjmSYlvnhSG6fbjXjpnjXdXfaz4+qYAYIj8OpcSv8alxoID1gR+gEqJb56U +OZJYZh8fVPi65sCgCHya1xK/BqXGgsOWBP4ASolvnlS4psnhWHy9U2Jr28KAIbIr3Ep8Wtcaiw4 YE3gB6iU+OZJiW+eFIbJ1zclvr4pABgiv8alxK9xqbFodsD64he/WPbZZ9d//XXXXVeWLVtWlixZ UlasWFHWrl071X3zzQ9QKfHNkxLfPCkMk69vSnx9UwAwRH6NS4lf41Jj0eyAddRRR805YJ1wwgnl jDPOKBs3biwrV64sxxxzzFT3zTc/QKXEN09KfPOkMEy+vinx9U0BwBD5NS4lfo1LjUWTA1Z99eoF L3jBnANWfYVqw4YN3cfr1q0rhx122FT3zTc/QKXEN09KfPOkMEy+vinx9U0BwBD5NS4lfo1LjUWT A1Z99eqyyy6bc8BaunRp2b59e/fx1q1by4EHHjjVffPND1Ap8c2TEt88KQyTr29KfH1TADBEfo1L iV/jUmPR+wFLr15VfsDab7/9Zj7euXNn2Xfffae6b775ASolvnlS4psnhWHy9U2Jr28KAIbIr3Ep 8Wtcaix6P2Dp1avKD1gHH3xw2bZtW/dxfZWqvmo1zX3u1ltvLddcc02z/ACV0uf55knp83zzpPzP S8PI1zelz/P1TfnvS0Q0hPwal9Ln+TUu5b9vn9XzRV96P2DVQ5Unhx9+eLn55pu7j9evX1+WL18+ 1X3zzQ9QKfHNkxLfPCkMk69vSnx9UwAwRH6NS4lf41Jj0fsBazZ/Beukk04qq1evLps2bSqrVq0q J5544lT3zTc/QKXEN09KfPOkMEy+vinx9U0BwBD5NS4lfo1LjcW8HrCuvvrqcuihh5b999+/+67B +rOvprlvvvkBKiW+eVLimyeFYfL1TYmvbwoAhsivcSnxa1xqLJoesMbKD1Ap8c2TEt88KQyTr29K fH1TADBEfo1LiV/jUmPBAWsCP0ClxDdPSnzzpDBMvr4p8fVNAcAQ+TUuJX6NS40FB6wJ/ACVEt88 KfHNk8Iw+fqmxNc3BQAtrblxRzn2rM1znuu8+pj6WPFrXEr8GpcaCw5YE/gmSolvnpT45klhmHx9 U+LrmwKAlo49Ox+uVH2s+DUuJX6NS40FB6wJfAOlxDdPSnzzpDBMvr4p8fVNAUBL/hyXEr/GpcSv camx4IA1gW+elPjmSYlvnhSGydc3Jb6+KQBoyZ/jUuLXuJT4NS41FhywJvDNkxLfPCnxzZPCMPn6 psTXNwUALflzXEr8GpcSv8alxoID1gS+eVLimyclvnlSGCZf35T4+qYAoCV/jkuJX+NS4te41Fhw wJrAN09KfPOkxDdPCsPk65sSX98UALTkz3Ep8WtcSvwalxoLDlgT+OZJiW+elPjmSWGYfH1T4uub AoCW/DkuJX6NS4lf41JjwQFrAt88KfHNkxLfPCkMk69vSnx9UwDQkj/HpcSvcSnxa1xqLDhgTeCb JyW+eVLimyeFYfL1TYmvbwoAWvLnuJT4NS4lfo1LjQUHrAl886TEN09KfPOkMEy+vinx9U0BQEv+ HJcSv8alxK9xqbHggDWBb56U+OZJiW+eFIbJ1zclvr4pAGjJn+NS4te4lPg1LjUWHLAm8M2TEt88 KfHNk8Iw+fqmxNc3BQAt+XNcSvwalxK/xqXGggPWBL55UuKbJyW+eVIYJl/flPj6pgCgJX+OS4lf 41Li17jUWHDAmsA3T0p886TEN08Kw+TrmxJf3xQAtOTPcSnxa1xK/BqXGgsOWBP45kmJb56U+OZJ YZh8fVPi65sCgJb8OS4lfo1LiV/jUmPBAWsC3zwp8c2TEt88KQyTr29KfH1TANCSP8elxK9xKfFr XGosOGBN4JsnJb55UuKbJ4Vh8vVNia9vCgBa8ue4lPg1LiV+jUuNBQesCXzzpMQ3T0p886QwTL6+ KfH1TQFAS/4clxK/xqXEr3GpseCANYFvnpT45kmJb54UhsnXNyW+vikAaMmf41Li17iU+DUuNRYc sCbwzZMS3zwp8c2TwjD5+qbE1zcFAC35c1xK/BqXEr/GpcaCA9YEvnlS4psnJb55UmhrzY07yrFn bZ6zzl59TH2s+PqmxNc3BQAt+bUuJX6NS4lf41JjwQFrAt88KfHNkxLfPCm0dezZ+XCl6mPF1zcl vr4pAGjJr3Mp8WtcSvwalxoLDlgT+OZJiW+elPjmSaEtX9+U+PqmxNc3BQAt+TUuJX6NS4lf41Jj wQFrAt88KfHNkxLfPCm05eubEl/flPj6pgCgJb/GpcSvcSnxa1xqLDhgTeCbJyW+eVLimyeFtnx9 U+LrmxJf3xQAtOTXuJT4NS4lfo1LjQUHrAl886TEN09KfPOk0Javb0p8fVPi65sCgJb8GpcSv8al xK9xqbHggDWBb56U+OZJiW+eFNry9U2Jr29KfH1TANCSX+NS4te4lPg1LjUWHLAm8M2TEt88KfHN k0Jbvr4p8fVNia9vCgBa8mtcSvwalxK/xqXGggPWBL55UuKbJyW+eVJoy9c3Jb6+KfH1TQFAS36N S4lf41Li17jUWHDAmsA3T0p886TEN08Kbfn6psTXNyW+vikAaMmvcSnxa1xK/BqXGgsOWBP45kmJ b56U+OZJoS1f35T4+qbE1zcFAC35NS4lfo1LiV/jUmPBAWsC3zwp8c2TEt88KbTl65sSX9+U+Pqm AKAlv8alxK9xKfFrXGosOGBN4JsnJb55UuKbJ4W2fH1T4uubEl/fFAC05Ne4lPg1LiV+jUuNBQes CXzzpMQ3T0p886TQlq9vSnx9U+LrmwKAlvwalxK/xqXEr3GpseCANYFvnpT45kmJb54U2vL1TYmv b0p8fVMA0JJf41Li17iU+DUuNRYcsCbwzZMS3zwp8c2TQlu+vinx9U2Jr28KAFrya1xK/BqXEr/G pcaCA9YEvnlS4psnJb55UmjL1zclvr4p8fVNAUBLfo1LiV/jUuLXuNRYcMCawDdPSnzzpMQ3Twpt +fqmxNc3Jb6+KQBoya9xKfFrXEr8GpcaCw5YE/jmSYlvnpT45kmhLV/flPj6psTXNwUALfk1LiV+ jUuJX+NSY8EBawLfPCnxzZMS3zwptOXrmxJf35T4+qYAoCW/xqXEr3Ep8Wtcaiw4YE3gmyclvnlS 4psnhbZ8fVPi65sSX98Uhuv+NVeW2497yZy19upj6mNl5+2XlO2XP3nOWs/pwcfUxwIt+TUuJb7P UzJnn4fGovcD1lVXXVWOOOKI8shHPrI861nPKtdff/3Mfdddd11ZtmxZWbJkSVmxYkVZu3btVPfN N988KfHNkxLfPCm05eubEl/flPj6pjBctx/30jnrvLvqY2X7FU+Zs8677cHHAi35NS4lvsdTMmeP h8ai9wPWU5/61HLBBReULVu2lNNPP70897nPnbnvhBNOKGeccUbZuHFjWblyZTnmmGOmum+++eZJ iW+elPjmSaEtX9+U+PqmxNc3heHyNU6Jr3EKaMmvcSnx/Z0S39+psej9gDXb5s2by0EHHTTz6/oK 1YYNG7qP161bVw477LCp7ptvvnlS4psnJb55UmjL1zclvr4p8fVNYbh8jVPia5wCWvJrXEp8f6fE 93dqLJoesNavX1+e8YxnzPx66dKlZfv27d3HW7duLQceeOBU98033zwp8c2TEt88KbTl65sSX9+U +PqmMFy+xinxNU4BLfk1LiW+v1Pi+zs1Fk0PWKeddlq58MILZ3693377zXy8c+fOsu+++05133zz zZMS3zwp8c2TQlu+vinx9U2Jr28Kw+VrnBJf4xTQkl/jUuL7OyW+v1Nj0eyAde2115aTTz55l9sO Pvjgsm3btu7j+ipVfdVqmvvcrbfeWq655ppm+eZJ6fN886T0eb55Uv7npX7z9U3p83x9U/o8X9+U /3mp/8659Pryyv//rjlr7dXH1Mfq83yNU/o8X+OU/3mJ+sz3eUqf5/s7pc/z/Z3yP2+f1fNFX5oc sOqXBl/96ld3B6XZDj/88HLzzTfPPGb58uVT3TfffPOkxDdPSnzzpNCWr29KfH1T4uubQnvHnr15 zjrvrvpY8TVOia9xaqj4MRULg+/xlPg6p2TOOofGovcDVv0xDS960Yu6N7i7k046qaxevbps2rSp rFq1qpx44olT3TfffPOkxDdPSnzzpNCWr29KfH1T4uubQnu+xinxNU6Jr3FqqPgxFQuD7++U+Bqn ZM4ah8ai9wPWIYccUvbZZ59dkquvvroceuihZf/99+++a7D+7Ktp7ptvvnlS4psnJb55UmjL1zcl vr4p8fVNoT1f45T4GqfE1zg1VD5fSny+FNry/Z0SX9+U+PqmxqL3A9ZC4JsnJb55UuKbJ4W2fH1T 4uubEl/fFNrzNU6Jr3FKfI1TQ+XzpcTnS6Et398p8fVNia9vaiw4YE3gmyclvnlS4psnhbZ8fVPi 65sSX98U2vM1TomvcUp8jVND5fOlxOdLoS3f3ynx9U2Jr29qLDhgTeCbJyW+eVLimyeFtnx9U+Lr mxJf3xTa8zVOia9xSnyNU62tuXFHOfas/Eb/+pj6WPH5UuLzpdCWr3NKfH1T4uubGgsOWBP45kmJ b56U+OZJoS1f35T4+qbE1zeF9nyNU+JrnBJf41RrfBfl4uZrnBJf35T4+qbGggPWBL55UuKbJyW+ eVJoy9c3Jb6+KfH1TaE9X+OU+BqnxNc41ZrPlxKfLyU+Xwpt+fqmxNc3Jb6+qbHggDWBb56U+OZJ iW+eFNry9U2Jr29KfH1TaM/XOCW+xinxNU615vOlxOdLic+XQlu+vinx9U2Jr29qLDhgTeCbJyW+ eVLimyeFtnx9U+LrmxJf3xTa8zVOia9xSnyNU635fCnx+VLi86XQlq9vSnx9U+LrmxoLDlgT+OZJ iW+elPjmSS00Q/spzr6+KfH1TcmcOUNoz9c4Jb7GKfE1TrXm86XE50uJz5dCW76+KfH1TYmvb2os OGBN4JsnJb55UuKbJ9Xa3n4H0d7+32QM7ac4+5wp8TlTMmfGENrzNU6Jr3FKfI1Trfl8KfH5UuLz pdCWr29KfH1T4uubGgsOWBP45kmJb56U+OZJtba330G01/83GRNmfKha8xlT4jOmxOdLoT1f45T4 GqfE1zjVms+XEp8vJT5fCm35+qbE1zclvr6pseCANYFvnpT45kmJb55Uaz5fSny+lPh8qdZ8vpT4 fCnx+VJoz9c4Jb7GKfE1TrXm86XE50uJz5dCW76+KfH1TYmvb2osOGBN4JsnJb55UuKbJ9Waz5cS ny8lPl+qNZ8vJT5fSny+FNrzNU6Jr3FKfI1Trfl8KfH5UuLzpdCWr29KfH1T4uubGgsOWBP45kmJ b56U+OZJtebzpcTnS4nPl2rN50uJz5cSny+F9nyNU+JrnBJf41RrPl9KfL6U+HwptOXrmxJf35T4 +qbGggPWBL55UuKbJyW+eVKt+Xwp8flS4vOlWvP5UuLzpcTnS6E9X+OU+BqnxNc41ZrPlxKfLyU+ Xwpt+fqmxNc3Jb6+qbHggDWBb56U+OZJiW+eVGs+X0p8vpT4fKnWfL6U+Hwp8flSQ7W330U6RL7G KfFZU+JrnGrN50uJz5cSny+Ftnx9U+LrmxJf39RYcMCawDdPSnzzpMQ3T6o1ny8lPl9KfL5Uaz5f Sny+lPh8qdb29sd07O13kQ7t56BVPmtKfM6UzJk11JrPlxKfLyU+Xwpt+fqmxNc3Jb6+qbHggDWB b56U+OZJiW+eVGs+X0p8vpT4fKnWfL6U+Hwp8flSre3tj+nw+VIytJ+DVvmcKfEZUzJnzlBrPl9K fL6U+HwptOXrmxJf35T4+qbGggPWBL55UuKbJyW+eVKt+Xwp8flS4vOlWvP5UuLzpcTnS7Xm86XE 50uJz5eaDz5jSnzGlPiMqdZ8vpT4fCnx+VJoy9c3Jb6+KfH1TY0FB6wJfPOkxDdPSnzzpFrz+VLi 86XE50u15vOlxOdLic+Xas3nS4nPlxKfLzUffMaU+Iwp8RlTrfl8KfH5UuLzpdCWr29KfH1T4uub GgsOWBP45kmJb56U+OZJtebzpcTnS4nPl2rN50uJz5cSny/Vms+XEp8vJT5faj74jCnxGVPiM6Za 8/lS4vOlxOdLtba370NcKN/o4XOmxOdMia9vaiw4YE3gmyclvnlS4psn1ZrPlxKfLyU+X6o1ny8l Pl9KfL5Uaz5fSny+lPh8qfngM6bEZ0yJz5hqzedLic+XEp8v1drevg9xoXyjh8+YEp8xJXPmDI0F B6wJfPOkxDdPSnzzpFrz+VLi86XE50u15vOlxOdLic+Xas3nS4nPlxKfLzUffMaU+Iwp8RlTrfl8 KfH5UuLzpVrz+VLi86VkaN/o4fOlxOdLyZwZQ2PBAWsC3zwp8c2TEt88qdZ8vpT4fCnx+VKt+Xwp 8flS4vOlWvP5UuLzpcTnS80HnzElPmNKfMZUaz5fSny+lPh8qdZ8vpT4fCnx+VKt+Xwp8flS4vOl xoID1gS+eVLimyclvnlSrfl8KfH5UuLzpVrz+VLi86XE50u15vOlxOdLic+Xmg8+Y0p8xpT4jKnW fL6U+Hwp8flSrfl8KfH5UuLzpVrz+VLi86XE50uNBQesCXzzpMQ3T0p886Ra8/lS4vOlxOdLtebz pcTnS4nPl2rN50uJz5cSny81H3zGlPiMKfEZU635fCnx+VLi86Va8/lS4vOlxOdLtebzpcTnS4nP lxoLDlgT+OZJiW+elPjmSbXm86XE50uJz5dqzedLic+XEp8v1ZrPlxKfLyU+X2o++Iwp8RlT4jOm WvP5UuLzpcTnS7Xm86XE50uJz5dqzedLic+XEp8vNRYcsCbwzZMS3zwp8c2Tas3nS4nPlxKfL9Wa z5cSny8lPl+qNZ8vJT5fSny+1HzwGVPiM6bEZ0y15vOlxOdLic+Xas3nS4nPlxKfL9Waz5cSny8l Pl9qLDhgTeCbJyW+eVLimyfVms+XEp8vJT5fqjWfLyU+X0p8vlRrPl9KfL6U+Hyp+eAzpsRnTInP mGrN50uJz5cSny/Vms+XEp8vJT5fqjWfLyU+X0p8vtRYcMCawDdPSnzzpMQ3T6o1ny8lPl9KfL5U az5fSny+lPh8qdZ8vpT4fCnx+VLzwWdMic+YEp8x1ZrPlxKfLyU+X6o1ny8lPl9KfL5Uaz5fSny+ lPh8qbHggDWBb56U+OZJiW+eVGs+X0p8vpT4fKnWfL6U+Hwp8flSrfl8KfH5UuLzpeaDz5gSnzEl PmOqNZ8vJT5fSny+VGs+X0p8vpT4fKnWfL6U+Hwp8flSY8EBawLfPCnxzZMS3zyp1ny+lPh8KfH5 Uq35fCnx+VLi86Va8/lS4vOlxOdLzQefMSU+Y0p8xlRrPl9KfL6U+Hyp1ny+lPh8KfH5Uq35fCnx +VLi86XGggPWBL55UuKbJyW+eVKt+Xwp8flS4vOlWvP5UuLzpcTnS7Xm86XE50uJz5eaDz5jSnzG lPiMqdZ8vpT4fCnx+VKt+Xwp8flS4vOlWvP5UuLzpcTnS40FB6wJfPOkxDdPSnzzpFrz+VLi86XE 50u15vOlxOdLic+Xas3nS4nPlxKfLzUffMaU+Iwp8RlTrfl8KfH5UuLzpVrz+VLi86XE50u15vOl xOdLic+XGgsOWBP45kmJb56U+OZJtebzpcTnS4nPl2rN50uJz5cSny/Vms+XEp8vJT5faj74jCnx GVPiM6Za8/lS4vOlxOdLtebzpcTnS4nPl2rN50uJz5cSny81FhywJvDNkxLfPCnxzZNqzedLic+X Ep8v1ZrPlxKfLyU+X6o1ny8lPl9KfL7UfPAZU+IzpsRnTLXm86XE50uJz5dqzedLic+XEp8v1ZrP lxKfLyU+X2osOGBN4JsnJb55UuKbJ9Waz5cSny8lPl+qNZ8vJT5fSny+VGs+X0p8vpT4fKn54DOm xGdMic+Yas3nS4nPlxKfL9Waz5cSny8lPl+qNZ8vJT5fSny+1FhwwJrAN09KfPOkxDdPqjWfLyU+ X0p8vlRrPl9KfL6U+Hyp1ny+lPh8KfH5UvPBZ0yJz5gSnzHVms+XEp8vJT5fqjWfLyU+X0p8vlRr Pl9KfL6U+HypseCANYFvnpT45kmJb55Uaz5fSny+lPh8qdZ8vpT4fCnx+VKt+Xwp8flS4vOl5oPP mBKfMSU+Y6o1ny8lPl9KfL5Uaz5fSny+lPh8qdZ8vpT4fCnx+VJjwQFrAt88KfHNkxLfPKnWfL6U +Hwp8flSrfl8KfH5UuLzpVrz+VLi86XE50vNB58xJT5jSnzGVGs+X0p8vpT4fKnWfL6U+Hwp8flS rfl8KfH5UuLzpcaCA9YEvnlS4psnJb55Uq35fCnx+VLi86Va8/lS4vOlxOdLtebzpcTnS4nPl5oP PmNKfMaU+Iyp1ny+lPh8KfH5Uq35fCnx+VLi86Va8/lS4vOlxOdLjQUHrAl886TEN09KfPOkWvP5 UuLzpcTnS7Xm86XE50uJz5dqzedLic+XEp8vNR98xpT4jCnxGVOt+Xwp8flS4vOlWvP5UuLzpcTn S7Xm86XE50uJz5caCw5YE/jmSYlvnpT45km15vOlxOdLic+Xas3nS4nPlxKfL9Waz5cSny8lPl9q PviMKfEZU+Izplrz+VLi86XE50u15vOlxOdLic+Xas3nS4nPlxKfLzUWHLAm8M2TEt88KfHNk2rN 50uJz5cSny/Vms+XEp8vJT5fqjWfLyU+X0p8vtR88BlT4jOmxGdMtebzpcTnS4nPl2rN50uJz5cS ny/Vms+XEp8vJT5faiw4YE3gmyclvnlS4psn1ZrPlxKfLyU+X6o1ny8lPl9KfL5Uaz5fSny+lPh8 qfngM6bEZ0yJz5hqzedLic+XEp8v1ZrPlxKfLyU+X6o1ny8lPl9KfL7UWAzmgHXdddeVZcuWlSVL lpQVK1aUtWvX+kPmjW+elPjmSYlvnlRrPl9KfL6U+Hyp1ny+lPh8KfH5Uq35fCnx+VLi86Xmg8+Y Ep8xJT5jqjWfLyU+X0p8vlRrPl9KfL6U+Hyp1ny+lPh8KfH5UmMxmAPWCSecUM4444yycePGsnLl ynLMMcf4Q+aNb56U+OZJiW+eVGs+X0p8vpT4fKnWfL6U+Hwp8flSrfl8KfH5UuLzpeaDz5gSnzEl PmOqNZ8vJT5fSny+VGs+X0p8vpT4fKnWfL6U+Hwp8flSYzGYA1Z99WrDhg3dx+vWrSuHHXaYPWL+ +OZJiW+elPjmSbXm86XE50uJz5dqzedLic+XEp8v1ZrPlxKfLyU+X2o++Iwp8RlT4jOmWvP5UuLz pcTnS7Xm86XE50uJz5dqzedLic+XEp8vNRaDOWAtXbq0bN++vft469at5cADD7RHzB/fPCnxzZMS 3zyp1ny+lPh8KfH5Uq35fCnx+VLi86Va8/lS4vOlxOdLzQefMSU+Y0p8xlRrPl9KfL6U+Hyp1ny+ lPh8KfH5Uq35fCnx+VLi86XGYjAHrP3222/m4507d5Z999131r3zyzdPSnzzpMQ3T6o1ny8lPl9K fL5Uaz5fSny+lPh8qdZ8vpT4fCnx+VLzwWdMic+YEp8x1ZrPlxKfLyU+X6o1ny8lPl9KfL5Uaz5f Sny+lPh8qbEYzAHr4IMPLtu2bes+rq9g1Ve0dud973tf+dmf/VkiIiKi3qrni74M5oB1+OGHl5tv vrn7eP369WX58uX2CAAAgHEYzAHrpJNOKqtXry6bNm0qq1atKieeeKI/BAAAYBQGc8C6+uqry6GH Hlr233//7jsK68/FAgAAGKPBHLAAAAAWCg5YAAAAPeOABQAA0DMOWAAAAD3jgNXQHXfcUR7/+Mf7 zYvGVVddVY444ojyyEc+sjzrWc8q119/vT9kQavfqFHnPuCAAxbl/PLFL36x7LPP4rvU3Hrrrd3c s1tMduzYUV772teWgw46qPsGpssuu8wfsqD52s/+YdqLRb3mPec5z+n2wPOf//xy4403+kMWtMX1 X/w8uuGGG8rTn/70RXdRne2pT31queCCC8qWLVvK6aefXp773Of6Qxa0erj84Ac/WO6+++5y5pln doesxeioo45alP8d1L1/9NFH+82Lxtlnn11OPfXUsnnz5nLeeed1h6zF6pxzzilvetOb/OYF78gj jywXXnhhue+++8r5559fXvCCF/hDFrTFd9WbJz/yIz9SPvCBDyzKJ5ZJ6kW2/q+Yxeree+/tXsla bOqrV/Wiuhj/O3jLW95S3va2t/nNi0Z9cr3mmmv85kWnfiXjp3/6p7tDxmJTr3n12l/Vn3FZv5qx mCy+q948ue2227p/LsYnlknqT+d/xjOe4TcvCvXC8uY3v7m8/OUv97sWvPrqVf3S0GL87+ClL31p 96rlox/96O6w8e1vf9sfsqA99rGPLaeddlo3f/1v/6abbvKHLAqnnHJKede73uU3LwrPe97zykUX XdT9399dfPHFi+6rGIvvqjfPFuMTyyT1QltfKl5s7rnnnvKDP/iD3Q/Q/fSnP+13L2h69apajP8d PO5xjyuXXnpp2b59e/nyl79cXvayl/lDFrR99923vP71r+9eva1fIqwHzsWm/o+rJz7xid3fwWK0 Zs2asmTJku6//3oNXLt2rT9kQVt8V715thifWNy1115bTj75ZL95UTn33HPLE57wBL95QdOrV9Vi /+/ggQceKI961KP85gWtfnlo48aN3cf3339/90rWYvOxj32sHHvssX7zovHMZz6ze+VK78HiFSz0 arE/sdQvDb761a/uXiJezOr/gl107z+w76JazP8t1FexfuiHfshvXtCWL1/e/fdf1SfYxzzmMfaI he+EE07o3ou7WC1durTb+xXvwULvFvOTSv0xDS960Ytm3uS42NT/T83LL7+8+1/v9Uskv/zLv+wP WTQW438H9bto65cG6xPMFVdcUX7nd37HH7KgrVy5svvu4fo/ruoruMcdd5w/ZME77LDDuj2wWL3w hS/sroH1O8nrK1n1RzYsJovvqjfPFuMTixxyyCGL+hWM+v6Dn/mZn+m+e/IXf/EXy3e+8x1/yKKx 2Na+qk+s9bvHHvGIR3T/Q+POO+/0hyxo9Un1+OOP7740Wt/kf8stt/hDFrwDDzyw+y7CxUo/B6v+ PdR/LrafBbj4rnoAAACNccACAADoGQcsAACAnnHAAgAA6BkHLAAAgJ5xwAIAAOgZBywAAICeccAC AADoGQcsAACAnnHAAgAA6BkHLAAAgJ5xwAIAAOgZBywAAICeccACAADoGQcsAACAnnHAAgAA6BkH LAAAgJ5xwAIAAOgZBywAAICeccACAADoGQcsAACAnnHAAgAA6BkHLAAAgJ5xwAKAPbDPPlw2AWRc KQBgD3DAAjANrhQAenfbbbeVo446qjzxiU8sn/jEJ3Y5lPgBZfav77777vKqV72qPPrRjy6veMUr yj333LPL41avXl2e/vSnl2XLlpVvfetb3e3f/OY3y9Oe9rSZx/z1X/91ecpTnlL233//8qlPfWqX z5/N/0wf+tCHysEHH9z16U9/ulx66aXlcY973MR/z1e/+tXyUz/1U+UlL3lJufPOO2fum/bPD2Dh 44AFoHe/+Zu/WT7ykY+UjRs3lt/4jd+Yc5iZbfav//iP/7hce+215b777isf/ehHyxve8IZdHvfu d7+73HXXXeWUU04pZ555Znf7WWedVU4++eSZx/zBH/xB2bRpU3ewq4ej2Z8/m/+ZTjzxxO5AdN55 53WHoLe+9a3l3nvvnfjvOf7447vf4+KLLy6///u/P3PftH9+AAsfBywAvfvhH/7h7gBS3XDDDXMO M7PN/vWTnvSksn379u7jBx54oBxyyCEz99XHffe73+0+vvLKK8sv/MIvdB+/+MUvLp/73OfmPEa/ nvSx/3r259Xfv/76jjvu2OX+2R/fdNNN3cdbtmzpXqWTaf/8ABY+DlgAerdkyZLugFHdf//9cw4o s83+9SMe8Yju16r+e2Y/bufOnd3H9d9dDzbf+973usPc1q1bZx4z27S/7+x/t9/nv64f11eoqvrn OOCAA2bum/bPD2Dh44AFoHf1PVD1/UjV+vXr5xxQZMOGDbv8+vGPf3zZtm3bzK9n80PPa17zmvKH f/iH5eijj565zR8z7e/7UJ/nv64ff+lLX+o+3rx5czer7MmfH8DCxn/xAHq3cuXK8t73vrd7T9Pv /d7v7XK4qO9n+uQnP9kdTn73d393l/vqr7/2ta91r0jVz3/2s589c58fUD7zmc90/673vOc9M7f5 Y6b9fR/q8/zX9eOf//mf796fdf7555fXve51M/ftyZ8fwMLGf/EAelfff3Xsscd2301Xv3Nu9uFC bxp/7GMf2x2OZt9X3/f08pe/vCxdurSsWLGifP3rX5+5zw8o9Q309bZ169bN3OaPmfb3fajP81/X j+shavny5eWVr3zlLt8puCd/fgALG//FA2iuxeHis5/9bDniiCP8ZgAYhP6vegBgWhywfuAHfqBc cMEFfjMADEL/Vz0AAIBFjgMWAABAzzhgAQAA9IwDFgAAQM84YAEAAPSMAxYAAEDPOGABAAD0jAMW AABAzzhgAQAA9IwDFgAAQM84YAEAAPSMAxYAAEDPOGABAAD0jAMWAABAzzhgAQAA9IwDFgAAQM84 YAEAAPSMAxYAAEDPOGABAAD0jAMWAABAz/4vRlyO2LfyTmMAAAAASUVORK5CYII= --nextPart5125411.fdRUmkzP2Q--