C# : Optimization

[".0s4*0|collections;datetime-format;optimization",["F@eBCDEV","PGGABEHAJILCDCEEMGLCECJEGAONKA","OOOCCCCBSTUUUUTTUUUUYFRDRDGDGDRDGDGDRDGDRDGDGDGDRDGDRDRDGDGDADADADGDADADFOOBBCCEOCOBOBOCCOBCCBEECOBOCCPRDGDGDGDGDRDADGDADFGDRDADGDADFADADOOBIBWSTTUUUUTTUUUU","....wshd..fttyyhrh.",".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","Tree, directed acyclic graph."," A directed acyclic graph contains nodes that do not form cycles. It can be used to store strings from a word list\u2014each letter is one node.","For search performance,"," an optimized tree is often the best solution. It has an initialization cost. And it requires some extra code to create. The C# version here is not optimal.","Example code."," In the C# language a tree can be implemented with classes (nodes) that point to further nodes. In this simple implementation, we use a Dictionary. ","AddWord: ","This method takes a string argument and adds it to the tree by creating (or using existing) nodes (one per character).","ContainsWord: ","This method meanwhile is similar to AddWord, but does not add anything. It just does lookups. It returns a bool.","Add: ","This method will add a new DictionaryNode to the Dictionary if one does not exist. It one already exists, it will not add another.","Get: ","Retrieves a node from the tree from the current node\u2014it uses a Dictionary lookup (TryGetValue).","TryGetValue ","trygetvalue","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 tree class","\n\nusing System;\nusing System.Collections.Generic;\n\nclass ","DictionaryNodeRoot","\n{\n DictionaryNode _root = new DictionaryNode();\n\n public void ","AddWord","(string value)\n {","\n // Add nodes from string chars.\n ","DictionaryNode current = this._root;\n for (int i = 0; i < value.Length; i++)\n {\n current = current.Add(value[i]);\n }","\n // Set state.\n ","current.SetWord(value);\n }\n\n public bool ","ContainsWord","(string value)\n {","\n // Get existing nodes from string chars.\n ","DictionaryNode current = this._root;\n for (int i = 0; i < value.Length; i++)\n {\n current = current.Get(value[i]);\n if (current == null)\n {\n return false;\n }\n }","\n // Return state.\n ","return current != null && current.GetWord() != null;\n }\n}\n\nclass ","DictionaryNode","\n{\n string _word;\n Dictionary<char, DictionaryNode> _dict;"," // Slow.\n\n ","public DictionaryNode ","Add","(char value)\n {","\n // Add individual node as child.\n // ... Handle null field.\n ","if (this._dict == null)\n {\n this._dict = new Dictionary<char, DictionaryNode>();\n }","\n // Look up and return if possible.\n ","DictionaryNode result;\n if (this._dict.TryGetValue(value, out result))\n {\n return result;\n }","\n // Store.\n ","result = new DictionaryNode();\n this._dict[value] = result;\n return result;\n }\n\n public DictionaryNode ","Get","(char value)\n {","\n // Get individual child node.\n ","if (this._dict == null)\n {\n return null;\n }\n DictionaryNode result;\n if (this._dict.TryGetValue(value, out result))\n {\n return result;\n }\n return null;\n }\n\n public void ","SetWord","(string word)\n {\n this._word = word;\n }\n\n public string ","GetWord","()\n {\n return this._word;\n }\n}\n\nclass Program\n{\n static void Main()\n {","\n // Create a tree.\n ","DictionaryNodeRoot tree = new DictionaryNodeRoot();","\n // Add three words to the tree.\n ","tree.AddWord(","\"dot\"",");\n tree.AddWord(","\"net\"",");\n tree.AddWord(","\"perls\"",");","\n\n // Search for strings in the tree.\n ","Console.WriteLine(tree.ContainsWord(","\"perls\"","));\n Console.WriteLine(tree.ContainsWord(","\"nothing\"","));\n }\n}\n\n","Output","\n\nTrue\nFalse","Notes, above program."," DictionaryNodeRoot serves as the root of the tree. It provides helper methods\u2014AddWord and ContainsNode. We use this class to add strings to the tree.","Notes, AddWord."," We add a string char-by-char with a for-loop in AddWord. The Add method from DictionaryNode.cs returns the newly-added or accessed node. We call Add repeatedly. ","Char ","char","For ","for","Info: ","This logic ends up building the tree. Nodes that already exist are not added again. They are instead shared.","Finally: ","The SetWord method is used. This signals to DictionaryType that a complete word has been reached at this node.","Bool ","bool","Notes, DictionaryNode."," On each node, we use a Dictionary instance. The Dictionary provides references to child nodes. The string field tells us whether a complete word here exists. ","Key: ","The Dictionary field uses a char key type. This is not essential. With this tree design, any value type could be used.","Notes, Add and Get."," Add and Get are similar. Then they do a lookup in the Dictionary for the value specified. They return the DictionaryNode found, or null. ","Null ","null","Discussion."," In software many applications require collections of strings. An obvious example is a spell-checker. All those words are stored somehow in memory. ","Spell-Checker ","spell-checker","Notes, advantages."," The tree accommodates vast data sets. This tree could handle any number of words within the limits of memory without a big performance drop. ","Simple: ","The design goal for this tree was simplicity. There are many ways to optimize the tree\u2014see the performance section.","Warning: ","Optimizations make the tree's design less obvious. They might not work for every requirement.","Performance."," Using the Dictionary as a field for child nodes is a slow implementation. An array, on each node, would be faster. Each element could instead be indexed in this array. ","Arrays ","array","Tip: ","Further optimizations are possible. The entire data structure can be collapsed into 1 or 2 int arrays.","Tip 2: ","These arrays essentially are a flattened form of the Dictionaries. The arrays reference one another.","Int Array ","int-array","Flatten Array ","flatten-array","Optimization ","optimization","And: ","A tree can be reduced so that the prefixes and suffixes are shared. The implementation here shares only prefixes.","Note, optimization."," Premature optimization is the root of something (I think). I have designed this same tree many times. And in none of those times has the performance been that critical. ","Benchmark ","benchmark","Performance test."," Here we compare the performance of an optimized version of our tree against a Dictionary generic. The tree only supports 26 lowercase letters. ","Result: ","The tree is almost twice as fast on a simple benchmark. This is in-line with other benchmark results.","Also: ","The tree is not done with optimization. An array of \"initial nodes\" can be used to optimize the first letter's look up.","C# program that benchmarks tree with nodes array","\n\nusing System;\n\nclass DictionaryNodeRoot\n{\n DictionaryNode _root = new DictionaryNode();\n\n public void AddWord(string value)\n {\n DictionaryNode current = this._root;\n for (int i = 0; i < value.Length; i++)\n {\n current = current.Add(value[i]);\n }\n current.SetWord(value);\n }\n\n public bool ContainsWord(string value)\n {\n DictionaryNode current = this._root;\n for (int i = 0; i < value.Length; i++)\n {\n current = current.Get(value[i]);\n if (current == null)\n {\n return false;\n }\n }\n return current != null && current.GetWord() != null;\n }\n}\n\nclass DictionaryNode\n{\n string _word;\n ","DictionaryNode[]"," _dict;"," // Use array for performance boost.\n\n ","public DictionaryNode Add(char value)\n {\n if (this._dict == null)\n {\n this._dict = new DictionaryNode[26];\n }","\n // Look up and return if possible.\n ","int key = value % 26;\n if (this._dict[key] != null)\n {\n return this._dict[key];\n }","\n // Store.\n ","var result = new DictionaryNode();\n this._dict[key] = result;\n return result;\n }\n\n public DictionaryNode Get(char value)\n {","\n // Get individual child node.\n ","if (this._dict == null)\n {\n return null;\n }\n int key = value % 26;\n return this._dict[key];\n }\n\n public void SetWord(string word)\n {\n this._word = word;\n }\n\n public string GetWord()\n {\n return this._word;\n }\n}\n\nclass Program\n{\n static void Main()\n {\n ","DictionaryNodeRoot"," tree = new DictionaryNodeRoot();\n tree.AddWord(\"cat\");\n tree.AddWord(\"car\");\n tree.AddWord(\"cap\");\n\n var t1 = System.Diagnostics.Stopwatch.StartNew();\n for (int i = 0; i < 10000000; i++)\n {\n if (!tree.ContainsWord(","\"car\"","))\n {\n return;\n }\n }","\n // ... Elapsed time.\n ","Console.WriteLine($","\"Time: {t1.ElapsedMilliseconds}\"",");\n }\n}\n\n","C# program that uses Dictionary","\n\nusing System;\nusing System.Collections.Generic;\n\nclass Program\n{\n static void Main()\n {","\n // Use Dictionary.\n ","var dictionary = new ","Dictionary","<string, bool>();\n dictionary[\"cat\"] = true;\n dictionary[\"car\"] = true;\n dictionary[\"cap\"] = true;\n\n var t1 = System.Diagnostics.Stopwatch.StartNew();\n for (int i = 0; i < 10000000; i++)\n {\n if (!dictionary.ContainsKey(","\"car\"","))\n {\n return;\n }\n }","\n // ... Elapsed time.\n ","Console.WriteLine($","\"Time: {t1.ElapsedMilliseconds}\"",");\n }\n}\n\n","Results","\n\nTime: ","124"," DictionaryNodeRoot.ContainsWord (with array for nodes)\nTime: ","202"," Dictionary.ContainsKey","Notes, prefix search."," With a tree, we can search just for prefixes\u2014the entire key does not need to be known. This can avoid many substrings. It is critical for games like Scrabble.","Some research."," Directed acyclic graphs are important. They can be used to find optimal paths. This can vastly improve programs\u2014a DAG could replace most primitive maze algorithms. ","Maze ","maze","For example, it is possible to find shortest paths and longest paths from a given starting vertex in DAGs in linear time by processing the vertices in a topological order, and calculating the path length for each vertex to be the minimum or maximum length obtained via any of its incoming edges.","Directed Acyclic Graph: Wikipedia ","https://en.wikipedia.org/wiki/Directed_acyclic_graph","A summary."," This tree uses Dictionary fields for child nodes. It works with strings. Its design can be adapted to other value types. The nodes can be optimized with other representations. ","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/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAAxCAMAAABqK1L5AAAAMFBMVEX///+zzvd8rvO/1fj1+P4xiu5tpfFbnfDg6/xIk++ZvvWLtvSmxvbV5Pvr8v3K3PnaFXRJAAAA1ElEQVR4Xu3W7QbEMBBG4Xcm3/3a+7/bVZRlqEI5Vs7vhIcwE+3lQbrP4/kHN2LNfbW06zcAMDTWlFnA2LDMAsbGBwaMJTqwJDqw7HRgpQNLogOdDiwHHZjowEXqflXj7r56H2hmW43AevttMIVeA+qsRyILqE4HKrxyhwG3sO1gQPt34AQ6HJgHfMxsBQ081uBrGKC7txJbAcDbjA7scOAQHGhw4DjgQBMbWMUGtswG1iw0cMsiA5dDwgLbkrJEA/rZYpb2gGMAdRMZOIETOIETOIFfGWpGTAdlDEMAAAAASUVORK5CYII=)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACCAgMAAADasxWRAAAADFBMVEXZ7/////+VlZX29vYl5th1AAAASElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOSAALWyrsxEHLDAAAAAElFTkSuQmCC)"]

["url(data:image/png;base64,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)","url(data:image/jpeg;base64,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)","url(data:image/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIEAAAB1BAMAAACbjZ9sAAAAMFBMVEX///+Q8Njf//e19+bg+vPt//qb8tzv/fnH+Ouv9OLW/fPz/frj//j7//6g8t3v//uqRW+6AAAAiklEQVR42u3VsQ1AQBiG4VvhotKJxhYSG1hBcyswguiMoFXpFBoDKCygVVqB+Ks7uUpF8r71l6f9lL9MWwWxlPunCAgICAgICAgICAifENLjbjduhbYz3hZpVq1+WyxFCAgICAg/ECZpLN06exr2UvLYbNLK8yIgICAgICAgICB8WKhqq+aUBv/0AqZkjLrkiMRYAAAAAElFTkSuQmCC)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACKCAMAAABPR1IRAAAAMFBMVEXg4OD///+qufHN0+y8xu729/mMoeyWqO3c3+/x8fGfsO/r6+vl5eXn6vqEmurt8PsdAqXnAAAEVUlEQVR4Xr2cC27jMAxESX38TdL733bThUs4xEIL8aniAYTX4XhcKpakZlfbf2p3pbfa2FKi6+unlmVZ10M6q6pV/VzpSNJVp2h2MKUT5lSr/MnSu1QVrQ4mSWep1Wowa0QYFdXkxM3RPm2uSb3CqKg+HUy0T/ZXXU1KuYvloSqmrsFE+/RFhfkLk9Eq1qey3IVJ/cKo2BN5WybWp3W5WEKr7BeMlo+nIKUc6dP2prgvUnrXuGCeI/qU3jBAGIPRg/fpua7LVRHjqcE4C5vEPUsVg4nY97zB6PIi5pOq9VgvmtAK9Q5TXuSxlFO3400DhVEZElii6bikWcPCGIweTJrtG+aqo9t0D73B8JdcTkYTCTwHQy38DXNcLEdIGIPhFi4/0hz9Td49jH7xPl2VemVVD6OamDTJaKLCGAy3cLlogDAGgy2c07v+oqQSCDwPk9k/EskqBwLPw9QXkqZ8cyBhDIZbOGNhDIb/j2V9igWeh9GV9SnSpd3BjLJwBsJ4GG5hIIyH4S+o0m9fbcAwC2cgjIfhYwIQxsPwMaF00p8NGGzh3AlfGzDcwkAYD8PHhAyEcTB8TACB52H4mAACz8GAMQELYzDcwlwYgwEWJqUtGD4mgMBzMLMtrA2Y2RY+GzDTLVzbMGhM4IFnMPMtXBsw0MJcGA8DxgQeeB4GjAk88AxmvoX3Bsx0C2sHTGBMoIFnMNMtXDtgwJgAhDGYuRauHTBgTACBZzBzLVw7YMCkC4QxmLkW3gMwvzYmaBtmqoX3DhgwJkBhPMyESfcMw2wOpkyAmWrhOExxMHmqgb2FJ/eprVv6gBkiTRxmczBlZgL7eo6HecxtE39rN4cEgxk78vNHm1cMpv7Oe3sPweRAzAALG8zUcaUGYDY8rfAhzurA9uXjLR8P+ODPZ39uYVEwUhIL84ly/s4VH1T4nl57I61M2+2cv8V4NmDmb762YXjgcQsLCLzhFhYQeMMtLCDwhltYQOCxasHwwOMWFhB4wy0sIPBgVfCD6cxf/HngcQsLCDxadcbnB/z7GR54vE8yVJjCLCxDAy+xqJGRgZdTRhaWkYFn7EELy8DAy/07OE2YRAKv2N4W/tCUHz5I7yrEwkIDz38PTFJYaOD5L6UzsLBQYfw35AVYWHDg+a/rwcwiJPB8l2ifhAeedQn3SXjgWZdwn4QHnnUp1qeHh+GBJ8mqhKNGeOBZl67TTSk8W8q4Mzx2CC0LPYZWxp1CK1ELy6BzX8ZiogYsLCDw8MlFb2EBgYfPdHoLy9zTrm0Ly5CtqmwsscFvNxgeePJ0J6SDfZIxZ8eTnR0nfZIRI23V/MOykD7JP65qCbzqngYT6/PDYHThNzE4mBTaHpGbMC9wR0W5WKJfEJ+q+JYVk3j7hiFbTBfMRu6fMfO9YYIRbquMu5mnLEv0ITB9Rb/QnUU2oW63Ocf07b4Mp3zCrMEo1yXsPLOw1NcdZonfc5VuMJFui+of0SaCRwqX7V8AAAAASUVORK5CYII=)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAACTCAMAAADSiocKAAAAGFBMVEX////97vX3t9P/+/z73+v5xdv84u70msFZ4kfhAAAB6ElEQVR4Xu3csY6EQAyD4XiAvfd/4+vOTdDuRRqysfzXRPDVSI6GjtcRatF2UqdnO6nTs1GnZ6NOz0adoI06RRt1ijbqFG3UKdqoU7RRp2ijTtFGnaKNOkUbdUq2V6JTsSGQ6FRsIaNLbJkuRpbYMp0CDn8AyOEQDDI42hhkcLQxyOBoY5DB0cYggkNkQQKHyIMADnEXxuMQ92E0jrY8jMbRlofBOMS7MBaHeB+G4vCvp5xzzjnnnHPOOeecc84555y7fvLWUT3q/8x+nXXWWWeddfG4rnpmnXXcZpDT0Xbq6Wg75+jWnW7bNsOq6dY+HW16Otp26q7iWekosenpaNPT0aano01PR5umjrZ+3XGrKx3t2mY4vkJHm6KONkHdOtV11AjrEJDVIaJBtxlX3Wao4zpsqU7ElutEbLlOxJbrRGy57jlb7LTlulZb/Wht22b4QluuG2m7CtsMY2yFbYYxtsI2wxTbKmwzNNhW1VbfZii98bnfPIVthgZb7WjbNsP1LbbAR5P+mGUrTPpL2E7q9GzU6dmo67Yd1aP6pH/9jf026hRt1CnaqFO0Uadoo07RRp2ujbq6rTFP+s/Nk/4D8qS/J/0H5El/AZwn/cfkSX8BnCf9R+VJf0/69+dJf0/6e9Lfk/6/wj2Rz+yY1WcAAAAASUVORK5CYII=)","url(data:image/png;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAABpCAMAAADflzs9AAAAVFBMVEX////2+fju9PHy9/X0+Pbx9vTo8Ozj7ejZ5uDP4tmwz8Dd6uTL3dTV49x8sJe208Wuzr/P39drpoq61chopIecw7CSvahgn4F1rJFjoYOAsppyqo9IgRfDAAACtElEQVR4Xu3XyVKEMBSF4cxh7Hn2/d9TrtE+VUhTaJrcLPIvLGXjJyegiq/0ZfPIoIBRt2sOBYzLCePzwZiA+bgwtvnBaNES5iylYUlrLbffGGnlF+YiteJKNyPMWUjNkh0wu18YprTNCCM1PwZpZfLBmJwwumAKpmAKpmCSVzAFUzAF47oQvlgCcEMrYtxfMBboVTBtTpguG4wfDCoXjCXQNMb3g6/3Iwo1Bvlq3/Wti8aIfdfVwFCghtw8BnP3JhbjCQEMLMjNYhSAdSyGFO43Zk+KvuoJs39iTLhQDT0xNSm86wM7DiPCww0MoA6fvD7A6ueOtKSPxVSkGGPa502vCTuD8T9YQ8xYDDHUGENr+Oc362cw9LNYQRHGRmJoJz/GYBwoxxgcLmepeEwYov4/pkPxmDCEeRNGxGIsTTJ/ZtJhaPbqH08T2AqAaAzt5Be+ZwxhzOjR7u3bMEG16A2MWSqBlx6qojHYff53E2YhJy68GVMBA820RVjAoXkTBqz5v2eQaseXXRU2da7831QwBbNmUjapMPK4na1pds0lFcadrgtKhTlkhPH5YIxoCXM/ve5wSIXRAbNTbjLvvFKXK3VOgJEVYRqpJ7PWmPPTsjJG2m+MsFMpZRUsqTBbIScyRmhYEmJeBEsSTAvMjCUl5jhv4cfAwo+BhR8DSzKMUMBMWh4yIeblTE2wWJEQo19gtsGihGC+M7A4wYyBZaPA4JsJG/HfGVj4McfReeF66cGygYURc8RG3BicF34Mzgs/BueFGwOLEvwYbMSPgYUbsx2dF14MLPyYY4eNuDH3xwGW5BhkFDmw0SLMppls20S0o84nWJZhEgQLP+bmxTLMx/qWUy8WYjbX+7pdb5VYlFau7uq12g8NH71YilHGGLlKhpJieUZbtWbWavGH5MqJuEqfDRAN8iKPPjsAAAAASUVORK5CYII=)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAB/CAAAAAB0qydQAAADaUlEQVR4Xu3aPY6jMBiA4b2YSw7AHbiCr+BuWqppOQC1W2o6KjoqChMhK0JW/Lewwy6bITNjQhI+S34L6qdAnw32L+t1HvGNVvIihBjOnPcnxrgAzTdaX3HXnUc+JK5acb/vcjB/8g7DxO3YHfFD+aJj++qO5Au2uwP5knnN537zO7/5LPADP/ADP/ADP/Cf/1Wi5JiXfCOnfOVr6TPfSK/52m++8oMf+A1NCRojJK+849cELVHf+HWMPOa3MfKZT5HX/MRrfoOu82zyVGgOl9VU6xe/QHONl8sWRXPsQH7gN37zE0pTkiDq3+Txf+6HVTfsefbvODPv9vsYLZECOn9dkZEYxSSlZRs+1V/LD/zAD/zAN0YruVx76vgFNN9c3dnr2LoBKN8IfmIOXUDy9Ym5xSHyjauedRD5gjkHkd8/mG/kwNumKmn+/oaTOIpw+Uw+28tXgrOmLos8eyMjF61LAfJ5kaUEJzFyqITG1+9oQxgan6AtRY/kd/v5FdrWI/l8Px8fyJf7+dFxfGH389FR/E7YI/n9feie82EQ4qKs/ZFfU0oIyYpn8IUb99TzD/BIllOL94pvzGdjGqO57Al8yR24q9Z8o+Y+G9FS/QS+FP1f7vk214WvlQOfPoO/bjtfq6/5CckojSHzjfqazxqakQRB5utv+MV9L0+c5nle0KP5DfqJb8bWQMKmqqP5dALgltyanEarqREAmx/jmwfcMwAyv5wB9/IxIUfy23gPv22nR/5wvnLlszqdxkhR54SW2/hL6aP52pm/bju/fTBf25fyGX4kX2n7In47n2hmu/lKaa2NMXbqVfxqXupyB74b98X83IG/cNdekHzlwAXBr29Ozr3iAyaPv/waec0nEPm9I79NEUT++Ts+rqqqYaypiixGEPmny4rv0LP5vateSIh84WTnQkuQfMXZuuU32EXpj5XSAOUr0f/jDmIES/Vff+iQ+evg8AM/8CO/+dhvfgWMH23SYwOMj7foU22B8SsXdpRgkmZFby00vkxvcePR+57RoqwbxoWxcwfytb3Nl2USoYmbZvnEbftByOsA8LVd8R2CwtcWJN98a54zxliYfGv0De6cXQLKnzRfc+HzHQv87QV+4CvrNV97zVcWFt+qbWeZ0Ph60+kgOL5VrlyYfGv0zD223xRtmukE6q2rAAAAAElFTkSuQmCC)","B","url(data:image/jpeg;base64,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)","url(data:image/jpeg;base64,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)"]