gap> # gap> # G2G2 Minicourse 1 Exercise Solutions, Leonard Soicher, July 2021 gap> # ================================================================ gap> # gap> # gap> # First, make sure that GAP (version at least 4.11.0) is gap> # installed on your computer, together with its included gap> # packages GRAPE and DESIGN fully installed. gap> # gap> # I suggest you add your code to this file as you attempt gap> # the exercises, and correct any errors and update the file gap> # with new answers as you go. gap> # gap> # You can copy and paste your code into a running GAP session gap> # to see the results. gap> # gap> # gap> # gap> # Exercise session 1 gap> # ================== gap> # gap> # gap> # Exercise 1 gap> # ---------- gap> # gap> # Start up GAP and run the code below. This code creates objects gap> # you will be using in the exercises to follow. Make sure you gap> # understand what the code is doing. gap> # gap> # We first set M24 to be the Mathieu group M_{24}, gap> # octad1 to be the octad for M24 containing [1..5], gap> # and octads to be the set of all 759 octads for M24. gap> # gap> n:=24; 24 gap> M24:=MathieuGroup(n); Group([ (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23), (3,17,10,7,9)(4,13,14,19,5)(8,18,11,12,23)(15,20,22,21,16), (1,24)(2,23) (3,12)(4,16)(5,18)(6,10)(7,20)(8,14)(9,21)(11,17)(13,22)(15,19) ]) gap> L:=[1..5]; [ 1 .. 5 ] gap> H:=Stabilizer(M24,L,OnSets); gap> orbs:=Orbits(H,[1..n]); [ [ 1, 2, 3, 4, 5 ], [ 6, 22, 24, 9, 14, 23, 7, 17, 21, 10, 18, 19, 15, 16, 12, 20 ], [ 8, 11, 13 ] ] gap> for orb in orbs do > if Length(orb)=3 then > octad1:=Union(L,orb); > break; > fi; > od; gap> octad1; [ 1, 2, 3, 4, 5, 8, 11, 13 ] gap> octads:=Set(Orbit(M24,octad1,OnSets));; gap> Length(octads); 759 gap> # gap> # We next construct the setwise stabilizer in M24 of [23,24], gap> # determine the kernel and image of its action on [1..22], and gap> # assign this image to autM22 (since this image is isomorphic gap> # to the automorphism group of the Mathieu group M_{22}). gap> # gap> pair:=[23,24]; [ 23, 24 ] gap> pair_stab:=Stabilizer(M24,pair,OnSets); gap> hom:=ActionHomomorphism(pair_stab,[1..22],OnPoints);; gap> Kernel(hom); Group(()) gap> autM22:=Image(hom); gap> Size(autM22); 887040 gap> # gap> # Now autM22 acts on the set of *hexads*, which is gap> # the set of all octads containing 23 and 24, but with gap> # 23 and 24 removed from each. We compute this set of hexads. gap> # gap> hexads:=[]; [ ] gap> for octad in octads do > if IsSubset(octad,pair) then > AddSet(hexads,Difference(octad,pair)); > fi; > od; gap> Length(hexads); 77 gap> # gap> # (Note that hexads is the set of blocks of a 3-(22,6,1) design gap> # having points [1..22].) gap> # gap> # gap> # Exercise 2 gap> # ---------- gap> # gap> # Write a function called SymmetricDifference, with parameters gap> # S and T, such that if each of S and T is a set or collection, gap> # then the function returns the symmetric difference of S and T gap> # (which is the set consisting of all the elements that are in gap> # S or T, but not in both). gap> # gap> gap> SymmetricDifference := function(S,T) > # > # Suppose each of S and T is a GAP set or collection. > # Then this function returns the symmetric difference > # of S and T. > # > if not IsSet(S) then > S:=Set(S); > fi; > if not IsSet(T) then > T:=Set(T); > fi; > return Difference( Union(S,T), Intersection(S,T) ); > end; function( S, T ) ... end gap> gap> # gap> # Test your function with some well-chosen examples. gap> # gap> SymmetricDifference([],[]); [ ] gap> SymmetricDifference([],[2,-3]); [ -3, 2 ] gap> SymmetricDifference([[1,2],[1,2,4],[1,2,5]],[[1,2],[1,2,3]]); [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 2, 5 ] ] gap> SymmetricDifference([-3,2,4,7],[-4,-3,1,2,3]); [ -4, 1, 3, 4, 7 ] gap> SymmetricDifference([7,-3,2,4,7],[-3,-4,1,2,3]); [ -4, 1, 3, 4, 7 ] gap> SymmetricDifference(SymmetricGroup([1..3]),SymmetricGroup([2..4])); [ (3,4), (2,3,4), (2,4,3), (2,4), (1,2), (1,2,3), (1,3,2), (1,3) ] gap> SymmetricDifference(SymmetricGroup([1..3]),[(1,2),(1,3),(2,3),()]); [ (1,2,3), (1,3,2) ] gap> A:=[1,(1,2)];; gap> IsSet(A); true gap> IsCollection(A); false gap> SymmetricDifference([1,2,3],A); [ 2, 3, (1,2) ] gap> SymmetricDifference(A,[1,2,3]); [ 2, 3, (1,2) ] gap> SymmetricDifference(A,SymmetricGroup([1..3])); [ 1, (), (2,3), (1,2,3), (1,3,2), (1,3) ] gap> SymmetricDifference(SymmetricGroup([1..3]),A); [ 1, (), (2,3), (1,2,3), (1,3,2), (1,3) ] gap> # gap> # gap> # Exercise 3 gap> # ---------- gap> # gap> # A *dodecad* is the symmetric difference of two octads that gap> # intersect in exactly two points. gap> # gap> # Use a for-loop containing a break statement to gap> # assign to octad2 the first element of the set octads gap> # that intersects octad1 in exactly two points. gap> # gap> for octad in octads do > if Size(Intersection(octad,octad1))=2 then > octad2:=octad; > break; > fi; > od; gap> octad2; [ 1, 2, 6, 7, 9, 12, 18, 20 ] gap> # gap> # Now determine the symmetric difference of octad1 and octad2, gap> # and assign the result to dodecad1. gap> # gap> dodecad1:=SymmetricDifference(octad1,octad2); [ 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 18, 20 ] gap> # gap> # Determine the (setwise) stabilizer in M24 of dodecad1, gap> # and the kernel and image of the action of this stabilizer gap> # on dodecad1. gap> # gap> # The image should be the small Mathieu group M_{12}. gap> # Check this using DisplayCompositionSeries. gap> # gap> dodecad1_stab:=Stabilizer(M24,dodecad1,OnSets); gap> hom:=ActionHomomorphism(dodecad1_stab,dodecad1,OnPoints); gap> Kernel(hom); Group(()) gap> M12:=Image(hom); Group([ (1,11,5,7,8,10,4,9,3,6,2), (2,11,3,6,12)(4,9,5,7,10), (5,11,10,8) (6,7,12,9), (5,6,10,12)(7,11,9,8), (3,11,5,9)(4,6,10,12), (4,11,8)(5,6,9) (7,12,10) ]) gap> DisplayCompositionSeries(M12); G (6 gens, size 95040) | M(12) 1 (0 gens, size 1) gap> # gap> # gap> # Exercise 4 gap> # ---------- gap> # gap> # A *sextet* is a partition of [1..24] into subsets of size 4, gap> # such that the union of any two distinct parts is an octad. gap> # gap> # It is known that every 4-subset of [1..24] belongs to a gap> # unique sextet. gap> # gap> # Let sextet1 be the sextet to which [5,10,15,20] belongs. gap> # Determine sextet1 (as a set of sets). gap> # gap> tetrad:=[5,10,15,20]; [ 5, 10, 15, 20 ] gap> sextet1:=[tetrad]; [ [ 5, 10, 15, 20 ] ] gap> for octad in octads do > if IsSubset(octad,tetrad) then > AddSet(sextet1,Difference(octad,tetrad)); > fi; > od; gap> sextet1; [ [ 1, 7, 12, 22 ], [ 2, 11, 13, 21 ], [ 3, 9, 14, 17 ], [ 4, 18, 19, 24 ], [ 5, 10, 15, 20 ], [ 6, 8, 16, 23 ] ] gap> # gap> # Determine the orbit of sextet1 under M24 acting on gap> # sets of disjoint sets, but supress the printing of this orbit. gap> # What is the length of the orbit? gap> # gap> sextet1_orb:=Set(Orbit(M24,sextet1,OnSetsDisjointSets));; gap> Length(sextet1_orb); 1771 gap> # gap> # Determine the stabilizer in M24 of sextet1, and gap> # the orders of the kernel and image of the action gap> # of this stabilizer on the set of six parts of the sextet. gap> # Hence, identify the image. gap> # gap> sextet1_stab:=Stabilizer(M24,sextet1,OnSetsDisjointSets); gap> hom:=ActionHomomorphism(sextet1_stab,sextet1,OnSets); gap> Size(Kernel(hom)); 192 gap> Size(Image(hom)); 720 gap> # gap> # Thus, the image is the full symmetric group S_6 acting gap> # naturally on the six parts of the sextet. gap> # gap> # gap> # gap> # Exercise session 2 gap> # ================== gap> # gap> # Exercise 5 gap> # ---------- gap> # gap> # Load the GRAPE package. gap> # gap> LoadPackage("grape"); ───────────────────────────────────────────────────────────────────────────── Loading GRAPE 4.8.3 (GRaph Algorithms using PErmutation groups) by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~lsoicher/). Homepage: https://gap-packages.github.io/grape Report issues at https://github.com/gap-packages/grape/issues ───────────────────────────────────────────────────────────────────────────── true gap> # gap> # Construct the complement of the Hoffman-Singleton graph as gap> # the (unique) generalized orbital graph gamma of vertex-degree gap> # 42 for the (unique) primitive permutation group of degree 50 gap> # and order 252000. gap> # gap> G:=AllPrimitiveGroups(NrMovedPoints,50,Size,252000); [ PSU(3, 5):2 ] gap> Length(G); 1 gap> G:=G[1]; PSU(3, 5):2 gap> gamma:=Filtered(GeneralizedOrbitalGraphs(G),x->VertexDegrees(x)=[42]);; gap> Length(gamma); 1 gap> gamma:=gamma[1];; gap> # gap> # Classify the cliques of gamma of size 15, up to the action gap> # of gamma.group. gap> # gap> K:=CompleteSubgraphsOfGivenSize(gamma,15,2); [ [ 1, 9, 10, 11, 16, 19, 21, 22, 25, 28, 34, 36, 40, 41, 44 ] ] gap> # gap> # Now use the GRAPE function Graph to construct the Higman-Sims graph gap> # as the graph delta whose vertices are the cliques of size 15 gap> # in gamma, with two such cliques joined by an edge iff the size gap> # of their intersection is 0 or 8. Make use of gamma.group and gap> # its action on the cliques of size 15 of gamma. gap> # gap> delta := Graph( gamma.group, K, OnSets, > function(x,y) return Size(Intersection(x,y)) in [0,8]; end);; gap> # gap> # Determine the number of vertices of delta and the vertex-degrees gap> # of delta. gap> # gap> delta.order; 100 gap> VertexDegrees(delta); [ 22 ] gap> # gap> # Determine the automorphism group of delta. gap> # gap> autgrp := AutomorphismGroup(delta); gap> # gap> # What is the index of delta.group in the automorphism group of gap> # delta? gap> # gap> Size(autgrp)/Size(delta.group); 352 gap> # gap> # Now use the function NewGroupGraph to assign to delta a copy of gap> # delta whose associated group is the full automorphism group of delta. gap> # gap> delta:=NewGroupGraph(autgrp,delta);; gap> # gap> # Determine the global parameters, clique number, independence number, gap> # and chromatic number of delta. gap> # gap> GlobalParameters(delta); [ [ 0, 0, 22 ], [ 1, 0, 21 ], [ 6, 16, 0 ] ] gap> CliqueNumber(delta); 2 gap> independence_number:=CliqueNumber(ComplementGraph(delta)); 22 gap> ChromaticNumber(delta); 6 gap> # gap> # gap> # Exercise 6 gap> # ---------- gap> # gap> # Now you are to implement a different construction for the gap> # Higman-Sims graph, which is the one originally used by gap> # D.G. Higman and C.C. Sims. gap> # gap> # Call this graph to be constructed HSgraph. gap> # gap> # The vertices of HSgraph are 0,1,2,...,22, and the gap> # the hexads of the 3-(22,6,1) design for autM22 constructed gap> # in the first exercise session. gap> # gap> # Construct HSvertices as a set of these 100 vertices. gap> # gap> HSvertices := Union([0..22],hexads);; gap> # gap> # The joining rules for HSgraph are as follows: gap> # gap> # - 0 is joined only to each of the points 1,2,...,22; gap> # gap> # - if i is in [1..22], then i is joined only to 0 and gap> # the hexads to which i belongs; gap> # gap> # - if H is a hexad then H is joined only to the points in H gap> # and the hexads disjoint from H. gap> # gap> # gap> # Implement these joining rules as a boolean function HSadj of gap> # two vertices of HSgraph, returning true iff the vertices gap> # are joined by an edge in HSgraph. gap> # gap> HSadj := function(x,y) > # > # If x and y are vertices in HSgraph, then this function > # returns true if x and y are adjacent, and false if not. > # > if x=0 then > return y in [1..22]; > elif x in [1..22] then > return y=0 or (IsSet(y) and (x in y)); > else # x is a hexad > return (y in [1..22] and y in x) or (IsSet(y) and Intersection(x,y)=[]); > fi; > end; function( x, y ) ... end gap> # gap> # Clearly autM22 acts as a group of automorphisms of HSgraph, gap> # in its action on the vertices of HSgraph, fixing 0, gap> # acting naturally on [1..22], and acting by OnSets on the hexads. gap> # gap> # Implement this action as a user-defined action HSact in GAP. gap> # gap> HSact := function(x,g) > # Action of autM22 on HSvertices. > if x=0 then > return x; > elif x in [1..22] then > return x^g; > else > return OnSets(x,g); > fi; > end; function( x, g ) ... end gap> # gap> # Now construct HSgraph using the GRAPE function Graph gap> # applied to autM22, HSvertices, HSact, and HSadj. gap> # gap> HSgraph := Graph(autM22,HSvertices,HSact,HSadj,true);; gap> # gap> # Check that HSgraph is isomorphic to the graph delta gap> # constructed previously. gap> # gap> IsIsomorphicGraph(HSgraph,delta); true gap> # gap> # gap> # Exercise 7 gap> # ---------- gap> # gap> # Now load the DESIGN package for GAP. gap> # gap> # gap> LoadPackage("design"); ───────────────────────────────────────────────────────────────────────────── Loading DESIGN 1.7 (The Design Package for GAP) by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~lsoicher/). Homepage: https://gap-packages.github.io/design Report issues at https://github.com/gap-packages/design/issues ───────────────────────────────────────────────────────────────────────────── true gap> # gap> # Classify the 2-(12,4,3) designs invariant under the cyclic gap> # group generated by (1,2,3,4)(5,6,7,8)(9,10,11,12), such that gap> # every pair of distinct blocks intersect in at most two points. gap> # gap> # Then, for each such design classified, determine the order of gap> # its automorphism group. gap> # gap> designs:=BlockDesigns( rec( v:=12, > blockSizes:=[4], > tSubsetStructure:=rec(t:=2, lambdas:=[3]), > blockIntersectionNumbers:=[[[0,1,2]]], > requiredAutSubgroup:=Group((1,2,3,4)(5,6,7,8)(9,10,11,12)) ) );; gap> gap> Length(designs); 6 gap> Collected(List(designs,AllTDesignLambdas)); [ [ [ 33, 11, 3 ], 6 ] ] gap> List(designs,d->Size(AutomorphismGroup(d))); [ 24, 8, 8, 4, 4, 24 ] gap> gap> # gap> # gap> # Exercise 8 gap> # ---------- gap> # gap> # Consider the group M24 and the set octads from the first gap> # exercise session. gap> # gap> # Construct the block design D (in DESIGN package format), gap> # whose points are [1..24] and whose block-list is octads. gap> # gap> D:=BlockDesign(24,octads);; gap> # gap> # Check that the automorphism group of D is the group M24. gap> # gap> AutomorphismGroup(D)=M24; true gap> # gap> # Look at the online help for the DESIGN package function WittDesign. gap> # Check that D is isomorphic to WittDesign(24). gap> # gap> IsIsomorphicBlockDesign(D,WittDesign(24)); true gap> # gap> # Construct one resolution of D invariant under a Sylow gap> # 23-subgroup of M24. gap> # gap> S:=SylowSubgroup(M24,23); Group([ (2,6,15,11,3,8,19,17,12,20,16,23,5,4,7,21,24,10,13,9,22,14,18) ]) gap> P:=PartitionsIntoBlockDesigns(rec(v:=24, > blockSizes:=[8], > blockDesign:=D, > tSubsetStructure:=rec(t:=1, lambdas:=[1]), > requiredAutSubgroup:=S, > isoLevel:=0)); [ rec( autGroup := Group([ (2,16,22,17,10,3,7,6,23,14,12,13,8,21,15,5,18,20,9, 19,24,11,4) ]), partition := [ rec( blocks := [ [ 1, 2, 3, 4, 5, 8, 11, 13 ], [ 6, 9, 10, 12, 14, 17, 18, 21 ], [ 7, 15, 16, 19, 20, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 4, 6, 15, 18, 24 ], [ 5, 9, 12, 13, 14, 17, 19, 23 ], [ 7, 8, 10, 11, 16, 20, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 4, 7, 10, 12, 23 ], [ 5, 6, 8, 16, 17, 18, 21, 22 ], [ 9, 11, 13, 14, 15, 19, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 4, 9, 16, 17, 20 ], [ 5, 7, 8, 10, 14, 15, 18, 21 ], [ 6, 11, 12, 13, 19, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 4, 14, 19, 21, 22 ], [ 5, 6, 9, 10, 12, 13, 20, 24 ], [ 7, 8, 11, 15, 16, 17, 18, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 5, 6, 10, 19, 20 ], [ 4, 7, 11, 14, 17, 18, 21, 22 ], [ 8, 9, 12, 13, 15, 16, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 5, 7, 9, 15, 21 ], [ 4, 10, 11, 14, 16, 19, 22, 24 ], [ 6, 8, 12, 13, 17, 18, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 5, 12, 16, 18, 22 ], [ 4, 9, 10, 11, 17, 20, 21, 24 ], [ 6, 7, 8, 13, 14, 15, 19, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 5, 14, 17, 23, 24 ], [ 4, 6, 10, 11, 15, 16, 18, 21 ], [ 7, 8, 9, 12, 13, 19, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 6, 7, 13, 14, 16 ], [ 4, 5, 8, 9, 11, 12, 19, 24 ], [ 10, 15, 17, 18, 20, 21, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 6, 8, 12, 17, 21 ], [ 4, 5, 7, 11, 13, 20, 22, 24 ], [ 9, 10, 14, 15, 16, 18, 19, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 6, 9, 11, 22, 23 ], [ 4, 10, 13, 14, 15, 17, 19, 21 ], [ 5, 7, 8, 12, 16, 18, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 7, 8, 20, 22, 24 ], [ 4, 5, 6, 14, 15, 17, 18, 23 ], [ 9, 10, 11, 12, 13, 16, 19, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 7, 11, 17, 18, 19 ], [ 4, 5, 9, 10, 12, 15, 21, 23 ], [ 6, 8, 13, 14, 16, 20, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 8, 9, 10, 14, 18 ], [ 4, 7, 12, 13, 15, 17, 22, 23 ], [ 5, 6, 11, 16, 19, 20, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 8, 15, 16, 19, 23 ], [ 4, 6, 7, 9, 10, 11, 12, 22 ], [ 5, 13, 14, 17, 18, 20, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 9, 12, 13, 19, 24 ], [ 4, 5, 8, 11, 18, 20, 21, 23 ], [ 6, 7, 10, 14, 15, 16, 17, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 10, 11, 16, 21, 24 ], [ 4, 5, 6, 7, 12, 19, 20, 23 ], [ 8, 9, 13, 14, 15, 17, 18, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 10, 13, 15, 17, 22 ], [ 4, 6, 11, 12, 14, 18, 20, 24 ], [ 5, 7, 8, 9, 16, 19, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 11, 12, 14, 15, 20 ], [ 4, 7, 8, 9, 16, 17, 22, 24 ], [ 5, 6, 10, 13, 18, 19, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 3, 13, 18, 20, 21, 23 ], [ 4, 5, 6, 7, 8, 11, 14, 16 ], [ 9, 10, 12, 15, 17, 19, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 5, 6, 7, 17, 22 ], [ 3, 9, 10, 13, 15, 18, 21, 24 ], [ 8, 11, 12, 14, 16, 19, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 5, 9, 18, 19, 23 ], [ 3, 8, 12, 15, 16, 17, 20, 22 ], [ 6, 7, 10, 11, 13, 14, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 5, 10, 14, 15, 16 ], [ 3, 6, 7, 9, 12, 13, 21, 23 ], [ 8, 11, 17, 18, 19, 20, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 5, 12, 20, 21, 24 ], [ 3, 7, 9, 13, 15, 16, 17, 19 ], [ 6, 8, 10, 11, 14, 18, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 6, 8, 14, 20, 23 ], [ 3, 7, 10, 12, 13, 16, 22, 24 ], [ 5, 9, 11, 15, 17, 18, 19, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 6, 9, 10, 13, 21 ], [ 3, 7, 11, 14, 16, 17, 20, 24 ], [ 5, 8, 12, 15, 18, 19, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 6, 11, 12, 16, 19 ], [ 3, 7, 8, 9, 17, 18, 20, 21 ], [ 5, 10, 13, 14, 15, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 7, 8, 16, 18, 21 ], [ 3, 10, 12, 13, 15, 19, 20, 23 ], [ 5, 6, 9, 11, 14, 17, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 7, 9, 11, 14, 24 ], [ 3, 5, 8, 10, 13, 18, 20, 22 ], [ 6, 12, 15, 16, 17, 19, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 7, 13, 15, 19, 20 ], [ 3, 5, 6, 8, 9, 10, 11, 21 ], [ 12, 14, 16, 17, 18, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 8, 9, 12, 15, 22 ], [ 3, 5, 6, 7, 14, 17, 19, 21 ], [ 10, 11, 13, 16, 18, 20, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 8, 10, 17, 19, 24 ], [ 3, 6, 7, 9, 11, 14, 15, 18 ], [ 5, 12, 13, 16, 20, 21, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 10, 11, 18, 20, 22 ], [ 3, 5, 8, 13, 15, 17, 21, 23 ], [ 6, 7, 9, 12, 14, 16, 19, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 11, 15, 17, 21, 23 ], [ 3, 6, 7, 8, 10, 12, 14, 20 ], [ 5, 9, 13, 16, 18, 19, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 12, 13, 14, 17, 18 ], [ 3, 6, 8, 19, 20, 21, 22, 23 ], [ 5, 7, 9, 10, 11, 15, 16, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 4, 13, 16, 22, 23, 24 ], [ 3, 5, 8, 11, 12, 14, 17, 18 ], [ 6, 7, 9, 10, 15, 19, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 6, 8, 9, 16, 24 ], [ 3, 4, 7, 15, 18, 19, 21, 23 ], [ 10, 11, 12, 13, 14, 17, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 6, 11, 14, 18, 21 ], [ 3, 4, 7, 9, 12, 15, 20, 24 ], [ 8, 10, 13, 16, 17, 19, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 6, 12, 13, 15, 23 ], [ 3, 4, 8, 11, 16, 17, 19, 21 ], [ 7, 9, 10, 14, 18, 20, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 7, 8, 12, 14, 19 ], [ 3, 6, 10, 11, 15, 20, 22, 24 ], [ 4, 9, 13, 16, 17, 18, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 7, 10, 13, 18, 24 ], [ 3, 6, 8, 9, 14, 16, 17, 23 ], [ 4, 11, 12, 15, 19, 20, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 7, 11, 16, 20, 23 ], [ 3, 4, 6, 9, 15, 17, 21, 22 ], [ 8, 10, 12, 13, 14, 18, 19, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 8, 10, 21, 22, 23 ], [ 3, 4, 9, 14, 17, 18, 19, 24 ], [ 6, 7, 11, 12, 13, 15, 16, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 8, 15, 17, 18, 20 ], [ 3, 4, 7, 11, 12, 13, 14, 19 ], [ 6, 9, 10, 16, 21, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 9, 10, 11, 12, 17 ], [ 3, 6, 7, 8, 15, 16, 21, 24 ], [ 4, 13, 14, 18, 19, 20, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 9, 13, 14, 20, 22 ], [ 3, 7, 10, 11, 12, 15, 17, 21 ], [ 4, 6, 8, 16, 18, 19, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 11, 15, 19, 22, 24 ], [ 3, 4, 6, 9, 10, 18, 20, 23 ], [ 7, 8, 12, 13, 14, 16, 17, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 5, 13, 16, 17, 19, 21 ], [ 3, 4, 8, 9, 11, 14, 20, 22 ], [ 6, 7, 10, 12, 15, 18, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 7, 8, 10, 11, 15 ], [ 3, 13, 14, 16, 19, 21, 23, 24 ], [ 4, 5, 9, 12, 17, 18, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 7, 9, 12, 18, 20 ], [ 3, 4, 10, 11, 13, 21, 22, 23 ], [ 5, 8, 14, 15, 16, 17, 19, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 7, 19, 21, 23, 24 ], [ 3, 4, 10, 12, 14, 15, 18, 22 ], [ 5, 8, 9, 11, 13, 16, 17, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 8, 13, 18, 19, 22 ], [ 3, 4, 10, 15, 16, 17, 23, 24 ], [ 5, 7, 9, 11, 12, 14, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 9, 14, 15, 17, 19 ], [ 3, 4, 16, 18, 20, 21, 22, 24 ], [ 5, 7, 8, 10, 11, 12, 13, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 10, 12, 14, 22, 24 ], [ 3, 5, 7, 11, 13, 16, 18, 21 ], [ 4, 8, 9, 15, 17, 19, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 10, 16, 17, 18, 23 ], [ 3, 5, 7, 8, 11, 15, 19, 20 ], [ 4, 9, 12, 13, 14, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 11, 13, 17, 20, 24 ], [ 3, 5, 9, 14, 18, 21, 22, 23 ], [ 4, 7, 8, 10, 12, 15, 16, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 6, 15, 16, 20, 21, 22 ], [ 3, 5, 7, 8, 9, 13, 14, 24 ], [ 4, 10, 11, 12, 17, 18, 19, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 7, 8, 9, 13, 17, 23 ], [ 3, 4, 5, 11, 14, 15, 21, 24 ], [ 6, 10, 12, 16, 18, 19, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 7, 9, 10, 16, 19, 22 ], [ 3, 5, 6, 12, 15, 18, 20, 21 ], [ 4, 8, 11, 13, 14, 17, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 7, 10, 14, 17, 20, 21 ], [ 3, 6, 8, 9, 12, 18, 22, 24 ], [ 4, 5, 11, 13, 15, 16, 19, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 7, 11, 12, 13, 21, 22 ], [ 3, 4, 5, 8, 10, 14, 19, 23 ], [ 6, 9, 15, 16, 17, 18, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 7, 12, 15, 16, 17, 24 ], [ 3, 8, 9, 11, 13, 18, 19, 23 ], [ 4, 5, 6, 10, 14, 20, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 7, 14, 15, 18, 22, 23 ], [ 3, 8, 9, 10, 16, 19, 20, 24 ], [ 4, 5, 6, 11, 12, 13, 17, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 8, 9, 11, 19, 20, 21 ], [ 3, 5, 7, 15, 17, 18, 22, 24 ], [ 4, 6, 10, 12, 13, 14, 16, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 8, 10, 12, 13, 16, 20 ], [ 3, 4, 5, 6, 11, 18, 19, 22 ], [ 7, 9, 14, 15, 17, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 8, 11, 12, 18, 23, 24 ], [ 3, 6, 10, 13, 16, 17, 20, 21 ], [ 4, 5, 7, 9, 14, 15, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 8, 11, 14, 16, 17, 22 ], [ 3, 5, 6, 9, 15, 19, 23, 24 ], [ 4, 7, 10, 12, 13, 18, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 8, 13, 14, 15, 21, 24 ], [ 3, 4, 5, 10, 11, 12, 16, 20 ], [ 6, 7, 9, 17, 18, 19, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 9, 10, 15, 20, 23, 24 ], [ 3, 4, 5, 7, 8, 12, 21, 22 ], [ 6, 11, 13, 14, 16, 17, 18, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 9, 11, 13, 15, 16, 18 ], [ 3, 4, 12, 14, 17, 20, 21, 23 ], [ 5, 6, 7, 8, 10, 19, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 9, 12, 14, 16, 21, 23 ], [ 3, 6, 7, 8, 11, 13, 17, 22 ], [ 4, 5, 10, 15, 18, 19, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 9, 17, 18, 21, 22, 24 ], [ 3, 5, 6, 8, 12, 13, 16, 19 ], [ 4, 7, 10, 11, 14, 15, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 10, 11, 13, 14, 19, 23 ], [ 3, 4, 5, 8, 9, 15, 16, 18 ], [ 6, 7, 12, 17, 20, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 10, 12, 15, 18, 19, 21 ], [ 3, 4, 5, 6, 8, 17, 20, 24 ], [ 7, 9, 11, 13, 14, 16, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 12, 17, 19, 20, 22, 23 ], [ 3, 5, 6, 10, 14, 16, 18, 24 ], [ 4, 7, 8, 9, 11, 13, 15, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 2, 14, 16, 18, 19, 20, 24 ], [ 3, 4, 6, 8, 11, 12, 15, 23 ], [ 5, 7, 9, 10, 13, 17, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 5, 6, 16, 21, 23 ], [ 2, 9, 10, 13, 17, 18, 19, 20 ], [ 7, 8, 11, 12, 14, 15, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 5, 7, 14, 18, 20 ], [ 2, 9, 13, 15, 19, 21, 22, 23 ], [ 6, 8, 10, 11, 12, 16, 17, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 5, 9, 10, 22, 24 ], [ 2, 7, 12, 13, 16, 18, 19, 23 ], [ 6, 8, 11, 14, 15, 17, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 5, 12, 15, 17, 19 ], [ 2, 6, 7, 10, 13, 20, 22, 23 ], [ 8, 9, 11, 14, 16, 18, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 6, 7, 8, 9, 19 ], [ 2, 12, 13, 15, 18, 20, 22, 24 ], [ 5, 10, 11, 14, 16, 17, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 6, 10, 11, 14, 17 ], [ 2, 5, 7, 8, 13, 15, 16, 22 ], [ 9, 12, 18, 19, 20, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 6, 12, 13, 20, 22 ], [ 2, 5, 7, 9, 14, 16, 17, 18 ], [ 8, 10, 11, 15, 19, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 7, 11, 15, 16, 22 ], [ 2, 6, 9, 13, 14, 18, 23, 24 ], [ 5, 8, 10, 12, 17, 19, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 7, 13, 17, 21, 24 ], [ 2, 6, 8, 9, 10, 12, 19, 23 ], [ 5, 11, 14, 15, 16, 18, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 8, 10, 15, 20, 21 ], [ 2, 9, 11, 16, 17, 19, 23, 24 ], [ 5, 6, 7, 12, 13, 14, 18, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 8, 12, 14, 16, 24 ], [ 2, 5, 7, 18, 19, 20, 21, 22 ], [ 6, 9, 10, 11, 13, 15, 17, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 8, 17, 18, 22, 23 ], [ 2, 6, 9, 11, 12, 15, 21, 24 ], [ 5, 7, 10, 13, 14, 16, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 9, 11, 12, 18, 21 ], [ 2, 5, 6, 14, 16, 19, 22, 23 ], [ 7, 8, 10, 13, 15, 17, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 9, 13, 14, 15, 23 ], [ 2, 5, 6, 8, 11, 12, 20, 22 ], [ 7, 10, 16, 17, 18, 19, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 10, 13, 16, 18, 19 ], [ 2, 8, 9, 12, 14, 17, 20, 24 ], [ 5, 6, 7, 11, 15, 21, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 4, 11, 19, 20, 23, 24 ], [ 2, 6, 7, 8, 9, 14, 21, 22 ], [ 5, 10, 12, 13, 15, 16, 17, 18 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 6, 7, 11, 12, 24 ], [ 2, 4, 9, 10, 14, 17, 22, 23 ], [ 8, 13, 15, 16, 18, 19, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 6, 8, 14, 15, 22 ], [ 2, 4, 10, 16, 19, 20, 21, 23 ], [ 7, 9, 11, 12, 13, 17, 18, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 6, 9, 13, 17, 18 ], [ 2, 4, 7, 8, 11, 19, 22, 23 ], [ 10, 12, 14, 15, 16, 20, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 7, 8, 10, 16, 17 ], [ 2, 4, 9, 11, 12, 13, 20, 23 ], [ 6, 14, 15, 18, 19, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 7, 13, 19, 22, 23 ], [ 2, 11, 12, 16, 17, 18, 20, 21 ], [ 4, 6, 8, 9, 10, 14, 15, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 8, 9, 12, 20, 23 ], [ 2, 7, 11, 14, 15, 16, 19, 21 ], [ 4, 6, 10, 13, 17, 18, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 8, 18, 19, 21, 24 ], [ 2, 4, 6, 11, 13, 14, 15, 22 ], [ 7, 9, 10, 12, 16, 17, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 9, 11, 14, 16, 19 ], [ 2, 6, 7, 13, 15, 17, 18, 21 ], [ 4, 8, 10, 12, 20, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 10, 11, 15, 18, 23 ], [ 2, 7, 13, 14, 17, 19, 22, 24 ], [ 4, 6, 8, 9, 12, 16, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 10, 12, 13, 14, 21 ], [ 2, 4, 15, 16, 17, 18, 19, 22 ], [ 6, 7, 8, 9, 11, 20, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 11, 17, 20, 21, 22 ], [ 2, 6, 10, 13, 15, 16, 19, 24 ], [ 4, 7, 8, 9, 12, 14, 18, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 5, 13, 15, 16, 20, 24 ], [ 2, 7, 9, 10, 11, 18, 21, 23 ], [ 4, 6, 8, 12, 14, 17, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 7, 10, 18, 21, 22 ], [ 2, 4, 8, 9, 13, 14, 16, 19 ], [ 5, 11, 12, 15, 17, 20, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 7, 15, 17, 20, 23 ], [ 2, 8, 12, 16, 19, 21, 22, 24 ], [ 4, 5, 9, 10, 11, 13, 14, 18 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 8, 10, 13, 23, 24 ], [ 2, 9, 11, 12, 14, 18, 19, 22 ], [ 4, 5, 7, 15, 16, 17, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 8, 11, 16, 18, 20 ], [ 2, 4, 5, 9, 13, 15, 17, 24 ], [ 7, 10, 12, 14, 19, 21, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 9, 10, 12, 15, 16 ], [ 2, 4, 5, 8, 14, 18, 22, 24 ], [ 7, 11, 13, 17, 19, 20, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 9, 14, 20, 21, 24 ], [ 2, 10, 11, 12, 15, 16, 22, 23 ], [ 4, 5, 7, 8, 13, 17, 18, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 11, 13, 15, 19, 21 ], [ 2, 4, 7, 12, 14, 16, 20, 22 ], [ 5, 8, 9, 10, 17, 18, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 12, 14, 18, 19, 23 ], [ 2, 7, 9, 13, 16, 20, 21, 24 ], [ 4, 5, 8, 10, 11, 15, 17, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 6, 16, 17, 19, 22, 24 ], [ 2, 4, 8, 10, 11, 12, 14, 21 ], [ 5, 7, 9, 13, 15, 18, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 8, 11, 14, 21, 23 ], [ 2, 5, 6, 9, 10, 15, 18, 22 ], [ 4, 12, 13, 16, 17, 19, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 8, 12, 13, 15, 18 ], [ 2, 5, 10, 16, 17, 20, 22, 24 ], [ 4, 6, 9, 11, 14, 19, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 9, 10, 11, 13, 20 ], [ 2, 6, 8, 15, 17, 22, 23, 24 ], [ 4, 5, 12, 14, 16, 18, 19, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 9, 12, 14, 17, 22 ], [ 2, 6, 11, 15, 18, 19, 20, 23 ], [ 4, 5, 8, 10, 13, 16, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 9, 16, 18, 23, 24 ], [ 2, 4, 6, 10, 12, 15, 17, 20 ], [ 5, 8, 11, 13, 14, 19, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 10, 14, 15, 19, 24 ], [ 2, 5, 8, 9, 12, 13, 18, 21 ], [ 4, 6, 11, 16, 17, 20, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 7, 12, 16, 19, 20, 21 ], [ 2, 5, 6, 8, 10, 13, 14, 17 ], [ 4, 9, 11, 15, 18, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 8, 9, 11, 15, 17, 24 ], [ 2, 4, 5, 10, 12, 13, 19, 22 ], [ 6, 7, 14, 16, 18, 20, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 8, 9, 13, 16, 21, 22 ], [ 2, 4, 7, 17, 18, 20, 23, 24 ], [ 5, 6, 10, 11, 12, 14, 15, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 8, 10, 11, 12, 19, 22 ], [ 2, 5, 15, 16, 18, 21, 23, 24 ], [ 4, 6, 7, 9, 13, 14, 17, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 8, 13, 14, 17, 19, 20 ], [ 2, 4, 5, 6, 10, 11, 23, 24 ], [ 7, 9, 12, 15, 16, 18, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 9, 10, 17, 19, 21, 23 ], [ 2, 6, 7, 11, 16, 18, 22, 24 ], [ 4, 5, 8, 12, 13, 14, 15, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 9, 15, 18, 19, 20, 22 ], [ 2, 6, 8, 11, 13, 16, 21, 23 ], [ 4, 5, 7, 10, 12, 14, 17, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 10, 12, 17, 18, 20, 24 ], [ 2, 5, 8, 9, 11, 14, 15, 23 ], [ 4, 6, 7, 13, 16, 19, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 10, 14, 16, 20, 22, 23 ], [ 2, 8, 11, 12, 13, 15, 17, 19 ], [ 4, 5, 6, 7, 9, 18, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 11, 12, 13, 16, 17, 23 ], [ 2, 5, 9, 10, 14, 19, 21, 24 ], [ 4, 6, 7, 8, 15, 18, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 11, 13, 14, 18, 22, 24 ], [ 2, 7, 8, 12, 15, 20, 21, 23 ], [ 4, 5, 6, 9, 10, 16, 17, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 12, 15, 21, 22, 23, 24 ], [ 2, 4, 5, 6, 13, 16, 18, 20 ], [ 7, 8, 9, 10, 11, 14, 17, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 3, 14, 15, 16, 17, 18, 21 ], [ 2, 7, 10, 11, 12, 19, 20, 24 ], [ 4, 5, 6, 8, 9, 13, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 6, 8, 10, 12, 18 ], [ 2, 3, 7, 11, 13, 15, 23, 24 ], [ 9, 14, 16, 17, 19, 20, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 6, 9, 11, 15, 20 ], [ 2, 10, 13, 14, 16, 18, 21, 22 ], [ 3, 7, 8, 12, 17, 19, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 6, 13, 14, 19, 24 ], [ 2, 7, 8, 10, 12, 17, 18, 22 ], [ 3, 9, 11, 15, 16, 20, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 7, 8, 15, 23, 24 ], [ 2, 6, 9, 12, 13, 16, 17, 22 ], [ 3, 10, 11, 14, 18, 19, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 7, 9, 12, 13, 16 ], [ 2, 6, 10, 11, 17, 19, 21, 22 ], [ 3, 8, 14, 15, 18, 20, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 7, 10, 11, 19, 21 ], [ 2, 3, 8, 13, 16, 17, 18, 24 ], [ 6, 9, 12, 14, 15, 20, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 8, 9, 14, 17, 21 ], [ 2, 3, 6, 12, 16, 20, 23, 24 ], [ 7, 10, 11, 13, 15, 18, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 8, 16, 19, 20, 22 ], [ 2, 7, 9, 10, 12, 13, 14, 15 ], [ 3, 6, 11, 17, 18, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 10, 13, 17, 20, 23 ], [ 2, 7, 8, 9, 15, 18, 19, 24 ], [ 3, 6, 11, 12, 14, 16, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 11, 12, 14, 22, 23 ], [ 2, 3, 15, 17, 19, 20, 21, 24 ], [ 6, 7, 8, 9, 10, 13, 16, 18 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 11, 16, 17, 18, 24 ], [ 2, 3, 7, 9, 14, 19, 20, 23 ], [ 6, 8, 10, 12, 13, 15, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 5, 13, 15, 18, 21, 22 ], [ 2, 6, 7, 8, 16, 17, 19, 20 ], [ 3, 9, 10, 11, 12, 14, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 7, 10, 16, 20, 24 ], [ 2, 3, 5, 13, 14, 15, 18, 19 ], [ 8, 9, 11, 12, 17, 21, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 7, 11, 13, 18, 23 ], [ 2, 3, 10, 12, 14, 16, 17, 19 ], [ 5, 8, 9, 15, 20, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 7, 12, 14, 15, 21 ], [ 2, 8, 9, 10, 11, 13, 22, 24 ], [ 3, 5, 16, 17, 18, 19, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 8, 11, 21, 22, 24 ], [ 2, 5, 9, 12, 15, 16, 19, 20 ], [ 3, 7, 10, 13, 14, 17, 18, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 8, 13, 15, 16, 17 ], [ 2, 3, 7, 12, 14, 18, 21, 24 ], [ 5, 9, 10, 11, 19, 20, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 9, 12, 17, 23, 24 ], [ 2, 5, 10, 11, 13, 15, 20, 21 ], [ 3, 7, 8, 14, 16, 18, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 9, 14, 16, 18, 22 ], [ 2, 5, 7, 10, 15, 17, 19, 23 ], [ 3, 8, 11, 12, 13, 20, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 10, 15, 19, 22, 23 ], [ 2, 5, 7, 8, 11, 17, 21, 24 ], [ 3, 9, 12, 13, 14, 16, 18, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 6, 17, 18, 19, 20, 21 ], [ 2, 5, 7, 9, 12, 22, 23, 24 ], [ 3, 8, 10, 11, 13, 14, 15, 16 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 7, 8, 10, 13, 14, 22 ], [ 2, 5, 6, 9, 17, 20, 21, 23 ], [ 3, 11, 12, 15, 16, 18, 19, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 7, 8, 11, 12, 17, 20 ], [ 2, 3, 10, 18, 19, 22, 23, 24 ], [ 5, 6, 9, 13, 14, 15, 16, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 7, 9, 10, 15, 17, 18 ], [ 2, 6, 12, 13, 14, 19, 20, 21 ], [ 3, 5, 8, 11, 16, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 7, 9, 20, 21, 22, 23 ], [ 2, 5, 8, 10, 11, 16, 18, 19 ], [ 3, 6, 12, 13, 14, 15, 17, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 7, 12, 18, 19, 22, 24 ], [ 2, 3, 9, 11, 13, 14, 17, 21 ], [ 5, 6, 8, 10, 15, 16, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 7, 14, 16, 17, 19, 23 ], [ 2, 3, 5, 8, 10, 12, 15, 24 ], [ 6, 9, 11, 13, 18, 20, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 8, 9, 10, 11, 16, 23 ], [ 2, 3, 5, 6, 13, 21, 22, 24 ], [ 7, 12, 14, 15, 17, 18, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 8, 9, 13, 18, 20, 24 ], [ 2, 6, 7, 11, 12, 14, 17, 23 ], [ 3, 5, 10, 15, 16, 19, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 8, 11, 14, 15, 18, 19 ], [ 2, 3, 9, 10, 12, 20, 21, 22 ], [ 5, 6, 7, 13, 16, 17, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 8, 12, 13, 19, 21, 23 ], [ 2, 10, 11, 14, 15, 17, 18, 24 ], [ 3, 5, 6, 7, 9, 16, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 9, 10, 12, 14, 19, 20 ], [ 2, 3, 7, 16, 17, 21, 22, 23 ], [ 5, 6, 8, 11, 13, 15, 18, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 9, 11, 13, 17, 19, 22 ], [ 2, 6, 8, 12, 14, 15, 16, 18 ], [ 3, 5, 7, 10, 20, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 9, 15, 16, 19, 21, 24 ], [ 2, 3, 8, 12, 13, 14, 22, 23 ], [ 5, 6, 7, 10, 11, 17, 18, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 10, 11, 12, 13, 15, 24 ], [ 2, 3, 6, 9, 16, 18, 19, 21 ], [ 5, 7, 8, 14, 17, 20, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 10, 12, 16, 17, 21, 22 ], [ 2, 3, 6, 8, 9, 13, 15, 20 ], [ 5, 7, 11, 14, 18, 19, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 10, 14, 18, 21, 23, 24 ], [ 2, 3, 11, 13, 16, 19, 20, 22 ], [ 5, 6, 7, 8, 9, 12, 15, 17 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 11, 13, 14, 16, 20, 21 ], [ 2, 5, 6, 12, 17, 18, 19, 24 ], [ 3, 7, 8, 9, 10, 15, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 12, 15, 16, 18, 20, 23 ], [ 2, 5, 6, 7, 9, 11, 13, 19 ], [ 3, 8, 10, 14, 17, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 4, 14, 15, 17, 20, 22, 24 ], [ 2, 3, 7, 8, 10, 13, 19, 21 ], [ 5, 6, 9, 11, 12, 16, 18, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 7, 8, 13, 20, 21 ], [ 2, 4, 12, 14, 15, 19, 23, 24 ], [ 3, 9, 10, 11, 16, 17, 18, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 7, 9, 10, 14, 23 ], [ 2, 3, 4, 8, 12, 18, 19, 20 ], [ 11, 13, 15, 16, 17, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 7, 15, 16, 18, 19 ], [ 2, 3, 4, 11, 12, 17, 22, 24 ], [ 8, 9, 10, 13, 14, 20, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 8, 11, 17, 19, 23 ], [ 2, 4, 9, 10, 12, 16, 18, 24 ], [ 3, 7, 13, 14, 15, 20, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 9, 12, 19, 21, 22 ], [ 2, 13, 14, 15, 16, 17, 20, 23 ], [ 3, 4, 7, 8, 10, 11, 18, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 10, 11, 13, 16, 22 ], [ 2, 3, 9, 12, 15, 17, 18, 23 ], [ 4, 7, 8, 14, 19, 20, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 10, 15, 17, 21, 24 ], [ 2, 7, 8, 11, 13, 14, 18, 20 ], [ 3, 4, 9, 12, 16, 19, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 12, 14, 16, 17, 20 ], [ 2, 4, 8, 10, 13, 15, 18, 23 ], [ 3, 7, 9, 11, 19, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 6, 18, 20, 22, 23, 24 ], [ 2, 4, 7, 10, 11, 13, 16, 17 ], [ 3, 8, 9, 12, 14, 15, 19, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 7, 8, 9, 11, 18, 22 ], [ 2, 10, 12, 13, 17, 21, 23, 24 ], [ 3, 4, 6, 14, 15, 16, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 7, 9, 17, 19, 20, 24 ], [ 2, 3, 6, 10, 11, 12, 13, 18 ], [ 4, 8, 14, 15, 16, 21, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 7, 10, 12, 15, 20, 22 ], [ 2, 8, 14, 17, 18, 19, 21, 23 ], [ 3, 4, 6, 9, 11, 13, 16, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 7, 11, 13, 14, 15, 17 ], [ 2, 8, 9, 16, 18, 20, 22, 23 ], [ 3, 4, 6, 10, 12, 19, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 7, 12, 17, 18, 21, 23 ], [ 2, 3, 9, 14, 15, 16, 22, 24 ], [ 4, 6, 8, 10, 11, 13, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 7, 14, 16, 21, 22, 24 ], [ 2, 3, 4, 6, 13, 17, 19, 23 ], [ 8, 9, 10, 11, 12, 15, 18, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 8, 9, 10, 13, 15, 19 ], [ 2, 3, 6, 14, 17, 18, 20, 22 ], [ 4, 7, 11, 12, 16, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 8, 10, 11, 14, 20, 24 ], [ 2, 4, 6, 7, 9, 15, 16, 23 ], [ 3, 12, 13, 17, 18, 19, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 8, 11, 12, 15, 16, 21 ], [ 2, 3, 4, 7, 9, 13, 18, 22 ], [ 6, 10, 14, 17, 19, 20, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 8, 12, 13, 17, 22, 24 ], [ 2, 3, 6, 10, 14, 15, 21, 23 ], [ 4, 7, 9, 11, 16, 18, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 8, 13, 14, 16, 18, 23 ], [ 2, 4, 7, 10, 15, 21, 22, 24 ], [ 3, 6, 9, 11, 12, 17, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 9, 10, 16, 18, 20, 21 ], [ 2, 4, 6, 7, 8, 12, 13, 24 ], [ 3, 11, 14, 15, 17, 19, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 9, 11, 13, 21, 23, 24 ], [ 2, 3, 6, 7, 12, 15, 19, 22 ], [ 4, 8, 10, 14, 16, 17, 18, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 9, 12, 14, 15, 18, 24 ], [ 2, 4, 8, 13, 17, 20, 21, 22 ], [ 3, 6, 7, 10, 11, 16, 19, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 9, 15, 16, 17, 22, 23 ], [ 2, 3, 4, 10, 13, 14, 20, 24 ], [ 6, 7, 8, 11, 12, 18, 19, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 10, 12, 16, 19, 23, 24 ], [ 2, 7, 9, 11, 15, 17, 20, 22 ], [ 3, 4, 6, 8, 13, 14, 18, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 10, 14, 17, 18, 19, 22 ], [ 2, 3, 7, 8, 9, 11, 12, 16 ], [ 4, 6, 13, 15, 20, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 11, 12, 13, 18, 19, 20 ], [ 2, 8, 9, 10, 15, 16, 17, 21 ], [ 3, 4, 6, 7, 14, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 5, 14, 15, 19, 20, 21, 23 ], [ 2, 3, 6, 7, 9, 10, 17, 24 ], [ 4, 8, 11, 12, 13, 16, 18, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 7, 8, 12, 16, 22, 23 ], [ 2, 4, 11, 13, 18, 19, 21, 24 ], [ 3, 5, 9, 10, 14, 15, 17, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 7, 8, 14, 17, 18, 24 ], [ 2, 3, 5, 11, 12, 19, 21, 23 ], [ 4, 9, 10, 13, 15, 16, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 7, 9, 11, 16, 17, 21 ], [ 2, 5, 10, 12, 14, 18, 20, 23 ], [ 3, 4, 8, 13, 15, 19, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 7, 9, 13, 15, 22, 24 ], [ 2, 4, 5, 11, 14, 17, 19, 20 ], [ 3, 8, 10, 12, 16, 18, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 7, 10, 12, 13, 17, 19 ], [ 2, 3, 8, 11, 15, 18, 21, 22 ], [ 4, 5, 9, 14, 16, 20, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 7, 11, 14, 19, 20, 22 ], [ 2, 3, 5, 9, 10, 13, 16, 23 ], [ 4, 8, 12, 15, 17, 18, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 8, 9, 10, 17, 20, 22 ], [ 2, 3, 4, 5, 7, 16, 19, 24 ], [ 11, 12, 13, 14, 15, 18, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 8, 9, 11, 12, 13, 14 ], [ 2, 3, 7, 10, 15, 16, 18, 20 ], [ 4, 5, 17, 19, 21, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 8, 9, 15, 18, 21, 23 ], [ 2, 5, 11, 12, 13, 14, 16, 24 ], [ 3, 4, 7, 10, 17, 19, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 8, 10, 14, 16, 19, 21 ], [ 2, 4, 5, 7, 11, 12, 15, 18 ], [ 3, 9, 13, 17, 20, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 8, 12, 15, 19, 20, 24 ], [ 2, 5, 11, 13, 17, 18, 22, 23 ], [ 3, 4, 7, 9, 10, 14, 16, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 9, 10, 11, 18, 19, 24 ], [ 2, 5, 12, 14, 15, 17, 21, 22 ], [ 3, 4, 7, 8, 13, 16, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 9, 13, 16, 19, 20, 23 ], [ 2, 3, 4, 7, 8, 14, 15, 17 ], [ 5, 10, 11, 12, 18, 21, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 10, 11, 12, 20, 21, 23 ], [ 2, 3, 5, 8, 9, 17, 19, 22 ], [ 4, 7, 13, 14, 15, 16, 18, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 10, 13, 14, 15, 18, 20 ], [ 2, 3, 4, 8, 9, 21, 23, 24 ], [ 5, 7, 11, 12, 16, 17, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 11, 12, 15, 17, 18, 22 ], [ 2, 7, 8, 10, 14, 16, 23, 24 ], [ 3, 4, 5, 9, 13, 19, 20, 21 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 11, 14, 15, 16, 23, 24 ], [ 2, 3, 5, 7, 12, 13, 17, 20 ], [ 4, 8, 9, 10, 18, 19, 21, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 12, 13, 16, 18, 21, 24 ], [ 2, 8, 10, 14, 15, 19, 20, 22 ], [ 3, 4, 5, 7, 9, 11, 17, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 6, 13, 14, 17, 21, 22, 23 ], [ 2, 4, 8, 11, 15, 16, 20, 24 ], [ 3, 5, 7, 9, 10, 12, 18, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 8, 9, 10, 12, 21, 24 ], [ 2, 3, 4, 11, 14, 16, 18, 23 ], [ 5, 6, 13, 15, 17, 19, 20, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 8, 9, 14, 15, 16, 20 ], [ 2, 4, 6, 12, 18, 21, 22, 23 ], [ 3, 5, 10, 11, 13, 17, 19, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 8, 10, 18, 19, 20, 23 ], [ 2, 4, 6, 14, 16, 17, 21, 24 ], [ 3, 5, 9, 11, 12, 13, 15, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 8, 11, 13, 16, 19, 24 ], [ 2, 4, 9, 14, 15, 18, 20, 21 ], [ 3, 5, 6, 10, 12, 17, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 8, 15, 17, 19, 21, 22 ], [ 2, 6, 9, 10, 11, 14, 16, 20 ], [ 3, 4, 5, 12, 13, 18, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 9, 11, 12, 15, 19, 23 ], [ 2, 6, 8, 10, 18, 20, 21, 24 ], [ 3, 4, 5, 13, 14, 16, 17, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 9, 13, 14, 18, 19, 21 ], [ 2, 3, 8, 10, 11, 17, 20, 23 ], [ 4, 5, 6, 12, 15, 16, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 10, 11, 12, 14, 16, 18 ], [ 2, 3, 4, 5, 15, 20, 22, 23 ], [ 6, 8, 9, 13, 17, 19, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 10, 11, 17, 22, 23, 24 ], [ 2, 3, 4, 12, 13, 15, 16, 21 ], [ 5, 6, 8, 9, 14, 18, 19, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 10, 13, 15, 16, 21, 23 ], [ 2, 4, 6, 8, 9, 11, 17, 18 ], [ 3, 5, 12, 14, 19, 20, 22, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 11, 15, 18, 20, 21, 24 ], [ 2, 4, 5, 8, 12, 16, 17, 23 ], [ 3, 6, 9, 10, 13, 14, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 12, 13, 14, 20, 23, 24 ], [ 2, 3, 4, 5, 10, 17, 18, 21 ], [ 6, 8, 9, 11, 15, 16, 19, 22 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 7, 13, 16, 17, 18, 20, 22 ], [ 2, 3, 4, 9, 10, 11, 15, 19 ], [ 5, 6, 8, 12, 14, 21, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 9, 12, 16, 17, 18, 19 ], [ 2, 11, 14, 20, 21, 22, 23, 24 ], [ 3, 4, 5, 6, 7, 10, 13, 15 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 9, 14, 19, 22, 23, 24 ], [ 2, 5, 6, 7, 10, 12, 16, 21 ], [ 3, 4, 11, 13, 15, 17, 18, 20 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 10, 11, 13, 17, 18, 21 ], [ 2, 4, 6, 9, 19, 20, 22, 24 ], [ 3, 5, 7, 12, 14, 15, 16, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 10, 12, 14, 15, 17, 23 ], [ 2, 4, 5, 9, 11, 16, 21, 22 ], [ 3, 6, 7, 13, 18, 19, 20, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 10, 15, 16, 18, 22, 24 ], [ 2, 4, 7, 9, 12, 17, 19, 21 ], [ 3, 5, 6, 11, 13, 14, 20, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 11, 13, 15, 20, 22, 23 ], [ 2, 4, 6, 7, 10, 14, 18, 19 ], [ 3, 5, 9, 12, 16, 17, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 12, 14, 18, 20, 21, 22 ], [ 2, 3, 5, 6, 11, 15, 16, 17 ], [ 4, 7, 9, 10, 13, 19, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 8, 16, 17, 20, 21, 23, 24 ], [ 2, 3, 5, 7, 10, 11, 14, 22 ], [ 4, 6, 9, 12, 13, 15, 18, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 9, 10, 11, 14, 15, 21, 22 ], [ 2, 5, 8, 13, 19, 20, 23, 24 ], [ 3, 4, 6, 7, 12, 16, 17, 18 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 9, 10, 12, 13, 18, 22, 23 ], [ 2, 3, 5, 8, 14, 16, 20, 21 ], [ 4, 6, 7, 11, 15, 17, 19, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 9, 10, 13, 14, 16, 17, 24 ], [ 2, 4, 5, 6, 8, 15, 19, 21 ], [ 3, 7, 11, 12, 18, 20, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 9, 11, 12, 16, 20, 22, 24 ], [ 2, 4, 5, 7, 13, 14, 21, 23 ], [ 3, 6, 8, 10, 15, 17, 18, 19 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 9, 11, 14, 17, 18, 20, 23 ], [ 2, 3, 4, 6, 8, 10, 16, 22 ], [ 5, 7, 12, 13, 15, 19, 21, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 9, 12, 13, 15, 17, 20, 21 ], [ 2, 3, 6, 8, 11, 14, 19, 24 ], [ 4, 5, 7, 10, 16, 18, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 10, 11, 15, 16, 17, 19, 20 ], [ 2, 3, 4, 5, 6, 9, 12, 14 ], [ 7, 8, 13, 18, 21, 22, 23, 24 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 10, 13, 19, 20, 21, 22, 24 ], [ 2, 3, 5, 6, 7, 8, 18, 23 ], [ 4, 9, 11, 12, 14, 15, 16, 17 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 11, 12, 14, 17, 19, 21, 24 ], [ 2, 4, 5, 7, 8, 9, 10, 20 ], [ 3, 6, 13, 15, 16, 18, 22, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 11, 16, 18, 19, 21, 22, 23 ], [ 2, 5, 6, 7, 14, 15, 20, 24 ], [ 3, 4, 8, 9, 10, 12, 13, 17 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 12, 13, 14, 15, 16, 19, 22 ], [ 2, 3, 5, 9, 11, 18, 20, 24 ], [ 4, 6, 7, 8, 10, 17, 21, 23 ] ], isBlockDesign := true, v := 24 ), rec( blocks := [ [ 1, 13, 15, 17, 18, 19, 23, 24 ], [ 2, 3, 4, 6, 7, 11, 20, 21 ], [ 5, 8, 9, 10, 12, 14, 16, 22 ] ], isBlockDesign := true, v := 24 ) ] ) ] gap> # gap> # (Note that this shows that the image of the action OnSets gap> # of M24 on octads is nonsynchronizing.) gap> # gap>