ETH Price: $2,189.44 (-2.40%)
 

Overview

ETH Balance

72.110211423179684365 ETH

Eth Value

$157,881.16 (@ $2,189.44/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
User Cmd248485682026-04-10 9:56:232 days ago1775814983IN
Ambient Finance: Croc Swap Dex
0 ETH0.000019460.16594645
User Cmd248485592026-04-10 9:54:352 days ago1775814875IN
Ambient Finance: Croc Swap Dex
0 ETH0.000012050.15150324
User Cmd248485512026-04-10 9:52:592 days ago1775814779IN
Ambient Finance: Croc Swap Dex
0 ETH0.0000090.09842436
User Cmd248485432026-04-10 9:51:232 days ago1775814683IN
Ambient Finance: Croc Swap Dex
0 ETH0.000025170.21604314
User Cmd248392502026-04-09 2:43:473 days ago1775702627IN
Ambient Finance: Croc Swap Dex
0 ETH0.000017740.16744871
User Cmd248357952026-04-08 15:10:113 days ago1775661011IN
Ambient Finance: Croc Swap Dex
0 ETH0.000269542.43536183
User Cmd248306612026-04-07 22:00:474 days ago1775599247IN
Ambient Finance: Croc Swap Dex
0 ETH0.000015940.1465152
User Cmd248292402026-04-07 17:15:474 days ago1775582147IN
Ambient Finance: Croc Swap Dex
0 ETH0.00001330.12573145
User Cmd248167442026-04-05 23:27:236 days ago1775431643IN
Ambient Finance: Croc Swap Dex
0.006 ETH0.000022040.16815417
User Cmd248167372026-04-05 23:25:596 days ago1775431559IN
Ambient Finance: Croc Swap Dex
0.007 ETH0.000021280.18353971
User Cmd248142772026-04-05 15:12:356 days ago1775401955IN
Ambient Finance: Croc Swap Dex
0 ETH0.000144680.60753091
User Cmd248085052026-04-04 19:54:237 days ago1775332463IN
Ambient Finance: Croc Swap Dex
0 ETH0.000269552.09917401
User Cmd247838182026-04-01 9:21:1111 days ago1775035271IN
Ambient Finance: Croc Swap Dex
0.0003365 ETH0.000245422.11733886
User Cmd247633852026-03-29 12:56:5914 days ago1774789019IN
Ambient Finance: Croc Swap Dex
0.00389073 ETH0.000011950.12088275
User Cmd247633692026-03-29 12:53:4714 days ago1774788827IN
Ambient Finance: Croc Swap Dex
0 ETH0.000014290.12458807
User Cmd247547742026-03-28 8:08:4715 days ago1774685327IN
Ambient Finance: Croc Swap Dex
0 ETH0.000011160.11507317
User Cmd247547722026-03-28 8:08:2315 days ago1774685303IN
Ambient Finance: Croc Swap Dex
0 ETH0.000008210.08460517
User Cmd247547722026-03-28 8:08:2315 days ago1774685303IN
Ambient Finance: Croc Swap Dex
0 ETH0.000010890.11162763
User Cmd247547672026-03-28 8:07:2315 days ago1774685243IN
Ambient Finance: Croc Swap Dex
0 ETH0.000005820.06990867
User Cmd247547642026-03-28 8:06:4715 days ago1774685207IN
Ambient Finance: Croc Swap Dex
0 ETH0.00000610.0683746
User Cmd247547612026-03-28 8:06:1115 days ago1774685171IN
Ambient Finance: Croc Swap Dex
0 ETH0.00000990.09958274
User Cmd247482982026-03-27 10:27:4716 days ago1774607267IN
Ambient Finance: Croc Swap Dex
0 ETH0.000014230.10605727
User Cmd247445782026-03-26 21:59:5916 days ago1774562399IN
Ambient Finance: Croc Swap Dex
0 ETH0.000010910.1
User Cmd247445752026-03-26 21:59:2316 days ago1774562363IN
Ambient Finance: Croc Swap Dex
0 ETH0.000011650.1
User Cmd247317072026-03-25 2:53:5918 days ago1774407239IN
Ambient Finance: Croc Swap Dex
0.00048904 ETH0.000004640.04004408
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
User Cmd248641252026-04-12 13:59:1140 mins ago1776002351
Ambient Finance: Croc Swap Dex
0.03477106 ETH
User Cmd248641132026-04-12 13:56:4743 mins ago1776002207
Ambient Finance: Croc Swap Dex
0.0065677 ETH
User Cmd248640932026-04-12 13:52:4747 mins ago1776001967
Ambient Finance: Croc Swap Dex
0.03742801 ETH
User Cmd248640792026-04-12 13:49:5950 mins ago1776001799
Ambient Finance: Croc Swap Dex
0.0028883 ETH
User Cmd248640332026-04-12 13:40:471 hr ago1776001247
Ambient Finance: Croc Swap Dex
0.07299999 ETH
User Cmd248638392026-04-12 13:01:471 hr ago1775998907
Ambient Finance: Croc Swap Dex
0.10999999 ETH
User Cmd248638342026-04-12 13:00:471 hr ago1775998847
Ambient Finance: Croc Swap Dex
0.04542 ETH
Transfer248633862026-04-12 11:30:593 hrs ago1775993459
Ambient Finance: Croc Swap Dex
0.00532463 ETH
User Cmd248632142026-04-12 10:56:113 hrs ago1775991371
Ambient Finance: Croc Swap Dex
0.03747403 ETH
User Cmd248632132026-04-12 10:55:593 hrs ago1775991359
Ambient Finance: Croc Swap Dex
0.02499078 ETH
User Cmd248632102026-04-12 10:55:233 hrs ago1775991323
Ambient Finance: Croc Swap Dex
0.02499078 ETH
Transfer248632092026-04-12 10:55:113 hrs ago1775991311
Ambient Finance: Croc Swap Dex
0.00015178 ETH
User Cmd248632092026-04-12 10:55:113 hrs ago1775991311
Ambient Finance: Croc Swap Dex
0.19308971 ETH
Transfer248632042026-04-12 10:54:113 hrs ago1775991251
Ambient Finance: Croc Swap Dex
0.0000473 ETH
User Cmd248632042026-04-12 10:54:113 hrs ago1775991251
Ambient Finance: Croc Swap Dex
0.08058702 ETH
User Cmd248632012026-04-12 10:53:353 hrs ago1775991215
Ambient Finance: Croc Swap Dex
0.11323285 ETH
Transfer248620622026-04-12 7:05:117 hrs ago1775977511
Ambient Finance: Croc Swap Dex
0.00000071 ETH
User Cmd248613792026-04-12 4:48:239 hrs ago1775969303
Ambient Finance: Croc Swap Dex
0.00513197 ETH
User Cmd248612332026-04-12 4:19:1110 hrs ago1775967551
Ambient Finance: Croc Swap Dex
0.03153423 ETH
User Cmd248612102026-04-12 4:14:3510 hrs ago1775967275
Ambient Finance: Croc Swap Dex
0.045 ETH
User Cmd248611582026-04-12 4:04:1110 hrs ago1775966651
Ambient Finance: Croc Swap Dex
0.02926721 ETH
Transfer248610372026-04-12 3:39:5911 hrs ago1775965199
Ambient Finance: Croc Swap Dex
0.00006942 ETH
User Cmd248610372026-04-12 3:39:5911 hrs ago1775965199
Ambient Finance: Croc Swap Dex
0.12084622 ETH
Transfer248606232026-04-12 2:16:4712 hrs ago1775960207
Ambient Finance: Croc Swap Dex
0.08061822 ETH
Transfer248606182026-04-12 2:15:4712 hrs ago1775960147
Ambient Finance: Croc Swap Dex
0.08286255 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Name

CrocSwapDex

Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled
Yes with 1000000 runs
Other Settings
default evmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"pool","type":"bytes32"},{"indexed":true,"internalType":"int24","name":"tick","type":"int24"},{"indexed":false,"internalType":"bool","name":"isBid","type":"bool"},{"indexed":false,"internalType":"uint32","name":"pivotTime","type":"uint32"},{"indexed":false,"internalType":"uint64","name":"feeMileage","type":"uint64"},{"indexed":false,"internalType":"uint160","name":"commitEntropy","type":"uint160"}],"name":"CrocKnockoutCross","type":"event"},{"inputs":[],"name":"acceptCrocDex","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"callpath","type":"uint16"},{"internalType":"bytes","name":"cmd","type":"bytes"},{"internalType":"bool","name":"sudo","type":"bool"}],"name":"protocolCmd","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"slot","type":"uint256"}],"name":"readSlot","outputs":[{"internalType":"uint256","name":"data","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"base","type":"address"},{"internalType":"address","name":"quote","type":"address"},{"internalType":"uint256","name":"poolIdx","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"},{"internalType":"bool","name":"inBaseQty","type":"bool"},{"internalType":"uint128","name":"qty","type":"uint128"},{"internalType":"uint16","name":"tip","type":"uint16"},{"internalType":"uint128","name":"limitPrice","type":"uint128"},{"internalType":"uint128","name":"minOut","type":"uint128"},{"internalType":"uint8","name":"reserveFlags","type":"uint8"}],"name":"swap","outputs":[{"internalType":"int128","name":"baseQuote","type":"int128"},{"internalType":"int128","name":"quoteFlow","type":"int128"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"callpath","type":"uint16"},{"internalType":"bytes","name":"cmd","type":"bytes"}],"name":"userCmd","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"callpath","type":"uint16"},{"internalType":"bytes","name":"cmd","type":"bytes"},{"internalType":"bytes","name":"conds","type":"bytes"},{"internalType":"bytes","name":"relayerTip","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"userCmdRelayer","outputs":[{"internalType":"bytes","name":"output","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"callpath","type":"uint16"},{"internalType":"bytes","name":"cmd","type":"bytes"},{"internalType":"address","name":"client","type":"address"}],"name":"userCmdRouter","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"}]
608060405262010011805460ff60e01b1916600160e71b1790553480156200002657600080fd5b506201000180546001600160a01b031916331790556000805460ff60b01b1916600160b01b1790556040516200005c90620000a3565b604051809103906000f08015801562000079573d6000803e3d6000fd5b50600160000180546001600160a01b0319166001600160a01b0392909216919091179055620000b1565b6106a68062005f2583390190565b615e6480620000c16000396000f3fe6080604052600436106100705760003560e01c80633d719cd91161004e5780633d719cd9146100dc5780637c5196251461010957806390b33ce514610125578063a15112f91461013857600080fd5b806302ce8af31461007557806308719070146100a757806313fd34f4146100c7575b600080fd5b34801561008157600080fd5b506100946100903660046154f4565b5490565b6040519081526020015b60405180910390f35b6100ba6100b5366004615566565b61014b565b60405161009e9190615663565b6100da6100d53660046156c2565b61030a565b005b6100ef6100ea36600461577b565b6103f7565b60408051600f93840b81529190920b60208201520161009e565b34801561011557600080fd5b506040516001815260200161009e565b6100ba61013336600461583e565b6104bd565b6100ba61014636600461589b565b61056f565b606060405180608001604052808b61ffff1681526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8b0181900481028201810190925289815291810191908a908a9081908401838280828437600092019190915250505090825250604080516020601f890181900481028201810190925287815291810191908890889081908401838280828437600092018290525093909452505054859150849073ffffffffffffffffffffffffffffffffffffffff161561023657600080fd5b6102418383836105fc565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556102918d8d8d610619565b93506102d288888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061074892505050565b600080547fffffffffffffffffffff00ff00000000000000000000000000000000000000001690555050509998505050505050505050565b6201000154819073ffffffffffffffffffffffffffffffffffffffff163314801561034b575060005473ffffffffffffffffffffffffffffffffffffffff16155b61035457600080fd5b600080547fffffffffffffffffffffff00000000000000000000000000000000000000000016337fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff161774010000000000000000000000000000000000000000831515021790556103c68585856109ec565b50600080547fffffffffffffffffffff000000000000000000000000000000000000000000001690555b5050505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff161561041d57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179081905560ff7601000000000000000000000000000000000000000000009091041661047057600080fd5b6104828c8c8c8c8c8c8c8c8c8c610ac2565b600080547fffffffffffffffffffff00ff0000000000000000000000000000000000000000169055909d909c509a5050505050505050505050565b606081856104cc823383610b33565b60005473ffffffffffffffffffffffffffffffffffffffff16156104ef57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905561053a878787610619565b600080547fffffffffffffffffffff00ff000000000000000000000000000000000000000016905592505b5050949350505050565b60005460609073ffffffffffffffffffffffffffffffffffffffff161561059557600080fd5b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556105ca848484610619565b600080547fffffffffffffffffffff00ff000000000000000000000000000000000000000016905590505b9392505050565b6000610609848484610bfd565b90506105f5818560400151610ccb565b606061062484610d90565b60008060018661ffff16620100008110610640576106406158f0565b015460405173ffffffffffffffffffffffffffffffffffffffff9091169061066e908790879060240161591f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff96dc78800000000000000000000000000000000000000000000000000000000179052516106ef919061596c565b600060405180830381855af49150503d806000811461072a576040519150601f19603f3d011682016040523d82523d6000602084013e61072f565b606091505b509150915061073e8282610e18565b9695505050505050565b80516000036107545750565b60008060008380602001905181019061076d9190615988565b92509250925061077c81610e3d565b60008054919250906107a49073ffffffffffffffffffffffffffffffffffffffff1685610ec8565b905060006107b28386610ec8565b90507fffffffffffffffffffffffffffffffff000000000000000000000000000000016fffffffffffffffffffffffffffffffff8516016108135760008281526201001060205260409020546fffffffffffffffffffffffffffffffff1693505b60008281526201001060205260409020546fffffffffffffffffffffffffffffffff8086169116101561084557600080fd5b6000805461010090610876907801000000000000000000000000000000000000000000000000900460ff1687615a04565b6108809190615a5f565b9050600061088e8287615a8e565b60008581526201001060205260408120805492935088929091906108c59084906fffffffffffffffffffffffffffffffff16615a8e565b82546101009290920a6fffffffffffffffffffffffffffffffff818102199093169183160217909155600085815262010010602052604081208054859450909261091191859116615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000826fffffffffffffffffffffffffffffffff1611156109e25773ffffffffffffffffffffffffffffffffffffffff871660009081526201000c6020526040812080548492906109ab9084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5050505050505050565b60606109f784610d90565b60008060018661ffff16620100008110610a1357610a136158f0565b015460405173ffffffffffffffffffffffffffffffffffffffff90911690610a41908790879060240161591f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb670198000000000000000000000000000000000000000000000000000000000179052516106ef919061596c565b6000806000610ad68d8d8d8a8e8e8e610f17565b90506000610ae7828c8c8c8b610fb4565b8051602082015190955093509050610b0181878d8d61102e565b50610b178e8e83600001518460200151896110f3565b610b22818f8f61111c565b50509a509a98505050505050505050565b6000620100106000610b46868686611264565b81526020810191909152604001600020805490915063ffffffff7401000000000000000000000000000000000000000090910481161015610bf757805474010000000000000000000000000000000000000000900463ffffffff16610baa57600080fd5b80548190601490610bd89074010000000000000000000000000000000000000000900463ffffffff16615ae0565b91906101000a81548163ffffffff021916908363ffffffff1602179055505b50505050565b6000808080610c0e85870187615b1e565b9250925092506000610c1f886112be565b60408051600081526020810180835283905260ff871691810191909152606081018590526080810184905290915060019060a0016020604051602081039080840390855afa158015610c75573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015195505073ffffffffffffffffffffffffffffffffffffffff8516610cc057600080fd5b505050509392505050565b600080600080600085806020019051810190610ce79190615b67565b945094509450945094508465ffffffffffff16421115610d0657600080fd5b8365ffffffffffff16421015610d1b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81161580610d53575073ffffffffffffffffffffffffffffffffffffffff811633145b80610d73575073ffffffffffffffffffffffffffffffffffffffff811632145b610d7c57600080fd5b610d878784846113cd565b50505050505050565b6000600161ffff8316620100008110610dab57610dab6158f0565b015473ffffffffffffffffffffffffffffffffffffffff1603610dcd57600080fd5b60005477010000000000000000000000000000000000000000000000900460ff161580610dff575061ffff811661270f145b80610e0c575061ffff8116155b610e1557600080fd5b50565b60608215610e27575080610e37565b8151156100705781518083602001fd5b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0073ffffffffffffffffffffffffffffffffffffffff831601610e83573391505090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0073ffffffffffffffffffffffffffffffffffffffff831601610ec4573291505b5090565b6040805173ffffffffffffffffffffffffffffffffffffffff80851660208301528316918101919091526000906060015b60405160208183030381529060405280519060200120905092915050565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e083018290526101008301829052610120830182905282526020820181905291810182905290610f72898989611446565b905080600001516020015161ffff168661ffff161115610f9a57805161ffff87166020909101525b610fa8818a8a888888611516565b98975050505050505050565b6040805160808082018352600080835260208084018290528385018290526060808501839052855160a081018752958601929092528815158552871515908501526fffffffffffffffffffffffffffffffff86811691850191909152841690830152906110218188611637565b9150505b95945050505050565b60008161103c578451611042565b84602001515b9050821515821515146000816110585785611061565b61106186615bd5565b905080600f0b83600f0b13158061108857506fffffffffffffffffffffffffffffffff8616155b610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f534c00000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1680610d87818089888a898961177d565b60408301516fffffffffffffffffffffffffffffffff16156111be5760408084015173ffffffffffffffffffffffffffffffffffffffff841660009081526201000c6020529182208054919290916111879084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b60608301516fffffffffffffffffffffffffffffffff161561125f57606083015173ffffffffffffffffffffffffffffffffffffffff821660009081526201000c6020526040812080549091906112289084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808616602083015284169181019190915261ffff821660608201526000906080015b6040516020818303038152906040528051906020012090509392505050565b6000806112ca836117d2565b9050611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f33dd648f3c5d475752f4dfbf3ab10305e18604abf30961145f1889ec2e867563918101919091527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b360608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6040517f1901000000000000000000000000000000000000000000000000000000000000602082015260228101919091526042810182905260620160405160208183030381529060405280519060200120915050919050565b60006201001060006113df8686611871565b81526020810191909152604001600020805490915063ffffffff838116700100000000000000000000000000000000909204161461141c57600080fd5b80548190601090610bd890700100000000000000000000000000000000900463ffffffff16615c13565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301829052825260208201819052918101919091526114a5620100098585856118a2565b90506114b0816119d3565b6105f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f504900000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b604086015173ffffffffffffffffffffffffffffffffffffffff161561162f576040868101516000805489516020015193517f4e56bd3800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015233602482015289821660448201528882166064820152871515608482015286151560a48201526fffffffffffffffffffffffffffffffff861660c482015261ffff90941660e48501529092911690634e56bd3890610104016020604051808303816000875af11580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190615c36565b9050610d878782611a54565b505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152600061166a8360200151611ae9565b9050611697828261169084600001516fffffffffffffffffffffffffffffffff16611bbe565b8787611f11565b60208084015160009081526201000f82526040908190208351928401516fffffffffffffffffffffffffffffffff9384167001000000000000000000000000000000009185168202178255918401516001909101805460608601516080870151939095167fffffffffffffffff0000000000000000000000000000000000000000000000009091161767ffffffffffffffff9485169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000093909116929092029190911790555b5092915050565b73ffffffffffffffffffffffffffffffffffffffff85166117ae576117a987878660018516151561209b565b6117c0565b6117c0878786886001861615156120d0565b610d87878784866002861615156120d0565b60007fb7268d49bb01bc5e690da8069036b0caa17476a23af017f9840ccc0fc5ca01b7826000015183602001518051906020012084604001518051906020012085606001518051906020012060405160200161185495949392919094855261ffff93909316602085015260408401919091526060830152608082015260a00190565b604051602081830303815290604052805190602001209050919050565b6040805173ffffffffffffffffffffffffffffffffffffffff84166020820152908101829052600090606001610ef9565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301829052825260208201819052918101829052906118fd858585612100565b600081815260208881526040808320815160e081018352905460ff808216835261ffff6101008304811695840195909552630100000082048116938301939093526401000000008104909316606082015266010000000000008304821660808201526701000000000000008304821660a0820152680100000000000000009092041660c0820181905292935091611995908690612173565b60408051606081018252938452602084019490945273ffffffffffffffffffffffffffffffffffffffff16928201929092529150505b949350505050565b805151600090600160ff9091161115611a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f495053000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b50515160ff1660011490565b600161ffff8216611ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5a0000000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b611acb8183615c53565b83516020018051611add908390615c53565b61ffff16905250505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525060008181526201000f6020908152604091829020825160a08101845281546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000928390048216958401959095526001909301549283169482019490945292810467ffffffffffffffff90811660608501527801000000000000000000000000000000000000000000000000909104166080830152611bb957600080fd5b919050565b6000620100026fffffffffffffffffffffffffffffffff831610801590611c0657506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8316105b611c0f57600080fd5b77ffffffffffffffffffffffffffffffff0000000000000000604083901b166fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611cb957607f810383901c9150611cc3565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc5568101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611f0257886fffffffffffffffffffffffffffffffff16611ede82612196565b6fffffffffffffffffffffffffffffffff161115611efc5781611f04565b80611f04565b815b9998505050505050505050565b8151611f4c5781608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff161015611f7d565b81608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff1611155b611fe3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f534400000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b60015b801561162f576000806120028460200151866000015188612508565b855191935091506120199088908a9088908661254e565b61202387866125ee565b9250821561209457801561207a5760006120468560200151848860000151612687565b92839150600282810b91900b148061207757855161206a908a908c908a908861254e565b61207489886125ee565b94505b50505b821561209457612091888389888860200151612768565b95505b5050611fe6565b60006120a5612801565b905082600f0b6000146120c6576120c1858585600085876128d6565b6103f0565b6103f08482612917565b73ffffffffffffffffffffffffffffffffffffffff82166120f057600080fd5b600061162f8686868685876128d6565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061213a57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff80871660208301528516918101919091526060810183905260800161129f565b60006001828116811480612188576000611025565b606085901c95945050505050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600283900b128015906121d35750620cb14a600283900b13155b6121dc57600080fd5b6000808360020b126121f1578260020b6121f9565b8260020b6000035b905060008160011660000361221f57700100000000000000000000000000000000612231565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612265576ffff97272373d413259a46990580e213a0260801c5b6004821615612284576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156122a3576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156122c2576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156122e1576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612300576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561231f576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561233f576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561235f576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561237f576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561239f576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156123bf576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156123df576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156123ff576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561241f576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612440576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612460576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561247f576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561249c576b048a170391f7dc42444e8fa20260801c5b60008460020b13156124db57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816124d7576124d7615a30565b0490505b680100000000000000008106156124f35760016124f6565b60005b60ff16604082901c0192505050919050565b6000806000612517868561294f565b90506000612529600286900b87612975565b9050600285900b60081d61253f878383866129b1565b90999098509650505050505050565b60006125638285608001518660000151612a00565b9050600080600061257f898860600151888a6020015188612a7b565b60208a0151929550909350915061259a908990858585612ac7565b6125b389886020015189600001518a6060015188612b32565b6fffffffffffffffffffffffffffffffff1660608a0152602089015191945092506125e390899085856000612ac7565b505050505050505050565b600080826000015161262e5782608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff161161265e565b82608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff16105b90508080156119cb57505050606001516fffffffffffffffffffffffffffffffff161515919050565b600081801561269c5750600283900b627fffff145b156126ab5750627fffff6105f5565b811580156126dc5750600283900b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000145b1561270857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000006105f5565b6000806127158585612bb4565b9150915060008061272888858589612bf6565b915091508061273c575092506105f5915050565b61274888858589612c65565b90925090508061275d575092506105f5915050565b610fa8888588612ce2565b600061277385612d02565b61277e575083611025565b61278e8486856000015185612d41565b60008060006127b68660200151876000015188606001518a612ded909392919063ffffffff16565b919450925090506127c8898484612ec8565b6060860180518290036fffffffffffffffffffffffffffffffff16905285516127f45760018803611f04565b5095979650505050505050565b600080547501000000000000000000000000000000000000000000900460ff1615612888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f445300000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b61289134612eff565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055919050565b6000600f85900b13156128f5576128f08685858585612f1e565b61162f565b6000600f85900b121561162f5761162f8561290f86615bd5565b858585612f51565b6fffffffffffffffffffffffffffffffff81161561294b5761294b82826fffffffffffffffffffffffffffffffff16612f79565b5050565b60008061295c8484613043565b6000908152620100076020526040902054949350505050565b6000806129818461308e565b9050600083612991576000612994565b60015b60ff169050806129a4838661309c565b60ff160195945050505050565b60008080806129c185888a6130b3565b915091506129d08882876130f2565b9250826129e957600886901b60020b60ff8316016129f3565b6129f38887613125565b9350505094509492505050565b600080612a0e85858561318c565b9050620100026fffffffffffffffffffffffffffffffff82161015612a3957620100029150506105f5565b6f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8216106119cb57506f0ffff5433e2b3d8211706e6102aa947190506105f5565b6000806000806000612a998a8a8a602001518b604001518b8b61326f565b9092509050612aa98a83896132bf565b612ab4828289613332565b9450945094505050955095509592505050565b612ad2858484612ec8565b8315612b04578085606001818151612aea9190615ab7565b6fffffffffffffffffffffffffffffffff169052506103f0565b8085604001818151612b169190615ab7565b6fffffffffffffffffffffffffffffffff169052505050505050565b6000808080612b4389878a8861338a565b90506fffffffffffffffffffffffffffffffff808716908216108015612b8757612b708a878b8b8b6133d5565b91965094509250612b828a8488613423565b612ba7565b612b948a838b8b8b6134b2565b91965094509250612ba78a848a896134ec565b5050955095509592505050565b600080600083612bce57612bc9600186615c6e565b612bd0565b845b9050612bde8160020b6135b1565b9250612bec8160020b6135c8565b9150509250929050565b6000806000620100076000612c0c8989896135e4565b81526020810191909152604001600090812054915080612c2d8382886130b3565b915091508015612c47576000600194509450505050612c5c565b612c52888884613642565b6000945094505050505b94509492505050565b6000806000620100066000612c7a898961366b565b81526020019081526020016000205490506000612c97868661309c565b9050600080612caa8460ff8516896130b3565b915091508015612cc557600060019550955050505050612c5c565b612cd18a8a848a612bf6565b955095505050505094509492505050565b600081612cf857612cf3848461367f565b6119cb565b6119cb848461370b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000600283900b138015610e37575050627fffff60029190910b1290565b600080612d548386868960800151613755565b60408801519193509150612d7a906fffffffffffffffffffffffffffffffff1683613894565b6fffffffffffffffffffffffffffffffff166040870152801561162f576000612da98487878a60800151613901565b6040880151909150612dcd906fffffffffffffffffffffffffffffffff1682613894565b6fffffffffffffffffffffffffffffffff16604088015250505050505050565b600080600080612e07612dff89613a68565b895189613a8d565b9050806fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff1611612e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f424400000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b8515612eb357612ea7888883613b01565b93509350935050612ebe565b612ea7888883613b9d565b9450945094915050565b8183600001818151612eda9190615caf565b600f0b905250602083018051829190612ef4908390615caf565b600f0b905250505050565b806fffffffffffffffffffffffffffffffff81168114611bb957600080fd5b8015612f45576000612f31868686613c47565b9050612f3f86828686613d26565b506103f0565b6103f085858585613d74565b8015612f6d57612f62858585613da5565b6120c1858484613e24565b6103f085858585613e49565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612fd3576040519150601f19603f3d011682016040523d82523d6000602084013e612fd8565b606091505b505090508061125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b600080600283900b60081d9050838160405160200161306f92919091825260f01b602082015260220190565b6040516020818303038152906040528051906020012091505092915050565b6000610e3761010083615cfd565b6000816130ac578260ff036105f5565b5090919050565b6000806130c1858585613e8c565b9450508315806130ea57826130de576130d985613eb0565b6130e7565b6130e785613f5d565b91505b935093915050565b600083156131015750816105f5565b600061310d8382614140565b90508061311a5783611025565b600095945050505050565b6000821561317f5761313683614174565b60010b8260010b1461316f5761316a613150836001615d1f565b61315a85156141aa565b60ff1660089190911b60020b0190565b613178565b613178836141c0565b9050610e37565b600882901b60020b613178565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600285900b1315806131c85750620cb14a600285900b12155b156131d45750816105f5565b81156132275760016000816131e887612196565b039050846fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161061321c578461321e565b805b925050506105f5565b600061323285612196565b9050836fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16116132655783613267565b805b9150506105f5565b6000808061327f898987876141f7565b9050610100620f42406fffffffffffffffffffffffffffffffff831661ffff8a16020460ff8816810291909104908190039a909950975050505050505050565b60006132ca84613a68565b9050806fffffffffffffffffffffffffffffffff166000036132ec5750505050565b83518215906000906133019084908785614239565b905060006133158488600001518486614296565b905067ffffffffffffffff811615610d8757610d878782856142b0565b6000808085850184156133615761335a816fffffffffffffffffffffffffffffffff16614394565b925061337f565b61337c816fffffffffffffffffffffffffffffffff16614394565b93505b509195909450915050565b6000806133988685856143c4565b9050846fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16116133cb578061073e565b5092949350505050565b60008060008060006133e88a8a8a6143fa565b915091506000806133fb84848c8c61447a565b9150915061340e8c8b8b8b8f87876144b1565b96509650965050505050955095509592505050565b82516fffffffffffffffffffffffffffffffff90811681831614908316151581801561344c5750805b6103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f525000000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b60008060008060006134c68a8a8a8a614549565b915091506000806134d98b858c8c6145c3565b9150915061340e8c8b8b8b8787876144b1565b6000826135115784516fffffffffffffffffffffffffffffffff80841691161161352b565b84516fffffffffffffffffffffffffffffffff8084169116105b90506fffffffffffffffffffffffffffffffff84161581801561354b5750805b61162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b6000610e376135c38360020b60101d90565b6145e2565b60006101006135da8360020b60081d90565b610e379190615d5f565b6000806136016135f385614602565b60081b60010b60ff85160190565b9050848160405160200161362292919091825260f01b602082015260220190565b604051602081830303815290604052805190602001209150509392505050565b60006119cb61365085614602565b60101b60020b61ff00600886901b1660030b0160ff84160190565b60006105f58361367a84614602565b614641565b600060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83015b60ff8160ff161015613700576000806136c38784866000612c65565b91509150806136d757509250610e37915050565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016136a7565b506119cb60006141c0565b600080600183015b60ff81161561374a5760008061372c8784866001612c65565b915091508061374057509250610e37915050565b5050600101613713565b506119cb60016141c0565b60008060006137648787614662565b8054909150600090613797906bffffffffffffffffffffffff808216916c010000000000000000000000009004166146b5565b9050856137ac576137a781615bd5565b6137ae565b805b825490945067ffffffffffffffff8681167801000000000000000000000000000000000000000000000000909204161461385e578154613814907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1686615d81565b825467ffffffffffffffff9190911678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9091161782555b8561386f5781546001161515613887565b81546c01000000000000000000000000900460011615155b9250505094509492505050565b60008082600f0b12156138cb57508082016fffffffffffffffffffffffffffffffff808416908216106138c657600080fd5b610e37565b826fffffffffffffffffffffffffffffffff168284019150816fffffffffffffffffffffffffffffffff161015610e3757600080fd5b610dad5460009073ffffffffffffffffffffffffffffffffffffffff1661392757600080fd5b6000806001610dac015460405160248101899052600288900b6044820152861515606482015267ffffffffffffffff8616608482015273ffffffffffffffffffffffffffffffffffffffff9091169060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3c05c62100000000000000000000000000000000000000000000000000000000179052516139fa919061596c565b600060405180830381855af49150503d8060008114613a35576040519150601f19603f3d011682016040523d82523d6000602084013e613a3a565b606091505b509150915081613a4957600080fd5b80806020019051810190613a5d9190615da2565b979650505050505050565b600080613a7d836020015184606001516146d1565b90506105f5818460400151614726565b60008115613aad5750600167ffffffffffffffff604085901c16016105f5565b6000613abc856001860361474b565b90506000613aca868661474b565b9050808203600177ffffffffffffffffffffffffffffffffffffffffffffffff821601613af681612eff565b9450505050506105f5565b600080600060016f0ffff5433e2b3d8211706e6102aa9472036fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff161015613b635785516001016fffffffffffffffffffffffffffffffff1686525b60009150613b82846fffffffffffffffffffffffffffffffff16614394565b925084613b90576000613b92565b835b905093509350939050565b6000806000620100026fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff161115613c0e5785517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016fffffffffffffffffffffffffffffffff1686525b60009250613c2d846fffffffffffffffffffffffffffffffff16614394565b915084613c3a5783613b92565b6000905093509350939050565b600080613c548584610ec8565b600081815262010010602052604090208054919250906fffffffffffffffffffffffffffffffff908116908616811115613ce957815486908390600090613cae9084906fffffffffffffffffffffffffffffffff16615a8e565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550613d1c565b81547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168255613d198187615a8e565b93505b5050509392505050565b6fffffffffffffffffffffffffffffffff831615613d4f57613d4a84848484613d74565b610bf7565b73ffffffffffffffffffffffffffffffffffffffff8216610bf757610bf78482612917565b73ffffffffffffffffffffffffffffffffffffffff8216613d9a57613d4a848483614794565b610bf784848461483a565b6000613db18483610ec8565b6000818152620100106020526040812080549293508592909190613de89084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b73ffffffffffffffffffffffffffffffffffffffff821661125f5761125f8382612917565b73ffffffffffffffffffffffffffffffffffffffff8216613e6f57613d4a848483614858565b610bf78285856fffffffffffffffffffffffffffffffff1661487d565b600081613ea25761ffff831684811b901c6119cb565b505061ffff1690811c901b90565b6000808211613ebe57600080fd5b7001000000000000000000000000000000008210613ede57608091821c91015b680100000000000000008210613ef657604091821c91015b6401000000008210613f0a57602091821c91015b620100008210613f1c57601091821c91015b6101008210613f2d57600891821c91015b60108210613f3d57600491821c91015b60048210613f4d57600291821c91015b60028210611bb957600101919050565b6000808211613f6b57600080fd5b5060ff6fffffffffffffffffffffffffffffffff821615613fad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613fb5565b608082901c91505b67ffffffffffffffff821615613fec577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613ff4565b604082901c91505b63ffffffff821615614027577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00161402f565b602082901c91505b61ffff821615614060577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001614068565b601082901c91505b60ff821615614098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016140a0565b600882901c91505b600f8216156140d0577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016140d8565b600482901c91505b6003821615614108577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01614110565b600282901c91505b6001821615611bb9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01919050565b6000806000614154858560ff1660016130b3565b915060ff1691508015801561102557508360ff1682149250505092915050565b6000816141a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000610e37565b617fff92915050565b6000816141b8576000610e37565b60ff92915050565b6000816141ed577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000610e37565b627fffff92915050565b83516000906fffffffffffffffffffffffffffffffff90811690831611816142218787878761338a565b9050613a5d61422f88613a68565b88518385896149e6565b6000600281614249878786613a8d565b6142539083615a04565b9050806fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff16111561428957808503613a5d565b5060009695505050505050565b6000806142a4868685614aff565b905061073e8185614b52565b82516142bd908383614c68565b6fffffffffffffffffffffffffffffffff16835260608301516142ea9067ffffffffffffffff1683614ce2565b67ffffffffffffffff9081166060850181905260009161430d9190851690614d45565b9050600061435661433d8387604001516fffffffffffffffffffffffffffffffff16614d8d90919063ffffffff16565b71ffffffffffffffffffffffffffffffffffff16612eff565b90506143628282614db3565b856080018181516143739190615dc5565b67ffffffffffffffff16905250602085018051829190612b16908390615ab7565b60006f80000000000000000000000000000000826fffffffffffffffffffffffffffffffff1610610ec457600080fd5b6000806143d085613a68565b9050836143eb576143e681866000015185614e26565b611025565b61102581866000015185614e71565b600080600061440886613a68565b865190915060009061442e906fffffffffffffffffffffffffffffffff84169088614e71565b8751909150600090614454906fffffffffffffffffffffffffffffffff85169089614e26565b90508515614468579093509150828261446f565b9350915081835b505050935093915050565b60008061448986868686614eb9565b9092509050614499600483615caf565b91506144a6600482615caf565b905094509492505050565b6000806000806144c2868b8b614f5c565b9050876fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16106144f85760009150614505565b6145028189615a8e565b91505b896145105784614512565b855b93508961451f5785614521565b845b6fffffffffffffffffffffffffffffffff909716909a52919994985090965092945050505050565b600080600061455787613a68565b905061456a876000015182888888614f92565b91508415614597578651614592906fffffffffffffffffffffffffffffffff83169084614e26565b6145b7565b86516145b7906fffffffffffffffffffffffffffffffff83169084614e71565b92505094509492505050565b6000806145d286868686614eb9565b90925090506144a6600482615caf565b6000808260000b12156145fb578160000b608001610e37565b5060800190565b600060808260ff16106146185760808203610e37565b5060ff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800190565b60008282604051602001610ef992919091825260f81b602082015260210190565b6000620100026000848460405160200161468992919091825260e81b602082015260230190565b604051602081830303815290604052805190602001208152602001908152602001600020905092915050565b60006146c08261502e565b6146c98461502e565b039392505050565b600066010000000000006fffffffffffffffffffffffffffffffff80851667ffffffffffffffff851683010290603082901c90811115611025576fffffffffffffffffffffffffffffffff9350505050610e37565b8082016fffffffffffffffffffffffffffffffff8084169082161015610e3757600080fd5b60006fffffffffffffffffffffffffffffffff821677ffffffffffffffffffffffffffffffff0000000000000000604085901b168161478c5761478c615a30565b049392505050565b816fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161015614822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f454300000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b600061482e8383615a8e565b9050610bf78482612917565b61125f818430856fffffffffffffffffffffffffffffffff1661504a565b61125f836148668385615ab7565b6fffffffffffffffffffffffffffffffff16612f79565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691614914919061596c565b6000604051808303816000865af19150503d8060008114614951576040519150601f19603f3d011682016040523d82523d6000602084013e614956565b606091505b50915091508180156149805750805115806149805750808060200190518101906149809190615de6565b6103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b6000856fffffffffffffffffffffffffffffffff16600003614a0a57506000611025565b6000614a1887878515614aff565b6fffffffffffffffffffffffffffffffff1690506000614a39888886614aff565b6fffffffffffffffffffffffffffffffff169050600084151586151514614a7457866fffffffffffffffffffffffffffffffff168203614a8a565b866fffffffffffffffffffffffffffffffff1682015b905080600003614aaf576fffffffffffffffffffffffffffffffff9350505050611025565b6000816fffffffffffffffffffffffffffffffff8b16800281614ad457614ad4615a30565b049050614af1848211614ae957818503612eff565b848203612eff565b9a9950505050505050505050565b60006119cb82614b3257614b13858561474b565b77ffffffffffffffffffffffffffffffffffffffffffffffff16612eff565b6fffffffffffffffffffffffffffffffff8086169085160260401c614b13565b60006fffffffffffffffffffffffffffffffff83161580614b965750826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff16115b15614ba357506000610e37565b6000614baf8385615ab7565b90506000614bcf6fffffffffffffffffffffffffffffffff8316866151bb565b9050614be48167ffffffffffffffff16615284565b925066010000000000008367ffffffffffffffff1610614c60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f494600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b505092915050565b6000660100000000000067ffffffffffffffff841681018315614cab576fffffffffffffffffffffffffffffffff86168102603081901c613af660018201612eff565b75ffffffffffffffffffffffffffffffff000000000000603087901b16818181614cd757614cd7615a30565b0493505050506105f5565b6000660100000000000067ffffffffffffffff848116820181851683010290603082901c907fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000820190811061073e5767ffffffffffffffff945050505050610e37565b6000660100000000000067ffffffffffffffff831681016dffffffffffffffff000000000000603086901b1683828281614d8157614d81615a30565b04979650505050505050565b67ffffffffffffffff166fffffffffffffffffffffffffffffffff919091160260301c90565b6000816fffffffffffffffffffffffffffffffff16600003614dd757506000610e37565b614de2826001615ab7565b6fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff168467ffffffffffffffff16614e1c9190615e03565b6105f59190615e1a565b6000826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115614e6657614e5f8483856152c8565b90506105f5565b614e5f8484846152c8565b600080826fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff1611614ea757838303614eab565b8284035b905061102585826001614aff565b60008082151584151503614f1057614ee2866fffffffffffffffffffffffffffffffff16614394565b614efd866fffffffffffffffffffffffffffffffff16614394565b614f0690615bd5565b9092509050612c5c565b614f2b866fffffffffffffffffffffffffffffffff16614394565b614f3490615bd5565b614f4f866fffffffffffffffffffffffffffffffff16614394565b9097909650945050505050565b60008082151584151514614f7857614f7385615bd5565b614f7a565b845b9050600081600f0b12156119cb5760009150506105f5565b60008083614fab57614fa687878786615347565b614fb7565b614fb7878787866153ae565b90506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff82161061500557614ffd60016f0ffff5433e2b3d8211706e6102aa9472615a8e565b915050611025565b620100026fffffffffffffffffffffffffffffffff8216101561073e5762010002915050611025565b6000600a82901b6d03fffffffffffffffffffffff80016610e37565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916150e9919061596c565b6000604051808303816000865af19150503d8060008114615126576040519150601f19603f3d011682016040523d82523d6000602084013e61512b565b606091505b50915091508180156151555750805115806151555750808060200190518101906151559190615de6565b61162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b600079ffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff841610801561521c5750816fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1610155b61522557600080fd5b660100000000000075ffffffffffffffffffffffffffffffff000000000000603085901b166000826fffffffffffffffffffffffffffffffff8616838161526e5761526e615a30565b0403905082811061102557829350505050610e37565b600066010000000000008267ffffffffffffffff16106152a357600080fd5b5067ffffffffffffffff8116800260331c60019190911c677fffffffffffffff160390565b6000806152d58385615a8e565b905060006152e3868561474b565b77ffffffffffffffffffffffffffffffffffffffffffffffff1690506000856fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16836153329190615e03565b61533c9190615e1a565b9050613d1981612eff565b6000806153538661549f565b9050600061536482878787156153ae565b9050806fffffffffffffffffffffffffffffffff1660000361539a576f0ffff5433e2b3d8211706e6102aa9472925050506119cb565b6153a38161549f565b613a5d906001615ab7565b6000836fffffffffffffffffffffffffffffffff166000036153e157506fffffffffffffffffffffffffffffffff6119cb565b60006153ed848661474b565b90506fffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffff8216111561543a576fffffffffffffffffffffffffffffffff9150506119cb565b8083156154545761544b8188615ab7565b925050506119cb565b866fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161061548a576000925050506119cb565b615495816001615ab7565b61544b9088615a8e565b600080826fffffffffffffffffffffffffffffffff16700100000000000000000000000000000000816154d4576154d4615a30565b0490506fffffffffffffffffffffffffffffffff811115610e3757600080fd5b60006020828403121561550657600080fd5b5035919050565b61ffff81168114610e1557600080fd5b60008083601f84011261552f57600080fd5b50813567ffffffffffffffff81111561554757600080fd5b60208301915083602082850101111561555f57600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561558457600080fd5b893561558f8161550d565b985060208a013567ffffffffffffffff808211156155ac57600080fd5b6155b88d838e0161551d565b909a50985060408c01359150808211156155d157600080fd5b6155dd8d838e0161551d565b909850965060608c01359150808211156155f657600080fd5b6156028d838e0161551d565b909650945060808c013591508082111561561b57600080fd5b506156288c828d0161551d565b915080935050809150509295985092959850929598565b60005b8381101561565a578181015183820152602001615642565b50506000910152565b602081526000825180602084015261568281604085016020870161563f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b8015158114610e1557600080fd5b600080600080606085870312156156d857600080fd5b84356156e38161550d565b9350602085013567ffffffffffffffff8111156156ff57600080fd5b61570b8782880161551d565b909450925050604085013561571f816156b4565b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e1557600080fd5b6fffffffffffffffffffffffffffffffff81168114610e1557600080fd5b803560ff81168114611bb957600080fd5b6000806000806000806000806000806101408b8d03121561579b57600080fd5b8a356157a68161572a565b995060208b01356157b68161572a565b985060408b0135975060608b01356157cd816156b4565b965060808b01356157dd816156b4565b955060a08b01356157ed8161574c565b945060c08b01356157fd8161550d565b935060e08b013561580d8161574c565b92506101008b013561581e8161574c565b915061582d6101208c0161576a565b90509295989b9194979a5092959850565b6000806000806060858703121561585457600080fd5b843561585f8161550d565b9350602085013567ffffffffffffffff81111561587b57600080fd5b6158878782880161551d565b909450925050604085013561571f8161572a565b6000806000604084860312156158b057600080fd5b83356158bb8161550d565b9250602084013567ffffffffffffffff8111156158d757600080fd5b6158e38682870161551d565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000825161597e81846020870161563f565b9190910192915050565b60008060006060848603121561599d57600080fd5b83516159a88161572a565b60208501519093506159b98161574c565b60408501519092506159ca8161572a565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6fffffffffffffffffffffffffffffffff818116838216028082169190828114614c6057614c606159d5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006fffffffffffffffffffffffffffffffff80841680615a8257615a82615a30565b92169190910492915050565b6fffffffffffffffffffffffffffffffff828116828216039080821115611776576117766159d5565b6fffffffffffffffffffffffffffffffff818116838216019080821115611776576117766159d5565b600063ffffffff821680615af657615af66159d5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b600080600060608486031215615b3357600080fd5b615b3c8461576a565b95602085013595506040909401359392505050565b805165ffffffffffff81168114611bb957600080fd5b600080600080600060a08688031215615b7f57600080fd5b615b8886615b51565b9450615b9660208701615b51565b935060408601519250606086015163ffffffff81168114615bb657600080fd5b6080870151909250615bc78161572a565b809150509295509295909350565b600081600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103615c0a57615c0a6159d5565b60000392915050565b600063ffffffff808316818103615c2c57615c2c6159d5565b6001019392505050565b600060208284031215615c4857600080fd5b81516105f58161550d565b61ffff828116828216039080821115611776576117766159d5565b600282810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff82131715610e3757610e376159d5565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff8000000000000000000000000000000082121715610e3757610e376159d5565b60008260020b80615d1057615d10615a30565b808360020b0791505092915050565b600181810b9083900b01617fff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800082121715610e3757610e376159d5565b60008260010b80615d7257615d72615a30565b808360010b0791505092915050565b67ffffffffffffffff828116828216039080821115611776576117766159d5565b600060208284031215615db457600080fd5b815180600f0b81146105f557600080fd5b67ffffffffffffffff818116838216019080821115611776576117766159d5565b600060208284031215615df857600080fd5b81516105f5816156b4565b8082028115828204841417610e3757610e376159d5565b600082615e2957615e29615a30565b50049056fea2646970667358221220eed8338407e704a1fc838643fb52f4e9e860bfc3fae655b69c34d8658c0ac62a64736f6c63430008130033608060405234801561001057600080fd5b50610686806100206000396000f3fe6080604052600436106100345760003560e01c8063ac54c0fc14610039578063b670198014610070578063f96dc78814610092575b600080fd5b34801561004557600080fd5b5061005c610054366004610504565b600092915050565b604051901515815260200160405180910390f35b34801561007c57600080fd5b5061009061008b366004610539565b6100a5565b005b6100906100a0366004610539565b61018a565b60005474010000000000000000000000000000000000000000900460ff16610134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012b9060208082526004908201527f5375646f00000000000000000000000000000000000000000000000000000000604082015260600190565b60405180910390fd5b60008282601f818110610149576101496105ab565b919091013560f81c9150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb810161018a5761018583836101ec565b505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c696420636f6d6d616e640000000000000000000000000000000000604482015260640161012b565b6000806101fb838501856105da565b90935091505061ffff811661026c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616e6e6f74206f766572777269746520626f6f742070617468000000000000604482015260640161012b565b73ffffffffffffffffffffffffffffffffffffffff821615806102a6575060008273ffffffffffffffffffffffffffffffffffffffff163b115b61030c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50726f78792061646472657373206973206e6f74206120636f6e747261637400604482015260640161012b565b60405161ffff8216815273ffffffffffffffffffffffffffffffffffffffff8316907f6d6175bccbf61a37eb104b2e776524b39d3c237dbc07dc62fc29c8b3e79f1b3c9060200160405180910390a28160018261ffff16620100008110610375576103756105ab565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161790558216156104c2576040517fac54c0fc00000000000000000000000000000000000000000000000000000000815230600482015261ffff8216602482015260009073ffffffffffffffffffffffffffffffffffffffff84169063ac54c0fc90604401602060405180830381865afa158015610433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104579190610627565b9050806104c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f50726f787920646f6573206e6f742061636365707420726f6c65000000000000604482015260640161012b565b505b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146104ea57600080fd5b50565b803561ffff811681146104ff57600080fd5b919050565b6000806040838503121561051757600080fd5b8235610522816104c8565b9150610530602084016104ed565b90509250929050565b6000806020838503121561054c57600080fd5b823567ffffffffffffffff8082111561056457600080fd5b818501915085601f83011261057857600080fd5b81358181111561058757600080fd5b86602082850101111561059957600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000806000606084860312156105ef57600080fd5b833560ff8116811461060057600080fd5b92506020840135610610816104c8565b915061061e604085016104ed565b90509250925092565b60006020828403121561063957600080fd5b8151801515811461064957600080fd5b939250505056fea264697066735822122014abef1e3b97934154a7cbff4e116e4c1d1865c31658258e9c052eba74d246bd64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106100705760003560e01c80633d719cd91161004e5780633d719cd9146100dc5780637c5196251461010957806390b33ce514610125578063a15112f91461013857600080fd5b806302ce8af31461007557806308719070146100a757806313fd34f4146100c7575b600080fd5b34801561008157600080fd5b506100946100903660046154f4565b5490565b6040519081526020015b60405180910390f35b6100ba6100b5366004615566565b61014b565b60405161009e9190615663565b6100da6100d53660046156c2565b61030a565b005b6100ef6100ea36600461577b565b6103f7565b60408051600f93840b81529190920b60208201520161009e565b34801561011557600080fd5b506040516001815260200161009e565b6100ba61013336600461583e565b6104bd565b6100ba61014636600461589b565b61056f565b606060405180608001604052808b61ffff1681526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8b0181900481028201810190925289815291810191908a908a9081908401838280828437600092019190915250505090825250604080516020601f890181900481028201810190925287815291810191908890889081908401838280828437600092018290525093909452505054859150849073ffffffffffffffffffffffffffffffffffffffff161561023657600080fd5b6102418383836105fc565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556102918d8d8d610619565b93506102d288888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061074892505050565b600080547fffffffffffffffffffff00ff00000000000000000000000000000000000000001690555050509998505050505050505050565b6201000154819073ffffffffffffffffffffffffffffffffffffffff163314801561034b575060005473ffffffffffffffffffffffffffffffffffffffff16155b61035457600080fd5b600080547fffffffffffffffffffffff00000000000000000000000000000000000000000016337fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff161774010000000000000000000000000000000000000000831515021790556103c68585856109ec565b50600080547fffffffffffffffffffff000000000000000000000000000000000000000000001690555b5050505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff161561041d57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179081905560ff7601000000000000000000000000000000000000000000009091041661047057600080fd5b6104828c8c8c8c8c8c8c8c8c8c610ac2565b600080547fffffffffffffffffffff00ff0000000000000000000000000000000000000000169055909d909c509a5050505050505050505050565b606081856104cc823383610b33565b60005473ffffffffffffffffffffffffffffffffffffffff16156104ef57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905561053a878787610619565b600080547fffffffffffffffffffff00ff000000000000000000000000000000000000000016905592505b5050949350505050565b60005460609073ffffffffffffffffffffffffffffffffffffffff161561059557600080fd5b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556105ca848484610619565b600080547fffffffffffffffffffff00ff000000000000000000000000000000000000000016905590505b9392505050565b6000610609848484610bfd565b90506105f5818560400151610ccb565b606061062484610d90565b60008060018661ffff16620100008110610640576106406158f0565b015460405173ffffffffffffffffffffffffffffffffffffffff9091169061066e908790879060240161591f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff96dc78800000000000000000000000000000000000000000000000000000000179052516106ef919061596c565b600060405180830381855af49150503d806000811461072a576040519150601f19603f3d011682016040523d82523d6000602084013e61072f565b606091505b509150915061073e8282610e18565b9695505050505050565b80516000036107545750565b60008060008380602001905181019061076d9190615988565b92509250925061077c81610e3d565b60008054919250906107a49073ffffffffffffffffffffffffffffffffffffffff1685610ec8565b905060006107b28386610ec8565b90507fffffffffffffffffffffffffffffffff000000000000000000000000000000016fffffffffffffffffffffffffffffffff8516016108135760008281526201001060205260409020546fffffffffffffffffffffffffffffffff1693505b60008281526201001060205260409020546fffffffffffffffffffffffffffffffff8086169116101561084557600080fd5b6000805461010090610876907801000000000000000000000000000000000000000000000000900460ff1687615a04565b6108809190615a5f565b9050600061088e8287615a8e565b60008581526201001060205260408120805492935088929091906108c59084906fffffffffffffffffffffffffffffffff16615a8e565b82546101009290920a6fffffffffffffffffffffffffffffffff818102199093169183160217909155600085815262010010602052604081208054859450909261091191859116615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000826fffffffffffffffffffffffffffffffff1611156109e25773ffffffffffffffffffffffffffffffffffffffff871660009081526201000c6020526040812080548492906109ab9084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5050505050505050565b60606109f784610d90565b60008060018661ffff16620100008110610a1357610a136158f0565b015460405173ffffffffffffffffffffffffffffffffffffffff90911690610a41908790879060240161591f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb670198000000000000000000000000000000000000000000000000000000000179052516106ef919061596c565b6000806000610ad68d8d8d8a8e8e8e610f17565b90506000610ae7828c8c8c8b610fb4565b8051602082015190955093509050610b0181878d8d61102e565b50610b178e8e83600001518460200151896110f3565b610b22818f8f61111c565b50509a509a98505050505050505050565b6000620100106000610b46868686611264565b81526020810191909152604001600020805490915063ffffffff7401000000000000000000000000000000000000000090910481161015610bf757805474010000000000000000000000000000000000000000900463ffffffff16610baa57600080fd5b80548190601490610bd89074010000000000000000000000000000000000000000900463ffffffff16615ae0565b91906101000a81548163ffffffff021916908363ffffffff1602179055505b50505050565b6000808080610c0e85870187615b1e565b9250925092506000610c1f886112be565b60408051600081526020810180835283905260ff871691810191909152606081018590526080810184905290915060019060a0016020604051602081039080840390855afa158015610c75573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015195505073ffffffffffffffffffffffffffffffffffffffff8516610cc057600080fd5b505050509392505050565b600080600080600085806020019051810190610ce79190615b67565b945094509450945094508465ffffffffffff16421115610d0657600080fd5b8365ffffffffffff16421015610d1b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81161580610d53575073ffffffffffffffffffffffffffffffffffffffff811633145b80610d73575073ffffffffffffffffffffffffffffffffffffffff811632145b610d7c57600080fd5b610d878784846113cd565b50505050505050565b6000600161ffff8316620100008110610dab57610dab6158f0565b015473ffffffffffffffffffffffffffffffffffffffff1603610dcd57600080fd5b60005477010000000000000000000000000000000000000000000000900460ff161580610dff575061ffff811661270f145b80610e0c575061ffff8116155b610e1557600080fd5b50565b60608215610e27575080610e37565b8151156100705781518083602001fd5b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0073ffffffffffffffffffffffffffffffffffffffff831601610e83573391505090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0073ffffffffffffffffffffffffffffffffffffffff831601610ec4573291505b5090565b6040805173ffffffffffffffffffffffffffffffffffffffff80851660208301528316918101919091526000906060015b60405160208183030381529060405280519060200120905092915050565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e083018290526101008301829052610120830182905282526020820181905291810182905290610f72898989611446565b905080600001516020015161ffff168661ffff161115610f9a57805161ffff87166020909101525b610fa8818a8a888888611516565b98975050505050505050565b6040805160808082018352600080835260208084018290528385018290526060808501839052855160a081018752958601929092528815158552871515908501526fffffffffffffffffffffffffffffffff86811691850191909152841690830152906110218188611637565b9150505b95945050505050565b60008161103c578451611042565b84602001515b9050821515821515146000816110585785611061565b61106186615bd5565b905080600f0b83600f0b13158061108857506fffffffffffffffffffffffffffffffff8616155b610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f534c00000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1680610d87818089888a898961177d565b60408301516fffffffffffffffffffffffffffffffff16156111be5760408084015173ffffffffffffffffffffffffffffffffffffffff841660009081526201000c6020529182208054919290916111879084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b60608301516fffffffffffffffffffffffffffffffff161561125f57606083015173ffffffffffffffffffffffffffffffffffffffff821660009081526201000c6020526040812080549091906112289084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808616602083015284169181019190915261ffff821660608201526000906080015b6040516020818303038152906040528051906020012090509392505050565b6000806112ca836117d2565b9050611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f33dd648f3c5d475752f4dfbf3ab10305e18604abf30961145f1889ec2e867563918101919091527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b360608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6040517f1901000000000000000000000000000000000000000000000000000000000000602082015260228101919091526042810182905260620160405160208183030381529060405280519060200120915050919050565b60006201001060006113df8686611871565b81526020810191909152604001600020805490915063ffffffff838116700100000000000000000000000000000000909204161461141c57600080fd5b80548190601090610bd890700100000000000000000000000000000000900463ffffffff16615c13565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301829052825260208201819052918101919091526114a5620100098585856118a2565b90506114b0816119d3565b6105f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f504900000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b604086015173ffffffffffffffffffffffffffffffffffffffff161561162f576040868101516000805489516020015193517f4e56bd3800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015233602482015289821660448201528882166064820152871515608482015286151560a48201526fffffffffffffffffffffffffffffffff861660c482015261ffff90941660e48501529092911690634e56bd3890610104016020604051808303816000875af11580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190615c36565b9050610d878782611a54565b505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152600061166a8360200151611ae9565b9050611697828261169084600001516fffffffffffffffffffffffffffffffff16611bbe565b8787611f11565b60208084015160009081526201000f82526040908190208351928401516fffffffffffffffffffffffffffffffff9384167001000000000000000000000000000000009185168202178255918401516001909101805460608601516080870151939095167fffffffffffffffff0000000000000000000000000000000000000000000000009091161767ffffffffffffffff9485169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000093909116929092029190911790555b5092915050565b73ffffffffffffffffffffffffffffffffffffffff85166117ae576117a987878660018516151561209b565b6117c0565b6117c0878786886001861615156120d0565b610d87878784866002861615156120d0565b60007fb7268d49bb01bc5e690da8069036b0caa17476a23af017f9840ccc0fc5ca01b7826000015183602001518051906020012084604001518051906020012085606001518051906020012060405160200161185495949392919094855261ffff93909316602085015260408401919091526060830152608082015260a00190565b604051602081830303815290604052805190602001209050919050565b6040805173ffffffffffffffffffffffffffffffffffffffff84166020820152908101829052600090606001610ef9565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301829052825260208201819052918101829052906118fd858585612100565b600081815260208881526040808320815160e081018352905460ff808216835261ffff6101008304811695840195909552630100000082048116938301939093526401000000008104909316606082015266010000000000008304821660808201526701000000000000008304821660a0820152680100000000000000009092041660c0820181905292935091611995908690612173565b60408051606081018252938452602084019490945273ffffffffffffffffffffffffffffffffffffffff16928201929092529150505b949350505050565b805151600090600160ff9091161115611a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f495053000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b50515160ff1660011490565b600161ffff8216611ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5a0000000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b611acb8183615c53565b83516020018051611add908390615c53565b61ffff16905250505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525060008181526201000f6020908152604091829020825160a08101845281546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000928390048216958401959095526001909301549283169482019490945292810467ffffffffffffffff90811660608501527801000000000000000000000000000000000000000000000000909104166080830152611bb957600080fd5b919050565b6000620100026fffffffffffffffffffffffffffffffff831610801590611c0657506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8316105b611c0f57600080fd5b77ffffffffffffffffffffffffffffffff0000000000000000604083901b166fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611cb957607f810383901c9150611cc3565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc5568101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611f0257886fffffffffffffffffffffffffffffffff16611ede82612196565b6fffffffffffffffffffffffffffffffff161115611efc5781611f04565b80611f04565b815b9998505050505050505050565b8151611f4c5781608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff161015611f7d565b81608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff1611155b611fe3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f534400000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b60015b801561162f576000806120028460200151866000015188612508565b855191935091506120199088908a9088908661254e565b61202387866125ee565b9250821561209457801561207a5760006120468560200151848860000151612687565b92839150600282810b91900b148061207757855161206a908a908c908a908861254e565b61207489886125ee565b94505b50505b821561209457612091888389888860200151612768565b95505b5050611fe6565b60006120a5612801565b905082600f0b6000146120c6576120c1858585600085876128d6565b6103f0565b6103f08482612917565b73ffffffffffffffffffffffffffffffffffffffff82166120f057600080fd5b600061162f8686868685876128d6565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061213a57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff80871660208301528516918101919091526060810183905260800161129f565b60006001828116811480612188576000611025565b606085901c95945050505050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600283900b128015906121d35750620cb14a600283900b13155b6121dc57600080fd5b6000808360020b126121f1578260020b6121f9565b8260020b6000035b905060008160011660000361221f57700100000000000000000000000000000000612231565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612265576ffff97272373d413259a46990580e213a0260801c5b6004821615612284576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156122a3576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156122c2576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156122e1576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612300576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561231f576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561233f576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561235f576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561237f576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561239f576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156123bf576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156123df576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156123ff576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561241f576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612440576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612460576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561247f576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561249c576b048a170391f7dc42444e8fa20260801c5b60008460020b13156124db57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816124d7576124d7615a30565b0490505b680100000000000000008106156124f35760016124f6565b60005b60ff16604082901c0192505050919050565b6000806000612517868561294f565b90506000612529600286900b87612975565b9050600285900b60081d61253f878383866129b1565b90999098509650505050505050565b60006125638285608001518660000151612a00565b9050600080600061257f898860600151888a6020015188612a7b565b60208a0151929550909350915061259a908990858585612ac7565b6125b389886020015189600001518a6060015188612b32565b6fffffffffffffffffffffffffffffffff1660608a0152602089015191945092506125e390899085856000612ac7565b505050505050505050565b600080826000015161262e5782608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff161161265e565b82608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff16105b90508080156119cb57505050606001516fffffffffffffffffffffffffffffffff161515919050565b600081801561269c5750600283900b627fffff145b156126ab5750627fffff6105f5565b811580156126dc5750600283900b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000145b1561270857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000006105f5565b6000806127158585612bb4565b9150915060008061272888858589612bf6565b915091508061273c575092506105f5915050565b61274888858589612c65565b90925090508061275d575092506105f5915050565b610fa8888588612ce2565b600061277385612d02565b61277e575083611025565b61278e8486856000015185612d41565b60008060006127b68660200151876000015188606001518a612ded909392919063ffffffff16565b919450925090506127c8898484612ec8565b6060860180518290036fffffffffffffffffffffffffffffffff16905285516127f45760018803611f04565b5095979650505050505050565b600080547501000000000000000000000000000000000000000000900460ff1615612888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f445300000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b61289134612eff565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055919050565b6000600f85900b13156128f5576128f08685858585612f1e565b61162f565b6000600f85900b121561162f5761162f8561290f86615bd5565b858585612f51565b6fffffffffffffffffffffffffffffffff81161561294b5761294b82826fffffffffffffffffffffffffffffffff16612f79565b5050565b60008061295c8484613043565b6000908152620100076020526040902054949350505050565b6000806129818461308e565b9050600083612991576000612994565b60015b60ff169050806129a4838661309c565b60ff160195945050505050565b60008080806129c185888a6130b3565b915091506129d08882876130f2565b9250826129e957600886901b60020b60ff8316016129f3565b6129f38887613125565b9350505094509492505050565b600080612a0e85858561318c565b9050620100026fffffffffffffffffffffffffffffffff82161015612a3957620100029150506105f5565b6f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8216106119cb57506f0ffff5433e2b3d8211706e6102aa947190506105f5565b6000806000806000612a998a8a8a602001518b604001518b8b61326f565b9092509050612aa98a83896132bf565b612ab4828289613332565b9450945094505050955095509592505050565b612ad2858484612ec8565b8315612b04578085606001818151612aea9190615ab7565b6fffffffffffffffffffffffffffffffff169052506103f0565b8085604001818151612b169190615ab7565b6fffffffffffffffffffffffffffffffff169052505050505050565b6000808080612b4389878a8861338a565b90506fffffffffffffffffffffffffffffffff808716908216108015612b8757612b708a878b8b8b6133d5565b91965094509250612b828a8488613423565b612ba7565b612b948a838b8b8b6134b2565b91965094509250612ba78a848a896134ec565b5050955095509592505050565b600080600083612bce57612bc9600186615c6e565b612bd0565b845b9050612bde8160020b6135b1565b9250612bec8160020b6135c8565b9150509250929050565b6000806000620100076000612c0c8989896135e4565b81526020810191909152604001600090812054915080612c2d8382886130b3565b915091508015612c47576000600194509450505050612c5c565b612c52888884613642565b6000945094505050505b94509492505050565b6000806000620100066000612c7a898961366b565b81526020019081526020016000205490506000612c97868661309c565b9050600080612caa8460ff8516896130b3565b915091508015612cc557600060019550955050505050612c5c565b612cd18a8a848a612bf6565b955095505050505094509492505050565b600081612cf857612cf3848461367f565b6119cb565b6119cb848461370b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000600283900b138015610e37575050627fffff60029190910b1290565b600080612d548386868960800151613755565b60408801519193509150612d7a906fffffffffffffffffffffffffffffffff1683613894565b6fffffffffffffffffffffffffffffffff166040870152801561162f576000612da98487878a60800151613901565b6040880151909150612dcd906fffffffffffffffffffffffffffffffff1682613894565b6fffffffffffffffffffffffffffffffff16604088015250505050505050565b600080600080612e07612dff89613a68565b895189613a8d565b9050806fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff1611612e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f424400000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b8515612eb357612ea7888883613b01565b93509350935050612ebe565b612ea7888883613b9d565b9450945094915050565b8183600001818151612eda9190615caf565b600f0b905250602083018051829190612ef4908390615caf565b600f0b905250505050565b806fffffffffffffffffffffffffffffffff81168114611bb957600080fd5b8015612f45576000612f31868686613c47565b9050612f3f86828686613d26565b506103f0565b6103f085858585613d74565b8015612f6d57612f62858585613da5565b6120c1858484613e24565b6103f085858585613e49565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612fd3576040519150601f19603f3d011682016040523d82523d6000602084013e612fd8565b606091505b505090508061125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b600080600283900b60081d9050838160405160200161306f92919091825260f01b602082015260220190565b6040516020818303038152906040528051906020012091505092915050565b6000610e3761010083615cfd565b6000816130ac578260ff036105f5565b5090919050565b6000806130c1858585613e8c565b9450508315806130ea57826130de576130d985613eb0565b6130e7565b6130e785613f5d565b91505b935093915050565b600083156131015750816105f5565b600061310d8382614140565b90508061311a5783611025565b600095945050505050565b6000821561317f5761313683614174565b60010b8260010b1461316f5761316a613150836001615d1f565b61315a85156141aa565b60ff1660089190911b60020b0190565b613178565b613178836141c0565b9050610e37565b600882901b60020b613178565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600285900b1315806131c85750620cb14a600285900b12155b156131d45750816105f5565b81156132275760016000816131e887612196565b039050846fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161061321c578461321e565b805b925050506105f5565b600061323285612196565b9050836fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16116132655783613267565b805b9150506105f5565b6000808061327f898987876141f7565b9050610100620f42406fffffffffffffffffffffffffffffffff831661ffff8a16020460ff8816810291909104908190039a909950975050505050505050565b60006132ca84613a68565b9050806fffffffffffffffffffffffffffffffff166000036132ec5750505050565b83518215906000906133019084908785614239565b905060006133158488600001518486614296565b905067ffffffffffffffff811615610d8757610d878782856142b0565b6000808085850184156133615761335a816fffffffffffffffffffffffffffffffff16614394565b925061337f565b61337c816fffffffffffffffffffffffffffffffff16614394565b93505b509195909450915050565b6000806133988685856143c4565b9050846fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16116133cb578061073e565b5092949350505050565b60008060008060006133e88a8a8a6143fa565b915091506000806133fb84848c8c61447a565b9150915061340e8c8b8b8b8f87876144b1565b96509650965050505050955095509592505050565b82516fffffffffffffffffffffffffffffffff90811681831614908316151581801561344c5750805b6103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f525000000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b60008060008060006134c68a8a8a8a614549565b915091506000806134d98b858c8c6145c3565b9150915061340e8c8b8b8b8787876144b1565b6000826135115784516fffffffffffffffffffffffffffffffff80841691161161352b565b84516fffffffffffffffffffffffffffffffff8084169116105b90506fffffffffffffffffffffffffffffffff84161581801561354b5750805b61162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b6000610e376135c38360020b60101d90565b6145e2565b60006101006135da8360020b60081d90565b610e379190615d5f565b6000806136016135f385614602565b60081b60010b60ff85160190565b9050848160405160200161362292919091825260f01b602082015260220190565b604051602081830303815290604052805190602001209150509392505050565b60006119cb61365085614602565b60101b60020b61ff00600886901b1660030b0160ff84160190565b60006105f58361367a84614602565b614641565b600060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83015b60ff8160ff161015613700576000806136c38784866000612c65565b91509150806136d757509250610e37915050565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016136a7565b506119cb60006141c0565b600080600183015b60ff81161561374a5760008061372c8784866001612c65565b915091508061374057509250610e37915050565b5050600101613713565b506119cb60016141c0565b60008060006137648787614662565b8054909150600090613797906bffffffffffffffffffffffff808216916c010000000000000000000000009004166146b5565b9050856137ac576137a781615bd5565b6137ae565b805b825490945067ffffffffffffffff8681167801000000000000000000000000000000000000000000000000909204161461385e578154613814907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1686615d81565b825467ffffffffffffffff9190911678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9091161782555b8561386f5781546001161515613887565b81546c01000000000000000000000000900460011615155b9250505094509492505050565b60008082600f0b12156138cb57508082016fffffffffffffffffffffffffffffffff808416908216106138c657600080fd5b610e37565b826fffffffffffffffffffffffffffffffff168284019150816fffffffffffffffffffffffffffffffff161015610e3757600080fd5b610dad5460009073ffffffffffffffffffffffffffffffffffffffff1661392757600080fd5b6000806001610dac015460405160248101899052600288900b6044820152861515606482015267ffffffffffffffff8616608482015273ffffffffffffffffffffffffffffffffffffffff9091169060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3c05c62100000000000000000000000000000000000000000000000000000000179052516139fa919061596c565b600060405180830381855af49150503d8060008114613a35576040519150601f19603f3d011682016040523d82523d6000602084013e613a3a565b606091505b509150915081613a4957600080fd5b80806020019051810190613a5d9190615da2565b979650505050505050565b600080613a7d836020015184606001516146d1565b90506105f5818460400151614726565b60008115613aad5750600167ffffffffffffffff604085901c16016105f5565b6000613abc856001860361474b565b90506000613aca868661474b565b9050808203600177ffffffffffffffffffffffffffffffffffffffffffffffff821601613af681612eff565b9450505050506105f5565b600080600060016f0ffff5433e2b3d8211706e6102aa9472036fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff161015613b635785516001016fffffffffffffffffffffffffffffffff1686525b60009150613b82846fffffffffffffffffffffffffffffffff16614394565b925084613b90576000613b92565b835b905093509350939050565b6000806000620100026fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff161115613c0e5785517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016fffffffffffffffffffffffffffffffff1686525b60009250613c2d846fffffffffffffffffffffffffffffffff16614394565b915084613c3a5783613b92565b6000905093509350939050565b600080613c548584610ec8565b600081815262010010602052604090208054919250906fffffffffffffffffffffffffffffffff908116908616811115613ce957815486908390600090613cae9084906fffffffffffffffffffffffffffffffff16615a8e565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550613d1c565b81547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168255613d198187615a8e565b93505b5050509392505050565b6fffffffffffffffffffffffffffffffff831615613d4f57613d4a84848484613d74565b610bf7565b73ffffffffffffffffffffffffffffffffffffffff8216610bf757610bf78482612917565b73ffffffffffffffffffffffffffffffffffffffff8216613d9a57613d4a848483614794565b610bf784848461483a565b6000613db18483610ec8565b6000818152620100106020526040812080549293508592909190613de89084906fffffffffffffffffffffffffffffffff16615ab7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b73ffffffffffffffffffffffffffffffffffffffff821661125f5761125f8382612917565b73ffffffffffffffffffffffffffffffffffffffff8216613e6f57613d4a848483614858565b610bf78285856fffffffffffffffffffffffffffffffff1661487d565b600081613ea25761ffff831684811b901c6119cb565b505061ffff1690811c901b90565b6000808211613ebe57600080fd5b7001000000000000000000000000000000008210613ede57608091821c91015b680100000000000000008210613ef657604091821c91015b6401000000008210613f0a57602091821c91015b620100008210613f1c57601091821c91015b6101008210613f2d57600891821c91015b60108210613f3d57600491821c91015b60048210613f4d57600291821c91015b60028210611bb957600101919050565b6000808211613f6b57600080fd5b5060ff6fffffffffffffffffffffffffffffffff821615613fad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613fb5565b608082901c91505b67ffffffffffffffff821615613fec577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613ff4565b604082901c91505b63ffffffff821615614027577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00161402f565b602082901c91505b61ffff821615614060577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001614068565b601082901c91505b60ff821615614098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016140a0565b600882901c91505b600f8216156140d0577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016140d8565b600482901c91505b6003821615614108577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01614110565b600282901c91505b6001821615611bb9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01919050565b6000806000614154858560ff1660016130b3565b915060ff1691508015801561102557508360ff1682149250505092915050565b6000816141a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000610e37565b617fff92915050565b6000816141b8576000610e37565b60ff92915050565b6000816141ed577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000610e37565b627fffff92915050565b83516000906fffffffffffffffffffffffffffffffff90811690831611816142218787878761338a565b9050613a5d61422f88613a68565b88518385896149e6565b6000600281614249878786613a8d565b6142539083615a04565b9050806fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff16111561428957808503613a5d565b5060009695505050505050565b6000806142a4868685614aff565b905061073e8185614b52565b82516142bd908383614c68565b6fffffffffffffffffffffffffffffffff16835260608301516142ea9067ffffffffffffffff1683614ce2565b67ffffffffffffffff9081166060850181905260009161430d9190851690614d45565b9050600061435661433d8387604001516fffffffffffffffffffffffffffffffff16614d8d90919063ffffffff16565b71ffffffffffffffffffffffffffffffffffff16612eff565b90506143628282614db3565b856080018181516143739190615dc5565b67ffffffffffffffff16905250602085018051829190612b16908390615ab7565b60006f80000000000000000000000000000000826fffffffffffffffffffffffffffffffff1610610ec457600080fd5b6000806143d085613a68565b9050836143eb576143e681866000015185614e26565b611025565b61102581866000015185614e71565b600080600061440886613a68565b865190915060009061442e906fffffffffffffffffffffffffffffffff84169088614e71565b8751909150600090614454906fffffffffffffffffffffffffffffffff85169089614e26565b90508515614468579093509150828261446f565b9350915081835b505050935093915050565b60008061448986868686614eb9565b9092509050614499600483615caf565b91506144a6600482615caf565b905094509492505050565b6000806000806144c2868b8b614f5c565b9050876fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16106144f85760009150614505565b6145028189615a8e565b91505b896145105784614512565b855b93508961451f5785614521565b845b6fffffffffffffffffffffffffffffffff909716909a52919994985090965092945050505050565b600080600061455787613a68565b905061456a876000015182888888614f92565b91508415614597578651614592906fffffffffffffffffffffffffffffffff83169084614e26565b6145b7565b86516145b7906fffffffffffffffffffffffffffffffff83169084614e71565b92505094509492505050565b6000806145d286868686614eb9565b90925090506144a6600482615caf565b6000808260000b12156145fb578160000b608001610e37565b5060800190565b600060808260ff16106146185760808203610e37565b5060ff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800190565b60008282604051602001610ef992919091825260f81b602082015260210190565b6000620100026000848460405160200161468992919091825260e81b602082015260230190565b604051602081830303815290604052805190602001208152602001908152602001600020905092915050565b60006146c08261502e565b6146c98461502e565b039392505050565b600066010000000000006fffffffffffffffffffffffffffffffff80851667ffffffffffffffff851683010290603082901c90811115611025576fffffffffffffffffffffffffffffffff9350505050610e37565b8082016fffffffffffffffffffffffffffffffff8084169082161015610e3757600080fd5b60006fffffffffffffffffffffffffffffffff821677ffffffffffffffffffffffffffffffff0000000000000000604085901b168161478c5761478c615a30565b049392505050565b816fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161015614822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f454300000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b600061482e8383615a8e565b9050610bf78482612917565b61125f818430856fffffffffffffffffffffffffffffffff1661504a565b61125f836148668385615ab7565b6fffffffffffffffffffffffffffffffff16612f79565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691614914919061596c565b6000604051808303816000865af19150503d8060008114614951576040519150601f19603f3d011682016040523d82523d6000602084013e614956565b606091505b50915091508180156149805750805115806149805750808060200190518101906149809190615de6565b6103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b6000856fffffffffffffffffffffffffffffffff16600003614a0a57506000611025565b6000614a1887878515614aff565b6fffffffffffffffffffffffffffffffff1690506000614a39888886614aff565b6fffffffffffffffffffffffffffffffff169050600084151586151514614a7457866fffffffffffffffffffffffffffffffff168203614a8a565b866fffffffffffffffffffffffffffffffff1682015b905080600003614aaf576fffffffffffffffffffffffffffffffff9350505050611025565b6000816fffffffffffffffffffffffffffffffff8b16800281614ad457614ad4615a30565b049050614af1848211614ae957818503612eff565b848203612eff565b9a9950505050505050505050565b60006119cb82614b3257614b13858561474b565b77ffffffffffffffffffffffffffffffffffffffffffffffff16612eff565b6fffffffffffffffffffffffffffffffff8086169085160260401c614b13565b60006fffffffffffffffffffffffffffffffff83161580614b965750826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff16115b15614ba357506000610e37565b6000614baf8385615ab7565b90506000614bcf6fffffffffffffffffffffffffffffffff8316866151bb565b9050614be48167ffffffffffffffff16615284565b925066010000000000008367ffffffffffffffff1610614c60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f494600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b505092915050565b6000660100000000000067ffffffffffffffff841681018315614cab576fffffffffffffffffffffffffffffffff86168102603081901c613af660018201612eff565b75ffffffffffffffffffffffffffffffff000000000000603087901b16818181614cd757614cd7615a30565b0493505050506105f5565b6000660100000000000067ffffffffffffffff848116820181851683010290603082901c907fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000820190811061073e5767ffffffffffffffff945050505050610e37565b6000660100000000000067ffffffffffffffff831681016dffffffffffffffff000000000000603086901b1683828281614d8157614d81615a30565b04979650505050505050565b67ffffffffffffffff166fffffffffffffffffffffffffffffffff919091160260301c90565b6000816fffffffffffffffffffffffffffffffff16600003614dd757506000610e37565b614de2826001615ab7565b6fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff168467ffffffffffffffff16614e1c9190615e03565b6105f59190615e1a565b6000826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115614e6657614e5f8483856152c8565b90506105f5565b614e5f8484846152c8565b600080826fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff1611614ea757838303614eab565b8284035b905061102585826001614aff565b60008082151584151503614f1057614ee2866fffffffffffffffffffffffffffffffff16614394565b614efd866fffffffffffffffffffffffffffffffff16614394565b614f0690615bd5565b9092509050612c5c565b614f2b866fffffffffffffffffffffffffffffffff16614394565b614f3490615bd5565b614f4f866fffffffffffffffffffffffffffffffff16614394565b9097909650945050505050565b60008082151584151514614f7857614f7385615bd5565b614f7a565b845b9050600081600f0b12156119cb5760009150506105f5565b60008083614fab57614fa687878786615347565b614fb7565b614fb7878787866153ae565b90506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff82161061500557614ffd60016f0ffff5433e2b3d8211706e6102aa9472615a8e565b915050611025565b620100026fffffffffffffffffffffffffffffffff8216101561073e5762010002915050611025565b6000600a82901b6d03fffffffffffffffffffffff80016610e37565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916150e9919061596c565b6000604051808303816000865af19150503d8060008114615126576040519150601f19603f3d011682016040523d82523d6000602084013e61512b565b606091505b50915091508180156151555750805115806151555750808060200190518101906151559190615de6565b61162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544600000000000000000000000000000000000000000000000000000000000060448201526064016110ea565b600079ffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff841610801561521c5750816fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1610155b61522557600080fd5b660100000000000075ffffffffffffffffffffffffffffffff000000000000603085901b166000826fffffffffffffffffffffffffffffffff8616838161526e5761526e615a30565b0403905082811061102557829350505050610e37565b600066010000000000008267ffffffffffffffff16106152a357600080fd5b5067ffffffffffffffff8116800260331c60019190911c677fffffffffffffff160390565b6000806152d58385615a8e565b905060006152e3868561474b565b77ffffffffffffffffffffffffffffffffffffffffffffffff1690506000856fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16836153329190615e03565b61533c9190615e1a565b9050613d1981612eff565b6000806153538661549f565b9050600061536482878787156153ae565b9050806fffffffffffffffffffffffffffffffff1660000361539a576f0ffff5433e2b3d8211706e6102aa9472925050506119cb565b6153a38161549f565b613a5d906001615ab7565b6000836fffffffffffffffffffffffffffffffff166000036153e157506fffffffffffffffffffffffffffffffff6119cb565b60006153ed848661474b565b90506fffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffff8216111561543a576fffffffffffffffffffffffffffffffff9150506119cb565b8083156154545761544b8188615ab7565b925050506119cb565b866fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161061548a576000925050506119cb565b615495816001615ab7565b61544b9088615a8e565b600080826fffffffffffffffffffffffffffffffff16700100000000000000000000000000000000816154d4576154d4615a30565b0490506fffffffffffffffffffffffffffffffff811115610e3757600080fd5b60006020828403121561550657600080fd5b5035919050565b61ffff81168114610e1557600080fd5b60008083601f84011261552f57600080fd5b50813567ffffffffffffffff81111561554757600080fd5b60208301915083602082850101111561555f57600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561558457600080fd5b893561558f8161550d565b985060208a013567ffffffffffffffff808211156155ac57600080fd5b6155b88d838e0161551d565b909a50985060408c01359150808211156155d157600080fd5b6155dd8d838e0161551d565b909850965060608c01359150808211156155f657600080fd5b6156028d838e0161551d565b909650945060808c013591508082111561561b57600080fd5b506156288c828d0161551d565b915080935050809150509295985092959850929598565b60005b8381101561565a578181015183820152602001615642565b50506000910152565b602081526000825180602084015261568281604085016020870161563f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b8015158114610e1557600080fd5b600080600080606085870312156156d857600080fd5b84356156e38161550d565b9350602085013567ffffffffffffffff8111156156ff57600080fd5b61570b8782880161551d565b909450925050604085013561571f816156b4565b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e1557600080fd5b6fffffffffffffffffffffffffffffffff81168114610e1557600080fd5b803560ff81168114611bb957600080fd5b6000806000806000806000806000806101408b8d03121561579b57600080fd5b8a356157a68161572a565b995060208b01356157b68161572a565b985060408b0135975060608b01356157cd816156b4565b965060808b01356157dd816156b4565b955060a08b01356157ed8161574c565b945060c08b01356157fd8161550d565b935060e08b013561580d8161574c565b92506101008b013561581e8161574c565b915061582d6101208c0161576a565b90509295989b9194979a5092959850565b6000806000806060858703121561585457600080fd5b843561585f8161550d565b9350602085013567ffffffffffffffff81111561587b57600080fd5b6158878782880161551d565b909450925050604085013561571f8161572a565b6000806000604084860312156158b057600080fd5b83356158bb8161550d565b9250602084013567ffffffffffffffff8111156158d757600080fd5b6158e38682870161551d565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000825161597e81846020870161563f565b9190910192915050565b60008060006060848603121561599d57600080fd5b83516159a88161572a565b60208501519093506159b98161574c565b60408501519092506159ca8161572a565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6fffffffffffffffffffffffffffffffff818116838216028082169190828114614c6057614c606159d5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006fffffffffffffffffffffffffffffffff80841680615a8257615a82615a30565b92169190910492915050565b6fffffffffffffffffffffffffffffffff828116828216039080821115611776576117766159d5565b6fffffffffffffffffffffffffffffffff818116838216019080821115611776576117766159d5565b600063ffffffff821680615af657615af66159d5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b600080600060608486031215615b3357600080fd5b615b3c8461576a565b95602085013595506040909401359392505050565b805165ffffffffffff81168114611bb957600080fd5b600080600080600060a08688031215615b7f57600080fd5b615b8886615b51565b9450615b9660208701615b51565b935060408601519250606086015163ffffffff81168114615bb657600080fd5b6080870151909250615bc78161572a565b809150509295509295909350565b600081600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103615c0a57615c0a6159d5565b60000392915050565b600063ffffffff808316818103615c2c57615c2c6159d5565b6001019392505050565b600060208284031215615c4857600080fd5b81516105f58161550d565b61ffff828116828216039080821115611776576117766159d5565b600282810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff82131715610e3757610e376159d5565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff8000000000000000000000000000000082121715610e3757610e376159d5565b60008260020b80615d1057615d10615a30565b808360020b0791505092915050565b600181810b9083900b01617fff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800082121715610e3757610e376159d5565b60008260010b80615d7257615d72615a30565b808360010b0791505092915050565b67ffffffffffffffff828116828216039080821115611776576117766159d5565b600060208284031215615db457600080fd5b815180600f0b81146105f557600080fd5b67ffffffffffffffff818116838216019080821115611776576117766159d5565b600060208284031215615df857600080fd5b81516105f5816156b4565b8082028115828204841417610e3757610e376159d5565b600082615e2957615e29615a30565b50049056fea2646970667358221220eed8338407e704a1fc838643fb52f4e9e860bfc3fae655b69c34d8658c0ac62a64736f6c63430008130033
🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xAaAaAAAaA24eEeb8d57D431224f73832bC34f688
Net Worth in USD
$346,155.13

Net Worth in ETH
158.101957

Token Allocations
USDC 48.61%
ETH 45.72%
USDT 2.50%
Others 3.17%
Chain Token Portfolio % Price Amount Value
ETH48.61%$0.999723168,318.8756$168,272.25
ETH
Ether (ETH)
45.57%$2,187.7572.1102$157,759.1
ETH2.50%$18,655.0965$8,655.1
ETH1.42%$14,890.757$4,900.54
ETH0.53%$2,440.210.7468$1,822.38
ETH0.47%$70,875.670.023$1,632.62
ETH0.20%$734.240.9375$688.37
ETH0.13%$0.04566410,227.1486$467.01
ETH0.11%$2,187.750.1766$386.33
ETH0.09%$71,1040.00439155$312.26
ETH0.05%$0.00000345,796,279.3372$158.91
ETH0.04%$3.2339.3638$127.15
ETH0.03%$0.313974356.0218$111.78
ETH0.02%$2,325.410.0352$81.88
ETH0.02%$2,351.870.0333$78.37
ETH0.01%$134.520.2797$37.63
ETH<0.01%$2,435.540.0137$33.37
ETH<0.01%$51,195.690.00047205$24.17
ETH<0.01%$0.00119616,515.1383$19.75
ETH<0.01%$0.14965383.5212$12.5
ETH<0.01%$0.023295521.536$12.15
ETH<0.01%$8.751.3866$12.13
ETH<0.01%$0.29181141.0834$11.99
ETH<0.01%$1.732.7057$4.68
ETH<0.01%$0.24684210.2223$2.52
ETH<0.01%$2,703.090.00085573$2.31
ETH<0.01%$0.9952541.8567$1.85
ETH<0.01%$0.03599942.5612$1.53
ETH<0.01%$0.08587613.6847$1.18
ETH<0.01%$0.0005971,895$1.13
ETH<0.01%$10.538$0.538
ETH<0.01%$0.2253592.0014$0.451
ETH<0.01%$0.932810.3193$0.2978
ETH<0.01%$0.0002861,000$0.2854
ETH<0.01%$0.0001151,877.1383$0.2166
ETH<0.01%$0.000.0154$0.00
ETH<0.01%$0.000177920.6205$0.1627
ETH<0.01%$0.00951115.2602$0.1451
BLAST0.15%$2,188.950.2336$511.24
BASE<0.01%$0.019895160$3.18
BASE<0.01%<$0.000001295,774,647$2.84
BASE<0.01%$0.0004884,324.6182$2.11
BASE<0.01%$0.01100314$0.154
LINEA<0.01%$2,189.440.0001$0.218944
BSC<0.01%<$0.000001804,828$0.1582
POL<0.01%$0.0826140.0002$0.000017
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.