[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_ownerAddr", "type": "address" }, { "internalType": "address", "name": "_factoryAddress", "type": "address" }, { "internalType": "uint256", "name": "_omniSupply", "type": "uint256" }, { "internalType": "address", "name": "_creatorAddr", "type": "address" }, { "internalType": "address", "name": "_signer", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "NotImplement", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum ActionType", "name": "_action", "type": "uint8" }, { "indexed": false, "internalType": "uint64", "name": "_srcChainId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_lockedNative", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_lockedToken", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "name": "AssetLocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "_srcChainId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_token", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "name": "Crossed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "_srcChainId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "_srcAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "MessageReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "_srcChainId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "_srcAddress", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "_action", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "_pongFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_expectPongFee", "type": "uint256" } ], "name": "PongfeeFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_native", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_token", "type": "uint256" } ], "name": "Unlocked", "type": "event" }, { "inputs": [], "name": "_channel", "outputs": [ { "internalType": "contract IChannelSlave", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_factory", "outputs": [ { "internalType": "contract IFactorySlave", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "srcChainId", "type": "uint64" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint8", "name": "action", "type": "uint8" }, { "internalType": "uint256", "name": "pongFee", "type": "uint256" }, { "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "actionCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pongFee", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "buyNonce", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "buyNoncePong", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pongFee", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "name": "buyPingEstimateGas", "outputs": [ { "internalType": "uint256", "name": "pingFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creatorAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factoryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVersion", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launched", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nativeMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nativeMin", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nativeTotal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "omniSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pongFee", "type": "uint256" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "sell", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "sellNonce", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "sellNoncePong", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pongFee", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "name": "sellPingEstimateGas", "outputs": [ { "internalType": "uint256", "name": "pingFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "setCreatorAddr", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_liquidated", "type": "bool" } ], "name": "setLiquidated", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNativeMax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNativeMin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNativeTotal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_eth", "type": "uint256" } ], "name": "setShortStart", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTokenMin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "shortStart", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "signer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenMin", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052676124fee993bc0000600b55674563918244f40000600c55655af3107a4000600d55670de0b6b3a7640000600e556802b5e3af16b1880000600f556801158e460913d000006010553480156200005957600080fd5b5060405162002872380380620028728339810160408190526200007c9162000368565b86868686868685856003620000928382620004b7565b506004620000a18282620004b7565b505050620000be620000b86200022d60201b60201c565b62000231565b6001600655600780546001600160a01b03808716620100000262010000600160b01b031990921691909117909155600980548583166001600160a01b0319918216179091556008849055600a805492841692909116919091179055816200016b5760405162461bcd60e51b815260206004820152601560248201527f746f74616c20737570706c7920696e6974206572720000000000000000000000604482015260640160405180910390fd5b5050601180546001600160a01b0319166001600160a01b038a16908117909155604080516326573c2960e21b8152905191955063995cf0a494506004808201945060209350908290030181865afa158015620001cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f1919062000583565b601280546001600160a01b039283166001600160a01b0319918216179091556013805493909216921691909117905550620005a8945050505050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002ab57600080fd5b81516001600160401b0380821115620002c857620002c862000283565b604051601f8301601f19908116603f01168101908282118183101715620002f357620002f362000283565b81604052838152602092508660208588010111156200031157600080fd5b600091505b8382101562000335578582018301518183018401529082019062000316565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200036357600080fd5b919050565b600080600080600080600060e0888a0312156200038457600080fd5b87516001600160401b03808211156200039c57600080fd5b620003aa8b838c0162000299565b985060208a0151915080821115620003c157600080fd5b50620003d08a828b0162000299565b965050620003e1604089016200034b565b9450620003f1606089016200034b565b9350608088015192506200040860a089016200034b565b91506200041860c089016200034b565b905092959891949750929550565b600181811c908216806200043b57607f821691505b6020821081036200045c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004b2576000816000526020600020601f850160051c810160208610156200048d5750805b601f850160051c820191505b81811015620004ae5782815560010162000499565b5050505b505050565b81516001600160401b03811115620004d357620004d362000283565b620004eb81620004e4845462000426565b8462000462565b602080601f8311600181146200052357600084156200050a5750858301515b600019600386901b1c1916600185901b178555620004ae565b600085815260208120601f198616915b82811015620005545788860151825594840194600190910190840162000533565b5085821015620005735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200059657600080fd5b620005a1826200034b565b9392505050565b6122ba80620005b86000396000f3fe6080604052600436106102815760003560e01c80636715f7091161014f578063944d928d116100c1578063c5cc6b6a1161007a578063c5cc6b6a14610785578063d04c6983146107a5578063d54a5c7a146107b8578063dd62ed3e146107d8578063e40afab2146107f8578063f2fde38b1461082557600080fd5b8063944d928d146106da57806395d89b41146106fa578063966dae0e1461070f578063a457c2d71461072f578063a9059cbb1461074f578063b3affc511461076f57600080fd5b8063763f395411610113578063763f39541461062b5780637be368691461063e5780637deb6025146106795780637fb3961c1461068c5780638091f3bf146106a25780638da5cb5b146106bc57600080fd5b80636715f709146105aa57806370a08231146105ca578063715018a6146105ea578063735e62f1146105ff578063763b45ba1461061557600080fd5b806324fbafb0116101f35780634c2c8370116101ac5780634c2c8370146104e357806351932c9a146105035780635252281a14610523578063583e1a43146105395780635c0f7dd1146105595780635f04a7911461056f57600080fd5b806324fbafb014610414578063313ce5671461044157806333195d511461045d578063395093511461047d578063412753581461049d5780634a6cb28d146104c357600080fd5b806311232b881161024557806311232b881461036a578063165523931461038057806318160ddd146103a0578063238ac933146103b557806323b872dd146103d557806323b98cde146103f557600080fd5b806306fdde03146102985780630810e632146102c3578063095ea7b3146102fb5780630d7d9fe61461032b5780630d8e6e2c1461034b57600080fd5b3661029357610291600033610845565b005b600080fd5b3480156102a457600080fd5b506102ad6109f1565b6040516102ba9190611cd5565b60405180910390f35b3480156102cf57600080fd5b506012546102e3906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561030757600080fd5b5061031b610316366004611d04565b610a83565b60405190151581526020016102ba565b34801561033757600080fd5b50610291610346366004611d30565b610a9d565b34801561035757600080fd5b50600b545b6040519081526020016102ba565b34801561037657600080fd5b5061035c600d5481565b34801561038c57600080fd5b50600a546102e3906001600160a01b031681565b3480156103ac57600080fd5b5060025461035c565b3480156103c157600080fd5b506013546102e3906001600160a01b031681565b3480156103e157600080fd5b5061031b6103f0366004611d49565b610aaa565b34801561040157600080fd5b5060075461031b90610100900460ff1681565b34801561042057600080fd5b5061035c61042f366004611d8a565b60176020526000908152604090205481565b34801561044d57600080fd5b50604051601281526020016102ba565b34801561046957600080fd5b50610291610478366004611d30565b610ace565b34801561048957600080fd5b5061031b610498366004611d04565b610adb565b3480156104a957600080fd5b506007546102e3906201000090046001600160a01b031681565b3480156104cf57600080fd5b506102916104de366004611da7565b610afd565b3480156104ef57600080fd5b5061035c6104fe366004611dc9565b610b7f565b34801561050f57600080fd5b5061029161051e366004611d30565b610c1e565b34801561052f57600080fd5b5061035c600f5481565b34801561054557600080fd5b50610291610554366004611d30565b610c2b565b34801561056557600080fd5b5061035c60145481565b34801561057b57600080fd5b5061031b61058a366004611d04565b601660209081526000928352604080842090915290825290205460ff1681565b3480156105b657600080fd5b5061035c6105c5366004611dc9565b610c38565b3480156105d657600080fd5b5061035c6105e5366004611d8a565b610c70565b3480156105f657600080fd5b50610291610c8b565b34801561060b57600080fd5b5061035c60105481565b34801561062157600080fd5b5061035c600e5481565b610291610639366004611e06565b610c9f565b34801561064a57600080fd5b5061031b610659366004611d04565b601860209081526000928352604080842090915290825290205460ff1681565b610291610687366004611f0a565b610dd5565b34801561069857600080fd5b5061035c60085481565b3480156106ae57600080fd5b5060075461031b9060ff1681565b3480156106c857600080fd5b506005546001600160a01b03166102e3565b3480156106e657600080fd5b506102916106f5366004611d30565b610df5565b34801561070657600080fd5b506102ad610e02565b34801561071b57600080fd5b506009546102e3906001600160a01b031681565b34801561073b57600080fd5b5061031b61074a366004611d04565b610e11565b34801561075b57600080fd5b5061031b61076a366004611d04565b610e8c565b34801561077b57600080fd5b5061035c600c5481565b34801561079157600080fd5b506011546102e3906001600160a01b031681565b6102916107b3366004611f3a565b610e9a565b3480156107c457600080fd5b506102916107d3366004611d8a565b610ebd565b3480156107e457600080fd5b5061035c6107f3366004611f73565b610ee7565b34801561080457600080fd5b5061035c610813366004611d8a565b60156020526000908152604090205481565b34801561083157600080fd5b50610291610840366004611d8a565b610f12565b600754610100900460ff16156108765760405162461bcd60e51b815260040161086d90611fa1565b60405180910390fd5b6000610883838334610b7f565b905082600003610891578092505b60008361089e8334611fdb565b6108a89190611fdb565b9050600d548110156108cc5760405162461bcd60e51b815260040161086d90611fee565b600c5481111561091e5760405162461bcd60e51b815260206004820152601e60248201527f74686520616d6f756e742063616e6e6f7420626520746f6f206c617267650000604482015260640161086d565b336000908152601560205260409020546012546001600160a01b031663549aa4a4348561094b8987612025565b610961610959876001612025565b8a8c8a610f8b565b336040518663ffffffff1660e01b81526004016109819493929190612038565b6000604051808303818588803b15801561099a57600080fd5b505af11580156109ae573d6000803e3d6000fd5b5050505050601560006109be3390565b6001600160a01b03168152602081019190915260400160009081208054916109e583612070565b91905055505050505050565b606060038054610a0090612089565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2c90612089565b8015610a795780601f10610a4e57610100808354040283529160200191610a79565b820191906000526020600020905b815481529060010190602001808311610a5c57829003601f168201915b5050505050905090565b600033610a91818585610ff3565b60019150505b92915050565b610aa5611117565b600c55565b600033610ab8858285611171565b610ac38585856111eb565b506001949350505050565b610ad6611117565b600f55565b600033610a91818585610aee8383610ee7565b610af89190612025565b610ff3565b6013546001600160a01b0316331480610b2057506005546001600160a01b031633145b610b655760405162461bcd60e51b81526020600482015260166024820152751bdb9b1e481cda59db995c8bdbdddb995c8818d85b1b60521b604482015260640161086d565b600780549115156101000261ff0019909216919091179055565b336000908152601560205260408120546012546001600160a01b031663cb1b3dd186610bb7610baf856001612025565b888a89610f8b565b6040518363ffffffff1660e01b8152600401610bd49291906120c3565b602060405180830381865afa158015610bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1591906120e4565b95945050505050565b610c26611117565b600d55565b610c33611117565b601055565b336000908152601760205260408120546012546001600160a01b031663cb1b3dd186610bb7610c68856001612025565b888a89611249565b6001600160a01b031660009081526020819052604090205490565b610c93611117565b610c9d6000611252565b565b600960009054906101000a90046001600160a01b03166001600160a01b031663995cf0a46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1691906120fd565b6001600160a01b0316336001600160a01b031614610d845760405162461bcd60e51b815260206004820152602560248201527f4c696b77696450726f647563743a2063616c6c6572206d757374206265206368604482015264185b9b995b60da1b606482015260840161086d565b7ff496afe4c96f98ccadfe979e32fee625d67b649ab3b164a018eedbaecdcb7b2a85853484604051610db9949392919061211a565b60405180910390a1610dce85858585856112a4565b5050505050565b610ddd611341565b610de78282610845565b610df16001600655565b5050565b610dfd611117565b600e55565b606060048054610a0090612089565b60003381610e1f8286610ee7565b905083811015610e7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161086d565b610ac38286868403610ff3565b600033610a918185856111eb565b610ea2611341565b610eae8333838561139a565b610eb86001600655565b505050565b610ec5611117565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610f1a611117565b6001600160a01b038116610f7f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086d565b610f8881611252565b50565b606060005b610f98610e02565b60408051602081018990526001600160a01b0388168183015260608082018790528251808303909101815260808201909252610fda939291879160a00161215b565b6040516020818303038152906040529050949350505050565b6001600160a01b0383166110555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086d565b6001600160a01b0382166110b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610c9d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161086d565b600061117d8484610ee7565b905060001981146111e557818110156111d85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161086d565b6111e58484848403610ff3565b50505050565b33301480159061120357506001600160a01b03821630145b1561123e5760405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b604482015260640161086d565b610eb8838383611602565b60606002610f90565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60001960ff8416016112e957600080600080848060200190518101906112ca919061219a565b93509350935093506112e0898985858589611794565b50505050610dce565b60021960ff841601611325576000806000808480602001905181019061130f919061219a565b93509350935093506112e089898584868961182e565b60405160016235f76760e11b0319815260040160405180910390fd5b6002600654036113935760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161086d565b6002600655565b600754610100900460ff16156113c25760405162461bcd60e51b815260040161086d90611fa1565b600081116114035760405162461bcd60e51b815260206004820152600e60248201526d30b6b7bab73a1034b71032b9391760911b604482015260640161086d565b8061140d84610c70565b101561145b5760405162461bcd60e51b815260206004820152601b60248201527f73656c6c20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161086d565b61146d670de0b6b3a7640000826121d8565b670de0b6b3a764000061147f85610c70565b61148991906121d8565b0361149a5761149783610c70565b90505b60006114a7858484610c38565b9050846000036114b5578094505b6114bf8582612025565b3410156115065760405162461bcd60e51b81526020600482015260156024820152740c4e4d2c8ceca40cccaca40dcdee840cadcdeeaced605b1b604482015260640161086d565b600e548210156115285760405162461bcd60e51b815260040161086d90611fee565b336000908152601760205260408120549061154f611547836001612025565b868987611249565b905061155b86856118b0565b6012546001600160a01b031663549aa4a434858a85336040518663ffffffff1660e01b81526004016115909493929190612038565b6000604051808303818588803b1580156115a957600080fd5b505af11580156115bd573d6000803e3d6000fd5b5050505050601760006115cd3390565b6001600160a01b03168152602081019190915260400160009081208054916115f483612070565b919050555050505050505050565b6001600160a01b0383166116665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086d565b6001600160a01b0382166116c85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086d565b6001600160a01b038316600090815260208190526040902054818110156117405760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161086d565b6001600160a01b0384811660008181526020818152604080832087870390559387168083529184902080548701905592518581529092600080516020612265833981519152910160405180910390a36111e5565b6001600160a01b038416600090815260166020908152604080832084845290915290205460ff16156117d85760405162461bcd60e51b815260040161086d906121fa565b6001600160a01b03841660009081526016602090815260408083208484529091529020805460ff1916600117905581156118165761181684836119d0565b8215611826576118268484611a7d565b505050505050565b6001600160a01b038416600090815260186020908152604080832084845290915290205460ff16156118725760405162461bcd60e51b815260040161086d906121fa565b6001600160a01b03841660009081526018602090815260408083208484529091529020805460ff191660011790558215611826576118268484611a7d565b6001600160a01b0382166119105760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161086d565b6001600160a01b038216600090815260208190526040902054818110156119845760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161086d565b6001600160a01b038316600081815260208181526040808320868603905560028054879003905551858152919291600080516020612265833981519152910160405180910390a3505050565b6001600160a01b038216611a265760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161086d565b8060026000828254611a389190612025565b90915550506001600160a01b03821660008181526020818152604080832080548601905551848152600080516020612265833981519152910160405180910390a35050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611aca576040519150601f19603f3d011682016040523d82523d6000602084013e611acf565b606091505b5050905080611add83611b1a565b604051602001611aed9190612224565b604051602081830303815290604052906111e55760405162461bcd60e51b815260040161086d9190611cd5565b60606000611b2783611bad565b600101905060008167ffffffffffffffff811115611b4757611b47611df0565b6040519080825280601f01601f191660200182016040528015611b71576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b7b57509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611bec5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611c18576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c3657662386f26fc10000830492506010015b6305f5e1008310611c4e576305f5e100830492506008015b6127108310611c6257612710830492506004015b60648310611c74576064830492506002015b600a8310610a975760010192915050565b60005b83811015611ca0578181015183820152602001611c88565b50506000910152565b60008151808452611cc1816020860160208601611c85565b601f01601f19169290920160200192915050565b602081526000611ce86020830184611ca9565b9392505050565b6001600160a01b0381168114610f8857600080fd5b60008060408385031215611d1757600080fd5b8235611d2281611cef565b946020939093013593505050565b600060208284031215611d4257600080fd5b5035919050565b600080600060608486031215611d5e57600080fd5b8335611d6981611cef565b92506020840135611d7981611cef565b929592945050506040919091013590565b600060208284031215611d9c57600080fd5b8135611ce881611cef565b600060208284031215611db957600080fd5b81358015158114611ce857600080fd5b600080600060608486031215611dde57600080fd5b833592506020840135611d7981611cef565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a08688031215611e1e57600080fd5b853567ffffffffffffffff8082168214611e3757600080fd5b909550602087013590611e4982611cef565b90945060408701359060ff82168214611e6157600080fd5b9093506060870135925060808701359080821115611e7e57600080fd5b818801915088601f830112611e9257600080fd5b813581811115611ea457611ea4611df0565b604051601f8201601f19908116603f01168101908382118183101715611ecc57611ecc611df0565b816040528281528b6020848701011115611ee557600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b60008060408385031215611f1d57600080fd5b823591506020830135611f2f81611cef565b809150509250929050565b600080600060608486031215611f4f57600080fd5b83359250602084013591506040840135611f6881611cef565b809150509250925092565b60008060408385031215611f8657600080fd5b8235611f9181611cef565b91506020830135611f2f81611cef565b6020808252600a90820152691b1a5c5d5a59185d195960b21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a9757610a97611fc5565b6020808252601e908201527f74686520616d6f756e742063616e6e6f7420626520746f6f20736d616c6c0000604082015260600190565b80820180821115610a9757610a97611fc5565b8481528360208201526080604082015260006120576080830185611ca9565b905060018060a01b038316606083015295945050505050565b60006001820161208257612082611fc5565b5060010190565b600181811c9082168061209d57607f821691505b6020821081036120bd57634e487b7160e01b600052602260045260246000fd5b50919050565b8281526040602082015260006120dc6040830184611ca9565b949350505050565b6000602082840312156120f657600080fd5b5051919050565b60006020828403121561210f57600080fd5b8151611ce881611cef565b67ffffffffffffffff8516815260018060a01b03841660208201528260408201526080606082015260006121516080830184611ca9565b9695505050505050565b60ff851681526080602082015260006121776080830186611ca9565b846040840152828103606084015261218f8185611ca9565b979650505050505050565b600080600080608085870312156121b057600080fd5b8451935060208501516121c281611cef565b6040860151606090960151949790965092505050565b6000826121f557634e487b7160e01b600052601260045260246000fd5b500490565b60208082526010908201526f3737b731b2903932b832ba34ba34b7b760811b604082015260600190565b77283937b23ab1ba102a3930b739b332b9103330b4b632b21760411b815260008251612257816018850160208701611c85565b919091016018019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e3288a0a7941f0a5b42398b19a0d7f7cd506077730ad0f80555ffc0cacec880964736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000ea7744c4fa1101f9e6df5688fc19e3ee941064390000000000000000000000004cdbc49a24c634d67642de875088a45fec39bf530000000000000000000000000000000000000000204fce5e3e250261100000000000000000000000000000005e9d70688bf39deefa5fa5d2e94d42e86127c745000000000000000000000000ca709ea906207b44521f03ecf5b594d247dffac50000000000000000000000000000000000000000000000000000000000000006735241535459000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067352415354590000000000000000000000000000000000000000000000000000