@pendle/core-v2 6.6.1 → 6.7.1

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 (180) hide show
  1. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.json +2 -88
  3. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.json +2 -122
  5. package/build/artifacts/contracts/cross-chain/OFTPTSwapper.sol/OFTPTSwapper.dbg.json +4 -0
  6. package/build/artifacts/contracts/cross-chain/OFTPTSwapper.sol/OFTPTSwapper.json +99 -0
  7. package/build/artifacts/contracts/cross-chain/factory/PendleBridgePTFactory.sol/PendleBridgePTFactory.dbg.json +4 -0
  8. package/build/artifacts/contracts/cross-chain/factory/PendleBridgePTFactory.sol/PendleBridgePTFactory.json +1388 -0
  9. package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.dbg.json +1 -1
  10. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.dbg.json +1 -1
  11. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.json +46 -14
  12. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +1 -1
  13. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.json +46 -14
  14. package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFT.sol/PendleOFT.dbg.json +4 -0
  15. package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFT.sol/PendleOFT.json +1541 -0
  16. package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFTAlt.sol/PendleOFTAlt.dbg.json +4 -0
  17. package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFTAlt.sol/PendleOFTAlt.json +1570 -0
  18. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.dbg.json +1 -1
  19. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.json +57 -35
  20. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.dbg.json +1 -1
  21. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.json +57 -35
  22. package/build/artifacts/contracts/interfaces/IMarketSweed.sol/IMarketSweed.dbg.json +1 -1
  23. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  24. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  25. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  26. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  27. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  28. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  29. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  30. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  31. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  32. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  33. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  34. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  35. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  36. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  37. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  38. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  39. package/build/artifacts/contracts/interfaces/IPBridgeFunder.sol/IPBridgeFunder.dbg.json +1 -1
  40. package/build/artifacts/contracts/interfaces/IPBridgePTFactory.sol/IPBridgePTFactory.dbg.json +4 -0
  41. package/build/artifacts/contracts/interfaces/IPBridgePTFactory.sol/IPBridgePTFactory.json +1026 -0
  42. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +1 -1
  43. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.json +11 -0
  44. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  45. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  46. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  47. package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
  48. package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.json +0 -67
  49. package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.dbg.json +1 -1
  50. package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.json +0 -120
  51. package/build/artifacts/contracts/interfaces/IPOFTPTSwapper.sol/IPOFTPTSwapper.dbg.json +4 -0
  52. package/build/artifacts/contracts/interfaces/{IPSwapHelper.sol/IPSwapHelper.json → IPOFTPTSwapper.sol/IPOFTPTSwapper.json} +2 -2
  53. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  54. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  55. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  56. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  57. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  58. package/build/artifacts/contracts/limit/helpers/MintSyHelper.sol/MintSyHelper.dbg.json +1 -1
  59. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
  60. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  61. package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.dbg.json +1 -1
  62. package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +1 -1
  63. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
  64. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  65. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
  66. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  67. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  68. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  69. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  70. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  71. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  72. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
  74. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
  75. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  76. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  77. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  78. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  79. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  80. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  81. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  82. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  83. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  84. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
  85. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
  86. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
  87. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
  88. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  89. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  90. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  91. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  92. package/contracts/LiquidityMining/PendleMerkleDistributor.sol +1 -28
  93. package/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol +1 -36
  94. package/contracts/cross-chain/{PendleSwapHelper.sol → OFTPTSwapper.sol} +4 -3
  95. package/contracts/cross-chain/factory/PendleBridgePTFactory.sol +495 -0
  96. package/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol +5 -4
  97. package/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol +14 -6
  98. package/contracts/cross-chain/oftImpl/pendleOft/PendleOFT.sol +11 -0
  99. package/contracts/cross-chain/oftImpl/pendleOft/PendleOFTAlt.sol +52 -0
  100. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +33 -24
  101. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol +4 -13
  102. package/contracts/interfaces/IPBridgePTFactory.sol +129 -0
  103. package/contracts/interfaces/IPBridgedPrincipalToken.sol +4 -2
  104. package/contracts/interfaces/IPMerkleDistributor.sol +0 -7
  105. package/contracts/interfaces/IPMultiTokenMerkleDistributor.sol +0 -10
  106. package/contracts/interfaces/{IPSwapHelper.sol → IPOFTPTSwapper.sol} +1 -1
  107. package/contracts/limit/LimitRouterBase.sol +1 -1
  108. package/contracts/router/swap-aggregator/OKXScaleHelper.sol +4 -1
  109. package/deployments/1-core.json +2 -1
  110. package/deployments/130-core.json +2 -1
  111. package/deployments/143-core.json +38 -1
  112. package/deployments/143-offchain-helper.json +11 -0
  113. package/deployments/42161-core.json +2 -1
  114. package/deployments/4217-core.json +3 -1
  115. package/deployments/43114-core.json +3 -1
  116. package/deployments/56-core.json +2 -1
  117. package/deployments/57073-core.json +4 -1
  118. package/deployments/747474-core.json +4 -1
  119. package/deployments/8453-core.json +2 -1
  120. package/deployments/9745-core.json +2 -1
  121. package/deployments/999-core.json +2 -1
  122. package/package.json +12 -9
  123. package/typechain-types/DVNOptions.ts +57 -0
  124. package/typechain-types/ExecutorOptions.ts +57 -0
  125. package/typechain-types/IPBridgePTFactory.ts +936 -0
  126. package/typechain-types/IPMerkleDistributor.ts +0 -90
  127. package/typechain-types/IPMultiTokenMerkleDistributor.ts +0 -158
  128. package/typechain-types/IPOFTPTSwapper.ts +161 -0
  129. package/typechain-types/OAppPreCrimeSimulatorUpgradeable.ts +410 -0
  130. package/typechain-types/OFTAdapterAltImpl.ts +50 -19
  131. package/typechain-types/OFTAdapterImpl.ts +50 -19
  132. package/typechain-types/OFTAdapterUpgradeable.ts +1337 -0
  133. package/typechain-types/OFTCoreUpgradeable.ts +1337 -0
  134. package/typechain-types/OFTPTSwapper.ts +161 -0
  135. package/typechain-types/OFTUpgradeable.ts +1681 -0
  136. package/typechain-types/OptionsBuilder.ts +57 -0
  137. package/typechain-types/PendleBridgePTFactory.ts +1311 -0
  138. package/typechain-types/PendleBridgedPrincipalToken.ts +67 -20
  139. package/typechain-types/PendleBridgedPrincipalTokenAlt.ts +67 -20
  140. package/typechain-types/PendleMerkleDistributor.ts +0 -106
  141. package/typechain-types/PendleMultiTokenMerkleDistributor.ts +0 -158
  142. package/typechain-types/PendleOFT.ts +1675 -0
  143. package/typechain-types/PendleOFTAlt.ts +1694 -0
  144. package/typechain-types/factories/DVNOptions__factory.ts +77 -0
  145. package/typechain-types/factories/ExecutorOptions__factory.ts +84 -0
  146. package/typechain-types/factories/IOFT__factory.ts +11 -0
  147. package/typechain-types/factories/IPBridgePTFactory__factory.ts +1041 -0
  148. package/typechain-types/factories/IPBridgedPrincipalToken__factory.ts +11 -0
  149. package/typechain-types/factories/IPMerkleDistributor__factory.ts +0 -67
  150. package/typechain-types/factories/IPMultiTokenMerkleDistributor__factory.ts +0 -120
  151. package/typechain-types/factories/IPOFTPTSwapper__factory.ts +114 -0
  152. package/typechain-types/factories/OAppPreCrimeSimulatorUpgradeable__factory.ts +311 -0
  153. package/typechain-types/factories/OFTAdapterAltImpl__factory.ts +49 -25
  154. package/typechain-types/factories/OFTAdapterImpl__factory.ts +49 -25
  155. package/typechain-types/factories/OFTAdapterUpgradeable__factory.ts +1287 -0
  156. package/typechain-types/factories/OFTAdapter__factory.ts +11 -0
  157. package/typechain-types/factories/OFTCoreUpgradeable__factory.ts +1283 -0
  158. package/typechain-types/factories/OFTCore__factory.ts +11 -0
  159. package/typechain-types/factories/OFTPTSwapper__factory.ts +149 -0
  160. package/typechain-types/factories/OFTUpgradeable__factory.ts +1553 -0
  161. package/typechain-types/factories/OFT__factory.ts +11 -0
  162. package/typechain-types/factories/OptionsBuilder__factory.ts +91 -0
  163. package/typechain-types/factories/PendleBridgePTFactory__factory.ts +1481 -0
  164. package/typechain-types/factories/PendleBridgedPrincipalTokenAlt__factory.ts +60 -58
  165. package/typechain-types/factories/PendleBridgedPrincipalToken__factory.ts +60 -58
  166. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  167. package/typechain-types/factories/PendleMerkleDistributor__factory.ts +1 -87
  168. package/typechain-types/factories/PendleMultiTokenMerkleDistributor__factory.ts +1 -121
  169. package/typechain-types/factories/PendleOFTAlt__factory.ts +1628 -0
  170. package/typechain-types/factories/PendleOFT__factory.ts +1599 -0
  171. package/typechain-types/factories/PendlePTOFTAdapterFactory__factory.ts +1 -1
  172. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  173. package/typechain-types/hardhat.d.ts +107 -53
  174. package/typechain-types/index.ts +26 -12
  175. package/build/artifacts/contracts/cross-chain/PendleSwapHelper.sol/PendleSwapHelper.dbg.json +0 -4
  176. package/build/artifacts/contracts/cross-chain/PendleSwapHelper.sol/PendleSwapHelper.json +0 -99
  177. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +0 -4
  178. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +0 -280
  179. package/build/artifacts/contracts/interfaces/IPSwapHelper.sol/IPSwapHelper.dbg.json +0 -4
  180. package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +0 -38
@@ -0,0 +1,1570 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleOFTAlt",
4
+ "sourceName": "contracts/cross-chain/oftImpl/pendleOft/PendleOFTAlt.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_lzEndpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_delegate",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "amountSD",
27
+ "type": "uint256"
28
+ }
29
+ ],
30
+ "name": "AmountSDOverflowed",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [],
35
+ "name": "InvalidDelegate",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "InvalidEndpointCall",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "InvalidLocalDecimals",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "bytes",
52
+ "name": "options",
53
+ "type": "bytes"
54
+ }
55
+ ],
56
+ "name": "InvalidOptions",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "LzTokenUnavailable",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "uint256",
68
+ "name": "msgValue",
69
+ "type": "uint256"
70
+ }
71
+ ],
72
+ "name": "MsgValueNotZero",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [],
77
+ "name": "NativeTokenUnavailable",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "uint32",
84
+ "name": "eid",
85
+ "type": "uint32"
86
+ }
87
+ ],
88
+ "name": "NoPeer",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "uint256",
95
+ "name": "msgValue",
96
+ "type": "uint256"
97
+ }
98
+ ],
99
+ "name": "NotEnoughNative",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "addr",
107
+ "type": "address"
108
+ }
109
+ ],
110
+ "name": "OnlyEndpoint",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "inputs": [
115
+ {
116
+ "internalType": "uint32",
117
+ "name": "eid",
118
+ "type": "uint32"
119
+ },
120
+ {
121
+ "internalType": "bytes32",
122
+ "name": "sender",
123
+ "type": "bytes32"
124
+ }
125
+ ],
126
+ "name": "OnlyPeer",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "inputs": [],
131
+ "name": "OnlySelf",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "bytes",
138
+ "name": "result",
139
+ "type": "bytes"
140
+ }
141
+ ],
142
+ "name": "SimulationResult",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "uint256",
149
+ "name": "amountLD",
150
+ "type": "uint256"
151
+ },
152
+ {
153
+ "internalType": "uint256",
154
+ "name": "minAmountLD",
155
+ "type": "uint256"
156
+ }
157
+ ],
158
+ "name": "SlippageExceeded",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "anonymous": false,
163
+ "inputs": [
164
+ {
165
+ "indexed": true,
166
+ "internalType": "address",
167
+ "name": "owner",
168
+ "type": "address"
169
+ },
170
+ {
171
+ "indexed": true,
172
+ "internalType": "address",
173
+ "name": "spender",
174
+ "type": "address"
175
+ },
176
+ {
177
+ "indexed": false,
178
+ "internalType": "uint256",
179
+ "name": "value",
180
+ "type": "uint256"
181
+ }
182
+ ],
183
+ "name": "Approval",
184
+ "type": "event"
185
+ },
186
+ {
187
+ "anonymous": false,
188
+ "inputs": [
189
+ {
190
+ "components": [
191
+ {
192
+ "internalType": "uint32",
193
+ "name": "eid",
194
+ "type": "uint32"
195
+ },
196
+ {
197
+ "internalType": "uint16",
198
+ "name": "msgType",
199
+ "type": "uint16"
200
+ },
201
+ {
202
+ "internalType": "bytes",
203
+ "name": "options",
204
+ "type": "bytes"
205
+ }
206
+ ],
207
+ "indexed": false,
208
+ "internalType": "struct EnforcedOptionParam[]",
209
+ "name": "_enforcedOptions",
210
+ "type": "tuple[]"
211
+ }
212
+ ],
213
+ "name": "EnforcedOptionSet",
214
+ "type": "event"
215
+ },
216
+ {
217
+ "anonymous": false,
218
+ "inputs": [
219
+ {
220
+ "indexed": false,
221
+ "internalType": "address",
222
+ "name": "inspector",
223
+ "type": "address"
224
+ }
225
+ ],
226
+ "name": "MsgInspectorSet",
227
+ "type": "event"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "indexed": true,
234
+ "internalType": "bytes32",
235
+ "name": "guid",
236
+ "type": "bytes32"
237
+ },
238
+ {
239
+ "indexed": false,
240
+ "internalType": "uint32",
241
+ "name": "srcEid",
242
+ "type": "uint32"
243
+ },
244
+ {
245
+ "indexed": true,
246
+ "internalType": "address",
247
+ "name": "toAddress",
248
+ "type": "address"
249
+ },
250
+ {
251
+ "indexed": false,
252
+ "internalType": "uint256",
253
+ "name": "amountReceivedLD",
254
+ "type": "uint256"
255
+ }
256
+ ],
257
+ "name": "OFTReceived",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": true,
265
+ "internalType": "bytes32",
266
+ "name": "guid",
267
+ "type": "bytes32"
268
+ },
269
+ {
270
+ "indexed": false,
271
+ "internalType": "uint32",
272
+ "name": "dstEid",
273
+ "type": "uint32"
274
+ },
275
+ {
276
+ "indexed": true,
277
+ "internalType": "address",
278
+ "name": "fromAddress",
279
+ "type": "address"
280
+ },
281
+ {
282
+ "indexed": false,
283
+ "internalType": "uint256",
284
+ "name": "amountSentLD",
285
+ "type": "uint256"
286
+ },
287
+ {
288
+ "indexed": false,
289
+ "internalType": "uint256",
290
+ "name": "amountReceivedLD",
291
+ "type": "uint256"
292
+ }
293
+ ],
294
+ "name": "OFTSent",
295
+ "type": "event"
296
+ },
297
+ {
298
+ "anonymous": false,
299
+ "inputs": [
300
+ {
301
+ "indexed": true,
302
+ "internalType": "address",
303
+ "name": "previousOwner",
304
+ "type": "address"
305
+ },
306
+ {
307
+ "indexed": true,
308
+ "internalType": "address",
309
+ "name": "newOwner",
310
+ "type": "address"
311
+ }
312
+ ],
313
+ "name": "OwnershipTransferred",
314
+ "type": "event"
315
+ },
316
+ {
317
+ "anonymous": false,
318
+ "inputs": [
319
+ {
320
+ "indexed": false,
321
+ "internalType": "uint32",
322
+ "name": "eid",
323
+ "type": "uint32"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "bytes32",
328
+ "name": "peer",
329
+ "type": "bytes32"
330
+ }
331
+ ],
332
+ "name": "PeerSet",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": false,
340
+ "internalType": "address",
341
+ "name": "preCrimeAddress",
342
+ "type": "address"
343
+ }
344
+ ],
345
+ "name": "PreCrimeSet",
346
+ "type": "event"
347
+ },
348
+ {
349
+ "anonymous": false,
350
+ "inputs": [
351
+ {
352
+ "indexed": true,
353
+ "internalType": "address",
354
+ "name": "from",
355
+ "type": "address"
356
+ },
357
+ {
358
+ "indexed": true,
359
+ "internalType": "address",
360
+ "name": "to",
361
+ "type": "address"
362
+ },
363
+ {
364
+ "indexed": false,
365
+ "internalType": "uint256",
366
+ "name": "value",
367
+ "type": "uint256"
368
+ }
369
+ ],
370
+ "name": "Transfer",
371
+ "type": "event"
372
+ },
373
+ {
374
+ "inputs": [],
375
+ "name": "SEND",
376
+ "outputs": [
377
+ {
378
+ "internalType": "uint16",
379
+ "name": "",
380
+ "type": "uint16"
381
+ }
382
+ ],
383
+ "stateMutability": "view",
384
+ "type": "function"
385
+ },
386
+ {
387
+ "inputs": [],
388
+ "name": "SEND_AND_CALL",
389
+ "outputs": [
390
+ {
391
+ "internalType": "uint16",
392
+ "name": "",
393
+ "type": "uint16"
394
+ }
395
+ ],
396
+ "stateMutability": "view",
397
+ "type": "function"
398
+ },
399
+ {
400
+ "inputs": [
401
+ {
402
+ "components": [
403
+ {
404
+ "internalType": "uint32",
405
+ "name": "srcEid",
406
+ "type": "uint32"
407
+ },
408
+ {
409
+ "internalType": "bytes32",
410
+ "name": "sender",
411
+ "type": "bytes32"
412
+ },
413
+ {
414
+ "internalType": "uint64",
415
+ "name": "nonce",
416
+ "type": "uint64"
417
+ }
418
+ ],
419
+ "internalType": "struct Origin",
420
+ "name": "origin",
421
+ "type": "tuple"
422
+ }
423
+ ],
424
+ "name": "allowInitializePath",
425
+ "outputs": [
426
+ {
427
+ "internalType": "bool",
428
+ "name": "",
429
+ "type": "bool"
430
+ }
431
+ ],
432
+ "stateMutability": "view",
433
+ "type": "function"
434
+ },
435
+ {
436
+ "inputs": [
437
+ {
438
+ "internalType": "address",
439
+ "name": "owner",
440
+ "type": "address"
441
+ },
442
+ {
443
+ "internalType": "address",
444
+ "name": "spender",
445
+ "type": "address"
446
+ }
447
+ ],
448
+ "name": "allowance",
449
+ "outputs": [
450
+ {
451
+ "internalType": "uint256",
452
+ "name": "",
453
+ "type": "uint256"
454
+ }
455
+ ],
456
+ "stateMutability": "view",
457
+ "type": "function"
458
+ },
459
+ {
460
+ "inputs": [],
461
+ "name": "approvalRequired",
462
+ "outputs": [
463
+ {
464
+ "internalType": "bool",
465
+ "name": "",
466
+ "type": "bool"
467
+ }
468
+ ],
469
+ "stateMutability": "pure",
470
+ "type": "function"
471
+ },
472
+ {
473
+ "inputs": [
474
+ {
475
+ "internalType": "address",
476
+ "name": "spender",
477
+ "type": "address"
478
+ },
479
+ {
480
+ "internalType": "uint256",
481
+ "name": "amount",
482
+ "type": "uint256"
483
+ }
484
+ ],
485
+ "name": "approve",
486
+ "outputs": [
487
+ {
488
+ "internalType": "bool",
489
+ "name": "",
490
+ "type": "bool"
491
+ }
492
+ ],
493
+ "stateMutability": "nonpayable",
494
+ "type": "function"
495
+ },
496
+ {
497
+ "inputs": [
498
+ {
499
+ "internalType": "address",
500
+ "name": "account",
501
+ "type": "address"
502
+ }
503
+ ],
504
+ "name": "balanceOf",
505
+ "outputs": [
506
+ {
507
+ "internalType": "uint256",
508
+ "name": "",
509
+ "type": "uint256"
510
+ }
511
+ ],
512
+ "stateMutability": "view",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [
517
+ {
518
+ "internalType": "uint32",
519
+ "name": "_eid",
520
+ "type": "uint32"
521
+ },
522
+ {
523
+ "internalType": "uint16",
524
+ "name": "_msgType",
525
+ "type": "uint16"
526
+ },
527
+ {
528
+ "internalType": "bytes",
529
+ "name": "_extraOptions",
530
+ "type": "bytes"
531
+ }
532
+ ],
533
+ "name": "combineOptions",
534
+ "outputs": [
535
+ {
536
+ "internalType": "bytes",
537
+ "name": "",
538
+ "type": "bytes"
539
+ }
540
+ ],
541
+ "stateMutability": "view",
542
+ "type": "function"
543
+ },
544
+ {
545
+ "inputs": [],
546
+ "name": "decimalConversionRate",
547
+ "outputs": [
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "",
551
+ "type": "uint256"
552
+ }
553
+ ],
554
+ "stateMutability": "view",
555
+ "type": "function"
556
+ },
557
+ {
558
+ "inputs": [],
559
+ "name": "decimals",
560
+ "outputs": [
561
+ {
562
+ "internalType": "uint8",
563
+ "name": "",
564
+ "type": "uint8"
565
+ }
566
+ ],
567
+ "stateMutability": "view",
568
+ "type": "function"
569
+ },
570
+ {
571
+ "inputs": [
572
+ {
573
+ "internalType": "address",
574
+ "name": "spender",
575
+ "type": "address"
576
+ },
577
+ {
578
+ "internalType": "uint256",
579
+ "name": "subtractedValue",
580
+ "type": "uint256"
581
+ }
582
+ ],
583
+ "name": "decreaseAllowance",
584
+ "outputs": [
585
+ {
586
+ "internalType": "bool",
587
+ "name": "",
588
+ "type": "bool"
589
+ }
590
+ ],
591
+ "stateMutability": "nonpayable",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [],
596
+ "name": "endpoint",
597
+ "outputs": [
598
+ {
599
+ "internalType": "contract ILayerZeroEndpointV2",
600
+ "name": "",
601
+ "type": "address"
602
+ }
603
+ ],
604
+ "stateMutability": "view",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "uint32",
611
+ "name": "eid",
612
+ "type": "uint32"
613
+ },
614
+ {
615
+ "internalType": "uint16",
616
+ "name": "msgType",
617
+ "type": "uint16"
618
+ }
619
+ ],
620
+ "name": "enforcedOptions",
621
+ "outputs": [
622
+ {
623
+ "internalType": "bytes",
624
+ "name": "enforcedOption",
625
+ "type": "bytes"
626
+ }
627
+ ],
628
+ "stateMutability": "view",
629
+ "type": "function"
630
+ },
631
+ {
632
+ "inputs": [
633
+ {
634
+ "internalType": "address",
635
+ "name": "spender",
636
+ "type": "address"
637
+ },
638
+ {
639
+ "internalType": "uint256",
640
+ "name": "addedValue",
641
+ "type": "uint256"
642
+ }
643
+ ],
644
+ "name": "increaseAllowance",
645
+ "outputs": [
646
+ {
647
+ "internalType": "bool",
648
+ "name": "",
649
+ "type": "bool"
650
+ }
651
+ ],
652
+ "stateMutability": "nonpayable",
653
+ "type": "function"
654
+ },
655
+ {
656
+ "inputs": [
657
+ {
658
+ "components": [
659
+ {
660
+ "internalType": "uint32",
661
+ "name": "srcEid",
662
+ "type": "uint32"
663
+ },
664
+ {
665
+ "internalType": "bytes32",
666
+ "name": "sender",
667
+ "type": "bytes32"
668
+ },
669
+ {
670
+ "internalType": "uint64",
671
+ "name": "nonce",
672
+ "type": "uint64"
673
+ }
674
+ ],
675
+ "internalType": "struct Origin",
676
+ "name": "",
677
+ "type": "tuple"
678
+ },
679
+ {
680
+ "internalType": "bytes",
681
+ "name": "",
682
+ "type": "bytes"
683
+ },
684
+ {
685
+ "internalType": "address",
686
+ "name": "_sender",
687
+ "type": "address"
688
+ }
689
+ ],
690
+ "name": "isComposeMsgSender",
691
+ "outputs": [
692
+ {
693
+ "internalType": "bool",
694
+ "name": "",
695
+ "type": "bool"
696
+ }
697
+ ],
698
+ "stateMutability": "view",
699
+ "type": "function"
700
+ },
701
+ {
702
+ "inputs": [
703
+ {
704
+ "internalType": "uint32",
705
+ "name": "_eid",
706
+ "type": "uint32"
707
+ },
708
+ {
709
+ "internalType": "bytes32",
710
+ "name": "_peer",
711
+ "type": "bytes32"
712
+ }
713
+ ],
714
+ "name": "isPeer",
715
+ "outputs": [
716
+ {
717
+ "internalType": "bool",
718
+ "name": "",
719
+ "type": "bool"
720
+ }
721
+ ],
722
+ "stateMutability": "view",
723
+ "type": "function"
724
+ },
725
+ {
726
+ "inputs": [
727
+ {
728
+ "components": [
729
+ {
730
+ "internalType": "uint32",
731
+ "name": "srcEid",
732
+ "type": "uint32"
733
+ },
734
+ {
735
+ "internalType": "bytes32",
736
+ "name": "sender",
737
+ "type": "bytes32"
738
+ },
739
+ {
740
+ "internalType": "uint64",
741
+ "name": "nonce",
742
+ "type": "uint64"
743
+ }
744
+ ],
745
+ "internalType": "struct Origin",
746
+ "name": "_origin",
747
+ "type": "tuple"
748
+ },
749
+ {
750
+ "internalType": "bytes32",
751
+ "name": "_guid",
752
+ "type": "bytes32"
753
+ },
754
+ {
755
+ "internalType": "bytes",
756
+ "name": "_message",
757
+ "type": "bytes"
758
+ },
759
+ {
760
+ "internalType": "address",
761
+ "name": "_executor",
762
+ "type": "address"
763
+ },
764
+ {
765
+ "internalType": "bytes",
766
+ "name": "_extraData",
767
+ "type": "bytes"
768
+ }
769
+ ],
770
+ "name": "lzReceive",
771
+ "outputs": [],
772
+ "stateMutability": "payable",
773
+ "type": "function"
774
+ },
775
+ {
776
+ "inputs": [
777
+ {
778
+ "components": [
779
+ {
780
+ "components": [
781
+ {
782
+ "internalType": "uint32",
783
+ "name": "srcEid",
784
+ "type": "uint32"
785
+ },
786
+ {
787
+ "internalType": "bytes32",
788
+ "name": "sender",
789
+ "type": "bytes32"
790
+ },
791
+ {
792
+ "internalType": "uint64",
793
+ "name": "nonce",
794
+ "type": "uint64"
795
+ }
796
+ ],
797
+ "internalType": "struct Origin",
798
+ "name": "origin",
799
+ "type": "tuple"
800
+ },
801
+ {
802
+ "internalType": "uint32",
803
+ "name": "dstEid",
804
+ "type": "uint32"
805
+ },
806
+ {
807
+ "internalType": "address",
808
+ "name": "receiver",
809
+ "type": "address"
810
+ },
811
+ {
812
+ "internalType": "bytes32",
813
+ "name": "guid",
814
+ "type": "bytes32"
815
+ },
816
+ {
817
+ "internalType": "uint256",
818
+ "name": "value",
819
+ "type": "uint256"
820
+ },
821
+ {
822
+ "internalType": "address",
823
+ "name": "executor",
824
+ "type": "address"
825
+ },
826
+ {
827
+ "internalType": "bytes",
828
+ "name": "message",
829
+ "type": "bytes"
830
+ },
831
+ {
832
+ "internalType": "bytes",
833
+ "name": "extraData",
834
+ "type": "bytes"
835
+ }
836
+ ],
837
+ "internalType": "struct InboundPacket[]",
838
+ "name": "_packets",
839
+ "type": "tuple[]"
840
+ }
841
+ ],
842
+ "name": "lzReceiveAndRevert",
843
+ "outputs": [],
844
+ "stateMutability": "payable",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "components": [
851
+ {
852
+ "internalType": "uint32",
853
+ "name": "srcEid",
854
+ "type": "uint32"
855
+ },
856
+ {
857
+ "internalType": "bytes32",
858
+ "name": "sender",
859
+ "type": "bytes32"
860
+ },
861
+ {
862
+ "internalType": "uint64",
863
+ "name": "nonce",
864
+ "type": "uint64"
865
+ }
866
+ ],
867
+ "internalType": "struct Origin",
868
+ "name": "_origin",
869
+ "type": "tuple"
870
+ },
871
+ {
872
+ "internalType": "bytes32",
873
+ "name": "_guid",
874
+ "type": "bytes32"
875
+ },
876
+ {
877
+ "internalType": "bytes",
878
+ "name": "_message",
879
+ "type": "bytes"
880
+ },
881
+ {
882
+ "internalType": "address",
883
+ "name": "_executor",
884
+ "type": "address"
885
+ },
886
+ {
887
+ "internalType": "bytes",
888
+ "name": "_extraData",
889
+ "type": "bytes"
890
+ }
891
+ ],
892
+ "name": "lzReceiveSimulate",
893
+ "outputs": [],
894
+ "stateMutability": "payable",
895
+ "type": "function"
896
+ },
897
+ {
898
+ "inputs": [],
899
+ "name": "msgInspector",
900
+ "outputs": [
901
+ {
902
+ "internalType": "address",
903
+ "name": "",
904
+ "type": "address"
905
+ }
906
+ ],
907
+ "stateMutability": "view",
908
+ "type": "function"
909
+ },
910
+ {
911
+ "inputs": [],
912
+ "name": "name",
913
+ "outputs": [
914
+ {
915
+ "internalType": "string",
916
+ "name": "",
917
+ "type": "string"
918
+ }
919
+ ],
920
+ "stateMutability": "view",
921
+ "type": "function"
922
+ },
923
+ {
924
+ "inputs": [],
925
+ "name": "nativeToken",
926
+ "outputs": [
927
+ {
928
+ "internalType": "address",
929
+ "name": "",
930
+ "type": "address"
931
+ }
932
+ ],
933
+ "stateMutability": "view",
934
+ "type": "function"
935
+ },
936
+ {
937
+ "inputs": [
938
+ {
939
+ "internalType": "uint32",
940
+ "name": "",
941
+ "type": "uint32"
942
+ },
943
+ {
944
+ "internalType": "bytes32",
945
+ "name": "",
946
+ "type": "bytes32"
947
+ }
948
+ ],
949
+ "name": "nextNonce",
950
+ "outputs": [
951
+ {
952
+ "internalType": "uint64",
953
+ "name": "nonce",
954
+ "type": "uint64"
955
+ }
956
+ ],
957
+ "stateMutability": "view",
958
+ "type": "function"
959
+ },
960
+ {
961
+ "inputs": [],
962
+ "name": "oApp",
963
+ "outputs": [
964
+ {
965
+ "internalType": "address",
966
+ "name": "",
967
+ "type": "address"
968
+ }
969
+ ],
970
+ "stateMutability": "view",
971
+ "type": "function"
972
+ },
973
+ {
974
+ "inputs": [],
975
+ "name": "oAppVersion",
976
+ "outputs": [
977
+ {
978
+ "internalType": "uint64",
979
+ "name": "senderVersion",
980
+ "type": "uint64"
981
+ },
982
+ {
983
+ "internalType": "uint64",
984
+ "name": "receiverVersion",
985
+ "type": "uint64"
986
+ }
987
+ ],
988
+ "stateMutability": "pure",
989
+ "type": "function"
990
+ },
991
+ {
992
+ "inputs": [],
993
+ "name": "oftVersion",
994
+ "outputs": [
995
+ {
996
+ "internalType": "bytes4",
997
+ "name": "interfaceId",
998
+ "type": "bytes4"
999
+ },
1000
+ {
1001
+ "internalType": "uint64",
1002
+ "name": "version",
1003
+ "type": "uint64"
1004
+ }
1005
+ ],
1006
+ "stateMutability": "pure",
1007
+ "type": "function"
1008
+ },
1009
+ {
1010
+ "inputs": [],
1011
+ "name": "owner",
1012
+ "outputs": [
1013
+ {
1014
+ "internalType": "address",
1015
+ "name": "",
1016
+ "type": "address"
1017
+ }
1018
+ ],
1019
+ "stateMutability": "view",
1020
+ "type": "function"
1021
+ },
1022
+ {
1023
+ "inputs": [
1024
+ {
1025
+ "internalType": "uint32",
1026
+ "name": "eid",
1027
+ "type": "uint32"
1028
+ }
1029
+ ],
1030
+ "name": "peers",
1031
+ "outputs": [
1032
+ {
1033
+ "internalType": "bytes32",
1034
+ "name": "peer",
1035
+ "type": "bytes32"
1036
+ }
1037
+ ],
1038
+ "stateMutability": "view",
1039
+ "type": "function"
1040
+ },
1041
+ {
1042
+ "inputs": [],
1043
+ "name": "preCrime",
1044
+ "outputs": [
1045
+ {
1046
+ "internalType": "address",
1047
+ "name": "",
1048
+ "type": "address"
1049
+ }
1050
+ ],
1051
+ "stateMutability": "view",
1052
+ "type": "function"
1053
+ },
1054
+ {
1055
+ "inputs": [
1056
+ {
1057
+ "components": [
1058
+ {
1059
+ "internalType": "uint32",
1060
+ "name": "dstEid",
1061
+ "type": "uint32"
1062
+ },
1063
+ {
1064
+ "internalType": "bytes32",
1065
+ "name": "to",
1066
+ "type": "bytes32"
1067
+ },
1068
+ {
1069
+ "internalType": "uint256",
1070
+ "name": "amountLD",
1071
+ "type": "uint256"
1072
+ },
1073
+ {
1074
+ "internalType": "uint256",
1075
+ "name": "minAmountLD",
1076
+ "type": "uint256"
1077
+ },
1078
+ {
1079
+ "internalType": "bytes",
1080
+ "name": "extraOptions",
1081
+ "type": "bytes"
1082
+ },
1083
+ {
1084
+ "internalType": "bytes",
1085
+ "name": "composeMsg",
1086
+ "type": "bytes"
1087
+ },
1088
+ {
1089
+ "internalType": "bytes",
1090
+ "name": "oftCmd",
1091
+ "type": "bytes"
1092
+ }
1093
+ ],
1094
+ "internalType": "struct SendParam",
1095
+ "name": "_sendParam",
1096
+ "type": "tuple"
1097
+ }
1098
+ ],
1099
+ "name": "quoteOFT",
1100
+ "outputs": [
1101
+ {
1102
+ "components": [
1103
+ {
1104
+ "internalType": "uint256",
1105
+ "name": "minAmountLD",
1106
+ "type": "uint256"
1107
+ },
1108
+ {
1109
+ "internalType": "uint256",
1110
+ "name": "maxAmountLD",
1111
+ "type": "uint256"
1112
+ }
1113
+ ],
1114
+ "internalType": "struct OFTLimit",
1115
+ "name": "oftLimit",
1116
+ "type": "tuple"
1117
+ },
1118
+ {
1119
+ "components": [
1120
+ {
1121
+ "internalType": "int256",
1122
+ "name": "feeAmountLD",
1123
+ "type": "int256"
1124
+ },
1125
+ {
1126
+ "internalType": "string",
1127
+ "name": "description",
1128
+ "type": "string"
1129
+ }
1130
+ ],
1131
+ "internalType": "struct OFTFeeDetail[]",
1132
+ "name": "oftFeeDetails",
1133
+ "type": "tuple[]"
1134
+ },
1135
+ {
1136
+ "components": [
1137
+ {
1138
+ "internalType": "uint256",
1139
+ "name": "amountSentLD",
1140
+ "type": "uint256"
1141
+ },
1142
+ {
1143
+ "internalType": "uint256",
1144
+ "name": "amountReceivedLD",
1145
+ "type": "uint256"
1146
+ }
1147
+ ],
1148
+ "internalType": "struct OFTReceipt",
1149
+ "name": "oftReceipt",
1150
+ "type": "tuple"
1151
+ }
1152
+ ],
1153
+ "stateMutability": "view",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [
1158
+ {
1159
+ "components": [
1160
+ {
1161
+ "internalType": "uint32",
1162
+ "name": "dstEid",
1163
+ "type": "uint32"
1164
+ },
1165
+ {
1166
+ "internalType": "bytes32",
1167
+ "name": "to",
1168
+ "type": "bytes32"
1169
+ },
1170
+ {
1171
+ "internalType": "uint256",
1172
+ "name": "amountLD",
1173
+ "type": "uint256"
1174
+ },
1175
+ {
1176
+ "internalType": "uint256",
1177
+ "name": "minAmountLD",
1178
+ "type": "uint256"
1179
+ },
1180
+ {
1181
+ "internalType": "bytes",
1182
+ "name": "extraOptions",
1183
+ "type": "bytes"
1184
+ },
1185
+ {
1186
+ "internalType": "bytes",
1187
+ "name": "composeMsg",
1188
+ "type": "bytes"
1189
+ },
1190
+ {
1191
+ "internalType": "bytes",
1192
+ "name": "oftCmd",
1193
+ "type": "bytes"
1194
+ }
1195
+ ],
1196
+ "internalType": "struct SendParam",
1197
+ "name": "_sendParam",
1198
+ "type": "tuple"
1199
+ },
1200
+ {
1201
+ "internalType": "bool",
1202
+ "name": "_payInLzToken",
1203
+ "type": "bool"
1204
+ }
1205
+ ],
1206
+ "name": "quoteSend",
1207
+ "outputs": [
1208
+ {
1209
+ "components": [
1210
+ {
1211
+ "internalType": "uint256",
1212
+ "name": "nativeFee",
1213
+ "type": "uint256"
1214
+ },
1215
+ {
1216
+ "internalType": "uint256",
1217
+ "name": "lzTokenFee",
1218
+ "type": "uint256"
1219
+ }
1220
+ ],
1221
+ "internalType": "struct MessagingFee",
1222
+ "name": "msgFee",
1223
+ "type": "tuple"
1224
+ }
1225
+ ],
1226
+ "stateMutability": "view",
1227
+ "type": "function"
1228
+ },
1229
+ {
1230
+ "inputs": [],
1231
+ "name": "renounceOwnership",
1232
+ "outputs": [],
1233
+ "stateMutability": "nonpayable",
1234
+ "type": "function"
1235
+ },
1236
+ {
1237
+ "inputs": [
1238
+ {
1239
+ "components": [
1240
+ {
1241
+ "internalType": "uint32",
1242
+ "name": "dstEid",
1243
+ "type": "uint32"
1244
+ },
1245
+ {
1246
+ "internalType": "bytes32",
1247
+ "name": "to",
1248
+ "type": "bytes32"
1249
+ },
1250
+ {
1251
+ "internalType": "uint256",
1252
+ "name": "amountLD",
1253
+ "type": "uint256"
1254
+ },
1255
+ {
1256
+ "internalType": "uint256",
1257
+ "name": "minAmountLD",
1258
+ "type": "uint256"
1259
+ },
1260
+ {
1261
+ "internalType": "bytes",
1262
+ "name": "extraOptions",
1263
+ "type": "bytes"
1264
+ },
1265
+ {
1266
+ "internalType": "bytes",
1267
+ "name": "composeMsg",
1268
+ "type": "bytes"
1269
+ },
1270
+ {
1271
+ "internalType": "bytes",
1272
+ "name": "oftCmd",
1273
+ "type": "bytes"
1274
+ }
1275
+ ],
1276
+ "internalType": "struct SendParam",
1277
+ "name": "_sendParam",
1278
+ "type": "tuple"
1279
+ },
1280
+ {
1281
+ "components": [
1282
+ {
1283
+ "internalType": "uint256",
1284
+ "name": "nativeFee",
1285
+ "type": "uint256"
1286
+ },
1287
+ {
1288
+ "internalType": "uint256",
1289
+ "name": "lzTokenFee",
1290
+ "type": "uint256"
1291
+ }
1292
+ ],
1293
+ "internalType": "struct MessagingFee",
1294
+ "name": "_fee",
1295
+ "type": "tuple"
1296
+ },
1297
+ {
1298
+ "internalType": "address",
1299
+ "name": "_refundAddress",
1300
+ "type": "address"
1301
+ }
1302
+ ],
1303
+ "name": "send",
1304
+ "outputs": [
1305
+ {
1306
+ "components": [
1307
+ {
1308
+ "internalType": "bytes32",
1309
+ "name": "guid",
1310
+ "type": "bytes32"
1311
+ },
1312
+ {
1313
+ "internalType": "uint64",
1314
+ "name": "nonce",
1315
+ "type": "uint64"
1316
+ },
1317
+ {
1318
+ "components": [
1319
+ {
1320
+ "internalType": "uint256",
1321
+ "name": "nativeFee",
1322
+ "type": "uint256"
1323
+ },
1324
+ {
1325
+ "internalType": "uint256",
1326
+ "name": "lzTokenFee",
1327
+ "type": "uint256"
1328
+ }
1329
+ ],
1330
+ "internalType": "struct MessagingFee",
1331
+ "name": "fee",
1332
+ "type": "tuple"
1333
+ }
1334
+ ],
1335
+ "internalType": "struct MessagingReceipt",
1336
+ "name": "msgReceipt",
1337
+ "type": "tuple"
1338
+ },
1339
+ {
1340
+ "components": [
1341
+ {
1342
+ "internalType": "uint256",
1343
+ "name": "amountSentLD",
1344
+ "type": "uint256"
1345
+ },
1346
+ {
1347
+ "internalType": "uint256",
1348
+ "name": "amountReceivedLD",
1349
+ "type": "uint256"
1350
+ }
1351
+ ],
1352
+ "internalType": "struct OFTReceipt",
1353
+ "name": "oftReceipt",
1354
+ "type": "tuple"
1355
+ }
1356
+ ],
1357
+ "stateMutability": "payable",
1358
+ "type": "function"
1359
+ },
1360
+ {
1361
+ "inputs": [
1362
+ {
1363
+ "internalType": "address",
1364
+ "name": "_delegate",
1365
+ "type": "address"
1366
+ }
1367
+ ],
1368
+ "name": "setDelegate",
1369
+ "outputs": [],
1370
+ "stateMutability": "nonpayable",
1371
+ "type": "function"
1372
+ },
1373
+ {
1374
+ "inputs": [
1375
+ {
1376
+ "components": [
1377
+ {
1378
+ "internalType": "uint32",
1379
+ "name": "eid",
1380
+ "type": "uint32"
1381
+ },
1382
+ {
1383
+ "internalType": "uint16",
1384
+ "name": "msgType",
1385
+ "type": "uint16"
1386
+ },
1387
+ {
1388
+ "internalType": "bytes",
1389
+ "name": "options",
1390
+ "type": "bytes"
1391
+ }
1392
+ ],
1393
+ "internalType": "struct EnforcedOptionParam[]",
1394
+ "name": "_enforcedOptions",
1395
+ "type": "tuple[]"
1396
+ }
1397
+ ],
1398
+ "name": "setEnforcedOptions",
1399
+ "outputs": [],
1400
+ "stateMutability": "nonpayable",
1401
+ "type": "function"
1402
+ },
1403
+ {
1404
+ "inputs": [
1405
+ {
1406
+ "internalType": "address",
1407
+ "name": "_msgInspector",
1408
+ "type": "address"
1409
+ }
1410
+ ],
1411
+ "name": "setMsgInspector",
1412
+ "outputs": [],
1413
+ "stateMutability": "nonpayable",
1414
+ "type": "function"
1415
+ },
1416
+ {
1417
+ "inputs": [
1418
+ {
1419
+ "internalType": "uint32",
1420
+ "name": "_eid",
1421
+ "type": "uint32"
1422
+ },
1423
+ {
1424
+ "internalType": "bytes32",
1425
+ "name": "_peer",
1426
+ "type": "bytes32"
1427
+ }
1428
+ ],
1429
+ "name": "setPeer",
1430
+ "outputs": [],
1431
+ "stateMutability": "nonpayable",
1432
+ "type": "function"
1433
+ },
1434
+ {
1435
+ "inputs": [
1436
+ {
1437
+ "internalType": "address",
1438
+ "name": "_preCrime",
1439
+ "type": "address"
1440
+ }
1441
+ ],
1442
+ "name": "setPreCrime",
1443
+ "outputs": [],
1444
+ "stateMutability": "nonpayable",
1445
+ "type": "function"
1446
+ },
1447
+ {
1448
+ "inputs": [],
1449
+ "name": "sharedDecimals",
1450
+ "outputs": [
1451
+ {
1452
+ "internalType": "uint8",
1453
+ "name": "",
1454
+ "type": "uint8"
1455
+ }
1456
+ ],
1457
+ "stateMutability": "view",
1458
+ "type": "function"
1459
+ },
1460
+ {
1461
+ "inputs": [],
1462
+ "name": "symbol",
1463
+ "outputs": [
1464
+ {
1465
+ "internalType": "string",
1466
+ "name": "",
1467
+ "type": "string"
1468
+ }
1469
+ ],
1470
+ "stateMutability": "view",
1471
+ "type": "function"
1472
+ },
1473
+ {
1474
+ "inputs": [],
1475
+ "name": "token",
1476
+ "outputs": [
1477
+ {
1478
+ "internalType": "address",
1479
+ "name": "",
1480
+ "type": "address"
1481
+ }
1482
+ ],
1483
+ "stateMutability": "view",
1484
+ "type": "function"
1485
+ },
1486
+ {
1487
+ "inputs": [],
1488
+ "name": "totalSupply",
1489
+ "outputs": [
1490
+ {
1491
+ "internalType": "uint256",
1492
+ "name": "",
1493
+ "type": "uint256"
1494
+ }
1495
+ ],
1496
+ "stateMutability": "view",
1497
+ "type": "function"
1498
+ },
1499
+ {
1500
+ "inputs": [
1501
+ {
1502
+ "internalType": "address",
1503
+ "name": "to",
1504
+ "type": "address"
1505
+ },
1506
+ {
1507
+ "internalType": "uint256",
1508
+ "name": "amount",
1509
+ "type": "uint256"
1510
+ }
1511
+ ],
1512
+ "name": "transfer",
1513
+ "outputs": [
1514
+ {
1515
+ "internalType": "bool",
1516
+ "name": "",
1517
+ "type": "bool"
1518
+ }
1519
+ ],
1520
+ "stateMutability": "nonpayable",
1521
+ "type": "function"
1522
+ },
1523
+ {
1524
+ "inputs": [
1525
+ {
1526
+ "internalType": "address",
1527
+ "name": "from",
1528
+ "type": "address"
1529
+ },
1530
+ {
1531
+ "internalType": "address",
1532
+ "name": "to",
1533
+ "type": "address"
1534
+ },
1535
+ {
1536
+ "internalType": "uint256",
1537
+ "name": "amount",
1538
+ "type": "uint256"
1539
+ }
1540
+ ],
1541
+ "name": "transferFrom",
1542
+ "outputs": [
1543
+ {
1544
+ "internalType": "bool",
1545
+ "name": "",
1546
+ "type": "bool"
1547
+ }
1548
+ ],
1549
+ "stateMutability": "nonpayable",
1550
+ "type": "function"
1551
+ },
1552
+ {
1553
+ "inputs": [
1554
+ {
1555
+ "internalType": "address",
1556
+ "name": "newOwner",
1557
+ "type": "address"
1558
+ }
1559
+ ],
1560
+ "name": "transferOwnership",
1561
+ "outputs": [],
1562
+ "stateMutability": "nonpayable",
1563
+ "type": "function"
1564
+ }
1565
+ ],
1566
+ "bytecode": "0x60e060405234801561000f575f5ffd5b50604051613a8b380380613a8b83398101604081905261002e91610287565b81816040518060400160405280600681526020016550656e646c6560d01b8152506040518060400160405280600681526020016550454e444c4560d01b8152508383838361008061021360201b60201c565b84848181818161008f33610218565b6001600160a01b0380831660805281166100bc57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b158015610100575f5ffd5b505af1158015610112573d5f5f3e3d5ffd5b505050505050505061012861026760201b60201c565b60ff168360ff16101561014e576040516301e9714b60e41b815260040160405180910390fd5b6101596006846102cc565b61016490600a6103ce565b60a05250600891506101789050838261047b565b506009610185828261047b565b5050505050505061019b8161021860201b60201c565b50506080516001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff9190610535565b6001600160a01b031660c0525061054e9050565b601290565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b80516001600160a01b0381168114610282575f5ffd5b919050565b5f5f60408385031215610298575f5ffd5b6102a18361026c565b91506102af6020840161026c565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156102e5576102e56102b8565b92915050565b6001815b60018411156103265780850481111561030a5761030a6102b8565b600184161561031857908102905b60019390931c9280026102ef565b935093915050565b5f8261033c575060016102e5565b8161034857505f6102e5565b816001811461035e576002811461036857610384565b60019150506102e5565b60ff841115610379576103796102b8565b50506001821b6102e5565b5060208310610133831016604e8410600b84101617156103a7575081810a6102e5565b6103b35f1984846102eb565b805f19048211156103c6576103c66102b8565b029392505050565b5f6103dc60ff84168361032e565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061040b57607f821691505b60208210810361042957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561047657805f5260205f20601f840160051c810160208510156104545750805b601f840160051c820191505b81811015610473575f8155600101610460565b50505b505050565b81516001600160401b03811115610494576104946103e3565b6104a8816104a284546103f7565b8461042f565b6020601f8211600181146104da575f83156104c35750848201515b5f19600385901b1c1916600184901b178455610473565b5f84815260208120601f198516915b8281101561050957878501518255602094850194600190920191016104e9565b508482101561052657868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610545575f5ffd5b6103dc8261026c565b60805160a05160c0516134b86105d35f395f81816107540152818161218f01526121e101525f81816105a501528181611c6b01528181611cdd0152611dba01525f8181610478015281816109d50152818161109e015281816114870152818161193601528181611ef9015281816122040152818161223001526122e701526134b85ff3fe608060405260043610610201575f3560e01c806306fdde0314610205578063095ea7b31461022f5780630d35b4151461025e578063111ecdad1461028c57806313137d65146102b8578063134d4f25146102cd578063156a0d0f146102f457806317442b701461031a57806318160ddd1461033b5780631f5e13341461035957806323b872dd1461036d578063313ce5671461038c5780633400288b146103ad57806339509351146103cc5780633b6f743b146103eb57806352ae2879146104175780635535d461146104295780635a0dfe4d146104485780635e280f11146104675780636fc1b31e1461049a57806370a08231146104b9578063715018a6146104ed5780637d25a05e1461050157806382413eac1461053a578063857749b0146105595780638da5cb5b1461056c57806395d89b4114610580578063963efcaa146105945780639f68b964146105c7578063a457c2d7146105d9578063a9059cbb146105f8578063b731ea0a14610617578063b98bd07014610636578063bb0b6a5314610655578063bc70b35414610680578063bd815db01461069f578063c7c7f5b3146106b2578063ca5eb5e1146106d3578063d045a0dc146106f2578063d424388514610705578063dd62ed3e14610724578063e1758bd814610743578063f2fde38b14610776578063fc0c546a14610417578063ff7bd03d14610795575b5f5ffd5b348015610210575f5ffd5b506102196107b4565b60405161022691906125c3565b60405180910390f35b34801561023a575f5ffd5b5061024e6102493660046125e9565b610844565b6040519015158152602001610226565b348015610269575f5ffd5b5061027d610278366004612629565b61085d565b60405161022693929190612669565b348015610297575f5ffd5b506004546102ab906001600160a01b031681565b60405161022691906126f9565b6102cb6102c6366004612761565b6109d3565b005b3480156102d8575f5ffd5b506102e1600281565b60405161ffff9091168152602001610226565b3480156102ff575f5ffd5b506040805162b9270b60e21b81526001602082015201610226565b348015610325575f5ffd5b5060408051600181526002602082015201610226565b348015610346575f5ffd5b506007545b604051908152602001610226565b348015610364575f5ffd5b506102e1600181565b348015610378575f5ffd5b5061024e6103873660046127fb565b610a8b565b348015610397575f5ffd5b5060125b60405160ff9091168152602001610226565b3480156103b8575f5ffd5b506102cb6103c7366004612851565b610ab0565b3480156103d7575f5ffd5b5061024e6103e63660046125e9565b610ac6565b3480156103f6575f5ffd5b5061040a610405366004612878565b610ae7565b60405161022691906128c6565b348015610422575f5ffd5b50306102ab565b348015610434575f5ffd5b506102196104433660046128e5565b610b40565b348015610453575f5ffd5b5061024e610462366004612851565b610be2565b348015610472575f5ffd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a5575f5ffd5b506102cb6104b4366004612916565b610bfd565b3480156104c4575f5ffd5b5061034b6104d3366004612916565b6001600160a01b03165f9081526005602052604090205490565b3480156104f8575f5ffd5b506102cb610c5b565b34801561050c575f5ffd5b5061052261051b366004612851565b5f92915050565b6040516001600160401b039091168152602001610226565b348015610545575f5ffd5b5061024e610554366004612931565b610c6e565b348015610564575f5ffd5b50600661039b565b348015610577575f5ffd5b506102ab610c83565b34801561058b575f5ffd5b50610219610c91565b34801561059f575f5ffd5b5061034b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d2575f5ffd5b505f61024e565b3480156105e4575f5ffd5b5061024e6105f33660046125e9565b610ca0565b348015610603575f5ffd5b5061024e6106123660046125e9565b610d25565b348015610622575f5ffd5b506002546102ab906001600160a01b031681565b348015610641575f5ffd5b506102cb6106503660046129d3565b610d32565b348015610660575f5ffd5b5061034b61066f366004612a11565b60016020525f908152604090205481565b34801561068b575f5ffd5b5061021961069a366004612a2a565b610d4c565b6102cb6106ad3660046129d3565b610eed565b6106c56106c0366004612a86565b611057565b604051610226929190612aee565b3480156106de575f5ffd5b506102cb6106ed366004612916565b61107f565b6102cb610700366004612761565b611103565b348015610710575f5ffd5b506102cb61071f366004612916565b611132565b34801561072f575f5ffd5b5061034b61073e366004612b2a565b611185565b34801561074e575f5ffd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b348015610781575f5ffd5b506102cb610790366004612916565b6111af565b3480156107a0575f5ffd5b5061024e6107af366004612b56565b611228565b6060600880546107c390612b70565b80601f01602080910402602001604051908101604052809291908181526020018280546107ef90612b70565b801561083a5780601f106108115761010080835404028352916020019161083a565b820191905f5260205f20905b81548152906001019060200180831161081d57829003601f168201915b5050505050905090565b5f3361085181858561125c565b60019150505b92915050565b604080518082019091525f8082526020820152606061087a61253b565b5f5f90505f306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190612ba2565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093e9190612bbd565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610991565b604080518082019091525f81526060602082015281526020019060019003908161096a5790505b5093505f806109b5604089013560608a01356109b060208c018c612a11565b61137f565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a2757336040516391ac5e4f60e01b8152600401610a1e91906126f9565b60405180910390fd5b60208701803590610a4190610a3c908a612a11565b6113ba565b14610a7357610a536020880188612a11565b876020013560405163309afaf360e21b8152600401610a1e929190612be8565b610a82878787878787876113f5565b50505050505050565b5f33610a9885828561154c565b610aa38585856115c4565b60019150505b9392505050565b610ab861175a565b610ac282826117b9565b5050565b5f33610851818585610ad88383611185565b610ae29190612c12565b61125c565b610aef61253b565b5f610b0a604085013560608601356109b06020880188612a11565b9150505f5f610b19868461180e565b9092509050610b36610b2e6020880188612a11565b83838861192c565b9695505050505050565b600360209081525f928352604080842090915290825290208054610b6390612b70565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8f90612b70565b8015610bda5780601f10610bb157610100808354040283529160200191610bda565b820191905f5260205f20905b815481529060010190602001808311610bbd57829003601f168201915b505050505081565b63ffffffff919091165f908152600160205260409020541490565b610c0561175a565b600480546001600160a01b0319166001600160a01b0383161790556040517ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d441419790610c509083906126f9565b60405180910390a150565b610c6361175a565b610c6c5f6119ff565b565b6001600160a01b03811630145b949350505050565b5f546001600160a01b031690565b6060600980546107c390612b70565b5f3381610cad8286611185565b905083811015610d0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a1e565b610d1a828686840361125c565b506001949350505050565b5f336108518185856115c4565b610d3a61175a565b610ac2610d478284612cc5565b611a4e565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610d7f90612b70565b80601f0160208091040260200160405190810160405280929190818152602001828054610dab90612b70565b8015610df65780601f10610dcd57610100808354040283529160200191610df6565b820191905f5260205f20905b815481529060010190602001808311610dd957829003601f168201915b5050505050905080515f03610e445783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610c7b9350505050565b5f839003610e53579050610c7b565b60028310610ed057610e9984848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b4f92505050565b80610ea78460028188612de6565b604051602001610eb993929190612e0d565b604051602081830303815290604052915050610c7b565b8383604051639a6d49cd60e01b8152600401610a1e929190612e5b565b5f5b81811015610fda5736838383818110610f0a57610f0a612e6e565b9050602002810190610f1c9190612e82565b9050610f38610f2e6020830183612a11565b6020830135610be2565b610f425750610fd2565b3063d045a0dc60c08301358360a0810135610f61610100830183612ea1565b610f72610100890160e08a01612916565b610f806101208a018a612ea1565b6040518963ffffffff1660e01b8152600401610fa29796959493929190612ef7565b5f604051808303818588803b158015610fb9575f5ffd5b505af1158015610fcb573d5f5f3e3d5ffd5b5050505050505b600101610eef565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611016573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261103d9190810190612f7c565b604051638351eea760e01b8152600401610a1e91906125c3565b61105f612553565b61106761253b565b611072858585611b7b565b915091505b935093915050565b61108761175a565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906110d39084906004016126f9565b5f604051808303815f87803b1580156110ea575f5ffd5b505af11580156110fc573d5f5f3e3d5ffd5b5050505050565b3330146111235760405163029a949d60e31b815260040160405180910390fd5b610a8287878787878787610a73565b61113a61175a565b600280546001600160a01b0319166001600160a01b0383161790556040517fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090610c509083906126f9565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b6111b761175a565b6001600160a01b03811661121c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a1e565b611225816119ff565b50565b5f60208201803590600190839061123f9086612a11565b63ffffffff16815260208101919091526040015f20541492915050565b6001600160a01b0383166112be5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a1e565b6001600160a01b03821661131f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a1e565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5f61138a85611c68565b915081905083811015611077576040516371c4efed60e01b81526004810182905260248101859052604401610a1e565b63ffffffff81165f90815260016020526040812054806108575760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a1e565b5f6114066114038787611c9e565b90565b90505f6114318261141f61141a8a8a611cb5565b611cd7565b61142c60208d018d612a11565b611d0b565b905060288611156114f1575f61146d61145060608c0160408d01612fe4565b61145d60208d018d612a11565b846114688c8c611d32565b611d7c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114c29086908d905f908790600401612fff565b5f604051808303815f87803b1580156114d9575f5ffd5b505af11580156114eb573d5f5f3e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61152a60208d018d612a11565b84604051611539929190612be8565b60405180910390a3505050505050505050565b5f6115578484611185565b90505f1981146115be57818110156115b15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a1e565b6115be848484840361125c565b50505050565b6001600160a01b0383166116285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a1e565b6001600160a01b03821661168a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a1e565b6001600160a01b0383165f90815260056020526040902054818110156117015760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a1e565b6001600160a01b038085165f8181526005602052604080822086860390559286168082529083902080548601905591515f5160206134635f395f51905f529061174d9086815260200190565b60405180910390a36115be565b33611763610c83565b6001600160a01b031614610c6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a1e565b63ffffffff82165f9081526001602052604090819020829055517f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906118029084908490612be8565b60405180910390a15050565b6060805f611869856020013561182386611db3565b61183060a0890189612ea1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611e0c92505050565b90935090505f8161187b57600161187e565b60025b905061189e6118906020880188612a11565b8261069a60808a018a612ea1565b6004549093506001600160a01b031680156119225760405163043a78eb60e01b81526001600160a01b0382169063043a78eb906118e1908890889060040161302f565b602060405180830381865afa1580156118fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119209190613053565b505b5050509250929050565b61193461253b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611983896113ba565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016119b892919061306e565b6040805180830381865afa1580156119d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f69190613115565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611b1f57611a7f828281518110611a6e57611a6e612e6e565b602002602001015160400151611b4f565b818181518110611a9157611a91612e6e565b60200260200101516040015160035f848481518110611ab257611ab2612e6e565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611ae957611ae9612e6e565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611b169190613173565b50600101611a50565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c50919061322d565b600281015161ffff8116600314610ac25781604051639a6d49cd60e01b8152600401610a1e91906125c3565b611b83612553565b611b8b61253b565b5f80611bad33604089013560608a0135611ba860208c018c612a11565b611e86565b915091505f5f611bbd898461180e565b9092509050611be9611bd260208b018b612a11565b8383611be3368d90038d018d6132bb565b8b611eab565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611c37908d018d612a11565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611c9481846132ec565b610857919061330b565b5f611cac6020828486612de6565b610aa991613322565b5f611cc4602860208486612de6565b611ccd9161333f565b60c01c9392505050565b5f6108577f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661330b565b5f6001600160a01b038416611d205761dead93505b611d2a8484611fc1565b509092915050565b6060611d418260288186612de6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611d959493929190613377565b6040516020818303038152906040529050949350505050565b505050565b5f80611ddf7f0000000000000000000000000000000000000000000000000000000000000000846132ec565b90506001600160401b038111156108575760405163e2ce941360e01b815260048101829052602401610a1e565b8051606090151580611e55578484604051602001611e4192919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611e7c565b84843385604051602001611e6c94939291906133c8565b6040516020818303038152906040525b9150935093915050565b5f5f611e9385858561137f565b9092509050611ea2868361206d565b94509492505050565b611eb3612553565b3415611ed457604051637693b46f60e01b8152346004820152602401610a1e565b8251611edf9061218c565b50602083015115611ef757611ef7836020015161222d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a4506040518060a001604052808963ffffffff168152602001611f468a6113ba565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b8152600401611f8192919061306e565b6080604051808303815f875af1158015611f9d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190613407565b6001600160a01b0382166120175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a1e565b8060075f8282546120289190612c12565b90915550506001600160a01b0382165f818152600560209081526040808320805486019055518481525f5160206134635f395f51905f52910160405180910390a35050565b6001600160a01b0382166120cd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a1e565b6001600160a01b0382165f90815260056020526040902054818110156121405760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a1e565b6001600160a01b0383165f8181526005602090815260408083208686039055600780548790039055518581529192915f5160206134635f395f51905f52910160405180910390a3505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121d457604051638dce522760e01b815260040160405180910390fd5b6122296001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085612308565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ae9190612ba2565b90506001600160a01b0381166122d7576040516329b99a9560e11b815260040160405180910390fd5b610ac26001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000855b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092018352602080830180516001600160e01b03166323b872dd60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526115be928792915f9161239f91851690849061241e565b905080515f14806123bf5750808060200190518101906123bf9190613053565b611dae5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a1e565b6060610c7b84845f85855f5f866001600160a01b031685876040516124439190613451565b5f6040518083038185875af1925050503d805f811461247d576040519150601f19603f3d011682016040523d82523d5f602084013e612482565b606091505b50915091506124938783838761249e565b979650505050505050565b6060831561250c5782515f03612505576001600160a01b0385163b6125055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a1e565b5081610c7b565b610c7b83838151156125215781518083602001fd5b8060405162461bcd60e51b8152600401610a1e91906125c3565b60405180604001604052805f81526020015f81525090565b604080516060810182525f808252602082015290810161257161253b565b905290565b5f5b83811015612590578181015183820152602001612578565b50505f910152565b5f81518084526125af816020860160208601612576565b601f01601f19169290920160200192915050565b602081525f610aa96020830184612598565b6001600160a01b0381168114611225575f5ffd5b5f5f604083850312156125fa575f5ffd5b8235612605816125d5565b946020939093013593505050565b5f60e08284031215612623575f5ffd5b50919050565b5f60208284031215612639575f5ffd5b81356001600160401b0381111561264e575f5ffd5b610c7b84828501612613565b80518252602090810151910152565b5f60a08201612678838761265a565b60a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b828110156126e45760bf1987860301845281518051865260208101519050604060208701526126ce6040870182612598565b955050602093840193919091019060010161269c565b5050505080915050610c7b606083018461265a565b6001600160a01b0391909116815260200190565b5f60608284031215612623575f5ffd5b5f5f83601f84011261272d575f5ffd5b5081356001600160401b03811115612743575f5ffd5b60208301915083602082850101111561275a575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a031215612777575f5ffd5b612781898961270d565b96506060880135955060808801356001600160401b038111156127a2575f5ffd5b6127ae8a828b0161271d565b90965094505060a08801356127c2816125d5565b925060c08801356001600160401b038111156127dc575f5ffd5b6127e88a828b0161271d565b989b979a50959850939692959293505050565b5f5f5f6060848603121561280d575f5ffd5b8335612818816125d5565b92506020840135612828816125d5565b929592945050506040919091013590565b803563ffffffff8116811461284c575f5ffd5b919050565b5f5f60408385031215612862575f5ffd5b61260583612839565b8015158114611225575f5ffd5b5f5f60408385031215612889575f5ffd5b82356001600160401b0381111561289e575f5ffd5b6128aa85828601612613565b92505060208301356128bb8161286b565b809150509250929050565b60408101610857828461265a565b803561ffff8116811461284c575f5ffd5b5f5f604083850312156128f6575f5ffd5b6128ff83612839565b915061290d602084016128d4565b90509250929050565b5f60208284031215612926575f5ffd5b8135610aa9816125d5565b5f5f5f5f60a08587031215612944575f5ffd5b61294e868661270d565b935060608501356001600160401b03811115612968575f5ffd5b6129748782880161271d565b9094509250506080850135612988816125d5565b939692955090935050565b5f5f83601f8401126129a3575f5ffd5b5081356001600160401b038111156129b9575f5ffd5b6020830191508360208260051b850101111561275a575f5ffd5b5f5f602083850312156129e4575f5ffd5b82356001600160401b038111156129f9575f5ffd5b612a0585828601612993565b90969095509350505050565b5f60208284031215612a21575f5ffd5b610aa982612839565b5f5f5f5f60608587031215612a3d575f5ffd5b612a4685612839565b9350612a54602086016128d4565b925060408501356001600160401b03811115612a6e575f5ffd5b612a7a8782880161271d565b95989497509550505050565b5f5f5f8385036080811215612a99575f5ffd5b84356001600160401b03811115612aae575f5ffd5b612aba87828801612613565b9450506040601f1982011215612ace575f5ffd5b506020840191506060840135612ae3816125d5565b809150509250925092565b825181526020808401516001600160401b03169082015260408084015160c0830191612b1c9084018261265a565b50610aa9608083018461265a565b5f5f60408385031215612b3b575f5ffd5b8235612b46816125d5565b915060208301356128bb816125d5565b5f60608284031215612b66575f5ffd5b610aa9838361270d565b600181811c90821680612b8457607f821691505b60208210810361262357634e487b7160e01b5f52602260045260245ffd5b5f60208284031215612bb2575f5ffd5b8151610aa9816125d5565b5f60208284031215612bcd575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b63ffffffff929092168252602082015260400190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561085757610857612bfe565b604051606081016001600160401b0381118282101715612c4757612c47612bd4565b60405290565b604080519081016001600160401b0381118282101715612c4757612c47612bd4565b604051601f8201601f191681016001600160401b0381118282101715612c9757612c97612bd4565b604052919050565b5f6001600160401b03821115612cb757612cb7612bd4565b50601f01601f191660200190565b5f6001600160401b03831115612cdd57612cdd612bd4565b8260051b612ced60208201612c6f565b84815290830190602081019036831115612d05575f5ffd5b845b83811015612ddc5780356001600160401b03811115612d24575f5ffd5b86016060368290031215612d36575f5ffd5b612d3e612c25565b612d4782612839565b8152612d55602083016128d4565b602082015260408201356001600160401b03811115612d72575f5ffd5b919091019036601f830112612d85575f5ffd5b8135612d98612d9382612c9f565b612c6f565b818152366020838601011115612dac575f5ffd5b816020850160208301375f6020838301015280604084015250508085525050602083019250602081019050612d07565b5095945050505050565b5f5f85851115612df4575f5ffd5b83861115612e00575f5ffd5b5050820193919092039150565b5f8451612e1e818460208901612576565b8201838582375f930192835250909392505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610c7b602083018486612e33565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e19833603018112612e97575f5ffd5b9190910192915050565b5f5f8335601e19843603018112612eb6575f5ffd5b8301803591506001600160401b03821115612ecf575f5ffd5b60200191503681900382131561275a575f5ffd5b6001600160401b0381168114611225575f5ffd5b63ffffffff612f0589612839565b168152602088810135908201525f6040890135612f2181612ee3565b6001600160401b031660408301526060820188905260e060808301819052612f4c9083018789612e33565b6001600160a01b03861660a084015282810360c0840152612f6e818587612e33565b9a9950505050505050505050565b5f60208284031215612f8c575f5ffd5b81516001600160401b03811115612fa1575f5ffd5b8201601f81018413612fb1575f5ffd5b8051612fbf612d9382612c9f565b818152856020838501011115612fd3575f5ffd5b6119f6826020830160208601612576565b5f60208284031215612ff4575f5ffd5b8135610aa981612ee3565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610b366080830184612598565b604081525f6130416040830185612598565b82810360208401526119f68185612598565b5f60208284031215613063575f5ffd5b8151610aa98161286b565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a060808401526130a360e0840182612598565b90506060850151603f198483030160a08501526130c08282612598565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f604082840312156130f6575f5ffd5b6130fe612c4d565b825181526020928301519281019290925250919050565b5f60408284031215613125575f5ffd5b610aa983836130e6565b601f821115611dae57805f5260205f20601f840160051c810160208510156131545750805b601f840160051c820191505b818110156110fc575f8155600101613160565b81516001600160401b0381111561318c5761318c612bd4565b6131a08161319a8454612b70565b8461312f565b6020601f8211600181146131d2575f83156131bb5750848201515b5f19600385901b1c1916600184901b1784556110fc565b5f84815260208120601f198516915b8281101561320157878501518255602094850194600190920191016131e1565b508482101561321e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156132af57603f19878603018452815163ffffffff815116865261ffff602082015116602087015260408101519050606060408701526132996060870182612598565b9550506020938401939190910190600101613253565b50929695505050505050565b5f60408284031280156132cc575f5ffd5b506132d5612c4d565b823581526020928301359281019290925250919050565b5f8261330657634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761085757610857612bfe565b80356020831015610857575f19602084900360031b1b1692915050565b80356001600160c01b03198116906008841015613370576001600160c01b0319600885900360031b81901b82161691505b5092915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c810183905281515f906133b881602c850160208701612576565b91909101602c0195945050505050565b84815260018060c01b03198460c01b1660208201528260288201525f82516133f7816048850160208701612576565b9190910160480195945050505050565b5f6080828403128015613418575f5ffd5b50613421612c25565b82518152602083015161343381612ee3565b602082015261344584604085016130e6565b60408201529392505050565b5f8251612e9781846020870161257656feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220477b70cd2a9a2dc4aa92e2c53e0f61c1d407961a25908614fc2dfeb12df4aa4664736f6c634300081e0033",
1567
+ "deployedBytecode": "0x608060405260043610610201575f3560e01c806306fdde0314610205578063095ea7b31461022f5780630d35b4151461025e578063111ecdad1461028c57806313137d65146102b8578063134d4f25146102cd578063156a0d0f146102f457806317442b701461031a57806318160ddd1461033b5780631f5e13341461035957806323b872dd1461036d578063313ce5671461038c5780633400288b146103ad57806339509351146103cc5780633b6f743b146103eb57806352ae2879146104175780635535d461146104295780635a0dfe4d146104485780635e280f11146104675780636fc1b31e1461049a57806370a08231146104b9578063715018a6146104ed5780637d25a05e1461050157806382413eac1461053a578063857749b0146105595780638da5cb5b1461056c57806395d89b4114610580578063963efcaa146105945780639f68b964146105c7578063a457c2d7146105d9578063a9059cbb146105f8578063b731ea0a14610617578063b98bd07014610636578063bb0b6a5314610655578063bc70b35414610680578063bd815db01461069f578063c7c7f5b3146106b2578063ca5eb5e1146106d3578063d045a0dc146106f2578063d424388514610705578063dd62ed3e14610724578063e1758bd814610743578063f2fde38b14610776578063fc0c546a14610417578063ff7bd03d14610795575b5f5ffd5b348015610210575f5ffd5b506102196107b4565b60405161022691906125c3565b60405180910390f35b34801561023a575f5ffd5b5061024e6102493660046125e9565b610844565b6040519015158152602001610226565b348015610269575f5ffd5b5061027d610278366004612629565b61085d565b60405161022693929190612669565b348015610297575f5ffd5b506004546102ab906001600160a01b031681565b60405161022691906126f9565b6102cb6102c6366004612761565b6109d3565b005b3480156102d8575f5ffd5b506102e1600281565b60405161ffff9091168152602001610226565b3480156102ff575f5ffd5b506040805162b9270b60e21b81526001602082015201610226565b348015610325575f5ffd5b5060408051600181526002602082015201610226565b348015610346575f5ffd5b506007545b604051908152602001610226565b348015610364575f5ffd5b506102e1600181565b348015610378575f5ffd5b5061024e6103873660046127fb565b610a8b565b348015610397575f5ffd5b5060125b60405160ff9091168152602001610226565b3480156103b8575f5ffd5b506102cb6103c7366004612851565b610ab0565b3480156103d7575f5ffd5b5061024e6103e63660046125e9565b610ac6565b3480156103f6575f5ffd5b5061040a610405366004612878565b610ae7565b60405161022691906128c6565b348015610422575f5ffd5b50306102ab565b348015610434575f5ffd5b506102196104433660046128e5565b610b40565b348015610453575f5ffd5b5061024e610462366004612851565b610be2565b348015610472575f5ffd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a5575f5ffd5b506102cb6104b4366004612916565b610bfd565b3480156104c4575f5ffd5b5061034b6104d3366004612916565b6001600160a01b03165f9081526005602052604090205490565b3480156104f8575f5ffd5b506102cb610c5b565b34801561050c575f5ffd5b5061052261051b366004612851565b5f92915050565b6040516001600160401b039091168152602001610226565b348015610545575f5ffd5b5061024e610554366004612931565b610c6e565b348015610564575f5ffd5b50600661039b565b348015610577575f5ffd5b506102ab610c83565b34801561058b575f5ffd5b50610219610c91565b34801561059f575f5ffd5b5061034b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d2575f5ffd5b505f61024e565b3480156105e4575f5ffd5b5061024e6105f33660046125e9565b610ca0565b348015610603575f5ffd5b5061024e6106123660046125e9565b610d25565b348015610622575f5ffd5b506002546102ab906001600160a01b031681565b348015610641575f5ffd5b506102cb6106503660046129d3565b610d32565b348015610660575f5ffd5b5061034b61066f366004612a11565b60016020525f908152604090205481565b34801561068b575f5ffd5b5061021961069a366004612a2a565b610d4c565b6102cb6106ad3660046129d3565b610eed565b6106c56106c0366004612a86565b611057565b604051610226929190612aee565b3480156106de575f5ffd5b506102cb6106ed366004612916565b61107f565b6102cb610700366004612761565b611103565b348015610710575f5ffd5b506102cb61071f366004612916565b611132565b34801561072f575f5ffd5b5061034b61073e366004612b2a565b611185565b34801561074e575f5ffd5b506102ab7f000000000000000000000000000000000000000000000000000000000000000081565b348015610781575f5ffd5b506102cb610790366004612916565b6111af565b3480156107a0575f5ffd5b5061024e6107af366004612b56565b611228565b6060600880546107c390612b70565b80601f01602080910402602001604051908101604052809291908181526020018280546107ef90612b70565b801561083a5780601f106108115761010080835404028352916020019161083a565b820191905f5260205f20905b81548152906001019060200180831161081d57829003601f168201915b5050505050905090565b5f3361085181858561125c565b60019150505b92915050565b604080518082019091525f8082526020820152606061087a61253b565b5f5f90505f306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190612ba2565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093e9190612bbd565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610991565b604080518082019091525f81526060602082015281526020019060019003908161096a5790505b5093505f806109b5604089013560608a01356109b060208c018c612a11565b61137f565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a2757336040516391ac5e4f60e01b8152600401610a1e91906126f9565b60405180910390fd5b60208701803590610a4190610a3c908a612a11565b6113ba565b14610a7357610a536020880188612a11565b876020013560405163309afaf360e21b8152600401610a1e929190612be8565b610a82878787878787876113f5565b50505050505050565b5f33610a9885828561154c565b610aa38585856115c4565b60019150505b9392505050565b610ab861175a565b610ac282826117b9565b5050565b5f33610851818585610ad88383611185565b610ae29190612c12565b61125c565b610aef61253b565b5f610b0a604085013560608601356109b06020880188612a11565b9150505f5f610b19868461180e565b9092509050610b36610b2e6020880188612a11565b83838861192c565b9695505050505050565b600360209081525f928352604080842090915290825290208054610b6390612b70565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8f90612b70565b8015610bda5780601f10610bb157610100808354040283529160200191610bda565b820191905f5260205f20905b815481529060010190602001808311610bbd57829003601f168201915b505050505081565b63ffffffff919091165f908152600160205260409020541490565b610c0561175a565b600480546001600160a01b0319166001600160a01b0383161790556040517ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d441419790610c509083906126f9565b60405180910390a150565b610c6361175a565b610c6c5f6119ff565b565b6001600160a01b03811630145b949350505050565b5f546001600160a01b031690565b6060600980546107c390612b70565b5f3381610cad8286611185565b905083811015610d0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a1e565b610d1a828686840361125c565b506001949350505050565b5f336108518185856115c4565b610d3a61175a565b610ac2610d478284612cc5565b611a4e565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610d7f90612b70565b80601f0160208091040260200160405190810160405280929190818152602001828054610dab90612b70565b8015610df65780601f10610dcd57610100808354040283529160200191610df6565b820191905f5260205f20905b815481529060010190602001808311610dd957829003601f168201915b5050505050905080515f03610e445783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610c7b9350505050565b5f839003610e53579050610c7b565b60028310610ed057610e9984848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b4f92505050565b80610ea78460028188612de6565b604051602001610eb993929190612e0d565b604051602081830303815290604052915050610c7b565b8383604051639a6d49cd60e01b8152600401610a1e929190612e5b565b5f5b81811015610fda5736838383818110610f0a57610f0a612e6e565b9050602002810190610f1c9190612e82565b9050610f38610f2e6020830183612a11565b6020830135610be2565b610f425750610fd2565b3063d045a0dc60c08301358360a0810135610f61610100830183612ea1565b610f72610100890160e08a01612916565b610f806101208a018a612ea1565b6040518963ffffffff1660e01b8152600401610fa29796959493929190612ef7565b5f604051808303818588803b158015610fb9575f5ffd5b505af1158015610fcb573d5f5f3e3d5ffd5b5050505050505b600101610eef565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611016573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261103d9190810190612f7c565b604051638351eea760e01b8152600401610a1e91906125c3565b61105f612553565b61106761253b565b611072858585611b7b565b915091505b935093915050565b61108761175a565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906110d39084906004016126f9565b5f604051808303815f87803b1580156110ea575f5ffd5b505af11580156110fc573d5f5f3e3d5ffd5b5050505050565b3330146111235760405163029a949d60e31b815260040160405180910390fd5b610a8287878787878787610a73565b61113a61175a565b600280546001600160a01b0319166001600160a01b0383161790556040517fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090610c509083906126f9565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b6111b761175a565b6001600160a01b03811661121c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a1e565b611225816119ff565b50565b5f60208201803590600190839061123f9086612a11565b63ffffffff16815260208101919091526040015f20541492915050565b6001600160a01b0383166112be5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a1e565b6001600160a01b03821661131f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a1e565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5f61138a85611c68565b915081905083811015611077576040516371c4efed60e01b81526004810182905260248101859052604401610a1e565b63ffffffff81165f90815260016020526040812054806108575760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a1e565b5f6114066114038787611c9e565b90565b90505f6114318261141f61141a8a8a611cb5565b611cd7565b61142c60208d018d612a11565b611d0b565b905060288611156114f1575f61146d61145060608c0160408d01612fe4565b61145d60208d018d612a11565b846114688c8c611d32565b611d7c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114c29086908d905f908790600401612fff565b5f604051808303815f87803b1580156114d9575f5ffd5b505af11580156114eb573d5f5f3e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61152a60208d018d612a11565b84604051611539929190612be8565b60405180910390a3505050505050505050565b5f6115578484611185565b90505f1981146115be57818110156115b15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a1e565b6115be848484840361125c565b50505050565b6001600160a01b0383166116285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a1e565b6001600160a01b03821661168a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a1e565b6001600160a01b0383165f90815260056020526040902054818110156117015760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a1e565b6001600160a01b038085165f8181526005602052604080822086860390559286168082529083902080548601905591515f5160206134635f395f51905f529061174d9086815260200190565b60405180910390a36115be565b33611763610c83565b6001600160a01b031614610c6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a1e565b63ffffffff82165f9081526001602052604090819020829055517f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906118029084908490612be8565b60405180910390a15050565b6060805f611869856020013561182386611db3565b61183060a0890189612ea1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611e0c92505050565b90935090505f8161187b57600161187e565b60025b905061189e6118906020880188612a11565b8261069a60808a018a612ea1565b6004549093506001600160a01b031680156119225760405163043a78eb60e01b81526001600160a01b0382169063043a78eb906118e1908890889060040161302f565b602060405180830381865afa1580156118fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119209190613053565b505b5050509250929050565b61193461253b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611983896113ba565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016119b892919061306e565b6040805180830381865afa1580156119d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f69190613115565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611b1f57611a7f828281518110611a6e57611a6e612e6e565b602002602001015160400151611b4f565b818181518110611a9157611a91612e6e565b60200260200101516040015160035f848481518110611ab257611ab2612e6e565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611ae957611ae9612e6e565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611b169190613173565b50600101611a50565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c50919061322d565b600281015161ffff8116600314610ac25781604051639a6d49cd60e01b8152600401610a1e91906125c3565b611b83612553565b611b8b61253b565b5f80611bad33604089013560608a0135611ba860208c018c612a11565b611e86565b915091505f5f611bbd898461180e565b9092509050611be9611bd260208b018b612a11565b8383611be3368d90038d018d6132bb565b8b611eab565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611c37908d018d612a11565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611c9481846132ec565b610857919061330b565b5f611cac6020828486612de6565b610aa991613322565b5f611cc4602860208486612de6565b611ccd9161333f565b60c01c9392505050565b5f6108577f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661330b565b5f6001600160a01b038416611d205761dead93505b611d2a8484611fc1565b509092915050565b6060611d418260288186612de6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611d959493929190613377565b6040516020818303038152906040529050949350505050565b505050565b5f80611ddf7f0000000000000000000000000000000000000000000000000000000000000000846132ec565b90506001600160401b038111156108575760405163e2ce941360e01b815260048101829052602401610a1e565b8051606090151580611e55578484604051602001611e4192919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611e7c565b84843385604051602001611e6c94939291906133c8565b6040516020818303038152906040525b9150935093915050565b5f5f611e9385858561137f565b9092509050611ea2868361206d565b94509492505050565b611eb3612553565b3415611ed457604051637693b46f60e01b8152346004820152602401610a1e565b8251611edf9061218c565b50602083015115611ef757611ef7836020015161222d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a4506040518060a001604052808963ffffffff168152602001611f468a6113ba565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b8152600401611f8192919061306e565b6080604051808303815f875af1158015611f9d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190613407565b6001600160a01b0382166120175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a1e565b8060075f8282546120289190612c12565b90915550506001600160a01b0382165f818152600560209081526040808320805486019055518481525f5160206134635f395f51905f52910160405180910390a35050565b6001600160a01b0382166120cd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a1e565b6001600160a01b0382165f90815260056020526040902054818110156121405760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a1e565b6001600160a01b0383165f8181526005602090815260408083208686039055600780548790039055518581529192915f5160206134635f395f51905f52910160405180910390a3505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121d457604051638dce522760e01b815260040160405180910390fd5b6122296001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085612308565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ae9190612ba2565b90506001600160a01b0381166122d7576040516329b99a9560e11b815260040160405180910390fd5b610ac26001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000855b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092018352602080830180516001600160e01b03166323b872dd60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526115be928792915f9161239f91851690849061241e565b905080515f14806123bf5750808060200190518101906123bf9190613053565b611dae5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a1e565b6060610c7b84845f85855f5f866001600160a01b031685876040516124439190613451565b5f6040518083038185875af1925050503d805f811461247d576040519150601f19603f3d011682016040523d82523d5f602084013e612482565b606091505b50915091506124938783838761249e565b979650505050505050565b6060831561250c5782515f03612505576001600160a01b0385163b6125055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a1e565b5081610c7b565b610c7b83838151156125215781518083602001fd5b8060405162461bcd60e51b8152600401610a1e91906125c3565b60405180604001604052805f81526020015f81525090565b604080516060810182525f808252602082015290810161257161253b565b905290565b5f5b83811015612590578181015183820152602001612578565b50505f910152565b5f81518084526125af816020860160208601612576565b601f01601f19169290920160200192915050565b602081525f610aa96020830184612598565b6001600160a01b0381168114611225575f5ffd5b5f5f604083850312156125fa575f5ffd5b8235612605816125d5565b946020939093013593505050565b5f60e08284031215612623575f5ffd5b50919050565b5f60208284031215612639575f5ffd5b81356001600160401b0381111561264e575f5ffd5b610c7b84828501612613565b80518252602090810151910152565b5f60a08201612678838761265a565b60a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b828110156126e45760bf1987860301845281518051865260208101519050604060208701526126ce6040870182612598565b955050602093840193919091019060010161269c565b5050505080915050610c7b606083018461265a565b6001600160a01b0391909116815260200190565b5f60608284031215612623575f5ffd5b5f5f83601f84011261272d575f5ffd5b5081356001600160401b03811115612743575f5ffd5b60208301915083602082850101111561275a575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a031215612777575f5ffd5b612781898961270d565b96506060880135955060808801356001600160401b038111156127a2575f5ffd5b6127ae8a828b0161271d565b90965094505060a08801356127c2816125d5565b925060c08801356001600160401b038111156127dc575f5ffd5b6127e88a828b0161271d565b989b979a50959850939692959293505050565b5f5f5f6060848603121561280d575f5ffd5b8335612818816125d5565b92506020840135612828816125d5565b929592945050506040919091013590565b803563ffffffff8116811461284c575f5ffd5b919050565b5f5f60408385031215612862575f5ffd5b61260583612839565b8015158114611225575f5ffd5b5f5f60408385031215612889575f5ffd5b82356001600160401b0381111561289e575f5ffd5b6128aa85828601612613565b92505060208301356128bb8161286b565b809150509250929050565b60408101610857828461265a565b803561ffff8116811461284c575f5ffd5b5f5f604083850312156128f6575f5ffd5b6128ff83612839565b915061290d602084016128d4565b90509250929050565b5f60208284031215612926575f5ffd5b8135610aa9816125d5565b5f5f5f5f60a08587031215612944575f5ffd5b61294e868661270d565b935060608501356001600160401b03811115612968575f5ffd5b6129748782880161271d565b9094509250506080850135612988816125d5565b939692955090935050565b5f5f83601f8401126129a3575f5ffd5b5081356001600160401b038111156129b9575f5ffd5b6020830191508360208260051b850101111561275a575f5ffd5b5f5f602083850312156129e4575f5ffd5b82356001600160401b038111156129f9575f5ffd5b612a0585828601612993565b90969095509350505050565b5f60208284031215612a21575f5ffd5b610aa982612839565b5f5f5f5f60608587031215612a3d575f5ffd5b612a4685612839565b9350612a54602086016128d4565b925060408501356001600160401b03811115612a6e575f5ffd5b612a7a8782880161271d565b95989497509550505050565b5f5f5f8385036080811215612a99575f5ffd5b84356001600160401b03811115612aae575f5ffd5b612aba87828801612613565b9450506040601f1982011215612ace575f5ffd5b506020840191506060840135612ae3816125d5565b809150509250925092565b825181526020808401516001600160401b03169082015260408084015160c0830191612b1c9084018261265a565b50610aa9608083018461265a565b5f5f60408385031215612b3b575f5ffd5b8235612b46816125d5565b915060208301356128bb816125d5565b5f60608284031215612b66575f5ffd5b610aa9838361270d565b600181811c90821680612b8457607f821691505b60208210810361262357634e487b7160e01b5f52602260045260245ffd5b5f60208284031215612bb2575f5ffd5b8151610aa9816125d5565b5f60208284031215612bcd575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b63ffffffff929092168252602082015260400190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561085757610857612bfe565b604051606081016001600160401b0381118282101715612c4757612c47612bd4565b60405290565b604080519081016001600160401b0381118282101715612c4757612c47612bd4565b604051601f8201601f191681016001600160401b0381118282101715612c9757612c97612bd4565b604052919050565b5f6001600160401b03821115612cb757612cb7612bd4565b50601f01601f191660200190565b5f6001600160401b03831115612cdd57612cdd612bd4565b8260051b612ced60208201612c6f565b84815290830190602081019036831115612d05575f5ffd5b845b83811015612ddc5780356001600160401b03811115612d24575f5ffd5b86016060368290031215612d36575f5ffd5b612d3e612c25565b612d4782612839565b8152612d55602083016128d4565b602082015260408201356001600160401b03811115612d72575f5ffd5b919091019036601f830112612d85575f5ffd5b8135612d98612d9382612c9f565b612c6f565b818152366020838601011115612dac575f5ffd5b816020850160208301375f6020838301015280604084015250508085525050602083019250602081019050612d07565b5095945050505050565b5f5f85851115612df4575f5ffd5b83861115612e00575f5ffd5b5050820193919092039150565b5f8451612e1e818460208901612576565b8201838582375f930192835250909392505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610c7b602083018486612e33565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e19833603018112612e97575f5ffd5b9190910192915050565b5f5f8335601e19843603018112612eb6575f5ffd5b8301803591506001600160401b03821115612ecf575f5ffd5b60200191503681900382131561275a575f5ffd5b6001600160401b0381168114611225575f5ffd5b63ffffffff612f0589612839565b168152602088810135908201525f6040890135612f2181612ee3565b6001600160401b031660408301526060820188905260e060808301819052612f4c9083018789612e33565b6001600160a01b03861660a084015282810360c0840152612f6e818587612e33565b9a9950505050505050505050565b5f60208284031215612f8c575f5ffd5b81516001600160401b03811115612fa1575f5ffd5b8201601f81018413612fb1575f5ffd5b8051612fbf612d9382612c9f565b818152856020838501011115612fd3575f5ffd5b6119f6826020830160208601612576565b5f60208284031215612ff4575f5ffd5b8135610aa981612ee3565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610b366080830184612598565b604081525f6130416040830185612598565b82810360208401526119f68185612598565b5f60208284031215613063575f5ffd5b8151610aa98161286b565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a060808401526130a360e0840182612598565b90506060850151603f198483030160a08501526130c08282612598565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f604082840312156130f6575f5ffd5b6130fe612c4d565b825181526020928301519281019290925250919050565b5f60408284031215613125575f5ffd5b610aa983836130e6565b601f821115611dae57805f5260205f20601f840160051c810160208510156131545750805b601f840160051c820191505b818110156110fc575f8155600101613160565b81516001600160401b0381111561318c5761318c612bd4565b6131a08161319a8454612b70565b8461312f565b6020601f8211600181146131d2575f83156131bb5750848201515b5f19600385901b1c1916600184901b1784556110fc565b5f84815260208120601f198516915b8281101561320157878501518255602094850194600190920191016131e1565b508482101561321e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156132af57603f19878603018452815163ffffffff815116865261ffff602082015116602087015260408101519050606060408701526132996060870182612598565b9550506020938401939190910190600101613253565b50929695505050505050565b5f60408284031280156132cc575f5ffd5b506132d5612c4d565b823581526020928301359281019290925250919050565b5f8261330657634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761085757610857612bfe565b80356020831015610857575f19602084900360031b1b1692915050565b80356001600160c01b03198116906008841015613370576001600160c01b0319600885900360031b81901b82161691505b5092915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c810183905281515f906133b881602c850160208701612576565b91909101602c0195945050505050565b84815260018060c01b03198460c01b1660208201528260288201525f82516133f7816048850160208701612576565b9190910160480195945050505050565b5f6080828403128015613418575f5ffd5b50613421612c25565b82518152602083015161343381612ee3565b602082015261344584604085016130e6565b60408201529392505050565b5f8251612e9781846020870161257656feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220477b70cd2a9a2dc4aa92e2c53e0f61c1d407961a25908614fc2dfeb12df4aa4664736f6c634300081e0033",
1568
+ "linkReferences": {},
1569
+ "deployedLinkReferences": {}
1570
+ }