x
974
1735
parameter (or
(or (or (unit %build_board) (nat %join_game))
(or (nat %leave_game)
(pair %play (nat %_game_id) (pair (nat %x) (nat %y)))))
(bool %set_pause));
storage (pair (address %admin)
(pair (bool %paused)
(pair
(big_map %games nat
(pair (nat %board_id)
(pair (address %player1)
(pair (address %player2)
(pair (nat %moves_number)
(pair (address %winner)
(pair (bool %draw)
(pair
(bool %started)
(pair
(bool %finished)
(pair
(map %board
nat
(pair
(nat %row_id)
(map %cells
nat
string)))
(nat %next_player)))))))))))
(nat %next_game_id))));
code { UNPAIR ;
DIG 0 ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ NIL operation ;
DUP 3 ;
GET 3 ;
DUP 1 ;
IF { PUSH string "Contract is paused" ; FAILWITH } {} ;
AMOUNT ;
PUSH mutez 5000000 ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 1 ;
IF
{ PUSH string "You must pay 5 tez to start a game" ; FAILWITH }
{} ;
EMPTY_MAP nat (pair (nat %row_id) (map %cells nat string)) ;
NIL nat ;
PUSH nat 3 ;
CONS ;
PUSH nat 2 ;
CONS ;
PUSH nat 1 ;
CONS ;
DUP 1 ;
ITER { EMPTY_MAP nat string ;
DUP 1 ;
DUP 3 ;
PAIR 2 ;
DUP 4 ;
ITER { DUP 2 ;
GET 2 ;
DUP 1 ;
PUSH string "_" ;
SOME ;
DUP 4 ;
UPDATE ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 3 ;
DUP 2 ;
UPDATE 2 ;
DIP 3 { DROP } ;
DUG 2 ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 5 ;
DUP 2 ;
SOME ;
DUP 5 ;
UPDATE ;
DIP 5 { DROP } ;
DUG 4 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 8 ;
GET 5 ;
DUP 9 ;
GET 6 ;
SENDER ;
SENDER ;
SENDER ;
DUP 13 ;
GET 6 ;
DUP 6 ;
PUSH nat 1 ;
DUP 10 ;
PUSH bool False ;
PUSH bool False ;
PUSH bool False ;
DUP 8 ;
PUSH nat 0 ;
DUP 11 ;
DUP 13 ;
DUP 15 ;
PAIR 10 ;
SOME ;
DUP 3 ;
UPDATE ;
DIP 6 { DROP } ;
DUG 5 ;
DUP 14 ;
DUP 7 ;
UPDATE 5 ;
DIP 14 { DROP } ;
DUG 13 ;
DUP 14 ;
GET 6 ;
DUP 15 ;
PUSH nat 1 ;
DUP 3 ;
ADD ;
UPDATE 6 ;
DIP 15 { DROP } ;
DUG 14 ;
DUP 15 ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DUP 2 ;
PAIR ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } }
{ NIL operation ;
DUP 3 ;
GET 3 ;
DUP 1 ;
IF { PUSH string "Contract is paused" ; FAILWITH } {} ;
AMOUNT ;
PUSH mutez 5000000 ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 1 ;
IF
{ PUSH string "You must pay 5 tez to join a game" ; FAILWITH }
{} ;
DUP 6 ;
GET 5 ;
DUP 1 ;
DUP 7 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 3 ;
SENDER ;
DUP 1 ;
DUP 3 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ PUSH string "You are already playing this game" ; FAILWITH }
{} ;
DUP 4 ;
GET 13 ;
DUP 1 ;
IF { PUSH string "Game is already started" ; FAILWITH } {} ;
DUP 5 ;
GET 15 ;
DUP 1 ;
IF { PUSH string "Game is finished" ; FAILWITH } {} ;
DUP 13 ;
GET 5 ;
DUP 1 ;
DUP 14 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
SENDER ;
UPDATE 5 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 16 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 15 ;
DUP 3 ;
UPDATE 5 ;
DIP 15 { DROP } ;
DUG 14 ;
DUP 15 ;
GET 5 ;
DUP 1 ;
DUP 16 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 13 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 18 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 17 ;
DUP 3 ;
UPDATE 5 ;
DIP 17 { DROP } ;
DUG 16 ;
DUP 17 ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DUP 2 ;
PAIR ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } } }
{ IF_LEFT
{ NIL operation ;
DUP 3 ;
GET 3 ;
DUP 1 ;
IF { PUSH string "Contract is paused" ; FAILWITH } {} ;
DUP 4 ;
GET 5 ;
DUP 1 ;
DUP 5 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 15 ;
DUP 1 ;
IF { PUSH string "Game is finished" ; FAILWITH } {} ;
DUP 2 ;
GET 13 ;
DUP 1 ;
IF { PUSH string "Game is started" ; FAILWITH } {} ;
SENDER ;
DUP 4 ;
GET 3 ;
DUP 1 ;
DUP 3 ;
COMPARE ;
NEQ ;
DUP 1 ;
IF
{ PUSH string "You are not the creator of the game" ; FAILWITH }
{} ;
DUP 11 ;
GET 5 ;
DUP 1 ;
DUP 12 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 15 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 14 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 13 ;
DUP 3 ;
UPDATE 5 ;
DIP 13 { DROP } ;
DUG 12 ;
DUP 8 ;
GET 3 ;
DUP 1 ;
CONTRACT unit ;
IF_NONE { PUSH string "Contract does not exist" ; FAILWITH } {} ;
DUP 13 ;
DUP 2 ;
PUSH mutez 5000000 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DIP 13 { DROP } ;
DUG 12 ;
DUP 15 ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DUP 2 ;
PAIR ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } }
{ NIL operation ;
DUP 2 ;
GET 1 ;
DUP 3 ;
GET 3 ;
DUP 4 ;
GET 4 ;
DUP 6 ;
GET 3 ;
DUP 1 ;
IF { PUSH string "Contract is paused" ; FAILWITH } {} ;
DUP 7 ;
GET 5 ;
DUP 1 ;
DUP 6 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 15 ;
DUP 1 ;
IF { PUSH string "Game is finished" ; FAILWITH } {} ;
DUP 2 ;
GET 13 ;
DUP 1 ;
NOT ;
DUP 1 ;
IF { PUSH string "Game is not started" ; FAILWITH } {} ;
DUP 4 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
SENDER ;
DUP 7 ;
GET 3 ;
DUP 1 ;
DUP 3 ;
COMPARE ;
NEQ ;
DUP 1 ;
DUP 5 ;
AND ;
DUP 1 ;
IF { PUSH string "Player 1 turn" ; FAILWITH } {} ;
DUP 10 ;
GET 18 ;
PUSH nat 2 ;
DUP 2 ;
COMPARE ;
EQ ;
SENDER ;
DUP 13 ;
GET 5 ;
DUP 1 ;
DUP 3 ;
COMPARE ;
NEQ ;
DUP 1 ;
DUP 5 ;
AND ;
DUP 1 ;
IF { PUSH string "Player 2 turn" ; FAILWITH } {} ;
PUSH nat 1 ;
DUP 21 ;
COMPARE ;
LT ;
PUSH nat 3 ;
DUP 22 ;
COMPARE ;
GT ;
DUP 1 ;
DUP 3 ;
OR ;
DUP 1 ;
IF
{ PUSH string "Invalid x value, must be between 1 and 3" ; FAILWITH }
{} ;
PUSH nat 1 ;
DUP 23 ;
COMPARE ;
LT ;
PUSH nat 3 ;
DUP 24 ;
COMPARE ;
GT ;
DUP 1 ;
DUP 3 ;
OR ;
DUP 1 ;
IF
{ PUSH string "Invalid y value, must be between 1 and 3" ; FAILWITH }
{} ;
DUP 22 ;
GET 17 ;
DUP 1 ;
DUP 27 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
DUP 30 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
PUSH string "_" ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 1 ;
IF { PUSH string "Cell already played" ; FAILWITH } {} ;
DUP 35 ;
GET 5 ;
DUP 1 ;
DUP 34 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ DUP 39 ;
GET 5 ;
DUP 1 ;
DUP 38 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 17 ;
DUP 1 ;
DUP 38 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH string "X" ;
SOME ;
DUP 42 ;
UPDATE ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
UPDATE 2 ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 3 ;
DUP 3 ;
SOME ;
DUP 41 ;
UPDATE ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
UPDATE 17 ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 5 ;
DUP 5 ;
SOME ;
DUP 43 ;
UPDATE ;
DIP 5 { DROP } ;
DUG 4 ;
DUP 44 ;
DUP 6 ;
UPDATE 5 ;
DIP 44 { DROP } ;
DUG 43 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 39 ;
GET 5 ;
DUP 1 ;
DUP 38 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 17 ;
DUP 1 ;
DUP 38 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH string "O" ;
SOME ;
DUP 42 ;
UPDATE ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
UPDATE 2 ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 3 ;
DUP 3 ;
SOME ;
DUP 41 ;
UPDATE ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
UPDATE 17 ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 5 ;
DUP 5 ;
SOME ;
DUP 43 ;
UPDATE ;
DIP 5 { DROP } ;
DUG 4 ;
DUP 44 ;
DUP 6 ;
UPDATE 5 ;
DIP 44 { DROP } ;
DUG 43 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 39 ;
GET 5 ;
DUP 1 ;
DUP 38 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 41 ;
GET 5 ;
DUP 1 ;
DUP 40 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 7 ;
DUP 4 ;
PUSH nat 1 ;
DUP 3 ;
ADD ;
UPDATE 7 ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 5 ;
DUP 5 ;
SOME ;
DUP 43 ;
UPDATE ;
DIP 5 { DROP } ;
DUG 4 ;
DUP 44 ;
DUP 6 ;
UPDATE 5 ;
DIP 44 { DROP } ;
DUG 43 ;
DUP 44 ;
GET 5 ;
DUP 1 ;
DUP 43 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 17 ;
DUP 1 ;
DUP 43 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
PUSH string "_" ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 5 ;
DUP 47 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 8 ;
DUP 50 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 2 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 13 ;
DUP 55 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 16 ;
DUP 58 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 1 ;
IF
{ DUP 67 ;
GET 5 ;
DUP 1 ;
DUP 66 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ DUP 71 ;
GET 5 ;
DUP 1 ;
DUP 70 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 73 ;
GET 5 ;
DUP 1 ;
DUP 72 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 3 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 74 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 75 ;
DUP 5 ;
UPDATE 5 ;
DIP 75 { DROP } ;
DUG 74 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 71 ;
GET 5 ;
DUP 1 ;
DUP 70 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 73 ;
GET 5 ;
DUP 1 ;
DUP 72 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 5 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 74 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 75 ;
DUP 5 ;
UPDATE 5 ;
DIP 75 { DROP } ;
DUG 74 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 71 ;
GET 5 ;
DUP 1 ;
DUP 70 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 15 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 72 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 73 ;
DUP 3 ;
UPDATE 5 ;
DIP 73 { DROP } ;
DUG 72 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{} ;
DUP 21 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
DUP 66 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
PUSH string "_" ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 25 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
DUP 70 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 28 ;
PUSH nat 2 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
DUP 73 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 33 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
DUP 78 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 36 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
DUP 81 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 1 ;
IF
{ DUP 87 ;
GET 5 ;
DUP 1 ;
DUP 86 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ DUP 91 ;
GET 5 ;
DUP 1 ;
DUP 90 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 93 ;
GET 5 ;
DUP 1 ;
DUP 92 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 3 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 94 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 95 ;
DUP 5 ;
UPDATE 5 ;
DIP 95 { DROP } ;
DUG 94 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 91 ;
GET 5 ;
DUP 1 ;
DUP 90 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 93 ;
GET 5 ;
DUP 1 ;
DUP 92 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 5 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 94 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 95 ;
DUP 5 ;
UPDATE 5 ;
DIP 95 { DROP } ;
DUG 94 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 91 ;
GET 5 ;
DUP 1 ;
DUP 90 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 15 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 92 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 93 ;
DUP 3 ;
UPDATE 5 ;
DIP 93 { DROP } ;
DUG 92 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{} ;
DUP 41 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
PUSH string "_" ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 45 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 48 ;
PUSH nat 2 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 2 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 53 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 56 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 1 ;
IF
{ DUP 107 ;
GET 5 ;
DUP 1 ;
DUP 106 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ DUP 111 ;
GET 5 ;
DUP 1 ;
DUP 110 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 113 ;
GET 5 ;
DUP 1 ;
DUP 112 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 3 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 114 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 115 ;
DUP 5 ;
UPDATE 5 ;
DIP 115 { DROP } ;
DUG 114 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 111 ;
GET 5 ;
DUP 1 ;
DUP 110 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 113 ;
GET 5 ;
DUP 1 ;
DUP 112 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 5 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 114 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 115 ;
DUP 5 ;
UPDATE 5 ;
DIP 115 { DROP } ;
DUG 114 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 111 ;
GET 5 ;
DUP 1 ;
DUP 110 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 15 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 112 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 113 ;
DUP 3 ;
UPDATE 5 ;
DIP 113 { DROP } ;
DUG 112 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{} ;
DUP 61 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
PUSH string "_" ;
DUP 2 ;
COMPARE ;
NEQ ;
DUP 65 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 68 ;
PUSH nat 2 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 2 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 73 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 76 ;
PUSH nat 3 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 2 ;
DUP 1 ;
PUSH nat 1 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
DUP 5 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 9 ;
AND ;
DUP 1 ;
IF
{ DUP 127 ;
GET 5 ;
DUP 1 ;
DUP 126 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ DUP 131 ;
GET 5 ;
DUP 1 ;
DUP 130 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 133 ;
GET 5 ;
DUP 1 ;
DUP 132 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 3 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 134 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 135 ;
DUP 5 ;
UPDATE 5 ;
DIP 135 { DROP } ;
DUG 134 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 131 ;
GET 5 ;
DUP 1 ;
DUP 130 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 133 ;
GET 5 ;
DUP 1 ;
DUP 132 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 3 ;
DUP 2 ;
GET 5 ;
UPDATE 9 ;
DIP 3 { DROP } ;
DUG 2 ;
DUP 4 ;
DUP 4 ;
SOME ;
DUP 134 ;
UPDATE ;
DIP 4 { DROP } ;
DUG 3 ;
DUP 135 ;
DUP 5 ;
UPDATE 5 ;
DIP 135 { DROP } ;
DUG 134 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 131 ;
GET 5 ;
DUP 1 ;
DUP 130 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 15 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 132 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 133 ;
DUP 3 ;
UPDATE 5 ;
DIP 133 { DROP } ;
DUG 132 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{} ;
DUP 127 ;
GET 5 ;
DUP 1 ;
DUP 126 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 15 ;
DUP 1 ;
NOT ;
DUP 131 ;
GET 5 ;
DUP 1 ;
DUP 130 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 7 ;
PUSH nat 9 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
DUP 6 ;
AND ;
DUP 1 ;
IF
{ DUP 136 ;
GET 5 ;
DUP 1 ;
DUP 135 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 11 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 137 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 138 ;
DUP 3 ;
UPDATE 5 ;
DIP 138 { DROP } ;
DUG 137 ;
DUP 138 ;
GET 5 ;
DUP 1 ;
DUP 137 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH bool True ;
UPDATE 15 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 139 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 140 ;
DUP 3 ;
UPDATE 5 ;
DIP 140 { DROP } ;
DUG 139 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{} ;
DUP 136 ;
GET 5 ;
DUP 1 ;
DUP 135 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 15 ;
DUP 1 ;
IF
{ DUP 139 ;
GET 5 ;
DUP 1 ;
DUP 138 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 11 ;
DUP 1 ;
IF
{ DUP 134 ;
GET 3 ;
DUP 1 ;
CONTRACT unit ;
IF_NONE
{ PUSH string "Contract does not exist" ; FAILWITH }
{} ;
DUP 142 ;
DUP 2 ;
PUSH mutez 5000000 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DIP 142 { DROP } ;
DUG 141 ;
DUP 136 ;
GET 5 ;
DUP 1 ;
CONTRACT unit ;
IF_NONE
{ PUSH string "Contract does not exist" ; FAILWITH }
{} ;
DUP 144 ;
DUP 2 ;
PUSH mutez 5000000 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DIP 144 { DROP } ;
DUG 143 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 142 ;
GET 5 ;
DUP 1 ;
DUP 141 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 9 ;
DUP 1 ;
CONTRACT unit ;
IF_NONE
{ PUSH string "Contract does not exist" ; FAILWITH }
{} ;
DUP 144 ;
DUP 2 ;
PUSH mutez 10000000 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DIP 144 { DROP } ;
DUG 143 ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DIP 0 { DROP } ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{} ;
DUP 139 ;
GET 5 ;
DUP 1 ;
DUP 138 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
GET 18 ;
PUSH nat 1 ;
DUP 2 ;
COMPARE ;
EQ ;
DUP 1 ;
IF
{ DUP 143 ;
GET 5 ;
DUP 1 ;
DUP 142 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH nat 2 ;
UPDATE 18 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 144 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 145 ;
DUP 3 ;
UPDATE 5 ;
DIP 145 { DROP } ;
DUG 144 ;
DIP 0 { DROP } ;
DIP 0 { DROP } }
{ DUP 143 ;
GET 5 ;
DUP 1 ;
DUP 142 ;
GET ;
IF_NONE { PUSH string "Key does not exist" ; FAILWITH } {} ;
DUP 1 ;
PUSH nat 1 ;
UPDATE 18 ;
DIP 1 { DROP } ;
DUG 0 ;
DUP 2 ;
DUP 2 ;
SOME ;
DUP 144 ;
UPDATE ;
DIP 2 { DROP } ;
DUG 1 ;
DUP 145 ;
DUP 3 ;
UPDATE 5 ;
DIP 145 { DROP } ;
DUG 144 ;
DIP 0 { DROP } ;
DIP 0 { DROP } } ;
DUP 143 ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DUP 2 ;
PAIR ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } } } }
{ NIL operation ;
SENDER ;
DUP 4 ;
GET 1 ;
DUP 1 ;
DUP 3 ;
COMPARE ;
NEQ ;
DUP 1 ;
IF { PUSH string "Only admin can set pause" ; FAILWITH } {} ;
DUP 6 ;
DUP 6 ;
UPDATE 3 ;
DIP 6 { DROP } ;
DUG 5 ;
DUP 6 ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DUP 2 ;
PAIR ;
DIP 1 { DROP } ;
DIP 1 { DROP } ;
DIP 1 { DROP } } }