Модуль:Версія протоколу/Версії

Матеріал з Minecraft Wiki
Версія від 23:00, 12 березня 2025, створена MetroKopUA (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку
local all = {} -- Table with version name as key and version info as value

-- These are ordered
local java = {}
local java_old = {}
local java_af = {}
local pocket = {}
local education = {}

-- References to those ordered lists
local groups = {
    {
        ['name'] = 'Java Edition',
        ['link'] = 'Java Edition',
        ['values'] = java,
        ['optional'] = {
			['data'] = true,
			['resPack'] = true,
			['datPack'] = true
		}
    },
    {
        ['name'] = 'Java Edition (pre-netty rewrite)',
        ['link'] = 'Java Edition',
        ['desc'] = 'Номери версій протоколу до скидання 13w41a через переписування Netty',
        ['values'] = java_old,
        ['optional'] = {
			['data'] = false,
			['resPack'] = true,
			['datPack'] = false
		}
    },
    {
        ['name'] = 'Версії першоквітневих жартів',
        ['link'] = ':Категорія:Першоквітневі жарти\'',
        ['desc'] = 'Зміни, внесені в першоквітневих версіях, які не були збережені в більш пізніх версіях.',
        ['values'] = java_af,
        ['optional'] = {
			['data'] = true,
			['resPack'] = true,
			['datPack'] = true
		}
    },
        {
        ['name'] = 'Bedrock Edition',
        ['link'] = 'Історія версій (Bedrock Edition)',
        ['values'] = pocket,
        ['optional'] = {
			['data'] = false,
			['resPack'] = false,
			['datPack'] = false
		}
    },
    {
        ['name'] = 'Education Edition',
        ['link'] = 'Історія версій (Education Edition)',
        ['values'] = education,
        ['optional'] = {
			['data'] = false,
			['resPack'] = false,
			['datPack'] = false
		}
    }
}

-- Intended for translators
unknown = 'Невідомо'
none = 'Н/Д'
pending = '—'

-- Define info for a single version, adding it into the appropriate lists
-- extra is used for additional, rarer options so that they can be explicitly specified
function ver( group, name, protocol, data, res, dat, extra )
    if all[name] ~= nil
        then error("Attempted to add version " .. name .. " but it already exists")
    end

    local info = { }
    info.name = name
    info.protocol = protocol
    info.data = data
    info.res = res
	info.dat = dat

    if extra then
		-- Forces a separation even if the protocol versions match
		info.forceSplitProtocol = extra.forceSplitProtocol
	end

    all[name] = info
    table.insert(group, info)
end

function verJE( group, name, protocol, data, res, dat, extra )
	ver(group, name .. ' (Java Edition)', protocol, data, res, dat, extra )
end

function verBE( group, name, protocol, data, extra )
	ver(group, name .. ' (Bedrock Edition)', protocol, data, nil, nil, extra )
end

function verPE( group, name, protocol, data, extra )
	ver(group, name .. ' (Pocket Edition)', protocol, data, nil, nil, extra )
end

function verME( group, name, protocol, data, extra )
	ver(group, name .. ' (Minecraft Education)', protocol, data, nil, nil, extra )
end

function verEE( group, name, protocol, data, extra )
	ver(group, name .. ' (Education Edition)', protocol, data, nil, nil, extra )
end

-- Separate major versions (e.g. 1.12 & 1.13) with an extra line.
-- Minor versions, like 1.12, 1.12.1, and 1.12.2 don't need to be separated.
-- April Fools' versions must be put under their own section at the bottom of the page

-- Source: http://wiki.vg/Protocol_version_numbers (licensed under CC-BY-SA 3.0)

-- JAVA EDITION
-- FULL RELEASE
-- 1.21
verJE( java, '1.21.5 Pre-release 2', 0x400000F0, 4321, 55, 71 )
verJE( java, '1.21.5 Pre-Release 1', 0x400000EF, 4320, 55, 70 )
verJE( java, '25w10a', 0x400000EE, 4319, 54, 70 )
verJE( java, '25w09b', 0x400000ED, 4318, 53, 69 )
verJE( java, '25w09a', 0x400000EC, 4317, 53, 69 )
verJE( java, '25w08a', 0x400000EB, 4316, 53, 68 )
verJE( java, '25w07a', 0x400000EA, 4315, 52, 67 )
verJE( java, '25w06a', 0x400000E9, 4313, 51, 66 )
verJE( java, '25w05a', 0x400000E8, 4310, 50, 65 )
verJE( java, '25w04a', 0x400000E7, 4308, 49, 64 )
verJE( java, '25w03a', 0x400000E6, 4304, 48, 63 )
verJE( java, '25w02a', 0x400000E5, 4298, 47, 62 )
verJE( java, '1.21.4', 769, 4189, 46, 61 )
verJE( java, '1.21.4 Release Candidate 3', 0x400000E4, 4188, 46, 61 )
verJE( java, '1.21.4 Release Candidate 2', 0x400000E3, 4186, 46, 61 )
verJE( java, '1.21.4 Release Candidate 1', 0x400000E2, 4184, 46, 61 )
verJE( java, '1.21.4 Pre-Release 3', 0x400000E1, 4183, 46, 61 )
verJE( java, '1.21.4 Pre-Release 2', 0x400000E0, 4182, 46, 61 )
verJE( java, '1.21.4 Pre-Release 1', 0x400000DF, 4179, 46, 60 )
verJE( java, '24w46a', 0x400000DE, 4178, 45, 60 )
verJE( java, '24w45a', 0x400000DD, 4177, 44, 59 )
verJE( java, '24w44a', 0x400000DC, 4174, 43, 58 )
verJE( java, '1.21.3', 768, 4082, 42, 57 )
verJE( java, '1.21.2', 768, 4080, 42, 57 )
verJE( java, '1.21.2 Release Candidate 2', 0x400000DB, 4079, 42, 57 )
verJE( java, '1.21.2 Release Candidate 1', 0x400000DA, 4078, 42, 57 )
verJE( java, '1.21.2 Pre-Release 5', 0x400000D9, 4077, 42, 57 )
verJE( java, '1.21.2 Pre-Release 4', 0x400000D8, 4076, 42, 57 )
verJE( java, '1.21.2 Pre-Release 3', 0x400000D7, 4075, 42, 57 )
verJE( java, '1.21.2 Pre-Release 2', 0x400000D6, 4074, 41, 57 )
verJE( java, '1.21.2 Pre-Release 1', 0x400000D5, 4073, 41, 57 )
verJE( java, '24w40a', 0x400000D4, 4072, 40, 56 )
verJE( java, '24w39a', 0x400000D3, 4069, 39, 55 )
verJE( java, '24w38a', 0x400000D2, 4066, 39, 54 )
verJE( java, '24w37a', 0x400000D1, 4065, 38, 53 )
verJE( java, '24w36a', 0x400000D0, 4063, 37, 52 )
verJE( java, '24w35a', 0x400000CF, 4062, 36, 51 )
verJE( java, '24w34a', 0x400000CE, 4060, 36, 50 )
verJE( java, '24w33a', 0x400000CD, 4058, 35, 49 )
verJE( java, '1.21.1', 767, 3955, 34, 48 )
verJE( java, '1.21.1 Release Candidate 1', 0x400000CC, 3954, 34, 48 )
verJE( java, '1.21', 767, 3953, 34, 48 )
verJE( java, '1.21 Release Candidate 1', 0x400000CB, 3952, 34, 48 )
verJE( java, '1.21 Pre-Release 4', 0x400000CA, 3951, 34, 48 )
verJE( java, '1.21 Pre-Release 3', 0x400000C9, 3950, 34, 48 )
verJE( java, '1.21 Pre-Release 2', 0x400000C8, 3949, 34, 47 )
verJE( java, '1.21 Pre-Release 1', 0x400000C7, 3948, 34, 46 )
verJE( java, '24w21b', 0x400000C6, 3947, 34, 45 )
verJE( java, '24w21a', 0x400000C5, 3946, 34, 45 )
verJE( java, '24w20a', 0x400000C4, 3944, 33, 44 )
verJE( java, '24w19b', 0x400000C3, 3942, 33, 43 )
verJE( java, '24w19a', 0x400000C2, 3941, 33, 43 )
verJE( java, '24w18a', 0x400000C1, 3940, 33, 42 )

-- 1.20
verJE( java, '1.20.6', 766, 3839, 32, 41 )
verJE( java, '1.20.6 Release Candidate 1', 0x400000C0, 3838, 32, 41 )
verJE( java, '1.20.5', 766, 3837, 32, 41 )
verJE( java, '1.20.5 Release Candidate 3', 0x400000BF, 3836, 32, 41 )
verJE( java, '1.20.5 Release Candidate 2', 0x400000BE, 3835, 32, 41 )
verJE( java, '1.20.5 Release Candidate 1', 0x400000BD, 3834, 32, 41 )
verJE( java, '1.20.5 Pre-Release 4', 0x400000BC, 3832, 32, 41 )
verJE( java, '1.20.5 Pre-Release 3', 0x400000BB, 3831, 31, 41 )
verJE( java, '1.20.5 Pre-Release 2', 0x400000BA, 3830, 31, 40 )
verJE( java, '1.20.5 Pre-Release 1', 0x400000B9, 3829, 31, 39 )
verJE( java, '24w14a', 0x400000B8, 3827, 31, 38 )
verJE( java, '24w13a', 0x400000B6, 3826, 31, 37 )
verJE( java, '24w12a', 0x400000B5, 3824, 30, 36 )
verJE( java, '24w11a', 0x400000B4, 3823, 29, 35 )
verJE( java, '24w10a', 0x400000B3, 3821, 28, 34 )
verJE( java, '24w09a', 0x400000B2, 3819, 28, 33 )
verJE( java, '24w07a', 0x400000B1, 3817, 26, 32 )
verJE( java, '24w06a', 0x400000B0, 3815, 26, 31 )
verJE( java, '24w05b', 0x400000AF, 3811, 25, 30 )
verJE( java, '24w05a', 0x400000AD, 3809, 25, 30 )
verJE( java, '24w04a', 0x400000AD, 3806, 24, 29 )
verJE( java, '24w03b', 0x400000AC, 3805, 24, 28 )
verJE( java, '24w03a', 0x400000AB, 3804, 24, 28 )
verJE( java, '23w51b', 0x400000AA, 3802, 22, 27 )
verJE( java, '23w51a', 0x400000A9, 3801, 22, 27 )
verJE( java, '1.20.4', 765, 3700, 22, 26 )
verJE( java, '1.20.4 Release Candidate 1', 0x400000A9, 3699, 22, 26 )
verJE( java, '1.20.3', 765, 3698, 22, 26 )
verJE( java, '1.20.3 Release Candidate 1', 0x400000A8, 3697, 22, 26 )
verJE( java, '1.20.3 Pre-Release 4', 0x400000A7, 3696, 22, 26 )
verJE( java, '1.20.3 Pre-Release 3', 0x400000A6, 3695, 22, 26 )
verJE( java, '1.20.3 Pre-Release 2', 0x400000A5, 3694, 22, 26 )
verJE( java, '1.20.3 Pre-Release 1', 0x400000A4, 3693, 22, 26 )
verJE( java, '23w46a', 0x400000A3, 3691, 21, 25 )
verJE( java, '23w45a', 0x400000A2, 3690, 21, 24 )
verJE( java, '23w44a', 0x400000A1, 3688, 20, 23 )
verJE( java, '23w43b', 0x400000A0, 3687, 20, 22 )
verJE( java, '23w43a', 0x4000009F, 3686, 20, 22 )
verJE( java, '23w42a', 0x4000009D, 3684, 19, 21 )
verJE( java, '23w41a', 0x4000009C, 3681, 18, 20 )
verJE( java, '23w40a', 0x4000009A, 3679, 18, 19 )
verJE( java, '1.20.2', 764, 3578, 18, 18 )
verJE( java, '1.20.2 Release Candidate 2', 0x40000099, 3577, 18, 18 )
verJE( java, '1.20.2 Release Candidate 1', 0x40000098, 3576, 18, 18 )
verJE( java, '1.20.2 Pre-Release 4', 0x40000097, 3575, 18, 18 )
verJE( java, '1.20.2 Pre-Release 3', 0x40000096, 3574, 18, 18 )
verJE( java, '1.20.2 Pre-release 2', 0x40000095, 3573, 18, 18 )
verJE( java, '1.20.2 Pre-release 1', 0x40000094, 3572, 17, 18 )
verJE( java, '23w35a', 0x40000093, 3571, 17, 17 )
verJE( java, '23w33a', 0x40000092, 3570, 17, 17 )
verJE( java, '23w32a', 0x40000091, 3569, 17, 17 )
verJE( java, '23w31a', 0x40000090, 3567, 16, 16 )
verJE( java, '1.20.1', 763, 3465, 15, 15 )
verJE( java, '1.20.1 Release Candidate 1', 0x4000008E, 3464, 15, 15 )
verJE( java, '1.20', 763, 3463, 15, 15 )
verJE( java, '1.20 Release Candidate 1', 0x4000008D, 3462, 15, 15 )
verJE( java, '1.20 Pre-release 7', 0x4000008C, 3461, 15, 15 )
verJE( java, '1.20 Pre-release 6', 0x4000008B, 3460, 15, 15 )
verJE( java, '1.20 Pre-release 5', 0x4000008A, 3458, 15, 15 )
verJE( java, '1.20 Pre-release 4', 0x40000089, 3457, 15, 15 )
verJE( java, '1.20 Pre-release 3', 0x40000088, 3456, 15, 15 )
verJE( java, '1.20 Pre-release 2', 0x40000087, 3455, 15, 15 )
verJE( java, '1.20 Pre-release 1', 0x40000086, 3454, 15, 15 )
verJE( java, '23w18a', 0x40000085, 3453, 15, 15 )
verJE( java, '23w17a', 0x40000084, 3452, 15, 14 )
verJE( java, '23w16a', 0x40000083, 3449, 14, 14 )
verJE( java, '23w14a', 0x40000082, 3445, 14, 13 )
verJE( java, '23w13a', 0x40000080, 3443, 13, 13 )
verJE( java, '23w12a', 0x4000007F, 3442, 13, 13 )

-- 1.19
verJE( java, '1.19.4', 762, 3337, 13, 12 )
verJE( java, '1.19.4 Release Candidate 3', 0x4000007E, 3336, 13, 12 )
verJE( java, '1.19.4 Release Candidate 2', 0x4000007D, 3335, 13, 12 )
verJE( java, '1.19.4 Release Candidate 1', 0x4000007C, 3334, 13, 12 )
verJE( java, '1.19.4 Pre-release 4', 0x4000007B, 3333, 13, 12 )
verJE( java, '1.19.4 Pre-release 3', 0x4000007A, 3332, 13, 12 )
verJE( java, '1.19.4 Pre-release 2', 0x40000079, 3331, 13, 12 )
verJE( java, '1.19.4 Pre-release 1', 0x40000078, 3330, 13, 12 )
verJE( java, '23w07a', 0x40000077, 3329, 12, 12 )
verJE( java, '23w06a', 0x40000076, 3326, 12, 12 )
verJE( java, '23w05a', 0x40000075, 3323, 12, 11 )
verJE( java, '23w04a', 0x40000074, 3321, 12, 11 )
verJE( java, '23w03a', 0x40000073, 3320, 12, 11 )
verJE( java, '1.19.3', 761, 3218, 12, 10 )
verJE( java, '1.19.3 Release Candidate 3', 0x40000072, 3217, 12, 10 )
verJE( java, '1.19.3 Release Candidate 2', 0x40000071, 3216, 12, 10 )
verJE( java, '1.19.3 Release Candidate 1', 0x40000070, 3215, 12, 10 )
verJE( java, '1.19.3 Pre-release 3', 0x4000006F, 3213, 12, 10 )
verJE( java, '1.19.3 Pre-release 2', 0x4000006E, 3212, 12, 10 )
verJE( java, '1.19.3 Pre-release 1', 0x4000006D, 3211, 12, 10 )
verJE( java, '22w46a', 0x4000006C, 3210, 12, 10 )
verJE( java, '22w45a', 0x4000006B, 3208, 12, 10 )
verJE( java, '22w44a', 0x4000006A, 3207, 11, 10 )
verJE( java, '22w43a', 0x40000069, 3206, 11, 10 )
verJE( java, '22w42a', 0x40000068, 3205, 11, 10 )
verJE( java, '1.19.2', 760, 3120, 9, 10 )
verJE( java, '1.19.2 Release Candidate 2', 0x40000067, 3119, 9, 10 )
verJE( java, '1.19.2 Release Candidate 1', 0x40000066, 3118, 9, 10 )
verJE( java, '1.19.1', 760, 3117, 9, 10 )
verJE( java, '1.19.1 Release Candidate 3', 0x40000065, 3116, 9, 10 )
verJE( java, '1.19.1 Release Candidate 2', 0x40000064, 3115, 9, 10 )
verJE( java, '1.19.1 Pre-release 6', 0x40000063, 3114, 9, 10 )
verJE( java, '1.19.1 Pre-release 5', 0x40000062, 3113, 9, 10 )
verJE( java, '1.19.1 Pre-release 4', 0x40000061, 3112, 9, 10 )
verJE( java, '1.19.1 Pre-release 3', 0x40000060, 3111, 9, 10 )
verJE( java, '1.19.1 Pre-release 2', 0x4000005F, 3110, 9, 10 )
verJE( java, '1.19.1 Release Candidate 1', 0x4000005E, 3109, 9, 10 )
verJE( java, '1.19.1 Pre-release 1', 0x4000005D, 3107, 9, 10 )
verJE( java, '22w24a', 0x4000005C, 3106, 9, 10 )
verJE( java, '1.19', 759, 3105, 9, 10 )
verJE( java, '1.19 Release Candidate 2', 0x4000005B, 3104, 9, 10 )
verJE( java, '1.19 Release Candidate 1', 0x4000005A, 3103, 9, 10 )
verJE( java, '1.19 Pre-release 5', 0x40000059, 3102, 9, 10 )
verJE( java, '1.19 Pre-release 4', 0x40000058, 3101, 9, 10 )
verJE( java, '1.19 Pre-release 3', 0x40000057, 3100, 9, 10 )
verJE( java, '1.19 Pre-release 2', 0x40000056, 3099, 9, 10 )
verJE( java, '1.19 Pre-release 1', 0x40000055, 3098, 9, 10 )
verJE( java, '22w19a', 0x40000054, 3096, 9, 10 )
verJE( java, '22w18a', 0x40000053, 3095, 9, 10 )
verJE( java, '22w17a', 0x40000052, 3093, 9, 10 )
verJE( java, '22w16b', 0x40000051, 3092, 9, 10 )
verJE( java, '22w16a', 0x40000050, 3091, 9, 10 )
verJE( java, '22w15a', 0x4000004F, 3089, 9, 10 )
verJE( java, '22w14a', 0x4000004E, 3088, 9, 10 )
verJE( java, '22w13a', 0x4000004C, 3085, 9, 10 )
verJE( java, '22w12a', 0x4000004B, 3082, 9, 10 )
verJE( java, '22w11a', 0x4000004A, 3080, 9, 10 )
verJE( java, 'Deep Dark Experimental Snapshot 1', 0x40000045, 3066, 8, 8 )

-- 1.18
verJE( java, '1.18.2', 758, 2975, 8, 9 )
verJE( java, '1.18.2 Release Candidate 1', 0x40000049, 2974, 8, 9 )
verJE( java, '1.18.2 Pre-release 3', 0x40000048, 2973, 8, 9 )
verJE( java, '1.18.2 Pre-release 2', 0x40000047, 2972, 8, 9 )
verJE( java, '1.18.2 Pre-release 1', 0x40000046, 2971, 8, 9 )
verJE( java, '22w07a', 0x40000044, 2969, 8, 8 )
verJE( java, '22w06a', 0x40000043, 2968, 8, 8 )
verJE( java, '22w05a', 0x40000042, 2967, 8, 8 )
verJE( java, '22w03a', 0x40000041, 2966, 8, 8 )
verJE( java, '1.18.1', 757, 2865, 8, 8 )
verJE( java, '1.18.1 Release Candidate 3', 0x40000040, 2864, 8, 8 )
verJE( java, '1.18.1 Release Candidate 2', 0x4000003F, 2863, 8, 8 )
verJE( java, '1.18.1 Release Candidate 1', 0x4000003E, 2862, 8, 8 )
verJE( java, '1.18.1 Pre-release 1', 0x4000003D, 2861, 8, 8 )
verJE( java, '1.18', 757, 2860, 8, 8 )
verJE( java, '1.18 Release Candidate 4', 0x4000003C, 2859, 8, 8 )
verJE( java, '1.18 Release Candidate 3', 0x4000003B, 2858, 8, 8 )
verJE( java, '1.18 Release Candidate 2', 0x4000003A, 2857, 8, 8 )
verJE( java, '1.18 Release Candidate 1', 0x40000039, 2856, 8, 8 )
verJE( java, '1.18 Pre-release 8', 0x40000038, 2855, 8, 8 )
verJE( java, '1.18 Pre-release 7', 0x40000037, 2854, 8, 8 )
verJE( java, '1.18 Pre-release 6', 0x40000036, 2853, 8, 8 )
verJE( java, '1.18 Pre-release 5', 0x40000035, 2851, 8, 8 )
verJE( java, '1.18 Pre-release 4', 0x40000034, 2850, 8, 8 )
verJE( java, '1.18 Pre-release 3', 0x40000033, 2849, 8, 8 )
verJE( java, '1.18 Pre-release 2', 0x40000032, 2848, 8, 8 )
verJE( java, '1.18 Pre-release 1', 0x40000031, 2847, 8, 8 )
verJE( java, '21w44a', 0x40000030, 2845, 8, 8 )
verJE( java, '21w43a', 0x4000002F, 2844, 8, 8 )
verJE( java, '21w42a', 0x4000002E, 2840, 8, 8 )
verJE( java, '21w41a', 0x4000002D, 2839, 8, 8 )
verJE( java, '21w40a', 0x4000002C, 2838, 8, 8 )
verJE( java, '21w39a', 0x4000002B, 2836, 8, 8 )
verJE( java, '21w38a', 0x4000002A, 2835, 7, 8 )
verJE( java, '21w37a', 0x40000029, 2834, 7, 8 )
verJE( java, '1.18 experimental snapshot 7', 0x4000002F, 2831, 7, 7 )
verJE( java, '1.18 experimental snapshot 6', 0x4000002E, 2830, 7, 7 )
verJE( java, '1.18 experimental snapshot 5', 0x4000002D, 2829, 7, 7 )
verJE( java, '1.18 experimental snapshot 4', 0x4000002C, 2828, 7, 7 )
verJE( java, '1.18 experimental snapshot 3', 0x4000002B, 2827, 7, 7 )
verJE( java, '1.18 experimental snapshot 2', 0x4000002A, 2826, 7, 7 )
verJE( java, '1.18 Experimental Snapshot 1', 0x40000029, 2825, 7, 7 )

-- 1.17
verJE( java, '1.17.1', 756, 2730, 7, 7 )
verJE( java, '1.17.1 Release Candidate 2', 0x40000028, 2729, 7, 7 )
verJE( java, '1.17.1 Release Candidate 1', 0x40000027, 2728, 7, 7 )
verJE( java, '1.17.1 Pre-release 3', 0x40000026, 2727, 7, 7 )
verJE( java, '1.17.1 Pre-release 2', 0x40000025, 2726, 7, 7 )
verJE( java, '1.17.1 Pre-release 1', 0x40000024, 2725, 7, 7 )
verJE( java, '1.17', 755, 2724, 7, 7 )
verJE( java, '1.17 Release Candidate 2', 0x40000023, 2723, 7, 7 )
verJE( java, '1.17 Release Candidate 1', 0x40000022, 2722, 7, 7 )
verJE( java, '1.17 Pre-release 5', 0x40000021, 2721, 7, 7 )
verJE( java, '1.17 Pre-release 4', 0x40000020, 2720, 7, 7 )
verJE( java, '1.17 Pre-release 3', 0x4000001F, 2719, 7, 7 )
verJE( java, '1.17 Pre-release 2', 0x4000001E, 2718, 7, 7 )
verJE( java, '1.17 Pre-release 1', 0x4000001D, 2716, 7, 7 )
verJE( java, '21w20a', 0x4000001C, 2715, 7, 7 )
verJE( java, '21w19a', 0x4000001B, 2714, 7, 7 )
verJE( java, '21w18a', 0x4000001A, 2713, 7, 7 )
verJE( java, '21w17a', 0x40000019, 2712, 7, 7 )
verJE( java, '21w16a', 0x40000017, 2711, 7, 7 )
verJE( java, '21w15a', 0x40000016, 2709, 7, 7 )
verJE( java, '21w14a', 0x40000015, 2706, 7, 7 )
verJE( java, '21w13a', 0x40000014, 2705, 7, 7 )
verJE( java, '21w11a', 0x40000013, 2703, 7, 7 )
verJE( java, '21w10a', 0x40000012, 2699, 7, 7 )
verJE( java, '21w08b', 0x40000011, 2698, 7, 7 )
verJE( java, '21w08a', 0x40000010, 2697, 7, 7 )
verJE( java, '21w07a', 0x4000000F, 2695, 7, 7 )
verJE( java, '21w06a', 0x4000000E, 2694, 7, 7 )
verJE( java, '21w05b', 0x4000000D, 2692, 7, 7 )
verJE( java, '21w05a', 0x4000000C, 2690, 7, 7 )
verJE( java, '21w03a', 0x4000000B, 2689, 7, 7 )
verJE( java, '20w51a', 0x40000009, 2687, 7, 7 )
verJE( java, '20w49a', 0x40000008, 2685, 7, 7 )
verJE( java, '20w48a', 0x40000007, 2683, 7, 7 )
verJE( java, '20w46a', 0x40000006, 2682, 7, 7 )
verJE( java, '20w45a', 0x40000005, 2681, 7, 6 )

-- 1.16 Combat Tests
verJE( java, 'Combat Test 8c', 803, 2707, 6, 6 )
verJE( java, 'Combat Test 8b', 803, 2706, 6, 6 )
verJE( java, 'Combat Test 8', 803, 2705, 6, 6 )
verJE( java, 'Combat Test 7c', 802, 2704, 6, 6 )
verJE( java, 'Combat Test 7b', 802, 2703, 6, 6 )
verJE( java, 'Combat Test 7', 802, 2702, 6, 6 )
verJE( java, 'Combat Test 6', 801, 2701, 5, 5 )

-- 1.16
verJE( java, '1.16.5', 754, 2586, 6, 6 )
verJE( java, '1.16.5 Release Candidate 1', 0x4000000A, 2585, 6, 6 )
verJE( java, '1.16.4', 754, 2584, 6, 6 )
verJE( java, '1.16.4 Release Candidate 1', 0x40000003, 2583, 6, 6 )
verJE( java, '1.16.4 Pre-release 2', 0x40000002, 2582, 6, 6 )
verJE( java, '1.16.4 Pre-release 1', 0x40000001, 2581, 6, 6 )
verJE( java, '1.16.3', 753, 2580, 6, 6 )
verJE( java, '1.16.3 Release Candidate 1', 752, 2579, 6, 6 )
verJE( java, '1.16.2', 751, 2578, 6, 6 )
verJE( java, '1.16.2 Release Candidate 2', 750, 2577, 6, 6 )
verJE( java, '1.16.2 Release Candidate 1', 749, 2576, 6, 6 )
verJE( java, '1.16.2 Pre-release 3', 748, 2575, 5, 5 )
verJE( java, '1.16.2 Pre-release 2', 746, 2574, 5, 5 )
verJE( java, '1.16.2 Pre-release 1', 744, 2573, 5, 5 )
verJE( java, '20w30a', 742, 2572, 5, 5 )
verJE( java, '20w29a', 741, 2571, 5, 5 )
verJE( java, '20w28a', 740, 2570, 5, 5 )
verJE( java, '20w27a', 738, 2569, 5, 5 )
verJE( java, '1.16.1', 736, 2567, 5, 5 )
verJE( java, '1.16', 735, 2566, 5, 5 )
verJE( java, '1.16 Release Candidate 1', 734, 2565, 5, 5 )
verJE( java, '1.16 Pre-release 8', 733, 2564, 5, 5 )
verJE( java, '1.16 Pre-release 7', 732, 2563, 5, 5 )
verJE( java, '1.16 Pre-release 6', 730, 2562, 5, 5 )
verJE( java, '1.16 Pre-release 5', 729, 2561, 5, 5 )
verJE( java, '1.16 Pre-release 4', 727, 2560, 5, 5 )
verJE( java, '1.16 Pre-release 3', 725, 2559, 5, 5 )
verJE( java, '1.16 Pre-release 2', 722, 2557, 5, 5 )
verJE( java, '1.16 Pre-release 1', 721, 2556, 5, 5 )
verJE( java, '20w22a', 719, 2555, 5, 5 )
verJE( java, '20w21a', 718, 2554, 5, 5 )
verJE( java, '20w20b', 717, 2537, 5, 5 )
verJE( java, '20w20a', 716, 2536, 5, 5 )
verJE( java, '20w19a', 715, 2534, 5, 5 )
verJE( java, '20w18a', 714, 2532, 5, 5 )
verJE( java, '20w17a', 713, 2529, 5, 5 )
verJE( java, '20w16a', 712, 2526, 5, 5 )
verJE( java, '20w15a', 711, 2525, 5, 5 )
verJE( java, '20w14a', 710, 2524, 5, 5 )
verJE( java, '20w13b', 709, 2521, 5, 5 )
verJE( java, '20w13a', 708, 2520, 5, 5 )
verJE( java, '20w12a', 707, 2515, 5, 5 )
verJE( java, '20w11a', 706, 2513, 5, 5 )
verJE( java, '20w10a', 705, 2512, 5, 5 )
verJE( java, '20w09a', 704, 2510, 5, 5 )
verJE( java, '20w08a', 703, 2507, 5, 5 )
verJE( java, '20w07a', 702, 2506, 5, 5 )
verJE( java, 'Snapshot 20w06a', 701, 2504, 5, 5 )

-- 1.15 Combat Tests
verJE( java, 'Combat Test 5', 601, 2321, 5, 5 )
verJE( java, 'Combat Test 4', 600, 2320, 5, 5 )

-- 1.15
verJE( java, '1.15.2', 578, 2230, 5, 5 )
verJE( java, '1.15.2 Pre-release 2', 577, 2229, 5, 5 )
verJE( java, '1.15.2 Pre-Release 1', 576, 2228, 5, 5 )
verJE( java, '1.15.1', 575, 2227, 5, 5 )
verJE( java, '1.15.1 Pre-release 1', 574, 2226, 5, 5 )
verJE( java, '1.15', 573, 2225, 5, 5 )
verJE( java, '1.15 Pre-release 7', 572, 2224, 5, 5 )
verJE( java, '1.15 Pre-release 6', 571, 2223, 5, 5 )
verJE( java, '1.15 Pre-release 5', 570, 2222, 5, 5 )
verJE( java, '1.15 Pre-release 4', 569, 2221, 5, 5 )
verJE( java, '1.15 Pre-release 3', 567, 2220, 5, 5 )
verJE( java, '1.15 Pre-Release 2', 566, 2219, 5, 5 )
verJE( java, '1.15 Pre-release 1', 565, 2218, 5, 5 )
verJE( java, '19w46b', 564, 2217, 4, 4 )
verJE( java, '19w46a', 563, 2216, 4, 4 )
verJE( java, '19w45b', 562, 2215, 4, 4 )
verJE( java, '19w45a', 561, 2214, 4, 4 )
verJE( java, '19w44a', 560, 2213, 4, 4 )
verJE( java, '19w42a', 559, 2212, 4, 4 )
verJE( java, '19w41a', 558, 2210, 4, 4 )
verJE( java, '19w40a', 557, 2208, 4, 4 )
verJE( java, '19w39a', 556, 2207, 4, 4 )
verJE( java, '19w38b', 555, 2206, 4, 4 )
verJE( java, '19w38a', 554, 2205, 4, 4 )
verJE( java, '19w37a', 553, 2204, 4, 4 )
verJE( java, '19w36a', 552, 2203, 4, 4 )
verJE( java, '19w35a', 551, 2201, 4, 4 )
verJE( java, '19w34a', 550, 2200, 4, 4 )

-- 1.14 Combat Tests
verJE( java, 'Combat Test 3', 502, 2069, 4, 4 )
verJE( java, 'Combat Test 2', 501, 2068, 4, 4 )
verJE( java, '1.14.3 - Combat Test', 500, 2067, 4, 4 )

-- 1.14
verJE( java, '1.14.4', 498, 1976, 4, 4 )
verJE( java, '1.14.4 Pre-Release 7', 497, 1975, 4, 4 )
verJE( java, '1.14.4 Pre-Release 6', 496, 1974, 4, 4 )
verJE( java, '1.14.4 Pre-Release 5', 495, 1973, 4, 4 )
verJE( java, '1.14.4 Pre-Release 4', 494, 1972, 4, 4 )
verJE( java, '1.14.4 Pre-Release 3', 493, 1971, 4, 4 )
verJE( java, '1.14.4 Pre-Release 2', 492, 1970, 4, 4 )
verJE( java, '1.14.4 Pre-Release 1', 491, 1969, 4, 4 )
verJE( java, '1.14.3', 490, 1968, 4, 4 )
verJE( java, '1.14.3 Pre-Release 4', 489, 1967, 4, 4 )
verJE( java, '1.14.3 Pre-Release 3', 488, 1966, 4, 4 )
verJE( java, '1.14.3 Pre-Release 2', 487, 1965, 4, 4 )
verJE( java, '1.14.3 Pre-Release 1', 486, 1964, 4, 4 )
verJE( java, '1.14.2', 485, 1963, 4, 4 )
verJE( java, '1.14.2 Pre-Release 4', 484, 1962, 4, 4 )
verJE( java, '1.14.2 Pre-Release 3', 483, 1960, 4, 4 )
verJE( java, '1.14.2 Pre-Release 2', 482, 1959, 4, 4 )
verJE( java, '1.14.2 Pre-Release 1', 481, 1958, 4, 4 )
verJE( java, '1.14.1', 480, 1957, 4, 4 )
verJE( java, '1.14.1 Pre-Release 2', 479, 1956, 4, 4 )
verJE( java, '1.14.1 Pre-Release 1', 478, 1955, 4, 4 )
verJE( java, '1.14', 477, 1952, 4, 4 )
verJE( java, '1.14 Pre-Release 5', 476, 1951, 4, 4 )
verJE( java, '1.14 Pre-Release 4', 475, 1950, 4, 4 )
verJE( java, '1.14 Pre-Release 3', 474, 1949, 4, 4 )
verJE( java, '1.14 Pre-Release 2', 473, 1948, 4, 4 )
verJE( java, '1.14 Pre-Release 1', 472, 1947, 4, 4 )
verJE( java, '19w14b', 471, 1945, 4, 4 )
verJE( java, '19w14a', 470, 1944, 4, 4 )
verJE( java, '19w13b', 469, 1943, 4, 4 )
verJE( java, '19w13a', 468, 1942, 4, 4 )
verJE( java, '19w12b', 467, 1941, 4, 4 )
verJE( java, '19w12a', 466, 1940, 4, 4 )
verJE( java, '19w11b', 465, 1938, 4, 4 )
verJE( java, '19w11a', 464, 1937, 4, 4 )
verJE( java, '19w09a', 463, 1935, 4, 4 )
verJE( java, '19w08b', 462, 1934, 4, 4 )
verJE( java, '19w08a', 461, 1933, 4, 4 )
verJE( java, '19w07a', 460, 1932, 4, 4 )
verJE( java, '19w06a', 459, 1931, 4, 4 )
verJE( java, '19w05a', 458, 1930, 4, 4 )
verJE( java, '19w04b', 457, 1927, 4, 4 )
verJE( java, '19w04a', 456, 1926, 4, 4 )
verJE( java, '19w03c', 455, 1924, 4, 4 )
verJE( java, '19w03b', 454, 1923, 4, 4 )
verJE( java, '19w03a', 453, 1922, 4, 4 )
verJE( java, '19w02a', 452, 1921, 4, 4 )
verJE( java, '18w50a', 451, 1919, 4, 4 )
verJE( java, '18w49a', 450, 1916, 4, 4 )
verJE( java, '18w48b', 449, 1915, 4, 4 )
verJE( java, '18w48a', 448, 1914, 4, 4 )
verJE( java, '18w47b', 447, 1913, 4, 4 )
verJE( java, '18w47a', 446, 1912, 4, 4 )
verJE( java, '18w46a', 445, 1910, 4, 4 )
verJE( java, '18w45a', 444, 1908, 4, 4 )
verJE( java, '18w44a', 443, 1907, 4, 4 )
verJE( java, '18w43c', 442, 1903, 4, 4 )
verJE( java, '18w43b', 441, 1902, 4, 4 )
verJE( java, '18w43a', 440, 1901, 4, 4 )

-- 1.13
verJE( java, '1.13.2', 404, 1631, 4, 4 )
verJE( java, '1.13.2-pre2', 403, 1630, 4, 4 )
verJE( java, '1.13.2-pre1', 402, 1629, 4, 4 )
verJE( java, '1.13.1', 401, 1628, 4, 4 )
verJE( java, '1.13.1-pre2', 400, 1627, 4, 4 )
verJE( java, '1.13.1-pre1', 399, 1626, 4, 4 )
verJE( java, '18w33a', 398, 1625, 4, 4 )
verJE( java, '18w32a', 397, 1623, 4, 4 )
verJE( java, '18w31a', 396, 1622, 4, 4 )
verJE( java, '18w30b', 395, 1621, 4, 4 )
verJE( java, '18w30a', 394, 1620, 4, 4 )
verJE( java, '1.13', 393, 1519, 4, 4 )
verJE( java, '1.13-pre10', 392, 1518, 4, 4 )
verJE( java, '1.13-pre9', 391, 1517, 4, 4 )
verJE( java, '1.13-pre8', 390, 1516, 4, 4 )
verJE( java, '1.13-pre7', 389, 1513, 4, 4 )
verJE( java, '1.13-pre6', 388, 1512, 4, 4 )
verJE( java, '1.13-pre5', 387, 1511, 4, 4 )
verJE( java, '1.13-pre4', 386, 1504, 4, 4 )
verJE( java, '1.13-pre3', 385, 1503, 4, 4 )
verJE( java, '1.13-pre2', 384, 1502, 4, 4 )
verJE( java, '1.13-pre1', 383, 1501, 4, 4 )
verJE( java, '18w22c', 382, 1499, 4, 4 )
verJE( java, '18w22b', 381, 1498, 4, 4 )
verJE( java, '18w22a', 380, 1497, 4, 4 )
verJE( java, '18w21b', 379, 1496, 4, 4 )
verJE( java, '18w21a', 378, 1495, 4, 4 )
verJE( java, '18w20c', 377, 1493, 4, 4 )
verJE( java, '18w20b', 376, 1491, 4, 4 )
verJE( java, '18w20a', 375, 1489, 4, 4 )
verJE( java, '18w19b', 374, 1485, 4, 4 )
verJE( java, '18w19a', 373, 1484, 4, 4 )
verJE( java, '18w16a', 372, 1483, 4, 4 )
verJE( java, '18w15a', 371, 1482, 4, 4 )
verJE( java, '18w14b', 370, 1481, 4, 4 )
verJE( java, '18w14a', 369, 1479, 4, 4 )
verJE( java, '18w11a', 368, 1478, 4, 4 )
verJE( java, '18w10d', 367, 1477, 4, 4 )
verJE( java, '18w10c', 366, 1476, 4, 4 )
verJE( java, '18w10b', 365, 1474, 4, 4 )
verJE( java, '18w10a', 364, 1473, 4, 4 )
verJE( java, '18w09a', 363, 1472, 4, 4 )
verJE( java, '18w08b', 362, 1471, 4, 4 )
verJE( java, '18w08a', 361, 1470, 4, 4 )
verJE( java, '18w07c', 360, 1469, 4, 4 )
verJE( java, '18w07b', 359, 1468, 4, 4 )
verJE( java, '18w07a', 358, 1467, 4, 4 )
verJE( java, '18w06a', 357, 1466, 4, 4 )
verJE( java, '18w05a', 356, 1464, 4, 4 )
verJE( java, '18w03b', 355, 1463, 4, 4 )
verJE( java, '18w03a', 354, 1462, 4, 4 )
verJE( java, '18w02a', 353, 1461, 4, 4 )
verJE( java, '18w01a', 352, 1459, 4, 4 )
verJE( java, '17w50a', 351, 1457, 4, 4 )
verJE( java, '17w49b', 350, 1455, 4, 4 )
verJE( java, '17w49a', 349, 1454, 4, 4 )
verJE( java, '17w48a', 348, 1453, 4, 4 )
verJE( java, '17w47b', 347, 1452, 3 )
verJE( java, '17w47a', 346, 1451, 3 )
verJE( java, '17w46a', 345, 1449, 3 )
verJE( java, '17w45b', 344, 1448, 3 )
verJE( java, '17w45a', 343, 1447, 3 )
verJE( java, '17w43b', 342, 1445, 3 )
verJE( java, '17w43a', 341, 1444, 3 )

-- 1.12
verJE( java, '1.12.2', 340, 1343, 3 )
verJE( java, '1.12.2-pre2', 339, 1342, 3 )
verJE( java, '1.12.2-pre1', 339, 1341, 3 )
verJE( java, '1.12.1', 338, 1241, 3 )
verJE( java, '1.12.1-pre1', 337, 1240, 3 )
verJE( java, '17w31a', 336, 1239, 3 )
verJE( java, '1.12', 335, 1139, 3 )
verJE( java, '1.12-pre7', 334, 1138, 3 )
verJE( java, '1.12-pre6', 333, 1137, 3 )
verJE( java, '1.12-pre5', 332, 1136, 3 )
verJE( java, '1.12-pre4', 331, 1135, 3 )
verJE( java, '1.12-pre3', 330, 1134, 3 )
verJE( java, '1.12-pre2', 329, 1133, 3 )
verJE( java, '1.12-pre1', 328, 1132, 3 )
verJE( java, '17w18b', 327, 1131, 3 )
verJE( java, '17w18a', 326, 1130, 3 )
verJE( java, '17w17b', 325, 1129, 3 )
verJE( java, '17w17a', 324, 1128, 3 )
verJE( java, '17w16b', 323, 1127, 3 )
verJE( java, '17w16a', 322, 1126, 3 )
verJE( java, '17w15a', 321, 1125, 3 )
verJE( java, '17w14a', 320, 1124, 3 )
verJE( java, '17w13b', 319, 1123, 3 )
verJE( java, '17w13a', 318, 1122, 3 )
verJE( java, '17w06a', 317, 1022, 3 )

-- 1.11
verJE( java, '1.11.2', 316, 922, 3 )
verJE( java, '1.11.1', 316, 921, 3 )
verJE( java, '16w50a', 316, 920, 3 )
verJE( java, '1.11', 315, 819, 3 )
verJE( java, '1.11-pre1', 314, 818, 3 )
verJE( java, '16w44a', 313, 817, 3 )
verJE( java, '16w43a', 313, 816, 3 )
verJE( java, '16w42a', 312, 815, 3 )
verJE( java, '16w41a', 311, 814, 3 )
verJE( java, '16w40a', 310, 813, 3 )
verJE( java, '16w39c', 309, 812, 3 )
verJE( java, '16w39b', 308, 811, 3 )
verJE( java, '16w39a', 307, 809, 3 )
verJE( java, '16w38a', 306, 807, 3 )
verJE( java, '16w36a', 305, 805, 3 )
verJE( java, '16w35a', 304, 803, 3 )
verJE( java, '16w33a', 303, 802, 3 )
verJE( java, '16w32b', 302, 801, 3 )
verJE( java, '16w32a', 301, 800, 3 )

-- 1.10
verJE( java, '1.10.2', 210, 512, 2 )
verJE( java, '1.10.1', 210, 511, 2 )
verJE( java, '1.10', 210, 510, 2 )
verJE( java, '1.10-pre2', 205, 507, 2 )
verJE( java, '1.10-pre1', 204, 506, 2 )
verJE( java, '16w21b', 203, 504, 2 )
verJE( java, '16w21a', 202, 503, 2 )
verJE( java, '16w20a', 201, 501, 2 )

-- 1.9
verJE( java, '1.9.4', 110, 184, 2 )
verJE( java, '1.9.3', 110, 183, 2 )
verJE( java, '1.9.3-pre3', 110, 182, 2 )
verJE( java, '1.9.3-pre2', 110, 181, 2 )
verJE( java, '1.9.3-pre1', 109, 180, 2 )
verJE( java, '16w15b', 109, 179, 2 )
verJE( java, '16w15a', 109, 178, 2 )
verJE( java, '16w14a', 109, 177, 2 )
verJE( java, '1.9.2', 109, 176, 2 )
verJE( java, '1.9.1', 108, 175, 2 )
verJE( java, '1.9.1-pre3', 108, 172, 2 )
verJE( java, '1.9.1-pre2', 108, 171, 2 )
verJE( java, '1.9.1-pre1', 107, 170, 2 )
verJE( java, '1.9', 107, 169, 2 )
verJE( java, '1.9-pre4', 106, 168, 2 )
verJE( java, '1.9-pre3', 105, 167, 2 )
verJE( java, '1.9-pre2', 104, 165, 2 )
verJE( java, '1.9-pre1', 103, 164, 2 )
verJE( java, '16w07b', 102, 163, 2 )
verJE( java, '16w07a', 101, 162, 2 )
verJE( java, '16w06a', 100, 161, 2 )
verJE( java, '16w05b', 99, 160, 2 )
verJE( java, '16w05a', 98, 159, 2 )
verJE( java, '16w04a', 97, 158, 2 )
verJE( java, '16w03a', 96, 157, 2 )
verJE( java, '16w02a', 95, 156, 2 )
verJE( java, '15w51b', 94, 155, 2 )
verJE( java, '15w51a', 93, 154, 2 )
verJE( java, '15w50a', 92, 153, 2 )
verJE( java, '15w49b', 91, 152, 2 )
verJE( java, '15w49a', 90, 151, 2 )
verJE( java, '15w47c', 89, 150, 2 )
verJE( java, '15w47b', 88, 149, 2 )
verJE( java, '15w47a', 87, 148, 2 )
verJE( java, '15w46a', 86, 146, 2 )
verJE( java, '15w45a', 85, 145, 2 )
verJE( java, '15w44b', 84, 143, 2 )
verJE( java, '15w44a', 83, 142, 2 )
verJE( java, '15w43c', 82, 141, 2 )
verJE( java, '15w43b', 81, 140, 2 )
verJE( java, '15w43a', 80, 139, 2 )
verJE( java, '15w42a', 79, 138, 2 )
verJE( java, '15w41b', 78, 137, 2 )
verJE( java, '15w41a', 77, 136, 2 )
verJE( java, '15w40b', 76, 134, 2 )
verJE( java, '15w40a', 75, 133, 2 )
verJE( java, '15w39c', 74, 132, 2 )
verJE( java, '15w39b', 74, 131, 2 )
verJE( java, '15w39a', 74, 130, 2 )
verJE( java, '15w38b', 73, 129, 2 )
verJE( java, '15w38a', 72, 128, 2 )
verJE( java, '15w37a', 71, 127, 2 )
verJE( java, '15w36d', 70, 126, 2 )
verJE( java, '15w36c', 69, 125, 2 )
verJE( java, '15w36b', 68, 124, 2 )
verJE( java, '15w36a', 67, 123, 2 )
verJE( java, '15w35e', 66, 122, 2 )
verJE( java, '15w35d', 65, 121, 2 )
verJE( java, '15w35c', 64, 120, 2 )
verJE( java, '15w35b', 63, 119, 2 )
verJE( java, '15w35a', 62, 118, 2 )
verJE( java, '15w34d', 61, 117, 2 )
verJE( java, '15w34c', 60, 116, 2 )
verJE( java, '15w34b', 59, 115, 2 )
verJE( java, '15w34a', 58, 114, 2 )
verJE( java, '15w33c', 57, 112, 2 )
verJE( java, '15w33b', 56, 111, 2 )
verJE( java, '15w33a', 55, 111, 2 )
verJE( java, '15w32c', 54, 104, 2 )
verJE( java, '15w32b', 53, 103, 2 )
verJE( java, '15w32a', 52, 100, 2 )
verJE( java, '15w31c', 51, nil, 2 )
verJE( java, '15w31b', 50, nil, 2 )
verJE( java, '15w31a', 49, nil, 2 )

-- 1.8
verJE( java, '1.8.9', 47, nil, 1 )
verJE( java, '1.8.8', 47, nil, 1 )
verJE( java, '1.8.7', 47, nil, 1 )
verJE( java, '1.8.6', 47, nil, 1 )
verJE( java, '1.8.5', 47, nil, 1 )
verJE( java, '1.8.4', 47, nil, 1 )
verJE( java, '1.8.3', 47, nil, 1 )
verJE( java, '1.8.2', 47, nil, 1 )
verJE( java, '1.8.2-pre7', 47, nil, 1 )
verJE( java, '1.8.2-pre6', 47, nil, 1 )
verJE( java, '1.8.2-pre5', 47, nil, 1 )
verJE( java, '1.8.2-pre4', 47, nil, 1 )
verJE( java, '1.8.2-pre3', 47, nil, 1 )
verJE( java, '1.8.2-pre2', 47, nil, 1 )
verJE( java, '1.8.2-pre1', 47, nil, 1 )
verJE( java, '1.8.1', 47, nil, 1 )
verJE( java, '1.8.1-pre5', 47, nil, 1 )
verJE( java, '1.8.1-pre4', 47, nil, 1 )
verJE( java, '1.8.1-pre3', 47, nil, 1 )
verJE( java, '1.8.1-pre2', 47, nil, 1 )
verJE( java, '1.8.1-pre1', 47, nil, 1 )
verJE( java, '1.8', 47, nil, 1 )
verJE( java, '1.8-pre3', 46, nil, 1 )
verJE( java, '1.8-pre2', 45, nil, 1 )
verJE( java, '1.8-pre1', 44, nil, 1 )
verJE( java, '14w34d', 43, nil, 1 )
verJE( java, '14w34c', 42, nil, 1 )
verJE( java, '14w34b', 41, nil, 1 )
verJE( java, '14w34a', 40, nil, 1 )
verJE( java, '14w33c', 39, nil, 1 )
verJE( java, '14w33b', 38, nil, 1 )
verJE( java, '14w33a', 37, nil, 1 )
verJE( java, '14w32d', 36, nil, 1 )
verJE( java, '14w32c', 35, nil, 1 )
verJE( java, '14w32b', 34, nil, 1 )
verJE( java, '14w32a', 33, nil, 1 )
verJE( java, '14w31a', 32, nil, 1 )
verJE( java, '14w30c', 31, nil, 1 )
verJE( java, '14w30b', 30, nil, 1 )
verJE( java, '14w30a', 30, nil, 1 )
verJE( java, '14w29b', 29, nil, 1 )
verJE( java, '14w29a', 29, nil, 1 )
verJE( java, '14w28b', 28, nil, 1 )
verJE( java, '14w28a', 27, nil, 1 )
verJE( java, '14w27b', 26, nil, 1 )
verJE( java, '14w27a', 26, nil, 1 )
verJE( java, '14w26c', 25, nil, 1 )
verJE( java, '14w26b', 24, nil, 1 )
verJE( java, '14w26a', 23, nil, 1 )
verJE( java, '14w25b', 22, nil, 1 )
verJE( java, '14w25a', 21, nil, 1 )
verJE( java, '14w21b', 20, nil, 1 )
verJE( java, '14w21a', 19, nil, 1 )
verJE( java, '14w20b', 18, nil, 1 )
verJE( java, '14w20a', 18, nil, 1 )
verJE( java, '14w19a', 17, nil, 1 )
verJE( java, '14w18b', 16, nil, 1 )
verJE( java, '14w18a', 16, nil, 1 )
verJE( java, '14w17a', 15, nil, 1 )
verJE( java, '14w11b', 14, nil, 1 )
verJE( java, '14w11a', 14, nil, 1 )
verJE( java, '14w10c', 13, nil, 1 )
verJE( java, '14w10b', 13, nil, 1 )
verJE( java, '14w10a', 13, nil, 1 )
verJE( java, '14w08a', 12, nil, 1 )
verJE( java, '14w07a', 11, nil, 1 )
verJE( java, '14w06b', 10, nil, 1 )
verJE( java, '14w06a', 10, nil, 1 )
verJE( java, '14w05b', 9, nil, 1 )
verJE( java, '14w05a', 9, nil, 1 )
verJE( java, '14w04b', 8, nil, 1 )
verJE( java, '14w04a', 7, nil, 1 )
verJE( java, '14w03b', 6, nil, 1 )
verJE( java, '14w03a', 6, nil, 1 )
verJE( java, '14w02c', 5, nil, 1 )
verJE( java, '14w02b', 5, nil, 1 )
verJE( java, '14w02a', 5, nil, 1 )

-- 1.7
verJE( java, '1.7.10', 5, nil, 1 )
verJE( java, '1.7.10-pre4', 5, nil, 1 )
verJE( java, '1.7.10-pre3', 5, nil, 1 )
verJE( java, '1.7.10-pre2', 5, nil, 1 )
verJE( java, '1.7.10-pre1', 5, nil, 1 )
verJE( java, '1.7.9', 5, nil, 1 )
verJE( java, '1.7.8', 5, nil, 1 )
verJE( java, '1.7.7', 5, nil, 1 )
verJE( java, '1.7.6', 5, nil, 1 )
verJE( java, '1.7.6-pre2', 5, nil, 1 )
verJE( java, '1.7.6-pre1', 5, nil, 1 )
verJE( java, '1.7.5', 4, nil, 1 )
verJE( java, '1.7.4', 4, nil, 1 )
verJE( java, '1.7.3', 4, nil, 1 )
verJE( java, '13w49a', 4, nil, 1 )
verJE( java, '13w48b', 4, nil, 1 )
verJE( java, '13w48a', 4, nil, 1 )
verJE( java, '13w47e', 4, nil, 1 )
verJE( java, '13w47d', 4, nil, 1 )
verJE( java, '13w47c', 4, nil, 1 )
verJE( java, '13w47b', 4, nil, 1 )
verJE( java, '13w47a', 4, nil, 1 )
verJE( java, '1.7.2', 4, nil, 1 )
verJE( java, '1.7.1', 3, nil, 1 )
verJE( java, '1.7', 3, nil, 1 )
verJE( java, '13w43a', 2, nil, 1 )
verJE( java, '13w42b', 1, nil, 1 )
verJE( java, '13w42a', 1, nil, 1 )
verJE( java, '13w41b', 0, nil, 1 )
verJE( java, '13w41a', 0, nil, 1, nil, { forceSplitProtocol = true } )
-- Protocol versions numbers BEFORE the 13w41a reset due to Netty rewrite
verJE( java_old, '13w39b', 80, nil, 1 )
verJE( java_old, '13w39a', 80, nil, 1 )
verJE( java_old, '13w38c', 79, nil, 1 )
verJE( java_old, '13w38b', 79, nil, 1 )
verJE( java_old, '13w38a', 79, nil, 1 )

-- 1.6
verJE( java_old, '1.6.4', 78, nil, 1 )
verJE( java_old, '1.6.3', 77, nil, 1 )
verJE( java_old, '13w37b', 76, nil, 1 )
verJE( java_old, '13w37a', 76, nil, 1 )
verJE( java_old, '13w36b', 75, nil, 1 )
verJE( java_old, '13w36a', 75, nil, 1 )
verJE( java_old, '1.6.2', 74, nil, 1 )
verJE( java_old, '1.6.1', 73, nil, 1 )
verJE( java_old, '1.6', 72, nil, 1 )
verJE( java_old, '13w26a', 72, nil, 1 )
verJE( java_old, '13w25c', 71, nil, 1 )
verJE( java_old, '13w25b', 71, nil, 1 )
verJE( java_old, '13w25a', 71, nil, 1 )
verJE( java_old, '13w24b', 70, nil, 1 )
verJE( java_old, '13w24a', 69, nil, 1 )
verJE( java_old, '13w23b', 68 )
verJE( java_old, '13w23a', 67 )
verJE( java_old, '13w22a', 67 )
verJE( java_old, '13w21b', 67 )
verJE( java_old, '13w21a', 67 )
verJE( java_old, '13w19a', 66 )
verJE( java_old, '13w18c', 65 )
verJE( java_old, '13w18b', 65 )
verJE( java_old, '13w18a', 65 )
verJE( java_old, '13w17a', 64 )
verJE( java_old, '13w16b', 63 )
verJE( java_old, '13w16a', 62 )

-- 1.5
verJE( java_old, '1.5.2', 61 )
verJE( java_old, '1.5.1', 60 )
verJE( java_old, '13w12~', 60 )
verJE( java_old, '13w11a', 60 )
verJE( java_old, '1.5', 60 )
verJE( java_old, '13w10b', 60 )
verJE( java_old, '13w10a', 60 )
verJE( java_old, '13w09c', 60 )
verJE( java_old, '13w09b', 59 )
verJE( java_old, '13w09a', 59 )
verJE( java_old, '13w07a', 58 )
verJE( java_old, '13w06a', 58 )
verJE( java_old, '13w05b', 56 )
verJE( java_old, '13w05a', 56 )
verJE( java_old, '13w04a', 55 )
verJE( java_old, '13w03a', 54 )
verJE( java_old, '13w02b', 53 )
verJE( java_old, '13w02a', 53 )
verJE( java_old, '13w01b', 52 )
verJE( java_old, '13w01a', 52 )

-- 1.4
verJE( java_old, '1.4.7', 51 )
verJE( java_old, '1.4.6', 51 )
verJE( java_old, '12w50b', 51 )
verJE( java_old, '12w50a', 51 )
verJE( java_old, '12w49a', 50 )
verJE( java_old, '1.4.5', 49 )
verJE( java_old, '1.4.4', 49 )
verJE( java_old, '1.4.3', 48 )
verJE( java_old, '1.4.2', 47 )
verJE( java_old, '1.4.1', 47 )
verJE( java_old, '1.4', 47 )
verJE( java_old, '12w42b', 47 )
verJE( java_old, '12w42a', 46 )
verJE( java_old, '12w41b', 46 )
verJE( java_old, '12w41a', 46 )
verJE( java_old, '12w40b', 45 )
verJE( java_old, '12w40a', 44 )
verJE( java_old, '12w39b', 43 )
verJE( java_old, '12w39a', 43 )
verJE( java_old, '12w38b', 43 )
verJE( java_old, '12w38a', 43 )
verJE( java_old, '12w37a', 42 )
verJE( java_old, '12w36a', 42 )
verJE( java_old, '12w34b', 42 )
verJE( java_old, '12w34a', 41 )
verJE( java_old, '12w32a', 40 )

-- 1.3
verJE( java_old, '1.3.2', 39 )
verJE( java_old, '1.3.1', 39 )
verJE( java_old, '1.3', 39 )
verJE( java_old, '12w30e', 39 )
verJE( java_old, '12w30d', 39 )
verJE( java_old, '12w30c', 39 )
verJE( java_old, '12w30b', 38 )
verJE( java_old, '12w30a', 38 )
verJE( java_old, '12w27a', 38 )
verJE( java_old, '12w26a', 37 )
verJE( java_old, '12w25a', 37 )
verJE( java_old, '12w24a', 36 )
verJE( java_old, '12w23b', 35 )
verJE( java_old, '12w23a', 35 )
verJE( java_old, '12w22a', 34 )
verJE( java_old, '12w21b', 33 )
verJE( java_old, '12w21a', 33 )
verJE( java_old, '12w19a', 32 )
verJE( java_old, '12w18a', 32 )
verJE( java_old, '12w17a', 31 )
verJE( java_old, '12w16a', 30 )
verJE( java_old, '12w15a', 29 )

-- 1.2
verJE( java_old, '1.2.5', 29 )
verJE( java_old, '1.2.4', 29 )
verJE( java_old, '1.2.3', 28 )
verJE( java_old, '1.2.2', 28 )
verJE( java_old, '1.2.1', 28 )
verJE( java_old, '1.2', 28 )
verJE( java_old, '12w08a', 28 )
verJE( java_old, '12w07b', 27 )
verJE( java_old, '12w07a', 27 )
verJE( java_old, '12w06a', 25 )
verJE( java_old, '12w05b', 24 )
verJE( java_old, '12w05a', 24 )
verJE( java_old, '12w04a', 24 )
verJE( java_old, '12w03a', 24 )

-- 1.1
verJE( java_old, '1.1', 23 )
verJE( java_old, '12w01a', 23 )
verJE( java_old, '11w50a', 22 )
verJE( java_old, '11w49a', 22 )
verJE( java_old, '11w48a', 22 )
verJE( java_old, '11w47a', 22 )

-- 1.0
verJE( java_old, '1.0.1', 22 )
verJE( java_old, '1.0.0', 22 )
verJE( java_old, 'RC2', 22 )
verJE( java_old, 'RC1', 22 )
verJE( java_old, 'Beta 1.9 Prerelease 6', 22 )
verJE( java_old, 'Beta 1.9 Prerelease 5', 21 )
verJE( java_old, 'Beta 1.9 Prerelease 4', 20 )
verJE( java_old, 'Beta 1.9 Prerelease 3', 19 )
verJE( java_old, 'Beta 1.9 Prerelease 2', 19 )
verJE( java_old, 'Beta 1.9 Prerelease', 18 )

-- BETA
-- 1.8
verJE( java_old, 'Beta 1.8.1', 17 )
verJE( java_old, 'Beta 1.8', 17 )
verJE( java_old, 'Beta 1.8 Pre-release 2 ;)', 16 )
verJE( java_old, 'Beta 1.8 Pre-release', 15 )

-- 1.7
verJE( java_old, 'Beta 1.7.3', 14 )
verJE( java_old, 'Beta 1.7.2', 14 )
verJE( java_old, 'Beta 1.7_01', 14 )
verJE( java_old, 'Beta 1.7', 14 )
verJE( java_old, 'Beta 1.7 (preview)', 14 )

-- 1.6
verJE( java_old, 'Beta 1.6.6', 13 )
verJE( java_old, 'Beta 1.6.5', 13 )
verJE( java_old, 'Beta 1.6.4', 13 )
verJE( java_old, 'Beta 1.6.3', 13 )
verJE( java_old, 'Beta 1.6.2', 13 )
verJE( java_old, 'Beta 1.6.1', 13 )
verJE( java_old, 'Beta 1.6', 13 )
verJE( java_old, 'Beta 1.6 Test Build 3', 12 )
verJE( java_old, 'Beta 1.6 (preview)', 13 )

-- 1.5
verJE( java_old, 'Beta 1.5_02', 11 ) -- server-only
verJE( java_old, 'Beta 1.5_01', 11 )
verJE( java_old, 'Beta 1.5', 11 )

-- 1.4
verJE( java_old, 'Beta 1.4_01', 10 )
verJE( java_old, 'Beta 1.4', 10 )

-- 1.3
verJE( java_old, 'Beta 1.3_01', 9 )
verJE( java_old, 'Beta 1.3', 9 )

-- 1.2
verJE( java_old, 'Beta 1.2_02', 8 )
verJE( java_old, 'Beta 1.2_01', 8 )
verJE( java_old, 'Beta 1.2', 8 )

-- 1.1
verJE( java_old, 'Beta 1.1_02', 8 )
verJE( java_old, 'Beta 1.1_01', 7 )
verJE( java_old, 'Beta 1.1', 7 )

-- 1.0
verJE( java_old, 'Beta 1.0.2', 7 )
verJE( java_old, 'Beta 1.0_01', 7 )
verJE( java_old, 'Beta 1.0', 7 )

-- ALPHA + ALPHA SERVER
-- 1.2 (Client)
verJE( java_old, 'Alpha сервер 0.2.8', 6 )
verJE( java_old, 'Alpha v1.2.6', 6 )
verJE( java_old, 'Alpha сервер 0.2.7', 6 )
verJE( java_old, 'Alpha v1.2.5', 6 )
verJE( java_old, 'Alpha сервер 0.2.6_02', 6 )
verJE( java_old, 'Alpha v1.2.4_01', 6 )
verJE( java_old, 'Alpha сервер 0.2.6_01', 6 )
verJE( java_old, 'Alpha сервер 0.2.6', 6 )
verJE( java_old, 'Alpha v1.2.3_05', 6 ) -- v1.2.4
verJE( java_old, 'Alpha v1.2.3_04', 5 )
verJE( java_old, 'Alpha сервер 0.2.5_02', 5 )
verJE( java_old, 'Alpha сервер 0.2.5_01', 5 )
verJE( java_old, 'Alpha v1.2.3_02', 5 )
verJE( java_old, 'Alpha v1.2.3_01', 5 )
verJE( java_old, 'Alpha сервер 0.2.5', 5 )
verJE( java_old, 'Alpha v1.2.3', 5 )
verJE( java_old, 'Alpha сервер 0.2.4', 4 )
verJE( java_old, 'Alpha v1.2.2', 4 )
verJE( java_old, 'Alpha v1.2.1_01', 3 )
verJE( java_old, 'Alpha сервер 0.2.3', 3 )
verJE( java_old, 'Alpha v1.2.1', 3 )
verJE( java_old, 'Alpha v1.2.0_02', 3 )
verJE( java_old, 'Alpha v1.2.0_01', 3 )
verJE( java_old, 'Alpha сервер 0.2.2_01', 3 )
verJE( java_old, 'Alpha сервер 0.2.2', 3 )
verJE( java_old, 'Alpha v1.2.0', 3 )

-- 1.1 (Client)
verJE( java_old, 'Alpha v1.1.2_01', 2 )
verJE( java_old, 'Alpha v1.1.2', 2 )
verJE( java_old, 'Alpha сервер 0.2.1', 2 )
verJE( java_old, 'Alpha v1.1.1', 2 )
verJE( java_old, 'Alpha сервер 0.2.0_01', 2 )
verJE( java_old, 'Alpha сервер 0.2.0', 2 )
verJE( java_old, 'Alpha v1.1.0', 2 )

-- 1.0 (Client)
verJE( java_old, 'Alpha v1.0.17_04', 1 )
verJE( java_old, 'Alpha v1.0.17_03', 1 )
verJE( java_old, 'Alpha v1.0.17_02', 1 )
verJE( java_old, 'Alpha сервер 0.1.4', 1 )
verJE( java_old, 'Alpha v1.0.17_01', unknown )
verJE( java_old, 'Alpha v1.0.17', unknown )
verJE( java_old, 'Alpha сервер 0.1.3', 14 )
verJE( java_old, 'Alpha v1.0.16_02', 14 )
verJE( java_old, 'Alpha сервер 0.1.2_01', 14 )
verJE( java_old, 'Alpha сервер 0.1.2', 14 )
verJE( java_old, 'Alpha v1.0.16_01', 14 )
verJE( java_old, 'Alpha сервер 0.1.1', 14 )
verJE( java_old, 'Alpha v1.0.16', 14 )
verJE( java_old, 'Alpha сервер 0.1.0', 13 )
verJE( java_old, 'Alpha v1.0.15', 13 )
-- These versions have a multiplayer button, but a specific server is hardcoded.
verJE( java_old, 'Alpha v1.0.14', 12 )
verJE( java_old, 'Alpha v1.0.13_01', 12 )
verJE( java_old, 'Alpha v1.0.13', 12 )
verJE( java_old, 'Alpha v1.0.12', 11 )
verJE( java_old, 'Alpha v1.0.11', 10 )
verJE( java_old, 'Alpha v1.0.10', 10 )
-- These versions have multiplayer code, but no multiplayer interface.
verJE( java_old, 'Alpha v1.0.9', 10 )
verJE( java_old, 'Alpha v1.0.8_01', 10 )
verJE( java_old, 'Alpha v1.0.8', 10 )
verJE( java_old, 'Alpha v1.0.7', 10 )
verJE( java_old, 'Alpha v1.0.6_03', 10 )
verJE( java_old, 'Alpha v1.0.6_02', 10 )
verJE( java_old, 'Alpha v1.0.6_01', 10 )
verJE( java_old, 'Alpha v1.0.6', 10 )
verJE( java_old, 'Alpha v1.0.5_01', 10 )
verJE( java_old, 'Alpha v1.0.5', 10 )
-- Multiplayer did not exist
verJE( java_old, 'Alpha v1.0.4', none )
verJE( java_old, 'Alpha v1.0.3', none )
verJE( java_old, 'Alpha v1.0.2_02', none )
verJE( java_old, 'Alpha v1.0.2_01', none )
verJE( java_old, 'Alpha v1.0.2', none )
verJE( java_old, 'Alpha v1.0.1_01', none )
verJE( java_old, 'Alpha v1.0.1', none )
verJE( java_old, 'Alpha v1.0.0', none )

-- INDEV + INFDEV - Multiplayer did not exist, all versions use the same title
verJE( java_old, 'Infdev', none )
verJE( java_old, 'Indev', none )
verJE( java_old, '0.31', none )

-- CLASSIC
verJE( java_old, 'Classic сервер 1.10.1', 7 )
verJE( java_old, 'Classic сервер 1.10', 7 )
verJE( java_old, 'Classic 0.30', 7 )
verJE( java_old, 'Classic 0.29_02', 7 )
verJE( java_old, 'Classic 0.29_01', 7 )
verJE( java_old, 'Classic сервер 1.9.1', 7 )
verJE( java_old, 'Classic 0.29', 7 )
verJE( java_old, 'Classic 0.28_01', 7 )
verJE( java_old, 'Classic сервер 1.9', 7 )
verJE( java_old, 'Classic сервер 1.8.3', 7 )
verJE( java_old, 'Classic 0.28', unknown )
verJE( java_old, 'Classic 0.27 SURVIVAL TEST', 6 )
verJE( java_old, 'Classic 0.26 SURVIVAL TEST', 6 )
verJE( java_old, 'Classic 0.25_05 SURVIVAL TEST', 6 )
verJE( java_old, 'Classic 0.25 SURVIVAL TEST', 6 )
verJE( java_old, 'Classic 0.24_SURVIVAL_TEST_03', 6 )
verJE( java_old, 'Classic 0.24_SURVIVAL_TEST_02', 6 )
verJE( java_old, 'Classic 0.24_SURVIVAL_TEST_01', 6 )
verJE( java_old, 'Classic 0.24_SURVIVAL_TEST', 6 )
verJE( java_old, 'Classic 0.0.23a_01', 6 )
verJE( java_old, 'Classic 0.0.23a', 6 )
verJE( java_old, 'Classic 0.0.22a_05', 6 )
verJE( java_old, 'Classic 0.0.22a_04', 6 )
verJE( java_old, 'Classic 0.0.22a_03', 6 )
verJE( java_old, 'Classic 0.0.22a_02', 6 )
verJE( java_old, 'Classic 0.0.22a_01', 6 )
verJE( java_old, 'Classic 0.0.22a', 6 )
verJE( java_old, 'Classic 0.0.21a_01', 6 )
verJE( java_old, 'Classic 0.0.21a', 6 )
verJE( java_old, 'Classic 0.0.20a_02', 6 )
verJE( java_old, 'Classic сервер 1.8.2', 6 )
verJE( java_old, 'Classic 0.0.20a_01', 6 )
verJE( java_old, 'Classic сервер 1.8.1', 6 )
verJE( java_old, 'Classic сервер 1.8', 6 )
verJE( java_old, 'Classic 0.0.20a', 6 )
verJE( java_old, 'Classic сервер 1.7', 5 )
verJE( java_old, 'Classic 0.0.19a_06', 5 )
verJE( java_old, 'Classic 0.0.19a_05', 5 )
verJE( java_old, 'Classic сервер 1.6', 5 )
verJE( java_old, 'Classic 0.0.19a_04', 5 )
verJE( java_old, 'Classic 0.0.19a_03', unknown )
verJE( java_old, 'Classic 0.0.19a_02', unknown )
verJE( java_old, 'Classic 0.0.19a_01', unknown )
verJE( java_old, 'Classic сервер 1.5', '5, 6' )
verJE( java_old, 'Classic 0.0.19a', unknown )
verJE( java_old, 'Classic 0.0.18a_02', 4 )
verJE( java_old, 'Classic сервер 1.4.1', 4 )
verJE( java_old, 'Classic 0.0.18a_01', 4 )
verJE( java_old, 'Classic 0.0.18a', 4 )
verJE( java_old, 'Classic сервер 1.4', 4 )
verJE( java_old, 'Classic сервер 1.3', 4 )
verJE( java_old, 'Classic 0.0.17a', 4 )
verJE( java_old, 'Classic сервер 1.2', 3 )
verJE( java_old, 'Classic 0.0.16a_02', 3 )
verJE( java_old, 'Classic сервер 1.1', unknown )
verJE( java_old, 'Classic 0.0.16a_01', unknown )
verJE( java_old, 'Classic сервер 1.0', unknown )
verJE( java_old, 'Classic 0.0.16a', unknown )
verJE( java_old, 'Classic 0.0.15a_03', unknown )
verJE( java_old, 'Classic 0.0.15a_02', unknown )
verJE( java_old, 'Classic 0.0.15a_01', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 8)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 7)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 6)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 5)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 4)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 3)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 2)', unknown )
verJE( java_old, 'Classic 0.0.15a (Multiplayer Test 1)', none )
-- Multiplayer did not exist
verJE( java_old, 'Classic 0.0.14a_08', none )
verJE( java_old, 'Classic 0.0.14a_07', none )
verJE( java_old, 'Classic 0.0.14a_06', none )
verJE( java_old, 'Classic 0.0.14a_05', none )
verJE( java_old, 'Classic 0.0.14a_04', none )
verJE( java_old, 'Classic 0.0.14a_03', none )
verJE( java_old, 'Classic 0.0.14a_01', none )
verJE( java_old, 'Classic 0.0.14a', none )
verJE( java_old, 'Classic 0.0.13a_03', none )
verJE( java_old, 'Classic 0.0.13a', none )
verJE( java_old, 'Classic 0.0.12a_03', none )
verJE( java_old, 'Classic 0.0.12a_02', none )
verJE( java_old, 'Classic 0.0.12a_01', none )
verJE( java_old, 'Classic 0.0.12a', none )
verJE( java_old, 'Classic 0.0.11a', none )
verJE( java_old, 'Classic 0.0.10a', none )
verJE( java_old, 'Classic 0.0.9a', none )
verJE( java_old, 'Classic 0.0.4a', none )
verJE( java_old, 'Classic 0.0.3a', none )
verJE( java_old, 'Classic 0.0.2a', none )
verJE( java_old, 'Classic 0.0.1a', none )


-- April Fools'
verJE( java_af, '24w14potato', 0x400000B7, 3824, 30, 36 )
verJE( java_af, '23w13a_or_b', 0x40000081, 3444, 13, 13 )
verJE( java_af, '22w13oneBlockAtATime', 0x4000004D, 3076, 8, 9 )
verJE( java_af, '20w14∞', 709, 2522, 5, 5 )
verJE( java_af, '3D Shareware v1.34', 1, 1943, 4, 4 )
verJE( java_af, '1.RV-Pre1', 108, 173, 2 )
verJE( java_af, '15w14a', 48, nil, 1 )
verJE( java_af, '2.0', 'Blue: 90<br />Red: 91<br />Purple: 92' )




-- POCKET/BEDROCK EDITION
-- Source: http://pmmp.readthedocs.io/en/rtfd/supportedMCPEversions.html
-- (Licensed under LGPL3, used with permission from author)
-- Protocol version can be found at the end of the profile settings (Settings > Profile)

-- 1.21
verBE(pocket, 'Preview 1.21.80.20', 790)
verBE(pocket, 'Preview 1.21.70.26', 786)
verBE(pocket, 'Preview 1.21.70.25', 786)
verBE(pocket, 'Preview 1.21.70.24', 785)
verBE(pocket, 'Preview 1.21.70.23', 785)
verBE(pocket, 'Preview 1.21.70.22', 784)
verBE(pocket, 'Preview 1.21.70.20', 780)
verBE(pocket, 'v1.21.62', 776)
verBE(pocket, 'v1.21.61', 776)
verBE(pocket, 'v1.21.60', 776)
verBE(pocket, 'Preview 1.21.60.28', 776)
verBE(pocket, 'Preview 1.21.60.27', 776)
verBE(pocket, 'Preview 1.21.60.25', 776)
verBE(pocket, 'Preview 1.21.60.24', 775)
verBE(pocket, 'Preview 1.21.60.23', 772)
verBE(pocket, 'Preview 1.21.60.21', 768)
verBE(pocket, 'v1.21.51', 766)
verBE(pocket, 'v1.21.50', 766)
verBE(pocket, 'Preview 1.21.50.30', 766)
verBE(pocket, 'Preview 1.21.50.29', 766)
verBE(pocket, 'Preview 1.21.50.28', 765)
verBE(pocket, 'Preview 1.21.50.26', 765)
verBE(pocket, 'Preview 1.21.50.25', 761)
verBE(pocket, 'Preview 1.21.50.24', 757)
verBE(pocket, 'Preview 1.21.50.20', 757)
verBE(pocket, 'v1.21.44', 748)
verBE(pocket, 'v1.21.43', 748)
verBE(pocket, 'v1.21.42', 748)
verBE(pocket, 'v1.21.41', 748)
verBE(pocket, 'v1.21.40', 748)
verBE(pocket, 'Preview 1.21.40.25', 748)
verBE(pocket, 'Preview 1.21.40.23', 748)
verBE(pocket, 'Preview 1.21.40.22', 747)
verBE(pocket, 'Preview 1.21.40.21', 741)
verBE(pocket, 'Preview 1.21.40.20', 736)
verBE(pocket, 'v1.21.31', 729)
verBE(pocket, 'v1.21.30', 729)
verBE(pocket, 'Preview 1.21.30.25', 729)
verBE(pocket, 'Preview 1.21.30.24', 729)
verBE(pocket, 'Preview 1.21.30.23', 726)
verBE(pocket, 'Preview 1.21.30.22', 723)
verBE(pocket, 'Preview 1.21.30.21', 721)
verBE(pocket, 'v1.21.23', 712)
verBE(pocket, 'v1.21.22', 712)
verBE(pocket, 'v1.21.21', 712)
verBE(pocket, 'v1.21.20', 712)
verBE(pocket, 'Preview 1.21.20.24', 712)
verBE(pocket, 'Preview 1.21.20.23', 712)
verBE(pocket, 'Preview 1.21.20.22', 712)
verBE(pocket, 'Preview 1.21.20.21', 708)
verBE(pocket, 'Preview 1.21.10.24', 705)
verBE(pocket, 'Preview 1.21.10.23', 705)
verBE(pocket, 'Preview 1.21.10.22', 704)
verBE(pocket, 'Preview 1.21.10.21', 693)
verBE(pocket, 'Preview 1.21.10.20', 691)
verBE(pocket, 'v1.21.3', 686)
verBE(pocket, 'v1.21.2', 686)
verBE(pocket, 'v1.21.1', 685)
verBE(pocket, 'v1.21.0', 685)
verBE(pocket, 'Preview 1.21.0.26', 685)
verBE(pocket, 'Preview 1.21.0.25', 685)
verBE(pocket, 'Preview 1.21.0.24', 685)
verBE(pocket, 'Preview 1.21.0.23', 683)
verBE(pocket, 'Preview 1.21.0.22', 682)
verBE(pocket, 'Preview 1.21.0.21', 679)
verBE(pocket, 'Preview 1.21.0.20', 676)

-- 1.20
verBE(pocket, 'v1.20.81', 671)
verBE(pocket, 'v1.20.80', 671)
verBE(pocket, 'Preview 1.20.80.24', 671)
verBE(pocket, 'Preview 1.20.80.23', 671)
verBE(pocket, 'Preview 1.20.80.22', 668)
verBE(pocket, 'Preview 1.20.80.21', 665)
verBE(pocket, 'Preview 1.20.80.20', 665)
verBE(pocket, 'v1.20.73', 662)
verBE(pocket, 'v1.20.72', 662)
verBE(pocket, 'v1.20.71', 662)
verBE(pocket, 'v1.20.70', 662)
verBE(pocket, 'Preview 1.20.70.25', 662)
verBE(pocket, 'Preview 1.20.70.24', 662)
verBE(pocket, 'Preview 1.20.70.22', 658)
verBE(pocket, 'Preview 1.20.70.21', 657)
verBE(pocket, 'Preview 1.20.70.20', 654)
verBE(pocket, 'v1.20.62', 649)
verBE(pocket, 'v1.20.60', 649)
verBE(pocket, 'Preview 1.20.60.26', 649)
verBE(pocket, 'Preview 1.20.60.25', 649)
verBE(pocket, 'Preview 1.20.60.24', 649)
verBE(pocket, 'Preview 1.20.60.23', 646)
verBE(pocket, 'Preview 1.20.60.22', 642)
verBE(pocket, 'Preview 1.20.60.21', 640)
verBE(pocket, 'Preview 1.20.60.20', 634)
verBE(pocket, 'v1.20.51', 630)
verBE(pocket, 'v1.20.50', 630)
verBE(pocket, 'Preview 1.20.50.24', 630)
verBE(pocket, 'Preview 1.20.50.23', 630)
verBE(pocket, 'Preview 1.20.50.22', 628)
verBE(pocket, 'Preview 1.20.50.21', 627)
verBE(pocket, 'Preview 1.20.50.20', 625)
verBE(pocket, 'v1.20.41', 622)
verBE(pocket, 'v1.20.40', 622)
verBE(pocket, 'Preview 1.20.40.24', 622)
verBE(pocket, 'Preview 1.20.40.23', 622)
verBE(pocket, 'Preview 1.20.40.22', 622)
verBE(pocket, 'Preview 1.20.40.21', 622)
verBE(pocket, 'Preview 1.20.40.20', 620)
verBE(pocket, 'v1.20.32', 618)
verBE(pocket, 'v1.20.31', 618)
verBE(pocket, 'v1.20.30', 618)
verBE(pocket, 'Preview 1.20.30.25', 613)
verBE(pocket, 'Preview 1.20.30.24', 613)
verBE(pocket, 'beta 1.20.30.23', 613)
verBE(pocket, 'Preview 1.20.30.22', 613)
verBE(pocket, 'Preview 1.20.30.21', 612)
verBE(pocket, 'Preview 1.20.30.20', 612)
verBE(pocket, 'Preview 1.20.20.23', 609)
verBE(pocket, 'Preview 1.20.20.22', 607)
verBE(pocket, 'Preview 1.20.20.21', 606)
verBE(pocket, 'Preview 1.20.20.20', 598)
verBE(pocket, 'v1.20.15', 594)
verBE(pocket, 'v1.20.14', 594)
verBE(pocket, 'v1.20.13', 594)
verBE(pocket, 'v1.20.12', 594)
verBE(pocket, 'v1.20.10', 594)
verBE(pocket, 'beta 1.20.10.25', 594)
verBE(pocket, 'Preview 1.20.10.24', 594)
verBE(pocket, 'Preview 1.20.10.23', 594)
verBE(pocket, 'Preview 1.20.10.21', 593)
verBE(pocket, 'Preview 1.20.10.20', 592)
verBE(pocket, 'v1.20.1', 589)
verBE(pocket, 'v1.20.0', 589)
verBE(pocket, 'Preview 1.20.0.25', 589)
verBE(pocket, 'Preview 1.20.0.24', 588)
verBE(pocket, 'Preview 1.20.0.23', 588)
verBE(pocket, 'Preview 1.20.0.22', 588)
verBE(pocket, 'Preview 1.20.0.21', 586)
verBE(pocket, 'Preview 1.20.0.20', 585)

-- 1.19
verBE(pocket, 'v1.19.83', 582)
verBE(pocket, 'v1.19.81', 582)
verBE(pocket, 'v1.19.80', 582)
verBE(pocket, 'Preview 1.19.80.24', 582)
verBE(pocket, 'Preview 1.19.80.23', 582)
verBE(pocket, 'Preview 1.19.80.22', 582)
verBE(pocket, 'Preview 1.19.80.21', 579)
verBE(pocket, 'Preview 1.19.80.20', 579)
verBE(pocket, 'v1.19.73', 575)
verBE(pocket, 'v1.19.72', 575)
verBE(pocket, 'v1.19.71', 575)
verBE(pocket, 'v1.19.70', 575)
verBE(pocket, 'Preview 1.19.70.26', 574)
verBE(pocket, 'Preview 1.19.70.24', 574)
verBE(pocket, 'Preview 1.19.70.23', 573)
verBE(pocket, 'Preview 1.19.70.22', 571)
verBE(pocket, 'Preview 1.19.70.21', 569)
verBE(pocket, 'Preview 1.19.70.20', 569)
verBE(pocket, 'v1.19.63', 568)
verBE(pocket, 'v1.19.62', 567)
verBE(pocket, 'v1.19.60', 567)
verBE(pocket, 'Preview 1.19.60.27', 567)
verBE(pocket, 'Preview 1.19.60.26', 567)
verBE(pocket, 'Preview 1.19.60.25', 565)
verBE(pocket, 'Preview 1.19.60.24', 563)
verBE(pocket, 'Preview 1.19.60.23', 562)
verBE(pocket, 'Preview 1.19.60.22', 562)
verBE(pocket, 'Preview 1.19.60.20', 561)
verBE(pocket, 'v1.19.51', 560)
verBE(pocket, 'v1.19.50', 560)
verBE(pocket, 'Preview 1.19.50.25', 560)
verBE(pocket, 'Preview 1.19.50.24', 560)
verBE(pocket, 'Preview 1.19.50.23', 560)
verBE(pocket, 'Preview 1.19.50.22', 560)
verBE(pocket, 'Preview 1.19.50.21', 559)
verBE(pocket, 'Preview 1.19.50.20', 558)
verBE(pocket, 'v1.19.41', 557)
verBE(pocket, 'v1.19.40', 557)
verBE(pocket, 'Preview 1.19.40.24', 557)
verBE(pocket, 'Preview 1.19.40.23', 557)
verBE(pocket, 'Preview 1.19.40.22', 555)
verBE(pocket, 'Preview 1.19.40.21', 555)
verBE(pocket, 'Preview 1.19.40.20', 554)
verBE(pocket, 'v1.19.31', 554)
verBE(pocket, 'v1.19.30', 554)
verBE(pocket, 'Preview 1.19.30.25', 553)
verBE(pocket, 'Preview 1.19.30.24', 553)
verBE(pocket, 'Preview 1.19.30.23', 553)
verBE(pocket, 'Preview 1.19.30.22', 552)
verBE(pocket, 'Preview 1.19.30.21', 552)
verBE(pocket, 'Preview 1.19.30.20', 551)
verBE(pocket, 'v1.19.22', 545)
verBE(pocket, 'v1.19.21', 545)
verBE(pocket, 'v1.19.20', 544)
verBE(pocket, 'Preview 1.19.20.24', 544)
verBE(pocket, 'Preview 1.19.20.23', 543)
verBE(pocket, 'Preview 1.19.20.22', 542)
verBE(pocket, 'Preview 1.19.20.20', 542)
verBE(pocket, 'v1.19.11', 534)
verBE(pocket, 'v1.19.10', 534)
verBE(pocket, 'Preview 1.19.10.24', 534)
verBE(pocket, 'Preview 1.19.10.23', 534)
verBE(pocket, 'Preview 1.19.10.22', 533)
verBE(pocket, 'Preview 1.19.10.21', 532)
verBE(pocket, 'Preview 1.19.10.20', 530)
verBE(pocket, 'v1.19.2', 527)
verBE(pocket, 'v1.19.0', 527)
verBE(pocket, 'Preview 1.19.0.68', 526)
verBE(pocket, 'Preview 1.19.0.35', 526)
verBE(pocket, 'Preview 1.19.0.33', 526)
verBE(pocket, 'Preview 1.19.0.31', 526)
verBE(pocket, 'Preview 1.19.0.29', 524)
verBE(pocket, 'Preview 1.19.0.27', 516)
verBE(pocket, 'Preview 1.19.0.25', 514)
verBE(pocket, 'Preview 1.19.0.21', 512)

-- 1.18
verBE(pocket, 'v1.18.33', 503)
verBE(pocket, 'v1.18.32', 503)
verBE(pocket, 'v1.18.31', 503)
verBE(pocket, 'v1.18.30', 503)
verBE(pocket, 'Preview 1.18.30.33', 503)
verBE(pocket, 'Preview 1.18.30.31', 503)
verBE(pocket, 'Preview 1.18.30.29', 503)
verBE(pocket, 'Preview 1.18.30.27', 498)
verBE(pocket, 'Preview 1.18.30.23', 497)
verBE(pocket, 'Preview 1.18.30.21', 495)
verBE(pocket, 'Preview 1.18.20.30', 491)
verBE(pocket, 'Preview 1.18.20.28', 491)
verBE(pocket, 'Preview 1.18.20.26', 491)
verBE(pocket, 'Preview 1.18.20.24', '1.18.20.23: 490<br />1.18.20.24: 491')
verBE(pocket, 'beta 1.18.20.21', 490)
verBE(pocket, 'v1.18.12', 486)
verBE(pocket, 'v1.18.11', 486)
verBE(pocket, 'v1.18.10', 486)
verBE(pocket, 'beta 1.18.10.28', 486)
verBE(pocket, 'beta 1.18.10.27', 485)
verBE(pocket, 'beta 1.18.10.26', 485)
verBE(pocket, 'beta 1.18.10.24', 479)
verBE(pocket, 'beta 1.18.10.22', 477)
verBE(pocket, 'beta 1.18.10.21', 476)
verBE(pocket, 'beta 1.18.10.20', 476)
verBE(pocket, 'v1.18.2', 475)
verBE(pocket, 'v1.18.1', 475)
verBE(pocket, 'v1.18.0', 475)
verBE(pocket, 'beta 1.18.0.27', 475)
verBE(pocket, 'beta 1.18.0.25', 475)
verBE(pocket, 'beta 1.18.0.24', 475)
verBE(pocket, 'beta 1.18.0.23', 476)
verBE(pocket, 'beta 1.18.0.22', 476)
verBE(pocket, 'beta 1.18.0.21', 474)
verBE(pocket, 'beta 1.18.0.20', 474)

-- 1.17
verBE(pocket, 'v1.17.41', 471)
verBE(pocket, 'v1.17.40', 471)
verBE(pocket, 'beta 1.17.40.23', 471)
verBE(pocket, 'beta 1.17.40.21', 471)
verBE(pocket, 'beta 1.17.40.20', 471)
verBE(pocket, 'v1.17.34', 465)
verBE(pocket, 'v1.17.33', 465)
verBE(pocket, 'v1.17.32', 465)
verBE(pocket, 'v1.17.30', 465)
verBE(pocket, 'beta 1.17.30.25', 465)
verBE(pocket, 'beta 1.17.30.24', 464)
verBE(pocket, 'beta 1.17.30.23', 464)
verBE(pocket, 'beta 1.17.30.22', 464)
verBE(pocket, 'beta 1.17.30.21', 462)
verBE(pocket, 'beta 1.17.30.20', 462)
verBE(pocket, 'beta 1.17.20.23', 459)
verBE(pocket, 'beta 1.17.20.22', 456)
verBE(pocket, 'beta 1.17.20.21', 455)
verBE(pocket, 'beta 1.17.20.20', 453)
verBE(pocket, 'v1.17.11', 448)
verBE(pocket, 'v1.17.10', 448)
verBE(pocket, 'beta 1.17.10.23', 448)
verBE(pocket, 'beta 1.17.10.22', 448)
verBE(pocket, 'beta 1.17.10.21', 441)
verBE(pocket, 'beta 1.17.10.20', 441)
verBE(pocket, 'v1.17.2', 440)
verBE(pocket, 'v1.17.1', 440)
verBE(pocket, 'v1.17.0', 440)
verBE(pocket, 'beta 1.17.0.58', 440)
verBE(pocket, 'beta 1.17.0.56', 440)
verBE(pocket, 'beta 1.17.0.54', 440)
verBE(pocket, 'beta 1.17.0.52', 437)
verBE(pocket, 'beta 1.17.0.50', 437)
verBE(pocket, 'beta 1.16.230.56', 435)
verBE(pocket, 'beta 1.16.230.54', 435)
verBE(pocket, 'beta 1.16.230.52', 434)
verBE(pocket, 'beta 1.16.230.50', 433)

-- 1.16
verBE(pocket, 'v1.16.221', 431)
verBE(pocket, 'v1.16.220', 431)
verBE(pocket, 'beta 1.16.220.52', 431)
verBE(pocket, 'beta 1.16.220.51', 430)
verBE(pocket, 'beta 1.16.220.50', 429)
verBE(pocket, 'v1.16.210', 428)
verBE(pocket, 'beta 1.16.210.61', 428)
verBE(pocket, 'beta 1.16.210.60', 428)
verBE(pocket, 'beta 1.16.210.59', 428)
verBE(pocket, 'beta 1.16.210.58', 428)
verBE(pocket, 'beta 1.16.210.57', 427)
verBE(pocket, 'beta 1.16.210.56', 427)
verBE(pocket, 'beta 1.16.210.55', 425)
verBE(pocket, 'beta 1.16.210.54', 425)
verBE(pocket, 'beta 1.16.210.53', 424)
verBE(pocket, 'beta 1.16.210.51', 423)
verBE(pocket, 'beta 1.16.210.50', 423)
verBE(pocket, 'v1.16.201', 422)
verBE(pocket, 'v1.16.200', 422)
verBE(pocket, 'beta 1.16.200.57', 422)
verBE(pocket, 'beta 1.16.200.56', 422)
verBE(pocket, 'beta 1.16.200.55', 422)
verBE(pocket, 'beta 1.16.200.54', 422) -- 971620054, not released to the public
verBE(pocket, 'beta 1.16.200.53', 422)
verBE(pocket, 'beta 1.16.200.52', 421)
verBE(pocket, 'beta 1.16.200.51', 420)
verBE(pocket, 'beta 1.16.200.50', 420) -- 971620050, not released to the public
verBE(pocket, 'v1.16.101', 419)
verBE(pocket, 'v1.16.100', 419)
verBE(pocket, 'beta 1.16.100.60', 419)
verBE(pocket, 'beta 1.16.100.59', 418)
verBE(pocket, 'beta 1.16.100.58', 417)
verBE(pocket, 'beta 1.16.100.57', 416)
verBE(pocket, 'beta 1.16.100.56', 415)
verBE(pocket, 'beta 1.16.100.55', 414)
verBE(pocket, 'beta 1.16.100.54', 413)
verBE(pocket, 'beta 1.16.100.53', 412)
verBE(pocket, 'beta 1.16.100.52', 411)
verBE(pocket, 'beta 1.16.100.51', 410)
verBE(pocket, 'beta 1.16.100.50', 409)
verBE(pocket, 'beta 1.16.30.57', 418) -- RTX beta
verBE(pocket, 'beta 1.16.30.56', 418) -- RTX beta
verBE(pocket, 'beta 1.16.30.53', 407) -- RTX beta
verBE(pocket, 'beta 1.16.30.52', 407) -- RTX beta
verBE(pocket, 'v1.16.61', 408)
verBE(pocket, 'v1.16.60', 408)
verBE(pocket, 'v1.16.50', 408)
verBE(pocket, 'v1.16.42', 408)
verBE(pocket, 'v1.16.40', 408)
verBE(pocket, 'v1.16.21', 408)
verBE(pocket, 'v1.16.20', 408)
verBE(pocket, 'beta 1.16.20.54', 408)
verBE(pocket, 'beta 1.16.20.53', 408)
verBE(pocket, 'beta 1.16.20.52', 407)
verBE(pocket, 'beta 1.16.20.51', 407) -- 943162051, not released to the public
verBE(pocket, 'beta 1.16.20.50', 407)
verBE(pocket, 'v1.16.10', 407)
verBE(pocket, 'v1.16.1.04', 407)
verBE(pocket, 'v1.16.1.03', 407)
verBE(pocket, 'v1.16.1', 407)
verBE(pocket, 'v1.16.0', 407)
verBE(pocket, 'beta 1.16.0.68', 407)
verBE(pocket, 'beta 1.16.0.67', 407)
verBE(pocket, 'beta 1.16.0.66', 407)
verBE(pocket, 'beta 1.16.0.65', 407) -- 943160065, not released to the public
verBE(pocket, 'beta 1.16.0.64', 407)
verBE(pocket, 'beta 1.16.0.63', 406)
verBE(pocket, 'beta 1.16.0.61', 405)
verBE(pocket, 'beta 1.16.0.60', 404)
verBE(pocket, 'beta 1.16.0.59', 401)
verBE(pocket, 'beta 1.16.0.58', 401)
verBE(pocket, 'beta 1.16.0.57', 403)
verBE(pocket, 'beta 1.16.0.55', 402)
verBE(pocket, 'beta 1.16.0.54', 402) -- 941160054, not released to the public
verBE(pocket, 'beta 1.16.0.53', 401)
verBE(pocket, 'beta 1.16.0.52', 401) -- 941160052, not released to the public
verBE(pocket, 'beta 1.16.0.51', 400)
verBE(pocket, 'beta 1.15.0.56', 396)
verBE(pocket, 'beta 1.15.0.55', 395)
verBE(pocket, 'beta 1.15.0.54', 394)
verBE(pocket, 'beta 1.15.0.53', 393)
verBE(pocket, 'beta 1.15.0.51', 392)
verBE(pocket, 'beta 1.15.0.11', 391) -- RTX beta
verBE(pocket, 'beta 1.15.0.9', 391) -- RTX beta
verBE(pocket, 'beta 1.15.0.8', 391) -- RTX beta

-- 1.14
verBE(pocket, 'v1.14.60', 390)
verBE(pocket, 'v1.14.41', 389)
verBE(pocket, 'v1.14.30', 389)
verBE(pocket, 'beta 1.14.30.51', 389)
verBE(pocket, 'v1.14.21', 389)
verBE(pocket, 'v1.14.20', 389)
verBE(pocket, 'beta 1.14.25.1', 389)
verBE(pocket, 'beta 1.14.2.51', 389)
verBE(pocket, 'beta 1.14.2.50', 389)
verBE(pocket, 'v1.14.1', 389)
verBE(pocket, 'beta 1.14.1.3', 389)
verBE(pocket, 'beta 1.14.1.2', 389)
verBE(pocket, 'v1.14.0.12', 389)
verBE(pocket, 'v1.14.0', 389)
verBE(pocket, 'beta 1.14.0.52', 389)
verBE(pocket, 'beta 1.14.0.51', 389)
verBE(pocket, 'beta 1.14.0.50', 389)
verBE(pocket, 'beta 1.14.0.6', 389)
verBE(pocket, 'beta 1.14.0.5', 389) -- 941140005, not released to the public
verBE(pocket, 'beta 1.14.0.4', 389)
verBE(pocket, 'beta 1.14.0.3', 389)
verBE(pocket, 'beta 1.14.0.2', 389)
verBE(pocket, 'beta 1.14.0.1', 390)

-- 1.13
verBE(pocket, 'v1.13.3', 388)
verBE(pocket, 'v1.13.2', 388)
verBE(pocket, 'v1.13.1', 388)
verBE(pocket, 'v1.13.0', 388)
verBE(pocket, 'beta 1.13.0.18', 389)
verBE(pocket, 'beta 1.13.0.17', 388)
verBE(pocket, 'beta 1.13.0.16', 388)
verBE(pocket, 'beta 1.13.0.15', 387)
verBE(pocket, 'beta 1.13.0.13', 386)
verBE(pocket, 'beta 1.13.0.9', 385)
verBE(pocket, 'beta 1.13.0.6', 371)
verBE(pocket, 'beta 1.13.0.5', 371)
verBE(pocket, 'beta 1.13.0.4', 371)
verBE(pocket, 'beta 1.13.0.3', 372) -- 871130003, not released to the public
verBE(pocket, 'beta 1.13.0.2', 370)
verBE(pocket, 'beta 1.13.0.1', 370)

-- 1.12
verBE(pocket, 'v1.12.1', 361)
verBE(pocket, 'v1.12.0', 361)
verBE(pocket, 'beta 1.12.0.14', 361)
verBE(pocket, 'beta 1.12.0.13', 361)
verBE(pocket, 'beta 1.12.0.12', 361)
verBE(pocket, 'beta 1.12.0.11', 361)
verBE(pocket, 'beta 1.12.0.10', 361)
verBE(pocket, 'beta 1.12.0.9', 361)
verBE(pocket, 'beta 1.12.0.6', 361)
verBE(pocket, 'beta 1.12.0.4', 361)
verBE(pocket, 'beta 1.12.0.3', 361)
verBE(pocket, 'beta 1.12.0.2', 360)

-- 1.11
verBE(pocket, 'v1.11.4', 354)
verBE(pocket, 'v1.11.3', 354)
verBE(pocket, 'v1.11.2', 354)
verBE(pocket, 'v1.11.1', 354)
verBE(pocket, 'v1.11.0', 354)
verBE(pocket, 'beta 1.11.0.10', 354)
verBE(pocket, 'beta 1.11.0.9', 354)
verBE(pocket, 'beta 1.11.0.8', 354)
verBE(pocket, 'beta 1.11.0.7', 354)
verBE(pocket, 'beta 1.11.0.5', 353)
verBE(pocket, 'beta 1.11.0.4', 352)
verBE(pocket, 'beta 1.11.0.3', 351)
verBE(pocket, 'beta 1.11.0.1', 350)

-- 1.10
verBE(pocket, 'v1.10.1', 340)
verBE(pocket, 'v1.10.0', 340)
verBE(pocket, 'beta 1.10.0.4', 340)
verBE(pocket, 'beta 1.10.0.3', 340)

-- 1.9
verBE(pocket, 'v1.9.0', 332)
verBE(pocket, 'beta 1.9.0.5', 332)
verBE(pocket, 'beta 1.9.0.3', 332)
verBE(pocket, 'beta 1.9.0.2', 331)
verBE(pocket, 'beta 1.9.0.0', 330)

-- 1.8
verBE(pocket, 'v1.8.1', 313)
verBE(pocket, 'v1.8.0', 313)
verBE(pocket, 'beta 1.8.0.14', 312)
verBE(pocket, 'beta 1.8.0.13', 312)
verBE(pocket, 'beta 1.8.0.11', 312)
verBE(pocket, 'beta 1.8.0.10', 311)
verBE(pocket, 'beta 1.8.0.8', 310)

-- 1.7
verBE(pocket, 'v1.7.1', 291)
verBE(pocket, 'v1.7.0', 291)
verBE(pocket, 'beta 1.7.0.9', 291)
verBE(pocket, 'beta 1.7.0.7', 291)
verBE(pocket, 'beta 1.7.0.5', 291)
verBE(pocket, 'beta 1.7.0.3', 290)
verBE(pocket, 'beta 1.7.0.2', 290)

-- 1.6
verBE(pocket, 'v1.6.2', 282)
verBE(pocket, 'v1.6.1', 282)
verBE(pocket, 'v1.6.0', 282)
verBE(pocket, 'beta 1.6.0.30', 282)
verBE(pocket, 'beta 1.6.0.8', 282)
verBE(pocket, 'beta 1.6.0.6', 281)
verBE(pocket, 'beta 1.6.0.5', 281)
verBE(pocket, 'beta 1.6.0.1', 280)

-- 1.5
verBE(pocket, 'v1.5.3', 274)
verBE(pocket, 'v1.5.2', 274)
verBE(pocket, 'v1.5.1', 274)
verBE(pocket, 'v1.5.0', 274)
verBE(pocket, 'beta 1.5.0.10', 274)
verBE(pocket, 'beta 1.5.0.7', 273)
verBE(pocket, 'beta 1.5.0.4', 271)
verBE(pocket, 'beta 1.5.0.1', 271)
verBE(pocket, 'beta 1.5.0.0', 270)

-- 1.4
verBE(pocket, 'v1.4.4', 261)
verBE(pocket, 'v1.4.3', 261)
verBE(pocket, 'v1.4.2', 261)
verBE(pocket, 'v1.4.1', 261)
verBE(pocket, 'v1.4.0', 261)
verBE(pocket, 'beta 1.2.20.2', 260)
verBE(pocket, 'beta 1.2.20.1', 260)
verBE(pocket, 'beta 1.2.14.3', 240)
verBE(pocket, 'beta 1.2.14.2', 240)

-- 1.2
verBE(pocket, 'v1.2.13.60', 223)
verBE(pocket, 'v1.2.15', 223)
verBE(pocket, 'v1.2.14', 223)
verBE(pocket, 'v1.2.13', 223)
verBE(pocket, 'beta 1.2.13.12', 223)
verBE(pocket, 'beta 1.2.13.11', 224)
verBE(pocket, 'beta 1.2.13.10', 222)
verBE(pocket, 'beta 1.2.13.8', 221)
verBE(pocket, 'beta 1.2.13.6', 220)
verBE(pocket, 'beta 1.2.13.5', 220)
--verBE(pocket, 'v1.2.12', 200)
verBE(pocket, 'v1.2.11', 201)
verBE(pocket, 'v1.2.10', 201)
verBE(pocket, 'beta 1.2.10.1', 200)
verBE(pocket, 'v1.2.9', 160)
verBE(pocket, 'v1.2.8', 160)
verBE(pocket, 'v1.2.7', 160)
verBE(pocket, 'v1.2.6.1', 150)
verBE(pocket, 'v1.2.6', 150)
verBE(pocket, 'beta 1.2.6.2', 140)
verBE(pocket, 'v1.2.5', 141)
verBE(pocket, 'beta 1.2.5.15', 141)
verBE(pocket, 'beta 1.2.5.12', 140)
verBE(pocket, 'beta 1.2.5.0', 137)
verBE(pocket, 'v1.2.3', 137)
verBE(pocket, 'beta 1.2.3.3', 137)
verBE(pocket, 'v1.2.2', 137)
verBE(pocket, 'v1.2.1', 137)
verBE(pocket, 'v1.2.0', 137)
verBE(pocket, 'beta 1.2.0.31', 136)
verBE(pocket, 'beta 1.2.0.25', 135)
verBE(pocket, 'beta 1.2.0.22', 134)
verBE(pocket, 'beta 1.2.0.18', 133)
verBE(pocket, 'beta 1.2.0.15', 132)
verBE(pocket, 'beta 1.2.0.11', 132)
verBE(pocket, 'beta 1.2.0.9', 131)
verBE(pocket, 'beta 1.2.0.7', 131)
verBE(pocket, 'beta 1.2.0.2', 130)

-- 1.1
verPE(pocket, 'v1.1.7', 113)
verPE(pocket, 'v1.1.5', 113)
verPE(pocket, 'v1.1.4', 113)
verPE(pocket, 'v1.1.3', 113)
verPE(pocket, 'alpha 1.1.3.1', 113)
verPE(pocket, 'alpha 1.1.3.0', 113)
verPE(pocket, 'v1.1.2', 113)
verPE(pocket, 'v1.1.1', 113)
verPE(pocket, 'alpha 1.1.1.1', 113)
verPE(pocket, 'alpha 1.1.1.0', 113)
verPE(pocket, 'v1.1.0', 113)
verPE(pocket, 'alpha 1.1.0.9', 112)
verPE(pocket, 'alpha 1.1.0.8', 111)
verPE(pocket, 'alpha 1.1.0.5', 110)
verPE(pocket, 'alpha 1.1.0.4', 110)
verPE(pocket, 'alpha 1.1.0.3', 110)
verPE(pocket, 'alpha 1.1.0.1', 110)
verPE(pocket, 'alpha 1.1.0.0', 110)

-- 1.0
verPE(pocket, 'v1.0.9', 107)
verPE(pocket, 'v1.0.8', 107)
verPE(pocket, 'v1.0.7', 107)
verPE(pocket, 'v1.0.6', 106)
verPE(pocket, 'alpha 1.0.6.0', 105)
verPE(pocket, 'v1.0.5', 105)
verPE(pocket, 'alpha 1.0.5.11', 105)
verPE(pocket, 'alpha 1.0.5.3', 105)
verPE(pocket, 'alpha 1.0.5.0', 105)
verPE(pocket, 'v1.0.4', 102)
verPE(pocket, 'alpha 1.0.4.1', 102)
verPE(pocket, 'alpha 1.0.4.0', 101)
verPE(pocket, 'v1.0.3', 101)
verPE(pocket, 'alpha 1.0.3.0', 101)
verPE(pocket, 'v1.0.2', 100)
verPE(pocket, 'v1.0.1', 100)
verPE(pocket, 'v1.0.0', 100)
verPE(pocket, 'alpha 1.0.0.7', 100)
verPE(pocket, 'alpha 1.0.0.2', 100)
verPE(pocket, 'alpha 1.0.0.1', 92)
verPE(pocket, 'alpha 1.0.0.0', 92)
verPE(pocket, 'alpha 0.17.0.2', 91)
verPE(pocket, 'alpha 0.17.0.1', 91)

-- PE ALPHA

-- 0.16
verPE(pocket, 'v0.16.2', 91)
verPE(pocket, 'v0.16.1', 91)
verPE(pocket, 'v0.16.0', 91)
verPE(pocket, 'v0.16.0 alpha build 5', 90)
verPE(pocket, 'v0.16.0 alpha build 4', 90)
verPE(pocket, 'v0.16.0 alpha build 3', 90)
verPE(pocket, 'v0.16.0 alpha build 2', 90)
verPE(pocket, 'v0.16.0 alpha build 1', 90)
verPE(pocket, 'v0.15.90.1 alpha build 1', 90)
verPE(pocket, 'v0.15.90 alpha build 1', 90)

-- 0.15
verPE(pocket, 'v0.15.10', 84)
verPE(pocket, 'v0.15.9', 83)
verPE(pocket, 'v0.15.8', 82)
verPE(pocket, 'v0.15.7', 82)
verPE(pocket, 'v0.15.6', 82)
verPE(pocket, 'v0.15.5', 82)
verPE(pocket, 'v0.15.4', 82)
verPE(pocket, 'v0.15.3', 81)
verPE(pocket, 'v0.15.2', 81)
verPE(pocket, 'v0.15.1', 81)
verPE(pocket, 'v0.15.1 alpha build 1', 81)
verPE(pocket, 'v0.15.0', 81)
verPE(pocket, 'v0.15.0 alpha build 3', 81)
verPE(pocket, 'v0.15.0 alpha build 2', 81)
verPE(pocket, 'v0.15.0 alpha build 1', 81)
verPE(pocket, 'Alpha Realms build 4', 60)
verPE(pocket, 'Alpha Realms build 2', 60)
verPE(pocket, 'Alpha Realms build 1', 60)

-- 0.14
verPE(pocket, 'v0.14.3', 70)
verPE(pocket, 'v0.14.2', 60)
verPE(pocket, 'v0.14.1', 46)
verPE(pocket, 'v0.14.0', 45)
verPE(pocket, 'v0.14.0 alpha build 7', 45)
verPE(pocket, 'v0.14.0 alpha build 6', 44)
verPE(pocket, 'v0.14.0 alpha build 5', 43)
verPE(pocket, 'v0.14.0 alpha build 4', 43)
verPE(pocket, 'v0.14.0 alpha build 3', 42)
verPE(pocket, 'v0.14.0 alpha build 2', 41)
verPE(pocket, 'v0.14.0 alpha build 1', 41)

-- 0.13
verPE(pocket, 'v0.13.2 alpha', 39)
verPE(pocket, 'v0.13.1 alpha', 38)
verPE(pocket, 'v0.13.0 alpha', 38)
verPE(pocket, 'v0.13.0 alpha build 5', 38)
verPE(pocket, 'v0.13.0 alpha build 4', 38)
verPE(pocket, 'v0.13.0 alpha build 3', 38)
verPE(pocket, 'v0.13.0 alpha build 2', 37)
verPE(pocket, 'v0.13.0 alpha build 1', 37)

-- 0.12
verPE(pocket, 'v0.12.3 alpha', 34 ) -- checked from android build (arm)
verPE(pocket, 'v0.12.2 alpha', 34 ) -- checked from android build (arm)
verPE(pocket, 'v0.12.1 alpha', 34 )
verPE(pocket, 'v0.12.1 alpha build 13', 34)
verPE(pocket, 'v0.12.1 alpha build 12', 34)
verPE(pocket, 'v0.12.1 alpha build 11', 34)
verPE(pocket, 'v0.12.1 alpha build 10', 34)
verPE(pocket, 'v0.12.1 alpha build 9', unknown)
verPE(pocket, 'v0.12.1 alpha build 8', unknown)
verPE(pocket, 'v0.12.1 alpha build 7', unknown)
verPE(pocket, 'v0.12.1 alpha build 6', unknown)
verPE(pocket, 'v0.12.1 alpha build 5', unknown)
verPE(pocket, 'v0.12.1 alpha build 4', unknown)
verPE(pocket, 'v0.12.1 alpha build 3', unknown)
verPE(pocket, 'v0.12.1 alpha build 2', unknown)
verPE(pocket, 'v0.12.1 alpha build 1', unknown)
verPE(pocket, 'v0.12.0.1 alpha', unknown)
verPE(pocket, 'v0.12.0 alpha', 28)

-- 0.11
verPE(pocket, 'v0.11.2 alpha', unknown)
verPE(pocket, 'v0.11.1 alpha', 27)
verPE(pocket, 'v0.11.0 alpha', 27)
verPE(pocket, 'v0.11.0 alpha build 14', 27)
verPE(pocket, 'v0.11.0 alpha build 13', 26)
verPE(pocket, 'v0.11.0 alpha build 12', 26)
verPE(pocket, 'v0.11.0 alpha build 11', 26)
verPE(pocket, 'v0.11.0 alpha build 10', 25)
verPE(pocket, 'v0.11.0 alpha build 9', 25)
verPE(pocket, 'v0.11.0 alpha build 8', 25)
verPE(pocket, 'v0.11.0 alpha build 7', 24)
verPE(pocket, 'v0.11.0 alpha build 6', 23)
verPE(pocket, 'v0.11.0 alpha build 5', 23)
verPE(pocket, 'v0.11.0 alpha build 4', 22)
verPE(pocket, 'v0.11.0 alpha build 3', 21)
verPE(pocket, 'v0.11.0 alpha build 2', 21)
verPE(pocket, 'v0.11.0 alpha build 1', 21)

-- 0.10
verPE(pocket, 'v0.10.5 alpha', 20)
verPE(pocket, 'v0.10.4 alpha', 20)
verPE(pocket, 'v0.10.3 alpha', 20)
verPE(pocket, 'v0.10.2 alpha', 20)
verPE(pocket, 'v0.10.1 alpha', 20)
verPE(pocket, 'v0.10.0 alpha', 20)
verPE(pocket, 'v0.10.0 alpha build 9', 20)
verPE(pocket, 'v0.10.0 alpha build 8', 20)
verPE(pocket, 'v0.10.0 alpha build 7', 20)
verPE(pocket, 'v0.10.0 alpha build 6', 20)
verPE(pocket, 'v0.10.0 alpha build 5', 19)
verPE(pocket, 'v0.10.0 alpha build 4', 19)
verPE(pocket, 'v0.10.0 alpha build 3', 19)
verPE(pocket, 'v0.10.0 alpha build 2', 19)
verPE(pocket, 'v0.10.0 alpha build 1', 19)

-- 0.9
verPE(pocket, 'v0.9.5 alpha', 18)
verPE(pocket, 'v0.9.4 alpha', 17)
verPE(pocket, 'v0.9.3 alpha', 17)
verPE(pocket, 'v0.9.2 alpha', 17)
verPE(pocket, 'v0.9.1 alpha', 17)
verPE(pocket, 'v0.9.0 alpha', 17)
verPE(pocket, 'v0.9.0 alpha build 12', 17)
verPE(pocket, 'v0.9.0 alpha build 11', 16)
verPE(pocket, 'v0.9.0 alpha build 10', 16)
verPE(pocket, 'v0.9.0 alpha build 9', 16)
verPE(pocket, 'v0.9.0 alpha build 8', 16)
verPE(pocket, 'v0.9.0 alpha build 7', 16)
verPE(pocket, 'v0.9.0 alpha build 6', 15)
verPE(pocket, 'v0.9.0 alpha build 5', 15)
verPE(pocket, 'v0.9.0 alpha build 4', 15)
verPE(pocket, 'v0.9.0 alpha build 3', 15)
verPE(pocket, 'v0.9.0 alpha build 2', 15)
verPE(pocket, 'v0.9.0 alpha build 1', 14)

-- 0.8
verPE(pocket, 'v0.8.2 alpha', 14)
verPE(pocket, 'v0.8.1 alpha', 14)
verPE(pocket, 'v0.8.0 alpha', unknown)
verPE(pocket, 'v0.8.0 alpha build 8', unknown)
verPE(pocket, 'v0.8.0 alpha build 7', unknown)
verPE(pocket, 'v0.8.0 alpha build 6', unknown)
verPE(pocket, 'v0.8.0 alpha build 5', unknown)
verPE(pocket, 'v0.8.0 alpha build 4', unknown)
verPE(pocket, 'v0.8.0 alpha build 3', unknown)
verPE(pocket, 'v0.8.0 alpha build 2', unknown)
verPE(pocket, 'v0.8.0 alpha build 1', unknown)

-- 0.7
verPE(pocket, 'v0.7.6 alpha', 12)
verPE(pocket, 'v0.7.5 alpha', 12)
verPE(pocket, 'v0.7.4 alpha', 12)
verPE(pocket, 'v0.7.3 alpha', 11)
verPE(pocket, 'v0.7.2 alpha', 11)
verPE(pocket, 'v0.7.1 alpha', 11)
verPE(pocket, 'v0.7.0 alpha', 11)

-- 0.6
verPE(pocket, 'v0.6.1 alpha', 9)
verPE(pocket, 'v0.6.0 alpha', 9)

-- 0.5
verPE(pocket, 'v0.5.0 alpha', 8)

-- 0.4
verPE(pocket, 'v0.4.0 alpha rev 3', unknown)
verPE(pocket, 'v0.4.0 alpha rev 2', unknown)
verPE(pocket, 'v0.4.0 alpha', 7)

-- 0.3
verPE(pocket, 'v0.3.3 alpha', 6)
verPE(pocket, 'v0.3.2 alpha', 5)
verPE(pocket, 'v0.3.0 alpha', 4)

-- 0.2
verPE(pocket, 'v0.2.2 alpha', 3)
verPE(pocket, 'v0.2.1 alpha2', 3)
verPE(pocket, 'v0.2.1 alpha', 3)
verPE(pocket, 'v0.2.0 alpha', 2)

-- 0.1
verPE(pocket, 'v0.1.3 alpha', unknown)
verPE(pocket, 'v0.1.2 alpha', unknown)
verPE(pocket, 'v0.1.1 alpha', unknown)
verPE(pocket, 'v0.1.0 alpha', unknown)

-- Pre-release
verPE(pocket, 'Demo', unknown)

-- EDUCATION
verME(education, 'Preview 1.21.50.1', 766)
verME(education, 'Preview 1.21.40.2', 748)
verME(education, 'Preview 1.21.40.1', 748)
verME(education, 'v1.21.06', 685)
verME(education, 'v1.21.05', 685)
verME(education, 'v1.21.03', 685)
verME(education, 'Preview 1.21.01.0', 685)
verME(education, 'Preview 1.20.72.0', 662)
verME(education, 'Preview 1.20.70.0', 662)
verME(education, 'Preview 1.20.60.0', 649)
verME(education, 'v1.20.13', 594)
verME(education, 'v1.20.12', 594)
verME(education, 'v1.20.12.0', 594)
verME(education, 'v1.20.11.0', 594)
verME(education, 'v1.20.10.0', 594)
verME(education, 'v1.19.53', 562)
verME(education, 'v1.19.52', 562)
verME(education, 'v1.19.52.0', 562)
verME(education, 'v1.19.51.2', 562)
verME(education, 'v1.19.51.1', 562)
verME(education, 'v1.19.51.0', 562)
verME(education, 'v1.18.45', 503)
verME(education, 'v1.19.50.0', 560)
verEE(education, 'v1.18.42', 503)
verEE(education, 'v1.18.32', 503)
verEE(education, 'v1.18.31.0', 503)
verEE(education, 'v1.18.30.0', 503)
verEE(education, 'v1.18.10.04', 486)
verEE(education, 'v1.17.32', 466)
verEE(education, 'v1.17.31', 466)
verEE(education, 'v1.17.30', 466)
verEE(education, 'v1.17.30.2', 466)
verEE(education, 'v1.14.70', 392)
verEE(education, 'v1.14.60', 392)
verEE(education, 'v1.14.50', 391)
verEE(education, 'v1.14.40', 391)
verEE(education, 'v1.14.32', 390)
verEE(education, 'v1.14.31', 390)
verEE(education, 'v1.14.30', 390)
verEE(education, 'v1.12.60', 363)
verEE(education, 'v1.12.5', unknown)
verEE(education, 'v1.12.3', 362)
verEE(education, 'v1.12.1', unknown)
verEE(education, 'v1.12.0', 361)
verEE(education, 'v1.9.3', 332)
verEE(education, 'v1.9.1', 332)
verEE(education, 'v1.9', 332)
verEE(education, 'v1.8.0', 332)
verEE(education, 'v1.7.3', 291)
verEE(education, 'v1.7.1', 291)
verEE(education, 'v1.7', 291)
verEE(education, 'v1.4', 261)
verEE(education, 'v1.0.28', 150)
verEE(education, 'v1.0.27', 150)
verEE(education, 'v1.0.21', 137)
verEE(education, 'v1.0.18', unknown)
verEE(education, 'v1.0.17', unknown)
verEE(education, 'v1.0.2', 137)
verEE(education, 'v1.0.1', unknown)
verEE(education, 'v1.0.0', unknown)
verEE(education, 'v0.16.0', unknown)
verEE(education, 'v0.14.2', unknown)

return { versions = all, groups = groups, types = { unknown = unknown, none = none, pending = pending } }