Page 1 of 1

CMD shape switch engine

Posted: May 3rd, 2015, 1:47 am
by unname66609

Code: Select all

x = 5, y = 6, rule = B3/S23
o$bo$bbo$bo$o$bbooo

Re: CMD shape switch engine

Posted: July 17th, 2015, 6:45 pm
by Kiran
What is the decomino seed mentioned in the wiki switch-engine page?
Does anyone have an rle?
EDIT:
Generation 1 of above pattern is a 9-omino (however that is spelled.)

Re: CMD shape switch engine

Posted: July 17th, 2015, 11:18 pm
by dvgrn
Kiran wrote:What is the decomino seed mentioned in the wiki switch-engine page?
Does anyone have an rle?
The original decomino switch-engine predecessor appears to have been lost, oddly enough. At least, it doesn't seem to have been included in LifeLine #4 when Corderman's discoveries were first published, and in the mid-1990s nobody seemed to be able to find a record of it. There's a short summary by Gosper from 1992:
Bill Gosper wrote:I believe Corderman said he was exhausting the decominoes when he noticed several iterations of an almost viable switch engine. (His program "chased" live nongliders.) He then cultivated the sprout until he found the two variants. (The omino does not recur in the period, and may need to be rediscovered.)
Rediscovery would probably be fairly easy, especially if the decomino is an ancestor of a clean switch engine -- which seems quite likely, given the description. The canonical eight-bit switch engine reappears quite a few times before its exhaust catches up with it.

There are only 4655 different decominos. The odds are pretty good that a script that checks the 50 immediate descendants of each decomino against, say, generation 10 of the switch engine (in case of any dying sparks) would turn up a match pretty quickly. If there's only one match, that must be the one Corderman found.

On the other hand, since there's a clean nonomino predecessor, it seems likely that there are multiple decomino predecessors... and I suppose it's also possible that the population count of the omino was misreported or misremembered. If there's a unique nonomino predecessor, then it's quite plausible that that's what Corderman would have seen first.

Re: CMD shape switch engine

Posted: July 18th, 2015, 5:38 pm
by dvgrn
dvgrn wrote:Rediscovery would probably be fairly easy, especially if the decomino is an ancestor of a clean switch engine -- which seems quite likely, given the description.
...
On the other hand, since there's a clean nonomino predecessor, it seems likely that there are multiple decomino predecessors... If there's a unique nonomino predecessor, then it's quite plausible that that's what Corderman would have seen first.
Here are the 1285 unique nonominoes, adapted from this Web page. Just replace "4$" with "!" to get a separate line of RLE for each nonomino. Then it's trivial to run each omino through a Python script to look for clean switch-engine descendants.

Code: Select all

obo$5o$4bo$4bo4$
obo$5o$3b2o4$
obo$5o$2bobo4$
obo$4o$bobo$3bo4$
obo$4o$b3o4$
obo$4o$3bo$2b2o4$
obo$4o$3b2o$4bo4$
obo$4o$2b2o$3bo4$
obo$3obo$2b3o4$
obo$3o$b3o$3bo4$
obo$3o$2b2o$2b2o4$
ob3o$5o4$
ob2o$o2bo$4o4$
ob2o$5o$4bo4$
ob2o$2obo$b3o4$
o5bo$7o4$
o3bo$o3bo$5o4$
o3bo$6o$5bo4$
o3bo$5o$o3bo4$
o3bo$5o$bo2bo4$
o3bo$5o$3b2o4$
o3bo$5o$2bobo4$
o3bo$3obo$2b3o4$
o3bo$2o2bo$b4o4$
o3b2o$6o4$
o2bobo$6o4$
o2bo$ob2o$4o4$
o2bo$o2bo$4o$3bo4$
o2bo$6o$5bo4$
o2bo$5o$bo2bo4$
o2bo$5o$4bo$4bo4$
o2bo$5o$3b2o4$
o2bo$5o$2bobo4$
o2bo$4o$ob2o4$
o2bo$4o$b3o4$
o2bo$4o$3bo$2b2o4$
o2bo$4o$3b2o$4bo4$
o2bo$2obo$b3o$3bo4$
o$ob2o$4o$3bo4$
o$o3bo$5o$4bo4$
o$o2bo$4o$bobo4$
o$o2bo$4o$2b2o4$
o$o$5o$4bo$4bo4$
o$7o$6bo4$
o$6o$5bo$5bo4$
o$6o$4b2o4$
o$6o$3bobo4$
o$5o$bob2o4$
o$5o$bo2bo$4bo4$
o$5o$4bo$4bo$4bo4$
o$5o$4bo$3b2o4$
o$5o$4b2o$5bo4$
o$5o$3b2o$4bo4$
o$5o$2bobo$4bo4$
o$5o$2b3o4$
o$4obo$3b3o4$
o$4o$ob2o$3bo4$
o$4o$o2bo$2b2o4$
o$4o$bobo$bobo4$
o$4o$bobo$2b2o4$
o$4o$b3o$3bo4$
o$4o$3bo$b3o4$
o$4o$3bo$3b2o$4bo4$
o$4o$3b3o$5bo4$
o$4o$3b2o$4bo$4bo4$
o$4o$3b2o$3b2o4$
o$4o$2b3o$4bo4$
o$4o$2b2o$2b2o4$
o$3obo$b4o4$
o$3obo$2b3o$4bo4$
o$3o2bo$2b4o4$
o$3o$2bobo$2b3o4$
o$3o$2bo$2b3o$4bo4$
o$3o$2b3o$4bo$4bo4$
o$3o$2b3o$3b2o4$
o$3o$2b3o$2bobo4$
o$3o$2b2o$3b2o$4bo4$
o$2obo$b4o$4bo4$
o$2obo$b3o$bobo4$
o$2obo$b3o$2b2o4$
o$2ob2o$b4o4$
o$2o3bo$b5o4$
o$2o2bo$b4o$4bo4$
o$2o$bo2bo$b4o4$
o$2o$b4o$4bo$4bo4$
o$2o$b4o$3b2o4$
o$2o$b3o$3b2o$4bo4$
o$2o$b2obo$2b3o4$
bobobo$6o4$
bobo$bobo$5o4$
bobo$bobo$4o$3bo4$
bobo$b4o$2o2bo4$
bobo$b3o$4o4$
bobo$b3o$2ob2o4$
bobo$6o$5bo4$
bobo$6o$4bo4$
bobo$5o$o3bo4$
bobo$5o$bobo4$
bobo$5o$bo2bo4$
bobo$5o$4bo$4bo4$
bobo$5o$4b2o4$
bobo$5o$3b2o4$
bobo$5o$2bobo4$
bobo$5o$2b2o4$
bobo$4o$ob2o4$
bobo$4o$bob2o4$
bobo$4o$b3o4$
bobo$4o$3bo$3b2o4$
bobo$4o$3bo$2b2o4$
bobo$4o$3b3o4$
bobo$4o$3b2o$4bo4$
bobo$4o$3b2o$3bo4$
bobo$4o$2obo4$
bobo$4o$2b3o4$
bobo$2obo$b4o4$
bobo$2obo$b3o$3bo4$
bobo$2obo$4o4$
bobo$2ob2o$b3o4$
bob2o$6o4$
bo4bo$7o4$
bo3bo$7o4$
bo2bo$bo2bo$5o4$
bo2bo$b4o$2o2bo4$
bo2bo$6o$5bo4$
bo2bo$5o$bo2bo4$
bo2bo$5o$4b2o4$
bo2bo$5o$3b2o4$
bo2bo$5o$2bobo4$
bo2bo$3obo$2b3o4$
bo2bo$2o2bo$b4o4$
bo2b2o$6o4$
bo$bobo$b3o$2obo4$
bo$bobo$5o$4bo4$
bo$bobo$5o$3bo4$
bo$bobo$4o$o2bo4$
bo$bobo$4o$bobo4$
bo$bobo$4o$3b2o4$
bo$bobo$4o$2b2o4$
bo$bob2o$5o4$
bo$bo3bo$6o4$
bo$bo2bo$5o$bo4$
bo$bo2bo$5o$4bo4$
bo$bo2bo$5o$3bo4$
bo$bo2bo$5o$2bo4$
bo$bo$bo2bo$5o4$
bo$bo$bo$5o$4bo4$
bo$bo$b4o$2o2bo4$
bo$bo$6o$5bo4$
bo$bo$6o$4bo4$
bo$bo$5o$bo2bo4$
bo$bo$5o$4bo$4bo4$
bo$bo$5o$4b2o4$
bo$bo$5o$3b2o4$
bo$bo$5o$2bobo4$
bo$bo$5o$2b2o4$
bo$bo$4o$bob2o4$
bo$bo$4o$3b3o4$
bo$bo$4o$3b2o$4bo4$
bo$bo$4o$3b2o$3bo4$
bo$bo$4o$2b3o4$
bo$bo$3obo$2b3o4$
bo$bo$3o$b4o4$
bo$bo$3o$2b4o4$
bo$bo$3o$2b3o$4bo4$
bo$bo$3o$2b3o$2bo4$
bo$bo$2obo$b4o4$
bo$bo$2o2bo$b4o4$
bo$bo$2o$b5o4$
bo$bo$2o$b4o$4bo4$
bo$bo$2o$b4o$2bo4$
bo$b5o$2o3bo4$
bo$b4o$3obo4$
bo$b4o$2ob2o4$
bo$b4o$2o2bo$4bo4$
bo$b3o$bobo$2obo4$
bo$b3o$4o$bo4$
bo$b3o$4o$3bo4$
bo$b3o$4o$2bo4$
bo$b3o$2obo$o2bo4$
bo$b3o$2obo$bobo4$
bo$b3o$2obo$3b2o4$
bo$b3o$2obo$2b2o4$
bo$b3o$2ob2o$4bo4$
bo$b3o$2ob2o$3bo4$
bo$b2obo$5o4$
bo$b2o$5o$4bo4$
bo$b2o$5o$3bo4$
bo$b2o$4o$bobo4$
bo$b2o$4o$3b2o4$
bo$b2o$3o$2b3o4$
bo$b2o$2o$b4o4$
bo$7o$6bo4$
bo$7o$5bo4$
bo$6o$bo3bo4$
bo$6o$5bo$5bo4$
bo$6o$5b2o4$
bo$6o$4b2o4$
bo$6o$3bobo4$
bo$6o$3b2o4$
bo$6o$2bo2bo4$
bo$5o$o3bo$4bo4$
bo$5o$o2b2o4$
bo$5o$bob2o4$
bo$5o$bo2bo$4bo4$
bo$5o$bo2b2o4$
bo$5o$b2obo4$
bo$5o$4bo$4bo$4bo4$
bo$5o$4bo$4b2o4$
bo$5o$4bo$3b2o4$
bo$5o$4b3o4$
bo$5o$4b2o$5bo4$
bo$5o$4b2o$4bo4$
bo$5o$3bo$3b2o4$
bo$5o$3b3o4$
bo$5o$3b2o$4bo4$
bo$5o$3b2o$3bo4$
bo$5o$2bobo$4bo4$
bo$5o$2bob2o4$
bo$5o$2b3o4$
bo$4obo$3b3o4$
bo$4o$ob2o$3bo4$
bo$4o$ob2o$2bo4$
bo$4o$o2bo$3b2o4$
bo$4o$o2bo$2b2o4$
bo$4o$o2b2o$4bo4$
bo$4o$bobo$bobo4$
bo$4o$bobo$b2o4$
bo$4o$bobo$3b2o4$
bo$4o$bobo$2b2o4$
bo$4o$bob3o4$
bo$4o$bob2o$4bo4$
bo$4o$b4o4$
bo$4o$b3o$3bo4$
bo$4o$b3o$2bo4$
bo$4o$3bo$b3o4$
bo$4o$3bo$3b3o4$
bo$4o$3bo$3b2o$4bo4$
bo$4o$3bo$3b2o$3bo4$
bo$4o$3bo$2b3o4$
bo$4o$3b4o4$
bo$4o$3b3o$5bo4$
bo$4o$3b3o$4bo4$
bo$4o$3b2o$4bo$4bo4$
bo$4o$3b2o$4b2o4$
bo$4o$3b2o$3b2o4$
bo$4o$3b2o$2b2o4$
bo$4o$2obo$3bo4$
bo$4o$2bo$2b3o4$
bo$4o$2b4o4$
bo$4o$2b3o$4bo4$
bo$4o$2b3o$3bo4$
bo$4o$2b2o$b2o4$
bo$4o$2b2o$3b2o4$
bo$4o$2b2o$2b2o4$
bo$3obo$ob3o4$
bo$3obo$b4o4$
bo$3obo$2b4o4$
bo$3obo$2b3o$4bo4$
bo$3obo$2b3o$3bo4$
bo$3obo$2b3o$2bo4$
bo$3ob2o$2b3o4$
bo$3o2bo$2b4o4$
bo$3o$obo$2b3o4$
bo$3o$ob3o$4bo4$
bo$3o$ob2o$3b2o4$
bo$3o$ob2o$2b2o4$
bo$3o$bo$b4o4$
bo$3o$b5o4$
bo$3o$b4o$4bo4$
bo$3o$b3o$bobo4$
bo$3o$b3o$3b2o4$
bo$3o$b3o$2b2o4$
bo$3o$b2o$2b3o4$
bo$3o$4o$3bo4$
bo$3o$2bobo$2b3o4$
bo$3o$2bo$b4o4$
bo$3o$2bo$2b4o4$
bo$3o$2bo$2b3o$4bo4$
bo$3o$2b5o4$
bo$3o$2b4o$5bo4$
bo$3o$2b3o$4bo$4bo4$
bo$3o$2b3o$4b2o4$
bo$3o$2b3o$3b2o4$
bo$3o$2b3o$2bobo4$
bo$3o$2b3o$2b2o4$
bo$3o$2b2o$3b3o4$
bo$3o$2b2o$3b2o$4bo4$
bo$3o$2b2o$3b2o$3bo4$
bo$3o$2b2o$2b3o4$
bo$2obo$b5o4$
bo$2obo$b4o$4bo4$
bo$2obo$b4o$3bo4$
bo$2obo$b3o$bobo4$
bo$2obo$b3o$3b2o4$
bo$2obo$b3o$2b2o4$
bo$2obo$4o$3bo4$
bo$2ob2o$b4o4$
bo$2o3bo$b5o4$
bo$2o2bo$b5o4$
bo$2o2bo$b4o$bo4$
bo$2o2bo$b4o$4bo4$
bo$2o2bo$b4o$3bo4$
bo$2o2bo$b4o$2bo4$
bo$2o$bobo$b4o4$
bo$2o$bo2bo$b4o4$
bo$2o$bo$b5o4$
bo$2o$bo$b4o$4bo4$
bo$2o$b6o4$
bo$2o$b5o$5bo4$
bo$2o$b4o$bo2bo4$
bo$2o$b4o$4bo$4bo4$
bo$2o$b4o$4b2o4$
bo$2o$b4o$3b2o4$
bo$2o$b4o$2bobo4$
bo$2o$b3o$bob2o4$
bo$2o$b3o$3b3o4$
bo$2o$b3o$3b2o$4bo4$
bo$2o$b3o$3b2o$3bo4$
bo$2o$b3o$2b3o4$
bo$2o$b2obo$2b3o4$
bo$2o$b2o$b4o4$
bo$2o$b2o$2b4o4$
bo$2o$b2o$2b3o$4bo4$
bo$2o$5o$4bo4$
bo$2o$4o$bobo4$
bo$2o$4o$3b2o4$
bo$2o$3o$2b3o4$
bo$2o$2o$b4o4$
b5o$2o3b2o4$
b4o$5o4$
b4o$2ob3o4$
b4o$2o2bo$4b2o4$
b4o$2o2b2o$5bo4$
b3obo$2ob3o4$
b3o$o2bo$4o4$
b3o$bobo$4o4$
b3o$bobo$2ob2o4$
b3o$bob2o$2o2bo4$
b3o$b2o$4o4$
b3o$5o$4bo4$
b3o$4o$3b2o4$
b3o$3o$b3o4$
b3o$3o$2b3o4$
b3o$3bo$5o4$
b3o$3bo$3bo$4o4$
b3o$2obo$bob2o4$
b3o$2obo$b3o4$
b3o$2obo$3bo$3b2o4$
b3o$2obo$3b3o4$
b3o$2obo$3b2o$4bo4$
b3o$2obo$3b2o$3bo4$
b3o$2obo$2b3o4$
b3o$2ob3o$5bo4$
b3o$2ob2o$o3bo4$
b3o$2ob2o$bo2bo4$
b3o$2ob2o$4bo$4bo4$
b3o$2ob2o$4b2o4$
b3o$2ob2o$3b2o4$
b3o$2o$b4o4$
b3o$2bo$5o4$
b3o$2b2o$4o4$
b2o2bo$6o4$
b2o$obo$4o$3bo4$
b2o$ob2o$4o4$
b2o$bobo$4o$3bo4$
b2o$bobo$4o$2bo4$
b2o$bo2bo$5o4$
b2o$bo$5o$4bo4$
b2o$bo$5o$3bo4$
b2o$bo$4o$bobo4$
b2o$bo$4o$3b2o4$
b2o$bo$3o$2b3o4$
b2o$bo$2o$b4o4$
b2o$b4o$2o2bo4$
b2o$b3o$4o4$
b2o$b3o$2obo$3bo4$
b2o$b2o$4o$3bo4$
b2o$6o$5bo4$
b2o$5o$bo2bo4$
b2o$5o$4bo$4bo4$
b2o$5o$4b2o4$
b2o$5o$3b2o4$
b2o$5o$2bobo4$
b2o$5o$2b2o4$
b2o$4o$ob2o4$
b2o$4o$o2bo$3bo4$
b2o$4o$bobo$3bo4$
b2o$4o$bob2o4$
b2o$4o$b3o4$
b2o$4o$3bo$3b2o4$
b2o$4o$3bo$2b2o4$
b2o$4o$3b3o4$
b2o$4o$3b2o$4bo4$
b2o$4o$3b2o$3bo4$
b2o$4o$2b3o4$
b2o$4o$2b2o$3bo4$
b2o$3obo$2b3o4$
b2o$3o$ob2o$3bo4$
b2o$3o$b4o4$
b2o$3o$b3o$3bo4$
b2o$3o$2bo$2b3o4$
b2o$3o$2b4o4$
b2o$3o$2b3o$4bo4$
b2o$3o$2b2o$3b2o4$
b2o$3o$2b2o$2b2o4$
b2o$2obo$b4o4$
b2o$2obo$b3o$3bo4$
b2o$2obo$b3o$2bo4$
b2o$2o2bo$b4o4$
b2o$2o$bo$b4o4$
b2o$2o$b5o4$
b2o$2o$b4o$4bo4$
b2o$2o$b3o$bobo4$
b2o$2o$b3o$3b2o4$
b2o$2o$b2o$2b3o4$
b2o$2o$4o$3bo4$
b2o$2bobo$5o4$
b2o$2bo$5o$4bo4$
b2o$2bo$5o$3bo4$
b2o$2bo$4o$o2bo4$
b2o$2bo$4o$bobo4$
b2o$2bo$4o$3b2o4$
b2o$2bo$4o$2b2o4$
b2o$2bo$3o$2b3o4$
b2o$2b3o$3obo4$
b2o$2b2o$5o4$
b2o$2b2o$4o$3bo4$
9o4$
7o$6b2o4$
7bo$8o4$
6o$5bo$5b2o4$
6o$5b3o4$
6o$5b2o$6bo4$
6o$4b3o4$
6o$3bob2o4$
6o$2bo2b2o4$
6bo$8o4$
6bo$7o$6bo4$
6bo$6bo$7o4$
5obo$4b3o4$
5o$bob3o4$
5o$bo2bo$4b2o4$
5o$bo2b2o$5bo4$
5o$4bo$4bo$4b2o4$
5o$4bo$4b3o4$
5o$4bo$4b2o$5bo4$
5o$4bo$3b3o4$
5o$4b4o4$
5o$4b3o$6bo4$
5o$4b2o$5bo$5bo4$
5o$4b2o$5b2o4$
5o$4b2o$4b2o4$
5o$3bo$3b3o4$
5o$3bo$3b2o$4bo4$
5o$3b4o4$
5o$3b3o$5bo4$
5o$3b2o$4b2o4$
5o$2bobo$4b2o4$
5o$2bob2o$5bo4$
5o$2b4o4$
5bo$o4bo$6o4$
5bo$bo3bo$6o4$
5bo$b5o$2o3bo4$
5bo$8o4$
5bo$7o$6bo4$
5bo$7o$5bo4$
5bo$6o$o4bo4$
5bo$6o$bo3bo4$
5bo$6o$5b2o4$
5bo$6o$4b2o4$
5bo$6o$3bobo4$
5bo$6o$2bo2bo4$
5bo$5bo$7o4$
5bo$5bo$6o$5bo4$
5bo$5bo$5bo$6o4$
5bo$4obo$3b3o4$
5bo$4b2o$6o4$
5bo$3o2bo$2b4o4$
5bo$3bobo$6o4$
5bo$3b3o$4obo4$
5bo$2o3bo$b5o4$
5bo$2bo2bo$6o4$
5bo$2b4o$3o2bo4$
5b2o$7o4$
4obo$o2b3o4$
4obo$bob3o4$
4obo$3b4o4$
4obo$2b4o4$
4o2bo$3b4o4$
4o$o2b2o$4bo$4bo4$
4o$o2b2o$3b2o4$
4o$bobo$3bo$3b2o4$
4o$bobo$3b2o$4bo4$
4o$bobo$2b3o4$
4o$bob3o$5bo4$
4o$bob2o$bo2bo4$
4o$bob2o$4bo$4bo4$
4o$bob2o$3b2o4$
4o$b4o$4bo4$
4o$b3o$3b2o4$
4o$3bobo$3b3o4$
4o$3bo$b4o4$
4o$3bo$4o4$
4o$3bo$3bo$3b3o4$
4o$3bo$3bo$2b3o4$
4o$3bo$3b4o4$
4o$3bo$3b3o$5bo4$
4o$3bo$3b2o$4b2o4$
4o$3bo$3b2o$3b2o4$
4o$3bo$2b4o4$
4o$3bo$2b3o$4bo4$
4o$3bo$2b2o$3b2o4$
4o$3bo$2b2o$2b2o4$
4o$3b4o$6bo4$
4o$3b3o$5bo$5bo4$
4o$3b3o$5b2o4$
4o$3b3o$4b2o4$
4o$3b3o$3bobo4$
4o$3b2o$4bo$4bo$4bo4$
4o$3b2o$4bo$4b2o4$
4o$3b2o$4bo$3b2o4$
4o$3b2o$4b3o4$
4o$3b2o$4b2o$5bo4$
4o$3b2o$3bo$3b2o4$
4o$3b2o$3b3o4$
4o$3b2o$3b2o$4bo4$
4o$3b2o$2b3o4$
4o$2bobo$2b3o4$
4o$2bo$b4o4$
4o$2bo$4o4$
4o$2bo$2bo$2b3o4$
4o$2bo$2b3o$4bo4$
4o$2bo$2b2o$3b2o4$
4o$2b4o$5bo4$
4o$2b3o$4bo$4bo4$
4o$2b3o$4b2o4$
4o$2b3o$3b2o4$
4o$2b3o$2bobo4$
4o$2b2o$3bo$3b2o4$
4o$2b2o$3b3o4$
4o$2b2o$3b2o$4bo4$
4o$2b2o$2b3o4$
4bobo$7o4$
4bo$obobo$5o4$
4bo$ob3o$3obo4$
4bo$o3bo$5o$4bo4$
4bo$o2b2o$5o4$
4bo$bob2o$5o4$
4bo$bo2bo$6o4$
4bo$bo2bo$5o$4bo4$
4bo$b5o$2o3bo4$
4bo$b4o$3obo4$
4bo$b4o$2ob2o4$
4bo$b4o$2o2b2o4$
4bo$b2obo$5o4$
4bo$8o4$
4bo$7o$6bo4$
4bo$7o$5bo4$
4bo$7o$4bo4$
4bo$6o$o4bo4$
4bo$6o$bo3bo4$
4bo$6o$bo2bo4$
4bo$6o$5bo$5bo4$
4bo$6o$5b2o4$
4bo$6o$4b2o4$
4bo$6o$3bobo4$
4bo$6o$3b2o4$
4bo$6o$2bobo4$
4bo$6o$2bo2bo4$
4bo$5o$obobo4$
4bo$5o$o2b2o4$
4bo$5o$bob2o4$
4bo$5o$bo2b2o4$
4bo$5o$b2obo4$
4bo$5o$4bo$4b2o4$
4bo$5o$4bo$3b2o4$
4bo$5o$4b3o4$
4bo$5o$4b2o$5bo4$
4bo$5o$4b2o$4bo4$
4bo$5o$3b3o4$
4bo$5o$2o2bo4$
4bo$5o$2bob2o4$
4bo$5o$2b3o4$
4bo$4bo$o3bo$5o4$
4bo$4bo$bo2bo$5o4$
4bo$4bo$b4o$2o2bo4$
4bo$4bo$7o4$
4bo$4bo$6o$5bo4$
4bo$4bo$6o$4bo4$
4bo$4bo$6o$3bo4$
4bo$4bo$6o$2bo4$
4bo$4bo$5o$o3bo4$
4bo$4bo$5o$bo2bo4$
4bo$4bo$5o$4bo$4bo4$
4bo$4bo$5o$4b2o4$
4bo$4bo$5o$3b2o4$
4bo$4bo$5o$2bobo4$
4bo$4bo$4bo$6o4$
4bo$4bo$4bo$5o$4bo4$
4bo$4bo$4bo$4bo$5o4$
4bo$4bo$3obo$2b3o4$
4bo$4bo$3b2o$5o4$
4bo$4bo$2o2bo$b4o4$
4bo$4bo$2bobo$5o4$
4bo$4bo$2b3o$3obo4$
4bo$4b2o$6o4$
4bo$3obo$ob3o4$
4bo$3obo$b4o4$
4bo$3obo$2b4o4$
4bo$3obo$2b3o$4bo4$
4bo$3ob2o$2b3o4$
4bo$3b3o$4obo4$
4bo$3b2o$6o4$
4bo$3b2o$5o$4bo4$
4bo$3b2o$4bo$5o4$
4bo$2ob2o$b4o4$
4bo$2o2bo$b5o4$
4bo$2o2bo$b4o$4bo4$
4bo$2o2bo$5o4$
4bo$2o2b2o$b4o4$
4bo$2bobo$6o4$
4bo$2bobo$5o$4bo4$
4bo$2b4o$3o2bo4$
4bo$2b3o$5o4$
4bo$2b3o$3ob2o4$
4b2o$7o4$
4b2o$5o$4b2o4$
4b2o$5bo$6o4$
4b2o$4bo$6o4$
3obo$2bobo$2b3o4$
3obo$2b5o4$
3obo$2b4o$5bo4$
3obo$2b3o$4b2o4$
3obo$2b3o$3b2o4$
3ob2o$2b4o4$
3o3bo$2b5o4$
3o2bo$b5o4$
3o2bo$2b5o4$
3o$obobo$2b3o4$
3o$ob3o$4bo$4bo4$
3o$ob3o$3b2o4$
3o$ob2o$b3o4$
3o$ob2o$3bo$2b2o4$
3o$bobo$b3o$3bo4$
3o$bobo$4o4$
3o$bo2bo$b4o4$
3o$bo$b4o$4bo4$
3o$b5o$5bo4$
3o$b4o$bo2bo4$
3o$b4o$4bo$4bo4$
3o$b4o$3b2o4$
3o$b4o$2bobo4$
3o$b3o$b3o4$
3o$b3o$3bo$3b2o4$
3o$b3o$3bo$2b2o4$
3o$b3o$3b2o$4bo4$
3o$b3o$2obo4$
3o$b3o$2b3o4$
3o$b3o$2b2o$3bo4$
3o$b2obo$2b3o4$
3o$b2o$2b3o$4bo4$
3o$4o$2b2o4$
3o$3o$3o4$
3o$2bobo$b4o4$
3o$2bobo$2b4o4$
3o$2bobo$2b3o$4bo4$
3o$2bo2bo$2b4o4$
3o$2bo$b4o$4bo4$
3o$2bo$b3o$3b2o4$
3o$2bo$2bobo$2b3o4$
3o$2bo$2b4o$5bo4$
3o$2bo$2b3o$4bo$4bo4$
3o$2bo$2b3o$4b2o4$
3o$2bo$2b3o$3b2o4$
3o$2bo$2b3o$2bobo4$
3o$2bo$2b2o$2b3o4$
3o$2b5o$6bo4$
3o$2b4o$5bo$5bo4$
3o$2b4o$5b2o4$
3o$2b4o$4b2o4$
3o$2b4o$3bobo4$
3o$2b4o$2bo2bo4$
3o$2b3o$b2obo4$
3o$2b3o$4bo$4bo$4bo4$
3o$2b3o$4bo$4b2o4$
3o$2b3o$4bo$3b2o4$
3o$2b3o$4b3o4$
3o$2b3o$4b2o$5bo4$
3o$2b3o$3bo$3b2o4$
3o$2b3o$3b3o4$
3o$2b3o$3b2o$4bo4$
3o$2b3o$2bobo$4bo4$
3o$2b3o$2bob2o4$
3o$2b3o$2b3o4$
3o$2b2obo$3b3o4$
3o$2b2o$b4o4$
3o$2b2o$b3o$3bo4$
3o$2b2o$4o4$
3o$2b2o$3bo$b3o4$
3o$2b2o$3bo$3b3o4$
3o$2b2o$3bo$2b3o4$
3o$2b2o$3b3o$5bo4$
3o$2b2o$3b2o$4bo$4bo4$
3o$2b2o$3b2o$4b2o4$
3o$2b2o$3b2o$3b2o4$
3o$2b2o$2bo$2b3o4$
3o$2b2o$2b3o$4bo4$
3o$2b2o$2b2o$3b2o4$
3o$2b2o$2b2o$2b2o4$
3bobo$7o4$
3bo2bo$7o4$
3bo$ob2o$4o$3bo4$
3bo$o2bo$5o$4bo4$
3bo$o2bo$4o$o2bo4$
3bo$o2bo$4o$bobo4$
3bo$o2bo$4o$3b2o4$
3bo$o2bo$4o$2b2o4$
3bo$o2bo$2obo$b3o4$
3bo$o2b2o$5o4$
3bo$bobo$b3o$2obo4$
3bo$bobo$5o$4bo4$
3bo$bobo$5o$3bo4$
3bo$bobo$5o$2bo4$
3bo$bobo$4o$o2bo4$
3bo$bobo$4o$bobo4$
3bo$bobo$4o$3b2o4$
3bo$bobo$4o$2b2o4$
3bo$bobo$2obo$b3o4$
3bo$bob2o$5o4$
3bo$b5o$2o3bo4$
3bo$b4o$3obo4$
3bo$b4o$2ob2o4$
3bo$b4o$2o2bo$4bo4$
3bo$b4o$2o2b2o4$
3bo$b3o$5o4$
3bo$b3o$4o$3bo4$
3bo$b3o$3bo$4o4$
3bo$b3o$2obo$3b2o4$
3bo$b3o$2obo$2b2o4$
3bo$b3o$2ob2o$4bo4$
3bo$b3o$2ob2o$3bo4$
3bo$7o$6bo4$
3bo$7o$5bo4$
3bo$7o$4bo4$
3bo$7o$3bo4$
3bo$6o$o4bo4$
3bo$6o$bo3bo4$
3bo$6o$bo2bo4$
3bo$6o$5bo$5bo4$
3bo$6o$5b2o4$
3bo$6o$4b2o4$
3bo$6o$3bobo4$
3bo$6o$3b2o4$
3bo$6o$2bobo4$
3bo$6o$2bo2bo4$
3bo$6o$2b2o4$
3bo$5o$obobo4$
3bo$5o$o3bo$4bo4$
3bo$5o$o2b2o4$
3bo$5o$bob2o4$
3bo$5o$bo2bo$4bo4$
3bo$5o$bo2b2o4$
3bo$5o$b3o4$
3bo$5o$b2obo4$
3bo$5o$4bo$4bo$4bo4$
3bo$5o$4bo$4b2o4$
3bo$5o$4bo$3b2o4$
3bo$5o$4b3o4$
3bo$5o$4b2o$5bo4$
3bo$5o$4b2o$4bo4$
3bo$5o$3bo$3b2o4$
3bo$5o$3b3o4$
3bo$5o$3b2o$4bo4$
3bo$5o$2bobo$4bo4$
3bo$5o$2bob2o4$
3bo$5o$2b3o4$
3bo$4obo$3b3o4$
3bo$4o$o2bo$3b2o4$
3bo$4o$o2bo$2b2o4$
3bo$4o$o2b2o$4bo4$
3bo$4o$bobo$3b2o4$
3bo$4o$bobo$2b2o4$
3bo$4o$bob3o4$
3bo$4o$bob2o$4bo4$
3bo$4o$bob2o$3bo4$
3bo$4o$b4o4$
3bo$4o$4o4$
3bo$4o$3bo$b3o4$
3bo$4o$3bo$3b3o4$
3bo$4o$3bo$3b2o$4bo4$
3bo$4o$3bo$3b2o$3bo4$
3bo$4o$3bo$2b3o4$
3bo$4o$3b4o4$
3bo$4o$3b3o$5bo4$
3bo$4o$3b3o$4bo4$
3bo$4o$3b3o$3bo4$
3bo$4o$3b2o$4bo$4bo4$
3bo$4o$3b2o$4b2o4$
3bo$4o$3b2o$3b2o4$
3bo$4o$3b2o$2b2o4$
3bo$4o$2bo$2b3o4$
3bo$4o$2b4o4$
3bo$4o$2b3o$4bo4$
3bo$4o$2b3o$3bo4$
3bo$4o$2b3o$2bo4$
3bo$4o$2b2o$3b2o4$
3bo$4o$2b2o$2b2o4$
3bo$3bobo$6o4$
3bo$3bo$bobo$5o4$
3bo$3bo$b4o$2o2bo4$
3bo$3bo$b3o$2ob2o4$
3bo$3bo$7o4$
3bo$3bo$6o$5bo4$
3bo$3bo$6o$4bo4$
3bo$3bo$6o$3bo4$
3bo$3bo$5o$o3bo4$
3bo$3bo$5o$bobo4$
3bo$3bo$5o$bo2bo4$
3bo$3bo$5o$4bo$4bo4$
3bo$3bo$5o$4b2o4$
3bo$3bo$5o$3b2o4$
3bo$3bo$5o$2bobo4$
3bo$3bo$5o$2b2o4$
3bo$3bo$4o$ob2o4$
3bo$3bo$4o$bob2o4$
3bo$3bo$4o$b3o4$
3bo$3bo$4o$3b3o4$
3bo$3bo$4o$3b2o$4bo4$
3bo$3bo$4o$3b2o$3bo4$
3bo$3bo$4o$2obo4$
3bo$3bo$4o$2b3o4$
3bo$3bo$3bo$6o4$
3bo$3bo$3bo$5o$4bo4$
3bo$3bo$3bo$5o$3bo4$
3bo$3bo$3bo$5o$2bo4$
3bo$3bo$3b2o$5o4$
3bo$3bo$2obo$b4o4$
3bo$3bo$2ob2o$b3o4$
3bo$3bo$2b3o$3obo4$
3bo$3bo$2b2o$5o4$
3bo$3b3o$4obo4$
3bo$3b2o$6o4$
3bo$3b2o$5o$4bo4$
3bo$3b2o$5o$3bo4$
3bo$3b2o$4o$3b2o4$
3bo$3b2o$4bo$5o4$
3bo$3b2o$3bo$5o4$
3bo$2obo$bobo$b3o4$
3bo$2obo$b5o4$
3bo$2obo$b4o$bo4$
3bo$2obo$b4o$4bo4$
3bo$2obo$b4o$3bo4$
3bo$2obo$b4o$2bo4$
3bo$2obo$b3o$bobo4$
3bo$2obo$b3o$3b2o4$
3bo$2obo$b3o$2b2o4$
3bo$2obo$4o$3bo4$
3bo$2ob2o$b4o4$
3bo$2b4o$3o2bo4$
3bo$2b3o$5o4$
3bo$2b3o$3obo$4bo4$
3bo$2b3o$3ob2o4$
3bo$2b2o$o2bo$4o4$
3bo$2b2o$bobo$4o4$
3bo$2b2o$b3o$2obo4$
3bo$2b2o$6o4$
3bo$2b2o$5o$4bo4$
3bo$2b2o$5o$3bo4$
3bo$2b2o$5o$2bo4$
3bo$2b2o$4o$o2bo4$
3bo$2b2o$4o$bobo4$
3bo$2b2o$4o$3b2o4$
3bo$2b2o$4o$2b2o4$
3bo$2b2o$3o$2b3o4$
3bo$2b2o$3bo$5o4$
3bo$2b2o$2obo$b3o4$
3bo$2b2o$2bo$5o4$
3bo$2b2o$2b2o$4o4$
3b3o$6o4$
3b3o$4ob2o4$
3b2o$o3bo$5o4$
3b2o$bobo$5o4$
3b2o$bo2bo$5o4$
3b2o$b3o$2ob2o4$
3b2o$7o4$
3b2o$6o$5bo4$
3b2o$5o$4b2o4$
3b2o$5o$3b2o4$
3b2o$4o$bob2o4$
3b2o$4o$3b3o4$
3b2o$4o$3b2o$4bo4$
3b2o$4o$2b3o4$
3b2o$4bo$6o4$
3b2o$4bo$4bo$5o4$
3b2o$3obo$2b3o4$
3b2o$3bo$6o4$
3b2o$3bo$5o$4bo4$
3b2o$3bo$4o$3b2o4$
3b2o$3bo$3bo$5o4$
3b2o$3b2o$5o4$
3b2o$2obo$b4o4$
3b2o$2o2bo$b4o4$
3b2o$2bobo$5o4$
3b2o$2b2o$5o4$
2obobo$b5o4$
2obo$bobo$b4o4$
2obo$bobo$b3o$3bo4$
2obo$bobo$4o4$
2obo$b5o$5bo4$
2obo$b4o$bo2bo4$
2obo$b4o$4bo$4bo4$
2obo$b4o$4b2o4$
2obo$b4o$3b2o4$
2obo$b4o$2bobo4$
2obo$b3o$bob2o4$
2obo$b3o$b3o4$
2obo$b3o$3bo$3b2o4$
2obo$b3o$3bo$2b2o4$
2obo$b3o$3b2o$4bo4$
2obo$b3o$2obo4$
2obo$b3o$2b3o4$
2obo$4o$2b2o4$
2obo$2obo$b3o4$
2ob2o$b5o4$
2ob2o$5o4$
2o4bo$b6o4$
2o3bo$b6o4$
2o2bo$bo2bo$b4o4$
2o2bo$b5o$5bo4$
2o2bo$b4o$4b2o4$
2o2bo$b4o$3b2o4$
2o2bo$b4o$2bobo4$
2o2bo$b2obo$2b3o4$
2o2b2o$b5o4$
2o$bobo$b4o$4bo4$
2o$bobo$b3o$bobo4$
2o$bobo$b3o$3b2o4$
2o$bobo$b3o$2b2o4$
2o$bobo$4o$3bo4$
2o$bob2o$b4o4$
2o$bo3bo$b5o4$
2o$bo2bo$b4o$4bo4$
2o$bo2bo$5o4$
2o$bo$bo2bo$b4o4$
2o$bo$bo$b4o$4bo4$
2o$bo$b5o$5bo4$
2o$bo$b4o$bo2bo4$
2o$bo$b4o$4bo$4bo4$
2o$bo$b4o$3b2o4$
2o$bo$b4o$2bobo4$
2o$bo$b3o$3b2o$4bo4$
2o$bo$b2obo$2b3o4$
2o$bo$b2o$2b3o$4bo4$
2o$bo$5o$4bo4$
2o$bo$4o$bobo4$
2o$b6o$6bo4$
2o$b5o$bo3bo4$
2o$b5o$5bo$5bo4$
2o$b5o$5b2o4$
2o$b5o$4b2o4$
2o$b5o$3bobo4$
2o$b5o$2bo2bo4$
2o$b4o$bob2o4$
2o$b4o$bo2bo$4bo4$
2o$b4o$b2obo4$
2o$b4o$4bo$4bo$4bo4$
2o$b4o$4bo$4b2o4$
2o$b4o$4bo$3b2o4$
2o$b4o$4b2o$5bo4$
2o$b4o$3bo$3b2o4$
2o$b4o$3b3o4$
2o$b4o$3b2o$4bo4$
2o$b4o$2o2bo4$
2o$b4o$2bobo$4bo4$
2o$b4o$2b3o4$
2o$b3obo$3b3o4$
2o$b3o$bobo$bobo4$
2o$b3o$bobo$2b2o4$
2o$b3o$bob2o$4bo4$
2o$b3o$b3o$3bo4$
2o$b3o$4o4$
2o$b3o$3bo$b3o4$
2o$b3o$3bo$3b2o$4bo4$
2o$b3o$3bo$2b3o4$
2o$b3o$3b3o$5bo4$
2o$b3o$3b2o$4bo$4bo4$
2o$b3o$3b2o$4b2o4$
2o$b3o$3b2o$3b2o4$
2o$b3o$2obo$3bo4$
2o$b3o$2b3o$4bo4$
2o$b3o$2b2o$3b2o4$
2o$b3o$2b2o$2b2o4$
2o$b2obo$b4o4$
2o$b2obo$2b4o4$
2o$b2obo$2b3o$4bo4$
2o$b2o2bo$2b4o4$
2o$b2o$b4o$4bo4$
2o$b2o$b3o$bobo4$
2o$b2o$b3o$2b2o4$
2o$b2o$2bobo$2b3o4$
2o$b2o$2b4o$5bo4$
2o$b2o$2b3o$4bo$4bo4$
2o$b2o$2b3o$3b2o4$
2o$b2o$2b3o$2bobo4$
2o$b2o$2b2o$3b2o$4bo4$
2o$b2o$2b2o$2b3o4$
2o$5o$4bo$4bo4$
2o$5o$3b2o4$
2o$4o$bobo$3bo4$
2o$4o$3bo$2b2o4$
2o$4o$2b2o$3bo4$
2o$3o$2b2o$2b2o4$
2o$2obo$b3o$3bo4$
2bobo$7o4$
2bobo$6o$5bo4$
2bobo$5o$4b2o4$
2bobo$5o$3b2o4$
2bobo$5o$2bobo4$
2bobo$3obo$2b3o4$
2bobo$2bobo$5o4$
2bobo$2b3o$3obo4$
2bob2o$6o4$
2bo3bo$7o4$
2bo2bo$7o4$
2bo$obobo$5o4$
2bo$obo$5o$4bo4$
2bo$obo$4o$bobo4$
2bo$obo$4o$3b2o4$
2bo$obo$3o$2b3o4$
2bo$ob2o$4o$3bo4$
2bo$ob2o$4o$2bo4$
2bo$b5o$2o3bo4$
2bo$b4o$3obo4$
2bo$b4o$2ob2o4$
2bo$b4o$2o2bo$4bo4$
2bo$b3o$bobo$2obo4$
2bo$b3o$5o4$
2bo$b3o$4o$3bo4$
2bo$b3o$4o$2bo4$
2bo$b3o$2obo$o2bo4$
2bo$b3o$2obo$bobo4$
2bo$b3o$2obo$3b2o4$
2bo$b3o$2obo$2b2o4$
2bo$b3o$2ob2o$4bo4$
2bo$b3o$2ob2o$3bo4$
2bo$b2obo$5o4$
2bo$b2o$5o$4bo4$
2bo$b2o$5o$3bo4$
2bo$b2o$4o$o2bo4$
2bo$b2o$4o$bobo4$
2bo$b2o$4o$3b2o4$
2bo$b2o$4o$2b2o4$
2bo$b2o$3o$2b3o4$
2bo$b2o$2o$b4o4$
2bo$7o$6bo4$
2bo$7o$5bo4$
2bo$7o$4bo4$
2bo$6o$bo3bo4$
2bo$6o$5bo$5bo4$
2bo$6o$5b2o4$
2bo$6o$4b2o4$
2bo$6o$3bobo4$
2bo$6o$3b2o4$
2bo$6o$2bobo4$
2bo$6o$2bo2bo4$
2bo$5o$obobo4$
2bo$5o$o3bo$4bo4$
2bo$5o$o2b2o4$
2bo$5o$bob2o4$
2bo$5o$bo2bo$4bo4$
2bo$5o$bo2b2o4$
2bo$5o$b3o4$
2bo$5o$b2obo4$
2bo$5o$4bo$4bo$4bo4$
2bo$5o$4bo$4b2o4$
2bo$5o$4bo$3b2o4$
2bo$5o$4b3o4$
2bo$5o$4b2o$5bo4$
2bo$5o$4b2o$4bo4$
2bo$5o$3bo$3b2o4$
2bo$5o$3b3o4$
2bo$5o$3b2o$4bo4$
2bo$5o$3b2o$3bo4$
2bo$5o$2bobo$4bo4$
2bo$5o$2bob2o4$
2bo$5o$2b3o4$
2bo$4obo$3b3o4$
2bo$4o$ob2o$3bo4$
2bo$4o$o2bo$o2bo4$
2bo$4o$o2bo$3b2o4$
2bo$4o$o2bo$2b2o4$
2bo$4o$o2b2o$4bo4$
2bo$4o$bobo$bobo4$
2bo$4o$bobo$3b2o4$
2bo$4o$bobo$2b2o4$
2bo$4o$bob3o4$
2bo$4o$bob2o$4bo4$
2bo$4o$bob2o$3bo4$
2bo$4o$b4o4$
2bo$4o$b3o$3bo4$
2bo$4o$4o4$
2bo$4o$3bo$b3o4$
2bo$4o$3bo$3b3o4$
2bo$4o$3bo$3b2o$4bo4$
2bo$4o$3bo$3b2o$3bo4$
2bo$4o$3bo$2b3o4$
2bo$4o$3b4o4$
2bo$4o$3b3o$5bo4$
2bo$4o$3b3o$4bo4$
2bo$4o$3b3o$3bo4$
2bo$4o$3b2o$4bo$4bo4$
2bo$4o$3b2o$4b2o4$
2bo$4o$3b2o$3b2o4$
2bo$4o$3b2o$2b2o4$
2bo$4o$2obo$3bo4$
2bo$4o$2bo$2b3o4$
2bo$4o$2b4o4$
2bo$4o$2b3o$4bo4$
2bo$4o$2b3o$3bo4$
2bo$4o$2b3o$2bo4$
2bo$4o$2b2o$b2o4$
2bo$4o$2b2o$3b2o4$
2bo$4o$2b2o$2b2o4$
2bo$3obo$ob3o4$
2bo$3obo$b4o4$
2bo$3obo$2b4o4$
2bo$3obo$2b3o$4bo4$
2bo$3obo$2b3o$3bo4$
2bo$3obo$2b3o$2bo4$
2bo$3ob2o$2b3o4$
2bo$3o2bo$2b4o4$
2bo$3o$obo$2b3o4$
2bo$3o$ob3o$4bo4$
2bo$3o$ob2o$3b2o4$
2bo$3o$ob2o$2b2o4$
2bo$3o$bo$b4o4$
2bo$3o$b5o4$
2bo$3o$b4o$4bo4$
2bo$3o$b4o$3bo4$
2bo$3o$b3o$bobo4$
2bo$3o$b3o$3b2o4$
2bo$3o$b3o$2b2o4$
2bo$3o$b2o$2b3o4$
2bo$3o$4o$3bo4$
2bo$3o$2bobo$2b3o4$
2bo$3o$2bo$b4o4$
2bo$3o$2bo$2b4o4$
2bo$3o$2bo$2b3o$4bo4$
2bo$3o$2bo$2b3o$2bo4$
2bo$3o$2b5o4$
2bo$3o$2b4o$5bo4$
2bo$3o$2b4o$4bo4$
2bo$3o$2b3o$4bo$4bo4$
2bo$3o$2b3o$4b2o4$
2bo$3o$2b3o$3b2o4$
2bo$3o$2b3o$2bobo4$
2bo$3o$2b3o$2b2o4$
2bo$3o$2b2o$3b3o4$
2bo$3o$2b2o$3b2o$4bo4$
2bo$3o$2b2o$3b2o$3bo4$
2bo$3o$2b2o$2b3o4$
2bo$2bobo$6o4$
2bo$2bobo$5o$bo4$
2bo$2bobo$5o$4bo4$
2bo$2bobo$5o$3bo4$
2bo$2bobo$5o$2bo4$
2bo$2bo2bo$6o4$
2bo$2bo$b4o$2o2bo4$
2bo$2bo$b3o$2ob2o4$
2bo$2bo$6o$5bo4$
2bo$2bo$6o$4bo4$
2bo$2bo$6o$3bo4$
2bo$2bo$5o$o3bo4$
2bo$2bo$5o$bobo4$
2bo$2bo$5o$bo2bo4$
2bo$2bo$5o$4bo$4bo4$
2bo$2bo$5o$4b2o4$
2bo$2bo$5o$3b2o4$
2bo$2bo$5o$2bobo4$
2bo$2bo$5o$2bo$2bo4$
2bo$2bo$5o$2b2o4$
2bo$2bo$4o$bob2o4$
2bo$2bo$4o$3b3o4$
2bo$2bo$4o$3b2o$4bo4$
2bo$2bo$4o$3b2o$3bo4$
2bo$2bo$4o$2b3o4$
2bo$2bo$3obo$2b3o4$
2bo$2bo$3o$b4o4$
2bo$2bo$3o$2b4o4$
2bo$2bo$3o$2b3o$4bo4$
2bo$2bo$3o$2b3o$2bo4$
2bo$2bo$2bobo$5o4$
2bo$2bo$2bo$5o$4bo4$
2bo$2bo$2bo$5o$2bo4$
2bo$2bo$2b3o$3obo4$
2bo$2bo$2b2o$5o4$
2bo$2b4o$3o2bo4$
2bo$2b3o$5o4$
2bo$2b3o$3obo$4bo4$
2bo$2b3o$3ob2o4$
2bo$2b2o$b3o$2obo4$
2bo$2b2o$5o$4bo4$
2bo$2b2o$5o$3bo4$
2bo$2b2o$5o$2bo4$
2bo$2b2o$4o$o2bo4$
2bo$2b2o$4o$bobo4$
2bo$2b2o$4o$b2o4$
2bo$2b2o$4o$3b2o4$
2bo$2b2o$4o$2b2o4$
2bo$2b2o$3o$2b3o4$
2bo$2b2o$3bo$5o4$
2bo$2b2o$2obo$b3o4$
2bo$2b2o$2bo$5o4$
2b4o$3o2b2o4$
2b3o$6o4$
2b3o$4bo$5o4$
2b3o$3obo$4b2o4$
2b3o$3ob3o4$
2b3o$3ob2o$5bo4$
2b3o$3o$2b3o4$
2b3o$3bo$5o4$
2b3o$2bo$5o4$
2b2obo$6o4$
2b2o$obo$4o$3bo4$
2b2o$ob2o$4o4$
2b2o$bobo$5o4$
2b2o$b4o$2o2bo4$
2b2o$b3o$4o4$
2b2o$b3o$2ob2o4$
2b2o$b2o$4o$3bo4$
2b2o$6o$5bo4$
2b2o$6o$4bo4$
2b2o$5o$o3bo4$
2b2o$5o$bo2bo4$
2b2o$5o$4bo$4bo4$
2b2o$5o$4b2o4$
2b2o$5o$3b2o4$
2b2o$5o$2bobo4$
2b2o$5o$2b2o4$
2b2o$4o$ob2o4$
2b2o$4o$bob2o4$
2b2o$4o$b3o4$
2b2o$4o$3bo$3b2o4$
2b2o$4o$3b3o4$
2b2o$4o$3b2o$4bo4$
2b2o$4o$3b2o$3bo4$
2b2o$4o$2b3o4$
2b2o$3obo$2b3o4$
2b2o$3o$ob2o$3bo4$
2b2o$3o$b4o4$
2b2o$3o$b3o$3bo4$
2b2o$3o$2bo$2b3o4$
2b2o$3o$2b4o4$
2b2o$3o$2b3o$4bo4$
2b2o$3o$2b3o$3bo4$
2b2o$3o$2b3o$2bo4$
2b2o$3o$2b2o$3b2o4$
2b2o$3o$2b2o$2b2o4$
2b2o$3bo$o2bo$4o4$
2b2o$3bo$6o4$
2b2o$3bo$5o$4bo4$
2b2o$3bo$5o$3bo4$
2b2o$3bo$5o$2bo4$
2b2o$3bo$4o$3b2o4$
2b2o$3bo$4o$2b2o4$
2b2o$3bo$3bo$5o4$
2b2o$3bo$2obo$b3o4$
2b2o$3bo$2b2o$4o4$
2b2o$3b2o$5o4$
2b2o$2obo$b4o4$
2b2o$2obo$4o4$
2b2o$2ob2o$b3o4$
2b2o$2bobo$5o4$
2b2o$2bo$b3o$2obo4$
2b2o$2bo$5o$4bo4$
2b2o$2bo$5o$3bo4$
2b2o$2bo$5o$2bo4$
2b2o$2bo$4o$o2bo4$
2b2o$2bo$4o$bobo4$
2b2o$2bo$4o$3b2o4$
2b2o$2bo$4o$2b2o4$
2b2o$2bo$3o$2b3o4$
2b2o$2bo$2bo$5o4$
2b2o$2b3o$3obo4$
2b2o$2b2o$5o!

Re: CMD shape switch engine

Posted: July 18th, 2015, 6:27 pm
by dvgrn
dvgrn wrote:
dvgrn wrote:If there's a unique nonomino predecessor, then it's quite plausible that that's what Corderman would have seen first.
Here are the 1285 unique nonominoes, adapted from this Web page. Just replace "4$" with "!" to get a separate line of RLE for each nonomino. Then it's trivial to run each omino through a Python script to look for clean switch-engine descendants.
Figured I might as well write the test script. There is indeed exactly one nonomino out of the 1285 that produces a clean switch-engine or descendant, and of course it's the one that Kiran pointed out -- 3o$2bobo$2b4o!

Here's the script, with only half-hearted apologies for it being rather slow and suboptimal -- all I was trying to minimize was the length of time it took to write:

Code: Select all

import golly as g

data="obo$5o$4bo$4bo!,obo$5o$3b2o!,obo$5o$2bobo!,obo$4o$bobo$3bo!,obo$4o$b3o!,obo$4o$3bo$2b2o!,obo$4o$3b2o$4bo!,obo$4o$2b2o$3bo!,obo$3obo$2b3o!,obo$3o$b3o$3bo!,obo$3o$2b2o$2b2o!,ob3o$5o!,ob2o$o2bo$4o!,ob2o$5o$4bo!,ob2o$2obo$b3o!,o5bo$7o!,o3bo$o3bo$5o!,o3bo$6o$5bo!,o3bo$5o$o3bo!,o3bo$5o$bo2bo!,o3bo$5o$3b2o!,o3bo$5o$2bobo!,o3bo$3obo$2b3o!,o3bo$2o2bo$b4o!,o3b2o$6o!,o2bobo$6o!,o2bo$ob2o$4o!,o2bo$o2bo$4o$3bo!,o2bo$6o$5bo!,o2bo$5o$bo2bo!,o2bo$5o$4bo$4bo!,o2bo$5o$3b2o!,o2bo$5o$2bobo!,o2bo$4o$ob2o!,o2bo$4o$b3o!,o2bo$4o$3bo$2b2o!,o2bo$4o$3b2o$4bo!,o2bo$2obo$b3o$3bo!,o$ob2o$4o$3bo!,o$o3bo$5o$4bo!,o$o2bo$4o$bobo!,o$o2bo$4o$2b2o!,o$o$5o$4bo$4bo!,o$7o$6bo!,o$6o$5bo$5bo!,o$6o$4b2o!,o$6o$3bobo!,o$5o$bob2o!,o$5o$bo2bo$4bo!,o$5o$4bo$4bo$4bo!,o$5o$4bo$3b2o!,o$5o$4b2o$5bo!,o$5o$3b2o$4bo!,o$5o$2bobo$4bo!,o$5o$2b3o!,o$4obo$3b3o!,o$4o$ob2o$3bo!,o$4o$o2bo$2b2o!,o$4o$bobo$bobo!,o$4o$bobo$2b2o!,o$4o$b3o$3bo!,o$4o$3bo$b3o!,o$4o$3bo$3b2o$4bo!,o$4o$3b3o$5bo!,o$4o$3b2o$4bo$4bo!,o$4o$3b2o$3b2o!,o$4o$2b3o$4bo!,o$4o$2b2o$2b2o!,o$3obo$b4o!,o$3obo$2b3o$4bo!,o$3o2bo$2b4o!,o$3o$2bobo$2b3o!,o$3o$2bo$2b3o$4bo!,o$3o$2b3o$4bo$4bo!,o$3o$2b3o$3b2o!,o$3o$2b3o$2bobo!,o$3o$2b2o$3b2o$4bo!,o$2obo$b4o$4bo!,o$2obo$b3o$bobo!,o$2obo$b3o$2b2o!,o$2ob2o$b4o!,o$2o3bo$b5o!,o$2o2bo$b4o$4bo!,o$2o$bo2bo$b4o!,o$2o$b4o$4bo$4bo!,o$2o$b4o$3b2o!,o$2o$b3o$3b2o$4bo!,o$2o$b2obo$2b3o!,bobobo$6o!,bobo$bobo$5o!,bobo$bobo$4o$3bo!,bobo$b4o$2o2bo!,bobo$b3o$4o!,bobo$b3o$2ob2o!,bobo$6o$5bo!,bobo$6o$4bo!,bobo$5o$o3bo!,bobo$5o$bobo!,bobo$5o$bo2bo!,bobo$5o$4bo$4bo!,bobo$5o$4b2o!,bobo$5o$3b2o!,bobo$5o$2bobo!,bobo$5o$2b2o!,bobo$4o$ob2o!,bobo$4o$bob2o!,bobo$4o$b3o!,bobo$4o$3bo$3b2o!,bobo$4o$3bo$2b2o!,bobo$4o$3b3o!,bobo$4o$3b2o$4bo!,bobo$4o$3b2o$3bo!,bobo$4o$2obo!,bobo$4o$2b3o!,bobo$2obo$b4o!,bobo$2obo$b3o$3bo!,bobo$2obo$4o!,bobo$2ob2o$b3o!,bob2o$6o!,bo4bo$7o!,bo3bo$7o!,bo2bo$bo2bo$5o!,bo2bo$b4o$2o2bo!,bo2bo$6o$5bo!,bo2bo$5o$bo2bo!,bo2bo$5o$4b2o!,bo2bo$5o$3b2o!,bo2bo$5o$2bobo!,bo2bo$3obo$2b3o!,bo2bo$2o2bo$b4o!,bo2b2o$6o!,bo$bobo$b3o$2obo!,bo$bobo$5o$4bo!,bo$bobo$5o$3bo!,bo$bobo$4o$o2bo!,bo$bobo$4o$bobo!,bo$bobo$4o$3b2o!,bo$bobo$4o$2b2o!,bo$bob2o$5o!,bo$bo3bo$6o!,bo$bo2bo$5o$bo!,bo$bo2bo$5o$4bo!,bo$bo2bo$5o$3bo!,bo$bo2bo$5o$2bo!,bo$bo$bo2bo$5o!,bo$bo$bo$5o$4bo!,bo$bo$b4o$2o2bo!,bo$bo$6o$5bo!,bo$bo$6o$4bo!,bo$bo$5o$bo2bo!,bo$bo$5o$4bo$4bo!,bo$bo$5o$4b2o!,bo$bo$5o$3b2o!,bo$bo$5o$2bobo!,bo$bo$5o$2b2o!,bo$bo$4o$bob2o!,bo$bo$4o$3b3o!,bo$bo$4o$3b2o$4bo!,bo$bo$4o$3b2o$3bo!,bo$bo$4o$2b3o!,bo$bo$3obo$2b3o!,bo$bo$3o$b4o!,bo$bo$3o$2b4o!,bo$bo$3o$2b3o$4bo!,bo$bo$3o$2b3o$2bo!,bo$bo$2obo$b4o!,bo$bo$2o2bo$b4o!,bo$bo$2o$b5o!,bo$bo$2o$b4o$4bo!,bo$bo$2o$b4o$2bo!,bo$b5o$2o3bo!,bo$b4o$3obo!,bo$b4o$2ob2o!,bo$b4o$2o2bo$4bo!,bo$b3o$bobo$2obo!,bo$b3o$4o$bo!,bo$b3o$4o$3bo!,bo$b3o$4o$2bo!,bo$b3o$2obo$o2bo!,bo$b3o$2obo$bobo!,bo$b3o$2obo$3b2o!,bo$b3o$2obo$2b2o!,bo$b3o$2ob2o$4bo!,bo$b3o$2ob2o$3bo!,bo$b2obo$5o!,bo$b2o$5o$4bo!,bo$b2o$5o$3bo!,bo$b2o$4o$bobo!,bo$b2o$4o$3b2o!,bo$b2o$3o$2b3o!,bo$b2o$2o$b4o!,bo$7o$6bo!,bo$7o$5bo!,bo$6o$bo3bo!,bo$6o$5bo$5bo!,bo$6o$5b2o!,bo$6o$4b2o!,bo$6o$3bobo!,bo$6o$3b2o!,bo$6o$2bo2bo!,bo$5o$o3bo$4bo!,bo$5o$o2b2o!,bo$5o$bob2o!,bo$5o$bo2bo$4bo!,bo$5o$bo2b2o!,bo$5o$b2obo!,bo$5o$4bo$4bo$4bo!,bo$5o$4bo$4b2o!,bo$5o$4bo$3b2o!,bo$5o$4b3o!,bo$5o$4b2o$5bo!,bo$5o$4b2o$4bo!,bo$5o$3bo$3b2o!,bo$5o$3b3o!,bo$5o$3b2o$4bo!,bo$5o$3b2o$3bo!,bo$5o$2bobo$4bo!,bo$5o$2bob2o!,bo$5o$2b3o!,bo$4obo$3b3o!,bo$4o$ob2o$3bo!,bo$4o$ob2o$2bo!,bo$4o$o2bo$3b2o!,bo$4o$o2bo$2b2o!,bo$4o$o2b2o$4bo!,bo$4o$bobo$bobo!,bo$4o$bobo$b2o!,bo$4o$bobo$3b2o!,bo$4o$bobo$2b2o!,bo$4o$bob3o!,bo$4o$bob2o$4bo!,bo$4o$b4o!,bo$4o$b3o$3bo!,bo$4o$b3o$2bo!,bo$4o$3bo$b3o!,bo$4o$3bo$3b3o!,bo$4o$3bo$3b2o$4bo!,bo$4o$3bo$3b2o$3bo!,bo$4o$3bo$2b3o!,bo$4o$3b4o!,bo$4o$3b3o$5bo!,bo$4o$3b3o$4bo!,bo$4o$3b2o$4bo$4bo!,bo$4o$3b2o$4b2o!,bo$4o$3b2o$3b2o!,bo$4o$3b2o$2b2o!,bo$4o$2obo$3bo!,bo$4o$2bo$2b3o!,bo$4o$2b4o!,bo$4o$2b3o$4bo!,bo$4o$2b3o$3bo!,bo$4o$2b2o$b2o!,bo$4o$2b2o$3b2o!,bo$4o$2b2o$2b2o!,bo$3obo$ob3o!,bo$3obo$b4o!,bo$3obo$2b4o!,bo$3obo$2b3o$4bo!,bo$3obo$2b3o$3bo!,bo$3obo$2b3o$2bo!,bo$3ob2o$2b3o!,bo$3o2bo$2b4o!,bo$3o$obo$2b3o!,bo$3o$ob3o$4bo!,bo$3o$ob2o$3b2o!,bo$3o$ob2o$2b2o!,bo$3o$bo$b4o!,bo$3o$b5o!,bo$3o$b4o$4bo!,bo$3o$b3o$bobo!,bo$3o$b3o$3b2o!,bo$3o$b3o$2b2o!,bo$3o$b2o$2b3o!,bo$3o$4o$3bo!,bo$3o$2bobo$2b3o!,bo$3o$2bo$b4o!,bo$3o$2bo$2b4o!,bo$3o$2bo$2b3o$4bo!,bo$3o$2b5o!,bo$3o$2b4o$5bo!,bo$3o$2b3o$4bo$4bo!,bo$3o$2b3o$4b2o!,bo$3o$2b3o$3b2o!,bo$3o$2b3o$2bobo!,bo$3o$2b3o$2b2o!,bo$3o$2b2o$3b3o!,bo$3o$2b2o$3b2o$4bo!,bo$3o$2b2o$3b2o$3bo!,bo$3o$2b2o$2b3o!,bo$2obo$b5o!,bo$2obo$b4o$4bo!,bo$2obo$b4o$3bo!,bo$2obo$b3o$bobo!,bo$2obo$b3o$3b2o!,bo$2obo$b3o$2b2o!,bo$2obo$4o$3bo!,bo$2ob2o$b4o!,bo$2o3bo$b5o!,bo$2o2bo$b5o!,bo$2o2bo$b4o$bo!,bo$2o2bo$b4o$4bo!,bo$2o2bo$b4o$3bo!,bo$2o2bo$b4o$2bo!,bo$2o$bobo$b4o!,bo$2o$bo2bo$b4o!,bo$2o$bo$b5o!,bo$2o$bo$b4o$4bo!,bo$2o$b6o!,bo$2o$b5o$5bo!,bo$2o$b4o$bo2bo!,bo$2o$b4o$4bo$4bo!,bo$2o$b4o$4b2o!,bo$2o$b4o$3b2o!,bo$2o$b4o$2bobo!,bo$2o$b3o$bob2o!,bo$2o$b3o$3b3o!,bo$2o$b3o$3b2o$4bo!,bo$2o$b3o$3b2o$3bo!,bo$2o$b3o$2b3o!,bo$2o$b2obo$2b3o!,bo$2o$b2o$b4o!,bo$2o$b2o$2b4o!,bo$2o$b2o$2b3o$4bo!,bo$2o$5o$4bo!,bo$2o$4o$bobo!,bo$2o$4o$3b2o!,bo$2o$3o$2b3o!,bo$2o$2o$b4o!,b5o$2o3b2o!,b4o$5o!,b4o$2ob3o!,b4o$2o2bo$4b2o!,b4o$2o2b2o$5bo!,b3obo$2ob3o!,b3o$o2bo$4o!,b3o$bobo$4o!,b3o$bobo$2ob2o!,b3o$bob2o$2o2bo!,b3o$b2o$4o!,b3o$5o$4bo!,b3o$4o$3b2o!,b3o$3o$b3o!,b3o$3o$2b3o!,b3o$3bo$5o!,b3o$3bo$3bo$4o!,b3o$2obo$bob2o!,b3o$2obo$b3o!,b3o$2obo$3bo$3b2o!,b3o$2obo$3b3o!,b3o$2obo$3b2o$4bo!,b3o$2obo$3b2o$3bo!,b3o$2obo$2b3o!,b3o$2ob3o$5bo!,b3o$2ob2o$o3bo!,b3o$2ob2o$bo2bo!,b3o$2ob2o$4bo$4bo!,b3o$2ob2o$4b2o!,b3o$2ob2o$3b2o!,b3o$2o$b4o!,b3o$2bo$5o!,b3o$2b2o$4o!,b2o2bo$6o!,b2o$obo$4o$3bo!,b2o$ob2o$4o!,b2o$bobo$4o$3bo!,b2o$bobo$4o$2bo!,b2o$bo2bo$5o!,b2o$bo$5o$4bo!,b2o$bo$5o$3bo!,b2o$bo$4o$bobo!,b2o$bo$4o$3b2o!,b2o$bo$3o$2b3o!,b2o$bo$2o$b4o!,b2o$b4o$2o2bo!,b2o$b3o$4o!,b2o$b3o$2obo$3bo!,b2o$b2o$4o$3bo!,b2o$6o$5bo!,b2o$5o$bo2bo!,b2o$5o$4bo$4bo!,b2o$5o$4b2o!,b2o$5o$3b2o!,b2o$5o$2bobo!,b2o$5o$2b2o!,b2o$4o$ob2o!,b2o$4o$o2bo$3bo!,b2o$4o$bobo$3bo!,b2o$4o$bob2o!,b2o$4o$b3o!,b2o$4o$3bo$3b2o!,b2o$4o$3bo$2b2o!,b2o$4o$3b3o!,b2o$4o$3b2o$4bo!,b2o$4o$3b2o$3bo!,b2o$4o$2b3o!,b2o$4o$2b2o$3bo!,b2o$3obo$2b3o!,b2o$3o$ob2o$3bo!,b2o$3o$b4o!,b2o$3o$b3o$3bo!,b2o$3o$2bo$2b3o!,b2o$3o$2b4o!,b2o$3o$2b3o$4bo!,b2o$3o$2b2o$3b2o!,b2o$3o$2b2o$2b2o!,b2o$2obo$b4o!,b2o$2obo$b3o$3bo!,b2o$2obo$b3o$2bo!,b2o$2o2bo$b4o!,b2o$2o$bo$b4o!,b2o$2o$b5o!,b2o$2o$b4o$4bo!,b2o$2o$b3o$bobo!,b2o$2o$b3o$3b2o!,b2o$2o$b2o$2b3o!,b2o$2o$4o$3bo!,b2o$2bobo$5o!,b2o$2bo$5o$4bo!,b2o$2bo$5o$3bo!,b2o$2bo$4o$o2bo!,b2o$2bo$4o$bobo!,b2o$2bo$4o$3b2o!,b2o$2bo$4o$2b2o!,b2o$2bo$3o$2b3o!,b2o$2b3o$3obo!,b2o$2b2o$5o!,b2o$2b2o$4o$3bo!,9o!,7o$6b2o!,7bo$8o!,6o$5bo$5b2o!,6o$5b3o!,6o$5b2o$6bo!,6o$4b3o!,6o$3bob2o!,6o$2bo2b2o!,6bo$8o!,6bo$7o$6bo!,6bo$6bo$7o!,5obo$4b3o!,5o$bob3o!,5o$bo2bo$4b2o!,5o$bo2b2o$5bo!,5o$4bo$4bo$4b2o!,5o$4bo$4b3o!,5o$4bo$4b2o$5bo!,5o$4bo$3b3o!,5o$4b4o!,5o$4b3o$6bo!,5o$4b2o$5bo$5bo!,5o$4b2o$5b2o!,5o$4b2o$4b2o!,5o$3bo$3b3o!,5o$3bo$3b2o$4bo!,5o$3b4o!,5o$3b3o$5bo!,5o$3b2o$4b2o!,5o$2bobo$4b2o!,5o$2bob2o$5bo!,5o$2b4o!,5bo$o4bo$6o!,5bo$bo3bo$6o!,5bo$b5o$2o3bo!,5bo$8o!,5bo$7o$6bo!,5bo$7o$5bo!,5bo$6o$o4bo!,5bo$6o$bo3bo!,5bo$6o$5b2o!,5bo$6o$4b2o!,5bo$6o$3bobo!,5bo$6o$2bo2bo!,5bo$5bo$7o!,5bo$5bo$6o$5bo!,5bo$5bo$5bo$6o!,5bo$4obo$3b3o!,5bo$4b2o$6o!,5bo$3o2bo$2b4o!,5bo$3bobo$6o!,5bo$3b3o$4obo!,5bo$2o3bo$b5o!,5bo$2bo2bo$6o!,5bo$2b4o$3o2bo!,5b2o$7o!,4obo$o2b3o!,4obo$bob3o!,4obo$3b4o!,4obo$2b4o!,4o2bo$3b4o!,4o$o2b2o$4bo$4bo!,4o$o2b2o$3b2o!,4o$bobo$3bo$3b2o!,4o$bobo$3b2o$4bo!,4o$bobo$2b3o!,4o$bob3o$5bo!,4o$bob2o$bo2bo!,4o$bob2o$4bo$4bo!,4o$bob2o$3b2o!,4o$b4o$4bo!,4o$b3o$3b2o!,4o$3bobo$3b3o!,4o$3bo$b4o!,4o$3bo$4o!,4o$3bo$3bo$3b3o!,4o$3bo$3bo$2b3o!,4o$3bo$3b4o!,4o$3bo$3b3o$5bo!,4o$3bo$3b2o$4b2o!,4o$3bo$3b2o$3b2o!,4o$3bo$2b4o!,4o$3bo$2b3o$4bo!,4o$3bo$2b2o$3b2o!,4o$3bo$2b2o$2b2o!,4o$3b4o$6bo!,4o$3b3o$5bo$5bo!,4o$3b3o$5b2o!,4o$3b3o$4b2o!,4o$3b3o$3bobo!,4o$3b2o$4bo$4bo$4bo!,4o$3b2o$4bo$4b2o!,4o$3b2o$4bo$3b2o!,4o$3b2o$4b3o!,4o$3b2o$4b2o$5bo!,4o$3b2o$3bo$3b2o!,4o$3b2o$3b3o!,4o$3b2o$3b2o$4bo!,4o$3b2o$2b3o!,4o$2bobo$2b3o!,4o$2bo$b4o!,4o$2bo$4o!,4o$2bo$2bo$2b3o!,4o$2bo$2b3o$4bo!,4o$2bo$2b2o$3b2o!,4o$2b4o$5bo!,4o$2b3o$4bo$4bo!,4o$2b3o$4b2o!,4o$2b3o$3b2o!,4o$2b3o$2bobo!,4o$2b2o$3bo$3b2o!,4o$2b2o$3b3o!,4o$2b2o$3b2o$4bo!,4o$2b2o$2b3o!,4bobo$7o!,4bo$obobo$5o!,4bo$ob3o$3obo!,4bo$o3bo$5o$4bo!,4bo$o2b2o$5o!,4bo$bob2o$5o!,4bo$bo2bo$6o!,4bo$bo2bo$5o$4bo!,4bo$b5o$2o3bo!,4bo$b4o$3obo!,4bo$b4o$2ob2o!,4bo$b4o$2o2b2o!,4bo$b2obo$5o!,4bo$8o!,4bo$7o$6bo!,4bo$7o$5bo!,4bo$7o$4bo!,4bo$6o$o4bo!,4bo$6o$bo3bo!,4bo$6o$bo2bo!,4bo$6o$5bo$5bo!,4bo$6o$5b2o!,4bo$6o$4b2o!,4bo$6o$3bobo!,4bo$6o$3b2o!,4bo$6o$2bobo!,4bo$6o$2bo2bo!,4bo$5o$obobo!,4bo$5o$o2b2o!,4bo$5o$bob2o!,4bo$5o$bo2b2o!,4bo$5o$b2obo!,4bo$5o$4bo$4b2o!,4bo$5o$4bo$3b2o!,4bo$5o$4b3o!,4bo$5o$4b2o$5bo!,4bo$5o$4b2o$4bo!,4bo$5o$3b3o!,4bo$5o$2o2bo!,4bo$5o$2bob2o!,4bo$5o$2b3o!,4bo$4bo$o3bo$5o!,4bo$4bo$bo2bo$5o!,4bo$4bo$b4o$2o2bo!,4bo$4bo$7o!,4bo$4bo$6o$5bo!,4bo$4bo$6o$4bo!,4bo$4bo$6o$3bo!,4bo$4bo$6o$2bo!,4bo$4bo$5o$o3bo!,4bo$4bo$5o$bo2bo!,4bo$4bo$5o$4bo$4bo!,4bo$4bo$5o$4b2o!,4bo$4bo$5o$3b2o!,4bo$4bo$5o$2bobo!,4bo$4bo$4bo$6o!,4bo$4bo$4bo$5o$4bo!,4bo$4bo$4bo$4bo$5o!,4bo$4bo$3obo$2b3o!,4bo$4bo$3b2o$5o!,4bo$4bo$2o2bo$b4o!,4bo$4bo$2bobo$5o!,4bo$4bo$2b3o$3obo!,4bo$4b2o$6o!,4bo$3obo$ob3o!,4bo$3obo$b4o!,4bo$3obo$2b4o!,4bo$3obo$2b3o$4bo!,4bo$3ob2o$2b3o!,4bo$3b3o$4obo!,4bo$3b2o$6o!,4bo$3b2o$5o$4bo!,4bo$3b2o$4bo$5o!,4bo$2ob2o$b4o!,4bo$2o2bo$b5o!,4bo$2o2bo$b4o$4bo!,4bo$2o2bo$5o!,4bo$2o2b2o$b4o!,4bo$2bobo$6o!,4bo$2bobo$5o$4bo!,4bo$2b4o$3o2bo!,4bo$2b3o$5o!,4bo$2b3o$3ob2o!,4b2o$7o!,4b2o$5o$4b2o!,4b2o$5bo$6o!,4b2o$4bo$6o!,3obo$2bobo$2b3o!,3obo$2b5o!,3obo$2b4o$5bo!,3obo$2b3o$4b2o!,3obo$2b3o$3b2o!,3ob2o$2b4o!,3o3bo$2b5o!,3o2bo$b5o!,3o2bo$2b5o!,3o$obobo$2b3o!,3o$ob3o$4bo$4bo!,3o$ob3o$3b2o!,3o$ob2o$b3o!,3o$ob2o$3bo$2b2o!,3o$bobo$b3o$3bo!,3o$bobo$4o!,3o$bo2bo$b4o!,3o$bo$b4o$4bo!,3o$b5o$5bo!,3o$b4o$bo2bo!,3o$b4o$4bo$4bo!,3o$b4o$3b2o!,3o$b4o$2bobo!,3o$b3o$b3o!,3o$b3o$3bo$3b2o!,3o$b3o$3bo$2b2o!,3o$b3o$3b2o$4bo!,3o$b3o$2obo!,3o$b3o$2b3o!,3o$b3o$2b2o$3bo!,3o$b2obo$2b3o!,3o$b2o$2b3o$4bo!,3o$4o$2b2o!,3o$3o$3o!,3o$2bobo$b4o!,3o$2bobo$2b4o!,3o$2bobo$2b3o$4bo!,3o$2bo2bo$2b4o!,3o$2bo$b4o$4bo!,3o$2bo$b3o$3b2o!,3o$2bo$2bobo$2b3o!,3o$2bo$2b4o$5bo!,3o$2bo$2b3o$4bo$4bo!,3o$2bo$2b3o$4b2o!,3o$2bo$2b3o$3b2o!,3o$2bo$2b3o$2bobo!,3o$2bo$2b2o$2b3o!,3o$2b5o$6bo!,3o$2b4o$5bo$5bo!,3o$2b4o$5b2o!,3o$2b4o$4b2o!,3o$2b4o$3bobo!,3o$2b4o$2bo2bo!,3o$2b3o$b2obo!,3o$2b3o$4bo$4bo$4bo!,3o$2b3o$4bo$4b2o!,3o$2b3o$4bo$3b2o!,3o$2b3o$4b3o!,3o$2b3o$4b2o$5bo!,3o$2b3o$3bo$3b2o!,3o$2b3o$3b3o!,3o$2b3o$3b2o$4bo!,3o$2b3o$2bobo$4bo!,3o$2b3o$2bob2o!,3o$2b3o$2b3o!,3o$2b2obo$3b3o!,3o$2b2o$b4o!,3o$2b2o$b3o$3bo!,3o$2b2o$4o!,3o$2b2o$3bo$b3o!,3o$2b2o$3bo$3b3o!,3o$2b2o$3bo$2b3o!,3o$2b2o$3b3o$5bo!,3o$2b2o$3b2o$4bo$4bo!,3o$2b2o$3b2o$4b2o!,3o$2b2o$3b2o$3b2o!,3o$2b2o$2bo$2b3o!,3o$2b2o$2b3o$4bo!,3o$2b2o$2b2o$3b2o!,3o$2b2o$2b2o$2b2o!,3bobo$7o!,3bo2bo$7o!,3bo$ob2o$4o$3bo!,3bo$o2bo$5o$4bo!,3bo$o2bo$4o$o2bo!,3bo$o2bo$4o$bobo!,3bo$o2bo$4o$3b2o!,3bo$o2bo$4o$2b2o!,3bo$o2bo$2obo$b3o!,3bo$o2b2o$5o!,3bo$bobo$b3o$2obo!,3bo$bobo$5o$4bo!,3bo$bobo$5o$3bo!,3bo$bobo$5o$2bo!,3bo$bobo$4o$o2bo!,3bo$bobo$4o$bobo!,3bo$bobo$4o$3b2o!,3bo$bobo$4o$2b2o!,3bo$bobo$2obo$b3o!,3bo$bob2o$5o!,3bo$b5o$2o3bo!,3bo$b4o$3obo!,3bo$b4o$2ob2o!,3bo$b4o$2o2bo$4bo!,3bo$b4o$2o2b2o!,3bo$b3o$5o!,3bo$b3o$4o$3bo!,3bo$b3o$3bo$4o!,3bo$b3o$2obo$3b2o!,3bo$b3o$2obo$2b2o!,3bo$b3o$2ob2o$4bo!,3bo$b3o$2ob2o$3bo!,3bo$7o$6bo!,3bo$7o$5bo!,3bo$7o$4bo!,3bo$7o$3bo!,3bo$6o$o4bo!,3bo$6o$bo3bo!,3bo$6o$bo2bo!,3bo$6o$5bo$5bo!,3bo$6o$5b2o!,3bo$6o$4b2o!,3bo$6o$3bobo!,3bo$6o$3b2o!,3bo$6o$2bobo!,3bo$6o$2bo2bo!,3bo$6o$2b2o!,3bo$5o$obobo!,3bo$5o$o3bo$4bo!,3bo$5o$o2b2o!,3bo$5o$bob2o!,3bo$5o$bo2bo$4bo!,3bo$5o$bo2b2o!,3bo$5o$b3o!,3bo$5o$b2obo!,3bo$5o$4bo$4bo$4bo!,3bo$5o$4bo$4b2o!,3bo$5o$4bo$3b2o!,3bo$5o$4b3o!,3bo$5o$4b2o$5bo!,3bo$5o$4b2o$4bo!,3bo$5o$3bo$3b2o!,3bo$5o$3b3o!,3bo$5o$3b2o$4bo!,3bo$5o$2bobo$4bo!,3bo$5o$2bob2o!,3bo$5o$2b3o!,3bo$4obo$3b3o!,3bo$4o$o2bo$3b2o!,3bo$4o$o2bo$2b2o!,3bo$4o$o2b2o$4bo!,3bo$4o$bobo$3b2o!,3bo$4o$bobo$2b2o!,3bo$4o$bob3o!,3bo$4o$bob2o$4bo!,3bo$4o$bob2o$3bo!,3bo$4o$b4o!,3bo$4o$4o!,3bo$4o$3bo$b3o!,3bo$4o$3bo$3b3o!,3bo$4o$3bo$3b2o$4bo!,3bo$4o$3bo$3b2o$3bo!,3bo$4o$3bo$2b3o!,3bo$4o$3b4o!,3bo$4o$3b3o$5bo!,3bo$4o$3b3o$4bo!,3bo$4o$3b3o$3bo!,3bo$4o$3b2o$4bo$4bo!,3bo$4o$3b2o$4b2o!,3bo$4o$3b2o$3b2o!,3bo$4o$3b2o$2b2o!,3bo$4o$2bo$2b3o!,3bo$4o$2b4o!,3bo$4o$2b3o$4bo!,3bo$4o$2b3o$3bo!,3bo$4o$2b3o$2bo!,3bo$4o$2b2o$3b2o!,3bo$4o$2b2o$2b2o!,3bo$3bobo$6o!,3bo$3bo$bobo$5o!,3bo$3bo$b4o$2o2bo!,3bo$3bo$b3o$2ob2o!,3bo$3bo$7o!,3bo$3bo$6o$5bo!,3bo$3bo$6o$4bo!,3bo$3bo$6o$3bo!,3bo$3bo$5o$o3bo!,3bo$3bo$5o$bobo!,3bo$3bo$5o$bo2bo!,3bo$3bo$5o$4bo$4bo!,3bo$3bo$5o$4b2o!,3bo$3bo$5o$3b2o!,3bo$3bo$5o$2bobo!,3bo$3bo$5o$2b2o!,3bo$3bo$4o$ob2o!,3bo$3bo$4o$bob2o!,3bo$3bo$4o$b3o!,3bo$3bo$4o$3b3o!,3bo$3bo$4o$3b2o$4bo!,3bo$3bo$4o$3b2o$3bo!,3bo$3bo$4o$2obo!,3bo$3bo$4o$2b3o!,3bo$3bo$3bo$6o!,3bo$3bo$3bo$5o$4bo!,3bo$3bo$3bo$5o$3bo!,3bo$3bo$3bo$5o$2bo!,3bo$3bo$3b2o$5o!,3bo$3bo$2obo$b4o!,3bo$3bo$2ob2o$b3o!,3bo$3bo$2b3o$3obo!,3bo$3bo$2b2o$5o!,3bo$3b3o$4obo!,3bo$3b2o$6o!,3bo$3b2o$5o$4bo!,3bo$3b2o$5o$3bo!,3bo$3b2o$4o$3b2o!,3bo$3b2o$4bo$5o!,3bo$3b2o$3bo$5o!,3bo$2obo$bobo$b3o!,3bo$2obo$b5o!,3bo$2obo$b4o$bo!,3bo$2obo$b4o$4bo!,3bo$2obo$b4o$3bo!,3bo$2obo$b4o$2bo!,3bo$2obo$b3o$bobo!,3bo$2obo$b3o$3b2o!,3bo$2obo$b3o$2b2o!,3bo$2obo$4o$3bo!,3bo$2ob2o$b4o!,3bo$2b4o$3o2bo!,3bo$2b3o$5o!,3bo$2b3o$3obo$4bo!,3bo$2b3o$3ob2o!,3bo$2b2o$o2bo$4o!,3bo$2b2o$bobo$4o!,3bo$2b2o$b3o$2obo!,3bo$2b2o$6o!,3bo$2b2o$5o$4bo!,3bo$2b2o$5o$3bo!,3bo$2b2o$5o$2bo!,3bo$2b2o$4o$o2bo!,3bo$2b2o$4o$bobo!,3bo$2b2o$4o$3b2o!,3bo$2b2o$4o$2b2o!,3bo$2b2o$3o$2b3o!,3bo$2b2o$3bo$5o!,3bo$2b2o$2obo$b3o!,3bo$2b2o$2bo$5o!,3bo$2b2o$2b2o$4o!,3b3o$6o!,3b3o$4ob2o!,3b2o$o3bo$5o!,3b2o$bobo$5o!,3b2o$bo2bo$5o!,3b2o$b3o$2ob2o!,3b2o$7o!,3b2o$6o$5bo!,3b2o$5o$4b2o!,3b2o$5o$3b2o!,3b2o$4o$bob2o!,3b2o$4o$3b3o!,3b2o$4o$3b2o$4bo!,3b2o$4o$2b3o!,3b2o$4bo$6o!,3b2o$4bo$4bo$5o!,3b2o$3obo$2b3o!,3b2o$3bo$6o!,3b2o$3bo$5o$4bo!,3b2o$3bo$4o$3b2o!,3b2o$3bo$3bo$5o!,3b2o$3b2o$5o!,3b2o$2obo$b4o!,3b2o$2o2bo$b4o!,3b2o$2bobo$5o!,3b2o$2b2o$5o!,2obobo$b5o!,2obo$bobo$b4o!,2obo$bobo$b3o$3bo!,2obo$bobo$4o!,2obo$b5o$5bo!,2obo$b4o$bo2bo!,2obo$b4o$4bo$4bo!,2obo$b4o$4b2o!,2obo$b4o$3b2o!,2obo$b4o$2bobo!,2obo$b3o$bob2o!,2obo$b3o$b3o!,2obo$b3o$3bo$3b2o!,2obo$b3o$3bo$2b2o!,2obo$b3o$3b2o$4bo!,2obo$b3o$2obo!,2obo$b3o$2b3o!,2obo$4o$2b2o!,2obo$2obo$b3o!,2ob2o$b5o!,2ob2o$5o!,2o4bo$b6o!,2o3bo$b6o!,2o2bo$bo2bo$b4o!,2o2bo$b5o$5bo!,2o2bo$b4o$4b2o!,2o2bo$b4o$3b2o!,2o2bo$b4o$2bobo!,2o2bo$b2obo$2b3o!,2o2b2o$b5o!,2o$bobo$b4o$4bo!,2o$bobo$b3o$bobo!,2o$bobo$b3o$3b2o!,2o$bobo$b3o$2b2o!,2o$bobo$4o$3bo!,2o$bob2o$b4o!,2o$bo3bo$b5o!,2o$bo2bo$b4o$4bo!,2o$bo2bo$5o!,2o$bo$bo2bo$b4o!,2o$bo$bo$b4o$4bo!,2o$bo$b5o$5bo!,2o$bo$b4o$bo2bo!,2o$bo$b4o$4bo$4bo!,2o$bo$b4o$3b2o!,2o$bo$b4o$2bobo!,2o$bo$b3o$3b2o$4bo!,2o$bo$b2obo$2b3o!,2o$bo$b2o$2b3o$4bo!,2o$bo$5o$4bo!,2o$bo$4o$bobo!,2o$b6o$6bo!,2o$b5o$bo3bo!,2o$b5o$5bo$5bo!,2o$b5o$5b2o!,2o$b5o$4b2o!,2o$b5o$3bobo!,2o$b5o$2bo2bo!,2o$b4o$bob2o!,2o$b4o$bo2bo$4bo!,2o$b4o$b2obo!,2o$b4o$4bo$4bo$4bo!,2o$b4o$4bo$4b2o!,2o$b4o$4bo$3b2o!,2o$b4o$4b2o$5bo!,2o$b4o$3bo$3b2o!,2o$b4o$3b3o!,2o$b4o$3b2o$4bo!,2o$b4o$2o2bo!,2o$b4o$2bobo$4bo!,2o$b4o$2b3o!,2o$b3obo$3b3o!,2o$b3o$bobo$bobo!,2o$b3o$bobo$2b2o!,2o$b3o$bob2o$4bo!,2o$b3o$b3o$3bo!,2o$b3o$4o!,2o$b3o$3bo$b3o!,2o$b3o$3bo$3b2o$4bo!,2o$b3o$3bo$2b3o!,2o$b3o$3b3o$5bo!,2o$b3o$3b2o$4bo$4bo!,2o$b3o$3b2o$4b2o!,2o$b3o$3b2o$3b2o!,2o$b3o$2obo$3bo!,2o$b3o$2b3o$4bo!,2o$b3o$2b2o$3b2o!,2o$b3o$2b2o$2b2o!,2o$b2obo$b4o!,2o$b2obo$2b4o!,2o$b2obo$2b3o$4bo!,2o$b2o2bo$2b4o!,2o$b2o$b4o$4bo!,2o$b2o$b3o$bobo!,2o$b2o$b3o$2b2o!,2o$b2o$2bobo$2b3o!,2o$b2o$2b4o$5bo!,2o$b2o$2b3o$4bo$4bo!,2o$b2o$2b3o$3b2o!,2o$b2o$2b3o$2bobo!,2o$b2o$2b2o$3b2o$4bo!,2o$b2o$2b2o$2b3o!,2o$5o$4bo$4bo!,2o$5o$3b2o!,2o$4o$bobo$3bo!,2o$4o$3bo$2b2o!,2o$4o$2b2o$3bo!,2o$3o$2b2o$2b2o!,2o$2obo$b3o$3bo!,2bobo$7o!,2bobo$6o$5bo!,2bobo$5o$4b2o!,2bobo$5o$3b2o!,2bobo$5o$2bobo!,2bobo$3obo$2b3o!,2bobo$2bobo$5o!,2bobo$2b3o$3obo!,2bob2o$6o!,2bo3bo$7o!,2bo2bo$7o!,2bo$obobo$5o!,2bo$obo$5o$4bo!,2bo$obo$4o$bobo!,2bo$obo$4o$3b2o!,2bo$obo$3o$2b3o!,2bo$ob2o$4o$3bo!,2bo$ob2o$4o$2bo!,2bo$b5o$2o3bo!,2bo$b4o$3obo!,2bo$b4o$2ob2o!,2bo$b4o$2o2bo$4bo!,2bo$b3o$bobo$2obo!,2bo$b3o$5o!,2bo$b3o$4o$3bo!,2bo$b3o$4o$2bo!,2bo$b3o$2obo$o2bo!,2bo$b3o$2obo$bobo!,2bo$b3o$2obo$3b2o!,2bo$b3o$2obo$2b2o!,2bo$b3o$2ob2o$4bo!,2bo$b3o$2ob2o$3bo!,2bo$b2obo$5o!,2bo$b2o$5o$4bo!,2bo$b2o$5o$3bo!,2bo$b2o$4o$o2bo!,2bo$b2o$4o$bobo!,2bo$b2o$4o$3b2o!,2bo$b2o$4o$2b2o!,2bo$b2o$3o$2b3o!,2bo$b2o$2o$b4o!,2bo$7o$6bo!,2bo$7o$5bo!,2bo$7o$4bo!,2bo$6o$bo3bo!,2bo$6o$5bo$5bo!,2bo$6o$5b2o!,2bo$6o$4b2o!,2bo$6o$3bobo!,2bo$6o$3b2o!,2bo$6o$2bobo!,2bo$6o$2bo2bo!,2bo$5o$obobo!,2bo$5o$o3bo$4bo!,2bo$5o$o2b2o!,2bo$5o$bob2o!,2bo$5o$bo2bo$4bo!,2bo$5o$bo2b2o!,2bo$5o$b3o!,2bo$5o$b2obo!,2bo$5o$4bo$4bo$4bo!,2bo$5o$4bo$4b2o!,2bo$5o$4bo$3b2o!,2bo$5o$4b3o!,2bo$5o$4b2o$5bo!,2bo$5o$4b2o$4bo!,2bo$5o$3bo$3b2o!,2bo$5o$3b3o!,2bo$5o$3b2o$4bo!,2bo$5o$3b2o$3bo!,2bo$5o$2bobo$4bo!,2bo$5o$2bob2o!,2bo$5o$2b3o!,2bo$4obo$3b3o!,2bo$4o$ob2o$3bo!,2bo$4o$o2bo$o2bo!,2bo$4o$o2bo$3b2o!,2bo$4o$o2bo$2b2o!,2bo$4o$o2b2o$4bo!,2bo$4o$bobo$bobo!,2bo$4o$bobo$3b2o!,2bo$4o$bobo$2b2o!,2bo$4o$bob3o!,2bo$4o$bob2o$4bo!,2bo$4o$bob2o$3bo!,2bo$4o$b4o!,2bo$4o$b3o$3bo!,2bo$4o$4o!,2bo$4o$3bo$b3o!,2bo$4o$3bo$3b3o!,2bo$4o$3bo$3b2o$4bo!,2bo$4o$3bo$3b2o$3bo!,2bo$4o$3bo$2b3o!,2bo$4o$3b4o!,2bo$4o$3b3o$5bo!,2bo$4o$3b3o$4bo!,2bo$4o$3b3o$3bo!,2bo$4o$3b2o$4bo$4bo!,2bo$4o$3b2o$4b2o!,2bo$4o$3b2o$3b2o!,2bo$4o$3b2o$2b2o!,2bo$4o$2obo$3bo!,2bo$4o$2bo$2b3o!,2bo$4o$2b4o!,2bo$4o$2b3o$4bo!,2bo$4o$2b3o$3bo!,2bo$4o$2b3o$2bo!,2bo$4o$2b2o$b2o!,2bo$4o$2b2o$3b2o!,2bo$4o$2b2o$2b2o!,2bo$3obo$ob3o!,2bo$3obo$b4o!,2bo$3obo$2b4o!,2bo$3obo$2b3o$4bo!,2bo$3obo$2b3o$3bo!,2bo$3obo$2b3o$2bo!,2bo$3ob2o$2b3o!,2bo$3o2bo$2b4o!,2bo$3o$obo$2b3o!,2bo$3o$ob3o$4bo!,2bo$3o$ob2o$3b2o!,2bo$3o$ob2o$2b2o!,2bo$3o$bo$b4o!,2bo$3o$b5o!,2bo$3o$b4o$4bo!,2bo$3o$b4o$3bo!,2bo$3o$b3o$bobo!,2bo$3o$b3o$3b2o!,2bo$3o$b3o$2b2o!,2bo$3o$b2o$2b3o!,2bo$3o$4o$3bo!,2bo$3o$2bobo$2b3o!,2bo$3o$2bo$b4o!,2bo$3o$2bo$2b4o!,2bo$3o$2bo$2b3o$4bo!,2bo$3o$2bo$2b3o$2bo!,2bo$3o$2b5o!,2bo$3o$2b4o$5bo!,2bo$3o$2b4o$4bo!,2bo$3o$2b3o$4bo$4bo!,2bo$3o$2b3o$4b2o!,2bo$3o$2b3o$3b2o!,2bo$3o$2b3o$2bobo!,2bo$3o$2b3o$2b2o!,2bo$3o$2b2o$3b3o!,2bo$3o$2b2o$3b2o$4bo!,2bo$3o$2b2o$3b2o$3bo!,2bo$3o$2b2o$2b3o!,2bo$2bobo$6o!,2bo$2bobo$5o$bo!,2bo$2bobo$5o$4bo!,2bo$2bobo$5o$3bo!,2bo$2bobo$5o$2bo!,2bo$2bo2bo$6o!,2bo$2bo$b4o$2o2bo!,2bo$2bo$b3o$2ob2o!,2bo$2bo$6o$5bo!,2bo$2bo$6o$4bo!,2bo$2bo$6o$3bo!,2bo$2bo$5o$o3bo!,2bo$2bo$5o$bobo!,2bo$2bo$5o$bo2bo!,2bo$2bo$5o$4bo$4bo!,2bo$2bo$5o$4b2o!,2bo$2bo$5o$3b2o!,2bo$2bo$5o$2bobo!,2bo$2bo$5o$2bo$2bo!,2bo$2bo$5o$2b2o!,2bo$2bo$4o$bob2o!,2bo$2bo$4o$3b3o!,2bo$2bo$4o$3b2o$4bo!,2bo$2bo$4o$3b2o$3bo!,2bo$2bo$4o$2b3o!,2bo$2bo$3obo$2b3o!,2bo$2bo$3o$b4o!,2bo$2bo$3o$2b4o!,2bo$2bo$3o$2b3o$4bo!,2bo$2bo$3o$2b3o$2bo!,2bo$2bo$2bobo$5o!,2bo$2bo$2bo$5o$4bo!,2bo$2bo$2bo$5o$2bo!,2bo$2bo$2b3o$3obo!,2bo$2bo$2b2o$5o!,2bo$2b4o$3o2bo!,2bo$2b3o$5o!,2bo$2b3o$3obo$4bo!,2bo$2b3o$3ob2o!,2bo$2b2o$b3o$2obo!,2bo$2b2o$5o$4bo!,2bo$2b2o$5o$3bo!,2bo$2b2o$5o$2bo!,2bo$2b2o$4o$o2bo!,2bo$2b2o$4o$bobo!,2bo$2b2o$4o$b2o!,2bo$2b2o$4o$3b2o!,2bo$2b2o$4o$2b2o!,2bo$2b2o$3o$2b3o!,2bo$2b2o$3bo$5o!,2bo$2b2o$2obo$b3o!,2bo$2b2o$2bo$5o!,2b4o$3o2b2o!,2b3o$6o!,2b3o$4bo$5o!,2b3o$3obo$4b2o!,2b3o$3ob3o!,2b3o$3ob2o$5bo!,2b3o$3o$2b3o!,2b3o$3bo$5o!,2b3o$2bo$5o!,2b2obo$6o!,2b2o$obo$4o$3bo!,2b2o$ob2o$4o!,2b2o$bobo$5o!,2b2o$b4o$2o2bo!,2b2o$b3o$4o!,2b2o$b3o$2ob2o!,2b2o$b2o$4o$3bo!,2b2o$6o$5bo!,2b2o$6o$4bo!,2b2o$5o$o3bo!,2b2o$5o$bo2bo!,2b2o$5o$4bo$4bo!,2b2o$5o$4b2o!,2b2o$5o$3b2o!,2b2o$5o$2bobo!,2b2o$5o$2b2o!,2b2o$4o$ob2o!,2b2o$4o$bob2o!,2b2o$4o$b3o!,2b2o$4o$3bo$3b2o!,2b2o$4o$3b3o!,2b2o$4o$3b2o$4bo!,2b2o$4o$3b2o$3bo!,2b2o$4o$2b3o!,2b2o$3obo$2b3o!,2b2o$3o$ob2o$3bo!,2b2o$3o$b4o!,2b2o$3o$b3o$3bo!,2b2o$3o$2bo$2b3o!,2b2o$3o$2b4o!,2b2o$3o$2b3o$4bo!,2b2o$3o$2b3o$3bo!,2b2o$3o$2b3o$2bo!,2b2o$3o$2b2o$3b2o!,2b2o$3o$2b2o$2b2o!,2b2o$3bo$o2bo$4o!,2b2o$3bo$6o!,2b2o$3bo$5o$4bo!,2b2o$3bo$5o$3bo!,2b2o$3bo$5o$2bo!,2b2o$3bo$4o$3b2o!,2b2o$3bo$4o$2b2o!,2b2o$3bo$3bo$5o!,2b2o$3bo$2obo$b3o!,2b2o$3bo$2b2o$4o!,2b2o$3b2o$5o!,2b2o$2obo$b4o!,2b2o$2obo$4o!,2b2o$2ob2o$b3o!,2b2o$2bobo$5o!,2b2o$2bo$b3o$2obo!,2b2o$2bo$5o$4bo!,2b2o$2bo$5o$3bo!,2b2o$2bo$5o$2bo!,2b2o$2bo$4o$o2bo!,2b2o$2bo$4o$bobo!,2b2o$2bo$4o$3b2o!,2b2o$2bo$4o$2b2o!,2b2o$2bo$3o$2b3o!,2b2o$2bo$2bo$5o!,2b2o$2b3o$3obo!,2b2o$2b2o$5o!"
ominolist=data.split(",")

# ominolist = ominolist[:3]

switchengines=[[0, 0, 0, 1, 0, 2, 2, 2, 3, 2, 4, 2, 2, 3, 3, 3, 4, 3, 3, 4, 3, 5, 4, 5, 4, 6, 4, 7, 5, 7, 1, 9, 2, 9, 4, 9, 5, 9, 2, 10, 3, 10, 4, 10, 2, 11],
               [0, 0, 1, 0, 2, 0, -7, 1, -9, 2, -8, 2, -7, 2, -1, 2, 0, 2, -8, 3, -3, 3, -2, 3, -1, 3, 0, 3, -8, 4, -7, 4, -5, 4, -4, 4, -3, 4, -1, 4, 0, 4, -7, 5, -5, 5],
               [0, 0, -2, 1, -1, 1, 0, 1, -3, 2, -2, 2, 0, 2, 1, 2, -3, 4, -2, 4, -2, 5, -2, 6, -1, 6, -1, 7, -2, 8, -1, 8, 0, 8, -2, 9, -1, 9, 0, 9, 2, 9, 2, 10, 2, 11],
               [0, 0, 2, 0, -5, 1, -4, 1, -2, 1, -1, 1, 0, 1, 2, 1, 3, 1, -5, 2, -4, 2, -3, 2, -2, 2, 3, 2, -5, 3, -4, 3, 2, 3, 3, 3, 4, 3, 2, 4, -7, 5, -6, 5, -5, 5],
               [0, 0, 2, 0, -1, 1, 0, 1, 2, 1, 3, 1, 4, 1, 6, 1, 7, 1, -1, 2, 4, 2, 5, 2, 6, 2, 7, 2, -2, 3, -1, 3, 0, 3, 6, 3, 7, 3, 0, 4, 7, 5, 8, 5, 9, 5],
               [0, 0, 0, 1, 1, 1, 2, 1, -1, 2, 0, 2, 2, 2, 3, 2, 2, 4, 3, 4, 2, 5, 1, 6, 2, 6, 1, 7, 0, 8, 1, 8, 2, 8, -2, 9, 0, 9, 1, 9, 2, 9, -2, 10, -2, 11],
               [0, 0, 1, 0, 2, 0, 9, 1, 2, 2, 3, 2, 9, 2, 10, 2, 11, 2, 2, 3, 3, 3, 4, 3, 5, 3, 10, 3, 2, 4, 3, 4, 5, 4, 6, 4, 7, 4, 9, 4, 10, 4, 7, 5, 9, 5],
               [0, 0, 0, 1, -4, 2, -3, 2, -2, 2, 0, 2, -4, 3, -3, 3, -2, 3, -3, 4, -4, 5, -3, 5, -4, 6, -5, 7, -4, 7, -5, 9, -4, 9, -2, 9, -1, 9, -4, 10, -3, 10, -2, 10, -2, 11]]

# No doubt there's some safe way to compare lists, but this is an easy kludge:

switchenginelist=[str(switchengine) for switchengine in switchengines]

count, matches, matchlist=0,0,[]
for omino in ominolist:
  count+=1
  g.new(str(count))
  g.putcells(g.parse(omino))
  g.fit()
  g.update()
  for i in range(128):
    g.run(1)
    clist=g.getcells(g.getrect())
    if clist==[]: break # all cells dead, on to the next omino...
    testclist=str(g.transform(clist,-clist[0],-clist[1]))
    if testclist in switchenginelist:
      matchlist+=[omino]
      break
  g.show(str(len(matchlist)))

g.setclipstr(str(matchlist))

Re: CMD shape switch engine

Posted: July 18th, 2015, 9:55 pm
by dvgrn
In case anyone is curious about octominoes or decominoes that might be switch-engine predecessors, here's some very inefficient code to generate all the polyominoes of a given size -- copied from this blog with only one alteration, a typo fix -- new_points() needed to be new_cells(). So it will need a little more work (but not much) to turn the Polyomino nested lists into standard Golly cell lists.

This code generates fixed N-ominos, one by one. Different rotations or reflections are considered to be different N-ominos. So unless that is changed, it should only be necessary to test each N-omino against one orientation of switch-engine descendant. (The previous script had a hard-coded list of just the distinct free nonominoes, so it had to look for all eight transformations.)

omino-generator.py:

Code: Select all

import golly as g

# code shamelessly stolen from the following Web page:
# https://parallelstripes.wordpress.com/2009/12/20/generating-polyominoes/

class Polyomino:

    def __init__(self, seq=[]):
        """Initialize polyomino set with sequence of cells."""
     
        def translate(seq):
            """
            Translate sequence of cells to origin
            substracting minimum x and y values. 
            """
    
            if seq == []:
                return []
            mx, my = reduce(lambda (rx,ry), (sx,sy): (min(rx,sx), min(ry,sy)), seq)
            return ((x - mx, y - my) for x, y in seq)
     
        self.cells = set(translate(seq))
    
    
    def add_cell(self, c):
        """Return a new polyomino with the cell added."""
        return Polyomino(self.cells.union(set([c])))
    
    
    def new_cells(self):
        """
        Return list of cells that are contiguous to any cell
        in the polyomino, and fall outside of it. 
        """
    
        def contiguous_cells(x, y):
            return (x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)
     
        nc = set()
        for x, y in self.cells:
            for c in contiguous_cells(x, y):
                nc.add(c)
        nc -= self.cells
        return nc
    
    
    def __eq__(self, other):
        return self.cells == other.cells

     
    def __repr__(self):
        return repr(self.cells)


def gen_fixed(n):
    """Generate list of fixed polyominoes up to n."""
    if n == 1:
        yield Polyomino([(0, 0)])
    elif n > 1:
        polys = []
        for P in gen_fixed(n - 1):
            for c in P.new_cells():
                new_poly = P.add_cell(c)
                if new_poly not in polys:
                    polys.append(new_poly)
                    yield new_poly

# not-so-quick test for N-ominos, N=1 through 8:

for i in range(1,9):
  count=0
  for omino in gen_fixed(i):
    count+=1
    if count%100==0: g.show(str(count))
  
  g.note("Number of "+str(i)+"-ominos = " + str(count))