diff --git a/README.md b/README.md
index 0ceba48fb..d59d66078 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
Radarr is an __independent__ fork of [Sonarr](https://github.com/Sonarr/Sonarr) reworked for automatically downloading movies via Usenet and BitTorrent.
diff --git a/src/NzbDrone.Core.Test/Files/ArabicRomanNumeralDictionary.JSON b/src/NzbDrone.Core.Test/Files/ArabicRomanNumeralDictionary.JSON
new file mode 100644
index 000000000..d5fc84bd3
--- /dev/null
+++ b/src/NzbDrone.Core.Test/Files/ArabicRomanNumeralDictionary.JSON
@@ -0,0 +1,4502 @@
+{
+ "1": "I",
+ "2": "II",
+ "3": "III",
+ "4": "IV",
+ "5": "V",
+ "6": "VI",
+ "7": "VII",
+ "8": "VIII",
+ "9": "IX",
+ "10": "X",
+ "11": "XI",
+ "12": "XII",
+ "13": "XIII",
+ "14": "XIV",
+ "15": "XV",
+ "16": "XVI",
+ "17": "XVII",
+ "18": "XVIII",
+ "19": "XIX",
+ "20": "XX",
+ "21": "XXI",
+ "22": "XXII",
+ "23": "XXIII",
+ "24": "XXIV",
+ "25": "XXV",
+ "26": "XXVI",
+ "27": "XXVII",
+ "28": "XXVIII",
+ "29": "XXIX",
+ "30": "XXX",
+ "31": "XXXI",
+ "32": "XXXII",
+ "33": "XXXIII",
+ "34": "XXXIV",
+ "35": "XXXV",
+ "36": "XXXVI",
+ "37": "XXXVII",
+ "38": "XXXVIII",
+ "39": "XXXIX",
+ "40": "XL",
+ "41": "XLI",
+ "42": "XLII",
+ "43": "XLIII",
+ "44": "XLIV",
+ "45": "XLV",
+ "46": "XLVI",
+ "47": "XLVII",
+ "48": "XLVIII",
+ "49": "XLIX",
+ "50": "L",
+ "51": "LI",
+ "52": "LII",
+ "53": "LIII",
+ "54": "LIV",
+ "55": "LV",
+ "56": "LVI",
+ "57": "LVII",
+ "58": "LVIII",
+ "59": "LIX",
+ "60": "LX",
+ "61": "LXI",
+ "62": "LXII",
+ "63": "LXIII",
+ "64": "LXIV",
+ "65": "LXV",
+ "66": "LXVI",
+ "67": "LXVII",
+ "68": "LXVIII",
+ "69": "LXIX",
+ "70": "LXX",
+ "71": "LXXI",
+ "72": "LXXII",
+ "73": "LXXIII",
+ "74": "LXXIV",
+ "75": "LXXV",
+ "76": "LXXVI",
+ "77": "LXXVII",
+ "78": "LXXVIII",
+ "79": "LXXIX",
+ "80": "LXXX",
+ "81": "LXXXI",
+ "82": "LXXXII",
+ "83": "LXXXIII",
+ "84": "LXXXIV",
+ "85": "LXXXV",
+ "86": "LXXXVI",
+ "87": "LXXXVII",
+ "88": "LXXXVIII",
+ "89": "LXXXIX",
+ "90": "XC",
+ "91": "XCI",
+ "92": "XCII",
+ "93": "XCIII",
+ "94": "XCIV",
+ "95": "XCV",
+ "96": "XCVI",
+ "97": "XCVII",
+ "98": "XCVIII",
+ "99": "XCIX",
+ "100": "C",
+ "101": "CI",
+ "102": "CII",
+ "103": "CIII",
+ "104": "CIV",
+ "105": "CV",
+ "106": "CVI",
+ "107": "CVII",
+ "108": "CVIII",
+ "109": "CIX",
+ "110": "CX",
+ "111": "CXI",
+ "112": "CXII",
+ "113": "CXIII",
+ "114": "CXIV",
+ "115": "CXV",
+ "116": "CXVI",
+ "117": "CXVII",
+ "118": "CXVIII",
+ "119": "CXIX",
+ "120": "CXX",
+ "121": "CXXI",
+ "122": "CXXII",
+ "123": "CXXIII",
+ "124": "CXXIV",
+ "125": "CXXV",
+ "126": "CXXVI",
+ "127": "CXXVII",
+ "128": "CXXVIII",
+ "129": "CXXIX",
+ "130": "CXXX",
+ "131": "CXXXI",
+ "132": "CXXXII",
+ "133": "CXXXIII",
+ "134": "CXXXIV",
+ "135": "CXXXV",
+ "136": "CXXXVI",
+ "137": "CXXXVII",
+ "138": "CXXXVIII",
+ "139": "CXXXIX",
+ "140": "CXL",
+ "141": "CXLI",
+ "142": "CXLII",
+ "143": "CXLIII",
+ "144": "CXLIV",
+ "145": "CXLV",
+ "146": "CXLVI",
+ "147": "CXLVII",
+ "148": "CXLVIII",
+ "149": "CXLIX",
+ "150": "CL",
+ "151": "CLI",
+ "152": "CLII",
+ "153": "CLIII",
+ "154": "CLIV",
+ "155": "CLV",
+ "156": "CLVI",
+ "157": "CLVII",
+ "158": "CLVIII",
+ "159": "CLIX",
+ "160": "CLX",
+ "161": "CLXI",
+ "162": "CLXII",
+ "163": "CLXIII",
+ "164": "CLXIV",
+ "165": "CLXV",
+ "166": "CLXVI",
+ "167": "CLXVII",
+ "168": "CLXVIII",
+ "169": "CLXIX",
+ "170": "CLXX",
+ "171": "CLXXI",
+ "172": "CLXXII",
+ "173": "CLXXIII",
+ "174": "CLXXIV",
+ "175": "CLXXV",
+ "176": "CLXXVI",
+ "177": "CLXXVII",
+ "178": "CLXXVIII",
+ "179": "CLXXIX",
+ "180": "CLXXX",
+ "181": "CLXXXI",
+ "182": "CLXXXII",
+ "183": "CLXXXIII",
+ "184": "CLXXXIV",
+ "185": "CLXXXV",
+ "186": "CLXXXVI",
+ "187": "CLXXXVII",
+ "188": "CLXXXVIII",
+ "189": "CLXXXIX",
+ "190": "CXC",
+ "191": "CXCI",
+ "192": "CXCII",
+ "193": "CXCIII",
+ "194": "CXCIV",
+ "195": "CXCV",
+ "196": "CXCVI",
+ "197": "CXCVII",
+ "198": "CXCVIII",
+ "199": "CXCIX",
+ "200": "CC",
+ "201": "CCI",
+ "202": "CCII",
+ "203": "CCIII",
+ "204": "CCIV",
+ "205": "CCV",
+ "206": "CCVI",
+ "207": "CCVII",
+ "208": "CCVIII",
+ "209": "CCIX",
+ "210": "CCX",
+ "211": "CCXI",
+ "212": "CCXII",
+ "213": "CCXIII",
+ "214": "CCXIV",
+ "215": "CCXV",
+ "216": "CCXVI",
+ "217": "CCXVII",
+ "218": "CCXVIII",
+ "219": "CCXIX",
+ "220": "CCXX",
+ "221": "CCXXI",
+ "222": "CCXXII",
+ "223": "CCXXIII",
+ "224": "CCXXIV",
+ "225": "CCXXV",
+ "226": "CCXXVI",
+ "227": "CCXXVII",
+ "228": "CCXXVIII",
+ "229": "CCXXIX",
+ "230": "CCXXX",
+ "231": "CCXXXI",
+ "232": "CCXXXII",
+ "233": "CCXXXIII",
+ "234": "CCXXXIV",
+ "235": "CCXXXV",
+ "236": "CCXXXVI",
+ "237": "CCXXXVII",
+ "238": "CCXXXVIII",
+ "239": "CCXXXIX",
+ "240": "CCXL",
+ "241": "CCXLI",
+ "242": "CCXLII",
+ "243": "CCXLIII",
+ "244": "CCXLIV",
+ "245": "CCXLV",
+ "246": "CCXLVI",
+ "247": "CCXLVII",
+ "248": "CCXLVIII",
+ "249": "CCXLIX",
+ "250": "CCL",
+ "251": "CCLI",
+ "252": "CCLII",
+ "253": "CCLIII",
+ "254": "CCLIV",
+ "255": "CCLV",
+ "256": "CCLVI",
+ "257": "CCLVII",
+ "258": "CCLVIII",
+ "259": "CCLIX",
+ "260": "CCLX",
+ "261": "CCLXI",
+ "262": "CCLXII",
+ "263": "CCLXIII",
+ "264": "CCLXIV",
+ "265": "CCLXV",
+ "266": "CCLXVI",
+ "267": "CCLXVII",
+ "268": "CCLXVIII",
+ "269": "CCLXIX",
+ "270": "CCLXX",
+ "271": "CCLXXI",
+ "272": "CCLXXII",
+ "273": "CCLXXIII",
+ "274": "CCLXXIV",
+ "275": "CCLXXV",
+ "276": "CCLXXVI",
+ "277": "CCLXXVII",
+ "278": "CCLXXVIII",
+ "279": "CCLXXIX",
+ "280": "CCLXXX",
+ "281": "CCLXXXI",
+ "282": "CCLXXXII",
+ "283": "CCLXXXIII",
+ "284": "CCLXXXIV",
+ "285": "CCLXXXV",
+ "286": "CCLXXXVI",
+ "287": "CCLXXXVII",
+ "288": "CCLXXXVIII",
+ "289": "CCLXXXIX",
+ "290": "CCXC",
+ "291": "CCXCI",
+ "292": "CCXCII",
+ "293": "CCXCIII",
+ "294": "CCXCIV",
+ "295": "CCXCV",
+ "296": "CCXCVI",
+ "297": "CCXCVII",
+ "298": "CCXCVIII",
+ "299": "CCXCIX",
+ "300": "CCC",
+ "301": "CCCI",
+ "302": "CCCII",
+ "303": "CCCIII",
+ "304": "CCCIV",
+ "305": "CCCV",
+ "306": "CCCVI",
+ "307": "CCCVII",
+ "308": "CCCVIII",
+ "309": "CCCIX",
+ "310": "CCCX",
+ "311": "CCCXI",
+ "312": "CCCXII",
+ "313": "CCCXIII",
+ "314": "CCCXIV",
+ "315": "CCCXV",
+ "316": "CCCXVI",
+ "317": "CCCXVII",
+ "318": "CCCXVIII",
+ "319": "CCCXIX",
+ "320": "CCCXX",
+ "321": "CCCXXI",
+ "322": "CCCXXII",
+ "323": "CCCXXIII",
+ "324": "CCCXXIV",
+ "325": "CCCXXV",
+ "326": "CCCXXVI",
+ "327": "CCCXXVII",
+ "328": "CCCXXVIII",
+ "329": "CCCXXIX",
+ "330": "CCCXXX",
+ "331": "CCCXXXI",
+ "332": "CCCXXXII",
+ "333": "CCCXXXIII",
+ "334": "CCCXXXIV",
+ "335": "CCCXXXV",
+ "336": "CCCXXXVI",
+ "337": "CCCXXXVII",
+ "338": "CCCXXXVIII",
+ "339": "CCCXXXIX",
+ "340": "CCCXL",
+ "341": "CCCXLI",
+ "342": "CCCXLII",
+ "343": "CCCXLIII",
+ "344": "CCCXLIV",
+ "345": "CCCXLV",
+ "346": "CCCXLVI",
+ "347": "CCCXLVII",
+ "348": "CCCXLVIII",
+ "349": "CCCXLIX",
+ "350": "CCCL",
+ "351": "CCCLI",
+ "352": "CCCLII",
+ "353": "CCCLIII",
+ "354": "CCCLIV",
+ "355": "CCCLV",
+ "356": "CCCLVI",
+ "357": "CCCLVII",
+ "358": "CCCLVIII",
+ "359": "CCCLIX",
+ "360": "CCCLX",
+ "361": "CCCLXI",
+ "362": "CCCLXII",
+ "363": "CCCLXIII",
+ "364": "CCCLXIV",
+ "365": "CCCLXV",
+ "366": "CCCLXVI",
+ "367": "CCCLXVII",
+ "368": "CCCLXVIII",
+ "369": "CCCLXIX",
+ "370": "CCCLXX",
+ "371": "CCCLXXI",
+ "372": "CCCLXXII",
+ "373": "CCCLXXIII",
+ "374": "CCCLXXIV",
+ "375": "CCCLXXV",
+ "376": "CCCLXXVI",
+ "377": "CCCLXXVII",
+ "378": "CCCLXXVIII",
+ "379": "CCCLXXIX",
+ "380": "CCCLXXX",
+ "381": "CCCLXXXI",
+ "382": "CCCLXXXII",
+ "383": "CCCLXXXIII",
+ "384": "CCCLXXXIV",
+ "385": "CCCLXXXV",
+ "386": "CCCLXXXVI",
+ "387": "CCCLXXXVII",
+ "388": "CCCLXXXVIII",
+ "389": "CCCLXXXIX",
+ "390": "CCCXC",
+ "391": "CCCXCI",
+ "392": "CCCXCII",
+ "393": "CCCXCIII",
+ "394": "CCCXCIV",
+ "395": "CCCXCV",
+ "396": "CCCXCVI",
+ "397": "CCCXCVII",
+ "398": "CCCXCVIII",
+ "399": "CCCXCIX",
+ "400": "CD",
+ "401": "CDI",
+ "402": "CDII",
+ "403": "CDIII",
+ "404": "CDIV",
+ "405": "CDV",
+ "406": "CDVI",
+ "407": "CDVII",
+ "408": "CDVIII",
+ "409": "CDIX",
+ "410": "CDX",
+ "411": "CDXI",
+ "412": "CDXII",
+ "413": "CDXIII",
+ "414": "CDXIV",
+ "415": "CDXV",
+ "416": "CDXVI",
+ "417": "CDXVII",
+ "418": "CDXVIII",
+ "419": "CDXIX",
+ "420": "CDXX",
+ "421": "CDXXI",
+ "422": "CDXXII",
+ "423": "CDXXIII",
+ "424": "CDXXIV",
+ "425": "CDXXV",
+ "426": "CDXXVI",
+ "427": "CDXXVII",
+ "428": "CDXXVIII",
+ "429": "CDXXIX",
+ "430": "CDXXX",
+ "431": "CDXXXI",
+ "432": "CDXXXII",
+ "433": "CDXXXIII",
+ "434": "CDXXXIV",
+ "435": "CDXXXV",
+ "436": "CDXXXVI",
+ "437": "CDXXXVII",
+ "438": "CDXXXVIII",
+ "439": "CDXXXIX",
+ "440": "CDXL",
+ "441": "CDXLI",
+ "442": "CDXLII",
+ "443": "CDXLIII",
+ "444": "CDXLIV",
+ "445": "CDXLV",
+ "446": "CDXLVI",
+ "447": "CDXLVII",
+ "448": "CDXLVIII",
+ "449": "CDXLIX",
+ "450": "CDL",
+ "451": "CDLI",
+ "452": "CDLII",
+ "453": "CDLIII",
+ "454": "CDLIV",
+ "455": "CDLV",
+ "456": "CDLVI",
+ "457": "CDLVII",
+ "458": "CDLVIII",
+ "459": "CDLIX",
+ "460": "CDLX",
+ "461": "CDLXI",
+ "462": "CDLXII",
+ "463": "CDLXIII",
+ "464": "CDLXIV",
+ "465": "CDLXV",
+ "466": "CDLXVI",
+ "467": "CDLXVII",
+ "468": "CDLXVIII",
+ "469": "CDLXIX",
+ "470": "CDLXX",
+ "471": "CDLXXI",
+ "472": "CDLXXII",
+ "473": "CDLXXIII",
+ "474": "CDLXXIV",
+ "475": "CDLXXV",
+ "476": "CDLXXVI",
+ "477": "CDLXXVII",
+ "478": "CDLXXVIII",
+ "479": "CDLXXIX",
+ "480": "CDLXXX",
+ "481": "CDLXXXI",
+ "482": "CDLXXXII",
+ "483": "CDLXXXIII",
+ "484": "CDLXXXIV",
+ "485": "CDLXXXV",
+ "486": "CDLXXXVI",
+ "487": "CDLXXXVII",
+ "488": "CDLXXXVIII",
+ "489": "CDLXXXIX",
+ "490": "CDXC",
+ "491": "CDXCI",
+ "492": "CDXCII",
+ "493": "CDXCIII",
+ "494": "CDXCIV",
+ "495": "CDXCV",
+ "496": "CDXCVI",
+ "497": "CDXCVII",
+ "498": "CDXCVIII",
+ "499": "CDXCIX",
+ "500": "D",
+ "501": "DI",
+ "502": "DII",
+ "503": "DIII",
+ "504": "DIV",
+ "505": "DV",
+ "506": "DVI",
+ "507": "DVII",
+ "508": "DVIII",
+ "509": "DIX",
+ "510": "DX",
+ "511": "DXI",
+ "512": "DXII",
+ "513": "DXIII",
+ "514": "DXIV",
+ "515": "DXV",
+ "516": "DXVI",
+ "517": "DXVII",
+ "518": "DXVIII",
+ "519": "DXIX",
+ "520": "DXX",
+ "521": "DXXI",
+ "522": "DXXII",
+ "523": "DXXIII",
+ "524": "DXXIV",
+ "525": "DXXV",
+ "526": "DXXVI",
+ "527": "DXXVII",
+ "528": "DXXVIII",
+ "529": "DXXIX",
+ "530": "DXXX",
+ "531": "DXXXI",
+ "532": "DXXXII",
+ "533": "DXXXIII",
+ "534": "DXXXIV",
+ "535": "DXXXV",
+ "536": "DXXXVI",
+ "537": "DXXXVII",
+ "538": "DXXXVIII",
+ "539": "DXXXIX",
+ "540": "DXL",
+ "541": "DXLI",
+ "542": "DXLII",
+ "543": "DXLIII",
+ "544": "DXLIV",
+ "545": "DXLV",
+ "546": "DXLVI",
+ "547": "DXLVII",
+ "548": "DXLVIII",
+ "549": "DXLIX",
+ "550": "DL",
+ "551": "DLI",
+ "552": "DLII",
+ "553": "DLIII",
+ "554": "DLIV",
+ "555": "DLV",
+ "556": "DLVI",
+ "557": "DLVII",
+ "558": "DLVIII",
+ "559": "DLIX",
+ "560": "DLX",
+ "561": "DLXI",
+ "562": "DLXII",
+ "563": "DLXIII",
+ "564": "DLXIV",
+ "565": "DLXV",
+ "566": "DLXVI",
+ "567": "DLXVII",
+ "568": "DLXVIII",
+ "569": "DLXIX",
+ "570": "DLXX",
+ "571": "DLXXI",
+ "572": "DLXXII",
+ "573": "DLXXIII",
+ "574": "DLXXIV",
+ "575": "DLXXV",
+ "576": "DLXXVI",
+ "577": "DLXXVII",
+ "578": "DLXXVIII",
+ "579": "DLXXIX",
+ "580": "DLXXX",
+ "581": "DLXXXI",
+ "582": "DLXXXII",
+ "583": "DLXXXIII",
+ "584": "DLXXXIV",
+ "585": "DLXXXV",
+ "586": "DLXXXVI",
+ "587": "DLXXXVII",
+ "588": "DLXXXVIII",
+ "589": "DLXXXIX",
+ "590": "DXC",
+ "591": "DXCI",
+ "592": "DXCII",
+ "593": "DXCIII",
+ "594": "DXCIV",
+ "595": "DXCV",
+ "596": "DXCVI",
+ "597": "DXCVII",
+ "598": "DXCVIII",
+ "599": "DXCIX",
+ "600": "DC",
+ "601": "DCI",
+ "602": "DCII",
+ "603": "DCIII",
+ "604": "DCIV",
+ "605": "DCV",
+ "606": "DCVI",
+ "607": "DCVII",
+ "608": "DCVIII",
+ "609": "DCIX",
+ "610": "DCX",
+ "611": "DCXI",
+ "612": "DCXII",
+ "613": "DCXIII",
+ "614": "DCXIV",
+ "615": "DCXV",
+ "616": "DCXVI",
+ "617": "DCXVII",
+ "618": "DCXVIII",
+ "619": "DCXIX",
+ "620": "DCXX",
+ "621": "DCXXI",
+ "622": "DCXXII",
+ "623": "DCXXIII",
+ "624": "DCXXIV",
+ "625": "DCXXV",
+ "626": "DCXXVI",
+ "627": "DCXXVII",
+ "628": "DCXXVIII",
+ "629": "DCXXIX",
+ "630": "DCXXX",
+ "631": "DCXXXI",
+ "632": "DCXXXII",
+ "633": "DCXXXIII",
+ "634": "DCXXXIV",
+ "635": "DCXXXV",
+ "636": "DCXXXVI",
+ "637": "DCXXXVII",
+ "638": "DCXXXVIII",
+ "639": "DCXXXIX",
+ "640": "DCXL",
+ "641": "DCXLI",
+ "642": "DCXLII",
+ "643": "DCXLIII",
+ "644": "DCXLIV",
+ "645": "DCXLV",
+ "646": "DCXLVI",
+ "647": "DCXLVII",
+ "648": "DCXLVIII",
+ "649": "DCXLIX",
+ "650": "DCL",
+ "651": "DCLI",
+ "652": "DCLII",
+ "653": "DCLIII",
+ "654": "DCLIV",
+ "655": "DCLV",
+ "656": "DCLVI",
+ "657": "DCLVII",
+ "658": "DCLVIII",
+ "659": "DCLIX",
+ "660": "DCLX",
+ "661": "DCLXI",
+ "662": "DCLXII",
+ "663": "DCLXIII",
+ "664": "DCLXIV",
+ "665": "DCLXV",
+ "666": "DCLXVI",
+ "667": "DCLXVII",
+ "668": "DCLXVIII",
+ "669": "DCLXIX",
+ "670": "DCLXX",
+ "671": "DCLXXI",
+ "672": "DCLXXII",
+ "673": "DCLXXIII",
+ "674": "DCLXXIV",
+ "675": "DCLXXV",
+ "676": "DCLXXVI",
+ "677": "DCLXXVII",
+ "678": "DCLXXVIII",
+ "679": "DCLXXIX",
+ "680": "DCLXXX",
+ "681": "DCLXXXI",
+ "682": "DCLXXXII",
+ "683": "DCLXXXIII",
+ "684": "DCLXXXIV",
+ "685": "DCLXXXV",
+ "686": "DCLXXXVI",
+ "687": "DCLXXXVII",
+ "688": "DCLXXXVIII",
+ "689": "DCLXXXIX",
+ "690": "DCXC",
+ "691": "DCXCI",
+ "692": "DCXCII",
+ "693": "DCXCIII",
+ "694": "DCXCIV",
+ "695": "DCXCV",
+ "696": "DCXCVI",
+ "697": "DCXCVII",
+ "698": "DCXCVIII",
+ "699": "DCXCIX",
+ "700": "DCC",
+ "701": "DCCI",
+ "702": "DCCII",
+ "703": "DCCIII",
+ "704": "DCCIV",
+ "705": "DCCV",
+ "706": "DCCVI",
+ "707": "DCCVII",
+ "708": "DCCVIII",
+ "709": "DCCIX",
+ "710": "DCCX",
+ "711": "DCCXI",
+ "712": "DCCXII",
+ "713": "DCCXIII",
+ "714": "DCCXIV",
+ "715": "DCCXV",
+ "716": "DCCXVI",
+ "717": "DCCXVII",
+ "718": "DCCXVIII",
+ "719": "DCCXIX",
+ "720": "DCCXX",
+ "721": "DCCXXI",
+ "722": "DCCXXII",
+ "723": "DCCXXIII",
+ "724": "DCCXXIV",
+ "725": "DCCXXV",
+ "726": "DCCXXVI",
+ "727": "DCCXXVII",
+ "728": "DCCXXVIII",
+ "729": "DCCXXIX",
+ "730": "DCCXXX",
+ "731": "DCCXXXI",
+ "732": "DCCXXXII",
+ "733": "DCCXXXIII",
+ "734": "DCCXXXIV",
+ "735": "DCCXXXV",
+ "736": "DCCXXXVI",
+ "737": "DCCXXXVII",
+ "738": "DCCXXXVIII",
+ "739": "DCCXXXIX",
+ "740": "DCCXL",
+ "741": "DCCXLI",
+ "742": "DCCXLII",
+ "743": "DCCXLIII",
+ "744": "DCCXLIV",
+ "745": "DCCXLV",
+ "746": "DCCXLVI",
+ "747": "DCCXLVII",
+ "748": "DCCXLVIII",
+ "749": "DCCXLIX",
+ "750": "DCCL",
+ "751": "DCCLI",
+ "752": "DCCLII",
+ "753": "DCCLIII",
+ "754": "DCCLIV",
+ "755": "DCCLV",
+ "756": "DCCLVI",
+ "757": "DCCLVII",
+ "758": "DCCLVIII",
+ "759": "DCCLIX",
+ "760": "DCCLX",
+ "761": "DCCLXI",
+ "762": "DCCLXII",
+ "763": "DCCLXIII",
+ "764": "DCCLXIV",
+ "765": "DCCLXV",
+ "766": "DCCLXVI",
+ "767": "DCCLXVII",
+ "768": "DCCLXVIII",
+ "769": "DCCLXIX",
+ "770": "DCCLXX",
+ "771": "DCCLXXI",
+ "772": "DCCLXXII",
+ "773": "DCCLXXIII",
+ "774": "DCCLXXIV",
+ "775": "DCCLXXV",
+ "776": "DCCLXXVI",
+ "777": "DCCLXXVII",
+ "778": "DCCLXXVIII",
+ "779": "DCCLXXIX",
+ "780": "DCCLXXX",
+ "781": "DCCLXXXI",
+ "782": "DCCLXXXII",
+ "783": "DCCLXXXIII",
+ "784": "DCCLXXXIV",
+ "785": "DCCLXXXV",
+ "786": "DCCLXXXVI",
+ "787": "DCCLXXXVII",
+ "788": "DCCLXXXVIII",
+ "789": "DCCLXXXIX",
+ "790": "DCCXC",
+ "791": "DCCXCI",
+ "792": "DCCXCII",
+ "793": "DCCXCIII",
+ "794": "DCCXCIV",
+ "795": "DCCXCV",
+ "796": "DCCXCVI",
+ "797": "DCCXCVII",
+ "798": "DCCXCVIII",
+ "799": "DCCXCIX",
+ "800": "DCCC",
+ "801": "DCCCI",
+ "802": "DCCCII",
+ "803": "DCCCIII",
+ "804": "DCCCIV",
+ "805": "DCCCV",
+ "806": "DCCCVI",
+ "807": "DCCCVII",
+ "808": "DCCCVIII",
+ "809": "DCCCIX",
+ "810": "DCCCX",
+ "811": "DCCCXI",
+ "812": "DCCCXII",
+ "813": "DCCCXIII",
+ "814": "DCCCXIV",
+ "815": "DCCCXV",
+ "816": "DCCCXVI",
+ "817": "DCCCXVII",
+ "818": "DCCCXVIII",
+ "819": "DCCCXIX",
+ "820": "DCCCXX",
+ "821": "DCCCXXI",
+ "822": "DCCCXXII",
+ "823": "DCCCXXIII",
+ "824": "DCCCXXIV",
+ "825": "DCCCXXV",
+ "826": "DCCCXXVI",
+ "827": "DCCCXXVII",
+ "828": "DCCCXXVIII",
+ "829": "DCCCXXIX",
+ "830": "DCCCXXX",
+ "831": "DCCCXXXI",
+ "832": "DCCCXXXII",
+ "833": "DCCCXXXIII",
+ "834": "DCCCXXXIV",
+ "835": "DCCCXXXV",
+ "836": "DCCCXXXVI",
+ "837": "DCCCXXXVII",
+ "838": "DCCCXXXVIII",
+ "839": "DCCCXXXIX",
+ "840": "DCCCXL",
+ "841": "DCCCXLI",
+ "842": "DCCCXLII",
+ "843": "DCCCXLIII",
+ "844": "DCCCXLIV",
+ "845": "DCCCXLV",
+ "846": "DCCCXLVI",
+ "847": "DCCCXLVII",
+ "848": "DCCCXLVIII",
+ "849": "DCCCXLIX",
+ "850": "DCCCL",
+ "851": "DCCCLI",
+ "852": "DCCCLII",
+ "853": "DCCCLIII",
+ "854": "DCCCLIV",
+ "855": "DCCCLV",
+ "856": "DCCCLVI",
+ "857": "DCCCLVII",
+ "858": "DCCCLVIII",
+ "859": "DCCCLIX",
+ "860": "DCCCLX",
+ "861": "DCCCLXI",
+ "862": "DCCCLXII",
+ "863": "DCCCLXIII",
+ "864": "DCCCLXIV",
+ "865": "DCCCLXV",
+ "866": "DCCCLXVI",
+ "867": "DCCCLXVII",
+ "868": "DCCCLXVIII",
+ "869": "DCCCLXIX",
+ "870": "DCCCLXX",
+ "871": "DCCCLXXI",
+ "872": "DCCCLXXII",
+ "873": "DCCCLXXIII",
+ "874": "DCCCLXXIV",
+ "875": "DCCCLXXV",
+ "876": "DCCCLXXVI",
+ "877": "DCCCLXXVII",
+ "878": "DCCCLXXVIII",
+ "879": "DCCCLXXIX",
+ "880": "DCCCLXXX",
+ "881": "DCCCLXXXI",
+ "882": "DCCCLXXXII",
+ "883": "DCCCLXXXIII",
+ "884": "DCCCLXXXIV",
+ "885": "DCCCLXXXV",
+ "886": "DCCCLXXXVI",
+ "887": "DCCCLXXXVII",
+ "888": "DCCCLXXXVIII",
+ "889": "DCCCLXXXIX",
+ "890": "DCCCXC",
+ "891": "DCCCXCI",
+ "892": "DCCCXCII",
+ "893": "DCCCXCIII",
+ "894": "DCCCXCIV",
+ "895": "DCCCXCV",
+ "896": "DCCCXCVI",
+ "897": "DCCCXCVII",
+ "898": "DCCCXCVIII",
+ "899": "DCCCXCIX",
+ "900": "CM",
+ "901": "CMI",
+ "902": "CMII",
+ "903": "CMIII",
+ "904": "CMIV",
+ "905": "CMV",
+ "906": "CMVI",
+ "907": "CMVII",
+ "908": "CMVIII",
+ "909": "CMIX",
+ "910": "CMX",
+ "911": "CMXI",
+ "912": "CMXII",
+ "913": "CMXIII",
+ "914": "CMXIV",
+ "915": "CMXV",
+ "916": "CMXVI",
+ "917": "CMXVII",
+ "918": "CMXVIII",
+ "919": "CMXIX",
+ "920": "CMXX",
+ "921": "CMXXI",
+ "922": "CMXXII",
+ "923": "CMXXIII",
+ "924": "CMXXIV",
+ "925": "CMXXV",
+ "926": "CMXXVI",
+ "927": "CMXXVII",
+ "928": "CMXXVIII",
+ "929": "CMXXIX",
+ "930": "CMXXX",
+ "931": "CMXXXI",
+ "932": "CMXXXII",
+ "933": "CMXXXIII",
+ "934": "CMXXXIV",
+ "935": "CMXXXV",
+ "936": "CMXXXVI",
+ "937": "CMXXXVII",
+ "938": "CMXXXVIII",
+ "939": "CMXXXIX",
+ "940": "CMXL",
+ "941": "CMXLI",
+ "942": "CMXLII",
+ "943": "CMXLIII",
+ "944": "CMXLIV",
+ "945": "CMXLV",
+ "946": "CMXLVI",
+ "947": "CMXLVII",
+ "948": "CMXLVIII",
+ "949": "CMXLIX",
+ "950": "CML",
+ "951": "CMLI",
+ "952": "CMLII",
+ "953": "CMLIII",
+ "954": "CMLIV",
+ "955": "CMLV",
+ "956": "CMLVI",
+ "957": "CMLVII",
+ "958": "CMLVIII",
+ "959": "CMLIX",
+ "960": "CMLX",
+ "961": "CMLXI",
+ "962": "CMLXII",
+ "963": "CMLXIII",
+ "964": "CMLXIV",
+ "965": "CMLXV",
+ "966": "CMLXVI",
+ "967": "CMLXVII",
+ "968": "CMLXVIII",
+ "969": "CMLXIX",
+ "970": "CMLXX",
+ "971": "CMLXXI",
+ "972": "CMLXXII",
+ "973": "CMLXXIII",
+ "974": "CMLXXIV",
+ "975": "CMLXXV",
+ "976": "CMLXXVI",
+ "977": "CMLXXVII",
+ "978": "CMLXXVIII",
+ "979": "CMLXXIX",
+ "980": "CMLXXX",
+ "981": "CMLXXXI",
+ "982": "CMLXXXII",
+ "983": "CMLXXXIII",
+ "984": "CMLXXXIV",
+ "985": "CMLXXXV",
+ "986": "CMLXXXVI",
+ "987": "CMLXXXVII",
+ "988": "CMLXXXVIII",
+ "989": "CMLXXXIX",
+ "990": "CMXC",
+ "991": "CMXCI",
+ "992": "CMXCII",
+ "993": "CMXCIII",
+ "994": "CMXCIV",
+ "995": "CMXCV",
+ "996": "CMXCVI",
+ "997": "CMXCVII",
+ "998": "CMXCVIII",
+ "999": "CMXCIX",
+ "1000": "M",
+ "1001": "MI",
+ "1002": "MII",
+ "1003": "MIII",
+ "1004": "MIV",
+ "1005": "MV",
+ "1006": "MVI",
+ "1007": "MVII",
+ "1008": "MVIII",
+ "1009": "MIX",
+ "1010": "MX",
+ "1011": "MXI",
+ "1012": "MXII",
+ "1013": "MXIII",
+ "1014": "MXIV",
+ "1015": "MXV",
+ "1016": "MXVI",
+ "1017": "MXVII",
+ "1018": "MXVIII",
+ "1019": "MXIX",
+ "1020": "MXX",
+ "1021": "MXXI",
+ "1022": "MXXII",
+ "1023": "MXXIII",
+ "1024": "MXXIV",
+ "1025": "MXXV",
+ "1026": "MXXVI",
+ "1027": "MXXVII",
+ "1028": "MXXVIII",
+ "1029": "MXXIX",
+ "1030": "MXXX",
+ "1031": "MXXXI",
+ "1032": "MXXXII",
+ "1033": "MXXXIII",
+ "1034": "MXXXIV",
+ "1035": "MXXXV",
+ "1036": "MXXXVI",
+ "1037": "MXXXVII",
+ "1038": "MXXXVIII",
+ "1039": "MXXXIX",
+ "1040": "MXL",
+ "1041": "MXLI",
+ "1042": "MXLII",
+ "1043": "MXLIII",
+ "1044": "MXLIV",
+ "1045": "MXLV",
+ "1046": "MXLVI",
+ "1047": "MXLVII",
+ "1048": "MXLVIII",
+ "1049": "MXLIX",
+ "1050": "ML",
+ "1051": "MLI",
+ "1052": "MLII",
+ "1053": "MLIII",
+ "1054": "MLIV",
+ "1055": "MLV",
+ "1056": "MLVI",
+ "1057": "MLVII",
+ "1058": "MLVIII",
+ "1059": "MLIX",
+ "1060": "MLX",
+ "1061": "MLXI",
+ "1062": "MLXII",
+ "1063": "MLXIII",
+ "1064": "MLXIV",
+ "1065": "MLXV",
+ "1066": "MLXVI",
+ "1067": "MLXVII",
+ "1068": "MLXVIII",
+ "1069": "MLXIX",
+ "1070": "MLXX",
+ "1071": "MLXXI",
+ "1072": "MLXXII",
+ "1073": "MLXXIII",
+ "1074": "MLXXIV",
+ "1075": "MLXXV",
+ "1076": "MLXXVI",
+ "1077": "MLXXVII",
+ "1078": "MLXXVIII",
+ "1079": "MLXXIX",
+ "1080": "MLXXX",
+ "1081": "MLXXXI",
+ "1082": "MLXXXII",
+ "1083": "MLXXXIII",
+ "1084": "MLXXXIV",
+ "1085": "MLXXXV",
+ "1086": "MLXXXVI",
+ "1087": "MLXXXVII",
+ "1088": "MLXXXVIII",
+ "1089": "MLXXXIX",
+ "1090": "MXC",
+ "1091": "MXCI",
+ "1092": "MXCII",
+ "1093": "MXCIII",
+ "1094": "MXCIV",
+ "1095": "MXCV",
+ "1096": "MXCVI",
+ "1097": "MXCVII",
+ "1098": "MXCVIII",
+ "1099": "MXCIX",
+ "1100": "MC",
+ "1101": "MCI",
+ "1102": "MCII",
+ "1103": "MCIII",
+ "1104": "MCIV",
+ "1105": "MCV",
+ "1106": "MCVI",
+ "1107": "MCVII",
+ "1108": "MCVIII",
+ "1109": "MCIX",
+ "1110": "MCX",
+ "1111": "MCXI",
+ "1112": "MCXII",
+ "1113": "MCXIII",
+ "1114": "MCXIV",
+ "1115": "MCXV",
+ "1116": "MCXVI",
+ "1117": "MCXVII",
+ "1118": "MCXVIII",
+ "1119": "MCXIX",
+ "1120": "MCXX",
+ "1121": "MCXXI",
+ "1122": "MCXXII",
+ "1123": "MCXXIII",
+ "1124": "MCXXIV",
+ "1125": "MCXXV",
+ "1126": "MCXXVI",
+ "1127": "MCXXVII",
+ "1128": "MCXXVIII",
+ "1129": "MCXXIX",
+ "1130": "MCXXX",
+ "1131": "MCXXXI",
+ "1132": "MCXXXII",
+ "1133": "MCXXXIII",
+ "1134": "MCXXXIV",
+ "1135": "MCXXXV",
+ "1136": "MCXXXVI",
+ "1137": "MCXXXVII",
+ "1138": "MCXXXVIII",
+ "1139": "MCXXXIX",
+ "1140": "MCXL",
+ "1141": "MCXLI",
+ "1142": "MCXLII",
+ "1143": "MCXLIII",
+ "1144": "MCXLIV",
+ "1145": "MCXLV",
+ "1146": "MCXLVI",
+ "1147": "MCXLVII",
+ "1148": "MCXLVIII",
+ "1149": "MCXLIX",
+ "1150": "MCL",
+ "1151": "MCLI",
+ "1152": "MCLII",
+ "1153": "MCLIII",
+ "1154": "MCLIV",
+ "1155": "MCLV",
+ "1156": "MCLVI",
+ "1157": "MCLVII",
+ "1158": "MCLVIII",
+ "1159": "MCLIX",
+ "1160": "MCLX",
+ "1161": "MCLXI",
+ "1162": "MCLXII",
+ "1163": "MCLXIII",
+ "1164": "MCLXIV",
+ "1165": "MCLXV",
+ "1166": "MCLXVI",
+ "1167": "MCLXVII",
+ "1168": "MCLXVIII",
+ "1169": "MCLXIX",
+ "1170": "MCLXX",
+ "1171": "MCLXXI",
+ "1172": "MCLXXII",
+ "1173": "MCLXXIII",
+ "1174": "MCLXXIV",
+ "1175": "MCLXXV",
+ "1176": "MCLXXVI",
+ "1177": "MCLXXVII",
+ "1178": "MCLXXVIII",
+ "1179": "MCLXXIX",
+ "1180": "MCLXXX",
+ "1181": "MCLXXXI",
+ "1182": "MCLXXXII",
+ "1183": "MCLXXXIII",
+ "1184": "MCLXXXIV",
+ "1185": "MCLXXXV",
+ "1186": "MCLXXXVI",
+ "1187": "MCLXXXVII",
+ "1188": "MCLXXXVIII",
+ "1189": "MCLXXXIX",
+ "1190": "MCXC",
+ "1191": "MCXCI",
+ "1192": "MCXCII",
+ "1193": "MCXCIII",
+ "1194": "MCXCIV",
+ "1195": "MCXCV",
+ "1196": "MCXCVI",
+ "1197": "MCXCVII",
+ "1198": "MCXCVIII",
+ "1199": "MCXCIX",
+ "1200": "MCC",
+ "1201": "MCCI",
+ "1202": "MCCII",
+ "1203": "MCCIII",
+ "1204": "MCCIV",
+ "1205": "MCCV",
+ "1206": "MCCVI",
+ "1207": "MCCVII",
+ "1208": "MCCVIII",
+ "1209": "MCCIX",
+ "1210": "MCCX",
+ "1211": "MCCXI",
+ "1212": "MCCXII",
+ "1213": "MCCXIII",
+ "1214": "MCCXIV",
+ "1215": "MCCXV",
+ "1216": "MCCXVI",
+ "1217": "MCCXVII",
+ "1218": "MCCXVIII",
+ "1219": "MCCXIX",
+ "1220": "MCCXX",
+ "1221": "MCCXXI",
+ "1222": "MCCXXII",
+ "1223": "MCCXXIII",
+ "1224": "MCCXXIV",
+ "1225": "MCCXXV",
+ "1226": "MCCXXVI",
+ "1227": "MCCXXVII",
+ "1228": "MCCXXVIII",
+ "1229": "MCCXXIX",
+ "1230": "MCCXXX",
+ "1231": "MCCXXXI",
+ "1232": "MCCXXXII",
+ "1233": "MCCXXXIII",
+ "1234": "MCCXXXIV",
+ "1235": "MCCXXXV",
+ "1236": "MCCXXXVI",
+ "1237": "MCCXXXVII",
+ "1238": "MCCXXXVIII",
+ "1239": "MCCXXXIX",
+ "1240": "MCCXL",
+ "1241": "MCCXLI",
+ "1242": "MCCXLII",
+ "1243": "MCCXLIII",
+ "1244": "MCCXLIV",
+ "1245": "MCCXLV",
+ "1246": "MCCXLVI",
+ "1247": "MCCXLVII",
+ "1248": "MCCXLVIII",
+ "1249": "MCCXLIX",
+ "1250": "MCCL",
+ "1251": "MCCLI",
+ "1252": "MCCLII",
+ "1253": "MCCLIII",
+ "1254": "MCCLIV",
+ "1255": "MCCLV",
+ "1256": "MCCLVI",
+ "1257": "MCCLVII",
+ "1258": "MCCLVIII",
+ "1259": "MCCLIX",
+ "1260": "MCCLX",
+ "1261": "MCCLXI",
+ "1262": "MCCLXII",
+ "1263": "MCCLXIII",
+ "1264": "MCCLXIV",
+ "1265": "MCCLXV",
+ "1266": "MCCLXVI",
+ "1267": "MCCLXVII",
+ "1268": "MCCLXVIII",
+ "1269": "MCCLXIX",
+ "1270": "MCCLXX",
+ "1271": "MCCLXXI",
+ "1272": "MCCLXXII",
+ "1273": "MCCLXXIII",
+ "1274": "MCCLXXIV",
+ "1275": "MCCLXXV",
+ "1276": "MCCLXXVI",
+ "1277": "MCCLXXVII",
+ "1278": "MCCLXXVIII",
+ "1279": "MCCLXXIX",
+ "1280": "MCCLXXX",
+ "1281": "MCCLXXXI",
+ "1282": "MCCLXXXII",
+ "1283": "MCCLXXXIII",
+ "1284": "MCCLXXXIV",
+ "1285": "MCCLXXXV",
+ "1286": "MCCLXXXVI",
+ "1287": "MCCLXXXVII",
+ "1288": "MCCLXXXVIII",
+ "1289": "MCCLXXXIX",
+ "1290": "MCCXC",
+ "1291": "MCCXCI",
+ "1292": "MCCXCII",
+ "1293": "MCCXCIII",
+ "1294": "MCCXCIV",
+ "1295": "MCCXCV",
+ "1296": "MCCXCVI",
+ "1297": "MCCXCVII",
+ "1298": "MCCXCVIII",
+ "1299": "MCCXCIX",
+ "1300": "MCCC",
+ "1301": "MCCCI",
+ "1302": "MCCCII",
+ "1303": "MCCCIII",
+ "1304": "MCCCIV",
+ "1305": "MCCCV",
+ "1306": "MCCCVI",
+ "1307": "MCCCVII",
+ "1308": "MCCCVIII",
+ "1309": "MCCCIX",
+ "1310": "MCCCX",
+ "1311": "MCCCXI",
+ "1312": "MCCCXII",
+ "1313": "MCCCXIII",
+ "1314": "MCCCXIV",
+ "1315": "MCCCXV",
+ "1316": "MCCCXVI",
+ "1317": "MCCCXVII",
+ "1318": "MCCCXVIII",
+ "1319": "MCCCXIX",
+ "1320": "MCCCXX",
+ "1321": "MCCCXXI",
+ "1322": "MCCCXXII",
+ "1323": "MCCCXXIII",
+ "1324": "MCCCXXIV",
+ "1325": "MCCCXXV",
+ "1326": "MCCCXXVI",
+ "1327": "MCCCXXVII",
+ "1328": "MCCCXXVIII",
+ "1329": "MCCCXXIX",
+ "1330": "MCCCXXX",
+ "1331": "MCCCXXXI",
+ "1332": "MCCCXXXII",
+ "1333": "MCCCXXXIII",
+ "1334": "MCCCXXXIV",
+ "1335": "MCCCXXXV",
+ "1336": "MCCCXXXVI",
+ "1337": "MCCCXXXVII",
+ "1338": "MCCCXXXVIII",
+ "1339": "MCCCXXXIX",
+ "1340": "MCCCXL",
+ "1341": "MCCCXLI",
+ "1342": "MCCCXLII",
+ "1343": "MCCCXLIII",
+ "1344": "MCCCXLIV",
+ "1345": "MCCCXLV",
+ "1346": "MCCCXLVI",
+ "1347": "MCCCXLVII",
+ "1348": "MCCCXLVIII",
+ "1349": "MCCCXLIX",
+ "1350": "MCCCL",
+ "1351": "MCCCLI",
+ "1352": "MCCCLII",
+ "1353": "MCCCLIII",
+ "1354": "MCCCLIV",
+ "1355": "MCCCLV",
+ "1356": "MCCCLVI",
+ "1357": "MCCCLVII",
+ "1358": "MCCCLVIII",
+ "1359": "MCCCLIX",
+ "1360": "MCCCLX",
+ "1361": "MCCCLXI",
+ "1362": "MCCCLXII",
+ "1363": "MCCCLXIII",
+ "1364": "MCCCLXIV",
+ "1365": "MCCCLXV",
+ "1366": "MCCCLXVI",
+ "1367": "MCCCLXVII",
+ "1368": "MCCCLXVIII",
+ "1369": "MCCCLXIX",
+ "1370": "MCCCLXX",
+ "1371": "MCCCLXXI",
+ "1372": "MCCCLXXII",
+ "1373": "MCCCLXXIII",
+ "1374": "MCCCLXXIV",
+ "1375": "MCCCLXXV",
+ "1376": "MCCCLXXVI",
+ "1377": "MCCCLXXVII",
+ "1378": "MCCCLXXVIII",
+ "1379": "MCCCLXXIX",
+ "1380": "MCCCLXXX",
+ "1381": "MCCCLXXXI",
+ "1382": "MCCCLXXXII",
+ "1383": "MCCCLXXXIII",
+ "1384": "MCCCLXXXIV",
+ "1385": "MCCCLXXXV",
+ "1386": "MCCCLXXXVI",
+ "1387": "MCCCLXXXVII",
+ "1388": "MCCCLXXXVIII",
+ "1389": "MCCCLXXXIX",
+ "1390": "MCCCXC",
+ "1391": "MCCCXCI",
+ "1392": "MCCCXCII",
+ "1393": "MCCCXCIII",
+ "1394": "MCCCXCIV",
+ "1395": "MCCCXCV",
+ "1396": "MCCCXCVI",
+ "1397": "MCCCXCVII",
+ "1398": "MCCCXCVIII",
+ "1399": "MCCCXCIX",
+ "1400": "MCD",
+ "1401": "MCDI",
+ "1402": "MCDII",
+ "1403": "MCDIII",
+ "1404": "MCDIV",
+ "1405": "MCDV",
+ "1406": "MCDVI",
+ "1407": "MCDVII",
+ "1408": "MCDVIII",
+ "1409": "MCDIX",
+ "1410": "MCDX",
+ "1411": "MCDXI",
+ "1412": "MCDXII",
+ "1413": "MCDXIII",
+ "1414": "MCDXIV",
+ "1415": "MCDXV",
+ "1416": "MCDXVI",
+ "1417": "MCDXVII",
+ "1418": "MCDXVIII",
+ "1419": "MCDXIX",
+ "1420": "MCDXX",
+ "1421": "MCDXXI",
+ "1422": "MCDXXII",
+ "1423": "MCDXXIII",
+ "1424": "MCDXXIV",
+ "1425": "MCDXXV",
+ "1426": "MCDXXVI",
+ "1427": "MCDXXVII",
+ "1428": "MCDXXVIII",
+ "1429": "MCDXXIX",
+ "1430": "MCDXXX",
+ "1431": "MCDXXXI",
+ "1432": "MCDXXXII",
+ "1433": "MCDXXXIII",
+ "1434": "MCDXXXIV",
+ "1435": "MCDXXXV",
+ "1436": "MCDXXXVI",
+ "1437": "MCDXXXVII",
+ "1438": "MCDXXXVIII",
+ "1439": "MCDXXXIX",
+ "1440": "MCDXL",
+ "1441": "MCDXLI",
+ "1442": "MCDXLII",
+ "1443": "MCDXLIII",
+ "1444": "MCDXLIV",
+ "1445": "MCDXLV",
+ "1446": "MCDXLVI",
+ "1447": "MCDXLVII",
+ "1448": "MCDXLVIII",
+ "1449": "MCDXLIX",
+ "1450": "MCDL",
+ "1451": "MCDLI",
+ "1452": "MCDLII",
+ "1453": "MCDLIII",
+ "1454": "MCDLIV",
+ "1455": "MCDLV",
+ "1456": "MCDLVI",
+ "1457": "MCDLVII",
+ "1458": "MCDLVIII",
+ "1459": "MCDLIX",
+ "1460": "MCDLX",
+ "1461": "MCDLXI",
+ "1462": "MCDLXII",
+ "1463": "MCDLXIII",
+ "1464": "MCDLXIV",
+ "1465": "MCDLXV",
+ "1466": "MCDLXVI",
+ "1467": "MCDLXVII",
+ "1468": "MCDLXVIII",
+ "1469": "MCDLXIX",
+ "1470": "MCDLXX",
+ "1471": "MCDLXXI",
+ "1472": "MCDLXXII",
+ "1473": "MCDLXXIII",
+ "1474": "MCDLXXIV",
+ "1475": "MCDLXXV",
+ "1476": "MCDLXXVI",
+ "1477": "MCDLXXVII",
+ "1478": "MCDLXXVIII",
+ "1479": "MCDLXXIX",
+ "1480": "MCDLXXX",
+ "1481": "MCDLXXXI",
+ "1482": "MCDLXXXII",
+ "1483": "MCDLXXXIII",
+ "1484": "MCDLXXXIV",
+ "1485": "MCDLXXXV",
+ "1486": "MCDLXXXVI",
+ "1487": "MCDLXXXVII",
+ "1488": "MCDLXXXVIII",
+ "1489": "MCDLXXXIX",
+ "1490": "MCDXC",
+ "1491": "MCDXCI",
+ "1492": "MCDXCII",
+ "1493": "MCDXCIII",
+ "1494": "MCDXCIV",
+ "1495": "MCDXCV",
+ "1496": "MCDXCVI",
+ "1497": "MCDXCVII",
+ "1498": "MCDXCVIII",
+ "1499": "MCDXCIX",
+ "1500": "MD",
+ "1501": "MDI",
+ "1502": "MDII",
+ "1503": "MDIII",
+ "1504": "MDIV",
+ "1505": "MDV",
+ "1506": "MDVI",
+ "1507": "MDVII",
+ "1508": "MDVIII",
+ "1509": "MDIX",
+ "1510": "MDX",
+ "1511": "MDXI",
+ "1512": "MDXII",
+ "1513": "MDXIII",
+ "1514": "MDXIV",
+ "1515": "MDXV",
+ "1516": "MDXVI",
+ "1517": "MDXVII",
+ "1518": "MDXVIII",
+ "1519": "MDXIX",
+ "1520": "MDXX",
+ "1521": "MDXXI",
+ "1522": "MDXXII",
+ "1523": "MDXXIII",
+ "1524": "MDXXIV",
+ "1525": "MDXXV",
+ "1526": "MDXXVI",
+ "1527": "MDXXVII",
+ "1528": "MDXXVIII",
+ "1529": "MDXXIX",
+ "1530": "MDXXX",
+ "1531": "MDXXXI",
+ "1532": "MDXXXII",
+ "1533": "MDXXXIII",
+ "1534": "MDXXXIV",
+ "1535": "MDXXXV",
+ "1536": "MDXXXVI",
+ "1537": "MDXXXVII",
+ "1538": "MDXXXVIII",
+ "1539": "MDXXXIX",
+ "1540": "MDXL",
+ "1541": "MDXLI",
+ "1542": "MDXLII",
+ "1543": "MDXLIII",
+ "1544": "MDXLIV",
+ "1545": "MDXLV",
+ "1546": "MDXLVI",
+ "1547": "MDXLVII",
+ "1548": "MDXLVIII",
+ "1549": "MDXLIX",
+ "1550": "MDL",
+ "1551": "MDLI",
+ "1552": "MDLII",
+ "1553": "MDLIII",
+ "1554": "MDLIV",
+ "1555": "MDLV",
+ "1556": "MDLVI",
+ "1557": "MDLVII",
+ "1558": "MDLVIII",
+ "1559": "MDLIX",
+ "1560": "MDLX",
+ "1561": "MDLXI",
+ "1562": "MDLXII",
+ "1563": "MDLXIII",
+ "1564": "MDLXIV",
+ "1565": "MDLXV",
+ "1566": "MDLXVI",
+ "1567": "MDLXVII",
+ "1568": "MDLXVIII",
+ "1569": "MDLXIX",
+ "1570": "MDLXX",
+ "1571": "MDLXXI",
+ "1572": "MDLXXII",
+ "1573": "MDLXXIII",
+ "1574": "MDLXXIV",
+ "1575": "MDLXXV",
+ "1576": "MDLXXVI",
+ "1577": "MDLXXVII",
+ "1578": "MDLXXVIII",
+ "1579": "MDLXXIX",
+ "1580": "MDLXXX",
+ "1581": "MDLXXXI",
+ "1582": "MDLXXXII",
+ "1583": "MDLXXXIII",
+ "1584": "MDLXXXIV",
+ "1585": "MDLXXXV",
+ "1586": "MDLXXXVI",
+ "1587": "MDLXXXVII",
+ "1588": "MDLXXXVIII",
+ "1589": "MDLXXXIX",
+ "1590": "MDXC",
+ "1591": "MDXCI",
+ "1592": "MDXCII",
+ "1593": "MDXCIII",
+ "1594": "MDXCIV",
+ "1595": "MDXCV",
+ "1596": "MDXCVI",
+ "1597": "MDXCVII",
+ "1598": "MDXCVIII",
+ "1599": "MDXCIX",
+ "1600": "MDC",
+ "1601": "MDCI",
+ "1602": "MDCII",
+ "1603": "MDCIII",
+ "1604": "MDCIV",
+ "1605": "MDCV",
+ "1606": "MDCVI",
+ "1607": "MDCVII",
+ "1608": "MDCVIII",
+ "1609": "MDCIX",
+ "1610": "MDCX",
+ "1611": "MDCXI",
+ "1612": "MDCXII",
+ "1613": "MDCXIII",
+ "1614": "MDCXIV",
+ "1615": "MDCXV",
+ "1616": "MDCXVI",
+ "1617": "MDCXVII",
+ "1618": "MDCXVIII",
+ "1619": "MDCXIX",
+ "1620": "MDCXX",
+ "1621": "MDCXXI",
+ "1622": "MDCXXII",
+ "1623": "MDCXXIII",
+ "1624": "MDCXXIV",
+ "1625": "MDCXXV",
+ "1626": "MDCXXVI",
+ "1627": "MDCXXVII",
+ "1628": "MDCXXVIII",
+ "1629": "MDCXXIX",
+ "1630": "MDCXXX",
+ "1631": "MDCXXXI",
+ "1632": "MDCXXXII",
+ "1633": "MDCXXXIII",
+ "1634": "MDCXXXIV",
+ "1635": "MDCXXXV",
+ "1636": "MDCXXXVI",
+ "1637": "MDCXXXVII",
+ "1638": "MDCXXXVIII",
+ "1639": "MDCXXXIX",
+ "1640": "MDCXL",
+ "1641": "MDCXLI",
+ "1642": "MDCXLII",
+ "1643": "MDCXLIII",
+ "1644": "MDCXLIV",
+ "1645": "MDCXLV",
+ "1646": "MDCXLVI",
+ "1647": "MDCXLVII",
+ "1648": "MDCXLVIII",
+ "1649": "MDCXLIX",
+ "1650": "MDCL",
+ "1651": "MDCLI",
+ "1652": "MDCLII",
+ "1653": "MDCLIII",
+ "1654": "MDCLIV",
+ "1655": "MDCLV",
+ "1656": "MDCLVI",
+ "1657": "MDCLVII",
+ "1658": "MDCLVIII",
+ "1659": "MDCLIX",
+ "1660": "MDCLX",
+ "1661": "MDCLXI",
+ "1662": "MDCLXII",
+ "1663": "MDCLXIII",
+ "1664": "MDCLXIV",
+ "1665": "MDCLXV",
+ "1666": "MDCLXVI",
+ "1667": "MDCLXVII",
+ "1668": "MDCLXVIII",
+ "1669": "MDCLXIX",
+ "1670": "MDCLXX",
+ "1671": "MDCLXXI",
+ "1672": "MDCLXXII",
+ "1673": "MDCLXXIII",
+ "1674": "MDCLXXIV",
+ "1675": "MDCLXXV",
+ "1676": "MDCLXXVI",
+ "1677": "MDCLXXVII",
+ "1678": "MDCLXXVIII",
+ "1679": "MDCLXXIX",
+ "1680": "MDCLXXX",
+ "1681": "MDCLXXXI",
+ "1682": "MDCLXXXII",
+ "1683": "MDCLXXXIII",
+ "1684": "MDCLXXXIV",
+ "1685": "MDCLXXXV",
+ "1686": "MDCLXXXVI",
+ "1687": "MDCLXXXVII",
+ "1688": "MDCLXXXVIII",
+ "1689": "MDCLXXXIX",
+ "1690": "MDCXC",
+ "1691": "MDCXCI",
+ "1692": "MDCXCII",
+ "1693": "MDCXCIII",
+ "1694": "MDCXCIV",
+ "1695": "MDCXCV",
+ "1696": "MDCXCVI",
+ "1697": "MDCXCVII",
+ "1698": "MDCXCVIII",
+ "1699": "MDCXCIX",
+ "1700": "MDCC",
+ "1701": "MDCCI",
+ "1702": "MDCCII",
+ "1703": "MDCCIII",
+ "1704": "MDCCIV",
+ "1705": "MDCCV",
+ "1706": "MDCCVI",
+ "1707": "MDCCVII",
+ "1708": "MDCCVIII",
+ "1709": "MDCCIX",
+ "1710": "MDCCX",
+ "1711": "MDCCXI",
+ "1712": "MDCCXII",
+ "1713": "MDCCXIII",
+ "1714": "MDCCXIV",
+ "1715": "MDCCXV",
+ "1716": "MDCCXVI",
+ "1717": "MDCCXVII",
+ "1718": "MDCCXVIII",
+ "1719": "MDCCXIX",
+ "1720": "MDCCXX",
+ "1721": "MDCCXXI",
+ "1722": "MDCCXXII",
+ "1723": "MDCCXXIII",
+ "1724": "MDCCXXIV",
+ "1725": "MDCCXXV",
+ "1726": "MDCCXXVI",
+ "1727": "MDCCXXVII",
+ "1728": "MDCCXXVIII",
+ "1729": "MDCCXXIX",
+ "1730": "MDCCXXX",
+ "1731": "MDCCXXXI",
+ "1732": "MDCCXXXII",
+ "1733": "MDCCXXXIII",
+ "1734": "MDCCXXXIV",
+ "1735": "MDCCXXXV",
+ "1736": "MDCCXXXVI",
+ "1737": "MDCCXXXVII",
+ "1738": "MDCCXXXVIII",
+ "1739": "MDCCXXXIX",
+ "1740": "MDCCXL",
+ "1741": "MDCCXLI",
+ "1742": "MDCCXLII",
+ "1743": "MDCCXLIII",
+ "1744": "MDCCXLIV",
+ "1745": "MDCCXLV",
+ "1746": "MDCCXLVI",
+ "1747": "MDCCXLVII",
+ "1748": "MDCCXLVIII",
+ "1749": "MDCCXLIX",
+ "1750": "MDCCL",
+ "1751": "MDCCLI",
+ "1752": "MDCCLII",
+ "1753": "MDCCLIII",
+ "1754": "MDCCLIV",
+ "1755": "MDCCLV",
+ "1756": "MDCCLVI",
+ "1757": "MDCCLVII",
+ "1758": "MDCCLVIII",
+ "1759": "MDCCLIX",
+ "1760": "MDCCLX",
+ "1761": "MDCCLXI",
+ "1762": "MDCCLXII",
+ "1763": "MDCCLXIII",
+ "1764": "MDCCLXIV",
+ "1765": "MDCCLXV",
+ "1766": "MDCCLXVI",
+ "1767": "MDCCLXVII",
+ "1768": "MDCCLXVIII",
+ "1769": "MDCCLXIX",
+ "1770": "MDCCLXX",
+ "1771": "MDCCLXXI",
+ "1772": "MDCCLXXII",
+ "1773": "MDCCLXXIII",
+ "1774": "MDCCLXXIV",
+ "1775": "MDCCLXXV",
+ "1776": "MDCCLXXVI",
+ "1777": "MDCCLXXVII",
+ "1778": "MDCCLXXVIII",
+ "1779": "MDCCLXXIX",
+ "1780": "MDCCLXXX",
+ "1781": "MDCCLXXXI",
+ "1782": "MDCCLXXXII",
+ "1783": "MDCCLXXXIII",
+ "1784": "MDCCLXXXIV",
+ "1785": "MDCCLXXXV",
+ "1786": "MDCCLXXXVI",
+ "1787": "MDCCLXXXVII",
+ "1788": "MDCCLXXXVIII",
+ "1789": "MDCCLXXXIX",
+ "1790": "MDCCXC",
+ "1791": "MDCCXCI",
+ "1792": "MDCCXCII",
+ "1793": "MDCCXCIII",
+ "1794": "MDCCXCIV",
+ "1795": "MDCCXCV",
+ "1796": "MDCCXCVI",
+ "1797": "MDCCXCVII",
+ "1798": "MDCCXCVIII",
+ "1799": "MDCCXCIX",
+ "1800": "MDCCC",
+ "1801": "MDCCCI",
+ "1802": "MDCCCII",
+ "1803": "MDCCCIII",
+ "1804": "MDCCCIV",
+ "1805": "MDCCCV",
+ "1806": "MDCCCVI",
+ "1807": "MDCCCVII",
+ "1808": "MDCCCVIII",
+ "1809": "MDCCCIX",
+ "1810": "MDCCCX",
+ "1811": "MDCCCXI",
+ "1812": "MDCCCXII",
+ "1813": "MDCCCXIII",
+ "1814": "MDCCCXIV",
+ "1815": "MDCCCXV",
+ "1816": "MDCCCXVI",
+ "1817": "MDCCCXVII",
+ "1818": "MDCCCXVIII",
+ "1819": "MDCCCXIX",
+ "1820": "MDCCCXX",
+ "1821": "MDCCCXXI",
+ "1822": "MDCCCXXII",
+ "1823": "MDCCCXXIII",
+ "1824": "MDCCCXXIV",
+ "1825": "MDCCCXXV",
+ "1826": "MDCCCXXVI",
+ "1827": "MDCCCXXVII",
+ "1828": "MDCCCXXVIII",
+ "1829": "MDCCCXXIX",
+ "1830": "MDCCCXXX",
+ "1831": "MDCCCXXXI",
+ "1832": "MDCCCXXXII",
+ "1833": "MDCCCXXXIII",
+ "1834": "MDCCCXXXIV",
+ "1835": "MDCCCXXXV",
+ "1836": "MDCCCXXXVI",
+ "1837": "MDCCCXXXVII",
+ "1838": "MDCCCXXXVIII",
+ "1839": "MDCCCXXXIX",
+ "1840": "MDCCCXL",
+ "1841": "MDCCCXLI",
+ "1842": "MDCCCXLII",
+ "1843": "MDCCCXLIII",
+ "1844": "MDCCCXLIV",
+ "1845": "MDCCCXLV",
+ "1846": "MDCCCXLVI",
+ "1847": "MDCCCXLVII",
+ "1848": "MDCCCXLVIII",
+ "1849": "MDCCCXLIX",
+ "1850": "MDCCCL",
+ "1851": "MDCCCLI",
+ "1852": "MDCCCLII",
+ "1853": "MDCCCLIII",
+ "1854": "MDCCCLIV",
+ "1855": "MDCCCLV",
+ "1856": "MDCCCLVI",
+ "1857": "MDCCCLVII",
+ "1858": "MDCCCLVIII",
+ "1859": "MDCCCLIX",
+ "1860": "MDCCCLX",
+ "1861": "MDCCCLXI",
+ "1862": "MDCCCLXII",
+ "1863": "MDCCCLXIII",
+ "1864": "MDCCCLXIV",
+ "1865": "MDCCCLXV",
+ "1866": "MDCCCLXVI",
+ "1867": "MDCCCLXVII",
+ "1868": "MDCCCLXVIII",
+ "1869": "MDCCCLXIX",
+ "1870": "MDCCCLXX",
+ "1871": "MDCCCLXXI",
+ "1872": "MDCCCLXXII",
+ "1873": "MDCCCLXXIII",
+ "1874": "MDCCCLXXIV",
+ "1875": "MDCCCLXXV",
+ "1876": "MDCCCLXXVI",
+ "1877": "MDCCCLXXVII",
+ "1878": "MDCCCLXXVIII",
+ "1879": "MDCCCLXXIX",
+ "1880": "MDCCCLXXX",
+ "1881": "MDCCCLXXXI",
+ "1882": "MDCCCLXXXII",
+ "1883": "MDCCCLXXXIII",
+ "1884": "MDCCCLXXXIV",
+ "1885": "MDCCCLXXXV",
+ "1886": "MDCCCLXXXVI",
+ "1887": "MDCCCLXXXVII",
+ "1888": "MDCCCLXXXVIII",
+ "1889": "MDCCCLXXXIX",
+ "1890": "MDCCCXC",
+ "1891": "MDCCCXCI",
+ "1892": "MDCCCXCII",
+ "1893": "MDCCCXCIII",
+ "1894": "MDCCCXCIV",
+ "1895": "MDCCCXCV",
+ "1896": "MDCCCXCVI",
+ "1897": "MDCCCXCVII",
+ "1898": "MDCCCXCVIII",
+ "1899": "MDCCCXCIX",
+ "1900": "MCM",
+ "1901": "MCMI",
+ "1902": "MCMII",
+ "1903": "MCMIII",
+ "1904": "MCMIV",
+ "1905": "MCMV",
+ "1906": "MCMVI",
+ "1907": "MCMVII",
+ "1908": "MCMVIII",
+ "1909": "MCMIX",
+ "1910": "MCMX",
+ "1911": "MCMXI",
+ "1912": "MCMXII",
+ "1913": "MCMXIII",
+ "1914": "MCMXIV",
+ "1915": "MCMXV",
+ "1916": "MCMXVI",
+ "1917": "MCMXVII",
+ "1918": "MCMXVIII",
+ "1919": "MCMXIX",
+ "1920": "MCMXX",
+ "1921": "MCMXXI",
+ "1922": "MCMXXII",
+ "1923": "MCMXXIII",
+ "1924": "MCMXXIV",
+ "1925": "MCMXXV",
+ "1926": "MCMXXVI",
+ "1927": "MCMXXVII",
+ "1928": "MCMXXVIII",
+ "1929": "MCMXXIX",
+ "1930": "MCMXXX",
+ "1931": "MCMXXXI",
+ "1932": "MCMXXXII",
+ "1933": "MCMXXXIII",
+ "1934": "MCMXXXIV",
+ "1935": "MCMXXXV",
+ "1936": "MCMXXXVI",
+ "1937": "MCMXXXVII",
+ "1938": "MCMXXXVIII",
+ "1939": "MCMXXXIX",
+ "1940": "MCMXL",
+ "1941": "MCMXLI",
+ "1942": "MCMXLII",
+ "1943": "MCMXLIII",
+ "1944": "MCMXLIV",
+ "1945": "MCMXLV",
+ "1946": "MCMXLVI",
+ "1947": "MCMXLVII",
+ "1948": "MCMXLVIII",
+ "1949": "MCMXLIX",
+ "1950": "MCML",
+ "1951": "MCMLI",
+ "1952": "MCMLII",
+ "1953": "MCMLIII",
+ "1954": "MCMLIV",
+ "1955": "MCMLV",
+ "1956": "MCMLVI",
+ "1957": "MCMLVII",
+ "1958": "MCMLVIII",
+ "1959": "MCMLIX",
+ "1960": "MCMLX",
+ "1961": "MCMLXI",
+ "1962": "MCMLXII",
+ "1963": "MCMLXIII",
+ "1964": "MCMLXIV",
+ "1965": "MCMLXV",
+ "1966": "MCMLXVI",
+ "1967": "MCMLXVII",
+ "1968": "MCMLXVIII",
+ "1969": "MCMLXIX",
+ "1970": "MCMLXX",
+ "1971": "MCMLXXI",
+ "1972": "MCMLXXII",
+ "1973": "MCMLXXIII",
+ "1974": "MCMLXXIV",
+ "1975": "MCMLXXV",
+ "1976": "MCMLXXVI",
+ "1977": "MCMLXXVII",
+ "1978": "MCMLXXVIII",
+ "1979": "MCMLXXIX",
+ "1980": "MCMLXXX",
+ "1981": "MCMLXXXI",
+ "1982": "MCMLXXXII",
+ "1983": "MCMLXXXIII",
+ "1984": "MCMLXXXIV",
+ "1985": "MCMLXXXV",
+ "1986": "MCMLXXXVI",
+ "1987": "MCMLXXXVII",
+ "1988": "MCMLXXXVIII",
+ "1989": "MCMLXXXIX",
+ "1990": "MCMXC",
+ "1991": "MCMXCI",
+ "1992": "MCMXCII",
+ "1993": "MCMXCIII",
+ "1994": "MCMXCIV",
+ "1995": "MCMXCV",
+ "1996": "MCMXCVI",
+ "1997": "MCMXCVII",
+ "1998": "MCMXCVIII",
+ "1999": "MCMXCIX",
+ "2000": "MM",
+ "2001": "MMI",
+ "2002": "MMII",
+ "2003": "MMIII",
+ "2004": "MMIV",
+ "2005": "MMV",
+ "2006": "MMVI",
+ "2007": "MMVII",
+ "2008": "MMVIII",
+ "2009": "MMIX",
+ "2010": "MMX",
+ "2011": "MMXI",
+ "2012": "MMXII",
+ "2013": "MMXIII",
+ "2014": "MMXIV",
+ "2015": "MMXV",
+ "2016": "MMXVI",
+ "2017": "MMXVII",
+ "2018": "MMXVIII",
+ "2019": "MMXIX",
+ "2020": "MMXX",
+ "2021": "MMXXI",
+ "2022": "MMXXII",
+ "2023": "MMXXIII",
+ "2024": "MMXXIV",
+ "2025": "MMXXV",
+ "2026": "MMXXVI",
+ "2027": "MMXXVII",
+ "2028": "MMXXVIII",
+ "2029": "MMXXIX",
+ "2030": "MMXXX",
+ "2031": "MMXXXI",
+ "2032": "MMXXXII",
+ "2033": "MMXXXIII",
+ "2034": "MMXXXIV",
+ "2035": "MMXXXV",
+ "2036": "MMXXXVI",
+ "2037": "MMXXXVII",
+ "2038": "MMXXXVIII",
+ "2039": "MMXXXIX",
+ "2040": "MMXL",
+ "2041": "MMXLI",
+ "2042": "MMXLII",
+ "2043": "MMXLIII",
+ "2044": "MMXLIV",
+ "2045": "MMXLV",
+ "2046": "MMXLVI",
+ "2047": "MMXLVII",
+ "2048": "MMXLVIII",
+ "2049": "MMXLIX",
+ "2050": "MML",
+ "2051": "MMLI",
+ "2052": "MMLII",
+ "2053": "MMLIII",
+ "2054": "MMLIV",
+ "2055": "MMLV",
+ "2056": "MMLVI",
+ "2057": "MMLVII",
+ "2058": "MMLVIII",
+ "2059": "MMLIX",
+ "2060": "MMLX",
+ "2061": "MMLXI",
+ "2062": "MMLXII",
+ "2063": "MMLXIII",
+ "2064": "MMLXIV",
+ "2065": "MMLXV",
+ "2066": "MMLXVI",
+ "2067": "MMLXVII",
+ "2068": "MMLXVIII",
+ "2069": "MMLXIX",
+ "2070": "MMLXX",
+ "2071": "MMLXXI",
+ "2072": "MMLXXII",
+ "2073": "MMLXXIII",
+ "2074": "MMLXXIV",
+ "2075": "MMLXXV",
+ "2076": "MMLXXVI",
+ "2077": "MMLXXVII",
+ "2078": "MMLXXVIII",
+ "2079": "MMLXXIX",
+ "2080": "MMLXXX",
+ "2081": "MMLXXXI",
+ "2082": "MMLXXXII",
+ "2083": "MMLXXXIII",
+ "2084": "MMLXXXIV",
+ "2085": "MMLXXXV",
+ "2086": "MMLXXXVI",
+ "2087": "MMLXXXVII",
+ "2088": "MMLXXXVIII",
+ "2089": "MMLXXXIX",
+ "2090": "MMXC",
+ "2091": "MMXCI",
+ "2092": "MMXCII",
+ "2093": "MMXCIII",
+ "2094": "MMXCIV",
+ "2095": "MMXCV",
+ "2096": "MMXCVI",
+ "2097": "MMXCVII",
+ "2098": "MMXCVIII",
+ "2099": "MMXCIX",
+ "2100": "MMC",
+ "2101": "MMCI",
+ "2102": "MMCII",
+ "2103": "MMCIII",
+ "2104": "MMCIV",
+ "2105": "MMCV",
+ "2106": "MMCVI",
+ "2107": "MMCVII",
+ "2108": "MMCVIII",
+ "2109": "MMCIX",
+ "2110": "MMCX",
+ "2111": "MMCXI",
+ "2112": "MMCXII",
+ "2113": "MMCXIII",
+ "2114": "MMCXIV",
+ "2115": "MMCXV",
+ "2116": "MMCXVI",
+ "2117": "MMCXVII",
+ "2118": "MMCXVIII",
+ "2119": "MMCXIX",
+ "2120": "MMCXX",
+ "2121": "MMCXXI",
+ "2122": "MMCXXII",
+ "2123": "MMCXXIII",
+ "2124": "MMCXXIV",
+ "2125": "MMCXXV",
+ "2126": "MMCXXVI",
+ "2127": "MMCXXVII",
+ "2128": "MMCXXVIII",
+ "2129": "MMCXXIX",
+ "2130": "MMCXXX",
+ "2131": "MMCXXXI",
+ "2132": "MMCXXXII",
+ "2133": "MMCXXXIII",
+ "2134": "MMCXXXIV",
+ "2135": "MMCXXXV",
+ "2136": "MMCXXXVI",
+ "2137": "MMCXXXVII",
+ "2138": "MMCXXXVIII",
+ "2139": "MMCXXXIX",
+ "2140": "MMCXL",
+ "2141": "MMCXLI",
+ "2142": "MMCXLII",
+ "2143": "MMCXLIII",
+ "2144": "MMCXLIV",
+ "2145": "MMCXLV",
+ "2146": "MMCXLVI",
+ "2147": "MMCXLVII",
+ "2148": "MMCXLVIII",
+ "2149": "MMCXLIX",
+ "2150": "MMCL",
+ "2151": "MMCLI",
+ "2152": "MMCLII",
+ "2153": "MMCLIII",
+ "2154": "MMCLIV",
+ "2155": "MMCLV",
+ "2156": "MMCLVI",
+ "2157": "MMCLVII",
+ "2158": "MMCLVIII",
+ "2159": "MMCLIX",
+ "2160": "MMCLX",
+ "2161": "MMCLXI",
+ "2162": "MMCLXII",
+ "2163": "MMCLXIII",
+ "2164": "MMCLXIV",
+ "2165": "MMCLXV",
+ "2166": "MMCLXVI",
+ "2167": "MMCLXVII",
+ "2168": "MMCLXVIII",
+ "2169": "MMCLXIX",
+ "2170": "MMCLXX",
+ "2171": "MMCLXXI",
+ "2172": "MMCLXXII",
+ "2173": "MMCLXXIII",
+ "2174": "MMCLXXIV",
+ "2175": "MMCLXXV",
+ "2176": "MMCLXXVI",
+ "2177": "MMCLXXVII",
+ "2178": "MMCLXXVIII",
+ "2179": "MMCLXXIX",
+ "2180": "MMCLXXX",
+ "2181": "MMCLXXXI",
+ "2182": "MMCLXXXII",
+ "2183": "MMCLXXXIII",
+ "2184": "MMCLXXXIV",
+ "2185": "MMCLXXXV",
+ "2186": "MMCLXXXVI",
+ "2187": "MMCLXXXVII",
+ "2188": "MMCLXXXVIII",
+ "2189": "MMCLXXXIX",
+ "2190": "MMCXC",
+ "2191": "MMCXCI",
+ "2192": "MMCXCII",
+ "2193": "MMCXCIII",
+ "2194": "MMCXCIV",
+ "2195": "MMCXCV",
+ "2196": "MMCXCVI",
+ "2197": "MMCXCVII",
+ "2198": "MMCXCVIII",
+ "2199": "MMCXCIX",
+ "2200": "MMCC",
+ "2201": "MMCCI",
+ "2202": "MMCCII",
+ "2203": "MMCCIII",
+ "2204": "MMCCIV",
+ "2205": "MMCCV",
+ "2206": "MMCCVI",
+ "2207": "MMCCVII",
+ "2208": "MMCCVIII",
+ "2209": "MMCCIX",
+ "2210": "MMCCX",
+ "2211": "MMCCXI",
+ "2212": "MMCCXII",
+ "2213": "MMCCXIII",
+ "2214": "MMCCXIV",
+ "2215": "MMCCXV",
+ "2216": "MMCCXVI",
+ "2217": "MMCCXVII",
+ "2218": "MMCCXVIII",
+ "2219": "MMCCXIX",
+ "2220": "MMCCXX",
+ "2221": "MMCCXXI",
+ "2222": "MMCCXXII",
+ "2223": "MMCCXXIII",
+ "2224": "MMCCXXIV",
+ "2225": "MMCCXXV",
+ "2226": "MMCCXXVI",
+ "2227": "MMCCXXVII",
+ "2228": "MMCCXXVIII",
+ "2229": "MMCCXXIX",
+ "2230": "MMCCXXX",
+ "2231": "MMCCXXXI",
+ "2232": "MMCCXXXII",
+ "2233": "MMCCXXXIII",
+ "2234": "MMCCXXXIV",
+ "2235": "MMCCXXXV",
+ "2236": "MMCCXXXVI",
+ "2237": "MMCCXXXVII",
+ "2238": "MMCCXXXVIII",
+ "2239": "MMCCXXXIX",
+ "2240": "MMCCXL",
+ "2241": "MMCCXLI",
+ "2242": "MMCCXLII",
+ "2243": "MMCCXLIII",
+ "2244": "MMCCXLIV",
+ "2245": "MMCCXLV",
+ "2246": "MMCCXLVI",
+ "2247": "MMCCXLVII",
+ "2248": "MMCCXLVIII",
+ "2249": "MMCCXLIX",
+ "2250": "MMCCL",
+ "2251": "MMCCLI",
+ "2252": "MMCCLII",
+ "2253": "MMCCLIII",
+ "2254": "MMCCLIV",
+ "2255": "MMCCLV",
+ "2256": "MMCCLVI",
+ "2257": "MMCCLVII",
+ "2258": "MMCCLVIII",
+ "2259": "MMCCLIX",
+ "2260": "MMCCLX",
+ "2261": "MMCCLXI",
+ "2262": "MMCCLXII",
+ "2263": "MMCCLXIII",
+ "2264": "MMCCLXIV",
+ "2265": "MMCCLXV",
+ "2266": "MMCCLXVI",
+ "2267": "MMCCLXVII",
+ "2268": "MMCCLXVIII",
+ "2269": "MMCCLXIX",
+ "2270": "MMCCLXX",
+ "2271": "MMCCLXXI",
+ "2272": "MMCCLXXII",
+ "2273": "MMCCLXXIII",
+ "2274": "MMCCLXXIV",
+ "2275": "MMCCLXXV",
+ "2276": "MMCCLXXVI",
+ "2277": "MMCCLXXVII",
+ "2278": "MMCCLXXVIII",
+ "2279": "MMCCLXXIX",
+ "2280": "MMCCLXXX",
+ "2281": "MMCCLXXXI",
+ "2282": "MMCCLXXXII",
+ "2283": "MMCCLXXXIII",
+ "2284": "MMCCLXXXIV",
+ "2285": "MMCCLXXXV",
+ "2286": "MMCCLXXXVI",
+ "2287": "MMCCLXXXVII",
+ "2288": "MMCCLXXXVIII",
+ "2289": "MMCCLXXXIX",
+ "2290": "MMCCXC",
+ "2291": "MMCCXCI",
+ "2292": "MMCCXCII",
+ "2293": "MMCCXCIII",
+ "2294": "MMCCXCIV",
+ "2295": "MMCCXCV",
+ "2296": "MMCCXCVI",
+ "2297": "MMCCXCVII",
+ "2298": "MMCCXCVIII",
+ "2299": "MMCCXCIX",
+ "2300": "MMCCC",
+ "2301": "MMCCCI",
+ "2302": "MMCCCII",
+ "2303": "MMCCCIII",
+ "2304": "MMCCCIV",
+ "2305": "MMCCCV",
+ "2306": "MMCCCVI",
+ "2307": "MMCCCVII",
+ "2308": "MMCCCVIII",
+ "2309": "MMCCCIX",
+ "2310": "MMCCCX",
+ "2311": "MMCCCXI",
+ "2312": "MMCCCXII",
+ "2313": "MMCCCXIII",
+ "2314": "MMCCCXIV",
+ "2315": "MMCCCXV",
+ "2316": "MMCCCXVI",
+ "2317": "MMCCCXVII",
+ "2318": "MMCCCXVIII",
+ "2319": "MMCCCXIX",
+ "2320": "MMCCCXX",
+ "2321": "MMCCCXXI",
+ "2322": "MMCCCXXII",
+ "2323": "MMCCCXXIII",
+ "2324": "MMCCCXXIV",
+ "2325": "MMCCCXXV",
+ "2326": "MMCCCXXVI",
+ "2327": "MMCCCXXVII",
+ "2328": "MMCCCXXVIII",
+ "2329": "MMCCCXXIX",
+ "2330": "MMCCCXXX",
+ "2331": "MMCCCXXXI",
+ "2332": "MMCCCXXXII",
+ "2333": "MMCCCXXXIII",
+ "2334": "MMCCCXXXIV",
+ "2335": "MMCCCXXXV",
+ "2336": "MMCCCXXXVI",
+ "2337": "MMCCCXXXVII",
+ "2338": "MMCCCXXXVIII",
+ "2339": "MMCCCXXXIX",
+ "2340": "MMCCCXL",
+ "2341": "MMCCCXLI",
+ "2342": "MMCCCXLII",
+ "2343": "MMCCCXLIII",
+ "2344": "MMCCCXLIV",
+ "2345": "MMCCCXLV",
+ "2346": "MMCCCXLVI",
+ "2347": "MMCCCXLVII",
+ "2348": "MMCCCXLVIII",
+ "2349": "MMCCCXLIX",
+ "2350": "MMCCCL",
+ "2351": "MMCCCLI",
+ "2352": "MMCCCLII",
+ "2353": "MMCCCLIII",
+ "2354": "MMCCCLIV",
+ "2355": "MMCCCLV",
+ "2356": "MMCCCLVI",
+ "2357": "MMCCCLVII",
+ "2358": "MMCCCLVIII",
+ "2359": "MMCCCLIX",
+ "2360": "MMCCCLX",
+ "2361": "MMCCCLXI",
+ "2362": "MMCCCLXII",
+ "2363": "MMCCCLXIII",
+ "2364": "MMCCCLXIV",
+ "2365": "MMCCCLXV",
+ "2366": "MMCCCLXVI",
+ "2367": "MMCCCLXVII",
+ "2368": "MMCCCLXVIII",
+ "2369": "MMCCCLXIX",
+ "2370": "MMCCCLXX",
+ "2371": "MMCCCLXXI",
+ "2372": "MMCCCLXXII",
+ "2373": "MMCCCLXXIII",
+ "2374": "MMCCCLXXIV",
+ "2375": "MMCCCLXXV",
+ "2376": "MMCCCLXXVI",
+ "2377": "MMCCCLXXVII",
+ "2378": "MMCCCLXXVIII",
+ "2379": "MMCCCLXXIX",
+ "2380": "MMCCCLXXX",
+ "2381": "MMCCCLXXXI",
+ "2382": "MMCCCLXXXII",
+ "2383": "MMCCCLXXXIII",
+ "2384": "MMCCCLXXXIV",
+ "2385": "MMCCCLXXXV",
+ "2386": "MMCCCLXXXVI",
+ "2387": "MMCCCLXXXVII",
+ "2388": "MMCCCLXXXVIII",
+ "2389": "MMCCCLXXXIX",
+ "2390": "MMCCCXC",
+ "2391": "MMCCCXCI",
+ "2392": "MMCCCXCII",
+ "2393": "MMCCCXCIII",
+ "2394": "MMCCCXCIV",
+ "2395": "MMCCCXCV",
+ "2396": "MMCCCXCVI",
+ "2397": "MMCCCXCVII",
+ "2398": "MMCCCXCVIII",
+ "2399": "MMCCCXCIX",
+ "2400": "MMCD",
+ "2401": "MMCDI",
+ "2402": "MMCDII",
+ "2403": "MMCDIII",
+ "2404": "MMCDIV",
+ "2405": "MMCDV",
+ "2406": "MMCDVI",
+ "2407": "MMCDVII",
+ "2408": "MMCDVIII",
+ "2409": "MMCDIX",
+ "2410": "MMCDX",
+ "2411": "MMCDXI",
+ "2412": "MMCDXII",
+ "2413": "MMCDXIII",
+ "2414": "MMCDXIV",
+ "2415": "MMCDXV",
+ "2416": "MMCDXVI",
+ "2417": "MMCDXVII",
+ "2418": "MMCDXVIII",
+ "2419": "MMCDXIX",
+ "2420": "MMCDXX",
+ "2421": "MMCDXXI",
+ "2422": "MMCDXXII",
+ "2423": "MMCDXXIII",
+ "2424": "MMCDXXIV",
+ "2425": "MMCDXXV",
+ "2426": "MMCDXXVI",
+ "2427": "MMCDXXVII",
+ "2428": "MMCDXXVIII",
+ "2429": "MMCDXXIX",
+ "2430": "MMCDXXX",
+ "2431": "MMCDXXXI",
+ "2432": "MMCDXXXII",
+ "2433": "MMCDXXXIII",
+ "2434": "MMCDXXXIV",
+ "2435": "MMCDXXXV",
+ "2436": "MMCDXXXVI",
+ "2437": "MMCDXXXVII",
+ "2438": "MMCDXXXVIII",
+ "2439": "MMCDXXXIX",
+ "2440": "MMCDXL",
+ "2441": "MMCDXLI",
+ "2442": "MMCDXLII",
+ "2443": "MMCDXLIII",
+ "2444": "MMCDXLIV",
+ "2445": "MMCDXLV",
+ "2446": "MMCDXLVI",
+ "2447": "MMCDXLVII",
+ "2448": "MMCDXLVIII",
+ "2449": "MMCDXLIX",
+ "2450": "MMCDL",
+ "2451": "MMCDLI",
+ "2452": "MMCDLII",
+ "2453": "MMCDLIII",
+ "2454": "MMCDLIV",
+ "2455": "MMCDLV",
+ "2456": "MMCDLVI",
+ "2457": "MMCDLVII",
+ "2458": "MMCDLVIII",
+ "2459": "MMCDLIX",
+ "2460": "MMCDLX",
+ "2461": "MMCDLXI",
+ "2462": "MMCDLXII",
+ "2463": "MMCDLXIII",
+ "2464": "MMCDLXIV",
+ "2465": "MMCDLXV",
+ "2466": "MMCDLXVI",
+ "2467": "MMCDLXVII",
+ "2468": "MMCDLXVIII",
+ "2469": "MMCDLXIX",
+ "2470": "MMCDLXX",
+ "2471": "MMCDLXXI",
+ "2472": "MMCDLXXII",
+ "2473": "MMCDLXXIII",
+ "2474": "MMCDLXXIV",
+ "2475": "MMCDLXXV",
+ "2476": "MMCDLXXVI",
+ "2477": "MMCDLXXVII",
+ "2478": "MMCDLXXVIII",
+ "2479": "MMCDLXXIX",
+ "2480": "MMCDLXXX",
+ "2481": "MMCDLXXXI",
+ "2482": "MMCDLXXXII",
+ "2483": "MMCDLXXXIII",
+ "2484": "MMCDLXXXIV",
+ "2485": "MMCDLXXXV",
+ "2486": "MMCDLXXXVI",
+ "2487": "MMCDLXXXVII",
+ "2488": "MMCDLXXXVIII",
+ "2489": "MMCDLXXXIX",
+ "2490": "MMCDXC",
+ "2491": "MMCDXCI",
+ "2492": "MMCDXCII",
+ "2493": "MMCDXCIII",
+ "2494": "MMCDXCIV",
+ "2495": "MMCDXCV",
+ "2496": "MMCDXCVI",
+ "2497": "MMCDXCVII",
+ "2498": "MMCDXCVIII",
+ "2499": "MMCDXCIX",
+ "2500": "MMD",
+ "2501": "MMDI",
+ "2502": "MMDII",
+ "2503": "MMDIII",
+ "2504": "MMDIV",
+ "2505": "MMDV",
+ "2506": "MMDVI",
+ "2507": "MMDVII",
+ "2508": "MMDVIII",
+ "2509": "MMDIX",
+ "2510": "MMDX",
+ "2511": "MMDXI",
+ "2512": "MMDXII",
+ "2513": "MMDXIII",
+ "2514": "MMDXIV",
+ "2515": "MMDXV",
+ "2516": "MMDXVI",
+ "2517": "MMDXVII",
+ "2518": "MMDXVIII",
+ "2519": "MMDXIX",
+ "2520": "MMDXX",
+ "2521": "MMDXXI",
+ "2522": "MMDXXII",
+ "2523": "MMDXXIII",
+ "2524": "MMDXXIV",
+ "2525": "MMDXXV",
+ "2526": "MMDXXVI",
+ "2527": "MMDXXVII",
+ "2528": "MMDXXVIII",
+ "2529": "MMDXXIX",
+ "2530": "MMDXXX",
+ "2531": "MMDXXXI",
+ "2532": "MMDXXXII",
+ "2533": "MMDXXXIII",
+ "2534": "MMDXXXIV",
+ "2535": "MMDXXXV",
+ "2536": "MMDXXXVI",
+ "2537": "MMDXXXVII",
+ "2538": "MMDXXXVIII",
+ "2539": "MMDXXXIX",
+ "2540": "MMDXL",
+ "2541": "MMDXLI",
+ "2542": "MMDXLII",
+ "2543": "MMDXLIII",
+ "2544": "MMDXLIV",
+ "2545": "MMDXLV",
+ "2546": "MMDXLVI",
+ "2547": "MMDXLVII",
+ "2548": "MMDXLVIII",
+ "2549": "MMDXLIX",
+ "2550": "MMDL",
+ "2551": "MMDLI",
+ "2552": "MMDLII",
+ "2553": "MMDLIII",
+ "2554": "MMDLIV",
+ "2555": "MMDLV",
+ "2556": "MMDLVI",
+ "2557": "MMDLVII",
+ "2558": "MMDLVIII",
+ "2559": "MMDLIX",
+ "2560": "MMDLX",
+ "2561": "MMDLXI",
+ "2562": "MMDLXII",
+ "2563": "MMDLXIII",
+ "2564": "MMDLXIV",
+ "2565": "MMDLXV",
+ "2566": "MMDLXVI",
+ "2567": "MMDLXVII",
+ "2568": "MMDLXVIII",
+ "2569": "MMDLXIX",
+ "2570": "MMDLXX",
+ "2571": "MMDLXXI",
+ "2572": "MMDLXXII",
+ "2573": "MMDLXXIII",
+ "2574": "MMDLXXIV",
+ "2575": "MMDLXXV",
+ "2576": "MMDLXXVI",
+ "2577": "MMDLXXVII",
+ "2578": "MMDLXXVIII",
+ "2579": "MMDLXXIX",
+ "2580": "MMDLXXX",
+ "2581": "MMDLXXXI",
+ "2582": "MMDLXXXII",
+ "2583": "MMDLXXXIII",
+ "2584": "MMDLXXXIV",
+ "2585": "MMDLXXXV",
+ "2586": "MMDLXXXVI",
+ "2587": "MMDLXXXVII",
+ "2588": "MMDLXXXVIII",
+ "2589": "MMDLXXXIX",
+ "2590": "MMDXC",
+ "2591": "MMDXCI",
+ "2592": "MMDXCII",
+ "2593": "MMDXCIII",
+ "2594": "MMDXCIV",
+ "2595": "MMDXCV",
+ "2596": "MMDXCVI",
+ "2597": "MMDXCVII",
+ "2598": "MMDXCVIII",
+ "2599": "MMDXCIX",
+ "2600": "MMDC",
+ "2601": "MMDCI",
+ "2602": "MMDCII",
+ "2603": "MMDCIII",
+ "2604": "MMDCIV",
+ "2605": "MMDCV",
+ "2606": "MMDCVI",
+ "2607": "MMDCVII",
+ "2608": "MMDCVIII",
+ "2609": "MMDCIX",
+ "2610": "MMDCX",
+ "2611": "MMDCXI",
+ "2612": "MMDCXII",
+ "2613": "MMDCXIII",
+ "2614": "MMDCXIV",
+ "2615": "MMDCXV",
+ "2616": "MMDCXVI",
+ "2617": "MMDCXVII",
+ "2618": "MMDCXVIII",
+ "2619": "MMDCXIX",
+ "2620": "MMDCXX",
+ "2621": "MMDCXXI",
+ "2622": "MMDCXXII",
+ "2623": "MMDCXXIII",
+ "2624": "MMDCXXIV",
+ "2625": "MMDCXXV",
+ "2626": "MMDCXXVI",
+ "2627": "MMDCXXVII",
+ "2628": "MMDCXXVIII",
+ "2629": "MMDCXXIX",
+ "2630": "MMDCXXX",
+ "2631": "MMDCXXXI",
+ "2632": "MMDCXXXII",
+ "2633": "MMDCXXXIII",
+ "2634": "MMDCXXXIV",
+ "2635": "MMDCXXXV",
+ "2636": "MMDCXXXVI",
+ "2637": "MMDCXXXVII",
+ "2638": "MMDCXXXVIII",
+ "2639": "MMDCXXXIX",
+ "2640": "MMDCXL",
+ "2641": "MMDCXLI",
+ "2642": "MMDCXLII",
+ "2643": "MMDCXLIII",
+ "2644": "MMDCXLIV",
+ "2645": "MMDCXLV",
+ "2646": "MMDCXLVI",
+ "2647": "MMDCXLVII",
+ "2648": "MMDCXLVIII",
+ "2649": "MMDCXLIX",
+ "2650": "MMDCL",
+ "2651": "MMDCLI",
+ "2652": "MMDCLII",
+ "2653": "MMDCLIII",
+ "2654": "MMDCLIV",
+ "2655": "MMDCLV",
+ "2656": "MMDCLVI",
+ "2657": "MMDCLVII",
+ "2658": "MMDCLVIII",
+ "2659": "MMDCLIX",
+ "2660": "MMDCLX",
+ "2661": "MMDCLXI",
+ "2662": "MMDCLXII",
+ "2663": "MMDCLXIII",
+ "2664": "MMDCLXIV",
+ "2665": "MMDCLXV",
+ "2666": "MMDCLXVI",
+ "2667": "MMDCLXVII",
+ "2668": "MMDCLXVIII",
+ "2669": "MMDCLXIX",
+ "2670": "MMDCLXX",
+ "2671": "MMDCLXXI",
+ "2672": "MMDCLXXII",
+ "2673": "MMDCLXXIII",
+ "2674": "MMDCLXXIV",
+ "2675": "MMDCLXXV",
+ "2676": "MMDCLXXVI",
+ "2677": "MMDCLXXVII",
+ "2678": "MMDCLXXVIII",
+ "2679": "MMDCLXXIX",
+ "2680": "MMDCLXXX",
+ "2681": "MMDCLXXXI",
+ "2682": "MMDCLXXXII",
+ "2683": "MMDCLXXXIII",
+ "2684": "MMDCLXXXIV",
+ "2685": "MMDCLXXXV",
+ "2686": "MMDCLXXXVI",
+ "2687": "MMDCLXXXVII",
+ "2688": "MMDCLXXXVIII",
+ "2689": "MMDCLXXXIX",
+ "2690": "MMDCXC",
+ "2691": "MMDCXCI",
+ "2692": "MMDCXCII",
+ "2693": "MMDCXCIII",
+ "2694": "MMDCXCIV",
+ "2695": "MMDCXCV",
+ "2696": "MMDCXCVI",
+ "2697": "MMDCXCVII",
+ "2698": "MMDCXCVIII",
+ "2699": "MMDCXCIX",
+ "2700": "MMDCC",
+ "2701": "MMDCCI",
+ "2702": "MMDCCII",
+ "2703": "MMDCCIII",
+ "2704": "MMDCCIV",
+ "2705": "MMDCCV",
+ "2706": "MMDCCVI",
+ "2707": "MMDCCVII",
+ "2708": "MMDCCVIII",
+ "2709": "MMDCCIX",
+ "2710": "MMDCCX",
+ "2711": "MMDCCXI",
+ "2712": "MMDCCXII",
+ "2713": "MMDCCXIII",
+ "2714": "MMDCCXIV",
+ "2715": "MMDCCXV",
+ "2716": "MMDCCXVI",
+ "2717": "MMDCCXVII",
+ "2718": "MMDCCXVIII",
+ "2719": "MMDCCXIX",
+ "2720": "MMDCCXX",
+ "2721": "MMDCCXXI",
+ "2722": "MMDCCXXII",
+ "2723": "MMDCCXXIII",
+ "2724": "MMDCCXXIV",
+ "2725": "MMDCCXXV",
+ "2726": "MMDCCXXVI",
+ "2727": "MMDCCXXVII",
+ "2728": "MMDCCXXVIII",
+ "2729": "MMDCCXXIX",
+ "2730": "MMDCCXXX",
+ "2731": "MMDCCXXXI",
+ "2732": "MMDCCXXXII",
+ "2733": "MMDCCXXXIII",
+ "2734": "MMDCCXXXIV",
+ "2735": "MMDCCXXXV",
+ "2736": "MMDCCXXXVI",
+ "2737": "MMDCCXXXVII",
+ "2738": "MMDCCXXXVIII",
+ "2739": "MMDCCXXXIX",
+ "2740": "MMDCCXL",
+ "2741": "MMDCCXLI",
+ "2742": "MMDCCXLII",
+ "2743": "MMDCCXLIII",
+ "2744": "MMDCCXLIV",
+ "2745": "MMDCCXLV",
+ "2746": "MMDCCXLVI",
+ "2747": "MMDCCXLVII",
+ "2748": "MMDCCXLVIII",
+ "2749": "MMDCCXLIX",
+ "2750": "MMDCCL",
+ "2751": "MMDCCLI",
+ "2752": "MMDCCLII",
+ "2753": "MMDCCLIII",
+ "2754": "MMDCCLIV",
+ "2755": "MMDCCLV",
+ "2756": "MMDCCLVI",
+ "2757": "MMDCCLVII",
+ "2758": "MMDCCLVIII",
+ "2759": "MMDCCLIX",
+ "2760": "MMDCCLX",
+ "2761": "MMDCCLXI",
+ "2762": "MMDCCLXII",
+ "2763": "MMDCCLXIII",
+ "2764": "MMDCCLXIV",
+ "2765": "MMDCCLXV",
+ "2766": "MMDCCLXVI",
+ "2767": "MMDCCLXVII",
+ "2768": "MMDCCLXVIII",
+ "2769": "MMDCCLXIX",
+ "2770": "MMDCCLXX",
+ "2771": "MMDCCLXXI",
+ "2772": "MMDCCLXXII",
+ "2773": "MMDCCLXXIII",
+ "2774": "MMDCCLXXIV",
+ "2775": "MMDCCLXXV",
+ "2776": "MMDCCLXXVI",
+ "2777": "MMDCCLXXVII",
+ "2778": "MMDCCLXXVIII",
+ "2779": "MMDCCLXXIX",
+ "2780": "MMDCCLXXX",
+ "2781": "MMDCCLXXXI",
+ "2782": "MMDCCLXXXII",
+ "2783": "MMDCCLXXXIII",
+ "2784": "MMDCCLXXXIV",
+ "2785": "MMDCCLXXXV",
+ "2786": "MMDCCLXXXVI",
+ "2787": "MMDCCLXXXVII",
+ "2788": "MMDCCLXXXVIII",
+ "2789": "MMDCCLXXXIX",
+ "2790": "MMDCCXC",
+ "2791": "MMDCCXCI",
+ "2792": "MMDCCXCII",
+ "2793": "MMDCCXCIII",
+ "2794": "MMDCCXCIV",
+ "2795": "MMDCCXCV",
+ "2796": "MMDCCXCVI",
+ "2797": "MMDCCXCVII",
+ "2798": "MMDCCXCVIII",
+ "2799": "MMDCCXCIX",
+ "2800": "MMDCCC",
+ "2801": "MMDCCCI",
+ "2802": "MMDCCCII",
+ "2803": "MMDCCCIII",
+ "2804": "MMDCCCIV",
+ "2805": "MMDCCCV",
+ "2806": "MMDCCCVI",
+ "2807": "MMDCCCVII",
+ "2808": "MMDCCCVIII",
+ "2809": "MMDCCCIX",
+ "2810": "MMDCCCX",
+ "2811": "MMDCCCXI",
+ "2812": "MMDCCCXII",
+ "2813": "MMDCCCXIII",
+ "2814": "MMDCCCXIV",
+ "2815": "MMDCCCXV",
+ "2816": "MMDCCCXVI",
+ "2817": "MMDCCCXVII",
+ "2818": "MMDCCCXVIII",
+ "2819": "MMDCCCXIX",
+ "2820": "MMDCCCXX",
+ "2821": "MMDCCCXXI",
+ "2822": "MMDCCCXXII",
+ "2823": "MMDCCCXXIII",
+ "2824": "MMDCCCXXIV",
+ "2825": "MMDCCCXXV",
+ "2826": "MMDCCCXXVI",
+ "2827": "MMDCCCXXVII",
+ "2828": "MMDCCCXXVIII",
+ "2829": "MMDCCCXXIX",
+ "2830": "MMDCCCXXX",
+ "2831": "MMDCCCXXXI",
+ "2832": "MMDCCCXXXII",
+ "2833": "MMDCCCXXXIII",
+ "2834": "MMDCCCXXXIV",
+ "2835": "MMDCCCXXXV",
+ "2836": "MMDCCCXXXVI",
+ "2837": "MMDCCCXXXVII",
+ "2838": "MMDCCCXXXVIII",
+ "2839": "MMDCCCXXXIX",
+ "2840": "MMDCCCXL",
+ "2841": "MMDCCCXLI",
+ "2842": "MMDCCCXLII",
+ "2843": "MMDCCCXLIII",
+ "2844": "MMDCCCXLIV",
+ "2845": "MMDCCCXLV",
+ "2846": "MMDCCCXLVI",
+ "2847": "MMDCCCXLVII",
+ "2848": "MMDCCCXLVIII",
+ "2849": "MMDCCCXLIX",
+ "2850": "MMDCCCL",
+ "2851": "MMDCCCLI",
+ "2852": "MMDCCCLII",
+ "2853": "MMDCCCLIII",
+ "2854": "MMDCCCLIV",
+ "2855": "MMDCCCLV",
+ "2856": "MMDCCCLVI",
+ "2857": "MMDCCCLVII",
+ "2858": "MMDCCCLVIII",
+ "2859": "MMDCCCLIX",
+ "2860": "MMDCCCLX",
+ "2861": "MMDCCCLXI",
+ "2862": "MMDCCCLXII",
+ "2863": "MMDCCCLXIII",
+ "2864": "MMDCCCLXIV",
+ "2865": "MMDCCCLXV",
+ "2866": "MMDCCCLXVI",
+ "2867": "MMDCCCLXVII",
+ "2868": "MMDCCCLXVIII",
+ "2869": "MMDCCCLXIX",
+ "2870": "MMDCCCLXX",
+ "2871": "MMDCCCLXXI",
+ "2872": "MMDCCCLXXII",
+ "2873": "MMDCCCLXXIII",
+ "2874": "MMDCCCLXXIV",
+ "2875": "MMDCCCLXXV",
+ "2876": "MMDCCCLXXVI",
+ "2877": "MMDCCCLXXVII",
+ "2878": "MMDCCCLXXVIII",
+ "2879": "MMDCCCLXXIX",
+ "2880": "MMDCCCLXXX",
+ "2881": "MMDCCCLXXXI",
+ "2882": "MMDCCCLXXXII",
+ "2883": "MMDCCCLXXXIII",
+ "2884": "MMDCCCLXXXIV",
+ "2885": "MMDCCCLXXXV",
+ "2886": "MMDCCCLXXXVI",
+ "2887": "MMDCCCLXXXVII",
+ "2888": "MMDCCCLXXXVIII",
+ "2889": "MMDCCCLXXXIX",
+ "2890": "MMDCCCXC",
+ "2891": "MMDCCCXCI",
+ "2892": "MMDCCCXCII",
+ "2893": "MMDCCCXCIII",
+ "2894": "MMDCCCXCIV",
+ "2895": "MMDCCCXCV",
+ "2896": "MMDCCCXCVI",
+ "2897": "MMDCCCXCVII",
+ "2898": "MMDCCCXCVIII",
+ "2899": "MMDCCCXCIX",
+ "2900": "MMCM",
+ "2901": "MMCMI",
+ "2902": "MMCMII",
+ "2903": "MMCMIII",
+ "2904": "MMCMIV",
+ "2905": "MMCMV",
+ "2906": "MMCMVI",
+ "2907": "MMCMVII",
+ "2908": "MMCMVIII",
+ "2909": "MMCMIX",
+ "2910": "MMCMX",
+ "2911": "MMCMXI",
+ "2912": "MMCMXII",
+ "2913": "MMCMXIII",
+ "2914": "MMCMXIV",
+ "2915": "MMCMXV",
+ "2916": "MMCMXVI",
+ "2917": "MMCMXVII",
+ "2918": "MMCMXVIII",
+ "2919": "MMCMXIX",
+ "2920": "MMCMXX",
+ "2921": "MMCMXXI",
+ "2922": "MMCMXXII",
+ "2923": "MMCMXXIII",
+ "2924": "MMCMXXIV",
+ "2925": "MMCMXXV",
+ "2926": "MMCMXXVI",
+ "2927": "MMCMXXVII",
+ "2928": "MMCMXXVIII",
+ "2929": "MMCMXXIX",
+ "2930": "MMCMXXX",
+ "2931": "MMCMXXXI",
+ "2932": "MMCMXXXII",
+ "2933": "MMCMXXXIII",
+ "2934": "MMCMXXXIV",
+ "2935": "MMCMXXXV",
+ "2936": "MMCMXXXVI",
+ "2937": "MMCMXXXVII",
+ "2938": "MMCMXXXVIII",
+ "2939": "MMCMXXXIX",
+ "2940": "MMCMXL",
+ "2941": "MMCMXLI",
+ "2942": "MMCMXLII",
+ "2943": "MMCMXLIII",
+ "2944": "MMCMXLIV",
+ "2945": "MMCMXLV",
+ "2946": "MMCMXLVI",
+ "2947": "MMCMXLVII",
+ "2948": "MMCMXLVIII",
+ "2949": "MMCMXLIX",
+ "2950": "MMCML",
+ "2951": "MMCMLI",
+ "2952": "MMCMLII",
+ "2953": "MMCMLIII",
+ "2954": "MMCMLIV",
+ "2955": "MMCMLV",
+ "2956": "MMCMLVI",
+ "2957": "MMCMLVII",
+ "2958": "MMCMLVIII",
+ "2959": "MMCMLIX",
+ "2960": "MMCMLX",
+ "2961": "MMCMLXI",
+ "2962": "MMCMLXII",
+ "2963": "MMCMLXIII",
+ "2964": "MMCMLXIV",
+ "2965": "MMCMLXV",
+ "2966": "MMCMLXVI",
+ "2967": "MMCMLXVII",
+ "2968": "MMCMLXVIII",
+ "2969": "MMCMLXIX",
+ "2970": "MMCMLXX",
+ "2971": "MMCMLXXI",
+ "2972": "MMCMLXXII",
+ "2973": "MMCMLXXIII",
+ "2974": "MMCMLXXIV",
+ "2975": "MMCMLXXV",
+ "2976": "MMCMLXXVI",
+ "2977": "MMCMLXXVII",
+ "2978": "MMCMLXXVIII",
+ "2979": "MMCMLXXIX",
+ "2980": "MMCMLXXX",
+ "2981": "MMCMLXXXI",
+ "2982": "MMCMLXXXII",
+ "2983": "MMCMLXXXIII",
+ "2984": "MMCMLXXXIV",
+ "2985": "MMCMLXXXV",
+ "2986": "MMCMLXXXVI",
+ "2987": "MMCMLXXXVII",
+ "2988": "MMCMLXXXVIII",
+ "2989": "MMCMLXXXIX",
+ "2990": "MMCMXC",
+ "2991": "MMCMXCI",
+ "2992": "MMCMXCII",
+ "2993": "MMCMXCIII",
+ "2994": "MMCMXCIV",
+ "2995": "MMCMXCV",
+ "2996": "MMCMXCVI",
+ "2997": "MMCMXCVII",
+ "2998": "MMCMXCVIII",
+ "2999": "MMCMXCIX",
+ "3000": "MMM",
+ "3001": "MMMI",
+ "3002": "MMMII",
+ "3003": "MMMIII",
+ "3004": "MMMIV",
+ "3005": "MMMV",
+ "3006": "MMMVI",
+ "3007": "MMMVII",
+ "3008": "MMMVIII",
+ "3009": "MMMIX",
+ "3010": "MMMX",
+ "3011": "MMMXI",
+ "3012": "MMMXII",
+ "3013": "MMMXIII",
+ "3014": "MMMXIV",
+ "3015": "MMMXV",
+ "3016": "MMMXVI",
+ "3017": "MMMXVII",
+ "3018": "MMMXVIII",
+ "3019": "MMMXIX",
+ "3020": "MMMXX",
+ "3021": "MMMXXI",
+ "3022": "MMMXXII",
+ "3023": "MMMXXIII",
+ "3024": "MMMXXIV",
+ "3025": "MMMXXV",
+ "3026": "MMMXXVI",
+ "3027": "MMMXXVII",
+ "3028": "MMMXXVIII",
+ "3029": "MMMXXIX",
+ "3030": "MMMXXX",
+ "3031": "MMMXXXI",
+ "3032": "MMMXXXII",
+ "3033": "MMMXXXIII",
+ "3034": "MMMXXXIV",
+ "3035": "MMMXXXV",
+ "3036": "MMMXXXVI",
+ "3037": "MMMXXXVII",
+ "3038": "MMMXXXVIII",
+ "3039": "MMMXXXIX",
+ "3040": "MMMXL",
+ "3041": "MMMXLI",
+ "3042": "MMMXLII",
+ "3043": "MMMXLIII",
+ "3044": "MMMXLIV",
+ "3045": "MMMXLV",
+ "3046": "MMMXLVI",
+ "3047": "MMMXLVII",
+ "3048": "MMMXLVIII",
+ "3049": "MMMXLIX",
+ "3050": "MMML",
+ "3051": "MMMLI",
+ "3052": "MMMLII",
+ "3053": "MMMLIII",
+ "3054": "MMMLIV",
+ "3055": "MMMLV",
+ "3056": "MMMLVI",
+ "3057": "MMMLVII",
+ "3058": "MMMLVIII",
+ "3059": "MMMLIX",
+ "3060": "MMMLX",
+ "3061": "MMMLXI",
+ "3062": "MMMLXII",
+ "3063": "MMMLXIII",
+ "3064": "MMMLXIV",
+ "3065": "MMMLXV",
+ "3066": "MMMLXVI",
+ "3067": "MMMLXVII",
+ "3068": "MMMLXVIII",
+ "3069": "MMMLXIX",
+ "3070": "MMMLXX",
+ "3071": "MMMLXXI",
+ "3072": "MMMLXXII",
+ "3073": "MMMLXXIII",
+ "3074": "MMMLXXIV",
+ "3075": "MMMLXXV",
+ "3076": "MMMLXXVI",
+ "3077": "MMMLXXVII",
+ "3078": "MMMLXXVIII",
+ "3079": "MMMLXXIX",
+ "3080": "MMMLXXX",
+ "3081": "MMMLXXXI",
+ "3082": "MMMLXXXII",
+ "3083": "MMMLXXXIII",
+ "3084": "MMMLXXXIV",
+ "3085": "MMMLXXXV",
+ "3086": "MMMLXXXVI",
+ "3087": "MMMLXXXVII",
+ "3088": "MMMLXXXVIII",
+ "3089": "MMMLXXXIX",
+ "3090": "MMMXC",
+ "3091": "MMMXCI",
+ "3092": "MMMXCII",
+ "3093": "MMMXCIII",
+ "3094": "MMMXCIV",
+ "3095": "MMMXCV",
+ "3096": "MMMXCVI",
+ "3097": "MMMXCVII",
+ "3098": "MMMXCVIII",
+ "3099": "MMMXCIX",
+ "3100": "MMMC",
+ "3101": "MMMCI",
+ "3102": "MMMCII",
+ "3103": "MMMCIII",
+ "3104": "MMMCIV",
+ "3105": "MMMCV",
+ "3106": "MMMCVI",
+ "3107": "MMMCVII",
+ "3108": "MMMCVIII",
+ "3109": "MMMCIX",
+ "3110": "MMMCX",
+ "3111": "MMMCXI",
+ "3112": "MMMCXII",
+ "3113": "MMMCXIII",
+ "3114": "MMMCXIV",
+ "3115": "MMMCXV",
+ "3116": "MMMCXVI",
+ "3117": "MMMCXVII",
+ "3118": "MMMCXVIII",
+ "3119": "MMMCXIX",
+ "3120": "MMMCXX",
+ "3121": "MMMCXXI",
+ "3122": "MMMCXXII",
+ "3123": "MMMCXXIII",
+ "3124": "MMMCXXIV",
+ "3125": "MMMCXXV",
+ "3126": "MMMCXXVI",
+ "3127": "MMMCXXVII",
+ "3128": "MMMCXXVIII",
+ "3129": "MMMCXXIX",
+ "3130": "MMMCXXX",
+ "3131": "MMMCXXXI",
+ "3132": "MMMCXXXII",
+ "3133": "MMMCXXXIII",
+ "3134": "MMMCXXXIV",
+ "3135": "MMMCXXXV",
+ "3136": "MMMCXXXVI",
+ "3137": "MMMCXXXVII",
+ "3138": "MMMCXXXVIII",
+ "3139": "MMMCXXXIX",
+ "3140": "MMMCXL",
+ "3141": "MMMCXLI",
+ "3142": "MMMCXLII",
+ "3143": "MMMCXLIII",
+ "3144": "MMMCXLIV",
+ "3145": "MMMCXLV",
+ "3146": "MMMCXLVI",
+ "3147": "MMMCXLVII",
+ "3148": "MMMCXLVIII",
+ "3149": "MMMCXLIX",
+ "3150": "MMMCL",
+ "3151": "MMMCLI",
+ "3152": "MMMCLII",
+ "3153": "MMMCLIII",
+ "3154": "MMMCLIV",
+ "3155": "MMMCLV",
+ "3156": "MMMCLVI",
+ "3157": "MMMCLVII",
+ "3158": "MMMCLVIII",
+ "3159": "MMMCLIX",
+ "3160": "MMMCLX",
+ "3161": "MMMCLXI",
+ "3162": "MMMCLXII",
+ "3163": "MMMCLXIII",
+ "3164": "MMMCLXIV",
+ "3165": "MMMCLXV",
+ "3166": "MMMCLXVI",
+ "3167": "MMMCLXVII",
+ "3168": "MMMCLXVIII",
+ "3169": "MMMCLXIX",
+ "3170": "MMMCLXX",
+ "3171": "MMMCLXXI",
+ "3172": "MMMCLXXII",
+ "3173": "MMMCLXXIII",
+ "3174": "MMMCLXXIV",
+ "3175": "MMMCLXXV",
+ "3176": "MMMCLXXVI",
+ "3177": "MMMCLXXVII",
+ "3178": "MMMCLXXVIII",
+ "3179": "MMMCLXXIX",
+ "3180": "MMMCLXXX",
+ "3181": "MMMCLXXXI",
+ "3182": "MMMCLXXXII",
+ "3183": "MMMCLXXXIII",
+ "3184": "MMMCLXXXIV",
+ "3185": "MMMCLXXXV",
+ "3186": "MMMCLXXXVI",
+ "3187": "MMMCLXXXVII",
+ "3188": "MMMCLXXXVIII",
+ "3189": "MMMCLXXXIX",
+ "3190": "MMMCXC",
+ "3191": "MMMCXCI",
+ "3192": "MMMCXCII",
+ "3193": "MMMCXCIII",
+ "3194": "MMMCXCIV",
+ "3195": "MMMCXCV",
+ "3196": "MMMCXCVI",
+ "3197": "MMMCXCVII",
+ "3198": "MMMCXCVIII",
+ "3199": "MMMCXCIX",
+ "3200": "MMMCC",
+ "3201": "MMMCCI",
+ "3202": "MMMCCII",
+ "3203": "MMMCCIII",
+ "3204": "MMMCCIV",
+ "3205": "MMMCCV",
+ "3206": "MMMCCVI",
+ "3207": "MMMCCVII",
+ "3208": "MMMCCVIII",
+ "3209": "MMMCCIX",
+ "3210": "MMMCCX",
+ "3211": "MMMCCXI",
+ "3212": "MMMCCXII",
+ "3213": "MMMCCXIII",
+ "3214": "MMMCCXIV",
+ "3215": "MMMCCXV",
+ "3216": "MMMCCXVI",
+ "3217": "MMMCCXVII",
+ "3218": "MMMCCXVIII",
+ "3219": "MMMCCXIX",
+ "3220": "MMMCCXX",
+ "3221": "MMMCCXXI",
+ "3222": "MMMCCXXII",
+ "3223": "MMMCCXXIII",
+ "3224": "MMMCCXXIV",
+ "3225": "MMMCCXXV",
+ "3226": "MMMCCXXVI",
+ "3227": "MMMCCXXVII",
+ "3228": "MMMCCXXVIII",
+ "3229": "MMMCCXXIX",
+ "3230": "MMMCCXXX",
+ "3231": "MMMCCXXXI",
+ "3232": "MMMCCXXXII",
+ "3233": "MMMCCXXXIII",
+ "3234": "MMMCCXXXIV",
+ "3235": "MMMCCXXXV",
+ "3236": "MMMCCXXXVI",
+ "3237": "MMMCCXXXVII",
+ "3238": "MMMCCXXXVIII",
+ "3239": "MMMCCXXXIX",
+ "3240": "MMMCCXL",
+ "3241": "MMMCCXLI",
+ "3242": "MMMCCXLII",
+ "3243": "MMMCCXLIII",
+ "3244": "MMMCCXLIV",
+ "3245": "MMMCCXLV",
+ "3246": "MMMCCXLVI",
+ "3247": "MMMCCXLVII",
+ "3248": "MMMCCXLVIII",
+ "3249": "MMMCCXLIX",
+ "3250": "MMMCCL",
+ "3251": "MMMCCLI",
+ "3252": "MMMCCLII",
+ "3253": "MMMCCLIII",
+ "3254": "MMMCCLIV",
+ "3255": "MMMCCLV",
+ "3256": "MMMCCLVI",
+ "3257": "MMMCCLVII",
+ "3258": "MMMCCLVIII",
+ "3259": "MMMCCLIX",
+ "3260": "MMMCCLX",
+ "3261": "MMMCCLXI",
+ "3262": "MMMCCLXII",
+ "3263": "MMMCCLXIII",
+ "3264": "MMMCCLXIV",
+ "3265": "MMMCCLXV",
+ "3266": "MMMCCLXVI",
+ "3267": "MMMCCLXVII",
+ "3268": "MMMCCLXVIII",
+ "3269": "MMMCCLXIX",
+ "3270": "MMMCCLXX",
+ "3271": "MMMCCLXXI",
+ "3272": "MMMCCLXXII",
+ "3273": "MMMCCLXXIII",
+ "3274": "MMMCCLXXIV",
+ "3275": "MMMCCLXXV",
+ "3276": "MMMCCLXXVI",
+ "3277": "MMMCCLXXVII",
+ "3278": "MMMCCLXXVIII",
+ "3279": "MMMCCLXXIX",
+ "3280": "MMMCCLXXX",
+ "3281": "MMMCCLXXXI",
+ "3282": "MMMCCLXXXII",
+ "3283": "MMMCCLXXXIII",
+ "3284": "MMMCCLXXXIV",
+ "3285": "MMMCCLXXXV",
+ "3286": "MMMCCLXXXVI",
+ "3287": "MMMCCLXXXVII",
+ "3288": "MMMCCLXXXVIII",
+ "3289": "MMMCCLXXXIX",
+ "3290": "MMMCCXC",
+ "3291": "MMMCCXCI",
+ "3292": "MMMCCXCII",
+ "3293": "MMMCCXCIII",
+ "3294": "MMMCCXCIV",
+ "3295": "MMMCCXCV",
+ "3296": "MMMCCXCVI",
+ "3297": "MMMCCXCVII",
+ "3298": "MMMCCXCVIII",
+ "3299": "MMMCCXCIX",
+ "3300": "MMMCCC",
+ "3301": "MMMCCCI",
+ "3302": "MMMCCCII",
+ "3303": "MMMCCCIII",
+ "3304": "MMMCCCIV",
+ "3305": "MMMCCCV",
+ "3306": "MMMCCCVI",
+ "3307": "MMMCCCVII",
+ "3308": "MMMCCCVIII",
+ "3309": "MMMCCCIX",
+ "3310": "MMMCCCX",
+ "3311": "MMMCCCXI",
+ "3312": "MMMCCCXII",
+ "3313": "MMMCCCXIII",
+ "3314": "MMMCCCXIV",
+ "3315": "MMMCCCXV",
+ "3316": "MMMCCCXVI",
+ "3317": "MMMCCCXVII",
+ "3318": "MMMCCCXVIII",
+ "3319": "MMMCCCXIX",
+ "3320": "MMMCCCXX",
+ "3321": "MMMCCCXXI",
+ "3322": "MMMCCCXXII",
+ "3323": "MMMCCCXXIII",
+ "3324": "MMMCCCXXIV",
+ "3325": "MMMCCCXXV",
+ "3326": "MMMCCCXXVI",
+ "3327": "MMMCCCXXVII",
+ "3328": "MMMCCCXXVIII",
+ "3329": "MMMCCCXXIX",
+ "3330": "MMMCCCXXX",
+ "3331": "MMMCCCXXXI",
+ "3332": "MMMCCCXXXII",
+ "3333": "MMMCCCXXXIII",
+ "3334": "MMMCCCXXXIV",
+ "3335": "MMMCCCXXXV",
+ "3336": "MMMCCCXXXVI",
+ "3337": "MMMCCCXXXVII",
+ "3338": "MMMCCCXXXVIII",
+ "3339": "MMMCCCXXXIX",
+ "3340": "MMMCCCXL",
+ "3341": "MMMCCCXLI",
+ "3342": "MMMCCCXLII",
+ "3343": "MMMCCCXLIII",
+ "3344": "MMMCCCXLIV",
+ "3345": "MMMCCCXLV",
+ "3346": "MMMCCCXLVI",
+ "3347": "MMMCCCXLVII",
+ "3348": "MMMCCCXLVIII",
+ "3349": "MMMCCCXLIX",
+ "3350": "MMMCCCL",
+ "3351": "MMMCCCLI",
+ "3352": "MMMCCCLII",
+ "3353": "MMMCCCLIII",
+ "3354": "MMMCCCLIV",
+ "3355": "MMMCCCLV",
+ "3356": "MMMCCCLVI",
+ "3357": "MMMCCCLVII",
+ "3358": "MMMCCCLVIII",
+ "3359": "MMMCCCLIX",
+ "3360": "MMMCCCLX",
+ "3361": "MMMCCCLXI",
+ "3362": "MMMCCCLXII",
+ "3363": "MMMCCCLXIII",
+ "3364": "MMMCCCLXIV",
+ "3365": "MMMCCCLXV",
+ "3366": "MMMCCCLXVI",
+ "3367": "MMMCCCLXVII",
+ "3368": "MMMCCCLXVIII",
+ "3369": "MMMCCCLXIX",
+ "3370": "MMMCCCLXX",
+ "3371": "MMMCCCLXXI",
+ "3372": "MMMCCCLXXII",
+ "3373": "MMMCCCLXXIII",
+ "3374": "MMMCCCLXXIV",
+ "3375": "MMMCCCLXXV",
+ "3376": "MMMCCCLXXVI",
+ "3377": "MMMCCCLXXVII",
+ "3378": "MMMCCCLXXVIII",
+ "3379": "MMMCCCLXXIX",
+ "3380": "MMMCCCLXXX",
+ "3381": "MMMCCCLXXXI",
+ "3382": "MMMCCCLXXXII",
+ "3383": "MMMCCCLXXXIII",
+ "3384": "MMMCCCLXXXIV",
+ "3385": "MMMCCCLXXXV",
+ "3386": "MMMCCCLXXXVI",
+ "3387": "MMMCCCLXXXVII",
+ "3388": "MMMCCCLXXXVIII",
+ "3389": "MMMCCCLXXXIX",
+ "3390": "MMMCCCXC",
+ "3391": "MMMCCCXCI",
+ "3392": "MMMCCCXCII",
+ "3393": "MMMCCCXCIII",
+ "3394": "MMMCCCXCIV",
+ "3395": "MMMCCCXCV",
+ "3396": "MMMCCCXCVI",
+ "3397": "MMMCCCXCVII",
+ "3398": "MMMCCCXCVIII",
+ "3399": "MMMCCCXCIX",
+ "3400": "MMMCD",
+ "3401": "MMMCDI",
+ "3402": "MMMCDII",
+ "3403": "MMMCDIII",
+ "3404": "MMMCDIV",
+ "3405": "MMMCDV",
+ "3406": "MMMCDVI",
+ "3407": "MMMCDVII",
+ "3408": "MMMCDVIII",
+ "3409": "MMMCDIX",
+ "3410": "MMMCDX",
+ "3411": "MMMCDXI",
+ "3412": "MMMCDXII",
+ "3413": "MMMCDXIII",
+ "3414": "MMMCDXIV",
+ "3415": "MMMCDXV",
+ "3416": "MMMCDXVI",
+ "3417": "MMMCDXVII",
+ "3418": "MMMCDXVIII",
+ "3419": "MMMCDXIX",
+ "3420": "MMMCDXX",
+ "3421": "MMMCDXXI",
+ "3422": "MMMCDXXII",
+ "3423": "MMMCDXXIII",
+ "3424": "MMMCDXXIV",
+ "3425": "MMMCDXXV",
+ "3426": "MMMCDXXVI",
+ "3427": "MMMCDXXVII",
+ "3428": "MMMCDXXVIII",
+ "3429": "MMMCDXXIX",
+ "3430": "MMMCDXXX",
+ "3431": "MMMCDXXXI",
+ "3432": "MMMCDXXXII",
+ "3433": "MMMCDXXXIII",
+ "3434": "MMMCDXXXIV",
+ "3435": "MMMCDXXXV",
+ "3436": "MMMCDXXXVI",
+ "3437": "MMMCDXXXVII",
+ "3438": "MMMCDXXXVIII",
+ "3439": "MMMCDXXXIX",
+ "3440": "MMMCDXL",
+ "3441": "MMMCDXLI",
+ "3442": "MMMCDXLII",
+ "3443": "MMMCDXLIII",
+ "3444": "MMMCDXLIV",
+ "3445": "MMMCDXLV",
+ "3446": "MMMCDXLVI",
+ "3447": "MMMCDXLVII",
+ "3448": "MMMCDXLVIII",
+ "3449": "MMMCDXLIX",
+ "3450": "MMMCDL",
+ "3451": "MMMCDLI",
+ "3452": "MMMCDLII",
+ "3453": "MMMCDLIII",
+ "3454": "MMMCDLIV",
+ "3455": "MMMCDLV",
+ "3456": "MMMCDLVI",
+ "3457": "MMMCDLVII",
+ "3458": "MMMCDLVIII",
+ "3459": "MMMCDLIX",
+ "3460": "MMMCDLX",
+ "3461": "MMMCDLXI",
+ "3462": "MMMCDLXII",
+ "3463": "MMMCDLXIII",
+ "3464": "MMMCDLXIV",
+ "3465": "MMMCDLXV",
+ "3466": "MMMCDLXVI",
+ "3467": "MMMCDLXVII",
+ "3468": "MMMCDLXVIII",
+ "3469": "MMMCDLXIX",
+ "3470": "MMMCDLXX",
+ "3471": "MMMCDLXXI",
+ "3472": "MMMCDLXXII",
+ "3473": "MMMCDLXXIII",
+ "3474": "MMMCDLXXIV",
+ "3475": "MMMCDLXXV",
+ "3476": "MMMCDLXXVI",
+ "3477": "MMMCDLXXVII",
+ "3478": "MMMCDLXXVIII",
+ "3479": "MMMCDLXXIX",
+ "3480": "MMMCDLXXX",
+ "3481": "MMMCDLXXXI",
+ "3482": "MMMCDLXXXII",
+ "3483": "MMMCDLXXXIII",
+ "3484": "MMMCDLXXXIV",
+ "3485": "MMMCDLXXXV",
+ "3486": "MMMCDLXXXVI",
+ "3487": "MMMCDLXXXVII",
+ "3488": "MMMCDLXXXVIII",
+ "3489": "MMMCDLXXXIX",
+ "3490": "MMMCDXC",
+ "3491": "MMMCDXCI",
+ "3492": "MMMCDXCII",
+ "3493": "MMMCDXCIII",
+ "3494": "MMMCDXCIV",
+ "3495": "MMMCDXCV",
+ "3496": "MMMCDXCVI",
+ "3497": "MMMCDXCVII",
+ "3498": "MMMCDXCVIII",
+ "3499": "MMMCDXCIX",
+ "3500": "MMMD",
+ "3501": "MMMDI",
+ "3502": "MMMDII",
+ "3503": "MMMDIII",
+ "3504": "MMMDIV",
+ "3505": "MMMDV",
+ "3506": "MMMDVI",
+ "3507": "MMMDVII",
+ "3508": "MMMDVIII",
+ "3509": "MMMDIX",
+ "3510": "MMMDX",
+ "3511": "MMMDXI",
+ "3512": "MMMDXII",
+ "3513": "MMMDXIII",
+ "3514": "MMMDXIV",
+ "3515": "MMMDXV",
+ "3516": "MMMDXVI",
+ "3517": "MMMDXVII",
+ "3518": "MMMDXVIII",
+ "3519": "MMMDXIX",
+ "3520": "MMMDXX",
+ "3521": "MMMDXXI",
+ "3522": "MMMDXXII",
+ "3523": "MMMDXXIII",
+ "3524": "MMMDXXIV",
+ "3525": "MMMDXXV",
+ "3526": "MMMDXXVI",
+ "3527": "MMMDXXVII",
+ "3528": "MMMDXXVIII",
+ "3529": "MMMDXXIX",
+ "3530": "MMMDXXX",
+ "3531": "MMMDXXXI",
+ "3532": "MMMDXXXII",
+ "3533": "MMMDXXXIII",
+ "3534": "MMMDXXXIV",
+ "3535": "MMMDXXXV",
+ "3536": "MMMDXXXVI",
+ "3537": "MMMDXXXVII",
+ "3538": "MMMDXXXVIII",
+ "3539": "MMMDXXXIX",
+ "3540": "MMMDXL",
+ "3541": "MMMDXLI",
+ "3542": "MMMDXLII",
+ "3543": "MMMDXLIII",
+ "3544": "MMMDXLIV",
+ "3545": "MMMDXLV",
+ "3546": "MMMDXLVI",
+ "3547": "MMMDXLVII",
+ "3548": "MMMDXLVIII",
+ "3549": "MMMDXLIX",
+ "3550": "MMMDL",
+ "3551": "MMMDLI",
+ "3552": "MMMDLII",
+ "3553": "MMMDLIII",
+ "3554": "MMMDLIV",
+ "3555": "MMMDLV",
+ "3556": "MMMDLVI",
+ "3557": "MMMDLVII",
+ "3558": "MMMDLVIII",
+ "3559": "MMMDLIX",
+ "3560": "MMMDLX",
+ "3561": "MMMDLXI",
+ "3562": "MMMDLXII",
+ "3563": "MMMDLXIII",
+ "3564": "MMMDLXIV",
+ "3565": "MMMDLXV",
+ "3566": "MMMDLXVI",
+ "3567": "MMMDLXVII",
+ "3568": "MMMDLXVIII",
+ "3569": "MMMDLXIX",
+ "3570": "MMMDLXX",
+ "3571": "MMMDLXXI",
+ "3572": "MMMDLXXII",
+ "3573": "MMMDLXXIII",
+ "3574": "MMMDLXXIV",
+ "3575": "MMMDLXXV",
+ "3576": "MMMDLXXVI",
+ "3577": "MMMDLXXVII",
+ "3578": "MMMDLXXVIII",
+ "3579": "MMMDLXXIX",
+ "3580": "MMMDLXXX",
+ "3581": "MMMDLXXXI",
+ "3582": "MMMDLXXXII",
+ "3583": "MMMDLXXXIII",
+ "3584": "MMMDLXXXIV",
+ "3585": "MMMDLXXXV",
+ "3586": "MMMDLXXXVI",
+ "3587": "MMMDLXXXVII",
+ "3588": "MMMDLXXXVIII",
+ "3589": "MMMDLXXXIX",
+ "3590": "MMMDXC",
+ "3591": "MMMDXCI",
+ "3592": "MMMDXCII",
+ "3593": "MMMDXCIII",
+ "3594": "MMMDXCIV",
+ "3595": "MMMDXCV",
+ "3596": "MMMDXCVI",
+ "3597": "MMMDXCVII",
+ "3598": "MMMDXCVIII",
+ "3599": "MMMDXCIX",
+ "3600": "MMMDC",
+ "3601": "MMMDCI",
+ "3602": "MMMDCII",
+ "3603": "MMMDCIII",
+ "3604": "MMMDCIV",
+ "3605": "MMMDCV",
+ "3606": "MMMDCVI",
+ "3607": "MMMDCVII",
+ "3608": "MMMDCVIII",
+ "3609": "MMMDCIX",
+ "3610": "MMMDCX",
+ "3611": "MMMDCXI",
+ "3612": "MMMDCXII",
+ "3613": "MMMDCXIII",
+ "3614": "MMMDCXIV",
+ "3615": "MMMDCXV",
+ "3616": "MMMDCXVI",
+ "3617": "MMMDCXVII",
+ "3618": "MMMDCXVIII",
+ "3619": "MMMDCXIX",
+ "3620": "MMMDCXX",
+ "3621": "MMMDCXXI",
+ "3622": "MMMDCXXII",
+ "3623": "MMMDCXXIII",
+ "3624": "MMMDCXXIV",
+ "3625": "MMMDCXXV",
+ "3626": "MMMDCXXVI",
+ "3627": "MMMDCXXVII",
+ "3628": "MMMDCXXVIII",
+ "3629": "MMMDCXXIX",
+ "3630": "MMMDCXXX",
+ "3631": "MMMDCXXXI",
+ "3632": "MMMDCXXXII",
+ "3633": "MMMDCXXXIII",
+ "3634": "MMMDCXXXIV",
+ "3635": "MMMDCXXXV",
+ "3636": "MMMDCXXXVI",
+ "3637": "MMMDCXXXVII",
+ "3638": "MMMDCXXXVIII",
+ "3639": "MMMDCXXXIX",
+ "3640": "MMMDCXL",
+ "3641": "MMMDCXLI",
+ "3642": "MMMDCXLII",
+ "3643": "MMMDCXLIII",
+ "3644": "MMMDCXLIV",
+ "3645": "MMMDCXLV",
+ "3646": "MMMDCXLVI",
+ "3647": "MMMDCXLVII",
+ "3648": "MMMDCXLVIII",
+ "3649": "MMMDCXLIX",
+ "3650": "MMMDCL",
+ "3651": "MMMDCLI",
+ "3652": "MMMDCLII",
+ "3653": "MMMDCLIII",
+ "3654": "MMMDCLIV",
+ "3655": "MMMDCLV",
+ "3656": "MMMDCLVI",
+ "3657": "MMMDCLVII",
+ "3658": "MMMDCLVIII",
+ "3659": "MMMDCLIX",
+ "3660": "MMMDCLX",
+ "3661": "MMMDCLXI",
+ "3662": "MMMDCLXII",
+ "3663": "MMMDCLXIII",
+ "3664": "MMMDCLXIV",
+ "3665": "MMMDCLXV",
+ "3666": "MMMDCLXVI",
+ "3667": "MMMDCLXVII",
+ "3668": "MMMDCLXVIII",
+ "3669": "MMMDCLXIX",
+ "3670": "MMMDCLXX",
+ "3671": "MMMDCLXXI",
+ "3672": "MMMDCLXXII",
+ "3673": "MMMDCLXXIII",
+ "3674": "MMMDCLXXIV",
+ "3675": "MMMDCLXXV",
+ "3676": "MMMDCLXXVI",
+ "3677": "MMMDCLXXVII",
+ "3678": "MMMDCLXXVIII",
+ "3679": "MMMDCLXXIX",
+ "3680": "MMMDCLXXX",
+ "3681": "MMMDCLXXXI",
+ "3682": "MMMDCLXXXII",
+ "3683": "MMMDCLXXXIII",
+ "3684": "MMMDCLXXXIV",
+ "3685": "MMMDCLXXXV",
+ "3686": "MMMDCLXXXVI",
+ "3687": "MMMDCLXXXVII",
+ "3688": "MMMDCLXXXVIII",
+ "3689": "MMMDCLXXXIX",
+ "3690": "MMMDCXC",
+ "3691": "MMMDCXCI",
+ "3692": "MMMDCXCII",
+ "3693": "MMMDCXCIII",
+ "3694": "MMMDCXCIV",
+ "3695": "MMMDCXCV",
+ "3696": "MMMDCXCVI",
+ "3697": "MMMDCXCVII",
+ "3698": "MMMDCXCVIII",
+ "3699": "MMMDCXCIX",
+ "3700": "MMMDCC",
+ "3701": "MMMDCCI",
+ "3702": "MMMDCCII",
+ "3703": "MMMDCCIII",
+ "3704": "MMMDCCIV",
+ "3705": "MMMDCCV",
+ "3706": "MMMDCCVI",
+ "3707": "MMMDCCVII",
+ "3708": "MMMDCCVIII",
+ "3709": "MMMDCCIX",
+ "3710": "MMMDCCX",
+ "3711": "MMMDCCXI",
+ "3712": "MMMDCCXII",
+ "3713": "MMMDCCXIII",
+ "3714": "MMMDCCXIV",
+ "3715": "MMMDCCXV",
+ "3716": "MMMDCCXVI",
+ "3717": "MMMDCCXVII",
+ "3718": "MMMDCCXVIII",
+ "3719": "MMMDCCXIX",
+ "3720": "MMMDCCXX",
+ "3721": "MMMDCCXXI",
+ "3722": "MMMDCCXXII",
+ "3723": "MMMDCCXXIII",
+ "3724": "MMMDCCXXIV",
+ "3725": "MMMDCCXXV",
+ "3726": "MMMDCCXXVI",
+ "3727": "MMMDCCXXVII",
+ "3728": "MMMDCCXXVIII",
+ "3729": "MMMDCCXXIX",
+ "3730": "MMMDCCXXX",
+ "3731": "MMMDCCXXXI",
+ "3732": "MMMDCCXXXII",
+ "3733": "MMMDCCXXXIII",
+ "3734": "MMMDCCXXXIV",
+ "3735": "MMMDCCXXXV",
+ "3736": "MMMDCCXXXVI",
+ "3737": "MMMDCCXXXVII",
+ "3738": "MMMDCCXXXVIII",
+ "3739": "MMMDCCXXXIX",
+ "3740": "MMMDCCXL",
+ "3741": "MMMDCCXLI",
+ "3742": "MMMDCCXLII",
+ "3743": "MMMDCCXLIII",
+ "3744": "MMMDCCXLIV",
+ "3745": "MMMDCCXLV",
+ "3746": "MMMDCCXLVI",
+ "3747": "MMMDCCXLVII",
+ "3748": "MMMDCCXLVIII",
+ "3749": "MMMDCCXLIX",
+ "3750": "MMMDCCL",
+ "3751": "MMMDCCLI",
+ "3752": "MMMDCCLII",
+ "3753": "MMMDCCLIII",
+ "3754": "MMMDCCLIV",
+ "3755": "MMMDCCLV",
+ "3756": "MMMDCCLVI",
+ "3757": "MMMDCCLVII",
+ "3758": "MMMDCCLVIII",
+ "3759": "MMMDCCLIX",
+ "3760": "MMMDCCLX",
+ "3761": "MMMDCCLXI",
+ "3762": "MMMDCCLXII",
+ "3763": "MMMDCCLXIII",
+ "3764": "MMMDCCLXIV",
+ "3765": "MMMDCCLXV",
+ "3766": "MMMDCCLXVI",
+ "3767": "MMMDCCLXVII",
+ "3768": "MMMDCCLXVIII",
+ "3769": "MMMDCCLXIX",
+ "3770": "MMMDCCLXX",
+ "3771": "MMMDCCLXXI",
+ "3772": "MMMDCCLXXII",
+ "3773": "MMMDCCLXXIII",
+ "3774": "MMMDCCLXXIV",
+ "3775": "MMMDCCLXXV",
+ "3776": "MMMDCCLXXVI",
+ "3777": "MMMDCCLXXVII",
+ "3778": "MMMDCCLXXVIII",
+ "3779": "MMMDCCLXXIX",
+ "3780": "MMMDCCLXXX",
+ "3781": "MMMDCCLXXXI",
+ "3782": "MMMDCCLXXXII",
+ "3783": "MMMDCCLXXXIII",
+ "3784": "MMMDCCLXXXIV",
+ "3785": "MMMDCCLXXXV",
+ "3786": "MMMDCCLXXXVI",
+ "3787": "MMMDCCLXXXVII",
+ "3788": "MMMDCCLXXXVIII",
+ "3789": "MMMDCCLXXXIX",
+ "3790": "MMMDCCXC",
+ "3791": "MMMDCCXCI",
+ "3792": "MMMDCCXCII",
+ "3793": "MMMDCCXCIII",
+ "3794": "MMMDCCXCIV",
+ "3795": "MMMDCCXCV",
+ "3796": "MMMDCCXCVI",
+ "3797": "MMMDCCXCVII",
+ "3798": "MMMDCCXCVIII",
+ "3799": "MMMDCCXCIX",
+ "3800": "MMMDCCC",
+ "3801": "MMMDCCCI",
+ "3802": "MMMDCCCII",
+ "3803": "MMMDCCCIII",
+ "3804": "MMMDCCCIV",
+ "3805": "MMMDCCCV",
+ "3806": "MMMDCCCVI",
+ "3807": "MMMDCCCVII",
+ "3808": "MMMDCCCVIII",
+ "3809": "MMMDCCCIX",
+ "3810": "MMMDCCCX",
+ "3811": "MMMDCCCXI",
+ "3812": "MMMDCCCXII",
+ "3813": "MMMDCCCXIII",
+ "3814": "MMMDCCCXIV",
+ "3815": "MMMDCCCXV",
+ "3816": "MMMDCCCXVI",
+ "3817": "MMMDCCCXVII",
+ "3818": "MMMDCCCXVIII",
+ "3819": "MMMDCCCXIX",
+ "3820": "MMMDCCCXX",
+ "3821": "MMMDCCCXXI",
+ "3822": "MMMDCCCXXII",
+ "3823": "MMMDCCCXXIII",
+ "3824": "MMMDCCCXXIV",
+ "3825": "MMMDCCCXXV",
+ "3826": "MMMDCCCXXVI",
+ "3827": "MMMDCCCXXVII",
+ "3828": "MMMDCCCXXVIII",
+ "3829": "MMMDCCCXXIX",
+ "3830": "MMMDCCCXXX",
+ "3831": "MMMDCCCXXXI",
+ "3832": "MMMDCCCXXXII",
+ "3833": "MMMDCCCXXXIII",
+ "3834": "MMMDCCCXXXIV",
+ "3835": "MMMDCCCXXXV",
+ "3836": "MMMDCCCXXXVI",
+ "3837": "MMMDCCCXXXVII",
+ "3838": "MMMDCCCXXXVIII",
+ "3839": "MMMDCCCXXXIX",
+ "3840": "MMMDCCCXL",
+ "3841": "MMMDCCCXLI",
+ "3842": "MMMDCCCXLII",
+ "3843": "MMMDCCCXLIII",
+ "3844": "MMMDCCCXLIV",
+ "3845": "MMMDCCCXLV",
+ "3846": "MMMDCCCXLVI",
+ "3847": "MMMDCCCXLVII",
+ "3848": "MMMDCCCXLVIII",
+ "3849": "MMMDCCCXLIX",
+ "3850": "MMMDCCCL",
+ "3851": "MMMDCCCLI",
+ "3852": "MMMDCCCLII",
+ "3853": "MMMDCCCLIII",
+ "3854": "MMMDCCCLIV",
+ "3855": "MMMDCCCLV",
+ "3856": "MMMDCCCLVI",
+ "3857": "MMMDCCCLVII",
+ "3858": "MMMDCCCLVIII",
+ "3859": "MMMDCCCLIX",
+ "3860": "MMMDCCCLX",
+ "3861": "MMMDCCCLXI",
+ "3862": "MMMDCCCLXII",
+ "3863": "MMMDCCCLXIII",
+ "3864": "MMMDCCCLXIV",
+ "3865": "MMMDCCCLXV",
+ "3866": "MMMDCCCLXVI",
+ "3867": "MMMDCCCLXVII",
+ "3868": "MMMDCCCLXVIII",
+ "3869": "MMMDCCCLXIX",
+ "3870": "MMMDCCCLXX",
+ "3871": "MMMDCCCLXXI",
+ "3872": "MMMDCCCLXXII",
+ "3873": "MMMDCCCLXXIII",
+ "3874": "MMMDCCCLXXIV",
+ "3875": "MMMDCCCLXXV",
+ "3876": "MMMDCCCLXXVI",
+ "3877": "MMMDCCCLXXVII",
+ "3878": "MMMDCCCLXXVIII",
+ "3879": "MMMDCCCLXXIX",
+ "3880": "MMMDCCCLXXX",
+ "3881": "MMMDCCCLXXXI",
+ "3882": "MMMDCCCLXXXII",
+ "3883": "MMMDCCCLXXXIII",
+ "3884": "MMMDCCCLXXXIV",
+ "3885": "MMMDCCCLXXXV",
+ "3886": "MMMDCCCLXXXVI",
+ "3887": "MMMDCCCLXXXVII",
+ "3888": "MMMDCCCLXXXVIII",
+ "3889": "MMMDCCCLXXXIX",
+ "3890": "MMMDCCCXC",
+ "3891": "MMMDCCCXCI",
+ "3892": "MMMDCCCXCII",
+ "3893": "MMMDCCCXCIII",
+ "3894": "MMMDCCCXCIV",
+ "3895": "MMMDCCCXCV",
+ "3896": "MMMDCCCXCVI",
+ "3897": "MMMDCCCXCVII",
+ "3898": "MMMDCCCXCVIII",
+ "3899": "MMMDCCCXCIX",
+ "3900": "MMMCM",
+ "3901": "MMMCMI",
+ "3902": "MMMCMII",
+ "3903": "MMMCMIII",
+ "3904": "MMMCMIV",
+ "3905": "MMMCMV",
+ "3906": "MMMCMVI",
+ "3907": "MMMCMVII",
+ "3908": "MMMCMVIII",
+ "3909": "MMMCMIX",
+ "3910": "MMMCMX",
+ "3911": "MMMCMXI",
+ "3912": "MMMCMXII",
+ "3913": "MMMCMXIII",
+ "3914": "MMMCMXIV",
+ "3915": "MMMCMXV",
+ "3916": "MMMCMXVI",
+ "3917": "MMMCMXVII",
+ "3918": "MMMCMXVIII",
+ "3919": "MMMCMXIX",
+ "3920": "MMMCMXX",
+ "3921": "MMMCMXXI",
+ "3922": "MMMCMXXII",
+ "3923": "MMMCMXXIII",
+ "3924": "MMMCMXXIV",
+ "3925": "MMMCMXXV",
+ "3926": "MMMCMXXVI",
+ "3927": "MMMCMXXVII",
+ "3928": "MMMCMXXVIII",
+ "3929": "MMMCMXXIX",
+ "3930": "MMMCMXXX",
+ "3931": "MMMCMXXXI",
+ "3932": "MMMCMXXXII",
+ "3933": "MMMCMXXXIII",
+ "3934": "MMMCMXXXIV",
+ "3935": "MMMCMXXXV",
+ "3936": "MMMCMXXXVI",
+ "3937": "MMMCMXXXVII",
+ "3938": "MMMCMXXXVIII",
+ "3939": "MMMCMXXXIX",
+ "3940": "MMMCMXL",
+ "3941": "MMMCMXLI",
+ "3942": "MMMCMXLII",
+ "3943": "MMMCMXLIII",
+ "3944": "MMMCMXLIV",
+ "3945": "MMMCMXLV",
+ "3946": "MMMCMXLVI",
+ "3947": "MMMCMXLVII",
+ "3948": "MMMCMXLVIII",
+ "3949": "MMMCMXLIX",
+ "3950": "MMMCML",
+ "3951": "MMMCMLI",
+ "3952": "MMMCMLII",
+ "3953": "MMMCMLIII",
+ "3954": "MMMCMLIV",
+ "3955": "MMMCMLV",
+ "3956": "MMMCMLVI",
+ "3957": "MMMCMLVII",
+ "3958": "MMMCMLVIII",
+ "3959": "MMMCMLIX",
+ "3960": "MMMCMLX",
+ "3961": "MMMCMLXI",
+ "3962": "MMMCMLXII",
+ "3963": "MMMCMLXIII",
+ "3964": "MMMCMLXIV",
+ "3965": "MMMCMLXV",
+ "3966": "MMMCMLXVI",
+ "3967": "MMMCMLXVII",
+ "3968": "MMMCMLXVIII",
+ "3969": "MMMCMLXIX",
+ "3970": "MMMCMLXX",
+ "3971": "MMMCMLXXI",
+ "3972": "MMMCMLXXII",
+ "3973": "MMMCMLXXIII",
+ "3974": "MMMCMLXXIV",
+ "3975": "MMMCMLXXV",
+ "3976": "MMMCMLXXVI",
+ "3977": "MMMCMLXXVII",
+ "3978": "MMMCMLXXVIII",
+ "3979": "MMMCMLXXIX",
+ "3980": "MMMCMLXXX",
+ "3981": "MMMCMLXXXI",
+ "3982": "MMMCMLXXXII",
+ "3983": "MMMCMLXXXIII",
+ "3984": "MMMCMLXXXIV",
+ "3985": "MMMCMLXXXV",
+ "3986": "MMMCMLXXXVI",
+ "3987": "MMMCMLXXXVII",
+ "3988": "MMMCMLXXXVIII",
+ "3989": "MMMCMLXXXIX",
+ "3990": "MMMCMXC",
+ "3991": "MMMCMXCI",
+ "3992": "MMMCMXCII",
+ "3993": "MMMCMXCIII",
+ "3994": "MMMCMXCIV",
+ "3995": "MMMCMXCV",
+ "3996": "MMMCMXCVI",
+ "3997": "MMMCMXCVII",
+ "3998": "MMMCMXCVIII",
+ "3999": "MMMCMXCIX",
+ "4000": "MMMM",
+ "4001": "MMMMI",
+ "4002": "MMMMII",
+ "4003": "MMMMIII",
+ "4004": "MMMMIV",
+ "4005": "MMMMV",
+ "4006": "MMMMVI",
+ "4007": "MMMMVII",
+ "4008": "MMMMVIII",
+ "4009": "MMMMIX",
+ "4010": "MMMMX",
+ "4011": "MMMMXI",
+ "4012": "MMMMXII",
+ "4013": "MMMMXIII",
+ "4014": "MMMMXIV",
+ "4015": "MMMMXV",
+ "4016": "MMMMXVI",
+ "4017": "MMMMXVII",
+ "4018": "MMMMXVIII",
+ "4019": "MMMMXIX",
+ "4020": "MMMMXX",
+ "4021": "MMMMXXI",
+ "4022": "MMMMXXII",
+ "4023": "MMMMXXIII",
+ "4024": "MMMMXXIV",
+ "4025": "MMMMXXV",
+ "4026": "MMMMXXVI",
+ "4027": "MMMMXXVII",
+ "4028": "MMMMXXVIII",
+ "4029": "MMMMXXIX",
+ "4030": "MMMMXXX",
+ "4031": "MMMMXXXI",
+ "4032": "MMMMXXXII",
+ "4033": "MMMMXXXIII",
+ "4034": "MMMMXXXIV",
+ "4035": "MMMMXXXV",
+ "4036": "MMMMXXXVI",
+ "4037": "MMMMXXXVII",
+ "4038": "MMMMXXXVIII",
+ "4039": "MMMMXXXIX",
+ "4040": "MMMMXL",
+ "4041": "MMMMXLI",
+ "4042": "MMMMXLII",
+ "4043": "MMMMXLIII",
+ "4044": "MMMMXLIV",
+ "4045": "MMMMXLV",
+ "4046": "MMMMXLVI",
+ "4047": "MMMMXLVII",
+ "4048": "MMMMXLVIII",
+ "4049": "MMMMXLIX",
+ "4050": "MMMML",
+ "4051": "MMMMLI",
+ "4052": "MMMMLII",
+ "4053": "MMMMLIII",
+ "4054": "MMMMLIV",
+ "4055": "MMMMLV",
+ "4056": "MMMMLVI",
+ "4057": "MMMMLVII",
+ "4058": "MMMMLVIII",
+ "4059": "MMMMLIX",
+ "4060": "MMMMLX",
+ "4061": "MMMMLXI",
+ "4062": "MMMMLXII",
+ "4063": "MMMMLXIII",
+ "4064": "MMMMLXIV",
+ "4065": "MMMMLXV",
+ "4066": "MMMMLXVI",
+ "4067": "MMMMLXVII",
+ "4068": "MMMMLXVIII",
+ "4069": "MMMMLXIX",
+ "4070": "MMMMLXX",
+ "4071": "MMMMLXXI",
+ "4072": "MMMMLXXII",
+ "4073": "MMMMLXXIII",
+ "4074": "MMMMLXXIV",
+ "4075": "MMMMLXXV",
+ "4076": "MMMMLXXVI",
+ "4077": "MMMMLXXVII",
+ "4078": "MMMMLXXVIII",
+ "4079": "MMMMLXXIX",
+ "4080": "MMMMLXXX",
+ "4081": "MMMMLXXXI",
+ "4082": "MMMMLXXXII",
+ "4083": "MMMMLXXXIII",
+ "4084": "MMMMLXXXIV",
+ "4085": "MMMMLXXXV",
+ "4086": "MMMMLXXXVI",
+ "4087": "MMMMLXXXVII",
+ "4088": "MMMMLXXXVIII",
+ "4089": "MMMMLXXXIX",
+ "4090": "MMMMXC",
+ "4091": "MMMMXCI",
+ "4092": "MMMMXCII",
+ "4093": "MMMMXCIII",
+ "4094": "MMMMXCIV",
+ "4095": "MMMMXCV",
+ "4096": "MMMMXCVI",
+ "4097": "MMMMXCVII",
+ "4098": "MMMMXCVIII",
+ "4099": "MMMMXCIX",
+ "4100": "MMMMC",
+ "4101": "MMMMCI",
+ "4102": "MMMMCII",
+ "4103": "MMMMCIII",
+ "4104": "MMMMCIV",
+ "4105": "MMMMCV",
+ "4106": "MMMMCVI",
+ "4107": "MMMMCVII",
+ "4108": "MMMMCVIII",
+ "4109": "MMMMCIX",
+ "4110": "MMMMCX",
+ "4111": "MMMMCXI",
+ "4112": "MMMMCXII",
+ "4113": "MMMMCXIII",
+ "4114": "MMMMCXIV",
+ "4115": "MMMMCXV",
+ "4116": "MMMMCXVI",
+ "4117": "MMMMCXVII",
+ "4118": "MMMMCXVIII",
+ "4119": "MMMMCXIX",
+ "4120": "MMMMCXX",
+ "4121": "MMMMCXXI",
+ "4122": "MMMMCXXII",
+ "4123": "MMMMCXXIII",
+ "4124": "MMMMCXXIV",
+ "4125": "MMMMCXXV",
+ "4126": "MMMMCXXVI",
+ "4127": "MMMMCXXVII",
+ "4128": "MMMMCXXVIII",
+ "4129": "MMMMCXXIX",
+ "4130": "MMMMCXXX",
+ "4131": "MMMMCXXXI",
+ "4132": "MMMMCXXXII",
+ "4133": "MMMMCXXXIII",
+ "4134": "MMMMCXXXIV",
+ "4135": "MMMMCXXXV",
+ "4136": "MMMMCXXXVI",
+ "4137": "MMMMCXXXVII",
+ "4138": "MMMMCXXXVIII",
+ "4139": "MMMMCXXXIX",
+ "4140": "MMMMCXL",
+ "4141": "MMMMCXLI",
+ "4142": "MMMMCXLII",
+ "4143": "MMMMCXLIII",
+ "4144": "MMMMCXLIV",
+ "4145": "MMMMCXLV",
+ "4146": "MMMMCXLVI",
+ "4147": "MMMMCXLVII",
+ "4148": "MMMMCXLVIII",
+ "4149": "MMMMCXLIX",
+ "4150": "MMMMCL",
+ "4151": "MMMMCLI",
+ "4152": "MMMMCLII",
+ "4153": "MMMMCLIII",
+ "4154": "MMMMCLIV",
+ "4155": "MMMMCLV",
+ "4156": "MMMMCLVI",
+ "4157": "MMMMCLVII",
+ "4158": "MMMMCLVIII",
+ "4159": "MMMMCLIX",
+ "4160": "MMMMCLX",
+ "4161": "MMMMCLXI",
+ "4162": "MMMMCLXII",
+ "4163": "MMMMCLXIII",
+ "4164": "MMMMCLXIV",
+ "4165": "MMMMCLXV",
+ "4166": "MMMMCLXVI",
+ "4167": "MMMMCLXVII",
+ "4168": "MMMMCLXVIII",
+ "4169": "MMMMCLXIX",
+ "4170": "MMMMCLXX",
+ "4171": "MMMMCLXXI",
+ "4172": "MMMMCLXXII",
+ "4173": "MMMMCLXXIII",
+ "4174": "MMMMCLXXIV",
+ "4175": "MMMMCLXXV",
+ "4176": "MMMMCLXXVI",
+ "4177": "MMMMCLXXVII",
+ "4178": "MMMMCLXXVIII",
+ "4179": "MMMMCLXXIX",
+ "4180": "MMMMCLXXX",
+ "4181": "MMMMCLXXXI",
+ "4182": "MMMMCLXXXII",
+ "4183": "MMMMCLXXXIII",
+ "4184": "MMMMCLXXXIV",
+ "4185": "MMMMCLXXXV",
+ "4186": "MMMMCLXXXVI",
+ "4187": "MMMMCLXXXVII",
+ "4188": "MMMMCLXXXVIII",
+ "4189": "MMMMCLXXXIX",
+ "4190": "MMMMCXC",
+ "4191": "MMMMCXCI",
+ "4192": "MMMMCXCII",
+ "4193": "MMMMCXCIII",
+ "4194": "MMMMCXCIV",
+ "4195": "MMMMCXCV",
+ "4196": "MMMMCXCVI",
+ "4197": "MMMMCXCVII",
+ "4198": "MMMMCXCVIII",
+ "4199": "MMMMCXCIX",
+ "4200": "MMMMCC",
+ "4201": "MMMMCCI",
+ "4202": "MMMMCCII",
+ "4203": "MMMMCCIII",
+ "4204": "MMMMCCIV",
+ "4205": "MMMMCCV",
+ "4206": "MMMMCCVI",
+ "4207": "MMMMCCVII",
+ "4208": "MMMMCCVIII",
+ "4209": "MMMMCCIX",
+ "4210": "MMMMCCX",
+ "4211": "MMMMCCXI",
+ "4212": "MMMMCCXII",
+ "4213": "MMMMCCXIII",
+ "4214": "MMMMCCXIV",
+ "4215": "MMMMCCXV",
+ "4216": "MMMMCCXVI",
+ "4217": "MMMMCCXVII",
+ "4218": "MMMMCCXVIII",
+ "4219": "MMMMCCXIX",
+ "4220": "MMMMCCXX",
+ "4221": "MMMMCCXXI",
+ "4222": "MMMMCCXXII",
+ "4223": "MMMMCCXXIII",
+ "4224": "MMMMCCXXIV",
+ "4225": "MMMMCCXXV",
+ "4226": "MMMMCCXXVI",
+ "4227": "MMMMCCXXVII",
+ "4228": "MMMMCCXXVIII",
+ "4229": "MMMMCCXXIX",
+ "4230": "MMMMCCXXX",
+ "4231": "MMMMCCXXXI",
+ "4232": "MMMMCCXXXII",
+ "4233": "MMMMCCXXXIII",
+ "4234": "MMMMCCXXXIV",
+ "4235": "MMMMCCXXXV",
+ "4236": "MMMMCCXXXVI",
+ "4237": "MMMMCCXXXVII",
+ "4238": "MMMMCCXXXVIII",
+ "4239": "MMMMCCXXXIX",
+ "4240": "MMMMCCXL",
+ "4241": "MMMMCCXLI",
+ "4242": "MMMMCCXLII",
+ "4243": "MMMMCCXLIII",
+ "4244": "MMMMCCXLIV",
+ "4245": "MMMMCCXLV",
+ "4246": "MMMMCCXLVI",
+ "4247": "MMMMCCXLVII",
+ "4248": "MMMMCCXLVIII",
+ "4249": "MMMMCCXLIX",
+ "4250": "MMMMCCL",
+ "4251": "MMMMCCLI",
+ "4252": "MMMMCCLII",
+ "4253": "MMMMCCLIII",
+ "4254": "MMMMCCLIV",
+ "4255": "MMMMCCLV",
+ "4256": "MMMMCCLVI",
+ "4257": "MMMMCCLVII",
+ "4258": "MMMMCCLVIII",
+ "4259": "MMMMCCLIX",
+ "4260": "MMMMCCLX",
+ "4261": "MMMMCCLXI",
+ "4262": "MMMMCCLXII",
+ "4263": "MMMMCCLXIII",
+ "4264": "MMMMCCLXIV",
+ "4265": "MMMMCCLXV",
+ "4266": "MMMMCCLXVI",
+ "4267": "MMMMCCLXVII",
+ "4268": "MMMMCCLXVIII",
+ "4269": "MMMMCCLXIX",
+ "4270": "MMMMCCLXX",
+ "4271": "MMMMCCLXXI",
+ "4272": "MMMMCCLXXII",
+ "4273": "MMMMCCLXXIII",
+ "4274": "MMMMCCLXXIV",
+ "4275": "MMMMCCLXXV",
+ "4276": "MMMMCCLXXVI",
+ "4277": "MMMMCCLXXVII",
+ "4278": "MMMMCCLXXVIII",
+ "4279": "MMMMCCLXXIX",
+ "4280": "MMMMCCLXXX",
+ "4281": "MMMMCCLXXXI",
+ "4282": "MMMMCCLXXXII",
+ "4283": "MMMMCCLXXXIII",
+ "4284": "MMMMCCLXXXIV",
+ "4285": "MMMMCCLXXXV",
+ "4286": "MMMMCCLXXXVI",
+ "4287": "MMMMCCLXXXVII",
+ "4288": "MMMMCCLXXXVIII",
+ "4289": "MMMMCCLXXXIX",
+ "4290": "MMMMCCXC",
+ "4291": "MMMMCCXCI",
+ "4292": "MMMMCCXCII",
+ "4293": "MMMMCCXCIII",
+ "4294": "MMMMCCXCIV",
+ "4295": "MMMMCCXCV",
+ "4296": "MMMMCCXCVI",
+ "4297": "MMMMCCXCVII",
+ "4298": "MMMMCCXCVIII",
+ "4299": "MMMMCCXCIX",
+ "4300": "MMMMCCC",
+ "4301": "MMMMCCCI",
+ "4302": "MMMMCCCII",
+ "4303": "MMMMCCCIII",
+ "4304": "MMMMCCCIV",
+ "4305": "MMMMCCCV",
+ "4306": "MMMMCCCVI",
+ "4307": "MMMMCCCVII",
+ "4308": "MMMMCCCVIII",
+ "4309": "MMMMCCCIX",
+ "4310": "MMMMCCCX",
+ "4311": "MMMMCCCXI",
+ "4312": "MMMMCCCXII",
+ "4313": "MMMMCCCXIII",
+ "4314": "MMMMCCCXIV",
+ "4315": "MMMMCCCXV",
+ "4316": "MMMMCCCXVI",
+ "4317": "MMMMCCCXVII",
+ "4318": "MMMMCCCXVIII",
+ "4319": "MMMMCCCXIX",
+ "4320": "MMMMCCCXX",
+ "4321": "MMMMCCCXXI",
+ "4322": "MMMMCCCXXII",
+ "4323": "MMMMCCCXXIII",
+ "4324": "MMMMCCCXXIV",
+ "4325": "MMMMCCCXXV",
+ "4326": "MMMMCCCXXVI",
+ "4327": "MMMMCCCXXVII",
+ "4328": "MMMMCCCXXVIII",
+ "4329": "MMMMCCCXXIX",
+ "4330": "MMMMCCCXXX",
+ "4331": "MMMMCCCXXXI",
+ "4332": "MMMMCCCXXXII",
+ "4333": "MMMMCCCXXXIII",
+ "4334": "MMMMCCCXXXIV",
+ "4335": "MMMMCCCXXXV",
+ "4336": "MMMMCCCXXXVI",
+ "4337": "MMMMCCCXXXVII",
+ "4338": "MMMMCCCXXXVIII",
+ "4339": "MMMMCCCXXXIX",
+ "4340": "MMMMCCCXL",
+ "4341": "MMMMCCCXLI",
+ "4342": "MMMMCCCXLII",
+ "4343": "MMMMCCCXLIII",
+ "4344": "MMMMCCCXLIV",
+ "4345": "MMMMCCCXLV",
+ "4346": "MMMMCCCXLVI",
+ "4347": "MMMMCCCXLVII",
+ "4348": "MMMMCCCXLVIII",
+ "4349": "MMMMCCCXLIX",
+ "4350": "MMMMCCCL",
+ "4351": "MMMMCCCLI",
+ "4352": "MMMMCCCLII",
+ "4353": "MMMMCCCLIII",
+ "4354": "MMMMCCCLIV",
+ "4355": "MMMMCCCLV",
+ "4356": "MMMMCCCLVI",
+ "4357": "MMMMCCCLVII",
+ "4358": "MMMMCCCLVIII",
+ "4359": "MMMMCCCLIX",
+ "4360": "MMMMCCCLX",
+ "4361": "MMMMCCCLXI",
+ "4362": "MMMMCCCLXII",
+ "4363": "MMMMCCCLXIII",
+ "4364": "MMMMCCCLXIV",
+ "4365": "MMMMCCCLXV",
+ "4366": "MMMMCCCLXVI",
+ "4367": "MMMMCCCLXVII",
+ "4368": "MMMMCCCLXVIII",
+ "4369": "MMMMCCCLXIX",
+ "4370": "MMMMCCCLXX",
+ "4371": "MMMMCCCLXXI",
+ "4372": "MMMMCCCLXXII",
+ "4373": "MMMMCCCLXXIII",
+ "4374": "MMMMCCCLXXIV",
+ "4375": "MMMMCCCLXXV",
+ "4376": "MMMMCCCLXXVI",
+ "4377": "MMMMCCCLXXVII",
+ "4378": "MMMMCCCLXXVIII",
+ "4379": "MMMMCCCLXXIX",
+ "4380": "MMMMCCCLXXX",
+ "4381": "MMMMCCCLXXXI",
+ "4382": "MMMMCCCLXXXII",
+ "4383": "MMMMCCCLXXXIII",
+ "4384": "MMMMCCCLXXXIV",
+ "4385": "MMMMCCCLXXXV",
+ "4386": "MMMMCCCLXXXVI",
+ "4387": "MMMMCCCLXXXVII",
+ "4388": "MMMMCCCLXXXVIII",
+ "4389": "MMMMCCCLXXXIX",
+ "4390": "MMMMCCCXC",
+ "4391": "MMMMCCCXCI",
+ "4392": "MMMMCCCXCII",
+ "4393": "MMMMCCCXCIII",
+ "4394": "MMMMCCCXCIV",
+ "4395": "MMMMCCCXCV",
+ "4396": "MMMMCCCXCVI",
+ "4397": "MMMMCCCXCVII",
+ "4398": "MMMMCCCXCVIII",
+ "4399": "MMMMCCCXCIX",
+ "4400": "MMMMCD",
+ "4401": "MMMMCDI",
+ "4402": "MMMMCDII",
+ "4403": "MMMMCDIII",
+ "4404": "MMMMCDIV",
+ "4405": "MMMMCDV",
+ "4406": "MMMMCDVI",
+ "4407": "MMMMCDVII",
+ "4408": "MMMMCDVIII",
+ "4409": "MMMMCDIX",
+ "4410": "MMMMCDX",
+ "4411": "MMMMCDXI",
+ "4412": "MMMMCDXII",
+ "4413": "MMMMCDXIII",
+ "4414": "MMMMCDXIV",
+ "4415": "MMMMCDXV",
+ "4416": "MMMMCDXVI",
+ "4417": "MMMMCDXVII",
+ "4418": "MMMMCDXVIII",
+ "4419": "MMMMCDXIX",
+ "4420": "MMMMCDXX",
+ "4421": "MMMMCDXXI",
+ "4422": "MMMMCDXXII",
+ "4423": "MMMMCDXXIII",
+ "4424": "MMMMCDXXIV",
+ "4425": "MMMMCDXXV",
+ "4426": "MMMMCDXXVI",
+ "4427": "MMMMCDXXVII",
+ "4428": "MMMMCDXXVIII",
+ "4429": "MMMMCDXXIX",
+ "4430": "MMMMCDXXX",
+ "4431": "MMMMCDXXXI",
+ "4432": "MMMMCDXXXII",
+ "4433": "MMMMCDXXXIII",
+ "4434": "MMMMCDXXXIV",
+ "4435": "MMMMCDXXXV",
+ "4436": "MMMMCDXXXVI",
+ "4437": "MMMMCDXXXVII",
+ "4438": "MMMMCDXXXVIII",
+ "4439": "MMMMCDXXXIX",
+ "4440": "MMMMCDXL",
+ "4441": "MMMMCDXLI",
+ "4442": "MMMMCDXLII",
+ "4443": "MMMMCDXLIII",
+ "4444": "MMMMCDXLIV",
+ "4445": "MMMMCDXLV",
+ "4446": "MMMMCDXLVI",
+ "4447": "MMMMCDXLVII",
+ "4448": "MMMMCDXLVIII",
+ "4449": "MMMMCDXLIX",
+ "4450": "MMMMCDL",
+ "4451": "MMMMCDLI",
+ "4452": "MMMMCDLII",
+ "4453": "MMMMCDLIII",
+ "4454": "MMMMCDLIV",
+ "4455": "MMMMCDLV",
+ "4456": "MMMMCDLVI",
+ "4457": "MMMMCDLVII",
+ "4458": "MMMMCDLVIII",
+ "4459": "MMMMCDLIX",
+ "4460": "MMMMCDLX",
+ "4461": "MMMMCDLXI",
+ "4462": "MMMMCDLXII",
+ "4463": "MMMMCDLXIII",
+ "4464": "MMMMCDLXIV",
+ "4465": "MMMMCDLXV",
+ "4466": "MMMMCDLXVI",
+ "4467": "MMMMCDLXVII",
+ "4468": "MMMMCDLXVIII",
+ "4469": "MMMMCDLXIX",
+ "4470": "MMMMCDLXX",
+ "4471": "MMMMCDLXXI",
+ "4472": "MMMMCDLXXII",
+ "4473": "MMMMCDLXXIII",
+ "4474": "MMMMCDLXXIV",
+ "4475": "MMMMCDLXXV",
+ "4476": "MMMMCDLXXVI",
+ "4477": "MMMMCDLXXVII",
+ "4478": "MMMMCDLXXVIII",
+ "4479": "MMMMCDLXXIX",
+ "4480": "MMMMCDLXXX",
+ "4481": "MMMMCDLXXXI",
+ "4482": "MMMMCDLXXXII",
+ "4483": "MMMMCDLXXXIII",
+ "4484": "MMMMCDLXXXIV",
+ "4485": "MMMMCDLXXXV",
+ "4486": "MMMMCDLXXXVI",
+ "4487": "MMMMCDLXXXVII",
+ "4488": "MMMMCDLXXXVIII",
+ "4489": "MMMMCDLXXXIX",
+ "4490": "MMMMCDXC",
+ "4491": "MMMMCDXCI",
+ "4492": "MMMMCDXCII",
+ "4493": "MMMMCDXCIII",
+ "4494": "MMMMCDXCIV",
+ "4495": "MMMMCDXCV",
+ "4496": "MMMMCDXCVI",
+ "4497": "MMMMCDXCVII",
+ "4498": "MMMMCDXCVIII",
+ "4499": "MMMMCDXCIX",
+ "4500": "MMMMD"
+}
\ No newline at end of file
diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
index 2f50a8cf2..1a2bf3432 100644
--- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
+++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
@@ -297,6 +297,7 @@
+
@@ -385,6 +386,9 @@
+
+ Always
+
diff --git a/src/NzbDrone.Core.Test/ParserTests/RomanNumeralTests/RomanNumeralConversionFixture.cs b/src/NzbDrone.Core.Test/ParserTests/RomanNumeralTests/RomanNumeralConversionFixture.cs
new file mode 100644
index 000000000..348ec221f
--- /dev/null
+++ b/src/NzbDrone.Core.Test/ParserTests/RomanNumeralTests/RomanNumeralConversionFixture.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using Newtonsoft.Json;
+using NUnit.Framework;
+using NzbDrone.Core.Parser.RomanNumerals;
+
+namespace NzbDrone.Core.Test.ParserTests.RomanNumeralTests
+{
+ [TestFixture]
+ public class RomanNumeralConversionFixture
+ {
+ private const string TEST_VALUES = @"Files/ArabicRomanNumeralDictionary.JSON";
+
+
+ private Dictionary _arabicToRomanNumeralsMapping;
+
+ [OneTimeSetUp]
+ public void PopulateDictionaryWithProvenValues()
+ {
+ var pathToTestValues = Path.Combine(TestContext.CurrentContext.TestDirectory, Path.Combine(TEST_VALUES.Split('/')));
+ _arabicToRomanNumeralsMapping =
+ JsonConvert.DeserializeObject>(File.ReadAllText(pathToTestValues));
+ }
+
+
+ [Test(Description = "Converts the supported range [1-3999] of Arabic to Roman numerals.")]
+ [Order(0)]
+ public void should_convert_arabic_numeral_to_roman_numeral([Range(1,3999)] int arabicNumeral)
+ {
+ RomanNumeral romanNumeral = new RomanNumeral(arabicNumeral);
+
+ string expectedValue = _arabicToRomanNumeralsMapping[arabicNumeral];
+
+ Assert.AreEqual(romanNumeral.ToRomanNumeral(), expectedValue);
+ }
+
+ [Test]
+ [Order(1)]
+ public void should_convert_roman_numeral_to_arabic_numeral([Range(1, 3999)] int arabicNumeral)
+ {
+ RomanNumeral romanNumeral = new RomanNumeral(_arabicToRomanNumeralsMapping[arabicNumeral]);
+
+ int expectecdValue = arabicNumeral;
+
+ Assert.AreEqual(romanNumeral.ToInt(), expectecdValue);
+ }
+
+
+
+ }
+}
diff --git a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs
index 18d8f3513..a43b408b9 100644
--- a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs
+++ b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using NLog;
diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj
index f95c7572d..13c1bcb76 100644
--- a/src/NzbDrone.Core/NzbDrone.Core.csproj
+++ b/src/NzbDrone.Core/NzbDrone.Core.csproj
@@ -992,6 +992,12 @@
+
+
+
+
+
+
diff --git a/src/NzbDrone.Core/Parser/ParsingService.cs b/src/NzbDrone.Core/Parser/ParsingService.cs
index cd8086d1e..1090e9895 100644
--- a/src/NzbDrone.Core/Parser/ParsingService.cs
+++ b/src/NzbDrone.Core/Parser/ParsingService.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using NLog;
@@ -7,6 +8,7 @@ using NzbDrone.Core.DataAugmentation.Scene;
using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Parser.Model;
+using NzbDrone.Core.Parser.RomanNumerals;
using NzbDrone.Core.Tv;
namespace NzbDrone.Core.Parser
@@ -33,20 +35,7 @@ namespace NzbDrone.Core.Parser
private readonly ISceneMappingService _sceneMappingService;
private readonly IMovieService _movieService;
private readonly Logger _logger;
- private readonly Dictionary romanNumeralsMapper = new Dictionary
- {
- { "1", "I"},
- { "2", "II"},
- { "3", "III"},
- { "4", "IV"},
- { "5", "V"},
- { "6", "VI"},
- { "7", "VII"},
- { "8", "VII"},
- { "9", "IX"},
- { "10", "X"},
-
- }; //If a movie has more than 10 parts fuck 'em.
+ private static HashSet _arabicRomanNumeralMappings;
public ParsingService(IEpisodeService episodeService,
ISeriesService seriesService,
@@ -59,6 +48,11 @@ namespace NzbDrone.Core.Parser
_sceneMappingService = sceneMappingService;
_movieService = movieService;
_logger = logger;
+
+ if (_arabicRomanNumeralMappings == null)
+ {
+ _arabicRomanNumeralMappings = RomanNumeralParser.GetArabicRomanNumeralsMapping();
+ }
}
public LocalEpisode GetLocalEpisode(string filename, Series series)
@@ -354,91 +348,113 @@ namespace NzbDrone.Core.Parser
private Movie GetMovie(ParsedMovieInfo parsedMovieInfo, string imdbId, SearchCriteriaBase searchCriteria)
{
+ // TODO: Answer me this: Wouldn't it be smarter to start out looking for a movie if we have an ImDb Id?
+ if (!String.IsNullOrWhiteSpace(imdbId))
+ {
+ Movie movieByImDb;
+ if (TryGetMovieByImDbId(parsedMovieInfo, imdbId, out movieByImDb))
+ {
+ return movieByImDb;
+ }
+ }
+
if (searchCriteria != null)
{
- var possibleTitles = new List();
-
- Movie possibleMovie = null;
-
- possibleTitles.Add(searchCriteria.Movie.CleanTitle);
-
- foreach (string altTitle in searchCriteria.Movie.AlternativeTitles)
+ Movie movieBySearchCriteria;
+ if (TryGetMovieBySearchCriteria(parsedMovieInfo, searchCriteria, out movieBySearchCriteria))
{
- possibleTitles.Add(altTitle.CleanSeriesTitle());
+ return movieBySearchCriteria;
+ }
+ }
+ else
+ {
+ Movie movieByTitleAndOrYear;
+ if (TryGetMovieByTitleAndOrYear(parsedMovieInfo, out movieByTitleAndOrYear))
+ {
+ return movieByTitleAndOrYear;
+ }
+ }
+
+ // nothing found up to here => logging that and returning null
+ _logger.Debug($"No matching movie {parsedMovieInfo.MovieTitle}");
+ return null;
+ }
+
+ private bool TryGetMovieByImDbId(ParsedMovieInfo parsedMovieInfo, string imdbId, out Movie movie)
+ {
+ movie = _movieService.FindByImdbId(imdbId);
+ //Should fix practically all problems, where indexer is shite at adding correct imdbids to movies.
+ if (movie != null && parsedMovieInfo.Year > 1800 && parsedMovieInfo.Year != movie.Year)
+ {
+ movie = null;
+ return false;
+ }
+ return movie != null;
+ }
+
+ private bool TryGetMovieByTitleAndOrYear(ParsedMovieInfo parsedMovieInfo, out Movie movieByTitleAndOrYear)
+ {
+ Func isNotNull = movie => movie != null;
+ if (parsedMovieInfo.Year > 1800)
+ {
+ movieByTitleAndOrYear = _movieService.FindByTitle(parsedMovieInfo.MovieTitle, parsedMovieInfo.Year);
+ if (isNotNull(movieByTitleAndOrYear))
+ {
+ return true;
+ }
+ }
+ movieByTitleAndOrYear = _movieService.FindByTitle(parsedMovieInfo.MovieTitle);
+ if (isNotNull(movieByTitleAndOrYear))
+ {
+ return true;
+ }
+ movieByTitleAndOrYear = null;
+ return false;
+ }
+
+ private static bool TryGetMovieBySearchCriteria(ParsedMovieInfo parsedMovieInfo, SearchCriteriaBase searchCriteria, out Movie possibleMovie)
+ {
+ possibleMovie = null;
+ List possibleTitles = new List();
+
+ possibleTitles.Add(searchCriteria.Movie.CleanTitle);
+
+ foreach (string altTitle in searchCriteria.Movie.AlternativeTitles)
+ {
+ possibleTitles.Add(altTitle.CleanSeriesTitle());
+ }
+
+ foreach (string title in possibleTitles)
+ {
+ if (title == parsedMovieInfo.MovieTitle.CleanSeriesTitle())
+ {
+ possibleMovie = searchCriteria.Movie;
}
- foreach (string title in possibleTitles)
+ foreach (ArabicRomanNumeral numeralMapping in _arabicRomanNumeralMappings)
{
- if (title == parsedMovieInfo.MovieTitle.CleanSeriesTitle())
+ string arabicNumeral = numeralMapping.ArabicNumeralAsString;
+ string romanNumeral = numeralMapping.RomanNumeralLowerCase;
+
+ if (title.Replace(arabicNumeral, romanNumeral) == parsedMovieInfo.MovieTitle.CleanSeriesTitle())
{
possibleMovie = searchCriteria.Movie;
}
- foreach (KeyValuePair entry in romanNumeralsMapper)
+ if (title.Replace(romanNumeral, arabicNumeral) == parsedMovieInfo.MovieTitle.CleanSeriesTitle())
{
- string num = entry.Key;
- string roman = entry.Value.ToLower();
-
- if (title.Replace(num, roman) == parsedMovieInfo.MovieTitle.CleanSeriesTitle())
- {
- possibleMovie = searchCriteria.Movie;
- }
-
- if (title.Replace(roman, num) == parsedMovieInfo.MovieTitle.CleanSeriesTitle())
- {
- possibleMovie = searchCriteria.Movie;
- }
+ possibleMovie = searchCriteria.Movie;
}
+
}
-
- if (possibleMovie != null && (parsedMovieInfo.Year < 1800 || possibleMovie.Year == parsedMovieInfo.Year))
- {
- return possibleMovie;
- }
-
-
}
- Movie movie = null;
-
- if (searchCriteria == null)
+ if (possibleMovie != null && (parsedMovieInfo.Year < 1800 || possibleMovie.Year == parsedMovieInfo.Year))
{
- if (parsedMovieInfo.Year > 1800)
- {
- movie = _movieService.FindByTitle(parsedMovieInfo.MovieTitle, parsedMovieInfo.Year);
- }
- else
- {
- movie = _movieService.FindByTitle(parsedMovieInfo.MovieTitle);
- }
-
- if (movie == null)
- {
- movie = _movieService.FindByTitle(parsedMovieInfo.MovieTitle);
- }
- // return movie;
+ return true;
}
-
-
-
- if (movie == null && imdbId.IsNotNullOrWhiteSpace())
- {
- movie = _movieService.FindByImdbId(imdbId);
-
- //Should fix practically all problems, where indexer is shite at adding correct imdbids to movies.
- if (movie != null && parsedMovieInfo.Year > 1800 && parsedMovieInfo.Year != movie.Year)
- {
- movie = null;
- }
- }
-
- if (movie == null)
- {
- _logger.Debug($"No matching movie {parsedMovieInfo.MovieTitle}");
- return null;
- }
-
- return movie;
+ possibleMovie = null;
+ return false;
}
private Series GetSeries(ParsedEpisodeInfo parsedEpisodeInfo, int tvdbId, int tvRageId, SearchCriteriaBase searchCriteria)
diff --git a/src/NzbDrone.Core/Parser/RomanNumerals/ArabicRomanNumeral.cs b/src/NzbDrone.Core/Parser/RomanNumerals/ArabicRomanNumeral.cs
new file mode 100644
index 000000000..05f9f3fdd
--- /dev/null
+++ b/src/NzbDrone.Core/Parser/RomanNumerals/ArabicRomanNumeral.cs
@@ -0,0 +1,18 @@
+namespace NzbDrone.Core.Parser.RomanNumerals
+{
+ public class ArabicRomanNumeral
+ {
+ public ArabicRomanNumeral(int arabicNumeral, string arabicNumeralAsString, string romanNumeral)
+ {
+ ArabicNumeral = arabicNumeral;
+ ArabicNumeralAsString = arabicNumeralAsString;
+ RomanNumeral = romanNumeral;
+ }
+
+ public int ArabicNumeral { get; private set; }
+ public string ArabicNumeralAsString { get; private set; }
+ public string RomanNumeral { get; private set; }
+
+ public string RomanNumeralLowerCase => RomanNumeral.ToLower();
+ }
+}
diff --git a/src/NzbDrone.Core/Parser/RomanNumerals/IRomanNumeral.cs b/src/NzbDrone.Core/Parser/RomanNumerals/IRomanNumeral.cs
new file mode 100644
index 000000000..063d81bd3
--- /dev/null
+++ b/src/NzbDrone.Core/Parser/RomanNumerals/IRomanNumeral.cs
@@ -0,0 +1,12 @@
+namespace NzbDrone.Core.Parser.RomanNumerals
+{
+ public interface IRomanNumeral
+ {
+ int CompareTo(object obj);
+ int CompareTo(RomanNumeral other);
+ bool Equals(RomanNumeral other);
+ int ToInt();
+ long ToLong();
+ string ToString();
+ }
+}
\ No newline at end of file
diff --git a/src/NzbDrone.Core/Parser/RomanNumerals/RomanNumeral.cs b/src/NzbDrone.Core/Parser/RomanNumerals/RomanNumeral.cs
new file mode 100644
index 000000000..8a5fa6218
--- /dev/null
+++ b/src/NzbDrone.Core/Parser/RomanNumerals/RomanNumeral.cs
@@ -0,0 +1,357 @@
+using System;
+using System.Text;
+
+namespace NzbDrone.Core.Parser.RomanNumerals
+{
+ ///
+ /// Represents the numeric system used in ancient Rome, employing combinations of letters from the Latin alphabet to signify values.
+ /// Implementation adapted from: http://www.c-sharpcorner.com/Blogs/14255/converting-to-and-from-roman-numerals.aspx
+ ///
+ public class RomanNumeral : IComparable, IComparable, IEquatable, IRomanNumeral
+ {
+ #region Fields
+
+ ///
+ /// The numeric value of the roman numeral.
+ ///
+ private readonly int _value;
+
+ ///
+ /// Represents the smallest possible value of an . This field is constant.
+ ///
+ public static readonly int MinValue = 1;
+
+ ///
+ /// Represents the largest possible value of an . This field is constant.
+ ///
+ public static readonly int MaxValue = 3999;
+
+ private static readonly string[] Thousands = { "MMM", "MM", "M" };
+ private static readonly string[] Hundreds = { "CM", "DCCC", "DCC", "DC", "D", "CD", "CCC", "CC", "C" };
+ private static readonly string[] Tens = { "XC", "LXXX", "LXX", "LX", "L", "XL", "XXX", "XX", "X" };
+ private static readonly string[] Units = { "IX", "VIII", "VII", "VI", "V", "IV", "III", "II", "I" };
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public RomanNumeral()
+ {
+ _value = 1;
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The value.
+ public RomanNumeral(int value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The roman numeral.
+ public RomanNumeral(string romanNumeral)
+ {
+ int value;
+
+ if (TryParse(romanNumeral, out value))
+ {
+ _value = value;
+ }
+ }
+
+ #endregion
+
+ #region Methods
+
+ ///
+ /// Converts this instance to an integer.
+ ///
+ /// A numeric int representation.
+ public int ToInt()
+ {
+ return _value;
+ }
+
+ ///
+ /// Converts this instance to a long.
+ ///
+ /// A numeric long representation.
+ public long ToLong()
+ {
+ return _value;
+ }
+
+ ///
+ /// Converts the string representation of a number to its 32-bit signed integer equivalent. A return value indicates whether the conversion succeeded.
+ ///
+ /// A string containing a number to convert.
+ /// When this method returns, contains the 32-bit signed integer value equivalent of the number contained in ,
+ /// if the conversion succeeded, or zero if the conversion failed. The conversion fails if the parameter is null or
+ /// , is not of the correct format, or represents a number less than or greater than . This parameter is passed uninitialized. 1
+ ///
+ /// true if was converted successfully; otherwise, false.
+ ///
+ public static bool TryParse(string text, out int value)
+ {
+ value = 0;
+ if (string.IsNullOrEmpty(text)) return false;
+ text = text.ToUpper();
+ int len = 0;
+
+ for (int i = 0; i < 3; i++)
+ {
+ if (text.StartsWith(Thousands[i]))
+ {
+ value += 1000 * (3 - i);
+ len = Thousands[i].Length;
+ break;
+ }
+ }
+
+ if (len > 0)
+ {
+ text = text.Substring(len);
+ len = 0;
+ }
+
+ for (int i = 0; i < 9; i++)
+ {
+ if (text.StartsWith(Hundreds[i]))
+ {
+ value += 100 * (9 - i);
+ len = Hundreds[i].Length;
+ break;
+ }
+ }
+
+ if (len > 0)
+ {
+ text = text.Substring(len);
+ len = 0;
+ }
+
+ for (int i = 0; i < 9; i++)
+ {
+ if (text.StartsWith(Tens[i]))
+ {
+ value += 10 * (9 - i);
+ len = Tens[i].Length;
+ break;
+ }
+ }
+
+ if (len > 0)
+ {
+ text = text.Substring(len);
+ len = 0;
+ }
+
+ for (int i = 0; i < 9; i++)
+ {
+ if (text.StartsWith(Units[i]))
+ {
+ value += 9 - i;
+ len = Units[i].Length;
+ break;
+ }
+ }
+
+ if (text.Length > len)
+ {
+ value = 0;
+ return false;
+ }
+
+ return true;
+ }
+
+ ///
+ /// Converts a number into a roman numeral.
+ ///
+ /// The number.
+ ///
+ private static string ToRomanNumeral(int number)
+ {
+ RangeGuard(number);
+ int thousands, hundreds, tens, units;
+ thousands = number / 1000;
+ number %= 1000;
+ hundreds = number / 100;
+ number %= 100;
+ tens = number / 10;
+ units = number % 10;
+ var sb = new StringBuilder();
+ if (thousands > 0) sb.Append(Thousands[3 - thousands]);
+ if (hundreds > 0) sb.Append(Hundreds[9 - hundreds]);
+ if (tens > 0) sb.Append(Tens[9 - tens]);
+ if (units > 0) sb.Append(Units[9 - units]);
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the Roman numeral that was passed in as either an Arabic numeral
+ /// or a Roman numeral.
+ ///
+ /// A representing a Roman Numeral
+ public string ToRomanNumeral()
+ {
+ return ToString();
+ }
+
+ ///
+ /// Determines whether a given number is within the valid range of values for a roman numeral.
+ ///
+ /// The number to validate.
+ ///
+ /// $Roman numerals can not be larger than {MaxValue}.
+ /// or
+ /// $Roman numerals can not be smaller than {MinValue}.
+ ///
+ private static void RangeGuard(int number)
+ {
+ if (number > MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(number), number,
+ $"Roman numerals can not be larger than {MaxValue}.");
+ if (number < MinValue)
+ throw new ArgumentOutOfRangeException(nameof(number), number,
+ $"Roman numerals can not be smaller than {MinValue}.");
+ }
+
+ #endregion
+
+ #region Operators
+
+ ///
+ /// Implements the operator *.
+ ///
+ /// The first numeral.
+ /// The second numeral.
+ ///
+ /// The result of the operator.
+ ///
+ public static RomanNumeral operator *(RomanNumeral firstNumeral, RomanNumeral secondNumeral)
+ {
+ return new RomanNumeral(firstNumeral._value * secondNumeral._value);
+ }
+
+ ///
+ /// Implements the operator /.
+ ///
+ /// The numerator.
+ /// The denominator.
+ ///
+ /// The result of the operator.
+ ///
+ public static RomanNumeral operator /(RomanNumeral numerator, RomanNumeral denominator)
+ {
+ return new RomanNumeral(numerator._value / denominator._value);
+ }
+
+ ///
+ /// Implements the operator +.
+ ///
+ /// The first numeral.
+ /// The second numeral.
+ ///
+ /// The result of the operator.
+ ///
+ public static RomanNumeral operator +(RomanNumeral firstNumeral, RomanNumeral secondNumeral)
+ {
+ return new RomanNumeral(firstNumeral._value + secondNumeral._value);
+ }
+
+ ///
+ /// Implements the operator -.
+ ///
+ /// The first numeral.
+ /// The second numeral.
+ ///
+ /// The result of the operator.
+ ///
+ public static RomanNumeral operator -(RomanNumeral firstNumeral, RomanNumeral secondNumeral)
+ {
+ return new RomanNumeral(firstNumeral._value - secondNumeral._value);
+ }
+
+ #endregion
+
+ #region Interface Implementations
+
+ ///
+ ///
+ /// The object.
+ ///
+ public int CompareTo(object obj)
+ {
+ if (obj is sbyte
+ || obj is byte
+ || obj is short
+ || obj is ushort
+ || obj is int
+ || obj is uint
+ || obj is long
+ || obj is ulong
+ || obj is float
+ || obj is double
+ || obj is decimal)
+ {
+ var value = (int)obj;
+ return _value.CompareTo(value);
+ }
+ else if (obj is string)
+ {
+ int value;
+ var numeral = obj as string;
+
+ if (TryParse(numeral, out value))
+ {
+ return _value.CompareTo(value);
+ }
+ }
+
+ return 0;
+ }
+
+ ///
+ /// Compares to.
+ ///
+ /// The other.
+ ///
+ public int CompareTo(RomanNumeral other)
+ {
+ return _value.CompareTo(other._value);
+ }
+
+ ///
+ /// Equalses the specified other.
+ ///
+ /// The other.
+ ///
+ public bool Equals(RomanNumeral other)
+ {
+ return _value == other._value;
+ }
+
+ ///
+ /// Returns the Roman Numeral which was passed to this Instance
+ /// during creation.
+ ///
+ ///
+ /// A that represents a Roman Numeral.
+ ///
+ public override string ToString()
+ {
+ return ToRomanNumeral(_value);
+ }
+
+ #endregion
+ }
+
+}
diff --git a/src/NzbDrone.Core/Parser/RomanNumerals/RomanNumeralParser.cs b/src/NzbDrone.Core/Parser/RomanNumerals/RomanNumeralParser.cs
new file mode 100644
index 000000000..1989116b4
--- /dev/null
+++ b/src/NzbDrone.Core/Parser/RomanNumerals/RomanNumeralParser.cs
@@ -0,0 +1,146 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using NzbDrone.Common.Extensions;
+
+namespace NzbDrone.Core.Parser.RomanNumerals
+{
+
+
+ public static class RomanNumeralParser
+ {
+ private const int DICTIONARY_PREPOPULATION_SIZE = 20;
+
+ private static HashSet _arabicRomanNumeralsMapping;
+
+ private static Dictionary _simpleArabicNumeralMappings;
+
+ static RomanNumeralParser()
+ {
+ PopluateDictionariesReasonablyLarge();
+ }
+
+ private static void PopluateDictionariesReasonablyLarge()
+ {
+ if(_simpleArabicNumeralMappings != null || _arabicRomanNumeralsMapping != null)
+ {
+ return;
+ }
+ _arabicRomanNumeralsMapping = new HashSet();
+ _simpleArabicNumeralMappings = new Dictionary();
+ foreach (int arabicNumeral in Enumerable.Range(1,DICTIONARY_PREPOPULATION_SIZE +1))
+ {
+ string romanNumeralAsString, arabicNumeralAsString;
+ GenerateRomanNumerals(arabicNumeral, out romanNumeralAsString, out arabicNumeralAsString);
+ ArabicRomanNumeral arm = new ArabicRomanNumeral(arabicNumeral, arabicNumeralAsString, romanNumeralAsString);
+ _arabicRomanNumeralsMapping.Add(arm);
+
+ SimpleArabicNumeral sam = new SimpleArabicNumeral(arabicNumeral);
+ SimpleRomanNumeral srm = new SimpleRomanNumeral(romanNumeralAsString);
+ _simpleArabicNumeralMappings.Add(sam, srm);
+ }
+ }
+
+ private static void GenerateRomanNumerals(int arabicNumeral, out string romanNumeral, out string arabicNumeralAsString)
+ {
+ RomanNumeral romanNumeralObject = new RomanNumeral(arabicNumeral);
+ romanNumeral = romanNumeralObject.ToRomanNumeral();
+ arabicNumeralAsString = Convert.ToString(arabicNumeral);
+ }
+
+ private static HashSet GenerateAdditionalMappings(int offset, int length)
+ {
+ HashSet additionalArabicRomanNumerals = new HashSet();
+ foreach (int arabicNumeral in Enumerable.Range(offset, length))
+ {
+ string romanNumeral;
+ string arabicNumeralAsString;
+ GenerateRomanNumerals(arabicNumeral, out romanNumeral, out arabicNumeralAsString);
+ ArabicRomanNumeral arm = new ArabicRomanNumeral(arabicNumeral, arabicNumeralAsString, romanNumeral);
+ additionalArabicRomanNumerals.Add(arm);
+ }
+ return additionalArabicRomanNumerals;
+ }
+
+ public static HashSet GetArabicRomanNumeralsMapping(int upToArabicNumber = DICTIONARY_PREPOPULATION_SIZE)
+ {
+ if (upToArabicNumber == DICTIONARY_PREPOPULATION_SIZE)
+ {
+ return new HashSet(_arabicRomanNumeralsMapping.Take(upToArabicNumber));
+ }
+
+ if (upToArabicNumber < DICTIONARY_PREPOPULATION_SIZE)
+ {
+ return
+ (HashSet)
+ new HashSet(_arabicRomanNumeralsMapping).Take(upToArabicNumber);
+ }
+ if (upToArabicNumber >= DICTIONARY_PREPOPULATION_SIZE)
+ {
+ if (_arabicRomanNumeralsMapping.Count >= upToArabicNumber)
+ {
+ return new HashSet(_arabicRomanNumeralsMapping.Take(upToArabicNumber));
+ }
+ HashSet largerMapping = GenerateAdditionalMappings(DICTIONARY_PREPOPULATION_SIZE + 1, upToArabicNumber);
+ _arabicRomanNumeralsMapping = (HashSet)_arabicRomanNumeralsMapping.Union(largerMapping);
+ }
+ return _arabicRomanNumeralsMapping;
+ }
+
+ public static Dictionary GetArabicRomanNumeralAsDictionary(
+ int upToArabicNumer = DICTIONARY_PREPOPULATION_SIZE)
+ {
+ Func
+ , int,
+ Dictionary> take =
+ (mapping, amountToTake) =>
+ new Dictionary(
+ mapping.Take(amountToTake).ToDictionary(key => key.Key, value => value.Value));
+ if (upToArabicNumer == DICTIONARY_PREPOPULATION_SIZE)
+ {
+ return take(_simpleArabicNumeralMappings, upToArabicNumer);
+ }
+ if (upToArabicNumer > DICTIONARY_PREPOPULATION_SIZE)
+ {
+ if (_simpleArabicNumeralMappings.Count >= upToArabicNumer)
+ {
+ return take(_simpleArabicNumeralMappings, upToArabicNumer);
+ }
+ var moreSimpleNumerals = GenerateAdditionalSimpleNumerals(DICTIONARY_PREPOPULATION_SIZE, upToArabicNumer);
+ _simpleArabicNumeralMappings =
+ (Dictionary)
+ _simpleArabicNumeralMappings.Union(moreSimpleNumerals);
+ return take(_simpleArabicNumeralMappings, _arabicRomanNumeralsMapping.Count);
+ }
+ if (upToArabicNumer < DICTIONARY_PREPOPULATION_SIZE)
+ {
+ return take(_simpleArabicNumeralMappings, upToArabicNumer);
+ }
+ return _simpleArabicNumeralMappings;
+ }
+
+
+ private static Dictionary GenerateAdditionalSimpleNumerals(int offset,
+ int length)
+ {
+ Dictionary moreNumerals = new Dictionary();
+ foreach (int arabicNumeral in Enumerable.Range(offset, length))
+ {
+ string romanNumeral;
+ string arabicNumeralAsString;
+ GenerateRomanNumerals(arabicNumeral, out romanNumeral, out arabicNumeralAsString);
+ SimpleArabicNumeral san = new SimpleArabicNumeral(arabicNumeral);
+ SimpleRomanNumeral srn = new SimpleRomanNumeral(romanNumeral);
+ moreNumerals.Add(san,srn);
+ }
+ return moreNumerals;
+ }
+
+
+
+
+
+
+
+ }
+}
diff --git a/src/NzbDrone.Core/Parser/RomanNumerals/SimpleArabicNumeral.cs b/src/NzbDrone.Core/Parser/RomanNumerals/SimpleArabicNumeral.cs
new file mode 100644
index 000000000..6caaa85ee
--- /dev/null
+++ b/src/NzbDrone.Core/Parser/RomanNumerals/SimpleArabicNumeral.cs
@@ -0,0 +1,15 @@
+using System;
+
+namespace NzbDrone.Core.Parser.RomanNumerals
+{
+ public class SimpleArabicNumeral
+ {
+ public SimpleArabicNumeral(int numeral)
+ {
+ Numeral = numeral;
+ }
+
+ public int Numeral { get; private set; }
+ public string NumeralAsString => Convert.ToString(Numeral);
+ }
+}
diff --git a/src/NzbDrone.Core/Parser/RomanNumerals/SimpleRomanNumeral.cs b/src/NzbDrone.Core/Parser/RomanNumerals/SimpleRomanNumeral.cs
new file mode 100644
index 000000000..e774dabfe
--- /dev/null
+++ b/src/NzbDrone.Core/Parser/RomanNumerals/SimpleRomanNumeral.cs
@@ -0,0 +1,13 @@
+namespace NzbDrone.Core.Parser.RomanNumerals
+{
+ public class SimpleRomanNumeral
+ {
+ public SimpleRomanNumeral(string numeral)
+ {
+ Numeral = numeral;
+ }
+
+ public string Numeral { get; private set; }
+ public string NumeralLowerCase => Numeral.ToLower();
+ }
+}
diff --git a/src/NzbDrone.Core/Tv/MovieRepository.cs b/src/NzbDrone.Core/Tv/MovieRepository.cs
index f970f22d9..aa500de88 100644
--- a/src/NzbDrone.Core/Tv/MovieRepository.cs
+++ b/src/NzbDrone.Core/Tv/MovieRepository.cs
@@ -6,7 +6,9 @@ using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Datastore.Extensions;
using Marr.Data.QGen;
using NzbDrone.Core.MediaFiles;
+using NzbDrone.Core.Parser.RomanNumerals;
using NzbDrone.Core.Qualities;
+using CoreParser = NzbDrone.Core.Parser.Parser;
namespace NzbDrone.Core.Tv
{
@@ -28,21 +30,6 @@ namespace NzbDrone.Core.Tv
public class MovieRepository : BasicRepository, IMovieRepository
{
- private readonly Dictionary romanNumeralsMapper = new Dictionary
- {
- { "1", "I"},
- { "2", "II"},
- { "3", "III"},
- { "4", "IV"},
- { "5", "V"},
- { "6", "VI"},
- { "7", "VII"},
- { "8", "VII"},
- { "9", "IX"},
- { "10", "X"},
-
- }; //If a movie has more than 10 parts fuck 'em.
-
protected IMainDatabase _database;
public MovieRepository(IMainDatabase database, IEventAggregator eventAggregator)
@@ -58,94 +45,12 @@ namespace NzbDrone.Core.Tv
public Movie FindByTitle(string cleanTitle)
{
- cleanTitle = cleanTitle.ToLowerInvariant();
-
- var cleanRoman = cleanTitle;
-
- var cleanNum = cleanTitle;
-
- foreach (KeyValuePair entry in romanNumeralsMapper)
- {
- string num = entry.Key;
- string roman = entry.Value.ToLower();
-
- cleanRoman = cleanRoman.Replace(num, roman);
-
- cleanNum = cleanNum.Replace(roman, num);
- }
-
- var result = Query.Where(s => s.CleanTitle == cleanTitle).FirstOrDefault();
-
- if (result == null)
- {
- result = Query.Where(s => s.CleanTitle == cleanNum).OrWhere(s => s.CleanTitle == cleanRoman).FirstOrDefault();
-
- if (result == null)
- {
- var movies = this.All();
-
- result = movies.Where(m => m.AlternativeTitles.Any(t => Parser.Parser.CleanSeriesTitle(t.ToLower()) == cleanTitle ||
- Parser.Parser.CleanSeriesTitle(t.ToLower()) == cleanRoman ||
- Parser.Parser.CleanSeriesTitle(t.ToLower()) == cleanNum)).FirstOrDefault();
-
- return result;
- }
- else
- {
- return result;
- }
-
- }
- else
- {
- return result;
- }
+ return FindByTitle(cleanTitle, null);
}
public Movie FindByTitle(string cleanTitle, int year)
{
- cleanTitle = cleanTitle.ToLowerInvariant();
-
- var cleanRoman = cleanTitle;
-
- var cleanNum = cleanTitle;
-
- foreach (KeyValuePair entry in romanNumeralsMapper)
- {
- string num = entry.Key;
- string roman = entry.Value.ToLower();
-
- cleanRoman = cleanRoman.Replace(num, roman);
-
- cleanNum = cleanNum.Replace(roman, num);
- }
-
- var results = Query.Where(s => s.CleanTitle == cleanTitle);
-
- if (results == null)
- {
- results = Query.Where(s => s.CleanTitle == cleanNum).OrWhere(s => s.CleanTitle == cleanRoman);
-
- if (results == null)
- {
- var movies = this.All();
-
- var listResults = movies.Where(m => m.AlternativeTitles.Any(t => Parser.Parser.CleanSeriesTitle(t.ToLower()) == cleanTitle ||
- Parser.Parser.CleanSeriesTitle(t.ToLower()) == cleanRoman ||
- Parser.Parser.CleanSeriesTitle(t.ToLower()) == cleanNum));
-
- return listResults.Where(m => m.Year == year).FirstOrDefault();
- }
- else
- {
- return results.Where(m => m.Year == year).FirstOrDefault();
- }
-
- }
- else
- {
- return results.Where(m => m.Year == year).FirstOrDefault();
- }
+ return FindByTitle(cleanTitle, year as int?);
}
public Movie FindByImdbId(string imdbid)
@@ -318,6 +223,46 @@ namespace NzbDrone.Core.Tv
return string.Format("({0})", string.Join(" OR ", clauses));
}
+ private Movie FindByTitle(string cleanTitle, int? year)
+ {
+ cleanTitle = cleanTitle.ToLowerInvariant();
+ string cleanTitleWithRomanNumbers = cleanTitle;
+ string cleanTitleWithArabicNumbers = cleanTitle;
+
+
+ foreach (ArabicRomanNumeral arabicRomanNumeral in RomanNumeralParser.GetArabicRomanNumeralsMapping())
+ {
+ string arabicNumber = arabicRomanNumeral.ArabicNumeralAsString;
+ string romanNumber = arabicRomanNumeral.RomanNumeral;
+ cleanTitleWithRomanNumbers = cleanTitleWithRomanNumbers.Replace(arabicNumber, romanNumber);
+ cleanTitleWithArabicNumbers = cleanTitleWithArabicNumbers.Replace(romanNumber, arabicNumber);
+ }
+
+ IEnumerable results = Query.Where(s => s.CleanTitle == cleanTitle);
+
+ if (results == null)
+ {
+ results = Query.Where(movie => movie.CleanTitle == cleanTitleWithArabicNumbers) ??
+ Query.Where(movie => movie.CleanTitle == cleanTitleWithRomanNumbers);
+
+ if (results == null)
+ {
+ IEnumerable movies = All();
+ Func titleCleaner = title => CoreParser.CleanSeriesTitle(title.ToLower());
+ Func, string, bool> altTitleComparer =
+ (alternativeTitles, atitle) =>
+ alternativeTitles.Any(altTitle => altTitle == titleCleaner(atitle));
+
+ results = movies.Where(m => altTitleComparer(m.AlternativeTitles, cleanTitle) ||
+ altTitleComparer(m.AlternativeTitles, cleanTitleWithRomanNumbers) ||
+ altTitleComparer(m.AlternativeTitles, cleanTitleWithArabicNumbers));
+ }
+ }
+ return year.HasValue
+ ? results?.FirstOrDefault(movie => movie.Year == year.Value)
+ : results?.FirstOrDefault();
+ }
+
public Movie FindByTmdbId(int tmdbid)
{
return Query.Where(m => m.TmdbId == tmdbid).FirstOrDefault();