@layerzerolabs/layerzero-v2-ton 3.0.12-ton.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +15 -0
  3. package/build/AllStorages.boc +0 -0
  4. package/build/AllStorages.compiled.json +1 -0
  5. package/build/AllStorages.fif +4164 -0
  6. package/build/AllStorages.test.boc +0 -0
  7. package/build/AllStorages.test.compiled.json +1 -0
  8. package/build/AllStorages.test.fif +1831 -0
  9. package/build/BaseContract.test.boc +0 -0
  10. package/build/BaseContract.test.compiled.json +1 -0
  11. package/build/BaseContract.test.fif +3553 -0
  12. package/build/Channel.boc +0 -0
  13. package/build/Channel.compiled.json +1 -0
  14. package/build/Channel.fif +5001 -0
  15. package/build/Channel.permissions.test.boc +0 -0
  16. package/build/Channel.permissions.test.compiled.json +1 -0
  17. package/build/Channel.permissions.test.fif +7569 -0
  18. package/build/ChannelBurn.test.boc +0 -0
  19. package/build/ChannelBurn.test.compiled.json +1 -0
  20. package/build/ChannelBurn.test.fif +7454 -0
  21. package/build/ChannelCommitPacket.test.boc +0 -0
  22. package/build/ChannelCommitPacket.test.compiled.json +1 -0
  23. package/build/ChannelCommitPacket.test.fif +7981 -0
  24. package/build/ChannelConfig.test.boc +0 -0
  25. package/build/ChannelConfig.test.compiled.json +1 -0
  26. package/build/ChannelConfig.test.fif +7442 -0
  27. package/build/ChannelInitialize.test.boc +0 -0
  28. package/build/ChannelInitialize.test.compiled.json +1 -0
  29. package/build/ChannelInitialize.test.fif +7289 -0
  30. package/build/ChannelMsglibIntegration.test.boc +0 -0
  31. package/build/ChannelMsglibIntegration.test.compiled.json +1 -0
  32. package/build/ChannelMsglibIntegration.test.fif +7404 -0
  33. package/build/ChannelMsglibSendCallback.test.boc +0 -0
  34. package/build/ChannelMsglibSendCallback.test.compiled.json +1 -0
  35. package/build/ChannelMsglibSendCallback.test.fif +7711 -0
  36. package/build/ChannelNilify.test.boc +0 -0
  37. package/build/ChannelNilify.test.compiled.json +1 -0
  38. package/build/ChannelNilify.test.fif +7672 -0
  39. package/build/ChannelReceive.test.boc +0 -0
  40. package/build/ChannelReceive.test.compiled.json +1 -0
  41. package/build/ChannelReceive.test.fif +7702 -0
  42. package/build/ChannelReceiveCallback.test.boc +0 -0
  43. package/build/ChannelReceiveCallback.test.compiled.json +1 -0
  44. package/build/ChannelReceiveCallback.test.fif +7549 -0
  45. package/build/ChannelReceiveView.test.boc +0 -0
  46. package/build/ChannelReceiveView.test.compiled.json +1 -0
  47. package/build/ChannelReceiveView.test.fif +7352 -0
  48. package/build/ChannelSend.test.boc +0 -0
  49. package/build/ChannelSend.test.compiled.json +1 -0
  50. package/build/ChannelSend.test.fif +7658 -0
  51. package/build/Classlib.test.boc +0 -0
  52. package/build/Classlib.test.compiled.json +1 -0
  53. package/build/Classlib.test.fif +4728 -0
  54. package/build/Connection.boc +0 -0
  55. package/build/Connection.compiled.json +1 -0
  56. package/build/Connection.fif +3503 -0
  57. package/build/Connection.test.boc +0 -0
  58. package/build/Connection.test.compiled.json +1 -0
  59. package/build/Connection.test.fif +6575 -0
  60. package/build/Controller.assertions.test.boc +0 -0
  61. package/build/Controller.assertions.test.compiled.json +1 -0
  62. package/build/Controller.assertions.test.fif +6130 -0
  63. package/build/Controller.boc +0 -0
  64. package/build/Controller.compiled.json +1 -0
  65. package/build/Controller.fif +3195 -0
  66. package/build/Controller.permissions.test.boc +0 -0
  67. package/build/Controller.permissions.test.compiled.json +1 -0
  68. package/build/Controller.permissions.test.fif +6237 -0
  69. package/build/Controller.test.boc +0 -0
  70. package/build/Controller.test.compiled.json +1 -0
  71. package/build/Controller.test.fif +6400 -0
  72. package/build/Counter.boc +0 -0
  73. package/build/Counter.compiled.json +1 -0
  74. package/build/Counter.fif +4809 -0
  75. package/build/Counter.permissions.test.boc +0 -0
  76. package/build/Counter.permissions.test.compiled.json +1 -0
  77. package/build/Counter.permissions.test.fif +7106 -0
  78. package/build/Counter.setters.test.boc +0 -0
  79. package/build/Counter.setters.test.compiled.json +1 -0
  80. package/build/Counter.setters.test.fif +7083 -0
  81. package/build/Counter.test.boc +0 -0
  82. package/build/Counter.test.compiled.json +1 -0
  83. package/build/Counter.test.fif +7540 -0
  84. package/build/Dvn.boc +0 -0
  85. package/build/Dvn.compiled.json +1 -0
  86. package/build/Dvn.fif +2923 -0
  87. package/build/Dvn.test.boc +0 -0
  88. package/build/Dvn.test.compiled.json +1 -0
  89. package/build/Dvn.test.fif +5753 -0
  90. package/build/Endpoint.boc +0 -0
  91. package/build/Endpoint.compiled.json +1 -0
  92. package/build/Endpoint.fif +3694 -0
  93. package/build/Endpoint.permissions.test.boc +0 -0
  94. package/build/Endpoint.permissions.test.compiled.json +1 -0
  95. package/build/Endpoint.permissions.test.fif +6211 -0
  96. package/build/Endpoint.test.boc +0 -0
  97. package/build/Endpoint.test.compiled.json +1 -0
  98. package/build/Endpoint.test.fif +6899 -0
  99. package/build/EndpointSetEpConfigDefaults.test.boc +0 -0
  100. package/build/EndpointSetEpConfigDefaults.test.compiled.json +1 -0
  101. package/build/EndpointSetEpConfigDefaults.test.fif +6529 -0
  102. package/build/Executor.boc +0 -0
  103. package/build/Executor.compiled.json +1 -0
  104. package/build/Executor.fif +2731 -0
  105. package/build/Executor.test.boc +0 -0
  106. package/build/Executor.test.compiled.json +1 -0
  107. package/build/Executor.test.fif +5822 -0
  108. package/build/LzClasses.test.boc +0 -0
  109. package/build/LzClasses.test.compiled.json +1 -0
  110. package/build/LzClasses.test.fif +4457 -0
  111. package/build/LzUtil.test.boc +0 -0
  112. package/build/LzUtil.test.compiled.json +1 -0
  113. package/build/LzUtil.test.fif +1831 -0
  114. package/build/MsgData.test.boc +0 -0
  115. package/build/MsgData.test.compiled.json +1 -0
  116. package/build/MsgData.test.fif +4318 -0
  117. package/build/MsglibPacketCodec.test.boc +0 -0
  118. package/build/MsglibPacketCodec.test.compiled.json +1 -0
  119. package/build/MsglibPacketCodec.test.fif +4851 -0
  120. package/build/MultiSig.boc +0 -0
  121. package/build/MultiSig.compiled.json +1 -0
  122. package/build/MultiSig.fif +727 -0
  123. package/build/MultiSigOrder.boc +0 -0
  124. package/build/MultiSigOrder.compiled.json +1 -0
  125. package/build/MultiSigOrder.fif +650 -0
  126. package/build/PipelinedOutOfOrder.test.boc +0 -0
  127. package/build/PipelinedOutOfOrder.test.compiled.json +1 -0
  128. package/build/PipelinedOutOfOrder.test.fif +2188 -0
  129. package/build/SmlConnection.boc +0 -0
  130. package/build/SmlConnection.compiled.json +1 -0
  131. package/build/SmlConnection.fif +2517 -0
  132. package/build/SmlConnection.permissions.test.boc +0 -0
  133. package/build/SmlConnection.permissions.test.compiled.json +1 -0
  134. package/build/SmlConnection.permissions.test.fif +5497 -0
  135. package/build/SmlConnection.test.boc +0 -0
  136. package/build/SmlConnection.test.compiled.json +1 -0
  137. package/build/SmlConnection.test.fif +5494 -0
  138. package/build/SmlManager.boc +0 -0
  139. package/build/SmlManager.compiled.json +1 -0
  140. package/build/SmlManager.fif +3904 -0
  141. package/build/SmlManager.permissions.test.boc +0 -0
  142. package/build/SmlManager.permissions.test.compiled.json +1 -0
  143. package/build/SmlManager.permissions.test.fif +6018 -0
  144. package/build/SmlManager.test.boc +0 -0
  145. package/build/SmlManager.test.compiled.json +1 -0
  146. package/build/SmlManager.test.fif +6047 -0
  147. package/build/Uln.boc +0 -0
  148. package/build/Uln.compiled.json +1 -0
  149. package/build/Uln.fif +4841 -0
  150. package/build/Uln.test.boc +0 -0
  151. package/build/Uln.test.compiled.json +1 -0
  152. package/build/Uln.test.fif +7077 -0
  153. package/build/UlnManager.boc +0 -0
  154. package/build/UlnManager.compiled.json +1 -0
  155. package/build/UlnManager.fif +3851 -0
  156. package/build/UlnManager.test.boc +0 -0
  157. package/build/UlnManager.test.compiled.json +1 -0
  158. package/build/UlnManager.test.fif +6571 -0
  159. package/build/UlnReceiveConfig.test.boc +0 -0
  160. package/build/UlnReceiveConfig.test.compiled.json +1 -0
  161. package/build/UlnReceiveConfig.test.fif +4413 -0
  162. package/build/UlnSend.test.boc +0 -0
  163. package/build/UlnSend.test.compiled.json +1 -0
  164. package/build/UlnSend.test.fif +6576 -0
  165. package/build/UlnSendConfig.test.boc +0 -0
  166. package/build/UlnSendConfig.test.compiled.json +1 -0
  167. package/build/UlnSendConfig.test.fif +4431 -0
  168. package/build/UlnSendWorkerFactory.test.boc +0 -0
  169. package/build/UlnSendWorkerFactory.test.compiled.json +1 -0
  170. package/build/UlnSendWorkerFactory.test.fif +6683 -0
  171. package/build/UlnUtil.test.boc +0 -0
  172. package/build/UlnUtil.test.compiled.json +1 -0
  173. package/build/UlnUtil.test.fif +5873 -0
  174. package/build/WorkerCore.test.boc +0 -0
  175. package/build/WorkerCore.test.compiled.json +1 -0
  176. package/build/WorkerCore.test.fif +5630 -0
  177. package/build/ZroMinter.boc +0 -0
  178. package/build/ZroMinter.compiled.json +1 -0
  179. package/build/ZroMinter.fif +2300 -0
  180. package/build/ZroWallet.boc +0 -0
  181. package/build/ZroWallet.compiled.json +1 -0
  182. package/build/ZroWallet.fif +2471 -0
  183. package/package.json +64 -0
  184. package/src/classes/lz/Attestation.fc +23 -0
  185. package/src/classes/lz/Config.fc +23 -0
  186. package/src/classes/lz/EpConfig.fc +91 -0
  187. package/src/classes/lz/MsglibInfo.fc +31 -0
  188. package/src/classes/lz/Packet.fc +202 -0
  189. package/src/classes/lz/Path.fc +56 -0
  190. package/src/classes/lz/ReceiveEpConfig.fc +24 -0
  191. package/src/classes/lz/SendEpConfig.fc +18 -0
  192. package/src/classes/lz/SmlJobAssigned.fc +20 -0
  193. package/src/classes/lz/Worker.fc +32 -0
  194. package/src/classes/msgdata/AddMsglib.fc +18 -0
  195. package/src/classes/msgdata/Amount.fc +16 -0
  196. package/src/classes/msgdata/Bool.fc +16 -0
  197. package/src/classes/msgdata/ChannelNonceInfo.fc +18 -0
  198. package/src/classes/msgdata/ClaimUnaccountedPoolFunds.fc +0 -0
  199. package/src/classes/msgdata/CoinsAmount.fc +16 -0
  200. package/src/classes/msgdata/CounterIncrement.fc +24 -0
  201. package/src/classes/msgdata/Deploy.fc +20 -0
  202. package/src/classes/msgdata/ExtendedMd.fc +20 -0
  203. package/src/classes/msgdata/GetMsglibCallback.fc +18 -0
  204. package/src/classes/msgdata/InitEndpoint.fc +16 -0
  205. package/src/classes/msgdata/InitSmlConnection.fc +16 -0
  206. package/src/classes/msgdata/InitUlnConnection.fc +18 -0
  207. package/src/classes/msgdata/LzReceiveStatus.fc +58 -0
  208. package/src/classes/msgdata/LzSend.fc +58 -0
  209. package/src/classes/msgdata/MdAddress.fc +18 -0
  210. package/src/classes/msgdata/MdEid.fc +18 -0
  211. package/src/classes/msgdata/MdObj.fc +18 -0
  212. package/src/classes/msgdata/MessagingReceipt.fc +22 -0
  213. package/src/classes/msgdata/MsglibSendCallback.fc +113 -0
  214. package/src/classes/msgdata/Nonce.fc +16 -0
  215. package/src/classes/msgdata/OptionsExtended.fc +20 -0
  216. package/src/classes/msgdata/OptionsV1.fc +27 -0
  217. package/src/classes/msgdata/OptionsV2.fc +34 -0
  218. package/src/classes/msgdata/PacketId.fc +18 -0
  219. package/src/classes/msgdata/PacketSent.fc +39 -0
  220. package/src/classes/msgdata/SetAddress.fc +16 -0
  221. package/src/classes/msgdata/SetEpConfig.fc +33 -0
  222. package/src/classes/msgdata/SetPeer.fc +18 -0
  223. package/src/classes/msgdata/SetSmlManagerConfig.fc +18 -0
  224. package/src/funC++/abstract/contractMainAbstract.fc +3 -0
  225. package/src/funC++/abstract/handlerAbstract.fc +12 -0
  226. package/src/funC++/actions/call.fc +51 -0
  227. package/src/funC++/actions/deploy.fc +118 -0
  228. package/src/funC++/actions/destroy.fc +28 -0
  229. package/src/funC++/actions/dispatch.fc +57 -0
  230. package/src/funC++/actions/event.fc +69 -0
  231. package/src/funC++/actions/payment.fc +52 -0
  232. package/src/funC++/actions/sendJettons.fc +76 -0
  233. package/src/funC++/actions/utils.fc +49 -0
  234. package/src/funC++/baseInterface.fc +16 -0
  235. package/src/funC++/classlib.fc +819 -0
  236. package/src/funC++/constants.fc +64 -0
  237. package/src/funC++/contractMain.fc +84 -0
  238. package/src/funC++/dataStructures/DeterministicInsertionCircularQueue.fc +155 -0
  239. package/src/funC++/dataStructures/PipelinedOutOfOrder.fc +93 -0
  240. package/src/funC++/handlerCore.fc +30 -0
  241. package/src/funC++/stdlib.fc +625 -0
  242. package/src/funC++/stringlib.fc +75 -0
  243. package/src/funC++/txnContext.fc +126 -0
  244. package/src/funC++/utils.fc +119 -0
  245. package/src/jettons/zro/minter.fc +120 -0
  246. package/src/jettons/zro/op-codes.fc +10 -0
  247. package/src/jettons/zro/params.fc +18 -0
  248. package/src/jettons/zro/utils.fc +33 -0
  249. package/src/jettons/zro/wallet.fc +261 -0
  250. package/tests/baseContractTest.fc +192 -0
  251. package/tests/testMain.fc +135 -0
@@ -0,0 +1 @@
1
+ {"hash":"4ebdec6e60259521d325e0baebe89b9a7901619805a4dfa624e5a3549349fcbf","hashBase64":"Tr3sbmAllSHTJeC66+ibmnkBYZgFpN+mJOWjVJNJ/L8=","hex":"b5ee9c7241020d01000372000114ff00f4a413f4bcf2c80b01020162020c04f8d03331d0d3030171b0915be0fa403001d31f01ed44d0fa4001f861d3ff01f86220d749c0008e13306df8636df8646df8656df8666df8676df8688e22d30701f863d20001f864d401f865d3ff01f866d30701f867d32f01f868d401f869d1e220c000e30201d33f012282109c73fba2bae302028210a762230fbae3020304060b01c83020d74ac0008e23c8708e1a22d7495230d71912cf1622d74a9402d74cd093317f58e2541220e63031c9d0df840f018b7617070726f76658c705f2f420707f8e19f84578f47c6fa5209b5243c70595317f327001de9132e201b3e632f2e06af82512db3c0702fe32f84113c705f2e068f8436e8ef101d30701f86370f864d401f86570f86670f867d32f01f868f848f823bef2e06fd401f869d200018e99d30701aef84621b0f2d06bf847a4f867f84601b1f86601db3c9131e2d1f849f846f845c8f841cf16f84201cbfff84301cb07f84401ca00cccbfff84701cb07f84801cb2fccc9ed540905018ce001d30701f843baf2e069d401f900f845f900baf2e069d32f01f848baf2e069d401f900f849f900baf2e069d20001f2e069d3070101d1f845521078f40e6fa1f2e06a58db3c070136d3070101d1f845521078f40e6fa1f2e06a5230c705f2e06a59db3c07026e8f335ced44ed45ed478e983170c88210afaf283e580402cb1fcb3fcb1f80108050db3ced67ed65ed64727fed118aed41edf101f2ffdb030a0802b4f844f2d07002aef84621b0f2d06bf847a4f867f84601b1f86670c8821082609bf62402cb1fcb3f80108050db3cdb3cf849f846f845c8f841cf16f84201cbfff84301cb07f84401ca00cccbfff84701cb07f84801cb2fccc9ed540a090180f847f843ba8eb6f84170f849c8821075097f5d580502cb1fcb3ff84201cbfff84801cb2ff84701cb07f845f90001cbff13cc128010810090db3c7ff8649130e20a00888e40c85801cb055004cf1658fa02547120ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db05000c5f03840ff2f000c1a1c771da89a1f48003f0c3a7fe03f0c441ae9380011c2660dbf0c6dbf0c8dbf0cadbf0ccdbf0cedbf0d11c45a60e03f0c7a40003f0c9a803f0cba7fe03f0cda60e03f0cfa65e03f0d1a803f0d3a3c5f083f085f087f089f08bf08df08ff091f09326d3be81"}
@@ -0,0 +1,650 @@
1
+ "Asm.fif" include
2
+ // automatically generated from `src/multisig/order.func` incl:`src/multisig/imports/stdlib.fc` incl:`src/multisig/types.func` incl:`src/multisig/op-codes.func` incl:`src/multisig/messages.func` incl:`src/multisig/errors.func`
3
+ PROGRAM{
4
+ DECLPROC ~load_bool
5
+ DECLPROC store_bool
6
+ DECLPROC store_address_none
7
+ DECLPROC is_address_none
8
+ DECLPROC store_msg_flags_and_address_none
9
+ DECLPROC ~load_msg_flags
10
+ DECLPROC is_bounced
11
+ DECLPROC ~skip_bounced_prefix
12
+ DECLPROC store_statinit_ref_and_body_ref
13
+ DECLPROC store_only_body_ref
14
+ DECLPROC store_prefix_only_body
15
+ DECLPROC ~retrieve_fwd_fee
16
+ DECLPROC ~load_op
17
+ DECLPROC ~skip_op
18
+ DECLPROC store_op
19
+ DECLPROC ~load_query_id
20
+ DECLPROC ~skip_query_id
21
+ DECLPROC store_query_id
22
+ DECLPROC ~load_op_and_query_id
23
+ DECLPROC store_op_and_query_id
24
+ DECLPROC ~load_timestamp
25
+ DECLPROC store_timestamp
26
+ DECLPROC ~load_hash
27
+ DECLPROC store_hash
28
+ DECLPROC ~load_index
29
+ DECLPROC store_index
30
+ DECLPROC ~load_order_seqno
31
+ DECLPROC store_order_seqno
32
+ DECLPROC send_message_with_only_body
33
+ DECLPROC send_message_with_state_init_and_body
34
+ DECLPROC load_data
35
+ DECLPROC save_data
36
+ DECLPROC get_text_comment
37
+ DECLPROC find_signer_by_address
38
+ DECLPROC add_approval
39
+ DECLPROC try_execute
40
+ DECLPROC approve
41
+ DECLPROC recv_internal
42
+ 123832 DECLMETHOD get_order_data
43
+ DECLGLOBVAR multisig_address
44
+ DECLGLOBVAR order_seqno
45
+ DECLGLOBVAR threshold
46
+ DECLGLOBVAR sent_for_execution?
47
+ DECLGLOBVAR signers
48
+ DECLGLOBVAR approvals_mask
49
+ DECLGLOBVAR approvals_num
50
+ DECLGLOBVAR expiration_date
51
+ DECLGLOBVAR order
52
+ ~load_bool PROCINLINE:<{
53
+ 1 LDI
54
+ SWAP
55
+ }>
56
+ store_bool PROCINLINE:<{
57
+ SWAP
58
+ 1 STI
59
+ }>
60
+ store_address_none PROCINLINE:<{
61
+ 0 PUSHINT
62
+ SWAP
63
+ 2 STU
64
+ }>
65
+ is_address_none PROCINLINE:<{
66
+ 2 PLDU
67
+ 0 EQINT
68
+ }>
69
+ store_msg_flags_and_address_none PROCINLINE:<{
70
+ SWAP
71
+ 6 STU
72
+ }>
73
+ ~load_msg_flags PROCINLINE:<{
74
+ 4 LDU
75
+ SWAP
76
+ }>
77
+ is_bounced PROCINLINE:<{
78
+ 1 PUSHINT
79
+ AND
80
+ 1 EQINT
81
+ }>
82
+ ~skip_bounced_prefix PROCINLINE:<{
83
+ 32 PUSHINT
84
+ SDSKIPFIRST
85
+ }>
86
+ store_statinit_ref_and_body_ref PROCINLINE:<{
87
+ 7 PUSHINT
88
+ s0 s3 XCHG2
89
+ 108 STU
90
+ STREF
91
+ STREF
92
+ }>
93
+ store_only_body_ref PROCINLINE:<{
94
+ 1 PUSHINT
95
+ ROT
96
+ 107 STU
97
+ STREF
98
+ }>
99
+ store_prefix_only_body PROCINLINE:<{
100
+ 0 PUSHINT
101
+ SWAP
102
+ 107 STU
103
+ }>
104
+ ~retrieve_fwd_fee PROCINLINE:<{
105
+ LDMSGADDR
106
+ NIP
107
+ LDVARUINT16
108
+ NIP
109
+ SKIPDICT
110
+ LDVARUINT16
111
+ NIP
112
+ LDVARUINT16
113
+ SWAP
114
+ }>
115
+ ~load_op PROCINLINE:<{
116
+ 32 LDU
117
+ SWAP
118
+ }>
119
+ ~skip_op PROCINLINE:<{
120
+ 32 PUSHINT
121
+ SDSKIPFIRST
122
+ }>
123
+ store_op PROCINLINE:<{
124
+ SWAP
125
+ 32 STU
126
+ }>
127
+ ~load_query_id PROCINLINE:<{
128
+ 64 LDU
129
+ SWAP
130
+ }>
131
+ ~skip_query_id PROCINLINE:<{
132
+ 64 PUSHINT
133
+ SDSKIPFIRST
134
+ }>
135
+ store_query_id PROCINLINE:<{
136
+ SWAP
137
+ 64 STU
138
+ }>
139
+ ~load_op_and_query_id PROCINLINE:<{
140
+ ~load_op INLINECALLDICT
141
+ SWAP
142
+ ~load_query_id INLINECALLDICT
143
+ s1 s2 XCHG
144
+ }>
145
+ store_op_and_query_id PROCINLINE:<{
146
+ s0 s2 XCHG
147
+ 32 STU
148
+ 64 STU
149
+ }>
150
+ ~load_timestamp PROCINLINE:<{
151
+ 48 LDU
152
+ SWAP
153
+ }>
154
+ store_timestamp PROCINLINE:<{
155
+ SWAP
156
+ 48 STU
157
+ }>
158
+ ~load_hash PROCINLINE:<{
159
+ 256 LDU
160
+ SWAP
161
+ }>
162
+ store_hash PROCINLINE:<{
163
+ SWAP
164
+ 256 STU
165
+ }>
166
+ ~load_index PROCINLINE:<{
167
+ 8 LDU
168
+ SWAP
169
+ }>
170
+ store_index PROCINLINE:<{
171
+ SWAP
172
+ 8 STU
173
+ }>
174
+ ~load_order_seqno PROCINLINE:<{
175
+ 256 LDU
176
+ SWAP
177
+ }>
178
+ store_order_seqno PROCINLINE:<{
179
+ SWAP
180
+ 256 STU
181
+ }>
182
+ send_message_with_only_body PROCREF:<{
183
+ CONT:<{
184
+ NEWC
185
+ ROT
186
+ store_msg_flags_and_address_none INLINECALLDICT
187
+ s0 s4 XCHG2
188
+ STSLICER
189
+ ROT
190
+ STVARUINT16
191
+ s1 s2 s0 PUSH3
192
+ c4 PUSH
193
+ c5 PUSH
194
+ c7 PUSH
195
+ <{
196
+ 2DROP
197
+ NEWC
198
+ s0 s3 XCHG2
199
+ STBR
200
+ ENDC
201
+ s1 s2 XCHG
202
+ store_only_body_ref INLINECALLDICT
203
+ }>CONT
204
+ c7 SETCONT
205
+ c5 SETCONT
206
+ c4 SETCONT
207
+ 3 PUSHINT
208
+ -1 PUSHINT
209
+ SETCONTVARARGS
210
+ <{
211
+ store_prefix_only_body INLINECALLDICT
212
+ SWAP
213
+ STBR
214
+ }>CONT
215
+ c1 PUSH
216
+ COMPOSALT
217
+ SWAP
218
+ TRY
219
+ ENDC
220
+ SWAP
221
+ SENDRAWMSG
222
+ }>
223
+ 5 -1 CALLXARGS
224
+ }>
225
+ send_message_with_state_init_and_body PROCREF:<{
226
+ CONT:<{
227
+ NEWC
228
+ ROT
229
+ store_msg_flags_and_address_none INLINECALLDICT
230
+ s0 s5 XCHG2
231
+ STSLICER
232
+ s0 s3 XCHG2
233
+ STVARUINT16
234
+ s1 s2 s3 PUSH3
235
+ s3 PUSH
236
+ c4 PUSH
237
+ c5 PUSH
238
+ c7 PUSH
239
+ <{
240
+ 2DROP
241
+ NEWC
242
+ s0 s3 XCHG2
243
+ STBR
244
+ ENDC
245
+ s1 s3 XCHG
246
+ store_statinit_ref_and_body_ref INLINECALLDICT
247
+ }>CONT
248
+ c7 SETCONT
249
+ c5 SETCONT
250
+ c4 SETCONT
251
+ 4 PUSHINT
252
+ -1 PUSHINT
253
+ SETCONTVARARGS
254
+ <{
255
+ 6 PUSHINT
256
+ SWAP
257
+ 108 STU
258
+ STREF
259
+ SWAP
260
+ STBR
261
+ }>CONT
262
+ c1 PUSH
263
+ COMPOSALT
264
+ SWAP
265
+ TRY
266
+ ENDC
267
+ SWAP
268
+ SENDRAWMSG
269
+ }>
270
+ 6 -1 CALLXARGS
271
+ }>
272
+ load_data PROCINLINE:<{
273
+ c4 PUSH
274
+ CTOS
275
+ LDMSGADDR
276
+ SWAP
277
+ multisig_address SETGLOB
278
+ ~load_order_seqno INLINECALLDICT
279
+ order_seqno SETGLOB
280
+ DUP
281
+ SBITS
282
+ 0 EQINT
283
+ IF:<{
284
+ DROP
285
+ PUSHNULL
286
+ threshold SETGLOB
287
+ PUSHNULL
288
+ sent_for_execution? SETGLOB
289
+ PUSHNULL
290
+ signers SETGLOB
291
+ PUSHNULL
292
+ approvals_mask SETGLOB
293
+ PUSHNULL
294
+ approvals_num SETGLOB
295
+ PUSHNULL
296
+ expiration_date SETGLOB
297
+ }>ELSE<{
298
+ ~load_index INLINECALLDICT
299
+ threshold SETGLOB
300
+ ~load_bool INLINECALLDICT
301
+ sent_for_execution? SETGLOB
302
+ LDREF
303
+ SWAP
304
+ signers SETGLOB
305
+ 256 LDU
306
+ SWAP
307
+ approvals_mask SETGLOB
308
+ ~load_index INLINECALLDICT
309
+ approvals_num SETGLOB
310
+ ~load_timestamp INLINECALLDICT
311
+ expiration_date SETGLOB
312
+ LDREF
313
+ SWAP
314
+ order SETGLOB
315
+ ENDS
316
+ }>
317
+ }>
318
+ save_data PROCINLINE:<{
319
+ order GETGLOB
320
+ approvals_mask GETGLOB
321
+ signers GETGLOB
322
+ NEWC
323
+ multisig_address GETGLOB
324
+ STSLICER
325
+ order_seqno GETGLOB
326
+ store_order_seqno INLINECALLDICT
327
+ threshold GETGLOB
328
+ store_index INLINECALLDICT
329
+ sent_for_execution? GETGLOB
330
+ store_bool INLINECALLDICT
331
+ STREF
332
+ 256 STU
333
+ approvals_num GETGLOB
334
+ store_index INLINECALLDICT
335
+ expiration_date GETGLOB
336
+ store_timestamp INLINECALLDICT
337
+ STREF
338
+ ENDC
339
+ c4 POP
340
+ }>
341
+ get_text_comment PROCINLINE:<{
342
+ DUP
343
+ SREFS
344
+ 0 EQINT
345
+ IF:<{
346
+ }>ELSE<{
347
+ NEWC
348
+ FALSE
349
+ UNTIL:<{
350
+ s2 PUSH
351
+ SBITS
352
+ s3 s(-1) PUXC
353
+ PLDSLICEX
354
+ s1 s2 XCHG
355
+ STSLICER
356
+ s2 PUSH
357
+ SREFS
358
+ IF:<{
359
+ s0 s2 XCHG
360
+ PLDREF
361
+ CTOS
362
+ }>ELSE<{
363
+ NIP
364
+ TRUE
365
+ ROT
366
+ }>
367
+ s2 s2 s0 XC2PU
368
+ }>
369
+ DROP
370
+ NIP
371
+ ENDC
372
+ CTOS
373
+ }>
374
+ }>
375
+ find_signer_by_address PROCINLINE:<{
376
+ FALSE
377
+ -1 PUSHINT
378
+ UNTIL:<{
379
+ signers GETGLOB
380
+ 8 PUSHINT
381
+ DICTUGETNEXT
382
+ NULLSWAPIFNOT2
383
+ DUP
384
+ IF:<{
385
+ s4 s2 PUXC
386
+ SDEQ
387
+ IF:<{
388
+ NIP
389
+ TRUE
390
+ s2 POP
391
+ FALSE
392
+ SWAP
393
+ }>
394
+ }>ELSE<{
395
+ s2 POP
396
+ }>
397
+ SWAP
398
+ NOT
399
+ }>
400
+ s2 POP
401
+ }>
402
+ add_approval PROCINLINE:<{
403
+ POW2
404
+ approvals_mask GETGLOB
405
+ OVER
406
+ AND
407
+ 107 THROWIF
408
+ approvals_num GETGLOB
409
+ INC
410
+ approvals_num SETGLOB
411
+ approvals_mask GETGLOB
412
+ SWAP
413
+ OR
414
+ approvals_mask SETGLOB
415
+ }>
416
+ try_execute PROCREF:<{
417
+ approvals_num GETGLOB
418
+ threshold GETGLOB
419
+ EQUAL
420
+ IF:<{
421
+ multisig_address GETGLOB
422
+ 0 PUSHINT
423
+ order GETGLOB
424
+ NEWC
425
+ 1963556701 PUSHINT
426
+ ROT
427
+ s0 s5 XCHG
428
+ store_op_and_query_id INLINECALLDICT
429
+ order_seqno GETGLOB
430
+ store_order_seqno INLINECALLDICT
431
+ expiration_date GETGLOB
432
+ store_timestamp INLINECALLDICT
433
+ approvals_num GETGLOB
434
+ store_index INLINECALLDICT
435
+ signers GETGLOB
436
+ HASHCU
437
+ store_hash INLINECALLDICT
438
+ s1 s3 XCHG
439
+ STREF
440
+ s1 s2 XCHG
441
+ 16 PUSHINT
442
+ 144 PUSHINT
443
+ send_message_with_only_body INLINECALLDICT
444
+ TRUE
445
+ sent_for_execution? SETGLOB
446
+ }>ELSE<{
447
+ DROP
448
+ }>
449
+ }>
450
+ approve PROCREF:<{
451
+ CONT:<{
452
+ 2DUP
453
+ c4 PUSH
454
+ c5 PUSH
455
+ c7 PUSH
456
+ <{
457
+ NIP
458
+ 0 PUSHINT
459
+ NEWC
460
+ 2947491902 PUSHINT
461
+ ROT
462
+ s0 s4 XCHG
463
+ store_op_and_query_id INLINECALLDICT
464
+ 32 STU
465
+ 16 PUSHINT
466
+ 80 PUSHINT
467
+ send_message_with_only_body INLINECALLDICT
468
+ }>CONT
469
+ c7 SETCONT
470
+ c5 SETCONT
471
+ c4 SETCONT
472
+ 2 PUSHINT
473
+ -1 PUSHINT
474
+ SETCONTVARARGS
475
+ <{
476
+ sent_for_execution? GETGLOB
477
+ 112 THROWIF
478
+ s0 s2 XCHG
479
+ add_approval INLINECALLDICT
480
+ 0 PUSHINT
481
+ NEWC
482
+ 2187369462 PUSHINT
483
+ s4 PUSH
484
+ store_op_and_query_id INLINECALLDICT
485
+ 16 PUSHINT
486
+ 80 PUSHINT
487
+ send_message_with_only_body INLINECALLDICT
488
+ try_execute INLINECALLDICT
489
+ save_data INLINECALLDICT
490
+ }>CONT
491
+ c1 PUSH
492
+ COMPOSALT
493
+ SWAP
494
+ TRY
495
+ }>
496
+ 3 -1 CALLXARGS
497
+ }>
498
+ recv_internal PROC:<{
499
+ s3 POP
500
+ NIP
501
+ CTOS
502
+ ~load_msg_flags INLINECALLDICT
503
+ 1 PUSHINT
504
+ AND
505
+ IFJMP:<{
506
+ 2DROP
507
+ }>
508
+ LDMSGADDR
509
+ DROP
510
+ SWAP
511
+ ~load_op INLINECALLDICT
512
+ load_data INLINECALLDICT
513
+ DUP
514
+ 0 EQINT
515
+ IFJMP:<{
516
+ DROP
517
+ get_text_comment INLINECALLDICT
518
+ 16 PUSHPOW2DEC
519
+ SWAP
520
+ x{617070726f7665} PUSHSLICE
521
+ SDEQ
522
+ THROWANYIFNOT
523
+ DUP
524
+ find_signer_by_address INLINECALLDICT
525
+ 106 THROWIFNOT
526
+ LTIME
527
+ s1 s2 XCHG
528
+ approve INLINECALLDICT
529
+ }>
530
+ SWAP
531
+ ~load_query_id INLINECALLDICT
532
+ s2 PUSH
533
+ 2624846754 PUSHINT
534
+ EQUAL
535
+ IFJMP:<{
536
+ s2 POP
537
+ multisig_address GETGLOB
538
+ s1 s3 XCHG
539
+ SDEQ
540
+ 104 THROWIFNOT
541
+ threshold GETGLOB
542
+ ISNULL
543
+ IFJMP:<{
544
+ SWAP
545
+ ~load_index INLINECALLDICT
546
+ threshold SETGLOB
547
+ FALSE
548
+ sent_for_execution? SETGLOB
549
+ LDREF
550
+ SWAP
551
+ signers SETGLOB
552
+ 0 PUSHINT
553
+ approvals_mask SETGLOB
554
+ 0 PUSHINT
555
+ approvals_num SETGLOB
556
+ ~load_timestamp INLINECALLDICT
557
+ expiration_date SETGLOB
558
+ expiration_date GETGLOB
559
+ NOW
560
+ GEQ
561
+ 111 THROWIFNOT
562
+ LDREF
563
+ SWAP
564
+ order SETGLOB
565
+ ~load_bool INLINECALLDICT
566
+ IF:<{
567
+ ~load_index INLINECALLDICT
568
+ add_approval INLINECALLDICT
569
+ SWAP
570
+ try_execute INLINECALLDICT
571
+ }>ELSE<{
572
+ NIP
573
+ }>
574
+ ENDS
575
+ save_data INLINECALLDICT
576
+ }>
577
+ SWAP
578
+ ~load_index INLINECALLDICT
579
+ threshold GETGLOB
580
+ EQUAL
581
+ 105 THROWIFNOT
582
+ LDREF
583
+ SWAP
584
+ HASHCU
585
+ signers GETGLOB
586
+ HASHCU
587
+ EQUAL
588
+ 105 THROWIFNOT
589
+ ~load_timestamp INLINECALLDICT
590
+ expiration_date GETGLOB
591
+ EQUAL
592
+ 105 THROWIFNOT
593
+ LDREF
594
+ SWAP
595
+ HASHCU
596
+ order GETGLOB
597
+ HASHCU
598
+ EQUAL
599
+ 105 THROWIFNOT
600
+ ~load_bool INLINECALLDICT
601
+ 105 THROWIFNOT
602
+ ~load_index INLINECALLDICT
603
+ SWAP
604
+ ENDS
605
+ signers GETGLOB
606
+ s1 s(-1) PUXC
607
+ 8 PUSHINT
608
+ DICTUGET
609
+ NULLSWAPIFNOT
610
+ 106 THROWIFNOT
611
+ ROT
612
+ approve INLINECALLDICT
613
+ }>
614
+ s0 s2 XCHG
615
+ 2808226575 PUSHINT
616
+ EQUAL
617
+ IFJMP:<{
618
+ ~load_index INLINECALLDICT
619
+ SWAP
620
+ ENDS
621
+ signers GETGLOB
622
+ s1 s(-1) PUXC
623
+ 8 PUSHINT
624
+ DICTUGET
625
+ NULLSWAPIFNOT
626
+ 106 THROWIFNOT
627
+ s3 s(-1) PUXC
628
+ SDEQ
629
+ 106 THROWIFNOT
630
+ -ROT
631
+ approve INLINECALLDICT
632
+ }>
633
+ 3 BLKDROP
634
+ 16 PUSHPOW2DEC
635
+ THROWANY
636
+ }>
637
+ get_order_data PROC:<{
638
+ load_data INLINECALLDICT
639
+ multisig_address GETGLOB
640
+ order_seqno GETGLOB
641
+ threshold GETGLOB
642
+ sent_for_execution? GETGLOB
643
+ signers GETGLOB
644
+ approvals_mask GETGLOB
645
+ approvals_num GETGLOB
646
+ expiration_date GETGLOB
647
+ order GETGLOB
648
+ }>
649
+ }END>c
650
+ 2 boc+>B "build/MultiSigOrder.boc" B>file
@@ -0,0 +1 @@
1
+ {"hash":"3410a99b56045f1aeed0dc92fcb57d674927df848cc3f37c8fd6c212c911b04b","hashBase64":"NBCpm1YEXxru0NyS/LV9Z0kn34SMw/N8j9bCEskRsEs=","hex":"b5ee9c724102b601002272000114ff00f4a413f4bcf2c80b01020162025f0202c90332020120041c0201200516020120060b020120070a02efd106380492f82706d9e46834c4c2e6cabecae4e4dee4bedae6ce409c9ea840e6cae85c5c5c4107c317c20b789fc20b78cfc2080b8b7c2fc30f81a9037c429105f470badb838c18390c006646581e580e58465ffe5b0e4b87d80474d80b7c090378810b788fc3100984476a2016d090176aa607f80f81cf1408af01f621d074d701700271b098317f028020d72159de7f20706d04fa40fa4031fa003171d721fa003101fa44315307c7008e326c33058020d7018040d701fa0020d74981010bbe9c3827800b8307d724d70bff08de20c702953625d74c06df081035443012df02fa003073a9b400107b50a9105810471046503305046f0c090004f86100736807400740875d2c8b5d2d40cef5484ef44ac64d7c0dc238808300024d7c0dff81fdc24c8b0802754d035d214d075d23c0184ac007a0517c138a0201200c130201200d100201200e0f00910875d24875d268205fa06f238c6342343616e6e6f7420636f6e636174656e6174653a20737472696e6720746f6f206c6f6e678083f850c3e406102ac3cbc37b21633c58073c5b2742000053c02200201201112007722c20870402640a2c4b63c020068d63788700026600c3232c1f2743c0237a4c870802384c85eaa42298c3232c1f274007c02405eaa41007a0c7c026000053c02a00201201415008d48b0821c000998030c8cb07c9d0f008de9321c2008e2c21a93803c10a9e21a93803a630c8cb07c9d001f0098e1021a93803a641a6f6c8cb07c9d001f009e201ab0301e831f0098001b4018b23a208f00901f00bfe1430802016e171b03f7420c00398308b575696e74388e020c00499308b675696e7431368e020c00599308b675696e7433328e020c00699308b675696e7436348e020c0089a308b775696e743235368e020c00798308b5636f696e738e020c0089a308b7616464726573738e020c0099a308b7646963743235368e020c009e30220c009e302818191a0012308b66f626a52656680014308b763656c6c52656680026c000968b4626f6f6c8e08b7756e6b6e6f776e80183521f90082f096a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7ba9130e0018307f45b30209993d0307f925b70f2ffda118e823088df8af0201201d200201621e1f006f420f90082f096a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7ba93307f6de08307f4866fa59101e05b7f6d80071521f90082f096a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7ba935b7f6de0018307f47c6fa59101e05b7f6d8020120212902016a2223000d22d1413d3d3e2004f71bc024bc0fe2fd413d3d3ce8e9cd95d109a5d13db9961bc09be324bc1022fd413d3d3ce8e9cd95d109a5d151ddbe1bc09be324bc1063411504f4f4f3a3a386269744f72646572656481bc09be324bc10a3413504f4f4f3a3a38626974556e6f72646572656481bc09be324bc10e25bc09be324bc11225bc09be322a024252627001a504f4f4f3a3a6c6173744269740032504f4f4f3a3a7265766572743a3a706173744c6173744269740004f0450178896f026f8c92f0468d041413d3d3ce8e9ddc985c1cd05d115b99206f026f8c92f0478d04d413d3d3ce8e9b9959d85d1a5d99525b9c1d5d206f026f8c28001e504f4f4f3a3a696e6465785a65726f0201202a2d0201482b2c00713c0d22c8e8823c027e10bc0262c8e8823c02487c027f850c3c0d22c8e8823c027e10bc0262c8e8823c02407c02483f850c3e406102ac3cbc20000f00644c24bc0e38a00201202e2f00375937f8b08e0708d049d195cdd0e8e9cda1bdd5b191099551c9d5960803df5308210504f4f4f76716f0279c88409cf40c96f026f026dc86f02216f8803c8cb4f71207281015e7020935309b98ae85f066c22216f11226f88a520c201e30081015e23cf31a113cf4101cf1721c001936c21c98e1801c00297016f12c901ccc9e0216f13c9026f12c901ccccc9e2718a5a93002e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e708e310070804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2c002f03d0201ce334f0201203441020120353903df0c20841413d3d3dd9c5bc09e72210273d0325bc09bc09b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b240733332789ca0a5a93602e620c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e20708e370170804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2c00101723800e02170804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2a1017101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d00171d724d70b00c001b0f03d03df0c20841413d3d3dd9c5bc09e72210273d0325bc09bc09b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b240733332789c60a5a93a02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e728e3b02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e738e3c02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e748e3d02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e758e3e02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e768e3f02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e778e4002e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e788e4a020120424c03df0c20841413d3d3dd9c5bc09e72210273d0325bc09bc09b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b240733332789da0a5a94302e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e728e4402e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e778e4502e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e748e4602e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e788e4702e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e738e4802e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e718e4902e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e758e4a02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e708e4b0070804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2c009f03d03e10c20841413d3d3dd9c5bc09e72210273d0325bc09bc09b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b24073333278a10260a5a94d02e620c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e84098e4e00de2170804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2a1017101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d00171d724d70b00c001f03d0201205056020120515301830c1c3b513b517b51e496dffb59fb597b5922bb507b7c407cbfe4dfe2c2381c2341f53686f756c642068617665207468726f776e20616e20657863657074696f6e8205203de8210504f4f4f76716f0279c88409cf40c96f026f026dc86f02216f8803c8cb4f71207281015e7020935309b98ae85f066c22216f11226f88a520c201e30081015e23cf31a113cf4101cf1721c001936c21c98e1801c00297016f12c901ccc9e0216f13c9026f12c901ccccc9e28309a5a95e03df0c20841413d3d3dd9c5bc09e72210273d0325bc09bc09b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b240733332789c20a5a95402e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e708e550070804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2c001f03d020120575c01190c1c610260807b0d7b50f61c605802e620c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e83098e5902e820c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e81060b8e5a02e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e708e5b0074804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e2810401baf03d019b0c1c083b513b517b51e64c60418ceea48c1ff7bb59fb597b591c5ffb4462bb507b7c407cbfe4dfe2c2381c2341f53686f756c642068617665207468726f776e20616e20657863657074696f6e8205d03de8210504f4f4f76716f0279c88409cf40c96f026f026dc86f02216f8803c8cb4f71207281015e7020935309b98ae85f066c22216f11226f88a520c201e30081015e23cf31a113cf4101cf1721c001936c21c98e1801c00297016f12c901ccc9e0216f13c9026f12c901ccccc9e280bba5a95e01e420c100f2d633217101d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2d02270804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e25320b9925f03e30e308e02012060810201206178020120626f020120636a020158646902012065660057a4bc03a0034e254ca0b94c08e5ae49ae1602a4454c20e5ae49ae16024380012663ae912eb3ae91a003ae91c502012067680087a05887e4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea60c5b60c1fd039be865c060c1fd039be878a535c2ffdfe4cc1c1c38a01e3a061640740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d23880487e4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea60c5b60c1fd039be865c060c1fd039be87888250075d30063a0cc620078aaf0076a91770804002d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e28103fea002016a6b6e0201586c6d0081bab830702d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e27074c8cb02ca07cbffc9d08006bbd320f90082f096a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7ba973082104e554c4c94d0d70b4fe28006ba553002005a0034e254ca0b94c08e5ae49ae1602a4454c0cf5ae49ae16124380012e6245ae4803ae0736b3ae91a0a225ae4803ae07c5020120707702012071720167ae0e299080e800d38953282e5302396b926b8580a9115308396b926b858090e0004998eba44baceba46800eba47100f80fed9e40b2020162737401cba2a5740740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d2389648be4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea61b049b44a0c1fd05e540a0c1fd05f8b6cf2b2020120757602ddba28210504f4f4f76716f0279c88409cf40c96f026f026dc86f02216f8803c8cb4f71207281015e7020935309b98ae85f066c22216f11226f88a520c201e30081015e23cf31a113cf4101cf1721c001936c21c98e1801c00297016f12c901ccc9e0216f13c9026f12c901ccccc9e28a5a90009bdcd70bff80069b0ffc0b40069c4a9941729811cb5c935c2c05488a9819eb5c935c2c248700025cc48b5c90075c0e6d675d2341444b5c90075c0f8a0020120797a0071b4ab645f20105e12d452da449e50b8cf7dd27861f146122afe1b546bb8b70fc8216f0c614139f8f7530d824da25060fe82f2a05060fe82fc500201207b800201207c7f0201627d7e00dfa261640740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d23880487e4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea60c5b60c1fd039be865c060c1fd039be878a535c2ffdfe4cc1c1c38a016ba25887e4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea3a0d6e21c25c060c1fd03dbe878aaf006dae5ac183816800d38953282e5302396b926b8580a91153033d6b926b858490e0004b98916b9200eb81cdaceba46828896b9200eb81f1400105b2bd60b20201208296020120838f020120848d020120858a02015886870069a416f005a0034e254ca0b94c08e5ae49ae1602a4454c0cf5ae49ae16124380012e6245ae4803ae0736b3ae91a0a225ae4803ae07c50201208889006ba30e0c1c0b40069c4a9941729811cb5c935c2c05488a9819eb5c935c2c248700025cc48b5c90075c0e6d675d2341444b5c90075c0f8a02b3a139b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b24073333278aa5a90202738b8c000dbe3c8cbffc9d080105bc6888af01e7b3ad4830403cb58cc85c40740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d238b4089c201000b40069c4a9941729811cb5c935c2c05488a9819eb5c935c2c248700025cc48b5c90075c0e6d675d2341444b5c90075c0f894c82e6497c0f8c3a08e02605122a171c85d70d730cf16cb00840958a1a51270d732cf16c9d0d76171c858cf1622cf40c91024db3c017003a012db3cb2b202012090910075b0fc887e4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea60c5b60c1fd039be865c060c1fd039be878a0020120929502016693940057a39c0740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d238a00cba299640740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d23880487e4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea60c5b60c1fd039be865c060c1fd039be878a006dac06c010016800d38953282e5302396b926b8580a91153033d6b926b858490e0004b98916b9200eb81cdaceba46828896b9200eb81f14002012097a0020120989b02016a999a00dda47642e1008005a0034e254ca0b94c08e5ae49ae1602a4454c0cf5ae49ae16124380012e6245ae4803ae0736b3ae91a0a225ae4803ae07c54202e203a0034e254ca0b94c08e5ae49ae1602a4454c20e5ae49ae16024380012663ae912eb3ae91a003ae91c5a002e3ae49ae16018003006da404e205a0034e254ca0b94c08e5ae49ae1602a4454c0cf5ae49ae16124380012e6245ae4803ae0736b3ae91a0a225ae4803ae07c586010201209c9d0013accc781a80b7c0b788c00201209e9f006caa52830602d001a712a6505ca60472d724d70b015222a6067ad724d70b0921c000973122d72401d7039b59d748d05112d72401d703e20058ab7901d001a712a6505ca60472d724d70b015222a61072d724d70b0121c0009331d7489759d748d001d748e2020120a1ab020158a2a30008ab47ed44020148a4aa02f9a0d60841413d3d3dd9c5bc09e721c73d01491a84573d0610254012844f3d03244dbc09bc09b721bc0885be200f232d3dc481ca040579c0824d4c26e62ba17c19b08885bc4489be22948308078c020405788f3cc6844f3d04073c5c8700064db08726386007000a5c05bc4b240733278085bc4f2409bc4b24073333278aa5a903fc53806f81206f102020c10991ae923070e25350a08409bc8e133507a4702a6f885220be950ac86f8c0ade5085de24a427bc8e16343505a470742a6f885230be950ac86f8c0ade476604de21c1098e2021c0099d026f1153a76f81cc541a076f859d026f1153a76f81cc541a076f85e2e30d5098cb0328c200e30f02a41067a6a7a80022026f11b60b53a86f8123cf01541a086f85002a7327c00191709127e258cb015240cb09cb015038a0003438840925c00191709125e25009cb0118cb095210cb0101a44707033e21cf32c0008f0788885003cc12cc8e8d21cf32c0018e848858cc01de01e201afafaf0057a10c0740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d238a020158acb0020120adae006ba6b7008005a0034e254ca0b94c08e5ae49ae1602a4454c0cf5ae49ae16124380012e6245ae4803ae0736b3ae91a0a225ae4803ae07c50105a63511af0000020158b1b501f1a241740740069c4a9941729811cb5c935c2c05488a9841cb5c935c2c048700024cc75d225d675d2340075d238964826a535d24c1fe496dc3cbff684657232fff27437c8be4020bc25a8a5b4893ca1719efba4f0c3e28c2455fc36a8d7716e1f9042de18c28273f1eea58c9b60c1fd05a540a0c1fd05b8b6cf2b202f402d001a712a6505ca60472d724d70b01532174d724d70b035da6067ad724d70b095244a61072d724d70b012120c10991ae923070e223c0009125955353d748d0e221c300927433dec821d74927b60822d74a5250b6082359d730cf1624c0098e16323334505503cc7023d74a5006a1a54350d73213cf16e30e22b3b4006404c0098e1431345055cc7023d74a5006a1a54350d73213cf168e163206b60b541026cf015035a022d74a1023d73113cf16e20048c2008e1bc9c822d749546351d730cf16cc7022d74a5004a1a513d732cf16c9936c21c9e20005a2fb42daf078d2"}