<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def tag_match_score(desired: {str, Language}, supported: {str, Language}) -> int: """ Return a number from 0 to 100 indicating the strength of match between the language the user desires, D, and a supported language, S. Higher numbers are better. A reasonable cutoff for not messing with your users is to only accept scores of 75 or more. A score of 100 means the languages are the same, possibly after normalizing and filling in likely values. 100 100 100 100 100 A score of 92 to 97 indicates a regional difference. 97 96 96 96 94 92 95 92 A score of 86 to 90 indicates that people who use the desired language are demographically likely to understand the supported language, even if the languages themselves are unrelated. There are many languages that have a one-way connection of this kind to English or French. 86 86 Sometimes it's more straightforward than that: people who use the desired language are demographically likely to understand the supported language because it's demographically relevant and highly related. 86 86 90 88 A score of 80 to 85 indicates a particularly contentious difference in script, where people who understand one script can learn the other but probably won't be happy with it. This specifically applies to Chinese. 85 85 85 81 81 When the supported script is a different one than desired, this is usually a major difference with score of 60 or less. 56 56 When there is no indication the supported language will be understood, the score will be 20 or less, to a minimum of 0. 16 0 CLDR doesn't take into account which languages are considered part of a common 'macrolanguage'. We have this data, so we can use it in matching. If two languages have no other rule that would allow them to match, but share a macrolanguage, they'll get a match score of 20 less than what they would get if the language matched. 80 76 Here's an example that has script, region, and language differences, but a macrolanguage in common. Written Chinese is usually presumed to be Mandarin Chinese, but colloquial Cantonese can be written as well. When it is, it probably has region, script, and language differences from the usual mainland Chinese. But it is still part of the 'Chinese' macrolanguage, so there is more similarity than, say, comparing Mandarin to Hindi. 36 Comparing Swiss German ('gsw') to standardized German ('de') shows how these scores can be asymmetrical. Swiss German speakers will understand German, so the score in that direction is 92. Most German speakers find Swiss German unintelligible, and CLDR in fact assigns this a score of 16. This seems a little bit extreme, but the asymmetry is certainly there. And if your text is tagged as 'gsw', it must be that way for a reason. 92 16 """

    desired_ld = Language.get(desired)
    supported_ld = Language.get(supported)
    return desired_ld.match_score(supported_ld)