["$ string..G$ ","|concatenates strings|string.Concat method$concats 3 strings|concats four strings|concatenates 5 strings|concats string list|","ONHUYstringYHHusing System;HHclass ProgramH{HOstatic void Main()HO{YHOO// ... Create a new N reference.HOO//O It points to the literal.HOOYNY s1 = YUN2UY;YHHOO// ... Add another N to the start.HOOYNY s2 = YUN1UY Y+Y s1;HOOConsole.WriteLine(s2);HO}H}HHYHHN1N2YHHusing System;HHclass ProgramH{HOstatic void Main()HO{HHOON s1 = YUN2UY;HOON s2 = YN.ConcatY(YUN1UY, s1);HOOConsole.WriteLine(s2);HO}H}HHYHHN1N2YHHusing System;HHclass ProgramH{HOstatic void Main()HO{HOON s1 = YUN1UY;HOON s2 = YUN2UY;YHHOO// Combine 3 Ns.HOOYN s3 = s1 + s2 + YUN3UY;YHHOO// Write the result to the screen.HOOYConsole.WriteLine(s3);HO}H}HHYHHN1N2N3YHHusing System;Husing System.Text;HHclass ProgramH{HOstatic void Main()HO{HOON s1 = YUN1UY;YHOO// A.HOO// Concat 4 Ns, each in a separate statement.HOOY{HOOON s2 = YUN1UY + s1;HOOOs2 += YUN2UY;HOOOs2 += s1;HOOOConsole.WriteLine(s2);HOO}YHOO// B.HOO// Concat 4 Ns, in one statement.HOOY{HOOON s2 = N.Concat(YUN1UY,HOOOOs1,HOOOOYUN2UY,HOOOOs1);HOOOConsole.WriteLine(s2);HOO}YHOO// C.HOO// Concat 4 Ns using a format N.HOOY{HOOON s2 = N.Format(YUN1{0}N2{0}UY,HOOOOs1);HOOOConsole.WriteLine(s2);HOO}YHOO// D.HOO// Concat 4 Ns, three at a time then one.HOOY{HOOON s2 = YUN1UY + s1 + YUN2UY;HOOOs2 += s1;HOOOConsole.WriteLine(s2);HOO}YHOO// E.HOO// Concat 4 Ns, one at a time with StringBuilder.HOOY{HOOON s2 = new StringBuilder(YUN1UY).Append(HOOOOs1).Append(YUN2UY).Append(s1).ToString();HOOOConsole.WriteLine(s2);HOO}HOOConsole.ReadLine();HO}H}HHYHHN1N1N2N1HN1N1N2N1HN1N1N2N1HN1N1N2N1HN1N1N2N1YString Concat performance, 4 NsYHHA: Y 557 msY (Concat 4 Ns, 1 at a time)HB: Y 281 msY (Concat 4 Ns, all at once)HC: Y1342 msY (Concat 4 Ns with a format N)HD: Y 421 msY (Concat 4 Ns, 3 at a time and then 1)HE: Y 812 msY (Concat 4 Ns, 1 at a time with StringBuilder)YHHusing System;Husing System.Text;HHclass ProgramH{HOstatic void Main()HO{HOON s1 = YUN1UY;YHOO// A.HOO// Concat 5 Ns in two statements.HOOY{HOOON s2 =HOOOOs1 +HOOOOUN1U +HOOOOs1 +HOOOOUN2U;HOOOs2 += s1;HOOOConsole.WriteLine(s2);HOO}YHOO// B.HOO// Concat 5 Ns in one statement.HOOY{HOOON s2 =HOOOOs1 +HOOOOUN1U +HOOOOs1 +HOOOOUN2U +HOOOOs1;HOOOConsole.WriteLine(s2);HOO}YHOO// C.HOO// Concat 5 Ns in StringBuilder.HOOY{HOOON s2 = new StringBuilder(s1).Append(HOOOOUN1U).Append(s1).Append(HOOOOUN2U).Append(s1).ToString();HOOOConsole.WriteLine(s2);HOO}HOOConsole.ReadLine();HO}H}HHYHHN1N1N1N2N1HN1N1N1N2N1HN1N1N1N2N1YString Concat performance, 5 NsYHHA: Y484 msY (Concat 5 Ns in two statements)HB: Y686 msY (Concat 5 Ns in one statement)HC: Y889 msY (Concat 5 Ns in StringBuilder)YHHusing System;Husing System.Collections.Generic;HHclass ProgramH{HOstatic void Main()HO{YHOO// Create list of three Ns.HOOYvar list = new List<N>();HOOlist.Add(YUcatUY);HOOlist.Add(YUdogUY);HOOlist.Add(YUperlsUY);YHHOO// Concat the list.HOOYN concat = YN.ConcatY(list);HOOConsole.WriteLine(concat);YHHOO// Join the list.HOOYN join = N.Join(YUUY, list);HOOConsole.WriteLine(join);HO}H}HHYHHcatdogperlsHcatdogperlsY","A8BfEEABDAeBACfACADAABa(C]CE| G74G745}`C 474}*C 8646}*B+CC 46868646868}XCCP884+CC 4666}XCEC.BXCCP84+C*CE.BC 684964}XCECE+XB","String.Concat."," With concat, strings are merged (combined). It is possible to concatenate 2 or more strings with several syntax forms.","Plus."," We use the plus operator and the string.Concat method. The plus compiles into string.Concat. Another option is string.Join. ","The main reason to use \"+\" instead of string.Concat is readability. Both expressions will compile into the same code.","An example."," We concatenate 2 strings with plus. We then use the string.Concat method. The C# compiler converts the plus operator into string.Concat. ","However: ","We concat a string literal (\"string1\") with a string variable (s1). The reference is stored in the s2 local.","String Literal ","string-literal","Two strings."," The performance of combining 2 strings with plus or string.Concat is excellent. Using other methods, such as StringBuilder, for 2 strings is slower. ","This example shows combines 2 strings with string.Concat. It is the same as using plus.","Three strings."," Here we use the same string.Concat or plus operator. My testing shows this has good performance and is simpler than other methods such as string.Format. ","You can use the + in any order, just like method arguments\u2014which essentially is what the operands become.","Add to start."," Adding to the start is called prepending. You can append strings by using + or string.Concat. But for many appends in a row, consider StringBuilder. ","StringBuilder ","stringbuilder","Four strings."," Here we start seeing performance changes. For four strings, it is fastest to add them all in a single statement, with string.Concat or the plus operator. ","The string.Format method also becomes more usable appending many strings here. But it has worse performance.","We start considering StringBuilder when multiple strings are encountered. It has much worse performance at this level.","Benchmark."," For fewer than four strings, using string.Concat or + is fast and also clearest to read. But there are more options for four strings. ","To prevent the compiler from solving the program before it is run, I built up one of the strings at runtime.","So: ","At four strings of short lengths, using string.Concat or the plus operator + on all the strings in one statement is fastest.","Five strings."," We can concat 5 strings. Here the performance radically changes. Looking into the intermediate language, we see a new overload of string.Concat is being used. ","Part A uses two statements to combine the strings. Part B uses a single statement. And part C uses StringBuilder.","I was surprised to find that part A is the fastest. Using string.Concat on all strings at once is suddenly not the best.","A question."," Why is concatenating 5 strings different? In the .NET Framework, there are Concat methods that accept between 2 and 4 parameters. And there is one that accepts an array. ","When you concat 5 strings, the array overload method is used. Looking into IL Disassembler, we see a list of many Concat methods.","IL Disassembler ","il-disassembler","However: ","There isn't one with 5 arguments. When 5 arguments are needed, the params version is used.","Internal implementation."," The internals use ConcatArray, which seems to have a different implementation. This overload doesn't perform as well as the ones with fewer parameters. ","Params ","params","Benchmark 2."," It is fastest to first concat four strings, then concat that with more strings. Instead of combining all strings at once, it is faster to combine four in a statement. ","This won't result in needing the ConcatArray internal method. Understanding exactly how strings are concatenated is extremely useful.","The performance difference between four concats at once and five concats at once is relevant.","Guidelines."," For fewer than 5 strings, use one statement. This statement should directly use string.Concat or plus. But for 5 or more strings, use multiple statements of 4 strings at once. ","This is appropriate for when you have a known number of strings, not an unknown or perhaps large number of strings.","Performance degradation."," If you have a loop or could have many more than 5 strings, use StringBuilder. This may perform worse, but it will prevent edge cases from causing problems. ","MSDN provides information on the string.Concat overloads. Look at the links to the methods that accept arrays and those that don't.","String.Concat Method: MSDN ","https://msdn.microsoft.com/en-us/library/system.string.concat.aspx","List."," We create a List instance and add 3 string literals to it. We can pass the List variable reference to the string.Concat method. It will concatenate all the strings with no separator. ","List ","list","The string.Concat method here is equivalent to the string.Join method invocation with an empty separator.","Notes, implementation."," Should we use string.Concat or string.Join? The implementations in .NET 4.0 are the same except string.Join repeatedly appends the separator. ","Appending an empty string is fast, but not doing so is even faster, so the string.Concat method would be superior here.","Join ","string-join","The string.Concat method in the .NET Framework 4.0 has an overload that receives an IEnumerable collection of type string.","IEnumerable ","ienumerable","A summary."," Strings are frequently combined (concatenated). The benchmarks here give some data data points about what statements are most efficient.","In many programs,"," you will append or concat strings. The string.Format method is an alternative. String interpolation can also be used. ","String Interpolation ","string-interpolation"]

$/9j/2wCE?gGBgYGBggGBggMCAcIDA4KCAgKDhANDQ4NDRARDA4NDQ4MEQ8SExQTEg8YGBoaGBgjIiIiIycnJycnJycnJycB.gI.oJCw@Cw4LDQsOEQ4ODg4REw0NDg0NExgRDw8PDxEYFhcUFBQXFhoaGBgaGiEhICEhJycnJycnJycnJ:BABEIAG0A+QMAIgABEQECEQH/xABR?ADAQEBAQE)))?QIDBAUGBx?AgEDAgQEBAQFAwU)?AECAxESBCEiMUFRBRNhcRQyUoEjQpGxBjOhwdEVU6JicoPh8f/a?wD?AB?I?D8A/fw)))))AQg?EFxDFcQCuK47gIAuFygEAxlAIBhcYC?G?Aw)))))))EACABAIVxDFcVxXFcm47iuIBCuO4XJuO40FyrjuRcLlpCyLuMi4XHYMi7hci47hYakWAhgUmM?RQ)))))CABCAQCEACYyWSSDEAgEwEADsQ2FwuIBiuO4XJApE3KuFyRliuVcaZFykBSZdykQihM0iyhiGSaI?AG)ACABDEFxXALjAQBYVyalRU4uT+xyvU1L7PbsjTVp+Wmvyu7OSFTGSl26GsILE4dTXmqqhk4xst1+51R1ErNdejLp1JTkZyrUq0bfLLpcunTweWW1iJJW5G@Tco2nnFc2v7o0k+F2M85GkuTJjFxuQkayyclZ2ROTC7BFtDsSrsXQiTdyyZCsEuRDlInzGUmjOXMDGTaV0/sak1JOMGC5IdxJ7lPddm0c3xNT0N6M5Ti8u5w1HxS92ehH5V7HRKyS25nJp5TlOV5NqPT3Ir1JU4KUOdzn+Mq+n6HXP+XL2f7HkKRpSipL2M9bVqUpxxm0pLkvQ9ilWVSk5/mS/qc/xlXrb9Dm02o8movp5SL1cl8RPe62s/sgVNKTTV01dBLWSlRjUjNxlF4yS633Uv6HpaapOrByn3Nm1FOT5Ew+X7I59bUcVCH1f2OdLKVltc9Vz8qjlJ5OK5vq2W9Q78JUarObTrzJr9WdkqcbcK9ipKKdrGdGVWpFzuKM3dGhnCMrrY0IfodEL2379RCAQAwEBw6jxPS6fULSzzlWxzxhCU8Y/VLFA2lu3YzlK27djtFkc+m1VLWUIamg35c747b7Nxe3uaFKzSa5MzdTqia+p8nHhyyv17GEFRr328uXa9xaqE6mOC7/2PN1mroaBL4nLKznwxcko3Ud3HlvKxrwRhlKWPqefWrVXVawzguSa9PqPQqQdKWN0zbTVHlj0PN0lV6tT8qE+B4yzi4tNpS5S9GelQpOHFIG4uHNSuFBzdRSjFxV+v+TqAm5jqKqpRUnfnbYxa9T0HOyuWma3OSnU83LBPh+bo19mdEMrcQ2lbYmnN8rMpkTKMazlFSnZ4xVxWXXaw5yduVx25kNsKUnUSnFPHu9gnTlfhWxO3fZmTycU0mWpLbu1cZFOnK+UvYx1upp6aCzbjntGS5c+5Dsnu7LuVk1BzkrW6HNVfHL3Z6UflXseVHOrXnp4wl5kFlLbaz5cXLc9HSwqwpvzb5X732sjok4uKakn0OPSZqrJOEkpdbbKxrU/lz/7X+x5WitLUwjzXEv+LPQ1kK1Sko0L5Zd+ln7Hmz0+p00Jaia8qFNOUqmS2Vud7mtJxUJXkl7sjW+Z8RSlGlOUaTUm1FtPe9i9TRenquP5OcPYyyKo+M+G+Jw0+khKp8RWX4GdOUcnCLyllJWa4Wa/Aaz/AG/+Uf8AJVKtCcfmV1tzOavpZqeVCEpwlusU5Yv6Xbse1D5I+yOTxCLtTn2un9zsiuFeiQqlONSDhNHLGWMkfQVqTqUXT5NpW91ucGkqKFRZcrWudtVLaV+X9Tkejqwf1RNqdCduJGk8W8kzm0/mxg6Uqb58/wD2VE1w9SIwldbGxm2ddOO3EhCsUIk0sS7Hzvi2j8Q1Oqr1dPpllCMYabUUq3lVeXFl0klL2PoKvJEySvHEiosli+S32MakFJYva2+xz6GnqqejpQ1jjLUW/Ex9/T0NmbWJxNY7JIl07JLsYWPL/iDS6nV+GVdPo6PnVqrhHnGNlGSnzm19Nj2cQxHK0o4/YydG+xzaZT8iEqlPyqmKzhdNp+rjdM3sJXv9y6fykRm9l6FxppbCOTxKnXqUIw09N1JZrlJRaS35yaO8ByWScWU6d0/U87RUtVRrVoVYfhSeUKuScn/0vrt6ncXYzq9PcS4I2W/uCp4oZlqo1JaarGlHKcoSjGN0t2joGD3TXcrC6scmhhVhpacK8MKkV8t0/wBrm9jQRKVkl9hqFkl2M3Y8/wAR089VPT0/LdSlk/NeUVZNY35p+p3ztmu/YVJbP3IklLhfL/BE4qXC+T/seX4To9bpa+o+K4oWhCjUuuKMMunNfc9YoC4RUViv6hCmoRxV7LuFjh8a0MvEfC9TooVPLqVo8Em7LKLUld77N7P0PQQSgpWKluinC8Wu6t+p8fpNJ/EPxfg/m6aOn0+hiqFWcalCreMIr8SGUc4eZyai2/br9mYUYKUcutzciEbIdGninu3e3MBgBZsArruD5MhchXE2a?DG)JxUvUShG/IoAsLYQrFCADCvOUPLjGSjm+qb/YNNUlVp5Stza9HbqjaUIT+eKl22uNRUUsVb0RWSxtbfuYqnPzXPLht8v6EeXHfbmZ6h+RQnUh+Wz39zcUoxmnGSUo9nuiVZNbci5wbhJRdm00n2b6nJpNRVr1J5pYYqVPu0292dYlTpxk5xisvqSV2vcoqTTd0rLsTRpzhDGpLOV3xd7sRzaWT1FJyq2k85R7bJ+/odR8/4dqasf4l8Q8OjJ/CwpqtCnaKUZWpQ4cIx2673d297WShzili1dyasKpdVKbvwvKLXdu1n9rM99JW9iK8/Ko1Kl0sYt3lyul1LksouN3yttzXseb4Hql4r4TR1daH89z/Dm80sZuHOy+m4KSUkmvX7Iud7OEdpOLs+ia/+m+h1FTUOpm/lx6WfFHLudZ5Pj9eXh+geo0ijTrVK1Clna38yrGnd97KXc9DQ13qtFptV8rr0oVXG97ZxUrXsglOMqjSXRMzoKUF5VSWco3bl3Tbtz7FSpq0sVxWfPlc59K6sqlTeOMJOErXvdWa/dhPUy/1ejovyVNNVrc/oqUoLb/yHVGlTg+CEY5byxSV/ewRceIJU3KcZRdlBvLfnsAzxv4b1uo1+lnV1E3N/hyh3SqUo1sX0dnO3Ll67vt8Y1E9J4ZqtVTfFQpur6tQ4pRT6XW1+hKmnDP0b/QqM04eZbazf6E0NVVqaiMMoyp3lHK2N+2O93+h3uKt6HD4S4anRUdVKnHzJ5Syssr5OPOy3segaSnGaUoraxGlhONO9SWeTyXs1y3IjTjD5UWACsdFg?AYCxXYY)AB:9k=%iVBORw0KG;)NSUhEUg?AIE?AB1BAM?ACbjZ9s)MFBMVEX:/+Q8Njf:e19+bg+vPt:qb8tzv/fnH+Ouv9OLW/fPz/frj:j7:6g8t3v:uqRW+6)iklEQVR42u3VsQ1AQBiG4VvhotKJxhYSG1hBcyswguiMoFXpFBoDKCygVVqB+Ks7uUpF8r71l6f9lL9MWwWxlPunCAgICAgICAgICAifENLjbjduhbYz3hZpVq1+WyxFCAgICAg/ECZpLN06exr2UvLYbNLK8yIgICAgICAgICB8WKhqq+aUBv/0AqZkjLrkiMRY)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?AMs?ADhCAM?ABRErFR)MFBMVEX::8+fr:P304+325/D69Pj26vH57/SjD2a7VY7Ogqz74OzYpsDjzNbivM/y2OTrIiD8?ADWUlEQVR4XuzczWrDMBBFYS3v/Eh+/7ctpQ3BGQo4RIpTn1ndnflWPpDgJskiwiT9ORURXucWkb+zR4zfmRHbbbaHk2S9d5O0n9pPr3P0nnVm77fnemuSfA/wOveWvFtGtYxnLFYAhy35bYl5Vy193rVmNk0iPVrMpkmk1iIWWnq/oAWL+UKL+VSLtNAivd+CJXOhxf0/vStPa8Fi0ySmYqFh3mTBQsPQMFjSL9swNAwNQ8PQMFjcF1qchsHy0nMa5tnDQsPMtRgNs8CCxfNjG4aGweK20OJGw2ChYWiYM1mwJA1Dw9AwNMwVLFjMFlrMaBgsNAwNcxYLDWM0zCELFhpm2xY2zBg0zAUtORZaMmkYLK88u27D0DBYaBgaBsugYWgYGoaGuYIFi69umNFXvl9oGBrmFUfDYKFhaBgsNMzy9wsNcznLR3cyDYPFVlpMNAwWGubIf+BzasPQMFjO+3slDSNlROjnfD+tTNtPL1P3WS2Ssvd+e8Juls/DH/xofLXU+fwX/KulAuq02zz4Bf8vdukgBYIYhILo33QoG03uf9sRIX2CARLwAX9tgfqf1lprrbXWWluxKY1IQzl6cpaKhrvHo9MZm5KTfAERgKk4ZZ3fYgYYKIWBxQR8GMwvxUjj+BYPMIGSJpheyDVMSQN4FYDrbNOjWty/w2Ukge88QjIwHa9aNoNFIiC+F1vVwmUtLzhY7fO1xJUtTnpr7UtlStz3Y4vkUavyADYccJ3OSWgjrdpQ0aRgz20tBtSiLYz0Vsr9RoRu0VprrbXWWvu1W3crCEJBFIXb8/v+bxxKJGphDXQYbc/VRjjAd+XS+UxEcjfjxdw+BJBHM6YxwGLzhYj4MvPdVN0+BJAfzCEW+erCnhZ8dWHtLCJFCzDAYlG0WLSzqBUtaie3ZBYtme0spkWL6QUstNCSWbREtrOIFC1AC0v/hmHDRBYtwYbpY3EvWpwN08tCCy1Rbpj4u4ahhQ2T5YbJCzQMG8ZbWdgwtNBiUbQYG+YXRwtQtMAHWNKLDZNsmD4W4CINw4ahhZZoa2HDsGHa/V+83DDeqGHYMN0sbBhaaKEFYMOc3+J+yYZxNsxPLWoGEdh08/T9lGWuHwKP78dziEV1Aqjq+ynLXD8Eng+P5u0OPSdCoM89JxE)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AP)BDCAM?ACV1Xh7)GFBMVEX::r+vixvbyJk5Lc3NzF9vGv19NhYWHPSHDN?ADzklEQVR4XuXa25KjMAwEUFoX8/9/vElmoEsIORTl3SWkHxnF9ilzsWGmq8QM0/cEMj+i9jVgnX/yLWKZf6NXBcAweIKvPMUmOnhk8xpxXEwrGqZiPPhq4nn+q+Dm7tcFY/hNa/ZHcE0wBg4Nygm+IphDG7zwaH53MIPWmvv9wQx8yXRrMOP/fIJh8ooZhoJfzdrROcahYRreUOzpsHcLCkZVAkCXsIBhbSh+GW1tVzJFtxHsDo2dYB2nSqmlJQzTwk0yJ01snQ2YR6GprNuq7gGEf7NQDApqC0MwZ2Ew2Iq6s+CtBWVxDWbNeLAVfZ4EZ4wW3j7YCoW7AwfB/ggSWHMl3oDZTgZrNgiLe5Z4n1UCVB5RXcHuZ8F1p3gH9gyus6lWSlprugs2DtvXNNEIliVskZHWA4s0oWipi63qETB7DohQSdsrC/nJX9atQu9O0tKATYaUYIU/Ey6U1KjLYbCAkEck1GsaHNv9DXgW+HAwvS5hw3seLCAkX/SBFxpuHTBeGQFm1/F3OAHmhNY/sG0VAB4iOJSBPmADBo?RgjB2QtlLxGMZ/rg7PVGsDs24OakEOe/g9TQHAZsHghuvDIIJok5BlZOk/XBPBq6zVdIm0aChSd7BOMcmN53YPJyt9jc820EOJ9afIKdBiu9EewEB106VDzXxcaCiy3vWTCmAsyOqdM8XO5oGBWMA0/DwPQmcK5EvhowUZwio8AYDJ5qMC9PbQ7C8hNI5hzFeDCWDAdniKoS4wTXu2YdDM4ZD5602ieloXiTbbF8HthKb27YPZkdnwOu70Zave+Gv8zxTPgssFRcVmWyazgVPgmMta6JPiPUFgMBtptNFBi5IFiqjX1/HJCA+iCwstuON0d6KF00FwSzbhNgYkQ2JKym1gPLRcE8M4EfbBaoWPZyAVrvxrF86zkFhq1ZTe0RewYnT+n4ijE0FKtU+f6QogzGzKwfm86Bbe5Ezt60clQQwUXUCe7UXwiMujUcALd9sF0V3G/R3oG1VesT2QUDGAsGcBy8BB1xHyyd55ftVw8Gs8VTa+mcRSJZrOJrii/OlwTTK/qT4jqGiSwlwvUnvSloItt6nPmXDXgn2CvsHOMXKqb4rOVFDg30KmBJ3vqzVtVhHVwODMJChGD+GiW3Di4Gti0YP6pWrf7xzFJKbSdLPVj/35LP6OIxfp9InOH0aJbbgnX/0dzuBgYfQLLATHjQbwTOa8a87vD7gUFdZyt0pxh99bvpWwWyzxWn92bBm63QDeNt/WdCvoq/7QT3F6sEfAUZBHwBGZjuHYBoBO0fPVuHt+o3PUI)ASUVORK5CYII=$/9j/2wBD?cHBw@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.n/wQARCABSAJgDACI?RE?hEA/8QAUw?AQUBAQE)))?AECAwUGBAcIE?CAgECAgUKBAUF))AgEDEQQSBRMGISIxQjIzQVFSYWJxcpIUI7LSc4GCorORocHh4v/a?wD?AB?I?D8A+k?QUUjstSpZex0rWPEzYj/AHKW3pDpYdaqc2s04z5CeVj09r+wy/SHiv4m3lVN+VXuhZjxz4n/AGFJouu+v61/UXum4Us1cy7dmV3bO77i/wBNwhZq5t27Mru2d33HsQDWnrCCiKDA8BBRB)?B?UB?Dl1utq0lTW2/0rHe8+qDzvW8b1upZtrvXX7CM0R/P2jd8T4emtqhJna6ddbejr8qJIZp0XDtI6stcLsaGllWXunb/cWektorWJ5TXXs23b7MfCWuiuopWJ5TXXs+3b7MfCZfo9xS+NUlL2O9dk7drM07Z8M/cehHnvRrTLbq2tloiKu1C7utpnqXC/CeghxWE5+EjHYXft9YcXhPxGEjE7F37fWKAgFYVQkmT6S62+pEorjalsZZ473+A1cnNqNLVqOXzU38t9y+puz3SdOmtSu1Xdd0L4f0nVpbUrtWx13Qva2+/wnkt2mtqhHtSViyNyTPijdjI7Refr+tf1Gp6XRHMoxGIirq+5jLaLz9f1r+o1VF03afmTGNyt2VNbRfN+m5sxjcrdlT112xIisMvkhRzJQuVMhC5U7sjjnVyaJGTBFMDgEyGRo3AomRstAxnHRA6IJJYZLELORS46EHwh07zIcS4PqdXfbbDoq96QzNlsL6Mbi312vTTV7265mcKvtFLqekaTW0Uo+9oxltvZz8ix0lWoWd9K9/Z3N3FloqdQs8yle/sbm7ig4VY9Wtq2TMTzFiflLYaD1Xcee8B0DWXxqXjCVzlc+J/D9pvUkdxZla2IjvVNrN7x/GGVrViOuVTaze8nAQCoKUUbgeJgMhkw3S7zlH8Nv8jGW0Xn6/rX9Rqel3naP4bf5GMhVZNbq8d6ysx/I1vD4zo64j0qxseHRnRVxHpVv1HsN6nBnrKjg/FtRr9Q8WzEKtbTCKuIzuX+oubFxJn2paluW+3MLu7PvM81L0NyrNuYVW7PvJEc6Fcr4kkVyNkI2TJ37ys4nxRNFVme1Y3m0/5+k6IcoOI8KnU3pbzJlZlYeJ8ER6iTT1VzZHNnCR2vq+Ek01NU2Rzpwkdpvi+Ey2r4lq9S0u7vt9Cx1IvyUuuj2vtl2odpZZhpWJ8Mx6jt4r+G0+japa0WX2rXG1c9TZ37vKKzo9p53vdMYWI2x85Llnrs0tk8pa4jsp+4uWeqzSWTFS1xDbU/ca+XmRmZCIHwkyU3VBTdUFXr+HRq4jLyjLGI9MHFpuj1STE2PNnwwuINNsJIQkjV2qmxbGiCWNbaqbFsaI+EhrrhIhVWFVeqIjuU6kgFQm2nGzZOF3yKAoERAOKfjept0+jayp5Rt6rujvxO4uDm1ekr1VcVW52b1acdW7HoJKWVbK2eMpDKzL7iShlWytnjKQysy9/UeSO1+pfLS9jt6Z3TLFzpOjWruxLryln02dU/Z5R6DptFp9NGKakr+KFy/wB89o6S1u4w2NtNa1x7Td/2lvdxp8baK1rjws3XP2lJw7g1WhmXV3ssZNsz3RifUp2WKdswRMpWzc7tLvO6Z8RWTe7vL2NumfEVzKN64Ot0IGQlhokmhokj3SQ33rUjWPOFWM/9E8qZDj2rmbIoWezX5X1/+Tq01POshfR5TfI69NRzrISO7ym+RBEXcT1OfDH+iJBoq9XpaJr01U7myq4j1y2MyxQ6TitWlohKa99rdbu3dn1bY8KkPDtPffq67YreVixWaYVsLG7JY3U7obf+VTUv5S7sbp9pizup3Q2/8qmpfyl3Y3T7THoCITqg5UJdpnWYzTOMhB+0dgXAzJFLDRwCjRuRAFAQQ))QbMDxBRckMqRsh04E2joYfDHHKGTu6P3anU22NMV1tY/X3y0bvQsG32jdp006p6ZmUnEyu3cdVGrspmZScTK7dxQ6XgOkpxlOa3x932F4lcLEQqwqx3RC4gkhR2CO297Jy7M31ENuossnLszfUIOAUgIMiCgAgg)))))gCgAo0BwCgIAo)CC)))H/9k=%iVBORw0KG;)NSUhEUg?AJg?ABZCAM?AD1qB0C)GFBMVEX:/+vr6/Nzc1kZGSNjY3k5OQxMTE?ABgpITo?ADeUlEQVR4Xu1Z23YcIQxbX/n/P273lMYJRSilM4d5qB5DwAIJe7y8NqEi+noeIttPpD6S1xvyMGLZOvKGACqyu19pHTccmfwyyR41L2JGJuwunbEz224jVlv2bWJ4/j4USHGlx454JO66la3g/3Ytr82w0ZAU0hGUWc2+x2ItpolTuZpu5pT/vndzfpSvM3BkMakbcQSGlPTDpTmBksRi9wMoedxiAZQ8bjFFSnqd4xFIKTm3mBwnFnPvxek0ZnOJ83U6jcmOxRTUUj5JKbFBMu34Tdi18JVBSJ8LG7cQz7cW8ir0SfVnhEFJbQv4JABMwlEUmkU1Fx20Ex2UlIZR4SsAcqJWCa5th8Gt4jQWpSxEjLNg42azcUEiYGJ1J62jdaQV/EuOMTMcoI2wfp1cVFWMtwkyH4/1PJEYhLdBBxsJhH2OolkDa2KAL0uvNicWU0ktZh2MLVd21AKzukG8IlDtsqmuiAk4Cf8uMVlZGIfAMfogTCKXERM8tCDmaBIpHNSLupB6qaXOhwRuBnqR98K4SkNiiebYdxsGZ8TIdw2Y6JsW4140EhsO+lTJwALggsZPFLsf6JxcAKJUsk5Htog5UB9YjKY7fqKcWAlGBCAWo5d2h1hyAbjF+IlyYuOY86zJLcZPFBNLsLL+lQC8YeEFhKcLGcNzAXhPzG83/zLxCr+RXoNITgqIL+LYoOReBc+9gmWLOLUqEGDfYryAkGzhWIB7LRYL74eZ6WUW4+mVe5/Hu99izvZ1v8UE0y4lOfwKi/GCpZA2FeAmi/FRLsC+xfjt5mF4+8AtRkLvbAtflssspmA2HlQNLEBuZxV+u2vQkRSmSADjku9X8E;Z?llBLjkvM8ZVjIJA81VEojJxYV?opQIiZZgLX47888BcXbjBrBbIeI2b0fVYJL/QbqaKjlLcIoeK+INYvUKgL8ErLoO+znJi2AezMCzJYrJA1pInfLLCUtVMcsgQZEYsNprxHVSZXFS7rLGA63lvBZGox08lOU8ltLwNAZulokcjP3AO3gFLUypMYVrwGhH8cuC/X6BHNg1Rw+Vgxnb/ViZUrR0R/a2OI+i/2kahvvI6j+oHD4N/n53H+pX+/BTxvsfbfYhst4KPQznufpddnwU97n/bgT81i9lQl83nZ9XnpItSH78x4ACnLNoPJcQ0B9HiWALhAzR98s0wlubKPew)BJRU5Er@ggg==%iVBORw0KG;)NSUhEUg?AIw?ABpCAM?ADflzs9)VFBMVEX::2+fju9PHy9/X0+Pbx9vTo8Ozj7ejZ5uDP4tmwz8Dd6uTL3dTV49x8sJe208Wuzr/P39drpoq61chopIecw7CSvahgn4F1rJFjoYOAsppyqo9IgRfD?ACtElEQVR4Xu3XyVKEMBSF4cxh7Hn2/d9TrtE+VUhTaJrcLPIvLGXjJyegiq/0ZfPIoIBRt2sOBYzLCePzwZiA+bgwtvnBaNES5iylYUlrLbffGGnlF+YiteJKNyPMWUjNkh0wu18YprTNCCM1PwZpZfLBmJwwumAKpmAKpmCSVzAFUzAF47oQvlgCcEMrYtxfMBboVTBtTpguG4wfDCoXjCXQNMb3g6/3Iwo1Bvlq3/Wti8aIfdfVwFCghtw8BnP3Jhbj.EMLMjNYhSAdSyGFO43Zk+KvuoJs39iTLhQDT0xNSm86wM7DiPCww0MoA6fvD7A6ueOtKSPxVSkGGPa502vCTuD8T9YQ8xYDDHUGENr+Oc362cw9LNYQRHGRmJoJz/GYBwoxxgcLmepeEwYov4/pkPxmDCEeRNGxGIsTTJ/ZtJhaPbqH08T2AqAaAzt5Be+ZwxhzOjR7u3bMEG16A2MWSqBlx6qojHYff53E2YhJy68GVMBA820RVjAoXkTBqz5v2eQaseXXRU2da7831QwBbNmUjapMPK4na1pds0lFcadrgtKhTlkhPH5YIxoCXM/ve5wSIXRAbNTbjLvvFKXK3VOgJEVYRqpJ7PWmPPTsjJG2m+MsFMpZRUsqTBbIScyRmhYEmJeBEsSTAvMjCUl5jhv4cfAwo+BhR8DSzKMUMBMWh4yIeblTE2wWJEQo19gtsGihGC+M7A4wYyBZaPA4JsJG/HfGVj4McfReeF66cGygYURc8RG3BicF34Mzgs/BueFGwOLEvwYbMSPgYUbsx2dF14MLPyYY4eNuDH3xwGW5BhkFDmw0SLMppls20S0o84nWJZhEgQLP+bmxTLMx/qWUy8WYjbX+7pdb5VYlFau7uq12g8NH71YilHGGLlKhpJieUZbtWbWavGH5MqJuEqfDRAN8iKPPjs)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AMg?ABJCAM?ABPapnR)MFBMVEX::9amn+z879o6Lx:rj:T/MTH95OP/9PT8ubj/?Dj0cTR/+3b6drx9O/W9ORYTpHN?AEfklEQVR4XtWa23KzOgyF0cFHkvT933Y3wa4QQYPr/RPqdUenhnwjLUUSmYYRs6tinqaQiACAvoVhIAp3q3KOHwmyFsQhMITi5pgf5PNWfoho3ETMHARDBGNxOGZOeU+kAqgOMLyFD4jC3+TIuAZRAWT2u+iewkUcjr8vJa+Alg+PSAQ52iCPbIniBT53yyVUjHDALiCYTflwFQcpSyiZFqH8F0g0R/TCcQjinOOV16HKX0HiKocKCDTB18sC/yVOCwk+XberZ/Vnwt+AxGIHd1vfLIDUuw+IdUBQAtJxSNstVhL6oNVZZ1bqSUcqkSqhkkLuPwhSL4ttYzu9HEKpZpowf84iTmc7TD1ej9IjsMq5HKTDdq5Uu+fTEgG8qh2lWAF4Ub0MiPM832/O8XL9OuLLiSOL0K9AgiSQAYI7cwJv5gTAdbSdThFauqdJnaF4nO19XrdB3hs69HkrCG8pwuwrCDMjGF2Dne19XhcQjZjf5p0AeUc+bUCYudzb7fYPEA+yferyugnij8MhoZN7O2YuaTszP4RDRKd43W4TCkd9VFJjCxHIdeQfEHeTdhT5sR/DeIrXBUTHitSYIBwwF+ZINURUQJ4cTkCkkgPGZ7mrIU1lU+LcnVYq1EAbpQ6vC2K+qz9XDj+r707d5jxju/JF5YC707cmSdfcIGrxup1ZBVzTwdf+V04J3eKmAgA1VYx7C/KBsMXrZvFNe2MCGN3qvC4L9ebelxAKSNq.AtIaPG6NdnAbpTibu3TIOWvRf6+sbOA6LWBLd/mdVcDonvfec82YToGkTgJogkScoPgf/Xwu3XsfabxqjDUI8JB+4/ll9zta/4WFtWn4Eahxes3xZF8Vk7X1D5ajbLXHCFXgfHYg2y3ZaeEcEiZz/BlPJ61oZLEbw2I0laZg5M9sTbOxsyq2ixCTFTQhGP7hBzZ6c9bj/iwCaz0Im7RDwi8FHrHXL2bOzIZPKw0lAobkMTRSQDVZOa7utj2veTBFypJAXDrFbGHH3njAOtlYersYv/Jbo5CiZ6E76DKp7cSAMcB6e/hNQjYGPptxWE7BGGzLZTqSyfM6y17eA8pKmjVDpmLe3swizZDfw+vsz5ssl5eN7aDeCDsWHueM68frYgdiwlpLcTYuWU7a15vX8eG9i3bwYET5vWmJ6h1XfsB/8ndXBdIf96et5vrAGl37RVe7wexvY7Xet12YejYqF/odfu/U6NrJx3uxlPhBK8b8YMO117rdVmr6OkpjeR14RaSKFv0Tte2nwr/lt7pgY9WrzbYKQikYLn2Qq+L9JYqeOl25zsv5sTy3gqNbvyDXu/9vY4WfsLr/fTtIwn2e91umPvp+0nwb3pdxBoFwQL5q163UchvIYBSOMHrZ/8Q97XMInhKZkRLnV4fTLbXB5M9HI8lu/kbTHYdHU66vY5+zMyyB57BZM87Y8j+oe+YAZF+geWt10gOcYvqUpleAul6aCxfGO/XB+CwRrUBODrmG4/TmCDTBGsMiqM1V1J1vVDgNJSYy0yzCJGIEH8H8R86J7+C+8H8W)ABJRU5Er@ggg==!G%iVBORw0KG;)NSUhEUg?AL8)+CAM?ABN2DpJ)pVBMVEX:/+xptbq8/SGc8PQyuXo8vP0+Pn5+/zl4vHv9vf9/v75+PyTgsfw9vecjszr9PXs6vXf2u3y9/jp8vPr8/TBud7Y0+r4+/vs9PWnmtHt9PXIweL5/Pz+:/8/f36/Pz3+/vx9/j2+vvu9fbq8vT1+vry+Pjz8fjv9/ft9fb3+vv2+/u5r9n4/Pz1+frz+fnx9vf4+/zu9Pbz+Pn+:7p8fP6+/xQ2OjO?ACsUlEQVR4Xu2Yx47cMBAFH0nlrMk5bQ7O4f8/zcJ650FtEPBRbUN1rwIFbs+qBQmSYG6Mc5Ux2yAB9ofdx0ltV2l6H8XwoyfRvjpBMW+R7aJyZadhhz0vQfQlFpUjpFogez4/deob9QVEV6JZOz9Vgt3kZvauhnUMoigRCEGyRTz5aq9qeA+iJjGn4GPeqZtbqmcQFQkp+tUPn1c29KgqEgsnMaZykmD/8jibUo1AF.eiv5Dtjk6kGyLvtpknzY2JEeQ4RPGkXUDHOLdLj5myLc902B/6j16CjJ4IumJOZBNyo5JtDyIG02AL7chiUGGThiKVQ5gsqpns1n9VEZHBP3hAe5Cz/AMnXgQT4fs9y/U1M5uDv1qgY6UpgUZOBFQNOi4u873tATQOtIAWHrGb+jEK80WHSXzS3Q4skBHSC4gwyYKcTew8noNzUBeXQQyaOJBzAYOcrwwl+bZc/5hE4msx7KOQJqR5/zDJvLkSo6OLL6S/e3JiY6EHyMnJ/UMn+ZE/sfPsu+/p+ZE4Ij8wwtBFCfyguIrgMxSLEEUJ9aOtABuQrIE0ZuYO7IG8G1KcQOiNEGRcxNZ39yoTeRGLP/7iIuDWP61JvK1ExvFXW9x22QgShNNX6zy76fU8sFrIapMNEVPLBo8lzXXNnsEUZmgyGs7lSv7w3NtOhNSNG8i7y0VosqE/BKD/QtFuXRrTRgn9rXTY03xAqI2sXCk6MSf6ewqWiFqTVT9kQfKqydGXm+ilW9L8e3U87akM+Hb1SYUIxDNCV5ckaNjdRVtBqI0IXe1LcSudg+iOZHQbOSXjCOI5kRLExDfGkFUJ7grVxC7cg2iOkHTSDMFUZD4f8+fBO8s0IE4eucCoiChj5GRkRFDFuhIyeXfSDj54h2SCGTgxHj+8fzj+cfzj+cfz/8LH8OOJIxbjtQ)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AL4?ABBCAM?ABYbu5j)MFBMVEX:/+1wv+jqv9siv/p6:W3f8zZv9gb:19v9NK/8zAP999:S:8z:8zzP+z6P/0gInF?ABg0lEQVR4XtXXy1ICURAD0H7c96D+/9/KQqkhlEKD0iTrWZzKYtJXbou2s+jvn1Q55f2mfAMOb6Ec5D6+c/ObcvOdm98qN9+5+a1w842b3wo33/6Dv2H22g3zCL+PKF/uSKDsGL8pN9+5+U25+c7Nb5Wb74R8h+ki41eYLja+Qf1k/AL1k/HF4XIg4ytMFxl/X7/z8aF+Ov6A6bqR:FTnswXa2B96LmyPZtfoH4yvsDlwMaHy4GLj/Xz8RXqJ+PD5UDGh+ni448O08XEh+lSrtUVnC6qm+ey/krGx+li4+N0sfHh7Cfj43Sx8bF+Mj5OFxkf67c8frF+jJUovzRIBr/4+kovMb5YPr/OdcrUGL9k8FG/Tw3xxbP55/o1R4hfk/m6IBbii+fyJ/JnjK+5/HWRGuJLfzG+xvh6lX89f8m3GH90ar7Ya/FrkF8y+XNhRpAvlsi3+H8fUxP5A+svYb54Hl8Uy4/zNZEvCvo4XzyRLzrhXg7zNZMvw/o6ptsQpvDnE+wJyVGQ5SG7)AElFTkSuQmCC!H%iVBORw0KG;)NSUhEUg?AIw?AB4BAM?ADS7QcC)GFBMVEX::0qHKhmbLDvs74yKT4xaH4yqr2tYUVUWgb)fUlEQVR42u3XsQmAMBgF4V9x?OCfVxAdAEdQtwg1il0fsHS8IpIsLob4OvPnKy1V7WXWb+J9pQZZpG3zkRNyowmmmBgYGBgYGBgYGBgYGA+Mn0QHTl3V+o1iYieKifLYq4gilnMYqIVBgYGBgYGBgYGBgYG5gfm3ESx0GvePshxrr29cII)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AK)AxCAM?ABqK1L5)MFBMVEX:/+zzvd8rvO/1fj1+P4xiu5tpfFbnfDg6/xIk++ZvvWLtvSmxvbV5Pvr8v3K3PnaFXRJ)1ElEQVR4Xu3W7QbEMBBG4Xcm3/3a+7/bVZRlqEI5Vs7vhIcwE+3lQbrP4/kHN2LNfbW06zcAMDTWlFnA2LDMAsbGBwaMJTqwJDqw7HRgpQNLogOdDiwHHZjowEXqflXj7r56H2hmW43AevttMIVeA+qsRyILqE4HKrxyhwG3sO1gQPt34AQ6HJgHfMxsBQ081uBrGKC7txJbAcDbjA7scOAQHGhw4DjgQBMbWMUGtswG1iw0cMsiA5dDwgLbkrJEA/rZYpb2gGMAdRMZOIETOIETOIFfGWpGTAdlDEM)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?ALs?ABECAM?ADuirSU)MFBMVEX::V7/mWn6Gi3/N6enrg4eG75/a3uLjy+v3Iycnp9vuc0eOYxtaQtMD4+Pj5/f5J+Z7p?AC2UlEQVR4XtXZ646rIBSAUfaF60Xf/22PR+xkpBurHW3x+9mIWaGkhKJOadBaq1vmkf9n78cfkB/ZG9K/hfeN9gKQf+c/audGOwGa1w03stvK7m9kx8pub2TnKrwMqq2+eN6RjLsEzsz64vWeiQjOdQ8z/AK7ruyRzsUPvsAP2aF0cOKR5uDMpXLcTqVj+yrT0niOHXnT7qe4Kk9Jdhlv+RFGWoJr7ELSnIt2OY1Fnom6tssNKSX6nbnOHsCdaleG6CP2AEQUzrVDZYcmJ2g9vGsHIjrNrn9KpUglJz9uFwz6UL1gEN+9tuc0F8+xc2nf77tfSWxY7WxamnO5fKndjOKPUZW/0g5T79iNE+gCwip/mb0AjtoNKIku5fuyh9aBXAy7sisxz636t/Mt7GHOba92RHyyh9K4ww5hzp1tpzmzuWQSTUWsPiuFHXYqwd/siHjcjlSKuGm3zy8vnWEv4Vv2ErbtJfm7+aKdIy3FG9h1Y8US9m8fuA6LI+VHsVe7sswSv6pPu2axnEz/dmW5kQ3Qu31AbuvNQbspvbKvXEfsB/DszU579cyn7Gqw3Aw7tpc0tvF927f1CEuuV7syMeOLs0e39kBTSfLbXu0WHyUqPfNdR3aZYA0txUofwV1kl13H7ax/8IlrGKg6u23XU1yVSlrr0+2soWknM27+v5BrO+9LdrFU2rQzLtso1nYB75/XQ8z5S/YSTnFV3HHg4ozM/E27nLivaq7r0Z7FC5NwC3vjsgI7sheLOEa8MbEd2ZOMz63DR+jIToQiXbbLE5/hSntByHbK0gDZLp+38rwLOIDP2pGo1mOmVe7lMT2TAWN+XcjRnmr75uCwcYMcMyIzYs7x9duDRf4Jc6LSt+ztQEmF1e1tr/Zx886/C7shuaDkoCN7gNaKkXMd2cf2TMpBP3ZJY4JqN5pe7GbmwEoOajsQ7N/MzZuMMQBu18NUmocEda/G1fXtP47JaK+yvhpR)AElFTkSuQmCC!J%iVBORw0KG;)NSUhEUg?AIw?AB4BAM?ADS7QcC)GFBMVEX::0ctuZsLL4pOe8y8z4oej4qunCz9FAYxXH)f0lEQVR42u3XwQ1AQBQG4YcGvAgFbCSudCCiAQcFuGhB+xJHm/+wsnGaKeC7j7mstldl@nvoi1m+lUUrDFRFTOziRYYGBgYGBgYGBgYGBiYj4yfoiNmhksUcr0mEdFT4bIkpjtFacxoogkGBgYGBgYGBgYGBgbmB6bdRZ7pNW8Oq3ex+r2t+Q)BJRU5Er@ggg==$/9j/2wCE?YEBQYFBAYGBQYHBwYIChAKCg@ChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSgBBwcHCggKEwoKEygaFhooKC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KP/BABEIAF4AyAMAIgABEQECEQH/xABg?ADAQEBAQEB)))AQIDBAYFBwgQ?EDAwIDAwYJBg8))BAgMEERIFIQYTMRQiQTJRYXGBkQcWIyUmM0KhsRU2UmJ0syQnRVNUZHJzhZWisrTR0v/a?wD?AB?I?D8A/qk)QKTclVAoVybiyFkMu4XMsgzHcZrkMxzHkO4GwGWQZAI0AgeQrhYoVxXFcLiKuBIguIsCcgyC4y7gQO4XAsCHOaxquc5Gt6qt7Ih82XX9Ojk5faEnl/QgRZPwGB9UDh07UO2yzx8iSHlY/WbO3v4eHQBgdwhkqpKgJSHDcYyOMnOGh5P4WKyoouAtRqKOpmpps4GtlherHtvMxq2VN+l0MPiOzL85uKf8AM3f9HL8NEn8W+qf3lN/yIz1zpO/7RZWQ0a254/WeFOwaPXVUPEfEvMggkkb84uts1VS+x6XhGolqOFtHmmkdJK+jhc971XJzlYirdfFTl4pk+jmq/skv+xTPgx/0T0T9hg/dtKR1zTA9Jktuo2u26nNnsPPoVcMTyXM16q4s19mlapHFHSOgxpqmPOJ2USKu6bt38x3fGev0784NGqIWf0qj+Xi9aoneanrQw4fd9NOLP7dL+5Q9UxxVycTn0nW9O1aPPTa2Go2+w7vJ629U9p9K54qOOGL4UU5MUcfM0hz34tTvLzmpdfOp7G5KkqhtcVyLiRdyFUzL9pGZMj+8ck9QjXgikKqIduY8jgZN0NFlS3UY73OvMrM+d2pDZkm3UpCkPPaJp1PrNTqdRqfOquTXzQxskldgxrXbWbex6ulp4KWPCmhjiZ+o1G/geW4JlTla5df5WqU/1IfeqNTpqWPmVU0cEX6cj0b+JYzLTJPpHrX6rYPva4D5nCuoU+pcScQT0UrZqe1O1sjemzXXsAyT1hClEOuZuAlxjL0NL7GEj1su3dOd6jQ81x5oDuJ+GKzSO19jdULG5J+XzMFZI1/k3S/k26+J574vcZ/a45id/g0X/s/QJ7cvPwOFyuzbmid7oGVjdu54uo4e4oqaaanqeLo5IpWLG/5rY3ZUsvRx6nRKT8naVRUXM5nZoGQ528rFqJe3h0OpzFNmxfJ9PAtFU12QGKl13KyTJNwSNMMreH3lsjTFuxo3clzkPH11NrekcQanqml0lNqVLWrFnBzuXM1WMRuyr3V850UHHej9o7Lqrp9HrP5rUI1i9zvJVPaeoaxt3beNkM6ygpNQi7PWUsNTTu8qOViPb7lNLGOZ5iKZkvwtQcqRr43aE9zXNX+sN3RT27VS/U8roHA2h8P8Qu1TSKaSmklgdA6JsirFirmuVUat7LdvhZOux6h9mvbt3fHchxKuKkcnnJY5tr3RF9ZnUWa/Fqe0x3IsYudY1kf317x8+pajLYr1OvBThrHpdG2XZVuU1phK/bc0i8lAncuw6RUe1G2XYdVE7DKy7F2G1/cuCtTs/gXRu2ccvO+Swsp10Ma4Ltuo7GjJEc5LHj04b1mGor/nzslDVVktTyqWJOZ33X3evRbW6IfXoeC9FgYlRUQSV9Vb66tkWZ3uXb7j7ldE7lo5qeT1Ijqf4OkeK5dBoD5cXLkd+nNZHCkcTGsY37LUsiewC6FitiuAFs8lDqM3r6DQlxm7coyRFxOd6OxVmK+s61JsYOYCKc08Kup1a3rY4MJJZYsmK3Dqqn10JczcMDRrjglZuSxu51SN3IazqaYlZbGK233QnwQU8TGNduuXgOFq4IdKRoiZIc6yqq4qZuXc0iX0mEv12IN7kqG6RpY51lW52paw+7fqhg5VwUlE+TV1yOUiiWRTpVu40ZuRTv7iHSxpk6MbXZEY7kuhZe+Dd/QdGK3HgJEsXa5zNia1e61PYhasN8dysQKaljkWBl/Ib7i2tN1YLECuhOOw2wx38hvuNG9CrAPr1G1AGgAUMSlCEqAQCl2FYhWgQpDjWwrAjRnO5plKncdt4HWpCtGiAp8Zj++rpUX0IdMCrIi7Wsd+JOJu6RHeBi2NW+J8yoY6OVH2FGx002WK4n1MAwLSXbpuZrDv12OOWFXRr5zlydy1jxU+tgGHoG2S2yidFfdDkpo1YxPP1OtiFYF4kOdfcbWWJxNMR2KRDM1RCbDshQCKsTYWJYrAFhWGiD?G?Aw?AY?CsAhF?EWFYs?zsKxpYBgZ4hiXYPEYibBYuw7DFYiw7FAILCsUACG))?AD)P/Z!