C# : .NET

[".0s4*0|collections;datetime-format;collections",["F@eA","OEPELAJEKALAECDEMEKAOEKA","OOOCCCSTUUUUTTUUUUYFHDHDADADGDGDFOCOBOCOPRDHDFOCBOBOCBOCCWSTTUUUUTTUUUU","..twtfrtrk.",".NET","Array","Dictionary","List","String","2D","Async","Console","DataTable","Dates","DateTime","Enum","File","For","Foreach","Format","IEnumerable","If","IndexOf","Lambda","LINQ","Optimization","Parse","Path","Process","Property","Random","Regex","Replace","Sort","Split","Static","Substring","Switch","Tuple","While","Abstract."," A method can be abstract. A class can be abstract. An abstract method has no implementation. Its implementation logic is provided instead by classes that derive from it.","A template."," We use an abstract class to create a base template for derived classes. With abstract, we enforce a design rule at the level of the compiler.","An intro."," We introduce first an abstract class named Test. Two other classes derive from Test: the Example1 and Example2 classes. In the Test class, we have a field, and an abstract method. ","Methods: ","Abstract methods cannot have bodies. This makes sense: these bodies would never be used.","Classes: ","Abstract classes have certain restrictions. They cannot be constructed directly.","Tip: ","These are features. They enforce a design concept. An abstract type is, by definition, not a concrete one.","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","Based on:"," .NET 4.6\n\n","C# program that uses abstract class","\n\nusing System;\n\n","abstract"," class Test\n{\n public int _a;\n public ","abstract"," void A();\n}\n\nclass Example1 : Test\n{\n public override void A()\n {\n Console.WriteLine(","\"Example1.A\"",");\n base._a++;\n }\n}\n\nclass Example2 : Test\n{\n public override void A()\n {\n Console.WriteLine(","\"Example2.A\"",");\n base._a--;\n }\n}\n\nclass Program\n{\n static void Main()\n {","\n // Reference Example1 through Test type.\n ","Test test1 = new Example1();\n test1.A();","\n\n // Reference Example2 through Test type.\n ","Test test2 = new Example2();\n test2.A();\n }\n}\n\n","Output","\n\nExample1.A\nExample2.A","Abstract, note."," When you create a derived class like Example1 or Example2, you must provide override methods for all abstract methods in the abstract class. ","Tip: ","In the above program, the A() method in both derived classes satisfies this requirement.","Field."," An abstract class can have an instance field in it. The derived classes can access this field through \"base.\" This is a key difference between abstract classes and interfaces. ","Base ","base","Instantiation."," The important part of an abstract class is that you can never use it separately from a derived class. Therefore in Main you cannot use the new Test() constructor. ","However: ","You can use the Test type directly once you have assigned it to a derived type such as Example1 or Example2.","Error, abstract member."," We must provide an \"override\" method for abstract methods. Here Example1 does not implement the \"A\" method and the compiler does not like this. ","C# program that causes compilation error","\n\nabstract class Test\n{\n public abstract void ","A","();\n}\n\nclass ","Example1"," : Test\n{\n}\n\n\nclass Program\n{\n static void Main()\n {\n }\n}\n\n","Results","\n\nerror CS0534:\n'Example1' does not implement inherited abstract member 'Test.A()'","A discussion."," What is the difference between an abstract class and an interface? An abstract class can have fields on it. These fields can be referenced through the derived classes. ","And: ","An interface cannot have fields. An abstract class is the same thing as an interface except it is a class, not just a contract.","Interface ","interface","Static class."," A static class cannot be abstract. Static classes cannot be instantiated or derived from. This makes the abstract keyword have no meaning for them. ","Static Class ","static","Performance, notes."," In my testing, abstract classes with virtual methods have better performance than interface implementation in the .NET Framework 4.0. ","Tip: ","We show that performance remains the same with an abstract class instead of a regular class.","Interface Performance ","interface-virtual-performance","Design, notes."," In my experience, programs that use abstract classes tend to be better-designed. Less code duplication occurs in them. ","And: ","With less code, we tend to have higher-quality and better-tested code. This leads to faster and more reliable programs.","So: ","In solving the problem of code duplication among many object types, abstract classes help improve code quality and performance.","A summary."," An abstract class is not directly instantiated. Instead, derived classes must inherit from it. Compared to an interface, it adds features and improves performance. ","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto"],"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOsAAACFCAMAAACNKv/NAAAAYFBMVEX/////8///1f//z////P//2f//5v//4v//+f/M2v/W4f//6///zP9eXl45OTn9/f3f6P/s8f/q6ur7+/v+/v79/v+QkJDQ3f/x9f/+//+fn5/8/Pz4+v/7/P/39/e9vb3JuSWtAAADnklEQVR4AezasarFIBCEYVu3UVFJggn3/d/yLBZyiygKB06GzF/bfK075jslzTlXtNiraPomaQa5Sm3QEbdi8al2pob9u4/WB1Wpk1bF4lvjlDWCW9OyNUFby7S14FvjpDWiW92S1dGKYqWVVlpppZVWWmmllVZaaaUVNFpppZVWWgH/h9fD/fdfD/eeg9qiFZm6fn991YbgV9HKHQz3TQ2r3H7OIVDP4GWzdhMfzgG2aoelh1OPIPZfEo4utjZgPp26N2nT7qajHQQgzd7e5LPphOrULrG3yWVgG1Bfgs1iu0n+UGN2y42DMBj9BEiQWvZs05m0zUXf/zG3Y1fYqG28NL7YnpsAEcyc4U8Yuww8M+AX4Pdqwx/sIjoj+P95Od3k5X5XWkAXyfXq5Hwdx2kcr2dsebjt+vB6tyvrDLognWH8hLfLZFzeUHk87fD4+1zP47Qynven1XgAPEQyQ2njmgcRISykQWaoABR0hqjU5VykAImWqIHqwMNST0iDzgQi9PK0qBrjk+XAp11cblxYK1HM1QiEd/KmAayGWHmIShJ8L9pEklbQy2VquTRLuGcRk27JzlVjalSVnatB0vQqQIl6iOt58pybC6fj2knakJyrCop2u2oGsh7jep0817pdezesNpB3DRh+4MqAHuQ6Tp4RM8/7rs+fXSNz8K6VImbNHG67Bq4N7d6gY1wNzJz+AbSU5bj0rjmFamGE7M7hqhaooJCIsHONWd6hO87h6UDXIX65hgXZnHQl0vZ+tWImILFusZWfO+7XznntX8PVxLtagVLUFXauvmiswxzvOv70bOJvXdlahkbC2ofGtWiLk7NqSDjsHO6/c2wZZueazZBSKcLxk2sUsuLqEsm5amDmKLXKctD92pFLeFcONg/yxQxFZnauNvXOld3Ja5F0fN7UnyOytnhXBqmx59rYxW8SksPy4f7cf9hxpVaDrYdzRfSu0tTW/w975/S/6VK86ZrRuMZiPbyreNcUGtf6/3Hv19fet7o9R0IOHxcjBzWYABSO1bwAazYxbF0hSxTn+GGXJGyHyToTDvguccc3mEREBcD8s0AzMHydNqFtUALSGlm2gakO0c/fdu3YBAAQBqJobeP+41rbSEBETt/f4LW5bN/W3Ezdwm0cgdtVveRNsl7W1vxQ9R+C80ltHSsrKysrKysrKysrKysrKysrKysrKysrK+u1WFklSZLUp1hZWT+1srKysrKysrIO0+xfN4TEF4oAAAAASUVORK5CYII=)","url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgYGBggGBggMCAcIDA4KCAgKDhANDQ4NDRARDA4NDQ4MEQ8SExQTEg8YGBoaGBgjIiIiIycnJycnJycnJyf/2wBDAQkICAkKCQsJCQsOCw0LDhEODg4OERMNDQ4NDRMYEQ8PDw8RGBYXFBQUFxYaGhgYGhohISAhIScnJycnJycnJyf/wAARCACAAPMDACIAAREBAhEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAAECAwQFBgf/xAAhEAEAAgMAAgIDAQAAAAAAAAAAAQIDERIEYSFBExQxUf/EABgBAAMBAQAAAAAAAAAAAAAAAAABAgME/8QAHREBAQEBAQEBAAMAAAAAAAAAAAECERIDIQQTYf/aAAwDAAABEQIRAD8A/fwAAAQAMhstgzG0zZM2IcXspsibJmwVxp0XTKbl3B8PjbodMOz7HBxv0cSwiyosOFxts9sosvZFxRphRpAAAAAAAAAAAAAAAAAABApkGeymUzZE2I5FzZM2ZzZFshyKkazZE3YzkZ2ye1zJ8bzkRORz2zQytm9qmD46pye0zkcc50/nXPmfHd+U4ye3n/mhdcvsXBcd8ZGlbuCuVtXIi5Ku2LNKy5K3dFJZ6iXRCmVZaQmVNMAjIwQ2XQAWwOmYLY2OhQIGRgAApRMnMs7SSpCmWdri9mF7LzFyHbIxtkZ3yOe+XTbOFSN7ZvbC+dzZM3tyZPI9ts/IO2/ke2NvJj/Xm5PK19ua3l+22fiV1I9a3k+y/Y9vH/Zmf5Kq55lV+XC9x68Z/bWuV5Ncrpx5GWs8P1K9SmR0UyPOx2deOdubdhV34rOqlnFidNbObekV1Vs1izji7SuRn6KOrcF0xjIfR+z412No2Oi9HxewjobP0OL2Np2ez6XFGk1EYAMkWZy1mNlNSXK5rxLmyRL0Jxsb4trzpUrysu4cWW0w9fLgn/HnZ8E/Lp+eouV5ebJpwZ80w78+Kfl598Frz6dvz8o+muRx2va8+hXHMuyPGmPppTx/n+L19ZJ+OLf1vXNTDMuinjy68Xj+nXjwenJ9Pvw86tcFfH9N6YNO+uBcYXLv+R/rbPXNjxzDrx1VXFptSmnNv7dbSLp8NOkxA1LmuzuT6ldbSziqoiU+0+W1bNYswq0iT9nMtehtnEnEnNK402e0HDSUcXEridslwqVNi4OEqhcRTACiMEZgFMRJgBlfFEuPN48TE/D0U2rs5qxU0+ez+J6cv6Wvp9FkwRLnvghvn73nEfT9jwL+Nr6RXB8vYyYPTOMHpV+v45f6/wBcmPC6qYmtcWvprFHJ9duj54ZRSD4a8npy61XRMsuVRCtGi2rkLR6PRoplo9DRkOA9pAHFxKqohdV5DRSYU2iKF1SqFxNV9KhP0qFxBgAwC2ZTBkNnEp0IBr2CGzITG2V6NRJBx2xRKJxRDsmsJ4F1R5jk/GfDomiZqy1+qjn5TMOiapmjO5XKw0NNeD4TcnKyiFctIorhPlXWXJabcFNS8D0y0NNOS0Xk+piFQNKrC8wWqhRQqIaxnTiFwUQrS5E2g4JS0gGD4QIwYIGCBAwAQAALQ0ZjgTMImrUtFcnKymqeG2i5T5PrLgcNdDReD9M4ofLTQHiF6Z8lNWpaFwPTGaly2mpcpuFTTHk9NOTiomT9IiFxBxBqmU2gxo1pBwNAyAMGQIAAADYMAtjZdBgtmAAZGAACBAyAABEDABgEYIEDANJmBwFoHo9HwulowZgjABAAAP/Z)","url(data:image/png;base64,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)"]

["url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAB/CAMAAABmHoi+AAAAwFBMVEX///+Dblr8/f05OTlMSEX/zJn+/v7+1az4/Pz6+vrWrYTmuYxrYlpdWFTy9Pr/zZuioqP9/v7En3r1xZS1k3Jzc3Pw8PD83LycgGbt+Pbt8Pj/6NH/8uX/z6Coimz19fX/4sb2+Pv/7Nr/+PHu8fj+2rW3t7fR0dH+0aSJiYnz8/P/zpz//Pnu+Pfz+vn049L059P338bw6ebz69vw7+j+/v///fvi4uL8/P7617Lu7/X+//7u9fD69/Ty5t3///6T4wwcAAADtElEQVR4Xu3a15LaPACAUTX33qm9l+39r+//VkHJOsyCQwQGW5rou+DOM2c0QrZlgWqSvY7Hnc6o3R4Msqm26Hqe1v5fFK7W9ZTDMm65C09haFQzuTPKuWvljLRa9e2uUq51nfqBUroa9R1FaP5UbH5XbL4i+ZIv+ZJ/3SRf8iX/fei6k9Y2IfnDFk1UvtsSmW+0hOa7QvNfJkLz1T+Hb8UQ4m0Q9kzh+BbEu2LR+BbBAvMjgkXmx1hoviM038JfM8Xim7nbDk1aJBY/zPmWkLetOOcrdfElX/zJ48QxhA6OxVt5xF/35V1XPvOUf+JsCPe8b+NdMBSLTwsbkGACYRxG8lW9Wr7kS77kS/6GntL6cexpqi3Wa23ENX+TnyrLvp/ZUw7LOOVv2vmZveONuOSPFwpbGo/8DateWfPIHyjM8cjXLsw30rf5fDbz/WWS2A7B2PGvyfdK8tWf3CXlEnxYckX+udfN6fA6DsEM+bzx+wk+IYczPkrwSV2S3y3Pn+H6+NPyfLtGfqc8n9THH4DyfHwu3ys78dugTr52jtnrLrRpNhi0R51X8Fu+RXeoYSO8Bv+OlfvxkT083N399/iY/rW9DhQVBEjfN0KSAxpX4LcyFu5eBXy9+dm+Ee+yrsBv3WkeA/c4P7htMvDjy/HL9lV/0/w134GNOCY88/XmroJ/bgM6XI/+zRF+eN7kIbDX64Vx3XwLH+OrKkLIMIxDIFRoZt38mALsCBatnEZ/tVqlNL75xC78wJ3SuObnU/9svg1hnfyIlOFHEf3pXZzvMvHz43wEhlYPxuGp/Dx4af7wCJ81dn50Yb77UilfsS/Jnwypvgp+9PlFs1GaP3Fddzg0dKRScEV88/NW1zuZP5n8ilspv8fIz7nvB1wO+e6OG+xjuOJbhStnaXHFK4/QfAtzyPeY+ZBH/oKRH0HMI//hGN82TdNSFMsMGwRXyF8zD/7zIb+4Kvkaq/4p5ZF/z7Rrpw3+TbnkN7MCL90Gm9JtsPtRZzzegG0Gp/zmveat8127+6en5+d/mrt0SueaX1x5vuRLvuTbYvNnQvNtgzO+fYo+6QPO+D4LmxDHTpb+HID6+KiQnyZFXspNlkvfn83m8zcjB9TIvwXF/NR39rmP6ddQ/fyboJBfXGX8W3Y9j3x01Lzt9nsUwCMfoJsirq7rCKEgCP7OzZzyQaAf5fLEL5/ksyf5kr9Sheb3AV98oQcfoNPGXgWc1WcY8n5/aBgIqYC/0KqQS70qECGjzwX3G1JcKg3+uVGcAAAAAElFTkSuQmCC)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAA/CAMAAACSEXcNAAAAGFBMVEX////DwtB6kfSfqeHU2/89a//98cn75IrRFMcNAAADVklEQVR4Xu3Z4Y7jIAwE4M7YJu//xqcm0tHGMMLotNKeMj+rGPMVtCzp6+h5/eY8kPU8kAcSZ/4fyAN5IA/kgTyQB/JADO1EtdYWAe2do1rUS1aLUhcBMRyfaatDpyqdYVVrpZomILVJNV21U9hq9ASREZA9iSor0kuQQ0LqEllV7SQghTn9DF+XVCAHfAOCDccBwr3WpwQJq0MOol5jEREo2c3WIQeDO5OyTUhyyAR9AgGQlmQoOc8ye4dXcCsyvbMOnClAwLeUdsN7gsAYkZ89ok/qFo+vfEPCFYS9jDQzYAhJFaM+d0j02A0SvgIxoU+9JkGmZ/l3H6rBcfsquAKJm34OwRJEz677XEB437u+AXGxIlWIpaXvn3MOIW/7MGwMIWl4x9+5QSxB0rx4RkDSzjLPQB9BDN53Z4dw405AdYzAgt6R7g6Q35CWl9BHK2UjyGxD70H0oTC6WWiIjycnIEno6mLVO37VCIjQCAgn37IXIJCNtiD7//juQ/RBrSH7l5FjFYIChJlRhGh624NYHSIcElKX1CHchxw7EC3ZgrAMCTEhASlI2g9BVAvAzEgB6THMJPQ6JM7YEgQZ0tI2PbME8QgD1G2sDsEc0pYhERKSc8FJQ4KEzfYhJ9mF5DU3BVGSfIVDRPgMEio+guSpSkjUIS9nx+MbYhOI/RyEtASZxm2gh9jBkJDXFDL4Cych9ORLkGThCOKiTwmSj4mQEHblEKLjwA2CDOkSn2QIuRhpUU2tuWffCHL9HjI9IC33Sa9+pklvtS5FPiag2p+4lqpEs3Zm0IninoDWcxkTRCSu+LwBcOQYBxAdJoiqqEIsrtRvClUIIkPav4PELsSqEI4ucFWIHj2P3/YhekECJXx7G3wBYv3srEqsOCnZSOt9bbXHr7VWIAFfhrBv4YLEliDILwB1AxjEqaAgSN+YoBQhYEQaXkhwDkrInzta063Ch50wspsxFZkZ+mmA/owa/uW0swjA5/N2fcrxSnrws9lnqfohxq5WVzPjbHqRkx05DJUZRISvSXyxS9WhJRqiHVpSh8jV1hJzk5DNTp5albYWE0OPb342NbGYDmO90zVqCgm/i90B9Ps8+zMifWKkfT7vICl2pTvs7JVKda+/JQT8w/AHCyabUA5LQTgAAAAASUVORK5CYII=)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANEAAAA7CAMAAADSO585AAAAGFBMVEX////2+fbR6dTx8fG85MHr6+vl9Oeq37GkfBTmAAAEQklEQVR4Xs1X27LiMAyLfMn5/z9eZgt4EiVVz7BlVo+osaNKNtBW6N2GD9APoP0WoKNfh3eLnwfqA4ufN8J6u4xnpTp7yKJ3BQb6A6vXg/k4nRtYe16hFOElpxDXNMF+FqAXUuUZWDwabcCiSWctpaiv+4VMEJ/kw1rRqB4rmX1xate8NYhbCX+2MErmEmFY2WFTp+BTfV1weystqU/TM9/a5llgUTVys5vBk2jDKbJCgeoSbDF0nU6fhwfsu6SCvFsiHhAZnxCjlzjQyaUBJsuXETuKo0KIvyYCvhJ8SVAWbH1jPEGxBsB12WAAT8qetfZb5xhMzwOhTeIqloVcxyo39fMBUC4pdshMqxN1CnAPbgnP3LUMNUNlURXg3DlZWC8D68I2KYqxGRrWLuDQU1Cx4+jmAFuaBF+Xj3RvhbZ7l/Ac8uDetoo86UZkIi8dtsjxLLX7VgJclu+SOlqV8awoCXqQjIKTqHSceAxV3sbEMmWZ3gqAbxW51yAIRaAKXhwpGkI19uc5lVRm0nVYkaPCyopMWBRjE5yfP49dn/wjKsqi7faennBqacIiG5dVO1fkp7Hj1hy6phRhol0q6hM/v5PTWOE0dj+KYou0oiYVxayIYn22/nk3gEPH/nXKw3VFUIro5/OEc0V+MqhFMEV7QSvSYebQaXAHGtSoASUUxXvhuqI8V2QfKnKO3f5ddbEXrinq9yoCx45utqEy/QZF1FeiNR27StbEDVQmvqEoFFpTu6GX+ZFrqvbC/YrANx4x8yCTrApbxoKqvXCHIhqTGQtFajdUskjt8GXUvqIoCUoROHYVuswlVXvh/tRpRYRl7F4+ZGwpfEeRSUWXYtffhtuWav+tIt4N/R06cOyC9sK937DmAo1B02KvZHmj2IH2ws2Koklc2Q0vi+jvTLxC53cpSv6VI6F3Q7x9oNjRXrhdkTUNvRvKB/Kv9sJNiuLfxM5IUBw++Ia6TZFTv94k9G6o4ceGuk8R98OHu6FCV0NG1I2KuF98sht4+D2TQ4d7FO1CEf9iN2Rm+cfUrYqMJeGD2JEPmTZTfqOilsv1avgwdpbJ/hV1pyI/JBGs/zZ2sRl+MHWrImRJIlF9qAfv1rVJFTpNaUVdKQq+yiCJEC+Qx2TSbvhRlA5dn7OiJLNmZP2N0Qi9G9iHifJtDZP576uLRgeZdFlS6N3APvhIoRhx17ryIeckSobBJK2pKsvY8fCDKYbpaJCgXfg8taZa6Tp2PPxMMbpWZEoRS0qLrat1QsWOh9+ZYuBAjsCB/ROOA3PHglmwmldFx7lJD5hZpitqD88B3HBWJMscsBcy/S/oPIPvoSl133R5VwhJAn7p7bqgNgA8GUMu5BMFfK4I5IOkxF1LlH5Ea9pX1rGT1G/buw6S8En4I2Lnivp988uKtPXaHnYZgloDkAzE4avj6aVGmuSOdfEk6svAG+07+AOMW5xU/5K0ngAAAABJRU5ErkJggg==)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAAB4CAAAAAAFqEXtAAAAoElEQVR4Ae3ZsQ3DIBBAUfbfwxNcfR0dEpInIiOEI7Li4v0JXv9bnLS+dp3UIke13MFErxZXi7mqzR1MX9U6DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyPmLyr5Q4mRrW43vUo14uCgYGBgflDMDBx0mOYvKvlc5i5qk0YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYmHdiclTL5zAnfQArQiNkrpqF2AAAAABJRU5ErkJggg==)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAACKCAMAAABRjmKiAAAAYFBMVEX////29vbq6urw8PD09PTs7Ozu7u7y8vLo6OjmnP7suv3no/7wzf3+/v7uyfr8/Pzw4vb5+fnt1Pb//v/t6u7z0/788//18ff9+f7q4u345/7r4O/+/P/m5ub07vf29PZvdKUEAAAC00lEQVR4Xu2b2W7bMBQFfblp974kXf//L8vIMCzyEKkbmIdAzXnOw+Bw4ICCtHoShzHBtpnRSzarXHzrkKG98nPJlE2h75C1QgedzeCtS/BdoUO+czh1SK88kYJaZWPokL1CB+HGeASFnDGuUzFaCw7sGO3N4a6w48ZoLcygVtQfhb0NHUrE6GaH5QwtOUbtIoesMQ4dstXeIcyB/cuoPxRcMIMlx6g90VHki/GcilHPBDPQY0SHJpvBj2SMjb6yUMgX4zYVo2maeAZHjtGgAznGi7k73BTyxTimYjQGZjDkGA04KHaMZukwK2hujCcxMAM7RhGYgRyjeKIZ2DGKwAzci2QvAjPQYxSYYceOEWegxwgz5IvxkI5RYAZ2jKhg6DHCSdBjhBmaiXqRXAsqyN9PdPgiXYrhc95vN5vFjX/joyLyHt71X12hfXUFVRWqQlWoClWhKjz8b+rc/yspgf4xjvqOm7F285ynGoNEGA/3IjkmDLgXye5XQoF7kewTBsJ+qoEKj1b2P8dYYxQYgR6jlI9Risco5WOU8jFK+RilfIxihB0jUDxGKR+jlI9RDPktNkHKxyj0GBFyjM8Z4fD2GKkY9xfk7TOmadrEBJXVR5/16WtVqApVoT5xqwpVAQxeU6FNKJxPCcY7fYcMY8B6ZgTwjy5mQXNl84WLJL6mUPYRm7lBfs8aDZpSLw4tTpV8kfwtM0FX3IvkGibQWkrEuBDwFIjRhO+3smOMJ/DsyDHGE3gmbowwAT9GMHCOHCMcgnMNN8Y9TOAsOcYmnsBaR47ReIIJrDXcGI9hh/YDdoxooMkxhh16lCLHqOMJlLLkGBsdGyjD/VB0Gx+ChxxjPIGHHSMatMKN0aGBIsc4CwQGLTvGyKD1kGOMM/A4dowuNqDHiAYtOUYvEBvQP6EHA/ZXyzeBhYElxwgG/E/oZ4HAgB1jbOAV2DGqUMAbPC3GPzZST8eWeJrKAAAAAElFTkSuQmCC)","url(data:image/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABJCAMAAABPapnRAAAAMFBMVEX////9amn+z879o6Lx//rj//T/MTH95OP/9PT8ubj/AADj0cTR/+3b6drx9O/W9ORYTpHNAAAEfklEQVR4XtWa23KzOgyF0cFHkvT933Y3wa4QQYPr/RPqdUenhnwjLUUSmYYRs6tinqaQiACAvoVhIAp3q3KOHwmyFsQhMITi5pgf5PNWfoho3ETMHARDBGNxOGZOeU+kAqgOMLyFD4jC3+TIuAZRAWT2u+iewkUcjr8vJa+Alg+PSAQ52iCPbIniBT53yyVUjHDALiCYTflwFQcpSyiZFqH8F0g0R/TCcQjinOOV16HKX0HiKocKCDTB18sC/yVOCwk+XberZ/Vnwt+AxGIHd1vfLIDUuw+IdUBQAtJxSNstVhL6oNVZZ1bqSUcqkSqhkkLuPwhSL4ttYzu9HEKpZpowf84iTmc7TD1ej9IjsMq5HKTDdq5Uu+fTEgG8qh2lWAF4Ub0MiPM832/O8XL9OuLLiSOL0K9AgiSQAYI7cwJv5gTAdbSdThFauqdJnaF4nO19XrdB3hs69HkrCG8pwuwrCDMjGF2Dne19XhcQjZjf5p0AeUc+bUCYudzb7fYPEA+yferyugnij8MhoZN7O2YuaTszP4RDRKd43W4TCkd9VFJjCxHIdeQfEHeTdhT5sR/DeIrXBUTHitSYIBwwF+ZINURUQJ4cTkCkkgPGZ7mrIU1lU+LcnVYq1EAbpQ6vC2K+qz9XDj+r707d5jxju/JF5YC707cmSdfcIGrxup1ZBVzTwdf+V04J3eKmAgA1VYx7C/KBsMXrZvFNe2MCGN3qvC4L9ebelxAKSNqCQAtIaPG6NdnAbpTibu3TIOWvRf6+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+8H8WAAAAABJRU5ErkJggg==)","A","url(data:image/jpeg;base64,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)"]