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>