opcodes[]: global scope global { global scope implicit__meteor-contest { } type utf8str: type ucs1str: type ucs2str: type ucs4str: global scope vt100 { } void Rotate ( PieceDefinition¢ p ) { var PieceDefinition¢ p int32 rotated ( int32 n ) var int32 h var int32 d lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) peek ( int32& -- int32 ) call rotated ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) peek ( int32& -- int32 ) call rotated ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) peek ( int32& -- int32 ) call rotated ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) peek ( int32& -- int32 ) call rotated ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) drop ( PieceDefinition¢ -- ) int32 rotated ( int32 n ) { var int32 n var int32 h var int32 d 24 ( -- int32 ) lvar+0+4 "n" ( -- int32& ) += ( int32, int32& -- ) lvar+0+0 "n" ( -- int32& ) peek ( int32& -- int32 ) 7 ( -- uint32 ) % ( int32, uint32 -- int32 ) 3 ( -- uint32 ) - ( int32, uint32 -- int32 ) lvar+0+4 "n" ( -- int32& ) peek ( int32& -- int32 ) 7 ( -- uint32 ) / ( int32, uint32 -- int32 ) 3 ( -- uint32 ) - ( int32, uint32 -- int32 ) lvar-8+8 "d" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "h" ( -- int32& ) peek ( int32& -- int32 ) 6 ( -- uint32 ) * ( int32, uint32 -- int32 ) - ( int32, int32 -- int32 ) lvar+0+12 "n" ( -- int32& ) swapwithvar ( int32, int32& -- int32 ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) } } void Mirror ( PieceDefinition¢ p ) { var PieceDefinition¢ p int32 mirrored ( int32 n ) var int32 h var int32 d lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) peek ( int32& -- int32 ) call mirrored ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) peek ( int32& -- int32 ) call mirrored ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) peek ( int32& -- int32 ) call mirrored ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) lvar+0+0 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) peek ( int32& -- int32 ) call mirrored ( int32 -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) drop ( PieceDefinition¢ -- ) int32 mirrored ( int32 n ) { var int32 n var int32 h var int32 d 24 ( -- int32 ) lvar+0+4 "n" ( -- int32& ) += ( int32, int32& -- ) lvar+0+0 "n" ( -- int32& ) peek ( int32& -- int32 ) 7 ( -- uint32 ) % ( int32, uint32 -- int32 ) 3 ( -- uint32 ) - ( int32, uint32 -- int32 ) lvar+0+4 "n" ( -- int32& ) peek ( int32& -- int32 ) 7 ( -- uint32 ) / ( int32, uint32 -- int32 ) 3 ( -- uint32 ) - ( int32, uint32 -- int32 ) lvar-8+8 "d" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) lvar-4+12 "h" ( -- int32& ) peek ( int32& -- int32 ) 7 ( -- uint32 ) * ( int32, uint32 -- int32 ) - ( int32, int32 -- int32 ) lvar+0+12 "n" ( -- int32& ) swapwithvar ( int32, int32& -- int32 ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) } } uint64 Bits ( PieceDefinition¢ p ) { var PieceDefinition¢ p var int32 a var int32 b var int32 c var int32 d var int32 e var int32 m 0 ( -- int32 ) lvar+0+4 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) peek ( int32& -- int32 ) lvar+0+8 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) + ( int32, int32 -- int32 ) lvar+0+12 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) peek ( int32& -- int32 ) lvar-12+16 "c" ( -- int32& ) peek ( int32& -- int32 ) + ( int32, int32 -- int32 ) lvar+0+16 "p" ( -- PieceDefinition¢& ) peek ( PieceDefinition¢& -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) peek ( int32& -- int32 ) lvar-16+20 "d" ( -- int32& ) peek ( int32& -- int32 ) + ( int32, int32 -- int32 ) lvar-4+20 "a" ( -- int32& ) peek ( int32& -- int32 ) cast ( int32 -- float64 ) lvar-8+28 "b" ( -- int32& ) peek ( int32& -- int32 ) cast ( int32 -- float64 ) lvar-12+36 "c" ( -- int32& ) peek ( int32& -- int32 ) cast ( int32 -- float64 ) lvar-16+44 "d" ( -- int32& ) peek ( int32& -- int32 ) cast ( int32 -- float64 ) lvar-20+52 "e" ( -- int32& ) peek ( int32& -- int32 ) cast ( int32 -- float64 ) min ( float64, float64, float64 -- float64 ) min ( float64, float64, float64 -- float64 ) cast ( float64 -- int32 ) lvar-24+24 "m" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+28 "a" ( -- int32& ) -= ( int32, int32& -- ) lvar-24+24 "m" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+28 "b" ( -- int32& ) -= ( int32, int32& -- ) lvar-24+24 "m" ( -- int32& ) peek ( int32& -- int32 ) lvar-12+28 "c" ( -- int32& ) -= ( int32, int32& -- ) lvar-24+24 "m" ( -- int32& ) peek ( int32& -- int32 ) lvar-16+28 "d" ( -- int32& ) -= ( int32, int32& -- ) lvar-24+24 "m" ( -- int32& ) peek ( int32& -- int32 ) lvar-20+28 "e" ( -- int32& ) -= ( int32, int32& -- ) 1 ( -- uint64 ) lvar-4+32 "a" ( -- int32& ) peek ( int32& -- int32 ) << ( uint64, int32 -- uint64 ) 1 ( -- uint64 ) lvar-8+40 "b" ( -- int32& ) peek ( int32& -- int32 ) << ( uint64, int32 -- uint64 ) | ( uint64, uint64 -- uint64 ) 1 ( -- uint64 ) lvar-12+40 "c" ( -- int32& ) peek ( int32& -- int32 ) << ( uint64, int32 -- uint64 ) | ( uint64, uint64 -- uint64 ) 1 ( -- uint64 ) lvar-16+40 "d" ( -- int32& ) peek ( int32& -- int32 ) << ( uint64, int32 -- uint64 ) | ( uint64, uint64 -- uint64 ) 1 ( -- uint64 ) lvar-20+40 "e" ( -- int32& ) peek ( int32& -- int32 ) << ( uint64, int32 -- uint64 ) | ( uint64, uint64 -- uint64 ) tor ( uint64 -- ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) drop ( PieceDefinition¢ -- ) fromr ( -- uint64 ) } global scope ANON { } global scope ANON { } void PrintBoard ( utf8str b ) { var utf8str b var int32 i 0 ( -- int32 ) L989: "" ( -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) " \n" ( -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) catstr ( utf8str, utf8str -- utf8str ) print ( utf8str ) 2 ( -- int32 ) lvar-4+8 "i" ( -- int32& ) += ( int32, int32& -- ) " " ( -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) 32 ( -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) lvar+0+12 "b" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+20 "i" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) peek ( utf8char& -- utf8char ) catchar ( utf8str, utf8char -- utf8str ) " \n" ( -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) catstr ( utf8str, utf8str -- utf8str ) print ( utf8str ) lvar-4+4 "i" ( -- int32& ) ++ ( int32& -- ) lvar-4+4 "i" ( -- int32& ) peek ( int32& -- int32 ) 64 ( -- int32 ) < ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L990 jp ( -- ) -> L989 L990: "\n" ( -- utf8str¢ ) print ( utf8str¢ ) drop ( int32 -- ) dispose ( utf8str -- ) } void StoreSolution () { var utf8str solution void insert_piece ( uint64 bits, uint32 c ) var int32 i var uint32 p push_context0 ( -- ) 64 ( -- uint32 ) spacestr ( uint32 -- utf8str ) 0 ( -- uint32 ) L1001: gvar-52 "used_pieces" ( -- uint64[10]& ) peek ( uint64[10]& -- uint64[10]¢ ) lvar-12+20 "p" ( -- uint32& ) peek ( uint32& -- uint32 ) atindex ( uint64[10]¢, int32 -- uint64& ) peek ( uint64& -- uint64 ) lvar-12+20 "p" ( -- uint32& ) peek ( uint32& -- uint32 ) call insert_piece ( uint64, uint32 ) lvar-12+12 "p" ( -- uint32& ) pppeek ( uint32& -- uint32 ) 10 ( -- uint32 ) < ( uint32, uint32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L1002 jp ( -- ) -> L1001 L1002: lvar-8+12 "solution" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) cast ( utf8str¢ -- utf8char[to] ) cast ( utf8char[to] -- utf8str ) gvar-44 "solutions" ( -- utf8str[2098]& ) peek ( utf8str[2098]& -- utf8str[2098]¢ ) gvar-36 "num_solutions" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str[2098]¢, int32 -- utf8str& ) swapwithvar ( utf8str, utf8str& -- utf8str ) dispose ( utf8str -- ) lvar-8+12 "solution" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) cast ( utf8str¢ -- utf8char[to] ) flip ( utf8char[to] -- ) lvar-8+12 "solution" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) gvar-44 "solutions" ( -- utf8str[2098]& ) peek ( utf8str[2098]& -- utf8str[2098]¢ ) gvar-36 "num_solutions" ( -- int32& ) peekpp ( int32& -- int32 ) atindex ( utf8str[2098]¢, int32 -- utf8str& ) swapwithvar ( utf8str, utf8str& -- utf8str ) dispose ( utf8str -- ) drop ( uint32 -- ) dispose ( utf8str -- ) pop_context0 ( -- ) void insert_piece ( uint64 bits, uint32 c ) { var uint64 bits var uint32 c var int32 i 0 ( -- int32 ) L994: lvar+4+4 "bits" ( -- uint64& ) peek ( uint64& -- uint64 ) cast ( uint64 -- uint8 ) !! ( uint8 -- bool ) jp_nz ( bool -- ) -> L996 8 ( -- int32 ) lvar+4+8 "bits" ( -- uint64& ) >>= ( int32, uint64& -- ) 8 ( -- int32 ) lvar-4+8 "i" ( -- int32& ) += ( int32, int32& -- ) jp ( -- ) -> L994 L996: lvar+4+4 "bits" ( -- uint64& ) peek ( uint64& -- uint64 ) 1 ( -- uint64 ) & ( uint64, uint64 -- uint64 ) !! ( uint64 -- bool ) jp_z ( bool -- ) -> L998 lvar+0+4 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) 48 ( -- uint32 ) + ( uint32, uint32 -- uint32 ) cast ( uint32 -- utf8char ) xlvar-8 "solution" ( -- utf8str& ) peek ( utf8str& -- utf8str¢ ) lvar-4+16 "i" ( -- int32& ) peek ( int32& -- int32 ) atindex ( utf8str¢, int32 -- utf8char& ) poke ( utf8char, utf8char& -- ) jp ( -- ) -> L998 L998: 1 ( -- int32 ) lvar+4+8 "bits" ( -- uint64& ) >>= ( int32, uint64& -- ) lvar-4+4 "i" ( -- int32& ) ++ ( int32& -- ) lvar+4+4 "bits" ( -- uint64& ) peek ( uint64& -- uint64 ) !! ( uint64 -- bool ) jp_z ( bool -- ) -> L993 jp ( -- ) -> L996 L993: drop ( int32 -- ) drop ( uint32 -- ) drop ( uint64 -- ) } } void Solve ( uint64 board, uint32 avail, int32 i0 ) { var uint64 board var uint32 avail var int32 i0 local scope ANON var int32 p local scope ANON local scope ANON var uint64& used_piece var uint64[]¢ rotated_piece var int32 r lvar+4+0 "avail" ( -- uint32& ) peek ( uint32& -- uint32 ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L1006 L1007: lvar+8+0 "board" ( -- uint64& ) peek ( uint64& -- uint64 ) lvar+0+8 "i0" ( -- int32& ) peek ( int32& -- int32 ) >> ( uint64, int32 -- uint64 ) 1 ( -- uint64 ) & ( uint64, uint64 -- uint64 ) !! ( uint64 -- bool ) jp_z ( bool -- ) -> L1008 lvar+0+0 "i0" ( -- int32& ) ++ ( int32& -- ) jp ( -- ) -> L1007 L1008: 0 ( -- int32 ) L1009: lvar+4+4 "avail" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+8 "p" ( -- int32& ) peek ( int32& -- int32 ) >> ( uint32, int32 -- uint32 ) 1 ( -- uint32 ) & ( uint32, uint32 -- uint32 ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L1011 gvar-52 "used_pieces" ( -- uint64[10]& ) peek ( uint64[10]& -- uint64[10]¢ ) lvar-4+12 "p" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[10]¢, int32 -- uint64& ) gvar-24 "rotated_pieces" ( -- uint64[12][10]& ) peek ( uint64[12][10]& -- uint64[12][10]¢ ) lvar-4+20 "p" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[12][10]¢, int32 -- uint64[12]& ) peek ( uint64[12]& -- uint64[12]¢ ) 0 ( -- int32 ) L1013: lvar-20+24 "rotated_piece" ( -- uint64[]¢& ) peek ( uint64[]¢& -- uint64[]¢ ) lvar-24+32 "r" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[]¢, int32 -- uint64& ) peek ( uint64& -- uint64 ) lvar+0+32 "i0" ( -- int32& ) peek ( int32& -- int32 ) << ( uint64, int32 -- uint64 ) lvar-12+32 "used_piece" ( -- uint64&& ) peek ( uint64&& -- uint64& ) poke ( uint64, uint64& -- ) lvar+8+24 "board" ( -- uint64& ) peek ( uint64& -- uint64 ) lvar-12+32 "used_piece" ( -- uint64&& ) peek ( uint64&& -- uint64& ) peek ( uint64& -- uint64 ) & ( uint64, uint64 -- uint64 ) 0 ( -- uint64 ) == ( uint64, uint64 -- bool ) !! ( uint32 -- bool ) and0 ( bool -- ) -> L1017 lvar-12+24 "used_piece" ( -- uint64&& ) peek ( uint64&& -- uint64& ) peek ( uint64& -- uint64 ) lvar+0+32 "i0" ( -- int32& ) peek ( int32& -- int32 ) >> ( uint64, int32 -- uint64 ) lvar-20+32 "rotated_piece" ( -- uint64[]¢& ) peek ( uint64[]¢& -- uint64[]¢ ) lvar-24+40 "r" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[]¢, int32 -- uint64& ) peek ( uint64& -- uint64 ) == ( uint64, uint64 -- bool ) !! ( uint32 -- bool ) L1017: !! ( uint32 -- bool ) jp_z ( bool -- ) -> L1015 lvar+8+24 "board" ( -- uint64& ) peek ( uint64& -- uint64 ) lvar-12+32 "used_piece" ( -- uint64&& ) peek ( uint64&& -- uint64& ) peek ( uint64& -- uint64 ) | ( uint64, uint64 -- uint64 ) lvar+4+32 "avail" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) lvar-4+40 "p" ( -- int32& ) peek ( int32& -- int32 ) << ( uint32, int32 -- uint32 ) - ( uint32, uint32 -- uint32 ) lvar+0+36 "i0" ( -- int32& ) peek ( int32& -- int32 ) call Solve ( uint64, uint32, int32 ) jp ( -- ) -> L1015 L1015: lvar-24+24 "r" ( -- int32& ) pppeek ( int32& -- int32 ) 12 ( -- int32 ) < ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L1014 jp ( -- ) -> L1013 L1014: drop ( int32 -- ) drop ( uint64[]¢ -- ) drop ( uint64& -- ) jp ( -- ) -> L1011 L1011: lvar-4+4 "p" ( -- int32& ) pppeek ( int32& -- int32 ) 10 ( -- int32 ) < ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L1010 jp ( -- ) -> L1009 L1010: drop ( int32 -- ) jp ( -- ) -> L1004 L1006: call StoreSolution () L1004: drop ( int32 -- ) drop ( uint32 -- ) drop ( uint64 -- ) local scope ANON { local scope ANON { local scope ANON { } } } } } 434650421954089056 ( -- uint64 ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) -6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) -6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 13 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 7 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 16 ( -- uint32 ) alloc ( uint32 -- PieceDefinition ) tor ( PieceDefinition -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+0 "b" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+4 "c" ( -- int32& ) poke ( int32, int32& -- ) 1 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+8 "d" ( -- int32& ) poke ( int32, int32& -- ) 6 ( -- int32 ) peekr ( -- PieceDefinition¢ ) item+12 "e" ( -- int32& ) poke ( int32, int32& -- ) fromr ( -- PieceDefinition ) 80 ( -- uint32 ) alloc ( uint32 -- PieceDefinition[10] ) dup2r ( PieceDefinition[10] -- PieceDefinition[10]¢ ) forallitems ( PieceDefinition[10]¢ -- PieceDefinition& ) -> L965 L964: poke ( PieceDefinition, PieceDefinition& -- ) L965: ForAllEnd .. L964 fromr ( -- PieceDefinition[10] ) 80 ( -- uint32 ) alloc ( uint32 -- uint64[12][10] ) 10 ( -- uint32 ) L976: gvar-28 "i" ( -- uint32& ) peekmm ( uint32& -- uint32 ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L977 96 ( -- uint32 ) alloc ( uint32 -- uint64[12] ) gvar-24 "rotated_pieces" ( -- uint64[12][10]& ) peek ( uint64[12][10]& -- uint64[12][10]¢ ) gvar-28 "i" ( -- uint32& ) peek ( uint32& -- uint32 ) atindex ( uint64[12][10]¢, int32 -- uint64[12]& ) swapwithvar ( uint64[12], uint64[12]& -- uint64[12] ) dispose ( uint64[12] -- ) jp ( -- ) -> L976 L977: drop ( uint32 -- ) 0 ( -- int32 ) L978: 0 ( -- int32 ) L980: gvar-16 "piece_definition" ( -- PieceDefinition[10]& ) peek ( PieceDefinition[10]& -- PieceDefinition[10]¢ ) gvar-28 "p" ( -- int32& ) peek ( int32& -- int32 ) atindex ( PieceDefinition[10]¢, int32 -- PieceDefinition& ) peek ( PieceDefinition& -- PieceDefinition¢ ) call Bits ( PieceDefinition¢ -- uint64 ) gvar-24 "rotated_pieces" ( -- uint64[12][10]& ) peek ( uint64[12][10]& -- uint64[12][10]¢ ) gvar-28 "p" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[12][10]¢, int32 -- uint64[12]& ) peek ( uint64[12]& -- uint64[12]¢ ) gvar-32 "r" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[12]¢, int32 -- uint64& ) poke ( uint64, uint64& -- ) gvar-16 "piece_definition" ( -- PieceDefinition[10]& ) peek ( PieceDefinition[10]& -- PieceDefinition[10]¢ ) gvar-28 "p" ( -- int32& ) peek ( int32& -- int32 ) atindex ( PieceDefinition[10]¢, int32 -- PieceDefinition& ) peek ( PieceDefinition& -- PieceDefinition¢ ) call Rotate ( PieceDefinition¢ ) gvar-32 "r" ( -- int32& ) pppeek ( int32& -- int32 ) 12 ( -- int32 ) < ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L981 gvar-32 "r" ( -- int32& ) peek ( int32& -- int32 ) 6 ( -- uint32 ) % ( int32, uint32 -- int32 ) 0 ( -- int32 ) == ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L980 gvar-16 "piece_definition" ( -- PieceDefinition[10]& ) peek ( PieceDefinition[10]& -- PieceDefinition[10]¢ ) gvar-28 "p" ( -- int32& ) peek ( int32& -- int32 ) atindex ( PieceDefinition[10]¢, int32 -- PieceDefinition& ) peek ( PieceDefinition& -- PieceDefinition¢ ) call Mirror ( PieceDefinition¢ ) jp ( -- ) -> L980 L981: gvar-28 "p" ( -- int32& ) pppeek ( int32& -- int32 ) 10 ( -- int32 ) < ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_nz ( bool -- ) -> L984 drop ( int32 -- ) jp ( -- ) -> L979 L984: drop ( int32 -- ) jp ( -- ) -> L978 L979: 3 ( -- int32 ) L985: 18446744073709551615 ( -- uint64 ) gvar-24 "rotated_pieces" ( -- uint64[12][10]& ) peek ( uint64[12][10]& -- uint64[12][10]¢ ) 3 ( -- int32 ) atindex ( uint64[12][10]¢, int32 -- uint64[12]& ) peek ( uint64[12]& -- uint64[12]¢ ) gvar-32 "r" ( -- int32& ) peek ( int32& -- int32 ) atindex ( uint64[12]¢, int32 -- uint64& ) poke ( uint64, uint64& -- ) gvar-32 "r" ( -- int32& ) pppeek ( int32& -- int32 ) 9 ( -- int32 ) < ( int32, int32 -- bool ) !! ( uint32 -- bool ) jp_z ( bool -- ) -> L986 jp ( -- ) -> L985 L986: 0 ( -- int32 ) 16784 ( -- uint32 ) alloc ( uint32 -- utf8str[2098] ) 80 ( -- uint32 ) alloc ( uint32 -- uint64[10] ) gvar-8 "empty_board" ( -- uint64& ) peek ( uint64& -- uint64 ) 1023 ( -- uint32 ) 0 ( -- int32 ) call Solve ( uint64, uint32, int32 ) "" ( -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) gvar-36 "num_solutions" ( -- int32& ) peek ( int32& -- int32 ) numstr ( int32 -- utf8str ) catstr ( utf8str, utf8str -- utf8str ) " solutions found\n\n" ( -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) catstr ( utf8str, utf8str -- utf8str ) print ( utf8str ) gvar-44 "solutions" ( -- utf8str[2098]& ) peek ( utf8str[2098]& -- utf8str[2098]¢ ) min ( utf8str[]¢ -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) call PrintBoard ( utf8str ) gvar-44 "solutions" ( -- utf8str[2098]& ) peek ( utf8str[2098]& -- utf8str[2098]¢ ) max ( utf8str[]¢ -- utf8str¢ ) retain ( utf8str¢ -- utf8str ) call PrintBoard ( utf8str )