UNPKG

2.37 MBJSONView Raw
1{
2 "contracts": {
3 "contracts/Migration.sol:Migrations": {
4 "abi": [
5 {
6 "inputs": [],
7 "stateMutability": "nonpayable",
8 "type": "constructor"
9 },
10 {
11 "inputs": [],
12 "name": "last_completed_migration",
13 "outputs": [
14 {
15 "internalType": "uint256",
16 "name": "",
17 "type": "uint256"
18 }
19 ],
20 "stateMutability": "view",
21 "type": "function"
22 },
23 {
24 "inputs": [],
25 "name": "owner",
26 "outputs": [
27 {
28 "internalType": "address",
29 "name": "",
30 "type": "address"
31 }
32 ],
33 "stateMutability": "view",
34 "type": "function"
35 },
36 {
37 "inputs": [
38 {
39 "internalType": "uint256",
40 "name": "completed",
41 "type": "uint256"
42 }
43 ],
44 "name": "setCompleted",
45 "outputs": [],
46 "stateMutability": "nonpayable",
47 "type": "function"
48 }
49 ],
50 "evm": {
51 "bytecode": {
52 "linkReferences": {},
53 "object": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610124806100326000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd576146088575b600080fd5b604760a4565b60408051918252519081900360200190f35b605f60aa565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60a260048036036020811015609c57600080fd5b503560c6565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633141560eb5760018190555b5056fea2646970667358221220081551933b19cdb11cf87df591b344e80333fcb4d6ce41fb5d2e688f9aa3dc3464736f6c634300060c0033",
54 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x124 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH1 0x59 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH1 0x88 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0xA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x5F PUSH1 0xAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0xA2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0xC6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ ISZERO PUSH1 0xEB JUMPI PUSH1 0x1 DUP2 SWAP1 SSTORE JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD ISZERO MLOAD SWAP4 EXTCODESIZE NOT 0xCD 0xB1 SHR 0xF8 PUSH30 0xF591B344E80333FCB4D6CE41FB5D2E688F9AA3DC3464736F6C634300060C STOP CALLER ",
55 "sourceMap": "66:311:0:-:0;;;218:50;;;;;;;;;-1:-1:-1;245:5:0;:18;;-1:-1:-1;;;;;;245:18:0;253:10;245:18;;;66:311;;;;;;"
56 },
57 "deployedBytecode": {
58 "immutableReferences": {},
59 "linkReferences": {},
60 "object": "6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd576146088575b600080fd5b604760a4565b60408051918252519081900360200190f35b605f60aa565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60a260048036036020811015609c57600080fd5b503560c6565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633141560eb5760018190555b5056fea2646970667358221220081551933b19cdb11cf87df591b344e80333fcb4d6ce41fb5d2e688f9aa3dc3464736f6c634300060c0033",
61 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH1 0x59 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH1 0x88 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0xA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x5F PUSH1 0xAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0xA2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0xC6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ ISZERO PUSH1 0xEB JUMPI PUSH1 0x1 DUP2 SWAP1 SSTORE JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD ISZERO MLOAD SWAP4 EXTCODESIZE NOT 0xCD 0xB1 SHR 0xF8 PUSH30 0xF591B344E80333FCB4D6CE41FB5D2E688F9AA3DC3464736F6C634300060C STOP CALLER ",
62 "sourceMap": "66:311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:36;;;:::i;:::-;;;;;;;;;;;;;;;;90:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;272:103;;;;;;;;;;;;;;;;-1:-1:-1;272:103:0;;:::i;:::-;;114:36;;;;:::o;90:20::-;;;;;;:::o;272:103::-;201:5;;;;187:10;:19;183:26;;;334:24:::1;:36:::0;;;183:26;272:103;:::o"
63 }
64 },
65 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Migration.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/Migration.sol\":{\"keccak256\":\"0xebb7958379a84a832c5965cba4aa092ea1aea34821b156e5b490c5776991d8f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fa608812d4a65c503687a21d758f276ede61ca6fd0b1f2b035160212df131e5\",\"dweb:/ipfs/QmUMmxZBYYJbetswVpH1c8N2QFjMAwF9cp4MBLbBjzWAH5\"]}},\"version\":1}",
66 "interface": [
67 {
68 "inputs": [],
69 "stateMutability": "nonpayable",
70 "type": "constructor"
71 },
72 {
73 "inputs": [],
74 "name": "last_completed_migration",
75 "outputs": [
76 {
77 "internalType": "uint256",
78 "name": "",
79 "type": "uint256"
80 }
81 ],
82 "stateMutability": "view",
83 "type": "function"
84 },
85 {
86 "inputs": [],
87 "name": "owner",
88 "outputs": [
89 {
90 "internalType": "address",
91 "name": "",
92 "type": "address"
93 }
94 ],
95 "stateMutability": "view",
96 "type": "function"
97 },
98 {
99 "inputs": [
100 {
101 "internalType": "uint256",
102 "name": "completed",
103 "type": "uint256"
104 }
105 ],
106 "name": "setCompleted",
107 "outputs": [],
108 "stateMutability": "nonpayable",
109 "type": "function"
110 }
111 ],
112 "bytecode": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610124806100326000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd576146088575b600080fd5b604760a4565b60408051918252519081900360200190f35b605f60aa565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60a260048036036020811015609c57600080fd5b503560c6565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633141560eb5760018190555b5056fea2646970667358221220081551933b19cdb11cf87df591b344e80333fcb4d6ce41fb5d2e688f9aa3dc3464736f6c634300060c0033",
113 "bin": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610124806100326000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd576146088575b600080fd5b604760a4565b60408051918252519081900360200190f35b605f60aa565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60a260048036036020811015609c57600080fd5b503560c6565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633141560eb5760018190555b5056fea2646970667358221220081551933b19cdb11cf87df591b344e80333fcb4d6ce41fb5d2e688f9aa3dc3464736f6c634300060c0033",
114 "bin-runtime": "6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd576146088575b600080fd5b604760a4565b60408051918252519081900360200190f35b605f60aa565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60a260048036036020811015609c57600080fd5b503560c6565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633141560eb5760018190555b5056fea2646970667358221220081551933b19cdb11cf87df591b344e80333fcb4d6ce41fb5d2e688f9aa3dc3464736f6c634300060c0033",
115 "srcmap": "66:311:0:-:0;;;218:50;;;;;;;;;-1:-1:-1;245:5:0;:18;;-1:-1:-1;;;;;;245:18:0;253:10;245:18;;;66:311;;;;;;",
116 "srcmap-runtime": "66:311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:36;;;:::i;:::-;;;;;;;;;;;;;;;;90:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;272:103;;;;;;;;;;;;;;;;-1:-1:-1;272:103:0;;:::i;:::-;;114:36;;;;:::o;90:20::-;;;;;;:::o;272:103::-;201:5;;;;187:10;:19;183:26;;;334:24:::1;:36:::0;;;183:26;272:103;:::o"
117 },
118 "contracts/UniswapV2ERC20.sol:UniswapV2ERC20": {
119 "abi": [
120 {
121 "inputs": [],
122 "stateMutability": "nonpayable",
123 "type": "constructor"
124 },
125 {
126 "anonymous": false,
127 "inputs": [
128 {
129 "indexed": true,
130 "internalType": "address",
131 "name": "owner",
132 "type": "address"
133 },
134 {
135 "indexed": true,
136 "internalType": "address",
137 "name": "spender",
138 "type": "address"
139 },
140 {
141 "indexed": false,
142 "internalType": "uint256",
143 "name": "value",
144 "type": "uint256"
145 }
146 ],
147 "name": "Approval",
148 "type": "event"
149 },
150 {
151 "anonymous": false,
152 "inputs": [
153 {
154 "indexed": true,
155 "internalType": "address",
156 "name": "from",
157 "type": "address"
158 },
159 {
160 "indexed": true,
161 "internalType": "address",
162 "name": "to",
163 "type": "address"
164 },
165 {
166 "indexed": false,
167 "internalType": "uint256",
168 "name": "value",
169 "type": "uint256"
170 }
171 ],
172 "name": "Transfer",
173 "type": "event"
174 },
175 {
176 "inputs": [],
177 "name": "DOMAIN_SEPARATOR",
178 "outputs": [
179 {
180 "internalType": "bytes32",
181 "name": "",
182 "type": "bytes32"
183 }
184 ],
185 "stateMutability": "view",
186 "type": "function"
187 },
188 {
189 "inputs": [],
190 "name": "PERMIT_TYPEHASH",
191 "outputs": [
192 {
193 "internalType": "bytes32",
194 "name": "",
195 "type": "bytes32"
196 }
197 ],
198 "stateMutability": "view",
199 "type": "function"
200 },
201 {
202 "inputs": [
203 {
204 "internalType": "address",
205 "name": "",
206 "type": "address"
207 },
208 {
209 "internalType": "address",
210 "name": "",
211 "type": "address"
212 }
213 ],
214 "name": "allowance",
215 "outputs": [
216 {
217 "internalType": "uint256",
218 "name": "",
219 "type": "uint256"
220 }
221 ],
222 "stateMutability": "view",
223 "type": "function"
224 },
225 {
226 "inputs": [
227 {
228 "internalType": "address",
229 "name": "spender",
230 "type": "address"
231 },
232 {
233 "internalType": "uint256",
234 "name": "value",
235 "type": "uint256"
236 }
237 ],
238 "name": "approve",
239 "outputs": [
240 {
241 "internalType": "bool",
242 "name": "",
243 "type": "bool"
244 }
245 ],
246 "stateMutability": "nonpayable",
247 "type": "function"
248 },
249 {
250 "inputs": [
251 {
252 "internalType": "address",
253 "name": "",
254 "type": "address"
255 }
256 ],
257 "name": "balanceOf",
258 "outputs": [
259 {
260 "internalType": "uint256",
261 "name": "",
262 "type": "uint256"
263 }
264 ],
265 "stateMutability": "view",
266 "type": "function"
267 },
268 {
269 "inputs": [],
270 "name": "decimals",
271 "outputs": [
272 {
273 "internalType": "uint8",
274 "name": "",
275 "type": "uint8"
276 }
277 ],
278 "stateMutability": "view",
279 "type": "function"
280 },
281 {
282 "inputs": [],
283 "name": "name",
284 "outputs": [
285 {
286 "internalType": "string",
287 "name": "",
288 "type": "string"
289 }
290 ],
291 "stateMutability": "view",
292 "type": "function"
293 },
294 {
295 "inputs": [
296 {
297 "internalType": "address",
298 "name": "",
299 "type": "address"
300 }
301 ],
302 "name": "nonces",
303 "outputs": [
304 {
305 "internalType": "uint256",
306 "name": "",
307 "type": "uint256"
308 }
309 ],
310 "stateMutability": "view",
311 "type": "function"
312 },
313 {
314 "inputs": [
315 {
316 "internalType": "address",
317 "name": "owner",
318 "type": "address"
319 },
320 {
321 "internalType": "address",
322 "name": "spender",
323 "type": "address"
324 },
325 {
326 "internalType": "uint256",
327 "name": "value",
328 "type": "uint256"
329 },
330 {
331 "internalType": "uint256",
332 "name": "deadline",
333 "type": "uint256"
334 },
335 {
336 "internalType": "uint8",
337 "name": "v",
338 "type": "uint8"
339 },
340 {
341 "internalType": "bytes32",
342 "name": "r",
343 "type": "bytes32"
344 },
345 {
346 "internalType": "bytes32",
347 "name": "s",
348 "type": "bytes32"
349 }
350 ],
351 "name": "permit",
352 "outputs": [],
353 "stateMutability": "nonpayable",
354 "type": "function"
355 },
356 {
357 "inputs": [],
358 "name": "symbol",
359 "outputs": [
360 {
361 "internalType": "string",
362 "name": "",
363 "type": "string"
364 }
365 ],
366 "stateMutability": "view",
367 "type": "function"
368 },
369 {
370 "inputs": [],
371 "name": "totalSupply",
372 "outputs": [
373 {
374 "internalType": "uint256",
375 "name": "",
376 "type": "uint256"
377 }
378 ],
379 "stateMutability": "view",
380 "type": "function"
381 },
382 {
383 "inputs": [
384 {
385 "internalType": "address",
386 "name": "to",
387 "type": "address"
388 },
389 {
390 "internalType": "uint256",
391 "name": "value",
392 "type": "uint256"
393 }
394 ],
395 "name": "transfer",
396 "outputs": [
397 {
398 "internalType": "bool",
399 "name": "",
400 "type": "bool"
401 }
402 ],
403 "stateMutability": "nonpayable",
404 "type": "function"
405 },
406 {
407 "inputs": [
408 {
409 "internalType": "address",
410 "name": "from",
411 "type": "address"
412 },
413 {
414 "internalType": "address",
415 "name": "to",
416 "type": "address"
417 },
418 {
419 "internalType": "uint256",
420 "name": "value",
421 "type": "uint256"
422 }
423 ],
424 "name": "transferFrom",
425 "outputs": [
426 {
427 "internalType": "bool",
428 "name": "",
429 "type": "bool"
430 }
431 ],
432 "stateMutability": "nonpayable",
433 "type": "function"
434 }
435 ],
436 "evm": {
437 "bytecode": {
438 "linkReferences": {},
439 "object": "608060405234801561001057600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355610a8a806100f56000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461082c565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361089b565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461090d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461090d565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961082c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205461093d908261089b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461097990826109e2565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220f9cd1a68cc5d5e07e03944a9d2fa6b91e2123d026db9d54024927397cbd5864464736f6c634300060c0033",
440 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x29B7B734B1902628102A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP4 ADD MSTORE PUSH32 0xF90F134A4DC70F85D4409F329A3DF4D7FEEB7C7ACB7DF2CE255362B9A48311AA DUP2 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE PUSH2 0xA8A DUP1 PUSH2 0xF5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4EB JUMP JUMPDEST PUSH2 0xEC PUSH2 0x4FD JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x536 JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x80F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x82C JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x495 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x463 SWAP1 DUP4 PUSH2 0x89B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A0 DUP5 DUP5 DUP5 PUSH2 0x90D JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x90D JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x78E JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7F9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x804 DUP10 DUP10 DUP10 PUSH2 0x82C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x93D SWAP1 DUP3 PUSH2 0x89B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x979 SWAP1 DUP3 PUSH2 0x9E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xCD BYTE PUSH9 0xCC5D5E07E03944A9D2 STATICCALL PUSH12 0x91E2123D026DB9D540249273 SWAP8 0xCB 0xD5 DUP7 DIFFICULTY PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
441 "sourceMap": "99:3325:1:-:0;;;907:446;;;;;;;;;-1:-1:-1;1221:4:1;;;;;;;;;;;-1:-1:-1;;;1221:4:1;;;;;1255:10;;;;;;;;;;-1:-1:-1;;;1255:10:1;;;;1064:272;;1092:95;1064:272;;;;1205:22;1064:272;;;;1245:21;1064:272;;;;994:9;1064:272;;;;1317:4;1064:272;;;;;;;;;;;;;;;;;;;;;;;;;1041:305;;;;;1022:16;:324;99:3325;;;;;;"
442 },
443 "deployedBytecode": {
444 "immutableReferences": {},
445 "linkReferences": {},
446 "object": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461082c565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361089b565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461090d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461090d565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961082c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205461093d908261089b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461097990826109e2565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220f9cd1a68cc5d5e07e03944a9d2fa6b91e2123d026db9d54024927397cbd5864464736f6c634300060c0033",
447 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4EB JUMP JUMPDEST PUSH2 0xEC PUSH2 0x4FD JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x536 JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x80F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x82C JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x495 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x463 SWAP1 DUP4 PUSH2 0x89B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A0 DUP5 DUP5 DUP5 PUSH2 0x90D JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x90D JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x78E JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7F9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x804 DUP10 DUP10 DUP10 PUSH2 0x82C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x93D SWAP1 DUP3 PUSH2 0x89B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x979 SWAP1 DUP3 PUSH2 0x9E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xCD BYTE PUSH9 0xCC5D5E07E03944A9D2 STATICCALL PUSH12 0x91E2123D026DB9D540249273 SWAP8 0xCB 0xD5 DUP7 DIFFICULTY PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
448 "sourceMap": "99:3325:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:144;;;;;;;;;;;;;;;;-1:-1:-1;2167:144:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;307:24;;;:::i;:::-;;;;;;;;;;;;;;;;2459:295;;;;;;;;;;;;;;;;-1:-1:-1;2459:295:1;;;;;;;;;;;;;;;;;;:::i;593:108::-;;;:::i;266:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;452:31;;;:::i;337:41::-;;;;;;;;;;;;;;;;-1:-1:-1;337:41:1;;;;:::i;707:38::-;;;;;;;;;;;;;;;;-1:-1:-1;707:38:1;;;;:::i;218:42::-;;;:::i;2317:136::-;;;;;;;;;;;;;;;;-1:-1:-1;2317:136:1;;;;;;;;;:::i;2760:662::-;;;;;;;;;;;;;;;;-1:-1:-1;2760:662:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;384:61;;;;;;;;;;;;;;;;-1:-1:-1;384:61:1;;;;;;;;;;;:::i;166:46::-;;;;;;;;;;;;;;;;;;;:::o;2167:144::-;2231:4;2247:36;2256:10;2268:7;2277:5;2247:8;:36::i;:::-;-1:-1:-1;2300:4:1;2167:144;;;;;:::o;307:24::-;;;;:::o;2459:295::-;2557:15;;;2537:4;2557:15;;;:9;:15;;;;;;;;2573:10;2557:27;;;;;;;;2593:2;2557:39;2553:138;;2642:15;;;;;;;:9;:15;;;;;;;;2658:10;2642:27;;;;;;;;:38;;2674:5;2642:31;:38::i;:::-;2612:15;;;;;;;:9;:15;;;;;;;;2628:10;2612:27;;;;;;;:68;2553:138;2700:26;2710:4;2716:2;2720:5;2700:9;:26::i;:::-;-1:-1:-1;2743:4:1;2459:295;;;;;:::o;593:108::-;635:66;593:108;:::o;266:35::-;299:2;266:35;:::o;452:31::-;;;;:::o;337:41::-;;;;;;;;;;;;;:::o;707:38::-;;;;;;;;;;;;;:::o;218:42::-;;;;;;;;;;;;;;;;;;;:::o;2317:136::-;2377:4;2393:32;2403:10;2415:2;2419:5;2393:9;:32::i;2760:662::-;2905:15;2893:8;:27;;2885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3055:16;;3150:13;;;;2953:14;3150:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3099:77;;635:66;3099:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3089:88;;;;;;2993:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:231;;;;;;;;;3238:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:14;;3150:15;3238:26;;;;;-1:-1:-1;3238:26:1;;;;;;;;;;3150:15;3238:26;;;;;;;;;;;;;;;-1:-1:-1;;3238:26:1;;;;;;-1:-1:-1;;3282:30:1;;;;;;;:59;;;3336:5;3316:25;;:16;:25;;;3282:59;3274:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:31;3393:5;3400:7;3409:5;3384:8;:31::i;:::-;2760:662;;;;;;;;;:::o;384:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1773:166::-;1853:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1901:31;;;;;;;;;;;;;;;;;1773:166;;;:::o;331:127:10:-;414:5;;;409:16;;;;401:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:216:1;2038:15;;;;;;;:9;:15;;;;;;:26;;2058:5;2038:19;:26::i;:::-;2020:15;;;;;;;;:9;:15;;;;;;:44;;;;2090:13;;;;;;;:24;;2108:5;2090:17;:24::i;:::-;2074:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2129:25;;;;;;;2074:13;;2129:25;;;;;;;;;;;;;1945:216;;;:::o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
449 }
450 },
451 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/UniswapV2ERC20.sol\":\"UniswapV2ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0xecbc4f1a10bdfd0fc64712a2f963dab9969a7c395849bc159855b865fe38b3af\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc5d81b240cec5fc461192b7ae774eeb8477efff7454be2cb686fc48914d6b0b\",\"dweb:/ipfs/Qmamks6gmpP6y4Av7b9YwJGoJdhf2nH2ra2Ntw7SSvCvuj\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0xbde2cf4655f2f21a4e6cc76c28cf88ade1d8150289c208d48662135be9d5dd97\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bd8f46ed9dc5ad8123e596a3b762815503a04ce8a83098d80ba45085fe3c5953\",\"dweb:/ipfs/QmUa6d2v7Miy26dzUctkrumi5My4G34TL9QNUj9u4hh7iS\"]}},\"version\":1}",
452 "interface": [
453 {
454 "inputs": [],
455 "stateMutability": "nonpayable",
456 "type": "constructor"
457 },
458 {
459 "anonymous": false,
460 "inputs": [
461 {
462 "indexed": true,
463 "internalType": "address",
464 "name": "owner",
465 "type": "address"
466 },
467 {
468 "indexed": true,
469 "internalType": "address",
470 "name": "spender",
471 "type": "address"
472 },
473 {
474 "indexed": false,
475 "internalType": "uint256",
476 "name": "value",
477 "type": "uint256"
478 }
479 ],
480 "name": "Approval",
481 "type": "event"
482 },
483 {
484 "anonymous": false,
485 "inputs": [
486 {
487 "indexed": true,
488 "internalType": "address",
489 "name": "from",
490 "type": "address"
491 },
492 {
493 "indexed": true,
494 "internalType": "address",
495 "name": "to",
496 "type": "address"
497 },
498 {
499 "indexed": false,
500 "internalType": "uint256",
501 "name": "value",
502 "type": "uint256"
503 }
504 ],
505 "name": "Transfer",
506 "type": "event"
507 },
508 {
509 "inputs": [],
510 "name": "DOMAIN_SEPARATOR",
511 "outputs": [
512 {
513 "internalType": "bytes32",
514 "name": "",
515 "type": "bytes32"
516 }
517 ],
518 "stateMutability": "view",
519 "type": "function"
520 },
521 {
522 "inputs": [],
523 "name": "PERMIT_TYPEHASH",
524 "outputs": [
525 {
526 "internalType": "bytes32",
527 "name": "",
528 "type": "bytes32"
529 }
530 ],
531 "stateMutability": "view",
532 "type": "function"
533 },
534 {
535 "inputs": [
536 {
537 "internalType": "address",
538 "name": "",
539 "type": "address"
540 },
541 {
542 "internalType": "address",
543 "name": "",
544 "type": "address"
545 }
546 ],
547 "name": "allowance",
548 "outputs": [
549 {
550 "internalType": "uint256",
551 "name": "",
552 "type": "uint256"
553 }
554 ],
555 "stateMutability": "view",
556 "type": "function"
557 },
558 {
559 "inputs": [
560 {
561 "internalType": "address",
562 "name": "spender",
563 "type": "address"
564 },
565 {
566 "internalType": "uint256",
567 "name": "value",
568 "type": "uint256"
569 }
570 ],
571 "name": "approve",
572 "outputs": [
573 {
574 "internalType": "bool",
575 "name": "",
576 "type": "bool"
577 }
578 ],
579 "stateMutability": "nonpayable",
580 "type": "function"
581 },
582 {
583 "inputs": [
584 {
585 "internalType": "address",
586 "name": "",
587 "type": "address"
588 }
589 ],
590 "name": "balanceOf",
591 "outputs": [
592 {
593 "internalType": "uint256",
594 "name": "",
595 "type": "uint256"
596 }
597 ],
598 "stateMutability": "view",
599 "type": "function"
600 },
601 {
602 "inputs": [],
603 "name": "decimals",
604 "outputs": [
605 {
606 "internalType": "uint8",
607 "name": "",
608 "type": "uint8"
609 }
610 ],
611 "stateMutability": "view",
612 "type": "function"
613 },
614 {
615 "inputs": [],
616 "name": "name",
617 "outputs": [
618 {
619 "internalType": "string",
620 "name": "",
621 "type": "string"
622 }
623 ],
624 "stateMutability": "view",
625 "type": "function"
626 },
627 {
628 "inputs": [
629 {
630 "internalType": "address",
631 "name": "",
632 "type": "address"
633 }
634 ],
635 "name": "nonces",
636 "outputs": [
637 {
638 "internalType": "uint256",
639 "name": "",
640 "type": "uint256"
641 }
642 ],
643 "stateMutability": "view",
644 "type": "function"
645 },
646 {
647 "inputs": [
648 {
649 "internalType": "address",
650 "name": "owner",
651 "type": "address"
652 },
653 {
654 "internalType": "address",
655 "name": "spender",
656 "type": "address"
657 },
658 {
659 "internalType": "uint256",
660 "name": "value",
661 "type": "uint256"
662 },
663 {
664 "internalType": "uint256",
665 "name": "deadline",
666 "type": "uint256"
667 },
668 {
669 "internalType": "uint8",
670 "name": "v",
671 "type": "uint8"
672 },
673 {
674 "internalType": "bytes32",
675 "name": "r",
676 "type": "bytes32"
677 },
678 {
679 "internalType": "bytes32",
680 "name": "s",
681 "type": "bytes32"
682 }
683 ],
684 "name": "permit",
685 "outputs": [],
686 "stateMutability": "nonpayable",
687 "type": "function"
688 },
689 {
690 "inputs": [],
691 "name": "symbol",
692 "outputs": [
693 {
694 "internalType": "string",
695 "name": "",
696 "type": "string"
697 }
698 ],
699 "stateMutability": "view",
700 "type": "function"
701 },
702 {
703 "inputs": [],
704 "name": "totalSupply",
705 "outputs": [
706 {
707 "internalType": "uint256",
708 "name": "",
709 "type": "uint256"
710 }
711 ],
712 "stateMutability": "view",
713 "type": "function"
714 },
715 {
716 "inputs": [
717 {
718 "internalType": "address",
719 "name": "to",
720 "type": "address"
721 },
722 {
723 "internalType": "uint256",
724 "name": "value",
725 "type": "uint256"
726 }
727 ],
728 "name": "transfer",
729 "outputs": [
730 {
731 "internalType": "bool",
732 "name": "",
733 "type": "bool"
734 }
735 ],
736 "stateMutability": "nonpayable",
737 "type": "function"
738 },
739 {
740 "inputs": [
741 {
742 "internalType": "address",
743 "name": "from",
744 "type": "address"
745 },
746 {
747 "internalType": "address",
748 "name": "to",
749 "type": "address"
750 },
751 {
752 "internalType": "uint256",
753 "name": "value",
754 "type": "uint256"
755 }
756 ],
757 "name": "transferFrom",
758 "outputs": [
759 {
760 "internalType": "bool",
761 "name": "",
762 "type": "bool"
763 }
764 ],
765 "stateMutability": "nonpayable",
766 "type": "function"
767 }
768 ],
769 "bytecode": "608060405234801561001057600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355610a8a806100f56000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461082c565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361089b565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461090d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461090d565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961082c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205461093d908261089b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461097990826109e2565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220f9cd1a68cc5d5e07e03944a9d2fa6b91e2123d026db9d54024927397cbd5864464736f6c634300060c0033",
770 "bin": "608060405234801561001057600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355610a8a806100f56000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461082c565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361089b565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461090d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461090d565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961082c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205461093d908261089b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461097990826109e2565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220f9cd1a68cc5d5e07e03944a9d2fa6b91e2123d026db9d54024927397cbd5864464736f6c634300060c0033",
771 "bin-runtime": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461082c565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361089b565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461090d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461090d565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961082c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205461093d908261089b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461097990826109e2565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220f9cd1a68cc5d5e07e03944a9d2fa6b91e2123d026db9d54024927397cbd5864464736f6c634300060c0033",
772 "srcmap": "99:3325:1:-:0;;;907:446;;;;;;;;;-1:-1:-1;1221:4:1;;;;;;;;;;;-1:-1:-1;;;1221:4:1;;;;;1255:10;;;;;;;;;;-1:-1:-1;;;1255:10:1;;;;1064:272;;1092:95;1064:272;;;;1205:22;1064:272;;;;1245:21;1064:272;;;;994:9;1064:272;;;;1317:4;1064:272;;;;;;;;;;;;;;;;;;;;;;;;;1041:305;;;;;1022:16;:324;99:3325;;;;;;",
773 "srcmap-runtime": "99:3325:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:144;;;;;;;;;;;;;;;;-1:-1:-1;2167:144:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;307:24;;;:::i;:::-;;;;;;;;;;;;;;;;2459:295;;;;;;;;;;;;;;;;-1:-1:-1;2459:295:1;;;;;;;;;;;;;;;;;;:::i;593:108::-;;;:::i;266:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;452:31;;;:::i;337:41::-;;;;;;;;;;;;;;;;-1:-1:-1;337:41:1;;;;:::i;707:38::-;;;;;;;;;;;;;;;;-1:-1:-1;707:38:1;;;;:::i;218:42::-;;;:::i;2317:136::-;;;;;;;;;;;;;;;;-1:-1:-1;2317:136:1;;;;;;;;;:::i;2760:662::-;;;;;;;;;;;;;;;;-1:-1:-1;2760:662:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;384:61;;;;;;;;;;;;;;;;-1:-1:-1;384:61:1;;;;;;;;;;;:::i;166:46::-;;;;;;;;;;;;;;;;;;;:::o;2167:144::-;2231:4;2247:36;2256:10;2268:7;2277:5;2247:8;:36::i;:::-;-1:-1:-1;2300:4:1;2167:144;;;;;:::o;307:24::-;;;;:::o;2459:295::-;2557:15;;;2537:4;2557:15;;;:9;:15;;;;;;;;2573:10;2557:27;;;;;;;;2593:2;2557:39;2553:138;;2642:15;;;;;;;:9;:15;;;;;;;;2658:10;2642:27;;;;;;;;:38;;2674:5;2642:31;:38::i;:::-;2612:15;;;;;;;:9;:15;;;;;;;;2628:10;2612:27;;;;;;;:68;2553:138;2700:26;2710:4;2716:2;2720:5;2700:9;:26::i;:::-;-1:-1:-1;2743:4:1;2459:295;;;;;:::o;593:108::-;635:66;593:108;:::o;266:35::-;299:2;266:35;:::o;452:31::-;;;;:::o;337:41::-;;;;;;;;;;;;;:::o;707:38::-;;;;;;;;;;;;;:::o;218:42::-;;;;;;;;;;;;;;;;;;;:::o;2317:136::-;2377:4;2393:32;2403:10;2415:2;2419:5;2393:9;:32::i;2760:662::-;2905:15;2893:8;:27;;2885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3055:16;;3150:13;;;;2953:14;3150:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3099:77;;635:66;3099:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3089:88;;;;;;2993:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:231;;;;;;;;;3238:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:14;;3150:15;3238:26;;;;;-1:-1:-1;3238:26:1;;;;;;;;;;3150:15;3238:26;;;;;;;;;;;;;;;-1:-1:-1;;3238:26:1;;;;;;-1:-1:-1;;3282:30:1;;;;;;;:59;;;3336:5;3316:25;;:16;:25;;;3282:59;3274:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:31;3393:5;3400:7;3409:5;3384:8;:31::i;:::-;2760:662;;;;;;;;;:::o;384:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1773:166::-;1853:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1901:31;;;;;;;;;;;;;;;;;1773:166;;;:::o;331:127:10:-;414:5;;;409:16;;;;401:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:216:1;2038:15;;;;;;;:9;:15;;;;;;:26;;2058:5;2038:19;:26::i;:::-;2020:15;;;;;;;;:9;:15;;;;;;:44;;;;2090:13;;;;;;;:24;;2108:5;2090:17;:24::i;:::-;2074:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2129:25;;;;;;;2074:13;;2129:25;;;;;;;;;;;;;1945:216;;;:::o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
774 },
775 "contracts/UniswapV2Factory.sol:UniswapV2Factory": {
776 "abi": [
777 {
778 "inputs": [
779 {
780 "internalType": "address",
781 "name": "_feeToSetter",
782 "type": "address"
783 }
784 ],
785 "stateMutability": "nonpayable",
786 "type": "constructor"
787 },
788 {
789 "anonymous": false,
790 "inputs": [
791 {
792 "indexed": true,
793 "internalType": "address",
794 "name": "token0",
795 "type": "address"
796 },
797 {
798 "indexed": true,
799 "internalType": "address",
800 "name": "token1",
801 "type": "address"
802 },
803 {
804 "indexed": false,
805 "internalType": "address",
806 "name": "pair",
807 "type": "address"
808 },
809 {
810 "indexed": false,
811 "internalType": "uint256",
812 "name": "",
813 "type": "uint256"
814 }
815 ],
816 "name": "PairCreated",
817 "type": "event"
818 },
819 {
820 "inputs": [
821 {
822 "internalType": "uint256",
823 "name": "",
824 "type": "uint256"
825 }
826 ],
827 "name": "allPairs",
828 "outputs": [
829 {
830 "internalType": "address",
831 "name": "",
832 "type": "address"
833 }
834 ],
835 "stateMutability": "view",
836 "type": "function"
837 },
838 {
839 "inputs": [],
840 "name": "allPairsLength",
841 "outputs": [
842 {
843 "internalType": "uint256",
844 "name": "",
845 "type": "uint256"
846 }
847 ],
848 "stateMutability": "view",
849 "type": "function"
850 },
851 {
852 "inputs": [
853 {
854 "internalType": "address",
855 "name": "tokenA",
856 "type": "address"
857 },
858 {
859 "internalType": "address",
860 "name": "tokenB",
861 "type": "address"
862 }
863 ],
864 "name": "createPair",
865 "outputs": [
866 {
867 "internalType": "address",
868 "name": "pair",
869 "type": "address"
870 }
871 ],
872 "stateMutability": "nonpayable",
873 "type": "function"
874 },
875 {
876 "inputs": [],
877 "name": "feeTo",
878 "outputs": [
879 {
880 "internalType": "address",
881 "name": "",
882 "type": "address"
883 }
884 ],
885 "stateMutability": "view",
886 "type": "function"
887 },
888 {
889 "inputs": [],
890 "name": "feeToSetter",
891 "outputs": [
892 {
893 "internalType": "address",
894 "name": "",
895 "type": "address"
896 }
897 ],
898 "stateMutability": "view",
899 "type": "function"
900 },
901 {
902 "inputs": [
903 {
904 "internalType": "address",
905 "name": "",
906 "type": "address"
907 },
908 {
909 "internalType": "address",
910 "name": "",
911 "type": "address"
912 }
913 ],
914 "name": "getPair",
915 "outputs": [
916 {
917 "internalType": "address",
918 "name": "",
919 "type": "address"
920 }
921 ],
922 "stateMutability": "view",
923 "type": "function"
924 },
925 {
926 "inputs": [],
927 "name": "pairCodeHash",
928 "outputs": [
929 {
930 "internalType": "bytes32",
931 "name": "",
932 "type": "bytes32"
933 }
934 ],
935 "stateMutability": "pure",
936 "type": "function"
937 },
938 {
939 "inputs": [
940 {
941 "internalType": "address",
942 "name": "_feeTo",
943 "type": "address"
944 }
945 ],
946 "name": "setFeeTo",
947 "outputs": [],
948 "stateMutability": "nonpayable",
949 "type": "function"
950 },
951 {
952 "inputs": [
953 {
954 "internalType": "address",
955 "name": "_feeToSetter",
956 "type": "address"
957 }
958 ],
959 "name": "setFeeToSetter",
960 "outputs": [],
961 "stateMutability": "nonpayable",
962 "type": "function"
963 }
964 ],
965 "evm": {
966 "bytecode": {
967 "linkReferences": {},
968 "object": "608060405234801561001057600080fd5b506040516135a63803806135a68339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613543806100636000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639aab924811610076578063c9c653961161005b578063c9c6539614610155578063e6a4390514610190578063f46901ed146101cb576100a3565b80639aab924814610118578063a2e74af614610120576100a3565b8063017e7e58146100a8578063094b7415146100d95780631e3dd18b146100e1578063574f2ba3146100fe575b600080fd5b6100b06101fe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b061021a565b6100b0600480360360208110156100f757600080fd5b5035610236565b61010661026a565b60408051918252519081900360200190f35b610106610270565b6101536004803603602081101561013657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a2565b005b6100b06004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661036f565b6100b0600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a3565b610153600480360360208110156101e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107d6565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b600060405180602001610282906108a3565b6020820181038252601f19601f8201166040525080519060200120905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561040c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061044957838561044c565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff82166104d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561057457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610586906108a3565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561069457600080fd5b505af11580156106a8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461085c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612c5d806108b18339019056fe60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033a2646970667358221220ab9f50a810412d13765b1576eae6f216d6cc1927f432bb9c36e654c11021090b64736f6c634300060c0033",
969 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x35A6 CODESIZE SUB DUP1 PUSH2 0x35A6 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3543 DUP1 PUSH2 0x63 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9AAB9248 GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xC9C65396 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC9C65396 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0xE6A43905 EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xF46901ED EQ PUSH2 0x1CB JUMPI PUSH2 0xA3 JUMP JUMPDEST DUP1 PUSH4 0x9AAB9248 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x120 JUMPI PUSH2 0xA3 JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x94B7415 EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x1E3DD18B EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0x574F2BA3 EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB0 PUSH2 0x1FE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB0 PUSH2 0x21A JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x236 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x106 PUSH2 0x270 JUMP JUMPDEST PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2A2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x36F JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x7A3 JUMP JUMPDEST PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7D6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x243 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x282 SWAP1 PUSH2 0x8A3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x328 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x40C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204944454E544943414C5F4144445245535345530000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0x449 JUMPI DUP4 DUP6 PUSH2 0x44C JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x4D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205A45524F5F41444452455353000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x574 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20504149525F45584953545300000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x586 SWAP1 PUSH2 0x8A3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x485CC955 DUP6 DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x694 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP8 AND DUP1 DUP7 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD SWAP8 DUP14 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP9 DUP10 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP4 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP7 DUP7 MSTORE DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD DUP9 AND DUP6 OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B SWAP1 SWAP6 ADD DUP1 SLOAD SWAP1 SWAP8 AND DUP5 OR SWAP1 SWAP7 SSTORE SWAP3 SLOAD DUP4 MLOAD SWAP3 DUP4 MSTORE SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0xD3648BD0F6BA80134A33BA9275AC585D9D315F0AD8355CDDEFDE31AFA28D0E9 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x85C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C5D DUP1 PUSH2 0x8B1 DUP4 CODECOPY ADD SWAP1 JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0xC SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x29B7B734B1902628102A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP4 ADD MSTORE PUSH32 0xF90F134A4DC70F85D4409F329A3DF4D7FEEB7C7ACB7DF2CE255362B9A48311AA DUP2 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x2B51 DUP1 PUSH2 0x10C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A627842 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD21220A7 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x640 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x67B JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x597 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x5D2 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x55E JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6A627842 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x4CF JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x461 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x3F0 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3F8 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x393 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x683 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x261 PUSH2 0xD17 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x29B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2C8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DE PUSH2 0xD50 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDA5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH2 0xDBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x39B PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x400 PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xEE0 JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0xEE6 JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFBF JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFCB JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1361 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x1373 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1379 JUMP JUMPDEST PUSH2 0x53D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x261 PUSH2 0x1816 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x184F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x185C JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1862 JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A4F JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A6B JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A87 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x257 PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x6F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x707 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x75C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A62 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x767 PUSH2 0xD50 JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x79A JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AAB PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x854 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0x8BF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0x8D0 JUMPI PUSH2 0x8D0 DUP3 DUP11 DUP14 PUSH2 0x1F56 JUMP JUMPDEST DUP10 ISZERO PUSH2 0x8E1 JUMPI PUSH2 0x8E1 DUP2 DUP11 DUP13 PUSH2 0x1F56 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x9AD JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xADF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xB09 JUMPI PUSH1 0x0 PUSH2 0xB1F JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xB43 JUMPI PUSH1 0x0 PUSH2 0xB59 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xB6A JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A87 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBE1 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xBDB DUP8 PUSH2 0x3E8 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xBF3 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH2 0xC1F PUSH3 0xF4240 PUSH2 0xC19 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xC29 DUP4 DUP4 PUSH2 0x2163 JUMP JUMPDEST LT ISZERO PUSH2 0xC96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xCA4 DUP5 DUP5 DUP9 DUP9 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2511 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0xEA2 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xE70 SWAP1 DUP4 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0xEAD DUP5 DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xF6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x103E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x104E PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x11B5 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11D3 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11E1 DUP8 DUP8 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1218 JUMPI PUSH2 0x1204 PUSH2 0x3E8 PUSH2 0xBDB PUSH2 0x11FF DUP8 DUP8 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0x27C3 JUMP JUMPDEST SWAP9 POP PUSH2 0x1213 PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x1269 JUMP JUMPDEST PUSH2 0x1266 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1236 DUP7 DUP5 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x123D JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1259 DUP7 DUP6 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1260 JUMPI INVALID JUMPDEST DIV PUSH2 0x28B9 JUMP JUMPDEST SWAP9 POP JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x12C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AF4 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12CC DUP11 DUP11 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x12D8 DUP7 DUP7 DUP11 DUP11 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1314 JUMPI PUSH1 0x8 SLOAD PUSH2 0x1310 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP SWAP5 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x13FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x140F PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x152F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1543 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH2 0x1578 DUP9 DUP9 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1589 DUP5 DUP8 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1590 JUMPI INVALID JUMPDEST DIV SWAP11 POP DUP1 PUSH2 0x159E DUP5 DUP7 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x15A5 JUMPI INVALID JUMPDEST DIV SWAP10 POP PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x15B8 JUMPI POP PUSH1 0x0 DUP11 GT JUMPDEST PUSH2 0x160D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2ACC PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1617 ADDRESS DUP5 PUSH2 0x28D1 JUMP JUMPDEST PUSH2 0x1622 DUP8 DUP14 DUP14 PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x162D DUP7 DUP14 DUP13 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1749 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x175F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x176F DUP6 DUP6 DUP12 DUP12 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x17AB JUMPI PUSH1 0x8 SLOAD PUSH2 0x17A7 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP13 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP16 AND SWAP3 CALLER SWAP3 PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0xC DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x18D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x19A9 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x19A4 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x199C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH2 0x21E9 JUMP JUMPDEST PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x1A45 DUP2 DUP5 PUSH2 0x19A4 PUSH1 0x8 PUSH1 0xE SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1AF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1CD2 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x1D3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D48 DUP10 DUP10 DUP10 PUSH2 0x2511 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x1DE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1F4F SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1F1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x225B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x205C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x201F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20BE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x20C3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x20F1 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x20F1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x215C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x217E JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x217B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x2287 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x22F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2342 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x235D JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2407 JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x239A DUP6 PUSH2 0x2376 DUP7 PUSH2 0x298A JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH2 0x29AE JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x23DA DUP5 PUSH2 0x2376 DUP8 PUSH2 0x298A JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25B0 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x25EC SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x27AF JUMPI DUP1 ISZERO PUSH2 0x27AA JUMPI PUSH1 0x0 PUSH2 0x273B PUSH2 0x11FF PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2748 DUP4 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x27A7 JUMPI PUSH1 0x0 PUSH2 0x276A PUSH2 0x2761 DUP5 DUP5 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2783 DUP4 PUSH2 0x277D DUP7 PUSH1 0x2 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x29EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2790 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x27A3 DUP8 DUP3 PUSH2 0x2815 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x27BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI PUSH1 0x0 PUSH1 0xB SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2806 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2800 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x27EF JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x27F8 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x27D8 JUMP JUMPDEST POP PUSH2 0x2810 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2810 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2822 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2854 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x28C8 JUMPI DUP2 PUSH2 0x28CA JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2901 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2935 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x29E7 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 GASLIMIT 0x5D MSTORE8 0xDB DUP16 0xB2 0xD3 0xEE MOD 0xB4 SWAP1 CALLDATASIZE 0xB1 DUP7 PUSH5 0xDE996431F7 0xBF LOG4 STATICCALL PUSH31 0x9C07F3BA045DB464736F6C634300060C0033A2646970667358221220AB9F50 0xA8 LT COINBASE 0x2D SGT PUSH23 0x5B1576EAE6F216D6CC1927F432BB9C36E654C11021090B PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
970 "sourceMap": "139:1965:2:-:0;;;479:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;479:84:2;530:11;:26;;-1:-1:-1;;;;;;530:26:2;-1:-1:-1;;;;;530:26:2;;;;;;;;;139:1965;;;-1:-1:-1;139:1965:2;;"
971 },
972 "deployedBytecode": {
973 "immutableReferences": {},
974 "linkReferences": {},
975 "object": "608060405234801561001057600080fd5b50600436106100a35760003560e01c80639aab924811610076578063c9c653961161005b578063c9c6539614610155578063e6a4390514610190578063f46901ed146101cb576100a3565b80639aab924814610118578063a2e74af614610120576100a3565b8063017e7e58146100a8578063094b7415146100d95780631e3dd18b146100e1578063574f2ba3146100fe575b600080fd5b6100b06101fe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b061021a565b6100b0600480360360208110156100f757600080fd5b5035610236565b61010661026a565b60408051918252519081900360200190f35b610106610270565b6101536004803603602081101561013657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a2565b005b6100b06004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661036f565b6100b0600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a3565b610153600480360360208110156101e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107d6565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b600060405180602001610282906108a3565b6020820181038252601f19601f8201166040525080519060200120905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561040c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061044957838561044c565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff82166104d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561057457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610586906108a3565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561069457600080fd5b505af11580156106a8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461085c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612c5d806108b18339019056fe60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033a2646970667358221220ab9f50a810412d13765b1576eae6f216d6cc1927f432bb9c36e654c11021090b64736f6c634300060c0033",
976 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9AAB9248 GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xC9C65396 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC9C65396 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0xE6A43905 EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xF46901ED EQ PUSH2 0x1CB JUMPI PUSH2 0xA3 JUMP JUMPDEST DUP1 PUSH4 0x9AAB9248 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x120 JUMPI PUSH2 0xA3 JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x94B7415 EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x1E3DD18B EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0x574F2BA3 EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB0 PUSH2 0x1FE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB0 PUSH2 0x21A JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x236 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x106 PUSH2 0x270 JUMP JUMPDEST PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2A2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x36F JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x7A3 JUMP JUMPDEST PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7D6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x243 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x282 SWAP1 PUSH2 0x8A3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x328 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x40C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204944454E544943414C5F4144445245535345530000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0x449 JUMPI DUP4 DUP6 PUSH2 0x44C JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x4D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205A45524F5F41444452455353000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x574 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20504149525F45584953545300000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x586 SWAP1 PUSH2 0x8A3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x485CC955 DUP6 DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x694 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP8 AND DUP1 DUP7 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD SWAP8 DUP14 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP9 DUP10 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP4 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP7 DUP7 MSTORE DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD DUP9 AND DUP6 OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B SWAP1 SWAP6 ADD DUP1 SLOAD SWAP1 SWAP8 AND DUP5 OR SWAP1 SWAP7 SSTORE SWAP3 SLOAD DUP4 MLOAD SWAP3 DUP4 MSTORE SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0xD3648BD0F6BA80134A33BA9275AC585D9D315F0AD8355CDDEFDE31AFA28D0E9 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x85C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C5D DUP1 PUSH2 0x8B1 DUP4 CODECOPY ADD SWAP1 JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0xC SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x29B7B734B1902628102A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP4 ADD MSTORE PUSH32 0xF90F134A4DC70F85D4409F329A3DF4D7FEEB7C7ACB7DF2CE255362B9A48311AA DUP2 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x2B51 DUP1 PUSH2 0x10C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A627842 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD21220A7 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x640 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x67B JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x597 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x5D2 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x55E JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6A627842 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x4CF JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x461 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x3F0 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3F8 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x393 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x683 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x261 PUSH2 0xD17 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x29B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2C8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DE PUSH2 0xD50 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDA5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH2 0xDBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x39B PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x400 PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xEE0 JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0xEE6 JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFBF JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFCB JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1361 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x1373 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1379 JUMP JUMPDEST PUSH2 0x53D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x261 PUSH2 0x1816 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x184F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x185C JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1862 JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A4F JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A6B JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A87 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x257 PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x6F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x707 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x75C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A62 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x767 PUSH2 0xD50 JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x79A JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AAB PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x854 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0x8BF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0x8D0 JUMPI PUSH2 0x8D0 DUP3 DUP11 DUP14 PUSH2 0x1F56 JUMP JUMPDEST DUP10 ISZERO PUSH2 0x8E1 JUMPI PUSH2 0x8E1 DUP2 DUP11 DUP13 PUSH2 0x1F56 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x9AD JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xADF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xB09 JUMPI PUSH1 0x0 PUSH2 0xB1F JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xB43 JUMPI PUSH1 0x0 PUSH2 0xB59 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xB6A JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A87 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBE1 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xBDB DUP8 PUSH2 0x3E8 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xBF3 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH2 0xC1F PUSH3 0xF4240 PUSH2 0xC19 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xC29 DUP4 DUP4 PUSH2 0x2163 JUMP JUMPDEST LT ISZERO PUSH2 0xC96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xCA4 DUP5 DUP5 DUP9 DUP9 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2511 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0xEA2 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xE70 SWAP1 DUP4 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0xEAD DUP5 DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xF6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x103E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x104E PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x11B5 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11D3 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11E1 DUP8 DUP8 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1218 JUMPI PUSH2 0x1204 PUSH2 0x3E8 PUSH2 0xBDB PUSH2 0x11FF DUP8 DUP8 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0x27C3 JUMP JUMPDEST SWAP9 POP PUSH2 0x1213 PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x1269 JUMP JUMPDEST PUSH2 0x1266 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1236 DUP7 DUP5 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x123D JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1259 DUP7 DUP6 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1260 JUMPI INVALID JUMPDEST DIV PUSH2 0x28B9 JUMP JUMPDEST SWAP9 POP JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x12C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AF4 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12CC DUP11 DUP11 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x12D8 DUP7 DUP7 DUP11 DUP11 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1314 JUMPI PUSH1 0x8 SLOAD PUSH2 0x1310 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP SWAP5 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x13FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x140F PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x152F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1543 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH2 0x1578 DUP9 DUP9 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1589 DUP5 DUP8 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1590 JUMPI INVALID JUMPDEST DIV SWAP11 POP DUP1 PUSH2 0x159E DUP5 DUP7 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x15A5 JUMPI INVALID JUMPDEST DIV SWAP10 POP PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x15B8 JUMPI POP PUSH1 0x0 DUP11 GT JUMPDEST PUSH2 0x160D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2ACC PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1617 ADDRESS DUP5 PUSH2 0x28D1 JUMP JUMPDEST PUSH2 0x1622 DUP8 DUP14 DUP14 PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x162D DUP7 DUP14 DUP13 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1749 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x175F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x176F DUP6 DUP6 DUP12 DUP12 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x17AB JUMPI PUSH1 0x8 SLOAD PUSH2 0x17A7 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP13 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP16 AND SWAP3 CALLER SWAP3 PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0xC DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x18D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x19A9 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x19A4 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x199C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH2 0x21E9 JUMP JUMPDEST PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x1A45 DUP2 DUP5 PUSH2 0x19A4 PUSH1 0x8 PUSH1 0xE SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1AF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1CD2 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x1D3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D48 DUP10 DUP10 DUP10 PUSH2 0x2511 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x1DE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1F4F SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1F1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x225B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x205C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x201F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20BE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x20C3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x20F1 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x20F1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x215C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x217E JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x217B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x2287 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x22F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2342 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x235D JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2407 JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x239A DUP6 PUSH2 0x2376 DUP7 PUSH2 0x298A JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH2 0x29AE JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x23DA DUP5 PUSH2 0x2376 DUP8 PUSH2 0x298A JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25B0 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x25EC SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x27AF JUMPI DUP1 ISZERO PUSH2 0x27AA JUMPI PUSH1 0x0 PUSH2 0x273B PUSH2 0x11FF PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2748 DUP4 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x27A7 JUMPI PUSH1 0x0 PUSH2 0x276A PUSH2 0x2761 DUP5 DUP5 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2783 DUP4 PUSH2 0x277D DUP7 PUSH1 0x2 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x29EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2790 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x27A3 DUP8 DUP3 PUSH2 0x2815 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x27BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI PUSH1 0x0 PUSH1 0xB SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2806 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2800 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x27EF JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x27F8 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x27D8 JUMP JUMPDEST POP PUSH2 0x2810 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2810 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2822 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2854 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x28C8 JUMPI DUP2 PUSH2 0x28CA JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2901 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2935 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x29E7 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 GASLIMIT 0x5D MSTORE8 0xDB DUP16 0xB2 0xD3 0xEE MOD 0xB4 SWAP1 CALLDATASIZE 0xB1 DUP7 PUSH5 0xDE996431F7 0xBF LOG4 STATICCALL PUSH31 0x9C07F3BA045DB464736F6C634300060C0033A2646970667358221220AB9F50 0xA8 LT COINBASE 0x2D SGT PUSH23 0x5B1576EAE6F216D6CC1927F432BB9C36E654C11021090B PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
977 "sourceMap": "139:1965:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;227:35;;;:::i;346:34::-;;;;;;;;;;;;;;;;-1:-1:-1;346:34:2;;:::i;569:103::-;;;:::i;:::-;;;;;;;;;;;;;;;;678:123;;;:::i;1926:175::-;;;;;;;;;;;;;;;;-1:-1:-1;1926:175:2;;;;:::i;:::-;;807:956;;;;;;;;;;;;;;;;-1:-1:-1;807:956:2;;;;;;;;;;;:::i;269:71::-;;;;;;;;;;;;;;;;-1:-1:-1;269:71:2;;;;;;;;;;;:::i;1769:151::-;;;;;;;;;;;;;;;;-1:-1:-1;1769:151:2;;;;:::i;192:29::-;;;;;;:::o;227:35::-;;;;;;:::o;346:34::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;346:34:2;:::o;569:103::-;650:8;:15;569:103;:::o;678:123::-;725:7;761:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;751:43;;;;;;744:50;;678:123;:::o;1926:175::-;2022:11;;;;2008:10;:25;2000:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:11;:26;;;;;;;;;;;;;;;1926:175::o;807:956::-;886:12;928:6;918:16;;:6;:16;;;;910:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;980:14;996;1023:6;1014:15;;:6;:15;;;:53;;1052:6;1060;1014:53;;;1033:6;1041;1014:53;979:88;;-1:-1:-1;979:88:2;-1:-1:-1;1085:20:2;;;1077:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:37;:15;;;1186:1;1151:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;1143:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:21;1279:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1255:56;;1321:12;1363:6;1371;1346:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1336:43;;;;;;1321:58;;1467:4;1456:8;1450:15;1445:2;1435:8;1431:17;1428:1;1420:52;1412:60;;1505:4;1491:30;;;1522:6;1530;1491:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1547:15:2;;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;1587:15;;;;;;:23;;;;;;;;:30;;;;;;;;1672:8;:19;;-1:-1:-1;1672:19:2;;;;;;;;;;;;;;;;;;;;;;1740:15;;1706:50;;;;;;;;;;;;;;;;;;;;;;807:956;;;;;;;;:::o;269:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1769:151::-;1853:11;;;;1839:10;:25;1831:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:5;:14;;;;;;;;;;;;;;;1769:151::o;-1:-1:-1:-;;;;;;;;:::o"
978 }
979 },
980 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pairCodeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeTo\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToSetter\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/UniswapV2Factory.sol\":\"UniswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0xecbc4f1a10bdfd0fc64712a2f963dab9969a7c395849bc159855b865fe38b3af\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc5d81b240cec5fc461192b7ae774eeb8477efff7454be2cb686fc48914d6b0b\",\"dweb:/ipfs/Qmamks6gmpP6y4Av7b9YwJGoJdhf2nH2ra2Ntw7SSvCvuj\"]},\"contracts/UniswapV2Factory.sol\":{\"keccak256\":\"0xe1ed816918c38ac334da846a8592176081e9d9139e77c9efd1404dad91f5df38\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3fee6a171f1516da426eaef137c89370619b6325a6b2ce5741eb1f45541062fb\",\"dweb:/ipfs/QmdusYSPBVWbpAW3NXCwz62rqxvKdcNLykjBnCwSTPb8UC\"]},\"contracts/UniswapV2Pair.sol\":{\"keccak256\":\"0xdf734f36a41305488504eead54517b2d0c26a8d6f4aaa564defa9f2bf776556f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b631299ad50ed662d071534217509e6d5248f9fadcb7c2ea7cca5d5f718356b\",\"dweb:/ipfs/QmUyjFaKc299nDHaXe2AeycJDnnZr2P93Fgdm9xq8GgoHF\"]},\"contracts/interfaces/IERC20Uniswap.sol\":{\"keccak256\":\"0x210cde9f0ca30ba099b0fd7c5e4a3ad12c6ec143c050c0d7a13e9e8c3e414ced\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://493c36051cf27f402c9699ae09ea49a5ff988fc176e7bd9bce61b02ecf8cfb91\",\"dweb:/ipfs/QmdjQydNHsG66BLFHRbY3iqKHgvQe7hDS3eRDNEsaHED5y\"]},\"contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xeabf5e66d0d34cf92e1c3b945d466343e8a4d4dd56c1a130625bc0a67d152341\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0346b3f44d8a5a36c8ad8ab72bf469b246ae00b009c62bafcdab54ce6dc4a6e3\",\"dweb:/ipfs/QmS79MPjn17Kopw76ekwY5bhrzewDYjfFXc2XLUo9CDQ7G\"]},\"contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xf493893f508c8caa2f5923d1a39080fc5f1f362ea1f1d65ffc38b7782b35c4b7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://993a51b20f6d79edb33069524ee3a66378f8687d3df52e279561c4ef72e17cb2\",\"dweb:/ipfs/QmQSmgeRkVyA4jyShZStAWVt1CWNZQ8JvYmc2V2jgEUNEE\"]},\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x3e0a5520297ed1dc711407fb10e309db409fc8143e19a0a7751aa064bb99dfa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5d44428171de5cd02c255aebd53d88e78cfee0b877bc1a13bbafa6e83eb0597d\",\"dweb:/ipfs/QmXLVkrxEpA57vgP2CYh26PPGqaFy8C5peKKSdLobfCv31\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0xbde2cf4655f2f21a4e6cc76c28cf88ade1d8150289c208d48662135be9d5dd97\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bd8f46ed9dc5ad8123e596a3b762815503a04ce8a83098d80ba45085fe3c5953\",\"dweb:/ipfs/QmUa6d2v7Miy26dzUctkrumi5My4G34TL9QNUj9u4hh7iS\"]},\"contracts/libraries/UQ112x112.sol\":{\"keccak256\":\"0xc4574ee73aa220d7a8b363ef7c874c099b6007b0f30365993e758c8337a294d8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e27c362f1a0f0bf97004bccab2b19faaea0706bc8a21febca6e365de77a20536\",\"dweb:/ipfs/QmZipPjDSok9FxPjMB5rPTuJ7P2VvhaNzHA92TpYvE16FR\"]}},\"version\":1}",
981 "interface": [
982 {
983 "inputs": [
984 {
985 "internalType": "address",
986 "name": "_feeToSetter",
987 "type": "address"
988 }
989 ],
990 "stateMutability": "nonpayable",
991 "type": "constructor"
992 },
993 {
994 "anonymous": false,
995 "inputs": [
996 {
997 "indexed": true,
998 "internalType": "address",
999 "name": "token0",
1000 "type": "address"
1001 },
1002 {
1003 "indexed": true,
1004 "internalType": "address",
1005 "name": "token1",
1006 "type": "address"
1007 },
1008 {
1009 "indexed": false,
1010 "internalType": "address",
1011 "name": "pair",
1012 "type": "address"
1013 },
1014 {
1015 "indexed": false,
1016 "internalType": "uint256",
1017 "name": "",
1018 "type": "uint256"
1019 }
1020 ],
1021 "name": "PairCreated",
1022 "type": "event"
1023 },
1024 {
1025 "inputs": [
1026 {
1027 "internalType": "uint256",
1028 "name": "",
1029 "type": "uint256"
1030 }
1031 ],
1032 "name": "allPairs",
1033 "outputs": [
1034 {
1035 "internalType": "address",
1036 "name": "",
1037 "type": "address"
1038 }
1039 ],
1040 "stateMutability": "view",
1041 "type": "function"
1042 },
1043 {
1044 "inputs": [],
1045 "name": "allPairsLength",
1046 "outputs": [
1047 {
1048 "internalType": "uint256",
1049 "name": "",
1050 "type": "uint256"
1051 }
1052 ],
1053 "stateMutability": "view",
1054 "type": "function"
1055 },
1056 {
1057 "inputs": [
1058 {
1059 "internalType": "address",
1060 "name": "tokenA",
1061 "type": "address"
1062 },
1063 {
1064 "internalType": "address",
1065 "name": "tokenB",
1066 "type": "address"
1067 }
1068 ],
1069 "name": "createPair",
1070 "outputs": [
1071 {
1072 "internalType": "address",
1073 "name": "pair",
1074 "type": "address"
1075 }
1076 ],
1077 "stateMutability": "nonpayable",
1078 "type": "function"
1079 },
1080 {
1081 "inputs": [],
1082 "name": "feeTo",
1083 "outputs": [
1084 {
1085 "internalType": "address",
1086 "name": "",
1087 "type": "address"
1088 }
1089 ],
1090 "stateMutability": "view",
1091 "type": "function"
1092 },
1093 {
1094 "inputs": [],
1095 "name": "feeToSetter",
1096 "outputs": [
1097 {
1098 "internalType": "address",
1099 "name": "",
1100 "type": "address"
1101 }
1102 ],
1103 "stateMutability": "view",
1104 "type": "function"
1105 },
1106 {
1107 "inputs": [
1108 {
1109 "internalType": "address",
1110 "name": "",
1111 "type": "address"
1112 },
1113 {
1114 "internalType": "address",
1115 "name": "",
1116 "type": "address"
1117 }
1118 ],
1119 "name": "getPair",
1120 "outputs": [
1121 {
1122 "internalType": "address",
1123 "name": "",
1124 "type": "address"
1125 }
1126 ],
1127 "stateMutability": "view",
1128 "type": "function"
1129 },
1130 {
1131 "inputs": [],
1132 "name": "pairCodeHash",
1133 "outputs": [
1134 {
1135 "internalType": "bytes32",
1136 "name": "",
1137 "type": "bytes32"
1138 }
1139 ],
1140 "stateMutability": "pure",
1141 "type": "function"
1142 },
1143 {
1144 "inputs": [
1145 {
1146 "internalType": "address",
1147 "name": "_feeTo",
1148 "type": "address"
1149 }
1150 ],
1151 "name": "setFeeTo",
1152 "outputs": [],
1153 "stateMutability": "nonpayable",
1154 "type": "function"
1155 },
1156 {
1157 "inputs": [
1158 {
1159 "internalType": "address",
1160 "name": "_feeToSetter",
1161 "type": "address"
1162 }
1163 ],
1164 "name": "setFeeToSetter",
1165 "outputs": [],
1166 "stateMutability": "nonpayable",
1167 "type": "function"
1168 }
1169 ],
1170 "bytecode": "608060405234801561001057600080fd5b506040516135a63803806135a68339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613543806100636000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639aab924811610076578063c9c653961161005b578063c9c6539614610155578063e6a4390514610190578063f46901ed146101cb576100a3565b80639aab924814610118578063a2e74af614610120576100a3565b8063017e7e58146100a8578063094b7415146100d95780631e3dd18b146100e1578063574f2ba3146100fe575b600080fd5b6100b06101fe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b061021a565b6100b0600480360360208110156100f757600080fd5b5035610236565b61010661026a565b60408051918252519081900360200190f35b610106610270565b6101536004803603602081101561013657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a2565b005b6100b06004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661036f565b6100b0600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a3565b610153600480360360208110156101e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107d6565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b600060405180602001610282906108a3565b6020820181038252601f19601f8201166040525080519060200120905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561040c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061044957838561044c565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff82166104d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561057457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610586906108a3565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561069457600080fd5b505af11580156106a8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461085c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612c5d806108b18339019056fe60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033a2646970667358221220ab9f50a810412d13765b1576eae6f216d6cc1927f432bb9c36e654c11021090b64736f6c634300060c0033",
1171 "bin": "608060405234801561001057600080fd5b506040516135a63803806135a68339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613543806100636000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639aab924811610076578063c9c653961161005b578063c9c6539614610155578063e6a4390514610190578063f46901ed146101cb576100a3565b80639aab924814610118578063a2e74af614610120576100a3565b8063017e7e58146100a8578063094b7415146100d95780631e3dd18b146100e1578063574f2ba3146100fe575b600080fd5b6100b06101fe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b061021a565b6100b0600480360360208110156100f757600080fd5b5035610236565b61010661026a565b60408051918252519081900360200190f35b610106610270565b6101536004803603602081101561013657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a2565b005b6100b06004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661036f565b6100b0600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a3565b610153600480360360208110156101e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107d6565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b600060405180602001610282906108a3565b6020820181038252601f19601f8201166040525080519060200120905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561040c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061044957838561044c565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff82166104d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561057457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610586906108a3565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561069457600080fd5b505af11580156106a8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461085c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612c5d806108b18339019056fe60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033a2646970667358221220ab9f50a810412d13765b1576eae6f216d6cc1927f432bb9c36e654c11021090b64736f6c634300060c0033",
1172 "bin-runtime": "608060405234801561001057600080fd5b50600436106100a35760003560e01c80639aab924811610076578063c9c653961161005b578063c9c6539614610155578063e6a4390514610190578063f46901ed146101cb576100a3565b80639aab924814610118578063a2e74af614610120576100a3565b8063017e7e58146100a8578063094b7415146100d95780631e3dd18b146100e1578063574f2ba3146100fe575b600080fd5b6100b06101fe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b061021a565b6100b0600480360360208110156100f757600080fd5b5035610236565b61010661026a565b60408051918252519081900360200190f35b610106610270565b6101536004803603602081101561013657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a2565b005b6100b06004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661036f565b6100b0600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a3565b610153600480360360208110156101e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107d6565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b600060405180602001610282906108a3565b6020820181038252601f19601f8201166040525080519060200120905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561040c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061044957838561044c565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff82166104d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561057457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610586906108a3565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561069457600080fd5b505af11580156106a8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461085c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612c5d806108b18339019056fe60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033a2646970667358221220ab9f50a810412d13765b1576eae6f216d6cc1927f432bb9c36e654c11021090b64736f6c634300060c0033",
1173 "srcmap": "139:1965:2:-:0;;;479:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;479:84:2;530:11;:26;;-1:-1:-1;;;;;;530:26:2;-1:-1:-1;;;;;530:26:2;;;;;;;;;139:1965;;;-1:-1:-1;139:1965:2;;",
1174 "srcmap-runtime": "139:1965:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;227:35;;;:::i;346:34::-;;;;;;;;;;;;;;;;-1:-1:-1;346:34:2;;:::i;569:103::-;;;:::i;:::-;;;;;;;;;;;;;;;;678:123;;;:::i;1926:175::-;;;;;;;;;;;;;;;;-1:-1:-1;1926:175:2;;;;:::i;:::-;;807:956;;;;;;;;;;;;;;;;-1:-1:-1;807:956:2;;;;;;;;;;;:::i;269:71::-;;;;;;;;;;;;;;;;-1:-1:-1;269:71:2;;;;;;;;;;;:::i;1769:151::-;;;;;;;;;;;;;;;;-1:-1:-1;1769:151:2;;;;:::i;192:29::-;;;;;;:::o;227:35::-;;;;;;:::o;346:34::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;346:34:2;:::o;569:103::-;650:8;:15;569:103;:::o;678:123::-;725:7;761:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;751:43;;;;;;744:50;;678:123;:::o;1926:175::-;2022:11;;;;2008:10;:25;2000:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:11;:26;;;;;;;;;;;;;;;1926:175::o;807:956::-;886:12;928:6;918:16;;:6;:16;;;;910:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;980:14;996;1023:6;1014:15;;:6;:15;;;:53;;1052:6;1060;1014:53;;;1033:6;1041;1014:53;979:88;;-1:-1:-1;979:88:2;-1:-1:-1;1085:20:2;;;1077:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:37;:15;;;1186:1;1151:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;1143:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:21;1279:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1255:56;;1321:12;1363:6;1371;1346:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1336:43;;;;;;1321:58;;1467:4;1456:8;1450:15;1445:2;1435:8;1431:17;1428:1;1420:52;1412:60;;1505:4;1491:30;;;1522:6;1530;1491:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1547:15:2;;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;1587:15;;;;;;:23;;;;;;;;:30;;;;;;;;1672:8;:19;;-1:-1:-1;1672:19:2;;;;;;;;;;;;;;;;;;;;;;1740:15;;1706:50;;;;;;;;;;;;;;;;;;;;;;807:956;;;;;;;;:::o;269:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1769:151::-;1853:11;;;;1839:10;:25;1831:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:5;:14;;;;;;;;;;;;;;;1769:151::o;-1:-1:-1:-;;;;;;;;:::o"
1175 },
1176 "contracts/UniswapV2Pair.sol:UniswapV2Pair": {
1177 "abi": [
1178 {
1179 "inputs": [],
1180 "stateMutability": "nonpayable",
1181 "type": "constructor"
1182 },
1183 {
1184 "anonymous": false,
1185 "inputs": [
1186 {
1187 "indexed": true,
1188 "internalType": "address",
1189 "name": "owner",
1190 "type": "address"
1191 },
1192 {
1193 "indexed": true,
1194 "internalType": "address",
1195 "name": "spender",
1196 "type": "address"
1197 },
1198 {
1199 "indexed": false,
1200 "internalType": "uint256",
1201 "name": "value",
1202 "type": "uint256"
1203 }
1204 ],
1205 "name": "Approval",
1206 "type": "event"
1207 },
1208 {
1209 "anonymous": false,
1210 "inputs": [
1211 {
1212 "indexed": true,
1213 "internalType": "address",
1214 "name": "sender",
1215 "type": "address"
1216 },
1217 {
1218 "indexed": false,
1219 "internalType": "uint256",
1220 "name": "amount0",
1221 "type": "uint256"
1222 },
1223 {
1224 "indexed": false,
1225 "internalType": "uint256",
1226 "name": "amount1",
1227 "type": "uint256"
1228 },
1229 {
1230 "indexed": true,
1231 "internalType": "address",
1232 "name": "to",
1233 "type": "address"
1234 }
1235 ],
1236 "name": "Burn",
1237 "type": "event"
1238 },
1239 {
1240 "anonymous": false,
1241 "inputs": [
1242 {
1243 "indexed": true,
1244 "internalType": "address",
1245 "name": "sender",
1246 "type": "address"
1247 },
1248 {
1249 "indexed": false,
1250 "internalType": "uint256",
1251 "name": "amount0",
1252 "type": "uint256"
1253 },
1254 {
1255 "indexed": false,
1256 "internalType": "uint256",
1257 "name": "amount1",
1258 "type": "uint256"
1259 }
1260 ],
1261 "name": "Mint",
1262 "type": "event"
1263 },
1264 {
1265 "anonymous": false,
1266 "inputs": [
1267 {
1268 "indexed": true,
1269 "internalType": "address",
1270 "name": "sender",
1271 "type": "address"
1272 },
1273 {
1274 "indexed": false,
1275 "internalType": "uint256",
1276 "name": "amount0In",
1277 "type": "uint256"
1278 },
1279 {
1280 "indexed": false,
1281 "internalType": "uint256",
1282 "name": "amount1In",
1283 "type": "uint256"
1284 },
1285 {
1286 "indexed": false,
1287 "internalType": "uint256",
1288 "name": "amount0Out",
1289 "type": "uint256"
1290 },
1291 {
1292 "indexed": false,
1293 "internalType": "uint256",
1294 "name": "amount1Out",
1295 "type": "uint256"
1296 },
1297 {
1298 "indexed": true,
1299 "internalType": "address",
1300 "name": "to",
1301 "type": "address"
1302 }
1303 ],
1304 "name": "Swap",
1305 "type": "event"
1306 },
1307 {
1308 "anonymous": false,
1309 "inputs": [
1310 {
1311 "indexed": false,
1312 "internalType": "uint112",
1313 "name": "reserve0",
1314 "type": "uint112"
1315 },
1316 {
1317 "indexed": false,
1318 "internalType": "uint112",
1319 "name": "reserve1",
1320 "type": "uint112"
1321 }
1322 ],
1323 "name": "Sync",
1324 "type": "event"
1325 },
1326 {
1327 "anonymous": false,
1328 "inputs": [
1329 {
1330 "indexed": true,
1331 "internalType": "address",
1332 "name": "from",
1333 "type": "address"
1334 },
1335 {
1336 "indexed": true,
1337 "internalType": "address",
1338 "name": "to",
1339 "type": "address"
1340 },
1341 {
1342 "indexed": false,
1343 "internalType": "uint256",
1344 "name": "value",
1345 "type": "uint256"
1346 }
1347 ],
1348 "name": "Transfer",
1349 "type": "event"
1350 },
1351 {
1352 "inputs": [],
1353 "name": "DOMAIN_SEPARATOR",
1354 "outputs": [
1355 {
1356 "internalType": "bytes32",
1357 "name": "",
1358 "type": "bytes32"
1359 }
1360 ],
1361 "stateMutability": "view",
1362 "type": "function"
1363 },
1364 {
1365 "inputs": [],
1366 "name": "MINIMUM_LIQUIDITY",
1367 "outputs": [
1368 {
1369 "internalType": "uint256",
1370 "name": "",
1371 "type": "uint256"
1372 }
1373 ],
1374 "stateMutability": "view",
1375 "type": "function"
1376 },
1377 {
1378 "inputs": [],
1379 "name": "PERMIT_TYPEHASH",
1380 "outputs": [
1381 {
1382 "internalType": "bytes32",
1383 "name": "",
1384 "type": "bytes32"
1385 }
1386 ],
1387 "stateMutability": "view",
1388 "type": "function"
1389 },
1390 {
1391 "inputs": [
1392 {
1393 "internalType": "address",
1394 "name": "",
1395 "type": "address"
1396 },
1397 {
1398 "internalType": "address",
1399 "name": "",
1400 "type": "address"
1401 }
1402 ],
1403 "name": "allowance",
1404 "outputs": [
1405 {
1406 "internalType": "uint256",
1407 "name": "",
1408 "type": "uint256"
1409 }
1410 ],
1411 "stateMutability": "view",
1412 "type": "function"
1413 },
1414 {
1415 "inputs": [
1416 {
1417 "internalType": "address",
1418 "name": "spender",
1419 "type": "address"
1420 },
1421 {
1422 "internalType": "uint256",
1423 "name": "value",
1424 "type": "uint256"
1425 }
1426 ],
1427 "name": "approve",
1428 "outputs": [
1429 {
1430 "internalType": "bool",
1431 "name": "",
1432 "type": "bool"
1433 }
1434 ],
1435 "stateMutability": "nonpayable",
1436 "type": "function"
1437 },
1438 {
1439 "inputs": [
1440 {
1441 "internalType": "address",
1442 "name": "",
1443 "type": "address"
1444 }
1445 ],
1446 "name": "balanceOf",
1447 "outputs": [
1448 {
1449 "internalType": "uint256",
1450 "name": "",
1451 "type": "uint256"
1452 }
1453 ],
1454 "stateMutability": "view",
1455 "type": "function"
1456 },
1457 {
1458 "inputs": [
1459 {
1460 "internalType": "address",
1461 "name": "to",
1462 "type": "address"
1463 }
1464 ],
1465 "name": "burn",
1466 "outputs": [
1467 {
1468 "internalType": "uint256",
1469 "name": "amount0",
1470 "type": "uint256"
1471 },
1472 {
1473 "internalType": "uint256",
1474 "name": "amount1",
1475 "type": "uint256"
1476 }
1477 ],
1478 "stateMutability": "nonpayable",
1479 "type": "function"
1480 },
1481 {
1482 "inputs": [],
1483 "name": "decimals",
1484 "outputs": [
1485 {
1486 "internalType": "uint8",
1487 "name": "",
1488 "type": "uint8"
1489 }
1490 ],
1491 "stateMutability": "view",
1492 "type": "function"
1493 },
1494 {
1495 "inputs": [],
1496 "name": "factory",
1497 "outputs": [
1498 {
1499 "internalType": "address",
1500 "name": "",
1501 "type": "address"
1502 }
1503 ],
1504 "stateMutability": "view",
1505 "type": "function"
1506 },
1507 {
1508 "inputs": [],
1509 "name": "getReserves",
1510 "outputs": [
1511 {
1512 "internalType": "uint112",
1513 "name": "_reserve0",
1514 "type": "uint112"
1515 },
1516 {
1517 "internalType": "uint112",
1518 "name": "_reserve1",
1519 "type": "uint112"
1520 },
1521 {
1522 "internalType": "uint32",
1523 "name": "_blockTimestampLast",
1524 "type": "uint32"
1525 }
1526 ],
1527 "stateMutability": "view",
1528 "type": "function"
1529 },
1530 {
1531 "inputs": [
1532 {
1533 "internalType": "address",
1534 "name": "_token0",
1535 "type": "address"
1536 },
1537 {
1538 "internalType": "address",
1539 "name": "_token1",
1540 "type": "address"
1541 }
1542 ],
1543 "name": "initialize",
1544 "outputs": [],
1545 "stateMutability": "nonpayable",
1546 "type": "function"
1547 },
1548 {
1549 "inputs": [],
1550 "name": "kLast",
1551 "outputs": [
1552 {
1553 "internalType": "uint256",
1554 "name": "",
1555 "type": "uint256"
1556 }
1557 ],
1558 "stateMutability": "view",
1559 "type": "function"
1560 },
1561 {
1562 "inputs": [
1563 {
1564 "internalType": "address",
1565 "name": "to",
1566 "type": "address"
1567 }
1568 ],
1569 "name": "mint",
1570 "outputs": [
1571 {
1572 "internalType": "uint256",
1573 "name": "liquidity",
1574 "type": "uint256"
1575 }
1576 ],
1577 "stateMutability": "nonpayable",
1578 "type": "function"
1579 },
1580 {
1581 "inputs": [],
1582 "name": "name",
1583 "outputs": [
1584 {
1585 "internalType": "string",
1586 "name": "",
1587 "type": "string"
1588 }
1589 ],
1590 "stateMutability": "view",
1591 "type": "function"
1592 },
1593 {
1594 "inputs": [
1595 {
1596 "internalType": "address",
1597 "name": "",
1598 "type": "address"
1599 }
1600 ],
1601 "name": "nonces",
1602 "outputs": [
1603 {
1604 "internalType": "uint256",
1605 "name": "",
1606 "type": "uint256"
1607 }
1608 ],
1609 "stateMutability": "view",
1610 "type": "function"
1611 },
1612 {
1613 "inputs": [
1614 {
1615 "internalType": "address",
1616 "name": "owner",
1617 "type": "address"
1618 },
1619 {
1620 "internalType": "address",
1621 "name": "spender",
1622 "type": "address"
1623 },
1624 {
1625 "internalType": "uint256",
1626 "name": "value",
1627 "type": "uint256"
1628 },
1629 {
1630 "internalType": "uint256",
1631 "name": "deadline",
1632 "type": "uint256"
1633 },
1634 {
1635 "internalType": "uint8",
1636 "name": "v",
1637 "type": "uint8"
1638 },
1639 {
1640 "internalType": "bytes32",
1641 "name": "r",
1642 "type": "bytes32"
1643 },
1644 {
1645 "internalType": "bytes32",
1646 "name": "s",
1647 "type": "bytes32"
1648 }
1649 ],
1650 "name": "permit",
1651 "outputs": [],
1652 "stateMutability": "nonpayable",
1653 "type": "function"
1654 },
1655 {
1656 "inputs": [],
1657 "name": "price0CumulativeLast",
1658 "outputs": [
1659 {
1660 "internalType": "uint256",
1661 "name": "",
1662 "type": "uint256"
1663 }
1664 ],
1665 "stateMutability": "view",
1666 "type": "function"
1667 },
1668 {
1669 "inputs": [],
1670 "name": "price1CumulativeLast",
1671 "outputs": [
1672 {
1673 "internalType": "uint256",
1674 "name": "",
1675 "type": "uint256"
1676 }
1677 ],
1678 "stateMutability": "view",
1679 "type": "function"
1680 },
1681 {
1682 "inputs": [
1683 {
1684 "internalType": "address",
1685 "name": "to",
1686 "type": "address"
1687 }
1688 ],
1689 "name": "skim",
1690 "outputs": [],
1691 "stateMutability": "nonpayable",
1692 "type": "function"
1693 },
1694 {
1695 "inputs": [
1696 {
1697 "internalType": "uint256",
1698 "name": "amount0Out",
1699 "type": "uint256"
1700 },
1701 {
1702 "internalType": "uint256",
1703 "name": "amount1Out",
1704 "type": "uint256"
1705 },
1706 {
1707 "internalType": "address",
1708 "name": "to",
1709 "type": "address"
1710 },
1711 {
1712 "internalType": "bytes",
1713 "name": "data",
1714 "type": "bytes"
1715 }
1716 ],
1717 "name": "swap",
1718 "outputs": [],
1719 "stateMutability": "nonpayable",
1720 "type": "function"
1721 },
1722 {
1723 "inputs": [],
1724 "name": "symbol",
1725 "outputs": [
1726 {
1727 "internalType": "string",
1728 "name": "",
1729 "type": "string"
1730 }
1731 ],
1732 "stateMutability": "view",
1733 "type": "function"
1734 },
1735 {
1736 "inputs": [],
1737 "name": "sync",
1738 "outputs": [],
1739 "stateMutability": "nonpayable",
1740 "type": "function"
1741 },
1742 {
1743 "inputs": [],
1744 "name": "token0",
1745 "outputs": [
1746 {
1747 "internalType": "address",
1748 "name": "",
1749 "type": "address"
1750 }
1751 ],
1752 "stateMutability": "view",
1753 "type": "function"
1754 },
1755 {
1756 "inputs": [],
1757 "name": "token1",
1758 "outputs": [
1759 {
1760 "internalType": "address",
1761 "name": "",
1762 "type": "address"
1763 }
1764 ],
1765 "stateMutability": "view",
1766 "type": "function"
1767 },
1768 {
1769 "inputs": [],
1770 "name": "totalSupply",
1771 "outputs": [
1772 {
1773 "internalType": "uint256",
1774 "name": "",
1775 "type": "uint256"
1776 }
1777 ],
1778 "stateMutability": "view",
1779 "type": "function"
1780 },
1781 {
1782 "inputs": [
1783 {
1784 "internalType": "address",
1785 "name": "to",
1786 "type": "address"
1787 },
1788 {
1789 "internalType": "uint256",
1790 "name": "value",
1791 "type": "uint256"
1792 }
1793 ],
1794 "name": "transfer",
1795 "outputs": [
1796 {
1797 "internalType": "bool",
1798 "name": "",
1799 "type": "bool"
1800 }
1801 ],
1802 "stateMutability": "nonpayable",
1803 "type": "function"
1804 },
1805 {
1806 "inputs": [
1807 {
1808 "internalType": "address",
1809 "name": "from",
1810 "type": "address"
1811 },
1812 {
1813 "internalType": "address",
1814 "name": "to",
1815 "type": "address"
1816 },
1817 {
1818 "internalType": "uint256",
1819 "name": "value",
1820 "type": "uint256"
1821 }
1822 ],
1823 "name": "transferFrom",
1824 "outputs": [
1825 {
1826 "internalType": "bool",
1827 "name": "",
1828 "type": "bool"
1829 }
1830 ],
1831 "stateMutability": "nonpayable",
1832 "type": "function"
1833 }
1834 ],
1835 "evm": {
1836 "bytecode": {
1837 "linkReferences": {},
1838 "object": "60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033",
1839 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0xC SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x29B7B734B1902628102A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP4 ADD MSTORE PUSH32 0xF90F134A4DC70F85D4409F329A3DF4D7FEEB7C7ACB7DF2CE255362B9A48311AA DUP2 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x2B51 DUP1 PUSH2 0x10C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A627842 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD21220A7 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x640 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x67B JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x597 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x5D2 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x55E JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6A627842 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x4CF JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x461 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x3F0 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3F8 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x393 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x683 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x261 PUSH2 0xD17 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x29B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2C8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DE PUSH2 0xD50 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDA5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH2 0xDBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x39B PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x400 PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xEE0 JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0xEE6 JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFBF JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFCB JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1361 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x1373 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1379 JUMP JUMPDEST PUSH2 0x53D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x261 PUSH2 0x1816 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x184F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x185C JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1862 JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A4F JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A6B JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A87 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x257 PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x6F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x707 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x75C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A62 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x767 PUSH2 0xD50 JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x79A JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AAB PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x854 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0x8BF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0x8D0 JUMPI PUSH2 0x8D0 DUP3 DUP11 DUP14 PUSH2 0x1F56 JUMP JUMPDEST DUP10 ISZERO PUSH2 0x8E1 JUMPI PUSH2 0x8E1 DUP2 DUP11 DUP13 PUSH2 0x1F56 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x9AD JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xADF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xB09 JUMPI PUSH1 0x0 PUSH2 0xB1F JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xB43 JUMPI PUSH1 0x0 PUSH2 0xB59 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xB6A JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A87 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBE1 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xBDB DUP8 PUSH2 0x3E8 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xBF3 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH2 0xC1F PUSH3 0xF4240 PUSH2 0xC19 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xC29 DUP4 DUP4 PUSH2 0x2163 JUMP JUMPDEST LT ISZERO PUSH2 0xC96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xCA4 DUP5 DUP5 DUP9 DUP9 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2511 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0xEA2 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xE70 SWAP1 DUP4 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0xEAD DUP5 DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xF6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x103E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x104E PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x11B5 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11D3 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11E1 DUP8 DUP8 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1218 JUMPI PUSH2 0x1204 PUSH2 0x3E8 PUSH2 0xBDB PUSH2 0x11FF DUP8 DUP8 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0x27C3 JUMP JUMPDEST SWAP9 POP PUSH2 0x1213 PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x1269 JUMP JUMPDEST PUSH2 0x1266 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1236 DUP7 DUP5 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x123D JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1259 DUP7 DUP6 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1260 JUMPI INVALID JUMPDEST DIV PUSH2 0x28B9 JUMP JUMPDEST SWAP9 POP JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x12C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AF4 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12CC DUP11 DUP11 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x12D8 DUP7 DUP7 DUP11 DUP11 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1314 JUMPI PUSH1 0x8 SLOAD PUSH2 0x1310 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP SWAP5 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x13FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x140F PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x152F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1543 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH2 0x1578 DUP9 DUP9 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1589 DUP5 DUP8 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1590 JUMPI INVALID JUMPDEST DIV SWAP11 POP DUP1 PUSH2 0x159E DUP5 DUP7 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x15A5 JUMPI INVALID JUMPDEST DIV SWAP10 POP PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x15B8 JUMPI POP PUSH1 0x0 DUP11 GT JUMPDEST PUSH2 0x160D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2ACC PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1617 ADDRESS DUP5 PUSH2 0x28D1 JUMP JUMPDEST PUSH2 0x1622 DUP8 DUP14 DUP14 PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x162D DUP7 DUP14 DUP13 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1749 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x175F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x176F DUP6 DUP6 DUP12 DUP12 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x17AB JUMPI PUSH1 0x8 SLOAD PUSH2 0x17A7 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP13 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP16 AND SWAP3 CALLER SWAP3 PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0xC DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x18D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x19A9 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x19A4 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x199C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH2 0x21E9 JUMP JUMPDEST PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x1A45 DUP2 DUP5 PUSH2 0x19A4 PUSH1 0x8 PUSH1 0xE SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1AF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1CD2 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x1D3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D48 DUP10 DUP10 DUP10 PUSH2 0x2511 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x1DE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1F4F SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1F1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x225B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x205C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x201F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20BE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x20C3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x20F1 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x20F1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x215C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x217E JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x217B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x2287 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x22F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2342 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x235D JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2407 JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x239A DUP6 PUSH2 0x2376 DUP7 PUSH2 0x298A JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH2 0x29AE JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x23DA DUP5 PUSH2 0x2376 DUP8 PUSH2 0x298A JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25B0 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x25EC SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x27AF JUMPI DUP1 ISZERO PUSH2 0x27AA JUMPI PUSH1 0x0 PUSH2 0x273B PUSH2 0x11FF PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2748 DUP4 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x27A7 JUMPI PUSH1 0x0 PUSH2 0x276A PUSH2 0x2761 DUP5 DUP5 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2783 DUP4 PUSH2 0x277D DUP7 PUSH1 0x2 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x29EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2790 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x27A3 DUP8 DUP3 PUSH2 0x2815 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x27BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI PUSH1 0x0 PUSH1 0xB SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2806 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2800 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x27EF JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x27F8 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x27D8 JUMP JUMPDEST POP PUSH2 0x2810 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2810 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2822 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2854 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x28C8 JUMPI DUP2 PUSH2 0x28CA JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2901 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2935 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x29E7 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 GASLIMIT 0x5D MSTORE8 0xDB DUP16 0xB2 0xD3 0xEE MOD 0xB4 SWAP1 CALLDATASIZE 0xB1 DUP7 PUSH5 0xDE996431F7 0xBF LOG4 STATICCALL PUSH31 0x9C07F3BA045DB464736F6C634300060C003300000000000000000000000000 ",
1840 "sourceMap": "292:9572:3:-:0;;;1133:1;1109:25;;2189:58;;;;;;;;;-1:-1:-1;1221:4:1;;;;;;;;;;;-1:-1:-1;1221:4:1;;;;;1255:10;;;;;;;;;;-1:-1:-1;1255:10:1;;;;1064:272;;1092:95;1064:272;;;;1205:22;1064:272;;;;1245:21;1064:272;;;;994:9;1064:272;;;;1317:4;1064:272;;;;;;;;;;;;;;;;;;;;;;;;;1041:305;;;;;1022:16;:324;2220:7:3;:20;;-1:-1:-1;2220:20:3;2230:10;2220:20;;;-1:-1:-1;;292:9572:3;-1:-1:-1;292:9572:3;;"
1841 },
1842 "deployedBytecode": {
1843 "immutableReferences": {},
1844 "linkReferences": {},
1845 "object": "608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033",
1846 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A627842 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD21220A7 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x640 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x67B JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x597 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x5D2 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x55E JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6A627842 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x4CF JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x461 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x3F0 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3F8 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x393 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x683 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x261 PUSH2 0xD17 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x29B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2C8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DE PUSH2 0xD50 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDA5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH2 0xDBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x39B PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x400 PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0xEE0 JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0xEE6 JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFBF JUMP JUMPDEST PUSH2 0x39B PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFCB JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1361 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x1373 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1379 JUMP JUMPDEST PUSH2 0x53D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x261 PUSH2 0x1816 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x184F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x185C JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1862 JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A4F JUMP JUMPDEST PUSH2 0x36A PUSH2 0x1A6B JUMP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A87 JUMP JUMPDEST PUSH2 0x39B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x257 PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x6F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x707 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x75C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A62 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x767 PUSH2 0xD50 JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x79A JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AAB PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x854 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0x8BF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0x8D0 JUMPI PUSH2 0x8D0 DUP3 DUP11 DUP14 PUSH2 0x1F56 JUMP JUMPDEST DUP10 ISZERO PUSH2 0x8E1 JUMPI PUSH2 0x8E1 DUP2 DUP11 DUP13 PUSH2 0x1F56 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x9AD JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xADF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xB09 JUMPI PUSH1 0x0 PUSH2 0xB1F JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xB43 JUMPI PUSH1 0x0 PUSH2 0xB59 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xB6A JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2A87 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBE1 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xBDB DUP8 PUSH2 0x3E8 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xBF3 PUSH2 0xBCF DUP5 PUSH1 0x3 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH2 0xC1F PUSH3 0xF4240 PUSH2 0xC19 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0xC29 DUP4 DUP4 PUSH2 0x2163 JUMP JUMPDEST LT ISZERO PUSH2 0xC96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xCA4 DUP5 DUP5 DUP9 DUP9 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2511 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0xEA2 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xE70 SWAP1 DUP4 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0xEAD DUP5 DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xF6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x103E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x104E PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x11B5 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11D3 DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH2 0x21E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11E1 DUP8 DUP8 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1218 JUMPI PUSH2 0x1204 PUSH2 0x3E8 PUSH2 0xBDB PUSH2 0x11FF DUP8 DUP8 PUSH2 0x2163 JUMP JUMPDEST PUSH2 0x27C3 JUMP JUMPDEST SWAP9 POP PUSH2 0x1213 PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x1269 JUMP JUMPDEST PUSH2 0x1266 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1236 DUP7 DUP5 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x123D JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND PUSH2 0x1259 DUP7 DUP6 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1260 JUMPI INVALID JUMPDEST DIV PUSH2 0x28B9 JUMP JUMPDEST SWAP9 POP JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x12C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2AF4 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12CC DUP11 DUP11 PUSH2 0x2815 JUMP JUMPDEST PUSH2 0x12D8 DUP7 DUP7 DUP11 DUP11 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1314 JUMPI PUSH1 0x8 SLOAD PUSH2 0x1310 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP SWAP5 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x13FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE DUP1 PUSH2 0x140F PUSH2 0xD50 JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x152F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1543 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH2 0x1578 DUP9 DUP9 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x1589 DUP5 DUP8 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x1590 JUMPI INVALID JUMPDEST DIV SWAP11 POP DUP1 PUSH2 0x159E DUP5 DUP7 PUSH2 0x2163 JUMP JUMPDEST DUP2 PUSH2 0x15A5 JUMPI INVALID JUMPDEST DIV SWAP10 POP PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x15B8 JUMPI POP PUSH1 0x0 DUP11 GT JUMPDEST PUSH2 0x160D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2ACC PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1617 ADDRESS DUP5 PUSH2 0x28D1 JUMP JUMPDEST PUSH2 0x1622 DUP8 DUP14 DUP14 PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x162D DUP7 DUP14 DUP13 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1749 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x175F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x176F DUP6 DUP6 DUP12 DUP12 PUSH2 0x225B JUMP JUMPDEST DUP2 ISZERO PUSH2 0x17AB JUMPI PUSH1 0x8 SLOAD PUSH2 0x17A7 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x2163 JUMP JUMPDEST PUSH1 0xB SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP13 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP16 AND SWAP3 CALLER SWAP3 PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0xC DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB2 CALLER DUP5 DUP5 PUSH2 0x2580 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x18D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x19A9 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x19A4 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x199C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH2 0x21E9 JUMP JUMPDEST PUSH2 0x1F56 JUMP JUMPDEST PUSH2 0x1A45 DUP2 DUP5 PUSH2 0x19A4 PUSH1 0x8 PUSH1 0xE SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0xC SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1AF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1CD2 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x1D3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D48 DUP10 DUP10 DUP10 PUSH2 0x2511 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 EQ PUSH2 0x1DE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1F4F SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1F1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x8 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x225B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x205C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x201F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20BE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x20C3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x20F1 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x20F1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x215C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x217E JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x217B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x2287 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x22F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2342 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x235D JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2407 JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x239A DUP6 PUSH2 0x2376 DUP7 PUSH2 0x298A JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH2 0x29AE JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x23DA DUP5 PUSH2 0x2376 DUP8 PUSH2 0x298A JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25B0 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x25EC SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x27AF JUMPI DUP1 ISZERO PUSH2 0x27AA JUMPI PUSH1 0x0 PUSH2 0x273B PUSH2 0x11FF PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2748 DUP4 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x27A7 JUMPI PUSH1 0x0 PUSH2 0x276A PUSH2 0x2761 DUP5 DUP5 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH2 0x2163 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2783 DUP4 PUSH2 0x277D DUP7 PUSH1 0x2 PUSH2 0x2163 JUMP JUMPDEST SWAP1 PUSH2 0x29EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2790 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x27A3 DUP8 DUP3 PUSH2 0x2815 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x27BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI PUSH1 0x0 PUSH1 0xB SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2806 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2800 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x27EF JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x27F8 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x27D8 JUMP JUMPDEST POP PUSH2 0x2810 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2810 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2822 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2854 SWAP1 DUP3 PUSH2 0x29EF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x28C8 JUMPI DUP2 PUSH2 0x28CA JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2901 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2935 SWAP1 DUP3 PUSH2 0x21E9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x29E7 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xDB6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 GASLIMIT 0x5D MSTORE8 0xDB DUP16 0xB2 0xD3 0xEE MOD 0xB4 SWAP1 CALLDATASIZE 0xB1 DUP7 PUSH5 0xDE996431F7 0xBF LOG4 STATICCALL PUSH31 0x9C07F3BA045DB464736F6C634300060C003300000000000000000000000000 ",
1847 "sourceMap": "292:9572:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7382:1875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7382:1875:3;;-1:-1:-1;7382:1875:3;-1:-1:-1;7382:1875:3;:::i;:::-;;166:46:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:227:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:144:1;;;;;;;;;;;;;;;;-1:-1:-1;2167:144:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;585:21:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;307:24:1;;;:::i;:::-;;;;;;;;;;;;;;;;2459:295;;;;;;;;;;;;;;;;-1:-1:-1;2459:295:1;;;;;;;;;;;;;;;;;;:::i;593:108::-;;;:::i;266:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;452:31;;;:::i;2309:206:3:-;;;;;;;;;;;;;;;;-1:-1:-1;2309:206:3;;;;;;;;;;;:::i;929:32::-;;;:::i;967:::-;;;:::i;4459:1233::-;;;;;;;;;;;;;;;;-1:-1:-1;4459:1233:3;;;;:::i;337:41:1:-;;;;;;;;;;;;;;;;-1:-1:-1;337:41:1;;;;:::i;1005:17:3:-;;;:::i;707:38:1:-;;;;;;;;;;;;;;;;-1:-1:-1;707:38:1;;;;:::i;5801:1472:3:-;;;;;;;;;;;;;;;;-1:-1:-1;5801:1472:3;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;218:42:1;;;:::i;2317:136::-;;;;;;;;;;;;;;;;-1:-1:-1;2317:136:1;;;;;;;;;:::i;410:46:3:-;;;:::i;9303:343::-;;;;;;;;;;;;;;;;-1:-1:-1;9303:343:3;;;;:::i;557:22::-;;;:::i;612:21::-;;;:::i;2760:662:1:-;;;;;;;;;;;;;;;;-1:-1:-1;2760:662:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;384:61::-;;;;;;;;;;;;;;;;-1:-1:-1;384:61:1;;;;;;;;;;;:::i;9692:170:3:-;;;:::i;7382:1875::-;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;7495:14;;;;:32:::1;;;7526:1;7513:10;:14;7495:32;7487:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7580:17;7599::::0;7621:13:::1;:11;:13::i;:::-;7579:55;;;;;7680:9;7667:22;;:10;:22;:48;;;;;7706:9;7693:22;;:10;:22;7667:48;7659:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7893:6;::::0;7927::::1;::::0;7764:13:::1;::::0;;;7893:6:::1;::::0;;::::1;::::0;7927;;::::1;::::0;7951:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;7974:7;7968:13;;:2;:13;;;;7951:30;7943:64;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8021:14:::0;;8017:58:::1;;8037:38;8051:7;8060:2;8064:10;8037:13;:38::i;:::-;8123:14:::0;;8119:58:::1;;8139:38;8153:7;8162:2;8166:10;8139:13;:38::i;:::-;8225:15:::0;;8221:97:::1;;8259:2;8242:34;;;8277:10;8289;8301;8313:4;;8242:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8221:97;8339:47;::::0;;;;;8380:4:::1;8339:47;::::0;::::1;::::0;;;:32:::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;8339:47:3;8407::::1;::::0;;;;;8448:4:::1;8407:47;::::0;::::1;::::0;;;8339;;-1:-1:-1;8407:32:3::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;8339::::1;::::0;8407;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;8407:47:3;;-1:-1:-1;8474:14:3::1;::::0;-1:-1:-1;;8502:22:3::1;::::0;::::1;::::0;;::::1;8491:33:::0;::::1;:75;;8565:1;8491:75;;;8551:10;8539:9;:22;;;8527:8;:35;8491:75;8474:92;;8576:14;8616:10;8604:9;:22;;;8593:8;:33;:75;;8667:1;8593:75;;;8653:10;8641:9;:22;;;8629:8;:35;8593:75;8576:92;;8698:1;8686:9;:13;:30;;;;8715:1;8703:9;:13;8686:30;8678:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8841:21;8865:40;8888:16;:9:::0;8902:1:::1;8888:13;:16::i;:::-;8865:18;:8:::0;8878:4:::1;8865:12;:18::i;:::-;:22:::0;::::1;:40::i;:::-;8841:64:::0;-1:-1:-1;8915:21:3::1;8939:40;8962:16;:9:::0;8976:1:::1;8962:13;:16::i;8939:40::-;8915:64:::0;-1:-1:-1;9039:43:3::1;9074:7;9039:30;;:15:::0;;::::1;::::0;:30;::::1;:19;:30::i;:::-;:34:::0;::::1;:43::i;:::-;8997:38;:16:::0;9018;8997:20:::1;:38::i;:::-;:85;;8989:110;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;1241:1;;9120:49;9128:8;9138;9148:9;9159;9120:7;:49::i;:::-;9184:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;9189:10:::1;::::0;9184:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;1263:1:3;1252:8;:12;-1:-1:-1;;;;;;;;;7382:1875:3:o;166:46:1:-;;;;;;;;;;;;;;;;;;;:::o;1277:227:3:-;1409:8;;;;;;;1439;;;;;;;1479:18;;;;;;1277:227::o;2167:144:1:-;2231:4;2247:36;2256:10;2268:7;2277:5;2247:8;:36::i;:::-;-1:-1:-1;2300:4:1;2167:144;;;;;:::o;585:21:3:-;;;;;;:::o;307:24:1:-;;;;:::o;2459:295::-;2557:15;;;2537:4;2557:15;;;:9;:15;;;;;;;;2573:10;2557:27;;;;;;;;2593:2;2557:39;2553:138;;2642:15;;;;;;;:9;:15;;;;;;;;2658:10;2642:27;;;;;;;;:38;;2674:5;2642:31;:38::i;:::-;2612:15;;;;;;;:9;:15;;;;;;;;2628:10;2612:27;;;;;;;:68;2553:138;2700:26;2710:4;2716:2;2720:5;2700:9;:26::i;:::-;-1:-1:-1;2743:4:1;2459:295;;;;;:::o;593:108::-;635:66;593:108;:::o;266:35::-;299:2;266:35;:::o;452:31::-;;;;:::o;2309:206:3:-;2404:7;;;;2390:10;:21;2382:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:6;:16;;;;;;;;;;;;;;2492:6;:16;;;;;;;;;;;2309:206::o;929:32::-;;;;:::o;967:::-;;;;:::o;4459:1233::-;4508:14;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;;;1230:1;4576:13:::1;:11;:13::i;:::-;-1:-1:-1::0;4644:6:3::1;::::0;4630:46:::1;::::0;;;;;4670:4:::1;4630:46;::::0;::::1;::::0;;;4534:55;;-1:-1:-1;4534:55:3;;-1:-1:-1;4614:13:3::1;::::0;4644:6:::1;::::0;;::::1;::::0;4630:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;4644:6;4630:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;4630:46:3;4716:6:::1;::::0;4702:46:::1;::::0;;;;;4742:4:::1;4702:46;::::0;::::1;::::0;;;4630;;-1:-1:-1;4686:13:3::1;::::0;4716:6:::1;::::0;;::::1;::::0;4702:31:::1;::::0;:46;;;;;4630::::1;::::0;4702;;;;;;;;4716:6;4702:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;4702:46:3;;-1:-1:-1;4758:12:3::1;4773:23;:8:::0;:23:::1;::::0;::::1;:12;:23::i;:::-;4758:38:::0;-1:-1:-1;4806:12:3::1;4821:23;:8:::0;:23:::1;::::0;::::1;:12;:23::i;:::-;4806:38;;4855:10;4868:30;4877:9;4888;4868:8;:30::i;:::-;4908:17;4928:11:::0;4855:43;;-1:-1:-1;5031:17:3;5027:347:::1;;5076:54;451:5;5076:31;5086:20;:7:::0;5098;5086:11:::1;:20::i;:::-;5076:9;:31::i;:54::-;5064:66;;5143:36;5157:1;451:5;5143;:36::i;:::-;5027:347;;;5277:86;5286:37;::::0;::::1;:25;:7:::0;5298:12;5286:11:::1;:25::i;:::-;:37;;;;;;5325;::::0;::::1;:25;:7:::0;5337:12;5325:11:::1;:25::i;:::-;:37;;;;;;5277:8;:86::i;:::-;5265:98;;5027:347;5403:1;5391:9;:13;5383:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5459:20;5465:2;5469:9;5459:5;:20::i;:::-;5490:49;5498:8;5508;5518:9;5529;5490:7;:49::i;:::-;5553:5;5549:47;;;5587:8;::::0;5568:28:::1;::::0;5587:8:::1;5573::::0;;::::1;::::0;5587;;::::1;;5568:18;:28::i;:::-;5560:5;:36:::0;5549:47:::1;5651:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;5656:10:::1;::::0;5651:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;1263:1:3;1252:8;:12;-1:-1:-1;4459:1233:3;;;-1:-1:-1;;;;;;4459:1233:3:o;337:41:1:-;;;;;;;;;;;;;:::o;1005:17:3:-;;;;:::o;707:38:1:-;;;;;;;;;;;;;:::o;5801:1472:3:-;5850:12;5864;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;;;1230:1;5930:13:::1;:11;:13::i;:::-;-1:-1:-1::0;5986:6:3::1;::::0;6066::::1;::::0;6144:47:::1;::::0;;;;;6185:4:::1;6144:47;::::0;::::1;::::0;;;5888:55;;-1:-1:-1;5888:55:3;;-1:-1:-1;5986:6:3::1;::::0;;::::1;::::0;6066;::::1;::::0;5968:15:::1;::::0;5986:6;;6144:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;5986:6;6144:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6144:47:3;6217::::1;::::0;;;;;6258:4:::1;6217:47;::::0;::::1;::::0;;;6144;;-1:-1:-1;6201:13:3::1;::::0;6217:32:::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;6144::::1;::::0;6217;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6217:47:3;6309:4:::1;6274:14;6291:24:::0;;;:9:::1;6217:47;6291:24:::0;;;;;6217:47;;-1:-1:-1;6339:30:3::1;6348:9:::0;6359;6339:8:::1;:30::i;:::-;6379:17;6399:11:::0;6326:43;;-1:-1:-1;6399:11:3;6508:23:::1;:9:::0;6522:8;6508:13:::1;:23::i;:::-;:38;;;;;;::::0;-1:-1:-1;6640:12:3;6614:23:::1;:9:::0;6628:8;6614:13:::1;:23::i;:::-;:38;;;;;;6604:48;;6728:1;6718:7;:11;:26;;;;;6743:1;6733:7;:11;6718:26;6710:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6799:31;6813:4;6820:9;6799:5;:31::i;:::-;6840:35;6854:7;6863:2;6867:7;6840:13;:35::i;:::-;6885;6899:7;6908:2;6912:7;6885:13;:35::i;:::-;6941:47;::::0;;;;;6982:4:::1;6941:47;::::0;::::1;::::0;;;:32:::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6941:47:3;7009::::1;::::0;;;;;7050:4:::1;7009:47;::::0;::::1;::::0;;;6941;;-1:-1:-1;7009:32:3::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;6941::::1;::::0;7009;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;7009:47:3;;-1:-1:-1;7067:49:3::1;7075:8:::0;7009:47;7095:9;7106;7067:7:::1;:49::i;:::-;7130:5;7126:47;;;7164:8;::::0;7145:28:::1;::::0;7164:8:::1;7150::::0;;::::1;::::0;7164;;::::1;;7145:18;:28::i;:::-;7137:5;:36:::0;7126:47:::1;7228:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;7233:10:::1;::::0;7228:38:::1;::::0;;;;;;;;;::::1;1241:1;;;;;;;;;1263::::0;1252:8;:12;;;;5801:1472;;;:::o;218:42:1:-;;;;;;;;;;;;;;;;;;;:::o;2317:136::-;2377:4;2393:32;2403:10;2415:2;2419:5;2393:9;:32::i;410:46:3:-;451:5;410:46;:::o;9303:343::-;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;9371:6:::1;::::0;9420::::1;::::0;9530:8:::1;::::0;9478:47:::1;::::0;;;;;9519:4:::1;9478:47;::::0;::::1;::::0;;;9371:6:::1;::::0;;::::1;::::0;9420;;::::1;::::0;9451:89:::1;::::0;9371:6;;9474:2;;9478:61:::1;::::0;9530:8:::1;;::::0;9371:6;;9478:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;;9371:6;9478:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;9478:47:3;;:51:::1;:61::i;:::-;9451:13;:89::i;:::-;9550;9564:7;9573:2;9577:61;9629:8;;;;;;;;;;;9577:61;;9591:7;9577:32;;;9618:4;9577:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;9550:89;-1:-1:-1::0;;1263:1:3;1252:8;:12;-1:-1:-1;9303:343:3:o;557:22::-;;;;;;:::o;612:21::-;;;;;;:::o;2760:662:1:-;2905:15;2893:8;:27;;2885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3055:16;;3150:13;;;;2953:14;3150:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3099:77;;635:66;3099:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3089:88;;;;;;2993:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:231;;;;;;;;;3238:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:14;;3150:15;3238:26;;;;;-1:-1:-1;3238:26:1;;;;;;;;;;3150:15;3238:26;;;;;;;;;;;;;;;-1:-1:-1;;3238:26:1;;;;;;-1:-1:-1;;3282:30:1;;;;;;;:59;;;3336:5;3316:25;;:16;:25;;;3282:59;3274:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:31;3393:5;3400:7;3409:5;3384:8;:31::i;:::-;2760:662;;;;;;;;;:::o;384:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;9692:170:3:-;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;9754:6:::1;::::0;9740:46:::1;::::0;;;;;9780:4:::1;9740:46;::::0;::::1;::::0;;;9732:123:::1;::::0;9754:6:::1;;::::0;9740:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;9754:6;9740:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;9740:46:3;9802:6:::1;::::0;9788:46:::1;::::0;;;;;9828:4:::1;9788:46;::::0;::::1;::::0;;;9802:6:::1;::::0;;::::1;::::0;9788:31:::1;::::0;:46;;;;;9740::::1;::::0;9788;;;;;;;;9802:6;9788:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;9788:46:3;9836:8:::1;::::0;::::1;::::0;;::::1;::::0;9846;;::::1;;9732:7;:123::i;:::-;1263:1:::0;1252:8;:12;9692:170::o;1510:284::-;514:34;;;;;;;;;;;;;;;;;1637:43;;1626:10;1637:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1626:55;;;;1591:12;;1605:17;;1626:10;;;1637:43;1626:55;;;1637:43;1626:55;;1637:43;1626:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:91;;;;1699:7;:57;;;;-1:-1:-1;1711:11:3;;:16;;:44;;;1742:4;1731:24;;;;;;;;;;;;;;;-1:-1:-1;1731:24:3;1711:44;1691:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1510:284;;;;;:::o;464:140:10:-;516:6;542;;;:30;;-1:-1:-1;;557:5:10;;;571:1;566;557:5;566:1;552:15;;;;;:20;542:30;534:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:127;414:5;;;409:16;;;;401:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2597:847:3;2708:23;;;;;;:50;;-1:-1:-1;2735:23:3;;;;2708:50;2700:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2895:18;;2823:23;:15;:23;;;2895:18;;;;;2878:35;;;2950:15;;;;;;:33;;-1:-1:-1;2969:14:3;;;;;2950:33;:51;;;;-1:-1:-1;2987:14:3;;;;;2950:51;2946:332;;;3154:11;3101:64;;3106:44;3140:9;3106:27;3123:9;3106:16;:27::i;:::-;:33;;;;:44::i;:::-;3077:20;:88;;3101:50;;;;;:64;;;;3077:88;;;3203:64;;;3208:44;3242:9;3208:27;3225:9;3208:16;:27::i;:44::-;3179:20;:88;;3203:50;;;;;:64;;;;3179:88;;;2946:332;3287:8;:28;;;;;;;;;;;;3325;;;;;;;;;;;;3363:35;;;;;;;;;;;;3413:24;;;3418:8;;;3413:24;;3428:8;;;;;;;3413:24;;;;;;;;;;;;;;;;;2597:847;;;;;;:::o;1773:166:1:-;1853:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1901:31;;;;;;;;;;;;;;;;;1773:166;;;:::o;1945:216::-;2038:15;;;;;;;:9;:15;;;;;;:26;;2058:5;2038:19;:26::i;:::-;2020:15;;;;;;;;:9;:15;;;;;;:44;;;;2090:13;;;;;;;:24;;2108:5;2090:17;:24::i;:::-;2074:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2129:25;;;;;;;2074:13;;2129:25;;;;;;;;;;;;;1945:216;;;:::o;3531:819:3:-;3604:10;3626:13;3660:7;;;;;;;;;;;3642:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3642:34:3;3737:5;;3694:19;;;;;;;-1:-1:-1;3642:34:3;;-1:-1:-1;3737:5:3;3767:577;;3796:11;;3792:485;;3827:10;3840:41;3850:30;;:15;;;;:30;;:19;:30::i;3840:41::-;3827:54;;3899:14;3916:17;3926:6;3916:9;:17::i;:::-;3899:34;;3963:9;3955:5;:17;3951:312;;;3996:14;4013:37;4029:20;:5;4039:9;4029;:20::i;:::-;4013:11;;;:15;:37::i;:::-;3996:54;-1:-1:-1;4072:16:3;4091:27;4108:9;4091:12;:5;4101:1;4091:9;:12::i;:::-;:16;;:27::i;:::-;4072:46;;4140:14;4169:11;4157:9;:23;;;;;;;-1:-1:-1;4206:13:3;;4202:42;;4221:23;4227:5;4234:9;4221:5;:23::i;:::-;3951:312;;;;3792:485;;;3767:577;;;4297:11;;4293:51;;4332:1;4324:5;:9;4293:51;3531:819;;;;;;:::o;344:292:9:-;389:6;415:1;411;:5;407:223;;;-1:-1:-1;436:1:9;468;464;460:5;;:9;483:89;494:1;490;:5;483:89;;;519:1;515:5;;556:1;551;547;543;:5;;;;;;:9;542:15;;;;;;538:19;;483:89;;;407:223;;;;592:6;;588:42;;-1:-1:-1;618:1:9;588:42;344:292;;;:::o;1359:197:1:-;1431:11;;:22;;1447:5;1431:15;:22::i;:::-;1417:11;:36;;;1479:13;;;;;:9;:13;;;;;;:24;;1497:5;1479:17;:24::i;:::-;1463:13;;;;;;;:9;:13;;;;;;;;:40;;;;1518:31;;;;;;;1463:13;;;;1518:31;;;;;;;;;;1359:197;;:::o;135:94:9:-;187:6;213:1;209;:5;:13;;221:1;209:13;;;217:1;209:13;205:17;135:94;-1:-1:-1;;;135:94:9:o;1562:205:1:-;1640:15;;;;;;;:9;:15;;;;;;:26;;1660:5;1640:19;:26::i;:::-;1622:15;;;;;;;:9;:15;;;;;:44;;;;1690:11;:22;;1706:5;1690:15;:22::i;:::-;1676:11;:36;;;1727:33;;;;;;;;;;;;;;;;;;;;;;1562:205;;:::o;320:118:11:-;395:10;;268:6;395:17;;320:118::o;506:106::-;566:9;595:10;;;591:14;;;595:10;591:14;;;;;;506:106;-1:-1:-1;;;506:106:11:o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
1848 }
1849 },
1850 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"_reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"_reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"_blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/UniswapV2Pair.sol\":\"UniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0xecbc4f1a10bdfd0fc64712a2f963dab9969a7c395849bc159855b865fe38b3af\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc5d81b240cec5fc461192b7ae774eeb8477efff7454be2cb686fc48914d6b0b\",\"dweb:/ipfs/Qmamks6gmpP6y4Av7b9YwJGoJdhf2nH2ra2Ntw7SSvCvuj\"]},\"contracts/UniswapV2Pair.sol\":{\"keccak256\":\"0xdf734f36a41305488504eead54517b2d0c26a8d6f4aaa564defa9f2bf776556f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b631299ad50ed662d071534217509e6d5248f9fadcb7c2ea7cca5d5f718356b\",\"dweb:/ipfs/QmUyjFaKc299nDHaXe2AeycJDnnZr2P93Fgdm9xq8GgoHF\"]},\"contracts/interfaces/IERC20Uniswap.sol\":{\"keccak256\":\"0x210cde9f0ca30ba099b0fd7c5e4a3ad12c6ec143c050c0d7a13e9e8c3e414ced\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://493c36051cf27f402c9699ae09ea49a5ff988fc176e7bd9bce61b02ecf8cfb91\",\"dweb:/ipfs/QmdjQydNHsG66BLFHRbY3iqKHgvQe7hDS3eRDNEsaHED5y\"]},\"contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xeabf5e66d0d34cf92e1c3b945d466343e8a4d4dd56c1a130625bc0a67d152341\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0346b3f44d8a5a36c8ad8ab72bf469b246ae00b009c62bafcdab54ce6dc4a6e3\",\"dweb:/ipfs/QmS79MPjn17Kopw76ekwY5bhrzewDYjfFXc2XLUo9CDQ7G\"]},\"contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xf493893f508c8caa2f5923d1a39080fc5f1f362ea1f1d65ffc38b7782b35c4b7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://993a51b20f6d79edb33069524ee3a66378f8687d3df52e279561c4ef72e17cb2\",\"dweb:/ipfs/QmQSmgeRkVyA4jyShZStAWVt1CWNZQ8JvYmc2V2jgEUNEE\"]},\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x3e0a5520297ed1dc711407fb10e309db409fc8143e19a0a7751aa064bb99dfa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5d44428171de5cd02c255aebd53d88e78cfee0b877bc1a13bbafa6e83eb0597d\",\"dweb:/ipfs/QmXLVkrxEpA57vgP2CYh26PPGqaFy8C5peKKSdLobfCv31\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0xbde2cf4655f2f21a4e6cc76c28cf88ade1d8150289c208d48662135be9d5dd97\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bd8f46ed9dc5ad8123e596a3b762815503a04ce8a83098d80ba45085fe3c5953\",\"dweb:/ipfs/QmUa6d2v7Miy26dzUctkrumi5My4G34TL9QNUj9u4hh7iS\"]},\"contracts/libraries/UQ112x112.sol\":{\"keccak256\":\"0xc4574ee73aa220d7a8b363ef7c874c099b6007b0f30365993e758c8337a294d8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e27c362f1a0f0bf97004bccab2b19faaea0706bc8a21febca6e365de77a20536\",\"dweb:/ipfs/QmZipPjDSok9FxPjMB5rPTuJ7P2VvhaNzHA92TpYvE16FR\"]}},\"version\":1}",
1851 "interface": [
1852 {
1853 "inputs": [],
1854 "stateMutability": "nonpayable",
1855 "type": "constructor"
1856 },
1857 {
1858 "anonymous": false,
1859 "inputs": [
1860 {
1861 "indexed": true,
1862 "internalType": "address",
1863 "name": "owner",
1864 "type": "address"
1865 },
1866 {
1867 "indexed": true,
1868 "internalType": "address",
1869 "name": "spender",
1870 "type": "address"
1871 },
1872 {
1873 "indexed": false,
1874 "internalType": "uint256",
1875 "name": "value",
1876 "type": "uint256"
1877 }
1878 ],
1879 "name": "Approval",
1880 "type": "event"
1881 },
1882 {
1883 "anonymous": false,
1884 "inputs": [
1885 {
1886 "indexed": true,
1887 "internalType": "address",
1888 "name": "sender",
1889 "type": "address"
1890 },
1891 {
1892 "indexed": false,
1893 "internalType": "uint256",
1894 "name": "amount0",
1895 "type": "uint256"
1896 },
1897 {
1898 "indexed": false,
1899 "internalType": "uint256",
1900 "name": "amount1",
1901 "type": "uint256"
1902 },
1903 {
1904 "indexed": true,
1905 "internalType": "address",
1906 "name": "to",
1907 "type": "address"
1908 }
1909 ],
1910 "name": "Burn",
1911 "type": "event"
1912 },
1913 {
1914 "anonymous": false,
1915 "inputs": [
1916 {
1917 "indexed": true,
1918 "internalType": "address",
1919 "name": "sender",
1920 "type": "address"
1921 },
1922 {
1923 "indexed": false,
1924 "internalType": "uint256",
1925 "name": "amount0",
1926 "type": "uint256"
1927 },
1928 {
1929 "indexed": false,
1930 "internalType": "uint256",
1931 "name": "amount1",
1932 "type": "uint256"
1933 }
1934 ],
1935 "name": "Mint",
1936 "type": "event"
1937 },
1938 {
1939 "anonymous": false,
1940 "inputs": [
1941 {
1942 "indexed": true,
1943 "internalType": "address",
1944 "name": "sender",
1945 "type": "address"
1946 },
1947 {
1948 "indexed": false,
1949 "internalType": "uint256",
1950 "name": "amount0In",
1951 "type": "uint256"
1952 },
1953 {
1954 "indexed": false,
1955 "internalType": "uint256",
1956 "name": "amount1In",
1957 "type": "uint256"
1958 },
1959 {
1960 "indexed": false,
1961 "internalType": "uint256",
1962 "name": "amount0Out",
1963 "type": "uint256"
1964 },
1965 {
1966 "indexed": false,
1967 "internalType": "uint256",
1968 "name": "amount1Out",
1969 "type": "uint256"
1970 },
1971 {
1972 "indexed": true,
1973 "internalType": "address",
1974 "name": "to",
1975 "type": "address"
1976 }
1977 ],
1978 "name": "Swap",
1979 "type": "event"
1980 },
1981 {
1982 "anonymous": false,
1983 "inputs": [
1984 {
1985 "indexed": false,
1986 "internalType": "uint112",
1987 "name": "reserve0",
1988 "type": "uint112"
1989 },
1990 {
1991 "indexed": false,
1992 "internalType": "uint112",
1993 "name": "reserve1",
1994 "type": "uint112"
1995 }
1996 ],
1997 "name": "Sync",
1998 "type": "event"
1999 },
2000 {
2001 "anonymous": false,
2002 "inputs": [
2003 {
2004 "indexed": true,
2005 "internalType": "address",
2006 "name": "from",
2007 "type": "address"
2008 },
2009 {
2010 "indexed": true,
2011 "internalType": "address",
2012 "name": "to",
2013 "type": "address"
2014 },
2015 {
2016 "indexed": false,
2017 "internalType": "uint256",
2018 "name": "value",
2019 "type": "uint256"
2020 }
2021 ],
2022 "name": "Transfer",
2023 "type": "event"
2024 },
2025 {
2026 "inputs": [],
2027 "name": "DOMAIN_SEPARATOR",
2028 "outputs": [
2029 {
2030 "internalType": "bytes32",
2031 "name": "",
2032 "type": "bytes32"
2033 }
2034 ],
2035 "stateMutability": "view",
2036 "type": "function"
2037 },
2038 {
2039 "inputs": [],
2040 "name": "MINIMUM_LIQUIDITY",
2041 "outputs": [
2042 {
2043 "internalType": "uint256",
2044 "name": "",
2045 "type": "uint256"
2046 }
2047 ],
2048 "stateMutability": "view",
2049 "type": "function"
2050 },
2051 {
2052 "inputs": [],
2053 "name": "PERMIT_TYPEHASH",
2054 "outputs": [
2055 {
2056 "internalType": "bytes32",
2057 "name": "",
2058 "type": "bytes32"
2059 }
2060 ],
2061 "stateMutability": "view",
2062 "type": "function"
2063 },
2064 {
2065 "inputs": [
2066 {
2067 "internalType": "address",
2068 "name": "",
2069 "type": "address"
2070 },
2071 {
2072 "internalType": "address",
2073 "name": "",
2074 "type": "address"
2075 }
2076 ],
2077 "name": "allowance",
2078 "outputs": [
2079 {
2080 "internalType": "uint256",
2081 "name": "",
2082 "type": "uint256"
2083 }
2084 ],
2085 "stateMutability": "view",
2086 "type": "function"
2087 },
2088 {
2089 "inputs": [
2090 {
2091 "internalType": "address",
2092 "name": "spender",
2093 "type": "address"
2094 },
2095 {
2096 "internalType": "uint256",
2097 "name": "value",
2098 "type": "uint256"
2099 }
2100 ],
2101 "name": "approve",
2102 "outputs": [
2103 {
2104 "internalType": "bool",
2105 "name": "",
2106 "type": "bool"
2107 }
2108 ],
2109 "stateMutability": "nonpayable",
2110 "type": "function"
2111 },
2112 {
2113 "inputs": [
2114 {
2115 "internalType": "address",
2116 "name": "",
2117 "type": "address"
2118 }
2119 ],
2120 "name": "balanceOf",
2121 "outputs": [
2122 {
2123 "internalType": "uint256",
2124 "name": "",
2125 "type": "uint256"
2126 }
2127 ],
2128 "stateMutability": "view",
2129 "type": "function"
2130 },
2131 {
2132 "inputs": [
2133 {
2134 "internalType": "address",
2135 "name": "to",
2136 "type": "address"
2137 }
2138 ],
2139 "name": "burn",
2140 "outputs": [
2141 {
2142 "internalType": "uint256",
2143 "name": "amount0",
2144 "type": "uint256"
2145 },
2146 {
2147 "internalType": "uint256",
2148 "name": "amount1",
2149 "type": "uint256"
2150 }
2151 ],
2152 "stateMutability": "nonpayable",
2153 "type": "function"
2154 },
2155 {
2156 "inputs": [],
2157 "name": "decimals",
2158 "outputs": [
2159 {
2160 "internalType": "uint8",
2161 "name": "",
2162 "type": "uint8"
2163 }
2164 ],
2165 "stateMutability": "view",
2166 "type": "function"
2167 },
2168 {
2169 "inputs": [],
2170 "name": "factory",
2171 "outputs": [
2172 {
2173 "internalType": "address",
2174 "name": "",
2175 "type": "address"
2176 }
2177 ],
2178 "stateMutability": "view",
2179 "type": "function"
2180 },
2181 {
2182 "inputs": [],
2183 "name": "getReserves",
2184 "outputs": [
2185 {
2186 "internalType": "uint112",
2187 "name": "_reserve0",
2188 "type": "uint112"
2189 },
2190 {
2191 "internalType": "uint112",
2192 "name": "_reserve1",
2193 "type": "uint112"
2194 },
2195 {
2196 "internalType": "uint32",
2197 "name": "_blockTimestampLast",
2198 "type": "uint32"
2199 }
2200 ],
2201 "stateMutability": "view",
2202 "type": "function"
2203 },
2204 {
2205 "inputs": [
2206 {
2207 "internalType": "address",
2208 "name": "_token0",
2209 "type": "address"
2210 },
2211 {
2212 "internalType": "address",
2213 "name": "_token1",
2214 "type": "address"
2215 }
2216 ],
2217 "name": "initialize",
2218 "outputs": [],
2219 "stateMutability": "nonpayable",
2220 "type": "function"
2221 },
2222 {
2223 "inputs": [],
2224 "name": "kLast",
2225 "outputs": [
2226 {
2227 "internalType": "uint256",
2228 "name": "",
2229 "type": "uint256"
2230 }
2231 ],
2232 "stateMutability": "view",
2233 "type": "function"
2234 },
2235 {
2236 "inputs": [
2237 {
2238 "internalType": "address",
2239 "name": "to",
2240 "type": "address"
2241 }
2242 ],
2243 "name": "mint",
2244 "outputs": [
2245 {
2246 "internalType": "uint256",
2247 "name": "liquidity",
2248 "type": "uint256"
2249 }
2250 ],
2251 "stateMutability": "nonpayable",
2252 "type": "function"
2253 },
2254 {
2255 "inputs": [],
2256 "name": "name",
2257 "outputs": [
2258 {
2259 "internalType": "string",
2260 "name": "",
2261 "type": "string"
2262 }
2263 ],
2264 "stateMutability": "view",
2265 "type": "function"
2266 },
2267 {
2268 "inputs": [
2269 {
2270 "internalType": "address",
2271 "name": "",
2272 "type": "address"
2273 }
2274 ],
2275 "name": "nonces",
2276 "outputs": [
2277 {
2278 "internalType": "uint256",
2279 "name": "",
2280 "type": "uint256"
2281 }
2282 ],
2283 "stateMutability": "view",
2284 "type": "function"
2285 },
2286 {
2287 "inputs": [
2288 {
2289 "internalType": "address",
2290 "name": "owner",
2291 "type": "address"
2292 },
2293 {
2294 "internalType": "address",
2295 "name": "spender",
2296 "type": "address"
2297 },
2298 {
2299 "internalType": "uint256",
2300 "name": "value",
2301 "type": "uint256"
2302 },
2303 {
2304 "internalType": "uint256",
2305 "name": "deadline",
2306 "type": "uint256"
2307 },
2308 {
2309 "internalType": "uint8",
2310 "name": "v",
2311 "type": "uint8"
2312 },
2313 {
2314 "internalType": "bytes32",
2315 "name": "r",
2316 "type": "bytes32"
2317 },
2318 {
2319 "internalType": "bytes32",
2320 "name": "s",
2321 "type": "bytes32"
2322 }
2323 ],
2324 "name": "permit",
2325 "outputs": [],
2326 "stateMutability": "nonpayable",
2327 "type": "function"
2328 },
2329 {
2330 "inputs": [],
2331 "name": "price0CumulativeLast",
2332 "outputs": [
2333 {
2334 "internalType": "uint256",
2335 "name": "",
2336 "type": "uint256"
2337 }
2338 ],
2339 "stateMutability": "view",
2340 "type": "function"
2341 },
2342 {
2343 "inputs": [],
2344 "name": "price1CumulativeLast",
2345 "outputs": [
2346 {
2347 "internalType": "uint256",
2348 "name": "",
2349 "type": "uint256"
2350 }
2351 ],
2352 "stateMutability": "view",
2353 "type": "function"
2354 },
2355 {
2356 "inputs": [
2357 {
2358 "internalType": "address",
2359 "name": "to",
2360 "type": "address"
2361 }
2362 ],
2363 "name": "skim",
2364 "outputs": [],
2365 "stateMutability": "nonpayable",
2366 "type": "function"
2367 },
2368 {
2369 "inputs": [
2370 {
2371 "internalType": "uint256",
2372 "name": "amount0Out",
2373 "type": "uint256"
2374 },
2375 {
2376 "internalType": "uint256",
2377 "name": "amount1Out",
2378 "type": "uint256"
2379 },
2380 {
2381 "internalType": "address",
2382 "name": "to",
2383 "type": "address"
2384 },
2385 {
2386 "internalType": "bytes",
2387 "name": "data",
2388 "type": "bytes"
2389 }
2390 ],
2391 "name": "swap",
2392 "outputs": [],
2393 "stateMutability": "nonpayable",
2394 "type": "function"
2395 },
2396 {
2397 "inputs": [],
2398 "name": "symbol",
2399 "outputs": [
2400 {
2401 "internalType": "string",
2402 "name": "",
2403 "type": "string"
2404 }
2405 ],
2406 "stateMutability": "view",
2407 "type": "function"
2408 },
2409 {
2410 "inputs": [],
2411 "name": "sync",
2412 "outputs": [],
2413 "stateMutability": "nonpayable",
2414 "type": "function"
2415 },
2416 {
2417 "inputs": [],
2418 "name": "token0",
2419 "outputs": [
2420 {
2421 "internalType": "address",
2422 "name": "",
2423 "type": "address"
2424 }
2425 ],
2426 "stateMutability": "view",
2427 "type": "function"
2428 },
2429 {
2430 "inputs": [],
2431 "name": "token1",
2432 "outputs": [
2433 {
2434 "internalType": "address",
2435 "name": "",
2436 "type": "address"
2437 }
2438 ],
2439 "stateMutability": "view",
2440 "type": "function"
2441 },
2442 {
2443 "inputs": [],
2444 "name": "totalSupply",
2445 "outputs": [
2446 {
2447 "internalType": "uint256",
2448 "name": "",
2449 "type": "uint256"
2450 }
2451 ],
2452 "stateMutability": "view",
2453 "type": "function"
2454 },
2455 {
2456 "inputs": [
2457 {
2458 "internalType": "address",
2459 "name": "to",
2460 "type": "address"
2461 },
2462 {
2463 "internalType": "uint256",
2464 "name": "value",
2465 "type": "uint256"
2466 }
2467 ],
2468 "name": "transfer",
2469 "outputs": [
2470 {
2471 "internalType": "bool",
2472 "name": "",
2473 "type": "bool"
2474 }
2475 ],
2476 "stateMutability": "nonpayable",
2477 "type": "function"
2478 },
2479 {
2480 "inputs": [
2481 {
2482 "internalType": "address",
2483 "name": "from",
2484 "type": "address"
2485 },
2486 {
2487 "internalType": "address",
2488 "name": "to",
2489 "type": "address"
2490 },
2491 {
2492 "internalType": "uint256",
2493 "name": "value",
2494 "type": "uint256"
2495 }
2496 ],
2497 "name": "transferFrom",
2498 "outputs": [
2499 {
2500 "internalType": "bool",
2501 "name": "",
2502 "type": "bool"
2503 }
2504 ],
2505 "stateMutability": "nonpayable",
2506 "type": "function"
2507 }
2508 ],
2509 "bytecode": "60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033",
2510 "bin": "60806040526001600c5534801561001557600080fd5b50604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b518061010c6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033",
2511 "bin-runtime": "608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846003612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846003612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866002612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220d6455d53db8fb2d3ee06b49036b18664de996431f7bfa4fa7e9c07f3ba045db464736f6c634300060c0033",
2512 "srcmap": "292:9572:3:-:0;;;1133:1;1109:25;;2189:58;;;;;;;;;-1:-1:-1;1221:4:1;;;;;;;;;;;-1:-1:-1;1221:4:1;;;;;1255:10;;;;;;;;;;-1:-1:-1;1255:10:1;;;;1064:272;;1092:95;1064:272;;;;1205:22;1064:272;;;;1245:21;1064:272;;;;994:9;1064:272;;;;1317:4;1064:272;;;;;;;;;;;;;;;;;;;;;;;;;1041:305;;;;;1022:16;:324;2220:7:3;:20;;-1:-1:-1;2220:20:3;2230:10;2220:20;;;-1:-1:-1;;292:9572:3;-1:-1:-1;292:9572:3;;",
2513 "srcmap-runtime": "292:9572:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7382:1875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7382:1875:3;;-1:-1:-1;7382:1875:3;-1:-1:-1;7382:1875:3;:::i;:::-;;166:46:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:227:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:144:1;;;;;;;;;;;;;;;;-1:-1:-1;2167:144:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;585:21:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;307:24:1;;;:::i;:::-;;;;;;;;;;;;;;;;2459:295;;;;;;;;;;;;;;;;-1:-1:-1;2459:295:1;;;;;;;;;;;;;;;;;;:::i;593:108::-;;;:::i;266:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;452:31;;;:::i;2309:206:3:-;;;;;;;;;;;;;;;;-1:-1:-1;2309:206:3;;;;;;;;;;;:::i;929:32::-;;;:::i;967:::-;;;:::i;4459:1233::-;;;;;;;;;;;;;;;;-1:-1:-1;4459:1233:3;;;;:::i;337:41:1:-;;;;;;;;;;;;;;;;-1:-1:-1;337:41:1;;;;:::i;1005:17:3:-;;;:::i;707:38:1:-;;;;;;;;;;;;;;;;-1:-1:-1;707:38:1;;;;:::i;5801:1472:3:-;;;;;;;;;;;;;;;;-1:-1:-1;5801:1472:3;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;218:42:1;;;:::i;2317:136::-;;;;;;;;;;;;;;;;-1:-1:-1;2317:136:1;;;;;;;;;:::i;410:46:3:-;;;:::i;9303:343::-;;;;;;;;;;;;;;;;-1:-1:-1;9303:343:3;;;;:::i;557:22::-;;;:::i;612:21::-;;;:::i;2760:662:1:-;;;;;;;;;;;;;;;;-1:-1:-1;2760:662:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;384:61::-;;;;;;;;;;;;;;;;-1:-1:-1;384:61:1;;;;;;;;;;;:::i;9692:170:3:-;;;:::i;7382:1875::-;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;7495:14;;;;:32:::1;;;7526:1;7513:10;:14;7495:32;7487:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7580:17;7599::::0;7621:13:::1;:11;:13::i;:::-;7579:55;;;;;7680:9;7667:22;;:10;:22;:48;;;;;7706:9;7693:22;;:10;:22;7667:48;7659:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7893:6;::::0;7927::::1;::::0;7764:13:::1;::::0;;;7893:6:::1;::::0;;::::1;::::0;7927;;::::1;::::0;7951:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;7974:7;7968:13;;:2;:13;;;;7951:30;7943:64;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8021:14:::0;;8017:58:::1;;8037:38;8051:7;8060:2;8064:10;8037:13;:38::i;:::-;8123:14:::0;;8119:58:::1;;8139:38;8153:7;8162:2;8166:10;8139:13;:38::i;:::-;8225:15:::0;;8221:97:::1;;8259:2;8242:34;;;8277:10;8289;8301;8313:4;;8242:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8221:97;8339:47;::::0;;;;;8380:4:::1;8339:47;::::0;::::1;::::0;;;:32:::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;8339:47:3;8407::::1;::::0;;;;;8448:4:::1;8407:47;::::0;::::1;::::0;;;8339;;-1:-1:-1;8407:32:3::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;8339::::1;::::0;8407;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;8407:47:3;;-1:-1:-1;8474:14:3::1;::::0;-1:-1:-1;;8502:22:3::1;::::0;::::1;::::0;;::::1;8491:33:::0;::::1;:75;;8565:1;8491:75;;;8551:10;8539:9;:22;;;8527:8;:35;8491:75;8474:92;;8576:14;8616:10;8604:9;:22;;;8593:8;:33;:75;;8667:1;8593:75;;;8653:10;8641:9;:22;;;8629:8;:35;8593:75;8576:92;;8698:1;8686:9;:13;:30;;;;8715:1;8703:9;:13;8686:30;8678:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8841:21;8865:40;8888:16;:9:::0;8902:1:::1;8888:13;:16::i;:::-;8865:18;:8:::0;8878:4:::1;8865:12;:18::i;:::-;:22:::0;::::1;:40::i;:::-;8841:64:::0;-1:-1:-1;8915:21:3::1;8939:40;8962:16;:9:::0;8976:1:::1;8962:13;:16::i;8939:40::-;8915:64:::0;-1:-1:-1;9039:43:3::1;9074:7;9039:30;;:15:::0;;::::1;::::0;:30;::::1;:19;:30::i;:::-;:34:::0;::::1;:43::i;:::-;8997:38;:16:::0;9018;8997:20:::1;:38::i;:::-;:85;;8989:110;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;1241:1;;9120:49;9128:8;9138;9148:9;9159;9120:7;:49::i;:::-;9184:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;9189:10:::1;::::0;9184:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;1263:1:3;1252:8;:12;-1:-1:-1;;;;;;;;;7382:1875:3:o;166:46:1:-;;;;;;;;;;;;;;;;;;;:::o;1277:227:3:-;1409:8;;;;;;;1439;;;;;;;1479:18;;;;;;1277:227::o;2167:144:1:-;2231:4;2247:36;2256:10;2268:7;2277:5;2247:8;:36::i;:::-;-1:-1:-1;2300:4:1;2167:144;;;;;:::o;585:21:3:-;;;;;;:::o;307:24:1:-;;;;:::o;2459:295::-;2557:15;;;2537:4;2557:15;;;:9;:15;;;;;;;;2573:10;2557:27;;;;;;;;2593:2;2557:39;2553:138;;2642:15;;;;;;;:9;:15;;;;;;;;2658:10;2642:27;;;;;;;;:38;;2674:5;2642:31;:38::i;:::-;2612:15;;;;;;;:9;:15;;;;;;;;2628:10;2612:27;;;;;;;:68;2553:138;2700:26;2710:4;2716:2;2720:5;2700:9;:26::i;:::-;-1:-1:-1;2743:4:1;2459:295;;;;;:::o;593:108::-;635:66;593:108;:::o;266:35::-;299:2;266:35;:::o;452:31::-;;;;:::o;2309:206:3:-;2404:7;;;;2390:10;:21;2382:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:6;:16;;;;;;;;;;;;;;2492:6;:16;;;;;;;;;;;2309:206::o;929:32::-;;;;:::o;967:::-;;;;:::o;4459:1233::-;4508:14;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;;;1230:1;4576:13:::1;:11;:13::i;:::-;-1:-1:-1::0;4644:6:3::1;::::0;4630:46:::1;::::0;;;;;4670:4:::1;4630:46;::::0;::::1;::::0;;;4534:55;;-1:-1:-1;4534:55:3;;-1:-1:-1;4614:13:3::1;::::0;4644:6:::1;::::0;;::::1;::::0;4630:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;4644:6;4630:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;4630:46:3;4716:6:::1;::::0;4702:46:::1;::::0;;;;;4742:4:::1;4702:46;::::0;::::1;::::0;;;4630;;-1:-1:-1;4686:13:3::1;::::0;4716:6:::1;::::0;;::::1;::::0;4702:31:::1;::::0;:46;;;;;4630::::1;::::0;4702;;;;;;;;4716:6;4702:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;4702:46:3;;-1:-1:-1;4758:12:3::1;4773:23;:8:::0;:23:::1;::::0;::::1;:12;:23::i;:::-;4758:38:::0;-1:-1:-1;4806:12:3::1;4821:23;:8:::0;:23:::1;::::0;::::1;:12;:23::i;:::-;4806:38;;4855:10;4868:30;4877:9;4888;4868:8;:30::i;:::-;4908:17;4928:11:::0;4855:43;;-1:-1:-1;5031:17:3;5027:347:::1;;5076:54;451:5;5076:31;5086:20;:7:::0;5098;5086:11:::1;:20::i;:::-;5076:9;:31::i;:54::-;5064:66;;5143:36;5157:1;451:5;5143;:36::i;:::-;5027:347;;;5277:86;5286:37;::::0;::::1;:25;:7:::0;5298:12;5286:11:::1;:25::i;:::-;:37;;;;;;5325;::::0;::::1;:25;:7:::0;5337:12;5325:11:::1;:25::i;:::-;:37;;;;;;5277:8;:86::i;:::-;5265:98;;5027:347;5403:1;5391:9;:13;5383:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5459:20;5465:2;5469:9;5459:5;:20::i;:::-;5490:49;5498:8;5508;5518:9;5529;5490:7;:49::i;:::-;5553:5;5549:47;;;5587:8;::::0;5568:28:::1;::::0;5587:8:::1;5573::::0;;::::1;::::0;5587;;::::1;;5568:18;:28::i;:::-;5560:5;:36:::0;5549:47:::1;5651:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;5656:10:::1;::::0;5651:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;1263:1:3;1252:8;:12;-1:-1:-1;4459:1233:3;;;-1:-1:-1;;;;;;4459:1233:3:o;337:41:1:-;;;;;;;;;;;;;:::o;1005:17:3:-;;;;:::o;707:38:1:-;;;;;;;;;;;;;:::o;5801:1472:3:-;5850:12;5864;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;;;1230:1;5930:13:::1;:11;:13::i;:::-;-1:-1:-1::0;5986:6:3::1;::::0;6066::::1;::::0;6144:47:::1;::::0;;;;;6185:4:::1;6144:47;::::0;::::1;::::0;;;5888:55;;-1:-1:-1;5888:55:3;;-1:-1:-1;5986:6:3::1;::::0;;::::1;::::0;6066;::::1;::::0;5968:15:::1;::::0;5986:6;;6144:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;5986:6;6144:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6144:47:3;6217::::1;::::0;;;;;6258:4:::1;6217:47;::::0;::::1;::::0;;;6144;;-1:-1:-1;6201:13:3::1;::::0;6217:32:::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;6144::::1;::::0;6217;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6217:47:3;6309:4:::1;6274:14;6291:24:::0;;;:9:::1;6217:47;6291:24:::0;;;;;6217:47;;-1:-1:-1;6339:30:3::1;6348:9:::0;6359;6339:8:::1;:30::i;:::-;6379:17;6399:11:::0;6326:43;;-1:-1:-1;6399:11:3;6508:23:::1;:9:::0;6522:8;6508:13:::1;:23::i;:::-;:38;;;;;;::::0;-1:-1:-1;6640:12:3;6614:23:::1;:9:::0;6628:8;6614:13:::1;:23::i;:::-;:38;;;;;;6604:48;;6728:1;6718:7;:11;:26;;;;;6743:1;6733:7;:11;6718:26;6710:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6799:31;6813:4;6820:9;6799:5;:31::i;:::-;6840:35;6854:7;6863:2;6867:7;6840:13;:35::i;:::-;6885;6899:7;6908:2;6912:7;6885:13;:35::i;:::-;6941:47;::::0;;;;;6982:4:::1;6941:47;::::0;::::1;::::0;;;:32:::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;6941:47:3;7009::::1;::::0;;;;;7050:4:::1;7009:47;::::0;::::1;::::0;;;6941;;-1:-1:-1;7009:32:3::1;::::0;::::1;::::0;::::1;::::0;:47;;;;;6941::::1;::::0;7009;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;7009:47:3;;-1:-1:-1;7067:49:3::1;7075:8:::0;7009:47;7095:9;7106;7067:7:::1;:49::i;:::-;7130:5;7126:47;;;7164:8;::::0;7145:28:::1;::::0;7164:8:::1;7150::::0;;::::1;::::0;7164;;::::1;;7145:18;:28::i;:::-;7137:5;:36:::0;7126:47:::1;7228:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;7233:10:::1;::::0;7228:38:::1;::::0;;;;;;;;;::::1;1241:1;;;;;;;;;1263::::0;1252:8;:12;;;;5801:1472;;;:::o;218:42:1:-;;;;;;;;;;;;;;;;;;;:::o;2317:136::-;2377:4;2393:32;2403:10;2415:2;2419:5;2393:9;:32::i;410:46:3:-;451:5;410:46;:::o;9303:343::-;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;9371:6:::1;::::0;9420::::1;::::0;9530:8:::1;::::0;9478:47:::1;::::0;;;;;9519:4:::1;9478:47;::::0;::::1;::::0;;;9371:6:::1;::::0;;::::1;::::0;9420;;::::1;::::0;9451:89:::1;::::0;9371:6;;9474:2;;9478:61:::1;::::0;9530:8:::1;;::::0;9371:6;;9478:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;;9371:6;9478:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;9478:47:3;;:51:::1;:61::i;:::-;9451:13;:89::i;:::-;9550;9564:7;9573:2;9577:61;9629:8;;;;;;;;;;;9577:61;;9591:7;9577:32;;;9618:4;9577:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;9550:89;-1:-1:-1::0;;1263:1:3;1252:8;:12;-1:-1:-1;9303:343:3:o;557:22::-;;;;;;:::o;612:21::-;;;;;;:::o;2760:662:1:-;2905:15;2893:8;:27;;2885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3055:16;;3150:13;;;;2953:14;3150:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3099:77;;635:66;3099:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3089:88;;;;;;2993:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:231;;;;;;;;;3238:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:14;;3150:15;3238:26;;;;;-1:-1:-1;3238:26:1;;;;;;;;;;3150:15;3238:26;;;;;;;;;;;;;;;-1:-1:-1;;3238:26:1;;;;;;-1:-1:-1;;3282:30:1;;;;;;;:59;;;3336:5;3316:25;;:16;:25;;;3282:59;3274:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:31;3393:5;3400:7;3409:5;3384:8;:31::i;:::-;2760:662;;;;;;;;;:::o;384:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;9692:170:3:-;1174:8;;1186:1;1174:13;1166:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1230:1;1219:8;:12;9754:6:::1;::::0;9740:46:::1;::::0;;;;;9780:4:::1;9740:46;::::0;::::1;::::0;;;9732:123:::1;::::0;9754:6:::1;;::::0;9740:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;9754:6;9740:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;9740:46:3;9802:6:::1;::::0;9788:46:::1;::::0;;;;;9828:4:::1;9788:46;::::0;::::1;::::0;;;9802:6:::1;::::0;;::::1;::::0;9788:31:::1;::::0;:46;;;;;9740::::1;::::0;9788;;;;;;;;9802:6;9788:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;9788:46:3;9836:8:::1;::::0;::::1;::::0;;::::1;::::0;9846;;::::1;;9732:7;:123::i;:::-;1263:1:::0;1252:8;:12;9692:170::o;1510:284::-;514:34;;;;;;;;;;;;;;;;;1637:43;;1626:10;1637:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1626:55;;;;1591:12;;1605:17;;1626:10;;;1637:43;1626:55;;;1637:43;1626:55;;1637:43;1626:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:91;;;;1699:7;:57;;;;-1:-1:-1;1711:11:3;;:16;;:44;;;1742:4;1731:24;;;;;;;;;;;;;;;-1:-1:-1;1731:24:3;1711:44;1691:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1510:284;;;;;:::o;464:140:10:-;516:6;542;;;:30;;-1:-1:-1;;557:5:10;;;571:1;566;557:5;566:1;552:15;;;;;:20;542:30;534:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:127;414:5;;;409:16;;;;401:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2597:847:3;2708:23;;;;;;:50;;-1:-1:-1;2735:23:3;;;;2708:50;2700:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2895:18;;2823:23;:15;:23;;;2895:18;;;;;2878:35;;;2950:15;;;;;;:33;;-1:-1:-1;2969:14:3;;;;;2950:33;:51;;;;-1:-1:-1;2987:14:3;;;;;2950:51;2946:332;;;3154:11;3101:64;;3106:44;3140:9;3106:27;3123:9;3106:16;:27::i;:::-;:33;;;;:44::i;:::-;3077:20;:88;;3101:50;;;;;:64;;;;3077:88;;;3203:64;;;3208:44;3242:9;3208:27;3225:9;3208:16;:27::i;:44::-;3179:20;:88;;3203:50;;;;;:64;;;;3179:88;;;2946:332;3287:8;:28;;;;;;;;;;;;3325;;;;;;;;;;;;3363:35;;;;;;;;;;;;3413:24;;;3418:8;;;3413:24;;3428:8;;;;;;;3413:24;;;;;;;;;;;;;;;;;2597:847;;;;;;:::o;1773:166:1:-;1853:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1901:31;;;;;;;;;;;;;;;;;1773:166;;;:::o;1945:216::-;2038:15;;;;;;;:9;:15;;;;;;:26;;2058:5;2038:19;:26::i;:::-;2020:15;;;;;;;;:9;:15;;;;;;:44;;;;2090:13;;;;;;;:24;;2108:5;2090:17;:24::i;:::-;2074:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2129:25;;;;;;;2074:13;;2129:25;;;;;;;;;;;;;1945:216;;;:::o;3531:819:3:-;3604:10;3626:13;3660:7;;;;;;;;;;;3642:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3642:34:3;3737:5;;3694:19;;;;;;;-1:-1:-1;3642:34:3;;-1:-1:-1;3737:5:3;3767:577;;3796:11;;3792:485;;3827:10;3840:41;3850:30;;:15;;;;:30;;:19;:30::i;3840:41::-;3827:54;;3899:14;3916:17;3926:6;3916:9;:17::i;:::-;3899:34;;3963:9;3955:5;:17;3951:312;;;3996:14;4013:37;4029:20;:5;4039:9;4029;:20::i;:::-;4013:11;;;:15;:37::i;:::-;3996:54;-1:-1:-1;4072:16:3;4091:27;4108:9;4091:12;:5;4101:1;4091:9;:12::i;:::-;:16;;:27::i;:::-;4072:46;;4140:14;4169:11;4157:9;:23;;;;;;;-1:-1:-1;4206:13:3;;4202:42;;4221:23;4227:5;4234:9;4221:5;:23::i;:::-;3951:312;;;;3792:485;;;3767:577;;;4297:11;;4293:51;;4332:1;4324:5;:9;4293:51;3531:819;;;;;;:::o;344:292:9:-;389:6;415:1;411;:5;407:223;;;-1:-1:-1;436:1:9;468;464;460:5;;:9;483:89;494:1;490;:5;483:89;;;519:1;515:5;;556:1;551;547;543;:5;;;;;;:9;542:15;;;;;;538:19;;483:89;;;407:223;;;;592:6;;588:42;;-1:-1:-1;618:1:9;588:42;344:292;;;:::o;1359:197:1:-;1431:11;;:22;;1447:5;1431:15;:22::i;:::-;1417:11;:36;;;1479:13;;;;;:9;:13;;;;;;:24;;1497:5;1479:17;:24::i;:::-;1463:13;;;;;;;:9;:13;;;;;;;;:40;;;;1518:31;;;;;;;1463:13;;;;1518:31;;;;;;;;;;1359:197;;:::o;135:94:9:-;187:6;213:1;209;:5;:13;;221:1;209:13;;;217:1;209:13;205:17;135:94;-1:-1:-1;;;135:94:9:o;1562:205:1:-;1640:15;;;;;;;:9;:15;;;;;;:26;;1660:5;1640:19;:26::i;:::-;1622:15;;;;;;;:9;:15;;;;;:44;;;;1690:11;:22;;1706:5;1690:15;:22::i;:::-;1676:11;:36;;;1727:33;;;;;;;;;;;;;;;;;;;;;;1562:205;;:::o;320:118:11:-;395:10;;268:6;395:17;;320:118::o;506:106::-;566:9;595:10;;;591:14;;;595:10;591:14;;;;;;506:106;-1:-1:-1;;;506:106:11:o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
2514 },
2515 "contracts/interfaces/IERC20Uniswap.sol:IERC20Uniswap": {
2516 "abi": [
2517 {
2518 "anonymous": false,
2519 "inputs": [
2520 {
2521 "indexed": true,
2522 "internalType": "address",
2523 "name": "owner",
2524 "type": "address"
2525 },
2526 {
2527 "indexed": true,
2528 "internalType": "address",
2529 "name": "spender",
2530 "type": "address"
2531 },
2532 {
2533 "indexed": false,
2534 "internalType": "uint256",
2535 "name": "value",
2536 "type": "uint256"
2537 }
2538 ],
2539 "name": "Approval",
2540 "type": "event"
2541 },
2542 {
2543 "anonymous": false,
2544 "inputs": [
2545 {
2546 "indexed": true,
2547 "internalType": "address",
2548 "name": "from",
2549 "type": "address"
2550 },
2551 {
2552 "indexed": true,
2553 "internalType": "address",
2554 "name": "to",
2555 "type": "address"
2556 },
2557 {
2558 "indexed": false,
2559 "internalType": "uint256",
2560 "name": "value",
2561 "type": "uint256"
2562 }
2563 ],
2564 "name": "Transfer",
2565 "type": "event"
2566 },
2567 {
2568 "inputs": [
2569 {
2570 "internalType": "address",
2571 "name": "owner",
2572 "type": "address"
2573 },
2574 {
2575 "internalType": "address",
2576 "name": "spender",
2577 "type": "address"
2578 }
2579 ],
2580 "name": "allowance",
2581 "outputs": [
2582 {
2583 "internalType": "uint256",
2584 "name": "",
2585 "type": "uint256"
2586 }
2587 ],
2588 "stateMutability": "view",
2589 "type": "function"
2590 },
2591 {
2592 "inputs": [
2593 {
2594 "internalType": "address",
2595 "name": "spender",
2596 "type": "address"
2597 },
2598 {
2599 "internalType": "uint256",
2600 "name": "value",
2601 "type": "uint256"
2602 }
2603 ],
2604 "name": "approve",
2605 "outputs": [
2606 {
2607 "internalType": "bool",
2608 "name": "",
2609 "type": "bool"
2610 }
2611 ],
2612 "stateMutability": "nonpayable",
2613 "type": "function"
2614 },
2615 {
2616 "inputs": [
2617 {
2618 "internalType": "address",
2619 "name": "owner",
2620 "type": "address"
2621 }
2622 ],
2623 "name": "balanceOf",
2624 "outputs": [
2625 {
2626 "internalType": "uint256",
2627 "name": "",
2628 "type": "uint256"
2629 }
2630 ],
2631 "stateMutability": "view",
2632 "type": "function"
2633 },
2634 {
2635 "inputs": [],
2636 "name": "decimals",
2637 "outputs": [
2638 {
2639 "internalType": "uint8",
2640 "name": "",
2641 "type": "uint8"
2642 }
2643 ],
2644 "stateMutability": "view",
2645 "type": "function"
2646 },
2647 {
2648 "inputs": [],
2649 "name": "name",
2650 "outputs": [
2651 {
2652 "internalType": "string",
2653 "name": "",
2654 "type": "string"
2655 }
2656 ],
2657 "stateMutability": "view",
2658 "type": "function"
2659 },
2660 {
2661 "inputs": [],
2662 "name": "symbol",
2663 "outputs": [
2664 {
2665 "internalType": "string",
2666 "name": "",
2667 "type": "string"
2668 }
2669 ],
2670 "stateMutability": "view",
2671 "type": "function"
2672 },
2673 {
2674 "inputs": [],
2675 "name": "totalSupply",
2676 "outputs": [
2677 {
2678 "internalType": "uint256",
2679 "name": "",
2680 "type": "uint256"
2681 }
2682 ],
2683 "stateMutability": "view",
2684 "type": "function"
2685 },
2686 {
2687 "inputs": [
2688 {
2689 "internalType": "address",
2690 "name": "to",
2691 "type": "address"
2692 },
2693 {
2694 "internalType": "uint256",
2695 "name": "value",
2696 "type": "uint256"
2697 }
2698 ],
2699 "name": "transfer",
2700 "outputs": [
2701 {
2702 "internalType": "bool",
2703 "name": "",
2704 "type": "bool"
2705 }
2706 ],
2707 "stateMutability": "nonpayable",
2708 "type": "function"
2709 },
2710 {
2711 "inputs": [
2712 {
2713 "internalType": "address",
2714 "name": "from",
2715 "type": "address"
2716 },
2717 {
2718 "internalType": "address",
2719 "name": "to",
2720 "type": "address"
2721 },
2722 {
2723 "internalType": "uint256",
2724 "name": "value",
2725 "type": "uint256"
2726 }
2727 ],
2728 "name": "transferFrom",
2729 "outputs": [
2730 {
2731 "internalType": "bool",
2732 "name": "",
2733 "type": "bool"
2734 }
2735 ],
2736 "stateMutability": "nonpayable",
2737 "type": "function"
2738 }
2739 ],
2740 "evm": {
2741 "bytecode": {
2742 "linkReferences": {},
2743 "object": "",
2744 "opcodes": "",
2745 "sourceMap": ""
2746 },
2747 "deployedBytecode": {
2748 "immutableReferences": {},
2749 "linkReferences": {},
2750 "object": "",
2751 "opcodes": "",
2752 "sourceMap": ""
2753 }
2754 },
2755 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IERC20Uniswap.sol\":\"IERC20Uniswap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IERC20Uniswap.sol\":{\"keccak256\":\"0x210cde9f0ca30ba099b0fd7c5e4a3ad12c6ec143c050c0d7a13e9e8c3e414ced\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://493c36051cf27f402c9699ae09ea49a5ff988fc176e7bd9bce61b02ecf8cfb91\",\"dweb:/ipfs/QmdjQydNHsG66BLFHRbY3iqKHgvQe7hDS3eRDNEsaHED5y\"]}},\"version\":1}",
2756 "interface": [
2757 {
2758 "anonymous": false,
2759 "inputs": [
2760 {
2761 "indexed": true,
2762 "internalType": "address",
2763 "name": "owner",
2764 "type": "address"
2765 },
2766 {
2767 "indexed": true,
2768 "internalType": "address",
2769 "name": "spender",
2770 "type": "address"
2771 },
2772 {
2773 "indexed": false,
2774 "internalType": "uint256",
2775 "name": "value",
2776 "type": "uint256"
2777 }
2778 ],
2779 "name": "Approval",
2780 "type": "event"
2781 },
2782 {
2783 "anonymous": false,
2784 "inputs": [
2785 {
2786 "indexed": true,
2787 "internalType": "address",
2788 "name": "from",
2789 "type": "address"
2790 },
2791 {
2792 "indexed": true,
2793 "internalType": "address",
2794 "name": "to",
2795 "type": "address"
2796 },
2797 {
2798 "indexed": false,
2799 "internalType": "uint256",
2800 "name": "value",
2801 "type": "uint256"
2802 }
2803 ],
2804 "name": "Transfer",
2805 "type": "event"
2806 },
2807 {
2808 "inputs": [
2809 {
2810 "internalType": "address",
2811 "name": "owner",
2812 "type": "address"
2813 },
2814 {
2815 "internalType": "address",
2816 "name": "spender",
2817 "type": "address"
2818 }
2819 ],
2820 "name": "allowance",
2821 "outputs": [
2822 {
2823 "internalType": "uint256",
2824 "name": "",
2825 "type": "uint256"
2826 }
2827 ],
2828 "stateMutability": "view",
2829 "type": "function"
2830 },
2831 {
2832 "inputs": [
2833 {
2834 "internalType": "address",
2835 "name": "spender",
2836 "type": "address"
2837 },
2838 {
2839 "internalType": "uint256",
2840 "name": "value",
2841 "type": "uint256"
2842 }
2843 ],
2844 "name": "approve",
2845 "outputs": [
2846 {
2847 "internalType": "bool",
2848 "name": "",
2849 "type": "bool"
2850 }
2851 ],
2852 "stateMutability": "nonpayable",
2853 "type": "function"
2854 },
2855 {
2856 "inputs": [
2857 {
2858 "internalType": "address",
2859 "name": "owner",
2860 "type": "address"
2861 }
2862 ],
2863 "name": "balanceOf",
2864 "outputs": [
2865 {
2866 "internalType": "uint256",
2867 "name": "",
2868 "type": "uint256"
2869 }
2870 ],
2871 "stateMutability": "view",
2872 "type": "function"
2873 },
2874 {
2875 "inputs": [],
2876 "name": "decimals",
2877 "outputs": [
2878 {
2879 "internalType": "uint8",
2880 "name": "",
2881 "type": "uint8"
2882 }
2883 ],
2884 "stateMutability": "view",
2885 "type": "function"
2886 },
2887 {
2888 "inputs": [],
2889 "name": "name",
2890 "outputs": [
2891 {
2892 "internalType": "string",
2893 "name": "",
2894 "type": "string"
2895 }
2896 ],
2897 "stateMutability": "view",
2898 "type": "function"
2899 },
2900 {
2901 "inputs": [],
2902 "name": "symbol",
2903 "outputs": [
2904 {
2905 "internalType": "string",
2906 "name": "",
2907 "type": "string"
2908 }
2909 ],
2910 "stateMutability": "view",
2911 "type": "function"
2912 },
2913 {
2914 "inputs": [],
2915 "name": "totalSupply",
2916 "outputs": [
2917 {
2918 "internalType": "uint256",
2919 "name": "",
2920 "type": "uint256"
2921 }
2922 ],
2923 "stateMutability": "view",
2924 "type": "function"
2925 },
2926 {
2927 "inputs": [
2928 {
2929 "internalType": "address",
2930 "name": "to",
2931 "type": "address"
2932 },
2933 {
2934 "internalType": "uint256",
2935 "name": "value",
2936 "type": "uint256"
2937 }
2938 ],
2939 "name": "transfer",
2940 "outputs": [
2941 {
2942 "internalType": "bool",
2943 "name": "",
2944 "type": "bool"
2945 }
2946 ],
2947 "stateMutability": "nonpayable",
2948 "type": "function"
2949 },
2950 {
2951 "inputs": [
2952 {
2953 "internalType": "address",
2954 "name": "from",
2955 "type": "address"
2956 },
2957 {
2958 "internalType": "address",
2959 "name": "to",
2960 "type": "address"
2961 },
2962 {
2963 "internalType": "uint256",
2964 "name": "value",
2965 "type": "uint256"
2966 }
2967 ],
2968 "name": "transferFrom",
2969 "outputs": [
2970 {
2971 "internalType": "bool",
2972 "name": "",
2973 "type": "bool"
2974 }
2975 ],
2976 "stateMutability": "nonpayable",
2977 "type": "function"
2978 }
2979 ],
2980 "bytecode": "",
2981 "bin": "",
2982 "bin-runtime": "",
2983 "srcmap": "",
2984 "srcmap-runtime": ""
2985 },
2986 "contracts/interfaces/IUniswapV2Callee.sol:IUniswapV2Callee": {
2987 "abi": [
2988 {
2989 "inputs": [
2990 {
2991 "internalType": "address",
2992 "name": "sender",
2993 "type": "address"
2994 },
2995 {
2996 "internalType": "uint256",
2997 "name": "amount0",
2998 "type": "uint256"
2999 },
3000 {
3001 "internalType": "uint256",
3002 "name": "amount1",
3003 "type": "uint256"
3004 },
3005 {
3006 "internalType": "bytes",
3007 "name": "data",
3008 "type": "bytes"
3009 }
3010 ],
3011 "name": "uniswapV2Call",
3012 "outputs": [],
3013 "stateMutability": "nonpayable",
3014 "type": "function"
3015 }
3016 ],
3017 "evm": {
3018 "bytecode": {
3019 "linkReferences": {},
3020 "object": "",
3021 "opcodes": "",
3022 "sourceMap": ""
3023 },
3024 "deployedBytecode": {
3025 "immutableReferences": {},
3026 "linkReferences": {},
3027 "object": "",
3028 "opcodes": "",
3029 "sourceMap": ""
3030 }
3031 },
3032 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Callee.sol\":\"IUniswapV2Callee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xeabf5e66d0d34cf92e1c3b945d466343e8a4d4dd56c1a130625bc0a67d152341\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0346b3f44d8a5a36c8ad8ab72bf469b246ae00b009c62bafcdab54ce6dc4a6e3\",\"dweb:/ipfs/QmS79MPjn17Kopw76ekwY5bhrzewDYjfFXc2XLUo9CDQ7G\"]}},\"version\":1}",
3033 "interface": [
3034 {
3035 "inputs": [
3036 {
3037 "internalType": "address",
3038 "name": "sender",
3039 "type": "address"
3040 },
3041 {
3042 "internalType": "uint256",
3043 "name": "amount0",
3044 "type": "uint256"
3045 },
3046 {
3047 "internalType": "uint256",
3048 "name": "amount1",
3049 "type": "uint256"
3050 },
3051 {
3052 "internalType": "bytes",
3053 "name": "data",
3054 "type": "bytes"
3055 }
3056 ],
3057 "name": "uniswapV2Call",
3058 "outputs": [],
3059 "stateMutability": "nonpayable",
3060 "type": "function"
3061 }
3062 ],
3063 "bytecode": "",
3064 "bin": "",
3065 "bin-runtime": "",
3066 "srcmap": "",
3067 "srcmap-runtime": ""
3068 },
3069 "contracts/interfaces/IUniswapV2ERC20.sol:IUniswapV2ERC20": {
3070 "abi": [
3071 {
3072 "anonymous": false,
3073 "inputs": [
3074 {
3075 "indexed": true,
3076 "internalType": "address",
3077 "name": "owner",
3078 "type": "address"
3079 },
3080 {
3081 "indexed": true,
3082 "internalType": "address",
3083 "name": "spender",
3084 "type": "address"
3085 },
3086 {
3087 "indexed": false,
3088 "internalType": "uint256",
3089 "name": "value",
3090 "type": "uint256"
3091 }
3092 ],
3093 "name": "Approval",
3094 "type": "event"
3095 },
3096 {
3097 "anonymous": false,
3098 "inputs": [
3099 {
3100 "indexed": true,
3101 "internalType": "address",
3102 "name": "from",
3103 "type": "address"
3104 },
3105 {
3106 "indexed": true,
3107 "internalType": "address",
3108 "name": "to",
3109 "type": "address"
3110 },
3111 {
3112 "indexed": false,
3113 "internalType": "uint256",
3114 "name": "value",
3115 "type": "uint256"
3116 }
3117 ],
3118 "name": "Transfer",
3119 "type": "event"
3120 },
3121 {
3122 "inputs": [],
3123 "name": "DOMAIN_SEPARATOR",
3124 "outputs": [
3125 {
3126 "internalType": "bytes32",
3127 "name": "",
3128 "type": "bytes32"
3129 }
3130 ],
3131 "stateMutability": "view",
3132 "type": "function"
3133 },
3134 {
3135 "inputs": [],
3136 "name": "PERMIT_TYPEHASH",
3137 "outputs": [
3138 {
3139 "internalType": "bytes32",
3140 "name": "",
3141 "type": "bytes32"
3142 }
3143 ],
3144 "stateMutability": "pure",
3145 "type": "function"
3146 },
3147 {
3148 "inputs": [
3149 {
3150 "internalType": "address",
3151 "name": "owner",
3152 "type": "address"
3153 },
3154 {
3155 "internalType": "address",
3156 "name": "spender",
3157 "type": "address"
3158 }
3159 ],
3160 "name": "allowance",
3161 "outputs": [
3162 {
3163 "internalType": "uint256",
3164 "name": "",
3165 "type": "uint256"
3166 }
3167 ],
3168 "stateMutability": "view",
3169 "type": "function"
3170 },
3171 {
3172 "inputs": [
3173 {
3174 "internalType": "address",
3175 "name": "spender",
3176 "type": "address"
3177 },
3178 {
3179 "internalType": "uint256",
3180 "name": "value",
3181 "type": "uint256"
3182 }
3183 ],
3184 "name": "approve",
3185 "outputs": [
3186 {
3187 "internalType": "bool",
3188 "name": "",
3189 "type": "bool"
3190 }
3191 ],
3192 "stateMutability": "nonpayable",
3193 "type": "function"
3194 },
3195 {
3196 "inputs": [
3197 {
3198 "internalType": "address",
3199 "name": "owner",
3200 "type": "address"
3201 }
3202 ],
3203 "name": "balanceOf",
3204 "outputs": [
3205 {
3206 "internalType": "uint256",
3207 "name": "",
3208 "type": "uint256"
3209 }
3210 ],
3211 "stateMutability": "view",
3212 "type": "function"
3213 },
3214 {
3215 "inputs": [],
3216 "name": "decimals",
3217 "outputs": [
3218 {
3219 "internalType": "uint8",
3220 "name": "",
3221 "type": "uint8"
3222 }
3223 ],
3224 "stateMutability": "pure",
3225 "type": "function"
3226 },
3227 {
3228 "inputs": [],
3229 "name": "name",
3230 "outputs": [
3231 {
3232 "internalType": "string",
3233 "name": "",
3234 "type": "string"
3235 }
3236 ],
3237 "stateMutability": "pure",
3238 "type": "function"
3239 },
3240 {
3241 "inputs": [
3242 {
3243 "internalType": "address",
3244 "name": "owner",
3245 "type": "address"
3246 }
3247 ],
3248 "name": "nonces",
3249 "outputs": [
3250 {
3251 "internalType": "uint256",
3252 "name": "",
3253 "type": "uint256"
3254 }
3255 ],
3256 "stateMutability": "view",
3257 "type": "function"
3258 },
3259 {
3260 "inputs": [
3261 {
3262 "internalType": "address",
3263 "name": "owner",
3264 "type": "address"
3265 },
3266 {
3267 "internalType": "address",
3268 "name": "spender",
3269 "type": "address"
3270 },
3271 {
3272 "internalType": "uint256",
3273 "name": "value",
3274 "type": "uint256"
3275 },
3276 {
3277 "internalType": "uint256",
3278 "name": "deadline",
3279 "type": "uint256"
3280 },
3281 {
3282 "internalType": "uint8",
3283 "name": "v",
3284 "type": "uint8"
3285 },
3286 {
3287 "internalType": "bytes32",
3288 "name": "r",
3289 "type": "bytes32"
3290 },
3291 {
3292 "internalType": "bytes32",
3293 "name": "s",
3294 "type": "bytes32"
3295 }
3296 ],
3297 "name": "permit",
3298 "outputs": [],
3299 "stateMutability": "nonpayable",
3300 "type": "function"
3301 },
3302 {
3303 "inputs": [],
3304 "name": "symbol",
3305 "outputs": [
3306 {
3307 "internalType": "string",
3308 "name": "",
3309 "type": "string"
3310 }
3311 ],
3312 "stateMutability": "pure",
3313 "type": "function"
3314 },
3315 {
3316 "inputs": [],
3317 "name": "totalSupply",
3318 "outputs": [
3319 {
3320 "internalType": "uint256",
3321 "name": "",
3322 "type": "uint256"
3323 }
3324 ],
3325 "stateMutability": "view",
3326 "type": "function"
3327 },
3328 {
3329 "inputs": [
3330 {
3331 "internalType": "address",
3332 "name": "to",
3333 "type": "address"
3334 },
3335 {
3336 "internalType": "uint256",
3337 "name": "value",
3338 "type": "uint256"
3339 }
3340 ],
3341 "name": "transfer",
3342 "outputs": [
3343 {
3344 "internalType": "bool",
3345 "name": "",
3346 "type": "bool"
3347 }
3348 ],
3349 "stateMutability": "nonpayable",
3350 "type": "function"
3351 },
3352 {
3353 "inputs": [
3354 {
3355 "internalType": "address",
3356 "name": "from",
3357 "type": "address"
3358 },
3359 {
3360 "internalType": "address",
3361 "name": "to",
3362 "type": "address"
3363 },
3364 {
3365 "internalType": "uint256",
3366 "name": "value",
3367 "type": "uint256"
3368 }
3369 ],
3370 "name": "transferFrom",
3371 "outputs": [
3372 {
3373 "internalType": "bool",
3374 "name": "",
3375 "type": "bool"
3376 }
3377 ],
3378 "stateMutability": "nonpayable",
3379 "type": "function"
3380 }
3381 ],
3382 "evm": {
3383 "bytecode": {
3384 "linkReferences": {},
3385 "object": "",
3386 "opcodes": "",
3387 "sourceMap": ""
3388 },
3389 "deployedBytecode": {
3390 "immutableReferences": {},
3391 "linkReferences": {},
3392 "object": "",
3393 "opcodes": "",
3394 "sourceMap": ""
3395 }
3396 },
3397 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2ERC20.sol\":\"IUniswapV2ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0xe962657a5221ecae4184c1d24a8be47346ac8ea66de7f8394cc7fd1395a76897\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4a3c6e83fc54158bbd0b6940da4fcc35f1bbc3c8b63d8cb7dfc0874c4f911cfc\",\"dweb:/ipfs/QmXUGJqbxvWosAMfAB8TDVRovHe9f6YtGLBFGQpjCz2NEw\"]}},\"version\":1}",
3398 "interface": [
3399 {
3400 "anonymous": false,
3401 "inputs": [
3402 {
3403 "indexed": true,
3404 "internalType": "address",
3405 "name": "owner",
3406 "type": "address"
3407 },
3408 {
3409 "indexed": true,
3410 "internalType": "address",
3411 "name": "spender",
3412 "type": "address"
3413 },
3414 {
3415 "indexed": false,
3416 "internalType": "uint256",
3417 "name": "value",
3418 "type": "uint256"
3419 }
3420 ],
3421 "name": "Approval",
3422 "type": "event"
3423 },
3424 {
3425 "anonymous": false,
3426 "inputs": [
3427 {
3428 "indexed": true,
3429 "internalType": "address",
3430 "name": "from",
3431 "type": "address"
3432 },
3433 {
3434 "indexed": true,
3435 "internalType": "address",
3436 "name": "to",
3437 "type": "address"
3438 },
3439 {
3440 "indexed": false,
3441 "internalType": "uint256",
3442 "name": "value",
3443 "type": "uint256"
3444 }
3445 ],
3446 "name": "Transfer",
3447 "type": "event"
3448 },
3449 {
3450 "inputs": [],
3451 "name": "DOMAIN_SEPARATOR",
3452 "outputs": [
3453 {
3454 "internalType": "bytes32",
3455 "name": "",
3456 "type": "bytes32"
3457 }
3458 ],
3459 "stateMutability": "view",
3460 "type": "function"
3461 },
3462 {
3463 "inputs": [],
3464 "name": "PERMIT_TYPEHASH",
3465 "outputs": [
3466 {
3467 "internalType": "bytes32",
3468 "name": "",
3469 "type": "bytes32"
3470 }
3471 ],
3472 "stateMutability": "pure",
3473 "type": "function"
3474 },
3475 {
3476 "inputs": [
3477 {
3478 "internalType": "address",
3479 "name": "owner",
3480 "type": "address"
3481 },
3482 {
3483 "internalType": "address",
3484 "name": "spender",
3485 "type": "address"
3486 }
3487 ],
3488 "name": "allowance",
3489 "outputs": [
3490 {
3491 "internalType": "uint256",
3492 "name": "",
3493 "type": "uint256"
3494 }
3495 ],
3496 "stateMutability": "view",
3497 "type": "function"
3498 },
3499 {
3500 "inputs": [
3501 {
3502 "internalType": "address",
3503 "name": "spender",
3504 "type": "address"
3505 },
3506 {
3507 "internalType": "uint256",
3508 "name": "value",
3509 "type": "uint256"
3510 }
3511 ],
3512 "name": "approve",
3513 "outputs": [
3514 {
3515 "internalType": "bool",
3516 "name": "",
3517 "type": "bool"
3518 }
3519 ],
3520 "stateMutability": "nonpayable",
3521 "type": "function"
3522 },
3523 {
3524 "inputs": [
3525 {
3526 "internalType": "address",
3527 "name": "owner",
3528 "type": "address"
3529 }
3530 ],
3531 "name": "balanceOf",
3532 "outputs": [
3533 {
3534 "internalType": "uint256",
3535 "name": "",
3536 "type": "uint256"
3537 }
3538 ],
3539 "stateMutability": "view",
3540 "type": "function"
3541 },
3542 {
3543 "inputs": [],
3544 "name": "decimals",
3545 "outputs": [
3546 {
3547 "internalType": "uint8",
3548 "name": "",
3549 "type": "uint8"
3550 }
3551 ],
3552 "stateMutability": "pure",
3553 "type": "function"
3554 },
3555 {
3556 "inputs": [],
3557 "name": "name",
3558 "outputs": [
3559 {
3560 "internalType": "string",
3561 "name": "",
3562 "type": "string"
3563 }
3564 ],
3565 "stateMutability": "pure",
3566 "type": "function"
3567 },
3568 {
3569 "inputs": [
3570 {
3571 "internalType": "address",
3572 "name": "owner",
3573 "type": "address"
3574 }
3575 ],
3576 "name": "nonces",
3577 "outputs": [
3578 {
3579 "internalType": "uint256",
3580 "name": "",
3581 "type": "uint256"
3582 }
3583 ],
3584 "stateMutability": "view",
3585 "type": "function"
3586 },
3587 {
3588 "inputs": [
3589 {
3590 "internalType": "address",
3591 "name": "owner",
3592 "type": "address"
3593 },
3594 {
3595 "internalType": "address",
3596 "name": "spender",
3597 "type": "address"
3598 },
3599 {
3600 "internalType": "uint256",
3601 "name": "value",
3602 "type": "uint256"
3603 },
3604 {
3605 "internalType": "uint256",
3606 "name": "deadline",
3607 "type": "uint256"
3608 },
3609 {
3610 "internalType": "uint8",
3611 "name": "v",
3612 "type": "uint8"
3613 },
3614 {
3615 "internalType": "bytes32",
3616 "name": "r",
3617 "type": "bytes32"
3618 },
3619 {
3620 "internalType": "bytes32",
3621 "name": "s",
3622 "type": "bytes32"
3623 }
3624 ],
3625 "name": "permit",
3626 "outputs": [],
3627 "stateMutability": "nonpayable",
3628 "type": "function"
3629 },
3630 {
3631 "inputs": [],
3632 "name": "symbol",
3633 "outputs": [
3634 {
3635 "internalType": "string",
3636 "name": "",
3637 "type": "string"
3638 }
3639 ],
3640 "stateMutability": "pure",
3641 "type": "function"
3642 },
3643 {
3644 "inputs": [],
3645 "name": "totalSupply",
3646 "outputs": [
3647 {
3648 "internalType": "uint256",
3649 "name": "",
3650 "type": "uint256"
3651 }
3652 ],
3653 "stateMutability": "view",
3654 "type": "function"
3655 },
3656 {
3657 "inputs": [
3658 {
3659 "internalType": "address",
3660 "name": "to",
3661 "type": "address"
3662 },
3663 {
3664 "internalType": "uint256",
3665 "name": "value",
3666 "type": "uint256"
3667 }
3668 ],
3669 "name": "transfer",
3670 "outputs": [
3671 {
3672 "internalType": "bool",
3673 "name": "",
3674 "type": "bool"
3675 }
3676 ],
3677 "stateMutability": "nonpayable",
3678 "type": "function"
3679 },
3680 {
3681 "inputs": [
3682 {
3683 "internalType": "address",
3684 "name": "from",
3685 "type": "address"
3686 },
3687 {
3688 "internalType": "address",
3689 "name": "to",
3690 "type": "address"
3691 },
3692 {
3693 "internalType": "uint256",
3694 "name": "value",
3695 "type": "uint256"
3696 }
3697 ],
3698 "name": "transferFrom",
3699 "outputs": [
3700 {
3701 "internalType": "bool",
3702 "name": "",
3703 "type": "bool"
3704 }
3705 ],
3706 "stateMutability": "nonpayable",
3707 "type": "function"
3708 }
3709 ],
3710 "bytecode": "",
3711 "bin": "",
3712 "bin-runtime": "",
3713 "srcmap": "",
3714 "srcmap-runtime": ""
3715 },
3716 "contracts/interfaces/IUniswapV2Factory.sol:IUniswapV2Factory": {
3717 "abi": [
3718 {
3719 "anonymous": false,
3720 "inputs": [
3721 {
3722 "indexed": true,
3723 "internalType": "address",
3724 "name": "token0",
3725 "type": "address"
3726 },
3727 {
3728 "indexed": true,
3729 "internalType": "address",
3730 "name": "token1",
3731 "type": "address"
3732 },
3733 {
3734 "indexed": false,
3735 "internalType": "address",
3736 "name": "pair",
3737 "type": "address"
3738 },
3739 {
3740 "indexed": false,
3741 "internalType": "uint256",
3742 "name": "",
3743 "type": "uint256"
3744 }
3745 ],
3746 "name": "PairCreated",
3747 "type": "event"
3748 },
3749 {
3750 "inputs": [
3751 {
3752 "internalType": "uint256",
3753 "name": "",
3754 "type": "uint256"
3755 }
3756 ],
3757 "name": "allPairs",
3758 "outputs": [
3759 {
3760 "internalType": "address",
3761 "name": "pair",
3762 "type": "address"
3763 }
3764 ],
3765 "stateMutability": "view",
3766 "type": "function"
3767 },
3768 {
3769 "inputs": [],
3770 "name": "allPairsLength",
3771 "outputs": [
3772 {
3773 "internalType": "uint256",
3774 "name": "",
3775 "type": "uint256"
3776 }
3777 ],
3778 "stateMutability": "view",
3779 "type": "function"
3780 },
3781 {
3782 "inputs": [
3783 {
3784 "internalType": "address",
3785 "name": "tokenA",
3786 "type": "address"
3787 },
3788 {
3789 "internalType": "address",
3790 "name": "tokenB",
3791 "type": "address"
3792 }
3793 ],
3794 "name": "createPair",
3795 "outputs": [
3796 {
3797 "internalType": "address",
3798 "name": "pair",
3799 "type": "address"
3800 }
3801 ],
3802 "stateMutability": "nonpayable",
3803 "type": "function"
3804 },
3805 {
3806 "inputs": [],
3807 "name": "feeTo",
3808 "outputs": [
3809 {
3810 "internalType": "address",
3811 "name": "",
3812 "type": "address"
3813 }
3814 ],
3815 "stateMutability": "view",
3816 "type": "function"
3817 },
3818 {
3819 "inputs": [],
3820 "name": "feeToSetter",
3821 "outputs": [
3822 {
3823 "internalType": "address",
3824 "name": "",
3825 "type": "address"
3826 }
3827 ],
3828 "stateMutability": "view",
3829 "type": "function"
3830 },
3831 {
3832 "inputs": [
3833 {
3834 "internalType": "address",
3835 "name": "tokenA",
3836 "type": "address"
3837 },
3838 {
3839 "internalType": "address",
3840 "name": "tokenB",
3841 "type": "address"
3842 }
3843 ],
3844 "name": "getPair",
3845 "outputs": [
3846 {
3847 "internalType": "address",
3848 "name": "pair",
3849 "type": "address"
3850 }
3851 ],
3852 "stateMutability": "view",
3853 "type": "function"
3854 },
3855 {
3856 "inputs": [
3857 {
3858 "internalType": "address",
3859 "name": "",
3860 "type": "address"
3861 }
3862 ],
3863 "name": "setFeeTo",
3864 "outputs": [],
3865 "stateMutability": "nonpayable",
3866 "type": "function"
3867 },
3868 {
3869 "inputs": [
3870 {
3871 "internalType": "address",
3872 "name": "",
3873 "type": "address"
3874 }
3875 ],
3876 "name": "setFeeToSetter",
3877 "outputs": [],
3878 "stateMutability": "nonpayable",
3879 "type": "function"
3880 }
3881 ],
3882 "evm": {
3883 "bytecode": {
3884 "linkReferences": {},
3885 "object": "",
3886 "opcodes": "",
3887 "sourceMap": ""
3888 },
3889 "deployedBytecode": {
3890 "immutableReferences": {},
3891 "linkReferences": {},
3892 "object": "",
3893 "opcodes": "",
3894 "sourceMap": ""
3895 }
3896 },
3897 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Factory.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xf493893f508c8caa2f5923d1a39080fc5f1f362ea1f1d65ffc38b7782b35c4b7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://993a51b20f6d79edb33069524ee3a66378f8687d3df52e279561c4ef72e17cb2\",\"dweb:/ipfs/QmQSmgeRkVyA4jyShZStAWVt1CWNZQ8JvYmc2V2jgEUNEE\"]}},\"version\":1}",
3898 "interface": [
3899 {
3900 "anonymous": false,
3901 "inputs": [
3902 {
3903 "indexed": true,
3904 "internalType": "address",
3905 "name": "token0",
3906 "type": "address"
3907 },
3908 {
3909 "indexed": true,
3910 "internalType": "address",
3911 "name": "token1",
3912 "type": "address"
3913 },
3914 {
3915 "indexed": false,
3916 "internalType": "address",
3917 "name": "pair",
3918 "type": "address"
3919 },
3920 {
3921 "indexed": false,
3922 "internalType": "uint256",
3923 "name": "",
3924 "type": "uint256"
3925 }
3926 ],
3927 "name": "PairCreated",
3928 "type": "event"
3929 },
3930 {
3931 "inputs": [
3932 {
3933 "internalType": "uint256",
3934 "name": "",
3935 "type": "uint256"
3936 }
3937 ],
3938 "name": "allPairs",
3939 "outputs": [
3940 {
3941 "internalType": "address",
3942 "name": "pair",
3943 "type": "address"
3944 }
3945 ],
3946 "stateMutability": "view",
3947 "type": "function"
3948 },
3949 {
3950 "inputs": [],
3951 "name": "allPairsLength",
3952 "outputs": [
3953 {
3954 "internalType": "uint256",
3955 "name": "",
3956 "type": "uint256"
3957 }
3958 ],
3959 "stateMutability": "view",
3960 "type": "function"
3961 },
3962 {
3963 "inputs": [
3964 {
3965 "internalType": "address",
3966 "name": "tokenA",
3967 "type": "address"
3968 },
3969 {
3970 "internalType": "address",
3971 "name": "tokenB",
3972 "type": "address"
3973 }
3974 ],
3975 "name": "createPair",
3976 "outputs": [
3977 {
3978 "internalType": "address",
3979 "name": "pair",
3980 "type": "address"
3981 }
3982 ],
3983 "stateMutability": "nonpayable",
3984 "type": "function"
3985 },
3986 {
3987 "inputs": [],
3988 "name": "feeTo",
3989 "outputs": [
3990 {
3991 "internalType": "address",
3992 "name": "",
3993 "type": "address"
3994 }
3995 ],
3996 "stateMutability": "view",
3997 "type": "function"
3998 },
3999 {
4000 "inputs": [],
4001 "name": "feeToSetter",
4002 "outputs": [
4003 {
4004 "internalType": "address",
4005 "name": "",
4006 "type": "address"
4007 }
4008 ],
4009 "stateMutability": "view",
4010 "type": "function"
4011 },
4012 {
4013 "inputs": [
4014 {
4015 "internalType": "address",
4016 "name": "tokenA",
4017 "type": "address"
4018 },
4019 {
4020 "internalType": "address",
4021 "name": "tokenB",
4022 "type": "address"
4023 }
4024 ],
4025 "name": "getPair",
4026 "outputs": [
4027 {
4028 "internalType": "address",
4029 "name": "pair",
4030 "type": "address"
4031 }
4032 ],
4033 "stateMutability": "view",
4034 "type": "function"
4035 },
4036 {
4037 "inputs": [
4038 {
4039 "internalType": "address",
4040 "name": "",
4041 "type": "address"
4042 }
4043 ],
4044 "name": "setFeeTo",
4045 "outputs": [],
4046 "stateMutability": "nonpayable",
4047 "type": "function"
4048 },
4049 {
4050 "inputs": [
4051 {
4052 "internalType": "address",
4053 "name": "",
4054 "type": "address"
4055 }
4056 ],
4057 "name": "setFeeToSetter",
4058 "outputs": [],
4059 "stateMutability": "nonpayable",
4060 "type": "function"
4061 }
4062 ],
4063 "bytecode": "",
4064 "bin": "",
4065 "bin-runtime": "",
4066 "srcmap": "",
4067 "srcmap-runtime": ""
4068 },
4069 "contracts/interfaces/IUniswapV2Pair.sol:IUniswapV2Pair": {
4070 "abi": [
4071 {
4072 "anonymous": false,
4073 "inputs": [
4074 {
4075 "indexed": true,
4076 "internalType": "address",
4077 "name": "owner",
4078 "type": "address"
4079 },
4080 {
4081 "indexed": true,
4082 "internalType": "address",
4083 "name": "spender",
4084 "type": "address"
4085 },
4086 {
4087 "indexed": false,
4088 "internalType": "uint256",
4089 "name": "value",
4090 "type": "uint256"
4091 }
4092 ],
4093 "name": "Approval",
4094 "type": "event"
4095 },
4096 {
4097 "anonymous": false,
4098 "inputs": [
4099 {
4100 "indexed": true,
4101 "internalType": "address",
4102 "name": "sender",
4103 "type": "address"
4104 },
4105 {
4106 "indexed": false,
4107 "internalType": "uint256",
4108 "name": "amount0",
4109 "type": "uint256"
4110 },
4111 {
4112 "indexed": false,
4113 "internalType": "uint256",
4114 "name": "amount1",
4115 "type": "uint256"
4116 },
4117 {
4118 "indexed": true,
4119 "internalType": "address",
4120 "name": "to",
4121 "type": "address"
4122 }
4123 ],
4124 "name": "Burn",
4125 "type": "event"
4126 },
4127 {
4128 "anonymous": false,
4129 "inputs": [
4130 {
4131 "indexed": true,
4132 "internalType": "address",
4133 "name": "sender",
4134 "type": "address"
4135 },
4136 {
4137 "indexed": false,
4138 "internalType": "uint256",
4139 "name": "amount0",
4140 "type": "uint256"
4141 },
4142 {
4143 "indexed": false,
4144 "internalType": "uint256",
4145 "name": "amount1",
4146 "type": "uint256"
4147 }
4148 ],
4149 "name": "Mint",
4150 "type": "event"
4151 },
4152 {
4153 "anonymous": false,
4154 "inputs": [
4155 {
4156 "indexed": true,
4157 "internalType": "address",
4158 "name": "sender",
4159 "type": "address"
4160 },
4161 {
4162 "indexed": false,
4163 "internalType": "uint256",
4164 "name": "amount0In",
4165 "type": "uint256"
4166 },
4167 {
4168 "indexed": false,
4169 "internalType": "uint256",
4170 "name": "amount1In",
4171 "type": "uint256"
4172 },
4173 {
4174 "indexed": false,
4175 "internalType": "uint256",
4176 "name": "amount0Out",
4177 "type": "uint256"
4178 },
4179 {
4180 "indexed": false,
4181 "internalType": "uint256",
4182 "name": "amount1Out",
4183 "type": "uint256"
4184 },
4185 {
4186 "indexed": true,
4187 "internalType": "address",
4188 "name": "to",
4189 "type": "address"
4190 }
4191 ],
4192 "name": "Swap",
4193 "type": "event"
4194 },
4195 {
4196 "anonymous": false,
4197 "inputs": [
4198 {
4199 "indexed": false,
4200 "internalType": "uint112",
4201 "name": "reserve0",
4202 "type": "uint112"
4203 },
4204 {
4205 "indexed": false,
4206 "internalType": "uint112",
4207 "name": "reserve1",
4208 "type": "uint112"
4209 }
4210 ],
4211 "name": "Sync",
4212 "type": "event"
4213 },
4214 {
4215 "anonymous": false,
4216 "inputs": [
4217 {
4218 "indexed": true,
4219 "internalType": "address",
4220 "name": "from",
4221 "type": "address"
4222 },
4223 {
4224 "indexed": true,
4225 "internalType": "address",
4226 "name": "to",
4227 "type": "address"
4228 },
4229 {
4230 "indexed": false,
4231 "internalType": "uint256",
4232 "name": "value",
4233 "type": "uint256"
4234 }
4235 ],
4236 "name": "Transfer",
4237 "type": "event"
4238 },
4239 {
4240 "inputs": [],
4241 "name": "DOMAIN_SEPARATOR",
4242 "outputs": [
4243 {
4244 "internalType": "bytes32",
4245 "name": "",
4246 "type": "bytes32"
4247 }
4248 ],
4249 "stateMutability": "view",
4250 "type": "function"
4251 },
4252 {
4253 "inputs": [],
4254 "name": "MINIMUM_LIQUIDITY",
4255 "outputs": [
4256 {
4257 "internalType": "uint256",
4258 "name": "",
4259 "type": "uint256"
4260 }
4261 ],
4262 "stateMutability": "pure",
4263 "type": "function"
4264 },
4265 {
4266 "inputs": [],
4267 "name": "PERMIT_TYPEHASH",
4268 "outputs": [
4269 {
4270 "internalType": "bytes32",
4271 "name": "",
4272 "type": "bytes32"
4273 }
4274 ],
4275 "stateMutability": "pure",
4276 "type": "function"
4277 },
4278 {
4279 "inputs": [
4280 {
4281 "internalType": "address",
4282 "name": "owner",
4283 "type": "address"
4284 },
4285 {
4286 "internalType": "address",
4287 "name": "spender",
4288 "type": "address"
4289 }
4290 ],
4291 "name": "allowance",
4292 "outputs": [
4293 {
4294 "internalType": "uint256",
4295 "name": "",
4296 "type": "uint256"
4297 }
4298 ],
4299 "stateMutability": "view",
4300 "type": "function"
4301 },
4302 {
4303 "inputs": [
4304 {
4305 "internalType": "address",
4306 "name": "spender",
4307 "type": "address"
4308 },
4309 {
4310 "internalType": "uint256",
4311 "name": "value",
4312 "type": "uint256"
4313 }
4314 ],
4315 "name": "approve",
4316 "outputs": [
4317 {
4318 "internalType": "bool",
4319 "name": "",
4320 "type": "bool"
4321 }
4322 ],
4323 "stateMutability": "nonpayable",
4324 "type": "function"
4325 },
4326 {
4327 "inputs": [
4328 {
4329 "internalType": "address",
4330 "name": "owner",
4331 "type": "address"
4332 }
4333 ],
4334 "name": "balanceOf",
4335 "outputs": [
4336 {
4337 "internalType": "uint256",
4338 "name": "",
4339 "type": "uint256"
4340 }
4341 ],
4342 "stateMutability": "view",
4343 "type": "function"
4344 },
4345 {
4346 "inputs": [
4347 {
4348 "internalType": "address",
4349 "name": "to",
4350 "type": "address"
4351 }
4352 ],
4353 "name": "burn",
4354 "outputs": [
4355 {
4356 "internalType": "uint256",
4357 "name": "amount0",
4358 "type": "uint256"
4359 },
4360 {
4361 "internalType": "uint256",
4362 "name": "amount1",
4363 "type": "uint256"
4364 }
4365 ],
4366 "stateMutability": "nonpayable",
4367 "type": "function"
4368 },
4369 {
4370 "inputs": [],
4371 "name": "decimals",
4372 "outputs": [
4373 {
4374 "internalType": "uint8",
4375 "name": "",
4376 "type": "uint8"
4377 }
4378 ],
4379 "stateMutability": "pure",
4380 "type": "function"
4381 },
4382 {
4383 "inputs": [],
4384 "name": "factory",
4385 "outputs": [
4386 {
4387 "internalType": "address",
4388 "name": "",
4389 "type": "address"
4390 }
4391 ],
4392 "stateMutability": "view",
4393 "type": "function"
4394 },
4395 {
4396 "inputs": [],
4397 "name": "getReserves",
4398 "outputs": [
4399 {
4400 "internalType": "uint112",
4401 "name": "reserve0",
4402 "type": "uint112"
4403 },
4404 {
4405 "internalType": "uint112",
4406 "name": "reserve1",
4407 "type": "uint112"
4408 },
4409 {
4410 "internalType": "uint32",
4411 "name": "blockTimestampLast",
4412 "type": "uint32"
4413 }
4414 ],
4415 "stateMutability": "view",
4416 "type": "function"
4417 },
4418 {
4419 "inputs": [
4420 {
4421 "internalType": "address",
4422 "name": "",
4423 "type": "address"
4424 },
4425 {
4426 "internalType": "address",
4427 "name": "",
4428 "type": "address"
4429 }
4430 ],
4431 "name": "initialize",
4432 "outputs": [],
4433 "stateMutability": "nonpayable",
4434 "type": "function"
4435 },
4436 {
4437 "inputs": [],
4438 "name": "kLast",
4439 "outputs": [
4440 {
4441 "internalType": "uint256",
4442 "name": "",
4443 "type": "uint256"
4444 }
4445 ],
4446 "stateMutability": "view",
4447 "type": "function"
4448 },
4449 {
4450 "inputs": [
4451 {
4452 "internalType": "address",
4453 "name": "to",
4454 "type": "address"
4455 }
4456 ],
4457 "name": "mint",
4458 "outputs": [
4459 {
4460 "internalType": "uint256",
4461 "name": "liquidity",
4462 "type": "uint256"
4463 }
4464 ],
4465 "stateMutability": "nonpayable",
4466 "type": "function"
4467 },
4468 {
4469 "inputs": [],
4470 "name": "name",
4471 "outputs": [
4472 {
4473 "internalType": "string",
4474 "name": "",
4475 "type": "string"
4476 }
4477 ],
4478 "stateMutability": "pure",
4479 "type": "function"
4480 },
4481 {
4482 "inputs": [
4483 {
4484 "internalType": "address",
4485 "name": "owner",
4486 "type": "address"
4487 }
4488 ],
4489 "name": "nonces",
4490 "outputs": [
4491 {
4492 "internalType": "uint256",
4493 "name": "",
4494 "type": "uint256"
4495 }
4496 ],
4497 "stateMutability": "view",
4498 "type": "function"
4499 },
4500 {
4501 "inputs": [
4502 {
4503 "internalType": "address",
4504 "name": "owner",
4505 "type": "address"
4506 },
4507 {
4508 "internalType": "address",
4509 "name": "spender",
4510 "type": "address"
4511 },
4512 {
4513 "internalType": "uint256",
4514 "name": "value",
4515 "type": "uint256"
4516 },
4517 {
4518 "internalType": "uint256",
4519 "name": "deadline",
4520 "type": "uint256"
4521 },
4522 {
4523 "internalType": "uint8",
4524 "name": "v",
4525 "type": "uint8"
4526 },
4527 {
4528 "internalType": "bytes32",
4529 "name": "r",
4530 "type": "bytes32"
4531 },
4532 {
4533 "internalType": "bytes32",
4534 "name": "s",
4535 "type": "bytes32"
4536 }
4537 ],
4538 "name": "permit",
4539 "outputs": [],
4540 "stateMutability": "nonpayable",
4541 "type": "function"
4542 },
4543 {
4544 "inputs": [],
4545 "name": "price0CumulativeLast",
4546 "outputs": [
4547 {
4548 "internalType": "uint256",
4549 "name": "",
4550 "type": "uint256"
4551 }
4552 ],
4553 "stateMutability": "view",
4554 "type": "function"
4555 },
4556 {
4557 "inputs": [],
4558 "name": "price1CumulativeLast",
4559 "outputs": [
4560 {
4561 "internalType": "uint256",
4562 "name": "",
4563 "type": "uint256"
4564 }
4565 ],
4566 "stateMutability": "view",
4567 "type": "function"
4568 },
4569 {
4570 "inputs": [
4571 {
4572 "internalType": "address",
4573 "name": "to",
4574 "type": "address"
4575 }
4576 ],
4577 "name": "skim",
4578 "outputs": [],
4579 "stateMutability": "nonpayable",
4580 "type": "function"
4581 },
4582 {
4583 "inputs": [
4584 {
4585 "internalType": "uint256",
4586 "name": "amount0Out",
4587 "type": "uint256"
4588 },
4589 {
4590 "internalType": "uint256",
4591 "name": "amount1Out",
4592 "type": "uint256"
4593 },
4594 {
4595 "internalType": "address",
4596 "name": "to",
4597 "type": "address"
4598 },
4599 {
4600 "internalType": "bytes",
4601 "name": "data",
4602 "type": "bytes"
4603 }
4604 ],
4605 "name": "swap",
4606 "outputs": [],
4607 "stateMutability": "nonpayable",
4608 "type": "function"
4609 },
4610 {
4611 "inputs": [],
4612 "name": "symbol",
4613 "outputs": [
4614 {
4615 "internalType": "string",
4616 "name": "",
4617 "type": "string"
4618 }
4619 ],
4620 "stateMutability": "pure",
4621 "type": "function"
4622 },
4623 {
4624 "inputs": [],
4625 "name": "sync",
4626 "outputs": [],
4627 "stateMutability": "nonpayable",
4628 "type": "function"
4629 },
4630 {
4631 "inputs": [],
4632 "name": "token0",
4633 "outputs": [
4634 {
4635 "internalType": "address",
4636 "name": "",
4637 "type": "address"
4638 }
4639 ],
4640 "stateMutability": "view",
4641 "type": "function"
4642 },
4643 {
4644 "inputs": [],
4645 "name": "token1",
4646 "outputs": [
4647 {
4648 "internalType": "address",
4649 "name": "",
4650 "type": "address"
4651 }
4652 ],
4653 "stateMutability": "view",
4654 "type": "function"
4655 },
4656 {
4657 "inputs": [],
4658 "name": "totalSupply",
4659 "outputs": [
4660 {
4661 "internalType": "uint256",
4662 "name": "",
4663 "type": "uint256"
4664 }
4665 ],
4666 "stateMutability": "view",
4667 "type": "function"
4668 },
4669 {
4670 "inputs": [
4671 {
4672 "internalType": "address",
4673 "name": "to",
4674 "type": "address"
4675 },
4676 {
4677 "internalType": "uint256",
4678 "name": "value",
4679 "type": "uint256"
4680 }
4681 ],
4682 "name": "transfer",
4683 "outputs": [
4684 {
4685 "internalType": "bool",
4686 "name": "",
4687 "type": "bool"
4688 }
4689 ],
4690 "stateMutability": "nonpayable",
4691 "type": "function"
4692 },
4693 {
4694 "inputs": [
4695 {
4696 "internalType": "address",
4697 "name": "from",
4698 "type": "address"
4699 },
4700 {
4701 "internalType": "address",
4702 "name": "to",
4703 "type": "address"
4704 },
4705 {
4706 "internalType": "uint256",
4707 "name": "value",
4708 "type": "uint256"
4709 }
4710 ],
4711 "name": "transferFrom",
4712 "outputs": [
4713 {
4714 "internalType": "bool",
4715 "name": "",
4716 "type": "bool"
4717 }
4718 ],
4719 "stateMutability": "nonpayable",
4720 "type": "function"
4721 }
4722 ],
4723 "evm": {
4724 "bytecode": {
4725 "linkReferences": {},
4726 "object": "",
4727 "opcodes": "",
4728 "sourceMap": ""
4729 },
4730 "deployedBytecode": {
4731 "immutableReferences": {},
4732 "linkReferences": {},
4733 "object": "",
4734 "opcodes": "",
4735 "sourceMap": ""
4736 }
4737 },
4738 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Pair.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0xa87a1a8e9d72090e25812f396a9c0766a715dda52d8b6115ca0ab3f2a9c10f87\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b179da8f464eaa162ef0f9cfac56989d6fb5aa9667bebd23b355d93ea3ff10b\",\"dweb:/ipfs/QmcgYA55h3VJJRo7fFFNSDDDspdnJVTW83aH657v4E9bGZ\"]}},\"version\":1}",
4739 "interface": [
4740 {
4741 "anonymous": false,
4742 "inputs": [
4743 {
4744 "indexed": true,
4745 "internalType": "address",
4746 "name": "owner",
4747 "type": "address"
4748 },
4749 {
4750 "indexed": true,
4751 "internalType": "address",
4752 "name": "spender",
4753 "type": "address"
4754 },
4755 {
4756 "indexed": false,
4757 "internalType": "uint256",
4758 "name": "value",
4759 "type": "uint256"
4760 }
4761 ],
4762 "name": "Approval",
4763 "type": "event"
4764 },
4765 {
4766 "anonymous": false,
4767 "inputs": [
4768 {
4769 "indexed": true,
4770 "internalType": "address",
4771 "name": "sender",
4772 "type": "address"
4773 },
4774 {
4775 "indexed": false,
4776 "internalType": "uint256",
4777 "name": "amount0",
4778 "type": "uint256"
4779 },
4780 {
4781 "indexed": false,
4782 "internalType": "uint256",
4783 "name": "amount1",
4784 "type": "uint256"
4785 },
4786 {
4787 "indexed": true,
4788 "internalType": "address",
4789 "name": "to",
4790 "type": "address"
4791 }
4792 ],
4793 "name": "Burn",
4794 "type": "event"
4795 },
4796 {
4797 "anonymous": false,
4798 "inputs": [
4799 {
4800 "indexed": true,
4801 "internalType": "address",
4802 "name": "sender",
4803 "type": "address"
4804 },
4805 {
4806 "indexed": false,
4807 "internalType": "uint256",
4808 "name": "amount0",
4809 "type": "uint256"
4810 },
4811 {
4812 "indexed": false,
4813 "internalType": "uint256",
4814 "name": "amount1",
4815 "type": "uint256"
4816 }
4817 ],
4818 "name": "Mint",
4819 "type": "event"
4820 },
4821 {
4822 "anonymous": false,
4823 "inputs": [
4824 {
4825 "indexed": true,
4826 "internalType": "address",
4827 "name": "sender",
4828 "type": "address"
4829 },
4830 {
4831 "indexed": false,
4832 "internalType": "uint256",
4833 "name": "amount0In",
4834 "type": "uint256"
4835 },
4836 {
4837 "indexed": false,
4838 "internalType": "uint256",
4839 "name": "amount1In",
4840 "type": "uint256"
4841 },
4842 {
4843 "indexed": false,
4844 "internalType": "uint256",
4845 "name": "amount0Out",
4846 "type": "uint256"
4847 },
4848 {
4849 "indexed": false,
4850 "internalType": "uint256",
4851 "name": "amount1Out",
4852 "type": "uint256"
4853 },
4854 {
4855 "indexed": true,
4856 "internalType": "address",
4857 "name": "to",
4858 "type": "address"
4859 }
4860 ],
4861 "name": "Swap",
4862 "type": "event"
4863 },
4864 {
4865 "anonymous": false,
4866 "inputs": [
4867 {
4868 "indexed": false,
4869 "internalType": "uint112",
4870 "name": "reserve0",
4871 "type": "uint112"
4872 },
4873 {
4874 "indexed": false,
4875 "internalType": "uint112",
4876 "name": "reserve1",
4877 "type": "uint112"
4878 }
4879 ],
4880 "name": "Sync",
4881 "type": "event"
4882 },
4883 {
4884 "anonymous": false,
4885 "inputs": [
4886 {
4887 "indexed": true,
4888 "internalType": "address",
4889 "name": "from",
4890 "type": "address"
4891 },
4892 {
4893 "indexed": true,
4894 "internalType": "address",
4895 "name": "to",
4896 "type": "address"
4897 },
4898 {
4899 "indexed": false,
4900 "internalType": "uint256",
4901 "name": "value",
4902 "type": "uint256"
4903 }
4904 ],
4905 "name": "Transfer",
4906 "type": "event"
4907 },
4908 {
4909 "inputs": [],
4910 "name": "DOMAIN_SEPARATOR",
4911 "outputs": [
4912 {
4913 "internalType": "bytes32",
4914 "name": "",
4915 "type": "bytes32"
4916 }
4917 ],
4918 "stateMutability": "view",
4919 "type": "function"
4920 },
4921 {
4922 "inputs": [],
4923 "name": "MINIMUM_LIQUIDITY",
4924 "outputs": [
4925 {
4926 "internalType": "uint256",
4927 "name": "",
4928 "type": "uint256"
4929 }
4930 ],
4931 "stateMutability": "pure",
4932 "type": "function"
4933 },
4934 {
4935 "inputs": [],
4936 "name": "PERMIT_TYPEHASH",
4937 "outputs": [
4938 {
4939 "internalType": "bytes32",
4940 "name": "",
4941 "type": "bytes32"
4942 }
4943 ],
4944 "stateMutability": "pure",
4945 "type": "function"
4946 },
4947 {
4948 "inputs": [
4949 {
4950 "internalType": "address",
4951 "name": "owner",
4952 "type": "address"
4953 },
4954 {
4955 "internalType": "address",
4956 "name": "spender",
4957 "type": "address"
4958 }
4959 ],
4960 "name": "allowance",
4961 "outputs": [
4962 {
4963 "internalType": "uint256",
4964 "name": "",
4965 "type": "uint256"
4966 }
4967 ],
4968 "stateMutability": "view",
4969 "type": "function"
4970 },
4971 {
4972 "inputs": [
4973 {
4974 "internalType": "address",
4975 "name": "spender",
4976 "type": "address"
4977 },
4978 {
4979 "internalType": "uint256",
4980 "name": "value",
4981 "type": "uint256"
4982 }
4983 ],
4984 "name": "approve",
4985 "outputs": [
4986 {
4987 "internalType": "bool",
4988 "name": "",
4989 "type": "bool"
4990 }
4991 ],
4992 "stateMutability": "nonpayable",
4993 "type": "function"
4994 },
4995 {
4996 "inputs": [
4997 {
4998 "internalType": "address",
4999 "name": "owner",
5000 "type": "address"
5001 }
5002 ],
5003 "name": "balanceOf",
5004 "outputs": [
5005 {
5006 "internalType": "uint256",
5007 "name": "",
5008 "type": "uint256"
5009 }
5010 ],
5011 "stateMutability": "view",
5012 "type": "function"
5013 },
5014 {
5015 "inputs": [
5016 {
5017 "internalType": "address",
5018 "name": "to",
5019 "type": "address"
5020 }
5021 ],
5022 "name": "burn",
5023 "outputs": [
5024 {
5025 "internalType": "uint256",
5026 "name": "amount0",
5027 "type": "uint256"
5028 },
5029 {
5030 "internalType": "uint256",
5031 "name": "amount1",
5032 "type": "uint256"
5033 }
5034 ],
5035 "stateMutability": "nonpayable",
5036 "type": "function"
5037 },
5038 {
5039 "inputs": [],
5040 "name": "decimals",
5041 "outputs": [
5042 {
5043 "internalType": "uint8",
5044 "name": "",
5045 "type": "uint8"
5046 }
5047 ],
5048 "stateMutability": "pure",
5049 "type": "function"
5050 },
5051 {
5052 "inputs": [],
5053 "name": "factory",
5054 "outputs": [
5055 {
5056 "internalType": "address",
5057 "name": "",
5058 "type": "address"
5059 }
5060 ],
5061 "stateMutability": "view",
5062 "type": "function"
5063 },
5064 {
5065 "inputs": [],
5066 "name": "getReserves",
5067 "outputs": [
5068 {
5069 "internalType": "uint112",
5070 "name": "reserve0",
5071 "type": "uint112"
5072 },
5073 {
5074 "internalType": "uint112",
5075 "name": "reserve1",
5076 "type": "uint112"
5077 },
5078 {
5079 "internalType": "uint32",
5080 "name": "blockTimestampLast",
5081 "type": "uint32"
5082 }
5083 ],
5084 "stateMutability": "view",
5085 "type": "function"
5086 },
5087 {
5088 "inputs": [
5089 {
5090 "internalType": "address",
5091 "name": "",
5092 "type": "address"
5093 },
5094 {
5095 "internalType": "address",
5096 "name": "",
5097 "type": "address"
5098 }
5099 ],
5100 "name": "initialize",
5101 "outputs": [],
5102 "stateMutability": "nonpayable",
5103 "type": "function"
5104 },
5105 {
5106 "inputs": [],
5107 "name": "kLast",
5108 "outputs": [
5109 {
5110 "internalType": "uint256",
5111 "name": "",
5112 "type": "uint256"
5113 }
5114 ],
5115 "stateMutability": "view",
5116 "type": "function"
5117 },
5118 {
5119 "inputs": [
5120 {
5121 "internalType": "address",
5122 "name": "to",
5123 "type": "address"
5124 }
5125 ],
5126 "name": "mint",
5127 "outputs": [
5128 {
5129 "internalType": "uint256",
5130 "name": "liquidity",
5131 "type": "uint256"
5132 }
5133 ],
5134 "stateMutability": "nonpayable",
5135 "type": "function"
5136 },
5137 {
5138 "inputs": [],
5139 "name": "name",
5140 "outputs": [
5141 {
5142 "internalType": "string",
5143 "name": "",
5144 "type": "string"
5145 }
5146 ],
5147 "stateMutability": "pure",
5148 "type": "function"
5149 },
5150 {
5151 "inputs": [
5152 {
5153 "internalType": "address",
5154 "name": "owner",
5155 "type": "address"
5156 }
5157 ],
5158 "name": "nonces",
5159 "outputs": [
5160 {
5161 "internalType": "uint256",
5162 "name": "",
5163 "type": "uint256"
5164 }
5165 ],
5166 "stateMutability": "view",
5167 "type": "function"
5168 },
5169 {
5170 "inputs": [
5171 {
5172 "internalType": "address",
5173 "name": "owner",
5174 "type": "address"
5175 },
5176 {
5177 "internalType": "address",
5178 "name": "spender",
5179 "type": "address"
5180 },
5181 {
5182 "internalType": "uint256",
5183 "name": "value",
5184 "type": "uint256"
5185 },
5186 {
5187 "internalType": "uint256",
5188 "name": "deadline",
5189 "type": "uint256"
5190 },
5191 {
5192 "internalType": "uint8",
5193 "name": "v",
5194 "type": "uint8"
5195 },
5196 {
5197 "internalType": "bytes32",
5198 "name": "r",
5199 "type": "bytes32"
5200 },
5201 {
5202 "internalType": "bytes32",
5203 "name": "s",
5204 "type": "bytes32"
5205 }
5206 ],
5207 "name": "permit",
5208 "outputs": [],
5209 "stateMutability": "nonpayable",
5210 "type": "function"
5211 },
5212 {
5213 "inputs": [],
5214 "name": "price0CumulativeLast",
5215 "outputs": [
5216 {
5217 "internalType": "uint256",
5218 "name": "",
5219 "type": "uint256"
5220 }
5221 ],
5222 "stateMutability": "view",
5223 "type": "function"
5224 },
5225 {
5226 "inputs": [],
5227 "name": "price1CumulativeLast",
5228 "outputs": [
5229 {
5230 "internalType": "uint256",
5231 "name": "",
5232 "type": "uint256"
5233 }
5234 ],
5235 "stateMutability": "view",
5236 "type": "function"
5237 },
5238 {
5239 "inputs": [
5240 {
5241 "internalType": "address",
5242 "name": "to",
5243 "type": "address"
5244 }
5245 ],
5246 "name": "skim",
5247 "outputs": [],
5248 "stateMutability": "nonpayable",
5249 "type": "function"
5250 },
5251 {
5252 "inputs": [
5253 {
5254 "internalType": "uint256",
5255 "name": "amount0Out",
5256 "type": "uint256"
5257 },
5258 {
5259 "internalType": "uint256",
5260 "name": "amount1Out",
5261 "type": "uint256"
5262 },
5263 {
5264 "internalType": "address",
5265 "name": "to",
5266 "type": "address"
5267 },
5268 {
5269 "internalType": "bytes",
5270 "name": "data",
5271 "type": "bytes"
5272 }
5273 ],
5274 "name": "swap",
5275 "outputs": [],
5276 "stateMutability": "nonpayable",
5277 "type": "function"
5278 },
5279 {
5280 "inputs": [],
5281 "name": "symbol",
5282 "outputs": [
5283 {
5284 "internalType": "string",
5285 "name": "",
5286 "type": "string"
5287 }
5288 ],
5289 "stateMutability": "pure",
5290 "type": "function"
5291 },
5292 {
5293 "inputs": [],
5294 "name": "sync",
5295 "outputs": [],
5296 "stateMutability": "nonpayable",
5297 "type": "function"
5298 },
5299 {
5300 "inputs": [],
5301 "name": "token0",
5302 "outputs": [
5303 {
5304 "internalType": "address",
5305 "name": "",
5306 "type": "address"
5307 }
5308 ],
5309 "stateMutability": "view",
5310 "type": "function"
5311 },
5312 {
5313 "inputs": [],
5314 "name": "token1",
5315 "outputs": [
5316 {
5317 "internalType": "address",
5318 "name": "",
5319 "type": "address"
5320 }
5321 ],
5322 "stateMutability": "view",
5323 "type": "function"
5324 },
5325 {
5326 "inputs": [],
5327 "name": "totalSupply",
5328 "outputs": [
5329 {
5330 "internalType": "uint256",
5331 "name": "",
5332 "type": "uint256"
5333 }
5334 ],
5335 "stateMutability": "view",
5336 "type": "function"
5337 },
5338 {
5339 "inputs": [
5340 {
5341 "internalType": "address",
5342 "name": "to",
5343 "type": "address"
5344 },
5345 {
5346 "internalType": "uint256",
5347 "name": "value",
5348 "type": "uint256"
5349 }
5350 ],
5351 "name": "transfer",
5352 "outputs": [
5353 {
5354 "internalType": "bool",
5355 "name": "",
5356 "type": "bool"
5357 }
5358 ],
5359 "stateMutability": "nonpayable",
5360 "type": "function"
5361 },
5362 {
5363 "inputs": [
5364 {
5365 "internalType": "address",
5366 "name": "from",
5367 "type": "address"
5368 },
5369 {
5370 "internalType": "address",
5371 "name": "to",
5372 "type": "address"
5373 },
5374 {
5375 "internalType": "uint256",
5376 "name": "value",
5377 "type": "uint256"
5378 }
5379 ],
5380 "name": "transferFrom",
5381 "outputs": [
5382 {
5383 "internalType": "bool",
5384 "name": "",
5385 "type": "bool"
5386 }
5387 ],
5388 "stateMutability": "nonpayable",
5389 "type": "function"
5390 }
5391 ],
5392 "bytecode": "",
5393 "bin": "",
5394 "bin-runtime": "",
5395 "srcmap": "",
5396 "srcmap-runtime": ""
5397 },
5398 "contracts/libraries/Math.sol:Math": {
5399 "abi": [],
5400 "evm": {
5401 "bytecode": {
5402 "linkReferences": {},
5403 "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021884b0c0045bba5400ad471d7ccbfd893e53c99de28b6276c451f76c6a628a64736f6c634300060c0033",
5404 "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL XOR DUP5 0xB0 0xC0 DIV JUMPDEST 0xBA SLOAD STOP 0xAD SELFBALANCE SAR PUSH29 0xCBFD893E53C99DE28B6276C451F76C6A628A64736F6C634300060C0033 ",
5405 "sourceMap": "116:522:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
5406 },
5407 "deployedBytecode": {
5408 "immutableReferences": {},
5409 "linkReferences": {},
5410 "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021884b0c0045bba5400ad471d7ccbfd893e53c99de28b6276c451f76c6a628a64736f6c634300060c0033",
5411 "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL XOR DUP5 0xB0 0xC0 DIV JUMPDEST 0xBA SLOAD STOP 0xAD SELFBALANCE SAR PUSH29 0xCBFD893E53C99DE28B6276C451F76C6A628A64736F6C634300060C0033 ",
5412 "sourceMap": "116:522:9:-:0;;;;;;;;"
5413 }
5414 },
5415 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/Math.sol\":\"Math\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x3e0a5520297ed1dc711407fb10e309db409fc8143e19a0a7751aa064bb99dfa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5d44428171de5cd02c255aebd53d88e78cfee0b877bc1a13bbafa6e83eb0597d\",\"dweb:/ipfs/QmXLVkrxEpA57vgP2CYh26PPGqaFy8C5peKKSdLobfCv31\"]}},\"version\":1}",
5416 "interface": [],
5417 "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021884b0c0045bba5400ad471d7ccbfd893e53c99de28b6276c451f76c6a628a64736f6c634300060c0033",
5418 "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021884b0c0045bba5400ad471d7ccbfd893e53c99de28b6276c451f76c6a628a64736f6c634300060c0033",
5419 "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021884b0c0045bba5400ad471d7ccbfd893e53c99de28b6276c451f76c6a628a64736f6c634300060c0033",
5420 "srcmap": "116:522:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
5421 "srcmap-runtime": "116:522:9:-:0;;;;;;;;"
5422 },
5423 "contracts/libraries/SafeMath.sol:SafeMathUniswap": {
5424 "abi": [],
5425 "evm": {
5426 "bytecode": {
5427 "linkReferences": {},
5428 "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb13742850f4a4908596d9c151edea7c34461ce8a61150f593f7387355f7742064736f6c634300060c0033",
5429 "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SGT PUSH21 0x2850F4A4908596D9C151EDEA7C34461CE8A61150F5 SWAP4 0xF7 CODESIZE PUSH20 0x55F7742064736F6C634300060C00330000000000 ",
5430 "sourceMap": "169:437:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
5431 },
5432 "deployedBytecode": {
5433 "immutableReferences": {},
5434 "linkReferences": {},
5435 "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb13742850f4a4908596d9c151edea7c34461ce8a61150f593f7387355f7742064736f6c634300060c0033",
5436 "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SGT PUSH21 0x2850F4A4908596D9C151EDEA7C34461CE8A61150F5 SWAP4 0xF7 CODESIZE PUSH20 0x55F7742064736F6C634300060C00330000000000 ",
5437 "sourceMap": "169:437:10:-:0;;;;;;;;"
5438 }
5439 },
5440 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/SafeMath.sol\":\"SafeMathUniswap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0xbde2cf4655f2f21a4e6cc76c28cf88ade1d8150289c208d48662135be9d5dd97\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bd8f46ed9dc5ad8123e596a3b762815503a04ce8a83098d80ba45085fe3c5953\",\"dweb:/ipfs/QmUa6d2v7Miy26dzUctkrumi5My4G34TL9QNUj9u4hh7iS\"]}},\"version\":1}",
5441 "interface": [],
5442 "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb13742850f4a4908596d9c151edea7c34461ce8a61150f593f7387355f7742064736f6c634300060c0033",
5443 "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb13742850f4a4908596d9c151edea7c34461ce8a61150f593f7387355f7742064736f6c634300060c0033",
5444 "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb13742850f4a4908596d9c151edea7c34461ce8a61150f593f7387355f7742064736f6c634300060c0033",
5445 "srcmap": "169:437:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
5446 "srcmap-runtime": "169:437:10:-:0;;;;;;;;"
5447 },
5448 "contracts/libraries/UQ112x112.sol:UQ112x112": {
5449 "abi": [],
5450 "evm": {
5451 "bytecode": {
5452 "linkReferences": {},
5453 "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f99fbbc24e9ceede300618daac79b7b1518fa830d0b596f481c699e3625d2baa64736f6c634300060c0033",
5454 "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 SWAP16 0xBB 0xC2 0x4E SWAP13 0xEE 0xDE ADDRESS MOD XOR 0xDA 0xAC PUSH26 0xB7B1518FA830D0B596F481C699E3625D2BAA64736F6C63430006 0xC STOP CALLER ",
5455 "sourceMap": "220:394:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
5456 },
5457 "deployedBytecode": {
5458 "immutableReferences": {},
5459 "linkReferences": {},
5460 "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f99fbbc24e9ceede300618daac79b7b1518fa830d0b596f481c699e3625d2baa64736f6c634300060c0033",
5461 "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 SWAP16 0xBB 0xC2 0x4E SWAP13 0xEE 0xDE ADDRESS MOD XOR 0xDA 0xAC PUSH26 0xB7B1518FA830D0B596F481C699E3625D2BAA64736F6C63430006 0xC STOP CALLER ",
5462 "sourceMap": "220:394:11:-:0;;;;;;;;"
5463 }
5464 },
5465 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/UQ112x112.sol\":\"UQ112x112\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/libraries/UQ112x112.sol\":{\"keccak256\":\"0xc4574ee73aa220d7a8b363ef7c874c099b6007b0f30365993e758c8337a294d8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e27c362f1a0f0bf97004bccab2b19faaea0706bc8a21febca6e365de77a20536\",\"dweb:/ipfs/QmZipPjDSok9FxPjMB5rPTuJ7P2VvhaNzHA92TpYvE16FR\"]}},\"version\":1}",
5466 "interface": [],
5467 "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f99fbbc24e9ceede300618daac79b7b1518fa830d0b596f481c699e3625d2baa64736f6c634300060c0033",
5468 "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f99fbbc24e9ceede300618daac79b7b1518fa830d0b596f481c699e3625d2baa64736f6c634300060c0033",
5469 "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f99fbbc24e9ceede300618daac79b7b1518fa830d0b596f481c699e3625d2baa64736f6c634300060c0033",
5470 "srcmap": "220:394:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
5471 "srcmap-runtime": "220:394:11:-:0;;;;;;;;"
5472 },
5473 "contracts/test/ERC20.sol:ERC20": {
5474 "abi": [
5475 {
5476 "inputs": [
5477 {
5478 "internalType": "uint256",
5479 "name": "_totalSupply",
5480 "type": "uint256"
5481 }
5482 ],
5483 "stateMutability": "nonpayable",
5484 "type": "constructor"
5485 },
5486 {
5487 "anonymous": false,
5488 "inputs": [
5489 {
5490 "indexed": true,
5491 "internalType": "address",
5492 "name": "owner",
5493 "type": "address"
5494 },
5495 {
5496 "indexed": true,
5497 "internalType": "address",
5498 "name": "spender",
5499 "type": "address"
5500 },
5501 {
5502 "indexed": false,
5503 "internalType": "uint256",
5504 "name": "value",
5505 "type": "uint256"
5506 }
5507 ],
5508 "name": "Approval",
5509 "type": "event"
5510 },
5511 {
5512 "anonymous": false,
5513 "inputs": [
5514 {
5515 "indexed": true,
5516 "internalType": "address",
5517 "name": "from",
5518 "type": "address"
5519 },
5520 {
5521 "indexed": true,
5522 "internalType": "address",
5523 "name": "to",
5524 "type": "address"
5525 },
5526 {
5527 "indexed": false,
5528 "internalType": "uint256",
5529 "name": "value",
5530 "type": "uint256"
5531 }
5532 ],
5533 "name": "Transfer",
5534 "type": "event"
5535 },
5536 {
5537 "inputs": [],
5538 "name": "DOMAIN_SEPARATOR",
5539 "outputs": [
5540 {
5541 "internalType": "bytes32",
5542 "name": "",
5543 "type": "bytes32"
5544 }
5545 ],
5546 "stateMutability": "view",
5547 "type": "function"
5548 },
5549 {
5550 "inputs": [],
5551 "name": "PERMIT_TYPEHASH",
5552 "outputs": [
5553 {
5554 "internalType": "bytes32",
5555 "name": "",
5556 "type": "bytes32"
5557 }
5558 ],
5559 "stateMutability": "view",
5560 "type": "function"
5561 },
5562 {
5563 "inputs": [
5564 {
5565 "internalType": "address",
5566 "name": "",
5567 "type": "address"
5568 },
5569 {
5570 "internalType": "address",
5571 "name": "",
5572 "type": "address"
5573 }
5574 ],
5575 "name": "allowance",
5576 "outputs": [
5577 {
5578 "internalType": "uint256",
5579 "name": "",
5580 "type": "uint256"
5581 }
5582 ],
5583 "stateMutability": "view",
5584 "type": "function"
5585 },
5586 {
5587 "inputs": [
5588 {
5589 "internalType": "address",
5590 "name": "spender",
5591 "type": "address"
5592 },
5593 {
5594 "internalType": "uint256",
5595 "name": "value",
5596 "type": "uint256"
5597 }
5598 ],
5599 "name": "approve",
5600 "outputs": [
5601 {
5602 "internalType": "bool",
5603 "name": "",
5604 "type": "bool"
5605 }
5606 ],
5607 "stateMutability": "nonpayable",
5608 "type": "function"
5609 },
5610 {
5611 "inputs": [
5612 {
5613 "internalType": "address",
5614 "name": "",
5615 "type": "address"
5616 }
5617 ],
5618 "name": "balanceOf",
5619 "outputs": [
5620 {
5621 "internalType": "uint256",
5622 "name": "",
5623 "type": "uint256"
5624 }
5625 ],
5626 "stateMutability": "view",
5627 "type": "function"
5628 },
5629 {
5630 "inputs": [],
5631 "name": "decimals",
5632 "outputs": [
5633 {
5634 "internalType": "uint8",
5635 "name": "",
5636 "type": "uint8"
5637 }
5638 ],
5639 "stateMutability": "view",
5640 "type": "function"
5641 },
5642 {
5643 "inputs": [],
5644 "name": "name",
5645 "outputs": [
5646 {
5647 "internalType": "string",
5648 "name": "",
5649 "type": "string"
5650 }
5651 ],
5652 "stateMutability": "view",
5653 "type": "function"
5654 },
5655 {
5656 "inputs": [
5657 {
5658 "internalType": "address",
5659 "name": "",
5660 "type": "address"
5661 }
5662 ],
5663 "name": "nonces",
5664 "outputs": [
5665 {
5666 "internalType": "uint256",
5667 "name": "",
5668 "type": "uint256"
5669 }
5670 ],
5671 "stateMutability": "view",
5672 "type": "function"
5673 },
5674 {
5675 "inputs": [
5676 {
5677 "internalType": "address",
5678 "name": "owner",
5679 "type": "address"
5680 },
5681 {
5682 "internalType": "address",
5683 "name": "spender",
5684 "type": "address"
5685 },
5686 {
5687 "internalType": "uint256",
5688 "name": "value",
5689 "type": "uint256"
5690 },
5691 {
5692 "internalType": "uint256",
5693 "name": "deadline",
5694 "type": "uint256"
5695 },
5696 {
5697 "internalType": "uint8",
5698 "name": "v",
5699 "type": "uint8"
5700 },
5701 {
5702 "internalType": "bytes32",
5703 "name": "r",
5704 "type": "bytes32"
5705 },
5706 {
5707 "internalType": "bytes32",
5708 "name": "s",
5709 "type": "bytes32"
5710 }
5711 ],
5712 "name": "permit",
5713 "outputs": [],
5714 "stateMutability": "nonpayable",
5715 "type": "function"
5716 },
5717 {
5718 "inputs": [],
5719 "name": "symbol",
5720 "outputs": [
5721 {
5722 "internalType": "string",
5723 "name": "",
5724 "type": "string"
5725 }
5726 ],
5727 "stateMutability": "view",
5728 "type": "function"
5729 },
5730 {
5731 "inputs": [],
5732 "name": "totalSupply",
5733 "outputs": [
5734 {
5735 "internalType": "uint256",
5736 "name": "",
5737 "type": "uint256"
5738 }
5739 ],
5740 "stateMutability": "view",
5741 "type": "function"
5742 },
5743 {
5744 "inputs": [
5745 {
5746 "internalType": "address",
5747 "name": "to",
5748 "type": "address"
5749 },
5750 {
5751 "internalType": "uint256",
5752 "name": "value",
5753 "type": "uint256"
5754 }
5755 ],
5756 "name": "transfer",
5757 "outputs": [
5758 {
5759 "internalType": "bool",
5760 "name": "",
5761 "type": "bool"
5762 }
5763 ],
5764 "stateMutability": "nonpayable",
5765 "type": "function"
5766 },
5767 {
5768 "inputs": [
5769 {
5770 "internalType": "address",
5771 "name": "from",
5772 "type": "address"
5773 },
5774 {
5775 "internalType": "address",
5776 "name": "to",
5777 "type": "address"
5778 },
5779 {
5780 "internalType": "uint256",
5781 "name": "value",
5782 "type": "uint256"
5783 }
5784 ],
5785 "name": "transferFrom",
5786 "outputs": [
5787 {
5788 "internalType": "bool",
5789 "name": "",
5790 "type": "bool"
5791 }
5792 ],
5793 "stateMutability": "nonpayable",
5794 "type": "function"
5795 }
5796 ],
5797 "evm": {
5798 "bytecode": {
5799 "linkReferences": {},
5800 "object": "608060405234801561001057600080fd5b50604051610cb3380380610cb38339818101604052602081101561003357600080fd5b5051604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355610114338261011a565b5061021a565b610133816000546101bc60201b61082c1790919060201c565b60009081556001600160a01b03831681526001602090815260409091205461016491839061082c6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a8a806102296000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461089e565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361090d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461097f565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461097f565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961089e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546109af908261090d565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546109eb908261082c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fea2646970667358221220e387e66ff072956aece4bf3dafabd1cea2905784ad268c2c4a7c721d5b313dbb64736f6c634300060c0033",
5801 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xCB3 CODESIZE SUB DUP1 PUSH2 0xCB3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x29B7B734B1902628102A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP4 ADD MSTORE PUSH32 0xF90F134A4DC70F85D4409F329A3DF4D7FEEB7C7ACB7DF2CE255362B9A48311AA DUP2 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE PUSH2 0x114 CALLER DUP3 PUSH2 0x11A JUMP JUMPDEST POP PUSH2 0x21A JUMP JUMPDEST PUSH2 0x133 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1BC PUSH1 0x20 SHL PUSH2 0x82C OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x164 SWAP2 DUP4 SWAP1 PUSH2 0x82C PUSH2 0x1BC DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x214 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA8A DUP1 PUSH2 0x229 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4EB JUMP JUMPDEST PUSH2 0xEC PUSH2 0x4FD JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x536 JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x80F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x89E JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x495 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x463 SWAP1 DUP4 PUSH2 0x90D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A0 DUP5 DUP5 DUP5 PUSH2 0x97F JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x97F JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x78E JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7F9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x804 DUP10 DUP10 DUP10 PUSH2 0x89E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x9AF SWAP1 DUP3 PUSH2 0x90D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x9EB SWAP1 DUP3 PUSH2 0x82C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 DUP8 0xE6 PUSH16 0xF072956AECE4BF3DAFABD1CEA2905784 0xAD 0x26 DUP13 0x2C 0x4A PUSH29 0x721D5B313DBB64736F6C634300060C0033000000000000000000000000 ",
5802 "sourceMap": "91:127:12:-:0;;;130:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;130:86:12;1221:4:1;;;;;;;;;;;-1:-1:-1;;;130:86:12;1221:4:1;;;;1255:10;;;;;;;;;;-1:-1:-1;;;1255:10:1;;;;1064:272;;1092:95;1064:272;;;;1205:22;1064:272;;;;1245:21;1064:272;;;;994:9;1064:272;;;;1317:4;1064:272;;;;;;;;;;;;;;;;;;;;;;;;;1041:305;;;;;1022:16;:324;178:31:12;184:10;130:86;178:5;:31::i;:::-;130:86;91:127;;1359:197:1;1431:22;1447:5;1431:11;;:15;;;;;;:22;;;;:::i;:::-;1417:11;:36;;;-1:-1:-1;;;;;1479:13:1;;;;:9;:13;;;;;;;;;:24;;1497:5;;1479:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1463:13:1;;;;;;:9;:13;;;;;;;;:40;;;;1518:31;;;;;;;1463:13;;;;1518:31;;;;;;;;;;1359:197;;:::o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;-1:-1:-1;;;269:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;199:126;;;;:::o;91:127:12:-;;;;;;;"
5803 },
5804 "deployedBytecode": {
5805 "immutableReferences": {},
5806 "linkReferences": {},
5807 "object": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461089e565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361090d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461097f565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461097f565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961089e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546109af908261090d565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546109eb908261082c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fea2646970667358221220e387e66ff072956aece4bf3dafabd1cea2905784ad268c2c4a7c721d5b313dbb64736f6c634300060c0033",
5808 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4EB JUMP JUMPDEST PUSH2 0xEC PUSH2 0x4FD JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x536 JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x80F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536F6E6963204C5020546F6B656E000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x89E JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x495 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x463 SWAP1 DUP4 PUSH2 0x90D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A0 DUP5 DUP5 DUP5 PUSH2 0x97F JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x534F4E49432D4C50000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x97F JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x78E JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7F9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x804 DUP10 DUP10 DUP10 PUSH2 0x89E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x9AF SWAP1 DUP3 PUSH2 0x90D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x9EB SWAP1 DUP3 PUSH2 0x82C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 DUP8 0xE6 PUSH16 0xF072956AECE4BF3DAFABD1CEA2905784 0xAD 0x26 DUP13 0x2C 0x4A PUSH29 0x721D5B313DBB64736F6C634300060C0033000000000000000000000000 ",
5809 "sourceMap": "91:127:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:46:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:144;;;;;;;;;;;;;;;;-1:-1:-1;2167:144:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;307:24;;;:::i;:::-;;;;;;;;;;;;;;;;2459:295;;;;;;;;;;;;;;;;-1:-1:-1;2459:295:1;;;;;;;;;;;;;;;;;;:::i;593:108::-;;;:::i;266:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;452:31;;;:::i;337:41::-;;;;;;;;;;;;;;;;-1:-1:-1;337:41:1;;;;:::i;707:38::-;;;;;;;;;;;;;;;;-1:-1:-1;707:38:1;;;;:::i;218:42::-;;;:::i;2317:136::-;;;;;;;;;;;;;;;;-1:-1:-1;2317:136:1;;;;;;;;;:::i;2760:662::-;;;;;;;;;;;;;;;;-1:-1:-1;2760:662:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;384:61;;;;;;;;;;;;;;;;-1:-1:-1;384:61:1;;;;;;;;;;;:::i;166:46::-;;;;;;;;;;;;;;;;;;;:::o;2167:144::-;2231:4;2247:36;2256:10;2268:7;2277:5;2247:8;:36::i;:::-;-1:-1:-1;2300:4:1;2167:144;;;;;:::o;307:24::-;;;;:::o;2459:295::-;2557:15;;;2537:4;2557:15;;;:9;:15;;;;;;;;2573:10;2557:27;;;;;;;;2593:2;2557:39;2553:138;;2642:15;;;;;;;:9;:15;;;;;;;;2658:10;2642:27;;;;;;;;:38;;2674:5;2642:31;:38::i;:::-;2612:15;;;;;;;:9;:15;;;;;;;;2628:10;2612:27;;;;;;;:68;2553:138;2700:26;2710:4;2716:2;2720:5;2700:9;:26::i;:::-;-1:-1:-1;2743:4:1;2459:295;;;;;:::o;593:108::-;635:66;593:108;:::o;266:35::-;299:2;266:35;:::o;452:31::-;;;;:::o;337:41::-;;;;;;;;;;;;;:::o;707:38::-;;;;;;;;;;;;;:::o;218:42::-;;;;;;;;;;;;;;;;;;;:::o;2317:136::-;2377:4;2393:32;2403:10;2415:2;2419:5;2393:9;:32::i;2760:662::-;2905:15;2893:8;:27;;2885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3055:16;;3150:13;;;;2953:14;3150:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3099:77;;635:66;3099:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3089:88;;;;;;2993:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:231;;;;;;;;;3238:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:14;;3150:15;3238:26;;;;;-1:-1:-1;3238:26:1;;;;;;;;;;3150:15;3238:26;;;;;;;;;;;;;;;-1:-1:-1;;3238:26:1;;;;;;-1:-1:-1;;3282:30:1;;;;;;;:59;;;3336:5;3316:25;;:16;:25;;;3282:59;3274:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:31;3393:5;3400:7;3409:5;3384:8;:31::i;:::-;2760:662;;;;;;;;;:::o;384:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:166:1;1853:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1901:31;;;;;;;;;;;;;;;;;1773:166;;;:::o;331:127:10:-;414:5;;;409:16;;;;401:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:216:1;2038:15;;;;;;;:9;:15;;;;;;:26;;2058:5;2038:19;:26::i;:::-;2020:15;;;;;;;;:9;:15;;;;;;:44;;;;2090:13;;;;;;;:24;;2108:5;2090:17;:24::i;:::-;2074:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2129:25;;;;;;;2074:13;;2129:25;;;;;;;;;;;;;1945:216;;;:::o"
5810 }
5811 },
5812 "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0xecbc4f1a10bdfd0fc64712a2f963dab9969a7c395849bc159855b865fe38b3af\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc5d81b240cec5fc461192b7ae774eeb8477efff7454be2cb686fc48914d6b0b\",\"dweb:/ipfs/Qmamks6gmpP6y4Av7b9YwJGoJdhf2nH2ra2Ntw7SSvCvuj\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0xbde2cf4655f2f21a4e6cc76c28cf88ade1d8150289c208d48662135be9d5dd97\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bd8f46ed9dc5ad8123e596a3b762815503a04ce8a83098d80ba45085fe3c5953\",\"dweb:/ipfs/QmUa6d2v7Miy26dzUctkrumi5My4G34TL9QNUj9u4hh7iS\"]},\"contracts/test/ERC20.sol\":{\"keccak256\":\"0x9d7ca53b694b89569f0cc0285d68ffd88daa3544ea5d1cb799418bd2bcb52838\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f89787375cc630c30d0b04be3ff305be46766f5886e8975a17e02d6af70bce8\",\"dweb:/ipfs/Qma3VWRZsjDq6xzui9Q31URry2ovwCenXStPXWMf5yVrmo\"]}},\"version\":1}",
5813 "interface": [
5814 {
5815 "inputs": [
5816 {
5817 "internalType": "uint256",
5818 "name": "_totalSupply",
5819 "type": "uint256"
5820 }
5821 ],
5822 "stateMutability": "nonpayable",
5823 "type": "constructor"
5824 },
5825 {
5826 "anonymous": false,
5827 "inputs": [
5828 {
5829 "indexed": true,
5830 "internalType": "address",
5831 "name": "owner",
5832 "type": "address"
5833 },
5834 {
5835 "indexed": true,
5836 "internalType": "address",
5837 "name": "spender",
5838 "type": "address"
5839 },
5840 {
5841 "indexed": false,
5842 "internalType": "uint256",
5843 "name": "value",
5844 "type": "uint256"
5845 }
5846 ],
5847 "name": "Approval",
5848 "type": "event"
5849 },
5850 {
5851 "anonymous": false,
5852 "inputs": [
5853 {
5854 "indexed": true,
5855 "internalType": "address",
5856 "name": "from",
5857 "type": "address"
5858 },
5859 {
5860 "indexed": true,
5861 "internalType": "address",
5862 "name": "to",
5863 "type": "address"
5864 },
5865 {
5866 "indexed": false,
5867 "internalType": "uint256",
5868 "name": "value",
5869 "type": "uint256"
5870 }
5871 ],
5872 "name": "Transfer",
5873 "type": "event"
5874 },
5875 {
5876 "inputs": [],
5877 "name": "DOMAIN_SEPARATOR",
5878 "outputs": [
5879 {
5880 "internalType": "bytes32",
5881 "name": "",
5882 "type": "bytes32"
5883 }
5884 ],
5885 "stateMutability": "view",
5886 "type": "function"
5887 },
5888 {
5889 "inputs": [],
5890 "name": "PERMIT_TYPEHASH",
5891 "outputs": [
5892 {
5893 "internalType": "bytes32",
5894 "name": "",
5895 "type": "bytes32"
5896 }
5897 ],
5898 "stateMutability": "view",
5899 "type": "function"
5900 },
5901 {
5902 "inputs": [
5903 {
5904 "internalType": "address",
5905 "name": "",
5906 "type": "address"
5907 },
5908 {
5909 "internalType": "address",
5910 "name": "",
5911 "type": "address"
5912 }
5913 ],
5914 "name": "allowance",
5915 "outputs": [
5916 {
5917 "internalType": "uint256",
5918 "name": "",
5919 "type": "uint256"
5920 }
5921 ],
5922 "stateMutability": "view",
5923 "type": "function"
5924 },
5925 {
5926 "inputs": [
5927 {
5928 "internalType": "address",
5929 "name": "spender",
5930 "type": "address"
5931 },
5932 {
5933 "internalType": "uint256",
5934 "name": "value",
5935 "type": "uint256"
5936 }
5937 ],
5938 "name": "approve",
5939 "outputs": [
5940 {
5941 "internalType": "bool",
5942 "name": "",
5943 "type": "bool"
5944 }
5945 ],
5946 "stateMutability": "nonpayable",
5947 "type": "function"
5948 },
5949 {
5950 "inputs": [
5951 {
5952 "internalType": "address",
5953 "name": "",
5954 "type": "address"
5955 }
5956 ],
5957 "name": "balanceOf",
5958 "outputs": [
5959 {
5960 "internalType": "uint256",
5961 "name": "",
5962 "type": "uint256"
5963 }
5964 ],
5965 "stateMutability": "view",
5966 "type": "function"
5967 },
5968 {
5969 "inputs": [],
5970 "name": "decimals",
5971 "outputs": [
5972 {
5973 "internalType": "uint8",
5974 "name": "",
5975 "type": "uint8"
5976 }
5977 ],
5978 "stateMutability": "view",
5979 "type": "function"
5980 },
5981 {
5982 "inputs": [],
5983 "name": "name",
5984 "outputs": [
5985 {
5986 "internalType": "string",
5987 "name": "",
5988 "type": "string"
5989 }
5990 ],
5991 "stateMutability": "view",
5992 "type": "function"
5993 },
5994 {
5995 "inputs": [
5996 {
5997 "internalType": "address",
5998 "name": "",
5999 "type": "address"
6000 }
6001 ],
6002 "name": "nonces",
6003 "outputs": [
6004 {
6005 "internalType": "uint256",
6006 "name": "",
6007 "type": "uint256"
6008 }
6009 ],
6010 "stateMutability": "view",
6011 "type": "function"
6012 },
6013 {
6014 "inputs": [
6015 {
6016 "internalType": "address",
6017 "name": "owner",
6018 "type": "address"
6019 },
6020 {
6021 "internalType": "address",
6022 "name": "spender",
6023 "type": "address"
6024 },
6025 {
6026 "internalType": "uint256",
6027 "name": "value",
6028 "type": "uint256"
6029 },
6030 {
6031 "internalType": "uint256",
6032 "name": "deadline",
6033 "type": "uint256"
6034 },
6035 {
6036 "internalType": "uint8",
6037 "name": "v",
6038 "type": "uint8"
6039 },
6040 {
6041 "internalType": "bytes32",
6042 "name": "r",
6043 "type": "bytes32"
6044 },
6045 {
6046 "internalType": "bytes32",
6047 "name": "s",
6048 "type": "bytes32"
6049 }
6050 ],
6051 "name": "permit",
6052 "outputs": [],
6053 "stateMutability": "nonpayable",
6054 "type": "function"
6055 },
6056 {
6057 "inputs": [],
6058 "name": "symbol",
6059 "outputs": [
6060 {
6061 "internalType": "string",
6062 "name": "",
6063 "type": "string"
6064 }
6065 ],
6066 "stateMutability": "view",
6067 "type": "function"
6068 },
6069 {
6070 "inputs": [],
6071 "name": "totalSupply",
6072 "outputs": [
6073 {
6074 "internalType": "uint256",
6075 "name": "",
6076 "type": "uint256"
6077 }
6078 ],
6079 "stateMutability": "view",
6080 "type": "function"
6081 },
6082 {
6083 "inputs": [
6084 {
6085 "internalType": "address",
6086 "name": "to",
6087 "type": "address"
6088 },
6089 {
6090 "internalType": "uint256",
6091 "name": "value",
6092 "type": "uint256"
6093 }
6094 ],
6095 "name": "transfer",
6096 "outputs": [
6097 {
6098 "internalType": "bool",
6099 "name": "",
6100 "type": "bool"
6101 }
6102 ],
6103 "stateMutability": "nonpayable",
6104 "type": "function"
6105 },
6106 {
6107 "inputs": [
6108 {
6109 "internalType": "address",
6110 "name": "from",
6111 "type": "address"
6112 },
6113 {
6114 "internalType": "address",
6115 "name": "to",
6116 "type": "address"
6117 },
6118 {
6119 "internalType": "uint256",
6120 "name": "value",
6121 "type": "uint256"
6122 }
6123 ],
6124 "name": "transferFrom",
6125 "outputs": [
6126 {
6127 "internalType": "bool",
6128 "name": "",
6129 "type": "bool"
6130 }
6131 ],
6132 "stateMutability": "nonpayable",
6133 "type": "function"
6134 }
6135 ],
6136 "bytecode": "608060405234801561001057600080fd5b50604051610cb3380380610cb38339818101604052602081101561003357600080fd5b5051604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355610114338261011a565b5061021a565b610133816000546101bc60201b61082c1790919060201c565b60009081556001600160a01b03831681526001602090815260409091205461016491839061082c6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a8a806102296000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461089e565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361090d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461097f565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461097f565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961089e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546109af908261090d565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546109eb908261082c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fea2646970667358221220e387e66ff072956aece4bf3dafabd1cea2905784ad268c2c4a7c721d5b313dbb64736f6c634300060c0033",
6137 "bin": "608060405234801561001057600080fd5b50604051610cb3380380610cb38339818101604052602081101561003357600080fd5b5051604080518082018252600e81526d29b7b734b1902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355610114338261011a565b5061021a565b610133816000546101bc60201b61082c1790919060201c565b60009081556001600160a01b03831681526001602090815260409091205461016491839061082c6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a8a806102296000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461089e565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361090d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461097f565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461097f565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961089e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546109af908261090d565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546109eb908261082c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fea2646970667358221220e387e66ff072956aece4bf3dafabd1cea2905784ad268c2c4a7c721d5b313dbb64736f6c634300060c0033",
6138 "bin-runtime": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104aa565b61021b6104ce565b6040805160ff9092168252519081900360200190f35b6101b66104d3565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104d9565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104eb565b6100ec6104fd565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610536565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610543565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661080f565b6040518060400160405280600e81526020017f536f6e6963204c5020546f6b656e00000000000000000000000000000000000081525081565b60006103c133848461089e565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146104955773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610463908361090d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a084848461097f565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600881526020017f534f4e49432d4c5000000000000000000000000000000000000000000000000081525081565b60006103c133848461097f565b428410156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610713573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061078e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080489898961089e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546109af908261090d565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546109eb908261082c565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fea2646970667358221220e387e66ff072956aece4bf3dafabd1cea2905784ad268c2c4a7c721d5b313dbb64736f6c634300060c0033",
6139 "srcmap": "91:127:12:-:0;;;130:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;130:86:12;1221:4:1;;;;;;;;;;;-1:-1:-1;;;130:86:12;1221:4:1;;;;1255:10;;;;;;;;;;-1:-1:-1;;;1255:10:1;;;;1064:272;;1092:95;1064:272;;;;1205:22;1064:272;;;;1245:21;1064:272;;;;994:9;1064:272;;;;1317:4;1064:272;;;;;;;;;;;;;;;;;;;;;;;;;1041:305;;;;;1022:16;:324;178:31:12;184:10;130:86;178:5;:31::i;:::-;130:86;91:127;;1359:197:1;1431:22;1447:5;1431:11;;:15;;;;;;:22;;;;:::i;:::-;1417:11;:36;;;-1:-1:-1;;;;;1479:13:1;;;;:9;:13;;;;;;;;;:24;;1497:5;;1479:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1463:13:1;;;;;;:9;:13;;;;;;;;:40;;;;1518:31;;;;;;;1463:13;;;;1518:31;;;;;;;;;;1359:197;;:::o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;-1:-1:-1;;;269:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;199:126;;;;:::o;91:127:12:-;;;;;;;",
6140 "srcmap-runtime": "91:127:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:46:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:144;;;;;;;;;;;;;;;;-1:-1:-1;2167:144:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;307:24;;;:::i;:::-;;;;;;;;;;;;;;;;2459:295;;;;;;;;;;;;;;;;-1:-1:-1;2459:295:1;;;;;;;;;;;;;;;;;;:::i;593:108::-;;;:::i;266:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;452:31;;;:::i;337:41::-;;;;;;;;;;;;;;;;-1:-1:-1;337:41:1;;;;:::i;707:38::-;;;;;;;;;;;;;;;;-1:-1:-1;707:38:1;;;;:::i;218:42::-;;;:::i;2317:136::-;;;;;;;;;;;;;;;;-1:-1:-1;2317:136:1;;;;;;;;;:::i;2760:662::-;;;;;;;;;;;;;;;;-1:-1:-1;2760:662:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;384:61;;;;;;;;;;;;;;;;-1:-1:-1;384:61:1;;;;;;;;;;;:::i;166:46::-;;;;;;;;;;;;;;;;;;;:::o;2167:144::-;2231:4;2247:36;2256:10;2268:7;2277:5;2247:8;:36::i;:::-;-1:-1:-1;2300:4:1;2167:144;;;;;:::o;307:24::-;;;;:::o;2459:295::-;2557:15;;;2537:4;2557:15;;;:9;:15;;;;;;;;2573:10;2557:27;;;;;;;;2593:2;2557:39;2553:138;;2642:15;;;;;;;:9;:15;;;;;;;;2658:10;2642:27;;;;;;;;:38;;2674:5;2642:31;:38::i;:::-;2612:15;;;;;;;:9;:15;;;;;;;;2628:10;2612:27;;;;;;;:68;2553:138;2700:26;2710:4;2716:2;2720:5;2700:9;:26::i;:::-;-1:-1:-1;2743:4:1;2459:295;;;;;:::o;593:108::-;635:66;593:108;:::o;266:35::-;299:2;266:35;:::o;452:31::-;;;;:::o;337:41::-;;;;;;;;;;;;;:::o;707:38::-;;;;;;;;;;;;;:::o;218:42::-;;;;;;;;;;;;;;;;;;;:::o;2317:136::-;2377:4;2393:32;2403:10;2415:2;2419:5;2393:9;:32::i;2760:662::-;2905:15;2893:8;:27;;2885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3055:16;;3150:13;;;;2953:14;3150:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3099:77;;635:66;3099:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3089:88;;;;;;2993:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:231;;;;;;;;;3238:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:14;;3150:15;3238:26;;;;;-1:-1:-1;3238:26:1;;;;;;;;;;3150:15;3238:26;;;;;;;;;;;;;;;-1:-1:-1;;3238:26:1;;;;;;-1:-1:-1;;3282:30:1;;;;;;;:59;;;3336:5;3316:25;;:16;:25;;;3282:59;3274:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:31;3393:5;3400:7;3409:5;3384:8;:31::i;:::-;2760:662;;;;;;;;;:::o;384:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;199:126:10:-;282:5;;;277:16;;;;269:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:166:1;1853:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1901:31;;;;;;;;;;;;;;;;;1773:166;;;:::o;331:127:10:-;414:5;;;409:16;;;;401:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:216:1;2038:15;;;;;;;:9;:15;;;;;;:26;;2058:5;2038:19;:26::i;:::-;2020:15;;;;;;;;:9;:15;;;;;;:44;;;;2090:13;;;;;;;:24;;2108:5;2090:17;:24::i;:::-;2074:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2129:25;;;;;;;2074:13;;2129:25;;;;;;;;;;;;;1945:216;;;:::o"
6141 }
6142 },
6143 "sources": {
6144 "contracts/Migration.sol": {
6145 "id": 0,
6146 "AST": {
6147 "absolutePath": "contracts/Migration.sol",
6148 "exportedSymbols": {
6149 "Migrations": [
6150 36
6151 ]
6152 },
6153 "id": 37,
6154 "license": "MIT",
6155 "nodeType": "SourceUnit",
6156 "nodes": [
6157 {
6158 "id": 1,
6159 "literals": [
6160 "solidity",
6161 ">=",
6162 "0.4",
6163 ".25",
6164 "<",
6165 "0.7",
6166 ".0"
6167 ],
6168 "nodeType": "PragmaDirective",
6169 "src": "32:32:0"
6170 },
6171 {
6172 "abstract": false,
6173 "baseContracts": [],
6174 "contractDependencies": [],
6175 "contractKind": "contract",
6176 "documentation": null,
6177 "fullyImplemented": true,
6178 "id": 36,
6179 "linearizedBaseContracts": [
6180 36
6181 ],
6182 "name": "Migrations",
6183 "nodeType": "ContractDefinition",
6184 "nodes": [
6185 {
6186 "constant": false,
6187 "functionSelector": "8da5cb5b",
6188 "id": 3,
6189 "mutability": "mutable",
6190 "name": "owner",
6191 "nodeType": "VariableDeclaration",
6192 "overrides": null,
6193 "scope": 36,
6194 "src": "90:20:0",
6195 "stateVariable": true,
6196 "storageLocation": "default",
6197 "typeDescriptions": {
6198 "typeIdentifier": "t_address",
6199 "typeString": "address"
6200 },
6201 "typeName": {
6202 "id": 2,
6203 "name": "address",
6204 "nodeType": "ElementaryTypeName",
6205 "src": "90:7:0",
6206 "stateMutability": "nonpayable",
6207 "typeDescriptions": {
6208 "typeIdentifier": "t_address",
6209 "typeString": "address"
6210 }
6211 },
6212 "value": null,
6213 "visibility": "public"
6214 },
6215 {
6216 "constant": false,
6217 "functionSelector": "445df0ac",
6218 "id": 5,
6219 "mutability": "mutable",
6220 "name": "last_completed_migration",
6221 "nodeType": "VariableDeclaration",
6222 "overrides": null,
6223 "scope": 36,
6224 "src": "114:36:0",
6225 "stateVariable": true,
6226 "storageLocation": "default",
6227 "typeDescriptions": {
6228 "typeIdentifier": "t_uint256",
6229 "typeString": "uint256"
6230 },
6231 "typeName": {
6232 "id": 4,
6233 "name": "uint",
6234 "nodeType": "ElementaryTypeName",
6235 "src": "114:4:0",
6236 "typeDescriptions": {
6237 "typeIdentifier": "t_uint256",
6238 "typeString": "uint256"
6239 }
6240 },
6241 "value": null,
6242 "visibility": "public"
6243 },
6244 {
6245 "body": {
6246 "id": 13,
6247 "nodeType": "Block",
6248 "src": "177:37:0",
6249 "statements": [
6250 {
6251 "condition": {
6252 "argumentTypes": null,
6253 "commonType": {
6254 "typeIdentifier": "t_address",
6255 "typeString": "address"
6256 },
6257 "id": 10,
6258 "isConstant": false,
6259 "isLValue": false,
6260 "isPure": false,
6261 "lValueRequested": false,
6262 "leftExpression": {
6263 "argumentTypes": null,
6264 "expression": {
6265 "argumentTypes": null,
6266 "id": 7,
6267 "name": "msg",
6268 "nodeType": "Identifier",
6269 "overloadedDeclarations": [],
6270 "referencedDeclaration": -15,
6271 "src": "187:3:0",
6272 "typeDescriptions": {
6273 "typeIdentifier": "t_magic_message",
6274 "typeString": "msg"
6275 }
6276 },
6277 "id": 8,
6278 "isConstant": false,
6279 "isLValue": false,
6280 "isPure": false,
6281 "lValueRequested": false,
6282 "memberName": "sender",
6283 "nodeType": "MemberAccess",
6284 "referencedDeclaration": null,
6285 "src": "187:10:0",
6286 "typeDescriptions": {
6287 "typeIdentifier": "t_address_payable",
6288 "typeString": "address payable"
6289 }
6290 },
6291 "nodeType": "BinaryOperation",
6292 "operator": "==",
6293 "rightExpression": {
6294 "argumentTypes": null,
6295 "id": 9,
6296 "name": "owner",
6297 "nodeType": "Identifier",
6298 "overloadedDeclarations": [],
6299 "referencedDeclaration": 3,
6300 "src": "201:5:0",
6301 "typeDescriptions": {
6302 "typeIdentifier": "t_address",
6303 "typeString": "address"
6304 }
6305 },
6306 "src": "187:19:0",
6307 "typeDescriptions": {
6308 "typeIdentifier": "t_bool",
6309 "typeString": "bool"
6310 }
6311 },
6312 "falseBody": null,
6313 "id": 12,
6314 "nodeType": "IfStatement",
6315 "src": "183:26:0",
6316 "trueBody": {
6317 "id": 11,
6318 "nodeType": "PlaceholderStatement",
6319 "src": "208:1:0"
6320 }
6321 }
6322 ]
6323 },
6324 "documentation": null,
6325 "id": 14,
6326 "name": "restricted",
6327 "nodeType": "ModifierDefinition",
6328 "overrides": null,
6329 "parameters": {
6330 "id": 6,
6331 "nodeType": "ParameterList",
6332 "parameters": [],
6333 "src": "174:2:0"
6334 },
6335 "src": "155:59:0",
6336 "virtual": false,
6337 "visibility": "internal"
6338 },
6339 {
6340 "body": {
6341 "id": 22,
6342 "nodeType": "Block",
6343 "src": "239:29:0",
6344 "statements": [
6345 {
6346 "expression": {
6347 "argumentTypes": null,
6348 "id": 20,
6349 "isConstant": false,
6350 "isLValue": false,
6351 "isPure": false,
6352 "lValueRequested": false,
6353 "leftHandSide": {
6354 "argumentTypes": null,
6355 "id": 17,
6356 "name": "owner",
6357 "nodeType": "Identifier",
6358 "overloadedDeclarations": [],
6359 "referencedDeclaration": 3,
6360 "src": "245:5:0",
6361 "typeDescriptions": {
6362 "typeIdentifier": "t_address",
6363 "typeString": "address"
6364 }
6365 },
6366 "nodeType": "Assignment",
6367 "operator": "=",
6368 "rightHandSide": {
6369 "argumentTypes": null,
6370 "expression": {
6371 "argumentTypes": null,
6372 "id": 18,
6373 "name": "msg",
6374 "nodeType": "Identifier",
6375 "overloadedDeclarations": [],
6376 "referencedDeclaration": -15,
6377 "src": "253:3:0",
6378 "typeDescriptions": {
6379 "typeIdentifier": "t_magic_message",
6380 "typeString": "msg"
6381 }
6382 },
6383 "id": 19,
6384 "isConstant": false,
6385 "isLValue": false,
6386 "isPure": false,
6387 "lValueRequested": false,
6388 "memberName": "sender",
6389 "nodeType": "MemberAccess",
6390 "referencedDeclaration": null,
6391 "src": "253:10:0",
6392 "typeDescriptions": {
6393 "typeIdentifier": "t_address_payable",
6394 "typeString": "address payable"
6395 }
6396 },
6397 "src": "245:18:0",
6398 "typeDescriptions": {
6399 "typeIdentifier": "t_address",
6400 "typeString": "address"
6401 }
6402 },
6403 "id": 21,
6404 "nodeType": "ExpressionStatement",
6405 "src": "245:18:0"
6406 }
6407 ]
6408 },
6409 "documentation": null,
6410 "id": 23,
6411 "implemented": true,
6412 "kind": "constructor",
6413 "modifiers": [],
6414 "name": "",
6415 "nodeType": "FunctionDefinition",
6416 "overrides": null,
6417 "parameters": {
6418 "id": 15,
6419 "nodeType": "ParameterList",
6420 "parameters": [],
6421 "src": "229:2:0"
6422 },
6423 "returnParameters": {
6424 "id": 16,
6425 "nodeType": "ParameterList",
6426 "parameters": [],
6427 "src": "239:0:0"
6428 },
6429 "scope": 36,
6430 "src": "218:50:0",
6431 "stateMutability": "nonpayable",
6432 "virtual": false,
6433 "visibility": "public"
6434 },
6435 {
6436 "body": {
6437 "id": 34,
6438 "nodeType": "Block",
6439 "src": "328:47:0",
6440 "statements": [
6441 {
6442 "expression": {
6443 "argumentTypes": null,
6444 "id": 32,
6445 "isConstant": false,
6446 "isLValue": false,
6447 "isPure": false,
6448 "lValueRequested": false,
6449 "leftHandSide": {
6450 "argumentTypes": null,
6451 "id": 30,
6452 "name": "last_completed_migration",
6453 "nodeType": "Identifier",
6454 "overloadedDeclarations": [],
6455 "referencedDeclaration": 5,
6456 "src": "334:24:0",
6457 "typeDescriptions": {
6458 "typeIdentifier": "t_uint256",
6459 "typeString": "uint256"
6460 }
6461 },
6462 "nodeType": "Assignment",
6463 "operator": "=",
6464 "rightHandSide": {
6465 "argumentTypes": null,
6466 "id": 31,
6467 "name": "completed",
6468 "nodeType": "Identifier",
6469 "overloadedDeclarations": [],
6470 "referencedDeclaration": 25,
6471 "src": "361:9:0",
6472 "typeDescriptions": {
6473 "typeIdentifier": "t_uint256",
6474 "typeString": "uint256"
6475 }
6476 },
6477 "src": "334:36:0",
6478 "typeDescriptions": {
6479 "typeIdentifier": "t_uint256",
6480 "typeString": "uint256"
6481 }
6482 },
6483 "id": 33,
6484 "nodeType": "ExpressionStatement",
6485 "src": "334:36:0"
6486 }
6487 ]
6488 },
6489 "documentation": null,
6490 "functionSelector": "fdacd576",
6491 "id": 35,
6492 "implemented": true,
6493 "kind": "function",
6494 "modifiers": [
6495 {
6496 "arguments": null,
6497 "id": 28,
6498 "modifierName": {
6499 "argumentTypes": null,
6500 "id": 27,
6501 "name": "restricted",
6502 "nodeType": "Identifier",
6503 "overloadedDeclarations": [],
6504 "referencedDeclaration": 14,
6505 "src": "317:10:0",
6506 "typeDescriptions": {
6507 "typeIdentifier": "t_modifier$__$",
6508 "typeString": "modifier ()"
6509 }
6510 },
6511 "nodeType": "ModifierInvocation",
6512 "src": "317:10:0"
6513 }
6514 ],
6515 "name": "setCompleted",
6516 "nodeType": "FunctionDefinition",
6517 "overrides": null,
6518 "parameters": {
6519 "id": 26,
6520 "nodeType": "ParameterList",
6521 "parameters": [
6522 {
6523 "constant": false,
6524 "id": 25,
6525 "mutability": "mutable",
6526 "name": "completed",
6527 "nodeType": "VariableDeclaration",
6528 "overrides": null,
6529 "scope": 35,
6530 "src": "294:14:0",
6531 "stateVariable": false,
6532 "storageLocation": "default",
6533 "typeDescriptions": {
6534 "typeIdentifier": "t_uint256",
6535 "typeString": "uint256"
6536 },
6537 "typeName": {
6538 "id": 24,
6539 "name": "uint",
6540 "nodeType": "ElementaryTypeName",
6541 "src": "294:4:0",
6542 "typeDescriptions": {
6543 "typeIdentifier": "t_uint256",
6544 "typeString": "uint256"
6545 }
6546 },
6547 "value": null,
6548 "visibility": "internal"
6549 }
6550 ],
6551 "src": "293:16:0"
6552 },
6553 "returnParameters": {
6554 "id": 29,
6555 "nodeType": "ParameterList",
6556 "parameters": [],
6557 "src": "328:0:0"
6558 },
6559 "scope": 36,
6560 "src": "272:103:0",
6561 "stateMutability": "nonpayable",
6562 "virtual": false,
6563 "visibility": "public"
6564 }
6565 ],
6566 "scope": 37,
6567 "src": "66:311:0"
6568 }
6569 ],
6570 "src": "32:345:0"
6571 }
6572 },
6573 "contracts/UniswapV2ERC20.sol": {
6574 "id": 1,
6575 "AST": {
6576 "absolutePath": "contracts/UniswapV2ERC20.sol",
6577 "exportedSymbols": {
6578 "UniswapV2ERC20": [
6579 425
6580 ]
6581 },
6582 "id": 426,
6583 "license": "GPL-3.0",
6584 "nodeType": "SourceUnit",
6585 "nodes": [
6586 {
6587 "id": 38,
6588 "literals": [
6589 "solidity",
6590 "=",
6591 "0.6",
6592 ".12"
6593 ],
6594 "nodeType": "PragmaDirective",
6595 "src": "37:24:1"
6596 },
6597 {
6598 "absolutePath": "contracts/libraries/SafeMath.sol",
6599 "file": "./libraries/SafeMath.sol",
6600 "id": 39,
6601 "nodeType": "ImportDirective",
6602 "scope": 426,
6603 "sourceUnit": 2384,
6604 "src": "63:34:1",
6605 "symbolAliases": [],
6606 "unitAlias": ""
6607 },
6608 {
6609 "abstract": false,
6610 "baseContracts": [],
6611 "contractDependencies": [],
6612 "contractKind": "contract",
6613 "documentation": null,
6614 "fullyImplemented": true,
6615 "id": 425,
6616 "linearizedBaseContracts": [
6617 425
6618 ],
6619 "name": "UniswapV2ERC20",
6620 "nodeType": "ContractDefinition",
6621 "nodes": [
6622 {
6623 "id": 42,
6624 "libraryName": {
6625 "contractScope": null,
6626 "id": 40,
6627 "name": "SafeMathUniswap",
6628 "nodeType": "UserDefinedTypeName",
6629 "referencedDeclaration": 2383,
6630 "src": "135:15:1",
6631 "typeDescriptions": {
6632 "typeIdentifier": "t_contract$_SafeMathUniswap_$2383",
6633 "typeString": "library SafeMathUniswap"
6634 }
6635 },
6636 "nodeType": "UsingForDirective",
6637 "src": "129:31:1",
6638 "typeName": {
6639 "id": 41,
6640 "name": "uint",
6641 "nodeType": "ElementaryTypeName",
6642 "src": "155:4:1",
6643 "typeDescriptions": {
6644 "typeIdentifier": "t_uint256",
6645 "typeString": "uint256"
6646 }
6647 }
6648 },
6649 {
6650 "constant": true,
6651 "functionSelector": "06fdde03",
6652 "id": 45,
6653 "mutability": "constant",
6654 "name": "name",
6655 "nodeType": "VariableDeclaration",
6656 "overrides": null,
6657 "scope": 425,
6658 "src": "166:46:1",
6659 "stateVariable": true,
6660 "storageLocation": "default",
6661 "typeDescriptions": {
6662 "typeIdentifier": "t_string_memory_ptr",
6663 "typeString": "string"
6664 },
6665 "typeName": {
6666 "id": 43,
6667 "name": "string",
6668 "nodeType": "ElementaryTypeName",
6669 "src": "166:6:1",
6670 "typeDescriptions": {
6671 "typeIdentifier": "t_string_storage_ptr",
6672 "typeString": "string"
6673 }
6674 },
6675 "value": {
6676 "argumentTypes": null,
6677 "hexValue": "536f6e6963204c5020546f6b656e",
6678 "id": 44,
6679 "isConstant": false,
6680 "isLValue": false,
6681 "isPure": true,
6682 "kind": "string",
6683 "lValueRequested": false,
6684 "nodeType": "Literal",
6685 "src": "196:16:1",
6686 "subdenomination": null,
6687 "typeDescriptions": {
6688 "typeIdentifier": "t_stringliteral_f90f134a4dc70f85d4409f329a3df4d7feeb7c7acb7df2ce255362b9a48311aa",
6689 "typeString": "literal_string \"Sonic LP Token\""
6690 },
6691 "value": "Sonic LP Token"
6692 },
6693 "visibility": "public"
6694 },
6695 {
6696 "constant": true,
6697 "functionSelector": "95d89b41",
6698 "id": 48,
6699 "mutability": "constant",
6700 "name": "symbol",
6701 "nodeType": "VariableDeclaration",
6702 "overrides": null,
6703 "scope": 425,
6704 "src": "218:42:1",
6705 "stateVariable": true,
6706 "storageLocation": "default",
6707 "typeDescriptions": {
6708 "typeIdentifier": "t_string_memory_ptr",
6709 "typeString": "string"
6710 },
6711 "typeName": {
6712 "id": 46,
6713 "name": "string",
6714 "nodeType": "ElementaryTypeName",
6715 "src": "218:6:1",
6716 "typeDescriptions": {
6717 "typeIdentifier": "t_string_storage_ptr",
6718 "typeString": "string"
6719 }
6720 },
6721 "value": {
6722 "argumentTypes": null,
6723 "hexValue": "534f4e49432d4c50",
6724 "id": 47,
6725 "isConstant": false,
6726 "isLValue": false,
6727 "isPure": true,
6728 "kind": "string",
6729 "lValueRequested": false,
6730 "nodeType": "Literal",
6731 "src": "250:10:1",
6732 "subdenomination": null,
6733 "typeDescriptions": {
6734 "typeIdentifier": "t_stringliteral_2a0d4936a93d0424bcd59726923200fede401c962642c18caa6dee1eecc73aa7",
6735 "typeString": "literal_string \"SONIC-LP\""
6736 },
6737 "value": "SONIC-LP"
6738 },
6739 "visibility": "public"
6740 },
6741 {
6742 "constant": true,
6743 "functionSelector": "313ce567",
6744 "id": 51,
6745 "mutability": "constant",
6746 "name": "decimals",
6747 "nodeType": "VariableDeclaration",
6748 "overrides": null,
6749 "scope": 425,
6750 "src": "266:35:1",
6751 "stateVariable": true,
6752 "storageLocation": "default",
6753 "typeDescriptions": {
6754 "typeIdentifier": "t_uint8",
6755 "typeString": "uint8"
6756 },
6757 "typeName": {
6758 "id": 49,
6759 "name": "uint8",
6760 "nodeType": "ElementaryTypeName",
6761 "src": "266:5:1",
6762 "typeDescriptions": {
6763 "typeIdentifier": "t_uint8",
6764 "typeString": "uint8"
6765 }
6766 },
6767 "value": {
6768 "argumentTypes": null,
6769 "hexValue": "3138",
6770 "id": 50,
6771 "isConstant": false,
6772 "isLValue": false,
6773 "isPure": true,
6774 "kind": "number",
6775 "lValueRequested": false,
6776 "nodeType": "Literal",
6777 "src": "299:2:1",
6778 "subdenomination": null,
6779 "typeDescriptions": {
6780 "typeIdentifier": "t_rational_18_by_1",
6781 "typeString": "int_const 18"
6782 },
6783 "value": "18"
6784 },
6785 "visibility": "public"
6786 },
6787 {
6788 "constant": false,
6789 "functionSelector": "18160ddd",
6790 "id": 53,
6791 "mutability": "mutable",
6792 "name": "totalSupply",
6793 "nodeType": "VariableDeclaration",
6794 "overrides": null,
6795 "scope": 425,
6796 "src": "307:24:1",
6797 "stateVariable": true,
6798 "storageLocation": "default",
6799 "typeDescriptions": {
6800 "typeIdentifier": "t_uint256",
6801 "typeString": "uint256"
6802 },
6803 "typeName": {
6804 "id": 52,
6805 "name": "uint",
6806 "nodeType": "ElementaryTypeName",
6807 "src": "307:4:1",
6808 "typeDescriptions": {
6809 "typeIdentifier": "t_uint256",
6810 "typeString": "uint256"
6811 }
6812 },
6813 "value": null,
6814 "visibility": "public"
6815 },
6816 {
6817 "constant": false,
6818 "functionSelector": "70a08231",
6819 "id": 57,
6820 "mutability": "mutable",
6821 "name": "balanceOf",
6822 "nodeType": "VariableDeclaration",
6823 "overrides": null,
6824 "scope": 425,
6825 "src": "337:41:1",
6826 "stateVariable": true,
6827 "storageLocation": "default",
6828 "typeDescriptions": {
6829 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6830 "typeString": "mapping(address => uint256)"
6831 },
6832 "typeName": {
6833 "id": 56,
6834 "keyType": {
6835 "id": 54,
6836 "name": "address",
6837 "nodeType": "ElementaryTypeName",
6838 "src": "345:7:1",
6839 "typeDescriptions": {
6840 "typeIdentifier": "t_address",
6841 "typeString": "address"
6842 }
6843 },
6844 "nodeType": "Mapping",
6845 "src": "337:24:1",
6846 "typeDescriptions": {
6847 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6848 "typeString": "mapping(address => uint256)"
6849 },
6850 "valueType": {
6851 "id": 55,
6852 "name": "uint",
6853 "nodeType": "ElementaryTypeName",
6854 "src": "356:4:1",
6855 "typeDescriptions": {
6856 "typeIdentifier": "t_uint256",
6857 "typeString": "uint256"
6858 }
6859 }
6860 },
6861 "value": null,
6862 "visibility": "public"
6863 },
6864 {
6865 "constant": false,
6866 "functionSelector": "dd62ed3e",
6867 "id": 63,
6868 "mutability": "mutable",
6869 "name": "allowance",
6870 "nodeType": "VariableDeclaration",
6871 "overrides": null,
6872 "scope": 425,
6873 "src": "384:61:1",
6874 "stateVariable": true,
6875 "storageLocation": "default",
6876 "typeDescriptions": {
6877 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6878 "typeString": "mapping(address => mapping(address => uint256))"
6879 },
6880 "typeName": {
6881 "id": 62,
6882 "keyType": {
6883 "id": 58,
6884 "name": "address",
6885 "nodeType": "ElementaryTypeName",
6886 "src": "392:7:1",
6887 "typeDescriptions": {
6888 "typeIdentifier": "t_address",
6889 "typeString": "address"
6890 }
6891 },
6892 "nodeType": "Mapping",
6893 "src": "384:44:1",
6894 "typeDescriptions": {
6895 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6896 "typeString": "mapping(address => mapping(address => uint256))"
6897 },
6898 "valueType": {
6899 "id": 61,
6900 "keyType": {
6901 "id": 59,
6902 "name": "address",
6903 "nodeType": "ElementaryTypeName",
6904 "src": "411:7:1",
6905 "typeDescriptions": {
6906 "typeIdentifier": "t_address",
6907 "typeString": "address"
6908 }
6909 },
6910 "nodeType": "Mapping",
6911 "src": "403:24:1",
6912 "typeDescriptions": {
6913 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6914 "typeString": "mapping(address => uint256)"
6915 },
6916 "valueType": {
6917 "id": 60,
6918 "name": "uint",
6919 "nodeType": "ElementaryTypeName",
6920 "src": "422:4:1",
6921 "typeDescriptions": {
6922 "typeIdentifier": "t_uint256",
6923 "typeString": "uint256"
6924 }
6925 }
6926 }
6927 },
6928 "value": null,
6929 "visibility": "public"
6930 },
6931 {
6932 "constant": false,
6933 "functionSelector": "3644e515",
6934 "id": 65,
6935 "mutability": "mutable",
6936 "name": "DOMAIN_SEPARATOR",
6937 "nodeType": "VariableDeclaration",
6938 "overrides": null,
6939 "scope": 425,
6940 "src": "452:31:1",
6941 "stateVariable": true,
6942 "storageLocation": "default",
6943 "typeDescriptions": {
6944 "typeIdentifier": "t_bytes32",
6945 "typeString": "bytes32"
6946 },
6947 "typeName": {
6948 "id": 64,
6949 "name": "bytes32",
6950 "nodeType": "ElementaryTypeName",
6951 "src": "452:7:1",
6952 "typeDescriptions": {
6953 "typeIdentifier": "t_bytes32",
6954 "typeString": "bytes32"
6955 }
6956 },
6957 "value": null,
6958 "visibility": "public"
6959 },
6960 {
6961 "constant": true,
6962 "functionSelector": "30adf81f",
6963 "id": 68,
6964 "mutability": "constant",
6965 "name": "PERMIT_TYPEHASH",
6966 "nodeType": "VariableDeclaration",
6967 "overrides": null,
6968 "scope": 425,
6969 "src": "593:108:1",
6970 "stateVariable": true,
6971 "storageLocation": "default",
6972 "typeDescriptions": {
6973 "typeIdentifier": "t_bytes32",
6974 "typeString": "bytes32"
6975 },
6976 "typeName": {
6977 "id": 66,
6978 "name": "bytes32",
6979 "nodeType": "ElementaryTypeName",
6980 "src": "593:7:1",
6981 "typeDescriptions": {
6982 "typeIdentifier": "t_bytes32",
6983 "typeString": "bytes32"
6984 }
6985 },
6986 "value": {
6987 "argumentTypes": null,
6988 "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339",
6989 "id": 67,
6990 "isConstant": false,
6991 "isLValue": false,
6992 "isPure": true,
6993 "kind": "number",
6994 "lValueRequested": false,
6995 "nodeType": "Literal",
6996 "src": "635:66:1",
6997 "subdenomination": null,
6998 "typeDescriptions": {
6999 "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1",
7000 "typeString": "int_const 4995...(69 digits omitted)...3241"
7001 },
7002 "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"
7003 },
7004 "visibility": "public"
7005 },
7006 {
7007 "constant": false,
7008 "functionSelector": "7ecebe00",
7009 "id": 72,
7010 "mutability": "mutable",
7011 "name": "nonces",
7012 "nodeType": "VariableDeclaration",
7013 "overrides": null,
7014 "scope": 425,
7015 "src": "707:38:1",
7016 "stateVariable": true,
7017 "storageLocation": "default",
7018 "typeDescriptions": {
7019 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7020 "typeString": "mapping(address => uint256)"
7021 },
7022 "typeName": {
7023 "id": 71,
7024 "keyType": {
7025 "id": 69,
7026 "name": "address",
7027 "nodeType": "ElementaryTypeName",
7028 "src": "715:7:1",
7029 "typeDescriptions": {
7030 "typeIdentifier": "t_address",
7031 "typeString": "address"
7032 }
7033 },
7034 "nodeType": "Mapping",
7035 "src": "707:24:1",
7036 "typeDescriptions": {
7037 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7038 "typeString": "mapping(address => uint256)"
7039 },
7040 "valueType": {
7041 "id": 70,
7042 "name": "uint",
7043 "nodeType": "ElementaryTypeName",
7044 "src": "726:4:1",
7045 "typeDescriptions": {
7046 "typeIdentifier": "t_uint256",
7047 "typeString": "uint256"
7048 }
7049 }
7050 },
7051 "value": null,
7052 "visibility": "public"
7053 },
7054 {
7055 "anonymous": false,
7056 "documentation": null,
7057 "id": 80,
7058 "name": "Approval",
7059 "nodeType": "EventDefinition",
7060 "parameters": {
7061 "id": 79,
7062 "nodeType": "ParameterList",
7063 "parameters": [
7064 {
7065 "constant": false,
7066 "id": 74,
7067 "indexed": true,
7068 "mutability": "mutable",
7069 "name": "owner",
7070 "nodeType": "VariableDeclaration",
7071 "overrides": null,
7072 "scope": 80,
7073 "src": "767:21:1",
7074 "stateVariable": false,
7075 "storageLocation": "default",
7076 "typeDescriptions": {
7077 "typeIdentifier": "t_address",
7078 "typeString": "address"
7079 },
7080 "typeName": {
7081 "id": 73,
7082 "name": "address",
7083 "nodeType": "ElementaryTypeName",
7084 "src": "767:7:1",
7085 "stateMutability": "nonpayable",
7086 "typeDescriptions": {
7087 "typeIdentifier": "t_address",
7088 "typeString": "address"
7089 }
7090 },
7091 "value": null,
7092 "visibility": "internal"
7093 },
7094 {
7095 "constant": false,
7096 "id": 76,
7097 "indexed": true,
7098 "mutability": "mutable",
7099 "name": "spender",
7100 "nodeType": "VariableDeclaration",
7101 "overrides": null,
7102 "scope": 80,
7103 "src": "790:23:1",
7104 "stateVariable": false,
7105 "storageLocation": "default",
7106 "typeDescriptions": {
7107 "typeIdentifier": "t_address",
7108 "typeString": "address"
7109 },
7110 "typeName": {
7111 "id": 75,
7112 "name": "address",
7113 "nodeType": "ElementaryTypeName",
7114 "src": "790:7:1",
7115 "stateMutability": "nonpayable",
7116 "typeDescriptions": {
7117 "typeIdentifier": "t_address",
7118 "typeString": "address"
7119 }
7120 },
7121 "value": null,
7122 "visibility": "internal"
7123 },
7124 {
7125 "constant": false,
7126 "id": 78,
7127 "indexed": false,
7128 "mutability": "mutable",
7129 "name": "value",
7130 "nodeType": "VariableDeclaration",
7131 "overrides": null,
7132 "scope": 80,
7133 "src": "815:10:1",
7134 "stateVariable": false,
7135 "storageLocation": "default",
7136 "typeDescriptions": {
7137 "typeIdentifier": "t_uint256",
7138 "typeString": "uint256"
7139 },
7140 "typeName": {
7141 "id": 77,
7142 "name": "uint",
7143 "nodeType": "ElementaryTypeName",
7144 "src": "815:4:1",
7145 "typeDescriptions": {
7146 "typeIdentifier": "t_uint256",
7147 "typeString": "uint256"
7148 }
7149 },
7150 "value": null,
7151 "visibility": "internal"
7152 }
7153 ],
7154 "src": "766:60:1"
7155 },
7156 "src": "752:75:1"
7157 },
7158 {
7159 "anonymous": false,
7160 "documentation": null,
7161 "id": 88,
7162 "name": "Transfer",
7163 "nodeType": "EventDefinition",
7164 "parameters": {
7165 "id": 87,
7166 "nodeType": "ParameterList",
7167 "parameters": [
7168 {
7169 "constant": false,
7170 "id": 82,
7171 "indexed": true,
7172 "mutability": "mutable",
7173 "name": "from",
7174 "nodeType": "VariableDeclaration",
7175 "overrides": null,
7176 "scope": 88,
7177 "src": "847:20:1",
7178 "stateVariable": false,
7179 "storageLocation": "default",
7180 "typeDescriptions": {
7181 "typeIdentifier": "t_address",
7182 "typeString": "address"
7183 },
7184 "typeName": {
7185 "id": 81,
7186 "name": "address",
7187 "nodeType": "ElementaryTypeName",
7188 "src": "847:7:1",
7189 "stateMutability": "nonpayable",
7190 "typeDescriptions": {
7191 "typeIdentifier": "t_address",
7192 "typeString": "address"
7193 }
7194 },
7195 "value": null,
7196 "visibility": "internal"
7197 },
7198 {
7199 "constant": false,
7200 "id": 84,
7201 "indexed": true,
7202 "mutability": "mutable",
7203 "name": "to",
7204 "nodeType": "VariableDeclaration",
7205 "overrides": null,
7206 "scope": 88,
7207 "src": "869:18:1",
7208 "stateVariable": false,
7209 "storageLocation": "default",
7210 "typeDescriptions": {
7211 "typeIdentifier": "t_address",
7212 "typeString": "address"
7213 },
7214 "typeName": {
7215 "id": 83,
7216 "name": "address",
7217 "nodeType": "ElementaryTypeName",
7218 "src": "869:7:1",
7219 "stateMutability": "nonpayable",
7220 "typeDescriptions": {
7221 "typeIdentifier": "t_address",
7222 "typeString": "address"
7223 }
7224 },
7225 "value": null,
7226 "visibility": "internal"
7227 },
7228 {
7229 "constant": false,
7230 "id": 86,
7231 "indexed": false,
7232 "mutability": "mutable",
7233 "name": "value",
7234 "nodeType": "VariableDeclaration",
7235 "overrides": null,
7236 "scope": 88,
7237 "src": "889:10:1",
7238 "stateVariable": false,
7239 "storageLocation": "default",
7240 "typeDescriptions": {
7241 "typeIdentifier": "t_uint256",
7242 "typeString": "uint256"
7243 },
7244 "typeName": {
7245 "id": 85,
7246 "name": "uint",
7247 "nodeType": "ElementaryTypeName",
7248 "src": "889:4:1",
7249 "typeDescriptions": {
7250 "typeIdentifier": "t_uint256",
7251 "typeString": "uint256"
7252 }
7253 },
7254 "value": null,
7255 "visibility": "internal"
7256 }
7257 ],
7258 "src": "846:54:1"
7259 },
7260 "src": "832:69:1"
7261 },
7262 {
7263 "body": {
7264 "id": 123,
7265 "nodeType": "Block",
7266 "src": "928:425:1",
7267 "statements": [
7268 {
7269 "assignments": [
7270 92
7271 ],
7272 "declarations": [
7273 {
7274 "constant": false,
7275 "id": 92,
7276 "mutability": "mutable",
7277 "name": "chainId",
7278 "nodeType": "VariableDeclaration",
7279 "overrides": null,
7280 "scope": 123,
7281 "src": "938:12:1",
7282 "stateVariable": false,
7283 "storageLocation": "default",
7284 "typeDescriptions": {
7285 "typeIdentifier": "t_uint256",
7286 "typeString": "uint256"
7287 },
7288 "typeName": {
7289 "id": 91,
7290 "name": "uint",
7291 "nodeType": "ElementaryTypeName",
7292 "src": "938:4:1",
7293 "typeDescriptions": {
7294 "typeIdentifier": "t_uint256",
7295 "typeString": "uint256"
7296 }
7297 },
7298 "value": null,
7299 "visibility": "internal"
7300 }
7301 ],
7302 "id": 93,
7303 "initialValue": null,
7304 "nodeType": "VariableDeclarationStatement",
7305 "src": "938:12:1"
7306 },
7307 {
7308 "AST": {
7309 "nodeType": "YulBlock",
7310 "src": "969:44:1",
7311 "statements": [
7312 {
7313 "nodeType": "YulAssignment",
7314 "src": "983:20:1",
7315 "value": {
7316 "arguments": [],
7317 "functionName": {
7318 "name": "chainid",
7319 "nodeType": "YulIdentifier",
7320 "src": "994:7:1"
7321 },
7322 "nodeType": "YulFunctionCall",
7323 "src": "994:9:1"
7324 },
7325 "variableNames": [
7326 {
7327 "name": "chainId",
7328 "nodeType": "YulIdentifier",
7329 "src": "983:7:1"
7330 }
7331 ]
7332 }
7333 ]
7334 },
7335 "evmVersion": "istanbul",
7336 "externalReferences": [
7337 {
7338 "declaration": 92,
7339 "isOffset": false,
7340 "isSlot": false,
7341 "src": "983:7:1",
7342 "valueSize": 1
7343 }
7344 ],
7345 "id": 94,
7346 "nodeType": "InlineAssembly",
7347 "src": "960:53:1"
7348 },
7349 {
7350 "expression": {
7351 "argumentTypes": null,
7352 "id": 121,
7353 "isConstant": false,
7354 "isLValue": false,
7355 "isPure": false,
7356 "lValueRequested": false,
7357 "leftHandSide": {
7358 "argumentTypes": null,
7359 "id": 95,
7360 "name": "DOMAIN_SEPARATOR",
7361 "nodeType": "Identifier",
7362 "overloadedDeclarations": [],
7363 "referencedDeclaration": 65,
7364 "src": "1022:16:1",
7365 "typeDescriptions": {
7366 "typeIdentifier": "t_bytes32",
7367 "typeString": "bytes32"
7368 }
7369 },
7370 "nodeType": "Assignment",
7371 "operator": "=",
7372 "rightHandSide": {
7373 "argumentTypes": null,
7374 "arguments": [
7375 {
7376 "argumentTypes": null,
7377 "arguments": [
7378 {
7379 "argumentTypes": null,
7380 "arguments": [
7381 {
7382 "argumentTypes": null,
7383 "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
7384 "id": 100,
7385 "isConstant": false,
7386 "isLValue": false,
7387 "isPure": true,
7388 "kind": "string",
7389 "lValueRequested": false,
7390 "nodeType": "Literal",
7391 "src": "1102:84:1",
7392 "subdenomination": null,
7393 "typeDescriptions": {
7394 "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
7395 "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""
7396 },
7397 "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
7398 }
7399 ],
7400 "expression": {
7401 "argumentTypes": [
7402 {
7403 "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
7404 "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""
7405 }
7406 ],
7407 "id": 99,
7408 "name": "keccak256",
7409 "nodeType": "Identifier",
7410 "overloadedDeclarations": [],
7411 "referencedDeclaration": -8,
7412 "src": "1092:9:1",
7413 "typeDescriptions": {
7414 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
7415 "typeString": "function (bytes memory) pure returns (bytes32)"
7416 }
7417 },
7418 "id": 101,
7419 "isConstant": false,
7420 "isLValue": false,
7421 "isPure": true,
7422 "kind": "functionCall",
7423 "lValueRequested": false,
7424 "names": [],
7425 "nodeType": "FunctionCall",
7426 "src": "1092:95:1",
7427 "tryCall": false,
7428 "typeDescriptions": {
7429 "typeIdentifier": "t_bytes32",
7430 "typeString": "bytes32"
7431 }
7432 },
7433 {
7434 "argumentTypes": null,
7435 "arguments": [
7436 {
7437 "argumentTypes": null,
7438 "arguments": [
7439 {
7440 "argumentTypes": null,
7441 "id": 105,
7442 "name": "name",
7443 "nodeType": "Identifier",
7444 "overloadedDeclarations": [],
7445 "referencedDeclaration": 45,
7446 "src": "1221:4:1",
7447 "typeDescriptions": {
7448 "typeIdentifier": "t_string_memory_ptr",
7449 "typeString": "string memory"
7450 }
7451 }
7452 ],
7453 "expression": {
7454 "argumentTypes": [
7455 {
7456 "typeIdentifier": "t_string_memory_ptr",
7457 "typeString": "string memory"
7458 }
7459 ],
7460 "id": 104,
7461 "isConstant": false,
7462 "isLValue": false,
7463 "isPure": true,
7464 "lValueRequested": false,
7465 "nodeType": "ElementaryTypeNameExpression",
7466 "src": "1215:5:1",
7467 "typeDescriptions": {
7468 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
7469 "typeString": "type(bytes storage pointer)"
7470 },
7471 "typeName": {
7472 "id": 103,
7473 "name": "bytes",
7474 "nodeType": "ElementaryTypeName",
7475 "src": "1215:5:1",
7476 "typeDescriptions": {
7477 "typeIdentifier": null,
7478 "typeString": null
7479 }
7480 }
7481 },
7482 "id": 106,
7483 "isConstant": false,
7484 "isLValue": false,
7485 "isPure": true,
7486 "kind": "typeConversion",
7487 "lValueRequested": false,
7488 "names": [],
7489 "nodeType": "FunctionCall",
7490 "src": "1215:11:1",
7491 "tryCall": false,
7492 "typeDescriptions": {
7493 "typeIdentifier": "t_bytes_memory_ptr",
7494 "typeString": "bytes memory"
7495 }
7496 }
7497 ],
7498 "expression": {
7499 "argumentTypes": [
7500 {
7501 "typeIdentifier": "t_bytes_memory_ptr",
7502 "typeString": "bytes memory"
7503 }
7504 ],
7505 "id": 102,
7506 "name": "keccak256",
7507 "nodeType": "Identifier",
7508 "overloadedDeclarations": [],
7509 "referencedDeclaration": -8,
7510 "src": "1205:9:1",
7511 "typeDescriptions": {
7512 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
7513 "typeString": "function (bytes memory) pure returns (bytes32)"
7514 }
7515 },
7516 "id": 107,
7517 "isConstant": false,
7518 "isLValue": false,
7519 "isPure": true,
7520 "kind": "functionCall",
7521 "lValueRequested": false,
7522 "names": [],
7523 "nodeType": "FunctionCall",
7524 "src": "1205:22:1",
7525 "tryCall": false,
7526 "typeDescriptions": {
7527 "typeIdentifier": "t_bytes32",
7528 "typeString": "bytes32"
7529 }
7530 },
7531 {
7532 "argumentTypes": null,
7533 "arguments": [
7534 {
7535 "argumentTypes": null,
7536 "arguments": [
7537 {
7538 "argumentTypes": null,
7539 "hexValue": "31",
7540 "id": 111,
7541 "isConstant": false,
7542 "isLValue": false,
7543 "isPure": true,
7544 "kind": "string",
7545 "lValueRequested": false,
7546 "nodeType": "Literal",
7547 "src": "1261:3:1",
7548 "subdenomination": null,
7549 "typeDescriptions": {
7550 "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
7551 "typeString": "literal_string \"1\""
7552 },
7553 "value": "1"
7554 }
7555 ],
7556 "expression": {
7557 "argumentTypes": [
7558 {
7559 "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
7560 "typeString": "literal_string \"1\""
7561 }
7562 ],
7563 "id": 110,
7564 "isConstant": false,
7565 "isLValue": false,
7566 "isPure": true,
7567 "lValueRequested": false,
7568 "nodeType": "ElementaryTypeNameExpression",
7569 "src": "1255:5:1",
7570 "typeDescriptions": {
7571 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
7572 "typeString": "type(bytes storage pointer)"
7573 },
7574 "typeName": {
7575 "id": 109,
7576 "name": "bytes",
7577 "nodeType": "ElementaryTypeName",
7578 "src": "1255:5:1",
7579 "typeDescriptions": {
7580 "typeIdentifier": null,
7581 "typeString": null
7582 }
7583 }
7584 },
7585 "id": 112,
7586 "isConstant": false,
7587 "isLValue": false,
7588 "isPure": true,
7589 "kind": "typeConversion",
7590 "lValueRequested": false,
7591 "names": [],
7592 "nodeType": "FunctionCall",
7593 "src": "1255:10:1",
7594 "tryCall": false,
7595 "typeDescriptions": {
7596 "typeIdentifier": "t_bytes_memory_ptr",
7597 "typeString": "bytes memory"
7598 }
7599 }
7600 ],
7601 "expression": {
7602 "argumentTypes": [
7603 {
7604 "typeIdentifier": "t_bytes_memory_ptr",
7605 "typeString": "bytes memory"
7606 }
7607 ],
7608 "id": 108,
7609 "name": "keccak256",
7610 "nodeType": "Identifier",
7611 "overloadedDeclarations": [],
7612 "referencedDeclaration": -8,
7613 "src": "1245:9:1",
7614 "typeDescriptions": {
7615 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
7616 "typeString": "function (bytes memory) pure returns (bytes32)"
7617 }
7618 },
7619 "id": 113,
7620 "isConstant": false,
7621 "isLValue": false,
7622 "isPure": true,
7623 "kind": "functionCall",
7624 "lValueRequested": false,
7625 "names": [],
7626 "nodeType": "FunctionCall",
7627 "src": "1245:21:1",
7628 "tryCall": false,
7629 "typeDescriptions": {
7630 "typeIdentifier": "t_bytes32",
7631 "typeString": "bytes32"
7632 }
7633 },
7634 {
7635 "argumentTypes": null,
7636 "id": 114,
7637 "name": "chainId",
7638 "nodeType": "Identifier",
7639 "overloadedDeclarations": [],
7640 "referencedDeclaration": 92,
7641 "src": "1284:7:1",
7642 "typeDescriptions": {
7643 "typeIdentifier": "t_uint256",
7644 "typeString": "uint256"
7645 }
7646 },
7647 {
7648 "argumentTypes": null,
7649 "arguments": [
7650 {
7651 "argumentTypes": null,
7652 "id": 117,
7653 "name": "this",
7654 "nodeType": "Identifier",
7655 "overloadedDeclarations": [],
7656 "referencedDeclaration": -28,
7657 "src": "1317:4:1",
7658 "typeDescriptions": {
7659 "typeIdentifier": "t_contract$_UniswapV2ERC20_$425",
7660 "typeString": "contract UniswapV2ERC20"
7661 }
7662 }
7663 ],
7664 "expression": {
7665 "argumentTypes": [
7666 {
7667 "typeIdentifier": "t_contract$_UniswapV2ERC20_$425",
7668 "typeString": "contract UniswapV2ERC20"
7669 }
7670 ],
7671 "id": 116,
7672 "isConstant": false,
7673 "isLValue": false,
7674 "isPure": true,
7675 "lValueRequested": false,
7676 "nodeType": "ElementaryTypeNameExpression",
7677 "src": "1309:7:1",
7678 "typeDescriptions": {
7679 "typeIdentifier": "t_type$_t_address_$",
7680 "typeString": "type(address)"
7681 },
7682 "typeName": {
7683 "id": 115,
7684 "name": "address",
7685 "nodeType": "ElementaryTypeName",
7686 "src": "1309:7:1",
7687 "typeDescriptions": {
7688 "typeIdentifier": null,
7689 "typeString": null
7690 }
7691 }
7692 },
7693 "id": 118,
7694 "isConstant": false,
7695 "isLValue": false,
7696 "isPure": false,
7697 "kind": "typeConversion",
7698 "lValueRequested": false,
7699 "names": [],
7700 "nodeType": "FunctionCall",
7701 "src": "1309:13:1",
7702 "tryCall": false,
7703 "typeDescriptions": {
7704 "typeIdentifier": "t_address",
7705 "typeString": "address"
7706 }
7707 }
7708 ],
7709 "expression": {
7710 "argumentTypes": [
7711 {
7712 "typeIdentifier": "t_bytes32",
7713 "typeString": "bytes32"
7714 },
7715 {
7716 "typeIdentifier": "t_bytes32",
7717 "typeString": "bytes32"
7718 },
7719 {
7720 "typeIdentifier": "t_bytes32",
7721 "typeString": "bytes32"
7722 },
7723 {
7724 "typeIdentifier": "t_uint256",
7725 "typeString": "uint256"
7726 },
7727 {
7728 "typeIdentifier": "t_address",
7729 "typeString": "address"
7730 }
7731 ],
7732 "expression": {
7733 "argumentTypes": null,
7734 "id": 97,
7735 "name": "abi",
7736 "nodeType": "Identifier",
7737 "overloadedDeclarations": [],
7738 "referencedDeclaration": -1,
7739 "src": "1064:3:1",
7740 "typeDescriptions": {
7741 "typeIdentifier": "t_magic_abi",
7742 "typeString": "abi"
7743 }
7744 },
7745 "id": 98,
7746 "isConstant": false,
7747 "isLValue": false,
7748 "isPure": true,
7749 "lValueRequested": false,
7750 "memberName": "encode",
7751 "nodeType": "MemberAccess",
7752 "referencedDeclaration": null,
7753 "src": "1064:10:1",
7754 "typeDescriptions": {
7755 "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
7756 "typeString": "function () pure returns (bytes memory)"
7757 }
7758 },
7759 "id": 119,
7760 "isConstant": false,
7761 "isLValue": false,
7762 "isPure": false,
7763 "kind": "functionCall",
7764 "lValueRequested": false,
7765 "names": [],
7766 "nodeType": "FunctionCall",
7767 "src": "1064:272:1",
7768 "tryCall": false,
7769 "typeDescriptions": {
7770 "typeIdentifier": "t_bytes_memory_ptr",
7771 "typeString": "bytes memory"
7772 }
7773 }
7774 ],
7775 "expression": {
7776 "argumentTypes": [
7777 {
7778 "typeIdentifier": "t_bytes_memory_ptr",
7779 "typeString": "bytes memory"
7780 }
7781 ],
7782 "id": 96,
7783 "name": "keccak256",
7784 "nodeType": "Identifier",
7785 "overloadedDeclarations": [],
7786 "referencedDeclaration": -8,
7787 "src": "1041:9:1",
7788 "typeDescriptions": {
7789 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
7790 "typeString": "function (bytes memory) pure returns (bytes32)"
7791 }
7792 },
7793 "id": 120,
7794 "isConstant": false,
7795 "isLValue": false,
7796 "isPure": false,
7797 "kind": "functionCall",
7798 "lValueRequested": false,
7799 "names": [],
7800 "nodeType": "FunctionCall",
7801 "src": "1041:305:1",
7802 "tryCall": false,
7803 "typeDescriptions": {
7804 "typeIdentifier": "t_bytes32",
7805 "typeString": "bytes32"
7806 }
7807 },
7808 "src": "1022:324:1",
7809 "typeDescriptions": {
7810 "typeIdentifier": "t_bytes32",
7811 "typeString": "bytes32"
7812 }
7813 },
7814 "id": 122,
7815 "nodeType": "ExpressionStatement",
7816 "src": "1022:324:1"
7817 }
7818 ]
7819 },
7820 "documentation": null,
7821 "id": 124,
7822 "implemented": true,
7823 "kind": "constructor",
7824 "modifiers": [],
7825 "name": "",
7826 "nodeType": "FunctionDefinition",
7827 "overrides": null,
7828 "parameters": {
7829 "id": 89,
7830 "nodeType": "ParameterList",
7831 "parameters": [],
7832 "src": "918:2:1"
7833 },
7834 "returnParameters": {
7835 "id": 90,
7836 "nodeType": "ParameterList",
7837 "parameters": [],
7838 "src": "928:0:1"
7839 },
7840 "scope": 425,
7841 "src": "907:446:1",
7842 "stateMutability": "nonpayable",
7843 "virtual": false,
7844 "visibility": "public"
7845 },
7846 {
7847 "body": {
7848 "id": 158,
7849 "nodeType": "Block",
7850 "src": "1407:149:1",
7851 "statements": [
7852 {
7853 "expression": {
7854 "argumentTypes": null,
7855 "id": 136,
7856 "isConstant": false,
7857 "isLValue": false,
7858 "isPure": false,
7859 "lValueRequested": false,
7860 "leftHandSide": {
7861 "argumentTypes": null,
7862 "id": 131,
7863 "name": "totalSupply",
7864 "nodeType": "Identifier",
7865 "overloadedDeclarations": [],
7866 "referencedDeclaration": 53,
7867 "src": "1417:11:1",
7868 "typeDescriptions": {
7869 "typeIdentifier": "t_uint256",
7870 "typeString": "uint256"
7871 }
7872 },
7873 "nodeType": "Assignment",
7874 "operator": "=",
7875 "rightHandSide": {
7876 "argumentTypes": null,
7877 "arguments": [
7878 {
7879 "argumentTypes": null,
7880 "id": 134,
7881 "name": "value",
7882 "nodeType": "Identifier",
7883 "overloadedDeclarations": [],
7884 "referencedDeclaration": 128,
7885 "src": "1447:5:1",
7886 "typeDescriptions": {
7887 "typeIdentifier": "t_uint256",
7888 "typeString": "uint256"
7889 }
7890 }
7891 ],
7892 "expression": {
7893 "argumentTypes": [
7894 {
7895 "typeIdentifier": "t_uint256",
7896 "typeString": "uint256"
7897 }
7898 ],
7899 "expression": {
7900 "argumentTypes": null,
7901 "id": 132,
7902 "name": "totalSupply",
7903 "nodeType": "Identifier",
7904 "overloadedDeclarations": [],
7905 "referencedDeclaration": 53,
7906 "src": "1431:11:1",
7907 "typeDescriptions": {
7908 "typeIdentifier": "t_uint256",
7909 "typeString": "uint256"
7910 }
7911 },
7912 "id": 133,
7913 "isConstant": false,
7914 "isLValue": false,
7915 "isPure": false,
7916 "lValueRequested": false,
7917 "memberName": "add",
7918 "nodeType": "MemberAccess",
7919 "referencedDeclaration": 2332,
7920 "src": "1431:15:1",
7921 "typeDescriptions": {
7922 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
7923 "typeString": "function (uint256,uint256) pure returns (uint256)"
7924 }
7925 },
7926 "id": 135,
7927 "isConstant": false,
7928 "isLValue": false,
7929 "isPure": false,
7930 "kind": "functionCall",
7931 "lValueRequested": false,
7932 "names": [],
7933 "nodeType": "FunctionCall",
7934 "src": "1431:22:1",
7935 "tryCall": false,
7936 "typeDescriptions": {
7937 "typeIdentifier": "t_uint256",
7938 "typeString": "uint256"
7939 }
7940 },
7941 "src": "1417:36:1",
7942 "typeDescriptions": {
7943 "typeIdentifier": "t_uint256",
7944 "typeString": "uint256"
7945 }
7946 },
7947 "id": 137,
7948 "nodeType": "ExpressionStatement",
7949 "src": "1417:36:1"
7950 },
7951 {
7952 "expression": {
7953 "argumentTypes": null,
7954 "id": 147,
7955 "isConstant": false,
7956 "isLValue": false,
7957 "isPure": false,
7958 "lValueRequested": false,
7959 "leftHandSide": {
7960 "argumentTypes": null,
7961 "baseExpression": {
7962 "argumentTypes": null,
7963 "id": 138,
7964 "name": "balanceOf",
7965 "nodeType": "Identifier",
7966 "overloadedDeclarations": [],
7967 "referencedDeclaration": 57,
7968 "src": "1463:9:1",
7969 "typeDescriptions": {
7970 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7971 "typeString": "mapping(address => uint256)"
7972 }
7973 },
7974 "id": 140,
7975 "indexExpression": {
7976 "argumentTypes": null,
7977 "id": 139,
7978 "name": "to",
7979 "nodeType": "Identifier",
7980 "overloadedDeclarations": [],
7981 "referencedDeclaration": 126,
7982 "src": "1473:2:1",
7983 "typeDescriptions": {
7984 "typeIdentifier": "t_address",
7985 "typeString": "address"
7986 }
7987 },
7988 "isConstant": false,
7989 "isLValue": true,
7990 "isPure": false,
7991 "lValueRequested": true,
7992 "nodeType": "IndexAccess",
7993 "src": "1463:13:1",
7994 "typeDescriptions": {
7995 "typeIdentifier": "t_uint256",
7996 "typeString": "uint256"
7997 }
7998 },
7999 "nodeType": "Assignment",
8000 "operator": "=",
8001 "rightHandSide": {
8002 "argumentTypes": null,
8003 "arguments": [
8004 {
8005 "argumentTypes": null,
8006 "id": 145,
8007 "name": "value",
8008 "nodeType": "Identifier",
8009 "overloadedDeclarations": [],
8010 "referencedDeclaration": 128,
8011 "src": "1497:5:1",
8012 "typeDescriptions": {
8013 "typeIdentifier": "t_uint256",
8014 "typeString": "uint256"
8015 }
8016 }
8017 ],
8018 "expression": {
8019 "argumentTypes": [
8020 {
8021 "typeIdentifier": "t_uint256",
8022 "typeString": "uint256"
8023 }
8024 ],
8025 "expression": {
8026 "argumentTypes": null,
8027 "baseExpression": {
8028 "argumentTypes": null,
8029 "id": 141,
8030 "name": "balanceOf",
8031 "nodeType": "Identifier",
8032 "overloadedDeclarations": [],
8033 "referencedDeclaration": 57,
8034 "src": "1479:9:1",
8035 "typeDescriptions": {
8036 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8037 "typeString": "mapping(address => uint256)"
8038 }
8039 },
8040 "id": 143,
8041 "indexExpression": {
8042 "argumentTypes": null,
8043 "id": 142,
8044 "name": "to",
8045 "nodeType": "Identifier",
8046 "overloadedDeclarations": [],
8047 "referencedDeclaration": 126,
8048 "src": "1489:2:1",
8049 "typeDescriptions": {
8050 "typeIdentifier": "t_address",
8051 "typeString": "address"
8052 }
8053 },
8054 "isConstant": false,
8055 "isLValue": true,
8056 "isPure": false,
8057 "lValueRequested": false,
8058 "nodeType": "IndexAccess",
8059 "src": "1479:13:1",
8060 "typeDescriptions": {
8061 "typeIdentifier": "t_uint256",
8062 "typeString": "uint256"
8063 }
8064 },
8065 "id": 144,
8066 "isConstant": false,
8067 "isLValue": false,
8068 "isPure": false,
8069 "lValueRequested": false,
8070 "memberName": "add",
8071 "nodeType": "MemberAccess",
8072 "referencedDeclaration": 2332,
8073 "src": "1479:17:1",
8074 "typeDescriptions": {
8075 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8076 "typeString": "function (uint256,uint256) pure returns (uint256)"
8077 }
8078 },
8079 "id": 146,
8080 "isConstant": false,
8081 "isLValue": false,
8082 "isPure": false,
8083 "kind": "functionCall",
8084 "lValueRequested": false,
8085 "names": [],
8086 "nodeType": "FunctionCall",
8087 "src": "1479:24:1",
8088 "tryCall": false,
8089 "typeDescriptions": {
8090 "typeIdentifier": "t_uint256",
8091 "typeString": "uint256"
8092 }
8093 },
8094 "src": "1463:40:1",
8095 "typeDescriptions": {
8096 "typeIdentifier": "t_uint256",
8097 "typeString": "uint256"
8098 }
8099 },
8100 "id": 148,
8101 "nodeType": "ExpressionStatement",
8102 "src": "1463:40:1"
8103 },
8104 {
8105 "eventCall": {
8106 "argumentTypes": null,
8107 "arguments": [
8108 {
8109 "argumentTypes": null,
8110 "arguments": [
8111 {
8112 "argumentTypes": null,
8113 "hexValue": "30",
8114 "id": 152,
8115 "isConstant": false,
8116 "isLValue": false,
8117 "isPure": true,
8118 "kind": "number",
8119 "lValueRequested": false,
8120 "nodeType": "Literal",
8121 "src": "1535:1:1",
8122 "subdenomination": null,
8123 "typeDescriptions": {
8124 "typeIdentifier": "t_rational_0_by_1",
8125 "typeString": "int_const 0"
8126 },
8127 "value": "0"
8128 }
8129 ],
8130 "expression": {
8131 "argumentTypes": [
8132 {
8133 "typeIdentifier": "t_rational_0_by_1",
8134 "typeString": "int_const 0"
8135 }
8136 ],
8137 "id": 151,
8138 "isConstant": false,
8139 "isLValue": false,
8140 "isPure": true,
8141 "lValueRequested": false,
8142 "nodeType": "ElementaryTypeNameExpression",
8143 "src": "1527:7:1",
8144 "typeDescriptions": {
8145 "typeIdentifier": "t_type$_t_address_$",
8146 "typeString": "type(address)"
8147 },
8148 "typeName": {
8149 "id": 150,
8150 "name": "address",
8151 "nodeType": "ElementaryTypeName",
8152 "src": "1527:7:1",
8153 "typeDescriptions": {
8154 "typeIdentifier": null,
8155 "typeString": null
8156 }
8157 }
8158 },
8159 "id": 153,
8160 "isConstant": false,
8161 "isLValue": false,
8162 "isPure": true,
8163 "kind": "typeConversion",
8164 "lValueRequested": false,
8165 "names": [],
8166 "nodeType": "FunctionCall",
8167 "src": "1527:10:1",
8168 "tryCall": false,
8169 "typeDescriptions": {
8170 "typeIdentifier": "t_address_payable",
8171 "typeString": "address payable"
8172 }
8173 },
8174 {
8175 "argumentTypes": null,
8176 "id": 154,
8177 "name": "to",
8178 "nodeType": "Identifier",
8179 "overloadedDeclarations": [],
8180 "referencedDeclaration": 126,
8181 "src": "1539:2:1",
8182 "typeDescriptions": {
8183 "typeIdentifier": "t_address",
8184 "typeString": "address"
8185 }
8186 },
8187 {
8188 "argumentTypes": null,
8189 "id": 155,
8190 "name": "value",
8191 "nodeType": "Identifier",
8192 "overloadedDeclarations": [],
8193 "referencedDeclaration": 128,
8194 "src": "1543:5:1",
8195 "typeDescriptions": {
8196 "typeIdentifier": "t_uint256",
8197 "typeString": "uint256"
8198 }
8199 }
8200 ],
8201 "expression": {
8202 "argumentTypes": [
8203 {
8204 "typeIdentifier": "t_address_payable",
8205 "typeString": "address payable"
8206 },
8207 {
8208 "typeIdentifier": "t_address",
8209 "typeString": "address"
8210 },
8211 {
8212 "typeIdentifier": "t_uint256",
8213 "typeString": "uint256"
8214 }
8215 ],
8216 "id": 149,
8217 "name": "Transfer",
8218 "nodeType": "Identifier",
8219 "overloadedDeclarations": [],
8220 "referencedDeclaration": 88,
8221 "src": "1518:8:1",
8222 "typeDescriptions": {
8223 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
8224 "typeString": "function (address,address,uint256)"
8225 }
8226 },
8227 "id": 156,
8228 "isConstant": false,
8229 "isLValue": false,
8230 "isPure": false,
8231 "kind": "functionCall",
8232 "lValueRequested": false,
8233 "names": [],
8234 "nodeType": "FunctionCall",
8235 "src": "1518:31:1",
8236 "tryCall": false,
8237 "typeDescriptions": {
8238 "typeIdentifier": "t_tuple$__$",
8239 "typeString": "tuple()"
8240 }
8241 },
8242 "id": 157,
8243 "nodeType": "EmitStatement",
8244 "src": "1513:36:1"
8245 }
8246 ]
8247 },
8248 "documentation": null,
8249 "id": 159,
8250 "implemented": true,
8251 "kind": "function",
8252 "modifiers": [],
8253 "name": "_mint",
8254 "nodeType": "FunctionDefinition",
8255 "overrides": null,
8256 "parameters": {
8257 "id": 129,
8258 "nodeType": "ParameterList",
8259 "parameters": [
8260 {
8261 "constant": false,
8262 "id": 126,
8263 "mutability": "mutable",
8264 "name": "to",
8265 "nodeType": "VariableDeclaration",
8266 "overrides": null,
8267 "scope": 159,
8268 "src": "1374:10:1",
8269 "stateVariable": false,
8270 "storageLocation": "default",
8271 "typeDescriptions": {
8272 "typeIdentifier": "t_address",
8273 "typeString": "address"
8274 },
8275 "typeName": {
8276 "id": 125,
8277 "name": "address",
8278 "nodeType": "ElementaryTypeName",
8279 "src": "1374:7:1",
8280 "stateMutability": "nonpayable",
8281 "typeDescriptions": {
8282 "typeIdentifier": "t_address",
8283 "typeString": "address"
8284 }
8285 },
8286 "value": null,
8287 "visibility": "internal"
8288 },
8289 {
8290 "constant": false,
8291 "id": 128,
8292 "mutability": "mutable",
8293 "name": "value",
8294 "nodeType": "VariableDeclaration",
8295 "overrides": null,
8296 "scope": 159,
8297 "src": "1386:10:1",
8298 "stateVariable": false,
8299 "storageLocation": "default",
8300 "typeDescriptions": {
8301 "typeIdentifier": "t_uint256",
8302 "typeString": "uint256"
8303 },
8304 "typeName": {
8305 "id": 127,
8306 "name": "uint",
8307 "nodeType": "ElementaryTypeName",
8308 "src": "1386:4:1",
8309 "typeDescriptions": {
8310 "typeIdentifier": "t_uint256",
8311 "typeString": "uint256"
8312 }
8313 },
8314 "value": null,
8315 "visibility": "internal"
8316 }
8317 ],
8318 "src": "1373:24:1"
8319 },
8320 "returnParameters": {
8321 "id": 130,
8322 "nodeType": "ParameterList",
8323 "parameters": [],
8324 "src": "1407:0:1"
8325 },
8326 "scope": 425,
8327 "src": "1359:197:1",
8328 "stateMutability": "nonpayable",
8329 "virtual": false,
8330 "visibility": "internal"
8331 },
8332 {
8333 "body": {
8334 "id": 193,
8335 "nodeType": "Block",
8336 "src": "1612:155:1",
8337 "statements": [
8338 {
8339 "expression": {
8340 "argumentTypes": null,
8341 "id": 175,
8342 "isConstant": false,
8343 "isLValue": false,
8344 "isPure": false,
8345 "lValueRequested": false,
8346 "leftHandSide": {
8347 "argumentTypes": null,
8348 "baseExpression": {
8349 "argumentTypes": null,
8350 "id": 166,
8351 "name": "balanceOf",
8352 "nodeType": "Identifier",
8353 "overloadedDeclarations": [],
8354 "referencedDeclaration": 57,
8355 "src": "1622:9:1",
8356 "typeDescriptions": {
8357 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8358 "typeString": "mapping(address => uint256)"
8359 }
8360 },
8361 "id": 168,
8362 "indexExpression": {
8363 "argumentTypes": null,
8364 "id": 167,
8365 "name": "from",
8366 "nodeType": "Identifier",
8367 "overloadedDeclarations": [],
8368 "referencedDeclaration": 161,
8369 "src": "1632:4:1",
8370 "typeDescriptions": {
8371 "typeIdentifier": "t_address",
8372 "typeString": "address"
8373 }
8374 },
8375 "isConstant": false,
8376 "isLValue": true,
8377 "isPure": false,
8378 "lValueRequested": true,
8379 "nodeType": "IndexAccess",
8380 "src": "1622:15:1",
8381 "typeDescriptions": {
8382 "typeIdentifier": "t_uint256",
8383 "typeString": "uint256"
8384 }
8385 },
8386 "nodeType": "Assignment",
8387 "operator": "=",
8388 "rightHandSide": {
8389 "argumentTypes": null,
8390 "arguments": [
8391 {
8392 "argumentTypes": null,
8393 "id": 173,
8394 "name": "value",
8395 "nodeType": "Identifier",
8396 "overloadedDeclarations": [],
8397 "referencedDeclaration": 163,
8398 "src": "1660:5:1",
8399 "typeDescriptions": {
8400 "typeIdentifier": "t_uint256",
8401 "typeString": "uint256"
8402 }
8403 }
8404 ],
8405 "expression": {
8406 "argumentTypes": [
8407 {
8408 "typeIdentifier": "t_uint256",
8409 "typeString": "uint256"
8410 }
8411 ],
8412 "expression": {
8413 "argumentTypes": null,
8414 "baseExpression": {
8415 "argumentTypes": null,
8416 "id": 169,
8417 "name": "balanceOf",
8418 "nodeType": "Identifier",
8419 "overloadedDeclarations": [],
8420 "referencedDeclaration": 57,
8421 "src": "1640:9:1",
8422 "typeDescriptions": {
8423 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8424 "typeString": "mapping(address => uint256)"
8425 }
8426 },
8427 "id": 171,
8428 "indexExpression": {
8429 "argumentTypes": null,
8430 "id": 170,
8431 "name": "from",
8432 "nodeType": "Identifier",
8433 "overloadedDeclarations": [],
8434 "referencedDeclaration": 161,
8435 "src": "1650:4:1",
8436 "typeDescriptions": {
8437 "typeIdentifier": "t_address",
8438 "typeString": "address"
8439 }
8440 },
8441 "isConstant": false,
8442 "isLValue": true,
8443 "isPure": false,
8444 "lValueRequested": false,
8445 "nodeType": "IndexAccess",
8446 "src": "1640:15:1",
8447 "typeDescriptions": {
8448 "typeIdentifier": "t_uint256",
8449 "typeString": "uint256"
8450 }
8451 },
8452 "id": 172,
8453 "isConstant": false,
8454 "isLValue": false,
8455 "isPure": false,
8456 "lValueRequested": false,
8457 "memberName": "sub",
8458 "nodeType": "MemberAccess",
8459 "referencedDeclaration": 2354,
8460 "src": "1640:19:1",
8461 "typeDescriptions": {
8462 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8463 "typeString": "function (uint256,uint256) pure returns (uint256)"
8464 }
8465 },
8466 "id": 174,
8467 "isConstant": false,
8468 "isLValue": false,
8469 "isPure": false,
8470 "kind": "functionCall",
8471 "lValueRequested": false,
8472 "names": [],
8473 "nodeType": "FunctionCall",
8474 "src": "1640:26:1",
8475 "tryCall": false,
8476 "typeDescriptions": {
8477 "typeIdentifier": "t_uint256",
8478 "typeString": "uint256"
8479 }
8480 },
8481 "src": "1622:44:1",
8482 "typeDescriptions": {
8483 "typeIdentifier": "t_uint256",
8484 "typeString": "uint256"
8485 }
8486 },
8487 "id": 176,
8488 "nodeType": "ExpressionStatement",
8489 "src": "1622:44:1"
8490 },
8491 {
8492 "expression": {
8493 "argumentTypes": null,
8494 "id": 182,
8495 "isConstant": false,
8496 "isLValue": false,
8497 "isPure": false,
8498 "lValueRequested": false,
8499 "leftHandSide": {
8500 "argumentTypes": null,
8501 "id": 177,
8502 "name": "totalSupply",
8503 "nodeType": "Identifier",
8504 "overloadedDeclarations": [],
8505 "referencedDeclaration": 53,
8506 "src": "1676:11:1",
8507 "typeDescriptions": {
8508 "typeIdentifier": "t_uint256",
8509 "typeString": "uint256"
8510 }
8511 },
8512 "nodeType": "Assignment",
8513 "operator": "=",
8514 "rightHandSide": {
8515 "argumentTypes": null,
8516 "arguments": [
8517 {
8518 "argumentTypes": null,
8519 "id": 180,
8520 "name": "value",
8521 "nodeType": "Identifier",
8522 "overloadedDeclarations": [],
8523 "referencedDeclaration": 163,
8524 "src": "1706:5:1",
8525 "typeDescriptions": {
8526 "typeIdentifier": "t_uint256",
8527 "typeString": "uint256"
8528 }
8529 }
8530 ],
8531 "expression": {
8532 "argumentTypes": [
8533 {
8534 "typeIdentifier": "t_uint256",
8535 "typeString": "uint256"
8536 }
8537 ],
8538 "expression": {
8539 "argumentTypes": null,
8540 "id": 178,
8541 "name": "totalSupply",
8542 "nodeType": "Identifier",
8543 "overloadedDeclarations": [],
8544 "referencedDeclaration": 53,
8545 "src": "1690:11:1",
8546 "typeDescriptions": {
8547 "typeIdentifier": "t_uint256",
8548 "typeString": "uint256"
8549 }
8550 },
8551 "id": 179,
8552 "isConstant": false,
8553 "isLValue": false,
8554 "isPure": false,
8555 "lValueRequested": false,
8556 "memberName": "sub",
8557 "nodeType": "MemberAccess",
8558 "referencedDeclaration": 2354,
8559 "src": "1690:15:1",
8560 "typeDescriptions": {
8561 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8562 "typeString": "function (uint256,uint256) pure returns (uint256)"
8563 }
8564 },
8565 "id": 181,
8566 "isConstant": false,
8567 "isLValue": false,
8568 "isPure": false,
8569 "kind": "functionCall",
8570 "lValueRequested": false,
8571 "names": [],
8572 "nodeType": "FunctionCall",
8573 "src": "1690:22:1",
8574 "tryCall": false,
8575 "typeDescriptions": {
8576 "typeIdentifier": "t_uint256",
8577 "typeString": "uint256"
8578 }
8579 },
8580 "src": "1676:36:1",
8581 "typeDescriptions": {
8582 "typeIdentifier": "t_uint256",
8583 "typeString": "uint256"
8584 }
8585 },
8586 "id": 183,
8587 "nodeType": "ExpressionStatement",
8588 "src": "1676:36:1"
8589 },
8590 {
8591 "eventCall": {
8592 "argumentTypes": null,
8593 "arguments": [
8594 {
8595 "argumentTypes": null,
8596 "id": 185,
8597 "name": "from",
8598 "nodeType": "Identifier",
8599 "overloadedDeclarations": [],
8600 "referencedDeclaration": 161,
8601 "src": "1736:4:1",
8602 "typeDescriptions": {
8603 "typeIdentifier": "t_address",
8604 "typeString": "address"
8605 }
8606 },
8607 {
8608 "argumentTypes": null,
8609 "arguments": [
8610 {
8611 "argumentTypes": null,
8612 "hexValue": "30",
8613 "id": 188,
8614 "isConstant": false,
8615 "isLValue": false,
8616 "isPure": true,
8617 "kind": "number",
8618 "lValueRequested": false,
8619 "nodeType": "Literal",
8620 "src": "1750:1:1",
8621 "subdenomination": null,
8622 "typeDescriptions": {
8623 "typeIdentifier": "t_rational_0_by_1",
8624 "typeString": "int_const 0"
8625 },
8626 "value": "0"
8627 }
8628 ],
8629 "expression": {
8630 "argumentTypes": [
8631 {
8632 "typeIdentifier": "t_rational_0_by_1",
8633 "typeString": "int_const 0"
8634 }
8635 ],
8636 "id": 187,
8637 "isConstant": false,
8638 "isLValue": false,
8639 "isPure": true,
8640 "lValueRequested": false,
8641 "nodeType": "ElementaryTypeNameExpression",
8642 "src": "1742:7:1",
8643 "typeDescriptions": {
8644 "typeIdentifier": "t_type$_t_address_$",
8645 "typeString": "type(address)"
8646 },
8647 "typeName": {
8648 "id": 186,
8649 "name": "address",
8650 "nodeType": "ElementaryTypeName",
8651 "src": "1742:7:1",
8652 "typeDescriptions": {
8653 "typeIdentifier": null,
8654 "typeString": null
8655 }
8656 }
8657 },
8658 "id": 189,
8659 "isConstant": false,
8660 "isLValue": false,
8661 "isPure": true,
8662 "kind": "typeConversion",
8663 "lValueRequested": false,
8664 "names": [],
8665 "nodeType": "FunctionCall",
8666 "src": "1742:10:1",
8667 "tryCall": false,
8668 "typeDescriptions": {
8669 "typeIdentifier": "t_address_payable",
8670 "typeString": "address payable"
8671 }
8672 },
8673 {
8674 "argumentTypes": null,
8675 "id": 190,
8676 "name": "value",
8677 "nodeType": "Identifier",
8678 "overloadedDeclarations": [],
8679 "referencedDeclaration": 163,
8680 "src": "1754:5:1",
8681 "typeDescriptions": {
8682 "typeIdentifier": "t_uint256",
8683 "typeString": "uint256"
8684 }
8685 }
8686 ],
8687 "expression": {
8688 "argumentTypes": [
8689 {
8690 "typeIdentifier": "t_address",
8691 "typeString": "address"
8692 },
8693 {
8694 "typeIdentifier": "t_address_payable",
8695 "typeString": "address payable"
8696 },
8697 {
8698 "typeIdentifier": "t_uint256",
8699 "typeString": "uint256"
8700 }
8701 ],
8702 "id": 184,
8703 "name": "Transfer",
8704 "nodeType": "Identifier",
8705 "overloadedDeclarations": [],
8706 "referencedDeclaration": 88,
8707 "src": "1727:8:1",
8708 "typeDescriptions": {
8709 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
8710 "typeString": "function (address,address,uint256)"
8711 }
8712 },
8713 "id": 191,
8714 "isConstant": false,
8715 "isLValue": false,
8716 "isPure": false,
8717 "kind": "functionCall",
8718 "lValueRequested": false,
8719 "names": [],
8720 "nodeType": "FunctionCall",
8721 "src": "1727:33:1",
8722 "tryCall": false,
8723 "typeDescriptions": {
8724 "typeIdentifier": "t_tuple$__$",
8725 "typeString": "tuple()"
8726 }
8727 },
8728 "id": 192,
8729 "nodeType": "EmitStatement",
8730 "src": "1722:38:1"
8731 }
8732 ]
8733 },
8734 "documentation": null,
8735 "id": 194,
8736 "implemented": true,
8737 "kind": "function",
8738 "modifiers": [],
8739 "name": "_burn",
8740 "nodeType": "FunctionDefinition",
8741 "overrides": null,
8742 "parameters": {
8743 "id": 164,
8744 "nodeType": "ParameterList",
8745 "parameters": [
8746 {
8747 "constant": false,
8748 "id": 161,
8749 "mutability": "mutable",
8750 "name": "from",
8751 "nodeType": "VariableDeclaration",
8752 "overrides": null,
8753 "scope": 194,
8754 "src": "1577:12:1",
8755 "stateVariable": false,
8756 "storageLocation": "default",
8757 "typeDescriptions": {
8758 "typeIdentifier": "t_address",
8759 "typeString": "address"
8760 },
8761 "typeName": {
8762 "id": 160,
8763 "name": "address",
8764 "nodeType": "ElementaryTypeName",
8765 "src": "1577:7:1",
8766 "stateMutability": "nonpayable",
8767 "typeDescriptions": {
8768 "typeIdentifier": "t_address",
8769 "typeString": "address"
8770 }
8771 },
8772 "value": null,
8773 "visibility": "internal"
8774 },
8775 {
8776 "constant": false,
8777 "id": 163,
8778 "mutability": "mutable",
8779 "name": "value",
8780 "nodeType": "VariableDeclaration",
8781 "overrides": null,
8782 "scope": 194,
8783 "src": "1591:10:1",
8784 "stateVariable": false,
8785 "storageLocation": "default",
8786 "typeDescriptions": {
8787 "typeIdentifier": "t_uint256",
8788 "typeString": "uint256"
8789 },
8790 "typeName": {
8791 "id": 162,
8792 "name": "uint",
8793 "nodeType": "ElementaryTypeName",
8794 "src": "1591:4:1",
8795 "typeDescriptions": {
8796 "typeIdentifier": "t_uint256",
8797 "typeString": "uint256"
8798 }
8799 },
8800 "value": null,
8801 "visibility": "internal"
8802 }
8803 ],
8804 "src": "1576:26:1"
8805 },
8806 "returnParameters": {
8807 "id": 165,
8808 "nodeType": "ParameterList",
8809 "parameters": [],
8810 "src": "1612:0:1"
8811 },
8812 "scope": 425,
8813 "src": "1562:205:1",
8814 "stateMutability": "nonpayable",
8815 "virtual": false,
8816 "visibility": "internal"
8817 },
8818 {
8819 "body": {
8820 "id": 217,
8821 "nodeType": "Block",
8822 "src": "1843:96:1",
8823 "statements": [
8824 {
8825 "expression": {
8826 "argumentTypes": null,
8827 "id": 209,
8828 "isConstant": false,
8829 "isLValue": false,
8830 "isPure": false,
8831 "lValueRequested": false,
8832 "leftHandSide": {
8833 "argumentTypes": null,
8834 "baseExpression": {
8835 "argumentTypes": null,
8836 "baseExpression": {
8837 "argumentTypes": null,
8838 "id": 203,
8839 "name": "allowance",
8840 "nodeType": "Identifier",
8841 "overloadedDeclarations": [],
8842 "referencedDeclaration": 63,
8843 "src": "1853:9:1",
8844 "typeDescriptions": {
8845 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
8846 "typeString": "mapping(address => mapping(address => uint256))"
8847 }
8848 },
8849 "id": 206,
8850 "indexExpression": {
8851 "argumentTypes": null,
8852 "id": 204,
8853 "name": "owner",
8854 "nodeType": "Identifier",
8855 "overloadedDeclarations": [],
8856 "referencedDeclaration": 196,
8857 "src": "1863:5:1",
8858 "typeDescriptions": {
8859 "typeIdentifier": "t_address",
8860 "typeString": "address"
8861 }
8862 },
8863 "isConstant": false,
8864 "isLValue": true,
8865 "isPure": false,
8866 "lValueRequested": false,
8867 "nodeType": "IndexAccess",
8868 "src": "1853:16:1",
8869 "typeDescriptions": {
8870 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8871 "typeString": "mapping(address => uint256)"
8872 }
8873 },
8874 "id": 207,
8875 "indexExpression": {
8876 "argumentTypes": null,
8877 "id": 205,
8878 "name": "spender",
8879 "nodeType": "Identifier",
8880 "overloadedDeclarations": [],
8881 "referencedDeclaration": 198,
8882 "src": "1870:7:1",
8883 "typeDescriptions": {
8884 "typeIdentifier": "t_address",
8885 "typeString": "address"
8886 }
8887 },
8888 "isConstant": false,
8889 "isLValue": true,
8890 "isPure": false,
8891 "lValueRequested": true,
8892 "nodeType": "IndexAccess",
8893 "src": "1853:25:1",
8894 "typeDescriptions": {
8895 "typeIdentifier": "t_uint256",
8896 "typeString": "uint256"
8897 }
8898 },
8899 "nodeType": "Assignment",
8900 "operator": "=",
8901 "rightHandSide": {
8902 "argumentTypes": null,
8903 "id": 208,
8904 "name": "value",
8905 "nodeType": "Identifier",
8906 "overloadedDeclarations": [],
8907 "referencedDeclaration": 200,
8908 "src": "1881:5:1",
8909 "typeDescriptions": {
8910 "typeIdentifier": "t_uint256",
8911 "typeString": "uint256"
8912 }
8913 },
8914 "src": "1853:33:1",
8915 "typeDescriptions": {
8916 "typeIdentifier": "t_uint256",
8917 "typeString": "uint256"
8918 }
8919 },
8920 "id": 210,
8921 "nodeType": "ExpressionStatement",
8922 "src": "1853:33:1"
8923 },
8924 {
8925 "eventCall": {
8926 "argumentTypes": null,
8927 "arguments": [
8928 {
8929 "argumentTypes": null,
8930 "id": 212,
8931 "name": "owner",
8932 "nodeType": "Identifier",
8933 "overloadedDeclarations": [],
8934 "referencedDeclaration": 196,
8935 "src": "1910:5:1",
8936 "typeDescriptions": {
8937 "typeIdentifier": "t_address",
8938 "typeString": "address"
8939 }
8940 },
8941 {
8942 "argumentTypes": null,
8943 "id": 213,
8944 "name": "spender",
8945 "nodeType": "Identifier",
8946 "overloadedDeclarations": [],
8947 "referencedDeclaration": 198,
8948 "src": "1917:7:1",
8949 "typeDescriptions": {
8950 "typeIdentifier": "t_address",
8951 "typeString": "address"
8952 }
8953 },
8954 {
8955 "argumentTypes": null,
8956 "id": 214,
8957 "name": "value",
8958 "nodeType": "Identifier",
8959 "overloadedDeclarations": [],
8960 "referencedDeclaration": 200,
8961 "src": "1926:5:1",
8962 "typeDescriptions": {
8963 "typeIdentifier": "t_uint256",
8964 "typeString": "uint256"
8965 }
8966 }
8967 ],
8968 "expression": {
8969 "argumentTypes": [
8970 {
8971 "typeIdentifier": "t_address",
8972 "typeString": "address"
8973 },
8974 {
8975 "typeIdentifier": "t_address",
8976 "typeString": "address"
8977 },
8978 {
8979 "typeIdentifier": "t_uint256",
8980 "typeString": "uint256"
8981 }
8982 ],
8983 "id": 211,
8984 "name": "Approval",
8985 "nodeType": "Identifier",
8986 "overloadedDeclarations": [],
8987 "referencedDeclaration": 80,
8988 "src": "1901:8:1",
8989 "typeDescriptions": {
8990 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
8991 "typeString": "function (address,address,uint256)"
8992 }
8993 },
8994 "id": 215,
8995 "isConstant": false,
8996 "isLValue": false,
8997 "isPure": false,
8998 "kind": "functionCall",
8999 "lValueRequested": false,
9000 "names": [],
9001 "nodeType": "FunctionCall",
9002 "src": "1901:31:1",
9003 "tryCall": false,
9004 "typeDescriptions": {
9005 "typeIdentifier": "t_tuple$__$",
9006 "typeString": "tuple()"
9007 }
9008 },
9009 "id": 216,
9010 "nodeType": "EmitStatement",
9011 "src": "1896:36:1"
9012 }
9013 ]
9014 },
9015 "documentation": null,
9016 "id": 218,
9017 "implemented": true,
9018 "kind": "function",
9019 "modifiers": [],
9020 "name": "_approve",
9021 "nodeType": "FunctionDefinition",
9022 "overrides": null,
9023 "parameters": {
9024 "id": 201,
9025 "nodeType": "ParameterList",
9026 "parameters": [
9027 {
9028 "constant": false,
9029 "id": 196,
9030 "mutability": "mutable",
9031 "name": "owner",
9032 "nodeType": "VariableDeclaration",
9033 "overrides": null,
9034 "scope": 218,
9035 "src": "1791:13:1",
9036 "stateVariable": false,
9037 "storageLocation": "default",
9038 "typeDescriptions": {
9039 "typeIdentifier": "t_address",
9040 "typeString": "address"
9041 },
9042 "typeName": {
9043 "id": 195,
9044 "name": "address",
9045 "nodeType": "ElementaryTypeName",
9046 "src": "1791:7:1",
9047 "stateMutability": "nonpayable",
9048 "typeDescriptions": {
9049 "typeIdentifier": "t_address",
9050 "typeString": "address"
9051 }
9052 },
9053 "value": null,
9054 "visibility": "internal"
9055 },
9056 {
9057 "constant": false,
9058 "id": 198,
9059 "mutability": "mutable",
9060 "name": "spender",
9061 "nodeType": "VariableDeclaration",
9062 "overrides": null,
9063 "scope": 218,
9064 "src": "1806:15:1",
9065 "stateVariable": false,
9066 "storageLocation": "default",
9067 "typeDescriptions": {
9068 "typeIdentifier": "t_address",
9069 "typeString": "address"
9070 },
9071 "typeName": {
9072 "id": 197,
9073 "name": "address",
9074 "nodeType": "ElementaryTypeName",
9075 "src": "1806:7:1",
9076 "stateMutability": "nonpayable",
9077 "typeDescriptions": {
9078 "typeIdentifier": "t_address",
9079 "typeString": "address"
9080 }
9081 },
9082 "value": null,
9083 "visibility": "internal"
9084 },
9085 {
9086 "constant": false,
9087 "id": 200,
9088 "mutability": "mutable",
9089 "name": "value",
9090 "nodeType": "VariableDeclaration",
9091 "overrides": null,
9092 "scope": 218,
9093 "src": "1823:10:1",
9094 "stateVariable": false,
9095 "storageLocation": "default",
9096 "typeDescriptions": {
9097 "typeIdentifier": "t_uint256",
9098 "typeString": "uint256"
9099 },
9100 "typeName": {
9101 "id": 199,
9102 "name": "uint",
9103 "nodeType": "ElementaryTypeName",
9104 "src": "1823:4:1",
9105 "typeDescriptions": {
9106 "typeIdentifier": "t_uint256",
9107 "typeString": "uint256"
9108 }
9109 },
9110 "value": null,
9111 "visibility": "internal"
9112 }
9113 ],
9114 "src": "1790:44:1"
9115 },
9116 "returnParameters": {
9117 "id": 202,
9118 "nodeType": "ParameterList",
9119 "parameters": [],
9120 "src": "1843:0:1"
9121 },
9122 "scope": 425,
9123 "src": "1773:166:1",
9124 "stateMutability": "nonpayable",
9125 "virtual": false,
9126 "visibility": "private"
9127 },
9128 {
9129 "body": {
9130 "id": 255,
9131 "nodeType": "Block",
9132 "src": "2010:151:1",
9133 "statements": [
9134 {
9135 "expression": {
9136 "argumentTypes": null,
9137 "id": 236,
9138 "isConstant": false,
9139 "isLValue": false,
9140 "isPure": false,
9141 "lValueRequested": false,
9142 "leftHandSide": {
9143 "argumentTypes": null,
9144 "baseExpression": {
9145 "argumentTypes": null,
9146 "id": 227,
9147 "name": "balanceOf",
9148 "nodeType": "Identifier",
9149 "overloadedDeclarations": [],
9150 "referencedDeclaration": 57,
9151 "src": "2020:9:1",
9152 "typeDescriptions": {
9153 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9154 "typeString": "mapping(address => uint256)"
9155 }
9156 },
9157 "id": 229,
9158 "indexExpression": {
9159 "argumentTypes": null,
9160 "id": 228,
9161 "name": "from",
9162 "nodeType": "Identifier",
9163 "overloadedDeclarations": [],
9164 "referencedDeclaration": 220,
9165 "src": "2030:4:1",
9166 "typeDescriptions": {
9167 "typeIdentifier": "t_address",
9168 "typeString": "address"
9169 }
9170 },
9171 "isConstant": false,
9172 "isLValue": true,
9173 "isPure": false,
9174 "lValueRequested": true,
9175 "nodeType": "IndexAccess",
9176 "src": "2020:15:1",
9177 "typeDescriptions": {
9178 "typeIdentifier": "t_uint256",
9179 "typeString": "uint256"
9180 }
9181 },
9182 "nodeType": "Assignment",
9183 "operator": "=",
9184 "rightHandSide": {
9185 "argumentTypes": null,
9186 "arguments": [
9187 {
9188 "argumentTypes": null,
9189 "id": 234,
9190 "name": "value",
9191 "nodeType": "Identifier",
9192 "overloadedDeclarations": [],
9193 "referencedDeclaration": 224,
9194 "src": "2058:5:1",
9195 "typeDescriptions": {
9196 "typeIdentifier": "t_uint256",
9197 "typeString": "uint256"
9198 }
9199 }
9200 ],
9201 "expression": {
9202 "argumentTypes": [
9203 {
9204 "typeIdentifier": "t_uint256",
9205 "typeString": "uint256"
9206 }
9207 ],
9208 "expression": {
9209 "argumentTypes": null,
9210 "baseExpression": {
9211 "argumentTypes": null,
9212 "id": 230,
9213 "name": "balanceOf",
9214 "nodeType": "Identifier",
9215 "overloadedDeclarations": [],
9216 "referencedDeclaration": 57,
9217 "src": "2038:9:1",
9218 "typeDescriptions": {
9219 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9220 "typeString": "mapping(address => uint256)"
9221 }
9222 },
9223 "id": 232,
9224 "indexExpression": {
9225 "argumentTypes": null,
9226 "id": 231,
9227 "name": "from",
9228 "nodeType": "Identifier",
9229 "overloadedDeclarations": [],
9230 "referencedDeclaration": 220,
9231 "src": "2048:4:1",
9232 "typeDescriptions": {
9233 "typeIdentifier": "t_address",
9234 "typeString": "address"
9235 }
9236 },
9237 "isConstant": false,
9238 "isLValue": true,
9239 "isPure": false,
9240 "lValueRequested": false,
9241 "nodeType": "IndexAccess",
9242 "src": "2038:15:1",
9243 "typeDescriptions": {
9244 "typeIdentifier": "t_uint256",
9245 "typeString": "uint256"
9246 }
9247 },
9248 "id": 233,
9249 "isConstant": false,
9250 "isLValue": false,
9251 "isPure": false,
9252 "lValueRequested": false,
9253 "memberName": "sub",
9254 "nodeType": "MemberAccess",
9255 "referencedDeclaration": 2354,
9256 "src": "2038:19:1",
9257 "typeDescriptions": {
9258 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
9259 "typeString": "function (uint256,uint256) pure returns (uint256)"
9260 }
9261 },
9262 "id": 235,
9263 "isConstant": false,
9264 "isLValue": false,
9265 "isPure": false,
9266 "kind": "functionCall",
9267 "lValueRequested": false,
9268 "names": [],
9269 "nodeType": "FunctionCall",
9270 "src": "2038:26:1",
9271 "tryCall": false,
9272 "typeDescriptions": {
9273 "typeIdentifier": "t_uint256",
9274 "typeString": "uint256"
9275 }
9276 },
9277 "src": "2020:44:1",
9278 "typeDescriptions": {
9279 "typeIdentifier": "t_uint256",
9280 "typeString": "uint256"
9281 }
9282 },
9283 "id": 237,
9284 "nodeType": "ExpressionStatement",
9285 "src": "2020:44:1"
9286 },
9287 {
9288 "expression": {
9289 "argumentTypes": null,
9290 "id": 247,
9291 "isConstant": false,
9292 "isLValue": false,
9293 "isPure": false,
9294 "lValueRequested": false,
9295 "leftHandSide": {
9296 "argumentTypes": null,
9297 "baseExpression": {
9298 "argumentTypes": null,
9299 "id": 238,
9300 "name": "balanceOf",
9301 "nodeType": "Identifier",
9302 "overloadedDeclarations": [],
9303 "referencedDeclaration": 57,
9304 "src": "2074:9:1",
9305 "typeDescriptions": {
9306 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9307 "typeString": "mapping(address => uint256)"
9308 }
9309 },
9310 "id": 240,
9311 "indexExpression": {
9312 "argumentTypes": null,
9313 "id": 239,
9314 "name": "to",
9315 "nodeType": "Identifier",
9316 "overloadedDeclarations": [],
9317 "referencedDeclaration": 222,
9318 "src": "2084:2:1",
9319 "typeDescriptions": {
9320 "typeIdentifier": "t_address",
9321 "typeString": "address"
9322 }
9323 },
9324 "isConstant": false,
9325 "isLValue": true,
9326 "isPure": false,
9327 "lValueRequested": true,
9328 "nodeType": "IndexAccess",
9329 "src": "2074:13:1",
9330 "typeDescriptions": {
9331 "typeIdentifier": "t_uint256",
9332 "typeString": "uint256"
9333 }
9334 },
9335 "nodeType": "Assignment",
9336 "operator": "=",
9337 "rightHandSide": {
9338 "argumentTypes": null,
9339 "arguments": [
9340 {
9341 "argumentTypes": null,
9342 "id": 245,
9343 "name": "value",
9344 "nodeType": "Identifier",
9345 "overloadedDeclarations": [],
9346 "referencedDeclaration": 224,
9347 "src": "2108:5:1",
9348 "typeDescriptions": {
9349 "typeIdentifier": "t_uint256",
9350 "typeString": "uint256"
9351 }
9352 }
9353 ],
9354 "expression": {
9355 "argumentTypes": [
9356 {
9357 "typeIdentifier": "t_uint256",
9358 "typeString": "uint256"
9359 }
9360 ],
9361 "expression": {
9362 "argumentTypes": null,
9363 "baseExpression": {
9364 "argumentTypes": null,
9365 "id": 241,
9366 "name": "balanceOf",
9367 "nodeType": "Identifier",
9368 "overloadedDeclarations": [],
9369 "referencedDeclaration": 57,
9370 "src": "2090:9:1",
9371 "typeDescriptions": {
9372 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9373 "typeString": "mapping(address => uint256)"
9374 }
9375 },
9376 "id": 243,
9377 "indexExpression": {
9378 "argumentTypes": null,
9379 "id": 242,
9380 "name": "to",
9381 "nodeType": "Identifier",
9382 "overloadedDeclarations": [],
9383 "referencedDeclaration": 222,
9384 "src": "2100:2:1",
9385 "typeDescriptions": {
9386 "typeIdentifier": "t_address",
9387 "typeString": "address"
9388 }
9389 },
9390 "isConstant": false,
9391 "isLValue": true,
9392 "isPure": false,
9393 "lValueRequested": false,
9394 "nodeType": "IndexAccess",
9395 "src": "2090:13:1",
9396 "typeDescriptions": {
9397 "typeIdentifier": "t_uint256",
9398 "typeString": "uint256"
9399 }
9400 },
9401 "id": 244,
9402 "isConstant": false,
9403 "isLValue": false,
9404 "isPure": false,
9405 "lValueRequested": false,
9406 "memberName": "add",
9407 "nodeType": "MemberAccess",
9408 "referencedDeclaration": 2332,
9409 "src": "2090:17:1",
9410 "typeDescriptions": {
9411 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
9412 "typeString": "function (uint256,uint256) pure returns (uint256)"
9413 }
9414 },
9415 "id": 246,
9416 "isConstant": false,
9417 "isLValue": false,
9418 "isPure": false,
9419 "kind": "functionCall",
9420 "lValueRequested": false,
9421 "names": [],
9422 "nodeType": "FunctionCall",
9423 "src": "2090:24:1",
9424 "tryCall": false,
9425 "typeDescriptions": {
9426 "typeIdentifier": "t_uint256",
9427 "typeString": "uint256"
9428 }
9429 },
9430 "src": "2074:40:1",
9431 "typeDescriptions": {
9432 "typeIdentifier": "t_uint256",
9433 "typeString": "uint256"
9434 }
9435 },
9436 "id": 248,
9437 "nodeType": "ExpressionStatement",
9438 "src": "2074:40:1"
9439 },
9440 {
9441 "eventCall": {
9442 "argumentTypes": null,
9443 "arguments": [
9444 {
9445 "argumentTypes": null,
9446 "id": 250,
9447 "name": "from",
9448 "nodeType": "Identifier",
9449 "overloadedDeclarations": [],
9450 "referencedDeclaration": 220,
9451 "src": "2138:4:1",
9452 "typeDescriptions": {
9453 "typeIdentifier": "t_address",
9454 "typeString": "address"
9455 }
9456 },
9457 {
9458 "argumentTypes": null,
9459 "id": 251,
9460 "name": "to",
9461 "nodeType": "Identifier",
9462 "overloadedDeclarations": [],
9463 "referencedDeclaration": 222,
9464 "src": "2144:2:1",
9465 "typeDescriptions": {
9466 "typeIdentifier": "t_address",
9467 "typeString": "address"
9468 }
9469 },
9470 {
9471 "argumentTypes": null,
9472 "id": 252,
9473 "name": "value",
9474 "nodeType": "Identifier",
9475 "overloadedDeclarations": [],
9476 "referencedDeclaration": 224,
9477 "src": "2148:5:1",
9478 "typeDescriptions": {
9479 "typeIdentifier": "t_uint256",
9480 "typeString": "uint256"
9481 }
9482 }
9483 ],
9484 "expression": {
9485 "argumentTypes": [
9486 {
9487 "typeIdentifier": "t_address",
9488 "typeString": "address"
9489 },
9490 {
9491 "typeIdentifier": "t_address",
9492 "typeString": "address"
9493 },
9494 {
9495 "typeIdentifier": "t_uint256",
9496 "typeString": "uint256"
9497 }
9498 ],
9499 "id": 249,
9500 "name": "Transfer",
9501 "nodeType": "Identifier",
9502 "overloadedDeclarations": [],
9503 "referencedDeclaration": 88,
9504 "src": "2129:8:1",
9505 "typeDescriptions": {
9506 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9507 "typeString": "function (address,address,uint256)"
9508 }
9509 },
9510 "id": 253,
9511 "isConstant": false,
9512 "isLValue": false,
9513 "isPure": false,
9514 "kind": "functionCall",
9515 "lValueRequested": false,
9516 "names": [],
9517 "nodeType": "FunctionCall",
9518 "src": "2129:25:1",
9519 "tryCall": false,
9520 "typeDescriptions": {
9521 "typeIdentifier": "t_tuple$__$",
9522 "typeString": "tuple()"
9523 }
9524 },
9525 "id": 254,
9526 "nodeType": "EmitStatement",
9527 "src": "2124:30:1"
9528 }
9529 ]
9530 },
9531 "documentation": null,
9532 "id": 256,
9533 "implemented": true,
9534 "kind": "function",
9535 "modifiers": [],
9536 "name": "_transfer",
9537 "nodeType": "FunctionDefinition",
9538 "overrides": null,
9539 "parameters": {
9540 "id": 225,
9541 "nodeType": "ParameterList",
9542 "parameters": [
9543 {
9544 "constant": false,
9545 "id": 220,
9546 "mutability": "mutable",
9547 "name": "from",
9548 "nodeType": "VariableDeclaration",
9549 "overrides": null,
9550 "scope": 256,
9551 "src": "1964:12:1",
9552 "stateVariable": false,
9553 "storageLocation": "default",
9554 "typeDescriptions": {
9555 "typeIdentifier": "t_address",
9556 "typeString": "address"
9557 },
9558 "typeName": {
9559 "id": 219,
9560 "name": "address",
9561 "nodeType": "ElementaryTypeName",
9562 "src": "1964:7:1",
9563 "stateMutability": "nonpayable",
9564 "typeDescriptions": {
9565 "typeIdentifier": "t_address",
9566 "typeString": "address"
9567 }
9568 },
9569 "value": null,
9570 "visibility": "internal"
9571 },
9572 {
9573 "constant": false,
9574 "id": 222,
9575 "mutability": "mutable",
9576 "name": "to",
9577 "nodeType": "VariableDeclaration",
9578 "overrides": null,
9579 "scope": 256,
9580 "src": "1978:10:1",
9581 "stateVariable": false,
9582 "storageLocation": "default",
9583 "typeDescriptions": {
9584 "typeIdentifier": "t_address",
9585 "typeString": "address"
9586 },
9587 "typeName": {
9588 "id": 221,
9589 "name": "address",
9590 "nodeType": "ElementaryTypeName",
9591 "src": "1978:7:1",
9592 "stateMutability": "nonpayable",
9593 "typeDescriptions": {
9594 "typeIdentifier": "t_address",
9595 "typeString": "address"
9596 }
9597 },
9598 "value": null,
9599 "visibility": "internal"
9600 },
9601 {
9602 "constant": false,
9603 "id": 224,
9604 "mutability": "mutable",
9605 "name": "value",
9606 "nodeType": "VariableDeclaration",
9607 "overrides": null,
9608 "scope": 256,
9609 "src": "1990:10:1",
9610 "stateVariable": false,
9611 "storageLocation": "default",
9612 "typeDescriptions": {
9613 "typeIdentifier": "t_uint256",
9614 "typeString": "uint256"
9615 },
9616 "typeName": {
9617 "id": 223,
9618 "name": "uint",
9619 "nodeType": "ElementaryTypeName",
9620 "src": "1990:4:1",
9621 "typeDescriptions": {
9622 "typeIdentifier": "t_uint256",
9623 "typeString": "uint256"
9624 }
9625 },
9626 "value": null,
9627 "visibility": "internal"
9628 }
9629 ],
9630 "src": "1963:38:1"
9631 },
9632 "returnParameters": {
9633 "id": 226,
9634 "nodeType": "ParameterList",
9635 "parameters": [],
9636 "src": "2010:0:1"
9637 },
9638 "scope": 425,
9639 "src": "1945:216:1",
9640 "stateMutability": "nonpayable",
9641 "virtual": false,
9642 "visibility": "private"
9643 },
9644 {
9645 "body": {
9646 "id": 274,
9647 "nodeType": "Block",
9648 "src": "2237:74:1",
9649 "statements": [
9650 {
9651 "expression": {
9652 "argumentTypes": null,
9653 "arguments": [
9654 {
9655 "argumentTypes": null,
9656 "expression": {
9657 "argumentTypes": null,
9658 "id": 266,
9659 "name": "msg",
9660 "nodeType": "Identifier",
9661 "overloadedDeclarations": [],
9662 "referencedDeclaration": -15,
9663 "src": "2256:3:1",
9664 "typeDescriptions": {
9665 "typeIdentifier": "t_magic_message",
9666 "typeString": "msg"
9667 }
9668 },
9669 "id": 267,
9670 "isConstant": false,
9671 "isLValue": false,
9672 "isPure": false,
9673 "lValueRequested": false,
9674 "memberName": "sender",
9675 "nodeType": "MemberAccess",
9676 "referencedDeclaration": null,
9677 "src": "2256:10:1",
9678 "typeDescriptions": {
9679 "typeIdentifier": "t_address_payable",
9680 "typeString": "address payable"
9681 }
9682 },
9683 {
9684 "argumentTypes": null,
9685 "id": 268,
9686 "name": "spender",
9687 "nodeType": "Identifier",
9688 "overloadedDeclarations": [],
9689 "referencedDeclaration": 258,
9690 "src": "2268:7:1",
9691 "typeDescriptions": {
9692 "typeIdentifier": "t_address",
9693 "typeString": "address"
9694 }
9695 },
9696 {
9697 "argumentTypes": null,
9698 "id": 269,
9699 "name": "value",
9700 "nodeType": "Identifier",
9701 "overloadedDeclarations": [],
9702 "referencedDeclaration": 260,
9703 "src": "2277:5:1",
9704 "typeDescriptions": {
9705 "typeIdentifier": "t_uint256",
9706 "typeString": "uint256"
9707 }
9708 }
9709 ],
9710 "expression": {
9711 "argumentTypes": [
9712 {
9713 "typeIdentifier": "t_address_payable",
9714 "typeString": "address payable"
9715 },
9716 {
9717 "typeIdentifier": "t_address",
9718 "typeString": "address"
9719 },
9720 {
9721 "typeIdentifier": "t_uint256",
9722 "typeString": "uint256"
9723 }
9724 ],
9725 "id": 265,
9726 "name": "_approve",
9727 "nodeType": "Identifier",
9728 "overloadedDeclarations": [],
9729 "referencedDeclaration": 218,
9730 "src": "2247:8:1",
9731 "typeDescriptions": {
9732 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9733 "typeString": "function (address,address,uint256)"
9734 }
9735 },
9736 "id": 270,
9737 "isConstant": false,
9738 "isLValue": false,
9739 "isPure": false,
9740 "kind": "functionCall",
9741 "lValueRequested": false,
9742 "names": [],
9743 "nodeType": "FunctionCall",
9744 "src": "2247:36:1",
9745 "tryCall": false,
9746 "typeDescriptions": {
9747 "typeIdentifier": "t_tuple$__$",
9748 "typeString": "tuple()"
9749 }
9750 },
9751 "id": 271,
9752 "nodeType": "ExpressionStatement",
9753 "src": "2247:36:1"
9754 },
9755 {
9756 "expression": {
9757 "argumentTypes": null,
9758 "hexValue": "74727565",
9759 "id": 272,
9760 "isConstant": false,
9761 "isLValue": false,
9762 "isPure": true,
9763 "kind": "bool",
9764 "lValueRequested": false,
9765 "nodeType": "Literal",
9766 "src": "2300:4:1",
9767 "subdenomination": null,
9768 "typeDescriptions": {
9769 "typeIdentifier": "t_bool",
9770 "typeString": "bool"
9771 },
9772 "value": "true"
9773 },
9774 "functionReturnParameters": 264,
9775 "id": 273,
9776 "nodeType": "Return",
9777 "src": "2293:11:1"
9778 }
9779 ]
9780 },
9781 "documentation": null,
9782 "functionSelector": "095ea7b3",
9783 "id": 275,
9784 "implemented": true,
9785 "kind": "function",
9786 "modifiers": [],
9787 "name": "approve",
9788 "nodeType": "FunctionDefinition",
9789 "overrides": null,
9790 "parameters": {
9791 "id": 261,
9792 "nodeType": "ParameterList",
9793 "parameters": [
9794 {
9795 "constant": false,
9796 "id": 258,
9797 "mutability": "mutable",
9798 "name": "spender",
9799 "nodeType": "VariableDeclaration",
9800 "overrides": null,
9801 "scope": 275,
9802 "src": "2184:15:1",
9803 "stateVariable": false,
9804 "storageLocation": "default",
9805 "typeDescriptions": {
9806 "typeIdentifier": "t_address",
9807 "typeString": "address"
9808 },
9809 "typeName": {
9810 "id": 257,
9811 "name": "address",
9812 "nodeType": "ElementaryTypeName",
9813 "src": "2184:7:1",
9814 "stateMutability": "nonpayable",
9815 "typeDescriptions": {
9816 "typeIdentifier": "t_address",
9817 "typeString": "address"
9818 }
9819 },
9820 "value": null,
9821 "visibility": "internal"
9822 },
9823 {
9824 "constant": false,
9825 "id": 260,
9826 "mutability": "mutable",
9827 "name": "value",
9828 "nodeType": "VariableDeclaration",
9829 "overrides": null,
9830 "scope": 275,
9831 "src": "2201:10:1",
9832 "stateVariable": false,
9833 "storageLocation": "default",
9834 "typeDescriptions": {
9835 "typeIdentifier": "t_uint256",
9836 "typeString": "uint256"
9837 },
9838 "typeName": {
9839 "id": 259,
9840 "name": "uint",
9841 "nodeType": "ElementaryTypeName",
9842 "src": "2201:4:1",
9843 "typeDescriptions": {
9844 "typeIdentifier": "t_uint256",
9845 "typeString": "uint256"
9846 }
9847 },
9848 "value": null,
9849 "visibility": "internal"
9850 }
9851 ],
9852 "src": "2183:29:1"
9853 },
9854 "returnParameters": {
9855 "id": 264,
9856 "nodeType": "ParameterList",
9857 "parameters": [
9858 {
9859 "constant": false,
9860 "id": 263,
9861 "mutability": "mutable",
9862 "name": "",
9863 "nodeType": "VariableDeclaration",
9864 "overrides": null,
9865 "scope": 275,
9866 "src": "2231:4:1",
9867 "stateVariable": false,
9868 "storageLocation": "default",
9869 "typeDescriptions": {
9870 "typeIdentifier": "t_bool",
9871 "typeString": "bool"
9872 },
9873 "typeName": {
9874 "id": 262,
9875 "name": "bool",
9876 "nodeType": "ElementaryTypeName",
9877 "src": "2231:4:1",
9878 "typeDescriptions": {
9879 "typeIdentifier": "t_bool",
9880 "typeString": "bool"
9881 }
9882 },
9883 "value": null,
9884 "visibility": "internal"
9885 }
9886 ],
9887 "src": "2230:6:1"
9888 },
9889 "scope": 425,
9890 "src": "2167:144:1",
9891 "stateMutability": "nonpayable",
9892 "virtual": false,
9893 "visibility": "external"
9894 },
9895 {
9896 "body": {
9897 "id": 293,
9898 "nodeType": "Block",
9899 "src": "2383:70:1",
9900 "statements": [
9901 {
9902 "expression": {
9903 "argumentTypes": null,
9904 "arguments": [
9905 {
9906 "argumentTypes": null,
9907 "expression": {
9908 "argumentTypes": null,
9909 "id": 285,
9910 "name": "msg",
9911 "nodeType": "Identifier",
9912 "overloadedDeclarations": [],
9913 "referencedDeclaration": -15,
9914 "src": "2403:3:1",
9915 "typeDescriptions": {
9916 "typeIdentifier": "t_magic_message",
9917 "typeString": "msg"
9918 }
9919 },
9920 "id": 286,
9921 "isConstant": false,
9922 "isLValue": false,
9923 "isPure": false,
9924 "lValueRequested": false,
9925 "memberName": "sender",
9926 "nodeType": "MemberAccess",
9927 "referencedDeclaration": null,
9928 "src": "2403:10:1",
9929 "typeDescriptions": {
9930 "typeIdentifier": "t_address_payable",
9931 "typeString": "address payable"
9932 }
9933 },
9934 {
9935 "argumentTypes": null,
9936 "id": 287,
9937 "name": "to",
9938 "nodeType": "Identifier",
9939 "overloadedDeclarations": [],
9940 "referencedDeclaration": 277,
9941 "src": "2415:2:1",
9942 "typeDescriptions": {
9943 "typeIdentifier": "t_address",
9944 "typeString": "address"
9945 }
9946 },
9947 {
9948 "argumentTypes": null,
9949 "id": 288,
9950 "name": "value",
9951 "nodeType": "Identifier",
9952 "overloadedDeclarations": [],
9953 "referencedDeclaration": 279,
9954 "src": "2419:5:1",
9955 "typeDescriptions": {
9956 "typeIdentifier": "t_uint256",
9957 "typeString": "uint256"
9958 }
9959 }
9960 ],
9961 "expression": {
9962 "argumentTypes": [
9963 {
9964 "typeIdentifier": "t_address_payable",
9965 "typeString": "address payable"
9966 },
9967 {
9968 "typeIdentifier": "t_address",
9969 "typeString": "address"
9970 },
9971 {
9972 "typeIdentifier": "t_uint256",
9973 "typeString": "uint256"
9974 }
9975 ],
9976 "id": 284,
9977 "name": "_transfer",
9978 "nodeType": "Identifier",
9979 "overloadedDeclarations": [],
9980 "referencedDeclaration": 256,
9981 "src": "2393:9:1",
9982 "typeDescriptions": {
9983 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9984 "typeString": "function (address,address,uint256)"
9985 }
9986 },
9987 "id": 289,
9988 "isConstant": false,
9989 "isLValue": false,
9990 "isPure": false,
9991 "kind": "functionCall",
9992 "lValueRequested": false,
9993 "names": [],
9994 "nodeType": "FunctionCall",
9995 "src": "2393:32:1",
9996 "tryCall": false,
9997 "typeDescriptions": {
9998 "typeIdentifier": "t_tuple$__$",
9999 "typeString": "tuple()"
10000 }
10001 },
10002 "id": 290,
10003 "nodeType": "ExpressionStatement",
10004 "src": "2393:32:1"
10005 },
10006 {
10007 "expression": {
10008 "argumentTypes": null,
10009 "hexValue": "74727565",
10010 "id": 291,
10011 "isConstant": false,
10012 "isLValue": false,
10013 "isPure": true,
10014 "kind": "bool",
10015 "lValueRequested": false,
10016 "nodeType": "Literal",
10017 "src": "2442:4:1",
10018 "subdenomination": null,
10019 "typeDescriptions": {
10020 "typeIdentifier": "t_bool",
10021 "typeString": "bool"
10022 },
10023 "value": "true"
10024 },
10025 "functionReturnParameters": 283,
10026 "id": 292,
10027 "nodeType": "Return",
10028 "src": "2435:11:1"
10029 }
10030 ]
10031 },
10032 "documentation": null,
10033 "functionSelector": "a9059cbb",
10034 "id": 294,
10035 "implemented": true,
10036 "kind": "function",
10037 "modifiers": [],
10038 "name": "transfer",
10039 "nodeType": "FunctionDefinition",
10040 "overrides": null,
10041 "parameters": {
10042 "id": 280,
10043 "nodeType": "ParameterList",
10044 "parameters": [
10045 {
10046 "constant": false,
10047 "id": 277,
10048 "mutability": "mutable",
10049 "name": "to",
10050 "nodeType": "VariableDeclaration",
10051 "overrides": null,
10052 "scope": 294,
10053 "src": "2335:10:1",
10054 "stateVariable": false,
10055 "storageLocation": "default",
10056 "typeDescriptions": {
10057 "typeIdentifier": "t_address",
10058 "typeString": "address"
10059 },
10060 "typeName": {
10061 "id": 276,
10062 "name": "address",
10063 "nodeType": "ElementaryTypeName",
10064 "src": "2335:7:1",
10065 "stateMutability": "nonpayable",
10066 "typeDescriptions": {
10067 "typeIdentifier": "t_address",
10068 "typeString": "address"
10069 }
10070 },
10071 "value": null,
10072 "visibility": "internal"
10073 },
10074 {
10075 "constant": false,
10076 "id": 279,
10077 "mutability": "mutable",
10078 "name": "value",
10079 "nodeType": "VariableDeclaration",
10080 "overrides": null,
10081 "scope": 294,
10082 "src": "2347:10:1",
10083 "stateVariable": false,
10084 "storageLocation": "default",
10085 "typeDescriptions": {
10086 "typeIdentifier": "t_uint256",
10087 "typeString": "uint256"
10088 },
10089 "typeName": {
10090 "id": 278,
10091 "name": "uint",
10092 "nodeType": "ElementaryTypeName",
10093 "src": "2347:4:1",
10094 "typeDescriptions": {
10095 "typeIdentifier": "t_uint256",
10096 "typeString": "uint256"
10097 }
10098 },
10099 "value": null,
10100 "visibility": "internal"
10101 }
10102 ],
10103 "src": "2334:24:1"
10104 },
10105 "returnParameters": {
10106 "id": 283,
10107 "nodeType": "ParameterList",
10108 "parameters": [
10109 {
10110 "constant": false,
10111 "id": 282,
10112 "mutability": "mutable",
10113 "name": "",
10114 "nodeType": "VariableDeclaration",
10115 "overrides": null,
10116 "scope": 294,
10117 "src": "2377:4:1",
10118 "stateVariable": false,
10119 "storageLocation": "default",
10120 "typeDescriptions": {
10121 "typeIdentifier": "t_bool",
10122 "typeString": "bool"
10123 },
10124 "typeName": {
10125 "id": 281,
10126 "name": "bool",
10127 "nodeType": "ElementaryTypeName",
10128 "src": "2377:4:1",
10129 "typeDescriptions": {
10130 "typeIdentifier": "t_bool",
10131 "typeString": "bool"
10132 }
10133 },
10134 "value": null,
10135 "visibility": "internal"
10136 }
10137 ],
10138 "src": "2376:6:1"
10139 },
10140 "scope": 425,
10141 "src": "2317:136:1",
10142 "stateMutability": "nonpayable",
10143 "virtual": false,
10144 "visibility": "external"
10145 },
10146 {
10147 "body": {
10148 "id": 344,
10149 "nodeType": "Block",
10150 "src": "2543:211:1",
10151 "statements": [
10152 {
10153 "condition": {
10154 "argumentTypes": null,
10155 "commonType": {
10156 "typeIdentifier": "t_uint256",
10157 "typeString": "uint256"
10158 },
10159 "id": 316,
10160 "isConstant": false,
10161 "isLValue": false,
10162 "isPure": false,
10163 "lValueRequested": false,
10164 "leftExpression": {
10165 "argumentTypes": null,
10166 "baseExpression": {
10167 "argumentTypes": null,
10168 "baseExpression": {
10169 "argumentTypes": null,
10170 "id": 305,
10171 "name": "allowance",
10172 "nodeType": "Identifier",
10173 "overloadedDeclarations": [],
10174 "referencedDeclaration": 63,
10175 "src": "2557:9:1",
10176 "typeDescriptions": {
10177 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10178 "typeString": "mapping(address => mapping(address => uint256))"
10179 }
10180 },
10181 "id": 307,
10182 "indexExpression": {
10183 "argumentTypes": null,
10184 "id": 306,
10185 "name": "from",
10186 "nodeType": "Identifier",
10187 "overloadedDeclarations": [],
10188 "referencedDeclaration": 296,
10189 "src": "2567:4:1",
10190 "typeDescriptions": {
10191 "typeIdentifier": "t_address",
10192 "typeString": "address"
10193 }
10194 },
10195 "isConstant": false,
10196 "isLValue": true,
10197 "isPure": false,
10198 "lValueRequested": false,
10199 "nodeType": "IndexAccess",
10200 "src": "2557:15:1",
10201 "typeDescriptions": {
10202 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10203 "typeString": "mapping(address => uint256)"
10204 }
10205 },
10206 "id": 310,
10207 "indexExpression": {
10208 "argumentTypes": null,
10209 "expression": {
10210 "argumentTypes": null,
10211 "id": 308,
10212 "name": "msg",
10213 "nodeType": "Identifier",
10214 "overloadedDeclarations": [],
10215 "referencedDeclaration": -15,
10216 "src": "2573:3:1",
10217 "typeDescriptions": {
10218 "typeIdentifier": "t_magic_message",
10219 "typeString": "msg"
10220 }
10221 },
10222 "id": 309,
10223 "isConstant": false,
10224 "isLValue": false,
10225 "isPure": false,
10226 "lValueRequested": false,
10227 "memberName": "sender",
10228 "nodeType": "MemberAccess",
10229 "referencedDeclaration": null,
10230 "src": "2573:10:1",
10231 "typeDescriptions": {
10232 "typeIdentifier": "t_address_payable",
10233 "typeString": "address payable"
10234 }
10235 },
10236 "isConstant": false,
10237 "isLValue": true,
10238 "isPure": false,
10239 "lValueRequested": false,
10240 "nodeType": "IndexAccess",
10241 "src": "2557:27:1",
10242 "typeDescriptions": {
10243 "typeIdentifier": "t_uint256",
10244 "typeString": "uint256"
10245 }
10246 },
10247 "nodeType": "BinaryOperation",
10248 "operator": "!=",
10249 "rightExpression": {
10250 "argumentTypes": null,
10251 "arguments": [
10252 {
10253 "argumentTypes": null,
10254 "id": 314,
10255 "isConstant": false,
10256 "isLValue": false,
10257 "isPure": true,
10258 "lValueRequested": false,
10259 "nodeType": "UnaryOperation",
10260 "operator": "-",
10261 "prefix": true,
10262 "src": "2593:2:1",
10263 "subExpression": {
10264 "argumentTypes": null,
10265 "hexValue": "31",
10266 "id": 313,
10267 "isConstant": false,
10268 "isLValue": false,
10269 "isPure": true,
10270 "kind": "number",
10271 "lValueRequested": false,
10272 "nodeType": "Literal",
10273 "src": "2594:1:1",
10274 "subdenomination": null,
10275 "typeDescriptions": {
10276 "typeIdentifier": "t_rational_1_by_1",
10277 "typeString": "int_const 1"
10278 },
10279 "value": "1"
10280 },
10281 "typeDescriptions": {
10282 "typeIdentifier": "t_rational_minus_1_by_1",
10283 "typeString": "int_const -1"
10284 }
10285 }
10286 ],
10287 "expression": {
10288 "argumentTypes": [
10289 {
10290 "typeIdentifier": "t_rational_minus_1_by_1",
10291 "typeString": "int_const -1"
10292 }
10293 ],
10294 "id": 312,
10295 "isConstant": false,
10296 "isLValue": false,
10297 "isPure": true,
10298 "lValueRequested": false,
10299 "nodeType": "ElementaryTypeNameExpression",
10300 "src": "2588:4:1",
10301 "typeDescriptions": {
10302 "typeIdentifier": "t_type$_t_uint256_$",
10303 "typeString": "type(uint256)"
10304 },
10305 "typeName": {
10306 "id": 311,
10307 "name": "uint",
10308 "nodeType": "ElementaryTypeName",
10309 "src": "2588:4:1",
10310 "typeDescriptions": {
10311 "typeIdentifier": null,
10312 "typeString": null
10313 }
10314 }
10315 },
10316 "id": 315,
10317 "isConstant": false,
10318 "isLValue": false,
10319 "isPure": true,
10320 "kind": "typeConversion",
10321 "lValueRequested": false,
10322 "names": [],
10323 "nodeType": "FunctionCall",
10324 "src": "2588:8:1",
10325 "tryCall": false,
10326 "typeDescriptions": {
10327 "typeIdentifier": "t_uint256",
10328 "typeString": "uint256"
10329 }
10330 },
10331 "src": "2557:39:1",
10332 "typeDescriptions": {
10333 "typeIdentifier": "t_bool",
10334 "typeString": "bool"
10335 }
10336 },
10337 "falseBody": null,
10338 "id": 335,
10339 "nodeType": "IfStatement",
10340 "src": "2553:138:1",
10341 "trueBody": {
10342 "id": 334,
10343 "nodeType": "Block",
10344 "src": "2598:93:1",
10345 "statements": [
10346 {
10347 "expression": {
10348 "argumentTypes": null,
10349 "id": 332,
10350 "isConstant": false,
10351 "isLValue": false,
10352 "isPure": false,
10353 "lValueRequested": false,
10354 "leftHandSide": {
10355 "argumentTypes": null,
10356 "baseExpression": {
10357 "argumentTypes": null,
10358 "baseExpression": {
10359 "argumentTypes": null,
10360 "id": 317,
10361 "name": "allowance",
10362 "nodeType": "Identifier",
10363 "overloadedDeclarations": [],
10364 "referencedDeclaration": 63,
10365 "src": "2612:9:1",
10366 "typeDescriptions": {
10367 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10368 "typeString": "mapping(address => mapping(address => uint256))"
10369 }
10370 },
10371 "id": 321,
10372 "indexExpression": {
10373 "argumentTypes": null,
10374 "id": 318,
10375 "name": "from",
10376 "nodeType": "Identifier",
10377 "overloadedDeclarations": [],
10378 "referencedDeclaration": 296,
10379 "src": "2622:4:1",
10380 "typeDescriptions": {
10381 "typeIdentifier": "t_address",
10382 "typeString": "address"
10383 }
10384 },
10385 "isConstant": false,
10386 "isLValue": true,
10387 "isPure": false,
10388 "lValueRequested": false,
10389 "nodeType": "IndexAccess",
10390 "src": "2612:15:1",
10391 "typeDescriptions": {
10392 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10393 "typeString": "mapping(address => uint256)"
10394 }
10395 },
10396 "id": 322,
10397 "indexExpression": {
10398 "argumentTypes": null,
10399 "expression": {
10400 "argumentTypes": null,
10401 "id": 319,
10402 "name": "msg",
10403 "nodeType": "Identifier",
10404 "overloadedDeclarations": [],
10405 "referencedDeclaration": -15,
10406 "src": "2628:3:1",
10407 "typeDescriptions": {
10408 "typeIdentifier": "t_magic_message",
10409 "typeString": "msg"
10410 }
10411 },
10412 "id": 320,
10413 "isConstant": false,
10414 "isLValue": false,
10415 "isPure": false,
10416 "lValueRequested": false,
10417 "memberName": "sender",
10418 "nodeType": "MemberAccess",
10419 "referencedDeclaration": null,
10420 "src": "2628:10:1",
10421 "typeDescriptions": {
10422 "typeIdentifier": "t_address_payable",
10423 "typeString": "address payable"
10424 }
10425 },
10426 "isConstant": false,
10427 "isLValue": true,
10428 "isPure": false,
10429 "lValueRequested": true,
10430 "nodeType": "IndexAccess",
10431 "src": "2612:27:1",
10432 "typeDescriptions": {
10433 "typeIdentifier": "t_uint256",
10434 "typeString": "uint256"
10435 }
10436 },
10437 "nodeType": "Assignment",
10438 "operator": "=",
10439 "rightHandSide": {
10440 "argumentTypes": null,
10441 "arguments": [
10442 {
10443 "argumentTypes": null,
10444 "id": 330,
10445 "name": "value",
10446 "nodeType": "Identifier",
10447 "overloadedDeclarations": [],
10448 "referencedDeclaration": 300,
10449 "src": "2674:5:1",
10450 "typeDescriptions": {
10451 "typeIdentifier": "t_uint256",
10452 "typeString": "uint256"
10453 }
10454 }
10455 ],
10456 "expression": {
10457 "argumentTypes": [
10458 {
10459 "typeIdentifier": "t_uint256",
10460 "typeString": "uint256"
10461 }
10462 ],
10463 "expression": {
10464 "argumentTypes": null,
10465 "baseExpression": {
10466 "argumentTypes": null,
10467 "baseExpression": {
10468 "argumentTypes": null,
10469 "id": 323,
10470 "name": "allowance",
10471 "nodeType": "Identifier",
10472 "overloadedDeclarations": [],
10473 "referencedDeclaration": 63,
10474 "src": "2642:9:1",
10475 "typeDescriptions": {
10476 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10477 "typeString": "mapping(address => mapping(address => uint256))"
10478 }
10479 },
10480 "id": 325,
10481 "indexExpression": {
10482 "argumentTypes": null,
10483 "id": 324,
10484 "name": "from",
10485 "nodeType": "Identifier",
10486 "overloadedDeclarations": [],
10487 "referencedDeclaration": 296,
10488 "src": "2652:4:1",
10489 "typeDescriptions": {
10490 "typeIdentifier": "t_address",
10491 "typeString": "address"
10492 }
10493 },
10494 "isConstant": false,
10495 "isLValue": true,
10496 "isPure": false,
10497 "lValueRequested": false,
10498 "nodeType": "IndexAccess",
10499 "src": "2642:15:1",
10500 "typeDescriptions": {
10501 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10502 "typeString": "mapping(address => uint256)"
10503 }
10504 },
10505 "id": 328,
10506 "indexExpression": {
10507 "argumentTypes": null,
10508 "expression": {
10509 "argumentTypes": null,
10510 "id": 326,
10511 "name": "msg",
10512 "nodeType": "Identifier",
10513 "overloadedDeclarations": [],
10514 "referencedDeclaration": -15,
10515 "src": "2658:3:1",
10516 "typeDescriptions": {
10517 "typeIdentifier": "t_magic_message",
10518 "typeString": "msg"
10519 }
10520 },
10521 "id": 327,
10522 "isConstant": false,
10523 "isLValue": false,
10524 "isPure": false,
10525 "lValueRequested": false,
10526 "memberName": "sender",
10527 "nodeType": "MemberAccess",
10528 "referencedDeclaration": null,
10529 "src": "2658:10:1",
10530 "typeDescriptions": {
10531 "typeIdentifier": "t_address_payable",
10532 "typeString": "address payable"
10533 }
10534 },
10535 "isConstant": false,
10536 "isLValue": true,
10537 "isPure": false,
10538 "lValueRequested": false,
10539 "nodeType": "IndexAccess",
10540 "src": "2642:27:1",
10541 "typeDescriptions": {
10542 "typeIdentifier": "t_uint256",
10543 "typeString": "uint256"
10544 }
10545 },
10546 "id": 329,
10547 "isConstant": false,
10548 "isLValue": false,
10549 "isPure": false,
10550 "lValueRequested": false,
10551 "memberName": "sub",
10552 "nodeType": "MemberAccess",
10553 "referencedDeclaration": 2354,
10554 "src": "2642:31:1",
10555 "typeDescriptions": {
10556 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
10557 "typeString": "function (uint256,uint256) pure returns (uint256)"
10558 }
10559 },
10560 "id": 331,
10561 "isConstant": false,
10562 "isLValue": false,
10563 "isPure": false,
10564 "kind": "functionCall",
10565 "lValueRequested": false,
10566 "names": [],
10567 "nodeType": "FunctionCall",
10568 "src": "2642:38:1",
10569 "tryCall": false,
10570 "typeDescriptions": {
10571 "typeIdentifier": "t_uint256",
10572 "typeString": "uint256"
10573 }
10574 },
10575 "src": "2612:68:1",
10576 "typeDescriptions": {
10577 "typeIdentifier": "t_uint256",
10578 "typeString": "uint256"
10579 }
10580 },
10581 "id": 333,
10582 "nodeType": "ExpressionStatement",
10583 "src": "2612:68:1"
10584 }
10585 ]
10586 }
10587 },
10588 {
10589 "expression": {
10590 "argumentTypes": null,
10591 "arguments": [
10592 {
10593 "argumentTypes": null,
10594 "id": 337,
10595 "name": "from",
10596 "nodeType": "Identifier",
10597 "overloadedDeclarations": [],
10598 "referencedDeclaration": 296,
10599 "src": "2710:4:1",
10600 "typeDescriptions": {
10601 "typeIdentifier": "t_address",
10602 "typeString": "address"
10603 }
10604 },
10605 {
10606 "argumentTypes": null,
10607 "id": 338,
10608 "name": "to",
10609 "nodeType": "Identifier",
10610 "overloadedDeclarations": [],
10611 "referencedDeclaration": 298,
10612 "src": "2716:2:1",
10613 "typeDescriptions": {
10614 "typeIdentifier": "t_address",
10615 "typeString": "address"
10616 }
10617 },
10618 {
10619 "argumentTypes": null,
10620 "id": 339,
10621 "name": "value",
10622 "nodeType": "Identifier",
10623 "overloadedDeclarations": [],
10624 "referencedDeclaration": 300,
10625 "src": "2720:5:1",
10626 "typeDescriptions": {
10627 "typeIdentifier": "t_uint256",
10628 "typeString": "uint256"
10629 }
10630 }
10631 ],
10632 "expression": {
10633 "argumentTypes": [
10634 {
10635 "typeIdentifier": "t_address",
10636 "typeString": "address"
10637 },
10638 {
10639 "typeIdentifier": "t_address",
10640 "typeString": "address"
10641 },
10642 {
10643 "typeIdentifier": "t_uint256",
10644 "typeString": "uint256"
10645 }
10646 ],
10647 "id": 336,
10648 "name": "_transfer",
10649 "nodeType": "Identifier",
10650 "overloadedDeclarations": [],
10651 "referencedDeclaration": 256,
10652 "src": "2700:9:1",
10653 "typeDescriptions": {
10654 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
10655 "typeString": "function (address,address,uint256)"
10656 }
10657 },
10658 "id": 340,
10659 "isConstant": false,
10660 "isLValue": false,
10661 "isPure": false,
10662 "kind": "functionCall",
10663 "lValueRequested": false,
10664 "names": [],
10665 "nodeType": "FunctionCall",
10666 "src": "2700:26:1",
10667 "tryCall": false,
10668 "typeDescriptions": {
10669 "typeIdentifier": "t_tuple$__$",
10670 "typeString": "tuple()"
10671 }
10672 },
10673 "id": 341,
10674 "nodeType": "ExpressionStatement",
10675 "src": "2700:26:1"
10676 },
10677 {
10678 "expression": {
10679 "argumentTypes": null,
10680 "hexValue": "74727565",
10681 "id": 342,
10682 "isConstant": false,
10683 "isLValue": false,
10684 "isPure": true,
10685 "kind": "bool",
10686 "lValueRequested": false,
10687 "nodeType": "Literal",
10688 "src": "2743:4:1",
10689 "subdenomination": null,
10690 "typeDescriptions": {
10691 "typeIdentifier": "t_bool",
10692 "typeString": "bool"
10693 },
10694 "value": "true"
10695 },
10696 "functionReturnParameters": 304,
10697 "id": 343,
10698 "nodeType": "Return",
10699 "src": "2736:11:1"
10700 }
10701 ]
10702 },
10703 "documentation": null,
10704 "functionSelector": "23b872dd",
10705 "id": 345,
10706 "implemented": true,
10707 "kind": "function",
10708 "modifiers": [],
10709 "name": "transferFrom",
10710 "nodeType": "FunctionDefinition",
10711 "overrides": null,
10712 "parameters": {
10713 "id": 301,
10714 "nodeType": "ParameterList",
10715 "parameters": [
10716 {
10717 "constant": false,
10718 "id": 296,
10719 "mutability": "mutable",
10720 "name": "from",
10721 "nodeType": "VariableDeclaration",
10722 "overrides": null,
10723 "scope": 345,
10724 "src": "2481:12:1",
10725 "stateVariable": false,
10726 "storageLocation": "default",
10727 "typeDescriptions": {
10728 "typeIdentifier": "t_address",
10729 "typeString": "address"
10730 },
10731 "typeName": {
10732 "id": 295,
10733 "name": "address",
10734 "nodeType": "ElementaryTypeName",
10735 "src": "2481:7:1",
10736 "stateMutability": "nonpayable",
10737 "typeDescriptions": {
10738 "typeIdentifier": "t_address",
10739 "typeString": "address"
10740 }
10741 },
10742 "value": null,
10743 "visibility": "internal"
10744 },
10745 {
10746 "constant": false,
10747 "id": 298,
10748 "mutability": "mutable",
10749 "name": "to",
10750 "nodeType": "VariableDeclaration",
10751 "overrides": null,
10752 "scope": 345,
10753 "src": "2495:10:1",
10754 "stateVariable": false,
10755 "storageLocation": "default",
10756 "typeDescriptions": {
10757 "typeIdentifier": "t_address",
10758 "typeString": "address"
10759 },
10760 "typeName": {
10761 "id": 297,
10762 "name": "address",
10763 "nodeType": "ElementaryTypeName",
10764 "src": "2495:7:1",
10765 "stateMutability": "nonpayable",
10766 "typeDescriptions": {
10767 "typeIdentifier": "t_address",
10768 "typeString": "address"
10769 }
10770 },
10771 "value": null,
10772 "visibility": "internal"
10773 },
10774 {
10775 "constant": false,
10776 "id": 300,
10777 "mutability": "mutable",
10778 "name": "value",
10779 "nodeType": "VariableDeclaration",
10780 "overrides": null,
10781 "scope": 345,
10782 "src": "2507:10:1",
10783 "stateVariable": false,
10784 "storageLocation": "default",
10785 "typeDescriptions": {
10786 "typeIdentifier": "t_uint256",
10787 "typeString": "uint256"
10788 },
10789 "typeName": {
10790 "id": 299,
10791 "name": "uint",
10792 "nodeType": "ElementaryTypeName",
10793 "src": "2507:4:1",
10794 "typeDescriptions": {
10795 "typeIdentifier": "t_uint256",
10796 "typeString": "uint256"
10797 }
10798 },
10799 "value": null,
10800 "visibility": "internal"
10801 }
10802 ],
10803 "src": "2480:38:1"
10804 },
10805 "returnParameters": {
10806 "id": 304,
10807 "nodeType": "ParameterList",
10808 "parameters": [
10809 {
10810 "constant": false,
10811 "id": 303,
10812 "mutability": "mutable",
10813 "name": "",
10814 "nodeType": "VariableDeclaration",
10815 "overrides": null,
10816 "scope": 345,
10817 "src": "2537:4:1",
10818 "stateVariable": false,
10819 "storageLocation": "default",
10820 "typeDescriptions": {
10821 "typeIdentifier": "t_bool",
10822 "typeString": "bool"
10823 },
10824 "typeName": {
10825 "id": 302,
10826 "name": "bool",
10827 "nodeType": "ElementaryTypeName",
10828 "src": "2537:4:1",
10829 "typeDescriptions": {
10830 "typeIdentifier": "t_bool",
10831 "typeString": "bool"
10832 }
10833 },
10834 "value": null,
10835 "visibility": "internal"
10836 }
10837 ],
10838 "src": "2536:6:1"
10839 },
10840 "scope": 425,
10841 "src": "2459:295:1",
10842 "stateMutability": "nonpayable",
10843 "virtual": false,
10844 "visibility": "external"
10845 },
10846 {
10847 "body": {
10848 "id": 423,
10849 "nodeType": "Block",
10850 "src": "2875:547:1",
10851 "statements": [
10852 {
10853 "expression": {
10854 "argumentTypes": null,
10855 "arguments": [
10856 {
10857 "argumentTypes": null,
10858 "commonType": {
10859 "typeIdentifier": "t_uint256",
10860 "typeString": "uint256"
10861 },
10862 "id": 366,
10863 "isConstant": false,
10864 "isLValue": false,
10865 "isPure": false,
10866 "lValueRequested": false,
10867 "leftExpression": {
10868 "argumentTypes": null,
10869 "id": 363,
10870 "name": "deadline",
10871 "nodeType": "Identifier",
10872 "overloadedDeclarations": [],
10873 "referencedDeclaration": 353,
10874 "src": "2893:8:1",
10875 "typeDescriptions": {
10876 "typeIdentifier": "t_uint256",
10877 "typeString": "uint256"
10878 }
10879 },
10880 "nodeType": "BinaryOperation",
10881 "operator": ">=",
10882 "rightExpression": {
10883 "argumentTypes": null,
10884 "expression": {
10885 "argumentTypes": null,
10886 "id": 364,
10887 "name": "block",
10888 "nodeType": "Identifier",
10889 "overloadedDeclarations": [],
10890 "referencedDeclaration": -4,
10891 "src": "2905:5:1",
10892 "typeDescriptions": {
10893 "typeIdentifier": "t_magic_block",
10894 "typeString": "block"
10895 }
10896 },
10897 "id": 365,
10898 "isConstant": false,
10899 "isLValue": false,
10900 "isPure": false,
10901 "lValueRequested": false,
10902 "memberName": "timestamp",
10903 "nodeType": "MemberAccess",
10904 "referencedDeclaration": null,
10905 "src": "2905:15:1",
10906 "typeDescriptions": {
10907 "typeIdentifier": "t_uint256",
10908 "typeString": "uint256"
10909 }
10910 },
10911 "src": "2893:27:1",
10912 "typeDescriptions": {
10913 "typeIdentifier": "t_bool",
10914 "typeString": "bool"
10915 }
10916 },
10917 {
10918 "argumentTypes": null,
10919 "hexValue": "556e697377617056323a2045585049524544",
10920 "id": 367,
10921 "isConstant": false,
10922 "isLValue": false,
10923 "isPure": true,
10924 "kind": "string",
10925 "lValueRequested": false,
10926 "nodeType": "Literal",
10927 "src": "2922:20:1",
10928 "subdenomination": null,
10929 "typeDescriptions": {
10930 "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87",
10931 "typeString": "literal_string \"UniswapV2: EXPIRED\""
10932 },
10933 "value": "UniswapV2: EXPIRED"
10934 }
10935 ],
10936 "expression": {
10937 "argumentTypes": [
10938 {
10939 "typeIdentifier": "t_bool",
10940 "typeString": "bool"
10941 },
10942 {
10943 "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87",
10944 "typeString": "literal_string \"UniswapV2: EXPIRED\""
10945 }
10946 ],
10947 "id": 362,
10948 "name": "require",
10949 "nodeType": "Identifier",
10950 "overloadedDeclarations": [
10951 -18,
10952 -18
10953 ],
10954 "referencedDeclaration": -18,
10955 "src": "2885:7:1",
10956 "typeDescriptions": {
10957 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
10958 "typeString": "function (bool,string memory) pure"
10959 }
10960 },
10961 "id": 368,
10962 "isConstant": false,
10963 "isLValue": false,
10964 "isPure": false,
10965 "kind": "functionCall",
10966 "lValueRequested": false,
10967 "names": [],
10968 "nodeType": "FunctionCall",
10969 "src": "2885:58:1",
10970 "tryCall": false,
10971 "typeDescriptions": {
10972 "typeIdentifier": "t_tuple$__$",
10973 "typeString": "tuple()"
10974 }
10975 },
10976 "id": 369,
10977 "nodeType": "ExpressionStatement",
10978 "src": "2885:58:1"
10979 },
10980 {
10981 "assignments": [
10982 371
10983 ],
10984 "declarations": [
10985 {
10986 "constant": false,
10987 "id": 371,
10988 "mutability": "mutable",
10989 "name": "digest",
10990 "nodeType": "VariableDeclaration",
10991 "overrides": null,
10992 "scope": 423,
10993 "src": "2953:14:1",
10994 "stateVariable": false,
10995 "storageLocation": "default",
10996 "typeDescriptions": {
10997 "typeIdentifier": "t_bytes32",
10998 "typeString": "bytes32"
10999 },
11000 "typeName": {
11001 "id": 370,
11002 "name": "bytes32",
11003 "nodeType": "ElementaryTypeName",
11004 "src": "2953:7:1",
11005 "typeDescriptions": {
11006 "typeIdentifier": "t_bytes32",
11007 "typeString": "bytes32"
11008 }
11009 },
11010 "value": null,
11011 "visibility": "internal"
11012 }
11013 ],
11014 "id": 393,
11015 "initialValue": {
11016 "argumentTypes": null,
11017 "arguments": [
11018 {
11019 "argumentTypes": null,
11020 "arguments": [
11021 {
11022 "argumentTypes": null,
11023 "hexValue": "1901",
11024 "id": 375,
11025 "isConstant": false,
11026 "isLValue": false,
11027 "isPure": true,
11028 "kind": "string",
11029 "lValueRequested": false,
11030 "nodeType": "Literal",
11031 "src": "3027:10:1",
11032 "subdenomination": null,
11033 "typeDescriptions": {
11034 "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
11035 "typeString": "literal_string \"\u0019\u0001\""
11036 },
11037 "value": "\u0019\u0001"
11038 },
11039 {
11040 "argumentTypes": null,
11041 "id": 376,
11042 "name": "DOMAIN_SEPARATOR",
11043 "nodeType": "Identifier",
11044 "overloadedDeclarations": [],
11045 "referencedDeclaration": 65,
11046 "src": "3055:16:1",
11047 "typeDescriptions": {
11048 "typeIdentifier": "t_bytes32",
11049 "typeString": "bytes32"
11050 }
11051 },
11052 {
11053 "argumentTypes": null,
11054 "arguments": [
11055 {
11056 "argumentTypes": null,
11057 "arguments": [
11058 {
11059 "argumentTypes": null,
11060 "id": 380,
11061 "name": "PERMIT_TYPEHASH",
11062 "nodeType": "Identifier",
11063 "overloadedDeclarations": [],
11064 "referencedDeclaration": 68,
11065 "src": "3110:15:1",
11066 "typeDescriptions": {
11067 "typeIdentifier": "t_bytes32",
11068 "typeString": "bytes32"
11069 }
11070 },
11071 {
11072 "argumentTypes": null,
11073 "id": 381,
11074 "name": "owner",
11075 "nodeType": "Identifier",
11076 "overloadedDeclarations": [],
11077 "referencedDeclaration": 347,
11078 "src": "3127:5:1",
11079 "typeDescriptions": {
11080 "typeIdentifier": "t_address",
11081 "typeString": "address"
11082 }
11083 },
11084 {
11085 "argumentTypes": null,
11086 "id": 382,
11087 "name": "spender",
11088 "nodeType": "Identifier",
11089 "overloadedDeclarations": [],
11090 "referencedDeclaration": 349,
11091 "src": "3134:7:1",
11092 "typeDescriptions": {
11093 "typeIdentifier": "t_address",
11094 "typeString": "address"
11095 }
11096 },
11097 {
11098 "argumentTypes": null,
11099 "id": 383,
11100 "name": "value",
11101 "nodeType": "Identifier",
11102 "overloadedDeclarations": [],
11103 "referencedDeclaration": 351,
11104 "src": "3143:5:1",
11105 "typeDescriptions": {
11106 "typeIdentifier": "t_uint256",
11107 "typeString": "uint256"
11108 }
11109 },
11110 {
11111 "argumentTypes": null,
11112 "id": 387,
11113 "isConstant": false,
11114 "isLValue": false,
11115 "isPure": false,
11116 "lValueRequested": false,
11117 "nodeType": "UnaryOperation",
11118 "operator": "++",
11119 "prefix": false,
11120 "src": "3150:15:1",
11121 "subExpression": {
11122 "argumentTypes": null,
11123 "baseExpression": {
11124 "argumentTypes": null,
11125 "id": 384,
11126 "name": "nonces",
11127 "nodeType": "Identifier",
11128 "overloadedDeclarations": [],
11129 "referencedDeclaration": 72,
11130 "src": "3150:6:1",
11131 "typeDescriptions": {
11132 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
11133 "typeString": "mapping(address => uint256)"
11134 }
11135 },
11136 "id": 386,
11137 "indexExpression": {
11138 "argumentTypes": null,
11139 "id": 385,
11140 "name": "owner",
11141 "nodeType": "Identifier",
11142 "overloadedDeclarations": [],
11143 "referencedDeclaration": 347,
11144 "src": "3157:5:1",
11145 "typeDescriptions": {
11146 "typeIdentifier": "t_address",
11147 "typeString": "address"
11148 }
11149 },
11150 "isConstant": false,
11151 "isLValue": true,
11152 "isPure": false,
11153 "lValueRequested": true,
11154 "nodeType": "IndexAccess",
11155 "src": "3150:13:1",
11156 "typeDescriptions": {
11157 "typeIdentifier": "t_uint256",
11158 "typeString": "uint256"
11159 }
11160 },
11161 "typeDescriptions": {
11162 "typeIdentifier": "t_uint256",
11163 "typeString": "uint256"
11164 }
11165 },
11166 {
11167 "argumentTypes": null,
11168 "id": 388,
11169 "name": "deadline",
11170 "nodeType": "Identifier",
11171 "overloadedDeclarations": [],
11172 "referencedDeclaration": 353,
11173 "src": "3167:8:1",
11174 "typeDescriptions": {
11175 "typeIdentifier": "t_uint256",
11176 "typeString": "uint256"
11177 }
11178 }
11179 ],
11180 "expression": {
11181 "argumentTypes": [
11182 {
11183 "typeIdentifier": "t_bytes32",
11184 "typeString": "bytes32"
11185 },
11186 {
11187 "typeIdentifier": "t_address",
11188 "typeString": "address"
11189 },
11190 {
11191 "typeIdentifier": "t_address",
11192 "typeString": "address"
11193 },
11194 {
11195 "typeIdentifier": "t_uint256",
11196 "typeString": "uint256"
11197 },
11198 {
11199 "typeIdentifier": "t_uint256",
11200 "typeString": "uint256"
11201 },
11202 {
11203 "typeIdentifier": "t_uint256",
11204 "typeString": "uint256"
11205 }
11206 ],
11207 "expression": {
11208 "argumentTypes": null,
11209 "id": 378,
11210 "name": "abi",
11211 "nodeType": "Identifier",
11212 "overloadedDeclarations": [],
11213 "referencedDeclaration": -1,
11214 "src": "3099:3:1",
11215 "typeDescriptions": {
11216 "typeIdentifier": "t_magic_abi",
11217 "typeString": "abi"
11218 }
11219 },
11220 "id": 379,
11221 "isConstant": false,
11222 "isLValue": false,
11223 "isPure": true,
11224 "lValueRequested": false,
11225 "memberName": "encode",
11226 "nodeType": "MemberAccess",
11227 "referencedDeclaration": null,
11228 "src": "3099:10:1",
11229 "typeDescriptions": {
11230 "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
11231 "typeString": "function () pure returns (bytes memory)"
11232 }
11233 },
11234 "id": 389,
11235 "isConstant": false,
11236 "isLValue": false,
11237 "isPure": false,
11238 "kind": "functionCall",
11239 "lValueRequested": false,
11240 "names": [],
11241 "nodeType": "FunctionCall",
11242 "src": "3099:77:1",
11243 "tryCall": false,
11244 "typeDescriptions": {
11245 "typeIdentifier": "t_bytes_memory_ptr",
11246 "typeString": "bytes memory"
11247 }
11248 }
11249 ],
11250 "expression": {
11251 "argumentTypes": [
11252 {
11253 "typeIdentifier": "t_bytes_memory_ptr",
11254 "typeString": "bytes memory"
11255 }
11256 ],
11257 "id": 377,
11258 "name": "keccak256",
11259 "nodeType": "Identifier",
11260 "overloadedDeclarations": [],
11261 "referencedDeclaration": -8,
11262 "src": "3089:9:1",
11263 "typeDescriptions": {
11264 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
11265 "typeString": "function (bytes memory) pure returns (bytes32)"
11266 }
11267 },
11268 "id": 390,
11269 "isConstant": false,
11270 "isLValue": false,
11271 "isPure": false,
11272 "kind": "functionCall",
11273 "lValueRequested": false,
11274 "names": [],
11275 "nodeType": "FunctionCall",
11276 "src": "3089:88:1",
11277 "tryCall": false,
11278 "typeDescriptions": {
11279 "typeIdentifier": "t_bytes32",
11280 "typeString": "bytes32"
11281 }
11282 }
11283 ],
11284 "expression": {
11285 "argumentTypes": [
11286 {
11287 "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
11288 "typeString": "literal_string \"\u0019\u0001\""
11289 },
11290 {
11291 "typeIdentifier": "t_bytes32",
11292 "typeString": "bytes32"
11293 },
11294 {
11295 "typeIdentifier": "t_bytes32",
11296 "typeString": "bytes32"
11297 }
11298 ],
11299 "expression": {
11300 "argumentTypes": null,
11301 "id": 373,
11302 "name": "abi",
11303 "nodeType": "Identifier",
11304 "overloadedDeclarations": [],
11305 "referencedDeclaration": -1,
11306 "src": "2993:3:1",
11307 "typeDescriptions": {
11308 "typeIdentifier": "t_magic_abi",
11309 "typeString": "abi"
11310 }
11311 },
11312 "id": 374,
11313 "isConstant": false,
11314 "isLValue": false,
11315 "isPure": true,
11316 "lValueRequested": false,
11317 "memberName": "encodePacked",
11318 "nodeType": "MemberAccess",
11319 "referencedDeclaration": null,
11320 "src": "2993:16:1",
11321 "typeDescriptions": {
11322 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
11323 "typeString": "function () pure returns (bytes memory)"
11324 }
11325 },
11326 "id": 391,
11327 "isConstant": false,
11328 "isLValue": false,
11329 "isPure": false,
11330 "kind": "functionCall",
11331 "lValueRequested": false,
11332 "names": [],
11333 "nodeType": "FunctionCall",
11334 "src": "2993:198:1",
11335 "tryCall": false,
11336 "typeDescriptions": {
11337 "typeIdentifier": "t_bytes_memory_ptr",
11338 "typeString": "bytes memory"
11339 }
11340 }
11341 ],
11342 "expression": {
11343 "argumentTypes": [
11344 {
11345 "typeIdentifier": "t_bytes_memory_ptr",
11346 "typeString": "bytes memory"
11347 }
11348 ],
11349 "id": 372,
11350 "name": "keccak256",
11351 "nodeType": "Identifier",
11352 "overloadedDeclarations": [],
11353 "referencedDeclaration": -8,
11354 "src": "2970:9:1",
11355 "typeDescriptions": {
11356 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
11357 "typeString": "function (bytes memory) pure returns (bytes32)"
11358 }
11359 },
11360 "id": 392,
11361 "isConstant": false,
11362 "isLValue": false,
11363 "isPure": false,
11364 "kind": "functionCall",
11365 "lValueRequested": false,
11366 "names": [],
11367 "nodeType": "FunctionCall",
11368 "src": "2970:231:1",
11369 "tryCall": false,
11370 "typeDescriptions": {
11371 "typeIdentifier": "t_bytes32",
11372 "typeString": "bytes32"
11373 }
11374 },
11375 "nodeType": "VariableDeclarationStatement",
11376 "src": "2953:248:1"
11377 },
11378 {
11379 "assignments": [
11380 395
11381 ],
11382 "declarations": [
11383 {
11384 "constant": false,
11385 "id": 395,
11386 "mutability": "mutable",
11387 "name": "recoveredAddress",
11388 "nodeType": "VariableDeclaration",
11389 "overrides": null,
11390 "scope": 423,
11391 "src": "3211:24:1",
11392 "stateVariable": false,
11393 "storageLocation": "default",
11394 "typeDescriptions": {
11395 "typeIdentifier": "t_address",
11396 "typeString": "address"
11397 },
11398 "typeName": {
11399 "id": 394,
11400 "name": "address",
11401 "nodeType": "ElementaryTypeName",
11402 "src": "3211:7:1",
11403 "stateMutability": "nonpayable",
11404 "typeDescriptions": {
11405 "typeIdentifier": "t_address",
11406 "typeString": "address"
11407 }
11408 },
11409 "value": null,
11410 "visibility": "internal"
11411 }
11412 ],
11413 "id": 402,
11414 "initialValue": {
11415 "argumentTypes": null,
11416 "arguments": [
11417 {
11418 "argumentTypes": null,
11419 "id": 397,
11420 "name": "digest",
11421 "nodeType": "Identifier",
11422 "overloadedDeclarations": [],
11423 "referencedDeclaration": 371,
11424 "src": "3248:6:1",
11425 "typeDescriptions": {
11426 "typeIdentifier": "t_bytes32",
11427 "typeString": "bytes32"
11428 }
11429 },
11430 {
11431 "argumentTypes": null,
11432 "id": 398,
11433 "name": "v",
11434 "nodeType": "Identifier",
11435 "overloadedDeclarations": [],
11436 "referencedDeclaration": 355,
11437 "src": "3256:1:1",
11438 "typeDescriptions": {
11439 "typeIdentifier": "t_uint8",
11440 "typeString": "uint8"
11441 }
11442 },
11443 {
11444 "argumentTypes": null,
11445 "id": 399,
11446 "name": "r",
11447 "nodeType": "Identifier",
11448 "overloadedDeclarations": [],
11449 "referencedDeclaration": 357,
11450 "src": "3259:1:1",
11451 "typeDescriptions": {
11452 "typeIdentifier": "t_bytes32",
11453 "typeString": "bytes32"
11454 }
11455 },
11456 {
11457 "argumentTypes": null,
11458 "id": 400,
11459 "name": "s",
11460 "nodeType": "Identifier",
11461 "overloadedDeclarations": [],
11462 "referencedDeclaration": 359,
11463 "src": "3262:1:1",
11464 "typeDescriptions": {
11465 "typeIdentifier": "t_bytes32",
11466 "typeString": "bytes32"
11467 }
11468 }
11469 ],
11470 "expression": {
11471 "argumentTypes": [
11472 {
11473 "typeIdentifier": "t_bytes32",
11474 "typeString": "bytes32"
11475 },
11476 {
11477 "typeIdentifier": "t_uint8",
11478 "typeString": "uint8"
11479 },
11480 {
11481 "typeIdentifier": "t_bytes32",
11482 "typeString": "bytes32"
11483 },
11484 {
11485 "typeIdentifier": "t_bytes32",
11486 "typeString": "bytes32"
11487 }
11488 ],
11489 "id": 396,
11490 "name": "ecrecover",
11491 "nodeType": "Identifier",
11492 "overloadedDeclarations": [],
11493 "referencedDeclaration": -6,
11494 "src": "3238:9:1",
11495 "typeDescriptions": {
11496 "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
11497 "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
11498 }
11499 },
11500 "id": 401,
11501 "isConstant": false,
11502 "isLValue": false,
11503 "isPure": false,
11504 "kind": "functionCall",
11505 "lValueRequested": false,
11506 "names": [],
11507 "nodeType": "FunctionCall",
11508 "src": "3238:26:1",
11509 "tryCall": false,
11510 "typeDescriptions": {
11511 "typeIdentifier": "t_address",
11512 "typeString": "address"
11513 }
11514 },
11515 "nodeType": "VariableDeclarationStatement",
11516 "src": "3211:53:1"
11517 },
11518 {
11519 "expression": {
11520 "argumentTypes": null,
11521 "arguments": [
11522 {
11523 "argumentTypes": null,
11524 "commonType": {
11525 "typeIdentifier": "t_bool",
11526 "typeString": "bool"
11527 },
11528 "id": 413,
11529 "isConstant": false,
11530 "isLValue": false,
11531 "isPure": false,
11532 "lValueRequested": false,
11533 "leftExpression": {
11534 "argumentTypes": null,
11535 "commonType": {
11536 "typeIdentifier": "t_address",
11537 "typeString": "address"
11538 },
11539 "id": 409,
11540 "isConstant": false,
11541 "isLValue": false,
11542 "isPure": false,
11543 "lValueRequested": false,
11544 "leftExpression": {
11545 "argumentTypes": null,
11546 "id": 404,
11547 "name": "recoveredAddress",
11548 "nodeType": "Identifier",
11549 "overloadedDeclarations": [],
11550 "referencedDeclaration": 395,
11551 "src": "3282:16:1",
11552 "typeDescriptions": {
11553 "typeIdentifier": "t_address",
11554 "typeString": "address"
11555 }
11556 },
11557 "nodeType": "BinaryOperation",
11558 "operator": "!=",
11559 "rightExpression": {
11560 "argumentTypes": null,
11561 "arguments": [
11562 {
11563 "argumentTypes": null,
11564 "hexValue": "30",
11565 "id": 407,
11566 "isConstant": false,
11567 "isLValue": false,
11568 "isPure": true,
11569 "kind": "number",
11570 "lValueRequested": false,
11571 "nodeType": "Literal",
11572 "src": "3310:1:1",
11573 "subdenomination": null,
11574 "typeDescriptions": {
11575 "typeIdentifier": "t_rational_0_by_1",
11576 "typeString": "int_const 0"
11577 },
11578 "value": "0"
11579 }
11580 ],
11581 "expression": {
11582 "argumentTypes": [
11583 {
11584 "typeIdentifier": "t_rational_0_by_1",
11585 "typeString": "int_const 0"
11586 }
11587 ],
11588 "id": 406,
11589 "isConstant": false,
11590 "isLValue": false,
11591 "isPure": true,
11592 "lValueRequested": false,
11593 "nodeType": "ElementaryTypeNameExpression",
11594 "src": "3302:7:1",
11595 "typeDescriptions": {
11596 "typeIdentifier": "t_type$_t_address_$",
11597 "typeString": "type(address)"
11598 },
11599 "typeName": {
11600 "id": 405,
11601 "name": "address",
11602 "nodeType": "ElementaryTypeName",
11603 "src": "3302:7:1",
11604 "typeDescriptions": {
11605 "typeIdentifier": null,
11606 "typeString": null
11607 }
11608 }
11609 },
11610 "id": 408,
11611 "isConstant": false,
11612 "isLValue": false,
11613 "isPure": true,
11614 "kind": "typeConversion",
11615 "lValueRequested": false,
11616 "names": [],
11617 "nodeType": "FunctionCall",
11618 "src": "3302:10:1",
11619 "tryCall": false,
11620 "typeDescriptions": {
11621 "typeIdentifier": "t_address_payable",
11622 "typeString": "address payable"
11623 }
11624 },
11625 "src": "3282:30:1",
11626 "typeDescriptions": {
11627 "typeIdentifier": "t_bool",
11628 "typeString": "bool"
11629 }
11630 },
11631 "nodeType": "BinaryOperation",
11632 "operator": "&&",
11633 "rightExpression": {
11634 "argumentTypes": null,
11635 "commonType": {
11636 "typeIdentifier": "t_address",
11637 "typeString": "address"
11638 },
11639 "id": 412,
11640 "isConstant": false,
11641 "isLValue": false,
11642 "isPure": false,
11643 "lValueRequested": false,
11644 "leftExpression": {
11645 "argumentTypes": null,
11646 "id": 410,
11647 "name": "recoveredAddress",
11648 "nodeType": "Identifier",
11649 "overloadedDeclarations": [],
11650 "referencedDeclaration": 395,
11651 "src": "3316:16:1",
11652 "typeDescriptions": {
11653 "typeIdentifier": "t_address",
11654 "typeString": "address"
11655 }
11656 },
11657 "nodeType": "BinaryOperation",
11658 "operator": "==",
11659 "rightExpression": {
11660 "argumentTypes": null,
11661 "id": 411,
11662 "name": "owner",
11663 "nodeType": "Identifier",
11664 "overloadedDeclarations": [],
11665 "referencedDeclaration": 347,
11666 "src": "3336:5:1",
11667 "typeDescriptions": {
11668 "typeIdentifier": "t_address",
11669 "typeString": "address"
11670 }
11671 },
11672 "src": "3316:25:1",
11673 "typeDescriptions": {
11674 "typeIdentifier": "t_bool",
11675 "typeString": "bool"
11676 }
11677 },
11678 "src": "3282:59:1",
11679 "typeDescriptions": {
11680 "typeIdentifier": "t_bool",
11681 "typeString": "bool"
11682 }
11683 },
11684 {
11685 "argumentTypes": null,
11686 "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245",
11687 "id": 414,
11688 "isConstant": false,
11689 "isLValue": false,
11690 "isPure": true,
11691 "kind": "string",
11692 "lValueRequested": false,
11693 "nodeType": "Literal",
11694 "src": "3343:30:1",
11695 "subdenomination": null,
11696 "typeDescriptions": {
11697 "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56",
11698 "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\""
11699 },
11700 "value": "UniswapV2: INVALID_SIGNATURE"
11701 }
11702 ],
11703 "expression": {
11704 "argumentTypes": [
11705 {
11706 "typeIdentifier": "t_bool",
11707 "typeString": "bool"
11708 },
11709 {
11710 "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56",
11711 "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\""
11712 }
11713 ],
11714 "id": 403,
11715 "name": "require",
11716 "nodeType": "Identifier",
11717 "overloadedDeclarations": [
11718 -18,
11719 -18
11720 ],
11721 "referencedDeclaration": -18,
11722 "src": "3274:7:1",
11723 "typeDescriptions": {
11724 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
11725 "typeString": "function (bool,string memory) pure"
11726 }
11727 },
11728 "id": 415,
11729 "isConstant": false,
11730 "isLValue": false,
11731 "isPure": false,
11732 "kind": "functionCall",
11733 "lValueRequested": false,
11734 "names": [],
11735 "nodeType": "FunctionCall",
11736 "src": "3274:100:1",
11737 "tryCall": false,
11738 "typeDescriptions": {
11739 "typeIdentifier": "t_tuple$__$",
11740 "typeString": "tuple()"
11741 }
11742 },
11743 "id": 416,
11744 "nodeType": "ExpressionStatement",
11745 "src": "3274:100:1"
11746 },
11747 {
11748 "expression": {
11749 "argumentTypes": null,
11750 "arguments": [
11751 {
11752 "argumentTypes": null,
11753 "id": 418,
11754 "name": "owner",
11755 "nodeType": "Identifier",
11756 "overloadedDeclarations": [],
11757 "referencedDeclaration": 347,
11758 "src": "3393:5:1",
11759 "typeDescriptions": {
11760 "typeIdentifier": "t_address",
11761 "typeString": "address"
11762 }
11763 },
11764 {
11765 "argumentTypes": null,
11766 "id": 419,
11767 "name": "spender",
11768 "nodeType": "Identifier",
11769 "overloadedDeclarations": [],
11770 "referencedDeclaration": 349,
11771 "src": "3400:7:1",
11772 "typeDescriptions": {
11773 "typeIdentifier": "t_address",
11774 "typeString": "address"
11775 }
11776 },
11777 {
11778 "argumentTypes": null,
11779 "id": 420,
11780 "name": "value",
11781 "nodeType": "Identifier",
11782 "overloadedDeclarations": [],
11783 "referencedDeclaration": 351,
11784 "src": "3409:5:1",
11785 "typeDescriptions": {
11786 "typeIdentifier": "t_uint256",
11787 "typeString": "uint256"
11788 }
11789 }
11790 ],
11791 "expression": {
11792 "argumentTypes": [
11793 {
11794 "typeIdentifier": "t_address",
11795 "typeString": "address"
11796 },
11797 {
11798 "typeIdentifier": "t_address",
11799 "typeString": "address"
11800 },
11801 {
11802 "typeIdentifier": "t_uint256",
11803 "typeString": "uint256"
11804 }
11805 ],
11806 "id": 417,
11807 "name": "_approve",
11808 "nodeType": "Identifier",
11809 "overloadedDeclarations": [],
11810 "referencedDeclaration": 218,
11811 "src": "3384:8:1",
11812 "typeDescriptions": {
11813 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
11814 "typeString": "function (address,address,uint256)"
11815 }
11816 },
11817 "id": 421,
11818 "isConstant": false,
11819 "isLValue": false,
11820 "isPure": false,
11821 "kind": "functionCall",
11822 "lValueRequested": false,
11823 "names": [],
11824 "nodeType": "FunctionCall",
11825 "src": "3384:31:1",
11826 "tryCall": false,
11827 "typeDescriptions": {
11828 "typeIdentifier": "t_tuple$__$",
11829 "typeString": "tuple()"
11830 }
11831 },
11832 "id": 422,
11833 "nodeType": "ExpressionStatement",
11834 "src": "3384:31:1"
11835 }
11836 ]
11837 },
11838 "documentation": null,
11839 "functionSelector": "d505accf",
11840 "id": 424,
11841 "implemented": true,
11842 "kind": "function",
11843 "modifiers": [],
11844 "name": "permit",
11845 "nodeType": "FunctionDefinition",
11846 "overrides": null,
11847 "parameters": {
11848 "id": 360,
11849 "nodeType": "ParameterList",
11850 "parameters": [
11851 {
11852 "constant": false,
11853 "id": 347,
11854 "mutability": "mutable",
11855 "name": "owner",
11856 "nodeType": "VariableDeclaration",
11857 "overrides": null,
11858 "scope": 424,
11859 "src": "2776:13:1",
11860 "stateVariable": false,
11861 "storageLocation": "default",
11862 "typeDescriptions": {
11863 "typeIdentifier": "t_address",
11864 "typeString": "address"
11865 },
11866 "typeName": {
11867 "id": 346,
11868 "name": "address",
11869 "nodeType": "ElementaryTypeName",
11870 "src": "2776:7:1",
11871 "stateMutability": "nonpayable",
11872 "typeDescriptions": {
11873 "typeIdentifier": "t_address",
11874 "typeString": "address"
11875 }
11876 },
11877 "value": null,
11878 "visibility": "internal"
11879 },
11880 {
11881 "constant": false,
11882 "id": 349,
11883 "mutability": "mutable",
11884 "name": "spender",
11885 "nodeType": "VariableDeclaration",
11886 "overrides": null,
11887 "scope": 424,
11888 "src": "2791:15:1",
11889 "stateVariable": false,
11890 "storageLocation": "default",
11891 "typeDescriptions": {
11892 "typeIdentifier": "t_address",
11893 "typeString": "address"
11894 },
11895 "typeName": {
11896 "id": 348,
11897 "name": "address",
11898 "nodeType": "ElementaryTypeName",
11899 "src": "2791:7:1",
11900 "stateMutability": "nonpayable",
11901 "typeDescriptions": {
11902 "typeIdentifier": "t_address",
11903 "typeString": "address"
11904 }
11905 },
11906 "value": null,
11907 "visibility": "internal"
11908 },
11909 {
11910 "constant": false,
11911 "id": 351,
11912 "mutability": "mutable",
11913 "name": "value",
11914 "nodeType": "VariableDeclaration",
11915 "overrides": null,
11916 "scope": 424,
11917 "src": "2808:10:1",
11918 "stateVariable": false,
11919 "storageLocation": "default",
11920 "typeDescriptions": {
11921 "typeIdentifier": "t_uint256",
11922 "typeString": "uint256"
11923 },
11924 "typeName": {
11925 "id": 350,
11926 "name": "uint",
11927 "nodeType": "ElementaryTypeName",
11928 "src": "2808:4:1",
11929 "typeDescriptions": {
11930 "typeIdentifier": "t_uint256",
11931 "typeString": "uint256"
11932 }
11933 },
11934 "value": null,
11935 "visibility": "internal"
11936 },
11937 {
11938 "constant": false,
11939 "id": 353,
11940 "mutability": "mutable",
11941 "name": "deadline",
11942 "nodeType": "VariableDeclaration",
11943 "overrides": null,
11944 "scope": 424,
11945 "src": "2820:13:1",
11946 "stateVariable": false,
11947 "storageLocation": "default",
11948 "typeDescriptions": {
11949 "typeIdentifier": "t_uint256",
11950 "typeString": "uint256"
11951 },
11952 "typeName": {
11953 "id": 352,
11954 "name": "uint",
11955 "nodeType": "ElementaryTypeName",
11956 "src": "2820:4:1",
11957 "typeDescriptions": {
11958 "typeIdentifier": "t_uint256",
11959 "typeString": "uint256"
11960 }
11961 },
11962 "value": null,
11963 "visibility": "internal"
11964 },
11965 {
11966 "constant": false,
11967 "id": 355,
11968 "mutability": "mutable",
11969 "name": "v",
11970 "nodeType": "VariableDeclaration",
11971 "overrides": null,
11972 "scope": 424,
11973 "src": "2835:7:1",
11974 "stateVariable": false,
11975 "storageLocation": "default",
11976 "typeDescriptions": {
11977 "typeIdentifier": "t_uint8",
11978 "typeString": "uint8"
11979 },
11980 "typeName": {
11981 "id": 354,
11982 "name": "uint8",
11983 "nodeType": "ElementaryTypeName",
11984 "src": "2835:5:1",
11985 "typeDescriptions": {
11986 "typeIdentifier": "t_uint8",
11987 "typeString": "uint8"
11988 }
11989 },
11990 "value": null,
11991 "visibility": "internal"
11992 },
11993 {
11994 "constant": false,
11995 "id": 357,
11996 "mutability": "mutable",
11997 "name": "r",
11998 "nodeType": "VariableDeclaration",
11999 "overrides": null,
12000 "scope": 424,
12001 "src": "2844:9:1",
12002 "stateVariable": false,
12003 "storageLocation": "default",
12004 "typeDescriptions": {
12005 "typeIdentifier": "t_bytes32",
12006 "typeString": "bytes32"
12007 },
12008 "typeName": {
12009 "id": 356,
12010 "name": "bytes32",
12011 "nodeType": "ElementaryTypeName",
12012 "src": "2844:7:1",
12013 "typeDescriptions": {
12014 "typeIdentifier": "t_bytes32",
12015 "typeString": "bytes32"
12016 }
12017 },
12018 "value": null,
12019 "visibility": "internal"
12020 },
12021 {
12022 "constant": false,
12023 "id": 359,
12024 "mutability": "mutable",
12025 "name": "s",
12026 "nodeType": "VariableDeclaration",
12027 "overrides": null,
12028 "scope": 424,
12029 "src": "2855:9:1",
12030 "stateVariable": false,
12031 "storageLocation": "default",
12032 "typeDescriptions": {
12033 "typeIdentifier": "t_bytes32",
12034 "typeString": "bytes32"
12035 },
12036 "typeName": {
12037 "id": 358,
12038 "name": "bytes32",
12039 "nodeType": "ElementaryTypeName",
12040 "src": "2855:7:1",
12041 "typeDescriptions": {
12042 "typeIdentifier": "t_bytes32",
12043 "typeString": "bytes32"
12044 }
12045 },
12046 "value": null,
12047 "visibility": "internal"
12048 }
12049 ],
12050 "src": "2775:90:1"
12051 },
12052 "returnParameters": {
12053 "id": 361,
12054 "nodeType": "ParameterList",
12055 "parameters": [],
12056 "src": "2875:0:1"
12057 },
12058 "scope": 425,
12059 "src": "2760:662:1",
12060 "stateMutability": "nonpayable",
12061 "virtual": false,
12062 "visibility": "external"
12063 }
12064 ],
12065 "scope": 426,
12066 "src": "99:3325:1"
12067 }
12068 ],
12069 "src": "37:3388:1"
12070 }
12071 },
12072 "contracts/UniswapV2Factory.sol": {
12073 "id": 2,
12074 "AST": {
12075 "absolutePath": "contracts/UniswapV2Factory.sol",
12076 "exportedSymbols": {
12077 "UniswapV2Factory": [
12078 643
12079 ]
12080 },
12081 "id": 644,
12082 "license": "GPL-3.0",
12083 "nodeType": "SourceUnit",
12084 "nodes": [
12085 {
12086 "id": 427,
12087 "literals": [
12088 "solidity",
12089 "=",
12090 "0.6",
12091 ".12"
12092 ],
12093 "nodeType": "PragmaDirective",
12094 "src": "37:24:2"
12095 },
12096 {
12097 "absolutePath": "contracts/interfaces/IUniswapV2Factory.sol",
12098 "file": "./interfaces/IUniswapV2Factory.sol",
12099 "id": 428,
12100 "nodeType": "ImportDirective",
12101 "scope": 644,
12102 "sourceUnit": 1991,
12103 "src": "63:44:2",
12104 "symbolAliases": [],
12105 "unitAlias": ""
12106 },
12107 {
12108 "absolutePath": "contracts/UniswapV2Pair.sol",
12109 "file": "./UniswapV2Pair.sol",
12110 "id": 429,
12111 "nodeType": "ImportDirective",
12112 "scope": 644,
12113 "sourceUnit": 1712,
12114 "src": "108:29:2",
12115 "symbolAliases": [],
12116 "unitAlias": ""
12117 },
12118 {
12119 "abstract": false,
12120 "baseContracts": [
12121 {
12122 "arguments": null,
12123 "baseName": {
12124 "contractScope": null,
12125 "id": 430,
12126 "name": "IUniswapV2Factory",
12127 "nodeType": "UserDefinedTypeName",
12128 "referencedDeclaration": 1990,
12129 "src": "168:17:2",
12130 "typeDescriptions": {
12131 "typeIdentifier": "t_contract$_IUniswapV2Factory_$1990",
12132 "typeString": "contract IUniswapV2Factory"
12133 }
12134 },
12135 "id": 431,
12136 "nodeType": "InheritanceSpecifier",
12137 "src": "168:17:2"
12138 }
12139 ],
12140 "contractDependencies": [
12141 1711,
12142 1990
12143 ],
12144 "contractKind": "contract",
12145 "documentation": null,
12146 "fullyImplemented": true,
12147 "id": 643,
12148 "linearizedBaseContracts": [
12149 643,
12150 1990
12151 ],
12152 "name": "UniswapV2Factory",
12153 "nodeType": "ContractDefinition",
12154 "nodes": [
12155 {
12156 "baseFunctions": [
12157 1944
12158 ],
12159 "constant": false,
12160 "functionSelector": "017e7e58",
12161 "id": 434,
12162 "mutability": "mutable",
12163 "name": "feeTo",
12164 "nodeType": "VariableDeclaration",
12165 "overrides": {
12166 "id": 433,
12167 "nodeType": "OverrideSpecifier",
12168 "overrides": [],
12169 "src": "207:8:2"
12170 },
12171 "scope": 643,
12172 "src": "192:29:2",
12173 "stateVariable": true,
12174 "storageLocation": "default",
12175 "typeDescriptions": {
12176 "typeIdentifier": "t_address",
12177 "typeString": "address"
12178 },
12179 "typeName": {
12180 "id": 432,
12181 "name": "address",
12182 "nodeType": "ElementaryTypeName",
12183 "src": "192:7:2",
12184 "stateMutability": "nonpayable",
12185 "typeDescriptions": {
12186 "typeIdentifier": "t_address",
12187 "typeString": "address"
12188 }
12189 },
12190 "value": null,
12191 "visibility": "public"
12192 },
12193 {
12194 "baseFunctions": [
12195 1949
12196 ],
12197 "constant": false,
12198 "functionSelector": "094b7415",
12199 "id": 437,
12200 "mutability": "mutable",
12201 "name": "feeToSetter",
12202 "nodeType": "VariableDeclaration",
12203 "overrides": {
12204 "id": 436,
12205 "nodeType": "OverrideSpecifier",
12206 "overrides": [],
12207 "src": "242:8:2"
12208 },
12209 "scope": 643,
12210 "src": "227:35:2",
12211 "stateVariable": true,
12212 "storageLocation": "default",
12213 "typeDescriptions": {
12214 "typeIdentifier": "t_address",
12215 "typeString": "address"
12216 },
12217 "typeName": {
12218 "id": 435,
12219 "name": "address",
12220 "nodeType": "ElementaryTypeName",
12221 "src": "227:7:2",
12222 "stateMutability": "nonpayable",
12223 "typeDescriptions": {
12224 "typeIdentifier": "t_address",
12225 "typeString": "address"
12226 }
12227 },
12228 "value": null,
12229 "visibility": "public"
12230 },
12231 {
12232 "baseFunctions": [
12233 1958
12234 ],
12235 "constant": false,
12236 "functionSelector": "e6a43905",
12237 "id": 444,
12238 "mutability": "mutable",
12239 "name": "getPair",
12240 "nodeType": "VariableDeclaration",
12241 "overrides": {
12242 "id": 443,
12243 "nodeType": "OverrideSpecifier",
12244 "overrides": [],
12245 "src": "324:8:2"
12246 },
12247 "scope": 643,
12248 "src": "269:71:2",
12249 "stateVariable": true,
12250 "storageLocation": "default",
12251 "typeDescriptions": {
12252 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
12253 "typeString": "mapping(address => mapping(address => address))"
12254 },
12255 "typeName": {
12256 "id": 442,
12257 "keyType": {
12258 "id": 438,
12259 "name": "address",
12260 "nodeType": "ElementaryTypeName",
12261 "src": "277:7:2",
12262 "typeDescriptions": {
12263 "typeIdentifier": "t_address",
12264 "typeString": "address"
12265 }
12266 },
12267 "nodeType": "Mapping",
12268 "src": "269:47:2",
12269 "typeDescriptions": {
12270 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
12271 "typeString": "mapping(address => mapping(address => address))"
12272 },
12273 "valueType": {
12274 "id": 441,
12275 "keyType": {
12276 "id": 439,
12277 "name": "address",
12278 "nodeType": "ElementaryTypeName",
12279 "src": "296:7:2",
12280 "typeDescriptions": {
12281 "typeIdentifier": "t_address",
12282 "typeString": "address"
12283 }
12284 },
12285 "nodeType": "Mapping",
12286 "src": "288:27:2",
12287 "typeDescriptions": {
12288 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
12289 "typeString": "mapping(address => address)"
12290 },
12291 "valueType": {
12292 "id": 440,
12293 "name": "address",
12294 "nodeType": "ElementaryTypeName",
12295 "src": "307:7:2",
12296 "stateMutability": "nonpayable",
12297 "typeDescriptions": {
12298 "typeIdentifier": "t_address",
12299 "typeString": "address"
12300 }
12301 }
12302 }
12303 },
12304 "value": null,
12305 "visibility": "public"
12306 },
12307 {
12308 "baseFunctions": [
12309 1965
12310 ],
12311 "constant": false,
12312 "functionSelector": "1e3dd18b",
12313 "id": 448,
12314 "mutability": "mutable",
12315 "name": "allPairs",
12316 "nodeType": "VariableDeclaration",
12317 "overrides": {
12318 "id": 447,
12319 "nodeType": "OverrideSpecifier",
12320 "overrides": [],
12321 "src": "363:8:2"
12322 },
12323 "scope": 643,
12324 "src": "346:34:2",
12325 "stateVariable": true,
12326 "storageLocation": "default",
12327 "typeDescriptions": {
12328 "typeIdentifier": "t_array$_t_address_$dyn_storage",
12329 "typeString": "address[]"
12330 },
12331 "typeName": {
12332 "baseType": {
12333 "id": 445,
12334 "name": "address",
12335 "nodeType": "ElementaryTypeName",
12336 "src": "346:7:2",
12337 "stateMutability": "nonpayable",
12338 "typeDescriptions": {
12339 "typeIdentifier": "t_address",
12340 "typeString": "address"
12341 }
12342 },
12343 "id": 446,
12344 "length": null,
12345 "nodeType": "ArrayTypeName",
12346 "src": "346:9:2",
12347 "typeDescriptions": {
12348 "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
12349 "typeString": "address[]"
12350 }
12351 },
12352 "value": null,
12353 "visibility": "public"
12354 },
12355 {
12356 "anonymous": false,
12357 "documentation": null,
12358 "id": 458,
12359 "name": "PairCreated",
12360 "nodeType": "EventDefinition",
12361 "parameters": {
12362 "id": 457,
12363 "nodeType": "ParameterList",
12364 "parameters": [
12365 {
12366 "constant": false,
12367 "id": 450,
12368 "indexed": true,
12369 "mutability": "mutable",
12370 "name": "token0",
12371 "nodeType": "VariableDeclaration",
12372 "overrides": null,
12373 "scope": 458,
12374 "src": "405:22:2",
12375 "stateVariable": false,
12376 "storageLocation": "default",
12377 "typeDescriptions": {
12378 "typeIdentifier": "t_address",
12379 "typeString": "address"
12380 },
12381 "typeName": {
12382 "id": 449,
12383 "name": "address",
12384 "nodeType": "ElementaryTypeName",
12385 "src": "405:7:2",
12386 "stateMutability": "nonpayable",
12387 "typeDescriptions": {
12388 "typeIdentifier": "t_address",
12389 "typeString": "address"
12390 }
12391 },
12392 "value": null,
12393 "visibility": "internal"
12394 },
12395 {
12396 "constant": false,
12397 "id": 452,
12398 "indexed": true,
12399 "mutability": "mutable",
12400 "name": "token1",
12401 "nodeType": "VariableDeclaration",
12402 "overrides": null,
12403 "scope": 458,
12404 "src": "429:22:2",
12405 "stateVariable": false,
12406 "storageLocation": "default",
12407 "typeDescriptions": {
12408 "typeIdentifier": "t_address",
12409 "typeString": "address"
12410 },
12411 "typeName": {
12412 "id": 451,
12413 "name": "address",
12414 "nodeType": "ElementaryTypeName",
12415 "src": "429:7:2",
12416 "stateMutability": "nonpayable",
12417 "typeDescriptions": {
12418 "typeIdentifier": "t_address",
12419 "typeString": "address"
12420 }
12421 },
12422 "value": null,
12423 "visibility": "internal"
12424 },
12425 {
12426 "constant": false,
12427 "id": 454,
12428 "indexed": false,
12429 "mutability": "mutable",
12430 "name": "pair",
12431 "nodeType": "VariableDeclaration",
12432 "overrides": null,
12433 "scope": 458,
12434 "src": "453:12:2",
12435 "stateVariable": false,
12436 "storageLocation": "default",
12437 "typeDescriptions": {
12438 "typeIdentifier": "t_address",
12439 "typeString": "address"
12440 },
12441 "typeName": {
12442 "id": 453,
12443 "name": "address",
12444 "nodeType": "ElementaryTypeName",
12445 "src": "453:7:2",
12446 "stateMutability": "nonpayable",
12447 "typeDescriptions": {
12448 "typeIdentifier": "t_address",
12449 "typeString": "address"
12450 }
12451 },
12452 "value": null,
12453 "visibility": "internal"
12454 },
12455 {
12456 "constant": false,
12457 "id": 456,
12458 "indexed": false,
12459 "mutability": "mutable",
12460 "name": "",
12461 "nodeType": "VariableDeclaration",
12462 "overrides": null,
12463 "scope": 458,
12464 "src": "467:4:2",
12465 "stateVariable": false,
12466 "storageLocation": "default",
12467 "typeDescriptions": {
12468 "typeIdentifier": "t_uint256",
12469 "typeString": "uint256"
12470 },
12471 "typeName": {
12472 "id": 455,
12473 "name": "uint",
12474 "nodeType": "ElementaryTypeName",
12475 "src": "467:4:2",
12476 "typeDescriptions": {
12477 "typeIdentifier": "t_uint256",
12478 "typeString": "uint256"
12479 }
12480 },
12481 "value": null,
12482 "visibility": "internal"
12483 }
12484 ],
12485 "src": "404:68:2"
12486 },
12487 "src": "387:86:2"
12488 },
12489 {
12490 "body": {
12491 "id": 467,
12492 "nodeType": "Block",
12493 "src": "520:43:2",
12494 "statements": [
12495 {
12496 "expression": {
12497 "argumentTypes": null,
12498 "id": 465,
12499 "isConstant": false,
12500 "isLValue": false,
12501 "isPure": false,
12502 "lValueRequested": false,
12503 "leftHandSide": {
12504 "argumentTypes": null,
12505 "id": 463,
12506 "name": "feeToSetter",
12507 "nodeType": "Identifier",
12508 "overloadedDeclarations": [],
12509 "referencedDeclaration": 437,
12510 "src": "530:11:2",
12511 "typeDescriptions": {
12512 "typeIdentifier": "t_address",
12513 "typeString": "address"
12514 }
12515 },
12516 "nodeType": "Assignment",
12517 "operator": "=",
12518 "rightHandSide": {
12519 "argumentTypes": null,
12520 "id": 464,
12521 "name": "_feeToSetter",
12522 "nodeType": "Identifier",
12523 "overloadedDeclarations": [],
12524 "referencedDeclaration": 460,
12525 "src": "544:12:2",
12526 "typeDescriptions": {
12527 "typeIdentifier": "t_address",
12528 "typeString": "address"
12529 }
12530 },
12531 "src": "530:26:2",
12532 "typeDescriptions": {
12533 "typeIdentifier": "t_address",
12534 "typeString": "address"
12535 }
12536 },
12537 "id": 466,
12538 "nodeType": "ExpressionStatement",
12539 "src": "530:26:2"
12540 }
12541 ]
12542 },
12543 "documentation": null,
12544 "id": 468,
12545 "implemented": true,
12546 "kind": "constructor",
12547 "modifiers": [],
12548 "name": "",
12549 "nodeType": "FunctionDefinition",
12550 "overrides": null,
12551 "parameters": {
12552 "id": 461,
12553 "nodeType": "ParameterList",
12554 "parameters": [
12555 {
12556 "constant": false,
12557 "id": 460,
12558 "mutability": "mutable",
12559 "name": "_feeToSetter",
12560 "nodeType": "VariableDeclaration",
12561 "overrides": null,
12562 "scope": 468,
12563 "src": "491:20:2",
12564 "stateVariable": false,
12565 "storageLocation": "default",
12566 "typeDescriptions": {
12567 "typeIdentifier": "t_address",
12568 "typeString": "address"
12569 },
12570 "typeName": {
12571 "id": 459,
12572 "name": "address",
12573 "nodeType": "ElementaryTypeName",
12574 "src": "491:7:2",
12575 "stateMutability": "nonpayable",
12576 "typeDescriptions": {
12577 "typeIdentifier": "t_address",
12578 "typeString": "address"
12579 }
12580 },
12581 "value": null,
12582 "visibility": "internal"
12583 }
12584 ],
12585 "src": "490:22:2"
12586 },
12587 "returnParameters": {
12588 "id": 462,
12589 "nodeType": "ParameterList",
12590 "parameters": [],
12591 "src": "520:0:2"
12592 },
12593 "scope": 643,
12594 "src": "479:84:2",
12595 "stateMutability": "nonpayable",
12596 "virtual": false,
12597 "visibility": "public"
12598 },
12599 {
12600 "baseFunctions": [
12601 1970
12602 ],
12603 "body": {
12604 "id": 477,
12605 "nodeType": "Block",
12606 "src": "633:39:2",
12607 "statements": [
12608 {
12609 "expression": {
12610 "argumentTypes": null,
12611 "expression": {
12612 "argumentTypes": null,
12613 "id": 474,
12614 "name": "allPairs",
12615 "nodeType": "Identifier",
12616 "overloadedDeclarations": [],
12617 "referencedDeclaration": 448,
12618 "src": "650:8:2",
12619 "typeDescriptions": {
12620 "typeIdentifier": "t_array$_t_address_$dyn_storage",
12621 "typeString": "address[] storage ref"
12622 }
12623 },
12624 "id": 475,
12625 "isConstant": false,
12626 "isLValue": false,
12627 "isPure": false,
12628 "lValueRequested": false,
12629 "memberName": "length",
12630 "nodeType": "MemberAccess",
12631 "referencedDeclaration": null,
12632 "src": "650:15:2",
12633 "typeDescriptions": {
12634 "typeIdentifier": "t_uint256",
12635 "typeString": "uint256"
12636 }
12637 },
12638 "functionReturnParameters": 473,
12639 "id": 476,
12640 "nodeType": "Return",
12641 "src": "643:22:2"
12642 }
12643 ]
12644 },
12645 "documentation": null,
12646 "functionSelector": "574f2ba3",
12647 "id": 478,
12648 "implemented": true,
12649 "kind": "function",
12650 "modifiers": [],
12651 "name": "allPairsLength",
12652 "nodeType": "FunctionDefinition",
12653 "overrides": {
12654 "id": 470,
12655 "nodeType": "OverrideSpecifier",
12656 "overrides": [],
12657 "src": "604:8:2"
12658 },
12659 "parameters": {
12660 "id": 469,
12661 "nodeType": "ParameterList",
12662 "parameters": [],
12663 "src": "592:2:2"
12664 },
12665 "returnParameters": {
12666 "id": 473,
12667 "nodeType": "ParameterList",
12668 "parameters": [
12669 {
12670 "constant": false,
12671 "id": 472,
12672 "mutability": "mutable",
12673 "name": "",
12674 "nodeType": "VariableDeclaration",
12675 "overrides": null,
12676 "scope": 478,
12677 "src": "627:4:2",
12678 "stateVariable": false,
12679 "storageLocation": "default",
12680 "typeDescriptions": {
12681 "typeIdentifier": "t_uint256",
12682 "typeString": "uint256"
12683 },
12684 "typeName": {
12685 "id": 471,
12686 "name": "uint",
12687 "nodeType": "ElementaryTypeName",
12688 "src": "627:4:2",
12689 "typeDescriptions": {
12690 "typeIdentifier": "t_uint256",
12691 "typeString": "uint256"
12692 }
12693 },
12694 "value": null,
12695 "visibility": "internal"
12696 }
12697 ],
12698 "src": "626:6:2"
12699 },
12700 "scope": 643,
12701 "src": "569:103:2",
12702 "stateMutability": "view",
12703 "virtual": false,
12704 "visibility": "external"
12705 },
12706 {
12707 "body": {
12708 "id": 490,
12709 "nodeType": "Block",
12710 "src": "734:67:2",
12711 "statements": [
12712 {
12713 "expression": {
12714 "argumentTypes": null,
12715 "arguments": [
12716 {
12717 "argumentTypes": null,
12718 "expression": {
12719 "argumentTypes": null,
12720 "arguments": [
12721 {
12722 "argumentTypes": null,
12723 "id": 485,
12724 "name": "UniswapV2Pair",
12725 "nodeType": "Identifier",
12726 "overloadedDeclarations": [],
12727 "referencedDeclaration": 1711,
12728 "src": "766:13:2",
12729 "typeDescriptions": {
12730 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1711_$",
12731 "typeString": "type(contract UniswapV2Pair)"
12732 }
12733 }
12734 ],
12735 "expression": {
12736 "argumentTypes": [
12737 {
12738 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1711_$",
12739 "typeString": "type(contract UniswapV2Pair)"
12740 }
12741 ],
12742 "id": 484,
12743 "name": "type",
12744 "nodeType": "Identifier",
12745 "overloadedDeclarations": [],
12746 "referencedDeclaration": -27,
12747 "src": "761:4:2",
12748 "typeDescriptions": {
12749 "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
12750 "typeString": "function () pure"
12751 }
12752 },
12753 "id": 486,
12754 "isConstant": false,
12755 "isLValue": false,
12756 "isPure": true,
12757 "kind": "functionCall",
12758 "lValueRequested": false,
12759 "names": [],
12760 "nodeType": "FunctionCall",
12761 "src": "761:19:2",
12762 "tryCall": false,
12763 "typeDescriptions": {
12764 "typeIdentifier": "t_magic_meta_type_t_contract$_UniswapV2Pair_$1711",
12765 "typeString": "type(contract UniswapV2Pair)"
12766 }
12767 },
12768 "id": 487,
12769 "isConstant": false,
12770 "isLValue": false,
12771 "isPure": true,
12772 "lValueRequested": false,
12773 "memberName": "creationCode",
12774 "nodeType": "MemberAccess",
12775 "referencedDeclaration": null,
12776 "src": "761:32:2",
12777 "typeDescriptions": {
12778 "typeIdentifier": "t_bytes_memory_ptr",
12779 "typeString": "bytes memory"
12780 }
12781 }
12782 ],
12783 "expression": {
12784 "argumentTypes": [
12785 {
12786 "typeIdentifier": "t_bytes_memory_ptr",
12787 "typeString": "bytes memory"
12788 }
12789 ],
12790 "id": 483,
12791 "name": "keccak256",
12792 "nodeType": "Identifier",
12793 "overloadedDeclarations": [],
12794 "referencedDeclaration": -8,
12795 "src": "751:9:2",
12796 "typeDescriptions": {
12797 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
12798 "typeString": "function (bytes memory) pure returns (bytes32)"
12799 }
12800 },
12801 "id": 488,
12802 "isConstant": false,
12803 "isLValue": false,
12804 "isPure": true,
12805 "kind": "functionCall",
12806 "lValueRequested": false,
12807 "names": [],
12808 "nodeType": "FunctionCall",
12809 "src": "751:43:2",
12810 "tryCall": false,
12811 "typeDescriptions": {
12812 "typeIdentifier": "t_bytes32",
12813 "typeString": "bytes32"
12814 }
12815 },
12816 "functionReturnParameters": 482,
12817 "id": 489,
12818 "nodeType": "Return",
12819 "src": "744:50:2"
12820 }
12821 ]
12822 },
12823 "documentation": null,
12824 "functionSelector": "9aab9248",
12825 "id": 491,
12826 "implemented": true,
12827 "kind": "function",
12828 "modifiers": [],
12829 "name": "pairCodeHash",
12830 "nodeType": "FunctionDefinition",
12831 "overrides": null,
12832 "parameters": {
12833 "id": 479,
12834 "nodeType": "ParameterList",
12835 "parameters": [],
12836 "src": "699:2:2"
12837 },
12838 "returnParameters": {
12839 "id": 482,
12840 "nodeType": "ParameterList",
12841 "parameters": [
12842 {
12843 "constant": false,
12844 "id": 481,
12845 "mutability": "mutable",
12846 "name": "",
12847 "nodeType": "VariableDeclaration",
12848 "overrides": null,
12849 "scope": 491,
12850 "src": "725:7:2",
12851 "stateVariable": false,
12852 "storageLocation": "default",
12853 "typeDescriptions": {
12854 "typeIdentifier": "t_bytes32",
12855 "typeString": "bytes32"
12856 },
12857 "typeName": {
12858 "id": 480,
12859 "name": "bytes32",
12860 "nodeType": "ElementaryTypeName",
12861 "src": "725:7:2",
12862 "typeDescriptions": {
12863 "typeIdentifier": "t_bytes32",
12864 "typeString": "bytes32"
12865 }
12866 },
12867 "value": null,
12868 "visibility": "internal"
12869 }
12870 ],
12871 "src": "724:9:2"
12872 },
12873 "scope": 643,
12874 "src": "678:123:2",
12875 "stateMutability": "pure",
12876 "virtual": false,
12877 "visibility": "external"
12878 },
12879 {
12880 "baseFunctions": [
12881 1979
12882 ],
12883 "body": {
12884 "id": 603,
12885 "nodeType": "Block",
12886 "src": "900:863:2",
12887 "statements": [
12888 {
12889 "expression": {
12890 "argumentTypes": null,
12891 "arguments": [
12892 {
12893 "argumentTypes": null,
12894 "commonType": {
12895 "typeIdentifier": "t_address",
12896 "typeString": "address"
12897 },
12898 "id": 504,
12899 "isConstant": false,
12900 "isLValue": false,
12901 "isPure": false,
12902 "lValueRequested": false,
12903 "leftExpression": {
12904 "argumentTypes": null,
12905 "id": 502,
12906 "name": "tokenA",
12907 "nodeType": "Identifier",
12908 "overloadedDeclarations": [],
12909 "referencedDeclaration": 493,
12910 "src": "918:6:2",
12911 "typeDescriptions": {
12912 "typeIdentifier": "t_address",
12913 "typeString": "address"
12914 }
12915 },
12916 "nodeType": "BinaryOperation",
12917 "operator": "!=",
12918 "rightExpression": {
12919 "argumentTypes": null,
12920 "id": 503,
12921 "name": "tokenB",
12922 "nodeType": "Identifier",
12923 "overloadedDeclarations": [],
12924 "referencedDeclaration": 495,
12925 "src": "928:6:2",
12926 "typeDescriptions": {
12927 "typeIdentifier": "t_address",
12928 "typeString": "address"
12929 }
12930 },
12931 "src": "918:16:2",
12932 "typeDescriptions": {
12933 "typeIdentifier": "t_bool",
12934 "typeString": "bool"
12935 }
12936 },
12937 {
12938 "argumentTypes": null,
12939 "hexValue": "556e697377617056323a204944454e544943414c5f414444524553534553",
12940 "id": 505,
12941 "isConstant": false,
12942 "isLValue": false,
12943 "isPure": true,
12944 "kind": "string",
12945 "lValueRequested": false,
12946 "nodeType": "Literal",
12947 "src": "936:32:2",
12948 "subdenomination": null,
12949 "typeDescriptions": {
12950 "typeIdentifier": "t_stringliteral_1af2ec9097b2f8bc2dcfea53a9ab4b2cdab42fa29e9a9e04dcb14b4efcc8aa70",
12951 "typeString": "literal_string \"UniswapV2: IDENTICAL_ADDRESSES\""
12952 },
12953 "value": "UniswapV2: IDENTICAL_ADDRESSES"
12954 }
12955 ],
12956 "expression": {
12957 "argumentTypes": [
12958 {
12959 "typeIdentifier": "t_bool",
12960 "typeString": "bool"
12961 },
12962 {
12963 "typeIdentifier": "t_stringliteral_1af2ec9097b2f8bc2dcfea53a9ab4b2cdab42fa29e9a9e04dcb14b4efcc8aa70",
12964 "typeString": "literal_string \"UniswapV2: IDENTICAL_ADDRESSES\""
12965 }
12966 ],
12967 "id": 501,
12968 "name": "require",
12969 "nodeType": "Identifier",
12970 "overloadedDeclarations": [
12971 -18,
12972 -18
12973 ],
12974 "referencedDeclaration": -18,
12975 "src": "910:7:2",
12976 "typeDescriptions": {
12977 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
12978 "typeString": "function (bool,string memory) pure"
12979 }
12980 },
12981 "id": 506,
12982 "isConstant": false,
12983 "isLValue": false,
12984 "isPure": false,
12985 "kind": "functionCall",
12986 "lValueRequested": false,
12987 "names": [],
12988 "nodeType": "FunctionCall",
12989 "src": "910:59:2",
12990 "tryCall": false,
12991 "typeDescriptions": {
12992 "typeIdentifier": "t_tuple$__$",
12993 "typeString": "tuple()"
12994 }
12995 },
12996 "id": 507,
12997 "nodeType": "ExpressionStatement",
12998 "src": "910:59:2"
12999 },
13000 {
13001 "assignments": [
13002 509,
13003 511
13004 ],
13005 "declarations": [
13006 {
13007 "constant": false,
13008 "id": 509,
13009 "mutability": "mutable",
13010 "name": "token0",
13011 "nodeType": "VariableDeclaration",
13012 "overrides": null,
13013 "scope": 603,
13014 "src": "980:14:2",
13015 "stateVariable": false,
13016 "storageLocation": "default",
13017 "typeDescriptions": {
13018 "typeIdentifier": "t_address",
13019 "typeString": "address"
13020 },
13021 "typeName": {
13022 "id": 508,
13023 "name": "address",
13024 "nodeType": "ElementaryTypeName",
13025 "src": "980:7:2",
13026 "stateMutability": "nonpayable",
13027 "typeDescriptions": {
13028 "typeIdentifier": "t_address",
13029 "typeString": "address"
13030 }
13031 },
13032 "value": null,
13033 "visibility": "internal"
13034 },
13035 {
13036 "constant": false,
13037 "id": 511,
13038 "mutability": "mutable",
13039 "name": "token1",
13040 "nodeType": "VariableDeclaration",
13041 "overrides": null,
13042 "scope": 603,
13043 "src": "996:14:2",
13044 "stateVariable": false,
13045 "storageLocation": "default",
13046 "typeDescriptions": {
13047 "typeIdentifier": "t_address",
13048 "typeString": "address"
13049 },
13050 "typeName": {
13051 "id": 510,
13052 "name": "address",
13053 "nodeType": "ElementaryTypeName",
13054 "src": "996:7:2",
13055 "stateMutability": "nonpayable",
13056 "typeDescriptions": {
13057 "typeIdentifier": "t_address",
13058 "typeString": "address"
13059 }
13060 },
13061 "value": null,
13062 "visibility": "internal"
13063 }
13064 ],
13065 "id": 522,
13066 "initialValue": {
13067 "argumentTypes": null,
13068 "condition": {
13069 "argumentTypes": null,
13070 "commonType": {
13071 "typeIdentifier": "t_address",
13072 "typeString": "address"
13073 },
13074 "id": 514,
13075 "isConstant": false,
13076 "isLValue": false,
13077 "isPure": false,
13078 "lValueRequested": false,
13079 "leftExpression": {
13080 "argumentTypes": null,
13081 "id": 512,
13082 "name": "tokenA",
13083 "nodeType": "Identifier",
13084 "overloadedDeclarations": [],
13085 "referencedDeclaration": 493,
13086 "src": "1014:6:2",
13087 "typeDescriptions": {
13088 "typeIdentifier": "t_address",
13089 "typeString": "address"
13090 }
13091 },
13092 "nodeType": "BinaryOperation",
13093 "operator": "<",
13094 "rightExpression": {
13095 "argumentTypes": null,
13096 "id": 513,
13097 "name": "tokenB",
13098 "nodeType": "Identifier",
13099 "overloadedDeclarations": [],
13100 "referencedDeclaration": 495,
13101 "src": "1023:6:2",
13102 "typeDescriptions": {
13103 "typeIdentifier": "t_address",
13104 "typeString": "address"
13105 }
13106 },
13107 "src": "1014:15:2",
13108 "typeDescriptions": {
13109 "typeIdentifier": "t_bool",
13110 "typeString": "bool"
13111 }
13112 },
13113 "falseExpression": {
13114 "argumentTypes": null,
13115 "components": [
13116 {
13117 "argumentTypes": null,
13118 "id": 518,
13119 "name": "tokenB",
13120 "nodeType": "Identifier",
13121 "overloadedDeclarations": [],
13122 "referencedDeclaration": 495,
13123 "src": "1052:6:2",
13124 "typeDescriptions": {
13125 "typeIdentifier": "t_address",
13126 "typeString": "address"
13127 }
13128 },
13129 {
13130 "argumentTypes": null,
13131 "id": 519,
13132 "name": "tokenA",
13133 "nodeType": "Identifier",
13134 "overloadedDeclarations": [],
13135 "referencedDeclaration": 493,
13136 "src": "1060:6:2",
13137 "typeDescriptions": {
13138 "typeIdentifier": "t_address",
13139 "typeString": "address"
13140 }
13141 }
13142 ],
13143 "id": 520,
13144 "isConstant": false,
13145 "isInlineArray": false,
13146 "isLValue": false,
13147 "isPure": false,
13148 "lValueRequested": false,
13149 "nodeType": "TupleExpression",
13150 "src": "1051:16:2",
13151 "typeDescriptions": {
13152 "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
13153 "typeString": "tuple(address,address)"
13154 }
13155 },
13156 "id": 521,
13157 "isConstant": false,
13158 "isLValue": false,
13159 "isPure": false,
13160 "lValueRequested": false,
13161 "nodeType": "Conditional",
13162 "src": "1014:53:2",
13163 "trueExpression": {
13164 "argumentTypes": null,
13165 "components": [
13166 {
13167 "argumentTypes": null,
13168 "id": 515,
13169 "name": "tokenA",
13170 "nodeType": "Identifier",
13171 "overloadedDeclarations": [],
13172 "referencedDeclaration": 493,
13173 "src": "1033:6:2",
13174 "typeDescriptions": {
13175 "typeIdentifier": "t_address",
13176 "typeString": "address"
13177 }
13178 },
13179 {
13180 "argumentTypes": null,
13181 "id": 516,
13182 "name": "tokenB",
13183 "nodeType": "Identifier",
13184 "overloadedDeclarations": [],
13185 "referencedDeclaration": 495,
13186 "src": "1041:6:2",
13187 "typeDescriptions": {
13188 "typeIdentifier": "t_address",
13189 "typeString": "address"
13190 }
13191 }
13192 ],
13193 "id": 517,
13194 "isConstant": false,
13195 "isInlineArray": false,
13196 "isLValue": false,
13197 "isPure": false,
13198 "lValueRequested": false,
13199 "nodeType": "TupleExpression",
13200 "src": "1032:16:2",
13201 "typeDescriptions": {
13202 "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
13203 "typeString": "tuple(address,address)"
13204 }
13205 },
13206 "typeDescriptions": {
13207 "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
13208 "typeString": "tuple(address,address)"
13209 }
13210 },
13211 "nodeType": "VariableDeclarationStatement",
13212 "src": "979:88:2"
13213 },
13214 {
13215 "expression": {
13216 "argumentTypes": null,
13217 "arguments": [
13218 {
13219 "argumentTypes": null,
13220 "commonType": {
13221 "typeIdentifier": "t_address",
13222 "typeString": "address"
13223 },
13224 "id": 529,
13225 "isConstant": false,
13226 "isLValue": false,
13227 "isPure": false,
13228 "lValueRequested": false,
13229 "leftExpression": {
13230 "argumentTypes": null,
13231 "id": 524,
13232 "name": "token0",
13233 "nodeType": "Identifier",
13234 "overloadedDeclarations": [],
13235 "referencedDeclaration": 509,
13236 "src": "1085:6:2",
13237 "typeDescriptions": {
13238 "typeIdentifier": "t_address",
13239 "typeString": "address"
13240 }
13241 },
13242 "nodeType": "BinaryOperation",
13243 "operator": "!=",
13244 "rightExpression": {
13245 "argumentTypes": null,
13246 "arguments": [
13247 {
13248 "argumentTypes": null,
13249 "hexValue": "30",
13250 "id": 527,
13251 "isConstant": false,
13252 "isLValue": false,
13253 "isPure": true,
13254 "kind": "number",
13255 "lValueRequested": false,
13256 "nodeType": "Literal",
13257 "src": "1103:1:2",
13258 "subdenomination": null,
13259 "typeDescriptions": {
13260 "typeIdentifier": "t_rational_0_by_1",
13261 "typeString": "int_const 0"
13262 },
13263 "value": "0"
13264 }
13265 ],
13266 "expression": {
13267 "argumentTypes": [
13268 {
13269 "typeIdentifier": "t_rational_0_by_1",
13270 "typeString": "int_const 0"
13271 }
13272 ],
13273 "id": 526,
13274 "isConstant": false,
13275 "isLValue": false,
13276 "isPure": true,
13277 "lValueRequested": false,
13278 "nodeType": "ElementaryTypeNameExpression",
13279 "src": "1095:7:2",
13280 "typeDescriptions": {
13281 "typeIdentifier": "t_type$_t_address_$",
13282 "typeString": "type(address)"
13283 },
13284 "typeName": {
13285 "id": 525,
13286 "name": "address",
13287 "nodeType": "ElementaryTypeName",
13288 "src": "1095:7:2",
13289 "typeDescriptions": {
13290 "typeIdentifier": null,
13291 "typeString": null
13292 }
13293 }
13294 },
13295 "id": 528,
13296 "isConstant": false,
13297 "isLValue": false,
13298 "isPure": true,
13299 "kind": "typeConversion",
13300 "lValueRequested": false,
13301 "names": [],
13302 "nodeType": "FunctionCall",
13303 "src": "1095:10:2",
13304 "tryCall": false,
13305 "typeDescriptions": {
13306 "typeIdentifier": "t_address_payable",
13307 "typeString": "address payable"
13308 }
13309 },
13310 "src": "1085:20:2",
13311 "typeDescriptions": {
13312 "typeIdentifier": "t_bool",
13313 "typeString": "bool"
13314 }
13315 },
13316 {
13317 "argumentTypes": null,
13318 "hexValue": "556e697377617056323a205a45524f5f41444452455353",
13319 "id": 530,
13320 "isConstant": false,
13321 "isLValue": false,
13322 "isPure": true,
13323 "kind": "string",
13324 "lValueRequested": false,
13325 "nodeType": "Literal",
13326 "src": "1107:25:2",
13327 "subdenomination": null,
13328 "typeDescriptions": {
13329 "typeIdentifier": "t_stringliteral_9fd3496d51391106f97d9c12d75d9ef2543a217eeaf4b9c52c6fdbe23f45a5ae",
13330 "typeString": "literal_string \"UniswapV2: ZERO_ADDRESS\""
13331 },
13332 "value": "UniswapV2: ZERO_ADDRESS"
13333 }
13334 ],
13335 "expression": {
13336 "argumentTypes": [
13337 {
13338 "typeIdentifier": "t_bool",
13339 "typeString": "bool"
13340 },
13341 {
13342 "typeIdentifier": "t_stringliteral_9fd3496d51391106f97d9c12d75d9ef2543a217eeaf4b9c52c6fdbe23f45a5ae",
13343 "typeString": "literal_string \"UniswapV2: ZERO_ADDRESS\""
13344 }
13345 ],
13346 "id": 523,
13347 "name": "require",
13348 "nodeType": "Identifier",
13349 "overloadedDeclarations": [
13350 -18,
13351 -18
13352 ],
13353 "referencedDeclaration": -18,
13354 "src": "1077:7:2",
13355 "typeDescriptions": {
13356 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
13357 "typeString": "function (bool,string memory) pure"
13358 }
13359 },
13360 "id": 531,
13361 "isConstant": false,
13362 "isLValue": false,
13363 "isPure": false,
13364 "kind": "functionCall",
13365 "lValueRequested": false,
13366 "names": [],
13367 "nodeType": "FunctionCall",
13368 "src": "1077:56:2",
13369 "tryCall": false,
13370 "typeDescriptions": {
13371 "typeIdentifier": "t_tuple$__$",
13372 "typeString": "tuple()"
13373 }
13374 },
13375 "id": 532,
13376 "nodeType": "ExpressionStatement",
13377 "src": "1077:56:2"
13378 },
13379 {
13380 "expression": {
13381 "argumentTypes": null,
13382 "arguments": [
13383 {
13384 "argumentTypes": null,
13385 "commonType": {
13386 "typeIdentifier": "t_address",
13387 "typeString": "address"
13388 },
13389 "id": 543,
13390 "isConstant": false,
13391 "isLValue": false,
13392 "isPure": false,
13393 "lValueRequested": false,
13394 "leftExpression": {
13395 "argumentTypes": null,
13396 "baseExpression": {
13397 "argumentTypes": null,
13398 "baseExpression": {
13399 "argumentTypes": null,
13400 "id": 534,
13401 "name": "getPair",
13402 "nodeType": "Identifier",
13403 "overloadedDeclarations": [],
13404 "referencedDeclaration": 444,
13405 "src": "1151:7:2",
13406 "typeDescriptions": {
13407 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
13408 "typeString": "mapping(address => mapping(address => address))"
13409 }
13410 },
13411 "id": 536,
13412 "indexExpression": {
13413 "argumentTypes": null,
13414 "id": 535,
13415 "name": "token0",
13416 "nodeType": "Identifier",
13417 "overloadedDeclarations": [],
13418 "referencedDeclaration": 509,
13419 "src": "1159:6:2",
13420 "typeDescriptions": {
13421 "typeIdentifier": "t_address",
13422 "typeString": "address"
13423 }
13424 },
13425 "isConstant": false,
13426 "isLValue": true,
13427 "isPure": false,
13428 "lValueRequested": false,
13429 "nodeType": "IndexAccess",
13430 "src": "1151:15:2",
13431 "typeDescriptions": {
13432 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
13433 "typeString": "mapping(address => address)"
13434 }
13435 },
13436 "id": 538,
13437 "indexExpression": {
13438 "argumentTypes": null,
13439 "id": 537,
13440 "name": "token1",
13441 "nodeType": "Identifier",
13442 "overloadedDeclarations": [],
13443 "referencedDeclaration": 511,
13444 "src": "1167:6:2",
13445 "typeDescriptions": {
13446 "typeIdentifier": "t_address",
13447 "typeString": "address"
13448 }
13449 },
13450 "isConstant": false,
13451 "isLValue": true,
13452 "isPure": false,
13453 "lValueRequested": false,
13454 "nodeType": "IndexAccess",
13455 "src": "1151:23:2",
13456 "typeDescriptions": {
13457 "typeIdentifier": "t_address",
13458 "typeString": "address"
13459 }
13460 },
13461 "nodeType": "BinaryOperation",
13462 "operator": "==",
13463 "rightExpression": {
13464 "argumentTypes": null,
13465 "arguments": [
13466 {
13467 "argumentTypes": null,
13468 "hexValue": "30",
13469 "id": 541,
13470 "isConstant": false,
13471 "isLValue": false,
13472 "isPure": true,
13473 "kind": "number",
13474 "lValueRequested": false,
13475 "nodeType": "Literal",
13476 "src": "1186:1:2",
13477 "subdenomination": null,
13478 "typeDescriptions": {
13479 "typeIdentifier": "t_rational_0_by_1",
13480 "typeString": "int_const 0"
13481 },
13482 "value": "0"
13483 }
13484 ],
13485 "expression": {
13486 "argumentTypes": [
13487 {
13488 "typeIdentifier": "t_rational_0_by_1",
13489 "typeString": "int_const 0"
13490 }
13491 ],
13492 "id": 540,
13493 "isConstant": false,
13494 "isLValue": false,
13495 "isPure": true,
13496 "lValueRequested": false,
13497 "nodeType": "ElementaryTypeNameExpression",
13498 "src": "1178:7:2",
13499 "typeDescriptions": {
13500 "typeIdentifier": "t_type$_t_address_$",
13501 "typeString": "type(address)"
13502 },
13503 "typeName": {
13504 "id": 539,
13505 "name": "address",
13506 "nodeType": "ElementaryTypeName",
13507 "src": "1178:7:2",
13508 "typeDescriptions": {
13509 "typeIdentifier": null,
13510 "typeString": null
13511 }
13512 }
13513 },
13514 "id": 542,
13515 "isConstant": false,
13516 "isLValue": false,
13517 "isPure": true,
13518 "kind": "typeConversion",
13519 "lValueRequested": false,
13520 "names": [],
13521 "nodeType": "FunctionCall",
13522 "src": "1178:10:2",
13523 "tryCall": false,
13524 "typeDescriptions": {
13525 "typeIdentifier": "t_address_payable",
13526 "typeString": "address payable"
13527 }
13528 },
13529 "src": "1151:37:2",
13530 "typeDescriptions": {
13531 "typeIdentifier": "t_bool",
13532 "typeString": "bool"
13533 }
13534 },
13535 {
13536 "argumentTypes": null,
13537 "hexValue": "556e697377617056323a20504149525f455849535453",
13538 "id": 544,
13539 "isConstant": false,
13540 "isLValue": false,
13541 "isPure": true,
13542 "kind": "string",
13543 "lValueRequested": false,
13544 "nodeType": "Literal",
13545 "src": "1190:24:2",
13546 "subdenomination": null,
13547 "typeDescriptions": {
13548 "typeIdentifier": "t_stringliteral_7597a3317d1f47998beb266ffa8b5f1f9be064321f01552ef08c1fe9eeb777db",
13549 "typeString": "literal_string \"UniswapV2: PAIR_EXISTS\""
13550 },
13551 "value": "UniswapV2: PAIR_EXISTS"
13552 }
13553 ],
13554 "expression": {
13555 "argumentTypes": [
13556 {
13557 "typeIdentifier": "t_bool",
13558 "typeString": "bool"
13559 },
13560 {
13561 "typeIdentifier": "t_stringliteral_7597a3317d1f47998beb266ffa8b5f1f9be064321f01552ef08c1fe9eeb777db",
13562 "typeString": "literal_string \"UniswapV2: PAIR_EXISTS\""
13563 }
13564 ],
13565 "id": 533,
13566 "name": "require",
13567 "nodeType": "Identifier",
13568 "overloadedDeclarations": [
13569 -18,
13570 -18
13571 ],
13572 "referencedDeclaration": -18,
13573 "src": "1143:7:2",
13574 "typeDescriptions": {
13575 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
13576 "typeString": "function (bool,string memory) pure"
13577 }
13578 },
13579 "id": 545,
13580 "isConstant": false,
13581 "isLValue": false,
13582 "isPure": false,
13583 "kind": "functionCall",
13584 "lValueRequested": false,
13585 "names": [],
13586 "nodeType": "FunctionCall",
13587 "src": "1143:72:2",
13588 "tryCall": false,
13589 "typeDescriptions": {
13590 "typeIdentifier": "t_tuple$__$",
13591 "typeString": "tuple()"
13592 }
13593 },
13594 "id": 546,
13595 "nodeType": "ExpressionStatement",
13596 "src": "1143:72:2"
13597 },
13598 {
13599 "assignments": [
13600 548
13601 ],
13602 "declarations": [
13603 {
13604 "constant": false,
13605 "id": 548,
13606 "mutability": "mutable",
13607 "name": "bytecode",
13608 "nodeType": "VariableDeclaration",
13609 "overrides": null,
13610 "scope": 603,
13611 "src": "1255:21:2",
13612 "stateVariable": false,
13613 "storageLocation": "memory",
13614 "typeDescriptions": {
13615 "typeIdentifier": "t_bytes_memory_ptr",
13616 "typeString": "bytes"
13617 },
13618 "typeName": {
13619 "id": 547,
13620 "name": "bytes",
13621 "nodeType": "ElementaryTypeName",
13622 "src": "1255:5:2",
13623 "typeDescriptions": {
13624 "typeIdentifier": "t_bytes_storage_ptr",
13625 "typeString": "bytes"
13626 }
13627 },
13628 "value": null,
13629 "visibility": "internal"
13630 }
13631 ],
13632 "id": 553,
13633 "initialValue": {
13634 "argumentTypes": null,
13635 "expression": {
13636 "argumentTypes": null,
13637 "arguments": [
13638 {
13639 "argumentTypes": null,
13640 "id": 550,
13641 "name": "UniswapV2Pair",
13642 "nodeType": "Identifier",
13643 "overloadedDeclarations": [],
13644 "referencedDeclaration": 1711,
13645 "src": "1284:13:2",
13646 "typeDescriptions": {
13647 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1711_$",
13648 "typeString": "type(contract UniswapV2Pair)"
13649 }
13650 }
13651 ],
13652 "expression": {
13653 "argumentTypes": [
13654 {
13655 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1711_$",
13656 "typeString": "type(contract UniswapV2Pair)"
13657 }
13658 ],
13659 "id": 549,
13660 "name": "type",
13661 "nodeType": "Identifier",
13662 "overloadedDeclarations": [],
13663 "referencedDeclaration": -27,
13664 "src": "1279:4:2",
13665 "typeDescriptions": {
13666 "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
13667 "typeString": "function () pure"
13668 }
13669 },
13670 "id": 551,
13671 "isConstant": false,
13672 "isLValue": false,
13673 "isPure": true,
13674 "kind": "functionCall",
13675 "lValueRequested": false,
13676 "names": [],
13677 "nodeType": "FunctionCall",
13678 "src": "1279:19:2",
13679 "tryCall": false,
13680 "typeDescriptions": {
13681 "typeIdentifier": "t_magic_meta_type_t_contract$_UniswapV2Pair_$1711",
13682 "typeString": "type(contract UniswapV2Pair)"
13683 }
13684 },
13685 "id": 552,
13686 "isConstant": false,
13687 "isLValue": false,
13688 "isPure": true,
13689 "lValueRequested": false,
13690 "memberName": "creationCode",
13691 "nodeType": "MemberAccess",
13692 "referencedDeclaration": null,
13693 "src": "1279:32:2",
13694 "typeDescriptions": {
13695 "typeIdentifier": "t_bytes_memory_ptr",
13696 "typeString": "bytes memory"
13697 }
13698 },
13699 "nodeType": "VariableDeclarationStatement",
13700 "src": "1255:56:2"
13701 },
13702 {
13703 "assignments": [
13704 555
13705 ],
13706 "declarations": [
13707 {
13708 "constant": false,
13709 "id": 555,
13710 "mutability": "mutable",
13711 "name": "salt",
13712 "nodeType": "VariableDeclaration",
13713 "overrides": null,
13714 "scope": 603,
13715 "src": "1321:12:2",
13716 "stateVariable": false,
13717 "storageLocation": "default",
13718 "typeDescriptions": {
13719 "typeIdentifier": "t_bytes32",
13720 "typeString": "bytes32"
13721 },
13722 "typeName": {
13723 "id": 554,
13724 "name": "bytes32",
13725 "nodeType": "ElementaryTypeName",
13726 "src": "1321:7:2",
13727 "typeDescriptions": {
13728 "typeIdentifier": "t_bytes32",
13729 "typeString": "bytes32"
13730 }
13731 },
13732 "value": null,
13733 "visibility": "internal"
13734 }
13735 ],
13736 "id": 563,
13737 "initialValue": {
13738 "argumentTypes": null,
13739 "arguments": [
13740 {
13741 "argumentTypes": null,
13742 "arguments": [
13743 {
13744 "argumentTypes": null,
13745 "id": 559,
13746 "name": "token0",
13747 "nodeType": "Identifier",
13748 "overloadedDeclarations": [],
13749 "referencedDeclaration": 509,
13750 "src": "1363:6:2",
13751 "typeDescriptions": {
13752 "typeIdentifier": "t_address",
13753 "typeString": "address"
13754 }
13755 },
13756 {
13757 "argumentTypes": null,
13758 "id": 560,
13759 "name": "token1",
13760 "nodeType": "Identifier",
13761 "overloadedDeclarations": [],
13762 "referencedDeclaration": 511,
13763 "src": "1371:6:2",
13764 "typeDescriptions": {
13765 "typeIdentifier": "t_address",
13766 "typeString": "address"
13767 }
13768 }
13769 ],
13770 "expression": {
13771 "argumentTypes": [
13772 {
13773 "typeIdentifier": "t_address",
13774 "typeString": "address"
13775 },
13776 {
13777 "typeIdentifier": "t_address",
13778 "typeString": "address"
13779 }
13780 ],
13781 "expression": {
13782 "argumentTypes": null,
13783 "id": 557,
13784 "name": "abi",
13785 "nodeType": "Identifier",
13786 "overloadedDeclarations": [],
13787 "referencedDeclaration": -1,
13788 "src": "1346:3:2",
13789 "typeDescriptions": {
13790 "typeIdentifier": "t_magic_abi",
13791 "typeString": "abi"
13792 }
13793 },
13794 "id": 558,
13795 "isConstant": false,
13796 "isLValue": false,
13797 "isPure": true,
13798 "lValueRequested": false,
13799 "memberName": "encodePacked",
13800 "nodeType": "MemberAccess",
13801 "referencedDeclaration": null,
13802 "src": "1346:16:2",
13803 "typeDescriptions": {
13804 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
13805 "typeString": "function () pure returns (bytes memory)"
13806 }
13807 },
13808 "id": 561,
13809 "isConstant": false,
13810 "isLValue": false,
13811 "isPure": false,
13812 "kind": "functionCall",
13813 "lValueRequested": false,
13814 "names": [],
13815 "nodeType": "FunctionCall",
13816 "src": "1346:32:2",
13817 "tryCall": false,
13818 "typeDescriptions": {
13819 "typeIdentifier": "t_bytes_memory_ptr",
13820 "typeString": "bytes memory"
13821 }
13822 }
13823 ],
13824 "expression": {
13825 "argumentTypes": [
13826 {
13827 "typeIdentifier": "t_bytes_memory_ptr",
13828 "typeString": "bytes memory"
13829 }
13830 ],
13831 "id": 556,
13832 "name": "keccak256",
13833 "nodeType": "Identifier",
13834 "overloadedDeclarations": [],
13835 "referencedDeclaration": -8,
13836 "src": "1336:9:2",
13837 "typeDescriptions": {
13838 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
13839 "typeString": "function (bytes memory) pure returns (bytes32)"
13840 }
13841 },
13842 "id": 562,
13843 "isConstant": false,
13844 "isLValue": false,
13845 "isPure": false,
13846 "kind": "functionCall",
13847 "lValueRequested": false,
13848 "names": [],
13849 "nodeType": "FunctionCall",
13850 "src": "1336:43:2",
13851 "tryCall": false,
13852 "typeDescriptions": {
13853 "typeIdentifier": "t_bytes32",
13854 "typeString": "bytes32"
13855 }
13856 },
13857 "nodeType": "VariableDeclarationStatement",
13858 "src": "1321:58:2"
13859 },
13860 {
13861 "AST": {
13862 "nodeType": "YulBlock",
13863 "src": "1398:84:2",
13864 "statements": [
13865 {
13866 "nodeType": "YulAssignment",
13867 "src": "1412:60:2",
13868 "value": {
13869 "arguments": [
13870 {
13871 "kind": "number",
13872 "nodeType": "YulLiteral",
13873 "src": "1428:1:2",
13874 "type": "",
13875 "value": "0"
13876 },
13877 {
13878 "arguments": [
13879 {
13880 "name": "bytecode",
13881 "nodeType": "YulIdentifier",
13882 "src": "1435:8:2"
13883 },
13884 {
13885 "kind": "number",
13886 "nodeType": "YulLiteral",
13887 "src": "1445:2:2",
13888 "type": "",
13889 "value": "32"
13890 }
13891 ],
13892 "functionName": {
13893 "name": "add",
13894 "nodeType": "YulIdentifier",
13895 "src": "1431:3:2"
13896 },
13897 "nodeType": "YulFunctionCall",
13898 "src": "1431:17:2"
13899 },
13900 {
13901 "arguments": [
13902 {
13903 "name": "bytecode",
13904 "nodeType": "YulIdentifier",
13905 "src": "1456:8:2"
13906 }
13907 ],
13908 "functionName": {
13909 "name": "mload",
13910 "nodeType": "YulIdentifier",
13911 "src": "1450:5:2"
13912 },
13913 "nodeType": "YulFunctionCall",
13914 "src": "1450:15:2"
13915 },
13916 {
13917 "name": "salt",
13918 "nodeType": "YulIdentifier",
13919 "src": "1467:4:2"
13920 }
13921 ],
13922 "functionName": {
13923 "name": "create2",
13924 "nodeType": "YulIdentifier",
13925 "src": "1420:7:2"
13926 },
13927 "nodeType": "YulFunctionCall",
13928 "src": "1420:52:2"
13929 },
13930 "variableNames": [
13931 {
13932 "name": "pair",
13933 "nodeType": "YulIdentifier",
13934 "src": "1412:4:2"
13935 }
13936 ]
13937 }
13938 ]
13939 },
13940 "evmVersion": "istanbul",
13941 "externalReferences": [
13942 {
13943 "declaration": 548,
13944 "isOffset": false,
13945 "isSlot": false,
13946 "src": "1435:8:2",
13947 "valueSize": 1
13948 },
13949 {
13950 "declaration": 548,
13951 "isOffset": false,
13952 "isSlot": false,
13953 "src": "1456:8:2",
13954 "valueSize": 1
13955 },
13956 {
13957 "declaration": 499,
13958 "isOffset": false,
13959 "isSlot": false,
13960 "src": "1412:4:2",
13961 "valueSize": 1
13962 },
13963 {
13964 "declaration": 555,
13965 "isOffset": false,
13966 "isSlot": false,
13967 "src": "1467:4:2",
13968 "valueSize": 1
13969 }
13970 ],
13971 "id": 564,
13972 "nodeType": "InlineAssembly",
13973 "src": "1389:93:2"
13974 },
13975 {
13976 "expression": {
13977 "argumentTypes": null,
13978 "arguments": [
13979 {
13980 "argumentTypes": null,
13981 "id": 569,
13982 "name": "token0",
13983 "nodeType": "Identifier",
13984 "overloadedDeclarations": [],
13985 "referencedDeclaration": 509,
13986 "src": "1522:6:2",
13987 "typeDescriptions": {
13988 "typeIdentifier": "t_address",
13989 "typeString": "address"
13990 }
13991 },
13992 {
13993 "argumentTypes": null,
13994 "id": 570,
13995 "name": "token1",
13996 "nodeType": "Identifier",
13997 "overloadedDeclarations": [],
13998 "referencedDeclaration": 511,
13999 "src": "1530:6:2",
14000 "typeDescriptions": {
14001 "typeIdentifier": "t_address",
14002 "typeString": "address"
14003 }
14004 }
14005 ],
14006 "expression": {
14007 "argumentTypes": [
14008 {
14009 "typeIdentifier": "t_address",
14010 "typeString": "address"
14011 },
14012 {
14013 "typeIdentifier": "t_address",
14014 "typeString": "address"
14015 }
14016 ],
14017 "expression": {
14018 "argumentTypes": null,
14019 "arguments": [
14020 {
14021 "argumentTypes": null,
14022 "id": 566,
14023 "name": "pair",
14024 "nodeType": "Identifier",
14025 "overloadedDeclarations": [],
14026 "referencedDeclaration": 499,
14027 "src": "1505:4:2",
14028 "typeDescriptions": {
14029 "typeIdentifier": "t_address",
14030 "typeString": "address"
14031 }
14032 }
14033 ],
14034 "expression": {
14035 "argumentTypes": [
14036 {
14037 "typeIdentifier": "t_address",
14038 "typeString": "address"
14039 }
14040 ],
14041 "id": 565,
14042 "name": "UniswapV2Pair",
14043 "nodeType": "Identifier",
14044 "overloadedDeclarations": [],
14045 "referencedDeclaration": 1711,
14046 "src": "1491:13:2",
14047 "typeDescriptions": {
14048 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1711_$",
14049 "typeString": "type(contract UniswapV2Pair)"
14050 }
14051 },
14052 "id": 567,
14053 "isConstant": false,
14054 "isLValue": false,
14055 "isPure": false,
14056 "kind": "typeConversion",
14057 "lValueRequested": false,
14058 "names": [],
14059 "nodeType": "FunctionCall",
14060 "src": "1491:19:2",
14061 "tryCall": false,
14062 "typeDescriptions": {
14063 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
14064 "typeString": "contract UniswapV2Pair"
14065 }
14066 },
14067 "id": 568,
14068 "isConstant": false,
14069 "isLValue": false,
14070 "isPure": false,
14071 "lValueRequested": false,
14072 "memberName": "initialize",
14073 "nodeType": "MemberAccess",
14074 "referencedDeclaration": 851,
14075 "src": "1491:30:2",
14076 "typeDescriptions": {
14077 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
14078 "typeString": "function (address,address) external"
14079 }
14080 },
14081 "id": 571,
14082 "isConstant": false,
14083 "isLValue": false,
14084 "isPure": false,
14085 "kind": "functionCall",
14086 "lValueRequested": false,
14087 "names": [],
14088 "nodeType": "FunctionCall",
14089 "src": "1491:46:2",
14090 "tryCall": false,
14091 "typeDescriptions": {
14092 "typeIdentifier": "t_tuple$__$",
14093 "typeString": "tuple()"
14094 }
14095 },
14096 "id": 572,
14097 "nodeType": "ExpressionStatement",
14098 "src": "1491:46:2"
14099 },
14100 {
14101 "expression": {
14102 "argumentTypes": null,
14103 "id": 579,
14104 "isConstant": false,
14105 "isLValue": false,
14106 "isPure": false,
14107 "lValueRequested": false,
14108 "leftHandSide": {
14109 "argumentTypes": null,
14110 "baseExpression": {
14111 "argumentTypes": null,
14112 "baseExpression": {
14113 "argumentTypes": null,
14114 "id": 573,
14115 "name": "getPair",
14116 "nodeType": "Identifier",
14117 "overloadedDeclarations": [],
14118 "referencedDeclaration": 444,
14119 "src": "1547:7:2",
14120 "typeDescriptions": {
14121 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
14122 "typeString": "mapping(address => mapping(address => address))"
14123 }
14124 },
14125 "id": 576,
14126 "indexExpression": {
14127 "argumentTypes": null,
14128 "id": 574,
14129 "name": "token0",
14130 "nodeType": "Identifier",
14131 "overloadedDeclarations": [],
14132 "referencedDeclaration": 509,
14133 "src": "1555:6:2",
14134 "typeDescriptions": {
14135 "typeIdentifier": "t_address",
14136 "typeString": "address"
14137 }
14138 },
14139 "isConstant": false,
14140 "isLValue": true,
14141 "isPure": false,
14142 "lValueRequested": false,
14143 "nodeType": "IndexAccess",
14144 "src": "1547:15:2",
14145 "typeDescriptions": {
14146 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
14147 "typeString": "mapping(address => address)"
14148 }
14149 },
14150 "id": 577,
14151 "indexExpression": {
14152 "argumentTypes": null,
14153 "id": 575,
14154 "name": "token1",
14155 "nodeType": "Identifier",
14156 "overloadedDeclarations": [],
14157 "referencedDeclaration": 511,
14158 "src": "1563:6:2",
14159 "typeDescriptions": {
14160 "typeIdentifier": "t_address",
14161 "typeString": "address"
14162 }
14163 },
14164 "isConstant": false,
14165 "isLValue": true,
14166 "isPure": false,
14167 "lValueRequested": true,
14168 "nodeType": "IndexAccess",
14169 "src": "1547:23:2",
14170 "typeDescriptions": {
14171 "typeIdentifier": "t_address",
14172 "typeString": "address"
14173 }
14174 },
14175 "nodeType": "Assignment",
14176 "operator": "=",
14177 "rightHandSide": {
14178 "argumentTypes": null,
14179 "id": 578,
14180 "name": "pair",
14181 "nodeType": "Identifier",
14182 "overloadedDeclarations": [],
14183 "referencedDeclaration": 499,
14184 "src": "1573:4:2",
14185 "typeDescriptions": {
14186 "typeIdentifier": "t_address",
14187 "typeString": "address"
14188 }
14189 },
14190 "src": "1547:30:2",
14191 "typeDescriptions": {
14192 "typeIdentifier": "t_address",
14193 "typeString": "address"
14194 }
14195 },
14196 "id": 580,
14197 "nodeType": "ExpressionStatement",
14198 "src": "1547:30:2"
14199 },
14200 {
14201 "expression": {
14202 "argumentTypes": null,
14203 "id": 587,
14204 "isConstant": false,
14205 "isLValue": false,
14206 "isPure": false,
14207 "lValueRequested": false,
14208 "leftHandSide": {
14209 "argumentTypes": null,
14210 "baseExpression": {
14211 "argumentTypes": null,
14212 "baseExpression": {
14213 "argumentTypes": null,
14214 "id": 581,
14215 "name": "getPair",
14216 "nodeType": "Identifier",
14217 "overloadedDeclarations": [],
14218 "referencedDeclaration": 444,
14219 "src": "1587:7:2",
14220 "typeDescriptions": {
14221 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
14222 "typeString": "mapping(address => mapping(address => address))"
14223 }
14224 },
14225 "id": 584,
14226 "indexExpression": {
14227 "argumentTypes": null,
14228 "id": 582,
14229 "name": "token1",
14230 "nodeType": "Identifier",
14231 "overloadedDeclarations": [],
14232 "referencedDeclaration": 511,
14233 "src": "1595:6:2",
14234 "typeDescriptions": {
14235 "typeIdentifier": "t_address",
14236 "typeString": "address"
14237 }
14238 },
14239 "isConstant": false,
14240 "isLValue": true,
14241 "isPure": false,
14242 "lValueRequested": false,
14243 "nodeType": "IndexAccess",
14244 "src": "1587:15:2",
14245 "typeDescriptions": {
14246 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
14247 "typeString": "mapping(address => address)"
14248 }
14249 },
14250 "id": 585,
14251 "indexExpression": {
14252 "argumentTypes": null,
14253 "id": 583,
14254 "name": "token0",
14255 "nodeType": "Identifier",
14256 "overloadedDeclarations": [],
14257 "referencedDeclaration": 509,
14258 "src": "1603:6:2",
14259 "typeDescriptions": {
14260 "typeIdentifier": "t_address",
14261 "typeString": "address"
14262 }
14263 },
14264 "isConstant": false,
14265 "isLValue": true,
14266 "isPure": false,
14267 "lValueRequested": true,
14268 "nodeType": "IndexAccess",
14269 "src": "1587:23:2",
14270 "typeDescriptions": {
14271 "typeIdentifier": "t_address",
14272 "typeString": "address"
14273 }
14274 },
14275 "nodeType": "Assignment",
14276 "operator": "=",
14277 "rightHandSide": {
14278 "argumentTypes": null,
14279 "id": 586,
14280 "name": "pair",
14281 "nodeType": "Identifier",
14282 "overloadedDeclarations": [],
14283 "referencedDeclaration": 499,
14284 "src": "1613:4:2",
14285 "typeDescriptions": {
14286 "typeIdentifier": "t_address",
14287 "typeString": "address"
14288 }
14289 },
14290 "src": "1587:30:2",
14291 "typeDescriptions": {
14292 "typeIdentifier": "t_address",
14293 "typeString": "address"
14294 }
14295 },
14296 "id": 588,
14297 "nodeType": "ExpressionStatement",
14298 "src": "1587:30:2"
14299 },
14300 {
14301 "expression": {
14302 "argumentTypes": null,
14303 "arguments": [
14304 {
14305 "argumentTypes": null,
14306 "id": 592,
14307 "name": "pair",
14308 "nodeType": "Identifier",
14309 "overloadedDeclarations": [],
14310 "referencedDeclaration": 499,
14311 "src": "1686:4:2",
14312 "typeDescriptions": {
14313 "typeIdentifier": "t_address",
14314 "typeString": "address"
14315 }
14316 }
14317 ],
14318 "expression": {
14319 "argumentTypes": [
14320 {
14321 "typeIdentifier": "t_address",
14322 "typeString": "address"
14323 }
14324 ],
14325 "expression": {
14326 "argumentTypes": null,
14327 "id": 589,
14328 "name": "allPairs",
14329 "nodeType": "Identifier",
14330 "overloadedDeclarations": [],
14331 "referencedDeclaration": 448,
14332 "src": "1672:8:2",
14333 "typeDescriptions": {
14334 "typeIdentifier": "t_array$_t_address_$dyn_storage",
14335 "typeString": "address[] storage ref"
14336 }
14337 },
14338 "id": 591,
14339 "isConstant": false,
14340 "isLValue": false,
14341 "isPure": false,
14342 "lValueRequested": false,
14343 "memberName": "push",
14344 "nodeType": "MemberAccess",
14345 "referencedDeclaration": null,
14346 "src": "1672:13:2",
14347 "typeDescriptions": {
14348 "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
14349 "typeString": "function (address)"
14350 }
14351 },
14352 "id": 593,
14353 "isConstant": false,
14354 "isLValue": false,
14355 "isPure": false,
14356 "kind": "functionCall",
14357 "lValueRequested": false,
14358 "names": [],
14359 "nodeType": "FunctionCall",
14360 "src": "1672:19:2",
14361 "tryCall": false,
14362 "typeDescriptions": {
14363 "typeIdentifier": "t_tuple$__$",
14364 "typeString": "tuple()"
14365 }
14366 },
14367 "id": 594,
14368 "nodeType": "ExpressionStatement",
14369 "src": "1672:19:2"
14370 },
14371 {
14372 "eventCall": {
14373 "argumentTypes": null,
14374 "arguments": [
14375 {
14376 "argumentTypes": null,
14377 "id": 596,
14378 "name": "token0",
14379 "nodeType": "Identifier",
14380 "overloadedDeclarations": [],
14381 "referencedDeclaration": 509,
14382 "src": "1718:6:2",
14383 "typeDescriptions": {
14384 "typeIdentifier": "t_address",
14385 "typeString": "address"
14386 }
14387 },
14388 {
14389 "argumentTypes": null,
14390 "id": 597,
14391 "name": "token1",
14392 "nodeType": "Identifier",
14393 "overloadedDeclarations": [],
14394 "referencedDeclaration": 511,
14395 "src": "1726:6:2",
14396 "typeDescriptions": {
14397 "typeIdentifier": "t_address",
14398 "typeString": "address"
14399 }
14400 },
14401 {
14402 "argumentTypes": null,
14403 "id": 598,
14404 "name": "pair",
14405 "nodeType": "Identifier",
14406 "overloadedDeclarations": [],
14407 "referencedDeclaration": 499,
14408 "src": "1734:4:2",
14409 "typeDescriptions": {
14410 "typeIdentifier": "t_address",
14411 "typeString": "address"
14412 }
14413 },
14414 {
14415 "argumentTypes": null,
14416 "expression": {
14417 "argumentTypes": null,
14418 "id": 599,
14419 "name": "allPairs",
14420 "nodeType": "Identifier",
14421 "overloadedDeclarations": [],
14422 "referencedDeclaration": 448,
14423 "src": "1740:8:2",
14424 "typeDescriptions": {
14425 "typeIdentifier": "t_array$_t_address_$dyn_storage",
14426 "typeString": "address[] storage ref"
14427 }
14428 },
14429 "id": 600,
14430 "isConstant": false,
14431 "isLValue": false,
14432 "isPure": false,
14433 "lValueRequested": false,
14434 "memberName": "length",
14435 "nodeType": "MemberAccess",
14436 "referencedDeclaration": null,
14437 "src": "1740:15:2",
14438 "typeDescriptions": {
14439 "typeIdentifier": "t_uint256",
14440 "typeString": "uint256"
14441 }
14442 }
14443 ],
14444 "expression": {
14445 "argumentTypes": [
14446 {
14447 "typeIdentifier": "t_address",
14448 "typeString": "address"
14449 },
14450 {
14451 "typeIdentifier": "t_address",
14452 "typeString": "address"
14453 },
14454 {
14455 "typeIdentifier": "t_address",
14456 "typeString": "address"
14457 },
14458 {
14459 "typeIdentifier": "t_uint256",
14460 "typeString": "uint256"
14461 }
14462 ],
14463 "id": 595,
14464 "name": "PairCreated",
14465 "nodeType": "Identifier",
14466 "overloadedDeclarations": [
14467 458
14468 ],
14469 "referencedDeclaration": 458,
14470 "src": "1706:11:2",
14471 "typeDescriptions": {
14472 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
14473 "typeString": "function (address,address,address,uint256)"
14474 }
14475 },
14476 "id": 601,
14477 "isConstant": false,
14478 "isLValue": false,
14479 "isPure": false,
14480 "kind": "functionCall",
14481 "lValueRequested": false,
14482 "names": [],
14483 "nodeType": "FunctionCall",
14484 "src": "1706:50:2",
14485 "tryCall": false,
14486 "typeDescriptions": {
14487 "typeIdentifier": "t_tuple$__$",
14488 "typeString": "tuple()"
14489 }
14490 },
14491 "id": 602,
14492 "nodeType": "EmitStatement",
14493 "src": "1701:55:2"
14494 }
14495 ]
14496 },
14497 "documentation": null,
14498 "functionSelector": "c9c65396",
14499 "id": 604,
14500 "implemented": true,
14501 "kind": "function",
14502 "modifiers": [],
14503 "name": "createPair",
14504 "nodeType": "FunctionDefinition",
14505 "overrides": {
14506 "id": 497,
14507 "nodeType": "OverrideSpecifier",
14508 "overrides": [],
14509 "src": "868:8:2"
14510 },
14511 "parameters": {
14512 "id": 496,
14513 "nodeType": "ParameterList",
14514 "parameters": [
14515 {
14516 "constant": false,
14517 "id": 493,
14518 "mutability": "mutable",
14519 "name": "tokenA",
14520 "nodeType": "VariableDeclaration",
14521 "overrides": null,
14522 "scope": 604,
14523 "src": "827:14:2",
14524 "stateVariable": false,
14525 "storageLocation": "default",
14526 "typeDescriptions": {
14527 "typeIdentifier": "t_address",
14528 "typeString": "address"
14529 },
14530 "typeName": {
14531 "id": 492,
14532 "name": "address",
14533 "nodeType": "ElementaryTypeName",
14534 "src": "827:7:2",
14535 "stateMutability": "nonpayable",
14536 "typeDescriptions": {
14537 "typeIdentifier": "t_address",
14538 "typeString": "address"
14539 }
14540 },
14541 "value": null,
14542 "visibility": "internal"
14543 },
14544 {
14545 "constant": false,
14546 "id": 495,
14547 "mutability": "mutable",
14548 "name": "tokenB",
14549 "nodeType": "VariableDeclaration",
14550 "overrides": null,
14551 "scope": 604,
14552 "src": "843:14:2",
14553 "stateVariable": false,
14554 "storageLocation": "default",
14555 "typeDescriptions": {
14556 "typeIdentifier": "t_address",
14557 "typeString": "address"
14558 },
14559 "typeName": {
14560 "id": 494,
14561 "name": "address",
14562 "nodeType": "ElementaryTypeName",
14563 "src": "843:7:2",
14564 "stateMutability": "nonpayable",
14565 "typeDescriptions": {
14566 "typeIdentifier": "t_address",
14567 "typeString": "address"
14568 }
14569 },
14570 "value": null,
14571 "visibility": "internal"
14572 }
14573 ],
14574 "src": "826:32:2"
14575 },
14576 "returnParameters": {
14577 "id": 500,
14578 "nodeType": "ParameterList",
14579 "parameters": [
14580 {
14581 "constant": false,
14582 "id": 499,
14583 "mutability": "mutable",
14584 "name": "pair",
14585 "nodeType": "VariableDeclaration",
14586 "overrides": null,
14587 "scope": 604,
14588 "src": "886:12:2",
14589 "stateVariable": false,
14590 "storageLocation": "default",
14591 "typeDescriptions": {
14592 "typeIdentifier": "t_address",
14593 "typeString": "address"
14594 },
14595 "typeName": {
14596 "id": 498,
14597 "name": "address",
14598 "nodeType": "ElementaryTypeName",
14599 "src": "886:7:2",
14600 "stateMutability": "nonpayable",
14601 "typeDescriptions": {
14602 "typeIdentifier": "t_address",
14603 "typeString": "address"
14604 }
14605 },
14606 "value": null,
14607 "visibility": "internal"
14608 }
14609 ],
14610 "src": "885:14:2"
14611 },
14612 "scope": 643,
14613 "src": "807:956:2",
14614 "stateMutability": "nonpayable",
14615 "virtual": false,
14616 "visibility": "external"
14617 },
14618 {
14619 "baseFunctions": [
14620 1984
14621 ],
14622 "body": {
14623 "id": 622,
14624 "nodeType": "Block",
14625 "src": "1821:99:2",
14626 "statements": [
14627 {
14628 "expression": {
14629 "argumentTypes": null,
14630 "arguments": [
14631 {
14632 "argumentTypes": null,
14633 "commonType": {
14634 "typeIdentifier": "t_address",
14635 "typeString": "address"
14636 },
14637 "id": 614,
14638 "isConstant": false,
14639 "isLValue": false,
14640 "isPure": false,
14641 "lValueRequested": false,
14642 "leftExpression": {
14643 "argumentTypes": null,
14644 "expression": {
14645 "argumentTypes": null,
14646 "id": 611,
14647 "name": "msg",
14648 "nodeType": "Identifier",
14649 "overloadedDeclarations": [],
14650 "referencedDeclaration": -15,
14651 "src": "1839:3:2",
14652 "typeDescriptions": {
14653 "typeIdentifier": "t_magic_message",
14654 "typeString": "msg"
14655 }
14656 },
14657 "id": 612,
14658 "isConstant": false,
14659 "isLValue": false,
14660 "isPure": false,
14661 "lValueRequested": false,
14662 "memberName": "sender",
14663 "nodeType": "MemberAccess",
14664 "referencedDeclaration": null,
14665 "src": "1839:10:2",
14666 "typeDescriptions": {
14667 "typeIdentifier": "t_address_payable",
14668 "typeString": "address payable"
14669 }
14670 },
14671 "nodeType": "BinaryOperation",
14672 "operator": "==",
14673 "rightExpression": {
14674 "argumentTypes": null,
14675 "id": 613,
14676 "name": "feeToSetter",
14677 "nodeType": "Identifier",
14678 "overloadedDeclarations": [],
14679 "referencedDeclaration": 437,
14680 "src": "1853:11:2",
14681 "typeDescriptions": {
14682 "typeIdentifier": "t_address",
14683 "typeString": "address"
14684 }
14685 },
14686 "src": "1839:25:2",
14687 "typeDescriptions": {
14688 "typeIdentifier": "t_bool",
14689 "typeString": "bool"
14690 }
14691 },
14692 {
14693 "argumentTypes": null,
14694 "hexValue": "556e697377617056323a20464f5242494444454e",
14695 "id": 615,
14696 "isConstant": false,
14697 "isLValue": false,
14698 "isPure": true,
14699 "kind": "string",
14700 "lValueRequested": false,
14701 "nodeType": "Literal",
14702 "src": "1866:22:2",
14703 "subdenomination": null,
14704 "typeDescriptions": {
14705 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
14706 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
14707 },
14708 "value": "UniswapV2: FORBIDDEN"
14709 }
14710 ],
14711 "expression": {
14712 "argumentTypes": [
14713 {
14714 "typeIdentifier": "t_bool",
14715 "typeString": "bool"
14716 },
14717 {
14718 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
14719 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
14720 }
14721 ],
14722 "id": 610,
14723 "name": "require",
14724 "nodeType": "Identifier",
14725 "overloadedDeclarations": [
14726 -18,
14727 -18
14728 ],
14729 "referencedDeclaration": -18,
14730 "src": "1831:7:2",
14731 "typeDescriptions": {
14732 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
14733 "typeString": "function (bool,string memory) pure"
14734 }
14735 },
14736 "id": 616,
14737 "isConstant": false,
14738 "isLValue": false,
14739 "isPure": false,
14740 "kind": "functionCall",
14741 "lValueRequested": false,
14742 "names": [],
14743 "nodeType": "FunctionCall",
14744 "src": "1831:58:2",
14745 "tryCall": false,
14746 "typeDescriptions": {
14747 "typeIdentifier": "t_tuple$__$",
14748 "typeString": "tuple()"
14749 }
14750 },
14751 "id": 617,
14752 "nodeType": "ExpressionStatement",
14753 "src": "1831:58:2"
14754 },
14755 {
14756 "expression": {
14757 "argumentTypes": null,
14758 "id": 620,
14759 "isConstant": false,
14760 "isLValue": false,
14761 "isPure": false,
14762 "lValueRequested": false,
14763 "leftHandSide": {
14764 "argumentTypes": null,
14765 "id": 618,
14766 "name": "feeTo",
14767 "nodeType": "Identifier",
14768 "overloadedDeclarations": [],
14769 "referencedDeclaration": 434,
14770 "src": "1899:5:2",
14771 "typeDescriptions": {
14772 "typeIdentifier": "t_address",
14773 "typeString": "address"
14774 }
14775 },
14776 "nodeType": "Assignment",
14777 "operator": "=",
14778 "rightHandSide": {
14779 "argumentTypes": null,
14780 "id": 619,
14781 "name": "_feeTo",
14782 "nodeType": "Identifier",
14783 "overloadedDeclarations": [],
14784 "referencedDeclaration": 606,
14785 "src": "1907:6:2",
14786 "typeDescriptions": {
14787 "typeIdentifier": "t_address",
14788 "typeString": "address"
14789 }
14790 },
14791 "src": "1899:14:2",
14792 "typeDescriptions": {
14793 "typeIdentifier": "t_address",
14794 "typeString": "address"
14795 }
14796 },
14797 "id": 621,
14798 "nodeType": "ExpressionStatement",
14799 "src": "1899:14:2"
14800 }
14801 ]
14802 },
14803 "documentation": null,
14804 "functionSelector": "f46901ed",
14805 "id": 623,
14806 "implemented": true,
14807 "kind": "function",
14808 "modifiers": [],
14809 "name": "setFeeTo",
14810 "nodeType": "FunctionDefinition",
14811 "overrides": {
14812 "id": 608,
14813 "nodeType": "OverrideSpecifier",
14814 "overrides": [],
14815 "src": "1812:8:2"
14816 },
14817 "parameters": {
14818 "id": 607,
14819 "nodeType": "ParameterList",
14820 "parameters": [
14821 {
14822 "constant": false,
14823 "id": 606,
14824 "mutability": "mutable",
14825 "name": "_feeTo",
14826 "nodeType": "VariableDeclaration",
14827 "overrides": null,
14828 "scope": 623,
14829 "src": "1787:14:2",
14830 "stateVariable": false,
14831 "storageLocation": "default",
14832 "typeDescriptions": {
14833 "typeIdentifier": "t_address",
14834 "typeString": "address"
14835 },
14836 "typeName": {
14837 "id": 605,
14838 "name": "address",
14839 "nodeType": "ElementaryTypeName",
14840 "src": "1787:7:2",
14841 "stateMutability": "nonpayable",
14842 "typeDescriptions": {
14843 "typeIdentifier": "t_address",
14844 "typeString": "address"
14845 }
14846 },
14847 "value": null,
14848 "visibility": "internal"
14849 }
14850 ],
14851 "src": "1786:16:2"
14852 },
14853 "returnParameters": {
14854 "id": 609,
14855 "nodeType": "ParameterList",
14856 "parameters": [],
14857 "src": "1821:0:2"
14858 },
14859 "scope": 643,
14860 "src": "1769:151:2",
14861 "stateMutability": "nonpayable",
14862 "virtual": false,
14863 "visibility": "external"
14864 },
14865 {
14866 "baseFunctions": [
14867 1989
14868 ],
14869 "body": {
14870 "id": 641,
14871 "nodeType": "Block",
14872 "src": "1990:111:2",
14873 "statements": [
14874 {
14875 "expression": {
14876 "argumentTypes": null,
14877 "arguments": [
14878 {
14879 "argumentTypes": null,
14880 "commonType": {
14881 "typeIdentifier": "t_address",
14882 "typeString": "address"
14883 },
14884 "id": 633,
14885 "isConstant": false,
14886 "isLValue": false,
14887 "isPure": false,
14888 "lValueRequested": false,
14889 "leftExpression": {
14890 "argumentTypes": null,
14891 "expression": {
14892 "argumentTypes": null,
14893 "id": 630,
14894 "name": "msg",
14895 "nodeType": "Identifier",
14896 "overloadedDeclarations": [],
14897 "referencedDeclaration": -15,
14898 "src": "2008:3:2",
14899 "typeDescriptions": {
14900 "typeIdentifier": "t_magic_message",
14901 "typeString": "msg"
14902 }
14903 },
14904 "id": 631,
14905 "isConstant": false,
14906 "isLValue": false,
14907 "isPure": false,
14908 "lValueRequested": false,
14909 "memberName": "sender",
14910 "nodeType": "MemberAccess",
14911 "referencedDeclaration": null,
14912 "src": "2008:10:2",
14913 "typeDescriptions": {
14914 "typeIdentifier": "t_address_payable",
14915 "typeString": "address payable"
14916 }
14917 },
14918 "nodeType": "BinaryOperation",
14919 "operator": "==",
14920 "rightExpression": {
14921 "argumentTypes": null,
14922 "id": 632,
14923 "name": "feeToSetter",
14924 "nodeType": "Identifier",
14925 "overloadedDeclarations": [],
14926 "referencedDeclaration": 437,
14927 "src": "2022:11:2",
14928 "typeDescriptions": {
14929 "typeIdentifier": "t_address",
14930 "typeString": "address"
14931 }
14932 },
14933 "src": "2008:25:2",
14934 "typeDescriptions": {
14935 "typeIdentifier": "t_bool",
14936 "typeString": "bool"
14937 }
14938 },
14939 {
14940 "argumentTypes": null,
14941 "hexValue": "556e697377617056323a20464f5242494444454e",
14942 "id": 634,
14943 "isConstant": false,
14944 "isLValue": false,
14945 "isPure": true,
14946 "kind": "string",
14947 "lValueRequested": false,
14948 "nodeType": "Literal",
14949 "src": "2035:22:2",
14950 "subdenomination": null,
14951 "typeDescriptions": {
14952 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
14953 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
14954 },
14955 "value": "UniswapV2: FORBIDDEN"
14956 }
14957 ],
14958 "expression": {
14959 "argumentTypes": [
14960 {
14961 "typeIdentifier": "t_bool",
14962 "typeString": "bool"
14963 },
14964 {
14965 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
14966 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
14967 }
14968 ],
14969 "id": 629,
14970 "name": "require",
14971 "nodeType": "Identifier",
14972 "overloadedDeclarations": [
14973 -18,
14974 -18
14975 ],
14976 "referencedDeclaration": -18,
14977 "src": "2000:7:2",
14978 "typeDescriptions": {
14979 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
14980 "typeString": "function (bool,string memory) pure"
14981 }
14982 },
14983 "id": 635,
14984 "isConstant": false,
14985 "isLValue": false,
14986 "isPure": false,
14987 "kind": "functionCall",
14988 "lValueRequested": false,
14989 "names": [],
14990 "nodeType": "FunctionCall",
14991 "src": "2000:58:2",
14992 "tryCall": false,
14993 "typeDescriptions": {
14994 "typeIdentifier": "t_tuple$__$",
14995 "typeString": "tuple()"
14996 }
14997 },
14998 "id": 636,
14999 "nodeType": "ExpressionStatement",
15000 "src": "2000:58:2"
15001 },
15002 {
15003 "expression": {
15004 "argumentTypes": null,
15005 "id": 639,
15006 "isConstant": false,
15007 "isLValue": false,
15008 "isPure": false,
15009 "lValueRequested": false,
15010 "leftHandSide": {
15011 "argumentTypes": null,
15012 "id": 637,
15013 "name": "feeToSetter",
15014 "nodeType": "Identifier",
15015 "overloadedDeclarations": [],
15016 "referencedDeclaration": 437,
15017 "src": "2068:11:2",
15018 "typeDescriptions": {
15019 "typeIdentifier": "t_address",
15020 "typeString": "address"
15021 }
15022 },
15023 "nodeType": "Assignment",
15024 "operator": "=",
15025 "rightHandSide": {
15026 "argumentTypes": null,
15027 "id": 638,
15028 "name": "_feeToSetter",
15029 "nodeType": "Identifier",
15030 "overloadedDeclarations": [],
15031 "referencedDeclaration": 625,
15032 "src": "2082:12:2",
15033 "typeDescriptions": {
15034 "typeIdentifier": "t_address",
15035 "typeString": "address"
15036 }
15037 },
15038 "src": "2068:26:2",
15039 "typeDescriptions": {
15040 "typeIdentifier": "t_address",
15041 "typeString": "address"
15042 }
15043 },
15044 "id": 640,
15045 "nodeType": "ExpressionStatement",
15046 "src": "2068:26:2"
15047 }
15048 ]
15049 },
15050 "documentation": null,
15051 "functionSelector": "a2e74af6",
15052 "id": 642,
15053 "implemented": true,
15054 "kind": "function",
15055 "modifiers": [],
15056 "name": "setFeeToSetter",
15057 "nodeType": "FunctionDefinition",
15058 "overrides": {
15059 "id": 627,
15060 "nodeType": "OverrideSpecifier",
15061 "overrides": [],
15062 "src": "1981:8:2"
15063 },
15064 "parameters": {
15065 "id": 626,
15066 "nodeType": "ParameterList",
15067 "parameters": [
15068 {
15069 "constant": false,
15070 "id": 625,
15071 "mutability": "mutable",
15072 "name": "_feeToSetter",
15073 "nodeType": "VariableDeclaration",
15074 "overrides": null,
15075 "scope": 642,
15076 "src": "1950:20:2",
15077 "stateVariable": false,
15078 "storageLocation": "default",
15079 "typeDescriptions": {
15080 "typeIdentifier": "t_address",
15081 "typeString": "address"
15082 },
15083 "typeName": {
15084 "id": 624,
15085 "name": "address",
15086 "nodeType": "ElementaryTypeName",
15087 "src": "1950:7:2",
15088 "stateMutability": "nonpayable",
15089 "typeDescriptions": {
15090 "typeIdentifier": "t_address",
15091 "typeString": "address"
15092 }
15093 },
15094 "value": null,
15095 "visibility": "internal"
15096 }
15097 ],
15098 "src": "1949:22:2"
15099 },
15100 "returnParameters": {
15101 "id": 628,
15102 "nodeType": "ParameterList",
15103 "parameters": [],
15104 "src": "1990:0:2"
15105 },
15106 "scope": 643,
15107 "src": "1926:175:2",
15108 "stateMutability": "nonpayable",
15109 "virtual": false,
15110 "visibility": "external"
15111 }
15112 ],
15113 "scope": 644,
15114 "src": "139:1965:2"
15115 }
15116 ],
15117 "src": "37:2068:2"
15118 }
15119 },
15120 "contracts/UniswapV2Pair.sol": {
15121 "id": 3,
15122 "AST": {
15123 "absolutePath": "contracts/UniswapV2Pair.sol",
15124 "exportedSymbols": {
15125 "UniswapV2Pair": [
15126 1711
15127 ]
15128 },
15129 "id": 1712,
15130 "license": "GPL-3.0",
15131 "nodeType": "SourceUnit",
15132 "nodes": [
15133 {
15134 "id": 645,
15135 "literals": [
15136 "solidity",
15137 "=",
15138 "0.6",
15139 ".12"
15140 ],
15141 "nodeType": "PragmaDirective",
15142 "src": "37:24:3"
15143 },
15144 {
15145 "absolutePath": "contracts/UniswapV2ERC20.sol",
15146 "file": "./UniswapV2ERC20.sol",
15147 "id": 646,
15148 "nodeType": "ImportDirective",
15149 "scope": 1712,
15150 "sourceUnit": 426,
15151 "src": "63:30:3",
15152 "symbolAliases": [],
15153 "unitAlias": ""
15154 },
15155 {
15156 "absolutePath": "contracts/libraries/Math.sol",
15157 "file": "./libraries/Math.sol",
15158 "id": 647,
15159 "nodeType": "ImportDirective",
15160 "scope": 1712,
15161 "sourceUnit": 2309,
15162 "src": "94:30:3",
15163 "symbolAliases": [],
15164 "unitAlias": ""
15165 },
15166 {
15167 "absolutePath": "contracts/libraries/UQ112x112.sol",
15168 "file": "./libraries/UQ112x112.sol",
15169 "id": 648,
15170 "nodeType": "ImportDirective",
15171 "scope": 1712,
15172 "sourceUnit": 2428,
15173 "src": "125:35:3",
15174 "symbolAliases": [],
15175 "unitAlias": ""
15176 },
15177 {
15178 "absolutePath": "contracts/interfaces/IERC20Uniswap.sol",
15179 "file": "./interfaces/IERC20Uniswap.sol",
15180 "id": 649,
15181 "nodeType": "ImportDirective",
15182 "scope": 1712,
15183 "sourceUnit": 1796,
15184 "src": "161:40:3",
15185 "symbolAliases": [],
15186 "unitAlias": ""
15187 },
15188 {
15189 "absolutePath": "contracts/interfaces/IUniswapV2Factory.sol",
15190 "file": "./interfaces/IUniswapV2Factory.sol",
15191 "id": 650,
15192 "nodeType": "ImportDirective",
15193 "scope": 1712,
15194 "sourceUnit": 1991,
15195 "src": "202:44:3",
15196 "symbolAliases": [],
15197 "unitAlias": ""
15198 },
15199 {
15200 "absolutePath": "contracts/interfaces/IUniswapV2Callee.sol",
15201 "file": "./interfaces/IUniswapV2Callee.sol",
15202 "id": 651,
15203 "nodeType": "ImportDirective",
15204 "scope": 1712,
15205 "sourceUnit": 1810,
15206 "src": "247:43:3",
15207 "symbolAliases": [],
15208 "unitAlias": ""
15209 },
15210 {
15211 "abstract": false,
15212 "baseContracts": [
15213 {
15214 "arguments": null,
15215 "baseName": {
15216 "contractScope": null,
15217 "id": 652,
15218 "name": "UniswapV2ERC20",
15219 "nodeType": "UserDefinedTypeName",
15220 "referencedDeclaration": 425,
15221 "src": "318:14:3",
15222 "typeDescriptions": {
15223 "typeIdentifier": "t_contract$_UniswapV2ERC20_$425",
15224 "typeString": "contract UniswapV2ERC20"
15225 }
15226 },
15227 "id": 653,
15228 "nodeType": "InheritanceSpecifier",
15229 "src": "318:14:3"
15230 }
15231 ],
15232 "contractDependencies": [
15233 425
15234 ],
15235 "contractKind": "contract",
15236 "documentation": null,
15237 "fullyImplemented": true,
15238 "id": 1711,
15239 "linearizedBaseContracts": [
15240 1711,
15241 425
15242 ],
15243 "name": "UniswapV2Pair",
15244 "nodeType": "ContractDefinition",
15245 "nodes": [
15246 {
15247 "id": 656,
15248 "libraryName": {
15249 "contractScope": null,
15250 "id": 654,
15251 "name": "SafeMathUniswap",
15252 "nodeType": "UserDefinedTypeName",
15253 "referencedDeclaration": 2383,
15254 "src": "345:15:3",
15255 "typeDescriptions": {
15256 "typeIdentifier": "t_contract$_SafeMathUniswap_$2383",
15257 "typeString": "library SafeMathUniswap"
15258 }
15259 },
15260 "nodeType": "UsingForDirective",
15261 "src": "339:32:3",
15262 "typeName": {
15263 "id": 655,
15264 "name": "uint",
15265 "nodeType": "ElementaryTypeName",
15266 "src": "366:4:3",
15267 "typeDescriptions": {
15268 "typeIdentifier": "t_uint256",
15269 "typeString": "uint256"
15270 }
15271 }
15272 },
15273 {
15274 "id": 659,
15275 "libraryName": {
15276 "contractScope": null,
15277 "id": 657,
15278 "name": "UQ112x112",
15279 "nodeType": "UserDefinedTypeName",
15280 "referencedDeclaration": 2427,
15281 "src": "382:9:3",
15282 "typeDescriptions": {
15283 "typeIdentifier": "t_contract$_UQ112x112_$2427",
15284 "typeString": "library UQ112x112"
15285 }
15286 },
15287 "nodeType": "UsingForDirective",
15288 "src": "376:28:3",
15289 "typeName": {
15290 "id": 658,
15291 "name": "uint224",
15292 "nodeType": "ElementaryTypeName",
15293 "src": "396:7:3",
15294 "typeDescriptions": {
15295 "typeIdentifier": "t_uint224",
15296 "typeString": "uint224"
15297 }
15298 }
15299 },
15300 {
15301 "constant": true,
15302 "functionSelector": "ba9a7a56",
15303 "id": 664,
15304 "mutability": "constant",
15305 "name": "MINIMUM_LIQUIDITY",
15306 "nodeType": "VariableDeclaration",
15307 "overrides": null,
15308 "scope": 1711,
15309 "src": "410:46:3",
15310 "stateVariable": true,
15311 "storageLocation": "default",
15312 "typeDescriptions": {
15313 "typeIdentifier": "t_uint256",
15314 "typeString": "uint256"
15315 },
15316 "typeName": {
15317 "id": 660,
15318 "name": "uint",
15319 "nodeType": "ElementaryTypeName",
15320 "src": "410:4:3",
15321 "typeDescriptions": {
15322 "typeIdentifier": "t_uint256",
15323 "typeString": "uint256"
15324 }
15325 },
15326 "value": {
15327 "argumentTypes": null,
15328 "commonType": {
15329 "typeIdentifier": "t_rational_1000_by_1",
15330 "typeString": "int_const 1000"
15331 },
15332 "id": 663,
15333 "isConstant": false,
15334 "isLValue": false,
15335 "isPure": true,
15336 "lValueRequested": false,
15337 "leftExpression": {
15338 "argumentTypes": null,
15339 "hexValue": "3130",
15340 "id": 661,
15341 "isConstant": false,
15342 "isLValue": false,
15343 "isPure": true,
15344 "kind": "number",
15345 "lValueRequested": false,
15346 "nodeType": "Literal",
15347 "src": "451:2:3",
15348 "subdenomination": null,
15349 "typeDescriptions": {
15350 "typeIdentifier": "t_rational_10_by_1",
15351 "typeString": "int_const 10"
15352 },
15353 "value": "10"
15354 },
15355 "nodeType": "BinaryOperation",
15356 "operator": "**",
15357 "rightExpression": {
15358 "argumentTypes": null,
15359 "hexValue": "33",
15360 "id": 662,
15361 "isConstant": false,
15362 "isLValue": false,
15363 "isPure": true,
15364 "kind": "number",
15365 "lValueRequested": false,
15366 "nodeType": "Literal",
15367 "src": "455:1:3",
15368 "subdenomination": null,
15369 "typeDescriptions": {
15370 "typeIdentifier": "t_rational_3_by_1",
15371 "typeString": "int_const 3"
15372 },
15373 "value": "3"
15374 },
15375 "src": "451:5:3",
15376 "typeDescriptions": {
15377 "typeIdentifier": "t_rational_1000_by_1",
15378 "typeString": "int_const 1000"
15379 }
15380 },
15381 "visibility": "public"
15382 },
15383 {
15384 "constant": true,
15385 "id": 675,
15386 "mutability": "constant",
15387 "name": "SELECTOR",
15388 "nodeType": "VariableDeclaration",
15389 "overrides": null,
15390 "scope": 1711,
15391 "src": "462:88:3",
15392 "stateVariable": true,
15393 "storageLocation": "default",
15394 "typeDescriptions": {
15395 "typeIdentifier": "t_bytes4",
15396 "typeString": "bytes4"
15397 },
15398 "typeName": {
15399 "id": 665,
15400 "name": "bytes4",
15401 "nodeType": "ElementaryTypeName",
15402 "src": "462:6:3",
15403 "typeDescriptions": {
15404 "typeIdentifier": "t_bytes4",
15405 "typeString": "bytes4"
15406 }
15407 },
15408 "value": {
15409 "argumentTypes": null,
15410 "arguments": [
15411 {
15412 "argumentTypes": null,
15413 "arguments": [
15414 {
15415 "argumentTypes": null,
15416 "arguments": [
15417 {
15418 "argumentTypes": null,
15419 "hexValue": "7472616e7366657228616464726573732c75696e7432353629",
15420 "id": 671,
15421 "isConstant": false,
15422 "isLValue": false,
15423 "isPure": true,
15424 "kind": "string",
15425 "lValueRequested": false,
15426 "nodeType": "Literal",
15427 "src": "520:27:3",
15428 "subdenomination": null,
15429 "typeDescriptions": {
15430 "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
15431 "typeString": "literal_string \"transfer(address,uint256)\""
15432 },
15433 "value": "transfer(address,uint256)"
15434 }
15435 ],
15436 "expression": {
15437 "argumentTypes": [
15438 {
15439 "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
15440 "typeString": "literal_string \"transfer(address,uint256)\""
15441 }
15442 ],
15443 "id": 670,
15444 "isConstant": false,
15445 "isLValue": false,
15446 "isPure": true,
15447 "lValueRequested": false,
15448 "nodeType": "ElementaryTypeNameExpression",
15449 "src": "514:5:3",
15450 "typeDescriptions": {
15451 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
15452 "typeString": "type(bytes storage pointer)"
15453 },
15454 "typeName": {
15455 "id": 669,
15456 "name": "bytes",
15457 "nodeType": "ElementaryTypeName",
15458 "src": "514:5:3",
15459 "typeDescriptions": {
15460 "typeIdentifier": null,
15461 "typeString": null
15462 }
15463 }
15464 },
15465 "id": 672,
15466 "isConstant": false,
15467 "isLValue": false,
15468 "isPure": true,
15469 "kind": "typeConversion",
15470 "lValueRequested": false,
15471 "names": [],
15472 "nodeType": "FunctionCall",
15473 "src": "514:34:3",
15474 "tryCall": false,
15475 "typeDescriptions": {
15476 "typeIdentifier": "t_bytes_memory_ptr",
15477 "typeString": "bytes memory"
15478 }
15479 }
15480 ],
15481 "expression": {
15482 "argumentTypes": [
15483 {
15484 "typeIdentifier": "t_bytes_memory_ptr",
15485 "typeString": "bytes memory"
15486 }
15487 ],
15488 "id": 668,
15489 "name": "keccak256",
15490 "nodeType": "Identifier",
15491 "overloadedDeclarations": [],
15492 "referencedDeclaration": -8,
15493 "src": "504:9:3",
15494 "typeDescriptions": {
15495 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
15496 "typeString": "function (bytes memory) pure returns (bytes32)"
15497 }
15498 },
15499 "id": 673,
15500 "isConstant": false,
15501 "isLValue": false,
15502 "isPure": true,
15503 "kind": "functionCall",
15504 "lValueRequested": false,
15505 "names": [],
15506 "nodeType": "FunctionCall",
15507 "src": "504:45:3",
15508 "tryCall": false,
15509 "typeDescriptions": {
15510 "typeIdentifier": "t_bytes32",
15511 "typeString": "bytes32"
15512 }
15513 }
15514 ],
15515 "expression": {
15516 "argumentTypes": [
15517 {
15518 "typeIdentifier": "t_bytes32",
15519 "typeString": "bytes32"
15520 }
15521 ],
15522 "id": 667,
15523 "isConstant": false,
15524 "isLValue": false,
15525 "isPure": true,
15526 "lValueRequested": false,
15527 "nodeType": "ElementaryTypeNameExpression",
15528 "src": "497:6:3",
15529 "typeDescriptions": {
15530 "typeIdentifier": "t_type$_t_bytes4_$",
15531 "typeString": "type(bytes4)"
15532 },
15533 "typeName": {
15534 "id": 666,
15535 "name": "bytes4",
15536 "nodeType": "ElementaryTypeName",
15537 "src": "497:6:3",
15538 "typeDescriptions": {
15539 "typeIdentifier": null,
15540 "typeString": null
15541 }
15542 }
15543 },
15544 "id": 674,
15545 "isConstant": false,
15546 "isLValue": false,
15547 "isPure": true,
15548 "kind": "typeConversion",
15549 "lValueRequested": false,
15550 "names": [],
15551 "nodeType": "FunctionCall",
15552 "src": "497:53:3",
15553 "tryCall": false,
15554 "typeDescriptions": {
15555 "typeIdentifier": "t_bytes4",
15556 "typeString": "bytes4"
15557 }
15558 },
15559 "visibility": "private"
15560 },
15561 {
15562 "constant": false,
15563 "functionSelector": "c45a0155",
15564 "id": 677,
15565 "mutability": "mutable",
15566 "name": "factory",
15567 "nodeType": "VariableDeclaration",
15568 "overrides": null,
15569 "scope": 1711,
15570 "src": "557:22:3",
15571 "stateVariable": true,
15572 "storageLocation": "default",
15573 "typeDescriptions": {
15574 "typeIdentifier": "t_address",
15575 "typeString": "address"
15576 },
15577 "typeName": {
15578 "id": 676,
15579 "name": "address",
15580 "nodeType": "ElementaryTypeName",
15581 "src": "557:7:3",
15582 "stateMutability": "nonpayable",
15583 "typeDescriptions": {
15584 "typeIdentifier": "t_address",
15585 "typeString": "address"
15586 }
15587 },
15588 "value": null,
15589 "visibility": "public"
15590 },
15591 {
15592 "constant": false,
15593 "functionSelector": "0dfe1681",
15594 "id": 679,
15595 "mutability": "mutable",
15596 "name": "token0",
15597 "nodeType": "VariableDeclaration",
15598 "overrides": null,
15599 "scope": 1711,
15600 "src": "585:21:3",
15601 "stateVariable": true,
15602 "storageLocation": "default",
15603 "typeDescriptions": {
15604 "typeIdentifier": "t_address",
15605 "typeString": "address"
15606 },
15607 "typeName": {
15608 "id": 678,
15609 "name": "address",
15610 "nodeType": "ElementaryTypeName",
15611 "src": "585:7:3",
15612 "stateMutability": "nonpayable",
15613 "typeDescriptions": {
15614 "typeIdentifier": "t_address",
15615 "typeString": "address"
15616 }
15617 },
15618 "value": null,
15619 "visibility": "public"
15620 },
15621 {
15622 "constant": false,
15623 "functionSelector": "d21220a7",
15624 "id": 681,
15625 "mutability": "mutable",
15626 "name": "token1",
15627 "nodeType": "VariableDeclaration",
15628 "overrides": null,
15629 "scope": 1711,
15630 "src": "612:21:3",
15631 "stateVariable": true,
15632 "storageLocation": "default",
15633 "typeDescriptions": {
15634 "typeIdentifier": "t_address",
15635 "typeString": "address"
15636 },
15637 "typeName": {
15638 "id": 680,
15639 "name": "address",
15640 "nodeType": "ElementaryTypeName",
15641 "src": "612:7:3",
15642 "stateMutability": "nonpayable",
15643 "typeDescriptions": {
15644 "typeIdentifier": "t_address",
15645 "typeString": "address"
15646 }
15647 },
15648 "value": null,
15649 "visibility": "public"
15650 },
15651 {
15652 "constant": false,
15653 "id": 683,
15654 "mutability": "mutable",
15655 "name": "reserve0",
15656 "nodeType": "VariableDeclaration",
15657 "overrides": null,
15658 "scope": 1711,
15659 "src": "640:24:3",
15660 "stateVariable": true,
15661 "storageLocation": "default",
15662 "typeDescriptions": {
15663 "typeIdentifier": "t_uint112",
15664 "typeString": "uint112"
15665 },
15666 "typeName": {
15667 "id": 682,
15668 "name": "uint112",
15669 "nodeType": "ElementaryTypeName",
15670 "src": "640:7:3",
15671 "typeDescriptions": {
15672 "typeIdentifier": "t_uint112",
15673 "typeString": "uint112"
15674 }
15675 },
15676 "value": null,
15677 "visibility": "private"
15678 },
15679 {
15680 "constant": false,
15681 "id": 685,
15682 "mutability": "mutable",
15683 "name": "reserve1",
15684 "nodeType": "VariableDeclaration",
15685 "overrides": null,
15686 "scope": 1711,
15687 "src": "736:24:3",
15688 "stateVariable": true,
15689 "storageLocation": "default",
15690 "typeDescriptions": {
15691 "typeIdentifier": "t_uint112",
15692 "typeString": "uint112"
15693 },
15694 "typeName": {
15695 "id": 684,
15696 "name": "uint112",
15697 "nodeType": "ElementaryTypeName",
15698 "src": "736:7:3",
15699 "typeDescriptions": {
15700 "typeIdentifier": "t_uint112",
15701 "typeString": "uint112"
15702 }
15703 },
15704 "value": null,
15705 "visibility": "private"
15706 },
15707 {
15708 "constant": false,
15709 "id": 687,
15710 "mutability": "mutable",
15711 "name": "blockTimestampLast",
15712 "nodeType": "VariableDeclaration",
15713 "overrides": null,
15714 "scope": 1711,
15715 "src": "832:34:3",
15716 "stateVariable": true,
15717 "storageLocation": "default",
15718 "typeDescriptions": {
15719 "typeIdentifier": "t_uint32",
15720 "typeString": "uint32"
15721 },
15722 "typeName": {
15723 "id": 686,
15724 "name": "uint32",
15725 "nodeType": "ElementaryTypeName",
15726 "src": "832:6:3",
15727 "typeDescriptions": {
15728 "typeIdentifier": "t_uint32",
15729 "typeString": "uint32"
15730 }
15731 },
15732 "value": null,
15733 "visibility": "private"
15734 },
15735 {
15736 "constant": false,
15737 "functionSelector": "5909c0d5",
15738 "id": 689,
15739 "mutability": "mutable",
15740 "name": "price0CumulativeLast",
15741 "nodeType": "VariableDeclaration",
15742 "overrides": null,
15743 "scope": 1711,
15744 "src": "929:32:3",
15745 "stateVariable": true,
15746 "storageLocation": "default",
15747 "typeDescriptions": {
15748 "typeIdentifier": "t_uint256",
15749 "typeString": "uint256"
15750 },
15751 "typeName": {
15752 "id": 688,
15753 "name": "uint",
15754 "nodeType": "ElementaryTypeName",
15755 "src": "929:4:3",
15756 "typeDescriptions": {
15757 "typeIdentifier": "t_uint256",
15758 "typeString": "uint256"
15759 }
15760 },
15761 "value": null,
15762 "visibility": "public"
15763 },
15764 {
15765 "constant": false,
15766 "functionSelector": "5a3d5493",
15767 "id": 691,
15768 "mutability": "mutable",
15769 "name": "price1CumulativeLast",
15770 "nodeType": "VariableDeclaration",
15771 "overrides": null,
15772 "scope": 1711,
15773 "src": "967:32:3",
15774 "stateVariable": true,
15775 "storageLocation": "default",
15776 "typeDescriptions": {
15777 "typeIdentifier": "t_uint256",
15778 "typeString": "uint256"
15779 },
15780 "typeName": {
15781 "id": 690,
15782 "name": "uint",
15783 "nodeType": "ElementaryTypeName",
15784 "src": "967:4:3",
15785 "typeDescriptions": {
15786 "typeIdentifier": "t_uint256",
15787 "typeString": "uint256"
15788 }
15789 },
15790 "value": null,
15791 "visibility": "public"
15792 },
15793 {
15794 "constant": false,
15795 "functionSelector": "7464fc3d",
15796 "id": 693,
15797 "mutability": "mutable",
15798 "name": "kLast",
15799 "nodeType": "VariableDeclaration",
15800 "overrides": null,
15801 "scope": 1711,
15802 "src": "1005:17:3",
15803 "stateVariable": true,
15804 "storageLocation": "default",
15805 "typeDescriptions": {
15806 "typeIdentifier": "t_uint256",
15807 "typeString": "uint256"
15808 },
15809 "typeName": {
15810 "id": 692,
15811 "name": "uint",
15812 "nodeType": "ElementaryTypeName",
15813 "src": "1005:4:3",
15814 "typeDescriptions": {
15815 "typeIdentifier": "t_uint256",
15816 "typeString": "uint256"
15817 }
15818 },
15819 "value": null,
15820 "visibility": "public"
15821 },
15822 {
15823 "constant": false,
15824 "id": 696,
15825 "mutability": "mutable",
15826 "name": "unlocked",
15827 "nodeType": "VariableDeclaration",
15828 "overrides": null,
15829 "scope": 1711,
15830 "src": "1109:25:3",
15831 "stateVariable": true,
15832 "storageLocation": "default",
15833 "typeDescriptions": {
15834 "typeIdentifier": "t_uint256",
15835 "typeString": "uint256"
15836 },
15837 "typeName": {
15838 "id": 694,
15839 "name": "uint",
15840 "nodeType": "ElementaryTypeName",
15841 "src": "1109:4:3",
15842 "typeDescriptions": {
15843 "typeIdentifier": "t_uint256",
15844 "typeString": "uint256"
15845 }
15846 },
15847 "value": {
15848 "argumentTypes": null,
15849 "hexValue": "31",
15850 "id": 695,
15851 "isConstant": false,
15852 "isLValue": false,
15853 "isPure": true,
15854 "kind": "number",
15855 "lValueRequested": false,
15856 "nodeType": "Literal",
15857 "src": "1133:1:3",
15858 "subdenomination": null,
15859 "typeDescriptions": {
15860 "typeIdentifier": "t_rational_1_by_1",
15861 "typeString": "int_const 1"
15862 },
15863 "value": "1"
15864 },
15865 "visibility": "private"
15866 },
15867 {
15868 "body": {
15869 "id": 714,
15870 "nodeType": "Block",
15871 "src": "1156:115:3",
15872 "statements": [
15873 {
15874 "expression": {
15875 "argumentTypes": null,
15876 "arguments": [
15877 {
15878 "argumentTypes": null,
15879 "commonType": {
15880 "typeIdentifier": "t_uint256",
15881 "typeString": "uint256"
15882 },
15883 "id": 701,
15884 "isConstant": false,
15885 "isLValue": false,
15886 "isPure": false,
15887 "lValueRequested": false,
15888 "leftExpression": {
15889 "argumentTypes": null,
15890 "id": 699,
15891 "name": "unlocked",
15892 "nodeType": "Identifier",
15893 "overloadedDeclarations": [],
15894 "referencedDeclaration": 696,
15895 "src": "1174:8:3",
15896 "typeDescriptions": {
15897 "typeIdentifier": "t_uint256",
15898 "typeString": "uint256"
15899 }
15900 },
15901 "nodeType": "BinaryOperation",
15902 "operator": "==",
15903 "rightExpression": {
15904 "argumentTypes": null,
15905 "hexValue": "31",
15906 "id": 700,
15907 "isConstant": false,
15908 "isLValue": false,
15909 "isPure": true,
15910 "kind": "number",
15911 "lValueRequested": false,
15912 "nodeType": "Literal",
15913 "src": "1186:1:3",
15914 "subdenomination": null,
15915 "typeDescriptions": {
15916 "typeIdentifier": "t_rational_1_by_1",
15917 "typeString": "int_const 1"
15918 },
15919 "value": "1"
15920 },
15921 "src": "1174:13:3",
15922 "typeDescriptions": {
15923 "typeIdentifier": "t_bool",
15924 "typeString": "bool"
15925 }
15926 },
15927 {
15928 "argumentTypes": null,
15929 "hexValue": "556e697377617056323a204c4f434b4544",
15930 "id": 702,
15931 "isConstant": false,
15932 "isLValue": false,
15933 "isPure": true,
15934 "kind": "string",
15935 "lValueRequested": false,
15936 "nodeType": "Literal",
15937 "src": "1189:19:3",
15938 "subdenomination": null,
15939 "typeDescriptions": {
15940 "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a",
15941 "typeString": "literal_string \"UniswapV2: LOCKED\""
15942 },
15943 "value": "UniswapV2: LOCKED"
15944 }
15945 ],
15946 "expression": {
15947 "argumentTypes": [
15948 {
15949 "typeIdentifier": "t_bool",
15950 "typeString": "bool"
15951 },
15952 {
15953 "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a",
15954 "typeString": "literal_string \"UniswapV2: LOCKED\""
15955 }
15956 ],
15957 "id": 698,
15958 "name": "require",
15959 "nodeType": "Identifier",
15960 "overloadedDeclarations": [
15961 -18,
15962 -18
15963 ],
15964 "referencedDeclaration": -18,
15965 "src": "1166:7:3",
15966 "typeDescriptions": {
15967 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
15968 "typeString": "function (bool,string memory) pure"
15969 }
15970 },
15971 "id": 703,
15972 "isConstant": false,
15973 "isLValue": false,
15974 "isPure": false,
15975 "kind": "functionCall",
15976 "lValueRequested": false,
15977 "names": [],
15978 "nodeType": "FunctionCall",
15979 "src": "1166:43:3",
15980 "tryCall": false,
15981 "typeDescriptions": {
15982 "typeIdentifier": "t_tuple$__$",
15983 "typeString": "tuple()"
15984 }
15985 },
15986 "id": 704,
15987 "nodeType": "ExpressionStatement",
15988 "src": "1166:43:3"
15989 },
15990 {
15991 "expression": {
15992 "argumentTypes": null,
15993 "id": 707,
15994 "isConstant": false,
15995 "isLValue": false,
15996 "isPure": false,
15997 "lValueRequested": false,
15998 "leftHandSide": {
15999 "argumentTypes": null,
16000 "id": 705,
16001 "name": "unlocked",
16002 "nodeType": "Identifier",
16003 "overloadedDeclarations": [],
16004 "referencedDeclaration": 696,
16005 "src": "1219:8:3",
16006 "typeDescriptions": {
16007 "typeIdentifier": "t_uint256",
16008 "typeString": "uint256"
16009 }
16010 },
16011 "nodeType": "Assignment",
16012 "operator": "=",
16013 "rightHandSide": {
16014 "argumentTypes": null,
16015 "hexValue": "30",
16016 "id": 706,
16017 "isConstant": false,
16018 "isLValue": false,
16019 "isPure": true,
16020 "kind": "number",
16021 "lValueRequested": false,
16022 "nodeType": "Literal",
16023 "src": "1230:1:3",
16024 "subdenomination": null,
16025 "typeDescriptions": {
16026 "typeIdentifier": "t_rational_0_by_1",
16027 "typeString": "int_const 0"
16028 },
16029 "value": "0"
16030 },
16031 "src": "1219:12:3",
16032 "typeDescriptions": {
16033 "typeIdentifier": "t_uint256",
16034 "typeString": "uint256"
16035 }
16036 },
16037 "id": 708,
16038 "nodeType": "ExpressionStatement",
16039 "src": "1219:12:3"
16040 },
16041 {
16042 "id": 709,
16043 "nodeType": "PlaceholderStatement",
16044 "src": "1241:1:3"
16045 },
16046 {
16047 "expression": {
16048 "argumentTypes": null,
16049 "id": 712,
16050 "isConstant": false,
16051 "isLValue": false,
16052 "isPure": false,
16053 "lValueRequested": false,
16054 "leftHandSide": {
16055 "argumentTypes": null,
16056 "id": 710,
16057 "name": "unlocked",
16058 "nodeType": "Identifier",
16059 "overloadedDeclarations": [],
16060 "referencedDeclaration": 696,
16061 "src": "1252:8:3",
16062 "typeDescriptions": {
16063 "typeIdentifier": "t_uint256",
16064 "typeString": "uint256"
16065 }
16066 },
16067 "nodeType": "Assignment",
16068 "operator": "=",
16069 "rightHandSide": {
16070 "argumentTypes": null,
16071 "hexValue": "31",
16072 "id": 711,
16073 "isConstant": false,
16074 "isLValue": false,
16075 "isPure": true,
16076 "kind": "number",
16077 "lValueRequested": false,
16078 "nodeType": "Literal",
16079 "src": "1263:1:3",
16080 "subdenomination": null,
16081 "typeDescriptions": {
16082 "typeIdentifier": "t_rational_1_by_1",
16083 "typeString": "int_const 1"
16084 },
16085 "value": "1"
16086 },
16087 "src": "1252:12:3",
16088 "typeDescriptions": {
16089 "typeIdentifier": "t_uint256",
16090 "typeString": "uint256"
16091 }
16092 },
16093 "id": 713,
16094 "nodeType": "ExpressionStatement",
16095 "src": "1252:12:3"
16096 }
16097 ]
16098 },
16099 "documentation": null,
16100 "id": 715,
16101 "name": "lock",
16102 "nodeType": "ModifierDefinition",
16103 "overrides": null,
16104 "parameters": {
16105 "id": 697,
16106 "nodeType": "ParameterList",
16107 "parameters": [],
16108 "src": "1153:2:3"
16109 },
16110 "src": "1140:131:3",
16111 "virtual": false,
16112 "visibility": "internal"
16113 },
16114 {
16115 "body": {
16116 "id": 736,
16117 "nodeType": "Block",
16118 "src": "1387:117:3",
16119 "statements": [
16120 {
16121 "expression": {
16122 "argumentTypes": null,
16123 "id": 726,
16124 "isConstant": false,
16125 "isLValue": false,
16126 "isPure": false,
16127 "lValueRequested": false,
16128 "leftHandSide": {
16129 "argumentTypes": null,
16130 "id": 724,
16131 "name": "_reserve0",
16132 "nodeType": "Identifier",
16133 "overloadedDeclarations": [],
16134 "referencedDeclaration": 718,
16135 "src": "1397:9:3",
16136 "typeDescriptions": {
16137 "typeIdentifier": "t_uint112",
16138 "typeString": "uint112"
16139 }
16140 },
16141 "nodeType": "Assignment",
16142 "operator": "=",
16143 "rightHandSide": {
16144 "argumentTypes": null,
16145 "id": 725,
16146 "name": "reserve0",
16147 "nodeType": "Identifier",
16148 "overloadedDeclarations": [],
16149 "referencedDeclaration": 683,
16150 "src": "1409:8:3",
16151 "typeDescriptions": {
16152 "typeIdentifier": "t_uint112",
16153 "typeString": "uint112"
16154 }
16155 },
16156 "src": "1397:20:3",
16157 "typeDescriptions": {
16158 "typeIdentifier": "t_uint112",
16159 "typeString": "uint112"
16160 }
16161 },
16162 "id": 727,
16163 "nodeType": "ExpressionStatement",
16164 "src": "1397:20:3"
16165 },
16166 {
16167 "expression": {
16168 "argumentTypes": null,
16169 "id": 730,
16170 "isConstant": false,
16171 "isLValue": false,
16172 "isPure": false,
16173 "lValueRequested": false,
16174 "leftHandSide": {
16175 "argumentTypes": null,
16176 "id": 728,
16177 "name": "_reserve1",
16178 "nodeType": "Identifier",
16179 "overloadedDeclarations": [],
16180 "referencedDeclaration": 720,
16181 "src": "1427:9:3",
16182 "typeDescriptions": {
16183 "typeIdentifier": "t_uint112",
16184 "typeString": "uint112"
16185 }
16186 },
16187 "nodeType": "Assignment",
16188 "operator": "=",
16189 "rightHandSide": {
16190 "argumentTypes": null,
16191 "id": 729,
16192 "name": "reserve1",
16193 "nodeType": "Identifier",
16194 "overloadedDeclarations": [],
16195 "referencedDeclaration": 685,
16196 "src": "1439:8:3",
16197 "typeDescriptions": {
16198 "typeIdentifier": "t_uint112",
16199 "typeString": "uint112"
16200 }
16201 },
16202 "src": "1427:20:3",
16203 "typeDescriptions": {
16204 "typeIdentifier": "t_uint112",
16205 "typeString": "uint112"
16206 }
16207 },
16208 "id": 731,
16209 "nodeType": "ExpressionStatement",
16210 "src": "1427:20:3"
16211 },
16212 {
16213 "expression": {
16214 "argumentTypes": null,
16215 "id": 734,
16216 "isConstant": false,
16217 "isLValue": false,
16218 "isPure": false,
16219 "lValueRequested": false,
16220 "leftHandSide": {
16221 "argumentTypes": null,
16222 "id": 732,
16223 "name": "_blockTimestampLast",
16224 "nodeType": "Identifier",
16225 "overloadedDeclarations": [],
16226 "referencedDeclaration": 722,
16227 "src": "1457:19:3",
16228 "typeDescriptions": {
16229 "typeIdentifier": "t_uint32",
16230 "typeString": "uint32"
16231 }
16232 },
16233 "nodeType": "Assignment",
16234 "operator": "=",
16235 "rightHandSide": {
16236 "argumentTypes": null,
16237 "id": 733,
16238 "name": "blockTimestampLast",
16239 "nodeType": "Identifier",
16240 "overloadedDeclarations": [],
16241 "referencedDeclaration": 687,
16242 "src": "1479:18:3",
16243 "typeDescriptions": {
16244 "typeIdentifier": "t_uint32",
16245 "typeString": "uint32"
16246 }
16247 },
16248 "src": "1457:40:3",
16249 "typeDescriptions": {
16250 "typeIdentifier": "t_uint32",
16251 "typeString": "uint32"
16252 }
16253 },
16254 "id": 735,
16255 "nodeType": "ExpressionStatement",
16256 "src": "1457:40:3"
16257 }
16258 ]
16259 },
16260 "documentation": null,
16261 "functionSelector": "0902f1ac",
16262 "id": 737,
16263 "implemented": true,
16264 "kind": "function",
16265 "modifiers": [],
16266 "name": "getReserves",
16267 "nodeType": "FunctionDefinition",
16268 "overrides": null,
16269 "parameters": {
16270 "id": 716,
16271 "nodeType": "ParameterList",
16272 "parameters": [],
16273 "src": "1297:2:3"
16274 },
16275 "returnParameters": {
16276 "id": 723,
16277 "nodeType": "ParameterList",
16278 "parameters": [
16279 {
16280 "constant": false,
16281 "id": 718,
16282 "mutability": "mutable",
16283 "name": "_reserve0",
16284 "nodeType": "VariableDeclaration",
16285 "overrides": null,
16286 "scope": 737,
16287 "src": "1321:17:3",
16288 "stateVariable": false,
16289 "storageLocation": "default",
16290 "typeDescriptions": {
16291 "typeIdentifier": "t_uint112",
16292 "typeString": "uint112"
16293 },
16294 "typeName": {
16295 "id": 717,
16296 "name": "uint112",
16297 "nodeType": "ElementaryTypeName",
16298 "src": "1321:7:3",
16299 "typeDescriptions": {
16300 "typeIdentifier": "t_uint112",
16301 "typeString": "uint112"
16302 }
16303 },
16304 "value": null,
16305 "visibility": "internal"
16306 },
16307 {
16308 "constant": false,
16309 "id": 720,
16310 "mutability": "mutable",
16311 "name": "_reserve1",
16312 "nodeType": "VariableDeclaration",
16313 "overrides": null,
16314 "scope": 737,
16315 "src": "1340:17:3",
16316 "stateVariable": false,
16317 "storageLocation": "default",
16318 "typeDescriptions": {
16319 "typeIdentifier": "t_uint112",
16320 "typeString": "uint112"
16321 },
16322 "typeName": {
16323 "id": 719,
16324 "name": "uint112",
16325 "nodeType": "ElementaryTypeName",
16326 "src": "1340:7:3",
16327 "typeDescriptions": {
16328 "typeIdentifier": "t_uint112",
16329 "typeString": "uint112"
16330 }
16331 },
16332 "value": null,
16333 "visibility": "internal"
16334 },
16335 {
16336 "constant": false,
16337 "id": 722,
16338 "mutability": "mutable",
16339 "name": "_blockTimestampLast",
16340 "nodeType": "VariableDeclaration",
16341 "overrides": null,
16342 "scope": 737,
16343 "src": "1359:26:3",
16344 "stateVariable": false,
16345 "storageLocation": "default",
16346 "typeDescriptions": {
16347 "typeIdentifier": "t_uint32",
16348 "typeString": "uint32"
16349 },
16350 "typeName": {
16351 "id": 721,
16352 "name": "uint32",
16353 "nodeType": "ElementaryTypeName",
16354 "src": "1359:6:3",
16355 "typeDescriptions": {
16356 "typeIdentifier": "t_uint32",
16357 "typeString": "uint32"
16358 }
16359 },
16360 "value": null,
16361 "visibility": "internal"
16362 }
16363 ],
16364 "src": "1320:66:3"
16365 },
16366 "scope": 1711,
16367 "src": "1277:227:3",
16368 "stateMutability": "view",
16369 "virtual": false,
16370 "visibility": "public"
16371 },
16372 {
16373 "body": {
16374 "id": 779,
16375 "nodeType": "Block",
16376 "src": "1580:214:3",
16377 "statements": [
16378 {
16379 "assignments": [
16380 747,
16381 749
16382 ],
16383 "declarations": [
16384 {
16385 "constant": false,
16386 "id": 747,
16387 "mutability": "mutable",
16388 "name": "success",
16389 "nodeType": "VariableDeclaration",
16390 "overrides": null,
16391 "scope": 779,
16392 "src": "1591:12:3",
16393 "stateVariable": false,
16394 "storageLocation": "default",
16395 "typeDescriptions": {
16396 "typeIdentifier": "t_bool",
16397 "typeString": "bool"
16398 },
16399 "typeName": {
16400 "id": 746,
16401 "name": "bool",
16402 "nodeType": "ElementaryTypeName",
16403 "src": "1591:4:3",
16404 "typeDescriptions": {
16405 "typeIdentifier": "t_bool",
16406 "typeString": "bool"
16407 }
16408 },
16409 "value": null,
16410 "visibility": "internal"
16411 },
16412 {
16413 "constant": false,
16414 "id": 749,
16415 "mutability": "mutable",
16416 "name": "data",
16417 "nodeType": "VariableDeclaration",
16418 "overrides": null,
16419 "scope": 779,
16420 "src": "1605:17:3",
16421 "stateVariable": false,
16422 "storageLocation": "memory",
16423 "typeDescriptions": {
16424 "typeIdentifier": "t_bytes_memory_ptr",
16425 "typeString": "bytes"
16426 },
16427 "typeName": {
16428 "id": 748,
16429 "name": "bytes",
16430 "nodeType": "ElementaryTypeName",
16431 "src": "1605:5:3",
16432 "typeDescriptions": {
16433 "typeIdentifier": "t_bytes_storage_ptr",
16434 "typeString": "bytes"
16435 }
16436 },
16437 "value": null,
16438 "visibility": "internal"
16439 }
16440 ],
16441 "id": 759,
16442 "initialValue": {
16443 "argumentTypes": null,
16444 "arguments": [
16445 {
16446 "argumentTypes": null,
16447 "arguments": [
16448 {
16449 "argumentTypes": null,
16450 "id": 754,
16451 "name": "SELECTOR",
16452 "nodeType": "Identifier",
16453 "overloadedDeclarations": [],
16454 "referencedDeclaration": 675,
16455 "src": "1660:8:3",
16456 "typeDescriptions": {
16457 "typeIdentifier": "t_bytes4",
16458 "typeString": "bytes4"
16459 }
16460 },
16461 {
16462 "argumentTypes": null,
16463 "id": 755,
16464 "name": "to",
16465 "nodeType": "Identifier",
16466 "overloadedDeclarations": [],
16467 "referencedDeclaration": 741,
16468 "src": "1670:2:3",
16469 "typeDescriptions": {
16470 "typeIdentifier": "t_address",
16471 "typeString": "address"
16472 }
16473 },
16474 {
16475 "argumentTypes": null,
16476 "id": 756,
16477 "name": "value",
16478 "nodeType": "Identifier",
16479 "overloadedDeclarations": [],
16480 "referencedDeclaration": 743,
16481 "src": "1674:5:3",
16482 "typeDescriptions": {
16483 "typeIdentifier": "t_uint256",
16484 "typeString": "uint256"
16485 }
16486 }
16487 ],
16488 "expression": {
16489 "argumentTypes": [
16490 {
16491 "typeIdentifier": "t_bytes4",
16492 "typeString": "bytes4"
16493 },
16494 {
16495 "typeIdentifier": "t_address",
16496 "typeString": "address"
16497 },
16498 {
16499 "typeIdentifier": "t_uint256",
16500 "typeString": "uint256"
16501 }
16502 ],
16503 "expression": {
16504 "argumentTypes": null,
16505 "id": 752,
16506 "name": "abi",
16507 "nodeType": "Identifier",
16508 "overloadedDeclarations": [],
16509 "referencedDeclaration": -1,
16510 "src": "1637:3:3",
16511 "typeDescriptions": {
16512 "typeIdentifier": "t_magic_abi",
16513 "typeString": "abi"
16514 }
16515 },
16516 "id": 753,
16517 "isConstant": false,
16518 "isLValue": false,
16519 "isPure": true,
16520 "lValueRequested": false,
16521 "memberName": "encodeWithSelector",
16522 "nodeType": "MemberAccess",
16523 "referencedDeclaration": null,
16524 "src": "1637:22:3",
16525 "typeDescriptions": {
16526 "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
16527 "typeString": "function (bytes4) pure returns (bytes memory)"
16528 }
16529 },
16530 "id": 757,
16531 "isConstant": false,
16532 "isLValue": false,
16533 "isPure": false,
16534 "kind": "functionCall",
16535 "lValueRequested": false,
16536 "names": [],
16537 "nodeType": "FunctionCall",
16538 "src": "1637:43:3",
16539 "tryCall": false,
16540 "typeDescriptions": {
16541 "typeIdentifier": "t_bytes_memory_ptr",
16542 "typeString": "bytes memory"
16543 }
16544 }
16545 ],
16546 "expression": {
16547 "argumentTypes": [
16548 {
16549 "typeIdentifier": "t_bytes_memory_ptr",
16550 "typeString": "bytes memory"
16551 }
16552 ],
16553 "expression": {
16554 "argumentTypes": null,
16555 "id": 750,
16556 "name": "token",
16557 "nodeType": "Identifier",
16558 "overloadedDeclarations": [],
16559 "referencedDeclaration": 739,
16560 "src": "1626:5:3",
16561 "typeDescriptions": {
16562 "typeIdentifier": "t_address",
16563 "typeString": "address"
16564 }
16565 },
16566 "id": 751,
16567 "isConstant": false,
16568 "isLValue": false,
16569 "isPure": false,
16570 "lValueRequested": false,
16571 "memberName": "call",
16572 "nodeType": "MemberAccess",
16573 "referencedDeclaration": null,
16574 "src": "1626:10:3",
16575 "typeDescriptions": {
16576 "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
16577 "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
16578 }
16579 },
16580 "id": 758,
16581 "isConstant": false,
16582 "isLValue": false,
16583 "isPure": false,
16584 "kind": "functionCall",
16585 "lValueRequested": false,
16586 "names": [],
16587 "nodeType": "FunctionCall",
16588 "src": "1626:55:3",
16589 "tryCall": false,
16590 "typeDescriptions": {
16591 "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
16592 "typeString": "tuple(bool,bytes memory)"
16593 }
16594 },
16595 "nodeType": "VariableDeclarationStatement",
16596 "src": "1590:91:3"
16597 },
16598 {
16599 "expression": {
16600 "argumentTypes": null,
16601 "arguments": [
16602 {
16603 "argumentTypes": null,
16604 "commonType": {
16605 "typeIdentifier": "t_bool",
16606 "typeString": "bool"
16607 },
16608 "id": 775,
16609 "isConstant": false,
16610 "isLValue": false,
16611 "isPure": false,
16612 "lValueRequested": false,
16613 "leftExpression": {
16614 "argumentTypes": null,
16615 "id": 761,
16616 "name": "success",
16617 "nodeType": "Identifier",
16618 "overloadedDeclarations": [],
16619 "referencedDeclaration": 747,
16620 "src": "1699:7:3",
16621 "typeDescriptions": {
16622 "typeIdentifier": "t_bool",
16623 "typeString": "bool"
16624 }
16625 },
16626 "nodeType": "BinaryOperation",
16627 "operator": "&&",
16628 "rightExpression": {
16629 "argumentTypes": null,
16630 "components": [
16631 {
16632 "argumentTypes": null,
16633 "commonType": {
16634 "typeIdentifier": "t_bool",
16635 "typeString": "bool"
16636 },
16637 "id": 773,
16638 "isConstant": false,
16639 "isLValue": false,
16640 "isPure": false,
16641 "lValueRequested": false,
16642 "leftExpression": {
16643 "argumentTypes": null,
16644 "commonType": {
16645 "typeIdentifier": "t_uint256",
16646 "typeString": "uint256"
16647 },
16648 "id": 765,
16649 "isConstant": false,
16650 "isLValue": false,
16651 "isPure": false,
16652 "lValueRequested": false,
16653 "leftExpression": {
16654 "argumentTypes": null,
16655 "expression": {
16656 "argumentTypes": null,
16657 "id": 762,
16658 "name": "data",
16659 "nodeType": "Identifier",
16660 "overloadedDeclarations": [],
16661 "referencedDeclaration": 749,
16662 "src": "1711:4:3",
16663 "typeDescriptions": {
16664 "typeIdentifier": "t_bytes_memory_ptr",
16665 "typeString": "bytes memory"
16666 }
16667 },
16668 "id": 763,
16669 "isConstant": false,
16670 "isLValue": false,
16671 "isPure": false,
16672 "lValueRequested": false,
16673 "memberName": "length",
16674 "nodeType": "MemberAccess",
16675 "referencedDeclaration": null,
16676 "src": "1711:11:3",
16677 "typeDescriptions": {
16678 "typeIdentifier": "t_uint256",
16679 "typeString": "uint256"
16680 }
16681 },
16682 "nodeType": "BinaryOperation",
16683 "operator": "==",
16684 "rightExpression": {
16685 "argumentTypes": null,
16686 "hexValue": "30",
16687 "id": 764,
16688 "isConstant": false,
16689 "isLValue": false,
16690 "isPure": true,
16691 "kind": "number",
16692 "lValueRequested": false,
16693 "nodeType": "Literal",
16694 "src": "1726:1:3",
16695 "subdenomination": null,
16696 "typeDescriptions": {
16697 "typeIdentifier": "t_rational_0_by_1",
16698 "typeString": "int_const 0"
16699 },
16700 "value": "0"
16701 },
16702 "src": "1711:16:3",
16703 "typeDescriptions": {
16704 "typeIdentifier": "t_bool",
16705 "typeString": "bool"
16706 }
16707 },
16708 "nodeType": "BinaryOperation",
16709 "operator": "||",
16710 "rightExpression": {
16711 "argumentTypes": null,
16712 "arguments": [
16713 {
16714 "argumentTypes": null,
16715 "id": 768,
16716 "name": "data",
16717 "nodeType": "Identifier",
16718 "overloadedDeclarations": [],
16719 "referencedDeclaration": 749,
16720 "src": "1742:4:3",
16721 "typeDescriptions": {
16722 "typeIdentifier": "t_bytes_memory_ptr",
16723 "typeString": "bytes memory"
16724 }
16725 },
16726 {
16727 "argumentTypes": null,
16728 "components": [
16729 {
16730 "argumentTypes": null,
16731 "id": 770,
16732 "isConstant": false,
16733 "isLValue": false,
16734 "isPure": true,
16735 "lValueRequested": false,
16736 "nodeType": "ElementaryTypeNameExpression",
16737 "src": "1749:4:3",
16738 "typeDescriptions": {
16739 "typeIdentifier": "t_type$_t_bool_$",
16740 "typeString": "type(bool)"
16741 },
16742 "typeName": {
16743 "id": 769,
16744 "name": "bool",
16745 "nodeType": "ElementaryTypeName",
16746 "src": "1749:4:3",
16747 "typeDescriptions": {
16748 "typeIdentifier": null,
16749 "typeString": null
16750 }
16751 }
16752 }
16753 ],
16754 "id": 771,
16755 "isConstant": false,
16756 "isInlineArray": false,
16757 "isLValue": false,
16758 "isPure": true,
16759 "lValueRequested": false,
16760 "nodeType": "TupleExpression",
16761 "src": "1748:6:3",
16762 "typeDescriptions": {
16763 "typeIdentifier": "t_type$_t_bool_$",
16764 "typeString": "type(bool)"
16765 }
16766 }
16767 ],
16768 "expression": {
16769 "argumentTypes": [
16770 {
16771 "typeIdentifier": "t_bytes_memory_ptr",
16772 "typeString": "bytes memory"
16773 },
16774 {
16775 "typeIdentifier": "t_type$_t_bool_$",
16776 "typeString": "type(bool)"
16777 }
16778 ],
16779 "expression": {
16780 "argumentTypes": null,
16781 "id": 766,
16782 "name": "abi",
16783 "nodeType": "Identifier",
16784 "overloadedDeclarations": [],
16785 "referencedDeclaration": -1,
16786 "src": "1731:3:3",
16787 "typeDescriptions": {
16788 "typeIdentifier": "t_magic_abi",
16789 "typeString": "abi"
16790 }
16791 },
16792 "id": 767,
16793 "isConstant": false,
16794 "isLValue": false,
16795 "isPure": true,
16796 "lValueRequested": false,
16797 "memberName": "decode",
16798 "nodeType": "MemberAccess",
16799 "referencedDeclaration": null,
16800 "src": "1731:10:3",
16801 "typeDescriptions": {
16802 "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
16803 "typeString": "function () pure"
16804 }
16805 },
16806 "id": 772,
16807 "isConstant": false,
16808 "isLValue": false,
16809 "isPure": false,
16810 "kind": "functionCall",
16811 "lValueRequested": false,
16812 "names": [],
16813 "nodeType": "FunctionCall",
16814 "src": "1731:24:3",
16815 "tryCall": false,
16816 "typeDescriptions": {
16817 "typeIdentifier": "t_bool",
16818 "typeString": "bool"
16819 }
16820 },
16821 "src": "1711:44:3",
16822 "typeDescriptions": {
16823 "typeIdentifier": "t_bool",
16824 "typeString": "bool"
16825 }
16826 }
16827 ],
16828 "id": 774,
16829 "isConstant": false,
16830 "isInlineArray": false,
16831 "isLValue": false,
16832 "isPure": false,
16833 "lValueRequested": false,
16834 "nodeType": "TupleExpression",
16835 "src": "1710:46:3",
16836 "typeDescriptions": {
16837 "typeIdentifier": "t_bool",
16838 "typeString": "bool"
16839 }
16840 },
16841 "src": "1699:57:3",
16842 "typeDescriptions": {
16843 "typeIdentifier": "t_bool",
16844 "typeString": "bool"
16845 }
16846 },
16847 {
16848 "argumentTypes": null,
16849 "hexValue": "556e697377617056323a205452414e534645525f4641494c4544",
16850 "id": 776,
16851 "isConstant": false,
16852 "isLValue": false,
16853 "isPure": true,
16854 "kind": "string",
16855 "lValueRequested": false,
16856 "nodeType": "Literal",
16857 "src": "1758:28:3",
16858 "subdenomination": null,
16859 "typeDescriptions": {
16860 "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2",
16861 "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\""
16862 },
16863 "value": "UniswapV2: TRANSFER_FAILED"
16864 }
16865 ],
16866 "expression": {
16867 "argumentTypes": [
16868 {
16869 "typeIdentifier": "t_bool",
16870 "typeString": "bool"
16871 },
16872 {
16873 "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2",
16874 "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\""
16875 }
16876 ],
16877 "id": 760,
16878 "name": "require",
16879 "nodeType": "Identifier",
16880 "overloadedDeclarations": [
16881 -18,
16882 -18
16883 ],
16884 "referencedDeclaration": -18,
16885 "src": "1691:7:3",
16886 "typeDescriptions": {
16887 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
16888 "typeString": "function (bool,string memory) pure"
16889 }
16890 },
16891 "id": 777,
16892 "isConstant": false,
16893 "isLValue": false,
16894 "isPure": false,
16895 "kind": "functionCall",
16896 "lValueRequested": false,
16897 "names": [],
16898 "nodeType": "FunctionCall",
16899 "src": "1691:96:3",
16900 "tryCall": false,
16901 "typeDescriptions": {
16902 "typeIdentifier": "t_tuple$__$",
16903 "typeString": "tuple()"
16904 }
16905 },
16906 "id": 778,
16907 "nodeType": "ExpressionStatement",
16908 "src": "1691:96:3"
16909 }
16910 ]
16911 },
16912 "documentation": null,
16913 "id": 780,
16914 "implemented": true,
16915 "kind": "function",
16916 "modifiers": [],
16917 "name": "_safeTransfer",
16918 "nodeType": "FunctionDefinition",
16919 "overrides": null,
16920 "parameters": {
16921 "id": 744,
16922 "nodeType": "ParameterList",
16923 "parameters": [
16924 {
16925 "constant": false,
16926 "id": 739,
16927 "mutability": "mutable",
16928 "name": "token",
16929 "nodeType": "VariableDeclaration",
16930 "overrides": null,
16931 "scope": 780,
16932 "src": "1533:13:3",
16933 "stateVariable": false,
16934 "storageLocation": "default",
16935 "typeDescriptions": {
16936 "typeIdentifier": "t_address",
16937 "typeString": "address"
16938 },
16939 "typeName": {
16940 "id": 738,
16941 "name": "address",
16942 "nodeType": "ElementaryTypeName",
16943 "src": "1533:7:3",
16944 "stateMutability": "nonpayable",
16945 "typeDescriptions": {
16946 "typeIdentifier": "t_address",
16947 "typeString": "address"
16948 }
16949 },
16950 "value": null,
16951 "visibility": "internal"
16952 },
16953 {
16954 "constant": false,
16955 "id": 741,
16956 "mutability": "mutable",
16957 "name": "to",
16958 "nodeType": "VariableDeclaration",
16959 "overrides": null,
16960 "scope": 780,
16961 "src": "1548:10:3",
16962 "stateVariable": false,
16963 "storageLocation": "default",
16964 "typeDescriptions": {
16965 "typeIdentifier": "t_address",
16966 "typeString": "address"
16967 },
16968 "typeName": {
16969 "id": 740,
16970 "name": "address",
16971 "nodeType": "ElementaryTypeName",
16972 "src": "1548:7:3",
16973 "stateMutability": "nonpayable",
16974 "typeDescriptions": {
16975 "typeIdentifier": "t_address",
16976 "typeString": "address"
16977 }
16978 },
16979 "value": null,
16980 "visibility": "internal"
16981 },
16982 {
16983 "constant": false,
16984 "id": 743,
16985 "mutability": "mutable",
16986 "name": "value",
16987 "nodeType": "VariableDeclaration",
16988 "overrides": null,
16989 "scope": 780,
16990 "src": "1560:10:3",
16991 "stateVariable": false,
16992 "storageLocation": "default",
16993 "typeDescriptions": {
16994 "typeIdentifier": "t_uint256",
16995 "typeString": "uint256"
16996 },
16997 "typeName": {
16998 "id": 742,
16999 "name": "uint",
17000 "nodeType": "ElementaryTypeName",
17001 "src": "1560:4:3",
17002 "typeDescriptions": {
17003 "typeIdentifier": "t_uint256",
17004 "typeString": "uint256"
17005 }
17006 },
17007 "value": null,
17008 "visibility": "internal"
17009 }
17010 ],
17011 "src": "1532:39:3"
17012 },
17013 "returnParameters": {
17014 "id": 745,
17015 "nodeType": "ParameterList",
17016 "parameters": [],
17017 "src": "1580:0:3"
17018 },
17019 "scope": 1711,
17020 "src": "1510:284:3",
17021 "stateMutability": "nonpayable",
17022 "virtual": false,
17023 "visibility": "private"
17024 },
17025 {
17026 "anonymous": false,
17027 "documentation": null,
17028 "id": 788,
17029 "name": "Mint",
17030 "nodeType": "EventDefinition",
17031 "parameters": {
17032 "id": 787,
17033 "nodeType": "ParameterList",
17034 "parameters": [
17035 {
17036 "constant": false,
17037 "id": 782,
17038 "indexed": true,
17039 "mutability": "mutable",
17040 "name": "sender",
17041 "nodeType": "VariableDeclaration",
17042 "overrides": null,
17043 "scope": 788,
17044 "src": "1811:22:3",
17045 "stateVariable": false,
17046 "storageLocation": "default",
17047 "typeDescriptions": {
17048 "typeIdentifier": "t_address",
17049 "typeString": "address"
17050 },
17051 "typeName": {
17052 "id": 781,
17053 "name": "address",
17054 "nodeType": "ElementaryTypeName",
17055 "src": "1811:7:3",
17056 "stateMutability": "nonpayable",
17057 "typeDescriptions": {
17058 "typeIdentifier": "t_address",
17059 "typeString": "address"
17060 }
17061 },
17062 "value": null,
17063 "visibility": "internal"
17064 },
17065 {
17066 "constant": false,
17067 "id": 784,
17068 "indexed": false,
17069 "mutability": "mutable",
17070 "name": "amount0",
17071 "nodeType": "VariableDeclaration",
17072 "overrides": null,
17073 "scope": 788,
17074 "src": "1835:12:3",
17075 "stateVariable": false,
17076 "storageLocation": "default",
17077 "typeDescriptions": {
17078 "typeIdentifier": "t_uint256",
17079 "typeString": "uint256"
17080 },
17081 "typeName": {
17082 "id": 783,
17083 "name": "uint",
17084 "nodeType": "ElementaryTypeName",
17085 "src": "1835:4:3",
17086 "typeDescriptions": {
17087 "typeIdentifier": "t_uint256",
17088 "typeString": "uint256"
17089 }
17090 },
17091 "value": null,
17092 "visibility": "internal"
17093 },
17094 {
17095 "constant": false,
17096 "id": 786,
17097 "indexed": false,
17098 "mutability": "mutable",
17099 "name": "amount1",
17100 "nodeType": "VariableDeclaration",
17101 "overrides": null,
17102 "scope": 788,
17103 "src": "1849:12:3",
17104 "stateVariable": false,
17105 "storageLocation": "default",
17106 "typeDescriptions": {
17107 "typeIdentifier": "t_uint256",
17108 "typeString": "uint256"
17109 },
17110 "typeName": {
17111 "id": 785,
17112 "name": "uint",
17113 "nodeType": "ElementaryTypeName",
17114 "src": "1849:4:3",
17115 "typeDescriptions": {
17116 "typeIdentifier": "t_uint256",
17117 "typeString": "uint256"
17118 }
17119 },
17120 "value": null,
17121 "visibility": "internal"
17122 }
17123 ],
17124 "src": "1810:52:3"
17125 },
17126 "src": "1800:63:3"
17127 },
17128 {
17129 "anonymous": false,
17130 "documentation": null,
17131 "id": 798,
17132 "name": "Burn",
17133 "nodeType": "EventDefinition",
17134 "parameters": {
17135 "id": 797,
17136 "nodeType": "ParameterList",
17137 "parameters": [
17138 {
17139 "constant": false,
17140 "id": 790,
17141 "indexed": true,
17142 "mutability": "mutable",
17143 "name": "sender",
17144 "nodeType": "VariableDeclaration",
17145 "overrides": null,
17146 "scope": 798,
17147 "src": "1879:22:3",
17148 "stateVariable": false,
17149 "storageLocation": "default",
17150 "typeDescriptions": {
17151 "typeIdentifier": "t_address",
17152 "typeString": "address"
17153 },
17154 "typeName": {
17155 "id": 789,
17156 "name": "address",
17157 "nodeType": "ElementaryTypeName",
17158 "src": "1879:7:3",
17159 "stateMutability": "nonpayable",
17160 "typeDescriptions": {
17161 "typeIdentifier": "t_address",
17162 "typeString": "address"
17163 }
17164 },
17165 "value": null,
17166 "visibility": "internal"
17167 },
17168 {
17169 "constant": false,
17170 "id": 792,
17171 "indexed": false,
17172 "mutability": "mutable",
17173 "name": "amount0",
17174 "nodeType": "VariableDeclaration",
17175 "overrides": null,
17176 "scope": 798,
17177 "src": "1903:12:3",
17178 "stateVariable": false,
17179 "storageLocation": "default",
17180 "typeDescriptions": {
17181 "typeIdentifier": "t_uint256",
17182 "typeString": "uint256"
17183 },
17184 "typeName": {
17185 "id": 791,
17186 "name": "uint",
17187 "nodeType": "ElementaryTypeName",
17188 "src": "1903:4:3",
17189 "typeDescriptions": {
17190 "typeIdentifier": "t_uint256",
17191 "typeString": "uint256"
17192 }
17193 },
17194 "value": null,
17195 "visibility": "internal"
17196 },
17197 {
17198 "constant": false,
17199 "id": 794,
17200 "indexed": false,
17201 "mutability": "mutable",
17202 "name": "amount1",
17203 "nodeType": "VariableDeclaration",
17204 "overrides": null,
17205 "scope": 798,
17206 "src": "1917:12:3",
17207 "stateVariable": false,
17208 "storageLocation": "default",
17209 "typeDescriptions": {
17210 "typeIdentifier": "t_uint256",
17211 "typeString": "uint256"
17212 },
17213 "typeName": {
17214 "id": 793,
17215 "name": "uint",
17216 "nodeType": "ElementaryTypeName",
17217 "src": "1917:4:3",
17218 "typeDescriptions": {
17219 "typeIdentifier": "t_uint256",
17220 "typeString": "uint256"
17221 }
17222 },
17223 "value": null,
17224 "visibility": "internal"
17225 },
17226 {
17227 "constant": false,
17228 "id": 796,
17229 "indexed": true,
17230 "mutability": "mutable",
17231 "name": "to",
17232 "nodeType": "VariableDeclaration",
17233 "overrides": null,
17234 "scope": 798,
17235 "src": "1931:18:3",
17236 "stateVariable": false,
17237 "storageLocation": "default",
17238 "typeDescriptions": {
17239 "typeIdentifier": "t_address",
17240 "typeString": "address"
17241 },
17242 "typeName": {
17243 "id": 795,
17244 "name": "address",
17245 "nodeType": "ElementaryTypeName",
17246 "src": "1931:7:3",
17247 "stateMutability": "nonpayable",
17248 "typeDescriptions": {
17249 "typeIdentifier": "t_address",
17250 "typeString": "address"
17251 }
17252 },
17253 "value": null,
17254 "visibility": "internal"
17255 }
17256 ],
17257 "src": "1878:72:3"
17258 },
17259 "src": "1868:83:3"
17260 },
17261 {
17262 "anonymous": false,
17263 "documentation": null,
17264 "id": 812,
17265 "name": "Swap",
17266 "nodeType": "EventDefinition",
17267 "parameters": {
17268 "id": 811,
17269 "nodeType": "ParameterList",
17270 "parameters": [
17271 {
17272 "constant": false,
17273 "id": 800,
17274 "indexed": true,
17275 "mutability": "mutable",
17276 "name": "sender",
17277 "nodeType": "VariableDeclaration",
17278 "overrides": null,
17279 "scope": 812,
17280 "src": "1976:22:3",
17281 "stateVariable": false,
17282 "storageLocation": "default",
17283 "typeDescriptions": {
17284 "typeIdentifier": "t_address",
17285 "typeString": "address"
17286 },
17287 "typeName": {
17288 "id": 799,
17289 "name": "address",
17290 "nodeType": "ElementaryTypeName",
17291 "src": "1976:7:3",
17292 "stateMutability": "nonpayable",
17293 "typeDescriptions": {
17294 "typeIdentifier": "t_address",
17295 "typeString": "address"
17296 }
17297 },
17298 "value": null,
17299 "visibility": "internal"
17300 },
17301 {
17302 "constant": false,
17303 "id": 802,
17304 "indexed": false,
17305 "mutability": "mutable",
17306 "name": "amount0In",
17307 "nodeType": "VariableDeclaration",
17308 "overrides": null,
17309 "scope": 812,
17310 "src": "2008:14:3",
17311 "stateVariable": false,
17312 "storageLocation": "default",
17313 "typeDescriptions": {
17314 "typeIdentifier": "t_uint256",
17315 "typeString": "uint256"
17316 },
17317 "typeName": {
17318 "id": 801,
17319 "name": "uint",
17320 "nodeType": "ElementaryTypeName",
17321 "src": "2008:4:3",
17322 "typeDescriptions": {
17323 "typeIdentifier": "t_uint256",
17324 "typeString": "uint256"
17325 }
17326 },
17327 "value": null,
17328 "visibility": "internal"
17329 },
17330 {
17331 "constant": false,
17332 "id": 804,
17333 "indexed": false,
17334 "mutability": "mutable",
17335 "name": "amount1In",
17336 "nodeType": "VariableDeclaration",
17337 "overrides": null,
17338 "scope": 812,
17339 "src": "2032:14:3",
17340 "stateVariable": false,
17341 "storageLocation": "default",
17342 "typeDescriptions": {
17343 "typeIdentifier": "t_uint256",
17344 "typeString": "uint256"
17345 },
17346 "typeName": {
17347 "id": 803,
17348 "name": "uint",
17349 "nodeType": "ElementaryTypeName",
17350 "src": "2032:4:3",
17351 "typeDescriptions": {
17352 "typeIdentifier": "t_uint256",
17353 "typeString": "uint256"
17354 }
17355 },
17356 "value": null,
17357 "visibility": "internal"
17358 },
17359 {
17360 "constant": false,
17361 "id": 806,
17362 "indexed": false,
17363 "mutability": "mutable",
17364 "name": "amount0Out",
17365 "nodeType": "VariableDeclaration",
17366 "overrides": null,
17367 "scope": 812,
17368 "src": "2056:15:3",
17369 "stateVariable": false,
17370 "storageLocation": "default",
17371 "typeDescriptions": {
17372 "typeIdentifier": "t_uint256",
17373 "typeString": "uint256"
17374 },
17375 "typeName": {
17376 "id": 805,
17377 "name": "uint",
17378 "nodeType": "ElementaryTypeName",
17379 "src": "2056:4:3",
17380 "typeDescriptions": {
17381 "typeIdentifier": "t_uint256",
17382 "typeString": "uint256"
17383 }
17384 },
17385 "value": null,
17386 "visibility": "internal"
17387 },
17388 {
17389 "constant": false,
17390 "id": 808,
17391 "indexed": false,
17392 "mutability": "mutable",
17393 "name": "amount1Out",
17394 "nodeType": "VariableDeclaration",
17395 "overrides": null,
17396 "scope": 812,
17397 "src": "2081:15:3",
17398 "stateVariable": false,
17399 "storageLocation": "default",
17400 "typeDescriptions": {
17401 "typeIdentifier": "t_uint256",
17402 "typeString": "uint256"
17403 },
17404 "typeName": {
17405 "id": 807,
17406 "name": "uint",
17407 "nodeType": "ElementaryTypeName",
17408 "src": "2081:4:3",
17409 "typeDescriptions": {
17410 "typeIdentifier": "t_uint256",
17411 "typeString": "uint256"
17412 }
17413 },
17414 "value": null,
17415 "visibility": "internal"
17416 },
17417 {
17418 "constant": false,
17419 "id": 810,
17420 "indexed": true,
17421 "mutability": "mutable",
17422 "name": "to",
17423 "nodeType": "VariableDeclaration",
17424 "overrides": null,
17425 "scope": 812,
17426 "src": "2106:18:3",
17427 "stateVariable": false,
17428 "storageLocation": "default",
17429 "typeDescriptions": {
17430 "typeIdentifier": "t_address",
17431 "typeString": "address"
17432 },
17433 "typeName": {
17434 "id": 809,
17435 "name": "address",
17436 "nodeType": "ElementaryTypeName",
17437 "src": "2106:7:3",
17438 "stateMutability": "nonpayable",
17439 "typeDescriptions": {
17440 "typeIdentifier": "t_address",
17441 "typeString": "address"
17442 }
17443 },
17444 "value": null,
17445 "visibility": "internal"
17446 }
17447 ],
17448 "src": "1966:164:3"
17449 },
17450 "src": "1956:175:3"
17451 },
17452 {
17453 "anonymous": false,
17454 "documentation": null,
17455 "id": 818,
17456 "name": "Sync",
17457 "nodeType": "EventDefinition",
17458 "parameters": {
17459 "id": 817,
17460 "nodeType": "ParameterList",
17461 "parameters": [
17462 {
17463 "constant": false,
17464 "id": 814,
17465 "indexed": false,
17466 "mutability": "mutable",
17467 "name": "reserve0",
17468 "nodeType": "VariableDeclaration",
17469 "overrides": null,
17470 "scope": 818,
17471 "src": "2147:16:3",
17472 "stateVariable": false,
17473 "storageLocation": "default",
17474 "typeDescriptions": {
17475 "typeIdentifier": "t_uint112",
17476 "typeString": "uint112"
17477 },
17478 "typeName": {
17479 "id": 813,
17480 "name": "uint112",
17481 "nodeType": "ElementaryTypeName",
17482 "src": "2147:7:3",
17483 "typeDescriptions": {
17484 "typeIdentifier": "t_uint112",
17485 "typeString": "uint112"
17486 }
17487 },
17488 "value": null,
17489 "visibility": "internal"
17490 },
17491 {
17492 "constant": false,
17493 "id": 816,
17494 "indexed": false,
17495 "mutability": "mutable",
17496 "name": "reserve1",
17497 "nodeType": "VariableDeclaration",
17498 "overrides": null,
17499 "scope": 818,
17500 "src": "2165:16:3",
17501 "stateVariable": false,
17502 "storageLocation": "default",
17503 "typeDescriptions": {
17504 "typeIdentifier": "t_uint112",
17505 "typeString": "uint112"
17506 },
17507 "typeName": {
17508 "id": 815,
17509 "name": "uint112",
17510 "nodeType": "ElementaryTypeName",
17511 "src": "2165:7:3",
17512 "typeDescriptions": {
17513 "typeIdentifier": "t_uint112",
17514 "typeString": "uint112"
17515 }
17516 },
17517 "value": null,
17518 "visibility": "internal"
17519 }
17520 ],
17521 "src": "2146:36:3"
17522 },
17523 "src": "2136:47:3"
17524 },
17525 {
17526 "body": {
17527 "id": 826,
17528 "nodeType": "Block",
17529 "src": "2210:37:3",
17530 "statements": [
17531 {
17532 "expression": {
17533 "argumentTypes": null,
17534 "id": 824,
17535 "isConstant": false,
17536 "isLValue": false,
17537 "isPure": false,
17538 "lValueRequested": false,
17539 "leftHandSide": {
17540 "argumentTypes": null,
17541 "id": 821,
17542 "name": "factory",
17543 "nodeType": "Identifier",
17544 "overloadedDeclarations": [],
17545 "referencedDeclaration": 677,
17546 "src": "2220:7:3",
17547 "typeDescriptions": {
17548 "typeIdentifier": "t_address",
17549 "typeString": "address"
17550 }
17551 },
17552 "nodeType": "Assignment",
17553 "operator": "=",
17554 "rightHandSide": {
17555 "argumentTypes": null,
17556 "expression": {
17557 "argumentTypes": null,
17558 "id": 822,
17559 "name": "msg",
17560 "nodeType": "Identifier",
17561 "overloadedDeclarations": [],
17562 "referencedDeclaration": -15,
17563 "src": "2230:3:3",
17564 "typeDescriptions": {
17565 "typeIdentifier": "t_magic_message",
17566 "typeString": "msg"
17567 }
17568 },
17569 "id": 823,
17570 "isConstant": false,
17571 "isLValue": false,
17572 "isPure": false,
17573 "lValueRequested": false,
17574 "memberName": "sender",
17575 "nodeType": "MemberAccess",
17576 "referencedDeclaration": null,
17577 "src": "2230:10:3",
17578 "typeDescriptions": {
17579 "typeIdentifier": "t_address_payable",
17580 "typeString": "address payable"
17581 }
17582 },
17583 "src": "2220:20:3",
17584 "typeDescriptions": {
17585 "typeIdentifier": "t_address",
17586 "typeString": "address"
17587 }
17588 },
17589 "id": 825,
17590 "nodeType": "ExpressionStatement",
17591 "src": "2220:20:3"
17592 }
17593 ]
17594 },
17595 "documentation": null,
17596 "id": 827,
17597 "implemented": true,
17598 "kind": "constructor",
17599 "modifiers": [],
17600 "name": "",
17601 "nodeType": "FunctionDefinition",
17602 "overrides": null,
17603 "parameters": {
17604 "id": 819,
17605 "nodeType": "ParameterList",
17606 "parameters": [],
17607 "src": "2200:2:3"
17608 },
17609 "returnParameters": {
17610 "id": 820,
17611 "nodeType": "ParameterList",
17612 "parameters": [],
17613 "src": "2210:0:3"
17614 },
17615 "scope": 1711,
17616 "src": "2189:58:3",
17617 "stateMutability": "nonpayable",
17618 "virtual": false,
17619 "visibility": "public"
17620 },
17621 {
17622 "body": {
17623 "id": 850,
17624 "nodeType": "Block",
17625 "src": "2372:143:3",
17626 "statements": [
17627 {
17628 "expression": {
17629 "argumentTypes": null,
17630 "arguments": [
17631 {
17632 "argumentTypes": null,
17633 "commonType": {
17634 "typeIdentifier": "t_address",
17635 "typeString": "address"
17636 },
17637 "id": 838,
17638 "isConstant": false,
17639 "isLValue": false,
17640 "isPure": false,
17641 "lValueRequested": false,
17642 "leftExpression": {
17643 "argumentTypes": null,
17644 "expression": {
17645 "argumentTypes": null,
17646 "id": 835,
17647 "name": "msg",
17648 "nodeType": "Identifier",
17649 "overloadedDeclarations": [],
17650 "referencedDeclaration": -15,
17651 "src": "2390:3:3",
17652 "typeDescriptions": {
17653 "typeIdentifier": "t_magic_message",
17654 "typeString": "msg"
17655 }
17656 },
17657 "id": 836,
17658 "isConstant": false,
17659 "isLValue": false,
17660 "isPure": false,
17661 "lValueRequested": false,
17662 "memberName": "sender",
17663 "nodeType": "MemberAccess",
17664 "referencedDeclaration": null,
17665 "src": "2390:10:3",
17666 "typeDescriptions": {
17667 "typeIdentifier": "t_address_payable",
17668 "typeString": "address payable"
17669 }
17670 },
17671 "nodeType": "BinaryOperation",
17672 "operator": "==",
17673 "rightExpression": {
17674 "argumentTypes": null,
17675 "id": 837,
17676 "name": "factory",
17677 "nodeType": "Identifier",
17678 "overloadedDeclarations": [],
17679 "referencedDeclaration": 677,
17680 "src": "2404:7:3",
17681 "typeDescriptions": {
17682 "typeIdentifier": "t_address",
17683 "typeString": "address"
17684 }
17685 },
17686 "src": "2390:21:3",
17687 "typeDescriptions": {
17688 "typeIdentifier": "t_bool",
17689 "typeString": "bool"
17690 }
17691 },
17692 {
17693 "argumentTypes": null,
17694 "hexValue": "556e697377617056323a20464f5242494444454e",
17695 "id": 839,
17696 "isConstant": false,
17697 "isLValue": false,
17698 "isPure": true,
17699 "kind": "string",
17700 "lValueRequested": false,
17701 "nodeType": "Literal",
17702 "src": "2413:22:3",
17703 "subdenomination": null,
17704 "typeDescriptions": {
17705 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
17706 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
17707 },
17708 "value": "UniswapV2: FORBIDDEN"
17709 }
17710 ],
17711 "expression": {
17712 "argumentTypes": [
17713 {
17714 "typeIdentifier": "t_bool",
17715 "typeString": "bool"
17716 },
17717 {
17718 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
17719 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
17720 }
17721 ],
17722 "id": 834,
17723 "name": "require",
17724 "nodeType": "Identifier",
17725 "overloadedDeclarations": [
17726 -18,
17727 -18
17728 ],
17729 "referencedDeclaration": -18,
17730 "src": "2382:7:3",
17731 "typeDescriptions": {
17732 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
17733 "typeString": "function (bool,string memory) pure"
17734 }
17735 },
17736 "id": 840,
17737 "isConstant": false,
17738 "isLValue": false,
17739 "isPure": false,
17740 "kind": "functionCall",
17741 "lValueRequested": false,
17742 "names": [],
17743 "nodeType": "FunctionCall",
17744 "src": "2382:54:3",
17745 "tryCall": false,
17746 "typeDescriptions": {
17747 "typeIdentifier": "t_tuple$__$",
17748 "typeString": "tuple()"
17749 }
17750 },
17751 "id": 841,
17752 "nodeType": "ExpressionStatement",
17753 "src": "2382:54:3"
17754 },
17755 {
17756 "expression": {
17757 "argumentTypes": null,
17758 "id": 844,
17759 "isConstant": false,
17760 "isLValue": false,
17761 "isPure": false,
17762 "lValueRequested": false,
17763 "leftHandSide": {
17764 "argumentTypes": null,
17765 "id": 842,
17766 "name": "token0",
17767 "nodeType": "Identifier",
17768 "overloadedDeclarations": [],
17769 "referencedDeclaration": 679,
17770 "src": "2466:6:3",
17771 "typeDescriptions": {
17772 "typeIdentifier": "t_address",
17773 "typeString": "address"
17774 }
17775 },
17776 "nodeType": "Assignment",
17777 "operator": "=",
17778 "rightHandSide": {
17779 "argumentTypes": null,
17780 "id": 843,
17781 "name": "_token0",
17782 "nodeType": "Identifier",
17783 "overloadedDeclarations": [],
17784 "referencedDeclaration": 829,
17785 "src": "2475:7:3",
17786 "typeDescriptions": {
17787 "typeIdentifier": "t_address",
17788 "typeString": "address"
17789 }
17790 },
17791 "src": "2466:16:3",
17792 "typeDescriptions": {
17793 "typeIdentifier": "t_address",
17794 "typeString": "address"
17795 }
17796 },
17797 "id": 845,
17798 "nodeType": "ExpressionStatement",
17799 "src": "2466:16:3"
17800 },
17801 {
17802 "expression": {
17803 "argumentTypes": null,
17804 "id": 848,
17805 "isConstant": false,
17806 "isLValue": false,
17807 "isPure": false,
17808 "lValueRequested": false,
17809 "leftHandSide": {
17810 "argumentTypes": null,
17811 "id": 846,
17812 "name": "token1",
17813 "nodeType": "Identifier",
17814 "overloadedDeclarations": [],
17815 "referencedDeclaration": 681,
17816 "src": "2492:6:3",
17817 "typeDescriptions": {
17818 "typeIdentifier": "t_address",
17819 "typeString": "address"
17820 }
17821 },
17822 "nodeType": "Assignment",
17823 "operator": "=",
17824 "rightHandSide": {
17825 "argumentTypes": null,
17826 "id": 847,
17827 "name": "_token1",
17828 "nodeType": "Identifier",
17829 "overloadedDeclarations": [],
17830 "referencedDeclaration": 831,
17831 "src": "2501:7:3",
17832 "typeDescriptions": {
17833 "typeIdentifier": "t_address",
17834 "typeString": "address"
17835 }
17836 },
17837 "src": "2492:16:3",
17838 "typeDescriptions": {
17839 "typeIdentifier": "t_address",
17840 "typeString": "address"
17841 }
17842 },
17843 "id": 849,
17844 "nodeType": "ExpressionStatement",
17845 "src": "2492:16:3"
17846 }
17847 ]
17848 },
17849 "documentation": null,
17850 "functionSelector": "485cc955",
17851 "id": 851,
17852 "implemented": true,
17853 "kind": "function",
17854 "modifiers": [],
17855 "name": "initialize",
17856 "nodeType": "FunctionDefinition",
17857 "overrides": null,
17858 "parameters": {
17859 "id": 832,
17860 "nodeType": "ParameterList",
17861 "parameters": [
17862 {
17863 "constant": false,
17864 "id": 829,
17865 "mutability": "mutable",
17866 "name": "_token0",
17867 "nodeType": "VariableDeclaration",
17868 "overrides": null,
17869 "scope": 851,
17870 "src": "2329:15:3",
17871 "stateVariable": false,
17872 "storageLocation": "default",
17873 "typeDescriptions": {
17874 "typeIdentifier": "t_address",
17875 "typeString": "address"
17876 },
17877 "typeName": {
17878 "id": 828,
17879 "name": "address",
17880 "nodeType": "ElementaryTypeName",
17881 "src": "2329:7:3",
17882 "stateMutability": "nonpayable",
17883 "typeDescriptions": {
17884 "typeIdentifier": "t_address",
17885 "typeString": "address"
17886 }
17887 },
17888 "value": null,
17889 "visibility": "internal"
17890 },
17891 {
17892 "constant": false,
17893 "id": 831,
17894 "mutability": "mutable",
17895 "name": "_token1",
17896 "nodeType": "VariableDeclaration",
17897 "overrides": null,
17898 "scope": 851,
17899 "src": "2346:15:3",
17900 "stateVariable": false,
17901 "storageLocation": "default",
17902 "typeDescriptions": {
17903 "typeIdentifier": "t_address",
17904 "typeString": "address"
17905 },
17906 "typeName": {
17907 "id": 830,
17908 "name": "address",
17909 "nodeType": "ElementaryTypeName",
17910 "src": "2346:7:3",
17911 "stateMutability": "nonpayable",
17912 "typeDescriptions": {
17913 "typeIdentifier": "t_address",
17914 "typeString": "address"
17915 }
17916 },
17917 "value": null,
17918 "visibility": "internal"
17919 }
17920 ],
17921 "src": "2328:34:3"
17922 },
17923 "returnParameters": {
17924 "id": 833,
17925 "nodeType": "ParameterList",
17926 "parameters": [],
17927 "src": "2372:0:3"
17928 },
17929 "scope": 1711,
17930 "src": "2309:206:3",
17931 "stateMutability": "nonpayable",
17932 "virtual": false,
17933 "visibility": "external"
17934 },
17935 {
17936 "body": {
17937 "id": 965,
17938 "nodeType": "Block",
17939 "src": "2690:754:3",
17940 "statements": [
17941 {
17942 "expression": {
17943 "argumentTypes": null,
17944 "arguments": [
17945 {
17946 "argumentTypes": null,
17947 "commonType": {
17948 "typeIdentifier": "t_bool",
17949 "typeString": "bool"
17950 },
17951 "id": 877,
17952 "isConstant": false,
17953 "isLValue": false,
17954 "isPure": false,
17955 "lValueRequested": false,
17956 "leftExpression": {
17957 "argumentTypes": null,
17958 "commonType": {
17959 "typeIdentifier": "t_uint256",
17960 "typeString": "uint256"
17961 },
17962 "id": 869,
17963 "isConstant": false,
17964 "isLValue": false,
17965 "isPure": false,
17966 "lValueRequested": false,
17967 "leftExpression": {
17968 "argumentTypes": null,
17969 "id": 863,
17970 "name": "balance0",
17971 "nodeType": "Identifier",
17972 "overloadedDeclarations": [],
17973 "referencedDeclaration": 853,
17974 "src": "2708:8:3",
17975 "typeDescriptions": {
17976 "typeIdentifier": "t_uint256",
17977 "typeString": "uint256"
17978 }
17979 },
17980 "nodeType": "BinaryOperation",
17981 "operator": "<=",
17982 "rightExpression": {
17983 "argumentTypes": null,
17984 "arguments": [
17985 {
17986 "argumentTypes": null,
17987 "id": 867,
17988 "isConstant": false,
17989 "isLValue": false,
17990 "isPure": true,
17991 "lValueRequested": false,
17992 "nodeType": "UnaryOperation",
17993 "operator": "-",
17994 "prefix": true,
17995 "src": "2728:2:3",
17996 "subExpression": {
17997 "argumentTypes": null,
17998 "hexValue": "31",
17999 "id": 866,
18000 "isConstant": false,
18001 "isLValue": false,
18002 "isPure": true,
18003 "kind": "number",
18004 "lValueRequested": false,
18005 "nodeType": "Literal",
18006 "src": "2729:1:3",
18007 "subdenomination": null,
18008 "typeDescriptions": {
18009 "typeIdentifier": "t_rational_1_by_1",
18010 "typeString": "int_const 1"
18011 },
18012 "value": "1"
18013 },
18014 "typeDescriptions": {
18015 "typeIdentifier": "t_rational_minus_1_by_1",
18016 "typeString": "int_const -1"
18017 }
18018 }
18019 ],
18020 "expression": {
18021 "argumentTypes": [
18022 {
18023 "typeIdentifier": "t_rational_minus_1_by_1",
18024 "typeString": "int_const -1"
18025 }
18026 ],
18027 "id": 865,
18028 "isConstant": false,
18029 "isLValue": false,
18030 "isPure": true,
18031 "lValueRequested": false,
18032 "nodeType": "ElementaryTypeNameExpression",
18033 "src": "2720:7:3",
18034 "typeDescriptions": {
18035 "typeIdentifier": "t_type$_t_uint112_$",
18036 "typeString": "type(uint112)"
18037 },
18038 "typeName": {
18039 "id": 864,
18040 "name": "uint112",
18041 "nodeType": "ElementaryTypeName",
18042 "src": "2720:7:3",
18043 "typeDescriptions": {
18044 "typeIdentifier": null,
18045 "typeString": null
18046 }
18047 }
18048 },
18049 "id": 868,
18050 "isConstant": false,
18051 "isLValue": false,
18052 "isPure": true,
18053 "kind": "typeConversion",
18054 "lValueRequested": false,
18055 "names": [],
18056 "nodeType": "FunctionCall",
18057 "src": "2720:11:3",
18058 "tryCall": false,
18059 "typeDescriptions": {
18060 "typeIdentifier": "t_uint112",
18061 "typeString": "uint112"
18062 }
18063 },
18064 "src": "2708:23:3",
18065 "typeDescriptions": {
18066 "typeIdentifier": "t_bool",
18067 "typeString": "bool"
18068 }
18069 },
18070 "nodeType": "BinaryOperation",
18071 "operator": "&&",
18072 "rightExpression": {
18073 "argumentTypes": null,
18074 "commonType": {
18075 "typeIdentifier": "t_uint256",
18076 "typeString": "uint256"
18077 },
18078 "id": 876,
18079 "isConstant": false,
18080 "isLValue": false,
18081 "isPure": false,
18082 "lValueRequested": false,
18083 "leftExpression": {
18084 "argumentTypes": null,
18085 "id": 870,
18086 "name": "balance1",
18087 "nodeType": "Identifier",
18088 "overloadedDeclarations": [],
18089 "referencedDeclaration": 855,
18090 "src": "2735:8:3",
18091 "typeDescriptions": {
18092 "typeIdentifier": "t_uint256",
18093 "typeString": "uint256"
18094 }
18095 },
18096 "nodeType": "BinaryOperation",
18097 "operator": "<=",
18098 "rightExpression": {
18099 "argumentTypes": null,
18100 "arguments": [
18101 {
18102 "argumentTypes": null,
18103 "id": 874,
18104 "isConstant": false,
18105 "isLValue": false,
18106 "isPure": true,
18107 "lValueRequested": false,
18108 "nodeType": "UnaryOperation",
18109 "operator": "-",
18110 "prefix": true,
18111 "src": "2755:2:3",
18112 "subExpression": {
18113 "argumentTypes": null,
18114 "hexValue": "31",
18115 "id": 873,
18116 "isConstant": false,
18117 "isLValue": false,
18118 "isPure": true,
18119 "kind": "number",
18120 "lValueRequested": false,
18121 "nodeType": "Literal",
18122 "src": "2756:1:3",
18123 "subdenomination": null,
18124 "typeDescriptions": {
18125 "typeIdentifier": "t_rational_1_by_1",
18126 "typeString": "int_const 1"
18127 },
18128 "value": "1"
18129 },
18130 "typeDescriptions": {
18131 "typeIdentifier": "t_rational_minus_1_by_1",
18132 "typeString": "int_const -1"
18133 }
18134 }
18135 ],
18136 "expression": {
18137 "argumentTypes": [
18138 {
18139 "typeIdentifier": "t_rational_minus_1_by_1",
18140 "typeString": "int_const -1"
18141 }
18142 ],
18143 "id": 872,
18144 "isConstant": false,
18145 "isLValue": false,
18146 "isPure": true,
18147 "lValueRequested": false,
18148 "nodeType": "ElementaryTypeNameExpression",
18149 "src": "2747:7:3",
18150 "typeDescriptions": {
18151 "typeIdentifier": "t_type$_t_uint112_$",
18152 "typeString": "type(uint112)"
18153 },
18154 "typeName": {
18155 "id": 871,
18156 "name": "uint112",
18157 "nodeType": "ElementaryTypeName",
18158 "src": "2747:7:3",
18159 "typeDescriptions": {
18160 "typeIdentifier": null,
18161 "typeString": null
18162 }
18163 }
18164 },
18165 "id": 875,
18166 "isConstant": false,
18167 "isLValue": false,
18168 "isPure": true,
18169 "kind": "typeConversion",
18170 "lValueRequested": false,
18171 "names": [],
18172 "nodeType": "FunctionCall",
18173 "src": "2747:11:3",
18174 "tryCall": false,
18175 "typeDescriptions": {
18176 "typeIdentifier": "t_uint112",
18177 "typeString": "uint112"
18178 }
18179 },
18180 "src": "2735:23:3",
18181 "typeDescriptions": {
18182 "typeIdentifier": "t_bool",
18183 "typeString": "bool"
18184 }
18185 },
18186 "src": "2708:50:3",
18187 "typeDescriptions": {
18188 "typeIdentifier": "t_bool",
18189 "typeString": "bool"
18190 }
18191 },
18192 {
18193 "argumentTypes": null,
18194 "hexValue": "556e697377617056323a204f564552464c4f57",
18195 "id": 878,
18196 "isConstant": false,
18197 "isLValue": false,
18198 "isPure": true,
18199 "kind": "string",
18200 "lValueRequested": false,
18201 "nodeType": "Literal",
18202 "src": "2760:21:3",
18203 "subdenomination": null,
18204 "typeDescriptions": {
18205 "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928",
18206 "typeString": "literal_string \"UniswapV2: OVERFLOW\""
18207 },
18208 "value": "UniswapV2: OVERFLOW"
18209 }
18210 ],
18211 "expression": {
18212 "argumentTypes": [
18213 {
18214 "typeIdentifier": "t_bool",
18215 "typeString": "bool"
18216 },
18217 {
18218 "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928",
18219 "typeString": "literal_string \"UniswapV2: OVERFLOW\""
18220 }
18221 ],
18222 "id": 862,
18223 "name": "require",
18224 "nodeType": "Identifier",
18225 "overloadedDeclarations": [
18226 -18,
18227 -18
18228 ],
18229 "referencedDeclaration": -18,
18230 "src": "2700:7:3",
18231 "typeDescriptions": {
18232 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
18233 "typeString": "function (bool,string memory) pure"
18234 }
18235 },
18236 "id": 879,
18237 "isConstant": false,
18238 "isLValue": false,
18239 "isPure": false,
18240 "kind": "functionCall",
18241 "lValueRequested": false,
18242 "names": [],
18243 "nodeType": "FunctionCall",
18244 "src": "2700:82:3",
18245 "tryCall": false,
18246 "typeDescriptions": {
18247 "typeIdentifier": "t_tuple$__$",
18248 "typeString": "tuple()"
18249 }
18250 },
18251 "id": 880,
18252 "nodeType": "ExpressionStatement",
18253 "src": "2700:82:3"
18254 },
18255 {
18256 "assignments": [
18257 882
18258 ],
18259 "declarations": [
18260 {
18261 "constant": false,
18262 "id": 882,
18263 "mutability": "mutable",
18264 "name": "blockTimestamp",
18265 "nodeType": "VariableDeclaration",
18266 "overrides": null,
18267 "scope": 965,
18268 "src": "2792:21:3",
18269 "stateVariable": false,
18270 "storageLocation": "default",
18271 "typeDescriptions": {
18272 "typeIdentifier": "t_uint32",
18273 "typeString": "uint32"
18274 },
18275 "typeName": {
18276 "id": 881,
18277 "name": "uint32",
18278 "nodeType": "ElementaryTypeName",
18279 "src": "2792:6:3",
18280 "typeDescriptions": {
18281 "typeIdentifier": "t_uint32",
18282 "typeString": "uint32"
18283 }
18284 },
18285 "value": null,
18286 "visibility": "internal"
18287 }
18288 ],
18289 "id": 892,
18290 "initialValue": {
18291 "argumentTypes": null,
18292 "arguments": [
18293 {
18294 "argumentTypes": null,
18295 "commonType": {
18296 "typeIdentifier": "t_uint256",
18297 "typeString": "uint256"
18298 },
18299 "id": 890,
18300 "isConstant": false,
18301 "isLValue": false,
18302 "isPure": false,
18303 "lValueRequested": false,
18304 "leftExpression": {
18305 "argumentTypes": null,
18306 "expression": {
18307 "argumentTypes": null,
18308 "id": 885,
18309 "name": "block",
18310 "nodeType": "Identifier",
18311 "overloadedDeclarations": [],
18312 "referencedDeclaration": -4,
18313 "src": "2823:5:3",
18314 "typeDescriptions": {
18315 "typeIdentifier": "t_magic_block",
18316 "typeString": "block"
18317 }
18318 },
18319 "id": 886,
18320 "isConstant": false,
18321 "isLValue": false,
18322 "isPure": false,
18323 "lValueRequested": false,
18324 "memberName": "timestamp",
18325 "nodeType": "MemberAccess",
18326 "referencedDeclaration": null,
18327 "src": "2823:15:3",
18328 "typeDescriptions": {
18329 "typeIdentifier": "t_uint256",
18330 "typeString": "uint256"
18331 }
18332 },
18333 "nodeType": "BinaryOperation",
18334 "operator": "%",
18335 "rightExpression": {
18336 "argumentTypes": null,
18337 "commonType": {
18338 "typeIdentifier": "t_rational_4294967296_by_1",
18339 "typeString": "int_const 4294967296"
18340 },
18341 "id": 889,
18342 "isConstant": false,
18343 "isLValue": false,
18344 "isPure": true,
18345 "lValueRequested": false,
18346 "leftExpression": {
18347 "argumentTypes": null,
18348 "hexValue": "32",
18349 "id": 887,
18350 "isConstant": false,
18351 "isLValue": false,
18352 "isPure": true,
18353 "kind": "number",
18354 "lValueRequested": false,
18355 "nodeType": "Literal",
18356 "src": "2841:1:3",
18357 "subdenomination": null,
18358 "typeDescriptions": {
18359 "typeIdentifier": "t_rational_2_by_1",
18360 "typeString": "int_const 2"
18361 },
18362 "value": "2"
18363 },
18364 "nodeType": "BinaryOperation",
18365 "operator": "**",
18366 "rightExpression": {
18367 "argumentTypes": null,
18368 "hexValue": "3332",
18369 "id": 888,
18370 "isConstant": false,
18371 "isLValue": false,
18372 "isPure": true,
18373 "kind": "number",
18374 "lValueRequested": false,
18375 "nodeType": "Literal",
18376 "src": "2844:2:3",
18377 "subdenomination": null,
18378 "typeDescriptions": {
18379 "typeIdentifier": "t_rational_32_by_1",
18380 "typeString": "int_const 32"
18381 },
18382 "value": "32"
18383 },
18384 "src": "2841:5:3",
18385 "typeDescriptions": {
18386 "typeIdentifier": "t_rational_4294967296_by_1",
18387 "typeString": "int_const 4294967296"
18388 }
18389 },
18390 "src": "2823:23:3",
18391 "typeDescriptions": {
18392 "typeIdentifier": "t_uint256",
18393 "typeString": "uint256"
18394 }
18395 }
18396 ],
18397 "expression": {
18398 "argumentTypes": [
18399 {
18400 "typeIdentifier": "t_uint256",
18401 "typeString": "uint256"
18402 }
18403 ],
18404 "id": 884,
18405 "isConstant": false,
18406 "isLValue": false,
18407 "isPure": true,
18408 "lValueRequested": false,
18409 "nodeType": "ElementaryTypeNameExpression",
18410 "src": "2816:6:3",
18411 "typeDescriptions": {
18412 "typeIdentifier": "t_type$_t_uint32_$",
18413 "typeString": "type(uint32)"
18414 },
18415 "typeName": {
18416 "id": 883,
18417 "name": "uint32",
18418 "nodeType": "ElementaryTypeName",
18419 "src": "2816:6:3",
18420 "typeDescriptions": {
18421 "typeIdentifier": null,
18422 "typeString": null
18423 }
18424 }
18425 },
18426 "id": 891,
18427 "isConstant": false,
18428 "isLValue": false,
18429 "isPure": false,
18430 "kind": "typeConversion",
18431 "lValueRequested": false,
18432 "names": [],
18433 "nodeType": "FunctionCall",
18434 "src": "2816:31:3",
18435 "tryCall": false,
18436 "typeDescriptions": {
18437 "typeIdentifier": "t_uint32",
18438 "typeString": "uint32"
18439 }
18440 },
18441 "nodeType": "VariableDeclarationStatement",
18442 "src": "2792:55:3"
18443 },
18444 {
18445 "assignments": [
18446 894
18447 ],
18448 "declarations": [
18449 {
18450 "constant": false,
18451 "id": 894,
18452 "mutability": "mutable",
18453 "name": "timeElapsed",
18454 "nodeType": "VariableDeclaration",
18455 "overrides": null,
18456 "scope": 965,
18457 "src": "2857:18:3",
18458 "stateVariable": false,
18459 "storageLocation": "default",
18460 "typeDescriptions": {
18461 "typeIdentifier": "t_uint32",
18462 "typeString": "uint32"
18463 },
18464 "typeName": {
18465 "id": 893,
18466 "name": "uint32",
18467 "nodeType": "ElementaryTypeName",
18468 "src": "2857:6:3",
18469 "typeDescriptions": {
18470 "typeIdentifier": "t_uint32",
18471 "typeString": "uint32"
18472 }
18473 },
18474 "value": null,
18475 "visibility": "internal"
18476 }
18477 ],
18478 "id": 898,
18479 "initialValue": {
18480 "argumentTypes": null,
18481 "commonType": {
18482 "typeIdentifier": "t_uint32",
18483 "typeString": "uint32"
18484 },
18485 "id": 897,
18486 "isConstant": false,
18487 "isLValue": false,
18488 "isPure": false,
18489 "lValueRequested": false,
18490 "leftExpression": {
18491 "argumentTypes": null,
18492 "id": 895,
18493 "name": "blockTimestamp",
18494 "nodeType": "Identifier",
18495 "overloadedDeclarations": [],
18496 "referencedDeclaration": 882,
18497 "src": "2878:14:3",
18498 "typeDescriptions": {
18499 "typeIdentifier": "t_uint32",
18500 "typeString": "uint32"
18501 }
18502 },
18503 "nodeType": "BinaryOperation",
18504 "operator": "-",
18505 "rightExpression": {
18506 "argumentTypes": null,
18507 "id": 896,
18508 "name": "blockTimestampLast",
18509 "nodeType": "Identifier",
18510 "overloadedDeclarations": [],
18511 "referencedDeclaration": 687,
18512 "src": "2895:18:3",
18513 "typeDescriptions": {
18514 "typeIdentifier": "t_uint32",
18515 "typeString": "uint32"
18516 }
18517 },
18518 "src": "2878:35:3",
18519 "typeDescriptions": {
18520 "typeIdentifier": "t_uint32",
18521 "typeString": "uint32"
18522 }
18523 },
18524 "nodeType": "VariableDeclarationStatement",
18525 "src": "2857:56:3"
18526 },
18527 {
18528 "condition": {
18529 "argumentTypes": null,
18530 "commonType": {
18531 "typeIdentifier": "t_bool",
18532 "typeString": "bool"
18533 },
18534 "id": 909,
18535 "isConstant": false,
18536 "isLValue": false,
18537 "isPure": false,
18538 "lValueRequested": false,
18539 "leftExpression": {
18540 "argumentTypes": null,
18541 "commonType": {
18542 "typeIdentifier": "t_bool",
18543 "typeString": "bool"
18544 },
18545 "id": 905,
18546 "isConstant": false,
18547 "isLValue": false,
18548 "isPure": false,
18549 "lValueRequested": false,
18550 "leftExpression": {
18551 "argumentTypes": null,
18552 "commonType": {
18553 "typeIdentifier": "t_uint32",
18554 "typeString": "uint32"
18555 },
18556 "id": 901,
18557 "isConstant": false,
18558 "isLValue": false,
18559 "isPure": false,
18560 "lValueRequested": false,
18561 "leftExpression": {
18562 "argumentTypes": null,
18563 "id": 899,
18564 "name": "timeElapsed",
18565 "nodeType": "Identifier",
18566 "overloadedDeclarations": [],
18567 "referencedDeclaration": 894,
18568 "src": "2950:11:3",
18569 "typeDescriptions": {
18570 "typeIdentifier": "t_uint32",
18571 "typeString": "uint32"
18572 }
18573 },
18574 "nodeType": "BinaryOperation",
18575 "operator": ">",
18576 "rightExpression": {
18577 "argumentTypes": null,
18578 "hexValue": "30",
18579 "id": 900,
18580 "isConstant": false,
18581 "isLValue": false,
18582 "isPure": true,
18583 "kind": "number",
18584 "lValueRequested": false,
18585 "nodeType": "Literal",
18586 "src": "2964:1:3",
18587 "subdenomination": null,
18588 "typeDescriptions": {
18589 "typeIdentifier": "t_rational_0_by_1",
18590 "typeString": "int_const 0"
18591 },
18592 "value": "0"
18593 },
18594 "src": "2950:15:3",
18595 "typeDescriptions": {
18596 "typeIdentifier": "t_bool",
18597 "typeString": "bool"
18598 }
18599 },
18600 "nodeType": "BinaryOperation",
18601 "operator": "&&",
18602 "rightExpression": {
18603 "argumentTypes": null,
18604 "commonType": {
18605 "typeIdentifier": "t_uint112",
18606 "typeString": "uint112"
18607 },
18608 "id": 904,
18609 "isConstant": false,
18610 "isLValue": false,
18611 "isPure": false,
18612 "lValueRequested": false,
18613 "leftExpression": {
18614 "argumentTypes": null,
18615 "id": 902,
18616 "name": "_reserve0",
18617 "nodeType": "Identifier",
18618 "overloadedDeclarations": [],
18619 "referencedDeclaration": 857,
18620 "src": "2969:9:3",
18621 "typeDescriptions": {
18622 "typeIdentifier": "t_uint112",
18623 "typeString": "uint112"
18624 }
18625 },
18626 "nodeType": "BinaryOperation",
18627 "operator": "!=",
18628 "rightExpression": {
18629 "argumentTypes": null,
18630 "hexValue": "30",
18631 "id": 903,
18632 "isConstant": false,
18633 "isLValue": false,
18634 "isPure": true,
18635 "kind": "number",
18636 "lValueRequested": false,
18637 "nodeType": "Literal",
18638 "src": "2982:1:3",
18639 "subdenomination": null,
18640 "typeDescriptions": {
18641 "typeIdentifier": "t_rational_0_by_1",
18642 "typeString": "int_const 0"
18643 },
18644 "value": "0"
18645 },
18646 "src": "2969:14:3",
18647 "typeDescriptions": {
18648 "typeIdentifier": "t_bool",
18649 "typeString": "bool"
18650 }
18651 },
18652 "src": "2950:33:3",
18653 "typeDescriptions": {
18654 "typeIdentifier": "t_bool",
18655 "typeString": "bool"
18656 }
18657 },
18658 "nodeType": "BinaryOperation",
18659 "operator": "&&",
18660 "rightExpression": {
18661 "argumentTypes": null,
18662 "commonType": {
18663 "typeIdentifier": "t_uint112",
18664 "typeString": "uint112"
18665 },
18666 "id": 908,
18667 "isConstant": false,
18668 "isLValue": false,
18669 "isPure": false,
18670 "lValueRequested": false,
18671 "leftExpression": {
18672 "argumentTypes": null,
18673 "id": 906,
18674 "name": "_reserve1",
18675 "nodeType": "Identifier",
18676 "overloadedDeclarations": [],
18677 "referencedDeclaration": 859,
18678 "src": "2987:9:3",
18679 "typeDescriptions": {
18680 "typeIdentifier": "t_uint112",
18681 "typeString": "uint112"
18682 }
18683 },
18684 "nodeType": "BinaryOperation",
18685 "operator": "!=",
18686 "rightExpression": {
18687 "argumentTypes": null,
18688 "hexValue": "30",
18689 "id": 907,
18690 "isConstant": false,
18691 "isLValue": false,
18692 "isPure": true,
18693 "kind": "number",
18694 "lValueRequested": false,
18695 "nodeType": "Literal",
18696 "src": "3000:1:3",
18697 "subdenomination": null,
18698 "typeDescriptions": {
18699 "typeIdentifier": "t_rational_0_by_1",
18700 "typeString": "int_const 0"
18701 },
18702 "value": "0"
18703 },
18704 "src": "2987:14:3",
18705 "typeDescriptions": {
18706 "typeIdentifier": "t_bool",
18707 "typeString": "bool"
18708 }
18709 },
18710 "src": "2950:51:3",
18711 "typeDescriptions": {
18712 "typeIdentifier": "t_bool",
18713 "typeString": "bool"
18714 }
18715 },
18716 "falseBody": null,
18717 "id": 941,
18718 "nodeType": "IfStatement",
18719 "src": "2946:332:3",
18720 "trueBody": {
18721 "id": 940,
18722 "nodeType": "Block",
18723 "src": "3003:275:3",
18724 "statements": [
18725 {
18726 "expression": {
18727 "argumentTypes": null,
18728 "id": 923,
18729 "isConstant": false,
18730 "isLValue": false,
18731 "isPure": false,
18732 "lValueRequested": false,
18733 "leftHandSide": {
18734 "argumentTypes": null,
18735 "id": 910,
18736 "name": "price0CumulativeLast",
18737 "nodeType": "Identifier",
18738 "overloadedDeclarations": [],
18739 "referencedDeclaration": 689,
18740 "src": "3077:20:3",
18741 "typeDescriptions": {
18742 "typeIdentifier": "t_uint256",
18743 "typeString": "uint256"
18744 }
18745 },
18746 "nodeType": "Assignment",
18747 "operator": "+=",
18748 "rightHandSide": {
18749 "argumentTypes": null,
18750 "commonType": {
18751 "typeIdentifier": "t_uint256",
18752 "typeString": "uint256"
18753 },
18754 "id": 922,
18755 "isConstant": false,
18756 "isLValue": false,
18757 "isPure": false,
18758 "lValueRequested": false,
18759 "leftExpression": {
18760 "argumentTypes": null,
18761 "arguments": [
18762 {
18763 "argumentTypes": null,
18764 "arguments": [
18765 {
18766 "argumentTypes": null,
18767 "id": 918,
18768 "name": "_reserve0",
18769 "nodeType": "Identifier",
18770 "overloadedDeclarations": [],
18771 "referencedDeclaration": 857,
18772 "src": "3140:9:3",
18773 "typeDescriptions": {
18774 "typeIdentifier": "t_uint112",
18775 "typeString": "uint112"
18776 }
18777 }
18778 ],
18779 "expression": {
18780 "argumentTypes": [
18781 {
18782 "typeIdentifier": "t_uint112",
18783 "typeString": "uint112"
18784 }
18785 ],
18786 "expression": {
18787 "argumentTypes": null,
18788 "arguments": [
18789 {
18790 "argumentTypes": null,
18791 "id": 915,
18792 "name": "_reserve1",
18793 "nodeType": "Identifier",
18794 "overloadedDeclarations": [],
18795 "referencedDeclaration": 859,
18796 "src": "3123:9:3",
18797 "typeDescriptions": {
18798 "typeIdentifier": "t_uint112",
18799 "typeString": "uint112"
18800 }
18801 }
18802 ],
18803 "expression": {
18804 "argumentTypes": [
18805 {
18806 "typeIdentifier": "t_uint112",
18807 "typeString": "uint112"
18808 }
18809 ],
18810 "expression": {
18811 "argumentTypes": null,
18812 "id": 913,
18813 "name": "UQ112x112",
18814 "nodeType": "Identifier",
18815 "overloadedDeclarations": [],
18816 "referencedDeclaration": 2427,
18817 "src": "3106:9:3",
18818 "typeDescriptions": {
18819 "typeIdentifier": "t_type$_t_contract$_UQ112x112_$2427_$",
18820 "typeString": "type(library UQ112x112)"
18821 }
18822 },
18823 "id": 914,
18824 "isConstant": false,
18825 "isLValue": false,
18826 "isPure": false,
18827 "lValueRequested": false,
18828 "memberName": "encode",
18829 "nodeType": "MemberAccess",
18830 "referencedDeclaration": 2407,
18831 "src": "3106:16:3",
18832 "typeDescriptions": {
18833 "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$",
18834 "typeString": "function (uint112) pure returns (uint224)"
18835 }
18836 },
18837 "id": 916,
18838 "isConstant": false,
18839 "isLValue": false,
18840 "isPure": false,
18841 "kind": "functionCall",
18842 "lValueRequested": false,
18843 "names": [],
18844 "nodeType": "FunctionCall",
18845 "src": "3106:27:3",
18846 "tryCall": false,
18847 "typeDescriptions": {
18848 "typeIdentifier": "t_uint224",
18849 "typeString": "uint224"
18850 }
18851 },
18852 "id": 917,
18853 "isConstant": false,
18854 "isLValue": false,
18855 "isPure": false,
18856 "lValueRequested": false,
18857 "memberName": "uqdiv",
18858 "nodeType": "MemberAccess",
18859 "referencedDeclaration": 2426,
18860 "src": "3106:33:3",
18861 "typeDescriptions": {
18862 "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$",
18863 "typeString": "function (uint224,uint112) pure returns (uint224)"
18864 }
18865 },
18866 "id": 919,
18867 "isConstant": false,
18868 "isLValue": false,
18869 "isPure": false,
18870 "kind": "functionCall",
18871 "lValueRequested": false,
18872 "names": [],
18873 "nodeType": "FunctionCall",
18874 "src": "3106:44:3",
18875 "tryCall": false,
18876 "typeDescriptions": {
18877 "typeIdentifier": "t_uint224",
18878 "typeString": "uint224"
18879 }
18880 }
18881 ],
18882 "expression": {
18883 "argumentTypes": [
18884 {
18885 "typeIdentifier": "t_uint224",
18886 "typeString": "uint224"
18887 }
18888 ],
18889 "id": 912,
18890 "isConstant": false,
18891 "isLValue": false,
18892 "isPure": true,
18893 "lValueRequested": false,
18894 "nodeType": "ElementaryTypeNameExpression",
18895 "src": "3101:4:3",
18896 "typeDescriptions": {
18897 "typeIdentifier": "t_type$_t_uint256_$",
18898 "typeString": "type(uint256)"
18899 },
18900 "typeName": {
18901 "id": 911,
18902 "name": "uint",
18903 "nodeType": "ElementaryTypeName",
18904 "src": "3101:4:3",
18905 "typeDescriptions": {
18906 "typeIdentifier": null,
18907 "typeString": null
18908 }
18909 }
18910 },
18911 "id": 920,
18912 "isConstant": false,
18913 "isLValue": false,
18914 "isPure": false,
18915 "kind": "typeConversion",
18916 "lValueRequested": false,
18917 "names": [],
18918 "nodeType": "FunctionCall",
18919 "src": "3101:50:3",
18920 "tryCall": false,
18921 "typeDescriptions": {
18922 "typeIdentifier": "t_uint256",
18923 "typeString": "uint256"
18924 }
18925 },
18926 "nodeType": "BinaryOperation",
18927 "operator": "*",
18928 "rightExpression": {
18929 "argumentTypes": null,
18930 "id": 921,
18931 "name": "timeElapsed",
18932 "nodeType": "Identifier",
18933 "overloadedDeclarations": [],
18934 "referencedDeclaration": 894,
18935 "src": "3154:11:3",
18936 "typeDescriptions": {
18937 "typeIdentifier": "t_uint32",
18938 "typeString": "uint32"
18939 }
18940 },
18941 "src": "3101:64:3",
18942 "typeDescriptions": {
18943 "typeIdentifier": "t_uint256",
18944 "typeString": "uint256"
18945 }
18946 },
18947 "src": "3077:88:3",
18948 "typeDescriptions": {
18949 "typeIdentifier": "t_uint256",
18950 "typeString": "uint256"
18951 }
18952 },
18953 "id": 924,
18954 "nodeType": "ExpressionStatement",
18955 "src": "3077:88:3"
18956 },
18957 {
18958 "expression": {
18959 "argumentTypes": null,
18960 "id": 938,
18961 "isConstant": false,
18962 "isLValue": false,
18963 "isPure": false,
18964 "lValueRequested": false,
18965 "leftHandSide": {
18966 "argumentTypes": null,
18967 "id": 925,
18968 "name": "price1CumulativeLast",
18969 "nodeType": "Identifier",
18970 "overloadedDeclarations": [],
18971 "referencedDeclaration": 691,
18972 "src": "3179:20:3",
18973 "typeDescriptions": {
18974 "typeIdentifier": "t_uint256",
18975 "typeString": "uint256"
18976 }
18977 },
18978 "nodeType": "Assignment",
18979 "operator": "+=",
18980 "rightHandSide": {
18981 "argumentTypes": null,
18982 "commonType": {
18983 "typeIdentifier": "t_uint256",
18984 "typeString": "uint256"
18985 },
18986 "id": 937,
18987 "isConstant": false,
18988 "isLValue": false,
18989 "isPure": false,
18990 "lValueRequested": false,
18991 "leftExpression": {
18992 "argumentTypes": null,
18993 "arguments": [
18994 {
18995 "argumentTypes": null,
18996 "arguments": [
18997 {
18998 "argumentTypes": null,
18999 "id": 933,
19000 "name": "_reserve1",
19001 "nodeType": "Identifier",
19002 "overloadedDeclarations": [],
19003 "referencedDeclaration": 859,
19004 "src": "3242:9:3",
19005 "typeDescriptions": {
19006 "typeIdentifier": "t_uint112",
19007 "typeString": "uint112"
19008 }
19009 }
19010 ],
19011 "expression": {
19012 "argumentTypes": [
19013 {
19014 "typeIdentifier": "t_uint112",
19015 "typeString": "uint112"
19016 }
19017 ],
19018 "expression": {
19019 "argumentTypes": null,
19020 "arguments": [
19021 {
19022 "argumentTypes": null,
19023 "id": 930,
19024 "name": "_reserve0",
19025 "nodeType": "Identifier",
19026 "overloadedDeclarations": [],
19027 "referencedDeclaration": 857,
19028 "src": "3225:9:3",
19029 "typeDescriptions": {
19030 "typeIdentifier": "t_uint112",
19031 "typeString": "uint112"
19032 }
19033 }
19034 ],
19035 "expression": {
19036 "argumentTypes": [
19037 {
19038 "typeIdentifier": "t_uint112",
19039 "typeString": "uint112"
19040 }
19041 ],
19042 "expression": {
19043 "argumentTypes": null,
19044 "id": 928,
19045 "name": "UQ112x112",
19046 "nodeType": "Identifier",
19047 "overloadedDeclarations": [],
19048 "referencedDeclaration": 2427,
19049 "src": "3208:9:3",
19050 "typeDescriptions": {
19051 "typeIdentifier": "t_type$_t_contract$_UQ112x112_$2427_$",
19052 "typeString": "type(library UQ112x112)"
19053 }
19054 },
19055 "id": 929,
19056 "isConstant": false,
19057 "isLValue": false,
19058 "isPure": false,
19059 "lValueRequested": false,
19060 "memberName": "encode",
19061 "nodeType": "MemberAccess",
19062 "referencedDeclaration": 2407,
19063 "src": "3208:16:3",
19064 "typeDescriptions": {
19065 "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$",
19066 "typeString": "function (uint112) pure returns (uint224)"
19067 }
19068 },
19069 "id": 931,
19070 "isConstant": false,
19071 "isLValue": false,
19072 "isPure": false,
19073 "kind": "functionCall",
19074 "lValueRequested": false,
19075 "names": [],
19076 "nodeType": "FunctionCall",
19077 "src": "3208:27:3",
19078 "tryCall": false,
19079 "typeDescriptions": {
19080 "typeIdentifier": "t_uint224",
19081 "typeString": "uint224"
19082 }
19083 },
19084 "id": 932,
19085 "isConstant": false,
19086 "isLValue": false,
19087 "isPure": false,
19088 "lValueRequested": false,
19089 "memberName": "uqdiv",
19090 "nodeType": "MemberAccess",
19091 "referencedDeclaration": 2426,
19092 "src": "3208:33:3",
19093 "typeDescriptions": {
19094 "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$",
19095 "typeString": "function (uint224,uint112) pure returns (uint224)"
19096 }
19097 },
19098 "id": 934,
19099 "isConstant": false,
19100 "isLValue": false,
19101 "isPure": false,
19102 "kind": "functionCall",
19103 "lValueRequested": false,
19104 "names": [],
19105 "nodeType": "FunctionCall",
19106 "src": "3208:44:3",
19107 "tryCall": false,
19108 "typeDescriptions": {
19109 "typeIdentifier": "t_uint224",
19110 "typeString": "uint224"
19111 }
19112 }
19113 ],
19114 "expression": {
19115 "argumentTypes": [
19116 {
19117 "typeIdentifier": "t_uint224",
19118 "typeString": "uint224"
19119 }
19120 ],
19121 "id": 927,
19122 "isConstant": false,
19123 "isLValue": false,
19124 "isPure": true,
19125 "lValueRequested": false,
19126 "nodeType": "ElementaryTypeNameExpression",
19127 "src": "3203:4:3",
19128 "typeDescriptions": {
19129 "typeIdentifier": "t_type$_t_uint256_$",
19130 "typeString": "type(uint256)"
19131 },
19132 "typeName": {
19133 "id": 926,
19134 "name": "uint",
19135 "nodeType": "ElementaryTypeName",
19136 "src": "3203:4:3",
19137 "typeDescriptions": {
19138 "typeIdentifier": null,
19139 "typeString": null
19140 }
19141 }
19142 },
19143 "id": 935,
19144 "isConstant": false,
19145 "isLValue": false,
19146 "isPure": false,
19147 "kind": "typeConversion",
19148 "lValueRequested": false,
19149 "names": [],
19150 "nodeType": "FunctionCall",
19151 "src": "3203:50:3",
19152 "tryCall": false,
19153 "typeDescriptions": {
19154 "typeIdentifier": "t_uint256",
19155 "typeString": "uint256"
19156 }
19157 },
19158 "nodeType": "BinaryOperation",
19159 "operator": "*",
19160 "rightExpression": {
19161 "argumentTypes": null,
19162 "id": 936,
19163 "name": "timeElapsed",
19164 "nodeType": "Identifier",
19165 "overloadedDeclarations": [],
19166 "referencedDeclaration": 894,
19167 "src": "3256:11:3",
19168 "typeDescriptions": {
19169 "typeIdentifier": "t_uint32",
19170 "typeString": "uint32"
19171 }
19172 },
19173 "src": "3203:64:3",
19174 "typeDescriptions": {
19175 "typeIdentifier": "t_uint256",
19176 "typeString": "uint256"
19177 }
19178 },
19179 "src": "3179:88:3",
19180 "typeDescriptions": {
19181 "typeIdentifier": "t_uint256",
19182 "typeString": "uint256"
19183 }
19184 },
19185 "id": 939,
19186 "nodeType": "ExpressionStatement",
19187 "src": "3179:88:3"
19188 }
19189 ]
19190 }
19191 },
19192 {
19193 "expression": {
19194 "argumentTypes": null,
19195 "id": 947,
19196 "isConstant": false,
19197 "isLValue": false,
19198 "isPure": false,
19199 "lValueRequested": false,
19200 "leftHandSide": {
19201 "argumentTypes": null,
19202 "id": 942,
19203 "name": "reserve0",
19204 "nodeType": "Identifier",
19205 "overloadedDeclarations": [],
19206 "referencedDeclaration": 683,
19207 "src": "3287:8:3",
19208 "typeDescriptions": {
19209 "typeIdentifier": "t_uint112",
19210 "typeString": "uint112"
19211 }
19212 },
19213 "nodeType": "Assignment",
19214 "operator": "=",
19215 "rightHandSide": {
19216 "argumentTypes": null,
19217 "arguments": [
19218 {
19219 "argumentTypes": null,
19220 "id": 945,
19221 "name": "balance0",
19222 "nodeType": "Identifier",
19223 "overloadedDeclarations": [],
19224 "referencedDeclaration": 853,
19225 "src": "3306:8:3",
19226 "typeDescriptions": {
19227 "typeIdentifier": "t_uint256",
19228 "typeString": "uint256"
19229 }
19230 }
19231 ],
19232 "expression": {
19233 "argumentTypes": [
19234 {
19235 "typeIdentifier": "t_uint256",
19236 "typeString": "uint256"
19237 }
19238 ],
19239 "id": 944,
19240 "isConstant": false,
19241 "isLValue": false,
19242 "isPure": true,
19243 "lValueRequested": false,
19244 "nodeType": "ElementaryTypeNameExpression",
19245 "src": "3298:7:3",
19246 "typeDescriptions": {
19247 "typeIdentifier": "t_type$_t_uint112_$",
19248 "typeString": "type(uint112)"
19249 },
19250 "typeName": {
19251 "id": 943,
19252 "name": "uint112",
19253 "nodeType": "ElementaryTypeName",
19254 "src": "3298:7:3",
19255 "typeDescriptions": {
19256 "typeIdentifier": null,
19257 "typeString": null
19258 }
19259 }
19260 },
19261 "id": 946,
19262 "isConstant": false,
19263 "isLValue": false,
19264 "isPure": false,
19265 "kind": "typeConversion",
19266 "lValueRequested": false,
19267 "names": [],
19268 "nodeType": "FunctionCall",
19269 "src": "3298:17:3",
19270 "tryCall": false,
19271 "typeDescriptions": {
19272 "typeIdentifier": "t_uint112",
19273 "typeString": "uint112"
19274 }
19275 },
19276 "src": "3287:28:3",
19277 "typeDescriptions": {
19278 "typeIdentifier": "t_uint112",
19279 "typeString": "uint112"
19280 }
19281 },
19282 "id": 948,
19283 "nodeType": "ExpressionStatement",
19284 "src": "3287:28:3"
19285 },
19286 {
19287 "expression": {
19288 "argumentTypes": null,
19289 "id": 954,
19290 "isConstant": false,
19291 "isLValue": false,
19292 "isPure": false,
19293 "lValueRequested": false,
19294 "leftHandSide": {
19295 "argumentTypes": null,
19296 "id": 949,
19297 "name": "reserve1",
19298 "nodeType": "Identifier",
19299 "overloadedDeclarations": [],
19300 "referencedDeclaration": 685,
19301 "src": "3325:8:3",
19302 "typeDescriptions": {
19303 "typeIdentifier": "t_uint112",
19304 "typeString": "uint112"
19305 }
19306 },
19307 "nodeType": "Assignment",
19308 "operator": "=",
19309 "rightHandSide": {
19310 "argumentTypes": null,
19311 "arguments": [
19312 {
19313 "argumentTypes": null,
19314 "id": 952,
19315 "name": "balance1",
19316 "nodeType": "Identifier",
19317 "overloadedDeclarations": [],
19318 "referencedDeclaration": 855,
19319 "src": "3344:8:3",
19320 "typeDescriptions": {
19321 "typeIdentifier": "t_uint256",
19322 "typeString": "uint256"
19323 }
19324 }
19325 ],
19326 "expression": {
19327 "argumentTypes": [
19328 {
19329 "typeIdentifier": "t_uint256",
19330 "typeString": "uint256"
19331 }
19332 ],
19333 "id": 951,
19334 "isConstant": false,
19335 "isLValue": false,
19336 "isPure": true,
19337 "lValueRequested": false,
19338 "nodeType": "ElementaryTypeNameExpression",
19339 "src": "3336:7:3",
19340 "typeDescriptions": {
19341 "typeIdentifier": "t_type$_t_uint112_$",
19342 "typeString": "type(uint112)"
19343 },
19344 "typeName": {
19345 "id": 950,
19346 "name": "uint112",
19347 "nodeType": "ElementaryTypeName",
19348 "src": "3336:7:3",
19349 "typeDescriptions": {
19350 "typeIdentifier": null,
19351 "typeString": null
19352 }
19353 }
19354 },
19355 "id": 953,
19356 "isConstant": false,
19357 "isLValue": false,
19358 "isPure": false,
19359 "kind": "typeConversion",
19360 "lValueRequested": false,
19361 "names": [],
19362 "nodeType": "FunctionCall",
19363 "src": "3336:17:3",
19364 "tryCall": false,
19365 "typeDescriptions": {
19366 "typeIdentifier": "t_uint112",
19367 "typeString": "uint112"
19368 }
19369 },
19370 "src": "3325:28:3",
19371 "typeDescriptions": {
19372 "typeIdentifier": "t_uint112",
19373 "typeString": "uint112"
19374 }
19375 },
19376 "id": 955,
19377 "nodeType": "ExpressionStatement",
19378 "src": "3325:28:3"
19379 },
19380 {
19381 "expression": {
19382 "argumentTypes": null,
19383 "id": 958,
19384 "isConstant": false,
19385 "isLValue": false,
19386 "isPure": false,
19387 "lValueRequested": false,
19388 "leftHandSide": {
19389 "argumentTypes": null,
19390 "id": 956,
19391 "name": "blockTimestampLast",
19392 "nodeType": "Identifier",
19393 "overloadedDeclarations": [],
19394 "referencedDeclaration": 687,
19395 "src": "3363:18:3",
19396 "typeDescriptions": {
19397 "typeIdentifier": "t_uint32",
19398 "typeString": "uint32"
19399 }
19400 },
19401 "nodeType": "Assignment",
19402 "operator": "=",
19403 "rightHandSide": {
19404 "argumentTypes": null,
19405 "id": 957,
19406 "name": "blockTimestamp",
19407 "nodeType": "Identifier",
19408 "overloadedDeclarations": [],
19409 "referencedDeclaration": 882,
19410 "src": "3384:14:3",
19411 "typeDescriptions": {
19412 "typeIdentifier": "t_uint32",
19413 "typeString": "uint32"
19414 }
19415 },
19416 "src": "3363:35:3",
19417 "typeDescriptions": {
19418 "typeIdentifier": "t_uint32",
19419 "typeString": "uint32"
19420 }
19421 },
19422 "id": 959,
19423 "nodeType": "ExpressionStatement",
19424 "src": "3363:35:3"
19425 },
19426 {
19427 "eventCall": {
19428 "argumentTypes": null,
19429 "arguments": [
19430 {
19431 "argumentTypes": null,
19432 "id": 961,
19433 "name": "reserve0",
19434 "nodeType": "Identifier",
19435 "overloadedDeclarations": [],
19436 "referencedDeclaration": 683,
19437 "src": "3418:8:3",
19438 "typeDescriptions": {
19439 "typeIdentifier": "t_uint112",
19440 "typeString": "uint112"
19441 }
19442 },
19443 {
19444 "argumentTypes": null,
19445 "id": 962,
19446 "name": "reserve1",
19447 "nodeType": "Identifier",
19448 "overloadedDeclarations": [],
19449 "referencedDeclaration": 685,
19450 "src": "3428:8:3",
19451 "typeDescriptions": {
19452 "typeIdentifier": "t_uint112",
19453 "typeString": "uint112"
19454 }
19455 }
19456 ],
19457 "expression": {
19458 "argumentTypes": [
19459 {
19460 "typeIdentifier": "t_uint112",
19461 "typeString": "uint112"
19462 },
19463 {
19464 "typeIdentifier": "t_uint112",
19465 "typeString": "uint112"
19466 }
19467 ],
19468 "id": 960,
19469 "name": "Sync",
19470 "nodeType": "Identifier",
19471 "overloadedDeclarations": [],
19472 "referencedDeclaration": 818,
19473 "src": "3413:4:3",
19474 "typeDescriptions": {
19475 "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$",
19476 "typeString": "function (uint112,uint112)"
19477 }
19478 },
19479 "id": 963,
19480 "isConstant": false,
19481 "isLValue": false,
19482 "isPure": false,
19483 "kind": "functionCall",
19484 "lValueRequested": false,
19485 "names": [],
19486 "nodeType": "FunctionCall",
19487 "src": "3413:24:3",
19488 "tryCall": false,
19489 "typeDescriptions": {
19490 "typeIdentifier": "t_tuple$__$",
19491 "typeString": "tuple()"
19492 }
19493 },
19494 "id": 964,
19495 "nodeType": "EmitStatement",
19496 "src": "3408:29:3"
19497 }
19498 ]
19499 },
19500 "documentation": null,
19501 "id": 966,
19502 "implemented": true,
19503 "kind": "function",
19504 "modifiers": [],
19505 "name": "_update",
19506 "nodeType": "FunctionDefinition",
19507 "overrides": null,
19508 "parameters": {
19509 "id": 860,
19510 "nodeType": "ParameterList",
19511 "parameters": [
19512 {
19513 "constant": false,
19514 "id": 853,
19515 "mutability": "mutable",
19516 "name": "balance0",
19517 "nodeType": "VariableDeclaration",
19518 "overrides": null,
19519 "scope": 966,
19520 "src": "2614:13:3",
19521 "stateVariable": false,
19522 "storageLocation": "default",
19523 "typeDescriptions": {
19524 "typeIdentifier": "t_uint256",
19525 "typeString": "uint256"
19526 },
19527 "typeName": {
19528 "id": 852,
19529 "name": "uint",
19530 "nodeType": "ElementaryTypeName",
19531 "src": "2614:4:3",
19532 "typeDescriptions": {
19533 "typeIdentifier": "t_uint256",
19534 "typeString": "uint256"
19535 }
19536 },
19537 "value": null,
19538 "visibility": "internal"
19539 },
19540 {
19541 "constant": false,
19542 "id": 855,
19543 "mutability": "mutable",
19544 "name": "balance1",
19545 "nodeType": "VariableDeclaration",
19546 "overrides": null,
19547 "scope": 966,
19548 "src": "2629:13:3",
19549 "stateVariable": false,
19550 "storageLocation": "default",
19551 "typeDescriptions": {
19552 "typeIdentifier": "t_uint256",
19553 "typeString": "uint256"
19554 },
19555 "typeName": {
19556 "id": 854,
19557 "name": "uint",
19558 "nodeType": "ElementaryTypeName",
19559 "src": "2629:4:3",
19560 "typeDescriptions": {
19561 "typeIdentifier": "t_uint256",
19562 "typeString": "uint256"
19563 }
19564 },
19565 "value": null,
19566 "visibility": "internal"
19567 },
19568 {
19569 "constant": false,
19570 "id": 857,
19571 "mutability": "mutable",
19572 "name": "_reserve0",
19573 "nodeType": "VariableDeclaration",
19574 "overrides": null,
19575 "scope": 966,
19576 "src": "2644:17:3",
19577 "stateVariable": false,
19578 "storageLocation": "default",
19579 "typeDescriptions": {
19580 "typeIdentifier": "t_uint112",
19581 "typeString": "uint112"
19582 },
19583 "typeName": {
19584 "id": 856,
19585 "name": "uint112",
19586 "nodeType": "ElementaryTypeName",
19587 "src": "2644:7:3",
19588 "typeDescriptions": {
19589 "typeIdentifier": "t_uint112",
19590 "typeString": "uint112"
19591 }
19592 },
19593 "value": null,
19594 "visibility": "internal"
19595 },
19596 {
19597 "constant": false,
19598 "id": 859,
19599 "mutability": "mutable",
19600 "name": "_reserve1",
19601 "nodeType": "VariableDeclaration",
19602 "overrides": null,
19603 "scope": 966,
19604 "src": "2663:17:3",
19605 "stateVariable": false,
19606 "storageLocation": "default",
19607 "typeDescriptions": {
19608 "typeIdentifier": "t_uint112",
19609 "typeString": "uint112"
19610 },
19611 "typeName": {
19612 "id": 858,
19613 "name": "uint112",
19614 "nodeType": "ElementaryTypeName",
19615 "src": "2663:7:3",
19616 "typeDescriptions": {
19617 "typeIdentifier": "t_uint112",
19618 "typeString": "uint112"
19619 }
19620 },
19621 "value": null,
19622 "visibility": "internal"
19623 }
19624 ],
19625 "src": "2613:68:3"
19626 },
19627 "returnParameters": {
19628 "id": 861,
19629 "nodeType": "ParameterList",
19630 "parameters": [],
19631 "src": "2690:0:3"
19632 },
19633 "scope": 1711,
19634 "src": "2597:847:3",
19635 "stateMutability": "nonpayable",
19636 "virtual": false,
19637 "visibility": "private"
19638 },
19639 {
19640 "body": {
19641 "id": 1073,
19642 "nodeType": "Block",
19643 "src": "3616:734:3",
19644 "statements": [
19645 {
19646 "assignments": [
19647 976
19648 ],
19649 "declarations": [
19650 {
19651 "constant": false,
19652 "id": 976,
19653 "mutability": "mutable",
19654 "name": "feeTo",
19655 "nodeType": "VariableDeclaration",
19656 "overrides": null,
19657 "scope": 1073,
19658 "src": "3626:13:3",
19659 "stateVariable": false,
19660 "storageLocation": "default",
19661 "typeDescriptions": {
19662 "typeIdentifier": "t_address",
19663 "typeString": "address"
19664 },
19665 "typeName": {
19666 "id": 975,
19667 "name": "address",
19668 "nodeType": "ElementaryTypeName",
19669 "src": "3626:7:3",
19670 "stateMutability": "nonpayable",
19671 "typeDescriptions": {
19672 "typeIdentifier": "t_address",
19673 "typeString": "address"
19674 }
19675 },
19676 "value": null,
19677 "visibility": "internal"
19678 }
19679 ],
19680 "id": 982,
19681 "initialValue": {
19682 "argumentTypes": null,
19683 "arguments": [],
19684 "expression": {
19685 "argumentTypes": [],
19686 "expression": {
19687 "argumentTypes": null,
19688 "arguments": [
19689 {
19690 "argumentTypes": null,
19691 "id": 978,
19692 "name": "factory",
19693 "nodeType": "Identifier",
19694 "overloadedDeclarations": [],
19695 "referencedDeclaration": 677,
19696 "src": "3660:7:3",
19697 "typeDescriptions": {
19698 "typeIdentifier": "t_address",
19699 "typeString": "address"
19700 }
19701 }
19702 ],
19703 "expression": {
19704 "argumentTypes": [
19705 {
19706 "typeIdentifier": "t_address",
19707 "typeString": "address"
19708 }
19709 ],
19710 "id": 977,
19711 "name": "IUniswapV2Factory",
19712 "nodeType": "Identifier",
19713 "overloadedDeclarations": [],
19714 "referencedDeclaration": 1990,
19715 "src": "3642:17:3",
19716 "typeDescriptions": {
19717 "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$1990_$",
19718 "typeString": "type(contract IUniswapV2Factory)"
19719 }
19720 },
19721 "id": 979,
19722 "isConstant": false,
19723 "isLValue": false,
19724 "isPure": false,
19725 "kind": "typeConversion",
19726 "lValueRequested": false,
19727 "names": [],
19728 "nodeType": "FunctionCall",
19729 "src": "3642:26:3",
19730 "tryCall": false,
19731 "typeDescriptions": {
19732 "typeIdentifier": "t_contract$_IUniswapV2Factory_$1990",
19733 "typeString": "contract IUniswapV2Factory"
19734 }
19735 },
19736 "id": 980,
19737 "isConstant": false,
19738 "isLValue": false,
19739 "isPure": false,
19740 "lValueRequested": false,
19741 "memberName": "feeTo",
19742 "nodeType": "MemberAccess",
19743 "referencedDeclaration": 1944,
19744 "src": "3642:32:3",
19745 "typeDescriptions": {
19746 "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
19747 "typeString": "function () view external returns (address)"
19748 }
19749 },
19750 "id": 981,
19751 "isConstant": false,
19752 "isLValue": false,
19753 "isPure": false,
19754 "kind": "functionCall",
19755 "lValueRequested": false,
19756 "names": [],
19757 "nodeType": "FunctionCall",
19758 "src": "3642:34:3",
19759 "tryCall": false,
19760 "typeDescriptions": {
19761 "typeIdentifier": "t_address",
19762 "typeString": "address"
19763 }
19764 },
19765 "nodeType": "VariableDeclarationStatement",
19766 "src": "3626:50:3"
19767 },
19768 {
19769 "expression": {
19770 "argumentTypes": null,
19771 "id": 990,
19772 "isConstant": false,
19773 "isLValue": false,
19774 "isPure": false,
19775 "lValueRequested": false,
19776 "leftHandSide": {
19777 "argumentTypes": null,
19778 "id": 983,
19779 "name": "feeOn",
19780 "nodeType": "Identifier",
19781 "overloadedDeclarations": [],
19782 "referencedDeclaration": 973,
19783 "src": "3686:5:3",
19784 "typeDescriptions": {
19785 "typeIdentifier": "t_bool",
19786 "typeString": "bool"
19787 }
19788 },
19789 "nodeType": "Assignment",
19790 "operator": "=",
19791 "rightHandSide": {
19792 "argumentTypes": null,
19793 "commonType": {
19794 "typeIdentifier": "t_address",
19795 "typeString": "address"
19796 },
19797 "id": 989,
19798 "isConstant": false,
19799 "isLValue": false,
19800 "isPure": false,
19801 "lValueRequested": false,
19802 "leftExpression": {
19803 "argumentTypes": null,
19804 "id": 984,
19805 "name": "feeTo",
19806 "nodeType": "Identifier",
19807 "overloadedDeclarations": [],
19808 "referencedDeclaration": 976,
19809 "src": "3694:5:3",
19810 "typeDescriptions": {
19811 "typeIdentifier": "t_address",
19812 "typeString": "address"
19813 }
19814 },
19815 "nodeType": "BinaryOperation",
19816 "operator": "!=",
19817 "rightExpression": {
19818 "argumentTypes": null,
19819 "arguments": [
19820 {
19821 "argumentTypes": null,
19822 "hexValue": "30",
19823 "id": 987,
19824 "isConstant": false,
19825 "isLValue": false,
19826 "isPure": true,
19827 "kind": "number",
19828 "lValueRequested": false,
19829 "nodeType": "Literal",
19830 "src": "3711:1:3",
19831 "subdenomination": null,
19832 "typeDescriptions": {
19833 "typeIdentifier": "t_rational_0_by_1",
19834 "typeString": "int_const 0"
19835 },
19836 "value": "0"
19837 }
19838 ],
19839 "expression": {
19840 "argumentTypes": [
19841 {
19842 "typeIdentifier": "t_rational_0_by_1",
19843 "typeString": "int_const 0"
19844 }
19845 ],
19846 "id": 986,
19847 "isConstant": false,
19848 "isLValue": false,
19849 "isPure": true,
19850 "lValueRequested": false,
19851 "nodeType": "ElementaryTypeNameExpression",
19852 "src": "3703:7:3",
19853 "typeDescriptions": {
19854 "typeIdentifier": "t_type$_t_address_$",
19855 "typeString": "type(address)"
19856 },
19857 "typeName": {
19858 "id": 985,
19859 "name": "address",
19860 "nodeType": "ElementaryTypeName",
19861 "src": "3703:7:3",
19862 "typeDescriptions": {
19863 "typeIdentifier": null,
19864 "typeString": null
19865 }
19866 }
19867 },
19868 "id": 988,
19869 "isConstant": false,
19870 "isLValue": false,
19871 "isPure": true,
19872 "kind": "typeConversion",
19873 "lValueRequested": false,
19874 "names": [],
19875 "nodeType": "FunctionCall",
19876 "src": "3703:10:3",
19877 "tryCall": false,
19878 "typeDescriptions": {
19879 "typeIdentifier": "t_address_payable",
19880 "typeString": "address payable"
19881 }
19882 },
19883 "src": "3694:19:3",
19884 "typeDescriptions": {
19885 "typeIdentifier": "t_bool",
19886 "typeString": "bool"
19887 }
19888 },
19889 "src": "3686:27:3",
19890 "typeDescriptions": {
19891 "typeIdentifier": "t_bool",
19892 "typeString": "bool"
19893 }
19894 },
19895 "id": 991,
19896 "nodeType": "ExpressionStatement",
19897 "src": "3686:27:3"
19898 },
19899 {
19900 "assignments": [
19901 993
19902 ],
19903 "declarations": [
19904 {
19905 "constant": false,
19906 "id": 993,
19907 "mutability": "mutable",
19908 "name": "_kLast",
19909 "nodeType": "VariableDeclaration",
19910 "overrides": null,
19911 "scope": 1073,
19912 "src": "3723:11:3",
19913 "stateVariable": false,
19914 "storageLocation": "default",
19915 "typeDescriptions": {
19916 "typeIdentifier": "t_uint256",
19917 "typeString": "uint256"
19918 },
19919 "typeName": {
19920 "id": 992,
19921 "name": "uint",
19922 "nodeType": "ElementaryTypeName",
19923 "src": "3723:4:3",
19924 "typeDescriptions": {
19925 "typeIdentifier": "t_uint256",
19926 "typeString": "uint256"
19927 }
19928 },
19929 "value": null,
19930 "visibility": "internal"
19931 }
19932 ],
19933 "id": 995,
19934 "initialValue": {
19935 "argumentTypes": null,
19936 "id": 994,
19937 "name": "kLast",
19938 "nodeType": "Identifier",
19939 "overloadedDeclarations": [],
19940 "referencedDeclaration": 693,
19941 "src": "3737:5:3",
19942 "typeDescriptions": {
19943 "typeIdentifier": "t_uint256",
19944 "typeString": "uint256"
19945 }
19946 },
19947 "nodeType": "VariableDeclarationStatement",
19948 "src": "3723:19:3"
19949 },
19950 {
19951 "condition": {
19952 "argumentTypes": null,
19953 "id": 996,
19954 "name": "feeOn",
19955 "nodeType": "Identifier",
19956 "overloadedDeclarations": [],
19957 "referencedDeclaration": 973,
19958 "src": "3771:5:3",
19959 "typeDescriptions": {
19960 "typeIdentifier": "t_bool",
19961 "typeString": "bool"
19962 }
19963 },
19964 "falseBody": {
19965 "condition": {
19966 "argumentTypes": null,
19967 "commonType": {
19968 "typeIdentifier": "t_uint256",
19969 "typeString": "uint256"
19970 },
19971 "id": 1065,
19972 "isConstant": false,
19973 "isLValue": false,
19974 "isPure": false,
19975 "lValueRequested": false,
19976 "leftExpression": {
19977 "argumentTypes": null,
19978 "id": 1063,
19979 "name": "_kLast",
19980 "nodeType": "Identifier",
19981 "overloadedDeclarations": [],
19982 "referencedDeclaration": 993,
19983 "src": "4297:6:3",
19984 "typeDescriptions": {
19985 "typeIdentifier": "t_uint256",
19986 "typeString": "uint256"
19987 }
19988 },
19989 "nodeType": "BinaryOperation",
19990 "operator": "!=",
19991 "rightExpression": {
19992 "argumentTypes": null,
19993 "hexValue": "30",
19994 "id": 1064,
19995 "isConstant": false,
19996 "isLValue": false,
19997 "isPure": true,
19998 "kind": "number",
19999 "lValueRequested": false,
20000 "nodeType": "Literal",
20001 "src": "4307:1:3",
20002 "subdenomination": null,
20003 "typeDescriptions": {
20004 "typeIdentifier": "t_rational_0_by_1",
20005 "typeString": "int_const 0"
20006 },
20007 "value": "0"
20008 },
20009 "src": "4297:11:3",
20010 "typeDescriptions": {
20011 "typeIdentifier": "t_bool",
20012 "typeString": "bool"
20013 }
20014 },
20015 "falseBody": null,
20016 "id": 1071,
20017 "nodeType": "IfStatement",
20018 "src": "4293:51:3",
20019 "trueBody": {
20020 "id": 1070,
20021 "nodeType": "Block",
20022 "src": "4310:34:3",
20023 "statements": [
20024 {
20025 "expression": {
20026 "argumentTypes": null,
20027 "id": 1068,
20028 "isConstant": false,
20029 "isLValue": false,
20030 "isPure": false,
20031 "lValueRequested": false,
20032 "leftHandSide": {
20033 "argumentTypes": null,
20034 "id": 1066,
20035 "name": "kLast",
20036 "nodeType": "Identifier",
20037 "overloadedDeclarations": [],
20038 "referencedDeclaration": 693,
20039 "src": "4324:5:3",
20040 "typeDescriptions": {
20041 "typeIdentifier": "t_uint256",
20042 "typeString": "uint256"
20043 }
20044 },
20045 "nodeType": "Assignment",
20046 "operator": "=",
20047 "rightHandSide": {
20048 "argumentTypes": null,
20049 "hexValue": "30",
20050 "id": 1067,
20051 "isConstant": false,
20052 "isLValue": false,
20053 "isPure": true,
20054 "kind": "number",
20055 "lValueRequested": false,
20056 "nodeType": "Literal",
20057 "src": "4332:1:3",
20058 "subdenomination": null,
20059 "typeDescriptions": {
20060 "typeIdentifier": "t_rational_0_by_1",
20061 "typeString": "int_const 0"
20062 },
20063 "value": "0"
20064 },
20065 "src": "4324:9:3",
20066 "typeDescriptions": {
20067 "typeIdentifier": "t_uint256",
20068 "typeString": "uint256"
20069 }
20070 },
20071 "id": 1069,
20072 "nodeType": "ExpressionStatement",
20073 "src": "4324:9:3"
20074 }
20075 ]
20076 }
20077 },
20078 "id": 1072,
20079 "nodeType": "IfStatement",
20080 "src": "3767:577:3",
20081 "trueBody": {
20082 "id": 1062,
20083 "nodeType": "Block",
20084 "src": "3778:509:3",
20085 "statements": [
20086 {
20087 "condition": {
20088 "argumentTypes": null,
20089 "commonType": {
20090 "typeIdentifier": "t_uint256",
20091 "typeString": "uint256"
20092 },
20093 "id": 999,
20094 "isConstant": false,
20095 "isLValue": false,
20096 "isPure": false,
20097 "lValueRequested": false,
20098 "leftExpression": {
20099 "argumentTypes": null,
20100 "id": 997,
20101 "name": "_kLast",
20102 "nodeType": "Identifier",
20103 "overloadedDeclarations": [],
20104 "referencedDeclaration": 993,
20105 "src": "3796:6:3",
20106 "typeDescriptions": {
20107 "typeIdentifier": "t_uint256",
20108 "typeString": "uint256"
20109 }
20110 },
20111 "nodeType": "BinaryOperation",
20112 "operator": "!=",
20113 "rightExpression": {
20114 "argumentTypes": null,
20115 "hexValue": "30",
20116 "id": 998,
20117 "isConstant": false,
20118 "isLValue": false,
20119 "isPure": true,
20120 "kind": "number",
20121 "lValueRequested": false,
20122 "nodeType": "Literal",
20123 "src": "3806:1:3",
20124 "subdenomination": null,
20125 "typeDescriptions": {
20126 "typeIdentifier": "t_rational_0_by_1",
20127 "typeString": "int_const 0"
20128 },
20129 "value": "0"
20130 },
20131 "src": "3796:11:3",
20132 "typeDescriptions": {
20133 "typeIdentifier": "t_bool",
20134 "typeString": "bool"
20135 }
20136 },
20137 "falseBody": null,
20138 "id": 1061,
20139 "nodeType": "IfStatement",
20140 "src": "3792:485:3",
20141 "trueBody": {
20142 "id": 1060,
20143 "nodeType": "Block",
20144 "src": "3809:468:3",
20145 "statements": [
20146 {
20147 "assignments": [
20148 1001
20149 ],
20150 "declarations": [
20151 {
20152 "constant": false,
20153 "id": 1001,
20154 "mutability": "mutable",
20155 "name": "rootK",
20156 "nodeType": "VariableDeclaration",
20157 "overrides": null,
20158 "scope": 1060,
20159 "src": "3827:10:3",
20160 "stateVariable": false,
20161 "storageLocation": "default",
20162 "typeDescriptions": {
20163 "typeIdentifier": "t_uint256",
20164 "typeString": "uint256"
20165 },
20166 "typeName": {
20167 "id": 1000,
20168 "name": "uint",
20169 "nodeType": "ElementaryTypeName",
20170 "src": "3827:4:3",
20171 "typeDescriptions": {
20172 "typeIdentifier": "t_uint256",
20173 "typeString": "uint256"
20174 }
20175 },
20176 "value": null,
20177 "visibility": "internal"
20178 }
20179 ],
20180 "id": 1012,
20181 "initialValue": {
20182 "argumentTypes": null,
20183 "arguments": [
20184 {
20185 "argumentTypes": null,
20186 "arguments": [
20187 {
20188 "argumentTypes": null,
20189 "id": 1009,
20190 "name": "_reserve1",
20191 "nodeType": "Identifier",
20192 "overloadedDeclarations": [],
20193 "referencedDeclaration": 970,
20194 "src": "3870:9:3",
20195 "typeDescriptions": {
20196 "typeIdentifier": "t_uint112",
20197 "typeString": "uint112"
20198 }
20199 }
20200 ],
20201 "expression": {
20202 "argumentTypes": [
20203 {
20204 "typeIdentifier": "t_uint112",
20205 "typeString": "uint112"
20206 }
20207 ],
20208 "expression": {
20209 "argumentTypes": null,
20210 "arguments": [
20211 {
20212 "argumentTypes": null,
20213 "id": 1006,
20214 "name": "_reserve0",
20215 "nodeType": "Identifier",
20216 "overloadedDeclarations": [],
20217 "referencedDeclaration": 968,
20218 "src": "3855:9:3",
20219 "typeDescriptions": {
20220 "typeIdentifier": "t_uint112",
20221 "typeString": "uint112"
20222 }
20223 }
20224 ],
20225 "expression": {
20226 "argumentTypes": [
20227 {
20228 "typeIdentifier": "t_uint112",
20229 "typeString": "uint112"
20230 }
20231 ],
20232 "id": 1005,
20233 "isConstant": false,
20234 "isLValue": false,
20235 "isPure": true,
20236 "lValueRequested": false,
20237 "nodeType": "ElementaryTypeNameExpression",
20238 "src": "3850:4:3",
20239 "typeDescriptions": {
20240 "typeIdentifier": "t_type$_t_uint256_$",
20241 "typeString": "type(uint256)"
20242 },
20243 "typeName": {
20244 "id": 1004,
20245 "name": "uint",
20246 "nodeType": "ElementaryTypeName",
20247 "src": "3850:4:3",
20248 "typeDescriptions": {
20249 "typeIdentifier": null,
20250 "typeString": null
20251 }
20252 }
20253 },
20254 "id": 1007,
20255 "isConstant": false,
20256 "isLValue": false,
20257 "isPure": false,
20258 "kind": "typeConversion",
20259 "lValueRequested": false,
20260 "names": [],
20261 "nodeType": "FunctionCall",
20262 "src": "3850:15:3",
20263 "tryCall": false,
20264 "typeDescriptions": {
20265 "typeIdentifier": "t_uint256",
20266 "typeString": "uint256"
20267 }
20268 },
20269 "id": 1008,
20270 "isConstant": false,
20271 "isLValue": false,
20272 "isPure": false,
20273 "lValueRequested": false,
20274 "memberName": "mul",
20275 "nodeType": "MemberAccess",
20276 "referencedDeclaration": 2382,
20277 "src": "3850:19:3",
20278 "typeDescriptions": {
20279 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
20280 "typeString": "function (uint256,uint256) pure returns (uint256)"
20281 }
20282 },
20283 "id": 1010,
20284 "isConstant": false,
20285 "isLValue": false,
20286 "isPure": false,
20287 "kind": "functionCall",
20288 "lValueRequested": false,
20289 "names": [],
20290 "nodeType": "FunctionCall",
20291 "src": "3850:30:3",
20292 "tryCall": false,
20293 "typeDescriptions": {
20294 "typeIdentifier": "t_uint256",
20295 "typeString": "uint256"
20296 }
20297 }
20298 ],
20299 "expression": {
20300 "argumentTypes": [
20301 {
20302 "typeIdentifier": "t_uint256",
20303 "typeString": "uint256"
20304 }
20305 ],
20306 "expression": {
20307 "argumentTypes": null,
20308 "id": 1002,
20309 "name": "Math",
20310 "nodeType": "Identifier",
20311 "overloadedDeclarations": [],
20312 "referencedDeclaration": 2308,
20313 "src": "3840:4:3",
20314 "typeDescriptions": {
20315 "typeIdentifier": "t_type$_t_contract$_Math_$2308_$",
20316 "typeString": "type(library Math)"
20317 }
20318 },
20319 "id": 1003,
20320 "isConstant": false,
20321 "isLValue": false,
20322 "isPure": false,
20323 "lValueRequested": false,
20324 "memberName": "sqrt",
20325 "nodeType": "MemberAccess",
20326 "referencedDeclaration": 2307,
20327 "src": "3840:9:3",
20328 "typeDescriptions": {
20329 "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
20330 "typeString": "function (uint256) pure returns (uint256)"
20331 }
20332 },
20333 "id": 1011,
20334 "isConstant": false,
20335 "isLValue": false,
20336 "isPure": false,
20337 "kind": "functionCall",
20338 "lValueRequested": false,
20339 "names": [],
20340 "nodeType": "FunctionCall",
20341 "src": "3840:41:3",
20342 "tryCall": false,
20343 "typeDescriptions": {
20344 "typeIdentifier": "t_uint256",
20345 "typeString": "uint256"
20346 }
20347 },
20348 "nodeType": "VariableDeclarationStatement",
20349 "src": "3827:54:3"
20350 },
20351 {
20352 "assignments": [
20353 1014
20354 ],
20355 "declarations": [
20356 {
20357 "constant": false,
20358 "id": 1014,
20359 "mutability": "mutable",
20360 "name": "rootKLast",
20361 "nodeType": "VariableDeclaration",
20362 "overrides": null,
20363 "scope": 1060,
20364 "src": "3899:14:3",
20365 "stateVariable": false,
20366 "storageLocation": "default",
20367 "typeDescriptions": {
20368 "typeIdentifier": "t_uint256",
20369 "typeString": "uint256"
20370 },
20371 "typeName": {
20372 "id": 1013,
20373 "name": "uint",
20374 "nodeType": "ElementaryTypeName",
20375 "src": "3899:4:3",
20376 "typeDescriptions": {
20377 "typeIdentifier": "t_uint256",
20378 "typeString": "uint256"
20379 }
20380 },
20381 "value": null,
20382 "visibility": "internal"
20383 }
20384 ],
20385 "id": 1019,
20386 "initialValue": {
20387 "argumentTypes": null,
20388 "arguments": [
20389 {
20390 "argumentTypes": null,
20391 "id": 1017,
20392 "name": "_kLast",
20393 "nodeType": "Identifier",
20394 "overloadedDeclarations": [],
20395 "referencedDeclaration": 993,
20396 "src": "3926:6:3",
20397 "typeDescriptions": {
20398 "typeIdentifier": "t_uint256",
20399 "typeString": "uint256"
20400 }
20401 }
20402 ],
20403 "expression": {
20404 "argumentTypes": [
20405 {
20406 "typeIdentifier": "t_uint256",
20407 "typeString": "uint256"
20408 }
20409 ],
20410 "expression": {
20411 "argumentTypes": null,
20412 "id": 1015,
20413 "name": "Math",
20414 "nodeType": "Identifier",
20415 "overloadedDeclarations": [],
20416 "referencedDeclaration": 2308,
20417 "src": "3916:4:3",
20418 "typeDescriptions": {
20419 "typeIdentifier": "t_type$_t_contract$_Math_$2308_$",
20420 "typeString": "type(library Math)"
20421 }
20422 },
20423 "id": 1016,
20424 "isConstant": false,
20425 "isLValue": false,
20426 "isPure": false,
20427 "lValueRequested": false,
20428 "memberName": "sqrt",
20429 "nodeType": "MemberAccess",
20430 "referencedDeclaration": 2307,
20431 "src": "3916:9:3",
20432 "typeDescriptions": {
20433 "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
20434 "typeString": "function (uint256) pure returns (uint256)"
20435 }
20436 },
20437 "id": 1018,
20438 "isConstant": false,
20439 "isLValue": false,
20440 "isPure": false,
20441 "kind": "functionCall",
20442 "lValueRequested": false,
20443 "names": [],
20444 "nodeType": "FunctionCall",
20445 "src": "3916:17:3",
20446 "tryCall": false,
20447 "typeDescriptions": {
20448 "typeIdentifier": "t_uint256",
20449 "typeString": "uint256"
20450 }
20451 },
20452 "nodeType": "VariableDeclarationStatement",
20453 "src": "3899:34:3"
20454 },
20455 {
20456 "condition": {
20457 "argumentTypes": null,
20458 "commonType": {
20459 "typeIdentifier": "t_uint256",
20460 "typeString": "uint256"
20461 },
20462 "id": 1022,
20463 "isConstant": false,
20464 "isLValue": false,
20465 "isPure": false,
20466 "lValueRequested": false,
20467 "leftExpression": {
20468 "argumentTypes": null,
20469 "id": 1020,
20470 "name": "rootK",
20471 "nodeType": "Identifier",
20472 "overloadedDeclarations": [],
20473 "referencedDeclaration": 1001,
20474 "src": "3955:5:3",
20475 "typeDescriptions": {
20476 "typeIdentifier": "t_uint256",
20477 "typeString": "uint256"
20478 }
20479 },
20480 "nodeType": "BinaryOperation",
20481 "operator": ">",
20482 "rightExpression": {
20483 "argumentTypes": null,
20484 "id": 1021,
20485 "name": "rootKLast",
20486 "nodeType": "Identifier",
20487 "overloadedDeclarations": [],
20488 "referencedDeclaration": 1014,
20489 "src": "3963:9:3",
20490 "typeDescriptions": {
20491 "typeIdentifier": "t_uint256",
20492 "typeString": "uint256"
20493 }
20494 },
20495 "src": "3955:17:3",
20496 "typeDescriptions": {
20497 "typeIdentifier": "t_bool",
20498 "typeString": "bool"
20499 }
20500 },
20501 "falseBody": null,
20502 "id": 1059,
20503 "nodeType": "IfStatement",
20504 "src": "3951:312:3",
20505 "trueBody": {
20506 "id": 1058,
20507 "nodeType": "Block",
20508 "src": "3974:289:3",
20509 "statements": [
20510 {
20511 "assignments": [
20512 1024
20513 ],
20514 "declarations": [
20515 {
20516 "constant": false,
20517 "id": 1024,
20518 "mutability": "mutable",
20519 "name": "numerator",
20520 "nodeType": "VariableDeclaration",
20521 "overrides": null,
20522 "scope": 1058,
20523 "src": "3996:14:3",
20524 "stateVariable": false,
20525 "storageLocation": "default",
20526 "typeDescriptions": {
20527 "typeIdentifier": "t_uint256",
20528 "typeString": "uint256"
20529 },
20530 "typeName": {
20531 "id": 1023,
20532 "name": "uint",
20533 "nodeType": "ElementaryTypeName",
20534 "src": "3996:4:3",
20535 "typeDescriptions": {
20536 "typeIdentifier": "t_uint256",
20537 "typeString": "uint256"
20538 }
20539 },
20540 "value": null,
20541 "visibility": "internal"
20542 }
20543 ],
20544 "id": 1032,
20545 "initialValue": {
20546 "argumentTypes": null,
20547 "arguments": [
20548 {
20549 "argumentTypes": null,
20550 "arguments": [
20551 {
20552 "argumentTypes": null,
20553 "id": 1029,
20554 "name": "rootKLast",
20555 "nodeType": "Identifier",
20556 "overloadedDeclarations": [],
20557 "referencedDeclaration": 1014,
20558 "src": "4039:9:3",
20559 "typeDescriptions": {
20560 "typeIdentifier": "t_uint256",
20561 "typeString": "uint256"
20562 }
20563 }
20564 ],
20565 "expression": {
20566 "argumentTypes": [
20567 {
20568 "typeIdentifier": "t_uint256",
20569 "typeString": "uint256"
20570 }
20571 ],
20572 "expression": {
20573 "argumentTypes": null,
20574 "id": 1027,
20575 "name": "rootK",
20576 "nodeType": "Identifier",
20577 "overloadedDeclarations": [],
20578 "referencedDeclaration": 1001,
20579 "src": "4029:5:3",
20580 "typeDescriptions": {
20581 "typeIdentifier": "t_uint256",
20582 "typeString": "uint256"
20583 }
20584 },
20585 "id": 1028,
20586 "isConstant": false,
20587 "isLValue": false,
20588 "isPure": false,
20589 "lValueRequested": false,
20590 "memberName": "sub",
20591 "nodeType": "MemberAccess",
20592 "referencedDeclaration": 2354,
20593 "src": "4029:9:3",
20594 "typeDescriptions": {
20595 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
20596 "typeString": "function (uint256,uint256) pure returns (uint256)"
20597 }
20598 },
20599 "id": 1030,
20600 "isConstant": false,
20601 "isLValue": false,
20602 "isPure": false,
20603 "kind": "functionCall",
20604 "lValueRequested": false,
20605 "names": [],
20606 "nodeType": "FunctionCall",
20607 "src": "4029:20:3",
20608 "tryCall": false,
20609 "typeDescriptions": {
20610 "typeIdentifier": "t_uint256",
20611 "typeString": "uint256"
20612 }
20613 }
20614 ],
20615 "expression": {
20616 "argumentTypes": [
20617 {
20618 "typeIdentifier": "t_uint256",
20619 "typeString": "uint256"
20620 }
20621 ],
20622 "expression": {
20623 "argumentTypes": null,
20624 "id": 1025,
20625 "name": "totalSupply",
20626 "nodeType": "Identifier",
20627 "overloadedDeclarations": [],
20628 "referencedDeclaration": 53,
20629 "src": "4013:11:3",
20630 "typeDescriptions": {
20631 "typeIdentifier": "t_uint256",
20632 "typeString": "uint256"
20633 }
20634 },
20635 "id": 1026,
20636 "isConstant": false,
20637 "isLValue": false,
20638 "isPure": false,
20639 "lValueRequested": false,
20640 "memberName": "mul",
20641 "nodeType": "MemberAccess",
20642 "referencedDeclaration": 2382,
20643 "src": "4013:15:3",
20644 "typeDescriptions": {
20645 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
20646 "typeString": "function (uint256,uint256) pure returns (uint256)"
20647 }
20648 },
20649 "id": 1031,
20650 "isConstant": false,
20651 "isLValue": false,
20652 "isPure": false,
20653 "kind": "functionCall",
20654 "lValueRequested": false,
20655 "names": [],
20656 "nodeType": "FunctionCall",
20657 "src": "4013:37:3",
20658 "tryCall": false,
20659 "typeDescriptions": {
20660 "typeIdentifier": "t_uint256",
20661 "typeString": "uint256"
20662 }
20663 },
20664 "nodeType": "VariableDeclarationStatement",
20665 "src": "3996:54:3"
20666 },
20667 {
20668 "assignments": [
20669 1034
20670 ],
20671 "declarations": [
20672 {
20673 "constant": false,
20674 "id": 1034,
20675 "mutability": "mutable",
20676 "name": "denominator",
20677 "nodeType": "VariableDeclaration",
20678 "overrides": null,
20679 "scope": 1058,
20680 "src": "4072:16:3",
20681 "stateVariable": false,
20682 "storageLocation": "default",
20683 "typeDescriptions": {
20684 "typeIdentifier": "t_uint256",
20685 "typeString": "uint256"
20686 },
20687 "typeName": {
20688 "id": 1033,
20689 "name": "uint",
20690 "nodeType": "ElementaryTypeName",
20691 "src": "4072:4:3",
20692 "typeDescriptions": {
20693 "typeIdentifier": "t_uint256",
20694 "typeString": "uint256"
20695 }
20696 },
20697 "value": null,
20698 "visibility": "internal"
20699 }
20700 ],
20701 "id": 1042,
20702 "initialValue": {
20703 "argumentTypes": null,
20704 "arguments": [
20705 {
20706 "argumentTypes": null,
20707 "id": 1040,
20708 "name": "rootKLast",
20709 "nodeType": "Identifier",
20710 "overloadedDeclarations": [],
20711 "referencedDeclaration": 1014,
20712 "src": "4108:9:3",
20713 "typeDescriptions": {
20714 "typeIdentifier": "t_uint256",
20715 "typeString": "uint256"
20716 }
20717 }
20718 ],
20719 "expression": {
20720 "argumentTypes": [
20721 {
20722 "typeIdentifier": "t_uint256",
20723 "typeString": "uint256"
20724 }
20725 ],
20726 "expression": {
20727 "argumentTypes": null,
20728 "arguments": [
20729 {
20730 "argumentTypes": null,
20731 "hexValue": "32",
20732 "id": 1037,
20733 "isConstant": false,
20734 "isLValue": false,
20735 "isPure": true,
20736 "kind": "number",
20737 "lValueRequested": false,
20738 "nodeType": "Literal",
20739 "src": "4101:1:3",
20740 "subdenomination": null,
20741 "typeDescriptions": {
20742 "typeIdentifier": "t_rational_2_by_1",
20743 "typeString": "int_const 2"
20744 },
20745 "value": "2"
20746 }
20747 ],
20748 "expression": {
20749 "argumentTypes": [
20750 {
20751 "typeIdentifier": "t_rational_2_by_1",
20752 "typeString": "int_const 2"
20753 }
20754 ],
20755 "expression": {
20756 "argumentTypes": null,
20757 "id": 1035,
20758 "name": "rootK",
20759 "nodeType": "Identifier",
20760 "overloadedDeclarations": [],
20761 "referencedDeclaration": 1001,
20762 "src": "4091:5:3",
20763 "typeDescriptions": {
20764 "typeIdentifier": "t_uint256",
20765 "typeString": "uint256"
20766 }
20767 },
20768 "id": 1036,
20769 "isConstant": false,
20770 "isLValue": false,
20771 "isPure": false,
20772 "lValueRequested": false,
20773 "memberName": "mul",
20774 "nodeType": "MemberAccess",
20775 "referencedDeclaration": 2382,
20776 "src": "4091:9:3",
20777 "typeDescriptions": {
20778 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
20779 "typeString": "function (uint256,uint256) pure returns (uint256)"
20780 }
20781 },
20782 "id": 1038,
20783 "isConstant": false,
20784 "isLValue": false,
20785 "isPure": false,
20786 "kind": "functionCall",
20787 "lValueRequested": false,
20788 "names": [],
20789 "nodeType": "FunctionCall",
20790 "src": "4091:12:3",
20791 "tryCall": false,
20792 "typeDescriptions": {
20793 "typeIdentifier": "t_uint256",
20794 "typeString": "uint256"
20795 }
20796 },
20797 "id": 1039,
20798 "isConstant": false,
20799 "isLValue": false,
20800 "isPure": false,
20801 "lValueRequested": false,
20802 "memberName": "add",
20803 "nodeType": "MemberAccess",
20804 "referencedDeclaration": 2332,
20805 "src": "4091:16:3",
20806 "typeDescriptions": {
20807 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
20808 "typeString": "function (uint256,uint256) pure returns (uint256)"
20809 }
20810 },
20811 "id": 1041,
20812 "isConstant": false,
20813 "isLValue": false,
20814 "isPure": false,
20815 "kind": "functionCall",
20816 "lValueRequested": false,
20817 "names": [],
20818 "nodeType": "FunctionCall",
20819 "src": "4091:27:3",
20820 "tryCall": false,
20821 "typeDescriptions": {
20822 "typeIdentifier": "t_uint256",
20823 "typeString": "uint256"
20824 }
20825 },
20826 "nodeType": "VariableDeclarationStatement",
20827 "src": "4072:46:3"
20828 },
20829 {
20830 "assignments": [
20831 1044
20832 ],
20833 "declarations": [
20834 {
20835 "constant": false,
20836 "id": 1044,
20837 "mutability": "mutable",
20838 "name": "liquidity",
20839 "nodeType": "VariableDeclaration",
20840 "overrides": null,
20841 "scope": 1058,
20842 "src": "4140:14:3",
20843 "stateVariable": false,
20844 "storageLocation": "default",
20845 "typeDescriptions": {
20846 "typeIdentifier": "t_uint256",
20847 "typeString": "uint256"
20848 },
20849 "typeName": {
20850 "id": 1043,
20851 "name": "uint",
20852 "nodeType": "ElementaryTypeName",
20853 "src": "4140:4:3",
20854 "typeDescriptions": {
20855 "typeIdentifier": "t_uint256",
20856 "typeString": "uint256"
20857 }
20858 },
20859 "value": null,
20860 "visibility": "internal"
20861 }
20862 ],
20863 "id": 1048,
20864 "initialValue": {
20865 "argumentTypes": null,
20866 "commonType": {
20867 "typeIdentifier": "t_uint256",
20868 "typeString": "uint256"
20869 },
20870 "id": 1047,
20871 "isConstant": false,
20872 "isLValue": false,
20873 "isPure": false,
20874 "lValueRequested": false,
20875 "leftExpression": {
20876 "argumentTypes": null,
20877 "id": 1045,
20878 "name": "numerator",
20879 "nodeType": "Identifier",
20880 "overloadedDeclarations": [],
20881 "referencedDeclaration": 1024,
20882 "src": "4157:9:3",
20883 "typeDescriptions": {
20884 "typeIdentifier": "t_uint256",
20885 "typeString": "uint256"
20886 }
20887 },
20888 "nodeType": "BinaryOperation",
20889 "operator": "/",
20890 "rightExpression": {
20891 "argumentTypes": null,
20892 "id": 1046,
20893 "name": "denominator",
20894 "nodeType": "Identifier",
20895 "overloadedDeclarations": [],
20896 "referencedDeclaration": 1034,
20897 "src": "4169:11:3",
20898 "typeDescriptions": {
20899 "typeIdentifier": "t_uint256",
20900 "typeString": "uint256"
20901 }
20902 },
20903 "src": "4157:23:3",
20904 "typeDescriptions": {
20905 "typeIdentifier": "t_uint256",
20906 "typeString": "uint256"
20907 }
20908 },
20909 "nodeType": "VariableDeclarationStatement",
20910 "src": "4140:40:3"
20911 },
20912 {
20913 "condition": {
20914 "argumentTypes": null,
20915 "commonType": {
20916 "typeIdentifier": "t_uint256",
20917 "typeString": "uint256"
20918 },
20919 "id": 1051,
20920 "isConstant": false,
20921 "isLValue": false,
20922 "isPure": false,
20923 "lValueRequested": false,
20924 "leftExpression": {
20925 "argumentTypes": null,
20926 "id": 1049,
20927 "name": "liquidity",
20928 "nodeType": "Identifier",
20929 "overloadedDeclarations": [],
20930 "referencedDeclaration": 1044,
20931 "src": "4206:9:3",
20932 "typeDescriptions": {
20933 "typeIdentifier": "t_uint256",
20934 "typeString": "uint256"
20935 }
20936 },
20937 "nodeType": "BinaryOperation",
20938 "operator": ">",
20939 "rightExpression": {
20940 "argumentTypes": null,
20941 "hexValue": "30",
20942 "id": 1050,
20943 "isConstant": false,
20944 "isLValue": false,
20945 "isPure": true,
20946 "kind": "number",
20947 "lValueRequested": false,
20948 "nodeType": "Literal",
20949 "src": "4218:1:3",
20950 "subdenomination": null,
20951 "typeDescriptions": {
20952 "typeIdentifier": "t_rational_0_by_1",
20953 "typeString": "int_const 0"
20954 },
20955 "value": "0"
20956 },
20957 "src": "4206:13:3",
20958 "typeDescriptions": {
20959 "typeIdentifier": "t_bool",
20960 "typeString": "bool"
20961 }
20962 },
20963 "falseBody": null,
20964 "id": 1057,
20965 "nodeType": "IfStatement",
20966 "src": "4202:42:3",
20967 "trueBody": {
20968 "expression": {
20969 "argumentTypes": null,
20970 "arguments": [
20971 {
20972 "argumentTypes": null,
20973 "id": 1053,
20974 "name": "feeTo",
20975 "nodeType": "Identifier",
20976 "overloadedDeclarations": [],
20977 "referencedDeclaration": 976,
20978 "src": "4227:5:3",
20979 "typeDescriptions": {
20980 "typeIdentifier": "t_address",
20981 "typeString": "address"
20982 }
20983 },
20984 {
20985 "argumentTypes": null,
20986 "id": 1054,
20987 "name": "liquidity",
20988 "nodeType": "Identifier",
20989 "overloadedDeclarations": [],
20990 "referencedDeclaration": 1044,
20991 "src": "4234:9:3",
20992 "typeDescriptions": {
20993 "typeIdentifier": "t_uint256",
20994 "typeString": "uint256"
20995 }
20996 }
20997 ],
20998 "expression": {
20999 "argumentTypes": [
21000 {
21001 "typeIdentifier": "t_address",
21002 "typeString": "address"
21003 },
21004 {
21005 "typeIdentifier": "t_uint256",
21006 "typeString": "uint256"
21007 }
21008 ],
21009 "id": 1052,
21010 "name": "_mint",
21011 "nodeType": "Identifier",
21012 "overloadedDeclarations": [],
21013 "referencedDeclaration": 159,
21014 "src": "4221:5:3",
21015 "typeDescriptions": {
21016 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
21017 "typeString": "function (address,uint256)"
21018 }
21019 },
21020 "id": 1055,
21021 "isConstant": false,
21022 "isLValue": false,
21023 "isPure": false,
21024 "kind": "functionCall",
21025 "lValueRequested": false,
21026 "names": [],
21027 "nodeType": "FunctionCall",
21028 "src": "4221:23:3",
21029 "tryCall": false,
21030 "typeDescriptions": {
21031 "typeIdentifier": "t_tuple$__$",
21032 "typeString": "tuple()"
21033 }
21034 },
21035 "id": 1056,
21036 "nodeType": "ExpressionStatement",
21037 "src": "4221:23:3"
21038 }
21039 }
21040 ]
21041 }
21042 }
21043 ]
21044 }
21045 }
21046 ]
21047 }
21048 }
21049 ]
21050 },
21051 "documentation": null,
21052 "id": 1074,
21053 "implemented": true,
21054 "kind": "function",
21055 "modifiers": [],
21056 "name": "_mintFee",
21057 "nodeType": "FunctionDefinition",
21058 "overrides": null,
21059 "parameters": {
21060 "id": 971,
21061 "nodeType": "ParameterList",
21062 "parameters": [
21063 {
21064 "constant": false,
21065 "id": 968,
21066 "mutability": "mutable",
21067 "name": "_reserve0",
21068 "nodeType": "VariableDeclaration",
21069 "overrides": null,
21070 "scope": 1074,
21071 "src": "3549:17:3",
21072 "stateVariable": false,
21073 "storageLocation": "default",
21074 "typeDescriptions": {
21075 "typeIdentifier": "t_uint112",
21076 "typeString": "uint112"
21077 },
21078 "typeName": {
21079 "id": 967,
21080 "name": "uint112",
21081 "nodeType": "ElementaryTypeName",
21082 "src": "3549:7:3",
21083 "typeDescriptions": {
21084 "typeIdentifier": "t_uint112",
21085 "typeString": "uint112"
21086 }
21087 },
21088 "value": null,
21089 "visibility": "internal"
21090 },
21091 {
21092 "constant": false,
21093 "id": 970,
21094 "mutability": "mutable",
21095 "name": "_reserve1",
21096 "nodeType": "VariableDeclaration",
21097 "overrides": null,
21098 "scope": 1074,
21099 "src": "3568:17:3",
21100 "stateVariable": false,
21101 "storageLocation": "default",
21102 "typeDescriptions": {
21103 "typeIdentifier": "t_uint112",
21104 "typeString": "uint112"
21105 },
21106 "typeName": {
21107 "id": 969,
21108 "name": "uint112",
21109 "nodeType": "ElementaryTypeName",
21110 "src": "3568:7:3",
21111 "typeDescriptions": {
21112 "typeIdentifier": "t_uint112",
21113 "typeString": "uint112"
21114 }
21115 },
21116 "value": null,
21117 "visibility": "internal"
21118 }
21119 ],
21120 "src": "3548:38:3"
21121 },
21122 "returnParameters": {
21123 "id": 974,
21124 "nodeType": "ParameterList",
21125 "parameters": [
21126 {
21127 "constant": false,
21128 "id": 973,
21129 "mutability": "mutable",
21130 "name": "feeOn",
21131 "nodeType": "VariableDeclaration",
21132 "overrides": null,
21133 "scope": 1074,
21134 "src": "3604:10:3",
21135 "stateVariable": false,
21136 "storageLocation": "default",
21137 "typeDescriptions": {
21138 "typeIdentifier": "t_bool",
21139 "typeString": "bool"
21140 },
21141 "typeName": {
21142 "id": 972,
21143 "name": "bool",
21144 "nodeType": "ElementaryTypeName",
21145 "src": "3604:4:3",
21146 "typeDescriptions": {
21147 "typeIdentifier": "t_bool",
21148 "typeString": "bool"
21149 }
21150 },
21151 "value": null,
21152 "visibility": "internal"
21153 }
21154 ],
21155 "src": "3603:12:3"
21156 },
21157 "scope": 1711,
21158 "src": "3531:819:3",
21159 "stateMutability": "nonpayable",
21160 "virtual": false,
21161 "visibility": "private"
21162 },
21163 {
21164 "body": {
21165 "id": 1222,
21166 "nodeType": "Block",
21167 "src": "4524:1168:3",
21168 "statements": [
21169 {
21170 "assignments": [
21171 1084,
21172 1086,
21173 null
21174 ],
21175 "declarations": [
21176 {
21177 "constant": false,
21178 "id": 1084,
21179 "mutability": "mutable",
21180 "name": "_reserve0",
21181 "nodeType": "VariableDeclaration",
21182 "overrides": null,
21183 "scope": 1222,
21184 "src": "4535:17:3",
21185 "stateVariable": false,
21186 "storageLocation": "default",
21187 "typeDescriptions": {
21188 "typeIdentifier": "t_uint112",
21189 "typeString": "uint112"
21190 },
21191 "typeName": {
21192 "id": 1083,
21193 "name": "uint112",
21194 "nodeType": "ElementaryTypeName",
21195 "src": "4535:7:3",
21196 "typeDescriptions": {
21197 "typeIdentifier": "t_uint112",
21198 "typeString": "uint112"
21199 }
21200 },
21201 "value": null,
21202 "visibility": "internal"
21203 },
21204 {
21205 "constant": false,
21206 "id": 1086,
21207 "mutability": "mutable",
21208 "name": "_reserve1",
21209 "nodeType": "VariableDeclaration",
21210 "overrides": null,
21211 "scope": 1222,
21212 "src": "4554:17:3",
21213 "stateVariable": false,
21214 "storageLocation": "default",
21215 "typeDescriptions": {
21216 "typeIdentifier": "t_uint112",
21217 "typeString": "uint112"
21218 },
21219 "typeName": {
21220 "id": 1085,
21221 "name": "uint112",
21222 "nodeType": "ElementaryTypeName",
21223 "src": "4554:7:3",
21224 "typeDescriptions": {
21225 "typeIdentifier": "t_uint112",
21226 "typeString": "uint112"
21227 }
21228 },
21229 "value": null,
21230 "visibility": "internal"
21231 },
21232 null
21233 ],
21234 "id": 1089,
21235 "initialValue": {
21236 "argumentTypes": null,
21237 "arguments": [],
21238 "expression": {
21239 "argumentTypes": [],
21240 "id": 1087,
21241 "name": "getReserves",
21242 "nodeType": "Identifier",
21243 "overloadedDeclarations": [],
21244 "referencedDeclaration": 737,
21245 "src": "4576:11:3",
21246 "typeDescriptions": {
21247 "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
21248 "typeString": "function () view returns (uint112,uint112,uint32)"
21249 }
21250 },
21251 "id": 1088,
21252 "isConstant": false,
21253 "isLValue": false,
21254 "isPure": false,
21255 "kind": "functionCall",
21256 "lValueRequested": false,
21257 "names": [],
21258 "nodeType": "FunctionCall",
21259 "src": "4576:13:3",
21260 "tryCall": false,
21261 "typeDescriptions": {
21262 "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
21263 "typeString": "tuple(uint112,uint112,uint32)"
21264 }
21265 },
21266 "nodeType": "VariableDeclarationStatement",
21267 "src": "4534:55:3"
21268 },
21269 {
21270 "assignments": [
21271 1091
21272 ],
21273 "declarations": [
21274 {
21275 "constant": false,
21276 "id": 1091,
21277 "mutability": "mutable",
21278 "name": "balance0",
21279 "nodeType": "VariableDeclaration",
21280 "overrides": null,
21281 "scope": 1222,
21282 "src": "4614:13:3",
21283 "stateVariable": false,
21284 "storageLocation": "default",
21285 "typeDescriptions": {
21286 "typeIdentifier": "t_uint256",
21287 "typeString": "uint256"
21288 },
21289 "typeName": {
21290 "id": 1090,
21291 "name": "uint",
21292 "nodeType": "ElementaryTypeName",
21293 "src": "4614:4:3",
21294 "typeDescriptions": {
21295 "typeIdentifier": "t_uint256",
21296 "typeString": "uint256"
21297 }
21298 },
21299 "value": null,
21300 "visibility": "internal"
21301 }
21302 ],
21303 "id": 1101,
21304 "initialValue": {
21305 "argumentTypes": null,
21306 "arguments": [
21307 {
21308 "argumentTypes": null,
21309 "arguments": [
21310 {
21311 "argumentTypes": null,
21312 "id": 1098,
21313 "name": "this",
21314 "nodeType": "Identifier",
21315 "overloadedDeclarations": [],
21316 "referencedDeclaration": -28,
21317 "src": "4670:4:3",
21318 "typeDescriptions": {
21319 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
21320 "typeString": "contract UniswapV2Pair"
21321 }
21322 }
21323 ],
21324 "expression": {
21325 "argumentTypes": [
21326 {
21327 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
21328 "typeString": "contract UniswapV2Pair"
21329 }
21330 ],
21331 "id": 1097,
21332 "isConstant": false,
21333 "isLValue": false,
21334 "isPure": true,
21335 "lValueRequested": false,
21336 "nodeType": "ElementaryTypeNameExpression",
21337 "src": "4662:7:3",
21338 "typeDescriptions": {
21339 "typeIdentifier": "t_type$_t_address_$",
21340 "typeString": "type(address)"
21341 },
21342 "typeName": {
21343 "id": 1096,
21344 "name": "address",
21345 "nodeType": "ElementaryTypeName",
21346 "src": "4662:7:3",
21347 "typeDescriptions": {
21348 "typeIdentifier": null,
21349 "typeString": null
21350 }
21351 }
21352 },
21353 "id": 1099,
21354 "isConstant": false,
21355 "isLValue": false,
21356 "isPure": false,
21357 "kind": "typeConversion",
21358 "lValueRequested": false,
21359 "names": [],
21360 "nodeType": "FunctionCall",
21361 "src": "4662:13:3",
21362 "tryCall": false,
21363 "typeDescriptions": {
21364 "typeIdentifier": "t_address",
21365 "typeString": "address"
21366 }
21367 }
21368 ],
21369 "expression": {
21370 "argumentTypes": [
21371 {
21372 "typeIdentifier": "t_address",
21373 "typeString": "address"
21374 }
21375 ],
21376 "expression": {
21377 "argumentTypes": null,
21378 "arguments": [
21379 {
21380 "argumentTypes": null,
21381 "id": 1093,
21382 "name": "token0",
21383 "nodeType": "Identifier",
21384 "overloadedDeclarations": [],
21385 "referencedDeclaration": 679,
21386 "src": "4644:6:3",
21387 "typeDescriptions": {
21388 "typeIdentifier": "t_address",
21389 "typeString": "address"
21390 }
21391 }
21392 ],
21393 "expression": {
21394 "argumentTypes": [
21395 {
21396 "typeIdentifier": "t_address",
21397 "typeString": "address"
21398 }
21399 ],
21400 "id": 1092,
21401 "name": "IERC20Uniswap",
21402 "nodeType": "Identifier",
21403 "overloadedDeclarations": [],
21404 "referencedDeclaration": 1795,
21405 "src": "4630:13:3",
21406 "typeDescriptions": {
21407 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
21408 "typeString": "type(contract IERC20Uniswap)"
21409 }
21410 },
21411 "id": 1094,
21412 "isConstant": false,
21413 "isLValue": false,
21414 "isPure": false,
21415 "kind": "typeConversion",
21416 "lValueRequested": false,
21417 "names": [],
21418 "nodeType": "FunctionCall",
21419 "src": "4630:21:3",
21420 "tryCall": false,
21421 "typeDescriptions": {
21422 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
21423 "typeString": "contract IERC20Uniswap"
21424 }
21425 },
21426 "id": 1095,
21427 "isConstant": false,
21428 "isLValue": false,
21429 "isPure": false,
21430 "lValueRequested": false,
21431 "memberName": "balanceOf",
21432 "nodeType": "MemberAccess",
21433 "referencedDeclaration": 1756,
21434 "src": "4630:31:3",
21435 "typeDescriptions": {
21436 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
21437 "typeString": "function (address) view external returns (uint256)"
21438 }
21439 },
21440 "id": 1100,
21441 "isConstant": false,
21442 "isLValue": false,
21443 "isPure": false,
21444 "kind": "functionCall",
21445 "lValueRequested": false,
21446 "names": [],
21447 "nodeType": "FunctionCall",
21448 "src": "4630:46:3",
21449 "tryCall": false,
21450 "typeDescriptions": {
21451 "typeIdentifier": "t_uint256",
21452 "typeString": "uint256"
21453 }
21454 },
21455 "nodeType": "VariableDeclarationStatement",
21456 "src": "4614:62:3"
21457 },
21458 {
21459 "assignments": [
21460 1103
21461 ],
21462 "declarations": [
21463 {
21464 "constant": false,
21465 "id": 1103,
21466 "mutability": "mutable",
21467 "name": "balance1",
21468 "nodeType": "VariableDeclaration",
21469 "overrides": null,
21470 "scope": 1222,
21471 "src": "4686:13:3",
21472 "stateVariable": false,
21473 "storageLocation": "default",
21474 "typeDescriptions": {
21475 "typeIdentifier": "t_uint256",
21476 "typeString": "uint256"
21477 },
21478 "typeName": {
21479 "id": 1102,
21480 "name": "uint",
21481 "nodeType": "ElementaryTypeName",
21482 "src": "4686:4:3",
21483 "typeDescriptions": {
21484 "typeIdentifier": "t_uint256",
21485 "typeString": "uint256"
21486 }
21487 },
21488 "value": null,
21489 "visibility": "internal"
21490 }
21491 ],
21492 "id": 1113,
21493 "initialValue": {
21494 "argumentTypes": null,
21495 "arguments": [
21496 {
21497 "argumentTypes": null,
21498 "arguments": [
21499 {
21500 "argumentTypes": null,
21501 "id": 1110,
21502 "name": "this",
21503 "nodeType": "Identifier",
21504 "overloadedDeclarations": [],
21505 "referencedDeclaration": -28,
21506 "src": "4742:4:3",
21507 "typeDescriptions": {
21508 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
21509 "typeString": "contract UniswapV2Pair"
21510 }
21511 }
21512 ],
21513 "expression": {
21514 "argumentTypes": [
21515 {
21516 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
21517 "typeString": "contract UniswapV2Pair"
21518 }
21519 ],
21520 "id": 1109,
21521 "isConstant": false,
21522 "isLValue": false,
21523 "isPure": true,
21524 "lValueRequested": false,
21525 "nodeType": "ElementaryTypeNameExpression",
21526 "src": "4734:7:3",
21527 "typeDescriptions": {
21528 "typeIdentifier": "t_type$_t_address_$",
21529 "typeString": "type(address)"
21530 },
21531 "typeName": {
21532 "id": 1108,
21533 "name": "address",
21534 "nodeType": "ElementaryTypeName",
21535 "src": "4734:7:3",
21536 "typeDescriptions": {
21537 "typeIdentifier": null,
21538 "typeString": null
21539 }
21540 }
21541 },
21542 "id": 1111,
21543 "isConstant": false,
21544 "isLValue": false,
21545 "isPure": false,
21546 "kind": "typeConversion",
21547 "lValueRequested": false,
21548 "names": [],
21549 "nodeType": "FunctionCall",
21550 "src": "4734:13:3",
21551 "tryCall": false,
21552 "typeDescriptions": {
21553 "typeIdentifier": "t_address",
21554 "typeString": "address"
21555 }
21556 }
21557 ],
21558 "expression": {
21559 "argumentTypes": [
21560 {
21561 "typeIdentifier": "t_address",
21562 "typeString": "address"
21563 }
21564 ],
21565 "expression": {
21566 "argumentTypes": null,
21567 "arguments": [
21568 {
21569 "argumentTypes": null,
21570 "id": 1105,
21571 "name": "token1",
21572 "nodeType": "Identifier",
21573 "overloadedDeclarations": [],
21574 "referencedDeclaration": 681,
21575 "src": "4716:6:3",
21576 "typeDescriptions": {
21577 "typeIdentifier": "t_address",
21578 "typeString": "address"
21579 }
21580 }
21581 ],
21582 "expression": {
21583 "argumentTypes": [
21584 {
21585 "typeIdentifier": "t_address",
21586 "typeString": "address"
21587 }
21588 ],
21589 "id": 1104,
21590 "name": "IERC20Uniswap",
21591 "nodeType": "Identifier",
21592 "overloadedDeclarations": [],
21593 "referencedDeclaration": 1795,
21594 "src": "4702:13:3",
21595 "typeDescriptions": {
21596 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
21597 "typeString": "type(contract IERC20Uniswap)"
21598 }
21599 },
21600 "id": 1106,
21601 "isConstant": false,
21602 "isLValue": false,
21603 "isPure": false,
21604 "kind": "typeConversion",
21605 "lValueRequested": false,
21606 "names": [],
21607 "nodeType": "FunctionCall",
21608 "src": "4702:21:3",
21609 "tryCall": false,
21610 "typeDescriptions": {
21611 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
21612 "typeString": "contract IERC20Uniswap"
21613 }
21614 },
21615 "id": 1107,
21616 "isConstant": false,
21617 "isLValue": false,
21618 "isPure": false,
21619 "lValueRequested": false,
21620 "memberName": "balanceOf",
21621 "nodeType": "MemberAccess",
21622 "referencedDeclaration": 1756,
21623 "src": "4702:31:3",
21624 "typeDescriptions": {
21625 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
21626 "typeString": "function (address) view external returns (uint256)"
21627 }
21628 },
21629 "id": 1112,
21630 "isConstant": false,
21631 "isLValue": false,
21632 "isPure": false,
21633 "kind": "functionCall",
21634 "lValueRequested": false,
21635 "names": [],
21636 "nodeType": "FunctionCall",
21637 "src": "4702:46:3",
21638 "tryCall": false,
21639 "typeDescriptions": {
21640 "typeIdentifier": "t_uint256",
21641 "typeString": "uint256"
21642 }
21643 },
21644 "nodeType": "VariableDeclarationStatement",
21645 "src": "4686:62:3"
21646 },
21647 {
21648 "assignments": [
21649 1115
21650 ],
21651 "declarations": [
21652 {
21653 "constant": false,
21654 "id": 1115,
21655 "mutability": "mutable",
21656 "name": "amount0",
21657 "nodeType": "VariableDeclaration",
21658 "overrides": null,
21659 "scope": 1222,
21660 "src": "4758:12:3",
21661 "stateVariable": false,
21662 "storageLocation": "default",
21663 "typeDescriptions": {
21664 "typeIdentifier": "t_uint256",
21665 "typeString": "uint256"
21666 },
21667 "typeName": {
21668 "id": 1114,
21669 "name": "uint",
21670 "nodeType": "ElementaryTypeName",
21671 "src": "4758:4:3",
21672 "typeDescriptions": {
21673 "typeIdentifier": "t_uint256",
21674 "typeString": "uint256"
21675 }
21676 },
21677 "value": null,
21678 "visibility": "internal"
21679 }
21680 ],
21681 "id": 1120,
21682 "initialValue": {
21683 "argumentTypes": null,
21684 "arguments": [
21685 {
21686 "argumentTypes": null,
21687 "id": 1118,
21688 "name": "_reserve0",
21689 "nodeType": "Identifier",
21690 "overloadedDeclarations": [],
21691 "referencedDeclaration": 1084,
21692 "src": "4786:9:3",
21693 "typeDescriptions": {
21694 "typeIdentifier": "t_uint112",
21695 "typeString": "uint112"
21696 }
21697 }
21698 ],
21699 "expression": {
21700 "argumentTypes": [
21701 {
21702 "typeIdentifier": "t_uint112",
21703 "typeString": "uint112"
21704 }
21705 ],
21706 "expression": {
21707 "argumentTypes": null,
21708 "id": 1116,
21709 "name": "balance0",
21710 "nodeType": "Identifier",
21711 "overloadedDeclarations": [],
21712 "referencedDeclaration": 1091,
21713 "src": "4773:8:3",
21714 "typeDescriptions": {
21715 "typeIdentifier": "t_uint256",
21716 "typeString": "uint256"
21717 }
21718 },
21719 "id": 1117,
21720 "isConstant": false,
21721 "isLValue": false,
21722 "isPure": false,
21723 "lValueRequested": false,
21724 "memberName": "sub",
21725 "nodeType": "MemberAccess",
21726 "referencedDeclaration": 2354,
21727 "src": "4773:12:3",
21728 "typeDescriptions": {
21729 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
21730 "typeString": "function (uint256,uint256) pure returns (uint256)"
21731 }
21732 },
21733 "id": 1119,
21734 "isConstant": false,
21735 "isLValue": false,
21736 "isPure": false,
21737 "kind": "functionCall",
21738 "lValueRequested": false,
21739 "names": [],
21740 "nodeType": "FunctionCall",
21741 "src": "4773:23:3",
21742 "tryCall": false,
21743 "typeDescriptions": {
21744 "typeIdentifier": "t_uint256",
21745 "typeString": "uint256"
21746 }
21747 },
21748 "nodeType": "VariableDeclarationStatement",
21749 "src": "4758:38:3"
21750 },
21751 {
21752 "assignments": [
21753 1122
21754 ],
21755 "declarations": [
21756 {
21757 "constant": false,
21758 "id": 1122,
21759 "mutability": "mutable",
21760 "name": "amount1",
21761 "nodeType": "VariableDeclaration",
21762 "overrides": null,
21763 "scope": 1222,
21764 "src": "4806:12:3",
21765 "stateVariable": false,
21766 "storageLocation": "default",
21767 "typeDescriptions": {
21768 "typeIdentifier": "t_uint256",
21769 "typeString": "uint256"
21770 },
21771 "typeName": {
21772 "id": 1121,
21773 "name": "uint",
21774 "nodeType": "ElementaryTypeName",
21775 "src": "4806:4:3",
21776 "typeDescriptions": {
21777 "typeIdentifier": "t_uint256",
21778 "typeString": "uint256"
21779 }
21780 },
21781 "value": null,
21782 "visibility": "internal"
21783 }
21784 ],
21785 "id": 1127,
21786 "initialValue": {
21787 "argumentTypes": null,
21788 "arguments": [
21789 {
21790 "argumentTypes": null,
21791 "id": 1125,
21792 "name": "_reserve1",
21793 "nodeType": "Identifier",
21794 "overloadedDeclarations": [],
21795 "referencedDeclaration": 1086,
21796 "src": "4834:9:3",
21797 "typeDescriptions": {
21798 "typeIdentifier": "t_uint112",
21799 "typeString": "uint112"
21800 }
21801 }
21802 ],
21803 "expression": {
21804 "argumentTypes": [
21805 {
21806 "typeIdentifier": "t_uint112",
21807 "typeString": "uint112"
21808 }
21809 ],
21810 "expression": {
21811 "argumentTypes": null,
21812 "id": 1123,
21813 "name": "balance1",
21814 "nodeType": "Identifier",
21815 "overloadedDeclarations": [],
21816 "referencedDeclaration": 1103,
21817 "src": "4821:8:3",
21818 "typeDescriptions": {
21819 "typeIdentifier": "t_uint256",
21820 "typeString": "uint256"
21821 }
21822 },
21823 "id": 1124,
21824 "isConstant": false,
21825 "isLValue": false,
21826 "isPure": false,
21827 "lValueRequested": false,
21828 "memberName": "sub",
21829 "nodeType": "MemberAccess",
21830 "referencedDeclaration": 2354,
21831 "src": "4821:12:3",
21832 "typeDescriptions": {
21833 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
21834 "typeString": "function (uint256,uint256) pure returns (uint256)"
21835 }
21836 },
21837 "id": 1126,
21838 "isConstant": false,
21839 "isLValue": false,
21840 "isPure": false,
21841 "kind": "functionCall",
21842 "lValueRequested": false,
21843 "names": [],
21844 "nodeType": "FunctionCall",
21845 "src": "4821:23:3",
21846 "tryCall": false,
21847 "typeDescriptions": {
21848 "typeIdentifier": "t_uint256",
21849 "typeString": "uint256"
21850 }
21851 },
21852 "nodeType": "VariableDeclarationStatement",
21853 "src": "4806:38:3"
21854 },
21855 {
21856 "assignments": [
21857 1129
21858 ],
21859 "declarations": [
21860 {
21861 "constant": false,
21862 "id": 1129,
21863 "mutability": "mutable",
21864 "name": "feeOn",
21865 "nodeType": "VariableDeclaration",
21866 "overrides": null,
21867 "scope": 1222,
21868 "src": "4855:10:3",
21869 "stateVariable": false,
21870 "storageLocation": "default",
21871 "typeDescriptions": {
21872 "typeIdentifier": "t_bool",
21873 "typeString": "bool"
21874 },
21875 "typeName": {
21876 "id": 1128,
21877 "name": "bool",
21878 "nodeType": "ElementaryTypeName",
21879 "src": "4855:4:3",
21880 "typeDescriptions": {
21881 "typeIdentifier": "t_bool",
21882 "typeString": "bool"
21883 }
21884 },
21885 "value": null,
21886 "visibility": "internal"
21887 }
21888 ],
21889 "id": 1134,
21890 "initialValue": {
21891 "argumentTypes": null,
21892 "arguments": [
21893 {
21894 "argumentTypes": null,
21895 "id": 1131,
21896 "name": "_reserve0",
21897 "nodeType": "Identifier",
21898 "overloadedDeclarations": [],
21899 "referencedDeclaration": 1084,
21900 "src": "4877:9:3",
21901 "typeDescriptions": {
21902 "typeIdentifier": "t_uint112",
21903 "typeString": "uint112"
21904 }
21905 },
21906 {
21907 "argumentTypes": null,
21908 "id": 1132,
21909 "name": "_reserve1",
21910 "nodeType": "Identifier",
21911 "overloadedDeclarations": [],
21912 "referencedDeclaration": 1086,
21913 "src": "4888:9:3",
21914 "typeDescriptions": {
21915 "typeIdentifier": "t_uint112",
21916 "typeString": "uint112"
21917 }
21918 }
21919 ],
21920 "expression": {
21921 "argumentTypes": [
21922 {
21923 "typeIdentifier": "t_uint112",
21924 "typeString": "uint112"
21925 },
21926 {
21927 "typeIdentifier": "t_uint112",
21928 "typeString": "uint112"
21929 }
21930 ],
21931 "id": 1130,
21932 "name": "_mintFee",
21933 "nodeType": "Identifier",
21934 "overloadedDeclarations": [],
21935 "referencedDeclaration": 1074,
21936 "src": "4868:8:3",
21937 "typeDescriptions": {
21938 "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$",
21939 "typeString": "function (uint112,uint112) returns (bool)"
21940 }
21941 },
21942 "id": 1133,
21943 "isConstant": false,
21944 "isLValue": false,
21945 "isPure": false,
21946 "kind": "functionCall",
21947 "lValueRequested": false,
21948 "names": [],
21949 "nodeType": "FunctionCall",
21950 "src": "4868:30:3",
21951 "tryCall": false,
21952 "typeDescriptions": {
21953 "typeIdentifier": "t_bool",
21954 "typeString": "bool"
21955 }
21956 },
21957 "nodeType": "VariableDeclarationStatement",
21958 "src": "4855:43:3"
21959 },
21960 {
21961 "assignments": [
21962 1136
21963 ],
21964 "declarations": [
21965 {
21966 "constant": false,
21967 "id": 1136,
21968 "mutability": "mutable",
21969 "name": "_totalSupply",
21970 "nodeType": "VariableDeclaration",
21971 "overrides": null,
21972 "scope": 1222,
21973 "src": "4908:17:3",
21974 "stateVariable": false,
21975 "storageLocation": "default",
21976 "typeDescriptions": {
21977 "typeIdentifier": "t_uint256",
21978 "typeString": "uint256"
21979 },
21980 "typeName": {
21981 "id": 1135,
21982 "name": "uint",
21983 "nodeType": "ElementaryTypeName",
21984 "src": "4908:4:3",
21985 "typeDescriptions": {
21986 "typeIdentifier": "t_uint256",
21987 "typeString": "uint256"
21988 }
21989 },
21990 "value": null,
21991 "visibility": "internal"
21992 }
21993 ],
21994 "id": 1138,
21995 "initialValue": {
21996 "argumentTypes": null,
21997 "id": 1137,
21998 "name": "totalSupply",
21999 "nodeType": "Identifier",
22000 "overloadedDeclarations": [],
22001 "referencedDeclaration": 53,
22002 "src": "4928:11:3",
22003 "typeDescriptions": {
22004 "typeIdentifier": "t_uint256",
22005 "typeString": "uint256"
22006 }
22007 },
22008 "nodeType": "VariableDeclarationStatement",
22009 "src": "4908:31:3"
22010 },
22011 {
22012 "condition": {
22013 "argumentTypes": null,
22014 "commonType": {
22015 "typeIdentifier": "t_uint256",
22016 "typeString": "uint256"
22017 },
22018 "id": 1141,
22019 "isConstant": false,
22020 "isLValue": false,
22021 "isPure": false,
22022 "lValueRequested": false,
22023 "leftExpression": {
22024 "argumentTypes": null,
22025 "id": 1139,
22026 "name": "_totalSupply",
22027 "nodeType": "Identifier",
22028 "overloadedDeclarations": [],
22029 "referencedDeclaration": 1136,
22030 "src": "5031:12:3",
22031 "typeDescriptions": {
22032 "typeIdentifier": "t_uint256",
22033 "typeString": "uint256"
22034 }
22035 },
22036 "nodeType": "BinaryOperation",
22037 "operator": "==",
22038 "rightExpression": {
22039 "argumentTypes": null,
22040 "hexValue": "30",
22041 "id": 1140,
22042 "isConstant": false,
22043 "isLValue": false,
22044 "isPure": true,
22045 "kind": "number",
22046 "lValueRequested": false,
22047 "nodeType": "Literal",
22048 "src": "5047:1:3",
22049 "subdenomination": null,
22050 "typeDescriptions": {
22051 "typeIdentifier": "t_rational_0_by_1",
22052 "typeString": "int_const 0"
22053 },
22054 "value": "0"
22055 },
22056 "src": "5031:17:3",
22057 "typeDescriptions": {
22058 "typeIdentifier": "t_bool",
22059 "typeString": "bool"
22060 }
22061 },
22062 "falseBody": {
22063 "id": 1182,
22064 "nodeType": "Block",
22065 "src": "5251:123:3",
22066 "statements": [
22067 {
22068 "expression": {
22069 "argumentTypes": null,
22070 "id": 1180,
22071 "isConstant": false,
22072 "isLValue": false,
22073 "isPure": false,
22074 "lValueRequested": false,
22075 "leftHandSide": {
22076 "argumentTypes": null,
22077 "id": 1164,
22078 "name": "liquidity",
22079 "nodeType": "Identifier",
22080 "overloadedDeclarations": [],
22081 "referencedDeclaration": 1081,
22082 "src": "5265:9:3",
22083 "typeDescriptions": {
22084 "typeIdentifier": "t_uint256",
22085 "typeString": "uint256"
22086 }
22087 },
22088 "nodeType": "Assignment",
22089 "operator": "=",
22090 "rightHandSide": {
22091 "argumentTypes": null,
22092 "arguments": [
22093 {
22094 "argumentTypes": null,
22095 "commonType": {
22096 "typeIdentifier": "t_uint256",
22097 "typeString": "uint256"
22098 },
22099 "id": 1172,
22100 "isConstant": false,
22101 "isLValue": false,
22102 "isPure": false,
22103 "lValueRequested": false,
22104 "leftExpression": {
22105 "argumentTypes": null,
22106 "arguments": [
22107 {
22108 "argumentTypes": null,
22109 "id": 1169,
22110 "name": "_totalSupply",
22111 "nodeType": "Identifier",
22112 "overloadedDeclarations": [],
22113 "referencedDeclaration": 1136,
22114 "src": "5298:12:3",
22115 "typeDescriptions": {
22116 "typeIdentifier": "t_uint256",
22117 "typeString": "uint256"
22118 }
22119 }
22120 ],
22121 "expression": {
22122 "argumentTypes": [
22123 {
22124 "typeIdentifier": "t_uint256",
22125 "typeString": "uint256"
22126 }
22127 ],
22128 "expression": {
22129 "argumentTypes": null,
22130 "id": 1167,
22131 "name": "amount0",
22132 "nodeType": "Identifier",
22133 "overloadedDeclarations": [],
22134 "referencedDeclaration": 1115,
22135 "src": "5286:7:3",
22136 "typeDescriptions": {
22137 "typeIdentifier": "t_uint256",
22138 "typeString": "uint256"
22139 }
22140 },
22141 "id": 1168,
22142 "isConstant": false,
22143 "isLValue": false,
22144 "isPure": false,
22145 "lValueRequested": false,
22146 "memberName": "mul",
22147 "nodeType": "MemberAccess",
22148 "referencedDeclaration": 2382,
22149 "src": "5286:11:3",
22150 "typeDescriptions": {
22151 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22152 "typeString": "function (uint256,uint256) pure returns (uint256)"
22153 }
22154 },
22155 "id": 1170,
22156 "isConstant": false,
22157 "isLValue": false,
22158 "isPure": false,
22159 "kind": "functionCall",
22160 "lValueRequested": false,
22161 "names": [],
22162 "nodeType": "FunctionCall",
22163 "src": "5286:25:3",
22164 "tryCall": false,
22165 "typeDescriptions": {
22166 "typeIdentifier": "t_uint256",
22167 "typeString": "uint256"
22168 }
22169 },
22170 "nodeType": "BinaryOperation",
22171 "operator": "/",
22172 "rightExpression": {
22173 "argumentTypes": null,
22174 "id": 1171,
22175 "name": "_reserve0",
22176 "nodeType": "Identifier",
22177 "overloadedDeclarations": [],
22178 "referencedDeclaration": 1084,
22179 "src": "5314:9:3",
22180 "typeDescriptions": {
22181 "typeIdentifier": "t_uint112",
22182 "typeString": "uint112"
22183 }
22184 },
22185 "src": "5286:37:3",
22186 "typeDescriptions": {
22187 "typeIdentifier": "t_uint256",
22188 "typeString": "uint256"
22189 }
22190 },
22191 {
22192 "argumentTypes": null,
22193 "commonType": {
22194 "typeIdentifier": "t_uint256",
22195 "typeString": "uint256"
22196 },
22197 "id": 1178,
22198 "isConstant": false,
22199 "isLValue": false,
22200 "isPure": false,
22201 "lValueRequested": false,
22202 "leftExpression": {
22203 "argumentTypes": null,
22204 "arguments": [
22205 {
22206 "argumentTypes": null,
22207 "id": 1175,
22208 "name": "_totalSupply",
22209 "nodeType": "Identifier",
22210 "overloadedDeclarations": [],
22211 "referencedDeclaration": 1136,
22212 "src": "5337:12:3",
22213 "typeDescriptions": {
22214 "typeIdentifier": "t_uint256",
22215 "typeString": "uint256"
22216 }
22217 }
22218 ],
22219 "expression": {
22220 "argumentTypes": [
22221 {
22222 "typeIdentifier": "t_uint256",
22223 "typeString": "uint256"
22224 }
22225 ],
22226 "expression": {
22227 "argumentTypes": null,
22228 "id": 1173,
22229 "name": "amount1",
22230 "nodeType": "Identifier",
22231 "overloadedDeclarations": [],
22232 "referencedDeclaration": 1122,
22233 "src": "5325:7:3",
22234 "typeDescriptions": {
22235 "typeIdentifier": "t_uint256",
22236 "typeString": "uint256"
22237 }
22238 },
22239 "id": 1174,
22240 "isConstant": false,
22241 "isLValue": false,
22242 "isPure": false,
22243 "lValueRequested": false,
22244 "memberName": "mul",
22245 "nodeType": "MemberAccess",
22246 "referencedDeclaration": 2382,
22247 "src": "5325:11:3",
22248 "typeDescriptions": {
22249 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22250 "typeString": "function (uint256,uint256) pure returns (uint256)"
22251 }
22252 },
22253 "id": 1176,
22254 "isConstant": false,
22255 "isLValue": false,
22256 "isPure": false,
22257 "kind": "functionCall",
22258 "lValueRequested": false,
22259 "names": [],
22260 "nodeType": "FunctionCall",
22261 "src": "5325:25:3",
22262 "tryCall": false,
22263 "typeDescriptions": {
22264 "typeIdentifier": "t_uint256",
22265 "typeString": "uint256"
22266 }
22267 },
22268 "nodeType": "BinaryOperation",
22269 "operator": "/",
22270 "rightExpression": {
22271 "argumentTypes": null,
22272 "id": 1177,
22273 "name": "_reserve1",
22274 "nodeType": "Identifier",
22275 "overloadedDeclarations": [],
22276 "referencedDeclaration": 1086,
22277 "src": "5353:9:3",
22278 "typeDescriptions": {
22279 "typeIdentifier": "t_uint112",
22280 "typeString": "uint112"
22281 }
22282 },
22283 "src": "5325:37:3",
22284 "typeDescriptions": {
22285 "typeIdentifier": "t_uint256",
22286 "typeString": "uint256"
22287 }
22288 }
22289 ],
22290 "expression": {
22291 "argumentTypes": [
22292 {
22293 "typeIdentifier": "t_uint256",
22294 "typeString": "uint256"
22295 },
22296 {
22297 "typeIdentifier": "t_uint256",
22298 "typeString": "uint256"
22299 }
22300 ],
22301 "expression": {
22302 "argumentTypes": null,
22303 "id": 1165,
22304 "name": "Math",
22305 "nodeType": "Identifier",
22306 "overloadedDeclarations": [],
22307 "referencedDeclaration": 2308,
22308 "src": "5277:4:3",
22309 "typeDescriptions": {
22310 "typeIdentifier": "t_type$_t_contract$_Math_$2308_$",
22311 "typeString": "type(library Math)"
22312 }
22313 },
22314 "id": 1166,
22315 "isConstant": false,
22316 "isLValue": false,
22317 "isPure": false,
22318 "lValueRequested": false,
22319 "memberName": "min",
22320 "nodeType": "MemberAccess",
22321 "referencedDeclaration": 2253,
22322 "src": "5277:8:3",
22323 "typeDescriptions": {
22324 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
22325 "typeString": "function (uint256,uint256) pure returns (uint256)"
22326 }
22327 },
22328 "id": 1179,
22329 "isConstant": false,
22330 "isLValue": false,
22331 "isPure": false,
22332 "kind": "functionCall",
22333 "lValueRequested": false,
22334 "names": [],
22335 "nodeType": "FunctionCall",
22336 "src": "5277:86:3",
22337 "tryCall": false,
22338 "typeDescriptions": {
22339 "typeIdentifier": "t_uint256",
22340 "typeString": "uint256"
22341 }
22342 },
22343 "src": "5265:98:3",
22344 "typeDescriptions": {
22345 "typeIdentifier": "t_uint256",
22346 "typeString": "uint256"
22347 }
22348 },
22349 "id": 1181,
22350 "nodeType": "ExpressionStatement",
22351 "src": "5265:98:3"
22352 }
22353 ]
22354 },
22355 "id": 1183,
22356 "nodeType": "IfStatement",
22357 "src": "5027:347:3",
22358 "trueBody": {
22359 "id": 1163,
22360 "nodeType": "Block",
22361 "src": "5050:195:3",
22362 "statements": [
22363 {
22364 "expression": {
22365 "argumentTypes": null,
22366 "id": 1153,
22367 "isConstant": false,
22368 "isLValue": false,
22369 "isPure": false,
22370 "lValueRequested": false,
22371 "leftHandSide": {
22372 "argumentTypes": null,
22373 "id": 1142,
22374 "name": "liquidity",
22375 "nodeType": "Identifier",
22376 "overloadedDeclarations": [],
22377 "referencedDeclaration": 1081,
22378 "src": "5064:9:3",
22379 "typeDescriptions": {
22380 "typeIdentifier": "t_uint256",
22381 "typeString": "uint256"
22382 }
22383 },
22384 "nodeType": "Assignment",
22385 "operator": "=",
22386 "rightHandSide": {
22387 "argumentTypes": null,
22388 "arguments": [
22389 {
22390 "argumentTypes": null,
22391 "id": 1151,
22392 "name": "MINIMUM_LIQUIDITY",
22393 "nodeType": "Identifier",
22394 "overloadedDeclarations": [],
22395 "referencedDeclaration": 664,
22396 "src": "5112:17:3",
22397 "typeDescriptions": {
22398 "typeIdentifier": "t_uint256",
22399 "typeString": "uint256"
22400 }
22401 }
22402 ],
22403 "expression": {
22404 "argumentTypes": [
22405 {
22406 "typeIdentifier": "t_uint256",
22407 "typeString": "uint256"
22408 }
22409 ],
22410 "expression": {
22411 "argumentTypes": null,
22412 "arguments": [
22413 {
22414 "argumentTypes": null,
22415 "arguments": [
22416 {
22417 "argumentTypes": null,
22418 "id": 1147,
22419 "name": "amount1",
22420 "nodeType": "Identifier",
22421 "overloadedDeclarations": [],
22422 "referencedDeclaration": 1122,
22423 "src": "5098:7:3",
22424 "typeDescriptions": {
22425 "typeIdentifier": "t_uint256",
22426 "typeString": "uint256"
22427 }
22428 }
22429 ],
22430 "expression": {
22431 "argumentTypes": [
22432 {
22433 "typeIdentifier": "t_uint256",
22434 "typeString": "uint256"
22435 }
22436 ],
22437 "expression": {
22438 "argumentTypes": null,
22439 "id": 1145,
22440 "name": "amount0",
22441 "nodeType": "Identifier",
22442 "overloadedDeclarations": [],
22443 "referencedDeclaration": 1115,
22444 "src": "5086:7:3",
22445 "typeDescriptions": {
22446 "typeIdentifier": "t_uint256",
22447 "typeString": "uint256"
22448 }
22449 },
22450 "id": 1146,
22451 "isConstant": false,
22452 "isLValue": false,
22453 "isPure": false,
22454 "lValueRequested": false,
22455 "memberName": "mul",
22456 "nodeType": "MemberAccess",
22457 "referencedDeclaration": 2382,
22458 "src": "5086:11:3",
22459 "typeDescriptions": {
22460 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22461 "typeString": "function (uint256,uint256) pure returns (uint256)"
22462 }
22463 },
22464 "id": 1148,
22465 "isConstant": false,
22466 "isLValue": false,
22467 "isPure": false,
22468 "kind": "functionCall",
22469 "lValueRequested": false,
22470 "names": [],
22471 "nodeType": "FunctionCall",
22472 "src": "5086:20:3",
22473 "tryCall": false,
22474 "typeDescriptions": {
22475 "typeIdentifier": "t_uint256",
22476 "typeString": "uint256"
22477 }
22478 }
22479 ],
22480 "expression": {
22481 "argumentTypes": [
22482 {
22483 "typeIdentifier": "t_uint256",
22484 "typeString": "uint256"
22485 }
22486 ],
22487 "expression": {
22488 "argumentTypes": null,
22489 "id": 1143,
22490 "name": "Math",
22491 "nodeType": "Identifier",
22492 "overloadedDeclarations": [],
22493 "referencedDeclaration": 2308,
22494 "src": "5076:4:3",
22495 "typeDescriptions": {
22496 "typeIdentifier": "t_type$_t_contract$_Math_$2308_$",
22497 "typeString": "type(library Math)"
22498 }
22499 },
22500 "id": 1144,
22501 "isConstant": false,
22502 "isLValue": false,
22503 "isPure": false,
22504 "lValueRequested": false,
22505 "memberName": "sqrt",
22506 "nodeType": "MemberAccess",
22507 "referencedDeclaration": 2307,
22508 "src": "5076:9:3",
22509 "typeDescriptions": {
22510 "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
22511 "typeString": "function (uint256) pure returns (uint256)"
22512 }
22513 },
22514 "id": 1149,
22515 "isConstant": false,
22516 "isLValue": false,
22517 "isPure": false,
22518 "kind": "functionCall",
22519 "lValueRequested": false,
22520 "names": [],
22521 "nodeType": "FunctionCall",
22522 "src": "5076:31:3",
22523 "tryCall": false,
22524 "typeDescriptions": {
22525 "typeIdentifier": "t_uint256",
22526 "typeString": "uint256"
22527 }
22528 },
22529 "id": 1150,
22530 "isConstant": false,
22531 "isLValue": false,
22532 "isPure": false,
22533 "lValueRequested": false,
22534 "memberName": "sub",
22535 "nodeType": "MemberAccess",
22536 "referencedDeclaration": 2354,
22537 "src": "5076:35:3",
22538 "typeDescriptions": {
22539 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22540 "typeString": "function (uint256,uint256) pure returns (uint256)"
22541 }
22542 },
22543 "id": 1152,
22544 "isConstant": false,
22545 "isLValue": false,
22546 "isPure": false,
22547 "kind": "functionCall",
22548 "lValueRequested": false,
22549 "names": [],
22550 "nodeType": "FunctionCall",
22551 "src": "5076:54:3",
22552 "tryCall": false,
22553 "typeDescriptions": {
22554 "typeIdentifier": "t_uint256",
22555 "typeString": "uint256"
22556 }
22557 },
22558 "src": "5064:66:3",
22559 "typeDescriptions": {
22560 "typeIdentifier": "t_uint256",
22561 "typeString": "uint256"
22562 }
22563 },
22564 "id": 1154,
22565 "nodeType": "ExpressionStatement",
22566 "src": "5064:66:3"
22567 },
22568 {
22569 "expression": {
22570 "argumentTypes": null,
22571 "arguments": [
22572 {
22573 "argumentTypes": null,
22574 "arguments": [
22575 {
22576 "argumentTypes": null,
22577 "hexValue": "30",
22578 "id": 1158,
22579 "isConstant": false,
22580 "isLValue": false,
22581 "isPure": true,
22582 "kind": "number",
22583 "lValueRequested": false,
22584 "nodeType": "Literal",
22585 "src": "5157:1:3",
22586 "subdenomination": null,
22587 "typeDescriptions": {
22588 "typeIdentifier": "t_rational_0_by_1",
22589 "typeString": "int_const 0"
22590 },
22591 "value": "0"
22592 }
22593 ],
22594 "expression": {
22595 "argumentTypes": [
22596 {
22597 "typeIdentifier": "t_rational_0_by_1",
22598 "typeString": "int_const 0"
22599 }
22600 ],
22601 "id": 1157,
22602 "isConstant": false,
22603 "isLValue": false,
22604 "isPure": true,
22605 "lValueRequested": false,
22606 "nodeType": "ElementaryTypeNameExpression",
22607 "src": "5149:7:3",
22608 "typeDescriptions": {
22609 "typeIdentifier": "t_type$_t_address_$",
22610 "typeString": "type(address)"
22611 },
22612 "typeName": {
22613 "id": 1156,
22614 "name": "address",
22615 "nodeType": "ElementaryTypeName",
22616 "src": "5149:7:3",
22617 "typeDescriptions": {
22618 "typeIdentifier": null,
22619 "typeString": null
22620 }
22621 }
22622 },
22623 "id": 1159,
22624 "isConstant": false,
22625 "isLValue": false,
22626 "isPure": true,
22627 "kind": "typeConversion",
22628 "lValueRequested": false,
22629 "names": [],
22630 "nodeType": "FunctionCall",
22631 "src": "5149:10:3",
22632 "tryCall": false,
22633 "typeDescriptions": {
22634 "typeIdentifier": "t_address_payable",
22635 "typeString": "address payable"
22636 }
22637 },
22638 {
22639 "argumentTypes": null,
22640 "id": 1160,
22641 "name": "MINIMUM_LIQUIDITY",
22642 "nodeType": "Identifier",
22643 "overloadedDeclarations": [],
22644 "referencedDeclaration": 664,
22645 "src": "5161:17:3",
22646 "typeDescriptions": {
22647 "typeIdentifier": "t_uint256",
22648 "typeString": "uint256"
22649 }
22650 }
22651 ],
22652 "expression": {
22653 "argumentTypes": [
22654 {
22655 "typeIdentifier": "t_address_payable",
22656 "typeString": "address payable"
22657 },
22658 {
22659 "typeIdentifier": "t_uint256",
22660 "typeString": "uint256"
22661 }
22662 ],
22663 "id": 1155,
22664 "name": "_mint",
22665 "nodeType": "Identifier",
22666 "overloadedDeclarations": [],
22667 "referencedDeclaration": 159,
22668 "src": "5143:5:3",
22669 "typeDescriptions": {
22670 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
22671 "typeString": "function (address,uint256)"
22672 }
22673 },
22674 "id": 1161,
22675 "isConstant": false,
22676 "isLValue": false,
22677 "isPure": false,
22678 "kind": "functionCall",
22679 "lValueRequested": false,
22680 "names": [],
22681 "nodeType": "FunctionCall",
22682 "src": "5143:36:3",
22683 "tryCall": false,
22684 "typeDescriptions": {
22685 "typeIdentifier": "t_tuple$__$",
22686 "typeString": "tuple()"
22687 }
22688 },
22689 "id": 1162,
22690 "nodeType": "ExpressionStatement",
22691 "src": "5143:36:3"
22692 }
22693 ]
22694 }
22695 },
22696 {
22697 "expression": {
22698 "argumentTypes": null,
22699 "arguments": [
22700 {
22701 "argumentTypes": null,
22702 "commonType": {
22703 "typeIdentifier": "t_uint256",
22704 "typeString": "uint256"
22705 },
22706 "id": 1187,
22707 "isConstant": false,
22708 "isLValue": false,
22709 "isPure": false,
22710 "lValueRequested": false,
22711 "leftExpression": {
22712 "argumentTypes": null,
22713 "id": 1185,
22714 "name": "liquidity",
22715 "nodeType": "Identifier",
22716 "overloadedDeclarations": [],
22717 "referencedDeclaration": 1081,
22718 "src": "5391:9:3",
22719 "typeDescriptions": {
22720 "typeIdentifier": "t_uint256",
22721 "typeString": "uint256"
22722 }
22723 },
22724 "nodeType": "BinaryOperation",
22725 "operator": ">",
22726 "rightExpression": {
22727 "argumentTypes": null,
22728 "hexValue": "30",
22729 "id": 1186,
22730 "isConstant": false,
22731 "isLValue": false,
22732 "isPure": true,
22733 "kind": "number",
22734 "lValueRequested": false,
22735 "nodeType": "Literal",
22736 "src": "5403:1:3",
22737 "subdenomination": null,
22738 "typeDescriptions": {
22739 "typeIdentifier": "t_rational_0_by_1",
22740 "typeString": "int_const 0"
22741 },
22742 "value": "0"
22743 },
22744 "src": "5391:13:3",
22745 "typeDescriptions": {
22746 "typeIdentifier": "t_bool",
22747 "typeString": "bool"
22748 }
22749 },
22750 {
22751 "argumentTypes": null,
22752 "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544",
22753 "id": 1188,
22754 "isConstant": false,
22755 "isLValue": false,
22756 "isPure": true,
22757 "kind": "string",
22758 "lValueRequested": false,
22759 "nodeType": "Literal",
22760 "src": "5406:42:3",
22761 "subdenomination": null,
22762 "typeDescriptions": {
22763 "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e",
22764 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\""
22765 },
22766 "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED"
22767 }
22768 ],
22769 "expression": {
22770 "argumentTypes": [
22771 {
22772 "typeIdentifier": "t_bool",
22773 "typeString": "bool"
22774 },
22775 {
22776 "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e",
22777 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\""
22778 }
22779 ],
22780 "id": 1184,
22781 "name": "require",
22782 "nodeType": "Identifier",
22783 "overloadedDeclarations": [
22784 -18,
22785 -18
22786 ],
22787 "referencedDeclaration": -18,
22788 "src": "5383:7:3",
22789 "typeDescriptions": {
22790 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
22791 "typeString": "function (bool,string memory) pure"
22792 }
22793 },
22794 "id": 1189,
22795 "isConstant": false,
22796 "isLValue": false,
22797 "isPure": false,
22798 "kind": "functionCall",
22799 "lValueRequested": false,
22800 "names": [],
22801 "nodeType": "FunctionCall",
22802 "src": "5383:66:3",
22803 "tryCall": false,
22804 "typeDescriptions": {
22805 "typeIdentifier": "t_tuple$__$",
22806 "typeString": "tuple()"
22807 }
22808 },
22809 "id": 1190,
22810 "nodeType": "ExpressionStatement",
22811 "src": "5383:66:3"
22812 },
22813 {
22814 "expression": {
22815 "argumentTypes": null,
22816 "arguments": [
22817 {
22818 "argumentTypes": null,
22819 "id": 1192,
22820 "name": "to",
22821 "nodeType": "Identifier",
22822 "overloadedDeclarations": [],
22823 "referencedDeclaration": 1076,
22824 "src": "5465:2:3",
22825 "typeDescriptions": {
22826 "typeIdentifier": "t_address",
22827 "typeString": "address"
22828 }
22829 },
22830 {
22831 "argumentTypes": null,
22832 "id": 1193,
22833 "name": "liquidity",
22834 "nodeType": "Identifier",
22835 "overloadedDeclarations": [],
22836 "referencedDeclaration": 1081,
22837 "src": "5469:9:3",
22838 "typeDescriptions": {
22839 "typeIdentifier": "t_uint256",
22840 "typeString": "uint256"
22841 }
22842 }
22843 ],
22844 "expression": {
22845 "argumentTypes": [
22846 {
22847 "typeIdentifier": "t_address",
22848 "typeString": "address"
22849 },
22850 {
22851 "typeIdentifier": "t_uint256",
22852 "typeString": "uint256"
22853 }
22854 ],
22855 "id": 1191,
22856 "name": "_mint",
22857 "nodeType": "Identifier",
22858 "overloadedDeclarations": [],
22859 "referencedDeclaration": 159,
22860 "src": "5459:5:3",
22861 "typeDescriptions": {
22862 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
22863 "typeString": "function (address,uint256)"
22864 }
22865 },
22866 "id": 1194,
22867 "isConstant": false,
22868 "isLValue": false,
22869 "isPure": false,
22870 "kind": "functionCall",
22871 "lValueRequested": false,
22872 "names": [],
22873 "nodeType": "FunctionCall",
22874 "src": "5459:20:3",
22875 "tryCall": false,
22876 "typeDescriptions": {
22877 "typeIdentifier": "t_tuple$__$",
22878 "typeString": "tuple()"
22879 }
22880 },
22881 "id": 1195,
22882 "nodeType": "ExpressionStatement",
22883 "src": "5459:20:3"
22884 },
22885 {
22886 "expression": {
22887 "argumentTypes": null,
22888 "arguments": [
22889 {
22890 "argumentTypes": null,
22891 "id": 1197,
22892 "name": "balance0",
22893 "nodeType": "Identifier",
22894 "overloadedDeclarations": [],
22895 "referencedDeclaration": 1091,
22896 "src": "5498:8:3",
22897 "typeDescriptions": {
22898 "typeIdentifier": "t_uint256",
22899 "typeString": "uint256"
22900 }
22901 },
22902 {
22903 "argumentTypes": null,
22904 "id": 1198,
22905 "name": "balance1",
22906 "nodeType": "Identifier",
22907 "overloadedDeclarations": [],
22908 "referencedDeclaration": 1103,
22909 "src": "5508:8:3",
22910 "typeDescriptions": {
22911 "typeIdentifier": "t_uint256",
22912 "typeString": "uint256"
22913 }
22914 },
22915 {
22916 "argumentTypes": null,
22917 "id": 1199,
22918 "name": "_reserve0",
22919 "nodeType": "Identifier",
22920 "overloadedDeclarations": [],
22921 "referencedDeclaration": 1084,
22922 "src": "5518:9:3",
22923 "typeDescriptions": {
22924 "typeIdentifier": "t_uint112",
22925 "typeString": "uint112"
22926 }
22927 },
22928 {
22929 "argumentTypes": null,
22930 "id": 1200,
22931 "name": "_reserve1",
22932 "nodeType": "Identifier",
22933 "overloadedDeclarations": [],
22934 "referencedDeclaration": 1086,
22935 "src": "5529:9:3",
22936 "typeDescriptions": {
22937 "typeIdentifier": "t_uint112",
22938 "typeString": "uint112"
22939 }
22940 }
22941 ],
22942 "expression": {
22943 "argumentTypes": [
22944 {
22945 "typeIdentifier": "t_uint256",
22946 "typeString": "uint256"
22947 },
22948 {
22949 "typeIdentifier": "t_uint256",
22950 "typeString": "uint256"
22951 },
22952 {
22953 "typeIdentifier": "t_uint112",
22954 "typeString": "uint112"
22955 },
22956 {
22957 "typeIdentifier": "t_uint112",
22958 "typeString": "uint112"
22959 }
22960 ],
22961 "id": 1196,
22962 "name": "_update",
22963 "nodeType": "Identifier",
22964 "overloadedDeclarations": [],
22965 "referencedDeclaration": 966,
22966 "src": "5490:7:3",
22967 "typeDescriptions": {
22968 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
22969 "typeString": "function (uint256,uint256,uint112,uint112)"
22970 }
22971 },
22972 "id": 1201,
22973 "isConstant": false,
22974 "isLValue": false,
22975 "isPure": false,
22976 "kind": "functionCall",
22977 "lValueRequested": false,
22978 "names": [],
22979 "nodeType": "FunctionCall",
22980 "src": "5490:49:3",
22981 "tryCall": false,
22982 "typeDescriptions": {
22983 "typeIdentifier": "t_tuple$__$",
22984 "typeString": "tuple()"
22985 }
22986 },
22987 "id": 1202,
22988 "nodeType": "ExpressionStatement",
22989 "src": "5490:49:3"
22990 },
22991 {
22992 "condition": {
22993 "argumentTypes": null,
22994 "id": 1203,
22995 "name": "feeOn",
22996 "nodeType": "Identifier",
22997 "overloadedDeclarations": [],
22998 "referencedDeclaration": 1129,
22999 "src": "5553:5:3",
23000 "typeDescriptions": {
23001 "typeIdentifier": "t_bool",
23002 "typeString": "bool"
23003 }
23004 },
23005 "falseBody": null,
23006 "id": 1214,
23007 "nodeType": "IfStatement",
23008 "src": "5549:47:3",
23009 "trueBody": {
23010 "expression": {
23011 "argumentTypes": null,
23012 "id": 1212,
23013 "isConstant": false,
23014 "isLValue": false,
23015 "isPure": false,
23016 "lValueRequested": false,
23017 "leftHandSide": {
23018 "argumentTypes": null,
23019 "id": 1204,
23020 "name": "kLast",
23021 "nodeType": "Identifier",
23022 "overloadedDeclarations": [],
23023 "referencedDeclaration": 693,
23024 "src": "5560:5:3",
23025 "typeDescriptions": {
23026 "typeIdentifier": "t_uint256",
23027 "typeString": "uint256"
23028 }
23029 },
23030 "nodeType": "Assignment",
23031 "operator": "=",
23032 "rightHandSide": {
23033 "argumentTypes": null,
23034 "arguments": [
23035 {
23036 "argumentTypes": null,
23037 "id": 1210,
23038 "name": "reserve1",
23039 "nodeType": "Identifier",
23040 "overloadedDeclarations": [],
23041 "referencedDeclaration": 685,
23042 "src": "5587:8:3",
23043 "typeDescriptions": {
23044 "typeIdentifier": "t_uint112",
23045 "typeString": "uint112"
23046 }
23047 }
23048 ],
23049 "expression": {
23050 "argumentTypes": [
23051 {
23052 "typeIdentifier": "t_uint112",
23053 "typeString": "uint112"
23054 }
23055 ],
23056 "expression": {
23057 "argumentTypes": null,
23058 "arguments": [
23059 {
23060 "argumentTypes": null,
23061 "id": 1207,
23062 "name": "reserve0",
23063 "nodeType": "Identifier",
23064 "overloadedDeclarations": [],
23065 "referencedDeclaration": 683,
23066 "src": "5573:8:3",
23067 "typeDescriptions": {
23068 "typeIdentifier": "t_uint112",
23069 "typeString": "uint112"
23070 }
23071 }
23072 ],
23073 "expression": {
23074 "argumentTypes": [
23075 {
23076 "typeIdentifier": "t_uint112",
23077 "typeString": "uint112"
23078 }
23079 ],
23080 "id": 1206,
23081 "isConstant": false,
23082 "isLValue": false,
23083 "isPure": true,
23084 "lValueRequested": false,
23085 "nodeType": "ElementaryTypeNameExpression",
23086 "src": "5568:4:3",
23087 "typeDescriptions": {
23088 "typeIdentifier": "t_type$_t_uint256_$",
23089 "typeString": "type(uint256)"
23090 },
23091 "typeName": {
23092 "id": 1205,
23093 "name": "uint",
23094 "nodeType": "ElementaryTypeName",
23095 "src": "5568:4:3",
23096 "typeDescriptions": {
23097 "typeIdentifier": null,
23098 "typeString": null
23099 }
23100 }
23101 },
23102 "id": 1208,
23103 "isConstant": false,
23104 "isLValue": false,
23105 "isPure": false,
23106 "kind": "typeConversion",
23107 "lValueRequested": false,
23108 "names": [],
23109 "nodeType": "FunctionCall",
23110 "src": "5568:14:3",
23111 "tryCall": false,
23112 "typeDescriptions": {
23113 "typeIdentifier": "t_uint256",
23114 "typeString": "uint256"
23115 }
23116 },
23117 "id": 1209,
23118 "isConstant": false,
23119 "isLValue": false,
23120 "isPure": false,
23121 "lValueRequested": false,
23122 "memberName": "mul",
23123 "nodeType": "MemberAccess",
23124 "referencedDeclaration": 2382,
23125 "src": "5568:18:3",
23126 "typeDescriptions": {
23127 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
23128 "typeString": "function (uint256,uint256) pure returns (uint256)"
23129 }
23130 },
23131 "id": 1211,
23132 "isConstant": false,
23133 "isLValue": false,
23134 "isPure": false,
23135 "kind": "functionCall",
23136 "lValueRequested": false,
23137 "names": [],
23138 "nodeType": "FunctionCall",
23139 "src": "5568:28:3",
23140 "tryCall": false,
23141 "typeDescriptions": {
23142 "typeIdentifier": "t_uint256",
23143 "typeString": "uint256"
23144 }
23145 },
23146 "src": "5560:36:3",
23147 "typeDescriptions": {
23148 "typeIdentifier": "t_uint256",
23149 "typeString": "uint256"
23150 }
23151 },
23152 "id": 1213,
23153 "nodeType": "ExpressionStatement",
23154 "src": "5560:36:3"
23155 }
23156 },
23157 {
23158 "eventCall": {
23159 "argumentTypes": null,
23160 "arguments": [
23161 {
23162 "argumentTypes": null,
23163 "expression": {
23164 "argumentTypes": null,
23165 "id": 1216,
23166 "name": "msg",
23167 "nodeType": "Identifier",
23168 "overloadedDeclarations": [],
23169 "referencedDeclaration": -15,
23170 "src": "5656:3:3",
23171 "typeDescriptions": {
23172 "typeIdentifier": "t_magic_message",
23173 "typeString": "msg"
23174 }
23175 },
23176 "id": 1217,
23177 "isConstant": false,
23178 "isLValue": false,
23179 "isPure": false,
23180 "lValueRequested": false,
23181 "memberName": "sender",
23182 "nodeType": "MemberAccess",
23183 "referencedDeclaration": null,
23184 "src": "5656:10:3",
23185 "typeDescriptions": {
23186 "typeIdentifier": "t_address_payable",
23187 "typeString": "address payable"
23188 }
23189 },
23190 {
23191 "argumentTypes": null,
23192 "id": 1218,
23193 "name": "amount0",
23194 "nodeType": "Identifier",
23195 "overloadedDeclarations": [],
23196 "referencedDeclaration": 1115,
23197 "src": "5668:7:3",
23198 "typeDescriptions": {
23199 "typeIdentifier": "t_uint256",
23200 "typeString": "uint256"
23201 }
23202 },
23203 {
23204 "argumentTypes": null,
23205 "id": 1219,
23206 "name": "amount1",
23207 "nodeType": "Identifier",
23208 "overloadedDeclarations": [],
23209 "referencedDeclaration": 1122,
23210 "src": "5677:7:3",
23211 "typeDescriptions": {
23212 "typeIdentifier": "t_uint256",
23213 "typeString": "uint256"
23214 }
23215 }
23216 ],
23217 "expression": {
23218 "argumentTypes": [
23219 {
23220 "typeIdentifier": "t_address_payable",
23221 "typeString": "address payable"
23222 },
23223 {
23224 "typeIdentifier": "t_uint256",
23225 "typeString": "uint256"
23226 },
23227 {
23228 "typeIdentifier": "t_uint256",
23229 "typeString": "uint256"
23230 }
23231 ],
23232 "id": 1215,
23233 "name": "Mint",
23234 "nodeType": "Identifier",
23235 "overloadedDeclarations": [],
23236 "referencedDeclaration": 788,
23237 "src": "5651:4:3",
23238 "typeDescriptions": {
23239 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
23240 "typeString": "function (address,uint256,uint256)"
23241 }
23242 },
23243 "id": 1220,
23244 "isConstant": false,
23245 "isLValue": false,
23246 "isPure": false,
23247 "kind": "functionCall",
23248 "lValueRequested": false,
23249 "names": [],
23250 "nodeType": "FunctionCall",
23251 "src": "5651:34:3",
23252 "tryCall": false,
23253 "typeDescriptions": {
23254 "typeIdentifier": "t_tuple$__$",
23255 "typeString": "tuple()"
23256 }
23257 },
23258 "id": 1221,
23259 "nodeType": "EmitStatement",
23260 "src": "5646:39:3"
23261 }
23262 ]
23263 },
23264 "documentation": null,
23265 "functionSelector": "6a627842",
23266 "id": 1223,
23267 "implemented": true,
23268 "kind": "function",
23269 "modifiers": [
23270 {
23271 "arguments": null,
23272 "id": 1079,
23273 "modifierName": {
23274 "argumentTypes": null,
23275 "id": 1078,
23276 "name": "lock",
23277 "nodeType": "Identifier",
23278 "overloadedDeclarations": [],
23279 "referencedDeclaration": 715,
23280 "src": "4494:4:3",
23281 "typeDescriptions": {
23282 "typeIdentifier": "t_modifier$__$",
23283 "typeString": "modifier ()"
23284 }
23285 },
23286 "nodeType": "ModifierInvocation",
23287 "src": "4494:4:3"
23288 }
23289 ],
23290 "name": "mint",
23291 "nodeType": "FunctionDefinition",
23292 "overrides": null,
23293 "parameters": {
23294 "id": 1077,
23295 "nodeType": "ParameterList",
23296 "parameters": [
23297 {
23298 "constant": false,
23299 "id": 1076,
23300 "mutability": "mutable",
23301 "name": "to",
23302 "nodeType": "VariableDeclaration",
23303 "overrides": null,
23304 "scope": 1223,
23305 "src": "4473:10:3",
23306 "stateVariable": false,
23307 "storageLocation": "default",
23308 "typeDescriptions": {
23309 "typeIdentifier": "t_address",
23310 "typeString": "address"
23311 },
23312 "typeName": {
23313 "id": 1075,
23314 "name": "address",
23315 "nodeType": "ElementaryTypeName",
23316 "src": "4473:7:3",
23317 "stateMutability": "nonpayable",
23318 "typeDescriptions": {
23319 "typeIdentifier": "t_address",
23320 "typeString": "address"
23321 }
23322 },
23323 "value": null,
23324 "visibility": "internal"
23325 }
23326 ],
23327 "src": "4472:12:3"
23328 },
23329 "returnParameters": {
23330 "id": 1082,
23331 "nodeType": "ParameterList",
23332 "parameters": [
23333 {
23334 "constant": false,
23335 "id": 1081,
23336 "mutability": "mutable",
23337 "name": "liquidity",
23338 "nodeType": "VariableDeclaration",
23339 "overrides": null,
23340 "scope": 1223,
23341 "src": "4508:14:3",
23342 "stateVariable": false,
23343 "storageLocation": "default",
23344 "typeDescriptions": {
23345 "typeIdentifier": "t_uint256",
23346 "typeString": "uint256"
23347 },
23348 "typeName": {
23349 "id": 1080,
23350 "name": "uint",
23351 "nodeType": "ElementaryTypeName",
23352 "src": "4508:4:3",
23353 "typeDescriptions": {
23354 "typeIdentifier": "t_uint256",
23355 "typeString": "uint256"
23356 }
23357 },
23358 "value": null,
23359 "visibility": "internal"
23360 }
23361 ],
23362 "src": "4507:16:3"
23363 },
23364 "scope": 1711,
23365 "src": "4459:1233:3",
23366 "stateMutability": "nonpayable",
23367 "virtual": false,
23368 "visibility": "external"
23369 },
23370 {
23371 "body": {
23372 "id": 1393,
23373 "nodeType": "Block",
23374 "src": "5878:1395:3",
23375 "statements": [
23376 {
23377 "assignments": [
23378 1235,
23379 1237,
23380 null
23381 ],
23382 "declarations": [
23383 {
23384 "constant": false,
23385 "id": 1235,
23386 "mutability": "mutable",
23387 "name": "_reserve0",
23388 "nodeType": "VariableDeclaration",
23389 "overrides": null,
23390 "scope": 1393,
23391 "src": "5889:17:3",
23392 "stateVariable": false,
23393 "storageLocation": "default",
23394 "typeDescriptions": {
23395 "typeIdentifier": "t_uint112",
23396 "typeString": "uint112"
23397 },
23398 "typeName": {
23399 "id": 1234,
23400 "name": "uint112",
23401 "nodeType": "ElementaryTypeName",
23402 "src": "5889:7:3",
23403 "typeDescriptions": {
23404 "typeIdentifier": "t_uint112",
23405 "typeString": "uint112"
23406 }
23407 },
23408 "value": null,
23409 "visibility": "internal"
23410 },
23411 {
23412 "constant": false,
23413 "id": 1237,
23414 "mutability": "mutable",
23415 "name": "_reserve1",
23416 "nodeType": "VariableDeclaration",
23417 "overrides": null,
23418 "scope": 1393,
23419 "src": "5908:17:3",
23420 "stateVariable": false,
23421 "storageLocation": "default",
23422 "typeDescriptions": {
23423 "typeIdentifier": "t_uint112",
23424 "typeString": "uint112"
23425 },
23426 "typeName": {
23427 "id": 1236,
23428 "name": "uint112",
23429 "nodeType": "ElementaryTypeName",
23430 "src": "5908:7:3",
23431 "typeDescriptions": {
23432 "typeIdentifier": "t_uint112",
23433 "typeString": "uint112"
23434 }
23435 },
23436 "value": null,
23437 "visibility": "internal"
23438 },
23439 null
23440 ],
23441 "id": 1240,
23442 "initialValue": {
23443 "argumentTypes": null,
23444 "arguments": [],
23445 "expression": {
23446 "argumentTypes": [],
23447 "id": 1238,
23448 "name": "getReserves",
23449 "nodeType": "Identifier",
23450 "overloadedDeclarations": [],
23451 "referencedDeclaration": 737,
23452 "src": "5930:11:3",
23453 "typeDescriptions": {
23454 "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
23455 "typeString": "function () view returns (uint112,uint112,uint32)"
23456 }
23457 },
23458 "id": 1239,
23459 "isConstant": false,
23460 "isLValue": false,
23461 "isPure": false,
23462 "kind": "functionCall",
23463 "lValueRequested": false,
23464 "names": [],
23465 "nodeType": "FunctionCall",
23466 "src": "5930:13:3",
23467 "tryCall": false,
23468 "typeDescriptions": {
23469 "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
23470 "typeString": "tuple(uint112,uint112,uint32)"
23471 }
23472 },
23473 "nodeType": "VariableDeclarationStatement",
23474 "src": "5888:55:3"
23475 },
23476 {
23477 "assignments": [
23478 1242
23479 ],
23480 "declarations": [
23481 {
23482 "constant": false,
23483 "id": 1242,
23484 "mutability": "mutable",
23485 "name": "_token0",
23486 "nodeType": "VariableDeclaration",
23487 "overrides": null,
23488 "scope": 1393,
23489 "src": "5968:15:3",
23490 "stateVariable": false,
23491 "storageLocation": "default",
23492 "typeDescriptions": {
23493 "typeIdentifier": "t_address",
23494 "typeString": "address"
23495 },
23496 "typeName": {
23497 "id": 1241,
23498 "name": "address",
23499 "nodeType": "ElementaryTypeName",
23500 "src": "5968:7:3",
23501 "stateMutability": "nonpayable",
23502 "typeDescriptions": {
23503 "typeIdentifier": "t_address",
23504 "typeString": "address"
23505 }
23506 },
23507 "value": null,
23508 "visibility": "internal"
23509 }
23510 ],
23511 "id": 1244,
23512 "initialValue": {
23513 "argumentTypes": null,
23514 "id": 1243,
23515 "name": "token0",
23516 "nodeType": "Identifier",
23517 "overloadedDeclarations": [],
23518 "referencedDeclaration": 679,
23519 "src": "5986:6:3",
23520 "typeDescriptions": {
23521 "typeIdentifier": "t_address",
23522 "typeString": "address"
23523 }
23524 },
23525 "nodeType": "VariableDeclarationStatement",
23526 "src": "5968:24:3"
23527 },
23528 {
23529 "assignments": [
23530 1246
23531 ],
23532 "declarations": [
23533 {
23534 "constant": false,
23535 "id": 1246,
23536 "mutability": "mutable",
23537 "name": "_token1",
23538 "nodeType": "VariableDeclaration",
23539 "overrides": null,
23540 "scope": 1393,
23541 "src": "6048:15:3",
23542 "stateVariable": false,
23543 "storageLocation": "default",
23544 "typeDescriptions": {
23545 "typeIdentifier": "t_address",
23546 "typeString": "address"
23547 },
23548 "typeName": {
23549 "id": 1245,
23550 "name": "address",
23551 "nodeType": "ElementaryTypeName",
23552 "src": "6048:7:3",
23553 "stateMutability": "nonpayable",
23554 "typeDescriptions": {
23555 "typeIdentifier": "t_address",
23556 "typeString": "address"
23557 }
23558 },
23559 "value": null,
23560 "visibility": "internal"
23561 }
23562 ],
23563 "id": 1248,
23564 "initialValue": {
23565 "argumentTypes": null,
23566 "id": 1247,
23567 "name": "token1",
23568 "nodeType": "Identifier",
23569 "overloadedDeclarations": [],
23570 "referencedDeclaration": 681,
23571 "src": "6066:6:3",
23572 "typeDescriptions": {
23573 "typeIdentifier": "t_address",
23574 "typeString": "address"
23575 }
23576 },
23577 "nodeType": "VariableDeclarationStatement",
23578 "src": "6048:24:3"
23579 },
23580 {
23581 "assignments": [
23582 1250
23583 ],
23584 "declarations": [
23585 {
23586 "constant": false,
23587 "id": 1250,
23588 "mutability": "mutable",
23589 "name": "balance0",
23590 "nodeType": "VariableDeclaration",
23591 "overrides": null,
23592 "scope": 1393,
23593 "src": "6128:13:3",
23594 "stateVariable": false,
23595 "storageLocation": "default",
23596 "typeDescriptions": {
23597 "typeIdentifier": "t_uint256",
23598 "typeString": "uint256"
23599 },
23600 "typeName": {
23601 "id": 1249,
23602 "name": "uint",
23603 "nodeType": "ElementaryTypeName",
23604 "src": "6128:4:3",
23605 "typeDescriptions": {
23606 "typeIdentifier": "t_uint256",
23607 "typeString": "uint256"
23608 }
23609 },
23610 "value": null,
23611 "visibility": "internal"
23612 }
23613 ],
23614 "id": 1260,
23615 "initialValue": {
23616 "argumentTypes": null,
23617 "arguments": [
23618 {
23619 "argumentTypes": null,
23620 "arguments": [
23621 {
23622 "argumentTypes": null,
23623 "id": 1257,
23624 "name": "this",
23625 "nodeType": "Identifier",
23626 "overloadedDeclarations": [],
23627 "referencedDeclaration": -28,
23628 "src": "6185:4:3",
23629 "typeDescriptions": {
23630 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
23631 "typeString": "contract UniswapV2Pair"
23632 }
23633 }
23634 ],
23635 "expression": {
23636 "argumentTypes": [
23637 {
23638 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
23639 "typeString": "contract UniswapV2Pair"
23640 }
23641 ],
23642 "id": 1256,
23643 "isConstant": false,
23644 "isLValue": false,
23645 "isPure": true,
23646 "lValueRequested": false,
23647 "nodeType": "ElementaryTypeNameExpression",
23648 "src": "6177:7:3",
23649 "typeDescriptions": {
23650 "typeIdentifier": "t_type$_t_address_$",
23651 "typeString": "type(address)"
23652 },
23653 "typeName": {
23654 "id": 1255,
23655 "name": "address",
23656 "nodeType": "ElementaryTypeName",
23657 "src": "6177:7:3",
23658 "typeDescriptions": {
23659 "typeIdentifier": null,
23660 "typeString": null
23661 }
23662 }
23663 },
23664 "id": 1258,
23665 "isConstant": false,
23666 "isLValue": false,
23667 "isPure": false,
23668 "kind": "typeConversion",
23669 "lValueRequested": false,
23670 "names": [],
23671 "nodeType": "FunctionCall",
23672 "src": "6177:13:3",
23673 "tryCall": false,
23674 "typeDescriptions": {
23675 "typeIdentifier": "t_address",
23676 "typeString": "address"
23677 }
23678 }
23679 ],
23680 "expression": {
23681 "argumentTypes": [
23682 {
23683 "typeIdentifier": "t_address",
23684 "typeString": "address"
23685 }
23686 ],
23687 "expression": {
23688 "argumentTypes": null,
23689 "arguments": [
23690 {
23691 "argumentTypes": null,
23692 "id": 1252,
23693 "name": "_token0",
23694 "nodeType": "Identifier",
23695 "overloadedDeclarations": [],
23696 "referencedDeclaration": 1242,
23697 "src": "6158:7:3",
23698 "typeDescriptions": {
23699 "typeIdentifier": "t_address",
23700 "typeString": "address"
23701 }
23702 }
23703 ],
23704 "expression": {
23705 "argumentTypes": [
23706 {
23707 "typeIdentifier": "t_address",
23708 "typeString": "address"
23709 }
23710 ],
23711 "id": 1251,
23712 "name": "IERC20Uniswap",
23713 "nodeType": "Identifier",
23714 "overloadedDeclarations": [],
23715 "referencedDeclaration": 1795,
23716 "src": "6144:13:3",
23717 "typeDescriptions": {
23718 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
23719 "typeString": "type(contract IERC20Uniswap)"
23720 }
23721 },
23722 "id": 1253,
23723 "isConstant": false,
23724 "isLValue": false,
23725 "isPure": false,
23726 "kind": "typeConversion",
23727 "lValueRequested": false,
23728 "names": [],
23729 "nodeType": "FunctionCall",
23730 "src": "6144:22:3",
23731 "tryCall": false,
23732 "typeDescriptions": {
23733 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
23734 "typeString": "contract IERC20Uniswap"
23735 }
23736 },
23737 "id": 1254,
23738 "isConstant": false,
23739 "isLValue": false,
23740 "isPure": false,
23741 "lValueRequested": false,
23742 "memberName": "balanceOf",
23743 "nodeType": "MemberAccess",
23744 "referencedDeclaration": 1756,
23745 "src": "6144:32:3",
23746 "typeDescriptions": {
23747 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
23748 "typeString": "function (address) view external returns (uint256)"
23749 }
23750 },
23751 "id": 1259,
23752 "isConstant": false,
23753 "isLValue": false,
23754 "isPure": false,
23755 "kind": "functionCall",
23756 "lValueRequested": false,
23757 "names": [],
23758 "nodeType": "FunctionCall",
23759 "src": "6144:47:3",
23760 "tryCall": false,
23761 "typeDescriptions": {
23762 "typeIdentifier": "t_uint256",
23763 "typeString": "uint256"
23764 }
23765 },
23766 "nodeType": "VariableDeclarationStatement",
23767 "src": "6128:63:3"
23768 },
23769 {
23770 "assignments": [
23771 1262
23772 ],
23773 "declarations": [
23774 {
23775 "constant": false,
23776 "id": 1262,
23777 "mutability": "mutable",
23778 "name": "balance1",
23779 "nodeType": "VariableDeclaration",
23780 "overrides": null,
23781 "scope": 1393,
23782 "src": "6201:13:3",
23783 "stateVariable": false,
23784 "storageLocation": "default",
23785 "typeDescriptions": {
23786 "typeIdentifier": "t_uint256",
23787 "typeString": "uint256"
23788 },
23789 "typeName": {
23790 "id": 1261,
23791 "name": "uint",
23792 "nodeType": "ElementaryTypeName",
23793 "src": "6201:4:3",
23794 "typeDescriptions": {
23795 "typeIdentifier": "t_uint256",
23796 "typeString": "uint256"
23797 }
23798 },
23799 "value": null,
23800 "visibility": "internal"
23801 }
23802 ],
23803 "id": 1272,
23804 "initialValue": {
23805 "argumentTypes": null,
23806 "arguments": [
23807 {
23808 "argumentTypes": null,
23809 "arguments": [
23810 {
23811 "argumentTypes": null,
23812 "id": 1269,
23813 "name": "this",
23814 "nodeType": "Identifier",
23815 "overloadedDeclarations": [],
23816 "referencedDeclaration": -28,
23817 "src": "6258:4:3",
23818 "typeDescriptions": {
23819 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
23820 "typeString": "contract UniswapV2Pair"
23821 }
23822 }
23823 ],
23824 "expression": {
23825 "argumentTypes": [
23826 {
23827 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
23828 "typeString": "contract UniswapV2Pair"
23829 }
23830 ],
23831 "id": 1268,
23832 "isConstant": false,
23833 "isLValue": false,
23834 "isPure": true,
23835 "lValueRequested": false,
23836 "nodeType": "ElementaryTypeNameExpression",
23837 "src": "6250:7:3",
23838 "typeDescriptions": {
23839 "typeIdentifier": "t_type$_t_address_$",
23840 "typeString": "type(address)"
23841 },
23842 "typeName": {
23843 "id": 1267,
23844 "name": "address",
23845 "nodeType": "ElementaryTypeName",
23846 "src": "6250:7:3",
23847 "typeDescriptions": {
23848 "typeIdentifier": null,
23849 "typeString": null
23850 }
23851 }
23852 },
23853 "id": 1270,
23854 "isConstant": false,
23855 "isLValue": false,
23856 "isPure": false,
23857 "kind": "typeConversion",
23858 "lValueRequested": false,
23859 "names": [],
23860 "nodeType": "FunctionCall",
23861 "src": "6250:13:3",
23862 "tryCall": false,
23863 "typeDescriptions": {
23864 "typeIdentifier": "t_address",
23865 "typeString": "address"
23866 }
23867 }
23868 ],
23869 "expression": {
23870 "argumentTypes": [
23871 {
23872 "typeIdentifier": "t_address",
23873 "typeString": "address"
23874 }
23875 ],
23876 "expression": {
23877 "argumentTypes": null,
23878 "arguments": [
23879 {
23880 "argumentTypes": null,
23881 "id": 1264,
23882 "name": "_token1",
23883 "nodeType": "Identifier",
23884 "overloadedDeclarations": [],
23885 "referencedDeclaration": 1246,
23886 "src": "6231:7:3",
23887 "typeDescriptions": {
23888 "typeIdentifier": "t_address",
23889 "typeString": "address"
23890 }
23891 }
23892 ],
23893 "expression": {
23894 "argumentTypes": [
23895 {
23896 "typeIdentifier": "t_address",
23897 "typeString": "address"
23898 }
23899 ],
23900 "id": 1263,
23901 "name": "IERC20Uniswap",
23902 "nodeType": "Identifier",
23903 "overloadedDeclarations": [],
23904 "referencedDeclaration": 1795,
23905 "src": "6217:13:3",
23906 "typeDescriptions": {
23907 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
23908 "typeString": "type(contract IERC20Uniswap)"
23909 }
23910 },
23911 "id": 1265,
23912 "isConstant": false,
23913 "isLValue": false,
23914 "isPure": false,
23915 "kind": "typeConversion",
23916 "lValueRequested": false,
23917 "names": [],
23918 "nodeType": "FunctionCall",
23919 "src": "6217:22:3",
23920 "tryCall": false,
23921 "typeDescriptions": {
23922 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
23923 "typeString": "contract IERC20Uniswap"
23924 }
23925 },
23926 "id": 1266,
23927 "isConstant": false,
23928 "isLValue": false,
23929 "isPure": false,
23930 "lValueRequested": false,
23931 "memberName": "balanceOf",
23932 "nodeType": "MemberAccess",
23933 "referencedDeclaration": 1756,
23934 "src": "6217:32:3",
23935 "typeDescriptions": {
23936 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
23937 "typeString": "function (address) view external returns (uint256)"
23938 }
23939 },
23940 "id": 1271,
23941 "isConstant": false,
23942 "isLValue": false,
23943 "isPure": false,
23944 "kind": "functionCall",
23945 "lValueRequested": false,
23946 "names": [],
23947 "nodeType": "FunctionCall",
23948 "src": "6217:47:3",
23949 "tryCall": false,
23950 "typeDescriptions": {
23951 "typeIdentifier": "t_uint256",
23952 "typeString": "uint256"
23953 }
23954 },
23955 "nodeType": "VariableDeclarationStatement",
23956 "src": "6201:63:3"
23957 },
23958 {
23959 "assignments": [
23960 1274
23961 ],
23962 "declarations": [
23963 {
23964 "constant": false,
23965 "id": 1274,
23966 "mutability": "mutable",
23967 "name": "liquidity",
23968 "nodeType": "VariableDeclaration",
23969 "overrides": null,
23970 "scope": 1393,
23971 "src": "6274:14:3",
23972 "stateVariable": false,
23973 "storageLocation": "default",
23974 "typeDescriptions": {
23975 "typeIdentifier": "t_uint256",
23976 "typeString": "uint256"
23977 },
23978 "typeName": {
23979 "id": 1273,
23980 "name": "uint",
23981 "nodeType": "ElementaryTypeName",
23982 "src": "6274:4:3",
23983 "typeDescriptions": {
23984 "typeIdentifier": "t_uint256",
23985 "typeString": "uint256"
23986 }
23987 },
23988 "value": null,
23989 "visibility": "internal"
23990 }
23991 ],
23992 "id": 1281,
23993 "initialValue": {
23994 "argumentTypes": null,
23995 "baseExpression": {
23996 "argumentTypes": null,
23997 "id": 1275,
23998 "name": "balanceOf",
23999 "nodeType": "Identifier",
24000 "overloadedDeclarations": [],
24001 "referencedDeclaration": 57,
24002 "src": "6291:9:3",
24003 "typeDescriptions": {
24004 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
24005 "typeString": "mapping(address => uint256)"
24006 }
24007 },
24008 "id": 1280,
24009 "indexExpression": {
24010 "argumentTypes": null,
24011 "arguments": [
24012 {
24013 "argumentTypes": null,
24014 "id": 1278,
24015 "name": "this",
24016 "nodeType": "Identifier",
24017 "overloadedDeclarations": [],
24018 "referencedDeclaration": -28,
24019 "src": "6309:4:3",
24020 "typeDescriptions": {
24021 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
24022 "typeString": "contract UniswapV2Pair"
24023 }
24024 }
24025 ],
24026 "expression": {
24027 "argumentTypes": [
24028 {
24029 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
24030 "typeString": "contract UniswapV2Pair"
24031 }
24032 ],
24033 "id": 1277,
24034 "isConstant": false,
24035 "isLValue": false,
24036 "isPure": true,
24037 "lValueRequested": false,
24038 "nodeType": "ElementaryTypeNameExpression",
24039 "src": "6301:7:3",
24040 "typeDescriptions": {
24041 "typeIdentifier": "t_type$_t_address_$",
24042 "typeString": "type(address)"
24043 },
24044 "typeName": {
24045 "id": 1276,
24046 "name": "address",
24047 "nodeType": "ElementaryTypeName",
24048 "src": "6301:7:3",
24049 "typeDescriptions": {
24050 "typeIdentifier": null,
24051 "typeString": null
24052 }
24053 }
24054 },
24055 "id": 1279,
24056 "isConstant": false,
24057 "isLValue": false,
24058 "isPure": false,
24059 "kind": "typeConversion",
24060 "lValueRequested": false,
24061 "names": [],
24062 "nodeType": "FunctionCall",
24063 "src": "6301:13:3",
24064 "tryCall": false,
24065 "typeDescriptions": {
24066 "typeIdentifier": "t_address",
24067 "typeString": "address"
24068 }
24069 },
24070 "isConstant": false,
24071 "isLValue": true,
24072 "isPure": false,
24073 "lValueRequested": false,
24074 "nodeType": "IndexAccess",
24075 "src": "6291:24:3",
24076 "typeDescriptions": {
24077 "typeIdentifier": "t_uint256",
24078 "typeString": "uint256"
24079 }
24080 },
24081 "nodeType": "VariableDeclarationStatement",
24082 "src": "6274:41:3"
24083 },
24084 {
24085 "assignments": [
24086 1283
24087 ],
24088 "declarations": [
24089 {
24090 "constant": false,
24091 "id": 1283,
24092 "mutability": "mutable",
24093 "name": "feeOn",
24094 "nodeType": "VariableDeclaration",
24095 "overrides": null,
24096 "scope": 1393,
24097 "src": "6326:10:3",
24098 "stateVariable": false,
24099 "storageLocation": "default",
24100 "typeDescriptions": {
24101 "typeIdentifier": "t_bool",
24102 "typeString": "bool"
24103 },
24104 "typeName": {
24105 "id": 1282,
24106 "name": "bool",
24107 "nodeType": "ElementaryTypeName",
24108 "src": "6326:4:3",
24109 "typeDescriptions": {
24110 "typeIdentifier": "t_bool",
24111 "typeString": "bool"
24112 }
24113 },
24114 "value": null,
24115 "visibility": "internal"
24116 }
24117 ],
24118 "id": 1288,
24119 "initialValue": {
24120 "argumentTypes": null,
24121 "arguments": [
24122 {
24123 "argumentTypes": null,
24124 "id": 1285,
24125 "name": "_reserve0",
24126 "nodeType": "Identifier",
24127 "overloadedDeclarations": [],
24128 "referencedDeclaration": 1235,
24129 "src": "6348:9:3",
24130 "typeDescriptions": {
24131 "typeIdentifier": "t_uint112",
24132 "typeString": "uint112"
24133 }
24134 },
24135 {
24136 "argumentTypes": null,
24137 "id": 1286,
24138 "name": "_reserve1",
24139 "nodeType": "Identifier",
24140 "overloadedDeclarations": [],
24141 "referencedDeclaration": 1237,
24142 "src": "6359:9:3",
24143 "typeDescriptions": {
24144 "typeIdentifier": "t_uint112",
24145 "typeString": "uint112"
24146 }
24147 }
24148 ],
24149 "expression": {
24150 "argumentTypes": [
24151 {
24152 "typeIdentifier": "t_uint112",
24153 "typeString": "uint112"
24154 },
24155 {
24156 "typeIdentifier": "t_uint112",
24157 "typeString": "uint112"
24158 }
24159 ],
24160 "id": 1284,
24161 "name": "_mintFee",
24162 "nodeType": "Identifier",
24163 "overloadedDeclarations": [],
24164 "referencedDeclaration": 1074,
24165 "src": "6339:8:3",
24166 "typeDescriptions": {
24167 "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$",
24168 "typeString": "function (uint112,uint112) returns (bool)"
24169 }
24170 },
24171 "id": 1287,
24172 "isConstant": false,
24173 "isLValue": false,
24174 "isPure": false,
24175 "kind": "functionCall",
24176 "lValueRequested": false,
24177 "names": [],
24178 "nodeType": "FunctionCall",
24179 "src": "6339:30:3",
24180 "tryCall": false,
24181 "typeDescriptions": {
24182 "typeIdentifier": "t_bool",
24183 "typeString": "bool"
24184 }
24185 },
24186 "nodeType": "VariableDeclarationStatement",
24187 "src": "6326:43:3"
24188 },
24189 {
24190 "assignments": [
24191 1290
24192 ],
24193 "declarations": [
24194 {
24195 "constant": false,
24196 "id": 1290,
24197 "mutability": "mutable",
24198 "name": "_totalSupply",
24199 "nodeType": "VariableDeclaration",
24200 "overrides": null,
24201 "scope": 1393,
24202 "src": "6379:17:3",
24203 "stateVariable": false,
24204 "storageLocation": "default",
24205 "typeDescriptions": {
24206 "typeIdentifier": "t_uint256",
24207 "typeString": "uint256"
24208 },
24209 "typeName": {
24210 "id": 1289,
24211 "name": "uint",
24212 "nodeType": "ElementaryTypeName",
24213 "src": "6379:4:3",
24214 "typeDescriptions": {
24215 "typeIdentifier": "t_uint256",
24216 "typeString": "uint256"
24217 }
24218 },
24219 "value": null,
24220 "visibility": "internal"
24221 }
24222 ],
24223 "id": 1292,
24224 "initialValue": {
24225 "argumentTypes": null,
24226 "id": 1291,
24227 "name": "totalSupply",
24228 "nodeType": "Identifier",
24229 "overloadedDeclarations": [],
24230 "referencedDeclaration": 53,
24231 "src": "6399:11:3",
24232 "typeDescriptions": {
24233 "typeIdentifier": "t_uint256",
24234 "typeString": "uint256"
24235 }
24236 },
24237 "nodeType": "VariableDeclarationStatement",
24238 "src": "6379:31:3"
24239 },
24240 {
24241 "expression": {
24242 "argumentTypes": null,
24243 "id": 1300,
24244 "isConstant": false,
24245 "isLValue": false,
24246 "isPure": false,
24247 "lValueRequested": false,
24248 "leftHandSide": {
24249 "argumentTypes": null,
24250 "id": 1293,
24251 "name": "amount0",
24252 "nodeType": "Identifier",
24253 "overloadedDeclarations": [],
24254 "referencedDeclaration": 1230,
24255 "src": "6498:7:3",
24256 "typeDescriptions": {
24257 "typeIdentifier": "t_uint256",
24258 "typeString": "uint256"
24259 }
24260 },
24261 "nodeType": "Assignment",
24262 "operator": "=",
24263 "rightHandSide": {
24264 "argumentTypes": null,
24265 "commonType": {
24266 "typeIdentifier": "t_uint256",
24267 "typeString": "uint256"
24268 },
24269 "id": 1299,
24270 "isConstant": false,
24271 "isLValue": false,
24272 "isPure": false,
24273 "lValueRequested": false,
24274 "leftExpression": {
24275 "argumentTypes": null,
24276 "arguments": [
24277 {
24278 "argumentTypes": null,
24279 "id": 1296,
24280 "name": "balance0",
24281 "nodeType": "Identifier",
24282 "overloadedDeclarations": [],
24283 "referencedDeclaration": 1250,
24284 "src": "6522:8:3",
24285 "typeDescriptions": {
24286 "typeIdentifier": "t_uint256",
24287 "typeString": "uint256"
24288 }
24289 }
24290 ],
24291 "expression": {
24292 "argumentTypes": [
24293 {
24294 "typeIdentifier": "t_uint256",
24295 "typeString": "uint256"
24296 }
24297 ],
24298 "expression": {
24299 "argumentTypes": null,
24300 "id": 1294,
24301 "name": "liquidity",
24302 "nodeType": "Identifier",
24303 "overloadedDeclarations": [],
24304 "referencedDeclaration": 1274,
24305 "src": "6508:9:3",
24306 "typeDescriptions": {
24307 "typeIdentifier": "t_uint256",
24308 "typeString": "uint256"
24309 }
24310 },
24311 "id": 1295,
24312 "isConstant": false,
24313 "isLValue": false,
24314 "isPure": false,
24315 "lValueRequested": false,
24316 "memberName": "mul",
24317 "nodeType": "MemberAccess",
24318 "referencedDeclaration": 2382,
24319 "src": "6508:13:3",
24320 "typeDescriptions": {
24321 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
24322 "typeString": "function (uint256,uint256) pure returns (uint256)"
24323 }
24324 },
24325 "id": 1297,
24326 "isConstant": false,
24327 "isLValue": false,
24328 "isPure": false,
24329 "kind": "functionCall",
24330 "lValueRequested": false,
24331 "names": [],
24332 "nodeType": "FunctionCall",
24333 "src": "6508:23:3",
24334 "tryCall": false,
24335 "typeDescriptions": {
24336 "typeIdentifier": "t_uint256",
24337 "typeString": "uint256"
24338 }
24339 },
24340 "nodeType": "BinaryOperation",
24341 "operator": "/",
24342 "rightExpression": {
24343 "argumentTypes": null,
24344 "id": 1298,
24345 "name": "_totalSupply",
24346 "nodeType": "Identifier",
24347 "overloadedDeclarations": [],
24348 "referencedDeclaration": 1290,
24349 "src": "6534:12:3",
24350 "typeDescriptions": {
24351 "typeIdentifier": "t_uint256",
24352 "typeString": "uint256"
24353 }
24354 },
24355 "src": "6508:38:3",
24356 "typeDescriptions": {
24357 "typeIdentifier": "t_uint256",
24358 "typeString": "uint256"
24359 }
24360 },
24361 "src": "6498:48:3",
24362 "typeDescriptions": {
24363 "typeIdentifier": "t_uint256",
24364 "typeString": "uint256"
24365 }
24366 },
24367 "id": 1301,
24368 "nodeType": "ExpressionStatement",
24369 "src": "6498:48:3"
24370 },
24371 {
24372 "expression": {
24373 "argumentTypes": null,
24374 "id": 1309,
24375 "isConstant": false,
24376 "isLValue": false,
24377 "isPure": false,
24378 "lValueRequested": false,
24379 "leftHandSide": {
24380 "argumentTypes": null,
24381 "id": 1302,
24382 "name": "amount1",
24383 "nodeType": "Identifier",
24384 "overloadedDeclarations": [],
24385 "referencedDeclaration": 1232,
24386 "src": "6604:7:3",
24387 "typeDescriptions": {
24388 "typeIdentifier": "t_uint256",
24389 "typeString": "uint256"
24390 }
24391 },
24392 "nodeType": "Assignment",
24393 "operator": "=",
24394 "rightHandSide": {
24395 "argumentTypes": null,
24396 "commonType": {
24397 "typeIdentifier": "t_uint256",
24398 "typeString": "uint256"
24399 },
24400 "id": 1308,
24401 "isConstant": false,
24402 "isLValue": false,
24403 "isPure": false,
24404 "lValueRequested": false,
24405 "leftExpression": {
24406 "argumentTypes": null,
24407 "arguments": [
24408 {
24409 "argumentTypes": null,
24410 "id": 1305,
24411 "name": "balance1",
24412 "nodeType": "Identifier",
24413 "overloadedDeclarations": [],
24414 "referencedDeclaration": 1262,
24415 "src": "6628:8:3",
24416 "typeDescriptions": {
24417 "typeIdentifier": "t_uint256",
24418 "typeString": "uint256"
24419 }
24420 }
24421 ],
24422 "expression": {
24423 "argumentTypes": [
24424 {
24425 "typeIdentifier": "t_uint256",
24426 "typeString": "uint256"
24427 }
24428 ],
24429 "expression": {
24430 "argumentTypes": null,
24431 "id": 1303,
24432 "name": "liquidity",
24433 "nodeType": "Identifier",
24434 "overloadedDeclarations": [],
24435 "referencedDeclaration": 1274,
24436 "src": "6614:9:3",
24437 "typeDescriptions": {
24438 "typeIdentifier": "t_uint256",
24439 "typeString": "uint256"
24440 }
24441 },
24442 "id": 1304,
24443 "isConstant": false,
24444 "isLValue": false,
24445 "isPure": false,
24446 "lValueRequested": false,
24447 "memberName": "mul",
24448 "nodeType": "MemberAccess",
24449 "referencedDeclaration": 2382,
24450 "src": "6614:13:3",
24451 "typeDescriptions": {
24452 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
24453 "typeString": "function (uint256,uint256) pure returns (uint256)"
24454 }
24455 },
24456 "id": 1306,
24457 "isConstant": false,
24458 "isLValue": false,
24459 "isPure": false,
24460 "kind": "functionCall",
24461 "lValueRequested": false,
24462 "names": [],
24463 "nodeType": "FunctionCall",
24464 "src": "6614:23:3",
24465 "tryCall": false,
24466 "typeDescriptions": {
24467 "typeIdentifier": "t_uint256",
24468 "typeString": "uint256"
24469 }
24470 },
24471 "nodeType": "BinaryOperation",
24472 "operator": "/",
24473 "rightExpression": {
24474 "argumentTypes": null,
24475 "id": 1307,
24476 "name": "_totalSupply",
24477 "nodeType": "Identifier",
24478 "overloadedDeclarations": [],
24479 "referencedDeclaration": 1290,
24480 "src": "6640:12:3",
24481 "typeDescriptions": {
24482 "typeIdentifier": "t_uint256",
24483 "typeString": "uint256"
24484 }
24485 },
24486 "src": "6614:38:3",
24487 "typeDescriptions": {
24488 "typeIdentifier": "t_uint256",
24489 "typeString": "uint256"
24490 }
24491 },
24492 "src": "6604:48:3",
24493 "typeDescriptions": {
24494 "typeIdentifier": "t_uint256",
24495 "typeString": "uint256"
24496 }
24497 },
24498 "id": 1310,
24499 "nodeType": "ExpressionStatement",
24500 "src": "6604:48:3"
24501 },
24502 {
24503 "expression": {
24504 "argumentTypes": null,
24505 "arguments": [
24506 {
24507 "argumentTypes": null,
24508 "commonType": {
24509 "typeIdentifier": "t_bool",
24510 "typeString": "bool"
24511 },
24512 "id": 1318,
24513 "isConstant": false,
24514 "isLValue": false,
24515 "isPure": false,
24516 "lValueRequested": false,
24517 "leftExpression": {
24518 "argumentTypes": null,
24519 "commonType": {
24520 "typeIdentifier": "t_uint256",
24521 "typeString": "uint256"
24522 },
24523 "id": 1314,
24524 "isConstant": false,
24525 "isLValue": false,
24526 "isPure": false,
24527 "lValueRequested": false,
24528 "leftExpression": {
24529 "argumentTypes": null,
24530 "id": 1312,
24531 "name": "amount0",
24532 "nodeType": "Identifier",
24533 "overloadedDeclarations": [],
24534 "referencedDeclaration": 1230,
24535 "src": "6718:7:3",
24536 "typeDescriptions": {
24537 "typeIdentifier": "t_uint256",
24538 "typeString": "uint256"
24539 }
24540 },
24541 "nodeType": "BinaryOperation",
24542 "operator": ">",
24543 "rightExpression": {
24544 "argumentTypes": null,
24545 "hexValue": "30",
24546 "id": 1313,
24547 "isConstant": false,
24548 "isLValue": false,
24549 "isPure": true,
24550 "kind": "number",
24551 "lValueRequested": false,
24552 "nodeType": "Literal",
24553 "src": "6728:1:3",
24554 "subdenomination": null,
24555 "typeDescriptions": {
24556 "typeIdentifier": "t_rational_0_by_1",
24557 "typeString": "int_const 0"
24558 },
24559 "value": "0"
24560 },
24561 "src": "6718:11:3",
24562 "typeDescriptions": {
24563 "typeIdentifier": "t_bool",
24564 "typeString": "bool"
24565 }
24566 },
24567 "nodeType": "BinaryOperation",
24568 "operator": "&&",
24569 "rightExpression": {
24570 "argumentTypes": null,
24571 "commonType": {
24572 "typeIdentifier": "t_uint256",
24573 "typeString": "uint256"
24574 },
24575 "id": 1317,
24576 "isConstant": false,
24577 "isLValue": false,
24578 "isPure": false,
24579 "lValueRequested": false,
24580 "leftExpression": {
24581 "argumentTypes": null,
24582 "id": 1315,
24583 "name": "amount1",
24584 "nodeType": "Identifier",
24585 "overloadedDeclarations": [],
24586 "referencedDeclaration": 1232,
24587 "src": "6733:7:3",
24588 "typeDescriptions": {
24589 "typeIdentifier": "t_uint256",
24590 "typeString": "uint256"
24591 }
24592 },
24593 "nodeType": "BinaryOperation",
24594 "operator": ">",
24595 "rightExpression": {
24596 "argumentTypes": null,
24597 "hexValue": "30",
24598 "id": 1316,
24599 "isConstant": false,
24600 "isLValue": false,
24601 "isPure": true,
24602 "kind": "number",
24603 "lValueRequested": false,
24604 "nodeType": "Literal",
24605 "src": "6743:1:3",
24606 "subdenomination": null,
24607 "typeDescriptions": {
24608 "typeIdentifier": "t_rational_0_by_1",
24609 "typeString": "int_const 0"
24610 },
24611 "value": "0"
24612 },
24613 "src": "6733:11:3",
24614 "typeDescriptions": {
24615 "typeIdentifier": "t_bool",
24616 "typeString": "bool"
24617 }
24618 },
24619 "src": "6718:26:3",
24620 "typeDescriptions": {
24621 "typeIdentifier": "t_bool",
24622 "typeString": "bool"
24623 }
24624 },
24625 {
24626 "argumentTypes": null,
24627 "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544",
24628 "id": 1319,
24629 "isConstant": false,
24630 "isLValue": false,
24631 "isPure": true,
24632 "kind": "string",
24633 "lValueRequested": false,
24634 "nodeType": "Literal",
24635 "src": "6746:42:3",
24636 "subdenomination": null,
24637 "typeDescriptions": {
24638 "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562",
24639 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\""
24640 },
24641 "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED"
24642 }
24643 ],
24644 "expression": {
24645 "argumentTypes": [
24646 {
24647 "typeIdentifier": "t_bool",
24648 "typeString": "bool"
24649 },
24650 {
24651 "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562",
24652 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\""
24653 }
24654 ],
24655 "id": 1311,
24656 "name": "require",
24657 "nodeType": "Identifier",
24658 "overloadedDeclarations": [
24659 -18,
24660 -18
24661 ],
24662 "referencedDeclaration": -18,
24663 "src": "6710:7:3",
24664 "typeDescriptions": {
24665 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
24666 "typeString": "function (bool,string memory) pure"
24667 }
24668 },
24669 "id": 1320,
24670 "isConstant": false,
24671 "isLValue": false,
24672 "isPure": false,
24673 "kind": "functionCall",
24674 "lValueRequested": false,
24675 "names": [],
24676 "nodeType": "FunctionCall",
24677 "src": "6710:79:3",
24678 "tryCall": false,
24679 "typeDescriptions": {
24680 "typeIdentifier": "t_tuple$__$",
24681 "typeString": "tuple()"
24682 }
24683 },
24684 "id": 1321,
24685 "nodeType": "ExpressionStatement",
24686 "src": "6710:79:3"
24687 },
24688 {
24689 "expression": {
24690 "argumentTypes": null,
24691 "arguments": [
24692 {
24693 "argumentTypes": null,
24694 "arguments": [
24695 {
24696 "argumentTypes": null,
24697 "id": 1325,
24698 "name": "this",
24699 "nodeType": "Identifier",
24700 "overloadedDeclarations": [],
24701 "referencedDeclaration": -28,
24702 "src": "6813:4:3",
24703 "typeDescriptions": {
24704 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
24705 "typeString": "contract UniswapV2Pair"
24706 }
24707 }
24708 ],
24709 "expression": {
24710 "argumentTypes": [
24711 {
24712 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
24713 "typeString": "contract UniswapV2Pair"
24714 }
24715 ],
24716 "id": 1324,
24717 "isConstant": false,
24718 "isLValue": false,
24719 "isPure": true,
24720 "lValueRequested": false,
24721 "nodeType": "ElementaryTypeNameExpression",
24722 "src": "6805:7:3",
24723 "typeDescriptions": {
24724 "typeIdentifier": "t_type$_t_address_$",
24725 "typeString": "type(address)"
24726 },
24727 "typeName": {
24728 "id": 1323,
24729 "name": "address",
24730 "nodeType": "ElementaryTypeName",
24731 "src": "6805:7:3",
24732 "typeDescriptions": {
24733 "typeIdentifier": null,
24734 "typeString": null
24735 }
24736 }
24737 },
24738 "id": 1326,
24739 "isConstant": false,
24740 "isLValue": false,
24741 "isPure": false,
24742 "kind": "typeConversion",
24743 "lValueRequested": false,
24744 "names": [],
24745 "nodeType": "FunctionCall",
24746 "src": "6805:13:3",
24747 "tryCall": false,
24748 "typeDescriptions": {
24749 "typeIdentifier": "t_address",
24750 "typeString": "address"
24751 }
24752 },
24753 {
24754 "argumentTypes": null,
24755 "id": 1327,
24756 "name": "liquidity",
24757 "nodeType": "Identifier",
24758 "overloadedDeclarations": [],
24759 "referencedDeclaration": 1274,
24760 "src": "6820:9:3",
24761 "typeDescriptions": {
24762 "typeIdentifier": "t_uint256",
24763 "typeString": "uint256"
24764 }
24765 }
24766 ],
24767 "expression": {
24768 "argumentTypes": [
24769 {
24770 "typeIdentifier": "t_address",
24771 "typeString": "address"
24772 },
24773 {
24774 "typeIdentifier": "t_uint256",
24775 "typeString": "uint256"
24776 }
24777 ],
24778 "id": 1322,
24779 "name": "_burn",
24780 "nodeType": "Identifier",
24781 "overloadedDeclarations": [],
24782 "referencedDeclaration": 194,
24783 "src": "6799:5:3",
24784 "typeDescriptions": {
24785 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
24786 "typeString": "function (address,uint256)"
24787 }
24788 },
24789 "id": 1328,
24790 "isConstant": false,
24791 "isLValue": false,
24792 "isPure": false,
24793 "kind": "functionCall",
24794 "lValueRequested": false,
24795 "names": [],
24796 "nodeType": "FunctionCall",
24797 "src": "6799:31:3",
24798 "tryCall": false,
24799 "typeDescriptions": {
24800 "typeIdentifier": "t_tuple$__$",
24801 "typeString": "tuple()"
24802 }
24803 },
24804 "id": 1329,
24805 "nodeType": "ExpressionStatement",
24806 "src": "6799:31:3"
24807 },
24808 {
24809 "expression": {
24810 "argumentTypes": null,
24811 "arguments": [
24812 {
24813 "argumentTypes": null,
24814 "id": 1331,
24815 "name": "_token0",
24816 "nodeType": "Identifier",
24817 "overloadedDeclarations": [],
24818 "referencedDeclaration": 1242,
24819 "src": "6854:7:3",
24820 "typeDescriptions": {
24821 "typeIdentifier": "t_address",
24822 "typeString": "address"
24823 }
24824 },
24825 {
24826 "argumentTypes": null,
24827 "id": 1332,
24828 "name": "to",
24829 "nodeType": "Identifier",
24830 "overloadedDeclarations": [],
24831 "referencedDeclaration": 1225,
24832 "src": "6863:2:3",
24833 "typeDescriptions": {
24834 "typeIdentifier": "t_address",
24835 "typeString": "address"
24836 }
24837 },
24838 {
24839 "argumentTypes": null,
24840 "id": 1333,
24841 "name": "amount0",
24842 "nodeType": "Identifier",
24843 "overloadedDeclarations": [],
24844 "referencedDeclaration": 1230,
24845 "src": "6867:7:3",
24846 "typeDescriptions": {
24847 "typeIdentifier": "t_uint256",
24848 "typeString": "uint256"
24849 }
24850 }
24851 ],
24852 "expression": {
24853 "argumentTypes": [
24854 {
24855 "typeIdentifier": "t_address",
24856 "typeString": "address"
24857 },
24858 {
24859 "typeIdentifier": "t_address",
24860 "typeString": "address"
24861 },
24862 {
24863 "typeIdentifier": "t_uint256",
24864 "typeString": "uint256"
24865 }
24866 ],
24867 "id": 1330,
24868 "name": "_safeTransfer",
24869 "nodeType": "Identifier",
24870 "overloadedDeclarations": [],
24871 "referencedDeclaration": 780,
24872 "src": "6840:13:3",
24873 "typeDescriptions": {
24874 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
24875 "typeString": "function (address,address,uint256)"
24876 }
24877 },
24878 "id": 1334,
24879 "isConstant": false,
24880 "isLValue": false,
24881 "isPure": false,
24882 "kind": "functionCall",
24883 "lValueRequested": false,
24884 "names": [],
24885 "nodeType": "FunctionCall",
24886 "src": "6840:35:3",
24887 "tryCall": false,
24888 "typeDescriptions": {
24889 "typeIdentifier": "t_tuple$__$",
24890 "typeString": "tuple()"
24891 }
24892 },
24893 "id": 1335,
24894 "nodeType": "ExpressionStatement",
24895 "src": "6840:35:3"
24896 },
24897 {
24898 "expression": {
24899 "argumentTypes": null,
24900 "arguments": [
24901 {
24902 "argumentTypes": null,
24903 "id": 1337,
24904 "name": "_token1",
24905 "nodeType": "Identifier",
24906 "overloadedDeclarations": [],
24907 "referencedDeclaration": 1246,
24908 "src": "6899:7:3",
24909 "typeDescriptions": {
24910 "typeIdentifier": "t_address",
24911 "typeString": "address"
24912 }
24913 },
24914 {
24915 "argumentTypes": null,
24916 "id": 1338,
24917 "name": "to",
24918 "nodeType": "Identifier",
24919 "overloadedDeclarations": [],
24920 "referencedDeclaration": 1225,
24921 "src": "6908:2:3",
24922 "typeDescriptions": {
24923 "typeIdentifier": "t_address",
24924 "typeString": "address"
24925 }
24926 },
24927 {
24928 "argumentTypes": null,
24929 "id": 1339,
24930 "name": "amount1",
24931 "nodeType": "Identifier",
24932 "overloadedDeclarations": [],
24933 "referencedDeclaration": 1232,
24934 "src": "6912:7:3",
24935 "typeDescriptions": {
24936 "typeIdentifier": "t_uint256",
24937 "typeString": "uint256"
24938 }
24939 }
24940 ],
24941 "expression": {
24942 "argumentTypes": [
24943 {
24944 "typeIdentifier": "t_address",
24945 "typeString": "address"
24946 },
24947 {
24948 "typeIdentifier": "t_address",
24949 "typeString": "address"
24950 },
24951 {
24952 "typeIdentifier": "t_uint256",
24953 "typeString": "uint256"
24954 }
24955 ],
24956 "id": 1336,
24957 "name": "_safeTransfer",
24958 "nodeType": "Identifier",
24959 "overloadedDeclarations": [],
24960 "referencedDeclaration": 780,
24961 "src": "6885:13:3",
24962 "typeDescriptions": {
24963 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
24964 "typeString": "function (address,address,uint256)"
24965 }
24966 },
24967 "id": 1340,
24968 "isConstant": false,
24969 "isLValue": false,
24970 "isPure": false,
24971 "kind": "functionCall",
24972 "lValueRequested": false,
24973 "names": [],
24974 "nodeType": "FunctionCall",
24975 "src": "6885:35:3",
24976 "tryCall": false,
24977 "typeDescriptions": {
24978 "typeIdentifier": "t_tuple$__$",
24979 "typeString": "tuple()"
24980 }
24981 },
24982 "id": 1341,
24983 "nodeType": "ExpressionStatement",
24984 "src": "6885:35:3"
24985 },
24986 {
24987 "expression": {
24988 "argumentTypes": null,
24989 "id": 1352,
24990 "isConstant": false,
24991 "isLValue": false,
24992 "isPure": false,
24993 "lValueRequested": false,
24994 "leftHandSide": {
24995 "argumentTypes": null,
24996 "id": 1342,
24997 "name": "balance0",
24998 "nodeType": "Identifier",
24999 "overloadedDeclarations": [],
25000 "referencedDeclaration": 1250,
25001 "src": "6930:8:3",
25002 "typeDescriptions": {
25003 "typeIdentifier": "t_uint256",
25004 "typeString": "uint256"
25005 }
25006 },
25007 "nodeType": "Assignment",
25008 "operator": "=",
25009 "rightHandSide": {
25010 "argumentTypes": null,
25011 "arguments": [
25012 {
25013 "argumentTypes": null,
25014 "arguments": [
25015 {
25016 "argumentTypes": null,
25017 "id": 1349,
25018 "name": "this",
25019 "nodeType": "Identifier",
25020 "overloadedDeclarations": [],
25021 "referencedDeclaration": -28,
25022 "src": "6982:4:3",
25023 "typeDescriptions": {
25024 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
25025 "typeString": "contract UniswapV2Pair"
25026 }
25027 }
25028 ],
25029 "expression": {
25030 "argumentTypes": [
25031 {
25032 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
25033 "typeString": "contract UniswapV2Pair"
25034 }
25035 ],
25036 "id": 1348,
25037 "isConstant": false,
25038 "isLValue": false,
25039 "isPure": true,
25040 "lValueRequested": false,
25041 "nodeType": "ElementaryTypeNameExpression",
25042 "src": "6974:7:3",
25043 "typeDescriptions": {
25044 "typeIdentifier": "t_type$_t_address_$",
25045 "typeString": "type(address)"
25046 },
25047 "typeName": {
25048 "id": 1347,
25049 "name": "address",
25050 "nodeType": "ElementaryTypeName",
25051 "src": "6974:7:3",
25052 "typeDescriptions": {
25053 "typeIdentifier": null,
25054 "typeString": null
25055 }
25056 }
25057 },
25058 "id": 1350,
25059 "isConstant": false,
25060 "isLValue": false,
25061 "isPure": false,
25062 "kind": "typeConversion",
25063 "lValueRequested": false,
25064 "names": [],
25065 "nodeType": "FunctionCall",
25066 "src": "6974:13:3",
25067 "tryCall": false,
25068 "typeDescriptions": {
25069 "typeIdentifier": "t_address",
25070 "typeString": "address"
25071 }
25072 }
25073 ],
25074 "expression": {
25075 "argumentTypes": [
25076 {
25077 "typeIdentifier": "t_address",
25078 "typeString": "address"
25079 }
25080 ],
25081 "expression": {
25082 "argumentTypes": null,
25083 "arguments": [
25084 {
25085 "argumentTypes": null,
25086 "id": 1344,
25087 "name": "_token0",
25088 "nodeType": "Identifier",
25089 "overloadedDeclarations": [],
25090 "referencedDeclaration": 1242,
25091 "src": "6955:7:3",
25092 "typeDescriptions": {
25093 "typeIdentifier": "t_address",
25094 "typeString": "address"
25095 }
25096 }
25097 ],
25098 "expression": {
25099 "argumentTypes": [
25100 {
25101 "typeIdentifier": "t_address",
25102 "typeString": "address"
25103 }
25104 ],
25105 "id": 1343,
25106 "name": "IERC20Uniswap",
25107 "nodeType": "Identifier",
25108 "overloadedDeclarations": [],
25109 "referencedDeclaration": 1795,
25110 "src": "6941:13:3",
25111 "typeDescriptions": {
25112 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
25113 "typeString": "type(contract IERC20Uniswap)"
25114 }
25115 },
25116 "id": 1345,
25117 "isConstant": false,
25118 "isLValue": false,
25119 "isPure": false,
25120 "kind": "typeConversion",
25121 "lValueRequested": false,
25122 "names": [],
25123 "nodeType": "FunctionCall",
25124 "src": "6941:22:3",
25125 "tryCall": false,
25126 "typeDescriptions": {
25127 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
25128 "typeString": "contract IERC20Uniswap"
25129 }
25130 },
25131 "id": 1346,
25132 "isConstant": false,
25133 "isLValue": false,
25134 "isPure": false,
25135 "lValueRequested": false,
25136 "memberName": "balanceOf",
25137 "nodeType": "MemberAccess",
25138 "referencedDeclaration": 1756,
25139 "src": "6941:32:3",
25140 "typeDescriptions": {
25141 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
25142 "typeString": "function (address) view external returns (uint256)"
25143 }
25144 },
25145 "id": 1351,
25146 "isConstant": false,
25147 "isLValue": false,
25148 "isPure": false,
25149 "kind": "functionCall",
25150 "lValueRequested": false,
25151 "names": [],
25152 "nodeType": "FunctionCall",
25153 "src": "6941:47:3",
25154 "tryCall": false,
25155 "typeDescriptions": {
25156 "typeIdentifier": "t_uint256",
25157 "typeString": "uint256"
25158 }
25159 },
25160 "src": "6930:58:3",
25161 "typeDescriptions": {
25162 "typeIdentifier": "t_uint256",
25163 "typeString": "uint256"
25164 }
25165 },
25166 "id": 1353,
25167 "nodeType": "ExpressionStatement",
25168 "src": "6930:58:3"
25169 },
25170 {
25171 "expression": {
25172 "argumentTypes": null,
25173 "id": 1364,
25174 "isConstant": false,
25175 "isLValue": false,
25176 "isPure": false,
25177 "lValueRequested": false,
25178 "leftHandSide": {
25179 "argumentTypes": null,
25180 "id": 1354,
25181 "name": "balance1",
25182 "nodeType": "Identifier",
25183 "overloadedDeclarations": [],
25184 "referencedDeclaration": 1262,
25185 "src": "6998:8:3",
25186 "typeDescriptions": {
25187 "typeIdentifier": "t_uint256",
25188 "typeString": "uint256"
25189 }
25190 },
25191 "nodeType": "Assignment",
25192 "operator": "=",
25193 "rightHandSide": {
25194 "argumentTypes": null,
25195 "arguments": [
25196 {
25197 "argumentTypes": null,
25198 "arguments": [
25199 {
25200 "argumentTypes": null,
25201 "id": 1361,
25202 "name": "this",
25203 "nodeType": "Identifier",
25204 "overloadedDeclarations": [],
25205 "referencedDeclaration": -28,
25206 "src": "7050:4:3",
25207 "typeDescriptions": {
25208 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
25209 "typeString": "contract UniswapV2Pair"
25210 }
25211 }
25212 ],
25213 "expression": {
25214 "argumentTypes": [
25215 {
25216 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
25217 "typeString": "contract UniswapV2Pair"
25218 }
25219 ],
25220 "id": 1360,
25221 "isConstant": false,
25222 "isLValue": false,
25223 "isPure": true,
25224 "lValueRequested": false,
25225 "nodeType": "ElementaryTypeNameExpression",
25226 "src": "7042:7:3",
25227 "typeDescriptions": {
25228 "typeIdentifier": "t_type$_t_address_$",
25229 "typeString": "type(address)"
25230 },
25231 "typeName": {
25232 "id": 1359,
25233 "name": "address",
25234 "nodeType": "ElementaryTypeName",
25235 "src": "7042:7:3",
25236 "typeDescriptions": {
25237 "typeIdentifier": null,
25238 "typeString": null
25239 }
25240 }
25241 },
25242 "id": 1362,
25243 "isConstant": false,
25244 "isLValue": false,
25245 "isPure": false,
25246 "kind": "typeConversion",
25247 "lValueRequested": false,
25248 "names": [],
25249 "nodeType": "FunctionCall",
25250 "src": "7042:13:3",
25251 "tryCall": false,
25252 "typeDescriptions": {
25253 "typeIdentifier": "t_address",
25254 "typeString": "address"
25255 }
25256 }
25257 ],
25258 "expression": {
25259 "argumentTypes": [
25260 {
25261 "typeIdentifier": "t_address",
25262 "typeString": "address"
25263 }
25264 ],
25265 "expression": {
25266 "argumentTypes": null,
25267 "arguments": [
25268 {
25269 "argumentTypes": null,
25270 "id": 1356,
25271 "name": "_token1",
25272 "nodeType": "Identifier",
25273 "overloadedDeclarations": [],
25274 "referencedDeclaration": 1246,
25275 "src": "7023:7:3",
25276 "typeDescriptions": {
25277 "typeIdentifier": "t_address",
25278 "typeString": "address"
25279 }
25280 }
25281 ],
25282 "expression": {
25283 "argumentTypes": [
25284 {
25285 "typeIdentifier": "t_address",
25286 "typeString": "address"
25287 }
25288 ],
25289 "id": 1355,
25290 "name": "IERC20Uniswap",
25291 "nodeType": "Identifier",
25292 "overloadedDeclarations": [],
25293 "referencedDeclaration": 1795,
25294 "src": "7009:13:3",
25295 "typeDescriptions": {
25296 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
25297 "typeString": "type(contract IERC20Uniswap)"
25298 }
25299 },
25300 "id": 1357,
25301 "isConstant": false,
25302 "isLValue": false,
25303 "isPure": false,
25304 "kind": "typeConversion",
25305 "lValueRequested": false,
25306 "names": [],
25307 "nodeType": "FunctionCall",
25308 "src": "7009:22:3",
25309 "tryCall": false,
25310 "typeDescriptions": {
25311 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
25312 "typeString": "contract IERC20Uniswap"
25313 }
25314 },
25315 "id": 1358,
25316 "isConstant": false,
25317 "isLValue": false,
25318 "isPure": false,
25319 "lValueRequested": false,
25320 "memberName": "balanceOf",
25321 "nodeType": "MemberAccess",
25322 "referencedDeclaration": 1756,
25323 "src": "7009:32:3",
25324 "typeDescriptions": {
25325 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
25326 "typeString": "function (address) view external returns (uint256)"
25327 }
25328 },
25329 "id": 1363,
25330 "isConstant": false,
25331 "isLValue": false,
25332 "isPure": false,
25333 "kind": "functionCall",
25334 "lValueRequested": false,
25335 "names": [],
25336 "nodeType": "FunctionCall",
25337 "src": "7009:47:3",
25338 "tryCall": false,
25339 "typeDescriptions": {
25340 "typeIdentifier": "t_uint256",
25341 "typeString": "uint256"
25342 }
25343 },
25344 "src": "6998:58:3",
25345 "typeDescriptions": {
25346 "typeIdentifier": "t_uint256",
25347 "typeString": "uint256"
25348 }
25349 },
25350 "id": 1365,
25351 "nodeType": "ExpressionStatement",
25352 "src": "6998:58:3"
25353 },
25354 {
25355 "expression": {
25356 "argumentTypes": null,
25357 "arguments": [
25358 {
25359 "argumentTypes": null,
25360 "id": 1367,
25361 "name": "balance0",
25362 "nodeType": "Identifier",
25363 "overloadedDeclarations": [],
25364 "referencedDeclaration": 1250,
25365 "src": "7075:8:3",
25366 "typeDescriptions": {
25367 "typeIdentifier": "t_uint256",
25368 "typeString": "uint256"
25369 }
25370 },
25371 {
25372 "argumentTypes": null,
25373 "id": 1368,
25374 "name": "balance1",
25375 "nodeType": "Identifier",
25376 "overloadedDeclarations": [],
25377 "referencedDeclaration": 1262,
25378 "src": "7085:8:3",
25379 "typeDescriptions": {
25380 "typeIdentifier": "t_uint256",
25381 "typeString": "uint256"
25382 }
25383 },
25384 {
25385 "argumentTypes": null,
25386 "id": 1369,
25387 "name": "_reserve0",
25388 "nodeType": "Identifier",
25389 "overloadedDeclarations": [],
25390 "referencedDeclaration": 1235,
25391 "src": "7095:9:3",
25392 "typeDescriptions": {
25393 "typeIdentifier": "t_uint112",
25394 "typeString": "uint112"
25395 }
25396 },
25397 {
25398 "argumentTypes": null,
25399 "id": 1370,
25400 "name": "_reserve1",
25401 "nodeType": "Identifier",
25402 "overloadedDeclarations": [],
25403 "referencedDeclaration": 1237,
25404 "src": "7106:9:3",
25405 "typeDescriptions": {
25406 "typeIdentifier": "t_uint112",
25407 "typeString": "uint112"
25408 }
25409 }
25410 ],
25411 "expression": {
25412 "argumentTypes": [
25413 {
25414 "typeIdentifier": "t_uint256",
25415 "typeString": "uint256"
25416 },
25417 {
25418 "typeIdentifier": "t_uint256",
25419 "typeString": "uint256"
25420 },
25421 {
25422 "typeIdentifier": "t_uint112",
25423 "typeString": "uint112"
25424 },
25425 {
25426 "typeIdentifier": "t_uint112",
25427 "typeString": "uint112"
25428 }
25429 ],
25430 "id": 1366,
25431 "name": "_update",
25432 "nodeType": "Identifier",
25433 "overloadedDeclarations": [],
25434 "referencedDeclaration": 966,
25435 "src": "7067:7:3",
25436 "typeDescriptions": {
25437 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
25438 "typeString": "function (uint256,uint256,uint112,uint112)"
25439 }
25440 },
25441 "id": 1371,
25442 "isConstant": false,
25443 "isLValue": false,
25444 "isPure": false,
25445 "kind": "functionCall",
25446 "lValueRequested": false,
25447 "names": [],
25448 "nodeType": "FunctionCall",
25449 "src": "7067:49:3",
25450 "tryCall": false,
25451 "typeDescriptions": {
25452 "typeIdentifier": "t_tuple$__$",
25453 "typeString": "tuple()"
25454 }
25455 },
25456 "id": 1372,
25457 "nodeType": "ExpressionStatement",
25458 "src": "7067:49:3"
25459 },
25460 {
25461 "condition": {
25462 "argumentTypes": null,
25463 "id": 1373,
25464 "name": "feeOn",
25465 "nodeType": "Identifier",
25466 "overloadedDeclarations": [],
25467 "referencedDeclaration": 1283,
25468 "src": "7130:5:3",
25469 "typeDescriptions": {
25470 "typeIdentifier": "t_bool",
25471 "typeString": "bool"
25472 }
25473 },
25474 "falseBody": null,
25475 "id": 1384,
25476 "nodeType": "IfStatement",
25477 "src": "7126:47:3",
25478 "trueBody": {
25479 "expression": {
25480 "argumentTypes": null,
25481 "id": 1382,
25482 "isConstant": false,
25483 "isLValue": false,
25484 "isPure": false,
25485 "lValueRequested": false,
25486 "leftHandSide": {
25487 "argumentTypes": null,
25488 "id": 1374,
25489 "name": "kLast",
25490 "nodeType": "Identifier",
25491 "overloadedDeclarations": [],
25492 "referencedDeclaration": 693,
25493 "src": "7137:5:3",
25494 "typeDescriptions": {
25495 "typeIdentifier": "t_uint256",
25496 "typeString": "uint256"
25497 }
25498 },
25499 "nodeType": "Assignment",
25500 "operator": "=",
25501 "rightHandSide": {
25502 "argumentTypes": null,
25503 "arguments": [
25504 {
25505 "argumentTypes": null,
25506 "id": 1380,
25507 "name": "reserve1",
25508 "nodeType": "Identifier",
25509 "overloadedDeclarations": [],
25510 "referencedDeclaration": 685,
25511 "src": "7164:8:3",
25512 "typeDescriptions": {
25513 "typeIdentifier": "t_uint112",
25514 "typeString": "uint112"
25515 }
25516 }
25517 ],
25518 "expression": {
25519 "argumentTypes": [
25520 {
25521 "typeIdentifier": "t_uint112",
25522 "typeString": "uint112"
25523 }
25524 ],
25525 "expression": {
25526 "argumentTypes": null,
25527 "arguments": [
25528 {
25529 "argumentTypes": null,
25530 "id": 1377,
25531 "name": "reserve0",
25532 "nodeType": "Identifier",
25533 "overloadedDeclarations": [],
25534 "referencedDeclaration": 683,
25535 "src": "7150:8:3",
25536 "typeDescriptions": {
25537 "typeIdentifier": "t_uint112",
25538 "typeString": "uint112"
25539 }
25540 }
25541 ],
25542 "expression": {
25543 "argumentTypes": [
25544 {
25545 "typeIdentifier": "t_uint112",
25546 "typeString": "uint112"
25547 }
25548 ],
25549 "id": 1376,
25550 "isConstant": false,
25551 "isLValue": false,
25552 "isPure": true,
25553 "lValueRequested": false,
25554 "nodeType": "ElementaryTypeNameExpression",
25555 "src": "7145:4:3",
25556 "typeDescriptions": {
25557 "typeIdentifier": "t_type$_t_uint256_$",
25558 "typeString": "type(uint256)"
25559 },
25560 "typeName": {
25561 "id": 1375,
25562 "name": "uint",
25563 "nodeType": "ElementaryTypeName",
25564 "src": "7145:4:3",
25565 "typeDescriptions": {
25566 "typeIdentifier": null,
25567 "typeString": null
25568 }
25569 }
25570 },
25571 "id": 1378,
25572 "isConstant": false,
25573 "isLValue": false,
25574 "isPure": false,
25575 "kind": "typeConversion",
25576 "lValueRequested": false,
25577 "names": [],
25578 "nodeType": "FunctionCall",
25579 "src": "7145:14:3",
25580 "tryCall": false,
25581 "typeDescriptions": {
25582 "typeIdentifier": "t_uint256",
25583 "typeString": "uint256"
25584 }
25585 },
25586 "id": 1379,
25587 "isConstant": false,
25588 "isLValue": false,
25589 "isPure": false,
25590 "lValueRequested": false,
25591 "memberName": "mul",
25592 "nodeType": "MemberAccess",
25593 "referencedDeclaration": 2382,
25594 "src": "7145:18:3",
25595 "typeDescriptions": {
25596 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
25597 "typeString": "function (uint256,uint256) pure returns (uint256)"
25598 }
25599 },
25600 "id": 1381,
25601 "isConstant": false,
25602 "isLValue": false,
25603 "isPure": false,
25604 "kind": "functionCall",
25605 "lValueRequested": false,
25606 "names": [],
25607 "nodeType": "FunctionCall",
25608 "src": "7145:28:3",
25609 "tryCall": false,
25610 "typeDescriptions": {
25611 "typeIdentifier": "t_uint256",
25612 "typeString": "uint256"
25613 }
25614 },
25615 "src": "7137:36:3",
25616 "typeDescriptions": {
25617 "typeIdentifier": "t_uint256",
25618 "typeString": "uint256"
25619 }
25620 },
25621 "id": 1383,
25622 "nodeType": "ExpressionStatement",
25623 "src": "7137:36:3"
25624 }
25625 },
25626 {
25627 "eventCall": {
25628 "argumentTypes": null,
25629 "arguments": [
25630 {
25631 "argumentTypes": null,
25632 "expression": {
25633 "argumentTypes": null,
25634 "id": 1386,
25635 "name": "msg",
25636 "nodeType": "Identifier",
25637 "overloadedDeclarations": [],
25638 "referencedDeclaration": -15,
25639 "src": "7233:3:3",
25640 "typeDescriptions": {
25641 "typeIdentifier": "t_magic_message",
25642 "typeString": "msg"
25643 }
25644 },
25645 "id": 1387,
25646 "isConstant": false,
25647 "isLValue": false,
25648 "isPure": false,
25649 "lValueRequested": false,
25650 "memberName": "sender",
25651 "nodeType": "MemberAccess",
25652 "referencedDeclaration": null,
25653 "src": "7233:10:3",
25654 "typeDescriptions": {
25655 "typeIdentifier": "t_address_payable",
25656 "typeString": "address payable"
25657 }
25658 },
25659 {
25660 "argumentTypes": null,
25661 "id": 1388,
25662 "name": "amount0",
25663 "nodeType": "Identifier",
25664 "overloadedDeclarations": [],
25665 "referencedDeclaration": 1230,
25666 "src": "7245:7:3",
25667 "typeDescriptions": {
25668 "typeIdentifier": "t_uint256",
25669 "typeString": "uint256"
25670 }
25671 },
25672 {
25673 "argumentTypes": null,
25674 "id": 1389,
25675 "name": "amount1",
25676 "nodeType": "Identifier",
25677 "overloadedDeclarations": [],
25678 "referencedDeclaration": 1232,
25679 "src": "7254:7:3",
25680 "typeDescriptions": {
25681 "typeIdentifier": "t_uint256",
25682 "typeString": "uint256"
25683 }
25684 },
25685 {
25686 "argumentTypes": null,
25687 "id": 1390,
25688 "name": "to",
25689 "nodeType": "Identifier",
25690 "overloadedDeclarations": [],
25691 "referencedDeclaration": 1225,
25692 "src": "7263:2:3",
25693 "typeDescriptions": {
25694 "typeIdentifier": "t_address",
25695 "typeString": "address"
25696 }
25697 }
25698 ],
25699 "expression": {
25700 "argumentTypes": [
25701 {
25702 "typeIdentifier": "t_address_payable",
25703 "typeString": "address payable"
25704 },
25705 {
25706 "typeIdentifier": "t_uint256",
25707 "typeString": "uint256"
25708 },
25709 {
25710 "typeIdentifier": "t_uint256",
25711 "typeString": "uint256"
25712 },
25713 {
25714 "typeIdentifier": "t_address",
25715 "typeString": "address"
25716 }
25717 ],
25718 "id": 1385,
25719 "name": "Burn",
25720 "nodeType": "Identifier",
25721 "overloadedDeclarations": [],
25722 "referencedDeclaration": 798,
25723 "src": "7228:4:3",
25724 "typeDescriptions": {
25725 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
25726 "typeString": "function (address,uint256,uint256,address)"
25727 }
25728 },
25729 "id": 1391,
25730 "isConstant": false,
25731 "isLValue": false,
25732 "isPure": false,
25733 "kind": "functionCall",
25734 "lValueRequested": false,
25735 "names": [],
25736 "nodeType": "FunctionCall",
25737 "src": "7228:38:3",
25738 "tryCall": false,
25739 "typeDescriptions": {
25740 "typeIdentifier": "t_tuple$__$",
25741 "typeString": "tuple()"
25742 }
25743 },
25744 "id": 1392,
25745 "nodeType": "EmitStatement",
25746 "src": "7223:43:3"
25747 }
25748 ]
25749 },
25750 "documentation": null,
25751 "functionSelector": "89afcb44",
25752 "id": 1394,
25753 "implemented": true,
25754 "kind": "function",
25755 "modifiers": [
25756 {
25757 "arguments": null,
25758 "id": 1228,
25759 "modifierName": {
25760 "argumentTypes": null,
25761 "id": 1227,
25762 "name": "lock",
25763 "nodeType": "Identifier",
25764 "overloadedDeclarations": [],
25765 "referencedDeclaration": 715,
25766 "src": "5836:4:3",
25767 "typeDescriptions": {
25768 "typeIdentifier": "t_modifier$__$",
25769 "typeString": "modifier ()"
25770 }
25771 },
25772 "nodeType": "ModifierInvocation",
25773 "src": "5836:4:3"
25774 }
25775 ],
25776 "name": "burn",
25777 "nodeType": "FunctionDefinition",
25778 "overrides": null,
25779 "parameters": {
25780 "id": 1226,
25781 "nodeType": "ParameterList",
25782 "parameters": [
25783 {
25784 "constant": false,
25785 "id": 1225,
25786 "mutability": "mutable",
25787 "name": "to",
25788 "nodeType": "VariableDeclaration",
25789 "overrides": null,
25790 "scope": 1394,
25791 "src": "5815:10:3",
25792 "stateVariable": false,
25793 "storageLocation": "default",
25794 "typeDescriptions": {
25795 "typeIdentifier": "t_address",
25796 "typeString": "address"
25797 },
25798 "typeName": {
25799 "id": 1224,
25800 "name": "address",
25801 "nodeType": "ElementaryTypeName",
25802 "src": "5815:7:3",
25803 "stateMutability": "nonpayable",
25804 "typeDescriptions": {
25805 "typeIdentifier": "t_address",
25806 "typeString": "address"
25807 }
25808 },
25809 "value": null,
25810 "visibility": "internal"
25811 }
25812 ],
25813 "src": "5814:12:3"
25814 },
25815 "returnParameters": {
25816 "id": 1233,
25817 "nodeType": "ParameterList",
25818 "parameters": [
25819 {
25820 "constant": false,
25821 "id": 1230,
25822 "mutability": "mutable",
25823 "name": "amount0",
25824 "nodeType": "VariableDeclaration",
25825 "overrides": null,
25826 "scope": 1394,
25827 "src": "5850:12:3",
25828 "stateVariable": false,
25829 "storageLocation": "default",
25830 "typeDescriptions": {
25831 "typeIdentifier": "t_uint256",
25832 "typeString": "uint256"
25833 },
25834 "typeName": {
25835 "id": 1229,
25836 "name": "uint",
25837 "nodeType": "ElementaryTypeName",
25838 "src": "5850:4:3",
25839 "typeDescriptions": {
25840 "typeIdentifier": "t_uint256",
25841 "typeString": "uint256"
25842 }
25843 },
25844 "value": null,
25845 "visibility": "internal"
25846 },
25847 {
25848 "constant": false,
25849 "id": 1232,
25850 "mutability": "mutable",
25851 "name": "amount1",
25852 "nodeType": "VariableDeclaration",
25853 "overrides": null,
25854 "scope": 1394,
25855 "src": "5864:12:3",
25856 "stateVariable": false,
25857 "storageLocation": "default",
25858 "typeDescriptions": {
25859 "typeIdentifier": "t_uint256",
25860 "typeString": "uint256"
25861 },
25862 "typeName": {
25863 "id": 1231,
25864 "name": "uint",
25865 "nodeType": "ElementaryTypeName",
25866 "src": "5864:4:3",
25867 "typeDescriptions": {
25868 "typeIdentifier": "t_uint256",
25869 "typeString": "uint256"
25870 }
25871 },
25872 "value": null,
25873 "visibility": "internal"
25874 }
25875 ],
25876 "src": "5849:28:3"
25877 },
25878 "scope": 1711,
25879 "src": "5801:1472:3",
25880 "stateMutability": "nonpayable",
25881 "virtual": false,
25882 "visibility": "external"
25883 },
25884 {
25885 "body": {
25886 "id": 1630,
25887 "nodeType": "Block",
25888 "src": "7477:1780:3",
25889 "statements": [
25890 {
25891 "expression": {
25892 "argumentTypes": null,
25893 "arguments": [
25894 {
25895 "argumentTypes": null,
25896 "commonType": {
25897 "typeIdentifier": "t_bool",
25898 "typeString": "bool"
25899 },
25900 "id": 1414,
25901 "isConstant": false,
25902 "isLValue": false,
25903 "isPure": false,
25904 "lValueRequested": false,
25905 "leftExpression": {
25906 "argumentTypes": null,
25907 "commonType": {
25908 "typeIdentifier": "t_uint256",
25909 "typeString": "uint256"
25910 },
25911 "id": 1410,
25912 "isConstant": false,
25913 "isLValue": false,
25914 "isPure": false,
25915 "lValueRequested": false,
25916 "leftExpression": {
25917 "argumentTypes": null,
25918 "id": 1408,
25919 "name": "amount0Out",
25920 "nodeType": "Identifier",
25921 "overloadedDeclarations": [],
25922 "referencedDeclaration": 1396,
25923 "src": "7495:10:3",
25924 "typeDescriptions": {
25925 "typeIdentifier": "t_uint256",
25926 "typeString": "uint256"
25927 }
25928 },
25929 "nodeType": "BinaryOperation",
25930 "operator": ">",
25931 "rightExpression": {
25932 "argumentTypes": null,
25933 "hexValue": "30",
25934 "id": 1409,
25935 "isConstant": false,
25936 "isLValue": false,
25937 "isPure": true,
25938 "kind": "number",
25939 "lValueRequested": false,
25940 "nodeType": "Literal",
25941 "src": "7508:1:3",
25942 "subdenomination": null,
25943 "typeDescriptions": {
25944 "typeIdentifier": "t_rational_0_by_1",
25945 "typeString": "int_const 0"
25946 },
25947 "value": "0"
25948 },
25949 "src": "7495:14:3",
25950 "typeDescriptions": {
25951 "typeIdentifier": "t_bool",
25952 "typeString": "bool"
25953 }
25954 },
25955 "nodeType": "BinaryOperation",
25956 "operator": "||",
25957 "rightExpression": {
25958 "argumentTypes": null,
25959 "commonType": {
25960 "typeIdentifier": "t_uint256",
25961 "typeString": "uint256"
25962 },
25963 "id": 1413,
25964 "isConstant": false,
25965 "isLValue": false,
25966 "isPure": false,
25967 "lValueRequested": false,
25968 "leftExpression": {
25969 "argumentTypes": null,
25970 "id": 1411,
25971 "name": "amount1Out",
25972 "nodeType": "Identifier",
25973 "overloadedDeclarations": [],
25974 "referencedDeclaration": 1398,
25975 "src": "7513:10:3",
25976 "typeDescriptions": {
25977 "typeIdentifier": "t_uint256",
25978 "typeString": "uint256"
25979 }
25980 },
25981 "nodeType": "BinaryOperation",
25982 "operator": ">",
25983 "rightExpression": {
25984 "argumentTypes": null,
25985 "hexValue": "30",
25986 "id": 1412,
25987 "isConstant": false,
25988 "isLValue": false,
25989 "isPure": true,
25990 "kind": "number",
25991 "lValueRequested": false,
25992 "nodeType": "Literal",
25993 "src": "7526:1:3",
25994 "subdenomination": null,
25995 "typeDescriptions": {
25996 "typeIdentifier": "t_rational_0_by_1",
25997 "typeString": "int_const 0"
25998 },
25999 "value": "0"
26000 },
26001 "src": "7513:14:3",
26002 "typeDescriptions": {
26003 "typeIdentifier": "t_bool",
26004 "typeString": "bool"
26005 }
26006 },
26007 "src": "7495:32:3",
26008 "typeDescriptions": {
26009 "typeIdentifier": "t_bool",
26010 "typeString": "bool"
26011 }
26012 },
26013 {
26014 "argumentTypes": null,
26015 "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54",
26016 "id": 1415,
26017 "isConstant": false,
26018 "isLValue": false,
26019 "isPure": true,
26020 "kind": "string",
26021 "lValueRequested": false,
26022 "nodeType": "Literal",
26023 "src": "7529:39:3",
26024 "subdenomination": null,
26025 "typeDescriptions": {
26026 "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83",
26027 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\""
26028 },
26029 "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT"
26030 }
26031 ],
26032 "expression": {
26033 "argumentTypes": [
26034 {
26035 "typeIdentifier": "t_bool",
26036 "typeString": "bool"
26037 },
26038 {
26039 "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83",
26040 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\""
26041 }
26042 ],
26043 "id": 1407,
26044 "name": "require",
26045 "nodeType": "Identifier",
26046 "overloadedDeclarations": [
26047 -18,
26048 -18
26049 ],
26050 "referencedDeclaration": -18,
26051 "src": "7487:7:3",
26052 "typeDescriptions": {
26053 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
26054 "typeString": "function (bool,string memory) pure"
26055 }
26056 },
26057 "id": 1416,
26058 "isConstant": false,
26059 "isLValue": false,
26060 "isPure": false,
26061 "kind": "functionCall",
26062 "lValueRequested": false,
26063 "names": [],
26064 "nodeType": "FunctionCall",
26065 "src": "7487:82:3",
26066 "tryCall": false,
26067 "typeDescriptions": {
26068 "typeIdentifier": "t_tuple$__$",
26069 "typeString": "tuple()"
26070 }
26071 },
26072 "id": 1417,
26073 "nodeType": "ExpressionStatement",
26074 "src": "7487:82:3"
26075 },
26076 {
26077 "assignments": [
26078 1419,
26079 1421,
26080 null
26081 ],
26082 "declarations": [
26083 {
26084 "constant": false,
26085 "id": 1419,
26086 "mutability": "mutable",
26087 "name": "_reserve0",
26088 "nodeType": "VariableDeclaration",
26089 "overrides": null,
26090 "scope": 1630,
26091 "src": "7580:17:3",
26092 "stateVariable": false,
26093 "storageLocation": "default",
26094 "typeDescriptions": {
26095 "typeIdentifier": "t_uint112",
26096 "typeString": "uint112"
26097 },
26098 "typeName": {
26099 "id": 1418,
26100 "name": "uint112",
26101 "nodeType": "ElementaryTypeName",
26102 "src": "7580:7:3",
26103 "typeDescriptions": {
26104 "typeIdentifier": "t_uint112",
26105 "typeString": "uint112"
26106 }
26107 },
26108 "value": null,
26109 "visibility": "internal"
26110 },
26111 {
26112 "constant": false,
26113 "id": 1421,
26114 "mutability": "mutable",
26115 "name": "_reserve1",
26116 "nodeType": "VariableDeclaration",
26117 "overrides": null,
26118 "scope": 1630,
26119 "src": "7599:17:3",
26120 "stateVariable": false,
26121 "storageLocation": "default",
26122 "typeDescriptions": {
26123 "typeIdentifier": "t_uint112",
26124 "typeString": "uint112"
26125 },
26126 "typeName": {
26127 "id": 1420,
26128 "name": "uint112",
26129 "nodeType": "ElementaryTypeName",
26130 "src": "7599:7:3",
26131 "typeDescriptions": {
26132 "typeIdentifier": "t_uint112",
26133 "typeString": "uint112"
26134 }
26135 },
26136 "value": null,
26137 "visibility": "internal"
26138 },
26139 null
26140 ],
26141 "id": 1424,
26142 "initialValue": {
26143 "argumentTypes": null,
26144 "arguments": [],
26145 "expression": {
26146 "argumentTypes": [],
26147 "id": 1422,
26148 "name": "getReserves",
26149 "nodeType": "Identifier",
26150 "overloadedDeclarations": [],
26151 "referencedDeclaration": 737,
26152 "src": "7621:11:3",
26153 "typeDescriptions": {
26154 "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
26155 "typeString": "function () view returns (uint112,uint112,uint32)"
26156 }
26157 },
26158 "id": 1423,
26159 "isConstant": false,
26160 "isLValue": false,
26161 "isPure": false,
26162 "kind": "functionCall",
26163 "lValueRequested": false,
26164 "names": [],
26165 "nodeType": "FunctionCall",
26166 "src": "7621:13:3",
26167 "tryCall": false,
26168 "typeDescriptions": {
26169 "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
26170 "typeString": "tuple(uint112,uint112,uint32)"
26171 }
26172 },
26173 "nodeType": "VariableDeclarationStatement",
26174 "src": "7579:55:3"
26175 },
26176 {
26177 "expression": {
26178 "argumentTypes": null,
26179 "arguments": [
26180 {
26181 "argumentTypes": null,
26182 "commonType": {
26183 "typeIdentifier": "t_bool",
26184 "typeString": "bool"
26185 },
26186 "id": 1432,
26187 "isConstant": false,
26188 "isLValue": false,
26189 "isPure": false,
26190 "lValueRequested": false,
26191 "leftExpression": {
26192 "argumentTypes": null,
26193 "commonType": {
26194 "typeIdentifier": "t_uint256",
26195 "typeString": "uint256"
26196 },
26197 "id": 1428,
26198 "isConstant": false,
26199 "isLValue": false,
26200 "isPure": false,
26201 "lValueRequested": false,
26202 "leftExpression": {
26203 "argumentTypes": null,
26204 "id": 1426,
26205 "name": "amount0Out",
26206 "nodeType": "Identifier",
26207 "overloadedDeclarations": [],
26208 "referencedDeclaration": 1396,
26209 "src": "7667:10:3",
26210 "typeDescriptions": {
26211 "typeIdentifier": "t_uint256",
26212 "typeString": "uint256"
26213 }
26214 },
26215 "nodeType": "BinaryOperation",
26216 "operator": "<",
26217 "rightExpression": {
26218 "argumentTypes": null,
26219 "id": 1427,
26220 "name": "_reserve0",
26221 "nodeType": "Identifier",
26222 "overloadedDeclarations": [],
26223 "referencedDeclaration": 1419,
26224 "src": "7680:9:3",
26225 "typeDescriptions": {
26226 "typeIdentifier": "t_uint112",
26227 "typeString": "uint112"
26228 }
26229 },
26230 "src": "7667:22:3",
26231 "typeDescriptions": {
26232 "typeIdentifier": "t_bool",
26233 "typeString": "bool"
26234 }
26235 },
26236 "nodeType": "BinaryOperation",
26237 "operator": "&&",
26238 "rightExpression": {
26239 "argumentTypes": null,
26240 "commonType": {
26241 "typeIdentifier": "t_uint256",
26242 "typeString": "uint256"
26243 },
26244 "id": 1431,
26245 "isConstant": false,
26246 "isLValue": false,
26247 "isPure": false,
26248 "lValueRequested": false,
26249 "leftExpression": {
26250 "argumentTypes": null,
26251 "id": 1429,
26252 "name": "amount1Out",
26253 "nodeType": "Identifier",
26254 "overloadedDeclarations": [],
26255 "referencedDeclaration": 1398,
26256 "src": "7693:10:3",
26257 "typeDescriptions": {
26258 "typeIdentifier": "t_uint256",
26259 "typeString": "uint256"
26260 }
26261 },
26262 "nodeType": "BinaryOperation",
26263 "operator": "<",
26264 "rightExpression": {
26265 "argumentTypes": null,
26266 "id": 1430,
26267 "name": "_reserve1",
26268 "nodeType": "Identifier",
26269 "overloadedDeclarations": [],
26270 "referencedDeclaration": 1421,
26271 "src": "7706:9:3",
26272 "typeDescriptions": {
26273 "typeIdentifier": "t_uint112",
26274 "typeString": "uint112"
26275 }
26276 },
26277 "src": "7693:22:3",
26278 "typeDescriptions": {
26279 "typeIdentifier": "t_bool",
26280 "typeString": "bool"
26281 }
26282 },
26283 "src": "7667:48:3",
26284 "typeDescriptions": {
26285 "typeIdentifier": "t_bool",
26286 "typeString": "bool"
26287 }
26288 },
26289 {
26290 "argumentTypes": null,
26291 "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459",
26292 "id": 1433,
26293 "isConstant": false,
26294 "isLValue": false,
26295 "isPure": true,
26296 "kind": "string",
26297 "lValueRequested": false,
26298 "nodeType": "Literal",
26299 "src": "7717:35:3",
26300 "subdenomination": null,
26301 "typeDescriptions": {
26302 "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f",
26303 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\""
26304 },
26305 "value": "UniswapV2: INSUFFICIENT_LIQUIDITY"
26306 }
26307 ],
26308 "expression": {
26309 "argumentTypes": [
26310 {
26311 "typeIdentifier": "t_bool",
26312 "typeString": "bool"
26313 },
26314 {
26315 "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f",
26316 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\""
26317 }
26318 ],
26319 "id": 1425,
26320 "name": "require",
26321 "nodeType": "Identifier",
26322 "overloadedDeclarations": [
26323 -18,
26324 -18
26325 ],
26326 "referencedDeclaration": -18,
26327 "src": "7659:7:3",
26328 "typeDescriptions": {
26329 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
26330 "typeString": "function (bool,string memory) pure"
26331 }
26332 },
26333 "id": 1434,
26334 "isConstant": false,
26335 "isLValue": false,
26336 "isPure": false,
26337 "kind": "functionCall",
26338 "lValueRequested": false,
26339 "names": [],
26340 "nodeType": "FunctionCall",
26341 "src": "7659:94:3",
26342 "tryCall": false,
26343 "typeDescriptions": {
26344 "typeIdentifier": "t_tuple$__$",
26345 "typeString": "tuple()"
26346 }
26347 },
26348 "id": 1435,
26349 "nodeType": "ExpressionStatement",
26350 "src": "7659:94:3"
26351 },
26352 {
26353 "assignments": [
26354 1437
26355 ],
26356 "declarations": [
26357 {
26358 "constant": false,
26359 "id": 1437,
26360 "mutability": "mutable",
26361 "name": "balance0",
26362 "nodeType": "VariableDeclaration",
26363 "overrides": null,
26364 "scope": 1630,
26365 "src": "7764:13:3",
26366 "stateVariable": false,
26367 "storageLocation": "default",
26368 "typeDescriptions": {
26369 "typeIdentifier": "t_uint256",
26370 "typeString": "uint256"
26371 },
26372 "typeName": {
26373 "id": 1436,
26374 "name": "uint",
26375 "nodeType": "ElementaryTypeName",
26376 "src": "7764:4:3",
26377 "typeDescriptions": {
26378 "typeIdentifier": "t_uint256",
26379 "typeString": "uint256"
26380 }
26381 },
26382 "value": null,
26383 "visibility": "internal"
26384 }
26385 ],
26386 "id": 1438,
26387 "initialValue": null,
26388 "nodeType": "VariableDeclarationStatement",
26389 "src": "7764:13:3"
26390 },
26391 {
26392 "assignments": [
26393 1440
26394 ],
26395 "declarations": [
26396 {
26397 "constant": false,
26398 "id": 1440,
26399 "mutability": "mutable",
26400 "name": "balance1",
26401 "nodeType": "VariableDeclaration",
26402 "overrides": null,
26403 "scope": 1630,
26404 "src": "7787:13:3",
26405 "stateVariable": false,
26406 "storageLocation": "default",
26407 "typeDescriptions": {
26408 "typeIdentifier": "t_uint256",
26409 "typeString": "uint256"
26410 },
26411 "typeName": {
26412 "id": 1439,
26413 "name": "uint",
26414 "nodeType": "ElementaryTypeName",
26415 "src": "7787:4:3",
26416 "typeDescriptions": {
26417 "typeIdentifier": "t_uint256",
26418 "typeString": "uint256"
26419 }
26420 },
26421 "value": null,
26422 "visibility": "internal"
26423 }
26424 ],
26425 "id": 1441,
26426 "initialValue": null,
26427 "nodeType": "VariableDeclarationStatement",
26428 "src": "7787:13:3"
26429 },
26430 {
26431 "id": 1521,
26432 "nodeType": "Block",
26433 "src": "7810:655:3",
26434 "statements": [
26435 {
26436 "assignments": [
26437 1443
26438 ],
26439 "declarations": [
26440 {
26441 "constant": false,
26442 "id": 1443,
26443 "mutability": "mutable",
26444 "name": "_token0",
26445 "nodeType": "VariableDeclaration",
26446 "overrides": null,
26447 "scope": 1521,
26448 "src": "7875:15:3",
26449 "stateVariable": false,
26450 "storageLocation": "default",
26451 "typeDescriptions": {
26452 "typeIdentifier": "t_address",
26453 "typeString": "address"
26454 },
26455 "typeName": {
26456 "id": 1442,
26457 "name": "address",
26458 "nodeType": "ElementaryTypeName",
26459 "src": "7875:7:3",
26460 "stateMutability": "nonpayable",
26461 "typeDescriptions": {
26462 "typeIdentifier": "t_address",
26463 "typeString": "address"
26464 }
26465 },
26466 "value": null,
26467 "visibility": "internal"
26468 }
26469 ],
26470 "id": 1445,
26471 "initialValue": {
26472 "argumentTypes": null,
26473 "id": 1444,
26474 "name": "token0",
26475 "nodeType": "Identifier",
26476 "overloadedDeclarations": [],
26477 "referencedDeclaration": 679,
26478 "src": "7893:6:3",
26479 "typeDescriptions": {
26480 "typeIdentifier": "t_address",
26481 "typeString": "address"
26482 }
26483 },
26484 "nodeType": "VariableDeclarationStatement",
26485 "src": "7875:24:3"
26486 },
26487 {
26488 "assignments": [
26489 1447
26490 ],
26491 "declarations": [
26492 {
26493 "constant": false,
26494 "id": 1447,
26495 "mutability": "mutable",
26496 "name": "_token1",
26497 "nodeType": "VariableDeclaration",
26498 "overrides": null,
26499 "scope": 1521,
26500 "src": "7909:15:3",
26501 "stateVariable": false,
26502 "storageLocation": "default",
26503 "typeDescriptions": {
26504 "typeIdentifier": "t_address",
26505 "typeString": "address"
26506 },
26507 "typeName": {
26508 "id": 1446,
26509 "name": "address",
26510 "nodeType": "ElementaryTypeName",
26511 "src": "7909:7:3",
26512 "stateMutability": "nonpayable",
26513 "typeDescriptions": {
26514 "typeIdentifier": "t_address",
26515 "typeString": "address"
26516 }
26517 },
26518 "value": null,
26519 "visibility": "internal"
26520 }
26521 ],
26522 "id": 1449,
26523 "initialValue": {
26524 "argumentTypes": null,
26525 "id": 1448,
26526 "name": "token1",
26527 "nodeType": "Identifier",
26528 "overloadedDeclarations": [],
26529 "referencedDeclaration": 681,
26530 "src": "7927:6:3",
26531 "typeDescriptions": {
26532 "typeIdentifier": "t_address",
26533 "typeString": "address"
26534 }
26535 },
26536 "nodeType": "VariableDeclarationStatement",
26537 "src": "7909:24:3"
26538 },
26539 {
26540 "expression": {
26541 "argumentTypes": null,
26542 "arguments": [
26543 {
26544 "argumentTypes": null,
26545 "commonType": {
26546 "typeIdentifier": "t_bool",
26547 "typeString": "bool"
26548 },
26549 "id": 1457,
26550 "isConstant": false,
26551 "isLValue": false,
26552 "isPure": false,
26553 "lValueRequested": false,
26554 "leftExpression": {
26555 "argumentTypes": null,
26556 "commonType": {
26557 "typeIdentifier": "t_address",
26558 "typeString": "address"
26559 },
26560 "id": 1453,
26561 "isConstant": false,
26562 "isLValue": false,
26563 "isPure": false,
26564 "lValueRequested": false,
26565 "leftExpression": {
26566 "argumentTypes": null,
26567 "id": 1451,
26568 "name": "to",
26569 "nodeType": "Identifier",
26570 "overloadedDeclarations": [],
26571 "referencedDeclaration": 1400,
26572 "src": "7951:2:3",
26573 "typeDescriptions": {
26574 "typeIdentifier": "t_address",
26575 "typeString": "address"
26576 }
26577 },
26578 "nodeType": "BinaryOperation",
26579 "operator": "!=",
26580 "rightExpression": {
26581 "argumentTypes": null,
26582 "id": 1452,
26583 "name": "_token0",
26584 "nodeType": "Identifier",
26585 "overloadedDeclarations": [],
26586 "referencedDeclaration": 1443,
26587 "src": "7957:7:3",
26588 "typeDescriptions": {
26589 "typeIdentifier": "t_address",
26590 "typeString": "address"
26591 }
26592 },
26593 "src": "7951:13:3",
26594 "typeDescriptions": {
26595 "typeIdentifier": "t_bool",
26596 "typeString": "bool"
26597 }
26598 },
26599 "nodeType": "BinaryOperation",
26600 "operator": "&&",
26601 "rightExpression": {
26602 "argumentTypes": null,
26603 "commonType": {
26604 "typeIdentifier": "t_address",
26605 "typeString": "address"
26606 },
26607 "id": 1456,
26608 "isConstant": false,
26609 "isLValue": false,
26610 "isPure": false,
26611 "lValueRequested": false,
26612 "leftExpression": {
26613 "argumentTypes": null,
26614 "id": 1454,
26615 "name": "to",
26616 "nodeType": "Identifier",
26617 "overloadedDeclarations": [],
26618 "referencedDeclaration": 1400,
26619 "src": "7968:2:3",
26620 "typeDescriptions": {
26621 "typeIdentifier": "t_address",
26622 "typeString": "address"
26623 }
26624 },
26625 "nodeType": "BinaryOperation",
26626 "operator": "!=",
26627 "rightExpression": {
26628 "argumentTypes": null,
26629 "id": 1455,
26630 "name": "_token1",
26631 "nodeType": "Identifier",
26632 "overloadedDeclarations": [],
26633 "referencedDeclaration": 1447,
26634 "src": "7974:7:3",
26635 "typeDescriptions": {
26636 "typeIdentifier": "t_address",
26637 "typeString": "address"
26638 }
26639 },
26640 "src": "7968:13:3",
26641 "typeDescriptions": {
26642 "typeIdentifier": "t_bool",
26643 "typeString": "bool"
26644 }
26645 },
26646 "src": "7951:30:3",
26647 "typeDescriptions": {
26648 "typeIdentifier": "t_bool",
26649 "typeString": "bool"
26650 }
26651 },
26652 {
26653 "argumentTypes": null,
26654 "hexValue": "556e697377617056323a20494e56414c49445f544f",
26655 "id": 1458,
26656 "isConstant": false,
26657 "isLValue": false,
26658 "isPure": true,
26659 "kind": "string",
26660 "lValueRequested": false,
26661 "nodeType": "Literal",
26662 "src": "7983:23:3",
26663 "subdenomination": null,
26664 "typeDescriptions": {
26665 "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3",
26666 "typeString": "literal_string \"UniswapV2: INVALID_TO\""
26667 },
26668 "value": "UniswapV2: INVALID_TO"
26669 }
26670 ],
26671 "expression": {
26672 "argumentTypes": [
26673 {
26674 "typeIdentifier": "t_bool",
26675 "typeString": "bool"
26676 },
26677 {
26678 "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3",
26679 "typeString": "literal_string \"UniswapV2: INVALID_TO\""
26680 }
26681 ],
26682 "id": 1450,
26683 "name": "require",
26684 "nodeType": "Identifier",
26685 "overloadedDeclarations": [
26686 -18,
26687 -18
26688 ],
26689 "referencedDeclaration": -18,
26690 "src": "7943:7:3",
26691 "typeDescriptions": {
26692 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
26693 "typeString": "function (bool,string memory) pure"
26694 }
26695 },
26696 "id": 1459,
26697 "isConstant": false,
26698 "isLValue": false,
26699 "isPure": false,
26700 "kind": "functionCall",
26701 "lValueRequested": false,
26702 "names": [],
26703 "nodeType": "FunctionCall",
26704 "src": "7943:64:3",
26705 "tryCall": false,
26706 "typeDescriptions": {
26707 "typeIdentifier": "t_tuple$__$",
26708 "typeString": "tuple()"
26709 }
26710 },
26711 "id": 1460,
26712 "nodeType": "ExpressionStatement",
26713 "src": "7943:64:3"
26714 },
26715 {
26716 "condition": {
26717 "argumentTypes": null,
26718 "commonType": {
26719 "typeIdentifier": "t_uint256",
26720 "typeString": "uint256"
26721 },
26722 "id": 1463,
26723 "isConstant": false,
26724 "isLValue": false,
26725 "isPure": false,
26726 "lValueRequested": false,
26727 "leftExpression": {
26728 "argumentTypes": null,
26729 "id": 1461,
26730 "name": "amount0Out",
26731 "nodeType": "Identifier",
26732 "overloadedDeclarations": [],
26733 "referencedDeclaration": 1396,
26734 "src": "8021:10:3",
26735 "typeDescriptions": {
26736 "typeIdentifier": "t_uint256",
26737 "typeString": "uint256"
26738 }
26739 },
26740 "nodeType": "BinaryOperation",
26741 "operator": ">",
26742 "rightExpression": {
26743 "argumentTypes": null,
26744 "hexValue": "30",
26745 "id": 1462,
26746 "isConstant": false,
26747 "isLValue": false,
26748 "isPure": true,
26749 "kind": "number",
26750 "lValueRequested": false,
26751 "nodeType": "Literal",
26752 "src": "8034:1:3",
26753 "subdenomination": null,
26754 "typeDescriptions": {
26755 "typeIdentifier": "t_rational_0_by_1",
26756 "typeString": "int_const 0"
26757 },
26758 "value": "0"
26759 },
26760 "src": "8021:14:3",
26761 "typeDescriptions": {
26762 "typeIdentifier": "t_bool",
26763 "typeString": "bool"
26764 }
26765 },
26766 "falseBody": null,
26767 "id": 1470,
26768 "nodeType": "IfStatement",
26769 "src": "8017:58:3",
26770 "trueBody": {
26771 "expression": {
26772 "argumentTypes": null,
26773 "arguments": [
26774 {
26775 "argumentTypes": null,
26776 "id": 1465,
26777 "name": "_token0",
26778 "nodeType": "Identifier",
26779 "overloadedDeclarations": [],
26780 "referencedDeclaration": 1443,
26781 "src": "8051:7:3",
26782 "typeDescriptions": {
26783 "typeIdentifier": "t_address",
26784 "typeString": "address"
26785 }
26786 },
26787 {
26788 "argumentTypes": null,
26789 "id": 1466,
26790 "name": "to",
26791 "nodeType": "Identifier",
26792 "overloadedDeclarations": [],
26793 "referencedDeclaration": 1400,
26794 "src": "8060:2:3",
26795 "typeDescriptions": {
26796 "typeIdentifier": "t_address",
26797 "typeString": "address"
26798 }
26799 },
26800 {
26801 "argumentTypes": null,
26802 "id": 1467,
26803 "name": "amount0Out",
26804 "nodeType": "Identifier",
26805 "overloadedDeclarations": [],
26806 "referencedDeclaration": 1396,
26807 "src": "8064:10:3",
26808 "typeDescriptions": {
26809 "typeIdentifier": "t_uint256",
26810 "typeString": "uint256"
26811 }
26812 }
26813 ],
26814 "expression": {
26815 "argumentTypes": [
26816 {
26817 "typeIdentifier": "t_address",
26818 "typeString": "address"
26819 },
26820 {
26821 "typeIdentifier": "t_address",
26822 "typeString": "address"
26823 },
26824 {
26825 "typeIdentifier": "t_uint256",
26826 "typeString": "uint256"
26827 }
26828 ],
26829 "id": 1464,
26830 "name": "_safeTransfer",
26831 "nodeType": "Identifier",
26832 "overloadedDeclarations": [],
26833 "referencedDeclaration": 780,
26834 "src": "8037:13:3",
26835 "typeDescriptions": {
26836 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
26837 "typeString": "function (address,address,uint256)"
26838 }
26839 },
26840 "id": 1468,
26841 "isConstant": false,
26842 "isLValue": false,
26843 "isPure": false,
26844 "kind": "functionCall",
26845 "lValueRequested": false,
26846 "names": [],
26847 "nodeType": "FunctionCall",
26848 "src": "8037:38:3",
26849 "tryCall": false,
26850 "typeDescriptions": {
26851 "typeIdentifier": "t_tuple$__$",
26852 "typeString": "tuple()"
26853 }
26854 },
26855 "id": 1469,
26856 "nodeType": "ExpressionStatement",
26857 "src": "8037:38:3"
26858 }
26859 },
26860 {
26861 "condition": {
26862 "argumentTypes": null,
26863 "commonType": {
26864 "typeIdentifier": "t_uint256",
26865 "typeString": "uint256"
26866 },
26867 "id": 1473,
26868 "isConstant": false,
26869 "isLValue": false,
26870 "isPure": false,
26871 "lValueRequested": false,
26872 "leftExpression": {
26873 "argumentTypes": null,
26874 "id": 1471,
26875 "name": "amount1Out",
26876 "nodeType": "Identifier",
26877 "overloadedDeclarations": [],
26878 "referencedDeclaration": 1398,
26879 "src": "8123:10:3",
26880 "typeDescriptions": {
26881 "typeIdentifier": "t_uint256",
26882 "typeString": "uint256"
26883 }
26884 },
26885 "nodeType": "BinaryOperation",
26886 "operator": ">",
26887 "rightExpression": {
26888 "argumentTypes": null,
26889 "hexValue": "30",
26890 "id": 1472,
26891 "isConstant": false,
26892 "isLValue": false,
26893 "isPure": true,
26894 "kind": "number",
26895 "lValueRequested": false,
26896 "nodeType": "Literal",
26897 "src": "8136:1:3",
26898 "subdenomination": null,
26899 "typeDescriptions": {
26900 "typeIdentifier": "t_rational_0_by_1",
26901 "typeString": "int_const 0"
26902 },
26903 "value": "0"
26904 },
26905 "src": "8123:14:3",
26906 "typeDescriptions": {
26907 "typeIdentifier": "t_bool",
26908 "typeString": "bool"
26909 }
26910 },
26911 "falseBody": null,
26912 "id": 1480,
26913 "nodeType": "IfStatement",
26914 "src": "8119:58:3",
26915 "trueBody": {
26916 "expression": {
26917 "argumentTypes": null,
26918 "arguments": [
26919 {
26920 "argumentTypes": null,
26921 "id": 1475,
26922 "name": "_token1",
26923 "nodeType": "Identifier",
26924 "overloadedDeclarations": [],
26925 "referencedDeclaration": 1447,
26926 "src": "8153:7:3",
26927 "typeDescriptions": {
26928 "typeIdentifier": "t_address",
26929 "typeString": "address"
26930 }
26931 },
26932 {
26933 "argumentTypes": null,
26934 "id": 1476,
26935 "name": "to",
26936 "nodeType": "Identifier",
26937 "overloadedDeclarations": [],
26938 "referencedDeclaration": 1400,
26939 "src": "8162:2:3",
26940 "typeDescriptions": {
26941 "typeIdentifier": "t_address",
26942 "typeString": "address"
26943 }
26944 },
26945 {
26946 "argumentTypes": null,
26947 "id": 1477,
26948 "name": "amount1Out",
26949 "nodeType": "Identifier",
26950 "overloadedDeclarations": [],
26951 "referencedDeclaration": 1398,
26952 "src": "8166:10:3",
26953 "typeDescriptions": {
26954 "typeIdentifier": "t_uint256",
26955 "typeString": "uint256"
26956 }
26957 }
26958 ],
26959 "expression": {
26960 "argumentTypes": [
26961 {
26962 "typeIdentifier": "t_address",
26963 "typeString": "address"
26964 },
26965 {
26966 "typeIdentifier": "t_address",
26967 "typeString": "address"
26968 },
26969 {
26970 "typeIdentifier": "t_uint256",
26971 "typeString": "uint256"
26972 }
26973 ],
26974 "id": 1474,
26975 "name": "_safeTransfer",
26976 "nodeType": "Identifier",
26977 "overloadedDeclarations": [],
26978 "referencedDeclaration": 780,
26979 "src": "8139:13:3",
26980 "typeDescriptions": {
26981 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
26982 "typeString": "function (address,address,uint256)"
26983 }
26984 },
26985 "id": 1478,
26986 "isConstant": false,
26987 "isLValue": false,
26988 "isPure": false,
26989 "kind": "functionCall",
26990 "lValueRequested": false,
26991 "names": [],
26992 "nodeType": "FunctionCall",
26993 "src": "8139:38:3",
26994 "tryCall": false,
26995 "typeDescriptions": {
26996 "typeIdentifier": "t_tuple$__$",
26997 "typeString": "tuple()"
26998 }
26999 },
27000 "id": 1479,
27001 "nodeType": "ExpressionStatement",
27002 "src": "8139:38:3"
27003 }
27004 },
27005 {
27006 "condition": {
27007 "argumentTypes": null,
27008 "commonType": {
27009 "typeIdentifier": "t_uint256",
27010 "typeString": "uint256"
27011 },
27012 "id": 1484,
27013 "isConstant": false,
27014 "isLValue": false,
27015 "isPure": false,
27016 "lValueRequested": false,
27017 "leftExpression": {
27018 "argumentTypes": null,
27019 "expression": {
27020 "argumentTypes": null,
27021 "id": 1481,
27022 "name": "data",
27023 "nodeType": "Identifier",
27024 "overloadedDeclarations": [],
27025 "referencedDeclaration": 1402,
27026 "src": "8225:4:3",
27027 "typeDescriptions": {
27028 "typeIdentifier": "t_bytes_calldata_ptr",
27029 "typeString": "bytes calldata"
27030 }
27031 },
27032 "id": 1482,
27033 "isConstant": false,
27034 "isLValue": false,
27035 "isPure": false,
27036 "lValueRequested": false,
27037 "memberName": "length",
27038 "nodeType": "MemberAccess",
27039 "referencedDeclaration": null,
27040 "src": "8225:11:3",
27041 "typeDescriptions": {
27042 "typeIdentifier": "t_uint256",
27043 "typeString": "uint256"
27044 }
27045 },
27046 "nodeType": "BinaryOperation",
27047 "operator": ">",
27048 "rightExpression": {
27049 "argumentTypes": null,
27050 "hexValue": "30",
27051 "id": 1483,
27052 "isConstant": false,
27053 "isLValue": false,
27054 "isPure": true,
27055 "kind": "number",
27056 "lValueRequested": false,
27057 "nodeType": "Literal",
27058 "src": "8239:1:3",
27059 "subdenomination": null,
27060 "typeDescriptions": {
27061 "typeIdentifier": "t_rational_0_by_1",
27062 "typeString": "int_const 0"
27063 },
27064 "value": "0"
27065 },
27066 "src": "8225:15:3",
27067 "typeDescriptions": {
27068 "typeIdentifier": "t_bool",
27069 "typeString": "bool"
27070 }
27071 },
27072 "falseBody": null,
27073 "id": 1496,
27074 "nodeType": "IfStatement",
27075 "src": "8221:97:3",
27076 "trueBody": {
27077 "expression": {
27078 "argumentTypes": null,
27079 "arguments": [
27080 {
27081 "argumentTypes": null,
27082 "expression": {
27083 "argumentTypes": null,
27084 "id": 1489,
27085 "name": "msg",
27086 "nodeType": "Identifier",
27087 "overloadedDeclarations": [],
27088 "referencedDeclaration": -15,
27089 "src": "8277:3:3",
27090 "typeDescriptions": {
27091 "typeIdentifier": "t_magic_message",
27092 "typeString": "msg"
27093 }
27094 },
27095 "id": 1490,
27096 "isConstant": false,
27097 "isLValue": false,
27098 "isPure": false,
27099 "lValueRequested": false,
27100 "memberName": "sender",
27101 "nodeType": "MemberAccess",
27102 "referencedDeclaration": null,
27103 "src": "8277:10:3",
27104 "typeDescriptions": {
27105 "typeIdentifier": "t_address_payable",
27106 "typeString": "address payable"
27107 }
27108 },
27109 {
27110 "argumentTypes": null,
27111 "id": 1491,
27112 "name": "amount0Out",
27113 "nodeType": "Identifier",
27114 "overloadedDeclarations": [],
27115 "referencedDeclaration": 1396,
27116 "src": "8289:10:3",
27117 "typeDescriptions": {
27118 "typeIdentifier": "t_uint256",
27119 "typeString": "uint256"
27120 }
27121 },
27122 {
27123 "argumentTypes": null,
27124 "id": 1492,
27125 "name": "amount1Out",
27126 "nodeType": "Identifier",
27127 "overloadedDeclarations": [],
27128 "referencedDeclaration": 1398,
27129 "src": "8301:10:3",
27130 "typeDescriptions": {
27131 "typeIdentifier": "t_uint256",
27132 "typeString": "uint256"
27133 }
27134 },
27135 {
27136 "argumentTypes": null,
27137 "id": 1493,
27138 "name": "data",
27139 "nodeType": "Identifier",
27140 "overloadedDeclarations": [],
27141 "referencedDeclaration": 1402,
27142 "src": "8313:4:3",
27143 "typeDescriptions": {
27144 "typeIdentifier": "t_bytes_calldata_ptr",
27145 "typeString": "bytes calldata"
27146 }
27147 }
27148 ],
27149 "expression": {
27150 "argumentTypes": [
27151 {
27152 "typeIdentifier": "t_address_payable",
27153 "typeString": "address payable"
27154 },
27155 {
27156 "typeIdentifier": "t_uint256",
27157 "typeString": "uint256"
27158 },
27159 {
27160 "typeIdentifier": "t_uint256",
27161 "typeString": "uint256"
27162 },
27163 {
27164 "typeIdentifier": "t_bytes_calldata_ptr",
27165 "typeString": "bytes calldata"
27166 }
27167 ],
27168 "expression": {
27169 "argumentTypes": null,
27170 "arguments": [
27171 {
27172 "argumentTypes": null,
27173 "id": 1486,
27174 "name": "to",
27175 "nodeType": "Identifier",
27176 "overloadedDeclarations": [],
27177 "referencedDeclaration": 1400,
27178 "src": "8259:2:3",
27179 "typeDescriptions": {
27180 "typeIdentifier": "t_address",
27181 "typeString": "address"
27182 }
27183 }
27184 ],
27185 "expression": {
27186 "argumentTypes": [
27187 {
27188 "typeIdentifier": "t_address",
27189 "typeString": "address"
27190 }
27191 ],
27192 "id": 1485,
27193 "name": "IUniswapV2Callee",
27194 "nodeType": "Identifier",
27195 "overloadedDeclarations": [],
27196 "referencedDeclaration": 1809,
27197 "src": "8242:16:3",
27198 "typeDescriptions": {
27199 "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$1809_$",
27200 "typeString": "type(contract IUniswapV2Callee)"
27201 }
27202 },
27203 "id": 1487,
27204 "isConstant": false,
27205 "isLValue": false,
27206 "isPure": false,
27207 "kind": "typeConversion",
27208 "lValueRequested": false,
27209 "names": [],
27210 "nodeType": "FunctionCall",
27211 "src": "8242:20:3",
27212 "tryCall": false,
27213 "typeDescriptions": {
27214 "typeIdentifier": "t_contract$_IUniswapV2Callee_$1809",
27215 "typeString": "contract IUniswapV2Callee"
27216 }
27217 },
27218 "id": 1488,
27219 "isConstant": false,
27220 "isLValue": false,
27221 "isPure": false,
27222 "lValueRequested": false,
27223 "memberName": "uniswapV2Call",
27224 "nodeType": "MemberAccess",
27225 "referencedDeclaration": 1808,
27226 "src": "8242:34:3",
27227 "typeDescriptions": {
27228 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
27229 "typeString": "function (address,uint256,uint256,bytes memory) external"
27230 }
27231 },
27232 "id": 1494,
27233 "isConstant": false,
27234 "isLValue": false,
27235 "isPure": false,
27236 "kind": "functionCall",
27237 "lValueRequested": false,
27238 "names": [],
27239 "nodeType": "FunctionCall",
27240 "src": "8242:76:3",
27241 "tryCall": false,
27242 "typeDescriptions": {
27243 "typeIdentifier": "t_tuple$__$",
27244 "typeString": "tuple()"
27245 }
27246 },
27247 "id": 1495,
27248 "nodeType": "ExpressionStatement",
27249 "src": "8242:76:3"
27250 }
27251 },
27252 {
27253 "expression": {
27254 "argumentTypes": null,
27255 "id": 1507,
27256 "isConstant": false,
27257 "isLValue": false,
27258 "isPure": false,
27259 "lValueRequested": false,
27260 "leftHandSide": {
27261 "argumentTypes": null,
27262 "id": 1497,
27263 "name": "balance0",
27264 "nodeType": "Identifier",
27265 "overloadedDeclarations": [],
27266 "referencedDeclaration": 1437,
27267 "src": "8328:8:3",
27268 "typeDescriptions": {
27269 "typeIdentifier": "t_uint256",
27270 "typeString": "uint256"
27271 }
27272 },
27273 "nodeType": "Assignment",
27274 "operator": "=",
27275 "rightHandSide": {
27276 "argumentTypes": null,
27277 "arguments": [
27278 {
27279 "argumentTypes": null,
27280 "arguments": [
27281 {
27282 "argumentTypes": null,
27283 "id": 1504,
27284 "name": "this",
27285 "nodeType": "Identifier",
27286 "overloadedDeclarations": [],
27287 "referencedDeclaration": -28,
27288 "src": "8380:4:3",
27289 "typeDescriptions": {
27290 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
27291 "typeString": "contract UniswapV2Pair"
27292 }
27293 }
27294 ],
27295 "expression": {
27296 "argumentTypes": [
27297 {
27298 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
27299 "typeString": "contract UniswapV2Pair"
27300 }
27301 ],
27302 "id": 1503,
27303 "isConstant": false,
27304 "isLValue": false,
27305 "isPure": true,
27306 "lValueRequested": false,
27307 "nodeType": "ElementaryTypeNameExpression",
27308 "src": "8372:7:3",
27309 "typeDescriptions": {
27310 "typeIdentifier": "t_type$_t_address_$",
27311 "typeString": "type(address)"
27312 },
27313 "typeName": {
27314 "id": 1502,
27315 "name": "address",
27316 "nodeType": "ElementaryTypeName",
27317 "src": "8372:7:3",
27318 "typeDescriptions": {
27319 "typeIdentifier": null,
27320 "typeString": null
27321 }
27322 }
27323 },
27324 "id": 1505,
27325 "isConstant": false,
27326 "isLValue": false,
27327 "isPure": false,
27328 "kind": "typeConversion",
27329 "lValueRequested": false,
27330 "names": [],
27331 "nodeType": "FunctionCall",
27332 "src": "8372:13:3",
27333 "tryCall": false,
27334 "typeDescriptions": {
27335 "typeIdentifier": "t_address",
27336 "typeString": "address"
27337 }
27338 }
27339 ],
27340 "expression": {
27341 "argumentTypes": [
27342 {
27343 "typeIdentifier": "t_address",
27344 "typeString": "address"
27345 }
27346 ],
27347 "expression": {
27348 "argumentTypes": null,
27349 "arguments": [
27350 {
27351 "argumentTypes": null,
27352 "id": 1499,
27353 "name": "_token0",
27354 "nodeType": "Identifier",
27355 "overloadedDeclarations": [],
27356 "referencedDeclaration": 1443,
27357 "src": "8353:7:3",
27358 "typeDescriptions": {
27359 "typeIdentifier": "t_address",
27360 "typeString": "address"
27361 }
27362 }
27363 ],
27364 "expression": {
27365 "argumentTypes": [
27366 {
27367 "typeIdentifier": "t_address",
27368 "typeString": "address"
27369 }
27370 ],
27371 "id": 1498,
27372 "name": "IERC20Uniswap",
27373 "nodeType": "Identifier",
27374 "overloadedDeclarations": [],
27375 "referencedDeclaration": 1795,
27376 "src": "8339:13:3",
27377 "typeDescriptions": {
27378 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
27379 "typeString": "type(contract IERC20Uniswap)"
27380 }
27381 },
27382 "id": 1500,
27383 "isConstant": false,
27384 "isLValue": false,
27385 "isPure": false,
27386 "kind": "typeConversion",
27387 "lValueRequested": false,
27388 "names": [],
27389 "nodeType": "FunctionCall",
27390 "src": "8339:22:3",
27391 "tryCall": false,
27392 "typeDescriptions": {
27393 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
27394 "typeString": "contract IERC20Uniswap"
27395 }
27396 },
27397 "id": 1501,
27398 "isConstant": false,
27399 "isLValue": false,
27400 "isPure": false,
27401 "lValueRequested": false,
27402 "memberName": "balanceOf",
27403 "nodeType": "MemberAccess",
27404 "referencedDeclaration": 1756,
27405 "src": "8339:32:3",
27406 "typeDescriptions": {
27407 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
27408 "typeString": "function (address) view external returns (uint256)"
27409 }
27410 },
27411 "id": 1506,
27412 "isConstant": false,
27413 "isLValue": false,
27414 "isPure": false,
27415 "kind": "functionCall",
27416 "lValueRequested": false,
27417 "names": [],
27418 "nodeType": "FunctionCall",
27419 "src": "8339:47:3",
27420 "tryCall": false,
27421 "typeDescriptions": {
27422 "typeIdentifier": "t_uint256",
27423 "typeString": "uint256"
27424 }
27425 },
27426 "src": "8328:58:3",
27427 "typeDescriptions": {
27428 "typeIdentifier": "t_uint256",
27429 "typeString": "uint256"
27430 }
27431 },
27432 "id": 1508,
27433 "nodeType": "ExpressionStatement",
27434 "src": "8328:58:3"
27435 },
27436 {
27437 "expression": {
27438 "argumentTypes": null,
27439 "id": 1519,
27440 "isConstant": false,
27441 "isLValue": false,
27442 "isPure": false,
27443 "lValueRequested": false,
27444 "leftHandSide": {
27445 "argumentTypes": null,
27446 "id": 1509,
27447 "name": "balance1",
27448 "nodeType": "Identifier",
27449 "overloadedDeclarations": [],
27450 "referencedDeclaration": 1440,
27451 "src": "8396:8:3",
27452 "typeDescriptions": {
27453 "typeIdentifier": "t_uint256",
27454 "typeString": "uint256"
27455 }
27456 },
27457 "nodeType": "Assignment",
27458 "operator": "=",
27459 "rightHandSide": {
27460 "argumentTypes": null,
27461 "arguments": [
27462 {
27463 "argumentTypes": null,
27464 "arguments": [
27465 {
27466 "argumentTypes": null,
27467 "id": 1516,
27468 "name": "this",
27469 "nodeType": "Identifier",
27470 "overloadedDeclarations": [],
27471 "referencedDeclaration": -28,
27472 "src": "8448:4:3",
27473 "typeDescriptions": {
27474 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
27475 "typeString": "contract UniswapV2Pair"
27476 }
27477 }
27478 ],
27479 "expression": {
27480 "argumentTypes": [
27481 {
27482 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
27483 "typeString": "contract UniswapV2Pair"
27484 }
27485 ],
27486 "id": 1515,
27487 "isConstant": false,
27488 "isLValue": false,
27489 "isPure": true,
27490 "lValueRequested": false,
27491 "nodeType": "ElementaryTypeNameExpression",
27492 "src": "8440:7:3",
27493 "typeDescriptions": {
27494 "typeIdentifier": "t_type$_t_address_$",
27495 "typeString": "type(address)"
27496 },
27497 "typeName": {
27498 "id": 1514,
27499 "name": "address",
27500 "nodeType": "ElementaryTypeName",
27501 "src": "8440:7:3",
27502 "typeDescriptions": {
27503 "typeIdentifier": null,
27504 "typeString": null
27505 }
27506 }
27507 },
27508 "id": 1517,
27509 "isConstant": false,
27510 "isLValue": false,
27511 "isPure": false,
27512 "kind": "typeConversion",
27513 "lValueRequested": false,
27514 "names": [],
27515 "nodeType": "FunctionCall",
27516 "src": "8440:13:3",
27517 "tryCall": false,
27518 "typeDescriptions": {
27519 "typeIdentifier": "t_address",
27520 "typeString": "address"
27521 }
27522 }
27523 ],
27524 "expression": {
27525 "argumentTypes": [
27526 {
27527 "typeIdentifier": "t_address",
27528 "typeString": "address"
27529 }
27530 ],
27531 "expression": {
27532 "argumentTypes": null,
27533 "arguments": [
27534 {
27535 "argumentTypes": null,
27536 "id": 1511,
27537 "name": "_token1",
27538 "nodeType": "Identifier",
27539 "overloadedDeclarations": [],
27540 "referencedDeclaration": 1447,
27541 "src": "8421:7:3",
27542 "typeDescriptions": {
27543 "typeIdentifier": "t_address",
27544 "typeString": "address"
27545 }
27546 }
27547 ],
27548 "expression": {
27549 "argumentTypes": [
27550 {
27551 "typeIdentifier": "t_address",
27552 "typeString": "address"
27553 }
27554 ],
27555 "id": 1510,
27556 "name": "IERC20Uniswap",
27557 "nodeType": "Identifier",
27558 "overloadedDeclarations": [],
27559 "referencedDeclaration": 1795,
27560 "src": "8407:13:3",
27561 "typeDescriptions": {
27562 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
27563 "typeString": "type(contract IERC20Uniswap)"
27564 }
27565 },
27566 "id": 1512,
27567 "isConstant": false,
27568 "isLValue": false,
27569 "isPure": false,
27570 "kind": "typeConversion",
27571 "lValueRequested": false,
27572 "names": [],
27573 "nodeType": "FunctionCall",
27574 "src": "8407:22:3",
27575 "tryCall": false,
27576 "typeDescriptions": {
27577 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
27578 "typeString": "contract IERC20Uniswap"
27579 }
27580 },
27581 "id": 1513,
27582 "isConstant": false,
27583 "isLValue": false,
27584 "isPure": false,
27585 "lValueRequested": false,
27586 "memberName": "balanceOf",
27587 "nodeType": "MemberAccess",
27588 "referencedDeclaration": 1756,
27589 "src": "8407:32:3",
27590 "typeDescriptions": {
27591 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
27592 "typeString": "function (address) view external returns (uint256)"
27593 }
27594 },
27595 "id": 1518,
27596 "isConstant": false,
27597 "isLValue": false,
27598 "isPure": false,
27599 "kind": "functionCall",
27600 "lValueRequested": false,
27601 "names": [],
27602 "nodeType": "FunctionCall",
27603 "src": "8407:47:3",
27604 "tryCall": false,
27605 "typeDescriptions": {
27606 "typeIdentifier": "t_uint256",
27607 "typeString": "uint256"
27608 }
27609 },
27610 "src": "8396:58:3",
27611 "typeDescriptions": {
27612 "typeIdentifier": "t_uint256",
27613 "typeString": "uint256"
27614 }
27615 },
27616 "id": 1520,
27617 "nodeType": "ExpressionStatement",
27618 "src": "8396:58:3"
27619 }
27620 ]
27621 },
27622 {
27623 "assignments": [
27624 1523
27625 ],
27626 "declarations": [
27627 {
27628 "constant": false,
27629 "id": 1523,
27630 "mutability": "mutable",
27631 "name": "amount0In",
27632 "nodeType": "VariableDeclaration",
27633 "overrides": null,
27634 "scope": 1630,
27635 "src": "8474:14:3",
27636 "stateVariable": false,
27637 "storageLocation": "default",
27638 "typeDescriptions": {
27639 "typeIdentifier": "t_uint256",
27640 "typeString": "uint256"
27641 },
27642 "typeName": {
27643 "id": 1522,
27644 "name": "uint",
27645 "nodeType": "ElementaryTypeName",
27646 "src": "8474:4:3",
27647 "typeDescriptions": {
27648 "typeIdentifier": "t_uint256",
27649 "typeString": "uint256"
27650 }
27651 },
27652 "value": null,
27653 "visibility": "internal"
27654 }
27655 ],
27656 "id": 1537,
27657 "initialValue": {
27658 "argumentTypes": null,
27659 "condition": {
27660 "argumentTypes": null,
27661 "commonType": {
27662 "typeIdentifier": "t_uint256",
27663 "typeString": "uint256"
27664 },
27665 "id": 1528,
27666 "isConstant": false,
27667 "isLValue": false,
27668 "isPure": false,
27669 "lValueRequested": false,
27670 "leftExpression": {
27671 "argumentTypes": null,
27672 "id": 1524,
27673 "name": "balance0",
27674 "nodeType": "Identifier",
27675 "overloadedDeclarations": [],
27676 "referencedDeclaration": 1437,
27677 "src": "8491:8:3",
27678 "typeDescriptions": {
27679 "typeIdentifier": "t_uint256",
27680 "typeString": "uint256"
27681 }
27682 },
27683 "nodeType": "BinaryOperation",
27684 "operator": ">",
27685 "rightExpression": {
27686 "argumentTypes": null,
27687 "commonType": {
27688 "typeIdentifier": "t_uint256",
27689 "typeString": "uint256"
27690 },
27691 "id": 1527,
27692 "isConstant": false,
27693 "isLValue": false,
27694 "isPure": false,
27695 "lValueRequested": false,
27696 "leftExpression": {
27697 "argumentTypes": null,
27698 "id": 1525,
27699 "name": "_reserve0",
27700 "nodeType": "Identifier",
27701 "overloadedDeclarations": [],
27702 "referencedDeclaration": 1419,
27703 "src": "8502:9:3",
27704 "typeDescriptions": {
27705 "typeIdentifier": "t_uint112",
27706 "typeString": "uint112"
27707 }
27708 },
27709 "nodeType": "BinaryOperation",
27710 "operator": "-",
27711 "rightExpression": {
27712 "argumentTypes": null,
27713 "id": 1526,
27714 "name": "amount0Out",
27715 "nodeType": "Identifier",
27716 "overloadedDeclarations": [],
27717 "referencedDeclaration": 1396,
27718 "src": "8514:10:3",
27719 "typeDescriptions": {
27720 "typeIdentifier": "t_uint256",
27721 "typeString": "uint256"
27722 }
27723 },
27724 "src": "8502:22:3",
27725 "typeDescriptions": {
27726 "typeIdentifier": "t_uint256",
27727 "typeString": "uint256"
27728 }
27729 },
27730 "src": "8491:33:3",
27731 "typeDescriptions": {
27732 "typeIdentifier": "t_bool",
27733 "typeString": "bool"
27734 }
27735 },
27736 "falseExpression": {
27737 "argumentTypes": null,
27738 "hexValue": "30",
27739 "id": 1535,
27740 "isConstant": false,
27741 "isLValue": false,
27742 "isPure": true,
27743 "kind": "number",
27744 "lValueRequested": false,
27745 "nodeType": "Literal",
27746 "src": "8565:1:3",
27747 "subdenomination": null,
27748 "typeDescriptions": {
27749 "typeIdentifier": "t_rational_0_by_1",
27750 "typeString": "int_const 0"
27751 },
27752 "value": "0"
27753 },
27754 "id": 1536,
27755 "isConstant": false,
27756 "isLValue": false,
27757 "isPure": false,
27758 "lValueRequested": false,
27759 "nodeType": "Conditional",
27760 "src": "8491:75:3",
27761 "trueExpression": {
27762 "argumentTypes": null,
27763 "commonType": {
27764 "typeIdentifier": "t_uint256",
27765 "typeString": "uint256"
27766 },
27767 "id": 1534,
27768 "isConstant": false,
27769 "isLValue": false,
27770 "isPure": false,
27771 "lValueRequested": false,
27772 "leftExpression": {
27773 "argumentTypes": null,
27774 "id": 1529,
27775 "name": "balance0",
27776 "nodeType": "Identifier",
27777 "overloadedDeclarations": [],
27778 "referencedDeclaration": 1437,
27779 "src": "8527:8:3",
27780 "typeDescriptions": {
27781 "typeIdentifier": "t_uint256",
27782 "typeString": "uint256"
27783 }
27784 },
27785 "nodeType": "BinaryOperation",
27786 "operator": "-",
27787 "rightExpression": {
27788 "argumentTypes": null,
27789 "components": [
27790 {
27791 "argumentTypes": null,
27792 "commonType": {
27793 "typeIdentifier": "t_uint256",
27794 "typeString": "uint256"
27795 },
27796 "id": 1532,
27797 "isConstant": false,
27798 "isLValue": false,
27799 "isPure": false,
27800 "lValueRequested": false,
27801 "leftExpression": {
27802 "argumentTypes": null,
27803 "id": 1530,
27804 "name": "_reserve0",
27805 "nodeType": "Identifier",
27806 "overloadedDeclarations": [],
27807 "referencedDeclaration": 1419,
27808 "src": "8539:9:3",
27809 "typeDescriptions": {
27810 "typeIdentifier": "t_uint112",
27811 "typeString": "uint112"
27812 }
27813 },
27814 "nodeType": "BinaryOperation",
27815 "operator": "-",
27816 "rightExpression": {
27817 "argumentTypes": null,
27818 "id": 1531,
27819 "name": "amount0Out",
27820 "nodeType": "Identifier",
27821 "overloadedDeclarations": [],
27822 "referencedDeclaration": 1396,
27823 "src": "8551:10:3",
27824 "typeDescriptions": {
27825 "typeIdentifier": "t_uint256",
27826 "typeString": "uint256"
27827 }
27828 },
27829 "src": "8539:22:3",
27830 "typeDescriptions": {
27831 "typeIdentifier": "t_uint256",
27832 "typeString": "uint256"
27833 }
27834 }
27835 ],
27836 "id": 1533,
27837 "isConstant": false,
27838 "isInlineArray": false,
27839 "isLValue": false,
27840 "isPure": false,
27841 "lValueRequested": false,
27842 "nodeType": "TupleExpression",
27843 "src": "8538:24:3",
27844 "typeDescriptions": {
27845 "typeIdentifier": "t_uint256",
27846 "typeString": "uint256"
27847 }
27848 },
27849 "src": "8527:35:3",
27850 "typeDescriptions": {
27851 "typeIdentifier": "t_uint256",
27852 "typeString": "uint256"
27853 }
27854 },
27855 "typeDescriptions": {
27856 "typeIdentifier": "t_uint256",
27857 "typeString": "uint256"
27858 }
27859 },
27860 "nodeType": "VariableDeclarationStatement",
27861 "src": "8474:92:3"
27862 },
27863 {
27864 "assignments": [
27865 1539
27866 ],
27867 "declarations": [
27868 {
27869 "constant": false,
27870 "id": 1539,
27871 "mutability": "mutable",
27872 "name": "amount1In",
27873 "nodeType": "VariableDeclaration",
27874 "overrides": null,
27875 "scope": 1630,
27876 "src": "8576:14:3",
27877 "stateVariable": false,
27878 "storageLocation": "default",
27879 "typeDescriptions": {
27880 "typeIdentifier": "t_uint256",
27881 "typeString": "uint256"
27882 },
27883 "typeName": {
27884 "id": 1538,
27885 "name": "uint",
27886 "nodeType": "ElementaryTypeName",
27887 "src": "8576:4:3",
27888 "typeDescriptions": {
27889 "typeIdentifier": "t_uint256",
27890 "typeString": "uint256"
27891 }
27892 },
27893 "value": null,
27894 "visibility": "internal"
27895 }
27896 ],
27897 "id": 1553,
27898 "initialValue": {
27899 "argumentTypes": null,
27900 "condition": {
27901 "argumentTypes": null,
27902 "commonType": {
27903 "typeIdentifier": "t_uint256",
27904 "typeString": "uint256"
27905 },
27906 "id": 1544,
27907 "isConstant": false,
27908 "isLValue": false,
27909 "isPure": false,
27910 "lValueRequested": false,
27911 "leftExpression": {
27912 "argumentTypes": null,
27913 "id": 1540,
27914 "name": "balance1",
27915 "nodeType": "Identifier",
27916 "overloadedDeclarations": [],
27917 "referencedDeclaration": 1440,
27918 "src": "8593:8:3",
27919 "typeDescriptions": {
27920 "typeIdentifier": "t_uint256",
27921 "typeString": "uint256"
27922 }
27923 },
27924 "nodeType": "BinaryOperation",
27925 "operator": ">",
27926 "rightExpression": {
27927 "argumentTypes": null,
27928 "commonType": {
27929 "typeIdentifier": "t_uint256",
27930 "typeString": "uint256"
27931 },
27932 "id": 1543,
27933 "isConstant": false,
27934 "isLValue": false,
27935 "isPure": false,
27936 "lValueRequested": false,
27937 "leftExpression": {
27938 "argumentTypes": null,
27939 "id": 1541,
27940 "name": "_reserve1",
27941 "nodeType": "Identifier",
27942 "overloadedDeclarations": [],
27943 "referencedDeclaration": 1421,
27944 "src": "8604:9:3",
27945 "typeDescriptions": {
27946 "typeIdentifier": "t_uint112",
27947 "typeString": "uint112"
27948 }
27949 },
27950 "nodeType": "BinaryOperation",
27951 "operator": "-",
27952 "rightExpression": {
27953 "argumentTypes": null,
27954 "id": 1542,
27955 "name": "amount1Out",
27956 "nodeType": "Identifier",
27957 "overloadedDeclarations": [],
27958 "referencedDeclaration": 1398,
27959 "src": "8616:10:3",
27960 "typeDescriptions": {
27961 "typeIdentifier": "t_uint256",
27962 "typeString": "uint256"
27963 }
27964 },
27965 "src": "8604:22:3",
27966 "typeDescriptions": {
27967 "typeIdentifier": "t_uint256",
27968 "typeString": "uint256"
27969 }
27970 },
27971 "src": "8593:33:3",
27972 "typeDescriptions": {
27973 "typeIdentifier": "t_bool",
27974 "typeString": "bool"
27975 }
27976 },
27977 "falseExpression": {
27978 "argumentTypes": null,
27979 "hexValue": "30",
27980 "id": 1551,
27981 "isConstant": false,
27982 "isLValue": false,
27983 "isPure": true,
27984 "kind": "number",
27985 "lValueRequested": false,
27986 "nodeType": "Literal",
27987 "src": "8667:1:3",
27988 "subdenomination": null,
27989 "typeDescriptions": {
27990 "typeIdentifier": "t_rational_0_by_1",
27991 "typeString": "int_const 0"
27992 },
27993 "value": "0"
27994 },
27995 "id": 1552,
27996 "isConstant": false,
27997 "isLValue": false,
27998 "isPure": false,
27999 "lValueRequested": false,
28000 "nodeType": "Conditional",
28001 "src": "8593:75:3",
28002 "trueExpression": {
28003 "argumentTypes": null,
28004 "commonType": {
28005 "typeIdentifier": "t_uint256",
28006 "typeString": "uint256"
28007 },
28008 "id": 1550,
28009 "isConstant": false,
28010 "isLValue": false,
28011 "isPure": false,
28012 "lValueRequested": false,
28013 "leftExpression": {
28014 "argumentTypes": null,
28015 "id": 1545,
28016 "name": "balance1",
28017 "nodeType": "Identifier",
28018 "overloadedDeclarations": [],
28019 "referencedDeclaration": 1440,
28020 "src": "8629:8:3",
28021 "typeDescriptions": {
28022 "typeIdentifier": "t_uint256",
28023 "typeString": "uint256"
28024 }
28025 },
28026 "nodeType": "BinaryOperation",
28027 "operator": "-",
28028 "rightExpression": {
28029 "argumentTypes": null,
28030 "components": [
28031 {
28032 "argumentTypes": null,
28033 "commonType": {
28034 "typeIdentifier": "t_uint256",
28035 "typeString": "uint256"
28036 },
28037 "id": 1548,
28038 "isConstant": false,
28039 "isLValue": false,
28040 "isPure": false,
28041 "lValueRequested": false,
28042 "leftExpression": {
28043 "argumentTypes": null,
28044 "id": 1546,
28045 "name": "_reserve1",
28046 "nodeType": "Identifier",
28047 "overloadedDeclarations": [],
28048 "referencedDeclaration": 1421,
28049 "src": "8641:9:3",
28050 "typeDescriptions": {
28051 "typeIdentifier": "t_uint112",
28052 "typeString": "uint112"
28053 }
28054 },
28055 "nodeType": "BinaryOperation",
28056 "operator": "-",
28057 "rightExpression": {
28058 "argumentTypes": null,
28059 "id": 1547,
28060 "name": "amount1Out",
28061 "nodeType": "Identifier",
28062 "overloadedDeclarations": [],
28063 "referencedDeclaration": 1398,
28064 "src": "8653:10:3",
28065 "typeDescriptions": {
28066 "typeIdentifier": "t_uint256",
28067 "typeString": "uint256"
28068 }
28069 },
28070 "src": "8641:22:3",
28071 "typeDescriptions": {
28072 "typeIdentifier": "t_uint256",
28073 "typeString": "uint256"
28074 }
28075 }
28076 ],
28077 "id": 1549,
28078 "isConstant": false,
28079 "isInlineArray": false,
28080 "isLValue": false,
28081 "isPure": false,
28082 "lValueRequested": false,
28083 "nodeType": "TupleExpression",
28084 "src": "8640:24:3",
28085 "typeDescriptions": {
28086 "typeIdentifier": "t_uint256",
28087 "typeString": "uint256"
28088 }
28089 },
28090 "src": "8629:35:3",
28091 "typeDescriptions": {
28092 "typeIdentifier": "t_uint256",
28093 "typeString": "uint256"
28094 }
28095 },
28096 "typeDescriptions": {
28097 "typeIdentifier": "t_uint256",
28098 "typeString": "uint256"
28099 }
28100 },
28101 "nodeType": "VariableDeclarationStatement",
28102 "src": "8576:92:3"
28103 },
28104 {
28105 "expression": {
28106 "argumentTypes": null,
28107 "arguments": [
28108 {
28109 "argumentTypes": null,
28110 "commonType": {
28111 "typeIdentifier": "t_bool",
28112 "typeString": "bool"
28113 },
28114 "id": 1561,
28115 "isConstant": false,
28116 "isLValue": false,
28117 "isPure": false,
28118 "lValueRequested": false,
28119 "leftExpression": {
28120 "argumentTypes": null,
28121 "commonType": {
28122 "typeIdentifier": "t_uint256",
28123 "typeString": "uint256"
28124 },
28125 "id": 1557,
28126 "isConstant": false,
28127 "isLValue": false,
28128 "isPure": false,
28129 "lValueRequested": false,
28130 "leftExpression": {
28131 "argumentTypes": null,
28132 "id": 1555,
28133 "name": "amount0In",
28134 "nodeType": "Identifier",
28135 "overloadedDeclarations": [],
28136 "referencedDeclaration": 1523,
28137 "src": "8686:9:3",
28138 "typeDescriptions": {
28139 "typeIdentifier": "t_uint256",
28140 "typeString": "uint256"
28141 }
28142 },
28143 "nodeType": "BinaryOperation",
28144 "operator": ">",
28145 "rightExpression": {
28146 "argumentTypes": null,
28147 "hexValue": "30",
28148 "id": 1556,
28149 "isConstant": false,
28150 "isLValue": false,
28151 "isPure": true,
28152 "kind": "number",
28153 "lValueRequested": false,
28154 "nodeType": "Literal",
28155 "src": "8698:1:3",
28156 "subdenomination": null,
28157 "typeDescriptions": {
28158 "typeIdentifier": "t_rational_0_by_1",
28159 "typeString": "int_const 0"
28160 },
28161 "value": "0"
28162 },
28163 "src": "8686:13:3",
28164 "typeDescriptions": {
28165 "typeIdentifier": "t_bool",
28166 "typeString": "bool"
28167 }
28168 },
28169 "nodeType": "BinaryOperation",
28170 "operator": "||",
28171 "rightExpression": {
28172 "argumentTypes": null,
28173 "commonType": {
28174 "typeIdentifier": "t_uint256",
28175 "typeString": "uint256"
28176 },
28177 "id": 1560,
28178 "isConstant": false,
28179 "isLValue": false,
28180 "isPure": false,
28181 "lValueRequested": false,
28182 "leftExpression": {
28183 "argumentTypes": null,
28184 "id": 1558,
28185 "name": "amount1In",
28186 "nodeType": "Identifier",
28187 "overloadedDeclarations": [],
28188 "referencedDeclaration": 1539,
28189 "src": "8703:9:3",
28190 "typeDescriptions": {
28191 "typeIdentifier": "t_uint256",
28192 "typeString": "uint256"
28193 }
28194 },
28195 "nodeType": "BinaryOperation",
28196 "operator": ">",
28197 "rightExpression": {
28198 "argumentTypes": null,
28199 "hexValue": "30",
28200 "id": 1559,
28201 "isConstant": false,
28202 "isLValue": false,
28203 "isPure": true,
28204 "kind": "number",
28205 "lValueRequested": false,
28206 "nodeType": "Literal",
28207 "src": "8715:1:3",
28208 "subdenomination": null,
28209 "typeDescriptions": {
28210 "typeIdentifier": "t_rational_0_by_1",
28211 "typeString": "int_const 0"
28212 },
28213 "value": "0"
28214 },
28215 "src": "8703:13:3",
28216 "typeDescriptions": {
28217 "typeIdentifier": "t_bool",
28218 "typeString": "bool"
28219 }
28220 },
28221 "src": "8686:30:3",
28222 "typeDescriptions": {
28223 "typeIdentifier": "t_bool",
28224 "typeString": "bool"
28225 }
28226 },
28227 {
28228 "argumentTypes": null,
28229 "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54",
28230 "id": 1562,
28231 "isConstant": false,
28232 "isLValue": false,
28233 "isPure": true,
28234 "kind": "string",
28235 "lValueRequested": false,
28236 "nodeType": "Literal",
28237 "src": "8718:38:3",
28238 "subdenomination": null,
28239 "typeDescriptions": {
28240 "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67",
28241 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\""
28242 },
28243 "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT"
28244 }
28245 ],
28246 "expression": {
28247 "argumentTypes": [
28248 {
28249 "typeIdentifier": "t_bool",
28250 "typeString": "bool"
28251 },
28252 {
28253 "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67",
28254 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\""
28255 }
28256 ],
28257 "id": 1554,
28258 "name": "require",
28259 "nodeType": "Identifier",
28260 "overloadedDeclarations": [
28261 -18,
28262 -18
28263 ],
28264 "referencedDeclaration": -18,
28265 "src": "8678:7:3",
28266 "typeDescriptions": {
28267 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
28268 "typeString": "function (bool,string memory) pure"
28269 }
28270 },
28271 "id": 1563,
28272 "isConstant": false,
28273 "isLValue": false,
28274 "isPure": false,
28275 "kind": "functionCall",
28276 "lValueRequested": false,
28277 "names": [],
28278 "nodeType": "FunctionCall",
28279 "src": "8678:79:3",
28280 "tryCall": false,
28281 "typeDescriptions": {
28282 "typeIdentifier": "t_tuple$__$",
28283 "typeString": "tuple()"
28284 }
28285 },
28286 "id": 1564,
28287 "nodeType": "ExpressionStatement",
28288 "src": "8678:79:3"
28289 },
28290 {
28291 "id": 1612,
28292 "nodeType": "Block",
28293 "src": "8767:343:3",
28294 "statements": [
28295 {
28296 "assignments": [
28297 1566
28298 ],
28299 "declarations": [
28300 {
28301 "constant": false,
28302 "id": 1566,
28303 "mutability": "mutable",
28304 "name": "balance0Adjusted",
28305 "nodeType": "VariableDeclaration",
28306 "overrides": null,
28307 "scope": 1612,
28308 "src": "8841:21:3",
28309 "stateVariable": false,
28310 "storageLocation": "default",
28311 "typeDescriptions": {
28312 "typeIdentifier": "t_uint256",
28313 "typeString": "uint256"
28314 },
28315 "typeName": {
28316 "id": 1565,
28317 "name": "uint",
28318 "nodeType": "ElementaryTypeName",
28319 "src": "8841:4:3",
28320 "typeDescriptions": {
28321 "typeIdentifier": "t_uint256",
28322 "typeString": "uint256"
28323 }
28324 },
28325 "value": null,
28326 "visibility": "internal"
28327 }
28328 ],
28329 "id": 1577,
28330 "initialValue": {
28331 "argumentTypes": null,
28332 "arguments": [
28333 {
28334 "argumentTypes": null,
28335 "arguments": [
28336 {
28337 "argumentTypes": null,
28338 "hexValue": "33",
28339 "id": 1574,
28340 "isConstant": false,
28341 "isLValue": false,
28342 "isPure": true,
28343 "kind": "number",
28344 "lValueRequested": false,
28345 "nodeType": "Literal",
28346 "src": "8902:1:3",
28347 "subdenomination": null,
28348 "typeDescriptions": {
28349 "typeIdentifier": "t_rational_3_by_1",
28350 "typeString": "int_const 3"
28351 },
28352 "value": "3"
28353 }
28354 ],
28355 "expression": {
28356 "argumentTypes": [
28357 {
28358 "typeIdentifier": "t_rational_3_by_1",
28359 "typeString": "int_const 3"
28360 }
28361 ],
28362 "expression": {
28363 "argumentTypes": null,
28364 "id": 1572,
28365 "name": "amount0In",
28366 "nodeType": "Identifier",
28367 "overloadedDeclarations": [],
28368 "referencedDeclaration": 1523,
28369 "src": "8888:9:3",
28370 "typeDescriptions": {
28371 "typeIdentifier": "t_uint256",
28372 "typeString": "uint256"
28373 }
28374 },
28375 "id": 1573,
28376 "isConstant": false,
28377 "isLValue": false,
28378 "isPure": false,
28379 "lValueRequested": false,
28380 "memberName": "mul",
28381 "nodeType": "MemberAccess",
28382 "referencedDeclaration": 2382,
28383 "src": "8888:13:3",
28384 "typeDescriptions": {
28385 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28386 "typeString": "function (uint256,uint256) pure returns (uint256)"
28387 }
28388 },
28389 "id": 1575,
28390 "isConstant": false,
28391 "isLValue": false,
28392 "isPure": false,
28393 "kind": "functionCall",
28394 "lValueRequested": false,
28395 "names": [],
28396 "nodeType": "FunctionCall",
28397 "src": "8888:16:3",
28398 "tryCall": false,
28399 "typeDescriptions": {
28400 "typeIdentifier": "t_uint256",
28401 "typeString": "uint256"
28402 }
28403 }
28404 ],
28405 "expression": {
28406 "argumentTypes": [
28407 {
28408 "typeIdentifier": "t_uint256",
28409 "typeString": "uint256"
28410 }
28411 ],
28412 "expression": {
28413 "argumentTypes": null,
28414 "arguments": [
28415 {
28416 "argumentTypes": null,
28417 "hexValue": "31303030",
28418 "id": 1569,
28419 "isConstant": false,
28420 "isLValue": false,
28421 "isPure": true,
28422 "kind": "number",
28423 "lValueRequested": false,
28424 "nodeType": "Literal",
28425 "src": "8878:4:3",
28426 "subdenomination": null,
28427 "typeDescriptions": {
28428 "typeIdentifier": "t_rational_1000_by_1",
28429 "typeString": "int_const 1000"
28430 },
28431 "value": "1000"
28432 }
28433 ],
28434 "expression": {
28435 "argumentTypes": [
28436 {
28437 "typeIdentifier": "t_rational_1000_by_1",
28438 "typeString": "int_const 1000"
28439 }
28440 ],
28441 "expression": {
28442 "argumentTypes": null,
28443 "id": 1567,
28444 "name": "balance0",
28445 "nodeType": "Identifier",
28446 "overloadedDeclarations": [],
28447 "referencedDeclaration": 1437,
28448 "src": "8865:8:3",
28449 "typeDescriptions": {
28450 "typeIdentifier": "t_uint256",
28451 "typeString": "uint256"
28452 }
28453 },
28454 "id": 1568,
28455 "isConstant": false,
28456 "isLValue": false,
28457 "isPure": false,
28458 "lValueRequested": false,
28459 "memberName": "mul",
28460 "nodeType": "MemberAccess",
28461 "referencedDeclaration": 2382,
28462 "src": "8865:12:3",
28463 "typeDescriptions": {
28464 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28465 "typeString": "function (uint256,uint256) pure returns (uint256)"
28466 }
28467 },
28468 "id": 1570,
28469 "isConstant": false,
28470 "isLValue": false,
28471 "isPure": false,
28472 "kind": "functionCall",
28473 "lValueRequested": false,
28474 "names": [],
28475 "nodeType": "FunctionCall",
28476 "src": "8865:18:3",
28477 "tryCall": false,
28478 "typeDescriptions": {
28479 "typeIdentifier": "t_uint256",
28480 "typeString": "uint256"
28481 }
28482 },
28483 "id": 1571,
28484 "isConstant": false,
28485 "isLValue": false,
28486 "isPure": false,
28487 "lValueRequested": false,
28488 "memberName": "sub",
28489 "nodeType": "MemberAccess",
28490 "referencedDeclaration": 2354,
28491 "src": "8865:22:3",
28492 "typeDescriptions": {
28493 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28494 "typeString": "function (uint256,uint256) pure returns (uint256)"
28495 }
28496 },
28497 "id": 1576,
28498 "isConstant": false,
28499 "isLValue": false,
28500 "isPure": false,
28501 "kind": "functionCall",
28502 "lValueRequested": false,
28503 "names": [],
28504 "nodeType": "FunctionCall",
28505 "src": "8865:40:3",
28506 "tryCall": false,
28507 "typeDescriptions": {
28508 "typeIdentifier": "t_uint256",
28509 "typeString": "uint256"
28510 }
28511 },
28512 "nodeType": "VariableDeclarationStatement",
28513 "src": "8841:64:3"
28514 },
28515 {
28516 "assignments": [
28517 1579
28518 ],
28519 "declarations": [
28520 {
28521 "constant": false,
28522 "id": 1579,
28523 "mutability": "mutable",
28524 "name": "balance1Adjusted",
28525 "nodeType": "VariableDeclaration",
28526 "overrides": null,
28527 "scope": 1612,
28528 "src": "8915:21:3",
28529 "stateVariable": false,
28530 "storageLocation": "default",
28531 "typeDescriptions": {
28532 "typeIdentifier": "t_uint256",
28533 "typeString": "uint256"
28534 },
28535 "typeName": {
28536 "id": 1578,
28537 "name": "uint",
28538 "nodeType": "ElementaryTypeName",
28539 "src": "8915:4:3",
28540 "typeDescriptions": {
28541 "typeIdentifier": "t_uint256",
28542 "typeString": "uint256"
28543 }
28544 },
28545 "value": null,
28546 "visibility": "internal"
28547 }
28548 ],
28549 "id": 1590,
28550 "initialValue": {
28551 "argumentTypes": null,
28552 "arguments": [
28553 {
28554 "argumentTypes": null,
28555 "arguments": [
28556 {
28557 "argumentTypes": null,
28558 "hexValue": "33",
28559 "id": 1587,
28560 "isConstant": false,
28561 "isLValue": false,
28562 "isPure": true,
28563 "kind": "number",
28564 "lValueRequested": false,
28565 "nodeType": "Literal",
28566 "src": "8976:1:3",
28567 "subdenomination": null,
28568 "typeDescriptions": {
28569 "typeIdentifier": "t_rational_3_by_1",
28570 "typeString": "int_const 3"
28571 },
28572 "value": "3"
28573 }
28574 ],
28575 "expression": {
28576 "argumentTypes": [
28577 {
28578 "typeIdentifier": "t_rational_3_by_1",
28579 "typeString": "int_const 3"
28580 }
28581 ],
28582 "expression": {
28583 "argumentTypes": null,
28584 "id": 1585,
28585 "name": "amount1In",
28586 "nodeType": "Identifier",
28587 "overloadedDeclarations": [],
28588 "referencedDeclaration": 1539,
28589 "src": "8962:9:3",
28590 "typeDescriptions": {
28591 "typeIdentifier": "t_uint256",
28592 "typeString": "uint256"
28593 }
28594 },
28595 "id": 1586,
28596 "isConstant": false,
28597 "isLValue": false,
28598 "isPure": false,
28599 "lValueRequested": false,
28600 "memberName": "mul",
28601 "nodeType": "MemberAccess",
28602 "referencedDeclaration": 2382,
28603 "src": "8962:13:3",
28604 "typeDescriptions": {
28605 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28606 "typeString": "function (uint256,uint256) pure returns (uint256)"
28607 }
28608 },
28609 "id": 1588,
28610 "isConstant": false,
28611 "isLValue": false,
28612 "isPure": false,
28613 "kind": "functionCall",
28614 "lValueRequested": false,
28615 "names": [],
28616 "nodeType": "FunctionCall",
28617 "src": "8962:16:3",
28618 "tryCall": false,
28619 "typeDescriptions": {
28620 "typeIdentifier": "t_uint256",
28621 "typeString": "uint256"
28622 }
28623 }
28624 ],
28625 "expression": {
28626 "argumentTypes": [
28627 {
28628 "typeIdentifier": "t_uint256",
28629 "typeString": "uint256"
28630 }
28631 ],
28632 "expression": {
28633 "argumentTypes": null,
28634 "arguments": [
28635 {
28636 "argumentTypes": null,
28637 "hexValue": "31303030",
28638 "id": 1582,
28639 "isConstant": false,
28640 "isLValue": false,
28641 "isPure": true,
28642 "kind": "number",
28643 "lValueRequested": false,
28644 "nodeType": "Literal",
28645 "src": "8952:4:3",
28646 "subdenomination": null,
28647 "typeDescriptions": {
28648 "typeIdentifier": "t_rational_1000_by_1",
28649 "typeString": "int_const 1000"
28650 },
28651 "value": "1000"
28652 }
28653 ],
28654 "expression": {
28655 "argumentTypes": [
28656 {
28657 "typeIdentifier": "t_rational_1000_by_1",
28658 "typeString": "int_const 1000"
28659 }
28660 ],
28661 "expression": {
28662 "argumentTypes": null,
28663 "id": 1580,
28664 "name": "balance1",
28665 "nodeType": "Identifier",
28666 "overloadedDeclarations": [],
28667 "referencedDeclaration": 1440,
28668 "src": "8939:8:3",
28669 "typeDescriptions": {
28670 "typeIdentifier": "t_uint256",
28671 "typeString": "uint256"
28672 }
28673 },
28674 "id": 1581,
28675 "isConstant": false,
28676 "isLValue": false,
28677 "isPure": false,
28678 "lValueRequested": false,
28679 "memberName": "mul",
28680 "nodeType": "MemberAccess",
28681 "referencedDeclaration": 2382,
28682 "src": "8939:12:3",
28683 "typeDescriptions": {
28684 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28685 "typeString": "function (uint256,uint256) pure returns (uint256)"
28686 }
28687 },
28688 "id": 1583,
28689 "isConstant": false,
28690 "isLValue": false,
28691 "isPure": false,
28692 "kind": "functionCall",
28693 "lValueRequested": false,
28694 "names": [],
28695 "nodeType": "FunctionCall",
28696 "src": "8939:18:3",
28697 "tryCall": false,
28698 "typeDescriptions": {
28699 "typeIdentifier": "t_uint256",
28700 "typeString": "uint256"
28701 }
28702 },
28703 "id": 1584,
28704 "isConstant": false,
28705 "isLValue": false,
28706 "isPure": false,
28707 "lValueRequested": false,
28708 "memberName": "sub",
28709 "nodeType": "MemberAccess",
28710 "referencedDeclaration": 2354,
28711 "src": "8939:22:3",
28712 "typeDescriptions": {
28713 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28714 "typeString": "function (uint256,uint256) pure returns (uint256)"
28715 }
28716 },
28717 "id": 1589,
28718 "isConstant": false,
28719 "isLValue": false,
28720 "isPure": false,
28721 "kind": "functionCall",
28722 "lValueRequested": false,
28723 "names": [],
28724 "nodeType": "FunctionCall",
28725 "src": "8939:40:3",
28726 "tryCall": false,
28727 "typeDescriptions": {
28728 "typeIdentifier": "t_uint256",
28729 "typeString": "uint256"
28730 }
28731 },
28732 "nodeType": "VariableDeclarationStatement",
28733 "src": "8915:64:3"
28734 },
28735 {
28736 "expression": {
28737 "argumentTypes": null,
28738 "arguments": [
28739 {
28740 "argumentTypes": null,
28741 "commonType": {
28742 "typeIdentifier": "t_uint256",
28743 "typeString": "uint256"
28744 },
28745 "id": 1608,
28746 "isConstant": false,
28747 "isLValue": false,
28748 "isPure": false,
28749 "lValueRequested": false,
28750 "leftExpression": {
28751 "argumentTypes": null,
28752 "arguments": [
28753 {
28754 "argumentTypes": null,
28755 "id": 1594,
28756 "name": "balance1Adjusted",
28757 "nodeType": "Identifier",
28758 "overloadedDeclarations": [],
28759 "referencedDeclaration": 1579,
28760 "src": "9018:16:3",
28761 "typeDescriptions": {
28762 "typeIdentifier": "t_uint256",
28763 "typeString": "uint256"
28764 }
28765 }
28766 ],
28767 "expression": {
28768 "argumentTypes": [
28769 {
28770 "typeIdentifier": "t_uint256",
28771 "typeString": "uint256"
28772 }
28773 ],
28774 "expression": {
28775 "argumentTypes": null,
28776 "id": 1592,
28777 "name": "balance0Adjusted",
28778 "nodeType": "Identifier",
28779 "overloadedDeclarations": [],
28780 "referencedDeclaration": 1566,
28781 "src": "8997:16:3",
28782 "typeDescriptions": {
28783 "typeIdentifier": "t_uint256",
28784 "typeString": "uint256"
28785 }
28786 },
28787 "id": 1593,
28788 "isConstant": false,
28789 "isLValue": false,
28790 "isPure": false,
28791 "lValueRequested": false,
28792 "memberName": "mul",
28793 "nodeType": "MemberAccess",
28794 "referencedDeclaration": 2382,
28795 "src": "8997:20:3",
28796 "typeDescriptions": {
28797 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28798 "typeString": "function (uint256,uint256) pure returns (uint256)"
28799 }
28800 },
28801 "id": 1595,
28802 "isConstant": false,
28803 "isLValue": false,
28804 "isPure": false,
28805 "kind": "functionCall",
28806 "lValueRequested": false,
28807 "names": [],
28808 "nodeType": "FunctionCall",
28809 "src": "8997:38:3",
28810 "tryCall": false,
28811 "typeDescriptions": {
28812 "typeIdentifier": "t_uint256",
28813 "typeString": "uint256"
28814 }
28815 },
28816 "nodeType": "BinaryOperation",
28817 "operator": ">=",
28818 "rightExpression": {
28819 "argumentTypes": null,
28820 "arguments": [
28821 {
28822 "argumentTypes": null,
28823 "commonType": {
28824 "typeIdentifier": "t_rational_1000000_by_1",
28825 "typeString": "int_const 1000000"
28826 },
28827 "id": 1606,
28828 "isConstant": false,
28829 "isLValue": false,
28830 "isPure": true,
28831 "lValueRequested": false,
28832 "leftExpression": {
28833 "argumentTypes": null,
28834 "hexValue": "31303030",
28835 "id": 1604,
28836 "isConstant": false,
28837 "isLValue": false,
28838 "isPure": true,
28839 "kind": "number",
28840 "lValueRequested": false,
28841 "nodeType": "Literal",
28842 "src": "9074:4:3",
28843 "subdenomination": null,
28844 "typeDescriptions": {
28845 "typeIdentifier": "t_rational_1000_by_1",
28846 "typeString": "int_const 1000"
28847 },
28848 "value": "1000"
28849 },
28850 "nodeType": "BinaryOperation",
28851 "operator": "**",
28852 "rightExpression": {
28853 "argumentTypes": null,
28854 "hexValue": "32",
28855 "id": 1605,
28856 "isConstant": false,
28857 "isLValue": false,
28858 "isPure": true,
28859 "kind": "number",
28860 "lValueRequested": false,
28861 "nodeType": "Literal",
28862 "src": "9080:1:3",
28863 "subdenomination": null,
28864 "typeDescriptions": {
28865 "typeIdentifier": "t_rational_2_by_1",
28866 "typeString": "int_const 2"
28867 },
28868 "value": "2"
28869 },
28870 "src": "9074:7:3",
28871 "typeDescriptions": {
28872 "typeIdentifier": "t_rational_1000000_by_1",
28873 "typeString": "int_const 1000000"
28874 }
28875 }
28876 ],
28877 "expression": {
28878 "argumentTypes": [
28879 {
28880 "typeIdentifier": "t_rational_1000000_by_1",
28881 "typeString": "int_const 1000000"
28882 }
28883 ],
28884 "expression": {
28885 "argumentTypes": null,
28886 "arguments": [
28887 {
28888 "argumentTypes": null,
28889 "id": 1601,
28890 "name": "_reserve1",
28891 "nodeType": "Identifier",
28892 "overloadedDeclarations": [],
28893 "referencedDeclaration": 1421,
28894 "src": "9059:9:3",
28895 "typeDescriptions": {
28896 "typeIdentifier": "t_uint112",
28897 "typeString": "uint112"
28898 }
28899 }
28900 ],
28901 "expression": {
28902 "argumentTypes": [
28903 {
28904 "typeIdentifier": "t_uint112",
28905 "typeString": "uint112"
28906 }
28907 ],
28908 "expression": {
28909 "argumentTypes": null,
28910 "arguments": [
28911 {
28912 "argumentTypes": null,
28913 "id": 1598,
28914 "name": "_reserve0",
28915 "nodeType": "Identifier",
28916 "overloadedDeclarations": [],
28917 "referencedDeclaration": 1419,
28918 "src": "9044:9:3",
28919 "typeDescriptions": {
28920 "typeIdentifier": "t_uint112",
28921 "typeString": "uint112"
28922 }
28923 }
28924 ],
28925 "expression": {
28926 "argumentTypes": [
28927 {
28928 "typeIdentifier": "t_uint112",
28929 "typeString": "uint112"
28930 }
28931 ],
28932 "id": 1597,
28933 "isConstant": false,
28934 "isLValue": false,
28935 "isPure": true,
28936 "lValueRequested": false,
28937 "nodeType": "ElementaryTypeNameExpression",
28938 "src": "9039:4:3",
28939 "typeDescriptions": {
28940 "typeIdentifier": "t_type$_t_uint256_$",
28941 "typeString": "type(uint256)"
28942 },
28943 "typeName": {
28944 "id": 1596,
28945 "name": "uint",
28946 "nodeType": "ElementaryTypeName",
28947 "src": "9039:4:3",
28948 "typeDescriptions": {
28949 "typeIdentifier": null,
28950 "typeString": null
28951 }
28952 }
28953 },
28954 "id": 1599,
28955 "isConstant": false,
28956 "isLValue": false,
28957 "isPure": false,
28958 "kind": "typeConversion",
28959 "lValueRequested": false,
28960 "names": [],
28961 "nodeType": "FunctionCall",
28962 "src": "9039:15:3",
28963 "tryCall": false,
28964 "typeDescriptions": {
28965 "typeIdentifier": "t_uint256",
28966 "typeString": "uint256"
28967 }
28968 },
28969 "id": 1600,
28970 "isConstant": false,
28971 "isLValue": false,
28972 "isPure": false,
28973 "lValueRequested": false,
28974 "memberName": "mul",
28975 "nodeType": "MemberAccess",
28976 "referencedDeclaration": 2382,
28977 "src": "9039:19:3",
28978 "typeDescriptions": {
28979 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
28980 "typeString": "function (uint256,uint256) pure returns (uint256)"
28981 }
28982 },
28983 "id": 1602,
28984 "isConstant": false,
28985 "isLValue": false,
28986 "isPure": false,
28987 "kind": "functionCall",
28988 "lValueRequested": false,
28989 "names": [],
28990 "nodeType": "FunctionCall",
28991 "src": "9039:30:3",
28992 "tryCall": false,
28993 "typeDescriptions": {
28994 "typeIdentifier": "t_uint256",
28995 "typeString": "uint256"
28996 }
28997 },
28998 "id": 1603,
28999 "isConstant": false,
29000 "isLValue": false,
29001 "isPure": false,
29002 "lValueRequested": false,
29003 "memberName": "mul",
29004 "nodeType": "MemberAccess",
29005 "referencedDeclaration": 2382,
29006 "src": "9039:34:3",
29007 "typeDescriptions": {
29008 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
29009 "typeString": "function (uint256,uint256) pure returns (uint256)"
29010 }
29011 },
29012 "id": 1607,
29013 "isConstant": false,
29014 "isLValue": false,
29015 "isPure": false,
29016 "kind": "functionCall",
29017 "lValueRequested": false,
29018 "names": [],
29019 "nodeType": "FunctionCall",
29020 "src": "9039:43:3",
29021 "tryCall": false,
29022 "typeDescriptions": {
29023 "typeIdentifier": "t_uint256",
29024 "typeString": "uint256"
29025 }
29026 },
29027 "src": "8997:85:3",
29028 "typeDescriptions": {
29029 "typeIdentifier": "t_bool",
29030 "typeString": "bool"
29031 }
29032 },
29033 {
29034 "argumentTypes": null,
29035 "hexValue": "556e697377617056323a204b",
29036 "id": 1609,
29037 "isConstant": false,
29038 "isLValue": false,
29039 "isPure": true,
29040 "kind": "string",
29041 "lValueRequested": false,
29042 "nodeType": "Literal",
29043 "src": "9084:14:3",
29044 "subdenomination": null,
29045 "typeDescriptions": {
29046 "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af",
29047 "typeString": "literal_string \"UniswapV2: K\""
29048 },
29049 "value": "UniswapV2: K"
29050 }
29051 ],
29052 "expression": {
29053 "argumentTypes": [
29054 {
29055 "typeIdentifier": "t_bool",
29056 "typeString": "bool"
29057 },
29058 {
29059 "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af",
29060 "typeString": "literal_string \"UniswapV2: K\""
29061 }
29062 ],
29063 "id": 1591,
29064 "name": "require",
29065 "nodeType": "Identifier",
29066 "overloadedDeclarations": [
29067 -18,
29068 -18
29069 ],
29070 "referencedDeclaration": -18,
29071 "src": "8989:7:3",
29072 "typeDescriptions": {
29073 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
29074 "typeString": "function (bool,string memory) pure"
29075 }
29076 },
29077 "id": 1610,
29078 "isConstant": false,
29079 "isLValue": false,
29080 "isPure": false,
29081 "kind": "functionCall",
29082 "lValueRequested": false,
29083 "names": [],
29084 "nodeType": "FunctionCall",
29085 "src": "8989:110:3",
29086 "tryCall": false,
29087 "typeDescriptions": {
29088 "typeIdentifier": "t_tuple$__$",
29089 "typeString": "tuple()"
29090 }
29091 },
29092 "id": 1611,
29093 "nodeType": "ExpressionStatement",
29094 "src": "8989:110:3"
29095 }
29096 ]
29097 },
29098 {
29099 "expression": {
29100 "argumentTypes": null,
29101 "arguments": [
29102 {
29103 "argumentTypes": null,
29104 "id": 1614,
29105 "name": "balance0",
29106 "nodeType": "Identifier",
29107 "overloadedDeclarations": [],
29108 "referencedDeclaration": 1437,
29109 "src": "9128:8:3",
29110 "typeDescriptions": {
29111 "typeIdentifier": "t_uint256",
29112 "typeString": "uint256"
29113 }
29114 },
29115 {
29116 "argumentTypes": null,
29117 "id": 1615,
29118 "name": "balance1",
29119 "nodeType": "Identifier",
29120 "overloadedDeclarations": [],
29121 "referencedDeclaration": 1440,
29122 "src": "9138:8:3",
29123 "typeDescriptions": {
29124 "typeIdentifier": "t_uint256",
29125 "typeString": "uint256"
29126 }
29127 },
29128 {
29129 "argumentTypes": null,
29130 "id": 1616,
29131 "name": "_reserve0",
29132 "nodeType": "Identifier",
29133 "overloadedDeclarations": [],
29134 "referencedDeclaration": 1419,
29135 "src": "9148:9:3",
29136 "typeDescriptions": {
29137 "typeIdentifier": "t_uint112",
29138 "typeString": "uint112"
29139 }
29140 },
29141 {
29142 "argumentTypes": null,
29143 "id": 1617,
29144 "name": "_reserve1",
29145 "nodeType": "Identifier",
29146 "overloadedDeclarations": [],
29147 "referencedDeclaration": 1421,
29148 "src": "9159:9:3",
29149 "typeDescriptions": {
29150 "typeIdentifier": "t_uint112",
29151 "typeString": "uint112"
29152 }
29153 }
29154 ],
29155 "expression": {
29156 "argumentTypes": [
29157 {
29158 "typeIdentifier": "t_uint256",
29159 "typeString": "uint256"
29160 },
29161 {
29162 "typeIdentifier": "t_uint256",
29163 "typeString": "uint256"
29164 },
29165 {
29166 "typeIdentifier": "t_uint112",
29167 "typeString": "uint112"
29168 },
29169 {
29170 "typeIdentifier": "t_uint112",
29171 "typeString": "uint112"
29172 }
29173 ],
29174 "id": 1613,
29175 "name": "_update",
29176 "nodeType": "Identifier",
29177 "overloadedDeclarations": [],
29178 "referencedDeclaration": 966,
29179 "src": "9120:7:3",
29180 "typeDescriptions": {
29181 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
29182 "typeString": "function (uint256,uint256,uint112,uint112)"
29183 }
29184 },
29185 "id": 1618,
29186 "isConstant": false,
29187 "isLValue": false,
29188 "isPure": false,
29189 "kind": "functionCall",
29190 "lValueRequested": false,
29191 "names": [],
29192 "nodeType": "FunctionCall",
29193 "src": "9120:49:3",
29194 "tryCall": false,
29195 "typeDescriptions": {
29196 "typeIdentifier": "t_tuple$__$",
29197 "typeString": "tuple()"
29198 }
29199 },
29200 "id": 1619,
29201 "nodeType": "ExpressionStatement",
29202 "src": "9120:49:3"
29203 },
29204 {
29205 "eventCall": {
29206 "argumentTypes": null,
29207 "arguments": [
29208 {
29209 "argumentTypes": null,
29210 "expression": {
29211 "argumentTypes": null,
29212 "id": 1621,
29213 "name": "msg",
29214 "nodeType": "Identifier",
29215 "overloadedDeclarations": [],
29216 "referencedDeclaration": -15,
29217 "src": "9189:3:3",
29218 "typeDescriptions": {
29219 "typeIdentifier": "t_magic_message",
29220 "typeString": "msg"
29221 }
29222 },
29223 "id": 1622,
29224 "isConstant": false,
29225 "isLValue": false,
29226 "isPure": false,
29227 "lValueRequested": false,
29228 "memberName": "sender",
29229 "nodeType": "MemberAccess",
29230 "referencedDeclaration": null,
29231 "src": "9189:10:3",
29232 "typeDescriptions": {
29233 "typeIdentifier": "t_address_payable",
29234 "typeString": "address payable"
29235 }
29236 },
29237 {
29238 "argumentTypes": null,
29239 "id": 1623,
29240 "name": "amount0In",
29241 "nodeType": "Identifier",
29242 "overloadedDeclarations": [],
29243 "referencedDeclaration": 1523,
29244 "src": "9201:9:3",
29245 "typeDescriptions": {
29246 "typeIdentifier": "t_uint256",
29247 "typeString": "uint256"
29248 }
29249 },
29250 {
29251 "argumentTypes": null,
29252 "id": 1624,
29253 "name": "amount1In",
29254 "nodeType": "Identifier",
29255 "overloadedDeclarations": [],
29256 "referencedDeclaration": 1539,
29257 "src": "9212:9:3",
29258 "typeDescriptions": {
29259 "typeIdentifier": "t_uint256",
29260 "typeString": "uint256"
29261 }
29262 },
29263 {
29264 "argumentTypes": null,
29265 "id": 1625,
29266 "name": "amount0Out",
29267 "nodeType": "Identifier",
29268 "overloadedDeclarations": [],
29269 "referencedDeclaration": 1396,
29270 "src": "9223:10:3",
29271 "typeDescriptions": {
29272 "typeIdentifier": "t_uint256",
29273 "typeString": "uint256"
29274 }
29275 },
29276 {
29277 "argumentTypes": null,
29278 "id": 1626,
29279 "name": "amount1Out",
29280 "nodeType": "Identifier",
29281 "overloadedDeclarations": [],
29282 "referencedDeclaration": 1398,
29283 "src": "9235:10:3",
29284 "typeDescriptions": {
29285 "typeIdentifier": "t_uint256",
29286 "typeString": "uint256"
29287 }
29288 },
29289 {
29290 "argumentTypes": null,
29291 "id": 1627,
29292 "name": "to",
29293 "nodeType": "Identifier",
29294 "overloadedDeclarations": [],
29295 "referencedDeclaration": 1400,
29296 "src": "9247:2:3",
29297 "typeDescriptions": {
29298 "typeIdentifier": "t_address",
29299 "typeString": "address"
29300 }
29301 }
29302 ],
29303 "expression": {
29304 "argumentTypes": [
29305 {
29306 "typeIdentifier": "t_address_payable",
29307 "typeString": "address payable"
29308 },
29309 {
29310 "typeIdentifier": "t_uint256",
29311 "typeString": "uint256"
29312 },
29313 {
29314 "typeIdentifier": "t_uint256",
29315 "typeString": "uint256"
29316 },
29317 {
29318 "typeIdentifier": "t_uint256",
29319 "typeString": "uint256"
29320 },
29321 {
29322 "typeIdentifier": "t_uint256",
29323 "typeString": "uint256"
29324 },
29325 {
29326 "typeIdentifier": "t_address",
29327 "typeString": "address"
29328 }
29329 ],
29330 "id": 1620,
29331 "name": "Swap",
29332 "nodeType": "Identifier",
29333 "overloadedDeclarations": [],
29334 "referencedDeclaration": 812,
29335 "src": "9184:4:3",
29336 "typeDescriptions": {
29337 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
29338 "typeString": "function (address,uint256,uint256,uint256,uint256,address)"
29339 }
29340 },
29341 "id": 1628,
29342 "isConstant": false,
29343 "isLValue": false,
29344 "isPure": false,
29345 "kind": "functionCall",
29346 "lValueRequested": false,
29347 "names": [],
29348 "nodeType": "FunctionCall",
29349 "src": "9184:66:3",
29350 "tryCall": false,
29351 "typeDescriptions": {
29352 "typeIdentifier": "t_tuple$__$",
29353 "typeString": "tuple()"
29354 }
29355 },
29356 "id": 1629,
29357 "nodeType": "EmitStatement",
29358 "src": "9179:71:3"
29359 }
29360 ]
29361 },
29362 "documentation": null,
29363 "functionSelector": "022c0d9f",
29364 "id": 1631,
29365 "implemented": true,
29366 "kind": "function",
29367 "modifiers": [
29368 {
29369 "arguments": null,
29370 "id": 1405,
29371 "modifierName": {
29372 "argumentTypes": null,
29373 "id": 1404,
29374 "name": "lock",
29375 "nodeType": "Identifier",
29376 "overloadedDeclarations": [],
29377 "referencedDeclaration": 715,
29378 "src": "7472:4:3",
29379 "typeDescriptions": {
29380 "typeIdentifier": "t_modifier$__$",
29381 "typeString": "modifier ()"
29382 }
29383 },
29384 "nodeType": "ModifierInvocation",
29385 "src": "7472:4:3"
29386 }
29387 ],
29388 "name": "swap",
29389 "nodeType": "FunctionDefinition",
29390 "overrides": null,
29391 "parameters": {
29392 "id": 1403,
29393 "nodeType": "ParameterList",
29394 "parameters": [
29395 {
29396 "constant": false,
29397 "id": 1396,
29398 "mutability": "mutable",
29399 "name": "amount0Out",
29400 "nodeType": "VariableDeclaration",
29401 "overrides": null,
29402 "scope": 1631,
29403 "src": "7396:15:3",
29404 "stateVariable": false,
29405 "storageLocation": "default",
29406 "typeDescriptions": {
29407 "typeIdentifier": "t_uint256",
29408 "typeString": "uint256"
29409 },
29410 "typeName": {
29411 "id": 1395,
29412 "name": "uint",
29413 "nodeType": "ElementaryTypeName",
29414 "src": "7396:4:3",
29415 "typeDescriptions": {
29416 "typeIdentifier": "t_uint256",
29417 "typeString": "uint256"
29418 }
29419 },
29420 "value": null,
29421 "visibility": "internal"
29422 },
29423 {
29424 "constant": false,
29425 "id": 1398,
29426 "mutability": "mutable",
29427 "name": "amount1Out",
29428 "nodeType": "VariableDeclaration",
29429 "overrides": null,
29430 "scope": 1631,
29431 "src": "7413:15:3",
29432 "stateVariable": false,
29433 "storageLocation": "default",
29434 "typeDescriptions": {
29435 "typeIdentifier": "t_uint256",
29436 "typeString": "uint256"
29437 },
29438 "typeName": {
29439 "id": 1397,
29440 "name": "uint",
29441 "nodeType": "ElementaryTypeName",
29442 "src": "7413:4:3",
29443 "typeDescriptions": {
29444 "typeIdentifier": "t_uint256",
29445 "typeString": "uint256"
29446 }
29447 },
29448 "value": null,
29449 "visibility": "internal"
29450 },
29451 {
29452 "constant": false,
29453 "id": 1400,
29454 "mutability": "mutable",
29455 "name": "to",
29456 "nodeType": "VariableDeclaration",
29457 "overrides": null,
29458 "scope": 1631,
29459 "src": "7430:10:3",
29460 "stateVariable": false,
29461 "storageLocation": "default",
29462 "typeDescriptions": {
29463 "typeIdentifier": "t_address",
29464 "typeString": "address"
29465 },
29466 "typeName": {
29467 "id": 1399,
29468 "name": "address",
29469 "nodeType": "ElementaryTypeName",
29470 "src": "7430:7:3",
29471 "stateMutability": "nonpayable",
29472 "typeDescriptions": {
29473 "typeIdentifier": "t_address",
29474 "typeString": "address"
29475 }
29476 },
29477 "value": null,
29478 "visibility": "internal"
29479 },
29480 {
29481 "constant": false,
29482 "id": 1402,
29483 "mutability": "mutable",
29484 "name": "data",
29485 "nodeType": "VariableDeclaration",
29486 "overrides": null,
29487 "scope": 1631,
29488 "src": "7442:19:3",
29489 "stateVariable": false,
29490 "storageLocation": "calldata",
29491 "typeDescriptions": {
29492 "typeIdentifier": "t_bytes_calldata_ptr",
29493 "typeString": "bytes"
29494 },
29495 "typeName": {
29496 "id": 1401,
29497 "name": "bytes",
29498 "nodeType": "ElementaryTypeName",
29499 "src": "7442:5:3",
29500 "typeDescriptions": {
29501 "typeIdentifier": "t_bytes_storage_ptr",
29502 "typeString": "bytes"
29503 }
29504 },
29505 "value": null,
29506 "visibility": "internal"
29507 }
29508 ],
29509 "src": "7395:67:3"
29510 },
29511 "returnParameters": {
29512 "id": 1406,
29513 "nodeType": "ParameterList",
29514 "parameters": [],
29515 "src": "7477:0:3"
29516 },
29517 "scope": 1711,
29518 "src": "7382:1875:3",
29519 "stateMutability": "nonpayable",
29520 "virtual": false,
29521 "visibility": "external"
29522 },
29523 {
29524 "body": {
29525 "id": 1680,
29526 "nodeType": "Block",
29527 "src": "9343:303:3",
29528 "statements": [
29529 {
29530 "assignments": [
29531 1639
29532 ],
29533 "declarations": [
29534 {
29535 "constant": false,
29536 "id": 1639,
29537 "mutability": "mutable",
29538 "name": "_token0",
29539 "nodeType": "VariableDeclaration",
29540 "overrides": null,
29541 "scope": 1680,
29542 "src": "9353:15:3",
29543 "stateVariable": false,
29544 "storageLocation": "default",
29545 "typeDescriptions": {
29546 "typeIdentifier": "t_address",
29547 "typeString": "address"
29548 },
29549 "typeName": {
29550 "id": 1638,
29551 "name": "address",
29552 "nodeType": "ElementaryTypeName",
29553 "src": "9353:7:3",
29554 "stateMutability": "nonpayable",
29555 "typeDescriptions": {
29556 "typeIdentifier": "t_address",
29557 "typeString": "address"
29558 }
29559 },
29560 "value": null,
29561 "visibility": "internal"
29562 }
29563 ],
29564 "id": 1641,
29565 "initialValue": {
29566 "argumentTypes": null,
29567 "id": 1640,
29568 "name": "token0",
29569 "nodeType": "Identifier",
29570 "overloadedDeclarations": [],
29571 "referencedDeclaration": 679,
29572 "src": "9371:6:3",
29573 "typeDescriptions": {
29574 "typeIdentifier": "t_address",
29575 "typeString": "address"
29576 }
29577 },
29578 "nodeType": "VariableDeclarationStatement",
29579 "src": "9353:24:3"
29580 },
29581 {
29582 "assignments": [
29583 1643
29584 ],
29585 "declarations": [
29586 {
29587 "constant": false,
29588 "id": 1643,
29589 "mutability": "mutable",
29590 "name": "_token1",
29591 "nodeType": "VariableDeclaration",
29592 "overrides": null,
29593 "scope": 1680,
29594 "src": "9402:15:3",
29595 "stateVariable": false,
29596 "storageLocation": "default",
29597 "typeDescriptions": {
29598 "typeIdentifier": "t_address",
29599 "typeString": "address"
29600 },
29601 "typeName": {
29602 "id": 1642,
29603 "name": "address",
29604 "nodeType": "ElementaryTypeName",
29605 "src": "9402:7:3",
29606 "stateMutability": "nonpayable",
29607 "typeDescriptions": {
29608 "typeIdentifier": "t_address",
29609 "typeString": "address"
29610 }
29611 },
29612 "value": null,
29613 "visibility": "internal"
29614 }
29615 ],
29616 "id": 1645,
29617 "initialValue": {
29618 "argumentTypes": null,
29619 "id": 1644,
29620 "name": "token1",
29621 "nodeType": "Identifier",
29622 "overloadedDeclarations": [],
29623 "referencedDeclaration": 681,
29624 "src": "9420:6:3",
29625 "typeDescriptions": {
29626 "typeIdentifier": "t_address",
29627 "typeString": "address"
29628 }
29629 },
29630 "nodeType": "VariableDeclarationStatement",
29631 "src": "9402:24:3"
29632 },
29633 {
29634 "expression": {
29635 "argumentTypes": null,
29636 "arguments": [
29637 {
29638 "argumentTypes": null,
29639 "id": 1647,
29640 "name": "_token0",
29641 "nodeType": "Identifier",
29642 "overloadedDeclarations": [],
29643 "referencedDeclaration": 1639,
29644 "src": "9465:7:3",
29645 "typeDescriptions": {
29646 "typeIdentifier": "t_address",
29647 "typeString": "address"
29648 }
29649 },
29650 {
29651 "argumentTypes": null,
29652 "id": 1648,
29653 "name": "to",
29654 "nodeType": "Identifier",
29655 "overloadedDeclarations": [],
29656 "referencedDeclaration": 1633,
29657 "src": "9474:2:3",
29658 "typeDescriptions": {
29659 "typeIdentifier": "t_address",
29660 "typeString": "address"
29661 }
29662 },
29663 {
29664 "argumentTypes": null,
29665 "arguments": [
29666 {
29667 "argumentTypes": null,
29668 "id": 1659,
29669 "name": "reserve0",
29670 "nodeType": "Identifier",
29671 "overloadedDeclarations": [],
29672 "referencedDeclaration": 683,
29673 "src": "9530:8:3",
29674 "typeDescriptions": {
29675 "typeIdentifier": "t_uint112",
29676 "typeString": "uint112"
29677 }
29678 }
29679 ],
29680 "expression": {
29681 "argumentTypes": [
29682 {
29683 "typeIdentifier": "t_uint112",
29684 "typeString": "uint112"
29685 }
29686 ],
29687 "expression": {
29688 "argumentTypes": null,
29689 "arguments": [
29690 {
29691 "argumentTypes": null,
29692 "arguments": [
29693 {
29694 "argumentTypes": null,
29695 "id": 1655,
29696 "name": "this",
29697 "nodeType": "Identifier",
29698 "overloadedDeclarations": [],
29699 "referencedDeclaration": -28,
29700 "src": "9519:4:3",
29701 "typeDescriptions": {
29702 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
29703 "typeString": "contract UniswapV2Pair"
29704 }
29705 }
29706 ],
29707 "expression": {
29708 "argumentTypes": [
29709 {
29710 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
29711 "typeString": "contract UniswapV2Pair"
29712 }
29713 ],
29714 "id": 1654,
29715 "isConstant": false,
29716 "isLValue": false,
29717 "isPure": true,
29718 "lValueRequested": false,
29719 "nodeType": "ElementaryTypeNameExpression",
29720 "src": "9511:7:3",
29721 "typeDescriptions": {
29722 "typeIdentifier": "t_type$_t_address_$",
29723 "typeString": "type(address)"
29724 },
29725 "typeName": {
29726 "id": 1653,
29727 "name": "address",
29728 "nodeType": "ElementaryTypeName",
29729 "src": "9511:7:3",
29730 "typeDescriptions": {
29731 "typeIdentifier": null,
29732 "typeString": null
29733 }
29734 }
29735 },
29736 "id": 1656,
29737 "isConstant": false,
29738 "isLValue": false,
29739 "isPure": false,
29740 "kind": "typeConversion",
29741 "lValueRequested": false,
29742 "names": [],
29743 "nodeType": "FunctionCall",
29744 "src": "9511:13:3",
29745 "tryCall": false,
29746 "typeDescriptions": {
29747 "typeIdentifier": "t_address",
29748 "typeString": "address"
29749 }
29750 }
29751 ],
29752 "expression": {
29753 "argumentTypes": [
29754 {
29755 "typeIdentifier": "t_address",
29756 "typeString": "address"
29757 }
29758 ],
29759 "expression": {
29760 "argumentTypes": null,
29761 "arguments": [
29762 {
29763 "argumentTypes": null,
29764 "id": 1650,
29765 "name": "_token0",
29766 "nodeType": "Identifier",
29767 "overloadedDeclarations": [],
29768 "referencedDeclaration": 1639,
29769 "src": "9492:7:3",
29770 "typeDescriptions": {
29771 "typeIdentifier": "t_address",
29772 "typeString": "address"
29773 }
29774 }
29775 ],
29776 "expression": {
29777 "argumentTypes": [
29778 {
29779 "typeIdentifier": "t_address",
29780 "typeString": "address"
29781 }
29782 ],
29783 "id": 1649,
29784 "name": "IERC20Uniswap",
29785 "nodeType": "Identifier",
29786 "overloadedDeclarations": [],
29787 "referencedDeclaration": 1795,
29788 "src": "9478:13:3",
29789 "typeDescriptions": {
29790 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
29791 "typeString": "type(contract IERC20Uniswap)"
29792 }
29793 },
29794 "id": 1651,
29795 "isConstant": false,
29796 "isLValue": false,
29797 "isPure": false,
29798 "kind": "typeConversion",
29799 "lValueRequested": false,
29800 "names": [],
29801 "nodeType": "FunctionCall",
29802 "src": "9478:22:3",
29803 "tryCall": false,
29804 "typeDescriptions": {
29805 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
29806 "typeString": "contract IERC20Uniswap"
29807 }
29808 },
29809 "id": 1652,
29810 "isConstant": false,
29811 "isLValue": false,
29812 "isPure": false,
29813 "lValueRequested": false,
29814 "memberName": "balanceOf",
29815 "nodeType": "MemberAccess",
29816 "referencedDeclaration": 1756,
29817 "src": "9478:32:3",
29818 "typeDescriptions": {
29819 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
29820 "typeString": "function (address) view external returns (uint256)"
29821 }
29822 },
29823 "id": 1657,
29824 "isConstant": false,
29825 "isLValue": false,
29826 "isPure": false,
29827 "kind": "functionCall",
29828 "lValueRequested": false,
29829 "names": [],
29830 "nodeType": "FunctionCall",
29831 "src": "9478:47:3",
29832 "tryCall": false,
29833 "typeDescriptions": {
29834 "typeIdentifier": "t_uint256",
29835 "typeString": "uint256"
29836 }
29837 },
29838 "id": 1658,
29839 "isConstant": false,
29840 "isLValue": false,
29841 "isPure": false,
29842 "lValueRequested": false,
29843 "memberName": "sub",
29844 "nodeType": "MemberAccess",
29845 "referencedDeclaration": 2354,
29846 "src": "9478:51:3",
29847 "typeDescriptions": {
29848 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
29849 "typeString": "function (uint256,uint256) pure returns (uint256)"
29850 }
29851 },
29852 "id": 1660,
29853 "isConstant": false,
29854 "isLValue": false,
29855 "isPure": false,
29856 "kind": "functionCall",
29857 "lValueRequested": false,
29858 "names": [],
29859 "nodeType": "FunctionCall",
29860 "src": "9478:61:3",
29861 "tryCall": false,
29862 "typeDescriptions": {
29863 "typeIdentifier": "t_uint256",
29864 "typeString": "uint256"
29865 }
29866 }
29867 ],
29868 "expression": {
29869 "argumentTypes": [
29870 {
29871 "typeIdentifier": "t_address",
29872 "typeString": "address"
29873 },
29874 {
29875 "typeIdentifier": "t_address",
29876 "typeString": "address"
29877 },
29878 {
29879 "typeIdentifier": "t_uint256",
29880 "typeString": "uint256"
29881 }
29882 ],
29883 "id": 1646,
29884 "name": "_safeTransfer",
29885 "nodeType": "Identifier",
29886 "overloadedDeclarations": [],
29887 "referencedDeclaration": 780,
29888 "src": "9451:13:3",
29889 "typeDescriptions": {
29890 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
29891 "typeString": "function (address,address,uint256)"
29892 }
29893 },
29894 "id": 1661,
29895 "isConstant": false,
29896 "isLValue": false,
29897 "isPure": false,
29898 "kind": "functionCall",
29899 "lValueRequested": false,
29900 "names": [],
29901 "nodeType": "FunctionCall",
29902 "src": "9451:89:3",
29903 "tryCall": false,
29904 "typeDescriptions": {
29905 "typeIdentifier": "t_tuple$__$",
29906 "typeString": "tuple()"
29907 }
29908 },
29909 "id": 1662,
29910 "nodeType": "ExpressionStatement",
29911 "src": "9451:89:3"
29912 },
29913 {
29914 "expression": {
29915 "argumentTypes": null,
29916 "arguments": [
29917 {
29918 "argumentTypes": null,
29919 "id": 1664,
29920 "name": "_token1",
29921 "nodeType": "Identifier",
29922 "overloadedDeclarations": [],
29923 "referencedDeclaration": 1643,
29924 "src": "9564:7:3",
29925 "typeDescriptions": {
29926 "typeIdentifier": "t_address",
29927 "typeString": "address"
29928 }
29929 },
29930 {
29931 "argumentTypes": null,
29932 "id": 1665,
29933 "name": "to",
29934 "nodeType": "Identifier",
29935 "overloadedDeclarations": [],
29936 "referencedDeclaration": 1633,
29937 "src": "9573:2:3",
29938 "typeDescriptions": {
29939 "typeIdentifier": "t_address",
29940 "typeString": "address"
29941 }
29942 },
29943 {
29944 "argumentTypes": null,
29945 "arguments": [
29946 {
29947 "argumentTypes": null,
29948 "id": 1676,
29949 "name": "reserve1",
29950 "nodeType": "Identifier",
29951 "overloadedDeclarations": [],
29952 "referencedDeclaration": 685,
29953 "src": "9629:8:3",
29954 "typeDescriptions": {
29955 "typeIdentifier": "t_uint112",
29956 "typeString": "uint112"
29957 }
29958 }
29959 ],
29960 "expression": {
29961 "argumentTypes": [
29962 {
29963 "typeIdentifier": "t_uint112",
29964 "typeString": "uint112"
29965 }
29966 ],
29967 "expression": {
29968 "argumentTypes": null,
29969 "arguments": [
29970 {
29971 "argumentTypes": null,
29972 "arguments": [
29973 {
29974 "argumentTypes": null,
29975 "id": 1672,
29976 "name": "this",
29977 "nodeType": "Identifier",
29978 "overloadedDeclarations": [],
29979 "referencedDeclaration": -28,
29980 "src": "9618:4:3",
29981 "typeDescriptions": {
29982 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
29983 "typeString": "contract UniswapV2Pair"
29984 }
29985 }
29986 ],
29987 "expression": {
29988 "argumentTypes": [
29989 {
29990 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
29991 "typeString": "contract UniswapV2Pair"
29992 }
29993 ],
29994 "id": 1671,
29995 "isConstant": false,
29996 "isLValue": false,
29997 "isPure": true,
29998 "lValueRequested": false,
29999 "nodeType": "ElementaryTypeNameExpression",
30000 "src": "9610:7:3",
30001 "typeDescriptions": {
30002 "typeIdentifier": "t_type$_t_address_$",
30003 "typeString": "type(address)"
30004 },
30005 "typeName": {
30006 "id": 1670,
30007 "name": "address",
30008 "nodeType": "ElementaryTypeName",
30009 "src": "9610:7:3",
30010 "typeDescriptions": {
30011 "typeIdentifier": null,
30012 "typeString": null
30013 }
30014 }
30015 },
30016 "id": 1673,
30017 "isConstant": false,
30018 "isLValue": false,
30019 "isPure": false,
30020 "kind": "typeConversion",
30021 "lValueRequested": false,
30022 "names": [],
30023 "nodeType": "FunctionCall",
30024 "src": "9610:13:3",
30025 "tryCall": false,
30026 "typeDescriptions": {
30027 "typeIdentifier": "t_address",
30028 "typeString": "address"
30029 }
30030 }
30031 ],
30032 "expression": {
30033 "argumentTypes": [
30034 {
30035 "typeIdentifier": "t_address",
30036 "typeString": "address"
30037 }
30038 ],
30039 "expression": {
30040 "argumentTypes": null,
30041 "arguments": [
30042 {
30043 "argumentTypes": null,
30044 "id": 1667,
30045 "name": "_token1",
30046 "nodeType": "Identifier",
30047 "overloadedDeclarations": [],
30048 "referencedDeclaration": 1643,
30049 "src": "9591:7:3",
30050 "typeDescriptions": {
30051 "typeIdentifier": "t_address",
30052 "typeString": "address"
30053 }
30054 }
30055 ],
30056 "expression": {
30057 "argumentTypes": [
30058 {
30059 "typeIdentifier": "t_address",
30060 "typeString": "address"
30061 }
30062 ],
30063 "id": 1666,
30064 "name": "IERC20Uniswap",
30065 "nodeType": "Identifier",
30066 "overloadedDeclarations": [],
30067 "referencedDeclaration": 1795,
30068 "src": "9577:13:3",
30069 "typeDescriptions": {
30070 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
30071 "typeString": "type(contract IERC20Uniswap)"
30072 }
30073 },
30074 "id": 1668,
30075 "isConstant": false,
30076 "isLValue": false,
30077 "isPure": false,
30078 "kind": "typeConversion",
30079 "lValueRequested": false,
30080 "names": [],
30081 "nodeType": "FunctionCall",
30082 "src": "9577:22:3",
30083 "tryCall": false,
30084 "typeDescriptions": {
30085 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
30086 "typeString": "contract IERC20Uniswap"
30087 }
30088 },
30089 "id": 1669,
30090 "isConstant": false,
30091 "isLValue": false,
30092 "isPure": false,
30093 "lValueRequested": false,
30094 "memberName": "balanceOf",
30095 "nodeType": "MemberAccess",
30096 "referencedDeclaration": 1756,
30097 "src": "9577:32:3",
30098 "typeDescriptions": {
30099 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
30100 "typeString": "function (address) view external returns (uint256)"
30101 }
30102 },
30103 "id": 1674,
30104 "isConstant": false,
30105 "isLValue": false,
30106 "isPure": false,
30107 "kind": "functionCall",
30108 "lValueRequested": false,
30109 "names": [],
30110 "nodeType": "FunctionCall",
30111 "src": "9577:47:3",
30112 "tryCall": false,
30113 "typeDescriptions": {
30114 "typeIdentifier": "t_uint256",
30115 "typeString": "uint256"
30116 }
30117 },
30118 "id": 1675,
30119 "isConstant": false,
30120 "isLValue": false,
30121 "isPure": false,
30122 "lValueRequested": false,
30123 "memberName": "sub",
30124 "nodeType": "MemberAccess",
30125 "referencedDeclaration": 2354,
30126 "src": "9577:51:3",
30127 "typeDescriptions": {
30128 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
30129 "typeString": "function (uint256,uint256) pure returns (uint256)"
30130 }
30131 },
30132 "id": 1677,
30133 "isConstant": false,
30134 "isLValue": false,
30135 "isPure": false,
30136 "kind": "functionCall",
30137 "lValueRequested": false,
30138 "names": [],
30139 "nodeType": "FunctionCall",
30140 "src": "9577:61:3",
30141 "tryCall": false,
30142 "typeDescriptions": {
30143 "typeIdentifier": "t_uint256",
30144 "typeString": "uint256"
30145 }
30146 }
30147 ],
30148 "expression": {
30149 "argumentTypes": [
30150 {
30151 "typeIdentifier": "t_address",
30152 "typeString": "address"
30153 },
30154 {
30155 "typeIdentifier": "t_address",
30156 "typeString": "address"
30157 },
30158 {
30159 "typeIdentifier": "t_uint256",
30160 "typeString": "uint256"
30161 }
30162 ],
30163 "id": 1663,
30164 "name": "_safeTransfer",
30165 "nodeType": "Identifier",
30166 "overloadedDeclarations": [],
30167 "referencedDeclaration": 780,
30168 "src": "9550:13:3",
30169 "typeDescriptions": {
30170 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
30171 "typeString": "function (address,address,uint256)"
30172 }
30173 },
30174 "id": 1678,
30175 "isConstant": false,
30176 "isLValue": false,
30177 "isPure": false,
30178 "kind": "functionCall",
30179 "lValueRequested": false,
30180 "names": [],
30181 "nodeType": "FunctionCall",
30182 "src": "9550:89:3",
30183 "tryCall": false,
30184 "typeDescriptions": {
30185 "typeIdentifier": "t_tuple$__$",
30186 "typeString": "tuple()"
30187 }
30188 },
30189 "id": 1679,
30190 "nodeType": "ExpressionStatement",
30191 "src": "9550:89:3"
30192 }
30193 ]
30194 },
30195 "documentation": null,
30196 "functionSelector": "bc25cf77",
30197 "id": 1681,
30198 "implemented": true,
30199 "kind": "function",
30200 "modifiers": [
30201 {
30202 "arguments": null,
30203 "id": 1636,
30204 "modifierName": {
30205 "argumentTypes": null,
30206 "id": 1635,
30207 "name": "lock",
30208 "nodeType": "Identifier",
30209 "overloadedDeclarations": [],
30210 "referencedDeclaration": 715,
30211 "src": "9338:4:3",
30212 "typeDescriptions": {
30213 "typeIdentifier": "t_modifier$__$",
30214 "typeString": "modifier ()"
30215 }
30216 },
30217 "nodeType": "ModifierInvocation",
30218 "src": "9338:4:3"
30219 }
30220 ],
30221 "name": "skim",
30222 "nodeType": "FunctionDefinition",
30223 "overrides": null,
30224 "parameters": {
30225 "id": 1634,
30226 "nodeType": "ParameterList",
30227 "parameters": [
30228 {
30229 "constant": false,
30230 "id": 1633,
30231 "mutability": "mutable",
30232 "name": "to",
30233 "nodeType": "VariableDeclaration",
30234 "overrides": null,
30235 "scope": 1681,
30236 "src": "9317:10:3",
30237 "stateVariable": false,
30238 "storageLocation": "default",
30239 "typeDescriptions": {
30240 "typeIdentifier": "t_address",
30241 "typeString": "address"
30242 },
30243 "typeName": {
30244 "id": 1632,
30245 "name": "address",
30246 "nodeType": "ElementaryTypeName",
30247 "src": "9317:7:3",
30248 "stateMutability": "nonpayable",
30249 "typeDescriptions": {
30250 "typeIdentifier": "t_address",
30251 "typeString": "address"
30252 }
30253 },
30254 "value": null,
30255 "visibility": "internal"
30256 }
30257 ],
30258 "src": "9316:12:3"
30259 },
30260 "returnParameters": {
30261 "id": 1637,
30262 "nodeType": "ParameterList",
30263 "parameters": [],
30264 "src": "9343:0:3"
30265 },
30266 "scope": 1711,
30267 "src": "9303:343:3",
30268 "stateMutability": "nonpayable",
30269 "virtual": false,
30270 "visibility": "external"
30271 },
30272 {
30273 "body": {
30274 "id": 1709,
30275 "nodeType": "Block",
30276 "src": "9722:140:3",
30277 "statements": [
30278 {
30279 "expression": {
30280 "argumentTypes": null,
30281 "arguments": [
30282 {
30283 "argumentTypes": null,
30284 "arguments": [
30285 {
30286 "argumentTypes": null,
30287 "arguments": [
30288 {
30289 "argumentTypes": null,
30290 "id": 1693,
30291 "name": "this",
30292 "nodeType": "Identifier",
30293 "overloadedDeclarations": [],
30294 "referencedDeclaration": -28,
30295 "src": "9780:4:3",
30296 "typeDescriptions": {
30297 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
30298 "typeString": "contract UniswapV2Pair"
30299 }
30300 }
30301 ],
30302 "expression": {
30303 "argumentTypes": [
30304 {
30305 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
30306 "typeString": "contract UniswapV2Pair"
30307 }
30308 ],
30309 "id": 1692,
30310 "isConstant": false,
30311 "isLValue": false,
30312 "isPure": true,
30313 "lValueRequested": false,
30314 "nodeType": "ElementaryTypeNameExpression",
30315 "src": "9772:7:3",
30316 "typeDescriptions": {
30317 "typeIdentifier": "t_type$_t_address_$",
30318 "typeString": "type(address)"
30319 },
30320 "typeName": {
30321 "id": 1691,
30322 "name": "address",
30323 "nodeType": "ElementaryTypeName",
30324 "src": "9772:7:3",
30325 "typeDescriptions": {
30326 "typeIdentifier": null,
30327 "typeString": null
30328 }
30329 }
30330 },
30331 "id": 1694,
30332 "isConstant": false,
30333 "isLValue": false,
30334 "isPure": false,
30335 "kind": "typeConversion",
30336 "lValueRequested": false,
30337 "names": [],
30338 "nodeType": "FunctionCall",
30339 "src": "9772:13:3",
30340 "tryCall": false,
30341 "typeDescriptions": {
30342 "typeIdentifier": "t_address",
30343 "typeString": "address"
30344 }
30345 }
30346 ],
30347 "expression": {
30348 "argumentTypes": [
30349 {
30350 "typeIdentifier": "t_address",
30351 "typeString": "address"
30352 }
30353 ],
30354 "expression": {
30355 "argumentTypes": null,
30356 "arguments": [
30357 {
30358 "argumentTypes": null,
30359 "id": 1688,
30360 "name": "token0",
30361 "nodeType": "Identifier",
30362 "overloadedDeclarations": [],
30363 "referencedDeclaration": 679,
30364 "src": "9754:6:3",
30365 "typeDescriptions": {
30366 "typeIdentifier": "t_address",
30367 "typeString": "address"
30368 }
30369 }
30370 ],
30371 "expression": {
30372 "argumentTypes": [
30373 {
30374 "typeIdentifier": "t_address",
30375 "typeString": "address"
30376 }
30377 ],
30378 "id": 1687,
30379 "name": "IERC20Uniswap",
30380 "nodeType": "Identifier",
30381 "overloadedDeclarations": [],
30382 "referencedDeclaration": 1795,
30383 "src": "9740:13:3",
30384 "typeDescriptions": {
30385 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
30386 "typeString": "type(contract IERC20Uniswap)"
30387 }
30388 },
30389 "id": 1689,
30390 "isConstant": false,
30391 "isLValue": false,
30392 "isPure": false,
30393 "kind": "typeConversion",
30394 "lValueRequested": false,
30395 "names": [],
30396 "nodeType": "FunctionCall",
30397 "src": "9740:21:3",
30398 "tryCall": false,
30399 "typeDescriptions": {
30400 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
30401 "typeString": "contract IERC20Uniswap"
30402 }
30403 },
30404 "id": 1690,
30405 "isConstant": false,
30406 "isLValue": false,
30407 "isPure": false,
30408 "lValueRequested": false,
30409 "memberName": "balanceOf",
30410 "nodeType": "MemberAccess",
30411 "referencedDeclaration": 1756,
30412 "src": "9740:31:3",
30413 "typeDescriptions": {
30414 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
30415 "typeString": "function (address) view external returns (uint256)"
30416 }
30417 },
30418 "id": 1695,
30419 "isConstant": false,
30420 "isLValue": false,
30421 "isPure": false,
30422 "kind": "functionCall",
30423 "lValueRequested": false,
30424 "names": [],
30425 "nodeType": "FunctionCall",
30426 "src": "9740:46:3",
30427 "tryCall": false,
30428 "typeDescriptions": {
30429 "typeIdentifier": "t_uint256",
30430 "typeString": "uint256"
30431 }
30432 },
30433 {
30434 "argumentTypes": null,
30435 "arguments": [
30436 {
30437 "argumentTypes": null,
30438 "arguments": [
30439 {
30440 "argumentTypes": null,
30441 "id": 1702,
30442 "name": "this",
30443 "nodeType": "Identifier",
30444 "overloadedDeclarations": [],
30445 "referencedDeclaration": -28,
30446 "src": "9828:4:3",
30447 "typeDescriptions": {
30448 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
30449 "typeString": "contract UniswapV2Pair"
30450 }
30451 }
30452 ],
30453 "expression": {
30454 "argumentTypes": [
30455 {
30456 "typeIdentifier": "t_contract$_UniswapV2Pair_$1711",
30457 "typeString": "contract UniswapV2Pair"
30458 }
30459 ],
30460 "id": 1701,
30461 "isConstant": false,
30462 "isLValue": false,
30463 "isPure": true,
30464 "lValueRequested": false,
30465 "nodeType": "ElementaryTypeNameExpression",
30466 "src": "9820:7:3",
30467 "typeDescriptions": {
30468 "typeIdentifier": "t_type$_t_address_$",
30469 "typeString": "type(address)"
30470 },
30471 "typeName": {
30472 "id": 1700,
30473 "name": "address",
30474 "nodeType": "ElementaryTypeName",
30475 "src": "9820:7:3",
30476 "typeDescriptions": {
30477 "typeIdentifier": null,
30478 "typeString": null
30479 }
30480 }
30481 },
30482 "id": 1703,
30483 "isConstant": false,
30484 "isLValue": false,
30485 "isPure": false,
30486 "kind": "typeConversion",
30487 "lValueRequested": false,
30488 "names": [],
30489 "nodeType": "FunctionCall",
30490 "src": "9820:13:3",
30491 "tryCall": false,
30492 "typeDescriptions": {
30493 "typeIdentifier": "t_address",
30494 "typeString": "address"
30495 }
30496 }
30497 ],
30498 "expression": {
30499 "argumentTypes": [
30500 {
30501 "typeIdentifier": "t_address",
30502 "typeString": "address"
30503 }
30504 ],
30505 "expression": {
30506 "argumentTypes": null,
30507 "arguments": [
30508 {
30509 "argumentTypes": null,
30510 "id": 1697,
30511 "name": "token1",
30512 "nodeType": "Identifier",
30513 "overloadedDeclarations": [],
30514 "referencedDeclaration": 681,
30515 "src": "9802:6:3",
30516 "typeDescriptions": {
30517 "typeIdentifier": "t_address",
30518 "typeString": "address"
30519 }
30520 }
30521 ],
30522 "expression": {
30523 "argumentTypes": [
30524 {
30525 "typeIdentifier": "t_address",
30526 "typeString": "address"
30527 }
30528 ],
30529 "id": 1696,
30530 "name": "IERC20Uniswap",
30531 "nodeType": "Identifier",
30532 "overloadedDeclarations": [],
30533 "referencedDeclaration": 1795,
30534 "src": "9788:13:3",
30535 "typeDescriptions": {
30536 "typeIdentifier": "t_type$_t_contract$_IERC20Uniswap_$1795_$",
30537 "typeString": "type(contract IERC20Uniswap)"
30538 }
30539 },
30540 "id": 1698,
30541 "isConstant": false,
30542 "isLValue": false,
30543 "isPure": false,
30544 "kind": "typeConversion",
30545 "lValueRequested": false,
30546 "names": [],
30547 "nodeType": "FunctionCall",
30548 "src": "9788:21:3",
30549 "tryCall": false,
30550 "typeDescriptions": {
30551 "typeIdentifier": "t_contract$_IERC20Uniswap_$1795",
30552 "typeString": "contract IERC20Uniswap"
30553 }
30554 },
30555 "id": 1699,
30556 "isConstant": false,
30557 "isLValue": false,
30558 "isPure": false,
30559 "lValueRequested": false,
30560 "memberName": "balanceOf",
30561 "nodeType": "MemberAccess",
30562 "referencedDeclaration": 1756,
30563 "src": "9788:31:3",
30564 "typeDescriptions": {
30565 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
30566 "typeString": "function (address) view external returns (uint256)"
30567 }
30568 },
30569 "id": 1704,
30570 "isConstant": false,
30571 "isLValue": false,
30572 "isPure": false,
30573 "kind": "functionCall",
30574 "lValueRequested": false,
30575 "names": [],
30576 "nodeType": "FunctionCall",
30577 "src": "9788:46:3",
30578 "tryCall": false,
30579 "typeDescriptions": {
30580 "typeIdentifier": "t_uint256",
30581 "typeString": "uint256"
30582 }
30583 },
30584 {
30585 "argumentTypes": null,
30586 "id": 1705,
30587 "name": "reserve0",
30588 "nodeType": "Identifier",
30589 "overloadedDeclarations": [],
30590 "referencedDeclaration": 683,
30591 "src": "9836:8:3",
30592 "typeDescriptions": {
30593 "typeIdentifier": "t_uint112",
30594 "typeString": "uint112"
30595 }
30596 },
30597 {
30598 "argumentTypes": null,
30599 "id": 1706,
30600 "name": "reserve1",
30601 "nodeType": "Identifier",
30602 "overloadedDeclarations": [],
30603 "referencedDeclaration": 685,
30604 "src": "9846:8:3",
30605 "typeDescriptions": {
30606 "typeIdentifier": "t_uint112",
30607 "typeString": "uint112"
30608 }
30609 }
30610 ],
30611 "expression": {
30612 "argumentTypes": [
30613 {
30614 "typeIdentifier": "t_uint256",
30615 "typeString": "uint256"
30616 },
30617 {
30618 "typeIdentifier": "t_uint256",
30619 "typeString": "uint256"
30620 },
30621 {
30622 "typeIdentifier": "t_uint112",
30623 "typeString": "uint112"
30624 },
30625 {
30626 "typeIdentifier": "t_uint112",
30627 "typeString": "uint112"
30628 }
30629 ],
30630 "id": 1686,
30631 "name": "_update",
30632 "nodeType": "Identifier",
30633 "overloadedDeclarations": [],
30634 "referencedDeclaration": 966,
30635 "src": "9732:7:3",
30636 "typeDescriptions": {
30637 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
30638 "typeString": "function (uint256,uint256,uint112,uint112)"
30639 }
30640 },
30641 "id": 1707,
30642 "isConstant": false,
30643 "isLValue": false,
30644 "isPure": false,
30645 "kind": "functionCall",
30646 "lValueRequested": false,
30647 "names": [],
30648 "nodeType": "FunctionCall",
30649 "src": "9732:123:3",
30650 "tryCall": false,
30651 "typeDescriptions": {
30652 "typeIdentifier": "t_tuple$__$",
30653 "typeString": "tuple()"
30654 }
30655 },
30656 "id": 1708,
30657 "nodeType": "ExpressionStatement",
30658 "src": "9732:123:3"
30659 }
30660 ]
30661 },
30662 "documentation": null,
30663 "functionSelector": "fff6cae9",
30664 "id": 1710,
30665 "implemented": true,
30666 "kind": "function",
30667 "modifiers": [
30668 {
30669 "arguments": null,
30670 "id": 1684,
30671 "modifierName": {
30672 "argumentTypes": null,
30673 "id": 1683,
30674 "name": "lock",
30675 "nodeType": "Identifier",
30676 "overloadedDeclarations": [],
30677 "referencedDeclaration": 715,
30678 "src": "9717:4:3",
30679 "typeDescriptions": {
30680 "typeIdentifier": "t_modifier$__$",
30681 "typeString": "modifier ()"
30682 }
30683 },
30684 "nodeType": "ModifierInvocation",
30685 "src": "9717:4:3"
30686 }
30687 ],
30688 "name": "sync",
30689 "nodeType": "FunctionDefinition",
30690 "overrides": null,
30691 "parameters": {
30692 "id": 1682,
30693 "nodeType": "ParameterList",
30694 "parameters": [],
30695 "src": "9705:2:3"
30696 },
30697 "returnParameters": {
30698 "id": 1685,
30699 "nodeType": "ParameterList",
30700 "parameters": [],
30701 "src": "9722:0:3"
30702 },
30703 "scope": 1711,
30704 "src": "9692:170:3",
30705 "stateMutability": "nonpayable",
30706 "virtual": false,
30707 "visibility": "external"
30708 }
30709 ],
30710 "scope": 1712,
30711 "src": "292:9572:3"
30712 }
30713 ],
30714 "src": "37:9828:3"
30715 }
30716 },
30717 "contracts/interfaces/IERC20Uniswap.sol": {
30718 "id": 4,
30719 "AST": {
30720 "absolutePath": "contracts/interfaces/IERC20Uniswap.sol",
30721 "exportedSymbols": {
30722 "IERC20Uniswap": [
30723 1795
30724 ]
30725 },
30726 "id": 1796,
30727 "license": "GPL-3.0",
30728 "nodeType": "SourceUnit",
30729 "nodes": [
30730 {
30731 "id": 1713,
30732 "literals": [
30733 "solidity",
30734 "=",
30735 "0.6",
30736 ".12"
30737 ],
30738 "nodeType": "PragmaDirective",
30739 "src": "37:24:4"
30740 },
30741 {
30742 "abstract": false,
30743 "baseContracts": [],
30744 "contractDependencies": [],
30745 "contractKind": "interface",
30746 "documentation": null,
30747 "fullyImplemented": false,
30748 "id": 1795,
30749 "linearizedBaseContracts": [
30750 1795
30751 ],
30752 "name": "IERC20Uniswap",
30753 "nodeType": "ContractDefinition",
30754 "nodes": [
30755 {
30756 "anonymous": false,
30757 "documentation": null,
30758 "id": 1721,
30759 "name": "Approval",
30760 "nodeType": "EventDefinition",
30761 "parameters": {
30762 "id": 1720,
30763 "nodeType": "ParameterList",
30764 "parameters": [
30765 {
30766 "constant": false,
30767 "id": 1715,
30768 "indexed": true,
30769 "mutability": "mutable",
30770 "name": "owner",
30771 "nodeType": "VariableDeclaration",
30772 "overrides": null,
30773 "scope": 1721,
30774 "src": "108:21:4",
30775 "stateVariable": false,
30776 "storageLocation": "default",
30777 "typeDescriptions": {
30778 "typeIdentifier": "t_address",
30779 "typeString": "address"
30780 },
30781 "typeName": {
30782 "id": 1714,
30783 "name": "address",
30784 "nodeType": "ElementaryTypeName",
30785 "src": "108:7:4",
30786 "stateMutability": "nonpayable",
30787 "typeDescriptions": {
30788 "typeIdentifier": "t_address",
30789 "typeString": "address"
30790 }
30791 },
30792 "value": null,
30793 "visibility": "internal"
30794 },
30795 {
30796 "constant": false,
30797 "id": 1717,
30798 "indexed": true,
30799 "mutability": "mutable",
30800 "name": "spender",
30801 "nodeType": "VariableDeclaration",
30802 "overrides": null,
30803 "scope": 1721,
30804 "src": "131:23:4",
30805 "stateVariable": false,
30806 "storageLocation": "default",
30807 "typeDescriptions": {
30808 "typeIdentifier": "t_address",
30809 "typeString": "address"
30810 },
30811 "typeName": {
30812 "id": 1716,
30813 "name": "address",
30814 "nodeType": "ElementaryTypeName",
30815 "src": "131:7:4",
30816 "stateMutability": "nonpayable",
30817 "typeDescriptions": {
30818 "typeIdentifier": "t_address",
30819 "typeString": "address"
30820 }
30821 },
30822 "value": null,
30823 "visibility": "internal"
30824 },
30825 {
30826 "constant": false,
30827 "id": 1719,
30828 "indexed": false,
30829 "mutability": "mutable",
30830 "name": "value",
30831 "nodeType": "VariableDeclaration",
30832 "overrides": null,
30833 "scope": 1721,
30834 "src": "156:10:4",
30835 "stateVariable": false,
30836 "storageLocation": "default",
30837 "typeDescriptions": {
30838 "typeIdentifier": "t_uint256",
30839 "typeString": "uint256"
30840 },
30841 "typeName": {
30842 "id": 1718,
30843 "name": "uint",
30844 "nodeType": "ElementaryTypeName",
30845 "src": "156:4:4",
30846 "typeDescriptions": {
30847 "typeIdentifier": "t_uint256",
30848 "typeString": "uint256"
30849 }
30850 },
30851 "value": null,
30852 "visibility": "internal"
30853 }
30854 ],
30855 "src": "107:60:4"
30856 },
30857 "src": "93:75:4"
30858 },
30859 {
30860 "anonymous": false,
30861 "documentation": null,
30862 "id": 1729,
30863 "name": "Transfer",
30864 "nodeType": "EventDefinition",
30865 "parameters": {
30866 "id": 1728,
30867 "nodeType": "ParameterList",
30868 "parameters": [
30869 {
30870 "constant": false,
30871 "id": 1723,
30872 "indexed": true,
30873 "mutability": "mutable",
30874 "name": "from",
30875 "nodeType": "VariableDeclaration",
30876 "overrides": null,
30877 "scope": 1729,
30878 "src": "188:20:4",
30879 "stateVariable": false,
30880 "storageLocation": "default",
30881 "typeDescriptions": {
30882 "typeIdentifier": "t_address",
30883 "typeString": "address"
30884 },
30885 "typeName": {
30886 "id": 1722,
30887 "name": "address",
30888 "nodeType": "ElementaryTypeName",
30889 "src": "188:7:4",
30890 "stateMutability": "nonpayable",
30891 "typeDescriptions": {
30892 "typeIdentifier": "t_address",
30893 "typeString": "address"
30894 }
30895 },
30896 "value": null,
30897 "visibility": "internal"
30898 },
30899 {
30900 "constant": false,
30901 "id": 1725,
30902 "indexed": true,
30903 "mutability": "mutable",
30904 "name": "to",
30905 "nodeType": "VariableDeclaration",
30906 "overrides": null,
30907 "scope": 1729,
30908 "src": "210:18:4",
30909 "stateVariable": false,
30910 "storageLocation": "default",
30911 "typeDescriptions": {
30912 "typeIdentifier": "t_address",
30913 "typeString": "address"
30914 },
30915 "typeName": {
30916 "id": 1724,
30917 "name": "address",
30918 "nodeType": "ElementaryTypeName",
30919 "src": "210:7:4",
30920 "stateMutability": "nonpayable",
30921 "typeDescriptions": {
30922 "typeIdentifier": "t_address",
30923 "typeString": "address"
30924 }
30925 },
30926 "value": null,
30927 "visibility": "internal"
30928 },
30929 {
30930 "constant": false,
30931 "id": 1727,
30932 "indexed": false,
30933 "mutability": "mutable",
30934 "name": "value",
30935 "nodeType": "VariableDeclaration",
30936 "overrides": null,
30937 "scope": 1729,
30938 "src": "230:10:4",
30939 "stateVariable": false,
30940 "storageLocation": "default",
30941 "typeDescriptions": {
30942 "typeIdentifier": "t_uint256",
30943 "typeString": "uint256"
30944 },
30945 "typeName": {
30946 "id": 1726,
30947 "name": "uint",
30948 "nodeType": "ElementaryTypeName",
30949 "src": "230:4:4",
30950 "typeDescriptions": {
30951 "typeIdentifier": "t_uint256",
30952 "typeString": "uint256"
30953 }
30954 },
30955 "value": null,
30956 "visibility": "internal"
30957 }
30958 ],
30959 "src": "187:54:4"
30960 },
30961 "src": "173:69:4"
30962 },
30963 {
30964 "body": null,
30965 "documentation": null,
30966 "functionSelector": "06fdde03",
30967 "id": 1734,
30968 "implemented": false,
30969 "kind": "function",
30970 "modifiers": [],
30971 "name": "name",
30972 "nodeType": "FunctionDefinition",
30973 "overrides": null,
30974 "parameters": {
30975 "id": 1730,
30976 "nodeType": "ParameterList",
30977 "parameters": [],
30978 "src": "261:2:4"
30979 },
30980 "returnParameters": {
30981 "id": 1733,
30982 "nodeType": "ParameterList",
30983 "parameters": [
30984 {
30985 "constant": false,
30986 "id": 1732,
30987 "mutability": "mutable",
30988 "name": "",
30989 "nodeType": "VariableDeclaration",
30990 "overrides": null,
30991 "scope": 1734,
30992 "src": "287:13:4",
30993 "stateVariable": false,
30994 "storageLocation": "memory",
30995 "typeDescriptions": {
30996 "typeIdentifier": "t_string_memory_ptr",
30997 "typeString": "string"
30998 },
30999 "typeName": {
31000 "id": 1731,
31001 "name": "string",
31002 "nodeType": "ElementaryTypeName",
31003 "src": "287:6:4",
31004 "typeDescriptions": {
31005 "typeIdentifier": "t_string_storage_ptr",
31006 "typeString": "string"
31007 }
31008 },
31009 "value": null,
31010 "visibility": "internal"
31011 }
31012 ],
31013 "src": "286:15:4"
31014 },
31015 "scope": 1795,
31016 "src": "248:54:4",
31017 "stateMutability": "view",
31018 "virtual": false,
31019 "visibility": "external"
31020 },
31021 {
31022 "body": null,
31023 "documentation": null,
31024 "functionSelector": "95d89b41",
31025 "id": 1739,
31026 "implemented": false,
31027 "kind": "function",
31028 "modifiers": [],
31029 "name": "symbol",
31030 "nodeType": "FunctionDefinition",
31031 "overrides": null,
31032 "parameters": {
31033 "id": 1735,
31034 "nodeType": "ParameterList",
31035 "parameters": [],
31036 "src": "322:2:4"
31037 },
31038 "returnParameters": {
31039 "id": 1738,
31040 "nodeType": "ParameterList",
31041 "parameters": [
31042 {
31043 "constant": false,
31044 "id": 1737,
31045 "mutability": "mutable",
31046 "name": "",
31047 "nodeType": "VariableDeclaration",
31048 "overrides": null,
31049 "scope": 1739,
31050 "src": "348:13:4",
31051 "stateVariable": false,
31052 "storageLocation": "memory",
31053 "typeDescriptions": {
31054 "typeIdentifier": "t_string_memory_ptr",
31055 "typeString": "string"
31056 },
31057 "typeName": {
31058 "id": 1736,
31059 "name": "string",
31060 "nodeType": "ElementaryTypeName",
31061 "src": "348:6:4",
31062 "typeDescriptions": {
31063 "typeIdentifier": "t_string_storage_ptr",
31064 "typeString": "string"
31065 }
31066 },
31067 "value": null,
31068 "visibility": "internal"
31069 }
31070 ],
31071 "src": "347:15:4"
31072 },
31073 "scope": 1795,
31074 "src": "307:56:4",
31075 "stateMutability": "view",
31076 "virtual": false,
31077 "visibility": "external"
31078 },
31079 {
31080 "body": null,
31081 "documentation": null,
31082 "functionSelector": "313ce567",
31083 "id": 1744,
31084 "implemented": false,
31085 "kind": "function",
31086 "modifiers": [],
31087 "name": "decimals",
31088 "nodeType": "FunctionDefinition",
31089 "overrides": null,
31090 "parameters": {
31091 "id": 1740,
31092 "nodeType": "ParameterList",
31093 "parameters": [],
31094 "src": "385:2:4"
31095 },
31096 "returnParameters": {
31097 "id": 1743,
31098 "nodeType": "ParameterList",
31099 "parameters": [
31100 {
31101 "constant": false,
31102 "id": 1742,
31103 "mutability": "mutable",
31104 "name": "",
31105 "nodeType": "VariableDeclaration",
31106 "overrides": null,
31107 "scope": 1744,
31108 "src": "411:5:4",
31109 "stateVariable": false,
31110 "storageLocation": "default",
31111 "typeDescriptions": {
31112 "typeIdentifier": "t_uint8",
31113 "typeString": "uint8"
31114 },
31115 "typeName": {
31116 "id": 1741,
31117 "name": "uint8",
31118 "nodeType": "ElementaryTypeName",
31119 "src": "411:5:4",
31120 "typeDescriptions": {
31121 "typeIdentifier": "t_uint8",
31122 "typeString": "uint8"
31123 }
31124 },
31125 "value": null,
31126 "visibility": "internal"
31127 }
31128 ],
31129 "src": "410:7:4"
31130 },
31131 "scope": 1795,
31132 "src": "368:50:4",
31133 "stateMutability": "view",
31134 "virtual": false,
31135 "visibility": "external"
31136 },
31137 {
31138 "body": null,
31139 "documentation": null,
31140 "functionSelector": "18160ddd",
31141 "id": 1749,
31142 "implemented": false,
31143 "kind": "function",
31144 "modifiers": [],
31145 "name": "totalSupply",
31146 "nodeType": "FunctionDefinition",
31147 "overrides": null,
31148 "parameters": {
31149 "id": 1745,
31150 "nodeType": "ParameterList",
31151 "parameters": [],
31152 "src": "443:2:4"
31153 },
31154 "returnParameters": {
31155 "id": 1748,
31156 "nodeType": "ParameterList",
31157 "parameters": [
31158 {
31159 "constant": false,
31160 "id": 1747,
31161 "mutability": "mutable",
31162 "name": "",
31163 "nodeType": "VariableDeclaration",
31164 "overrides": null,
31165 "scope": 1749,
31166 "src": "469:4:4",
31167 "stateVariable": false,
31168 "storageLocation": "default",
31169 "typeDescriptions": {
31170 "typeIdentifier": "t_uint256",
31171 "typeString": "uint256"
31172 },
31173 "typeName": {
31174 "id": 1746,
31175 "name": "uint",
31176 "nodeType": "ElementaryTypeName",
31177 "src": "469:4:4",
31178 "typeDescriptions": {
31179 "typeIdentifier": "t_uint256",
31180 "typeString": "uint256"
31181 }
31182 },
31183 "value": null,
31184 "visibility": "internal"
31185 }
31186 ],
31187 "src": "468:6:4"
31188 },
31189 "scope": 1795,
31190 "src": "423:52:4",
31191 "stateMutability": "view",
31192 "virtual": false,
31193 "visibility": "external"
31194 },
31195 {
31196 "body": null,
31197 "documentation": null,
31198 "functionSelector": "70a08231",
31199 "id": 1756,
31200 "implemented": false,
31201 "kind": "function",
31202 "modifiers": [],
31203 "name": "balanceOf",
31204 "nodeType": "FunctionDefinition",
31205 "overrides": null,
31206 "parameters": {
31207 "id": 1752,
31208 "nodeType": "ParameterList",
31209 "parameters": [
31210 {
31211 "constant": false,
31212 "id": 1751,
31213 "mutability": "mutable",
31214 "name": "owner",
31215 "nodeType": "VariableDeclaration",
31216 "overrides": null,
31217 "scope": 1756,
31218 "src": "499:13:4",
31219 "stateVariable": false,
31220 "storageLocation": "default",
31221 "typeDescriptions": {
31222 "typeIdentifier": "t_address",
31223 "typeString": "address"
31224 },
31225 "typeName": {
31226 "id": 1750,
31227 "name": "address",
31228 "nodeType": "ElementaryTypeName",
31229 "src": "499:7:4",
31230 "stateMutability": "nonpayable",
31231 "typeDescriptions": {
31232 "typeIdentifier": "t_address",
31233 "typeString": "address"
31234 }
31235 },
31236 "value": null,
31237 "visibility": "internal"
31238 }
31239 ],
31240 "src": "498:15:4"
31241 },
31242 "returnParameters": {
31243 "id": 1755,
31244 "nodeType": "ParameterList",
31245 "parameters": [
31246 {
31247 "constant": false,
31248 "id": 1754,
31249 "mutability": "mutable",
31250 "name": "",
31251 "nodeType": "VariableDeclaration",
31252 "overrides": null,
31253 "scope": 1756,
31254 "src": "537:4:4",
31255 "stateVariable": false,
31256 "storageLocation": "default",
31257 "typeDescriptions": {
31258 "typeIdentifier": "t_uint256",
31259 "typeString": "uint256"
31260 },
31261 "typeName": {
31262 "id": 1753,
31263 "name": "uint",
31264 "nodeType": "ElementaryTypeName",
31265 "src": "537:4:4",
31266 "typeDescriptions": {
31267 "typeIdentifier": "t_uint256",
31268 "typeString": "uint256"
31269 }
31270 },
31271 "value": null,
31272 "visibility": "internal"
31273 }
31274 ],
31275 "src": "536:6:4"
31276 },
31277 "scope": 1795,
31278 "src": "480:63:4",
31279 "stateMutability": "view",
31280 "virtual": false,
31281 "visibility": "external"
31282 },
31283 {
31284 "body": null,
31285 "documentation": null,
31286 "functionSelector": "dd62ed3e",
31287 "id": 1765,
31288 "implemented": false,
31289 "kind": "function",
31290 "modifiers": [],
31291 "name": "allowance",
31292 "nodeType": "FunctionDefinition",
31293 "overrides": null,
31294 "parameters": {
31295 "id": 1761,
31296 "nodeType": "ParameterList",
31297 "parameters": [
31298 {
31299 "constant": false,
31300 "id": 1758,
31301 "mutability": "mutable",
31302 "name": "owner",
31303 "nodeType": "VariableDeclaration",
31304 "overrides": null,
31305 "scope": 1765,
31306 "src": "567:13:4",
31307 "stateVariable": false,
31308 "storageLocation": "default",
31309 "typeDescriptions": {
31310 "typeIdentifier": "t_address",
31311 "typeString": "address"
31312 },
31313 "typeName": {
31314 "id": 1757,
31315 "name": "address",
31316 "nodeType": "ElementaryTypeName",
31317 "src": "567:7:4",
31318 "stateMutability": "nonpayable",
31319 "typeDescriptions": {
31320 "typeIdentifier": "t_address",
31321 "typeString": "address"
31322 }
31323 },
31324 "value": null,
31325 "visibility": "internal"
31326 },
31327 {
31328 "constant": false,
31329 "id": 1760,
31330 "mutability": "mutable",
31331 "name": "spender",
31332 "nodeType": "VariableDeclaration",
31333 "overrides": null,
31334 "scope": 1765,
31335 "src": "582:15:4",
31336 "stateVariable": false,
31337 "storageLocation": "default",
31338 "typeDescriptions": {
31339 "typeIdentifier": "t_address",
31340 "typeString": "address"
31341 },
31342 "typeName": {
31343 "id": 1759,
31344 "name": "address",
31345 "nodeType": "ElementaryTypeName",
31346 "src": "582:7:4",
31347 "stateMutability": "nonpayable",
31348 "typeDescriptions": {
31349 "typeIdentifier": "t_address",
31350 "typeString": "address"
31351 }
31352 },
31353 "value": null,
31354 "visibility": "internal"
31355 }
31356 ],
31357 "src": "566:32:4"
31358 },
31359 "returnParameters": {
31360 "id": 1764,
31361 "nodeType": "ParameterList",
31362 "parameters": [
31363 {
31364 "constant": false,
31365 "id": 1763,
31366 "mutability": "mutable",
31367 "name": "",
31368 "nodeType": "VariableDeclaration",
31369 "overrides": null,
31370 "scope": 1765,
31371 "src": "622:4:4",
31372 "stateVariable": false,
31373 "storageLocation": "default",
31374 "typeDescriptions": {
31375 "typeIdentifier": "t_uint256",
31376 "typeString": "uint256"
31377 },
31378 "typeName": {
31379 "id": 1762,
31380 "name": "uint",
31381 "nodeType": "ElementaryTypeName",
31382 "src": "622:4:4",
31383 "typeDescriptions": {
31384 "typeIdentifier": "t_uint256",
31385 "typeString": "uint256"
31386 }
31387 },
31388 "value": null,
31389 "visibility": "internal"
31390 }
31391 ],
31392 "src": "621:6:4"
31393 },
31394 "scope": 1795,
31395 "src": "548:80:4",
31396 "stateMutability": "view",
31397 "virtual": false,
31398 "visibility": "external"
31399 },
31400 {
31401 "body": null,
31402 "documentation": null,
31403 "functionSelector": "095ea7b3",
31404 "id": 1774,
31405 "implemented": false,
31406 "kind": "function",
31407 "modifiers": [],
31408 "name": "approve",
31409 "nodeType": "FunctionDefinition",
31410 "overrides": null,
31411 "parameters": {
31412 "id": 1770,
31413 "nodeType": "ParameterList",
31414 "parameters": [
31415 {
31416 "constant": false,
31417 "id": 1767,
31418 "mutability": "mutable",
31419 "name": "spender",
31420 "nodeType": "VariableDeclaration",
31421 "overrides": null,
31422 "scope": 1774,
31423 "src": "651:15:4",
31424 "stateVariable": false,
31425 "storageLocation": "default",
31426 "typeDescriptions": {
31427 "typeIdentifier": "t_address",
31428 "typeString": "address"
31429 },
31430 "typeName": {
31431 "id": 1766,
31432 "name": "address",
31433 "nodeType": "ElementaryTypeName",
31434 "src": "651:7:4",
31435 "stateMutability": "nonpayable",
31436 "typeDescriptions": {
31437 "typeIdentifier": "t_address",
31438 "typeString": "address"
31439 }
31440 },
31441 "value": null,
31442 "visibility": "internal"
31443 },
31444 {
31445 "constant": false,
31446 "id": 1769,
31447 "mutability": "mutable",
31448 "name": "value",
31449 "nodeType": "VariableDeclaration",
31450 "overrides": null,
31451 "scope": 1774,
31452 "src": "668:10:4",
31453 "stateVariable": false,
31454 "storageLocation": "default",
31455 "typeDescriptions": {
31456 "typeIdentifier": "t_uint256",
31457 "typeString": "uint256"
31458 },
31459 "typeName": {
31460 "id": 1768,
31461 "name": "uint",
31462 "nodeType": "ElementaryTypeName",
31463 "src": "668:4:4",
31464 "typeDescriptions": {
31465 "typeIdentifier": "t_uint256",
31466 "typeString": "uint256"
31467 }
31468 },
31469 "value": null,
31470 "visibility": "internal"
31471 }
31472 ],
31473 "src": "650:29:4"
31474 },
31475 "returnParameters": {
31476 "id": 1773,
31477 "nodeType": "ParameterList",
31478 "parameters": [
31479 {
31480 "constant": false,
31481 "id": 1772,
31482 "mutability": "mutable",
31483 "name": "",
31484 "nodeType": "VariableDeclaration",
31485 "overrides": null,
31486 "scope": 1774,
31487 "src": "698:4:4",
31488 "stateVariable": false,
31489 "storageLocation": "default",
31490 "typeDescriptions": {
31491 "typeIdentifier": "t_bool",
31492 "typeString": "bool"
31493 },
31494 "typeName": {
31495 "id": 1771,
31496 "name": "bool",
31497 "nodeType": "ElementaryTypeName",
31498 "src": "698:4:4",
31499 "typeDescriptions": {
31500 "typeIdentifier": "t_bool",
31501 "typeString": "bool"
31502 }
31503 },
31504 "value": null,
31505 "visibility": "internal"
31506 }
31507 ],
31508 "src": "697:6:4"
31509 },
31510 "scope": 1795,
31511 "src": "634:70:4",
31512 "stateMutability": "nonpayable",
31513 "virtual": false,
31514 "visibility": "external"
31515 },
31516 {
31517 "body": null,
31518 "documentation": null,
31519 "functionSelector": "a9059cbb",
31520 "id": 1783,
31521 "implemented": false,
31522 "kind": "function",
31523 "modifiers": [],
31524 "name": "transfer",
31525 "nodeType": "FunctionDefinition",
31526 "overrides": null,
31527 "parameters": {
31528 "id": 1779,
31529 "nodeType": "ParameterList",
31530 "parameters": [
31531 {
31532 "constant": false,
31533 "id": 1776,
31534 "mutability": "mutable",
31535 "name": "to",
31536 "nodeType": "VariableDeclaration",
31537 "overrides": null,
31538 "scope": 1783,
31539 "src": "727:10:4",
31540 "stateVariable": false,
31541 "storageLocation": "default",
31542 "typeDescriptions": {
31543 "typeIdentifier": "t_address",
31544 "typeString": "address"
31545 },
31546 "typeName": {
31547 "id": 1775,
31548 "name": "address",
31549 "nodeType": "ElementaryTypeName",
31550 "src": "727:7:4",
31551 "stateMutability": "nonpayable",
31552 "typeDescriptions": {
31553 "typeIdentifier": "t_address",
31554 "typeString": "address"
31555 }
31556 },
31557 "value": null,
31558 "visibility": "internal"
31559 },
31560 {
31561 "constant": false,
31562 "id": 1778,
31563 "mutability": "mutable",
31564 "name": "value",
31565 "nodeType": "VariableDeclaration",
31566 "overrides": null,
31567 "scope": 1783,
31568 "src": "739:10:4",
31569 "stateVariable": false,
31570 "storageLocation": "default",
31571 "typeDescriptions": {
31572 "typeIdentifier": "t_uint256",
31573 "typeString": "uint256"
31574 },
31575 "typeName": {
31576 "id": 1777,
31577 "name": "uint",
31578 "nodeType": "ElementaryTypeName",
31579 "src": "739:4:4",
31580 "typeDescriptions": {
31581 "typeIdentifier": "t_uint256",
31582 "typeString": "uint256"
31583 }
31584 },
31585 "value": null,
31586 "visibility": "internal"
31587 }
31588 ],
31589 "src": "726:24:4"
31590 },
31591 "returnParameters": {
31592 "id": 1782,
31593 "nodeType": "ParameterList",
31594 "parameters": [
31595 {
31596 "constant": false,
31597 "id": 1781,
31598 "mutability": "mutable",
31599 "name": "",
31600 "nodeType": "VariableDeclaration",
31601 "overrides": null,
31602 "scope": 1783,
31603 "src": "769:4:4",
31604 "stateVariable": false,
31605 "storageLocation": "default",
31606 "typeDescriptions": {
31607 "typeIdentifier": "t_bool",
31608 "typeString": "bool"
31609 },
31610 "typeName": {
31611 "id": 1780,
31612 "name": "bool",
31613 "nodeType": "ElementaryTypeName",
31614 "src": "769:4:4",
31615 "typeDescriptions": {
31616 "typeIdentifier": "t_bool",
31617 "typeString": "bool"
31618 }
31619 },
31620 "value": null,
31621 "visibility": "internal"
31622 }
31623 ],
31624 "src": "768:6:4"
31625 },
31626 "scope": 1795,
31627 "src": "709:66:4",
31628 "stateMutability": "nonpayable",
31629 "virtual": false,
31630 "visibility": "external"
31631 },
31632 {
31633 "body": null,
31634 "documentation": null,
31635 "functionSelector": "23b872dd",
31636 "id": 1794,
31637 "implemented": false,
31638 "kind": "function",
31639 "modifiers": [],
31640 "name": "transferFrom",
31641 "nodeType": "FunctionDefinition",
31642 "overrides": null,
31643 "parameters": {
31644 "id": 1790,
31645 "nodeType": "ParameterList",
31646 "parameters": [
31647 {
31648 "constant": false,
31649 "id": 1785,
31650 "mutability": "mutable",
31651 "name": "from",
31652 "nodeType": "VariableDeclaration",
31653 "overrides": null,
31654 "scope": 1794,
31655 "src": "802:12:4",
31656 "stateVariable": false,
31657 "storageLocation": "default",
31658 "typeDescriptions": {
31659 "typeIdentifier": "t_address",
31660 "typeString": "address"
31661 },
31662 "typeName": {
31663 "id": 1784,
31664 "name": "address",
31665 "nodeType": "ElementaryTypeName",
31666 "src": "802:7:4",
31667 "stateMutability": "nonpayable",
31668 "typeDescriptions": {
31669 "typeIdentifier": "t_address",
31670 "typeString": "address"
31671 }
31672 },
31673 "value": null,
31674 "visibility": "internal"
31675 },
31676 {
31677 "constant": false,
31678 "id": 1787,
31679 "mutability": "mutable",
31680 "name": "to",
31681 "nodeType": "VariableDeclaration",
31682 "overrides": null,
31683 "scope": 1794,
31684 "src": "816:10:4",
31685 "stateVariable": false,
31686 "storageLocation": "default",
31687 "typeDescriptions": {
31688 "typeIdentifier": "t_address",
31689 "typeString": "address"
31690 },
31691 "typeName": {
31692 "id": 1786,
31693 "name": "address",
31694 "nodeType": "ElementaryTypeName",
31695 "src": "816:7:4",
31696 "stateMutability": "nonpayable",
31697 "typeDescriptions": {
31698 "typeIdentifier": "t_address",
31699 "typeString": "address"
31700 }
31701 },
31702 "value": null,
31703 "visibility": "internal"
31704 },
31705 {
31706 "constant": false,
31707 "id": 1789,
31708 "mutability": "mutable",
31709 "name": "value",
31710 "nodeType": "VariableDeclaration",
31711 "overrides": null,
31712 "scope": 1794,
31713 "src": "828:10:4",
31714 "stateVariable": false,
31715 "storageLocation": "default",
31716 "typeDescriptions": {
31717 "typeIdentifier": "t_uint256",
31718 "typeString": "uint256"
31719 },
31720 "typeName": {
31721 "id": 1788,
31722 "name": "uint",
31723 "nodeType": "ElementaryTypeName",
31724 "src": "828:4:4",
31725 "typeDescriptions": {
31726 "typeIdentifier": "t_uint256",
31727 "typeString": "uint256"
31728 }
31729 },
31730 "value": null,
31731 "visibility": "internal"
31732 }
31733 ],
31734 "src": "801:38:4"
31735 },
31736 "returnParameters": {
31737 "id": 1793,
31738 "nodeType": "ParameterList",
31739 "parameters": [
31740 {
31741 "constant": false,
31742 "id": 1792,
31743 "mutability": "mutable",
31744 "name": "",
31745 "nodeType": "VariableDeclaration",
31746 "overrides": null,
31747 "scope": 1794,
31748 "src": "858:4:4",
31749 "stateVariable": false,
31750 "storageLocation": "default",
31751 "typeDescriptions": {
31752 "typeIdentifier": "t_bool",
31753 "typeString": "bool"
31754 },
31755 "typeName": {
31756 "id": 1791,
31757 "name": "bool",
31758 "nodeType": "ElementaryTypeName",
31759 "src": "858:4:4",
31760 "typeDescriptions": {
31761 "typeIdentifier": "t_bool",
31762 "typeString": "bool"
31763 }
31764 },
31765 "value": null,
31766 "visibility": "internal"
31767 }
31768 ],
31769 "src": "857:6:4"
31770 },
31771 "scope": 1795,
31772 "src": "780:84:4",
31773 "stateMutability": "nonpayable",
31774 "virtual": false,
31775 "visibility": "external"
31776 }
31777 ],
31778 "scope": 1796,
31779 "src": "63:803:4"
31780 }
31781 ],
31782 "src": "37:830:4"
31783 }
31784 },
31785 "contracts/interfaces/IUniswapV2Callee.sol": {
31786 "id": 5,
31787 "AST": {
31788 "absolutePath": "contracts/interfaces/IUniswapV2Callee.sol",
31789 "exportedSymbols": {
31790 "IUniswapV2Callee": [
31791 1809
31792 ]
31793 },
31794 "id": 1810,
31795 "license": "GPL-3.0",
31796 "nodeType": "SourceUnit",
31797 "nodes": [
31798 {
31799 "id": 1797,
31800 "literals": [
31801 "solidity",
31802 "=",
31803 "0.6",
31804 ".12"
31805 ],
31806 "nodeType": "PragmaDirective",
31807 "src": "37:24:5"
31808 },
31809 {
31810 "abstract": false,
31811 "baseContracts": [],
31812 "contractDependencies": [],
31813 "contractKind": "interface",
31814 "documentation": null,
31815 "fullyImplemented": false,
31816 "id": 1809,
31817 "linearizedBaseContracts": [
31818 1809
31819 ],
31820 "name": "IUniswapV2Callee",
31821 "nodeType": "ContractDefinition",
31822 "nodes": [
31823 {
31824 "body": null,
31825 "documentation": null,
31826 "functionSelector": "10d1e85c",
31827 "id": 1808,
31828 "implemented": false,
31829 "kind": "function",
31830 "modifiers": [],
31831 "name": "uniswapV2Call",
31832 "nodeType": "FunctionDefinition",
31833 "overrides": null,
31834 "parameters": {
31835 "id": 1806,
31836 "nodeType": "ParameterList",
31837 "parameters": [
31838 {
31839 "constant": false,
31840 "id": 1799,
31841 "mutability": "mutable",
31842 "name": "sender",
31843 "nodeType": "VariableDeclaration",
31844 "overrides": null,
31845 "scope": 1808,
31846 "src": "119:14:5",
31847 "stateVariable": false,
31848 "storageLocation": "default",
31849 "typeDescriptions": {
31850 "typeIdentifier": "t_address",
31851 "typeString": "address"
31852 },
31853 "typeName": {
31854 "id": 1798,
31855 "name": "address",
31856 "nodeType": "ElementaryTypeName",
31857 "src": "119:7:5",
31858 "stateMutability": "nonpayable",
31859 "typeDescriptions": {
31860 "typeIdentifier": "t_address",
31861 "typeString": "address"
31862 }
31863 },
31864 "value": null,
31865 "visibility": "internal"
31866 },
31867 {
31868 "constant": false,
31869 "id": 1801,
31870 "mutability": "mutable",
31871 "name": "amount0",
31872 "nodeType": "VariableDeclaration",
31873 "overrides": null,
31874 "scope": 1808,
31875 "src": "135:12:5",
31876 "stateVariable": false,
31877 "storageLocation": "default",
31878 "typeDescriptions": {
31879 "typeIdentifier": "t_uint256",
31880 "typeString": "uint256"
31881 },
31882 "typeName": {
31883 "id": 1800,
31884 "name": "uint",
31885 "nodeType": "ElementaryTypeName",
31886 "src": "135:4:5",
31887 "typeDescriptions": {
31888 "typeIdentifier": "t_uint256",
31889 "typeString": "uint256"
31890 }
31891 },
31892 "value": null,
31893 "visibility": "internal"
31894 },
31895 {
31896 "constant": false,
31897 "id": 1803,
31898 "mutability": "mutable",
31899 "name": "amount1",
31900 "nodeType": "VariableDeclaration",
31901 "overrides": null,
31902 "scope": 1808,
31903 "src": "149:12:5",
31904 "stateVariable": false,
31905 "storageLocation": "default",
31906 "typeDescriptions": {
31907 "typeIdentifier": "t_uint256",
31908 "typeString": "uint256"
31909 },
31910 "typeName": {
31911 "id": 1802,
31912 "name": "uint",
31913 "nodeType": "ElementaryTypeName",
31914 "src": "149:4:5",
31915 "typeDescriptions": {
31916 "typeIdentifier": "t_uint256",
31917 "typeString": "uint256"
31918 }
31919 },
31920 "value": null,
31921 "visibility": "internal"
31922 },
31923 {
31924 "constant": false,
31925 "id": 1805,
31926 "mutability": "mutable",
31927 "name": "data",
31928 "nodeType": "VariableDeclaration",
31929 "overrides": null,
31930 "scope": 1808,
31931 "src": "163:19:5",
31932 "stateVariable": false,
31933 "storageLocation": "calldata",
31934 "typeDescriptions": {
31935 "typeIdentifier": "t_bytes_calldata_ptr",
31936 "typeString": "bytes"
31937 },
31938 "typeName": {
31939 "id": 1804,
31940 "name": "bytes",
31941 "nodeType": "ElementaryTypeName",
31942 "src": "163:5:5",
31943 "typeDescriptions": {
31944 "typeIdentifier": "t_bytes_storage_ptr",
31945 "typeString": "bytes"
31946 }
31947 },
31948 "value": null,
31949 "visibility": "internal"
31950 }
31951 ],
31952 "src": "118:65:5"
31953 },
31954 "returnParameters": {
31955 "id": 1807,
31956 "nodeType": "ParameterList",
31957 "parameters": [],
31958 "src": "192:0:5"
31959 },
31960 "scope": 1809,
31961 "src": "96:97:5",
31962 "stateMutability": "nonpayable",
31963 "virtual": false,
31964 "visibility": "external"
31965 }
31966 ],
31967 "scope": 1810,
31968 "src": "63:132:5"
31969 }
31970 ],
31971 "src": "37:159:5"
31972 }
31973 },
31974 "contracts/interfaces/IUniswapV2ERC20.sol": {
31975 "id": 6,
31976 "AST": {
31977 "absolutePath": "contracts/interfaces/IUniswapV2ERC20.sol",
31978 "exportedSymbols": {
31979 "IUniswapV2ERC20": [
31980 1927
31981 ]
31982 },
31983 "id": 1928,
31984 "license": "GPL-3.0",
31985 "nodeType": "SourceUnit",
31986 "nodes": [
31987 {
31988 "id": 1811,
31989 "literals": [
31990 "solidity",
31991 "=",
31992 "0.6",
31993 ".12"
31994 ],
31995 "nodeType": "PragmaDirective",
31996 "src": "37:24:6"
31997 },
31998 {
31999 "abstract": false,
32000 "baseContracts": [],
32001 "contractDependencies": [],
32002 "contractKind": "interface",
32003 "documentation": null,
32004 "fullyImplemented": false,
32005 "id": 1927,
32006 "linearizedBaseContracts": [
32007 1927
32008 ],
32009 "name": "IUniswapV2ERC20",
32010 "nodeType": "ContractDefinition",
32011 "nodes": [
32012 {
32013 "anonymous": false,
32014 "documentation": null,
32015 "id": 1819,
32016 "name": "Approval",
32017 "nodeType": "EventDefinition",
32018 "parameters": {
32019 "id": 1818,
32020 "nodeType": "ParameterList",
32021 "parameters": [
32022 {
32023 "constant": false,
32024 "id": 1813,
32025 "indexed": true,
32026 "mutability": "mutable",
32027 "name": "owner",
32028 "nodeType": "VariableDeclaration",
32029 "overrides": null,
32030 "scope": 1819,
32031 "src": "110:21:6",
32032 "stateVariable": false,
32033 "storageLocation": "default",
32034 "typeDescriptions": {
32035 "typeIdentifier": "t_address",
32036 "typeString": "address"
32037 },
32038 "typeName": {
32039 "id": 1812,
32040 "name": "address",
32041 "nodeType": "ElementaryTypeName",
32042 "src": "110:7:6",
32043 "stateMutability": "nonpayable",
32044 "typeDescriptions": {
32045 "typeIdentifier": "t_address",
32046 "typeString": "address"
32047 }
32048 },
32049 "value": null,
32050 "visibility": "internal"
32051 },
32052 {
32053 "constant": false,
32054 "id": 1815,
32055 "indexed": true,
32056 "mutability": "mutable",
32057 "name": "spender",
32058 "nodeType": "VariableDeclaration",
32059 "overrides": null,
32060 "scope": 1819,
32061 "src": "133:23:6",
32062 "stateVariable": false,
32063 "storageLocation": "default",
32064 "typeDescriptions": {
32065 "typeIdentifier": "t_address",
32066 "typeString": "address"
32067 },
32068 "typeName": {
32069 "id": 1814,
32070 "name": "address",
32071 "nodeType": "ElementaryTypeName",
32072 "src": "133:7:6",
32073 "stateMutability": "nonpayable",
32074 "typeDescriptions": {
32075 "typeIdentifier": "t_address",
32076 "typeString": "address"
32077 }
32078 },
32079 "value": null,
32080 "visibility": "internal"
32081 },
32082 {
32083 "constant": false,
32084 "id": 1817,
32085 "indexed": false,
32086 "mutability": "mutable",
32087 "name": "value",
32088 "nodeType": "VariableDeclaration",
32089 "overrides": null,
32090 "scope": 1819,
32091 "src": "158:10:6",
32092 "stateVariable": false,
32093 "storageLocation": "default",
32094 "typeDescriptions": {
32095 "typeIdentifier": "t_uint256",
32096 "typeString": "uint256"
32097 },
32098 "typeName": {
32099 "id": 1816,
32100 "name": "uint",
32101 "nodeType": "ElementaryTypeName",
32102 "src": "158:4:6",
32103 "typeDescriptions": {
32104 "typeIdentifier": "t_uint256",
32105 "typeString": "uint256"
32106 }
32107 },
32108 "value": null,
32109 "visibility": "internal"
32110 }
32111 ],
32112 "src": "109:60:6"
32113 },
32114 "src": "95:75:6"
32115 },
32116 {
32117 "anonymous": false,
32118 "documentation": null,
32119 "id": 1827,
32120 "name": "Transfer",
32121 "nodeType": "EventDefinition",
32122 "parameters": {
32123 "id": 1826,
32124 "nodeType": "ParameterList",
32125 "parameters": [
32126 {
32127 "constant": false,
32128 "id": 1821,
32129 "indexed": true,
32130 "mutability": "mutable",
32131 "name": "from",
32132 "nodeType": "VariableDeclaration",
32133 "overrides": null,
32134 "scope": 1827,
32135 "src": "190:20:6",
32136 "stateVariable": false,
32137 "storageLocation": "default",
32138 "typeDescriptions": {
32139 "typeIdentifier": "t_address",
32140 "typeString": "address"
32141 },
32142 "typeName": {
32143 "id": 1820,
32144 "name": "address",
32145 "nodeType": "ElementaryTypeName",
32146 "src": "190:7:6",
32147 "stateMutability": "nonpayable",
32148 "typeDescriptions": {
32149 "typeIdentifier": "t_address",
32150 "typeString": "address"
32151 }
32152 },
32153 "value": null,
32154 "visibility": "internal"
32155 },
32156 {
32157 "constant": false,
32158 "id": 1823,
32159 "indexed": true,
32160 "mutability": "mutable",
32161 "name": "to",
32162 "nodeType": "VariableDeclaration",
32163 "overrides": null,
32164 "scope": 1827,
32165 "src": "212:18:6",
32166 "stateVariable": false,
32167 "storageLocation": "default",
32168 "typeDescriptions": {
32169 "typeIdentifier": "t_address",
32170 "typeString": "address"
32171 },
32172 "typeName": {
32173 "id": 1822,
32174 "name": "address",
32175 "nodeType": "ElementaryTypeName",
32176 "src": "212:7:6",
32177 "stateMutability": "nonpayable",
32178 "typeDescriptions": {
32179 "typeIdentifier": "t_address",
32180 "typeString": "address"
32181 }
32182 },
32183 "value": null,
32184 "visibility": "internal"
32185 },
32186 {
32187 "constant": false,
32188 "id": 1825,
32189 "indexed": false,
32190 "mutability": "mutable",
32191 "name": "value",
32192 "nodeType": "VariableDeclaration",
32193 "overrides": null,
32194 "scope": 1827,
32195 "src": "232:10:6",
32196 "stateVariable": false,
32197 "storageLocation": "default",
32198 "typeDescriptions": {
32199 "typeIdentifier": "t_uint256",
32200 "typeString": "uint256"
32201 },
32202 "typeName": {
32203 "id": 1824,
32204 "name": "uint",
32205 "nodeType": "ElementaryTypeName",
32206 "src": "232:4:6",
32207 "typeDescriptions": {
32208 "typeIdentifier": "t_uint256",
32209 "typeString": "uint256"
32210 }
32211 },
32212 "value": null,
32213 "visibility": "internal"
32214 }
32215 ],
32216 "src": "189:54:6"
32217 },
32218 "src": "175:69:6"
32219 },
32220 {
32221 "body": null,
32222 "documentation": null,
32223 "functionSelector": "06fdde03",
32224 "id": 1832,
32225 "implemented": false,
32226 "kind": "function",
32227 "modifiers": [],
32228 "name": "name",
32229 "nodeType": "FunctionDefinition",
32230 "overrides": null,
32231 "parameters": {
32232 "id": 1828,
32233 "nodeType": "ParameterList",
32234 "parameters": [],
32235 "src": "263:2:6"
32236 },
32237 "returnParameters": {
32238 "id": 1831,
32239 "nodeType": "ParameterList",
32240 "parameters": [
32241 {
32242 "constant": false,
32243 "id": 1830,
32244 "mutability": "mutable",
32245 "name": "",
32246 "nodeType": "VariableDeclaration",
32247 "overrides": null,
32248 "scope": 1832,
32249 "src": "289:13:6",
32250 "stateVariable": false,
32251 "storageLocation": "memory",
32252 "typeDescriptions": {
32253 "typeIdentifier": "t_string_memory_ptr",
32254 "typeString": "string"
32255 },
32256 "typeName": {
32257 "id": 1829,
32258 "name": "string",
32259 "nodeType": "ElementaryTypeName",
32260 "src": "289:6:6",
32261 "typeDescriptions": {
32262 "typeIdentifier": "t_string_storage_ptr",
32263 "typeString": "string"
32264 }
32265 },
32266 "value": null,
32267 "visibility": "internal"
32268 }
32269 ],
32270 "src": "288:15:6"
32271 },
32272 "scope": 1927,
32273 "src": "250:54:6",
32274 "stateMutability": "pure",
32275 "virtual": false,
32276 "visibility": "external"
32277 },
32278 {
32279 "body": null,
32280 "documentation": null,
32281 "functionSelector": "95d89b41",
32282 "id": 1837,
32283 "implemented": false,
32284 "kind": "function",
32285 "modifiers": [],
32286 "name": "symbol",
32287 "nodeType": "FunctionDefinition",
32288 "overrides": null,
32289 "parameters": {
32290 "id": 1833,
32291 "nodeType": "ParameterList",
32292 "parameters": [],
32293 "src": "324:2:6"
32294 },
32295 "returnParameters": {
32296 "id": 1836,
32297 "nodeType": "ParameterList",
32298 "parameters": [
32299 {
32300 "constant": false,
32301 "id": 1835,
32302 "mutability": "mutable",
32303 "name": "",
32304 "nodeType": "VariableDeclaration",
32305 "overrides": null,
32306 "scope": 1837,
32307 "src": "350:13:6",
32308 "stateVariable": false,
32309 "storageLocation": "memory",
32310 "typeDescriptions": {
32311 "typeIdentifier": "t_string_memory_ptr",
32312 "typeString": "string"
32313 },
32314 "typeName": {
32315 "id": 1834,
32316 "name": "string",
32317 "nodeType": "ElementaryTypeName",
32318 "src": "350:6:6",
32319 "typeDescriptions": {
32320 "typeIdentifier": "t_string_storage_ptr",
32321 "typeString": "string"
32322 }
32323 },
32324 "value": null,
32325 "visibility": "internal"
32326 }
32327 ],
32328 "src": "349:15:6"
32329 },
32330 "scope": 1927,
32331 "src": "309:56:6",
32332 "stateMutability": "pure",
32333 "virtual": false,
32334 "visibility": "external"
32335 },
32336 {
32337 "body": null,
32338 "documentation": null,
32339 "functionSelector": "313ce567",
32340 "id": 1842,
32341 "implemented": false,
32342 "kind": "function",
32343 "modifiers": [],
32344 "name": "decimals",
32345 "nodeType": "FunctionDefinition",
32346 "overrides": null,
32347 "parameters": {
32348 "id": 1838,
32349 "nodeType": "ParameterList",
32350 "parameters": [],
32351 "src": "387:2:6"
32352 },
32353 "returnParameters": {
32354 "id": 1841,
32355 "nodeType": "ParameterList",
32356 "parameters": [
32357 {
32358 "constant": false,
32359 "id": 1840,
32360 "mutability": "mutable",
32361 "name": "",
32362 "nodeType": "VariableDeclaration",
32363 "overrides": null,
32364 "scope": 1842,
32365 "src": "413:5:6",
32366 "stateVariable": false,
32367 "storageLocation": "default",
32368 "typeDescriptions": {
32369 "typeIdentifier": "t_uint8",
32370 "typeString": "uint8"
32371 },
32372 "typeName": {
32373 "id": 1839,
32374 "name": "uint8",
32375 "nodeType": "ElementaryTypeName",
32376 "src": "413:5:6",
32377 "typeDescriptions": {
32378 "typeIdentifier": "t_uint8",
32379 "typeString": "uint8"
32380 }
32381 },
32382 "value": null,
32383 "visibility": "internal"
32384 }
32385 ],
32386 "src": "412:7:6"
32387 },
32388 "scope": 1927,
32389 "src": "370:50:6",
32390 "stateMutability": "pure",
32391 "virtual": false,
32392 "visibility": "external"
32393 },
32394 {
32395 "body": null,
32396 "documentation": null,
32397 "functionSelector": "18160ddd",
32398 "id": 1847,
32399 "implemented": false,
32400 "kind": "function",
32401 "modifiers": [],
32402 "name": "totalSupply",
32403 "nodeType": "FunctionDefinition",
32404 "overrides": null,
32405 "parameters": {
32406 "id": 1843,
32407 "nodeType": "ParameterList",
32408 "parameters": [],
32409 "src": "445:2:6"
32410 },
32411 "returnParameters": {
32412 "id": 1846,
32413 "nodeType": "ParameterList",
32414 "parameters": [
32415 {
32416 "constant": false,
32417 "id": 1845,
32418 "mutability": "mutable",
32419 "name": "",
32420 "nodeType": "VariableDeclaration",
32421 "overrides": null,
32422 "scope": 1847,
32423 "src": "471:4:6",
32424 "stateVariable": false,
32425 "storageLocation": "default",
32426 "typeDescriptions": {
32427 "typeIdentifier": "t_uint256",
32428 "typeString": "uint256"
32429 },
32430 "typeName": {
32431 "id": 1844,
32432 "name": "uint",
32433 "nodeType": "ElementaryTypeName",
32434 "src": "471:4:6",
32435 "typeDescriptions": {
32436 "typeIdentifier": "t_uint256",
32437 "typeString": "uint256"
32438 }
32439 },
32440 "value": null,
32441 "visibility": "internal"
32442 }
32443 ],
32444 "src": "470:6:6"
32445 },
32446 "scope": 1927,
32447 "src": "425:52:6",
32448 "stateMutability": "view",
32449 "virtual": false,
32450 "visibility": "external"
32451 },
32452 {
32453 "body": null,
32454 "documentation": null,
32455 "functionSelector": "70a08231",
32456 "id": 1854,
32457 "implemented": false,
32458 "kind": "function",
32459 "modifiers": [],
32460 "name": "balanceOf",
32461 "nodeType": "FunctionDefinition",
32462 "overrides": null,
32463 "parameters": {
32464 "id": 1850,
32465 "nodeType": "ParameterList",
32466 "parameters": [
32467 {
32468 "constant": false,
32469 "id": 1849,
32470 "mutability": "mutable",
32471 "name": "owner",
32472 "nodeType": "VariableDeclaration",
32473 "overrides": null,
32474 "scope": 1854,
32475 "src": "501:13:6",
32476 "stateVariable": false,
32477 "storageLocation": "default",
32478 "typeDescriptions": {
32479 "typeIdentifier": "t_address",
32480 "typeString": "address"
32481 },
32482 "typeName": {
32483 "id": 1848,
32484 "name": "address",
32485 "nodeType": "ElementaryTypeName",
32486 "src": "501:7:6",
32487 "stateMutability": "nonpayable",
32488 "typeDescriptions": {
32489 "typeIdentifier": "t_address",
32490 "typeString": "address"
32491 }
32492 },
32493 "value": null,
32494 "visibility": "internal"
32495 }
32496 ],
32497 "src": "500:15:6"
32498 },
32499 "returnParameters": {
32500 "id": 1853,
32501 "nodeType": "ParameterList",
32502 "parameters": [
32503 {
32504 "constant": false,
32505 "id": 1852,
32506 "mutability": "mutable",
32507 "name": "",
32508 "nodeType": "VariableDeclaration",
32509 "overrides": null,
32510 "scope": 1854,
32511 "src": "539:4:6",
32512 "stateVariable": false,
32513 "storageLocation": "default",
32514 "typeDescriptions": {
32515 "typeIdentifier": "t_uint256",
32516 "typeString": "uint256"
32517 },
32518 "typeName": {
32519 "id": 1851,
32520 "name": "uint",
32521 "nodeType": "ElementaryTypeName",
32522 "src": "539:4:6",
32523 "typeDescriptions": {
32524 "typeIdentifier": "t_uint256",
32525 "typeString": "uint256"
32526 }
32527 },
32528 "value": null,
32529 "visibility": "internal"
32530 }
32531 ],
32532 "src": "538:6:6"
32533 },
32534 "scope": 1927,
32535 "src": "482:63:6",
32536 "stateMutability": "view",
32537 "virtual": false,
32538 "visibility": "external"
32539 },
32540 {
32541 "body": null,
32542 "documentation": null,
32543 "functionSelector": "dd62ed3e",
32544 "id": 1863,
32545 "implemented": false,
32546 "kind": "function",
32547 "modifiers": [],
32548 "name": "allowance",
32549 "nodeType": "FunctionDefinition",
32550 "overrides": null,
32551 "parameters": {
32552 "id": 1859,
32553 "nodeType": "ParameterList",
32554 "parameters": [
32555 {
32556 "constant": false,
32557 "id": 1856,
32558 "mutability": "mutable",
32559 "name": "owner",
32560 "nodeType": "VariableDeclaration",
32561 "overrides": null,
32562 "scope": 1863,
32563 "src": "569:13:6",
32564 "stateVariable": false,
32565 "storageLocation": "default",
32566 "typeDescriptions": {
32567 "typeIdentifier": "t_address",
32568 "typeString": "address"
32569 },
32570 "typeName": {
32571 "id": 1855,
32572 "name": "address",
32573 "nodeType": "ElementaryTypeName",
32574 "src": "569:7:6",
32575 "stateMutability": "nonpayable",
32576 "typeDescriptions": {
32577 "typeIdentifier": "t_address",
32578 "typeString": "address"
32579 }
32580 },
32581 "value": null,
32582 "visibility": "internal"
32583 },
32584 {
32585 "constant": false,
32586 "id": 1858,
32587 "mutability": "mutable",
32588 "name": "spender",
32589 "nodeType": "VariableDeclaration",
32590 "overrides": null,
32591 "scope": 1863,
32592 "src": "584:15:6",
32593 "stateVariable": false,
32594 "storageLocation": "default",
32595 "typeDescriptions": {
32596 "typeIdentifier": "t_address",
32597 "typeString": "address"
32598 },
32599 "typeName": {
32600 "id": 1857,
32601 "name": "address",
32602 "nodeType": "ElementaryTypeName",
32603 "src": "584:7:6",
32604 "stateMutability": "nonpayable",
32605 "typeDescriptions": {
32606 "typeIdentifier": "t_address",
32607 "typeString": "address"
32608 }
32609 },
32610 "value": null,
32611 "visibility": "internal"
32612 }
32613 ],
32614 "src": "568:32:6"
32615 },
32616 "returnParameters": {
32617 "id": 1862,
32618 "nodeType": "ParameterList",
32619 "parameters": [
32620 {
32621 "constant": false,
32622 "id": 1861,
32623 "mutability": "mutable",
32624 "name": "",
32625 "nodeType": "VariableDeclaration",
32626 "overrides": null,
32627 "scope": 1863,
32628 "src": "624:4:6",
32629 "stateVariable": false,
32630 "storageLocation": "default",
32631 "typeDescriptions": {
32632 "typeIdentifier": "t_uint256",
32633 "typeString": "uint256"
32634 },
32635 "typeName": {
32636 "id": 1860,
32637 "name": "uint",
32638 "nodeType": "ElementaryTypeName",
32639 "src": "624:4:6",
32640 "typeDescriptions": {
32641 "typeIdentifier": "t_uint256",
32642 "typeString": "uint256"
32643 }
32644 },
32645 "value": null,
32646 "visibility": "internal"
32647 }
32648 ],
32649 "src": "623:6:6"
32650 },
32651 "scope": 1927,
32652 "src": "550:80:6",
32653 "stateMutability": "view",
32654 "virtual": false,
32655 "visibility": "external"
32656 },
32657 {
32658 "body": null,
32659 "documentation": null,
32660 "functionSelector": "095ea7b3",
32661 "id": 1872,
32662 "implemented": false,
32663 "kind": "function",
32664 "modifiers": [],
32665 "name": "approve",
32666 "nodeType": "FunctionDefinition",
32667 "overrides": null,
32668 "parameters": {
32669 "id": 1868,
32670 "nodeType": "ParameterList",
32671 "parameters": [
32672 {
32673 "constant": false,
32674 "id": 1865,
32675 "mutability": "mutable",
32676 "name": "spender",
32677 "nodeType": "VariableDeclaration",
32678 "overrides": null,
32679 "scope": 1872,
32680 "src": "653:15:6",
32681 "stateVariable": false,
32682 "storageLocation": "default",
32683 "typeDescriptions": {
32684 "typeIdentifier": "t_address",
32685 "typeString": "address"
32686 },
32687 "typeName": {
32688 "id": 1864,
32689 "name": "address",
32690 "nodeType": "ElementaryTypeName",
32691 "src": "653:7:6",
32692 "stateMutability": "nonpayable",
32693 "typeDescriptions": {
32694 "typeIdentifier": "t_address",
32695 "typeString": "address"
32696 }
32697 },
32698 "value": null,
32699 "visibility": "internal"
32700 },
32701 {
32702 "constant": false,
32703 "id": 1867,
32704 "mutability": "mutable",
32705 "name": "value",
32706 "nodeType": "VariableDeclaration",
32707 "overrides": null,
32708 "scope": 1872,
32709 "src": "670:10:6",
32710 "stateVariable": false,
32711 "storageLocation": "default",
32712 "typeDescriptions": {
32713 "typeIdentifier": "t_uint256",
32714 "typeString": "uint256"
32715 },
32716 "typeName": {
32717 "id": 1866,
32718 "name": "uint",
32719 "nodeType": "ElementaryTypeName",
32720 "src": "670:4:6",
32721 "typeDescriptions": {
32722 "typeIdentifier": "t_uint256",
32723 "typeString": "uint256"
32724 }
32725 },
32726 "value": null,
32727 "visibility": "internal"
32728 }
32729 ],
32730 "src": "652:29:6"
32731 },
32732 "returnParameters": {
32733 "id": 1871,
32734 "nodeType": "ParameterList",
32735 "parameters": [
32736 {
32737 "constant": false,
32738 "id": 1870,
32739 "mutability": "mutable",
32740 "name": "",
32741 "nodeType": "VariableDeclaration",
32742 "overrides": null,
32743 "scope": 1872,
32744 "src": "700:4:6",
32745 "stateVariable": false,
32746 "storageLocation": "default",
32747 "typeDescriptions": {
32748 "typeIdentifier": "t_bool",
32749 "typeString": "bool"
32750 },
32751 "typeName": {
32752 "id": 1869,
32753 "name": "bool",
32754 "nodeType": "ElementaryTypeName",
32755 "src": "700:4:6",
32756 "typeDescriptions": {
32757 "typeIdentifier": "t_bool",
32758 "typeString": "bool"
32759 }
32760 },
32761 "value": null,
32762 "visibility": "internal"
32763 }
32764 ],
32765 "src": "699:6:6"
32766 },
32767 "scope": 1927,
32768 "src": "636:70:6",
32769 "stateMutability": "nonpayable",
32770 "virtual": false,
32771 "visibility": "external"
32772 },
32773 {
32774 "body": null,
32775 "documentation": null,
32776 "functionSelector": "a9059cbb",
32777 "id": 1881,
32778 "implemented": false,
32779 "kind": "function",
32780 "modifiers": [],
32781 "name": "transfer",
32782 "nodeType": "FunctionDefinition",
32783 "overrides": null,
32784 "parameters": {
32785 "id": 1877,
32786 "nodeType": "ParameterList",
32787 "parameters": [
32788 {
32789 "constant": false,
32790 "id": 1874,
32791 "mutability": "mutable",
32792 "name": "to",
32793 "nodeType": "VariableDeclaration",
32794 "overrides": null,
32795 "scope": 1881,
32796 "src": "729:10:6",
32797 "stateVariable": false,
32798 "storageLocation": "default",
32799 "typeDescriptions": {
32800 "typeIdentifier": "t_address",
32801 "typeString": "address"
32802 },
32803 "typeName": {
32804 "id": 1873,
32805 "name": "address",
32806 "nodeType": "ElementaryTypeName",
32807 "src": "729:7:6",
32808 "stateMutability": "nonpayable",
32809 "typeDescriptions": {
32810 "typeIdentifier": "t_address",
32811 "typeString": "address"
32812 }
32813 },
32814 "value": null,
32815 "visibility": "internal"
32816 },
32817 {
32818 "constant": false,
32819 "id": 1876,
32820 "mutability": "mutable",
32821 "name": "value",
32822 "nodeType": "VariableDeclaration",
32823 "overrides": null,
32824 "scope": 1881,
32825 "src": "741:10:6",
32826 "stateVariable": false,
32827 "storageLocation": "default",
32828 "typeDescriptions": {
32829 "typeIdentifier": "t_uint256",
32830 "typeString": "uint256"
32831 },
32832 "typeName": {
32833 "id": 1875,
32834 "name": "uint",
32835 "nodeType": "ElementaryTypeName",
32836 "src": "741:4:6",
32837 "typeDescriptions": {
32838 "typeIdentifier": "t_uint256",
32839 "typeString": "uint256"
32840 }
32841 },
32842 "value": null,
32843 "visibility": "internal"
32844 }
32845 ],
32846 "src": "728:24:6"
32847 },
32848 "returnParameters": {
32849 "id": 1880,
32850 "nodeType": "ParameterList",
32851 "parameters": [
32852 {
32853 "constant": false,
32854 "id": 1879,
32855 "mutability": "mutable",
32856 "name": "",
32857 "nodeType": "VariableDeclaration",
32858 "overrides": null,
32859 "scope": 1881,
32860 "src": "771:4:6",
32861 "stateVariable": false,
32862 "storageLocation": "default",
32863 "typeDescriptions": {
32864 "typeIdentifier": "t_bool",
32865 "typeString": "bool"
32866 },
32867 "typeName": {
32868 "id": 1878,
32869 "name": "bool",
32870 "nodeType": "ElementaryTypeName",
32871 "src": "771:4:6",
32872 "typeDescriptions": {
32873 "typeIdentifier": "t_bool",
32874 "typeString": "bool"
32875 }
32876 },
32877 "value": null,
32878 "visibility": "internal"
32879 }
32880 ],
32881 "src": "770:6:6"
32882 },
32883 "scope": 1927,
32884 "src": "711:66:6",
32885 "stateMutability": "nonpayable",
32886 "virtual": false,
32887 "visibility": "external"
32888 },
32889 {
32890 "body": null,
32891 "documentation": null,
32892 "functionSelector": "23b872dd",
32893 "id": 1892,
32894 "implemented": false,
32895 "kind": "function",
32896 "modifiers": [],
32897 "name": "transferFrom",
32898 "nodeType": "FunctionDefinition",
32899 "overrides": null,
32900 "parameters": {
32901 "id": 1888,
32902 "nodeType": "ParameterList",
32903 "parameters": [
32904 {
32905 "constant": false,
32906 "id": 1883,
32907 "mutability": "mutable",
32908 "name": "from",
32909 "nodeType": "VariableDeclaration",
32910 "overrides": null,
32911 "scope": 1892,
32912 "src": "804:12:6",
32913 "stateVariable": false,
32914 "storageLocation": "default",
32915 "typeDescriptions": {
32916 "typeIdentifier": "t_address",
32917 "typeString": "address"
32918 },
32919 "typeName": {
32920 "id": 1882,
32921 "name": "address",
32922 "nodeType": "ElementaryTypeName",
32923 "src": "804:7:6",
32924 "stateMutability": "nonpayable",
32925 "typeDescriptions": {
32926 "typeIdentifier": "t_address",
32927 "typeString": "address"
32928 }
32929 },
32930 "value": null,
32931 "visibility": "internal"
32932 },
32933 {
32934 "constant": false,
32935 "id": 1885,
32936 "mutability": "mutable",
32937 "name": "to",
32938 "nodeType": "VariableDeclaration",
32939 "overrides": null,
32940 "scope": 1892,
32941 "src": "818:10:6",
32942 "stateVariable": false,
32943 "storageLocation": "default",
32944 "typeDescriptions": {
32945 "typeIdentifier": "t_address",
32946 "typeString": "address"
32947 },
32948 "typeName": {
32949 "id": 1884,
32950 "name": "address",
32951 "nodeType": "ElementaryTypeName",
32952 "src": "818:7:6",
32953 "stateMutability": "nonpayable",
32954 "typeDescriptions": {
32955 "typeIdentifier": "t_address",
32956 "typeString": "address"
32957 }
32958 },
32959 "value": null,
32960 "visibility": "internal"
32961 },
32962 {
32963 "constant": false,
32964 "id": 1887,
32965 "mutability": "mutable",
32966 "name": "value",
32967 "nodeType": "VariableDeclaration",
32968 "overrides": null,
32969 "scope": 1892,
32970 "src": "830:10:6",
32971 "stateVariable": false,
32972 "storageLocation": "default",
32973 "typeDescriptions": {
32974 "typeIdentifier": "t_uint256",
32975 "typeString": "uint256"
32976 },
32977 "typeName": {
32978 "id": 1886,
32979 "name": "uint",
32980 "nodeType": "ElementaryTypeName",
32981 "src": "830:4:6",
32982 "typeDescriptions": {
32983 "typeIdentifier": "t_uint256",
32984 "typeString": "uint256"
32985 }
32986 },
32987 "value": null,
32988 "visibility": "internal"
32989 }
32990 ],
32991 "src": "803:38:6"
32992 },
32993 "returnParameters": {
32994 "id": 1891,
32995 "nodeType": "ParameterList",
32996 "parameters": [
32997 {
32998 "constant": false,
32999 "id": 1890,
33000 "mutability": "mutable",
33001 "name": "",
33002 "nodeType": "VariableDeclaration",
33003 "overrides": null,
33004 "scope": 1892,
33005 "src": "860:4:6",
33006 "stateVariable": false,
33007 "storageLocation": "default",
33008 "typeDescriptions": {
33009 "typeIdentifier": "t_bool",
33010 "typeString": "bool"
33011 },
33012 "typeName": {
33013 "id": 1889,
33014 "name": "bool",
33015 "nodeType": "ElementaryTypeName",
33016 "src": "860:4:6",
33017 "typeDescriptions": {
33018 "typeIdentifier": "t_bool",
33019 "typeString": "bool"
33020 }
33021 },
33022 "value": null,
33023 "visibility": "internal"
33024 }
33025 ],
33026 "src": "859:6:6"
33027 },
33028 "scope": 1927,
33029 "src": "782:84:6",
33030 "stateMutability": "nonpayable",
33031 "virtual": false,
33032 "visibility": "external"
33033 },
33034 {
33035 "body": null,
33036 "documentation": null,
33037 "functionSelector": "3644e515",
33038 "id": 1897,
33039 "implemented": false,
33040 "kind": "function",
33041 "modifiers": [],
33042 "name": "DOMAIN_SEPARATOR",
33043 "nodeType": "FunctionDefinition",
33044 "overrides": null,
33045 "parameters": {
33046 "id": 1893,
33047 "nodeType": "ParameterList",
33048 "parameters": [],
33049 "src": "897:2:6"
33050 },
33051 "returnParameters": {
33052 "id": 1896,
33053 "nodeType": "ParameterList",
33054 "parameters": [
33055 {
33056 "constant": false,
33057 "id": 1895,
33058 "mutability": "mutable",
33059 "name": "",
33060 "nodeType": "VariableDeclaration",
33061 "overrides": null,
33062 "scope": 1897,
33063 "src": "923:7:6",
33064 "stateVariable": false,
33065 "storageLocation": "default",
33066 "typeDescriptions": {
33067 "typeIdentifier": "t_bytes32",
33068 "typeString": "bytes32"
33069 },
33070 "typeName": {
33071 "id": 1894,
33072 "name": "bytes32",
33073 "nodeType": "ElementaryTypeName",
33074 "src": "923:7:6",
33075 "typeDescriptions": {
33076 "typeIdentifier": "t_bytes32",
33077 "typeString": "bytes32"
33078 }
33079 },
33080 "value": null,
33081 "visibility": "internal"
33082 }
33083 ],
33084 "src": "922:9:6"
33085 },
33086 "scope": 1927,
33087 "src": "872:60:6",
33088 "stateMutability": "view",
33089 "virtual": false,
33090 "visibility": "external"
33091 },
33092 {
33093 "body": null,
33094 "documentation": null,
33095 "functionSelector": "30adf81f",
33096 "id": 1902,
33097 "implemented": false,
33098 "kind": "function",
33099 "modifiers": [],
33100 "name": "PERMIT_TYPEHASH",
33101 "nodeType": "FunctionDefinition",
33102 "overrides": null,
33103 "parameters": {
33104 "id": 1898,
33105 "nodeType": "ParameterList",
33106 "parameters": [],
33107 "src": "961:2:6"
33108 },
33109 "returnParameters": {
33110 "id": 1901,
33111 "nodeType": "ParameterList",
33112 "parameters": [
33113 {
33114 "constant": false,
33115 "id": 1900,
33116 "mutability": "mutable",
33117 "name": "",
33118 "nodeType": "VariableDeclaration",
33119 "overrides": null,
33120 "scope": 1902,
33121 "src": "987:7:6",
33122 "stateVariable": false,
33123 "storageLocation": "default",
33124 "typeDescriptions": {
33125 "typeIdentifier": "t_bytes32",
33126 "typeString": "bytes32"
33127 },
33128 "typeName": {
33129 "id": 1899,
33130 "name": "bytes32",
33131 "nodeType": "ElementaryTypeName",
33132 "src": "987:7:6",
33133 "typeDescriptions": {
33134 "typeIdentifier": "t_bytes32",
33135 "typeString": "bytes32"
33136 }
33137 },
33138 "value": null,
33139 "visibility": "internal"
33140 }
33141 ],
33142 "src": "986:9:6"
33143 },
33144 "scope": 1927,
33145 "src": "937:59:6",
33146 "stateMutability": "pure",
33147 "virtual": false,
33148 "visibility": "external"
33149 },
33150 {
33151 "body": null,
33152 "documentation": null,
33153 "functionSelector": "7ecebe00",
33154 "id": 1909,
33155 "implemented": false,
33156 "kind": "function",
33157 "modifiers": [],
33158 "name": "nonces",
33159 "nodeType": "FunctionDefinition",
33160 "overrides": null,
33161 "parameters": {
33162 "id": 1905,
33163 "nodeType": "ParameterList",
33164 "parameters": [
33165 {
33166 "constant": false,
33167 "id": 1904,
33168 "mutability": "mutable",
33169 "name": "owner",
33170 "nodeType": "VariableDeclaration",
33171 "overrides": null,
33172 "scope": 1909,
33173 "src": "1017:13:6",
33174 "stateVariable": false,
33175 "storageLocation": "default",
33176 "typeDescriptions": {
33177 "typeIdentifier": "t_address",
33178 "typeString": "address"
33179 },
33180 "typeName": {
33181 "id": 1903,
33182 "name": "address",
33183 "nodeType": "ElementaryTypeName",
33184 "src": "1017:7:6",
33185 "stateMutability": "nonpayable",
33186 "typeDescriptions": {
33187 "typeIdentifier": "t_address",
33188 "typeString": "address"
33189 }
33190 },
33191 "value": null,
33192 "visibility": "internal"
33193 }
33194 ],
33195 "src": "1016:15:6"
33196 },
33197 "returnParameters": {
33198 "id": 1908,
33199 "nodeType": "ParameterList",
33200 "parameters": [
33201 {
33202 "constant": false,
33203 "id": 1907,
33204 "mutability": "mutable",
33205 "name": "",
33206 "nodeType": "VariableDeclaration",
33207 "overrides": null,
33208 "scope": 1909,
33209 "src": "1055:4:6",
33210 "stateVariable": false,
33211 "storageLocation": "default",
33212 "typeDescriptions": {
33213 "typeIdentifier": "t_uint256",
33214 "typeString": "uint256"
33215 },
33216 "typeName": {
33217 "id": 1906,
33218 "name": "uint",
33219 "nodeType": "ElementaryTypeName",
33220 "src": "1055:4:6",
33221 "typeDescriptions": {
33222 "typeIdentifier": "t_uint256",
33223 "typeString": "uint256"
33224 }
33225 },
33226 "value": null,
33227 "visibility": "internal"
33228 }
33229 ],
33230 "src": "1054:6:6"
33231 },
33232 "scope": 1927,
33233 "src": "1001:60:6",
33234 "stateMutability": "view",
33235 "virtual": false,
33236 "visibility": "external"
33237 },
33238 {
33239 "body": null,
33240 "documentation": null,
33241 "functionSelector": "d505accf",
33242 "id": 1926,
33243 "implemented": false,
33244 "kind": "function",
33245 "modifiers": [],
33246 "name": "permit",
33247 "nodeType": "FunctionDefinition",
33248 "overrides": null,
33249 "parameters": {
33250 "id": 1924,
33251 "nodeType": "ParameterList",
33252 "parameters": [
33253 {
33254 "constant": false,
33255 "id": 1911,
33256 "mutability": "mutable",
33257 "name": "owner",
33258 "nodeType": "VariableDeclaration",
33259 "overrides": null,
33260 "scope": 1926,
33261 "src": "1083:13:6",
33262 "stateVariable": false,
33263 "storageLocation": "default",
33264 "typeDescriptions": {
33265 "typeIdentifier": "t_address",
33266 "typeString": "address"
33267 },
33268 "typeName": {
33269 "id": 1910,
33270 "name": "address",
33271 "nodeType": "ElementaryTypeName",
33272 "src": "1083:7:6",
33273 "stateMutability": "nonpayable",
33274 "typeDescriptions": {
33275 "typeIdentifier": "t_address",
33276 "typeString": "address"
33277 }
33278 },
33279 "value": null,
33280 "visibility": "internal"
33281 },
33282 {
33283 "constant": false,
33284 "id": 1913,
33285 "mutability": "mutable",
33286 "name": "spender",
33287 "nodeType": "VariableDeclaration",
33288 "overrides": null,
33289 "scope": 1926,
33290 "src": "1098:15:6",
33291 "stateVariable": false,
33292 "storageLocation": "default",
33293 "typeDescriptions": {
33294 "typeIdentifier": "t_address",
33295 "typeString": "address"
33296 },
33297 "typeName": {
33298 "id": 1912,
33299 "name": "address",
33300 "nodeType": "ElementaryTypeName",
33301 "src": "1098:7:6",
33302 "stateMutability": "nonpayable",
33303 "typeDescriptions": {
33304 "typeIdentifier": "t_address",
33305 "typeString": "address"
33306 }
33307 },
33308 "value": null,
33309 "visibility": "internal"
33310 },
33311 {
33312 "constant": false,
33313 "id": 1915,
33314 "mutability": "mutable",
33315 "name": "value",
33316 "nodeType": "VariableDeclaration",
33317 "overrides": null,
33318 "scope": 1926,
33319 "src": "1115:10:6",
33320 "stateVariable": false,
33321 "storageLocation": "default",
33322 "typeDescriptions": {
33323 "typeIdentifier": "t_uint256",
33324 "typeString": "uint256"
33325 },
33326 "typeName": {
33327 "id": 1914,
33328 "name": "uint",
33329 "nodeType": "ElementaryTypeName",
33330 "src": "1115:4:6",
33331 "typeDescriptions": {
33332 "typeIdentifier": "t_uint256",
33333 "typeString": "uint256"
33334 }
33335 },
33336 "value": null,
33337 "visibility": "internal"
33338 },
33339 {
33340 "constant": false,
33341 "id": 1917,
33342 "mutability": "mutable",
33343 "name": "deadline",
33344 "nodeType": "VariableDeclaration",
33345 "overrides": null,
33346 "scope": 1926,
33347 "src": "1127:13:6",
33348 "stateVariable": false,
33349 "storageLocation": "default",
33350 "typeDescriptions": {
33351 "typeIdentifier": "t_uint256",
33352 "typeString": "uint256"
33353 },
33354 "typeName": {
33355 "id": 1916,
33356 "name": "uint",
33357 "nodeType": "ElementaryTypeName",
33358 "src": "1127:4:6",
33359 "typeDescriptions": {
33360 "typeIdentifier": "t_uint256",
33361 "typeString": "uint256"
33362 }
33363 },
33364 "value": null,
33365 "visibility": "internal"
33366 },
33367 {
33368 "constant": false,
33369 "id": 1919,
33370 "mutability": "mutable",
33371 "name": "v",
33372 "nodeType": "VariableDeclaration",
33373 "overrides": null,
33374 "scope": 1926,
33375 "src": "1142:7:6",
33376 "stateVariable": false,
33377 "storageLocation": "default",
33378 "typeDescriptions": {
33379 "typeIdentifier": "t_uint8",
33380 "typeString": "uint8"
33381 },
33382 "typeName": {
33383 "id": 1918,
33384 "name": "uint8",
33385 "nodeType": "ElementaryTypeName",
33386 "src": "1142:5:6",
33387 "typeDescriptions": {
33388 "typeIdentifier": "t_uint8",
33389 "typeString": "uint8"
33390 }
33391 },
33392 "value": null,
33393 "visibility": "internal"
33394 },
33395 {
33396 "constant": false,
33397 "id": 1921,
33398 "mutability": "mutable",
33399 "name": "r",
33400 "nodeType": "VariableDeclaration",
33401 "overrides": null,
33402 "scope": 1926,
33403 "src": "1151:9:6",
33404 "stateVariable": false,
33405 "storageLocation": "default",
33406 "typeDescriptions": {
33407 "typeIdentifier": "t_bytes32",
33408 "typeString": "bytes32"
33409 },
33410 "typeName": {
33411 "id": 1920,
33412 "name": "bytes32",
33413 "nodeType": "ElementaryTypeName",
33414 "src": "1151:7:6",
33415 "typeDescriptions": {
33416 "typeIdentifier": "t_bytes32",
33417 "typeString": "bytes32"
33418 }
33419 },
33420 "value": null,
33421 "visibility": "internal"
33422 },
33423 {
33424 "constant": false,
33425 "id": 1923,
33426 "mutability": "mutable",
33427 "name": "s",
33428 "nodeType": "VariableDeclaration",
33429 "overrides": null,
33430 "scope": 1926,
33431 "src": "1162:9:6",
33432 "stateVariable": false,
33433 "storageLocation": "default",
33434 "typeDescriptions": {
33435 "typeIdentifier": "t_bytes32",
33436 "typeString": "bytes32"
33437 },
33438 "typeName": {
33439 "id": 1922,
33440 "name": "bytes32",
33441 "nodeType": "ElementaryTypeName",
33442 "src": "1162:7:6",
33443 "typeDescriptions": {
33444 "typeIdentifier": "t_bytes32",
33445 "typeString": "bytes32"
33446 }
33447 },
33448 "value": null,
33449 "visibility": "internal"
33450 }
33451 ],
33452 "src": "1082:90:6"
33453 },
33454 "returnParameters": {
33455 "id": 1925,
33456 "nodeType": "ParameterList",
33457 "parameters": [],
33458 "src": "1181:0:6"
33459 },
33460 "scope": 1927,
33461 "src": "1067:115:6",
33462 "stateMutability": "nonpayable",
33463 "virtual": false,
33464 "visibility": "external"
33465 }
33466 ],
33467 "scope": 1928,
33468 "src": "63:1121:6"
33469 }
33470 ],
33471 "src": "37:1147:6"
33472 }
33473 },
33474 "contracts/interfaces/IUniswapV2Factory.sol": {
33475 "id": 7,
33476 "AST": {
33477 "absolutePath": "contracts/interfaces/IUniswapV2Factory.sol",
33478 "exportedSymbols": {
33479 "IUniswapV2Factory": [
33480 1990
33481 ]
33482 },
33483 "id": 1991,
33484 "license": "GPL-3.0",
33485 "nodeType": "SourceUnit",
33486 "nodes": [
33487 {
33488 "id": 1929,
33489 "literals": [
33490 "solidity",
33491 "=",
33492 "0.6",
33493 ".12"
33494 ],
33495 "nodeType": "PragmaDirective",
33496 "src": "37:24:7"
33497 },
33498 {
33499 "abstract": false,
33500 "baseContracts": [],
33501 "contractDependencies": [],
33502 "contractKind": "interface",
33503 "documentation": null,
33504 "fullyImplemented": false,
33505 "id": 1990,
33506 "linearizedBaseContracts": [
33507 1990
33508 ],
33509 "name": "IUniswapV2Factory",
33510 "nodeType": "ContractDefinition",
33511 "nodes": [
33512 {
33513 "anonymous": false,
33514 "documentation": null,
33515 "id": 1939,
33516 "name": "PairCreated",
33517 "nodeType": "EventDefinition",
33518 "parameters": {
33519 "id": 1938,
33520 "nodeType": "ParameterList",
33521 "parameters": [
33522 {
33523 "constant": false,
33524 "id": 1931,
33525 "indexed": true,
33526 "mutability": "mutable",
33527 "name": "token0",
33528 "nodeType": "VariableDeclaration",
33529 "overrides": null,
33530 "scope": 1939,
33531 "src": "115:22:7",
33532 "stateVariable": false,
33533 "storageLocation": "default",
33534 "typeDescriptions": {
33535 "typeIdentifier": "t_address",
33536 "typeString": "address"
33537 },
33538 "typeName": {
33539 "id": 1930,
33540 "name": "address",
33541 "nodeType": "ElementaryTypeName",
33542 "src": "115:7:7",
33543 "stateMutability": "nonpayable",
33544 "typeDescriptions": {
33545 "typeIdentifier": "t_address",
33546 "typeString": "address"
33547 }
33548 },
33549 "value": null,
33550 "visibility": "internal"
33551 },
33552 {
33553 "constant": false,
33554 "id": 1933,
33555 "indexed": true,
33556 "mutability": "mutable",
33557 "name": "token1",
33558 "nodeType": "VariableDeclaration",
33559 "overrides": null,
33560 "scope": 1939,
33561 "src": "139:22:7",
33562 "stateVariable": false,
33563 "storageLocation": "default",
33564 "typeDescriptions": {
33565 "typeIdentifier": "t_address",
33566 "typeString": "address"
33567 },
33568 "typeName": {
33569 "id": 1932,
33570 "name": "address",
33571 "nodeType": "ElementaryTypeName",
33572 "src": "139:7:7",
33573 "stateMutability": "nonpayable",
33574 "typeDescriptions": {
33575 "typeIdentifier": "t_address",
33576 "typeString": "address"
33577 }
33578 },
33579 "value": null,
33580 "visibility": "internal"
33581 },
33582 {
33583 "constant": false,
33584 "id": 1935,
33585 "indexed": false,
33586 "mutability": "mutable",
33587 "name": "pair",
33588 "nodeType": "VariableDeclaration",
33589 "overrides": null,
33590 "scope": 1939,
33591 "src": "163:12:7",
33592 "stateVariable": false,
33593 "storageLocation": "default",
33594 "typeDescriptions": {
33595 "typeIdentifier": "t_address",
33596 "typeString": "address"
33597 },
33598 "typeName": {
33599 "id": 1934,
33600 "name": "address",
33601 "nodeType": "ElementaryTypeName",
33602 "src": "163:7:7",
33603 "stateMutability": "nonpayable",
33604 "typeDescriptions": {
33605 "typeIdentifier": "t_address",
33606 "typeString": "address"
33607 }
33608 },
33609 "value": null,
33610 "visibility": "internal"
33611 },
33612 {
33613 "constant": false,
33614 "id": 1937,
33615 "indexed": false,
33616 "mutability": "mutable",
33617 "name": "",
33618 "nodeType": "VariableDeclaration",
33619 "overrides": null,
33620 "scope": 1939,
33621 "src": "177:4:7",
33622 "stateVariable": false,
33623 "storageLocation": "default",
33624 "typeDescriptions": {
33625 "typeIdentifier": "t_uint256",
33626 "typeString": "uint256"
33627 },
33628 "typeName": {
33629 "id": 1936,
33630 "name": "uint",
33631 "nodeType": "ElementaryTypeName",
33632 "src": "177:4:7",
33633 "typeDescriptions": {
33634 "typeIdentifier": "t_uint256",
33635 "typeString": "uint256"
33636 }
33637 },
33638 "value": null,
33639 "visibility": "internal"
33640 }
33641 ],
33642 "src": "114:68:7"
33643 },
33644 "src": "97:86:7"
33645 },
33646 {
33647 "body": null,
33648 "documentation": null,
33649 "functionSelector": "017e7e58",
33650 "id": 1944,
33651 "implemented": false,
33652 "kind": "function",
33653 "modifiers": [],
33654 "name": "feeTo",
33655 "nodeType": "FunctionDefinition",
33656 "overrides": null,
33657 "parameters": {
33658 "id": 1940,
33659 "nodeType": "ParameterList",
33660 "parameters": [],
33661 "src": "203:2:7"
33662 },
33663 "returnParameters": {
33664 "id": 1943,
33665 "nodeType": "ParameterList",
33666 "parameters": [
33667 {
33668 "constant": false,
33669 "id": 1942,
33670 "mutability": "mutable",
33671 "name": "",
33672 "nodeType": "VariableDeclaration",
33673 "overrides": null,
33674 "scope": 1944,
33675 "src": "229:7:7",
33676 "stateVariable": false,
33677 "storageLocation": "default",
33678 "typeDescriptions": {
33679 "typeIdentifier": "t_address",
33680 "typeString": "address"
33681 },
33682 "typeName": {
33683 "id": 1941,
33684 "name": "address",
33685 "nodeType": "ElementaryTypeName",
33686 "src": "229:7:7",
33687 "stateMutability": "nonpayable",
33688 "typeDescriptions": {
33689 "typeIdentifier": "t_address",
33690 "typeString": "address"
33691 }
33692 },
33693 "value": null,
33694 "visibility": "internal"
33695 }
33696 ],
33697 "src": "228:9:7"
33698 },
33699 "scope": 1990,
33700 "src": "189:49:7",
33701 "stateMutability": "view",
33702 "virtual": false,
33703 "visibility": "external"
33704 },
33705 {
33706 "body": null,
33707 "documentation": null,
33708 "functionSelector": "094b7415",
33709 "id": 1949,
33710 "implemented": false,
33711 "kind": "function",
33712 "modifiers": [],
33713 "name": "feeToSetter",
33714 "nodeType": "FunctionDefinition",
33715 "overrides": null,
33716 "parameters": {
33717 "id": 1945,
33718 "nodeType": "ParameterList",
33719 "parameters": [],
33720 "src": "263:2:7"
33721 },
33722 "returnParameters": {
33723 "id": 1948,
33724 "nodeType": "ParameterList",
33725 "parameters": [
33726 {
33727 "constant": false,
33728 "id": 1947,
33729 "mutability": "mutable",
33730 "name": "",
33731 "nodeType": "VariableDeclaration",
33732 "overrides": null,
33733 "scope": 1949,
33734 "src": "289:7:7",
33735 "stateVariable": false,
33736 "storageLocation": "default",
33737 "typeDescriptions": {
33738 "typeIdentifier": "t_address",
33739 "typeString": "address"
33740 },
33741 "typeName": {
33742 "id": 1946,
33743 "name": "address",
33744 "nodeType": "ElementaryTypeName",
33745 "src": "289:7:7",
33746 "stateMutability": "nonpayable",
33747 "typeDescriptions": {
33748 "typeIdentifier": "t_address",
33749 "typeString": "address"
33750 }
33751 },
33752 "value": null,
33753 "visibility": "internal"
33754 }
33755 ],
33756 "src": "288:9:7"
33757 },
33758 "scope": 1990,
33759 "src": "243:55:7",
33760 "stateMutability": "view",
33761 "virtual": false,
33762 "visibility": "external"
33763 },
33764 {
33765 "body": null,
33766 "documentation": null,
33767 "functionSelector": "e6a43905",
33768 "id": 1958,
33769 "implemented": false,
33770 "kind": "function",
33771 "modifiers": [],
33772 "name": "getPair",
33773 "nodeType": "FunctionDefinition",
33774 "overrides": null,
33775 "parameters": {
33776 "id": 1954,
33777 "nodeType": "ParameterList",
33778 "parameters": [
33779 {
33780 "constant": false,
33781 "id": 1951,
33782 "mutability": "mutable",
33783 "name": "tokenA",
33784 "nodeType": "VariableDeclaration",
33785 "overrides": null,
33786 "scope": 1958,
33787 "src": "321:14:7",
33788 "stateVariable": false,
33789 "storageLocation": "default",
33790 "typeDescriptions": {
33791 "typeIdentifier": "t_address",
33792 "typeString": "address"
33793 },
33794 "typeName": {
33795 "id": 1950,
33796 "name": "address",
33797 "nodeType": "ElementaryTypeName",
33798 "src": "321:7:7",
33799 "stateMutability": "nonpayable",
33800 "typeDescriptions": {
33801 "typeIdentifier": "t_address",
33802 "typeString": "address"
33803 }
33804 },
33805 "value": null,
33806 "visibility": "internal"
33807 },
33808 {
33809 "constant": false,
33810 "id": 1953,
33811 "mutability": "mutable",
33812 "name": "tokenB",
33813 "nodeType": "VariableDeclaration",
33814 "overrides": null,
33815 "scope": 1958,
33816 "src": "337:14:7",
33817 "stateVariable": false,
33818 "storageLocation": "default",
33819 "typeDescriptions": {
33820 "typeIdentifier": "t_address",
33821 "typeString": "address"
33822 },
33823 "typeName": {
33824 "id": 1952,
33825 "name": "address",
33826 "nodeType": "ElementaryTypeName",
33827 "src": "337:7:7",
33828 "stateMutability": "nonpayable",
33829 "typeDescriptions": {
33830 "typeIdentifier": "t_address",
33831 "typeString": "address"
33832 }
33833 },
33834 "value": null,
33835 "visibility": "internal"
33836 }
33837 ],
33838 "src": "320:32:7"
33839 },
33840 "returnParameters": {
33841 "id": 1957,
33842 "nodeType": "ParameterList",
33843 "parameters": [
33844 {
33845 "constant": false,
33846 "id": 1956,
33847 "mutability": "mutable",
33848 "name": "pair",
33849 "nodeType": "VariableDeclaration",
33850 "overrides": null,
33851 "scope": 1958,
33852 "src": "376:12:7",
33853 "stateVariable": false,
33854 "storageLocation": "default",
33855 "typeDescriptions": {
33856 "typeIdentifier": "t_address",
33857 "typeString": "address"
33858 },
33859 "typeName": {
33860 "id": 1955,
33861 "name": "address",
33862 "nodeType": "ElementaryTypeName",
33863 "src": "376:7:7",
33864 "stateMutability": "nonpayable",
33865 "typeDescriptions": {
33866 "typeIdentifier": "t_address",
33867 "typeString": "address"
33868 }
33869 },
33870 "value": null,
33871 "visibility": "internal"
33872 }
33873 ],
33874 "src": "375:14:7"
33875 },
33876 "scope": 1990,
33877 "src": "304:86:7",
33878 "stateMutability": "view",
33879 "virtual": false,
33880 "visibility": "external"
33881 },
33882 {
33883 "body": null,
33884 "documentation": null,
33885 "functionSelector": "1e3dd18b",
33886 "id": 1965,
33887 "implemented": false,
33888 "kind": "function",
33889 "modifiers": [],
33890 "name": "allPairs",
33891 "nodeType": "FunctionDefinition",
33892 "overrides": null,
33893 "parameters": {
33894 "id": 1961,
33895 "nodeType": "ParameterList",
33896 "parameters": [
33897 {
33898 "constant": false,
33899 "id": 1960,
33900 "mutability": "mutable",
33901 "name": "",
33902 "nodeType": "VariableDeclaration",
33903 "overrides": null,
33904 "scope": 1965,
33905 "src": "413:4:7",
33906 "stateVariable": false,
33907 "storageLocation": "default",
33908 "typeDescriptions": {
33909 "typeIdentifier": "t_uint256",
33910 "typeString": "uint256"
33911 },
33912 "typeName": {
33913 "id": 1959,
33914 "name": "uint",
33915 "nodeType": "ElementaryTypeName",
33916 "src": "413:4:7",
33917 "typeDescriptions": {
33918 "typeIdentifier": "t_uint256",
33919 "typeString": "uint256"
33920 }
33921 },
33922 "value": null,
33923 "visibility": "internal"
33924 }
33925 ],
33926 "src": "412:6:7"
33927 },
33928 "returnParameters": {
33929 "id": 1964,
33930 "nodeType": "ParameterList",
33931 "parameters": [
33932 {
33933 "constant": false,
33934 "id": 1963,
33935 "mutability": "mutable",
33936 "name": "pair",
33937 "nodeType": "VariableDeclaration",
33938 "overrides": null,
33939 "scope": 1965,
33940 "src": "442:12:7",
33941 "stateVariable": false,
33942 "storageLocation": "default",
33943 "typeDescriptions": {
33944 "typeIdentifier": "t_address",
33945 "typeString": "address"
33946 },
33947 "typeName": {
33948 "id": 1962,
33949 "name": "address",
33950 "nodeType": "ElementaryTypeName",
33951 "src": "442:7:7",
33952 "stateMutability": "nonpayable",
33953 "typeDescriptions": {
33954 "typeIdentifier": "t_address",
33955 "typeString": "address"
33956 }
33957 },
33958 "value": null,
33959 "visibility": "internal"
33960 }
33961 ],
33962 "src": "441:14:7"
33963 },
33964 "scope": 1990,
33965 "src": "395:61:7",
33966 "stateMutability": "view",
33967 "virtual": false,
33968 "visibility": "external"
33969 },
33970 {
33971 "body": null,
33972 "documentation": null,
33973 "functionSelector": "574f2ba3",
33974 "id": 1970,
33975 "implemented": false,
33976 "kind": "function",
33977 "modifiers": [],
33978 "name": "allPairsLength",
33979 "nodeType": "FunctionDefinition",
33980 "overrides": null,
33981 "parameters": {
33982 "id": 1966,
33983 "nodeType": "ParameterList",
33984 "parameters": [],
33985 "src": "484:2:7"
33986 },
33987 "returnParameters": {
33988 "id": 1969,
33989 "nodeType": "ParameterList",
33990 "parameters": [
33991 {
33992 "constant": false,
33993 "id": 1968,
33994 "mutability": "mutable",
33995 "name": "",
33996 "nodeType": "VariableDeclaration",
33997 "overrides": null,
33998 "scope": 1970,
33999 "src": "510:4:7",
34000 "stateVariable": false,
34001 "storageLocation": "default",
34002 "typeDescriptions": {
34003 "typeIdentifier": "t_uint256",
34004 "typeString": "uint256"
34005 },
34006 "typeName": {
34007 "id": 1967,
34008 "name": "uint",
34009 "nodeType": "ElementaryTypeName",
34010 "src": "510:4:7",
34011 "typeDescriptions": {
34012 "typeIdentifier": "t_uint256",
34013 "typeString": "uint256"
34014 }
34015 },
34016 "value": null,
34017 "visibility": "internal"
34018 }
34019 ],
34020 "src": "509:6:7"
34021 },
34022 "scope": 1990,
34023 "src": "461:55:7",
34024 "stateMutability": "view",
34025 "virtual": false,
34026 "visibility": "external"
34027 },
34028 {
34029 "body": null,
34030 "documentation": null,
34031 "functionSelector": "c9c65396",
34032 "id": 1979,
34033 "implemented": false,
34034 "kind": "function",
34035 "modifiers": [],
34036 "name": "createPair",
34037 "nodeType": "FunctionDefinition",
34038 "overrides": null,
34039 "parameters": {
34040 "id": 1975,
34041 "nodeType": "ParameterList",
34042 "parameters": [
34043 {
34044 "constant": false,
34045 "id": 1972,
34046 "mutability": "mutable",
34047 "name": "tokenA",
34048 "nodeType": "VariableDeclaration",
34049 "overrides": null,
34050 "scope": 1979,
34051 "src": "542:14:7",
34052 "stateVariable": false,
34053 "storageLocation": "default",
34054 "typeDescriptions": {
34055 "typeIdentifier": "t_address",
34056 "typeString": "address"
34057 },
34058 "typeName": {
34059 "id": 1971,
34060 "name": "address",
34061 "nodeType": "ElementaryTypeName",
34062 "src": "542:7:7",
34063 "stateMutability": "nonpayable",
34064 "typeDescriptions": {
34065 "typeIdentifier": "t_address",
34066 "typeString": "address"
34067 }
34068 },
34069 "value": null,
34070 "visibility": "internal"
34071 },
34072 {
34073 "constant": false,
34074 "id": 1974,
34075 "mutability": "mutable",
34076 "name": "tokenB",
34077 "nodeType": "VariableDeclaration",
34078 "overrides": null,
34079 "scope": 1979,
34080 "src": "558:14:7",
34081 "stateVariable": false,
34082 "storageLocation": "default",
34083 "typeDescriptions": {
34084 "typeIdentifier": "t_address",
34085 "typeString": "address"
34086 },
34087 "typeName": {
34088 "id": 1973,
34089 "name": "address",
34090 "nodeType": "ElementaryTypeName",
34091 "src": "558:7:7",
34092 "stateMutability": "nonpayable",
34093 "typeDescriptions": {
34094 "typeIdentifier": "t_address",
34095 "typeString": "address"
34096 }
34097 },
34098 "value": null,
34099 "visibility": "internal"
34100 }
34101 ],
34102 "src": "541:32:7"
34103 },
34104 "returnParameters": {
34105 "id": 1978,
34106 "nodeType": "ParameterList",
34107 "parameters": [
34108 {
34109 "constant": false,
34110 "id": 1977,
34111 "mutability": "mutable",
34112 "name": "pair",
34113 "nodeType": "VariableDeclaration",
34114 "overrides": null,
34115 "scope": 1979,
34116 "src": "592:12:7",
34117 "stateVariable": false,
34118 "storageLocation": "default",
34119 "typeDescriptions": {
34120 "typeIdentifier": "t_address",
34121 "typeString": "address"
34122 },
34123 "typeName": {
34124 "id": 1976,
34125 "name": "address",
34126 "nodeType": "ElementaryTypeName",
34127 "src": "592:7:7",
34128 "stateMutability": "nonpayable",
34129 "typeDescriptions": {
34130 "typeIdentifier": "t_address",
34131 "typeString": "address"
34132 }
34133 },
34134 "value": null,
34135 "visibility": "internal"
34136 }
34137 ],
34138 "src": "591:14:7"
34139 },
34140 "scope": 1990,
34141 "src": "522:84:7",
34142 "stateMutability": "nonpayable",
34143 "virtual": false,
34144 "visibility": "external"
34145 },
34146 {
34147 "body": null,
34148 "documentation": null,
34149 "functionSelector": "f46901ed",
34150 "id": 1984,
34151 "implemented": false,
34152 "kind": "function",
34153 "modifiers": [],
34154 "name": "setFeeTo",
34155 "nodeType": "FunctionDefinition",
34156 "overrides": null,
34157 "parameters": {
34158 "id": 1982,
34159 "nodeType": "ParameterList",
34160 "parameters": [
34161 {
34162 "constant": false,
34163 "id": 1981,
34164 "mutability": "mutable",
34165 "name": "",
34166 "nodeType": "VariableDeclaration",
34167 "overrides": null,
34168 "scope": 1984,
34169 "src": "630:7:7",
34170 "stateVariable": false,
34171 "storageLocation": "default",
34172 "typeDescriptions": {
34173 "typeIdentifier": "t_address",
34174 "typeString": "address"
34175 },
34176 "typeName": {
34177 "id": 1980,
34178 "name": "address",
34179 "nodeType": "ElementaryTypeName",
34180 "src": "630:7:7",
34181 "stateMutability": "nonpayable",
34182 "typeDescriptions": {
34183 "typeIdentifier": "t_address",
34184 "typeString": "address"
34185 }
34186 },
34187 "value": null,
34188 "visibility": "internal"
34189 }
34190 ],
34191 "src": "629:9:7"
34192 },
34193 "returnParameters": {
34194 "id": 1983,
34195 "nodeType": "ParameterList",
34196 "parameters": [],
34197 "src": "647:0:7"
34198 },
34199 "scope": 1990,
34200 "src": "612:36:7",
34201 "stateMutability": "nonpayable",
34202 "virtual": false,
34203 "visibility": "external"
34204 },
34205 {
34206 "body": null,
34207 "documentation": null,
34208 "functionSelector": "a2e74af6",
34209 "id": 1989,
34210 "implemented": false,
34211 "kind": "function",
34212 "modifiers": [],
34213 "name": "setFeeToSetter",
34214 "nodeType": "FunctionDefinition",
34215 "overrides": null,
34216 "parameters": {
34217 "id": 1987,
34218 "nodeType": "ParameterList",
34219 "parameters": [
34220 {
34221 "constant": false,
34222 "id": 1986,
34223 "mutability": "mutable",
34224 "name": "",
34225 "nodeType": "VariableDeclaration",
34226 "overrides": null,
34227 "scope": 1989,
34228 "src": "677:7:7",
34229 "stateVariable": false,
34230 "storageLocation": "default",
34231 "typeDescriptions": {
34232 "typeIdentifier": "t_address",
34233 "typeString": "address"
34234 },
34235 "typeName": {
34236 "id": 1985,
34237 "name": "address",
34238 "nodeType": "ElementaryTypeName",
34239 "src": "677:7:7",
34240 "stateMutability": "nonpayable",
34241 "typeDescriptions": {
34242 "typeIdentifier": "t_address",
34243 "typeString": "address"
34244 }
34245 },
34246 "value": null,
34247 "visibility": "internal"
34248 }
34249 ],
34250 "src": "676:9:7"
34251 },
34252 "returnParameters": {
34253 "id": 1988,
34254 "nodeType": "ParameterList",
34255 "parameters": [],
34256 "src": "694:0:7"
34257 },
34258 "scope": 1990,
34259 "src": "653:42:7",
34260 "stateMutability": "nonpayable",
34261 "virtual": false,
34262 "visibility": "external"
34263 }
34264 ],
34265 "scope": 1991,
34266 "src": "63:634:7"
34267 }
34268 ],
34269 "src": "37:661:7"
34270 }
34271 },
34272 "contracts/interfaces/IUniswapV2Pair.sol": {
34273 "id": 8,
34274 "AST": {
34275 "absolutePath": "contracts/interfaces/IUniswapV2Pair.sol",
34276 "exportedSymbols": {
34277 "IUniswapV2Pair": [
34278 2232
34279 ]
34280 },
34281 "id": 2233,
34282 "license": "GPL-3.0",
34283 "nodeType": "SourceUnit",
34284 "nodes": [
34285 {
34286 "id": 1992,
34287 "literals": [
34288 "solidity",
34289 "=",
34290 "0.6",
34291 ".12"
34292 ],
34293 "nodeType": "PragmaDirective",
34294 "src": "36:24:8"
34295 },
34296 {
34297 "abstract": false,
34298 "baseContracts": [],
34299 "contractDependencies": [],
34300 "contractKind": "interface",
34301 "documentation": null,
34302 "fullyImplemented": false,
34303 "id": 2232,
34304 "linearizedBaseContracts": [
34305 2232
34306 ],
34307 "name": "IUniswapV2Pair",
34308 "nodeType": "ContractDefinition",
34309 "nodes": [
34310 {
34311 "anonymous": false,
34312 "documentation": null,
34313 "id": 2000,
34314 "name": "Approval",
34315 "nodeType": "EventDefinition",
34316 "parameters": {
34317 "id": 1999,
34318 "nodeType": "ParameterList",
34319 "parameters": [
34320 {
34321 "constant": false,
34322 "id": 1994,
34323 "indexed": true,
34324 "mutability": "mutable",
34325 "name": "owner",
34326 "nodeType": "VariableDeclaration",
34327 "overrides": null,
34328 "scope": 2000,
34329 "src": "108:21:8",
34330 "stateVariable": false,
34331 "storageLocation": "default",
34332 "typeDescriptions": {
34333 "typeIdentifier": "t_address",
34334 "typeString": "address"
34335 },
34336 "typeName": {
34337 "id": 1993,
34338 "name": "address",
34339 "nodeType": "ElementaryTypeName",
34340 "src": "108:7:8",
34341 "stateMutability": "nonpayable",
34342 "typeDescriptions": {
34343 "typeIdentifier": "t_address",
34344 "typeString": "address"
34345 }
34346 },
34347 "value": null,
34348 "visibility": "internal"
34349 },
34350 {
34351 "constant": false,
34352 "id": 1996,
34353 "indexed": true,
34354 "mutability": "mutable",
34355 "name": "spender",
34356 "nodeType": "VariableDeclaration",
34357 "overrides": null,
34358 "scope": 2000,
34359 "src": "131:23:8",
34360 "stateVariable": false,
34361 "storageLocation": "default",
34362 "typeDescriptions": {
34363 "typeIdentifier": "t_address",
34364 "typeString": "address"
34365 },
34366 "typeName": {
34367 "id": 1995,
34368 "name": "address",
34369 "nodeType": "ElementaryTypeName",
34370 "src": "131:7:8",
34371 "stateMutability": "nonpayable",
34372 "typeDescriptions": {
34373 "typeIdentifier": "t_address",
34374 "typeString": "address"
34375 }
34376 },
34377 "value": null,
34378 "visibility": "internal"
34379 },
34380 {
34381 "constant": false,
34382 "id": 1998,
34383 "indexed": false,
34384 "mutability": "mutable",
34385 "name": "value",
34386 "nodeType": "VariableDeclaration",
34387 "overrides": null,
34388 "scope": 2000,
34389 "src": "156:10:8",
34390 "stateVariable": false,
34391 "storageLocation": "default",
34392 "typeDescriptions": {
34393 "typeIdentifier": "t_uint256",
34394 "typeString": "uint256"
34395 },
34396 "typeName": {
34397 "id": 1997,
34398 "name": "uint",
34399 "nodeType": "ElementaryTypeName",
34400 "src": "156:4:8",
34401 "typeDescriptions": {
34402 "typeIdentifier": "t_uint256",
34403 "typeString": "uint256"
34404 }
34405 },
34406 "value": null,
34407 "visibility": "internal"
34408 }
34409 ],
34410 "src": "107:60:8"
34411 },
34412 "src": "93:75:8"
34413 },
34414 {
34415 "anonymous": false,
34416 "documentation": null,
34417 "id": 2008,
34418 "name": "Transfer",
34419 "nodeType": "EventDefinition",
34420 "parameters": {
34421 "id": 2007,
34422 "nodeType": "ParameterList",
34423 "parameters": [
34424 {
34425 "constant": false,
34426 "id": 2002,
34427 "indexed": true,
34428 "mutability": "mutable",
34429 "name": "from",
34430 "nodeType": "VariableDeclaration",
34431 "overrides": null,
34432 "scope": 2008,
34433 "src": "188:20:8",
34434 "stateVariable": false,
34435 "storageLocation": "default",
34436 "typeDescriptions": {
34437 "typeIdentifier": "t_address",
34438 "typeString": "address"
34439 },
34440 "typeName": {
34441 "id": 2001,
34442 "name": "address",
34443 "nodeType": "ElementaryTypeName",
34444 "src": "188:7:8",
34445 "stateMutability": "nonpayable",
34446 "typeDescriptions": {
34447 "typeIdentifier": "t_address",
34448 "typeString": "address"
34449 }
34450 },
34451 "value": null,
34452 "visibility": "internal"
34453 },
34454 {
34455 "constant": false,
34456 "id": 2004,
34457 "indexed": true,
34458 "mutability": "mutable",
34459 "name": "to",
34460 "nodeType": "VariableDeclaration",
34461 "overrides": null,
34462 "scope": 2008,
34463 "src": "210:18:8",
34464 "stateVariable": false,
34465 "storageLocation": "default",
34466 "typeDescriptions": {
34467 "typeIdentifier": "t_address",
34468 "typeString": "address"
34469 },
34470 "typeName": {
34471 "id": 2003,
34472 "name": "address",
34473 "nodeType": "ElementaryTypeName",
34474 "src": "210:7:8",
34475 "stateMutability": "nonpayable",
34476 "typeDescriptions": {
34477 "typeIdentifier": "t_address",
34478 "typeString": "address"
34479 }
34480 },
34481 "value": null,
34482 "visibility": "internal"
34483 },
34484 {
34485 "constant": false,
34486 "id": 2006,
34487 "indexed": false,
34488 "mutability": "mutable",
34489 "name": "value",
34490 "nodeType": "VariableDeclaration",
34491 "overrides": null,
34492 "scope": 2008,
34493 "src": "230:10:8",
34494 "stateVariable": false,
34495 "storageLocation": "default",
34496 "typeDescriptions": {
34497 "typeIdentifier": "t_uint256",
34498 "typeString": "uint256"
34499 },
34500 "typeName": {
34501 "id": 2005,
34502 "name": "uint",
34503 "nodeType": "ElementaryTypeName",
34504 "src": "230:4:8",
34505 "typeDescriptions": {
34506 "typeIdentifier": "t_uint256",
34507 "typeString": "uint256"
34508 }
34509 },
34510 "value": null,
34511 "visibility": "internal"
34512 }
34513 ],
34514 "src": "187:54:8"
34515 },
34516 "src": "173:69:8"
34517 },
34518 {
34519 "body": null,
34520 "documentation": null,
34521 "functionSelector": "06fdde03",
34522 "id": 2013,
34523 "implemented": false,
34524 "kind": "function",
34525 "modifiers": [],
34526 "name": "name",
34527 "nodeType": "FunctionDefinition",
34528 "overrides": null,
34529 "parameters": {
34530 "id": 2009,
34531 "nodeType": "ParameterList",
34532 "parameters": [],
34533 "src": "261:2:8"
34534 },
34535 "returnParameters": {
34536 "id": 2012,
34537 "nodeType": "ParameterList",
34538 "parameters": [
34539 {
34540 "constant": false,
34541 "id": 2011,
34542 "mutability": "mutable",
34543 "name": "",
34544 "nodeType": "VariableDeclaration",
34545 "overrides": null,
34546 "scope": 2013,
34547 "src": "287:13:8",
34548 "stateVariable": false,
34549 "storageLocation": "memory",
34550 "typeDescriptions": {
34551 "typeIdentifier": "t_string_memory_ptr",
34552 "typeString": "string"
34553 },
34554 "typeName": {
34555 "id": 2010,
34556 "name": "string",
34557 "nodeType": "ElementaryTypeName",
34558 "src": "287:6:8",
34559 "typeDescriptions": {
34560 "typeIdentifier": "t_string_storage_ptr",
34561 "typeString": "string"
34562 }
34563 },
34564 "value": null,
34565 "visibility": "internal"
34566 }
34567 ],
34568 "src": "286:15:8"
34569 },
34570 "scope": 2232,
34571 "src": "248:54:8",
34572 "stateMutability": "pure",
34573 "virtual": false,
34574 "visibility": "external"
34575 },
34576 {
34577 "body": null,
34578 "documentation": null,
34579 "functionSelector": "95d89b41",
34580 "id": 2018,
34581 "implemented": false,
34582 "kind": "function",
34583 "modifiers": [],
34584 "name": "symbol",
34585 "nodeType": "FunctionDefinition",
34586 "overrides": null,
34587 "parameters": {
34588 "id": 2014,
34589 "nodeType": "ParameterList",
34590 "parameters": [],
34591 "src": "322:2:8"
34592 },
34593 "returnParameters": {
34594 "id": 2017,
34595 "nodeType": "ParameterList",
34596 "parameters": [
34597 {
34598 "constant": false,
34599 "id": 2016,
34600 "mutability": "mutable",
34601 "name": "",
34602 "nodeType": "VariableDeclaration",
34603 "overrides": null,
34604 "scope": 2018,
34605 "src": "348:13:8",
34606 "stateVariable": false,
34607 "storageLocation": "memory",
34608 "typeDescriptions": {
34609 "typeIdentifier": "t_string_memory_ptr",
34610 "typeString": "string"
34611 },
34612 "typeName": {
34613 "id": 2015,
34614 "name": "string",
34615 "nodeType": "ElementaryTypeName",
34616 "src": "348:6:8",
34617 "typeDescriptions": {
34618 "typeIdentifier": "t_string_storage_ptr",
34619 "typeString": "string"
34620 }
34621 },
34622 "value": null,
34623 "visibility": "internal"
34624 }
34625 ],
34626 "src": "347:15:8"
34627 },
34628 "scope": 2232,
34629 "src": "307:56:8",
34630 "stateMutability": "pure",
34631 "virtual": false,
34632 "visibility": "external"
34633 },
34634 {
34635 "body": null,
34636 "documentation": null,
34637 "functionSelector": "313ce567",
34638 "id": 2023,
34639 "implemented": false,
34640 "kind": "function",
34641 "modifiers": [],
34642 "name": "decimals",
34643 "nodeType": "FunctionDefinition",
34644 "overrides": null,
34645 "parameters": {
34646 "id": 2019,
34647 "nodeType": "ParameterList",
34648 "parameters": [],
34649 "src": "385:2:8"
34650 },
34651 "returnParameters": {
34652 "id": 2022,
34653 "nodeType": "ParameterList",
34654 "parameters": [
34655 {
34656 "constant": false,
34657 "id": 2021,
34658 "mutability": "mutable",
34659 "name": "",
34660 "nodeType": "VariableDeclaration",
34661 "overrides": null,
34662 "scope": 2023,
34663 "src": "411:5:8",
34664 "stateVariable": false,
34665 "storageLocation": "default",
34666 "typeDescriptions": {
34667 "typeIdentifier": "t_uint8",
34668 "typeString": "uint8"
34669 },
34670 "typeName": {
34671 "id": 2020,
34672 "name": "uint8",
34673 "nodeType": "ElementaryTypeName",
34674 "src": "411:5:8",
34675 "typeDescriptions": {
34676 "typeIdentifier": "t_uint8",
34677 "typeString": "uint8"
34678 }
34679 },
34680 "value": null,
34681 "visibility": "internal"
34682 }
34683 ],
34684 "src": "410:7:8"
34685 },
34686 "scope": 2232,
34687 "src": "368:50:8",
34688 "stateMutability": "pure",
34689 "virtual": false,
34690 "visibility": "external"
34691 },
34692 {
34693 "body": null,
34694 "documentation": null,
34695 "functionSelector": "18160ddd",
34696 "id": 2028,
34697 "implemented": false,
34698 "kind": "function",
34699 "modifiers": [],
34700 "name": "totalSupply",
34701 "nodeType": "FunctionDefinition",
34702 "overrides": null,
34703 "parameters": {
34704 "id": 2024,
34705 "nodeType": "ParameterList",
34706 "parameters": [],
34707 "src": "443:2:8"
34708 },
34709 "returnParameters": {
34710 "id": 2027,
34711 "nodeType": "ParameterList",
34712 "parameters": [
34713 {
34714 "constant": false,
34715 "id": 2026,
34716 "mutability": "mutable",
34717 "name": "",
34718 "nodeType": "VariableDeclaration",
34719 "overrides": null,
34720 "scope": 2028,
34721 "src": "469:4:8",
34722 "stateVariable": false,
34723 "storageLocation": "default",
34724 "typeDescriptions": {
34725 "typeIdentifier": "t_uint256",
34726 "typeString": "uint256"
34727 },
34728 "typeName": {
34729 "id": 2025,
34730 "name": "uint",
34731 "nodeType": "ElementaryTypeName",
34732 "src": "469:4:8",
34733 "typeDescriptions": {
34734 "typeIdentifier": "t_uint256",
34735 "typeString": "uint256"
34736 }
34737 },
34738 "value": null,
34739 "visibility": "internal"
34740 }
34741 ],
34742 "src": "468:6:8"
34743 },
34744 "scope": 2232,
34745 "src": "423:52:8",
34746 "stateMutability": "view",
34747 "virtual": false,
34748 "visibility": "external"
34749 },
34750 {
34751 "body": null,
34752 "documentation": null,
34753 "functionSelector": "70a08231",
34754 "id": 2035,
34755 "implemented": false,
34756 "kind": "function",
34757 "modifiers": [],
34758 "name": "balanceOf",
34759 "nodeType": "FunctionDefinition",
34760 "overrides": null,
34761 "parameters": {
34762 "id": 2031,
34763 "nodeType": "ParameterList",
34764 "parameters": [
34765 {
34766 "constant": false,
34767 "id": 2030,
34768 "mutability": "mutable",
34769 "name": "owner",
34770 "nodeType": "VariableDeclaration",
34771 "overrides": null,
34772 "scope": 2035,
34773 "src": "499:13:8",
34774 "stateVariable": false,
34775 "storageLocation": "default",
34776 "typeDescriptions": {
34777 "typeIdentifier": "t_address",
34778 "typeString": "address"
34779 },
34780 "typeName": {
34781 "id": 2029,
34782 "name": "address",
34783 "nodeType": "ElementaryTypeName",
34784 "src": "499:7:8",
34785 "stateMutability": "nonpayable",
34786 "typeDescriptions": {
34787 "typeIdentifier": "t_address",
34788 "typeString": "address"
34789 }
34790 },
34791 "value": null,
34792 "visibility": "internal"
34793 }
34794 ],
34795 "src": "498:15:8"
34796 },
34797 "returnParameters": {
34798 "id": 2034,
34799 "nodeType": "ParameterList",
34800 "parameters": [
34801 {
34802 "constant": false,
34803 "id": 2033,
34804 "mutability": "mutable",
34805 "name": "",
34806 "nodeType": "VariableDeclaration",
34807 "overrides": null,
34808 "scope": 2035,
34809 "src": "537:4:8",
34810 "stateVariable": false,
34811 "storageLocation": "default",
34812 "typeDescriptions": {
34813 "typeIdentifier": "t_uint256",
34814 "typeString": "uint256"
34815 },
34816 "typeName": {
34817 "id": 2032,
34818 "name": "uint",
34819 "nodeType": "ElementaryTypeName",
34820 "src": "537:4:8",
34821 "typeDescriptions": {
34822 "typeIdentifier": "t_uint256",
34823 "typeString": "uint256"
34824 }
34825 },
34826 "value": null,
34827 "visibility": "internal"
34828 }
34829 ],
34830 "src": "536:6:8"
34831 },
34832 "scope": 2232,
34833 "src": "480:63:8",
34834 "stateMutability": "view",
34835 "virtual": false,
34836 "visibility": "external"
34837 },
34838 {
34839 "body": null,
34840 "documentation": null,
34841 "functionSelector": "dd62ed3e",
34842 "id": 2044,
34843 "implemented": false,
34844 "kind": "function",
34845 "modifiers": [],
34846 "name": "allowance",
34847 "nodeType": "FunctionDefinition",
34848 "overrides": null,
34849 "parameters": {
34850 "id": 2040,
34851 "nodeType": "ParameterList",
34852 "parameters": [
34853 {
34854 "constant": false,
34855 "id": 2037,
34856 "mutability": "mutable",
34857 "name": "owner",
34858 "nodeType": "VariableDeclaration",
34859 "overrides": null,
34860 "scope": 2044,
34861 "src": "567:13:8",
34862 "stateVariable": false,
34863 "storageLocation": "default",
34864 "typeDescriptions": {
34865 "typeIdentifier": "t_address",
34866 "typeString": "address"
34867 },
34868 "typeName": {
34869 "id": 2036,
34870 "name": "address",
34871 "nodeType": "ElementaryTypeName",
34872 "src": "567:7:8",
34873 "stateMutability": "nonpayable",
34874 "typeDescriptions": {
34875 "typeIdentifier": "t_address",
34876 "typeString": "address"
34877 }
34878 },
34879 "value": null,
34880 "visibility": "internal"
34881 },
34882 {
34883 "constant": false,
34884 "id": 2039,
34885 "mutability": "mutable",
34886 "name": "spender",
34887 "nodeType": "VariableDeclaration",
34888 "overrides": null,
34889 "scope": 2044,
34890 "src": "582:15:8",
34891 "stateVariable": false,
34892 "storageLocation": "default",
34893 "typeDescriptions": {
34894 "typeIdentifier": "t_address",
34895 "typeString": "address"
34896 },
34897 "typeName": {
34898 "id": 2038,
34899 "name": "address",
34900 "nodeType": "ElementaryTypeName",
34901 "src": "582:7:8",
34902 "stateMutability": "nonpayable",
34903 "typeDescriptions": {
34904 "typeIdentifier": "t_address",
34905 "typeString": "address"
34906 }
34907 },
34908 "value": null,
34909 "visibility": "internal"
34910 }
34911 ],
34912 "src": "566:32:8"
34913 },
34914 "returnParameters": {
34915 "id": 2043,
34916 "nodeType": "ParameterList",
34917 "parameters": [
34918 {
34919 "constant": false,
34920 "id": 2042,
34921 "mutability": "mutable",
34922 "name": "",
34923 "nodeType": "VariableDeclaration",
34924 "overrides": null,
34925 "scope": 2044,
34926 "src": "622:4:8",
34927 "stateVariable": false,
34928 "storageLocation": "default",
34929 "typeDescriptions": {
34930 "typeIdentifier": "t_uint256",
34931 "typeString": "uint256"
34932 },
34933 "typeName": {
34934 "id": 2041,
34935 "name": "uint",
34936 "nodeType": "ElementaryTypeName",
34937 "src": "622:4:8",
34938 "typeDescriptions": {
34939 "typeIdentifier": "t_uint256",
34940 "typeString": "uint256"
34941 }
34942 },
34943 "value": null,
34944 "visibility": "internal"
34945 }
34946 ],
34947 "src": "621:6:8"
34948 },
34949 "scope": 2232,
34950 "src": "548:80:8",
34951 "stateMutability": "view",
34952 "virtual": false,
34953 "visibility": "external"
34954 },
34955 {
34956 "body": null,
34957 "documentation": null,
34958 "functionSelector": "095ea7b3",
34959 "id": 2053,
34960 "implemented": false,
34961 "kind": "function",
34962 "modifiers": [],
34963 "name": "approve",
34964 "nodeType": "FunctionDefinition",
34965 "overrides": null,
34966 "parameters": {
34967 "id": 2049,
34968 "nodeType": "ParameterList",
34969 "parameters": [
34970 {
34971 "constant": false,
34972 "id": 2046,
34973 "mutability": "mutable",
34974 "name": "spender",
34975 "nodeType": "VariableDeclaration",
34976 "overrides": null,
34977 "scope": 2053,
34978 "src": "651:15:8",
34979 "stateVariable": false,
34980 "storageLocation": "default",
34981 "typeDescriptions": {
34982 "typeIdentifier": "t_address",
34983 "typeString": "address"
34984 },
34985 "typeName": {
34986 "id": 2045,
34987 "name": "address",
34988 "nodeType": "ElementaryTypeName",
34989 "src": "651:7:8",
34990 "stateMutability": "nonpayable",
34991 "typeDescriptions": {
34992 "typeIdentifier": "t_address",
34993 "typeString": "address"
34994 }
34995 },
34996 "value": null,
34997 "visibility": "internal"
34998 },
34999 {
35000 "constant": false,
35001 "id": 2048,
35002 "mutability": "mutable",
35003 "name": "value",
35004 "nodeType": "VariableDeclaration",
35005 "overrides": null,
35006 "scope": 2053,
35007 "src": "668:10:8",
35008 "stateVariable": false,
35009 "storageLocation": "default",
35010 "typeDescriptions": {
35011 "typeIdentifier": "t_uint256",
35012 "typeString": "uint256"
35013 },
35014 "typeName": {
35015 "id": 2047,
35016 "name": "uint",
35017 "nodeType": "ElementaryTypeName",
35018 "src": "668:4:8",
35019 "typeDescriptions": {
35020 "typeIdentifier": "t_uint256",
35021 "typeString": "uint256"
35022 }
35023 },
35024 "value": null,
35025 "visibility": "internal"
35026 }
35027 ],
35028 "src": "650:29:8"
35029 },
35030 "returnParameters": {
35031 "id": 2052,
35032 "nodeType": "ParameterList",
35033 "parameters": [
35034 {
35035 "constant": false,
35036 "id": 2051,
35037 "mutability": "mutable",
35038 "name": "",
35039 "nodeType": "VariableDeclaration",
35040 "overrides": null,
35041 "scope": 2053,
35042 "src": "698:4:8",
35043 "stateVariable": false,
35044 "storageLocation": "default",
35045 "typeDescriptions": {
35046 "typeIdentifier": "t_bool",
35047 "typeString": "bool"
35048 },
35049 "typeName": {
35050 "id": 2050,
35051 "name": "bool",
35052 "nodeType": "ElementaryTypeName",
35053 "src": "698:4:8",
35054 "typeDescriptions": {
35055 "typeIdentifier": "t_bool",
35056 "typeString": "bool"
35057 }
35058 },
35059 "value": null,
35060 "visibility": "internal"
35061 }
35062 ],
35063 "src": "697:6:8"
35064 },
35065 "scope": 2232,
35066 "src": "634:70:8",
35067 "stateMutability": "nonpayable",
35068 "virtual": false,
35069 "visibility": "external"
35070 },
35071 {
35072 "body": null,
35073 "documentation": null,
35074 "functionSelector": "a9059cbb",
35075 "id": 2062,
35076 "implemented": false,
35077 "kind": "function",
35078 "modifiers": [],
35079 "name": "transfer",
35080 "nodeType": "FunctionDefinition",
35081 "overrides": null,
35082 "parameters": {
35083 "id": 2058,
35084 "nodeType": "ParameterList",
35085 "parameters": [
35086 {
35087 "constant": false,
35088 "id": 2055,
35089 "mutability": "mutable",
35090 "name": "to",
35091 "nodeType": "VariableDeclaration",
35092 "overrides": null,
35093 "scope": 2062,
35094 "src": "727:10:8",
35095 "stateVariable": false,
35096 "storageLocation": "default",
35097 "typeDescriptions": {
35098 "typeIdentifier": "t_address",
35099 "typeString": "address"
35100 },
35101 "typeName": {
35102 "id": 2054,
35103 "name": "address",
35104 "nodeType": "ElementaryTypeName",
35105 "src": "727:7:8",
35106 "stateMutability": "nonpayable",
35107 "typeDescriptions": {
35108 "typeIdentifier": "t_address",
35109 "typeString": "address"
35110 }
35111 },
35112 "value": null,
35113 "visibility": "internal"
35114 },
35115 {
35116 "constant": false,
35117 "id": 2057,
35118 "mutability": "mutable",
35119 "name": "value",
35120 "nodeType": "VariableDeclaration",
35121 "overrides": null,
35122 "scope": 2062,
35123 "src": "739:10:8",
35124 "stateVariable": false,
35125 "storageLocation": "default",
35126 "typeDescriptions": {
35127 "typeIdentifier": "t_uint256",
35128 "typeString": "uint256"
35129 },
35130 "typeName": {
35131 "id": 2056,
35132 "name": "uint",
35133 "nodeType": "ElementaryTypeName",
35134 "src": "739:4:8",
35135 "typeDescriptions": {
35136 "typeIdentifier": "t_uint256",
35137 "typeString": "uint256"
35138 }
35139 },
35140 "value": null,
35141 "visibility": "internal"
35142 }
35143 ],
35144 "src": "726:24:8"
35145 },
35146 "returnParameters": {
35147 "id": 2061,
35148 "nodeType": "ParameterList",
35149 "parameters": [
35150 {
35151 "constant": false,
35152 "id": 2060,
35153 "mutability": "mutable",
35154 "name": "",
35155 "nodeType": "VariableDeclaration",
35156 "overrides": null,
35157 "scope": 2062,
35158 "src": "769:4:8",
35159 "stateVariable": false,
35160 "storageLocation": "default",
35161 "typeDescriptions": {
35162 "typeIdentifier": "t_bool",
35163 "typeString": "bool"
35164 },
35165 "typeName": {
35166 "id": 2059,
35167 "name": "bool",
35168 "nodeType": "ElementaryTypeName",
35169 "src": "769:4:8",
35170 "typeDescriptions": {
35171 "typeIdentifier": "t_bool",
35172 "typeString": "bool"
35173 }
35174 },
35175 "value": null,
35176 "visibility": "internal"
35177 }
35178 ],
35179 "src": "768:6:8"
35180 },
35181 "scope": 2232,
35182 "src": "709:66:8",
35183 "stateMutability": "nonpayable",
35184 "virtual": false,
35185 "visibility": "external"
35186 },
35187 {
35188 "body": null,
35189 "documentation": null,
35190 "functionSelector": "23b872dd",
35191 "id": 2073,
35192 "implemented": false,
35193 "kind": "function",
35194 "modifiers": [],
35195 "name": "transferFrom",
35196 "nodeType": "FunctionDefinition",
35197 "overrides": null,
35198 "parameters": {
35199 "id": 2069,
35200 "nodeType": "ParameterList",
35201 "parameters": [
35202 {
35203 "constant": false,
35204 "id": 2064,
35205 "mutability": "mutable",
35206 "name": "from",
35207 "nodeType": "VariableDeclaration",
35208 "overrides": null,
35209 "scope": 2073,
35210 "src": "802:12:8",
35211 "stateVariable": false,
35212 "storageLocation": "default",
35213 "typeDescriptions": {
35214 "typeIdentifier": "t_address",
35215 "typeString": "address"
35216 },
35217 "typeName": {
35218 "id": 2063,
35219 "name": "address",
35220 "nodeType": "ElementaryTypeName",
35221 "src": "802:7:8",
35222 "stateMutability": "nonpayable",
35223 "typeDescriptions": {
35224 "typeIdentifier": "t_address",
35225 "typeString": "address"
35226 }
35227 },
35228 "value": null,
35229 "visibility": "internal"
35230 },
35231 {
35232 "constant": false,
35233 "id": 2066,
35234 "mutability": "mutable",
35235 "name": "to",
35236 "nodeType": "VariableDeclaration",
35237 "overrides": null,
35238 "scope": 2073,
35239 "src": "816:10:8",
35240 "stateVariable": false,
35241 "storageLocation": "default",
35242 "typeDescriptions": {
35243 "typeIdentifier": "t_address",
35244 "typeString": "address"
35245 },
35246 "typeName": {
35247 "id": 2065,
35248 "name": "address",
35249 "nodeType": "ElementaryTypeName",
35250 "src": "816:7:8",
35251 "stateMutability": "nonpayable",
35252 "typeDescriptions": {
35253 "typeIdentifier": "t_address",
35254 "typeString": "address"
35255 }
35256 },
35257 "value": null,
35258 "visibility": "internal"
35259 },
35260 {
35261 "constant": false,
35262 "id": 2068,
35263 "mutability": "mutable",
35264 "name": "value",
35265 "nodeType": "VariableDeclaration",
35266 "overrides": null,
35267 "scope": 2073,
35268 "src": "828:10:8",
35269 "stateVariable": false,
35270 "storageLocation": "default",
35271 "typeDescriptions": {
35272 "typeIdentifier": "t_uint256",
35273 "typeString": "uint256"
35274 },
35275 "typeName": {
35276 "id": 2067,
35277 "name": "uint",
35278 "nodeType": "ElementaryTypeName",
35279 "src": "828:4:8",
35280 "typeDescriptions": {
35281 "typeIdentifier": "t_uint256",
35282 "typeString": "uint256"
35283 }
35284 },
35285 "value": null,
35286 "visibility": "internal"
35287 }
35288 ],
35289 "src": "801:38:8"
35290 },
35291 "returnParameters": {
35292 "id": 2072,
35293 "nodeType": "ParameterList",
35294 "parameters": [
35295 {
35296 "constant": false,
35297 "id": 2071,
35298 "mutability": "mutable",
35299 "name": "",
35300 "nodeType": "VariableDeclaration",
35301 "overrides": null,
35302 "scope": 2073,
35303 "src": "858:4:8",
35304 "stateVariable": false,
35305 "storageLocation": "default",
35306 "typeDescriptions": {
35307 "typeIdentifier": "t_bool",
35308 "typeString": "bool"
35309 },
35310 "typeName": {
35311 "id": 2070,
35312 "name": "bool",
35313 "nodeType": "ElementaryTypeName",
35314 "src": "858:4:8",
35315 "typeDescriptions": {
35316 "typeIdentifier": "t_bool",
35317 "typeString": "bool"
35318 }
35319 },
35320 "value": null,
35321 "visibility": "internal"
35322 }
35323 ],
35324 "src": "857:6:8"
35325 },
35326 "scope": 2232,
35327 "src": "780:84:8",
35328 "stateMutability": "nonpayable",
35329 "virtual": false,
35330 "visibility": "external"
35331 },
35332 {
35333 "body": null,
35334 "documentation": null,
35335 "functionSelector": "3644e515",
35336 "id": 2078,
35337 "implemented": false,
35338 "kind": "function",
35339 "modifiers": [],
35340 "name": "DOMAIN_SEPARATOR",
35341 "nodeType": "FunctionDefinition",
35342 "overrides": null,
35343 "parameters": {
35344 "id": 2074,
35345 "nodeType": "ParameterList",
35346 "parameters": [],
35347 "src": "895:2:8"
35348 },
35349 "returnParameters": {
35350 "id": 2077,
35351 "nodeType": "ParameterList",
35352 "parameters": [
35353 {
35354 "constant": false,
35355 "id": 2076,
35356 "mutability": "mutable",
35357 "name": "",
35358 "nodeType": "VariableDeclaration",
35359 "overrides": null,
35360 "scope": 2078,
35361 "src": "921:7:8",
35362 "stateVariable": false,
35363 "storageLocation": "default",
35364 "typeDescriptions": {
35365 "typeIdentifier": "t_bytes32",
35366 "typeString": "bytes32"
35367 },
35368 "typeName": {
35369 "id": 2075,
35370 "name": "bytes32",
35371 "nodeType": "ElementaryTypeName",
35372 "src": "921:7:8",
35373 "typeDescriptions": {
35374 "typeIdentifier": "t_bytes32",
35375 "typeString": "bytes32"
35376 }
35377 },
35378 "value": null,
35379 "visibility": "internal"
35380 }
35381 ],
35382 "src": "920:9:8"
35383 },
35384 "scope": 2232,
35385 "src": "870:60:8",
35386 "stateMutability": "view",
35387 "virtual": false,
35388 "visibility": "external"
35389 },
35390 {
35391 "body": null,
35392 "documentation": null,
35393 "functionSelector": "30adf81f",
35394 "id": 2083,
35395 "implemented": false,
35396 "kind": "function",
35397 "modifiers": [],
35398 "name": "PERMIT_TYPEHASH",
35399 "nodeType": "FunctionDefinition",
35400 "overrides": null,
35401 "parameters": {
35402 "id": 2079,
35403 "nodeType": "ParameterList",
35404 "parameters": [],
35405 "src": "959:2:8"
35406 },
35407 "returnParameters": {
35408 "id": 2082,
35409 "nodeType": "ParameterList",
35410 "parameters": [
35411 {
35412 "constant": false,
35413 "id": 2081,
35414 "mutability": "mutable",
35415 "name": "",
35416 "nodeType": "VariableDeclaration",
35417 "overrides": null,
35418 "scope": 2083,
35419 "src": "985:7:8",
35420 "stateVariable": false,
35421 "storageLocation": "default",
35422 "typeDescriptions": {
35423 "typeIdentifier": "t_bytes32",
35424 "typeString": "bytes32"
35425 },
35426 "typeName": {
35427 "id": 2080,
35428 "name": "bytes32",
35429 "nodeType": "ElementaryTypeName",
35430 "src": "985:7:8",
35431 "typeDescriptions": {
35432 "typeIdentifier": "t_bytes32",
35433 "typeString": "bytes32"
35434 }
35435 },
35436 "value": null,
35437 "visibility": "internal"
35438 }
35439 ],
35440 "src": "984:9:8"
35441 },
35442 "scope": 2232,
35443 "src": "935:59:8",
35444 "stateMutability": "pure",
35445 "virtual": false,
35446 "visibility": "external"
35447 },
35448 {
35449 "body": null,
35450 "documentation": null,
35451 "functionSelector": "7ecebe00",
35452 "id": 2090,
35453 "implemented": false,
35454 "kind": "function",
35455 "modifiers": [],
35456 "name": "nonces",
35457 "nodeType": "FunctionDefinition",
35458 "overrides": null,
35459 "parameters": {
35460 "id": 2086,
35461 "nodeType": "ParameterList",
35462 "parameters": [
35463 {
35464 "constant": false,
35465 "id": 2085,
35466 "mutability": "mutable",
35467 "name": "owner",
35468 "nodeType": "VariableDeclaration",
35469 "overrides": null,
35470 "scope": 2090,
35471 "src": "1015:13:8",
35472 "stateVariable": false,
35473 "storageLocation": "default",
35474 "typeDescriptions": {
35475 "typeIdentifier": "t_address",
35476 "typeString": "address"
35477 },
35478 "typeName": {
35479 "id": 2084,
35480 "name": "address",
35481 "nodeType": "ElementaryTypeName",
35482 "src": "1015:7:8",
35483 "stateMutability": "nonpayable",
35484 "typeDescriptions": {
35485 "typeIdentifier": "t_address",
35486 "typeString": "address"
35487 }
35488 },
35489 "value": null,
35490 "visibility": "internal"
35491 }
35492 ],
35493 "src": "1014:15:8"
35494 },
35495 "returnParameters": {
35496 "id": 2089,
35497 "nodeType": "ParameterList",
35498 "parameters": [
35499 {
35500 "constant": false,
35501 "id": 2088,
35502 "mutability": "mutable",
35503 "name": "",
35504 "nodeType": "VariableDeclaration",
35505 "overrides": null,
35506 "scope": 2090,
35507 "src": "1053:4:8",
35508 "stateVariable": false,
35509 "storageLocation": "default",
35510 "typeDescriptions": {
35511 "typeIdentifier": "t_uint256",
35512 "typeString": "uint256"
35513 },
35514 "typeName": {
35515 "id": 2087,
35516 "name": "uint",
35517 "nodeType": "ElementaryTypeName",
35518 "src": "1053:4:8",
35519 "typeDescriptions": {
35520 "typeIdentifier": "t_uint256",
35521 "typeString": "uint256"
35522 }
35523 },
35524 "value": null,
35525 "visibility": "internal"
35526 }
35527 ],
35528 "src": "1052:6:8"
35529 },
35530 "scope": 2232,
35531 "src": "999:60:8",
35532 "stateMutability": "view",
35533 "virtual": false,
35534 "visibility": "external"
35535 },
35536 {
35537 "body": null,
35538 "documentation": null,
35539 "functionSelector": "d505accf",
35540 "id": 2107,
35541 "implemented": false,
35542 "kind": "function",
35543 "modifiers": [],
35544 "name": "permit",
35545 "nodeType": "FunctionDefinition",
35546 "overrides": null,
35547 "parameters": {
35548 "id": 2105,
35549 "nodeType": "ParameterList",
35550 "parameters": [
35551 {
35552 "constant": false,
35553 "id": 2092,
35554 "mutability": "mutable",
35555 "name": "owner",
35556 "nodeType": "VariableDeclaration",
35557 "overrides": null,
35558 "scope": 2107,
35559 "src": "1081:13:8",
35560 "stateVariable": false,
35561 "storageLocation": "default",
35562 "typeDescriptions": {
35563 "typeIdentifier": "t_address",
35564 "typeString": "address"
35565 },
35566 "typeName": {
35567 "id": 2091,
35568 "name": "address",
35569 "nodeType": "ElementaryTypeName",
35570 "src": "1081:7:8",
35571 "stateMutability": "nonpayable",
35572 "typeDescriptions": {
35573 "typeIdentifier": "t_address",
35574 "typeString": "address"
35575 }
35576 },
35577 "value": null,
35578 "visibility": "internal"
35579 },
35580 {
35581 "constant": false,
35582 "id": 2094,
35583 "mutability": "mutable",
35584 "name": "spender",
35585 "nodeType": "VariableDeclaration",
35586 "overrides": null,
35587 "scope": 2107,
35588 "src": "1096:15:8",
35589 "stateVariable": false,
35590 "storageLocation": "default",
35591 "typeDescriptions": {
35592 "typeIdentifier": "t_address",
35593 "typeString": "address"
35594 },
35595 "typeName": {
35596 "id": 2093,
35597 "name": "address",
35598 "nodeType": "ElementaryTypeName",
35599 "src": "1096:7:8",
35600 "stateMutability": "nonpayable",
35601 "typeDescriptions": {
35602 "typeIdentifier": "t_address",
35603 "typeString": "address"
35604 }
35605 },
35606 "value": null,
35607 "visibility": "internal"
35608 },
35609 {
35610 "constant": false,
35611 "id": 2096,
35612 "mutability": "mutable",
35613 "name": "value",
35614 "nodeType": "VariableDeclaration",
35615 "overrides": null,
35616 "scope": 2107,
35617 "src": "1113:10:8",
35618 "stateVariable": false,
35619 "storageLocation": "default",
35620 "typeDescriptions": {
35621 "typeIdentifier": "t_uint256",
35622 "typeString": "uint256"
35623 },
35624 "typeName": {
35625 "id": 2095,
35626 "name": "uint",
35627 "nodeType": "ElementaryTypeName",
35628 "src": "1113:4:8",
35629 "typeDescriptions": {
35630 "typeIdentifier": "t_uint256",
35631 "typeString": "uint256"
35632 }
35633 },
35634 "value": null,
35635 "visibility": "internal"
35636 },
35637 {
35638 "constant": false,
35639 "id": 2098,
35640 "mutability": "mutable",
35641 "name": "deadline",
35642 "nodeType": "VariableDeclaration",
35643 "overrides": null,
35644 "scope": 2107,
35645 "src": "1125:13:8",
35646 "stateVariable": false,
35647 "storageLocation": "default",
35648 "typeDescriptions": {
35649 "typeIdentifier": "t_uint256",
35650 "typeString": "uint256"
35651 },
35652 "typeName": {
35653 "id": 2097,
35654 "name": "uint",
35655 "nodeType": "ElementaryTypeName",
35656 "src": "1125:4:8",
35657 "typeDescriptions": {
35658 "typeIdentifier": "t_uint256",
35659 "typeString": "uint256"
35660 }
35661 },
35662 "value": null,
35663 "visibility": "internal"
35664 },
35665 {
35666 "constant": false,
35667 "id": 2100,
35668 "mutability": "mutable",
35669 "name": "v",
35670 "nodeType": "VariableDeclaration",
35671 "overrides": null,
35672 "scope": 2107,
35673 "src": "1140:7:8",
35674 "stateVariable": false,
35675 "storageLocation": "default",
35676 "typeDescriptions": {
35677 "typeIdentifier": "t_uint8",
35678 "typeString": "uint8"
35679 },
35680 "typeName": {
35681 "id": 2099,
35682 "name": "uint8",
35683 "nodeType": "ElementaryTypeName",
35684 "src": "1140:5:8",
35685 "typeDescriptions": {
35686 "typeIdentifier": "t_uint8",
35687 "typeString": "uint8"
35688 }
35689 },
35690 "value": null,
35691 "visibility": "internal"
35692 },
35693 {
35694 "constant": false,
35695 "id": 2102,
35696 "mutability": "mutable",
35697 "name": "r",
35698 "nodeType": "VariableDeclaration",
35699 "overrides": null,
35700 "scope": 2107,
35701 "src": "1149:9:8",
35702 "stateVariable": false,
35703 "storageLocation": "default",
35704 "typeDescriptions": {
35705 "typeIdentifier": "t_bytes32",
35706 "typeString": "bytes32"
35707 },
35708 "typeName": {
35709 "id": 2101,
35710 "name": "bytes32",
35711 "nodeType": "ElementaryTypeName",
35712 "src": "1149:7:8",
35713 "typeDescriptions": {
35714 "typeIdentifier": "t_bytes32",
35715 "typeString": "bytes32"
35716 }
35717 },
35718 "value": null,
35719 "visibility": "internal"
35720 },
35721 {
35722 "constant": false,
35723 "id": 2104,
35724 "mutability": "mutable",
35725 "name": "s",
35726 "nodeType": "VariableDeclaration",
35727 "overrides": null,
35728 "scope": 2107,
35729 "src": "1160:9:8",
35730 "stateVariable": false,
35731 "storageLocation": "default",
35732 "typeDescriptions": {
35733 "typeIdentifier": "t_bytes32",
35734 "typeString": "bytes32"
35735 },
35736 "typeName": {
35737 "id": 2103,
35738 "name": "bytes32",
35739 "nodeType": "ElementaryTypeName",
35740 "src": "1160:7:8",
35741 "typeDescriptions": {
35742 "typeIdentifier": "t_bytes32",
35743 "typeString": "bytes32"
35744 }
35745 },
35746 "value": null,
35747 "visibility": "internal"
35748 }
35749 ],
35750 "src": "1080:90:8"
35751 },
35752 "returnParameters": {
35753 "id": 2106,
35754 "nodeType": "ParameterList",
35755 "parameters": [],
35756 "src": "1179:0:8"
35757 },
35758 "scope": 2232,
35759 "src": "1065:115:8",
35760 "stateMutability": "nonpayable",
35761 "virtual": false,
35762 "visibility": "external"
35763 },
35764 {
35765 "anonymous": false,
35766 "documentation": null,
35767 "id": 2115,
35768 "name": "Mint",
35769 "nodeType": "EventDefinition",
35770 "parameters": {
35771 "id": 2114,
35772 "nodeType": "ParameterList",
35773 "parameters": [
35774 {
35775 "constant": false,
35776 "id": 2109,
35777 "indexed": true,
35778 "mutability": "mutable",
35779 "name": "sender",
35780 "nodeType": "VariableDeclaration",
35781 "overrides": null,
35782 "scope": 2115,
35783 "src": "1197:22:8",
35784 "stateVariable": false,
35785 "storageLocation": "default",
35786 "typeDescriptions": {
35787 "typeIdentifier": "t_address",
35788 "typeString": "address"
35789 },
35790 "typeName": {
35791 "id": 2108,
35792 "name": "address",
35793 "nodeType": "ElementaryTypeName",
35794 "src": "1197:7:8",
35795 "stateMutability": "nonpayable",
35796 "typeDescriptions": {
35797 "typeIdentifier": "t_address",
35798 "typeString": "address"
35799 }
35800 },
35801 "value": null,
35802 "visibility": "internal"
35803 },
35804 {
35805 "constant": false,
35806 "id": 2111,
35807 "indexed": false,
35808 "mutability": "mutable",
35809 "name": "amount0",
35810 "nodeType": "VariableDeclaration",
35811 "overrides": null,
35812 "scope": 2115,
35813 "src": "1221:12:8",
35814 "stateVariable": false,
35815 "storageLocation": "default",
35816 "typeDescriptions": {
35817 "typeIdentifier": "t_uint256",
35818 "typeString": "uint256"
35819 },
35820 "typeName": {
35821 "id": 2110,
35822 "name": "uint",
35823 "nodeType": "ElementaryTypeName",
35824 "src": "1221:4:8",
35825 "typeDescriptions": {
35826 "typeIdentifier": "t_uint256",
35827 "typeString": "uint256"
35828 }
35829 },
35830 "value": null,
35831 "visibility": "internal"
35832 },
35833 {
35834 "constant": false,
35835 "id": 2113,
35836 "indexed": false,
35837 "mutability": "mutable",
35838 "name": "amount1",
35839 "nodeType": "VariableDeclaration",
35840 "overrides": null,
35841 "scope": 2115,
35842 "src": "1235:12:8",
35843 "stateVariable": false,
35844 "storageLocation": "default",
35845 "typeDescriptions": {
35846 "typeIdentifier": "t_uint256",
35847 "typeString": "uint256"
35848 },
35849 "typeName": {
35850 "id": 2112,
35851 "name": "uint",
35852 "nodeType": "ElementaryTypeName",
35853 "src": "1235:4:8",
35854 "typeDescriptions": {
35855 "typeIdentifier": "t_uint256",
35856 "typeString": "uint256"
35857 }
35858 },
35859 "value": null,
35860 "visibility": "internal"
35861 }
35862 ],
35863 "src": "1196:52:8"
35864 },
35865 "src": "1186:63:8"
35866 },
35867 {
35868 "anonymous": false,
35869 "documentation": null,
35870 "id": 2125,
35871 "name": "Burn",
35872 "nodeType": "EventDefinition",
35873 "parameters": {
35874 "id": 2124,
35875 "nodeType": "ParameterList",
35876 "parameters": [
35877 {
35878 "constant": false,
35879 "id": 2117,
35880 "indexed": true,
35881 "mutability": "mutable",
35882 "name": "sender",
35883 "nodeType": "VariableDeclaration",
35884 "overrides": null,
35885 "scope": 2125,
35886 "src": "1265:22:8",
35887 "stateVariable": false,
35888 "storageLocation": "default",
35889 "typeDescriptions": {
35890 "typeIdentifier": "t_address",
35891 "typeString": "address"
35892 },
35893 "typeName": {
35894 "id": 2116,
35895 "name": "address",
35896 "nodeType": "ElementaryTypeName",
35897 "src": "1265:7:8",
35898 "stateMutability": "nonpayable",
35899 "typeDescriptions": {
35900 "typeIdentifier": "t_address",
35901 "typeString": "address"
35902 }
35903 },
35904 "value": null,
35905 "visibility": "internal"
35906 },
35907 {
35908 "constant": false,
35909 "id": 2119,
35910 "indexed": false,
35911 "mutability": "mutable",
35912 "name": "amount0",
35913 "nodeType": "VariableDeclaration",
35914 "overrides": null,
35915 "scope": 2125,
35916 "src": "1289:12:8",
35917 "stateVariable": false,
35918 "storageLocation": "default",
35919 "typeDescriptions": {
35920 "typeIdentifier": "t_uint256",
35921 "typeString": "uint256"
35922 },
35923 "typeName": {
35924 "id": 2118,
35925 "name": "uint",
35926 "nodeType": "ElementaryTypeName",
35927 "src": "1289:4:8",
35928 "typeDescriptions": {
35929 "typeIdentifier": "t_uint256",
35930 "typeString": "uint256"
35931 }
35932 },
35933 "value": null,
35934 "visibility": "internal"
35935 },
35936 {
35937 "constant": false,
35938 "id": 2121,
35939 "indexed": false,
35940 "mutability": "mutable",
35941 "name": "amount1",
35942 "nodeType": "VariableDeclaration",
35943 "overrides": null,
35944 "scope": 2125,
35945 "src": "1303:12:8",
35946 "stateVariable": false,
35947 "storageLocation": "default",
35948 "typeDescriptions": {
35949 "typeIdentifier": "t_uint256",
35950 "typeString": "uint256"
35951 },
35952 "typeName": {
35953 "id": 2120,
35954 "name": "uint",
35955 "nodeType": "ElementaryTypeName",
35956 "src": "1303:4:8",
35957 "typeDescriptions": {
35958 "typeIdentifier": "t_uint256",
35959 "typeString": "uint256"
35960 }
35961 },
35962 "value": null,
35963 "visibility": "internal"
35964 },
35965 {
35966 "constant": false,
35967 "id": 2123,
35968 "indexed": true,
35969 "mutability": "mutable",
35970 "name": "to",
35971 "nodeType": "VariableDeclaration",
35972 "overrides": null,
35973 "scope": 2125,
35974 "src": "1317:18:8",
35975 "stateVariable": false,
35976 "storageLocation": "default",
35977 "typeDescriptions": {
35978 "typeIdentifier": "t_address",
35979 "typeString": "address"
35980 },
35981 "typeName": {
35982 "id": 2122,
35983 "name": "address",
35984 "nodeType": "ElementaryTypeName",
35985 "src": "1317:7:8",
35986 "stateMutability": "nonpayable",
35987 "typeDescriptions": {
35988 "typeIdentifier": "t_address",
35989 "typeString": "address"
35990 }
35991 },
35992 "value": null,
35993 "visibility": "internal"
35994 }
35995 ],
35996 "src": "1264:72:8"
35997 },
35998 "src": "1254:83:8"
35999 },
36000 {
36001 "anonymous": false,
36002 "documentation": null,
36003 "id": 2139,
36004 "name": "Swap",
36005 "nodeType": "EventDefinition",
36006 "parameters": {
36007 "id": 2138,
36008 "nodeType": "ParameterList",
36009 "parameters": [
36010 {
36011 "constant": false,
36012 "id": 2127,
36013 "indexed": true,
36014 "mutability": "mutable",
36015 "name": "sender",
36016 "nodeType": "VariableDeclaration",
36017 "overrides": null,
36018 "scope": 2139,
36019 "src": "1362:22:8",
36020 "stateVariable": false,
36021 "storageLocation": "default",
36022 "typeDescriptions": {
36023 "typeIdentifier": "t_address",
36024 "typeString": "address"
36025 },
36026 "typeName": {
36027 "id": 2126,
36028 "name": "address",
36029 "nodeType": "ElementaryTypeName",
36030 "src": "1362:7:8",
36031 "stateMutability": "nonpayable",
36032 "typeDescriptions": {
36033 "typeIdentifier": "t_address",
36034 "typeString": "address"
36035 }
36036 },
36037 "value": null,
36038 "visibility": "internal"
36039 },
36040 {
36041 "constant": false,
36042 "id": 2129,
36043 "indexed": false,
36044 "mutability": "mutable",
36045 "name": "amount0In",
36046 "nodeType": "VariableDeclaration",
36047 "overrides": null,
36048 "scope": 2139,
36049 "src": "1394:14:8",
36050 "stateVariable": false,
36051 "storageLocation": "default",
36052 "typeDescriptions": {
36053 "typeIdentifier": "t_uint256",
36054 "typeString": "uint256"
36055 },
36056 "typeName": {
36057 "id": 2128,
36058 "name": "uint",
36059 "nodeType": "ElementaryTypeName",
36060 "src": "1394:4:8",
36061 "typeDescriptions": {
36062 "typeIdentifier": "t_uint256",
36063 "typeString": "uint256"
36064 }
36065 },
36066 "value": null,
36067 "visibility": "internal"
36068 },
36069 {
36070 "constant": false,
36071 "id": 2131,
36072 "indexed": false,
36073 "mutability": "mutable",
36074 "name": "amount1In",
36075 "nodeType": "VariableDeclaration",
36076 "overrides": null,
36077 "scope": 2139,
36078 "src": "1418:14:8",
36079 "stateVariable": false,
36080 "storageLocation": "default",
36081 "typeDescriptions": {
36082 "typeIdentifier": "t_uint256",
36083 "typeString": "uint256"
36084 },
36085 "typeName": {
36086 "id": 2130,
36087 "name": "uint",
36088 "nodeType": "ElementaryTypeName",
36089 "src": "1418:4:8",
36090 "typeDescriptions": {
36091 "typeIdentifier": "t_uint256",
36092 "typeString": "uint256"
36093 }
36094 },
36095 "value": null,
36096 "visibility": "internal"
36097 },
36098 {
36099 "constant": false,
36100 "id": 2133,
36101 "indexed": false,
36102 "mutability": "mutable",
36103 "name": "amount0Out",
36104 "nodeType": "VariableDeclaration",
36105 "overrides": null,
36106 "scope": 2139,
36107 "src": "1442:15:8",
36108 "stateVariable": false,
36109 "storageLocation": "default",
36110 "typeDescriptions": {
36111 "typeIdentifier": "t_uint256",
36112 "typeString": "uint256"
36113 },
36114 "typeName": {
36115 "id": 2132,
36116 "name": "uint",
36117 "nodeType": "ElementaryTypeName",
36118 "src": "1442:4:8",
36119 "typeDescriptions": {
36120 "typeIdentifier": "t_uint256",
36121 "typeString": "uint256"
36122 }
36123 },
36124 "value": null,
36125 "visibility": "internal"
36126 },
36127 {
36128 "constant": false,
36129 "id": 2135,
36130 "indexed": false,
36131 "mutability": "mutable",
36132 "name": "amount1Out",
36133 "nodeType": "VariableDeclaration",
36134 "overrides": null,
36135 "scope": 2139,
36136 "src": "1467:15:8",
36137 "stateVariable": false,
36138 "storageLocation": "default",
36139 "typeDescriptions": {
36140 "typeIdentifier": "t_uint256",
36141 "typeString": "uint256"
36142 },
36143 "typeName": {
36144 "id": 2134,
36145 "name": "uint",
36146 "nodeType": "ElementaryTypeName",
36147 "src": "1467:4:8",
36148 "typeDescriptions": {
36149 "typeIdentifier": "t_uint256",
36150 "typeString": "uint256"
36151 }
36152 },
36153 "value": null,
36154 "visibility": "internal"
36155 },
36156 {
36157 "constant": false,
36158 "id": 2137,
36159 "indexed": true,
36160 "mutability": "mutable",
36161 "name": "to",
36162 "nodeType": "VariableDeclaration",
36163 "overrides": null,
36164 "scope": 2139,
36165 "src": "1492:18:8",
36166 "stateVariable": false,
36167 "storageLocation": "default",
36168 "typeDescriptions": {
36169 "typeIdentifier": "t_address",
36170 "typeString": "address"
36171 },
36172 "typeName": {
36173 "id": 2136,
36174 "name": "address",
36175 "nodeType": "ElementaryTypeName",
36176 "src": "1492:7:8",
36177 "stateMutability": "nonpayable",
36178 "typeDescriptions": {
36179 "typeIdentifier": "t_address",
36180 "typeString": "address"
36181 }
36182 },
36183 "value": null,
36184 "visibility": "internal"
36185 }
36186 ],
36187 "src": "1352:164:8"
36188 },
36189 "src": "1342:175:8"
36190 },
36191 {
36192 "anonymous": false,
36193 "documentation": null,
36194 "id": 2145,
36195 "name": "Sync",
36196 "nodeType": "EventDefinition",
36197 "parameters": {
36198 "id": 2144,
36199 "nodeType": "ParameterList",
36200 "parameters": [
36201 {
36202 "constant": false,
36203 "id": 2141,
36204 "indexed": false,
36205 "mutability": "mutable",
36206 "name": "reserve0",
36207 "nodeType": "VariableDeclaration",
36208 "overrides": null,
36209 "scope": 2145,
36210 "src": "1533:16:8",
36211 "stateVariable": false,
36212 "storageLocation": "default",
36213 "typeDescriptions": {
36214 "typeIdentifier": "t_uint112",
36215 "typeString": "uint112"
36216 },
36217 "typeName": {
36218 "id": 2140,
36219 "name": "uint112",
36220 "nodeType": "ElementaryTypeName",
36221 "src": "1533:7:8",
36222 "typeDescriptions": {
36223 "typeIdentifier": "t_uint112",
36224 "typeString": "uint112"
36225 }
36226 },
36227 "value": null,
36228 "visibility": "internal"
36229 },
36230 {
36231 "constant": false,
36232 "id": 2143,
36233 "indexed": false,
36234 "mutability": "mutable",
36235 "name": "reserve1",
36236 "nodeType": "VariableDeclaration",
36237 "overrides": null,
36238 "scope": 2145,
36239 "src": "1551:16:8",
36240 "stateVariable": false,
36241 "storageLocation": "default",
36242 "typeDescriptions": {
36243 "typeIdentifier": "t_uint112",
36244 "typeString": "uint112"
36245 },
36246 "typeName": {
36247 "id": 2142,
36248 "name": "uint112",
36249 "nodeType": "ElementaryTypeName",
36250 "src": "1551:7:8",
36251 "typeDescriptions": {
36252 "typeIdentifier": "t_uint112",
36253 "typeString": "uint112"
36254 }
36255 },
36256 "value": null,
36257 "visibility": "internal"
36258 }
36259 ],
36260 "src": "1532:36:8"
36261 },
36262 "src": "1522:47:8"
36263 },
36264 {
36265 "body": null,
36266 "documentation": null,
36267 "functionSelector": "ba9a7a56",
36268 "id": 2150,
36269 "implemented": false,
36270 "kind": "function",
36271 "modifiers": [],
36272 "name": "MINIMUM_LIQUIDITY",
36273 "nodeType": "FunctionDefinition",
36274 "overrides": null,
36275 "parameters": {
36276 "id": 2146,
36277 "nodeType": "ParameterList",
36278 "parameters": [],
36279 "src": "1601:2:8"
36280 },
36281 "returnParameters": {
36282 "id": 2149,
36283 "nodeType": "ParameterList",
36284 "parameters": [
36285 {
36286 "constant": false,
36287 "id": 2148,
36288 "mutability": "mutable",
36289 "name": "",
36290 "nodeType": "VariableDeclaration",
36291 "overrides": null,
36292 "scope": 2150,
36293 "src": "1627:4:8",
36294 "stateVariable": false,
36295 "storageLocation": "default",
36296 "typeDescriptions": {
36297 "typeIdentifier": "t_uint256",
36298 "typeString": "uint256"
36299 },
36300 "typeName": {
36301 "id": 2147,
36302 "name": "uint",
36303 "nodeType": "ElementaryTypeName",
36304 "src": "1627:4:8",
36305 "typeDescriptions": {
36306 "typeIdentifier": "t_uint256",
36307 "typeString": "uint256"
36308 }
36309 },
36310 "value": null,
36311 "visibility": "internal"
36312 }
36313 ],
36314 "src": "1626:6:8"
36315 },
36316 "scope": 2232,
36317 "src": "1575:58:8",
36318 "stateMutability": "pure",
36319 "virtual": false,
36320 "visibility": "external"
36321 },
36322 {
36323 "body": null,
36324 "documentation": null,
36325 "functionSelector": "c45a0155",
36326 "id": 2155,
36327 "implemented": false,
36328 "kind": "function",
36329 "modifiers": [],
36330 "name": "factory",
36331 "nodeType": "FunctionDefinition",
36332 "overrides": null,
36333 "parameters": {
36334 "id": 2151,
36335 "nodeType": "ParameterList",
36336 "parameters": [],
36337 "src": "1654:2:8"
36338 },
36339 "returnParameters": {
36340 "id": 2154,
36341 "nodeType": "ParameterList",
36342 "parameters": [
36343 {
36344 "constant": false,
36345 "id": 2153,
36346 "mutability": "mutable",
36347 "name": "",
36348 "nodeType": "VariableDeclaration",
36349 "overrides": null,
36350 "scope": 2155,
36351 "src": "1680:7:8",
36352 "stateVariable": false,
36353 "storageLocation": "default",
36354 "typeDescriptions": {
36355 "typeIdentifier": "t_address",
36356 "typeString": "address"
36357 },
36358 "typeName": {
36359 "id": 2152,
36360 "name": "address",
36361 "nodeType": "ElementaryTypeName",
36362 "src": "1680:7:8",
36363 "stateMutability": "nonpayable",
36364 "typeDescriptions": {
36365 "typeIdentifier": "t_address",
36366 "typeString": "address"
36367 }
36368 },
36369 "value": null,
36370 "visibility": "internal"
36371 }
36372 ],
36373 "src": "1679:9:8"
36374 },
36375 "scope": 2232,
36376 "src": "1638:51:8",
36377 "stateMutability": "view",
36378 "virtual": false,
36379 "visibility": "external"
36380 },
36381 {
36382 "body": null,
36383 "documentation": null,
36384 "functionSelector": "0dfe1681",
36385 "id": 2160,
36386 "implemented": false,
36387 "kind": "function",
36388 "modifiers": [],
36389 "name": "token0",
36390 "nodeType": "FunctionDefinition",
36391 "overrides": null,
36392 "parameters": {
36393 "id": 2156,
36394 "nodeType": "ParameterList",
36395 "parameters": [],
36396 "src": "1709:2:8"
36397 },
36398 "returnParameters": {
36399 "id": 2159,
36400 "nodeType": "ParameterList",
36401 "parameters": [
36402 {
36403 "constant": false,
36404 "id": 2158,
36405 "mutability": "mutable",
36406 "name": "",
36407 "nodeType": "VariableDeclaration",
36408 "overrides": null,
36409 "scope": 2160,
36410 "src": "1735:7:8",
36411 "stateVariable": false,
36412 "storageLocation": "default",
36413 "typeDescriptions": {
36414 "typeIdentifier": "t_address",
36415 "typeString": "address"
36416 },
36417 "typeName": {
36418 "id": 2157,
36419 "name": "address",
36420 "nodeType": "ElementaryTypeName",
36421 "src": "1735:7:8",
36422 "stateMutability": "nonpayable",
36423 "typeDescriptions": {
36424 "typeIdentifier": "t_address",
36425 "typeString": "address"
36426 }
36427 },
36428 "value": null,
36429 "visibility": "internal"
36430 }
36431 ],
36432 "src": "1734:9:8"
36433 },
36434 "scope": 2232,
36435 "src": "1694:50:8",
36436 "stateMutability": "view",
36437 "virtual": false,
36438 "visibility": "external"
36439 },
36440 {
36441 "body": null,
36442 "documentation": null,
36443 "functionSelector": "d21220a7",
36444 "id": 2165,
36445 "implemented": false,
36446 "kind": "function",
36447 "modifiers": [],
36448 "name": "token1",
36449 "nodeType": "FunctionDefinition",
36450 "overrides": null,
36451 "parameters": {
36452 "id": 2161,
36453 "nodeType": "ParameterList",
36454 "parameters": [],
36455 "src": "1764:2:8"
36456 },
36457 "returnParameters": {
36458 "id": 2164,
36459 "nodeType": "ParameterList",
36460 "parameters": [
36461 {
36462 "constant": false,
36463 "id": 2163,
36464 "mutability": "mutable",
36465 "name": "",
36466 "nodeType": "VariableDeclaration",
36467 "overrides": null,
36468 "scope": 2165,
36469 "src": "1790:7:8",
36470 "stateVariable": false,
36471 "storageLocation": "default",
36472 "typeDescriptions": {
36473 "typeIdentifier": "t_address",
36474 "typeString": "address"
36475 },
36476 "typeName": {
36477 "id": 2162,
36478 "name": "address",
36479 "nodeType": "ElementaryTypeName",
36480 "src": "1790:7:8",
36481 "stateMutability": "nonpayable",
36482 "typeDescriptions": {
36483 "typeIdentifier": "t_address",
36484 "typeString": "address"
36485 }
36486 },
36487 "value": null,
36488 "visibility": "internal"
36489 }
36490 ],
36491 "src": "1789:9:8"
36492 },
36493 "scope": 2232,
36494 "src": "1749:50:8",
36495 "stateMutability": "view",
36496 "virtual": false,
36497 "visibility": "external"
36498 },
36499 {
36500 "body": null,
36501 "documentation": null,
36502 "functionSelector": "0902f1ac",
36503 "id": 2174,
36504 "implemented": false,
36505 "kind": "function",
36506 "modifiers": [],
36507 "name": "getReserves",
36508 "nodeType": "FunctionDefinition",
36509 "overrides": null,
36510 "parameters": {
36511 "id": 2166,
36512 "nodeType": "ParameterList",
36513 "parameters": [],
36514 "src": "1824:2:8"
36515 },
36516 "returnParameters": {
36517 "id": 2173,
36518 "nodeType": "ParameterList",
36519 "parameters": [
36520 {
36521 "constant": false,
36522 "id": 2168,
36523 "mutability": "mutable",
36524 "name": "reserve0",
36525 "nodeType": "VariableDeclaration",
36526 "overrides": null,
36527 "scope": 2174,
36528 "src": "1850:16:8",
36529 "stateVariable": false,
36530 "storageLocation": "default",
36531 "typeDescriptions": {
36532 "typeIdentifier": "t_uint112",
36533 "typeString": "uint112"
36534 },
36535 "typeName": {
36536 "id": 2167,
36537 "name": "uint112",
36538 "nodeType": "ElementaryTypeName",
36539 "src": "1850:7:8",
36540 "typeDescriptions": {
36541 "typeIdentifier": "t_uint112",
36542 "typeString": "uint112"
36543 }
36544 },
36545 "value": null,
36546 "visibility": "internal"
36547 },
36548 {
36549 "constant": false,
36550 "id": 2170,
36551 "mutability": "mutable",
36552 "name": "reserve1",
36553 "nodeType": "VariableDeclaration",
36554 "overrides": null,
36555 "scope": 2174,
36556 "src": "1868:16:8",
36557 "stateVariable": false,
36558 "storageLocation": "default",
36559 "typeDescriptions": {
36560 "typeIdentifier": "t_uint112",
36561 "typeString": "uint112"
36562 },
36563 "typeName": {
36564 "id": 2169,
36565 "name": "uint112",
36566 "nodeType": "ElementaryTypeName",
36567 "src": "1868:7:8",
36568 "typeDescriptions": {
36569 "typeIdentifier": "t_uint112",
36570 "typeString": "uint112"
36571 }
36572 },
36573 "value": null,
36574 "visibility": "internal"
36575 },
36576 {
36577 "constant": false,
36578 "id": 2172,
36579 "mutability": "mutable",
36580 "name": "blockTimestampLast",
36581 "nodeType": "VariableDeclaration",
36582 "overrides": null,
36583 "scope": 2174,
36584 "src": "1886:25:8",
36585 "stateVariable": false,
36586 "storageLocation": "default",
36587 "typeDescriptions": {
36588 "typeIdentifier": "t_uint32",
36589 "typeString": "uint32"
36590 },
36591 "typeName": {
36592 "id": 2171,
36593 "name": "uint32",
36594 "nodeType": "ElementaryTypeName",
36595 "src": "1886:6:8",
36596 "typeDescriptions": {
36597 "typeIdentifier": "t_uint32",
36598 "typeString": "uint32"
36599 }
36600 },
36601 "value": null,
36602 "visibility": "internal"
36603 }
36604 ],
36605 "src": "1849:63:8"
36606 },
36607 "scope": 2232,
36608 "src": "1804:109:8",
36609 "stateMutability": "view",
36610 "virtual": false,
36611 "visibility": "external"
36612 },
36613 {
36614 "body": null,
36615 "documentation": null,
36616 "functionSelector": "5909c0d5",
36617 "id": 2179,
36618 "implemented": false,
36619 "kind": "function",
36620 "modifiers": [],
36621 "name": "price0CumulativeLast",
36622 "nodeType": "FunctionDefinition",
36623 "overrides": null,
36624 "parameters": {
36625 "id": 2175,
36626 "nodeType": "ParameterList",
36627 "parameters": [],
36628 "src": "1947:2:8"
36629 },
36630 "returnParameters": {
36631 "id": 2178,
36632 "nodeType": "ParameterList",
36633 "parameters": [
36634 {
36635 "constant": false,
36636 "id": 2177,
36637 "mutability": "mutable",
36638 "name": "",
36639 "nodeType": "VariableDeclaration",
36640 "overrides": null,
36641 "scope": 2179,
36642 "src": "1973:4:8",
36643 "stateVariable": false,
36644 "storageLocation": "default",
36645 "typeDescriptions": {
36646 "typeIdentifier": "t_uint256",
36647 "typeString": "uint256"
36648 },
36649 "typeName": {
36650 "id": 2176,
36651 "name": "uint",
36652 "nodeType": "ElementaryTypeName",
36653 "src": "1973:4:8",
36654 "typeDescriptions": {
36655 "typeIdentifier": "t_uint256",
36656 "typeString": "uint256"
36657 }
36658 },
36659 "value": null,
36660 "visibility": "internal"
36661 }
36662 ],
36663 "src": "1972:6:8"
36664 },
36665 "scope": 2232,
36666 "src": "1918:61:8",
36667 "stateMutability": "view",
36668 "virtual": false,
36669 "visibility": "external"
36670 },
36671 {
36672 "body": null,
36673 "documentation": null,
36674 "functionSelector": "5a3d5493",
36675 "id": 2184,
36676 "implemented": false,
36677 "kind": "function",
36678 "modifiers": [],
36679 "name": "price1CumulativeLast",
36680 "nodeType": "FunctionDefinition",
36681 "overrides": null,
36682 "parameters": {
36683 "id": 2180,
36684 "nodeType": "ParameterList",
36685 "parameters": [],
36686 "src": "2013:2:8"
36687 },
36688 "returnParameters": {
36689 "id": 2183,
36690 "nodeType": "ParameterList",
36691 "parameters": [
36692 {
36693 "constant": false,
36694 "id": 2182,
36695 "mutability": "mutable",
36696 "name": "",
36697 "nodeType": "VariableDeclaration",
36698 "overrides": null,
36699 "scope": 2184,
36700 "src": "2039:4:8",
36701 "stateVariable": false,
36702 "storageLocation": "default",
36703 "typeDescriptions": {
36704 "typeIdentifier": "t_uint256",
36705 "typeString": "uint256"
36706 },
36707 "typeName": {
36708 "id": 2181,
36709 "name": "uint",
36710 "nodeType": "ElementaryTypeName",
36711 "src": "2039:4:8",
36712 "typeDescriptions": {
36713 "typeIdentifier": "t_uint256",
36714 "typeString": "uint256"
36715 }
36716 },
36717 "value": null,
36718 "visibility": "internal"
36719 }
36720 ],
36721 "src": "2038:6:8"
36722 },
36723 "scope": 2232,
36724 "src": "1984:61:8",
36725 "stateMutability": "view",
36726 "virtual": false,
36727 "visibility": "external"
36728 },
36729 {
36730 "body": null,
36731 "documentation": null,
36732 "functionSelector": "7464fc3d",
36733 "id": 2189,
36734 "implemented": false,
36735 "kind": "function",
36736 "modifiers": [],
36737 "name": "kLast",
36738 "nodeType": "FunctionDefinition",
36739 "overrides": null,
36740 "parameters": {
36741 "id": 2185,
36742 "nodeType": "ParameterList",
36743 "parameters": [],
36744 "src": "2064:2:8"
36745 },
36746 "returnParameters": {
36747 "id": 2188,
36748 "nodeType": "ParameterList",
36749 "parameters": [
36750 {
36751 "constant": false,
36752 "id": 2187,
36753 "mutability": "mutable",
36754 "name": "",
36755 "nodeType": "VariableDeclaration",
36756 "overrides": null,
36757 "scope": 2189,
36758 "src": "2090:4:8",
36759 "stateVariable": false,
36760 "storageLocation": "default",
36761 "typeDescriptions": {
36762 "typeIdentifier": "t_uint256",
36763 "typeString": "uint256"
36764 },
36765 "typeName": {
36766 "id": 2186,
36767 "name": "uint",
36768 "nodeType": "ElementaryTypeName",
36769 "src": "2090:4:8",
36770 "typeDescriptions": {
36771 "typeIdentifier": "t_uint256",
36772 "typeString": "uint256"
36773 }
36774 },
36775 "value": null,
36776 "visibility": "internal"
36777 }
36778 ],
36779 "src": "2089:6:8"
36780 },
36781 "scope": 2232,
36782 "src": "2050:46:8",
36783 "stateMutability": "view",
36784 "virtual": false,
36785 "visibility": "external"
36786 },
36787 {
36788 "body": null,
36789 "documentation": null,
36790 "functionSelector": "6a627842",
36791 "id": 2196,
36792 "implemented": false,
36793 "kind": "function",
36794 "modifiers": [],
36795 "name": "mint",
36796 "nodeType": "FunctionDefinition",
36797 "overrides": null,
36798 "parameters": {
36799 "id": 2192,
36800 "nodeType": "ParameterList",
36801 "parameters": [
36802 {
36803 "constant": false,
36804 "id": 2191,
36805 "mutability": "mutable",
36806 "name": "to",
36807 "nodeType": "VariableDeclaration",
36808 "overrides": null,
36809 "scope": 2196,
36810 "src": "2116:10:8",
36811 "stateVariable": false,
36812 "storageLocation": "default",
36813 "typeDescriptions": {
36814 "typeIdentifier": "t_address",
36815 "typeString": "address"
36816 },
36817 "typeName": {
36818 "id": 2190,
36819 "name": "address",
36820 "nodeType": "ElementaryTypeName",
36821 "src": "2116:7:8",
36822 "stateMutability": "nonpayable",
36823 "typeDescriptions": {
36824 "typeIdentifier": "t_address",
36825 "typeString": "address"
36826 }
36827 },
36828 "value": null,
36829 "visibility": "internal"
36830 }
36831 ],
36832 "src": "2115:12:8"
36833 },
36834 "returnParameters": {
36835 "id": 2195,
36836 "nodeType": "ParameterList",
36837 "parameters": [
36838 {
36839 "constant": false,
36840 "id": 2194,
36841 "mutability": "mutable",
36842 "name": "liquidity",
36843 "nodeType": "VariableDeclaration",
36844 "overrides": null,
36845 "scope": 2196,
36846 "src": "2146:14:8",
36847 "stateVariable": false,
36848 "storageLocation": "default",
36849 "typeDescriptions": {
36850 "typeIdentifier": "t_uint256",
36851 "typeString": "uint256"
36852 },
36853 "typeName": {
36854 "id": 2193,
36855 "name": "uint",
36856 "nodeType": "ElementaryTypeName",
36857 "src": "2146:4:8",
36858 "typeDescriptions": {
36859 "typeIdentifier": "t_uint256",
36860 "typeString": "uint256"
36861 }
36862 },
36863 "value": null,
36864 "visibility": "internal"
36865 }
36866 ],
36867 "src": "2145:16:8"
36868 },
36869 "scope": 2232,
36870 "src": "2102:60:8",
36871 "stateMutability": "nonpayable",
36872 "virtual": false,
36873 "visibility": "external"
36874 },
36875 {
36876 "body": null,
36877 "documentation": null,
36878 "functionSelector": "89afcb44",
36879 "id": 2205,
36880 "implemented": false,
36881 "kind": "function",
36882 "modifiers": [],
36883 "name": "burn",
36884 "nodeType": "FunctionDefinition",
36885 "overrides": null,
36886 "parameters": {
36887 "id": 2199,
36888 "nodeType": "ParameterList",
36889 "parameters": [
36890 {
36891 "constant": false,
36892 "id": 2198,
36893 "mutability": "mutable",
36894 "name": "to",
36895 "nodeType": "VariableDeclaration",
36896 "overrides": null,
36897 "scope": 2205,
36898 "src": "2181:10:8",
36899 "stateVariable": false,
36900 "storageLocation": "default",
36901 "typeDescriptions": {
36902 "typeIdentifier": "t_address",
36903 "typeString": "address"
36904 },
36905 "typeName": {
36906 "id": 2197,
36907 "name": "address",
36908 "nodeType": "ElementaryTypeName",
36909 "src": "2181:7:8",
36910 "stateMutability": "nonpayable",
36911 "typeDescriptions": {
36912 "typeIdentifier": "t_address",
36913 "typeString": "address"
36914 }
36915 },
36916 "value": null,
36917 "visibility": "internal"
36918 }
36919 ],
36920 "src": "2180:12:8"
36921 },
36922 "returnParameters": {
36923 "id": 2204,
36924 "nodeType": "ParameterList",
36925 "parameters": [
36926 {
36927 "constant": false,
36928 "id": 2201,
36929 "mutability": "mutable",
36930 "name": "amount0",
36931 "nodeType": "VariableDeclaration",
36932 "overrides": null,
36933 "scope": 2205,
36934 "src": "2211:12:8",
36935 "stateVariable": false,
36936 "storageLocation": "default",
36937 "typeDescriptions": {
36938 "typeIdentifier": "t_uint256",
36939 "typeString": "uint256"
36940 },
36941 "typeName": {
36942 "id": 2200,
36943 "name": "uint",
36944 "nodeType": "ElementaryTypeName",
36945 "src": "2211:4:8",
36946 "typeDescriptions": {
36947 "typeIdentifier": "t_uint256",
36948 "typeString": "uint256"
36949 }
36950 },
36951 "value": null,
36952 "visibility": "internal"
36953 },
36954 {
36955 "constant": false,
36956 "id": 2203,
36957 "mutability": "mutable",
36958 "name": "amount1",
36959 "nodeType": "VariableDeclaration",
36960 "overrides": null,
36961 "scope": 2205,
36962 "src": "2225:12:8",
36963 "stateVariable": false,
36964 "storageLocation": "default",
36965 "typeDescriptions": {
36966 "typeIdentifier": "t_uint256",
36967 "typeString": "uint256"
36968 },
36969 "typeName": {
36970 "id": 2202,
36971 "name": "uint",
36972 "nodeType": "ElementaryTypeName",
36973 "src": "2225:4:8",
36974 "typeDescriptions": {
36975 "typeIdentifier": "t_uint256",
36976 "typeString": "uint256"
36977 }
36978 },
36979 "value": null,
36980 "visibility": "internal"
36981 }
36982 ],
36983 "src": "2210:28:8"
36984 },
36985 "scope": 2232,
36986 "src": "2167:72:8",
36987 "stateMutability": "nonpayable",
36988 "virtual": false,
36989 "visibility": "external"
36990 },
36991 {
36992 "body": null,
36993 "documentation": null,
36994 "functionSelector": "022c0d9f",
36995 "id": 2216,
36996 "implemented": false,
36997 "kind": "function",
36998 "modifiers": [],
36999 "name": "swap",
37000 "nodeType": "FunctionDefinition",
37001 "overrides": null,
37002 "parameters": {
37003 "id": 2214,
37004 "nodeType": "ParameterList",
37005 "parameters": [
37006 {
37007 "constant": false,
37008 "id": 2207,
37009 "mutability": "mutable",
37010 "name": "amount0Out",
37011 "nodeType": "VariableDeclaration",
37012 "overrides": null,
37013 "scope": 2216,
37014 "src": "2258:15:8",
37015 "stateVariable": false,
37016 "storageLocation": "default",
37017 "typeDescriptions": {
37018 "typeIdentifier": "t_uint256",
37019 "typeString": "uint256"
37020 },
37021 "typeName": {
37022 "id": 2206,
37023 "name": "uint",
37024 "nodeType": "ElementaryTypeName",
37025 "src": "2258:4:8",
37026 "typeDescriptions": {
37027 "typeIdentifier": "t_uint256",
37028 "typeString": "uint256"
37029 }
37030 },
37031 "value": null,
37032 "visibility": "internal"
37033 },
37034 {
37035 "constant": false,
37036 "id": 2209,
37037 "mutability": "mutable",
37038 "name": "amount1Out",
37039 "nodeType": "VariableDeclaration",
37040 "overrides": null,
37041 "scope": 2216,
37042 "src": "2275:15:8",
37043 "stateVariable": false,
37044 "storageLocation": "default",
37045 "typeDescriptions": {
37046 "typeIdentifier": "t_uint256",
37047 "typeString": "uint256"
37048 },
37049 "typeName": {
37050 "id": 2208,
37051 "name": "uint",
37052 "nodeType": "ElementaryTypeName",
37053 "src": "2275:4:8",
37054 "typeDescriptions": {
37055 "typeIdentifier": "t_uint256",
37056 "typeString": "uint256"
37057 }
37058 },
37059 "value": null,
37060 "visibility": "internal"
37061 },
37062 {
37063 "constant": false,
37064 "id": 2211,
37065 "mutability": "mutable",
37066 "name": "to",
37067 "nodeType": "VariableDeclaration",
37068 "overrides": null,
37069 "scope": 2216,
37070 "src": "2292:10:8",
37071 "stateVariable": false,
37072 "storageLocation": "default",
37073 "typeDescriptions": {
37074 "typeIdentifier": "t_address",
37075 "typeString": "address"
37076 },
37077 "typeName": {
37078 "id": 2210,
37079 "name": "address",
37080 "nodeType": "ElementaryTypeName",
37081 "src": "2292:7:8",
37082 "stateMutability": "nonpayable",
37083 "typeDescriptions": {
37084 "typeIdentifier": "t_address",
37085 "typeString": "address"
37086 }
37087 },
37088 "value": null,
37089 "visibility": "internal"
37090 },
37091 {
37092 "constant": false,
37093 "id": 2213,
37094 "mutability": "mutable",
37095 "name": "data",
37096 "nodeType": "VariableDeclaration",
37097 "overrides": null,
37098 "scope": 2216,
37099 "src": "2304:19:8",
37100 "stateVariable": false,
37101 "storageLocation": "calldata",
37102 "typeDescriptions": {
37103 "typeIdentifier": "t_bytes_calldata_ptr",
37104 "typeString": "bytes"
37105 },
37106 "typeName": {
37107 "id": 2212,
37108 "name": "bytes",
37109 "nodeType": "ElementaryTypeName",
37110 "src": "2304:5:8",
37111 "typeDescriptions": {
37112 "typeIdentifier": "t_bytes_storage_ptr",
37113 "typeString": "bytes"
37114 }
37115 },
37116 "value": null,
37117 "visibility": "internal"
37118 }
37119 ],
37120 "src": "2257:67:8"
37121 },
37122 "returnParameters": {
37123 "id": 2215,
37124 "nodeType": "ParameterList",
37125 "parameters": [],
37126 "src": "2333:0:8"
37127 },
37128 "scope": 2232,
37129 "src": "2244:90:8",
37130 "stateMutability": "nonpayable",
37131 "virtual": false,
37132 "visibility": "external"
37133 },
37134 {
37135 "body": null,
37136 "documentation": null,
37137 "functionSelector": "bc25cf77",
37138 "id": 2221,
37139 "implemented": false,
37140 "kind": "function",
37141 "modifiers": [],
37142 "name": "skim",
37143 "nodeType": "FunctionDefinition",
37144 "overrides": null,
37145 "parameters": {
37146 "id": 2219,
37147 "nodeType": "ParameterList",
37148 "parameters": [
37149 {
37150 "constant": false,
37151 "id": 2218,
37152 "mutability": "mutable",
37153 "name": "to",
37154 "nodeType": "VariableDeclaration",
37155 "overrides": null,
37156 "scope": 2221,
37157 "src": "2353:10:8",
37158 "stateVariable": false,
37159 "storageLocation": "default",
37160 "typeDescriptions": {
37161 "typeIdentifier": "t_address",
37162 "typeString": "address"
37163 },
37164 "typeName": {
37165 "id": 2217,
37166 "name": "address",
37167 "nodeType": "ElementaryTypeName",
37168 "src": "2353:7:8",
37169 "stateMutability": "nonpayable",
37170 "typeDescriptions": {
37171 "typeIdentifier": "t_address",
37172 "typeString": "address"
37173 }
37174 },
37175 "value": null,
37176 "visibility": "internal"
37177 }
37178 ],
37179 "src": "2352:12:8"
37180 },
37181 "returnParameters": {
37182 "id": 2220,
37183 "nodeType": "ParameterList",
37184 "parameters": [],
37185 "src": "2373:0:8"
37186 },
37187 "scope": 2232,
37188 "src": "2339:35:8",
37189 "stateMutability": "nonpayable",
37190 "virtual": false,
37191 "visibility": "external"
37192 },
37193 {
37194 "body": null,
37195 "documentation": null,
37196 "functionSelector": "fff6cae9",
37197 "id": 2224,
37198 "implemented": false,
37199 "kind": "function",
37200 "modifiers": [],
37201 "name": "sync",
37202 "nodeType": "FunctionDefinition",
37203 "overrides": null,
37204 "parameters": {
37205 "id": 2222,
37206 "nodeType": "ParameterList",
37207 "parameters": [],
37208 "src": "2392:2:8"
37209 },
37210 "returnParameters": {
37211 "id": 2223,
37212 "nodeType": "ParameterList",
37213 "parameters": [],
37214 "src": "2403:0:8"
37215 },
37216 "scope": 2232,
37217 "src": "2379:25:8",
37218 "stateMutability": "nonpayable",
37219 "virtual": false,
37220 "visibility": "external"
37221 },
37222 {
37223 "body": null,
37224 "documentation": null,
37225 "functionSelector": "485cc955",
37226 "id": 2231,
37227 "implemented": false,
37228 "kind": "function",
37229 "modifiers": [],
37230 "name": "initialize",
37231 "nodeType": "FunctionDefinition",
37232 "overrides": null,
37233 "parameters": {
37234 "id": 2229,
37235 "nodeType": "ParameterList",
37236 "parameters": [
37237 {
37238 "constant": false,
37239 "id": 2226,
37240 "mutability": "mutable",
37241 "name": "",
37242 "nodeType": "VariableDeclaration",
37243 "overrides": null,
37244 "scope": 2231,
37245 "src": "2430:7:8",
37246 "stateVariable": false,
37247 "storageLocation": "default",
37248 "typeDescriptions": {
37249 "typeIdentifier": "t_address",
37250 "typeString": "address"
37251 },
37252 "typeName": {
37253 "id": 2225,
37254 "name": "address",
37255 "nodeType": "ElementaryTypeName",
37256 "src": "2430:7:8",
37257 "stateMutability": "nonpayable",
37258 "typeDescriptions": {
37259 "typeIdentifier": "t_address",
37260 "typeString": "address"
37261 }
37262 },
37263 "value": null,
37264 "visibility": "internal"
37265 },
37266 {
37267 "constant": false,
37268 "id": 2228,
37269 "mutability": "mutable",
37270 "name": "",
37271 "nodeType": "VariableDeclaration",
37272 "overrides": null,
37273 "scope": 2231,
37274 "src": "2439:7:8",
37275 "stateVariable": false,
37276 "storageLocation": "default",
37277 "typeDescriptions": {
37278 "typeIdentifier": "t_address",
37279 "typeString": "address"
37280 },
37281 "typeName": {
37282 "id": 2227,
37283 "name": "address",
37284 "nodeType": "ElementaryTypeName",
37285 "src": "2439:7:8",
37286 "stateMutability": "nonpayable",
37287 "typeDescriptions": {
37288 "typeIdentifier": "t_address",
37289 "typeString": "address"
37290 }
37291 },
37292 "value": null,
37293 "visibility": "internal"
37294 }
37295 ],
37296 "src": "2429:18:8"
37297 },
37298 "returnParameters": {
37299 "id": 2230,
37300 "nodeType": "ParameterList",
37301 "parameters": [],
37302 "src": "2456:0:8"
37303 },
37304 "scope": 2232,
37305 "src": "2410:47:8",
37306 "stateMutability": "nonpayable",
37307 "virtual": false,
37308 "visibility": "external"
37309 }
37310 ],
37311 "scope": 2233,
37312 "src": "62:2397:8"
37313 }
37314 ],
37315 "src": "36:2424:8"
37316 }
37317 },
37318 "contracts/libraries/Math.sol": {
37319 "id": 9,
37320 "AST": {
37321 "absolutePath": "contracts/libraries/Math.sol",
37322 "exportedSymbols": {
37323 "Math": [
37324 2308
37325 ]
37326 },
37327 "id": 2309,
37328 "license": "GPL-3.0",
37329 "nodeType": "SourceUnit",
37330 "nodes": [
37331 {
37332 "id": 2234,
37333 "literals": [
37334 "solidity",
37335 "=",
37336 "0.6",
37337 ".12"
37338 ],
37339 "nodeType": "PragmaDirective",
37340 "src": "37:24:9"
37341 },
37342 {
37343 "abstract": false,
37344 "baseContracts": [],
37345 "contractDependencies": [],
37346 "contractKind": "library",
37347 "documentation": null,
37348 "fullyImplemented": true,
37349 "id": 2308,
37350 "linearizedBaseContracts": [
37351 2308
37352 ],
37353 "name": "Math",
37354 "nodeType": "ContractDefinition",
37355 "nodes": [
37356 {
37357 "body": {
37358 "id": 2252,
37359 "nodeType": "Block",
37360 "src": "195:34:9",
37361 "statements": [
37362 {
37363 "expression": {
37364 "argumentTypes": null,
37365 "id": 2250,
37366 "isConstant": false,
37367 "isLValue": false,
37368 "isPure": false,
37369 "lValueRequested": false,
37370 "leftHandSide": {
37371 "argumentTypes": null,
37372 "id": 2243,
37373 "name": "z",
37374 "nodeType": "Identifier",
37375 "overloadedDeclarations": [],
37376 "referencedDeclaration": 2241,
37377 "src": "205:1:9",
37378 "typeDescriptions": {
37379 "typeIdentifier": "t_uint256",
37380 "typeString": "uint256"
37381 }
37382 },
37383 "nodeType": "Assignment",
37384 "operator": "=",
37385 "rightHandSide": {
37386 "argumentTypes": null,
37387 "condition": {
37388 "argumentTypes": null,
37389 "commonType": {
37390 "typeIdentifier": "t_uint256",
37391 "typeString": "uint256"
37392 },
37393 "id": 2246,
37394 "isConstant": false,
37395 "isLValue": false,
37396 "isPure": false,
37397 "lValueRequested": false,
37398 "leftExpression": {
37399 "argumentTypes": null,
37400 "id": 2244,
37401 "name": "x",
37402 "nodeType": "Identifier",
37403 "overloadedDeclarations": [],
37404 "referencedDeclaration": 2236,
37405 "src": "209:1:9",
37406 "typeDescriptions": {
37407 "typeIdentifier": "t_uint256",
37408 "typeString": "uint256"
37409 }
37410 },
37411 "nodeType": "BinaryOperation",
37412 "operator": "<",
37413 "rightExpression": {
37414 "argumentTypes": null,
37415 "id": 2245,
37416 "name": "y",
37417 "nodeType": "Identifier",
37418 "overloadedDeclarations": [],
37419 "referencedDeclaration": 2238,
37420 "src": "213:1:9",
37421 "typeDescriptions": {
37422 "typeIdentifier": "t_uint256",
37423 "typeString": "uint256"
37424 }
37425 },
37426 "src": "209:5:9",
37427 "typeDescriptions": {
37428 "typeIdentifier": "t_bool",
37429 "typeString": "bool"
37430 }
37431 },
37432 "falseExpression": {
37433 "argumentTypes": null,
37434 "id": 2248,
37435 "name": "y",
37436 "nodeType": "Identifier",
37437 "overloadedDeclarations": [],
37438 "referencedDeclaration": 2238,
37439 "src": "221:1:9",
37440 "typeDescriptions": {
37441 "typeIdentifier": "t_uint256",
37442 "typeString": "uint256"
37443 }
37444 },
37445 "id": 2249,
37446 "isConstant": false,
37447 "isLValue": false,
37448 "isPure": false,
37449 "lValueRequested": false,
37450 "nodeType": "Conditional",
37451 "src": "209:13:9",
37452 "trueExpression": {
37453 "argumentTypes": null,
37454 "id": 2247,
37455 "name": "x",
37456 "nodeType": "Identifier",
37457 "overloadedDeclarations": [],
37458 "referencedDeclaration": 2236,
37459 "src": "217:1:9",
37460 "typeDescriptions": {
37461 "typeIdentifier": "t_uint256",
37462 "typeString": "uint256"
37463 }
37464 },
37465 "typeDescriptions": {
37466 "typeIdentifier": "t_uint256",
37467 "typeString": "uint256"
37468 }
37469 },
37470 "src": "205:17:9",
37471 "typeDescriptions": {
37472 "typeIdentifier": "t_uint256",
37473 "typeString": "uint256"
37474 }
37475 },
37476 "id": 2251,
37477 "nodeType": "ExpressionStatement",
37478 "src": "205:17:9"
37479 }
37480 ]
37481 },
37482 "documentation": null,
37483 "id": 2253,
37484 "implemented": true,
37485 "kind": "function",
37486 "modifiers": [],
37487 "name": "min",
37488 "nodeType": "FunctionDefinition",
37489 "overrides": null,
37490 "parameters": {
37491 "id": 2239,
37492 "nodeType": "ParameterList",
37493 "parameters": [
37494 {
37495 "constant": false,
37496 "id": 2236,
37497 "mutability": "mutable",
37498 "name": "x",
37499 "nodeType": "VariableDeclaration",
37500 "overrides": null,
37501 "scope": 2253,
37502 "src": "148:6:9",
37503 "stateVariable": false,
37504 "storageLocation": "default",
37505 "typeDescriptions": {
37506 "typeIdentifier": "t_uint256",
37507 "typeString": "uint256"
37508 },
37509 "typeName": {
37510 "id": 2235,
37511 "name": "uint",
37512 "nodeType": "ElementaryTypeName",
37513 "src": "148:4:9",
37514 "typeDescriptions": {
37515 "typeIdentifier": "t_uint256",
37516 "typeString": "uint256"
37517 }
37518 },
37519 "value": null,
37520 "visibility": "internal"
37521 },
37522 {
37523 "constant": false,
37524 "id": 2238,
37525 "mutability": "mutable",
37526 "name": "y",
37527 "nodeType": "VariableDeclaration",
37528 "overrides": null,
37529 "scope": 2253,
37530 "src": "156:6:9",
37531 "stateVariable": false,
37532 "storageLocation": "default",
37533 "typeDescriptions": {
37534 "typeIdentifier": "t_uint256",
37535 "typeString": "uint256"
37536 },
37537 "typeName": {
37538 "id": 2237,
37539 "name": "uint",
37540 "nodeType": "ElementaryTypeName",
37541 "src": "156:4:9",
37542 "typeDescriptions": {
37543 "typeIdentifier": "t_uint256",
37544 "typeString": "uint256"
37545 }
37546 },
37547 "value": null,
37548 "visibility": "internal"
37549 }
37550 ],
37551 "src": "147:16:9"
37552 },
37553 "returnParameters": {
37554 "id": 2242,
37555 "nodeType": "ParameterList",
37556 "parameters": [
37557 {
37558 "constant": false,
37559 "id": 2241,
37560 "mutability": "mutable",
37561 "name": "z",
37562 "nodeType": "VariableDeclaration",
37563 "overrides": null,
37564 "scope": 2253,
37565 "src": "187:6:9",
37566 "stateVariable": false,
37567 "storageLocation": "default",
37568 "typeDescriptions": {
37569 "typeIdentifier": "t_uint256",
37570 "typeString": "uint256"
37571 },
37572 "typeName": {
37573 "id": 2240,
37574 "name": "uint",
37575 "nodeType": "ElementaryTypeName",
37576 "src": "187:4:9",
37577 "typeDescriptions": {
37578 "typeIdentifier": "t_uint256",
37579 "typeString": "uint256"
37580 }
37581 },
37582 "value": null,
37583 "visibility": "internal"
37584 }
37585 ],
37586 "src": "186:8:9"
37587 },
37588 "scope": 2308,
37589 "src": "135:94:9",
37590 "stateMutability": "pure",
37591 "virtual": false,
37592 "visibility": "internal"
37593 },
37594 {
37595 "body": {
37596 "id": 2306,
37597 "nodeType": "Block",
37598 "src": "397:239:9",
37599 "statements": [
37600 {
37601 "condition": {
37602 "argumentTypes": null,
37603 "commonType": {
37604 "typeIdentifier": "t_uint256",
37605 "typeString": "uint256"
37606 },
37607 "id": 2262,
37608 "isConstant": false,
37609 "isLValue": false,
37610 "isPure": false,
37611 "lValueRequested": false,
37612 "leftExpression": {
37613 "argumentTypes": null,
37614 "id": 2260,
37615 "name": "y",
37616 "nodeType": "Identifier",
37617 "overloadedDeclarations": [],
37618 "referencedDeclaration": 2255,
37619 "src": "411:1:9",
37620 "typeDescriptions": {
37621 "typeIdentifier": "t_uint256",
37622 "typeString": "uint256"
37623 }
37624 },
37625 "nodeType": "BinaryOperation",
37626 "operator": ">",
37627 "rightExpression": {
37628 "argumentTypes": null,
37629 "hexValue": "33",
37630 "id": 2261,
37631 "isConstant": false,
37632 "isLValue": false,
37633 "isPure": true,
37634 "kind": "number",
37635 "lValueRequested": false,
37636 "nodeType": "Literal",
37637 "src": "415:1:9",
37638 "subdenomination": null,
37639 "typeDescriptions": {
37640 "typeIdentifier": "t_rational_3_by_1",
37641 "typeString": "int_const 3"
37642 },
37643 "value": "3"
37644 },
37645 "src": "411:5:9",
37646 "typeDescriptions": {
37647 "typeIdentifier": "t_bool",
37648 "typeString": "bool"
37649 }
37650 },
37651 "falseBody": {
37652 "condition": {
37653 "argumentTypes": null,
37654 "commonType": {
37655 "typeIdentifier": "t_uint256",
37656 "typeString": "uint256"
37657 },
37658 "id": 2298,
37659 "isConstant": false,
37660 "isLValue": false,
37661 "isPure": false,
37662 "lValueRequested": false,
37663 "leftExpression": {
37664 "argumentTypes": null,
37665 "id": 2296,
37666 "name": "y",
37667 "nodeType": "Identifier",
37668 "overloadedDeclarations": [],
37669 "referencedDeclaration": 2255,
37670 "src": "592:1:9",
37671 "typeDescriptions": {
37672 "typeIdentifier": "t_uint256",
37673 "typeString": "uint256"
37674 }
37675 },
37676 "nodeType": "BinaryOperation",
37677 "operator": "!=",
37678 "rightExpression": {
37679 "argumentTypes": null,
37680 "hexValue": "30",
37681 "id": 2297,
37682 "isConstant": false,
37683 "isLValue": false,
37684 "isPure": true,
37685 "kind": "number",
37686 "lValueRequested": false,
37687 "nodeType": "Literal",
37688 "src": "597:1:9",
37689 "subdenomination": null,
37690 "typeDescriptions": {
37691 "typeIdentifier": "t_rational_0_by_1",
37692 "typeString": "int_const 0"
37693 },
37694 "value": "0"
37695 },
37696 "src": "592:6:9",
37697 "typeDescriptions": {
37698 "typeIdentifier": "t_bool",
37699 "typeString": "bool"
37700 }
37701 },
37702 "falseBody": null,
37703 "id": 2304,
37704 "nodeType": "IfStatement",
37705 "src": "588:42:9",
37706 "trueBody": {
37707 "id": 2303,
37708 "nodeType": "Block",
37709 "src": "600:30:9",
37710 "statements": [
37711 {
37712 "expression": {
37713 "argumentTypes": null,
37714 "id": 2301,
37715 "isConstant": false,
37716 "isLValue": false,
37717 "isPure": false,
37718 "lValueRequested": false,
37719 "leftHandSide": {
37720 "argumentTypes": null,
37721 "id": 2299,
37722 "name": "z",
37723 "nodeType": "Identifier",
37724 "overloadedDeclarations": [],
37725 "referencedDeclaration": 2258,
37726 "src": "614:1:9",
37727 "typeDescriptions": {
37728 "typeIdentifier": "t_uint256",
37729 "typeString": "uint256"
37730 }
37731 },
37732 "nodeType": "Assignment",
37733 "operator": "=",
37734 "rightHandSide": {
37735 "argumentTypes": null,
37736 "hexValue": "31",
37737 "id": 2300,
37738 "isConstant": false,
37739 "isLValue": false,
37740 "isPure": true,
37741 "kind": "number",
37742 "lValueRequested": false,
37743 "nodeType": "Literal",
37744 "src": "618:1:9",
37745 "subdenomination": null,
37746 "typeDescriptions": {
37747 "typeIdentifier": "t_rational_1_by_1",
37748 "typeString": "int_const 1"
37749 },
37750 "value": "1"
37751 },
37752 "src": "614:5:9",
37753 "typeDescriptions": {
37754 "typeIdentifier": "t_uint256",
37755 "typeString": "uint256"
37756 }
37757 },
37758 "id": 2302,
37759 "nodeType": "ExpressionStatement",
37760 "src": "614:5:9"
37761 }
37762 ]
37763 }
37764 },
37765 "id": 2305,
37766 "nodeType": "IfStatement",
37767 "src": "407:223:9",
37768 "trueBody": {
37769 "id": 2295,
37770 "nodeType": "Block",
37771 "src": "418:164:9",
37772 "statements": [
37773 {
37774 "expression": {
37775 "argumentTypes": null,
37776 "id": 2265,
37777 "isConstant": false,
37778 "isLValue": false,
37779 "isPure": false,
37780 "lValueRequested": false,
37781 "leftHandSide": {
37782 "argumentTypes": null,
37783 "id": 2263,
37784 "name": "z",
37785 "nodeType": "Identifier",
37786 "overloadedDeclarations": [],
37787 "referencedDeclaration": 2258,
37788 "src": "432:1:9",
37789 "typeDescriptions": {
37790 "typeIdentifier": "t_uint256",
37791 "typeString": "uint256"
37792 }
37793 },
37794 "nodeType": "Assignment",
37795 "operator": "=",
37796 "rightHandSide": {
37797 "argumentTypes": null,
37798 "id": 2264,
37799 "name": "y",
37800 "nodeType": "Identifier",
37801 "overloadedDeclarations": [],
37802 "referencedDeclaration": 2255,
37803 "src": "436:1:9",
37804 "typeDescriptions": {
37805 "typeIdentifier": "t_uint256",
37806 "typeString": "uint256"
37807 }
37808 },
37809 "src": "432:5:9",
37810 "typeDescriptions": {
37811 "typeIdentifier": "t_uint256",
37812 "typeString": "uint256"
37813 }
37814 },
37815 "id": 2266,
37816 "nodeType": "ExpressionStatement",
37817 "src": "432:5:9"
37818 },
37819 {
37820 "assignments": [
37821 2268
37822 ],
37823 "declarations": [
37824 {
37825 "constant": false,
37826 "id": 2268,
37827 "mutability": "mutable",
37828 "name": "x",
37829 "nodeType": "VariableDeclaration",
37830 "overrides": null,
37831 "scope": 2295,
37832 "src": "451:6:9",
37833 "stateVariable": false,
37834 "storageLocation": "default",
37835 "typeDescriptions": {
37836 "typeIdentifier": "t_uint256",
37837 "typeString": "uint256"
37838 },
37839 "typeName": {
37840 "id": 2267,
37841 "name": "uint",
37842 "nodeType": "ElementaryTypeName",
37843 "src": "451:4:9",
37844 "typeDescriptions": {
37845 "typeIdentifier": "t_uint256",
37846 "typeString": "uint256"
37847 }
37848 },
37849 "value": null,
37850 "visibility": "internal"
37851 }
37852 ],
37853 "id": 2274,
37854 "initialValue": {
37855 "argumentTypes": null,
37856 "commonType": {
37857 "typeIdentifier": "t_uint256",
37858 "typeString": "uint256"
37859 },
37860 "id": 2273,
37861 "isConstant": false,
37862 "isLValue": false,
37863 "isPure": false,
37864 "lValueRequested": false,
37865 "leftExpression": {
37866 "argumentTypes": null,
37867 "commonType": {
37868 "typeIdentifier": "t_uint256",
37869 "typeString": "uint256"
37870 },
37871 "id": 2271,
37872 "isConstant": false,
37873 "isLValue": false,
37874 "isPure": false,
37875 "lValueRequested": false,
37876 "leftExpression": {
37877 "argumentTypes": null,
37878 "id": 2269,
37879 "name": "y",
37880 "nodeType": "Identifier",
37881 "overloadedDeclarations": [],
37882 "referencedDeclaration": 2255,
37883 "src": "460:1:9",
37884 "typeDescriptions": {
37885 "typeIdentifier": "t_uint256",
37886 "typeString": "uint256"
37887 }
37888 },
37889 "nodeType": "BinaryOperation",
37890 "operator": "/",
37891 "rightExpression": {
37892 "argumentTypes": null,
37893 "hexValue": "32",
37894 "id": 2270,
37895 "isConstant": false,
37896 "isLValue": false,
37897 "isPure": true,
37898 "kind": "number",
37899 "lValueRequested": false,
37900 "nodeType": "Literal",
37901 "src": "464:1:9",
37902 "subdenomination": null,
37903 "typeDescriptions": {
37904 "typeIdentifier": "t_rational_2_by_1",
37905 "typeString": "int_const 2"
37906 },
37907 "value": "2"
37908 },
37909 "src": "460:5:9",
37910 "typeDescriptions": {
37911 "typeIdentifier": "t_uint256",
37912 "typeString": "uint256"
37913 }
37914 },
37915 "nodeType": "BinaryOperation",
37916 "operator": "+",
37917 "rightExpression": {
37918 "argumentTypes": null,
37919 "hexValue": "31",
37920 "id": 2272,
37921 "isConstant": false,
37922 "isLValue": false,
37923 "isPure": true,
37924 "kind": "number",
37925 "lValueRequested": false,
37926 "nodeType": "Literal",
37927 "src": "468:1:9",
37928 "subdenomination": null,
37929 "typeDescriptions": {
37930 "typeIdentifier": "t_rational_1_by_1",
37931 "typeString": "int_const 1"
37932 },
37933 "value": "1"
37934 },
37935 "src": "460:9:9",
37936 "typeDescriptions": {
37937 "typeIdentifier": "t_uint256",
37938 "typeString": "uint256"
37939 }
37940 },
37941 "nodeType": "VariableDeclarationStatement",
37942 "src": "451:18:9"
37943 },
37944 {
37945 "body": {
37946 "id": 2293,
37947 "nodeType": "Block",
37948 "src": "497:75:9",
37949 "statements": [
37950 {
37951 "expression": {
37952 "argumentTypes": null,
37953 "id": 2280,
37954 "isConstant": false,
37955 "isLValue": false,
37956 "isPure": false,
37957 "lValueRequested": false,
37958 "leftHandSide": {
37959 "argumentTypes": null,
37960 "id": 2278,
37961 "name": "z",
37962 "nodeType": "Identifier",
37963 "overloadedDeclarations": [],
37964 "referencedDeclaration": 2258,
37965 "src": "515:1:9",
37966 "typeDescriptions": {
37967 "typeIdentifier": "t_uint256",
37968 "typeString": "uint256"
37969 }
37970 },
37971 "nodeType": "Assignment",
37972 "operator": "=",
37973 "rightHandSide": {
37974 "argumentTypes": null,
37975 "id": 2279,
37976 "name": "x",
37977 "nodeType": "Identifier",
37978 "overloadedDeclarations": [],
37979 "referencedDeclaration": 2268,
37980 "src": "519:1:9",
37981 "typeDescriptions": {
37982 "typeIdentifier": "t_uint256",
37983 "typeString": "uint256"
37984 }
37985 },
37986 "src": "515:5:9",
37987 "typeDescriptions": {
37988 "typeIdentifier": "t_uint256",
37989 "typeString": "uint256"
37990 }
37991 },
37992 "id": 2281,
37993 "nodeType": "ExpressionStatement",
37994 "src": "515:5:9"
37995 },
37996 {
37997 "expression": {
37998 "argumentTypes": null,
37999 "id": 2291,
38000 "isConstant": false,
38001 "isLValue": false,
38002 "isPure": false,
38003 "lValueRequested": false,
38004 "leftHandSide": {
38005 "argumentTypes": null,
38006 "id": 2282,
38007 "name": "x",
38008 "nodeType": "Identifier",
38009 "overloadedDeclarations": [],
38010 "referencedDeclaration": 2268,
38011 "src": "538:1:9",
38012 "typeDescriptions": {
38013 "typeIdentifier": "t_uint256",
38014 "typeString": "uint256"
38015 }
38016 },
38017 "nodeType": "Assignment",
38018 "operator": "=",
38019 "rightHandSide": {
38020 "argumentTypes": null,
38021 "commonType": {
38022 "typeIdentifier": "t_uint256",
38023 "typeString": "uint256"
38024 },
38025 "id": 2290,
38026 "isConstant": false,
38027 "isLValue": false,
38028 "isPure": false,
38029 "lValueRequested": false,
38030 "leftExpression": {
38031 "argumentTypes": null,
38032 "components": [
38033 {
38034 "argumentTypes": null,
38035 "commonType": {
38036 "typeIdentifier": "t_uint256",
38037 "typeString": "uint256"
38038 },
38039 "id": 2287,
38040 "isConstant": false,
38041 "isLValue": false,
38042 "isPure": false,
38043 "lValueRequested": false,
38044 "leftExpression": {
38045 "argumentTypes": null,
38046 "commonType": {
38047 "typeIdentifier": "t_uint256",
38048 "typeString": "uint256"
38049 },
38050 "id": 2285,
38051 "isConstant": false,
38052 "isLValue": false,
38053 "isPure": false,
38054 "lValueRequested": false,
38055 "leftExpression": {
38056 "argumentTypes": null,
38057 "id": 2283,
38058 "name": "y",
38059 "nodeType": "Identifier",
38060 "overloadedDeclarations": [],
38061 "referencedDeclaration": 2255,
38062 "src": "543:1:9",
38063 "typeDescriptions": {
38064 "typeIdentifier": "t_uint256",
38065 "typeString": "uint256"
38066 }
38067 },
38068 "nodeType": "BinaryOperation",
38069 "operator": "/",
38070 "rightExpression": {
38071 "argumentTypes": null,
38072 "id": 2284,
38073 "name": "x",
38074 "nodeType": "Identifier",
38075 "overloadedDeclarations": [],
38076 "referencedDeclaration": 2268,
38077 "src": "547:1:9",
38078 "typeDescriptions": {
38079 "typeIdentifier": "t_uint256",
38080 "typeString": "uint256"
38081 }
38082 },
38083 "src": "543:5:9",
38084 "typeDescriptions": {
38085 "typeIdentifier": "t_uint256",
38086 "typeString": "uint256"
38087 }
38088 },
38089 "nodeType": "BinaryOperation",
38090 "operator": "+",
38091 "rightExpression": {
38092 "argumentTypes": null,
38093 "id": 2286,
38094 "name": "x",
38095 "nodeType": "Identifier",
38096 "overloadedDeclarations": [],
38097 "referencedDeclaration": 2268,
38098 "src": "551:1:9",
38099 "typeDescriptions": {
38100 "typeIdentifier": "t_uint256",
38101 "typeString": "uint256"
38102 }
38103 },
38104 "src": "543:9:9",
38105 "typeDescriptions": {
38106 "typeIdentifier": "t_uint256",
38107 "typeString": "uint256"
38108 }
38109 }
38110 ],
38111 "id": 2288,
38112 "isConstant": false,
38113 "isInlineArray": false,
38114 "isLValue": false,
38115 "isPure": false,
38116 "lValueRequested": false,
38117 "nodeType": "TupleExpression",
38118 "src": "542:11:9",
38119 "typeDescriptions": {
38120 "typeIdentifier": "t_uint256",
38121 "typeString": "uint256"
38122 }
38123 },
38124 "nodeType": "BinaryOperation",
38125 "operator": "/",
38126 "rightExpression": {
38127 "argumentTypes": null,
38128 "hexValue": "32",
38129 "id": 2289,
38130 "isConstant": false,
38131 "isLValue": false,
38132 "isPure": true,
38133 "kind": "number",
38134 "lValueRequested": false,
38135 "nodeType": "Literal",
38136 "src": "556:1:9",
38137 "subdenomination": null,
38138 "typeDescriptions": {
38139 "typeIdentifier": "t_rational_2_by_1",
38140 "typeString": "int_const 2"
38141 },
38142 "value": "2"
38143 },
38144 "src": "542:15:9",
38145 "typeDescriptions": {
38146 "typeIdentifier": "t_uint256",
38147 "typeString": "uint256"
38148 }
38149 },
38150 "src": "538:19:9",
38151 "typeDescriptions": {
38152 "typeIdentifier": "t_uint256",
38153 "typeString": "uint256"
38154 }
38155 },
38156 "id": 2292,
38157 "nodeType": "ExpressionStatement",
38158 "src": "538:19:9"
38159 }
38160 ]
38161 },
38162 "condition": {
38163 "argumentTypes": null,
38164 "commonType": {
38165 "typeIdentifier": "t_uint256",
38166 "typeString": "uint256"
38167 },
38168 "id": 2277,
38169 "isConstant": false,
38170 "isLValue": false,
38171 "isPure": false,
38172 "lValueRequested": false,
38173 "leftExpression": {
38174 "argumentTypes": null,
38175 "id": 2275,
38176 "name": "x",
38177 "nodeType": "Identifier",
38178 "overloadedDeclarations": [],
38179 "referencedDeclaration": 2268,
38180 "src": "490:1:9",
38181 "typeDescriptions": {
38182 "typeIdentifier": "t_uint256",
38183 "typeString": "uint256"
38184 }
38185 },
38186 "nodeType": "BinaryOperation",
38187 "operator": "<",
38188 "rightExpression": {
38189 "argumentTypes": null,
38190 "id": 2276,
38191 "name": "z",
38192 "nodeType": "Identifier",
38193 "overloadedDeclarations": [],
38194 "referencedDeclaration": 2258,
38195 "src": "494:1:9",
38196 "typeDescriptions": {
38197 "typeIdentifier": "t_uint256",
38198 "typeString": "uint256"
38199 }
38200 },
38201 "src": "490:5:9",
38202 "typeDescriptions": {
38203 "typeIdentifier": "t_bool",
38204 "typeString": "bool"
38205 }
38206 },
38207 "id": 2294,
38208 "nodeType": "WhileStatement",
38209 "src": "483:89:9"
38210 }
38211 ]
38212 }
38213 }
38214 ]
38215 },
38216 "documentation": null,
38217 "id": 2307,
38218 "implemented": true,
38219 "kind": "function",
38220 "modifiers": [],
38221 "name": "sqrt",
38222 "nodeType": "FunctionDefinition",
38223 "overrides": null,
38224 "parameters": {
38225 "id": 2256,
38226 "nodeType": "ParameterList",
38227 "parameters": [
38228 {
38229 "constant": false,
38230 "id": 2255,
38231 "mutability": "mutable",
38232 "name": "y",
38233 "nodeType": "VariableDeclaration",
38234 "overrides": null,
38235 "scope": 2307,
38236 "src": "358:6:9",
38237 "stateVariable": false,
38238 "storageLocation": "default",
38239 "typeDescriptions": {
38240 "typeIdentifier": "t_uint256",
38241 "typeString": "uint256"
38242 },
38243 "typeName": {
38244 "id": 2254,
38245 "name": "uint",
38246 "nodeType": "ElementaryTypeName",
38247 "src": "358:4:9",
38248 "typeDescriptions": {
38249 "typeIdentifier": "t_uint256",
38250 "typeString": "uint256"
38251 }
38252 },
38253 "value": null,
38254 "visibility": "internal"
38255 }
38256 ],
38257 "src": "357:8:9"
38258 },
38259 "returnParameters": {
38260 "id": 2259,
38261 "nodeType": "ParameterList",
38262 "parameters": [
38263 {
38264 "constant": false,
38265 "id": 2258,
38266 "mutability": "mutable",
38267 "name": "z",
38268 "nodeType": "VariableDeclaration",
38269 "overrides": null,
38270 "scope": 2307,
38271 "src": "389:6:9",
38272 "stateVariable": false,
38273 "storageLocation": "default",
38274 "typeDescriptions": {
38275 "typeIdentifier": "t_uint256",
38276 "typeString": "uint256"
38277 },
38278 "typeName": {
38279 "id": 2257,
38280 "name": "uint",
38281 "nodeType": "ElementaryTypeName",
38282 "src": "389:4:9",
38283 "typeDescriptions": {
38284 "typeIdentifier": "t_uint256",
38285 "typeString": "uint256"
38286 }
38287 },
38288 "value": null,
38289 "visibility": "internal"
38290 }
38291 ],
38292 "src": "388:8:9"
38293 },
38294 "scope": 2308,
38295 "src": "344:292:9",
38296 "stateMutability": "pure",
38297 "virtual": false,
38298 "visibility": "internal"
38299 }
38300 ],
38301 "scope": 2309,
38302 "src": "116:522:9"
38303 }
38304 ],
38305 "src": "37:602:9"
38306 }
38307 },
38308 "contracts/libraries/SafeMath.sol": {
38309 "id": 10,
38310 "AST": {
38311 "absolutePath": "contracts/libraries/SafeMath.sol",
38312 "exportedSymbols": {
38313 "SafeMathUniswap": [
38314 2383
38315 ]
38316 },
38317 "id": 2384,
38318 "license": "GPL-3.0",
38319 "nodeType": "SourceUnit",
38320 "nodes": [
38321 {
38322 "id": 2310,
38323 "literals": [
38324 "solidity",
38325 "=",
38326 "0.6",
38327 ".12"
38328 ],
38329 "nodeType": "PragmaDirective",
38330 "src": "37:24:10"
38331 },
38332 {
38333 "abstract": false,
38334 "baseContracts": [],
38335 "contractDependencies": [],
38336 "contractKind": "library",
38337 "documentation": null,
38338 "fullyImplemented": true,
38339 "id": 2383,
38340 "linearizedBaseContracts": [
38341 2383
38342 ],
38343 "name": "SafeMathUniswap",
38344 "nodeType": "ContractDefinition",
38345 "nodes": [
38346 {
38347 "body": {
38348 "id": 2331,
38349 "nodeType": "Block",
38350 "src": "259:66:10",
38351 "statements": [
38352 {
38353 "expression": {
38354 "argumentTypes": null,
38355 "arguments": [
38356 {
38357 "argumentTypes": null,
38358 "commonType": {
38359 "typeIdentifier": "t_uint256",
38360 "typeString": "uint256"
38361 },
38362 "id": 2327,
38363 "isConstant": false,
38364 "isLValue": false,
38365 "isPure": false,
38366 "lValueRequested": false,
38367 "leftExpression": {
38368 "argumentTypes": null,
38369 "components": [
38370 {
38371 "argumentTypes": null,
38372 "id": 2324,
38373 "isConstant": false,
38374 "isLValue": false,
38375 "isPure": false,
38376 "lValueRequested": false,
38377 "leftHandSide": {
38378 "argumentTypes": null,
38379 "id": 2320,
38380 "name": "z",
38381 "nodeType": "Identifier",
38382 "overloadedDeclarations": [],
38383 "referencedDeclaration": 2317,
38384 "src": "278:1:10",
38385 "typeDescriptions": {
38386 "typeIdentifier": "t_uint256",
38387 "typeString": "uint256"
38388 }
38389 },
38390 "nodeType": "Assignment",
38391 "operator": "=",
38392 "rightHandSide": {
38393 "argumentTypes": null,
38394 "commonType": {
38395 "typeIdentifier": "t_uint256",
38396 "typeString": "uint256"
38397 },
38398 "id": 2323,
38399 "isConstant": false,
38400 "isLValue": false,
38401 "isPure": false,
38402 "lValueRequested": false,
38403 "leftExpression": {
38404 "argumentTypes": null,
38405 "id": 2321,
38406 "name": "x",
38407 "nodeType": "Identifier",
38408 "overloadedDeclarations": [],
38409 "referencedDeclaration": 2312,
38410 "src": "282:1:10",
38411 "typeDescriptions": {
38412 "typeIdentifier": "t_uint256",
38413 "typeString": "uint256"
38414 }
38415 },
38416 "nodeType": "BinaryOperation",
38417 "operator": "+",
38418 "rightExpression": {
38419 "argumentTypes": null,
38420 "id": 2322,
38421 "name": "y",
38422 "nodeType": "Identifier",
38423 "overloadedDeclarations": [],
38424 "referencedDeclaration": 2314,
38425 "src": "286:1:10",
38426 "typeDescriptions": {
38427 "typeIdentifier": "t_uint256",
38428 "typeString": "uint256"
38429 }
38430 },
38431 "src": "282:5:10",
38432 "typeDescriptions": {
38433 "typeIdentifier": "t_uint256",
38434 "typeString": "uint256"
38435 }
38436 },
38437 "src": "278:9:10",
38438 "typeDescriptions": {
38439 "typeIdentifier": "t_uint256",
38440 "typeString": "uint256"
38441 }
38442 }
38443 ],
38444 "id": 2325,
38445 "isConstant": false,
38446 "isInlineArray": false,
38447 "isLValue": false,
38448 "isPure": false,
38449 "lValueRequested": false,
38450 "nodeType": "TupleExpression",
38451 "src": "277:11:10",
38452 "typeDescriptions": {
38453 "typeIdentifier": "t_uint256",
38454 "typeString": "uint256"
38455 }
38456 },
38457 "nodeType": "BinaryOperation",
38458 "operator": ">=",
38459 "rightExpression": {
38460 "argumentTypes": null,
38461 "id": 2326,
38462 "name": "x",
38463 "nodeType": "Identifier",
38464 "overloadedDeclarations": [],
38465 "referencedDeclaration": 2312,
38466 "src": "292:1:10",
38467 "typeDescriptions": {
38468 "typeIdentifier": "t_uint256",
38469 "typeString": "uint256"
38470 }
38471 },
38472 "src": "277:16:10",
38473 "typeDescriptions": {
38474 "typeIdentifier": "t_bool",
38475 "typeString": "bool"
38476 }
38477 },
38478 {
38479 "argumentTypes": null,
38480 "hexValue": "64732d6d6174682d6164642d6f766572666c6f77",
38481 "id": 2328,
38482 "isConstant": false,
38483 "isLValue": false,
38484 "isPure": true,
38485 "kind": "string",
38486 "lValueRequested": false,
38487 "nodeType": "Literal",
38488 "src": "295:22:10",
38489 "subdenomination": null,
38490 "typeDescriptions": {
38491 "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db",
38492 "typeString": "literal_string \"ds-math-add-overflow\""
38493 },
38494 "value": "ds-math-add-overflow"
38495 }
38496 ],
38497 "expression": {
38498 "argumentTypes": [
38499 {
38500 "typeIdentifier": "t_bool",
38501 "typeString": "bool"
38502 },
38503 {
38504 "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db",
38505 "typeString": "literal_string \"ds-math-add-overflow\""
38506 }
38507 ],
38508 "id": 2319,
38509 "name": "require",
38510 "nodeType": "Identifier",
38511 "overloadedDeclarations": [
38512 -18,
38513 -18
38514 ],
38515 "referencedDeclaration": -18,
38516 "src": "269:7:10",
38517 "typeDescriptions": {
38518 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
38519 "typeString": "function (bool,string memory) pure"
38520 }
38521 },
38522 "id": 2329,
38523 "isConstant": false,
38524 "isLValue": false,
38525 "isPure": false,
38526 "kind": "functionCall",
38527 "lValueRequested": false,
38528 "names": [],
38529 "nodeType": "FunctionCall",
38530 "src": "269:49:10",
38531 "tryCall": false,
38532 "typeDescriptions": {
38533 "typeIdentifier": "t_tuple$__$",
38534 "typeString": "tuple()"
38535 }
38536 },
38537 "id": 2330,
38538 "nodeType": "ExpressionStatement",
38539 "src": "269:49:10"
38540 }
38541 ]
38542 },
38543 "documentation": null,
38544 "id": 2332,
38545 "implemented": true,
38546 "kind": "function",
38547 "modifiers": [],
38548 "name": "add",
38549 "nodeType": "FunctionDefinition",
38550 "overrides": null,
38551 "parameters": {
38552 "id": 2315,
38553 "nodeType": "ParameterList",
38554 "parameters": [
38555 {
38556 "constant": false,
38557 "id": 2312,
38558 "mutability": "mutable",
38559 "name": "x",
38560 "nodeType": "VariableDeclaration",
38561 "overrides": null,
38562 "scope": 2332,
38563 "src": "212:6:10",
38564 "stateVariable": false,
38565 "storageLocation": "default",
38566 "typeDescriptions": {
38567 "typeIdentifier": "t_uint256",
38568 "typeString": "uint256"
38569 },
38570 "typeName": {
38571 "id": 2311,
38572 "name": "uint",
38573 "nodeType": "ElementaryTypeName",
38574 "src": "212:4:10",
38575 "typeDescriptions": {
38576 "typeIdentifier": "t_uint256",
38577 "typeString": "uint256"
38578 }
38579 },
38580 "value": null,
38581 "visibility": "internal"
38582 },
38583 {
38584 "constant": false,
38585 "id": 2314,
38586 "mutability": "mutable",
38587 "name": "y",
38588 "nodeType": "VariableDeclaration",
38589 "overrides": null,
38590 "scope": 2332,
38591 "src": "220:6:10",
38592 "stateVariable": false,
38593 "storageLocation": "default",
38594 "typeDescriptions": {
38595 "typeIdentifier": "t_uint256",
38596 "typeString": "uint256"
38597 },
38598 "typeName": {
38599 "id": 2313,
38600 "name": "uint",
38601 "nodeType": "ElementaryTypeName",
38602 "src": "220:4:10",
38603 "typeDescriptions": {
38604 "typeIdentifier": "t_uint256",
38605 "typeString": "uint256"
38606 }
38607 },
38608 "value": null,
38609 "visibility": "internal"
38610 }
38611 ],
38612 "src": "211:16:10"
38613 },
38614 "returnParameters": {
38615 "id": 2318,
38616 "nodeType": "ParameterList",
38617 "parameters": [
38618 {
38619 "constant": false,
38620 "id": 2317,
38621 "mutability": "mutable",
38622 "name": "z",
38623 "nodeType": "VariableDeclaration",
38624 "overrides": null,
38625 "scope": 2332,
38626 "src": "251:6:10",
38627 "stateVariable": false,
38628 "storageLocation": "default",
38629 "typeDescriptions": {
38630 "typeIdentifier": "t_uint256",
38631 "typeString": "uint256"
38632 },
38633 "typeName": {
38634 "id": 2316,
38635 "name": "uint",
38636 "nodeType": "ElementaryTypeName",
38637 "src": "251:4:10",
38638 "typeDescriptions": {
38639 "typeIdentifier": "t_uint256",
38640 "typeString": "uint256"
38641 }
38642 },
38643 "value": null,
38644 "visibility": "internal"
38645 }
38646 ],
38647 "src": "250:8:10"
38648 },
38649 "scope": 2383,
38650 "src": "199:126:10",
38651 "stateMutability": "pure",
38652 "virtual": false,
38653 "visibility": "internal"
38654 },
38655 {
38656 "body": {
38657 "id": 2353,
38658 "nodeType": "Block",
38659 "src": "391:67:10",
38660 "statements": [
38661 {
38662 "expression": {
38663 "argumentTypes": null,
38664 "arguments": [
38665 {
38666 "argumentTypes": null,
38667 "commonType": {
38668 "typeIdentifier": "t_uint256",
38669 "typeString": "uint256"
38670 },
38671 "id": 2349,
38672 "isConstant": false,
38673 "isLValue": false,
38674 "isPure": false,
38675 "lValueRequested": false,
38676 "leftExpression": {
38677 "argumentTypes": null,
38678 "components": [
38679 {
38680 "argumentTypes": null,
38681 "id": 2346,
38682 "isConstant": false,
38683 "isLValue": false,
38684 "isPure": false,
38685 "lValueRequested": false,
38686 "leftHandSide": {
38687 "argumentTypes": null,
38688 "id": 2342,
38689 "name": "z",
38690 "nodeType": "Identifier",
38691 "overloadedDeclarations": [],
38692 "referencedDeclaration": 2339,
38693 "src": "410:1:10",
38694 "typeDescriptions": {
38695 "typeIdentifier": "t_uint256",
38696 "typeString": "uint256"
38697 }
38698 },
38699 "nodeType": "Assignment",
38700 "operator": "=",
38701 "rightHandSide": {
38702 "argumentTypes": null,
38703 "commonType": {
38704 "typeIdentifier": "t_uint256",
38705 "typeString": "uint256"
38706 },
38707 "id": 2345,
38708 "isConstant": false,
38709 "isLValue": false,
38710 "isPure": false,
38711 "lValueRequested": false,
38712 "leftExpression": {
38713 "argumentTypes": null,
38714 "id": 2343,
38715 "name": "x",
38716 "nodeType": "Identifier",
38717 "overloadedDeclarations": [],
38718 "referencedDeclaration": 2334,
38719 "src": "414:1:10",
38720 "typeDescriptions": {
38721 "typeIdentifier": "t_uint256",
38722 "typeString": "uint256"
38723 }
38724 },
38725 "nodeType": "BinaryOperation",
38726 "operator": "-",
38727 "rightExpression": {
38728 "argumentTypes": null,
38729 "id": 2344,
38730 "name": "y",
38731 "nodeType": "Identifier",
38732 "overloadedDeclarations": [],
38733 "referencedDeclaration": 2336,
38734 "src": "418:1:10",
38735 "typeDescriptions": {
38736 "typeIdentifier": "t_uint256",
38737 "typeString": "uint256"
38738 }
38739 },
38740 "src": "414:5:10",
38741 "typeDescriptions": {
38742 "typeIdentifier": "t_uint256",
38743 "typeString": "uint256"
38744 }
38745 },
38746 "src": "410:9:10",
38747 "typeDescriptions": {
38748 "typeIdentifier": "t_uint256",
38749 "typeString": "uint256"
38750 }
38751 }
38752 ],
38753 "id": 2347,
38754 "isConstant": false,
38755 "isInlineArray": false,
38756 "isLValue": false,
38757 "isPure": false,
38758 "lValueRequested": false,
38759 "nodeType": "TupleExpression",
38760 "src": "409:11:10",
38761 "typeDescriptions": {
38762 "typeIdentifier": "t_uint256",
38763 "typeString": "uint256"
38764 }
38765 },
38766 "nodeType": "BinaryOperation",
38767 "operator": "<=",
38768 "rightExpression": {
38769 "argumentTypes": null,
38770 "id": 2348,
38771 "name": "x",
38772 "nodeType": "Identifier",
38773 "overloadedDeclarations": [],
38774 "referencedDeclaration": 2334,
38775 "src": "424:1:10",
38776 "typeDescriptions": {
38777 "typeIdentifier": "t_uint256",
38778 "typeString": "uint256"
38779 }
38780 },
38781 "src": "409:16:10",
38782 "typeDescriptions": {
38783 "typeIdentifier": "t_bool",
38784 "typeString": "bool"
38785 }
38786 },
38787 {
38788 "argumentTypes": null,
38789 "hexValue": "64732d6d6174682d7375622d756e646572666c6f77",
38790 "id": 2350,
38791 "isConstant": false,
38792 "isLValue": false,
38793 "isPure": true,
38794 "kind": "string",
38795 "lValueRequested": false,
38796 "nodeType": "Literal",
38797 "src": "427:23:10",
38798 "subdenomination": null,
38799 "typeDescriptions": {
38800 "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590",
38801 "typeString": "literal_string \"ds-math-sub-underflow\""
38802 },
38803 "value": "ds-math-sub-underflow"
38804 }
38805 ],
38806 "expression": {
38807 "argumentTypes": [
38808 {
38809 "typeIdentifier": "t_bool",
38810 "typeString": "bool"
38811 },
38812 {
38813 "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590",
38814 "typeString": "literal_string \"ds-math-sub-underflow\""
38815 }
38816 ],
38817 "id": 2341,
38818 "name": "require",
38819 "nodeType": "Identifier",
38820 "overloadedDeclarations": [
38821 -18,
38822 -18
38823 ],
38824 "referencedDeclaration": -18,
38825 "src": "401:7:10",
38826 "typeDescriptions": {
38827 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
38828 "typeString": "function (bool,string memory) pure"
38829 }
38830 },
38831 "id": 2351,
38832 "isConstant": false,
38833 "isLValue": false,
38834 "isPure": false,
38835 "kind": "functionCall",
38836 "lValueRequested": false,
38837 "names": [],
38838 "nodeType": "FunctionCall",
38839 "src": "401:50:10",
38840 "tryCall": false,
38841 "typeDescriptions": {
38842 "typeIdentifier": "t_tuple$__$",
38843 "typeString": "tuple()"
38844 }
38845 },
38846 "id": 2352,
38847 "nodeType": "ExpressionStatement",
38848 "src": "401:50:10"
38849 }
38850 ]
38851 },
38852 "documentation": null,
38853 "id": 2354,
38854 "implemented": true,
38855 "kind": "function",
38856 "modifiers": [],
38857 "name": "sub",
38858 "nodeType": "FunctionDefinition",
38859 "overrides": null,
38860 "parameters": {
38861 "id": 2337,
38862 "nodeType": "ParameterList",
38863 "parameters": [
38864 {
38865 "constant": false,
38866 "id": 2334,
38867 "mutability": "mutable",
38868 "name": "x",
38869 "nodeType": "VariableDeclaration",
38870 "overrides": null,
38871 "scope": 2354,
38872 "src": "344:6:10",
38873 "stateVariable": false,
38874 "storageLocation": "default",
38875 "typeDescriptions": {
38876 "typeIdentifier": "t_uint256",
38877 "typeString": "uint256"
38878 },
38879 "typeName": {
38880 "id": 2333,
38881 "name": "uint",
38882 "nodeType": "ElementaryTypeName",
38883 "src": "344:4:10",
38884 "typeDescriptions": {
38885 "typeIdentifier": "t_uint256",
38886 "typeString": "uint256"
38887 }
38888 },
38889 "value": null,
38890 "visibility": "internal"
38891 },
38892 {
38893 "constant": false,
38894 "id": 2336,
38895 "mutability": "mutable",
38896 "name": "y",
38897 "nodeType": "VariableDeclaration",
38898 "overrides": null,
38899 "scope": 2354,
38900 "src": "352:6:10",
38901 "stateVariable": false,
38902 "storageLocation": "default",
38903 "typeDescriptions": {
38904 "typeIdentifier": "t_uint256",
38905 "typeString": "uint256"
38906 },
38907 "typeName": {
38908 "id": 2335,
38909 "name": "uint",
38910 "nodeType": "ElementaryTypeName",
38911 "src": "352:4:10",
38912 "typeDescriptions": {
38913 "typeIdentifier": "t_uint256",
38914 "typeString": "uint256"
38915 }
38916 },
38917 "value": null,
38918 "visibility": "internal"
38919 }
38920 ],
38921 "src": "343:16:10"
38922 },
38923 "returnParameters": {
38924 "id": 2340,
38925 "nodeType": "ParameterList",
38926 "parameters": [
38927 {
38928 "constant": false,
38929 "id": 2339,
38930 "mutability": "mutable",
38931 "name": "z",
38932 "nodeType": "VariableDeclaration",
38933 "overrides": null,
38934 "scope": 2354,
38935 "src": "383:6:10",
38936 "stateVariable": false,
38937 "storageLocation": "default",
38938 "typeDescriptions": {
38939 "typeIdentifier": "t_uint256",
38940 "typeString": "uint256"
38941 },
38942 "typeName": {
38943 "id": 2338,
38944 "name": "uint",
38945 "nodeType": "ElementaryTypeName",
38946 "src": "383:4:10",
38947 "typeDescriptions": {
38948 "typeIdentifier": "t_uint256",
38949 "typeString": "uint256"
38950 }
38951 },
38952 "value": null,
38953 "visibility": "internal"
38954 }
38955 ],
38956 "src": "382:8:10"
38957 },
38958 "scope": 2383,
38959 "src": "331:127:10",
38960 "stateMutability": "pure",
38961 "virtual": false,
38962 "visibility": "internal"
38963 },
38964 {
38965 "body": {
38966 "id": 2381,
38967 "nodeType": "Block",
38968 "src": "524:80:10",
38969 "statements": [
38970 {
38971 "expression": {
38972 "argumentTypes": null,
38973 "arguments": [
38974 {
38975 "argumentTypes": null,
38976 "commonType": {
38977 "typeIdentifier": "t_bool",
38978 "typeString": "bool"
38979 },
38980 "id": 2377,
38981 "isConstant": false,
38982 "isLValue": false,
38983 "isPure": false,
38984 "lValueRequested": false,
38985 "leftExpression": {
38986 "argumentTypes": null,
38987 "commonType": {
38988 "typeIdentifier": "t_uint256",
38989 "typeString": "uint256"
38990 },
38991 "id": 2366,
38992 "isConstant": false,
38993 "isLValue": false,
38994 "isPure": false,
38995 "lValueRequested": false,
38996 "leftExpression": {
38997 "argumentTypes": null,
38998 "id": 2364,
38999 "name": "y",
39000 "nodeType": "Identifier",
39001 "overloadedDeclarations": [],
39002 "referencedDeclaration": 2358,
39003 "src": "542:1:10",
39004 "typeDescriptions": {
39005 "typeIdentifier": "t_uint256",
39006 "typeString": "uint256"
39007 }
39008 },
39009 "nodeType": "BinaryOperation",
39010 "operator": "==",
39011 "rightExpression": {
39012 "argumentTypes": null,
39013 "hexValue": "30",
39014 "id": 2365,
39015 "isConstant": false,
39016 "isLValue": false,
39017 "isPure": true,
39018 "kind": "number",
39019 "lValueRequested": false,
39020 "nodeType": "Literal",
39021 "src": "547:1:10",
39022 "subdenomination": null,
39023 "typeDescriptions": {
39024 "typeIdentifier": "t_rational_0_by_1",
39025 "typeString": "int_const 0"
39026 },
39027 "value": "0"
39028 },
39029 "src": "542:6:10",
39030 "typeDescriptions": {
39031 "typeIdentifier": "t_bool",
39032 "typeString": "bool"
39033 }
39034 },
39035 "nodeType": "BinaryOperation",
39036 "operator": "||",
39037 "rightExpression": {
39038 "argumentTypes": null,
39039 "commonType": {
39040 "typeIdentifier": "t_uint256",
39041 "typeString": "uint256"
39042 },
39043 "id": 2376,
39044 "isConstant": false,
39045 "isLValue": false,
39046 "isPure": false,
39047 "lValueRequested": false,
39048 "leftExpression": {
39049 "argumentTypes": null,
39050 "commonType": {
39051 "typeIdentifier": "t_uint256",
39052 "typeString": "uint256"
39053 },
39054 "id": 2374,
39055 "isConstant": false,
39056 "isLValue": false,
39057 "isPure": false,
39058 "lValueRequested": false,
39059 "leftExpression": {
39060 "argumentTypes": null,
39061 "components": [
39062 {
39063 "argumentTypes": null,
39064 "id": 2371,
39065 "isConstant": false,
39066 "isLValue": false,
39067 "isPure": false,
39068 "lValueRequested": false,
39069 "leftHandSide": {
39070 "argumentTypes": null,
39071 "id": 2367,
39072 "name": "z",
39073 "nodeType": "Identifier",
39074 "overloadedDeclarations": [],
39075 "referencedDeclaration": 2361,
39076 "src": "553:1:10",
39077 "typeDescriptions": {
39078 "typeIdentifier": "t_uint256",
39079 "typeString": "uint256"
39080 }
39081 },
39082 "nodeType": "Assignment",
39083 "operator": "=",
39084 "rightHandSide": {
39085 "argumentTypes": null,
39086 "commonType": {
39087 "typeIdentifier": "t_uint256",
39088 "typeString": "uint256"
39089 },
39090 "id": 2370,
39091 "isConstant": false,
39092 "isLValue": false,
39093 "isPure": false,
39094 "lValueRequested": false,
39095 "leftExpression": {
39096 "argumentTypes": null,
39097 "id": 2368,
39098 "name": "x",
39099 "nodeType": "Identifier",
39100 "overloadedDeclarations": [],
39101 "referencedDeclaration": 2356,
39102 "src": "557:1:10",
39103 "typeDescriptions": {
39104 "typeIdentifier": "t_uint256",
39105 "typeString": "uint256"
39106 }
39107 },
39108 "nodeType": "BinaryOperation",
39109 "operator": "*",
39110 "rightExpression": {
39111 "argumentTypes": null,
39112 "id": 2369,
39113 "name": "y",
39114 "nodeType": "Identifier",
39115 "overloadedDeclarations": [],
39116 "referencedDeclaration": 2358,
39117 "src": "561:1:10",
39118 "typeDescriptions": {
39119 "typeIdentifier": "t_uint256",
39120 "typeString": "uint256"
39121 }
39122 },
39123 "src": "557:5:10",
39124 "typeDescriptions": {
39125 "typeIdentifier": "t_uint256",
39126 "typeString": "uint256"
39127 }
39128 },
39129 "src": "553:9:10",
39130 "typeDescriptions": {
39131 "typeIdentifier": "t_uint256",
39132 "typeString": "uint256"
39133 }
39134 }
39135 ],
39136 "id": 2372,
39137 "isConstant": false,
39138 "isInlineArray": false,
39139 "isLValue": false,
39140 "isPure": false,
39141 "lValueRequested": false,
39142 "nodeType": "TupleExpression",
39143 "src": "552:11:10",
39144 "typeDescriptions": {
39145 "typeIdentifier": "t_uint256",
39146 "typeString": "uint256"
39147 }
39148 },
39149 "nodeType": "BinaryOperation",
39150 "operator": "/",
39151 "rightExpression": {
39152 "argumentTypes": null,
39153 "id": 2373,
39154 "name": "y",
39155 "nodeType": "Identifier",
39156 "overloadedDeclarations": [],
39157 "referencedDeclaration": 2358,
39158 "src": "566:1:10",
39159 "typeDescriptions": {
39160 "typeIdentifier": "t_uint256",
39161 "typeString": "uint256"
39162 }
39163 },
39164 "src": "552:15:10",
39165 "typeDescriptions": {
39166 "typeIdentifier": "t_uint256",
39167 "typeString": "uint256"
39168 }
39169 },
39170 "nodeType": "BinaryOperation",
39171 "operator": "==",
39172 "rightExpression": {
39173 "argumentTypes": null,
39174 "id": 2375,
39175 "name": "x",
39176 "nodeType": "Identifier",
39177 "overloadedDeclarations": [],
39178 "referencedDeclaration": 2356,
39179 "src": "571:1:10",
39180 "typeDescriptions": {
39181 "typeIdentifier": "t_uint256",
39182 "typeString": "uint256"
39183 }
39184 },
39185 "src": "552:20:10",
39186 "typeDescriptions": {
39187 "typeIdentifier": "t_bool",
39188 "typeString": "bool"
39189 }
39190 },
39191 "src": "542:30:10",
39192 "typeDescriptions": {
39193 "typeIdentifier": "t_bool",
39194 "typeString": "bool"
39195 }
39196 },
39197 {
39198 "argumentTypes": null,
39199 "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77",
39200 "id": 2378,
39201 "isConstant": false,
39202 "isLValue": false,
39203 "isPure": true,
39204 "kind": "string",
39205 "lValueRequested": false,
39206 "nodeType": "Literal",
39207 "src": "574:22:10",
39208 "subdenomination": null,
39209 "typeDescriptions": {
39210 "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd",
39211 "typeString": "literal_string \"ds-math-mul-overflow\""
39212 },
39213 "value": "ds-math-mul-overflow"
39214 }
39215 ],
39216 "expression": {
39217 "argumentTypes": [
39218 {
39219 "typeIdentifier": "t_bool",
39220 "typeString": "bool"
39221 },
39222 {
39223 "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd",
39224 "typeString": "literal_string \"ds-math-mul-overflow\""
39225 }
39226 ],
39227 "id": 2363,
39228 "name": "require",
39229 "nodeType": "Identifier",
39230 "overloadedDeclarations": [
39231 -18,
39232 -18
39233 ],
39234 "referencedDeclaration": -18,
39235 "src": "534:7:10",
39236 "typeDescriptions": {
39237 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
39238 "typeString": "function (bool,string memory) pure"
39239 }
39240 },
39241 "id": 2379,
39242 "isConstant": false,
39243 "isLValue": false,
39244 "isPure": false,
39245 "kind": "functionCall",
39246 "lValueRequested": false,
39247 "names": [],
39248 "nodeType": "FunctionCall",
39249 "src": "534:63:10",
39250 "tryCall": false,
39251 "typeDescriptions": {
39252 "typeIdentifier": "t_tuple$__$",
39253 "typeString": "tuple()"
39254 }
39255 },
39256 "id": 2380,
39257 "nodeType": "ExpressionStatement",
39258 "src": "534:63:10"
39259 }
39260 ]
39261 },
39262 "documentation": null,
39263 "id": 2382,
39264 "implemented": true,
39265 "kind": "function",
39266 "modifiers": [],
39267 "name": "mul",
39268 "nodeType": "FunctionDefinition",
39269 "overrides": null,
39270 "parameters": {
39271 "id": 2359,
39272 "nodeType": "ParameterList",
39273 "parameters": [
39274 {
39275 "constant": false,
39276 "id": 2356,
39277 "mutability": "mutable",
39278 "name": "x",
39279 "nodeType": "VariableDeclaration",
39280 "overrides": null,
39281 "scope": 2382,
39282 "src": "477:6:10",
39283 "stateVariable": false,
39284 "storageLocation": "default",
39285 "typeDescriptions": {
39286 "typeIdentifier": "t_uint256",
39287 "typeString": "uint256"
39288 },
39289 "typeName": {
39290 "id": 2355,
39291 "name": "uint",
39292 "nodeType": "ElementaryTypeName",
39293 "src": "477:4:10",
39294 "typeDescriptions": {
39295 "typeIdentifier": "t_uint256",
39296 "typeString": "uint256"
39297 }
39298 },
39299 "value": null,
39300 "visibility": "internal"
39301 },
39302 {
39303 "constant": false,
39304 "id": 2358,
39305 "mutability": "mutable",
39306 "name": "y",
39307 "nodeType": "VariableDeclaration",
39308 "overrides": null,
39309 "scope": 2382,
39310 "src": "485:6:10",
39311 "stateVariable": false,
39312 "storageLocation": "default",
39313 "typeDescriptions": {
39314 "typeIdentifier": "t_uint256",
39315 "typeString": "uint256"
39316 },
39317 "typeName": {
39318 "id": 2357,
39319 "name": "uint",
39320 "nodeType": "ElementaryTypeName",
39321 "src": "485:4:10",
39322 "typeDescriptions": {
39323 "typeIdentifier": "t_uint256",
39324 "typeString": "uint256"
39325 }
39326 },
39327 "value": null,
39328 "visibility": "internal"
39329 }
39330 ],
39331 "src": "476:16:10"
39332 },
39333 "returnParameters": {
39334 "id": 2362,
39335 "nodeType": "ParameterList",
39336 "parameters": [
39337 {
39338 "constant": false,
39339 "id": 2361,
39340 "mutability": "mutable",
39341 "name": "z",
39342 "nodeType": "VariableDeclaration",
39343 "overrides": null,
39344 "scope": 2382,
39345 "src": "516:6:10",
39346 "stateVariable": false,
39347 "storageLocation": "default",
39348 "typeDescriptions": {
39349 "typeIdentifier": "t_uint256",
39350 "typeString": "uint256"
39351 },
39352 "typeName": {
39353 "id": 2360,
39354 "name": "uint",
39355 "nodeType": "ElementaryTypeName",
39356 "src": "516:4:10",
39357 "typeDescriptions": {
39358 "typeIdentifier": "t_uint256",
39359 "typeString": "uint256"
39360 }
39361 },
39362 "value": null,
39363 "visibility": "internal"
39364 }
39365 ],
39366 "src": "515:8:10"
39367 },
39368 "scope": 2383,
39369 "src": "464:140:10",
39370 "stateMutability": "pure",
39371 "virtual": false,
39372 "visibility": "internal"
39373 }
39374 ],
39375 "scope": 2384,
39376 "src": "169:437:10"
39377 }
39378 ],
39379 "src": "37:570:10"
39380 }
39381 },
39382 "contracts/libraries/UQ112x112.sol": {
39383 "id": 11,
39384 "AST": {
39385 "absolutePath": "contracts/libraries/UQ112x112.sol",
39386 "exportedSymbols": {
39387 "UQ112x112": [
39388 2427
39389 ]
39390 },
39391 "id": 2428,
39392 "license": "GPL-3.0",
39393 "nodeType": "SourceUnit",
39394 "nodes": [
39395 {
39396 "id": 2385,
39397 "literals": [
39398 "solidity",
39399 "=",
39400 "0.6",
39401 ".12"
39402 ],
39403 "nodeType": "PragmaDirective",
39404 "src": "37:24:11"
39405 },
39406 {
39407 "abstract": false,
39408 "baseContracts": [],
39409 "contractDependencies": [],
39410 "contractKind": "library",
39411 "documentation": null,
39412 "fullyImplemented": true,
39413 "id": 2427,
39414 "linearizedBaseContracts": [
39415 2427
39416 ],
39417 "name": "UQ112x112",
39418 "nodeType": "ContractDefinition",
39419 "nodes": [
39420 {
39421 "constant": true,
39422 "id": 2390,
39423 "mutability": "constant",
39424 "name": "Q112",
39425 "nodeType": "VariableDeclaration",
39426 "overrides": null,
39427 "scope": 2427,
39428 "src": "244:30:11",
39429 "stateVariable": true,
39430 "storageLocation": "default",
39431 "typeDescriptions": {
39432 "typeIdentifier": "t_uint224",
39433 "typeString": "uint224"
39434 },
39435 "typeName": {
39436 "id": 2386,
39437 "name": "uint224",
39438 "nodeType": "ElementaryTypeName",
39439 "src": "244:7:11",
39440 "typeDescriptions": {
39441 "typeIdentifier": "t_uint224",
39442 "typeString": "uint224"
39443 }
39444 },
39445 "value": {
39446 "argumentTypes": null,
39447 "commonType": {
39448 "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
39449 "typeString": "int_const 5192...(26 digits omitted)...0096"
39450 },
39451 "id": 2389,
39452 "isConstant": false,
39453 "isLValue": false,
39454 "isPure": true,
39455 "lValueRequested": false,
39456 "leftExpression": {
39457 "argumentTypes": null,
39458 "hexValue": "32",
39459 "id": 2387,
39460 "isConstant": false,
39461 "isLValue": false,
39462 "isPure": true,
39463 "kind": "number",
39464 "lValueRequested": false,
39465 "nodeType": "Literal",
39466 "src": "268:1:11",
39467 "subdenomination": null,
39468 "typeDescriptions": {
39469 "typeIdentifier": "t_rational_2_by_1",
39470 "typeString": "int_const 2"
39471 },
39472 "value": "2"
39473 },
39474 "nodeType": "BinaryOperation",
39475 "operator": "**",
39476 "rightExpression": {
39477 "argumentTypes": null,
39478 "hexValue": "313132",
39479 "id": 2388,
39480 "isConstant": false,
39481 "isLValue": false,
39482 "isPure": true,
39483 "kind": "number",
39484 "lValueRequested": false,
39485 "nodeType": "Literal",
39486 "src": "271:3:11",
39487 "subdenomination": null,
39488 "typeDescriptions": {
39489 "typeIdentifier": "t_rational_112_by_1",
39490 "typeString": "int_const 112"
39491 },
39492 "value": "112"
39493 },
39494 "src": "268:6:11",
39495 "typeDescriptions": {
39496 "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
39497 "typeString": "int_const 5192...(26 digits omitted)...0096"
39498 }
39499 },
39500 "visibility": "internal"
39501 },
39502 {
39503 "body": {
39504 "id": 2406,
39505 "nodeType": "Block",
39506 "src": "381:57:11",
39507 "statements": [
39508 {
39509 "expression": {
39510 "argumentTypes": null,
39511 "id": 2404,
39512 "isConstant": false,
39513 "isLValue": false,
39514 "isPure": false,
39515 "lValueRequested": false,
39516 "leftHandSide": {
39517 "argumentTypes": null,
39518 "id": 2397,
39519 "name": "z",
39520 "nodeType": "Identifier",
39521 "overloadedDeclarations": [],
39522 "referencedDeclaration": 2395,
39523 "src": "391:1:11",
39524 "typeDescriptions": {
39525 "typeIdentifier": "t_uint224",
39526 "typeString": "uint224"
39527 }
39528 },
39529 "nodeType": "Assignment",
39530 "operator": "=",
39531 "rightHandSide": {
39532 "argumentTypes": null,
39533 "commonType": {
39534 "typeIdentifier": "t_uint224",
39535 "typeString": "uint224"
39536 },
39537 "id": 2403,
39538 "isConstant": false,
39539 "isLValue": false,
39540 "isPure": false,
39541 "lValueRequested": false,
39542 "leftExpression": {
39543 "argumentTypes": null,
39544 "arguments": [
39545 {
39546 "argumentTypes": null,
39547 "id": 2400,
39548 "name": "y",
39549 "nodeType": "Identifier",
39550 "overloadedDeclarations": [],
39551 "referencedDeclaration": 2392,
39552 "src": "403:1:11",
39553 "typeDescriptions": {
39554 "typeIdentifier": "t_uint112",
39555 "typeString": "uint112"
39556 }
39557 }
39558 ],
39559 "expression": {
39560 "argumentTypes": [
39561 {
39562 "typeIdentifier": "t_uint112",
39563 "typeString": "uint112"
39564 }
39565 ],
39566 "id": 2399,
39567 "isConstant": false,
39568 "isLValue": false,
39569 "isPure": true,
39570 "lValueRequested": false,
39571 "nodeType": "ElementaryTypeNameExpression",
39572 "src": "395:7:11",
39573 "typeDescriptions": {
39574 "typeIdentifier": "t_type$_t_uint224_$",
39575 "typeString": "type(uint224)"
39576 },
39577 "typeName": {
39578 "id": 2398,
39579 "name": "uint224",
39580 "nodeType": "ElementaryTypeName",
39581 "src": "395:7:11",
39582 "typeDescriptions": {
39583 "typeIdentifier": null,
39584 "typeString": null
39585 }
39586 }
39587 },
39588 "id": 2401,
39589 "isConstant": false,
39590 "isLValue": false,
39591 "isPure": false,
39592 "kind": "typeConversion",
39593 "lValueRequested": false,
39594 "names": [],
39595 "nodeType": "FunctionCall",
39596 "src": "395:10:11",
39597 "tryCall": false,
39598 "typeDescriptions": {
39599 "typeIdentifier": "t_uint224",
39600 "typeString": "uint224"
39601 }
39602 },
39603 "nodeType": "BinaryOperation",
39604 "operator": "*",
39605 "rightExpression": {
39606 "argumentTypes": null,
39607 "id": 2402,
39608 "name": "Q112",
39609 "nodeType": "Identifier",
39610 "overloadedDeclarations": [],
39611 "referencedDeclaration": 2390,
39612 "src": "408:4:11",
39613 "typeDescriptions": {
39614 "typeIdentifier": "t_uint224",
39615 "typeString": "uint224"
39616 }
39617 },
39618 "src": "395:17:11",
39619 "typeDescriptions": {
39620 "typeIdentifier": "t_uint224",
39621 "typeString": "uint224"
39622 }
39623 },
39624 "src": "391:21:11",
39625 "typeDescriptions": {
39626 "typeIdentifier": "t_uint224",
39627 "typeString": "uint224"
39628 }
39629 },
39630 "id": 2405,
39631 "nodeType": "ExpressionStatement",
39632 "src": "391:21:11"
39633 }
39634 ]
39635 },
39636 "documentation": null,
39637 "id": 2407,
39638 "implemented": true,
39639 "kind": "function",
39640 "modifiers": [],
39641 "name": "encode",
39642 "nodeType": "FunctionDefinition",
39643 "overrides": null,
39644 "parameters": {
39645 "id": 2393,
39646 "nodeType": "ParameterList",
39647 "parameters": [
39648 {
39649 "constant": false,
39650 "id": 2392,
39651 "mutability": "mutable",
39652 "name": "y",
39653 "nodeType": "VariableDeclaration",
39654 "overrides": null,
39655 "scope": 2407,
39656 "src": "336:9:11",
39657 "stateVariable": false,
39658 "storageLocation": "default",
39659 "typeDescriptions": {
39660 "typeIdentifier": "t_uint112",
39661 "typeString": "uint112"
39662 },
39663 "typeName": {
39664 "id": 2391,
39665 "name": "uint112",
39666 "nodeType": "ElementaryTypeName",
39667 "src": "336:7:11",
39668 "typeDescriptions": {
39669 "typeIdentifier": "t_uint112",
39670 "typeString": "uint112"
39671 }
39672 },
39673 "value": null,
39674 "visibility": "internal"
39675 }
39676 ],
39677 "src": "335:11:11"
39678 },
39679 "returnParameters": {
39680 "id": 2396,
39681 "nodeType": "ParameterList",
39682 "parameters": [
39683 {
39684 "constant": false,
39685 "id": 2395,
39686 "mutability": "mutable",
39687 "name": "z",
39688 "nodeType": "VariableDeclaration",
39689 "overrides": null,
39690 "scope": 2407,
39691 "src": "370:9:11",
39692 "stateVariable": false,
39693 "storageLocation": "default",
39694 "typeDescriptions": {
39695 "typeIdentifier": "t_uint224",
39696 "typeString": "uint224"
39697 },
39698 "typeName": {
39699 "id": 2394,
39700 "name": "uint224",
39701 "nodeType": "ElementaryTypeName",
39702 "src": "370:7:11",
39703 "typeDescriptions": {
39704 "typeIdentifier": "t_uint224",
39705 "typeString": "uint224"
39706 }
39707 },
39708 "value": null,
39709 "visibility": "internal"
39710 }
39711 ],
39712 "src": "369:11:11"
39713 },
39714 "scope": 2427,
39715 "src": "320:118:11",
39716 "stateMutability": "pure",
39717 "virtual": false,
39718 "visibility": "internal"
39719 },
39720 {
39721 "body": {
39722 "id": 2425,
39723 "nodeType": "Block",
39724 "src": "577:35:11",
39725 "statements": [
39726 {
39727 "expression": {
39728 "argumentTypes": null,
39729 "id": 2423,
39730 "isConstant": false,
39731 "isLValue": false,
39732 "isPure": false,
39733 "lValueRequested": false,
39734 "leftHandSide": {
39735 "argumentTypes": null,
39736 "id": 2416,
39737 "name": "z",
39738 "nodeType": "Identifier",
39739 "overloadedDeclarations": [],
39740 "referencedDeclaration": 2414,
39741 "src": "587:1:11",
39742 "typeDescriptions": {
39743 "typeIdentifier": "t_uint224",
39744 "typeString": "uint224"
39745 }
39746 },
39747 "nodeType": "Assignment",
39748 "operator": "=",
39749 "rightHandSide": {
39750 "argumentTypes": null,
39751 "commonType": {
39752 "typeIdentifier": "t_uint224",
39753 "typeString": "uint224"
39754 },
39755 "id": 2422,
39756 "isConstant": false,
39757 "isLValue": false,
39758 "isPure": false,
39759 "lValueRequested": false,
39760 "leftExpression": {
39761 "argumentTypes": null,
39762 "id": 2417,
39763 "name": "x",
39764 "nodeType": "Identifier",
39765 "overloadedDeclarations": [],
39766 "referencedDeclaration": 2409,
39767 "src": "591:1:11",
39768 "typeDescriptions": {
39769 "typeIdentifier": "t_uint224",
39770 "typeString": "uint224"
39771 }
39772 },
39773 "nodeType": "BinaryOperation",
39774 "operator": "/",
39775 "rightExpression": {
39776 "argumentTypes": null,
39777 "arguments": [
39778 {
39779 "argumentTypes": null,
39780 "id": 2420,
39781 "name": "y",
39782 "nodeType": "Identifier",
39783 "overloadedDeclarations": [],
39784 "referencedDeclaration": 2411,
39785 "src": "603:1:11",
39786 "typeDescriptions": {
39787 "typeIdentifier": "t_uint112",
39788 "typeString": "uint112"
39789 }
39790 }
39791 ],
39792 "expression": {
39793 "argumentTypes": [
39794 {
39795 "typeIdentifier": "t_uint112",
39796 "typeString": "uint112"
39797 }
39798 ],
39799 "id": 2419,
39800 "isConstant": false,
39801 "isLValue": false,
39802 "isPure": true,
39803 "lValueRequested": false,
39804 "nodeType": "ElementaryTypeNameExpression",
39805 "src": "595:7:11",
39806 "typeDescriptions": {
39807 "typeIdentifier": "t_type$_t_uint224_$",
39808 "typeString": "type(uint224)"
39809 },
39810 "typeName": {
39811 "id": 2418,
39812 "name": "uint224",
39813 "nodeType": "ElementaryTypeName",
39814 "src": "595:7:11",
39815 "typeDescriptions": {
39816 "typeIdentifier": null,
39817 "typeString": null
39818 }
39819 }
39820 },
39821 "id": 2421,
39822 "isConstant": false,
39823 "isLValue": false,
39824 "isPure": false,
39825 "kind": "typeConversion",
39826 "lValueRequested": false,
39827 "names": [],
39828 "nodeType": "FunctionCall",
39829 "src": "595:10:11",
39830 "tryCall": false,
39831 "typeDescriptions": {
39832 "typeIdentifier": "t_uint224",
39833 "typeString": "uint224"
39834 }
39835 },
39836 "src": "591:14:11",
39837 "typeDescriptions": {
39838 "typeIdentifier": "t_uint224",
39839 "typeString": "uint224"
39840 }
39841 },
39842 "src": "587:18:11",
39843 "typeDescriptions": {
39844 "typeIdentifier": "t_uint224",
39845 "typeString": "uint224"
39846 }
39847 },
39848 "id": 2424,
39849 "nodeType": "ExpressionStatement",
39850 "src": "587:18:11"
39851 }
39852 ]
39853 },
39854 "documentation": null,
39855 "id": 2426,
39856 "implemented": true,
39857 "kind": "function",
39858 "modifiers": [],
39859 "name": "uqdiv",
39860 "nodeType": "FunctionDefinition",
39861 "overrides": null,
39862 "parameters": {
39863 "id": 2412,
39864 "nodeType": "ParameterList",
39865 "parameters": [
39866 {
39867 "constant": false,
39868 "id": 2409,
39869 "mutability": "mutable",
39870 "name": "x",
39871 "nodeType": "VariableDeclaration",
39872 "overrides": null,
39873 "scope": 2426,
39874 "src": "521:9:11",
39875 "stateVariable": false,
39876 "storageLocation": "default",
39877 "typeDescriptions": {
39878 "typeIdentifier": "t_uint224",
39879 "typeString": "uint224"
39880 },
39881 "typeName": {
39882 "id": 2408,
39883 "name": "uint224",
39884 "nodeType": "ElementaryTypeName",
39885 "src": "521:7:11",
39886 "typeDescriptions": {
39887 "typeIdentifier": "t_uint224",
39888 "typeString": "uint224"
39889 }
39890 },
39891 "value": null,
39892 "visibility": "internal"
39893 },
39894 {
39895 "constant": false,
39896 "id": 2411,
39897 "mutability": "mutable",
39898 "name": "y",
39899 "nodeType": "VariableDeclaration",
39900 "overrides": null,
39901 "scope": 2426,
39902 "src": "532:9:11",
39903 "stateVariable": false,
39904 "storageLocation": "default",
39905 "typeDescriptions": {
39906 "typeIdentifier": "t_uint112",
39907 "typeString": "uint112"
39908 },
39909 "typeName": {
39910 "id": 2410,
39911 "name": "uint112",
39912 "nodeType": "ElementaryTypeName",
39913 "src": "532:7:11",
39914 "typeDescriptions": {
39915 "typeIdentifier": "t_uint112",
39916 "typeString": "uint112"
39917 }
39918 },
39919 "value": null,
39920 "visibility": "internal"
39921 }
39922 ],
39923 "src": "520:22:11"
39924 },
39925 "returnParameters": {
39926 "id": 2415,
39927 "nodeType": "ParameterList",
39928 "parameters": [
39929 {
39930 "constant": false,
39931 "id": 2414,
39932 "mutability": "mutable",
39933 "name": "z",
39934 "nodeType": "VariableDeclaration",
39935 "overrides": null,
39936 "scope": 2426,
39937 "src": "566:9:11",
39938 "stateVariable": false,
39939 "storageLocation": "default",
39940 "typeDescriptions": {
39941 "typeIdentifier": "t_uint224",
39942 "typeString": "uint224"
39943 },
39944 "typeName": {
39945 "id": 2413,
39946 "name": "uint224",
39947 "nodeType": "ElementaryTypeName",
39948 "src": "566:7:11",
39949 "typeDescriptions": {
39950 "typeIdentifier": "t_uint224",
39951 "typeString": "uint224"
39952 }
39953 },
39954 "value": null,
39955 "visibility": "internal"
39956 }
39957 ],
39958 "src": "565:11:11"
39959 },
39960 "scope": 2427,
39961 "src": "506:106:11",
39962 "stateMutability": "pure",
39963 "virtual": false,
39964 "visibility": "internal"
39965 }
39966 ],
39967 "scope": 2428,
39968 "src": "220:394:11"
39969 }
39970 ],
39971 "src": "37:578:11"
39972 }
39973 },
39974 "contracts/test/ERC20.sol": {
39975 "id": 12,
39976 "AST": {
39977 "absolutePath": "contracts/test/ERC20.sol",
39978 "exportedSymbols": {
39979 "ERC20": [
39980 2445
39981 ]
39982 },
39983 "id": 2446,
39984 "license": "MIT",
39985 "nodeType": "SourceUnit",
39986 "nodes": [
39987 {
39988 "id": 2429,
39989 "literals": [
39990 "solidity",
39991 "=",
39992 "0.6",
39993 ".12"
39994 ],
39995 "nodeType": "PragmaDirective",
39996 "src": "32:24:12"
39997 },
39998 {
39999 "absolutePath": "contracts/UniswapV2ERC20.sol",
40000 "file": "../UniswapV2ERC20.sol",
40001 "id": 2430,
40002 "nodeType": "ImportDirective",
40003 "scope": 2446,
40004 "sourceUnit": 426,
40005 "src": "58:31:12",
40006 "symbolAliases": [],
40007 "unitAlias": ""
40008 },
40009 {
40010 "abstract": false,
40011 "baseContracts": [
40012 {
40013 "arguments": null,
40014 "baseName": {
40015 "contractScope": null,
40016 "id": 2431,
40017 "name": "UniswapV2ERC20",
40018 "nodeType": "UserDefinedTypeName",
40019 "referencedDeclaration": 425,
40020 "src": "109:14:12",
40021 "typeDescriptions": {
40022 "typeIdentifier": "t_contract$_UniswapV2ERC20_$425",
40023 "typeString": "contract UniswapV2ERC20"
40024 }
40025 },
40026 "id": 2432,
40027 "nodeType": "InheritanceSpecifier",
40028 "src": "109:14:12"
40029 }
40030 ],
40031 "contractDependencies": [
40032 425
40033 ],
40034 "contractKind": "contract",
40035 "documentation": null,
40036 "fullyImplemented": true,
40037 "id": 2445,
40038 "linearizedBaseContracts": [
40039 2445,
40040 425
40041 ],
40042 "name": "ERC20",
40043 "nodeType": "ContractDefinition",
40044 "nodes": [
40045 {
40046 "body": {
40047 "id": 2443,
40048 "nodeType": "Block",
40049 "src": "168:48:12",
40050 "statements": [
40051 {
40052 "expression": {
40053 "argumentTypes": null,
40054 "arguments": [
40055 {
40056 "argumentTypes": null,
40057 "expression": {
40058 "argumentTypes": null,
40059 "id": 2438,
40060 "name": "msg",
40061 "nodeType": "Identifier",
40062 "overloadedDeclarations": [],
40063 "referencedDeclaration": -15,
40064 "src": "184:3:12",
40065 "typeDescriptions": {
40066 "typeIdentifier": "t_magic_message",
40067 "typeString": "msg"
40068 }
40069 },
40070 "id": 2439,
40071 "isConstant": false,
40072 "isLValue": false,
40073 "isPure": false,
40074 "lValueRequested": false,
40075 "memberName": "sender",
40076 "nodeType": "MemberAccess",
40077 "referencedDeclaration": null,
40078 "src": "184:10:12",
40079 "typeDescriptions": {
40080 "typeIdentifier": "t_address_payable",
40081 "typeString": "address payable"
40082 }
40083 },
40084 {
40085 "argumentTypes": null,
40086 "id": 2440,
40087 "name": "_totalSupply",
40088 "nodeType": "Identifier",
40089 "overloadedDeclarations": [],
40090 "referencedDeclaration": 2434,
40091 "src": "196:12:12",
40092 "typeDescriptions": {
40093 "typeIdentifier": "t_uint256",
40094 "typeString": "uint256"
40095 }
40096 }
40097 ],
40098 "expression": {
40099 "argumentTypes": [
40100 {
40101 "typeIdentifier": "t_address_payable",
40102 "typeString": "address payable"
40103 },
40104 {
40105 "typeIdentifier": "t_uint256",
40106 "typeString": "uint256"
40107 }
40108 ],
40109 "id": 2437,
40110 "name": "_mint",
40111 "nodeType": "Identifier",
40112 "overloadedDeclarations": [],
40113 "referencedDeclaration": 159,
40114 "src": "178:5:12",
40115 "typeDescriptions": {
40116 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
40117 "typeString": "function (address,uint256)"
40118 }
40119 },
40120 "id": 2441,
40121 "isConstant": false,
40122 "isLValue": false,
40123 "isPure": false,
40124 "kind": "functionCall",
40125 "lValueRequested": false,
40126 "names": [],
40127 "nodeType": "FunctionCall",
40128 "src": "178:31:12",
40129 "tryCall": false,
40130 "typeDescriptions": {
40131 "typeIdentifier": "t_tuple$__$",
40132 "typeString": "tuple()"
40133 }
40134 },
40135 "id": 2442,
40136 "nodeType": "ExpressionStatement",
40137 "src": "178:31:12"
40138 }
40139 ]
40140 },
40141 "documentation": null,
40142 "id": 2444,
40143 "implemented": true,
40144 "kind": "constructor",
40145 "modifiers": [],
40146 "name": "",
40147 "nodeType": "FunctionDefinition",
40148 "overrides": null,
40149 "parameters": {
40150 "id": 2435,
40151 "nodeType": "ParameterList",
40152 "parameters": [
40153 {
40154 "constant": false,
40155 "id": 2434,
40156 "mutability": "mutable",
40157 "name": "_totalSupply",
40158 "nodeType": "VariableDeclaration",
40159 "overrides": null,
40160 "scope": 2444,
40161 "src": "142:17:12",
40162 "stateVariable": false,
40163 "storageLocation": "default",
40164 "typeDescriptions": {
40165 "typeIdentifier": "t_uint256",
40166 "typeString": "uint256"
40167 },
40168 "typeName": {
40169 "id": 2433,
40170 "name": "uint",
40171 "nodeType": "ElementaryTypeName",
40172 "src": "142:4:12",
40173 "typeDescriptions": {
40174 "typeIdentifier": "t_uint256",
40175 "typeString": "uint256"
40176 }
40177 },
40178 "value": null,
40179 "visibility": "internal"
40180 }
40181 ],
40182 "src": "141:19:12"
40183 },
40184 "returnParameters": {
40185 "id": 2436,
40186 "nodeType": "ParameterList",
40187 "parameters": [],
40188 "src": "168:0:12"
40189 },
40190 "scope": 2445,
40191 "src": "130:86:12",
40192 "stateMutability": "nonpayable",
40193 "virtual": false,
40194 "visibility": "public"
40195 }
40196 ],
40197 "scope": 2446,
40198 "src": "91:127:12"
40199 }
40200 ],
40201 "src": "32:187:12"
40202 }
40203 }
40204 },
40205 "sourceList": [
40206 "contracts/Migration.sol",
40207 "contracts/UniswapV2ERC20.sol",
40208 "contracts/UniswapV2Factory.sol",
40209 "contracts/UniswapV2Pair.sol",
40210 "contracts/interfaces/IERC20Uniswap.sol",
40211 "contracts/interfaces/IUniswapV2Callee.sol",
40212 "contracts/interfaces/IUniswapV2ERC20.sol",
40213 "contracts/interfaces/IUniswapV2Factory.sol",
40214 "contracts/interfaces/IUniswapV2Pair.sol",
40215 "contracts/libraries/Math.sol",
40216 "contracts/libraries/SafeMath.sol",
40217 "contracts/libraries/UQ112x112.sol",
40218 "contracts/test/ERC20.sol"
40219 ]
40220}
\No newline at end of file