2020-03-02 02:52:41 +04:00

565 lines
23 KiB
Plaintext

// automatically generated from `smartcont/stdlib.fc` `smartcont/config-code.fc`
PROGRAM{
DECLPROC set_conf_param
DECLPROC load_data
DECLPROC store_data
DECLPROC check_validator_set
DECLPROC send_answer
DECLPROC send_confirmation
DECLPROC send_error
DECLPROC recv_internal
DECLPROC change_elector_code
1666 DECLMETHOD after_code_upgrade
DECLPROC perform_action
DECLPROC get_validator_descr
DECLPROC unpack_validator_descr
DECLPROC new_proposal
DECLPROC unpack_proposal
DECLPROC pack_proposal
DECLPROC register_vote
DECLPROC recv_external
DECLPROC run_ticktock
85143 DECLMETHOD seqno
set_conf_param PROC:<{
// index value
c4 PUSH // index value _3
CTOS // index value cs
LDREF // index value cfg_dict cs
s3 s3 XCHG2
32 PUSHINT // cs value index cfg_dict _9=32
DICTISETREF // cs cfg_dict
NEWC // cs cfg_dict _11
STREF // cs _12
SWAP // _12 cs
STSLICER // _13
ENDC // _14
c4 POP
}>
load_data PROC:<{
//
c4 PUSH // _1
CTOS // cs
LDREF // _4 cs
32 LDU // _4 _6 cs
256 LDU // _4 _6 _9 cs
LDDICT // res res res res cs
ENDS
}>
store_data PROC:<{
// cfg_dict stored_seqno public_key vote_dict
s0 s3 XCHG
NEWC // vote_dict stored_seqno public_key cfg_dict _4
STREF // vote_dict stored_seqno public_key _5
s1 s2 XCHG // vote_dict public_key stored_seqno _5
32 STU // vote_dict public_key _7
256 STU // vote_dict _9
STDICT // _10
ENDC // _11
c4 POP
}>
check_validator_set PROC:<{
// vset
CTOS // cs
8 LDU // _4 cs
SWAP // cs _4
18 EQINT // cs _8
9 THROWIFNOT
32 LDU // utime_since cs
32 LDU // utime_since utime_until cs
16 LDU // utime_since utime_until total cs
16 LDU // utime_since utime_until total _42 _41
DROP // utime_since utime_until total main
DUP // utime_since utime_until total main main
0 GTINT // utime_since utime_until total main _28
9 THROWIFNOT
GEQ // utime_since utime_until _31
9 THROWIFNOT
}>
send_answer PROC:<{
// addr query_id ans_tag mode
0 PUSHINT // addr query_id ans_tag mode _4=0
24 PUSHINT // addr query_id ans_tag mode _4=0 _5=24
NEWC // addr query_id ans_tag mode _4=0 _5=24 _6
6 STU // addr query_id ans_tag mode _4=0 _8
s0 s5 XCHG2 // _4=0 query_id ans_tag mode _8 addr
STSLICER // _4=0 query_id ans_tag mode _9
s1 s4 XCHG // mode query_id ans_tag _4=0 _9
111 STU // mode query_id ans_tag _23
32 STU // mode query_id _25
64 STU // mode _27
ENDC // mode _28
SWAP // _28 mode
SENDRAWMSG
}>
send_confirmation PROC:<{
// addr query_id ans_tag
64 PUSHINT // addr query_id ans_tag _3=64
send_answer CALLDICT
}>
send_error PROC:<{
// addr query_id ans_tag
64 PUSHINT // addr query_id ans_tag _3=64
send_answer CALLDICT
}>
recv_internal PROC:<{
// in_msg_cell in_msg
SWAP // in_msg in_msg_cell
CTOS // in_msg cs
4 LDU // in_msg flags cs
LDMSGADDR // in_msg flags _74 _73
DROP // in_msg flags s_addr
DUP // in_msg flags s_addr s_addr
REWRITESTDADDR // in_msg flags s_addr src_wc src_addr
SWAP // in_msg flags s_addr src_addr src_wc
INC // in_msg flags s_addr src_addr _15
s0 s3 XCHG
1 PUSHINT // in_msg _15 s_addr src_addr flags _16=1
AND // in_msg _15 s_addr src_addr _17
s1 s3 XCHG // in_msg src_addr s_addr _15 _17
OR // in_msg src_addr s_addr _18
s3 PUSH // in_msg src_addr s_addr _18 in_msg
SEMPTY // in_msg src_addr s_addr _18 _19
OR // in_msg src_addr s_addr _20
IFJMP:<{ // in_msg src_addr s_addr
3 BLKDROP //
}> // in_msg src_addr s_addr
s0 s2 XCHG // s_addr src_addr in_msg
32 LDU // s_addr src_addr tag in_msg
64 LDU // s_addr src_addr tag query_id in_msg
s2 PUSH
1314280276 PUSHINT // s_addr src_addr tag query_id in_msg tag _29=1314280276
EQUAL // s_addr src_addr tag query_id in_msg _30
IFJMP:<{ // s_addr src_addr tag query_id in_msg
1 2 BLKDROP2 // s_addr src_addr query_id in_msg
LDREF // s_addr src_addr query_id vset in_msg
ENDS
1 PUSHINT // s_addr src_addr query_id vset _36=1
CONFIGOPTPARAM // s_addr src_addr query_id vset elector_param
DUP // s_addr src_addr query_id vset elector_param elector_param
ISNULL // s_addr src_addr query_id vset elector_param _39
IF:<{ // s_addr src_addr query_id vset elector_param
DROP // s_addr src_addr query_id vset
-1 PUSHINT // s_addr src_addr query_id vset _40=-1
}>ELSE<{ // s_addr src_addr query_id vset elector_param
CTOS // s_addr src_addr query_id vset _42
256 PLDU // s_addr src_addr query_id vset _40
}> // s_addr src_addr query_id vset elector_addr
s0 s3 XCHG
FALSE
s0 s4 XCHG // s_addr ok query_id vset src_addr elector_addr
EQUAL // s_addr ok query_id vset _47
IF:<{ // s_addr ok query_id vset
s2 POP // s_addr vset query_id
OVER // s_addr vset query_id vset
check_validator_set CALLDICT // s_addr vset query_id t_since t_until
NOW // s_addr vset query_id t_since t_until t
s2 s(-1) PUXC // s_addr vset query_id t_since t_until t_since t
GREATER // s_addr vset query_id t_since t_until _53
s0 s2 XCHG // s_addr vset query_id _53 t_until t_since
GREATER // s_addr vset query_id _53 _54
AND // s_addr vset query_id ok
s0 s2 XCHG // s_addr ok query_id vset
}> // s_addr ok query_id vset
s0 s2 XCHG // s_addr vset query_id ok
IFJMP:<{ // s_addr vset query_id
36 PUSHINT
ROT // s_addr query_id _56=36 vset
set_conf_param CALLDICT
4000730955 PUSHINT // s_addr query_id _58=4000730955
send_confirmation CALLDICT
}> // s_addr vset query_id
NIP // s_addr query_id
4000730991 PUSHINT // s_addr query_id _60=4000730991
send_error CALLDICT
}> // s_addr src_addr tag query_id in_msg
s2 s4 XCHG
4 BLKDROP // tag
DUP // tag tag
0 EQINT // tag _64
SWAP
31 PUSHPOW2 // _64 tag _67
AND // _64 _68
OR // _69
37 THROWIFNOT
}>
change_elector_code PROC:<{
// cs
1 PUSHINT // cs _2=1
CONFIGOPTPARAM // cs _3
CTOS // cs _4
256 PLDU // cs dest_addr
NOW // cs dest_addr query_id
1313042276 PUSHINT // cs dest_addr query_id _9=1313042276
0 PUSHINT // cs dest_addr query_id _9=1313042276 _10=0
50431 PUSHINT // cs dest_addr query_id _9=1313042276 _10=0 _11=50431
NEWC // cs dest_addr query_id _9=1313042276 _10=0 _11=50431 _12
17 STU // cs dest_addr query_id _9=1313042276 _10=0 _14
s1 s4 XCHG // cs _10=0 query_id _9=1313042276 dest_addr _14
256 STU // cs _10=0 query_id _9=1313042276 _16
30 PUSHPOW2 // cs _10=0 query_id _9=1313042276 _16 _19
STGRAMS // cs _10=0 query_id _9=1313042276 _20
s1 s3 XCHG // cs _9=1313042276 query_id _10=0 _20
107 STU // cs _9=1313042276 query_id _34
s1 s2 XCHG // cs query_id _9=1313042276 _34
32 STU // cs query_id _36
64 STU // cs _38
SWAP // _38 cs
STSLICER // _39
ENDC // _40
0 PUSHINT // _40 _41=0
SENDRAWMSG
}>
after_code_upgrade PROC:<{
// param old_code
2DROP //
}>
perform_action PROC:<{
// cfg_dict public_key action cs
OVER
1130778657 PUSHINT // cfg_dict public_key action cs action _4=1130778657
EQUAL // cfg_dict public_key action cs _5
IFJMP:<{ // cfg_dict public_key action cs
NIP // cfg_dict public_key cs
32 LDU // cfg_dict public_key param_index cs
LDREF // cfg_dict public_key param_index param_value cs
ENDS
s0 s1 s3 XCHG3
32 PUSHINT // public_key param_value param_index cfg_dict _15=32
DICTISETREF // public_key cfg_dict
SWAP // cfg_dict public_key
}> // cfg_dict public_key action cs
OVER
1313042276 PUSHINT // cfg_dict public_key action cs action _17=1313042276
EQUAL // cfg_dict public_key action cs _18
IFJMP:<{ // cfg_dict public_key action cs
NIP // cfg_dict public_key cs
LDREF // cfg_dict public_key new_code cs
OVER // cfg_dict public_key new_code cs new_code
SETCODE
c3 PUSH // cfg_dict public_key new_code cs old_code
s0 s2 XCHG // cfg_dict public_key old_code cs new_code
CTOS // cfg_dict public_key old_code cs _25
BLESS // cfg_dict public_key old_code cs _26
c3 POP
SWAP // cfg_dict public_key cs old_code
after_code_upgrade CALLDICT
0 THROW
}> // cfg_dict public_key action cs
OVER
1348619041 PUSHINT // cfg_dict public_key action cs action _31=1348619041
EQUAL // cfg_dict public_key action cs _32
IFJMP:<{ // cfg_dict public_key action cs
2 1 BLKDROP2 // cfg_dict cs
256 LDU // cfg_dict public_key cs
ENDS
}> // cfg_dict public_key action cs
OVER
1313074949 PUSHINT // cfg_dict public_key action cs action _37=1313074949
EQUAL // cfg_dict public_key action cs _38
IFJMP:<{ // cfg_dict public_key action cs
NIP // cfg_dict public_key cs
change_elector_code CALLDICT
}> // cfg_dict public_key action cs
DROP // cfg_dict public_key action
32 THROWIF
}>
get_validator_descr PROCREF:<{
// idx
34 PUSHINT // idx _2=34
CONFIGOPTPARAM // idx vset
DUP // idx vset vset
ISNULL // idx vset _4
IFJMP:<{ // idx vset
2DROP //
PUSHNULL // _5
0 PUSHINT // _5 _6=0
}> // idx vset
CTOS // idx cs
8 LDU // idx _10 cs
SWAP // idx cs _10
18 EQINT // idx cs _14
40 THROWIFNOT
96 PUSHINT // idx cs _23
SDSKIPFIRST // idx cs
64 LDU // idx total_weight cs
NEWC // idx total_weight cs _30
SWAP // idx total_weight _30 cs
STSLICER // idx total_weight _31
ENDC // idx total_weight dict
s1 s2 XCHG
16 PUSHINT // total_weight idx dict _35=16
DICTUGET
NULLSWAPIFNOT // total_weight _41 _42
DROP // total_weight value
SWAP // value total_weight
}>
unpack_validator_descr PROC:<{
// cs
8 LDU // _2 cs
32 PUSHINT // _2 cs _5=32
NOT // _2 cs _6
s1 s2 XCHG // cs _2 _6
AND // cs _7
83 EQINT // cs _9
41 THROWIFNOT
32 LDU // _12 cs
SWAP
2390828938 PUSHINT // cs _12 _15=2390828938
EQUAL // cs _16
41 THROWIFNOT
256 LDU // _18 cs
64 LDU // _18 _31 _30
DROP // _18 _21
}>
new_proposal PROC:<{
// cs
PUSHNULL // cs _1
0 PUSHINT // cs _1 _2=0
s0 s1 s2 XCPUXC // _1 _2=0 _3=0 cs
}>
unpack_proposal PROC:<{
// cs
LDDICT // _1 cs
64 LDU // _1 _3 cs
256 LDU // _1 _3 _6 cs
}>
pack_proposal PROC:<{
// voters sum_weight vset_id body
s0 s3 XCHG
NEWC // body sum_weight vset_id voters _4
STDICT // body sum_weight vset_id _5
s1 s2 XCHG // body vset_id sum_weight _5
64 STU // body vset_id _7
256 STU // body _9
SWAP // _9 body
STSLICER // _10
}>
register_vote PROC:<{
// vote_dict action cs idx weight total_weight cur_vset_id
s0 s5 XCHG
1 PUSHINT // vote_dict cur_vset_id cs idx weight total_weight action _13=1
AND // vote_dict cur_vset_id cs idx weight total_weight _14
IF:<{ // vote_dict cur_vset_id cs idx weight total_weight
s3 PUSH // vote_dict cur_vset_id cs idx weight total_weight cs
HASHSU // vote_dict cur_vset_id cs idx weight total_weight hash
s0 s6 PUSH2
8 PUSHPOW2 // vote_dict cur_vset_id cs idx weight total_weight hash hash vote_dict _16=256
DICTUGET
NULLSWAPIFNOT // vote_dict cur_vset_id cs idx weight total_weight hash entry found?
}>ELSE<{ // vote_dict cur_vset_id cs idx weight total_weight
s3 PUSH // vote_dict cur_vset_id cs idx weight total_weight cs
256 PLDU // vote_dict cur_vset_id cs idx weight total_weight hash
s0 s6 PUSH2
8 PUSHPOW2 // vote_dict cur_vset_id cs idx weight total_weight hash hash vote_dict _20=256
DICTUGET
NULLSWAPIFNOT // vote_dict cur_vset_id cs idx weight total_weight hash entry found?
DUP // vote_dict cur_vset_id cs idx weight total_weight hash entry found? found?
42 THROWIFNOT
}>
IF:<{ // vote_dict cur_vset_id cs idx weight total_weight hash entry
s5 POP // vote_dict cur_vset_id entry idx weight total_weight hash
s0 s4 XCHG // vote_dict cur_vset_id hash idx weight total_weight entry
unpack_proposal INLINECALLDICT // vote_dict cur_vset_id hash idx weight total_weight _65 _66 _67 _68
}>ELSE<{ // vote_dict cur_vset_id cs idx weight total_weight hash entry
DROP // vote_dict cur_vset_id cs idx weight total_weight hash
PUSHNULL // vote_dict cur_vset_id cs idx weight total_weight hash _30
s5 s0 s6 XC2PU
0 PUSHINT
s0 s1 s3 XCHG3 // vote_dict cur_vset_id hash idx weight total_weight _65 _66 _67 _68
}> // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight vset_id body
s1 s8 XCPU // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body vset_id cur_vset_id
NEQ // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body _32
IF:<{ // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body
NIP
PUSHNULL
s2 POP
0 PUSHINT
SWAP // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight=0 body
}> // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body
s5 s2 PUSH2
16 PUSHINT // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body idx voters _37=16
DICTUGET
NULLSWAPIFNOT // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body _73 _74
NIP // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body found?
IFJMP:<{ // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body
8 BLKDROP // vote_dict
PUSHNULL // vote_dict _60
}> // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body
32 PUSHINT // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body _40=32
NEWC // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body _40=32 _41
NOW // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body _40=32 _41 _42
STUX // vote_dict cur_vset_id hash idx weight total_weight voters sum_weight body _43
s0 s6 s3 XCHG3
16 PUSHINT // vote_dict cur_vset_id hash body weight total_weight sum_weight _43 idx voters _44=16
DICTUSETB // vote_dict cur_vset_id hash body weight total_weight sum_weight voters
s0 s3 XCHG // vote_dict cur_vset_id hash body voters total_weight sum_weight weight
ADD // vote_dict cur_vset_id hash body voters total_weight sum_weight
DUP // vote_dict cur_vset_id hash body voters total_weight sum_weight sum_weight
3 MULCONST // vote_dict cur_vset_id hash body voters total_weight sum_weight _48
s0 s2 XCHG // vote_dict cur_vset_id hash body voters _48 sum_weight total_weight
1 LSHIFT# // vote_dict cur_vset_id hash body voters _48 sum_weight _50
s1 s2 XCHG // vote_dict cur_vset_id hash body voters sum_weight _48 _50
GREATER // vote_dict cur_vset_id hash body voters sum_weight _51
IFJMP:<{ // vote_dict cur_vset_id hash body voters sum_weight
2DROP
1 2 BLKDROP2
s0 s2 XCHG
8 PUSHPOW2 // body hash vote_dict _53=256
DICTUDEL // body _75 _76
DROP // body vote_dict
SWAP // vote_dict body
}> // vote_dict cur_vset_id hash body voters sum_weight
2SWAP
s1 s4 XCHG // vote_dict hash voters sum_weight cur_vset_id body
pack_proposal INLINECALLDICT // vote_dict hash _56
s0 s2 XCHG
8 PUSHPOW2 // _56 hash vote_dict _57=256
DICTUSETB // vote_dict
PUSHNULL // vote_dict _59
}>
recv_external PROC:<{
// in_msg
9 PUSHPOW2 // in_msg _3=512
LDSLICEX // signature in_msg
DUP // signature in_msg cs
32 LDU // signature in_msg action cs
32 LDU // signature in_msg action msg_seqno cs
32 LDU // signature in_msg action msg_seqno valid_until cs
NOW // signature in_msg action msg_seqno valid_until cs _19
s1 s2 XCHG // signature in_msg action msg_seqno cs valid_until _19
LESS // signature in_msg action msg_seqno cs _20
35 THROWIF
load_data INLINECALLDICT // signature in_msg action msg_seqno cs cfg_dict stored_seqno public_key vote_dict
s5 s2 XCPU // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key msg_seqno stored_seqno
EQUAL // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key _28
33 THROWIFNOT
s5 PUSH
1450144869 PUSHINT // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key action _30=1450144869
SUB // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key _31
-2 PUSHINT // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key _31 _32=-2
AND // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key _33
IFNOTJMP:<{ // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key
s0 s3 XCHG // signature in_msg action vote_dict public_key cfg_dict stored_seqno cs
16 LDU // signature in_msg action vote_dict public_key cfg_dict stored_seqno idx cs
OVER // signature in_msg action vote_dict public_key cfg_dict stored_seqno idx cs idx
get_validator_descr INLINECALLDICT // signature in_msg action vote_dict public_key cfg_dict stored_seqno idx cs vdescr total_weight
SWAP // signature in_msg action vote_dict public_key cfg_dict stored_seqno idx cs total_weight vdescr
unpack_validator_descr INLINECALLDICT // signature in_msg action vote_dict public_key cfg_dict stored_seqno idx cs total_weight val_pubkey weight
s0 s10 XCHG // signature weight action vote_dict public_key cfg_dict stored_seqno idx cs total_weight val_pubkey in_msg
HASHSU // signature weight action vote_dict public_key cfg_dict stored_seqno idx cs total_weight val_pubkey _45
s0 s11 s11 XCHG3 // total_weight weight action vote_dict public_key cfg_dict stored_seqno idx cs _45 signature val_pubkey
CHKSIGNU // total_weight weight action vote_dict public_key cfg_dict stored_seqno idx cs _46
34 THROWIFNOT
ACCEPT
s0 s2 XCHG // total_weight weight action vote_dict public_key cfg_dict cs idx stored_seqno
INC // total_weight weight action vote_dict public_key cfg_dict cs idx stored_seqno
s3 s0 s4 PUSH3
s8 PUSH // total_weight weight action vote_dict public_key cfg_dict cs idx stored_seqno cfg_dict stored_seqno public_key vote_dict
store_data INLINECALLDICT
COMMIT
34 PUSHINT // total_weight weight action vote_dict public_key cfg_dict cs idx stored_seqno _54=34
CONFIGOPTPARAM // total_weight weight action vote_dict public_key cfg_dict cs idx stored_seqno _55
HASHCU // total_weight weight action vote_dict public_key cfg_dict cs idx stored_seqno _56
s5 s7 XCHG
s3 s4 XCHG
s2 s3 XCHG
s8 s9 s0 XCHG3 // stored_seqno cfg_dict public_key vote_dict action cs idx weight total_weight _56
register_vote CALLDICT // stored_seqno cfg_dict public_key vote_dict accepted
s3 s4 s2 PUSH3
s4 PUSH // stored_seqno cfg_dict public_key vote_dict accepted cfg_dict stored_seqno public_key vote_dict
store_data INLINECALLDICT
DUP // stored_seqno cfg_dict public_key vote_dict accepted accepted
ISNULL // stored_seqno cfg_dict public_key vote_dict accepted _59
IFNOT:<{ // stored_seqno cfg_dict public_key vote_dict accepted
32 LDU // stored_seqno cfg_dict public_key vote_dict _60 accepted
s3 s4 XCHG
s2 s4 XCHG // stored_seqno vote_dict cfg_dict public_key _60 accepted
perform_action CALLDICT // stored_seqno vote_dict cfg_dict public_key
s3 s0 s3 XCHG3 // cfg_dict stored_seqno public_key vote_dict
store_data INLINECALLDICT
}>ELSE<{
5 BLKDROP //
}>
}> // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key
s0 s6 XCHG // signature public_key action vote_dict cs cfg_dict stored_seqno in_msg
HASHSU // signature public_key action vote_dict cs cfg_dict stored_seqno _66
s0 s7 s6 XC2PU // stored_seqno public_key action vote_dict cs cfg_dict _66 signature public_key
CHKSIGNU // stored_seqno public_key action vote_dict cs cfg_dict _67
34 THROWIFNOT
ACCEPT
s0 s5 XCHG // cfg_dict public_key action vote_dict cs stored_seqno
INC // cfg_dict public_key action vote_dict cs stored_seqno
s5 s0 s4 PUSH3
s5 PUSH // cfg_dict public_key action vote_dict cs stored_seqno cfg_dict stored_seqno public_key vote_dict
store_data INLINECALLDICT
COMMIT
s3 s5 XCHG
s4 s5 s5 XCHG3 // stored_seqno vote_dict cfg_dict public_key action cs
perform_action CALLDICT // stored_seqno vote_dict cfg_dict public_key
s3 s0 s3 XCHG3 // cfg_dict stored_seqno public_key vote_dict
store_data INLINECALLDICT
}>
run_ticktock PROC:<{
// is_tock
DROP //
c4 PUSH // _2
CTOS // cs
LDREF // cfg_dict cs
32 PUSHINT // cfg_dict cs kl=32
36 PUSHINT // cfg_dict cs kl=32 _10=36
s3 s1 PUSH2 // cfg_dict cs kl=32 _10=36 cfg_dict kl=32
DICTIGETOPTREF // cfg_dict cs kl=32 next_vset
DUP // cfg_dict cs kl=32 next_vset next_vset
ISNULL // cfg_dict cs kl=32 next_vset _12
IFNOT:<{ // cfg_dict cs kl=32 next_vset
DUP // cfg_dict cs kl=32 next_vset next_vset
CTOS // cfg_dict cs kl=32 next_vset ds
DUP // cfg_dict cs kl=32 next_vset ds ds
SBITS // cfg_dict cs kl=32 next_vset ds _15
39 GTINT // cfg_dict cs kl=32 next_vset ds _17
IF:<{ // cfg_dict cs kl=32 next_vset ds
8 LDU // cfg_dict cs kl=32 next_vset tag ds
32 PLDU // cfg_dict cs kl=32 next_vset tag since
NOW // cfg_dict cs kl=32 next_vset tag since _25
LEQ // cfg_dict cs kl=32 next_vset tag _26
SWAP // cfg_dict cs kl=32 next_vset _26 tag
18 EQINT // cfg_dict cs kl=32 next_vset _26 _28
AND // cfg_dict cs kl=32 next_vset _29
IF:<{ // cfg_dict cs kl=32 next_vset
34 PUSHINT
ROT
s4 s4 XCPU // kl=32 cs next_vset _32=34 cfg_dict kl=32
DICTISETGETOPTREF // kl=32 cs cfg_dict cur_vset
s3 s1 s0 PUXCPU // kl=32 cs cur_vset _35=32 cfg_dict kl=32
DICTISETGETOPTREF // kl=32 cs _51 _52
DROP // kl=32 cs cfg_dict
36 PUSHINT // kl=32 cs cfg_dict _38=36
s0 s1 s3 XCHG3 // cs _38=36 cfg_dict kl=32
DICTIDEL // cs _53 _54
DROP // cs cfg_dict
SWAP // cfg_dict cs
}>ELSE<{
2DROP // cfg_dict cs
}>
}>ELSE<{
3 BLKDROP // cfg_dict cs
}>
}>ELSE<{
2DROP // cfg_dict cs
}>
SWAP
NEWC // cs cfg_dict _40
STREF // cs _41
SWAP // _41 cs
STSLICER // _42
ENDC // _43
c4 POP
}>
seqno PROC:<{
//
c4 PUSH // _0
CTOS // _1
32 PLDU // _3
}>
}END>c