# Black box algorithm to find standard generators of Fi24'

	set F 0             # Have we found element 1?
	set G 0             # Have we found element 2?
	set V 0             # Timeout counter for "semi-standard" part
	set Y 0	            # Timeout counter for conjugating part

lbl SEMISTD
	rand 1
	ord 1 A
	incr V
	if V gt 1000 then timeout
	if A notin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 &
		23 24 26 27 28 29 30 33 35 36 39 42 45 60 then fail

	if F eq 0 then
		if A in 20 28 60 then
			div A 2 B
			pwr B 1 2
			set F 1
		endif
	endif
	if G eq 0 then
		if A eq 39 then
			div A 3 C
			pwr C 1 3
			set G 1
			# This is an element of order 3 and it must be
			# in class 3A or 3E (50/50)
		endif
	endif

	if F eq 0 then jmp SEMISTD
	if G eq 0 then jmp SEMISTD
	
	set X 0       # Number of times we have tried to prove element is in 3D
	set Z 0       # Are we definitely in class 3E?

lbl CONJUGATE
	incr Y
	if Y gt 1000 then timeout
	rand 4
	cjr 3 4
	mu 2 3 5
	ord 5 D

	if D notin 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 20 21 23 24 &
			  26 27 28 29 30 33 35 36 39 42 45 then
		# This is not Fi24'!
		fail
	endif

	if D in 7 8 10 11 14 15 16 17 18 20 21 23 24 26 27 28 29 30 33 &
			35 36 39 42 45 then
		# The element of order 3 is in class 3E (not 3A).
		set Z 1
	endif

	if Z eq 0 then
		if D in 2 3 4 5 6 9 12 then
			# The chances are that our element of order 3 is in
			# class 3A, so go back to the beginning.
			set G 0
			jmp SEMISTD
		endif
	endif

	if D noteq 29 then jmp CONJUGATE

	pwr 3 5 6
	mu 6 3 7
	ord 7 E

	if E noteq 33 then jmp CONJUGATE

	oup 2 2 3
