Z16444

{
    "Z1K1": "Z2",
    "Z2K1": {
        "Z1K1": "Z6",
        "Z6K1": "Z16444"
    },
    "Z2K2": {
        "Z1K1": "Z14",
        "Z14K1": "Z16443",
        "Z14K3": {
            "Z1K1": "Z16",
            "Z16K1": "Z610",
            "Z16K2": "def Z16443(Z16443K1):\n    if Z16443K1 == 0:\n        return \"ⴰⵎⵢⴰ\"\n\n    AND = \" ⴷ \"\n\n    units = [\"ⴰⵎⵢⴰ\", \"ⵢⴰⵏ\", \"ⵙⵉⵏ\", \"ⴽⵕⴰⴹ\", \"ⴽⴽⵓⵥ\", \"ⵙⵎⵎⵓⵙ\", \"ⵚⴹⵉⵚ\", \"ⵙⴰ\", \"ⵜⴰⵎ\", \"ⵜⵥⴰ\"]\n    tens = [\"\", \"ⵎⵔⴰⵡ\", \"ⵙⵉⵏ ⵉⴷ ⵎⵔⴰⵡ\", \"ⴽⵕⴰⴹ ⵉⴷ ⵎⵔⴰⵡ\", \"ⴽⴽⵓⵥ ⵏ ⵉⴷ ⵎⵔⴰⵡ\", \"ⵙⵎⵎⵓⵙ ⵏ ⵉⴷ ⵎⵔⴰⵡ\", \"ⵚⴹⵉⵚ ⵏ ⵉⴷ ⵎⵔⴰⵡ\", \"ⵙⴰ ⵏ ⵉⴷ ⵎⵔⴰⵡ\", \"ⵜⴰⵎ ⵏ ⵉⴷ ⵎⵔⴰⵡ\", \"ⵜⵥⴰ ⵏ ⵉⴷ ⵎⵔⴰⵡ\"]\n\n    hundreds = [\"\", \"ⵜⵉⵎⵉⴹⵉ\", \"ⵙⵏⴰⵜ ⵜⵉⵎⵎⴰⴹ\", \"ⴽⵕⴰⴹⵜ ⵜⵉⵎⵎⴰⴹ\", \"ⴽⴽⵓⵥ ⵏ ⵜⵎⵎⴰⴹ\", \"ⵙⵎⵎⵓⵙ ⵏ ⵜⵎⵎⴰⴹ\", \"ⵚⴹⵉⵚ ⵏ ⵜⵎⵎⴰⴹ\", \"ⵙⴰ ⵏ ⵜⵎⵎⴰⴹ\", \"ⵜⴰⵎ ⵏ ⵜⵎⵎⴰⴹ\", \"ⵜⵥⴰ ⵏ ⵜⵎⵎⴰⴹ\"]\n    thousands = [\"\", \"ⵉⴼⴹ\", \"ⵙⵉⵏ ⵉⴹⵏ\", \"ⴽⵕⴰⴹ ⵉⴼⴹⵏ\", \"ⴽⴽⵓⵥ ⵏ ⵉⴼⴹⵏ\", \"ⵙⵎⵎⵓⵙ ⵏ ⵉⴼⴹⵏ\", \"ⵚⴹⵉⵚ ⵏ ⵉⴼⴹⵏ\", \"ⵙⴰ ⵏ ⵉⴼⴹⵏ\", \"ⵜⴰⵎ ⵏ ⵉⴼⴹⵏ\", \"ⵜⵥⴰ ⵏ ⵉⴼⴹⵏ\",\n                 \"ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⵢⴰⵏ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⵙⵉⵏ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⴽⵕⴰⴹ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⴽⴽⵓⵥ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⵙⵎⵎⵓⵙ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⵚⴹⵉⵚ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\",\n                 \"ⵙⴰ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⵜⴰⵎ ⴷ ⵎⵔⴰⵡ ⵏ ⵉⴼⴹⵏ\", \"ⵜⵥⴰ ⴷ ⵎⵔⴰⵡⵏ ⵉⴼⴹⵏ\"]\n\n    orders = [\"\", \"ⵉⴼⴹ\", \"ⴰⵎⵍⵢⵓⵏ\", \"ⴰⵎⵍⵢⴰⵕ\", \"ⴰⵜⵔⵉⵍⵢⵓⵏ\", \"ⴰⴽⵡⴰⴹⵕⵉⵍⵢⵓⵏ\", \"ⴰⴽⵡⵉⵏⵜⵔⵉⵍⵢⵓⵏ\", \"ⴰⵙⵉⴽⵙⵜⵉⵍⵢⵓⵏ\",\n              \"ⴰⵙⵉⴱⵜⵉⵍⵢⵓⵏ\", \"ⴰⵡⴽⵜⵉⵍⵢⵓⵏ\", \"ⴰⵏⵓⵏⵉⵍⵢⵓⵏ\", \"ⴰⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⵡⵏⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⴷⵓⴷⵉⵙⵉⵍⵢⵓⵏ\",\n              \"ⴰⵜⵔⵉⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⴽⵡⴰⵟⵓⵕⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⴽⵡⵉⵏⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⵙⵉⴽⵙⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⵙⵉⴱⵜⵉⵏⴷⵉⵙⵉⵍⵢⵓⵏ\",\n              \"ⴰⵡⴽⵟⵓⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⵏⵓⴼⵉⵎⴷⵉⵙⵉⵍⵢⵓⵏ\", \"ⴰⴼⵉⵊⵉⵏⵜⵉⵍⵢⵓⵏ\"]\n\n    orders_plural = [\"\", \"ⵉⴼⴹⵏ\", \"ⵉⵎⵍⵢⵓⵏⵏ\", \"ⵉⵎⵍⵢⴰⵕⵏ\", \"ⵉⵜⵔⵉⵍⵢⵓⵏⵏ\", \"ⵉⴽⵡⴰⴹⵕⵉⵍⵢⵓⵏⵏ\", \"ⵉⴽⵡⵉⵏⵜⵔⵉⵍⵢⵓⵏⵏ\", \"ⵉⵙⵉⴽⵙⵜⵉⵍⵢⵓⵏⵏ\",\n              \"ⵉⵙⵉⴱⵜⵉⵍⵢⵓⵏⵏ\", \"ⵉⵡⴽⵜⵉⵍⵢⵓⵏⵏ\", \"ⵉⵏⵓⵏⵉⵍⵢⵓⵏⵏ\", \"ⵉⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⵡⵏⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⴷⵓⴷⵉⵙⵉⵍⵢⵓⵏⵏ\",\n              \"ⵉⵜⵔⵉⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⴽⵡⴰⵟⵓⵕⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⴽⵡⵉⵏⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⵙⵉⴽⵙⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⵙⵉⴱⵜⵉⵏⴷⵉⵙⵉⵍⵢⵓⵏⵏ\",\n              \"ⵉⵡⴽⵟⵓⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⵏⵓⴼⵉⵎⴷⵉⵙⵉⵍⵢⵓⵏⵏ\", \"ⵉⴼⵉⵊⵉⵏⵜⵉⵍⵢⵓⵏⵏ\"]\n\n    def convert_number_to_999(n):\n        if n == 0:\n            return \"\"\n        elif n \u003C 10:\n            return units[n]\n        elif n \u003C 20:\n            if n % 10 == 0:\n                return tens[n // 10]\n            else:\n                return units[n % 10] + AND + tens[n // 10]\n        elif n \u003C 100:\n            if n % 10 == 0:\n                return tens[n // 10]\n            else:\n                return tens[n // 10] + AND + units[n % 10] \n        elif n \u003C 1000:\n            if n % 100 == 0:\n                return hundreds[n // 100]\n            else:\n                return hundreds[n // 100] + AND + convert_number_to_999(n % 100)\n\n    def convert_large_number(n):\n        if n \u003C 1000:\n            return convert_number_to_999(n)\n\n        for order in range(len(orders) - 1, 0, -1):\n            order_value = 10 ** (order * 3)\n            if n \u003E= order_value:\n                major_part = n // order_value\n                remainder = n % order_value\n                major_part_str = convert_number_to_999(major_part)\n                remainder_str = convert_large_number(remainder)\n                order_name = orders[order]\n\n                if major_part == 1:\n                    return (orders[order] + (AND + remainder_str if remainder else \"\")).strip()\n\n                if order_name == \"ⵉⴼⴹ\":\n                    if major_part \u003E 1:\n                        return (major_part_str + \" \" + orders_plural[order] + (AND + remainder_str if remainder else \"\")).strip()\n                    return (major_part_str + \" \" + order_name + (AND + remainder_str if remainder else \"\")).strip()\n                else:\n                    if major_part \u003E 1:\n\n                        return (major_part_str + \" ⵏ \"  + orders_plural[order] +  (AND + remainder_str if remainder else \"\")).strip()\n\n                    return (major_part_str + \" \" + order_name + (AND + remainder_str if remainder else \"\")).strip()\n\n    return convert_large_number(Z16443K1)\n\t"
        }
    },
    "Z2K3": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "Standard Moroccan Tamazight cardinal, python"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1004",
                "Z11K2": "cardinal en amazighe standard marocain, en Python"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1430",
                "Z11K2": "Kardinalzahl in marokkanischem Tamazight in Python"
            }
        ]
    },
    "Z2K4": {
        "Z1K1": "Z32",
        "Z32K1": [
            "Z31"
        ]
    },
    "Z2K5": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11"
        ]
    }
}